微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 sparql 查询的重复结果

如何解决来自 sparql 查询的重复结果

当我尝试从 wikidata 获取所有篮球运动员的列表时,我遇到的问题找不到任何帮助。首先我得到玩家的数量(大约 130k)。然后我创建具有特定偏移量和限制 2000 的查询。问题是,无论偏移量是多少,我每次都会得到相同的 2000 名玩家。

(但是,如果我在 https://query.wikidata.org/ 上,结果总是不同的)

这是我在 python 中的代码的一部分,其中创建了查询

while(numberOfPlayers > 0):
    numberOfPlayers-=2000
    offset = 0
    queryPlayersBlock = """SELECT ?item ?itemLabel 
            WHERE 
            {
                ?item wdt:P106 wd:Q3665646.
                SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
            }
            offset """+str(offset)+"""
            limit 2000
            """
    players = get_results(endpoint_url,queryPlayersBlock)["results"]["bindings"]
    for i in range (0,len(players)):
        dataFile.write(str(players[i]["itemLabel"]["value"]+" : "+players[i]["item"]["value"].removeprefix("http://www.wikidata.org/entity/")+"\n"))
    offset+=2000

我在 sparql 文档中发现:“除非使用 ORDER BY 使订单可预测,否则使用 LIMIT 和 OFFSET 选择查询解决方案的不同子集将没有用。” 但是当我使用 order by 时出现错误“达到查询超时限制”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?