- From: Steve Harris <steve.harris@garlik.com>
- Date: Mon, 21 Dec 2009 23:48:51 +0000
- To: Andy Seaborne <andy.seaborne@talis.com>
- Cc: "public-rdf-dawg@w3.org Group" <public-rdf-dawg@w3.org>
On 21 Dec 2009, at 18:10, Andy Seaborne wrote: > On 20/12/2009 19:59, Steve Harris wrote: >> Hi all, >> >> I've just added the text on aggregate functions to >> http://www.w3.org/2009/sparql/docs/query-1.1/rq25.xml#aggregateFunctions >> >> The main new content is a new definition of Aggregation, to match the >> groups intentions for the use of aggregate functions, and definitions >> for COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT, and SAMPLE. >> >> The notation around “exp · μ'” in Aggregation is questionable, >> so if >> anyone has a better suggestion I'm all ears. >> >> I'm hoping to put the definitions for sub-select in rq25 on Monday. >> >> - Steve >> > > [[ > Definition: GroupConcat > > The multiset of values passed as an argument is converted to a > sequence S. > > GroupConcat(S) = fn:string-join(S, " ") > > @@ do we want space as the seperator? It's annoying in names for > example. Other reasonable choices include ",", "\n", or "\t". > ]] > > All reasonable, none always right. I suggest that GroupConcat take > an optional separator defaulting to a single space. > > If the elements are "a" "b" "c" > > CONCAT(?x) -> "a b c" > CONCAT(?x, "/") -> "a/b/c" > > If the elements are integers 1 2 3 > > CONCAT(str(?x)+1) -> "2 3 4" > CONCAT(str(?x)+1, "+") -> "2+3+4" I did consider that, but it conflicts with the semantics of aggregates (both in SQL, and what's currently in the SPARQL draft). One option would be a keyword, like GROUP_CONCAT(str(?x) SEPARATOR "+"), this is what MySQL does, but it means some special case syntax. - Steve
Received on Monday, 21 December 2009 23:49:32 UTC