- From: Justin Clark-Casey <justinccdev@gmail.com>
- Date: Mon, 19 Mar 2018 17:47:27 +0000
- To: Philippe <proccaserra@gmail.com>
- Cc: Luca Cherubin <cherubin@ebi.ac.uk>, public-bioschemas@w3.org
- Message-ID: <CAME9NR_TjjoV5UY_G78R9eQp3K=6EdAJ31cS6jnXTRoG4AhnnQ@mail.gmail.com>
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