- From: Lee Feigenbaum <lee@thefigtrees.net>
- Date: Thu, 11 Feb 2010 08:58:29 -0500
- To: Andy Seaborne <andy.seaborne@talis.com>
- CC: Steve Harris <steve.harris@garlik.com>, "public-rdf-dawg@w3.org Group" <public-rdf-dawg@w3.org>
On 2/9/2010 8:53 AM, Andy Seaborne wrote: > > > On 09/02/2010 1:34 PM, Steve Harris wrote: >> On 9 Feb 2010, at 11:27, Andy Seaborne wrote: >>> On 09/02/2010 10:29 AM, Lee Feigenbaum wrote: >>>> Steve Harris wrote: >>>>> On 9 Feb 2010, at 09:00, Andy Seaborne wrote: >>>>>> On 08/02/2010 10:23 AM, Steve Harris wrote: >>>>>>> http://www.w3.org/2009/sparql/track/issues/35 >>>>>>> Can aggregate functions take DISTINCT as an argument a la SELECT >>>>>>> COUNT(DISTINCT ?X)? >>>>>>> - Seems consensus on yes. >>>>>> >>>>>> A URI should name the function, not a collection of related >>>>>> functionality. >>>>>> >>>>>> Example: >>>>>> >>>>>> COUNT(DISTINCT ?x) vs COUNT(?x) >>>>>> >>>>>> How do you name the difference if they are not different URIs? >>>>> >>>>> In my view, DISTINCT does not change the function, it changes the >>>>> (multi)set that the function is applied to, c.f. >>>>> http://www.w3.org/2009/sparql/docs/query-1.1/rq25.xml#aggregateAlgebra >>>>> >>>>> More concretely, you form a DISTINCT multiset of the bound values of >>>>> ?x, then apply the count function to the resulting set. >>>> >>>> FWIW, this is exactly how Glitter treats the DISTINCT modifier for both >>>> built-in and custom aggregates. It modified the set of solutions passed >>>> to the aggregate function. >>> >>> The defn in the doc applies it to the values of expressions of the >>> aggregate function (aside, so no seeing the expressions themselves, >>> only the result of after evaluation). >>> >>> If we have, in one partition: >>> >>> (?x=1, ?y=2) >>> (?x=1, ?y=3) >>> (?x=2, ?y=3) >>> >>> which is a set of solutions. >>> >>> I'd expect >>> COUNT(DISTINCT ?x) ==> 2 >>> COUNT(DISTINCT fn:floor((?x+1)/2)) ==> 1 >> >> Yes, > > Good - I wondered when Lee said it was the set of solutions made unique. Apologies on being unclear - I did indeed mean that the value set passed to the aggregate function is treated as distinct, so I too agree with this. Lee
Received on Thursday, 11 February 2010 13:59:06 UTC