● <Identifikátory kořenových pojmů> jsou identifikátory pojmů v tezauru, které ve stejném tezauru nemají rodiče (nejsou subjek tem vazby skos:broader). Mohou mít však rodiče v jiných slovnících (skos:broadMatch), ● <identifikátor kolekce> je identifikátor kolekce vlastních pojmů tezauru, ● <Identifikátory vlastních pojmů> jsou identifikátory vlastních pojmů tezauru.
Pojem definovaný v tezauru je vyjádřen dle následujícího předpisu: <Identifikátor pojmu> a skos:Concept; skos:prefLabel "<název pojmu>"@cs ; skos:altLabel "<alternativní název pojmu>"@cs ; skos:definition "<definice pojmu>"@cs; dcterms:source "<zdroj pojmu>"; skos:broader <nadřazené pojmy>; skos:inScheme <identifikátor tezauru>; skos:scopeNote "<doplňující poznámka>"@cs .
kde ● <Identifikátor pojmu> je globální identifikátor pojmu definovaného v tezauru dle pravidel pro tvorbu identifikátorů pojmů uvedených výše, ● <název pojmu> je název pojmu v češtině, ● <alternativní název pojmu> je synonymum, zkratka, nebo jiný alternativní název pojmu v češtině, ● <definice pojmu> je definice pojmu v češtině, ● <zdroj pojmu> je zdroj definice pojmu ve tvaru IRI identifikující co nejpřesnější část dokumentu, kde je pojem definován, případně odkaz na metadata popisující tuto částo dokumentu, ● <identifikátor tezauru> je iden tifikátor tezauru, ve kterém je pojem vlastní nebo přejatý, ● <doplňující poznámka> je doplňující poznámka pojmu v češtině.
V rámci jednoho slovníku nesmí existovat dva pojmy sdílející stejný název (mohou však sdílet stejné alternativní názvy, nebo se název jednoho pojmu může shodovat s alternativním názvem pojmu jiného). Mohou se však v různých slovnících vyskytovat pojmy sdílející stejný název.
Příklady SKOS realizací lze nalézt v GitHub repozitáři s obsahem sémantického slovníku pojmů veřejné správy, viz např. tezaurus zákona 256/2013 Sb.
Příklad SKOS reprezentace tezauru (vybrané pojmy z příkladu výše):
@prefix skos: http://www.w3.org/2004/02/skos/core# . @prefix dcterms: http://purl.org/dc/terms/ . @prefix sgov-66002222: https://slovník.gov.cz/66002222/ .
sgov-66002222:7 a z-sgov:glosář, owl:Ontology, skos:ConceptScheme;
skos:hasTopConcept sgov-66002222:2, sgov-66002222:4, sgov-66002222:5, sgov-66002222:6;
dcterms:hasPart sgov-66002222:70;
sgov-66002222:70 a skos:Collection;
skos:member sgov-66002222:1.
sgov-66002222:1 a skos:Concept;
skos:prefLabel "budova"@cs;
skos:broader sgov-66002222:2;
skos:definition "Nadzemní stavba spojená se zemí pevným základem, která je prostorově soustředěna a
navenek převážně uzavřena obvodovými stěnami a střešní konstrukcí."@cs;
dcterms:source https://www.zakonyprolidi.cz/cs/2013-256#p2-1-l ;
skos:inScheme sgov-66002222:7;
skos:scopeNote "Zahrnuje rovněž např. skladové haly, či autobusové zastávky."@cs .
sgov-66002222:2 a skos:Concept;
skos:prefLabel "stavba"@cs;
skos:definition "Stavbou se rozumí veškerá stavební díla, která vznikají stavební nebo montážní
technologií, bez zřetele na jejich stavebně technické provedení, použité stavební výrobky, materiály a
konstrukce, na účel využití a dobu trvání. Za stavbu se považuje také výrobek plnící funkci stavby."@cs;
dcterms:source https://www.zakonyprolidi.cz/cs/2006-183#p2-3;
skos:inScheme sgov-66002222:7.
sgov-66002222:3 a skos:Concept;
skos:prefLabel "má adresu"@cs;
skos:definition "Vztahy tohoto typu slouží k vyjádření adresy budovy. Budova má nejvýše jednu adresu.";
skos:inScheme sgov-66002222:7.
sgov-66002222:4 a skos:Concept; skos:prefLabel "adresa"@cs; skos:definition "kombinace názvu okresu, názvu obce nebo vojenského újezdu, názvu části obce nebo v případě hlavního města Prahy názvu katastrálního území a názvu obvodu, čísla popisného nebo evidenčního, názvu ulice a čísla orientačního a dále zvláštních údajů pro doručování prostřednictvím poštovních služeb, která jednoznačně určuje adresní místo."; dcterms:source "§ 29 písm. h) zákona č. 111/2009 Sb. o základních registrech"; skos:inScheme sgov-66002222:7.
sgov-66002222:5 a skos:Concept; skos:prefLabel "ulice"@cs; skos:inScheme sgov-66002222:7.
sgov-66002222:6 a skos:Concept; skos:prefLabel "číslo popisné"@cs; skos:inScheme sgov-66002222:7.
sgov-66002222:61 a skos:Concept; skos:prefLabel "stavební řízení"@cs; skos:inScheme sgov-66002222:7. 5.4. Struktura konceptuálního modelu Konceptuální modely jsou vyjádřeny v jazyce OWL, viz OWL Abstract syntax and Semantics, 2012. Konceptuální model má formu OWL dokumentu následujícího tvaru: <identifikátor modelu> a z-sgov:model, owl:Ontology ; owl:imports <identifikátor tezauru> . kde ● <Identifikátor modelu> je globální identifikátor modelu, ● <identifikátor tezauru> je globální identifikátor tezauru, nad kterým je model tvořen.
Jednotlivé grafické konstrukty konceptuálního modelu se překládají do OWL reprezentace takto. Hodnoty minimální kardinality 0 a maximální kardinality * není nutné explicitně vyjadřovat. Pro názornost ukazujeme na konkrétních příkladech. Pro jiné hodnoty kardinalit a jiné objekty je reprezentace zcela analogická:
sgov-66002222:61 a
owl:Class, z-sgov:typ-události .
sgov-66002222:2 a
owl:Class, z-sgov:typ-objektu .
sgov-66002222:3 a
owl:Class, z-sgov:typ-vztahu .
sgov-66002222:5 a
owl:Class, z-sgov:typ-vlastnosti .
sgov-66002222:61 rdfs:subClassOf
[ a owl:Restriction; owl:onProperty z-sgov:má-účastníka;
owl:minQualifiedCardinality 1;
owl:onClass sgov-66002222:2 ],
[ a owl:Restriction; owl:onProperty z-sgov:má-účastníka;
owl:allValuesFrom sgov-66002222:2 ].
sgov-66002222:2 rdfs:subClassOf
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:má-účastníka ];
owl:minQualifiedCardinality 1;
owl:onClass sgov-66002222:61 ],
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:má-účastníka ];
owl:allValuesFrom sgov-66002222:61 ].
sgov-66002222:1
rdfs:subClassOf sgov-66002222:2 .
sgov-66002222:3 rdfs:subClassOf
[ a owl:Restriction; owl:onProperty z-sgov:má-vztažený-prvek-1;
owl:qualifiedCardinality 1 ;
owl:onClass sgov-66002222:1 ],
[ a owl:Restriction; owl:onProperty z-sgov:má-vztažený-prvek-1;
owl:allValuesFrom sgov-66002222:1 ],
[ a owl:Restriction; owl:onProperty z-sgov:má-vztažený-prvek-2;
owl:qualifiedCardinality 1 ;
owl:onClass sgov-66002222:4 ],
[ a owl:Restriction; owl:onProperty z-sgov:má-vztažený-prvek-2;
owl:allValuesFrom sgov-66002222:4 ] .
sgov-66002222:1 rdfs:subClassOf
[ a owl:Restriction; owl:onProperty
[ owl:inverseOf z-sgov:má-vztažený-prvek-1> ];
owl:minQualifiedCardinality 0;
owl:onClass sgov-66002222:3 ],
[ a owl:Restriction; owl:onProperty
[ owl:inverseOf z-sgov:má-vztažený-prvek-1> ];
owl:maxQualifiedCardinality 1;
owl:onClass sgov-66002222:3 ],
sgov-66002222:4 rdfs:subClassOf
[ a owl:Restriction; owl:onProperty
[ owl:inverseOf z-sgov:má-vztažený-prvek-1> ];
owl:minQualifiedCardinality 0;
owl:onClass sgov-66002222:3 ].
sgov-66002222:5 rdfs:subClassOf
[ a owl:Restriction; owl:onProperty z-sgov:je-vlastností;
owl:qualifiedCardinality 1;
owl:onClass sgov-66002222:4 ],
[ a owl:Restriction; owl:onProperty z-sgov:je-vlastností;
owl:allValuesFrom sgov-66002222:4 ].
sgov-66002222:4 rdfs:subClassOf
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:je-vlastností ];
owl:qualifiedCardinality 1;
owl:onClass sgov-66002222:5 ],
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:je-vlastností ];
owl:allValuesFrom sgov-66002222:5 ].
Např. konceptuální model v příkladu z kapitoly Úvod lze reprezentovat jako
Příklad OWL reprezentace modelu
Např. konceptuální model v příkladu z kapitoly Konceptuální modely lze reprezentovat jako
@prefix skos: http://www.w3.org/2004/02/skos/core# . @prefix dcterms: http://purl.org/dc/terms/ . @prefix sgov-66002222: https://slovník.gov.cz/66002222/ . @prefix zsgov-pojem: https://slovník.gov.cz/základní/pojem/ .
sgov-66002222:8 a owl:Ontology, z-sgov:model;
dcterms:created "2021-07-05T13:17:00.851Z"^^xsd:dateTime;
dcterms:title "Konceptuální model budov"@cs;
owl:imports sgov-66002222:7.
sgov-66002222:1 a z-sgov:typ-objektu, owl:Class ; rdfs:subClassOf
sgov-66002222:2,
[ a owl:Restriction; owl:onProperty
[ owl:inverseOf z-sgov:má-vztažený-prvek-1> ];
owl:minQualifiedCardinality 0;
owl:onClass sgov-66002222:3 ],
[ a owl:Restriction; owl:onProperty
[ owl:inverseOf z-sgov:má-vztažený-prvek-1> ];
owl:maxQualifiedCardinality 1;
owl:onClass sgov-66002222:3 ],
sgov-66002222:2 a z-sgov:typ-objektu, owl:Class ; rdfs:subClassOf
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:má-účastníka ];
owl:minQualifiedCardinality 1;
owl:onClass sgov-66002222:61 ],
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:má-účastníka ];
owl:allValuesFrom sgov-66002222:61 ].
sgov-66002222:3 a z-sgov:typ-vztahu, owl:Class; rdfs:subClassOf
[ a owl:Restriction; owl:onProperty z-sgov:má-vztažený-prvek-1;
owl:qualifiedCardinality 1 ;
owl:onClass sgov-66002222:1 ],
[ a owl:Restriction; owl:onProperty z-sgov:má-vztažený-prvek-1;
owl:allValuesFrom sgov-66002222:1 ],
[ a owl:Restriction; owl:onProperty z-sgov:má-vztažený-prvek-2;
owl:qualifiedCardinality 1 ;
owl:onClass sgov-66002222:4 ],
[ a owl:Restriction; owl:onProperty z-sgov:má-vztažený-prvek-2;
owl:allValuesFrom sgov-66002222:4 ] .
sgov-66002222:4 a z-sgov:typ-objektu, owl:Class; rdfs:subClassOf
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:je-vlastností ];
owl:qualifiedCardinality 1;
owl:onClass sgov-66002222:5 ],
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:je-vlastností ];
owl:allValuesFrom sgov-66002222:5 ],
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:je-vlastností ];
owl:qualifiedCardinality 1;
owl:onClass sgov-66002222:6 ],
[ a owl:Restriction; owl:onProperty
[ owl:inverseof z-sgov:je-vlastností ];
owl:allValuesFrom sgov-66002222:6 ].
sgov-66002222:5 a z-sgov:typ-vlastnosti, owl:Class; rdfs:subClassOf
[ a owl:Restriction; owl:onProperty z-sgov:je-vlastností;
owl:qualifiedCardinality 1;
owl:onClass sgov-66002222:4 ],
[ a owl:Restriction; owl:onProperty z-sgov:je-vlastností;
owl:allValuesFrom sgov-66002222:4 ].
sgov-66002222:6 a z-sgov:typ-vlastnosti, owl:Class; rdfs:subClassOf
[ a owl:Restriction; owl:onProperty z-sgov:je-vlastností;
owl:qualifiedCardinality 1;
owl:onClass sgov-66002222:4 ],
[ a owl:Restriction; owl:onProperty z-sgov:je-vlastností;
owl:allValuesFrom sgov-66002222:4 ].
sgov-66002222:61 a z-sgov:typ-události, owl:Class; rdfs:subClassOf
[ a owl:Restriction; owl:onProperty z-sgov:má-účastníka;
owl:minQualifiedCardinality 1;
owl:onClass sgov-66002222:2 ],
[ a owl:Restriction; owl:onProperty z-sgov:má-účastníka; owl:allValuesFrom sgov-66002222:2 ].
Tato reprezentace je úplná a lze ji využít na definici kardinality a dalších složitějších omezení. Cenou za ni je složitost. Alternativní kompaktní vyjádření modelů je diskutováno v Koncepce sémantického slovníku pojmů, výstup projektu Implementace strategií v oblasti otevřených dat II, CZ.03.4.74/0.0/0.0/15_025/0004172. 5.5. Struktura mapování Mapování jsou vyjádřena v jazyce OWL v této podobě: <identifikátor mapování> a z-sgov:mapování, owl:Ontology .. kde <Identifikátor mapování> je globální identifikátor mapování.
Jednotlivá mapovací pravidla se vyjadřují v podobě rdfs:subClassOf axiomů pro specializační mapování: <identifikátor pojmu> rdfs:subClassOf <identifikátor externího pojmu> .
resp. owl:equivalentClass axiomů pro ekvivalentní mapování:
<identifikátor pojmu> owl:equivalentClass <identifikátor externího pojmu> .
kde ● <Identifikátor pojmu> je globální identifikátor pojmu z daného slovníku, ● <identifikátor externího pojmu> je globální identifikátor pojmu ze slovníku mimo SGoV.
Příklad OWL reprezentace mapování
Příklad ukazuje mapování některých pojmů slovníku do dvou externích RDF slovníků - jmenovitě mapování Stavby (sgov-66002222:2) do slovníku schema.org a mapování Adresy (sgov-66002222:4) do slovníku Core Location Vocabulary.
@prefix skos: http://www.w3.org/2004/02/skos/core# . @prefix dcterms: http://purl.org/dc/terms/ . @prefix sgov-66002222: https://slovník.gov.cz/66002222/ . @prefix zsgov-pojem: https://slovník.gov.cz/základní/pojem/ . @prefix locn: http://www.w3.org/ns/locn# . @prefix schema: https://schema.org/Place .
sgov-66002222:8 a z-sgov:mapování, owl:Ontology.
sgov-66002222:4 rdfs:subClassOf locn:Address .
sgov-66002222:2 rdfs:subClassOf schema:Place .
Reference
[1] Definice scénářů využití konceptuálních modelů, výstup C5V1 projektu,
[2] Návrh a prototypování výrobní linky pro tvorbu a údržbu konceptuálních modelů
agend, výstup C5V3 projektu,
[3] Koncepce sémantického slovníku pojmů, výstup projektu Implementace strategií v
oblasti otevřených dat II, CZ.03.4.74/0.0/0.0/15_025/0004172
[4] Metodika pro definici údajů vedených v agendě, Správa základních registrů, cit.
3.1.2022.
[5] Linked Data Principles, 2009
[6] SKOS reference, 2009
[7] OWL Abstract syntax and Semantics, 2012
[8] Směrovací služba VDF, 2021
[9] Ontological foundations for structural conceptual models, 2005
[10]
Representing the UFO-B Foundational Ontology of Events in SROIQ, 2017
[11]
Extending the Foundations of Ontology-based Conceptual Modeling with a
Multi-Level Theory, 2015
[12]
BIBO Ontologie, 2016
[13]
Detailní návrh technického řešení informačních systémů eSbírka a
eLegislativa, 2018
Zkratky
Agendový informační systém
AIS
Application Programming Interface
API
Chief Data Officer
CDO
Internationalized Resource Identifier
IRI
Informační systém o datových prvcích
ISDP
Informační systém veřejné správy
ISVS Národní katalog otevřených dat
NKOD Orgán veřejné moci
OVM Web Ontology Language
OWL Resource Description Framework
RDF Representational State Transfer
REST
Sémantický slovník pojmů veřejné správy SGoV
Simple Knowledge Organization System
SKOS
Unified Foundational Ontology
UFO
Extensible Markup Language
XML
Seznam prefixů použitých v tomto dokumentu
skos
http://www.w3.org/2004/02/skos/core#
owl
http://www.w3.org/2002/07/owl#
dcterms
http://purl.org/dc/terms/
rdf
http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs
http://www.w3.org/2000/01/rdf-schema#
z-sgov
https://slovník.gov.cz/základní/
sgov
https://slovník.gov.cz/