如何解决来自 sparql 查询的重复结果
当我尝试从 wikidata 获取所有篮球运动员的列表时,我遇到的问题找不到任何帮助。首先我得到玩家的数量(大约 130k)。然后我创建具有特定偏移量和限制 2000 的查询。问题是,无论偏移量是多少,我每次都会得到相同的 2000 名玩家。
(但是,如果我在 https://query.wikidata.org/ 上,结果总是不同的)
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 举报,一经查实,本站将立刻删除。