Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.0 fdo profile #138

Merged
merged 11 commits into from
Oct 7, 2024
32 changes: 20 additions & 12 deletions data-model/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,37 @@ 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
COPY fdo-profile/tettris-service/0.1.0/schema schema-root/schemas/fdo-profile/tettris-service/0.1.0
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
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
COPY fdo-profile/tombstone/1.0.0/schema schema-root/schemas/fdo-profile/tombstone/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/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/annotation/1.0.0/schema schema-root/schemas/fdo-profile/annotation/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-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/tombstone/1.0.0/schema schema-root/schemas/fdo-profile/tombstone/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
COPY fdo-profile/virtual-collection/0.1.0/schema schema-root/schemas/fdo-profile/virtual-collection/latest

# Versioned FDO Type schemas
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"data": {
"type": "https://doi.org/21.T11148/cf458ca9ee1d44a5608f",
"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",
"targetTypeName": "DigitalSpecimen",
"annotationHash": "b3dada2d-396b-cab2-665e-125659fc7ae6"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"10320/loc": "<locations><location href=\"https://dev.dissco.tech/api/v1/annotations/TEST/FFR-RTL-B8K\" id=\"0\" view=\"JSON\" weight=\"1\"/></locations>",
"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": "Distributed System of Scientific Collections",
"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"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"$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"
},
"targetTypeName": {
"type": "string",
"description": "Human-readable name of the above target type."
},
"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
}
Original file line number Diff line number Diff line change
@@ -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
}
172 changes: 172 additions & 0 deletions data-model/fdo-profile/annotation/1.0.0/schema/annotation.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
{
"$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": "<locations><location href=\"https://dev.dissco.tech/api/v1/annotations/TEST/FFR-RTL-B8K\" id=\"0\" weight=\"1\"/></locations>"
},
"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"
},
"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",
"$comment": "idx = 502"
}
},
"additionalProperties": false,
"required": [
"fdoProfile",
"fdoRecordLicenseId",
"fdoRecordLicenseName",
"digitalObjectType",
"digitalObjectName",
"pid",
"pidIssuer",
"pidIssuerName",
"pidRecordIssueDate",
"pidRecordIssueNumber",
"10320/loc",
"pidStatus",
"targetPid",
"targetType"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
"type": "string",
"description": "XML document describing location(s) of the resource",
"$comment": "idx = 101",
"example": "<locations><location href=\"https://dev.dissco.tech/api/v1/annotations/TEST/FFR-RTL-B8K\" id=\"0\" weight=\"1\"/></locations>"
"example": "<locations><location href=\"https://dev.dissco.tech/api/v1/annotations/TEST/FFR-RTL-B8K\" id=\"JSON\" weight=\"1\"/></locations>"
},
"tombstoneText": {
"type": "string",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"data": {
"type": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e",
"attributes": {
"sourceDataStandard": "dwc"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"10320/loc": "<locations><location href=\"https://dev-orchestration.dissco.tech/api/v1/mapping/TEST/QDD-Y07-QK6\" id=\"0\" view=\"JSON\" weight=\"1\"/></locations>",
"fdoProfile": "https://doi.org/21.T11148/ce794a6f4df42eb7e77e",
"fdoRecordLicense": "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"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"10320/loc": "<locations><location href=\"https://dev-orchestration.dissco.tech/api/v1/mapping/TEST/QDD-Y07-QK6\" id=\"0\" view=\"JSON\" weight=\"1\"/></locations>",
"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",
"tombstoneText": "Resource deleted by admin",
"tombstoneDate": "2024-11-17T11:57:02.933Z"
}
Loading
Loading