I follow up on query where the schema.org database is used to find the number of children of a class - as a simpler database than my application. I want to get the names of the
18.5.1.7 GroupConcat:
The order of the strings is not specified.
From the horse's mouth:
On 2011-04-22, at 19:01, Steve Harris wrote:
On 2011-04-22, at 06:18, Jeen Broekstra wrote:
However, looking at the SPARQL 1.1 query spec, I think this is not a guaranteed result: as far as I can tell the solution modifier
ORDER BY
should be applied to the solution sequence after grouping and aggregation, so it can not influence the order of the input for theGROUP_CONCAT
.That's correct.
An additional select
subquery is required to push the order inside the groups:
prefix schema: <http://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?child (group_concat (?string) as ?strings)
where {
select *
{
?child rdfs:subClassOf schema:Event .
?grandchild rdfs:subClassOf ?child .
bind (strafter(str(?grandchild), "http://schema.org/") as ?string)
} order by asc(?string)
} group by ?child
limit 20