- From: ljgarcia <ljgarcia@ebi.ac.uk>
- Date: Wed, 21 Nov 2018 14:45:06 +0000
- To: Jerven Bolleman <jerven.bolleman@sib.swiss>
- Cc: public-bioschemas@w3.org
Hi Melanie, I do not see why you would need the second local context in your example. Now, regarding http://purl.obolibrary.org/obo/OBI_0000747. Are you trying to express that schema:Sample is somehow "inspired/based" on http://purl.obolibrary.org/obo/OBI_0000747? If yes, you do not need to add it here. That will be expressed somehow as part of the Sample definition is schema.org. The "somehow" way to express it, I think has not been agreed yet, it would be a property such as "baseOn", "equivalentTo" or so. Kind regards, On 2018-11-21 14:00, Jerven Bolleman wrote: > Hi Melanie, > > I think you want to do this. > > { > "@context": [ "http://schema.org", > { > "OBI" :"http://purl.obolibrary.org/obo/OBI_" > } > ], > "@type": "DataRecord", > "@id": "biosample:SAMEA100000", > "mainEntity": { > "@type" : "OBI:0000747" > } > } > > Here we start with merging two contexts. The standard schema.org and > one just for your file. Here trying to make the OBI one easier to > read. > > So your top level is a DataRecord linked via schema:mainEntity to > something with type "OBI:0000747". > > You can see what a JSON-LD snipit means in RDF at > https://json-ld.org/playground/ e.g. http://tinyurl.com/y9ccen2j > > > I am repeating myself here but in additionalType is only for the > MicroData serialization which no one in the bioschema space seems to > use. > > If you have more than one type just do > > { > "@context": [ "http://schema.org", > { > "OBI" :"http://purl.obolibrary.org/obo/OBI_" > } > ], > "@type": [ "DataRecord", "Thing", "WebPage" ], > "@id": "biosample:SAMEA100000", > "mainEntity": { > "@type" : "OBI:0000747" > } > } > > To be honest I don't like the DataRecord at all and am still > advocating it's removal from bioschema. Mostly because schema.org > doesn't have StoreRecord, just Store. > > Regards, > Jerven > > PS Alasdair, Leyla maybe remove additionalType considering the > confusion it has generated and we have no Microdata examples. > > On 11/21/2018 02:40 PM, Melanie Courtot wrote: >> Hi, >> >> Hi - following up discussions at the BioHackathon we’re looking at >> updating our sample serialisation. We are running into some questions >> with respect to the context usage and are hoping someone can help. >> >> Specifically, I’m trying to understand the usage of contexts and base >> IRIS - I’m familiar with XML base and namespaces as well as RDF, but I >> was looking at some schema.org <http://schema.org> JSON-LD and trying >> to understand nuances based on the official spec at >> https://www.w3.org/TR/json-ld/#the-context >> >> Here is the relevant excerpt from our serialisation: >> >> { >> "@context": "http://schema.org", >> "@type": "DataRecord", >> "identifier": "biosample:SAMEA100000", >> "mainEntity": { >> "@context": [ >> "http://schema.org", >> { >> "@base": "http://schema.org" >> }, >> { >> "Sample": { >> "@id": "http://purl.obolibrary.org/obo/OBI_0000747" >> } >> } >> ], >> …. >> >> >> As you can see there is a repetition of contexts and base that I don’t >> think is needed. >> >> 1. The first context, which is at the top level in our sample page, >> seems to match example 4 from the spec, and would actually be a >> reference to another json-ld context? Though it doesn’t point to a >> json-ld file. I couldn’t find this specific notation anywhere else in >> the JSON-LD spec, but this is what is used throughout on schema.org >> <http://schema.org>, eg https://schema.org/Person, example 1 in >> json-ld. >> >> 2. The whole page is a DataRecord (where DataRecord is a new type we >> are proposing to schema.org <http://schema.org>, so should expand to >> http://schema.org/DataRecord) - which is expected as we want to >> describe a data record in our resource, and we then describe the >> mainEntity in that DataRecord. >> As you can see, the context is redefined in mainEntity - my >> understanding is that this means this specific context declaration >> will be valid only within the scope of that mainEntity. This context >> reads >> >> "@context": [ >> "http://schema.org", >> { >> "@base": "http://schema.org" >> }, >> >> I don’t understand what the first "http://schema.org” means, and >> whether it’s needed as we explicitly define the base. Also this seems >> redundant with the global page context we have defined at the page >> level, so I’d be tempted to just have >> >> "@context": { >> "@base": "http://schema.org" >> }, >> >> At the top level. >> >> 3. Finally, we are trying to say that http://schema.org/Sample (which >> is a new type we’re proposing) also has the IRI >> "http://purl.obolibrary.org/obo/OBI_0000747”. I’m not sure adding >> >> { >> "Sample": { >> "@id": "http://purl.obolibrary.org/obo/OBI_0000747" >> } >> >> In the context is the right way of doing it, or whether we should just >> add an additionalType <https://schema.org/additionalType> property on >> the sample object later on - or should we do both? >> >> Apologies for the rather long email, but I hope we have a JSON-LD >> specialist on this list that can provide some guidance as to how we >> should best use those. Thanks in advance for any help! >> >> Cheers, >> Melanie >> >> >> >> >> -- Mélanie Courtot, PhD >> GA4GH/BioSamples Project lead >> European Bioinformatics Institute (EMBL-EBI) >>
Received on Wednesday, 21 November 2018 14:46:34 UTC