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

Re: JSON-LD & N3 - Re: CfC: Resolution Annotation Protocol to make JSON-LD default returned if no HTTP Accept request header (deadline 24 June 2015)

From: Henry Story <henry.story@co-operating.systems>
Date: Wed, 17 Jun 2015 05:22:17 +0200
Cc: Robert Sanderson <azaroth42@gmail.com>, Ivan Herman <ivan@w3.org>, Alexandre Bertails <alexandre@bertails.org>, Doug Schepers <schepers@w3.org>, W3C Public Annotation List <public-annotation@w3.org>, public-ldp <public-ldp@w3.org>
Message-Id: <9DBE83C5-6235-43B0-ADBC-FC433CA5C936@co-operating.systems>
To: Frederick Hirsch <w3c@fjhirsch.com>

> On 15 Jun 2015, at 23:27, Frederick Hirsch <w3c@fjhirsch.com> wrote:
> 
> To summarize what I've learned from this thread:
> 
> 1. This message from Rob (below) suggests that we have a technical solution in place for annotation use cases and that a new profile for activity streams should handle the social web case; we are continuing work on the Web Annotation Protocol draft.
> 
> 2. If we have issues remaining we need concrete examples and proposals from Henry (as Doug detailed, see https://lists.w3.org/Archives/Public/public-annotation/2015Jun/0082.html )

yes, it looks like in the very particular case of Web Annotations the crystalisation/framing/profile problem may not appear, as long as the data structure remains that simple. 

> 
> 3. Other work regarding generic JSON-LD, in particular, Framing mentioned by Gregg  and 'crystallisations' as mentioned by Henry may require work, but the appropriate WG needs to be identified.

yes, this is the longer term work. It could be difficult to find the right group, because the RDF folks are not going to care about the crystalisation/frame/profile used, whereas the JSON folk don't tend to care about RDF at present, and anyone who starts using the RDF tools may never go back. But the tension exists and a solution here would greatly help in allowing them to work together in a friendly way.

> 
> I don't mean to re-start the thread, but these are my take-aways.

Thanks for the summary. :-)

> 
> regards, Frederick
> 
> Frederick Hirsch
> Co-Chair, W3C Web Annotation WG
> 
> www.fjhirsch.com
> @fjhirsch
> 
>> On Jun 12, 2015, at 2:52 PM, Robert Sanderson <azaroth42@gmail.com> wrote:
>> 
>> 
>> In fact, we are already explicitly defining a profile and it does have a (draft) name:   http://www.w3.org/ns/oa#jsonLdProfile
>> This is noted in annotation-protocol section 3.3.2:  http://w3c.github.io/web-annotation/protocol/wd/#retrieve-a-known-annotation
>> (Though as a very much in-flux ED, I have not fleshed out the related IANA considerations)
>> 
>> There's no need to define a new header (Accept-Shape) or a new media type, as the JSON-LD media type by design has a profile attribute.  And there is a registry for such profiles, defined by RFC 7284.  (https://tools.ietf.org/html/rfc7284)   Its initial contents include flattened, expanded and compacted JSON-LD shapes.
>> 
>> Please see my question about this on the JSON-LD list: https://lists.w3.org/Archives/Public/public-linked-json/2014Jan/0060.html and Markus's response.
>> 
>> Hope that helps :)
>> 
>> Rob
>> 
>> 
>> On Fri, Jun 12, 2015 at 7:55 AM, Ivan Herman <ivan@w3.org> wrote:
>> 
>>> On 12 Jun 2015, at 16:46 , Alexandre Bertails <alexandre@bertails.org> wrote:
>>> 
>>> Well, I think Henry made an important point re: stable tree structure.
>>> At my previous job, we ditched JSON-LD entirely because we found
>>> working with frames was really not practical.
>>> 
>>> If the group wants to go with JSON-LD, I would strongly recommend the
>>> group to investigate David's suggestion: using canonical JSON-LD. I
>>> have not used it myself and I have no idea if it is supported in all
>>> libraries, though.
>> 
>> I think our case is different and simpler. The Annotation Data model gives a clear structure for the form of JSON objects that are used. It is derived from RDF, and *can* be used in RDF, but most of the users will just look at this as a specific JSON dialect. In effect, without a name, we define a JSON-LD profile…
>> 
>> Ivan
>> 
>>> 
>>> Alexandre
>>> 
>>> On Fri, Jun 12, 2015 at 7:22 AM, Doug Schepers <schepers@w3.org> wrote:
>>>> Hi, Henry–
>>>> 
>>>> If someone wants to specify a MIME type in the Accept header to get back
>>>> turtle, N3, HTML, or any other format that they know (or hope) the server
>>>> can produce, there's no problem with that. They should be able to do that,
>>>> though the Annotation protocol spec wouldn't require any other format than
>>>> JSON-LD be supported.
>>>> 
>>>> We're simply talking about the default format that's returned if there is no
>>>> Accept header; for our use case, the WG has consensus that JSON-LD is the
>>>> format that all servers must support, and thus that must be the default.
>>>> 
>>>> 
>>>> There doesn't seem or need to be any drama about this; so far, everyone else
>>>> has agreed, and I hope that you also agree that so long as a server is
>>>> allowed (not prohibited) to serve other formats, everyone's use case is
>>>> satisfied.
>>>> 
>>>> In the case where a server only supports JSON-LD, the client could transform
>>>> it into the desired format, right? (Though perhaps not completely
>>>> consistently, IIUI.)
>>>> 
>>>> Regards–
>>>> –Doug
>>>> 
>>>> 
>>>> On 6/12/15 6:33 AM, Henry Story wrote:
>>>>> 
>>>>> 
>>>>>> On 12 Jun 2015, at 12:31, Henry Story
>>>>>> <henry.story@co-operating.systems> wrote:
>>>>>> 
>>>>>>> 
>>>>>>> On 12 Jun 2015, at 10:45, Ivan Herman <ivan@w3.org> wrote:
>>>>>>> 
>>>>>>> Henry,
>>>>>>> 
>>>>>>> I do not think N3 is an option for our constituency. Also,
>>>>>>> providing and accept header is not an obvious operation for a
>>>>>>> lambda javascript programmer, and we can bet that people will
>>>>>>> forget to do it even if it is straightforward for a very seasoned
>>>>>>> developer.
>>>>>>> 
>>>>>>> I would not call this a storm, certainly not in a tea cup, but
>>>>>>> for the purposes of the annotation protocol (which is the only
>>>>>>> issue the annotation WG is considering) it is important to
>>>>>>> specify that the default language for expressing annotations over
>>>>>>> the wire relies on the serialization format that is the closest
>>>>>>> to the Javascript programs running in the client, ie, JSON-LD.
>>>>>> 
>>>>>> 
>>>>>> Does JSON-LD not have the same problem RDF/XML had? In that it
>>>>>> looks like JSON, but if you really want to use it correctly you
>>>>>> need RDF tools. ( At least on the client getting those RDF tools is
>>>>>> easier, for sure as JS is so wide spread and efficient enough
>>>>>> now).
>>>>>> 
>>>>>> Let me expand: in order for a JSON person to use the JSON-LD
>>>>>> without hitch the JSON-LD needs to be crystalised [1] correctly.
>>>>>> That is it has to have a certain determinate tree structure. But
>>>>>> then what is important is for the client to request the tree
>>>>>> structure it really wants, or else the tree structure could well be
>>>>>> different on each request, or at least on each different server.
>>>>>> And so the developer who may have written up his code for one LDP
>>>>>> server may find that his code does not work on another one. As a
>>>>>> result he will be completely at a loss as to why all of this is
>>>>>> meant to enhance inter-operability and will call out bullshit. This
>>>>>> is I think part of the reason for the RDF/XML wars.
>>>>>> 
>>>>>> In order for the client to get a stable tree structure that he can
>>>>>> use we need to have a profile for the document structure. Now
>>>>>> clearly it is not possible in LDP to determine a profile for every
>>>>>> single type of graph in advance. These will need to be specified by
>>>>>> the client in some way using a mime type, probably something like
>>>>>> this
>>>>>> 
>>>>>> Accept:
>>>>>> 
>>>>>> application/ld+json;profile=http://www.w3.org/TR/activitystreams-core/profile
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>> But since we also don't want LDP servers to have to have to write code for
>>>> each crystalisation, what needs to be determined is an automatic method for
>>>> an LDP server to find a crystalisation constraints from the profile uri in
>>>> order to try to server that correctly to the user.
>>>>>> 
>>>>>> 
>>>>>> But as far as I know this has not yet been specified. I asked on
>>>>>> the public-lod about this last month as we would need something
>>>>>> like this for Social-Web-WG.
>>>>> 
>>>>> 
>>>>> Forgot to point to the discussion:
>>>>> https://lists.w3.org/Archives/Public/public-lod/2015May/0110.html
>>>>> 
>>>>>> 
>>>>>> In any case it seems that users will need to learn to use mime
>>>>>> types to get going. Which does not seem to be such a difficult
>>>>>> thing to learn.
>>>>>> 
>>>>>> Henry
>>>>>> 
>>>>>> 
>>>>>> [1] https://blogs.oracle.com/bblfish/entry/crystalizing_rdf
>>>>>> 
>>>>>>> 
>>>>>>> Ivan
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>> On 12 Jun 2015, at 09:59 , Henry Story
>>>>>>>> <henry.story@co-operating.systems> wrote:
>>>>>>>> 
>>>>>>>> Seems a bit like a storm in a tea-cup. What is so difficult for
>>>>>>>> clients to provide an accept header?
>>>>>>>> 
>>>>>>>> What is more important is that JSON-LD is closer to N3 than
>>>>>>>> Turtle: ie it makes it easy to speak about quotations of other
>>>>>>>> graphs. ( which are feasable in Turtle and RDF/XML, if one were
>>>>>>>> to introduce simple data types such as rdf:Turtle eg
>>>>>>>> 
>>>>>>>> <#laura> believes "<http://hero.org/#SuperMan> a
>>>>>>>> <http://hero.org/#FlyingBeing>"^^rdf:Turtle
>>>>>>>> 
>>>>>>>> But because this type of quotation on graphs works with strings
>>>>>>>> it is not possible to use the prefixes outside the literal and
>>>>>>>> so things become tedious to write. N3 allows one to say the
>>>>>>>> same more elegantly
>>>>>>>> 
>>>>>>>> <#laura> believes { <#SuperMan> a <#FlyingBeing> } .
>>>>>>>> 
>>>>>>>> It is of course much easier to read this and express this in N3
>>>>>>>> than in JSON-LD.
>>>>>>>> 
>>>>>>>> But the real point behing JSON-LD & N3 move is that it is
>>>>>>>> easier to start answering questions here about how should a
>>>>>>>> LDPC quote the contents of the ldp:contains resources. In both
>>>>>>>> of these notations it is possible to solve this problem without
>>>>>>>> creating reasoning errors. And this clearly means that some
>>>>>>>> questions can be answered in LDP-next that were difficult to
>>>>>>>> answer previously.
>>>>>>>> 
>>>>>>>> Henry
>>>>>>>> 
>>>>>>>>> On 10 Jun 2015, at 22:47, Frederick Hirsch <w3c@fjhirsch.com>
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> During today's Annotation WG teleconference we discussed and
>>>>>>>>> agreed on the following Resolution [1]:
>>>>>>>>> 
>>>>>>>>> RESOLUTION: Annotation Protocol spec will override LDP
>>>>>>>>> 4.3.2.2 LDP servers SHOULD respond with a text/turtle
>>>>>>>>> representation of the requested LDP-RS whenever the Accept
>>>>>>>>> request header is absent with "MUST respond with JSON-LD"
>>>>>>>>> 
>>>>>>>>> In essence we are profiling the LDP specification [2] in the
>>>>>>>>> Web Annotation Protocol specification [3]  to have a 'MUST
>>>>>>>>> JSON-LD' instead of a 'SHOULD turtle' in the case no Accept
>>>>>>>>> request header is specified [2].
>>>>>>>>> 
>>>>>>>>> The reason is to simplify the default requirements for
>>>>>>>>> server-side implementation in the case of annotations to
>>>>>>>>> enable adoption as well as to be consistent in the preference
>>>>>>>>> of JSON-LD.
>>>>>>>>> 
>>>>>>>>> We will make the specification language precise as part of
>>>>>>>>> adding it to the Web Annotation Protocol specification.
>>>>>>>>> 
>>>>>>>>> This is a Call for Consensus (CfC) to ensure wide agreement
>>>>>>>>> with this approach. If you have any significant concern with
>>>>>>>>> this approach, please indicate on the public annotation list
>>>>>>>>> before 24 June (2 weeks). Silence will be considered
>>>>>>>>> agreement. (a +1 to indicate support will also be useful if
>>>>>>>>> you were not on the call). Please note however that we had
>>>>>>>>> consensus on a well-attended call.
>>>>>>>>> 
>>>>>>>>> This message is intentionally cross-posted to the public Web
>>>>>>>>> Annotation and  LDP WG lists.
>>>>>>>>> 
>>>>>>>>> Thanks
>>>>>>>>> 
>>>>>>>>> regards, Frederick
>>>>>>>>> 
>>>>>>>>> Frederick Hirsch Co-Chair, W3C Web Annotation WG
>>>>>>>>> 
>>>>>>>>> www.fjhirsch.com @fjhirsch
>>>>>>>>> 
>>>>>>>>> [1] Draft minutes (may be cleaned up later)
>>>>>>>>> 
>>>>>>>>> http://www.w3.org/2015/06/10-annotation-minutes.html#item07
>>>>>>>>> 
>>>>>>>>> [2] http://www.w3.org/TR/ldp/#ldprs
>>>>>>>>> 
>>>>>>>>> [[ 4.3.2.2 LDP servers should respond with a text/turtle
>>>>>>>>> representation of the requested LDP-RS whenever the Accept
>>>>>>>>> request header is absent [turtle]. ]]
>>>>>>>>> 
>>>>>>>>> [3] http://w3c.github.io/web-annotation/protocol/wd/
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> ---- Ivan Herman, W3C Digital Publishing Activity Lead Home:
>>>>>>> http://www.w3.org/People/Ivan/ mobile: +31-641044153 ORCID ID:
>>>>>>> http://orcid.org/0000-0003-0782-2704
>>>>> 
>>>>> 
>>>>> 
>>>> 
>> 
>> 
>> ----
>> Ivan Herman, W3C
>> Digital Publishing Activity Lead
>> Home: http://www.w3.org/People/Ivan/
>> mobile: +31-641044153
>> ORCID ID: http://orcid.org/0000-0003-0782-2704
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> -- 
>> Rob Sanderson
>> Information Standards Advocate
>> Digital Library Systems and Services
>> Stanford, CA 94305
> 
Received on Wednesday, 17 June 2015 03:22:51 UTC

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