W3C home > Mailing lists > Public > public-rdf-wg@w3.org > March 2013

Re: mergeg in current Semantics ED

From: Pat Hayes <phayes@ihmc.us>
Date: Fri, 8 Mar 2013 14:10:10 -0600
Cc: Antoine Zimmermann <antoine.zimmermann@emse.fr>, RDF WG <public-rdf-wg@w3.org>
Message-Id: <0FC3F34E-AAF4-43B3-AFDE-1A06ADD0C1C2@ihmc.us>
To: Peter Patel-Schneider <pfpschneider@gmail.com>

On Mar 8, 2013, at 12:52 PM, Peter Patel-Schneider wrote:

> How is this all supposed to work in practice?

In practice, virtually all graphs in documents are scope graphs (they define their own bnode scope). The only exceptions are graphs that are clearly subgraphs of a larger graph and are treated as subsets of it; and graphs that are embedded inside RDF datastores, where the scope is that datastore. In both cases, I think what I describe here captures the practicalities of how such cases are used. 

> Does it mean that an implementation has to do something special for bnodes that cross between graphs?

By definition, the only way that two graphs can share a bnode is if they are subgraphs of a larger graph, or are included in a datastore. (Or are both contained in some as-yet-undefined other structure that describes a larger kind of bnode scope.) Implementations already have to do something special in the first case, and we don't give any constraints on what they do for the second. 

> Or is this just something to make the semantics work right, and has no external consequences?  If this is not the case, and I think that it may not be, then the WG should discuss the issue.

I think it is the case. Note that I am not making any changes to the semantics, just making a definition which allows us to state the conditions under which it is valid to take the union of two graphs. I am pretty sure that this has already been done, in fact, by Li DIng's notion of RDF molecules: 


You could define a complete graph as one that has all its molecules intact. 

> A different way to go would be to just have interpretations map b-nodes directly.  This would treat bnodes as skolems - the only difference between a bnode and a skolem is that a bnode *cannot* escape into the wild.

That would be a real change to the semantics, with far-reaching consequences. It owuld effectively remove bnodes altogether (other than an a syntax for local names).


> peter
> On Fri, Mar 8, 2013 at 10:43 AM, Pat Hayes <phayes@ihmc.us> wrote:
> Ah. Yes, now I see your (and Antoine's) point. Antoine, sorry I was slow.
> I think we need a new idea to handle this.
> Observation: a bnode scope might extend over several graphs, but a graph cannot cross bnode scopes. So bnode scopes are a 'larger' syntactic unit than graphs. Given a bnode scope, the set of triples contained in it is an RDF graph, call it the /scope graph/. Every RDF graph is a subgraph of some scope graph.
> A graph is /complete/ (/saturated/? /scoped/? /whole/? /coherent/? /molecular/?) when, if it contains a bnode, then it contains all triples in the scope graph which contain that bnode. That is, for each bnode b in the scope, it either does not contain b, or it contains every triple containing b.
> Ground graphs and scope graphs are always complete. A union (= merge) of complete graphs is complete.  Any set of complete graphs entails its union. Antoine's example shows that this may not be true for incomplete graphs.
> Comments, before I start editing?
> Pat

IHMC                                     (850)434 8903 or (650)494 3973   
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
Received on Friday, 8 March 2013 20:10:44 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 22:02:11 UTC