アプリケーションがSPARQL Gatewayと対話する主なインタフェースは、次の形式のURLです。
http://host:port/sparqlgateway/sg?<SPARQL_ENDPOINT> &<SPARQL_QUERY>&<XSLT>
上の形式の意味は次のとおりです。
<SPARQL_ENDPOINT>には、ee
パラメータを指定し、これにはURLエンコードされた形のSPARQLエンドポイントが含まれます。
たとえば、ee=http%3A%2F%2Fsparql.org%2Fbooks
は、http://sparql.org/booksというSPARQLエンドポイントをURLエンコードした文字列です。これは、SPARQL問合せがエンドポイントhttp://sparql.org/booksに対して実行されることを意味します。
<SPARQL_QUERY>には、SPARQL問合せか、SPARQL問合せの場所を指定します。
アプリケーションが非常に長いURLを受け入れられる場合には、SPARQL問合せの全体をエンコードしてURLにeq=<encoded_SPARQL_query>
を設定できます。アプリケーションがあまり長いURLを受け入れられない場合には、SPARQL問合せを格納したうえで、「SPARQL問合せとXSL変換の格納」に説明されているいずれかの方法でSPARQL Gatewayで使用できるようにします。
<XSLT>には、XSL変換か、XSL変換の場所を指定します。
アプリケーションが非常に長いURLを受け入れられる場合には、XSL変換の全体をエンコードしてURLにex=<encoded_XSLT>
を設定できます。アプリケーションがあまり長いURLを受け入れられない場合には、XSL変換を格納したうえで、「SPARQL問合せとXSL変換の格納」に説明されているいずれかの方法でSPARQL Gatewayで使用できるようにします。
関連項目:
アプリケーションがあまり長いURLを受け入れられない場合には、「RDFデータに対するSPARQL Gatewayの使用」で説明されているURL形式のうち<SPARQL_QUERY> and <XSLT>の部分で、SPARQL問合せとXSL変換の場所を指定できます。このとき、次のいずれかの方法を使用します。
SPARQL問合せとXSL変換をSPARQL Gateway Webアプリケーション自体に格納する方法。
この場合には、sparqlgateway.war
ファイルを展開し、トップレベル・ディレクトリにSPARQL問合せとXSL変換を格納します。次に、sparqlgateway.war
ファイルをパッケージして再デプロイします。
sparqlgateway.war
ファイルには、qb1.sparql
(SPARQL問合せ)とdefault.xslt
(XSL変換)のサンプル・ファイルがあります。
.sparql
、XSL変換ファイルの場合が.xslt
です。
これらのファイルを指定する(付属しているサンプル・ファイル名を使用する)構文は、SPARQL問合せファイルの場合がwq=qb1.sparql
、XSL変換ファイルの場合がwx=default.xslt
です。
デフォルトのXSL変換をカスタマイズする場合には、「デフォルトXSLTファイルのカスタマイズ」を参照してください。
wx=noop.xslt
を指定した場合、XSL変換は実行されず、SPARQL応答はそのままクライアントに返されます。
SPARQL問合せとXSL変換をファイル・システムのディレクトリに格納し、デプロイされたSPARQL Gateway Webアプリケーションからそのディレクトリにアクセスできるようにする方法。
デフォルトでは、このディレクトリは/tmp
に設定されており、次の例のように<init-param>設定の中に指定されています。
<init-param> <param-name>sparql_gateway_repository_filedir</param-name> <param-value>/tmp/</param-value> </init-param>
SPARQL Gatewayをデプロイする前にこのディレクトリをカスタマイズすることをお薦めします。ディレクトリ設定を変更するには、<param-value>
タグと</param-value>
タグの間のテキストを編集します。
次の例では、sparql_gateway_repository_filedir
の<init-param>
要素で指定されているディレクトリにあるSPARQL問合せファイルとXSL変換ファイルを指定しています。
fq=qb1.sparql fx=myxslt1.xslt
SPARQL問合せとXSL変換をWebサイトからアクセスできるようにします。
デフォルトでは、このディレクトリはhttp://127.0.0.1/queries/に設定されており、次の例のように<init-param>設定の中に指定されています。
<init-param> <param-name>sparql_gateway_repository_url</param-name> </param-name>http://127.0.0.1/queries/</param-name> </init-param>
SPARQL Gatewayをデプロイする前にこのディレクトリをカスタマイズしてください。Webサイト設定を変更するには、</param-name>
タグと</param-name>
タグの間のテキストを編集します。
次の例では、sparql_gateway_repository_url
の<init-param>
要素で指定されているURLにあるSPARQL問合せファイルとXSL変換ファイルを指定しています。
uq=qb1.sparql ux=myxslt1.xslt
内部的には、SPARQL Gatewayは適切な完全URLを計算し、その内容をフェッチして問合せの実行を開始してから、XSL変換を問合せ応答のXMLに適用します。
SPARQL GatewayのSPARQL問合せとXSL変換の格納とアクセスにOracleデータベースを使用する場合は、OracleSGDS
という名前のデータ・ソースを構成する必要があります。
このデータ・ソースを作成するには、「Oracle WebLogic Serverの使用方法」の説明に従いますが、データ・ソース名としてOracleSemDSではなくOracleSGDSを指定します。
OracleSGDSデータ・ソースが構成されていて使用可能な場合には、初期化の際にSPARQL Gatewayサーブレットが必要な表と索引を自動的にすべて作成します。
「RDFデータに対するSPARQL Gatewayの使用」で説明しているURL形式を使用して送信する問合せの実行時間が長くなりそうな場合には、タイムアウト値をミリ秒単位で指定して実行時間を制限できます。たとえば次の例では、SPARQL Gatewayから開始されたSPARQL問合せの実行が、1000ミリ秒(1秒)後に終了するようにURL形式とタイムアウト値を指定しています。
http://host:port/sparqlgateway/sg?<SPARQL_ENDPOINT>&< SPARQL_QUERY>&<XSLT>&t=1000
タイムアウト発生までに問合せが終了しない場合には、SPARQL Gatewayによって空のSPARQL応答が作成されます。
SPARQL GatewayがHTTP接続レベルで問合せの実行をタイムアウトしても、サーバー側では問合せの実行が続く場合もあります。実際の動作はベンダーによって異なります。
「RDFデータに対するSPARQL Gatewayの使用」で説明しているURL形式を使用して送信する問合せの実行時間が長くなりそうな場合に、タイムアウト値を指定していれば、問合せに対してベスト・エフォートの制限も指定できます。たとえば次の例では、URL形式で1000ミリ秒(1秒)のタイムアウト値と、ベスト・エフォート(&b=t)を指定しています。
http://host:port/sparqlgateway/sg?<SPARQL_ENDPOINT>& <SPARQL_QUERY>&<XSLT>&t=1000&b=t
web.xml
ファイルには、ベスト・エフォート・オプションの動作に影響する2つのパラメータ設定があります。sparql_gateway_besteffort_maxrounds
とsparql_gateway_besteffort_maxthreads
です。デフォルト定義は次のとおりです。
<init-param> <param-name>sparql_gateway_besteffort_maxrounds</param-name> </param-name>10</param-name> </init-param>
<init-param> <param-name>sparql_gateway_besteffort_maxthreads</param-name> </param-name>3</param-name> </init-param>
SPARQL SELECT問合せがベスト・エフォート方式で実行されると、一連の問合せが実行され、SPARQL問合せ本体のLIMIT値設定が大きくなります。(根本的な概念としては、LIMIT設定を小さくするほどSPARQL問合せの実行は速くなるという事実に基づいています。)SPARQL Gatewayは、LIMIT 1設定で問合せの実行を開始します。この問合せは、タイムアウトに達する前に完了するのが理想的です。そうなると仮定すると、次の問合せではLIMIT設定が大きくなり、後続の問合せでは制限が高くなります。問合せ実行の最大数を制御するのは、sparql_gateway_besteffort_maxrounds
パラメータです。
一連の問合せを並行して実行できる場合には、sparql_gateway_besteffort_maxthreads
パラメータで並列度を制御します。
SPARQL Gatewayのデフォルトでは、XSL変換でXMLが生成されると想定しているため、HTTP応答に設定されるデフォルトのコンテンツ・タイプはtext/xmlです。ただし、アプリケーションでXML以外の応答形式が必要な場合には、次のように追加のURLパラメータ(&rt=の構文)でその形式を指定できます。
http://host:port/sparqlgateway/sg?<SPARQL_ENDPOINT>& <SPARQL_QUERY>&<XSLT>&rt=<content_type>
<content_type>はURLエンコードする必要があります。