- From: Sandro Hawke <sandro@w3.org>
- Date: Wed, 25 Apr 2012 07:59:56 -0400
- To: Ivan Herman <ivan@w3.org>
- Cc: Steve Harris <steve.harris@garlik.com>, public-rdf-wg WG <public-rdf-wg@w3.org>
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