- 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