W3C home > Mailing lists > Public > public-schemaorg@w3.org > June 2015

Re: JSON-LD and multiple values

From: <mfhepp@gmail.com>
Date: Tue, 9 Jun 2015 18:52:50 +0200
Cc: Melvin Carvalho <melvincarvalho@gmail.com>, Gregg Kellogg <gregg@greggkellogg.net>, John Walker <john.walker@semaku.com>, Manu Sporny <msporny@digitalbazaar.com>, "schema.org Mailing List" <public-schemaorg@w3.org>
Message-Id: <A8DD0CB0-724A-4899-80A2-2537F68B515C@gmail.com>
To: Dan Brickley <danbri@google.com>
+1 

As suggested:

1. Validators should complain about using the same property multiple times.
2. All examples in schema.org should be checked against this potential bug.
3. Optional: Add a note to respective documentation, e.g.

    http://blog.schema.org/2013/06/schemaorg-and-json-ld.html

    https://developers.google.com/schemas/formats/json-ld


Martin

-----------------------------------
martin hepp  http://www.heppnetz.de
mhepp@computer.org          @mfhepp







> On 09 Jun 2015, at 18:27, Dan Brickley <danbri@google.com> wrote:
> 
> On 9 June 2015 at 17:10, Melvin Carvalho <melvincarvalho@gmail.com> wrote:
>> 
>> 
>> On 9 June 2015 at 16:53, Gregg Kellogg <gregg@greggkellogg.net> wrote:
>>> 
>>>> On Jun 9, 2015, at 7:06 AM, Dan Brickley <danbri@google.com> wrote:
>>>> 
>>>> On 9 June 2015 at 14:36, Melvin Carvalho <melvincarvalho@gmail.com>
>>>> wrote:
>>>>> 
>>>>> 
>>>>> On 9 June 2015 at 15:33, Dan Brickley <danbri@google.com> wrote:
>>>>>> 
>>>>>> On 9 June 2015 at 14:20, Melvin Carvalho <melvincarvalho@gmail.com>
>>>>>> wrote:
>>>>>>> 
>>>>>>> 
>>>>>>> On 9 June 2015 at 14:52, John Walker <john.walker@semaku.com> wrote:
>>>>>>>> 
>>>>>>>> For the record I-JSON forbids duplicate names in an object:
>>>>>>>> https://tools.ietf.org/html/rfc7493#section-2.3
>>>>>>> 
>>>>>>> So how do you do unordered lists.  Say a user has two nicknames or
>>>>>>> telephone
>>>>>>> numbers (strings).  This is a fundamental part of linked data, if it
>>>>>>> cant
>>>>>>> easily be done it's a *massive* interoperability issue.
>>>>>> 
>>>>>> It's an array viewed from JSON, but a repeated property viewed from
>>>>>> RDF.
>>>>> 
>>>>> 
>>>>> Got it, so you'd use @list in JSON LD for an ordered list, and a
>>>>> standard
>>>>> array for unordered.
>>>>> 
>>>>> But is can I-JSON do the same thing?
>>>> 
>>>> Yup, https://www.tbray.org/ongoing/When/201x/2015/03/23/i-json
>>>> "I-JSON is just a note say­ing that if you con­struct a chunk of JSON
>>>> and avoid the in­terop fail­ures de­scribed in RFC 7159, you can call
>>>> it an “I-JSON Message”.”
>>> 
>>> Depends on what you mean by “do the same thing”; JSON does not have an
>>> unordered collection type, just an array. However, it is a syntax only. Most
>>> implementations will take this to be an ordered array of elements, and allow
>>> duplicates. JSON-LD explicitly treats these as being unordered, unless the
>>> context or an explicit @list indicates otherwise, but that’s due to the
>>> underlying data-model being RDF, where values are inherently unordered. Note
>>> that element contents in Microdata, RDFa and RDF/XML have a document order,
>>> but result in the same unordered set of values when converted to RDF.
>> 
>> 
>> Very interesting, thanks for the clarification.
>> 
>> Unordered items are not specific to RDF, or linked data, but rather, a
>> fundamental part of the web.  The web being a giant graph of links, and
>> thereby having a very special architecture, and well proven results on
>> scalability etc.
>> 
>> This issue seems to be a common case where unordered lists are neglected in
>> the design phase.  Another IETF serialization that does not have unordered
>> lists is JRD.  In fact, not only are arrays of links ordered, but lists
>> must be ordered in terms of 'preference', which is not always known or well
>> defined.
>> 
>> Clearly the relationship with JSON and ECMA Script would make repeating keys
>> in the data structure problematic for programmers, as keys are generally
>> considered unique.  It's good that unordered lists can be represented in
>> JSON LD another (and quite intuitive) way.
>> 
>> This seems to be a major deficiency of some JSON serializations in the wild,
>> but fixed in JSON LD.  It can be well argued that raw JSON is *not* a very
>> well aligned language for the web, and should be used in limited examples of
>> API data interchange.
>> 
>> I think there is an argument that the IETF would benefite from thinking more
>> carefully, going forward, about openstand principles such as
>> interoperability, when looking at the ordering of lists in proposed RFC
>> serializations.
>> 
>> It's great that JSON LD provides the best of both worlds.
> 
> 
> And on that note, I suggest we've met the goals of this thread. Rather
> than give in to the temptation to debate JSON vs the Web Architecture,
> ... can we identify and track any actions that will help improve
> schema.org implementations (publishers or consumers)? Perhaps there's
> a great JSON-LD tutorial we should link to that explains these issues?
> 
> Dan
Received on Tuesday, 9 June 2015 16:53:21 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 9 June 2015 16:53:22 UTC