(57)【特許請求の範囲】
【請求項１】
複数種類のモダリティを有する情報処理装置であって、
メモリに記憶されるデータに基づいて、当該情報処理装置が実行する処理を制御する制御手段と、
当該情報処理装置が実行する処理の処理手順を示す対話記述と、前記対話記述と独立に分離して構成される当該情報処理装置のモダリティを示すモダリティ記述と、前記モダリティ記述と前記対話記述とを対応付けるバインド記述とを示す記述データを前記メモリに記憶する記憶手段と、
前記制御手段によって、前記メモリに記憶された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド手段と、
前記制御手段によって、当該情報処理装置を前記メモリに記憶された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド手段によって該入出力処理と対応付けられたモダリティとの間で受け渡す制御を実行する実行手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記対話記述は、入出力の処理単位である、１つもしくは複数の最小対話要素から構成され、前記最小対話要素は、０個もしくは１個の入力要素と０個もしくは１個以上の出力要素を含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記最小対話要素は、イベントに関するイベント情報の記述を含む
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記最小対話要素は、当該最小対話要素への入力に対するアクションに関するアクション情報の記述を含む
ことを特徴とする請求項２または請求項３に記載の情報処理装置。
【請求項５】
前記最小対話要素は、active／inactiveの２つのどちらかの状態を有し、かつ当該最小対話要素は、前記アクション情報として、自身または別の最小対話要素をactivate／deactivateする記述を含む
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記出力要素は、その出力内容を示す記述を含む
ことを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記モダリティ記述は、前記モダリティのクラスの定義、継承、クラス間の階層関係、前記クラスのインスタンスの定義を示す各記述の内の少なくともいずれかを含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記モダリティ記述中の各モダリティは、active／inactiveの２つのどちらかの状態を有する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記バインド記述は、１つまたは複数のモダリティを、１つまたは複数の入力要素に結び付けるための記述であり、かつ１つの入力要素に対して複数のモダリティを結び付ける場合、それらのモダリティの組み合わせ方の記述を含む
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
前記バインド記述は、１つまたは複数のモダリティを、１つまたは複数の出力要素に結び付けるための記述であり、かつ１つの出力要素に対して複数のモダリティを結び付ける場合、それらのモダリティの組み合わせ方の記述を含む
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１１】
前記バインド記述は、モダリティと出力要素への結び付けを示す記述であるバインド要素中にその出力内容を示す記述と、出力要素に結び付けられたモダリティごとにその出力内容を示す記述の少なくとも一方を含み、
前記バインド要素中に記述された出力内容は、その結び付けの対象である出力要素中に記述された出力内容より優先し、また、前記バインド要素中でモダリティごとに記述された出力内容は、該バインド要素中に記述された出力内容より優先する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１２】
前記バインド記述の各バインド要素は、結び付けの対象であるモダリティをactivate／deactivateする記述を含む
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
制御対象機器の操作機器として動作する情報処理装置であって、
メモリに記憶されるデータに基づいて、当該情報処理装置が実行する処理を制御する制御手段と、
前記制御対象機器が実行する処理の処理手順を示す対話記述と独立に分離して構成される、当該情報処理装置のモダリティを示すモダリティ記述及び前記モダリティ記述と前記対話記述とを対応付けるバインド記述を示す記述データを前記メモリに記憶する記憶手段と、
前記制御手段によって、前記メモリに記憶された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド手段と、
前記制御手段によって、前記制御対象機器を前記メモリに記憶された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド手段によって該入出力処理と対応付けられたモダリティとの間で受け渡す制御を実行する実行手段と
を備えることを特徴とする情報処理装置。
【請求項１４】
複数種類のモダリティを有する情報処理装置を制御する制御方法であって、
当該情報処理装置の処理手順を示す対話記述と、前記対話記述と独立に分離して構成される当該情報処理装置のモダリティを示すモダリティ記述と、前記モダリティ記述と前記対話記述とを対応付けるバインド記述とを示す記述データを記憶するメモリから、該記述データを、当該情報処理装置が実行する処理を制御する制御部によって読み出す読出工程と、
前記制御部によって、前記メモリから読み出された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド工程と、
前記制御部によって、当該情報処理装置を前記メモリから読み出された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド工程によって該入出力処理と対応付けられたモダリティとの間で受け渡すよう制御する制御工程と
を備えることを特徴とする制御方法。
【請求項１５】
前記対話記述は、入出力の処理単位である、１つもしくは複数の最小対話要素から構成され、前記最小対話要素は、０個もしくは１個の入力要素と０個もしくは１個以上の出力要素を含む
ことを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項１６】
前記最小対話要素は、イベントに関するイベント情報の記述を含む
ことを特徴とする請求項１５に記載の情報処理装置の制御方法。
【請求項１７】
前記最小対話要素は、当該最小対話要素への入力に対するアクションに関するアクション情報の記述を含む
ことを特徴とする請求項１５または請求項１６に記載の情報処理装置の制御方法。
【請求項１８】
前記最小対話要素は、active／inactiveの２つのどちらかの状態を有し、かつ当該最小対話要素は、前記アクション情報として、自身または別の最小対話要素をactivate／deactivateする記述を含む
ことを特徴とする請求項１７に記載の情報処理装置の制御方法。
【請求項１９】
前記出力要素は、その出力内容を示す記述を含む
ことを特徴とする請求項１５に記載の情報処理装置の制御方法。
【請求項２０】
前記モダリティ記述は、前記モダリティのクラスの定義、継承、クラス間の階層関係、前記クラスのインスタンスの定義を示す各記述の内の少なくともいずれかを含む
ことを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項２１】
前記モダリティ記述中の各モダリティは、active／inactiveの２つのどちらかの状態を有する
ことを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項２２】
前記バインド記述は、１つまたは複数のモダリティを、１つまたは複数の入力要素に結び付けるための記述であり、かつ１つの入力要素に対して複数のモダリティを結び付ける場合、それらのモダリティの組み合わせ方の記述を含む
ことを特徴とする請求項１６に記載の情報処理装置の制御方法。
【請求項２３】
前記バインド記述は、１つまたは複数のモダリティを、１つまたは複数の出力要素に結び付けるための記述であり、かつ１つの出力要素に対して複数のモダリティを結び付ける場合、それらのモダリティの組み合わせ方の記述を含む
ことを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項２４】
前記バインド記述は、モダリティと出力要素への結び付けを示す記述であるバインド要素中にその出力内容を示す記述と、出力要素に結び付けられたモダリティごとにその出力内容を示す記述の少なくとも一方を含み、
前記バインド要素中に記述された出力内容は、その結び付けの対象である出力要素中に記述された出力内容より優先し、また、前記バインド要素中でモダリティごとに記述された出力内容は、該バインド要素中に記述された出力内容より優先する
ことを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項２５】
前記バインド記述の各バインド要素は、結び付けの対象であるモダリティをactivate／deactivateする記述を含む
ことを特徴とする請求項２４に記載の情報処理装置の制御方法。
【請求項２６】
制御対象機器の操作機器として動作する情報処理装置の制御方法であって、
前記制御対象機器の処理手順を示す対話記述と独立に分離して構成される、当該情報処理装置のモダリティを示すモダリティ記述及び前記モダリティ記述と前記対話記述とを対応付けるバインド記述を示す記述データを記憶するメモリから、該記述データを、当該情報処理装置が実行する処理を制御する制御部によって読み出す読出工程と、
前記制御部によって、前記メモリから読み出された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド工程と、
前記制御部によって、前記制御対象機器を前記メモリから読み出された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド工程によって該入出力処理と対応付けられたモダリティとの間で受け渡すよう制御する制御工程と
を備えることを特徴とする制御方法。
【請求項２７】
複数種類のモダリティを有する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
当該情報処理装置の処理手順を示す対話記述と、前記対話記述と独立に分離して構成される当該情報処理装置のモダリティを示すモダリティ記述と、前記モダリティ記述と前記対話記述とを対応付けるバインド記述とを示す記述データを記憶するメモリから、該記述データを、当該情報処理装置が実行する処理を制御する制御部によって読み出す読出工程のプログラムコードと、
前記制御部によって、前記メモリから読み出された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド工程のプログラムコードと、
前記制御部によって、当該情報処理装置を前記メモリから読み出された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド工程によって該入出力処理と対応付けられたモダリティとの間で受け渡すよう制御する制御工程のプログラムコードと
を備えることを特徴とするプログラム。
【請求項２８】
制御対象機器の操作機器として動作する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
前記制御対象機器の処理手順を示す対話記述と独立に分離して構成される、当該情報処理装置のモダリティを示すモダリティ記述及び前記モダリティ記述と前記対話記述とを対応付けるバインド記述を示す記述データを記憶するメモリから、該記述データを、当該情報処理装置が実行する処理を制御する制御部によって読み出す読出工程のプログラムコードと、
前記制御部によって、前記メモリから読み出された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド工程のプログラムコードと、
前記制御部によって、前記制御対象機器を前記メモリから読み出された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド工程によって該入出力処理と対応付けられたモダリティとの間で受け渡すよう制御する制御工程のプログラムコードと
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数種類のモダリティを有し、マークアップ言語に基づいて該複数種類のモダリティを制御する情報処理装置、あるいはマークアップ言語に基づいて、制御対象機器の操作機器として動作する情報処理装置及びその制御方法、プログラムに関するものである。
【０００２】
【従来の技術】
ＨＴＭＬというマークアップ言語で記述されたコンテンツをブラウザを用いて閲覧するＷｅｂブラウジングは、いまや世界的に普及した技術である。ＨＴＭＬは、コンテンツを表示するためのマークアップ言語である。ＨＴＭＬは、フォームという仕組みを備えており、ボタンやテキストボックスといったＧＵＩ部品を備えることができる。これと、ＷｅｂサーバのＣＧＩ（Common Gateway Interface）という機構により、単に閲覧するだけでなく、Ｗｅｂサーバにクライアント（ネットワークにおいてサーバの提供する機能やデータを利用するコンピュータ、およびソフトウェアを意味する。このクライアントとしては、例えば、ネットワークに接続されたコンピュータ、家庭用のパーソナルコンピュータ、およびコンピュータ上で動作するＷｅｂブラウザ、ビューワ等が該当する）から情報を送信し、この情報に基づいて、Ｗｅｂサーバが何らかのプログラムを実行し、結果をやはりＨＴＭＬの形でクライアントに返信するといったことが可能である。例えば、Ｗｅｂのサーチエンジンは一般にこの方法で実現で実現されている。
【０００３】
この仕組みは、Ｗｅｂブラウジングだけでなく、機器制御にも応用可能である。即ち、制御対象機器にＷｅｂサーバを搭載し、クライアントである操作機器からのリクエストに対し、自身を制御するためのＧＵＩ部品からなるフォームを含んだＨＴＭＬファイルを操作機器に送信する。操作機器は、ブラウザでこのＨＴＭＬファイルを表示し、ユーザが操作機器上でＧＵＩを操作する。操作機器は、その入力を制御対象機器（例えば、Ｗｅｂサーバ）に送信する。制御対象機器の中では、ＣＧＩの機構でこの入力が、制御プログラムに渡され、入力に応じた制御がなされる。
【０００４】
一方、近年、ＰＤＡや携帯電話、カーナビなどの携帯端末のように、情報機器形態の多様化が進み、パーソナルコンピュータ（以下、ＰＣと呼ぶ）以外のこうした機器からもインターネットに接続できるようになっている。これにともない、ＷＭＬ等のＨＴＭＬにかわるマークアップ言語が開発・標準化されている。また、音声認識・合成技術の発達、ＣＴＩ技術の発達により、電話を介した音声対話によってＷｅｂにアクセスすることが可能になり、これにともなって、ＶｏｉｃｅＸＭＬなどのマークアップ言語が開発・標準化されている。このように、機器形態に適したマークアップ言語が開発・標準化されている。
【０００５】
機器形態の多様化に加え、ＰＣやＰＤＡではＧＵＩ、電話機では音声とＤＴＭＦといった具合に、ＵＩのモダリティも多様化している。こうした多様化するモダリティをうまく組み合わせて操作性を向上するマルチモーダルユーザインタフェースへの注目が高まっている。
【０００６】
【発明が解決しようとする課題】
マルチモーダルユーザインタフェースの記述には、対話記述（ユーザからどんな入力を受け、どんな出力をするか、その入出力がどのような手順で進むかを示す記述）とモダリティ記述（どのようなＵＩ部品を用いてその入出力を行うかを示す記述）が少なくとも必要である。
【０００７】
対話記述は、一般に、ユーザ主導、システム主導、混合主導の３タイプに大きく分かれる。ユーザ主導は、ユーザが入出力の手順を選べるもので、例えば、フォームを埋めたり、ボタンを押したりするＨＴＭＬベースのＷｅｂブラウジングは、これに該当する。
【０００８】
一方、システム主導は、システムが入出力手順を決め、ユーザはシステムの指示に従って入力を進めるタイプのものである。例えば、ウイザード形式のインストーラがこれに該当し、また、ＣＴＩシステムのようにシステムの音声案内に沿って音声入力したりＤＴＭＦによる入力する構成も、このシステム主導の例である。
【０００９】
混合主導は、これらのユーザ主導及びシステム主導の双方を合わせたものである。例えば、ＶｏｉｃｅＸＭＬは、システム主導と混合主導の記述が可能なように設計されている。より汎用性の高いＵＩ記述を実現するには、ユーザ主導、システム主導、混合主導のいずれかに縛られず、ＵＩ開発者が自由に対話戦略を記述できることが望ましいが、既存のＨＴＭＬ、ＷＭＬ、ＶｏｉｃｅＸＭＬなどのマークアップ言語では、いずれかのタイプの対話に偏っているという問題がある。
【００１０】
モダリティ記述は、クライアントの形態に大きく依存する。ＰＣのような汎用的な機器であれば、豊富なＧＵＩを備え、最近では音声認識・合成技術の発展により、音声ＵＩを備えるものもある。一方、携帯電話は、音声を使うのが最も適している。なぜなら、携帯電話は、小さな液晶画面で簡単なＧＵＩ部品をサポートしているものの、ポインティングデバイスもなく、必ずしもそのＧＵＩ部品を使いやすいとは言えないからである。また、機器制御を視野に入れると、操作機器としてリモコン（リモートコントローラ）がある。リモコンは、物理ボタンによる操作が一般的である。
【００１１】
既存のマークアップ言語を見ると、ＨＴＭＬは、基本的にＧＵＩをモダリティとして想定している。また、ＶｏｉｃｅＸＭＬは音声とＤＴＭＦをモダリティとして想定している。いずれも、モダリティ依存なマークアップ言語であり、しかも、複数のモダリティを組み合わせるマルチモーダルユーザインタフェースには向いていない。
【００１２】
このような対話記述とモダリティ記述の方法には２種類の方法がある。
【００１３】
一つは、ある入力はＧＵＩボタンで、ある出力は音声でといった具合に、対話記述の中にモダリティの入出力形態の記述を明示する方法である。もう一つは、対話記述とモダリティ記述を分離し、対話記述をモダリティ非依存な形で記述する方法である。
【００１４】
後者の方法では、ある制御対象機器の操作手順である対話記述をモダリティ非依存な形で行い、これとは分離された形で、いろんなクライアントごとに、そのクライアントに合わせたモダリティ記述を行うことで、一つの制御対象機器をいろんなクライアントから操作できるようになる。対話記述とモダリティ記述を分離した記述が可能なマルチモーダルユーザインタフェースのマークアップ言語としては、ＣＭＬ（特開２００１−１５４８５２）がある。
【００１５】
ＣＭＬでは、対話記述自体はモダリティ独立な形で記述しており、モダリティ記述自体やその制御記述を行う枠組みはない。対話記述部分をＨＴＭＬ、ＷＭＬ、ＶｏｉｃｅＸＭＬなどの既存マークアップ言語に変換することでモダリティを生成する。あるいは、ブラウザがＣＭＬを直接実行する場合は、ブラウザがその搭載機器のモダリティを既知のものとし、どのモダリティを対話記述内のどの入出力要素に対応づけるかはブラウザに任せる仕様になっている。
【００１６】
この場合、ＵＩ開発者が、複数のモダリティをどのように組み合わせるかを記述できないため、マルチモーダルユーザインタフェースとしてのメリットを発揮できない。例えば、ボタンＡを押しながら発声した場合とボタンＢを押しながら発声した場合とで異なる動作をする、といった記述ができない。また、ＵＩ開発者がマークアップ言語の記述によってモダリティをカスタマイズしたり、制御したりすることができないという問題がある。例えば、周囲雑音が大きい時には音声入力モダリティはｏｆｆにするといった記述ができない。
【００１７】
本発明は上記の課題を解決するためになされものであり、より汎用性が高く、かつ拡張が容易なモダリティの制御を実現できる情報処理装置及びその制御方法、プログラムを提供することを目的とする。
【００１８】
【課題を解決するための手段】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、  メモリに記憶されるデータに基づいて、当該情報処理装置が実行する処理を制御する制御手段と、
当該情報処理装置が実行する処理の処理手順を示す対話記述と、前記対話記述と独立に分離して構成される当該情報処理装置のモダリティを示すモダリティ記述と、前記モダリティ記述と前記対話記述とを対応付けるバインド記述とを示す記述データを前記メモリに記憶する記憶手段と、
前記制御手段によって、前記メモリに記憶された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド手段と、
前記制御手段によって、当該情報処理装置を前記メモリに記憶された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド手段によって該入出力処理と対応付けられたモダリティとの間で受け渡す制御を実行する実行手段と
を備える。
【００１９】
また、好ましくは、記対話記述は、入出力の処理単位である、１つもしくは複数の最小対話要素から構成され、前記最小対話要素は、０個もしくは１個の入力要素と０個もしくは１個以上の出力要素を含む。
【００２０】
また、好ましくは、前記最小対話要素は、イベントに関するイベント情報の記述を含む。
【００２１】
また、好ましくは、前記最小対話要素は、当該最小対話要素への入力に対するアクションに関するアクション情報の記述を含む。
【００２２】
また、好ましくは、前記最小対話要素は、active／inactiveの２つのどちらかの状態を有し、かつ当該最小対話要素は、前記アクション情報として、自身または別の最小対話要素をactivate／deactivateする記述を含む。
【００２３】
また、好ましくは、前記出力要素は、その出力内容を示す記述を含む。
【００２４】
また、好ましくは、前記モダリティ記述は、前記モダリティのクラスの定義、継承、クラス間の階層関係、前記クラスのインスタンスの定義を示す各記述の内の少なくともいずれかを含む。
【００２５】
また、好ましくは、前記モダリティ記述中の各モダリティは、active／inactiveの２つのどちらかの状態を有する。
【００２６】
また、好ましくは、前記バインド記述は、１つまたは複数のモダリティを、１つまたは複数の入力要素に結び付けるための記述であり、かつ１つの入力要素に対して複数のモダリティを結び付ける場合、それらのモダリティの組み合わせ方の記述を含む。
【００２７】
また、好ましくは、前記バインド記述は、１つまたは複数のモダリティを、１つまたは複数の出力要素に結び付けるための記述であり、かつ１つの出力要素に対して複数のモダリティを結び付ける場合、それらのモダリティの組み合わせ方の記述を含む。
【００２８】
また、好ましくは、前記バインド記述は、モダリティと出力要素への結び付けを示す記述であるバインド要素中にその出力内容を示す記述と、出力要素に結び付けられたモダリティごとにその出力内容を示す記述の少なくとも一方を含み、前記バインド要素中に記述された出力内容は、その結び付けの対象である出力要素中に記述された出力内容より優先し、また、前記バインド要素中でモダリティごとに記述された出力内容は、該バインド要素中に記述された出力内容より優先する。
【００２９】
また、好ましくは、前記バインド記述の各バインド要素は、結び付けの対象であるモダリティをactivate／deactivateする記述を含む。
【００３０】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、  メモリに記憶されるデータに基づいて、当該情報処理装置が実行する処理を制御する制御手段と、
前記制御対象機器が実行する処理の処理手順を示す対話記述と独立に分離して構成される、当該情報処理装置のモダリティを示すモダリティ記述及び前記モダリティ記述と前記対話記述とを対応付けるバインド記述を示す記述データを前記メモリに記憶する記憶手段と、
前記制御手段によって、前記メモリに記憶された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド手段と、
前記制御手段によって、前記制御対象機器を前記メモリに記憶された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド手段によって該入出力処理と対応付けられたモダリティとの間で受け渡す制御を実行する実行手段と
を備える。
【００３１】
上記の目的を達成するための本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
複数種類のモダリティを有する情報処理装置を制御する制御方法であって、
当該情報処理装置の処理手順を示す対話記述と、前記対話記述と独立に分離して構成される当該情報処理装置のモダリティを示すモダリティ記述と、前記モダリティ記述と前記対話記述とを対応付けるバインド記述とを示す記述データを記憶するメモリから、該記述データを、当該情報処理装置が実行する処理を制御する制御部によって読み出す読出工程と、
前記制御部によって、前記メモリから読み出された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド工程と、
前記制御部によって、当該情報処理装置を前記メモリから読み出された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド工程によって該入出力処理と対応付けられたモダリティとの間で受け渡すよう制御する制御工程と
を備える。
【００３２】
制御対象機器の操作機器として動作する情報処理装置の制御方法であって、
前記制御対象機器の処理手順を示す対話記述と独立に分離して構成される、当該情報処理装置のモダリティを示すモダリティ記述及び前記モダリティ記述と前記対話記述とを対応付けるバインド記述を示す記述データを記憶するメモリから、該記述データを、当該情報処理装置が実行する処理を制御する制御部によって読み出す読出工程と、
前記制御部によって、前記メモリから読み出された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド工程と、
前記制御部によって、前記制御対象機器を前記メモリから読み出された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド工程によって該入出力処理と対応付けられたモダリティとの間で受け渡すよう制御する制御工程と
を備える。
【００３３】
複数種類のモダリティを有する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
当該情報処理装置の処理手順を示す対話記述と、前記対話記述と独立に分離して構成される当該情報処理装置のモダリティを示すモダリティ記述と、前記モダリティ記述と前記対話記述とを対応付けるバインド記述とを示す記述データを記憶するメモリから、該記述データを、当該情報処理装置が実行する処理を制御する制御部によって読み出す読出工程のプログラムコードと、
前記制御部によって、前記メモリから読み出された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド工程のプログラムコードと、
前記制御部によって、当該情報処理装置を前記メモリから読み出された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド工程によって該入出力処理と対応付けられたモダリティとの間で受け渡すよう制御する制御工程のプログラムコードと
を備える。
【００３４】
制御対象機器の操作機器として動作する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
前記制御対象機器の処理手順を示す対話記述と独立に分離して構成される、当該情報処理装置のモダリティを示すモダリティ記述及び前記モダリティ記述と前記対話記述とを対応付けるバインド記述を示す記述データを記憶するメモリから、該記述データを、当該情報処理装置が実行する処理を制御する制御部によって読み出す読出工程のプログラムコードと、
前記制御部によって、前記メモリから読み出された記述データ中の対話記述に示される処理手順に含まれる入出力処理と、前記モダリティ記述に含まれるモダリティとを、前記バインド記述に従って対応付けるバインド工程のプログラムコードと、
前記制御部によって、前記制御対象機器を前記メモリから読み出された記述データ中の対話記述に基づいて制御する際に、前記入出力処理が要求するデータを、前記バインド工程によって該入出力処理と対応付けられたモダリティとの間で受け渡すよう制御する制御工程のプログラムコードと
を備える。
【００３５】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
情報処理装置が有する複数種類のモダリティの制御をコンピュータに機能させるためのプログラムであって、
前記情報処理装置の対話の内容を示す対話記述からなるプログラムコードと、
前記対話記述と独立に分離して構成される、前記情報処理装置のモダリティを示すモダリティ記述からなるプログラムコードと、
前記モダリティ記述と前記対話記述とを結び付けるバインド記述からなるプログラムコードとを備え、
前記各プログラムコードは、互いに独立に分離して構成される。
【００３６】
【発明の実施の形態】
以下、図面を参照して本発明の好適な一実施形態を詳細に説明する。
［実施形態１］
まず、本発明の特徴であるマルチモーダルユーザインタフェースマークアップ言語（以下、ＭＭＭＬと記述する）の仕様例を説明する。特に、ここでは、コピー機のＵＩを実現する場合を例に挙げて説明する。
【００３７】
３層構造
本発明では、図１に示すように、デバイスに依存するモダリティ記述とＵＩロジックである対話記述を分離して記述する。特に、モダリティ記述（タグ＜modality＞〜＜/modality＞で括られる部分）を示すモダリティ層４０１、対話記述（タグ＜dialog＞〜＜/dialog＞で括られる部分）を示す対話層４０３に加え、モダリティと対話を結び付ける記述（タグ＜Binds＞〜＜/Binds＞で括られる部分）を示すバインド層４０２の３層構造をとる。
【００３８】
このように、モダリティ記述を分離することによって、一つの対話記述（ＵＩロジック）をモダリティの異なる複数の機器で共有することが可能になる。この３層構造の具体例が図１である。
【００３９】
図１では、コピー機の操作を示すコピー機モダリティ記述（Copier modalities）、具体的には、コピー機の物理ボタンやＬＣＤ上のＧＵＩ等による操作に関する記述に加え、携帯電話からでも操作可能にする記述（Mobile phone modalities）の構造を示している。この例のように、コピー機対話記述（Copier Dialog）を１つ構成すれば、機器依存なモダリティ層とバインド層を機器ごとに記述するだけで、さまざまな機器からの操作が可能となる。
【００４０】
モダリティのクラスとインスタンス
ＭＭＭＬにおけるモダリティ層の記述において、各モダリティ、即ち、ＵＩ部品を表す語彙を、ＭＭＭＬの定義語としてすべて事前定義するのは困難であり、また拡張性に欠ける。そこで、一般的に用いられると予想される何種類かのＵＩ部品のクラスをＭＭＭＬ共通語彙として定義し、このクラスを継承することで新規クラスを定義できるようにする。さらに、こうしたクラスのインスタンスの形で、実際のＵＩ記述で用いるＵＩ部品を定義できるようにする。クラスの定義、継承、クラス間の階層関係、インスタンスの定義をＸＭＬで記述する方法として、実施形態１では、ＲＤＦスキーマを用いる。ＲＤＦスキーマは、Ｗｅｂの標準化団体であるＷ３Ｃ（http://www.w3c.org参照）で標準化されているマークアップ言語（http://www.w3.org/TR/rdf-schema/参照）である。
【００４１】
汎用モダリティクラスのスキーマ
一般的に用いられると予想される何種類かＧＵＩ部品クラスをＭＭＭＬの語彙として、ＲＤＦスキーマの形で定義する。このＲＤＦスキーマ（汎用モダリティスキーマ）を図式的に表現した例を、図２に示す。図２のように、ＲＤＦスキーマを用いて、ＵＩ部品のクラスを階層的に定義できる。例えば、「Button」はサブクラスとして「Physical Button」と「GUI Button」が定義できる。前者は、例えば、コピー機のボタンのようなもの、後者は、例えば、液晶パネルに表示されるボタンである。また、このＲＤＦスキーマのＸＭＬ表現は、図２０Ａ〜図２０Ｅのようになる。
【００４２】
操作機器（クライアント）のモダリティスキーマ
ＭＭＭＬ共通語彙として定義された一般的なＵＩ部品クラスをベースに、操作機器依存のＵＩ部品クラスやインスタンスを定義するスキーマを記述する。即ち、このモダリティスキーマは、その操作機器において、どのようなモダリティが利用可能かを記述するものであり、その操作機器のメーカが提供することを想定している。例えば、図３のコピー機のＵＩ部品（ＬＣＤ、物理ボタン、音声入力、音声出力等）に対応するモダリティスキーマの図式例は図４のようになる。また、このモダリティスキーマのＸＭＬ表現は、図２１Ａ及び図２１Ｂのようになる。
【００４３】
ＵＩ開発者によるモダリティの拡張
図４の汎用モダリティスキーマ（Generic Modalities Schema）に対するコピー機モダリティスキーマ（Copier Modalities Schema）において、細枠のボックスはクラス、太枠のボックスはインスタンスを表す。この図において、「StartButton」や「ResetButton」、「10Key-1」…「10Key-0」は、それぞれコピー機のスタートボタン、リセットボタン、テンキーなどの物理ボタンを意味し、汎用モダリティスキーマ（図２）で定義された物理ボタンクラス「PhysicalButton」のインスタンスとして定義されている。コピー機のＵＩの開発者は、これらの語彙を直接用いてＵＩを記述する。
【００４４】
一方、「CopierGUIButton」などは、ＧＵＩのボタンを表すクラスであり、インスタンスではない。即ち、「ＧＵＩのボタンが利用可能」であることを述べているだけであり、具体的にどのようなＧＵＩボタンを配備するかはＵＩ開発者に委ねられている。ＵＩ開発者は、機器メーカから提供されたこのような機器のモダリティスキーマを利用して、ＧＵＩボタンのインスタンスを定義することで、自由にＧＵＩを構成することができる。例えば、コピー機モダリティスキーマ（Copier Modalities Schema）に対し、ＵＩ開発者が新規に定義するモダリティスキーマ（Author-defined Copier Modalities）の図式例は図５のようになる。また、このモダリティスキーマのＸＭＬ表現は、図２２Ａ〜図２２Ｄのようになる。
【００４５】
「Target」の概念
汎用モダリティスキーマにおいて、「Target」というクラスを定義する。また、「Target」のサブクラスとして、ディスプレイを表す「Display」やＧＵＩウインドウを表す「Window」といったクラスを定義する。「Target」は、ＧＵＩ部品等の主にビジュアルなＵＩ部品の「存在場所」となるものである。各モダリティのＸＭＬ記述において、「target」タグによって、そのモダリティの「存在場所」を記述することができる。
【００４６】
例えば、コピー機のＬＣＤ上のＧＵＩにおいて、「用紙選択モードボタン」を初期画面上に、「A4ボタン」「B5ボタン」などを「用紙選択サブウインドウ」に配置する場合、「用紙選択モードボタン」の「target」を「LCD」に、「A4ボタン」、「B5ボタン」の「target」を「CopierWindow」にする。「CopierWindow」自体の「target」は「LCD」となる。実際の表示に関しては、ＸＳＬやＣＳＳ２に任せる。各部品の表示位置は、「target」で指示された「Target」に対する相対位置とする。
【００４７】
対話層
これは、具体的な対話記述を行う層であり、モダリティから独立した記述が可能である。ＭＭＭＬ記述において、対話層は、タグ＜dialog＞〜＜/dialog＞の内側に記述する。対話の最小単位はfield（最小対話単位）である。fieldはinput、outputという入出力要素と、filledという要素を持つ。
【００４８】
input、outputはそれぞれ、どのような情報を入出力するかを記述するタグであり、属性として、IDを持つ。このIDは、分離して記述されたモダリティとの結び付け（binding）を記述する際に用いられる。これについては、後述する。
【００４９】
inputに対応する入力（ユーザの操作）があった場合、直後に記述されたfilledの中身が実行される。各fieldはactive／inactiveの２つのいずれかの状態をとる。更に、自分自身あるいは他のfieldをactivate／deactivateとすることができる。fieldのactivate／deactivateを記述することで、対話の状態遷移を制御することができる。ＶｏｉｃｅＸＭＬの場合はシステム主導が基本のため、一つの入力動作が行われるごとに自動的に次に進む。即ち、activeなfieldが順次移動する。
【００５０】
これに対し、この対話記述では、各fieldのactive／inactiveの状態は明示的にactivate／deactivateしないかぎり変化することはない。明示的なactivate／deactivateを行うには、filledタグ中のactivateタグやdeactivateタグにより指定する。以下、各節でfield及びfieldが持つ各要素（fieldタグの内部に記述するタグ）の役割を詳説する。
【００５１】
fieldの役割
fieldは、ＵＩの対話における入出力の最小単位（最小対話単位）を表し、そこで受け付けたい入力の種類、その入力に対する動作、あるいは出力したい内容が記述される。入力の種類はinputタグ、入力に対する動作はfilledタグで表される。出力は、outputタグで表される。activeなfieldのみが入出力可能となる。ＶｏｉｃｅＸＭＬのfieldのように入力が終了しても、次のfieldに進んだりはしない。「次のfieldに進む」という記述は、次のfieldをactivateし、自分自身をdeactivateすることを明示的に記述することで実現される。
【００５２】
Input要素
属するfieldで受け付けたい入力の種類を記述する。入力の種類はtype属性に記述する。また、属性値としては、以下のようなものをＭＭＭＬの共通語彙として事前定義する。
【００５３】
「selectMe」
これは、入力があったという事実を受け付けるタイプの入力である。「ボタン」や音声などのモダリティをバインドできる。
【００５４】
「selectOne」
これは、選択肢の中から一つを選択するタイプの入力である。例えば、ラジオボタンやプルダウンメニューなどが典型的なモダリティである。selectOneタイプのinputは、選択肢をitemタグによって記述する。各itemに「ボタン」などのモダリティをバインドすることも可能である。
【００５５】
「selectMany」
これは、選択肢の中から複数を選択するタイプの入力である。例えば、コンボボックス（ComboBox）などが典型的なモダリティである。selectOneタイプと同様、選択肢をitemタグで記述する。
【００５６】
「TextString」
文字列の入力を受け付けるタイプの入力である。例えば、ＧＵＩのテキストボックスや音声入力が典型的なモダリティである。
【００５７】
Output要素
属するfieldでの出力を記述する。出力内容は、contentタグで記述することができる。
【００５８】
filled要素
各fieldにおける入力に対するアクション（アクション情報）を記述する。アクションの種類はさまざまである。activate／deactivateタグによって、自分自身あるいは他のfieldを明示的にactive／inactiveにすること、スクリプト記述あるいは何らかの記述方法で、ＵＩ以外の内部プログラムとインタラクションする（例えば、「コピースタート」の入力を受けて、実際にコピーを行う処理プログラムを起動するなど）ことなどが、典型的なアクションである。また、入力に対して応答を行うような場合に、outputタグをfilledの中に記述することもできる。
【００５９】
fieldsの役割
fieldをグループ化する。一般にＵＩロジックは、状態がいくつかのグループにわかれ、グループ単位でactive／inactiveになるといったケースが多いため、fieldsで適当なグループ化をしておくと便利である（例えば、コピー機の初期画面とそれぞれの設定モード）、fieldsがactivate／deactivateされると、これに属する各fieldはすべてactive／inactiveになる。
【００６０】
コピー機の対話層例
コピー機ＵＩの対話層の記述例を図６に、そのＸＭＬ表現を図２３Ａ〜図２３Ｃに示す。
【００６１】
この例では、コピーの実行（CopyStart）、用紙選択（PaperSize）、片面・両面（PrintSides）指定を行うＵＩを記述している。この例において、モダリティ記述、即ち、ボタンで入力するのか、音声で入力するのか、あるいは、テキストで表示するのか、音声で通知するのか等の具体的にどんなＵＩ部品を使用するのかについては、一切記述していない（モダリティ独立である）ことに注意されたい。
【００６２】
バインド層
モダリティ独立な対話記述ではモダリティが排除されるため、モダリティと対話記述の関連付けを行う必要がある。バインド層はその関連付けを記述する層であり、モダリティ層で定義された各モダリティと、対話層中の各入出力要素とを結び付ける。対応付けの記述は、対応付けるモダリティのID、入出力要素のIDを、ＵＲＩ（Uniform Resource Identifier）で参照する形で行う。バインド層は、タグ＜Binds＞〜＜/Binds＞の内側に記述する。各バインド要素は、タグ＜Binds＞〜＜/Binds＞の内側に記述する。対話層の１つの入出力要素に複数のモダリティをバインドすることで、複数モダリティの選択利用や協調利用を用いたマルチモーダルＵＩを記述することができる。バインド層では、次のようなモダリティ管理に関する記述が可能である。
【００６３】
・複数モダリティの組み合わせ方の記述
・出力内容の記述
・モダリティのactivate／deactivateの記述
複数モダリティの組み合わせ方の記述
複数のモダリティを１つの入出力要素にバインドする場合、選択利用や協調利用など、モダリティの組み合わせ方を指示できる。組み合わせ方の指示は、BindType属性で記述する。BindType属性の属性値としては、以下のようなものをＭＭＭＬの共通語彙として事前定義する。
【００６４】
「Alt」
入出力要素にバインドされた複数のモダリティのいずれか一つが利用可能である。複数モダリティの優先順位は記述された順とする。例えば、コピー機で「Ａ４かＢ５か」の用紙選択を行う入力要素に、ラジオボタンのモダリティと音声入力のモダリティを「Alt」属性でバインドした場合、これは、ラジオボタンによる選択もしくは音声入力のどちらでも用紙選択ができることを意味する。
【００６５】
「Seq」
入出力要素にバインドされた複数のモダリティを順に適用する。例えば、「ボタンＡを押した後、発声する」といった入力に対応する。
【００６６】
「Coordinated」
入出力要素にバインドされた複数のモダリティを協調させる。例えば、「東京からここまで」と発声しながら、表示された地図上の「大阪」をポインティングデバイスで指示する、といった入力に対応する。どのような協調動作になるかはＭＭＭＬを実行するブラウザの仕様に依存するものとし、本発明では規定しない。
【００６７】
出力内容の記述
対話層の出力要素をバインドするバインド要素中に、その出力内容を記述することができる。出力内容は、タグ＜Binds＞〜＜/Binds＞ののすぐ内側に書いてもよいし、バインドする各モダリティ記述の内側に書いてもよい。このようにすることで、モダリティに応じたより適切な出力内容を記述することができる。
【００６８】
例えば、音声合成モダリティに対しては、「コピーが完了しました」というメッセージを出力内容にし、報知音再生モダリティに対しては、「ピッ」という音を鳴らすオーディオファイルのファイル名を与えるといった記述ができる。前述の通り、出力内容は、対話層の出力要素内（タグ＜output＞〜＜/output＞の内側）にも記述可能である。これらの優先順位は、
バインド要素中のモダリティ記述の内側 ＞ バインド要素のすぐ内側 ＞ 対話層の出力要素の内側
となっている。
【００６９】
モダリティのactivate／deactivateの記述
バインドされた各モダリティをactivate／deactivate（有効化／無効化）することが可能である。例えば、周囲雑音が大きい場合に、音声入力モダリティをdeactivateするといった記述が可能である。activate/deactivateは、それぞれ、＜activate modality="..."/＞タグや＜deactivate modality="..."/＞タグで記述する。
【００７０】
コピー機ＵＩのバインド層記述例
コピー機ＵＩのバインド層記述例を以下の図７〜図９に示す。また、そのＸＭＬ表現を図２４Ａ〜図２４Ｄに示す。
【００７１】
次に、以上のような仕様のマークアップ言語に従って動作する機器として、コピー機を例に挙げて説明する。
【００７２】
図１０は本発明の実施形態１のコピー機の機能構成図である。
【００７３】
同図において、１０１は入出力管理部であり、データ入出力、音声入出力を管理する。１０２はＧＵＩ制御部であり、ユーザからの操作に応じてＧＵＩを制御する。１０３は音声認識部であり、入力された音声を認識する。１０４は音声合成部であり、音声出力対象のデータを音声合成する。
【００７４】
１０５はモダリティ管理部であり、マークアップ言語のモダリティ層の記述に従って動作し、モダリティ（ＵＩ部品）の管理を行う。
【００７５】
１０６はモダリティ制御部であり、マークアップ言語のバインド層の記述に従って動作し、バインドされたモダリティのactivate／deactivateなどの制御、モダリティを介した入力を対話層の対応する入力要素へ渡す処理、対話層の出力要素に応じて、出力内容をバインドされたモダリティに渡し、これを介した出力を行う。
【００７６】
１０７は対話実行部であり、マークアップ言語の対話層の記述に従って動作し、対話の状態遷移（fieldのactivate／deactivate）や、機器制御に関する指示等のアクションの実行を行う。１０８は機器制御部であり、対話実行部１０７から機器制御に関する指示があれば、これを実行する（例えば、「コピーをとる」という指示に従ってコピーを実行する）。
【００７７】
このように、モダリティ制御部１０６は、モダリティ管理部１０５と対話実行部１０７間に関する処理の各種制御を行う。
【００７８】
１０９はマルチモーダルユーザインタフェース（ＭＭＵＩ）マークアップ言語である。
【００７９】
図１１は本発明の実施形態１のコピー機のハードウエア構成を示す構成図である。
【００８０】
同図において、２０１はＣＰＵであり、後述するフローチャートを実現するプログラムに従って動作する。２０３はＲＡＭであり、上記プログラムの動作に必要な記憶領域や作業領域、データ一時退避領域を提供する。２０２はＲＯＭであり、後述するフローチャートを実現するプログラムや各種データを保持する。２０４はディスク装置であり、ＭＭＵＩマークアップ言語１０９を保持する。
【００８１】
２０５は液晶表示装置（ＬＣＤ）であり、ＧＵＩ制御部１０２によって生成されるアイコンなどのＧＵＩ部品を表示する。２０６はマイクであり、音声認識部１０３に対する音声入力を行なう。２０７は物理ボタンであり、上述した図３のスタートボタン、リセットボタン、テンキーなどである。２０８はスピーカであり、音声合成部１０４による合成音を出力する。２０９はバスであり、上記各構成要素を相互に接続する。
【００８２】
次に、本発明の実施形態１のコピー機で実行される処理について、図１２を用いて説明する。
【００８３】
図１２は本発明の実施形態１のコピー機で実行される処理を示すフローチャートである。
【００８４】
まず、ステップＳ１０１で、対話管理部１０７は、ＭＭＵＩマークアップ言語１０９を参照して、機器に対する初期化処理を行う。
【００８５】
次に、ステップＳ１０２で、モダリティ管理部１０５は、ＭＭＵＩマークアップ言語１０９中のモダリティ層を参照して、入出力管理部１０１／モダリティ制御部１０６からの入力に基づいて、モダリティ層で記述されている各種モダリティの状態管理等の処理を実行する。
【００８６】
次に、ステップＳ１０３で、モダリティ制御部１０６は、ＭＭＵＩマークアップ言語１０９中のバインド層を参照し、モダリティ管理部１０５／対話実行部１０７からの入力に基づいて、モダリティとそれに対応する入出力要素間の情報の授受やモダリティのactivate／deactivate等の処理を実行する。
【００８７】
次に、ステップＳ１０４で、対話実行部１０７は、ＭＭＵＩマークアップ言語１０９中の対話層を参照し、モダリティ制御部１０６／機器制御部１０８からの入力に基づいて、モダリティからの入力の受け付け、モダリティへの出力の指示、イベントの受け付け、対話の状態遷移、入力やイベントに対するアクション等の処理を実行する。
【００８８】
次に、ステップＳ１０５で、機器制御部１０８は、対話実行部１０７からの入力に基づいて、機器制御を実行する。
【００８９】
尚、図１２では、ステップＳ１０１〜ステップＳ１０５の処理は、特に、入出力管理部１０１からの入力によって、最終的に機器制御部１０８で何らかの処理が実行される例を説明することになるが、各ステップの処理内容によって、この逆の処理、つまり、ステップＳ１０５〜ステップＳ１０１の処理が実行されたり、上記の各ステップが相互に連携して、ステップの順序が前後したり、省略されたりされることに注意されたい。
【００９０】
次に、図１０のコピー機の具体的な動作例について説明する。ここでは、図５をモダリティ層（図２２Ａ〜図２２Ｄ）、図６を対話層（図２３Ａ〜図２３Ｃ）、図７〜図９をバインド層（図２４Ａ〜図２４Ｄ）とするマークアップ言語に従う動作例について説明する。
【００９１】
まず、対話実行部１０７は、ＭＭＵＩマークアップ言語１０９を参照し、図２３Ａ〜図２３Ｃのタグ＜initial＞〜＜/initial＞に記述された初期化処理を実行する。ここでは、「CopierTop」というfieldsのみをactiveにする。この場合、「CopierTop」fieldsに含まれるfieldだけがactive、即ち、入出力可能な状態になり、それ以外のfieldはインタラクションの対象にはならない。
【００９２】
これに応じて、モダリティ制御部１０６は、「CopierTop」fieldsに含まれる各field内の入出力要素にバインドされたモダリティだけをactiveにして、それ以外をinactiveにする。
【００９３】
即ち、図７に示されたモダリティだけがactiveになり、それぞれに対応する音声入出力やＧＵＩボタンの押下可能状態になる。一方、図８や図９に示されたモダリティはinactiveになり、対応するＧＵＩボタンは押下不可状態になる。尚、ＧＵＩボタンの押下可能状態と押下不可状態は、それぞれの状態が区別されるように異なる表示形態（例えば、押下不可状態はグレー表示、点滅表示等）でＧＵＩ上に表示される。図７では、スタートボタンおよび音声入力モダリティが、選択利用モードで、対話層の「CopyStart」fieldの入力要素にバインドされている。
【００９４】
従って、スタートボタンが押されるか、あるいはそれに対応する音声入力があれば、この入力要素が入力を受け付け、対話実行部１０７は、対応するfilled要素に記述された処理を実行する。
【００９５】
図７の例では、output要素で何らかの出力を実行した後、機器制御部１０８に対してコピーを実行する指示を出す。ここでは、output要素自体には、何を出力するかは記述されておらず、バインド要素内に「コピーします」と記述されている。これは、音声合成モダリティにバインドされているので、「コピーします」と合成音で発声することになる。また、このfilled要素には、fieldのactivate／deactivateの記述はないので、各fieldのactive／inactiveの状態変化は起こらず、同じく図７に示されたfieldやモダリティのみがactiveになっている。
【００９６】
図７では、用紙サイズ選択モードに入るＧＵＩボタンおよび音声入力モダリティが、選択利用モードで、対話層の「IsPaperSizeMode」fieldの入力要素にバインドされている。従って、このＧＵＩボタンが押されるか、あるいはそれに対応する音声入力があれば、この入力要素が入力を受け付け、対話実行部１０７は、対応するfilled要素に記述された処理を実行する。filledには、「SelectPaperSizeMode」fieldsをactivateするように記述されているので、このfields内の各fieldがactiveになる。
【００９７】
これに応じて、モダリティ制御部１０６が、これらのfieldの入出力要素にバインドされたモダリティ、即ち、図８に示されたモダリティをactivateするため、例えば、ＧＵＩボタンの「ButtonA4」が押下可能になるなどする。
【００９８】
以上のような手順で、マークアップ言語に従ったマルチモーダルなユーザインタフェースが実現される。
【００９９】
以上説明したように、実施形態１によれば、機器に係る処理をマークアップ言語に基づいて実現する環境において、特に、このマークアップ言語に、
機器の対話記述
機器のモダリティ記述
その対話記述とモダリティ記述を結び付けるバインド記述
を構成する。
【０１００】
そして、機器には、マークアップ言語中のモダリティ記述の内容に従って、各モダリティを用いた入出力管理を行うモダリティ管理部と、マークアップ記述言語中のバインド層の記述に従って、各モダリティと結び付けられた入出力要素との間の情報の受け渡しを行うモダリティ制御部、マークアップ言語中の対話記述の内容に従って、モダリティ管理部が管理している各モダリティからの入力の受け付け、各モダリティへの出力の指示を実行する対話実行部を構成する。
【０１０１】
これにより、機器の各種モダリティの効果的な組み合わせを自由にマークアップ言語で記述できるため、よりユーザビリティの高いマルチモーダルユーザインタフェースを実現することができる。
［実施形態２］
実施形態１では、コピー機の操作をコピー機自身のモダリティを介して行う例について説明した。しかしながら、コピー機とは別のＰＣや携帯電話などを制御対象機器の操作機器として利用可能にすることもできる。実施形態２では、携帯電話からコピー機を操作するためのマークアップ言語の編集方法とその動作について説明する。
【０１０２】
まず、図１３を参照して、マークアップ言語がどのように編集されるかを説明する。
【０１０３】
図１３は本発明の実施形態２の情報処理システムの構成を示す図である。
【０１０４】
まず、コピー機自身には、図５〜図９で説明される構成からなるマークアップ言語がすでにインストールされており、コピー機自身のモダリティを介して操作できるのは前述のとおりである。コピー機がどのような入力に対してどのような動作を実行し、どのような出力をするか、どのように対話状態が遷移するかは、コピー機自身の機能であり、コピー機はあくまで図６の対話層の記述に従って動作する。
【０１０５】
このコピー機を別の機器から操作できるようなマークアップ言語の開発は、その操作機器自体のモダリティ層、およびこのモダリティ層とコピー機自身の対話層をバインドするバインド層を記述することとなる。こうした開発が可能となるように、コピー機メーカは、自社のコピー機メーカ端末１２０１上で提供するＷｅｂサイトなどで、コピー機の対話層を公開する。
【０１０６】
一方、操作機器とする携帯電話のモダリティ層は、携帯電話固有のものであるので、携帯電話機器メーカがモダリティ層を記述するのが自然である。携帯電話機器メーカは、自社の携帯電話メーカ端末１２０２上で提供するＷｅｂサイトなどで、携帯電話のモダリティ層を公開する。携帯電話のモダリティ層のマークアップ言語記述例を図２５に示す。この例では、「０」ボタン（Button0）を定義した例を示している。
【０１０７】
この携帯電話からコピー機を操作するＭＭＵＩを記述するマークアップ言語を開発するＵＩ開発者は、公開されている携帯電話のモダリティ層、コピー機の対話層を参照し、両者をバインドするバインド層を記述する。このバインド層のマークアップ言語記述例を図２６に示す。この例は、携帯電話の「０」ボタンを「コピースタート」入力要素にバインドすることを表している。
【０１０８】
ＵＩ開発者は、開発したこのマークアップ言語（バインド層）を、自身のＵＩ開発者端末１２０４上で提供するＷｅｂサイトで公開する。
【０１０９】
ユーザは、公開されたこのマークアップ言語（バインド層）を自分の携帯電話１２０５にダウンロードする。
【０１１０】
このように、本発明のマークアップ言語は、一人のＵＩ開発者がすべてを記述するのではなく、モダリティ層はその操作機器のメーカが、対話層は制御対象機器のメーカが開発し、両者を結び付けようとするＵＩ開発者がバインド層を記述する、といった分業を可能にする。
【０１１１】
これは、本発明のマークアップ言語が、前述の３層構造からなることによるメリットである。この構成によれば、携帯電話とコピー機の組み合わせに限らず、任意の機器同士を操作機器、制御対象機器とするようなマークアップ言語の開発を容易にできる。例えば、携帯電話のモダリティ層と、エアコンメーカが公開しているエアコンの対話層をバインドするバインド層を開発すれば、携帯電話からエアコンを操作できるようになる。
【０１１２】
次に、図１４を参照して、実施形態２におけるコピー機と携帯電話の動作を説明する。図１４中の各構成要素の動作は、基本的に実施形態１で説明した図１０の各構成要素の動作と同じであるので、ここでは、コピー機と携帯電話の間のやりとりについて説明する。
【０１１３】
尚、図１４において、コピー機１３０１の機器制御部１３０１及び対話実行部１３０３は、図１０の機器制御部１０８及び対話実行部１０７に対応する。また、携帯電話１３０７の入出力管理部１３０８、音声認識部１３１０、音声合成部１３１１、モダリティ管理部１３１２及びモダリティ制御部１３１３は、図１０の入出力管理部１０１、音声認識部１０３、音声合成部１０４、モダリティ管理部１０５及びモダリティ制御部１０６に対応する。更に、図１４のＭＭＵＩマークアップ言語１３０６及び１３１５は、図１０のＭＭＵＩマークアップ言語１０９に対応する。加えて、ＤＴＭＦ管理部１３０９は、携帯電話１３０７のＤＴＭＦ管理を行う。通信部１３０５及び１３１４は、ネットワーク１３１５を介して相互に通信を行う。
【０１１４】
まず、携帯電話１３０７からコピー機１３０１に対して操作リクエストを通信部１３１４を介して送信することで、携帯電話１３０７とコピー機１３０１の対話が開始される。コピー機１３０１の対話実行部１３０３は、対話層の記述に従って動作する。対話実行部１３０３は、対話層で記述される各ステップにおいて、今どのfieldがactiveかという情報および、もし出力動作があれば、その出力要素のIDを、通信部１３０５を介して携帯電話１３０７に送信する。
【０１１５】
この送信情報の例を図１５に示す。この例は、＜ActiveList＞〜＜/ActiveList＞に列挙された入力要素が現在activeであり、さらに、「CopyStart_Message」という出力要素に対応した出力を行う旨を表している。
【０１１６】
携帯電話１３０７は、この送信情報を通信部１３１４を介して受信する。モダリティ制御部１３１３は、その送信情報とＭＭＵＩマークアップ言語１３１５に基づいて、「CopyStart_Message」にバインドされたモダリティを介して出力を行う（例えば、「コピーします」と合成音声で通知する）とともに、＜ActiveList＞〜＜/ActiveList＞に列挙された入力要素にバインドされたモダリティをactiveにして、それ以外のモダリティをinactiveにする。また、ユーザから携帯電話１３０７への入力があった場合は、そのモダリティにバインドされた入力要素のIDとその入力内容を携帯電話１３０７からコピー機１３０１に送信する。
【０１１７】
この送信情報の例を図１６に示す。この例は、＜InputList＞〜＜/InputList＞に列挙された入力要素への入力があったことをコピー機１３０１に通知することを意味している。以上のようにして、携帯電話１３０７を操作機器としてコピー機を操作することが可能になる。
【０１１８】
以上説明したように、実施形態２によれば、操作機器及び制御対象機器に係る処理をマークアップ言語に基づいて実現する環境において、特に、このマークアップ言語に、
制御対象機器の対話記述
操作機器のモダリティ記述
その対話記述とモダリティ記述を結び付けるバインド記述
を構成する。
【０１１９】
そして、操作機器には、マークアップ言語中のモダリティ記述の内容に従って、各モダリティを用いた入出力管理を行うモダリティ管理部と、マークアップ記述言語中のバインド層の記述に従って、各モダリティと結び付けられた入出力要素との間の情報の受け渡しを行うモダリティ制御部を構成する。また、制御対象機器には、マークアップ言語中の対話記述の内容に従って、モダリティ管理部が管理している各モダリティからの入力の受け付け、各モダリティへの出力の指示を実行する対話実行部を構成する。
【０１２０】
これにより、任意の機器（例えば、ＰＤＡ、リモコン等）を自動的に、任意の機器（ファクシミリ、プリンタ、スキャナ等のＯＡ機器、電気ポット、冷蔵庫、テレビ等の家電品）を制御対象機器とする操作機器として構成することができる。また、その操作機器をマルチモーダルユーザインタフェースを備えた操作機器として構成することができる。
［実施形態３］
実施形態２では、操作機器（携帯電話）と制御対象機器（コピー機）が別の場合、対話層が制御対象機器側だけにある例を説明した。実施形態３では、操作機器側に制御対象機器の対話層とは別に、操作機器固有の対話層を記述できる例について説明する。
【０１２１】
例えば、図１７のようなリモコンからエアコンを操作するＵＩをマークアップ言語で記述する場合を考える。エアコンの対話層の中に、風量を「微風」、「普通」、「強風」から選択するfieldが定義されていて、このfieldの入力要素（「selectOne」タイプ）に適当なモダリティをバインドするとする。
【０１２２】
操作機器が、十分な種類のＧＵＩ部品を備えている場合は、例えば、ラジオボタンやプルダウンメニューをこの入力要素にバインドすればいい。しかし、リモコンのボタンＡ１６０２をバインドする場合、ボタンＡ１６０２を繰り返し押すことで風量を切り替えるように記述するしかない。しかし、ボタン押下の意味、即ち、対応する風量が押すたびに変わるので、単純にバインドすることはできない。
【０１２３】
このような場合に、本発明のマークアップ言語は、制御対象（実施形態３では、エアコン）の対話層とは別に、操作機器（実施形態３では、リモコン）固有の対話層を記述することができる。本例の場合のリモコン固有のリモコン対話層と、エアコン対話層へのバインドの図式例を図１８に示す。この例は、ボタンＡ１６０２というモダリティが、エアコンの対話層の風量設定入力要素と同時に、リモコン固有の対話層の入力要素にバインドされている。後者の入力要素を持つfieldのfilled要素の中に入力値を切り替える記述をすることで、ボタンＡを押すたびに、エアコンの対話層の風量設定入力要素へ入力する値を切り替えることができる。また、図１８の構成のＸＭＬ表現は、図２７Ａ及び図２７Ｂのようになる。
［実施形態４］
上記実施形態では、ユーザの操作（入出力）だけを扱っていた。しかし、機器制御を考える場合、イベントの処理も重要な要素となる。本発明のマークアップ言語は、イベントの受け付け、イベント処理やイベントの種類等のイベントに関する情報（イベント情報）の記述も可能であり、ここではその実施形態について説明する。イベントの受け付けは、対話層のfieldタグの内側のcatchタグによって記述する。
【０１２４】
0003902959.tif 000002
上記例の「CopyComplete」のようなイベント名は、機器に応じて事前に定義され、ＭＭＭＬのブラウザは、これらの語彙を知っているものとする。
【０１２５】
イベントは、操作機器（クライアント）に関するイベントと制御対象（サーバー）に関するイベントに分けて考える必要がある。例えば、コピー機をＰＣからネットワーク経由で操作するケースを考える。この場合、「コピーが完了した」というイベントは、制御対象であるコピー機に関するイベントであり、コピー機の対話層に記述すべきものである。
【０１２６】
一方、ＰＣの「サウンドデバイスがｏｆｆされた」というイベントは、操作機器であるＰＣの中で閉じたイベントであり、コピー機の対話層には無関係なイベントである。このような場合、ＰＣの中で閉じたイベントの記述は、コピー機の対話層とは別のＰＣ固有の対話層を構成し、その中にイベントをキャッチするfieldを設ければよい。図１９に、イベント情報を含む記述例を示す。
［実施形態５］
上記実施形態１では、上述の各機器で実行される動作を実現するプログラムをＲＯＭに保持する場合について説明したが、これに限定されるものではなく、任意の記憶媒体を用いて実現してもよい。また、同様の動作を実現する回路で実現してもよい。
【０１２７】
以上、実施形態例を詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２８】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。
【０１２９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１３０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１３１】
プログラムを供給するための記録媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などがある。
【０１３２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１３３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１３４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１３５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【０１３６】
【発明の効果】
以上説明したように、本発明によれば、より汎用性が高く、かつ拡張が容易なモダリティの制御を実現できる情報処理装置及びその制御方法、プログラムを提供できる。
【図面の簡単な説明】
【図１】本発明の実施形態１のマークアップ言語の構造を示す図である。
【図２】本発明の実施形態１の汎用モダリティのスキーマ記述を図式化した図である。
【図３】本発明の実施形態１のコピー機のＵＩの構成例を示す図である。
【図４】本発明の実施形態１のコピー機のモダリティのスキーマ記述を図式化した図である。
【図５】本発明の実施形態１のＵＩ開発者によるコピー機のモダリティのスキーマ記述を図式化した図である。
【図６】本発明の実施形態１のコピー機の対話層を図式化した図である。
【図７】本発明の実施形態１のバインド層の記述の一部を図式化した図である。
【図８】本発明の実施形態１のバインド層の記述の一部を図式化した図である。
【図９】本発明の実施形態１のバインド層の記述の一部を図式化した図である。
【図１０】本発明の実施形態１のコピー機の機能構成図である。
【図１１】本発明の実施形態１のコピー機のハードウエア構成を示す構成図である。
【図１２】本発明の実施形態１のコピー機で実行される処理を示すフローチャートエである。
【図１３】本発明の実施形態２の情報処理システムの構成図である。
【図１４】本発明の実施形態２の情報処理システムの機能構成図である。
【図１５】本発明の実施形態２のコピー機から携帯電話に送信する情報例を示す図である。
【図１６】本発明の実施形態２の携帯電話からコピー機に送信する情報例を示す図である。
【図１７】本発明の実施形態３のエアコンを操作するリモコンの例を示す図である。
【図１８】本発明の実施形態３の操作機器固有の対話層を図式化した図である。
【図１９】本発明の実施形態４のイベント情報の記述を図式化した図である。
【図２０Ａ】本発明の実施形態１の汎用モダリティスキーマのＸＭＬ表現例を示す図である。
【図２０Ｂ】本発明の実施形態１の汎用モダリティスキーマのＸＭＬ表現例を示す図である。
【図２０Ｃ】本発明の実施形態１の汎用モダリティスキーマのＸＭＬ表現例を示す図である。
【図２０Ｄ】本発明の実施形態１の汎用モダリティスキーマのＸＭＬ表現例を示す図である。
【図２０Ｅ】本発明の実施形態１の汎用モダリティスキーマのＸＭＬ表現例を示す図である。
【図２１Ａ】本発明の実施形態１のコピー機のモダリティスキーマのＸＭＬ表現例を示す図である。
【図２１Ｂ】本発明の実施形態１のコピー機のモダリティスキーマのＸＭＬ表現例を示す図である。
【図２２Ａ】本発明の実施形態１のＵＩ開発者が新規定義するコピー機の対話層のＸＭＬ表現例を示す図である。
【図２２Ｂ】本発明の実施形態１のＵＩ開発者が新規定義するコピー機の対話層のＸＭＬ表現例を示す図である。
【図２２Ｃ】本発明の実施形態１のＵＩ開発者が新規定義するコピー機の対話層のＸＭＬ表現例を示す図である。
【図２２Ｄ】本発明の実施形態１のＵＩ開発者が新規定義するコピー機の対話層のＸＭＬ表現例を示す図である。
【図２３Ａ】本発明の実施形態１のコピー機の対話層のＸＭＬ表現例を示す図である。
【図２３Ｂ】本発明の実施形態１のコピー機の対話層のＸＭＬ表現例を示す図である。
【図２３Ｃ】本発明の実施形態１のコピー機の対話層のＸＭＬ表現例を示す図である。
【図２４Ａ】本発明の実施形態１のコピー機のバインド層のＸＭＬ表現例を示す図である。
【図２４Ｂ】本発明の実施形態１のコピー機のバインド層のＸＭＬ表現例を示す図である。
【図２４Ｃ】本発明の実施形態１のコピー機のバインド層のＸＭＬ表現例を示す図である。
【図２４Ｄ】本発明の実施形態１のコピー機のバインド層のＸＭＬ表現例を示す図である。
【図２５】本発明の実施形態２の携帯電話のモダリティスキーマのＸＭＬ表現例を示す図である。
【図２６】本発明の実施形態２の携帯電話のモダリティとコピー機の対話記述の入出力要素をバインドするバインド層のＸＭＬ表現例を示す図である。
【図２７Ａ】本発明の実施形態３の操作機器固有の対話層のＸＭＬ表現例を示す図である。
【図２７Ｂ】本発明の実施形態３の操作機器固有の対話層のＸＭＬ表現例を示す図である。
【符号の説明】
１０１  入出力管理部
１０２  ＧＵＩ制御部
１０３  音声認識部
１０４  音声合成部
１０５  モダリティ管理部
１０６  モダリティ制御部
１０７  対話実行部
１０８  機器制御部
１０９  ＭＭＵＩマークアップ言語
【図１】
0003902959.tif 000003
【図２】
0003902959.tif 000004
【図３】
0003902959.tif 000005
【図４】
0003902959.tif 000006
【図５】
0003902959.tif 000007
【図６】
0003902959.tif 000008
【図７】
0003902959.tif 000009
【図８】
0003902959.tif 000010
【図９】
0003902959.tif 000011
【図１０】
0003902959.tif 000012
【図１１】
0003902959.tif 000013
【図１２】
0003902959.tif 000014
【図１３】
0003902959.tif 000015
【図１４】
0003902959.tif 000016
【図１５】
0003902959.tif 000017
【図１６】
0003902959.tif 000018
【図１７】
0003902959.tif 000019
【図１８】
0003902959.tif 000020
【図１９】
0003902959.tif 000021
【図２０Ａ】
0003902959.tif 000022
【図２０Ｂ】
0003902959.tif 000023
【図２０Ｃ】
0003902959.tif 000024
【図２０Ｄ】
0003902959.tif 000025
【図２０Ｅ】
0003902959.tif 000026
【図２１Ａ】
0003902959.tif 000027
【図２１Ｂ】
0003902959.tif 000028
【図２２Ａ】
0003902959.tif 000029
【図２２Ｂ】
0003902959.tif 000030
【図２２Ｃ】
0003902959.tif 000031
【図２２Ｄ】
0003902959.tif 000032
【図２３Ａ】
0003902959.tif 000033
【図２３Ｂ】
0003902959.tif 000034
【図２３Ｃ】
0003902959.tif 000035
【図２４Ａ】
0003902959.tif 000036
【図２４Ｂ】
0003902959.tif 000037
【図２４Ｃ】
0003902959.tif 000038
【図２４Ｄ】
0003902959.tif 000039
【図２５】
0003902959.tif 000040
【図２６】
0003902959.tif 000041
【図２７Ａ】
0003902959.tif 000042
【図２７Ｂ】
0003902959.tif 000043