CGI パラメーターを使用したオプションの設定

Watson™ Explorer Engine を使用して作成した検索アプリケーションを用いてユーザーが検索照会を行う際に、柔軟性が求められることになります。これをサポートするために、スクリプト query-meta に渡される CGI パラメーターに基づいて、一般的なプロジェクトのオプションを設定します。

スクリプトに渡されたすべての CGI パラメーターは、Watson Explorer Engine によって操作できる変数になります。同様に、プロジェクト内のすべてのオプションは、XML コードによって値を指定できる変数です。

Watson Explorer Engine XML スキーマは、プログラミング言語とほぼ同じぐらい柔軟です。いくつかの点で XSL に似ていることが分かります。この XML を使用して、CGI パラメーターに基づいてオプションを設定します。

query-meta スクリプトを使用した標準的なユーザー対話では、CGI パラメーターに基づいたオプションと変数の設定は、プロジェクトのロード後、core-main という名前の macro ノードが処理されるときに行われます (query-meta は、プロジェクトの「Advanced」 > 「Misc」タブにある main 変数の値から処理するマクロを認識します)。

では、ユーザーの照会の送信先とするソースのリストを指定するシンプルな例を見てみましょう。マクロ・ノード core-main-cgi (core-main によって参照される) に以下の XML があります。

<if-var name="v:sources" realm="param" match="?*">
  <set-var name="query.sources">
    <value-of-var name="v:sources" realm="param" multi-sep=" " />
  </set-var>
</if-var>

この if-var ステートメントは、XSL の xsl:if ステートメントと似ています。これは、v:sources CGI パラメーター (照会するソースをデフォルトで指定するパラメーター) が存在するかどうかをテストします。realm 属性は、変数 v:sources が CGI パラメーターであり、内部の Watson Explorer Engine 変数でないことを示しています。

v:sources が設定されている場合、query.sources 変数の値が変更されます。そうなっていない場合、何も行われず、query.sources は現行プロジェクトに指定されている値に設定されたままになります。ソース All が変数 query.sources のデフォルト値として指定されているため、v:sources CGI パラメーターでソースが指定されていない場合にそのソースが検索対象のデフォルト・ソースになります。

「Project」「Components」タブでこの値を変更するには、「Sources (default)」ラベルの右にある「edit」をクリックします。最初、query.sources 変数の横には空のボックスがあります。これは、Watson Explorer Engine で指定されているデフォルト値 (All) を使用することを示しています。ソースの名前を入力し、「OK」をクリックすると、それがシンプル照会で検索されるデフォルト・ソースになります。

core-main-cgi マクロをオンラインで調べて、XML を使用して設定できるすべてのオプションを確認できます。Watson Explorer Engine ソフトウェアで XML がどのように処理されるのかを理解しようとする際には、オンラインの スキーマ資料が優れた参照先であることを覚えておいてください。