diff --git "a/content/vocabularies/v-sgov/v-sgov-glos\303\241\305\231-ofn.ttl" "b/content/vocabularies/v-sgov/v-sgov-glos\303\241\305\231-ofn.ttl"
new file mode 100644
index 000000000..8cc14e8ad
--- /dev/null
+++ "b/content/vocabularies/v-sgov/v-sgov-glos\303\241\305\231-ofn.ttl"
@@ -0,0 +1,567 @@
+PREFIX a-popis-dat-pojem:
+PREFIX bibo:
+PREFIX dcterms:
+PREFIX owl:
+PREFIX rdf:
+PREFIX skos:
+PREFIX v-sgov:
+PREFIX v-sgov-pojem:
+PREFIX vann:
+PREFIX xsd:
+
+v-sgov-pojem:hlava rdf:type skos:Concept;
+ skos:broader , ;
+ skos:definition "Hlava jako část právního předpisu ze sbírky zákonů"@cs , "Chapter as a Part of Legal Norm from the Collection of Laws of the Czech Republic"@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Hlava"@cs , "Chapter"@en .
+
+v-sgov-pojem:má-lokalizaci-popisem
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:má-lokalizaci;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má lokalizaci popisem"@cs .
+
+v-sgov-pojem:má-platnost
+ rdf:type skos:Concept;
+ skos:broader , ;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má platnost"@cs .
+
+v-sgov-pojem:bezkontextový-dokument
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:dokument;
+ skos:definition "Context-free document is a document which is self-standing and does not require another document to interpret it."@en , "Bezkontextový dokument je dokument, který je samonosný a nevyžaduje ke své interpretaci kontext"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Context-free Document"@en , "Bezkontextový dokument"@cs .
+
+v-sgov-pojem:písmeno rdf:type skos:Concept;
+ skos:broader , ;
+ skos:definition "Písmeno jako část právního předpisu ze sbírky zákonů"@cs , "Letter as a Part of Legal Norm from the Collection of Laws of the Czech Republic"@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Písmeno"@cs , "Letter"@en .
+
+v-sgov-pojem:eviduje-položku-evidenčního-systému
+ rdf:type skos:Concept;
+ dcterms:title "eviduje"@cs;
+ skos:altLabel "eviduje"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "records evidence system record"@en , "eviduje položku evidenčního systému"@cs .
+
+v-sgov-pojem:právní-událost
+ rdf:type skos:Concept;
+ skos:broader ;
+ skos:definition "Právní událost je je právní skutečnost, která vzniká nezávisle na vůli právních subjektů."@cs , "Legal event is a legal transaction, occurrence of which is independent on the legal subject will."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Právní událost"@cs , "Legal Event"@en .
+
+v-sgov-pojem:položka rdf:type skos:Concept;
+ dcterms:source "";
+ skos:definition "Položka je proměnný prvek evidovaný v datové sadě. Položka má vlastní identitu."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Položka"@cs .
+
+v-sgov-pojem:organizace
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Organization is any group of people, which is also an agent."@en , "Organizace je uskupení lidí, které je agentem."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Organization"@en , "Organizace"@cs .
+
+v-sgov-pojem:má-lokalizaci-názvem
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:má-lokalizaci-popisem;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má lokalizaci názvem"@cs .
+
+v-sgov-pojem:veřejnoprávní-korporace
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:organizace;
+ skos:definition "Veřejnoprávní korporace je organizace, která je založena na základě zákona a které byla svěřena pravomoc plnit vymezené úkoly ve veřejné správě."@cs , "A statutory corporation is a corporation created by the state."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Veřejnoprávní korporace"@cs , "Statutory corporation"@en .
+
+v-sgov-pojem:lokalizace-prostorového-objektu
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:prostorový-objekt;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Lokalizace prostorového objektu"@cs .
+
+v-sgov-pojem:má-přílohu
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má přílohu"@cs , "has attachment"@en .
+
+v-sgov:glosář rdf:type owl:Ontology , skos:ConceptScheme , owl:NamedIndividual , a-popis-dat-pojem:glosář;
+ dcterms:created ;
+ dcterms:rights ;
+ bibo:status "Specification"@en , "Specifikace"@cs;
+ vann:preferredNamespacePrefix "v-sgov-pojem";
+ vann:preferredNamespaceUri "https://slovník.gov.cz/veřejný-sektor/pojem/";
+ owl:imports ;
+ owl:versionIRI ;
+ skos:hasTopConcept v-sgov-pojem:má-znění , v-sgov-pojem:povinnost , v-sgov-pojem:název-právního-předpisu , v-sgov-pojem:typ-znalostní-struktury-dle-úrovně , v-sgov-pojem:je-evidencí-pro , v-sgov-pojem:způsobilost-k-právnímu-jednání , v-sgov-pojem:jméno-právnické-osoby , v-sgov-pojem:datová-sada , v-sgov-pojem:spravuje , v-sgov-pojem:má-kontext , v-sgov-pojem:má-čas-poslední-aktualizace , v-sgov-pojem:eviduje-položku-evidenčního-systému , v-sgov-pojem:výkon-svrchované-moci , v-sgov-pojem:má-přílohu , v-sgov-pojem:příjmení , v-sgov-pojem:člověk , v-sgov-pojem:část-znění-právního-předpisu , v-sgov-pojem:má-zdrojový-předpis , v-sgov-pojem:subjekt-práva , v-sgov-pojem:křestní-jméno , v-sgov-pojem:pokrývá-oblast , v-sgov-pojem:typ-objektu-práva , v-sgov-pojem:má-část-znění , v-sgov-pojem:název-pojmenovaného-prvku , v-sgov-pojem:popsaný-prvek , v-sgov-pojem:položka , v-sgov-pojem:novela-právního-předpisu , v-sgov-pojem:prostorový-objekt , v-sgov-pojem:organizace , v-sgov-pojem:objekt-práva , v-sgov-pojem:konsolidované-znění-právního-předpisu , v-sgov-pojem:popisuje , v-sgov-pojem:způsobilost-k-právům-a-povinnostem , v-sgov-pojem:novelizuje , v-sgov-pojem:eviduje , v-sgov-pojem:informační-systém , v-sgov-pojem:právo , v-sgov-pojem:znění-právního-předpisu , v-sgov-pojem:má-platnost , v-sgov-pojem:digitální-objekt , v-sgov-pojem:vyhlášené-znění-právního-předpisu , v-sgov-pojem:dokument , v-sgov-pojem:popis-popsaného-prvku , v-sgov-pojem:způsobilost-k-protiprávnímu-jednání , v-sgov-pojem:má-lokalizaci , v-sgov-pojem:má-administrativní-platnost-položky , v-sgov-pojem:právní-vztah , v-sgov-pojem:má-čas-vytvoření , v-sgov-pojem:položka-evidenčního-systému , v-sgov-pojem:typ-evidenčního-systému , v-sgov-pojem:typ-subjektu-práva;
+ skos:prefLabel "Public Sector vocabulary (V-SGoV) - glossary"@en , "Slovník veřejného sektoru (V-SGoV) - glosář"@cs .
+
+v-sgov-pojem:protiprávní-jednání
+ rdf:type skos:Concept;
+ skos:broader ;
+ skos:definition "Unlawful act is a legal fact that is contrary to or violates a law that exist."@en , "Protiprávní jednání je právní skutečnost, která je v rozporu s právem."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Unlawful act"@en , "Protiprávní jednání"@cs .
+
+v-sgov-pojem:křestní-jméno
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Křestní jméno člověka"@cs , "Human First name"@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Křestní jméno"@cs , "First name"@en .
+
+v-sgov-pojem:název-právního-předpisu
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Název právního předpisu"@cs;
+ skos:scopeNote ""@cs .
+
+v-sgov-pojem:orgán-veřejné-moci
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:organizace;
+ skos:definition "Public Authority is an organization which has a legal mandate to govern, administrate some part of public life."@en , "Orgán veřejné moci je organizace, která reprezentuje veřejnou moc a je ze zákona oprávněna autoritativně rozhodovat o právech a povinnostech osob."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Public Authority"@en , "Orgán veřejné moci"@cs .
+
+v-sgov-pojem:protiprávní-stav
+ rdf:type skos:Concept;
+ skos:broader ;
+ skos:definition "Unlawful state is a legal transaction which is contrary the law and which is independent on the legal subject will."@en , "Protiprávní stav je právní skutečnost, která je v rozporu s právem a není úmyslná. "@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Unlawful State"@en , "Protiprávní stav"@cs .
+
+
+ rdf:type ;
+
+ "2020-06-29"^^xsd:date .
+
+v-sgov-pojem:popisuje
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "popisuje"@cs , "describes"@en .
+
+v-sgov-pojem:evidenční-systém
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:datová-sada;
+ skos:definition "Evidenční systém je datová sada, která eviduje proměnné prvky."@cs , "Evidence System is a data set which records endurants."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Evidenční systém"@cs , "Evidence System"@en .
+
+v-sgov-pojem:kontextový-dokument
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:dokument;
+ skos:definition "Kontextový dokument je dokument, který je vyžaduje ke své interpretaci kontext"@cs , "Context document is a document which requires another document to interpret it."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Kontextový dokument"@cs , "Context Document"@en .
+
+v-sgov-pojem:název-pojmenovaného-prvku
+ rdf:type skos:Concept;
+ skos:altLabel "název"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "název pojmenovaného prvku"@cs , "described entity name"@en .
+
+v-sgov-pojem:má-čas-poslední-aktualizace
+ rdf:type skos:Concept;
+ skos:altLabel "aktualizován"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má čas poslední aktualizace"@cs , "has last update time"@en .
+
+v-sgov-pojem:příjmení
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Příjmení člověka"@cs , "Human Surname"@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Surname"@en , "Příjmení"@cs .
+
+v-sgov-pojem:má-část-znění
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má část znění"@cs .
+
+v-sgov-pojem:právo rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "RIght is a legal possibility of a legal subject to act in some way."@en , "Právo je právní možnost právního subjektu se nějak chovat."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Right"@en , "Právo"@cs .
+
+v-sgov-pojem:spravuje
+ rdf:type skos:Concept;
+ skos:definition "Vztah mezi informačním systémem a datovou sadou. Informační systém spravuje datovou sadu. Všechna data uložená v úložišti (typicky databáze), ke které informační systém přistupuje, tvoří okamžitou verzi této datové sady."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "spravuje"@cs .
+
+v-sgov-pojem:primární-objekt-práva
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:objekt-práva;
+ skos:definition "Primární objekt práva je druh chování, které má vykonat jeden ze subjektů práva."@cs , "Legal subject is the type of behaviour that one of the legal subjects should perform."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Primární objekt práva"@cs , "Primary Legal Object"@en .
+
+v-sgov-pojem:odstavec
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:část-znění-právního-předpisu;
+ skos:definition "Section as a Part of Legal Norm from the Collection of Laws of the Czech Republic"@en , "Odstavec jako část právního předpisu ze sbírky zákonů"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Section"@en , "Odstavec"@cs .
+
+v-sgov-pojem:má-definiční-lokalizaci
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:má-lokalizaci;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má definiční lokalizaci"@cs .
+
+v-sgov-pojem:lokalizace-vyjádřená-prostorovým-objektem
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:prostorový-objekt , v-sgov-pojem:lokalizace-prostorového-objektu;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Lokalizace vyjádřená prostorovým objektem"@cs .
+
+v-sgov-pojem:má-vztah-k-prostorovému-objektu
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:má-lokalizaci;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má vztah k prostorovému objektu"@cs .
+
+v-sgov-pojem:geometrie
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:lokalizace-prostorového-objektu;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Geometrie"@cs .
+
+v-sgov-pojem:novela-právního-předpisu
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Novela právního předpisu"@cs .
+
+v-sgov-pojem:konsolidované-znění-právního-předpisu
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Konsolidované znění právního předpisu"@cs .
+
+v-sgov-pojem:má-geometrii
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:má-lokalizaci;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má geometrii"@cs .
+
+v-sgov-pojem:typ-objektu-práva
+ rdf:type skos:Concept;
+ skos:broader ;
+ skos:definition "Typ jehož instance jsou podtřídami Objektu práva."@cs , "Legal Object Type instances are sub-classes of Legal Object."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Typ objektu práva"@cs , "Legal Object Type"@en .
+
+v-sgov-pojem:právní-jednání
+ rdf:type skos:Concept;
+ skos:broader ;
+ skos:definition "Právní jednání je vědomé jednání člověka s právními následky."@cs , "Legal transactions are the means by which legal subjects can change the legal positions of themselves or other persons intentionally."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Právní jednání"@cs , "Legal transaction"@en .
+
+v-sgov-pojem:znalostní-struktura
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:datová-sada;
+ skos:definition "Znalostní struktura označuje datovou sadu, která je slouží ke sdílení významu odborných pojmů."@cs , "Knowledge Structure is a data set serving for sharing meaning of terms."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Znalostní struktura"@cs , "Knowledge Structure"@en .
+
+v-sgov-pojem:stát rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:organizace;
+ skos:definition "Stát je organizace seskupující lidi podle území a státní moci ."@cs , "State is an organization which groups people according to the territory and sovereign power."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Stát"@cs , "State"@en .
+
+v-sgov-pojem:způsobilost-k-protiprávnímu-jednání
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Způsobilost k protiprávnímu jednání označuje schopnost nést právní odpovědnost za vlastní protiprávní jednání"@cs , "Capacity to unlawful acts denotes a capability to have legal responsibility for legal facts contrary the law."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Způsobilost k protiprávnímu jednání"@cs , "Capacity to unlawful acts"@en .
+
+v-sgov-pojem:eviduje rdf:type skos:Concept;
+ skos:broader , ;
+ skos:definition "'records' denotes a relator connecting an evidence system with an endurant."@en , "'eviduje' označuje relator spojující evidenční systém s evidovaným endurantem."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "records"@en , "eviduje"@cs .
+
+v-sgov-pojem:datová-sada
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Datová sada označuje množinu souvisejících dat."@cs , "Dataset is a set of related data."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Datová sada"@cs , "Dataset"@en .
+
+v-sgov-pojem:sekundární-objekt-práva
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:objekt-práva;
+ skos:definition "Sekundární objekt práva je objektem, jehož se týká primární objekt práva."@cs , "Secondary Legal Object is an object which the primary legal object deals with."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Sekundární objekt práva"@cs , "Secondary Legal Object"@en .
+
+v-sgov-pojem:je-evidencí-pro
+ rdf:type skos:Concept;
+ skos:broader , ;
+ skos:definition "'je evidencí pro'označuje relátor spojující typ evidenčního systému s typy proměnných prvků, které tento systém eviduje."@cs , "'is evidence for' denotes a relator connecting an evidence system type with endurant types, instances of which it records."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "is evidence for"@en , "Je evidencí pro"@cs .
+
+v-sgov-pojem:má-čas-vytvoření
+ rdf:type skos:Concept;
+ skos:altLabel "vytvořen"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má čas vytvoření"@cs , "has creation time"@en .
+
+v-sgov-pojem:jméno-právnické-osoby
+ rdf:type skos:Concept;
+ skos:altLabel "Název"@cs , "Jméno"@cs;
+ skos:broader , , ;
+ skos:definition "Jméno právnické osoby"@cs , "Legal entity name"@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Jméno právnické osoby"@cs .
+
+v-sgov-pojem:právní-předpis
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:bezkontextový-dokument;
+ skos:definition "Právní předpis je mandatorním pravidlem nebo jejich souborem vytvořených státem a popisujících společenské chování."@cs , "Legal Norm is a mandatory rule of social behavior established by the state"@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Právní předpis"@cs , "Legal Norm"@en .
+
+v-sgov-pojem:popsaný-prvek
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "described entity"@en , "Popsaný prvek"@cs .
+
+v-sgov-pojem:znění-právního-předpisu
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Znění právního předpisu"@cs .
+
+v-sgov-pojem:digitální-objekt
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Digitální objekt"@cs .
+
+v-sgov-pojem:typ-evidenčního-systému
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Typ evidenčního systému označuje typ jehož instance kategorizují evidenční systémy."@cs , "Evidence System Type denotes a type instances of which categorize evidence systems."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Typ evidenčního systému"@cs , "Evidence System Type"@en .
+
+v-sgov-pojem:legislativní-znalostní-struktura
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:znalostní-struktura;
+ skos:definition "Legislativní znalostní struktura je znalostní struktura pro právní předpisy."@cs , "Legislative Knowledge Structure is a knowledge structure for legal norms."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Legislativní znalostní struktura"@cs , "Legislative Knowledge Structure"@en .
+
+v-sgov-pojem:právnická-osoba
+ rdf:type skos:Concept;
+ skos:broader v-sgov-pojem:subjekt-práva , v-sgov-pojem:organizace , , ;
+ skos:definition "Právnická osoba je organizací, která je subjektem práva."@cs , "Legal Person is an organization as a legal subject."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Legal Entity"@en , "Právnická osoba"@cs .
+
+v-sgov-pojem:typ-subjektu-práva
+ rdf:type skos:Concept;
+ skos:broader ;
+ skos:definition "Typ jehož instance jsou podtřídami Subjektu práva."@cs , "Legal Subject Type instances are sub-classes of Legal Subject."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Typ subjektu práva"@cs , "Legal Subject Type"@en .
+
+v-sgov-pojem:právní-předpis-ze-sbírky-zákonů
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:právní-předpis;
+ skos:definition "Právní předpis ze sbírky zákonů označuje právní předpis vydaný ve Sbírce zákonů ČR."@cs , "Legal norm from the Collection of Laws of the Czech Republic is a legal norm which is issued as a part of the Collection of laws of the Czech Republic."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Právní předpis ze Sbírky zákonů"@cs , "Legal norm from the Collection of Laws of the Czech Republic"@en .
+
+v-sgov-pojem:lokalizace-popisem
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:lokalizace-prostorového-objektu;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Lokalizace popisem"@cs .
+
+v-sgov-pojem:výkon-svrchované-moci
+ rdf:type skos:Concept;
+ skos:broader , ;
+ skos:definition "Výkon svrchované moci označuje působení svrchované moci (státu) nad svým územím a obyvateli."@cs , "Exercise of sovereign power denotes acts over its land and people."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Výkon svrchované moci"@cs , "Exercise of sovereign power"@en .
+
+v-sgov-pojem:má-kontext
+ rdf:type skos:Concept;
+ skos:broader , ;
+ skos:definition "má kontext je vztah spojující kontextový dokument a dokument nutný k jeho interpretaci."@cs , "has context is a relation connecting a context document and the document that is needed to interpret it."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má kontext"@cs , "has context"@en .
+
+v-sgov-pojem:geografický-název
+ rdf:type skos:Concept;
+ skos:broader , v-sgov-pojem:lokalizace-popisem;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Geografický název"@cs .
+
+v-sgov-pojem:způsobilost-k-právům-a-povinnostem
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Způsobilost k právům a povinnostem označuje vlastnost subjektu práva mít práva a povinnosti, pokud nastanou právem předvídané okolnosti. "@cs , "Capacity to Rights and Duties is a possibility of a legal subject to have rights and duties."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Způsobilost k právům a povinnostem"@cs , "Capacity to Rights and Duties"@en .
+
+v-sgov-pojem:vyhlášené-znění-právního-předpisu
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Vyhlášené znění právního předpisu"@cs .
+
+v-sgov-pojem:popis-popsaného-prvku
+ rdf:type skos:Concept;
+ skos:altLabel "popis"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "popis popsaného prvku"@cs , "described entity description"@en .
+
+v-sgov-pojem:fyzická-osoba
+ rdf:type skos:Concept;
+ skos:broader v-sgov-pojem:člověk , , v-sgov-pojem:subjekt-práva , ;
+ skos:definition "Natural Person is a human as a legal subject."@en , "Fyzická osoba je člověkem, který je subjektem práva."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Natural Person"@en , "Fyzická osoba"@cs .
+
+v-sgov-pojem:způsobilost-k-právnímu-jednání
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Způsobilost k právnímu jednání označuje schopnost vlastním jednáním nabývat práv a plnit povinnosti."@cs , "Legal Capacity is a capability to exercise rights and duties."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Způsobilost k právnímu jednání"@cs , "Legal Capacity"@en .
+
+v-sgov-pojem:subjekt-práva
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Subjekt práva je osoba, která se účastní právních vztahů."@cs , "Legal Subject is a person participating in one or more legal relationships."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Subjekt práva"@cs , "Legal Subject"@en .
+
+v-sgov-pojem:právní-vztah
+ rdf:type skos:Concept;
+ skos:broader , ;
+ skos:definition "Právní vztah je společenský vztah dvou nebo více subjektů práva, které mají vzájemná práva a povinnosti"@cs , "Legal Relationship is a social relation of two or more legal subjects that have mutual rights and obligations"@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Právní vztah"@cs , "Legal Relationship"@en .
+
+v-sgov-pojem:povinnost
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Povinnost je závazek něco udělat, dát, nedělat, nebo strpět."@cs , "Duty is a commitment to do, give, omit to do, or tolerate."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Povinnost"@cs , "Duty"@en .
+
+v-sgov-pojem:má-zdrojový-předpis
+ rdf:type skos:Concept;
+ skos:broader , ;
+ skos:definition "'má zdrojový předpis' označuje vztah mezi legislativní znalostní strukturou a právním předpisem."@cs , "'has source norm' denotes a relation between a legislative knowledge structure and the legal norm it describes."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má zdrojový předpis"@cs , "has source norm"@en .
+
+v-sgov-pojem:paragraf
+ rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:část-znění-právního-předpisu;
+ skos:definition "Paragraph as a Part of Legal Norm from the Collection of Laws of the Czech Republic"@en , "Paragraf jako část právního předpisu ze sbírky zákonů"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Paragraph"@en , "Paragraf"@cs .
+
+v-sgov-pojem:má-znění
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má znění"@cs .
+
+v-sgov-pojem:právní-skutečnost
+ rdf:type skos:Concept;
+ skos:broader ;
+ skos:definition "Právní skutečnost je okolnost, se kterou právní norma spojuje vznik, změnu nebo zánik právního vztahu, tj. subjektivních práv a povinností"@cs , "Legal fact is a circumstance with which a legal norm connects creation. change or destruction of a legal relationship."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Právní skutečnost"@cs , "Legal Fact"@en .
+
+v-sgov-pojem:člověk rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Člověk je rod živočichů."@cs , "Human is the genus that encompasses the species Homo sapiens."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Člověk"@cs , "Human"@en .
+
+v-sgov-pojem:část-znění-právního-předpisu
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Část znění právního předpisu"@cs .
+
+v-sgov-pojem:pokrývá-oblast
+ rdf:type skos:Concept;
+ skos:definition "Vymezuje významovou oblast (doménu), kterou pokrývá evidenční systém a v něm evidované položky."@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "pokrývá oblast"@cs .
+
+v-sgov-pojem:položka-evidenčního-systému
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Položka evidenčního systému"@cs .
+
+v-sgov-pojem:dokument
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Dokument je psaný, tištěný nebo elektronický materiál poskytujícího informace."@cs , "Document is a piece of written, printed, or electronic matter that provides information."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Dokument"@cs , "Document"@en .
+
+v-sgov-pojem:typ-znalostní-struktury-dle-úrovně
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Typ znalostní struktury dle úrovně označuje typ, jehož instance jsou kategoriemi znalostních struktur."@cs , "Knowledge Structure Type According to the Level is a type instances of which are categories of knowledge structures."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Typ znalostní struktury dle úrovně"@cs , "Knowledge Structure Type According to the Level"@en .
+
+v-sgov-pojem:má-lokalizaci
+ rdf:type skos:Concept;
+ skos:broader , ;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má lokalizaci"@cs .
+
+v-sgov-pojem:má-administrativní-platnost-položky
+ rdf:type skos:Concept;
+ skos:altLabel "má platnost"@cs;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "má administrativní platnost položky"@cs .
+
+v-sgov-pojem:objekt-práva
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Objekt práva je příčinou vstupu subjektu do právního vztahu."@cs , "Legal object is the reason for establishing the Legal Relationship."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Objekt práva"@cs , "Legal Object"@en .
+
+v-sgov-pojem:informační-systém
+ rdf:type skos:Concept;
+ skos:broader , , ;
+ skos:definition "Informační systém je systém vzájemně propojených prostředků a procesů, které slouží k ukládání, zpracovávání a poskytování informací."@cs , "Information System is an organized system for the collection, organization, storage and communication of information."@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Informační systém"@cs , "Information System"@en .
+
+v-sgov-pojem:novelizuje
+ rdf:type skos:Concept;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "novelizuje"@cs .
+
+v-sgov-pojem:část rdf:type skos:Concept;
+ skos:broader , , v-sgov-pojem:část-znění-právního-předpisu;
+ skos:definition "Část jako část právního předpisu ze sbírky zákonů"@cs , "Part as a Part of Legal Norm from the Collection of Laws of the Czech Republic"@en;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Část"@cs , "Part"@en .
+
+v-sgov-pojem:prostorový-objekt
+ rdf:type skos:Concept;
+ skos:broader , ;
+ skos:inScheme v-sgov:glosář;
+ skos:prefLabel "Prostorový objekt"@cs .
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 62d4c0535..7454180f2 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 96c4d2df0..db9a6b825 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https://services.gradle.org/distributions/gradle-7.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index af6708ff2..1b6c78733 100755
--- a/gradlew
+++ b/gradlew
@@ -1,78 +1,129 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
##############################################################################
-##
-## Gradle start up script for UN*X
-##
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
##############################################################################
# Attempt to set APP_HOME
+
# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
+APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m"'
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
+MAX_FD=maximum
warn () {
echo "$*"
-}
+} >&2
die () {
echo
echo "$*"
echo
exit 1
-}
+} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
+ JAVACMD=$JAVA_HOME/jre/sh/java
else
- JAVACMD="$JAVA_HOME/bin/java"
+ JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -81,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
- JAVACMD="java"
+ JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
@@ -89,84 +140,95 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
fi
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
fi
- i=$((i+1))
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
fi
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
-fi
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
index 6d57edc70..107acd32c 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,3 +1,19 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m"
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
+if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -35,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto init
+if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -45,28 +64,14 @@ echo location of your Java installation.
goto fail
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/ofn/README.md b/ofn/README.md
new file mode 100644
index 000000000..32c613885
--- /dev/null
+++ b/ofn/README.md
@@ -0,0 +1,8 @@
+# Transformace do struktury OFN
+
+Tento projekt obsahuje nástroje pro transformaci SSP slovníků do formátu [OFN Slovníky](https://ofn.gov.cz/slovn%C3%ADky/).
+
+* Zatím je implementována pouze logika týkající se glosářů *
+- pravidla transformace jsou implementována jako sada [SPARQL Update dotazů](./src/main/resources/updates).
+- [SHACL profil](./src/main/resources/ofn-slovniky-shacl.ttl) pro validaci slovníku dle OFN, který je testován na [snippetech z OFN](src/test/resources/cz.gov.ssp.ofn.valid) a [vlastních příkladech](src/test/resources/cz.gov.ssp.ofn.invalid)
+- výsledný [VSGoV glosář](../content/vocabularies/v-sgov/v-sgov-glos%C3%A1%C5%99-ofn.ttl)
\ No newline at end of file
diff --git a/ofn/build.gradle.kts b/ofn/build.gradle.kts
new file mode 100644
index 000000000..567ff133f
--- /dev/null
+++ b/ofn/build.gradle.kts
@@ -0,0 +1,29 @@
+plugins {
+ kotlin("jvm") version "1.9.0"
+ id("io.freefair.lombok") version "8.7.1"
+}
+
+group = "cz.gov.ssp.ofn"
+version = "1.0-SNAPSHOT"
+
+tasks.test {
+ maxHeapSize = "4G"
+ useJUnitPlatform()
+}
+
+java {
+ toolchain {
+ languageVersion.set(JavaLanguageVersion.of(17))
+ }
+}
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ implementation("org.apache.jena:jena-shacl:5.0.0")
+ implementation("org.topbraid:shacl:1.4.3")
+ implementation("org.slf4j:slf4j-simple:1.7.32")
+ testImplementation("org.junit.jupiter:junit-jupiter:5.10.3")
+}
\ No newline at end of file
diff --git a/ofn/src/main/kotlin/TransformToOfn.kt b/ofn/src/main/kotlin/TransformToOfn.kt
new file mode 100644
index 000000000..0c4427e4b
--- /dev/null
+++ b/ofn/src/main/kotlin/TransformToOfn.kt
@@ -0,0 +1,29 @@
+import org.apache.jena.rdf.model.ModelFactory
+import org.apache.jena.update.UpdateAction
+import org.apache.jena.update.UpdateFactory
+import java.io.File
+import java.io.FileWriter
+import java.nio.charset.Charset
+
+class TransformToOfn
+
+fun main() {
+ val dir = "content/vocabularies"
+ val glossaryUrl = "$dir/v-sgov/v-sgov-glosář.ttl"
+ val outputUrl = "$dir/v-sgov/v-sgov-glosář-ofn.ttl"
+
+ val model = ModelFactory.createDefaultModel()
+ model.read(File(glossaryUrl).toURI().toString())
+
+ val list = listOf(
+ "updates/glossary-change-dcterms:title-to-skos:preflabel.rq",
+ "updates/glossary-fix-dcterms:created-datatype.rq"
+ )
+
+ val request = UpdateFactory.create()
+
+ list.forEach { request.add(TransformToOfn::class.java.getResource(it)?.readText(Charset.defaultCharset())) }
+ UpdateAction.execute(request, model);
+
+ model.write(FileWriter(outputUrl), "TURTLE")
+}
diff --git a/ofn/src/main/kotlin/Validator.kt b/ofn/src/main/kotlin/Validator.kt
new file mode 100644
index 000000000..2562771ea
--- /dev/null
+++ b/ofn/src/main/kotlin/Validator.kt
@@ -0,0 +1,35 @@
+import org.apache.jena.ontology.OntDocumentManager
+import org.apache.jena.ontology.OntModelSpec
+import org.apache.jena.rdf.model.Model
+import org.apache.jena.rdf.model.ModelFactory
+import org.apache.jena.riot.Lang
+import org.apache.jena.riot.RDFDataMgr
+import org.apache.jena.shacl.ShaclValidator
+import org.apache.jena.shacl.Shapes
+import org.apache.jena.shacl.ValidationReport
+import org.apache.jena.shacl.lib.ShLib
+import java.util.*
+
+class Validator {
+
+ /**
+ * Validates the given Model against the OFN SHACL shape.
+ */
+ fun validateTurtle(dataUri : String): ValidationReport {
+ val dataModel: Model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RDFS_INF)
+ OntDocumentManager.getInstance().processImports = false
+ dataModel.read(dataUri, "TURTLE")
+
+ val shapesUri = Objects.requireNonNull(javaClass.getResource("/ofn-slovniky-shacl.ttl")).toURI()
+ val shapesModel = ModelFactory.createDefaultModel()
+ OntDocumentManager.getInstance().processImports = false
+ shapesModel.read(shapesUri.toString())
+
+ val shapes = Shapes.parse(shapesModel.graph)
+
+ val report = ShaclValidator.get().validate(shapes, dataModel.graph)
+ ShLib.printReport(report)
+ RDFDataMgr.write(System.out, report.model, Lang.TTL)
+ return report;
+ }
+}
\ No newline at end of file
diff --git a/ofn/src/main/resources/ofn-slovniky-shacl.ttl b/ofn/src/main/resources/ofn-slovniky-shacl.ttl
new file mode 100644
index 000000000..8afde0ac8
--- /dev/null
+++ b/ofn/src/main/resources/ofn-slovniky-shacl.ttl
@@ -0,0 +1,210 @@
+@prefix : .
+@prefix time: .
+@prefix časy: .
+@prefix dcterms: .
+@prefix xsd: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+@prefix sh: .
+@prefix owl: .
+
+
+ a owl:Ontology ;
+ dcterms:created "2024-08-12"^^xsd:date ;
+ dcterms:modified "2024-08-12"^^xsd:date ;
+ dcterms:title "OFN Slovníky - SHACL omezení"@cs ;
+ dcterms:description "SHACL omezení reprezentující OFN Slovníky"@cs ;
+ owl:versionInfo "0.0.1-SNAPSHOT" ;
+.
+
+:počet-slovníků-schéma
+ a sh:NodeShape ;
+ sh:targetNode :počet-slovníků ; # A placeholder target node
+ sh:sparql [ a sh:SPARQLConstraint ;
+ sh:message "There must be exactly one skos:ConceptScheme in the data." ;
+ sh:select """
+ prefix skos:
+ SELECT $this
+ WHERE {
+ {
+ SELECT (COUNT(DISTINCT ?conceptScheme) AS ?count)
+ WHERE {
+ ?conceptScheme a skos:ConceptScheme .
+ }
+ }
+ FILTER (?count != 1)
+ }
+ """ ; ] .
+
+
+:slovník-schéma
+ a sh:NodeShape ;
+ dcterms:title "Slovník - schéma"@cs ;
+ sh:targetClass skos:ConceptScheme ;
+ sh:property :slovník-schéma-název ;
+ sh:property :slovník-schéma-popis ;
+ sh:property :slovník-schéma-vytvořeno ;
+ sh:property :slovník-schéma-aktualizováno ;
+ sh:property :slovník-schéma-obsahuje-pojem ;
+.
+
+:slovník-schéma-název
+ a sh:PropertyShape ;
+ dcterms:title "Název slovníku"@cs ;
+ dcterms:description "Název slovníku. Je unikátní v rámci názvů všech slovníků."@cs ;
+ sh:path skos:prefLabel ;
+ sh:qualifiedValueShape [ sh:languageIn ( "cs" ) ] ;
+ sh:qualifiedMinCount 1 ;
+ sh:datatype rdf:langString ;
+ sh:uniqueLang true ;
+ sh:severity sh:Violation ;
+.
+
+:slovník-schéma-popis
+ a sh:PropertyShape ;
+ dcterms:title "Popis slovníku"@cs ;
+ dcterms:description "Popis slovníku."@cs ;
+ sh:path dcterms:description ;
+ sh:datatype rdf:langString ;
+ sh:uniqueLang true ;
+ sh:severity sh:Violation ;
+.
+
+:slovník-schéma-vytvořeno
+ a sh:PropertyShape ;
+ dcterms:title "Vytvořeno"@cs ;
+ dcterms:description "Okamžik vytvoření."@cs ;
+ sh:path dcterms:created ;
+ sh:maxCount 1 ;
+ sh:class time:Instant ;
+ sh:severity sh:Violation ;
+.
+
+:slovník-schéma-aktualizováno
+ a sh:PropertyShape ;
+ dcterms:title "Aktualizováno"@cs ;
+ dcterms:description "Okamžik poslední změny."@cs ;
+ sh:path dcterms:modified ;
+ sh:maxCount 1 ;
+ sh:class time:Instant ;
+ sh:severity sh:Violation ;
+.
+
+:slovník-schéma-obsahuje-pojem
+ a sh:PropertyShape ;
+ dcterms:title "Obsahuje pojem"@cs ;
+ dcterms:description "Vazba propojující pojem a tezaurus, ve kterém je pojem definován."@cs ;
+ sh:path [ sh:inversePath skos:inScheme ] ;
+ sh:class skos:Concept ;
+ sh:severity sh:Violation ;
+.
+
+:časový-okamžik-schéma
+ a sh:NodeShape ;
+ dcterms:title "Časový okamžik - schéma"@cs ;
+ sh:targetClass time:Instant ;
+ sh:or ( :časový-okamžik-schéma-inXSDDate :časový-okamžik-schéma-inXSDDateTimeStamp
+ :časový-okamžik-schéma-je-nespecifikovaný )
+.
+
+:časový-okamžik-schéma-inXSDDate
+ a sh:PropertyShape ;
+ sh:path time:inXSDDate ;
+ sh:datatype xsd:date ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ sh:severity sh:Violation ;
+.
+
+:časový-okamžik-schéma-inXSDDateTimeStamp
+ a sh:PropertyShape ;
+ sh:path time:inXSDDateTimeStamp ;
+ sh:datatype xsd:dateTimeStamp ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ sh:severity sh:Violation ;
+.
+
+:časový-okamžik-schéma-je-nespecifikovaný
+ a sh:PropertyShape ;
+ sh:path časy:je-nespecifikovaný ;
+ sh:datatype xsd:boolean ;
+ sh:minCount 1 ;
+ sh:maxCount 1 ;
+ sh:severity sh:Violation ;
+.
+
+:pojem-schéma
+ a sh:NodeShape ;
+ dcterms:title "Pojem - schéma"@cs ;
+ sh:targetClass skos:Concept ;
+ sh:property :pojem-schéma-název ;
+ sh:property :pojem-schéma-popis ;
+ sh:property :pojem-schéma-definice ;
+# sh:property :pojem-schéma-sdílení-údaje ;
+ sh:property :pojem-schéma-nadřazený-pojem ;
+ sh:property :pojem-schéma-ekvivalentní-pojem ;
+ sh:property :pojem-schéma-INV-obsahuje-pojem ;
+.
+
+:pojem-schéma-název
+ a sh:PropertyShape ;
+ dcterms:title "Název pojmu"@cs ;
+ dcterms:description "Název pojmu. Je unikátní v rámci názvů pojmů ve slovníku."@cs ;
+ sh:path skos:prefLabel ;
+ sh:qualifiedValueShape [ sh:languageIn ( "cs" ) ] ;
+ sh:qualifiedMinCount 1 ;
+ sh:datatype rdf:langString ;
+ sh:uniqueLang true ;
+ sh:severity sh:Violation ;
+.
+
+:pojem-schéma-popis
+ a sh:PropertyShape ;
+ dcterms:title "Popis pojmu"@cs ;
+ dcterms:description "Popis pojmu."@cs ;
+ sh:path dcterms:description ;
+ sh:datatype rdf:langString ;
+ sh:uniqueLang true ;
+ sh:severity sh:Violation ;
+.
+
+:pojem-schéma-definice
+ a sh:PropertyShape ;
+ dcterms:title "Definice pojmu"@cs ;
+ dcterms:description "Definice pojmu. Je unikátní v rámci definic pojmů ve slovníku."@cs ;
+ sh:path skos:definition ;
+ sh:datatype rdf:langString ;
+ sh:uniqueLang true ;
+ sh:severity sh:Violation ;
+.
+
+:pojem-schéma-nadřazený-pojem
+ a sh:PropertyShape ;
+ dcterms:title "Nadřazený pojem"@cs ;
+ dcterms:description "Významově širší pojem. Může se jednat o specializaci, instanciaci, partonomii, apod."@cs ;
+ sh:path skos:broader ;
+ sh:nodeKind sh:IRI ;
+ sh:severity sh:Violation ;
+.
+
+:pojem-schéma-ekvivalentní-pojem
+ a sh:PropertyShape ;
+ dcterms:title "Ekvivalentní pojem"@cs ;
+ dcterms:description
+ "Významově ekvivalentní pojem. Typicky se jedná o pojem z jiného slovníku, který však má stejný význam."@cs ;
+ sh:path skos:broader ;
+ sh:nodeKind sh:IRI ;
+ sh:severity sh:Violation ;
+.
+
+:pojem-schéma-INV-obsahuje-pojem
+ a sh:PropertyShape ;
+ dcterms:title "je pojmem ve slovníku"@cs ;
+ sh:path skos:inScheme ;
+ sh:minCount 1 ;
+ sh:nodeKind sh:BlankNodeOrIRI ;
+ sh:class skos:ConceptScheme ;
+ sh:severity sh:Violation ;
+.
\ No newline at end of file
diff --git a/ofn/src/main/resources/updates/glossary-change-dcterms:title-to-skos:preflabel.rq b/ofn/src/main/resources/updates/glossary-change-dcterms:title-to-skos:preflabel.rq
new file mode 100644
index 000000000..7e57825dc
--- /dev/null
+++ b/ofn/src/main/resources/updates/glossary-change-dcterms:title-to-skos:preflabel.rq
@@ -0,0 +1,5 @@
+PREFIX skos:
+PREFIX dcterms:
+DELETE {?glossary dcterms:title ?title}
+INSERT {?glossary skos:prefLabel ?title}
+WHERE {?glossary dcterms:title ?title ; a skos:ConceptScheme}
\ No newline at end of file
diff --git a/ofn/src/main/resources/updates/glossary-fix-dcterms:created-datatype.rq b/ofn/src/main/resources/updates/glossary-fix-dcterms:created-datatype.rq
new file mode 100644
index 000000000..6d0e17cad
--- /dev/null
+++ b/ofn/src/main/resources/updates/glossary-fix-dcterms:created-datatype.rq
@@ -0,0 +1,16 @@
+PREFIX skos:
+PREFIX dcterms:
+PREFIX xsd:
+PREFIX time:
+DELETE {?glossary dcterms:created ?date}
+INSERT {
+ ?glossary dcterms:created ?instant .
+ ?instant a time:Instant .
+ ?instant time:inXSDDate ?fixedDate
+}
+WHERE {
+ ?glossary dcterms:created ?date
+ ; a skos:ConceptScheme
+ BIND( iri(concat("https://slovnik.gov.cz/",struuid())) AS ?instant)
+ BIND( strdt(?date, xsd:date) AS ?fixedDate)
+}
diff --git a/ofn/src/test/kotlin/cz/gov/ssp/ofn/BasicOfnComplianceTests.kt b/ofn/src/test/kotlin/cz/gov/ssp/ofn/BasicOfnComplianceTests.kt
new file mode 100644
index 000000000..0310fb60c
--- /dev/null
+++ b/ofn/src/test/kotlin/cz/gov/ssp/ofn/BasicOfnComplianceTests.kt
@@ -0,0 +1,40 @@
+package cz.gov.ssp.ofn
+
+import Validator
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.params.ParameterizedTest
+import org.junit.jupiter.params.provider.ValueSource
+import java.net.URISyntaxException
+import java.util.*
+
+class BasicOfnComplianceTests {
+ @ParameterizedTest
+ @ValueSource(
+ strings = [
+ "/cz.gov.ssp.ofn.valid/example-3.2.2.ttl",
+ "/cz.gov.ssp.ofn.valid/example-4.2.2.ttl",
+ "/cz.gov.ssp.ofn.valid/example-5.2.2.ttl",
+ "/cz.gov.ssp.ofn.valid/example-6.2.2.ttl",
+ "/cz.gov.ssp.ofn.valid/example-7.2.2.ttl"
+ ]
+ )
+ @Throws(URISyntaxException::class)
+ fun testValid(example: String) {
+ val report = Validator().validateTurtle(Objects.requireNonNull(javaClass.getResource(example)).toString())
+ Assertions.assertTrue(report.conforms())
+ }
+
+ @ParameterizedTest
+ @ValueSource(
+ strings = [
+ "/cz.gov.ssp.ofn.invalid/no-conceptscheme.ttl",
+ "/cz.gov.ssp.ofn.invalid/conceptscheme-without-czech-label.ttl",
+ "/cz.gov.ssp.ofn.invalid/concept-without-conceptscheme.ttl",
+ "/cz.gov.ssp.ofn.invalid/concept-without-czech-label.ttl",
+ ]
+ )
+ fun testInvalid(example: String) {
+ val report = Validator().validateTurtle(Objects.requireNonNull(javaClass.getResource(example)).toString())
+ Assertions.assertFalse(report.conforms())
+ }
+}
\ No newline at end of file
diff --git a/ofn/src/test/kotlin/cz/gov/ssp/ofn/SspComplianceTests.kt b/ofn/src/test/kotlin/cz/gov/ssp/ofn/SspComplianceTests.kt
new file mode 100644
index 000000000..48063bc7d
--- /dev/null
+++ b/ofn/src/test/kotlin/cz/gov/ssp/ofn/SspComplianceTests.kt
@@ -0,0 +1,23 @@
+package cz.gov.ssp.ofn
+
+import Validator
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.params.ParameterizedTest
+import org.junit.jupiter.params.provider.ValueSource
+import java.io.File
+import java.net.URISyntaxException
+import java.util.*
+
+class SspComplianceTests {
+ @ParameterizedTest
+ @ValueSource(
+ strings = [
+ "../content/vocabularies/v-sgov/v-sgov-glosář-ofn.ttl",
+ ]
+ )
+ @Throws(URISyntaxException::class)
+ fun testValid(example: String) {
+ val report = Validator().validateTurtle(File(example).absolutePath)
+ Assertions.assertTrue(report.conforms())
+ }
+}
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/concept-without-conceptscheme.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/concept-without-conceptscheme.ttl
new file mode 100644
index 000000000..9d79bb81e
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/concept-without-conceptscheme.ttl
@@ -0,0 +1,11 @@
+@prefix dcterms: .
+@prefix rdf: .
+@prefix skos: .
+
+
+ a skos:ConceptScheme ;
+ skos:prefLabel "Slovník turistických cílů"@cs .
+
+
+ a skos:Concept ;
+ skos:prefLabel "Turistický cíl"@cs .
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/concept-without-czech-label.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/concept-without-czech-label.ttl
new file mode 100644
index 000000000..fb83be3ff
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/concept-without-czech-label.ttl
@@ -0,0 +1,11 @@
+@prefix dcterms: .
+@prefix rdf: .
+@prefix skos: .
+
+
+ a skos:ConceptScheme ;
+ skos:prefLabel "Slovník turistických cílů"@cs .
+
+
+ a skos:Concept ;
+ skos:inScheme .
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/conceptscheme-without-czech-label.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/conceptscheme-without-czech-label.ttl
new file mode 100644
index 000000000..b75805fce
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/conceptscheme-without-czech-label.ttl
@@ -0,0 +1,9 @@
+@prefix dcterms: .
+@prefix rdf: .
+@prefix skos: .
+@prefix time: .
+@prefix xsd: .
+
+
+ a skos:ConceptScheme ;
+ skos:prefLabel "Vocabulary of tourist points of interest"@en .
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/no-conceptscheme.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/no-conceptscheme.ttl
new file mode 100644
index 000000000..831c949f7
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.invalid/no-conceptscheme.ttl
@@ -0,0 +1,4 @@
+@prefix skos: .
+
+
+ skos:prefLabel "Slovník turistických cílů"@cs, "Vocabulary of tourist points of interest"@en .
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-3.2.2.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-3.2.2.ttl
new file mode 100644
index 000000000..1294efa99
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-3.2.2.ttl
@@ -0,0 +1,15 @@
+@prefix dcterms: .
+@prefix rdf: .
+@prefix skos: .
+@prefix time: .
+@prefix xsd: .
+
+
+ a skos:ConceptScheme ;
+ dcterms:description "Slovník turistických cílů slouží v rámci příkladu pro OFN Slovníky"@cs,
+ "Vocabulary of tourist points of interest serves as an example in the formal open standard for vocabularies"@en ;
+ skos:prefLabel "Slovník turistických cílů"@cs, "Vocabulary of tourist points of interest"@en ;
+ dcterms:created [ a time:Instant ;
+ time:inXSDDate "2024-01-01"^^xsd:date ] ;
+ dcterms:modified [ a time:Instant ;
+ time:inXSDDateTimeStamp "2024-01-15T04:53:21+02:00"^^xsd:dateTimeStamp ] .
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-4.2.2.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-4.2.2.ttl
new file mode 100644
index 000000000..5079ad986
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-4.2.2.ttl
@@ -0,0 +1,39 @@
+@prefix dcterms: .
+@prefix rdf: .
+@prefix skos: .
+
+
+ a skos:ConceptScheme ;
+ dcterms:description "Slovník turistických cílů slouží v rámci příkladu pro OFN Slovníky"@cs,
+ "Vocabulary of tourist points of interest serves as an example in the formal open standard for vocabularies"@en ;
+ skos:prefLabel "Slovník turistických cílů"@cs, "Vocabulary of tourist points of interest"@en .
+
+
+ a skos:Concept ;
+ dcterms:relation
+ ;
+ skos:definition "Samostatný turistický cíl."@cs, "Tourist point of interest"@en ;
+ skos:inScheme ;
+ skos:prefLabel "Turistický cíl"@cs, "Tourist point of interest"@en ;
+ skos:broader ;
+ skos:exactMatch .
+
+
+ a skos:Concept ;
+ skos:definition "Určuje, zda se jedná o přírodní nebo kulturní turistický cíl."@cs ;
+ skos:inScheme ;
+ skos:prefLabel "má typ turistického cíle"@cs, "has type of tourist point of interest"@en ;
+ dcterms:description "vazba propojuje turistický cíl a jeho typ"@cs .
+
+
+ a skos:Concept ;
+ skos:definition
+ "Typ turistického cíle (např. přírodní nebo kulturní) reprezentovaný jako položka číselníku typů turistických cílů."@cs ;
+ skos:inScheme ;
+ skos:prefLabel "Typ turistického cíle"@cs, "Type of the tourist point of interest"@en .
+
+
+ a skos:Concept ;
+ skos:definition "Určuje, zda je možné v turistickém cíli kouření tabákových výrobků."@cs ;
+ skos:inScheme ;
+ skos:prefLabel "kouření povoleno"@cs, "smoking allowed"@en .
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-5.2.2.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-5.2.2.ttl
new file mode 100644
index 000000000..43f5345e2
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-5.2.2.ttl
@@ -0,0 +1,52 @@
+@prefix dc: .
+@prefix owl: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+@prefix xsd: .
+
+
+ a skos:ConceptScheme, owl:Ontology ;
+ dc:description "Slovník turistických cílů slouží v rámci příkladu pro OFN Slovníky"@cs,
+ "Vocabulary of tourist points of interest serves as an example in the formal open standard for vocabularies"@en ;
+ skos:prefLabel "Slovník turistických cílů"@cs, "Vocabulary of tourist points of interest"@en .
+
+
+ a skos:Concept, owl:DatatypeProperty ;
+ rdfs:domain ;
+ rdfs:range xsd:boolean ;
+ skos:definition "Určuje, zda je možné v turistickém cíli kouření tabákových výrobků."@cs ;
+ skos:inScheme ;
+ skos:prefLabel "kouření povoleno"@cs, "smoking allowed"@en .
+
+
+ a skos:Concept, owl:ObjectProperty ;
+ rdfs:domain ;
+ rdfs:range ;
+ rdfs:subPropertyOf ;
+ skos:definition "Určuje, zda se jedná o přírodní nebo kulturní turistický cíl."@cs ;
+ skos:inScheme ;
+ skos:prefLabel "má typ turistického cíle"@cs, "has type of tourist point of interest"@en .
+
+
+ a skos:Concept, owl:Class ;
+ skos:definition
+ "Typ turistického cíle (např. přírodní nebo kulturní) reprezentovaný jako položka číselníku typů turistických cílů."@cs ;
+ skos:inScheme ;
+ skos:prefLabel "Typ turistického cíle"@cs, "Type of the tourist point of interest"@en ;
+
+ .
+
+
+ a ;
+
+ .
+
+
+ a skos:Concept, owl:Class ;
+ dc:relation ;
+ rdfs:subClassOf ,
+ ;
+ skos:definition "Samostatný turistický cíl."@cs, "Tourist point of interest"@en ;
+ skos:inScheme ;
+ skos:prefLabel "Turistický cíl"@cs, "Tourist point of interest"@en .
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-6.2.2.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-6.2.2.ttl
new file mode 100644
index 000000000..eabd93310
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-6.2.2.ttl
@@ -0,0 +1,63 @@
+@prefix dc: .
+@prefix owl: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+@prefix xsd: .
+
+
+ a skos:ConceptScheme, owl:Ontology ;
+ dc:description "Slovník slouží v rámci příkladu pro OFN Slovníky"@cs ;
+ skos:prefLabel "Slovník zákona č. 56/2001 Sb. o podmínkách provozu vozidel na pozemních komunikacích a o změně zákona č. 168/1999 Sb., o pojištění odpovědnosti za škodu způsobenou provozem vozidla a o změně některých souvisejících zákonů (zákon o pojištění odpovědnosti z provozu vozidla), ve znění zákona č. 307/1999 Sb."@cs .
+
+
+ a skos:Concept, owl:Class, ;
+ skos:definition "Havárie silničního vozidla"@cs ;
+ skos:inScheme ;
+ skos:prefLabel "Havárie silničního vozidla"@cs .
+
+
+ a skos:Concept, owl:ObjectProperty ;
+ dc:relation ;
+ rdfs:domain ;
+ rdfs:range ;
+ skos:definition "má vlastníka vozidla"@cs ;
+ skos:inScheme ;
+ skos:prefLabel "má vlastníka vozidla"@cs .
+
+
+ a skos:Concept, owl:DatatypeProperty, ;
+ rdfs:domain ;
+ rdfs:range xsd:string ;
+ skos:definition
+ "Registrační značkou je státní poznávací značka přidělená silničnímu vozidlu. Registrační značka je tvořena kombinací velkých písmen latinské abecedy a arabských číslic."@cs ;
+ skos:inScheme ;
+ skos:prefLabel "registrační značka"@cs .
+
+
+ a skos:Concept, owl:Class ;
+ dc:relation ;
+ skos:definition "Vlastnictví vozidla"@cs ;
+ skos:inScheme ;
+ skos:prefLabel "Vlastnictví vozidla"@cs .
+
+
+ a skos:Concept, owl:Class, ;
+ skos:definition "Zničené silniční vozidlo"@cs ;
+ skos:inScheme ;
+ skos:prefLabel "Zničené silniční vozidlo"@cs .
+
+
+ a skos:Concept, owl:Class, ;
+ dc:relation ;
+ rdfs:subClassOf ;
+ skos:definition "Silniční vozidlo je motorové nebo nemotorové vozidlo, které je vyrobené za účelem provozu na pozemních komunikacích pro přepravu osob, zvířat nebo věcí."@cs ;
+ skos:inScheme ;
+ skos:prefLabel "Silniční vozidlo"@cs, "Road vehicle"@en .
+
+
+ a skos:Concept, owl:Class, ;
+ dc:relation ;
+ skos:definition "Vlastník vozidla"@cs ;
+ skos:inScheme ;
+ skos:prefLabel "Vlastník vozidla"@cs, "Vehicle owner"@en .
\ No newline at end of file
diff --git a/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-7.2.2.ttl b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-7.2.2.ttl
new file mode 100644
index 000000000..7fef7a7e4
--- /dev/null
+++ b/ofn/src/test/resources/cz.gov.ssp.ofn.valid/example-7.2.2.ttl
@@ -0,0 +1,77 @@
+@prefix dc: .
+@prefix owl: .
+@prefix rdf: .
+@prefix rdfs: .
+@prefix skos: .
+@prefix xsd: .
+
+
+ a skos:Concept, owl:Class, ;
+ skos:definition "Havárie silničního vozidla"@cs ;
+ skos:inScheme ;
+ skos:prefLabel "Havárie silničního vozidla"@cs .
+
+
+ a skos:Concept, owl:ObjectProperty,
+ ;
+ dc:relation ;
+ rdfs:domain