(57)【特許請求の範囲】
【請求項１】
ユーザの入力情報を取得するように構成された情報取得部と、
前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案するように構成された提案制御部と、
を備え、
前記提案制御部が、前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案するように構成されている、
情報処理装置。
【請求項２】
前記取得タイミングは、前記入力情報を取得しているときのコンテキスト、前記入力情報を取得する前のコンテキスト、及び前記入力情報を取得した後のコンテキストのうち少なくとも一方に基づくタイミングである、
請求項１に記載の情報処理装置。
【請求項３】
前記入力要素は、前記第１プログラムに含まれる第１処理を含む、
請求項１または２に記載の情報処理装置。
【請求項４】
前記第１関連要素は、前記第１処理と関連する条件及び前記第１処理と関連する第２処理のうち少なくともいずれか一方を含む、
請求項３に記載の情報処理装置。
【請求項５】
前記入力要素は、前記第１プログラムに含まれる第３処理の目的語を含む、
請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
前記第２関連要素は、前記第３処理の目的語と関連する第４処理を含む、
請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置は、
前記自動化の提案を受け入れる旨の回答が前記ユーザから得られた場合、前記第２プログラムの実行制御の自動化を行う自動化処理部を備える、
請求項１〜６のいずれか一項に記載の情報処理装置。
【請求項８】
前記情報処理装置は、
前記自動化に従って前記第２プログラムの実行制御を行う実行制御部を備える、
請求項７に記載の情報処理装置。
【請求項９】
前記提案制御部は、所定の条件が満たされた場合には、前記自動化の提案を行わない、
請求項７または８に記載の情報処理装置。
【請求項１０】
前記所定の条件は、前記入力情報に関連する制御の当座の実行の提案を受け入れる旨の回答が前記ユーザから第１回数を超えて得られたという条件、及び、前記入力情報に関連する制御の当座の実行が第２回数を超えて提案されたという条件の少なくともいずれか一方を含む、
請求項９に記載の情報処理装置。
【請求項１１】
前記提案制御部は、前記入力要素に関連する関連要素の候補が複数存在する場合、複数の候補それぞれに関連するソフトウェアの起動回数に基づいて前記自動化を提案する、
請求項１〜１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記情報処理装置は、
前記ユーザによって所定の入力操作がなされた場合に、前記提案に関する情報を前記ユーザに推薦する推薦制御部を備える、
請求項１〜１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記提案に関する情報は、前記提案の内容、前記取得タイミングが生じた回数、前記第２プログラムが生成された回数の少なくともいずれか一つを含む、
請求項１２に記載の情報処理装置。
【請求項１４】
前記推薦制御部は、複数の提案が存在する場合、前記複数の提案のうち、対応する前記取得タイミングの回数、及び、対応する関連要素に関連するソフトウェアの起動回数の少なくともいずれか一方に基づいて、前記複数の提案それぞれに関する情報を推薦する、
請求項１２または１３に記載の情報処理装置。
【請求項１５】
前記入力情報は、アプリケーションソフトウェアからの入力情報、システムソフトウェアからの入力情報、ユーザの音声、前記ユーザの行動に関する画像前記ユーザが操作した機器から入力された情報及び前記ユーザが操作した機器の動作のうち少なくとも一つを含む、
請求項１〜１４のいずれか一項に記載の情報処理装置。
【請求項１６】
前記第１プログラムと前記第２プログラムとは、互いに独立したソフトウェアに関連するプログラムを含む、
請求項１〜１５のいずれか一項に記載の情報処理装置。
【請求項１７】
前記第１プログラムと前記第２プログラムとは、同一のソフトウェアに関連するプログラムを含む、
請求項１〜１５のいずれか一項に記載の情報処理装置。
【請求項１８】
前記ソフトウェアは、システムソフトウェア及びアプリケーションソフトウェアの少なくともいずれか一方を含む、
請求項１６または１７に記載の情報処理装置。
【請求項１９】
ユーザの入力情報を取得することと、
プロセッサにより、前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案することと、
を含み、
前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案することを含む、
情報処理方法。
【請求項２０】
コンピュータを、
ユーザの入力情報を取得するように構成された情報取得部と、
前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案するように構成された提案制御部と、
を備え、
前記提案制御部が、前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案するように構成されている、
情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ユーザにアプリケーションを推薦する技術として様々な技術が開示されている。例えば、１のアプリケーションの実行時に当該１のアプリケーションの関連情報に応じた他のアプリケーションをユーザに推薦する技術が開示されている（例えば、特許文献１参照）。また、アプリケーションが実行中の機能に応じた機能又は他のアプリケーションをユーザに推薦する技術が開示されている（例えば、特許文献２参照）。【０００３】
また、ユーザへのアプリケーションの推薦以外に、ユーザに対してアプリケーション実行の自動化を提案する技術も存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１５７２０７号公報
【特許文献２】特開２０１１−９０３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、ユーザにとって利便性の高いタイミングでプログラム実行の自動化を提案することが可能な技術が提供されることが望まれる。
【課題を解決するための手段】
【０００６】
本開示によれば、ユーザの入力情報を取得するように構成された情報取得部と、前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案するように構成された提案制御部と、を備え、前記提案制御部が、前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案するように構成されている、情報処理装置が提供される。【０００７】
本開示によれば、ユーザの入力情報を取得することと、プロセッサにより、前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案することと、を含み、前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案することを含む、情報処理方法が提供される。【０００８】
本開示によれば、コンピュータを、ユーザの入力情報を取得するように構成された情報取得部と、前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案するように構成された提案制御部と、を備え、前記提案制御部が、前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案するように構成されている、情報処理装置として機能させるためのプログラムが提供される。
【発明の効果】
【０００９】
以上説明したように本開示によれば、ユーザにとって利便性の高いタイミングでプログラム実行の自動化を提案することが可能な技術が提供される。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１０】
【図１】本開示の一実施形態に係る情報処理装置の概要について説明するための図である。
【図２】情報処理装置の機能構成例を示す図である。
【図３】制御部の詳細構成例を示す図である。
【図４】第２プログラムの自動実行イメージを示す図である。
【図５】ユーザへの自動化提案のパターンの分類表である。
【図６】１つ目のパターンの具体例を示す図である。
【図７】１つ目のパターンにおける自動化設定イメージを示す図である。
【図８】２つ目のパターンの具体例を示す図である。
【図９】２つ目のパターンにおける自動化設定イメージを示す図である。
【図１０】３つ目のパターンの具体例を示す図である。
【図１１】３つ目のパターンにおける自動化設定イメージを示す図である。
【図１２】４つ目のパターンの具体例を示す図である。
【図１３】４つ目のパターンにおける自動化設定イメージを示す図である。
【図１４】５つ目のパターンの具体例を示す図である。
【図１５】５つ目のパターンにおける自動化設定イメージを示す図である。
【図１６】６つ目のパターンの具体例を示す図である。
【図１７】６つ目のパターンにおける自動化設定イメージを示す図である。
【図１８】７つ目のパターンの具体例を示す図である。
【図１９】７つ目のパターンにおける自動化設定イメージを示す図である。
【図２０】８つ目のパターンの具体例を示す図である。
【図２１】８つ目のパターンにおける自動化設定イメージを示す図である。
【図２２】９つ目のパターンの具体例を示す図である。
【図２３】９つ目のパターンにおける自動化設定イメージを示す図である。
【図２４】１０個目のパターンの具体例を示す図である。
【図２５】１１個目のパターンの具体例を示す図である。
【図２６】１２個目のパターンの具体例を示す図である。
【図２７】提案に関する情報の表示例を示す図である。
【図２８】ログの分析結果（ユーザＵの行動の分析結果）に基づいてイベントと処理との対応関係を把握する例を説明するための図である。
【図２９】イベント発生時の提案生成動作の第一の例を示す図である。
【図３０】イベント発生時の動作の第二の例を示す図である。
【図３１】プログラム登録時の提案生成動作の例を示す図である。
【図３２】情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１２】
また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なる数字を付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
【００１３】
なお、説明は以下の順序で行うものとする。
１．本開示の実施形態
１．１．概要
１．２．機能構成例
１．３．機能詳細
１．４．ハードウェア構成例
２．むすび
【００１４】
＜１．本開示の実施形態＞
［１．１．概要］
まず、図面を参照しながら、本開示の一実施形態に係る情報処理装置の概要について説明する。図１は、本開示の一実施形態に係る情報処理装置の概要について説明するための図である。本開示の一実施形態においては、図１に示すように、情報処理装置１０とユーザＵとが登場する。
【００１５】
なお、本明細書においては、情報処理装置１０がエージェントとして機能する場合を主に想定する。ここで、エージェントは、ユーザＵの入力情報を解釈することによってユーザＵの意図を自律的に判断し、ユーザＵの意図に従った処理の実行を制御する装置を指す。本明細書においては、情報処理装置１０がロボットである場合を想定し、情報処理装置１０をエージェントと称することがある。
【００１６】
ユーザＵによる入力情報は様々であるが、一例として、ユーザＵの状況に関する情報が挙げられる。ユーザＵの状況に関する情報としては、ユーザＵが抱える問題が挙げられる。しかし、ユーザＵの状況に関する情報は、ユーザＵが抱える問題に限定されない。例えば、ユーザＵの状況に関する情報は、ユーザＵの要求であってもよいし、ユーザＵの質問であってもよい。あるいは、ユーザＵの状況に関する情報は、ユーザＵの状況に関するその他の情報であってもよい。
【００１７】
図１を参照しながら、情報処理装置１０の概要について説明した。
【００１８】
［１．２．機能構成例］
続いて、情報処理装置１０の機能構成例について説明する。図２は、情報処理装置１０の機能構成例を示す図である。図２に示したように、情報処理装置１０は、音出力部１１１、集音部１１３、撮像部１１４、距離検出部１１５、制御部１２０、記憶部１３０、通信部１４０および表示部１５０を有している。情報処理装置１０と制御対象機器２０とは、ネットワーク（例えば、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）など）を介して通信を行うことが可能である。また、情報処理装置１０は、通信ネットワーク９３１を介してサーバ装置３０と接続されている。通信ネットワーク９３１は、例えば、インターネットにより構成される。
【００１９】
制御対象機器２０は、情報処理装置１０からコマンドを受け付けて、そのコマンドを実行することが可能な機器である。ここで、制御対象機器２０の種類は特に限定されない。例えば、制御対象機器２０は、テレビジョン装置であってもよいし、レコーダであってもよいし、空調機（以下、「エアコン」とも言う。）であってもよいし、コーヒーメーカであってもよいし、照明であってもよい。
【００２０】
音出力部１１１は、音を出力する機能を有する。例えば、音出力部１１１は、スピーカを含んでおり、スピーカによって音を出力する。音出力部１１１に含まれるスピーカの数は１以上であれば特に限定されない。そして、音出力部１１１に含まれる１以上のスピーカそれぞれが設けられる位置も特に限定されない。なお、音出力部１１１は、音を出力する機能を有すれば、スピーカ以外の形態（例えば、イヤホン、ヘッドセットなど）の音出力装置を含んでもよい。
【００２１】
集音部１１３は、集音によって音を得る機能を有する。例えば、集音部１１３は、マイクロフォンを含んでおり、マイクロフォンによって集音する。集音部１１３に含まれるマイクロフォンの数は１以上であれば特に限定されない。そして、集音部１１３に含まれる１以上のマイクロフォンそれぞれが設けられる位置も特に限定されない。なお、集音部１１３は、音情報を集音する機能を有すれば、マイクロフォン以外の形態の集音装置を含んでもよい。
【００２２】
撮像部１１４は、撮像により画像を入力する機能を有する。例えば、撮像部１１４はカメラを含んでおり、カメラによって撮像された画像を入力する。撮像部１１４に含まれるカメラの数は１以上であれば特に限定されない。そして、撮像部１１４に含まれる１以上のカメラそれぞれが設けられる位置も特に限定されない。また、１以上のカメラには、単眼カメラが含まれてもよいし、ステレオカメラが含まれてもよい。
【００２３】
距離検出部１１５は、ユーザまでの距離を検出する機能を有する。例えば、距離検出部１１５は測距センサを含んでおり、測距センサによって検出されたユーザまでの距離を取得する。測距センサが設けられる位置は特に限定されない。また、測距センサの種類は特に限定されない。例えば、距離センサは、赤外線距離センサであってもよいし、超音波距離センサであってもよい。
【００２４】
通信部１４０は、通信ネットワーク９３１を介して通信ネットワーク９３１に接続されたサーバ装置３０からのデータの取得および当該サーバへのデータの提供を行う機能を有する。例えば、通信部１４０は、通信インターフェースにより構成される。なお、通信ネットワーク９３１に接続されるサーバ装置３０は、１つであってもよいし、複数であってもよい。
【００２５】
記憶部１３０は、制御部１２０によって実行されるプログラムを記憶したり、プログラムの実行に必要なデータを記憶したりする記録媒体である。また、記憶部１３０は、制御部１２０による演算のためにデータを一時的に記憶する。記憶部１３０は、磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイスなどにより構成される。
【００２６】
表示部１５０は、各種の画面を表示する機能を有する。本実施形態においては、表示部１５０がプロジェクタである場合を主に想定するが、表示部１５０の種類は限定されない。例えば、表示部１５０は、ユーザに視認可能な表示を行うことが可能なディスプレイであればよく、液晶ディスプレイであってもよいし、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイであってもよい。また、本明細書においては、表示部１５０が比較的高い位置（例えば、壁など）に表示を行ったり、比較的低い位置（例えば、エージェントのお腹、ユーザの手元など）に表示を行ったりする場合を主に想定するが、表示部１５０が表示を行う位置も限定されない。
【００２７】
制御部１２０は、情報処理装置１０の各部の制御を実行する。図３は、制御部１２０の詳細構成例を示す図である。図３に示したように、制御部１２０は、情報取得部１２１、認識部１２２、プログラム生成部１２３、提案制御部１２４、自動化処理部１２５、推薦制御部１２６、イベント検出部１２７および実行制御部１２８を備える。これらの各機能ブロックについての詳細は、後に説明する。なお、制御部１２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）などで構成されていてよい。制御部１２０がＣＰＵなどといった処理装置によって構成される場合、かかる処理装置は、電子回路によって構成されてよい。
【００２８】
なお、以下の説明において、音声（ｖｏｉｃｅまたはｓｐｅｅｃｈ）と音（ｓｏｕｎｄ）とは区別して用いられる。すなわち、音声（ｖｏｉｃｅまたはｓｐｅｅｃｈ）は、集音部１１３によって集音された音のうち、主にユーザの発話を示すのに対し、音（ｓｏｕｎｄ）は、ユーザの発話の他、物音などを含む。
【００２９】
以上、本実施形態に係る情報処理装置１０の機能構成例について説明した。
【００３０】
［１．３．機能詳細］
続いて、情報処理装置１０の機能詳細について説明する。近年、ユーザにアプリケーションを推薦する技術として様々な技術が開示されている。例えば、１のアプリケーションの実行時に当該１のアプリケーションの関連情報に応じた他のアプリケーションをユーザに推薦する技術が開示されている。また、アプリケーションが実行中の機能に応じた機能又は他のアプリケーションをユーザに推薦する技術が開示されている。
【００３１】
また、ユーザへのアプリケーションの推薦以外に、ユーザに対してアプリケーション実行の自動化を提案する技術も存在する。しかし、ユーザがアプリケーションの自動化を望むタイミングとアプリケーションの自動化が提案されるタイミングとの間には乖離がある場合がある。このため、ユーザに自動化設定のメリットを感じさせたとしても、そのユーザに自動化設定を行わせるのは困難であるのが一般的である。
【００３２】
また、自動化設定のメリットがあまり感じられないタイミングで自動実行されるアプリケーションの組み合わせをユーザに見せたとしても、ユーザはそのアプリケーションの組み合わせによって何が実現されるかを想像しようとしないことが予想される。一方、その組み合わせによって何が実現されるかを示す説明文をユーザに見せようとすれば、多くの説明文を読む必要が生じるために、その組み合わせから実行させたい組み合わせを選択するのが困難である。
【００３３】
そこで、本明細書においては、ユーザにとって利便性の高いタイミングでプログラム実行の自動化を提案することが可能な技術について主に提案する。具体的には、情報取得部１２１は、ユーザＵの入力情報を取得するように構成されている。また、認識部１２２は、入力情報から第１プログラムを認識するように構成されている。
【００３４】
入力情報は、ユーザＵの音声であってもよい。このとき、集音部１１３によって集音される音情報から認識部１２２によってユーザＵの音声がテキストデータとして認識される。あるいは、入力情報は、撮像部１１４によって撮像されるユーザＵの行動に関する画像であってもよい。ここで、ユーザＵの行動に関する画像には、ユーザＵのジェスチャあるいは制御対象機器２０の動作情報が含まれてよい。この制御対象機器２０の動作情報は、制御対象機器の画像変化と見做されてよい。このとき、撮像部１１４によって撮像される画像から認識部１２２によってユーザＵの行動がテキストデータとして認識される。あるいは、ユーザＵが操作した制御対象機器２０から当該操作に基づいて入力された情報であってもよい。このとき、当該操作に基づいて入力された情報から認識部１２２によってユーザＵの操作がテキストデータとして認識される。ここで、入力情報としてのユーザＵのジェスチャは、制御対象機器２０のコントローラを操作するユーザＵの動作、ユーザＵの手の動き、あるいはユーザＵの腕の動きであってよい。ユーザＵの手の動きやユーザＵの腕の動きからは、ユーザＵのジェスチャを入力情報として受信するジェスチャーコントロールデバイスの動作が認識され得る。ジェスチャーコントロールデバイスは、例えばユーザのジェスチャを認識して映像等を出力する接触式デバイスあるいは非接触式デバイスである。
【００３５】
認識部１２２は、認識したテキストデータに基づいて第１プログラムを認識する。なお、第１プログラムの認識はどのようになされてもよい。一例として、テキストデータと第１プログラムとはあらかじめ関連付けられてデータベースに登録されていてよい。そして、認識部１２２は、認識したテキストデータに応じた第１プログラム（例えば、認識したテキストデータに一致または類似するテキストデータに関連付けられた第１プログラム）をデータベースから取得すればよい。
【００３６】
このようにして認識された第１プログラムは、記憶部１３０によって記憶される。第１プログラムは、少なくとも処理を含んでおり、実行制御部１２８によって処理の実行が制御される。すなわち、情報処理装置１０がエージェントとしてユーザＵによる入力情報を（例えば、即座に）代理実行する。第１プログラムが、イベントと処理とを含んでいる場合には、イベント検出部１２７によってイベントが検出された場合に、実行制御部１２８によって処理の実行が制御される。すなわち、情報処理装置１０がエージェントとしてユーザＵによる入力情報を将来的に代理実行する。
【００３７】
そして、プログラム生成部１２３は、第１プログラムから第２プログラムを生成するように構成されている。提案制御部１２４は、入力情報の取得タイミングに、入力情報に関連する制御の自動化を提案するように構成されている。このとき、提案制御部１２４は、第２プログラムの実行制御の自動化を提案するように構成されている。かかる構成によれば、ユーザＵにとって利便性の高いタイミングでプログラム実行の自動化を提案することが可能となる。
【００３８】
ここで、入力情報の取得タイミングは、入力情報が取得された瞬間的なタイミングに限定されない。すなわち、入力情報の取得タイミングは、ある程度の時間的な幅を持った概念であり得る。例えば、入力情報の取得タイミングは、入力情報を取得しているときのコンテキスト、入力情報を取得する前のコンテキスト、及び入力情報を取得した後のコンテキストのうち少なくとも１つに基づくタイミングであってよい。
【００３９】
具体的には、入力情報の取得タイミングは、情報処理装置１０が入力情報を取得したときであってもよいし、入力情報を取得してから所定の時間が経過した後（例えば、入力情報に関連して発生した情報処理装置１０とユーザＵとの間の他の会話の切れ目または当該他の会話が終わったとき）であってもよい。あるいは、入力情報の取得タイミングは、入力情報を代理実行している最中であってもよいし、入力情報を代理実行し終わったときであってもよい。これらの入力情報が取得された状況の少なくとも１つが、入力情報を取得しているときのコンテキストあるいは入力情報を取得した後のコンテキストとして見做されてよい。また、入力情報を取得する以前に情報処理装置１０が取得した環境情報が、入力情報を取得する前のコンテキストとして見做されてよい。これらのコンテキストのうち少なくとも１つに基づくタイミングにおいて適宜に入力情報に関連する制御の自動化が提案されてよい。
【００４０】
自動化の提案はどのようになされてもよいが、音出力部１１１による提案内容の音声出力を制御することによってなされてもよいし、表示部１５０による提案内容の表示を制御することによってなされてもよい。
【００４１】
自動化処理部１２５は、自動化の提案を受け入れる旨の回答がユーザＵから得られた場合、第２プログラムの実行制御の自動化を行う。ユーザＵからの回答も、集音部１１３によって集音される音情報から認識されるユーザＵの音声として得られてもよいし、撮像部１１４によって撮像される画像から認識されるユーザＵのジェスチャとして得られてもよい。
【００４２】
例えば、第２プログラムにイベントと処理とが含まれている場合、第２プログラムの実行制御の自動化は、当該イベントが検出された場合に当該処理が実行されるように第２プログラムを記憶部１３０に記録することを意味し得る。実行制御部１２８は、かかる自動化に従って第２プログラムの実行制御を行う。
【００４３】
自動化の提案は、入力情報の取得タイミングに毎回なされてもよいが、入力情報の取得タイミングに毎回自動化の提案がなされることは、ユーザＵに望まれていない可能性もある。そこで、提案制御部１２４は、所定の条件が満たされないうちは、入力情報の取得タイミングにプログラムの当座の実行の提案を行い、所定の条件が満たされた場合には、自動化を提案するようにしてもよい。また、ユーザＵが自動化の提案を了承した後は、自動化の提案を行わないようにしてもよい。あるいは、ユーザＵが自動化の提案を断った場合は、自動化の提案を行わないようにしてもよい。ここで、当座の実行は、所定の条件がそろった際にユーザＵの受け入れに基づいて実行される代行処理としてみなされてもよい。
【００４４】
例えば、当座の実行の提案がユーザＵにある程度受け入れられたら、次からは当座の実行の提案ではなく自動化の提案を行ってもユーザＵにとって不都合は少ないと考えられる。そこで、自動化の提案を行わないための所定の条件は、当座の実行の提案を受け入れる旨の回答がユーザＵからある回数（第１回数）を超えて得られ、かつ、ユーザＵが自動化の提案を受け入れたという条件であってもよい。
【００４５】
具体例として、２９度になったらエアコンをつける作業が自動化されるケースについて説明する。まず、提案制御部１２４は、２９度になった際に“エアコンをつける？”とユーザＵに確認し、２９度になるとエアコンをつけることがユーザＵにとって望ましいことなのかを確認する（当座の実行の提案）。その当座の実行の提案が連続で数回受け入れられた場合に、あるいは所定頻度以上受け入れられた場合に、提案制御部１２４は常に２９度でエアコンをつけるという自動処理をユーザＵに提案する。
【００４６】
一般に、ユーザが暑いと感じる温度（例えば、２９度）は個々のユーザに依存している。また、ユーザが暑いと感じる温度において、ユーザがエアコンを付けるか否かもまた個々のユーザに依存する。例えば、ユーザが２９度で暑いと感じる場合において、“２９度でエアコンを付けますか？”とユーザが聞かれても、ユーザは２８度でエアコンを付けることを望む場合や、３０度でエアコンを付けることを望む場合がある。
【００４７】
上記事情に基づくユーザＵへの自動化の提案の仕方について具体例を以下に述べる。まず、提案制御部１２４は、第１のステップとして、
“２９度になったからエアコンをつけるね”と当座の実行を提案する。すなわち、提案制御部１２４は、いきなり自動化を提案せずに当座の実行を例えば数回程度提案する。これにより、ユーザＵが当座の実行の提案を繰り返し受け入れたか否かが確認される。ここで、当座の実行の提案は１回のみ行われても良い。当座の実行の提案が受け入れられた後に、提案制御部１２４はユーザＵに対し自動化の提案として、例えば“２９度になったらエアコンをつけるね”と確認を行う。これらの提案ステップによれば、当座の実行の提案により、ユーザＵは２９度でエアコンをつけると心地よいということを理解することができる。
【００４８】
別の具体例として、自動化の提案の条件が成立した場合に、いきなり自動化の提案がなされるケースについて説明する。例えば、エアコンを付けたらサーキュレータを回すなどのケースにおいては、ユーザＵが２９度になったらエアコンを付けることを望んでいるか否かの把握と比較して、エアコンとサーキュレータを一緒に使いたいというユーザＵの意図を容易に把握できる。このような場合には、例えばユーザがエアコンを付けたという条件が成立した場合に、提案制御部１２４は当座の実行の提案を行わずにサーキュレータを回すことを提案しても良い。この際、自動化を提案する理由として、例えばエアコンを使うときにはサーキュレータを使うと省エネになるといった、自動化を提案する理由を知識（情報）としてユーザＵに提供されても良い。このような知識は、例えばサーバから取得されればよい。
【００４９】
あるいは、当座の実行の提案あるいは自動化の提案がユーザＵに対してある程度行われたら、次の当座の実行の提案あるいは自動化の提案に対してユーザＵは煩わしさを感じてしまうと考えられる。そこで、当座の実行の提案あるいは自動化の提案を行わないための所定の条件は、当座の実行の提案がある回数（第２回数）を超えてユーザＵに提案され、かつ、自動化の提案を少なくとも一回行ったという条件であってもよい。この場合、当座の実行の提案あるいは自動化の提案を行わないための所定の条件は、自動化の提案に対するユーザＵの回答に依存しなくてもよい。
【００５０】
なお、第１プログラムと第２プログラムとの関係性は特に限定されない。例えば、第１プログラムと第２プログラムとは、互いに独立したソフトウェアに関連するプログラムを含んでもよいし、同一のソフトウェアに関連するプログラムを含んでもよい。ここで、ソフトウェアは、アプリケーションに限定されず、システムソフトウェア及びアプリケーションソフトウェアの少なくともいずれか一方を含むような概念であってよい。
【００５１】
例えば、第１プログラムと第２プログラムとが、互いに独立したソフトウェアに関連するプログラムを含む場合としては、第１プログラムがエアコンのシステムソフトウェアを制御し、第２プログラムがサーキュレータのシステムソフトウェアを制御する場合などが想定される。一方、第１プログラムと第２プログラムとが、同一のソフトウェアに関連するプログラムを含む場合としては、第１プログラムおよび第２プログラムが共に目覚まし時計のアラームを鳴らすアプリケーションを制御する場合などが想定される。
【００５２】
プログラム生成部１２３が、第１プログラムから第２プログラムを生成する手法は限定されない。例えば、プログラム生成部１２３は、第１プログラムに含まれる入力要素と関連する第１関連要素の追加を第１プログラムに行うことによって第２プログラムを生成してもよい。入力要素は、第１プログラムに含まれる処理であってもよいし、第１プログラムに含まれる処理の目的語であってもよい。
【００５３】
あるいは、プログラム生成部１２３は、第１プログラムに含まれる入力要素と関連する第２関連要素への入力要素の置換を第１プログラムに行うことによって第２プログラムを生成してもよい。
【００５４】
入力要素に関連する関連要素の候補は、単数である場合もあれば、複数存在する場合もあり得る。このとき、複数の候補はどのような優先度（例えば、提案順序）でユーザＵに提案されてもよい。一例として、提案制御部１２４は、入力要素に関連する関連要素の候補が複数存在する場合、複数の候補それぞれに関連するソフトウェアの起動回数に基づいて自動化を提案してもよい。例えば、起動回数が多いソフトウェアと連携する候補が優先的にユーザＵに提案されてもよい。
【００５５】
また、インストールされていないソフトウェアと連携する候補もあり得る。例えば、提案制御部１２４は、そのような候補の優先度を、インストールされているソフトウェアと連携する候補の優先度よりも低下させてよい。また、提案制御部１２４は、インストールされていないソフトウェアと連携する候補に対して、インストールが必要である旨を示すマークを付してもよい。以下では、第１プログラムに含まれる入力要素を「連想キー」と称する場合がある。
【００５６】
続いて、第２プログラムが自動実行されるイメージを説明する。図４は、第２プログラムの自動実行イメージを示す図である。図４に示すように、第２プログラムが、トリガ「２９度で」、処理「在室していたら」、処理「２５度設定でエアコンを付けて」、処理「ガスがついていなければ」、処理「サーキュレータを回す」を含む場合を想定する。
【００５７】
まず、イベント検出部１２７によって定期的に「温度取得」がなされ、温度が「２９度を超えた」というイベントが検出されると、実行制御部１２８は、処理「在室チェック」の実行を制御する。イベント検出部１２７によって、定期的に「人感センサデータの取得」がなされ、人が在室しているというイベントが検出されると、実行制御部１２８は、処理「２５度設定でエアコンを付ける」の実行を制御する。
【００５８】
続いて、実行制御部１２８は、処理「２５度設定でエアコンを付ける」の完了自体をイベントの発生として扱い、処理「ガス情報の取得」の実行を制御する。イベント検出部１２７によって、定期的に「ガスセンサデータの取得」がなされ、ガスが付いていないというイベントが検出されると、実行制御部１２８は、処理「サーキュレータを回す」の実行を制御する。処理「サーキュレータを回す」の完了自体もイベントの発生として扱われ得る。
【００５９】
ここで、ユーザＵへの自動化提案のパターンを分類する。図５は、ユーザＵへの自動化提案のパターンの分類表である。図５においては、ユーザＵが「Ｕ」と示され、情報処理装置１０が「Ａ」と示されている。まず、自動化提案のタイミングとして大きく４つのタイミングが存在する。１つ目のタイミングとして、ユーザＵから情報処理装置１０に入力情報の実行依頼を行うタイミング（情報処理装置１０が第１プログラムを代行実行するタイミング）が挙げられる（（１）〜（３））。
【００６０】
２つ目のタイミングとして、将来的に情報処理装置１０によって第１プログラムが代行実行される第１プログラムが自動化設定されたタイミングが挙げられる（（４）〜（６））。３つ目のタイミングとして、ユーザＵ自身が処理を実行させたタイミングが挙げられる（（７）〜（９））。４つ目のタイミングとして、情報処理装置１０とユーザＵとの会話がなされるタイミングが挙げられる（（１０）〜（１２））。
【００６１】
これらの４つのタイミングそれぞれにおいて３つの提案内容が存在し得る。１つ目の提案内容として、第１プログラムに含まれる処理を連想キーとし、この処理に対して条件を付することによって生成された第２プログラムの自動化提案が挙げられる。２つ目の提案内容として、第１プログラムに含まれる処理を連想キーとし、この処理に対して他の処理を追加することによって生成された第２プログラムの自動化提案が挙げられる。３つ目の提案内容として、第１プログラムに含まれる処理の目的語を連想キーとし、この目的語の活用によって生成された第２プログラムの自動化提案が挙げられる。
【００６２】
したがって、全体で１２個の自動化提案のパターンが想定される。以下、この１２個の自動化提案のパターンそれぞれについて順次に説明を行う。図６は、１つ目のパターンの具体例を示す図である。また、図７は、１つ目のパターンにおける自動化設定イメージを示す図である。図６に示すように、ユーザＵが入力情報「天気を教えて」を入力すると、情報処理装置１０は、入力情報「天気を教えて」に対応して、処理「天気情報取得」と処理「天気情報の通知」を行う。
【００６３】
また、図６に示すように、情報処理装置１０は、天気情報取得のタイミングで「雨の時には教えましょうか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「おねがい」を入力すると、情報処理装置１０は、「雨の時には教える」という処理を自動化し、それ以降、定期的に天気情報を取得し、雨の予報のときには、自動的にユーザＵに通知を行うようになる。
【００６４】
図７を参照しながら具体的に説明する。ユーザＵが入力情報「天気を教えて」を入力すると、情報取得部１２１は、入力情報「天気を教えて」を取得し、認識部１２２は、この入力情報「天気を教えて」から、上記したような手法によって第１プログラム（処理「天気情報取得」と処理「天気情報の通知」）を認識する。実行制御部１２８は、第１プログラムの実行を制御する。
【００６５】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる第１処理「天気情報取得」を入力要素として、この入力要素に関連する条件「雨だったら」を第１関連要素として取得する。プログラム生成部１２３は、この条件「雨だったら」を処理「天気予報の通知」に追加することによって第２プログラムを生成する。
【００６６】
このとき、第２プログラム（処理「天気情報取得」と条件「雨だったら」と処理「天気情報の通知」）が自動的に実行されるように、プログラム生成部１２３は、処理「天気情報取得」を実行させるためのイベント発火を定期的に行う自動処理ルーチンを第２プログラムに付してよい。図７に示した例では、１０分おきのイベント発火が付されているが、イベント発火の間隔は、１０分おきに限定されない。
【００６７】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、天気情報が取得され、天気情報が雨だったら、天気情報がユーザＵに通知されるようになる。
【００６８】
図８は、２つ目のパターンの具体例を示す図である。また、図９は、２つ目のパターンにおける自動化設定イメージを示す図である。図８に示すように、ユーザＵが入力情報「エアコンを付けて」を入力すると、情報処理装置１０は、入力情報「エアコンを付けて」に対応して、処理「エアコンを付ける」を行う。
【００６９】
また、図８に示すように、情報処理装置１０は、エアコンを付ける処理のタイミングで「エアコンをつけたらサーキュレータも回しますか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「おねがい」を入力すると、情報処理装置１０は、「エアコンをつけたらサーキュレータを回す」という処理を自動化し、それ以降、（自動的に、または、ユーザ操作によって）エアコンが付いたときには、サーキュレータを回すようになる。
【００７０】
図９を参照しながら具体的に説明する。ユーザＵが入力情報「エアコンを付けて」を入力すると、情報取得部１２１は、入力情報「エアコンを付けて」を取得し、認識部１２２は、この入力情報「エアコンを付けて」から、上記したような手法によって第１プログラム（処理「エアコンを付ける」）を認識する。実行制御部１２８は、第１プログラムの実行を制御する。
【００７１】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる処理「エアコンを付ける」を入力要素として、この入力要素に関連する処理「サーキュレータを回す」を第１関連要素として取得する。プログラム生成部１２３は、処理「エアコンを付ける」の完了をイベントとし、このイベントが検出されたときに実行される処理として処理「サーキュレータを回す」を追加することによって第２プログラムを生成する。
【００７２】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、エアコンが付けられたら、サーキュレータも回されるようになる。
【００７３】
図１０は、３つ目のパターンの具体例を示す図である。また、図１１は、３つ目のパターンにおける自動化設定イメージを示す図である。図１０に示すように、ユーザＵが入力情報「アーティストＭ１の動画が見たい」を入力すると、情報処理装置１０は、入力情報「アーティストＭ１の動画が見たい」に対応して、処理「アーティストＭ１の動画があったら教えますか？という提案」を行う。
【００７４】
また、図１０に示すように、情報処理装置１０は、かかる提案のタイミングで「アーティストＭ１に関する番組やニュースがあったら教えようか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「おねがい」を入力すると、情報処理装置１０は、「アーティストＭ１に関する番組やニュースがあったら教える」という処理を自動化し、それ以降、アーティストＭ１に関する番組やニュースがあれば、自動的に通知がされるようになる。
【００７５】
図１１を参照しながら具体的に説明する。ユーザＵが入力情報「アーティストＭ１の動画が見たい」を入力すると、情報取得部１２１は、入力情報「アーティストＭ１の動画が見たい」を取得し、認識部１２２は、この入力情報「アーティストＭ１の動画が見たい」から、上記したような手法によって第１プログラム（目的語「アーティストＭ１」の処理「動画再生」）を認識する。実行制御部１２８は、第１プログラムの実行を制御する。
【００７６】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる処理「動画再生」の目的語「アーティストＭ１」を入力要素として、この入力要素に関連する処理「ニュース取得」を第２関連要素として取得する。プログラム生成部１２３は、処理「動画再生」を処理「ニュース取得」に置換するとともに、処理「ニュース取得」の完了をイベントとし、このイベントが検出されたときに実行される処理として処理「通知する」を追加することによって第２プログラムを生成する。
【００７７】
このとき、第２プログラム（処理「ニュース取得」と処理「通知する」）が自動的に実行されるように、プログラム生成部１２３は、処理「ニュース取得」を実行させるためのイベント発火を定期的に行う自動処理ルーチンを第２プログラムに付してよい。図１１に示した例では、１０分おきのイベント発火が付されているが、イベント発火の間隔は、１０分おきに限定されない。
【００７８】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、アーティストＭ１のニュースが取得されたら、そのニュースが通知されるようになる。
【００７９】
図１２は、４つ目のパターンの具体例を示す図である。また、図１３は、４つ目のパターンにおける自動化設定イメージを示す図である。図１２に示すように、ユーザＵが入力情報「毎朝８時に起こして」を入力すると、情報処理装置１０は、入力情報「毎朝８時に起こして」に対応して、処理「毎朝８時にイベント発火」と処理「アラームを鳴らす」とを抽出する。自動化処理部１２５は、処理「毎朝８時にイベント発火」と処理「アラームを鳴らす」とを含む第１プログラムの実行制御を自動化設定する。
【００８０】
また、図１２に示すように、情報処理装置１０は、自動化設定のタイミングで「でも週末は起こさなくていいですか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「それではよろしく」を入力すると、情報処理装置１０は、「平日のみ８時に自動でアラームを鳴らす」という処理を自動化し、それ以降、平日のみ８時に自動でアラームが鳴るようになる。
【００８１】
図１３を参照しながら具体的に説明する。ユーザＵが入力情報「毎朝８時に起こして」を入力すると、情報取得部１２１は、入力情報「毎朝８時に起こして」を取得し、認識部１２２は、この入力情報「毎朝８時に起こして」から、上記したような手法によって第１プログラム（条件「８時になったら」と処理「イベント発火」と処理「アラームを鳴らす」）を認識する。自動化処理部１２５は、第１プログラムの実行制御を自動化設定する。
【００８２】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる第１処理「イベント発火」を入力要素として、この入力要素に関連する条件「平日だったら」を第１関連要素として取得する。プログラム生成部１２３は、この条件「平日だったら」を処理「イベント発火」に追加することによって第２プログラムを生成する。
【００８３】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、平日のみ８時に自動でアラームが鳴るようになる。
【００８４】
図１４は、５つ目のパターンの具体例を示す図である。また、図１５は、５つ目のパターンにおける自動化設定イメージを示す図である。図１４に示すように、ユーザＵが入力情報「毎朝８時にエアコンを付けて」を入力すると、情報処理装置１０は、入力情報「毎朝８時にエアコンを付けて」に対応して、処理「毎朝８時にイベント発火」と処理「エアコンを付ける」とを抽出する。自動化処理部１２５は、処理「毎朝８時にイベント発火」と処理「エアコンを付ける」とを含む第１プログラムの実行制御を自動化設定する。
【００８５】
また、図１４に示すように、情報処理装置１０は、自動化設定のタイミングで「エアコンをつけたらサーキュレータも回しますか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「おねがい」を入力すると、情報処理装置１０は、「エアコンをつけたらサーキュレータを回す」という処理を自動化し、それ以降、（自動的に、または、ユーザ操作によって）エアコンが付いたときには、サーキュレータを回すようになる。
【００８６】
図１５を参照しながら具体的に説明する。ユーザＵが入力情報「毎朝８時にエアコンを付けて」を入力すると、情報取得部１２１は、入力情報「毎朝８時にエアコンを付けて」を取得し、認識部１２２は、この入力情報「毎朝８時にエアコンを付けて」から、上記したような手法によって第１プログラム（条件「８時になったら」と処理「イベント発火」と処理「アラームを鳴らす」）を認識する。自動化処理部１２５は、第１プログラムの実行制御を自動化設定する。
【００８７】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる処理「エアコンを付ける」を入力要素として、この入力要素に関連する処理「サーキュレータを回す」を第１関連要素として取得する。プログラム生成部１２３は、処理「エアコンを付ける」の完了をイベントとし、このイベントが検出されたときに実行される処理として処理「サーキュレータを回す」を追加することによって第２プログラムを生成する。
【００８８】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、エアコンが付けられたら、サーキュレータも回されるようになる。
【００８９】
図１６は、６つ目のパターンの具体例を示す図である。また、図１７は、６つ目のパターンにおける自動化設定イメージを示す図である。図１６に示すように、ユーザＵが入力情報「アーティストＭ１の動画があったら教えて」を入力すると、情報処理装置１０は、入力情報「アーティストＭ１の動画があったら教えて」に対応して、処理「アーティストＭ１の動画があったら教えますか？という提案」を行う。
【００９０】
また、図１６に示すように、情報処理装置１０は、かかる提案のタイミングで「アーティストＭ１に関する番組やニュースがあったら教えようか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「おねがい」を入力すると、情報処理装置１０は、「アーティストＭ１に関する番組やニュースがあったら教える」という処理を自動化し、それ以降、アーティストＭ１に関する番組やニュースがあれば、自動的に通知がされるようになる。
【００９１】
図１７を参照しながら具体的に説明する。ユーザＵが入力情報「アーティストＭ１の動画があったら教えて」を入力すると、情報取得部１２１は、入力情報「アーティストＭ１の動画があったら教えて」を取得し、認識部１２２は、この入力情報「アーティストＭ１の動画があったら教えて」から、上記したような手法によって第１プログラム（目的語「アーティストＭ１」の処理「動画情報取得」と処理「動画情報の通知」）を認識する。自動化処理部１２５は、第１プログラムの実行制御を自動化設定する。
【００９２】
このとき、第１プログラム（目的語「アーティストＭ１」の処理「動画情報取得」と処理「動画情報の通知」）が自動的に実行されるように、プログラム生成部１２３は、処理「動画情報取得」を実行させるためのイベント発火を定期的に行う自動処理ルーチンを第１プログラムに付してよい。図１７に示した例では、１０分おきのイベント発火が付されているが、イベント発火の間隔は、１０分おきに限定されない。
【００９３】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる処理「動画情報取得」の目的語「アーティストＭ１」を入力要素として、この入力要素に関連する処理「ニュース取得」を第２関連要素として取得する。プログラム生成部１２３は、処理「動画再生」を処理「ニュース取得」に置換することによって第２プログラムを生成する。
【００９４】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、アーティストＭ１のニュースが取得されたら、そのニュースが通知されるようになる。
【００９５】
図１８は、７つ目のパターンの具体例を示す図である。また、図１９は、７つ目のパターンにおける自動化設定イメージを示す図である。図１８に示すように、ユーザＵが天気アプリを使うと（使い始めると、または、使い終わると）、情報処理装置１０は、入力情報「天気アプリの利用」に対応して、処理「天気情報取得」と処理「天気情報の通知」を行う。
【００９６】
また、図１８に示すように、情報処理装置１０は、天気情報取得のタイミングで「雨の時には教えましょうか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「おねがい」を入力すると、情報処理装置１０は、「雨の時には教える」という処理を自動化し、それ以降、定期的に天気情報を取得し、雨の予報のときには、自動的にユーザＵに通知を行うようになる。
【００９７】
図１９を参照しながら具体的に説明する。ユーザＵが天気アプリを使うと（使い始めると、または、使い終わると）、情報取得部１２１は、入力情報「天気アプリの利用」を取得し、認識部１２２は、この入力情報「天気アプリの利用」から、第１プログラム（処理「天気情報取得」と処理「天気情報の通知」）を認識する。
【００９８】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる第１処理「天気情報取得」を入力要素として、この入力要素に関連する条件「雨だったら」を第１関連要素として取得する。プログラム生成部１２３は、この条件「雨だったら」を処理「天気予報の通知」に追加することによって第２プログラムを生成する。
【００９９】
このとき、第２プログラム（処理「天気情報取得」と条件「雨だったら」と処理「天気情報の通知」）が自動的に実行されるように、プログラム生成部１２３は、処理「天気情報取得」を実行させるためのイベント発火を定期的に行う自動処理ルーチンを第２プログラムに付してよい。図１９に示した例では、１０分おきのイベント発火が付されているが、イベント発火の間隔は、１０分おきに限定されない。
【０１００】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、天気情報が取得され、天気情報が雨だったら、天気情報がユーザＵに通知されるようになる。
【０１０１】
図２０は、８つ目のパターンの具体例を示す図である。また、図２１は、８つ目のパターンにおける自動化設定イメージを示す図である。図２０に示すように、ユーザＵが「エアコンを付ける」と、情報処理装置１０は、入力情報「エアコンを付ける」に対応して、処理「エアコンを付ける」を行う。
【０１０２】
また、図２０に示すように、情報処理装置１０は、エアコンを付ける処理のタイミングで「エアコンをつけたらサーキュレータも回しますか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「おねがい」を入力すると、情報処理装置１０は、「エアコンをつけたらサーキュレータを回す」という処理を自動化し、それ以降、（自動的に、または、ユーザ操作によって）エアコンが付いたときには、サーキュレータを回すようになる。
【０１０３】
図２１を参照しながら具体的に説明する。ユーザＵが入力情報「エアコンを付ける」を入力すると、情報取得部１２１は、入力情報「エアコンを付ける」を取得し、認識部１２２は、この入力情報「エアコンを付ける」から、第１プログラム（処理「エアコンを付ける」）を認識する。
【０１０４】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる処理「エアコンを付ける」を入力要素として、この入力要素に関連する処理「サーキュレータを回す」を第１関連要素として取得する。プログラム生成部１２３は、処理「エアコンを付ける」の完了をイベントとし、このイベントが検出されたときに実行される処理として処理「サーキュレータを回す」を追加することによって第２プログラムを生成する。
【０１０５】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、エアコンが付けられたら、サーキュレータも回されるようになる。
【０１０６】
図２２は、９つ目のパターンの具体例を示す図である。また、図２３は、９つ目のパターンにおける自動化設定イメージを示す図である。図２２に示すように、ユーザＵが「アーティストＭ１の動画を見る」と、情報処理装置１０は、入力情報「アーティストＭ１の動画が見た」に対応して、処理「アーティストＭ１の動画があったら教えますか？という提案」を行う。
【０１０７】
また、図２２に示すように、情報処理装置１０は、かかる提案のタイミングで「アーティストＭ１に関する番組やニュースがあったら教えようか？」という自動化提案を行う。ユーザがこの自動化提案を受け入れる旨の回答「おねがい」を入力すると、情報処理装置１０は、「アーティストＭ１に関する番組やニュースがあったら教える」という処理を自動化し、それ以降、アーティストＭ１に関する番組やニュースがあれば、自動的に通知がされるようになる。
【０１０８】
図２３を参照しながら具体的に説明する。ユーザＵが入力情報「アーティストＭ１の動画が見た」を入力すると、情報取得部１２１は、入力情報「アーティストＭ１の動画が見た」を取得し、認識部１２２は、この入力情報「アーティストＭ１の動画が見た」から、上記したような手法によって第１プログラム（目的語「アーティストＭ１」の処理「動画再生」）を認識する。
【０１０９】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる処理「動画再生」の目的語「アーティストＭ１」を入力要素として、この入力要素に関連する処理「ニュース取得」を第２関連要素として取得する。プログラム生成部１２３は、処理「動画再生」を処理「ニュース取得」に置換するとともに、処理「ニュース取得」の完了をイベントとし、このイベントが検出されたときに実行される処理として処理「通知する」を追加することによって第２プログラムを生成する。
【０１１０】
このとき、第２プログラム（処理「ニュース取得」と処理「通知する」）が自動的に実行されるように、プログラム生成部１２３は、処理「ニュース取得」を実行させるためのイベント発火を定期的に行う自動処理ルーチンを第２プログラムに付してよい。図１１に示した例では、１０分おきのイベント発火が付されているが、イベント発火の間隔は、１０分おきに限定されない。
【０１１１】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、アーティストＭ１のニュースが取得されたら、そのニュースが通知されるようになる。
【０１１２】
図２４は、１０個目のパターンの具体例を示す図である。図２４に示すように、情報取得部１２１は、ログ情報などから「よく８時にエアコンを使うこと」を入力情報として取得する。認識部１２２は、この入力情報「よく８時にエアコンを使うこと」から、第１プログラム（処理「エアコンを付ける」）と条件「毎朝８時になったら」を認識する。
【０１１３】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれる第１処理「エアコンを付ける」を入力要素として、この入力要素に関連する条件として、上記の認識された条件「毎朝８時になったら」を第１関連要素として取得する。プログラム生成部１２３は、この条件「毎朝８時になったら」を処理「エアコンを付ける」に追加することによって第２プログラムを生成する。
【０１１４】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、毎朝８時になったら、エアコンが付けられるようになる。
【０１１５】
図２５は、１１個目のパターンの具体例を示す図である。図２５に示すように、情報取得部１２１は、ログ情報などから「ユーザＵがエアコンを使うときにはサーキュレータもよく使っていること」を入力情報として取得する。認識部１２２は、この入力情報「ユーザＵがエアコンを使うときにはサーキュレータもよく使っていること」から、第１プログラム（処理「エアコンを付ける」）と条件「エアコンをつけたら」と処理「サーキュレータも回す」を認識する。
【０１１６】
一方、プログラム生成部１２３は、第１プログラムから第２プログラムを生成する。例えば、プログラム生成部１２３は、第１プログラムに含まれ第１処理「エアコンを付ける」を入力要素として、この入力要素に関連する処理「サーキュレータを回す」を第１関連要素として取得する。プログラム生成部１２３は、処理「エアコンを付ける」の完了をイベントとし、このイベントが検出されたときに実行される処理として処理「サーキュレータを回す」を追加することによって第２プログラムを生成する。
【０１１７】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、エアコンが付けられたら、サーキュレータも回されるようになる。
【０１１８】
図２６は、１２個目のパターンの具体例を示す図である。図２６に示すように、情報取得部１２１は、ユーザＵと情報処理装置１０との会話などを取得し、認識部１２２は、かかる会話などからユーザＵの好みとして「アーティストＭ１」を認識する。
【０１１９】
一方、プログラム生成部１２３は、第２プログラムを生成する。例えば、プログラム生成部１２３は、目的語「アーティストＭ１」を入力要素として、この入力要素に関連する処理「ニュース取得」を第１関連要素として取得する。プログラム生成部１２３は、処理「ニュース取得」を追加するとともに、処理「ニュース取得」の完了をイベントとし、このイベントが検出されたときに実行される処理として処理「通知する」を追加することによって第２プログラムを生成する。
【０１２０】
このとき、第２プログラム（処理「ニュース取得」と処理「通知する」）が自動的に実行されるように、プログラム生成部１２３は、処理「ニュース取得」を実行させるためのイベント発火を定期的に行う自動処理ルーチンを第２プログラムに付してよい。イベント発火の間隔は限定されない。
【０１２１】
そして、提案制御部１２４は、生成された第２プログラムの実行制御の自動化をユーザＵに提案する。ユーザＵによって提案を受け入れる旨の回答が得られた場合、自動化処理部１２５は、生成された第２プログラムの実行制御の自動化を行う。その後、実行制御部１２８により、アーティストＭ１のニュースが取得されたら、そのニュースが通知されるようになる。なお、１２個目のパターンの具体例において、第１プログラムは「ニュース取得の通知」と見做されてよい。このような第１プログラムは、ユーザが利用可能かつ情報処理装置１０が認識可能なアプリケーションあるいはシステムに関連付けられていればよい。
【０１２２】
以上に説明したように、ユーザＵに対して第２プログラムの実行制御の自動化が提案される。上記したように、所定の条件が満たされた場合に自動化の提案がなされなくなる場合、自動化の提案とは別として自動化に関する情報がユーザＵに推薦されるようにしてもよい。例えば、推薦制御部１２６は、ユーザＵによって所定の入力操作（例えば、所定の推薦ボタンを押下する操作など）がなされた場合に、提案に関する情報をユーザＵに推薦してもよい。
【０１２３】
図２７は、提案に関する情報の表示例を示す図である。図２７を参照すると、表示部１５０によって、提案に関する情報を含んだ自動化オススメ画面が表示されている。図２７を参照すると、複数の提案それぞれに関する情報として、「提案の内容」「取得タイミングが生じた回数」「プログラムが生成された回数」が示されている。しかし、提案に関する情報は、「提案の内容」「取得タイミングが生じた回数」「プログラムが生成された回数」の少なくともいずれか一つを含んでよい。操作子１５１に対する操作によって、提案ごとに自動化のＯＮとＯＦＦとが切り替え可能であってよい。
【０１２４】
ここで、「取得タイミングが生じた回数」は、入力情報の取得タイミングが生じた回数であり、「提案の内容」が「雨が降ったら教えますか？」の場合には、入力情報「天気を教えて」をユーザＵが情報処理装置１０に入力した回数に相当し得る。「プログラムが生成された回数」は、ユーザＵの手動や発話によって第２プログラムが生成された回数であり、ユーザＵにとっては、この回数が多いほど第２プログラムの実行制御の自動化の必要性が高いことが把握できる。
【０１２５】
複数の提案が存在する場合には、複数の提案それぞれの優先度（例えば、提案順序）をどうするかが決められてよい。例えば、推薦制御部１２６は、複数の提案のうち、対応する取得タイミングの回数、及び、対応する関連要素と連携するソフトウェアの起動回数の少なくともいずれか一方に基づいて、複数の提案それぞれに関する情報を推薦してもよい。例えば、推薦制御部１２６は、対応する取得タイミングの回数が多い提案ほど優先度を高くしてもよいし、対応する関連要素に連携するソフトウェアの起動回数が多い（または少ない）提案ほど優先度を高くしてもよい。
【０１２６】
図２８は、ログの分析結果（ユーザＵの行動の分析結果）に基づいてイベントと処理との対応関係を把握する例を説明するための図である。図２８には、ユーザがカーテンを閉めてから所定時間以内にライトを付けた場合が示されている。かかる場合、認識部１２２は、カーテンを閉めるというイベントとライトを付けるという処理との対応関係をプログラムとして記憶部１３０に記録するとよい。そうすれば、カーテンを閉めるというイベントが発生すると、自動的にライトがオンになる。
【０１２７】
また、所定時間以内に処理が行われたか否かに加えて、あるいは、所定時間以内に処理が行われたか否かの代わりに、ユーザの行動の頻度が考慮されてもよい。すなわち、認識部１２２は、イベントの発生後に処理が行われる頻度が所定以上であることを検出した場合、イベントと処理との対応関係をプログラムとして記憶部１３０に記録してもよい。かかる場合にも、ユーザによるプログラム登録のための手間がさらに低減される。
【０１２８】
このとき、認識部１２２は、記録されたプログラムに基づいて、イベントの発生に対して処理を行うべきかユーザに対し確認を行うとよい。ユーザに対する確認はどのようになされてもよい。一例として、音声出力または表示によってユーザに質問し、音声入力または撮像によってユーザからの回答を得てもよい。
【０１２９】
なお、プログラムを記憶部１３０に記録するあらゆるケースにおいて、イベントの発生に対して処理を行うべきかユーザに対し確認を行ってよい。ここで、ユーザに対する確認に際して、音声出力または表示によるユーザへの質問は、どのようになされてもよい。例えば、認識部１２２が、カーテンを閉めるというイベントとライトを付けるという処理との対応関係をプログラムとして記憶部１３０に記録する場合、「カーテンを閉めたらライトを付けますか」というテキストを音声出力または表示させてもよい。
【０１３０】
また、「カーテンを閉める」という表現の言い換え表現として「カーテンクローズ」なども存在し、「ライトを付ける」という表現の言い換え表現として「電気を付ける」「ライトオン」なども存在する。したがって、認識部１２２は、ユーザによる過去の発話内容が記録されている場合、ユーザによって最も高頻度に発話される表現を選択してもよい。あるいは、認識部１２２は、ユーザによる過去の発話内容が記録されている場合、ユーザによって発話されたことのある表現を選択してもよい。
【０１３１】
認識部１２２が、イベントと処理との対応関係をプログラムとして記憶部１３０に記録した場合、イベント発生は、実行制御部１２８によって実行制御された処理の完了によって検出されてもよい。例えば、「カーテンを閉めて」というユーザの発話に基づいてカーテンを閉めるという処理が実行制御部１２８によって実行制御されてカーテンが閉まるというイベントが発生すると、そのイベント発生に伴って電気を付けるという処理が実行制御部１２８によって実行制御されてよい。
【０１３２】
あるいは、イベント発生は、ユーザの手動によって直接的に実行された処理の完了によって検出されてもよい。例えば、ユーザの手動によって直接的にカーテンが閉められてカーテンが閉まるというイベントが発生すると、そのイベント発生に伴って電気を付けるという処理が実行制御部１２８によって実行制御されてよい。このように、イベント発生のパターンとしては様々なパターンが想定されるため、イベント発生の自由度は高いと言える。
【０１３３】
続いて、イベント発生時の提案生成動作の例について説明する。図２９は、イベント発生時の提案生成動作の第一の例を示す図である。図２９に示すように、各種入力（例えば、音声入力、センサによる検出、ボタン押下、テキスト入力など）がなされる（Ｓ１１）。ここで、イベントＤＢ（Ｒｅｓｅｒｖｅｄ）１３１（企業が生成したイベント）には、ＥｖｅｎｔＩＤとＥｖｅｎｔ内容とが対応付けられたデータが記録されている。一方、イベントＤＢ（Ｕｓｅｒ）１３２（ユーザが生成したイベント）にも、ＥｖｅｎｔＩＤとＥｖｅｎｔ内容とが対応付けられたデータが記録されている。
【０１３４】
制御対象機器２０は、イベント発生が検出されると（Ｓ１２）、イベントから情報を抽出し（例えば、音声が「犬の動画見たい」である場合には、その音声から目的語「犬」を抽出し）（Ｓ１３）、そのＥｖｅｎｔ内容に対応するＥｖｅｎｔＩＤを、イベントＤＢ（Ｒｅｓｅｒｖｅｄ）１３１またはイベントＤＢ（Ｕｓｅｒ）１３２から取得する。ここで、シナリオＤＢ（Ｒｅｓｅｒｖｅｄ）１３３（企業が作ったシナリオ）には、ＳｉｎａｒｉｏＩＤとＡｃｔｉｏｎ内容とＥｖｅｎｔＩＤとが対応付けられたデータが記録されている。一方、シナリオＤＢ（Ｕｓｅｒ）１３４（ユーザが生成したシナリオ）には、ＡｃｔｉｏｎＩＤとＡｃｔｉｏｎ内容とＥｖｅｎｔＩＤとが対応付けられたデータが記録されている。
【０１３５】
続いて、制御対象機器２０は、取得したＥｖｅｎｔＩＤに対応するＡｃｔｉｏｎ内容を、シナリオＤＢ（Ｒｅｓｅｒｖｅｄ）１３３またはシナリオＤＢ（Ｕｓｅｒ）１３４から取得する。制御対象機器２０は、処理（例えば、動画再生など）を実行する（Ｓ１４）。
【０１３６】
具体的に、処理ＤＢ１３５には、Ａｃｔｉｏｎ内容と処理とが対応付けられたデータが記録されており、制御対象機器２０は、取得したＡｃｔｉｏｎ内容に対応する処理を処理ＤＢ１３５から取得し、取得した処理に基づいて、その処理を実行する（Ｓ１７）。また、制御対象機器２０は、処理の実行の通知を受けると、処理（例えば、動画再生など）と目的語「犬」とに基づいて自動化の提案内容を生成する（Ｓ１８）。自動化の提案内容の生成には、ユーザの行動ログ（ＬＯＧ１３６）が参照されてもよい。
【０１３７】
なお、図２９には、制御対象機器２０が処理を実行する例を示したが、処理の実行制御の機能は、情報処理装置１０（エージェント）が有していてもよい。図３０は、イベント発生時の動作の第二の例を示す図である。図３０に示すように、イベント検知（Ｓ１２）は、エージェントのイベント検出部１２７によって行われ、処理制御（Ｓ１４）および処理（Ｓ１７）は、エージェントの実行制御部１２８によって行われ、提案生成（Ｓ１８）は、エージェントのプログラム生成部１２３によって行われてよい。このとき、エージェントによって実行制御される処理は、制御対象機器２０（例えば、制御対象機器２０−１〜２０−３のいずれか）において実行される。
【０１３８】
続いて、プログラム登録時の提案生成動作の例について説明する。図３１は、プログラム登録時の提案生成動作の例を示す図である。図３１に示すように、音声入力（例えば、「８時になったら私を起こして」など）がなされる（Ｓ２０）。続いて、認識部１２２は、入力された音声に対してＭａｇｉｃ  Ｗｏｒｄの認識と音声認識処理とを行い、テキストデータを生成する。このとき、入力された音声の代わりに、文字入力（例えば、８時になったら私を起こしてなど）がなされてもよい。
【０１３９】
ここで、イベントテンプレＤＢ（Ｒｅｓｅｒｖｅ）１３６（企業が作るイベントテンプレート）には、ＥｖｅｎｔＩＤと発話形式とが対応付けられたデータが記録されている。認識部１２２は、テキストデータに対応する発話形式をイベントテンプレＤＢ（Ｒｅｓｅｒｖｅ）１３６から取得し、その発話形式のＥｖｅｎｔＩＤに対応するＥｖｅｎｔ内容をイベントＤＢ（Ｒｅｓｅｒｖｅ）１３１から取得する（Ｓ２４）。認識部１２２は、Ｅｖｅｎｔ内容から条件「８時」を取得する（Ｓ２５）。
【０１４０】
認識部１２２は、イベントＤＢ（Ｒｅｓｅｒｖｅ）１３１からＥｖｅｎｔ内容を取得しない場合には、テキストデータから抽出されるイベントに対応するＥｖｅｎｔＩＤをイベントＤＢ（Ｕｓｅｒ）１３２から取得する（Ｓ２６）。また、認識部１２２は、シナリオＤＢ（Ｒｅｓｅｒｖｅｄ）１３３またはシナリオＤＢ（Ｕｓｅｒ）１３４から、テキストデータから抽出される処理に対応するＡｃｔｉｏｎ内容を抽出する（Ｓ２７）。認識部１２２は、Ａｃｔｉｏｎ内容から目的語「私を」を取得する（Ｓ３２）。
【０１４１】
続いて、認識部１２２は、取得したＥｖｅｎｔＩＤとＡｃｔｉｏｎ内容とを対応付けることによってシナリオ（プログラム）を生成し（Ｓ２８）、ユーザに対してシナリオの確認を行う（Ｓ２９）。そして、認識部１２２は、ユーザからそのシナリオに対する登録指示が入力された場合には、そのシナリオをシナリオＤＢ（Ｕｓｅｒ）１３４に記録する。シナリオ登録が完了すると、プログラム生成部１２３は、条件「８時」と目的語「私を」とに基づいて、自動化の提案内容を生成する（Ｓ３３）。目的語「私を」は、提案内容の生成に利用されなくてもよい。
【０１４２】
以上、本実施形態に係る情報処理装置１０の機能詳細について説明した。
【０１４３】
［１．４．ハードウェア構成例］
次に、図３２を参照して、本開示の実施形態に係る情報処理装置１０のハードウェア構成について説明する。図３２は、本開示の実施形態に係る情報処理装置１０のハードウェア構成例を示すブロック図である。
【０１４４】
図３２に示すように、情報処理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）９０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０３、およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０５を含む。また、情報処理装置１０は、ホストバス９０７、ブリッジ９０９、外部バス９１１、インターフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、通信装置９２５を含んでもよい。さらに、情報処理装置１０は、必要に応じて、撮像装置９３３、およびセンサ９３５を含んでもよい。情報処理装置１０は、ＣＰＵ９０１に代えて、またはこれとともに、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）またはＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）と呼ばれるような処理回路を有してもよい。
【０１４５】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、情報処理装置１０内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータなどを記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一時的に記憶する。ＣＰＵ９０１、ＲＯＭ９０３、およびＲＡＭ９０５は、ＣＰＵバスなどの内部バスにより構成されるホストバス９０７により相互に接続されている。さらに、ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。
【０１４６】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置９１５は、ユーザの音声を検出するマイクロフォンを含んでもよい。入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置１０の操作に対応した携帯電話などの外部接続機器９２９であってもよい。入力装置９１５は、ユーザが入力した情報に基づいて入力信号を生成してＣＰＵ９０１に出力する入力制御回路を含む。ユーザは、この入力装置９１５を操作することによって、情報処理装置１０に対して各種のデータを入力したり処理動作を指示したりする。また、後述する撮像装置９３３も、ユーザの手の動き、ユーザの指などを撮像することによって、入力装置として機能し得る。このとき、手の動きや指の向きに応じてポインティング位置が決定されてよい。
【０１４７】
出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、ＰＤＰ（Ｐｌａｓｍａ  Ｄｉｓｐｌａｙ  Ｐａｎｅｌ）、有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、プロジェクタなどの表示装置、ホログラムの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などであり得る。出力装置９１７は、情報処理装置１０の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。また、出力装置９１７は、周囲を明るくするためライトなどを含んでもよい。
【０１４８】
ストレージ装置９１９は、情報処理装置１０の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【０１４９】
ドライブ９２１は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体９２７のためのリーダライタであり、情報処理装置１０に内蔵、あるいは外付けされる。ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録を書き込む。
【０１５０】
接続ポート９２３は、機器を情報処理装置１０に直接接続するためのポートである。接続ポート９２３は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポートなどであり得る。また、接続ポート９２３は、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポートなどであってもよい。接続ポート９２３に外部接続機器９２９を接続することで、情報処理装置１０と外部接続機器９２９との間で各種のデータが交換され得る。
【０１５１】
通信装置９２５は、例えば、通信ネットワーク９３１に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カードなどであり得る。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、または、各種通信用のモデムなどであってもよい。通信装置９２５は、例えば、インターネットや他の通信機器との間で、ＴＣＰ／ＩＰなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置９２５に接続される通信ネットワーク９３１は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信などである。
【０１５２】
撮像装置９３３は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）またはＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）などの撮像素子、および撮像素子への被写体像の結像を制御するためのレンズなどの各種の部材を用いて実空間を撮像し、撮像画像を生成する装置である。撮像装置９３３は、静止画を撮像するものであってもよいし、また動画を撮像するものであってもよい。
【０１５３】
センサ９３５は、例えば、測距センサ、加速度センサ、ジャイロセンサ、地磁気センサ、光センサ、音センサなどの各種のセンサである。センサ９３５は、例えば情報処理装置１０の筐体の姿勢など、情報処理装置１０自体の状態に関する情報や、情報処理装置１０の周辺の明るさや騒音など、情報処理装置１０の周辺環境に関する情報を取得する。また、センサ９３５は、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）信号を受信して装置の緯度、経度および高度を測定するＧＰＳセンサを含んでもよい。
【０１５４】
＜２．むすび＞
以上説明したように、本開示の実施形態によれば、ユーザの入力情報を取得するように構成された情報取得部と、前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案するように構成された提案制御部と、を備える、情報処理装置が提供される。ここで、前記提案制御部は、前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案するように構成されている。
【０１５５】
かかる構成によれば、ユーザにとって利便性の高いタイミングでプログラム実行の自動化を提案することが可能な技術が提供される。
【０１５６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１５７】
また、コンピュータに内蔵されるＣＰＵ、ＲＯＭおよびＲＡＭなどのハードウェアを、上記した制御部１２０が有する機能と同等の機能を発揮させるためのプログラムも作成可能である。また、該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。
【０１５８】
なお、上述した情報処理装置１０の動作が実現されれば、各構成の位置は特に限定されない。具体的な一例として、認識部１２２およびプログラム生成部１２３などは、通信ネットワーク９３１を介して接続された図示しないサーバなどに設けられてもよい。すなわち、情報処理装置１０はいわゆるクラウドコンピューティングによって達成されうる。この場合には、情報処理装置１０が当該サーバに通信ネットワーク９３１を介して接続されたクライアントに相当し得る。
【０１５９】
認識部１２２およびプログラム生成部１２３などは、別々のサーバに設けられていてもよい。また、認識部１２２およびプログラム生成部１２３の一方をサーバに設け、認識部１２２およびプログラム生成部１２３のうち他方をクライアントのハードウェアに設けても良い。また、情報処理装置１０は、サーバ上に設けられた認識部１２２およびプログラム生成部１２３によって構成され、その他の構成を有していなくてもよい。
【０１６０】
なお、情報処理装置１０において提案制御部１２４以外の構成を省略する形態も本実施形態に含まれ得る。すなわち、入力情報の取得タイミングに、入力情報に関連する制御の自動化を提案するように提案制御部１２４が構成されればよい。
【０１６１】
ユーザの入力情報は、ユーザが直接関連する入力情報に限られない。ユーザと関連付けられた主体により間接的に入力された情報もまたユーザの入力情報として見做されても良い。具体的には、ユーザが飼っている猫の餌が切れたという環境情報が入力情報として取得された場合に、ユーザにエサの補充の自動化を提案するケースが想定される。あるいは、ユーザが管理している観葉植物が枯れそうになっているという環境情報が入力情報として取得された場合に、ユーザに観葉植物への水やりの自動化を提案するケースが想定される。もちろん、ユーザと関連付けられた人物も主体として想定されうる。この人物の一例としては、同居している家族、あるいは友人が想定される。すなわち、本開示におけるユーザは複数名として捉えられても良く、ユーザの一部として人間以外の主体も想定され得る。
【０１６２】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏し得る。
【０１６３】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
ユーザの入力情報を取得するように構成された情報取得部と、
前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案するように構成された提案制御部と、
を備え、
前記提案制御部が、前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案するように構成されている、
情報処理装置。
（２）
前記取得タイミングは、前記入力情報を取得しているときのコンテキスト、前記入力情報を取得する前のコンテキスト、及び前記入力情報を取得した後のコンテキストのうち少なくとも一方に基づくタイミングである、
前記（１）に記載の情報処理装置。
（３）
前記入力要素は、前記第１プログラムに含まれる第１処理を含む、
前記（１）または（２）に記載の情報処理装置。
（４）
前記第１関連要素は、前記第１処理と関連する条件及び前記第１処理と関連する第２処理のうち少なくともいずれか一方を含む、
前記（３）に記載の情報処理装置。
（５）
前記入力要素は、前記第１プログラムに含まれる第３処理の目的語を含む、
前記（１）〜（４）のいずれか一項に記載の情報処理装置。
（６）
前記第２関連要素は、前記第３処理の目的語と関連する第４処理を含む、
前記（５）に記載の情報処理装置。
（７）
前記情報処理装置は、
前記自動化の提案を受け入れる旨の回答が前記ユーザから得られた場合、前記第２プログラムの実行制御の自動化を行う自動化処理部を備える、
前記（１）〜（６）のいずれか一項に記載の情報処理装置。
（８）
前記情報処理装置は、
前記自動化に従って前記第２プログラムの実行制御を行う実行制御部を備える、
前記（７）に記載の情報処理装置。
（９）
前記提案制御部は、所定の条件が満たされた場合には、前記自動化の提案を行わない、
前記（７）または（８）に記載の情報処理装置。
（１０）
前記所定の条件は、前記入力情報に関連する制御の当座の実行の提案を受け入れる旨の回答が前記ユーザから第１回数を超えて得られたという条件、及び、前記入力情報に関連する制御の当座の実行が第２回数を超えて提案されたという条件の少なくともいずれか一方を含む、
前記（９）に記載の情報処理装置。
（１１）
前記提案制御部は、前記入力要素に関連する関連要素の候補が複数存在する場合、複数の候補それぞれに関連するソフトウェアの起動回数に基づいて前記自動化を提案する、
前記（１）〜（１０）のいずれか一項に記載の情報処理装置。
（１２）
前記情報処理装置は、
前記ユーザによって所定の入力操作がなされた場合に、前記提案に関する情報を前記ユーザに推薦する推薦制御部を備える、
前記（１）〜（１１）のいずれか一項に記載の情報処理装置。
（１３）
前記提案に関する情報は、前記提案の内容、前記取得タイミングが生じた回数、前記第２プログラムが生成された回数の少なくともいずれか一つを含む、
前記（１２）に記載の情報処理装置。
（１４）
前記推薦制御部は、複数の提案が存在する場合、前記複数の提案のうち、対応する前記取得タイミングの回数、及び、対応する関連要素に関連するソフトウェアの起動回数の少なくともいずれか一方に基づいて、前記複数の提案それぞれに関する情報を推薦する、
前記（１２）または（１３）に記載の情報処理装置。
（１５）
前記入力情報は、アプリケーションソフトウェアからの入力情報、システムソフトウェアからの入力情報、ユーザの音声、前記ユーザの行動に関する画像前記ユーザが操作した機器から入力された情報及び前記ユーザが操作した機器の動作のうち少なくとも一つを含む、
前記（１）〜（１４）のいずれか一項に記載の情報処理装置。
（１６）
前記第１プログラムと前記第２プログラムとは、互いに独立したソフトウェアに関連するプログラムを含む、
前記（１）〜（１５）のいずれか一項に記載の情報処理装置。
（１７）
前記第１プログラムと前記第２プログラムとは、同一のソフトウェアに関連するプログラムを含む、
前記（１）〜（１５）のいずれか一項に記載の情報処理装置。
（１８）
前記ソフトウェアは、システムソフトウェア及びアプリケーションソフトウェアの少なくともいずれか一方を含む、
前記（１６）または（１７）に記載の情報処理装置。
（１９）
ユーザの入力情報を取得することと、
プロセッサにより、前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案することと、
を含み、
前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案することを含む、
情報処理方法。
（２０）
コンピュータを、
ユーザの入力情報を取得するように構成された情報取得部と、
前記入力情報の取得タイミングに、前記入力情報に関連する制御の自動化を提案するように構成された提案制御部と、
を備え、
前記提案制御部が、前記入力情報から認識される第１プログラムに含まれる入力要素と関連する第１関連要素の追加、及び、前記入力要素と関連する第２関連要素への前記入力要素の置換のうち少なくとも一方を前記第１プログラムに対して行って得られる第２プログラムの実行制御の自動化を提案するように構成されている、
情報処理装置として機能させるためのプログラム。
【符号の説明】
【０１６４】
１０    情報処理装置
２０    制御対象機器
３０    サーバ装置
１１１  音出力部
１１３  集音部
１１４  撮像部
１１５  距離検出部
１２１  情報取得部
１２２  認識部
１２３  プログラム生成部
１２４  提案制御部
１２５  自動化処理部
１２６  推薦制御部
１２７  イベント検出部
１２８  実行制御部
１２０  制御部
１３０  記憶部
１４０  通信部
１５０  表示部
【図１】
0006720983.tif 000002
【図２】
0006720983.tif 000003
【図３】
0006720983.tif 000004
【図４】
0006720983.tif 000005
【図５】
0006720983.tif 000006
【図６】
0006720983.tif 000007
【図７】
0006720983.tif 000008
【図８】
0006720983.tif 000009
【図９】
0006720983.tif 000010
【図１０】
0006720983.tif 000011
【図１１】
0006720983.tif 000012
【図１２】
0006720983.tif 000013
【図１３】
0006720983.tif 000014
【図１４】
0006720983.tif 000015
【図１５】
0006720983.tif 000016
【図１６】
0006720983.tif 000017
【図１７】
0006720983.tif 000018
【図１８】
0006720983.tif 000019
【図１９】
0006720983.tif 000020
【図２０】
0006720983.tif 000021
【図２１】
0006720983.tif 000022
【図２２】
0006720983.tif 000023
【図２３】
0006720983.tif 000024
【図２４】
0006720983.tif 000025
【図２５】
0006720983.tif 000026
【図２６】
0006720983.tif 000027
【図２７】
0006720983.tif 000028
【図２８】
0006720983.tif 000029
【図２９】
0006720983.tif 000030
【図３０】
0006720983.tif 000031
【図３１】
0006720983.tif 000032
【図３２】
0006720983.tif 000033