tdwg / mids

11 stars 7 forks source link

MIDS mapping to LtC #65

Open jbstatgen opened 1 year ago

jbstatgen commented 1 year ago

Following up on @DavidFichtmueller 's recent MIDS Mapping to ABCD and @wouteraddink 's RFC on MIDS1 specimen type and object type controlled vocabularies in DiSSCo here the current state of a mapping to the upcoming Latimer Core collection description standard, to which some references already exist in the MIDS documentation.

It is important to note that the information recorded by the terms in LtC (as classes, properties and attributes) refer to the ObjectGroup, not an object (entity) within the ObjectGroup, even if the ObjectGroup consists of only a single specimen.

MIDS information element ICS Requirement LtC Class or Property Mapping Notes
Modified CreatedOn ltc:RecordLevel.hasPersonRole.hasTemporalCoverage
Modified ModifiedOn ltc:RecordLevel.hasPersonRole.hasTemporalCoverage
RecordCreator i) Name ltc:RecordLevel.hasPersonRole.hasPerson.fullName abcd:fullName
RecordCreator ii) Referent ltc:RecordLevel.hasPersonRole.hasPerson.hasIdentifier with ltc:Identifier.identifierSource, ltc:Identifier.identifierType, ltc:Identifier.identifierValue
MIDS Level MidsLevel ltc:MeasurementOrFact with ltc:MeasurementOrFact.measurementMethod, ltc:MeasurementOrFact.measurementType, ltc:MeasurementOrFact.measurementValue
PhysicalSpecimenId PhysicalSpecimenId ltc:RecordLevel.hasIdentifier with ltc:Identifier.identifierSource, ltc:Identifier.identifierType, ltc:Identifier.identifierValue
Organisation Institution ltc:OrganisationalUnit
i) Code ltc:OrganisationalUnit.organisationalUnitName or ltc:OrganisationalUnit.hasIdentifier with ltc:Identifier.identifierType = institution code
ii) Referent ltc:OrganisationalUnit.hasIdentifier an Identifier (eg. ROR) with ltc:Identifier.identifierSource, ltc:Identifier.identifierType, ltc:Identifier.identifierValue
SpecimenType MaterialType ltc:ObjectGroup.typeOfCollection based on the provided examples
ObjectType (sometimes called PreparationType) ltc:ObjectGroup.preservationMethod based on the provided examples this is NOT ltc:ObjectGroup.preparationType !
Name ScientificName ltc:ObjectGroup.collectionName
i) Name appropriate to the specimen ltc:ObjectGroup.collectionName
ii) Referent ltc:ObjectGroup.hasIdentifier with ltc:Identifier.identifierSource, ltc:Identifier.identifierType, ltc:Identifier.identifierValue
Licence ltc:RecordLevel.license
- Has image(s) ltc:MeasurementOrFact with ltc:MeasurementOrFact.measurementMethod, ltc:MeasurementOrFact.measurementType, ltc:MeasurementOrFact.measurementValue
- Has other media type(s) ltc:MeasurementOrFact with ltc:MeasurementOrFact.measurementMethod, ltc:MeasurementOrFact.measurementType, ltc:MeasurementOrFact.measurementValue
wouteraddink commented 1 year ago

What is ICS?

jbstatgen commented 1 year ago

Please see the MIDS-definition-v0.16-28May2022.md there is a section on conformance, with 9.2 Implementation Conformance Statement (ICS). The table entries are from the tables there (Tables 8 and 9).

wouteraddink commented 1 year ago

Ah ok, I think that document is outdated, you should probably only take into account the mids terms labeled as status+accepted+in+specification in github

jbstatgen commented 1 year ago

Checking the issues labeled with "status: accepted in specification", the mapping seems to remain valid and up-to-date. Most of those terms are earmarked for MIDS-2 and -3. Here, the mapping is focusing on Levels 0 and 1, following your and David's approach.

The column for the ICS terms was added, since some of the subcategories (code, referent, name, etc.) appear in the comments to the issues, and the structure of the ICS tables provided a unified system.

In addition, as becomes apparent through the mapping, a single term in MIDS might be comprehensively covered by a combination of several terms in LtC. While the type and source of an identifier might be obvious for some identifiers, other identifiers cannot be assigned to a type or source based on their value.

jbstatgen commented 1 year ago

Obviously, LtC is still under review, thus any mapping has to be preliminary. However, the mapping to MIDS and thus to ABCD and openDS has been very insightful (and enjoyable - generally it seems to work!). It's outcome can inform decisions in LtC.

For example, MIDS, openDS, LtC and in a way iSamples are defining objectType each very differently based on the provided examples and proposed vocabularies. In none of the four standards there is are good mapping. More thoughts on this in the DiSSCo RFC.

jbstatgen commented 1 year ago

Just checked dwc:preparations:

Its examples are "fossil, cast, photograph, DNA extract, skin | skull | skeleton, whole animal (ETOH) | tissue (EDTA)".

These examples cover items informing on several separate dimensions. Overall however, the intention of dwc:preparations might be for it to map to ltc:preservationMethod.

emhaston commented 1 year ago

It's great to have this to work on the mapping to LtC. Working through each element, starting with what is currently termed PhysicalSpecimenID in MIDS.

This is mapped above to ltc:RecordLevel.hasIdentifier. From the Github record for the RecordLevel it sounds as if this would refer to the digital record idenfier rather than the physical object identifier? https://github.com/tdwg/cd/issues/43 "The machine-actionable information profile for the collection description digital object." https://github.com/tdwg/cd/issues/126 "A numeric, textual value, or reference such as an IRI, that can be used to uniquely identify the object to which it is attached."

Is LtC including the materialSampleId which may map more exactly to the PhysicalSpecimenID in MIDS?

jbstatgen commented 1 year ago

@emhaston Thanks a lot for looking into the mapping. The ltc:Identifier class is a generic class that can be attached to several other classes and thus identify an analog/material entity as well as its digital representation.

Looking at the mapping again, I think you are right that in this case the identifier for the material entity is needed. Thus, mapping PhysicalSpecimenId to ltc:RecordLevel.hasIdentifier isn't correct. The corresponding level would be ltc:ObjectGroup.hasIdentifier, or rather materialSampleID (or potentially updated equivalent).

Thereby, an object group isn't the object itself, even if the object group might contain only a single material object. Thus, overall this wouldn't be an exact mapping, but one of the other types listed by SSSOM. Here it becomes apparent that the scope of LtC differs from the one of MIDS.