この記事は1年以上前に書かれました。
内容が古くなっている可能性がありますのでご注意下さい。
内容が古くなっている可能性がありますのでご注意下さい。
Virtuoso編の第2回では、RDFストアにデータをインポートし、SPARQLクエリで結果を確認します。
インポートするデータは、Wikipediaから抽出した情報をLODとして公開しているDBpedia Japaneseから入手します。
DBpediaトップページの「データダンプのダウンロード」リンクをクリックすると、ダンプファイルを格納するフォルダが一覧表示されます。今回は、20140107フォルダのjawiki-20140107-article-categories.ttl.bz2ファイルをインポートします。
ダウンロードしたファイルを
$ bzip2 -d jawiki-20140107-article-categories.ttl.bz2
で解凍します。
インポートするファイルは、Virtuosoの設定ファイルvirtuoso.iniのDirsAllowedでアクセス許可されたディレクトリに置く必要があります。
そこで、あらかじめDirsAllowedで許可されたディレクトリにインポートファイルをコピーするか、virtuoso.iniにディレクトリを追加してVirtuosoを再起動します。
以下の例では、DirsAllowedに/home/koikeを追加しました。
データのインポートはVirtuosoのConductorで実施します。
Conductorの「Datebase」「Interactive SQL」タブをクリックし、以下のコマンドを実行します。
DB.DBA.TTLP_MT (file_to_string_output ('jawiki-20140107-article-categories.ttl'), '', 'http://mirror.dbpedia.jp');
DB.DBA.TTLP_MTの最初の引数は、インポートするデータの文字列です。この例では、file_to_string_output関数でファイルから文字列に変換しています。2つめの引数は相対IRIから絶対IRIに変換する際のベースです。3つめはインポート先のグラフIRIです。
[Execute]ボタンをクリックするとインポートが始まり、終了すると
The statement execution did not return a result set.
とメッセージが表示されます。
インポート結果はConductorの「Linked Data」で確認できます。
インポート時に指定したグラフIRIをDefault Graph IRIに指定し、以下のSPARQLクエリを発行します。
select distinct ?o where { ?s ?p ?o. } limit 100
Wikipediaのカテゴリの一覧を取得することができました。