On Tue, Oct 30, 2012 at 11:44 AM, Gregg Kellogg <gregg@greggkellogg.net> wrote:
> 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"]}
My somewhat sad understanding is that "there's a graph name "baz" with
a single triple [] dc:title "Baz"." is one possible interpretation of
that TriG... but a reasonable one.
>
> 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/
>>>
>>
>