- From: Lee Feigenbaum <lee@thefigtrees.net>
- Date: Mon, 31 Aug 2009 01:45:54 -0400
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
This is in reference to ISSUE-4
(http://www.w3.org/2009/sparql/track/issues/4) and is in discharge of
ACTION-16.
At the F2F, we had a short discussion about variable scope and
subqueries: http://www.w3.org/2009/sparql/meeting/2009-05-07#line0199
At the time, Axel asked for a fleshed out example of the query that Andy
used on IRC to demonstrate the scoping issue.
Andy's query on IRC was :
SELECT * { {?x :p ?v } { SELECT * { ?x :q ?w FILTER (?v>3) } } }
...but I don't believe that demonstrates the proper issue. The above
query has the (non-)issue of whether ?v is visible inside the subquery.
I believe that SPARQL Query/1.0 already answers that: the bottom-up
nature of SPARQL's algebra means that the scope of the FILTER is within
the subquery's group. The only way that this FILTER would apply to
bindings from the {?x :p ?v} BGP is via a top-down evaluation model, and
that would be a breaking change to current SPARQL semantics.
Instead, I think this query demonstrates the scoping issue for subqueries:
SELECT * { ?x :p1 ?y {SELECT ?x { ?x :p 2?y }} FILTER(?y > 3)}
The question is, I think, does the subquery's projection completely hide
the "inner" ?y from the rest of the query? I believe there was clear
consensus at the F2F that the answer is "yes", which is consistent with
current SPARQL bottom-up semantics and with projection in general.
Anyway, having reviewed this issue, I think it's more of a non-issue, as
I haven't seen any advocates for an alternative approach. If anyone is
unhappy with this resolution to ISSUE-4, please let us know.
Lee
Received on Monday, 31 August 2009 05:46:47 UTC