Python:SpaqrlWrapper,Timeout?

时间:2013-12-05 09:08:35

标签: python timeout sparqlwrapper

我是python的新手,也是查询语义网的新手。 我正在使用SPARQLWrapper库来查询dbpedia,我搜索了库文档但未能找到从sparqlWrapper向dbpedia发出的查询的“超时”。

任何人都有同样的想法。

4 个答案:

答案 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 秒的时间,而不是仅仅给您超时错误。

希望我能帮助到任何人。