対話マネージャのスクリプト書式¶
はじめに¶
対話マネージャは対話機能を管理する機能を持ち、対話システムの中核となる部分です。
OpenHRIは2つの対話マネージャを用意しており、目的に応じて選択することができます(独自の対話マネージャを書くこともできます)。
SEAT: シンプルな対話マネージャ¶
SEAT (Speech Event Action Transfer) はシンプルな状態遷移モデルに基づく対話マネージャです。 以下のXMLタグを使用してシステムの動作を定義することができます。
タグ¶
アダプタの定義
SEATには、名前と通信方法(RTMとソケット)を対応付けるアダプタ機構を持っています。 アダプタ機構は、通信方法の差異を隠蔽化することで、システムのハードウェア構成の変化に適応し、対話ロジックの再利用性を向上させます。
- general
アダプタ定義部を示します。
- agent
名前と通信方法の対応を示します。 “type”属性は”rtcin”、”rtcout”、”socket”を取ることができます。 タイプが”rtcin”か”rtcout”と定義されたとき、”datatype”属性を定義できます(データ型に関しては、RTMの仕様を参照してください)。 タイプが”socket”と定義されたとき、”host” 、”port” 属性を定義できます。
スクリプト定義
- state
状態遷移モデルで状態を示します。
- rule
キーワードとコマンドの組を定義します。
- key
キーワードを示します。
- command
キーワードと入力が一致したとき実行されるコマンドを示します。
- statetransition
状態遷移を示します。
例¶
<?xml version="1.0" encoding="UTF-8"?>
<seatml>
<general name="sample">
<agent name="speechin" type="rtcin" datatype="TimedString" />
<agent name="speechout" type="rtcout" datatype="TimedString" />
</general>
<state name="OPEN">
<rule>
<key>こんにちは</key>
<command host="speechout">こんにちは</command>
</rule>
<rule>
<key>こんばんは</key>
<command host="speechout">こんばんは</command>
</rule>
<rule>
<key>バイバイ</key>
<command host="speechout">バイバイ</command>
<statetransition>CLOSE</statetransition>
</rule>
</state>
<state name="CLOSE">
<rule>
<key>こんにちは</key>
<command host="speechout">はい。なんでしょう。</command>
<statetransition>OPEN</statetransition>
</rule>
<rule>
<key>こんばんは</key>
<command host="speechout">休憩中です</command>
</rule>
<rule>
<key>バイバイ</key>
<command host="speechout">休憩中です</command>
</rule>
</state>
</seatml>
検証ツール¶
“validateseatml”は、SEATML形式のスクリプトの検証を行うツールです。
検証ツールは以下のコマンドで実行できます。:
$ validateseatml [scriptfile]
スクリプトが正しい形式で書かれていれば以下のようなメッセージが出力されます。:
$ validateseatml sample-jp.seatml
validating script file sample-jp.seatml...
script file is valid.
スクリプトの形式が正しくないとき、以下のようなエラーメッセージが出力されます。:
$ validateseatml sample-invalid.seatml
validating script file sample-invalid.seatml...
[error] invalid script file.
Element 'transition': This element is not expected. Expected is one of ( command, statetransition )., line 23
視覚化ツール¶
OpenHRIは、SEATMLスクリプトの構造を検証するより強力なツールを用意しています。 “seatmltographviz”は、スクリプトをグラフ表示させて構造をチェックするツールです。
以下のコマンドでグラフ描画処理を行います。:
$ seatmltographviz sample-jp.seatml | dot -Txlib
以下のような画像が出力されます。:
Soar: General Artificial Intelligence¶
Soar ( http://sitemaker.umich.edu/soar/home ) はプロダクションシステムベースのAIで最も人気がある実装の1つです。
OpenHRIは、RTMベースのシステムにコンポーネントとしてSoarを埋め込むためのラッパーを提供します。
More documents T.B.D