Re: Labelled graphs

On Wed, 2012-04-25 at 13:34 +0200, Ivan Herman wrote:
> On Apr 25, 2012, at 12:51 , Sandro Hawke wrote:
> 
> > On Wed, 2012-04-25 at 11:08 +0100, Steve Harris wrote:
> >> On 24 Apr 2012, at 13:04, Sandro Hawke wrote:
> >>> 
> >>>>> * When the same label is used multiple times in the same dataset, the
> >>>>> graph is
> >>>>> assumed to be the union of the graphs labeled with it
> >>> 
> >>> This is the "partial-graph semantics" view, which I can live with, but
> >>> some people have expressed opposition.  We should probably try some
> >>> straw polling on it.
> >> 
> >> The choice here needs to be made carefully, to avoid unintended consequences on implementations, and data generation processes.
> >> 
> >> The corner cases are around bNodes (aren't they always), e.g.
> > 
> > I believe you're talking about a different issue here.  The question of
> > the scope of bNode labels comes up whether we have partial- or
> > complete-graph semantics.
> > 
> > 6.1 says the scope of bNode labels is the document (or dataset, I
> > suppose).  I know that gives you a memory cost, but it's important for
> > several use cases, such as Keeping Inferred Triples Separate.
> > 
> > There are some SPARQL test cases for this here:
> >        http://www.w3.org/2011/rdf-wg/wiki/Graphs_Design_6.1#Blank_Nodes
> > 
> > I don't think you can test for it with trig entailment unless you have a
> > way to get at the triples inside the named graphs and exposing them to
> > RDF semantics.  Folks have been proposing doing that by flagging the
> > dataset as a default-is-union dataset; if you can do that, then you
> > could ask:
> > 
> >        Does
> >                @default-is-union
> >                <u1> { _:x <b> <c> }
> >                <u2> { _:x <b> <d> }
> >        entail
> >                { _:y <b> <c>,<d> }
> > 
> > I claim the answer should be "yes".
> 
> 
> I must admit I am not sure what http://www.w3.org/2011/rdf-wg/wiki/Graphs_Design_6.1#Blank_Nodes (ie, that blank nodes have a file scope) mean eg, in terms of semantics. 

I don't know how the scope of blank node labels is expressed in the RDF
semantics.   If you want, I can try to figure it out.

> If I look at the more abstract level
> 
> (D, (<u>,G), (<v>,H))
> 
> with G and H being different graphs, what does it mean that they share a blank node?

If I understand right, in the RDF Semantics, two "graphs" can't share a
blank node.  That's why in 6.1 I said you can/should think about D, G,
and H as subgraphs of some other graph that contains them all.   I could
draw a diagram that made it pretty clear how they shared a node --
they'd have arcs going to/from the same little node-circle in the
diagram, and the different graphs would be indicated by D being drawn
with blue arcs, G with green arcs, and H with yellow arcs. 

> Put it another way: if you have a TriG file  
> 
> <u1> { _:x <b> <c> }
> <u2> { _:x <q> <r> }
> 
> what is the abstract RDF dataset for this? 

I don't know how to type that dataset in ascii.  As a diagram, it looks
like the diagram for { [] <b> <c>; <q> <r> } except that the "b" arc is
colored so we know it's in u1 and the "q" arc is colored so we know it's
in u2.

> Unless of course all blank nodes are skolemized by TriG before generating a dataset

This global-scope-blank-nodes rule would show up in a skolemizing test
case.   I'm not sure how we're going to write down these test cases, or
if we're going to define Skolemizing for trig.  But if we did:

your example TriG file COULD be Skolemized to:

  <u1> { <http://example.org/.well-known/genid/1 <b> <c> }  
  <u2> { <http://example.org/.well-known/genid/1 <b> <c> }

but it COULD NOT be Skolemized to:

  <u1> { <http://example.org/.well-known/genid/1 <b> <c> }  
  <u2> { <http://example.org/.well-known/genid/2 <b> <c> }

    -- Sandro

Received on Wednesday, 25 April 2012 12:00:09 UTC