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