- From: Andy Seaborne <andy.seaborne@talis.com>
- Date: Fri, 02 Apr 2010 22:05:52 +0100
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
The decision at F2F3 to have just the form of NOT EXISTs in an explicit FILTER has a limitation. I should have realised at the time but it didn't occur to me until after the meeting. FILTERs get moved to the end of the BGP during translation from syntax to algebra. The form without the word "FILTER" does not move e.g. { ?s rdf:type :T NOT EXISTS { ?s :p ?v . } ?s :q ?v } then NOT EXISTS is not moved about by the FILTER placement rules. One reason for NOT EXISTS is as a better form of the OPTIONAL/!BOUND idiom, where the OPTIONAL block anchors the location of the existence test by it's effect of setting, or not, a variable to be tested later. The FILTER could be artificially forced using a extra {} { { ?s rdf:type :T FILTER NOT EXISTS { ?s :p ?v . } } ?s :q ?v } This is unnecessary - the more direct syntax is closer to the OPTIONAL/!BOUND idiom that I think it the important thing to make easier. Therefore I propose we adopt both negation proposals without modification. It only affects the grammar and translation from syntax to algebra - actual execution is unchanged and there is no additional implementation cost for execution. Andy
Received on Friday, 2 April 2010 21:06:22 UTC