Skip to content
Snippets Groups Projects
shared-dc.rnc 1.65 KiB
Newer Older
# Wiederverwendbare Definition von Eigenschaften aus Dublin Core Qualified
#
# Autor: David Maus <maus@hab.de>
# Timestamp: <2019-01-16 12:29:59 maus>
#

namespace dct = "http://purl.org/dc/terms/"
namespace foaf = "http://xmlns.com/foaf/0.1/"
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.contributor =
   element dct:contributor {
      entity.Agent
   }

property.identifier =
   element dct:identifier {
      model.rdfLiteral
   }

property.license =
   element dct:license {
      element dct:LicenseDocument {
         model.Entity
      }
   }

property.rights =
   element dct:rights {
      element dct:RightsStatement {
         model.Entity
      }
   }

property.rightsHolder =
   element dct:rightsHolder {
      entity.Agent
   }

entity.Agent =
   (
      element dct:Agent { model.Entity }
    | element foaf:Person { model.Entity }
    | element foaf:Organization { model.Entity }
   )

property.label =
   element skos:prefLabel {
      attribute xml:lang { xsd:language }?
    & text
   }

property.homepage =
   element foaf:homepage {
      attribute rdf:resource { xsd:anyURI }
    & empty
   }

model.Entity = ( model.internalEntity | model.externalEntity )

model.internalEntity =
   attribute rdf:about { xsd:anyURI }?
 & property.label
 & property.homepage

model.externalEntity =
   element owl:sameAs {
      attribute rdf:resource { xsd:anyURI }
   }*
 & property.label
 & property.homepage

model.rdfLiteral =
   attribute rdf:datatype { xsd:anyURI }?
 & text