查询dbpedia超时异常

发布于 2025-01-04 20:26:21 字数 1184 浏览 0 评论 0原文

我正在尝试在 dbpedia 上进行查询,查询通常太长,如下所示:

Select * WHERE { <http://dbpedia.org/resource/Inception> ?pf1 ?of1 . ?of1 ?pf2 ?middle . <http://dbpedia.org/resource/Batman> ?ps1 ?middle .  FILTER ((!isLiteral(?middle)) && (?middle != <http://dbpedia.org/resource/Inception> ) && (?middle != <http://dbpedia.org/resource/Batman> ) && (!isLiteral(?of1)) && (?of1 != <http://dbpedia.org/resource/Inception> ) && (?of1 != <http://dbpedia.org/resource/Batman> ) ). }LIMIT 100

我正在使用 dotnetRDF dll 执行 SPARQL 查询,查询给出超时异常,我尝试在 dbpedia 的 SPARQL 查询工具,它还给出:

Virtuoso S1T00 Error SR171: Transaction timed out

我看到了类似的 问题在这里,Live 网站可以工作,但我需要通过 dbpedia 进行实时操作,我不想在本地下载 dbpedia 转储。

如果我能以某种方式延长超时时间,那么我等待结果的到来,我认为这会解决我的问题

I am trying to do queries on dbpedia, the queries are usually too long, like this:

Select * WHERE { <http://dbpedia.org/resource/Inception> ?pf1 ?of1 . ?of1 ?pf2 ?middle . <http://dbpedia.org/resource/Batman> ?ps1 ?middle .  FILTER ((!isLiteral(?middle)) && (?middle != <http://dbpedia.org/resource/Inception> ) && (?middle != <http://dbpedia.org/resource/Batman> ) && (!isLiteral(?of1)) && (?of1 != <http://dbpedia.org/resource/Inception> ) && (?of1 != <http://dbpedia.org/resource/Batman> ) ). }LIMIT 100

I am using the dotnetRDF dll to do the SPARQL query, the queries give a timeout Exception, I tried to query on dbpedia's SPARQL Querying tool , it also gives:

Virtuoso S1T00 Error SR171: Transaction timed out

I saw a similar Question here, the Live website works, but I need to do it live via dbpedia, I don't want to dowload the dbpedia dump locally.

If I can somehow make the timout longer, So I wait for the results to come, I think that would solve my problem

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

英雄似剑 2025-01-11 20:26:22

您是否阅读了文档?具体来说,

如果您使用 SparqlQuery 对象,您可以选择设置其有关执行超时的行为。由于某些查询可能需要很长时间才能运行,因此限制查询可以运行的时间通常是明智的,SparqlQuery 的 Timeout 属性允许您指定超时。如果您希望即使发生超时也能获取结果,则可以设置 PartialResultsOnTimeout 属性,以确保即使发生超时也能获得一些结果。

Did you read the documentation? Specifically,

If you use a SparqlQuery object you have the option of setting its behaviour with regards to execution timeout. Since some queries can take a very long time to run it is often sensible to limit how long queries can run for, the Timeout property of the SparqlQuery allows you to specify the timeout. If you wish to get results back even when a timeout occurs then you can set the PartialResultsOnTimeout property to ensure you get some results even if a timeout occurs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文