2

Sesame triplestore を使用してデータを保存しています。dbpedia などの外部リソースを使用して Sesame でクエリ インターフェイスを使用しようとすると、結果が得られません。このクエリは、必要なすべてのプレフィックスを追加した後、snorql を含む結果を返しますが、ゴマは返しません。

select ?routes where {
  dbpedia:Polio_vaccine dbpprop:routesOfAdministration ?routes
}

何を変更する必要がありますか?

4

1 に答える 1

6

DBPedia を含む任意の SPARQL エンドポイントに対して、プログラムまたは Sesame Workbench を介して手動で Sesame を使用してさまざまな方法でクエリを実行できます。

ワークベンチの使用

次のように、Sesame Workbench ツールを使用して、エンドポイントのリポジトリ プロキシを作成することにより、DBPedia (または任意のパブリック SPARQL エンドポイント) にクエリを実行できます。

  1. 「新規リポジトリー」を選択し、リポジトリー・タイプ・メニューで「SPARQL エンドポイント・プロキシー」を選択します。プロキシに識別子とオプションでタイトルを付けて、[次へ] をクリックします。 sparql エンドポイント プロキシの作成

  2. クエリ エンドポイントの SPARQL エンドポイント URL を入力します。パブリック DBPedia サーバーの場合、これはhttp://dbpedia.org/sparql. ここに画像の説明を入力

  3. 「作成」をクリックして確定します。

これを設定したら、[クエリ] メニューからクエリを実行できます。

Sesame Workbench SPARQL クエリエディタ

結果:

ここに画像の説明を入力

プログラムによるアクセス

SPARQLRepositoryDBPedia エンドポイントに接続するオブジェクトを簡単に作成できます。

Repository repo = new SPARQLRepository("http://dbpedia.org/sparql");
repo.initialize();

それができたら、それを使用して、他の Sesame リポジトリと同じように SPARQL クエリを実行できます。

RepositoryConnection conn = repo.getConnection();
try {
    StringBuilder qb = new StringBuilder();
    qb.append("PREFIX dbpedia: <http://dbpedia.org/resource/> \n");    
    qb.append("PREFIX dbpprop: <http://dbpedia.org/property/> \n");
    qb.append("SELECT ?routes \n");
    qb.append("WHERE { dbpedia:Polio_vaccine dbpprop:routesOfAdministration ?routes } \n");

    TupleQueryResult result = 
         conn.prepareTupleQuery(QueryLanguage.SPARQL, qb.toString()).evaluate(); 

    while(result.hasNext()) {
         BindingSet bs = result.next();
         Value route = bs.getValue("routes");
         System.out.println("route = " + route.stringValue());
    }
 }
 finally {
    conn.close();
 }
于 2015-05-28T07:08:54.453 に答える