From f88081af7ac59cec88888442cc6b34cc6f4172f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Jusevi=C4=8Dius?= Date: Thu, 13 Aug 2026 23:24:04 +0200 Subject: [PATCH] Localise namespace ontology: Lithuanian property + class labels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit app/ns.ttl — add bilingual (@lt/@en) rdfs:label to the standard predicates that had none (foaf:depiction/mbox/phone/name/givenName/familyName/gender, dct:identifier/title/type, geo:lat/long, cv:level, schema:foundingDate/ dissolutionDate/validFrom/validThrough, rov:companyType/orgStatus/legalName, skos:prefLabel/altLabel/notation/exactMatch/scopeNote/inScheme/topConceptOf, locn:postCode, org:hasRegisteredSite/siteAddress, owl:sameAs, foaf:img/…). LDH resolves predicate labels by DESCRIBE-ing them against {base}ns, so these now render Lithuanian column labels (English to en clients — all bilingual, content-negotiated). Also label the remaining classes used as rdf:type (org:FormalOrganization, rov:RegisteredOrganization, org:Site, locn:Address, dct:Location, skos:Concept/ConceptScheme, dh:Item/Container) so the type badges localise. Class badges only surface these once /ns labels are merged into LDH's object-metadata — atomgraph/linkeddatahub 6d120d5 (client) + fd5593b5 (server initial paint) — so no XSLT bridge is needed; the ontology is the single source of truth. files/overrides.xsl — add a skos:altLabel ac:label fallback (the base client stylesheets negotiate rdfs:label/dc:title/skos:prefLabel but not altLabel). Co-Authored-By: Claude Opus 4.8 (1M context) --- app/ns.ttl | 193 ++++++++++++++++++++++++++++++++++++++++++++ files/overrides.xsl | 15 ++++ 2 files changed, 208 insertions(+) diff --git a/app/ns.ttl b/app/ns.ttl index 32119d1..211abf0 100644 --- a/app/ns.ttl +++ b/app/ns.ttl @@ -30,6 +30,11 @@ @prefix schema: . @prefix locn: . @prefix ltlod: . +@prefix rdf: . +@prefix geo: . +@prefix rov: . +@prefix skos: . +@prefix dh: . : a owl:Ontology ; rdfs:label "LTLOD namespace" . @@ -60,6 +65,47 @@ ltlod:ElectoralDistrict a owl:Class ; rdfs:label "Rinkimų apygarda"@lt, "Electoral district"@en ; rdfs:isDefinedBy : . +# Remaining classes used as rdf:type on data — labelled here (single source of +# truth) so files/overrides.xsl can surface them on the type badges. LDH does not +# consult this ontology for rdf:type objects on its own (only for predicates), so +# the badge localisation is bridged in XSLT — but the label text lives here. + +org:FormalOrganization a owl:Class ; + rdfs:label "Formalioji organizacija"@lt, "Formal organization"@en ; + rdfs:isDefinedBy : . + +rov:RegisteredOrganization a owl:Class ; + rdfs:label "Registruotas juridinis asmuo"@lt, "Registered organization"@en ; + rdfs:isDefinedBy : . + +org:Site a owl:Class ; + rdfs:label "Buveinė"@lt, "Site"@en ; + rdfs:isDefinedBy : . + +locn:Address a owl:Class ; + rdfs:label "Adresas"@lt, "Address"@en ; + rdfs:isDefinedBy : . + +dct:Location a owl:Class ; + rdfs:label "Vietovė"@lt, "Location"@en ; + rdfs:isDefinedBy : . + +skos:Concept a owl:Class ; + rdfs:label "Sąvoka"@lt, "Concept"@en ; + rdfs:isDefinedBy : . + +skos:ConceptScheme a owl:Class ; + rdfs:label "Sąvokų schema"@lt, "Concept scheme"@en ; + rdfs:isDefinedBy : . + +dh:Item a owl:Class ; + rdfs:label "Dokumentas"@lt, "Document"@en ; + rdfs:isDefinedBy : . + +dh:Container a owl:Class ; + rdfs:label "Katalogas"@lt, "Container"@en ; + rdfs:isDefinedBy : . + # properties dct:isPartOf a owl:ObjectProperty ; @@ -124,6 +170,153 @@ org:memberDuring a owl:ObjectProperty ; rdfs:label "Laikotarpis"@lt, "During"@en ; rdfs:isDefinedBy : . +# standard-vocabulary property labels (label-only, no view). LDH resolves the +# property-column label of every predicate on a page by DESCRIBE-ing it against +# this ontology ({base}ns) and language-negotiating the rdfs:label — so a bare +# rdfs:label here is enough to Lithuanianise a FOAF/DC/schema.org/… predicate that +# otherwise falls back to its (English) source-vocab label or capitalised local +# name. Bilingual on purpose: Lithuanian to lt clients, English to en clients. + +foaf:depiction a rdf:Property ; + rdfs:label "Atvaizdas"@lt, "Depiction"@en ; + rdfs:isDefinedBy : . + +foaf:img a rdf:Property ; + rdfs:label "Paveikslėlis"@lt, "Image"@en ; + rdfs:isDefinedBy : . + +foaf:name a rdf:Property ; + rdfs:label "Vardas ir pavardė"@lt, "Name"@en ; + rdfs:isDefinedBy : . + +foaf:givenName a rdf:Property ; + rdfs:label "Vardas"@lt, "Given name"@en ; + rdfs:isDefinedBy : . + +foaf:familyName a rdf:Property ; + rdfs:label "Pavardė"@lt, "Family name"@en ; + rdfs:isDefinedBy : . + +foaf:gender a rdf:Property ; + rdfs:label "Lytis"@lt, "Gender"@en ; + rdfs:isDefinedBy : . + +foaf:mbox a rdf:Property ; + rdfs:label "El. paštas"@lt, "Personal mailbox"@en ; + rdfs:isDefinedBy : . + +foaf:phone a rdf:Property ; + rdfs:label "Telefonas"@lt, "Phone"@en ; + rdfs:isDefinedBy : . + +foaf:isPrimaryTopicOf a rdf:Property ; + rdfs:label "Aprašoma dokumente"@lt, "Is primary topic of"@en ; + rdfs:isDefinedBy : . + +foaf:primaryTopic a rdf:Property ; + rdfs:label "Pagrindinė tema"@lt, "Primary topic"@en ; + rdfs:isDefinedBy : . + +foaf:topic a rdf:Property ; + rdfs:label "Tema"@lt, "Topic"@en ; + rdfs:isDefinedBy : . + +owl:sameAs a rdf:Property ; + rdfs:label "Sutampa su"@lt, "Same as"@en ; + rdfs:isDefinedBy : . + +dct:identifier a rdf:Property ; + rdfs:label "Identifikatorius"@lt, "Identifier"@en ; + rdfs:isDefinedBy : . + +dct:title a rdf:Property ; + rdfs:label "Pavadinimas"@lt, "Title"@en ; + rdfs:isDefinedBy : . + +dct:type a rdf:Property ; + rdfs:label "Tipas"@lt, "Type"@en ; + rdfs:isDefinedBy : . + +cv:level a rdf:Property ; + rdfs:label "Lygmuo"@lt, "Level"@en ; + rdfs:isDefinedBy : . + +geo:lat a rdf:Property ; + rdfs:label "Platuma"@lt, "Latitude"@en ; + rdfs:isDefinedBy : . + +geo:long a rdf:Property ; + rdfs:label "Ilguma"@lt, "Longitude"@en ; + rdfs:isDefinedBy : . + +schema:validFrom a rdf:Property ; + rdfs:label "Galioja nuo"@lt, "Valid from"@en ; + rdfs:isDefinedBy : . + +schema:validThrough a rdf:Property ; + rdfs:label "Galioja iki"@lt, "Valid through"@en ; + rdfs:isDefinedBy : . + +schema:foundingDate a rdf:Property ; + rdfs:label "Įsteigimo data"@lt, "Founding date"@en ; + rdfs:isDefinedBy : . + +schema:dissolutionDate a rdf:Property ; + rdfs:label "Likvidavimo data"@lt, "Dissolution date"@en ; + rdfs:isDefinedBy : . + +skos:prefLabel a rdf:Property ; + rdfs:label "Pavadinimas"@lt, "Preferred label"@en ; + rdfs:isDefinedBy : . + +skos:altLabel a rdf:Property ; + rdfs:label "Alternatyvusis pavadinimas"@lt, "Alternative label"@en ; + rdfs:isDefinedBy : . + +skos:notation a rdf:Property ; + rdfs:label "Žymuo"@lt, "Notation"@en ; + rdfs:isDefinedBy : . + +skos:exactMatch a rdf:Property ; + rdfs:label "Tikslus atitikmuo"@lt, "Exact match"@en ; + rdfs:isDefinedBy : . + +skos:scopeNote a rdf:Property ; + rdfs:label "Taikymo pastaba"@lt, "Scope note"@en ; + rdfs:isDefinedBy : . + +skos:inScheme a rdf:Property ; + rdfs:label "Priklauso schemai"@lt, "In scheme"@en ; + rdfs:isDefinedBy : . + +skos:topConceptOf a rdf:Property ; + rdfs:label "Viršutinė schemos sąvoka"@lt, "Top concept of"@en ; + rdfs:isDefinedBy : . + +rov:legalName a rdf:Property ; + rdfs:label "Registruotas pavadinimas"@lt, "Legal name"@en ; + rdfs:isDefinedBy : . + +rov:orgStatus a rdf:Property ; + rdfs:label "Teisinis statusas"@lt, "Organization status"@en ; + rdfs:isDefinedBy : . + +rov:companyType a rdf:Property ; + rdfs:label "Teisinė forma"@lt, "Company type"@en ; + rdfs:isDefinedBy : . + +org:hasRegisteredSite a rdf:Property ; + rdfs:label "Registruota buveinė"@lt, "Has registered site"@en ; + rdfs:isDefinedBy : . + +org:siteAddress a rdf:Property ; + rdfs:label "Adresas"@lt, "Site address"@en ; + rdfs:isDefinedBy : . + +locn:postCode a rdf:Property ; + rdfs:label "Pašto kodas"@lt, "Post code"@en ; + rdfs:isDefinedBy : . + # views # Territorial hierarchy: children point up via dct:isPartOf, every parent is a # cv:AdminUnit, so one view covers county→municipalities, municipality→ diff --git a/files/overrides.xsl b/files/overrides.xsl index 7842acc..cb0cc53 100644 --- a/files/overrides.xsl +++ b/files/overrides.xsl @@ -32,6 +32,7 @@ + ]> + + + + + + + + +