1
我怎样才能从一个排序的结果列表中访问一个新的查询的谓词+对象对他们的行号?从维基数据在另一个查询中使用有序的查询结果而无需单独处理?
实施例的查询:
SELECT ?p ?o (COUNT (?o) as ?oCount) WHERE{
?s ?p ?o. #return every predicate + object...
?s wdt:P31 wd:Q5. #...for humans
?s wdt:P19 wd:Q37100. #...born in Auckland (NZL)
?s wdt:P21 wd:Q6581097. #...which are male
}
GROUP BY ?p ?o ?oCount
ORDER BY DESC(?oCount) #order by most common predicate/object combination
这些一些第一结果的(编辑为了更清楚):
p o oCount
--------------------------------------------------------------------
wdt:P19 (place of birth) wd:Q37100 (Auckland) 1083
wdt:P21 (gender) wd:Q6581097 (male) 1083
wdt:P31 (instance of) wd:Q5 (human) 1083
wdt:P27 (country) wd:Q664 (New Zealand) 844
(...)
wdt:P106 (occupation) wd:Q14373094 (rugby player) 202
(...)
wdt:P69 (educated at) wd:Q492467 (Univ. of Auckland) 62
现在我想要做以下查询:
返回此结果列表中第n个谓词+对象的所有主题。
我的实际使用案例是将这些reults的多行与'AND'或'OR'组合起来,例如,返回给出结果的前5个谓词+对象的所有主题。
了解如何访问结果中的某些行将是一个好的开始。如果可能,我不想通过读取结果(使用脚本)并使用它们作为第二个查询的输入来使用单独的查询。
不幸的是,刚刚访问第一n个结果不适合我的问题。不管怎么说,还是要谢谢你! – rinderwahn
@rinderwahn您说过“现在我想要执行以下查询: 返回所有使用此结果列表中第n个谓词+对象的主题。”这里的代码被简化了。如果你使用OFFSET和LIMIT,你可以得到第n个结果。我刚刚更新了答案,以便更加明确。 –
对不起。我正要编辑我的评论。使用OFFSET应该完成这项工作。我对SPARQL非常陌生。 – rinderwahn