From 63e5a401192336177f1d547ebd1f8e8f6f129269 Mon Sep 17 00:00:00 2001 From: sebbader-sap <107036549+sebbader-sap@users.noreply.github.com> Date: Tue, 27 Feb 2024 14:22:19 +0100 Subject: [PATCH] Create Folder for the 2024-1 Release (#247) * fix reference to class name for "Offer" * add the releases/2024-1 folder * remove the text files from releases/2024-1/common --- .../message/example/catalog-error.json | 11 + .../example/catalog-request-message.json | 7 + .../catalog/message/example/catalog.json | 73 ++++ .../example/dataset-request-message.json | 5 + .../catalog/message/example/dataset.json | 45 +++ .../message/schema/catalog-error-schema.json | 33 ++ .../catalog-request-message-schema.json | 32 ++ .../message/schema/catalog-schema.json | 57 +++ .../dataset-request-message-schema.json | 30 ++ .../message/schema/dataset-schema.json | 167 ++++++++ .../message/shape/catalog-error-shape.ttl | 40 ++ .../shape/catalog-request-message-shape.ttl | 37 ++ .../shape/dataset-request-message-shape.ttl | 41 ++ .../catalog/message/shape/dataset-shape.ttl | 78 ++++ .../catalog/message/shape/dcat-shapes.ttl | 267 ++++++++++++ releases/2024-1/common/schema/context.json | 62 +++ .../common/schema/definitions.schema.json | 6 + .../2024-1/common/schema/version-schema.json | 39 ++ releases/2024-1/common/shape/odrl-shapes.ttl | 79 ++++ .../2024-1/common/shape/version-shape.ttl | 0 .../example/contract-agreement-message.json | 23 ++ ...ntract-agreement-verification-message.json | 6 + .../example/contract-negotiation-error.json | 23 ++ .../contract-negotiation-event-message.json | 7 + ...tract-negotiation-termination-message.json | 13 + .../message/example/contract-negotiation.json | 7 + .../example/contract-offer-message.json | 22 + .../contract-offer-message_initial.json | 11 + .../example/contract-request-message.json | 20 + .../contract-request-message_initial.json | 11 + ...tract.agreement.message.http.transfer.json | 43 ++ .../contract-agreement-message-schema.json | 39 ++ ...agreement-verification-message-schema.json | 33 ++ .../contract-negotiation-error-schema.json | 53 +++ ...ract-negotiation-event-message-schema.json | 40 ++ .../schema/contract-negotiation-schema.json | 45 +++ ...egotiation-termination-message-schema.json | 41 ++ .../schema/contract-offer-message-schema.json | 39 ++ .../contract-request-message-schema.json | 39 ++ .../message/schema/contract-schema.json | 382 ++++++++++++++++++ .../contract-agreement-message-shape.ttl | 69 ++++ ...t-agreement-verification-message-shape.ttl | 51 +++ .../contract-negotiation-error-shape.ttl | 73 ++++ ...ntract-negotiation-event-message-shape.ttl | 60 +++ .../contract-negotiation-message-shape.ttl | 51 +++ .../shape/contract-negotiation-shape.ttl | 69 ++++ ...-negotiation-termination-message-shape.ttl | 63 +++ .../shape/contract-offer-message-shape.ttl | 69 ++++ .../shape/contract-request-message-shape.ttl | 69 ++++ .../example/transfer-completion-message.json | 6 + .../message/example/transfer-error.json | 11 + .../message/example/transfer-process.json | 7 + .../example/transfer-request-message.json | 25 ++ .../example/transfer-start-message.json | 23 ++ .../example/transfer-suspension-message.json | 11 + .../example/transfer-termination-message.json | 11 + .../transfer-completion-message-schema.json | 33 ++ .../message/schema/transfer-error-schema.json | 40 ++ .../schema/transfer-process-schema.json | 43 ++ .../transfer-request-message-schema.json | 74 ++++ .../schema/transfer-start-message-schema.json | 68 ++++ .../transfer-suspension-message-schema.json | 41 ++ .../transfer-termination-message-schema.json | 43 ++ .../transfer-completion-message-shape.ttl | 53 +++ .../shape/transfer-data-address-shape.ttl | 85 ++++ .../message/shape/transfer-error-shape.ttl | 66 +++ .../message/shape/transfer-process-shape.ttl | 69 ++++ .../shape/transfer-request-message-shape.ttl | 82 ++++ .../shape/transfer-start-message-shape.ttl | 62 +++ .../transfer-suspension-message-shape.ttl | 60 +++ .../transfer-termination-message-shape.ttl | 67 +++ 71 files changed, 3560 insertions(+) create mode 100644 releases/2024-1/catalog/message/example/catalog-error.json create mode 100644 releases/2024-1/catalog/message/example/catalog-request-message.json create mode 100644 releases/2024-1/catalog/message/example/catalog.json create mode 100644 releases/2024-1/catalog/message/example/dataset-request-message.json create mode 100644 releases/2024-1/catalog/message/example/dataset.json create mode 100644 releases/2024-1/catalog/message/schema/catalog-error-schema.json create mode 100644 releases/2024-1/catalog/message/schema/catalog-request-message-schema.json create mode 100644 releases/2024-1/catalog/message/schema/catalog-schema.json create mode 100644 releases/2024-1/catalog/message/schema/dataset-request-message-schema.json create mode 100644 releases/2024-1/catalog/message/schema/dataset-schema.json create mode 100644 releases/2024-1/catalog/message/shape/catalog-error-shape.ttl create mode 100644 releases/2024-1/catalog/message/shape/catalog-request-message-shape.ttl create mode 100644 releases/2024-1/catalog/message/shape/dataset-request-message-shape.ttl create mode 100644 releases/2024-1/catalog/message/shape/dataset-shape.ttl create mode 100644 releases/2024-1/catalog/message/shape/dcat-shapes.ttl create mode 100644 releases/2024-1/common/schema/context.json create mode 100644 releases/2024-1/common/schema/definitions.schema.json create mode 100644 releases/2024-1/common/schema/version-schema.json create mode 100644 releases/2024-1/common/shape/odrl-shapes.ttl create mode 100644 releases/2024-1/common/shape/version-shape.ttl create mode 100644 releases/2024-1/negotiation/message/example/contract-agreement-message.json create mode 100644 releases/2024-1/negotiation/message/example/contract-agreement-verification-message.json create mode 100644 releases/2024-1/negotiation/message/example/contract-negotiation-error.json create mode 100644 releases/2024-1/negotiation/message/example/contract-negotiation-event-message.json create mode 100644 releases/2024-1/negotiation/message/example/contract-negotiation-termination-message.json create mode 100644 releases/2024-1/negotiation/message/example/contract-negotiation.json create mode 100644 releases/2024-1/negotiation/message/example/contract-offer-message.json create mode 100644 releases/2024-1/negotiation/message/example/contract-offer-message_initial.json create mode 100644 releases/2024-1/negotiation/message/example/contract-request-message.json create mode 100644 releases/2024-1/negotiation/message/example/contract-request-message_initial.json create mode 100644 releases/2024-1/negotiation/message/example/contract.agreement.message.http.transfer.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-agreement-message-schema.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-agreement-verification-message-schema.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-negotiation-error-schema.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-negotiation-event-message-schema.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-negotiation-schema.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-negotiation-termination-message-schema.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-offer-message-schema.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-request-message-schema.json create mode 100644 releases/2024-1/negotiation/message/schema/contract-schema.json create mode 100644 releases/2024-1/negotiation/message/shape/contract-agreement-message-shape.ttl create mode 100644 releases/2024-1/negotiation/message/shape/contract-agreement-verification-message-shape.ttl create mode 100644 releases/2024-1/negotiation/message/shape/contract-negotiation-error-shape.ttl create mode 100644 releases/2024-1/negotiation/message/shape/contract-negotiation-event-message-shape.ttl create mode 100644 releases/2024-1/negotiation/message/shape/contract-negotiation-message-shape.ttl create mode 100644 releases/2024-1/negotiation/message/shape/contract-negotiation-shape.ttl create mode 100644 releases/2024-1/negotiation/message/shape/contract-negotiation-termination-message-shape.ttl create mode 100644 releases/2024-1/negotiation/message/shape/contract-offer-message-shape.ttl create mode 100644 releases/2024-1/negotiation/message/shape/contract-request-message-shape.ttl create mode 100644 releases/2024-1/transfer/message/example/transfer-completion-message.json create mode 100644 releases/2024-1/transfer/message/example/transfer-error.json create mode 100644 releases/2024-1/transfer/message/example/transfer-process.json create mode 100644 releases/2024-1/transfer/message/example/transfer-request-message.json create mode 100644 releases/2024-1/transfer/message/example/transfer-start-message.json create mode 100644 releases/2024-1/transfer/message/example/transfer-suspension-message.json create mode 100644 releases/2024-1/transfer/message/example/transfer-termination-message.json create mode 100644 releases/2024-1/transfer/message/schema/transfer-completion-message-schema.json create mode 100644 releases/2024-1/transfer/message/schema/transfer-error-schema.json create mode 100644 releases/2024-1/transfer/message/schema/transfer-process-schema.json create mode 100644 releases/2024-1/transfer/message/schema/transfer-request-message-schema.json create mode 100644 releases/2024-1/transfer/message/schema/transfer-start-message-schema.json create mode 100644 releases/2024-1/transfer/message/schema/transfer-suspension-message-schema.json create mode 100644 releases/2024-1/transfer/message/schema/transfer-termination-message-schema.json create mode 100644 releases/2024-1/transfer/message/shape/transfer-completion-message-shape.ttl create mode 100644 releases/2024-1/transfer/message/shape/transfer-data-address-shape.ttl create mode 100644 releases/2024-1/transfer/message/shape/transfer-error-shape.ttl create mode 100644 releases/2024-1/transfer/message/shape/transfer-process-shape.ttl create mode 100644 releases/2024-1/transfer/message/shape/transfer-request-message-shape.ttl create mode 100644 releases/2024-1/transfer/message/shape/transfer-start-message-shape.ttl create mode 100644 releases/2024-1/transfer/message/shape/transfer-suspension-message-shape.ttl create mode 100644 releases/2024-1/transfer/message/shape/transfer-termination-message-shape.ttl diff --git a/releases/2024-1/catalog/message/example/catalog-error.json b/releases/2024-1/catalog/message/example/catalog-error.json new file mode 100644 index 00000000..60ee338b --- /dev/null +++ b/releases/2024-1/catalog/message/example/catalog-error.json @@ -0,0 +1,11 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:CatalogError", + "dspace:code": "123:A", + "dspace:reason": [ + { + "@value": "Catalog not provisioned for this requester.", + "@language": "en" + } + ] +} diff --git a/releases/2024-1/catalog/message/example/catalog-request-message.json b/releases/2024-1/catalog/message/example/catalog-request-message.json new file mode 100644 index 00000000..69ce5e1e --- /dev/null +++ b/releases/2024-1/catalog/message/example/catalog-request-message.json @@ -0,0 +1,7 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:CatalogRequestMessage", + "dspace:filter": [ + "some-filter" + ] +} diff --git a/releases/2024-1/catalog/message/example/catalog.json b/releases/2024-1/catalog/message/example/catalog.json new file mode 100644 index 00000000..5d77c890 --- /dev/null +++ b/releases/2024-1/catalog/message/example/catalog.json @@ -0,0 +1,73 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@id": "urn:uuid:3afeadd8-ed2d-569e-d634-8394a8836d57", + "@type": "dcat:Catalog", + "dct:title": "Data Provider A Catalog", + "dct:description": [ + { + "@value": "A catalog of data items", + "@language": "en" + } + ], + "dspace:participantId": "urn:example:DataProviderA", + "dcat:keyword": [ + "traffic", + "government" + ], + "dcat:service": [ + { + "@id": "urn:uuid:4aa2dcc8-4d2d-569e-d634-8394a8834d77", + "@type": "dcat:DataService", + "dcat:endpointDescription": "dspace:connector", + "dcat:endpointURL": "https://provider-a.com/connector" + } + ], + "dcat:dataset": [ + { + "@id": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", + "@type": "dcat:Dataset", + "dct:title": "Traffic Data", + "dct:description": [ + { + "@value": "Traffic data sample extract", + "@language": "en" + } + ], + "dcat:keyword": [ + "traffic" + ], + "odrl:hasPolicy": [ + { + "@type": "odrl:Offer", + "dspace:providerId": "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:duty": [] + } + ], + "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" + } + ] + } + } + ] +} diff --git a/releases/2024-1/catalog/message/example/dataset-request-message.json b/releases/2024-1/catalog/message/example/dataset-request-message.json new file mode 100644 index 00000000..deb03ea4 --- /dev/null +++ b/releases/2024-1/catalog/message/example/dataset-request-message.json @@ -0,0 +1,5 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:DatasetRequestMessage", + "dspace:dataset": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" +} diff --git a/releases/2024-1/catalog/message/example/dataset.json b/releases/2024-1/catalog/message/example/dataset.json new file mode 100644 index 00000000..5a05b278 --- /dev/null +++ b/releases/2024-1/catalog/message/example/dataset.json @@ -0,0 +1,45 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@id": "urn:uuid:3afeadd8-ed2d-569e-d634-8394a8836d57", + "@type": "dcat:Dataset", + "dct:title": "Traffic Data", + "dct:description": [ + { + "@value": "Traffic data sample extract", + "@language": "en" + } + ], + "dcat:keyword": [ + "traffic" + ], + "odrl:hasPolicy": { + "@type": "odrl:Offer", + "@id": "urn:uuid:2828282:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:permission": [ + { + "odrl:action": "odrl:use", + "odrl:constraint": [ + { + "odrl:leftOperand": "odrl:spatial", + "odrl:rightOperand": "_:EU", + "odrl:operator": "odrl:eq" + } + ] + } + ] + }, + "dcat:distribution": [ + { + "@type": "dcat:Distribution", + "dct:format": { + "@id": "dspace:s3+push" + }, + "dcat:accessService": [ + { + "@id": "urn:uuid:4aa2dcc8-4d2d-569e-d634-8394a8834d77", + "dcat:endpointURL": "https://provider-a.com/connector" + } + ] + } + ] +} \ No newline at end of file diff --git a/releases/2024-1/catalog/message/schema/catalog-error-schema.json b/releases/2024-1/catalog/message/schema/catalog-error-schema.json new file mode 100644 index 00000000..28618367 --- /dev/null +++ b/releases/2024-1/catalog/message/schema/catalog-error-schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "CatalogErrorSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CatalogError" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/CatalogErrorSchema", + "definitions": { + "CatalogError": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:CatalogError" + }, + "dspace:code": { + "type": "string" + }, + "dspace:reason": { + "type": "array" + } + }, + "required": [ "@context", "@type" ] + } + } +} diff --git a/releases/2024-1/catalog/message/schema/catalog-request-message-schema.json b/releases/2024-1/catalog/message/schema/catalog-request-message-schema.json new file mode 100644 index 00000000..8139609c --- /dev/null +++ b/releases/2024-1/catalog/message/schema/catalog-request-message-schema.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "CatalogRequestMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CatalogRequestMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/CatalogRequestMessageSchema", + "definitions": { + "CatalogRequestMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:CatalogRequestMessage" + }, + "dspace:filter": { + "type": "array", + "items": { + } + } + }, + "required": [ "@context", "@type"] + } + } +} diff --git a/releases/2024-1/catalog/message/schema/catalog-schema.json b/releases/2024-1/catalog/message/schema/catalog-schema.json new file mode 100644 index 00000000..f726f6bd --- /dev/null +++ b/releases/2024-1/catalog/message/schema/catalog-schema.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "CatalogSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Catalog" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/CatalogSchema", + "definitions": { + "Catalog": { + "type": "object", + "allOf": [ + { + "$ref": "https://w3id.org/dspace/schemas/2024/1/dataset-schema.json#/definitions/Dataset" + }, + { + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dcat:Catalog" + }, + "dcat:dataset": { + "type": "array", + "items": { + "$ref": "https://w3id.org/dspace/schemas/2024/1/dataset-schema.json#/definitions/Dataset" + }, + "minItems": 1 + }, + "dcat:service": { + "type": "array", + "items": { + "$ref": "https://w3id.org/dspace/schemas/2024/1/dataset-schema.json#/definitions/DataService" + }, + "minItems": 1 + }, + "dspace:participantId": { + "type": "string" + }, + "foaf:homepage": { + "type": "string" + } + } + } + ], + "required": [ "@context", "@type" ], + "not": { + "required": [ "odrl:hasPolicy" ] + } + } + } +} diff --git a/releases/2024-1/catalog/message/schema/dataset-request-message-schema.json b/releases/2024-1/catalog/message/schema/dataset-request-message-schema.json new file mode 100644 index 00000000..2c0026ca --- /dev/null +++ b/releases/2024-1/catalog/message/schema/dataset-request-message-schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "DatasetRequestMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/DatasetRequestMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/DatasetRequestMessageSchema", + "definitions": { + "DatasetRequestMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:DatasetRequestMessage" + }, + "dspace:dataset": { + "type": "string" + } + }, + "required": [ "@context", "@type", "dspace:dataset" ] + } + } +} diff --git a/releases/2024-1/catalog/message/schema/dataset-schema.json b/releases/2024-1/catalog/message/schema/dataset-schema.json new file mode 100644 index 00000000..1b29d0e5 --- /dev/null +++ b/releases/2024-1/catalog/message/schema/dataset-schema.json @@ -0,0 +1,167 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "DatasetSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Dataset" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/DatasetSchema", + "definitions": { + "Dataset": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + }, + { + "properties": { + "odrl:hasPolicy": { + "type": "array", + "items": { + "$ref": "https://w3id.org/dspace/schemas/2024/1/contract-schema.json#/definitions/Offer" + }, + "minItems": 1 + }, + "dcat:distribution": { + "type": "array", + "items": { + "$ref": "#/definitions/Distribution" + }, + "minItems": 1 + } + } + } + ], + "required": [ + "odrl:hasPolicy" + ] + }, + "Resource": { + "type": "object", + "properties": { + "dcat:keyword": { + "type": "array", + "items": { + "type": "string" + } + }, + "dcat:theme": { + "type": "array", + "items": { + "$ref": "#/definitions/Reference" + }, + "minItems": 1 + }, + "dct:conformsTo": { + "type": "string" + }, + "dct:creator": { + "type": "string" + }, + "dct:description": { + "type": "array", + "items": { + "$ref": "#/definitions/Multilanguage" + } + }, + "dct:identifier": { + "type": "string" + }, + "dct:issued": { + "type": "string" + }, + "dct:modified": { + "type": "string" + }, + "dct:title": { + "type": "string" + } + } + }, + "Distribution": { + "type": "object", + "properties": { + "dct:title": { + "type": "string" + }, + "dct:description": { + "type": "array", + "items": { + "$ref": "#/definitions/Multilanguage" + } + }, + "dct:issued": { + "type": "string" + }, + "dct:modified": { + "type": "string" + }, + "odrl:hasPolicy": { + "type": "array", + "items": { + "$ref": "https://w3id.org/dspace/schemas/2024/1/contract-schema.json#/definitions/Offer" + }, + "minItems": 1 + }, + "dcat:accessService": { + "type": "array", + "items": { + "$ref": "#/definitions/DataService" + }, + "minItems": 1 + } + }, + "required": [ + "dcat:accessService" + ] + }, + "DataService": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + }, + { + "properties": { + "dcat:endpointDescription": { + "type": "string" + }, + "dcat:endpointURL": { + "type": "string" + }, + "dcat:servesDataset": { + "type": "array", + "items": { + "$ref": "#/definitions/Dataset" + }, + "minItems": 1 + } + } + } + ] + }, + "Reference": { + "type": "object", + "properties": { + "@id": { + "type": "string" + } + }, + "required": [ "@id" ] + }, + "Multilanguage": { + "type": "object", + "properties": { + "@value": { + "type": "string" + }, + "@language": { + "type": "string" + } + }, + "required": [ "@value", "@language" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/catalog/message/shape/catalog-error-shape.ttl b/releases/2024-1/catalog/message/shape/catalog-error-shape.ttl new file mode 100644 index 00000000..9a28e39e --- /dev/null +++ b/releases/2024-1/catalog/message/shape/catalog-error-shape.ttl @@ -0,0 +1,40 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:CatalogErrorShape + a sh:NodeShape ; + sh:targetClass dspace:CatalogError ; + sh:property [ + sh:path dspace:code ; + sh:datatype xsd:string ; + ] ; + sh:property [ + sh:path dspace:reason ; + sh:datatype rdf:langString ; + ] ; + +. diff --git a/releases/2024-1/catalog/message/shape/catalog-request-message-shape.ttl b/releases/2024-1/catalog/message/shape/catalog-request-message-shape.ttl new file mode 100644 index 00000000..30030f28 --- /dev/null +++ b/releases/2024-1/catalog/message/shape/catalog-request-message-shape.ttl @@ -0,0 +1,37 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:CatalogRequestMessageShape + a sh:NodeShape ; + sh:targetClass dspace:CatalogRequestMessage ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:filter ; + ] ; + +. \ 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 new file mode 100644 index 00000000..e981b96d --- /dev/null +++ b/releases/2024-1/catalog/message/shape/dataset-request-message-shape.ttl @@ -0,0 +1,41 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:DatasetRequestMessageShape + a sh:NodeShape ; + sh:targetClass dspace:DatasetRequestMessage ; + + 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 ; + ] ; +. diff --git a/releases/2024-1/catalog/message/shape/dataset-shape.ttl b/releases/2024-1/catalog/message/shape/dataset-shape.ttl new file mode 100644 index 00000000..4132ad8c --- /dev/null +++ b/releases/2024-1/catalog/message/shape/dataset-shape.ttl @@ -0,0 +1,78 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . +@prefix prov: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:DatasetShape + a sh:NodeShape ; + sh:targetClass dcat:Dataset ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:distribution ; + sh:class dcat:Distribution ; + sh:minCount 0; + sh:severity sh:Violation ; + sh:message " (DatasetShape): A dcat:distribution property must point to a dcat:Distribution."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:keyword ; + sh:datatype xsd:string ; + sh:minCount 0; + sh:severity sh:Violation ; + sh:message " (DatasetShape): A dcat:keyword property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:description ; + sh:datatype rdf:langString ; + sh:minCount 0; + sh:severity sh:Violation ; + sh:message " (DatasetShape): A dct:description property must point to a rdf:langString field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:title ; + sh:datatype xsd:string ; + sh:minCount 0; + sh:severity sh:Violation ; + sh:message " (DatasetShape): A dct:title property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path odrl:hasPolicy ; + sh:class odrl:Policy ; + 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 new file mode 100644 index 00000000..000e892b --- /dev/null +++ b/releases/2024-1/catalog/message/shape/dcat-shapes.ttl @@ -0,0 +1,267 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . +@prefix foaf: . +@prefix prov: . +@prefix skos: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + + +dspace_shapes:ResourceShape + a sh:NodeShape ; + sh:targetClass dcat:Resource ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:keyword ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dcat:keyword property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:theme ; + sh:class skos:Concept ; + sh:minCount 0 ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dcat:theme property must point to a skos:Concept."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:conformsTo ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dct:accessconformsToRights property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:creator ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dct:creator property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:description ; + sh:datatype rdf:langString ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dct:description property must point to a rdf:langString field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:identifier ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dct:identifier property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:issued ; + sh:datatype xsd:dateTime ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dct:issued property must point to a xsd:dateTime field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:modified ; + sh:datatype xsd:dateTime ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dct:modified property must point to a xsd:dateTime field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:title ; + sh:datatype rdf:langString ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): A dct:title property must point to a rdf:langString field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path odrl:hasPolicy ; + sh:class odrl:Offer ; + sh:severity sh:Violation ; + sh:message " (ResourceShape): An odrl:hasPolicy property must point to an odrl:Offer."@en ; + ] ; + +. + + +dspace_shapes:DatasetShape + a sh:NodeShape ; + sh:targetClass dcat:Dataset ; + rdfs:subClassOf dspace_shapes:ResourceShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:distribution ; + sh:class dcat:Distribution ; + sh:minCount 0; + sh:severity sh:Violation ; + sh:message " (DatasetShape): A dcat:distribution property must point to a dcat:Distribution."@en ; + ] ; + +. + +dspace_shapes:CatalogShape + a sh:NodeShape ; + sh:targetClass dcat:Catalog ; + rdfs:subClassOf dspace_shapes:DatasetShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:dataset ; + sh:class dcat:Dataset ; + sh:severity sh:Violation ; + sh:message " (CatalogShape): A dcat:dataset property must point to a dcat:Dataset."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:service ; + sh:class dcat:DataService ; + sh:severity sh:Violation ; + sh:message " (CatalogShape): A dcat:service property must point to a dcat:DataService."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path foaf:homepage ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (CatalogShape): A foaf:homepage property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:participantId ; + sh:nodeKind sh:IRI ; + sh:severity sh:Violation ; + sh:message " (CatalogShape): A dspace:participantId property must point to an IRI."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path odrl:hasPolicy ; + sh:maxCount 0 ; + sh:severity sh:Violation ; + sh:message " (CatalogShape): A dspace:Catalog must not have any odrl:hasPolicy property."@en ; + ] ; + +. + + +dspace_shapes:DistributionShape + a sh:NodeShape ; + sh:targetClass dcat:Distribution ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:description ; + sh:datatype rdf:langString ; + sh:severity sh:Violation ; + sh:message " (DistributionShape): A dct:description property must point to a rdf:langString field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:issued ; + sh:datatype xsd:dateTime ; + sh:severity sh:Violation ; + sh:message " (DistributionShape): A dct:issued property must point to a xsd:dateTime field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:modified ; + sh:datatype xsd:dateTime ; + sh:severity sh:Violation ; + sh:message " (DistributionShape): A dct:modified property must point to a xsd:dateTime field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dct:title ; + sh:datatype rdf:langString ; + sh:severity sh:Violation ; + sh:message " (DistributionShape): A dct:title property must point to a rdf:langString field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:accessService ; + sh:class dcat:DataService ; + sh:severity sh:Violation ; + sh:message " (DistributionShape): A dcat:accessService property must point to a dcat:DataService."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path odrl:hasPolicy ; + sh:class odrl:Offer ; + sh:severity sh:Violation ; + sh:message " (DistributionShape): An odrl:hasPolicy property must point to an odrl:Offer."@en ; + ] ; +. + +dspace_shapes:DataServiceShape + a sh:NodeShape ; + sh:targetClass dcat:DataService ; + rdfs:subClassOf dspace_shapes:ResourceShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:endpointDescription ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (DataServiceShape): A dcat:endpointDescription property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:endpointURL ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (DataServiceShape): A dcat:endpointURL property must point to a xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dcat:servesDataset ; + sh:class dcat:Dataset ; + sh:minCount 0; + sh:severity sh:Violation ; + 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 new file mode 100644 index 00000000..f475b235 --- /dev/null +++ b/releases/2024-1/common/schema/context.json @@ -0,0 +1,62 @@ +{ + "@context": { + "odrl": "http://www.w3.org/ns/odrl/2/", + "xsd": "http://www.w3.org/2001/XMLSchema#", + "cred": "https://www.w3.org/2018/credentials#", + "sec": "https://w3id.org/security#", + "foaf": "http://xmlns.com/foaf/0.1/", + "cc": "http://creativecommons.org/ns#", + "dct": "http://purl.org/dc/terms/", + "dcat": "http://www.w3.org/ns/dcat#", + "dspace": "https://w3id.org/dspace/2024/1/", + + "dct:title": { "@language": "en" }, + "dct:creator": { "@type": "@id" }, + "dct:description": { "@container": "@set" }, + "dct:issued": { "@type": "xsd:dateTime" }, + "dct:modified": { "@type": "xsd:dateTime" }, + + "dcat:byteSize": { "@type": "xsd:decimal" }, + "dcat:distribution": { "@container": "@set" }, + "dcat:theme": { "@type": "@id" }, + "dcat:conformsTo": { "@type": "@id" }, + "dcat:dataset": { "@container": "@set" }, + "dcat:endpointURL": { "@type": "xsd:anyURI" }, + "dcat:endpointDescription": { "@type": "xsd:anyURI" }, + "dcat:keyword": { "@container": "@set" }, + "dcat:servesDataset": {"@container": "@set" }, + "dcat:service": { "@container": "@set" }, + "dcat:accessService": { "@container": "@set" }, + + "dspace:agreementId": { "@type": "@id" }, + "dspace:dataset": { "@type": "@id" }, + "dspace:transportType": { "@type": "@id" }, + "dspace:state": { "@type": "@id" }, + "dspace:providerId": { "@type": "@id" }, + "dspace:consumerId": { "@type": "@id" }, + "dspace:participantId": { "@type": "@id" }, + "dspace:reason": { "@container": "@set" }, + "dspace:catalog": { "@container": "@set" }, + "dspace:filter": { "@container": "@set" }, + "dspace:timestamp": { "@type": "xsd:dateTime" }, + "dspace:callbackAddress": { "@type": "xsd:anyURI" }, + "dspace:endpointProperties": { "@container": "@set" }, + + "foaf:homepage": { "@type": "xsd:anyURI" }, + + "odrl:hasPolicy": { "@container": "@set" }, + "odrl:permission": { "@container": "@set" }, + "odrl:prohibition": { "@container": "@set" }, + "odrl:obligation": { "@container": "@set" }, + "odrl:duty": { "@container": "@set" }, + "odrl:constraint": { "@container": "@set" }, + "odrl:action": { "@type": "@id" }, + "odrl:target": { "@type": "@id" }, + "odrl:leftOperand": { "@type": "@id" }, + "odrl:operator": { "@type": "@id" }, + "odrl:rightOperandReference": { "@type": "@id" }, + "odrl:profile": { "@container": "@set" } + "odrl:assigner": { "@type": "@id" }, + "odrl:assignee": { "@type": "@id" } + } +} diff --git a/releases/2024-1/common/schema/definitions.schema.json b/releases/2024-1/common/schema/definitions.schema.json new file mode 100644 index 00000000..c914f744 --- /dev/null +++ b/releases/2024-1/common/schema/definitions.schema.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "definitions": { + + } +} diff --git a/releases/2024-1/common/schema/version-schema.json b/releases/2024-1/common/schema/version-schema.json new file mode 100644 index 00000000..07149275 --- /dev/null +++ b/releases/2024-1/common/schema/version-schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "VersionSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Version" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/VersionSchema", + "definitions": { + "Version": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "protocolVersions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "path": { + "type": "string" + } + }, + "required": ["version", "path"] + }, + "minItems": 1 + } + }, + "required": ["@context", "protocolVersions"] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/common/shape/odrl-shapes.ttl b/releases/2024-1/common/shape/odrl-shapes.ttl new file mode 100644 index 00000000..4cc342e3 --- /dev/null +++ b/releases/2024-1/common/shape/odrl-shapes.ttl @@ -0,0 +1,79 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:OfferShape + a sh:NodeShape ; + sh:targetClass odrl:Offer ; + + sh:property [ + a sh:PropertyShape ; + sh:path odrl:target ; + sh:datatype xsd:anyURI ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (OfferShape): An odrl:target property must point to exactly one xsd:anyURI."@en ; + ] ; +. + + +dspace_shapes:AgreementShape + a sh:NodeShape ; + sh:targetClass odrl:Agreement ; + + sh:property [ + a sh:PropertyShape ; + sh:path odrl:target ; + ] ; + 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 " (AgreementShape): An dspace:timestamp property must point to exactly one xsd:dateTime value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path odrl:assigner ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (AgreementShape): An odrl:assigner property must point to exactly one Provider Node."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path odrl:assignee ; + sh:nodeKind sh:IRI ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (AgreementShape): An odrl:assignee property must point to exactly one Consumer Node."@en ; + ] ; +. diff --git a/releases/2024-1/common/shape/version-shape.ttl b/releases/2024-1/common/shape/version-shape.ttl new file mode 100644 index 00000000..e69de29b diff --git a/releases/2024-1/negotiation/message/example/contract-agreement-message.json b/releases/2024-1/negotiation/message/example/contract-agreement-message.json new file mode 100644 index 00000000..c1e3d780 --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-agreement-message.json @@ -0,0 +1,23 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractAgreementMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:agreement": { + "@id": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", + "@type": "odrl:Agreement", + "odrl:target": "urn:uuid:3dd1add4-4d2d-569e-d634-8394a8836d23", + "dspace:timestamp": "2023-01-01T01:00:00Z", + "odrl:assigner": "urn:tsdshhs636378", + "odrl:assignee": "urn:jashd766", + "odrl:permission": [{ + "odrl:action": "odrl:use" , + "odrl:constraint": [{ + "odrl:leftOperand": "odrl:dateTime", + "odrl:operand": "odrl:lteq", + "odrl:rightOperand": { "@value": "2023-12-31T06:00Z", "@type": "xsd:dateTime" } + }] + }] + }, + "dspace:callbackAddress": "https://......" +} diff --git a/releases/2024-1/negotiation/message/example/contract-agreement-verification-message.json b/releases/2024-1/negotiation/message/example/contract-agreement-verification-message.json new file mode 100644 index 00000000..419388fe --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-agreement-verification-message.json @@ -0,0 +1,6 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractAgreementVerificationMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833" +} diff --git a/releases/2024-1/negotiation/message/example/contract-negotiation-error.json b/releases/2024-1/negotiation/message/example/contract-negotiation-error.json new file mode 100644 index 00000000..6ea7f333 --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-negotiation-error.json @@ -0,0 +1,23 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractNegotiationError", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:code": "...", + "dspace:reason": [ + { + "@value": "Catalog not provisioned for this requester.", + "@language": "en" + } + ], + "dct:description": [ + { + "@language": "en", + "@value": "The parsing of the input parameters failed." + }, + { + "@language": "de", + "@value": "Das Lesen der Eingabeparameter schlug fehl." + } + ] +} diff --git a/releases/2024-1/negotiation/message/example/contract-negotiation-event-message.json b/releases/2024-1/negotiation/message/example/contract-negotiation-event-message.json new file mode 100644 index 00000000..7f1fde84 --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-negotiation-event-message.json @@ -0,0 +1,7 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractNegotiationEventMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:eventType": "dspace:ACCEPTED" +} diff --git a/releases/2024-1/negotiation/message/example/contract-negotiation-termination-message.json b/releases/2024-1/negotiation/message/example/contract-negotiation-termination-message.json new file mode 100644 index 00000000..95cbcd97 --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-negotiation-termination-message.json @@ -0,0 +1,13 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractNegotiationTerminationMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:code": "...", + "dspace:reason": [ + { + "@value": "License model does not fit.", + "@language": "en" + } + ] +} diff --git a/releases/2024-1/negotiation/message/example/contract-negotiation.json b/releases/2024-1/negotiation/message/example/contract-negotiation.json new file mode 100644 index 00000000..becf0c5c --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-negotiation.json @@ -0,0 +1,7 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractNegotiation", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:state": "dspace:REQUESTED" + } diff --git a/releases/2024-1/negotiation/message/example/contract-offer-message.json b/releases/2024-1/negotiation/message/example/contract-offer-message.json new file mode 100644 index 00000000..a9a29200 --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-offer-message.json @@ -0,0 +1,22 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractOfferMessage", + "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:6bcea82e-c509-443d-ba8c-8eef25984c07", + "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:assigner": "urn:tsdshhs636378", + "odrl:assignee": "urn:jashd766", + "odrl:permission": [{ + "odrl:action": "odrl:use" , + "odrl:constraint": [{ + "odrl:leftOperand": "odrl:dateTime", + "odrl:operand": "odrl:lteq", + "odrl:rightOperand": { "@value": "2023-12-31T06:00Z", "@type": "xsd:dateTime" } + }] + }] + }, + "dspace:callbackAddress": "https://......" +} 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 new file mode 100644 index 00000000..a7e2eba6 --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-offer-message_initial.json @@ -0,0 +1,11 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractOfferMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:offer": { + "@type": "odrl:Offer", + "@id": "urn:uuid:d526561f-528e-4d5a-ae12-9a9dd9b7a518", + "target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" + }, + "dspace:callbackAddress": "https://......" +} diff --git a/releases/2024-1/negotiation/message/example/contract-request-message.json b/releases/2024-1/negotiation/message/example/contract-request-message.json new file mode 100644 index 00000000..840e02af --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-request-message.json @@ -0,0 +1,20 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractRequestMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:offer": { + "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:assigner": "urn:tsdshhs636378", + "odrl:assignee": "urn:jashd766", + "odrl:permission": [{ + "odrl:action": "odrl:use" , + "odrl:constraint": [{ + "odrl:leftOperand": "odrl:dateTime", + "odrl:operand": "odrl:lteq", + "odrl:rightOperand": { "@value": "2023-12-31T06:00Z", "@type": "xsd:dateTime" } + }] + }] + }, + "dspace:callbackAddress": "https://......" +} 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 new file mode 100644 index 00000000..38c9f931 --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract-request-message_initial.json @@ -0,0 +1,11 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractRequestMessage", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:offer": { + "@type": "odrl:Offer", + "@id": "urn:uuid:2828282:3dd1add8-4d2d-569e-d634-8394a8836a89", + "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88" + }, + "dspace:callbackAddress": "https://......" +} 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 new file mode 100644 index 00000000..4f477e04 --- /dev/null +++ b/releases/2024-1/negotiation/message/example/contract.agreement.message.http.transfer.json @@ -0,0 +1,43 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:ContractAgreementMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:agreement": { + "@id": "some-other-id", + "@type": "odrl:Agreement", + "odrl:target": "urn:uuid:3dd1add8-4d2d-569e-d634-8394a8836a88", + "odrl:assignee": "...", + "odrl:assigner": "...", + "odrl:permission": [ + { + "@id": "some-permission-id", + "odrl:action": "odrl:use", + "odrl:constraint": [ + { + "odrl:leftOperand": "dspace:TRANSPORT", + "odrl:operator": "odrl:equals", + "oderl:rightOperand": { + "@id": "dspace:HTTP_REST" + } + } + ] + } + ], + "odrl:duty": [ + { + "@id": "some-permission-id", + "odrl:action": "odrl:use", + "odrl:constraint": [ + { + "odrl:leftOperand": "dspace:TRANSPORT", + "odrl:operator": "odrl:equals", + "oderl:rightOperand": { + "@id": "dspace:HTTP_REST" + } + } + ] + } + ] + } +} diff --git a/releases/2024-1/negotiation/message/schema/contract-agreement-message-schema.json b/releases/2024-1/negotiation/message/schema/contract-agreement-message-schema.json new file mode 100644 index 00000000..07176b53 --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-agreement-message-schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ContractAgreementMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ContractAgreementMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/ContractAgreementMessageSchema", + "definitions": { + "ContractAgreementMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:ContractAgreementMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:agreement": { + "$ref": "https://w3id.org/dspace/schemas/2024/1/contract-schema.json#/definitions/Agreement" + }, + "dspace:callbackAddress": { + "type" : "string" + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid", "dspace:agreement", "dspace:callbackAddress"] + } + } +} diff --git a/releases/2024-1/negotiation/message/schema/contract-agreement-verification-message-schema.json b/releases/2024-1/negotiation/message/schema/contract-agreement-verification-message-schema.json new file mode 100644 index 00000000..8c3df70f --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-agreement-verification-message-schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ContractAgreementVerificationMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ContractAgreementVerificationMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/ContractAgreementVerificationMessageSchema", + "definitions": { + "ContractAgreementVerificationMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:ContractAgreementVerificationMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/schema/contract-negotiation-error-schema.json b/releases/2024-1/negotiation/message/schema/contract-negotiation-error-schema.json new file mode 100644 index 00000000..542ff1ea --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-negotiation-error-schema.json @@ -0,0 +1,53 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ContractNegotiationErrorSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ContractNegotiationError" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/ContractNegotiationErrorSchema", + "definitions": { + "ContractNegotiationError": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:ContractNegotiationError" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:code": { + "type": "string" + }, + "dspace:reason": { + "type": "array", + "minItems": 1, + "items": {} + }, + "dct:description": { + "type": "array", + "items": { + "@language": { + "type": "string" + }, + "@value": { + "type": "string" + } + }, + "required": [ "@language", "@value"] + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid"] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/schema/contract-negotiation-event-message-schema.json b/releases/2024-1/negotiation/message/schema/contract-negotiation-event-message-schema.json new file mode 100644 index 00000000..82ec44ed --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-negotiation-event-message-schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ContractNegotiationEventMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ContractNegotiationEventMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/ContractNegotiationEventMessageSchema", + "definitions": { + "ContractNegotiationEventMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:ContractNegotiationEventMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:eventType": { + "type": "string", + "enum": [ + "dspace:ACCEPTED", + "dspace:FINALIZED" + ] + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid", "dspace:eventType" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/schema/contract-negotiation-schema.json b/releases/2024-1/negotiation/message/schema/contract-negotiation-schema.json new file mode 100644 index 00000000..7d596bd0 --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-negotiation-schema.json @@ -0,0 +1,45 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ContractNegotiationSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ContractNegotiation" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/ContractNegotiationSchema", + "definitions": { + "ContractNegotiation": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:ContractNegotiation" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:state": { + "type": "string", + "enum": [ + "dspace:REQUESTED", + "dspace:OFFERED", + "dspace:ACCEPTED", + "dspace:AGREED", + "dspace:VERIFIED", + "dspace:FINALIZED", + "dspace:TERMINATED" + ] + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid", "dspace:state" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/schema/contract-negotiation-termination-message-schema.json b/releases/2024-1/negotiation/message/schema/contract-negotiation-termination-message-schema.json new file mode 100644 index 00000000..67c7328b --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-negotiation-termination-message-schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ContractNegotiationTerminationMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ContractNegotiationTerminationMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/ContractNegotiationTerminationMessageSchema", + "definitions": { + "ContractNegotiationTerminationMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:ContractNegotiationTerminationMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:code": { + "type": "string" + }, + "dspace:reason": { + "type": "array", + "minItems": 1, + "items": {} + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid" ] + } + } +} \ No newline at end of file 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 new file mode 100644 index 00000000..6de3f746 --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-offer-message-schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ContractOfferMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ContractOfferMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/ContractOfferMessageSchema", + "definitions": { + "ContractOfferMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:ContractOfferMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:offer": { + "$ref": "https://w3id.org/dspace/schemas/2024/1/contract-schema.json#/definitions/MessageOffer" + }, + "dspace:callbackAddress": { + "type" : "string" + } + }, + "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 new file mode 100644 index 00000000..ff9bc1ad --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-request-message-schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "ContractRequestMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ContractRequestMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/ContractRequestMessageSchema", + "definitions": { + "ContractRequestMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:ContractRequestMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:offer": { + "$ref": "https://w3id.org/dspace/schemas/2024/1/contract-schema.json#/definitions/MessageOffer" + }, + "dspace:callbackAddress": { + "type" : "string" + } + }, + "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 new file mode 100644 index 00000000..a4894183 --- /dev/null +++ b/releases/2024-1/negotiation/message/schema/contract-schema.json @@ -0,0 +1,382 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "PolicySchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Policy" + } + ], + "$id": "https://w3id.org/dspace/schemas/0/8/PolicySchema", + "definitions": { + "Policy": { + "oneOf": [ + { + "$ref": "#/definitions/MessageOffer" + }, + { + "$ref": "#/definitions/Offer" + }, + { + "$ref": "#/definitions/Agreement" + } + ] + }, + "PolicyClass": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AbstractPolicyRule" + }, + { + "properties": { + "@id": { + "type": "string" + }, + "odrl:profile": { + "type": "array", + "items": { + "$ref": "#/definitions/Reference" + } + }, + "odrl:permission": { + "type": "array", + "items": { + "$ref": "#/definitions/Permission" + }, + "minItems": 1 + }, + "odrl:obligation": { + "type": "array", + "items": { + "$ref": "#/definitions/Duty" + }, + "minItems": 1 + } + }, + "required": [ + "@id" + ] + } + ] + }, + "AbstractPolicyRule": { + "properties": { + "odrl:assigner": { + "type": "string" + }, + "odrl:assignee": { + "type": "string" + } + }, + "not": { "required": [ "odrl:target" ] } + }, + "MessageOffer": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/PolicyClass" + }, + { + "properties": { + "@type": { + "type": "string", + "const": "odrl:Offer" + } + } + }, + { + "anyOf": [ + { + "required": [ + "odrl:permission" + ] + }, + { + "required": [ + "odrl:prohibition" + ] + } + ] + } + ], + "required": [ "@type", "odrl:assigner" ] + }, + "Offer": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/MessageOffer" + } + ], + "not": { "required": [ "odrl:target" ] } + }, + "Agreement": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/PolicyClass" + }, + { + "properties": { + "@type": { + "type": "string", + "const": "odrl:Agreement" + }, + "@id": { + "type": "string" + }, + "odrl:target": { + "type": "string" + }, + "dspace:timestamp": { + "type": "string", + "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?" + } + } + }, + { + "anyOf": [ + { + "required": [ + "odrl:permission" + ] + }, + { + "required": [ + "odrl:prohibition" + ] + } + ] + } + ], + "required": [ + "@type", + "@id", + "@target", + "odrl:assignee", + "odrl:assigner" + ] + }, + "RuleClass": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AbstractPolicyRule" + }, + { + "properties": { + "odrl:action": { + "$ref": "#/definitions/Action" + }, + "odrl:constraint": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraint" + }, + "minItems": 1 + } + } + } + ], + "required": [ + "odrl:action" + ] + }, + "Permission": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AbstractPolicyRule" + }, + { + "properties": { + "odrl:action": { + "$ref": "#/definitions/Action" + }, + "odrl:constraint": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraint" + }, + "minItems": 1 + }, + "odrl:duty": { + "$ref": "#/definitions/Duty" + } + }, + "required": [ + "odrl:action" + ] + } + ] + }, + "Duty": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AbstractPolicyRule" + }, + { + "properties": { + "@id": { + "type": "string" + }, + "odrl:action": { + "$ref": "#/definitions/Action" + }, + "odrl:constraint": { + "type": "array", + "items": { + "$ref": "#/definitions/Constraint" + } + } + }, + "required": [ + "odrl:action" + ] + } + ] + }, + "Action": { + "type": "string", + "enum": [ + "odrl:delete", + "odrl:execute", + "cc:SourceCode", + "odrl:anonymize", + "odrl:extract", + "odrl:read", + "odrl:index", + "odrl:compensate", + "odrl:sell", + "odrl:derive", + "odrl:ensureExclusivity", + "odrl:annotate", + "cc:Reproduction", + "odrl:translate", + "odrl:include", + "cc:DerivativeWorks", + "cc:Distribution", + "odrl:textToSpeech", + "odrl:inform", + "odrl:grantUse", + "odrl:archive", + "odrl:modify", + "odrl:aggregate", + "odrl:attribute", + "odrl:nextPolicy", + "odrl:digitize", + "cc:Attribution", + "odrl:install", + "odrl:concurrentUse", + "odrl:distribute", + "odrl:synchronize", + "odrl:move", + "odrl:obtainConsent", + "odrl:print", + "cc:Notice", + "odrl:give", + "odrl:uninstall", + "cc:Sharing", + "odrl:reviewPolicy", + "odrl:watermark", + "odrl:play", + "odrl:reproduce", + "odrl:transform", + "odrl:display", + "odrl:stream", + "cc:ShareAlike", + "odrl:acceptTracking", + "cc:CommericalUse", + "odrl:present", + "odrl:use" + ] + }, + "Constraint": { + "type": "object", + "properties": { + "odrl:rightOperand": { + "$ref": "#/definitions/RightOperand" + }, + "odrl:rightOperandReference": { + "$ref": "#/definitions/Reference" + }, + "odrl:leftOperand": { + "$ref": "#/definitions/LeftOperand" + }, + "odrl:operator": { + "$ref": "#/definitions/Operator" + } + } + }, + "Operator": { + "type": "string", + "enum": [ + "odrl:eq", + "odrl:gt", + "odrl:gteq", + "odrl:hasPart", + "odrl:isA", + "odrl:isAllOf", + "odrl:isAnyOf", + "odrl:isNoneOf", + "odrl:isPartOf", + "odrl:lt", + "odrl:term-lteq", + "odrl:neq" + ] + }, + "RightOperand": {}, + "LeftOperand": { + "type": "string", + "enum": [ + "odrl:absolutePosition", + "odrl:absoluteSize", + "odrl:absoluteSpatialPosition", + "odrl:absoluteTemporalPosition", + "odrl:count", + "odrl:dateTime", + "odrl:delayPeriod", + "odrl:deliveryChannel", + "odrl:device", + "odrl:elapsedTime", + "odrl:event", + "odrl:fileFormat", + "odrl:industry", + "odrl:language", + "odrl:media", + "odrl:meteredTime", + "odrl:payAmount", + "odrl:percentage", + "odrl:product", + "odrl:purpose", + "odrl:recipient", + "odrl:relativePosition", + "odrl:relativeSize", + "odrl:relativeSpatialPosition", + "odrl:relativeTemporalPosition", + "odrl:resolution", + "odrl:spatial", + "odrl:spatialCoordinates", + "odrl:system", + "odrl:systemDevice", + "odrl:timeInterval", + "odrl:unitOfCount", + "odrl:version", + "odrl:virtualLocation" + ] + }, + "Reference": { + "type": "object", + "properties": { + "@id": { + "type": "string" + } + }, + "required": [ + "@id" + ] + } + } +} 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 new file mode 100644 index 00000000..d0a74007 --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-agreement-message-shape.ttl @@ -0,0 +1,69 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractAgreementMessageShape + a sh:NodeShape ; + sh:targetClass dspace:ContractAgreementMessage ; + rdfs:subClassOf dspace_shapes:ContractNegotiationMessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractAgreementMessageShape): An dspace:providerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractAgreementMessageShape): An dspace:consumerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:agreement ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:class odrl:Agreement ; + sh:severity sh:Violation ; + sh:message " (ContractAgreementMessageShape): An dspace:agreement property must point to exactly one odrl:Agreement class."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:callbackAddress ; + sh:datatype xsd:string ; + 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 ; + ] +. diff --git a/releases/2024-1/negotiation/message/shape/contract-agreement-verification-message-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-agreement-verification-message-shape.ttl new file mode 100644 index 00000000..a3c3fea4 --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-agreement-verification-message-shape.ttl @@ -0,0 +1,51 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractAgreementVerificationMessageShape + a sh:NodeShape ; + sh:targetClass dspace:ContractAgreementVerificationMessage ; + rdfs:subClassOf dspace_shapes:ContractNegotiationMessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractAgreementVerificationMessageShape): A dspace:providerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractAgreementVerificationMessageShape): A dspace:consumerPid property must point to exactly one xsd:string value."@en ; + ] ; +. \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/shape/contract-negotiation-error-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-negotiation-error-shape.ttl new file mode 100644 index 00000000..60e119ca --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-negotiation-error-shape.ttl @@ -0,0 +1,73 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractNegotiationErrorShape + a sh:NodeShape ; + sh:targetClass dspace:ContractNegotiationError ; + rdfs:subClassOf dspace_shapes:ContractNegotiationMessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationErrorShape): An dspace:providerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationErrorShape): An dspace:consumerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:code ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationErrorShape): An dspace:code property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:reason ; + sh:datatype rdf:langString ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationErrorShape): An dspace:reason property must point to rdf:langString values."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dct:description ; + sh:datatype rdf:langString ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationErrorShape): A dct:description property must point zero or more rdf:langString values."@en ; + ] +. \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/shape/contract-negotiation-event-message-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-negotiation-event-message-shape.ttl new file mode 100644 index 00000000..43beb196 --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-negotiation-event-message-shape.ttl @@ -0,0 +1,60 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractNegotiationEventMessageShape + a sh:NodeShape ; + sh:targetClass dspace:ContractNegotiationEventMessage ; + rdfs:subClassOf dspace_shapes:ContractNegotiationMessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationEventMessageShape): An dspace:providerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationEventMessageShape): An dspace:consumerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:eventType ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationEventMessageShape): An dspace:eventType property must point to exactly one xsd:string value."@en ; + ] ; +. \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/shape/contract-negotiation-message-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-negotiation-message-shape.ttl new file mode 100644 index 00000000..d4d38e12 --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-negotiation-message-shape.ttl @@ -0,0 +1,51 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractNegotiationMessageShape + a sh:NodeShape ; + sh:targetClass dspace:ContractNegotiationMessage ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 0 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationMessageShape): An dspace:providerPid property must point to exactly one xsd:string."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 0 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationMessageShape): An dspace:consumerPid property must point to exactly one xsd:string."@en ; + ] ; +. \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/shape/contract-negotiation-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-negotiation-shape.ttl new file mode 100644 index 00000000..b18ef204 --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-negotiation-shape.ttl @@ -0,0 +1,69 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractNegotiationShape + a sh:NodeShape ; + sh:targetClass dspace:ContractNegotiation ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationShape): An dspace:providerPid property must point to exactly one xsd:string."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationShape): An dspace:consumerPid property must point to exactly one xsd:string."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:state ; + sh:in ( + dspace:REQUESTED + dspace:OFFERED + dspace:ACCEPTED + dspace:AGREED + dspace:VERIFIED + dspace:FINALIZED + dspace:TERMINATED + ) ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationShape): An dspace:state property must point to exactly one dspace:NegotiationState entity."@en ; + ] + +. \ No newline at end of file diff --git a/releases/2024-1/negotiation/message/shape/contract-negotiation-termination-message-shape.ttl b/releases/2024-1/negotiation/message/shape/contract-negotiation-termination-message-shape.ttl new file mode 100644 index 00000000..2d5cebb7 --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-negotiation-termination-message-shape.ttl @@ -0,0 +1,63 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractNegotiationTerminationMessageShape + a sh:NodeShape ; + sh:targetClass dspace:ContractNegotiationTerminationMessage ; + rdfs:subClassOf dspace_shapes:ContractNegotiationMessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationTerminationMessageShape): An dspace:providerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationTerminationMessageShape): An dspace:consumerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:code ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (ContractNegotiationTerminationMessageShape): An dspace:code property must point to an xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:reason ; + ] + +. \ No newline at end of file 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 new file mode 100644 index 00000000..b619d8ce --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-offer-message-shape.ttl @@ -0,0 +1,69 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractOfferMessageShape + a sh:NodeShape ; + sh:targetClass dspace:ContractOfferMessage ; + rdfs:subClassOf dspace_shapes:ContractNegotiationMessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractOfferMessageShape): An dspace:providerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractOfferMessageShape): An dspace:consumerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:offer ; + sh:class odrl:Offer ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractOfferMessageShape): A dspace:offer property must point to exactly one odrl:Offer class."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:callbackAddress ; + sh:datatype xsd:string ; + 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 ; + ] ; +. \ 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 new file mode 100644 index 00000000..e28482ad --- /dev/null +++ b/releases/2024-1/negotiation/message/shape/contract-request-message-shape.ttl @@ -0,0 +1,69 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:ContractRequestMessageShape + a sh:NodeShape ; + sh:targetClass dspace:ContractRequestMessage ; + rdfs:subClassOf dspace_shapes:ContractNegotiationMessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractRequestMessageShape): An dspace:providerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractRequestMessageShape): An dspace:consumerPid property must point to exactly one xsd:string value."@en ; + ] ; + sh:property [ + a sh:PropertyShape ; + sh:path dspace:offer ; + sh:class odrl:Offer ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:severity sh:Violation ; + sh:message " (ContractRequestMessageShape): An dspace:offer property must point to exactly one odrl:Offer class."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:callbackAddress ; + sh:datatype xsd:string ; + 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 ; + ] ; +. \ No newline at end of file diff --git a/releases/2024-1/transfer/message/example/transfer-completion-message.json b/releases/2024-1/transfer/message/example/transfer-completion-message.json new file mode 100644 index 00000000..75fc9bed --- /dev/null +++ b/releases/2024-1/transfer/message/example/transfer-completion-message.json @@ -0,0 +1,6 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:TransferCompletionMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833" +} diff --git a/releases/2024-1/transfer/message/example/transfer-error.json b/releases/2024-1/transfer/message/example/transfer-error.json new file mode 100644 index 00000000..083c97cc --- /dev/null +++ b/releases/2024-1/transfer/message/example/transfer-error.json @@ -0,0 +1,11 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:TransferError", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:code": "...", + "dspace:reason": [ + {}, + {} + ] +} diff --git a/releases/2024-1/transfer/message/example/transfer-process.json b/releases/2024-1/transfer/message/example/transfer-process.json new file mode 100644 index 00000000..474ad327 --- /dev/null +++ b/releases/2024-1/transfer/message/example/transfer-process.json @@ -0,0 +1,7 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:TransferProcess", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:state": "dspace:REQUESTED" +} \ 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 new file mode 100644 index 00000000..d891ef5c --- /dev/null +++ b/releases/2024-1/transfer/message/example/transfer-request-message.json @@ -0,0 +1,25 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:TransferRequestMessage", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:agreementId": "urn:uuid:e8dc8655-44c2-46ef-b701-4cffdc2faa44", + "dct:format": "example:HTTP_PUSH", + "dspace:dataAddress": { + "@type": "dspace:DataAddress", + "dspace:endpointType": "https://w3id.org/idsa/v4.1/HTTP", + "dspace:endpoint": "http://example.com", + "dspace:endpointProperties": [ + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authorization", + "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" + } + ] + }, + "dspace:callbackAddress": "https://......" +} diff --git a/releases/2024-1/transfer/message/example/transfer-start-message.json b/releases/2024-1/transfer/message/example/transfer-start-message.json new file mode 100644 index 00000000..50a67933 --- /dev/null +++ b/releases/2024-1/transfer/message/example/transfer-start-message.json @@ -0,0 +1,23 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:TransferStartMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:dataAddress": { + "@type": "dspace:DataAddress", + "dspace:endpointType": "https://w3id.org/idsa/v4.1/HTTP", + "dspace:endpoint": "http://example.com", + "dspace:endpointProperties": [ + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authorization", + "dspace:value": "TOKEN-ABCDEFG" + }, + { + "@type": "dspace:EndpointProperty", + "dspace:name": "authType", + "dspace:value": "bearer" + } + ] + } +} diff --git a/releases/2024-1/transfer/message/example/transfer-suspension-message.json b/releases/2024-1/transfer/message/example/transfer-suspension-message.json new file mode 100644 index 00000000..bb2026cb --- /dev/null +++ b/releases/2024-1/transfer/message/example/transfer-suspension-message.json @@ -0,0 +1,11 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:TransferSuspensionMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:code": "...", + "dspace:reason": [ + {}, + {} + ] +} diff --git a/releases/2024-1/transfer/message/example/transfer-termination-message.json b/releases/2024-1/transfer/message/example/transfer-termination-message.json new file mode 100644 index 00000000..9c902bee --- /dev/null +++ b/releases/2024-1/transfer/message/example/transfer-termination-message.json @@ -0,0 +1,11 @@ +{ + "@context": "https://w3id.org/dspace/2024/1/context.json", + "@type": "dspace:TransferTerminationMessage", + "dspace:providerPid": "urn:uuid:a343fcbf-99fc-4ce8-8e9b-148c97605aab", + "dspace:consumerPid": "urn:uuid:32541fe6-c580-409e-85a8-8a9a32fbe833", + "dspace:code": "...", + "dspace:reason": [ + {}, + {} + ] +} diff --git a/releases/2024-1/transfer/message/schema/transfer-completion-message-schema.json b/releases/2024-1/transfer/message/schema/transfer-completion-message-schema.json new file mode 100644 index 00000000..883773de --- /dev/null +++ b/releases/2024-1/transfer/message/schema/transfer-completion-message-schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "TransferCompletionMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TransferCompletionMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/TransferCompletionMessageSchema", + "definitions": { + "TransferCompletionMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:TransferCompletionMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/transfer/message/schema/transfer-error-schema.json b/releases/2024-1/transfer/message/schema/transfer-error-schema.json new file mode 100644 index 00000000..66cd7163 --- /dev/null +++ b/releases/2024-1/transfer/message/schema/transfer-error-schema.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "TransferErrorSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TransferError" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/TransferErrorSchema", + "definitions": { + "TransferError": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:TransferError" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:code": { + "type": "string" + }, + "dspace:reason": { + "type": "array", + "items": {} + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid"] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/transfer/message/schema/transfer-process-schema.json b/releases/2024-1/transfer/message/schema/transfer-process-schema.json new file mode 100644 index 00000000..2de7e8ad --- /dev/null +++ b/releases/2024-1/transfer/message/schema/transfer-process-schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "TransferProcessSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TransferProcess" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/TransferProcessSchema", + "definitions": { + "TransferProcess": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:TransferProcess" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:state": { + "type": "string", + "enum": [ + "dspace:REQUESTED", + "dspace:STARTED", + "dspace:TERMINATED", + "dspace:COMPLETED", + "dspace:SUSPENDED" + ] + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid", "dspace:state" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/transfer/message/schema/transfer-request-message-schema.json b/releases/2024-1/transfer/message/schema/transfer-request-message-schema.json new file mode 100644 index 00000000..e71fb28d --- /dev/null +++ b/releases/2024-1/transfer/message/schema/transfer-request-message-schema.json @@ -0,0 +1,74 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "TransferRequestMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TransferRequestMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/TransferRequestMessageSchema", + "definitions": { + "TransferRequestMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:TransferRequestMessage" + }, + "dspace:agreementId": { + "type": "string" + }, + "dct:format": { + "type": "string" + }, + "dspace:dataAddress": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "const": "dspace:DataAddress" + }, + "dspace:endpointType": { + "type": "string" + }, + "dspace:endpoint": { + "type": "string" + }, + "dspace:endpointProperties": { + "type": "array", + "items": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "const": "dspace:EndpointProperty" + }, + "dspace:name": { + "type": "string" + }, + "dspace:value": { + "type": "string" + } + }, + "required": ["@type", "dspace:name", "dspace:value"] + } + } + }, + "required": ["@type", "dspace:endpointType", "dspace:endpoint"] + }, + "dspace:callbackAddress": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + } + }, + "required": [ "@context", "@type", "dspace:agreementId", "dct:format", "dspace:callbackAddress", "dspace:consumerPid" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/transfer/message/schema/transfer-start-message-schema.json b/releases/2024-1/transfer/message/schema/transfer-start-message-schema.json new file mode 100644 index 00000000..9047bda8 --- /dev/null +++ b/releases/2024-1/transfer/message/schema/transfer-start-message-schema.json @@ -0,0 +1,68 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "TransferStartMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TransferStartMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/TransferStartMessageSchema", + "definitions": { + "TransferStartMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:TransferStartMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:dataAddress": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "const": "dspace:DataAddress" + }, + "dspace:endpointType": { + "type": "string" + }, + "dspace:endpoint": { + "type": "string" + }, + "dspace:endpointProperties": { + "type": "array", + "items": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "const": "dspace:EndpointProperty" + }, + "dspace:name": { + "type": "string" + }, + "dspace:value": { + "type": "string" + } + }, + "required": ["@type", "dspace:name", "dspace:value"] + } + } + }, + "required": ["@type", "dspace:endpointType", "dspace:endpoint"] + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/transfer/message/schema/transfer-suspension-message-schema.json b/releases/2024-1/transfer/message/schema/transfer-suspension-message-schema.json new file mode 100644 index 00000000..2b566edb --- /dev/null +++ b/releases/2024-1/transfer/message/schema/transfer-suspension-message-schema.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "TransferSuspensionMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TransferSuspensionMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/TransferSuspensionMessageSchema", + "definitions": { + "TransferSuspensionMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:TransferSuspensionMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:code": { + "type": "string" + }, + "dspace:reason": { + "type": "array", + "minItems": 1, + "items": {} + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/transfer/message/schema/transfer-termination-message-schema.json b/releases/2024-1/transfer/message/schema/transfer-termination-message-schema.json new file mode 100644 index 00000000..7abd6da6 --- /dev/null +++ b/releases/2024-1/transfer/message/schema/transfer-termination-message-schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "TransferTerminationMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TransferTerminationMessage" + } + ], + "$id": "https://w3id.org/dspace/schemas/2024/1/TransferTerminationMessageSchema", + "definitions": { + "TransferTerminationMessage": { + "type": "object", + "properties": { + "@context": { + "type": "string", + "const": "https://w3id.org/dspace/2024/1/context.json" + }, + "@type": { + "type": "string", + "const": "dspace:TransferTerminationMessage" + }, + "dspace:providerPid": { + "type": "string" + }, + "dspace:consumerPid": { + "type": "string" + }, + "dspace:code": { + "type": "string" + }, + "dspace:reason": { + "type": "array", + "minItems": 1, + "items": { + + } + } + }, + "required": [ "@context", "@type", "dspace:providerPid", "dspace:consumerPid" ] + } + } +} \ No newline at end of file diff --git a/releases/2024-1/transfer/message/shape/transfer-completion-message-shape.ttl b/releases/2024-1/transfer/message/shape/transfer-completion-message-shape.ttl new file mode 100644 index 00000000..c39999b6 --- /dev/null +++ b/releases/2024-1/transfer/message/shape/transfer-completion-message-shape.ttl @@ -0,0 +1,53 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:TransferCompletionMessageShape + a sh:NodeShape ; + sh:targetClass dspace:TransferCompletionMessage ; + rdfs:subClassOf dspace_shapes:MessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferCompletionMessageShape): An dspace:providerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferCompletionMessageShape): An dspace:consumerPid property must point exactly one xsd:string field."@en ; + ] ; + +. \ No newline at end of file diff --git a/releases/2024-1/transfer/message/shape/transfer-data-address-shape.ttl b/releases/2024-1/transfer/message/shape/transfer-data-address-shape.ttl new file mode 100644 index 00000000..6223610d --- /dev/null +++ b/releases/2024-1/transfer/message/shape/transfer-data-address-shape.ttl @@ -0,0 +1,85 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +shapes:DataAddressShape + a sh:NodeShape ; + sh:targetClass dspace:DataAddress ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:endpointType ; + sh:datatype xsd:anyURI ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (DataAddressShape): An dspace:endpointType property must point exactly one xsd:anyURI field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:endpoint ; + sh:datatype xsd:anyURI ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (DataAddressShape): An dspace:endpoint property must point exactly one xsd:anyURI field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:endpointProperties ; + sh:class dspace:EndpointProperty ; + sh:minCount 0 ; + sh:severity sh:Violation ; + sh:message " (TransferErrorShape): An dspace:endpointProperties property must point to zero or more dspace:EndpointProperty."@en ; + ] ; + +. + +shapes:EndpointPropertyShape + sh:targetClass dspace:EndpointProperty ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:name ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (EndpointPropertyShape): An dspace:name property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:value ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (EndpointPropertyShape): An dspace:value property must point exactly one xsd:string field."@en ; + ] ; +. \ No newline at end of file diff --git a/releases/2024-1/transfer/message/shape/transfer-error-shape.ttl b/releases/2024-1/transfer/message/shape/transfer-error-shape.ttl new file mode 100644 index 00000000..c0a11e1c --- /dev/null +++ b/releases/2024-1/transfer/message/shape/transfer-error-shape.ttl @@ -0,0 +1,66 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:TransferErrorShape + a sh:NodeShape ; + sh:targetClass dspace:TransferError ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferErrorShape): An dspace:providerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferErrorShape): An dspace:consumerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:code ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:severity sh:Violation ; + sh:message " (TransferErrorShape): An dspace:code property must point to exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:reason ; + ] ; + +. \ No newline at end of file diff --git a/releases/2024-1/transfer/message/shape/transfer-process-shape.ttl b/releases/2024-1/transfer/message/shape/transfer-process-shape.ttl new file mode 100644 index 00000000..ad9d9416 --- /dev/null +++ b/releases/2024-1/transfer/message/shape/transfer-process-shape.ttl @@ -0,0 +1,69 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:TransferProcessShape + a sh:NodeShape ; + sh:targetClass dspace:TransferProcess ; + rdfs:subClassOf dspace_shapes:MessageShape ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferProcessShape): An dspace:providerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferProcessShape): An dspace:consumerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:state ; + sh:in ( + dspace:REQUESTED + dspace:STARTED + dspace:TERMINATED + dspace:COMPLETED + dspace:SUSPENDED + ) ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferProcessShape): An dspace:state property must point exactly one dspace:TransferState entity."@en ; + ] ; + +. \ No newline at end of file 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 new file mode 100644 index 00000000..86ac73d4 --- /dev/null +++ b/releases/2024-1/transfer/message/shape/transfer-request-message-shape.ttl @@ -0,0 +1,82 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:TransferRequestMessageShape + a sh:NodeShape ; + sh:targetClass dspace:TransferRequestMessage ; + + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:agreementId ; + sh:datatype xsd:anyURI ; + 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:property [ + a sh:PropertyShape ; + sh:path dct:format ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferRequestMessageShape): A dct:format property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:dataAddress ; + sh:class dspace:DataAddress ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 0 ; + sh:message " (TransferRequestMessageShape): An dspace:dataAddress property must point zero or one dspace:DataAddress field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:callbackAddress ; + sh:datatype xsd:anyURI ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferRequestMessageShape): An dspace:callbackAddress property must point exactly one xsd:anyURI field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferRequestMessageShape): An dspace:consumerPid property must point exactly one xsd:string field."@en ; + ] ; +. diff --git a/releases/2024-1/transfer/message/shape/transfer-start-message-shape.ttl b/releases/2024-1/transfer/message/shape/transfer-start-message-shape.ttl new file mode 100644 index 00000000..a636af4f --- /dev/null +++ b/releases/2024-1/transfer/message/shape/transfer-start-message-shape.ttl @@ -0,0 +1,62 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:TransferStartMessageShape + a sh:NodeShape ; + sh:targetClass dspace:TransferStartMessage ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferStartMessageShape): An dspace:providerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferStartMessageShape): An dspace:consumerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:dataAddress ; + sh:class dspace:DataAddress ; + sh:maxCount 1 ; + sh:minCount 0 ; + sh:severity sh:Violation ; + sh:message " (TransferStartMessageShape): An dspace:dataAddress property must point from an dspace:TransferStartMessage to a dspace:DataAddress object."@en ; + ] ; + +. \ No newline at end of file diff --git a/releases/2024-1/transfer/message/shape/transfer-suspension-message-shape.ttl b/releases/2024-1/transfer/message/shape/transfer-suspension-message-shape.ttl new file mode 100644 index 00000000..6402f947 --- /dev/null +++ b/releases/2024-1/transfer/message/shape/transfer-suspension-message-shape.ttl @@ -0,0 +1,60 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:TransferSuspensionMessageShape + a sh:NodeShape ; + sh:targetClass dspace:TransferSuspensionMessage ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferSuspensionMessageShape): An dspace:providerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferSuspensionMessageShape): An dspace:consumerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:code ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:message " (TransferSuspensionMessageShape): An dspace:code property must point to an xsd:string value."@en ; + ] ; + +. \ No newline at end of file diff --git a/releases/2024-1/transfer/message/shape/transfer-termination-message-shape.ttl b/releases/2024-1/transfer/message/shape/transfer-termination-message-shape.ttl new file mode 100644 index 00000000..30d2778f --- /dev/null +++ b/releases/2024-1/transfer/message/shape/transfer-termination-message-shape.ttl @@ -0,0 +1,67 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix dct: . +@prefix dcat: . +@prefix odrl: . +@prefix cred: . +@prefix sec: . + +@prefix dspace: . +@prefix dspace_shapes: . + +@prefix sh: . + +dspace_shapes: + a owl:Ontology ; + sh:declare [ + sh:prefix "rdf" ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + ] ; + sh:declare [ + sh:prefix "dspace" ; + sh:namespace "https://w3id.org/dspace/2024/1/"^^xsd:anyURI ; + ] ; +. + +dspace_shapes:TransferTerminationMessageShape + a sh:NodeShape ; + sh:targetClass dspace:TransferTerminationMessage ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:providerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferTerminationMessageShape): An dspace:providerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:consumerPid ; + sh:datatype xsd:string ; + sh:severity sh:Violation ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:message " (TransferTerminationMessageShape): An dspace:consumerPid property must point exactly one xsd:string field."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:code ; + sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:minCount 0 ; + sh:severity sh:Violation ; + sh:message " (TransferTerminationMessageShape): An dspace:code property must point from an dspace:TransferTerminationMessage to exactly one xsd:string value."@en ; + ] ; + + sh:property [ + a sh:PropertyShape ; + sh:path dspace:reason ; + ] + +. \ No newline at end of file