Skip to content

Commit

Permalink
Push changes in digital entity
Browse files Browse the repository at this point in the history
  • Loading branch information
samleeflang committed Jun 5, 2024
1 parent 31c6d4f commit 2bcdff3
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 45 deletions.
29 changes: 24 additions & 5 deletions data-model/fdo-types/0.3.0/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,31 @@ New version 0.3.0 for all files concerning the digital specimen.
## ODS Prefix
ODS prefix for all terms which still weren't assigned to a ontology.

## Updated arrays to be plural
We decided to update the arrays to be plural, in line with recommendated practices.
This means that where Darwin Core Classes where available we wrapped this by an ods term with the plural.
For example, `dwc:Identification` becomes wrapped in `ods:Identifications` which now contains zero or more instances of `dwc:Identification`.
The tradeoff is that we added an additional layer of nesting, but we believe this is worth it to keep the terms in line with the Darwin Core standard.
## ID capitalised
All terms that contain ID are now capitalised, for example `ods:ID` instead of `ods:id`.
This makes it more in line with Darin Core from which we borrow most of our terms.

## Added Organism terms
Added terms for dwc:Organism class and put them on the top level.
They can be used to indicate that this specimen is from a particular organism.
We could use this to group all specimen from a single organism together.

## Updated classes to be in line with best practices
All class are now capitalised.
When there will a property contains an array of classes it will start with `has`.
So the term `ods:hasIdentifications` will contain an array of `ods:Identification` classes.
If the property contains a single class it will just be the capitalised class name.

## Classes are singular
All classes are now singular, for example `ods:Identification` instead of `ods:Identifications`.
This also changed the file names to singular `citations.json` became `citation.json`

## Added jsonld properties
Each class now contains a required `@type` property to indicate the type of the class.
Optionally (except for the `ods:DigitalSpecimen` class) a `@id` property which can be used for the identifier.
This is an additional property, it does not replace the id terms, such as `dwc:taxonID`.

## Other
Small changes in description for some terms.
dwc:institutionName is not a Darwin Core term, converted to ods:institutionName.
Fixed the regex for some of the terms.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"@id": "https://doi.org/10.22/ABC-DEF-GHI",
"@type": "ods:DigitalSpecimen",
"ods:ID": "https://doi.org/10.22/ABC-DEF-GHI",
"ods:version": 1,
"ods:created": "2024-06-05T12:34:56Z",
"ods:type": "https://doi.org/10.15468/1a2b3c",
"dcterms:type": "Image",
"ac:accessURI": "https://example.org/digital-object/12345",
"dwc:institutionID": "https://ror.org/015hz7p22",
"ods:institutionName": "National Museum of Natural History",
"dcterms:format": "image/jpeg",
"dcterms:license": "https://creativecommons.org/licenses/by/4.0/",
"dcterms:description": "A high-resolution image of a rare specimen.",
"dcterms:rights": "Public domain",
"ods:rightsURI": "https://creativecommons.org/publicdomain/zero/1.0/",
"dcterms:accessRights": "Open access",
"dcterms:rightsHolder": "National Museum of Natural History",
"dcterms:source": "Museum archives",
"dcterms:creator": "Dr. John Doe",
"dcterms:created": "2024-06-05",
"dcterms:modified": "2024-06-05"
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@
"$comment": "DigitalObject Version 0.3.0",
"type": "object",
"properties": {
"@id": {
"type": "string",
"description": "The unique identifier of the object",
"pattern": "https:\\/\\/doi\\.org\\/10\\.\\d+\\/[-\\w]+",
"examples": [
"https://doi.org/10.22/XXX-XXX-XXX"
]
},
"@type": {
"type": "string",
"description": "The type of the object",
"const": "ods:DigitalEntity"
},
"ods:ID": {
"type": "string",
"description": "The unique digital identifier of the object",
Expand Down Expand Up @@ -61,8 +74,8 @@
},
"dwc:institutionID": {
"type": "string",
"format": "(https:\/\/ror\.org\/0[\w]{6}[0-9]{2})|(http:\/\/www\.wikidata.org\/entity\/\w+)",
"description": "ROR or Wikidata identifier, based on https://rs.tdwg.org/dwc/terms/institutionID",
"pattern": "^(https:\\/\\/ror.org\\/\\w{9})|(https:\\/\\/www.wikidata.org/wiki/Q\\w{6})",
"examples": [
"https://ror.org/015hz7p22"
]
Expand Down Expand Up @@ -104,17 +117,12 @@
},
"dcterms:rightsHolder": {
"type": "string",
"description": "https://purl.org/dc/terms/rightsHolder",
"description": "https://purl.org/dc/terms/rightsHolder"
},
"dcterms:source": {
"type": "string",
"description": "https://purl.org/dc/terms/source"
},
"ods:sourceURI": {
"type": "string",
"format": "uri",
"$comment": "It is already recommended to use URI in the dcterms:source"
},
"dcterms:creator": {
"type": "string",
"description": "https://purl.org/dc/elements/1.1/creator"
Expand All @@ -127,72 +135,48 @@
"type": "string",
"description": "https://purl.org/dc/terms/modified"
},
"ods:Assertions": {
"ods:hasAssertion": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ods:Assertion": {
"type": "object",
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/digital-specimens/assertions.json"
}
}
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/digital-specimens/assertion.json"
}
},
"ods:Citations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ods:Citation": {
"type": "object",
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/shared-models/citations.json"
}
}
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/shared-models/citation.json"
}
},
"ods:Identifiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ods:Identifier": {
"type": "object",
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/shared-models/identifiers.json"
}
}
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/shared-models/identifier.json"
}
},
"ods:EntityRelationships": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ods:EntityRelationship": {
"type": "object",
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/shared-models/entity-relationships.json"
}
}
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/shared-models/entity-relationship.json"
}
},
"ods:Agents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ods:Agent": {
"type": "object",
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.1.0/shared-models/agent.json"
"$ref": "https://schemas.dissco.tech/schemas/digitalobjects/0.3.0/shared-models/agent.json"
}
}
}
}
},
"required": [
"@id",
"@type",
"ods:ID",
"ods:version",
"ods:created",
"ac:accessURI",
"dcterms:license"
"ac:accessURI"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@
"description": "The type of the object",
"const": "ods:DigitalSpecimen"
},
"ods:ID": {
"type": "string",
"description": "The unique 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",
Expand Down Expand Up @@ -380,6 +388,7 @@
"required": [
"@id",
"@type",
"ods:ID",
"ods:version",
"ods:type",
"ods:created",
Expand Down

0 comments on commit 2bcdff3

Please sign in to comment.