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