- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Tue, 19 May 2009 13:17:02 +0000
- To: Axel Polleres <axel.polleres@deri.org>, "public-rdf-dawg@w3.org" <public-rdf-dawg@w3.org>
> -----Original Message-----
> From: public-rdf-dawg-request@w3.org [mailto:public-rdf-dawg-
> request@w3.org] On Behalf Of Axel Polleres
> Sent: 19 May 2009 13:24
> To: public-rdf-dawg@w3.org
> Subject: [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.
Because the evaluation semantics of this FILTER ASK are different [*] to plain subquery, I currently prefer to have a clearer syntax keword like EXISTS, !EXISTS.
Andy
[*] A plain subquery being (semantically) like a join with the other elements in a group.
> =============================================================
>
>
>
> --
> 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 13:18:59 UTC