Virtuosoのセットアップ
- OpenLinkのDonwloadページから"Pre-built binaries for Windows"をダウンロードし展開し、適当なディレクトリに設置する。
- virtuoso-opensource\database\virtuoso.iniを編集する(環境に応じて設定すること)
//Stripingを有効にする(DBのロードが速くなる模様)
Striping = 0
//DirsAllowedの末尾にyagoディレクトリを追加
DirsAllowed = ., ../vad, ../yago
//81行目以降のメモリ設定をマシンスペックに応じて設定する(例:16GB)
;; Uncomment next two lines if there is 16 GB system memory free
NumberOfBuffers = 1360000
MaxDirtyBuffers = 1000000
- システム環境変数に以下を加える:
変数名:VIRTUOSO_HOME 値:virtuosoのインストールディレクトリ
- システム環境変数PATHの末尾に次を追加する:
;%VIRTUOSO_HOME%\bin;%VIRTUOSO_HOME%\lib
- コマンドプロンプトを開き、以下のコマンドを実行する
cd %VIRTUOSO_HOME%\database
- 続いて、以下のコマンドを実行する
virtuoso-t -?正しくインストールされていれば、適当なメッセージが表示される。
- serviceを作成する ※"Instance Name"は任意の名前が可
(消去する際は"screate"の代わりに"delete"を用いる)virtuoso-t +service screate +instance "Instance Name" +configfile virtuoso.ini - 以下のコマンドを実行して、サービスが登録されていれば問題なし
virtuoso-t +service list
- サービスを開始する
(終了する場合は "start" の代わりに "stop" を用いる)virtuoso-t -I "Instance Name" +service start
初期ユーザー名とパスワードはともに'dba'。
YAGOのダウンロード
- YAGOのダウンロードページから"Download YAGO2s ontology in .ttl format! (2.2 Gb compressed, 18.5 Gb uncompressed) "を選択しダウンロードする。
- ファイルを展開し、VIRTUOSO_HOME\yago に設置する
RDFのVirtuosoへのロード
- コマンドプロンプトを開き、isqlと実行する
- isqlの対話モードになったら、以下のコマンドを実行する
※http://abcde.orgは任意のGragh IRIに設定するSQL> ld_dir ('../yago', '*.ttl', 'http://abcde.org'); - Load Listを確認する
SQL> select * from DB.DBA.load_list;YAGOの.ttlファイルが表示され、ll_stateが0となっていればOK(1:ロード中、2:ロード完了)
- ロードを開始する
※このコードの実行には非常に時間がかかる(1~2日)SQL> rdf_loader_run();※Loaderは複数実行できるようなので、以下の様なbatファイルをつくり実行しても可。この方が早く完了するかもしれない。
bulk_load.batstart isql 1111 dba dba exec="rdf_loader_run();"
start isql 1111 dba dba exec="rdf_loader_run();"
start isql 1111 dba dba exec="rdf_loader_run();"
start isql 1111 dba dba exec="rdf_loader_run();"
start isql 1111 dba dba exec="rdf_loader_run();"
start isql 1111 dba dba exec="rdf_loader_run();"
start isql 1111 dba dba exec="rdf_loader_run();"
- 上のロードが全て完了したら、Load Listでステータスを確認する
SQL> select * from DB.DBA.load_list;
ll_stateが2となっていればロード完了。
SPARQLクエリを投げる
上記の設定がすべて完了すれば、SPARQLインタフェースなどでYAGOにアクセスすることができる。http://localhost:8890/sparql/からSPARQLインタフェースを開ける。
サンプルクエリ
SELECT * WHERE {<http://yago-knowledge.org/resource/Albert_Einstein> ?p ?o}
参考
OpenLink Virtuoso - Using Virtuoso Open-Source Edition on Windows
YAGO