Re: Blank node identifiers in FILTER clauses

On 17 Jul 2006, at 22:59, Enrico Franconi wrote:
> My above answer makes sense only if all the variables in the query  
> are distinguished (SELECT *). However, in your example only ?X is a  
> disinguished variable (SELECT ?X), and therefore YES, the correct  
> answer should be, and is, {?X/Paul}, since the non-distinguished  
> variables ?Y and ?Z are interpreted existentially.
> However, note that in order to write the above query you already  
> should have in mind the answer you expect. In other words, while  
> writing a query you can not expect the user to think in advance how  
> the answer could be and write the query accordingly. It can be  
> easily seen that if you want to reproduce with non-distingushed  
> variables the behaviour of bnodes in the answer set (like in the  
> above example), then the query with non-distinguished variables may  
> be exponentially larger than the answer set with bnodes. If you  
> think about it, this is due to the all possible different  
> coreferences between bnodes in the answer that you have to  
> explicitly represent in the query (this has also to do with the  
> cycles in the answer set I was mentioning a couple of emails ago).

Also note that in SPARQL the variables in a basic graph pattern are  
all distinguished; the role of non-distinguished variables is played  
by the bnodes.

--e.

Received on Monday, 17 July 2006 21:07:47 UTC