我是python的新手,也是查询语义网的新手。 我正在使用SPARQLWrapper库来查询dbpedia,我搜索了库文档但未能找到从sparqlWrapper向dbpedia发出的查询的“超时”。
任何人都有同样的想法。
答案 0 :(得分:1)
正如Karoo所述,您可以使用SPARQLWrapper.setTimeout(timeout=(int))
。
如果要将超时作为浮动对象,请转到Wrapper.py
模块,然后在self.timeout = int(timeout)
函数中将self.timeout = float(timeout)
更改为def setTimeout(self, timeout):
。
答案 1 :(得分:0)
DBPedia将Virtuoso服务器用于其端点,timeout
是特定于版本的选项。 SparqlWrapper目前不支持它。
下一版本将具有更好的模块性,之后可能会实施适当的特定于供应商的扩展,但我想您没有时间等待。
目前,添加此类参数的唯一方法是手动将其硬编码到本地版本的库
中答案 2 :(得分:0)
从2018年开始,您可以使用def img_validator(source):
files = get_paths(source) # A list of complete paths to each image
invalid_files = []
for img in files:
try:
im = Image.open(img)
im.verify()
im.close()
except (IOError, OSError, Image.DecompressionBombError):
invalid_files.append(img)
# Write invalid_files to file
来设置SPARQLWrapper.setTimeout()
请求的超时时间。
答案 3 :(得分:0)
我不知道这是否是您问题的具体答案,但我已经搜索了很长时间,这是我的解决方案,适用于在 SPARQLWrapper 上遇到 Virtuoso 特定超时问题的其他人:
您可以使用这行代码为您的查询设置服务器端超时(而不是像 .setTimeout 那样的客户端):
[your SPARQLWraper entity].addExtraURITag("timeout","[your timeout in ms]")
就我而言,它看起来像这样:
s.addExtraURITag("timeout","10000")
在您的查询停止搜索并返回结果之前,这应该给您 10 秒的时间,而不是仅仅给您超时错误。
希望我能帮助到任何人。