- From: Lee Feigenbaum <lee@thefigtrees.net>
- Date: Tue, 11 Dec 2007 09:52:36 -0500
- To: Adrian Walker <adriandwalker@gmail.com>
- CC: public-rdf-dawg-comments@w3.org
Some can, like min and max. Most can't, as far as I know. See http://lists.w3.org/Archives/Public/public-rdf-dawg/2007OctDec/0078.html Lee Adrian Walker wrote: > Lee -- > > Is there perhaps some similar SPARQL workaround to get aggregation? > > That would be: count rows, count symbols, sum, max, min, and avg. > > Thanks, -- Adrian > > Internet Business Logic > A Wiki and SOA Endpoint for Executable Open Vocabulary English > Online at www.reengineeringllc.com <http://www.reengineeringllc.com> > Shared use is free > > Adrian Walker > Reengineering > > On 12/11/07, *Lee Feigenbaum* <lee@thefigtrees.net > <mailto:lee@thefigtrees.net>> wrote: > > > Bob MacGregor wrote: > > Once upon a time, there was speculation that the the combination of > > SPARQL's OPTIONAL and UNBOUND > > operators are adequate to emulate a negation-as-failure operator. > > Previously, we produced examples > > that contradicted that claim. Here is another such example, > which is > > relatively simple, of a query that > > (I believe) one cannot express in SPARQL. It comes out of a real > > application we are implementing for a client, i.e., > > its a use case. > > > > The application involves attaching tags to resources that specify the > > time of first use. In other words, > > until the time specified has passed, the resource should not be > > retrievable. In the application, updates > > are distributed across triple stores, and the tags serve to > insure that > > newly updated resources will be visible > > at the same time across the distributed stores. It can happen > that a > > resource is tagged more > > than once (since it may be updated more than once). Below is a query > > that retrieves only Articles > > such that none of their time tags has a newer time than the present > > (phrased in a SPARQL-like > > syntax): > > > > SELECT ?a > > FROM model > > WHERE > > (?a rdf:type ft:Article) AND > > UNSAID ((?a ex:timetag ?time) AND > > (?time > $NOW)) > > > > This query can also be phrased without difficulty in SQL. If anyone > > knows how to > > express this in SPARQL, I'd like to see the solution. > > Hi Bob, > > In SPARQL, this query is (unedited, untested): > > SELECT ?a > FROM :model > WHERE { > ?a rdf:type ft:article ; ex:timetag ?maxtime . > OPTIONAL { ?a ex:timetag ?othertime . FILTER(?othertime > ?maxtime) } > FILTER (!bound(?othertime) && ?maxtime > '...now...') > } > > Negation / universal quantification is not pretty in SPARQL, but it can > usually be done. > > I'm CC'ing public-sparql-dev@w3.org > <mailto:public-sparql-dev@w3.org>, which is a more appropriate list > for 'how-to' questions about SPARQL. > > thanks, > Lee > >
Received on Tuesday, 11 December 2007 14:52:55 UTC