From b60cd19f71758798eeede4eec5fd8813c3e297c5 Mon Sep 17 00:00:00 2001 From: southeo Date: Mon, 16 Sep 2024 15:51:14 +0200 Subject: [PATCH] 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