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

Digital Specimen update to 0.2.0 #92

Merged
merged 2 commits into from
May 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion data-model/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM nginxinc/nginx-unprivileged:alpine3.18-slim
FROM nginxinc/nginx-unprivileged:1.26-alpine

COPY ./nginx/nginx.conf /etc/nginx/nginx.conf

Expand All @@ -22,3 +22,4 @@ COPY digitalobjects/0.1.0/digital-specimens/schema schema-root/schemas/digitalob
COPY digitalobjects/0.1.0/shared-models/schema schema-root/schemas/digitalobjects/0.1.0/shared-models
COPY digitalobjects/0.1.0/digital-media-objects/schema schema-root/schemas/digitalobjects/0.1.0/digital-media-objects

COPY digitalobjects/0.2.0/digital-specimens/schema schema-root/schemas/digitalobjects/0.2.0/digital-specimens
20 changes: 20 additions & 0 deletions data-model/digitalobjects/0.2.0/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Release Notes

New version 0.0.2 for some of the files to include new terms.

## Verbatim Terms
Verbatim terms added such as `dwc:verbatimLocality` and `dwc:verbatimEventDate`.
The verbatim terms will be filled with the verbatim fields but not used for any further processing.
They are mainly used to keep the original value on the label.
The non-verbatim fields will be used for further processing.
For the non-verbatim fields we will first check the non-verbatim field, if this is not available we will take the verbatim field.
For example, to fill the `dwc:locality` field we will first check the `dwc:locality` field, if this is empty we will take the `dwc:verbatimLocality` field.

## ID fields
MIDS 3 requires several ID fields to be present.
These were not all included in the 0.1.0 version.

## Updated class names
Updated class names to reuse Darwin Core classes as much as possible.
Where it is not possible to reuse Darwin Core we prefixed them with `???:`.
Made them singular and camelCase.
Original file line number Diff line number Diff line change
@@ -0,0 +1,336 @@
{
"$id": "https://schemas.dissco.tech/schemas/digitalobjects/0.2.0/digital-specimens/digital-specimen.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$comment":"DigitalObject Version 0.2.0",
"type": "object",
"properties": {
"ods:id": {
"type": "string",
"description": "The unique digital identifier of the object",
"pattern": "https:\/\/doi.org\/10.22\/(.){3}-(.){3}-(.){3}",
"examples": [
"https://doi.org/10.22/XXX-XXX-XXX"
]
},
"ods:version": {
"type": "integer",
"description": "The version of the object, each change generates a new version",
"minimum": 1,
"examples": [
1
]
},
"ods:created": {
"type": "string",
"description": "The timestamp that the object version was created in DiSSCo",
"format": "date-time",
"examples": [
"2023-10-02T12:31:34.806Z"
]
},
"ods:type": {
"type": "string",
"description": "The FDO type of the object",
"$comment": "Unclear what value goes here"
},
"ods:midsLevel": {
"type": "integer",
"description": "The MIDS level of the object, see https://www.tdwg.org/community/cd/mids/",
"minimum": 0,
"maximum": 3
},
"ods:normalisedPhysicalSpecimenId": {
"type": "string",
"description": "The physical specimen identifier of the object. When locally unique this is a combination between source-system-id and the local identifier"
},
"ods:physicalSpecimenId": {
"type": "string",
"description": "The physical specimen identifier of the object. Taken over as-is"
},
"ods:physicalSpecimenIdType": {
"type": "string",
"description": "To indicate if the physical identifier is globally unique or locally unique",
"enum": [
"Resolvable",
"Global",
"Local"
],
"$comment": "Do we need to further distinguish the identifier, for example add 'RESOLVABLE'"
},
"ods:topicOrigin": {
"type": "string",
"description": "The topic origin of the specimen",
"enum": [
"Natural",
"Human-made",
"Mixed origin",
"Unclassified"
],
"example": [
"Natural"
]
},
"ods:topicDomain": {
"type": "string",
"description": "The topic domain of the specimen",
"enum": [
"Life",
"Environment",
"Earth System",
"Extraterrestrial",
"Cultural Artefacts",
"Archive Material",
"Unclassified"
],
"example": [
"Life"
]
},
"ods:topicDiscipline": {
"type": "string",
"description": "The topic discipline of the specimen",
"enum": [
"Anthropology",
"Botany",
"Astrogeology",
"Geology",
"Microbiology",
"Palaeontology",
"Zoology",
"Ecology",
"Other Biodiversity",
"Other Geodiversity",
"Unclassified"
],
"example": [
"Botany"
]
},
"ods:markedAsType": {
"type": "boolean",
"description": "The specimen is marked as a type specimen"
},
"ods:hasMedia": {
"type": "boolean",
"description": "Indicates if there are any media objects attached to this specimen"
},
"ods:specimenName": {
"type": "string",
"description": "The accepted specimen name of the digital specimen",
"example": [
"Roptrocerus typographi (Györfi, 1952)"
]
},
"ods:sourceSystem": {
"type": "string",
"description": "The handle to the source system object which retrieved the data from the CMS",
"pattern": "https:\/\/hdl.handle.net\/20.5000.1025\/(.){3}-(.){3}-(.){3}"
},
"ods:livingOrPreserved": {
"type": "string",
"description": "Whether the specimen is living or preserved",
"enum": [
"Living",
"Preserved"
]
},
"dcterms:license": {
"type": "string",
"description": "License for the metadata of the physical specimen",
"$comment": "Determine available licenses"
},
"dcterms:modified": {
"type": "string",
"description": "Modification date for specimen information"
},
"dwc:basisOfRecord": {
"type": "string",
"description": "The basis for the record",
"$comment": "Switch to enumeration as this is a limited list"
},
"dwc:preparations": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/preparations",
"example": [
"fossil"
]
},
"dwc:disposition": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/disposition",
"examples": [
"in collection"
]
},
"dwc:institutionCode": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/institutionCode",
"examples": [
"MNF"
]
},
"dwc:institutionId": {
"type": "string",
"description": "ROR or Wikidata identifier, based on https://rs.tdwg.org/dwc/terms/institutionID",
"examples": [
"https://ror.org/015hz7p22"
],
"$comment": "Add format for ROR or Wikidata ID"
},
"dwc:institutionName": {
"type": "string",
"description": "Full museum name according to ROR or Wikidata",
"examples": [
"National Museum of Natural History"
],
"$comment": "Not part of DWC or the GBIF UM"
},
"dwc:collectionCode": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/collectionCode",
"examples": [
"EBIRD"
],
"$comment": "Cetaf collection code?"
},
"dwc:collectionId": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/collectionID",
"examples": [
"https://www.gbif.org/grscicoll/collection/fbd3ed74-5a21-4e01-b86a-33d36f032d9c"
],
"$comment": "Are we going to use GRSciColl or Cetaf collection identifiers?"
},
"dwc:informationWithheld": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/informationWithheld",
"examples": [
"location information not given for endangered species"
],
"$comment": "Feels like this field should be true or false and another field should contain the explanation"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, but the example shows as text desc. so let's use it with text for now.

},
"dwc:dataGeneralizations": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/dataGeneralizations",
"examples": [
"Coordinates generalized from original GPS coordinates to the nearest half degree grid cell."
]
},
"dwc:ownerInstitutionId": {
"type": "string",
"description": "ROR or Wikidata identifier for the owning institution",
"$comment": "DWC only has ownerInstitutionCode, however code is not an (resolvable identifier)",
"examples": [
"https://ror.org/03wkt5x30"
]
},
"dwc:recordedBy": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/recordedBy",
"examples": [
"José E. Crespo"
]
},
"dwc:recordedById": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/recordedByID",
"examples": [
"https://orcid.org/0000-0002-1825-0097"
]
},
"dwc:datasetName": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/datasetName",
"examples": [
"Hummingbirds"
]
},
"dcterms:accessRights": {
"type": "string",
"description": "https://purl.org/dc/terms/accessRights",
"examples": [
"not-for-profit use only"
]
},
"dcterms:rightsHolder": {
"type": "string",
"description": "https://purl.org/dc/terms/rightsHolder",
"examples": [
"Museu de História Natural e da Ciência da Universidade do Porto"
]
},
"dwc:verbatimLabel": {
"type": "string",
"description": "https://rs.tdwg.org/dwc/terms/verbatimLabel",
"examples": [
"ILL: Union Co. Wolf Lake by Powder Plant Bridge. 1 March 1975 Coll. S. Ketzler, S. Herbert\n\nMonotoma longicollis 4 ♂ Det TC McElrath 2018\n\nINHS Insect Collection 456782"
]
},
"dwc:MaterialEntity": {
"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.2.0/digital-specimens/material-entity.json"
}
},
"dwc:Identification": {
"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.2.0/digital-specimens/identifications.json"
}
},
"???:Assertion": {
"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.1.0/shared-models/assertions.json"
}
},
"dwc:Occurrence": {
"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.2.0/digital-specimens/occurrences.json"
}
},
"???:EntityRelationship": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we mark this gbif:EntityRelationship to indicate that they are from the new data model?

"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.1.0/shared-models/entity-relationships.json"
}
},
"???:Citation": {
"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.1.0/shared-models/citations.json"
}
},
"???:Identifier": {
"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.1.0/shared-models/identifiers.json"
}
},
"???:ChronometricAge": {
"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.1.0/digital-specimens/chronometric-age.json"
}
},
"???:Agent": {
"type": "array",
"items": {
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.1.0/shared-models/agent.json"
}
}
},
"required": [
"ods:id",
"ods:version",
"ods:type",
"ods:created",
"ods:midsLevel",
"ods:physicalSpecimenId",
"ods:physicalSpecimenIdType",
"ods:sourceSystem",
"dcterms:license",
"dwc:institutionId"
]
}
Loading
Loading