给定一个音乐艺术家,我试图找到其他与某个特定艺术家具有最常见“关联行为”的音乐艺术家。我有以下关于Eminem的查询,它工作正常

SELECT ?c (COUNT(*) AS ?count) WHERE {
{
?b <http://dbpedia.org/property/associatedActs> <http://dbpedia.org/resource/Eminem>.
?b <http://dbpedia.org/property/associatedActs> ?
}
}group by ?c order by desc(?count) LIMIT 10

但是我想找回这位艺术家的照片以及他们的dbpedia资源链接(?c)。试试这个
SELECT ?c (COUNT(*) AS ?count) WHERE {
{
?b <http://dbpedia.org/property/associatedActs> <http://dbpedia.org/resource/Eminem>.
?b <http://dbpedia.org/property/associatedActs> ?c.
?c <http://dbpedia.org/ontology/thumbnail> ?i
}
}group by ?c order by desc(?count) LIMIT 10

给我一个错误“变量?i在聚合之外的结果集中使用,而在GROUP BY子句中未提及”。如果我按我分组,则可以正常工作,但我无法回来。

那么如何获得图片和资源链接其他匹配的艺术家?

最佳答案

使用子查询:

SELECT ?c ?i ?count WHERE { {SELECT ?c (COUNT(*) AS ?count) WHERE {
{
?b <http://dbpedia.org/property/associatedActs> <http://dbpedia.org/resource/Eminem>.
?b <http://dbpedia.org/property/associatedActs> ?c .

}
} group by ?c order by desc(?count) LIMIT 10} . ?c <http://dbpedia.org/ontology/thumbnail> ?i }

您可以找到结果here

关于sparql - DBpedia SPARQL-获取其他艺术家的图像和资源链接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9889232/

10-13 00:11