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

Re: another aggregates test case...

From: Steve Harris <steve.harris@garlik.com>
Date: Wed, 9 Jun 2010 13:43:20 +0100
Cc: Lee Feigenbaum <lee@thefigtrees.net>, Axel Polleres <axel.polleres@deri.org>, SPARQL Working Group <public-rdf-dawg@w3.org>
Message-Id: <12033DDD-E136-45A2-B5F6-CC4FC1CFCC54@garlik.com>
To: Andy Seaborne <andy.seaborne@talis.com>
On 2010-06-09, at 10:23, Andy Seaborne wrote:
> 
> On 09/06/2010 10:08 AM, Steve Harris wrote:
>>> which leads me to a fairly natural interpretation of
>>> >
>>> >  SELECT ?s ?p
>>> >  {
>>> >     ?s ?p ?p
>>> >  } GROUP BY ?s ?p
>>> >
>>> >  as "null aggregation"
>> I don't understand the term "null aggregation".
> 
> It is a term earlier in the thread to capture the idea that SELECT/GROUP with no aggregators mentioned fitted into the current framework with an implicit aggregator that did nothing.

This is captured in the current draft with:

"Definition: Group

Group evaluates a list of expressions against a solution sequence, producing a set of partial functions from keys to solution sequences.

The behaviour of Group is different when ExprList is empty.

Group((), Ω) = { 1 -> Ω }

Group(ExprList, Ω) = { ListEval(ExprList, μ) -> { μ' | μ' in Ω, ListEval(ExprList, μ) = ListEval(ExprList, μ') } | μ in Ω }"

http://www.w3.org/TR/2010/WD-sparql11-query-20100601/#aggregateAlgebra

"1" is just some arbitrary value that I plucked from thin air. I could have invented a new symbol, but that's arguably less clear. I guess the empty list would have been a good choice too.

- Steve

-- 
Steve Harris, Garlik Limited
1-3 Halford Road, Richmond, TW10 6AW, UK
+44 20 8439 8203  http://www.garlik.com/
Registered in England and Wales 535 7233 VAT # 849 0517 11
Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10 9AD
Received on Wednesday, 9 June 2010 12:43:49 GMT

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