(57)【要約】【課題】  自然言語による対話に応じたテキストデータからユーザの意図を得るためのプログラムを容易に記録することが可能な技術が提供されることが望まれる。  自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、を備える、情報処理装置が提供される。【選択図】図４
2017141502.tif 000002
【特許請求の範囲】
【請求項１】
自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、  前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、  を備える、情報処理装置。
【請求項２】
前記イベントおよび前記処理は、あらかじめ前記記録媒体に記録されたイベントおよび処理を参照することで抽出される、  請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、  第１イベントの発生を検出したときに前記第１イベントに対応する第１プログラムが記録されている場合、第１処理の実行を制御し、  第２イベントの発生を検出したときに前記第２イベントに対応する第２プログラムが記録されている場合、第２処理の実行を制御し、  前記第１処理の実行が前記第２イベントの発生と対応している場合、前記第１処理に応じた前記第２処理の自動的な実行を制御する実行制御部を備える、  請求項１に記載の情報処理装置。
【請求項４】
前記情報処理装置は、  第３イベントの発生を検出したときに前記第３イベントに対応する第３プログラムが記録されている場合、第３処理の実行を制御し、  第４イベントの発生を検出したときに前記第４イベントに対応する第４プログラムが記録されている場合、第４処理の実行を制御し、  前記第３イベントと前記第４イベントが同一のイベントである場合、前記第３イベントおよび前記第４イベントのうち少なくとも一方が発生したとき、前記第３処理および前記第４処理の自動的な実行を制御する実行制御部を備える、  請求項１に記載の情報処理装置。
【請求項５】
前記記録制御部は、第５イベントの発生から所定時間以内に第５処理が行われたことを検出した場合、前記５イベントと前記第５処理の対応関係を第５プログラムとして記録媒体に記録する、  請求項１に記載の情報処理装置。
【請求項６】
前記記録制御部は、前記記録された第５プログラムに基づいて、前記第５イベントの発生に対し前記第５処理を行うべきかユーザに対し確認を行う、  請求項５に記載の情報処理装置。
【請求項７】
前記記録制御部は、第６イベントの発生後に第６処理が所定以上の頻度で行われたことを検出した場合、前記６イベントと前記第６処理との対応関係を第６プログラムとして記録媒体に記録する、  請求項１に記載の情報処理装置。
【請求項８】
前記記録制御部は、前記記録された第６プログラムに基づいて、前記第６イベントの発生に対し前記第６処理を行うべきかユーザに対し確認を行う、  請求項７に記載の情報処理装置。
【請求項９】
前記記録制御部は、前記対応関係を前記プログラムとして前記記録媒体に記録する旨の指示を取得したとき、実質的に対応するプログラムが既に前記記録媒体に記録されている場合、前記記録するよう指示されたプログラムが既に記録されている旨をユーザに伝える、  請求項１に記載の情報処理装置。
【請求項１０】
前記記録制御部は、前記対応関係をプログラムとして前記記録媒体に記録する旨の指示を取得したとき、処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記指示に含まれる処理を少なくとも一部実行できない旨をユーザに伝える、  請求項１に記載の情報処理装置。
【請求項１１】
前記記録制御部は、前記処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記処理を行うための機器およびアプリケーションの取得を提案する、  請求項１０に記載の情報処理装置。
【請求項１２】
前記記録制御部は、前記テキストデータから抽出された前記イベントと前記処理とのうち少なくとも一方に含まれるオブジェクトに該当するオブジェクトが複数検出された場合、前記テキストデータを取得した場所およびユーザの属性のうち少なくとも一方に基づいて、前記イベントと前記処理とのうち少なくとも一方に含まれる前記オブジェクトを決定する、  請求項１に記載の情報処理装置。
【請求項１３】
前記記録制御部は、前記プログラムを記録媒体に記録するとき、前記テキストデータに含まれる前記イベントが終了した際に、前記処理を回復させる回復プログラムを前記記録媒体に自動的に記録する、  請求項１に記載の情報処理装置。
【請求項１４】
前記記録制御部は、前記回復プログラムの前記記録媒体への記録の許可がユーザから得られた場合に限り前記回復プログラムを前記記録媒体に自動的に記録する、  請求項１３に記載の情報処理装置。
【請求項１５】
前記テキストデータは、検出されたユーザの音声から得られる、  請求項１に記載の情報処理装置。
【請求項１６】
前記情報処理装置は、  前記記録媒体に記録した前記プログラムを、テキストおよび図形のうち少なくとも一方を用いて簡略化してユーザに提示する提示制御部を備える、  請求項１に記載の情報処理装置。
【請求項１７】
前記テキストデータ解析部は、あらかじめ定められた情報および機械学習の少なくとも一方に基づいて、前記イベントと前記処理とを抽出して前記プログラムを生成する、  請求項１に記載の情報処理装置。
【請求項１８】
前記テキストデータ解析部は、前記テキストデータを解析することで前記イベントの条件を抽出し、前記イベントの条件を、前記イベントと前記処理との対応関係を示す前記プログラムに関連付けて前記記録媒体に記録する、  請求項１に記載の情報処理装置。
【請求項１９】
前記テキストデータ解析部は、前記イベントと前記処理との対応関係を示す前記プログラムの生成に必要なイベントの条件が前記解析したテキストデータから抽出できない場合、前記必要なイベントの条件の提示をユーザに依頼する、  請求項１８に記載の情報処理装置。
【請求項２０】
前記イベントは、ユーザの発話、所定の環境変化、センサによる所定の信号の検出および所定の機器の動作のうち少なくともいずれか一つを含む、  請求項１に記載の情報処理装置。
【請求項２１】
前記処理は、所定の機器に対する操作、所定のメディアに対する操作、所定のアプリケーションの実行のうち少なくともいずれか一つを含む、  請求項１に記載の情報処理装置。
【請求項２２】
前記情報処理装置は、ユーザの音声から生成されたテキストデータの解析に応じたプログラムに基づいて、前記イベントが発生したときに前記処理の自動的な実行を制御するエージェントである、  請求項１に記載の情報処理装置。
【請求項２３】
プロセッサにより、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出することと、  前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録することと、  を含む、情報処理方法。
【請求項２４】
コンピュータを、  自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、  前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、  を備える情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本開示は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】  近年、自然言語による対話に応じたテキストデータをあらかじめ登録されたプログラムに従って解析し、テキストデータの解析によって得られたユーザの意図に応じて動作するコンピュータが開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２２２５１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】  しかし、自然言語による対話に応じたテキストデータからユーザの意図を得るためのプログラムを容易に記録することが可能な技術が提供されることが望まれる。
【課題を解決するための手段】
【０００５】  本開示によれば、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、を備える、情報処理装置が提供される。【０００６】  本開示によれば、プロセッサにより、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出することと、前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録することと、を含む、情報処理方法が提供される。【０００７】  本開示によれば、コンピュータを、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、を備える情報処理装置として機能させるためのプログラムが提供される。
【発明の効果】
【０００８】  以上説明したように本開示によれば、自然言語による対話に応じたテキストデータからユーザの意図を得るためのプログラムを容易に記録することが可能な技術が提供される。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【０００９】
【図１Ａ】本実施形態に係る情報処理装置によって提供される機能の一例を説明するための図である。
【図１Ｂ】本実施形態に係る情報処理装置によって提供される機能の一例を説明するための図である。
【図２Ａ】情報処理装置によって提供される機能の他の一例を説明するための図である。
【図２Ｂ】情報処理装置によって提供される機能の他の一例を説明するための図である。
【図３】情報処理装置の機能構成例を示す図である。
【図４】制御部の詳細構成例を示す図である。
【図５】プログラム生成の第一の例について説明するための図である。
【図６】プログラム生成の第二の例について説明するための図である。
【図７】プログラム生成の第三の例について説明するための図である。
【図８】プログラム生成の第四の例について説明するための図である。
【図９】プログラム生成の第一の例をさらに具体的に説明するための図である。
【図１０】プログラム生成の第二の例をさらに具体的に説明するための図である。
【図１１】プログラム生成の第三の例をさらに具体的に説明するための図である。
【図１２】イベントおよび処理それぞれの種類の例を示す図である。
【図１３】イベント発生および条件成立に伴って実行される処理の一例を示す図である。
【図１４】イベント発生および条件成立に伴って実行される処理の一例を示す図である。
【図１５】ユーザの行動の分析結果に基づいてイベントと処理との対応関係を把握する例を説明するための図である。
【図１６】イベントと処理との対応関係の例を示す図である。
【図１７】プログラム登録と登録されたプログラムに基づく処理実行のイメージを説明するための図である。
【図１８】イベントに含まれるオブジェクトの決定の例を説明するための図である。
【図１９】、記憶部に記録されたプログラムをテキストによって簡略化してユーザに提示する例を示す図である。
【図２０】回復プログラムの記録が条件付きで自動的に行われる例を説明するための図である。
【図２１】イベント発生が全ての機器にブロードキャストされる例を示す図である。
【図２２】イベント発生時の動作の第一の例を示す図である。
【図２３】イベント発生時の動作の第二の例を示す図である。
【図２４】プログラム登録時の動作の第一の例を示す図である。
【図２５】プログラム登録時の動作の第二の例を示す図である。
【図２６】Ａｃｔｉｏｎの実装例を示す図である。
【図２７】共通の部品の例を示す図である。
【図２８】宛先が有効である場合を説明するための図である。
【図２９】宛先が有効である場合のプランニング例を示す図である。
【図３０】宛先が無効である場合のプランニング例を示す図である。
【図３１】情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１０】  以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１１】  また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なる数字を付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
【００１２】  なお、説明は以下の順序で行うものとする。  １．本開示の実施形態    １．１．概要    １．２．機能構成例    １．３．機能詳細    １．４．ハードウェア構成例  ２．むすび
【００１３】  ＜１．本開示の実施形態＞  ［１．１．概要］  まず、図面を参照しながら、本開示の一実施形態に係る情報処理装置の概要について説明する。なお、本実施形態においては、情報処理装置がエージェントとして機能する場合を想定する。ここで、エージェントは、ユーザから入力された要求を解釈することによってユーザの意図を自律的に判断し、ユーザの意図に従った処理の実行を制御する装置を指す。以下では、情報処理装置がロボットである場合を想定し、情報処理装置をエージェントと称することがある。
【００１４】  図１Ａおよび図１Ｂは、本実施形態に係る情報処理装置によって提供される機能の一例を説明するための図である。図１Ａに示すように、リビングの棚に載置された情報処理装置１０は、現在時刻があらかじめ登録された起床時刻（図１Ａに示した例では、午前６時）になると、視線が上方を向くように頭部を傾けながら、目を徐々に点灯させ、現在時刻を表示する（シーンＮ１１）。また、ユーザの寝室の時計も現在時刻が起床時刻になると、所定の楽曲を出力する（シーンＮ１２）。
【００１５】  続いて、情報処理装置１０は、ユーザが寝室からリビングに入ってきたことを検出すると、朝の挨拶（図１Ａに示した例では、「Ｇｏｏｄ  Ｍｏｒｎｉｎｇ．」）を音によって出力し、載置面上を回転することによって視線をブラインドカーテンに向ける（シーンＮ１３）。そして、図１Ｂに示すように、情報処理装置１０は、ブラインドカーテンが開状態となるようにブラインドカーテンを制御する（シーンＮ１４）。また、キッチンにおいてトーストとコーヒーの準備が完了すると、情報処理装置１０は、載置面上を回転することによって視線をキッチンに向ける（シーンＮ１５）。
【００１６】  続いて、情報処理装置１０は、天気予報を取得し、取得した天気予報（図１Ｂに示した例では、「Ｗｉｌｌ  ｂｅ  ｒａｉｎ  ｔｈｉｓ  ａｆｔｅｒｎｏｏｎ．」）を音出力するとともに、取得した天気予報を示すマークを表示する（シーンＮ１６）。このとき、情報処理装置１０は、ユーザに視線が向くように頭部を傾ける。そして、情報処理装置１０は、ユーザから家を出る挨拶（図１Ｂに示した例では、「Ｓｅｅ  ｙｏｕ  ｌａｔｅｒ！」）が音声により発せられると、同様の挨拶を音出力するとともに、ユーザを目で追いかける（シーンＮ１７）。
【００１７】  図２Ａおよび図２Ｂは、情報処理装置１０によって提供される機能の他の一例を説明するための図である。図２Ａに示すように、リビングの棚に載置された情報処理装置１０は、ユーザが帰宅して帰宅時の挨拶（図２Ａに示した例では、「Ｉ’ｍ  ｈｏｍｅ．」）を音声により発したことを検出すると、載置面上を回転することによって視線をユーザに向ける（シーンＮ２１）。また、情報処理装置１０は、照明をオンにするとともに、照明オンを示すマークを表示する（シーンＮ２２）。
【００１８】  続いて、情報処理装置１０は、ユーザの移動に従って、載置面上を回転することによってユーザを目で追いかける（シーンＮ２３、シーンＮ２４）。続いて、ユーザはソファに座り（シーンＮ２５）、やがて眠ってしまう（シーンＮ２６）。情報処理装置１０は、撮像された画像に基づいてユーザが眠ったことを検出すると、自動的に照明をオフにするとともに、所定時間後にアラーム音を出力する旨（図２Ｂに示した例では、「Ｉ  ｗｉｌｌ  ｗａｋｅ  ｙｏｕ  ｕｐ  ｉｎ  ｏｎｅ  ｈｏｕｒ．Ｇｏｏｄ  ｓｌｅｅｐ．」）を音出力する（シーンＮ２７）。
【００１９】  ［１．２．機能構成例］  続いて、情報処理装置１０の機能構成例について説明する。図３は、情報処理装置１０の機能構成例を示す図である。図３に示したように、情報処理装置１０は、音出力部１１１、集音部１１３、撮像部１１４、距離検出部１１５、制御部１２０、記憶部１３０、通信部１４０および表示部１５０を有している。情報処理装置１０と制御対象機器２０とは、ネットワーク（例えば、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）など）を介して通信を行うことが可能である。また、情報処理装置１０は、通信ネットワーク９３１と接続されている。通信ネットワーク９３１は、例えば、インターネットにより構成される。
【００２０】  制御対象機器２０は、情報処理装置１０からコマンドを受け付けて、そのコマンドを実行することが可能な機器である。ここで、制御対象機器２０の種類は特に限定されない。例えば、制御対象機器２０は、テレビジョン装置であってもよいし、レコーダであってもよいし、空調機（以下、「エアコン」とも言う。）であってもよいし、コーヒーメーカであってもよいし、照明であってもよい。また、図３に示すように、制御対象機器２０は、記憶部２３０を備えていてよい。記憶部２３０は、磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイスなどにより構成される。
【００２１】  音出力部１１１は、音を出力する機能を有する。例えば、音出力部１１１は、スピーカを含んでおり、スピーカによって音を出力する。音出力部１１１に含まれるスピーカの数は１以上であれば特に限定されない。そして、音出力部１１１に含まれる１以上のスピーカそれぞれが設けられる位置も特に限定されない。なお、音出力部１１１は、音を出力する機能を有すれば、スピーカ以外の形態（例えば、イヤホン、ヘッドセットなど）の音出力装置を含んでもよい。
【００２２】  集音部１１３は、集音によって音を得る機能を有する。例えば、集音部１１３は、マイクロフォンを含んでおり、マイクロフォンによって集音する。集音部１１３に含まれるマイクロフォンの数は１以上であれば特に限定されない。そして、集音部１１３に含まれる１以上のマイクロフォンそれぞれが設けられる位置も特に限定されない。なお、集音部１１３は、音情報を集音する機能を有すれば、マイクロフォン以外の形態の集音装置を含んでもよい。
【００２３】  撮像部１１４は、撮像により画像を入力する機能を有する。例えば、撮像部１１４はカメラを含んでおり、カメラによって撮像された画像を入力する。撮像部１１４に含まれるカメラの数は１以上であれば特に限定されない。そして、撮像部１１４に含まれる１以上のカメラそれぞれが設けられる位置も特に限定されない。また、１以上のカメラには、単眼カメラが含まれてもよいし、ステレオカメラが含まれてもよい。
【００２４】  距離検出部１１５は、ユーザまでの距離を検出する機能を有する。例えば、距離検出部１１５は測距センサを含んでおり、測距センサによって検出されたユーザまでの距離を取得する。測距センサが設けられる位置は特に限定されない。また、測距センサの種類は特に限定されない。例えば、距離センサは、赤外線距離センサであってもよいし、超音波距離センサであってもよい。
【００２５】  通信部１４０は、通信ネットワーク９３１を介して通信ネットワーク９３１に接続された図示しないサーバからのデータの取得および当該サーバへのデータの書き込みを行う機能を有する。例えば、通信部１４０は、通信インターフェースにより構成される。なお、通信部１４０は、通信ネットワーク９３１に接続されるサーバは、１つであってもよいし、複数であってもよい。
【００２６】  記憶部１３０は、制御部１２０によって実行されるプログラムを記憶したり、プログラムの実行に必要なデータを記憶したりする記録媒体である。また、記憶部１３０は、制御部１２０による演算のためにデータを一時的に記憶する。記憶部１３０は、磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイスなどにより構成される。
【００２７】  表示部１５０は、各種の画面を表示する機能を有する。本実施形態においては、表示部１５０がプロジェクタである場合を主に想定するが、表示部１５０の種類は限定されない。例えば、表示部１５０は、ユーザに視認可能な表示を行うことが可能なディスプレイであればよく、液晶ディスプレイであってもよいし、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイであってもよい。また、本実施形態においては、表示部１５０が比較的高い位置（例えば、壁など）に表示を行ったり、比較的低い位置（例えば、エージェントのお腹、ユーザの手元など）に表示を行ったりする例を説明するが、表示部１５０が表示を行う位置も限定されない。
【００２８】  制御部１２０は、情報処理装置１０の各部の制御を実行する。図４は、制御部１２０の詳細構成例を示す図である。図４に示したように、制御部１２０は、テキストデータ生成部１２１、テキストデータ解析部１２２、記録制御部１２３、提示制御部１２４、イベント発生検出部１２６および実行制御部１２７を備える。これらの各機能ブロックについての詳細は、後に説明する。なお、制御部１２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）などで構成されていてよい。制御部１２０がＣＰＵなどといった処理装置によって構成される場合、かかる処理装置は、電子回路によって構成されてよい。
【００２９】  なお、以下の説明において、音声（ｖｏｉｃｅまたはｓｐｅｅｃｈ）と音（ｓｏｕｎｄ）とは区別して用いられる。すなわち、音声（ｖｏｉｃｅまたはｓｐｅｅｃｈ）は、集音部１１３によって集音された音のうち、主にユーザの発話を示すのに対し、音（ｓｏｕｎｄ）は、ユーザの発話の他、物音などを含む。
【００３０】  以上、本実施形態に係る情報処理装置１０の機能構成例について説明した。
【００３１】  ［１．３．機能詳細］  続いて、情報処理装置１０の機能詳細について説明する。ここで、自然言語による対話に応じたテキストデータをあらかじめ登録されたプログラムに従って解析し、テキストデータの解析によって得られたユーザの意図に応じて動作するコンピュータが開示されている。しかし、自然言語による対話に応じたテキストデータからユーザの意図を得るためのプログラムを記録することは一般的に困難である。
【００３２】  例えば、「エアコンを付けて」「（気温が）２９度になったらエアコンを付けて」「（気温が）２９度になったらエアコンを付けてサーキュレータを回して」といったように、ユーザの要求は様々である。そのため、ユーザの要求に沿ったプログラムをあらかじめ網羅的に記録しておくのは困難である。また、新しい処理が実行可能になった場合に、その都度新しい処理を実行するためのプログラムを情報処理装置１０の提供者が作成するのは困難である。
【００３３】  そこで、本実施形態においては、自然言語による対話に応じたテキストデータからユーザの意図を得るためのプログラムを容易に記録することが可能な技術を主に提案する。具体的には、上記した「（気温が）２９度になったらエアコンを付けて」というユーザの要求を例に挙げると、ユーザの要求は、「（気温が）２９度になる」というイベントと、「エアコンを付ける」という処理とに分類される。
【００３４】  したがって、本実施形態においては、テキストデータ解析部１２２が、自然言語による対話に応じたテキストデータを解析し、テキストデータに含まれるイベントおよびイベントに応じて実行されるべき処理を抽出する。そして、記録制御部１２３が、イベントと処理との対応関係をプログラムとして記憶部１３０に記録する。かかる構成により、自然言語による対話に応じたテキストデータからユーザの意図を得るためのプログラムを容易に記録することが可能となる。また、処理およびイベントを部品としてあらかじめ用意しておきさえすれば、部品を利用したプログラムがユーザによって自動的に生成されるため、情報処理装置１０の提供者の手間も軽減される。
【００３５】  このようにしてイベントと処理との対応関係がプログラムとして記憶部１３０に記録された後、イベント発生検出部１２６は、イベントの発生を検出する。そして、実行制御部１２７は、イベント発生検出部１２６によってイベントの発生が検出された場合、検出されたイベントが記述されたプログラムが記憶部１３０に記録されている場合、そのプログラムに記述されている処理の実行を制御する。このように、一度プログラムが記録されてしまえば、イベントの発生によって自動的に処理が実行されるため、処理を実行させるたびにユーザが発話を行う必要がなくなる。
【００３６】  ここで、自然言語による対話に応じたテキストデータはどのようにして得られてもよい。例えば、集音部１１３によって集音された音に対する音声認識処理がテキストデータ生成部１２１によって実行され、音声認識処理によって得られたユーザの音声がテキストデータとして得られてもよい。あるいは、チャットなどにおいてユーザから直接入力されたテキストデータが得られてもよい。
【００３７】  また、イベントと処理の抽出はどのようになされてもよい。例えば、テキストデータ解析部１２２は、あらかじめ定められた情報に基づいて（例えば、記憶部１３０にあらかじめ記録されたイベントおよび処理を参照することによって）、イベントおよび処理を抽出してもよい。より具体的には、テキストデータ解析部１２２は、記憶部１３０にあらかじめ記録されたイベントと一致するイベントがテキストデータに含まれている場合には、そのイベントをテキストデータから抽出する。同様に、テキストデータ解析部１２２は、記憶部１３０にあらかじめ記録された処理と一致する処理がテキストデータに含まれている場合には、その処理をテキストデータから抽出する。
【００３８】  あるいは、テキストデータ解析部１２２は、機械学習に基づいて、イベントと処理とを抽出してもよい。具体的には、テキストデータ解析部１２２は、過去にテキストデータから抽出されたイベント群に基づいて、テキストデータから抽出されるべきイベントを学習し、学習結果に基づいてテキストデータからイベントを抽出する。同様に、テキストデータ解析部１２２は、過去にテキストデータから抽出された処理群に基づいて、テキストデータから抽出されるべき処理を学習し、学習結果に基づいてテキストデータから処理を抽出する。
【００３９】  また、イベントおよび処理からプログラムを生成する手法は特に限定されない。例えば、テキストデータ解析部１２２は、あらかじめ定められたルールに基づいて、イベントおよび処理からプログラムを生成する。図５を参照しながら、さらに具体的に説明する。図５は、プログラム生成の第一の例について説明するための図である。図５に示すように、テキストデータ解析部１２２は、イベントが発生したという条件を満たすか否かを条件判断としてプログラムに記述し、条件が満たされた場合のステップとして、処理の実行を制御するための動作をプログラムに記述すればよい。
【００４０】  また、図５に示すように、処理の完了自体がイベントの発生として扱われてよい。より具体的には、処理の完了は、実行制御部１２７による制御に従って処理を実行した制御対象機器２０によって認識されてよい。そして、処理の完了は、制御対象機器２０から情報処理装置１０に通知されると、情報処理装置１０によってイベントの発生として扱われてよい。
【００４１】  図５には、一つのイベントに対して一つの処理が実行される例が示されているが、一つのイベントに対して実行される処理は複数であってもよい。図６は、プログラム生成の第二の例について説明するための図である。図６に示すように、テキストデータ解析部１２２は、条件判断と処理の実行を制御するための動作との組み合わせを複数並列的に配置してプログラムに記述すればよい。このようにしてプログラムが生成されれば、プログラムの実行により、イベント発生によって複数の処理が実行される。
【００４２】  具体的に、第３イベントと第３処理とに対応する第３プログラムが記憶部１３０に記録され、第４イベントと第４処理とに対応する第４プログラムが記憶部１３０に記録された場合を想定する。かかる場合、実行制御部１２７は、第３イベントと第４イベントとが同一のイベントである場合、第３イベントおよび第４イベントのうち少なくとも一方が発生したとき、第３処理および第４処理の自動的な実行を制御する。
【００４３】  また、上記したように、処理の完了自体がイベントの発生として扱われてよい。図７は、プログラム生成の第三の例について説明するための図である。図７に示すように、テキストデータ解析部１２２は、条件判断と処理の実行を制御するための動作との組み合わせを複数直列的に繋げてプログラムに記述すればよい。このようにしてプログラムが生成されれば、プログラムの実行により、ある処理の完了により発生したイベントによって他の処理が連動して実行される。
【００４４】  具体的に、第１イベントと第１処理とに対応する第１プログラムが記憶部１３０に記録され、第２イベントと第２処理とに対応する第２プログラムが記憶部１３０に記録された場合を想定する。かかる場合、実行制御部１２７は、第１イベントの発生を検出したときに第１処理の実行を制御し、第２イベントの発生を検出したときに第２処理の実行を制御する。このとき、実行制御部１２７は、第１処理の実行が第２イベントの発生と対応している場合、第１処理に応じた第２処理の自動的な実行を制御する。
【００４５】  また、図６および図７それぞれに示した例は、必要に応じて適宜に組み合わされてもよい。図８は、プログラム生成の第四の例について説明するための図である。図８に示すように、テキストデータ解析部１２２は、条件判断と処理の実行を制御するための動作との組み合わせを複数直列的に繋げてプログラムに記述するとともに、条件判断と処理の実行を制御するための動作との組み合わせを複数並列的に繋げてプログラムに記述してもよい。図５〜図７に示した例をさらに具体的に説明する。
【００４６】  図９は、図５を参照しながら説明したプログラム生成の第一の例をさらに具体的に説明するための図である。図９に示すように、テキストデータ解析部１２２によってテキストデータ「２９度になったらエアコンを付けて」が得られた場合を想定する。かかる場合、テキストデータ解析部１２２は、テキストデータから、イベントとして「２９度になったら」を抽出し、処理として「エアコンを付けて」を抽出し、これらの抽出結果に基づいてプログラムを生成する。かかるプログラムにより、気温が２９度になるというイベントが発生すると、エアコンをオンにするという処理が実行されるようになる。
【００４７】  図１０は、図６を参照しながら説明したプログラム生成の第二の例をさらに具体的に説明するための図である。図１０に示した例においても、図９に示した例と同様に、気温が２９度になるというイベントが発生すると、エアコンをオンにするという処理が実行されるようになったとする。
【００４８】  さらに、図１０に示すように、テキストデータ解析部１２２によってテキストデータ「エアコンを付けたらサーキュレータを付けて」が得られた場合を想定する。かかる場合、テキストデータ解析部１２２は、テキストデータから、イベントとして「エアコンを付けたら」を抽出し、処理として「サーキュレータを付けて」を抽出し、これらの抽出結果に基づいてプログラムを生成する。かかるプログラムにより、エアコンがオンになるというイベントが発生すると、サーキュレータをオンにするという処理が実行される。
【００４９】  したがって、気温が２９度になるというイベントが発生すると、エアコンをオンにするという処理が実行され、エアコンがオンになるというイベントの発生に連動して、サーキュレータをオンにするという処理が実行される。
【００５０】  図１１は、図７を参照しながら説明したプログラム生成の第三の例をさらに具体的に説明するための図である。図１１に示した例においても、図９に示した例と同様に、気温が２９度になるというイベントが発生すると、エアコンをオンにするという処理が実行されるようになったとする。また、図１１に示した例においても、図１０に示した例と同様に、エアコンがオンになるというイベントが発生すると、サーキュレータをオンにするという処理が実行されるようになったとする。
【００５１】  さらに、図１１に示すように、テキストデータ解析部１２２によってテキストデータ「サーキュレータを付けたらレースのカーテンを閉めて」が得られた場合を想定する。かかる場合、テキストデータ解析部１２２は、テキストデータから、イベントとして「サーキュレータを付けたら」を抽出し、処理として「レースのカーテンを閉めて」を抽出し、これらの抽出結果に基づいてプログラムを生成する。かかるプログラムにより、サーキュレータがオンになるというイベントが発生すると、レースのカーテンを閉めるという処理が実行される。
【００５２】  したがって、気温が２９度になるというイベントが発生すると、エアコンをオンにするという処理が実行され、エアコンがオンになるというイベントの発生に連動して、サーキュレータをオンにするという処理が実行され、サーキュレータがオンになるというイベントの発生に連動して、レースのカーテンを閉めるという処理が実行される。
【００５３】  ここで、イベントおよび処理それぞれの種類は特に限定されない。図１２は、イベントおよび処理それぞれの種類の例を示す図である。例えば、イベントは、ユーザの発話、所定の環境変化、センサによる所定の信号の検出および所定の機器の動作のうち少なくともいずれか一つを含んでよい。また、処理の種類も特に限定されない。例えば、処理は、所定の機器に対する操作、所定のメディアに対する操作、所定のアプリケーションの実行のうち少なくともいずれか一つを含んでよい。
【００５４】  また、プログラム生成にはイベントの条件が必要とされる場合がある。かかる場合、テキストデータ解析部１２２は、テキストデータを解析することによってイベントの条件を抽出する。そして、テキストデータ解析部１２２は、抽出したイベントの条件を、イベントと処理との対応関係を示すプログラムに関連付けて記憶部１３０に記録する。かかる構成により、テキストデータから抽出されたイベントの条件が、プログラム生成に利用され得る。
【００５５】  ここで、テキストデータにイベントの条件が不足している場合も想定される。かかる場合には、イベントの条件の提示をユーザに依頼させるとよい。すなわち、テキストデータ解析部１２２は、イベントと処理との対応関係を示すプログラムの生成に必要なイベントの条件が、テキストデータから抽出できない場合、必要なイベントの条件の提示をユーザに依頼するとよい。かかるユーザへの提示の依頼は、音声出力によってなされてもよいし、表示によってなされてもよい。
【００５６】  図１３は、イベント発生および条件成立に伴って実行される処理の一例を示す図である。図１３には、テキストデータからイベント「温度が２９度以上になる」と条件「部屋に人が在室である」と処理「エアコン付けて」とが抽出され、これらの抽出結果に基づいてプログラムが生成された例が示されている。かかる例においては、温度が２９度に到達してイベント「温度が２９度以上になる」というイベントが発生し、かつ、人が部屋に入室して「部屋に人が在室である」という条件が成立した場合に、エアコンをオンにするという処理が実行される。
【００５７】  図１４は、イベント発生および条件成立に伴って実行される処理の一例を示す図である。図１４には、テキストデータからイベント「雨予報が出ている」と条件「ユーザが外出している」と処理「傘を持つことの提案」とが抽出され、これらの抽出結果に基づいてプログラムが生成された例が示されている。かかる例においては、イベント「雨予報が出ている」というイベントが発生し、かつ、人が部屋から出て「ユーザが外出している」という条件が成立した場合に、傘を持つことをユーザに提案するという処理が実行される。かかるユーザへの提案は、音声出力によってなされてもよいし、表示によってなされてもよい。
【００５８】  上記においては、テキストデータ解析部１２２が、テキストデータに含まれるイベントおよびイベントに応じて実行されるべき処理を抽出し、記録制御部１２３が、イベントと処理との対応関係をプログラムとして記憶部１３０に記録する例を説明した。しかし、ユーザの行動を分析することが可能である場合、記録制御部１２３は、ユーザの行動の分析結果に基づいてイベントと処理との対応関係を把握し、把握した対応関係をプログラムとして記憶部１３０に記録してもよい。そうすれば、ユーザによるプログラム登録のための手間がさらに低減される。
【００５９】  例えば、記録制御部１２３は、第５イベントの発生から所定時間以内に第５処理が行われたことを検出した場合、第５イベントと第５処理の対応関係を第５プログラムとして記憶部１３０に記録する。このとき、記録制御部１２３は、記憶部１３０に記録された第５プログラムに基づいて、第５イベントの発生に対し第５処理を行うべきかユーザに対し確認を行うとよい。ユーザに対する確認はどのようになされてもよい。一例として、音声出力または表示によってユーザに質問し、音声入力または撮像によってユーザからの回答を得てもよい。
【００６０】  図１５は、ユーザの行動の分析結果に基づいてイベントと処理との対応関係を把握する例を説明するための図である。図１５には、ユーザがカーテンを閉めてから所定時間以内にライトを付けた場合が示されている。かかる場合、記録制御部１２３は、カーテンを閉めるというイベントとライトを付けるという処理との対応関係をプログラムとして記憶部１３０に記録するとよい。そうすれば、カーテンを閉めるというイベントが発生すると、自動的にライトがオンになる。
【００６１】  また、所定時間以内に処理が行われたか否かに加えて、あるいは、所定時間以内に処理が行われたか否かの代わりに、ユーザの行動の頻度が考慮されてもよい。すなわち、記録制御部１２３は、第６イベントの発生後に第６処理が行われる頻度が所定以上であることを検出した場合、第６イベントと第６処理との対応関係を第６プログラムとして記憶部１３０に記録してもよい。かかる場合にも、ユーザによるプログラム登録のための手間がさらに低減される。
【００６２】  このとき、記録制御部１２３は、記録された第６プログラムに基づいて、第６イベントの発生に対して第６処理を行うべきかユーザに対し確認を行うとよい。ユーザに対する確認はどのようになされてもよい。一例として、音声出力または表示によってユーザに質問し、音声入力または撮像によってユーザからの回答を得てもよい。
【００６３】  なお、プログラムを記憶部１３０に記録するあらゆるケースにおいて、イベントの発生に対して処理を行うべきかユーザに対し確認を行ってよい。ここで、ユーザに対する確認に際して、音声出力または表示によるユーザへの質問は、どのようになされてもよい。例えば、記録制御部１２３が、カーテンを閉めるというイベントとライトを付けるという処理との対応関係をプログラムとして記憶部１３０に記録する場合、「カーテンを閉めたらライトを付けますか」というテキストを音声出力または表示させてもよい。
【００６４】  また、「カーテンを閉める」という表現の言い換え表現として「カーテンクローズ」なども存在し、「ライトを付ける」という表現の言い換え表現として「電気を付ける」「ライトオン」なども存在する。したがって、記録制御部１２３は、ユーザによる過去の発話内容が記録されている場合、ユーザによって最も高頻度に発話される表現を選択してもよい。あるいは、記録制御部１２３は、ユーザによる過去の発話内容が記録されている場合、ユーザによって発話されたことのある表現を選択してもよい。
【００６５】  記録制御部１２３が、イベントと処理との対応関係をプログラムとして記憶部１３０に記録した場合、イベント発生は、実行制御部１２７によって実行制御された処理の完了によって検出されてもよい。例えば、「カーテンを閉めて」というユーザの発話に基づいてカーテンを閉めるという処理が実行制御部１２７によって実行制御されてカーテンが閉まるというイベントが発生すると、そのイベント発生に伴って電気を付けるという処理が実行制御部１２７によって実行制御されてよい。
【００６６】  あるいは、イベント発生は、ユーザの手動によって直接的に実行された処理の完了によって検出されてもよい。例えば、ユーザの手動によって直接的にカーテンが閉められてカーテンが閉まるというイベントが発生すると、そのイベント発生に伴って電気を付けるという処理が実行制御部１２７によって実行制御されてよい。このように、イベント発生のパターンとしては様々なパターンが想定されるため、イベント発生の自由度は高いと言える。
【００６７】  記憶部１３０へのプログラムの記録を継続的に行っていると、記憶部１３０に記録されるプログラムが重複してしまう場合が想定される。かかる場合には、記憶部１３０に記録しようとするプログラムと同一のプログラムが既に記憶部１３０に記録されている旨がユーザに伝えられてもよい。ここで、ユーザへの伝達はどのようになされてもよい。一例として、ユーザへの伝達は、音声出力または表示によってなされてもよい。
【００６８】  より具体的には、イベントと処理との対応関係をプログラムとして記憶部１３０に記録する旨の指示がテキストデータ解析部１２２から取得された場合を想定する。かかる場合には、記録制御部１２３は、記憶部１３０に記録するよう指示されたプログラムと実質的に対応するプログラム（例えば、同一のプログラム）が既に記憶部１３０に記録されている場合、記録するよう指示されたプログラムが既に記録されている旨をユーザに伝えるとよい。
【００６９】  また、記憶部１３０へのプログラムの記録を継続的に行っていると、記憶部１３０に記録されるイベントがユーザの意図しない状態で重複してしまう場合が想定される。かかる場合には、記憶部１３０に記録しようとするイベントと同一のイベントが既に記憶部１３０に記録されている旨がユーザに伝えられてもよい。ここで、ユーザへの伝達はどのようになされてもよい。一例として、ユーザへの伝達は、音声出力または表示によってなされてもよい。
【００７０】  より具体的には、イベントと処理との対応関係をプログラムとして記憶部１３０に記録する旨の指示がテキストデータ解析部１２２から取得された場合を想定する。かかる場合には、記録制御部１２３は、記憶部１３０に記録するよう指示されたプログラムのイベントと実質的に対応するイベント（例えば、同一のイベント）が既に記憶部１３０に記録されている場合、記録するよう指示されたプログラムのイベントが既に記録されている旨をユーザに伝えるとよい。ここで、ユーザへの伝達はどのようになされてもよい。一例として、ユーザへの伝達は、音声出力または表示によってなされてもよい。また、音声入力または撮像によってユーザからの回答が得られてもよい。
【００７１】  そして、一つのイベントに対して複数の処理が対応付けられることは許容されてよいため、イベントが重複してもよい旨の回答がユーザから得られた場合には、記録制御部１２３は、記録するよう指示されたプログラムをそのまま記憶部１３０に記録すればよい。一方、一つの処理が複数のイベントに対応付けられることも許容される。図１６は、イベントと処理との対応関係の例を示す図である。図１６に示すように、処理「鍵開け処理」に対して、複数のイベント（「鍵開けボタンの押下」「Ｍａｇｉｃ  Ｗｏｒｄ＋所定ワード（開けごま、鍵開けて、キーオープン、オープンザドアーなど）の発話」「人感センサが反応したら」）が対応付けられてよい。ここで、Ｍａｇｉｃ  Ｗｏｒｄとは、ユーザがエージェントに対して話しかけていることをエージェントが理解するために予め定められたキーワードである。例えば、ユーザがＭａｇｉｃ  Ｗｏｒｄを用いてエージェントに呼びかけると、エージェントはユーザからの指示を受領するための待機状態に移行する。
【００７２】  記憶部１３０への処理追加のタイミングは特に限定されない。例えば、記録制御部１２３は、新たな制御対象機器２０が登録された場合に、インスタンスの生成とともにインスタンス内の処理を記憶部１３０に追加してもよい。あるいは、記録制御部１２３は、アプリケーションが新たにインストールされた場合に、アプリケーション内の処理を記憶部１３０に追加してもよい。また、記録制御部１２３は、アプリケーション内の処理が追加された場合に、追加された処理を記憶部１３０に追加してもよい。           なお、本明細書におけるインスタンス、オブジェクトおよびクラスは、一般的なオブジェクト指向のプログラミングにおいて定義されているインスタンス、オブジェクトおよびクラスと実質的に対応しているものと理解されてよい。具体的には、オブジェクトは本明細書においては制御対象機器に対応していると見做されてよい。
【００７３】  ここで、イベントと処理との対応関係をプログラムとして記憶部１３０に記録する旨の指示がテキストデータ解析部１２２から取得された場合を想定する。かかる場合に、処理を行うための機器が検出されない場合が想定される。例えば、通信で機器が検出されない可能性がある。したがって、かかる場合、記録制御部１２３は、指示に含まれる処理を少なくとも一部実行できない旨（指示に含まれる処理が実行されない旨）をユーザに伝えるとよい。ユーザへの伝達は、音声出力または表示によってなされてもよい。
【００７４】  このように処理を行うための機器が検出されない場合、記録制御部１２３は、その処理を行うための機器の取得を提案するとよい。具体的に、記録制御部１２３は、その処理を行うための機器を図示しないサーバに問い合わせ、図示しないサーバに機器に関する情報が存在した場合に、その機器に関する情報を提案するとよい。ユーザへの提案は、音声出力または表示によってなされてもよい。
【００７５】  同様に、イベントと処理との対応関係をプログラムとして記憶部１３０に記録する旨の指示がテキストデータ解析部１２２から取得された場合に、処理を行うためのアプリケーションが検出されない場合が想定される。例えば、記憶部１３０にアプリケーションが記録されていない可能性がある。したがって、かかる場合、記録制御部１２３は、指示に含まれる処理を少なくとも一部実行できない旨（指示に含まれる処理が実行されない旨）をユーザに伝えるとよい。ユーザへの伝達は、音声出力または表示によってなされてもよい。
【００７６】  このように処理を行うためのアプリケーションが検出されない場合、記録制御部１２３は、その処理を行うためのアプリケーションの取得を提案するとよい。具体的に、記録制御部１２３は、その処理を行うためのアプリケーションを図示しないサーバに問い合わせ、図示しないサーバにアプリケーションに関する情報が存在した場合に、そのアプリケーションに関する情報を提案するとよい。ユーザへの提案は、音声出力または表示によってなされてもよい。
【００７７】  続いて、プログラム登録と登録されたプログラムに基づく処理実行のイメージについて説明する。図１７は、プログラム登録と登録されたプログラムに基づく処理実行のイメージを説明するための図である。図１７に示すように、まず、ユーザがエージェント（情報処理装置１０）への要求「開けごまと言ったら、鍵を開けて」を発話する。集音部１１３によってユーザの発話が集音され、テキストデータ生成部１２１によってテキストデータ「開けごまと言ったら、鍵を開けて」が生成されると、テキストデータ解析部１２２によって、イベント「開けごまの音声入力」と処理「鍵を開ける」とが抽出され、セットされる。
【００７８】  このようにイベントと処理とがセットされた状態において、ユーザが「開けごま」と発話すると、「入力（暗証番号の入力など）」が特に要求されないため、エージェントが「処理前発話」に基づいて「鍵を開けていいですか？」と音声出力する。「応答要不要」が「要」であるため、ユーザが「はい」と回答すると、エージェントは、「処理後発話」に基づいて「鍵が開きました」と音声出力し、「プリセットイベント」に従って、鍵を開けて、オープンキーのテキスト検知を行う。
【００７９】  また、テキストデータから抽出されたイベント（または処理）に含まれるオブジェクトに該当するオブジェクトは一つとは限らない。すなわち、テキストデータから抽出されたイベント（または処理）に含まれるオブジェクトに該当するオブジェクトが複数検出される場合も想定される。かかる場合、記録制御部１２３は、テキストデータを取得した場所（ユーザの位置）およびユーザの属性（ユーザの年齢、ユーザの性別など）のうち少なくとも一方に基づいて、イベントと処理とのうち少なくとも一方に含まれるオブジェクトを決定するとよい。
【００８０】  図１８は、イベントに含まれるオブジェクトの決定の例を説明するための図である。図１８に示すように、エアコン処理クラスから生成されたインスタンスとして「リビングエアコン処理インスタンス」と「寝室のエアコン処理インスタンス」とを想定する。まず、ユーザがリビングに存在し、ユーザが「Ｍａｇｉｃ  Ｗｏｒｄ」を発話し、場所指定なしで「エアコン付けて」と発話した場合を想定する。かかる場合には、記録制御部１２３は、リビングおよび寝室にそれぞれ設置されているエアコンから、ユーザの位置に合致するリビングのエアコンを対象として決定する。
【００８１】  一方、ユーザがリビングに存在し、ユーザが「Ｍａｇｉｃ  Ｗｏｒｄ」を発話し、「リビングのエアコン付けて」と発話した場合を想定する。かかる場合には、記録制御部１２３は、ユーザの発話に従ってリビングのエアコンを対象として決定する。また、ユーザが寝室に存在し、ユーザが「Ｍａｇｉｃ  Ｗｏｒｄ」を発話し、「リビングのエアコン付けて」と発話した場合を想定する。かかる場合には、記録制御部１２３は、ユーザの発話に従ってリビングのエアコンを対象として決定する。
【００８２】  ユーザが寝室に存在し、ユーザが「Ｍａｇｉｃ  Ｗｏｒｄ」を発話し、場所指定なしで「エアコン付けて」と発話した場合を想定する。かかる場合には、記録制御部１２３は、リビングおよび寝室にそれぞれ設置されているエアコンから、ユーザの位置に合致する寝室のエアコンを対象として決定する。また、ユーザが寝室に存在し、ユーザが「Ｍａｇｉｃ  Ｗｏｒｄ」を発話し、「寝室のエアコン付けて」と発話した場合を想定する。かかる場合には、記録制御部１２３は、ユーザの発話に従って寝室のエアコンを対象として決定する。
【００８３】  ここで、記憶部１３０に記録されたプログラムは、ユーザに提示されてよい。そうすれば、記憶部１３０にどのようなプログラムが記録されているかを把握することができる。このとき、提示制御部１２４は、記憶部１３０に記録したプログラムを、テキストおよび図形のうち少なくとも一方を用いて簡略化してユーザに提示してもよい。一例として、記憶部１３０に記録されたプログラムをテキストによって簡略化してユーザに提示する例を説明する。
【００８４】  図１９は、記憶部１３０に記録されたプログラムをテキストによって簡略化してユーザに提示する例を示す図である。図１９に示すように、提示制御部１２４は、イベント「温度が２９度になったら」と処理「エアコンを付ける」とを提示することによって、イベントと処理との対応関係がプログラムとして記憶部１３０に記録されていることをユーザに把握させることが可能である。
【００８５】  その他、図１９には、提示制御部１２４は、イベント「温度が１５度になったら」と処理「エアコンを付ける」とを提示し、イベント「雨だったら」と処理「傘を持つことを提案」とを提示し、イベント「８時に目覚まし（時計）が鳴ったら」と処理「コーヒーメーカを起動」および処理「音楽をかける」とを提示する例が示されている。なお、イベントと処理との対応関係は、図１９に示すようにイベント単位で提示されてもよいし、クラス単位で提示されてもよいし、機器単位で提示されてもよい。
【００８６】  ここで、イベント発生に伴って処理を実行した場合に、イベントが終了したら状態を処理実行前に戻すのが望ましい場合もある。例えば、電話が掛かってきたというイベントが発生した場合に、音を発している機器の音量を小さくする（音を発している機器にＭｕｔｅを掛ける）という処理が実行される場合などが想定される。このとき、記録制御部１２３は、電話が終了したというイベントが発生した場合に、機器の音量を小さくする前に戻すように記憶部１３０への記録を制御するとよい。
【００８７】  すなわち、記録制御部１２３は、イベントと処理との対応関係をプログラムとして記憶部１３０に記録するとき、テキストデータに含まれるイベントが終了した際に、処理を回復させるためのプログラム（以下、「回復プログラム」とも言う。）を記憶部１３０に自動的に記録するとよい。
【００８８】  なお、記録制御部１２３は、「温度が所定値（２９度）以上になったらエアコンを付ける」という記録が記憶部１３０にある場合に、「温度が所定値（２９度）以下になったらエアコンを消す」という記録を記憶部１３０に行ってもよい。あるいは、記録制御部１２３は、「エアコンが付いたらサーキュレータを付ける」という記録が記憶部１３０にある場合に、「エアコンが消えたらサーキュレータを消す」という記録を記憶部１３０に行ってもよい。
【００８９】  回復プログラムの記憶部１３０への記録は、ユーザに掛かる手間の低減を重視するのであれば、ユーザの許可を得ずに行われてもよい。しかし、ユーザの意図をより重視するのであれば、ユーザの許可が得られてから行われるのがよい。すなわち、記録制御部１２３は、回復プログラムの記憶部１３０への記録の許可がユーザから得られた場合に限り、回復プログラムを記憶部１３０に自動的に記録してもよい。一例として、ユーザへの質問は、音声出力または表示によってなされてもよい。また、音声入力または撮像によってユーザからの回答が得られてもよい。
【００９０】  ここで、回復プログラムの記憶部１３０への記録は、必ず自動的に行われてもよいし、条件付きで自動的に行われてもよい。例えば、イベント発生前から既に処理が実行され、イベントが発生しても継続して処理が実行される場合、処理実行の直接的な原因はイベント発生とは限らない。したがって、イベントが終了したからといって状態を処理実行前に戻すのが望ましいとは言い切れない。そこで、実行制御部１２７は、イベント発生前から処理が実行されている場合には、イベントが終了した場合に、処理の実行を停止させてもよいし、処理の実行を継続的に実行させてもよい。
【００９１】  図２０は、回復プログラムの記録が条件付きで自動的に行われる例を説明するための図である。図２０に示すように、イベント「温度が２９度を超えたら」および処理「エアコンを付ける」との対応関係がプログラムとして記憶部１３０に記録されている場合を想定する。このとき、実行制御部１２７は、温度が２９度を超える前にエアコンがＯＦＦだった場合には、温度が２９度を超えた場合にエアコンをＯＮにし、温度が２９度を下回った場合にエアコンをＯＦＦにすればよい。
【００９２】  一方、実行制御部１２７は、温度が２９度を超える前にエアコンがＯＮだった場合には、温度が２９度を超えた場合にエアコンを継続してＯＮのままにする。そして、温度が２９度を下回ったとしても、エアコンがＯＮにされた直接的な原因は温度が２９度を超えたことであるとは限らない。したがって、エアコンをＯＦＦに戻すのが望ましいとは言い切れない。そこで、実行制御部１２７は、温度が２９度を下回った場合、エアコンをＯＮにしてもよいし、エアコンをＯＦＦにしてもよい。
【００９３】  また、図２０に示すように、イベント「温度が２９度を超えたら」および処理「サーキュレータを付ける」との対応関係がプログラムとして記憶部１３０に記録されている場合を想定する。このとき、実行制御部１２７は、温度が２９度を超える前にサーキュレータがＯＦＦだった場合には、温度が２９度を超えた場合にサーキュレータをＯＮにし、温度が２９度を下回った場合にサーキュレータをＯＦＦにすればよい。
【００９４】  一方、実行制御部１２７は、温度が２９度を超える前にサーキュレータがＯＮだった場合には、温度が２９度を超えた場合にサーキュレータを継続してＯＮのままにする。そして、温度が２９度を下回ったとしても、サーキュレータがＯＮにされた直接的な原因は温度が２９度を超えたことであるとは限らない。したがって、サーキュレータをＯＦＦに戻すのが望ましいとは言い切れない。そこで、実行制御部１２７は、温度が２９度を下回った場合、サーキュレータをＯＮにしてもよいし、サーキュレータをＯＦＦにしてもよい。
【００９５】  イベントの生成、登録、編集、削除などはエージェント（情報処理装置１０）がユーザと制御対象機器２０との間において行ってよいが、イベント発生の通知は、機器間で直接行われてもよい。例えば、イベントが検出された場合に、イベント発生は全ての機器にブロードキャストされてもよい。
【００９６】  図２１は、イベント発生が全ての機器にブロードキャストされる例を示す図である。図２１に示したように、エージェントは、温度計にイベント（ＩＤ：ＸＸＸ）「温度が３０度になったら」を登録する。また、エージェントは、受信イベントとしてイベント（ＩＤ：ＸＸＸ）をエアコンに登録し、イベント（ＩＤ：ＸＸＸ）に対応する処理として「エアコンを付ける」をエアコンに登録する。また、エージェントは、発信イベントとしてイベント（ＩＤ：ＺＺＺ）「エアコンが付いたら」を登録する。
【００９７】  また、エージェントは、受信イベントとしてイベント（ＩＤ：ＺＺＺ）を扇風機に登録し、イベント（ＩＤ：ＺＺＺ）に対応する処理として「扇風機を付ける」をエアコンに登録する。かかる場合、温度計は、イベント（ＩＤ：ＸＸＸ）「温度が３０度になったら」の発生を検出すると、このイベントを、エアコン、扇風機およびオーディにブロードキャストする。イベント（ＩＤ：ＸＸＸ）が受信イベントとして登録されているエアコンは、このイベントに対する処理「エアコンを付ける」を実行する。
【００９８】  続いて、エアコンは、イベント（ＩＤ：ＺＺＺ）「エアコンが付いたら」の発生を検出すると、このイベントを、扇風機およびオーディにブロードキャストする。イベント（ＩＤ：ＺＺＺ）が受信イベントとして登録されている扇風機は、このイベントに対する処理「扇風機を付ける」を実行する。なお、図２１には、イベントの受信および送信を機器が行う例が示されているが、イベントの受信および送信は、エージェントによって行われてもよい。
【００９９】  続いて、イベント発生時の動作の例について説明する。図２２は、イベント発生時の動作の第一の例を示す図である。図２２に示すように、各種入力（例えば、音声入力、センサによる検出、ボタン押下、テキスト入力など）がなされる（Ｓ１１）。ここで、イベントＤＢ（Ｒｅｓｅｒｖｅｄ）１３１（企業が生成したイベント）には、ＥｖｅｎｔＩＤとＥｖｅｎｔ内容とが対応付けられたデータが記録されている。一方、イベントＤＢ（Ｕｓｅｒ）１３２（ユーザが生成したイベント）にも、ＥｖｅｎｔＩＤとＥｖｅｎｔ内容とが対応付けられたデータが記録されている。
【０１００】  制御対象機器２０は、イベント発生が検出されると（Ｓ１２）、そのイベント発生を通知し（Ｓ１３）、そのＥｖｅｎｔ内容に対応するＥｖｅｎｔＩＤを、イベントＤＢ（Ｒｅｓｅｒｖｅｄ）１３１またはイベントＤＢ（Ｕｓｅｒ）１３２から取得する。ここで、シナリオＤＢ（Ｒｅｓｅｒｖｅｄ）１３３（企業が作ったシナリオ）には、ＳｉｎａｒｉｏＩＤとＡｃｔｉｏｎ内容とＥｖｅｎｔＩＤとが対応付けられたデータが記録されている。一方、シナリオＤＢ（Ｕｓｅｒ）１３４（ユーザが生成したシナリオ）には、ＡｃｔｉｏｎＩＤとＡｃｔｉｏｎ内容とＥｖｅｎｔＩＤとが対応付けられたデータが記録されている。
【０１０１】  続いて、制御対象機器２０は、取得したＥｖｅｎｔＩＤに対応するＡｃｔｉｏｎ内容を、シナリオＤＢ（Ｒｅｓｅｒｖｅｄ）１３３またはシナリオＤＢ（Ｕｓｅｒ）１３４から取得する。制御対象機器２０は、取得したＡｃｔｉｏｎ内容に応じた処理が実行されてよいか否かを確認ＵＩ（Ｓ１６）によってユーザに確認し（Ｓ１５）、その処理が実行されてよい旨の指示をユーザから受け付けると、処理を実行する（Ｓ１４）。
【０１０２】  具体的に、処理ＤＢ１３５には、Ａｃｔｉｏｎ内容と処理とが対応付けられたデータが記録されており、制御対象機器２０は、取得したＡｃｔｉｏｎ内容に対応する処理を処理ＤＢ１３５から取得し、取得した処理に基づいて、その処理を実行する（Ｓ１７）。また、制御対象機器２０は、所定の通知ＵＩによって、処理の実行をユーザに通知してもよい（Ｓ１８）。
【０１０３】  なお、図２２には、制御対象機器２０が処理を実行する例を示したが、処理の実行制御の機能は、情報処理装置１０（エージェント）が有していてもよい。図２３は、イベント発生時の動作の第二の例を示す図である。図２３に示すように、イベント検知（Ｓ１２）は、エージェントのイベント発生検出部１２６によって行われ、処理制御（Ｓ１４）、処理前確認（Ｓ１５）および処理（Ｓ１７）は、エージェントの実行制御部１２７によって行われてよい。このとき、エージェントによって実行制御される処理は、制御対象機器２０（例えば、制御対象機器２０−１〜２０−３のいずれか）において実行される。
【０１０４】  続いて、プログラム登録時の動作の例について説明する。図２４は、プログラム登録時の動作の第一の例を示す図である。図２４に示すように、音声入力（例えば、「開けごまと言ったら鍵開けて」など）がなされる（Ｓ２１）。続いて、テキストデータ生成部１２１は、入力された音声に対してＭａｇｉｃ  Ｗｏｒｄの認識と音声認識処理とを行い、テキストデータを生成する。このとき、入力された音声の代わりに、文字入力（例えば、開けポンと言ったら開けごまなど）がなされてもよい。
【０１０５】  ここで、イベントテンプレＤＢ（Ｒｅｓｅｒｖｅ）１３６（企業が作るイベントテンプレート）には、ＥｖｅｎｔＩＤと発話形式とが対応付けられたデータが記録されている。テキストデータ解析部１２２は、テキストデータ生成部１２１によって生成されたテキストデータに対応する発話形式をイベントテンプレＤＢ（Ｒｅｓｅｒｖｅ）１３６から取得し、その発話形式のＥｖｅｎｔＩＤに対応するＥｖｅｎｔ内容をイベントＤＢ（Ｒｅｓｅｒｖｅ）１３１から取得する（Ｓ２５）。
【０１０６】  テキストデータ解析部１２２は、イベントＤＢ（Ｒｅｓｅｒｖｅ）１３１からＥｖｅｎｔ内容を取得しない場合には、テキストデータ生成部１２１によって生成されたテキストデータから抽出されるイベントに対応するＥｖｅｎｔＩＤをイベントＤＢ（Ｕｓｅｒ）１３２から取得する（Ｓ２６）。また、テキストデータ解析部１２２は、シナリオＤＢ（Ｒｅｓｅｒｖｅｄ）１３３またはシナリオＤＢ（Ｕｓｅｒ）１３４から、テキストデータ生成部１２１によって生成されたテキストデータから抽出される処理に対応するＡｃｔｉｏｎ内容を抽出する（Ｓ２７）。
【０１０７】  続いて、記録制御部１２３は、取得したＥｖｅｎｔＩＤとＡｃｔｉｏｎ内容とを対応付けることによってシナリオ（プログラム）を生成し（Ｓ２８）、ユーザに対してシナリオの確認を行う（Ｓ２９）。そして、記録制御部１２３は、ユーザからそのシナリオに対する登録指示が入力された場合には、そのシナリオをシナリオＤＢ（Ｕｓｅｒ）１３４に記録する。
【０１０８】  ここで、イベントＤＢにあらかじめ登録しておくデータは特に限定されないが、体系化することが可能なイベントは、知識としてあらかじめイベントＤＢに登録しておくのがよいと考えられる。例えば、人間が体系化したデータ（例えば、時間、温度・湿度などといった自然現象など）は、知識としてあらかじめイベントＤＢに登録しておくのがよい。このような人間が体系化したデータは、共通のプラットフォームにおいて管理されるようにしてもよい。
【０１０９】  また、上記においては、イベントＤＢを参照してイベントを抽出し、シナリオＤＢを参照して処理を抽出する例について説明した。しかし、テキストデータに対する構造解析によってイベントおよび処理を抽出することも考えられる。このとき、例えば、イベント「音楽を鳴らしたら」の抽出のためには、イベントＤＢに「音楽」と「鳴らす」とがあらかじめ登録されていればよい。また、処理「鍵開けて」の抽出のためには、シナリオＤＢに「鍵」と「開ける」とがあらかじめ登録されていればよい。
【０１１０】  図２５は、プログラム登録時の動作の第二の例を示す図である。図２４には、Ｅｖｅｎｔ内容の取得（Ｓ２５）およびＥｖｅｎｔＩＤの取得（Ｓ２６）は、イベントＤＢから行われ、Ａｃｔｉｏｎ内容の抽出（Ｓ２７）は、シナリオＤＢから行われる例を示した。しかし、図２５に示すように、Ｅｖｅｎｔ内容の取得（Ｓ２５）、ＥｖｅｎｔＩＤの取得（Ｓ２６）およびＡｃｔｉｏｎ内容の抽出（Ｓ２７）は、構造解析および形態素解析によって実行されてもよい。
【０１１１】  続いて、プログラム生成の具体例について説明する。「Ａｃｔｉｏｎ」は、実行に必要な情報「Ｐｒｅ  Ｃｏｎｄｉｔｉｏｎ」がすべて揃っている前提で実装される。図２６は、Ａｃｔｉｏｎの実装例を示す図である。図２６に示した例では、電話を掛けるというアクション「ＩＮＶＯＫＥ−ＰＨＯＮＥ＿ＣＡＬＬ」の「Ｐｒｅ  Ｃｏｎｄｉｔｉｏｎ」として、電話を掛けるためのアクション「Ｆｒａｍｅ：ＰＨＯＮＥ−ＣＡＬＬ」とコンタクト相手が特定されているという条件「ＣＯＮＴＡＣＴ−ＶＡＬＩＤ」が存在しており、これらの「Ｐｒｅ  Ｃｏｎｄｉｔｉｏｎ」が満たされていれば、電話を掛けることが可能である。
【０１１２】  ここで、必要な「Ｐｒｅ  Ｃｏｎｄｉｔｉｏｎ」をイベントとして出力するアクションが部品として存在すれば、実装が完了する。すなわち、「ＣＯＮＴＡＣＴ−ＶＡＬＩＤ」をイベントとして出力するＡｃｔｉｏｎが部品として存在すればよい。図２７は、共通の部品の例を示す図である。図２７に示すように、「ＣＯＮＴＡＣＴ−ＶＡＬＩＤ（コンタクト相手が正当）」が得られるためには、コンタクトリスト検索「ＳＥＡＲＣＨ−ＣＯＮＴＡＣＴ」がなされる必要があり、コンタクトリスト検索「ＳＥＡＲＣＨ−ＣＯＮＴＡＣＴ」がなされるためには、宛先が有効「ＴＯ−ＮＡＭＥ−ＶＡＬＩＤ」である必要がある。
【０１１３】  図２８は、宛先が有効である場合を説明するための図である。図２８には、「高田さんに電話を掛けたい」とユーザが発話した例が示されている。このとき、電話を掛けるためのアクション「Ｆｒａｍｅ：ＰＨＯＮＥ−ＣＡＬＬ」から電話を掛けるというアクション「ＩＮＶＯＫＥ−ＰＨＯＮＥ＿ＣＡＬＬ」が特定される。そして、電話を掛けるというアクション「ＩＮＶＯＫＥ−ＰＨＯＮＥ＿ＣＡＬＬ」が実行されるためには、宛先が有効「ＴＯ−ＮＡＭＥ−ＶＡＬＩＤ」であるという条件が必要であるが、宛先が高田さんであることが特定されているため、この条件は満たされている。
【０１１４】  図２９は、宛先が有効である場合のプランニング例を示す図である。また、図３０は、宛先が無効である場合のプランニング例を示す図である。図３０には、「電話を掛けたい」とユーザが発話した例が示されている。すなわち、ユーザの発話からは宛先が不明である。このとき、図３０に示されるように、宛先が有効「ＴＯ−ＮＡＭＥ−ＶＡＬＩＤ」が満たされるために、ユーザへの名前確認「ＡＳＫ＿ＴＯ＿ＮＡＭＥ」がなされる必要がある。
【０１１５】  ［１．４．ハードウェア構成例］  次に、図３１を参照して、本開示の実施形態に係る情報処理装置１０のハードウェア構成について説明する。図３１は、本開示の実施形態に係る情報処理装置１０のハードウェア構成例を示すブロック図である。
【０１１６】  図３１に示すように、情報処理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０３、およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０５を含む。また、情報処理装置１０は、ホストバス９０７、ブリッジ９０９、外部バス９１１、インターフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、通信装置９２５を含んでもよい。さらに、情報処理装置１０は、必要に応じて、撮像装置９３３、およびセンサ９３５を含んでもよい。情報処理装置１０は、ＣＰＵ９０１に代えて、またはこれとともに、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）またはＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）と呼ばれるような処理回路を有してもよい。
【０１１７】  ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、情報処理装置１０内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータなどを記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一時的に記憶する。ＣＰＵ９０１、ＲＯＭ９０３、およびＲＡＭ９０５は、ＣＰＵバスなどの内部バスにより構成されるホストバス９０７により相互に接続されている。さらに、ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。
【０１１８】  入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置９１５は、ユーザの音声を検出するマイクロフォンを含んでもよい。入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置１０の操作に対応した携帯電話などの外部接続機器９２９であってもよい。入力装置９１５は、ユーザが入力した情報に基づいて入力信号を生成してＣＰＵ９０１に出力する入力制御回路を含む。ユーザは、この入力装置９１５を操作することによって、情報処理装置１０に対して各種のデータを入力したり処理動作を指示したりする。また、後述する撮像装置９３３も、ユーザの手の動き、ユーザの指などを撮像することによって、入力装置として機能し得る。このとき、手の動きや指の向きに応じてポインティング位置が決定されてよい。
【０１１９】  出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、ＰＤＰ（Ｐｌａｓｍａ  Ｄｉｓｐｌａｙ  Ｐａｎｅｌ）、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、プロジェクタなどの表示装置、ホログラムの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などであり得る。出力装置９１７は、情報処理装置１０の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。また、出力装置９１７は、周囲を明るくするためライトなどを含んでもよい。
【０１２０】  ストレージ装置９１９は、情報処理装置１０の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【０１２１】  ドライブ９２１は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体９２７のためのリーダライタであり、情報処理装置１０に内蔵、あるいは外付けされる。ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録を書き込む。
【０１２２】  接続ポート９２３は、機器を情報処理装置１０に直接接続するためのポートである。接続ポート９２３は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポートなどであり得る。また、接続ポート９２３は、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポートなどであってもよい。接続ポート９２３に外部接続機器９２９を接続することで、情報処理装置１０と外部接続機器９２９との間で各種のデータが交換され得る。
【０１２３】  通信装置９２５は、例えば、通信ネットワーク９３１に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カードなどであり得る。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、または、各種通信用のモデムなどであってもよい。通信装置９２５は、例えば、インターネットや他の通信機器との間で、ＴＣＰ／ＩＰなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置９２５に接続される通信ネットワーク９３１は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信などである。
【０１２４】  撮像装置９３３は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）またはＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）などの撮像素子、および撮像素子への被写体像の結像を制御するためのレンズなどの各種の部材を用いて実空間を撮像し、撮像画像を生成する装置である。撮像装置９３３は、静止画を撮像するものであってもよいし、また動画を撮像するものであってもよい。
【０１２５】  センサ９３５は、例えば、測距センサ、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサなどの各種のセンサである。センサ９３５は、例えば情報処理装置１０の筐体の姿勢など、情報処理装置１０自体の状態に関する情報や、情報処理装置１０の周辺の明るさや騒音など、情報処理装置１０の周辺環境に関する情報を取得する。また、センサ９３５は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）信号を受信して装置の緯度、経度および高度を測定するＧＰＳセンサを含んでもよい。
【０１２６】  ＜２．むすび＞  以上説明したように、本開示の実施形態によれば、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、を備える、情報処理装置が提供される。かかる構成によれば、自然言語による対話に応じたテキストデータからユーザの意図を得るためのプログラムを容易に記録することが可能となる。
【０１２７】  以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１２８】  例えば、上記では、構造解析および形態素解析によってイベントを検知する例を説明した。エージェント側でこのようなイベント検知が可能になれば、エージェント側でコンテキスト検知も可能になることが期待される。エージェント側でコンテキスト検知が可能になると、検知したコンテキストを起点にして、エージェントからユーザに対して話し掛けるようなことが実行される可能性がある。
【０１２９】  また、基礎的な知識（例えば、温度、天気などに関連する知識など）をエージェントに持たせておくことも考えられる。例えば、「温度２８度以上は暑い」「温度１５度以下は寒い」「乾燥は嫌い」「雨は残念」「花粉は嫌い」などといった基礎的なユーザの感情をエージェントに持たせておくことも考えられる。そうすれば、エージェントは、一緒に生活するユーザに合わせて、自身の機能をチューニングしていくことも可能である。
【０１３０】  また、コンピュータに内蔵されるＣＰＵ、ＲＯＭおよびＲＡＭなどのハードウェアを、上記した制御部１２０が有する機能と同等の機能を発揮させるためのプログラムも作成可能である。また、該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。
【０１３１】  なお、上述した情報処理装置１０の動作が実現されれば、各構成の位置は特に限定されない。具体的な一例として、テキストデータ生成部１２１およびテキストデータ解析部１２２などは、通信ネットワーク９３１を介して接続された図示しないサーバなどに設けられてもよい。すなわち、情報処理装置１０はいわゆるクラウドコンピューティングによって達成されうる。この場合には、情報処理装置１０が当該サーバに通信ネットワーク９３１を介して接続されたクライアントに相当し得る。テキストデータ生成部１２１およびテキストデータ解析部１２２などは、別々のサーバに設けられていてもよい。また、テキストデータ生成部１２１およびテキストデータ解析部１２２の一方をサーバに設け、テキストデータ生成部１２１およびテキストデータ解析部１２２のうち他方をクライアントのハードウェアに設けても良い。また、情報処理装置１０は、サーバ上に設けられたテキストデータ生成部１２１およびテキストデータ解析部１２２によって構成され、その他の構成を有していなくてもよい。
【０１３２】  また、情報処理装置１０が新規のイベントを扱えるようになった場合に、ユーザに対して「イベントが発生した場合にしてほしいことはある？」と確認を行うことも可能である。例えば、情報処理装置１０は、「雨が降り始めた」というイベントが生成されるようになった場合に、ユーザに対して「雨が降り始めたらしてほしいことはある？」と確認を行ってもよい。ユーザに対する確認はどのようになされてもよい。一例として、音声出力または表示によってユーザに質問し、音声入力または撮像によってユーザからの回答を得てもよい。
【０１３３】  また、情報処理装置１０は、イベントと処理との対応関係が既にプログラムとして記憶部１３０に一度記録された後に、条件をプログラムに追加することが可能であってもよい。例えば、イベント「温度が２９度になったら」と処理「エアコンを付ける」との対応関係が既にプログラムとして記憶部１３０に記録されている状態において、ユーザから「エアコンを付けるのは人がいる場合だけね」という指示が（例えば、音声などによって）入力された場合を想定する。かかる場合には、情報処理装置１０は、イベント「温度が２９度になったら」の発生に加えて、条件「人がいる場合」が満たされた場合に、処理「エアコンを付ける」が実行されるように、プログラムに条件が追加されてよい。
【０１３４】  なお、情報処理装置１０において記録制御部１２３以外の構成を省略する形態も本実施形態に含まれ得る。すなわち、自然言語による対話に応じたテキストデータが解析されることで予め抽出された（テキストデータとしての）イベントと処理とを、プログラムとして対応付けて記録媒体に記録するように記録制御部１２３が構成されればよい。
【０１３５】  また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏し得る。
【０１３６】  なお、以下のような構成も本開示の技術的範囲に属する。（１）  自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、  前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、  を備える、情報処理装置。（２）  前記イベントおよび前記処理は、あらかじめ前記記録媒体に記録されたイベントおよび処理を参照することで抽出される、  前記（１）に記載の情報処理装置。（３）  前記情報処理装置は、  第１イベントの発生を検出したときに前記第１イベントに対応する第１プログラムが記録されている場合、第１処理の実行を制御し、  第２イベントの発生を検出したときに前記第２イベントに対応する第２プログラムが記録されている場合、第２処理の実行を制御し、  前記第１処理の実行が前記第２イベントの発生と対応している場合、前記第１処理に応じた前記第２処理の自動的な実行を制御する実行制御部を備える、  前記（１）または（２）に記載の情報処理装置。（４）  前記情報処理装置は、  第３イベントの発生を検出したときに前記第３イベントに対応する第３プログラムが記録されている場合、第３処理の実行を制御し、  第４イベントの発生を検出したときに前記第４イベントに対応する第４プログラムが記録されている場合、第４処理の実行を制御し、  前記第３イベントと前記第４イベントが同一のイベントである場合、前記第３イベントおよび前記第４イベントのうち少なくとも一方が発生したとき、前記第３処理および前記第４処理の自動的な実行を制御する実行制御部を備える、  前記（１）または（２）に記載の情報処理装置。（５）  前記記録制御部は、第５イベントの発生から所定時間以内に第５処理が行われたことを検出した場合、前記５イベントと前記第５処理の対応関係を第５プログラムとして記録媒体に記録する、  前記（１）〜（４）のいずれか一項に記載の情報処理装置。（６）  前記記録制御部は、前記記録された第５プログラムに基づいて、前記第５イベントの発生に対し前記第５処理を行うべきかユーザに対し確認を行う、  前記（５）に記載の情報処理装置。（７）  前記記録制御部は、第６イベントの発生後に第６処理が所定以上の頻度で行われたことを検出した場合、前記６イベントと前記第６処理との対応関係を第６プログラムとして記録媒体に記録する、  前記（１）〜（６）のいずれか一項に記載の情報処理装置。（８）  前記記録制御部は、前記記録された第６プログラムに基づいて、前記第６イベントの発生に対し前記第６処理を行うべきかユーザに対し確認を行う、  前記（７）に記載の情報処理装置。（９）  前記記録制御部は、前記対応関係を前記プログラムとして前記記録媒体に記録する旨の指示を取得したとき、実質的に対応するプログラムが既に前記記録媒体に記録されている場合、前記記録するよう指示されたプログラムが既に記録されている旨をユーザに伝える、  前記（１）〜（８）のいずれか一項に記載の情報処理装置。（１０）  前記記録制御部は、前記対応関係をプログラムとして前記記録媒体に記録する旨の指示を取得したとき、処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記指示に含まれる処理を少なくとも一部実行できない旨をユーザに伝える、  前記（１）〜（９）のいずれか一項に記載の情報処理装置。（１１）  前記記録制御部は、前記処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記処理を行うための機器およびアプリケーションの取得を提案する、  前記（１０）に記載の情報処理装置。（１２）  前記記録制御部は、前記テキストデータから抽出された前記イベントと前記処理とのうち少なくとも一方に含まれるオブジェクトに該当するオブジェクトが複数検出された場合、前記テキストデータを取得した場所およびユーザの属性のうち少なくとも一方に基づいて、前記イベントと前記処理とのうち少なくとも一方に含まれる前記オブジェクトを決定する、  前記（１）〜（１１）のいずれか一項に記載の情報処理装置。（１３）  前記記録制御部は、前記プログラムを記録媒体に記録するとき、前記テキストデータに含まれる前記イベントが終了した際に、前記処理を回復させる回復プログラムを前記記録媒体に自動的に記録する、  前記（１）〜（１２）のいずれか一項に記載の情報処理装置。（１４）  前記記録制御部は、前記回復プログラムの前記記録媒体への記録の許可がユーザから得られた場合に限り前記回復プログラムを前記記録媒体に自動的に記録する、  前記（１３）に記載の情報処理装置。（１５）  前記テキストデータは、検出されたユーザの音声から得られる、  前記（１）〜（１４）のいずれか一項に記載の情報処理装置。（１６）  前記情報処理装置は、  前記記録媒体に記録した前記プログラムを、テキストおよび図形のうち少なくとも一方を用いて簡略化してユーザに提示する提示制御部を備える、  前記（１）〜（１５）のいずれか一項に記載の情報処理装置。（１７）  前記テキストデータ解析部は、あらかじめ定められた情報および機械学習の少なくとも一方に基づいて、前記イベントと前記処理とを抽出して前記プログラムを生成する、  前記（１）から１６のいずれか一項に記載の情報処理装置。（１８）  前記テキストデータ解析部は、前記テキストデータを解析することで前記イベントの条件を抽出し、前記イベントの条件を、前記イベントと前記処理との対応関係を示す前記プログラムに関連付けて前記記録媒体に記録する、  前記（１）〜（１７）のいずれか一項に記載の情報処理装置。（１９）  前記テキストデータ解析部は、前記イベントと前記処理との対応関係を示す前記プログラムの生成に必要なイベントの条件が前記解析したテキストデータから抽出できない場合、前記必要なイベントの条件の提示をユーザに依頼する、  前記（１８）に記載の情報処理装置。（２０）  前記イベントは、ユーザの発話、所定の環境変化、センサによる所定の信号の検出および所定の機器の動作のうち少なくともいずれか一つを含む、  前記（１）〜（１９）のいずれか一項に記載の情報処理装置。（２１）  前記処理は、所定の機器に対する操作、所定のメディアに対する操作、所定のアプリケーションの実行のうち少なくともいずれか一つを含む、  前記（１）〜（２０）のいずれか一項に記載の情報処理装置。（２２）  前記情報処理���置は、ユーザの音声から生成されたテキストデータの解析に応じたプログラムに基づいて、前記イベントが発生したときに前記処理の自動的な実行を制御するエージェントである、  前記（１）〜（２１）のいずれか一項に記載の情報処理装置。（２３）  プロセッサにより、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出することと、  前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録することと、  を含む、情報処理方法。（２４）  コンピュータを、  自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、  前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、  を備える情報処理装置として機能させるためのプログラム。
【符号の説明】
【０１３７】  １０    情報処理装置  １１１  音出力部  １１３  集音部  １１４  撮像部  １１５  距離検出部  １２０  制御部  １２１  テキストデータ生成部  １２２  テキストデータ解析部  １２３  記録制御部  １２４  提示制御部  １２６  イベント発生検出部  １２７  実行制御部  １３０  記憶部  １４０  通信部  １５０  表示部  ２０    制御対象機器  ２３０  記憶部
【図１Ａ】
2017141502.tif 000003
【図１Ｂ】
2017141502.tif 000004
【図２Ａ】
2017141502.tif 000005
【図２Ｂ】
2017141502.tif 000006
【図３】
2017141502.tif 000007
【図４】
2017141502.tif 000008
【図５】
2017141502.tif 000009
【図６】
2017141502.tif 000010
【図７】
2017141502.tif 000011
【図８】
2017141502.tif 000012
【図９】
2017141502.tif 000013
【図１０】
2017141502.tif 000014
【図１１】
2017141502.tif 000015
【図１２】
2017141502.tif 000016
【図１３】
2017141502.tif 000017
【図１４】
2017141502.tif 000018
【図１５】
2017141502.tif 000019
【図１６】
2017141502.tif 000020
【図１７】
2017141502.tif 000021
【図１８】
2017141502.tif 000022
【図１９】
2017141502.tif 000023
【図２０】
2017141502.tif 000024
【図２１】
2017141502.tif 000025
【図２２】
2017141502.tif 000026
【図２３】
2017141502.tif 000027
【図２４】
2017141502.tif 000028
【図２５】
2017141502.tif 000029
【図２６】
2017141502.tif 000030
【図２７】
2017141502.tif 000031
【図２８】
2017141502.tif 000032
【図２９】
2017141502.tif 000033
【図３０】
2017141502.tif 000034
【図３１】
2017141502.tif 000035
【手続補正書】
【提出日】平成30年9月6日(2018.9.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、
第３イベントの発生を検出したときに前記第３イベントに対応する第３プログラムが記録されている場合、第３処理の実行を制御し、第４イベントの発生を検出したときに前記第４イベントに対応する第４プログラムが記録されている場合、第４処理の実行を制御し、前記第３イベントと前記第４イベントが同一のイベントである場合、前記第３イベントおよび前記第４イベントのうち少なくとも一方が発生したとき、前記第３処理および前記第４処理の自動的な実行を制御する実行制御部と、
を備える、情報処理装置。
【請求項２】
自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、
を備え、
前記記録制御部は、前記対応関係をプログラムとして前記記録媒体に記録する旨の指示を取得したとき、処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記指示に含まれる処理を少なくとも一部実行できない旨をユーザに伝える、情報処理装置。
【請求項３】
自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、
を備え、
前記記録制御部は、前記プログラムを記録媒体に記録するとき、前記テキストデータに含まれる前記イベントが終了した際に、前記処理を回復させる回復プログラムを前記記録媒体に自動的に記録する、情報処理装置。
【請求項４】
前記情報処理装置は、
第３イベントの発生を検出したときに前記第３イベントに対応する第３プログラムが記録されている場合、第３処理の実行を制御し、
第４イベントの発生を検出したときに前記第４イベントに対応する第４プログラムが記録されている場合、第４処理の実行を制御し、
前記第３イベントと前記第４イベントが同一のイベントである場合、前記第３イベントおよび前記第４イベントのうち少なくとも一方が発生したとき、前記第３処理および前記第４処理の自動的な実行を制御する実行制御部を備える、
請求項２又は３に記載の情報処理装置。
【請求項５】
前記記録制御部は、前記対応関係をプログラムとして前記記録媒体に記録する旨の指示を取得したとき、処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記指示に含まれる処理を少なくとも一部実行できない旨をユーザに伝える、
請求項１又は３に記載の情報処理装置。
【請求項６】
前記記録制御部は、前記プログラムを記録媒体に記録するとき、前記テキストデータに含まれる前記イベントが終了した際に、前記処理を回復させる回復プログラムを前記記録媒体に自動的に記録する、
請求項１又は２に記載の情報処理装置。
【請求項７】
前記記録制御部は、前記処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記処理を行うための機器およびアプリケーションの取得を提案する、
請求項２又は５に記載の情報処理装置。
【請求項８】
前記記録制御部は、前記回復プログラムの前記記録媒体への記録の許可がユーザから得られた場合に限り前記回復プログラムを前記記録媒体に自動的に記録する、
請求項３又は６に記載の情報処理装置。
【請求項９】
前記イベントおよび前記処理は、あらかじめ前記記録媒体に記録されたイベントおよび処理を参照することで抽出される、
請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記情報処理装置は、
第１イベントの発生を検出したときに前記第１イベントに対応する第１プログラムが記録されている場合、第１処理の実行を制御し、
第２イベントの発生を検出したときに前記第２イベントに対応する第２プログラムが記録されている場合、第２処理の実行を制御し、
前記第１処理の実行が前記第２イベントの発生と対応している場合、前記第１処理に応じた前記第２処理の自動的な実行を制御する実行制御部を備える、
請求項１〜９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記記録制御部は、第５イベントの発生から所定時間以内に第５処理が行われたことを検出した場合、前記５イベントと前記第５処理の対応関係を第５プログラムとして記録媒体に記録する、
請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記記録制御部は、前記記録された第５プログラムに基づいて、前記第５イベントの発生に対し前記第５処理を行うべきかユーザに対し確認を行う、
請求項１１に記載の情報処理装置。
【請求項１３】
前記記録制御部は、第６イベントの発生後に第６処理が所定以上の頻度で行われたことを検出した場合、前記６イベントと前記第６処理との対応関係を第６プログラムとして記録媒体に記録する、
請求項１〜１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記記録制御部は、前記記録された第６プログラムに基づいて、前記第６イベントの発生に対し前記第６処理を行うべきかユーザに対し確認を行う、
請求項１３に記載の情報処理装置。
【請求項１５】
前記記録制御部は、前記対応関係を前記プログラムとして前記記録媒体に記録する旨の指示を取得したとき、実質的に対応するプログラムが既に前記記録媒体に記録されている場合、前記記録するよう指示されたプログラムが既に記録されている旨をユーザに伝える、
請求項１〜１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記記録制御部は、前記テキストデータから抽出された前記イベントと前記処理とのうち少なくとも一方に含まれるオブジェクトに該当するオブジェクトが複数検出された場合、前記テキストデータを取得した場所およびユーザの属性のうち少なくとも一方に基づいて、前記イベントと前記処理とのうち少なくとも一方に含まれる前記オブジェクトを決定する、
請求項１〜１５のいずれか１項に記載の情報処理装置。
【請求項１７】
前記テキストデータは、検出されたユーザの音声から得られる、
請求項１〜１６のいずれか１項に記載の情報処理装置。
【請求項１８】
前記情報処理装置は、
前記記録媒体に記録した前記プログラムを、テキストおよび図形のうち少なくとも一方を用いて簡略化してユーザに提示する提示制御部を備える、
請求項１〜１７のいずれか１項に記載の情報処理装置。
【請求項１９】
前記テキストデータ解析部は、あらかじめ定められた情報および機械学習の少なくとも一方に基づいて、前記イベントと前記処理とを抽出して前記プログラムを生成する、
請求項１〜１８のいずれか１項に記載の情報処理装置。
【請求項２０】
前記テキストデータ解析部は、前記テキストデータを解析することで前記イベントの条件を抽出し、前記イベントの条件を、前記イベントと前記処理との対応関係を示す前記プログラムに関連付けて前記記録媒体に記録する、
請求項１〜１９のいずれか１項に記載の情報処理装置。
【請求項２１】
前記テキストデータ解析部は、前記イベントと前記処理との対応関係を示す前記プログラムの生成に必要なイベントの条件が前記解析したテキストデータから抽出できない場合、前記必要なイベントの条件の提示をユーザに依頼する、
請求項２０に記載の情報処理装置。
【請求項２２】
前記イベントは、ユーザの発話、所定の環境変化、センサによる所定の信号の検出および所定の機器の動作のうち少なくともいずれか一つを含む、
請求項１〜２１のいずれか１項に記載の情報処理装置。
【請求項２３】
前記処理は、所定の機器に対する操作、所定のメディアに対する操作、所定のアプリケーションの実行のうち少なくともいずれか一つを含む、
請求項１〜２２のいずれか１項に記載の情報処理装置。
【請求項２４】
前記情報処理装置は、ユーザの音声から生成されたテキストデータの解析に応じたプログラムに基づいて、前記イベントが発生したときに前記処理の自動的な実行を制御するエージェントである、
請求項１〜２３のいずれか１項に記載の情報処理装置。
【請求項２５】
プロセッサにより、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出することと、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録することと、
第３イベントの発生を検出したときに前記第３イベントに対応する第３プログラムが記録されている場合、第３処理の実行を制御し、第４イベントの発生を検出したときに前記第４イベントに対応する第４プログラムが記録されている場合、第４処理の実行を制御し、前記第３イベントと前記第４イベントが同一のイベントである場合、前記第３イベントおよび前記第４イベントのうち少なくとも一方が発生したとき、前記第３処理および前記第４処理の自動的な実行を制御することと、
を含む、情報処理方法。
【請求項２６】
プロセッサにより、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出することと、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録することと、
前記対応関係をプログラムとして前記記録媒体に記録する旨の指示を取得したとき、処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記指示に含まれる処理を少なくとも一部実行できない旨をユーザに伝えることと、
を含む、情報処理方法。
【請求項２７】
プロセッサにより、自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出することと、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録することと、
前記プログラムを記録媒体に記録するとき、前記テキストデータに含まれる前記イベントが終了した際に、前記処理を回復させる回復プログラムを前記記録媒体に自動的に記録することと、
を含む、情報処理方法。
【請求項２８】
コンピュータを、
自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録する記録制御部と、
第３イベントの発生を検出したときに前記第３イベントに対応する第３プログラムが記録されている場合、第３処理の実行を制御し、第４イベントの発生を検出したときに前記第４イベントに対応する第４プログラムが記録されている場合、第４処理の実行を制御し、前記第３イベントと前記第４イベントが同一のイベントである場合、前記第３イベントおよび前記第４イベントのうち少なくとも一方が発生したとき、前記第３処理および前記第４処理の自動的な実行を制御する実行制御部と、
を備える情報処理装置として機能させるためのプログラム。
【請求項２９】
コンピュータを、
自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録し、前記対応関係をプログラムとして前記記録媒体に記録する旨の指示を取得したとき、処理を行うための機器およびアプリケーションのうち少なくとも一方が検出されない場合、前記指示に含まれる処理を少なくとも一部実行できない旨をユーザに伝える記録制御部と、
を備える情報処理装置として機能させるためのプログラム。
【請求項３０】
コンピュータを、
自然言語による対話に応じたテキストデータを解析し、前記テキストデータに含まれるイベントおよび前記イベントに応じて実行されるべき処理を抽出するテキストデータ解析部と、
前記イベントと前記処理との対応関係をプログラムとして記録媒体に記録し、前記プログラムを記録媒体に記録するとき、前記テキストデータに含まれる前記イベントが終了した際に、前記処理を回復させる回復プログラムを前記記録媒体に自動的に記録する記録制御部と、
を備える情報処理装置として機能させるためのプログラム。
【国際調査報告】
2017141502.tif 000036
2017141502.tif 000037
2017141502.tif 000038
2017141502.tif 000039