付録B 新しいSPARQLサービスWARファイルの生成

SPARQLエンドポイントのWebアプリケーション・アーカイブ(WAR)ファイルを変更すると、たとえばサーブレットまたはフィルタを追加してそのロジックを強化できます。新しいSPARQLエンドポイントWARファイルを作成するには、Apache Jena Josekiをダウンロードします。Apache Jena JosekiはSPARQLプロトコルとSPARQL問合せをサポートするオープンソースのSPARQLサーバーです。この項では、SPARQLサービス・エンドポイントのWebアプリケーション・アーカイブ(joseki.war)を生成する方法について説明します。

  1. Java 6がインストールされていることを確認してください。Joseki 3.4.4で必要です。

  2. http://sourceforge.net/projects/joseki/files/Joseki-SPARQL/からApache Jena Joseki 3.4.4 (joseki-3.4.4.zip)をダウンロードします。

  3. joseki-3.4.4.zipを一時ディレクトリに展開します。次に例を示します。

    mkdir /tmp/joseki
    cp joseki-3.4.4.zip /tmp/joseki
    cd /tmp/joseki
    unzip joseki-3.4.4.zip
  4. 「システム環境の設定」の説明に従って、Oracle NoSQL DatabaseのRDFグラフ機能をダウンロードし、展開します。

  5. jena_adapterディレクトリと同じレベルにjoseki.warという名前のディレクトリを作成し、そこに移動します。次に例を示します。

    mkdir /tmp/joseki.war
    cd /tmp/joseki.war
  6. 前の手順で作成したディレクトリに、必要なファイルをコピーします。

    cp /tmp/jena_adapter/joseki/* /tmp/joseki.war
    cp -rf /tmp/joseki/Joseki-3.4.4/webapps/joseki/StyleSheets \
    /tmp/joseki.war
  7. 次のように、ディレクトリを作成して必要なファイルをコピーします。

    mkdir /tmp/joseki.war/WEB-INF
    cp /tmp/jena_adapter/web/* /tmp/joseki.war/WEB-INF 
    
    mkdir /tmp/joseki.war/WEB-INF/lib
    cp /tmp/joseki/Joseki-3.4.4/lib/joseki-3.4.4.jar \
    /tmp/joseki.war/WEB-INF/lib
    cp /tmp/jena_adapter/jar/*.jar /tmp/joseki.war/WEB-INF/lib
    cp <#JENA_DIR>/lib/* /tmp/joseki.war/WEB-INF/lib
    
    ## Assume KV_HOME points to the home directory of an 
    ## Oracle NoSQL Database 
    ## Release <#ORACLE>. 
    cp $KVHOME/lib/kvclient.jar /tmp/joseki.war/WEB-INF/lib
  8. /tmp/joseki.warにあるApache Jena Josekiの構成ファイル(joseki-config.ttl)を変更し、Oracle NoSQL Databaseにアクセスする際のストア名、ホスト名、ホスト・ポートを指定します。この値はSPARQLサービス・エンドポイントで使用され、Oracle NoSQL Databaseへの接続が確立されて更新および問合せの操作が実行されます。この構成の詳細は、「SPARQLサービスにおけるOracle NoSQL Database接続の構成」を参照してください。

  9. ファイルとディレクトリ構造をチェックし、次のとおりになっていることを確認します。

    .
    |-- META-INF
    | |-- MANIFEST.MF
    |-- StyleSheets
    | |-- joseki.css
    |-- WEB-INF
    | |-- lib
    | | |-- common-codec-1.5.jar            
    | | |-- httpclient-4.1.2.jar
    | | |-- httpcore-4.1.3.jar
    | | |-- jena-arq-2.9.4.jar
    | | |-- jena-core-2.7.4.jar
    | | |-- jena-iri-0.9.4.jar
    | | |-- jena-tdb-0.9.4.jar
    | | |-- joseki-3.4.4.jar
    | | |-- kvclient.jar
    | | |-- log4j-1.2.16.jar
    | | |-- sdordfnosqlclient.jar
    | | |-- slf4j-api-1.6.4.jar
    | | |-- slf4j-log4j12-1.6.4.jar
    | | |-- xercesImpl-2.10.0.jar
    | | |-- xml-apis-1.4.01.jar
    | |-- web.xml
    |-- application.xml
    |-- index.html
    |-- joseki-config.ttl
    |-- update.html
    |-- xml-to-html.xsl
  10. 次のコマンドを使用して、/tmp/joseki.warディレクトリから.warファイルを作成します(OC4JコンテナにApache Jena Josekiをデプロイする場合には.warファイルが必要です)。

    cd /tmp/joseki.war
    jar cvf /tmp/joseki_app.war *