BioSchemas / specifications

Issue tracker, technical wiki, and example markup
https://bioschemas.org
54 stars 52 forks source link

Request to extend Expected Types for property `measurementTechnique` with Type `DefinedTerm` #594

Closed meier-rene closed 1 year ago

meier-rene commented 2 years ago

Hi, we try to promote the usage of proper metadata on web resources of research data/scientific data. For the annotation of repositories/libraries we found the types Dataset and DataCatalog to be useful. In many domains of scientific data the communities have created controlled vocabulary and/or ontologies to precisely describe the nature of the data. To our understanding, the right type to refer to a controlled vocabulary term would be the DefinedTerm type. In the Dataset type and in the PropertyValue type there is a property measurementTechnique that has the expected types Text or URL. We ask to also allow the type DefinedTerm as a valid expected type for measurementTechnique property. This would allow us to precisely refer to the used measurementTechnique if it is included in one of our ontologies.

An example: Let us consider I want to annotate a Dataset which includes a measurement with a liquid chromatography. At the moment I could do the following at the moment:

{
  "@context": "https://schema.org/",
  "@type": "Dataset",
  "@id": "https://massbank.eu/MassBank/RecordDisplay?id=NA003756",
...
  "variableMeasured": {
    "@type": "PropertyValue",
    "measurementTechnique": [
      "http://purl.obolibrary.org/obo/CHMO_0001004",
      "liquid chromatography"
    ],
    "value": 10.422,
    "unitText": "minute"
  }
}

With measurementTechnique using the DefinedTerm type, it would be totally clear that we refer to an ontology and it could look like this:

{
  "@context": "https://schema.org/",
  "@type": "Dataset",
  "@id": "https://massbank.eu/MassBank/RecordDisplay?id=NA003756",
...
  "variableMeasured": {
    "@type": "PropertyValue",
    "measurementTechnique": {
      "@type": "DefinedTerm",
      "@id": "http://purl.obolibrary.org/obo/CHMO_0001004",
      "inDefinedTermSet": {
        "@type":"DefinedTermSet",
        "@id":"http://purl.obolibrary.org/obo/chmo.owl",
        "name": "Chemical Methods Ontology"
      },
      "termCode": "CHMO:0001004",
      "name": "liquid chromatography"
    },
    "value": 10.422,
    "unitText": "minute"
  }
}

This would identify the measurmentTechnique without any ambiguity.

Please could the measurementTechnique property be extended to include DefinedTerm as an expected type.

Kind Regards, Rene

@sneumann, @uly55e5

AlasdairGray commented 2 years ago

@sneumann, @uly55e5 I have updated your text above to correct some aspects. In particular, the Schema.org community have no notion of profile, so these have all been changed to type.

However, I think your examples are incorrect. You have embedded the measurementTechnique property within the PropertyValue but I think it should be a property applied directly to the dataset according to the Schema.org specification. So something like

{
  "@context": "https://schema.org/",
  "@type": "Dataset",
  "@id": "https://massbank.eu/MassBank/RecordDisplay?id=NA003756",
...
  "variableMeasured": {
    "@type": "PropertyValue",
    "value": 10.422,
    "unitText": "minute"
  },
  "measurementTechnique": {
      "@type": "DefinedTerm",
      "@id": "http://purl.obolibrary.org/obo/CHMO_0001004",
      "inDefinedTermSet": {
        "@type":"DefinedTermSet",
        "@id":"http://purl.obolibrary.org/obo/chmo.owl",
        "name": "Chemical Methods Ontology"
      },
      "termCode": "CHMO:0001004",
      "name": "liquid chromatography"
    }
}

Although I do see that your approach will allow the alignment between a variable and how it was measured.

meier-rene commented 2 years ago

Thank you for your comment. You have identified my motivation for putting the measurmentTechnique inside of the PropertyValue correctly. This makes clear that this particular value was measured with this particular method.

Of course its also possible to define the measurementTechnique as property of the Dataset. The advantage of having the measurementTechnique inside of the variableMeasured property is, you can define several different variableMeasured with its respective measurementTechnique. I can imagine many cases, where a Dataset would have many different experimental determined values. I don't know how to define this properly in a different way than the one I chose. But both arrangements are legal to my understanding, because variableMeasured can be of Type PropertyValuewhich has a property measurmentTechnique.

But this issue is not about the place where to define the measurmentTechnique, but about the Type used to define the measurmentTechnique. We ask for DefinedTerm as additional Type of measurmentTechnique, which is currently limited to Text and URL.

Legend: Italic properties of a type code style a Type

meier-rene commented 2 years ago

Hi all, I want to ask if there has been any progress on this? Is there anything we can do to get this flying?

I would like to summarize our proposal to make clear what we need/want: We need to refer to ontology terms as value of the property measurementTechnique. The natural Type for this would be DefinedTerm. Thats why we ask to add DefinedTerm along with Text and URL as expected values for measurementTechnique.

Are there any objections?

Kind Regards, Rene

gtsueng commented 1 year ago

related issue at schema.org: https://github.com/schemaorg/schemaorg/issues/2734

sneumann commented 1 year ago

Another related issue is https://github.com/schemaorg/schemaorg/issues/3250

gtsueng commented 1 year ago

@meier-rene We have rekindled this discussion at schema.org (where it belongs). Please share your insight on the matter at https://github.com/schemaorg/schemaorg/issues/3250.

ljgarcia commented 1 year ago

Closing this issue as DefinedTerm in now in the range of measurementTechnique see: