Wikidata SPARQL: how to include labels for grouped-by attributes

Viewed 175

I have a query that works OK:

SELECT ?language (COUNT (?lexeme) as ?lexemeCount) {
  ?lexeme dct:language ?language .
}
GROUP BY ?language

However, I can't think of how to add labels for languages (instead, or alongside with) language entity URIs. This fails with a time out exception on Wikidata:

SELECT ?languageLabel (COUNT (?lexeme) as ?lexemeCount) {
  ?lexeme dct:language ?language .
  SERVICE wikibase:label { 
    bd:serviceParam wikibase:language "en".
  }
}
GROUP BY ?languageLabel

So does this:

SELECT ?languageLabel (COUNT (?lexeme) as ?lexemeCount) {
  ?lexeme dct:language ?language .
  ?language rdfs:label ?languageLabel .
  FILTER(lang(?languageLabel) = 'en') .
}
GROUP BY ?languageLabel

What query's result would include language names, rather than URIs?

1 Answers

Turning a comment into a community wiki answer:

SELECT ?languageLabel ?lexemeCount {   
  {   
    SELECT ?language (COUNT (?lexeme) AS ?lexemeCount) {
      ?lexeme dct:language ?language
    }
    GROUP BY ?language
  }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en"
  }
}
Related