W3C home > Mailing lists > Public > public-rdf-comments@w3.org > May 2013

Official response to RDF-ISSUE-132: JSON-LD/RDF Alignment

From: Manu Sporny <msporny@digitalbazaar.com>
Date: Tue, 21 May 2013 14:19:19 -0400
Message-ID: <519BBAA7.7070403@digitalbazaar.com>
To: David Booth <david@dbooth.org>, RDF WG Comments <public-rdf-comments@w3.org>
Hi David,

This is an official response to RDF-ISSUE-132: JSON-LD/RDF Alignment,
which is being tracked here:


The group apologizes for missing your specific change requests until you
prompted us to respond to them on May 21st, 2013. It was a fairly long
thread, and we thought we had addressed all of your issues before you
prompted us to respond to the specific change requests that you had
outlined previously.

Your general concerns revolve around the confusion that may result if
JSON-LD does not more closely aligning itself with RDF. You had 5 major
points that you raised. The JSON-LD group spent the majority of the call
today discussing each of these points in detail:


Please read the entire conversation linked to above before going on to
read the following responses, which are the official position of the group:

> 1. Insert "based on RDF" to the definition of Linked Data, as 
> explained above.

There was a very long series of conversations about whether or not RDF
should be mentioned in the definition of Linked Data. There were a
number of people arguing both for and against. These discussions
happened over the course of 3 years, with the group deciding against
including references to RDF in the Linked Data definition. Here are just
a few of the discussions:


Hopefully it is clear that the decision to leave "based on RDF" out of
the Linked Data definition was thoroughly and carefully considered. In
the end, the group decided not to tie RDF and Linked Data together
because it would be conflating a data publishing concept (Linked Data)
with an abstract data model (RDF).

In the end, the group decided against tightly coupling Linked Data and
RDF because:

1. It would conflate two different concepts.
2. It is the groups experience that Web developers have an aversion to
RDF as a complex technology due to RDF/XML and other technologies that
do not represent the current RDF world. It doesn't matter if these
aversions are based on reality - the aversion exists, so we try to
downplay RDF as much as possible in the JSON-LD spec.
3. There is no technical problem that is solved by referencing RDF in
the definition of Linked Data.
4. If we were to add RDF to the definition of Linked Data, there would
just be another set of objections to the inclusion of RDF in the
definition of Linked Data.

> 2. Define a *normative* bi-directional mapping of a JSON profile to 
> and from the RDF abstract syntax, so that the JSON profile *is* a 
> serialization of RDF, and is fully grounded in the RDF data model and
> semantics.

We already do this here:


and here:


There have been arguments in the past to specify an additional subset of
JSON-LD that is a direct mapping to the RDF Abstract Syntax, but no one
has provided a compelling technical reason to do so.

Additionally, creating two profiles of JSON-LD could have worse
consequences than the ones you outline in your e-mails. For example,
some implementers may only implement the subset and not the full version
of JSON-LD, which would create a really bad interoperability problem.

The extra features in JSON-LD, such as blank nodes as graph names, are a
requirement for the Web Payments work as well as the RDF digital
signatures work. So, we can't remove them without causing damage to
those initiatives.

If an author wants to use a version of JSON-LD that is fully grounded in
the RDF data model, they should not use the JSON-LD features listed in
those bullet points, or they should convert their non-RDF data to
something that RDF can understand (more on this below).

> 3. Use skolemized URIs in the normative mapping to prevent mapping 
> JSON syntax to illegal RDF.

This is already stated as an option in a normative section:


We do not make this mandatory because there are several other legitimate
ways to convert blank nodes to something that RDF can interpret. For
example: 1) normalizing and getting a hash identifier for the subgraph
attached to the blank node property or blank graph, 2) creating a
counter-based solution for blank node naming, 3) minting a new global
IRI for the blank node, 4) transforming to a data model that allows
blank node properties and blank graphs, etc. There is no single correct

Additionally, skolemization will not work unless all systems exchanging
the skolem IRIs do so in a standard way, and there is currently no
standard way of skolemizing. We do have an RDF Graph normalization
specification, and it does seem to work:


However, that spec isn't a REC and it would take quite a bit of work to
get it there.

So, the group believes that the spec does as much as it can to implement
what you suggest above, while understanding that there are caveats to
the approach you propose above.

> 4. Make editorial changes to avoid implying that JSON-LD is not RDF.
>  For example, change "Convert to RDF" to "Convert to Turtle" or 
> perhaps "Convert to RDF Abstract Syntax".

The group agrees with changing the title of the section to "Convert to
RDF Abstract Syntax".

> 5. Define normative names for, and clearly differentiate between, the
> JSON serialization of RDF and JSON-LD, such that JSON-LD *is* a JSON
> serialization of RDF, with additional constraints for Linked Data
> (such as URIs use "http:" prefix, etc.). They do not necessarily have
> to be defined in two separate documents. They could be defined in a
> single document called "JSON-RDF and JSON-LD", for example.

The group had discussed this a long time ago and re-hashed the
discussion today during the call. We do not believe that having two
different serializations of JSON-LD will help interoperability. Rather,
the group believes that this is not the correct approach because:

1) Having two profiles will confuse developers, especially since the
delta between the two profiles boils down to four bullet points. Why
have two profiles where one of the profiles differ by around 4-5 sentences?
2) Having two profiles may make implementers only want to implement one
profile or the other, which would open the door to interoperability
3) There is no technical issue that is resolved by having two different
serializations named JSON-RDF and JSON-LD.

> 6. Some small editorial fixes:
> "Since JSON-LD is 100% compatible with JSON" would be better phrased 
> as "Since JSON-LD is a restricted form of JSON", because saying that 
> JSON-LD is compatible with JSON wrongly suggests that JSON-LD is 
> *not* JSON, when in fact it is.

We agree with your assessment, but would like to avoid the use of
"restricted form of JSON". What we would like to convey is something to
this effect:

JSON-LD enables you to express portions of your JSON documents as Linked

We'll leave it up to the editors to select the proper language, but do
agree with your general point.

> s/secrete agents/secret agents/



The group understands that several of these responses are probably not
what you would prefer. However, I hope that we've made it clear that we
did discuss your concerns in depth, have previously discussed most of
the issues that you raised, and our position has not changed due to more
effective counter-points to the arguments that you made.

Please respond to this e-mail and let us know if this response is
acceptable to you. If the responses are not acceptable and you want to
pursue the issues further, please make specific suggestions about the
types of changes that you would like to see made to the specs.

-- manu

Manu Sporny (skype: msporny, twitter: manusporny, G+: +Manu Sporny)
Founder/CEO - Digital Bazaar, Inc.
blog: Meritora - Web payments commercial launch
Received on Tuesday, 21 May 2013 18:19:42 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:29:56 UTC