本文介绍了如何解决Linkedmdb中的执行限制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从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,但我想通过使用偏移,我们可以逃脱惩罚。这不是真的吗?没有办法获取所有数据(即使我们使用某种循环)?
推荐答案
您当前的查询是合法的,但是没有指定的顺序,所以偏移量不会将您带到结果中的可预测位置。(懒惰的实现可能会一遍又一遍地返回相同的结果。)当您使用Limit和Offset时,还需要使用ORDER BY。SPARQL 1.1规范说明(增加了重点):
这篇关于如何解决Linkedmdb中的执行限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!