VirtuosoにRDFデータをロード,SPARQLで検索
Virtuosoのインストール,RDFデータの準備ができたので,VirtuosoのGUI(Conductor)を利用したRDFデータのロード,SPARQLによる検索をしてみます。
VirtuosoにRDFデータをロードする
まずはConductor(http://localhost:8890/conductor/)にアクセスします。
データをロードするためにはログインする必要がありますが,デフォルトで「dba」というアカウントが用意されているので,とりあえずこれを使います(パスもこれです)*1。
画面上のメニューバーから「RDF」(右端から2番目)をクリックし,続いてその下に現れるメニューバーの「RDF Store Upload」(右端)をクリックします。
ファイルやURLを指定して「Upload」をクリックすればデータがロードされます*2。データの収納先を分けたい場合には「Named Graph IRI」で適当なURIを指定しましょう。たとえば「http://localhost:8890/DAV/test」とか。
どんなRDFフォーマットをサポートしているか把握していないのですが,自分はとりあえずTurtle(.ttl)形式のファイルは無事にアップロードできました。たぶんRDF/XMLやN3くらいはいけると思います。
SPARQLで検索
RDFのデータはSPARQL(SPARQL Protocol and RDF Query Language)と呼ばれるクエリ言語で検索します。詳細は(知らないので)書きませんが,気になる人はオライリーから『Learning SPARQL』という本が出ているので,これを読んでください。
Virtuoso ConductorでSPARQLを使うには,画面上のメニューバー「RDF」>「SPARQL」(左端)をクリックします。
ここでは簡単な例として,アップロードしたRDFをすべて見てみましょう。「Query」に次のように記入して「Execute」をクリックします。
SELECT * WHERE { ?s ?p ?o }
ちなみに,データ数だけ知りたいときは次のようにします。
SELECT COUNT(*) WHERE { ?s ?p ?o }
なお,データをロードする際に指定した「Named Graph IRI」を「Default Graph IRI」に記入すれば,検索対象をそのデータに絞ることが出来ます。また,http://localhost:8890/sparqlからもSPARQLは実行できます。外にSPARQLエンドポイントを公開する際にはこちらを使うことになります。
さいごに
ロードしたRDFデータの確認は上に書いたようにSPARQLを使ってできます。が,「RDF」>「RDF View」というメニューがあるので,ここで確認できると期待したのですが,使い方がわかりません。わかる方がいたらご指南お願いします!
関連エントリー
- VirtuosoをMac OS Xにインストール
- Google RefineによるRDFデータへの変換
- VirtuosoにRDFデータをロード,SPARQLで検索 ←いまここ
- Virtuosoをスクリプトから使う(乞うご期待)
*1:このアカウントについては,Documentation > Quick Starts & Tours > 3.1. Where to Startに書いてあります
*2:なお,このやり方はDocumentation > 16. RDF Data Access and Data Management > 16.8. RDF Insert Methods in Virtuoso > 16.8.7. Using WebDAVの「Example 2: Using Conductor UI」という項目に書いてあります。これ以外のやり方についてもその周辺に書いてあるので,必要な人は読むとよいのではないでしょうか。