- From: Axel Polleres <axel.polleres@deri.org>
- Date: Mon, 21 Feb 2011 08:10:33 +0000
- To: Gregory Williams <greg@evilfunhouse.com>
- Cc: "SPARQL Working Group" <public-rdf-dawg@w3.org>
- Message-Id: <D3319A41-ACAE-4003-9C4C-58E15D834D6A@deri.org>
Thanks Greg for spotting this! Actually, there were two mistakes in the P_B pattern below... see inline. On 20 Feb 2011, at 23:40, Gregory Williams wrote: > On Feb 18, 2011, at 1:31 PM, Axel Polleres wrote: > > > For any unnamed bnode _:B in a modify_template_DEL > > (i) new variables ?Var_B ?Var_B1 ?Var_B2 ?Var_Bg are introduced, > > (ii) _:B is replaced by ?Var_B in a modify_template_DEL, > > (iii) Pattern P is replaced by P_B such that > > > > P_B = { P } UNION { > > SELECT DISTINCT ?Var_B > > { { ?Var_B ?Var_B1 ?Var_B2 } UNION > > { ?Var_B1 ?Var_B ?Var_B2 } UNION > > { ?Var_B1 ?Var_B2 ?Var_B } UNION > > { GRAPH ?Var_Bg {?Var_B1 ?Var_B2 ?Var_B } } UNION > > { GRAPH ?Var_Bg {?D1 ?Var_B2 ?Var_B } } UNION > > { GRAPH ?Var_Bg {?Var_B1 ?Var_B2 ?Var_B } } } > > > > That is, ?Var_B binds to all possible values in the vocabulary of GS. > > I'm not totally swapped in on this issue, but I don't understand how this pattern aligns with the description. In all three named graph union branches, ?Var_B appears in the object position. Since ?Var_B is the only projected variable, don't these three branches return the same results? yes, that was a copy-paste error from an earlier version I had. The correct one should be P_B = { { P } { Q } } i.e. join, not UNION (thanks Andy, for pointing me to that offlist), where Q is defined as below... > > > I know that the definition of P_B doesn't look very nice, but this definition should cover the intended semantics of [2]. > > In principle, the idea is that bnodes, that should behave as wildcard should bind to *any* element in the signature of GS, > > which is what is returned by the subquery > > Q = SELECT DISTINCT ?D > > { { ?D ?D1 ?D2 } UNION > > { ?D1 ?D ?D2 } UNION > > { ?D1 ?D2 ?D } UNION > > { GRAPH ?Dg {?D1 ?D2 ?D } } UNION > > { GRAPH ?Dg {?D1 ?D2 ?D } } UNION > > { GRAPH ?Dg {?D1 ?D2 ?D } } } ...corrected version of Q: Q = SELECT DISTINCT ?Var_B { { ?Var_B ?Var_B1 ?Var_B2 } UNION { ?Var_B1 ?Var_B ?Var_B2 } UNION { ?Var_B1 ?Var_B2 ?Var_B } UNION { GRAPH ?Var_Bg {?Var_B ?Var_B1 ?Var_B2 } } UNION { GRAPH ?Var_Bg {?Var_B1 ?Var_B ?Var_B2 } } UNION { GRAPH ?Var_Bg {?Var_B1 ?Var_B2 ?Var_B } } } > > Even more obvious in this one. Am I missing something? > Hope I got it right now ;-) Thanks, Axel > thanks, > .greg > > >
Received on Monday, 21 February 2011 08:11:12 UTC