The constraints of DCAT Application Profile for Data Portals in Europe
access URL: https://joinup.ec.europa.eu/solution/dcat-application-profile-data-portals-europe/distribution/dcat-ap-200-shacl-shapes
download URL: https://github.com/SEMICeu/DCAT-AP/raw/cea5a96bb4a6f120c20b7a2b3fb4d86bcd725952/releases/2.0.0/Draft/dcat-ap_2.0.0_shacl_shapes.ttl
availability: stable
format: RDF TURTLE
conforms to: shacl
creator: Bert Van Nuffelen
  member of: tenforce.com
creator: Natasa Sofou
  member of: www.ails.ece.ntua.gr
creator: Eugeniu Costetchi
  member of: PUBL
creator: Makx Dekkers
  member of: id
creator: Nikolaos Loutas
  member of: eu-institutions-services
creator: Vassilios Peristeras
  member of: COM
license: https://creativecommons.org/licenses/by/4.0
attribution URL: http://ec.europa.eu/
modified: 2021-12-01
publisher: DIGIT
relation: https://joinup.ec.europa.eu/collection/semantic-interoperability-community-semic/solution/dcat-application-profile-data-portals-europe/release/210
description: This document specifies the constraints on properties and classes expressed by DCAT-AP in SHACL.
version info: 2.1.1
maker: DCAT-AP Working Group

Agent Shape
type: NodeShape
name: Agent
property:
  min count: 1
  node kind: Literal
  path: name
  severity: Violation
property:
  max count: 1
  path: type
  severity: Violation
target class: Agent

CatalogRecord Shape
type: NodeShape
name: Catalog Record
property:
  max count: 1
  min count: 1
  node: dcat:Resource
  path: primaryTopic
  severity: Violation
property:
  max count: 1
  min count: 1
  path: modified
  severity: Violation
  node: Date time date disjunction
property:
  max count: 1
  path: conformsTo
  severity: Violation
property:
  max count: 1
  node: Date time date disjunction
  path: issued
  severity: Violation
property:
  max count: 1
  path: status
  severity: Violation
property:
  path: language
  severity: Violation
property:
  max count: 1
  path: source
  severity: Violation
property:
  node kind: Literal
  path: title
  severity: Violation
property:
  node kind: Literal
  path: description
  severity: Violation
target class: CatalogRecord

Catalog Shape
type: NodeShape
name: Catalog
property:
  path: language
  severity: Violation
property:
  max count: 1
  path: license
  severity: Violation
property:
  max count: 1
  node: Date time date disjunction
  path: issued
  severity: Violation
property:
  path: spatial
  severity: Violation
property:
  path: hasPart
  severity: Violation
property:
  max count: 1
  path: isPartOf
  severity: Violation
property:
  max count: 1
  node: Date time date disjunction
  path: modified
  severity: Violation
property:
  max count: 1
  path: rights
  severity: Violation
property:
  path: record
  severity: Violation
property:
  path: themeTaxonomy
  severity: Violation
property:
  path: service
  severity: Violation
property:
  path: catalog
  severity: Violation
property:
  path: creator
  severity: Violation
property:
  path: dataset
  severity: Violation
property:
  min count: 1
  node kind: Literal
  path: description
  severity: Violation
property:
  max count: 1
  min count: 1
  path: publisher
  severity: Violation
property:
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
property:
  max count: 1
  path: homepage
  severity: Violation
target class: Catalog

CategoryScheme Shape
type: NodeShape
name: Category Scheme
property:
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
target class: ConceptScheme

Category Shape
type: NodeShape
name: Category
property:
  min count: 1
  node kind: Literal
  path: prefLabel
  severity: Violation
target class: Concept

Checksum Shape
type: NodeShape
name: Checksum
property:
  has value: checksumAlgorithm sha1
  max count: 1
  min count: 1
  path: algorithm
  severity: Violation
property:
  datatype: hexBinary
  max count: 1
  min count: 1
  path: checksumValue
  severity: Violation
target class: Checksum

DataService Shape
type: NodeShape
name: Data Service
property:
  min count: 1
  node kind: Literal
  path: title
  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 Shape
type: NodeShape
name: Dataset
property:
  min count: 1
  node kind: Literal
  path: description
  severity: Violation
property:
  min count: 1
  node kind: Literal
  path: title
  severity: Violation
property:
  node kind: Literal
  path: identifier
  severity: Violation
property:
  path: contactPoint
  severity: Violation
property:
  path: distribution
  severity: Violation
property:
  node kind: Literal
  path: keyword
  severity: Violation
property:
  max count: 1
  path: publisher
  severity: Violation
property:
  path: spatial
  severity: Violation
property:
  path: temporal
  severity: Violation
property:
  path: theme
  severity: Violation
property:
  max count: 1
  path: accessRights
  severity: Violation
property:
  max count: 1
  path: accrualPeriodicity
  severity: Violation
property:
  path: conformsTo
  severity: Violation
property:
  path: hasVersion
  severity: Violation
property:
  path: isVersionOf
  severity: Violation
property:
  max count: 1
  path: issued
  severity: Violation
  node: Date time date disjunction
property:
  path: language
  severity: Violation
property:
  max count: 1
  path: modified
  severity: Violation
  node: Date time date disjunction
property:
  path: provenance
  severity: Violation
property:
  node kind: BlankNodeOrIRI
  path: relation
  severity: Violation
property:
  path: source
  severity: Violation
property:
  path: type
  severity: Violation
property:
  max count: 1
  node kind: Literal
  path: versionInfo
  severity: Violation
property:
  node kind: Literal
  path: versionNotes
  severity: Violation
property:
  path: identifier
  severity: Violation
property:
  path: sample
  severity: Violation
property:
  path: landingPage
  severity: Violation
property:
  path: page
  severity: Violation
property:
  path: qualifiedRelation
  severity: Violation
property:
  node kind: BlankNodeOrIRI
  path: isReferencedBy
  severity: Violation
property:
  path: qualifiedAttribution
  severity: Violation
property:
  path: wasGeneratedBy
  severity: Violation
property:
  datatype: duration
  max count: 1
  path: temporalResolution
  severity: Violation
property:
  datatype: decimal
  max count: 1
  path: spatialResolutionInMeters
  severity: Violation
property:
  path: creator
  severity: Violation
target class: Dataset

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

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

Distribution Shape
type: NodeShape
name: Distribution
property:
  path: conformsTo
  severity: Violation
property:
  max count: 1
  node: Date time date disjunction
  path: issued
  severity: Violation
property:
  path: language
  severity: Violation
property:
  max count: 1
  node: Date time date disjunction
  path: modified
  severity: Violation
property:
  max count: 1
  path: rights
  severity: Violation
property:
  node kind: Literal
  path: title
  severity: Violation
property:
  max count: 1
  path: checksum
  severity: Violation
property:
  max count: 1
  path: status
  severity: Violation
property:
  datatype: decimal
  max count: 1
  path: byteSize
  severity: Violation
property:
  node kind: BlankNodeOrIRI
  path: downloadURL
  severity: Violation
property:
  max count: 1
  path: mediaType
  severity: Violation
property:
  path: page
  severity: Violation
property:
  max count: 1
  path: hasPolicy
  severity: Violation
property:
  path: accessService
  severity: Violation
property:
  max count: 1
  path: compressFormat
  severity: Violation
property:
  max count: 1
  path: packageFormat
  severity: Violation
property:
  datatype: duration
  max count: 1
  path: temporalResolution
  severity: Violation
property:
  datatype: decimal
  max count: 1
  path: spatialResolutionInMeters
  severity: Violation
property:
  min count: 1
  node kind: BlankNodeOrIRI
  path: accessURL
  severity: Violation
property:
  node kind: Literal
  path: description
  severity: Violation
property:
  max count: 1
  path: availability
  severity: Violation
property:
  max count: 1
  path: format
  severity: Violation
property:
  max count: 1
  path: license
  severity: Violation
target class: Distribution

Identifier Shape
type: NodeShape
name: Identifier
property:
  max count: 1
  path: notation
  severity: Violation
target class: Identifier

LicenceDocument Shape
type: NodeShape
name: Licence Document
property:
  path: type
  severity: Violation
target class: LicenseDocument

Location Shape
type: NodeShape
name: Location
property:
  max count: 1
  node kind: Literal
  path: bbox
  severity: Violation
property:
  max count: 1
  node kind: Literal
  path: centroid
  severity: Violation
property:
  max count: 1
  node kind: Literal
  path: geometry
  severity: Violation
target class: Location

PeriodOfTime Shape
type: NodeShape
name: PeriodOfTime
property:
  max count: 1
  path: endDate
  severity: Violation
  node: Date time date disjunction
property:
  max count: 1
  path: hasBeginning
  severity: Violation
property:
  max count: 1
  path: hasEnd
  severity: Violation
property:
  max count: 1
  path: startDate
  severity: Violation
  node: Date time date disjunction
target class: PeriodOfTime

Relationship Shape
type: NodeShape
name: Relationship
property:
  min count: 1
  path: relation
  severity: Violation
property:
  min count: 1
  path: hadRole
  severity: Violation
target class: Relationship