9

Jenaを使用してDBpediaにクエリを実行するSPARQLクエリを作成しようとしています。

スタンドアロンツール(Twinkle)で使用するとクエリは機能しますが、このJavaコードにプラグインすると、空のセットが返されます。

String sparqlQueryString1 = "PREFIX dbont: <http://dbpedia.org/ontology/> " +
        "PREFIX dbp: <http://dbpedia.org/property/>" +
        "PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>" +
        "   SELECT ?musician  ?place" +
        "   FROM<http://dbpedia.org/resource/Daphne_Oram>" +
        "   WHERE { " +
        "       ?musician dbont:birthPlace ?place ." +
        "   }";

Query query = QueryFactory.create(sparqlQueryString1);
QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);

ResultSet results = qexec.execSelect();
ResultSetFormatter.out(System.out, results, query);       

qexec.close() ;

私が間違っていることについて何か考えはありますか?

4

1 に答える 1

10

問題はあなたのFROM <...>条項です。それを削除し、すべてが順調です。その句が適切に配置されていると、エンドポイントがクエリをその名前のグラフに制限していると思われますが、そのようなグラフは存在しないため、結果はありません。

紛らわしいのは、クエリがhttp://dbpedia.org/sparqlのフォームで機能しているように見えることです。ただし、デフォルトのグラフURIが設定されているため、クエリはそのグラフにも適用されます。それをクリアすると、クエリは機能しません。別の方法として、リモートデータを取得するように設定できます。これは、3つの出生地に言及している名前付きrdfを取り込みます。

そのミュージシャンの出生地を見つけようとしている場合は、次のようにします。

{ <http://dbpedia.org/resource/Daphne_Oram> dbont:birthPlace ?place . }
于 2010-02-15T17:31:17.513 に答える