- From: Polleres, Axel <axel.polleres@siemens.com>
- Date: Wed, 23 May 2012 09:04:49 +0200
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
Dear all,
I'd like to first tackle the issue around BIND, I'll write some more suggestions on the definition of "in-scope" in a separate mail
As per
http://lists.w3.org/Archives/Public/public-rdf-dawg/2012AprJun/0120.html
I think that there was some problem about the definition of in-scope with BIND.
item 12. in
http://www.w3.org/2009/sparql/docs/query-1.1/rq25.xml#sparqlGrammar
currently says:
"
* The variable assigned in a BIND clause must not be already <a href="http://www.w3.org/TR/sparql11-query/#variableScope">in-scope</a>.
"
which I think was a bit unclear, since the meaning of "already" in scope wasn't clear.
I have two alternative suggestions to go forward here:
--------------------------------------------------------------------
Option 1:
---------
Disallow variable being in-scope for the whole group where the BIND clause appears in:
That could be addressed by changing item 12 as follows:
* The variable assigned in a BIND clause must not be already <a href="http://www.w3.org/TR/sparql11-query/#variableScope">in-scope</a> in the same group the BIND clause appears in if the BIND clause was dropped. That is, if BIND (Exp as V) appears in a pattern { P1 BIND (Exp as V) P2 }, then v must not be <a href="http://www.w3.org/TR/sparql11-query/#variableScope">in-scope</a <http://www.w3.org/TR/sparql11-query/#variableScope">in-scope</a> > in { P1 P2 } .
--------------------------------------------------------------------
Option 2:
---------
Disallow variable being in-scope in the semegroup, but only before the BIND clause appears:
That could be addressed by changing item 12 as follows:
* The variable assigned in a BIND clause must not be already <a href="http://www.w3.org/TR/sparql11-query/#variableScope">in-scope</a>
within the pattern in the same group befor the BIND clause. That is, if BIND (Exp as V) appears in a pattern
{ P1 BIND (Exp as V) P2 }, then v must not be <a href="http://www.w3.org/TR/sparql11-query/#variableScope">in-scope</a <http://www.w3.org/TR/sparql11-query/#variableScope">in-scope</a> > P1.
--------------------------------------------------------------------
It seems actually, that both versions resolve the issue and it seems that Option 1 and 2 are somewhat
equivalent, since we also write that "BIND ends the basic graph pattern", right? (Although I couldn't really find where
that was actually reflected in the semantics definition, or is this implicit in the algorithm in Section "18.2.2.6 Translate Graph Patterns"?)
Best,
Axel
--
Dr. Axel Polleres
Siemens AG Österreich
Corporate Technology Central Eastern Europe Research & Technologies
CT T CEE
Tel.: +43 (0) 51707-36983
Mobile: +43 (0) 664 88550859
Fax: +43 (0) 51707-56682 mailto:axel.polleres@siemens.com
Received on Wednesday, 23 May 2012 07:05:42 UTC