- From: Pat Hayes <phayes@ihmc.us>
- Date: Mon, 30 Apr 2012 02:36:45 -0500
- To: Sandro Hawke <sandro@w3.org>
- Cc: Ivan Herman <ivan@w3.org>, Steve Harris <steve.harris@garlik.com>, public-rdf-wg WG <public-rdf-wg@w3.org>
On Apr 25, 2012, at 6:59 AM, Sandro Hawke wrote: > 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. Blank nodes themselves do not have any notion of scope associated with them. They are just as "global' as IRIs. Graph node *identifiers* in a given concrete interchange syntax have scopes which are (presumably) defined by the rules of that particular syntax. > >> 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. Wrong!! They certainly can so share a blank node. That is why we had to have the distinction between unioning and merging, and all the resultant mess. (Go through the slides in my RDF Redux talk http://www.slideshare.net/PatHayes/rdf-redux to see how we SHOULD have defined the RDF abstract syntax to avoid this glitch.) > 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. A graph is a set. Of course D, G and H are subsets of a larger set their union). ANY collection of sets are all subsets of their union, that is a tautology. > 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. RIght, that would work. Pat > >> 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 > > > > ------------------------------------------------------------ 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 Monday, 30 April 2012 07:37:22 UTC