diff --git a/src/schema/vocab.rnc b/src/schema/vocab.rnc new file mode 100644 index 0000000000000000000000000000000000000000..27331dc7e7a5c2f824c7ff8f53a099ebbeb58a90 --- /dev/null +++ b/src/schema/vocab.rnc @@ -0,0 +1,58 @@ +# -*- mode: rnc; -*- +# + +namespace skos = "http://www.w3.org/2004/02/skos/core#" +namespace s = "http://purl.oclc.org/dsdl/schematron" + +include "common.rnc" { + rdfPrimarySubjectEntity = + skos.ConceptScheme + & skos.Concept+ +} + +skos.ConceptScheme = + element skos:ConceptScheme { + rdfPrimarySubject + & requiredMetadata + & Label+ + & empty + } + +skos.Concept = + element skos:Concept { + rdfPrimarySubject + & Label+ + & skos.notation + & skos.inScheme + & skos.match + & empty + } + +skos.notation = + element skos:notation { text } + +skos.inScheme = + [ + s:pattern [ + s:rule [ + context = "/rdf:RDF/skos:Concept/skos:inScheme" s:assert [ + test = "not(empty(/rdf:RDF/skos:ConceptScheme/@rdf:about = current()/@rdf:resource))" + "Das Konzept muss zu einem Ordnungssystem gehören, dass in dieser Datei definiert ist." + ] + ] + ] + ] + element skos:inScheme { + rdfResource + } + +skos.match = + element skos:relatedMatch { + rdfResource + }* + & element skos:broader { + rdfResource + }* + & element skos:related { + rdfResource + }* \ No newline at end of file