私はたくさんのISBNを持っています。DBpedia
本のメタデータを照会して取得したい。
を理解できませんSPARQL
。
DBpedia
Javaから本のメタデータを取得する方法を誰か教えてもらえますか?
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 には数字とダッシュの文字列だけのものもあれば、「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 がドキュメントと共に提供するチュートリアルをチェックしたいと思うでしょう。