3

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

任何人都对此有任何想法。

4

4 回答 4

2

自 2018 年起,您可以使用SPARQLWrapper.setTimeout()设置SPARQLWrapper请求的超时时间。

于 2019-12-03T10:40:39.310 回答
1

正如 Karoo 提到的,您可以使用SPARQLWrapper.setTimeout(timeout=(int)). 如果您想将超时作为浮点数,请转到Wrapper.py模块并更改self.timeout = int(timeout)为函数self.timeout = float(timeout)def setTimeout(self, timeout):

于 2020-06-28T16:26:39.733 回答
0

DBPedia 使用 Virtuoso 服务器作为其端点,并且timeout是特定于 virtuoso 的选项。SparqlWrapper 目前不支持它。

下一个版本将具有更好的模块化功能,之后可能会实施适当的特定于供应商的扩展,但我想你没有时间等待。

目前,添加此类参数的唯一方法是将其手动硬编码到本地版本的库中

于 2013-12-06T08:12:17.237 回答
0

我不知道这是否专门针对您的问题的答案,但我搜索了很长时间,这是我的解决方案,适用于在 SPARQLWrapper 上遇到 Virtuoso 特定超时问题的其他人:

您可以使用这行代码为您的查询设置服务器端超时(而不是像 .setTimeout 这样的客户端):

[your SPARQLWraper entity].addExtraURITag("timeout","[your timeout in ms]")

就我而言,它看起来像这样:

s.addExtraURITag("timeout","10000")

这应该在您的查询停止搜索并返回结果之前给您 10 秒的时间,而不是仅仅给您一个超时错误。

希望我能帮助任何人。

于 2021-01-16T01:14:46.073 回答