python - sparql 查询 sparql.query().convert() 有时在 Virtuoso SPARQL 查询编辑器上给出输出时抛出异常

标签 python sparql dbpedia

我正在运行 sparql 查询

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

    SELECT DISTINCT(?film_link) ?film_name ?wikipage
    WHERE {
    ?film_link rdf:type <http://dbpedia.org/ontology/Film> .
    ?film_link foaf:name ?film_name .
    ?film_link foaf:page ?wikipage .

    } LIMIT 10000 OFFSET  num

此查询在 for 循环 [0,9999,19999,29999,39999,49999] 中运行
有时 results = sparql.query().convert() 会抛出异常。
有些给出结果,有些则没有。当我在 Virtuoso SPARQL 查询编辑器上运行这些查询时,所有查询都返回数据......有人知道吗?

最佳答案

问题在于 Distinct。

当使用不同的查询快捷方式/优化是有限的,如果你有很多结果,你的查询可能会超时(取决于服务器负载)

您可以查看此 DBpedia 线程以了解其他替代方案/优化 http://sourceforge.net/mailarchive/message.php?msg_id=28653250

另外,distinct 需要更多的服务器资源。根据查询,它可能必须评估所有结果 - 即使您要求限制 - 并且可能导致查询超时(取决于当前服务器负载)。 我不确定您的查询是否属于这种情况...

关于python - sparql 查询 sparql.query().convert() 有时在 Virtuoso SPARQL 查询编辑器上给出输出时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8967162/

相关文章:

python - "pwd"通过 python 子进程运行时在 Windows 机器上给出路径

python - 字符串如何连接?

sparql - 在构造查询中使用绑定(bind)连接

python - KDTree Python 实现细节

python - 在 FastAPI 中上传多部分形式的图像作为数据

client - Jena 桌面 SPARQL 客户端 (TDB)?

rdf - 提取由一组节点引起的子图

sparql - 获取拥有不止一种官方语言的国家列表

rdf - 使用 SameAS 将 DBpedia 中的本体链接到外部本体

python - 从 DBPedia 获取所有(荷兰语)属性,包括前缀