[ACTION-18] use case on !ASK in FILTERS to emulate negation

This completes Action-18:

http://www.w3.org/2009/sparql/track/actions/18

=============================================================

The current spec has the following example of a query emulating 
NEGATION, asking for people with a name but no expressed date:


PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc:   <http://purl.org/dc/elements/1.1/>
SELECT ?name
  WHERE { ?x foaf:givenName  ?name .
          OPTIONAL { ?x dc:date ?date } .
          FILTER (!bound(?date)) }

If ASK queries were allowed within FILTER expressions, this could be 
written as:


PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc:   <http://purl.org/dc/elements/1.1/>
SELECT ?name
  WHERE { ?x foaf:givenName  ?name .
          FILTER (! {ASK { ?x dc:date ?date }})
        }


Note here, that the subquery in the FILTER needs to "access" the 
bindings from the superquery. This should not be a problem with the 
algebra or order dependence since per definition, FILTER expressions 
need to have access to the bindings of the group they appear in, but it 
would mean that such ASK queries in FILTERS (similar to OPTIONAL 
patterns in FILTERs) are not entirely compositional in their evaluation.
=============================================================



-- 
Dr. Axel Polleres
Digital Enterprise Research Institute, National University of Ireland, 
Galway
email: axel.polleres@deri.org  url: http://www.polleres.net/

Received on Tuesday, 19 May 2009 12:24:12 UTC