W3C home > Mailing lists > Public > public-linked-json@w3.org > February 2015

[FHIR JSON-LD] JSON-LD implementation for serialization from RDF?

From: David Booth <david@dbooth.org>
Date: Fri, 27 Feb 2015 17:08:20 -0500
Message-ID: <54F0EAD4.5090804@dbooth.org>
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

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:18:43 UTC