- From: Francis McCabe <frankmccabe@mac.com>
- Date: Thu, 25 Oct 2007 09:49:09 -0700
- To: public-rdf-dawg-comments@w3.org
I am having some trouble reconciling this test with the spec, the
reported results of the query.
The test reads:
FILTERs in an OPTIONAL do not extend to variables bound outside of
the LeftJoin(...) operation
however, the spec reads
Query variables in SPARQL queries have global scope; use of a given
variable name anywhere in a query identifies the same variable.
The reported results of the test:
PREFIX : <http://example/>
SELECT *
{
:x :p ?v .
{ :x :q ?w
OPTIONAL { :x :p ?v2 FILTER(?v = 1) }
}
}
include the results
v w
(4, 3)
(4, 2)
(4, 1)
(3, 3)
(3, 2)
(3, 1)
(2, 3)
(2, 2)
(2, 1)
(1, 3)
(1, 2)
(1, 1)
(My formatting, the XML is illegible by mortals)
However, I think that the test is wrong: v2 should be v. On my
budding implementation, I get the above results only if I change v2
to v. If I don't, I get:
v v2 w
(4, (null), 3)
(4, (null), 2)
(4, (null), 1)
(3, (null), 3)
(3, (null), 2)
(3, (null), 1)
(2, (null), 3)
(2, (null), 2)
(2, (null), 1)
(1, 4, 3)
(1, 3, 3)
(1, 2, 3)
(1, 1, 3)
(1, 4, 2)
(1, 3, 2)
(1, 2, 2)
(1, 1, 2)
(1, 4, 1)
(1, 3, 1)
(1, 2, 1)
(1, 1, 1)
Note that optional implies that there will be solutions that do not
bind v2.
I would appreciate clarification on this matter.
Frank
Received on Thursday, 25 October 2007 16:49:34 UTC