Re: Bnodes in DELETE templates (was: SPARQL Update 1.1 review part1)

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?

> 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 } } }

Even more obvious in this one. Am I missing something?

thanks,
.greg

Received on Sunday, 20 February 2011 23:41:04 UTC