3
votes

HI there is a query which was working untill yesterday :

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 .

    }

but today it is showing: Virtuoso 42000 Error The estimated execution time 99232592 (sec) exceeds the limit of 1500 (sec). I have seen this error earlier also but when i ran such query again after some time it runs.. Could anyone explain the meaning of the error?

1
why don't you accept any answers to your questions? This behaviour discourages people to help you... - glglgl

1 Answers

3
votes

It means that Virtuoso's query planner (Virtuoso is the triplestore that DBPedia runs on) has estimated how long it would take to evaluate your query and it thinks it will take too long so it has refused to run the query.

I suspect the problem is the last triple pattern in your query:

?film_title foaf:page ?wikipage

You never use either of those variables before that point so what you've asked Virtuoso to do is cross product every possible triple with foaf:page in the predicate position with the results in the rest of your query.

If you change this to the following it should work fine:

?film_link foaf:page ?wikipage

I suspect this is what you meant to write anyway and this works for though it is still pretty slow because your query is pretty broad and FILTER clauses are often quite sluggish to evaluate.