3. フォーマッタ
Answers Anywhereからの出力は標準ではXML形式です。これは出力を返す先が別のプログラムである場合は都合がよいですが、ユーザーインターフェースとしてはHTMLやテキストなどの形式のほうが扱いやすいといえます。フォーマッタはこのような出力形式の変換を行うためのモジュールです。フォーマッタは Interactionエージェント上で動作します。初期状態のエージェント・ネットワークにはフォーマッタは登録されておらず、その場合にはエージェント・ネットワークの出力はXML形式となります。標準のSDKにはHTMLおよびテキスト形式で出力をするフォーマッタが付属しています。これらを Interactionエージェントに登録し変換のルールを設定することで目的の出力が得られます。
その他の出力形式、たとえばCSVやJSON形式で出力する場合はJava APIによりカスタムフォーマッタを開発することで対応します。
フォーマッタでは次の2種類の出力が生成されます。その動作の仕組みを図7に示します。
説明テキスト
サービスプロバイダで実施された処理結果の概要、推論ヒントからのメッセージなどが説明テキストです。Explanation Property Fileに、出力するメッセージの雛形文章およびエージェントが出力したXMLタグと表示文字列の組を定義します。後者は雛形文章に埋め込む文字列として使用されます。
結果一覧
サービスプロバイダでの検索結果は実行結果としてXML形式でフォーマッタに渡されます。それをリストまたは表形式に整形して出力されるのが結果一覧です。Display Property Fileにより一覧に結果のどの列を表示するのか、またその列名を設定します。
フォーマッタの設定を行うにはInteractionエージェントをダブルクリックします。[New]を押すと新規のフォーマッタの種別を選択するダイアログが出るのでHTMLフォーマッタ「com.dejima.core.io.HTMLPresentationFormatter」を選択し[Ok]を押します。表4にHTMLフォーマッタの設定値一覧を示します。また図8にフォーマッタの設定手順を示します。
項目名 | 内容 | 設定する値 |
Name | フォーマッタの名称 | html(デフォルト値) |
Explanation Property File | 説明テキストの表示内容設定 | XMLファイルの編集 |
Display Property File | 結果の表示内容設定 | XMLファイルの編集 |
Add Xml | 出力にXMLを付与する | false(デフォルト値) |
Add Explanation | 説明テキストのうち処理結果の概要部分(入力内容、結果一覧件数、検索条件)を表示する | true(デフォルト値) |
Add Ambiguous Fields Question | 意図の確定要求のヒントメッセージと選択肢を表示する | true(デフォルト値) |
Add Invalid Fields Question | 正規表現による値チェックのヒントメッセージを表示する。ヒントの定義にPossible Valuesがあればそれを候補値として表示する | true(デフォルト値。このヒントは使用しないため不問) |
Add Missing Fields Question | 必須値要求のヒントメッセージを出力する。ヒントの定義にPossible Valuesがあればそれを候補値として表示する | true(デフォルト値) |
Assign Numbers To Ambiguity Choices | 意図の確定要求のヒントメッセージと選択肢に番号をつけて表示する | true(デフォルト値) |
Assign Numbers To Possible Values | 正規表現による値チェックおよび必須値要求のヒントの候補値に番号をつけて表示する | true(デフォルト値。使用しないため不問) |
Add Results | 結果一覧を出力する | true(デフォルト値) |
Add Results Header | どのCommandで生成された結果かを表示する | true(デフォルト値) |
Add Results No Of Records Found | 結果の件数を表示する | true(デフォルト値) |
Add Hints | ヒントメッセージを表示する | true(デフォルト値) |
Display Results In Table | trueならば結果一覧をテーブル形式で表示する | true(デフォルト値) |
Explanation Property FileとDisplay Property FileはどちらもXML形式の設定ファイルです。それぞれの編集画面で[Generate]を押すことでエージェント・ネットワークを基に雛形が自動生成されます(図9)。
説明テキストの設定であるExplanation Property Fileについては雛形をそのまま使用します。Display Property Fileについては、雛形はエージェント・ネットワークから作成されるため店名を一覧の中に表示するという定義が欠けています。そこでリスト2の太字で示す部分を追加し店名が結果一覧に表示されるようにします。この設定ファイルのDisplayFieldsタグが表示する結果一覧の列を表します。このタグ列それぞれについて定義し、定義順で列が表示されます。
<DisplayProperties> <Object name="レストラン"> <DisplayFields>
<Path value="レストラン/rname" />
<Displayable value="true" />
<FormField value="false" />
<DisplayName value="店名" />
</DisplayFields> <DisplayFields> <Path value="レストラン/エリア" /> <Displayable value="true" /> <FormField value="false" /> </DisplayFields> <DisplayFields> <Path value="レストラン/ジャンル" /> <Displayable value="true" /> <FormField value="false" /> </DisplayFields> <DisplayFields> <Path value="レストラン/星" /> <Displayable value="true" /> <FormField value="false" /> </DisplayFields> </Object> </DisplayProperties>
表5にタグの中の設定内容を示します。Explanation Property FileとDisplay Property Fileのどちらも設定が終了したら[Ok]を押してデフォルトのファイル名で保存をします。
フォーマッタの設定が終わったら[Ok]を押します。最後にInteractionエージェントの設定画面でも[Ok]を押して変更を反映させます。
タグ名 | 内容 |
Path | 結果XMLに含まれる処理結果のどの列を表示させるかの指定。Results/{Object名}/FieldInfoに定義されているPathの名前と一致させる。 |
Displayable | trueにするとこの列を表示する |
FormFeild | (使用しない) |
DisplayName | 表示列名の指定。省略した場合はPathの値からObject名を除いた文字列を使用する。 |