(57)【要約】  マルチモーダルデータ収集装置入力、または音声認識入力を、発話出力機能と統合するための対話マネージャ、及び方法。作業フローの記述(208)がグラフィカルユーザインタフェース(86)の対象物から抽出されると共に、マルチモーダルユーザインタフェース(204)が定義される。作業フローの記述(208)に従って、対話エンジン(254)は、入出力装置(264)とアプリケーション(204)との間の情報の流れを同期させる。複数の周辺装置(266-274)によって出力されるデータを入力するためのプロンプトは、周辺装置(266-274)の入力状態に基づき、対話エンジン(254)によって、知的な方法で制御される。バージイン、プロンプトホールドオフ、プライオリティプロンプト、及びトークアヘッドのような機能が提供される。
2007531069.tif 000002
【特許請求の範囲】
【請求項１】
マルチモーダルソフトウェアアプリケーションを実行するためのシステムであって、
周辺装置の第１のセットから入力される第１のデータを受信すると共に、周辺装置の第２のセットに対して第２のデータを出力するように構成される前記マルチモーダルソフトウェアアプリケーションと、
前記マルチモーダルソフトウェアアプリケーションと通信する対話エンジンと、
前記第１のセット及び前記第２のセットの中の各周辺装置と接続された各インタフェースコンポーネントとを具備し、
前記対話エンジンが、前記マルチモーダルソフトウェアアプリケーションから受信されたワークフローの記述を実行すると共に、前記マルチモーダルソフトウェアアプリケーションに対して前記第１のデータを提供するように構成されると共に、更に、前記ワークフローの記述からのプロンプトの出力を、前記周辺装置の第１のセットの入力状態に基づいて制御するように構成され、
各インタフェースコンポーネントが、もしあれば前記第２のデータを接続された前記周辺装置に提供すると共に、もしあれば前記第１のデータを接続された前記周辺装置から受信するように構成される
ことを特徴とするシステム。
【請求項２】
前記制御が、もし前記プロンプトが出力されている間に前記第１のデータが受信される場合、前記プロンプトを中断する処理を含む
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記制御が、もし前記周辺装置の第１のセットのうちの１つが前記第１のデータを受信している場合、前記プロンプトの出力を延期する処理を含む
ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記制御が、
前記第１のデータが前記プロンプト及び次のプロンプトに関係すると判定する処理と、
前記第１のデータの一部分を前記プロンプトと結合させ、前記第１のデータの他の部分を前記次のプロンプトと結合させる処理と
を含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記制御が、前記次のプロンプトの出力を無効にする処理を更に含む
ことを特徴とする請求項４に記載のシステム。
【請求項６】
前記制御が、もし前記プロンプトが中断不可能であると指定される場合、前記プロンプトの中断及び終了を阻止する処理を更に含む
ことを特徴とする請求項２に記載のシステム。
【請求項７】
前記周辺装置の第１のセットは、音声認識システム、無線周波数識別子スキャナ、バーコードスキャナ、タッチスクリーン、キーパッド、及びコンピュータのうちの１つ以上を含む
ことを特徴とする請求項１に記載のシステム。
【請求項８】
前記周辺装置の第２のセットは、音声合成システム、表示モニタ、及びコンピュータのうちの１つ以上を含む
ことを特徴とする請求項１に記載のシステム。
【請求項９】
マルチモーダルアプリケーションを実行するための方法であって、
前記マルチモーダルアプリケーションから受信されたワークフローの記述を実行するステップと、
複数の周辺装置によって第１のワークフローオブジェクトのプロンプトを出力するステップと、
前記複数の周辺装置の入力状態に従って前記プロンプトの出力を制御するステップとを具備し、
前記ワークフローの記述が、複数のワークフローオブジェクトを含み、
前記プロンプトが前記マルチモーダルアプリケーションに関連している
ことを特徴とする方法。
【請求項１０】
前記プロンプトが、前記マルチモーダルアプリケーションのＧＵＩ画面の視覚制御に関連している
ことを特徴とする請求項９に記載の方法。
【請求項１１】
前記制御するステップが、
前記出力するステップが完了する前にデータを受信するステップと、
前記データの受信に応答して、前記出力するステップを終了するステップとを含み、
それによって、前記プロンプトのあらゆる残り部分が出力されない
ことを特徴とする請求項９に記載の方法。
【請求項１２】
前記出力するステップが、音声プロンプトを出力するステップを含み、
前記受信するステップが、音声認識システムから音声データを受信するステップを含む
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記データが、前記複数の周辺装置のうちの１つから受信される
ことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記プロンプトが中断不可能であると指定されたかどうかを判定するステップと、
前記プロンプトの終了を阻止するステップと
を更に具備することを特徴とする請求項１１に記載の方法。
【請求項１５】
前記データが所定の前記周辺装置から受信される場合、前記終了するステップを実行するステップと、
もし入力が所定の前記周辺装置以外から受信される場合、前記終了するステップを省略するステップと
を更に具備することを特徴とする請求項１１に記載の方法。
【請求項１６】
前記制御するステップが、
前記プロンプトに応答して、前記プロンプト及び第２のワークフローオブジェクトに関連するデータを受信するステップと、
前記データの一部分を前記第１のワークフローオブジェクトと結合させ、前記データの他の部分を前記第２のワークフローオブジェクトと結合させるステップと
を含むことを特徴とする請求項９に記載の方法。
【請求項１７】
前記第２のワークフローオブジェクトに関連する次のプロンプトの出力を阻止するステップを更に具備する
ことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記データが、前記第１のワークフローオブジェクト、及び複数の他のワークフローオブジェクトに関連する
ことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記制御するステップが、
前記複数の周辺装置のうちの１つにおいてデータを受信するステップと、
前記データを受信しなくなるまで、前記プロンプトを出力するステップを延期するステップと
を含むことを特徴とする請求項９に記載の方法。
【請求項２０】
前記延期するステップが、
前記プロンプトを１つの前記周辺装置に対して出力することを延期するステップと、
前記プロンプトを前記複数の周辺装置のうちの他のものに対して遅延なしで出力することを許可するステップと
を含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記データが前記プロンプトに関連するかどうかを判定するステップと、
もし前記データが前記プロンプトに関連する場合、前記プロンプトの出力を省略するステップと
を更に具備することを特徴とする請求項１９に記載の方法。
【請求項２２】
マルチモーダルアプリケーションを実行するための命令を伝搬するコンピュータ読み取り可能な媒体であって、
前記命令が、それの実行によって、
前記マルチモーダルアプリケーションから受信されたワークフローの記述を実行するステップと、
複数の周辺装置によって第１のワークフローのプロンプトを出力するステップと、
前記複数の周辺装置の入力状態に従って前記プロンプトの出力を制御するステップとを１つ以上のプロセッサに実行させるように配置され、
前記ワークフローの記述が、複数のワークフローオブジェクトを含み、
前記プロンプトが、前記マルチモーダルアプリケーションのＧＵＩ画面の視覚制御に関連する
ことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２３】
前記命令が、それの実行によって、
前記出力するステップが完了する前にデータを受信するステップと、
前記データの受信に応答して、前記出力するステップを終了するステップとを１つ以上のプロセッサに更に実行させるように配置され、
それによって、前記プロンプトのあらゆる残り部分が出力されない
ことを特徴とする請求項２２に記載のコンピュータ読み取り可能な媒体。
【請求項２４】
前記命令が、それの実行によって、
前記プロンプトに応答して、前記プロンプト及び第２のワークフローオブジェクトに関連するデータを受信するステップと、
前記データの一部分を前記第１のワークフローオブジェクトと結合させ、前記データの他の部分を前記第２のワークフローオブジェクトと結合させるステップとを１つ以上のプロセッサに更に実行させるように配置される
ことを特徴とする請求項２２に記載のコンピュータ読み取り可能な媒体。
【請求項２５】
前記命令が、それの実行によって、
前記複数の周辺装置のうちの１つにおいてデータを受信するステップと、
前記データを受信しなくなるまで、前記プロンプトを出力するステップを延期するステップとを１つ以上のプロセッサに更に実行させるように配置される
ことを特徴とする請求項２２に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチモーダルソフトウェアアプリケーションに関すると共に、更に特に、様々な周辺装置からのマルチモーダル入力を、追加の周辺装置からのマルチモーダル出力と協調させることに関するものである。
【背景技術】
【０００２】
本出願は、“METHOD AND SYSTEM FOR INTEGRATING MULTI-MODAL DATA CAPTURE DEVICE INPUTS WITH MULTI-MODAL OUTPUT CAPABILITIES”と題名が付けられて２００３年７月１１日に出願されたと共に、参照によってその全体がここに組み込まれる、シリアル番号10/617,422号の出願に関連している。
【０００３】
音声認識は、従来の周辺入出力装置経由の通信に対する便利な代替物として、コンピュータとのハンズフリーの通信を可能にすることによって、作業場での多くのタスクを単純化した。作業者は、音声認識装置を使用することで、音声によってデータを入力することができると共に、指令、もしくは命令は、音声合成装置によって作業者に伝達されることができる。音声認識は、従来の周辺入出力装置によるコンピュータとの対話が制限されるモバイルコンピューティング装置において、特定のアプリケーションを見い出す。
【０００４】
例えば、ワイヤレスウェアラブル（wearable）端末は、作業場の中での拡張された移動性を作業者に提供する一方で、望ましい計算、及びデータ処理機能によって作業関連のタスクを実行することを作業者に提供し得る。作業者がそのようなワイヤレスウェアラブル端末にひどく依存する１つの特別な領域は、在庫管理である。在庫管理産業は、食物及び小売り製品の流通、生産、及び品質管理のような様々な種々のタスクを実行するために、コンピュータ化された在庫管理システムに依存する。総合的な統一管理システムは、追跡及び管理のための中央コンピュータシステムと、注文実施者（order fillers）、収集者（pickers）、及び他の作業者の形態でコンピュータシステムを使用すると共に、コンピュータシステムと対話する人間との組み合わせを包含する。作業者は、中央コンピュータシステムからワイヤレスウェアラブル端末に送信された情報の指揮統制下にある総合的な統一管理システムの“手を使用する状況”を処理する。
【０００５】
それらの作業者が割り当てられた作業を完了すると、情報の双方向性の通信ストリームが、ワイヤレスウェアラブル端末と中央コンピュータシステムとの間のワイヤレスネットワークを介して交換される。中央コンピュータシステムから各ワイヤレスウェアラブル端末によって受信された情報は、対応する作業者に対する音声命令か、またはテキスト指令に変換される。一般的に、その作業者は、音声データ入力のためのマイクロホン、及び音声出力フィードバックのための耳用スピーカを備える、ウェアラブル装置と接続されたヘッドセットを身に付ける。作業者からの応答は、ヘッドセットのマイクロホンによってワイヤレスウェアラブル端末に入力されると共に、ワイヤレスウェアラブル端末から中央コンピュータシステムまで伝達される。ヘッドセットのマイクロホンを経て、作業者は、質問を提示し、それらの割り当てられた作業を達成する際に進捗状況を報告し、そして在庫不足のような作業状態を報告することができる。そのようなワイヤレスウェアラブル端末を使用して、同時に操作するべき装置、または持ち歩くべき書類仕事なしで、作業者は、実質的にハンズフリーで割り当てられた作業を実行することができる。手動のデータ入力が除外されるか、もしくは少なくとも減少するので、作業者は、更に速く、更に正確に、そして更に生産的に、彼らの作業を実行することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
音声機能を有するワイヤレスウェアラブル端末に適当な作業者の作業のセットの実例は、初めに作業者をコンピュータ化された在庫管理体系に歓迎すると共に、特別な作業、または注文、例えば倉庫から出発することを予定される特定のトラックに荷物を満たすこと、を定義することを含むことができる。作業者は、その場合に、彼らがその注文に関して作業をしているであろう特定のエリア（例えば冷凍庫）において答えることができる。システムは、その次に、特定の量の品目を選ぶために、音声によって、特別な通路、及び貯蔵所へ作業者を導く。作業者は、その次に、選ばれた品目の場所及び数を声に出して確認する。システムは、その次に、特定のトラックが注文品を受け取る船積みドック、または港へ作業者を導くことができる。上記の内容から分かるように、ワイヤレスウェアラブル端末と中央コンピュータシステムとの間で交換された特定の通信は、作業仕様書であり得ると共に、非常に変わりやすい。
【０００７】
音声入力、及び音声出力に加えて、無線周波数ＩＤリーダ装置、バーコードスキャナ、タッチスクリーン、リモートコンピュータ、プリンタ等のような他の入力装置、及び他の出力装置との、同時に起こると共に択一的な接続を協調させることは、ワイヤレス端末環境、及びこの特定の環境の外でも役に立つであろう。コンピュータプラットフォームに関する従来の運用ソフトウェアは、音声データ入力、音声出力フィードバック、及び周辺装置入力の間での、この協調を首尾よく達成しない。そのようなマルチモーダル環境の中に、バージイン（barge-in）、プロンプトホールドオフ（prompt-holdoff）、プライオリティプロンプト（priority prompts）、及びトークアヘッド（talk-ahead）のような機能を可能にする現在のモノモーダルの音声システムのそれと類似した、知的なプロンプト制御に関する満たされない要求がある。
【課題を解決するための手段】
【０００８】
本発明の１つの特徴は、マルチモーダルソフトウェアアプリケーションを実行するためのシステムに関連する。このシステムは、マルチモーダルソフトウェアアプリケーションを具備する。マルチモーダルソフトウェアアプリケーションは、周辺装置の第１のセットから入力された第１のデータを受信すると共に、第２のデータを周辺装置の第２のセットに出力するように構成される。システムは、同様に、マルチモーダルソフトウェアアプリケーションと通信する対話エンジンを具備する。対話エンジンは、マルチモーダルソフトウェアアプリケーションから受信されるワークフローの記述を実行し、マルチモーダルソフトウェアアプリケーションに第１のデータを提供するように構成される。更に、この特徴によれば、システムは、第１のセット及び第２のセットの中の各周辺装置と接続された各インタフェースコンポーネントを具備する。各インタフェースコンポーネントは、もしあれば第２のデータを接続された周辺装置に提供すると共に、もしあれば第１のデータを接続された周辺装置から受信するように構成される。更に、対話エンジンは、周辺装置の第１のセットの入力状態に基づいて、ワークフローの記述からのプロンプトの出力を制御するように更に構成される。
【０００９】
本発明の別の特徴は、マルチモーダルアプリケーションを実行する方法に関連する。この特徴によれば、マルチモーダルアプリケーションから受信されるワークフローの記述が実行される。ワークフローの記述は、複数のワークフローオブジェクトを含む。次に、第１のワークフローオブジェクトのプロンプトは、複数の周辺装置によって出力される。なお、プロンプトは、マルチモーダルアプリケーションのＧＵＩ画面の視覚制御に関連している。更に、この特徴に従って、プロンプトの出力は、複数の周辺装置の入力状態に基づいて制御される。
【００１０】
本発明の更なる特徴は、マルチモーダルアプリケーションを実行するための命令を伝搬するコンピュータ読み取り可能な媒体に関連する。命令は、それの実行によって、その１つ以上のプロセッサが、以下のステップを実行するように配置される。ａ）マルチモーダルアプリケーションから受信されるワークフローの記述を実行すること。ｂ）複数の周辺装置によって第１のワークフローオブジェクトのプロンプトを出力すること。ｃ）複数の周辺装置の入力状態に従ってプロンプトの出力を制御すること。なお、プロンプトは、マルチモーダルアプリケーションのＧＵＩ画面の視覚制御に関連している。
【発明を実施するための最良の形態】
【００１１】
組み込まれると共に、この明細書の一部を構成する添付図面は、発明の実施例を例証し、以下で与えられた実施例の詳細な記述と共に発明の原理を説明するのに役立つ。
【００１２】
本発明の特徴、及び実施例は、データに関する音声及び他のプロンプトの提示を知的に制御するために、実行されたときに多種多様な周辺装置の入力状態を利用するマルチモーダルアプリケーションに関連する。
【００１３】
オーディオヘッドセットに加えて、他の周辺装置が、ユーザによって実行されるべき作業の種類に応じたコンピュータプラットフォームと接続され得る。例えば、バーコードリーダ、及び他のスキャナは、中央コンピュータシステムと双方向で通信するために、単独で利用されることができるか、もしくは、ヘッドセットと結合して利用されることができる。特に、ワイヤレスウェアラブル端末は、そのユーザがそれによって中央コンピュータシステムと通信し得る、タッチスクリーン、ペンディスプレイ（pen display）、及び／またはキーパッドのような追加の周辺装置と接続され得る。本発明の１つの特徴によれば、ワイヤレスウェアラブルプラットホーム上で動作するソフトウェアアプリケーションは、特別なデータ要素のための周辺装置の内のいずれからの入力も受信することを可能にされると共に、同様に、プロンプト及び他のメッセージを様々な周辺装置へ同時に出力することを可能にされる。
【００１４】
特定の実施例において、ワイヤレスウェアラブル端末、または他の種類の計算プラットフォーム上で動作する運用ソフトウェアは、周辺装置との対話を制御し、音声認識、及び音声合成のための対話エンジンの機能、及び能力を実現し、中央コンピュータシステムとの情報の交換を制御する。運用ソフトウェアは、ウェアラブル装置と接続された他の周辺装置からのデータ入力を可能にすると共に、それらの周辺装置から収集された情報入力を協調させる。好ましくは、運用ソフトウェアによって、作業者は、周辺装置からのデータが、まるでデータが音声、またはキーボードによって入力されたかのように、差異がない能力によってリアルタイムで翻訳され得るように、同様に音声データ入力、及び音声出力フィードバックを使用しながら、周辺装置によってデータを入力することが可能になる。
【００１５】
図１は、本発明の実施例に対応している、音声使用可能な（voice-enabled）マルチモーダルアプリケーションを実行することに適当である、典型的なハードウェア環境、及びソフトウェア環境を説明する。特に、図１は、ネットワークを介して、例えば符号１４で示されるＲＦ通信リンクによってワイヤレスウェアラブル端末１２と接続される中央コンピュータ１０を説明する。本発明は、追加のワイヤレスウェアラブル端末１２が制限なしで存在することができると考える。ワイヤレスウェアラブル端末１２、及びネットワーク１４が“ワイヤレス”であると説明されるが、この指定は現実には典型的であると共に、本発明の実施例は、単に、ワイヤレス環境に制限されないが、しかし、従来の有線ネットワーク媒体、及び有線ネットワークプロトコルと同様に、従来のリモートコンピュータを備えることができる。同様に、本発明の実施例は、ここでは、在庫品または倉庫保管の関連のシステムの典型的な環境の中で説明される。この特定の環境は、本発明の適用を制限しないが、しかし、本発明の説明及び理解に関して支援するための具体的な例のこの中への包含を可能にするために選択された。
【００１６】
中央コンピュータ１０、及びワイヤレスウェアラブル端末１２は、各々、例えばキャッシュメモリ、不揮発性またはバックアップメモリ（例えばプログラム可能メモリ、もしくはフラッシュメモリ）、読出し専用メモリ等のあらゆる補足のレベルのメモリと同様に、主記憶装置を含むランダムアクセスメモリ（ＲＡＭ）装置を表すかもしれないメモリ２０、２２に接続された１つ以上のマイクロプロセッサを含む中央演算処理装置（ＣＰＵ）１６、１８を備える。更に、仮想メモリとして使用されるあらゆる記憶容量と同様に、例えば不揮発性記憶装置２４、２６、または別の連結されたコンピュータ上に記憶されるのと同様に、各メモリ２０、２２は、中央コンピュータ１０、及びワイヤレスウェアラブル端末１２のそれぞれの中で、物理的にどこか別の場所に配置されたメモリ記憶装置、例えばＣＰＵ１６、１８のどちらにおいてもプロセッサ内にある、あらゆるキャッシュメモリを含むと考えられ得る。
【００１７】
中央コンピュータ１０、及びワイヤレスウェアラブル端末１２の各々は、外部と情報を通信するために、多くの入力及び出力を受信する。中央コンピュータ１０は、１つ以上のユーザ入力装置（例えば、特にキーボード、マウス、トラックボール、ジョイスティック、タッチパッド、及び／または、マイクロホン）を合体しているユーザインタフェース２８、及びディスプレイ（例えば、特にＣＲＴモニタ、ＬＣＤ表示パネル、及び／または、スピーカー）を備える。ワイヤレスウェアラブル端末１２は、ＬＣＤ表示パネルのようなディスプレイ、ユーザから発話された情報を受けるため、及び発話された命令を音声信号に変換するためのマイクロフォンのような音声入力装置、口語の情報をユーザに対する音声信号として出力するためのスピーカのような音声出力装置、例えば、特にキーボード、タッチスクリーン、及び、ディジタル化用書き込み面（digitizing writing surface）、及び／または、スキャナを含む１つ以上の追加のユーザ入力装置を内蔵するユーザインタフェース３０を備える。音声入力装置、及び音声出力装置は、一般的に、ワイヤレスウェアラブル端末１２のハンズフリーの操作を利用可能にすると共に、ユーザによって身に付けられるヘッドセットに配置される。
【００１８】
中央コンピュータ１０、及びワイヤレスウェアラブル端末１２の各々は、一般的に１つ以上の不揮発性の大容量記憶装置２４、２６、例えば、特にフラッシュメモリ、または他の不揮発性ソリッドステート（solid state）メモリ、フロッピー（登録商標）、または他の交換可能ディスクドライブ、ハードディスクドライブ、直接アクセス記憶装置（ＤＡＳＤ：direct access storage device）、光ドライブ（例えば、ＣＤドライブ、ＤＶＤドライブ等）、及び／またはテープドライブを備えることになる。更に、中央コンピュータ１０、及びワイヤレスウェアラブル端末１２の各々は、それぞれネットワーク１４（例えば、ワイヤレスＲＦ通信ネットワーク）によって、中央コンピュータ１０とワイヤレスウェアラブル端末１２との間での情報の双方向通信を可能にするネットワークインタフェース３２、３４を備える。中央コンピュータ１０、及びワイヤレスウェアラブル端末１２の各々は、当業者によって理解されるように、ＣＰＵ１６、１８とコンポーネント２０〜コンポーネント３４との間を接続する適当なアナログインタフェース及び／またはデジタルインタフェースを備えるということが認識されるべきである。ネットワークインタフェース３２、３４は、それぞれ、中央コンピュータ１０とワイヤレスウェアラブル端末１２との間で情報を伝達するためのトランシーバを備える。
【００１９】
中央コンピュータ１０、及びワイヤレスウェアラブル端末１２の各々は、対応するオペレーティングシステム３６、３８の制御の下で動作すると共に、様々なコンピュータソフトウェアアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、データ構造等（例えば、中央コンピュータ１０に常駐するマルチモーダル開発環境４０、マルチモーダルランタイム環境４２、及びアプリケーション４４、ワイヤレスウェアラブル端末１２に常駐するマルチモーダル環境４７）を実行するか、あるいはそうでなければそれらに依存する。各オペレーティングシステム３６、３８は、コンピュータシステムの動作、及び資源の割り当てを制御するソフトウェアのセットを表す。更に、様々なアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール等は、同様に、例えば、分散コンピューティング環境、もしくはクライアント／サーバコンピューティング環境におけるネットワーク（図示せず）によって、中央コンピュータ１０か、またはワイヤレスウェアラブル端末１２のいずれかに接続された別のコンピュータ内の１つ以上のプロセッサ上で実行することができ、それによって、コンピュータプログラムの機能を実現するのに必要とされる処理は、ネットワークを介して複数のコンピュータに割当てられることができる。
【００２０】
一般的に、本発明の実施例を実現するために実行されたルーチンは、オペレーティングシステムまたは特定のアプリケーションの一部、コンポーネント、プログラム、オブジェクト、命令のモジュールまたはシーケンス、あるいはそれのサブセットとして実行されたか否かに拘らず、“コンピュータプログラムコード”、または単に“プログラムコード”として具体化され得る。プログラムコードは、一般的に、いろいろな時にコンピュータ内の様々なメモリ、及び記憶装置に常駐する１つ以上の命令を備えると共に、プログラムコードは、コンピュータ内の１つ以上のプロセッサにより読み込まれて実行される場合、コンピュータに、本発明の様々な特徴を具体化するステップ、または要素を達成するのに必要なステップを実行させる。更に、本発明が、十分に機能しているコンピュータ、及びコンピュータシステムに照らして、既に説明されたと共に、以下に説明されることになる一方、当業者は、本発明の様々な実施例が様々な形式におけるプログラム製品として分配されることが可能であると共に、本発明が、分配を実際に実行するために使用される特定の種類の信号伝搬媒体に関係なく等しく適用されることを認識する。信号伝搬媒体の例は、特に揮発性及び不揮発性のメモリ装置、フロッピー（登録商標）及び他の交換可能ディスク、ハードディスクドライブ、磁気テープ、光ディスク（例えば、ＣＤ‐ＲＯＭ、ＤＶＤ等）のような記録可能タイプの媒体、及びデジタル通信リンク及びアナログ通信リンクのような伝送タイプの媒体を含むが、しかしそれに限定されない。
【００２１】
更に、以下に示される様々なプログラムコードは、本発明の特定の実施例において実行されるアプリケーションに基づいて特定されることができる。しかしながら、後述するあらゆる特定のプログラム専門用語は利便性のためだけに使用され、従って、本発明が、そのような専門用語によって特定されるか、及び／または意味されるあらゆる特定のアプリケーションにおいて使用することに全く制限されるべきでないということが認識されるべきである。更に、プログラム機能が一般的なコンピュータ内に常駐する様々なソフトウェア階層（例えば、オペレーティングシステム、ライブラリ、ＡＰＩ、アプリケーション、アプレット等）の中に配置されうる様々な方法と同様に、コンピュータプログラム内の無限の数の方法が、ルーチン、手順、方法、モジュール、オブジェクト等に構成されることができることを前提として、本発明がここに示されたプログラム機能の特定の構成、及び割り当てに制限されないということが認識されるべきである。
【００２２】
当業者は、図１において説明される典型的な環境が、本発明を制限することを意図していないということを認識することになる。実際に、当業者は、他の代替えのハードウェア環境、及び／またはソフトウェア環境が本発明の範囲から外れずに使用されることができるということを認識することになる。
【００２３】
本発明の原理に従って、マルチモーダル環境４７が、ワイヤレスウェアラブル端末１２のメモリ２２に常駐するプログラム４６を構成するのと同様に、マルチモーダル開発環境４０、マルチモーダルランタイム環境４２、及びアプリケーション４４は、中央コンピュータ１０のメモリ２０に常駐するプログラムコードを構成する。中央コンピュータ１０は、開発環境４０を実行する開発コンピュータとしての役目を果たすことができるか、または開発環境４０は別個の開発コンピュータ（図示せず）上で実行することができる。各々は、独立型のツールまたは独立型のアプリケーションであり得るか、あるいは例えばマルチモーダルソフトウェアアプリケーションを開発するか、もしくは実行することに適当な機能一式を提供するための他のプログラムコードに統合されることができる。アプリケーション４４、マルチモーダル環境４７、及びプログラム４６は、対応するオペレーティングシステム３６、３８を通じて利用可能にされたコンピュータ資源を利用するユーザによって望まれたタスクを実行する、ソフトウェアのセットである。
【００２４】
図２Ａは、本発明の典型的な実施例に従って実現された開発環境を描写する。開発環境２０２は、プログラマによってマルチモーダルソフトウェアアプリケーション２０４を作成するために使用される。このマルチモーダルアプリケーション２０４は、アプリケーションコード２０６と、ワークフローの記述２０８の両方を含む。ここで更に詳細に説明されたように、ワークフローの記述２０８は、設定可能なオブジェクト２１２、及び再利用可能なオブジェクト２１０を含むことができる。その上、開発環境２０２は、異なるインタフェース要素、及び異なる入出力装置のプログラミングを単純化するために、ツールキットを含むことができる。
【００２５】
ビジュアルラピッド開発環境（Visual rapid development environment）、または統合開発環境（ＩＤＥ：integrated development environments）は、ソフトウェアアプリケーション、特にアプリケーションのためのグラフィカルユーザインタフェース（ＧＵＩ）を開発する際の現在良く知られている補助物である。これらの環境の中で、プログラマは、画面上の様々なＧＵＩ要素を選択すると共に、位置決めすることによって、ＧＵＩ画面を作成する。これらの要素は、ラジオボタン（radio buttons）、テキストエントリフィールド（text entry fields）、ドロップダウンボックス（drop-down boxes）、タイトルバー（title bars）等のようなオブジェクトを含む。ＩＤＥは、その場合に、各特別なＧＵＩオブジェクトを実行するコードシェル（例えば、“Ｃ＋＋”、または“Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）”）を自動的に作成する。コードシェルは、その次に、ＧＵＩオブジェクト及び関連のアプリケーション実行ロジックのパラメータを特に指定するために、プログラマによってカスタマイズされて、完成される。この方法において、ＩＤＥは、アプリケーションの迅速な開発を可能にする。
【００２６】
本発明の実施例は、多種多様な周辺装置からデータを受信することができると共に、多種多様な周辺装置にデータを出力することができるアプリケーション２０４が容易に開発され得る開発環境２０２を提供することによって伝統的なＩＤＥを拡大させる。ＧＵＩの各画面に関して、革新的な統合開発環境２０２は、その画面と対応する“対話”を指定するワークフローの記述２０８を生成する。対話を生成するために、開発環境２０２は、ＧＵＩ画面内の各々の視覚要素（例えば、テキストボックス、ラジオボタン等）と関連付けられた対話ユニットを特定すると共に、対話ユニットを連結する。これらの対話ユニットは、ワークフローの記述の一部として組み込まれた場合に、ワークフローオブジェクトか、またはワークフローアイテムのいずれかと言われると共に、これらの３つの用語は、ここでは同義的に使用される。最終的に、対話、またはワークフローの記述は、ワークフローの記述が、一連の異なるプロンプト、それらの異なるプロンプトに対して期待される入力、及び特別な順序を示すプロンプトの間の連結を含むように、各ＧＵＩ画面に関して生成されると共に、連結された全ての対話ユニットを含む。
【００２７】
本発明の実施例は、独立型の開発環境として作動し得るか、もしくは現存するＩＤＥを拡大させ得る。第２の代替案において、プログラマは、マイクロソフト（登録商標）“Ｖｉｓｕａｌ  Ｃ＋＋（登録商標）”のような従来の環境を使用することによって、ＧＵＩ画面を有するアプリケーション２０６を開発し得る。その結果生じるアプリケーション２０６は、その場合に、ＧＵＩ画面の要素に基づいて、ＧＵＩ画面に関する対話ユニットを生成する拡大された開発環境において変更され得る。これらの対話ユニットは、その次に、順序を指定するために連結され得ると共に、従って対話、またはワークフローの記述２０８が生成される。もう一つの方法として、開発環境は、伝統的なＩＤＥの機能全てを含むが、しかし、更に、ＧＵＩ画面の開発と同時に発生する対話ユニット（及び、その結果生じるワークフローの記述２０８）を生成するためのツールを含むように実現され得る。この代替案によれば、与えられたＧＵＩ画面に関するデータの入力及び出力の複数の様式に対応するために、ワークフローの記述を含む１つのアプリケーションが開発される。
【００２８】
どちらの代替案が実行されるかに関係なく、ＧＵＩ画面を備えるアプリケーション２０６の実行の間、ワークフローの記述２０８は、同様にうまく実行される。ＧＵＩ画面がユーザに提示される場合、データ入力、及びデータ出力の適切な対話が実行されるように、その対応するワークフローの記述が実行される。どの周辺装置が各入力動作、または出力動作に従事することができるかを示す識別表示をワークフローの記述２０８の中に含むことによって、その結果生じる対話は、データを入力するか、または出力するために、様々な周辺装置を容易に利用し得る。アプリケーション、及びワークフローの記述の実行は、中央コンピュータにおいて、または各リモートコンピュータにおいて発生し得る。例えば、ワイヤレス端末は、中央コンピュータからのＧＵＩ画面を表示するのにかろうじて足りる、制限された処理能力を有する。この場合、ワークフローの記述、及びアプリケーションは、分散アプリケーションを実行するための２つのシステムの間の必要なデータ通信と同様に、好ましくは中央コンピュータ上で実行される。その代わりに、リモートコンピュータは、アプリケーションとワークフローの記述の両方を実行するのに十分な、それ自身の処理能力を備えることができる。
【００２９】
アプリケーションの開発を促進するために、開発環境２０２は、様々なプログラマのツールキットを含むことができる。例えば、ＧＵＩ制御ツールキット２２０は、ＧＵＩ画面を作成するために使用され得る多種多様な視覚オブジェクトを容易に実行するために使用され得る。典型的なツールキットは、多分、インデックスを付けられた利用可能なＧＵＩ制御の表示をプログラマに提示するか、そうでなければ配列された利用可能なＧＵＩ制御の表示をプログラマに提示するであろう。プログラマは、その場合に、所望の制御を設置するために、制御の配置を指図し、それを選択すると共に、その次に、作成されたアプリケーションに、その制御の実装を取り込む。
【００３０】
同様に、ＧＵＩ制御の音声制御を可能にするツールキット２２２が提供され、それは、同様にＧＵＩ制御が音声使用可能にされたアプリケーションをプログラマが開発するのを助ける。その使用は、既に説明されたツールキット２２０と類似している。プログラマは、アプリケーション２０６に実装されるＧＵＩ制御を特定し得ると共に、対応する音声制御を可能にする、このツールキット２２２の提供するコードが、ワークフローの記述２０８を生成するために、開発環境２０２に出力される。音声ツールキット２２２の使用は、アプリケーション２０６を構文解析し、ＧＵＩ制御を認識し、対応する制御を求めて音声ツールキット２２２を検索し、そしてワークフローの記述の対応する部分を生成し得る開発環境２０２の自動プリプロセッサによって遂行されるのと同様に、プログラマによって対話型的に遂行され得る。
【００３１】
これらのツールキットに加えて、個別のツールキットが異なる入出力装置に提供され得る。ツールキットの使用を通じて、特定の装置と接続するためのサポートコンポーネント（support components）が事前にプログラムされ得ると共に、毎回それらを作成する必要性なしに、異なるアプリケーションにおいて再使用され得る。例えば、スキャナツールキット２２８は、多くの異なるスキャナのための装置固有の情報を備えることができると共に、プログラマは、多分ランタイムにおいて遭遇すると予測される環境にあるであろう、それらのコンポーネントのみを選択するであろう。代表的なツールキットは、タッチスクリーンツールキット２２４、キーパッドツールキット２２６、スキャナツールキット２２８、（例えば、ネットワーク化された通信コンポーネントを提供するための）通信ツールキット２３０、及びその他のツールキット２３２を備えるであろう。ツールキットの使用によって、プログラマは、特定のアプリケーションのために必要とされるそれらのコンポーネントのみを選択することが可能となる。その結果として、無関係な未使用のコードが存在しないので、アプリケーションのサイズ、及び効率が改善される。
【００３２】
ＩＤＥ２０２は、今までのところ、ビジュアルユーザインタフェース、またはグラフィカルユーザインタフェースに関してのみ説明された。しかしながら、本発明の典型的な実施例は、他のモノモーダルのユーザインターフェースを、マルチモーダルアプリケーションに変換するために利用され得る。例えば、音声応答インタフェースは、電話産業において良く知られていると共に、異なる音声反応に応答する一連の音声プロンプトを明示する。従って、典型的なＩＤＥは、各音声プロンプトを明示するソフトウェアアプリケーションを分析し得ると共に、対応するワークフローオブジェクト、及びワークフロー順序を生成し得る。この新しいワークフローオブジェクトは、単に音声プロンプトに制限されないが、しかし様々な周辺装置のためのＧＵＩ画面制御プロンプト、及び他のプロンプトを含むであろう。従って、ＧＵＩ画面以外のユーザインタフェースを有するアプリケーションは、同様に本発明の実施例によるマルチモーダルアプリケーションに変換され得る。
【００３３】
図３を参照すると、典型的なＧＵＩ画面８６が描写される。この画面は、以下の「数１」ようなオブジェクト、及び機能（feature）の階層的配列であると考えられ得る。
【００３４】
【数１】
2007531069.tif 000003
【００３５】
開発環境２０２の中で、画面８６の視覚要素を実行するコードは、ワークフローの記述を作成するための対話ユニットを生成するために使用され得る。例えば、ＧＵＩ画面８６を音声使用可能にするために、通例のＧＵＩに加えて、音声出力が例えばヘッドセットに供給されるべきであることを明示すると共に、同様に入力がマイクロホンによって音声データとして受信され得ることを明示する、様々な対話ユニットのワークフローの記述が生成されるであろう。従って、ワークフローの記述、または対話は、入力が必要とされる場合に音声プロンプトを含むと共に、次のプロンプトを提供するまで、受信されるべき音声、または他のデータを待つであろう。ＧＵＩ画面要素、または他のアプリケーションロジックの順序に基づいて、対話ユニットは、ＧＵＩ画面８６の順序を再現するために、特定の順番に連結され得る。以下の説明は、音声使用可能にされたアプリケーションのこの特定の例を続ける。しかしながら、他の入力出力モード、または追加の入出力モードが、同様にサポートされ得るであろう。
【００３６】
典型的な対話（要素８８から要素９８まで）が、図３の右側に沿って描写される。ＧＵＩ画面８６が、例えば携帯用コンピュータ１２の画面上で表示されるとき、画面８６と関連付けられたワークフローの記述が実行される。その結果が、図解された対話である。一連のプロンプト（要素８８から要素９８まで）が生成されると共に、各プロンプトの後で、対話は（テキストで提示されたように）ユーザからの入力を待つ。
【００３７】
従って、歓迎プロンプト（welcome prompt）８８は、音声データとして出力されると共に、ユーザは、製品番号を入力することを、命令９０によって促される。その次に、ユーザは、携帯用コンピュータ１２のキーボードまたは他の入力装置によって、もしくは製品番号を発話することによって、製品番号（例えば、ＡＢ１０３７）を入力することができる。それに応じて、次のプロンプト９２が生成されると共に、ＧＵＩ画面８６に関する対話が完了されるまで、このシーケンスが繰り返される。その結果、アプリケーションが実行中であるとき、現在の画面（例えば、画面８６）、及び現在のフィールド（例えば、数量）が存在すると共に、この現在のフィールド及び画面と同期されるのは、関連付けられた対話ユニットである。
【００３８】
図４は、本発明の実施例に従ってＧＵＩ画面を実行するコードからワークフローの記述を作成するための典型的な方法を詳述するフローチャートを説明する。上述のＧＵＩ画面８６は、この方法を説明する間の一例として使用される。この方法におけるＧＵＩ画面オブジェクトの処理は、開発環境によって、自動的に達成されるか、またはプログラマを必要とする対話型セッションにおいて達成される。ステップ４００において、“製品注文書”画面に対応するワークフローの記述が初期化される。
【００３９】
画面８６において遭遇する、もしくは特定される（ステップ４０２）最初のＧＵＩ要素は、画面の見出しテキスト“製品注文書”である。プロセッサは、これが、画面を指定すると共に、同様にその値をも特定し得るテキストフィールドであると認識する。その結果、ワークフローオブジェクト、または対話ユニットが、このＧＵＩ画面要素と対応するステップ４０４において作成される。特に、以下のようなフレーズの空白がＧＵＩ画面要素から抽出された値（すなわち、製品注文書）で満たされる、“＿＿＿画面へようこそ”というフレーズを含む対話ユニットが生成され得る。
【００４０】
従って、ステップ４１０において、対応するＧＵＩ要素の特定のフィールド、及び値から、ワークフローオブジェクトのパラメータが投入され得る。もちろん、ワークフローオブジェクトは、もし、より多い情報、より少ない情報、または異なる情報がワークフローオブジェクトに含まれるように要求される場合に、プログラマがデフォルトで生成されたオブジェクトを修正し得るように設定可能である。好ましい実施例において、比較的複雑でない画面要素である固定的なテキストオブジェクトは、最初の非固定的なテキストオブジェクトに遭遇するまで、連続して配置された固定的なテキストオブジェクトを結合することによって、ステップ４０６、及びステップ４０８で効果的に扱われる。その結果、ステップ４０８において、非固定的なテキストオブジェクト、及び全ての固定的なテキストオブジェクトは、結合されて１つのワークフローオブジェクトになる。
【００４１】
ステップ４１２において、その次に、ワークフローオブジェクトを後継のワークフローオブジェクトと連結することで、リンクが作成される。デフォルト設定によって、ＧＵＩ画面からの次の視覚要素と対応するワークフローオブジェクトに対するリンクが作成される。更に、リンクのデフォルトの活性化条件、すなわち、いつリンクがたどられるかは、入力が受信される時であると定義される。しかしながら、異なるリンクの活性化条件が使用され得る。例えば、たどるべき複数のリンクのうちの１つを決定するために、入力の値が検査され得る。別の例として、画面の他の入力フィールドが検査され得ると共に、もし全ての必要とされた入力フィールドが満たされている場合、１つのリンクがたどられる。そして、いくつかのフィールドがデータを省かれている場合、別のリンクがたどられ得る。代わりに、活性化の基準は、“Ｘ秒”が経過した後で、次のリンクが自動的にたどられるように、タイミングと関連しても良い。更に、活性化の基準は、アプリケーション２０４に埋め込まれたロジックであり得ると共に、対話エンジン２５４は、どのように続くかを決定し、そしてどのワークフローオブジェクトを次にリンクするかを対話エンジン２５４に指示するアプリケーション２０４にデータを伝達する。条件を定義すると共に、それらのそれぞれの結果を指定するための、プログラマに利用可能な技術の幅、及び変化が、ワークフローオブジェクトの間のリンクを定義するために、本発明の実施例の中で利用可能である。
【００４２】
次に、各ＧＵＩ要素に関して、ワークフローオブジェクトが作成されるまで、そのシーケンスが繰り返される。ワークフローオブジェクトの収集物は、ワークフローの記述、または対話と呼ばれると共に、ＧＵＩ画面と対応する。ＧＵＩ制御及びそれらの特別な機能の異なる順列と組み合わせが、生成され得る異なる対話の無限の可能性を提供する一方、図４のフローチャートは、あらゆるＧＵＩ画面に関して使用され得る一般的な方法を詳述する。しかしながら、図４の方法の典型的なアプリケーションを説明するために、いくつかの特定のＧＵＩ要素、及びワークフローオブジェクトが以下で説明される。
【００４３】
図３のＧＵＩ画面８６において、“色”要素は、期待された入力、例えば“赤”、“青”、及び“白”のセットを有するドロップダウンボックスである。対応するワークフローオブジェクトが作成されるとき、これらの期待された入力は、デフォルトのヘルププロンプト（help prompt）として使用され得る。例えば、“色”要素の処理は、“あなたは何色を希望するか”という質問を行う、対応する音声対話を生成することになる。もしユーザが“ヘルプ”と応答する場合、例えば、“利用可能な色は赤、青、白である”と言う追加のプロンプトが作成され得る。前述と同様に、もしいくつかの理由によりそれが与えられた状況において適切ではない場合、プログラマは、デフォルトのヘルププロンプトを再構成し得る。ワークフローオブジェクトは、同様に、ユーザから受け取られた入力が許可されている応答のうちの１つであるか、または入力を再試行するようにユーザをうながさなければならないかどうかを検査するコードを含むことができる。
【００４４】
一般的に、各ＧＵＩ要素が分析されるように、対応するワークフローオブジェクトの適切なプロンプト、可能な入力のセット、及びデフォルトのヘルプ機能が埋め込まれる。通常は、固定的なテキストは、ワークフローオブジェクトのためのプロンプト（この場合、音声出力）になることになり、部品表またはボタン名は、期待される入力になり、そして項目名またはボタン名のリストは、デフォルトのヘルププロンプトとして使用される。
【００４５】
画面８６の中で、“ＯＫ”ボタン１００、及び“キャンセル”ボタン１０２は、たとえ、入力フォーカスがその時に別のフィールドにあるとしても、いつでも活性化され得る。従って、画面８６のようなＧＵＩ画面に関して生成されたワークフローの記述は、いくつかの対話ユニットを、“グローバル”要素として示すことができ、ユーザから受け取られたあらゆる入力は、それがこれらのグローバル要素のうちの１つに関連するかどうかを判定するために評価されなければならない。従って、対話が実行されるとき、たとえ特定の画面の特定のフィールドが現在入力フォーカスを有することができるとしても、ワークフローの記述は、ユーザからの応答がその代りにグローバルな要素のうちの１つを拘束することができる能力を提供する。グローバル要素の別の例は、視覚インタフェース上の入力フィールドと関連付けられたラベルであろう。例えば、画面８６は、“製品番号”、“数量”、“色”等のようなフィールドを有していると共に、ユーザは、単に発話することによって、または、そうでなければ入力装置によりその特定のラベルを指定することによって、フォーカスをこれらのグローバル要素のうちのどれにでも切り替えることができるであろう。応答において、あらゆる受け取られた入力は、そのフィールドと関連付けられるであろう。
【００４６】
開発環境２０２は、同様に、基本的な対話ユニット及びリンクが、更に大きな再利用可能オブジェクトを形成するために一緒にグループ化されることを可能にする。一般的に、再利用可能オブジェクトは、アプリケーション２０６の複数部分において実行されることになるワークフローの記述のいくつかのセグメントをカプセル化するために使用される。この例は、ユーザからの日付／時間情報の取得に関与する対話ユニットか、もしくは情報の具体的な断片に関して遠隔データベースを照会するための対話ユニットを含むであろう。この動作を実行するコードに遭遇するたびに、プログラマは、開発プロセスを繰り返す代りに、記憶装置から再利用可能なオブジェクトを取り出すことができる。再利用可能なオブジェクトの各具体化に対する特定のリンク、または再利用可能なオブジェクトの各具体化からの特定のリンクが異なることになる一方、内部の対話ユニット、及びそれぞれのリンクは同じ状態を維持することになる。
【００４７】
上述のように、ワークフローの記述２０８は、ユーザに出力するための一連のメッセージを含むと共に、入力が受信されると期待される多くの場合を含む。この情報は、どのような周辺装置がワークフローの記述を実行するコンピュータと接続されるかに関係なく、同じ状態を維持する。従って、ワークフローの記述は、発話、音声、スキャナ、キーボード、タッチスクリーンのような多くの異なる様相において入力及び出力を提供するために使用され得る。しかしながら、いくらかの出力は、いくらかの周辺装置に適しておらず、そして、ある入力装置は何らかの入力を提供しないであろう。従って、ワークフローの記述の中の各対話ユニット、またはワークフローオブジェクトは、周辺装置がその対話ユニットに関して使用されるべきであるとの指定を含むことができる。例えば、ワークフローの記述は、“どんな量”というプロンプトが画面プロンプト（例えば、ドロップダウンボックス）及び音声プロンプトとして出力されるべきであるということを反映することができる。しかしながら、ワークフローの記述は、そのプロンプトに関する入力が、画面から、音声応答として、もしくはバーコードスキャナによって取得されることができるということを反映するであろう。特別な周辺装置に対応するためのあらゆる特殊な実行コードは、ワークフローの記述の生成の間に、適切なツールキットから取り出され得る。今説明された入出力装置を明白に指定することに加えて、ワークフローの記述は、それが実行される場合に、全ての周辺装置か、または所定のデフォルトの周辺装置のセットが使用されるように、そのような参照を省略し得る。
【００４８】
一度ワークフローの記述が生成された場合、マルチモーダルの入出力を提供するために、それはアプリケーションと共に実行され得る。典型的なランタイム環境２５０が、図２Ｂで描写される。多くの周辺装置が説明されるが、これらの装置の１つ以上は、本発明の範囲からはずれずに省略され得る。この環境の中で、対話エンジン２５４を用いてマルチモーダルソフトウェアアプリケーション２０４を実行する。例えば、音声使用可能なアプリケーションは、グラフィカルユーザインタフェースばかりでなく、同様に音声ユーザインタフェースも、ユーザに提供することができるであろう。対話エンジン２５４、及びソフトウェアアプリケーション２０４は、同じコンピュータ上、または個別のコンピュータ上で動作し得る。更に、それらは、リモートコンピュータ上、もしくは中央コンピュータ上で動作し得る。
【００４９】
実際上、アプリケーション２０４は、ワークフローの記述２０８を実行すると共に、アプリケーション２０４に対してデータ２５２を返す対話エンジン２５４に、ワークフローの記述２０８を提供する。当業者にとって、アプリケーション２０４が必ずしも全体のワークフローの記述２０８を提供する必要があるとは限らないが、しかし単にワークフローの記述２０８か、またはそれの適切な部分が記憶されるところに対する参照を提供するということは明白であろう。対話エンジン２５４は、ワークフローの記述２０８の実行を制御すると共に、周辺装置とのインタフェースを管理する。これらの周辺装置は、音声出力を提供するための音声合成装置２５８、ＧＵＩを描写するための表示モニタ２６０、そこからデータが取り出され得るか、またはそこにデータが送られ得るリモートコンピュータ２６２、２７４、音声データを獲得すると共に、それを適切なデジタル入力に変換するための音声認識システム２６６、データを入力するため、及びデータを出力するためのタッチスクリーン２６８、キーパッドまたはキーボード２７０、バーコードスキャナまたはＲＦＩＤタグスキャナのようなスキャナ２７２を含むことができる。もちろん、マウス、トラックボール、ジョイスティック、プリンタ、及び他のもののような他の周辺装置が同様に含まれ得る。
【００５０】
周辺装置と接続する１つの典型的な方法は、対話エンジン２５４と周辺装置のためのそれぞれのデバイスドライバとの間を接続するソフトウェアコンポーネント２５６ａ〜２５６ｃ、及びソフトウェアコンポーネント２６４ａ〜２６４ｅの使用を含む。この方法において、対話エンジン２５４は、装置に依存していないと共に、新しい装置に対するサポートを追加することは、単に適切なインタフェースコンポーネントの生成を必要とする。作動中、ソフトウェアコンポーネント２５６ａ〜２５６ｃ、及びソフトウェアコンポーネント２６４ａ〜２６４ｅは、例えば、“ａ）対話エンジン２５４から、その関連する周辺装置に対して出力するために、データ値を受信することができる”と共に、“ｂ）関連する周辺装置によってユーザに中継される、ワークフローオブジェクトのプロンプトを、対話エンジンから受信することができる”。更に、入／出力装置２６４ａ〜２６４ｅは、同様に、対話エンジン２５４に対して、その関連する周辺装置で受信されたデータを送ることができる。
【００５１】
特定のＧＵＩ画面を表示するためにアプリケーション２０４が実行中であるとき、対応するワークフローの記述２０８が対話エンジン２５４によって実行されている。対話エンジン２５４は、最初の対話ユニット、またはワークフローオブジェクトを検索すると共に、その出力を適切な周辺装置に送る。例えば、モニタ２６０上の表示のための一連のテキストは、同様に、音声合成装置２５８によって音声プロンプトに変換されることができる。対話エンジン２５４は、データを出力するように、出力コンポーネントまたは出力装置２５６ａ〜２５６ｃ、及び入／出力装置２６４ａ〜２６４ｅのどちらに命令するかを知る。それは、ワークフローの記述が、プログラマによって指定された通りに、この情報を含むことができるからである。
【００５２】
プロンプトに応答して、関連する周辺装置によって入力が受信されることをソフトウェアコンポーネント２６４ａ〜２６４ｅが判定する場合、この入力は、対話エンジン２５４にとって有益なフォーマットに変換されると共に、対話エンジン２５４に送られる。例えば、ユーザによって音声応答が音声認識システム２６６に提供されることができる。この発話データは、発話を認識するために分析されるデジタル表現に変換されると共に、一般的に発話データのアスキー（ASCII）表現に変換される。いくらかの場合において、入力値の期待されたセットがあると共に、アスキーデータは、セットのどの構成要素が入力として受信されたかを判定するために、このセットと比較され得る。他の場合において、アスキーデータは、単に対話エンジン２５４に送られる。
【００５３】
一度対話エンジン２５４が入力を受信すると、対話エンジン２５４は、どのようにワークフローの記述２０８を実行し続けるかを決定する。入力は有効ではないかもしれないと共に、対話エンジン２５４は、出力として現在のプロンプト、恐らくはヘルププロンプトを再送する必要があるかもしれない。入力の単なる受領は、リンクされる後継のワークフローオブジェクトに対話エンジン２５４を移動させるかもしれない。またはその代りに、入力データは、複数の可能なリンクのうちのいずれが続けられるべきであるかを判定するために、対話エンジン２５４によって分析され得る。更に、対話エンジン２５４は、アプリケーションの特定のロジック（例えば、在庫システムを更新すること）が達成され得るように、データ２５２をアプリケーション２０４に渡す。
【００５４】
このシーケンスは、新しいワークフローオブジェクトが検索されて実行される場合、それ自体を繰り返す。現在の画面に関する対話が終わるとき、アプリケーション２０４は、異なるＧＵＩ画面をおそらく検索することになると共に、新しいＧＵＩ画面と対応する新しいワークフローの記述によって、全体の処理は、それ自体を繰り返すことができる。このシーケンスは、新しいワークフローオブジェクトが検索されて実行される場合、それ自体を繰り返す。現在の画面に関する対話が終わるとき、アプリケーション２０４は、異なるＧＵＩ画面をおそらく検索することになると共に、新しいＧＵＩ画面と対応する新しいワークフローの記述によって、全体の処理は、それ自体を繰り返すことができる。その代りに、全体のワークフローの記述２０８は、１つのワークフローオブジェクトが、現在の画面の別のワークフローオブジェクトに単に連結しないが、しかし、たとえその全てがワークフローの記述に含まれる異なる画面であっても連結し得るように、マルチ画面のアプリケーションに関連し得る。本発明の実施例は、いずれの方法で設計されるアプリケーションでも動作可能である。
【００５５】
本発明の様々な実施例において、入力されるデータは、対話エンジン２５４にばかりではなく、他の周辺装置にも提供され得る。図５は、上述のように提供された全体の説明より更に詳述される対話エンジン２５４の典型的な動作を提供する。図５のフローチャートは、プロンプトが適切な周辺装置に出力されると共に、対話エンジン２５４が、そのプロンプトに応答する入力を受信するのを待っていると仮定する。
【００５６】
現在のワークフローオブジェクトによって関係させられた入／出力装置ソフトウェアコンポーネント２６４ａ〜２６４ｅは、入力がその関連する周辺装置で受信されたことを検知すると共に、対話エンジンに合図する。当業者は、入力が利用可能であることを判定するために、ポーリングベースのメカニズム、または割込み駆動のメカニズムが、対話エンジン、及び入／出力装置またはソフトウェアコンポーネント２６４ａ〜２６４ｅによって使用され得ると認識するであろう。ステップ３００において、対話エンジンが入力を受信する。この時点で、対話エンジン２５４は、受信された入力を、ステップ３０１において、出力装置２５６ａ〜２５６ｃ、及び入／出力装置２６４ａ〜２６４ｅのいくつか、または全部に対して転送することができる。
【００５７】
次に、ステップ３０２において、対話エンジンは、現在のワークフローオブジェクトに関するリンク活性化基準に基づいて、その入力によって対話エンジンを後継のワークフローオブジェクトに進ませるべきであるかどうかを判定する。もしそうでなければ、その場合に、受信された入力の処理は完了する。
【００５８】
しかしながら、もしそのワークフローが進むべきであるならば、多くのステップが実行され得る。ステップ３０４において、対話エンジンは、アクティブな入力ソフトウェアコンポーネント２６４ａ〜２６４ｅの各々に、受信された入力を通知する。これらの装置は、その場合に、ある他の周辺装置によって受信された入力値をそれらの関連する周辺装置に“表示する”ようにさせることを決定し得る。例えば、表示画面８６上の“色”フィールドは、たとえ、ユーザがそれを打ち込む（もしくはマウスクリックによってそれを選択する）代りに、応答を発話したとしても、テキスト“赤”によって更新され得る。ワークフローの記述において指定されたあらゆる出力装置２５６ａ〜２５６ｃは、それらの表示が更新され得るように、同様に入力値も同様に提供され得る。
【００５９】
ステップ３０６において、対話エンジンは、入力装置２６４ａ〜２６４ｅに、現在の状態、またはワークフローオブジェクトがもはやアクティブではなく、そして応答において、これらのコンポーネントが、それらのそれぞれの周辺装置においてデータが受信されることを待つのを止めることができると指示する。
【００６０】
対話エンジンは、その場合に、出力装置２５６ａ〜２５６ｃから出力されるべきプロンプトを生成する次のワークフローオブジェクトを検索する。対話エンジンは、その次に、ステップ３０８において、それらの入力装置２６４ａ〜２６４ｅに、入力データの監視を始めるために、新しいワークフローオブジェクトに関してアクティブになるように指示し得る。
【００６１】
上述の処理は多くの個々のシーケンシャルステップとして説明されたが、本発明の実施例は、入力及びデータを処理しているとき、ワークフローの記述の全体、もしくは少なくとも重要な部分を利用することを意図する。例えば、ワークフローの記述は、ＧＵＩインタフェースの文法、及び内容に関する情報を対話エンジン２５４に提供する。この情報に関して、対話エンジンは、それが“ＯＫ”ボタン１００または“キャンセル”ボタン１０２のようなグローバルな項目と関連するかどうかを判断するために、たとえこれらの項目が現在入力フォーカスを有していないかもしれないとしても、あらゆる入力を調査することができる。
【００６２】
特定のマルチモーダルソフトウェアアプリケーションに関して、ユーザは、繰り返される使用によって経験豊かになると共に、プロンプト、及びそれらの順序を熟知するようになるであろう。しかしながら、初心者ユーザは、同様にアプリケーションを使用すると共に、次にどのデータが必要とされるかを知るために、プロンプトに頼ることになる。従って、初心者ユーザを助ける長いプロンプト、もしくは詳細なプロンプトは、実際に全体のプロンプトを聞く必要がない経験豊かなユーザの邪魔をする。
【００６３】
従って、本発明の典型的な実施例は、ユーザがプロンプトの提示の間に入力を行うことができるバージイン（barge-in）機能を備える。例えば、発話プロンプトが音声合成装置２５８上で出力されている間に、ユーザは、適切な応答を発話することによって、プロンプトを中断し得る。その結果、音声認識システム２６６は、対話エンジン２５４に入力を通知すると共に、次に、対話エンジン２５４は、進行中のプロンプトを終了するように、音声合成装置２５８を制御する。受信された入力に基づいて、次のプロンプトが、ワークフローの記述に従って、対話エンジン２５４により出力される。
【００６４】
“バージイン”機能は、発話による応答のみに制限されない。代わりに、あらゆる装置からの入力、または所定の装置だけからの入力は、プロンプトを中断して、終了するために効果的であり得る。
【００６５】
アプリケーションの開発者が中断されることを望まないかもしれない、いくつかのプロンプトがある。例えば、データを入力するための領域に達するために、ユーザに完全に下端までスクロールすることを要求するＧＵＩ画面があるかもしれない。これらの場合において、プロンプトは、ワークフローの記述内でプライオリティプロンプト（優先されるプロンプト）として指定され得る。対話エンジン２５４は、そのようなプロンプトを実行する間、プロンプトをそれが終わる前に終了するための“バージイン”入力を許可しないことになる。プロンプトが完了した後で、プロンプトの間に受信された“バージイン”入力は、まだ使用され得るか、もしくは、それは、ユーザにデータを再入力させることを強要するために、廃棄され得る。
【００６６】
いくらかの場合において、ユーザは、たとえプロンプトが提示される前でも入力を行うように、プロンプトについて十分に精通している状態になり得る。例えば、“性別は？”、そしてその後に“髪の毛の色は？”のような２つの異なるプロンプトを必要とする代わりに、ユーザは、最初のプロンプトを聞いたら、単に“男性−ブラウン”と答えることができる。従って、第２のプロンプトは不必要になる。同様に、周辺装置は、一度に１を超えるデータを入力するために使用され得る。例えば、倉庫における部品の場所は、横列番号（整数）、シェルフ識別子（４文字変数）、及び貯蔵所位置（別の整数）を含むことができる。作業者がこの場所から部品を選ぶとき、彼らは、３つの個別のプロンプトになる３つの個別のワークフローオブジェクトを必要とするであろう、全部で３つの情報に促されるかもしれない。しかしながら、貯蔵所は、作業者が、同時に３つのデータ全てを容易に入力するためにスキャンすることができるバーコードラベルを有するかもしれない。従って、作動中、対話エンジンは、“横列の位置を特定してください？”と類似したプロンプトを生成する。応答において、スキャナ２７２のための入／出力装置２６４ｄは、３つの情報がスキャナから受信されるということを認識する。入／出力装置２６４ｄは、その場合に、３つのデータが、これらのデータに関する値と共に提供されつつあることを、対話エンジン２５４に通知し得る。対話エンジン２５４が、利用可能なワークフローの記述からの連結情報を有しているので、対話エンジン２５４は、データを現在のプロンプトと次のプロンプトの２つのプロンプトに結び付けると共に、受信データ全てを反映するために、あらゆる装置２５６ａ〜２５６ｃ、２６４ａ〜２６４ｅを更新することができる。更に、対話エンジンは、既に受信されたデータに関するあらゆるプロンプトを省略すると共に、データが受信されなかった次のワークフローオブジェクトを進め得る。
【００６７】
本発明の典型的な実施例において、マルチモーダルソフトウェアアプリケーションは、プロンプトホールドオフ（prompt-holdoff）として知られている、別の機能を備えることができる。タッチスクリーン２６８のような装置は、リモートコンピュータ２７４が提供できるような入力、及び出力を提供することができる。従って、対話エンジン２５４がプロンプトを出力し始めるようにそれらに命令するときでさえも、入力はこれらの装置において受信されている途中であるかもしれない。入／出力装置２６４ａ〜２６４ｅ、対話エンジン２５４、または出力装置２５６ａ〜２５６ｃは、全ての入力動作が終了するまで、あらゆるプロンプトの開始を阻止するように構成され得る。その結果、以前のプロンプト、または不注意に入力されたデータに関連付けられた入力は、現在のプロンプトに誤って関連付けられない。同様に、対話エンジンは、入力が、出力されようとしていたプロンプトに対する適切な応答であるかどうかを判定し得る。もしそうであるならば、その場合に、対話エンジンは、アプリケーション２０４に対して応答を送出し、現在のプロンプトを省略すると共に、ワークフローの記述から次のプロンプトを出力することができる。
【００６８】
ホールドオフプロンプトに対するこの能力は、ちょうど入力が受信されている装置に特有であり得るか、もしくは、その代りに、あらゆる装置において、その入力が終了するまで、プロンプトは生成されることを阻止され得る。
【００６９】
図６のフローチャート６００は、周辺装置の入力状態に基づいてプロンプトの出力を理知的に制御する１つの典型的な方法を描写する。このような方法で、音声プロンプトの送出及び受信は、他のプロンプトと同様に、他の周辺装置において受信された音声応答、及び音声入力に従って動的に制御され得る。従って、音声入力のみの環境において良く知られるようになったプロンプト制御能力は、多種多様な周辺装置による入出力を扱うことができる、ここに示されたマルチモーダルソフトウェアアプリケーションに含まれる。
【００７０】
ステップ６０２において、周辺装置が、何らかの入力がそれらにおいて受信されているかどうかを判定するためにチェックされる。もしそうであるならば、その場合に、ステップ６０４の遅延期間の後に、それらの状態が再びチェックされる。入力が受信されていないとき、ステップ６１０において、対話エンジンによって現在のプロンプトが出力される。周辺装置は、ステップ６０６において、プロンプトのこの出力と同時に起こる入力に関して監視されると共に、受信された場合には、ステップ６０８において、プロンプトの出力を中断する。いくらかのプロンプトは、中断不可能であると指定されることができると共に、そのような場合において、対話エンジンは、ステップ６０８によって生成された中断信号を無視することになる。
【００７１】
ステップ６１２において、入力が受信される場合、プロンプトが出力されているとき、またはプロンプトが出力され終えた後のいずれかで、入力を受信することが発生し得る。ステップ６１６において、対話エンジンは、どのくらいの異なる応答がその中に含まれるかを判定するために、入力を評価する。ステップ６１８において、対話エンジンは、その場合に、ワークフローの記述からのプロンプトに、各異なる応答を結び付ける。次に、ステップ６２０において、対話エンジンは、ワークフローの記述から、まだ応答されていない次のプロンプトを特定すると共に、ステップ６０２に戻ることによって、プロンプトを提示するシーケンスを繰り返す。結局、全てのプロンプトが答えられると、フローチャートはステップ６２２で終了することができる。図６において示されたように、フローチャートは、プロンプトホールドオフ（prompt-holdoff）、バージイン（barge-in）、トークアヘッド（talk-ahead）に分類された部分を含む。本発明の実施例は、プロンプトの知的な制御を達成する際、全ての３つの能力、または単にこれらの能力のサブセットを含むことを意図する。
【００７２】
このように、本発明が様々な実施例の記述で説明されたと共に、これらの実施例が非常に詳細に説明された一方で、そのような詳細に対して付加されたクレームの範囲を限定するか、または何らかの方法で制限することは、出願人の意図ではない。追加の利点及び修正が、当業者には容易に明らかになる。それ故に、更に広い特徴における発明は、従って特定の詳細な記述、代表的装置及び方法、そして示されると共に説明された実例に制限されない。その結果、出願人の一般的な本発明概念の精神または範囲からは、はずれることなく、そのような詳細な記述からは、はずれるかもしれない。
【００７３】
例えば、ワイヤレス端末を包含する典型的な動作環境の詳細な記述が示された。しかしながら、本発明の実施例は、同様に、ＬＡＮのような有線ネットワークメディアによって接続されたコンピュータを意図するか、もしくはインターネットまたは他のＷＡＮ上の有線ネットワークメディアによって接続されたコンピュータでさえも意図している。同様に、遠隔端末装置の処理能力は変化すると共に、ダム端末（dumb terminals）、シンクライアント（thin clients）、ワークステーション、及びサーバクラスのコンピュータを含むことができる。同様に、対話エンジン、及びＧＵＩアプリケーションは、ネットワーク機能を持たない独立型コンピュータ上で利用され得る。
【図面の簡単な説明】
【００７４】
【図１】ある意味では本発明に一致する、音声使用可能なアプリケーションを作成することが可能である開発コンピュータ、及び音声使用可能なアプリケーションを実行することが可能であるワイヤレスのウェアラブル端末における、主要なハードウェアコンポーネント、及びソフトウェアコンポーネントを説明するブロック図である。
【図２Ａ】典型的なマルチモーダルアプリケーション開発システムの機能的な要素を描写するブロック図である。
【図２Ｂ】典型的なマルチモーダルアプリケーション実行環境の機能的な要素を描写するブロック図である。
【図３】ウェアラブル計算装置のメイン表示画面を示すブロック図である。
【図４】ワークフローの記述オブジェクトのセットを作成するためのＧＵＩオブジェクトの前処理を説明するフローチャートである。
【図５】入力装置からの受信入力に応答して対話エンジンによって実行される動作を説明するフローチャートである。
【図６】周辺装置の入力状態に基づいてプロンプトの出力を理知的に制御する１つの典型的な方法を説明するフローチャートである。
【符号の説明】
【００７５】
１０    中央コンピュータ
１２    ワイヤレスウェアラブル端末
１４    ネットワーク（ＲＦ通信リンク）
１６、１８    中央演算処理装置（ＣＰＵ）
２０、２２    メモリ
２４、２６    不揮発性記憶装置
２８    ユーザインタフェース
３０    ユーザインタフェース
３２、３４    ネットワークインタフェース
３６、３８    オペレーティングシステム
４０    マルチモーダル開発環境
４２    マルチモーダルランタイム環境
４４    アプリケーション
４６    プログラム
４７    マルチモーダル環境
８６    ＧＵＩ画面
２０２    開発環境
２０４    マルチモーダルソフトウェアアプリケーション
２０６    アプリケーションコード
２０８    ワークフローの記述
２１０    再利用可能なオブジェクト
２１２    設定可能なオブジェクト
２２０    ＧＵＩ制御ツールキット
２２２    音声制御を可能にするツールキット
２２４    タッチスクリーンツールキット
２２６    キーパッドツールキット
２２８    スキャナツールキット
２３０    通信ツールキット
２３２    その他のツールキット
２５４    対話エンジン
２５６ａ〜２５６ｃ    出力装置
２５８    音声合成装置
２６０    表示モニタ
２６２、２７４    リモートコンピュータ
２６４ａ〜２６４ｅ    入／出力装置
２６６    音声認識システム
２６８    タッチスクリーン
２７０    キーパッドまたはキーボード
２７２    スキャナ
【図１】
2007531069.tif 000004
【図２Ａ】
2007531069.tif 000005
【図２Ｂ】
2007531069.tif 000006
【図３】
2007531069.tif 000007
【図４】
2007531069.tif 000008
【図５】
2007531069.tif 000009
【図６】
2007531069.tif 000010
【手続補正書】
【提出日】平成18年3月14日(2006.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチモーダルソフトウェアアプリケーションを実行するためのシステムであって、
周辺装置の第１のセットから入力される第１のデータを受信すると共に、周辺装置の第２のセットに対して第２のデータを出力するように構成される前記マルチモーダルソフトウェアアプリケーションと、
前記マルチモーダルソフトウェアアプリケーションと通信する対話エンジンと、
前記第１のセット及び前記第２のセットの中の各周辺装置と接続された各インタフェースコンポーネントとを具備し、
前記対話エンジンが、前記マルチモーダルソフトウェアアプリケーションから受信されたワークフローの記述を実行すると共に、前記マルチモーダルソフトウェアアプリケーションに対して前記第１のデータを提供するように構成されると共に、更に、前記ワークフローの記述からのプロンプトの出力を、前記周辺装置の第１のセットの入力状態に基づいて制御するように構成され、
各インタフェースコンポーネントが、もしあれば前記第２のデータを接続された前記周辺装置に提供すると共に、もしあれば前記第１のデータを接続された前記周辺装置から受信するように構成される
ことを特徴とするシステム。
【請求項２】
前記制御が、もし前記プロンプトが出力されている間に前記第１のデータが受信される場合、前記プロンプトを中断する処理を含む
ことを特徴とする請求項１に記載のシステム。
【請求項３】
前記制御が、もし前記周辺装置の第１のセットのうちの１つが前記第１のデータを受信している場合、前記プロンプトの出力を延期する処理を含む
ことを特徴とする請求項１に記載のシステム。
【請求項４】
前記制御が、
前記第１のデータが前記プロンプト及び次のプロンプトに関係すると判定する処理と、
前記第１のデータの一部分を前記プロンプトと結合させ、前記第１のデータの他の部分を前記次のプロンプトと結合させる処理と
を含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記制御が、前記次のプロンプトの出力を無効にする処理を更に含む
ことを特徴とする請求項４に記載のシステム。
【請求項６】
前記制御が、もし前記プロンプトが中断不可能であると指定される場合、前記プロンプトの中断及び終了を阻止する処理を更に含む
ことを特徴とする請求項２に記載のシステム。
【請求項７】
前記周辺装置の第１のセットは、音声認識システム、無線周波数識別子スキャナ、バーコードスキャナ、タッチスクリーン、キーパッド、及びコンピュータのうちの１つ以上を含む
ことを特徴とする請求項１に記載のシステム。
【請求項８】
前記周辺装置の第２のセットは、音声合成システム、表示モニタ、及びコンピュータのうちの１つ以上を含む
ことを特徴とする請求項１に記載のシステム。
【請求項９】
マルチモーダルアプリケーションを実行するための方法であって、
前記マルチモーダルアプリケーションから受信されたワークフローの記述を実行するステップと、
複数の周辺装置によって第１のワークフローオブジェクトのプロンプトを出力するステップと、
前記複数の周辺装置の入力状態に従って前記プロンプトの出力を制御するステップとを具備し、
前記ワークフローの記述が、複数のワークフローオブジェクトを含み、
前記プロンプトが前記マルチモーダルアプリケーションに関連している
ことを特徴とする方法。
【請求項１０】
前記プロンプトが、前記マルチモーダルアプリケーションのＧＵＩ画面の視覚制御に関連している
ことを特徴とする請求項９に記載の方法。
【請求項１１】
前記制御するステップが、
前記出力するステップが完了する前にデータを受信するステップと、
前記データの受信に応答して、前記出力するステップを終了するステップとを含み、
それによって、前記プロンプトのあらゆる残り部分が出力されない
ことを特徴とする請求項９に記載の方法。
【請求項１２】
前記出力するステップが、音声プロンプトを出力するステップを含み、
前記受信するステップが、音声認識システムから音声データを受信するステップを含む
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記データが、前記複数の周辺装置のうちの１つから受信される
ことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記プロンプトが中断不可能であると指定されたかどうかを判定するステップと、
前記プロンプトの終了を阻止するステップと
を更に具備することを特徴とする請求項１１に記載の方法。
【請求項１５】
前記データが所定の前記周辺装置から受信される場合、前記終了するステップを実行するステップと、
もし入力が所定の前記周辺装置以外から受信される場合、前記終了するステップを省略するステップと
を更に具備することを特徴とする請求項１１に記載の方法。
【請求項１６】
前記制御するステップが、
前記プロンプトに応答して、前記プロンプト及び第２のワークフローオブジェクトに関連するデータを受信するステップと、
前記データの一部分を前記第１のワークフローオブジェクトと結合させ、前記データの他の部分を前記第２のワークフローオブジェクトと結合させるステップと
を含むことを特徴とする請求項９に記載の方法。
【請求項１７】
前記第２のワークフローオブジェクトに関連する次のプロンプトの出力を阻止するステップを更に具備する
ことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記データが、前記第１のワークフローオブジェクト、及び複数の他のワークフローオブジェクトに関連する
ことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記制御するステップが、
前記複数の周辺装置のうちの１つにおいてデータを受信するステップと、
前記データを受信しなくなるまで、前記プロンプトを出力するステップを延期するステップと
を含むことを特徴とする請求項９に記載の方法。
【請求項２０】
前記延期するステップが、
前記プロンプトを１つの前記周辺装置に対して出力することを延期するステップと、
前記プロンプトを前記複数の周辺装置のうちの他のものに対して遅延なしで出力することを許可するステップと
を含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記データが前記プロンプトに関連するかどうかを判定するステップと、
もし前記データが前記プロンプトに関連する場合、前記プロンプトの出力を省略するステップと
を更に具備することを特徴とする請求項１９に記載の方法。
【請求項２２】
マルチモーダルアプリケーションを実行するための命令を伝搬するコンピュータ読み取り可能な媒体であって、
前記命令が、それの実行によって、
前記マルチモーダルアプリケーションから受信されたワークフローの記述を実行するステップと、
複数の周辺装置によって第１のワークフローのプロンプトを出力するステップと、
前記複数の周辺装置の入力状態に従って前記プロンプトの出力を制御するステップとを１つ以上のプロセッサに実行させるように配置され、
前記ワークフローの記述が、複数のワークフローオブジェクトを含み、
前記プロンプトが、前記マルチモーダルアプリケーションのＧＵＩ画面の視覚制御に関連する
ことを特徴とするコンピュータ読み取り可能な媒体。
【請求項２３】
前記命令が、それの実行によって、
前記出力するステップが完了する前にデータを受信するステップと、
前記データの受信に応答して、前記出力するステップを終了するステップとを１つ以上のプロセッサに更に実行させるように配置され、
それによって、前記プロンプトのあらゆる残り部分が出力されない
ことを特徴とする請求項２２に記載のコンピュータ読み取り可能な媒体。
【請求項２４】
前記命令が、それの実行によって、
前記プロンプトに応答して、前記プロンプト及び第２のワークフローオブジェクトに関連するデータを受信するステップと、
前記データの一部分を前記第１のワークフローオブジェクトと結合させ、前記データの他の部分を前記第２のワークフローオブジェクトと結合させるステップとを１つ以上のプロセッサに更に実行させるように配置される
ことを特徴とする請求項２２に記載のコンピュータ読み取り可能な媒体。
【請求項２５】
前記命令が、それの実行によって、
前記複数の周辺装置のうちの１つにおいてデータを受信するステップと、
前記データを受信しなくなるまで、前記プロンプトを出力するステップを延期するステップとを１つ以上のプロセッサに更に実行させるように配置される
ことを特徴とする請求項２２に記載のコンピュータ読み取り可能な媒体。
【請求項２６】
マルチモーダルソフトウェアアプリケーションを実行するためのシステムであって、
ａ）前記マルチモーダルソフトウェアアプリケーション、
ｂ）第１のデータを受信するための周辺装置の第１のセット、
ｃ）第２のデータを出力するための周辺装置の第２のセット、
と通信する対話エンジンを具備し、
前記対話エンジンが、前記マルチモーダルソフトウェアアプリケーションに関連するワークフローの記述を実行するように構成されると共に、更に、前記ワークフローの記述からのプロンプトの出力を、前記周辺装置の第１のセットの入力状態に基づいて制御するように構成され、
前記ワークフローの記述を実行する処理が、前記ワークフローの記述から前記第２のデータを生成すると共に、前記マルチモーダルソフトウェアアプリケーションに対して前記第１のデータを提供する処理を含む
ことを特徴とするシステム。
【請求項２７】
前記プロンプトが、発話プロンプトである
ことを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記制御が、もし前記プロンプトが出力されている間に前記第１のデータが受信される場合、前記プロンプトを中断する処理を含む
ことを特徴とする請求項２６に記載のシステム。
【請求項２９】
前記制御が、もし前記周辺装置の第１のセットのうちの１つが前記第１のデータを受信している場合、前記プロンプトの出力を延期する処理を含む
ことを特徴とする請求項２６に記載のシステム。
【請求項３０】
前記制御が、
前記第１のデータが前記プロンプト及び次のプロンプトに関係すると判定する処理と、
前記第１のデータの一部分を前記プロンプトと結合させ、前記第１のデータの他の部分を前記次のプロンプトと結合させる処理と
を含むことを特徴とする請求項２６に記載のシステム。
【請求項３１】
前記制御が、前記次のプロンプトの出力を無効にする処理を更に含む
ことを特徴とする請求項３０に記載のシステム。
【請求項３２】
前記制御が、もし前記プロンプトが中断不可能であると指定される場合、前記プロンプトの中断及び終了を阻止する処理を更に含む
ことを特徴とする請求項２８に記載のシステム。
【請求項３３】
前記周辺装置の第１のセットは、音声認識システム、無線周波数識別子スキャナ、バーコードスキャナ、タッチスクリーン、キーパッド、及びコンピュータのうちの１つ以上を含む
ことを特徴とする請求項２６に記載のシステム。
【請求項３４】
前記周辺装置の第２のセットは、音声合成システム、表示モニタ、及びコンピュータのうちの１つ以上を含む
ことを特徴とする請求項２６に記載のシステム。
【国際調査報告】
2007531069.tif 000011
2007531069.tif 000012
2007531069.tif 000013