It is possible to modify the SPARQL endpoint Web Application Archive (WAR file), for instance, to enhance its logic by adding a servlet or a filter. Generating a new SPARQL endpoint WAR file involves downloading Apache Jena Joseki, an open source SPARQL server that supports the SPARQL protocol and SPARQL queries. This section explains how to generate a web application archive (joseki.war) for the SPARQL Service endpoint.
Ensure that you have Java 6 installed, because it is required by Joseki 3.4.4.
Download Apache Jena Joseki 3.4.4 (joseki-3.4.4.zip) from http://sourceforge.net/projects/joseki/files/Joseki-SPARQL/.
Unpack joseki-3.4.4.zip into a temporary directory. For example:
mkdir /tmp/joseki cp joseki-3.4.4.zip /tmp/joseki cd /tmp/joseki unzip joseki-3.4.4.zip
Ensure that you have downloaded and unzipped the RDF Graph feature for the Oracle NoSQL Database, as explained in Setup the System Environment.
Create a directory named joseki.war
at the
same level as the jena_adapter directory, and
go to it. For example:
mkdir /tmp/joseki.war cd /tmp/joseki.war
Copy necessary files into the directory created in the preceding step:
cp /tmp/jena_adapter/joseki/* /tmp/joseki.war cp -rf /tmp/joseki/Joseki-3.4.4/webapps/joseki/StyleSheets \ /tmp/joseki.war
Create directories and copy necessary files into them, as follows:
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
Modify Apache Jena Joseki's configuration file
(joseki-config.ttl
) file located in
/tmp/joseki.war
to specify the store name,
host name, and host port to access the Oracle
NoSQL Database. This data will be used by the
SPARQL Service endpoint to establish
connections to the Oracle NoSQL Database and
execute update and query operations. For
detailed information about this configuration,
see
Configuring an Oracle NoSQL Database connection in the SPARQL service.
Check the files and the directory structure to make sure they reflect the following:
. |-- 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
Build a .war file from the
/tmp/joseki.war
directory (a .war file is required if you want
to deploy Apache Jena Joseki to an OC4J container),
using the following commands:
cd /tmp/joseki.war jar cvf /tmp/joseki_app.war *