Open mbjones opened 3 years ago
@amoeba this is looking good. I mentioned this on our call last week, but repeating here for posterity.... it would be good to provide structured info for https://schema.org/variableMeasured when we have it. The new SOSO guidelines on variableMeasured look like they will be amendable to 3 levels of detail:
1) If you don't have any semantic measurement type, at least provide variable names in text format using schema:PropertyValue
but without the propertyId field.
2) If you have some controlled info about measurement properties (e.g., oboe:Characteristic
), provide them as the propertyId
for a PropertyValue
instance
3) If you have full or partial measurement types, either with an oboe:Entity
specified, with an oboe:Characteristic
specified, or without either specified, then use a an instance of schema:Observation
as follows:
{
"@context": "https://schema.org/",
"@type": "Dataset",
"variableMeasured": [
{
"@type": "PropertyValue",
"name": "sea_surface_temp",
"description": "sea surface temperature measured in degrees Fahrenheit"
},
{
"@type": "PropertyValue",
"name": "sea_surface_temp",
"description": "sea surface temperature measured in degrees Fahrenheit",
"propertyID": "http://purl.obolibrary.org/obo/ENVO_04000002"
},
{
"@type": "PropertyValue",
"name": "sea_surface_temp",
"description": "sea surface temperature measured in degrees Fahrenheit",
"propertyID": {
"@type": "Observation",
"observedNode": {
"@id": "http://purl.obolibrary.org/obo/ENVO_01001581",
"name": "sea surface layer"
},
"measuredProperty": {
"@id": "http://purl.obolibrary.org/obo/PATO_0000146",
"name": "temperature"
}
}
}
]
}
I think there is still some confusion on how to represent (2), as the example given in the SOSO example is analogous to an oboe:MeasurementType
. I think it would be right if it had been to http://purl.obolibrary.org/obo/PATO_0000146, which could be conceived of as a subclass of oboe:Characteristic
. More to discuss there. For our purposes, representation (1) and (3) are likely sufficient.
Thanks @mbjones, I'm really glad to see that document has come so far. Looks like we can get a ton of metadata out of EML attributes using that pattern. I'll have a go.
From my read, it looks like we can do (1) for most records, (2) when we have semantic annotations but not annotations for both an Entity and Characteristic and (3) when we do.
I added an alignment graphic for OBOE/SSN-EXT/schema.org in order to facilitate thinking about how we do this mapping to schema.org:
We're still working on mappings in #21 but I have got a work-in-progress version of this going. It's got a number of issues but I think it's a good start. The following command triplifies an entire DataONE Data Package using the latest state of the code in https://github.com/DataONEorg/slinky/tree/feature_update_graph_pattern.