From be8cc02c8f44a2b89ad108f1b7116047a6bf5029 Mon Sep 17 00:00:00 2001 From: southeo Date: Tue, 3 Sep 2024 12:56:24 +0200 Subject: [PATCH 1/8] 1.0 fdo profile --- data-model/Dockerfile | 24 ++- .../examples/example-annotation-request.json | 13 ++ .../1.0.0/examples/example-annotation.json | 17 ++ .../schema/annotation-request-attributes.json | 34 ++++ .../1.0.0/schema/annotation-request.json | 31 ++++ .../annotation/1.0.0/schema/annotation.json | 167 +++++++++++++++++ .../example-data-mapping-request.json | 10 + .../1.0.0/examples/example-data-mapping.json | 13 ++ .../example-tombstoned-data-mapping-fdo.json | 19 ++ .../data-mapping-request-attributes.json | 31 ++++ .../1.0.0/schema/data-mapping-request.json | 31 ++++ .../1.0.0/schema/data-mapping.json | 152 +++++++++++++++ .../schema/doi-kernel-request-attributes.json | 29 +++ .../doi-kernel/1.0.0/schema/doi-kernel.json | 174 ++++++++++++++++++ .../doi-kernel/1.0.0/schema/doi-request.json | 30 +++ .../examples/example-handle-request.json | 10 + .../1.0.0/examples/example-handle.json | 14 ++ .../examples/example-tombstoned-handle.json | 16 ++ .../1.0.0/schema/handle-kernel.json | 147 +++++++++++++++ .../schema/handle-request-attributes.json | 23 +++ .../1.0.0/schema/handle-request.json | 31 ++++ .../0.1.0/examples/example-mas-request.json | 0 .../0.1.0/examples/example-mas.json | 0 .../examples/example-tombstoned-mas.json | 0 .../0.1.0/schema/mas-request-attributes.json | 2 +- .../0.1.0/schema/mas-request.json | 2 +- .../0.1.0/schema/mas.json | 2 +- ...achine-annotation-service-fdo-profile.json | 15 ++ ...le-machine-annotation-service-request.json | 11 ++ ...achine-annotation-service-fdo-profile.json | 153 +++++++++++++++ ...annotation-service-request-attributes.json | 23 +++ .../machine-annotation-service-request.json | 31 ++++ .../example-source-system-fdo-profile.json | 15 ++ .../example-source-system-request.json | 11 ++ .../schema/source-system-fdo-profile.json | 153 +++++++++++++++ .../source-system-request-attributes.json | 23 +++ .../1.0.0/schema/source-system-request.json | 31 ++++ 37 files changed, 1476 insertions(+), 12 deletions(-) create mode 100644 data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json create mode 100644 data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json create mode 100644 data-model/fdo-profile/annotation/1.0.0/schema/annotation-request-attributes.json create mode 100644 data-model/fdo-profile/annotation/1.0.0/schema/annotation-request.json create mode 100644 data-model/fdo-profile/annotation/1.0.0/schema/annotation.json create mode 100644 data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping-request.json create mode 100644 data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json create mode 100644 data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json create mode 100644 data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request-attributes.json create mode 100644 data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request.json create mode 100644 data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping.json create mode 100644 data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel-request-attributes.json create mode 100644 data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel.json create mode 100644 data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-request.json create mode 100644 data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle-request.json create mode 100644 data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json create mode 100644 data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json create mode 100644 data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-kernel.json create mode 100644 data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request-attributes.json create mode 100644 data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request.json rename data-model/fdo-profile/{mas => machine-annotation-service}/0.1.0/examples/example-mas-request.json (100%) rename data-model/fdo-profile/{mas => machine-annotation-service}/0.1.0/examples/example-mas.json (100%) rename data-model/fdo-profile/{mas => machine-annotation-service}/0.1.0/examples/example-tombstoned-mas.json (100%) rename data-model/fdo-profile/{mas => machine-annotation-service}/0.1.0/schema/mas-request-attributes.json (92%) rename data-model/fdo-profile/{mas => machine-annotation-service}/0.1.0/schema/mas-request.json (87%) rename data-model/fdo-profile/{mas => machine-annotation-service}/0.1.0/schema/mas.json (98%) create mode 100644 data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-fdo-profile.json create mode 100644 data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-request.json create mode 100644 data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-fdo-profile.json create mode 100644 data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-request-attributes.json create mode 100644 data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-request.json create mode 100644 data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-fdo-profile.json create mode 100644 data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-request.json create mode 100644 data-model/fdo-profile/source-system/1.0.0/schema/source-system-fdo-profile.json create mode 100644 data-model/fdo-profile/source-system/1.0.0/schema/source-system-request-attributes.json create mode 100644 data-model/fdo-profile/source-system/1.0.0/schema/source-system-request.json diff --git a/data-model/Dockerfile b/data-model/Dockerfile index 8fd7511..3788ea1 100644 --- a/data-model/Dockerfile +++ b/data-model/Dockerfile @@ -8,7 +8,7 @@ COPY fdo-profile/digital-specimen/0.1.0/schema/ schema-root/schemas/fdo-profile/ COPY fdo-profile/doi-kernel/0.1.0/schema schema-root/schemas/fdo-profile/doi-kernel/0.1.0 COPY fdo-profile/handle-kernel/0.1.0/schema schema-root/schemas/fdo-profile/handle-kernel/0.1.0 COPY fdo-profile/data-mapping/0.1.0/schema schema-root/schemas/fdo-profile/data-mapping/0.1.0 -COPY fdo-profile/mas/0.1.0/schema schema-root/schemas/fdo-profile/mas/0.1.0 +COPY fdo-profile/machine-annotation-service/0.1.0/schema schema-root/schemas/fdo-profile/mas/0.1.0 COPY fdo-profile/digital-media/0.1.0/schema schema-root/schemas/fdo-profile/digital-media/0.1.0 COPY fdo-profile/organisation/0.1.0/schema schema-root/schemas/fdo-profile/organisation/0.1.0 COPY fdo-profile/source-system/0.1.0/schema schema-root/schemas/fdo-profile/source-system/0.1.0 @@ -16,17 +16,23 @@ COPY fdo-profile/tettris-service/0.1.0/schema schema-root/schemas/fdo-profile/te COPY fdo-profile/tombstone/0.1.0/schema schema-root/schemas/fdo-profile/tombstone/0.1.0 COPY fdo-profile/virtual-collection/0.1.0/schema schema-root/schemas/fdo-profile/virtual-collection/0.1.0 +COPY fdo-profile/annotation/1.0.0/schema schema-root/schemas/fdo-profile/annotation/1.0.0 +COPY fdo-profile/handle-kernel/1.0.0/schema schema-root/schemas/fdo-profile/handle-kernel/1.0.0 +COPY fdo-profile/data-mapping/1.0.0/schema schema-root/schemas/fdo-profile/data-mapping/1.0.0 +COPY fdo-profile/machine-annotation-service/1.0.0/schema schema-root/schemas/fdo-profile/machine-annotation-service/1.0.0 + # Latest FDO Profile schemas -COPY fdo-profile/annotation/0.1.0/schema schema-root/schemas/fdo-profile/annotation/latest -COPY fdo-profile/digital-specimen/0.1.0/schema/ schema-root/schemas/fdo-profile/digital-specimen/latest -COPY fdo-profile/doi-kernel/0.1.0/schema schema-root/schemas/fdo-profile/doi-kernel/latest -COPY fdo-profile/handle-kernel/0.1.0/schema schema-root/schemas/fdo-profile/handle-kernel/latest -COPY fdo-profile/data-mapping/0.1.0/schema schema-root/schemas/fdo-profile/data-mapping/latest -COPY fdo-profile/mas/0.1.0/schema schema-root/schemas/fdo-profile/mas/latest +COPY fdo-profile/annotation/1.0.0/schema schema-root/schemas/fdo-profile/annotation/latest +COPY fdo-profile/digital-specimen/1.0.0/schema/ schema-root/schemas/fdo-profile/digital-specimen/latest +COPY fdo-profile/doi-kernel/1.0.0/schema schema-root/schemas/fdo-profile/doi-kernel/latest +COPY fdo-profile/handle-kernel/1.0.0/schema schema-root/schemas/fdo-profile/handle-kernel/latest +COPY fdo-profile/data-mapping/1.0.0/schema schema-root/schemas/fdo-profile/data-mapping/latest +COPY fdo-profile/machine-annotation-service/1.0.0/schema schema-root/schemas/fdo-profile/mas/latest +COPY fdo-profile/source-system/1.0.0/schema schema-root/schemas/fdo-profile/source-system/latest + +COPY fdo-profile/tettris-service/0.1.0/schema schema-root/schemas/fdo-profile/tettris-service/latest COPY fdo-profile/digital-media/0.1.0/schema schema-root/schemas/fdo-profile/digital-media/latest COPY fdo-profile/organisation/0.1.0/schema schema-root/schemas/fdo-profile/organisation/latest -COPY fdo-profile/source-system/0.1.0/schema schema-root/schemas/fdo-profile/source-system/latest -COPY fdo-profile/tettris-service/0.1.0/schema schema-root/schemas/fdo-profile/tettris-service/latest COPY fdo-profile/tombstone/0.1.0/schema schema-root/schemas/fdo-profile/tombstone/latest COPY fdo-profile/virtual-collection/0.1.0/schema schema-root/schemas/fdo-profile/virtual-collection/latest diff --git a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json new file mode 100644 index 0000000..01809bb --- /dev/null +++ b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json @@ -0,0 +1,13 @@ +{ + "data": { + "type": "https:/doi.org/21.T11148/532ce6796e2828dd2be6", + "attributes": { + "locations": [ + "https://coldb.mnhn.fr/catalognumber/mnhn/ec/ec23946" + ], + "targetPid": "https://hdl.handle.net/20.5000.10235/aaa-bbb-ccc", + "targetType": "https://doi.org/21.T11148/894b1e6cad57e921764e", + "annotationHash": "b3dada2d-396b-cab2-665e-125659fc7ae6" + } + } +} \ No newline at end of file diff --git a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json new file mode 100644 index 0000000..7b84bcf --- /dev/null +++ b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json @@ -0,0 +1,17 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f", + "digitalObjectName": "Annotation", + "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", + "pidRecordIssueNumber": 1, + "pidStatus": "ACTIVE", + "targetPid": "https://hdl.handle.net/20.500.125/1111111", + "targetType": "DigitalSpecimen", + "annotationHash": "faab142f-40a5-fc15-7085-49c23301c608" +} \ No newline at end of file diff --git a/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request-attributes.json b/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request-attributes.json new file mode 100644 index 0000000..882d0d6 --- /dev/null +++ b/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request-attributes.json @@ -0,0 +1,34 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/annotation/1.0.0/annotation-request-attributes.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for an annotation", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional URLs to be appended to the 10320/loc field" + }, + "targetPid": { + "type": "string", + "pattern": "https:\/\/(doi\\.org\/10\\.\\w+/\\w+$|hdl\\.handle\\.net\/[\\w.]+\/[\\w-]+$)", + "description": "A Handle or DOI of the object that is being annotated" + }, + "targetType": { + "type": "string", + "description": "Map to ods:type in annotation model" + }, + "annotationHash": { + "type": "string", + "format": "uuid", + "description": "MD5 hash based on target, motivation, and creator. Internally generated by DiSSCo Annotation Processing Service for machine annotations" + } + }, + "required": [ + "targetPid", + "targetType" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request.json b/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request.json new file mode 100644 index 0000000..fc68724 --- /dev/null +++ b/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request.json @@ -0,0 +1,31 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/annotation/1.0.0/annotation-request.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "Schema for making annotation-creation requests to the DiSSCo Handle Manager", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "const": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f", + "description": "PID of the Digital Object Type" + }, + "attributes": { + "type": "object", + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/annotation/1.0.0/anotation-request-attributes.json" + } + }, + "required": [ + "type", + "attributes" + ], + "additionalProperties": false + } + }, + "required": [ + "data" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/annotation/1.0.0/schema/annotation.json b/data-model/fdo-profile/annotation/1.0.0/schema/annotation.json new file mode 100644 index 0000000..b809cac --- /dev/null +++ b/data-model/fdo-profile/annotation/1.0.0/schema/annotation.json @@ -0,0 +1,167 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/annotation/1.0.0/annotation-fdo-profile.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "FDO Profile for DiSSCo Annotations", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "fdoProfile": { + "description": "PID to a machine readable description of the attributes in the FDO record", + "const": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f", + "$comment": "idx = 1" + }, + "fdoRecordLicenseId": { + "const": "https://spdx.org/licenses/CC0-1.0.json", + "description": "The licence for the FDO record, required to be always public domain", + "$comment": "idx = 2" + }, + "fdoRecordLicenseName": { + "const": "CC0 1.0 Universal", + "description": "CC0 1.0 Universal", + "$comment": "idx = 3" + }, + "digitalObjectType": { + "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", + "const": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f", + "$comment": "idx = 4" + }, + "digitalObjectName": { + "type": "string", + "description": "Name of the object type for humans", + "example": "digital specimen type 1", + "$comment": "idx = 5" + }, + "pid": { + "type": "string", + "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", + "example": "https://doi.org/10.22/GEE-W3J-HL2", + "$comment": "idx = 6" + }, + "pidIssuer": { + "type": "string", + "description": "In case of a DOI, this is a PID for the DOI Registration Agency", + "example": "https://hdl.handle.net/10.17183", + "$comment": "idx = 7" + }, + "pidIssuerName": { + "type": "string", + "description": "Human-readable name of the PID issuer", + "example": "DataCite", + "$comment": "idx = 8" + }, + "pidRecordIssueDate": { + "type": "string", + "description": "Date the PID record was created", + "example": "2023-10-16T12:08:37.494Z", + "$comment": "idx = 9" + }, + "pidRecordIssueNumber": { + "type": "integer", + "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", + "example": "2", + "$comment": "idx = 10" + }, + "pidStatus": { + "enum": [ + "TOMBSTONE", + "DRAFT", + "ACTIVE" + ], + "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", + "$comment": "idx = 11" + }, + "HS_ADMIN": { + "type": "string", + "description": "Administrative information for PID profile", + "$comment": "idx = 100" + }, + "10320/loc": { + "type": "string", + "description": "XML document describing location(s) of the resource", + "$comment": "idx = 101", + "example": "" + }, + "tombstoneText": { + "type": "string", + "description": "A reason why the Digital Object was tombstoned", + "examples": [ + "This is a duplicate of XXX", + "This object was made by mistake" + ], + "$comment": "idx = 30" + }, + "hasRelatedPid": { + "type": "array", + "description": "The PIDs of the object the tombstoned object is related to", + "items": { + "type": "object", + "items": { + "type": "object", + "properties": { + "pid": { + "type": "string", + "description": "The PID of the related object", + "examples": [ + "https://doi.org/10.1234/abcd" + ] + }, + "relationshipType": { + "type": "string", + "description": "The type of relationship between the tombstoned object and the related object", + "examples": [ + "isObsoletedBy", + "isIdenticalTo" + ] + } + }, + "additionalProperties": false + }, + "$comment": "idx = 31" + } + }, + "tombstoneDate": { + "type": "string", + "description": "Timestamp the Digital Object was tombstoned and no longer active.", + "format": "date-time", + "examples": [ + "2021-06-01T12:00:000Z" + ], + "$comment": "idx = 32" + }, + "targetPid": { + "type": "string", + "description": "A Handle or DOI of the object that is being annotated", + "examples": [ + "https:/hdl.handle.net/20.5000.1025/ABC-123-XYZ" + ], + "pattern": "https://(doi\\.org/10\\.\\w+/\\w+$|hdl\\.handle\\.net/[\\w.]+/[\\w-]+$)", + "$comment": "idx = 500" + }, + "targetType": { + "type": "string", + "description": "Map to ods:type in annotation model", + "$comment": "idx = 501" + }, + "annotationHash": { + "type": "string", + "description": "MD5 hash based on target, motivation, and creator. Internally generated by DiSSCo Annotation Processing Service for machine annotations", + "$comment": "idx = 502" + } + }, + "additionalProperties": false, + "required": [ + "fdoProfile", + "fdoRecordLicenseId", + "fdoRecordLicenseName", + "digitalObjectType", + "digitalObjectName", + "pid", + "pidIssuer", + "pidIssuerName", + "pidRecordIssueDate", + "pidRecordIssueNumber", + "10320/loc", + "pidStatus", + "targetPid", + "targetType" + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping-request.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping-request.json new file mode 100644 index 0000000..8bfe67a --- /dev/null +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping-request.json @@ -0,0 +1,10 @@ +{ + "data": { + "type": "https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e", + "attributes": { + "pidIssuer": "https://ror.org/04wxnsj81", + "issuedForAgent": "https://ror.org/0566bfb96", + "sourceDataStandard": "dwc" + } + } +} \ No newline at end of file diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json new file mode 100644 index 0000000..aab0def --- /dev/null +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json @@ -0,0 +1,13 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", + "digitalObjectName": "Mapping", + "pid": "https://hdl.handle.net/TEST/QDD-Y07-QK6", + "pidRecordIssueDate": "2023-09-01T13:05:08.375Z", + "pidRecordIssueNumber": 1, + "pidStatus": "ACTIVE", + "sourceDataStandard": "dwc" +} \ No newline at end of file diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json new file mode 100644 index 0000000..042c000 --- /dev/null +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json @@ -0,0 +1,19 @@ +{ + "10320/loc": "", + "fdoProfile": "https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e", + "fdoRecordLicense": "https://creativecommons.org/publicdomain/zero/1.0/", + "digitalObjectType": "https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e", + "digitalObjectName": "RDA-Collection-API", + "pid": "https://hdl.handle.net/TEST/QDD-Y07-QK6", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "issuedForAgent": "https://ror.org/0566bfb96", + "issuedForAgentName": "Naturalis Biodiversity Center", + "pidRecordIssueDate": "2023-09-01T13:05:08.375Z", + "pidRecordIssueNumber": 1, + "structuralType": "digital", + "pidStatus": "TOMBSTONE", + "sourceDataStandard": "dwc", + "tombstoneText": "Resource deleted by admin", + "tombstoneDate": "2024-11-17T11:57:02.933Z" +} \ No newline at end of file diff --git a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request-attributes.json b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request-attributes.json new file mode 100644 index 0000000..c8a6db7 --- /dev/null +++ b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request-attributes.json @@ -0,0 +1,31 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/data-mapping/1.0.0/data-mapping-request-attributes.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for a generic Handle", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "pidIssuer": { + "type": "string", + "description": "In case of a DOI this is a PID for the DOI Registration Agency", + "examples": [ + "https://hdl.handle.net/10.17183" + ] + }, + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional URLs to be appended to the 10320/loc field" + }, + "sourceDataStandard": { + "type": "string", + "description": "Indicates standard source data adheres to, such as \"dwc\" or \"abcd\"", + "$comment": "idx = 700" + } + }, + "required": [ + "pidIssuer" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request.json b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request.json new file mode 100644 index 0000000..d2aacc1 --- /dev/null +++ b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request.json @@ -0,0 +1,31 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/data-mapping/1.0.0/data-mapping-request.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "Schema for making data-mapping creation requests to the DiSSCo Handle Manager", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "const": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", + "description": "PID of the Digital Object Type" + }, + "attributes": { + "type": "object", + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/data-mapping/0.1.0/data-mapping-request-attributes.json" + } + }, + "required": [ + "type", + "attributes" + ], + "additionalProperties": false + } + }, + "required": [ + "data" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping.json b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping.json new file mode 100644 index 0000000..0684115 --- /dev/null +++ b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping.json @@ -0,0 +1,152 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/data-mapping/1.0.0/data-mapping-fdo-profile.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "Kernel from which all DiSSCo FAIR Digital Object profiles are derived", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "fdoProfile": { + "description": "PID to a machine readable description of the attributes in the FDO record", + "const": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", + "$comment": "idx = 1" + }, + "fdoRecordLicenseId": { + "const": "https://spdx.org/licenses/CC0-1.0.json", + "description": "The licence for the FDO record, required to be always public domain", + "$comment": "idx = 2" + }, + "fdoRecordLicenseName": { + "const": "CC0 1.0 Universal", + "description": "CC0 1.0 Universal", + "$comment": "idx = 3" + }, + "digitalObjectType": { + "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", + "const": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", + "$comment": "idx = 4" + }, + "digitalObjectName": { + "type": "string", + "description": "Name of the object type for humans", + "example": "digital specimen type 1", + "$comment": "idx = 5" + }, + "pid": { + "type": "string", + "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", + "example": "https://doi.org/10.22/GEE-W3J-HL2", + "$comment": "idx = 6" + }, + "pidIssuer": { + "type": "string", + "description": "In case of a DOI, this is a PID for the DOI Registration Agency", + "example": "https://hdl.handle.net/10.17183", + "$comment": "idx = 7" + }, + "pidIssuerName": { + "type": "string", + "description": "Human-readable name of the PID issuer", + "example": "DataCite", + "$comment": "idx = 8" + }, + "pidRecordIssueDate": { + "type": "string", + "description": "Date the PID record was created", + "example": "2023-10-16T12:08:37.494Z", + "$comment": "idx = 9" + }, + "pidRecordIssueNumber": { + "type": "integer", + "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", + "example": "2", + "$comment": "idx = 10" + }, + "pidStatus": { + "enum": [ + "TOMBSTONE", + "DRAFT", + "ACTIVE" + ], + "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", + "$comment": "idx = 11" + }, + "HS_ADMIN": { + "type": "string", + "description": "Administrative information for PID profile", + "$comment": "idx = 100" + }, + "10320/loc": { + "type": "string", + "description": "XML document describing location(s) of the resource", + "$comment": "idx = 101", + "example": "" + }, + "tombstoneText": { + "type": "string", + "description": "A reason why the Digital Object was tombstoned", + "examples": [ + "This is a duplicate of XXX", + "This object was made by mistake" + ], + "$comment": "idx = 30" + }, + "hasRelatedPid": { + "type": "array", + "description": "The PIDs of the object the tombstoned object is related to", + "items": { + "type": "object", + "items": { + "type": "object", + "properties": { + "pid": { + "type": "string", + "description": "The PID of the related object", + "examples": [ + "https://doi.org/10.1234/abcd" + ] + }, + "relationshipType": { + "type": "string", + "description": "The type of relationship between the tombstoned object and the related object", + "examples": [ + "isObsoletedBy", + "isIdenticalTo" + ] + } + }, + "additionalProperties": false + }, + "$comment": "idx = 31" + } + }, + "tombstoneDate": { + "type": "string", + "description": "Timestamp the Digital Object was tombstoned and no longer active.", + "format": "date-time", + "examples": [ + "2021-06-01T12:00:000Z" + ], + "$comment": "idx = 32" + }, + "sourceDataStandard": { + "type": "string", + "description": "Indicates standard source data adheres to, such as \"dwc\" or \"abcd\"", + "$comment": "idx=700" + } + }, + "additionalProperties": false, + "required": [ + "fdoProfile", + "fdoRecordLicenseId", + "fdoRecordLicenseName", + "digitalObjectType", + "digitalObjectName", + "pid", + "pidIssuer", + "pidIssuerName", + "pidRecordIssueDate", + "pidRecordIssueNumber", + "10320/loc", + "pidStatus" + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel-request-attributes.json b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel-request-attributes.json new file mode 100644 index 0000000..0e94913 --- /dev/null +++ b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel-request-attributes.json @@ -0,0 +1,29 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/doi-kernel/1.0.0/doi-request-attributes.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for a generic DOI", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional URLs to be appended to the 10320/loc field" + }, + "issuedForAgent": { + "type": "string", + "description": "In the case of a digital specimen, this is a PID for DiSSCo as the agent responsible for serving the digital specimen object", + "example": "https://hdl.handle.net/10.22" + }, + "referentName": { + "type": "string", + "description": "In the case of a digital specimen this is the name for the object in the collection, which can be anything from a taxon name to a collection number.", + "example": "Mus musculus type 1" + } + }, + "required": [ + "issuedForAgent" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel.json b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel.json new file mode 100644 index 0000000..2b25ae1 --- /dev/null +++ b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel.json @@ -0,0 +1,174 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/doi-kernel/1.0.0/doi-kernel.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Kernel from which all DiSSCo DOI FDO profiles are derived", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "fdoProfile": { + "const": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", + "description": "PID to a machine readable description of the attributes in the FDO record", + "$comment": "idx = 1" + }, + "fdoRecordLicense": { + "const": "https://creativecommons.org/publicdomain/zero/1.0/", + "description": "The licence for the FDO record, required to be always public domain", + "$comment": "idx = 2" + }, + "digitalObjectType": { + "const": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", + "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", + "$comment": "idx = 3" + }, + "digitalObjectName": { + "type": "string", + "description": "Name of the object type for humans", + "example": "digital specimen type 1", + "$comment": "idx = 4" + }, + "pid": { + "type": "string", + "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", + "example": "https://doi.org/10.22/GEE-W3J-HL2", + "$comment": "idx = 5" + }, + "pidIssuer": { + "type": "string", + "description": "In case of a DOI this is a PID for the DOI Registration Agency", + "example": "https://hdl.handle.net/10.17183", + "$comment": "idx = 6" + }, + "pidIssuerName": { + "type": "string", + "description": "Human-readable name of the PID issuer", + "example": "DataCite", + "$comment": "idx = 7" + }, + "pidRecordIssueDate": { + "type": "string", + "description": "Date the PID record was created", + "example": "2023-10-16T12:08:37.494Z", + "$comment": "idx = 10" + }, + "pidRecordIssueNumber": { + "type": "integer", + "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", + "example": "2", + "$comment": "idx = 11" + }, + "structuralType": { + "enum": [ + "digital", + "physical", + "performance", + "abstraction" + ], + "description": "Nature of the digital object, compatible with DOI schema requirements. The nature of a digital specimen object is always \"digital\". Other digital objects (outside DiSSCo) could be of physical, performance or abstraction nature.", + "$comment": "idx = 12" + }, + "pidStatus": { + "enum": [ + "DRAFT", + "ACTIVE", + "FAILED", + "TOMBSTONE" + ], + "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", + "$comment": "idx = 13" + }, + "HS_ADMIN": { + "type": "string", + "description": "Administrative information for PID profile", + "$comment": "idx = 100" + }, + "tombstoneText": { + "type": "string", + "description": "A reason why the Digital Object was tombstoned", + "examples": [ + "This is a duplicate of XXX", + "This object was made by mistake" + ], + "$comment": "idx = 30" + }, + "ods:hasRelatedPID": { + "type": "array", + "description": "The PIDs of the object the tombstoned object is related to", + "items": { + "type": "object", + "items": { + "type": "object", + "properties": { + "ods:ID": { + "type": "string", + "description": "The PID of the related object", + "examples": [ + "https://doi.org/10.1234/abcd" + ] + }, + "ods:relationshipType": { + "type": "string", + "description": "The type of relationship between the tombstoned object and the related object", + "examples": [ + "ods:relatedTo", + "ods:isDuplicateOf" + ] + } + }, + "additionalProperties": false + }, + "$comment": "idx = 31" + } + }, + "tombstoneDate": { + "type": "string", + "description": "Timestamp the Digital Object was tombstoned and no longer active.", + "format": "date-time", + "examples": [ + "2021-06-01T12:00:000Z" + ], + "$comment": "idx = 32" + }, + "10320/loc": { + "type": "string", + "description": "XML document describing location(s) of the resource", + "$comment": "idx = 101", + "example": "" + }, + "issuedForAgent": { + "type": "string", + "description": "In the case of a digital specimen, this is a PID for DiSSCo as the agent responsible for serving the digital specimen object", + "example": "https://hdl.handle.net/10.22", + "$comment": "idx = 40" + }, + "issuedForAgentName": { + "type": "string", + "description": "Human-readable agent name", + "example": "DiSSCo", + "$comment": "idx = 41" + }, + "referentName": { + "type": "string", + "description": "In the case of a digital specimen this is the name for the object in the collection, which can be anything from a taxon name to a collection number.", + "example": "Mus musculus type 1", + "$comment": "idx = 42" + } + }, + "additionalProperties": false, + "required": [ + "fdoProfile", + "fdoRecordLicense", + "digitalObjectType", + "digitalObjectName", + "pid", + "pidIssuer", + "pidIssuerName", + "issuedForAgent", + "pidRecordIssueDate", + "pidRecordIssueNumber", + "structuralType", + "pidStatus", + "referentType", + "referentDoiName", + "10320/loc", + "referentName" + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-request.json b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-request.json new file mode 100644 index 0000000..bed5845 --- /dev/null +++ b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-request.json @@ -0,0 +1,30 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/doi-kernel/1.0.0/doi-request.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Kernel from which all DiSSCo DOI FDO profiles are derived", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "const": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", + "description": "PID of the Digital Object Type" + }, + "attributes": { + "type": "object", + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/doi-kernel/1.0.0/doi-request-attributes.json" + } + }, + "required": [ + "type", + "attributes" + ], + "additionalProperties": false + } + }, + "required": [ + "data" + ], + "additionalProperties": false +} diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle-request.json b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle-request.json new file mode 100644 index 0000000..0a560f7 --- /dev/null +++ b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle-request.json @@ -0,0 +1,10 @@ +{ + "data": { + "type": "https:/doi.org/21.T11148/532ce6796e2828dd2be6", + "attributes": { + "locations": [ + "https://coldb.mnhn.fr/catalognumber/mnhn/ec/ec23946" + ] + } + } +} \ No newline at end of file diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json new file mode 100644 index 0000000..e55c429 --- /dev/null +++ b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json @@ -0,0 +1,14 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/532ce6796e2828dd2be6", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/532ce6796e2828dd2be6", + "digitalObjectName": "Handle Kernel", + "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", + "pidRecordIssueNumber": 1, + "pidStatus": "ACTIVE" +} \ No newline at end of file diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json new file mode 100644 index 0000000..9282406 --- /dev/null +++ b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json @@ -0,0 +1,16 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/532ce6796e2828dd2be6", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/532ce6796e2828dd2be6", + "digitalObjectName": "Handle Kernel", + "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", + "pidRecordIssueNumber": 1, + "pidStatus": "TOMBSTONE", + "tombstoneText": "Resource deleted by admin", + "tombstoneDate": "2024-11-17T11:57:02.933Z" +} \ No newline at end of file diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-kernel.json b/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-kernel.json new file mode 100644 index 0000000..c0d8cb9 --- /dev/null +++ b/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-kernel.json @@ -0,0 +1,147 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/handle-kernel/1.0.0/handle-kernel-fdo-profile.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "Kernel from which all DiSSCo FAIR Digital Object profiles are derived", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "fdoProfile": { + "description": "PID to a machine readable description of the attributes in the FDO record", + "const": "https://doi.org/21.T11148/532ce6796e2828dd2be6", + "$comment": "idx = 1" + }, + "fdoRecordLicenseId": { + "const": "https://spdx.org/licenses/CC0-1.0.json", + "description": "The licence for the FDO record, required to be always public domain", + "$comment": "idx = 2" + }, + "fdoRecordLicenseName": { + "const": "CC0 1.0 Universal", + "description": "CC0 1.0 Universal", + "$comment": "idx = 3" + }, + "digitalObjectType": { + "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", + "const": "https://doi.org/21.T11148/532ce6796e2828dd2be6", + "$comment": "idx = 4" + }, + "digitalObjectName": { + "type": "string", + "description": "Name of the object type for humans", + "example": "digital specimen type 1", + "$comment": "idx = 5" + }, + "pid": { + "type": "string", + "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", + "example": "https://doi.org/10.22/GEE-W3J-HL2", + "$comment": "idx = 6" + }, + "pidIssuer": { + "type": "string", + "description": "In case of a DOI, this is a PID for the DOI Registration Agency", + "example": "https://hdl.handle.net/10.17183", + "$comment": "idx = 7" + }, + "pidIssuerName": { + "type": "string", + "description": "Human-readable name of the PID issuer", + "example": "DataCite", + "$comment": "idx = 8" + }, + "pidRecordIssueDate": { + "type": "string", + "description": "Date the PID record was created", + "example": "2023-10-16T12:08:37.494Z", + "$comment": "idx = 9" + }, + "pidRecordIssueNumber": { + "type": "integer", + "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", + "example": "2", + "$comment": "idx = 10" + }, + "pidStatus": { + "enum": [ + "TOMBSTONE", + "DRAFT", + "ACTIVE" + ], + "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", + "$comment": "idx = 11" + }, + "HS_ADMIN": { + "type": "string", + "description": "Administrative information for PID profile", + "$comment": "idx = 100" + }, + "10320/loc": { + "type": "string", + "description": "XML document describing location(s) of the resource", + "$comment": "idx = 101", + "example": "" + }, + "tombstoneText": { + "type": "string", + "description": "A reason why the Digital Object was tombstoned", + "examples": [ + "This is a duplicate of XXX", + "This object was made by mistake" + ], + "$comment": "idx = 30" + }, + "hasRelatedPid": { + "type": "array", + "description": "The PIDs of the object the tombstoned object is related to", + "items": { + "type": "object", + "items": { + "type": "object", + "properties": { + "pid": { + "type": "string", + "description": "The PID of the related object", + "examples": [ + "https://doi.org/10.1234/abcd" + ] + }, + "relationshipType": { + "type": "string", + "description": "The type of relationship between the tombstoned object and the related object", + "examples": [ + "isObsoletedBy", + "isIdenticalTo" + ] + } + }, + "additionalProperties": false + }, + "$comment": "idx = 31" + } + }, + "tombstoneDate": { + "type": "string", + "description": "Timestamp the Digital Object was tombstoned and no longer active.", + "format": "date-time", + "examples": [ + "2021-06-01T12:00:000Z" + ], + "$comment": "idx = 32" + } + }, + "additionalProperties": false, + "required": [ + "fdoProfile", + "fdoRecordLicenseId", + "fdoRecordLicenseName", + "digitalObjectType", + "digitalObjectName", + "pid", + "pidIssuer", + "pidIssuerName", + "pidRecordIssueDate", + "pidRecordIssueNumber", + "10320/loc", + "pidStatus" + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request-attributes.json b/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request-attributes.json new file mode 100644 index 0000000..9917999 --- /dev/null +++ b/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request-attributes.json @@ -0,0 +1,23 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/machine-annotation-service/1.0.0/machine-annotation-attributes.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for a MAS", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional URLs to be appended to the 10320/loc field" + }, + "machineAnnotationServiceName": { + "type": "string", + "description": "Name of Machine Annotation Service" + } + }, + "required": [ + "machineAnnotationServiceName" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request.json b/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request.json new file mode 100644 index 0000000..84e192f --- /dev/null +++ b/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request.json @@ -0,0 +1,31 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/handle-kernel/1.0.0/handle-request.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "Schema for making handle-creation requests to the DiSSCo Handle Manager", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "const": "https://doi.org/21.T11148/532ce6796e2828dd2be6", + "description": "PID of the Digital Object Type" + }, + "attributes": { + "type": "object", + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/handle-kernel/0.1.0/handle-request-attributes.json" + } + }, + "required": [ + "type", + "attributes" + ], + "additionalProperties": false + } + }, + "required": [ + "data" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/mas/0.1.0/examples/example-mas-request.json b/data-model/fdo-profile/machine-annotation-service/0.1.0/examples/example-mas-request.json similarity index 100% rename from data-model/fdo-profile/mas/0.1.0/examples/example-mas-request.json rename to data-model/fdo-profile/machine-annotation-service/0.1.0/examples/example-mas-request.json diff --git a/data-model/fdo-profile/mas/0.1.0/examples/example-mas.json b/data-model/fdo-profile/machine-annotation-service/0.1.0/examples/example-mas.json similarity index 100% rename from data-model/fdo-profile/mas/0.1.0/examples/example-mas.json rename to data-model/fdo-profile/machine-annotation-service/0.1.0/examples/example-mas.json diff --git a/data-model/fdo-profile/mas/0.1.0/examples/example-tombstoned-mas.json b/data-model/fdo-profile/machine-annotation-service/0.1.0/examples/example-tombstoned-mas.json similarity index 100% rename from data-model/fdo-profile/mas/0.1.0/examples/example-tombstoned-mas.json rename to data-model/fdo-profile/machine-annotation-service/0.1.0/examples/example-tombstoned-mas.json diff --git a/data-model/fdo-profile/mas/0.1.0/schema/mas-request-attributes.json b/data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas-request-attributes.json similarity index 92% rename from data-model/fdo-profile/mas/0.1.0/schema/mas-request-attributes.json rename to data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas-request-attributes.json index e906f2d..86bb547 100644 --- a/data-model/fdo-profile/mas/0.1.0/schema/mas-request-attributes.json +++ b/data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas-request-attributes.json @@ -1,5 +1,5 @@ { - "$id": "https://schemas.dissco.tech/schemas/fdo-profile/mas/0.1.0/mas-request-attributes.json", + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/machine-annotation-service/0.1.0/mas-request-attributes.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for a MAS", "$comment": "FDO Profile Version 0.1.0", diff --git a/data-model/fdo-profile/mas/0.1.0/schema/mas-request.json b/data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas-request.json similarity index 87% rename from data-model/fdo-profile/mas/0.1.0/schema/mas-request.json rename to data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas-request.json index b78e836..2097e32 100644 --- a/data-model/fdo-profile/mas/0.1.0/schema/mas-request.json +++ b/data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas-request.json @@ -1,5 +1,5 @@ { - "$id": "https://schemas.dissco.tech/schemas/fdo-profile/mas/0.1.0/mas-request.json", + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/machine-annotation-service/0.1.0/mas-request.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "FDO Profile requests to PID API for Machine Annotation Services", "$comment": "FDO Profile Version 0.1.0", diff --git a/data-model/fdo-profile/mas/0.1.0/schema/mas.json b/data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas.json similarity index 98% rename from data-model/fdo-profile/mas/0.1.0/schema/mas.json rename to data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas.json index 1126348..f1c0d13 100644 --- a/data-model/fdo-profile/mas/0.1.0/schema/mas.json +++ b/data-model/fdo-profile/machine-annotation-service/0.1.0/schema/mas.json @@ -1,5 +1,5 @@ { - "$id": "https://schemas.dissco.tech/schemas/fdo-profile/mas/0.1.0/mas.json", + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/machine-annotation-service/0.1.0/mas.json", "$schema": "https://json-schema.org/draft/2020-12/schema", "description": "FDO Profile for Machine Annotation Services", "$comment": "FDO Profile Version 0.1.0", diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-fdo-profile.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-fdo-profile.json new file mode 100644 index 0000000..7e4cc88 --- /dev/null +++ b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-fdo-profile.json @@ -0,0 +1,15 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/22e71a0015cbcfba8ffa", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/22e71a0015cbcfba8ffa", + "digitalObjectName": "Machine Annotation Service", + "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", + "pidRecordIssueNumber": 1, + "pidStatus": "ACTIVE", + "machineAnnotationServiceName": "GBIF Entity Linker" +} \ No newline at end of file diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-request.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-request.json new file mode 100644 index 0000000..044f21a --- /dev/null +++ b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-request.json @@ -0,0 +1,11 @@ +{ + "data": { + "type": "https://doi.org/21.T11148/22e71a0015cbcfba8ffa", + "attributes": { + "locations": [ + "https://coldb.mnhn.fr/catalognumber/mnhn/ec/ec23946" + ], + "machineAnnotationServiceName": "GBIF Entity Linker" + } + } +} \ No newline at end of file diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-fdo-profile.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-fdo-profile.json new file mode 100644 index 0000000..197e252 --- /dev/null +++ b/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-fdo-profile.json @@ -0,0 +1,153 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/machine-annotation-service/1.0.0/machine-annotation-service-fdo-profile.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "FDO Profile for Machine Annotation Service", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "fdoProfile": { + "description": "PID to a machine readable description of the attributes in the FDO record", + "const": "https://doi.org/21.T11148/22e71a0015cbcfba8ffa", + "$comment": "idx = 1" + }, + "fdoRecordLicenseId": { + "const": "https://spdx.org/licenses/CC0-1.0.json", + "description": "The licence for the FDO record, required to be always public domain", + "$comment": "idx = 2" + }, + "fdoRecordLicenseName": { + "const": "CC0 1.0 Universal", + "description": "CC0 1.0 Universal", + "$comment": "idx = 3" + }, + "digitalObjectType": { + "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", + "const": "https://doi.org/21.T11148/22e71a0015cbcfba8ffa", + "$comment": "idx = 4" + }, + "digitalObjectName": { + "type": "string", + "description": "Name of the object type for humans", + "example": "digital specimen type 1", + "$comment": "idx = 5" + }, + "pid": { + "type": "string", + "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", + "example": "https://doi.org/10.22/GEE-W3J-HL2", + "$comment": "idx = 6" + }, + "pidIssuer": { + "type": "string", + "description": "In case of a DOI, this is a PID for the DOI Registration Agency", + "example": "https://hdl.handle.net/10.17183", + "$comment": "idx = 7" + }, + "pidIssuerName": { + "type": "string", + "description": "Human-readable name of the PID issuer", + "example": "DataCite", + "$comment": "idx = 8" + }, + "pidRecordIssueDate": { + "type": "string", + "description": "Date the PID record was created", + "example": "2023-10-16T12:08:37.494Z", + "$comment": "idx = 9" + }, + "pidRecordIssueNumber": { + "type": "integer", + "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", + "example": "2", + "$comment": "idx = 10" + }, + "pidStatus": { + "enum": [ + "TOMBSTONE", + "DRAFT", + "ACTIVE" + ], + "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", + "$comment": "idx = 11" + }, + "HS_ADMIN": { + "type": "string", + "description": "Administrative information for PID profile", + "$comment": "idx = 100" + }, + "10320/loc": { + "type": "string", + "description": "XML document describing location(s) of the resource", + "$comment": "idx = 101", + "example": "" + }, + "tombstoneText": { + "type": "string", + "description": "A reason why the Digital Object was tombstoned", + "examples": [ + "This is a duplicate of XXX", + "This object was made by mistake" + ], + "$comment": "idx = 30" + }, + "hasRelatedPid": { + "type": "array", + "description": "The PIDs of the object the tombstoned object is related to", + "items": { + "type": "object", + "items": { + "type": "object", + "properties": { + "pid": { + "type": "string", + "description": "The PID of the related object", + "examples": [ + "https://doi.org/10.1234/abcd" + ] + }, + "relationshipType": { + "type": "string", + "description": "The type of relationship between the tombstoned object and the related object", + "examples": [ + "isObsoletedBy", + "isIdenticalTo" + ] + } + }, + "additionalProperties": false + }, + "$comment": "idx = 31" + } + }, + "tombstoneDate": { + "type": "string", + "description": "Timestamp the Digital Object was tombstoned and no longer active.", + "format": "date-time", + "examples": [ + "2021-06-01T12:00:000Z" + ], + "$comment": "idx = 32" + }, + "machineAnnotationServiceName": { + "type": "string", + "description": "Name of Machine Annotation Service", + "$comment": "idx = 604" + } + }, + "additionalProperties": false, + "required": [ + "fdoProfile", + "fdoRecordLicenseId", + "fdoRecordLicenseName", + "digitalObjectType", + "digitalObjectName", + "pid", + "pidIssuer", + "pidIssuerName", + "pidRecordIssueDate", + "pidRecordIssueNumber", + "10320/loc", + "pidStatus", + "machineAnnotationServiceName" + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-request-attributes.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-request-attributes.json new file mode 100644 index 0000000..2c8cbcd --- /dev/null +++ b/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-request-attributes.json @@ -0,0 +1,23 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/handle-kernel/1.0.0/handle-request-attributes.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for a generic Handle", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional URLs to be appended to the 10320/loc field" + }, + "machineAnnotationServiceName": { + "type": "string", + "description" : "Name of MAS" + } + }, + "required": [ + "machineAnnotationServiceName" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-request.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-request.json new file mode 100644 index 0000000..59380fd --- /dev/null +++ b/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-request.json @@ -0,0 +1,31 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/machine-annotation-service/1.0.0/machine-annotation-service-request.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "Schema for making machine annotation service creation requests to the DiSSCo Handle Manager", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "const": "https://doi.org/21.T11148/22e71a0015cbcfba8ffa", + "description": "PID of the Digital Object Type" + }, + "attributes": { + "type": "object", + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/machine-annotation-service/1.0.0/machine-annotation-service-attributes.json" + } + }, + "required": [ + "type", + "attributes" + ], + "additionalProperties": false + } + }, + "required": [ + "data" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-fdo-profile.json b/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-fdo-profile.json new file mode 100644 index 0000000..d1b9bee --- /dev/null +++ b/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-fdo-profile.json @@ -0,0 +1,15 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/417a4f472f60f7974c12", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/417a4f472f60f7974c12", + "digitalObjectName": "Source System", + "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", + "pidRecordIssueNumber": 1, + "pidStatus": "ACTIVE", + "sourceSystemName": "Botanical Collection of NHM" +} \ No newline at end of file diff --git a/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-request.json b/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-request.json new file mode 100644 index 0000000..8704617 --- /dev/null +++ b/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-request.json @@ -0,0 +1,11 @@ +{ + "data": { + "type": "https://doi.org/21.T11148/417a4f472f60f7974c12", + "attributes": { + "locations": [ + "https://coldb.mnhn.fr/catalognumber/mnhn/ec/ec23946" + ], + "sourceSystemName": "Botanical Collection of NHM" + } + } +} \ No newline at end of file diff --git a/data-model/fdo-profile/source-system/1.0.0/schema/source-system-fdo-profile.json b/data-model/fdo-profile/source-system/1.0.0/schema/source-system-fdo-profile.json new file mode 100644 index 0000000..d52d427 --- /dev/null +++ b/data-model/fdo-profile/source-system/1.0.0/schema/source-system-fdo-profile.json @@ -0,0 +1,153 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/source-system/1.0.0/source-system-fdo-profile.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "FDO Profile for source system", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "fdoProfile": { + "description": "PID to a machine readable description of the attributes in the FDO record", + "const": "https://doi.org/21.T11148/417a4f472f60f7974c12", + "$comment": "idx = 1" + }, + "fdoRecordLicenseId": { + "const": "https://spdx.org/licenses/CC0-1.0.json", + "description": "The licence for the FDO record, required to be always public domain", + "$comment": "idx = 2" + }, + "fdoRecordLicenseName": { + "const": "CC0 1.0 Universal", + "description": "CC0 1.0 Universal", + "$comment": "idx = 3" + }, + "digitalObjectType": { + "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", + "const": "https://doi.org/21.T11148/417a4f472f60f7974c12", + "$comment": "idx = 4" + }, + "digitalObjectName": { + "type": "string", + "description": "Name of the object type for humans", + "example": "digital specimen type 1", + "$comment": "idx = 5" + }, + "pid": { + "type": "string", + "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", + "example": "https://doi.org/10.22/GEE-W3J-HL2", + "$comment": "idx = 6" + }, + "pidIssuer": { + "type": "string", + "description": "In case of a DOI, this is a PID for the DOI Registration Agency", + "example": "https://hdl.handle.net/10.17183", + "$comment": "idx = 7" + }, + "pidIssuerName": { + "type": "string", + "description": "Human-readable name of the PID issuer", + "example": "DataCite", + "$comment": "idx = 8" + }, + "pidRecordIssueDate": { + "type": "string", + "description": "Date the PID record was created", + "example": "2023-10-16T12:08:37.494Z", + "$comment": "idx = 9" + }, + "pidRecordIssueNumber": { + "type": "integer", + "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", + "example": "2", + "$comment": "idx = 10" + }, + "pidStatus": { + "enum": [ + "TOMBSTONE", + "DRAFT", + "ACTIVE" + ], + "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", + "$comment": "idx = 11" + }, + "HS_ADMIN": { + "type": "string", + "description": "Administrative information for PID profile", + "$comment": "idx = 100" + }, + "10320/loc": { + "type": "string", + "description": "XML document describing location(s) of the resource", + "$comment": "idx = 101", + "example": "" + }, + "tombstoneText": { + "type": "string", + "description": "A reason why the Digital Object was tombstoned", + "examples": [ + "This is a duplicate of XXX", + "This object was made by mistake" + ], + "$comment": "idx = 30" + }, + "hasRelatedPid": { + "type": "array", + "description": "The PIDs of the object the tombstoned object is related to", + "items": { + "type": "object", + "items": { + "type": "object", + "properties": { + "pid": { + "type": "string", + "description": "The PID of the related object", + "examples": [ + "https://doi.org/10.1234/abcd" + ] + }, + "relationshipType": { + "type": "string", + "description": "The type of relationship between the tombstoned object and the related object", + "examples": [ + "isObsoletedBy", + "isIdenticalTo" + ] + } + }, + "additionalProperties": false + }, + "$comment": "idx = 31" + } + }, + "tombstoneDate": { + "type": "string", + "description": "Timestamp the Digital Object was tombstoned and no longer active.", + "format": "date-time", + "examples": [ + "2021-06-01T12:00:000Z" + ], + "$comment": "idx = 32" + }, + "sourceSystemName": { + "type": "string", + "description": "Name of the source system", + "$comment": "idx=600" + } + }, + "additionalProperties": false, + "required": [ + "fdoProfile", + "fdoRecordLicenseId", + "fdoRecordLicenseName", + "digitalObjectType", + "digitalObjectName", + "pid", + "pidIssuer", + "pidIssuerName", + "pidRecordIssueDate", + "pidRecordIssueNumber", + "10320/loc", + "pidStatus", + "sourceSystemName" + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/source-system/1.0.0/schema/source-system-request-attributes.json b/data-model/fdo-profile/source-system/1.0.0/schema/source-system-request-attributes.json new file mode 100644 index 0000000..5a57963 --- /dev/null +++ b/data-model/fdo-profile/source-system/1.0.0/schema/source-system-request-attributes.json @@ -0,0 +1,23 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/source-system/1.0.0/source-system-request-attributes.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for a source system", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional URLs to be appended to the 10320/loc field" + }, + "sourceSystemName": { + "type": "string", + "description" : "Name of Source System" + } + }, + "required": [ + "sourceSystemName" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/source-system/1.0.0/schema/source-system-request.json b/data-model/fdo-profile/source-system/1.0.0/schema/source-system-request.json new file mode 100644 index 0000000..daafb7f --- /dev/null +++ b/data-model/fdo-profile/source-system/1.0.0/schema/source-system-request.json @@ -0,0 +1,31 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/source-system/1.0.0/source-system-request.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "description": "Schema for making source system creation requests to the DiSSCo Handle Manager", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "const": "https://doi.org/21.T11148/417a4f472f60f7974c12", + "description": "PID of the Digital Object Type" + }, + "attributes": { + "type": "object", + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/source-system/1.0.0/source-system-request-attributes.json" + } + }, + "required": [ + "type", + "attributes" + ], + "additionalProperties": false + } + }, + "required": [ + "data" + ], + "additionalProperties": false +} \ No newline at end of file From 099024ad421cb9e9456de00f62fd023ca7d4e70f Mon Sep 17 00:00:00 2001 From: southeo Date: Tue, 3 Sep 2024 13:08:02 +0200 Subject: [PATCH 2/8] 1.0 fdo profile --- data-model/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-model/Dockerfile b/data-model/Dockerfile index 3788ea1..f123688 100644 --- a/data-model/Dockerfile +++ b/data-model/Dockerfile @@ -23,13 +23,13 @@ COPY fdo-profile/machine-annotation-service/1.0.0/schema schema-root/schemas/fdo # Latest FDO Profile schemas COPY fdo-profile/annotation/1.0.0/schema schema-root/schemas/fdo-profile/annotation/latest -COPY fdo-profile/digital-specimen/1.0.0/schema/ schema-root/schemas/fdo-profile/digital-specimen/latest COPY fdo-profile/doi-kernel/1.0.0/schema schema-root/schemas/fdo-profile/doi-kernel/latest COPY fdo-profile/handle-kernel/1.0.0/schema schema-root/schemas/fdo-profile/handle-kernel/latest COPY fdo-profile/data-mapping/1.0.0/schema schema-root/schemas/fdo-profile/data-mapping/latest COPY fdo-profile/machine-annotation-service/1.0.0/schema schema-root/schemas/fdo-profile/mas/latest COPY fdo-profile/source-system/1.0.0/schema schema-root/schemas/fdo-profile/source-system/latest +COPY fdo-profile/digital-specimen/0.1.0/schema/ schema-root/schemas/fdo-profile/digital-specimen/latest COPY fdo-profile/tettris-service/0.1.0/schema schema-root/schemas/fdo-profile/tettris-service/latest COPY fdo-profile/digital-media/0.1.0/schema schema-root/schemas/fdo-profile/digital-media/latest COPY fdo-profile/organisation/0.1.0/schema schema-root/schemas/fdo-profile/organisation/latest From b60cd19f71758798eeede4eec5fd8813c3e297c5 Mon Sep 17 00:00:00 2001 From: southeo Date: Mon, 16 Sep 2024 15:51:14 +0200 Subject: [PATCH 3/8] add digital specimen/media 1.0.0 --- data-model/Dockerfile | 8 +- .../examples/example-annotation-request.json | 2 +- .../example-data-mapping-request.json | 4 +- .../1.0.0/examples/example-data-mapping.json | 2 +- .../example-tombstoned-data-mapping-fdo.json | 16 +- .../data-mapping-request-attributes.json | 9 +- .../1.0.0/schema/data-mapping-request.json | 2 +- .../1.0.0/schema/data-mapping.json | 5 +- .../example-digital-media-request.json | 15 + .../1.0.0/examples/example-digital-media.json | 24 ++ .../digital-media-request-attributes.json | 86 +++++ .../1.0.0/schema/digital-media-request.json | 30 ++ .../1.0.0/schema/digital-media.json | 239 +++++++++++++ .../example-digital-specimen-request.json | 18 + .../examples/example-digital-specimen.json | 28 ++ .../digital-specimen-request-attributes.json | 183 ++++++++++ .../schema/digital-specimen-request.json | 30 ++ .../1.0.0/schema/digital-specimen.json | 331 ++++++++++++++++++ .../1.0.0/examples/example-doi-kernel.json | 17 + .../1.0.0/examples/example-doi-request.json | 8 + .../schema/doi-kernel-request-attributes.json | 8 - .../doi-kernel/1.0.0/schema/doi-kernel.json | 50 ++- .../examples/example-tombstoned-handle.json | 6 + .../schema/handle-request-attributes.json | 7 - 24 files changed, 1055 insertions(+), 73 deletions(-) create mode 100644 data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media-request.json create mode 100644 data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json create mode 100644 data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json create mode 100644 data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request.json create mode 100644 data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json create mode 100644 data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen-request.json create mode 100644 data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json create mode 100644 data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request-attributes.json create mode 100644 data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request.json create mode 100644 data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json create mode 100644 data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json create mode 100644 data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-request.json diff --git a/data-model/Dockerfile b/data-model/Dockerfile index f123688..d0112f8 100644 --- a/data-model/Dockerfile +++ b/data-model/Dockerfile @@ -20,6 +20,10 @@ COPY fdo-profile/annotation/1.0.0/schema schema-root/schemas/fdo-profile/annotat COPY fdo-profile/handle-kernel/1.0.0/schema schema-root/schemas/fdo-profile/handle-kernel/1.0.0 COPY fdo-profile/data-mapping/1.0.0/schema schema-root/schemas/fdo-profile/data-mapping/1.0.0 COPY fdo-profile/machine-annotation-service/1.0.0/schema schema-root/schemas/fdo-profile/machine-annotation-service/1.0.0 +COPY fdo-profile/doi-kernel/1.0.0/schema schema-root/schemas/fdo-profile/doi-kernel/1.0.0 +COPY fdo-profile/source-system/1.0.0/schema schema-root/schemas/fdo-profile/source-system/1.0.0 +COPY fdo-profile/digital-media/1.0.0/schema schema-root/schemas/fdo-profile/digital-media/1.0.0 +COPY fdo-profile/digital-specimen/1.0.0/schema/ schema-root/schemas/fdo-profile/digital-specimen/1.0.0 # Latest FDO Profile schemas COPY fdo-profile/annotation/1.0.0/schema schema-root/schemas/fdo-profile/annotation/latest @@ -28,10 +32,10 @@ COPY fdo-profile/handle-kernel/1.0.0/schema schema-root/schemas/fdo-profile/hand COPY fdo-profile/data-mapping/1.0.0/schema schema-root/schemas/fdo-profile/data-mapping/latest COPY fdo-profile/machine-annotation-service/1.0.0/schema schema-root/schemas/fdo-profile/mas/latest COPY fdo-profile/source-system/1.0.0/schema schema-root/schemas/fdo-profile/source-system/latest +COPY fdo-profile/digital-media/1.0.0/schema schema-root/schemas/fdo-profile/digital-media/latest +COPY fdo-profile/digital-specimen/1.0.0/schema/ schema-root/schemas/fdo-profile/digital-specimen/latest -COPY fdo-profile/digital-specimen/0.1.0/schema/ schema-root/schemas/fdo-profile/digital-specimen/latest COPY fdo-profile/tettris-service/0.1.0/schema schema-root/schemas/fdo-profile/tettris-service/latest -COPY fdo-profile/digital-media/0.1.0/schema schema-root/schemas/fdo-profile/digital-media/latest COPY fdo-profile/organisation/0.1.0/schema schema-root/schemas/fdo-profile/organisation/latest COPY fdo-profile/tombstone/0.1.0/schema schema-root/schemas/fdo-profile/tombstone/latest COPY fdo-profile/virtual-collection/0.1.0/schema schema-root/schemas/fdo-profile/virtual-collection/latest diff --git a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json index 01809bb..13a6cdb 100644 --- a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json +++ b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json @@ -1,6 +1,6 @@ { "data": { - "type": "https:/doi.org/21.T11148/532ce6796e2828dd2be6", + "type": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f", "attributes": { "locations": [ "https://coldb.mnhn.fr/catalognumber/mnhn/ec/ec23946" diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping-request.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping-request.json index 8bfe67a..20a0961 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping-request.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping-request.json @@ -1,9 +1,7 @@ { "data": { - "type": "https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e", + "type": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", "attributes": { - "pidIssuer": "https://ror.org/04wxnsj81", - "issuedForAgent": "https://ror.org/0566bfb96", "sourceDataStandard": "dwc" } } diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json index aab0def..e84c5d1 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json @@ -1,7 +1,7 @@ { "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", - "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicense": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", "digitalObjectType": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", "digitalObjectName": "Mapping", diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json index 042c000..aac33f2 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json @@ -1,18 +1,14 @@ { "10320/loc": "", - "fdoProfile": "https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e", - "fdoRecordLicense": "https://creativecommons.org/publicdomain/zero/1.0/", - "digitalObjectType": "https://hdl.handle.net/21.T11148/ce794a6f4df42eb7e77e", - "digitalObjectName": "RDA-Collection-API", + "fdoProfile": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", + "digitalObjectName": "Mapping", "pid": "https://hdl.handle.net/TEST/QDD-Y07-QK6", - "pidIssuer": "https://ror.org/04wxnsj81", - "pidIssuerName": "DataCite", - "issuedForAgent": "https://ror.org/0566bfb96", - "issuedForAgentName": "Naturalis Biodiversity Center", "pidRecordIssueDate": "2023-09-01T13:05:08.375Z", "pidRecordIssueNumber": 1, - "structuralType": "digital", - "pidStatus": "TOMBSTONE", + "pidStatus": "ACTIVE", "sourceDataStandard": "dwc", "tombstoneText": "Resource deleted by admin", "tombstoneDate": "2024-11-17T11:57:02.933Z" diff --git a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request-attributes.json b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request-attributes.json index c8a6db7..68dcb11 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request-attributes.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request-attributes.json @@ -4,13 +4,6 @@ "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for a generic Handle", "$comment": "FDO Profile Version 1.0.0", "properties": { - "pidIssuer": { - "type": "string", - "description": "In case of a DOI this is a PID for the DOI Registration Agency", - "examples": [ - "https://hdl.handle.net/10.17183" - ] - }, "locations": { "type": "array", "items": { @@ -25,7 +18,7 @@ } }, "required": [ - "pidIssuer" + "sourceDataStandard" ], "additionalProperties": false } \ No newline at end of file diff --git a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request.json b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request.json index d2aacc1..5856d96 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping-request.json @@ -14,7 +14,7 @@ }, "attributes": { "type": "object", - "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/data-mapping/0.1.0/data-mapping-request-attributes.json" + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/data-mapping/1.0.0/data-mapping-request-attributes.json" } }, "required": [ diff --git a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping.json b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping.json index 0684115..01a9f54 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/schema/data-mapping.json @@ -142,11 +142,10 @@ "digitalObjectType", "digitalObjectName", "pid", - "pidIssuer", - "pidIssuerName", "pidRecordIssueDate", "pidRecordIssueNumber", "10320/loc", - "pidStatus" + "pidStatus", + "sourceDataStandard" ] } \ No newline at end of file diff --git a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media-request.json b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media-request.json new file mode 100644 index 0000000..33161fb --- /dev/null +++ b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media-request.json @@ -0,0 +1,15 @@ +{ + "data": { + "type": "https://doi.org/21.T11148/bbad8c4e101e8af01115", + "attributes": { + "referentName": "mediaphoto.mnhn.fr/media/1620403020391dDLZHWzqVzfk5Az3", + "mediaHost": "https://ror.org/0566bfb96", + "mediaHostName": "Naturalis Biodiversity Center", + "linkedDigitalObjectPid": "https://doi.org/10.22/GR0-WWV-3RT", + "linkedDigitalObjectType": "https://doi.org/21.T11148/d8de0819e144e4096645", + "primaryMediaId": "https://mediaphoto.mnhn.fr/media/1620403020391dDLZHWzqVzfk5Az3", + "dcterms:license": "https://spdx.org/licenses/CC0-1.0.json", + "dcterms:rightsHolder": "https://ror.org/0566bfb96" + } + } +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json new file mode 100644 index 0000000..44b7508 --- /dev/null +++ b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json @@ -0,0 +1,24 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/bbad8c4e101e8af01115", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/bbad8c4e101e8af01115", + "digitalObjectName": "DOI Kernel", + "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "issuedForAgent": "https://ror.org/0566bfb96", + "issuedForAgentName": "Naturalis Biodiversity Center", + "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", + "pidRecordIssueNumber": 1, + "pidStatus": "ACTIVE", + "referentName": "Some digital object", + "mediaHost": "https://ror.org/0566bfb96", + "mediaHostName": "Naturalis Biodiversity Center", + "linkedDigitalObjectPid": "https://doi.org/10.22/GR0-WWV-3RT", + "linkedDigitalObjectType": "https://doi.org/21.T11148/d8de0819e144e4096645", + "primaryMediaId": "https://mediaphoto.mnhn.fr/media/1620403020391dDLZHWzqVzfk5Az3", + "dcterms:license": "https://spdx.org/licenses/CC0-1.0.json", + "dcterms:rightsHolder": "https://ror.org/0566bfb96" +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json new file mode 100644 index 0000000..3e5162c --- /dev/null +++ b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json @@ -0,0 +1,86 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/digital-media/1.0.0/digital-media-request-attributes.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for Digital Media", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional URLs to be appended to the 10320/loc field" + }, + "referentName": { + "type": "string", + "description": "A generic name for the type of object that the DOI refers to. This is different from digitalObjectType that points to a specific type, e.g. there can be different types of digital specimens that each have a slightly different metadata schema because they describe a different kind of specimen, like a botanical versus a geological specimen.", + "example": "digital specimen" + }, + "mediaHost": { + "type": "string", + "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation responsible for hosting the digital media object. Note that this can be DiSSCo also (use DiSSCo QID in that case). Notehe organisation may use an external repository like morphobank to host the object.", + "example": "https://ror.org/0566bfb96" + }, + "mediaHostName": { + "type": "string", + "description": "Name for the administrative organisation hosting the digital media (name derived from ROR or Wikidata at the point of creating the FDO record).", + "example": "Naturalis Biodiversity Center", + "$comment": "idx = 401" + }, + "linkedDigitalObjectPid": { + "type": "string", + "description": "Handle or DOI, the DO to which the media should be linked.", + "example": "https://hdl.handle.net/20.5000.1025/3X0-WA3-J8Q" + }, + "linkedDigitalObjectType": { + "type": "string", + "description": "The DO type to which the media is linked, one of: digital specimen, agent, facility, supplementary material" + }, + "primaryMediaId": { + "type": "string", + "description": "Primary ID supplied by the original provider for the media (compatible with ac:providerManagedID). the mediaUrl may be the ID itself, for example: https://data.nhm.ac.uk/media/93012a86-a00f-435a-a985-8e3c0ab6e51b", + "example": "ae00-a4gg-123b4" + }, + "primaryMediaIdType": { + "enum": [ + "Global", + "Local", + "Resolvable" + ], + "description": "Vocabulary derived from DOI schema creationIdentifier.: PROPRIETARY IDENTIFIER if the identifier is custom made by the organisation or collection management system." + }, + "primaryMediaIdName": { + "type": "string", + "example": "DAM nr" + }, + "dcterms:type": { + "type": "string", + "description": "Type, describing the (primary) nature of the image. For example an image of a label will have primaryDcType text, an image of a specimen will have primaryDcType physical object. One of: text, image, sound, dataset, software, interactive, event, physical object + Audiovisual Core: 3D object type" + }, + "dcterms:format": { + "type": "string", + "description": "(Previously primaryMediaObjectType) Dublin Core: Type, describing the (primary) nature of the image. For example an image of a label will have primaryDcType text, an image of a specimen will have primaryDcType physical object. One of: text, image, sound, dataset, software, interactive, event, physical object + Audiovisual Core: 3D object type" + }, + "dcterms:license": { + "type": "string", + "description": "http://purl.org/dc/terms/license.", + "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication" + }, + "dcterms:rightsHolder": { + "type": "string", + "description": "If not present, defaults to mediaHost, https://purl.org/dc/terms/rightsHolder", + "example": "https://ror.org/0566bfb96" + } + }, + "required": [ + "referentName", + "mediaHost", + "mediaHostName", + "linkedDigitalObjectPid", + "linkedDigitalObjectType", + "primaryMediaId", + "dcterms:license", + "dcterms:rightsHolder" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request.json b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request.json new file mode 100644 index 0000000..ba7e193 --- /dev/null +++ b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request.json @@ -0,0 +1,30 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/digital-media/0.1.0/digital-media-request.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Schema for creating new PID records for digital media using the DiSSCO PID API. API maps requests to digital-media.json profile", + "$comment": "FDO Profile Version 0.1.0", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "const": "https://doi.org/21.T11148/bbad8c4e101e8af01115", + "description": "PID of the Digital Object Type" + }, + "attributes": { + "type": "object", + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/digital-media/1.0.0/digital-media-request-attributes.json" + } + }, + "required": [ + "type", + "attributes" + ], + "additionalProperties": false + } + }, + "required": [ + "data" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json new file mode 100644 index 0000000..fcf1ea5 --- /dev/null +++ b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json @@ -0,0 +1,239 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/digital-media/1.0.0/digital-media.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "FDO Profile for digital media object", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "fdoProfile": { + "const": "https://doi.org/21.T11148/bbad8c4e101e8af01115", + "description": "PID to a machine readable description of the attributes in the FDO record", + "$comment": "idx = 1" + }, + "fdoRecordLicenseId": { + "const": "https://spdx.org/licenses/CC0-1.0.json", + "description": "The licence for the FDO record, required to be always public domain", + "$comment": "idx = 2" + }, + "fdoRecordLicenseName": { + "const": "CC0 1.0 Universal", + "description": "Human readable version of the FDO Record license", + "$comment": "idx = 3" + }, + "digitalObjectType": { + "const": "https://doi.org/21.T11148/bbad8c4e101e8af01115", + "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", + "$comment": "idx = 4" + }, + "digitalObjectName": { + "type": "string", + "description": "Name of the object type for humans", + "example": "digital specimen type 1", + "$comment": "idx = 5" + }, + "pid": { + "type": "string", + "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", + "example": "https://doi.org/10.22/GEE-W3J-HL2", + "$comment": "idx = 6" + }, + "pidIssuer": { + "type": "string", + "description": "In case of a DOI this is a PID for the DOI Registration Agency", + "example": "https://hdl.handle.net/10.17183", + "$comment": "idx = 7" + }, + "pidIssuerName": { + "type": "string", + "description": "Human-readable name of the PID issuer", + "example": "DataCite", + "$comment": "idx = 8" + }, + "pidRecordIssueDate": { + "type": "string", + "description": "Date the PID record was created", + "example": "2023-10-16T12:08:37.494Z", + "$comment": "idx = 9" + }, + "pidRecordIssueNumber": { + "type": "integer", + "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", + "example": "2", + "$comment": "idx = 10" + }, + "pidStatus": { + "enum": [ + "DRAFT", + "ACTIVE", + "TOMBSTONE" + ], + "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", + "$comment": "idx = 11" + }, + "HS_ADMIN": { + "type": "string", + "description": "Administrative information for PID profile", + "$comment": "idx = 100" + }, + "tombstoneText": { + "type": "string", + "description": "A reason why the Digital Object was tombstoned", + "examples": [ + "This is a duplicate of XXX", + "This object was made by mistake" + ], + "$comment": "idx = 30" + }, + "hasRelatedPid": { + "type": "array", + "description": "The PIDs of the object the tombstoned object is related to", + "items": { + "type": "object", + "items": { + "type": "object", + "properties": { + "pid": { + "type": "string", + "description": "The PID of the related object", + "examples": [ + "https://doi.org/10.1234/abcd" + ] + }, + "relationshipType": { + "type": "string", + "description": "The type of relationship between the tombstoned object and the related object", + "examples": [ + "ods:relatedTo", + "ods:isDuplicateOf" + ] + } + }, + "additionalProperties": false + }, + "$comment": "idx = 31" + } + }, + "tombstoneDate": { + "type": "string", + "description": "Timestamp the Digital Object was tombstoned and no longer active.", + "format": "date-time", + "examples": [ + "2021-06-01T12:00:000Z" + ], + "$comment": "idx = 32" + }, + "10320/loc": { + "type": "string", + "description": "XML document describing location(s) of the resource", + "$comment": "idx = 101", + "example": "" + }, + "issuedForAgent": { + "type": "string", + "description": "In the case of a digital specimen, this is a PID for DiSSCo as the agent responsible for serving the digital specimen object", + "example": "https://hdl.handle.net/10.22", + "$comment": "idx = 40" + }, + "issuedForAgentName": { + "type": "string", + "description": "Human-readable agent name", + "example": "DiSSCo", + "$comment": "idx = 41" + }, + "referentName": { + "type": "string", + "description": "In the case of a digital specimen this is the name for the object in the collection, which can be anything from a taxon name to a collection number. In the case of a media object, it is the media url without https://.", + "example": "Mus musculus type 1", + "$comment": "idx = 42" + }, + "mediaHost": { + "type": "string", + "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation responsible for hosting the digital media object. Note that this can be DiSSCo also (use DiSSCo QID in that case). Notehe organisation may use an external repository like morphobank to host the object.", + "example": "https://ror.org/0566bfb96", + "$comment": "idx = 400" + }, + "mediaHostName": { + "type": "string", + "description": "Name for the administrative organisation hosting the digital media (name derived from ROR or Wikidata at the point of creating the FDO record).", + "example": "Naturalis Biodiversity Center", + "$comment": "idx = 401" + }, + "linkedDigitalObjectPid": { + "type": "string", + "description": "Handle or DOI, the DO to which the media should be linked.", + "example": "https://hdl.handle.net/20.5000.1025/3X0-WA3-J8Q", + "$comment": "idx = 402" + }, + "linkedDigitalObjectType": { + "type": "string", + "description": "FDO type type to which the media is linked.", + "$comment": "idx = 403" + }, + "primaryMediaId": { + "type": "string", + "description": "Primary ID supplied by the original provider for the media (compatible with ac:providerManagedID). the mediaUrl may be the ID itself, for example: https://data.nhm.ac.uk/media/93012a86-a00f-435a-a985-8e3c0ab6e51b", + "example": "ae00-a4gg-123b4", + "$comment": "idx = 404" + }, + "primaryMediaIdType": { + "enum": [ + "Global", + "Local", + "Resolvable" + ], + "description": "Nature of institutional identifier. A globally unique identifier (e.g. a UUID) must be marked as \"Global\", while a resolvable identifier (e.g. a URL or a DOI including the proxy) must be marked at \"Resolvable\". If the identifier is unique only within the institution or collection system, it must be marked as \"Local\"", + "$comment": "idx = 405" + }, + "primaryMediaIdName": { + "type": "string", + "example": "ac:accessUr", + "$comment": "idx = 406" + }, + "dcterms:type": { + "type": "string", + "description": "http://purl.org/dc/elements/1.1/type", + "$comment": "idx = 407" + }, + "dcterms:format": { + "type": "string", + "description": "http://purl.org/dc/terms/format", + "example": "image/jpeg", + "$comment": "idx = 408" + }, + "dcterms:license": { + "type": "string", + "description": "http://purl.org/dc/terms/license.", + "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", + "$comment": "idx = 409" + }, + "dcterms:rightsHolder": { + "type": "string", + "description": "https://purl.org/dc/terms/rightsHolder", + "example": "https://ror.org/0566bfb96", + "$comment": "idx = 410" + } + }, + "additionalProperties": false, + "required": [ + "fdoProfile", + "fdoRecordLicenseId", + "fdoRecordLicenseName", + "digitalObjectType", + "digitalObjectName", + "pid", + "pidIssuer", + "pidIssuerName", + "issuedForAgent", + "pidRecordIssueDate", + "pidRecordIssueNumber", + "pidStatus", + "10320/loc", + "referentName", + "mediaHost", + "mediaHostName", + "linkedDigitalObjectPid", + "linkedDigitalObjectType", + "primaryMediaId", + "dcterms:license", + "dcterms:rightsHolder" + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen-request.json b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen-request.json new file mode 100644 index 0000000..63e124c --- /dev/null +++ b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen-request.json @@ -0,0 +1,18 @@ +{ + "data": { + "type": "https://doi.org/21.T11148/d8de0819e144e4096645", + "attributes": { + "referentName": "Mus musculus type 1", + "specimenHost": "https://ror.org/0566bfb96", + "normalisedPrimarySpecimenObjectId": "http://coldb.mnhn.fr/catalognumber/mnhn/ec/ec23797", + "livingOrPreserved": "Living", + "otherSpecimenIds": [ + { + "identifierValue": "AVES.123", + "identifierType": "catalogId", + "resolvable": false + } + ] + } + } +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json new file mode 100644 index 0000000..be29907 --- /dev/null +++ b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json @@ -0,0 +1,28 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/d8de0819e144e4096645", + "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/d8de0819e144e4096645", + "digitalObjectName": "DOI Kernel", + "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "issuedForAgent": "https://ror.org/0566bfb96", + "issuedForAgentName": "Naturalis Biodiversity Center", + "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", + "pidRecordIssueNumber": 1, + "pidStatus": "ACTIVE", + "referentName": "Some digital object", + "specimenHost": "https://ror.org/0566bfb96", + "specimenHostName": "Naturalis Biodiversity Center", + "normalisedPrimarySpecimenObjectId": "http://coldb.mnhn.fr/catalognumber/mnhn/ec/ec23797", + "livingOrPreserved": "Living", + "otherSpecimenIds": [ + { + "identifierValue": "AVES.123", + "identifierType": "catalogId", + "resolvable": false + } + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request-attributes.json b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request-attributes.json new file mode 100644 index 0000000..8759fd2 --- /dev/null +++ b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request-attributes.json @@ -0,0 +1,183 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/digital-specimen/0.1.0/digital-specimen-request-attributes.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Attributes of a request to the DiSSCo PID API to create a FDO Record for a digital specimen", + "$comment": "FDO Profile Version 0.1.0", + "properties": { + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Additional URLs to be appended to the 10320/loc field" + }, + "referentName": { + "type": "string", + "description": "In the case of a digital specimen this is the name for the object in the collection, which can be anything from a taxon name to a collection number." + }, + "specimenHost": { + "type": "string", + "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation hosting the specimen. Same as: Latimer Core identifierSource.", + "example": "https://ror.org/0566bfb96" + }, + "specimenHostName": { + "type": "string", + "description": "Name for the administrative organisation as derived from ROR or Wikidata at the point of creating the FDO record.", + "example": "Naturalis Biodiversity Center" + }, + "normalisedPrimarySpecimenObjectId": { + "type": "string", + "description": "For internal processing purposes only to make a local identifier globally unique. This is the primarySpecimenObjectId if it is globally unique or a combination of ROR ID string, source system ID string, primarySpecimenObjectId if it is a proprietary identifier.", + "example": "0566bfb96:20.5000.1025/GEE-W3J-HL2:RMNH.1.2b" + }, + "otherSpecimenIds": { + "type": "array", + "$comment": "idx = 207", + "items": { + "type": "object", + "properties": { + "identifierValue": { + "type": "string" + }, + "identifierType": { + "type": "string" + }, + "resolvable": { + "type": "boolean", + "description": "whether or not the identifier is resolvable" + } + }, + "required": [ + "identifierValue", + "identifierType" + ] + } + }, + "topicOrigin": { + "enum": [ + "Natural", + "Human-made", + "Mixed origin", + "Unclassified" + ], + "description": "Highest-level terms identifying the fundamentals of the activities, in which context the objects in the collection were collected." + }, + "topicDomain": { + "enum": [ + "Life", + "Environment", + "Earth System", + "Extraterrestrial", + "Cultural Artefacts", + "Archive Material", + "Unclassified" + ], + "description": "High-level terms providing general domain information with which the objects are associated." + }, + "topicDiscipline": { + "enum": [ + "Anthropology", + "Botany", + "Astrogeology", + "Geology", + "Microbiology", + "Palaeontology", + "Zoology", + "Ecology", + "Other Biodiversity", + "Other Geodiversity", + "Unclassified" + ], + "description": "Overarching classification of the scientific discipline to which the objects within the collection belong or are related." + }, + "topicCategory": { + "enum": [ + "Human remains", + "Hominid remains", + "Mycology", + "Algae", + "Bryophytes", + "Pteridophytes", + "Seed plants", + "Other Botany Objects", + "Insects", + "Arachnids", + "Crustaceans & Myriapods", + "Porifera", + "Mollusca", + "Cnidaria", + "Echinodermata", + "Fishes", + "Amphibians", + "Reptiles", + "Birds", + "Mammals", + "AnimalGeneticResources", + "Other Zoology Objects", + "Phages", + "Bacteria & Archaea", + "Plasmids", + "Protozoa", + "Eukaryotic microorganisms", + "Viruses", + "Mircofungi", + "Other Microbiology Objects", + "Botany Fossils", + "Invertebrate Fossils", + "Vertebrate Fossils", + "Other Palaeontology Objects", + "Minerals and Gems", + "Loose Sediment Sample", + "Mixed Solid Mater Sample", + "Water-Ice Sample", + "Liquid or Gaseous Matter Sample", + "Mixed Geology Objects", + "Terrestrial Finds/Falls", + "Terrestrial Impacta", + "Sample Returns", + "Unclassified" + ], + "description": "Countable things (objects) served as a more detailed classification of each of the disciplines." + }, + "livingOrPreserved": { + "enum": [ + "Living", + "Preserved" + ], + "description": "State of specimen" + }, + "materialSampleType": { + "enum": [ + "Whole organism specimen", + "Organism part", + "Organism product", + "Biome aggregation", + "Bundle biome aggregation", + "Fossil", + "Any biological specimen", + "Aggregation", + "Slurry biome aggregation", + "Other solid object", + "Fluid in container", + "Anthropogenic aggregation", + "Artefact", + "Any aggregation specimen" + ], + "description": "https://isamplesorg.github.io/models/generated/vocabularies/specimenType.html" + }, + "markedAsType": { + "type": "boolean", + "description": "TRUE if the specimen is marked as type with a stamp or label." + }, + "catalogIdentifier": { + "type": "string", + "description": "Identifier of source system catalog" + } + }, + "required": [ + "issuedForAgent", + "specimenHost", + "normalisedPrimarySpecimenObjectId" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request.json b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request.json new file mode 100644 index 0000000..265ba74 --- /dev/null +++ b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request.json @@ -0,0 +1,30 @@ +{ + "$id": "ttps://schemas.dissco.tech/schemas/fdo-profile/digital-specimen/1.0.0/digital-specimen-request.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "FDO Profile for Digital Specimens", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "data": { + "type": "object", + "properties": { + "type": { + "const": "https://doi.org/21.T11148/d8de0819e144e4096645", + "description": "PID of the Digital Object Type" + }, + "attributes": { + "type": "object", + "$ref": "https://schemas.dissco.tech/schemas/fdo-profile/digital-specimen/1.0.0/digital-specimen-request-attributes.json" + } + }, + "required": [ + "type", + "attributes" + ], + "additionalProperties": false + } + }, + "required": [ + "data" + ], + "additionalProperties": false +} \ No newline at end of file diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json new file mode 100644 index 0000000..d61d6bf --- /dev/null +++ b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json @@ -0,0 +1,331 @@ +{ + "$id": "https://schemas.dissco.tech/schemas/fdo-profile/digital-specimen/1.0.0/digital-specimen.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Kernel from which all DiSSCo DOI FDO profiles are derived", + "$comment": "FDO Profile Version 1.0.0", + "properties": { + "fdoProfile": { + "const": "https://doi.org/21.T11148/d8de0819e144e4096645", + "description": "PID to a machine readable description of the attributes in the FDO record", + "$comment": "idx = 1" + }, + "fdoRecordLicenseId": { + "const": "https://spdx.org/licenses/CC0-1.0.json", + "description": "The licence for the FDO record, required to be always public domain", + "$comment": "idx = 2" + }, + "fdoRecordLicenseName": { + "const": "CC0 1.0 Universal", + "description": "Human readable version of the FDO Record license", + "$comment": "idx = 3" + }, + "digitalObjectType": { + "const": "https://doi.org/21.T11148/d8de0819e144e4096645", + "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", + "$comment": "idx = 4" + }, + "digitalObjectName": { + "type": "string", + "description": "Name of the object type for humans", + "example": "digital specimen type 1", + "$comment": "idx = 5" + }, + "pid": { + "type": "string", + "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", + "example": "https://doi.org/10.22/GEE-W3J-HL2", + "$comment": "idx = 6" + }, + "pidIssuer": { + "type": "string", + "description": "In case of a DOI this is a PID for the DOI Registration Agency", + "example": "https://hdl.handle.net/10.17183", + "$comment": "idx = 7" + }, + "pidIssuerName": { + "type": "string", + "description": "Human-readable name of the PID issuer", + "example": "DataCite", + "$comment": "idx = 8" + }, + "pidRecordIssueDate": { + "type": "string", + "description": "Date the PID record was created", + "example": "2023-10-16T12:08:37.494Z", + "$comment": "idx = 9" + }, + "pidRecordIssueNumber": { + "type": "integer", + "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", + "example": "2", + "$comment": "idx = 10" + }, + "pidStatus": { + "enum": [ + "DRAFT", + "ACTIVE", + "TOMBSTONE" + ], + "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", + "$comment": "idx = 11" + }, + "HS_ADMIN": { + "type": "string", + "description": "Administrative information for PID profile", + "$comment": "idx = 100" + }, + "tombstoneText": { + "type": "string", + "description": "A reason why the Digital Object was tombstoned", + "examples": [ + "This is a duplicate of XXX", + "This object was made by mistake" + ], + "$comment": "idx = 30" + }, + "hasRelatedPid": { + "type": "array", + "description": "The PIDs of the object the tombstoned object is related to", + "items": { + "type": "object", + "items": { + "type": "object", + "properties": { + "pid": { + "type": "string", + "description": "The PID of the related object", + "examples": [ + "https://doi.org/10.1234/abcd" + ] + }, + "relationshipType": { + "type": "string", + "description": "The type of relationship between the tombstoned object and the related object", + "examples": [ + "ods:relatedTo", + "ods:isDuplicateOf" + ] + } + }, + "additionalProperties": false + }, + "$comment": "idx = 31" + } + }, + "tombstoneDate": { + "type": "string", + "description": "Timestamp the Digital Object was tombstoned and no longer active.", + "format": "date-time", + "examples": [ + "2021-06-01T12:00:000Z" + ], + "$comment": "idx = 32" + }, + "10320/loc": { + "type": "string", + "description": "XML document describing location(s) of the resource", + "$comment": "idx = 101", + "example": "" + }, + "issuedForAgent": { + "type": "string", + "description": "In the case of a digital specimen, this is a PID for DiSSCo as the agent responsible for serving the digital specimen object", + "example": "https://hdl.handle.net/10.22", + "$comment": "idx = 40" + }, + "issuedForAgentName": { + "type": "string", + "description": "Human-readable agent name", + "example": "DiSSCo", + "$comment": "idx = 41" + }, + "referentName": { + "type": "string", + "description": "In the case of a digital specimen this is the name for the object in the collection, which can be anything from a taxon name to a collection number. In the case of a media object, it is the media url without https://.", + "example": "Mus musculus type 1", + "$comment": "idx = 42" + }, + "specimenHost": { + "type": "string", + "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation hosting the specimen. Same as: Latimer Core identifierSource.", + "example": "https://ror.org/0566bfb96", + "$comment": "idx = 200" + }, + "specimenHostName": { + "type": "string", + "description": "Name for the administrative organisation as derived from ROR or Wikidata at the point of creating the FDO record.", + "example": "Naturalis Biodiversity Center", + "$comment": "idx = 201" + }, + "normalisedPrimarySpecimenObjectId": { + "type": "string", + "description": "For internal processing purposes only to make a local identifier globally unique. This is the primarySpecimenObjectId if it is globally unique or a combination of ROR ID string, source system ID string, primarySpecimenObjectId if it is a proprietary identifier.", + "example": "0566bfb96:20.5000.1025/GEE-W3J-HL2:RMNH.1.2b", + "$comment": "idx = 203" + }, + "otherSpecimenIds": { + "type": "array", + "$comment": "idx = 207", + "items": { + "type": "object", + "properties": { + "identifierValue": { + "type": "string" + }, + "identifierType": { + "type": "string" + }, + "resolvable": { + "type": "boolean", + "description": "whether or not the identifier is resolvable" + } + }, + "required": [ + "identifierValue", + "identifierType" + ], + "additionalProperties": false + }, + "$comment": "idx = 204" + }, + "topicOrigin": { + "enum": [ + "Natural", + "Human-made", + "Mixed origin", + "Unclassified" + ], + "description": "Highest-level terms identifying the fundamentals of the activities, in which context the objects in the collection were collected.", + "$comment": "idx = 205" + }, + "topicDomain": { + "enum": [ + "Life", + "Environment", + "Earth System", + "Extraterrestrial", + "Cultural Artefacts", + "Archive Material", + "Unclassified" + ], + "description": "High-level terms providing general domain information with which the objects are associated.", + "$comment": "idx = 206" + }, + "topicDiscipline": { + "enum": [ + "Anthropology", + "Botany", + "Astrogeology", + "Geology", + "Microbiology", + "Palaeontology", + "Zoology", + "Ecology", + "Other Biodiversity", + "Other Geodiversity", + "Unclassified" + ], + "description": "Overarching classification of the scientific discipline to which the objects within the collection belong or are related.", + "$comment": "idx = 207" + }, + "topicCategory": { + "enum": [ + "Human remains", + "Hominid remains", + "Mycology", + "Algae", + "Bryophytes", + "Pteridophytes", + "Seed plants", + "Other Botany Objects", + "Insects", + "Arachnids", + "Crustaceans & Myriapods", + "Porifera", + "Mollusca", + "Cnidaria", + "Echinodermata", + "Fishes", + "Amphibians", + "Reptiles", + "Birds", + "Mammals", + "AnimalGeneticResources", + "Other Zoology Objects", + "Phages", + "Bacteria & Archaea", + "Plasmids", + "Protozoa", + "Eukaryotic microorganisms", + "Viruses", + "Mircofungi", + "Other Microbiology Objects", + "Botany Fossils", + "Invertebrate Fossils", + "Vertebrate Fossils", + "Other Palaeontology Objects", + "Minerals and Gems", + "Loose Sediment Sample", + "Mixed Solid Mater Sample", + "Water-Ice Sample", + "Liquid or Gaseous Matter Sample", + "Mixed Geology Objects", + "Terrestrial Finds/Falls", + "Terrestrial Impacta", + "Sample Returns", + "Unclassified" + ], + "description": "Countable things (objects) served as a more detailed classification of each of the disciplines.", + "$comment": "idx = 208" + }, + "livingOrPreserved": { + "enum": [ + "Living", + "Preserved" + ], + "description": "State of specimen", + "$comment": "idx = 209" + }, + "materialSampleType": { + "enum": [ + "Any biological specimen", + "Biological material sample", + "Fluid in container", + "Fluid in container", + "Non biologic solid object", + "Research product" + ], + "description": "https://isamplesorg.github.io/models/generated/vocabularies/specimenType.html", + "$comment": "idx = 211" + }, + "markedAsType": { + "type": "boolean", + "description": "TRUE if the specimen is marked as type with a stamp or label.\n", + "$comment": "idx = 212" + }, + "catalogNumber": { + "type": "string", + "description": "Identifier of source system catalog", + "$comment": "idx = 213" + } + }, + "additionalProperties": false, + "required": [ + "fdoProfile", + "fdoRecordLicenseId", + "digitalObjectType", + "digitalObjectName", + "pid", + "pidIssuer", + "pidIssuerName", + "issuedForAgent", + "pidRecordIssueDate", + "pidRecordIssueNumber", + "pidStatus", + "10320/loc", + "referentName", + "specimenHost", + "specimenHostName", + "normalisedPrimarySpecimenObjectId" + ] +} \ No newline at end of file diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json b/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json new file mode 100644 index 0000000..3c1523b --- /dev/null +++ b/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json @@ -0,0 +1,17 @@ +{ + "10320/loc": "", + "fdoProfile": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", + "fdoRecordLicense": "https://spdx.org/licenses/CC0-1.0.json", + "fdoRecordLicenseName": "CC0 1.0 Universal", + "digitalObjectType": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", + "digitalObjectName": "DOI Kernel", + "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", + "pidIssuer": "https://ror.org/04wxnsj81", + "pidIssuerName": "DataCite", + "issuedForAgent": "https://ror.org/0566bfb96", + "issuedForAgentName": "Naturalis Biodiversity Center", + "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", + "pidRecordIssueNumber": 1, + "pidStatus": "ACTIVE", + "referentName": "Some digital object" +} \ No newline at end of file diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-request.json b/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-request.json new file mode 100644 index 0000000..998f4c7 --- /dev/null +++ b/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-request.json @@ -0,0 +1,8 @@ +{ + "data": { + "type": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", + "attributes": { + "referentName": "Mus musculus type 1" + } + } +} \ No newline at end of file diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel-request-attributes.json b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel-request-attributes.json index 0e94913..7f96e37 100644 --- a/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel-request-attributes.json +++ b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel-request-attributes.json @@ -11,19 +11,11 @@ }, "description": "Additional URLs to be appended to the 10320/loc field" }, - "issuedForAgent": { - "type": "string", - "description": "In the case of a digital specimen, this is a PID for DiSSCo as the agent responsible for serving the digital specimen object", - "example": "https://hdl.handle.net/10.22" - }, "referentName": { "type": "string", "description": "In the case of a digital specimen this is the name for the object in the collection, which can be anything from a taxon name to a collection number.", "example": "Mus musculus type 1" } }, - "required": [ - "issuedForAgent" - ], "additionalProperties": false } \ No newline at end of file diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel.json b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel.json index 2b25ae1..08b0dca 100644 --- a/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel.json +++ b/data-model/fdo-profile/doi-kernel/1.0.0/schema/doi-kernel.json @@ -9,71 +9,65 @@ "description": "PID to a machine readable description of the attributes in the FDO record", "$comment": "idx = 1" }, - "fdoRecordLicense": { - "const": "https://creativecommons.org/publicdomain/zero/1.0/", + "fdoRecordLicenseId": { + "const": "https://spdx.org/licenses/CC0-1.0.json", "description": "The licence for the FDO record, required to be always public domain", "$comment": "idx = 2" }, + "fdoRecordLicenseName": { + "const": "CC0 1.0 Universal", + "description": "Human readable version of the FDO Record license", + "$comment": "idx = 3" + }, "digitalObjectType": { "const": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", "description": "PID to a description of the Type of digital object that defines the metadata, bit sequences (if any) and operations for the object", - "$comment": "idx = 3" + "$comment": "idx = 4" }, "digitalObjectName": { "type": "string", "description": "Name of the object type for humans", "example": "digital specimen type 1", - "$comment": "idx = 4" + "$comment": "idx = 5" }, "pid": { "type": "string", "description": "The PID of which the FDO record is part, in DiSSCo this is a Handle or DOI. It is recommended to store this pid also in the local collection management system for the specimen.", "example": "https://doi.org/10.22/GEE-W3J-HL2", - "$comment": "idx = 5" + "$comment": "idx = 6" }, "pidIssuer": { "type": "string", "description": "In case of a DOI this is a PID for the DOI Registration Agency", "example": "https://hdl.handle.net/10.17183", - "$comment": "idx = 6" + "$comment": "idx = 7" }, "pidIssuerName": { "type": "string", "description": "Human-readable name of the PID issuer", "example": "DataCite", - "$comment": "idx = 7" + "$comment": "idx = 8" }, "pidRecordIssueDate": { "type": "string", "description": "Date the PID record was created", "example": "2023-10-16T12:08:37.494Z", - "$comment": "idx = 10" + "$comment": "idx = 9" }, "pidRecordIssueNumber": { "type": "integer", "description": "Starts with 1 and is incrementally increased by 1 every time the pid record is updated. Compatible with DOI schema requirements.", "example": "2", - "$comment": "idx = 11" - }, - "structuralType": { - "enum": [ - "digital", - "physical", - "performance", - "abstraction" - ], - "description": "Nature of the digital object, compatible with DOI schema requirements. The nature of a digital specimen object is always \"digital\". Other digital objects (outside DiSSCo) could be of physical, performance or abstraction nature.", - "$comment": "idx = 12" + "$comment": "idx = 10" }, "pidStatus": { "enum": [ "DRAFT", "ACTIVE", - "FAILED", "TOMBSTONE" ], "description": "A PID is considered to have a lifecycle, PID status indicates the status in the life cycle, e.g. draft, active, retired. PID statuses are described further in the PID infrastructure design.", - "$comment": "idx = 13" + "$comment": "idx = 11" }, "HS_ADMIN": { "type": "string", @@ -89,7 +83,7 @@ ], "$comment": "idx = 30" }, - "ods:hasRelatedPID": { + "hasRelatedPid": { "type": "array", "description": "The PIDs of the object the tombstoned object is related to", "items": { @@ -97,14 +91,14 @@ "items": { "type": "object", "properties": { - "ods:ID": { + "pid": { "type": "string", "description": "The PID of the related object", "examples": [ "https://doi.org/10.1234/abcd" ] }, - "ods:relationshipType": { + "relationshipType": { "type": "string", "description": "The type of relationship between the tombstoned object and the related object", "examples": [ @@ -147,7 +141,7 @@ }, "referentName": { "type": "string", - "description": "In the case of a digital specimen this is the name for the object in the collection, which can be anything from a taxon name to a collection number.", + "description": "In the case of a digital specimen this is the name for the object in the collection, which can be anything from a taxon name to a collection number. In the case of a media object, it is the media url without https://.", "example": "Mus musculus type 1", "$comment": "idx = 42" } @@ -155,7 +149,8 @@ "additionalProperties": false, "required": [ "fdoProfile", - "fdoRecordLicense", + "fdoRecordLicenseId", + "fdoRecordLicenseName", "digitalObjectType", "digitalObjectName", "pid", @@ -164,10 +159,7 @@ "issuedForAgent", "pidRecordIssueDate", "pidRecordIssueNumber", - "structuralType", "pidStatus", - "referentType", - "referentDoiName", "10320/loc", "referentName" ] diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json index 9282406..52d99e8 100644 --- a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json +++ b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json @@ -12,5 +12,11 @@ "pidRecordIssueNumber": 1, "pidStatus": "TOMBSTONE", "tombstoneText": "Resource deleted by admin", + "hasRelatedPid": [ + { + "pid": "https://doi.org/10.21/XU9-54T-22A", + "relationshipType": "superseded By" + } + ], "tombstoneDate": "2024-11-17T11:57:02.933Z" } \ No newline at end of file diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request-attributes.json b/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request-attributes.json index 9917999..31854d9 100644 --- a/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request-attributes.json +++ b/data-model/fdo-profile/handle-kernel/1.0.0/schema/handle-request-attributes.json @@ -10,14 +10,7 @@ "type": "string" }, "description": "Additional URLs to be appended to the 10320/loc field" - }, - "machineAnnotationServiceName": { - "type": "string", - "description": "Name of Machine Annotation Service" } }, - "required": [ - "machineAnnotationServiceName" - ], "additionalProperties": false } \ No newline at end of file From 9fdcc513f866c00cae527352c21fe17f1fad4021 Mon Sep 17 00:00:00 2001 From: southeo Date: Tue, 17 Sep 2024 09:21:39 +0200 Subject: [PATCH 4/8] add digital specimen/media 1.0.0 --- data-model/Dockerfile | 2 +- .../digital-media/1.0.0/examples/example-digital-media.json | 2 +- .../1.0.0/examples/example-digital-specimen.json | 2 +- ...fdo-profile.json => example-machine-annotation-service.json} | 0 ...service-fdo-profile.json => machine-annotation-service.json} | 0 5 files changed, 3 insertions(+), 3 deletions(-) rename data-model/fdo-profile/machine-annotation-service/1.0.0/examples/{example-machine-annotation-service-fdo-profile.json => example-machine-annotation-service.json} (100%) rename data-model/fdo-profile/machine-annotation-service/1.0.0/schema/{machine-annotation-service-fdo-profile.json => machine-annotation-service.json} (100%) diff --git a/data-model/Dockerfile b/data-model/Dockerfile index d0112f8..570e86b 100644 --- a/data-model/Dockerfile +++ b/data-model/Dockerfile @@ -33,7 +33,7 @@ COPY fdo-profile/data-mapping/1.0.0/schema schema-root/schemas/fdo-profile/data- COPY fdo-profile/machine-annotation-service/1.0.0/schema schema-root/schemas/fdo-profile/mas/latest COPY fdo-profile/source-system/1.0.0/schema schema-root/schemas/fdo-profile/source-system/latest COPY fdo-profile/digital-media/1.0.0/schema schema-root/schemas/fdo-profile/digital-media/latest -COPY fdo-profile/digital-specimen/1.0.0/schema/ schema-root/schemas/fdo-profile/digital-specimen/latest +COPY fdo-profile/digital-specimen/1.0.0/schema schema-root/schemas/fdo-profile/digital-specimen/latest COPY fdo-profile/tettris-service/0.1.0/schema schema-root/schemas/fdo-profile/tettris-service/latest COPY fdo-profile/organisation/0.1.0/schema schema-root/schemas/fdo-profile/organisation/latest diff --git a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json index 44b7508..2e8b70b 100644 --- a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json +++ b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json @@ -4,7 +4,7 @@ "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", "digitalObjectType": "https://doi.org/21.T11148/bbad8c4e101e8af01115", - "digitalObjectName": "DOI Kernel", + "digitalObjectName": "MediaObject", "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", "pidIssuer": "https://ror.org/04wxnsj81", "pidIssuerName": "DataCite", diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json index be29907..9dd1f25 100644 --- a/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json +++ b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json @@ -4,7 +4,7 @@ "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", "digitalObjectType": "https://doi.org/21.T11148/d8de0819e144e4096645", - "digitalObjectName": "DOI Kernel", + "digitalObjectName": "Digital Specimen", "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", "pidIssuer": "https://ror.org/04wxnsj81", "pidIssuerName": "DataCite", diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-fdo-profile.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json similarity index 100% rename from data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service-fdo-profile.json rename to data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-fdo-profile.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service.json similarity index 100% rename from data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service-fdo-profile.json rename to data-model/fdo-profile/machine-annotation-service/1.0.0/schema/machine-annotation-service.json From 6a04332da822f02f7e65b9b6d0888295c51dedae Mon Sep 17 00:00:00 2001 From: southeo Date: Wed, 25 Sep 2024 11:51:48 +0200 Subject: [PATCH 5/8] code review --- .../examples/example-annotation-request.json | 1 + .../1.0.0/examples/example-annotation.json | 4 +- .../schema/annotation-request-attributes.json | 4 ++ .../annotation/1.0.0/schema/annotation.json | 5 ++ .../0.1.0/schema/data-mapping.json | 2 +- .../1.0.0/examples/example-data-mapping.json | 2 +- .../example-digital-media-request.json | 4 +- .../1.0.0/examples/example-digital-media.json | 6 +-- .../digital-media-request-attributes.json | 19 +++++--- .../1.0.0/schema/digital-media.json | 47 ++++++++++++++----- .../examples/example-digital-specimen.json | 2 +- .../1.0.0/examples/example-doi-kernel.json | 2 +- .../1.0.0/examples/example-handle.json | 2 +- .../example-machine-annotation-service.json | 2 +- .../schema/source-system-fdo-profile.json | 2 +- 15 files changed, 71 insertions(+), 33 deletions(-) diff --git a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json index 13a6cdb..b24b7ca 100644 --- a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json +++ b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation-request.json @@ -7,6 +7,7 @@ ], "targetPid": "https://hdl.handle.net/20.5000.10235/aaa-bbb-ccc", "targetType": "https://doi.org/21.T11148/894b1e6cad57e921764e", + "targetTypeName": "DigitalSpecimen", "annotationHash": "b3dada2d-396b-cab2-665e-125659fc7ae6" } } diff --git a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json index 7b84bcf..974021d 100644 --- a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json +++ b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", @@ -7,7 +7,7 @@ "digitalObjectName": "Annotation", "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", "pidIssuer": "https://ror.org/04wxnsj81", - "pidIssuerName": "DataCite", + "pidIssuerName": "https://ror.org/02wddde16", "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", "pidRecordIssueNumber": 1, "pidStatus": "ACTIVE", diff --git a/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request-attributes.json b/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request-attributes.json index 882d0d6..95cf15d 100644 --- a/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request-attributes.json +++ b/data-model/fdo-profile/annotation/1.0.0/schema/annotation-request-attributes.json @@ -20,6 +20,10 @@ "type": "string", "description": "Map to ods:type in annotation model" }, + "targetTypeName": { + "type": "string", + "description": "Human-readable name of the above target type." + }, "annotationHash": { "type": "string", "format": "uuid", diff --git a/data-model/fdo-profile/annotation/1.0.0/schema/annotation.json b/data-model/fdo-profile/annotation/1.0.0/schema/annotation.json index b809cac..b2c0895 100644 --- a/data-model/fdo-profile/annotation/1.0.0/schema/annotation.json +++ b/data-model/fdo-profile/annotation/1.0.0/schema/annotation.json @@ -141,6 +141,11 @@ "description": "Map to ods:type in annotation model", "$comment": "idx = 501" }, + "targetTypeName": { + "type": "string", + "description": "Human-readable name of the above target type", + "$comment": "idx = 502" + }, "annotationHash": { "type": "string", "description": "MD5 hash based on target, motivation, and creator. Internally generated by DiSSCo Annotation Processing Service for machine annotations", diff --git a/data-model/fdo-profile/data-mapping/0.1.0/schema/data-mapping.json b/data-model/fdo-profile/data-mapping/0.1.0/schema/data-mapping.json index a56f915..87e19f8 100644 --- a/data-model/fdo-profile/data-mapping/0.1.0/schema/data-mapping.json +++ b/data-model/fdo-profile/data-mapping/0.1.0/schema/data-mapping.json @@ -98,7 +98,7 @@ "type": "string", "description": "XML document describing location(s) of the resource", "$comment": "idx = 101", - "example": "" + "example": "" }, "tombstoneText": { "type": "string", diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json index e84c5d1..e68baff 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", "fdoRecordLicense": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media-request.json b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media-request.json index 33161fb..bf2493a 100644 --- a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media-request.json +++ b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media-request.json @@ -8,8 +8,8 @@ "linkedDigitalObjectPid": "https://doi.org/10.22/GR0-WWV-3RT", "linkedDigitalObjectType": "https://doi.org/21.T11148/d8de0819e144e4096645", "primaryMediaId": "https://mediaphoto.mnhn.fr/media/1620403020391dDLZHWzqVzfk5Az3", - "dcterms:license": "https://spdx.org/licenses/CC0-1.0.json", - "dcterms:rightsHolder": "https://ror.org/0566bfb96" + "licenseName": "https://spdx.org/licenses/CC0-1.0.json", + "rightsHolder": "https://ror.org/0566bfb96" } } } \ No newline at end of file diff --git a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json index 2e8b70b..e5be232 100644 --- a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json +++ b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/bbad8c4e101e8af01115", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", @@ -19,6 +19,6 @@ "linkedDigitalObjectPid": "https://doi.org/10.22/GR0-WWV-3RT", "linkedDigitalObjectType": "https://doi.org/21.T11148/d8de0819e144e4096645", "primaryMediaId": "https://mediaphoto.mnhn.fr/media/1620403020391dDLZHWzqVzfk5Az3", - "dcterms:license": "https://spdx.org/licenses/CC0-1.0.json", - "dcterms:rightsHolder": "https://ror.org/0566bfb96" + "licenseName": "https://spdx.org/licenses/CC0-1.0.json", + "rightsHolder": "https://ror.org/0566bfb96" } \ No newline at end of file diff --git a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json index 3e5162c..8e895f0 100644 --- a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json +++ b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json @@ -53,23 +53,28 @@ "type": "string", "example": "DAM nr" }, - "dcterms:type": { + "mediaType": { "type": "string", "description": "Type, describing the (primary) nature of the image. For example an image of a label will have primaryDcType text, an image of a specimen will have primaryDcType physical object. One of: text, image, sound, dataset, software, interactive, event, physical object + Audiovisual Core: 3D object type" }, - "dcterms:format": { + "mimeType": { "type": "string", - "description": "(Previously primaryMediaObjectType) Dublin Core: Type, describing the (primary) nature of the image. For example an image of a label will have primaryDcType text, an image of a specimen will have primaryDcType physical object. One of: text, image, sound, dataset, software, interactive, event, physical object + Audiovisual Core: 3D object type" + "description": "Only mimetypes for audio, image, model, video, text should be provided. https://www.iana.org/assignments/media-types/media-types.xhtml" }, - "dcterms:license": { + "licenseName": { "type": "string", "description": "http://purl.org/dc/terms/license.", "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication" }, - "dcterms:rightsHolder": { + "rightsHolder": { "type": "string", "description": "If not present, defaults to mediaHost, https://purl.org/dc/terms/rightsHolder", "example": "https://ror.org/0566bfb96" + }, + "rightsHolderPid": { + "type": "string", + "description": "Resolvable identifier of the rights holder", + "example": "https://ror.org/0566bfb96" } }, "required": [ @@ -79,8 +84,8 @@ "linkedDigitalObjectPid", "linkedDigitalObjectType", "primaryMediaId", - "dcterms:license", - "dcterms:rightsHolder" + "licenseName", + "rightsHolder" ], "additionalProperties": false } \ No newline at end of file diff --git a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json index fcf1ea5..77b77b3 100644 --- a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json +++ b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json @@ -147,7 +147,7 @@ }, "mediaHost": { "type": "string", - "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation responsible for hosting the digital media object. Note that this can be DiSSCo also (use DiSSCo QID in that case). Notehe organisation may use an external repository like morphobank to host the object.", + "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation responsible for hosting the digital media object. Note that this can be DiSSCo also (use DiSSCo QID in that case). The organisation may use an external repository like morphobank to host the object.", "example": "https://ror.org/0566bfb96", "$comment": "idx = 400" }, @@ -184,32 +184,55 @@ "$comment": "idx = 405" }, "primaryMediaIdName": { - "type": "string", "example": "ac:accessUr", "$comment": "idx = 406" }, - "dcterms:type": { + "mediaType": { "type": "string", - "description": "http://purl.org/dc/elements/1.1/type", + "description": "Describes the primary nature of the digital media", + "enum": [ + "Collection", + "Dataset", + "Event", + "Image", + "InteractiveResource", + "MovingImage", + "PhysicalObject", + "Service", + "Software", + "Sound", + "Text" + ], "$comment": "idx = 407" }, - "dcterms:format": { + "mimeType": { "type": "string", - "description": "http://purl.org/dc/terms/format", + "description": "Only mimetypes for audio, image, model, video, text should be provided. https://www.iana.org/assignments/media-types/media-types.xhtml", "example": "image/jpeg", "$comment": "idx = 408" }, - "dcterms:license": { + "licenseName": { "type": "string", "description": "http://purl.org/dc/terms/license.", "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", "$comment": "idx = 409" }, - "dcterms:rightsHolder": { + "licenseUrl": { "type": "string", - "description": "https://purl.org/dc/terms/rightsHolder", - "example": "https://ror.org/0566bfb96", + "description": "Machine-actionable licensing information. Uses SPDX Identifiers.", + "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", "$comment": "idx = 410" + }, + "rightsHolder": { + "type": "string", + "description": "Usually the creator of the object, holds the copyright for the object. Defaults to the supplier of the media object. if no other rights holder is specified", + "example": "https://ror.org/0566bfb96", + "$comment": "idx = 411" + }, + "rightsHolderPid": { + "type": "string", + "description": "Identifier of the rights holder", + "$comment": "idx = 412" } }, "additionalProperties": false, @@ -233,7 +256,7 @@ "linkedDigitalObjectPid", "linkedDigitalObjectType", "primaryMediaId", - "dcterms:license", - "dcterms:rightsHolder" + "licenseName", + "rightsHolder" ] } \ No newline at end of file diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json index 9dd1f25..4948dd1 100644 --- a/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json +++ b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/d8de0819e144e4096645", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json b/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json index 3c1523b..ced4faf 100644 --- a/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json +++ b/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", "fdoRecordLicense": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json index e55c429..dc9aa0e 100644 --- a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json +++ b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/532ce6796e2828dd2be6", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json index 7e4cc88..cd546f3 100644 --- a/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json +++ b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/22e71a0015cbcfba8ffa", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/source-system/1.0.0/schema/source-system-fdo-profile.json b/data-model/fdo-profile/source-system/1.0.0/schema/source-system-fdo-profile.json index d52d427..caeb8b2 100644 --- a/data-model/fdo-profile/source-system/1.0.0/schema/source-system-fdo-profile.json +++ b/data-model/fdo-profile/source-system/1.0.0/schema/source-system-fdo-profile.json @@ -79,7 +79,7 @@ "type": "string", "description": "XML document describing location(s) of the resource", "$comment": "idx = 101", - "example": "" + "example": "" }, "tombstoneText": { "type": "string", From e14d88fb4da5d827424b3ad40b55e6c412daffa6 Mon Sep 17 00:00:00 2001 From: southeo Date: Wed, 25 Sep 2024 11:54:05 +0200 Subject: [PATCH 6/8] code review --- .../1.0.0/schema/digital-specimen-request-attributes.json | 2 +- .../digital-specimen/1.0.0/schema/digital-specimen.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request-attributes.json b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request-attributes.json index 8759fd2..a0fd7bd 100644 --- a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request-attributes.json +++ b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen-request-attributes.json @@ -120,7 +120,7 @@ "Protozoa", "Eukaryotic microorganisms", "Viruses", - "Mircofungi", + "Microfungi", "Other Microbiology Objects", "Botany Fossils", "Invertebrate Fossils", diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json index d61d6bf..072f138 100644 --- a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json +++ b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json @@ -258,7 +258,7 @@ "Protozoa", "Eukaryotic microorganisms", "Viruses", - "Mircofungi", + "Microfungi", "Other Microbiology Objects", "Botany Fossils", "Invertebrate Fossils", From 197f7f9ad28fb2b0939e63d6ea3bc109c53b3bdf Mon Sep 17 00:00:00 2001 From: southeo Date: Wed, 2 Oct 2024 15:45:43 +0200 Subject: [PATCH 7/8] code review --- .../1.0.0/examples/example-annotation.json | 4 ++-- .../1.0.0/examples/example-data-mapping.json | 2 +- .../example-tombstoned-data-mapping-fdo.json | 2 +- .../1.0.0/examples/example-digital-media.json | 2 +- .../digital-media-request-attributes.json | 21 +++++++++++++++---- .../1.0.0/schema/digital-media.json | 4 ++-- .../examples/example-digital-specimen.json | 2 +- .../1.0.0/examples/example-doi-kernel.json | 2 +- .../1.0.0/examples/example-handle.json | 2 +- .../examples/example-tombstoned-handle.json | 2 +- .../example-machine-annotation-service.json | 2 +- .../example-source-system-fdo-profile.json | 2 +- 12 files changed, 30 insertions(+), 17 deletions(-) diff --git a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json index 974021d..83c8153 100644 --- a/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json +++ b/data-model/fdo-profile/annotation/1.0.0/examples/example-annotation.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", @@ -7,7 +7,7 @@ "digitalObjectName": "Annotation", "pid": "https://hdl.handle.net/TEST/FFR-RTL-B8K", "pidIssuer": "https://ror.org/04wxnsj81", - "pidIssuerName": "https://ror.org/02wddde16", + "pidIssuerName": "Distributed System of Scientific Collections", "pidRecordIssueDate": "2023-11-17T11:57:02.933Z", "pidRecordIssueNumber": 1, "pidStatus": "ACTIVE", diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json index e68baff..f35b96e 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-data-mapping.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", "fdoRecordLicense": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json index aac33f2..661c82e 100644 --- a/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json +++ b/data-model/fdo-profile/data-mapping/1.0.0/examples/example-tombstoned-data-mapping-fdo.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json index e5be232..bd8360c 100644 --- a/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json +++ b/data-model/fdo-profile/digital-media/1.0.0/examples/example-digital-media.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/bbad8c4e101e8af01115", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json index 8e895f0..1ba00b0 100644 --- a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json +++ b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media-request-attributes.json @@ -18,7 +18,7 @@ }, "mediaHost": { "type": "string", - "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation responsible for hosting the digital media object. Note that this can be DiSSCo also (use DiSSCo QID in that case). Notehe organisation may use an external repository like morphobank to host the object.", + "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation responsible for hosting the digital media object. Note that this can be DiSSCo also. Note the organisation may use an external repository like morphobank to host the object.", "example": "https://ror.org/0566bfb96" }, "mediaHostName": { @@ -61,10 +61,23 @@ "type": "string", "description": "Only mimetypes for audio, image, model, video, text should be provided. https://www.iana.org/assignments/media-types/media-types.xhtml" }, + "license": { + "type": "string", + "description": "Maps to dcterms:license, unenforced value that may or may not be machine actionable. http://purl.org/dc/terms/license.", + "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", + "$comment": "idx = 409" + }, "licenseName": { "type": "string", - "description": "http://purl.org/dc/terms/license.", - "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication" + "description": "Human-readable name of the license", + "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", + "$comment": "idx = 409" + }, + "licenseUrl": { + "type": "string", + "description": "Machine-actionable licensing information. Uses SPDX Identifiers.", + "example": "https://spdx.org/licenses/CC0-1.0", + "$comment": "idx = 410" }, "rightsHolder": { "type": "string", @@ -84,7 +97,7 @@ "linkedDigitalObjectPid", "linkedDigitalObjectType", "primaryMediaId", - "licenseName", + "license", "rightsHolder" ], "additionalProperties": false diff --git a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json index 77b77b3..d4900de 100644 --- a/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json +++ b/data-model/fdo-profile/digital-media/1.0.0/schema/digital-media.json @@ -147,7 +147,7 @@ }, "mediaHost": { "type": "string", - "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation responsible for hosting the digital media object. Note that this can be DiSSCo also (use DiSSCo QID in that case). The organisation may use an external repository like morphobank to host the object.", + "description": "ROR or, in absence of a ROR, Wikidata Qnumber for the administrative organisation responsible for hosting the digital media object. Note that this can be DiSSCo also. The organisation may use an external repository like morphobank to host the object.", "example": "https://ror.org/0566bfb96", "$comment": "idx = 400" }, @@ -220,7 +220,7 @@ "licenseUrl": { "type": "string", "description": "Machine-actionable licensing information. Uses SPDX Identifiers.", - "example": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", + "example": "https://spdx.org/licenses/CC0-1.0", "$comment": "idx = 410" }, "rightsHolder": { diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json index 4948dd1..d93743a 100644 --- a/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json +++ b/data-model/fdo-profile/digital-specimen/1.0.0/examples/example-digital-specimen.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/d8de0819e144e4096645", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json b/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json index ced4faf..201f09d 100644 --- a/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json +++ b/data-model/fdo-profile/doi-kernel/1.0.0/examples/example-doi-kernel.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/527856fd709ec8c5bc8c", "fdoRecordLicense": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json index dc9aa0e..da78093 100644 --- a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json +++ b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-handle.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/532ce6796e2828dd2be6", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json index 52d99e8..2be5433 100644 --- a/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json +++ b/data-model/fdo-profile/handle-kernel/1.0.0/examples/example-tombstoned-handle.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/532ce6796e2828dd2be6", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json index cd546f3..e975aaa 100644 --- a/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json +++ b/data-model/fdo-profile/machine-annotation-service/1.0.0/examples/example-machine-annotation-service.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/22e71a0015cbcfba8ffa", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", diff --git a/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-fdo-profile.json b/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-fdo-profile.json index d1b9bee..877e6f1 100644 --- a/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-fdo-profile.json +++ b/data-model/fdo-profile/source-system/1.0.0/examples/example-source-system-fdo-profile.json @@ -1,5 +1,5 @@ { - "10320/loc": "", + "10320/loc": "", "fdoProfile": "https://doi.org/21.T11148/417a4f472f60f7974c12", "fdoRecordLicenseId": "https://spdx.org/licenses/CC0-1.0.json", "fdoRecordLicenseName": "CC0 1.0 Universal", From 96103fa1e774cbc0c2080dc8fb8889898a4ed8ba Mon Sep 17 00:00:00 2001 From: southeo Date: Mon, 7 Oct 2024 14:22:06 +0200 Subject: [PATCH 8/8] update topic category --- .../digital-specimen/1.0.0/schema/digital-specimen.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json index 072f138..efbcef0 100644 --- a/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json +++ b/data-model/fdo-profile/digital-specimen/1.0.0/schema/digital-specimen.json @@ -232,7 +232,7 @@ "enum": [ "Human remains", "Hominid remains", - "Mycology", + "Macrofungi, Lichens & Myxomycetes", "Algae", "Bryophytes", "Pteridophytes", @@ -266,13 +266,18 @@ "Other Palaeontology Objects", "Minerals and Gems", "Loose Sediment Sample", - "Mixed Solid Mater Sample", + "Mixed Solid Matter Sample", "Water-Ice Sample", "Liquid or Gaseous Matter Sample", "Mixed Geology Objects", "Terrestrial Finds/Falls", "Terrestrial Impacta", "Sample Returns", + "Sedimentary Rock", + "Metamorphic or Igneous Rock", + "Plant Genetic Resource", + "Floral and Faunal remains", + "Other Anthropology Objects", "Unclassified" ], "description": "Countable things (objects) served as a more detailed classification of each of the disciplines.",