我试图从 Linkedmdb 中提取所有电影。我使用 OFFSET 来确保我不会达到每个查询的最大结果数。我在python中使用了以下脚本

"""
 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
 PREFIX movie: <http://data.linkedmdb.org/resource/movie/>
 SELECT distinct ?film
 WHERE {
 ?film a movie:film .
 } LIMIT 1000 OFFSET %s """ %i

我循环了 5 次,偏移量为 0,1000,2000,3000,4000 并记录了结果数。它是 (1000,1000,500,0,0)。我已经知道限制是 2500,但我认为通过使用 OFFSET,我们可以摆脱这个。
这不是真的吗?没有办法获取所有数据(即使我们使用某种循环)?

最佳答案

您当前的查询是合法的,但没有指定的顺序,因此偏移量不会将您带到结果中的可预测位置。 (惰性实现可能会一遍又一遍地返回相同的结果。)当您使用 limit 偏移量 时,您还需要使用 的 顺序。 SPARQL 1.1 规范说(强调):

关于sparql - 如何解决Linkedmdb中的执行限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25141247/

10-16 11:44