W3C home > Mailing lists > Public > www-archive@w3.org > July 2013

Re: rdfs:Graph ? comment on http://www.w3.org/TR/rdf11-concepts/#section-dataset and issue 35

From: Sandro Hawke <sandro@w3.org>
Date: Tue, 16 Jul 2013 11:39:34 -0400
Message-ID: <51E56936.1060203@w3.org>
To: Jeremy J Carroll <jjc@syapse.com>
CC: www-archive@w3.org, "Peter F. Patel-Schneider" <pfpschneider@gmail.com>, phayes@ihmc.us
On 07/16/2013 10:37 AM, Jeremy J Carroll wrote:
> OK - I am getting started on this 

Thanks for helping me think this through....

> how about this dataset:
> <> a rdf:DirectDataset.
> GRAPH _:a { _:a _:a _:a }
> GRAPH _:b { _:b _:b _:b }
> does _:a = _:b?:


background: The strings "_:a" and "_:b" are blank node labels. Within 
any one TriG document, each blank node label corresponds 1-1 to a blank 

When I said "_:a = _:b" I meant that in all interpretations, the 
denotation of the blank node that is labeled "_:a" in this document is 
the same as the denotation of the blank node labeled "_:b" in this 

So the first named graph in your example is different from the second 
named graph in your example, because the repeated term in it uses a 
different blank node label and is thus a different blank node.   The 
denotations of those blank nodes might turn out to be the same (eg if we 
also are told _:a owl:sameAs _:b), but they are still different blank 
nodes.  Thus the graphs are different.   So we can not infer _:a = 
_:b.     In fact, if we were told _:a owl:sameAs _:b, then we'd have an 
inconsistent dataset.

> Or this one
> <> a rdf:DirectDataset.
> GRAPH _:a { <s> <p> <o> }
> GRAPH _:b { <s> <p> <o> }
> GRAPH _:c { _:a _:a _:a }
> GRAPH _:d { _:b _:b _:b }
> does _:c = _:d ?


(Of course, this is "generalized RDF", because you're using a blank node 
predicate.  I'm fine with that.)

> What is the definition of two graphs being equal in this view?

Maybe I should say identical here, instead of equal, to avoid this 
denotation step, above.

I'd say it follows from RDF Concepts that two graphs are identical (the 
same graph) if they contain exactly the same triples.   Triples are 
identical (the same triple) if their subject, predicate, and object 
terms are identical.   I believe term identity is spelled out in 
concepts -- it gets a little tricky on language tags -- but it's clear 
enough for blank nodes, I hope.

> Here is one:
> two graphs g and h within a dataset are equal if there exists an 
> automorphism of the dataset mapping each ground node to itself, and 
> inducing a bijection over the set of blank nodes such that the 
> automorphism maps g to h.

> (That isn't quite what is intended - since it does not make <A> and 
> <B> equal in this case:
> <> a rdf:DirectDataset.
> GRAPH <A> { <s> <p> <o> }
> GRAPH <B> { <s> <p> <o> }
> )

Sorry, automorphism is over my head.   I can look it up and try to 
figure it out if you want, but hopefully that's not necessary.

> In my view what you call the WebviewDataset is the natural model on 
> the Web,

I agree it's a very natural model, but I think there are lots of things 
one might like to do with datasets, like express an RDF Update, that 
can't be done very naturally with that model.

> and if this is not to be 'the' way of understanding named graphs 
> because of some other view, I would like that view to be articulated 
> rather than only exemplified.

Is it okay if it's in one or more WG Notes that come out in the next few 
months, instead of in RDF Concepts or RDF Semantics?

I mean, we'd all like that, we're just finding it impossible to get WG 
consensus on putting it in a REC.

        -- Sandro

> Jeremy J Carroll
> Principal Architect
> Syapse, Inc.
> On Jul 15, 2013, at 5:39 PM, Sandro Hawke <sandro@w3.org 
> <mailto:sandro@w3.org>> wrote:
>> It follows from this dataset:
>> <> a rdf:DirectDataset.
>> GRAPH _:a { <s> <p> <o> }
>> GRAPH _:b { <s> <p> <o> }
>> that _:a = _:b. 
Received on Tuesday, 16 July 2013 15:39:47 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:44:21 UTC