JSON Emergency Brake

JSON Emergency Brake

In the W3C RDF Working Group, we are discussing JSON serialization formats for the Resource Description Framework, RDF. There are two advanced formats being considered, JSON-LD and RDF/JSON. I repost an email that I have sent to the public-rdf-wg mailing list:

TL;DR: in my humble opinion, we should not continue with RDF/JSON, but fully focus on JSON-LD even if it might take longer, as JSON-LD feels like JSON, whereas RDF/JSON feels like RDF in a JSON camouflage.

First and foremost, I want to apologize for whatever toes I step on with this email. This email is in no way meant as an offense to the individuals and companies involved, and I want to highlight that I'm in the comfortable - but also unthankful - position of the (hopefully) neutral observer, who enters the discussion when all the foundational work has already been done. By this foundational work I mean RDF/JSON [1] by Talis, and JSON-LD [2] by PaySwarm (forgive the simplification of not mentioning persons, but companies). Thanks! It's excellent! I could not have done it.

Now, in ISSUE-2 [3], we came to the conclusion to "(1) Incubate on something like JSON-LD, (2) make a REC on something like Talis RDF/JSON […]". The more and more I look at both specs, the more and more I feel like the resolution we agreed on for ISSUE-2 was wrong. Following ACTION-38 [4] where Ivan had asked me to become a co-editor on the to-be-REC'ed Talis RDF/JSON that I accepted, the proposed workflow was Ian to commit a first draft of the document ([1] effectively), that could then be discussed.

I have fully re-read both specs, but all honestly, the actual eye-openers for me were a blog post [5] by Alexandre Passant and a tweet by Christopher Gutteridge [6]. JSON-LD is(*) about objects, simple default assumptions, elegancy, and developers in mind, whereas RDF/JSON seems to be created with the premise to carry all the expressiveness of RDF over to JSON, whatever the cost might be. Coming more from a JavaScript camp than from an RDF camp myself, this feels wrong. Of course I can see where RDF/JSON came from, and it completely makes sense from that perspective. In the next paragraph, I explain why.

Let me try to explain my main concerns with a bad metaphor (there's a long tradition of those…). Web developers, JavaScript people, those who speak JSON natively, are the cool kids. We are the detached youth workers [7] who put on an adidas hoodie, read up on street slang on the Internet, and try to behave just like the cool kids. We serve them RDF/JSON (yes, yes, yo, homie), but we will probably fail. They see through our plan, we risk to get laughed at. RDF/JSON just does not feel natural to them, and this now, at a critical point, where semantics are kind of back in the section "cool" of the news. Of
course I'm referring to**). If we get a syntax REC out now that does not feel native to the cool kids (even if we incubate on something better [3]), we risk on losing traction. I have asked some Google JavaScript people for advise, and they feel "at home" in JSON-LD. It is the language they speak. I feel at home in JSON-LD. Others do [8], [9], [10]. The Twitter feedback on the RDF/JSON draft release [1] is relatively critical [11].

Now, those are tough claims and vague feelings, but I considered them important enough to write this email. Apologies again to whomever toes I have stepped on. My concrete proposition is: we refrain from working further on the RDF/JSON REC, and fully focus on JSON-LD instead. I would also like to back out of being an editor of [1], as I have not done anything at all on that spec yet, and because I feel it is wrong at this point in time, as hopefully explained in this email. While I have done very, very limited amounts of work on JSON-LD (just following the discussion mainly), I am happy to serve as an editor thereof in fulfillment of what I agreed on in ACTION-38 [4], but it feels like adorning myself with borrowed plumes, as the German saying goes, and very much undeserved. Maybe we can discuss this during one of the next RDF WG meetings, maybe even in a joint RDF - RDFa WG meeting.

In the hope of not having hurt too many feelings, but rather started a productive discussion instead.


[9] (note the hashtag #unsemanticweblike)
[11]!/search/realtime/rdf%20json%20-RT (realtime, might have changed when you click the link)

(*) When I write "is", "seems", etc., basically all verbs, all this
reflects my impression that I personally got. You can add an "IMHO"
suffix to each sentence. The spec authors will probably disagree with
some assumptions.

(**) I was not at all involved in any of the discussions,
plannings, the concept at all. All what I'm writing here on this
topic, I do it with my Google hat off.