W3C home > Mailing lists > Public > public-linked-json@w3.org > August 2016

Re: JSON-LD & nested structure

From: Dave Longley <dlongley@digitalbazaar.com>
Date: Wed, 17 Aug 2016 17:04:30 -0400
To: Gregg Kellogg <gregg@greggkellogg.net>
Cc: Aymeric Brisse <aymeric.brisse@gmail.com>, JSON-LD CG <public-linked-json@w3.org>
Message-ID: <c8e2afd0-9448-90fd-2c3d-cdadd20b3007@digitalbazaar.com>
On 08/17/2016 04:43 PM, Gregg Kellogg wrote:
>
> Gregg Kellogg
> gregg@greggkellogg.net
>
>> On Aug 17, 2016, at 12:50 PM, Dave Longley <dlongley@digitalbazaar.com> wrote:
>>
>> On 08/17/2016 12:28 PM, Aymeric Brisse wrote:
>>> Hello Gregg & Dave,
>>>
>>> I am currently dealing with another problem. Let's say 2 resources
>>> are linked together by more than 1 predicate.
>>>
>>> As a JSON API developer that wants to return a tree and not a graph
>>> I expect that the following LD framed graph...
>>>
>>> [snip]
>>>
>>> ... to duplicate some parts of it if needed
>>>
>>> That way the developper don't have to deal with an identitymap
>>> pattern just to parse the JSON, meaning that he can access directly
>>> to the hash object["pmcore:relB"]["rdfs:label"]["@value"]
>>>
>>> How can it be achieved in an automatic manner?
>>
>> The JavaScript, Python, and PHP framing implementations support several
>> framing "embed" options:
>>
>> @always - always embed (nest) nodes except when a circular reference is
>> encountered, even if it duplicates data
>>
>> @last - (the default) only embed the last occurrence of a particular
>> node so that the data is not modified via duplication
>>
>> @never - never embed nodes, always use simple references
>>
>> Some more discussion is here:
>>
>> https://github.com/json-ld/json-ld.org/issues/377
>>
>> The default embed option can be changed at the API level by passing in
>> a flag to the `frame` call. The embed option can also be set at a
>> more granular level within the frame itself. I've done this on the
>> playground using your example data and the "@always" option, to produce
>> what I believe is the desired output:
>>
>> http://json-ld.org/playground/#/gist/fa39b164da8dd39e2e9c9991d8392efb
>>
>> I don't know if the Ruby implementation supports these features yet.
>
> I believe I support all of the embedding options that Dave’s does.
>
> BTW, on my short-term list is to try to update the Framing spec based on this common behavior.

That would be awesome and much appreciated, Gregg. I can review and
tweak changes at some point.


-- 
Dave Longley
CTO
Digital Bazaar, Inc.
http://digitalbazaar.com
Received on Wednesday, 17 August 2016 21:04:55 UTC

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