本文介绍了如何解决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,但我想通过使用偏移,我们可以逃脱惩罚。这不是真的吗?没有办法获取所有数据(即使我们使用某种循环)?

推荐答案

您当前的查询是合法的,但是没有指定的顺序,所以偏移量不会将您带到结果中的可预测位置。(懒惰的实现可能会一遍又一遍地返回相同的结果。)当您使用LimitOffset时,还需要使用ORDER BY。SPARQL 1.1规范说明(增加了重点):

这篇关于如何解决Linkedmdb中的执行限制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 18:28