我正在运行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查询编辑器上运行这些查询时,所有查询都返回数据...是否有人有想法?
答案 0 :(得分:1)
问题在于Distinct。
使用Distinct查询时,快捷方式/优化是有限的,如果您有很多结果,您的查询可能会超时(取决于服务器负载)
您可以查看此DBpedia线程以获取其他替代/优化 http://sourceforge.net/mailarchive/message.php?msg_id=28653250
此外,distinct需要更多服务器资源。根据查询,它可能必须评估所有结果 - 即使您要求限制 - 并且可能导致查询超时(取决于当前服务器负载)。 我不确定您的查询是否属于这种情况......