4

Pythonを介してSPARQLを使用してDBpediaにクエリを実行しています。実行時間の上限に問題があります。これはエラーです:

コード:

sparql = SPARQLWrapper("http://dbpedia.org/sparql")
newquery = "DEFINE input:inference "skos-trans" PREFIX dcterms: <http://purl.org/dc/terms/> 
select distinct ?cat1 ?cat2 ?cat3 ?cat4  where { 
<http://dbpedia.org/resource/Pulp_Fiction> dcterms:subject ?cat1 . 
?cat1  skos:broaderTransitive   ?cat2. 
?cat2  skos:broaderTransitive   ?cat3. 
?cat3  skos:broaderTransitive   ?cat4. 
 } "

sparql.setQuery( newquery)
sparql.setReturnFormat(JSON)
results = sparql.query().convert()

応答:
Virtuoso 42000 Error The estimated execution time 5286 (sec) exceeds the limit of 3000 (sec)

この問題を解決する方法は??

4

1 に答える 1

1

エンドポイントは非常によく知られているため、パブリック DBPedia エンドポイントを使用することはできません。エンドポイントも頻繁に使用されるため、ユーザーが実行できるクエリの複雑さを制限する必要があります。

このタイムアウトのような問題が発生するクエリを実行する必要がある場合は、利用可能なデータベース ダンプの 1 つを使用して、Virtuoso のローカル コピーまたは任意のトリプル ストアで実行することを検討してください。

于 2012-08-16T00:46:55.100 に答える