HI有一个查询在昨天仍然有效:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT(?film_link) ?film_abstract ?film_name ?wikipage
WHERE {
?film_link rdf:type <http://dbpedia.org/ontology/Film> .
?film_link rdfs:comment ?film_abstract
FILTER (langMatches( lang(?film_abstract), "EN")) .
?film_link foaf:name ?film_name .
?film_title foaf:page ?wikipage .
}
但今天它显示:Virtuoso 42000错误估计执行时间99232592(秒)超过1500(秒)的限制。 我之前也看到过这个错误,但是当我运行一段时间后再次运行此类查询时... 任何人都可以解释错误的含义吗?
答案 0 :(得分:3)
这意味着Virtuoso的查询规划器(Virtuoso是DBPedia运行的三元组)已经估计了评估查询需要多长时间,它认为它将花费太长时间,因此它拒绝运行查询。
我怀疑问题是您查询中的最后一个三重模式:
?film_title foaf:page ?wikipage
在此之前你永远不会使用这些变量中的任何一个,所以你要求Virtuoso做的是在谓词位置与foaf:page
的每个可能的三元组交叉产品,其结果在你的查询的其余部分。
如果将此更改为以下内容,则应该可以正常工作:
?film_link foaf:page ?wikipage
我怀疑这是你的意思,无论如何这是有用的,虽然它仍然很慢,因为你的查询相当宽泛,FILTER
条款通常很慢,无法评估。