W3C home > Mailing lists > Public > public-rdf-dawg-comments@w3.org > January 2006

Re: major technical: no aggregates

From: Dan Connolly <connolly@w3.org>
Date: Thu, 12 Jan 2006 17:28:21 -0600
To: Fred Zemke <fred.zemke@oracle.com>
Cc: public-rdf-dawg-comments@w3.org
Message-Id: <1137108501.19546.448.camel@dirk.w3.org>

On Thu, 2006-01-12 at 13:43 -0800, Fred Zemke wrote:
> There is no ability to perform aggregates, ie, computations on a
> set of results.  Example: find authors who have written 2 or more books.
> Solution: SELECT ?author WHERE { ?author v:wrote ?book1 .
> ?author v:wrote ?book2 . FILTER (?book1 != ?book2) }
> Now try to find authors who have written 50 or more books.
> This will require 50 book variables and 50*49/2 filter predicates.
> It would be easier if there were a way to count the number of books
> that an author has and then filter on the count.   Other commonly used
> aggregates are sum, average, maximum, minimum.  I don't know of any
> workaround at all for computing sum or average in SPARQL.

Quite.

We didn't identify this as a requirement in our requirements gathering.
  http://www.w3.org/TR/rdf-dawg-uc/

It did come up in design discussions, but we...

  RESOLVED: to add a count/aggregate issue and postpone it, due
   to schedule considerations
  -- http://www.w3.org/2001/sw/DataAccess/issues#countAggregate

That is: the working group is of the opinion that SPARQL can
meet the use cases and requirements that we identified, and should
advance thru the W3C process despite lack ofcount/aggregate features.

I hope you find this justification satisfactory. Please let us
know whether you do.


>   There is
> a workaround for maximum and minimum, though it is messy.
> Example: find the vendor with the lowest price for a widget.
> SELECT ?vendor
> WHERE { ?vendor v:sells ?product .
>         ?product a w:idget .
>         ?product v:price ?price .
>         ?vendor2 v:sells ?product2 .
>         ?product2 a w:idget .
>         ?product2 v:price ?price2 .
>         FILTER (?price2 > ?price) }
> 
> Fred Zemke
-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E
Received on Thursday, 12 January 2006 23:28:25 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:14:49 GMT