我是python的新手,也是查询语义web的新手。我正在使用SPARQLWrapper库来查询dbpedia,我搜索了库文档,但没有找到从sparQLWrappeer向dbpedia发出的查询的"超时"。
任何人都有同样的想法。
自2018年起,您可以使用SPARQLWrapper.setTimeout()
设置SPARQLWrapper
请求的超时。
正如Karoo所提到的,您可以使用SPARQLWrapper.setTimeout(timeout=(int))
。如果您希望将超时作为浮点值,请转到Wrapper.py
模块,并在def setTimeout(self, timeout):
函数中将self.timeout = int(timeout)
更改为self.timeout = float(timeout)
。
我不知道这是否是你问题的具体答案,但我已经搜索了很长时间,下面是我在SPARQLWrapper:上遇到Virtuoso特定超时问题的其他人的解决方案
您可以使用这行代码为查询设置服务器端超时(而不是像.setTimeout那样的客户端):
[your SPARQLWrapper entity].addExtraURITag("timeout","[your timeout in ms]")
在我的情况下,它看起来像这样:
s.addExtraURITag("timeout","10000")
在查询停止搜索并返回结果之前,这将给您10秒的时间,而不仅仅是一个Timeout错误。
希望我能帮助任何人。
DBPedia使用Virtuoso服务器作为其端点,timeout
是一个特定于虚拟大师的选项。SparqlWrapper目前不支持它。
下一个版本将具有更好的模块性,之后可能会实现适当的特定于供应商的扩展,但我想您没有时间等待了。
目前,添加此类参数的唯一方法是手动将其硬编码到本地版本的库