- From: Martynas Jusevičius <martynas@graphity.org>
- Date: Tue, 20 Oct 2015 08:20:09 +0000
- To: James M Snell <jasnell@gmail.com>
- Cc: Melvin Carvalho <melvincarvalho@gmail.com>, public-socialweb@w3c.org
- Message-ID: <CAE35VmxhUZbeL-Wtnk6otoqv94djuDGy8JJ5AgSXyzseKaSYEg@mail.gmail.com>
AS 2.0 is not an RDF application, yet it defines an RDF vocabulary and specifically chooses JSON-LD instead of custom JSON to be interpreted as RDF? What happens if I take your examples and publish them as Turtle? Why can't that data be valid AS data? A well-designed system would be able to consume both. By restricting the media type, AS is breaking content negotiation: http://www.w3.org/TR/webarch/#def-coneg I can understand it is favoring JSON over other syntaxes. Is it because JSON happens to be native to JavaScript, or, as Melvin has put it, because it is fashionable? It is not safe to assume that a majority of semantic agents will be written in JavaScript. Without that premise, JSON-LD has no advantages over other RDF syntaxes. A client only able to consume JSON should be able to negotiate the media type and retrieve JSON-LD from an RDF server, so this is a non-problem. By fixating the JSON-LD artificially, AS only makes its data inaccessible to Linked Data agents that happen to support RDF syntaxes other than JSON-LD, without achieving any benefit in doing that. On Tue, Oct 20, 2015 at 2:25 AM, James M Snell <jasnell@gmail.com> wrote: > AS 2.0 is not an RDF application. It's been *intentionally* designed > from the very start as a JSON format that can be processed as JSON-LD > with all other RDF related considerations being secondary. The way > it's currently designed, an application can consume an AS 2.0 document > reliably without performing additional RDF processing and can even get > by without much or any JSON-LD processing. That's been the clear > intent of the specification all along. > > On Mon, Oct 19, 2015 at 5:19 PM, Martynas Jusevičius > <martynas@graphity.org> wrote: >> What is the problem exactly? That AS 2.0 document is "invalid"? How is that >> validity defined? >> >> In RDF interpretation, there is no valid or invalid data - anyone can assert >> anything. In practice, this only becomes a problem when consuming data - but >> then it can be validated using constraints. >> >> If the specification depends on certain syntax of a certain serialization, >> then maybe it's based on the wrong design assumptions? An RDF application >> should be agnostic to serializations. >> >> On Tue, 20 Oct 2015 at 01:48, James M Snell <jasnell@gmail.com> wrote: >>> >>> Doing so would not address the problem I describe. >>> >>> On Mon, Oct 19, 2015 at 4:42 PM, Martynas Jusevičius >>> <martynas@graphity.org> wrote: >>> > Why not put some constraints on the data? And make them dereferenceable? >>> > There's a spec for that: https://w3c.github.io/data-shapes/shacl/ >>> > >>> > On Tue, Oct 20, 2015 at 1:39 AM, James M Snell <jasnell@gmail.com> >>> > wrote: >>> >> By way of example: The following is a valid expanded form JSON-LD >>> >> document that uses the AS 2.0 vocabulary. It can be served using the >>> >> `application/ld+json` media type. It is NOT, however, a valid AS 2.0 >>> >> document. >>> >> >>> >> ``` >>> >> [ >>> >> { >>> >> "@type": [ >>> >> "http://www.w3.org/ns/activitystreams#Create" >>> >> ], >>> >> "http://www.w3.org/ns/activitystreams#actor": [ >>> >> { >>> >> "@id": "acct:sally@example.org", >>> >> "@type": [ >>> >> "http://www.w3.org/ns/activitystreams#Person" >>> >> ], >>> >> "http://www.w3.org/ns/activitystreams#displayName": [ >>> >> { >>> >> "@value": "Sally" >>> >> } >>> >> ] >>> >> } >>> >> ], >>> >> "http://www.w3.org/ns/activitystreams#object": [ >>> >> { >>> >> "@type": [ >>> >> "http://www.w3.org/ns/activitystreams#Note" >>> >> ], >>> >> "http://www.w3.org/ns/activitystreams#content": [ >>> >> { >>> >> "@value": "This is a simple note" >>> >> } >>> >> ] >>> >> } >>> >> ], >>> >> "http://www.w3.org/ns/activitystreams#published": [ >>> >> { >>> >> "@type": "http://www.w3.org/2001/XMLSchema#dateTime", >>> >> "@value": "2015-01-25T12:34:56Z" >>> >> } >>> >> ] >>> >> } >>> >> ] >>> >> ``` >>> >> >>> >> The following is also a valid JSON-LD document that can be served >>> >> using the `application/ld+json` media type. It also uses the AS 2.0 >>> >> vocabulary but it is also not a valid AS 2.0 document: >>> >> >>> >> ``` >>> >> { >>> >> "@context": ["http://www.w3.org/ns/activitystreams", { >>> >> "foo": "as:displayName", >>> >> "bar": "as:content", >>> >> "baz": "@id", >>> >> "fuz": "@type" >>> >> }], >>> >> "@type": "Create", >>> >> "actor": { >>> >> "fuz": "Person", >>> >> "baz": "acct:sally@example.org", >>> >> "foo": "Sally" >>> >> }, >>> >> "object": { >>> >> "fuz": "Note", >>> >> "bar": "This is a simple note" >>> >> }, >>> >> "published": "2015-01-25T12:34:56Z" >>> >> } >>> >> ``` >>> >> >>> >> In fact, both of the above examples are valid JSON-LD serializations >>> >> of exactly the same data, which you can only know if you apply the >>> >> JSON-LD processing APIs. >>> >> >>> >> A key part of the reason AS 2.0 requires a normative JSON-LD context >>> >> and compact serialization is to normalize the data format and make it >>> >> possible for implementers to choose not to apply full JSON-LD >>> >> processing and still be able to make reasonable sense of the data. >>> >> >>> >> - James >>> >> >>> >> On Mon, Oct 19, 2015 at 4:30 PM, Martynas Jusevičius >>> >> <martynas@graphity.org> wrote: >>> >>> I don't see any reason for a new media type. Media types identify file >>> >>> formats basically, which is orthogonal to what AS doing: creating yet >>> >>> another RDF vocabulary to describe social graphs and document >>> >>> hierarchies. If the serialization format is JSON-LD, then it can be >>> >>> interpreted as both RDF and JSON, which is a bonus. But in general, >>> >>> Linked Data applications should advertise which RDF serializations >>> >>> they support, instead of creating or extending media types. By >>> >>> extending the JSON media type, the interoperability would decrease. >>> >>> >>> >>> Martynas >>> >>> >>> >>> On Tue, Oct 20, 2015 at 12:58 AM, Melvin Carvalho >>> >>> <melvincarvalho@gmail.com> wrote: >>> >>>> >>> >>>> >>> >>>> On 19 October 2015 at 21:37, James M Snell <jasnell@gmail.com> wrote: >>> >>>>> >>> >>>>> We have had a number of open github issues. I recommend closing the >>> >>>>> following: >>> >>>>> >>> >>>>> #52 - "New media type or application/ld+json plus profile" - >>> >>>>> https://github.com/jasnell/w3c-socialwg-activitystreams/issues/52 >>> >>>>> >>> >>>>> This one has been around for a while. There was a concern brought >>> >>>>> up >>> >>>>> about the creation of the application/activity+json media type and >>> >>>>> whether or not AS2 should use the application/ld+json media type >>> >>>>> with >>> >>>>> a profile parameter. The concern is that use of the >>> >>>>> application/activity+json media type could harm interoperability. >>> >>>>> >>> >>>>> In my opinion, the concern is largely theoretical and is not >>> >>>>> backed >>> >>>>> by real implementation experience. There is nothing to be gained by >>> >>>>> switching to using the application/ld+json media type. Nor is there >>> >>>>> anything "broken" about using the "application/activity+json". >>> >>>> >>> >>>> >>> >>>> Thanks for bringing this up, James. >>> >>>> >>> >>>> Am I right to say that you would consider the two proposals of: >>> >>>> >>> >>>> 1 using the application/activity+json media type >>> >>>> 2 using the the application/ld+json media type plus profile mechanism >>> >>>> [1] >>> >>>> >>> >>>> largely equivalent? >>> >>>> >>> >>>> Or do you strongly favor one option over the other? If so, I think >>> >>>> it's >>> >>>> important to understand why >>> >>>> >>> >>>> [1] http://www.w3.org/TR/json-ld/#iana-considerations (see Optional >>> >>>> Parameters) >>> >>>> >>> >>>>> >>> >>>>> >>> >>>>> #157 - "Vocabulary item for "Blog" type" - >>> >>>>> https://github.com/jasnell/w3c-socialwg-activitystreams/issues/157 >>> >>>>> >>> >>>>> In my opinion, this is unnecessary. >>> >>>>> >>> >>>>> #175 - "Should we have a type for the object of an "Offer" activity? >>> >>>>> " - >>> >>>>> https://github.com/jasnell/w3c-socialwg-activitystreams/issues/175 >>> >>>>> >>> >>>>> In my opinion, this is unnecessary. >>> >>>>> >>> >>>>> #205 - "Object partOf Collection" - >>> >>>>> https://github.com/jasnell/w3c-socialwg-activitystreams/issues/205 >>> >>>>> >>> >>>>> Question raised over whether we need a reverse property on objects >>> >>>>> to indicate which collection(s) they are members of. In my opinion >>> >>>>> this is unnecessary. >>> >>>>> >>> >>>>> #208 - "owl:Class vs. rdf:Property (for verbs and roles)" - >>> >>>>> https://github.com/jasnell/w3c-socialwg-activitystreams/issues/208 >>> >>>>> >>> >>>>> Raises a concern over the fundamental design of verbs in AS2. This >>> >>>>> requests revisiting a design decision that was made early within the >>> >>>>> design of AS2 without presenting any new information. I see little >>> >>>>> value in rehashing the prior conversation and selected design. >>> >>>>> >>> >>>>> - James >>> >>>>> >>> >>>>
Received on Tuesday, 20 October 2015 08:20:52 UTC