sparql查询sparql.query()。convert()有时抛出异常,同时在Virtuoso SPARQL查询编辑器上输出

时间:2012-01-23 04:23:12

标签: 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]中运行 有时结果= sparql.query()。convert()抛出异常 有些给出结果,有些则没有。当我在Virtuoso SPARQL查询编辑器上运行这些查询时,所有查询都返回数据...是否有人有想法?

1 个答案:

答案 0 :(得分:1)

问题在于Distinct。

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

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

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