title: SPARQL: Projecting on a non-existing variable
body: <p>Try this query with and without the limit clause at the end on <a href="https://query.wikidata.org" rel="nofollow noreferrer">Wikidata endpoint</a>.</p>
  
  <p>With LIMIT clause <a href="https://query.wikidata.org/#SELECT%20%20%20%3Ffilm%20%3Fduration%0AWHERE%0A%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%7B%0A%20%20%20%20%20%20select%20%3Ffilm%20%3Fduration%0A%20%20%20%20%20%20where%0A%20%20%20%20%20%20%20%20%20%7B%3Ffilm%20%20%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2FP31%3E%20%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ11424%3E.%7D%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20%7B%0A%20%20%20%20%20%20select%20%3Ffilm%20%3Fduration%20%20%20%20%20%0A%20%20%20%20%20%20where%0A%20%20%20%20%20%20%20%20%20%7B%3Ffilm%20%20%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2FP2047%3E%20%20%3Fduration%20.%7D%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%7D%0Alimit%201000%0A%20%20%20%20%0A%20%20%20%20" rel="nofollow noreferrer">here</a>, and without LIMIT clause here <a href="https://query.wikidata.org/#SELECT%20%20%20%3Ffilm%20%3Fduration%0AWHERE%0A%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%7B%0A%20%20%20%20%20%20select%20%3Ffilm%20%3Fduration%0A%20%20%20%20%20%20where%0A%20%20%20%20%20%20%20%20%20%7B%3Ffilm%20%20%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2FP31%3E%20%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fentity%2FQ11424%3E.%7D%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20%7B%0A%20%20%20%20%20%20select%20%3Ffilm%20%3Fduration%20%20%20%20%20%0A%20%20%20%20%20%20where%0A%20%20%20%20%20%20%20%20%20%7B%3Ffilm%20%20%20%3Chttp%3A%2F%2Fwww.wikidata.org%2Fprop%2Fdirect%2FP2047%3E%20%20%3Fduration%20.%7D%0A%20%20%20%20%7D%20%20%20%20%20%20%0A%7D%0A%23limit%201000%0A%20%20%20%20%0A%20%20%20%20" rel="nofollow noreferrer">here</a>. </p>
  
  <p>Now see the difference... I think that the reason for this is the <code>?duration</code> variable in the projection of the first subquery, which indeed has no bindings and not in the domain of the solution mapping. Now I think here there is definitely a bug in Blazergraph. But the question anyways is: if we project on a variable that doesn't exist in the domain of the solution, and then use the variable for joining (as with <code>?duration</code> in the example), what should the behaviour be? Ignore the variable or treat it as unbound variable?</p>
  
  <pre><code>SELECT   ?film ?duration
  WHERE
  {         
      {
        select ?film ?duration
        where
           {?film   &lt;http://www.wikidata.org/prop/direct/P31&gt;  &lt;http://www.wikidata.org/entity/Q11424&gt;.}
      }
  
      {
        select ?film ?duration     
        where
           {?film   &lt;http://www.wikidata.org/prop/direct/P2047&gt;  ?duration .}
      }      
  }
  #limit 1000 
  </code></pre>