From 9a42aa6988f10b7b3f8b1ddfb67ad658966d6d2a Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Thu, 25 Jul 2019 09:58:59 +0200
Subject: [PATCH] Update RelaxNG grammars

---
 public/instance/schema/diglib-dmd.rnc      |  16 +-
 public/instance/schema/diglib-rightsmd.rnc |   6 +-
 public/instance/schema/shared-dc.rnc       | 323 ++++++++++++++++++++-
 3 files changed, 330 insertions(+), 15 deletions(-)

diff --git a/public/instance/schema/diglib-dmd.rnc b/public/instance/schema/diglib-dmd.rnc
index bf4a2396..1190f4f2 100644
--- a/public/instance/schema/diglib-dmd.rnc
+++ b/public/instance/schema/diglib-dmd.rnc
@@ -1,7 +1,7 @@
-# Deskriptive Metadaten
+# Deskriptive Metadaten / #PolonskyGerman
 #
 # Autor: David Maus <maus@hab.de>
-# Timestamp: <2019-01-16 12:22:36 maus>
+# Timestamp: <2019-01-21 13:48:05 maus>
 #
 
 namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -14,7 +14,13 @@ start =
     & optionalMetadata
    }
 
-requiredMetadata =
-   property.identifier+
+requiredMetadata = empty
 
-optionalMetadata = empty
\ No newline at end of file
+optionalMetadata =
+   property.title?
+ & property.creator*
+ & property.contributor*
+ & property.language*
+ & property.spatial*
+ & property.date*
+ & property.description*
diff --git a/public/instance/schema/diglib-rightsmd.rnc b/public/instance/schema/diglib-rightsmd.rnc
index 3c2291d1..954ccbe5 100644
--- a/public/instance/schema/diglib-rightsmd.rnc
+++ b/public/instance/schema/diglib-rightsmd.rnc
@@ -1,7 +1,7 @@
 # Administrative Metadaten
 #
 # Autor: David Maus <maus@hab.de>
-# Timestamp: <2019-01-16 12:19:33 maus>
+# Timestamp: <2019-01-18 15:43:02 maus>
 #
 
 namespace dct = "http://purl.org/dc/terms/"
@@ -10,7 +10,9 @@ namespace marcrel = "http://id.loc.gov/vocabulary/relators/"
 namespace owl = "http://www.w3.org/2002/07/owl#"
 namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 
-include "shared-dc.rnc"
+include "https://raw.githubusercontent.com/dmj/bausteine/master/lib/shared-dc.rnc" {
+   entity.Agent |= ( element foaf:Organization { model.Entity } | element foaf:Person { model.Entity } )
+}
 
 start = element rdf:Description {
    element dct:relation {
diff --git a/public/instance/schema/shared-dc.rnc b/public/instance/schema/shared-dc.rnc
index cd8dc37f..c6734d2d 100644
--- a/public/instance/schema/shared-dc.rnc
+++ b/public/instance/schema/shared-dc.rnc
@@ -1,7 +1,7 @@
-# Wiederverwendbare Definition von Eigenschaften aus Dublin Core Qualified
+# Wiederverwendbare Eigenschaften aus Dublin Core Qualified
 #
 # Autor: David Maus <maus@hab.de>
-# Timestamp: <2019-01-16 12:29:59 maus>
+# Timestamp: <2019-01-16 15:43:29 maus>
 #
 
 namespace dct = "http://purl.org/dc/terms/"
@@ -10,9 +10,64 @@ namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 namespace owl = "http://www.w3.org/2002/07/owl#"
 namespace skos = "http://www.w3.org/2004/02/skos/core#"
 
-property.creator =
-   element dct:creator {
-      entity.Agent
+property.alternative =
+   element dct:alternative {
+      model.rdfLiteral
+   }
+
+property.abstract =
+   element dct:abstract {
+      model.rdfLiteral
+   }
+
+property.accessRights =
+   element dct:accessRights {
+      entity.RightsStatement
+   }
+
+property.accrualMethod =
+   element dct:accrualMethod  {
+      element dct:MethodOfAccrual {
+         model.Entity
+      }
+   }
+
+property.accrualPeriodicity =
+   element dct:accrualPeriodicity {
+      element dct:Frequency {
+         model.Entity
+      }
+   }
+
+property.accrualPolicy  =
+   element dct:accrualPolicy {
+      element dct:Policy {
+         model.Entity
+      }
+   }
+
+property.audience =
+   element dct:audience {
+      entity.AgentClass
+   }
+
+property.available =
+   element dct:available {
+      model.rdfLiteral
+   }
+
+property.bibliographicCitation =
+   element dct:bibliographicCitation {
+      element dct:BibliographicResource {
+         model.Entity
+      }
+   }
+
+property.conformsTo =
+   element dct:conformsTo {
+      element dct:Standard {
+         model.Entity
+      }
    }
 
 property.contributor =
@@ -20,11 +75,131 @@ property.contributor =
       entity.Agent
    }
 
+property.coverage =
+   element dct:coverage {
+      entity.LocationPeriodOrJurisdiction
+   }
+
+property.created =
+   element dct:created {
+      model.rdfLiteral
+   }
+
+property.creator =
+   element dct:creator {
+      entity.Agent
+   }
+
+property.date =
+   element dct:date {
+      model.rdfLiteral
+   }
+
+property.dateAccepted =
+   element dct:dateAccepted {
+      model.rdfLiteral
+   }
+
+property.dateCopyrighted =
+   element dct:dateCopyrighted {
+      model.rdfLiteral
+   }
+
+property.dateSubmitted =
+   element dct:dateSubmitted {
+      model.rdfLiteral
+   }
+
+property.description =
+   element dct:description {
+      model.rdfLiteral
+   }
+
+property.educationLevel =
+   element dct:educationLevel {
+      entity.AgentClass
+   }
+
+property.extent =
+   element dct:extent {
+      entity.SizeOrDuration
+   }
+
+property.format =
+   element dct:format {
+      entity.MediaTypeOrExtent
+   }
+
+property.hasFormat =
+   element dct:hasFormat {
+      entity.Resource
+   }
+
+property.hasPart =
+   element dct:hasPart {
+      entity.Resource
+   }
+
+property.hasVersion =
+   element dct:hasVersion {
+      entity.Resource
+   }
+
 property.identifier =
    element dct:identifier {
       model.rdfLiteral
    }
 
+property.instructionalMethod =
+   element dct:instructionalMethod {
+      element dct:MethodOfInstruction {
+         model.Entity
+      }
+   }
+
+property.isFormatOf =
+   element dct:isFormatOf {
+      entity.Resource
+   }
+
+property.isPartOf =
+   element dct:isPartOf {
+      entity.Resource
+   }
+
+property.isReferencedBy =
+   element dct:isReferencedBy {
+      entity.Resource
+   }
+
+property.isReplacedBy =
+   element dct:isReplacedBy {
+      entity.Resource
+   }
+
+property.isRequiredBy =
+   element dct:isRequiredBy {
+      entity.Resource
+   }
+
+property.issued =
+   element dct:issued {
+      model.rdfLiteral
+   }
+
+property.isVersionOf =
+   element dct:isVersionOf {
+      entity.Resource
+   }
+
+property.language =
+   element dct:language {
+      element dct:LinguisticSystem {
+         model.Entity
+       & property.identifier
+      }
+   }
+
 property.license =
    element dct:license {
       element dct:LicenseDocument {
@@ -32,18 +207,102 @@ property.license =
       }
    }
 
-property.rights =
-   element dct:rights {
-      element dct:RightsStatement {
+property.medium =
+   element dct:medium {
+      element dct:PhysicalMedium {
+         model.Entity
+      }
+   }
+
+property.modified =
+   element dct:modified {
+      model.rdfLiteral
+   }
+
+property.provenance =
+   element dct:provenance {
+      element dct:ProvenanceStatement {
          model.Entity
       }
    }
 
+property.publisher =
+   element dct:publisher {
+      entity.Agent
+   }
+
+property.references =
+   element dct:references {
+      entity.Resource
+   }
+
+property.relation =
+   element dct:relation {
+      entity.Resource
+   }
+
+property.replaces =
+   element dct:replaces {
+      entity.Resource
+   }
+
+property.requires =
+   element dct:requires {
+      entity.Resource
+   }
+
+property.rights =
+   element dct:rights {
+      entity.RightsStatement
+   }
+
 property.rightsHolder =
    element dct:rightsHolder {
       entity.Agent
    }
 
+property.source =
+   element dct:source {
+      entity.Resource
+   }
+
+property.spatial =
+   element dct:spatial {
+      element dct:Location {
+         model.Entity
+      }
+   }
+
+property.subject =
+   element dct:subject {
+      entity.Concept
+   }
+
+property.tableOfContents =
+   element dct:tableOfContents {
+      model.rdfLiteral
+   }
+
+property.temporal =
+   element dct:temporal {
+      entity.PeriodOfTime
+   }
+
+property.title =
+   element dct:title {
+      model.rdfLiteral
+   }
+
+property.type =
+   element dct:type {
+      entity.Concept
+   }
+
+property.valid =
+   element dct:valid {
+      model.rdfLiteral
+   }
+
 entity.Agent =
    (
       element dct:Agent { model.Entity }
@@ -51,6 +310,54 @@ entity.Agent =
     | element foaf:Organization { model.Entity }
    )
 
+entity.AgentClass =
+   element dct:AgentClass {
+      model.Entity
+   }
+
+entity.LocationPeriodOrJurisdiction =
+   ( entity.Location | entity.PeriodOfTime | entity.Jurisdiction )
+
+entity.Location =
+   element dct:Location {
+      model.Entity
+   }
+
+entity.MediaTypeOrExtent =
+   element dct:MediaTypeOrExtent {
+      model.Entity
+   }
+
+entity.SizeOrDuration =
+   element dct:SizeOrDuration {
+      model.Entity
+   }
+
+entity.PeriodOfTime =
+   element dct:PeriodTime {
+      model.Entity
+   }
+
+entity.Jurisdiction =
+   element dct:Jurisdiction {
+      model.Entity
+   }
+
+entity.RightsStatement =
+   element dct:RightsStatement {
+      model.Entity
+   }
+
+entity.Concept =
+   element skos:Concept {
+      model.Entity
+   }
+
+entity.Resource =
+   element * {
+      model.Entity
+   }
+
 property.label =
    element skos:prefLabel {
       attribute xml:lang { xsd:language }?
-- 
GitLab