On 13 Oct 2011, at 08:24, Paolo Castagna wrote:
> Hi Gokhan
>
> Gokhan Soydan wrote:
>> Hello,
>>
>> Using a BIND in a nested graph pattern (a basic, OPTIONAL or UNION
>> pattern) with an input argument that was assigned in the parent graph
>> pattern doesn't work. The following example query returns no value for
>> ?x, whereas it should return the value of ?s assigned to ?x
>>
>> SELECT ?x
>> WHERE {
>> ?s ?p ?o
>> {
>> BIND( ?s AS ?x )
>> }
>> }
>
> It says:
>
> "Use of BIND is a separate element of a group graph pattern and it ends any
> basic graph pattern."
>
> So, I tried this instead:
> SELECT ?x { ?s ?p ?o BIND ( ?s AS ?x ) }
>
> Bingo! I got my results:
ARQ is correct. The mantra to repeat is: SPARQL is evaluated inside out.
So:
>> ?s ?p ?o
>> {
>> BIND( ?s AS ?x )
>> }
Start with the inner bit. ?s is unbound, and ?x isn't bound. The inner bit
isn't doing anything at all, ?x is never bound.
Damian