diff --git a/examples/core-data-product-extensions/README.md b/examples/core-data-product-extensions/README.md index 82e4e7f..ba7dd1b 100644 --- a/examples/core-data-product-extensions/README.md +++ b/examples/core-data-product-extensions/README.md @@ -78,7 +78,7 @@ Below is an example of a Data Product with an associated Data Product Agreement }, "ex:iSubjectToAgreement": { "@id": "ex:VVSimpleAgreement", - "@type": "ex:DataProductagreement" + "@type": "ex:DataProductAgreement" } } ], diff --git a/examples/data-rights/README.md b/examples/data-rights/README.md index 638c1d2..23ab16f 100644 --- a/examples/data-rights/README.md +++ b/examples/data-rights/README.md @@ -12,18 +12,21 @@ examplePolicyA odrl:target exampleProduct:ProductA . examplePolicyB odrl:target exampleDataset:DatasetA1 . ``` -An example of a policy follows, that describes permission to distribute the data only within a specific geographic region: +An example of an agreement follows, that describes permission to use all the datasets of the product if the user is working inside EMEA or APAC: ```json examplePolicyA odrl:permission { - "action": "odrl:distribute", - "constraint": [ - {"leftOperand": "spatial", - "operator": "eq", - "rightOperator": "region:EMEA" - } - ] + "action": "odrl:use", + "assignee": { + "@type": "odrl:PartyCollection", + "refinement": [ + {"leftOperand": "odrl:spatial", + "operator": "odrl:isAnyOf", + "rightOperand": ["reg:EMEA", "reg:APAC"] + } + ] } + } ``` diff --git a/examples/data-rights/example.jsonld b/examples/data-rights/example.jsonld index f1c4e4b..6a03398 100644 --- a/examples/data-rights/example.jsonld +++ b/examples/data-rights/example.jsonld @@ -1,5 +1,5 @@ { - "@type": "Offer", + "@type": "Agreement", "@context": [ { "odrl": "http://www.w3.org/ns/odrl/2/", @@ -7,24 +7,25 @@ } ], "uid": "56456df-dfg-34535345-5545", - "assigner": "https://schema.org/person/AdamSmith", - "target": "https://data.org/data-product/equity-trade-xxx", "permission": [ { - "action": "odrl:read", - "constraint": [ - { - "@type": "odrl:Constraint", - "leftOperand": "odrl:spatial", - "operator": "odrl:isAnyOf", - "rightOperand": [ - "reg:EMEA", - "reg:APAC" - ], - "description": " Permission to read all the datasets of the product if user is working inside EMEA or APAC" - } - ] + "target": "https://data.org/data-product/equity-trade-xxx", + "assigner": "https://schema.org/person/AdamSmith", + "assignee": { + "@type": "PartyCollection", + "source": "https://example.org/DataDepartment", + "refinement": [{ + "leftOperand": "odrl:spatial", + "operator": "odrl:isAnyOf", + "rightOperand": [ + "reg:EMEA", + "reg:APAC" + ], + "description": " Permission to read all the datasets of the product if user is working inside EMEA or APAC" + }] + }, + "action": "odrl:use", } ] } diff --git a/ontology/dprod/dprod-ontology.ttl b/ontology/dprod/dprod-ontology.ttl index 051bc2d..af8226a 100644 --- a/ontology/dprod/dprod-ontology.ttl +++ b/ontology/dprod/dprod-ontology.ttl @@ -54,7 +54,7 @@ dprod:DataProduct dprod:DataProductLifecycleStatus a owl:Class, rdfs:Class ; dct:description - "The development status of the data product taken from a controlled list (e.g. Ideation, Design, Build, Deploy, Consume)."@en ; + "The development status of the data product taken from a controlled list (e.g. Ideation, Design, Build, Deploy, Consume, Retire)."@en ; rdfs:comment "The lifecycle of the data product as defined by EDM Council CDMC"@en ; rdfs:isDefinedBy dprod: ; rdfs:label "data product lifecycle status" ; @@ -221,5 +221,5 @@ dprod:securitySchemaType rdfs:isDefinedBy dprod: ; rdfs:domain dcat:DataService ; # rdfs:range rdf:resource ; # better let user decide whether they want SecuritySchemaType class or own class or skos - rdf:label "security schema type" ; + rdfs:label "security schema type" ; . diff --git a/ontology/dprod/dprod-shapes.ttl b/ontology/dprod/dprod-shapes.ttl index 26727ab..d552f31 100644 --- a/ontology/dprod/dprod-shapes.ttl +++ b/ontology/dprod/dprod-shapes.ttl @@ -17,7 +17,6 @@ @prefix rdfs: . @prefix sh: . @prefix xsd: . -@prefix sdo: . dprod-shapes: a owl:Ontology ; @@ -125,7 +124,7 @@ dprod-shapes:InformationSensitivityClassificationShape dprod-shapes:DataProductLifecycleStatusShape a sh:NodeShape; rdfs:label "data product lifecycle status shape" ; - dct:description "The development status of the data product taken from a controlled list (e.g. Ideation, Design, Build, Deploy, Consume)."@en ; + dct:description "The development status of the data product taken from a controlled list (e.g. Ideation, Design, Build, Deploy, Consume, Retire)."@en ; sh:targetClass dprod:DataProductLifecycleStatus; rdfs:isDefinedBy dprod-shapes:; . @@ -362,7 +361,7 @@ dprod-shapes:DataService-protocol a sh:PropertyShape; rdfs:isDefinedBy dprod-shapes:; sh:path dprod:protocol; - sh:class dcat:Protocol; + sh:class dprod:Protocol; dct:description "A protocol (possibly one of many options) used to communicate with this data service."@en ; rdfs:label "data service protocol shape" ; . @@ -371,7 +370,7 @@ dprod-shapes:DataService-securitySchemaType a sh:PropertyShape; rdfs:isDefinedBy dprod-shapes:; sh:path dprod:securitySchemaType; - sh:class dcat:SecuritySchemaType; + sh:class dprod:SecuritySchemaType; dct:description "The security schema type used for authentication and communication with this Data Service."@en ; rdfs:label "data service security schema type shape" ; . diff --git a/respec/template.html b/respec/template.html index 790f542..d973f80 100644 --- a/respec/template.html +++ b/respec/template.html @@ -596,6 +596,15 @@

Normative namespaces

[[dprod]] + + + dprod-shapes + + + https://ekgf.github.io/dprod/shapes/ + + [[dprod]] + dcat diff --git a/spec-generator/globals.py b/spec-generator/globals.py index a880dbe..a914ba5 100644 --- a/spec-generator/globals.py +++ b/spec-generator/globals.py @@ -13,6 +13,7 @@ IGNORED_NODE_SHAPE_PREDICATES = ( RDF.type, + RDFS.label, RDFS.isDefinedBy, SKOS.altLabel, SKOS.changeNote,