[ 
https://issues.apache.org/jira/browse/JENA-1018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Schmidt updated JENA-1018:
----------------------------------
    Description: 
Consider the sample data

{code}
<http://example.com/Alice> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
<http://example.com/Person> .
<http://example.com/Flipper> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
<http://example.com/Animal> .
{code}

and the following three queries:

{code}
SELECT ?s ?type WHERE { 
  BIND("http://example.com/"; AS ?typeBase)
  {
    BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
   ?s ?p ?o
   FILTER(?o=?type)
  }
}
{code}

{code}
SELECT ?s ?type WHERE { 
  BIND("http://example.com/"; AS ?typeBase)
  {
    BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
    ?s ?p ?o
    FILTER(?o=?type)
  }
  UNION
  {
    BIND(URI(CONCAT(?typeBase,"Animal")) AS ?type)
    ?s ?p ?o
    FILTER(?o=?type)
  }
}
{code}

{code}
 SELECT ?s ?type WHERE {
   {
     BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
     ?s a ?o
     FILTER(?o=?type)
   }
   UNION
   {
     BIND(URI(CONCAT(?typeBase,"Animal")) AS ?type)
     ?s a ?o
     FILTER(?o=?type)
   }
 } VALUES (?typeBase) { ("http://example.com/";) }
{code}

As discussed in thread 
https://lists.w3.org/Archives/Public/public-sparql-dev/2015JulSep/0026.html, in 
all cases variable ?typeBase is not in scope when binding variable ?type. As a 
consequence, all queries should return the empty result. However, with 
apache-jena-3.0.0 (tested with sparql batch script) all of them yield non-empty 
results.

  was:
Consider the sample data

{code}
<http://example.com/Alice> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
<http://example.com/Person> .
<http://example.com/Flipper> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
<http://example.com/Animal> .
{code}

and the following three queries:

{code}
SELECT ?s ?type WHERE { 
  BIND("http://example.com/"; AS ?typeBase)
  {
    BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
   ?s ?p ?o
   FILTER(?o=?type)
  }
}
{code}

{code}
SELECT ?s ?type WHERE { 
  BIND("http://example.com/"; AS ?typeBase)
  {
    BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
    ?s ?p ?o
    FILTER(?o=?type)
  }
  UNION
  {
    BIND(URI(CONCAT(?typeBase,"Animal")) AS ?type)
    ?s ?p ?o
    FILTER(?o=?type)
  }
}
{code}

{code}
 SELECT ?s ?type WHERE {
   {
     BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
     ?s a ?o
     FILTER(?o=?type)
   }
   UNION
   {
     BIND(URI(CONCAT(?typeBase,"Animal")) AS ?type)
     ?s a ?o
     FILTER(?o=?type)
   }
 } VALUES (?typeBase) { ("http://example.com/";) }
{code}

As discussed in thread 
https://lists.w3.org/Archives/Public/public-sparql-dev/2015JulSep/0026.html, in 
all cases variable ?typeBase is not in scope when binding variable ?type. As a 
consequence, all queries should return the empty result. However, with 
apache-jena-3.0.0 (tested with sparql batch script) yield results.


> Variable Scoping Issues
> -----------------------
>
>                 Key: JENA-1018
>                 URL: https://issues.apache.org/jira/browse/JENA-1018
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Optimizer
>    Affects Versions: Jena 3.0.0
>            Reporter: Michael Schmidt
>
> Consider the sample data
> {code}
> <http://example.com/Alice> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> 
> <http://example.com/Person> .
> <http://example.com/Flipper> 
> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Animal> 
> .
> {code}
> and the following three queries:
> {code}
> SELECT ?s ?type WHERE { 
>   BIND("http://example.com/"; AS ?typeBase)
>   {
>     BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
>    ?s ?p ?o
>    FILTER(?o=?type)
>   }
> }
> {code}
> {code}
> SELECT ?s ?type WHERE { 
>   BIND("http://example.com/"; AS ?typeBase)
>   {
>     BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
>     ?s ?p ?o
>     FILTER(?o=?type)
>   }
>   UNION
>   {
>     BIND(URI(CONCAT(?typeBase,"Animal")) AS ?type)
>     ?s ?p ?o
>     FILTER(?o=?type)
>   }
> }
> {code}
> {code}
>  SELECT ?s ?type WHERE {
>    {
>      BIND(URI(CONCAT(?typeBase,"Person")) AS ?type)
>      ?s a ?o
>      FILTER(?o=?type)
>    }
>    UNION
>    {
>      BIND(URI(CONCAT(?typeBase,"Animal")) AS ?type)
>      ?s a ?o
>      FILTER(?o=?type)
>    }
>  } VALUES (?typeBase) { ("http://example.com/";) }
> {code}
> As discussed in thread 
> https://lists.w3.org/Archives/Public/public-sparql-dev/2015JulSep/0026.html, 
> in all cases variable ?typeBase is not in scope when binding variable ?type. 
> As a consequence, all queries should return the empty result. However, with 
> apache-jena-3.0.0 (tested with sparql batch script) all of them yield 
> non-empty results.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to