Catalog Record
type: NodeShape
property:
  max count: 1
  message: A `dcat:CatalogRecord` _MUST_ have exactly 1 `foaf:primaryTopic` predicate where the value node is an individual with the type `dcat:Catalog`, or `dcat:Dataset`, or `dcat:DataService`.
  min count: 1
  node: dcat:Resource
  path: primaryTopic
  severity: Violation
property:
  max count: 1
  message: A `dcat:CatalogRecord` _MUST_ have exactly 1 `dcterms:identifier` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: identifier
  severity: Violation
property:
  message: A `dcat:CatalogRecord` _MAY_ have a `skos:notation` where the value node is a literal.
  node kind: Literal
  path: notation
  severity: Violation
property:
  datatype: anyURI
  max count: 1
  message: A `dcat:CatalogRecord` _MAY_ have a maximum of 1 `dcterms:source` predicate where the value node is a literal with datatype `xsd:anyURI`.
  node kind: Literal
  path: source
  severity: Violation
property:
  message: A `dcat:CatalogRecord` _MAY_ have a `dcterms:language` where the value node is an IRI.
  node kind: IRI
  path: language
  severity: Violation
property:
  message: A `dcat:CatalogRecord` _MAY_ have a `dcat:contactPoint` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: contactPoint
  severity: Violation
property:
  max count: 1
  message: A `dcat:CatalogRecord` _MAY_ have maximum 1 `dcterms:created` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  node: Date time date disjunction
  path: created
  severity: Violation
property:
  datatype: anyURI
  max count: 1
  message: A `dcat:CatalogRecord` _MAY_ have maximum 1 `dcat:landingPage` predicate where the value node is a literal with the datatype `xsd:anyURI`.
  node kind: Literal
  path: landingPage
  severity: Violation
property:
  max count: 1
  message: A `dcat:CatalogRecord` _MAY_ have a maximum of 1 <http://www.w3.org/2011/content#characterEncoding> predicate where the value node is a literal value.
  node kind: Literal
  path: characterEncoding
  severity: Violation
property:
  message: A `dcat:CatalogRecord` _MAY_ have a `dcterms:description` where the value node is a literal value.
  node kind: Literal
  path: description
  severity: Violation
property:
  class: Standard
  max count: 1
  message: A `dcat:CatalogRecord` _MAY_ have a maximum of 1 `dcterms:conformsTo` predicate where the value node is an IRI of an individual with the type `dcterms:Standard`.
  path: conformsTo
  severity: Violation
property:
  max count: 1
  message: A `dcat:CatalogRecord` _MAY_ have maximum 1 `dcterms:modified` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  path: modified
  severity: Violation
  shape: Date time date disjunction
property:
  message: A `dcat:CatalogRecord` _MAY_ have a `dcterms:title` predicate where the value node is a literal value.
  node kind: Literal
  path: title
  severity: Violation
property:
  max count: 1
  message: A `dcat:CatalogRecord` _MAY_ have a maximum of 1 `dcterms:issued` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  node: Date time date disjunction
  path: issued
  severity: Violation
target class: CatalogRecord

Catalog
type: NodeShape
property:
  message: A `dcat:Catalog` _MUST_ have at least 1 `dcterms:language` predicate where the value node is an IRI.
  min count: 1
  node kind: IRI
  path: language
  severity: Violation
property:
  max count: 1
  message: A `dcat:Catalog` _MAY_ have a maximum of 1 `dcterms:license`.
  path: license
  severity: Violation
property:
  max count: 1
  message: A `dcat:Catalog` _MAY_ have a maximum of 1 `dcterms:issued` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  node: Date time date disjunction
  path: issued
  severity: Violation
property:
  class: Catalog
  message: A `dcat:Catalog` _MAY_ have a `dcterms:hasPart` predicate where the value node is a `dcat:Catalog`.
  path: hasPart
  severity: Violation
property:
  path: isPartOf
  severity: Violation
property:
  max count: 1
  message: A `dcat:Catalog` _MAY_ have a maximum 1 `dcterms:modified` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  path: modified
  severity: Violation
  shape: Date time date disjunction
property:
  class: CatalogRecord
  message: A `dcat:Catalog` _MAY_ have a `dcat:record` predicate where the value node is a `dcat:CatalogRecord`.
  path: record
  severity: Violation
property:
  path: catalog
  severity: Violation
property:
  message: A `dcat:Catalog` _MAY_ have a `dcat:dataset` predicate where the value node is a `dcat:Dataset` or `dcat:DatasetSeries`.
  or:
    class: Dataset
  or:
    class: DatasetSeries
  path: dataset
  severity: Violation
property:
  message: A `dcat:Catalog` _MAY_ have a `dcterms:description` where the value node is literal.
  node kind: Literal
  path: description
  severity: Violation
property:
  max count: 1
  message: A `dcat:Catalog` _MUST_ have exactly 1 `dcterms:publisher`.
  min count: 1
  path: publisher
  severity: Violation
property:
  message: A `dcat:Catalog` _MAY_ have a `skos:notation` where the value is a literal.
  node kind: Literal
  path: notation
  severity: Violation
property:
  message: A `dcat:Catalog` _MUST_ have at least 1 `dcterms:title` where the value node is literal.
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
property:
  max count: 1
  message: A `dcat:Catalog` _MUST_ have exactly 1 `dcterms:identifier` where the value node is an IRI or literal.
  min count: 1
  or:
    node kind: Literal
    severity: Violation
  or:
    node kind: IRI
    severity: Violation
  path: identifier
  severity: Violation
property:
  datatype: anyURI
  max count: 1
  message: A `dcat:Catalog` _MAY_ have a maximum of 1 `foaf:homepage` where the value node is a literal with the datatype `xsd:anyURI`.
  node kind: Literal
  path: homepage
  severity: Violation
target class: Catalog

Concept Scheme
type: NodeShape
property:
  datatype: anyURI
  message: A `skos:ConceptScheme` _MAY_ have a `dcterms:source` predicate where the value node is a literal with datatype `xsd:anyURI`.
  node kind: Literal
  path: source
  severity: Violation
property:
  max count: 1
  message: A `skos:ConceptScheme` _MUST_ have exactly 1 `dcterms:title` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
target class: ConceptScheme

Concept
type: NodeShape
property:
  min count: 1
  node kind: Literal
  path: prefLabel
  severity: Violation
property:
  max count: 1
  node kind: IRI
  path: inScheme
  severity: Violation
property:
  max count: 1
  message: A `skos:Concept` _MUST_ have exactly 1 `skos:prefLabel` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: prefLabel
  severity: Violation
property:
  max count: 1
  message: A `skos:Concept` _MAY_ have maximum 1 `tern:unit` predicate where the value node is a `sh:IRI.
  node kind: IRI
  path: unit
  severity: Violation
property:
  class: ConceptScheme
  max count: 1
  message: A `skos:Concept` _MAY_ have maximum 1 `skos:inScheme` predicate where the value node is a `skos:ConceptScheme`.
  path: inScheme
  severity: Violation
property:
  datatype: anyURI
  message: A `skos:Concept` _MAY_ have a `dcterms:source` where the value node is a literal with the datatype `xsd:anyURI`.
  node kind: Literal
  path: source
  severity: Violation
target class: Concept

Context of Concept
type: NodeShape
property:
  max count: 1
  message: A `ContextOfConcept` _MAY_ have maximum 1 `tern:unit` predicate where the value node is `sh:IRI`.
  node kind: IRI
  path: unit
  severity: Violation
property:
  class: Concept
  max count: 1
  message: A `ContextOfConcept` _MUST_ have exactly 1 `urnp:property:concept` where the value node is a `skos:Concept`.
  min count: 1
  path: concept
  severity: Violation
target class: ContextOfConcept

Data Quality
type: NodeShape
property:
  max count: 1
  message: A `tern:DataQuality` _MAY_ have maximum 1 `tern:DQ_descriptiveResult` where the value is a literal.
  node kind: Literal
  path: DQ descriptiveResult
  severity: Violation
property:
  max count: 1
  message: A `tern:DataQuality` _MAY_ have maximum 1 `tern:DQ_scopeDescription` where the value is a literal.
  node kind: Literal
  path: DQ scopeDescription
  severity: Violation
property:
  class: OnlineResource
  max count: 1
  message: A `tern:DataQuality` _MAY_ have maximum 1 `tern:DQ_standaloneQualityReport` predicate where the value node is a `tern:OnlineResource`.
  path: DQ standaloneQualityReport
  severity: Violation
property:
  class: Concept
  max count: 1
  message: A `tern:DataQuality` _MUST_ have exactly 1 `tern:DQ_scope` where the value node is a `skos:Concept`.
  min count: 1
  path: DQ scope
  severity: Violation
target class: DataQuality

Data Service
type: NodeShape
property:
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
property:
  node kind: IRI
  path: r5rapplicableLegislation
  severity: Violation
property:
  min count: 1
  node kind: BlankNodeOrIRI
  path: endpointURL
  severity: Violation
property:
  path: servesDataset
  severity: Violation
property:
  node kind: Literal
  path: description
  severity: Violation
property:
  node kind: BlankNodeOrIRI
  path: endpointDescription
  severity: Violation
property:
  max count: 1
  path: license
  severity: Violation
property:
  max count: 1
  path: accessRights
  severity: Violation
target class: DataService

Dataset Series
type: NodeShape
property:
  node kind: IRI
  path: r5rapplicableLegislation
  severity: Violation
property:
  node kind: BlankNodeOrIRI
  path: spatial
  severity: Violation
property:
  max count: 1
  node kind: BlankNodeOrIRI
  path: accrualPeriodicity
  severity: Violation
property:
  message: A `dcat:DatasetSeries` _MAY_ have a `dcterms:title` where the value node is a literal.
  node kind: Literal
  path: title
  severity: Violation
property:
  message: A `dcat:DatasetSeries` _MAY_ have a `dcterms:description` where the value node is a literal.
  node kind: Literal
  path: description
  severity: Violation
property:
  max count: 1
  node: Date time date disjunction
  node kind: Literal
  path: issued
  severity: Violation
property:
  max count: 1
  node: Date time date disjunction
  node kind: Literal
  path: modified
  severity: Violation
property:
  max count: 1
  node kind: BlankNodeOrIRI
  path: publisher
  severity: Violation
property:
  node kind: BlankNodeOrIRI
  path: contactPoint
  severity: Violation
property:
  node kind: BlankNodeOrIRI
  path: temporal
  severity: Violation
target class: DatasetSeries

Dataset
type: NodeShape
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:collaborator` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: collaborator
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:funder` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: funder
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:editor` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: editor
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:producer` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: producer
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:resourceProvider` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: resourceProvider
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:custodian` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: custodian
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:owner` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: owner
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:user` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: user
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:distributor` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: distributor
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:originator` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: originator
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:principalInvestigator` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: principalInvestigator
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:processor` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: processor
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:sponsor` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: sponsor
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:mediator` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: mediator
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `dcterms:rightsHolder` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: rightsHolder
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:contributor` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: contributor
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:stakeholder` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: stakeholder
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `dcterms:publisher` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: publisher
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `tern:purpose` where the value node is a literal.
  node kind: Literal
  path: purpose
  severity: Violation
property:
  message: A `dcat:Dataset` _MUST_ have at least 1 `dcterms:title` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
property:
  max count: 1
  message: A `dcat:Dataset` _MUST_ have exactly 1 `dcterms:identifier` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: identifier
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `dcat:contactPoint` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: contactPoint
  severity: Violation
property:
  class: Distribution
  message: A `dcat:Dataset` _MAY_ have a `dcat:distribution` where the value node is `dcat:Distribution`.
  path: distribution
  severity: Violation
property:
  message: A `dcat:Dataset` _MAY_ have a `dcat:keyword` where the value node is a literal.
  node kind: Literal
  path: keyword
  severity: Violation
property:
  class: DataQuality
  max count: 1
  message: A `dcat:Dataset` _MAY_ have maximum 1 `tern:dataQuality` where the value node is a `tern:DataQuality`.
  path: dataQuality
  severity: Violation
property:
  class: DatasetSeries
  message: A `dcat:Dataset` _MAY_ have a `dcat:inSeries` where the value node is a `dcat:DatasetSeries`.
  path: inSeries
  severity: Violation
property:
  or:
    class: Concept
  or:
    class: ContextOfConcept
  message: A `dcat:Dataset` _MAY_ have a `dcat:theme` where the value is a `skos:Concept`.
  path: theme
  severity: Violation
property:
  class: Concept
  max count: 1
  message: A `dcat:Dataset` _MAY_ have a maximum of 1 `tern:securityConstraints` where the value is `skos:Concept`.
  path: securityConstraints
  severity: Violation
property:
  class: QualityMeasurement
  max count: 1
  message: A `dcat:Dataset` _MAY_ have a maximum of 1 `dqv:hasQualityMeasurement` where the value is `dqv:QualityMeasurement`.
  path: hasQualityMeasurement
  severity: Violation
property:
  class: Concept
  max count: 1
  message: A `dcat:Dataset` _MAY_ have a maximum of 1 `dcterms:accrualPeriodicity` where the value is `skos:Concept`.
  path: accrualPeriodicity
  severity: Violation
property:
  class: Method
  max count: 1
  message: A `dcat:Dataset` _MAY_ have maximum 1 `sosa:usedProcedure` where the value is `tern:Method`.
  path: usedProcedure
  severity: Violation
property:
  max count: 1
  message: A `dcat:Dataset` _MAY_ have maximum 1 `dcterms:created` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  node: Date time date disjunction
  path: created
  severity: Violation
property:
  max count: 1
  message: A `dcat:Dataset` _MAY_ have maximum 1 `dcat:version` predicate where the value node is a literal.
  node kind: Literal
  path: version
  severity: Violation
property:
  max count: 1
  message: A `dcat:Dataset` _MUST_ have maximum 1 `adms:status` predicate where the value node is `sh:IRI`.
  node kind: IRI
  path: status
  severity: Violation
property:
  class: LicenseDocument
  message: A `dcat:Dataset` _MAY_ have a `dcterms:license` predicate where the value node is `dcterms:LicenseDocument`.
  path: license
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `dcat:Dataset` _MAY_ have a maximum of 1 `tern:resourceSpecificUsage` predicate where the value node is a literal with datatype `xsd:string`.
  node kind: Literal
  path: resourceSpecificUsage
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `dcat:Dataset` _MAY_ have a maximum of 1 `tern:environmentDescription` predicate where the value node is a literal with datatype `xsd:string`.
  node kind: Literal
  path: environmentDescription
  severity: Violation
target class: Dataset

Distribution
type: NodeShape
property:
  class: OnlineResource
  max count: 1
  message: A `dcat:Distribution` _MUST_ have exactly 1 `dcat:accessURL` predicate where the value node is `tern:OnlineResource`.
  min count: 1
  path: accessURL
  severity: Violation
property:
  message: A `dcat:Distribution` _MUST_ have at least 1 `tern:distributor` where the value node is a `schema:Person` or `schema:Organization`.
  min count: 1
  node: Person and Organization
  path: distributor
  severity: Violation
target class: Distribution

Extent
type: NodeShape
property:
  class: PeriodOfTime
  max count: 1
  message: A `tern:Extent` _MAY_ have maximum of 1 `dcterms:temporal` predicate where the value node is a `dcterms:PeriodOfTime`.
  path: temporal
  severity: Violation
property:
  class: Geometry
  message: A `tern:Extent` _MAY_ have 1 `geo:hasGeometry` predicate where the value node is a `geo:Geometry`.
  path: hasGeometry
  severity: Violation
property:
  class: VerticalExtent
  max count: 1
  message: A `tern:Extent` _MAY_ have maximum 1 `tern:verticalExtent` predicate where the value node is a `tern:VerticalExtent`.
  path: verticalExtent
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `tern:Extent` _MAY_ have maximum 1 `tern:locationDescription` predicate where the value has datatype `xsd:string`.
  path: locationDescription
  severity: Violation
target class: Extent

Geometry
type: NodeShape
property:
  datatype: wktLiteral
  max count: 1
  message: A `geo:Geometry` _MUST_ have exactly 1 `geo:asWKT` where the value node is a literal with the datatype `geo:wktLiteral`.
  min count: 1
  node kind: Literal
  path: asWKT
  severity: Violation
target class: Geometry

License Document
type: NodeShape
property:
  max count: 1
  message: A `dcterms:LicenseDocument` _MUST_ have exactly 1 `dcterms:type` where the value node is an IRI.
  min count: 1
  node kind: IRI
  path: type
  severity: Violation
property:
  max count: 1
  message: A `dcterms:LicenseDocument` _MUST_ have exactly 1 `dcterms:title` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
property:
  message: A `dcterms:LicenseDocument` _MAY_ have a `dcterms:description` predicate where the value node is a literal.
  node kind: Literal
  path: description
  severity: Violation
property:
  max count: 1
  message: A `dcterms:LicenseDocument` _MUST_ have exactly 1 `dcterms:identifier` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: identifier
  severity: Violation
target class: LicenseDocument

Method
type: NodeShape
property:
  max count: 1
  message: A `tern:Method` _MUST_ have exactly 1 `tern:scope` where the value node is a `sh:IRI`.
  min count: 1
  node kind: IRI
  path: scope
  severity: Violation
property:
  class: Seq
  max count: 1
  message: A `tern:Method` _MAY_ have a maximum of 1 `tern:instructions` predicate where the value node is `rdf:Seq`.
  path: instructions
  severity: Violation
property:
  class: OnlineResource
  message: A `tern:Method` _MAY_ have a `tern:additionalDocumentation` where the value node is `tern:OnlineResource`.
  path: additionalDocumentation
  severity: Violation
property:
  max count: 1
  message: A `tern:Method` _MAY_ have maximum 1 `dcterms:description` where the value is a literal.
  node kind: Literal
  path: description
  severity: Violation
target class: Method

Online Resource
type: NodeShape
property:
  datatype: anyURI
  max count: 1
  message: A `tern:OnlineResource`_MUST_ have exactly 1 `rdf:value` where the value node is a literal with datatype `xsd:anyURI`.
  min count: 1
  node kind: Literal
  path: value
  severity: Violation
property:
  max count: 1
  message: A `tern:OnlineResource` _MAY_ have a maximum of 1 `dcterms:description` where the value node is a literal.
  node kind: Literal
  path: description
  severity: Violation
property:
  class: Standard
  max count: 1
  message: A `tern:OnlineResource` _MAY_ have maximum 1 `dcterms:conformsTo` predicate where the value node is `dcterms:Standard`.
  path: conformsTo
  severity: Violation
property:
  class: Concept
  max count: 1
  message: A `tern:OnlineResource` _MAY_ have maximum 1 `dcterms:type` predicate where the value node is `skos:Concept`.
  path: type
  severity: Violation
property:
  max count: 1
  message: A `tern:OnlineResource` _MUST_ have exactly 1 `dcterms:title` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
property:
  max count: 1
  message: A `tern:OnlineResource` _MAY_ have a maximum of 1 `dcterms:format` where the value is a literal.
  path: format
  severity: Violation
target class: OnlineResource

Organization
type: NodeShape
property:
  datatype: string
  max count: 1
  message: A `schema:Organization` _MUST_ have exactly 1 `schema:name` where the value node is a literal with the datatype `xsd:string`.
  min count: 1
  node kind: Literal
  path: name
  severity: Violation
property:
  max count: 1
  message: A `schema:Organization` _MUST_ have exactly 1 `dcterms:identifier` where the value node is an IRI or literal.
  min count: 1
  or:
    node kind: Literal
    severity: Violation
  or:
    node kind: IRI
    severity: Violation
  path: identifier
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Organization` _MAY_ have maximum 1 `schema:email` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: email
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Organization` _MAY_ have maximum 1 `schema:telephone` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: telephone
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Organization` _MAY_ have a maximum of 1 `schema:addressCountry` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: addressCountry
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Organization` _MAY_ have a maximum of 1 `schema:addressLocality` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: addressLocality
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Organization` _MAY_ have a maximum of 1 `schema:addressRegion` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: addressRegion
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Organization` _MAY_ have a maximum of 1 `schema:postalCode` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: postalCode
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Organization` _MAY_ have a maximum of 1 `schema:streetAddress` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: streetAddress
  severity: Violation
target class: Organization

PeriodOfTime
type: NodeShape
property:
  max count: 1
  message: A `dcterms:PeriodOfTime` _MAY_ have a maximum of 1 `dcat:endDate` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  node kind: Literal
  path: endDate
  severity: Violation
  shape: Date time date disjunction
property:
  max count: 1
  path: hasBeginning
  severity: Violation
property:
  max count: 1
  path: hasEnd
  severity: Violation
property:
  max count: 1
  message: A `dcterms:PeriodOfTime` _MAY_ have a maximum of 1 `dcat:startDate` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  node kind: Literal
  path: startDate
  severity: Violation
  shape: Date time date disjunction
target class: PeriodOfTime

Person
type: NodeShape
property:
  datatype: string
  max count: 1
  message: A `schema:Person` _MUST_ have exactly 1 `schema:name` where the value node is a literal with the datatype `xsd:string`.
  min count: 1
  node kind: Literal
  path: name
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Person` _MAY_ have a maximum of 1 `schema:addressCountry` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: addressCountry
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Person` _MAY_ have a maximum of 1 `schema:addressLocality` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: addressLocality
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Person` _MAY_ have a maximum of 1 `schema:addressRegion` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: addressRegion
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Person` _MAY_ have a maximum of 1 `schema:postalCode` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: postalCode
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Person` _MAY_ have a maximum of 1 `schema:streetAddress` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: streetAddress
  severity: Violation
property:
  max count: 1
  message: A `schema:Person` _MUST_ have exactly 1 `dcterms:identifier` where the value node is an IRI or literal.
  min count: 1
  or:
    node kind: Literal
    severity: Violation
  or:
    node kind: IRI
    severity: Violation
  path: identifier
  severity: Violation
property:
  class: Organization
  message: A `schema:Person` _MAY_ have a `schema:affiliation` where the value node is a `schema:Organization`.
  path: affiliation
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Person` _MAY_ have maximum 1 `schema:email` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: email
  severity: Violation
property:
  datatype: string
  max count: 1
  message: A `schema:Person` _MAY_ have maximum 1 `schema:telephone` where the value node is a literal with the datatype `xsd:string`.
  node kind: Literal
  path: telephone
  severity: Violation
target class: Person

Quality Measurement
type: NodeShape
property:
  max count: 1
  message: A `dqv:QualityMeasurement` _MUST_ have exactly 1 `dqv:isMeasurementOf` where the value is `geodcat:spatialResolutionAsAngularDistance`, `geodcat:spatialResolutionAsDistance`, `geodcat:spatialResolutionAsScale`, or `geodcat:spatialResolutionAsVerticalDistance`.
  min count: 1
  or:
    has value: spatialResolutionAsAngularDistance
  or:
    has value: spatialResolutionAsDistance
  or:
    has value: spatialResolutionAsScale
  or:
    has value: spatialResolutionAsVerticalDistance
  path: isMeasurementOf
  severity: Violation
property:
  datatype: decimal
  max count: 1
  message: A `dqv:QualityMeasurement` _MUST_ have exactly 1 `dqv:value` predicate where the value node is a literal with datatype `xsd:decimal`.
  min count: 1
  node kind: Literal
  path: value
  severity: Violation
property:
  max count: 1
  message: A `dqv:QualityMeasurement` _MUST_ have exactly 1 `tern:unit` predicate where the value node is a `sh:IRI`.
  min count: 1
  node kind: IRI
  path: unit
  severity: Violation
target class: QualityMeasurement

Rights Statement
type: NodeShape
property:
  max count: 1
  message: A `dcterms:RightsStatement` _MUST_ have exactly 1 `dcterms:title` predicate where the value node is a literal.
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
target class: RightsStatement

Seq
type: NodeShape
property:
  message: A `rdf:Seq` _MAY_ have an `rdf:_N` where the value node is a `schema:Person` or `schema:Organization`.
  node: Person and Organization
  path: http://www.w3.org/1999/02/22-rdf-syntax-ns#_
  severity: Violation
target class: Seq

Standard
type: NodeShape
property:
  max count: 1
  message: A `dcterms:Standard` _MAY_ have a maximum of 1 `dcterms:title` where the value node is a literal.
  node kind: Literal
  path: title
  severity: Violation
property:
  max count: 1
  message: A `dcterms:Standard` _MAY_ have a maximum of 1 `owl:versionInfo` where the value node is a literal.
  node kind: Literal
  path: versionInfo
  severity: Violation
property:
  max count: 1
  message: A `dcterms:Standard` _MAY_ have a maximum of 1 `dcterms:issued` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
  node: Date time date disjunction
  path: issued
  severity: Violation
property:
  max count: 1
  message: A `dcterms:Standard` _MUST_ have exactly 1 `dcterms:identifier` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: identifier
  severity: Violation
target class: Standard

QUDT Unit
type: NodeShape
property:
  max count: 1
  message: A `qudt:Unit` _MUST_ have exactly 1 `rdfs:label` where the value node is a literal.
  min count: 1
  node kind: Literal
  path: label
  severity: Violation
property:
  max count: 1
  message: A `qudt:Unit` _MUST_ have exactly 1 `rdfs:isDefinedBy` where the value node is a `sh:IRI`.
  min count: 1
  node kind: IRI
  path: isDefinedBy
  severity: Violation
target class: Unit

Vertical Extent
type: NodeShape
property:
  max count: 1
  message: A `tern:VerticalExtent` _MUST_ have exactly 1 `tern:minAltitude` predicate where the value node is a literal with the datatype `xsd:integer`, `xsd:float`, `xsd:double` or `xsd:decimal`.
  min count: 1
  node: Numeric datatype
  node kind: Literal
  path: minAltitude
  severity: Violation
property:
  max count: 1
  message: A `tern:VerticalExtent` _MUST_ have exactly 1 `tern:maxAltitude` predicate where the value node is a literal with the datatype `xsd:integer`, `xsd:float`, `xsd:double` or `xsd:decimal`.
  min count: 1
  node: Numeric datatype
  node kind: Literal
  path: maxAltitude
  severity: Violation
property:
  max count: 1
  message: A `tern:VerticalExtent` _MUST_ have exactly 1 `tern:unit` predicate where the value node is `sh:IRI`.
  min count: 1
  node kind: IRI
  path: unit
  severity: Violation
property:
  max count: 1
  message: A `tern:VerticalExtent` _MUST_ have exactly 1 `dcterms:conformsTo` predicate where the value node is `sh:IRI`.
  min count: 1
  node kind: IRI
  path: conformsTo
  severity: Violation
target class: VerticalExtent

dcat:Resource
type: NodeShape
comment: the union of Catalog, Dataset and DataService
message: The node is either a Catalog, Dataset or a DataService
or:
  class: Catalog
or:
  class: Dataset
or:
  class: DataService

Numeric datatype
type: NodeShape
comment: Numeric datatype shape checks that a datatype property receives a temporal value: integer, float, double or decimal literal
message: The values must be data typed as either xsd:integer, xsd:float, xsd:double or xsd:decimal
or:
  datatype: integer
or:
  datatype: float
or:
  datatype: double
or:
  datatype: decimal

Date time date disjunction
type: NodeShape
comment: Date time date disjunction shape checks that a datatype property receives a temporal value: date, dateTime, gYear or gYearMonth literal
message: The values must be data typed as either xsd:date, xsd:dateTime, xsd:gYear or xsd:gYearMonth
or:
  datatype: date
or:
  datatype: dateTime
or:
  datatype: gYear
or:
  datatype: gYearMonth

Person and Organization
type: NodeShape
comment: The union of Person and Organization
message: The node is either a Person or Organization
or:
  class: Person
or:
  class: Organization

datatype: string
max count: 1
message: A `dcat:Dataset` _MAY_ have a maximum of 1 `tern:supplementalInformation` predicate where the value node is a literal with datatype `xsd:string`.
node kind: Literal
path: supplementalInformation
severity: Violation

datatype: string
message: A `dcat:Dataset` _MAY_ have a `tern:otherCitationDetails` predicate where the value node is a literal with datatype `xsd:string`.
node kind: Literal
path: otherCitationDetails
severity: Violation

class: RightsStatement
message: A `dcat:Dataset` _MAY_ have a `tern:otherConstraints` predicate where the value node is `dcterms:RightsStatement`.
path: otherConstraints
severity: Violation

message: A `dcat:Dataset` _MUST_ have at least 1 `schema:abstract` predicate where the value node is a literal.
min count: 1
node kind: Literal
path: abstract
severity: Violation

class: Extent
message: A `dcat:Dataset` _MAY_ have a `tern:hasExtent` predicate where the value node is a `tern:Extent`.
path: hasExtent
severity: Violation

datatype: string
message: A `dcat:Dataset` _MAY_ have a `schema:creditText` predicate where the value node is a literal with datatype `xsd:string`.
node kind: Literal
path: creditText
severity: Violation

message: A `dcat:Dataset` _MAY_ have a `dcterms:subject` predicate where the value node is a literal.
node kind: Literal
path: subject
severity: Violation

max count: 1
message: A `dcat:Dataset` _MUST_ have maximum 1 `dcterms:conformsTo` predicate where the value node is `sh:IRI`.
node kind: IRI
path: conformsTo
severity: Violation

max count: 1
message: A `dcat:Dataset` _MAY_ have a maximum of 1 `dcterms:issued` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
path: issued
severity: Violation
shape: Date time date disjunction

max count: 1
message: A `dcat:Dataset` _MAY_ have maximum 1 `dcterms:modified` predicate where the value node is a literal with the datatype `xsd:date`, `xsd:dateTime`, `xsd:gYear` or `xsd:gYearMonth`.
path: modified
severity: Violation
shape: Date time date disjunction

class: OnlineResource
message: A `dcat:Dataset` _MAY_ have a `tern:addtionalDocumentation` predicate where the value node is `tern:OnlineResource`.
path: addtionalDocumentation
severity: Violation

max count: 1
message: A `dcat:Dataset` _MAY_ have maximum 1 `adms:identifier` predicate where the value node is a literal.
node kind: Literal
path: identifier
severity: Violation

class: Seq
message: A `dcat:Dataset` _MAY_ have a `dcterms:creator` where the value node is a `rdf:Seq`.
path: creator
severity: Violation

class: Seq
message: A `dcat:Dataset` _MAY_ have a `tern:coAuthor` where the value node is a `rdf:Seq`.
path: coAuthor
severity: Violation