2

我正在运行 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 查询编辑器上运行这些查询时,所有查询都返回数据……有人知道吗?

4

1 回答 1

1

问题出在 Distinct 上。

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

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

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

于 2012-01-23T15:41:48.717 回答