<第1実施形態>
図1を参照して、本発明の第1実施形態に係る情報処理システムについて説明する。図1は、第1実施形態に係る情報処理システムの一例を示す。
第1実施形態に係る情報処理システムは、複数の機器を含む。図1に示す例では、情報処理システムは機器10A~10Rを含む。これらは一例に過ぎず、情報処理システムは、図1に示されている機器以外の機器を含んでもよい。また、情報処理システムは、サーバを含んでもよい。以下、各機器を区別する必要がない場合には、各機器を「機器10」と称することとする。
各機器10は、他の機器10と通信する機能を有する。その通信は、無線通信であってもよいし、有線通信であってもよい。例えば、各機器10は、インターネットや他のネットワーク等の通信経路を介して他の機器10と通信してもよいし、直接的に他の機器10と通信してもよいし、ハブとして機能する中継器を介して他の機器10と通信してもよいし、いわゆるクラウドやサーバを介して他の機器10と通信してもよい。各機器10は、いわゆるIoT(Internet of Things)機器であってもよい。
機器10は機能を有する装置であり、例えば、画像形成機能(スキャン機能、プリント機能、コピー機能、ファクシミリ機能等)を有する画像形成装置、PC(パーソナルコンピュータ)、タブレットPC、スマートフォン、携帯電話、ロボット(人型ロボット、人以外の動物型ロボット、それら以外のロボット等)、プロジェクタ、液晶ディスプレイ等の表示装置、記録装置、再生装置、カメラ等の撮像装置、冷蔵庫、炊飯器、電子レンジ、コーヒーメーカー、掃除機、洗濯機、空調機、照明装置、時計、監視カメラ、自動車、二輪車、航空機(例えば無人航空機(いわゆるドローン))、ゲーム機、各種のセンシング機器(例えば温度センサ、湿度センサ、電圧センサ、電流センサ等)等の装置である。機器10は、ユーザに対して情報を出力する機器(例えば画像形成装置やPC等)であってもよいし、ユーザに対して情報を出力しない機器(例えばセンシング機器)であってもよい。また、後述する連携機能を実行する複数の機器10の中のすべての機器10が、ユーザに対して情報を出力する機器であってもよいし、一部の機器10がユーザに対して情報を出力する機器であり、他の機器10がユーザに対して情報を出力しない機器であってもよいし、すべての機器10がユーザに対して情報を出力しない機器であってもよい。機器10の概念の範疇には機器全般が含まれてもよい。例えば、情報機器、映像機器、音響機器、その他の機器も、機器10の概念の範疇に含まれてもよい。
機器10は、単独機能を実行してもよいし、他の機器10と連携して連携機能を実行してもよい。単独機能は、例えば、1つの機器10を用いて実行可能な機能である。連携機能は、例えば、複数の機器10を用いて実行可能な機能である。単独機能及び連携機能では、例えば、機器10が有するハードウェアやソフトウェアが用いられる。なお、機器10は、他の機器10と連携していない場合、独立してユーザからの指示を受け付けて単独機能を実行してもよい。もちろん、ユーザからの指示を受けずに機能を実行する機器10(例えばセンシング機器)が、情報処理システムに含まれてもよい。
ここで、連携機能について説明する。機器10の全体、機器10の特定の部分、ソフトウェアの特定の機能、又は、複数の機能を含む集合機能等が、連携機能に用いられてもよい。例えば、機器10の部分毎に機能が割り当てられている場合、連携機能は、その部分を用いる機能であってもよい。具体例を挙げて説明すると、複数の画像形成機能を有する複合機の本体部にプリント機能が割り当てられており、複合機の読取部(例えば、原稿カバーや原稿ガラスや自動原稿給紙装置に対応する部分)にスキャン機能が割り当てられており、複合機の後処理装置に後処理機能(例えばステープル止め機能等)が割り当てられているものとする。この場合、複合機の本体部や読取部や後処理装置が、連携機能に用いられてもよい。また、ソフトウェアとして、RPA(Robotics Process Automation)等のようにブロック単位でまとまった集合機能が、連携機能に用いられてもよい。また、ソフトウェアが複数の機能を有している場合、連携機能は、当該複数の機能の中の一部の機能を用いる機能であってもよい。集合機能は、複数の機能によって構成されており、当該複数の機能が同時又は順次に実行されることで、当該集合機能による処理が実行される。また、連携機能は、ハードウェアのみを用いる機能であってもよいし、ソフトウェアのみを用いる機能であってもよいし、ハードウェアとソフトウェアの両方を用いる機能であってもよい。
連携機能は、互いに異なる種類の複数の機器10を連携させることで実行可能な機能であってもよいし、同一の種類の複数の機器10を連携させることで実行可能な機能であってもよい。連携機能は、連携前には利用できなかった機能であってもよい。例えば、プリント機能を有する機器10(プリンタ)と、スキャン機能を有する機器10(スキャナ)とを連携させることで、連携機能としてのコピー機能が実行可能となる。すなわち、プリント機能とスキャン機能とを連携させることで、コピー機能が実行可能となる。
連携機能の概念の範疇には、複数の機器10を連携させることで新たな機能の実行が可能となる合体機能が含まれてもよい。例えば、複数のディスプレイを組み合わせることで、合体機能としての拡張表示機能が実現されてもよい。別の例として、テレビとレコーダーとを組み合わせることで、合体機能としての録画機能が実現されてもよい。その録画機能は、例えば、テレビに表示されている画像を録画する機能である。また、複数のカメラを組み合わせることで、合体機能としての撮影領域拡張機能が実現されてもよい。この拡張機能は、例えば各カメラの撮影領域を繋ぎ合わせて撮影する機能である。また、電話と翻訳機や翻訳ソフトとを組み合わせることで、合体機能としての翻訳通話機能(電話を介した会話が翻訳される機能)が実現されてもよい。このように、連携機能の概念の範疇には、互いに同一の種類の複数の機器10やソフトウェアを連携させることで実現可能となる機能や、互いに異なる種類の複数の機器10やソフトウェアを連携させることで実現可能となる機能が含まれてもよい。
また、複数の機器10によってコネクテッドホーム(IoT技術を用いて、家電等の機器10同士をネットワークによって接続するシステム)が構築され、そのコネクテッドホームにて連携機能が用いられてもよい。この場合、特定のサーバを介して機器10同士が接続してもよいし、特定のサーバを介さずに機器10同士が接続してもよい。
また、複数の機器10は、IFTTT(イフト)を用いて連携することで連携機能を実行してもよい。つまり、連携機能の内容が、ある機器10にてトリガーとなる事象が発生した場合に、他の機器10がアクション(処理)を実行するというものであってもよい。例えば、機器10としてのセンサが扉の開きを検知したことがトリガーとなって、別の機器10としての照明装置を点灯させるというアクションを実行する連携機能が実行されてもよい。また、ある機器10によるアクションが別のトリガーとなって、更に別の機器10がアクションを実行する機能も、連携機能の概念の範疇に含まれてもよい。また、複数のWebサービスを連携させる機能や、API(Application Programming Interface)を利用して複数のシステムやサービス等を連携させるAPI連携が、連携機能の概念の範疇に含まれてもよい。
図1に示す例では、機器10A,10D,10Pは、中継器である。機器10B,10Qは、ロボットである。機器10C,10Rは、カメラである。機器10E,10Nは、PCである。機器10F,10G,10L,10Mは、端末装置の一例としてのスマートフォンである。機器10H,10Kは、画像形成機能を有する複合機である。
中継器は、例えば、当該中継器に接続されている他の機器10(例えば、当該他の機器10が有するハードウェアや、当該他の機器10にインストールされているソフトウェア)を制御してもよい。また、中継器は、インターネット等を利用することで、各種の情報を取得してもよい。中継器は、サーバとして機能してもよいし、データやユーザ情報の管理等を行ってもよい。中継器は、いわゆるスマートスピーカ(通信機能とスピーカ機能を有する機器)であってもよいし、通信機能を有するがスピーカ機能を有していない機器であってもよい。中継器は、屋内(例えば、部屋の由佳、天井、テーブル等)に設置されてもよいし、屋外に設置されてもよい。また、中継器は、移動可能な機器(例えば自動式の機器)であってもよい。
端末装置は、PC、タブレットPC、スマートフォン、携帯電話等の機器である。端末装置は、ウェアラブル端末(腕時計型端末、リストバンド型端末、眼鏡型端末、指輪型端末、コンタクトレンズ型端末、体内埋め込み型端末、ヒアラブル端末等)であってもよい。また、端末装置は、表示装置としてフレキシブルディスプレイを有していてもよい。フレキシブルディスプレイとして、例えば、有機エレクトロルミネッセンス型のディスプレイ(フレキシブル有機ELディスプレイ)、電子ペーパー型のディスプレイ、フレキシブル液晶ディスプレイ、等が用いられる。これら以外の表示方式が採用されたフレキシブルディスプレイが用いられてもよい。フレキシブルディスプレイは、表示部分が柔軟に変形可能なディスプレイであり、例えば、曲げたり、折り畳んだり、巻いたり、捩ったり、伸ばしたりすることが可能なディスプレイである。端末装置全体がフレキシブルディスプレイによって構成されていてもよいし、フレキシブルディスプレイとそれ以外の構成とが機能的又は物理的に分かれていてもよい。
例えば、機器10A~10Rのそれぞれは、ユーザの指示に従って、又は、ユーザの指示の有無にかかわらず自動的に、独立して単独機能を実行するように構成されている。例えば、中継器としての機器10A,10D,10Pは、ユーザの指示に従って、又は、ユーザの指示の有無にかかわらず自動的に、各種の情報を取得してユーザに提供する。ロボットとしての機器10B,10Qは、ユーザの指示に従って、又は、ユーザの指示の有無にかかわらず自動的に、各種の作業を実行する。カメラとしての機器10C,10Rは、ユーザの指示に従って、又は、ユーザの指示の有無にかかわらず自動的に、撮影することで画像データ(動画像データや静止画像データ)を生成する。PCとしての機器10E,10Nは、ユーザの指示に従って、又は、ユーザの指示の有無にかかわらず自動的に、各種の処理を実行する。スマートフォンとしての機器10F,10G,10L,10Mは、ユーザの指示に従って、又は、ユーザの指示の有無にかかわらず自動的に、各種の処理を実行する。複合機としての機器10H,10Kは、ユーザの指示に従って、又は、ユーザの指示の有無にかかわらず自動的に、画像形成処理を実行する。
また、各機器10は、自身に設定された連携機能を実行してもよい。例えば、連携機能の内容を示す設定情報が、当該連携機能に用いられる各機器10に格納され、各機器10は、自身に格納されている設定情報が示す連携機能を他の機器10と連携して実行する。
各機器10には、ユーザを補助するための1又は複数の操作アシスタント(パーソナルアシスタント)が搭載されている。操作アシスタントは、例えば、当該操作アシスタントが搭載されている機器10や他の機器10を制御するように構成されている。操作アシスタントは、機器10を構成するハードウェアを制御してもよいし、機器10にインストールされているソフトウェアを制御してもよい。例えば、操作アシスタントは、ユーザによって与えられた指示を解析し、その指示に従って機器10を制御することで、ユーザによって指定された機能の実行を制御する。
また、操作アシスタントは、ユーザと対話する機能を有していてもよい。つまり、操作アシスタントは、ユーザの対話相手として機能してもよい。例えば、操作アシスタントは、ユーザの発言を解析し、その解析結果に基づいて回答を作成してユーザに提供する。
音声入力や文字入力等によって、ユーザの指示や発言が操作アシスタントに与えられた場合、操作アシスタントは、例えば、入力された情報に対して形態素解析等の自然言語処理を適用することで、その指示や発言を解析する。
操作アシスタントは、例えば、操作アシスタントプログラムが実行されることで実現される。その操作アシスタントプログラムは、各機器10にインストールされている。もちろん、操作アシスタントプログラムは、サーバ等の外部装置にインストールされ、操作アシスタントの機能が、サーバから機器10に提供されてもよい。
操作アシスタントは人工知能(AI)によって実現されてもよい。例えば、操作アシスタントは、人工知能による学習機能を有し、その学習機能によって、人に近い判断を行う能力を有していてもよい。また、ニューラルネットワーク型のディープラーニングが利用されてもよいし、部分的に学習分野を強化する強化学習等が利用されてもよいし、その他、遺伝的アルゴリズム、クラスタ分析、自己組織化マップ、アンサンブル学習、等が利用されてもよい。もちろん、これら以外の人工知能に関する技術が利用されてもよい。また、操作アシスタントは、自動応答AIとしてのチャットボット(chatbot)(人工知能を活用した自動会話プログラム)として機能してもよい。
操作アシスタントは、当該操作アシスタントにログインしているユーザアカウントに紐付けられたユーザからの指示に従って動作してもよい。
第1実施形態では、ある機器10(要求元の機器10)が別の機器10(要求先の機器10)に接続要求を示す情報を送信した場合、当該別の機器10(要求先の機器10)に搭載されている操作アシスタントが、従操作アシスタントとして設定されて従操作アシスタントとして動作させられる。従操作アシスタントは、当該操作アシスタント以外の別の操作アシスタントからの指示に従って制御される。
例えば、機器10に単独機能や連携機能が設定される場合や、機器10を用いて単独機能や連携機能が実行される場合や、ユーザが接続要求を指示した場合や、ある機器10を介して別の機器10を利用する場合等に、ある機器10が別の機器10に接続要求を示す情報を送信することがある。この場合、要求先の別の機器10に搭載されている操作アシスタントが、従操作アシスタントとして設定される。もちろん、上記以外の事象が発生した場合に、接続要求を示す情報が、ある機器10から別の機器10に送信されてもよい。
以下、図2を参照して、機器10の構成について詳しく説明する。図2は、機器10の構成の一例を示す。なお、図2は、各機器10が共通して有する構成を示しており、各機器10の特有の構成を示していない。
通信部12は通信インターフェースであり、他の装置にデータを送信する機能、及び、他の装置からデータを受信する機能を有する。通信部12は、無線通信機能を有する通信インターフェースであってもよいし、有線通信機能を有する通信インターフェースであってもよい。通信部12は、例えば、1又は複数の種類の通信方式に対応しており、通信相手に適した通信方式(つまり、通信相手が対応している通信方式)に従って通信相手と通信してもよい。通信方式は、例えば、赤外線通信、可視光通信、Wi-Fi(登録商標)通信、近接無線通信(例えばNFC(Near Field Communication)等)、等である。近接無線通信としては、Felica(登録商標)、Bluetooth(ブルートゥース)(登録商標)、RFID(Radio Frequency Identifier)等が用いられる。また、通信部12は、第5世代移動通信システム(5G)に対応してもよい。もちろん、別の方式の無線通信が近接無線通信として用いられてもよい。通信部12は、通信相手に応じて通信方式や周波数帯域を切り替えてもよいし、周囲の環境に応じて通信方式や周波数帯域を切り替えてもよい。周波数帯域として、例えば、2.4GHzや5GHz等が用いられてもよい。
UI部14はユーザインターフェース部であり、表示部と操作部を含む。表示部は、例えば液晶ディスプレイ等の表示装置である。表示部は、フレキシブルディスプレイであってもよい。操作部は、例えばタッチパネルやキーボード等の入力装置である。UI部14は、表示部と操作部とを兼ねたユーザインターフェース(例えば、タッチ式のディスプレイや、ディスプレイ上に電子的にキーボード等を表示する装置等を含む)であってもよい。また、UI部14は、マイク等の集音部やスピーカ等の音声発生部を含んでいてもよい。この場合、音声入力によって情報が機器10に入力されてもよいし、音声によって情報が発せられてもよい。なお、UI部14を有していない機器10が、情報処理システムに含まれてもよい。例えば、情報をユーザに出力しないセンシング機器は、UI部14を有していなくてもよい。
記憶部16は、ハードディスクやメモリ(例えばSSD等)等の記憶装置である。記憶部16には、例えば、各種のデータや各種のプログラム等が記憶されている。プログラムとして、例えば、OS(Operating System)や、1又は複数の操作アシスタントプログラムや、各種のアプリケーションプログラム等が記憶されている。なお、機器10によっては、OSやアプリケーションプログラムが記憶部16に記憶されていない場合もある。また、記憶部16には、他の機器10のアドレスを示す機器アドレス情報(例えばIPアドレスやMACアドレス等)や、サーバのアドレスを示すサーバアドレス情報(例えばIPアドレスやMACアドレス等)等が記憶されてもよい。
実行部18は、機能を実行するように構成されている。例えば、機器10が画像形成装置である場合、実行部18は、スキャン機能やプリント機能やコピー機能等の画像形成機能を実行する。また、機器10がロボットである場合、実行部18は、ロボットが有する機能(例えば、移動機能や持ち上げ機能等)を実行する。機器10がカメラである場合、実行部18は、撮影機能を実行する。
制御部20は、機器10の各部の動作を制御するように構成されている。例えば、制御部20は、プログラムの実行、通信部12による通信の制御、UI部14を用いた情報の通知(例えば情報の表示や音声出力等)の制御、UI部14を用いて機器10に入力された情報の受け付け、記憶部16への情報の書き込み、記憶部16からの情報の読み出し、実行部18の制御、等を行う。また、制御部20は、アシスタント制御部22を含む。
アシスタント制御部22は、第1実施形態では、機器10同士の接続に応じて、操作アシスタントを主操作アシスタント又は従操作アシスタントとして設定することで、操作アシスタントを主操作アシスタント又は従操作アシスタントとして動作させるように構成されている。アシスタント制御部22は、自身の機器10に搭載されている操作アシスタントを主操作アシスタント又は従操作アシスタントとして設定してもよいし、他の機器10に搭載されている操作アシスタントを主操作アシスタント又は従操作アシスタントとして設定してもよい。従操作アシスタントは、上述したように、当該従操作アシスタント以外の別の操作アシスタントからの指示に従って制御される。主操作アシスタントは、当該別の操作アシスタントの一例に相当する。
以下、図3を参照して、中継器の外観について詳しく説明する。図3は、中継器を示す斜視図である。図3は、一例として、中継器としての機器10Aを示す。機器10F,10Pも、機器10Aと同様の構成を有していてもよいし、別の構成を有していてもよい。
機器10Aは、いわゆるスマートスピーカであり、通信機能と音声によるアシスト機能とを有する。機器10Aは、柱状の本体部24を含む。本体部24の側面には、マイク26、スピーカ28、表示部30、及び、発光部32,34が設けられている。また、本体部24の上面には、センサ36が設けられている。なお、本体部24の形状は、図3に示されている形状に限定されるものではない。マイク26とスピーカ28を備えた中継器であれば、その形状は、どのような形状であってもよい。また、マイク26、スピーカ28、表示部30、発光部32,34、及び、センサ36は、図3に示されている位置以外の位置に配置されてもよい。
マイク26は、集音装置として機能し、機器10Aの周囲の音を集音する。例えば、ユーザの音声がマイク26によって集音される。
ユーザが操作アシスタントと対話している場合、スピーカ28から操作アシスタントの発言内容が音声として発せられる。また、音楽やテレビの音声やラジオの音声等が、スピーカ28から発せられてもよい。
表示部30は、表示装置である。表示部30は、操作部を兼ねたユーザインターフェース(例えばタッチパネル等)であってもよい。
発光部32は、1又は複数の光源(例えば光源38,40,42)を含み、機器10Aに搭載されている操作アシスタントの設定内容に応じた発光の仕方に従って発光する。例えば、年齢、性別、職業、性格等が、設定項目として操作アシスタントに設定される。操作アシスタントは、その設定項目に従って、ユーザに対して回答したり、作業を実行したりする。例えば、職業の設定項目として医師が設定されている場合、光源38,40が青色に発光し、光源40が黄色に発光する。別の設定項目が設定された場合、発光部32は、その設定された内容に応じた発光の仕方に従って発光する。
発光部34は、1又は複数の光源(例えば光源44,46,48)を含み、機器10Aに搭載されている操作アシスタントにログインしているユーザアカウントに応じた発光の仕方に従って発光する。例えば、ユーザBが、機器10Aに搭載されている操作アシスタントにログインしている場合、光源44,48が青色に発光し、光源46が黄色に発光する。別のユーザが操作アシスタントにログインしている場合、発光部34は、そのユーザに応じた発光の仕方に従って発光する。
なお、発光部32,34は区別されずに本体部24に設けられてもよい。例えば、発光部32,34に含まれる全光源を用いて、操作アシスタントの設定内容やユーザアカウントが表現されてもよい。また、各光源の発光パターン(例えば、点滅の仕方、時間の長さ等)によって、操作アシスタントの設定内容やユーザアカウントが表現されてもよい。
センサ36は、ユーザのジェスチャーを検知する。機器10Aは、検知されたジェスチャーに従った処理を実行する。例えば、機器10Aは、検知されたジェスチャーに従って、自装置にて処理を実行してもよいし、他の機器10の動作を制御してもよい。
以下、図4を参照して、連携機能について詳しく説明する。図4は、機能管理テーブルの一例を示す。機能管理テーブルは、各機器10に設定された連携機能を管理するためのテーブルである。機能管理テーブルのデータは、連携機能が設定された機器10に記憶されてもよいし、連携機能を設定するために用いられた機器10に記憶されてもよいし、各機器10を制御するためのサーバや中継器に記憶されてもよい。例えば、ユーザが、スマートフォンとしての機器10Fを用いて連携機能の設定を指示した場合、機能管理テーブルのデータは、その機器10Fに記憶されてもよい。また、中継器としての機器10Aに接続された機器10に対して連携機能が設定された場合、機能管理テーブルは、その機器10Aに記憶されてもよい。
機能管理テーブルにおいては、一例として、連携機能に用いられる複数の機器10を示す情報と、当該複数の機器10に設定された連携機能の内容を示す情報と、が互いに紐付けられている。以下、機能管理テーブルに登録されている各連携機能の具体例に付いて説明する。
PCとしての機器10Eと複合機としての機器10Hとの組み合わせを示す情報と、機器10E,10Hに設定された連携機能を示す情報と、が互いに紐付けられている。その連携機能は、「スキャン転送機能」と「プリント機能」である。スキャン転送機能は、「スキャン機能を有する複合機(機器10H)によってスキャン(画像読取)を実行し、それによって生成された画像データを複合機(機器10H)からPC(機器10E)に転送する」という機能である。また、プリント機能は、「PC(機器10E)に保存されているデータを、複合機(機器10H)に送って複合機によってプリントする」という機能である。ユーザによってスキャン転送機能の実行指示が与えられた場合、機器10E,10Hはスキャン転送機能を実行する。同様に、ユーザによってプリント機能の実行指示が与えられた場合、機器10E,10Hはプリント機能を実行する。
また、カメラとしての機器10Cとロボットとしての機器10Bとの組み合わせを示す情報と、機器10B,10Cに設定された連携機能を示す情報と、が互いに紐付けられている。その連携機能は、「カメラ(機器10C)によって不審者が検知された場合、その不審者が検知された場所にロボット(機器10B)を向かわせる」という機能である。その連携機能の状態がアクティブ(オン状態)に設定されている場合、機器10B,10Cはその連携機能を実行する。
また、複合機とプロジェクタとの組み合わせを示す情報と、複合機とプロジェクタとの組み合わせに設定された連携機能を示す情報と、が互いに紐付けられている。その連携機能は、「投影機能」と「プリント機能」である。投影機能は、「スキャン機能を有する複合機によってスキャンを実行し、それによって生成された画像データをプロジェクタによって投影する」という機能である。プリント機能は、「プロジェクタによって投影されている画像データを複合機に送り、複合機によってその画像データをプリントする」という機能である。ユーザによって投影機能の実行指示が与えられた場合、複合機とプロジェクタは投影機能を実行する。同様に、ユーザによってプリント機能の実行指示が与えられた場合、複合機とプロジェクタはプリント機能を実行する。
また、扉開閉センサと照明装置との組み合わせを示す情報と、扉開閉センサと照明装置との組み合わせに設定された連携機能を示す情報と、が互いに紐付けられている。その連携機能は、「扉開閉センサが扉の開きを検知した場合、照明装置を点灯させる」という機能である。その連携機能の状態がアクティブ(オン状態)に設定されている場合、扉開閉センサと照明装置は、その連携機能を実行する。
図4に示されている連携機能は一例に過ぎず、上記以外の連携機能が各機器10に設定されてもよい。また、ソフトウェアを用いる連携機能が設定されてもよい。
以下、第1実施形態に係る実施例について詳しく説明する。
(実施例1-1)
図5を参照して、実施例1-1に係る処理について説明する。図5は、機器10の一例を示す。実施例1-1では、スマートフォンとしての機器10Fが要求元の機器に該当し、中継器としての機器10Aが要求先の機器に該当する。つまり、機器10Fが機器10Aに対して接続要求を示す情報を送信する。例えば、機器10Aが有する単独機能を実行する場合や、機器10Fを用いて機器10Aに単独機能を設定する場合や、機器10Fと機器10Aとが連携して連携機能を実行する場合や、機器10Fを用いて機器10Aに連携機能を設定する場合や、機器10Fを用いて、機器10Aを介して他の機器10に連携機能を設定する場合や、機器10Fを介して機器10Aを利用する場合や、ユーザが機器10Fを用いて接続要求の送信指示を与えた場合等に、機器10Fが機器10Aに対して接続要求を示す情報を送信する。もちろん、これら以外の事象が発生した場合に、機器10Fが機器10Aに接続要求を示す情報を送信してもよい。
機器10Fには、操作アシスタントA1が搭載されている。機器10Aには、操作アシスタントA2が搭載されている。操作アシスタントA1,A2は、例えば、互いに同じ種類の操作アシスタントであってもよいし、互いに異なる種類の操作アシスタントであってもよい。例えば、操作アシスタントA1,A2は、互いに同じ人工知能(AI)を有してもよいし、互いに異なる人工知能(AI)を有してもよい。操作アシスタントA1,A2が互いに同じ種類の操作アシスタントであっても(例えば互いに同じ種類のAIを有していても)、互いのバージョンが異なる場合や、制御可能な機能や機器が互いに異なる場合や、利用可能なユーザが互いに異なる場合や、ログインしているユーザアカウントが互いに異なる場合には、操作アシスタントA1,A2は、互いに異なる操作アシスタントとして扱われてもよい。操作アシスタントA1,A2の学習の程度が互いに異なる場合、操作アシスタントA1,A2は、互いに異なる操作アシスタントとして扱われてもよい。
図5に示す例では、機器10Fが第1機器の一例に相当し、機器10Aが第2機器の一例に相当する。また、操作アシスタントA1が第1操作アシスタントの一例に相当し、操作アシスタントA2が第2操作アシスタントの一例に相当する。
機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、アシスタント制御部22は、要求元の機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定することで、当該操作アシスタントA1を主操作アシスタントとして動作させる。また、アシスタント制御部22は、要求先の機器10Aに搭載されている操作アシスタントA2を従操作アシスタントとして設定することで、当該操作アシスタントA2を従操作アシスタントとして動作させる。つまり、アシスタント制御部22は、操作アシスタントA1と操作アシスタントA2との間に主従関係を設定する。従操作アシスタントとしての操作アシスタントA2は、主操作アシスタントとしての操作アシスタントA1からの指示に従って動作する。例えば、ユーザが機器10Fを用いて、機器10Aに対する指示を操作アシスタントA1に与えた場合、操作アシスタントA1は、機器10Aに搭載されている操作アシスタントA2に対して当該指示を与える。操作アシスタントA2は、当該指示に従って動作する。例えば、操作アシスタントA2は、操作アシスタントA1からの指示に従って、機器10Aの動作を制御する。
上記の主従関係は、要求元の機器10Fのアシスタント制御部22によって設定されてもよいし、要求先の機器10Aのアシスタント制御部22によって設定されてもよいし、サーバ等の外部装置に設けられたアシスタント制御部22によって設定されてもよい。
例えば、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、機器10Fのアシスタント制御部22は、従操作アシスタントの指示を示す情報(主操作アシスタントとしての操作アシスタントA1を識別するための情報を含む)を機器10Aに送信することで、機器10Aに搭載されている操作アシスタントA2を、機器10Fに搭載されている操作アシスタントA1からの指示に従って動作する従操作アシスタントとして設定する。
別の例として、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、機器10Aのアシスタント制御部22は、機器10Fから接続要求を示す情報(主操作アシスタントとしての操作アシスタントA1を識別するための情報を含む)を受信すると、操作アシスタントA2を、機器10Fに搭載されている操作アシスタントA1からの指示に従って動作する従操作アシスタントとして設定する。
更に別の例として、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fは、機器10Fが要求元の機器であることを示す情報、機器10Aが要求先の機器であることを示す情報、及び、機器10F,10Aのそれぞれのアドレスを示す機器アドレス情報を、サーバ等の外部装置に送信する。外部装置のアシスタント制御部22は、これらの情報を受信すると、主操作アシスタントを示す情報を機器10Fに送信することで、操作アシスタントA1を主操作アシスタントとして設定し、従操作アシスタントを示す情報を機器10Aに送信することで、操作アシスタントA2を従操作アシスタントとして設定する。
操作アシスタントA1と操作アシスタントA2との間に主従関係が形成されている間、操作アシスタントA1を介さずに、操作アシスタントA2に指示が与えられる場合がある。例えば、操作アシスタントA1を介さずに、機器10Aに対して直接的に指示が与えられたり、機器10F以外の機器10から機器10Aに対して指示が与えられたりする場合がある。このような場合、操作アシスタントA2は、操作アシスタントA1を介さずに操作アシスタントA2に与えられた指示に従って動作せずに、操作アシスタントA1からの指示に従って動作する。この場合、後述するように主従関係が解消された後、操作アシスタントA2は、主従関係が形成されている間に操作アシスタントA1を介さずに操作アシスタントA2に与えられた指示に従って動作する。もちろん、主従関係が形成されている間であっても、操作アシスタントA1から操作アシスタントA2に対して指示が与えられていない間は、操作アシスタントA2は、操作アシスタントA1を介さずに操作アシスタントA2に与えられた指示に従って動作してもよい。
なお、機器10Fから機器10Aに接続要求を示す情報が送信されたときに、操作アシスタントA2が作業を実行している場合、アシスタント制御部22は、その作業が終了した後に、操作アシスタントA2を従操作アシスタントとして設定する。もちろん、接続要求が優先されてもよい。この場合、アシスタント制御部22は、操作アシスタントA2が実行中の作業を一時的に停止させて、操作アシスタントA2を従操作アシスタントとして設定する。主従関係が解消された後、操作アシスタントA2は、停止させられた作業を実行する。
従操作アシスタントとしての操作アシスタントA2が、主操作アシスタントとしての操作アシスタントA1からの指示に従った作業を終了された場合、アシスタント制御部22は、上記の主従関係を解消する。例えば、機器10Aが、機器10Fからの指示に従った単独機能の実行を終了させた場合、アシスタント制御部22は、操作アシスタントA1と操作アシスタントA2との間の主従関係を解消する。別の例として、機器10Fと機器10Aとを用いる連携機能が設定されており、その連携機能の実行が終了した場合、アシスタント制御部22は、操作アシスタントA1と操作アシスタントA2との間の主従関係を解消する。その解消は、要求元の機器10Fのアシスタント制御部22によって行われてもよいし、要求先の機器10Aのアシスタント制御部22によって行われてもよいし、外部装置に設けられたアシスタント制御部22によって行われてもよい。主従関係が解消された後、操作アシスタントA2は、操作アシスタントA1からの指示か否かにかかわらず、操作アシスタントA2に与えられた指示に従って動作する。
実施例1-1によれば、要求先の機器10に搭載されている操作アシスタントが、要求元の機器10に搭載されている操作アシスタントからの指示に従って動作する。このように、操作アシスタント間に主従関係が形成されるので、機器10同士が接続された場合に、機器10が適切に制御される。
なお、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA2にログインしているユーザアカウントに紐付けられたユーザの許可が得られた場合に、操作アシスタントA2を従操作アシスタントとして設定してもよい。例えば、操作アシスタントA2を従操作アシスタントとして設定することを許可するか否かをユーザに問い合わせるためのメッセージが、接続要求を示す情報を受信した機器10Aの表示部に表示される。機器10Aのユーザが許可した場合、アシスタント制御部22は、操作アシスタントA2を従操作アシスタントとして設定する。機器10Aのユーザが許可しない場合、アシスタント制御部22は、操作アシスタントA2を従操作アシスタントとして設定しない。この場合、操作アシスタントA2は、操作アシスタントA1からの指示か否かにかかわらず、操作アシスタントA2に与えられた指示に従って動作する。このように、要求先の機器10のユーザが許可した場合に、要求先の操作アシスタントを縦操作アシスタントとして設定することで、当該ユーザの意図しないところで、要求先の操作アシスタントが従操作アシスタントとして設定されることが防止される。
以下、図6を参照して、主従関係が形成されている期間中の画面について説明する。図6は、その画面の一例を示す。画面50は、要求元の機器10Fに表示される画面である。
機器10Fの制御部20は、UI部14の表示部に画面50を表示させ、その画面50上に各種の情報を表示させる。画面50は、ユーザが操作アシスタントと対話するためのユーザインターフェース(会話型のユーザインターフェース)である。つまり、画面50は、操作アシスタントとユーザとの間でメッセージをやり取りするためのユーザインターフェースである。画面50には、ユーザが機器10Fに入力した情報(例えば文字列や画像等)と、操作アシスタントの発言内容を示す情報(例えば文字列や画像等)が表示される。ユーザと操作アシスタントとの間の対話は、いわゆるチャット形式の対話(つまり、ユーザと操作アシスタントが互いに発言しながら対話が進む形式)である。例えば、操作アシスタントと対話するためのプログラム(例えばチャット用プログラム)が機器10Fにインストールされており、そのチャット用プログラムが実行されることで、画面50が表示される。
操作アシスタント用の表示エリアには、機器10Fに搭載されている操作アシスタントA1に紐付けられた画像52(例えばアイコン等)が表示される。ユーザ用の表示エリアには、ユーザに紐付けられた画像54(例えばアイコンや写真等)が表示される。また、機器10Aに搭載されている操作アシスタントA2が従操作アシスタントとして動作させられている場合、操作アシスタント用の表示エリアには、操作アシスタントA2に紐付けられた画像56(例えばアイコン等)が表示される。画像に代えて又は画像と共に、ユーザや操作アシスタントを識別するための文字列が表示されてもよい。
画面50上にて、ユーザと操作アシスタントA1,A2との間で対話が行われる。その対話において、操作アシスタントA1の発言内容58が、画像52に紐付けられて表示され、操作アシスタントA2の発言内容60が、画像56に紐付けられて表示され、ユーザの発言内容62が、画像54に紐付けられて表示される。操作アシスタントA2に対する指示は、操作アシスタントA1を介して与えられる。なお、従操作アシスタントとしての操作アシスタントA2に紐付けられた画像56は、画面50に表示されなくてもよい。
ユーザと操作アシスタントA1,A2との間の対話に、他のユーザが参加してもよい。この場合、当該他のユーザに紐付けられた画像が画面50に表示される。当該他のユーザの発言内容は、当該画像に紐付けられて画面50に表示される。
なお、ユーザは、音声やジェスチャーによって、操作アシスタントに対してメッセージを与えてもよい。この場合、画面50は表示されなくてもよい。音声やジェスチャーが用いられる場合であっても、画面50が表示され、その音声の内容やジェスチャーの内容が、文字列として画面50に表示されてもよい。
例えば、ユーザが、画面50上にて、操作アシスタントA1に対して、機器10F,10Aを用いる連携機能の実行を指示した場合、操作アシスタントA1は、その連携機能の実行を制御する。例えば、操作アシスタントA1は、機器10Fを制御し、また、操作アシスタントA2に対して連携機能の実行指示を与える。このようにして、連携機能が実行される。
(実施例1-2)
図7を参照して、実施例1-2に係る処理について説明する。図7は、機器10の一例を示す。実施例1-2では、実施例1-1と同様に、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
図7の(a)に示すように、機器10Fには、操作アシスタントA1が搭載されている。機器10Aには、操作アシスタントA2が搭載されている。機器10Fに搭載されている操作アシスタントA1には、アカウントαに紐付けられたユーザがログインしている。機器10Aに搭載されている操作アシスタントA2には、アカウントβに紐付けられたユーザがログインしている。
機器10Fが第1機器の一例に相当し、機器10Aが第2機器の一例に相当する。また、操作アシスタントA1が第1操作アシスタントの一例に相当し、操作アシスタントA2が第2操作アシスタントの一例に相当する。また、アカウントαが第1アカウントの一例に相当し、アカウントβが第2アカウントの一例に相当する。
機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、図7の(b)に示すように、アシスタント制御部22は、アカウントβを操作アシスタントA2からログアウトさせ、要求元の操作アシスタントA1にログインしているアカウントαを、操作アシスタントA2にログインさせる。こうすることで、アシスタント制御部22は、操作アシスタントA2を従操作アシスタントとして設定する。また、アシスタント制御部22は、アカウントαがログインしている操作アシスタントA1を主操作アシスタントとして設定する。このようにして、アシスタント制御部22は、操作アシスタントA1と操作アシスタントA2との間に主従関係を設定する。従操作アシスタントとしての操作アシスタントA2は、アカウントαがログインしている操作アシスタントA1からの指示に従って動作する。例えば、アカウントαに紐付けられたユーザが機器10Fを用いて、機器10Aに対する指示を操作アシスタントA1に与えた場合、操作アシスタントA1は、機器10Aに搭載されている操作アシスタントA2に対して当該指示を与える。操作アシスタントA2は、当該指示に従って動作する。このように、操作アシスタントA2は、アカウントαに紐付けられたユーザからの指示に従って動作する。
実施例1-1と同様に、上記の主従関係は、要求元の機器10Fのアシスタント制御部22によって設定されてもよいし、要求先の機器10Aのアシスタント制御部22によって設定されてもよいし、サーバ等の外部装置に設けられたアシスタント制御部22によって設定されてもよい。
例えば、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、機器10Fのアシスタント制御部22は、アカウント制御情報を機器10Aに送信する。アカウント制御情報は、要求先の操作アシスタントA2にログイン中のアカウントβを操作アシスタントA2からログアウトさせることを指示する情報と、要求元のアカウントαを操作アシスタントA2にログインさせることを指示する情報とを含む。機器10Fのアシスタント制御部22は、そのアカウント制御情報を機器10Aに送信することで、操作アシスタントA2からアカウントβをログアウトさせ、アカウントαを操作アシスタントA2にログインさせる。こうすることで、操作アシスタントA2は、アカウントβに紐付けられたユーザ(機器10A)からの指示に従わず、アカウントαに紐付けられたユーザ(機器10F)からの指示に従って動作する。
別の例として、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントAにログイン中のアカウントαを示す情報を、機器10Aに送信する。機器10Aのアシスタント制御部22は、接続要求を示す情報とアカウントαを示す情報を機器10Fから受信すると、操作アシスタントA2からアカウントβをログアウトさせ、アカウントαを操作アシスタントA2にログインさせる。こうすることで、操作アシスタントA2は、アカウントβに紐付けられたユーザ(機器10A)からの指示に従わず、アカウントαに紐付けられたユーザ(機器10F)からの指示に従って動作する。
更に別の例として、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fは、機器10Fが要求元の機器であることを示す情報、機器10Aが要求先の機器であることを示す情報、及び、機器10F,10Aのそれぞれのアドレスを示す機器アドレス情報を、サーバ等の外部装置に送信する。外部装置のアシスタント制御部22は、これらの情報を受信すると、主操作アシスタントを示す情報を機器10Fに送信することで、操作アシスタントA1を主操作アシスタントとして設定する。また、外部装置のアシスタント制御部22は、機器10Fからアカウントαを示す情報を取得し、その情報を含むアカウント制御情報を機器10Aに送信することで、操作アシスタントA2からアカウントβをログアウトさせ、アカウントαを操作アシスタントA2にログインさせる。
実施例1-1と同様に、操作アシスタントA1と操作アシスタントA2との間に主従関係が形成されている間、操作アシスタントA1を介さずに、操作アシスタントA2に指示が与えられる場合がある。この場合、操作アシスタントA2は、操作アシスタントA1を介さずに操作アシスタントA2に与えられた指示(アカウントα以外のアカウントからの指示)に従って動作せずに、操作アシスタントA1(アカウントα)からの指示に従って動作する。この場合、主従関係が解消された後、操作アシスタントA2は、主従関係が形成されている間に操作アシスタントA1を介さずに操作アシスタントA2に与えられた指示に従って動作する。もちろん、主従関係が形成されている間であっても、操作アシスタントA1から操作アシスタントA2に対して指示が与えられていない間は、操作アシスタントA2は、操作アシスタントA1を介さずに操作アシスタントA2に与えられた指示に従って動作してもよい。
アカウントαが操作アシスタントA2からログアウトした場合、アシスタント制御部22は、上記の主従関係を解消する。例えば、機器10Aが、機器10Fからの指示に従った単独機能の実行を終了させ、アカウントαが操作アシスタントA2からログアウトした場合、アシスタント制御部22は、操作アシスタントA1と操作アシスタントA2との間の主従関係を解消する。別の例として、機器10Fと機器10Aとを用いる連携機能が設定されており、その連携機能の実行が終了して、アカウントαが操作アシスタントA2からログアウトした場合、アシスタント制御部22は、操作アシスタントA1と操作アシスタントA2との間の主従関係を解消する。詳しく説明すると、図7の(c)に示すように、アシスタント制御部22は、操作アシスタントA2からアカウントαをログアウトさせ、元のアカウントβを操作アシスタントA2にログインさせる。こうすることで、操作アシスタントA2は、アカウントαに紐付けられたユーザからの指示(操作アシスタントA1からの指示)に従って動作せずに、アカウントβに紐付けられたユーザからの指示に従って動作する。また、ユーザの指示に従ってアカウントαが操作アシスタントA2からログアウトした場合に、アシスタント制御部22は、アカウントβを操作アシスタントA2にログインさせることで、主従関係を解消してもよい。なお、実施例1-1と同様に、機器10F、機器10A又は外部装置に設けられているアシスタント制御部22による制御によって、上記の主従関係が解消される。
実施例1-2によれば、要求先の機器10に搭載されている操作アシスタントに対するアカウントのログイン及びログアウトを制御することで、要求先の機器10に搭載されている操作アシスタントが、要求元の機器10に搭載されている操作アシスタントからの指示に従って動作する。このように、操作アシスタント間に主従関係が形成されるので、機器10同士が接続された場合に、機器10が適切に制御される。
なお、主操作アシスタントとしての操作アシスタントA1から従操作アシスタントとしての操作アシスタントA2に与えられた指示を示す情報は、機器10Aに記憶されない。例えば、アカウントαが操作アシスタントA2からログアウトするときに、要求先の機器10Aのアシスタント制御部22が、その指示を示す情報を機器10Aから削除する。なお、要求元の機器10Fのアシスタント制御部22、又は、外部装置に設けられたアシスタント制御部22が、その指示を示す情報を機器10Aから削除してもよい。こうすることで、指示を示す情報が機器10Aから漏洩することが防止され、指示を示す情報のセキュリティが確保される。なお、機器10Fが機器10Aに接続したことを示す履歴情報は、機器10Aに記憶されてもよい。指示を示す情報の削除や、履歴情報の保存は、上記の実施例1-1にて行われてもよいし、下記の実施例にて行われてもよい。
実施例1-1と同様に、操作アシスタントと対話するための画面50が、機器10Fの表示部に表示されてもよい。
また、要求先のアカウントβに紐付けられたユーザの許可が得られた場合に、アシスタント制御部22は、操作アシスタントA2からアカウントβをログオフさせて、操作アシスタントA2にアカウントαをログインさせてもよい。その許可が得られない場合、アシスタント制御部22は、操作アシスタントA2へのアカウントβのログインを維持し、操作アシスタントA2にアカウントαをログインさせない。こうすることで、アカウントβに紐付けられたユーザの意図しないところで、アカウントβが操作アシスタントA2からログオフされて、操作アシスタントA2が従操作アシスタントとして設定されることが防止される。
(実施例1-3)
図8を参照して、実施例1-3に係る処理について説明する。図8は、機器10の一例を示す。実施例1-3では、実施例1-1と同様に、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
図8の(a)に示すように、機器10Fには、操作アシスタントA1が搭載されている。機器10Aには、操作アシスタントA2が搭載されている。機器10Fに搭載されている操作アシスタントA1には、アカウントαに紐付けられたユーザがログインしている。機器10Aに搭載されている操作アシスタントA2には、アカウントβに紐付けられたユーザがログインしている。
機器10Fが第1機器の一例に相当し、機器10Aが第2機器の一例に相当する。また、操作アシスタントA1が第1操作アシスタントの一例に相当し、操作アシスタントA2が第2操作アシスタントの一例に相当する。また、アカウントαが第1アカウントの一例に相当し、アカウントβが第2アカウントの一例に相当する。
機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、図8の(b)に示すように、アシスタント制御部22は、機器10Aにて動作する操作アシスタントを、操作アシスタントA2から、機器10Fに搭載されている操作アシスタントA1に切り替える。こうすることで、アシスタント制御部22は、機器10Aに動作する操作アシスタントを、機器10Fからの指示に従って動作する従操作アシスタントとして設定する。
例えば、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA2の起動を終了させ(操作アシスタントA2をオフ状態に設定し)、機器10Aにて操作アシスタントA1を起動させ(操作アシスタントA1をオン状態に設定し)、その操作アシスタントA1を従操作アシスタントとして設定する。例えば、機器10Aでは、操作アシスタントA2の操作アシスタントプログラムが実行中であり、アシスタント制御部22は、その操作アシスタントプログラムを終了させることで、操作アシスタントA2の起動を終了させる。また、アシスタント制御部22は、機器10Aにて、操作アシスタントA1の操作アシスタントプログラムを実行することで、操作アシスタントA1を起動させる。また、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。従操作アシスタントとしての操作アシスタントA1は、主操作アシスタントとしての操作アシスタントA1からの指示に従って動作する。
操作アシスタントA1の操作アシスタントプログラムが機器10Aにインストールされている場合、アシスタント制御部22は、その操作アシスタントプログラムを実行する。その操作アシスタントプログラムが機器10Aにインストールされていない場合、アシスタント制御部22は、その操作アシスタントプログラムをサーバ等の外部装置からダウンロードして機器10Aにインストールし、その操作アシスタントプログラムを実行する。
また、アシスタント制御部22は、機器10Fにて主操作アシスタントとしての操作アシスタントA1にログインしているアカウントαを、機器10Aにて従操作アシスタントとして動作する操作アシスタントA1にログインさせる。こうすることで、従操作アシスタントとしての操作アシスタントA1は、アカウントαに紐付けられたユーザからの指示に従って動作する。操作アシスタントA2の起動が終了させられた場合、アカウントβは操作アシスタントA2から自動的にログアウトさせられる。
実施例1-1と同様に、上記の主従関係は、要求元の機器10Fのアシスタント制御部22によって設定されてもよいし、要求先の機器10Aのアシスタント制御部22によって設定されてもよいし、サーバ等の外部装置に設けられたアシスタント制御部22によって設定されてもよい。
例えば、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、機器10Fのアシスタント制御部22は、アシスタント制御情報を機器10Aに送信する。アシスタント制御情報は、操作アシスタントの切り替えの指示を示す情報であり、具体的には、機器10Aにて動作する操作アシスタントを、機器10Fに搭載されている操作アシスタントA1に切り替えることを指示する情報である。機器10Fのアシスタント制御部22は、そのアシスタント制御情報を機器10Aに送信することで、機器10Aにて動作する操作アシスタントを操作アシスタントA2から操作アシスタントA1に切り替える。
別の例として、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を示す情報を、機器10Aに送信する。機器10Aのアシスタント制御部22は、接続要求を示す情報と操作アシスタントA1を示す情報を機器10Fから受信すると、機器10Aにて動作する操作アシスタントを操作アシスタントA2から操作アシスタントA1に切り替える。
更に別の例として、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fは、機器10Fが要求元の機器であることを示す情報、機器10Aが要求先の機器であることを示す情報、及び、機器10F,10Aのそれぞれのアドレスを示す機器アドレス情報を、サーバ等の外部装置に送信する。外部装置のアシスタント制御部22は、これらの情報を受信すると、主操作アシスタントを示す情報を機器10Fに送信することで、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、外部装置のアシスタント制御部22は、機器10Fから操作アシスタントA1を示す情報を取得し、その情報を機器10Aに送信することで、機器10Aにて動作する操作アシスタントを操作アシスタントA2から操作アシスタントA1に切り替える。
実施例1-1と同様に、上記の主従関係が形成されている間、主操作アシスタントとしての操作アシスタントA1を介さずに、従操作アシスタントとしての操作アシスタントA1に指示が与えられる場合がある。この場合、従操作アシスタントとしての操作アシスタントA1は、主操作アシスタントとしての操作アシスタントA1を介さずに与えられた指示に従って動作せずに、主操作アシスタントとしての操作アシスタントA1からの指示に従って動作する。この場合、主従関係が解消された後、操作アシスタントA2は、主従関係が形成されている間に主操作アシスタントを介さずに与えられた指示に従って動作する。もちろん、主従関係が形成されている間であっても、主操作アシスタントから従操作アシスタントに対して指示が与えられていない間は、従操作アシスタントは、主操作アシスタントを介さずに従操作アシスタントに与えられた指示に従って動作してもよい。
従操作アシスタントとしての操作アシスタントA1が、主操作アシスタントとしての操作アシスタントA1からの指示に従った作業を終了された場合、アシスタント制御部22は、上記の主従関係を解消する。例えば、例えば、機器10Aが、機器10Fからの指示に従った単独機能の実行を終了させた場合、アシスタント制御部22は、操作アシスタントA1と操作アシスタントA2との間の主従関係を解消する。別の例として、機器10Fと機器10Aとを用いる連携機能が設定されており、その連携機能の実行が終了した場合、アシスタント制御部22は、主従関係を解消する。詳しく説明すると、図8の(c)に示すように、主従関係が解消された後、アシスタント制御部22は、機器10Aにて動作する操作アシスタントを、操作アシスタントA1から元の操作アシスタントA2に切り替える。例えば、アシスタント制御部22は、機器10Aにて、操作アシスタントA1の操作アシスタントプログラムの実行を終了させ、操作アシスタントA2の操作アシスタントプログラムを実行する。また、アシスタント制御部22は、元のアカウントβを操作アシスタントA2にログインさせる。こうすることで、機器10Aでは、操作アシスタントA1の動作が停止し、操作アシスタントA2が動作する。操作アシスタントA2は、操作アシスタントA1からの指示か否かにかかわらず、操作アシスタントA2に与えられた指示に従って動作する。なお、実施例1-1と同様に、機器10F、機器10A又は外部装置に設けられているアシスタント制御部22によって、上記の主従関係が解消される。
実施例1-3によれば、要求先の機器10にて動作する操作アシスタントを、要求元の機器10にて動作する操作アシスタントに切り替えることで、要求先の機器10に搭載されている操作アシスタントが、要求元の機器10に搭載されている操作アシスタントからの指示に従って動作する。このように、操作アシスタント間に主従関係が形成されるので、機器10同士が接続された場合に、機器10が適切に制御される。
実施例1-1と同様に、操作アシスタントと対話するための画面50が、機器10Fの表示部に表示されてもよい。
また、要求先のアカウントβに紐付けられたユーザの許可が得られた場合に、アシスタント制御部22は、要求先の機器10Aにて動作する操作アシスタントを操作アシスタントA2から操作アシスタントA1に切り替えてもよい。その許可が得られない場合、アシスタント制御部22は、機器10Aにて動作する操作アシスタントを切り替えない。こうすることで、アカウントβに紐付けられたユーザの意図しないところで、機器10Aにて動作する操作アシスタントが操作アシスタントA2から別の操作アシスタントに切り替えられることが防止される。
(実施例1-4)
図9を参照して、実施例1-4に係る処理について説明する。図9は、機器10の一例を示す。実施例1-4では、実施例1-1と同様に、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
機器10Fには、操作アシスタントA1が搭載されている。機器10Aには、操作アシスタントA2が搭載されている。
機器10Fが第1機器の一例に相当し、機器10Aが第2機器の一例に相当する。また、操作アシスタントA1が第1操作アシスタントの一例に相当し、操作アシスタントA2が第2操作アシスタントの一例に相当する。
機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、アシスタント制御部22は、第3操作アシスタントとしての標準操作アシスタントAsによって、機器10Aに搭載されている操作アシスタントA2を制御することで、操作アシスタントA2を従操作アシスタントとして動作させる。また、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。標準操作アシスタントAsは、例えば、複数の種類の操作アシスタントと対話し、複数の種類の操作アシスタントを制御する機能を有する。例えば、標準操作アシスタントAsは、操作アシスタントA1,A2との間でメッセージをやり取りし、操作アシスタントA1,A2を制御する。標準操作アシスタントAsは、複数の操作アシスタントを個別的に制御してもよいし、複数の操作アシスタントを連携させて複数の操作アシスタントを横断的に制御してもよい。
標準操作アシスタントAsは、複数の種類の操作アシスタントが共通して有する機能を有していてもよい。この場合、標準操作アシスタントAsは、複数の種類の操作アシスタントが共通して有していない機能を有していてもよいし、その機能を有していなくてもよい。例えば、標準操作アシスタントAsは、操作アシスタントA1,A2が共通して有する機能を有し、操作アシスタントA1,A2が共通して有していない機能を有していない。
標準操作アシスタントAsは、複数の種類の操作アシスタントと対話可能であればよいため、標準操作アシスタントAsは、標準操作アシスタント以外の操作アシスタントよりも性能の低い機能を有する操作アシスタントであってもよい。
例えば、標準操作アシスタントAsは、主操作アシスタントとしての操作アシスタントA1からの指示を受け、その指示に従って、従操作アシスタントとしての操作アシスタントA2を制御する。こうすることで、操作アシスタントA2は、標準操作アシスタントAsを介して、操作アシスタントA1からの指示に従って動作する。
標準操作アシスタントAsは、要求元の機器10Fに搭載されていてもよいし、要求先の機器10Aに搭載されていてもよいし、サーバ等の外部装置に搭載されていてもよい。図9に示す例では、外部装置64に標準操作アシスタントAsが搭載されている。つまり、標準操作アシスタントAsの操作アシスタントプログラムが、外部装置64に記憶されており、そのプログラムが実行されることで、外部装置64にて標準操作アシスタントAsが動作する。
実施例1-1と同様に、上記の主従関係は、要求元の機器10Fのアシスタント制御部22によって設定されてもよいし、要求先の機器10Aのアシスタント制御部22によって設定されてもよいし、サーバ等の外部装置(例えば外部装置64)に設けられたアシスタント制御部22によって設定されてもよい。
例えば、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、機器10Fのアシスタント制御部22は、制御依頼情報を外部装置64に送信する。制御依頼情報は、標準操作アシスタントによる制御を外部装置64に依頼するための情報であり、要求先の機器10Aのアドレスを示す機器アドレス情報を含む情報である。機器10Fのアシスタント制御部22は、制御依頼情報を外部装置64に送信することで、外部装置64に搭載されている標準操作アシスタントAsを起動させ、その標準操作アシスタントAsに、要求先の機器10Aに搭載されている操作アシスタントA2を制御させる。機器10Fに搭載されている操作アシスタントA1は、指示を示す情報を標準操作アシスタントAsに送信する。標準操作アシスタントAsは、その指示に従って、操作アシスタントA2を制御する。つまり、操作アシスタントA2は、標準操作アシスタントAsを介して操作アシスタントA1から与えられる指示に従って動作する。このようにして、操作アシスタントA2は、従操作アシスタントとして動作する。
別の例として、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。機器10Aのアシスタント制御部22は、接続要求を示す情報を機器10Fから受信すると、上記の制御依頼情報を外部装置64に送信することで、外部装置64に搭載されている標準操作アシスタントAsを起動させ、その標準操作アシスタントAsに、機器10Aに搭載されている操作アシスタントA2を制御させる。操作アシスタントA2は、標準操作アシスタントAsを介して操作アシスタントA1から与えられた指示に従って動作する。このようにして、操作アシスタントA2は、従操作アシスタントとして動作する。
更に別の例として、機器10Fが機器10Aに接続要求を示す情報を送信した場合、機器10Fは、機器10Fが要求元の機器であることを示す情報、機器10Aが要求先の機器であることを示す情報、及び、機器10F,10Aのそれぞれのアドレスを示す機器アドレス情報を、外部装置64に送信する。外部装置64のアシスタント制御部22は、これらの情報を受信すると、主操作アシスタントを示す情報を機器10Fに送信することで、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。また、外部装置64のアシスタント制御部22は、外部装置64に搭載されている標準操作アシスタントAsを起動させ、その標準操作アシスタントAsに、機器10Aに搭載されている操作アシスタントA2を制御させる。操作アシスタントA2は、標準操作アシスタントAsを介して操作アシスタントA1から与えられた指示に従って動作する。このようにして、操作アシスタントA2は、従操作アシスタントとして動作する。
実施例1-1と同様に、上記の主従関係が形成されている間、標準操作アシスタントAsを介さずに、従操作アシスタントとしての操作アシスタントA2に指示が与えられる場合がある。この場合、操作アシスタントA2は、標準操作アシスタントAsを介さずに与えられた指示に従って動作せずに、標準操作アシスタントAsを介して操作アシスタントA1から与えられた指示に従って動作する。この場合、主従関係が解消された後、操作アシスタントA2は、主従関係が形成されている間に標準操作アシスタントAsを介さずに与えられた指示に従って動作する。もちろん、主従関係が形成されている間であっても、標準操作アシスタントAsから操作アシスタントA2に対して指示が与えられていない間は、操作アシスタントA2は、標準操作アシスタントAsを介さずに操作アシスタントA2に与えられた指示に従って動作してもよい。
従操作アシスタントとしての操作アシスタントA2が、主操作アシスタントとしての操作アシスタントA1からの指示に従った作業を終了された場合、アシスタント制御部22は、上記の主従関係を解消する。例えば、機器10Aが、機器10Fからの指示に従った単独機能の実行を終了させた場合、アシスタント制御部22は、操作アシスタントA1と操作アシスタントA2との間の主従関係を解消する。別の例として、機器10Fと機器10Aとを用いる連携機能が設定されており、その連携機能の実行が終了した場合、アシスタント制御部22は、主従関係を解消する。これにより、操作アシスタントA2は、標準操作アシスタントAsを介した操作アシスタントA1からの指示か否かにかかわらず、操作アシスタントA2に与えられた指示に従って動作する。なお、実施例1-1と同様に、機器10F、機器10A又は外部装置64に設けられているアシスタント制御部22によって、上記の主従関係が解消される。
実施例1-4によれば、標準操作アシスタントを介して、要求先の機器10に搭載されている操作アシスタントが制御されるので、機器10同士が接続された場合に、機器10が適切に制御される。
なお、アシスタント制御部22は、要求元の機器10に搭載されている操作アシスタントを標準操作アシスタントによって制御してもよい。図9に示す例では、要求元の機器10Fに搭載されている操作アシスタントA1は、外部装置64に搭載されている標準操作アシスタントAsからの指示に従って動作する。例えば、ユーザが機器10Fを用いて操作アシスタントに指示を与えた場合、その指示を示す情報が、機器10Fから外部装置64に送信される。標準操作アシスタントAsは、その指示を示す情報を受けると、その指示に従って、操作アシスタントA1,A2を制御する。また、機器10Fと機器10Aとを用いる連携機能の実行が終了した場合、アシスタント制御部22は、操作アシスタントA1と標準操作アシスタントAsとの間の主従関係を解消する。これにより、操作アシスタントA1は、標準操作アシスタントAsを介して与えられた指示か否かにかかわらず、操作アシスタントA1に与えられた指示に従って動作する。
また、実施例1-3と同様に、アシスタント制御部22は、要求先の機器10Aにて動作する操作アシスタントを、操作アシスタントA2から標準操作アシスタントAsに切り替えてもよい。標準操作アシスタントAsの操作アシスタントプログラムが機器10Aにインストールされている場合、アシスタント制御部22は、機器10Aにて当該操作アシスタントプログラムを実行することで、機器10Aにて標準操作アシスタントAsを起動させる。また、アシスタント制御部22は、機器10Aにて、操作アシスタントA2の操作アシスタントプログラムの実行を終了させる。当該操作アシスタントプログラムが機器10Aにインストールされていない場合、アシスタント制御部22は、当該操作アシスタントプログラムを機器10Aにダウンロードして当該操作アシスタントプログラムをする。機器10Aに搭載されている標準操作アシスタントAsは、例えば、外部装置64に搭載されている標準操作アシスタントAsを介して操作アシスタントA1から与えられた指示に従って動作する。機器10Aに搭載されている標準操作アシスタントAsは、外部装置64に搭載されている標準操作アシスタントAsを介さずに操作アシスタントA1から与えられた指示に従って動作してもよい。連携機能の実行が終了した場合、アシスタント制御部22は、機器10Aにて動作する操作アシスタントを、標準操作アシスタントAsから元の操作アシスタントA2に切り替える。
また、アシスタント制御部22は、要求元の機器10Fにて動作する操作アシスタントを、操作アシスタントA1から標準操作アシスタントAsに切り替えてもよい。機器10Fに搭載された標準操作アシスタントAsは、外部装置64に搭載されている標準操作アシスタントAsを介して、又は、外部装置64に搭載されている標準操作アシスタントAsを介さずに、機器10Aにて動作する操作アシスタント(操作アシスタントA2又は標準操作アシスタントAs)に指示を与える。連携機能の実行が終了した場合、アシスタント制御部22は、機器10Fにて動作する操作アシスタントを、標準操作アシスタントAsから元の操作アシスタントA1に切り替える。
以下、図10を参照して、主従関係が形成されている期間中の画面について説明する。図10は、その画面の一例を示す。画面50は、要求元の機器10Fに表示される画面である。
機器10Fの制御部20は、UI部14の表示部に画面50を表示させる。画面50は、ユーザと標準操作アシスタントAsとの間でメッセージをやり取りするためのユーザインターフェースである。例えば、機器10Fにて動作する操作アシスタントが、操作アシスタントA1から標準操作アシスタントAsに切り替えられた場合に、画面50上にて、ユーザと標準操作アシスタントAsとの間でメッセージがやり取りされる。画面50において、操作アシスタント用の表示エリアには、標準操作アシスタントAsに紐付けられた画像66が表示され、標準操作アシスタントAsの発言内容68が画像66に紐付けられて表示される。また、ユーザ用の表示エリアには、ユーザに紐付けられた画像54が表示される。
画面50上にて、ユーザと標準操作アシスタントAsとの間で対話が行われる。例えば、ユーザが、画面50上にて、標準操作アシスタントAsに対して、機器10F,10Aを用いる連携機能の実行を指示した場合、標準操作アシスタントAsは、その連携機能の実行を制御する。例えば、標準操作アシスタントAsは、機器10F,10Aを制御することで、連携機能を機器10F,10Aに実行させる。
なお、機器10Fにて動作する操作アシスタントが、操作アシスタントA1から標準操作アシスタントAsに切り替えられない場合であっても、標準操作アシスタントAsに紐付けられた画像66が画面50に表示されてもよい。画像66が画面50に表示されても、ユーザと対話する対話相手は、操作アシスタントA1であってもよい。もちろん、実際にユーザと対話する操作アシスタントA1に紐付けられた画像が、画面50に表示され、画像66は画面50に表示されなくてもよい。
また、要求先のアカウントβに紐付けられたユーザの許可が得られた場合に、アシスタント制御部22は、操作アシスタントA2を従操作アシスタントとして設定してもよい。その許可が得られない場合、アシスタント制御部22は、操作アシスタントA2を従操作アシスタントとして設定しない。こうすることで、要求先のアカウントβに紐付けられたユーザの意図しないところで、要求先の操作アシスタントが従操作アシスタントとして設定されることが防止される。
制御部20は、画面50上に、ユーザの直接の会話相手(操作アシスタント)に紐付けられた画像を表示させてもよいし、直接の会話相手以外の操作アシスタントに紐付けられた画像を表示させてもよい。例えば、標準操作アシスタントAsが直接の会話相手である場合、制御部20は、図10に示すように、標準操作アシスタントAsに紐付けられた画像66を画面50に表示させてもよいし、機器10Fに搭載されている操作アシスタントA1に紐付けられた画像を画面50に表示させてもよい。標準操作アシスタントAsが直接の会話相手である場合、ユーザが実際にメッセージをやり取りしている操作アシスタントは標準操作アシスタントAsではあるが、操作アシスタントA1に紐付けられた画像が表示されてもよい。この場合、あたかも操作アシスタントA1とユーザとの間でメッセージのやり取りが行われているような印象が、ユーザに与えられる。また、要求先の機器10の表示部に、ユーザと操作アシスタントとの間でメッセージをやり取りするための画面が表示されてもよい。この場合、要求先の機器10に搭載されている操作アシスタントに紐付けられた画像が、ユーザの会話相手の画像として表示されてもよいし、標準操作アシスタントAsに紐付けられ画像が、その会話相手の画像として表示されてもよい。
なお、要求元の機器10Fから複数の操作指示を示す情報が外部装置64に送信され、外部装置64に、複数の操作指示を示す情報が記憶されてもよい。つまり、外部装置64に搭載されている標準操作アシスタントAsに、複数の操作指示が与えられてもよい。この場合、標準操作アシスタントAsは、各操作指示を、操作対象の機器10に送信する。
(実施例1-5)
図11を参照して、実施例1-5に係る処理について説明する。図11は、機器10の一例を示す。実施例1-5では、実施例1-1と同様に、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
実施例1-5では、機器10に複数の操作アシスタントが搭載されている。他の機器10の関係に基づいて、当該複数の操作アシスタントの中から、動作する操作アシスタントが選択されてもよい。また、実行対象の機能(単独機能や連携機能)に基づいて、当該複数の操作アシスタントの中から、動作する操作アシスタントが選択されてもよい。
同一の機器10に搭載されている複数の操作アシスタントは、例えば、互いに異なる種類の操作アシスタントである。例えば、当該複数の操作アシスタントは、互いに異なる人工知能(AI)を有する操作アシスタントである。別の例として、当該複数の操作アシスタントが互いに同じ種類の操作アシスタントであっても(例えば互いに同じ種類のAIを有していても)、互いのバージョンが異なる場合や、制御可能な機能や機器が互いに異なる場合や、利用可能なユーザが互いに異なる場合や、ログインしているユーザアカウントが互いに異なる場合には、当該複数の操作アシスタントは互いに異なる操作アシスタントとして扱われてもよい。
以下、実施例1-5について詳しく説明する。図11に示すように、機器10Fには、操作アシスタントA1が搭載されている。機器10Aには、操作アシスタントA4,A5が搭載されている。このように、機器10Aには、複数の操作アシスタントが搭載されている。
例えば、操作アシスタント毎に、操作アシスタントが制御可能な機能、操作アシスタントが制御可能な機器、及び、操作アシスタントが制御可能な機器の数、等が予め定められている。例えば、図12に示すように、操作アシスタントA4は、スキャン機能、プリント機能及びコピー機能等の画像形成機能を制御することが可能であり、また、複合機としての機器10H,10Kを制御することが可能である。操作アシスタントA5は、撮影機能を制御することが可能であり、また、カメラとしての機器10Cを制御することが可能である。
機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA4,A5の中から、実行対象の機能を制御可能な操作アシスタントを、従操作アシスタントとして選択する。例えば、単独機能としての画像形成機能の実行や、画像形成機能を用いた連携機能の実行が、ユーザによって指示されている場合、アシスタント制御部22は、画像形成機能の実行が可能な操作アシスタントA4を従操作アシスタントとして選択する。また、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。操作アシスタントA1は、従操作アシスタントとしての操作アシスタントA4との間で情報をやり取りすることで、指示された機能の実行を制御する。例えば、アシスタント制御部22は、操作アシスタントA4の操作アシスタントプログラムを実行することで操作アシスタントA4を起動させ、操作アシスタントA4を従操作アシスタントとして設定し、操作アシスタントA5の操作アシスタントプログラムの実行を終了させることで操作アシスタントA5を停止させる。
操作アシスタントA4,A5の何れもが、実行対象の機能を制御することが可能な場合、アシスタント制御部22は、操作アシスタントA4,A5の何れか一方を従操作アシスタントとしてランダムに選択してもよいし、制御可能な機器や機能の数が多い操作アシスタントを従操作アシスタントとして選択してもよいし、負荷の少ない操作アシスタントを従操作アシスタントとして選択してもよいし、処理を実行していない操作アシスタントを従操作アシスタントとして選択してもよい。
機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA4,A5の中から、制御可能な機器の数に基づいて、従操作アシスタントを選択してもよい。例えば、アシスタント制御部22は、制御可能な機器の数が最も多い操作アシスタントを、従操作アシスタントとして選択する。例えば、操作アシスタントA4は、2つの機器10を制御することが可能であり、操作アシスタントA5は、1つの機器10を制御することが可能である。この場合、アシスタント制御部22は、操作アシスタントA4を従操作アシスタントとして選択する。操作アシスタントA1は、従操作アシスタントとしての操作アシスタントA4との間で情報をやり取りすることで、指示された機能の実行を制御する。
操作アシスタントA4,A5のそれぞれによって制御可能な機器の数が同一である場合、アシスタント制御部22は、操作アシスタントA4,A5の何れか一方を従操作アシスタントとしてランダムに選択してもよいし、制御可能な機能の数が多い操作アシスタントを従操作アシスタントとして選択してもよいし、負荷の少ない操作アシスタントを従操作アシスタントとして選択してもよいし、処理を実行していない操作アシスタントを従操作アシスタントとして選択してもよい。
更に別の例として、機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA4,A5の中から、制御可能な機能の数に基づいて、従操作アシスタントを選択してもよい。例えば、アシスタント制御部22は、制御可能な機能の数が最も多い操作アシスタントを、従操作アシスタントとして選択する。
操作アシスタントA4,A5のそれぞれによって制御可能な機能の数が同一である場合、アシスタント制御部22は、操作アシスタントA4,A5の何れか一方を従操作アシスタントとしてランダムに選択してもよいし、制御可能な機器の数が多い操作アシスタントを従操作アシスタントとして選択してもよいし、負荷の少ない操作アシスタントを従操作アシスタントとして選択してもよいし、処理を実行していない操作アシスタントを従操作アシスタントとして選択してもよい。
なお、要求先の操作アシスタントA4,A5にログインしているユーザアカウントに紐付けられたユーザの許可が得られた場合に、アシスタント制御部22は、従操作アシスタントを選択してもよい。その許可が得られない場合、アシスタント制御部22は、従操作アシスタントを選択しない。
図11に示す例では、要求先の機器10Aに複数の操作アシスタントが搭載されているが、要求元の機器10Fに複数の操作アシスタントが搭載されていてもよい。例えば、図13に示すように、要求元の機器10Fに、操作アシスタントA1,A6が搭載されている。要求先の機器10Aには、操作アシスタントA2が搭載されている。
機器10Fが機器10Aに対して接続要求を示す情報を送信した場合、上述した実施例と同様に、機器10Aに搭載されている操作アシスタントA2は従操作アシスタントとして設定される。また、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から主操作アシスタントを選択してもよい。
例えば、アシスタント制御部22は、実行対象の機能(単独機能や連携機能)を制御可能な操作アシスタントを主操作アシスタントとして選択してもよい。具体例を挙げて説明する。単独機能としての画像形成機能の実行や、画像形成機能を用いた連携機能の実行が、ユーザによって指示されている場合、アシスタント制御部22は、操作アシスタントA1,A6の中から、画像形成機能を制御することが可能な操作アシスタントを主操作アシスタントとして選択する。操作アシスタントA1が、画像形成機能を制御することが可能であり、操作アシスタントA6が、画像形成機能を制御することができない場合、アシスタント制御部22は、操作アシスタントA1を主操作アシスタントとして選択する。この場合、操作アシスタントA1は、操作アシスタントA2との間で情報をやり取りすることで、指示された機能の実行を制御する。例えば、アシスタント制御部22は、操作アシスタントA1の操作アシスタントプログラムを実行することで操作アシスタントA1を起動させ、操作アシスタントA1を主操作アシスタントとして設定し、操作アシスタントA6の操作アシスタントプログラムを終了させることで操作アシスタントA6を停止させる。
操作アシスタントA1,A6の何れもが、実行対象の機能を制御することが可能である場合、アシスタント制御部22は、操作アシスタントA1,A6の何れか一方を主操作アシスタントとしてランダムに選択してもよいし、制御可能な機器や機能の数が多い操作アシスタントを主操作アシスタントとして選択してもよいし、負荷の少ない操作アシスタントを主操作アシスタントとして選択してもよいし、処理を実行していない操作アシスタントを主操作アシスタントとして選択してもよい。
別の例として、アシスタント制御部22は、制御可能な機器の数に基づいて、主操作アシスタントを選択してもよい。例えば、アシスタント制御部22は、制御可能な機器の数が最も多い操作アシスタントを、主操作アシスタントとして選択する。操作アシスタントA1が、操作アシスタントA6よりも多くの機器を制御することができる場合、アシスタント制御部22は、操作アシスタントA1を主操作アシスタントとして選択する。この場合、操作アシスタントA1は、操作アシスタントA2との間で情報をやり取りすることで、指示された機能の実行を制御する。
操作アシスタントA1,A6のそれぞれによって制御可能な機器の数が同一である場合、アシスタント制御部22は、操作アシスタントA1,A6の何れか一方を主操作アシスタントとしてランダムに選択してもよいし、制御可能な機能の数が多い操作アシスタントを主操作アシスタントとして選択してもよいし、負荷の少ない操作アシスタントを主操作アシスタントとして選択してもよいし、処理を実行していない操作アシスタントを主操作アシスタントとして選択してもよい。
更に別の例として、アシスタント制御部22は、制御可能な機能の数に基づいて、主操作アシスタントを選択してもよい。例えば、アシスタント制御部22は、制御可能な機能の数が最も多い操作アシスタントを、主操作アシスタントとして選択する。
操作アシスタントA1,A6のそれぞれによって制御可能な機能の数が同一である場合、アシスタント制御部22は、操作アシスタントA1,A6の何れか一方を主操作アシスタントとしてランダムに選択してもよいし、制御可能な機器の数が多い操作アシスタントを主操作アシスタントとして選択してもよいし、負荷の少ない操作アシスタントを主操作アシスタントとして選択してもよいし、処理を実行していない操作アシスタントを主操作アシスタントとして選択してもよい。
また、図14に示すように、外部装置64に、複数の標準操作アシスタントが搭載されてもよい。図14に示す例では、標準操作アシスタントAsa,Asbが外部装置64に搭載されている。従操作アシスタントや主操作アシスタントの選択と同様に、アシスタント制御部22は、制御可能な機器、制御可能な機器の数、制御可能な機能、又は、制御可能な機能の数に基づいて、標準操作アシスタントAsa,Asbの中から、従操作アシスタントを制御する標準操作アシスタントを選択する。
従操作アシスタントの選択、主操作アシスタントの選択、及び、標準操作アシスタントの選択は、機器10Fのアシスタント制御部22によって行われてもよいし、機器10Aのアシスタント制御部22によって行われてもよいし、サーバ等の外部装置のアシスタント制御部22によって行われてもよい。また、図12に示されている情報は、各機器10に記憶されていてもよいし、サーバ等の外部装置に記憶されていてもよい。
なお、情報処理システムに含まれる全ての機器10が、複数の操作アシスタントを搭載してもよいし、情報処理システムに含まれる一部の機器10が、複数の操作アシスタントを搭載し、その一部以外の機器10が、1つの操作アシスタントを搭載してもよい。例えば、スマートフォンやスマートスピーカ等の機器10が、複数の操作アシスタントを搭載し、センサや家電等の機器10が、1つの操作アシスタント(当該機器10に固有の操作アシスタント)を搭載してもよい。
実施例1-5によれば、機器10に複数の操作アシスタントが搭載されている場合であっても、複数の操作アシスタントの間の主従関係が適切に設定されて、機能が実行される。
(実施例1-6)
図15を参照して、実施例1-6に係る処理について説明する。図15は、機器10の一例を示す。
例えば、機器10Fには、操作アシスタントA1が搭載されている。機器10Aには、操作アシスタントA2が搭載されている。機器10Dには、操作アシスタントA7が搭載されている。
図15の(a)に示すように、機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、機器10Fに搭載されている操作アシスタントA1は、主操作アシスタントとして動作し、機器10Aに搭載されている操作アシスタントA2は、縦操作アシスタントとして動作する。例えば、図15の(b)に示すように、機器10Aにて動作する操作アシスタントは、操作アシスタントA2から操作アシスタントA1に切り替えられる。もちろん、機器10Aにて動作する操作アシスタント自体が切り替えられずに、上記の実施例1-1,1-2と同様の処理が行われてもよい。
更に、機器10Aから機器10Dに対して接続要求を示す情報が送信された場合、機器10Dに搭載されている操作アシスタントA7は、機器10Aにて動作する操作アシスタント(例えば切り替え後の操作アシスタントA1)を主操作アシスタントとして認識する従操作アシスタントとして動作する。例えば、図15の(b)に示すように、機器10Dにて動作する操作アシスタントは、操作アシスタントA6から操作アシスタントA1に切り替えられる。
以上のように、3つ以上の機器10が接続される場合には、接続要求を示す情報を受信した機器10に搭載されている操作アシスタントが、連鎖的に従操作アシスタントに設定される。このようにして、各機器10が適切に制御される。
(実施例1-7)
図16を参照して、実施例1-7に係る処理について説明する。図16は、機器10の一例を示す。実施例1-7では、実施例1-1と同様に、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
図16の(a)に示すように、要求先の機器10Aに複数の操作アシスタントが搭載されている。例えば、操作アシスタントA4,A5が機器10Aに搭載されている。要求元の機器10Fには、操作アシスタントA1が搭載されている。また、機器10Aには、一例として、第3機器としての機器10S,10Tが接続されている。機器10Sは、撮影機能を有するカメラであり、機器10Tは、PCである。
例えば、機器10Sは、操作アシスタントA5に対応した機器である。つまり、機器10Sは、操作アシスタントA5によって制御可能な機器である。機器10Tは、操作アシスタントA4に対応した機器である。つまり、機器10Tは、操作アシスタントA4によって制御可能な機器である。このように、機器毎に対応可能な操作アシスタントが設定されている。なお、機器10S,10Tには、操作アシスタントが搭載されていてもよいし、操作アシスタントが搭載されていなくてもよい。
機器に対応可能な操作アシスタントは、操作アシスタントの種類毎に定められてもよいし、ユーザアカウント毎に定められてもよい。例えば、操作アシスタントA5と同一種類の操作アシスタントは、操作アシスタントA5と同様に機器10Sを制御することができてもよいし、操作アシスタントA5と同一種類の操作アシスタントであっても、操作アシスタントA5とは異なるユーザアカウントが利用する操作アシスタントは、機器10Sを制御することができなくてもよい。また、操作アシスタントのバージョンによって、機器への対応の可否が定められてもよい。操作アシスタントA4についても同様である。
機器10Fから機器10Aに対して接続要求を示す情報が送信された場合、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA4,A5の中から、第3機器を制御可能な操作アシスタントを、従操作アシスタントとして選択する。例えば、利用される第3機器として機器10Sがユーザによって指定されている場合や、機器10Sが有する機能(例えば撮影機能)がユーザによって指定されている場合、アシスタント制御部22は、機器10Sを制御可能な操作アシスタントA5を従操作アシスタントとして選択する。
例えば、操作アシスタントA4が機器10Aにて動作している場合、アシスタント制御部22は、機器10Aにて動作する操作アシスタントを、操作アシスタントA4から操作アシスタントA5に切り替える。図16の(a)に示す例では、操作アシスタントA4が起動しており、操作アシスタントA5が起動していない。起動中の操作アシスタントA4は実線で示されており、起動していない操作アシスタントA5は破線で示されている。例えば、操作アシスタントA4の操作アシスタントプログラムが実行されて操作アシスタントA4が起動しており、操作アシスタントA5の操作アシスタントプログラムが実行されておらず操作アシスタントA5は起動していない。
この状態で、上記のように、操作アシスタントA5が従操作アシスタントとして選択された場合、図16の(b)に示すように、アシスタント制御部22は、操作アシスタントA4の起動を終了させ、操作アシスタントA5を起動させる。図16の(b)では、起動中の操作アシスタントA5は実線で示されており、起動していない操作アシスタントA4は破線で示されている。例えば、操作アシスタントA5の操作アシスタントプログラムが実行されて操作アシスタントA5が起動しており、操作アシスタントA4の操作アシスタントプログラムの実行が終了されて操作アシスタントA4は停止している。
従操作アシスタントとしての操作アシスタントA5は、主操作アシスタントからの指示に従って動作する。上記の例では、操作アシスタントA5は機器10Sを制御する。例えば、操作アシスタントA5は、機器10Sによる撮影によって生成された画像データを機器10Sから取得し、要求元の機器10Fにその画像データを送信する。
主操作アシスタントは、機器10Fに搭載されている操作アシスタントA1であってもよいし、外部装置に搭載されている別の操作アシスタントであってもよい。
操作アシスタントA4,A5の何れもが、機器10Sを制御することが可能な場合、アシスタント制御部22は、操作アシスタントA4,A5の何れか一方を従操作アシスタントとして選択してもよいし、制御可能な機器や機能の数が多い操作アシスタントを従操作アシスタントとして選択してもよいし、負荷の少ない操作アシスタントを従操作アシスタントとして選択してもよいし、処理を実行していない操作アシスタントを従操作アシスタントとして選択してもよい。また、実施例1-5と同様の基準に従って、従操作アシスタントが選択されてもよい。
従操作アシスタントの選択及び主操作アシスタントの選択は、機器10Fのアシスタント制御部22によって行われてもよいし、機器10Aのアシスタント制御部22によって行われてもよいし、サーバ等の外部装置のアシスタント制御部22によって行われてもよい。
実施例1-7によれば、使用対象の機器10に対応可能な操作アシスタントが従操作アシスタントとして選択されるので、当該機器10が適切に制御される。
例えば、要求元の操作アシスタントにログインしているユーザアカウントと、要求先の操作アシスタントにログインしているユーザアカウントが互いに異なる場合や、要求元の操作アシスタントと要求先の操作アシスタントが互いに異なる種類の操作アシスタントである場合等に、要求元の操作アシスタントと要求先の操作アシスタントが互いにメッセージをやり取りすることができず、その結果、機器同士が連携できないともあり得る。このような場合であっても、第1実施形態によれば、要求元の操作アシスタントと要求先の操作アシスタントが互いにメッセージをやり取りすることができるので、機器同士を連携させることができる。
<第2実施形態>
以下、本発明の第2実施形態に係る情報処理システムについて説明する。第2実施形態に係る情報処理システムは、第1実施形態に係る情報処理システムと同様に、1又は複数の機器10を含む。また、第2実施形態に係る機器10は、第1実施形態に係る機器10と同じ構成を有する。
第2実施形態では、要求元の機器10に複数の操作アシスタントが搭載されている。複数の操作アシスタントは、互いに異なる種類の操作アシスタントである。例えば、当該複数の操作アシスタントは、互いに異なる人工知能(AI)を有する操作アシスタントである。別の例として、当該複数の操作アシスタントが互いに同じ種類の操作アシスタントであっても(例えば互いに同じ種類のAIを有していても)、互いのバージョンが異なる場合や、制御可能な機器や機能が互いに異なる場合や、利用可能なユーザが互いに異なる場合や、ログインしているユーザアカウントが互いに異なる場合には、当該複数の操作アシスタントは互いに異なる操作アシスタントとして扱われてもよい。
要求元の機器10にて、別の機器10の操作指示がユーザによって与えられた場合、要求元の機器10のアシスタント制御部22は、要求元の機器10(自装置の一例)に搭載されている複数の操作アシスタントの中から、当該別の機器10を制御可能な操作アシスタントを選択し、当該操作アシスタントから当該別の機器10に操作指示を示す情報を送信するように構成されている。
上記の別の機器10は、操作アシスタントを搭載していてもよいし、操作アシスタントを搭載していなくてもよい。また、別の機器10は、要求元の機器10と直接的に接続される機器であってもよいし、中継器等の機器を介して要求元の機器10と間接的に接続される機器であってもよい。
なお、第2実施形態では、操作アシスタント同士の主従関係は設定されない。つまり、主操作アシスタント及び従操作アシスタントは設定されない。
以下、第2実施形態に係る実施例について詳しく説明する。
(実施例2-1)
図17を参照して、実施例2-1に係る処理について説明する。図17は、機器10の一例を示す。実施例2-1では、機器10Fは要求元の機器である。機器10Aは要求先の機器であり、操作対象の機器である。つまり、機器10Fが機器10Aに対して操作指示を示す情報を送信する。例えば、機器10Aが有する単独機能を実行する場合や、機器10Fを用いて機器10Aに単独機能を設定する場合や、機器10Fと機器10Aとが連携して連携機能を実行する場合や、機器10Fを用いて機器10Aに連携機能を設定する場合や、機器10Fを用いて、機器10Aを介して他の機器10に連携機能を設定する場合や、機器10Fを介して機器10Aを利用する場合や、ユーザが機器10Fを用いて操作指示の送信指示を与えた場合等に、機器10Fが機器10Aに対して操作指示を示す情報を送信する。もちろん、これら以外の事象が発生した場合に、機器10Fが機器10Aに操作指示を示す情報を送信してもよい。また、ユーザは、操作アシスタントを指定せずに機器10の操作指示を与えてもよい。
機器10Fには、操作アシスタントA1,A6が搭載されている。機器10Aには、操作アシスタントA1が搭載されている。操作アシスタントA1,A6は、例えば、互いに異なる種類の操作アシスタントである。例えば、操作アシスタントA1,A6は、互いに異なる人工知能(AI)を有する操作アシスタントである。別の例として、操作アシスタントA1,A6が互いに同じ種類の操作アシスタントであっても(例えば互いに同じ種類のAIを有していても)、互いのバージョンが異なる場合や、制御可能な機能や機器が互いに異なる場合や、利用可能なユーザが互いに異なる場合や、ログインしているユーザアカウントが互いに異なる場合には、操作アシスタントA1,A6は、互いに異なる操作アシスタントとして扱われてもよい。
また、機器10Fに搭載されている操作アシスタントA1と、機器10Aに搭載されている操作アシスタントA1は、互いに同一の種類の操作アシスタントである。別の例として、機器10Fに搭載されている操作アシスタントA1と、機器10Aに搭載されている操作アシスタントA1は、互いに同一の種類の操作アシスタントではあるが、各操作アシスタントA1のバージョンや、各操作アシスタントA1が制御可能な機能や機器や、各操作アシスタントA1を利用可能なユーザや、各操作アシスタントA1にログインしているユーザアカウントが、互いに異なっていてもよい。
また、各機器10には、管理情報が記憶されている。管理情報は、各機器10に搭載されている操作アシスタントを識別するためのアシスタント識別情報を含む。各機器10のアシスタント制御部22は、管理情報に含まれているアシスタント識別情報を参照することで、各機器10に搭載されている操作アシスタントを認識することができる。例えば、各機器10が、自装置に搭載されている操作アシスタントを識別するためのアシスタント識別情報を互いに送受信することで、上記の管理情報が、任意のタイミングで、定期的に、又は、ユーザが指示したタイミングで、更新される。もちろん、管理情報は、サーバ等の装置に記憶されており、アシスタント制御部22は、サーバ等の装置に記憶されている管理情報を参照することで、各機器10に搭載されている操作アシスタントを認識してもよい。
例えば、機器10Fを識別するための機器識別情報と、機器10Fに搭載されている操作アシスタントA1,A6をそれぞれ識別するためのアシスタント識別情報とが互いに対応付けられて、管理情報に登録されている。他の機器10に搭載されている操作アシスタントに関する情報も、同様にして管理情報に登録されている。
機器10Fが、操作指示を示す情報を機器10Aに送信する場合、機器10Fのアシスタント制御部22は、管理情報を参照することで、機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Aを制御可能な操作アシスタントを選択する。詳しく説明すると、アシスタント制御部22は、管理情報を参照することで、要求先の機器10Aに搭載されている操作アシスタントA1を認識し、機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Aに搭載されている操作アシスタントA1と対話可能な操作アシスタントを選択する。つまり、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA1との間でメッセージをやり取りすることが可能な操作アシスタントを選択する。例えば、機器10Aに搭載されている操作アシスタントA1と同一種類の操作アシスタントが、当該操作アシスタントA1との間でメッセージをやり取りすることが可能な操作アシスタントである。従って、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から操作アシスタントA1を、機器10Aを制御可能な操作アシスタントとして選択する。
アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1から機器10Aに操作指示を示す情報を送信する。つまり、機器10Fに搭載されている操作アシスタントA1は、操作指示を示す情報を、機器10Aに搭載されている操作アシスタントA1に送信する。機器10Aに搭載されている操作アシスタントA1は、機器10Fに搭載されている操作アシスタントA1から送られてきた操作指示を示す情報を受信し、その操作指示に従って機器10Aを制御する。
例えば、操作指示を示す情報は、機器10Aを用いて実行可能な処理を示す情報を含む。機器10Aに搭載されている操作アシスタントA1は、その操作指示に従って、その処理を機器10Aに実行させる。
実施例2-1によれば、要求元の機器10に複数の操作アシスタントが搭載されている場合、当該複数の操作アシスタントの中から要求先の機器10を制御可能な操作アシスタントが選択されて、当該操作アシスタントから要求先の機器10に対して操作指示を示す情報が送信される。こうすることで、要求元の機器10を操作するユーザは、要求先の機器10や要求元の機器10に搭載されている操作アシスタントを意識せずに、操作指示を与えることができるので、機器10や操作アシスタントの操作性が向上する。例えば、ユーザは、操作対象の機器10を制御可能な操作アシスタントをマニュアル操作で指定する必要がないので、操作性が向上する。
(実施例2-2)
図18及び図19を参照して、実施例2-2に係る処理について説明する。図18は、機器10の一例を示す。図19は、ユーザと操作アシスタントとの間でメッセージをやり取りするための画面の一例を示す。
機器10Aには、カメラとしての機器10Sと、PCとしての機器10Tとが接続されている。機器10Pには、ロボットとしての機器10Uと、複合機としての機器10Vとが接続されている。機器10Dには、複合機としての機器10Wが接続されている。機器10A,10P,10Dは、中継器である。機器10Fは、要求元の機器である。実施例2-2では、中継器を介して、操作対象の機器10が操作される。
機器10Fには、操作アシスタントA1,A6が搭載されている。機器10Aには、操作アシスタントA1が搭載されている。機器10Pには、操作アシスタントA6が搭載されている。機器10Dには、標準操作アシスタントAsが搭載されている。標準操作アシスタントAsは、例えば、操作アシスタントA1,A6が共通して有する機能を有する。
機器10S,10T,10U,10V,10Wには、操作アシスタントが搭載されていてもよいし、操作アシスタントが搭載されていなくてもよい。
機器10Sは、操作アシスタントA1,A2,A3,A6に対応する機器である。つまり、機器10Sは、操作アシスタントA1,A2,A3,A6のそれぞれによって制御可能な機器である。機器10Sは、機器10Aに接続されて、機器10Aに搭載されている操作アシスタントA1によって制御される。
機器10Tは、操作アシスタントA1,A2に対応する機器である。つまり、機器10Tは、操作アシスタントA1,A2のそれぞれによって制御可能な機器である。機器10Tは、機器10Aに接続されて、機器10Aに搭載されている操作アシスタントA1によって制御される。
機器10Uは、操作アシスタントA1,A6に対応する機器である。つまり、機器10Uは、操作アシスタントA1,A6のそれぞれによって制御可能な機器である。機器10Uは、機器10Pに接続されて、機器10Pに搭載されている操作アシスタントA6によって制御される。
機器10Vは、操作アシスタントA6に対応する機器である。つまり、機器10Vは、操作アシスタントA6によって制御可能な機器である。機器10Vが、機器10Pに接続されて、機器10Pに搭載されている操作アシスタントA6によって制御される。
機器10Wは、操作アシスタントA1,A3、Asに対応する機器である。つまり、機器10Wは、操作アシスタントA1,A3,Asによって制御可能な機器である。機器10Wは、機器10Dに接続されて、機器10Dに搭載されている操作アシスタントAsによって制御される。
以下、図19を参照して、実施例2-2に係る処理について詳しく説明する。機器10Fの制御部20は、UI部14の表示部に画面70を表示させる。画面70は、ユーザと操作アシスタントとの間でメッセージをやり取りするためのユーザインターフェースである。画面70において、操作アシスタント用の表示エリアには、操作アシスタントに紐付けられた画像72が表示される。また、ユーザ用の表示エリアには、ユーザに紐付けられたが画像74が表示される。画像72は、特定の操作アシスタントを表す画像ではなく、ユーザの対話相手が操作アシスタントであることを示すための画像である。例えば、画像72は、ユーザの発言内容を受け付ける受付に紐付けられた画像である。
画面70上にて、ユーザと操作アシスタントとの間で対話が行われる。このときの対話相手は、機器10Fに搭載されている操作アシスタントA1であってもよいし、操作アシスタントA6であってもよいし、その対話のタイミングで起動している操作アシスタントであってもよい。
その対話において、操作アシスタントの発言内容76が、画像72に紐付けられて表示され、ユーザの発言内容78が、画像74に紐付けられて表示される。
例えば、ユーザが、発言内容78によって、機器10S(カメラ)の操作指示を与えた場合、機器10Fのアシスタント制御部22は、機器10Sに接続され、機器10Sを制御可能な操作アシスタントを搭載した機器(中継器)であって、要求元の機器10Fに搭載されている操作アシスタントA1,A6の中の少なくとも1つの操作アシスタントを搭載する機器10Aを、要求先の機器10として検索する。このとき、ユーザは、操作アシスタントを指定せずに機器10Sの操作指示を与えてもよい。以下、この処理について詳しく説明する。
例えば、上述した管理情報は、更に、各機器10に接続されている他の機器10を識別するための機器識別情報と、当該他の機器10を制御可能な操作アシスタント(当該他の機器10に対応する操作アシスタント)を識別するためのアシスタント識別情報と、を含む。
具体例を挙げて説明すると、機器10Aを識別するための機器識別情報と、機器10Aに接続されている機器10Sを識別するための機器識別情報と、機器10Sを制御可能な操作アシスタントA1,A2,A3,A6をそれぞれ識別するためのアシスタント識別情報と、機器10Aに接続されている機器10Tを識別するための機器識別情報と、機器10Tを制御可能な操作アシスタントA1,A2をそれぞれ識別するためのアシスタント識別情報と、が互いに対応付けられて管理情報に登録されている。
同様に、機器10Pを識別するための機器識別情報と、機器10Pに接続されている機器10Uを識別するための機器識別情報と、機器10Uを制御可能な操作アシスタントA1,A6をそれぞれ識別するためのアシスタント識別情報と、機器10Pに接続されている機器10Vを識別するための機器識別情報と、機器10Vを制御可能な操作アシスタントA6を識別するためのアシスタント識別情報と、が互いに対応付けられて管理情報に登録されている。
同様に、機器10Dを識別するための機器識別情報と、機器10Dに接続されている機器10Wを識別するための機器識別情報と、機器10Wを制御可能な操作アシスタントA1,A3,Asをそれぞれ識別するためのアシスタント識別情報と、が互いに対応付けられている。
また、上述したように、機器10Aを識別するための機器識別情報と、機器10Aに搭載されている操作アシスタントA1を識別するためのアシスタント識別情報と、が互いに対応付けられて管理情報に登録されている。
同様に、機器10Pを識別するための機器識別情報と、機器10Pに搭載されている操作アシスタントA6を識別するためのアシスタント識別情報と、が互いに対応付けられて管理情報に登録されている。
同様に、機器10Dを識別するための機器識別情報と、機器10Dに搭載されている操作アシスタントAsを識別するためのアシスタント識別情報と、が互いに対応付けられて管理情報に登録されている。
機器10Fのアシスタント制御部22は、上記の管理情報を参照することで、機器10Sに接続され、機器10Sを制御可能な操作アシスタントを搭載した機器であって、要求元の機器10Fに搭載されている操作アシスタントA1,A6の中の少なくとも1つの操作アシスタントを搭載する機器10Aを、要求先の機器10として検索する。つまり、機器10Aは、操作対象の機器10Sに接続されており、機器10Sを制御可能な操作アシスタントA1を搭載している。また、機器10Aは、要求元の機器10Fに搭載されている操作アシスタントA1を搭載している。従って、アシスタント制御部22は、機器10Aを要求先の機器として選択する。
また、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Sを制御可能な操作アシスタントA1を選択する。つまり、機器10Fのアシスタント制御部22は、操作アシスタントA1,A6の中から、要求先の機器10Aに搭載されている操作アシスタントA1(機器10Sを制御可能な操作アシスタントA1)との間でメッセージをやり取りすることが可能な操作アシスタントを選択する。例えば、機器10Aに搭載されている操作アシスタントA1と同一種類の操作アシスタントが、当該操作アシスタントA1との間でメッセージをやり取りすることが可能な操作アシスタントである。従って、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から操作アシスタントA1を、機器10Sを制御可能な操作アシスタントとして選択する。
アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1から、機器10Aに搭載されている操作アシスタントA1に対して、機器10Sの操作指示を示す情報を送信する。
機器10Aに搭載されている操作アシスタントA1は、その操作指示に従って、機器10Sを制御する。例えば、操作指示の内容が、「機器10Sによって撮影された昨日の10時~11時からの画像をユーザが見たい」という内容である場合、機器10Aに搭載されている操作アシスタントA1は、その画像データを機器10Sから取得する。また、機器10Aに搭載されている操作アシスタントA1は、その画像データを、機器10Fに搭載されている操作アシスタントA1に送信する。その画像データは、機器10Fにてユーザに提供される。
機器10Fにて、操作アシスタントA1が、機器10Sを制御可能な操作アシスタントとして選択された場合、制御部20は、図19に示すように、以降の対話においては、操作アシスタントに紐付けられた画像72を、操作アシスタントA1に紐付けられた画像80に切り替える。操作アシスタントA1の発言内容82が、画像80に紐付けられて表示される。
また、制御部20は、機器10Sの操作結果の通知を制御する。例えば、図19に示すように、制御部20は、機器10Sから取得された画像データ(例えば動画ファイル)に紐付けられた画像84(例えばアイコン)を、機器10Sの操作結果として、画像80に紐付けて画面70に表示させる。画像84が指定されて再生指示が与えられ場合、その動画ファイルが再生される。
また、機器10Sに対する操作が終了した場合、制御部20は、操作アシスタントA1に紐付けられた画像80を、元の画像72に切り替える。
なお、制御部20は、操作アシスタントA1を識別するための文字列(例えば操作アシスタントA1の名称)を、画像80に代えて、又は、画像80と共に、画面70に表示させてもよい。また、操作アシスタントA1に紐付けられた発言内容82に、操作アシスタントA1を識別するための文字列が含まれてもよい。受付に紐付けられた画像72や、ユーザに紐付けられた画像74も同様である。
また、ユーザが、機器10U(ロボット)の操作指示を与えた場合、機器10Fのアシスタント制御部22は、上記の管理情報を参照することで、機器10Uに接続され、機器10Uを制御可能な操作アシスタントを搭載している機器(中継器)であって、要求元の機器10Fに搭載されている操作アシスタントA1,A6の中の少なくとも1つの操作アシスタントを搭載している機器10Pを、要求先の機器10として検索する。つまり、機器10Pは、操作対象の機器10Uに接続されており、機器10Uを制御可能な操作アシスタントA6を搭載している。また、機器10Pは、要求元の機器10Fに搭載されている操作アシスタントA6を搭載している。従って、アシスタント制御部22は、機器10Pを要求先の機器として選択する。
また、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Uを制御可能な操作アシスタントA6を選択する。つまり、機器10Fのアシスタント制御部22は、操作アシスタントA1,A6の中から、要求先の機器10Pに搭載されている操作アシスタントA6(機器10Uを制御可能な操作アシスタントA6)との間でメッセージをやり取りすることが可能な操作アシスタントを選択する。例えば、機器10Pに搭載されている操作アシスタントA6と同一種類の操作アシスタントが、当該操作アシスタントA6との間でメッセージをやり取りすることが可能な操作アシスタントである。従って、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から操作アシスタントA6を、機器10Uを制御可能な操作アシスタントとして選択する。
アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA6から、機器10Pに搭載されている操作アシスタントA6に対して、機器10Sの操作指示を示す情報を送信する。機器10Pに搭載されている操作アシスタントA6は、その操作指示に従って、機器10Uを制御する。また、制御部20は、機器10Sの操作結果の通知を制御する。
また、ユーザが、機器10W(複合機)の操作指示を与えた場合、機器10Fのアシスタント制御部22は、上記の管理情報を参照することで、機器10Wに接続され、機器10Wを制御可能な操作アシスタントを搭載している機器(中継器)であって、要求元の機器10Fに搭載されている操作アシスタントA1,A6の中の少なくとも1つの操作アシスタントを搭載している機器10Dを、要求先の機器10として検索する。つまり、機器10Dは、操作対象の機器10Wに接続されており、機器10Wを制御可能な操作アシスタントAsを搭載している。また、機器10Dは、要求元の機器10Fに搭載されている操作アシスタントA1,A6と対話可能な標準操作アシスタントAsを搭載している。従って、アシスタント制御部22は、機器10Dを要求先の機器として選択する。
また、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Wを制御可能な操作アシスタントを選択する。つまり、機器10Fのアシスタント制御部22は、操作アシスタントA1,A6の中から、要求先の機器10Dに搭載されている操作アシスタントAsとの間でメッセージをやり取りすることが可能な操作アシスタントを選択する。操作アシスタントA1,A6はいずれも、標準操作アシスタントAsとの間でメッセージをやり取りすることが可能である。従って、アシスタント制御部22は、操作アシスタントA1,A6の何れかを、機器10Wを制御可能な操作アシスタントとして選択する。例えば、アシスタント制御部22は、操作アシスタントA1,A6の中から、処理を実行していない操作アシスタントや、標準操作アシスタントAsと共通するより多くの機能を有する操作アシスタントや、負荷がより低い操作アシスタント等を、機器10Wを制御可能な操作アシスタントとして選択する。ここでは、一例として、操作アシスタントA1が選択されたものとする。
アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1から、機器10Dに搭載されている標準操作アシスタントAsに対して、機器10Wの操作指示を示す情報を送信する。機器10Dに搭載されている標準操作アシスタントAsは、その操作指示に従って、機器10Wを制御する。また、制御部20は、機器10Wの操作結果の通知を制御する。
実施例2-2によれば、実施例2-1と同様に、要求元の機器10を操作するユーザは、要求先の機器10や要求元の機器10に搭載されている操作アシスタントを意識せずに、操作指示を与えることができるので、機器10や操作アシスタントの操作性が向上する。
(実施例2-3)
図20を参照して、実施例2-3に係る処理について説明する。図20は、機器10の一例を示す。実施例2-3では、機器10Fは要求元の機器である。機器10Aは中継器である。機器10Aには、機器10Sが接続されている。
機器10Fには、操作アシスタントA1,A6が搭載されている。機器10Aには、操作アシスタントは搭載されていない。機器10Sには、操作アシスタントA1が搭載されている。実施例2-3では、中継器としての機器10Aを介して、操作対象の機器10Sが操作される。
機器10Fが、機器10Sを操作するための操作指示を示す情報を、機器10Aを介して機器10Sに送信する場合、機器10Fのアシスタント制御部22は、管理情報を参照することで、機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Sを制御可能な操作アシスタントを選択する。詳しく説明すると、アシスタント制御部22は、管理情報を参照することで、要求先の機器10Sに搭載されている操作アシスタントA1を認識し、機器10Fに搭載されちる操作アシスタントA1,A6の中から、機器10Sに搭載されている操作アシスタントA1と対話可能な操作アシスタントを選択する。つまり、アシスタント制御部22は、機器10Sに搭載されている操作アシスタントA1との間でメッセージをやり取りすることが可能な操作アシスタントを選択する。例えば、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から操作アシスタントA1を、機器10Sを制御可能な操作アシスタントとして選択する。
アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1から機器10Sに操作指示を示す情報を送信する。つまり、機器10Fに搭載されている操作アシスタントA1は、操作指示を示す情報を、機器10Sに搭載されている操作アシスタントA1に送信する。その操作指示を示す情報は、中継器としての機器10Aを介して、機器10Fから機器10Sに送信される。機器10Sに搭載されている操作アシスタントA1は、機器10Fに搭載されている操作アシスタントA1から送られてきた操作指示を示す情報を受信し、その操作指示に従って機器10Sを制御する。
例えば、操作指示を示す情報は、機器10Sを用いて実行可能な処理を示す情報を含む。機器10Aに搭載されている操作アシスタントA1は、その操作指示に従って、その処理を機器10Aに実行させる。
実施例2-3によれば、操作アシスタントを搭載していない中継器を介して、操作アシスタントが搭載されている機器10を制御する場合においても、要求元の機器10を操作するユーザは、要求元の機器10や要求先の機器10に搭載されている操作アシスタントを意識せずに、操作指示を与えることができる。
(実施例2-4)
図21を参照して、実施例2-4に係る処理について説明する。図21は、機器10の一例を示す。実施例2-4では、機器10Fは要求元の機器である。機器10Aは要求先の機器であり、中継器として用いられる。機器10Aには、機器10S,10Tが接続されている。
機器10Fには、操作アシスタントA1,A6が搭載されている。機器10Aには、操作アシスタントA1,A6が搭載されている。このように、実施例2-4では、中継器としての機器10Aにも複数の操作アシスタントが搭載されている。機器10S,10Tには、操作アシスタントは搭載されていない。
機器10Sは、操作アシスタントA1に対応する機器である。つまり、機器10Sは、操作アシスタントA1によって制御可能な機器である。機器10Sは、機器10Aに接続されて、機器10Aに搭載されている操作アシスタントA1によって制御される。
機器10Tは、操作アシスタントA6に対応する機器である。つまり、機器10Tは、操作アシスタントA6によって制御可能な機器である。機器10Tは、機器10Aに接続されて、機器10Aに搭載されている操作アシスタントA6によって制御される。
機器10Fが、機器10Sを操作するための操作指示を示す情報を、機器10Aに送信する場合、機器10Fのアシスタント制御部22は、管理情報を参照することで、機器10Aに搭載されている操作アシスタントA1,A6の中から、機器10Sを制御可能な操作アシスタントA1を特定する。アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Aに搭載されている操作アシスタントA1と対話可能な操作アシスタントA1を、機器10Sを制御可能な操作アシスタントとして選択する。
アシスタント制御部22は、操作指示を示す情報を、機器10Fに搭載されている操作アシスタントA1から、機器10Aに搭載されている操作アシスタントA1に送信する。機器10Aに搭載されている操作アシスタントA1は、機器10Fに搭載されている操作アシスタントA1から送られてきた操作指示を示す情報を受信し、その操作指示に従って機器10Sを制御する。つまり、アシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Aに接続されている機器10Sを制御可能な操作アシスタントとして操作アシスタントA1を選択し、操作指示を示す情報を、当該操作アシスタントA1から、機器10Aに搭載されている操作アシスタントA1に送信する。
実施例2-4によれば、要求先の機器10に複数の操作アシスタントが搭載されている場合においても、要求元の機器10を操作するユーザは、要求元の機器10や要求先の機器10に搭載されている操作アシスタントを意識せずに、操作指示を与えることができる。
なお、機器10Fに搭載されている操作アシスタントA1は、機器10Aに搭載されている操作アシスタントA1にメッセージを送ると共に、機器10Aに搭載されている操作アシスタントA6が解釈可能なプロトコルに従って、操作アシスタントA6にメッセージを送ってもよい。
(実施例2-5)
実施例2-5に係る処理について説明する。操作指示を示す情報は、要求先の機器10に実行させる機能の実行指示を示す情報を含む。その機能の実行指示は、要求元の機器10を操作するユーザによって与えられる。要求元の機器10のアシスタント制御部22は、当該機能の指示を要求先の機器10に与えることが可能な操作アシスタントを、要求先の機器10を制御可能な操作アシスタントとして選択する。アシスタント制御部22は、その選択された操作アシスタントから要求元の機器10に操作指示を示す情報を送信する。要求先の機器10は、その操作指示に含まれる機能の実行指示に従って、当該機能を実行する。
例えば、操作アシスタント毎に、制御可能な機能が定められており、各操作アシスタントが制御可能な機能を示す情報が、上記の管理情報に含まれている。具体的には、操作アシスタント毎に、操作アシスタントを識別するためのアシスタント識別情報と、当該操作アシスタントが制御可能な機能を示す機能情報、とが互いに対応付けられて管理情報に登録されている。アシスタント制御部22は、その管理情報を参照することで、操作指示が示す機能を制御可能な操作アシスタントを選択する。
以下、具体例を挙げて実施例2-5について説明する。要求元の機器10には、操作アシスタントA1,A6が搭載されている。要求先の機器10は、プリント機能等の画像形成機能を有する複合機である。
操作アシスタントA1は、複合機が有する画像形成機能の実行を制御することが可能である。操作アシスタントA6は、カメラが有する撮影機能の実行を制御することが可能である。
例えば、ユーザが要求元の機器10を用いて、要求先の機器10を用いたプリント機能の実行の指示を与えた場合、アシスタント制御部22は、要求元の機器10に搭載されている操作アシスタントA1,A6の中から、プリント機能の実行を制御することが可能な操作アシスタントA1を選択する。アシスタント制御部22は、プリント機能の実行指示を含む操作指示を示す情報を、その操作アシスタントA1から要求先の機器10に送信する。つまり、操作アシスタントA1は、その操作指示に従って要求先の機器10を制御することで、プリント機能を要求先の機器10に実行させる。要求先の機器10は、プリント機能の実行指示に従ってプリント機能を実行する。
実施例2-5によれば、機能の実行指示が与えられた場合に、その機能を制御可能な操作アシスタントから、当該機能を実行する機器に操作指示を示す情報が送信される。それ故、要求元の機器10を操作するユーザは、要求元の機器10に搭載されている操作アシスタントを意識せずに、操作指示を与えることができる。
(実施例2-6)
図22を参照して、実施例2-6に係る処理について説明する。図22は、機器10の一例を示す。実施例2-6では、機器10Fは要求元の機器である。機器10Vは要求先の機器である。
機器10Fには、操作アシスタントA1,A6が搭載されている。機器10Vには、操作アシスタントA1,A6が搭載されている。このように、実施例2-6では、要求先の機器10Vにも複数の操作アシスタントが搭載されている。
実施例2-5と同様に、操作指示を示す情報は、要求先の機器10Vに実行させる機能の指示を示す情報を含む。その機能の実行指示は、要求元の機器10Fを操作するユーザによって与えられる。要求元のアシスタント制御部22は、要求先の機器10Vに搭載されている複数の操作アシスタントの中から、当該機能を制御可能な操作アシスタントを選択する。また、要求元のアシスタント制御部22は、要求元の機器10Fに搭載されている複数の操作アシスタントの中から、その選択された操作アシスタントと対話可能な操作アシスタントを、要求先の機器10を制御可能な操作アシスタントとして選択する。
以下、具体例を挙げて実施例2-6について説明する。要求先の機器10Vは、プリント機能等の画像形成機能を有する複合機である。操作アシスタントA1は、複合機が有する画像形成機能の実行を制御することが可能である。操作アシスタントA6は、カメラが有する撮影機能の実行を制御することが可能である。
例えば、ユーザが要求元の機器10Fを用いて、要求先の機器10Vを用いたプリント機能の実行の指示を与えた場合、アシスタント制御部22は、管理情報を参照することで、要求先の機器10Vに搭載されている操作アシスタントA1,A6の中から、プリント機能を制御可能な操作アシスタントA1を選択する。また、アシスタント制御部22は、要求元の機器10Fに搭載されている操作アシスタントA1,A6の中から、要求先の機器10Vに搭載されている操作アシスタントA1と対話可能な操作アシスタントA1を、要求先の機器10Vを制御可能な操作アシスタントとして選択する。
アシスタント制御部22は、プリント機能の実行指示を含む操作指示を示す情報を、機器10Fに搭載されている操作アシスタントA1から、機器10Vに搭載されている操作アシスタントA1に送信する。機器10Vに搭載されている操作アシスタントA1は、機器10Fに搭載されている操作アシスタントA1から送られてきた操作指示を示す情報を受信し、その操作指示に従って、機器10Vにプリント機能を実行させる。
実施例2-6によれば、要求元の機器10と要求先の機器10の両方に複数の操作アシスタントが搭載されている場合においても、要求元の機器10を操作するユーザは、それらの操作アシスタントを意識せずに、機能の実行指示を与えることができる。
また、上記の実施例2-4(図21参照)において、機器10S又は機器10Tに実行させる機能がユーザによって指定された場合、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA1,A6の中から、当該機能を制御可能な操作アシスタントを選択する。例えば、機器10S(カメラ)を用いた撮影機能の実行がユーザによって指示された場合、アシスタント制御部22は、機器10Aに搭載されている操作アシスタントA1,A6の中から、撮影機能を制御可能な操作アシスタントA6を選択する。また、アシスタント制御部22は、要求元の機器10Fに搭載されている操作アシスタントA1,A6の中から、要求先の機器10Aに搭載されている操作アシスタントA6と対話可能な操作アシスタントA6を、要求先の機器を制御可能な操作アシスタントとして選択する。
アシスタント制御部22は、撮影機能の実行指示を含む操作指示を示す情報を、機器10Fに搭載されている操作アシスタントA6から、機器10Aに搭載されている操作アシスタントA6に送信する。機器10Aに搭載されている操作アシスタントA6は、機器10Fに搭載されている操作アシスタントA6から送られてきた操作指示を示す情報を受信し、その操作指示に従って、機器10Sに撮影機能を実行させる。
このように、実施例2-6を実施例2-4に適用した場合においても、要求元の機器10を操作するユーザは、機器10に搭載されている操作アシスタントを意識せずに、機能の実行指示を与えることができる。
(実施例2-7)
図23を参照して、実施例2-7に係る処理について説明する。図23は、機器10の一例を示す。実施例2-7では、連携機能の実行指示がユーザによって与えられ、その連携機能を実行するための1又は複数の操作アシスタントが選択されて、当該1又は複数の操作アシスタントによって連携機能の実行が制御される。以下、実施例2-7について詳しく説明する。
実施例2-7では、機器10Fは要求元の機器である。機器10A,10Pは要求先の機器であり、中継器として用いられる。機器10Aには、機器10S,10Tが接続されている。機器10Pには、機器10U,10Vが接続されている。
機器10Fには、操作アシスタントA1,A6が搭載されている。機器10Aには、操作アシスタントA1が搭載されている。機器10Pには、操作アシスタントA6が搭載されている。機器10S,10T,10U,10Vには、操作アシスタントは搭載されていない。
実施例2-7では、機器10S,10Tは、操作アシスタントA1に対応する機器である。つまり、機器10S,10Tは、操作アシスタントA1によって制御可能な機器である。機器10S,10Tは、機器10Aに接続されて、操作アシスタントA1によって制御される。
機器10U,10Vは、操作アシスタントA6に対応する機器である。つまり、機器10U,10Vは、操作アシスタントA6によって制御可能な機器である。機器10U,10Vは、機器10Pに接続されて、操作アシスタントA6によって制御される。
例えば、ユーザが要求元の機器10Fを用いて、連携機能としての撮影プリント機能の実行の指示を与えたものとする。撮影プリント機能は、機器10S(カメラ)による撮影によって生成された画像データを、機器10V(複合機)によってプリントする機能である。なお、撮影プリント機能は、当該撮影プリント機能に用いられる機器10S,10Vに予め設定されていてもよいし、中継器としての機器10A,10Pに設定されていてもよいし、要求元の機器10Fに設定されていてもよい。ユーザは、撮影プリント機能の実行指示を与えるときに、撮影プリント機能に用いられる機器10S,10Vを指定してもよい。
撮影プリント機能の実行指示がユーザによって与えられた場合、アシスタント制御部22は、要求元の機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Sに接続されている機器10Aに搭載されている操作アシスタントA1と対話可能な操作アシスタントA1を選択する。アシスタント制御部22は、撮影プリント機能の実行指示を含む操作指示を示す情報を、その選択された操作アシスタントA1から、機器10Aに搭載されている操作アシスタントA1に送信する。
機器10Aに搭載されている操作アシスタントA1は、機器10Fから送られてきた操作指示に従って、機器10Sによる撮影によって生成された画像データを機器10Sから取得し、その画像データを、機器10Fに搭載されている操作アシスタントA1に送信する。その画像データは、機器10Fに一時的に記憶される。
次に、アシスタント制御部22は、要求元の機器10Fに搭載されている操作アシスタントA1,A6の中から、機器10Vに接続されている機器10Pに搭載されている操作アシスタントA6と対話可能な操作アシスタントA6を選択する。アシスタント制御部22は、撮影プリント機能の実行指示を含む操作指示を示す情報と、機器10Sから取得された画像データを、その選択された操作アシスタントA6から、機器10Pに搭載されている操作アシスタントA6に送信する。
機器10Pに搭載されている操作アシスタントA6は、機器10Fから送られてきた操作指示に従って、機器10Fから送られてきた画像データを機器10Vに送信し、機器10Vにその画像データをプリントさせる。機器10Vは、その画像データをプリントする。
実施例2-7によれば、複数の機器10を用いて連携機能を実行する場合においても、要求元の機器10を操作するユーザは、各機器10に搭載されている操作アシスタントを意識せずに、連携機能の実行指示を与えることができる。
図23に示す例では、複数の中継器(機器10A,10P)が用いられているが、1つの中継器が用いられてもよい。例えば、図24に示すように、中継器として、機器10Aが用いられる。機器10Aには、操作アシスタントA1,A6が搭載されている。
撮影プリント機能の実行指示がユーザによって与えられた場合、アシスタント制御部22は、要求元の機器10Fに搭載されている操作アシスタントA1から、機器10Aに搭載されている操作アシスタントA1に、撮影プリント機能の実行指示を含む操作指示を示す情報を送信する。
機器10Aに搭載されている操作アシスタントA1は、撮影によって生成された画像データを機器10Sから取得し、その画像データを、機器10Fに搭載されている操作アシスタントA1に送信する。その画像データは、機器10Fに一時的に記憶される。
次に、アシスタント制御部22は、撮影プリント機能の実行指示を含む操作指示を示す情報と、機器10Sから取得された画像データを、要求元の機器10Fに搭載されている操作アシスタントA6から、機器10Aに搭載されている操作アシスタントA6に送信する。
機器10Aに搭載されている操作アシスタントA6は、機器10Fから送られてきた操作指示に従って、機器10Vに画像データをプリントさせる。
なお、機器10Aに搭載されている操作アシスタントA1は、機器10Sから取得した画像データを、機器10Fに送信しなくてもよい。この場合、機器10Aに搭載されている操作アシスタントA6は、その画像データを機器10Vに送信して、機器10Vにその画像データをプリントさせてもよい。
上記の実施例2-5,2-6,2-7において、操作アシスタントが、機能の実行指示を操作対象の機器10に与えることができない場合、制御部20は、その理由の通知を制御してもよい。例えば、操作アシスタントのバージョンによって、操作アシスタントが、実行対象の機能に対応しておらず、その機能の実行指示を機器10に与えることができない場合がある。また、操作アシスタントが制御可能な機能が制限されており、それが原因となって、操作アシスタントが、その機能の実行指示を機器10に与えることができない場合がある。また、操作アシスタントにログインしているユーザアカウントが利用可能な機能が制限されており、それが原因となって、操作アシスタントが、その機能の実行指示を機器10に与えることができない場合がある。また、標準操作アシスタントが、実行対象の機能に対応していない場合がある。例えば、標準操作アシスタントは、複数種類の操作アシスタントが共通して有する機能を有しているが、それ以外の機能を有していない場合や、それ以外の機能の性能が低い場合等がある。このような場合、標準操作アシスタントは、機能の実行指示を、操作対象の機器10に与えることができないことがある。
要求元の機器10に搭載されている操作アシスタント、要求先の機器10に搭載されている操作アシスタント、又は、要求元の機器10と要求先の機器10の両方に搭載されている操作アシスタントに、上記の原因が発生する場合がある。何れの場合においても、機能の実行指示を機器10に与えることができず、この場合、制御部20は、その理由の通知を制御する。
例えば、要求元の機器10にて、上記の理由が通知される。要求元の機器10の制御部20は、その理由を示す情報を、要求元の機器10のUI部14の表示部に表示させてもよいし、音声として出力してもよい。
例えば、操作アシスタントのバージョンが実行対象の機能に対応していないことが原因となって、機能の実行指示を、操作対象の機器10に与えることができない場合、制御部20は、操作アシスタントのバージョンが実行対象の機能に対応していない旨を示す情報を通知する。
操作アシスタントが制御可能な機能が制限されていることが原因となって、機能の実行指示を、操作対象の機器10に与えることができない場合、制御部20は、操作アシスタントが制御可能な機能が制限されている旨を示す情報を通知する。
ユーザアカウントが利用可能な機能が制限されていることが原因となって、機能の実行指示を、操作対象の機器10に与えることができない場合、制御部20は、ユーザアカウントが利用可能な機能が制限されている旨を示す情報を通知する。
標準操作アシスタントが実行対象の機能に対応していないことが原因となって、機能の実行指示を、操作対象の機器10に与えることができない場合、制御部20は、標準操作アシスタントが実行対象の機能に対応していない旨を示す情報を通知する。
上記の通知を行うことにより、機能の実行指示を機器10に与えることができない理由を、ユーザに提供することができる。
また、実行対象の機能の実行指示を操作対象の機器10に与えることが可能な操作アシスタントが、要求元の機器10や要求先の機器10や中継器に搭載されていない場合、その機能の実行指示を操作対象の機器10に与えることができない。この場合、制御部20は、その機能の実行指示を操作対象の機器10に与えることができない理由を通知してもよい。例えば、制御部20は、実行対象の機能の実行指示を操作対象の機器10に与えることが可能な操作アシスタントが、要求元の機器10や要求先の機器10や中継器に搭載されていない旨を示す情報を通知する。こうすることで、機能の実行指示を機器10に与えることができない理由を、ユーザに提供することができる。
<第3実施形態>
以下、本発明の第3実施形態に係る情報処理システムについて説明する。第3実施形態に係る情報処理システムは、第1実施形態に係る情報処理システムと同様に、1又は複数の機器10を含む。また、第3実施形態に係る機器10は、第1実施形態に係る機器10と同じ構成を有する。
第3実施形態では、要求先の機器10に複数の操作アシスタントが搭載されており、その機器10に更に別の機器10が接続されている。要求元の機器10から要求先の機器10に対して操作指示を示す情報が送信された場合、アシスタント制御部22は、当該複数の操作アシスタントの中から、当該別の機器10を制御可能な操作アシスタントを選択する。その操作アシスタントが、操作指示に従って当該別の機器10を制御する。
以下、図25を参照して、第3実施形態に係る処理について詳しく説明する。図25は、機器10の一例を示す。一例として、機器10Fが要求元の機器に該当し、機器10A,10P,10Dが要求先の機器に該当する。
機器10A,10Pには、操作アシスタントA1,A6が搭載されている。機器10Dには、標準操作アシスタントAsが搭載されている。また、機器10Aには、第3機器としての機器10S,10Tが接続されている。機器10Pには、第3機器としての機器10U,10Vが接続されている。機器10Dには、第3機器としての機器10Wが接続されている。機器10A,10P,10Dは、中継器として用いられる。
機器10F,10S,10T,10U,10V,10Wには、操作アシスタントが搭載されていてもよいし、操作アシスタントが搭載されていなくてもよい。
機器10Sは、操作アシスタントA1,A2,A3に対応する機器である。つまり、機器10Sは、操作アシスタントA1,A2,A3のそれぞれによって制御可能な機器である。機器10Sは、機器10Aに接続されて、機器10Aに搭載されている操作アシスタントA1によって制御される。
機器10Tは、操作アシスタントA2,A6に対応する機器である。つまり、機器10Tは、操作アシスタントA2,A6のそれぞれによって制御可能な機器である。機器10Tは、機器10Aに接続されて、機器10Aに搭載されている操作アシスタントA6によって制御される。
機器10Uは、操作アシスタントA2,A6に対応する機器である。つまり、機器10Uは、操作アシスタントA2,A6のそれぞれによって制御可能な機器である。機器10Uは、機器10Pに接続されて、機器10Pに搭載されている操作アシスタントA6によって制御される。
機器10Vは、操作アシスタントA6に対応する機器である。つまり、機器10Vは、操作アシスタントA6によって制御可能な機器である。機器10Vが、機器10Pに接続されて、機器10Pに搭載されている操作アシスタントA6によって制御される。
機器10Wは、操作アシスタントA1,A3,Asに対応する機器である。つまり、機器10Wは、操作アシスタントA1,A3,Asによって制御可能な機器である。機器10Wは、機器10Dに接続されて、機器10Dに搭載されている操作アシスタントAsによって制御される。
例えば、機器10Fから機器10Aに対して、機器10Sの操作指示を示す情報が送信された場合、機器10Aのアシスタント制御部22は、機器10Aに搭載されている操作アシスタントA1,A6の中から、機器10Sを制御可能な操作アシスタントA1を選択する。その操作アシスタントA1が、操作指示に従って機器10Sを制御する。例えば、機器10Sによる撮影によって生成された画像データを取得する指示が、操作指示に含まれている場合、操作アシスタントA1は、機器10Sから画像データを取得し、その画像データを機器10Fに送信する。例えば、アシスタント制御部22は、操作アシスタントA1の操作アシスタントプログラムを実行することで、操作アシスタントA1を起動させ、操作アシスタントA1に操作指示に従った動作を実行させる。また、アシスタント制御部22は、操作アシスタントA6の操作アシスタントプログラムの実行を終了することで、操作アシスタントA6の起動を終了させてもよい。もちろん、操作アシスタントA1,A6の両方の操作アシスタントプログラムが実行されていてもよい。この場合、アシスタント制御部22は、操作アシスタントA1を選択して、操作アシスタントA1に操作指示に従った動作を実行させる。
また、機器10Fから機器10Pに対して、機器10Vの操作指示を示す情報が送信された場合、機器10Aのアシスタント制御部22は、機器10Aに搭載されている操作アシスタントA1,A6の中から、機器10Vを制御可能な操作アシスタントA6を選択する。その操作アシスタントA6が、操作指示に従って機器10Vを制御する。例えば、機器10Vを用いたプリントの実行指示が、操作指示に含まれている場合、操作アシスタントA6は、プリント対象の画像データが格納されている格納場所(例えば機器10F等)から当該画像データを取得し、その画像データを機器10Vに送信して機器10Vにプリントさせる。
また、機器10Fから機器10Dに対して、機器10Wの操作指示を示す情報が送信された場合、機器10Dのアシスタント制御部22は、機器10Wを制御可能な標準操作アシスタントAsに、当該操作指示に従った動作を実行させる。
アシスタント制御部22は、実行対象の機能を制御可能な操作アシスタントを選択し、当該操作アシスタントに当該機能を制御させてもよい。例えば、操作アシスタント毎に、制御可能な機能が制限されている場合、アシスタント制御部22は、実行対象の機能を制御可能な操作アシスタントを選択する。
また、アシスタント制御部22は、制御可能な機器の数に基づいて操作アシスタントを選択してもよい。例えば、アシスタント制御部22は、操作対象の機器を制御可能な操作アシスタントであって、制御可能な機器の数が最も多い操作アシスタントを選択し、その操作アシスタントに操作指示に従った動作を実行させてもよい。
また、アシスタント制御部22は、制御可能な機能の数に基づいて操作アシスタントを選択してもよい。例えば、アシスタント制御部22は、実行対象の機能を制御可能な操作アシスタントであって、制御可能な機能の数が最も多い操作アシスタントを選択し、その操作アシスタントに操作指示に従った動作を実行させてもよい。
第3実施形態によれば、要求先の機器10に複数の操作アシスタントが搭載されている場合であっても、操作対象の機器や実行対象の機能を制御可能な操作アシスタントが選択されて、その操作アシスタントによって、機器や機能が制御される。こうすることで、要求元の機器10を操作するユーザは、操作アシスタントを意識せずに、操作指示を与えることができる。
<第4実施形態>
以下、本発明の第4実施形態に係る情報処理システムについて説明する。図26は、第4実施形態に係る情報処理システムの一例を示す。第4実施形態に係る情報処理システムは、第1実施形態に係る情報処理システムと同様に、機器10A~10Rを含む。
また、各機器10には、1又は複数種類の操作アシスタントが搭載されている。また、ユーザアカウントが設定されている操作アシスタントが、機器10に搭載されている場合がある。ユーザアカウントが設定されている操作アシスタントは、当該ユーザアカウントを用いて当該操作アシスタントにログインしているユーザからの指示に従って動作し、当該ユーザ以外の他のユーザからの指示に従っては動作しない。
第4実施形態では、操作アシスタントの種類を、文字「A」、「B」又は「S」等によって表現し、ユーザアカウントを、数字「1」又は「2」等によって表現するものとする。
例えば、同一種類の複数の操作アシスタントは、同じ種類の操作アシスタントのプログラムによって動作する操作アシスタントであり、互いに異なる種類の操作アシスタントは、互いに異なる種類の操作アシスタントのプログラムによって動作する操作アシスタントである。例えば、操作アシスタントA1,A2は、同じ種類の操作アシスタントのプログラムによって動作する。操作アシスタントB1,B2も同様である。操作アシスタントA1,B1は、互いに異なる種類の操作アシスタントのプログラムによって動作する。
なお、同一種類とは、操作アシスタントやプログラムの内容が同一であることを意味してもよいし、操作アシスタントやプログラムのバージョンのみが異なることを意味してもよい。
例えば、操作アシスタントA1,A2は、互いに同一種類「A」の操作アシスタント(例えば、同じ操作アシスタントのプログラムによって動作する操作アシスタント)であるが、互いに異なるユーザアカウントが設定されている。例えば、操作アシスタントA1には、ユーザアカウント「1」が設定されており、操作アシスタントA2には、ユーザアカウント「2」が設定されている。つまり、操作アシスタントA1は、ユーザアカウント「1」を用いて当該操作アシスタントA1にログインしているユーザからの指示に従って動作し、当該ユーザ以外の他のユーザからの指示に従っては動作しない。例えば、操作アシスタントA1は、ユーザアカウント「2」を有するユーザからの指示に従っては動作しない。操作アシスタントA2についても同様である。また、種類「B」の操作アシスタントについても同様である。
操作アシスタントSは、上記の第1実施形態でも説明した標準操作アシスタントである。標準操作アシスタントの定義は、第1実施形態で説明した内容と同じである。操作アシスタントSは、ユーザアカウントに関わらず、ユーザからの指示に従って動作する。
図26に示すように、複数の機器10に、同一種類の操作アシスタントが搭載されていたり、同一ユーザアカウントが設定されている操作アシスタントが搭載されていたりする場合がある。このような場合、ユーザが音声等によって、操作アシスタントを指定して指示を与えたとしても、その指示からだけでは、どの機器10に搭載されているどの操作アシスタントに指示が与えられたのかが特定されない。例えば、操作アシスタントが音声を識別する機能を有している場合において、ユーザが、操作アシスタントA1を識別するためのアシスタント識別情報を音声によって発したとしても、操作アシスタントA1は、機器10A,10F,10L等に搭載されているため、どの機器10に搭載されている操作アシスタントA1に指示が与えられたのかが特定されない。また、ユーザアカウントが特定されない場合には、指示が与えられた操作アシスタントが、操作アシスタントA1,A2の何れであるのかが特定されない。
また、ある機器10に搭載されている操作アシスタントが、別の機器10に搭載されている操作アシスタントに接続要求を送信した場合、当該別の機器10に搭載されている操作アシスタントは、どの操作アシスタントから接続要求が与えられたのかを特定することができないことがある。
第4実施形態では、上記の状況を解消するために、接続要求を与える機器10を識別するための機器識別情報、及び、当該機器10に搭載されている操作アシスタントを識別するためのアシスタント識別情報の中の少なくとも1つの識別情報が、接続要求を示す情報に含まれる。その接続要求を示す情報を受信した機器10においては、アシスタント制御部22が、その識別情報に基づいて、接続要求を示す情報を当該機器10に送信した機器10と操作アシスタントを特定する。こうすることで、接続要求を受けた機器10のアシスタント制御部22は、接続を要求した機器10と操作アシスタントを特定することができる。なお、その特定処理は、接続要求を受けた機器10に搭載されている操作アシスタントによって実行されてもよい。
以下、第4実施形態について詳しく説明する。
(実施例4-1)
図27を参照して、実施例4-1に係る処理について説明する。図27は、機器10の一例を示す。一例として、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
機器10Fには、操作アシスタントA1が搭載されており、機器10Aには、操作アシスタントB1が搭載されているものとする。機器10Fが第1機器の一例に相当し、機器10Fが第2機器に相当する。また、操作アシスタントA1が第1操作アシスタントの一例に相当し、操作アシスタントB1が第2操作アシスタントの一例に相当する。
例えば、ユーザが機器10Fを用いて機器10Aへの接続要求を指示した場合、機器10Fのアシスタント制御部22は、機器10Fの機器識別情報と操作アシスタントA1のアシスタント識別情報とを含む接続要求を示す情報を作成する。機器10Fは、その接続要求を示す情報を機器10Aに送信する。
上述した第1実施形態と同様に、機器10Fのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。
また、機器10Aのアシスタント制御部22は、機器10Aから送られてきた接続要求を示す情報に識別情報が含まれているか否かを確認する。接続要求を示す情報に機器識別情報が含まれている場合、機器10Aのアシスタント制御部22は、その機器識別情報に基づいて、機器10Aに接続要求を示す情報を送信した機器10Fを特定する。これにより、機器10Aのアシスタント制御部22は、返答先の機器10Fを特定することができる。また、接続要求を示す情報にアシスタント識別情報が含まれている場合、機器10Aのアシスタント制御部22は、そのアシスタント識別情報に基づいて、接続要求を示す情報を送信した機器10Fに搭載されている操作アシスタントA1を特定する。これにより、機器10Aのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を、機器10Aに搭載されている操作アシスタントB1との間で情報をやり取りする操作アシスタントとして特定する。
以上のようにして、機器10Aにおいて、接続要求を示す情報を機器10Aに送信した機器10が機器10Fであることが特定され、更に、機器10Aに搭載されている操作アシスタントB1との間で情報のやり取りを行うべき相手の操作アシスタントが、操作アシスタントA1であることが特定される。
また、接続要求を示す情報に機器識別情報及びアシスタント識別情報の中の少なくとも1つの識別情報が含まれている場合、機器10Aのアシスタント制御部22は、機器10Aに搭載されている操作アシスタントB1を、機器10Fに搭載されている操作アシスタントA1からの指示に従って動作する従操作アシスタントとして設定する。
以上により、第1実施形態と同様に、要求元の機器10Fに搭載されている操作アシスタントA1が主操作アシスタントとして設定され、要求先の機器10Aに搭載されている操作アシスタントB1が従操作アシスタントとして設定される。上記のように、接続要求を行った機器10Fに搭載されている操作アシスタントA1が特定されているため、操作アシスタントB1は、接続要求を行った機器10Fに搭載されている操作アシスタントA1との間で情報をやり取りすることができる。
以上により、機器10Fに搭載されている主操作アシスタントとしての操作アシスタントA1と、機器10Aに搭載されている従操作アシスタントとしての操作アシスタントB1との間で情報がやり取りされる。操作アシスタントB1は、操作アシスタントA1からの指示に従って動作する。
接続要求を示す情報に、機器識別情報及びアシスタント識別情報の何れもが含まれていない場合、機器10Aのアシスタント制御部22は、機器10Aに搭載されている操作アシスタントB1を従操作アシスタントとして設定しない。
実施例4-1によれば、接続要求を示す情報に識別情報が含まれている場合、要求先の機器10において、要求元の機器10と当該機器10に搭載されている操作アシスタント(要求先の機器10に搭載されている操作アシスタントの対話相手)を特定することができ、その上で、要求元の機器10に搭載されている操作アシスタントと要求先の機器10に搭載されている操作アシスタントとの間で主従関係を形成することができる。
なお、接続要求を示す情報に、機器識別情報が含まれ、アシスタント識別情報が含まれていない場合、要求先の機器10Aのアシスタント制御部22は、その機器識別情報に基づいて、要求元の機器10Fを特定する。この場合、要求先の機器10Aにて、要求元の機器10Fに搭載されている操作アシスタントが特定されていなくても、機器10Aに搭載されている操作アシスタントB1は、特定された機器10Fに搭載されている不明な操作アシスタントとの間で情報をやり取りする。そのやり取りの途中で、機器10Aにおいて、機器10Fに搭載されている操作アシスタントA1が特定されてもよい。
また、接続要求を示す情報に、アシスタント識別情報が含まれ、機器識別情報が含まれていない場合、要求先の機器10Aのアシスタント制御部22は、そのアシスタント識別情報に基づいて、対話相手としての操作アシスタントA1を特定する。この場合、要求先の機器10Aにて、要求元の機器10Fが特定されていなくても、機器10Aに搭載されている操作アシスタントB1は、特定された操作アシスタントA1との間で情報をやり取りする。そのやり取りの途中で、機器10Aにおいて、操作アシスタントA1を搭載している機器10Fが特定されてもよい。
接続要求を示す情報に識別情報が含まれていない場合、アシスタント制御部22は、要求元の機器10Fに搭載されている操作アシスタントと要求先の機器10Aに搭載されている操作アシスタントとの間で、主従関係を形成しない。つまり、要求先の機器10Aにおいては、要求元の機器10F及び対話相手としての操作アシスタントが特定されていないため、要求先の機器10Aに搭載されている操作アシスタントは、どの機器10又はどの操作アシスタントに情報を送るべきなのか特定することができない。このような状況では、要求先の機器10Aに搭載されている操作アシスタントを従操作アシスタントとして設定する技術的意義がないため、アシスタント制御部22は主従関係を形成しない。
なお、要求元の機器10Fのアシスタント制御部22は、機器10Fの機器識別情報を含まず操作アシスタントA1のアシスタント識別情報を含む接続要求を示す情報を作成してもよい。その接続要求を示す情報は、機器10Fから要求先の機器10Aに送信される。要求先の機器10Aのアシスタント制御部22は、そのアシスタント識別情報に基づいて、操作アシスタントB1の対話相手としての操作アシスタントA1を特定する。要求先の機器10Aの周囲に1つの機器10が設置されており、当該機器10に1つの操作アシスタントA1が搭載されている場合、機器10Aのアシスタント制御部22は、受け付けたアシスタント識別情報に基づいて、当該機器10に搭載されている操作アシスタントA1を、操作アシスタントB1の対話相手の操作アシスタント(つまり主操作アシスタント)として特定することができる。また、要求先の機器10Aの周囲に複数の機器10が設置されている場合であっても、当該複数の機器10の中の1つの機器10のみに1つの操作アシスタントA1が搭載されている場合、機器10Aのアシスタント制御部22は、受け付けたアシスタント識別情報に基づいて、当該1つの機器10に搭載されている操作アシスタントA1を主操作アシスタントとして特定し、当該1つの機器10を要求元の機器10として特定することができる。このように、接続要求を示す情報に機器識別情報が含まれていない場合であっても、要求先の機器10Aにおいて、要求元の機器10Fと主操作アシスタントを特定することができることがある。
また、要求元の機器10Fのアシスタント制御部22は、機器10Fの機器識別情報を含み操作アシスタントA1のアシスタント識別情報を含まない接続要求を示す情報を作成してもよい。その接続要求を示す情報は、機器10Fから要求先の機器10Aに送信される。要求先の機器10Aのアシスタント制御部22は、その機器識別情報に基づいて、要求元の機器10Fを特定する。要求元の機器10Fに、1つの操作アシスタントのみが搭載されている場合、機器10Fのアシスタント制御部22は、当該操作アシスタントを主操作アシスタントとして特定する。機器10Fに搭載されている操作アシスタントB1は、当該操作アシスタントを主操作アシスタントとして識別して、当該操作アシスタントとの間で情報をやり取りする。このように、接続要求を示す情報にアシスタント識別情報が含まれていない場合であっても、要求先の機器10Aにおいて、要求元の機器10Fと主操作アシスタントを特定することができることがある。
(実施例4-2)
図28を参照して、実施例4-2に係る処理について説明する。図28は、機器10の一例を示す。一例として、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
機器10Fには、操作アシスタントA1,B1が搭載されており、機器10Aには、操作アシスタントB1が搭載されているものとする。機器10Fが第1機器の一例に相当し、機器10Fが第2機器に相当する。また、機器10Fに搭載されている操作アシスタントA1又は操作アシスタントB1が第1操作アシスタントの一例に相当し、機器10Aに搭載されている操作アシスタントB1が第2操作アシスタントの一例に相当する。
要求元の機器10Fのアシスタント制御部22は、当該機器10Fに搭載されている操作アシスタントA1,B1の中で主操作アシスタントとして動作する操作アシスタントを定める。例えば、アシスタント制御部22は、機器10Fを利用するユーザの指示に従って主操作アシスタントを定めてもよいし、後述するように、機器10Fにおいて主に動作する操作アシスタントを主操作アシスタントとして定めてもよい。ここでは、操作アシスタントA1が主操作アシスタントとして定められたものとする。
機器10Fのアシスタント制御部22は、機器10Fの機器識別情報と操作アシスタントA1のアシスタント識別情報とを含む接続要求を示す情報を作成する。機器10Fは、その接続要求を示す情報を機器10Aに送信する。
機器10Fのアシスタント制御部22は、要求先の機器10に搭載されて従操作アシスタントとして動作する操作アシスタントとの関係で、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。
また、機器10Aのアシスタント制御部22は、実施例4-1と同様に、機器10Aから送られてきた接続要求を示す情報に識別情報が含まれているか否かを確認する。接続要求を示す情報に機器識別情報が含まれている場合、機器10Aのアシスタント制御部22は、その機器識別情報に基づいて、機器10Aに接続要求を示す情報を送信した機器10Fを特定する。これにより、機器10Aのアシスタント制御部22は、返答先の機器10Fを特定することができる。また、接続要求を示す情報にアシスタント識別情報が含まれている場合、機器10Aのアシスタント制御部22は、そのアシスタント識別情報に基づいて、接続要求を示す情報を送信した機器10Fに搭載されている操作アシスタントA1を特定し、この操作アシスタントA1を主操作アシスタントとして識別する。これにより、要求元の機器10Fに複数の操作アシスタントが搭載されている場合に、要求先の機器10Aのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1を、機器10Aに搭載されている操作アシスタントB1との間で情報をやり取りする主操作アシスタントとして特定することができる。
また、実施例4-1と同様に、機器10Aのアシスタント制御部22は、機器10Aに搭載されている操作アシスタントB1を、機器10Fに搭載されている操作アシスタントA1からの指示に従って動作する従操作アシスタントとして設定する。
以上により、機器10Fに搭載されている主操作アシスタントとしての操作アシスタントA1と、機器10Aに搭載されている従操作アシスタントとしての操作アシスタントB1との間で情報がやり取りされる。操作アシスタントB1は、操作アシスタントA1からの指示に従って動作する。
実施例4-2によれば、要求元の機器10に複数の操作アシスタントが搭載されている場合であっても、要求先の機器10において、要求先の機器10に搭載されて従操作アシスタントとして動作する操作アシスタントの対話相手としての主操作アシスタントを特定することができる。その上で、要求元の機器10に搭載されている操作アシスタントと要求先の機器10に搭載されている操作アシスタントとの間で主従関係を形成することができる。
接続要求を示す情報に識別情報が含まれていない場合、実施例4-1と同様に、上記の主従関係は形成されない。
(実施例4-3)
図29を参照して、実施例4-3に係る処理について説明する。図29は、機器10の一例を示す。一例として、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
機器10Fには、操作アシスタントB1が搭載されており、機器10Aには、操作アシスタントB1,B2が搭載されているものとする。機器10Fが第1機器の一例に相当し、機器10Aが第2機器に相当する。また、機器10Fに搭載されている操作アシスタントB1が第1操作アシスタントの一例に相当し、機器10Aに搭載されている操作アシスタントB1又は操作アシスタントB2が第2操作アシスタントの一例に相当する。
機器10Fのアシスタント制御部22は、機器10Fの機器識別情報と、機器10Fに搭載されている操作アシスタントB1のアシスタント識別情報と、従操作アシスタントとして動作すべき操作アシスタントのアシスタント識別情報と、を含む接続要求を示す情報を作成する。機器10Fは、その接続要求を示す情報を機器10Aに送信する。
従操作アシスタントとして動作すべき操作アシスタントは、例えば、機器10Fを利用するユーザによって指定されてもよいし、後述する操作アシスタントの特定方法によって指定されてもよいし、その他の方法によって指定されてもよい。
機器10Fのアシスタント制御部22は、要求先の機器10に搭載されて従操作アシスタントとして動作する操作アシスタントとの関係で、機器10Fに搭載されている操作アシスタントB1を主操作アシスタントとして設定する。
また、機器10Aのアシスタント制御部22は、実施例4-1と同様に、機器10Fから送られてきた接続要求を示す情報に識別情報が含まれているか否かを確認する。接続要求を示す情報に機器識別情報が含まれている場合、機器10Aのアシスタント制御部22は、その機器識別情報に基づいて、機器10Aに接続要求を示す情報を送信した機器10Fを特定する。これにより、機器10Aのアシスタント制御部22は、返答先の機器10Fを特定することができる。また、接続要求を示す情報に、機器10Fに搭載されている操作アシスタントB1のアシスタント識別情報が含まれている場合、機器10Aのアシスタント制御部22は、そのアシスタント識別情報に基づいて、接続要求を示す情報を送信した機器10Fに搭載されている操作アシスタントB1を特定し、この操作アシスタントB1を主操作アシスタントとして識別する。また、接続要求を示す情報に従操作アシスタントとして動作すべき操作アシスタントのアシスタント識別情報が含まれている場合、機器10Aのアシスタント制御部22は、そのアシスタント識別情報に基づいて、機器10Aに搭載されている操作アシスタントB1,B2の中の何れかの操作アシスタントを従操作アシスタントとして識別する。例えば、機器10Aに搭載されている操作アシスタントB1が従操作アシスタントとして動作すべき操作アシスタントであると指定されている場合、機器10Aのアシスタント制御部22は、当該操作アシスタントB1を、機器10Fに搭載されている操作アシスタントB1からの指示に従って動作する従操作アシスタントとして設定する。
以上により、機器10Fに搭載されている主操作アシスタントとしての操作アシスタントB1と、機器10Aに搭載されている従操作アシスタントとしての操作アシスタントB1との間で情報がやり取りされる。機器10Aに搭載されている操作アシスタントB1は、機器10Fに搭載されている操作アシスタントA1からの指示に従って動作する。
実施例4-3によれば、要求先の機器10に複数の操作アシスタントが搭載されている場合であっても、要求先の機器10において、従操作アシスタントとして動作する操作アシスタントを特定することができる。その上で、要求元の機器10に搭載されている操作アシスタントと要求先の機器10に搭載されている操作アシスタントとの間で主従関係を形成することができる。
接続要求を示す情報に識別情報が含まれていない場合、実施例4-1と同様に、上記の主従関係は形成されない。
(実施例4-4)
実施例4-4に係る処理について説明する。実施例4-4では、主操作アシスタントが搭載されている機器10の周囲に、同一種類の複数の操作アシスタントと複数の機器10が存在する場合、主操作アシスタントが搭載されている機器10のアシスタント制御部22は、識別情報に基づいて、指示を受け取るべき機器10と従操作アシスタントを特定する。なお、機器10の周囲とは、例えば、当該機器10が通信可能な範囲、又は、当該機器10を基準として予め定められた範囲等である。
例えば、操作アシスタントA1が搭載されている機器10Fが、他の機器10に接続要求を示す情報を送信し、機器10Fに搭載されている操作アシスタントA1が、主操作アシスタントに該当するものとする。機器10Fは第1機器の一例に相当する。
主操作アシスタントとしての操作アシスタントA1が搭載されている機器10Fには、主操作アシスタントからの指示を受け取るべき従操作アシスタントのアシスタント識別情報と、当該従操作アシスタントが搭載されている機器10の機器識別情報が入力される。これらの識別情報の入力方法について後述する。
機器10Fのアシスタント制御部22は、機器10Fに入力されたアシスタント識別情報に基づいて、従操作アシスタントとして動作する操作アシスタントを識別し、機器10Fに入力された機器識別情報に基づいて、従操作アシスタントが搭載されている機器10を特定する。従操作アシスタントが搭載されている機器10は、第2機器の一例に相当する。
以上のように、従操作アシスタントと当該従操作アシスタントが搭載されている機器10が特定されると、機器10Fに搭載されている主操作アシスタントとしての操作アシスタントA1と、従操作アシスタントとの間で情報がやり取りされる。従操作アシスタントは、操作アシスタントA1からの指示に従って動作する。
実施例4-4によれば、主操作アシスタントが搭載されている機器の周囲に、同一種類の複数の操作アシスタントと複数の機器10が存在する場合であっても、従操作アシスタントと当該従操作アシスタントが搭載されている機器10を特定して、主操作アシスタントと従操作アシスタントとの間で主従関係を形成することができる。
(実施例4-5)
実施例4-5について説明する。機器10に複数の操作アシスタントが搭載されている場合、当該複数の操作アシスタントの中で、主操作アシスタントとして動作する操作アシスタントと、副操作アシスタントとして動作する操作アシスタントが定められてもよい。通常、主操作アシスタントが当該機器10にて動作し、ユーザからの要望に応じて応答するが、主操作アシスタントが対応できない要求等が与えられた場合、副操作アシスタントが、その要求等に応じて動作する。また、複数の操作アシスタントの中で、稼動しない操作アシスタントが定められてもよい。なお、ここでの主操作アシスタントは、操作アシスタントの主従関係における主操作アシスタントであるとは限らず、複数の操作アシスタントが搭載された機器10において主に動作する操作アシスタントである。
例えば、ユーザによって、操作アシスタントの「主」又は「副」が定められる。図30は、その設定画面を示す。機器10の制御部20は、ユーザの指示に従って、設定画面86をUI部14に表示させ、当該機器10に搭載されている操作アシスタントを識別するための情報を設定画面86に表示させる。例えば、機器10Aに搭載されている操作アシスタントの「主」又は「副」が定められるものとする。機器10Aには、例えば、操作アシスタントA,B,Sが搭載されている。設定画面86には、操作アシスタントA,B,Sのそれぞれを識別するための情報(例えば名称等)が表示されている。各操作アシスタントに対応する設定ボタン88,90,92が、設定画面86に表示されている。ユーザは、設定ボタンを操作することで、主操作アシスタント、副操作アシスタント、及び、稼動しない操作アシスタントを設定することができる。例えば、操作アシスタントBが主操作アシスタントとして設定されており、標準操作アシスタントSが副操作アシスタントとして設定されており、操作アシスタントAが稼動しない操作アシスタントとして設定されている。これにより、機器10Aにおいては、通常、操作アシスタントBが、各種の処理や制御(例えばユーザからの要望を実現するための処理等)を実行し、操作アシスタントBが処理することができない事態が発生したときに、標準操作アシスタントSが、その事態に対処する。例えば、操作アシスタントBでは制御不可能な機器や処理の制御指示が機器10に与えられた場合、標準操作アシスタントSは、その制御指示に従って動作する。また、操作アシスタントAは、機器10Aでは稼動しない。
なお、情報処理システムに含まれる全機器10において、主操作アシスタントと副操作アシスタントが設定されてもよいし、一部の機器10において、主操作アシスタントと副操作アシスタントが設定されてもよい。また、同一の機器10において、複数の副操作アシスタントが設定されてもよい。この場合、複数の操作アシスタントの間で順位が定められてもよい。
また、ユーザアカウント毎に、主操作アシスタントと副操作アシスタントが設定されてもよい。つまり、同一の操作アシスタントであっても、あるユーザアカウントでは主操作アシスタントとして設定され、別のユーザアカウントでは副操作アシスタントとして設定されてもよい。
以下、図31を参照して、実施例4-5に係る処理について説明する。図31は、機器の一例を示す図である。一例として、機器10Fが要求元の機器に該当し、機器10Aが要求先の機器に該当する。
機器10Fには、操作アシスタントA1,B1が搭載されており、機器10Aには、操作アシスタントA1,B1,Sが搭載されているものとする。機器10Fが第1機器に相当し、機器10Aが第2機器に相当する。
機器10Fにおいては、操作アシスタントA1が主操作アシスタントとして定められ、操作アシスタントB1が副操作アシスタントとして定められている。機器10Aにおいては、操作アシスタントA1が主操作アシスタントとして定められ、操作アシスタントB1が副操作アシスタントとして定められ、標準操作アシスタントSは稼動していない。
機器10Fのアシスタント制御部22は、機器10Fの機器識別情報と、機器10Fにて主操作アシスタントとして動作している操作アシスタントA1のアシスタント識別情報と、を含む接続要求を示す情報を作成する。機器10Fは、その接続要求を示す情報を機器10Aに送信する。
機器10Aのアシスタント制御部22は、機器10Fから送られてきた接続要求を示す情報に識別情報が含まれているか否かを確認する。接続要求を示す情報に機器識別情報が含まれている場合、機器10Aのアシスタント制御部22は、その機器識別情報に基づいて、機器10Aに接続要求を示す情報を送信した機器10Fを特定する。これにより、機器10Aのアシスタント制御部22は、返答先の機器10Fを特定することができる。また、接続要求を示す情報に、機器10Fにて主操作アシスタントとして動作する操作アシスタントA1のアシスタント識別情報が含まれている場合、機器10Aのアシスタント制御部22は、そのアシスタント識別情報に基づいて、機器10Aに搭載されている操作アシスタントA1,B1,Sの中から、操作アシスタントA1と同一種類の操作アシスタントであって機器10Aにて主操作アシスタントとして動作している操作アシスタントA1を特定し、その操作アシスタントA1を、操作アシスタントA1に対する従操作アシスタントとして識別する。
機器10Aのアシスタント制御部22は、機器10Fに搭載されている操作アシスタントA1との関係で、機器10Aに搭載されている操作アシスタントA1を従操作アシスタントとして設定する。また、機器10Fのアシスタント制御部22は、機器10Aに搭載されている操作アシスタントA1との関係で、機器10Fに搭載されている操作アシスタントA1を主操作アシスタントとして設定する。
以上により、機器10Fにて主操作アシスタントとして動作する操作アシスタントA1と、機器10Aにて主操作アシスタントとして動作する操作アシスタントA1との間で、主従関係が形成される。機器10Aに搭載されている操作アシスタントA1は、機器10Fに搭載されている操作アシスタントA1との関係では、従操作アシスタントとして動作する。これらの操作アシスタントとの間で情報がやり取りされ、機器10Aに搭載されている操作アシスタントA1は、機器10Fに搭載されている操作アシスタントA1からの指示に従って動作する。
要求元の主操作アシスタントと要求先の主操作アシスタントとの間で主従関係を形成することで、つまり、両装置にて主に稼動している操作アシスタント同士で情報をやり取りすることで、処理に要する時間を短縮できる場合がある。例えば、操作アシスタントのログイン処理又はユーザアカウントの切り替えが不要になる場合があり、これらに要する時間が不要になる結果、処理に要する時間を短縮することができる。
上記の例では、要求元の主操作アシスタントと要求先の主操作アシスタントとの間で主従関係が形成されているが、別の例として、要求元の主操作アシスタントと要求先の副操作アシスタントとの間で主従関係が形成されてもよいし、要求元の副操作アシスタントと要求先の主操作アシスタント又は副操作アシスタントとの間で主従関係が形成されてもよい。要求元の副操作アシスタントは、要求元の機器10では副操作アシスタントとして動作するが、要求先の主操作アシスタント又は副操作アシスタントとの間では、主操作アシスタントとして動作する。
例えば、要求元の主操作アシスタントが別の処理を実行している場合には、要求元の副操作アシスタントと要求先の主操作アシスタント又は副操作アシスタントとの間で主従関係が形成されてもよい。また、要求先の主操作アシスタントが別の処理を実行している場合には、要求元の主操作アシスタント又は副操作アシスタントと要求先の副操作アシスタントとの間で主従関係が形成されてもよい。主操作アシスタント同士で主従関係を形成できない場合に、要求元の副操作アシスタントと要求先の主操作アシスタントとの間で主従関係が形成される。要求元の副操作アシスタントと要求先の主操作アシスタントとの間でも主従関係を形成することができない場合、要求元の副操作アシスタントと要求先の主操作アシスタントとの間で主従関係が形成される。その他、要求元の主操作アシスタントと要求先の主操作アシスタントとの間で情報をやり取りすることができず、要求元の主操作アシスタントと要求先の副操作アシスタントとの間で情報をやり取りすることができる場合、要求元の主操作アシスタントと要求先の副操作アシスタントとの間で主従関係が形成されてもよい。同様に、要求元の副操作アシスタントと要求先の主操作アシスタントとの間で情報をやり取りすることができず、要求元の副操作アシスタントと要求先の副操作アシスタントとの間で情報をやり取りすることができる場合、要求元の副操作アシスタントと要求先の副操作アシスタントとの間で主従関係が形成されてもよい。
(実施例4-6)
実施例4-6に係る処理として、機器10と操作アシスタントの特定処理、及び、識別情報の作成処理について説明する。これらの処理は、上述した各実施例に適用されてもよい。
例えば、ユーザが、操作アシスタントの一般的な名称以外の名称を、当該操作アシスタントに紐付ける場合がある。例えば、操作アシスタントAに「太郎」といった名称が付与される場合がある。この場合、その名称が当該操作アシスタントAのアシスタント識別情報として用いられ、アシスタント制御部22は、その名称に基づいて操作アシスタントAを特定する。例えば、接続要求を示す情報に、主操作アシスタントの名称を示すアシスタント識別情報が含まれ、要求先の機器10のアシスタント制御部22は、その名称に基づいて主操作アシスタントを特定する。また、ユーザが、操作アシスタントAの名称を音声によって発した場合、その音声を受けた機器10のアシスタント制御部22は、その音声を解析し、その名称に基づいて操作アシスタントAを特定する。例えば、ユーザが、ある操作アシスタントの名称と、主操作アシスタント又は従操作アシスタントの何れかを示す情報を音声によって発した場合、その音声を受けたアシスタント制御部22は、その音声を解析し、その名称に基づいて操作アシスタントを、主操作アシスタント又は従操作アシスタントとして特定する。
また、アシスタント制御部22は、ユーザの生体情報に基づいて、接続要求を与えたユーザを特定してもよい。生体情報として、例えば、音声情報、指紋情報、網膜情報、虹彩情報又は顔画像等が用いられる。例えば、要求元の機器10のアシスタント制御部22は、生体情報に基づいて、要求元の機器10を利用するユーザを特定する。要求先の機器10を利用するユーザについても同様である。
また、アシスタント制御部22は、機器10に固有の識別情報を用いて、機器10を特定してもよい。その識別情報として、例えば、機器10のMACアドレス又はIPアドレス等が用いられる。この識別情報を用いることで、要求元の機器10が特定されてもよいし、要求先の機器10が特定されてもよい。
また、要求元の機器10のアシスタント制御部22は、機器10又は操作アシスタントが実行すべき動作を示す情報、その動作を実行すべき時を示す情報、その動作を実行すべき場所を示す情報、その動作を実行すべき機器10又は操作アシスタントを示す情報、その動作を実行する理由を示す情報、及び、どのようにその動作を実行するべきかを示す情報の中の少なくとも1つの情報に基づいて、要求先の機器10又は操作アシスタントを特定してもよい。また、要求元の機器10に搭載されている操作アシスタントは、要求先の機器10と操作アシスタントを特定するために必要な情報を収集するための質問をユーザに与えてもよい。要求元の機器10に搭載されている操作アシスタントは、ユーザから得られた回答に基づいて、要求先の機器10と操作アシスタントを推測してもよい。また、ユーザから回答が得られない場合、又は、ユーザが質問を停止させた場合、要求元の機器10に搭載されている操作アシスタントは、限られた回答に基づいて、要求先の機器10と操作アシスタントを推測してもよい。
また、各機器10の操作履歴が管理されて、操作履歴を示す情報が識別情報として用いられてもよい。各機器10の操作履歴を示す情報は、各機器10に記憶されてもよいし、各機器10によって共有されてもよいし、サーバ等の装置に記憶されてもよい。例えば、要求元の機器10のアシスタント制御部22は、各機器10の操作履歴に基づいて、ユーザによって指定された機器と同一種類の機器であって直近に利用された機器を、要求先の機器10として特定する。例えば、ユーザが、機器10としてのロボットに処理を依頼する場合、要求元の機器10のアシスタント制御部22は、直近(現時点に最も近い時点)に利用されたロボットを、その処理の依頼先(要求先)の機器10として特定する。具体例を挙げて説明する。情報処理システムにロボットA,Bが含まれている場合において、ロボットAが直近に使用されているものとする。この場合、要求元の機器10のアシスタント制御部22は、直近に利用されたロボットAを要求先の機器10として特定する。接続要求を示す情報は、要求元の機器10からロボットAに送信される。別の例として、要求元の機器10に搭載されている操作アシスタントは、ロボットA,Bの何れが要求先の機器10であるのかをユーザに問い合わせて、ユーザからの回答に基づいて要求先の機器10を特定してもよい。
また、各機器10に搭載されている各操作アシスタントの操作履歴が管理されて、操作履歴を示す情報が識別情報として用いられてもよい。各操作アシスタントの操作履歴を示す情報は、各機器10に記憶されてもよいし、各機器10によって共有されてもよいし、サーバ等の装置に記憶されてもよい。例えば、要求元の機器10のアシスタント制御部22は、各操作アシスタントの操作履歴に基づいて、ユーザによって主操作アシスタントとして指定された操作アシスタントと同一種類の操作アシスタントであって直近に利用された操作アシスタントを、主操作アシスタントとして特定する。また、要求元又は要求先の機器10のアシスタント制御部22は、ユーザによって従操作アシスタントとして指定された操作アシスタントと同一種類の操作アシスタントであって直近に利用された操作アシスタントを、従操作アシスタントとして特定してもよい。また、機器10の特定の場合と同様に、要求元又は要求先の機器10に搭載されている操作アシスタントが、ユーザに問い合わせて、ユーザからの回答に基づいて主操作アシスタントと従操作アシスタントを特定してもよい。
また、ユーザは、操作アシスタントを指定せずに、操作対象の機器10、実行対象の処理又は操作対象のソフトウェアを指定して、接続要求を要求元の機器10に与えてもよい。例えば、要求元の機器10は、操作対象の機器10(例えば要求先の機器10)を検索し、操作対象の機器10に操作アシスタントが搭載されている場合、当該操作アシスタントを起動させる。当該操作アシスタントが、ユーザの要求に対応する処理を制御する。また、要求元の機器10のアシスタント制御部22は、実行対象の処理を実行可能な機器10を検索し、その機器10に搭載されている操作アシスタントを起動させてもよい。このように、ユーザが操作アシスタントを指定しなくても、ユーザが希望する処理を実現するための操作アシスタントを利用することができる。
また、カメラ等の撮影装置によってユーザの顔が撮影され、要求元の機器10のアシスタント制御部22は、その撮影によって生成された画像に基づいて、ユーザの目線の動きを検知し、その検知結果に基づいて、操作対象の機器10(例えば要求先の機器10)を特定してもよい。例えば、目線の先に配置されている機器10が、操作対象の機器10として特定される。なお、撮影装置は、要求元の機器10に設けられていてもよいし、要求元の機器10以外の場所に設置されていてもよい。また、アシスタント制御部22は、ユーザの音声に基づいて、操作対象の機器10を特定してもよい。
また、要求元の機器10のアシスタント制御部22は、機器10の位置関係に基づいて、操作対象の機器10を特定してもよい。例えば、アシスタント制御部22は、要求元の機器10に最も近い位置に設置されている機器10を操作対象の機器10として特定する。別の例として、アシスタント制御部22は、要求元の機器10との間の相対的な向きの関係に基づいて、操作対象の機器10を特定してもよい。例えば、アシスタント制御部22は、要求元の機器10に向かい合っている機器10を、操作対象の機器10として特定する。
以上のようにして、機器10と操作アシスタントが特定され、また、識別情報が作成される。機器10又は操作アシスタントを特定するために用いられる識別情報には、機器10の種類を示す情報、機器10固有の識別番号、機器10の位置を示す情報、機器10の名称を示す情報、操作アシスタントの名称を示す情報、ユーザの生体情報(音声情報、及び指紋情報等)、機器10又は操作アシスタントにログインしているユーザアカウントを示す情報、及び、機器10又は操作アシスタントの操作履歴を示す情報の中の少なくとも1つの情報が含まれてもよい。アシスタント制御部22は、当該少なくとも1つの情報に基づいて、要求元の機器10、要求元の機器10に搭載されている操作アシスタント、要求先の機器10、及び、要求先の機器10に搭載されている操作アシスタントを特定してもよい。
<その他の実施形態>
上記の実施例4-5は、第2実施形態に適用されてもよい。例えば、要求元の機器10Fに操作アシスタントA1、B1が搭載されており、機器10Fでは、操作アシスタントA1が主操作アシスタントとして設定され、操作アシスタントB1が副操作アシスタントとして設定されているものとする。この場合、主操作アシスタントとしての操作アシスタントA1が、要求先の機器10に対して操作指示を送る。操作アシスタントA1が、要求先の機器10を制御する機能を有していない場合、副操作アシスタントとしての操作アシスタントB1が、要求先の機器10に対して操作指示を送る。
また、要求先の機器10に複数の操作アシスタントが搭載されている場合に、当該複数の操作アシスタントの中の1つの操作アシスタントが主操作アシスタントとして設定され、他の操作アシスタントが副操作アシスタントとして設定されてもよい。例えば、要求先の機器10Aに操作アシスタントA1,B1が搭載されており、機器10Aでは、操作アシスタントA1が主操作アシスタントとして設定され、操作アシスタントB1が副操作アシスタントとして設定されているものとする。この場合、主操作アシスタントとしての操作アシスタントA1が、要求元の機器10からの操作指示を受け付けて、その操作指示に対応する処理を制御する。操作アシスタントA1が、その操作指示に対応する処理を制御する機能を有していない場合、副操作アシスタントとしての操作アシスタントB1が、要求元の機器10からの操作指示を受け付けて、その操作指示に対応する処理を制御する。
また、要求元の機器10Fに搭載されている主操作アシスタント(例えば操作アシスタントA1)と、要求先の機器10Aに搭載されている主操作アシスタント(例えば操作アシスタントA1)との間で情報がやり取りされる。もちろん、第4実施形態と同様に、要求元の機器10Fに搭載されている副操作アシスタントと、要求先の機器10Fに搭載されている主操作アシスタント又は副操作アシスタントとの間で情報がやり取りされてもよい。
なお、要求元の機器10において、稼動しない操作アシスタントが設定されてもよいし、要求先の機器10において、稼動しない操作アシスタントが設定されてもよい。
なお、上述した各実施形態において、ユーザアカウントとして、SNS(Social Network Service)用のアカウントが用いられてもよい。なお、SNS用アカウントは、ソーシャルメディア(Social media)用のアカウントとも称されることがある。例えば、ユーザは、SNS用アカウントを用いて、機器10にログインしてもよいし、操作アシスタントにログインしてもよい。また、SNS用アカウントが、複数の操作アシスタントの共通のユーザアカウントとして登録されている場合には、当該SNS用アカウントを用いて、当該複数の操作アシスタントにログインしてもよい。複数の機器10についても同様である。
上記の機器10は、一例としてハードウェアとソフトウェアとの協働により実現される。具体的には、機器10は、図示しないCPU等の1又は複数のプロセッサを備えている。当該1又は複数のプロセッサが、図示しない記憶装置に記憶されたプログラムを読み出して実行することにより、機器10の各部の機能が実現される。上記プログラムは、CDやDVD等の記録媒体を経由して、又は、ネットワーク等の通信経路を経由して、記憶装置に記憶される。別の例として、機器10の各部は、例えばプロセッサや電子回路やASIC(Application Specific Integrated Circuit)等のハードウェア資源により実現されてもよい。その実現においてメモリ等のデバイスが利用されてもよい。更に別の例として、機器10の各部は、DSP(Digital Signal Processor)やFPGA(Field Programmable Gate Array)等によって実現されてもよい。