获取具有多种官方语言的国家/地区列表

时间:2016-01-11 17:13:54

标签: sparql dbpedia

我试图从拥有多种官方语言的dbpedia中找到所有国家/地区。我尝试了以下sparql查询,但没有工作。

SELECT distinct ?country ?officialLanguage
WHERE {
  ?country rdf:type dbo:Country .
  ?country dbo:officialLanguage ?officialLanguage. 

 FILTER (COUNT(?officialLanguage) >1)
}

并收到以下错误 -

Virtuoso 37000 Error SP030: SPARQL compiler, line 8: Aggregates are allowed only in result sets at ')' before '>'

我是sparql的新手。我想我错过了什么。

2 个答案:

答案 0 :(得分:2)

作为@svick答案的替代查询,您可以尝试

SELECT ?country (COUNT(?officialLanguage) AS ?nrOfLanguages)
WHERE {
  ?country rdf:type dbo:Country .
  ?country dbo:officialLanguage ?officialLanguage. 
}
GROUP BY ?country 
HAVING(COUNT(?officialLanguage) > 1)

答案 1 :(得分:1)

SPARQL没有这样的工作,它不能推断出你的意思是每个?officialLanguage的不同?country的计数。您需要更加明确,例如:

SELECT distinct ?country ?officialLanguage
WHERE {
  ?country rdf:type dbo:Country .
  ?country dbo:officialLanguage ?officialLanguage.
  {
      SELECT ?country COUNT(*) AS ?languages
      WHERE {
          ?country dbo:officialLanguage [].
      }
  }

  FILTER (?languages > 1)
}