The Data Product (DPROD) Ontology
EKGF Documentation Preview
PDFAbstract§
DPROD extends DCAT to enable publishers to describe Data Products and data services in a decentralized way. This documentation preview presents the native DPROD ontology, its SHACL shapes, and the dataset-schema example from this repository as an HTML reference, a companion guide and a PDF.
Status of This Document§
This is a generated documentation preview, not an approved OMG standards release
or a replacement for the official DPROD specification. Definitions and shape
statements come from the source RDF. The publication date is read from the
ontology's dct:issued annotation; rebuilding documentation does not change that
source annotation.
The repository's develop branch is the source for this preview. Each build pins
one concrete Git commit and records source paths, blob identities and commit
provenance in its documentation knowledge graph. External ontology imports are
retained as RDF assertions; this preview does not download or reason over them.
DPROD source material is Copyright (c) 2024–2026 Enterprise Knowledge Graph Forum, EDM Council, Inc., and is distributed under Creative Commons Attribution 4.0.
1. DPROD Ontology§
1.1 DPROD Ontology§
Repository for the Data Products Ontology (DPROD), a proposed OMG standard, originally created by the EKGF Data Product Workgroup. The proposal is currently under industry review until December 2024, and until that time the main branch is locked. Any changes will occur on the develop branch so pull requests should be targeted at that.
The specification is generated by a Python module called spec-generator
using the W3C Respec template (a fork of it) and published
here: https://ekgf.org/dprod
1.1.1 Contributor Licence Agreement (CLA)§
We're using the CLA assistant service to collect CLA signatures of all contributors.
2. OWL classes§
2.1 dprod:DataProduct§
Label: data product
A rational, managed, and governed collection of data, with purpose, value and ownership, meeting consumer needs over a planned life-cycle.
IRI: https://ekgf.org/dprod/spec/develop/DataProduct
Note: A data product may have input and output ports, code and metadata
| RDF predicate | Value |
|---|---|
rdf:type | rdfs:Class |
rdf:type | owl:Class |
rdfs:isDefinedBy | dprod: |
rdfs:subClassOf | dcat:Resource |
2.2 dprod:Enumeration§
Label: enumeration
The superclass of enumeration lists referenced from data product related artifacts.
IRI: https://ekgf.org/dprod/spec/develop/Enumeration
| RDF predicate | Value |
|---|---|
rdf:type | rdfs:Class |
rdf:type | owl:Class |
rdfs:isDefinedBy | dprod: |
2.3 dprod:InformationSensitivityClassification§
Label: information sensitivity classification
A classification of the information within a dataset to indicate the level of control and protection that must be applied.
IRI: https://ekgf.org/dprod/spec/develop/InformationSensitivityClassification
| RDF predicate | Value |
|---|---|
rdf:type | rdfs:Class |
rdf:type | owl:Class |
rdfs:isDefinedBy | dprod: |
rdfs:seeAlso | https://spec.edmcouncil.org/cdmc/ontology/Classification/InformationSensitivity |
2.4 dprod:SecuritySchemaType§
Label: security schema type
A classification encompassing a set of rules used for authentication and communication.
IRI: https://ekgf.org/dprod/spec/develop/SecuritySchemaType
| RDF predicate | Value |
|---|---|
rdf:type | rdfs:Class |
rdf:type | owl:Class |
rdfs:isDefinedBy | dprod: |
3. Object properties§
3.1 dprod:dataProductLifecycleStatus§
Label: data product lifecycle status
The authored development lifecycle status of a data product.
IRI: https://ekgf.org/dprod/spec/develop/dataProductLifecycleStatus
Note: Values are SKOS concepts. DPROD supplies dprod:DataProductLifecycleStatus as an optional reference concept scheme; enterprises may use another scheme.
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dprod:DataProduct |
rdfs:isDefinedBy | dprod: |
rdfs:range | skos:Concept |
rdfs:subPropertyOf | dprod:lifecycleStatus |
3.2 dprod:dataProductOwner§
Label: data product owner
The agent that is accountable overall for the data product, including managing it through its lifecycle.
IRI: https://ekgf.org/dprod/spec/develop/dataProductOwner
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dprod:DataProduct |
rdfs:isDefinedBy | dprod: |
rdfs:range | prov:Agent |
3.3 dprod:domain§
Label: domain
The business or information area supported by the data product.
IRI: https://ekgf.org/dprod/spec/develop/domain
Note: The domain is intended to be a resource in its own right. This specification does not constrain the class to be used.
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dprod:DataProduct |
rdfs:isDefinedBy | dprod: |
3.4 dprod:informationSensitivityClassification§
Label: information sensitivity classification
More granular classification that indicates the level of control and protection that must be applied to the asset due to the nature of the data and its sensitivity or importance to the organization.
IRI: https://ekgf.org/dprod/spec/develop/informationSensitivityClassification
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dcat:Dataset |
rdfs:isDefinedBy | dprod: |
rdfs:range | dprod:InformationSensitivityClassification |
3.5 dprod:inputDataset§
Label: input dataset
The source data made available to the data product through input data services. Depending on the lifecycle of the data product, this may be a stated or inferred relationship aligned with the input ports.
IRI: https://ekgf.org/dprod/spec/develop/inputDataset
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dprod:DataProduct |
rdfs:isDefinedBy | dprod: |
rdfs:range | dcat:Dataset |
3.6 dprod:inputPort§
Label: input port
A set of services exposed by a data product to collect its source data and makes it available for further internal transformation. An input port can receive data from one or more upstream sources in a push (i.e. asynchronous subscription) or pop mode (i.e. synchronous query). Each data product may have one or more input ports.
IRI: https://ekgf.org/dprod/spec/develop/inputPort
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dprod:DataProduct |
rdfs:isDefinedBy | dprod: |
rdfs:range | dcat:DataService |
3.7 dprod:isAccessServiceOf§
Label: is access service of
The dataset distribution that is being offered through this data service.
IRI: https://ekgf.org/dprod/spec/develop/isAccessServiceOf
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dcat:DataService |
rdfs:isDefinedBy | dprod: |
rdfs:range | dcat:Distribution |
owl:inverseOf | dcat:accessService |
3.8 dprod:isDistributionOf§
Label: is distribution of
The dataset that this distribution makes available.
IRI: https://ekgf.org/dprod/spec/develop/isDistributionOf
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dcat:Distribution |
rdfs:isDefinedBy | dprod: |
owl:inverseOf | dcat:distribution |
3.9 dprod:lifecycleStatus§
Label: lifecycle status
The authored position of a DPROD resource in its lifecycle.
IRI: https://ekgf.org/dprod/spec/develop/lifecycleStatus
Note: Abstract super-property for authored lifecycle statuses. Concrete sub-properties define their resource-specific domains; values come from an open SKOS taxonomy.
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:isDefinedBy | dprod: |
rdfs:range | skos:Concept |
3.10 dprod:outputDataset§
Label: output dataset
The data that is exposed by the data product through output data services in a way that can be understood and trusted. Depending on the lifecycle of the data product, this may be a stated or inferred relationship aligned with the output ports.
IRI: https://ekgf.org/dprod/spec/develop/outputDataset
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dprod:DataProduct |
rdfs:isDefinedBy | dprod: |
rdfs:range | dcat:Dataset |
3.11 dprod:outputPort§
Label: output port
A set of services exposed by a data product to share the generated data in a way that can be understood and trusted.
IRI: https://ekgf.org/dprod/spec/develop/outputPort
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dprod:DataProduct |
rdfs:isDefinedBy | dprod: |
rdfs:range | dcat:DataService |
3.12 dprod:protocol§
Label: protocol
A protocol (possibly one of many options) used to communicate with this data service.
IRI: https://ekgf.org/dprod/spec/develop/protocol
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dcat:DataService |
rdfs:isDefinedBy | dprod: |
3.13 dprod:securitySchemaType§
Label: security schema type
The security schema type used for authentication and communication with this Data Service.
IRI: https://ekgf.org/dprod/spec/develop/securitySchemaType
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:ObjectProperty |
rdfs:domain | dcat:DataService |
rdfs:isDefinedBy | dprod: |
4. Datatype properties§
4.1 dprod:purpose§
Label: purpose
A description of the objectives and intended usage of the data product.
IRI: https://ekgf.org/dprod/spec/develop/purpose
| RDF predicate | Value |
|---|---|
rdf:type | rdf:Property |
rdf:type | owl:DatatypeProperty |
rdfs:domain | dprod:DataProduct |
rdfs:isDefinedBy | dprod: |
rdfs:range | xsd:string |
5. Concept schemes§
5.1 dprod:DataProductLifecycleStatus§
Label: data product lifecycle status
An optional reference taxonomy for data product lifecycle statuses. Enterprises may use, extend, or replace this scheme with their own skos:ConceptScheme.
IRI: https://ekgf.org/dprod/spec/develop/DataProductLifecycleStatus
Note: DPROD does not prescribe a closed set of data product lifecycle statuses.
| RDF predicate | Value |
|---|---|
dct:title | DPROD Data Product Lifecycle Status (@en) |
rdf:type | skos:ConceptScheme |
rdfs:isDefinedBy | dprod: |
rdfs:seeAlso | https://edmcouncil.org/wp-content/uploads/2024/03/EDMWebinar_DPSIG_04-30-Presentation.pdf#page=7 |
6. SHACL node shapes§
6.1 dprod:shapes/DataProductShape§
Label: data product shape
A rational, managed, and governed collection of data, with purpose, value and ownership, meeting consumer needs over a planned life-cycle.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProductShape
Note: A data product may have input and output ports, code and metadata
| RDF predicate | Value |
|---|---|
rdf:type | sh:NodeShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:property | dprod:shapes/DataProduct-dataProductLifecycleStatus |
sh:property | dprod:shapes/DataProduct-dataProductOwner |
sh:property | dprod:shapes/DataProduct-description |
sh:property | dprod:shapes/DataProduct-domain |
sh:property | dprod:shapes/DataProduct-hasPolicy |
sh:property | dprod:shapes/DataProduct-inputDataset |
sh:property | dprod:shapes/DataProduct-inputPort |
sh:property | dprod:shapes/DataProduct-label |
sh:property | dprod:shapes/DataProduct-outputDataset |
sh:property | dprod:shapes/DataProduct-outputPort |
sh:property | dprod:shapes/DataProduct-purpose |
sh:targetClass | dprod:DataProduct |
6.2 dprod:shapes/DataServiceShape§
Label: data service shape
A collection of operations that provides access to one or more datasets or data processing functions.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataServiceShape
| RDF predicate | Value |
|---|---|
rdf:type | sh:NodeShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:property | dprod:shapes/DataService-endpointDescription |
sh:property | dprod:shapes/DataService-endpointURL |
sh:property | dprod:shapes/DataService-isAccessServiceOf |
sh:property | dprod:shapes/DataService-protocol |
sh:property | dprod:shapes/DataService-securitySchemaType |
sh:targetClass | dcat:DataService |
6.3 dprod:shapes/DatasetShape§
Label: dataset shape
A collection of data, published or curated by a single source, and available for access or download in one or more representations.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DatasetShape
| RDF predicate | Value |
|---|---|
rdf:type | sh:NodeShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:property | dcat:Dataset-informationSensitivityClassification |
sh:property | dprod:shapes/Dataset-conformsTo |
sh:property | dprod:shapes/Dataset-description |
sh:property | dprod:shapes/Dataset-distribution |
sh:property | dprod:shapes/Dataset-hasPolicy |
sh:property | dprod:shapes/Dataset-label |
sh:property | dprod:shapes/Dataset-type |
sh:targetClass | dcat:Dataset |
6.4 dprod:shapes/DistributionShape§
Label: distribution shape
A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above).
IRI: https://ekgf.org/dprod/spec/develop/shapes/DistributionShape
| RDF predicate | Value |
|---|---|
rdf:type | sh:NodeShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:property | dprod:shapes/Distribution-accessService |
sh:property | dprod:shapes/Distribution-conformsTo |
sh:property | dprod:shapes/Distribution-format |
sh:property | dprod:shapes/Distribution-isDistributionOf |
sh:targetClass | dcat:Distribution |
6.5 dprod:shapes/InformationSensitivityClassificationShape§
Label: information sensitivity classification shape
A classification of the information within a dataset to indicate the level of control and protection that must be applied.
IRI: https://ekgf.org/dprod/spec/develop/shapes/InformationSensitivityClassificationShape
| RDF predicate | Value |
|---|---|
rdf:type | sh:NodeShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:targetClass | dprod:InformationSensitivityClassification |
6.6 dprod:shapes/SecuritySchemaTypeShape§
Label: security schema type shape
A classification encompassing a set of rules used for authentication and communication.
IRI: https://ekgf.org/dprod/spec/develop/shapes/SecuritySchemaTypeShape
| RDF predicate | Value |
|---|---|
rdf:type | sh:NodeShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:targetClass | dprod:SecuritySchemaType |
7. SHACL property shapes§
7.1 dcat:Dataset-informationSensitivityClassification§
Label: dataset information sensitivity classification shape
More granular classification that indicates the level of control and protection that must be applied to the asset due to the nature of the data and its sensitivity or importance to the organization.
IRI: http://www.w3.org/ns/dcat#Dataset-informationSensitivityClassification
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dprod:InformationSensitivityClassification |
sh:path | dprod:informationSensitivityClassification |
7.2 dprod:shapes/DataProduct-dataProductLifecycleStatus§
Label: data product lifecycle status shape
The authored development lifecycle status of the data product.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-dataProductLifecycleStatus
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | skos:Concept |
sh:maxCount | 1 (xsd:integer) |
sh:message | dataProductLifecycleStatus, if present, must be a single skos:Concept value. |
sh:path | dprod:dataProductLifecycleStatus |
7.3 dprod:shapes/DataProduct-dataProductOwner§
Label: data product owner shape
The agent that is accountable overall for the data product, including managing it through its lifecycle.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-dataProductOwner
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | prov:Agent |
sh:path | dprod:dataProductOwner |
7.4 dprod:shapes/DataProduct-description§
Label: data product description shape
A free text description of the data product.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-description
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:datatype | xsd:string |
sh:path | dct:description |
7.5 dprod:shapes/DataProduct-domain§
Label: data product domain shape
The business or information area supported by the data product.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-domain
Note: The target class is left open
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dprod:domain |
7.6 dprod:shapes/DataProduct-hasPolicy§
Label: data product has policy shape
An ODRL conformant policy expressing the rights associated with the data product. This is an inferred relationship based on the rights expressed on the individual datasets of the data product.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-hasPolicy
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | odrl:Policy |
sh:path | odrl:hasPolicy |
7.7 dprod:shapes/DataProduct-inputDataset§
Label: data product input dataset shape
The source data made available to the data product through input data services. Depending on the lifecycle of the data product, this may be a stated or inferred relationship aligned with the input ports.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-inputDataset
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dcat:Dataset |
sh:path | dprod:inputDataset |
7.8 dprod:shapes/DataProduct-inputPort§
Label: data product input port shape
A set of services exposed by a data product to collect its source data and makes it available for further internal transformation. An input port can receive data from one or more upstream sources in a push (i.e. asynchronous subscription) or pop mode (i.e. synchronous query). Each data product may have one or more input ports.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-inputPort
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dcat:DataService |
sh:path | dprod:inputPort |
7.9 dprod:shapes/DataProduct-label§
Label: data product label shape
The name given to the data product.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-label
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:datatype | xsd:string |
sh:path | rdfs:label |
7.10 dprod:shapes/DataProduct-outputDataset§
Label: data product output dataset shape
The data that is exposed by the data product through output data services in a way that can be understood and trusted. Depending on the lifecycle of the data product, this may be a stated or inferred relationship aligned with the output ports.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-outputDataset
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dcat:Dataset |
sh:path | dprod:outputDataset |
7.11 dprod:shapes/DataProduct-outputPort§
Label: data product output port shape
A set of services exposed by a data product to share the generated data in a way that can be understood and trusted.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-outputPort
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dcat:DataService |
sh:path | dprod:outputPort |
7.12 dprod:shapes/DataProduct-purpose§
Label: data product purpose shape
A description of the objectives and intended usage of the data product.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-purpose
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:datatype | xsd:string |
sh:path | dprod:purpose |
7.13 dprod:shapes/DataProduct-type§
Label: data product description shape
The nature or genre of the data product.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataProduct-type
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dct:type |
7.14 dprod:shapes/DataService-endpointDescription§
Label: data service endpoint description shape
A description of the services available via the end-points, including their operations, parameters etc.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataService-endpointDescription
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dcat:endpointDescription |
7.15 dprod:shapes/DataService-endpointURL§
Label: data service endpoint URL shape
The root location or primary endpoint of the service.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataService-endpointURL
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dcat:endpointURL |
7.16 dprod:shapes/DataService-isAccessServiceOf§
Label: data service is access service of shape
The dataset distribution that is being offered through this data service.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataService-isAccessServiceOf
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dcat:Distribution |
sh:path | dprod:isAccessServiceOf |
7.17 dprod:shapes/DataService-protocol§
Label: data service protocol shape
A protocol (possibly one of many options) used to communicate with this data service.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataService-protocol
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dprod:protocol |
7.18 dprod:shapes/DataService-securitySchemaType§
Label: data service security schema type shape
The security schema type used for authentication and communication with this Data Service.
IRI: https://ekgf.org/dprod/spec/develop/shapes/DataService-securitySchemaType
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dprod:SecuritySchemaType |
sh:path | dprod:securitySchemaType |
7.19 dprod:shapes/Dataset-conformsTo§
Label: dataset conforms to shape
A model, schema, ontology, view or profile that the dataset conforms to.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Dataset-conformsTo
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dct:conformsTo |
7.20 dprod:shapes/Dataset-description§
Label: dataset distribution shape
Free text description of the dataset.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Dataset-description
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:datatype | xsd:string |
sh:path | dct:description |
7.21 dprod:shapes/Dataset-distribution§
Label: dataset distribution shape
An available distribution of the dataset.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Dataset-distribution
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dcat:Distribution |
sh:path | dcat:distribution |
7.22 dprod:shapes/Dataset-hasPolicy§
Label: dataset has policy shape
An ODRL conformant policy expressing the rights associated with the resource.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Dataset-hasPolicy
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | odrl:hasPolicy |
7.23 dprod:shapes/Dataset-label§
Label: dataset label shape
The name given to the dataset
IRI: https://ekgf.org/dprod/spec/develop/shapes/Dataset-label
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:datatype | xsd:string |
sh:path | rdfs:label |
7.24 dprod:shapes/Dataset-type§
Label: dataset type shape
The type or genre of the dataset.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Dataset-type
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dct:type |
7.25 dprod:shapes/Distribution-accessService§
Label: distribution access service shape
A data service that gives access to the distribution of the dataset.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Distribution-accessService
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dcat:DataService |
sh:path | dcat:accessService |
7.26 dprod:shapes/Distribution-conformsTo§
Label: distribution conforms to shape
The schema that the distribution conforms to that is format and technology dependent.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Distribution-conformsTo
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dct:conformsTo |
7.27 dprod:shapes/Distribution-format§
Label: distribution format shape
The file format of the distribution.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Distribution-format
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:path | dct:format |
7.28 dprod:shapes/Distribution-isDistributionOf§
Label: distribution is distribution of shape
The dataset that this distribution makes available.
IRI: https://ekgf.org/dprod/spec/develop/shapes/Distribution-isDistributionOf
| RDF predicate | Value |
|---|---|
rdf:type | sh:PropertyShape |
rdfs:isDefinedBy | dprod:shapes/ |
sh:class | dcat:Dataset |
sh:path | dprod:isDistributionOf |
8. Describe a dataset schema§
The Data Product provides to the consumers (dprod:outputDataset) datasets defined based on DCAT. Datasets should be described (dcat:conforms) with logical models. Logical models describe business entities and their properties (attributes and relationships) with consistent business terms and they are technology independent. Ideally, logical models are based on existing standards eg, FIBO, CDM etc. If a logical model does not exist to describe the dataset, then the dataset publisher can create one, preferably by using SHACL modelling language:
Example of a Dataset conforming to a SHACL Schema:
exampleDataset dcat:conforms exampleSchema:DatasetLogicalSchema.
exampleSchema:DatasetLogicalSchema a owl:Ontology, dct:Standard.
Based on SHACL all entities that exist in the dataset are Node Shapes (1). The attributes of the entities are described as Property Shapes with sh:datatype (2) The relationships are also defined as Property Shaped with sh:class the target class of the relationship (3)
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix example: <https://y.com/schema/> .
@prefix exampleSchema: <https://y.com/schema/logical/> .
# definition of the entity as a Node Shape (1)
example:Account a sh:NodeShape ;
# human readable name of the entity
rdfs:label "Account"@en ;
# description of the entity
dc:description "An Account is..." ;
# an account has a property shape Account Age.
# Definition of the property shape follows (2)
sh:property example:Account-AccountAge ;
# an account has a property shape Account Branch.
# Definition of the property shape follows (3)
sh:property example:Account-AccountBranch ;
rdfs:isDefinedBy exampleSchema:DatasetLogicalSchema;
.
# (2) Definition of the Account-AccountAge property shape
# describing that an account MUST have exactly one
# AccountAge attribute and its datatype is integer
example:Account-AccountAge a sh:PropertyShape ;
sh:path example:AccountAge ;
sh:datatype xsd:integer ;
sh:minCount 1 ;
sh:maxCount 1 ;
rdfs:isDefinedBy exampleSchema:DatasetLogicalSchema ;
.
# (3) Definition of the Account-AccountBranch property shape
# describing than an account must have at least one
# Account Branch which is another entity
example:Account-AccountBranch a sh:PropertyShape ;
sh:path example:AccountBranch ;
sh:class example:Branch ;
sh:minCount 1 ;
rdfs:isDefinedBy exampleSchema:DatasetLogicalSchema ;
.
# definition of the entity Branch as a Node Shape (1)
example:Branch a sh:NodeShape ;
rdfs:label "Branch"@en ;
dc:description "A Branch is.." ;
rdfs:isDefinedBy exampleSchema:DatasetLogicalSchema ;
.