- From: Steve Harris <steve.harris@garlik.com>
- Date: Fri, 26 Feb 2010 16:36:19 +0000
- To: Rob Vesse <rav08r@ecs.soton.ac.uk>
- Cc: <public-rdf-dawg-comments@w3.org>
- Message-Id: <E1ED75DB-6CDB-450C-9CB5-39D0A4F55819@garlik.com>
Responding as an individual, not representing the group...
On 25 Feb 2010, at 15:24, Rob Vesse wrote:
> With regards to my previous comments and the Working Group’s
> response [1] I would like to make some further comments.
>
> Aggregates – I do not like the proposed SEPARATOR syntax for
> GROUP_CONCAT at all, if you are going to include GROUP_CONCAT simply
> leave it as a single argument with a standard separator and then
> specify that fn:string-join() must be supported by SPARQL 1.1 as a
> function since I believe the WG intends to specify a subset of XPath
> and other common functions that implementations should support?
Referring to XPath functions directly is not helpful, as they're
orthogonal to the semantics of aggregates. Functions take a list of
values, perform some internal operation on them, and return a value.
Aggregations take a list (actually a multi-set I believe) of
expressions, evaluate them with respect to a binding set, apply some
set function, and then return a value. These are not compatible
concepts.
If you have something like:
data:
<x> <p> "1" .
<x> <p> "2" .
SELECT (GROUP_CONCAT(?x, "|") AS ?c)
WHERE {
<x> <p> ?x .
}
you will get back something like:
?c = "1 | 2 |"
But that's because it evaluates to
Aggregation((), {?x, "|"}, GROUP_CONCAT, [BS]) as per §9.2 of SPARQL
1.1 draft.
Which evaluates to GROUP_CONCAT({"1", "|", "2", "|"})
The SEPARATOR syntax comes from MySQL, which is where GROUP_CONCAT
originates from, it's necessary in SQL for the same reason it is in
SPARQL.
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
I'm not planning to add order ORDER BY aggregate syntax in SPARQL 1.1,
but I'm leaving it open for future WGs.
Hope this helps,
Steve
--
Steve Harris, Garlik Limited
2 Sheen Road, Richmond, TW9 1AE, UK
+44 20 8973 2465 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 Friday, 26 February 2010 16:36:54 UTC