W3C home > Mailing lists > Public > public-rdf-wg@w3.org > October 2012

Re: JSON-LD Data model / RDF Data Model differences

From: Gregg Kellogg <gregg@greggkellogg.net>
Date: Tue, 30 Oct 2012 14:44:36 -0400
To: Gavin Carothers <gavin@carothers.name>
CC: Manu Sporny <msporny@digitalbazaar.com>, RDF WG <public-rdf-wg@w3.org>
Message-ID: <5D298351-0D39-4A16-B190-9A0D6F31642A@greggkellogg.net>
On Oct 30, 2012, at 11:16 AM, Gavin Carothers <gavin@carothers.name> wrote:

> On Tue, Oct 30, 2012 at 11:03 AM, Manu Sporny <msporny@digitalbazaar.com> wrote:
>> We had a small side-discussion at the F2F meeting today about
>> differences between lists in the JSON-LD data model and lists in the RDF
>> data model. This devolved/evolved into a re-hash of the JSON-LD data
>> model vs. the RDF data model discussion:
>> 
>> http://www.w3.org/2011/rdf-wg/wiki/JSON-LD_Data_Model
>> 
>> I was going to start by ranting about RDF lists, but it seems I already
>> did that back in May:
>> 
>> "I really hate RDF Lists"
>> http://lists.w3.org/Archives/Public/public-rdf-wg/2012May/0098.html
>> 
>> Not having Graph/Dataset Literal as a primitive in RDF is also harming
>> the RDF data model. We should be able to place a graph/dataset literal
>> in the object position of an RDF triple. I don't expect that this group
>> will be able to resolve either issue, but I just thought I'd throw this
>> out there so that some of you might understand what is lacking in the
>> RDF data model.
>> 
>> Resolving these two issues above would help align the JSON-LD data model
>> with the RDF data model, specifically:
>> 
>> 1. "Graph names can be blank nodes." The question of whether or not
>>   graph names can be blank nodes would have to be answered. I'd argue
>>   that you should be able to name graphs using blank nodes.
> 
> We did resolve this. Graph labels must be IRIs.

Yes, we agreed to this.

>> 2. "Lists are part of the data model." Lists are part of the data model
>>   would be true for both models.
>> 3. "Graphs/datasets are 'allowed' in the object position." Graphs would
>>   be "allowed" in the object position in both models.
> 
> We did resolve this, we are not specifying graph literals nor dataset
> literals at this time.

Yes, my understanding that if an object defining a named graph is used as a property value of another object, what is asserted is that the name is an object, not the graph. E.g.:

{
  "@id": "foo",
  "dc:title": "Foo",
  "bar": {
    "@id": "baz",
    "@graph": {
      "dc:title": "Baz"
    }
  }
}

says that there's a graph name "baz" with a single triple [] dc:title "Baz". The TriG should like the following:

{<foo> dc:title "Foo"; <bar> <baz>.}
<baz> {[dc:title "Baz"]}

Gregg

>> 
>> We have simple answers to some of the other differences that would align
>> the two data models.
>> 
>> 1. "Unconnected nodes (IRIs, blank nodes or values) are supported." We
>>   should add: "Authors SHOULD NOT use unconnected nodes (a node
>>   definition that does not contain any properties) in JSON-LD
>>   documents."
>> 2. "Edge labels may be blank nodes." We should add: "Authors SHOULD
>>   NOT use blank nodes as edge labels."
>> 3. "Language tags are not normalized to lower case." We should add:
>>   "JSON-LD processors MUST normalize all language tags to lowercase
>>   when processing documents via the JSON-LD Algorithms."
>> 4. "Scope of blank node labels". We should add: "Blank node labels are
>>   scoped to the JSON-LD document."
>> 
>> Which leaves these two differences between the JSON-LD data model and
>> the RDF data model:
>> 
>> 1. "Supports 'plain' strings, numbers and booleans, separately from
>>   typed literals." This is true for TURTLE as well, so if there is a
>>   problem with JSON-LD, then there is a problem with TURTLE when it
>>   comes to this issue.
>> 2. "Language maps are part of the data model." This is syntactic sugar
>>   that was a requested "deal breaker" feature by the Drupal community.
>>   If we don't include it, Drupal will willfully violate the JSON-LD
>>   spec (or come up with their own solution). Digital Bazaar's
>>   implementations will support Drupal by adding the feature to the
>>   implementation, thus willfully violating the JSON-LD spec. The
>>   difference in the data model does not result in any loss of
>>   information when converting to RDF, other than the ability to
>>   re-create the exact JSON-LD language-map structure when converting
>>   back to JSON-LD from RDF. I personally don't think people will
>>   care about not being able to round-trip language-maps from
>>   JSON-LD to RDF and back to JSON-LD, but if they do, Gregg Kellogg
>>   has proposed a mechanism that allows that to happen.
>> 
>> Hope that is a helpful rundown of the differences between the two data
>> models and my personal opinion of where we should be headed wrt. data
>> model alignment.
>> 
>> -- manu
>> 
>> --
>> Manu Sporny (skype: msporny, twitter: manusporny)
>> President/CEO - Digital Bazaar, Inc.
>> blog: HTML5 and RDFa 1.1
>> http://manu.sporny.org/2012/html5-and-rdfa/
>> 
> 
Received on Tuesday, 30 October 2012 18:45:31 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:25:52 GMT