- From: David Booth <david@dbooth.org>
- Date: Fri, 27 Feb 2015 17:08:20 -0500
- To: Markus Lanthaler <markus.lanthaler@gmx.net>, public-linked-json@w3.org
BTW, what JSON-LD implementation would you suggest, for playing with serializing from RDF to JSON-LD and framing? I see several JSON-LD implementations listed here: http://json-ld.org/test-suite/reports/ If I could run something as a command-line tool it would be easiest, but if I need to invoke it from within a programming language that would be okay too. Thanks, David On 02/27/2015 04:09 PM, David Booth wrote: > Hi Markus, > > On 02/27/2015 03:23 AM, Markus Lanthaler wrote: >> On 26 Feb 2015 at 21:35, David Booth wrote: >>> On 02/25/2015 10:11 AM, Manu Sporny wrote: >>>> So, count us in - send the questions to the mailing list and it looks >>>> like you have multiple community members that would be willing to >>>> help out. >>> >>> Thanks Manu (and Markus and Jim and any others)! Okay, my first >>> question regards blank nodes. >>> >>> Here is an except of a FHIR JSON data: >>> >>> { >>> "dob": "1972-11-30", >>> "_dob": { >>> "id": "314159", >>> "extension": [{ >>> "url" : "http://example.org/fhir/extensions#text", >>> "valueString" : "Easter 1970" >>> }] >>> } >> >> Have you considered expanding dob and _dob to the same URL? Something >> like: >> >> { >> "@context": { >> "@vocab": "http://example/fhir/vocab#", >> "xsd": "http://www.w3.org/2001/XMLSchema#", >> "dob": { "@type": "xsd:date" }, >> "_dob": { "@id": "dob", "@type": "@id" }, >> "extension": { "@container": "@list" } >> }, >> "dob": "1972-11-30", >> "_dob": { >> "id": "314159", >> "extension": [ >> { >> "url": "http://example.org/fhir/extensions#text", >> "valueString": "Easter 1970" >> } >> ] >> } >> } >> >> This yields (please note extension is a list): >> >> _:b0 <http://example/fhir/vocab#dob> >> "1972-11-30"^^<http://www.w3.org/2001/XMLSchema#date> . >> _:b0 <http://example/fhir/vocab#dob> _:b1 . >> _:b1 <http://example/fhir/vocab#extension> _:b3 . >> _:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:b2 . >> _:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> >> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> . >> _:b1 <http://example/fhir/vocab#id> "314159" . >> _:b2 <http://example/fhir/vocab#url> >> "http://example.org/fhir/extensions#text" . >> _:b2 <http://example/fhir/vocab#valueString> "Easter 1970" . > > Interesting. No, I had not considered that idea. It looks like it has > the advantage of making JSON properties "dob" and "_dob" (the > extensions) more explicitly connected to each other, because their > values are now attached to the same RDF property > <http://example/fhir/vocab#dob>. But it also has the disadvantage of > overloading the <http://example/fhir/vocab#dob> property in RDF so that > its range includes both xsd:date and rdf:List , which would complicate > RDF inference. > > I had been thinking that the lack of explicit relationship between "dob" > and "_dob" properties could be a problem for RDF, but I am now convinced > that it will not be a problem. FHIR uses a closed content model, so > extensions cannot introduce new properties. This means that all of the > FHIR properties can be declared in a standard FHIR ontology, including > the relationship between "dob" and "_dob", like this: > > fhir:_dob fhir:extends fhir:dob . > >> >> You can transform these triples back to >> >> { >> "@context": ... >> "@graph": [ >> { >> "@id": "_:b0", >> "dob": "1972-11-30"m >> "_dob": { >> "@id": "_:b1", >> "id": "314159", >> "extension": [ >> { >> "@id": "_:b2", >> "url": >> "http://example.org/fhir/extensions#text", >> "valueString": "Easter 1970" >> } >> ], >> } >> } >> ] >> } >> >> with the following frame: >> >> { >> "@context": { >> "@vocab": "http://example/fhir/vocab#", >> "xsd": "http://www.w3.org/2001/XMLSchema#", >> "dob": { "@type": "xsd:date" }, >> "_dob": { "@id": "dob", "@type": "@id" }, >> "extension": { "@container": "@list" } >> }, >> "dob": {} >> } > > Wow, interesting technique! I didn't realize that the @context could > un-overload a property like that, when serializing back to JSON-LD. In > general I haven't yet thought much about how to do the serialization > back to JSON-LD from RDF, except to observe that it looks it will > require a FHIR-specific JSON-LD serializer. So it's good to know that a > technique like that is possible. > > Thanks, > David Booth > > > > > >
Received on Friday, 27 February 2015 22:08:48 UTC