Sparql 获取拥有一种以上官方语言的国家列表

Sparql 获取拥有一种以上官方语言的国家列表,sparql,dbpedia,Sparql,Dbpedia,我试图从dbpedia中找到全国所有有不止一种官方语言的数据库。我尝试了以下sparql查询,但没有成功 SELECT distinct ?country ?officialLanguage WHERE { ?country rdf:type dbo:Country . ?country dbo:officialLanguage ?officialLanguage. FILTER (COUNT(?officialLanguage) >1) } 并得到以下错误- Virtuo

我试图从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很陌生。我想我错过了什么

SPARQL不是这样工作的,它无法推断出您指的是每个
?国家的不同
?官方语言的计数。您需要更加明确,例如:

选择不同的?国家/地区?官方语言
在哪里{
?国家rdf:类型dbo:国家。
?国家dbo:官方语言?官方语言。
{
选择“国家/地区计数(*)作为语言”
在哪里{
?国家dbo:官方语言[]。
}
}
过滤器(?语言>1)
}

作为@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)未使用合法SPARQL(SPARQL中没有逗号表示多个变量)2)未完全反映目标。@AKSW 1。这是微不足道的修复,谢谢你让我知道。2.你能解释一下这是什么意思吗?如果您的意思是查询不应该返回语言,那么这反映了问题中显式编写内容的目标,但我认为这并不反映无效代码的目标。