4

私はたくさんのISBNを持っています。DBpedia本のメタデータを照会して取得したい。

を理解できませんSPARQL

DBpediaJavaから本のメタデータを取得する方法を誰か教えてもらえますか?

4

2 に答える 2

2

SPARQL はクエリ言語であり、いわゆるSPARQL エンドポイントをクエリするためのプロトコルでもあります。

DBpedia に、ISBN 0-553-05250-0 を持つ本 (または本) と、その (または) 関連するプロパティと値を求める SPARQL クエリは次のとおりです。

select distinct ?book ?prop ?obj 
where {
  ?book a dbo:Book .
  ?book ?prop ?obj .
  ?book dbp:isbn ?isbn .
  FILTER (regex(?isbn, "0-553-05250-0"))
} 
LIMIT 100

ブラウザーでクエリの結果を表示するには、こちらを参照してください。

regex(?isbn, "0-553-05250-0")評価には時間がかかりますのでご了承ください。すべての ISBN コードで機能するとは限りません。

  • ウィキペディアに ISBN の完全なリストがない可能性があるため、DBpedia にもありません。
  • ダッシュのない同じ ISBN は、ダッシュのあるクエリと一致しません。

また、 ISBN には数字とダッシュの文字列だけのものもあれば、「ISBN」や「(ペーパーバック)」が追加されているものもあります。

このクエリは、RDF および SPARQL 用のよく知られた Java ツールキットであるJenaを介して (ブラウザーでエンドポイントにアクセスすることにより) Web フォーム経由でDBpedia エンドポイントに送信できます。 これは、DBpedia に結果を照会し、それらをコマンド ラインに出力する Java コードのクエリです (別のJena、SPARQL、および DBpedia 関連の質問に基づいており、その中には多数あります)。

String sparqlQueryString1= "select distinct ?book ?prop ?obj " +
       "where { " +
       "  ?book a dbpedia-owl:Book . " +
       "  ?book ?prop ?obj . " +
       "  ?book dbpprop:isbn ?isbn . " +
       "  FILTER (regex(?isbn, \"0-553-05250-0\")) " +
       "} " +
       "LIMIT 100";

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() ;

私のお気に入りの SPARQL リソースは、かなり包括的なリファレンスであるLee Feigenbaum のチート シートです。おそらく、 Jena がドキュメントと共に提供するチュートリアルをチェックしたいと思うでしょう。

于 2013-01-11T20:48:13.310 に答える
0

私が知る限り、ウィキペディアには ISBN 検索がありません。

ウィキペディアには、他の ISBN 検索エンジンを使用するためのページがあります。

Amazon.com の ISBN 検索はこちらです。Amazon で ISBN 検索を自動化するための API が見つかりませんでした。

于 2013-01-11T18:51:52.700 に答える