Excel の WEBSERVICE 関数で SPARQL その2
前回の記事 Excel の WEBSERVICE 関数で SPARQL その1 では、Excel の WEBSERVICE 関数を使って SPARQL を実行し、必要なデータを取得する方法を紹介しました。この記事では GeoNames.jp の URI とリンクセットを使って DBpedia Japanese からデータを取得する方法を紹介します。
1. シナリオ
東京23区の公式ホームページのリストを作ります。
2. 手順
B2 セルに以下の関数をコピーします
= FILTERXML(WEBSERVICE("http://ja.dbpedia.org/sparql?query=" & ENCODEURL("select ?x where {?s <http://www.w3.org/2002/07/owl#sameAs> <http://geonames.jp/resource/東京都" & A2& "> ; <http://ja.dbpedia.org/property/外部リンク> ?x . } ")),"//binding/*")
以下のように値が取得できていたらまずは成功です
B2 を B3 以下にコピーすれば完了です
クエリー中の 東京都 の部分を修正することで他の都道府県のデータにも適用できるかもしれません。
3. 解説
a) 地名を URI に寄せられない事例
前回記事では単純な文字連結によって地名を URI に変換することができました。前回の方法にならうと以下のような SPARQL を作成・実行することでうまくいくようにおもうのですが、これはうまくいきません。
select ?x {
<http://ja.dbpedia.org/resource/中央区> <http://ja.dbpedia.org/property/外部リンク> ?x .
}
実際にこれを実行するとこのように3箇所でエラーが出ます。
中央区は東京に限らず他にもあるので、 http://ja.dbpedia.org/resource/中央区 は東京の中央区を意味しないからです。
b) 地名から URI への名寄せ
GeoNames.jp は地名に対応する URI を保持する地名基盤です。次のような形式で地名 URI を保持するという特徴があります。
http://geonames.jp/resource/{都道府県から始まる省略のない地名}
中央区の場合は以下のような URI になります
中央区 というワードに対して http://ja.dbpedia.org/resource/中央区_(東京都) という URI を補完するのは想像力やトライ&エラーが必要ですが、http://geonames.jp/resource/東京都中央区 であれば比較的補完しやすいのではないでしょうか?
c) GeoNames.jp から DBpedia Japanese の URI へ
GeoNames.jp の URI と DBpedia Japanese の URI の関係はオープンデータとして公開されています。一例として東京都中央区の場合にはこんなかんじです。
<http://ja.dbpedia.org/resource/中央区_(東京都)> <http://www.w3.org/2002/07/owl#sameAs> <http://geonames.jp/resource/東京都中央区>
この関係は DBpedia Japanese の SPARQL Endpoint に格納されており、 SPARQL を通じて利用することが可能です。次のような SPARQL を実行することで、DBpedia Japanese の URI を得ることができます。
select * { ?x <http://www.w3.org/2002/07/owl#sameAs> <http://geonames.jp/resource/東京都中央区>. }
d) SPARQL
以下のような手順で地名を DBpedia Japanese の URI に変換できることがわかります。
- 地名
- (文字連結)
- GeoNames.jp の URI
- (リンクセット)
- DBpedia Japanese の URI
これを踏まえて今回紹介した方法では以下のような SPARQL を使用しています。
select ?x {
?s <http://www.w3.org/2002/07/owl#sameAs> <http://geonames.jp/resource/東京都中央区> ;
<http://ja.dbpedia.org/property/外部リンク> ?x .
}
DBpedia Japanese の URI は直接登場せず、 http://geonames.jp/resource/東京都中央区 という URI が登場していることに注目してください。
4. まとめ
- GeoNames.jp の地名URIをキーとして DBpedia Japanese のデータを取得する方法を紹介しました
- SPARQL の記述方法によって、より効率的にデータを取得することが可能です
- (こういった用途が予定される場合には地名とセットで URI が整備されていると便利)
メモ
DBpedia Japanese の URI と GeoNames.jp の URI 関係は以下のレポジトリで管理されています。
現時点では都道府県・郡・市区町村に関する関係(リンクセット)が整備されており、DBpedia Japanese の SPARQL Endpoint を通じて使用することができます。
Author And Source
この問題について(Excel の WEBSERVICE 関数で SPARQL その2), 我々は、より多くの情報をここで見つけました https://qiita.com/frogcat/items/67031aeaf031974c7340著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .