From 5b96941ba1eb45f954f796f4ceb96397a32e9557 Mon Sep 17 00:00:00 2001 From: Jim Marino Date: Mon, 3 Apr 2023 18:02:09 +0200 Subject: [PATCH 1/6] Introduce an agreement timestamp --- negotiation/contract.negotiation.protocol.md | 2 ++ .../message/contract-agreement-message.json | 1 + .../diagram/contract-agreement-message.png | Bin 16924 -> 23179 bytes .../diagram/contract-agreement-message.puml | 3 ++- .../contract-agreement-message-schema.json | 7 ++++++- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/negotiation/contract.negotiation.protocol.md b/negotiation/contract.negotiation.protocol.md index c3c5fd4b..c478d2be 100644 --- a/negotiation/contract.negotiation.protocol.md +++ b/negotiation/contract.negotiation.protocol.md @@ -126,6 +126,8 @@ A `ContractAgreementMessage` must contain a `processId`. A `ContractAgreementMessage` must contain an ODRL `Agreement`. +A `ContractAgreementMessage` must contain a `dspace:timestamp` property defined as an XSD DateTime type. + ### 4. ContractAgreementVerificationMessage diff --git a/negotiation/message/contract-agreement-message.json b/negotiation/message/contract-agreement-message.json index 20767cf1..8cd946fa 100644 --- a/negotiation/message/contract-agreement-message.json +++ b/negotiation/message/contract-agreement-message.json @@ -5,6 +5,7 @@ "dspace:agreement": { "@type": "odrl:Agreement", "@id": "e8dc8655-44c2-46ef-b701-4cffdc2faa44", + "dspace:timestamp": "2023-01-01T01:00:00Z", "odrl:permission": { ... } diff --git a/negotiation/message/diagram/contract-agreement-message.png b/negotiation/message/diagram/contract-agreement-message.png index ab4184fb36a01692112d4a8235a381db9efcea81..4b3aa9c79a096a44c296dd88341101c9c37a3319 100644 GIT binary patch literal 23179 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 QD>U74?NjI%nl>T-0hhk-3jhEB literal 16924 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 z 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 YWh(HgbTtb2e;S}9L}Y|Z1@(OYKf`8XO8@`> diff --git a/negotiation/message/diagram/contract-agreement-message.puml b/negotiation/message/diagram/contract-agreement-message.puml index 9f657edc..65ee9c00 100644 --- a/negotiation/message/diagram/contract-agreement-message.puml +++ b/negotiation/message/diagram/contract-agreement-message.puml @@ -12,6 +12,7 @@ class "dspace:ContractAgreementMessage" { dspace:processId : String dspace:agreement : odrl:Agreement dspace:callbackAddress : xsd:anyURI + dspace:timestamp : xsd:dateTime } class odrl:Agreement { @@ -22,4 +23,4 @@ class odrl:Agreement { "dspace:ContractAgreementMessage" "1" *-- "1" "odrl:Agreement" : "odrl:agreement" -@enduml \ No newline at end of file +@enduml diff --git a/negotiation/message/schema/contract-agreement-message-schema.json b/negotiation/message/schema/contract-agreement-message-schema.json index bdef63bc..4eab983b 100644 --- a/negotiation/message/schema/contract-agreement-message-schema.json +++ b/negotiation/message/schema/contract-agreement-message-schema.json @@ -29,8 +29,13 @@ "odrl:agreement": { "$ref": "https://w3id.org/dspace/schemas/v0.8/AgreementSchema#definitions/Agreement", "required": true + }, + "dspace:timestamp": { + "type": "string", + "format": "date-time", + "required": true } } } } -} \ No newline at end of file +} From 9ea4d711dd77726961afa16444b19f3456c6587e Mon Sep 17 00:00:00 2001 From: Sebastian Bader Date: Wed, 3 May 2023 17:00:08 +0200 Subject: [PATCH 2/6] add the dspace:timestamp propertyshape --- .../message/shape/contract-agreement-message-shape.ttl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/negotiation/message/shape/contract-agreement-message-shape.ttl b/negotiation/message/shape/contract-agreement-message-shape.ttl index 7c38b5a3..b32baf4b 100644 --- a/negotiation/message/shape/contract-agreement-message-shape.ttl +++ b/negotiation/message/shape/contract-agreement-message-shape.ttl @@ -39,4 +39,14 @@ shapes:ContractAgreementMessageShape sh:severity sh:Violation ; sh:message " (ContractAgreementMessageShape): An odrl:agreement property must point to exactly one odrl:Agreement."@en ; ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:timestamp ; + sh:datatype xsd:dateTime ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractAgreementMessageShape): An dspace:timestamp property must point to exactly one xsd:dateTime."@en ; + ] ; . \ No newline at end of file From 1bcb5c35780a2c6ffba86b89eac67dfd7a9e85bb Mon Sep 17 00:00:00 2001 From: Sebastian Bader Date: Wed, 3 May 2023 18:12:51 +0200 Subject: [PATCH 3/6] add typed literal pattern to dspace:timestamp attribute in the json schema --- .../contract-agreement-message-schema.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/negotiation/message/schema/contract-agreement-message-schema.json b/negotiation/message/schema/contract-agreement-message-schema.json index 4eab983b..53b85ad1 100644 --- a/negotiation/message/schema/contract-agreement-message-schema.json +++ b/negotiation/message/schema/contract-agreement-message-schema.json @@ -31,9 +31,19 @@ "required": true }, "dspace:timestamp": { - "type": "string", - "format": "date-time", - "required": true + "type": "object", + "properties": { + "@value": { + "type": "string", + "format": "date-time", + "required": true + }, + "@type": { + "type": "string", + "const": "xsd:dateTime", + "required": true + } + } } } } From b0954676c20b2661f2b3a533b03853628944a29f Mon Sep 17 00:00:00 2001 From: Sebastian Bader Date: Wed, 3 May 2023 18:15:38 +0200 Subject: [PATCH 4/6] correct the dspace:timestamp example --- negotiation/message/contract-agreement-message.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/negotiation/message/contract-agreement-message.json b/negotiation/message/contract-agreement-message.json index 8cd946fa..74884688 100644 --- a/negotiation/message/contract-agreement-message.json +++ b/negotiation/message/contract-agreement-message.json @@ -5,7 +5,10 @@ "dspace:agreement": { "@type": "odrl:Agreement", "@id": "e8dc8655-44c2-46ef-b701-4cffdc2faa44", - "dspace:timestamp": "2023-01-01T01:00:00Z", + "dspace:timestamp": { + "@value": "2023-01-01T01:00:00Z", + "@type": "xsd:dateTime" + }, "odrl:permission": { ... } From d7f7faf09d8c2eafe64795a6b7c7e6419c226bce Mon Sep 17 00:00:00 2001 From: jpampus Date: Wed, 10 May 2023 09:45:30 +0200 Subject: [PATCH 5/6] fix(schema): move timestamp to Agreement --- .../contract-agreement-message-schema.json | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/negotiation/message/schema/contract-agreement-message-schema.json b/negotiation/message/schema/contract-agreement-message-schema.json index 53b85ad1..cbb6664c 100644 --- a/negotiation/message/schema/contract-agreement-message-schema.json +++ b/negotiation/message/schema/contract-agreement-message-schema.json @@ -28,20 +28,32 @@ }, "odrl:agreement": { "$ref": "https://w3id.org/dspace/schemas/v0.8/AgreementSchema#definitions/Agreement", - "required": true - }, - "dspace:timestamp": { "type": "object", + "required": true, "properties": { - "@value": { + "@type": { "type": "string", - "format": "date-time", "required": true }, - "@type": { + "@id": { "type": "string", - "const": "xsd:dateTime", "required": true + }, + "dspace:timestamp": { + "type": "object", + "required": true, + "properties": { + "@value": { + "type": "string", + "format": "date-time", + "required": true + }, + "@type": { + "type": "string", + "const": "xsd:dateTime", + "required": true + } + } } } } From 7eed176ef24a3d0f50a0fba2901b911b7910fa7e Mon Sep 17 00:00:00 2001 From: jpampus Date: Wed, 10 May 2023 09:47:45 +0200 Subject: [PATCH 6/6] chore: update files accordingly --- negotiation/contract.negotiation.protocol.md | 2 +- .../diagram/contract-agreement-message.png | Bin 23179 -> 17672 bytes .../diagram/contract-agreement-message.puml | 4 ++-- .../contract-agreement-message-shape.ttl | 10 ---------- 4 files changed, 3 insertions(+), 13 deletions(-) diff --git a/negotiation/contract.negotiation.protocol.md b/negotiation/contract.negotiation.protocol.md index c478d2be..a81b2464 100644 --- a/negotiation/contract.negotiation.protocol.md +++ b/negotiation/contract.negotiation.protocol.md @@ -126,7 +126,7 @@ A `ContractAgreementMessage` must contain a `processId`. A `ContractAgreementMessage` must contain an ODRL `Agreement`. -A `ContractAgreementMessage` must contain a `dspace:timestamp` property defined as an XSD DateTime type. +An `Agreement` must contain a `dspace:timestamp` property defined as an XSD DateTime type. ### 4. ContractAgreementVerificationMessage diff --git a/negotiation/message/diagram/contract-agreement-message.png b/negotiation/message/diagram/contract-agreement-message.png index 4b3aa9c79a096a44c296dd88341101c9c37a3319..e1f75defdd768e0fd19979c0d514e40996f45d76 100644 GIT binary patch literal 17672 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 QD>U74?NjI%nl>T-0hhk-3jhEB diff --git a/negotiation/message/diagram/contract-agreement-message.puml b/negotiation/message/diagram/contract-agreement-message.puml index 65ee9c00..49a707f4 100644 --- a/negotiation/message/diagram/contract-agreement-message.puml +++ b/negotiation/message/diagram/contract-agreement-message.puml @@ -12,13 +12,13 @@ class "dspace:ContractAgreementMessage" { dspace:processId : String dspace:agreement : odrl:Agreement dspace:callbackAddress : xsd:anyURI - dspace:timestamp : xsd:dateTime } class odrl:Agreement { - @type : "odrl:Agreement", + @type : "odrl:Agreement" @id: String odrl:target : xsd:anyURI + dspace:timestamp : xsd:dateTime } "dspace:ContractAgreementMessage" "1" *-- "1" "odrl:Agreement" : "odrl:agreement" diff --git a/negotiation/message/shape/contract-agreement-message-shape.ttl b/negotiation/message/shape/contract-agreement-message-shape.ttl index b32baf4b..7c38b5a3 100644 --- a/negotiation/message/shape/contract-agreement-message-shape.ttl +++ b/negotiation/message/shape/contract-agreement-message-shape.ttl @@ -39,14 +39,4 @@ shapes:ContractAgreementMessageShape sh:severity sh:Violation ; sh:message " (ContractAgreementMessageShape): An odrl:agreement property must point to exactly one odrl:Agreement."@en ; ] ; - - sh:property [ - a sh:PropertyShape ; - sh:path dspace:timestamp ; - sh:datatype xsd:dateTime ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:severity sh:Violation ; - sh:message " (ContractAgreementMessageShape): An dspace:timestamp property must point to exactly one xsd:dateTime."@en ; - ] ; . \ No newline at end of file