(57)【要約】【課題】ユーザからの動作指示の結果を報告するメッセージを、そのメッセージの宛て先を明示して、通知する。【解決手段】動作指示検出部（２１）は、メッセージから動作指示を検出するとともに、該メッセージを書き込んだメンバを指示者として特定し、報告メッセージ表示部（２６）は、該動作指示に従って動作した結果についてのメッセージを、該指示者を宛て先として明記した状態で、家族伝言板に表視させる。【選択図】図１
2014164522.tif 000002
【特許請求の範囲】
【請求項１】
メンバが書き込んだメッセージを時系列に沿って表示するコミュニケーションサービスにおけるメッセージから、外部機器を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定する動作指示検出手段と、
上記動作指示検出手段が検出した上記動作指示に従って上記外部機器を制御する外部機器制御手段と、
上記外部機器制御手段の制御によって上記外部機器が動作した結果を取得する動作結果取得手段と、
上記動作結果取得手段が取得した動作の結果を報告する報告メッセージを生成する報告メッセージ生成手段と、
上記報告メッセージ生成手段が生成した報告メッセージを、上記コミュニケーションサービスを提供するサーバに出力して、上記動作指示検出手段が特定した指示者を宛て先として明記した状態で、該メッセージを上記コミュニケーションサービスに表示させる報告メッセージ表示手段と、を備えることを特徴とするメッセージ通知装置。
【請求項２】
上記動作指示が検出されてから、該動作指示によって指示された動作を上記外部機器が終了するまでの間、上記動作指示検出手段が検出した上記動作指示と該動作指示の指示者との組合せを格納している記憶部と、
上記動作指示検出手段が動作指示を検出したとき、該動作指示が上記記憶部に既に格納されている動作指示と同じであるか否かを判定し、同じである場合には、上記記憶部に既に格納されている動作指示に組み合わされる指示者に、上記動作指示検出手段が特定した指示者を追加する指示者登録手段と
をさらに備え、
上記報告メッセージ生成手段は、上記動作結果取得手段が上記外部機器の動作した結果を取得したとき、１つの報告メッセージを作成するとともに、該報告メッセージで結果を報告する動作を指示した動作指示と組み合わされて上記記憶部に格納されている指示者のすべてを、該報告メッセージの宛て先に設定することを特徴とする請求項１に記載のメッセージ通知装置。
【請求項３】
上記動作指示検出手段は、上記コミュニケーションサービスに上記メンバが書き込んだメッセージに含まれる画像から、上記動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定することを特徴とする請求項１または２に記載のメッセージ通知装置。
【請求項４】
上記報告メッセージ表示手段は、上記メッセージの上記宛て先を、上記メンバを識別可能な画像によって、上記コミュニケーションサービスに表示させることを特徴とする請求項１から３のいずれか１項に記載のメッセージ通知装置。
【請求項５】
上記報告メッセージ表示手段は、上記動作の結果を、上記動作の結果を示す画像によって、上記コミュニケーションサービスに表示させることを特徴とする請求項１から４のいずれか１項に記載のメッセージ通知装置。
【請求項６】
上記外部機器は、さらに別の装置の動作を制御し、
上記動作指示検出手段は、上記外部機器を操作して、上記外部機器に、上記別の装置の動作を制御させるための動作指示を検出することを特徴とする請求項１から５のいずれか１項に記載のメッセージ通知装置。
【請求項７】
メンバが書き込んだメッセージを時系列に沿って表示するコミュニケーションサービスにおけるメッセージから、外部機器を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを上記動作指示の指示者として特定する動作指示検出ステップと、
上記動作指示検出ステップによって検出された上記動作指示に従って上記外部機器を制御する外部機器制御ステップと、
上記外部機器制御ステップの制御によって上記外部機器が動作した結果を取得する動作結果取得ステップと、
上記動作結果取得ステップによって取得された動作の結果を報告する報告メッセージを生成する報告メッセージ生成ステップと、
上記報告メッセージ生成ステップによって生成された報告メッセージを、上記コミュニケーションサービスを提供するサーバに出力して、上記動作指示検出ステップによって特定された指示者を宛て先として明記した状態で、該メッセージを上記コミュニケーションサービスに表示させる報告メッセージ表示ステップと、を含むことを特徴とするメッセージ通知装置の制御方法。
【請求項８】
請求項１から６のいずれか１項に記載のメッセージ通知装置としてコンピュータを機能させるための制御プログラムであって、コンピュータを上記各手段として機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザにメッセージを通知するメッセージ通知装置などに関する。
【背景技術】
【０００２】
従来、通信技術の発達と、通信サービスの多様化とに伴って、様々な種類の電子会話ツールが広く用いられてきた。電子会話ツールとは、例えば、電子掲示板、チャット、ブログ、短文投稿サイト（ＴＷＩＴＴＥＲ（登録商標）など）、ＳＮＳ（Social Networking Service）などである。ユーザは、通信機器を用いて、これらの会話ツールを活用し、他のユーザと対話したり、コミュニティを形成したり、情報を発信したりして、他のユーザとのコミュニケーションを実現する。
【０００３】
また、近年、人工知能技術も発達してきており、コンピュータ（擬人化されたエージェント）に人間の相手をさせてコミュニケーションを図る技術も存在する。
【０００４】
例えば、下掲の特許文献１には、電子的な仮想ペットおよび擬人化エージェントなどのエージェントを用いてユーザとの間でコミュニケーションを行う電子メール、電子掲示板などの電子コミュニケーション装置が開示されている。
【０００５】
また、特許文献２には、ユーザから入力された会話文に応じて、個性ベクトルと同数の数値からなる文特徴ベクトル（文特徴データ）が個性ベクトルに近い文を文データから抽出し、抽出した文から、会話文に対する応答文を生成する技術が開示されている。
【０００６】
さらに、家電機器を自然言語によって操作し、操作の結果を自然言語でユーザに通知する試みも行われている。
【０００７】
例えば、下掲の特許文献３には、利用者からの自然言語による行為指示に対し、その行為指示に対応するサービスを提供するサービス提供エージェントにサービスを実行させ、実行内容を利用者に出力する自然言語対話システムが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−９２５４０号公報（２００５年４月７日公開）
【特許文献２】特開２０１２−１４１７１３号公報（２０１２年７月２６日公開）
【特許文献３】特開２００１−３３７８２７号公報（２００１年１２月７日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述のような従来技術は、特定のユーザからの行為指示の結果を、多人数参加型の掲示板のように複数のユーザが参加するコミュニケーションの場において通知する場合、その通知が誰宛ての通知であるのか、ユーザが一目で確認することが困難であるという問題がある。
【００１０】
すなわち、上記特許文献１の発明において、１匹の電子的な仮想なペットまたは１人の擬人化エージェントの対象ユーザはエージェント作成者のみであり、多人数参加型掲示板のように、１人のエージェントの対象ユーザが複数となり得る場合は想定されていない。
【００１１】
同様に、上記特許文献３の発明は、複数のエージェントが協調して１人のユーザとコミュニケーションを行うものであり、エージェントの対象ユーザが複数となり得る場合を想定していない。つまり、上記特許文献３の発明において、エージェントが同時に複数のユーザとコミュニケーションをし得る状況下において、エージェントのメッセージがどのユーザに宛てたものであるのか認識することが困難になるという事態は想定されていない。
【００１２】
また、上記特許文献２の発明は、ユーザから入力された会話文の特徴ベクトルから応答文を生成するものであり、つまり、コンピュータが生成する応答文の前提として、この応答文の前にユーザからの会話文が存在する。従って、ユーザからのコンピュータに対する行為指示から、コンピュータがその行為指示の結果をユーザに通知するまでに、他のユーザが会話文を入力するような事態を、上記特許文献２の発明は想定していない。
【００１３】
本発明は、上記問題点に鑑みてなされたものであり、その主たる目的は、１人以上のユーザが参加するコミュニケーションの場において、ユーザからの動作指示の結果を報告するメッセージを、当該ユーザを宛て先に明示して通知する、メッセージ通知装置を提供することにある。
【課題を解決するための手段】
【００１４】
上記の課題を解決するために、本発明の一態様に係るメッセージ通知装置は、メンバが書き込んだメッセージを時系列に沿って表示するコミュニケーションサービスにおけるメッセージから、外部機器を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定する動作指示検出手段と、上記動作指示検出手段が検出した上記動作指示に従って上記外部機器を制御する外部機器制御手段と、上記外部機器制御手段の制御によって上記外部機器が動作した結果を取得する動作結果取得手段と、上記動作結果取得手段が取得した動作の結果を報告する報告メッセージを生成する報告メッセージ生成手段と、上記報告メッセージ生成手段が生成した報告メッセージを、上記コミュニケーションサービスを提供するサーバに出力して、上記動作指示検出手段が特定した指示者を宛て先として明記した状態で、該メッセージを上記コミュニケーションサービスに表示させる報告メッセージ表示手段とを備えていることを特徴としている。
【発明の効果】
【００１５】
本発明の一態様によれば、１人以上のユーザが参加するコミュニケーションの場において、ユーザからの動作指示の結果を報告するメッセージを、当該ユーザを宛て先に明示して通知することができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るエージェントサーバの要部構成の一例を示すブロック図である。
【図２】図１のエージェントサーバを含む家族伝言板システムの概要を示す図である。
【図３】図１のエージェントサーバの処理の流れを示すフローチャートである。
【図４】家族伝言板における、図１のエージェントサーバと家族のメンバ１人とのメッセージのやり取りを時系列で示す図である。
【図５】動作指示と該動作指示の指示者との組合せを格納している実行状態管理テーブルのデータ構造および具体例を示す図である。
【図６】動作指示識別子と動作指示の名称との組合せを格納しているコマンド名称テーブルのデータ構造および具体例を示す図である。
【図７】動作指示識別子と機器制御コードとの組合せを格納している機器制御テーブルのデータ構造および具体例を示す図である。
【図８】画像ＩＤと動作指示識別子との組合せを格納しているコマンド画像テーブルのデータ構造および具体例を示す図である。
【図９】動作指示識別子とメッセージ種別と文言との組合せを格納している文言テンプレートテーブルのデータ構造および具体例を示す図である。
【図１０】ユーザ識別子とユーザの名前との組合せを格納しているユーザ名称テーブルのデータ構造および具体例を示す図である。
【図１１】家族伝言板における、本発明の他の実施形態に係るエージェントサーバと家族の複数のメンバとのメッセージのやり取りを時系列で示す図である。
【図１２】図１１に示されているエージェントサーバが、図１１に示すメッセージのやり取りをどのように実行しているかを時系列で示す図である。
【図１３】家族伝言板にメンバが書き込んだメッセージに画像が含まれる場合の、エージェントサーバ１とメンバとのメッセージのやり取りを時系列で示す図である。
【図１４】エージェントサーバが、外部機器によって制御される被制御機器の動作結果を、家族伝言板に書き込む場合の、エージェントサーバとメンバとのメッセージのやり取りを時系列で示す図である。
【発明を実施するための形態】
【００１７】
〔実施形態１〕
本発明の一実施形態について、図１〜図１４に基づいて説明すると以下の通りである。
【００１８】
以下で説明する実施形態では、一例として、本発明のメッセージ通知装置を、家族伝言板システムに適用した例について説明する。家族伝言板システムとは、家族伝言板サーバ（会話仲介サーバ）が提供する家族伝言板（電子会話ツール）を介して、１世帯の家族が１つのコミュニティを形成し、家族の各メンバ（例えば、お父さん、お母さん、子供）が、それぞれの携帯端末を用いて、会話を行うためのコミュニケーションシステムである。各メンバは、それぞれの携帯端末以外にも、家庭にあるネットワーク対応テレビやタブレット等の共有端末を用いて会話を行うこともできる。本発明のメッセージ通知装置は、家族伝言板システムにおいて、エージェントサーバとして実現される。エージェントサーバは、上記家族の家宅内で稼働する家庭内機器に対して、家族の一員としての疑似人格を付与し、その擬人化された家庭内機器（以下、擬人化機器）の代理で、当該家族の上記家族伝言板に発言する権限を有する装置である。家族伝言板システムの詳細は後述する。
【００１９】
なお、以下の図面において同一または相当する部分には、同一の参照符号を付すものとし、それらの説明は重複して行なわない。また、図面における長さ、大きさおよび幅などの寸法関係ならびに形状は、図面の明瞭化と簡略化のために適宜に変更されており、実際の寸法および形状を表してはいない。
【００２０】
〔家族伝言板システムの概要〕
本発明の一実施形態にかかる家族伝言板システムの概要を図２に基づいて説明する。図２は、家族伝言板システム１００の概要を示す図である。
【００２１】
家族伝言板システム１００は、登録されたコミュニティのメンバ間におけるコミュニケーションのための電子伝言板を提供するシステムである。また、家族伝言板システム１００では、家庭（コミュニティ）内に配置された機器（以下、家庭内機器と呼ぶ）の状態、およびメンバの書き込み内容等の少なくとも一方に応じて、家族伝言板に、擬人化機器からの書き込みが行われるようになっている。さらに、家族伝言板システム１００では、メンバからの指示に従って、擬人化機器を含む各家庭内機器の動作制御を行うこともできるようになっている。
【００２２】
図示のように、家族伝言板システム１００は、エージェントサーバ１、家族伝言板サーバ２、およびホームサーバ３を含む。また、家族伝言板には、家族のメンバ（図示の例ではお父さん、お母さん、子供）が所持する携帯端末４ａ、４ｂ、および４ｃがアクセスし、各メンバは自身の携帯端末を用いて、家族伝言板を介して、書き込み、閲覧、および家庭内機器の動作指示を行うことができるようになっている。また、ホームサーバ３には、掃除ロボット５が無線通信接続されていると共に、その他の家庭内機器が有線または無線にて通信接続されている。なお、同図では、掃除ロボット５が擬人化機器であり、その他の家庭内機器が、空調装置６、照明装置７、冷蔵庫８、および、ＰＣ（Personal Computer）９である例を示しているが、家庭内機器の種類および数は特に限定されない。家庭内機器としては、この他にも、テレビ、録画装置、スピーカなどのＡＶ機器が含まれていてもよい。
【００２３】
エージェントサーバ１は、家庭内機器の状態、家庭内機器が取得した情報、およびメンバの書き込み内容等に応じて、家族伝言板に書き込みを行う。より具体的には、エージェントサーバ１は、掃除ロボット５を擬人化したキャラクタとして書き込みを行う。これにより、家族のメンバは、家族伝言板において、掃除ロボット５とのコミュニケーションを疑似体験することができる。
【００２４】
また、エージェントサーバ１は、携帯端末４ａ、４ｂ、および４ｃからの動作指示を受け付け、これに応じた動作指示をホームサーバ３に送信することによって、掃除ロボット５または他の家庭内機器の動作を制御する。
【００２５】
なお、ここでは、エージェントサーバ１が、家族伝言板への書き込みを行う機能と、掃除ロボット５および家庭内機器の動作を制御する機能とを備えている例を説明するが、これらの機能は個別のサーバに搭載してもよい。
【００２６】
家族伝言板サーバ２は、携帯端末４ａ、４ｂ、および４ｃに対する家族伝言板の表示画面の提示、および書き込みの管理等の、家族伝言板に関する処理全般を行う。
【００２７】
ホームサーバ３は、掃除ロボット５または家庭内機器と、エージェントサーバ１との間の情報の送受信を統括して制御する。具体的には、ホームサーバ３は、エージェントサーバ１から受信した動作指示に従って、掃除ロボット５または家庭内機器の動作制御を行う。また、ホームサーバ３は、掃除ロボット５から取得した情報、および家庭内機器から取得した情報をエージェントサーバ１に送信する。
【００２８】
なお、図示の例では、掃除ロボット５または家庭内機器に搭載されたセンサによって取得されたセンシングデータ、家庭内機器の動作ログ、および家庭内機器が撮影した写真を送信しているが、送信する情報はこれらの例に限られない。このようにして家庭内で集められた情報は、コミュニティ内の事象を示す状況情報として、ホームサーバ３からエージェントサーバ１へと提供される。エージェントサーバ１は、上記状況情報を利用することにより、コミュニティ内（ここでは、図２に示す家庭、家族）の状況を把握することができる。
【００２９】
また、例えば家族伝言板に関与する家庭内機器が存在しない場合のように、統括的な制御の必要がない場合には、ホームサーバ３を設けずに、掃除ロボット５がエージェントサーバ１と情報を送受信する構成としてもよい。
【００３０】
携帯端末４ａ、４ｂ、および４ｃは、家族伝言板の閲覧、書き込み、ならびに、掃除ロボット５および他の家庭内機器の動作指示を行うための装置である。同図では、携帯端末４ａ、４ｂ、および４ｃがスマートフォンである例を示しているが、家族伝言板の閲覧、書き込み、および動作指示を行うことができるものであればこれに限られない。以降、携帯端末４ａ、４ｂ、および４ｃを特に区別する必要がない場合には、これらの総称として携帯端末４を用いる。またこれ以後、携帯端末４の画面に表示される家族伝言板には、発言者を示す情報として、図２に示すお父さんは「父」、お母さんは「母」、子供は「太郎」、掃除ロボット５は「ロボ」と表記されるものとする。
【００３１】
掃除ロボット５は、自動で床の掃除を行う自走式の掃除機である。また、掃除ロボット５は、掃除のための機能の他にも、動作ログの記憶機能、充電残量の検出および出力機能、画像撮影機能、音声認識機能、音声出力機能等を備えている。さらに、掃除ロボット５は、家庭内機器に制御信号を送信してこれを操作する機能も有している。
【００３２】
空調装置６は、冷暖房等の空調を行う装置であり、いわゆるエアコンである。また、空調装置６は、温度センサを備えており、これによって検出した室温をホームサーバ３に送信する。
【００３３】
照明装置７は、ＬＥＤ等の光源を備えた照明装置であり、ホームサーバ３の制御によって点灯および消灯することができる。
【００３４】
冷蔵庫８は、食品等を最適な温度で保存する保存庫である。本実施形態における冷蔵庫８は、例えば、カメラ、重量センサ、ＩＣタグリーダなどのセンシング機器を備えており、庫内の在庫の状況を状況情報として取得する機能と、その状況情報をホームサーバ３にアップロードする通信機能とを備えている。
【００３５】
ＰＣ９は、いわゆるパソコンである。ＰＣ９は、家族の各メンバが共用するために１台設けられていてもよいし、各メンバがそれぞれ所有するために複数台設けられていてもよい。ＰＣ９は、デスクトップパソコン、ノートパソコン、タブレットＰＣなどで実現される。本実施形態では、ＰＣ９には、スケジュール管理アプリケーションが搭載されており、ＰＣ９を用いて、各メンバの予定を登録したり、読み出したりすることができる。ＰＣ９を介して入力された各メンバの予定の情報（カレンダー情報）は、状況情報としてホームサーバ３にアップロードされ、各ＰＣ９、携帯端末４ａ、４ｂ、および４ｃ、ならびに、エージェントサーバ１にて共有される。
【００３６】
さらに、エージェントサーバ１は、インターネットを介して必要な情報を収集する情報検索機能を有している。エージェントサーバ１は、図示のとおり、インターネットに接続されているあらゆる情報提供サーバ３ａ（図示しないが、情報提供サーバ３ｂ、３ｃ、・・・と多数存在しているケースが想定されている）にアクセスすることができる。本実施形態では、エージェントサーバ１は、要求した状況情報を情報提供サーバ３ａから取得して、図示するコミュニティを取り巻く外部環境の状況（家族に影響を与え得る外部環境での発生事象）を把握することができる。情報提供サーバ３ａから取得される状況情報は、これには限定されないが、例えば、この家族の家宅近隣の小売店または施設の情報、家族が関心を持っている地域の天気予報情報などが想定される。
【００３７】
こうして、家族伝言板システム１００において、エージェントサーバ１は、メンバが家族伝言板に書き込んだメッセージから、外部機器を操作するための動作指示を検出すると、該動作指示に従って外部機器を制御し、該外部機器が動作した結果について報告する１つの報告メッセージを、上記メンバを宛て先として明記して、書き込む。また、エージェントサーバ１は、コミュニティ（家族）の一員である擬人化された掃除ロボット５の代理として、家族伝言板に対してメッセージを書き込む。
【００３８】
以下では、メンバからの動作指示の結果を報告するメッセージを、該ユーザを宛て先に明示して、メンバに通知するためのエージェントサーバ１の構成について、より詳細に説明する。
【００３９】
〔エージェントサーバの構成〕
図１は、エージェントサーバ１の要部構成の一例を示すブロック図である。
【００４０】
本実施形態に係るエージェントサーバ１は、家族伝言板におけるメッセージから、掃除ロボット５（外部機器）を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定する動作指示検出部２１（動作指示検出手段）と、動作指示検出部２１が検出した上記動作指示に従って上記外部機器を制御する外部機器制御部２３（外部機器制御手段）と、外部機器制御部２３の制御によって上記外部機器が動作した結果を取得する動作結果取得部２４（動作結果取得手段）と、動作結果取得部２４が取得した動作の結果を報告する報告メッセージを生成する報告メッセージ生成部２５（報告メッセージ生成手段）と、報告メッセージ生成部２５が生成した報告メッセージを、家族伝言板サーバ２に出力して、動作指示検出部２１が特定した指示者を宛て先として明記した状態で、該メッセージを家族伝言板に表示させる報告メッセージ表示部２６（報告メッセージ表示手段）とを備える。
【００４１】
上記の構成によれば、エージェントサーバ１は、１人以上のユーザが参加するコミュニケーションの場（例えば家族伝言板）において、ユーザからの動作指示の結果を報告するメッセージを、当該ユーザを宛て先に明示して通知することができる。
【００４２】
エージェントサーバ１はさらに、記憶部１２と、メッセージ取得部２０と、指示者登録部２２と、を備える。ただし、詳細は後述するが、以下に詳細を説明する本実施形態においては、記憶部１２と指示者登録部２２とは必須ではない。
【００４３】
図１に示すとおり、エージェントサーバ１は、制御部１０、通信部１１、および、記憶部１２を備えている。
【００４４】
通信部１１は、エージェントサーバ１が外部の機器と通信するためのものである。具体的には、エージェントサーバ１は、通信部１１を介して家族伝言板サーバ２、ホームサーバ３、および、各種情報提供サーバ３ａと通信を行う。
【００４５】
記憶部１２は、エージェントサーバ１が使用する各種データを格納する記憶装置である。
【００４６】
記憶部１２は、エージェントサーバ１の制御部１０が実行する（１）制御プログラム、（２）ＯＳプログラム、（３）制御部１０が、エージェントサーバ１が有する各種機能を実行するためのアプリケーションプログラム、および、（４）該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶するものである。
【００４７】
例えば、上記の（１）〜（４）のデータは、ＲＯＭ（read only memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（登録商標）（Electrically EPROM）、ＨＤＤ（Hard Disc Drive）等の不揮発性記憶装置に記憶される。
【００４８】
エージェントサーバ１は、図示しない一時記憶部を備えていてもよい。一時記憶部は、エージェントサーバ１が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、ＲＡＭ（Random Access Memory）などの揮発性記憶装置で構成される。
【００４９】
どのデータをどの記憶装置に記憶するのかについては、エージェントサーバ１の使用目的、利便性、コスト、または、物理的な制約などから適宜決定される。
【００５０】
記憶部１２は、実行状態管理テーブル３０、コマンド名称テーブル３１、機器制御テーブル３２、コマンド画像テーブル３３、文言テンプレートテーブル３４、ユーザ名称テーブル３５を格納している。記憶部１２が格納している実行状態管理テーブル３０等について、詳細は後述する。
【００５１】
制御部１０は、エージェントサーバ１の機能を統括して制御するものである。図示の制御部１０には、機能ブロックとして、メッセージ取得部２０、動作指示検出部２１、指示者登録部２２、外部機器制御部２３、動作結果取得部２４、報告メッセージ生成部２５、報告メッセージ表示部２６が含まれている。
【００５２】
上述した制御部１０の各機能ブロックは、例えば、ＣＰＵ（central processing unit）などが、ＲＯＭ（read only memory）、ＮＶＲＡＭ（non-Volatile random access memory）等で実現された記憶装置（記憶部１２）に記憶されているプログラムを不図示のＲＡＭ（random access memory）等に読み出して実行することで実現できる。
【００５３】
メッセージ取得部２０は、家族伝言板サーバ２から、家族の各メンバが家族伝言板へ書き込んだメッセージを取得する。メッセージ取得部２０が取得するメッセージは、テキストのみであってもよいし、画像ＩＤを含んでもよい。
【００５４】
以下では、メッセージ取得部２０は、メンバが家族伝言板に書き込んだメッセージを、下記のようなＪＳＯＮ形式で取得するものとする。すなわち、例えば｛“ｐｏｓｔｅｒ”：“Ｕ００１”, “ｔｅｘｔ”：“写真撮ってね”, “ｉｍａｇｅ＿ＩＤ”：“ＳＥＡＬ＿１０１”｝といった形式で、メッセージを取得する。ただし、本発明の一態様に係るメッセージ通知装置において、メッセージ取得部２０がＪＳＯＮ形式のメッセージを取得することは必須ではない。上記のＪＳＯＮ形式のメッセージにおいて、“ｐｏｓｔｅｒ”はメッセージを投稿したメンバのユーザ識別子、“ｔｅｘｔ”はメッセージのテキスト部分、“ｉｍａｇｅ＿ＩＤ”はメッセージに添付された画像ＩＤを表す。
【００５５】
画像ＩＤとは、携帯端末４のアプリケーションに組み込まれた画像を一意に特定するためのＩＤであって、家族伝言板サーバ２に出力するメッセージに付加することによって、画像つきのメッセージを家族伝言板サーバ２に出力することができる。
【００５６】
ただし、画像ＩＤを含むメッセージについて、本実施形態では説明を行わず、詳細は後述する。
【００５７】
動作指示検出部２１は、メンバが家族伝言板に書き込んだメッセージから、外部機器を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定する。そして、動作指示検出部２１は、検出した動作指示と特定した指示者とを、指示者登録部２２に送信する。
【００５８】
指示者登録部２２の機能について、概要を説明すれば、以下の通りである。すなわち、指示者登録部２２は、第１に、動作指示検出部２１が検出した上記動作指示によって指示された動作の実行状態の判定を行う。詳細は後述するが、動作指示検出部２１が検出した動作指示と、実行状態管理テーブル３０に格納されている動作指示とが同じであるか否かを判定することによって、実行状態の判定を行う。第２に、実行状態の判定結果に応じて実行状態管理テーブル３０のデータを更新し、第３に、実行状態の判定結果に応じて動作指示の外部機器制御部２３への送信を行う。指示者登録部２２は、第４に、実行状態の判定結果に応じた内容のメッセージを、報告メッセージ生成部２５に生成させる。なお、報告メッセージ生成部２５は、メッセージを生成するに際し、動作指示検出部２１によって更新された後の実行状態管理テーブル３０のデータを参照する。従って、実行状態の判定結果に応じた実行状態管理テーブル３０のデータ更新は、報告メッセージ生成部２５がメッセージを生成する前に終了していなくてはならない。これに対し、動作指示の外部機器制御部２３への送信は、実行状態の判定後であれば、報告メッセージ生成部２５にメッセージを生成させるのと同じタイミングで実行してもよい。
【００５９】
以下に、指示者登録部２２の機能について、詳細を説明する。
【００６０】
第１に、指示者登録部２２は、実行状態の判定を行う。詳細は後述するが、実行状態管理テーブル３０には、上記動作指示によって指示された動作が実行中である場合はデータが格納されており、実行中の動作が無い場合には、格納されているデータが無い。指示者登録部２２は、まず、実行状態管理テーブル３０に既に格納されているデータがあるかを確認し、次に、動作指示検出部２１が検出した動作指示と、実行状態管理テーブル３０に格納されている動作指示とが同じであるか否かを判定する。
【００６１】
第２に、指示者登録部２２は、上記判定の結果に応じて、実行状態管理テーブル３０のデータを更新する。
【００６２】
すなわち、指示者登録部２２は、実行状態管理テーブル３０にデータが格納されていないのを確認すると、動作指示検出部２１が検出した動作指示と、該動作指示の指示者、動作指示検出部２１が特定した指示者とを、実行状態管理テーブル３０に格納する。
【００６３】
実行状態管理テーブル３０に既にデータが格納されているのを確認すると、指示者登録部２２は、動作指示検出部２１が検出した動作指示が、実行状態管理テーブル３０に既に格納されている動作指示と同じであるか否かを確認する。
【００６４】
動作指示検出部２１が検出した動作指示が、実行状態管理テーブル３０に既に格納されている動作指示と同じである場合、指示者登録部２２は、実行状態管理テーブル３０に既に格納されている動作指示に組み合わされる指示者に、動作指示検出部２１が特定した指示者を追加する。
【００６５】
詳細は後述するが、実行状態管理テーブル３０には、動作指示と、該動作指示を含むメッセージを家族伝言板に書き込んだメンバとが組み合されて格納される。つまり図５に示すように、実行状態管理テーブル３０において、動作指示（より詳細に言うと各動作指示を識別するための動作指示識別子）が「動作指示識別子フィールド」に、該動作指示の指示者（より詳細に言うと各メンバを識別するためのユーザ識別子）が「ユーザリストフィールド」に格納される。なお、以下の説明において、表現の冗長性を防ぐため、「ユーザリストフィールド」は単に「ユーザリスト」と表記することにする。
【００６６】
動作指示検出部２１が検出した動作指示が、実行状態管理テーブル３０に既に格納されている動作指示と同じである場合、指示者登録部２２は、「ユーザリスト」の最後に、動作指示検出部２１によって特定された指示者を追加する。つまり、「ユーザリスト」には、「動作指示識別子フィールド」に格納されている動作指示識別子に対応する動作指示を含むメッセージを家族伝言板に書き込んだメンバのユーザ識別子が、書き込んだ順に格納される。
【００６７】
動作指示検出部２１が検出した動作指示が、実行状態管理テーブル３０に既に格納されている動作指示と異なる場合、指示者登録部２２は、実行状態管理テーブル３０に格納されているデータを更新しない。
【００６８】
第３に、指示者登録部２２は、上記実行状態の判定結果に応じて、動作指示の外部機器制御部２３への送信を行う。すなわち、指示者登録部２２は、実行状態管理テーブル３０にデータが格納されていないのを確認すると、動作指示検出部２１から受信した動作指示を外部機器制御部２３に送信する。実行状態管理テーブル３０に既にデータが格納されているのを確認すると、指示者登録部２２は、外部機器制御部２３への送信を行わない。
【００６９】
第４に、指示者登録部２２は、実行状態の判定結果に応じた内容のメッセージを、報告メッセージ生成部２５に生成させる。
【００７０】
すなわち、指示者登録部２２は、実行状態管理テーブル３０にデータが格納されていないのを確認すると、報告メッセージ生成部２５に、以下のメッセージを生成させる。すなわち、動作指示検出部２１によって特定された指示者が宛て先として明示され、「動作指示を受け付けました。動作指示によって指示された動作を実行させます」という旨のメッセージを生成させる。
【００７１】
実行状態管理テーブル３０にデータが格納されているのを確認すると、指示者登録部２２は次に、動作指示検出部２１によって検出された動作指示と、実行状態管理テーブル３０に格納されている動作指示とが同じであるか否かを判定する。
【００７２】
動作指示検出部２１が検出した動作指示と、実行状態管理テーブル３０に格納されている動作指示とが異なる場合、指示者登録部２２は、報告メッセージ生成部２５に、以下のメッセージを生成させる。すなわち、動作指示検出部２１によって特定された指示者が宛て先として明示され、「動作指示によって指示された動作は、現在他の動作を実行中なので、実行できない」という旨のメッセージを生成させる。
【００７３】
動作指示検出部２１が検出した動作指示と、実行状態管理テーブル３０に格納されている動作指示とが同じ場合、指示者登録部２２は、報告メッセージ生成部２５に、以下のメッセージを生成させる。すなわち、動作指示検出部２１によって特定された指示者が宛て先として明示され、「今回指示された動作は、他のメンバから既に指示されて実行中なので、待ってほしい」という旨のメッセージを生成させる。
【００７４】
なお、指示者登録部２２は、報告メッセージ生成部２５に以下の情報を送信することによって、報告メッセージ生成部２５に、上記の各メッセージを生成させる。すなわち、動作指示検出部２１が検出した動作指示の動作指示識別子と、動作指示検出部２１が特定したメンバのユーザ識別子と、報告メッセージ生成部２５が生成すべきメッセージを報告メッセージ生成部２５が識別するためのメッセージ種別とを、送信する。
【００７５】
詳細は後述するが、メッセージ種別は、動作指示毎に、報告メッセージ生成部２５が生成するメッセージを識別するための識別子である。図９に例示する文言テンプレートテーブル３４は、動作指示識別子とメッセージ種別との組合せに応じて、文言を規定している。
【００７６】
例えば図９において、動作指示識別子が同じ場合、動作指示検出部２１によって特定された指示者が宛て先として明示され、「動作指示を受け付けました。動作指示によって指示された動作を実行させます」という旨のメッセージのメッセージ種別は、ＲＰ＿ＳＴＡＲＴである。また、動作指示検出部２１によって特定された指示者が宛て先として明示され、「今回指示された動作は、他のメンバから既に指示されて実行中なので、待ってほしい」という旨のメッセージのメッセージ種別は、ＲＰ＿ＢＵＳＹ＿１である。さらに、動作指示検出部２１によって特定された指示者が宛て先として明示され、「動作指示によって指示された動作は、現在他の動作を実行中なので、実行できない」という旨のメッセージのメッセージ種別は、ＲＰ＿ＢＵＳＹ＿２である。
【００７７】
ただし、「今回指示された動作は、他のメンバから既に指示されて実行中なので、待ってほしい」という旨のメッセージと、「動作指示によって指示された動作は、現在他の動作を実行中なので、実行できない」という旨のメッセージとは、「動作実行中なので指示を受け付けることはできない」という旨の共通のメッセージに置き換えてもよい。
【００７８】
すなわち、「動作実行中なので指示を受け付けることはできない」という旨の共通のメッセージのメッセージ種別としてＲＰ＿ＢＵＳＹを定義し、ＲＰ＿ＢＵＳＹ＿１とＲＰ＿ＢＵＳＹ＿２とを区別して送信する代わりに、ＲＰ＿ＢＵＳＹを送信してもよい。具体的には、実行状態管理テーブル３０にデータが格納されているのを確認すると、指示者登録部２２は、動作指示検出部２１によって検出された動作指示に該当する動作指示識別子と、ＲＰ＿ＢＵＳＹというメッセージ種別とを、報告メッセージ生成部２５に送信してもよい。この場合、報告メッセージ生成部２５は、実行状態管理テーブル３０にデータが格納されている時には、動作指示検出部２１が検出した動作指示と、実行状態管理テーブル３０に格納されている動作指示とが同じであるか否かに関わらず、以下のメッセージを生成する。すなわち、動作指示検出部２１によって特定された指示者が宛て先として明示され、「動作実行中なので指示を受け付けることはできない」という旨のメッセージを生成する。
【００７９】
外部機器制御部２３は、指示者登録部２２から動作指示（より正確には動作指示識別子）を受信すると、該動作指示に従って、外部機器を制御する。具体的には、外部機器制御部２３は、動作指示検出部２１から動作指示識別子を取得すると、機器制御テーブル３２を参照して、該動作指示識別子に対応する機器制御コードを選択し、該機器制御コードを対応する外部機器へと送信する。
【００８０】
動作結果取得部２４は、外部機器から、動作指示によって指示された動作の結果と、つまりエラーコードを含む戻り値と、該動作指示の動作指示識別子とを、外部機器から取得する。
【００８１】
戻り値とは、外部機器の動作結果であり、外部機器が動作の結果取得したデータを含むものであって、例えば以下のようなものを挙げることができる。すなわち、動作指示識別子が「ＣＭ００１」、つまり指示動作が指示している動作が「写真撮影」である場合、戻り値の例としては、撮影した写真画像データを挙げることができる。また、動作指示識別子が「ＣＭ００３」、つまり指示されている動作が「温度取得」である場合の戻り値の例としては、室内の温度データを挙げることができる。
【００８２】
エラーコードとは、外部機器が、動作のエラーの内容毎に、エージェントサーバ１に通知するものである。例えば、掃除ロボット５が「写真撮影」しようとして「撮影失敗」した場合、掃除ロボット５は、「１」というエラーコードを、「写真撮影」という動作指示の動作指示識別子（ＣＭ００１）と共に、エージェントサーバ１に送信する。また、掃除ロボット５が「掃除」しようとして「ダストカップ満杯のため掃除できなかった」場合、掃除ロボット５は、「１」というエラーコードを、「掃除」という動作指示の動作指示識別子（ＣＭ００２）と共に、エージェントサーバ１に送信する。さらに、掃除ロボット５が「掃除」しようとして「移動不能のため掃除できなかった」場合、掃除ロボット５は、「２」というエラーコードを、動作指示識別子「ＣＭ００２」と共に、エージェントサーバ１に送信する。
【００８３】
つまり、例えば同じ「掃除不能」というエラー結果であっても、エラーの発生した理由によって、エラーコードが異なる。また、エラーコードが同じ「１」であっても、エラーコードと一緒に送信される動作指示識別子が異なることによって、例えば「写真撮影」がエラーに終わったのか、「掃除」がエラーに終わったのかを、動作結果取得部２４は区別することができる。エラーコードと動作指示識別子とを外部機器から受信することによって、動作結果取得部２４は、動作指示識別子に対応する動作指示が、どのような内容のエラーに終わったのかを知ることができる。
【００８４】
動作結果取得部２４は、外部機器から、動作指示によって指示された動作の結果（つまり、エラーコードを含む戻り値）と、該動作指示に対応する動作指示識別子とを取得し、該動作の結果についての報告メッセージを、報告メッセージ生成部２５に生成させる。具体的には、動作結果取得部２４は、以下の情報を報告メッセージ生成部２５に送信することによって、動作の結果についての報告メッセージを、報告メッセージ生成部２５に生成させる。すなわち、動作の結果が成功であれば、「ＲＰ＿ＳＵＣＣＥＥＤＥＤ」というメッセージ種別と戻り値とを、動作の結果が失敗であれば、「ＲＰ＿ＦＡＩＬＥＤ＿エラーコード」というメッセージ種別を、該動作を指示した動作指示の動作指示識別子と一緒に送信する。
【００８５】
従って、例えば、「ＣＭ００１」という動作指示識別子と、「ＲＰ＿ＦＡＩＬＥＤ＿１」というメッセージ種別とを、動作結果取得部２４が、報告メッセージ生成部２５に送信すると、報告メッセージ生成部２５は以下のメッセージを生成する。すなわち、「写真撮影」という動作指示によって指示された動作の結果が「撮影失敗」である旨のメッセージを生成する。また、例えば、「ＣＭ００２」という動作指示識別子と「ＲＰ＿ＦＡＩＬＥＤ＿２」というメッセージ種別とを受信すると、「掃除」という動作指示によって指示された動作の結果が「移動不能のため掃除できなかった」である旨のメッセージを生成する。さらに、「ＣＭ００１」という動作指示識別子と、「ＳＵＣＣＥＥＤＥＤ」というメッセージ種別と、写真画像データとを受信すると、該写真画像データを埋め込んだ、「写真撮影できた」という旨のメッセージを生成する。
【００８６】
なお、動作の結果を報告する報告メッセージの中に明示される、メッセージの宛て先を報告メッセージ生成部２５がどのようにして取得するかについては、後述する。
【００８７】
動作結果取得部２４は、外部機器から、動作指示によって指示された動作の結果（エラーコードを含む戻り値）を受けとると、実行状態管理テーブル３０のデータを削除する。つまり、動作指示検出部２１が検出した動作指示と該動作指示の指示者との組合せが実行状態管理テーブル３０に格納されている期間は、動作指示検出部２１が動作指示を検出してから、該動作指示によって指示された動作の結果を動作結果取得部２４が取得するまでの間である。従って、動作指示によって指示されて外部機器が実行中である動作が無い場合、つまりエージェントサーバ１が外部機器に実行させている動作がないとき、実行状態管理テーブル３０にはデータが格納されていない。
【００８８】
報告メッセージ生成部２５の機能について、概要を説明すれば、以下の通りである。すなわち、第１に、報告メッセージ生成部２５は、指示者登録部２２から受信する、動作指示識別子と、ユーザ識別子と、メッセージ種別とに従って、メッセージを生成する。第２に、報告メッセージ生成部２５は、動作結果取得部２４から受信する、メッセージ種別と、戻り値と、動作指示識別子とに従って、メッセージを生成する。
【００８９】
以下に、報告メッセージ生成部２５の機能について、詳細を説明する。
【００９０】
第１に、報告メッセージ生成部２５は、上記のように、指示者登録部２２から受信する情報に応じて、動作指示検出部２１によって特定された指示者が宛て先として明示されたメッセージであって、下記のような内容のメッセージを生成する。すなわち、「動作指示を受け付けました。動作指示によって指示された動作を実行させます」という旨のメッセージ、または「動作実行中なので指示を受け付けることはできない」という旨のメッセージを生成する。
【００９１】
具体的には、指示者登録部２２は、実行状態管理テーブル３０にデータが格納されていないのを確認すると、指示者登録部２２は、以下の情報を報告メッセージ生成部２５に送信する。すなわち、動作指示検出部２１が検出した動作指示の動作指示識別子と、動作指示検出部２１が特定したメンバのユーザ識別子と、「ＲＰ＿ＳＴＡＲＴ」というメッセージ種別とを報告メッセージ生成部２５に送信する。上記情報を受信すると、報告メッセージ生成部２５は、図９に例示する文言テンプレートテーブル３４を参照して、上記ユーザ識別子に対応するユーザを宛て先として明記して、上記動作指示識別子に対応する動作指示を受け付けた旨のメッセージを生成する。
【００９２】
また、指示者登録部２２は、実行状態管理テーブル３０にデータが格納されており、動作指示検出部２１によって検出された動作指示と、実行状態管理テーブル３０に格納されている動作指示とが同じであるのを確認すると、以下の情報を送信する。すなわち、動作指示検出部２１が検出した動作指示の動作指示識別子と、動作指示検出部２１が特定したメンバのユーザ識別子と、「ＲＰ＿ＢＵＳＹ＿１」というメッセージ種別とを報告メッセージ生成部２５に送信する。上記情報を受信すると、報告メッセージ生成部２５は、図９に例示する文言テンプレートテーブル３４を参照して、上記ユーザ識別子に対応するユーザを宛て先として明記して、以下の内容のメッセージを生成する。すなわち、「実行状態管理テーブル３０において上記動作指示識別子と組み合わせて格納されているメンバのうち、最後に格納されたメンバ以外のメンバから指示され、上記動作指示識別子に対応する動作指示によって指示された動作を実行中である」旨のメッセージを生成する。
【００９３】
なお、前述のように、指示者登録部２２は、動作指示検出部２１によって検出された動作指示と、実行状態管理テーブル３０に既に格納されている動作指示とが同じ場合、ユーザリストの最後に、動作指示検出部２１によって特定されたメンバを格納する。従って、報告メッセージ生成部２５が上記メッセージを生成するために、実行状態管理テーブル３０を参照する際、動作指示検出部２１が検出した動作指示と、実行状態管理テーブル３０に格納されている動作指示とが同じ場合、以下の事実が成立している。すなわち、「実行状態管理テーブル３０に動作指示識別子と組み合わせて格納されているメンバのうち、最後に格納されたメンバ」（つまり、ユーザリストの最後のメンバ）は、動作指示検出部２１が（今回）特定したメンバである。
【００９４】
さらに、指示者登録部２２は、実行状態管理テーブル３０にデータが格納されており、動作指示検出部２１によって検出された動作指示と、実行状態管理テーブル３０に格納されている動作指示とが異なるのを確認すると、以下の情報を送信する。すなわち、動作指示検出部２１が検出した動作指示の動作指示識別子と、動作指示検出部２１が特定したメンバのユーザ識別子と、「ＲＰ＿ＢＵＳＹ＿２」というメッセージ種別とを報告メッセージ生成部２５に送信する。上記情報を受信すると、報告メッセージ生成部２５は、図９に例示する文言テンプレートテーブル３４を参照して、上記ユーザ識別子に対応するユーザを宛て先として明記して、以下の内容のメッセージを生成する。すなわち、「実行状態管理テーブル３０のメンバリストに格納されているメンバ全員から指示され、実行状態管理テーブル３０の動作指示識別子に対応する動作指示によって指示されている動作を実行中である」旨のメッセージを生成する。
【００９５】
なお、前述のように、指示者登録部２２は、動作指示検出部２１によって検出された動作指示と、実行状態管理テーブル３０に既に格納されている動作指示とが異なる場合、動作指示検出部２１によって特定されたメンバを、ユーザリストに格納しない。
【００９６】
第２に、報告メッセージ生成部２５は、動作結果取得部２４が外部機器の動作した結果を取得したとき、該結果についての１つの報告メッセージを作成するとともに、該報告メッセージの宛て先を以下のように決定する。すなわち、上記報告メッセージで結果を報告する動作を指示した動作指示と組み合わされて実行状態管理テーブル３０に格納されている指示者のすべてを、上記報告メッセージの宛て先に設定する。
【００９７】
上記のように、動作指示によって指示された動作が終了すると、つまり、動作結果取得部２４が動作結果を取得すると、動作結果取得部２４は、動作の結果が成功であれば、「ＲＰ＿ＳＵＣＣＥＥＤＥＤ」というメッセージ種別と戻り値とを、該動作を指示した動作指示の動作指示識別子と一緒に、報告メッセージ生成部２５に送信する。また、動作の結果が失敗であれば、「ＲＰ＿ＦＡＩＬＥＤ＿エラーコード」というメッセージ種別を、該動作を指示した動作指示の動作指示識別子と一緒に、報告メッセージ生成部２５に送信する。
【００９８】
報告メッセージ生成部２５は、動作結果取得部２４から受信したメッセージ種別と動作指示識別子とに応じて、文言テンプレートテーブル３４を参照して、生成すべき報告メッセージの文言を選択する。また、報告メッセージ生成部２５は、実行状態管理テーブル３０のユーザリストを参照することによって、上記報告メッセージにおいて宛て先として明示するメンバを取得する。つまり、報告メッセージ生成部２５は、ユーザリストに格納されている全てのメンバが宛て先として明示された１つのメッセージであって、動作結果取得部２４が取得した上記動作結果についての報告メッセージを生成する。
【００９９】
なお、報告メッセージ生成部２５は、指示者登録部２２および動作結果取得部２４から取得する動作指示識別子およびメッセージ種別に一致する文言が文言テンプレートテーブル３４に無い場合、メッセージを生成しない。
【０１００】
例えば、「ＣＭ００３」という動作指示識別子に対応する動作指示は「温度を教えてほしい」、つまり「温度取得」という動作指示である。この「温度取得」という動作指示によって指示された動作の結果は、外部機器から即座に取得できるので、「ＲＰ＿ＳＴＡＲＴ」というメッセージ種別に対応する文言は定義されていない。従って、指示者登録部２２から、動作指示識別子「ＣＭ００３」およびメッセージ種別「ＲＰ＿ＳＴＡＲＴ」を取得した場合、該動作指示識別子および該メッセージ種別の組合せに一致する文言が文言テンプレートテーブル３４に無いので、報告メッセージ生成部２５はメッセージを生成しない。
【０１０１】
報告メッセージ表示部２６は、報告メッセージ生成部２５が生成した報告メッセージを、家族伝言板サーバ２に出力して、動作指示検出部２１が特定した指示者を宛て先として明記した状態で、該メッセージを家族伝言板に表示させる。
【０１０２】
〔各テーブルの内容〕
図１に示す記憶部１２には、実行状態管理テーブル３０、コマンド名称テーブル３１、機器制御テーブル３２、コマンド画像テーブル３３、文言テンプレートテーブル３４、ユーザ名称テーブル３５が格納されている。
【０１０３】
図５は、動作指示と該動作指示の指示者との組合せを格納している実行状態管理テーブル３０のデータ構造および具体例を示す図である。
【０１０４】
図６は、動作指示識別子と動作指示の名称との組合せを格納しているコマンド名称テーブル３１のデータ構造および具体例を示す図である。
【０１０５】
図７は、動作指示識別子と機器制御コードとの組合せを格納している機器制御テーブル３２のデータ構造および具体例を示す図である。
【０１０６】
図８は、画像ＩＤと動作指示識別子との組合せを格納しているコマンド画像テーブル３３のデータ構造および具体例を示す図である。
【０１０７】
図９は、動作指示識別子とメッセージ種別と文言との組合せを格納している文言テンプレートテーブル３４のデータ構造および具体例を示す図である。
【０１０８】
図１０は、ユーザ識別子とユーザの名前との組合せを格納しているユーザ名称テーブル３５のデータ構造および具体例を示す図である。
【０１０９】
実行状態管理テーブル３０は、動作指示単位で、該動作指示に対応するメッセージを書き込んだメンバを、指示者として格納しており、つまり、動作指示と、該動作指示を含むメッセージを家族伝言板に書き込んだメンバとを組み合して格納している。より詳細に説明すると、以下の通りである。すなわち、実行状態管理テーブル３０は、動作指示検出部２１によって動作指示が検出されてから、該動作指示によって指示された動作を外部機器が終了するまでの間、つまり、動作結果取得部２４が該動作指示によって指示された動作の結果を取得するまでの間、動作指示検出部２１が検出した動作指示と該動作指示の指示者との組合せを格納している。
【０１１０】
実行状態管理テーブル３０は、図５に示すように、「動作指示識別子フィールド」と、「ユーザリストフィールド」という２つのフィールドを含む。「動作指示識別子フィールド」には、動作指示検出部２１が検出した動作指示（より詳細に言うと各動作指示を識別するための動作指示識別子）が格納される。また、「ユーザリストフィールド」には、上記動作指示の指示者、つまり動作指示検出部２１が特定した指示者（より詳細に言うと各指示者を識別するためのユーザ識別子）が格納される。
【０１１１】
上記のように、実行中の動作がない場合、実行状態管理テーブル３０にはデータが格納されていない。実行中の動作がある場合、つまり、実行状態管理テーブル３０の「動作指示識別子フィールド」には、現在実行中の動作を指示した動作指示識別子が格納されている。「動作指示識別子フィールド」に格納されている動作指示識別子に対応する動作指示の指示者が、ユーザリストに格納されている。
【０１１２】
図５に例示する実行状態管理テーブル３０において、動作指示識別子フィールドに「ＣＭ００１」が、ユーザリストに「Ｕ００２、Ｕ００３」が格納されている。「ＣＭ００１」の動作指示識別子に対応する動作指示が「写真撮影」であり、「Ｕ００２、Ｕ００３」のユーザ識別子に対応するメンバが「お母さん、太郎」である時、図５の実行状態管理テーブル３０は以下の情報を示している。すなわち、「お母さん」と「太郎」とから、「写真撮影」の実行を指示するメッセージが家族伝言板に書き込まれたこと、「写真撮影」を実行中であること、という２点を示している。
【０１１３】
なお、前述のように、指示者登録部２２は、動作指示検出部２１によって検出された動作指示と、実行状態管理テーブル３０に既に格納されている動作指示とが同じ場合、ユーザリストの最後に、動作指示検出部２１によって特定されたメンバを格納する。つまり、実行状態管理テーブル３０のユーザリストには、上記動作指示を含むメッセージを家族伝言板に書き込んだ順に、該メッセージを書き込んだメンバ（のユーザ識別子）が格納される。従って、実行状態管理テーブル３０には、エージェントサーバ１が外部機器に実行させている動作の有無と、実行させている動作がある場合に、該動作を指示する動作指示を含むメッセージを、どのメンバが、どの順で、家族伝言板に書き込んだかという情報とが格納されている。報告メッセージ生成部２５は、実行状態管理テーブル３０のユーザリストに格納されているメンバが宛て先として明示されたメッセージを生成する。
【０１１４】
コマンド名称テーブル３１は、動作指示識別子を自然言語に変換するためのテーブルである。
【０１１５】
機器制御テーブル３２は、各動作指示識別子に対応した機器制御コードを記憶している。外部機器制御部２３は、機器制御コードを外部機器に送信することによって、機器制御コードに対応する動作を外部機器に実行させる。
【０１１６】
コマンド画像テーブル３３は、画像ＩＤと動作指示識別子との対応関係を規定しているが、詳細は後述する。
【０１１７】
文言テンプレートテーブル３４は、報告メッセージ生成部２５が生成するメッセージのテンプレートを格納している。つまり、図９に例示する文言テンプレートテーブル３４において各行は、エージェントサーバ１が家族伝言板サーバ２に出力するメッセージ１つ１つを定義している。
【０１１８】
文言テンプレートテーブル３４の各行において、動作指示識別子フィールドは各メッセージがどの動作指示に関するメッセージであるのかを示しており、メッセージ種別フィールドはメッセージの内容を表す識別子を示している。また、文言フィールドはメッセージの内容を示している。
【０１１９】
文言フィールの各行において、大かっこで囲まれたキーワード（例えば、３行目の文言中に示されている“ＡＬＬ＿ＰＯＳＴＥＲ”）は、所定の情報に動的に置換される部分を表している。置換のルールは以下の通りである。すなわち、“ＬＡＳＴ＿ＰＯＳＴＥＲ”とは、実行状態管理テーブル３０のユーザリストに最後に格納されたユーザ識別子に対応するメンバを示している。また、“ＦＩＲＳＴ＿ＰＯＳＴＥＲ”は、ユーザリストに最初に格納されたメンバを示しており、“ＡＬＬ＿ＰＯＳＴＥＲＳ”は、ユーザリストに格納されている全てのメンバを示している。さらに、“ＡＬＬ＿ＰＯＳＴＥＲＳ−ＬＡＳＴ＿ＰＯＳＴＥＲ”は、ユーザリストに格納されているメンバのうち、最後に格納されたメンバを除く全員を示している。また、“Ｎｏｗ＿ＰＯＳＴＥＲ”は、ユーザリストに格納されていなく、かつ、動作指示検出部２１が今回の動作指示の指示者として特定したメンバである。
【０１２０】
なお、“ＣＭＤ＿ＮＡＭＥ”とは、実行状態管理テーブル３０に格納されている動作指示識別子に対応した動作指示の名称であり、コマンド名称テーブル３１が、動作指示識別子と動作指示の名称との組合せを格納している。また、“ＲＥＴＵＲＮ＿ＶＡＬ”は戻り値を指している。
【０１２１】
なお、図９に例示する文言テンプレートテーブル３４において、「ＣＭＸＸＸ」および「ＣＭＹＹＹ」という２つの動作指示識別子に対応する行が格納されている。この「ＣＭＸＸＸ」および「ＣＭＹＹＹ」は、任意の動作指示識別子を意味している。すなわち、報告メッセージ生成部２５は、「ＲＰ＿ＢＵＳＹ＿１」または「ＲＰ＿ＢＵＳＹ＿１」というレポート種別と組み合わせて、任意の動作指示識別子を受信すると、「ＲＰ＿ＢＵＳＹ＿１」または「ＲＰ＿ＢＵＳＹ＿１」に対応する文言を、選択する。
【０１２２】
また、上記のように、「ＲＰ＿ＢＵＳＹ＿１」および「ＲＰ＿ＢＵＳＹ＿１」という２つのレポート種別は、「“ＡＬＬ＿ＰＯＳＴＥＲ”に頼まれて今“ＣＭＤ＿ＮＡＭＥ”中だよ！もうちょっと待ってね」という文言が対応付けられた「ＲＰ＿ＢＵＳＹ」という１つのメッセージ種別に統一されてもよい。すなわち、指示者登録部２２は、実行状態管理テーブル３０にデータが格納されている場合には、動作指示検出部２１によって検出された動作指示と、実行状態管理テーブル３０に格納されている動作指示とが同じであるか否かに関わらず、該動作指示の動作指示識別子と、メッセージ種別「ＲＰ＿ＢＵＳＹ」とを、報告メッセージ生成部２５に送信するとしてもよい。
【０１２３】
ユーザ名称テーブル３５は、実行状態管理テーブル３０等のユーザリストにおけるユーザ識別子を、実際のメンバ名に変換するためのテーブルである。
【０１２４】
なお、上記に説明した記憶部１２に格納されている各テーブルのデータは、ユーザが変更することができる。
【０１２５】
例えば、文言テンプレートテーブル３４における各行の文言中の“ＡＬＬ＿ＰＯＳＴＥＲ”、“ＬＡＳＴ＿ＰＯＳＴＥＲ”、“Ｎｏｗ＿ＰＯＳＴＥＲ”などを適宜変更することによって、メッセージ中に宛て先として明示されるメンバを変更することができる。
【０１２６】
具体的には、図９の文言テンプレートテーブル３４では、動作の実行が失敗した場合（つまり、メッセージ種別が「ＰＲ＿ＦＡＩＬＥＤ＿」で始まる種別である場合）、“ＡＬＬ＿ＰＯＳＴＥＲ”をメッセージの宛て先としている。しかし、この“ＡＬＬ＿ＰＯＳＴＥＲ”を、“ＦＩＲＳＴ＿ＰＯＳＴＥＲ”（つまり、ユーザリストの最初に格納されているメンバ）に変更することで、動作の実行が失敗した場合のメッセージに宛て先として明示されるメンバを以下のように変更することができる。すなわち、動作の実行が失敗した場合のメッセージについて、明示される宛て先を、「該動作を指示する動作指示を含むメッセージを最初に家族伝言板に書き込んだメンバ」のみにすることができる。
【０１２７】
同様に、図９の文言テンプレートテーブル３４の「ＣＭＸＸＸ」という動作指示識別子に対応する文言における、“ＡＬＬ＿ＰＯＳＴＥＲ−ＬＡＳＴ＿ＰＯＳＴＥＲ”を、“ＦＩＲＳＴ＿ＰＯＳＴＥＲ”に変更することで、「実行中の動作を指示した動作指示を含むメッセージを最初に家族伝言板に書き込んだメンバ」から指示されて動作を実行中であることを伝えることができるようになる。
【０１２８】
〔エージェントサーバ１の処理の概要〕
次に、エージェントサーバ１の処理の概要について説明する。
【０１２９】
図３は、エージェントサーバ１の処理の流れを示すフローチャートである。
【０１３０】
まず、動作指示検出部２１は、メッセージ取得部２０が家族伝言板サーバ２から取得したメッセージから、動作指示を検出し、指示者を特定する（Ｓ００１）。
【０１３１】
次に、指示者登録部２２は、実行状態管理テーブル３０にデータが格納されていない否かを判定する。（Ｓ００２）。
【０１３２】
実行状態管理テーブル３０にデータが格納されていない場合（Ｓ００２でＹｅｓ）、指示者登録部２２は、実行状態管理テーブル３０に、動作指示検出部２１が検出した動作指示と、特定した指示者とを格納する（Ｓ００３）。実行状態管理テーブル３０にデータが格納されていない場合、指示者登録部２２はさらに、動作指示検出部２１が検出した動作指示を外部機器制御部２３に送信するとともに、該動作指示と該動作指示の指示者とメッセージ種別「ＲＰ＿ＳＴＡＲＴ」とを報告メッセージ生成部２５に送信する。
【０１３３】
外部機器制御部２３は、指示者登録部２２から動作指示を受信すると、該動作指示と、機器制御テーブル３２とから、対応する外部機器に、機器制御コードを送信する（Ｓ００４）。
【０１３４】
報告メッセージ生成部２５は、指示者登録部２２から、動作指示と該動作指示の指示者とメッセージ種別「ＲＰ＿ＳＴＡＲＴ」とを受信すると、文言テンプレートテーブル３４を参照して、動作指示を受け付けた旨のメッセージを生成する。なお、報告メッセージ生成部２５は、指示者登録部２２から受信した指示者を、つまり動作指示検出部２１が特定した指示者を、宛て先として明記して、動作指示を受け付けた旨の上記メッセージを生成する。そして、報告メッセージ生成部２５は、生成した報告メッセージを報告メッセージ表示部２６に送信する。報告メッセージ表示部２６は、報告メッセージ生成部２５が作成したメッセージを、家族伝言板サーバ２に送信する（Ｓ００５）。
【０１３５】
その後、動作結果取得部２４は、外部機器から、上記動作指示によって指示された動作の結果を取得すると（Ｓ００６でＹｅｓ）、該動作結果を報告メッセージ生成部２５に送信する。
【０１３６】
報告メッセージ生成部２５は、動作結果取得部２４から外部機器の動作結果を取得すると、１つの報告メッセージを作成するとともに、該報告メッセージで結果を報告する動作を指示した動作指示と組み合わされて上記記憶部に格納されている指示者のすべてを、該報告メッセージの宛て先に設定する。具体的には、実行状態管理テーブル３０のユーザリストに格納されている全てのメンバを宛て先として明示して、動作結果取得部２４から取得した動作結果についての１つの報告メッセージを生成する。報告メッセージ表示部２６は、報告メッセージ生成部２５が作成した上記報告メッセージを、家族伝言板サーバ２に送信する（Ｓ００７）。
【０１３７】
動作結果取得部２４は、外部機器から動作の結果を取得するとさらに、該動作を指示した動作指示を格納している実行状態管理テーブル３０のデータを削除する（Ｓ００８）。なお、前述のように、報告メッセージ生成部２５は、実行状態管理テーブル３０を参照して報告メッセージ中に宛て先として明示するメンバを取得する。従って、動作結果取得部２４による実行状態管理テーブル３０のデータ削除は、報告メッセージ生成部２５による上記報告メッセージの生成後に実行される。
【０１３８】
動作結果取得部２４が外部機器から動作結果を取得しない間（Ｓ００６でＮｏ）、動作結果取得部２４は、外部機器からの動作結果の送信を待っている。
【０１３９】
実行状態管理テーブル３０に既にデータが格納されている場合（Ｓ００２でＮｏ）、指示者登録部２２は、実行状態管理テーブル３０に格納されている動作指示と、動作指示検出部２１が検出した動作指示とが同じであるかを判定する（Ｓ００９）。
【０１４０】
実行状態管理テーブル３０に格納されている動作指示と、動作指示検出部２１が検出した動作指示とが同じである場合（Ｓ００９でＹｅｓ）、指示者登録部２２は、実行状態管理テーブル３０に既に格納されている動作指示に組み合わされる指示者に、動作指示検出部２１が特定した指示者を追加する。つまり、実行状態管理テーブル３０のユーザリストに、動作指示検出部２１が特定した指示者を追加する（Ｓ０１０）。従って、実行状態管理テーブル３０において、動作指示検出部２１が今回特定した指示者はユーザリストの最後に格納される。また、指示者登録部２２は、報告メッセージ生成部２５に、動作指示検出部２１が検出した動作指示と該動作指示の指示者とメッセージ種別「ＲＰ＿ＢＵＳＹ＿１」とを送信する。
【０１４１】
報告メッセージ生成部２５は、指示者登録部２２から動作指示と該動作指示の指示者とメッセージ種別「ＲＰ＿ＢＵＳＹ＿１」とを受信し、実行状態管理テーブル３０と文言テンプレートテーブル３４とを参照して、以下のメッセージを生成する。すなわち、動作指示検出部２１が特定した指示者を宛て先として明記して、「実行状態管理テーブル３０に格納されている動作指示を、該動作指示に組み合わされて格納されている指示者のうち、最後に格納された指示者（つまり動作指示検出部２１が今回特定した指示者）を除く全員から指示されて、実行中である」旨のメッセージを生成する。そして、報告メッセージ生成部２５は、生成した上記メッセージを報告メッセージ表示部２６に送信する。報告メッセージ表示部２６は、報告メッセージ生成部２５が作成したメッセージを、家族伝言板サーバ２に送信する（Ｓ０１１）。
【０１４２】
実行状態管理テーブル３０に格納されている動作指示と、動作指示検出部２１が検出した動作指示とが異なる場合（Ｓ００９でＮｏ）、指示者登録部２２は、報告メッセージ生成部２５に、動作指示検出部２１が検出した動作指示と該動作指示の指示者とメッセージ種別「ＲＰ＿ＢＵＳＹ＿２」とを送信する。報告メッセージ生成部２５は、指示者登録部２２から上記動作指示と上記指示者とメッセージ種別「ＲＰ＿ＢＵＳＹ＿２」とを受信し、文言テンプレートテーブル３４を参照して、以下のメッセージを生成する。すなわち、「実行状態管理テーブル３０に格納されている動作指示を、該動作指示に組み合わされて格納されている指示者から指示され、実行中である」旨のメッセージを、動作指示検出部２１が特定した指示者を宛て先として明記して、生成する。報告メッセージ表示部２６は、報告メッセージ生成部２５が作成したメッセージを、家族伝言板サーバ２に送信する（Ｓ０１２）。
【０１４３】
〔発言フローについて〕
次に、家族伝言板における、図４に示すエージェントサーバ１とお母さん（家族のメンバ）１人とのメッセージのやり取りを用いて、エージェントサーバ１の処理の流れについて、具体的に説明する。
【０１４４】
図４は、家族伝言板における、エージェントサーバ１とお母さん（家族のメンバ）１人とのメッセージのやり取りを時系列で示す図である。なお、図４に示すメッセージのやり取りにおいて、お母さんが、携帯端末４を用いて、家族伝言板に「写真撮ってね」というメッセージを書き込む前に、エージェントサーバ１が外部機器に実行させている動作はないものとする。つまり、お母さんが上記メッセージを書き込んだ時点で、実行状態管理テーブル３０にはデータが格納されていないものとする。
【０１４５】
図４に示すように、１４時０５分にお母さんが「写真撮ってね」というメッセージを家族伝言板に書き込むと、メッセージ取得部２０は、家族伝言板サーバ２から、お母さんの該メッセージを取得する。具体的には、例えば｛“ｐｏｓｔｅｒ”：”Ｕ００２”,”ｔｅｘｔ”：”写真撮ってね”,”ｉｍａｇｅ＿ＩＤ”：””｝といったＪＳＯＮ形式で、メッセージ取得部２０は、家族伝言板サーバ２からメッセージを取得する。なお、「Ｕ００２」は、図１０のユーザ名称テーブル３５に示すように、「お母さん」を表すユーザ識別子である。そして、メッセージ取得部２０は、上記メッセージを動作指示検出部２１に送信する。
【０１４６】
動作指示検出部２１は、メッセージ取得部２０から上記メッセージを受信すると、上記メッセージから動作指示を検出するとともに、該動作指示の指示者を特定する。すなわち、上記メッセージから、掃除ロボット５に「写真撮影」を実行させるという動作指示を検出し、「お母さん」（ユーザ識別子「Ｕ００２」）という指示者を特定する。そして、動作指示検出部２１は、検出した動作指示の動作指示識別子と、特定した指示者のユーザ識別子とを、指示者登録部２２に送信する。図６に例示するコマンド名称テーブル３１に示すように、「写真撮影」という動作指示に対応する動作指示識別子は「ＣＭ００１」である。また、「お母さん」のユーザ識別子は「Ｕ００２」である。従って、動作指示検出部２１は、「ＣＭ００１」という動作指示識別子と、「Ｕ００２」というユーザ識別子とを、指示者登録部２２に送信する。
【０１４７】
指示者登録部２２は、先ず、実行状態管理テーブル３０に既に格納されているデータがあるか否かを確認する。なお、上記のように、お母さんが上記メッセージを書き込んだ時点で、エージェントサーバ１が外部機器に実行させている動作はなく、つまり、実行状態管理テーブル３０に格納されているデータはない。
【０１４８】
データが格納されていないのを確認すると、指示者登録部２２は、実行状態管理テーブル３０に、動作指示検出部２１から受信した動作指示と指示者とを格納する。具体的には、実行状態管理テーブル３０の動作指示識別子フィールドに「ＣＭ００１」を、ユーザリストに「Ｕ００２」を格納する。
【０１４９】
指示者登録部２２は、実行状態管理テーブル３０にデータが格納されていないのを確認するとさらに、動作指示検出部２１が検出した動作指示を外部機器制御部２３に送信するとともに、該動作指示と該動作指示の指示者とを報告メッセージ生成部２５に送信する。具体的には、指示者登録部２２は、報告メッセージ生成部２５に、以下の情報を送信する。すなわち、動作指示検出部２１が検出した動作指示の動作指示識別子である「ＣＭ００１」と、動作指示検出部２１が特定したメンバのユーザ識別子とである「Ｕ００２」と、「ＲＰ＿ＳＴＡＲＴ」というメッセージ種別とを送信する。
【０１５０】
報告メッセージ生成部２５は、指示者登録部２２から取得した動作指示識別子「ＣＭ００１」とメッセージ種別「ＲＰ＿ＳＴＡＲＴ」との組合せに対応付けられている文言を、図９の文言テンプレートテーブル３４から読み出す。その結果、報告メッセージ生成部２５は、生成するメッセージの文言として、「“ＦＩＲＳＴ＿ＰＯＳＴＥＲ”、わかった！」を選択する。
【０１５１】
報告メッセージ生成部２５は、“ＦＩＲＳＴ＿ＰＯＳＴＥＲ”に該当するユーザ識別子を、実行状態管理テーブル３０を参照して取得する。すなわち、実行状態管理テーブル３０のユーザリストに最初に格納されているユーザ識別子「Ｕ００２」を、“ＦＩＲＳＴ＿ＰＯＳＴＥＲ”として取得する。そして、図１０のユーザ名称テーブル３５を参照して、ユーザ識別子「Ｕ００２」に対応するユーザの名前として「お母さん」を取得し、「お母さん、わかった！」というメッセージを生成する。
【０１５２】
報告メッセージ表示部２６は、報告メッセージ生成部２５が生成した上記メッセージを家族伝言板サーバ２に送信し、家族伝言板には、１４時０５分にロボ（掃除ロボット５）が書き込んだメッセージとして、「お母さん、わかった！」が表示される。
【０１５３】
指示者登録部２２が、動作指示検出部２１が検出した動作指示を、つまり、「ＣＭ００１」という動作指示識別子を、外部機器制御部２３に送信すると、外部機器制御部２３は以下の処理を行う。すなわち、外部機器制御部２３は、図７に例示する機器制御テーブル３２を参照して、「ＣＭ００１」という動作指示識別子に対応する機器制御コード「ＧＥＴ＿ＰＩＣＴＵＲＥ」を読み出す。また、外部機器制御部２３は、機器制御コード「ＧＥＴ＿ＰＩＣＴＵＲＥ」に対応する外部機器として、掃除ロボット５を選択する。そして、外部機器制御部２３は、機器制御コード「ＧＥＴ＿ＰＩＣＴＵＲＥ」を、掃除ロボット５（実際にはホームサーバ３）に送信する。
【０１５４】
掃除ロボット５は、機器制御コード「ＧＥＴ＿ＰＩＣＴＵＲＥ」を受信すると、「写真撮影」を実行し、「写真撮影」という動作の結果を、ホームサーバ３を介して、エージェントサーバ１に送信する。
【０１５５】
動作結果取得部２４は、掃除ロボット５からの「写真撮影」が成功したという動作の結果を受信する。その際、掃除ロボット５が「写真撮影」した写真画像データを送信した場合には、これも受信する。
【０１５６】
そして、動作結果取得部２４は、「ＲＰ＿ＳＵＣＣＥＥＤＥＤ」というメッセージ種別と、戻り値として上記写真画像データと、「写真撮影」という動作指示の動作指示識別子報告である「ＣＭ００１」とを、報告メッセージ生成部２５に送信する。
【０１５７】
報告メッセージ生成部２５は、「ＣＭ００１」という動作指示識別子と、「ＲＰ＿ＳＵＣＣＥＥＤＥＤ」というメッセージ種別を基に、図９に例示する文言テンプレートテーブル３４を参照して、作成すべき文言を選択する。具体的には、「“ＡＬＬ＿ＰＯＳＴＥＲ”、写真撮ったよ！」という文言を選択する。また、“ＡＬＬ＿ＰＯＳＴＥＲ”を実際のメンバ名に置換するため、まずは、実行状態管理テーブル３０のユーザリストに格納されている全てのメンバのユーザ識別子を取得する。実行状態管理テーブル３０のユーザリストには「Ｕ００２」というユーザ識別子が格納されているので、報告メッセージ生成部２５はこれを取得し、図１０に例示するユーザ名称テーブル３５を参照して、下記のメッセージを生成する。すなわち、「お母さん、写真撮ったよ！」というメッセージを生成する。
【０１５８】
また、動作結果取得部２４から掃除ロボット５の「写真撮影」した写真画像データを受信していた場合、報告メッセージ生成部２５は、上記「お母さん、写真撮ったよ！」という報告メッセージに、該写真画像データを添付してもよい。
【０１５９】
報告メッセージ表示部２６は、報告メッセージ生成部２５が生成した「お母さん、写真撮ったよ！」という上記報告メッセージを、家族伝言板サーバ２に出力して、該メッセージを家族伝言板に表示させる。
【０１６０】
その結果、家族伝言板には、図４に示すように、１４時０９分にロボ（掃除ロボット５）が書き込んだメッセージとして、「お母さん、写真撮ったよ！」という報告メッセージが表示される。すなわち、「写真撮影」という動作指示を含むメッセージ（「写真撮ってね」）を書き込んだメンバ（お母さん）が宛て先に明示された状態で、該動作の結果を報告する報告メッセージが、家族伝言板に書き込まれる。なお、図面を簡略化するため、掃除ロボット５の「写真撮影」した写真画像データについては、図４には示していない。
【０１６１】
その後、動作結果取得部２４は、実行状態管理テーブル３０に格納されている、「写真撮影」という動作指示の動作指示識別子「ＣＭ００１」と、該動作指示と組み合わされて格納されている指示者のユーザ識別子「Ｕ００２」とを、削除する。
【０１６２】
以上のようにして、掃除ロボット５の代理としてエージェントサーバ１が家族伝言板に書き込むメッセージは、メッセージの宛て先がメッセージ中に明示されている。そのため、家族の各メンバは、ロボ（掃除ロボット５）が書き込んだメッセージが、どのメンバに宛てたメッセージであるのかを、容易に確認することができる。
【０１６３】
なお、エージェントサーバ１が家族伝言板に書き込むメッセージ中に明記されるメッセージの宛て先は、図４に示すように、メッセージの文頭に置かれることが望ましい。つまり、エージェントサーバ１は、「写真撮ったよ、お母さん！」ではなく、「お母さん、写真撮ったよ！」と、家族伝言板に書き込む方が望ましい。メッセージの宛て先を、メッセージの文頭に明示することにより、メンバは、該メッセージの内容を読むことなく、誰宛てのメッセージであるのかを容易に知ることができる。
【０１６４】
なお、上記までの説明では、エージェントサーバ１は、記憶部１２と、指示者登録部２２と、を備えるものとした。しかし、１人の指示者を宛て先として明示して、該指示者が指示した外部機器の動作の結果を報告する１つの報告メッセージを、家族伝言板に表示させるのであれば、記憶部１２と、指示者登録部２２とは必須ではない。すなわち、動作指示検出部２１は、外部機器を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定し、該指示者を報告メッセージ生成部２５に通知する。報告メッセージ生成部２５は、動作指示検出部２１が特定した指示者を宛て先として明示して、動作結果取得部２４が取得する動作結果を報告する報告メッセージを生成すればよい。こうすることで、エージェントサーバ１は、動作指示検出部２１が特定した指示者を宛て先として明示して、動作指示検出部２１が検出した動作指示の結果を報告する報告メッセージを、家族伝言板に表示することができる。
【０１６５】
以上に説明したように、エージェントサーバ１は、動作指示の動作結果を伝えるべきメンバを、動的に変更することができる。すなわち、複数のメンバが参加可能な掲示板へ書き込む報告メッセージの宛て先を、状況に応じて決定することができる。より具体的には、外部機器の動作の結果を報告する報告メッセージを、該動作を指示する動作指示を含むメッセージを家族書き込んだメンバを宛て先として明示して、家族伝言板に表示させることができる。外部機器の動作の結果を報告する報告メッセージの宛て先を、固定的にではなく、状況に応じて決定することができ、特に、該動作を指示する動作指示を含むメッセージを家族書き込んだメンバを宛て先として明示することができる。従って、メンバが書き込んだメッセージを時系列に沿って表示し、複数のメンバが該メッセージを閲覧するコミュニケーションサービスにおいて、各メンバは、メッセージの宛て先を容易に確認することができる。
【０１６６】
〔実施形態２〕
上記までに、家族伝言板において、お母さんとエージェントサーバ１との間で、動作指示を含むメッセージと、該動作指示によって指示された動作の結果についてのメッセージとがやり取りされる例を説明した。
【０１６７】
以下では、複数のメンバから、動作指示を含むメッセージが家族伝言板に書き込まれる場合の、エージェントサーバ１の処理について説明する。
【０１６８】
前述の通り、エージェントサーバ１は、動作指示検出部２１によって上記動作指示が検出されてから、該動作指示によって指示された動作を掃除ロボット５（外部機器）が終了するまでの間、動作指示検出部２１（動作指示検出手段）が検出した上記動作指示と該動作指示の指示者との組合せを格納している実行状態管理テーブル３０を格納している記憶部１２と、動作指示検出部２１が動作指示を検出したとき、該動作指示が実行状態管理テーブル３０に既に格納されている動作指示と同じであるか否かを判定し、同じである場合には、実行状態管理テーブル３０に既に格納されている動作指示に組み合わされる指示者に、動作指示検出部２１が特定した指示者を追加する指示者登録部２２（指示者登録手段）と、を備え、報告メッセージ生成部２５は、動作結果取得部２４が上記外部機器の動作した結果を取得したとき、１つの報告メッセージを作成するとともに、該報告メッセージで結果を報告する動作を指示した動作指示と組み合わされて実行状態管理テーブル３０に格納されている指示者のすべてを、該報告メッセージの宛て先に設定する。
【０１６９】
エージェントサーバ１は、実行状態管理テーブル３０と、指示者登録部２２とを備えることによって、同じ動作指示を含む異なるメッセージを複数のメンバが家族伝言板に書き込んだ場合に、該複数のメンバを宛て先に明示して、該動作指示の結果を報告する１つの報告メッセージを家族伝言板に表示させることができる。より正確には、或るメンバが家族伝言板に書き込んだメッセージから動作指示検出部２１が最初に動作指示を検出してから、動作結果取得部２４が該動作指示によって指示された動作の結果を取得するまでの間、該動作指示と同じ動作指示を含むメッセージを、他のメンバが家族伝言板に書き込むと、エージェントサーバ１は、該或るメンバと、該他のメンバとを宛て先に明示して、該動作指示の結果を報告する報告メッセージを家族伝言板に表示させることができる。
【０１７０】
以下に、複数のメンバから、同一の動作指示を含むメッセージが、該動作指示の動作結果取得前に、家族伝言板に書き込まれた場合、該動作指示の結果についてのメッセージを、該複数のメンバを宛て先として明示した１つのメッセージを、家族伝言板に書き込むエージェントサーバ１の処理の内容について説明する。
【０１７１】
図１１は、家族伝言板における、エージェントサーバ１と家族の複数のメンバとのメッセージのやり取りを時系列で示す図である。
【０１７２】
図１２は、エージェントサーバ１が、図１１に示すメッセージのやり取りをどのように実行しているかを時系列で示す図である。
【０１７３】
なお、図１１、１２に示すメッセージのやり取りにおいて、お母さんが、携帯端末４を用いて、家族伝言板に「写真撮ってね」というメッセージを書き込む前に、エージェントサーバ１が外部機器に実行させている動作はないものとする。つまり、お母さんが上記メッセージを書き込んだ時点で、実行状態管理テーブル３０にはデータが格納されていないものとする。
【０１７４】
図１１において、１４時０５分にお母さんが「写真撮ってね」というメッセージを書き込んでから、１４時０５分に「お母さん、わかった！」というロボからのメッセージが家族伝言板に表示されるまでの処理は、実施形態１と同じなので省略する。
【０１７５】
太郎が「写真撮ってね」というメッセージを１４時０６分に書き込む時点で、エージェントサーバ１がお母さんからの上記メッセージを処理することによって、実施形態１において説明したように、実行状態管理テーブル３０には下記の情報が格納されている。すなわち、実行状態管理テーブル３０には、「写真撮影」という動作指示と、該動作指示と組み合わされる指示者として「お母さん」とが格納されている。具体的には、実行状態管理テーブル３０の動作指示識別子フィールドには「ＣＭ００１」が、ユーザリストには「Ｕ００２」が格納されている。
【０１７６】
また、太郎による上記書込みの時点で、外部機器制御部２３は掃除ロボット５（実際にはホームサーバ３）への機器制御コード「ＧＥＴ＿ＰＩＣＴＵＲＥ」の送信を終えているが、動作結果取得部２４は、「写真撮影」という動作指示によって指示された動作の結果を掃除ロボット５から未だ受信していないものとする。
【０１７７】
動作結果取得部２４が「写真撮影」という動作指示によって指示された動作の結果を取得していない時点で、太郎が「写真撮ってね」というメッセージを１４時０６分に家族伝言板に書き込むと、エージェントサーバ１は下記の処理を実行する。
【０１７８】
すなわち、先ずメッセージ取得部２０が、家族伝言板サーバ２から、例えば｛“ｐｏｓｔｅｒ”：”Ｕ００３”,”ｔｅｘｔ”：”写真撮ってね”,”ｉｍａｇｅ＿ＩＤ”：””｝といったＪＳＯＮ形式で、太郎の上記メッセージを取得する。なお、「Ｕ００３」は「太郎」を表すユーザ識別子である。そして、メッセージ取得部２０は、上記メッセージを動作指示検出部２１に送信する。
【０１７９】
動作指示検出部２１は、メッセージ取得部２０から上記メッセージを受信すると、「写真撮影」という動作指示（動作指示識別子「ＣＭ００１」）を検出し、また、該動作指示の指示者として「太郎」（ユーザ識別子「Ｕ００３」）を特定する。そして、動作指示検出部２１は、「ＣＭ００１」という動作指示識別子と、「Ｕ００３」というユーザ識別子とを、指示者登録部２２に送信する。
【０１８０】
指示者登録部２２は、先ず、実行状態管理テーブル３０に既に格納されているデータがあるか否かを確認する。上記のように、太郎が上記メッセージを書き込んだ時点で、実行状態管理テーブル３０には、「写真撮影」という動作指示（動作指示識別子「ＣＭ００１」）と、該動作指示に組み合わされる指示者として「お母さん」（ユーザ識別子「Ｕ００２」）と、が格納されている。より具体的には、実行状態管理テーブル３０の動作指示識別子フィールドには「ＣＭ００１」が、ユーザリストには「Ｕ００２」が格納されている。
【０１８１】
実行状態管理テーブル３０に既にデータが格納されているのを確認すると、指示者登録部２２は、動作指示検出部２１が今回検出した動作指示と、実行状態管理テーブル３０に既に格納されている動作指示とが同じであるか否かを判定する。
【０１８２】
動作指示検出部２１が今回検出した動作指示の動作指示識別子は「ＣＭ００１」であり、実行状態管理テーブル３０の動作指示識別子フィールドに格納されている動作指示識別子「ＣＭ００１」である。従って、指示者登録部２２は、動作指示検出部２１が今回検出した動作指示と、実行状態管理テーブル３０に既に格納されている動作指示とが同じであると判定する。
【０１８３】
指示者登録部２２は、同じであると判定すると、動作指示検出部２１が今回特定した指示者を、実行状態管理テーブル３０に既に格納されている動作指示に組み合わされる指示者に追加する。具体的には、実行状態管理テーブル３０のユーザリストの最後に「Ｕ００３」を追加する。従って、実行状態管理テーブル３０のユーザリストには、図５に例示するように、「Ｕ００２」の次に、「Ｕ００３」が格納される。つまり、実行状態管理テーブル３０のユーザリストに格納されているユーザ識別子の順序は、動作指示識別子フィールドに格納されている動作指示識別子に該当する動作指示を含むメッセージを、家族伝言板に書き込んだメンバの順序である。
【０１８４】
指示者登録部２２はさらに、動作指示検出部２１が今回検出した動作指示および今回特定した指示者と、「ＲＰ＿ＢＵＳＹ＿１」というメッセージ種別とを報告メッセージ生成部２５に送信する。具体的には、指示者登録部２２は、動作指示識別子「ＣＭ００１」と、ユーザ識別子「Ｕ００３」と、メッセージ種別「ＲＰ＿ＢＵＳＹ＿１」とを報告メッセージ生成部２５に送信する。
【０１８５】
報告メッセージ生成部２５は、指示者登録部２２から取得した動作指示識別子「ＣＭ００１」とメッセージ種別「ＲＰ＿ＢＵＳＹ＿１」との組合せに対応付けられている文言を、図９の文言テンプレートテーブル３４から読み出す。その結果、報告メッセージ生成部２５は、生成するメッセージの文言として、「“ＬＡＳＴ＿ＰＯＳＴＥＲ”、“ＡＬＬ＿ＰＯＳＴＥＲ−ＬＡＳＴ＿ＰＯＳＴＥＲ”に頼まれて今“ＣＭＤ＿ＮＡＭＥ”中だよ！もうちょっと待ってね。」を選択する。
【０１８６】
報告メッセージ生成部２５は、“ＬＡＳＴ＿ＰＯＳＴＥＲ”および“ＡＬＬ＿ＰＯＳＴＥＲ−ＬＡＳＴ＿ＰＯＳＴＥＲ”に該当するユーザ識別子を、実行状態管理テーブル３０を参照して取得する。すなわち、実行状態管理テーブル３０のユーザリストに最後に格納されているユーザ識別子「Ｕ００３」を、“ＬＡＳＴ＿ＰＯＳＴＥＲ”のユーザ識別子として取得する。また、実行状態管理テーブル３０のユーザリストに格納されている全てのユーザ識別子「Ｕ００２」および「Ｕ００３」を“ＡＬＬ＿ＰＯＳＴＥＲ”のユーザ識別子として取得する。従って、“ＡＬＬ＿ＰＯＳＴＥＲ−ＬＡＳＴ＿ＰＯＳＴＥＲ”に該当するユーザ識別子として、「Ｕ００２」を取得する。
【０１８７】
また報告メッセージ生成部２５は、“ＣＭＤ＿ＮＡＭＥ”に該当する動作指示識別子を、実行状態管理テーブル３０を参照して取得する。すなわち、実行状態管理テーブル３０の動作指示識別子フィールドに格納されている動作指示識別子「ＣＭ００１」を、“ＣＭＤ＿ＮＡＭＥ”の動作指示識別子として取得する。そして、図６に例示するコマンド名称テーブル３１を参照して、動作指示識別子「ＣＭ００１」に該当する動作の名前として「写真撮影」を取得する。
【０１８８】
さらに、報告メッセージ生成部２５は、図１０のユーザ名称テーブル３５を参照して、ユーザ識別子「Ｕ００２」、「Ｕ００３」に対応するユーザの名前として「お母さん」、「太郎」を取得する。また、“ＣＭＤ＿ＮＡＭＥ”として「写真撮影」を取得する。
【０１８９】
従って、報告メッセージ生成部２５は、「太郎、お母さんに頼まれて今写真撮影中だよ！もうちょっと待ってね。」というメッセージを生成する。
【０１９０】
報告メッセージ表示部２６は、報告メッセージ生成部２５が生成した上記メッセージを家族伝言板サーバ２に送信する。その結果、家族伝言板には、１４時０８分にロボ（掃除ロボット５）が書き込んだメッセージとして、「太郎、お母さんに頼まれて今写真撮影中だよ！もうちょっと待ってね。」が表示される。
【０１９１】
実施形態１で説明したように、掃除ロボット５は、外部機器制御部２３から機器制御コード「ＧＥＴ＿ＰＩＣＴＵＲＥ」を受信すると、「写真撮影」を実行し、「写真撮影」という動作の結果を、ホームサーバ３を介して、エージェントサーバ１に送信する。
【０１９２】
掃除ロボット５は、「写真撮影」しようとして「撮影失敗」した場合、掃除ロボット５は、「１」というエラーコードを、「写真撮影」という動作指示の動作指示識別子（ＣＭ００１）と共に、エージェントサーバ１に送信する。
【０１９３】
掃除ロボット５から上記の情報を受信すると、動作結果取得部２４は、「ＲＰ＿ＦＡＩＬＥＤ＿エラーコード」というメッセージ種別と、つまり「ＲＰ＿ＦＡＩＬＥＤ＿１」というメッセージ種別と、動作指示識別子「ＣＭ００１」とを、報告メッセージ生成部２５に送信する。
【０１９４】
報告メッセージ生成部２５は、「ＣＭ００１」という動作指示識別子と、「ＲＰ＿ＦＡＩＬＥＤ＿１」というメッセージ種別を基に、図９に例示する文言テンプレートテーブル３４を参照して、作成すべき文言を選択する。具体的には、「“ＡＬＬ＿ＰＯＳＴＥＲ”、写真撮れなかったよ！」という文言を選択する。また、“ＡＬＬ＿ＰＯＳＴＥＲ”を実際のメンバ名に置換するため、実行状態管理テーブル３０のユーザリストに格納されている全てのメンバのユーザ識別子を取得する。実行状態管理テーブル３０のユーザリストには「Ｕ００２」および「Ｕ００３」というユーザ識別子が格納されているので、報告メッセージ生成部２５はこれを取得し、図１０に例示するユーザ名称テーブル３５を参照して、下記のメッセージを生成する。すなわち、「お母さん、太郎、写真撮れなかったよ！」というメッセージを生成する。
【０１９５】
報告メッセージ表示部２６は、報告メッセージ生成部２５が生成した上記報告メッセージを、家族伝言板サーバ２に出力する。その結果、図１１に示すように、家族伝言板には、１４時１６分にロボ（掃除ロボット５）が書き込んだメッセージとして、「お母さん、太郎、写真撮れなかったよ！」が家族伝言板に表示される。すなわち、「写真撮影」という動作指示を含むメッセージ（「写真撮ってね」）を書き込んだメンバ（お母さん、太郎）が宛て先に明示された状態で、該動作の結果を報告する報告メッセージが、家族伝言板に書き込まれる。
【０１９６】
その後、動作結果取得部２４は、実行状態管理テーブル３０に格納されている、「写真撮影」という動作指示の動作指示識別子「ＣＭ００１」と、該動作指示と組み合わされて格納されている指示者のユーザ識別子「Ｕ００２」および「Ｕ００３」とを、削除する。
【０１９７】
なお、上記の例では、お母さんと太郎とは共に「写真撮ってね」というメッセージを家族伝言板に書き込む例を説明した。しかし、同じ「写真撮影」という動作指示を含むメッセージであれば、お母さんと太郎とが家族伝言板に書き込むメッセージは表現が異なっていても、エージェントサーバ１は上記に説明した動作を実行することができる。すなわち、お母さんは「写真撮ってね」というメッセージを、太郎は「部屋の中をカメラで写しておいて」というメッセージを、書き込んだ場合であってもよい。動作指示検出部２１がこれら２つのメッセージから、「写真撮影」という同じ動作指示を検出した場合には、エージェントサーバ１は、「写真撮影」という動作指示の結果を報告する１つの報告メッセージであって、お母さんと太郎とが宛て先として明示されたメッセージを、家族伝言板に表示させることができる。
【０１９８】
以上のようにして、掃除ロボット５の代理としてエージェントサーバ１が家族伝言板に書き込むメッセージは、メッセージの宛て先がメッセージ中に明示されている。エージェントサーバ１は、同じ動作指示を含む異なるメッセージを複数のメンバが家族伝言板に書き込んだ場合に、該複数のメンバを宛て先に明示して、該動作指示の結果を報告する１つの報告メッセージを家族伝言板に表示させることができる。従って、エージェントサーバ１は、宛て先を明示した効率的な報告メッセージを生成することができる。
【０１９９】
〔実施形態３〕
エージェントサーバ１は、動作指示検出部２１（動作指示検出手段）が、家族伝言板（コミュニケーションサービス）に上記メンバが書き込んだメッセージに含まれる画像から、上記動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定してもよい。
【０２００】
図１３は、家族伝言板に、メンバが書き込んだメッセージに画像が含まれる場合の、エージェントサーバ１とメンバとのメッセージのやり取りを時系列で示す図である。
【０２０１】
図１３に示すように、お母さんが「写真撮ってね」というメッセージとともに、「写真撮影」という動作指示を含意する画像を家族伝言板に書き込むと、メッセージ取得部２０は、家族伝言板サーバ２から、お母さんの該メッセージを取得する。具体的には、例えば｛“ｐｏｓｔｅｒ”：“Ｕ００１”, “ｔｅｘｔ”：“写真撮ってね”, “ｉｍａｇｅ＿ＩＤ”：“ＳＥＡＬ＿１０１”｝といったＪＳＯＮ形式で、メッセージ取得部２０は、家族伝言板サーバ２からメッセージを取得する。
【０２０２】
ここで、“ｉｍａｇｅ＿ＩＤ”はメッセージに添付された画像ＩＤを表す。画像ＩＤとは、携帯端末４のアプリケーションに組み込まれた画像を一意に特定するためのＩＤであって、家族伝言板サーバ２に出力するメッセージに付加することによって、画像つきのメッセージを家族伝言板サーバ２に出力することができるものである。
【０２０３】
動作指示検出部２１は、メンバからのメッセージが、図８に例示するコマンド画像テーブル３３に格納されている画像ＩＤを含んでいないかを確認する。メッセージにコマンド画像テーブル３３に格納されている画像ＩＤが含まれている場合、動作指示検出部２１は、指示者登録部２２に、該メッセージを書き込んだメンバのユーザ識別子と、該画像ＩＤに該当する動作指示識別子とを送信する。具体的には、図８のコマンド画像テーブル３３には、「ＳＥＡＬ＿１０１」には「ＣＭ００１」という動作指示識別子が対応付けられている。従って、動作指示検出部２１は、ユーザ識別子「Ｕ００２」と、動作指示識別子「ＣＭ００１」とを、指示者登録部２２に送信する。
【０２０４】
また、メンバからのメッセージにコマンド画像テーブル３３に格納されている画像ＩＤが含まれている場合、動作指示検出部２１は、該画像ＩＤに該当する動作指示識別子を、つまり動作指示識別子「ＣＭ００１」を、外部機器制御部２３に送信する。
【０２０５】
動作指示検出部２１（動作指示検出手段）は、家族伝言板にメンバが書き込んだメッセージに含まれる画像から、動作指示を検出することができるため、メンバは家族伝言板に「動作指示」を含むメッセージをテキスト形式で書き込む必要がない。すなわち、メンバは、テキスト形式で「動作指示」を含むメッセージを書き込む必要がない。或る動作指示を含意することが予めエージェントサーバ１との間で決められている画像を家族伝言板に書き込むことで、メンバは、エージェントサーバ１に該動作指示を実行させ、該動作指示の結果についての報告メッセージを、家族伝言板に表示させることができる。
【０２０６】
また、エージェントサーバ１は、図１３に示すように、報告メッセージの宛て先を、メンバを識別可能な画像によって表示してもよい。すなわち、報告メッセージ表示部２６が、上記メッセージの上記宛て先を、上記メンバを識別可能な画像によって、家族伝言板（コミュニケーションサービス）に表示させてもよい。エージェントサーバ１は、文字よりもより容易に各メンバに各メンバを直感的に識別させることのできる画像を、報告メッセージの宛て先として明示することができる。メンバは、メッセージに表示されている画像を見ることによって、文字で書かれたメッセージを読むよりもより容易に、誰宛てのメッセージであるのかを認識することができる。
【０２０７】
さらに、エージェントサーバ１は、図１３に示すように、報告メッセージにおいて示そうとする、指示動作によって指示された動作の結果を、該動作の結果を示す画像によって表示してもよい。すなわち、報告メッセージ表示部２６が、上記動作の結果を、上記動作の結果を示す画像によって、家族伝言板（コミュニケーションサービス）に表示させてもよい。エージェントサーバ１は、文字よりもより容易に各メンバに動作の結果を直感的に知らせることのできる画像を用いて、指示された動作の結果を報告することができる。メンバは、メッセージに表示されている画像を見ることによって、文字で書かれたメッセージを読むよりもより容易に、指示した動作の結果を認識することができる。
【０２０８】
〔実施形態４〕
エージェントサーバ１において、掃除ロボット５（外部機器）は、さらに別の装置、例えば空調装置６の動作を制御し、動作指示検出部２１は、掃除ロボット５を操作して、掃除ロボット５に、上記別の装置の動作を制御させるための動作指示を検出する。
【０２０９】
図１４は、エージェントサーバ１が、外部機器によって制御される被制御機器の動作結果を、家族伝言板に書き込む場合の、エージェントサーバとメンバとのメッセージのやり取りを時系列で示す図である。
【０２１０】
動作指示検出部２１は、お母さんが家族伝言板に書き込んだメッセージである「いま、何度かしら？」から、「空調装置６に、室内の温度を検知させる」という掃除ロボット５への動作指示を検出する。具体的には、「温度取得」（動作指示識別子「ＣＭ００３」）という動作指示を検出し、該動作指示（動作指示識別子「ＣＭ００３」）を外部機器制御部２３へ送信する。動作指示検出部２１は、また、指示者のユーザ識別子「Ｕ００２」を特定する。
【０２１１】
外部機器制御部２３は、図６に例示する機器制御テーブル３２を参照して、動作指示識別子「ＣＭ００３」に該当する動作指示として、つまり、掃除ロボット５に対する「空調装置６に、室内の温度を検知させる」という動作指示として、機器制御コード「ＧＥＴ＿ＴＥＭＰＥＲＡＴＵＲＥ」を、掃除ロボット５に送信する。
【０２１２】
機器制御コード「ＧＥＴ＿ＴＥＭＰＥＲＡＴＵＲＥ」を受信した掃除ロボット５は、空調装置６が室内の温度を検知するよう、空調装置６を制御する。空調装置６は、温度センサを備えており、掃除ロボット５から上記制御に基づいて、温度センサによって検出した室温を、ホームサーバ３を介して、エージェントサーバ１に送信する。
【０２１３】
動作結果取得部２４は、「温度取得」が成功したという動作の結果と、「温度取得」の結果得た「２４℃」という室内温度とを受信する。
【０２１４】
そして、動作結果取得部２４は、「ＲＰ＿ＳＵＣＣＥＥＤＥＤ」というメッセージ種別と、戻り値として「２４℃」という室内温度と、「温度取得」という動作指示の動作指示識別子報告である「ＣＭ００３」とを、報告メッセージ生成部２５に送信する。
【０２１５】
報告メッセージ生成部２５は、「ＣＭ００３」という動作指示識別子と、「ＲＰ＿ＳＵＣＣＥＥＤＥＤ」というメッセージ種別を基に、図９に例示する文言テンプレートテーブル３４を参照して、作成すべき文言を選択する。具体的には、「今、“ＲＥＴＵＲＮ＿ＶＡＬ”℃だよ。」という文言を選択する。
【０２１６】
報告メッセージ生成部２５は、動作結果取得部２４から取得した、戻り値としての「２４℃」という室内温度を、上記文言に適用し、「今、２４℃だよ。」という報告メッセージを生成する。
【０２１７】
なお、この「今、“ＲＥＴＵＲＮ＿ＶＡＬ”℃だよ。」という報告メッセージには宛て先が明示されていない。しかし、文言テンプレートテーブル３４に格納されている文言の内容を変更することによって、「今、“ＲＥＴＵＲＮ＿ＶＡＬ”℃だよ。」という報告メッセージに、メッセージの宛て先を明示させることもできる。
【０２１８】
報告メッセージ表示部２６は、報告メッセージ生成部２５が生成した「今、２４℃だよ。」という上記報告メッセージを、家族伝言板サーバ２に出力して、該メッセージを家族伝言板に表示させる。
【０２１９】
その結果、家族伝言板には、図１４に示すように、１４時０９分にロボ（掃除ロボット５）が書き込んだメッセージとして、「今、２４℃だよ。」という報告メッセージが表示される。
【０２２０】
その後、動作結果取得部２４は、実行状態管理テーブル３０に格納されている、「温度取得」という動作指示の動作指示識別子「ＣＭ００３」と、該動作指示と組み合わされて格納されている指示者のユーザ識別子「Ｕ００２」とを、削除する。
【０２２１】
以上に説明したように、エージェントサーバ１は、外部機器が動作することによって直接得られる動作指示の結果だけでなく、外部機器に、さらに別の装置の動作を制御させて取得する、動作指示の結果についても、報告メッセージを表示させることができる。
【０２２２】
〔変形例〕
上述の例では、エージェントサーバ１は、掃除ロボット５の発言の代行を行う構成であったが、家宅に設置されているその他の家庭内機器のそれぞれを擬人化機器として扱って、それぞれの機器の代理で発言することも可能である。例えば、エージェントサーバ１は、冷蔵庫在庫情報を情報源として冷蔵庫８の事象に係る発言を行う場合には、冷蔵庫８のキャラクタで発言メッセージを出力するといったことが可能である。
【０２２３】
また、エージェントサーバ１がメッセージを処理するための各機能ブロックは、擬人化機器（例えば、掃除ロボット５）のそれぞれに設けられていてもよい。この場合、家族伝言板サーバ２が、それぞれの擬人化機器からメッセージを受け付けて、それぞれの擬人化機器のキャラクタによって書き込まれたものとして家族伝言板に投稿すればよい。
【０２２４】
上述の例では、メンバが書き込んだメッセージを時系列に沿って表示するコミュニケーションサービスとして家族伝言板を用いて説明してきたが、時系列で各メンバが書き込んだメッセージが表示されるものであればよく、時系列でチャットまたはメールをスレッド表示したものであってもよい。
【０２２５】
以上、ここに記載した、エージェントサーバ１は、特定の機能を実現する機能モジュール、または、複数の装置が論理的に集合した物のことを言い、各機能モジュールまたは各装置が単一の筐体内にあるか否かは特に問わない。
【０２２６】
エージェントサーバ１として機能するための各機能モジュール（機能ブロック）、および、実行状態管理テーブル３０、コマンド名称テーブル３１、機器制御テーブル３２、コマンド画像テーブル３３、文言テンプレートテーブル３４、ユーザ名称テーブル３５などの各種記憶部は、クラウドコンピューティングによって実現されてもよい。
【０２２７】
〔実施形態５〕
エージェントサーバ１の制御ブロック（特に動作指示検出部２１、指示者登録部２２、外部機器制御部２３、動作結果取得部２４、報告メッセージ生成部２５、報告メッセージ表示部２６）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【０２２８】
後者の場合、エージェントサーバ１は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０２２９】
〔まとめ〕
本発明の態様１に係るメッセージ通知装置（エージェントサーバ１）は、メンバが書き込んだメッセージを時系列に沿って表示するコミュニケーションサービス（家族伝言板）におけるメッセージから、外部機器を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定する動作指示検出手段（動作指示検出部２１）と、上記動作指示検出手段が検出した上記動作指示に従って上記外部機器を制御する外部機器制御手段（指示者登録部２２）と、上記外部機器制御手段の制御によって上記外部機器が動作した結果を取得する動作結果取得手段（外部機器制御部２３）と、上記動作結果取得手段が取得した動作の結果を報告する報告メッセージを生成する報告メッセージ生成手段（報告メッセージ生成部２５）と、上記報告メッセージ生成手段が生成した報告メッセージを、上記コミュニケーションサービスを提供するサーバに出力して、上記動作指示検出手段が特定した指示者を宛て先として明記した状態で、該メッセージを上記コミュニケーションサービスに表示させる報告メッセージ表示手段（報告メッセージ表示部２６）と、を備えていることを特徴としている。
【０２３０】
本発明の態様７に係るメッセージ通知装置の制御方法は、メンバが書き込んだメッセージを時系列に沿って表示するコミュニケーションサービスにおけるメッセージから、外部機器を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを上記動作指示の指示者として特定する動作指示検出ステップ（Ｓ００１）と、上記動作指示検出ステップによって検出された上記動作指示に従って上記外部機器を制御する外部機器制御ステップ（Ｓ００４）と、上記外部機器制御ステップの制御によって上記外部機器が動作した結果を取得する動作結果取得ステップ（Ｓ００６）と、上記動作結果取得ステップによって取得された動作の結果を報告する報告メッセージを生成する報告メッセージ生成ステップ（Ｓ００７）と、上記報告メッセージ生成ステップによって生成された報告メッセージを、上記コミュニケーションサービスを提供するサーバに出力して、上記動作指示検出ステップによって特定された指示者を宛て先として明記した状態で、該メッセージを上記コミュニケーションサービスに表示させる報告メッセージ表示ステップ（Ｓ００７）と、を含むことを特徴としている。
【０２３１】
本発明の一態様に係るメッセージ通知装置の上記の構成および方法によれば、１人以上のユーザが参加するコミュニケーションの場（例えば家族伝言板）において、ユーザからの動作指示の結果を報告するメッセージを、当該ユーザを宛て先に明示して通知することができるという効果を奏する。
【０２３２】
本発明の態様２に係るメッセージ通知装置は、上記態様１において、上記動作指示が検出されてから、該動作指示によって指示された動作を上記外部機器が終了するまでの間、上記動作指示検出手段が検出した上記動作指示と該動作指示の指示者との組合せを格納している記憶部（記憶部１２、特に実行状態管理テーブル３０）と、上記動作指示検出手段が動作指示を検出したとき、該動作指示が上記記憶部に既に格納されている動作指示と同じであるか否かを判定し、同じである場合には、上記記憶部に既に格納されている動作指示に組み合わされる指示者に、上記動作指示検出手段が特定した指示者を追加する指示者登録手段（指示者登録部２２）と、をさらに備え、上記報告メッセージ生成手段は、上記動作結果取得手段が上記外部機器の動作した結果を取得したとき、１つの報告メッセージを作成するとともに、該報告メッセージで結果を報告する動作を指示した動作指示と組み合わされて上記記憶部に格納されている指示者のすべてを、該報告メッセージの宛て先に設定してもよい。
【０２３３】
上記構成によれば、同じ動作指示を含む異なるメッセージを、該動作指示によって指示された動作を外部機器が終了するまでの間に、複数のメンバが家族伝言板に書き込んだ場合、該複数のメンバを宛て先に明示して、該動作指示の結果を報告する１つの報告メッセージを家族伝言板に表示させることができる。従って、エージェントサーバ１は、宛て先を明示した効率的な報告メッセージを生成することができる。
【０２３４】
本発明の態様３に係るメッセージ通知装置では、上記態様１または２において、上記動作指示検出手段は、上記コミュニケーションサービスに上記メンバが書き込んだメッセージに含まれる画像から、上記動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定することが好ましい。
【０２３５】
上記構成によれば、上記動作指示検出手段は、家族伝言板にメンバが書き込んだメッセージに含まれる画像から、動作指示を検出することができるため、メンバは家族伝言板に「動作指示」を含むメッセージをテキスト形式で書き込む必要がない。すなわち、メンバは、テキスト形式で「動作指示」を含むメッセージを書き込む必要がない。
【０２３６】
従って、或る動作指示を含意することが予めエージェントサーバ１との間で決められている画像を家族伝言板に書き込むことで、メンバは、エージェントサーバ１に該動作指示を実行させ、該動作指示の結果についての報告メッセージを、家族伝言板に表示させることができる。
【０２３７】
本発明の態様４に係るメッセージ通知装置では、上記態様１から３のいずれかにおいて、上記報告メッセージ表示手段は、上記メッセージの上記宛て先を、上記メンバを識別可能な画像によって、上記コミュニケーションサービスに表示させることが好ましい。
【０２３８】
上記構成によれば、エージェントサーバ１は、文字よりもより容易に各メンバに各メンバを直感的に識別させることのできる画像を、報告メッセージの宛て先として明示することができる。メンバは、メッセージに表示されている画像を見ることによって、文字で書かれたメッセージを読むよりもより容易に、誰宛てのメッセージであるのかを認識することが可能となる。
【０２３９】
本発明の態様５に係るメッセージ通知装置では、上記態様１から４のいずれかにおいて、上記報告メッセージ表示手段は、上記動作の結果を、上記動作の結果を示す画像によって、上記コミュニケーションサービスに表示させることが好ましい。
【０２４０】
上記構成によれば、エージェントサーバ１は、文字よりもより容易に各メンバに動作の結果を直感的に知らせることのできる画像を用いて、指示された動作の結果を報告することができる。メンバは、メッセージに表示されている画像を見ることによって、文字で書かれたメッセージを読むよりもより容易に、指示した動作の結果を認識することが可能となる。
【０２４１】
本発明の態様６に係るメッセージ通知装置では、上記態様１から５のいずれかにおいて、上記外部機器は、さらに別の装置の動作を制御し、上記動作指示検出手段は、上記外部機器を操作して、上記外部機器に、上記別の装置の動作を制御させるための動作指示を検出することが好ましい。
【０２４２】
上記構成によれば、外部機器が動作することによって直接得られる動作指示の結果だけでなく、外部機器に、さらに別の装置の動作を制御させて取得する、動作指示の結果についても、報告メッセージを表示させることができる。
【０２４３】
なお、上記メッセージ通知装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各手段として動作させることにより上記メッセージ通知装置をコンピュータにて実現させるメッセージ通知装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【０２４４】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【産業上の利用可能性】
【０２４５】
本発明のメッセージ通知装置は、電子会話ツールを活用して、外部機器の動作結果についてのメッセージを各メンバに通知することが可能なあらゆるコミュニケーションシステムに、広く適用することができる。
【符号の説明】
【０２４６】
１    エージェントサーバ（メッセージ通知装置）
２    家族伝言板サーバ（コミュニケーションサービス提供サーバ／外部機器）
３    ホームサーバ（外部機器）
３ａ  情報提供サーバ（外部機器）
４ａ〜ｃ  携帯端末（通信端末装置）
５    掃除ロボット（擬人化機器／外部機器）
６    空調装置（外部機器）
７    照明装置（外部機器）
８    冷蔵庫（外部機器）
９    ＰＣ（外部機器）
１０    制御部
１１    通信部
１２    記憶部
２１    動作指示検出部（動作指示検出手段）
２２    指示者登録部（指示者登録手段）
２３    外部機器制御部（外部機器制御手段）
２４    動作結果取得部（動作結果取得手段）
２５    報告メッセージ生成部（報告メッセージ生成手段）
２６    報告メッセージ表示部（報告メッセージ表示手段）
３０    実行状態管理テーブル
１００    家族伝言板システム（コミュニケーションシステム）
【図１】
2014164522.tif 000003
【図２】
2014164522.tif 000004
【図３】
2014164522.tif 000005
【図４】
2014164522.tif 000006
【図５】
2014164522.tif 000007
【図６】
2014164522.tif 000008
【図７】
2014164522.tif 000009
【図８】
2014164522.tif 000010
【図９】
2014164522.tif 000011
【図１０】
2014164522.tif 000012
【図１１】
2014164522.tif 000013
【図１２】
2014164522.tif 000014
【図１３】
2014164522.tif 000015
【図１４】
2014164522.tif 000016