W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > January to March 2010

Re: Prioritised list of open issues (query, my bits)

From: Lee Feigenbaum <lee@thefigtrees.net>
Date: Thu, 11 Feb 2010 08:58:29 -0500
Message-ID: <4B740D05.5030606@thefigtrees.net>
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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:41 GMT