9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DBpediaのある主語の述語プロパティwikiPageWikiLinkの目的語となる文字列を取得するためのSPARQLクエリ

Last updated at Posted at 2015-11-19

タイトルが長くなってしまいました。。。ここではWikipediaの日本語版ページについて記述されているDBpedia Japaneseを対象としています。Japaneseは省略していきます。

##DBpediaとは
まずDBpediaとは、簡単にオンライン大百科辞典の代表であるWikipediaのインフォボックスの情報を取得するプログラムを持ったWebサイトのことです。(表現がおかしかったらコメント下さい・・・)

ja_dbpedia_logo.png

公式ホームページから引用するとこのように書かれています。

DBpediaはWikipediaから情報を抽出してLOD (Linked Open Data)として公開するコミュニティプロジェクトです.本家のDBpediaは主にWikipedia英語版を対象としています.DBpedia Japanese の目的は,Wikipedia日本語版を対象としたDBpediaを提供することです.

##実際にSPARQLクエリを入力してみる
使い方

###SPARQLエンドポイント
SPARQLエンドポイントにアクセスする。

Virtuoso SPARQL Query Editor.png

このようなクエリ入力画面になるのでクエリ入力後、取り出したいデータ形式をResults Formatで指定します。今回はわかりやすさのため、HTMLを選択します。

###入力例
早速ですが入力例です。

prefix dbp: <http://ja.dbpedia.org/resource/>
prefix dbp-owl: <http://dbpedia.org/ontology/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT *
WHERE {
        dbp:東京 dbp-owl:wikiPageWikiLink ?thing1.
        ?thing1 rdfs:label ?thing2.
}
limit 50

###入力の意味
入力したキーワードについてのちょっとした補足です。

1.prefix
これは後ろに書かれているURI(例: http://ja.dbpedia.org/resource/ )を dbp: などという文字に省略してクエリを書きますよ、と宣言するためのものです。

2.SELECT
取得したい変数を指定している。SELECT *と入力すると、すべての変数を指定してくれる。ここでの変数は?thing1?thing2です。

3.WHERE
{}内に検索したいRDFのトリプル(主語・述語・目的語)を記述する。

4.rdfs:label
人間が読みやすい形のリソース名です。簡単に表すと「日本」のような文字列のことです。

5.LIMIT
LIMIT 数字{}外側に書くと、取得する情報の件数を数字で指定して制限することができます。これがない場合は全件取得します。

###出力先のURL
こちらの長いURLがクエリを実行した先のURLになります。よく見ると、入力したクエリが書かれているのがわかります。
http://ja.dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fja.dbpedia.org&query=prefix+dbp%3A+%3Chttp%3A%2F%2Fja.dbpedia.org%2Fresource%2F%3E%0D%0Aprefix+dbp-owl%3A+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2F%3E%0D%0Aprefix+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0A%0D%0ASELECT+*%0D%0AWHERE+%7B%0D%0A++++++++dbp%3A東京+dbp-owl%3AwikiPageWikiLink+%3Fthing1.%0D%0A++++++++%3Fthing1+rdfs%3Alabel+%3Fthing2.%0D%0A%7D%0D%0Alimit+50&format=text%2Fhtml&timeout=0&debug=on

###出力例
出力先にアクセスすると以下のような出力が得られました。
dbpedia_output.png

ちなみにこの縦長のウェブページのスクリーンショットはBrowseShotという大変重宝するMacアプリを使いました。

まあこんな感じでデータを取得することができます。もちろん例で示したHTML形式だけではなくJSON形式等で取得できます。おわり。

##参考サイト

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?