プログラムの実行

必要な外部プログラム

Semi-structured Database(以下 SSDB)はWebサーバと組み合わせて常駐型のCGI(FastCGI)アプリケーションとして動作するため、 FastCGIに対応したWebサーバが必要となります。

動作確認済みWebサーバ 入手元
apache 2.0.54  http://www.apache.org/
with mod_fastcgi 2.4.2  http://www.fastcgi.com/

各WebサーバにおけるFastCGIプログラムの設定方法については、mod_fastcgiのドキュメントをご覧ください。

以下にApache 2.0.54に対する主な指示子の設定を示します。

ScriptAlias /cgi-bin/ "..."

LoadModule fastcgi_module modules/mod_fastcgi.so

<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiConfig -maxClassProcesses 1 -initial-env SSDB_DIR=/var/RDF_DATA_STORE -initial-env LC_CTYPE=ja_JP.UTF-8
  FastCgiIpcDir /tmp
</IfModule>

<VirtualHost *:80>
Script PUT /cgi-bin/ssdb.fcgi
Script GET /cgi-bin/ssdb.fcgi
</VirtualHost>

同一サーバ内で、複数のssdbを個別のデータ領域に対して起動するには ssdb.fcgi を別名でコピー(またはシンボリックリンク)を作成し、以下のようにFastCgiServer ディレクティブで個別に設定します。

ScriptAlias /cgi-bin/ "..."

LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiServer .../ssdb.fcgi     -processes 1 -initial-env SSDB_DIR=/var/RDF_DATA_STORE     -initial-env LC_CTYPE=ja_JP.UTF-8
  FastCgiServer .../ssdb-alt.fcgi -processes 1 -initial-env SSDB_DIR=/var/RDF_DATA_STORE-alt -initial-env LC_CTYPE=ja_JP.UTF-8
</IfModule>

上記の"..."の部分に ssdb.fcgiをインストールしたディレクトリを指定してください。 またFastCgiConfigのオプションとしてデータを格納するディレクトリ名(上記の例では/var/RDF_DATA_STORE)を指定してください。 指定がない場合は、/tmp/RDF_DATA_STOREが用いられます。

ssdb.fcgiはHTTP GET要求に対しては、その要求のクエリ文字列に含まれるQUERY_STRINGの値をSPARQL問合せとして実行し、 HTTP応答をSPAQL Result Set形式(SPARQL問合せがSELECT文およびASK文の場合)またはRDF/XML形式(SPARQL問合せがCONSTRUCT文の場合)として返します。 HTTP PUT要求に対しては、そのHTTPボディをRDF/XML形式として解釈した結果のRDFステートメントを、データベースに追記します。

必要なライブラリ

SSDBを実行するためには次のライブラリが必要です。

名称 動作確認済みバージョン ライブラリ名 入手元
Xerces-C 2.7.0 libxerces-c  http://xml.apache.org/xerces-c/
FastCGI 2.4.0 libfcgi++  http://www.fastcgi.com/
Berkeley DB 4.3.27 libdb_cxx  http://www.oracle.com/technology/software/products/berkeley-db/db/

FastCGIアプリケーションはWebサーバの実行環境から起動されるため、これらの動的ライブラリを標準のライブラリディレクトリ に配置しない場合は、ldconfigによって、ライブラリの配置場所を指定するか、 Weサーバが実行される環境のLD_LIBRARY_PATH環境変数に、これらの配置場所を含めるようにしてください。

SPARQL検索テストの実行

サブディレクトリ testの下で

make test

を実行すると、w3c RDF データアクセスWGが提供するテスト集を実行することができます。 このテストを実行するためには、 まずhttp://www.w3.org/2001/sw/DataAccess/tests/data.tar.gzを入手して、 testディレクトリ以下に展開してください。 また、このデータからテスト実行環境を構築するために、次の二つのプログラムが必要となります。

名称 機能 入手元
Xalan XSLトランスレータ  http://xalan.apache.org/
cwm.py n3/RDF変換スクリプト  http://www.w3.org/2000/10/swap/doc/cwm.html

こららのプログラムは make testの中で呼び出されます。