我试着从Linkedmdb提取所有的电影。我使用偏移量来确保不会达到每个查询的最大结果数。我在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,但我认为通过使用偏移量,我们可以逃脱这个。不是真的吗?没有办法获取所有的数据(即使我们使用某种循环)?
发布于 2014-08-05 20:22:44
您的当前查询是合法的,但是没有指定的排序,因此偏移量不会将您带到结果中可预测的位置。(惰性实现可以一次又一次地返回相同的结果。)当您使用限制和偏移量时,还需要使用order by。SPARQL 1.1规范规定(强调后加):
15.4抵销 偏移量会使生成的解决方案在指定数目的解决方案之后启动。零的偏移没有影响。 使用限制和偏移量来选择查询解决方案的不同子集的将不会有用,除非通过使用order .使订单可预测。
https://stackoverflow.com/questions/25141247
复制相似问题