我试图从拥有多种官方语言的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的新手。我想我错过了什么。
答案 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)
}