- From: Andy Seaborne <andy.seaborne@epimorphics.com>
- Date: Sat, 26 May 2012 16:22:48 +0100
- To: public-rdf-dawg@w3.org
On 26/05/12 07:52, Axel Polleres wrote:
> Dear all,
>
> As per http://lists.w3.org/Archives/Public/public-rdf-dawg/2012AprJun/0161.html
> I added 8 new BIND scope test cases under
>
> http://www.w3.org/2009/sparql/docs/tests/data-sparql11/syntax-query/
>
> which are marked
> :test55 - :test62
> in the manifest file
> http://www.w3.org/2009/sparql/docs/tests/data-sparql11/syntax-query/manifest.ttl
>
> best,
> Axel
Good for tests : I disagree with test 7 and test 8.
test 7:
PREFIX : <http://www.example.org>
SELECT *
WHERE {
{
:s :p ?o .
:s :q ?o1 .
}
BIND((1+?o) AS ?o1)
}
Add the inner {} around the BGP scopes ?o1 to a deeper level.
What is confusing here is that simplification happens.
I also think the algebra generation text in rq25 is wrong for BIND.
If we had:
PREFIX : <http://www.example.org>
SELECT *
WHERE {
BIND((1+?o) AS ?o1)
{
:s :p ?o .
:s :q ?o1 .
}
}
we keep the join:
(prefix ((: <http://www.example.org>))
(join
(extend ((?o1 (+ 1 ?o)))
(table unit))
(bgp
(triple :s :p ?o)
(triple :s :q ?o1)
)))
but joins are commutative so this (the translation of the test) is not
right:
(prefix ((: <http://www.example.org>))
(extend ((?o1 (+ 1 ?o)))
(bgp
(triple :s :p ?o)
(triple :s :q ?o1)
)))
it should be:
(prefix ((: <http://www.example.org>))
(join
(bgp
(triple :s :p ?o)
(triple :s :q ?o1)
)
(extend ((?o1 (+ 1 ?o)))
(table unit))
))
i.e. the BIND applies to the immediate BGP, not across the nested group
elements.
I need to investigate this further.
Andy
Received on Saturday, 26 May 2012 15:23:18 UTC