Skip to content
Snippets Groups Projects
vocab.rnc 1.54 KiB
Newer Older
# -*- mode: rnc; -*-
#

namespace skos = "http://www.w3.org/2004/02/skos/core#"
namespace s    = "http://purl.oclc.org/dsdl/schematron"

[
   s:ns [ prefix = "rdf"  uri = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" ]
   s:ns [ prefix = "skos" uri = "http://www.w3.org/2004/02/skos/core#" ]
]

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.altLabel*
David Maus's avatar
David Maus committed
    & skos.notation?
    & skos.inScheme
    & skos.match
    & skos.hierarchy
    & empty
   }

skos.notation =
   element skos:notation { text }

skos.inScheme =
   [
      s:pattern [
         s:rule [
            context = "/rdf:RDF/skos:Concept/skos:inScheme" s:assert [
               test = "/rdf:RDF/skos:ConceptScheme/@rdf:about = current()/@rdf:resource"
               id = "skos.inScheme_001"
               "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:related {
    rdfResource
 & element skos:closeMatch {
    rdfResource
 }*

skos.altLabel = element skos:altLabel {
   attribute xml:lang { xsd:language }?,
   text
}

skos.hierarchy =
   element skos:broader { rdfResource }
 & element skos:narrower { rdfResource }