From a16212b79e17d862ac8694a6fba36c9d3866b2cf Mon Sep 17 00:00:00 2001 From: Lange-Bever Date: Fri, 22 Mar 2024 10:42:47 +0100 Subject: [PATCH 1/9] typographic quotes --- model/terminology.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/terminology.md b/model/terminology.md index 64ce63b..870a41b 100644 --- a/model/terminology.md +++ b/model/terminology.md @@ -80,7 +80,7 @@ A technology system that performs operations on behalf of a [Participant](#parti ### Policy -A set of rules, duties, and obligations that define the terms of use for a [Dataset](#dataset). Also referred to as "Usage Policy". +A set of rules, duties, and obligations that define the terms of use for a [Dataset](#dataset). Also referred to as “Usage Policy”. ### Provider From 47744ebb022031fb1016f03aabbb9ed1f559cb2f Mon Sep 17 00:00:00 2001 From: Lange-Bever Date: Fri, 22 Mar 2024 10:45:32 +0100 Subject: [PATCH 2/9] expanding DCAT and ODRL acronyms on first occurrence --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0becdcf..16481a1 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ The __Dataspace Protocol__ is a set of specifications designed to facilitate int Sharing data between autonomous entities requires the provision of metadata to facilitate the transfer of [Datasets](./model/terminology.md#dataset) by making use of a data transfer (or application layer) protocol. The __Dataspace Protocol__ defines how this metadata is provisioned: -1. How [Datasets](./model/terminology.md#dataset) are deployed as [DCAT Catalogs](https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog) and usage control is expressed as [ODRL Policies](https://www.w3.org/TR/odrl-model/). +1. How [Datasets](./model/terminology.md#dataset) are deployed as [Catalogs](https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog) in terms of the DCAT Data Catalog Vocabulary, and how usage control is expressed as [Policies](https://www.w3.org/TR/odrl-model/) in the ODRL Open Digital Rights Language. 2. How [Agreements](./model/terminology.md#agreement) that govern data usage are syntactically expressed and electronically negotiated. 3. How [Datasets](./model/terminology.md#dataset) are accessed using [Transfer Process Protocols](./model/terminology.md#transfer-process-protocol). From ebc7212fef1effee21e1731acf1a6875e02de5fc Mon Sep 17 00:00:00 2001 From: Lange-Bever Date: Fri, 22 Mar 2024 10:51:17 +0100 Subject: [PATCH 3/9] minor linguistics --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 16481a1..fd3c400 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,10 @@ The __Dataspace Protocol__ defines how this metadata is provisioned: 2. How [Agreements](./model/terminology.md#agreement) that govern data usage are syntactically expressed and electronically negotiated. 3. How [Datasets](./model/terminology.md#dataset) are accessed using [Transfer Process Protocols](./model/terminology.md#transfer-process-protocol). -These specifications build on protocols located in the [ISO OSI model (ISO/IEC 7498-1:1994)](https://www.iso.org/standard/20269.html) layers, like HTTPS. +These specifications build on protocols located in the [ISO OSI model (ISO/IEC 7498-1:1994)](https://www.iso.org/standard/20269.html) layers, such as HTTPS. The purpose of this specification is to define interactions between systems independent of such protocols, but describing how to implement it in an unambiguous and extensible way. To do so, the messages that are exchanged during the process are described in this specification and the states and their transitions are specified as state machines, based on the key terms and concepts of a [Dataspace](./model/terminology.md#dataspace). -On this foundation the bindings to data transfer protocols, like HTTPS, are described. +On this foundation the bindings to data transfer protocols, such as HTTPS, are described. The specifications are organized into the following documents: @@ -58,9 +58,9 @@ While most interactions take place between [Connectors](./model/terminology.md#c The figure below provides an overview on the context of this specification. An [Identity Provider](./model/terminology.md#identity-provider) realizes the required interfaces and provides required information to implement the Trust Framework of a [Dataspace](./model/terminology.md#dataspace). -The validation of the identity of a given [Participant Agent](./model/terminology.md#participant-agent) and the validation of additional claims is a fundamental mechanism. The structure and content of such claims and identities may, however, vary between different [Dataspaces](./model/terminology.md#dataspace), as well as the structure of such an [Identity Provider](./model/terminology.md#identity-provider), e.g. a centralized system, a decentralized system or a federated system. Other specifications, like the Identity and Trust Protocol ([IATP](https://github.com/eclipse-tractusx/identity-trust)), define the respective functions. +The validation of the identity of a given [Participant Agent](./model/terminology.md#participant-agent) and the validation of additional claims is a fundamental mechanism. The structure and content of such claims and identities may, however, vary between different [Dataspaces](./model/terminology.md#dataspace), as well as the structure of such an [Identity Provider](./model/terminology.md#identity-provider), e.g. a centralized system, a decentralized system or a federated system. Other specifications, such as the Identity and Trust Protocol ([IATP](https://github.com/eclipse-tractusx/identity-trust)), define the respective functions. -A [Connector](./model/terminology.md#connector--data-service-) will implement additional internal functionalities, like monitoring or policy engines, as appropriate. It is not covered by this specification if a [Connector](./model/terminology.md#connector--data-service-) implements such or how. +A [Connector](./model/terminology.md#connector--data-service-) will implement additional internal functionalities, such as monitoring or policy engines, as appropriate. It is not covered by this specification if a [Connector](./model/terminology.md#connector--data-service-) implements such or how. The same applies for the actual data that is transferred between the systems. While this document does not define the transport protocol, the structure, syntax or semantics of the data, a specification for those aspects is required and subject to the agreements of the [Participants](./model/terminology.md#participant) or the [Dataspace](./model/terminology.md#dataspace). From 7d19bc535f227d007be482d2c9b6571e7a9a7460 Mon Sep 17 00:00:00 2001 From: Lange-Bever Date: Mon, 6 May 2024 06:57:27 +0100 Subject: [PATCH 4/9] minor linguistics --- model/model.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/model/model.md b/model/model.md index efdc640..3c8ca5a 100644 --- a/model/model.md +++ b/model/model.md @@ -4,7 +4,7 @@ The following sections outline the Dataspace Information Model, which form the foundation of this specification. Some aspects of this section describe additional concepts of Dataspaces and provide context for the Dataspace Protocol, -those are considered as non-normative. Further information on the functional requirements of a Dataspace can be found for example in +those are considered as non-normative. Further information on the functional requirements of a Dataspace can be found, for example, in the [IDSA Rulebook](https://docs.internationaldataspaces.org/idsa-rulebook). ### 2.1 Dataspace Entity Relationships @@ -13,7 +13,7 @@ the [IDSA Rulebook](https://docs.internationaldataspaces.org/idsa-rulebook). In a broader context, the Dataspace Protocol enables the interaction between participants of a Dataspace. This may require additional concepts, which are not in the scope of this specification. -The definitions below are therefore informative and not-normative. +The definitions below are therefore informative and non-normative. The relationships between the primary [Dataspace](./terminology.md#dataspace) entities are defined as follows: ![](./m.dataspace.relationships.png) From 50f2a647adaba09f866d8c9e1cba462087d12771 Mon Sep 17 00:00:00 2001 From: sebbader-sap <107036549+sebbader-sap@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:37:28 +0200 Subject: [PATCH 5/9] Hotfix: Schema, Example, and Context Fixes (#264) Fixing some category 2 errors: * Fix error in context.json * Fix various errors in json schemas and examples --------- Co-authored-by: simantvermasap <143084974+simantvermasap@users.noreply.github.com> --- catalog/message/example/catalog.json | 39 ++++++++++--------- .../example/dataset-request-message.json | 2 +- catalog/message/example/dataset.json | 7 ++-- catalog/message/schema/catalog-schema.json | 10 +++-- catalog/message/schema/dataset-schema.json | 12 +++++- .../shape/dataset-request-message-shape.ttl | 3 +- catalog/message/shape/dataset-shape.ttl | 8 ++-- catalog/message/shape/dcat-shapes.ttl | 8 ++-- common/schema/context.json | 2 +- .../example/contract-agreement-message.json | 2 +- .../example/contract-offer-message.json | 2 +- .../contract-offer-message_initial.json | 8 +++- .../example/contract-request-message.json | 4 +- .../contract-request-message_initial.json | 8 +++- ...tract.agreement.message.http.transfer.json | 5 ++- .../schema/contract-offer-message-schema.json | 2 +- .../contract-request-message-schema.json | 2 +- .../message/schema/contract-schema.json | 5 +-- .../contract-agreement-message-shape.ttl | 4 +- .../shape/contract-offer-message-shape.ttl | 4 +- .../shape/contract-request-message-shape.ttl | 4 +- .../catalog/message/example/catalog.json | 39 ++++++++++--------- .../example/dataset-request-message.json | 2 +- .../catalog/message/example/dataset.json | 7 ++-- .../message/schema/catalog-schema.json | 10 +++-- .../message/schema/dataset-schema.json | 12 +++++- .../shape/dataset-request-message-shape.ttl | 3 +- .../catalog/message/shape/dataset-shape.ttl | 8 ++-- .../catalog/message/shape/dcat-shapes.ttl | 8 ++-- releases/2024-1/common/schema/context.json | 2 +- .../example/contract-agreement-message.json | 2 +- .../example/contract-offer-message.json | 2 +- .../contract-offer-message_initial.json | 8 +++- .../example/contract-request-message.json | 4 +- .../contract-request-message_initial.json | 8 +++- ...tract.agreement.message.http.transfer.json | 5 ++- .../schema/contract-offer-message-schema.json | 2 +- .../contract-request-message-schema.json | 2 +- .../message/schema/contract-schema.json | 5 +-- .../contract-agreement-message-shape.ttl | 4 +- .../shape/contract-offer-message-shape.ttl | 4 +- .../shape/contract-request-message-shape.ttl | 4 +- .../example/transfer-request-message.json | 2 +- .../shape/transfer-request-message-shape.ttl | 4 +- .../example/transfer-request-message.json | 2 +- .../shape/transfer-request-message-shape.ttl | 4 +- 46 files changed, 170 insertions(+), 124 deletions(-) diff --git a/catalog/message/example/catalog.json b/catalog/message/example/catalog.json index 5d77c89..869ad7e 100644 --- a/catalog/message/example/catalog.json +++ b/catalog/message/example/catalog.json @@ -38,36 +38,39 @@ ], "odrl:hasPolicy": [ { + "@id": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", "@type": "odrl:Offer", - "dspace:providerId": "http://example.com/Provider", + "odrl:assigner": "http://example.com/Provider", "odrl:permission": [ { "odrl:action": "odrl:use", "odrl:constraint": [ { "odrl:leftOperand": "odrl:spatial", - "odrl:operator": "odrl:EQ", - "odrl:rightOperand": "odrl:EU" + "odrl:operator": "odrl:eq", + "odrl:rightOperand": "http://example.org/EU" } ], - "odrl:duty": [] + "odrl:duty": { + "odrl:action": "cc:Attribution" + } } - ], - "odrl:prohibition": [], - "odrl:obligation": [] + ] } ], - "dcat:distribution": { - "@type": "dcat:Distribution", - "dct:format": "dspace:s3+push", - "dcat:accessService": [ - { - "@id": "urn:uuid:4aa2dcc8-4d2d-569e-d634-8394a8834d77", - "@type": "dcat:DataService", - "dcat:endpointURL": "https://provider-a.com/connector" - } - ] - } + "dcat:distribution": [ + { + "@type": "dcat:Distribution", + "dct:format": "dspace:s3+push", + "dcat:accessService": [ + { + "@id": "urn:uuid:4aa2dcc8-4d2d-569e-d634-8394a8834d77", + "@type": "dcat:DataService", + "dcat:endpointURL": "https://provider-a.com/connector" + } + ] + } + ] } ] } diff --git a/catalog/message/example/dataset-request-message.json b/catalog/message/example/dataset-request-message.json index deb03ea..a1fe953 100644 --- a/catalog/message/example/dataset-request-message.json +++ b/catalog/message/example/dataset-request-message.json @@ -1,5 +1,5 @@ { "@context": "https://w3id.org/dspace/2024/1/context.json", "@type": "dspace:DatasetRequestMessage", - "dspace:dataset": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" + "dspace:dataset": "urn:uuid:3afeadd8-ed2d-569e-d634-8394a8836d57" } diff --git a/catalog/message/example/dataset.json b/catalog/message/example/dataset.json index 5a05b27..2ccf961 100644 --- a/catalog/message/example/dataset.json +++ b/catalog/message/example/dataset.json @@ -12,9 +12,10 @@ "dcat:keyword": [ "traffic" ], - "odrl:hasPolicy": { + "odrl:hasPolicy": [ { "@type": "odrl:Offer", "@id": "urn:uuid:2828282:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:assigner": "urn:tsdshhs636378", "odrl:permission": [ { "odrl:action": "odrl:use", @@ -27,7 +28,7 @@ ] } ] - }, + } ], "dcat:distribution": [ { "@type": "dcat:Distribution", @@ -42,4 +43,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/catalog/message/schema/catalog-schema.json b/catalog/message/schema/catalog-schema.json index 69a8b68..c262573 100644 --- a/catalog/message/schema/catalog-schema.json +++ b/catalog/message/schema/catalog-schema.json @@ -13,7 +13,7 @@ "type": "object", "allOf": [ { - "$ref": "https://w3id.org/dspace/2024/1/catalog/dataset-schema.json#/definitions/Dataset" + "$ref": "https://w3id.org/dspace/2024/1/catalog/dataset-schema.json#/definitions/AbstractDataset" }, { "properties": { @@ -49,9 +49,11 @@ } ], "required": [ "@context", "@type" ], - "not": { - "required": [ "odrl:hasPolicy" ] - } + "anyOf" : [ + { + "not" : { "required" : [ "odrl:hasPolicy" ] } + } + ] } } } diff --git a/catalog/message/schema/dataset-schema.json b/catalog/message/schema/dataset-schema.json index a919c22..e62634c 100644 --- a/catalog/message/schema/dataset-schema.json +++ b/catalog/message/schema/dataset-schema.json @@ -9,7 +9,7 @@ ], "$id": "https://w3id.org/dspace/2024/1/catalog/dataset-schema.json", "definitions": { - "Dataset": { + "AbstractDataset": { "type": "object", "allOf": [ { @@ -33,6 +33,14 @@ } } } + ] + }, + "Dataset": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AbstractDataset" + } ], "required": [ "odrl:hasPolicy" @@ -164,4 +172,4 @@ "required": [ "@value", "@language" ] } } -} \ No newline at end of file +} diff --git a/catalog/message/shape/dataset-request-message-shape.ttl b/catalog/message/shape/dataset-request-message-shape.ttl index e981b96..c1542a6 100644 --- a/catalog/message/shape/dataset-request-message-shape.ttl +++ b/catalog/message/shape/dataset-request-message-shape.ttl @@ -32,10 +32,9 @@ dspace_shapes:DatasetRequestMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:dataset ; - sh:class dcat:Dataset ; sh:minCount 1 ; sh:maxCount 1 ; sh:severity sh:Violation ; - sh:message " (DatasetRequestMessage): An dspace:dataset property must point to one dcat:Dataset."@en ; + sh:message " (DatasetRequestMessage): There must be exactly one dspace:dataset property."@en ; ] ; . diff --git a/catalog/message/shape/dataset-shape.ttl b/catalog/message/shape/dataset-shape.ttl index 4132ad8..2bb0c50 100644 --- a/catalog/message/shape/dataset-shape.ttl +++ b/catalog/message/shape/dataset-shape.ttl @@ -60,19 +60,19 @@ dspace_shapes:DatasetShape sh:property [ a sh:PropertyShape ; sh:path dct:title ; - sh:datatype xsd:string ; + sh:datatype rdf:langString ; sh:minCount 0; sh:severity sh:Violation ; - sh:message " (DatasetShape): A dct:title property must point to a xsd:string field."@en ; + sh:message " (DatasetShape): A dct:title property must point to a language tagged field."@en ; ] ; sh:property [ a sh:PropertyShape ; sh:path odrl:hasPolicy ; - sh:class odrl:Policy ; + sh:class odrl:Offer ; sh:severity sh:Violation ; sh:minCount 0; sh:message " (DatasetShape): An odrl:hasPolicy property must point to an odrl:Policy."@en ; ] ; -. \ No newline at end of file +. diff --git a/catalog/message/shape/dcat-shapes.ttl b/catalog/message/shape/dcat-shapes.ttl index 000e892..217aa89 100644 --- a/catalog/message/shape/dcat-shapes.ttl +++ b/catalog/message/shape/dcat-shapes.ttl @@ -242,7 +242,7 @@ dspace_shapes:DataServiceShape sh:property [ a sh:PropertyShape ; sh:path dcat:endpointDescription ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:severity sh:Violation ; sh:message " (DataServiceShape): A dcat:endpointDescription property must point to a xsd:string field."@en ; ] ; @@ -250,9 +250,9 @@ dspace_shapes:DataServiceShape sh:property [ a sh:PropertyShape ; sh:path dcat:endpointURL ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:severity sh:Violation ; - sh:message " (DataServiceShape): A dcat:endpointURL property must point to a xsd:string field."@en ; + sh:message " (DataServiceShape): A dcat:endpointURL property must point to a xsd:anyURI field."@en ; ] ; sh:property [ @@ -264,4 +264,4 @@ dspace_shapes:DataServiceShape sh:message " (DataServiceShape): A dcat:servesDataset property must point to a dcat:Dataset."@en ; ] ; -. \ No newline at end of file +. diff --git a/common/schema/context.json b/common/schema/context.json index f475b23..f26eaff 100644 --- a/common/schema/context.json +++ b/common/schema/context.json @@ -55,7 +55,7 @@ "odrl:leftOperand": { "@type": "@id" }, "odrl:operator": { "@type": "@id" }, "odrl:rightOperandReference": { "@type": "@id" }, - "odrl:profile": { "@container": "@set" } + "odrl:profile": { "@container": "@set" }, "odrl:assigner": { "@type": "@id" }, "odrl:assignee": { "@type": "@id" } } diff --git a/negotiation/message/example/contract-agreement-message.json b/negotiation/message/example/contract-agreement-message.json index c1e3d78..a0016bc 100644 --- a/negotiation/message/example/contract-agreement-message.json +++ b/negotiation/message/example/contract-agreement-message.json @@ -19,5 +19,5 @@ }] }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/negotiation/message/example/contract-offer-message.json b/negotiation/message/example/contract-offer-message.json index a9a2920..06fc69b 100644 --- a/negotiation/message/example/contract-offer-message.json +++ b/negotiation/message/example/contract-offer-message.json @@ -18,5 +18,5 @@ }] }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/negotiation/message/example/contract-offer-message_initial.json b/negotiation/message/example/contract-offer-message_initial.json index a7e2eba..6e6b5a4 100644 --- a/negotiation/message/example/contract-offer-message_initial.json +++ b/negotiation/message/example/contract-offer-message_initial.json @@ -5,7 +5,11 @@ "dspace:offer": { "@type": "odrl:Offer", "@id": "urn:uuid:d526561f-528e-4d5a-ae12-9a9dd9b7a518", - "target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" + "odrl:assigner": "urn:tsdshhs636378", + "target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:permission": [{ + "odrl:action": "odrl:use" + }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/negotiation/message/example/contract-request-message.json b/negotiation/message/example/contract-request-message.json index 840e02a..32f7211 100644 --- a/negotiation/message/example/contract-request-message.json +++ b/negotiation/message/example/contract-request-message.json @@ -4,6 +4,8 @@ "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:offer": { + "@type": "odrl:Offer", + "@id": "urn:uuid:d526561f-528e-4d5a-ae12-9a9dd9b7a815", "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", "odrl:assigner": "urn:tsdshhs636378", "odrl:assignee": "urn:jashd766", @@ -16,5 +18,5 @@ }] }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/negotiation/message/example/contract-request-message_initial.json b/negotiation/message/example/contract-request-message_initial.json index 38c9f93..aafe340 100644 --- a/negotiation/message/example/contract-request-message_initial.json +++ b/negotiation/message/example/contract-request-message_initial.json @@ -5,7 +5,11 @@ "dspace:offer": { "@type": "odrl:Offer", "@id": "urn:uuid:2828282:3dd1add8-4d2d-569e-d634-8394a8836a89", - "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" + "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:assigner": "urn:tsdshhs636378", + "odrl:permission": [{ + "odrl:action": "odrl:use" + }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/negotiation/message/example/contract.agreement.message.http.transfer.json b/negotiation/message/example/contract.agreement.message.http.transfer.json index 4f477e0..90006b4 100644 --- a/negotiation/message/example/contract.agreement.message.http.transfer.json +++ b/negotiation/message/example/contract.agreement.message.http.transfer.json @@ -4,7 +4,7 @@ "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:agreement": { - "@id": "some-other-id", + "@id": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", "@type": "odrl:Agreement", "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", "odrl:assignee": "...", @@ -39,5 +39,6 @@ ] } ] - } + }, + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/negotiation/message/schema/contract-offer-message-schema.json b/negotiation/message/schema/contract-offer-message-schema.json index 0d48e56..3ea7d45 100644 --- a/negotiation/message/schema/contract-offer-message-schema.json +++ b/negotiation/message/schema/contract-offer-message-schema.json @@ -36,4 +36,4 @@ "required": [ "@context", "@type", "dspace:providerPid", "dspace:offer", "dspace:callbackAddress" ] } } -} \ No newline at end of file +} diff --git a/negotiation/message/schema/contract-request-message-schema.json b/negotiation/message/schema/contract-request-message-schema.json index 202f9af..3b1b8bb 100644 --- a/negotiation/message/schema/contract-request-message-schema.json +++ b/negotiation/message/schema/contract-request-message-schema.json @@ -36,4 +36,4 @@ "required": [ "@context", "@type", "dspace:consumerPid", "dspace:offer", "dspace:callbackAddress" ] } } -} \ No newline at end of file +} diff --git a/negotiation/message/schema/contract-schema.json b/negotiation/message/schema/contract-schema.json index 3490c8c..7689334 100644 --- a/negotiation/message/schema/contract-schema.json +++ b/negotiation/message/schema/contract-schema.json @@ -68,8 +68,7 @@ "odrl:assignee": { "type": "string" } - }, - "not": { "required": [ "odrl:target" ] } + } }, "MessageOffer": { "type": "object", @@ -153,7 +152,7 @@ "required": [ "@type", "@id", - "@target", + "odrl:target", "odrl:assignee", "odrl:assigner" ] diff --git a/negotiation/message/shape/contract-agreement-message-shape.ttl b/negotiation/message/shape/contract-agreement-message-shape.ttl index d0a7400..d5624b8 100644 --- a/negotiation/message/shape/contract-agreement-message-shape.ttl +++ b/negotiation/message/shape/contract-agreement-message-shape.ttl @@ -60,10 +60,10 @@ dspace_shapes:ContractAgreementMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:callbackAddress ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:maxCount 1 ; sh:minCount 1 ; sh:severity sh:Violation ; - sh:message " (ContractAgreementMessageShape): An dspace:callbackAddress property must point to exactly one xsd:string value."@en ; + sh:message " (ContractAgreementMessageShape): An dspace:callbackAddress property must point to exactly one xsd:anyURI value."@en ; ] . diff --git a/negotiation/message/shape/contract-offer-message-shape.ttl b/negotiation/message/shape/contract-offer-message-shape.ttl index b619d8c..36de8ba 100644 --- a/negotiation/message/shape/contract-offer-message-shape.ttl +++ b/negotiation/message/shape/contract-offer-message-shape.ttl @@ -60,10 +60,10 @@ dspace_shapes:ContractOfferMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:callbackAddress ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:maxCount 1 ; sh:minCount 1 ; sh:severity sh:Violation ; - sh:message " (ContractOfferMessageShape): A dspace:callbackAddress property must point to exactly one xsd:string value."@en ; + sh:message " (ContractOfferMessageShape): A dspace:callbackAddress property must point to exactly one xsd:anyURI value."@en ; ] ; . \ No newline at end of file diff --git a/negotiation/message/shape/contract-request-message-shape.ttl b/negotiation/message/shape/contract-request-message-shape.ttl index e28482a..c8f0e43 100644 --- a/negotiation/message/shape/contract-request-message-shape.ttl +++ b/negotiation/message/shape/contract-request-message-shape.ttl @@ -60,10 +60,10 @@ dspace_shapes:ContractRequestMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:callbackAddress ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:maxCount 1 ; sh:minCount 1 ; sh:severity sh:Violation ; - sh:message " (ContractRequestMessageShape): An dspace:callbackAddress property must point to exactly one xsd:string value."@en ; + sh:message " (ContractRequestMessageShape): An dspace:callbackAddress property must point to exactly one xsd:anyURI value."@en ; ] ; . \ No newline at end of file diff --git a/releases/2024-1/catalog/message/example/catalog.json b/releases/2024-1/catalog/message/example/catalog.json index 5d77c89..869ad7e 100644 --- a/releases/2024-1/catalog/message/example/catalog.json +++ b/releases/2024-1/catalog/message/example/catalog.json @@ -38,36 +38,39 @@ ], "odrl:hasPolicy": [ { + "@id": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", "@type": "odrl:Offer", - "dspace:providerId": "http://example.com/Provider", + "odrl:assigner": "http://example.com/Provider", "odrl:permission": [ { "odrl:action": "odrl:use", "odrl:constraint": [ { "odrl:leftOperand": "odrl:spatial", - "odrl:operator": "odrl:EQ", - "odrl:rightOperand": "odrl:EU" + "odrl:operator": "odrl:eq", + "odrl:rightOperand": "http://example.org/EU" } ], - "odrl:duty": [] + "odrl:duty": { + "odrl:action": "cc:Attribution" + } } - ], - "odrl:prohibition": [], - "odrl:obligation": [] + ] } ], - "dcat:distribution": { - "@type": "dcat:Distribution", - "dct:format": "dspace:s3+push", - "dcat:accessService": [ - { - "@id": "urn:uuid:4aa2dcc8-4d2d-569e-d634-8394a8834d77", - "@type": "dcat:DataService", - "dcat:endpointURL": "https://provider-a.com/connector" - } - ] - } + "dcat:distribution": [ + { + "@type": "dcat:Distribution", + "dct:format": "dspace:s3+push", + "dcat:accessService": [ + { + "@id": "urn:uuid:4aa2dcc8-4d2d-569e-d634-8394a8834d77", + "@type": "dcat:DataService", + "dcat:endpointURL": "https://provider-a.com/connector" + } + ] + } + ] } ] } diff --git a/releases/2024-1/catalog/message/example/dataset-request-message.json b/releases/2024-1/catalog/message/example/dataset-request-message.json index deb03ea..a1fe953 100644 --- a/releases/2024-1/catalog/message/example/dataset-request-message.json +++ b/releases/2024-1/catalog/message/example/dataset-request-message.json @@ -1,5 +1,5 @@ { "@context": "https://w3id.org/dspace/2024/1/context.json", "@type": "dspace:DatasetRequestMessage", - "dspace:dataset": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" + "dspace:dataset": "urn:uuid:3afeadd8-ed2d-569e-d634-8394a8836d57" } diff --git a/releases/2024-1/catalog/message/example/dataset.json b/releases/2024-1/catalog/message/example/dataset.json index 5a05b27..2ccf961 100644 --- a/releases/2024-1/catalog/message/example/dataset.json +++ b/releases/2024-1/catalog/message/example/dataset.json @@ -12,9 +12,10 @@ "dcat:keyword": [ "traffic" ], - "odrl:hasPolicy": { + "odrl:hasPolicy": [ { "@type": "odrl:Offer", "@id": "urn:uuid:2828282:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:assigner": "urn:tsdshhs636378", "odrl:permission": [ { "odrl:action": "odrl:use", @@ -27,7 +28,7 @@ ] } ] - }, + } ], "dcat:distribution": [ { "@type": "dcat:Distribution", @@ -42,4 +43,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/releases/2024-1/catalog/message/schema/catalog-schema.json b/releases/2024-1/catalog/message/schema/catalog-schema.json index 69a8b68..c262573 100644 --- a/releases/2024-1/catalog/message/schema/catalog-schema.json +++ b/releases/2024-1/catalog/message/schema/catalog-schema.json @@ -13,7 +13,7 @@ "type": "object", "allOf": [ { - "$ref": "https://w3id.org/dspace/2024/1/catalog/dataset-schema.json#/definitions/Dataset" + "$ref": "https://w3id.org/dspace/2024/1/catalog/dataset-schema.json#/definitions/AbstractDataset" }, { "properties": { @@ -49,9 +49,11 @@ } ], "required": [ "@context", "@type" ], - "not": { - "required": [ "odrl:hasPolicy" ] - } + "anyOf" : [ + { + "not" : { "required" : [ "odrl:hasPolicy" ] } + } + ] } } } diff --git a/releases/2024-1/catalog/message/schema/dataset-schema.json b/releases/2024-1/catalog/message/schema/dataset-schema.json index a919c22..e62634c 100644 --- a/releases/2024-1/catalog/message/schema/dataset-schema.json +++ b/releases/2024-1/catalog/message/schema/dataset-schema.json @@ -9,7 +9,7 @@ ], "$id": "https://w3id.org/dspace/2024/1/catalog/dataset-schema.json", "definitions": { - "Dataset": { + "AbstractDataset": { "type": "object", "allOf": [ { @@ -33,6 +33,14 @@ } } } + ] + }, + "Dataset": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AbstractDataset" + } ], "required": [ "odrl:hasPolicy" @@ -164,4 +172,4 @@ "required": [ "@value", "@language" ] } } -} \ No newline at end of file +} diff --git a/releases/2024-1/catalog/message/shape/dataset-request-message-shape.ttl b/releases/2024-1/catalog/message/shape/dataset-request-message-shape.ttl index e981b96..c1542a6 100644 --- a/releases/2024-1/catalog/message/shape/dataset-request-message-shape.ttl +++ b/releases/2024-1/catalog/message/shape/dataset-request-message-shape.ttl @@ -32,10 +32,9 @@ dspace_shapes:DatasetRequestMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:dataset ; - sh:class dcat:Dataset ; sh:minCount 1 ; sh:maxCount 1 ; sh:severity sh:Violation ; - sh:message " (DatasetRequestMessage): An dspace:dataset property must point to one dcat:Dataset."@en ; + sh:message " (DatasetRequestMessage): There must be exactly one dspace:dataset property."@en ; ] ; . diff --git a/releases/2024-1/catalog/message/shape/dataset-shape.ttl b/releases/2024-1/catalog/message/shape/dataset-shape.ttl index 4132ad8..2bb0c50 100644 --- a/releases/2024-1/catalog/message/shape/dataset-shape.ttl +++ b/releases/2024-1/catalog/message/shape/dataset-shape.ttl @@ -60,19 +60,19 @@ dspace_shapes:DatasetShape sh:property [ a sh:PropertyShape ; sh:path dct:title ; - sh:datatype xsd:string ; + sh:datatype rdf:langString ; sh:minCount 0; sh:severity sh:Violation ; - sh:message " (DatasetShape): A dct:title property must point to a xsd:string field."@en ; + sh:message " (DatasetShape): A dct:title property must point to a language tagged field."@en ; ] ; sh:property [ a sh:PropertyShape ; sh:path odrl:hasPolicy ; - sh:class odrl:Policy ; + sh:class odrl:Offer ; sh:severity sh:Violation ; sh:minCount 0; sh:message " (DatasetShape): An odrl:hasPolicy property must point to an odrl:Policy."@en ; ] ; -. \ No newline at end of file +. diff --git a/releases/2024-1/catalog/message/shape/dcat-shapes.ttl b/releases/2024-1/catalog/message/shape/dcat-shapes.ttl index 000e892..217aa89 100644 --- a/releases/2024-1/catalog/message/shape/dcat-shapes.ttl +++ b/releases/2024-1/catalog/message/shape/dcat-shapes.ttl @@ -242,7 +242,7 @@ dspace_shapes:DataServiceShape sh:property [ a sh:PropertyShape ; sh:path dcat:endpointDescription ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:severity sh:Violation ; sh:message " (DataServiceShape): A dcat:endpointDescription property must point to a xsd:string field."@en ; ] ; @@ -250,9 +250,9 @@ dspace_shapes:DataServiceShape sh:property [ a sh:PropertyShape ; sh:path dcat:endpointURL ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:severity sh:Violation ; - sh:message " (DataServiceShape): A dcat:endpointURL property must point to a xsd:string field."@en ; + sh:message " (DataServiceShape): A dcat:endpointURL property must point to a xsd:anyURI field."@en ; ] ; sh:property [ @@ -264,4 +264,4 @@ dspace_shapes:DataServiceShape sh:message " (DataServiceShape): A dcat:servesDataset property must point to a dcat:Dataset."@en ; ] ; -. \ No newline at end of file +. diff --git a/releases/2024-1/common/schema/context.json b/releases/2024-1/common/schema/context.json index f475b23..f26eaff 100644 --- a/releases/2024-1/common/schema/context.json +++ b/releases/2024-1/common/schema/context.json @@ -55,7 +55,7 @@ "odrl:leftOperand": { "@type": "@id" }, "odrl:operator": { "@type": "@id" }, "odrl:rightOperandReference": { "@type": "@id" }, - "odrl:profile": { "@container": "@set" } + "odrl:profile": { "@container": "@set" }, "odrl:assigner": { "@type": "@id" }, "odrl:assignee": { "@type": "@id" } } diff --git a/releases/2024-1/negotiation/message/example/contract-agreement-message.json b/releases/2024-1/negotiation/message/example/contract-agreement-message.json index c1e3d78..a0016bc 100644 --- a/releases/2024-1/negotiation/message/example/contract-agreement-message.json +++ b/releases/2024-1/negotiation/message/example/contract-agreement-message.json @@ -19,5 +19,5 @@ }] }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/releases/2024-1/negotiation/message/example/contract-offer-message.json b/releases/2024-1/negotiation/message/example/contract-offer-message.json index a9a2920..06fc69b 100644 --- a/releases/2024-1/negotiation/message/example/contract-offer-message.json +++ b/releases/2024-1/negotiation/message/example/contract-offer-message.json @@ -18,5 +18,5 @@ }] }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/releases/2024-1/negotiation/message/example/contract-offer-message_initial.json b/releases/2024-1/negotiation/message/example/contract-offer-message_initial.json index a7e2eba..6e6b5a4 100644 --- a/releases/2024-1/negotiation/message/example/contract-offer-message_initial.json +++ b/releases/2024-1/negotiation/message/example/contract-offer-message_initial.json @@ -5,7 +5,11 @@ "dspace:offer": { "@type": "odrl:Offer", "@id": "urn:uuid:d526561f-528e-4d5a-ae12-9a9dd9b7a518", - "target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" + "odrl:assigner": "urn:tsdshhs636378", + "target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:permission": [{ + "odrl:action": "odrl:use" + }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/releases/2024-1/negotiation/message/example/contract-request-message.json b/releases/2024-1/negotiation/message/example/contract-request-message.json index 840e02a..32f7211 100644 --- a/releases/2024-1/negotiation/message/example/contract-request-message.json +++ b/releases/2024-1/negotiation/message/example/contract-request-message.json @@ -4,6 +4,8 @@ "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:offer": { + "@type": "odrl:Offer", + "@id": "urn:uuid:d526561f-528e-4d5a-ae12-9a9dd9b7a815", "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", "odrl:assigner": "urn:tsdshhs636378", "odrl:assignee": "urn:jashd766", @@ -16,5 +18,5 @@ }] }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/releases/2024-1/negotiation/message/example/contract-request-message_initial.json b/releases/2024-1/negotiation/message/example/contract-request-message_initial.json index 38c9f93..aafe340 100644 --- a/releases/2024-1/negotiation/message/example/contract-request-message_initial.json +++ b/releases/2024-1/negotiation/message/example/contract-request-message_initial.json @@ -5,7 +5,11 @@ "dspace:offer": { "@type": "odrl:Offer", "@id": "urn:uuid:2828282:3dd1add8-4d2d-569e-d634-8394a8836a89", - "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" + "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:assigner": "urn:tsdshhs636378", + "odrl:permission": [{ + "odrl:action": "odrl:use" + }] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/releases/2024-1/negotiation/message/example/contract.agreement.message.http.transfer.json b/releases/2024-1/negotiation/message/example/contract.agreement.message.http.transfer.json index 4f477e0..90006b4 100644 --- a/releases/2024-1/negotiation/message/example/contract.agreement.message.http.transfer.json +++ b/releases/2024-1/negotiation/message/example/contract.agreement.message.http.transfer.json @@ -4,7 +4,7 @@ "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", "dspace:agreement": { - "@id": "some-other-id", + "@id": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", "@type": "odrl:Agreement", "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", "odrl:assignee": "...", @@ -39,5 +39,6 @@ ] } ] - } + }, + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/releases/2024-1/negotiation/message/schema/contract-offer-message-schema.json b/releases/2024-1/negotiation/message/schema/contract-offer-message-schema.json index 0d48e56..3ea7d45 100644 --- a/releases/2024-1/negotiation/message/schema/contract-offer-message-schema.json +++ b/releases/2024-1/negotiation/message/schema/contract-offer-message-schema.json @@ -36,4 +36,4 @@ "required": [ "@context", "@type", "dspace:providerPid", "dspace:offer", "dspace:callbackAddress" ] } } -} \ No newline at end of file +} diff --git a/releases/2024-1/negotiation/message/schema/contract-request-message-schema.json b/releases/2024-1/negotiation/message/schema/contract-request-message-schema.json index 202f9af..3b1b8bb 100644 --- a/releases/2024-1/negotiation/message/schema/contract-request-message-schema.json +++ b/releases/2024-1/negotiation/message/schema/contract-request-message-schema.json @@ -36,4 +36,4 @@ "required": [ "@context", "@type", "dspace:consumerPid", "dspace:offer", "dspace:callbackAddress" ] } } -} \ No newline at end of file +} diff --git a/releases/2024-1/negotiation/message/schema/contract-schema.json b/releases/2024-1/negotiation/message/schema/contract-schema.json index 3490c8c..7689334 100644 --- a/releases/2024-1/negotiation/message/schema/contract-schema.json +++ b/releases/2024-1/negotiation/message/schema/contract-schema.json @@ -68,8 +68,7 @@ "odrl:assignee": { "type": "string" } - }, - "not": { "required": [ "odrl:target" ] } + } }, "MessageOffer": { "type": "object", @@ -153,7 +152,7 @@ "required": [ "@type", "@id", - "@target", + "odrl:target", "odrl:assignee", "odrl:assigner" ] diff --git a/releases/2024-1/negotiation/message/shape/contract-agreement-message-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-agreement-message-shape.ttl index d0a7400..d5624b8 100644 --- a/releases/2024-1/negotiation/message/shape/contract-agreement-message-shape.ttl +++ b/releases/2024-1/negotiation/message/shape/contract-agreement-message-shape.ttl @@ -60,10 +60,10 @@ dspace_shapes:ContractAgreementMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:callbackAddress ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:maxCount 1 ; sh:minCount 1 ; sh:severity sh:Violation ; - sh:message " (ContractAgreementMessageShape): An dspace:callbackAddress property must point to exactly one xsd:string value."@en ; + sh:message " (ContractAgreementMessageShape): An dspace:callbackAddress property must point to exactly one xsd:anyURI value."@en ; ] . diff --git a/releases/2024-1/negotiation/message/shape/contract-offer-message-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-offer-message-shape.ttl index b619d8c..36de8ba 100644 --- a/releases/2024-1/negotiation/message/shape/contract-offer-message-shape.ttl +++ b/releases/2024-1/negotiation/message/shape/contract-offer-message-shape.ttl @@ -60,10 +60,10 @@ dspace_shapes:ContractOfferMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:callbackAddress ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:maxCount 1 ; sh:minCount 1 ; sh:severity sh:Violation ; - sh:message " (ContractOfferMessageShape): A dspace:callbackAddress property must point to exactly one xsd:string value."@en ; + sh:message " (ContractOfferMessageShape): A dspace:callbackAddress property must point to exactly one xsd:anyURI value."@en ; ] ; . \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/shape/contract-request-message-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-request-message-shape.ttl index e28482a..c8f0e43 100644 --- a/releases/2024-1/negotiation/message/shape/contract-request-message-shape.ttl +++ b/releases/2024-1/negotiation/message/shape/contract-request-message-shape.ttl @@ -60,10 +60,10 @@ dspace_shapes:ContractRequestMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:callbackAddress ; - sh:datatype xsd:string ; + sh:datatype xsd:anyURI ; sh:maxCount 1 ; sh:minCount 1 ; sh:severity sh:Violation ; - sh:message " (ContractRequestMessageShape): An dspace:callbackAddress property must point to exactly one xsd:string value."@en ; + sh:message " (ContractRequestMessageShape): An dspace:callbackAddress property must point to exactly one xsd:anyURI value."@en ; ] ; . \ No newline at end of file diff --git a/releases/2024-1/transfer/message/example/transfer-request-message.json b/releases/2024-1/transfer/message/example/transfer-request-message.json index d891ef5..2da79e3 100644 --- a/releases/2024-1/transfer/message/example/transfer-request-message.json +++ b/releases/2024-1/transfer/message/example/transfer-request-message.json @@ -21,5 +21,5 @@ } ] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/releases/2024-1/transfer/message/shape/transfer-request-message-shape.ttl b/releases/2024-1/transfer/message/shape/transfer-request-message-shape.ttl index 86ac73d..e712ca7 100644 --- a/releases/2024-1/transfer/message/shape/transfer-request-message-shape.ttl +++ b/releases/2024-1/transfer/message/shape/transfer-request-message-shape.ttl @@ -33,11 +33,11 @@ dspace_shapes:TransferRequestMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:agreementId ; - sh:datatype xsd:anyURI ; + sh:nodeKind sh:IRI ; sh:severity sh:Violation ; sh:maxCount 1 ; sh:minCount 1 ; - sh:message " (TransferRequestMessageShape): An dspace:agreementId property must point exactly one xsd:anyURI field."@en ; + sh:message " (TransferRequestMessageShape): An dspace:agreementId property must point exactly one resource."@en ; ] ; sh:property [ diff --git a/transfer/message/example/transfer-request-message.json b/transfer/message/example/transfer-request-message.json index d891ef5..2da79e3 100644 --- a/transfer/message/example/transfer-request-message.json +++ b/transfer/message/example/transfer-request-message.json @@ -21,5 +21,5 @@ } ] }, - "dspace:callbackAddress": "https://......" + "dspace:callbackAddress": "https://example.com/callback" } diff --git a/transfer/message/shape/transfer-request-message-shape.ttl b/transfer/message/shape/transfer-request-message-shape.ttl index 86ac73d..e712ca7 100644 --- a/transfer/message/shape/transfer-request-message-shape.ttl +++ b/transfer/message/shape/transfer-request-message-shape.ttl @@ -33,11 +33,11 @@ dspace_shapes:TransferRequestMessageShape sh:property [ a sh:PropertyShape ; sh:path dspace:agreementId ; - sh:datatype xsd:anyURI ; + sh:nodeKind sh:IRI ; sh:severity sh:Violation ; sh:maxCount 1 ; sh:minCount 1 ; - sh:message " (TransferRequestMessageShape): An dspace:agreementId property must point exactly one xsd:anyURI field."@en ; + sh:message " (TransferRequestMessageShape): An dspace:agreementId property must point exactly one resource."@en ; ] ; sh:property [ From d987035159cb888932697652e1792a503f0fa635 Mon Sep 17 00:00:00 2001 From: Lange-Bever Date: Fri, 22 Mar 2024 10:42:47 +0100 Subject: [PATCH 6/9] typographic quotes --- model/terminology.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/terminology.md b/model/terminology.md index 64ce63b..870a41b 100644 --- a/model/terminology.md +++ b/model/terminology.md @@ -80,7 +80,7 @@ A technology system that performs operations on behalf of a [Participant](#parti ### Policy -A set of rules, duties, and obligations that define the terms of use for a [Dataset](#dataset). Also referred to as "Usage Policy". +A set of rules, duties, and obligations that define the terms of use for a [Dataset](#dataset). Also referred to as “Usage Policy”. ### Provider From 7d138e13ba8464da24a37b4de3ddf392cc3440b5 Mon Sep 17 00:00:00 2001 From: Lange-Bever Date: Fri, 22 Mar 2024 10:45:32 +0100 Subject: [PATCH 7/9] expanding DCAT and ODRL acronyms on first occurrence --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0becdcf..16481a1 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ The __Dataspace Protocol__ is a set of specifications designed to facilitate int Sharing data between autonomous entities requires the provision of metadata to facilitate the transfer of [Datasets](./model/terminology.md#dataset) by making use of a data transfer (or application layer) protocol. The __Dataspace Protocol__ defines how this metadata is provisioned: -1. How [Datasets](./model/terminology.md#dataset) are deployed as [DCAT Catalogs](https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog) and usage control is expressed as [ODRL Policies](https://www.w3.org/TR/odrl-model/). +1. How [Datasets](./model/terminology.md#dataset) are deployed as [Catalogs](https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog) in terms of the DCAT Data Catalog Vocabulary, and how usage control is expressed as [Policies](https://www.w3.org/TR/odrl-model/) in the ODRL Open Digital Rights Language. 2. How [Agreements](./model/terminology.md#agreement) that govern data usage are syntactically expressed and electronically negotiated. 3. How [Datasets](./model/terminology.md#dataset) are accessed using [Transfer Process Protocols](./model/terminology.md#transfer-process-protocol). From 2c2af5b0dce5479b6b0436f85f2c5414c845d7c7 Mon Sep 17 00:00:00 2001 From: Lange-Bever Date: Fri, 22 Mar 2024 10:51:17 +0100 Subject: [PATCH 8/9] minor linguistics --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 16481a1..fd3c400 100644 --- a/README.md +++ b/README.md @@ -24,10 +24,10 @@ The __Dataspace Protocol__ defines how this metadata is provisioned: 2. How [Agreements](./model/terminology.md#agreement) that govern data usage are syntactically expressed and electronically negotiated. 3. How [Datasets](./model/terminology.md#dataset) are accessed using [Transfer Process Protocols](./model/terminology.md#transfer-process-protocol). -These specifications build on protocols located in the [ISO OSI model (ISO/IEC 7498-1:1994)](https://www.iso.org/standard/20269.html) layers, like HTTPS. +These specifications build on protocols located in the [ISO OSI model (ISO/IEC 7498-1:1994)](https://www.iso.org/standard/20269.html) layers, such as HTTPS. The purpose of this specification is to define interactions between systems independent of such protocols, but describing how to implement it in an unambiguous and extensible way. To do so, the messages that are exchanged during the process are described in this specification and the states and their transitions are specified as state machines, based on the key terms and concepts of a [Dataspace](./model/terminology.md#dataspace). -On this foundation the bindings to data transfer protocols, like HTTPS, are described. +On this foundation the bindings to data transfer protocols, such as HTTPS, are described. The specifications are organized into the following documents: @@ -58,9 +58,9 @@ While most interactions take place between [Connectors](./model/terminology.md#c The figure below provides an overview on the context of this specification. An [Identity Provider](./model/terminology.md#identity-provider) realizes the required interfaces and provides required information to implement the Trust Framework of a [Dataspace](./model/terminology.md#dataspace). -The validation of the identity of a given [Participant Agent](./model/terminology.md#participant-agent) and the validation of additional claims is a fundamental mechanism. The structure and content of such claims and identities may, however, vary between different [Dataspaces](./model/terminology.md#dataspace), as well as the structure of such an [Identity Provider](./model/terminology.md#identity-provider), e.g. a centralized system, a decentralized system or a federated system. Other specifications, like the Identity and Trust Protocol ([IATP](https://github.com/eclipse-tractusx/identity-trust)), define the respective functions. +The validation of the identity of a given [Participant Agent](./model/terminology.md#participant-agent) and the validation of additional claims is a fundamental mechanism. The structure and content of such claims and identities may, however, vary between different [Dataspaces](./model/terminology.md#dataspace), as well as the structure of such an [Identity Provider](./model/terminology.md#identity-provider), e.g. a centralized system, a decentralized system or a federated system. Other specifications, such as the Identity and Trust Protocol ([IATP](https://github.com/eclipse-tractusx/identity-trust)), define the respective functions. -A [Connector](./model/terminology.md#connector--data-service-) will implement additional internal functionalities, like monitoring or policy engines, as appropriate. It is not covered by this specification if a [Connector](./model/terminology.md#connector--data-service-) implements such or how. +A [Connector](./model/terminology.md#connector--data-service-) will implement additional internal functionalities, such as monitoring or policy engines, as appropriate. It is not covered by this specification if a [Connector](./model/terminology.md#connector--data-service-) implements such or how. The same applies for the actual data that is transferred between the systems. While this document does not define the transport protocol, the structure, syntax or semantics of the data, a specification for those aspects is required and subject to the agreements of the [Participants](./model/terminology.md#participant) or the [Dataspace](./model/terminology.md#dataspace). From f1688f058d9a2b078e065c0315af069129e41ab9 Mon Sep 17 00:00:00 2001 From: Lange-Bever Date: Mon, 6 May 2024 06:57:27 +0100 Subject: [PATCH 9/9] minor linguistics --- model/model.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/model/model.md b/model/model.md index efdc640..3c8ca5a 100644 --- a/model/model.md +++ b/model/model.md @@ -4,7 +4,7 @@ The following sections outline the Dataspace Information Model, which form the foundation of this specification. Some aspects of this section describe additional concepts of Dataspaces and provide context for the Dataspace Protocol, -those are considered as non-normative. Further information on the functional requirements of a Dataspace can be found for example in +those are considered as non-normative. Further information on the functional requirements of a Dataspace can be found, for example, in the [IDSA Rulebook](https://docs.internationaldataspaces.org/idsa-rulebook). ### 2.1 Dataspace Entity Relationships @@ -13,7 +13,7 @@ the [IDSA Rulebook](https://docs.internationaldataspaces.org/idsa-rulebook). In a broader context, the Dataspace Protocol enables the interaction between participants of a Dataspace. This may require additional concepts, which are not in the scope of this specification. -The definitions below are therefore informative and not-normative. +The definitions below are therefore informative and non-normative. The relationships between the primary [Dataspace](./terminology.md#dataspace) entities are defined as follows: ![](./m.dataspace.relationships.png)