From ef0886374f314e12ea66108ba9d8fa1a9783b9c4 Mon Sep 17 00:00:00 2001 From: David Maus <maus@hab.de> Date: Wed, 18 Oct 2017 12:59:24 +0200 Subject: [PATCH] =?UTF-8?q?Grammatik=20kanonisches=20RDF/XML=20f=C3=BCr=20?= =?UTF-8?q?Vokabulare?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/schema/vocab.rnc | 58 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/schema/vocab.rnc diff --git a/src/schema/vocab.rnc b/src/schema/vocab.rnc new file mode 100644 index 000000000..27331dc7e --- /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 -- GitLab