2

Jena を使用して dbpedia.org に対して SPARQL クエリを実行できません。

クエリの形式は次のとおりです。

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX p: <http://dbpedia.org/property/> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT ?album ?name ?dateofrelease 
WHERE { 
?album p:artist <http://dbpedia.org/resource/SomeArtist> . 
?album rdf:type <http://dbpedia.org/ontology/Album> . 
?album rdf:type <http://schema.org/MusicAlbum> . 
?album p:name ?name . 
?album <http://dbpedia.org/ontology/releaseDate> ?dateofrelease . 
FILTER(xsd:dateTime(?dateofrelease) >= '2009-01-01T00:00:00Z'^^xsd:dateTime) 
} LIMIT 5 

ここで、http://www.dbpedia.org/resource/SomeArtistは有効なアーティスト URI (たとえばhttp://dbpedia.org/resource/Wilco ) であり、送信前に適切に URL エンコードされます。

クエリは、次の標準コードで実行されます。

Query query = QueryFactory.create(queryString);
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);
ResultSet results = queryExecution.execSelect();

プログラムは同じフォームに対して約 30 のクエリを実行していますが、Jena がクエリをスローする前に、一部のクエリが約 1 ~ 2 分間「ハング」します。

 com.hp.hpl.jena.sparql.resultset.ResultSetException: Not an ResultSet result

例外をキャッチして続行すると、一部のクエリがハングし、一部のクエリはすぐに結果セットを返し、0 個以上の結果が返されます。これを数回行うと、どのクエリが返されるか「ハング」するかはランダムになります。同一のクエリで SPARQL DBpedia を使用すると、Web ブラウザで同じようにハングアップすることがあります。

  • サーバーでクエリがタイムアウトするように、クエリを間違って構築しているので、dbpedia.org に何らかの方法で時間がかかりますか? 私はセマンティック Web と Jena にまったく慣れていませんが、最初は、オブジェクト部分に絶対 URI を使用しているため、クエリに非常に時間がかかると思っていました。

    ?album p:artist <http://www.dbpedia.org/resource/SomeArtist> 
    

    声明。

  • 私が認識していない dbpedia.org への 1 つのソース/時間単位ごとの制限からのリクエストの数はありますか?

(Jena 2.6.4 を使用)

4

1 に答える 1

1

クエリが遅いことを確認できます。

速度に影響する可能性のあるいくつかのバリエーションを試しましたが、役に立ちませんでした。そのタイプのクエリが特に遅くなる明確な理由はわかりません。申し訳ありません。

より一貫した応答時間を得る 1 つの代替方法は、DBPedia ダンプをダウンロードし、関心のある述語を grep して、Jena などのローカルのトリプルストアにロードすることです。

于 2011-11-25T14:04:36.297 に答える