Re: [Proposal] CategoryCode as valid type for valueReference for any PropertyValue in Bioschemas/schema.org

So, last Friday at the Samples event, Leyla, Rafa and myself were talking
about the alternative of specifying additional properties using a second
context, rather than through AdditionalProperty.  The original discussion
in November was at [1] but I don't think was fully formalized (and the
example links are now broken).  But under this approach, I think the above
would instead be something like

{
    "@context": ["http://schema.org", "http://bioschemas.org/samples"],
    "@type": ["SampleDataRecord"],
    "diagnosisAvailable": [
        "http://purl.bioontology.org/ontology/ICD10/C00-C97.9",
        "http://purl.bioontology.org/ontology/ICD10/D00-D09.9"
    ]
}

with http://bioschemas.org/samples as

{
  "@context": {
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
  },
  "@graph": [
    "@id"; "http://bioschemas.org/samples",
    {
      "@id": "http://bioschemas.org/samples/SampleDataRecord",
      "@type": "rdfs:Class",
      "rdfs:subClassOf": { "@id": "http://schema.org/DataRecord" }
    }
    {
      "@id": "http://bioschemas.org/samples/diagnosisAvailable",
      "@type": "rdfs:Property",
      "rdfs:label": "Diagnosis available",
      "http://schema.org/domainIncludes": [
        {
          "@id": "http://bioschemas.org/samples/SamplesDataRecord"
        },
      "http://schema.org/rangeIncludes": [
        {
          "@id", "http://schema.org/URL"
        }
      ]
    }
  ]
}

See [2] for schema.org's own type specification file.

Pros:
  * Using existing validation tools should be easier, as this definition
uses standard schema.org mechanisms to define additional properties, rather
than the AdditionalProperty escape hatch.
  * Information such as name and label can go in the bioschemas.org file
rather than be repeated in the data record text
  * Easier to put in different language translations to the bioschemas.org
file

Cons:
  * Applications may need to rely the URL itself (purl.org above) to
retrieve information such as human-readable name for the categoryCode
itself (e.g. *"In situ neoplasms"*).  This is good semantic web practise I
believe, but may reduce reliability.  Possibly this information could also
be served from http://bioschemas.org as a similar set of property
definitions.
  * Perhaps not quite so easy to add arbitrary additional properties,
though a data provider could always define and serve a third context
themselves, or embed it inline.

Thoughts?  Would especially like Leyla (though I know she's on holiday),
Rafa, Alasdair, Dan, etc. to weigh in.

[1]
https://lists.w3.org/Archives/Public/public-bioschemas/2017Nov/thread.html
[2] https://schema.org/version/latest/schema.jsonld

--
Justin Clark-Casey, http://justincc.org
Research Software Engineer, Intermine, Cambridge
ELIXIR UK Node technical co-orindator

On Mon, Mar 19, 2018 at 11:21 AM, Philippe <proccaserra@gmail.com> wrote:

> Hi Luca,
>
> I am including a snippet from the notes so people can have a feel for how
> things could look like:
>
> * {    "@context": "http://schema.org" <http://schema.org>,    "@type":
> ["DataRecord"],    "additionalProperty": [        {            "@type":
> "PropertyValue",            "name": "diagnosis_available",
>            "value": "urn:miriam:icd:C00-C97",            "valueReference":
> [                {                    "@type": "CategoryCode",
>                    "name": "Malignant neoplasms",                    "url":
> "http://purl.bioontology.org/ontology/ICD10/C00-C97.9"
> <http://purl.bioontology.org/ontology/ICD10/C00-C97.9>,
>                    "codeValue": "C00-C97.9"                }            ]
>        },        {            "@type": "PropertyValue",            "name":
> "diagnosis_available",            "value": "urn:miriam:icd:D00-D09",
>            "valueReference": [                {                    "@type":
> "CategoryCode",                    "name": "In situ neoplasms",
>                    "url":
> "http://purl.bioontology.org/ontology/ICD10/D00-D09.9"
> <http://purl.bioontology.org/ontology/ICD10/D00-D09.9>,
>                    "codeValue": "D00-D09.9"                }            ]
>        }, *
> I also include the link the schema.org CategoryCode:
> https://pending.schema.org/CategoryCode and their JSON-LD snippet
>
>
>    1. {
>    2.  "@context": "http://schema.org/" <http://schema.org/>,
>    3.  "@type": "CategoryCode",
>    4.  "codeValue": "Man",
>    5.  "inCodeSet": "http://id.loc.gov/vocabulary/resourceTypes"
>    <http://id.loc.gov/vocabulary/resourceTypes>
>    6. }
>
>
>
> Question: Should 'inCodeSet' attribute be used instead ?
>
> Best
>
> Philippe
>
>
> On 19/03/2018 11:10, Luca Cherubin wrote:
>
> Hi everybody,
>
> During the Hackathon event last week with various Biobanks representatives
> we had the chance to use Bioschemas profiles and types to support BioBanks
> use cases for metadata sharing.
>
> As you may know, in the Sample profile we proposed a solution for linking
> ontology terms to a PropertyValue using CategoryCode as valid type for the
> valueReference field. Note that CategoryCode is already a proposed
> schema.org type but in the bioschemas/samples specification we propose
> that it should be an acceptable value for valueReference.
>
> To support BioBank use cases, we are using DataRecord and they need to use
> the same CategoryCode strategy to describe all the PropertyValue associated
> with a DataRecord.
>
> In our opinion this is a very strong use case for supporting the use of
> CategoryCode as valid type for valueReference for any PropertyValue in
> Bioschemas/schema.org, not only for the Sample profile. We can see this
> being very useful in other areas where there is a need for a flexible
> linking of ontology terms to values.
>
> We would like to get your feedback on this.
>
> Best regards,
>
> Luca and Matt
>
>
>

Received on Monday, 19 March 2018 17:47:56 UTC