- From: <mfhepp@gmail.com>
- Date: Tue, 9 Jun 2015 18:52:50 +0200
- To: Dan Brickley <danbri@google.com>
- 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>
+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 saying that if you construct a chunk of JSON
>>>> and avoid the interop failures described 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