Virtuosoを試す

# きっかけ
[Berlin SPARQL Benchmark](http://wifo5-03.informatik.uni-mannheim.de/bizer/berlinsparqlbenchmark/)の2009年（少し古い）の評価で[Virtuoso](http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSRDF)という実装を見つけた。他のよりパフォーマンスが良さそうで、かつオープンソース(GPL v2)ということで試してみることにした。

# conductor起動まで
[こちら](http://www.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSIndex#Download, Build, and Use -- Get Started!)の手順にしたがって、aptのパッケージをインストール。
http://localhost:8890/conductor/ にアクセスするとDBの管理画面が無事表示された。

# Sparql demoは動かず
[Sparqle demo](http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VOSSPARQLDemo)にある`load binsrc/tests/rdf/rdf-exp.sql;`を実行すると何やら途中でエラーが発生。その後conductorの"database"など一部のタブがエラーになってしまったので、諦めることにした。
`sudo apt-get purge virtuoso-opensource`をやってから再インストールするとconductorのエラーは元に戻った。

# RDFのロードとクエリ
[こちら](http://docs.openlinksw.com/virtuoso/fn_rdf_load_rdfxml_mt.html)に、ファイルからロードする方法があった。

```
$ isql-vt
SQL> DB.DBA.RDF_LOAD_RDFXML_MT (file_to_string_output ('/tmp/about.rdf'), '', 'http://mytest.com');

Done. -- 8 msec.
```
`/tmp/about.rdf`がサンプルファイル。

sparqlで問い合わせると無事に結果が返ってきた。

```
SQL> sparql select * from <http://mytest.com> where {?s ?p ?o} limit 5;
s                                                                                 p                                                                                 o
VARCHAR                                                                           VARCHAR                                                                           VARCHAR
_______________________________________________________________________________

http://www.openlinksw.com/dataspace/organization/dav#this                         http://www.w3.org/1999/02/22-rdf-syntax-ns#type                                 
...

5 Rows. -- 1 msec.
```

この他様々なインポートの仕方が[こちら](http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtRDFInsert)にまとまっていた。

# HtmlPivotViewerをセットアップ試みるも中断
クエリ結果をきれいに表示できるという[HtmlPivotViewer](http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtVisualizeWithHtmlPivotViewer)のセットアップを試した。

## c_uri_dav.vadのインストール
```
$ isql-vt 1111 dba
SQL> vad_install('/tmp/c_uri_dav.vad');
SQL_STATE  SQL_MESSAGE
VARCHAR  VARCHAR
...
00000    SUCCESS
...
6 Rows. -- 458 msec.
```
## html5pivotvieweのインストール
zipファイルを/tmp以下に展開後：

```
SQL> vad_install('/tmp/html5pivotviewer-1.0/html5pivotviewer_dav.vad');
SQL_STATE  SQL_MESSAGE
...
00000    SUCCESS
...
6 Rows. -- 378 msec.
```

http://localhost:8890/HtmlPivotViewer/ にアクセスできた。

## サーバ側のセットアップ
[Pivoto Collectionsのページ](http://www.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtSparqlCxmlHtml#AncIntroduction)を見るとHtmlPivotViewerはCXMLという形式のデータをレスポンスに要求するようで、直接やりとりするサーバをこれに対応させる必要がある様子。

prerequisitsの SPARQL-CXML VAD をインストールしようとしたところ、サーバのバージョンが古いというエラーが出た。

```
SQL> vad_install('/tmp/sparql_cxml_dav.vad');
SQL_STATE  SQL_MESSAGE
VARCHAR  VARCHAR
_______________________________________________________________________________

ERROR    The sparql_cxml package requires server version 06.02.3128 or greater
FATAL    The sparql_cxml package requires server version 06.02.3128 or greater
00000    Errors detected
00000    Installation of "sparql_cxml" was unsuccessful.
00000    ERROR
```

Ubuntuパッケージにない最新版か、もしかしたら商用版でないと動かないのかもしれない。

[こちら](http://www.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtSparqlCxmlHtml#AncConfiguringVirtuoso)には下の記載があった:

```
Support for CXML is available in the Virtuoso Commercial Edition Release 6.02.3129 or above. It is not included in Virtuoso Open-Source Edition.
```