- From: Axel Polleres <axel.polleres@deri.org>
- Date: Mon, 20 Sep 2010 00:17:49 +0100
- To: SPARQL Working Group <public-rdf-dawg@w3.org>
It seems DISTINCT might be quite important for GROUP_CONCAT ...
I was just playing with the following use case
Data:
@prefix ex: <http://example.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
ex:alice a foaf:Person; foaf:name "Alice Wonderland";
foaf:nick "Alice", "The real Alice".
ex:bob a foaf:Person;
foaf:name "Robert Doe", "Robert Charles Doe", "Robert C. Doe";
foaf:nick "Bob","Bobby","RobC","BobDoe".
ex:charles a foaf:Person;
foaf:name "Charles Charles";
foaf:nick "Charlie" .
=============
My query should do the following:
pick one sample name per person, plus a concatenated list of nicknames
query, first version:
=============
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ( SAMPLE(?N) as ?Name)
( GROUP_CONCAT(?M; SEPARATOR = ",") AS ?Nicknames )
WHERE { ?P a foaf:Person ;
foaf:name ?N ;
foaf:nick ?M . }
GROUP BY ?P
=============
doesn't work, since the nicknames appear repeated... I suppose this is where I'd need DISTINCT, but I couldn't get that
following version running yet with any implementation:
=============
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ( SAMPLE(?N) as ?Name)
( GROUP_CONCAT( DISTINCT ?M; SEPARATOR = ",") AS ?Nicknames )
WHERE { ?P a foaf:Person ;
foaf:name ?N ;
foaf:nick ?M . }
GROUP BY ?P
=============
My expected result for the latter query was something like:
--------------------------------------------------------------------------------------------
| Name | Nicknames |
============================================================================================
| "Robert C. Doe" | "BobDoe,RobC,Bobby,Bob" |
| "Alice Wonderland" | "The real Alice,Alice" |
| "Charles Charles" | "Charlie" |
--------------------------------------------------------------------------------------------
Does anybody have that implemented/running yet?
best,
Axel
Received on Sunday, 19 September 2010 23:18:23 UTC