(57)【要約】      （修正有）【課題】１つのソフトウェアロボットプログラムが複数の外部機器と連携してサービスを提供する場合において、そのサービスを実行する際の複数の外部機器の切替動作が軽減され得るメッセージ提供装置、プログラム、及び表示制御方法を提供する。【解決手段】ボットサーバＡ（１６Ａ）は、ユーザ間でメッセージをやり取りするメッセージサービス上で動作し、プリンタＡ（１８Ａ）〜プリンタＣ（１８Ｃ）等の外部機器との対応付けの登録要求をユーザ毎に受け付ける。ボットサーバＡ（１６Ａ）は、１人のユーザに対して複数の同一チャットボットを提供し、ユーザからの要求に応じて、複数の同一チャットボットのそれぞれに１又は複数の異なる外部機器を対応付けて登録する。【選択図】図１
2019160211.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ間でメッセージをやり取りするメッセージサービス上で動作する、ユーザとメッセージをやり取りするソフトウェアロボットプログラムと外部機器との対応付けの登録要求をユーザ毎に受け付ける受付手段と、
１人のユーザに対して複数の同一ソフトウェアロボットプログラムを提供し、前記ユーザからの要求に応じて、前記複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録する登録手段と、
を備えるメッセージ提供装置。
【請求項２】
前記登録手段は、一定条件が満たされる場合に前記ユーザに対して前記ソフトウェアロボットプログラムを順次追加提供する
請求項１に記載のメッセージ提供装置。
【請求項３】
前記登録手段は、初期状態では前記ユーザに対して１つの前記ソフトウェアロボットプログラムを提供し、一定条件が満たされる場合に前記ユーザに対して前記ソフトウェアロボットプログラムを追加提供する
請求項１に記載のメッセージ提供装置。
【請求項４】
前記一定条件は、１つの前記ソフトウェアロボットプログラムに対応付けられる前記外部機器の個数が上限を超えたときである
請求項２，３のいずれかに記載のメッセージ提供装置。
【請求項５】
前記一定条件は、１つの前記ソフトウェアロボットプログラムに対応付けられる前記外部機器間の切替回数が上限を超えたときである
請求項２，３のいずれかに記載のメッセージ提供装置。
【請求項６】
前記一定条件は、１つの前記ソフトウェアロボットプログラムに対応付けられる前記外部機器の動作条件間の切替回数が上限を超えたときである
請求項２，３のいずれかに記載のメッセージ提供装置。
【請求項７】
前記登録手段は、前記ユーザからの前記登録要求に応じて、前記複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録する
請求項１に記載のメッセージ提供装置。
【請求項８】
前記登録手段は、前記ユーザからの前記外部機器の切替要求に応じて、前記複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録する
請求項１に記載のメッセージ提供装置。
【請求項９】
前記登録手段は、前記ユーザからの要求に応じて、前記複数の同一ソフトウェアロボットプログラムと１又は複数の異なる外部機器との対応付けを変更して登録する
請求項１に記載のメッセージ提供装置。
【請求項１０】
前記登録手段は、前記外部機器間の切替回数に応じて前記複数の同一ソフトウェアロボットプログラムと１又は複数の異なる外部機器との対応付けを変更して登録する
請求項９に記載のメッセージ提供装置。
【請求項１１】
前記登録手段は、前記外部機器の動作条件間の切替回数に応じて前記複数の同一ソフトウェアロボットプログラムと１又は複数の異なる外部機器との対応付けを変更して登録する
請求項９に記載のメッセージ提供装置。
【請求項１２】
前記外部機器は、印刷機器である
請求項１〜１１のいずれかに記載のメッセージ提供装置。
【請求項１３】
コンピュータを
ユーザ間でメッセージをやり取りするメッセージサービス上で動作する、ユーザとメッセージをやり取りするソフトウェアロボットプログラムと外部機器との対応付けの登録要求をユーザ毎に受け付ける受付手段と、
１人のユーザに対して複数の同一ソフトウェアロボットプログラムを提供し、前記ユーザからの要求に応じて、前記複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録する登録手段
として動作させるためのプログラム。
【請求項１４】
ユーザ間でメッセージをやり取りするメッセージサービス上で動作する、ユーザとメッセージをやり取りするソフトウェアロボットプログラムと外部機器との対応付けの登録要求をユーザ毎に受け付けるステップと、
１人のユーザからの要求に応じて、一定条件が満たされる場合に複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録することを促すメッセージを画面に表示させるステップと、
を備える表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージ提供装置、プログラム、及び表示制御方法に関する。
【背景技術】
【０００２】
特許文献１には、ユーザからの動作指示の結果を報告するメッセージを、そのメッセージの宛て先を明示して通知するメッセージ通知装置が記載されている。動作指示検出部は、メッセージから動作指示を検出するとともに、該メッセージを書き込んだメンバを指示者として特定し、報告メッセージ表示部は、該動作指示に従って動作した結果についてのメッセージを、該指示者を宛て先として明記した状態で家族伝言板に表視させる。
【０００３】
チャットやＳＮＳ（ソーシャルネットワーキングサービス）等の、ユーザ間でメッセージをやり取りするメッセージサービスでは、このメッセージサービス上で動作する、音声や文字を介した、人間との対話をシミュレーションする目的で設計された（擬人化）ソフトウェアロボットプログラム（以下、これを「チャットボット」という）が提案されている。チャットボットは、ユーザから入力されたメッセージから特定の単語や語句を検出し、それに合う予め用意された応答を出力するように動作する。チャットボットとしては、企業や店舗などの、広告用または商業用に割り当てられたメッセンジャーサービスアカウントが運用するものもあり、ユーザは自然なメッセージのやり取りを通じてチャットボットと会話を楽しみ、また、チャットボットに対して種々のサービスを実行させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１６４５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ソフトウェアロボットプログラムは、外部機器と連携することにより多様なサービスを提供し得るところ、１つのソフトウェアロボットプログラムが複数の外部機器と連携することを想定すると、ユーザが所望のサービスを実行させるためには複数の外部機器の切替動作が必要となり煩雑化する。
【０００６】
本発明は、１つのソフトウェアロボットプログラムが複数の外部機器と連携してサービスを提供する構成において、１人のユーザに対して同一ソフトウェアロボットプログラムを１つしか提供しない場合に比べて、そのサービスを実行する際の複数の外部機器の切替動作を減らすことを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、ユーザ間でメッセージをやり取りするメッセージサービス上で動作する、ユーザとメッセージをやり取りするソフトウェアロボットプログラムと外部機器との対応付けの登録要求をユーザ毎に受け付ける受付手段と、１人のユーザに対して複数の同一ソフトウェアロボットプログラムを提供し、前記ユーザからの要求に応じて、前記複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録する登録手段とを備えるメッセージ提供装置である。
【０００８】
請求項２に記載の発明は、前記登録手段は、一定条件が満たされる場合に前記ユーザに対して前記ソフトウェアロボットプログラムを順次追加提供する請求項１に記載のメッセージ提供装置である。
【０００９】
請求項３に記載の発明は、前記登録手段は、初期状態では前記ユーザに対して１つの前記ソフトウェアロボットプログラムを提供し、一定条件が満たされる場合に前記ユーザに対して前記ソフトウェアロボットプログラムを追加提供する請求項１に記載のメッセージ提供装置である。
【００１０】
請求項４に記載の発明は、前記一定条件は、１つの前記ソフトウェアロボットプログラムに対応付けられる前記外部機器の個数が上限を超えたときである請求項２，３のいずれかに記載のメッセージ提供装置である。
【００１１】
請求項５に記載の発明は、前記一定条件は、１つの前記ソフトウェアロボットプログラムに対応付けられる前記外部機器間の切替回数が上限を超えたときである請求項２，３のいずれかに記載のメッセージ提供装置である。
【００１２】
請求項６に記載の発明は、前記一定条件は、１つの前記ソフトウェアロボットプログラムに対応付けられる前記外部機器の動作条件間の切替回数が上限を超えたときである請求項２，３のいずれかに記載のメッセージ提供装置である。
【００１３】
請求項７に記載の発明は、前記登録手段は、前記ユーザからの前記登録要求に応じて、前記複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録する請求項１に記載のメッセージ提供装置である。
【００１４】
請求項８に記載の発明は、前記登録手段は、前記ユーザからの前記外部機器の切替要求に応じて、前記複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録する請求項１に記載のメッセージ提供装置である。
【００１５】
請求項９に記載の発明は、前記登録手段は、前記ユーザからの要求に応じて、前記複数の同一ソフトウェアロボットプログラムと１又は複数の異なる外部機器との対応付けを変更して登録する請求項１に記載のメッセージ提供装置である。
【００１６】
請求項１０に記載の発明は、前記登録手段は、前記外部機器間の切替回数に応じて前記複数の同一ソフトウェアロボットプログラムと１又は複数の異なる外部機器との対応付けを変更して登録する請求項９に記載のメッセージ提供装置である。
【００１７】
請求項１１に記載の発明は、前記登録手段は、前記外部機器の動作条件間の切替回数に応じて前記複数の同一ソフトウェアロボットプログラムと１又は複数の異なる外部機器との対応付けを変更して登録する請求項９に記載のメッセージ提供装置である。
【００１８】
請求項１２に記載の発明は、前記外部機器は、印刷機器である請求項１〜１１のいずれかに記載のメッセージ提供装置である。
【００１９】
請求項１３に記載の発明は、コンピュータを、ユーザ間でメッセージをやり取りするメッセージサービス上で動作する、ユーザとメッセージをやり取りするソフトウェアロボットプログラムと外部機器との対応付けの登録要求をユーザ毎に受け付ける受付手段と、１人のユーザに対して複数の同一ソフトウェアロボットプログラムを提供し、前記ユーザからの要求に応じて、前記複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録する登録手段として動作させるためのプログラムである。
【００２０】
請求項１４に記載の発明は、ユーザ間でメッセージをやり取りするメッセージサービス上で動作する、ユーザとメッセージをやり取りするソフトウェアロボットプログラムと外部機器との対応付けの登録要求をユーザ毎に受け付けるステップと、１人のユーザからの要求に応じて、一定条件が満たされる場合に複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の異なる外部機器を対応付けて登録することを促すメッセージを画面に表示させるステップとを備える表示制御方法である。
【発明の効果】
【００２１】
請求項１〜１４に記載の発明によれば、１つのソフトウェアロボットプログラムが複数の外部機器と連携してサービスを提供する場合において、１人のユーザに対して同一ソフトウェアロボットプログラムを１つしか提供しない場合に比べて、そのサービスを実行する際の複数の外部機器の切替動作が軽減され得る。
【００２２】
請求項２〜６に記載の発明によれば、さらに、一定条件が満たされる場合にソフトウェアロボットプログラムが追加提供される。
【００２３】
請求項７に記載の発明によれば、さらに、ユーザからの登録要求に応じて、複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の外部機器が対応付けられる。
【００２４】
請求項８に記載の発明によれば、さらに、ユーザからの切替要求に応じて、複数の同一ソフトウェアロボットプログラムのそれぞれに１又は複数の外部機器が対応付けられる。
【００２５】
請求項９〜１１に記載の発明によれば、さらに、ユーザからの要求に応じて、複数の同一ソフトウェアロボットプログラムと１又は複数の異なる外部機器との対応付けが変更され得る。
【００２６】
請求項１２に記載の発明によれば、さらに、ユーザによる複数の印刷機器の切替動作が軽減され得る。
【図面の簡単な説明】
【００２７】
【図１】実施形態１のシステム構成図である。
【図２】実施形態１の機能ブロック図である。
【図３】実施形態１の構成ブロック図である。
【図４】実施形態１の設定情報登録説明図（その１）である。
【図５】設定情報テーブルの説明図である。
【図６】同一ユーザによるプリンタの切替説明図である。
【図７】１つのチャットボットによる複数プリンタの切替説明図である。
【図８】実施形態１の複数チャットボットのそれぞれとプリンタとの対応付け説明図（その１）である。
【図９】実施形態１の設定情報テーブル説明図である。
【図１０】実施形態１の複数チャットボットのそれぞれとプリンタとの対応付け説明図（その２）である。
【図１１】実施形態１のチャットボット追加説明図である。
【図１２】実施形態１のユーザ端末画面説明図である
【図１３】実施形態１の設定情報テーブル更新説明図である。
【図１４】実施形態１のシーケンス図である。
【図１５】実施形態２のユーザ端末画面説明図である。
【図１６】実施形態３のユーザ端末画面説明図である。
【図１７】実施形態３の設定情報テーブル更新説明図である。
【図１８】実施形態４のユーザ端末画面説明図である。
【図１９】実施形態４の設定情報テーブル更新説明図である。
【図２０】実施形態５の設定情報テーブル更新説明図である。
【図２１】変形例のシステム構成図である。
【発明を実施するための形態】
【００２８】
以下、図面に基づき本発明の実施形態について、チャットボットとして、ユーザからのメッセージに応じてプリントサービスを提供するチャットボットを例にとり説明する。
【００２９】
＜実施形態１＞
図１は、実施形態におけるメッセージサービスシステムの全体構成図を示す。メッセージサービスシステムは、ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）、チャットサービスサーバ１４、ボットサーバＡ（１６Ａ）〜ボットサーバＢ（１６Ｂ）、及びプリンタＡ（１８Ａ）〜プリンタＣ（１８Ｃ）を備える。
【００３０】
ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）は、メッセージサービスのユーザが利用する端末であり、スマートフォンやタブレット端末、ＰＣ（パーソナルコンピュータ）等の情報端末である。図では、ユーザ端末Ａ（１０Ａ）、ユーザ端末Ｂ（１０Ｂ）、ユーザ端末Ｃ（１０Ｃ）の３台を示しているが、その数は任意である。ユーザは、ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）を操作してクラウド１２上のチャットサービスサーバ１４にアクセスし、他のユーザやチャットボットとメッセージをやり取りする。以下では、ユーザＡがユーザ端末Ａを操作し、ユーザＢがユーザ端末Ｂを操作し、ユーザＣがユーザ端末Ｃを操作するものとする。ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）とチャットサービスサーバ１４は、有線あるいは無線の通信ネットワークでデータ送受信可能に接続される。通信ネットワークの一例はインターネット等の公衆回線であるが、専用回線でもよい。
【００３１】
チャットサービスサーバ１４は、クラウド１２上に配置されたクラウドサーバであり、チャットサービスを提供するサーバである。チャットサービスサーバ１４は、１又は複数のサーバコンピュータで構成される。チャットサービスサーバ１４は、ユーザ端末Ａ〜ユーザ端末Ｃに対するメッセージの送受信処理、及びメッセージ送受信の表示画面表示等、メッセージのやり取りに関する処理全般を実行する。チャットサービスサーバ１４は、２人のユーザ間のメッセージのやり取りを処理する他に、３人以上のユーザでグループを形成し、グループ内でのメッセージのやり取りを処理することができる（グループチャット）。さらに、チャットサービスサーバ１４は、ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）と協働し、ボットサーバ１６Ａ、ボットサーバ１６Ｂにより提供されるチャットボットに対するメッセージのやり取りを処理する。ユーザとチャットボットとのメッセージのやり取りには、１人のユーザとチャットボットとのメッセージのやり取り、及び複数のユーザとチャットボットとのメッセージのやり取りが含まれる。
【００３２】
ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、本実施形態におけるメッセージ提供装置として機能する。ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、ユーザとの間でメッセージをやり取りするチャットボットのソフトウェアロボットプログラムがインストールされ、当該プログラムを実行する。これらのボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、企業や店舗などの、広告用または商業用に割り当てられたメッセンジャーサービスアカウントがそれぞれ運用するものであってもよい。
【００３３】
ボットサーバＡ（１６Ａ）及びボットサーバＢ（１６Ｂ）は、チャットサービスサーバ１４と特定ＡＰＩ（Application Programming Interface：アプリケーションプログラミングインタフェース）を介して協働し、ユーザとのメッセージをやり取りし、ユーザからのメッセージに自動応答してメッセージを返信する。特定ＡＰＩは、チャットサービスサーバ１４を利用するためのＡＰＩである。ＡＰＩの形式は任意であるが、例えばＪＳＯＮ（Javascript Object Notation：ジャバスクリプト  オブジェクト  ノーテイション）形式のＡＰＩとし、規定のフォーマットのＪＳＯＮデータをチャットサービスサーバ１４の特定ＵＲＬに対してＰＯＳＴやＧＥＴで送信し、結果がＪＳＯＮ形式のデータとして返ってくる。
【００３４】
ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、ユーザからのメッセージに動作指示が含まれている場合に、当該動作指示に応じて特定のサービス内容を実行する。本実施形態において、ボットサーバＡ（１６Ａ）は、ユーザからのメッセージにプリント指示が含まれている場合に、このプリント指示に応じてプリンタＡ（１８Ａ）、プリンタＢ（１８Ｂ）あるいはプリンタＣ（１８Ｃ）を動作させてプリント処理する「プリントボット」として機能する。他方、ボットサーバ１６Ｂは、ユーザからの動作指示に応じて任意のサービスを提供し得る。図では、ボットサーバＡ（１６Ａ）、ボットサーバＢ（１８Ｂ）の２台を示しているが、その数は任意である。１台のボットサーバで複数のチャットボットを構成し得る。
【００３５】
チャットボット（あるいはプリンタボット）としてのボットサーバＡは、予めユーザ毎に登録された、ソフトウェアロボットプログラムの動作に関する設定情報に従ってプリンタＡ〜プリンタＣを駆動してプリント処理を実行する。これらの設定情報は、プリンタＡ〜プリンタＣを動作させるための動作条件ということもできる。例えば、ユーザＡはユーザ端末Ａを操作してプリンタＡを動作させるための設定情報を入力して登録し、ユーザＢはユーザ端末Ｂを操作してプリンタＢを動作させるための設定情報を入力して登録する。
【００３６】
プリンタＡ（１８Ａ）、プリンタＢ（１８Ｂ）、プリンタＣ（１８Ｃ）は、ボットサーバＡからの指令によりプリント処理を実行する。
【００３７】
図２は、ボットサーバＡ（１６Ａ）の機能ブロック図である。ボットサーバＡは、機能ブロックとして、通信部１６０、メッセージ受付部１６１、内容解析部１６２、動作制御部１６３、応答メッセージ作成部１６４、ユーザ情報記憶部１６５、設定情報記憶部１６６、メッセージ記憶部１６７、及びＡＰＩゲートウェイ１６８を備える。
【００３８】
通信部１６０は、チャットサービスサーバ１４及びプリンタＡ，Ｂと通信する。通信部１６０は、ＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４と通信し、メッセージを交換する。通信部１６０は、ＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４から受信したメッセージ、すなわちユーザ端末Ａ〜ユーザ端末Ｃからのメッセージをメッセージ受付部１６１に出力する。また、通信部１６０は、応答メッセージ作成部１６４で作成された応答メッセージをＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４に送信（つまりユーザ端末Ａ〜ユーザ端末Ｃに送信）する。さらに、通信部１６０は、動作制御部１６３からの指令に従い、プリンタＡ、プリンタＢにプリント指令を出力してプリンタＡ，Ｂを駆動する。
【００３９】
メッセージ受付部１６１は、受付手段として機能し、通信部１６０からのメッセージを受け付け、内容解析部１６２に出力する。メッセージには、設定情報の登録に関するメッセージが含まれる。メッセージ受付部１６１は、受け付けたメッセージをメッセージ記憶部１６７に順次記憶する。
【００４０】
内容解析部１６２は、受け付けたメッセージの内容を解析して動作制御部１６３に出力する。具体的には、受け付けたメッセージに含まれるユーザ識別子（ユーザＩＤ）を認識するとともに、メッセージに含まれるテキスト部分を抽出してその構文解析を実行する。構文解析の方法は任意であり、例えば、入力メッセージを形態素単位に分解した後、名詞や形容詞、動詞、疑問代名詞をキーワードとして抽出する。内容解析部１６２は、メッセージのテキスト部分に動作指示が含まれている場合に、その動作指示の内容を解析して動作制御部１６３に出力する。本実施形態における動作指示には、プリンタＡ、Ｂ、Ｃに対するプリント指示や、プリンタＡ、Ｂ、Ｃの設定情報についての指示が含まれる。
【００４１】
動作制御部１６３は、登録手段として機能し、内容解析部１６２で得られた解析結果に基づき、ユーザとプリンタＡ、Ｂ、Ｃとを対応付けて設定情報記憶部１６６に登録する。また、動作制御部１６３は、通信部１６０を介してプリンタＡ、Ｂ、Ｃにプリント指令を出力する。
【００４２】
応答メッセージ作成部１６４は、内容解析部１６２における解析結果に応じて応答メッセージを作成し、通信部１６０を介してチャットサービスサーバ１４に送信する。
【００４３】
ユーザ情報記憶部１６５は、チャットサービスサーバ１４を利用するユーザの情報、特に、ボットサーバＡで実現されるチャットボットを利用するユーザの情報をテーブルとして記憶する。チャットボットは、チャットサービスサーバ１４で実現されるチャットサービス上で特定のアカウントが割り当てられており、このアカウントを指定してユーザが一定の操作（例えば「友達」登録を意味する操作）を行うことでチャットボットの利用が確定される。ユーザ情報は、例えばユーザＩＤである。各ユーザの権限についての情報を記憶してもよい。
【００４４】
設定情報記憶部１６６は、ボットサーバＡで実現されるチャットボットを利用するユーザ毎の設定情報をテーブルとして記憶する。設定情報の項目は、例えば使用するプリンタの識別情報、カラーモード、用紙サイズ、部数等であるがこれに限定されない。設定情報は、ボットサーバＡが提供するサービスの内容に応じて決定され得る。プリントサービスの場合には、プリントに関する情報であり、検索サービスの場合には、検索条件に関する情報である。設定情報は、サービスの内容を規定する情報であり、複数の項目を含み得る。
【００４５】
メッセージ記憶部１６７は、メッセージ受付部１６１で受け付けたユーザからのメッセージを履歴として記憶する。
【００４６】
図３は、ボットサーバＡの構成ブロック図を示す。ボットサーバＡは、１又は複数のサーバコンピュータから構成され、１又は複数のＣＰＵ１６ｂ、ＲＯＭ１６ｃ、ＲＡＭ１６ｄ、通信インタフェース（Ｉ／Ｆ）１６ｅ、入出力Ｉ／Ｆ１６ｆ、及び記憶装置１６ｇを備える。
【００４７】
１又は複数のＣＰＵ１６ｂは、ＲＯＭ１６ｃあるいは記憶装置１６ｇに記憶されたボットアプリを読み出し、ＲＡＭ１６ｄをワーキングメモリとして用いることでチャットボットの機能を実現する。すなわち、ユーザからのメッセージに自動応答し、ユーザからのメッセージに動作指示が含まれている場合に当該動作指示に応じてプリンタＡ、Ｂ、Ｃを駆動する。ＣＰＵ１６ｂは、ボットアプリを実行することで、図２におけるメッセージ受付部１６１、内容解析部１６２、動作制御部１６３、応答メッセージ作成部１６４、及びＡＰＩゲートウェイ１６８を実現する。
【００４８】
通信Ｉ／Ｆ１６ｅは、チャットサービスサーバ１４とのメッセージのやり取りを行うとともに、プリンタＡ，Ｂに対してプリント指令を出力する。
【００４９】
入出力Ｉ／Ｆ１６ｆは、キーボードマウス等の入力装置、表示装置等の出力装置とデータを送受信する。
【００５０】
記憶装置１６ｇは、ＨＤＤ（Hard Disk Drive：ハードディスクドライブ）やＳＳＤ（Solid State Drive：ソリッドステートドライブ）等の不揮発性メモリで構成され、ボットアプリを記憶する他に、ユーザ情報テーブル、設定情報テーブル、及びメッセージ管理テーブルを記憶する。記憶装置１６ｇは、図２におけるユーザ情報記憶部１６５、設定情報記憶部１６６、及びメッセージ記憶部１６７を実現する。
【００５１】
なお、本実施形態では、チャットボットを実現するためのソフトウェアロボットプログラムをＣＰＵにより実行しているが、チャットボットの一部をプログラムの実行による処理ではなく、ハードウェア処理により実現してもよい。ハードウェア処理は、例えばＡＳＩＣやＦＰＧＡ（フィールドプログラマブルゲートアレイ）などの回路を用いて行ってもよい。
【００５２】
次に、ユーザＡ及びユーザＢを例にとり、設定情報の登録について説明する。
【００５３】
図４は、ユーザＡ及びユーザＢによる設定登録処理を模式的に示す。
【００５４】
ユーザＡ及びユーザＢは、チャットサービス上で特定のアカウントが割り当てられたチャットボットに対して利用する旨の特定の操作（「友達登録」）を行うと、ボットサーバＡ（１６Ａ）は、ユーザＡ及びユーザＢにそれぞれユーザ識別子（ユーザＩＤ）を割り当てるとともに、プリンタＡ〜プリンタＣについても一意に特定するためのプリンタ識別子（プリンタＩＤ）を割り当てる。ユーザＩＤは、ユーザＡ及びユーザＢのチャットサービス上のアカウントをそのまま援用してもよい。
【００５５】
次に、ユーザＡは、チャットサービスサーバ１４を経由してボットサーバＡ（１６Ａ）に対してメッセージを送信し、プリンタＡ、プリンタＢ、またはプリンタＣを特定した上で、設定情報を登録させる。例えば、ユーザＡは、プリンタＡを特定した上で、設定情報として
カラーモード：カラー
用紙サイズ：Ａ４
部数：１部
を指定するメッセージを送信する。ボットサーバＡは、これらのメッセージを受信すると、そのメッセージ内容を解析し、設定情報として解釈するとユーザＡとプリンタＡとを対応付けた上で上記の設定情報を設定情報テーブルに記録する。
【００５６】
ユーザＢについても同様であり、チャットサービスサーバ１４を経由してボットサーバＡ（１６Ａ）に対してメッセージを送信し、プリンタＡまたはプリンタＢを特定した上で、設定情報を登録させる。例えば、ユーザＢは、プリンタＢを特定した上で、設定情報として
カラーモード：白黒
用紙サイズ：レター（ｌｅｔｔｅｒ）
部数：２部
を指定するメッセージを送信する。ボットサーバＡは、これらのメッセージを受信すると、そのメッセージ内容を解析し、設定情報として解釈するとユーザＢとプリンタＢとを対応付けた上で上記の設定情報を設定情報テーブルに記録する。
【００５７】
図５は、設定情報記憶部１６６に記憶される設定情報テーブルの一例を示す。ユーザ毎に、プリンタ、色（カラーモード）、サイズ（用紙サイズ）、コピー数（部数）が対応付けて記録される。より詳しくは、ユーザの識別情報毎に、プリンタの識別情報、色（カラーモード）、サイズ（用紙サイズ）、コピー数（部数）が対応付けて記録される。
【００５８】
他方で、ユーザＡは、プリンタＡのみならず、プリンタＢを用いて異なる設定情報を登録したいと欲する場合も少なくない。例えば、図６に示すように、プリンタＡについて設定情報を登録した後に、プリンタＢについて異なる設定情報を登録する等である。プリンタＡについて、その設定情報として
カラーモード：カラー
用紙サイズ：Ａ４
部数：１部
を登録し、プリンタＢについて、その設定情報として
カラーモード：白黒
用紙サイズ：レター（ｌｅｔｔｅｒ）
部数：２部
を登録する。ボットサーバＡは、ユーザＡについてプリンタＡ及びその設定情報を対応付けるとともに、ユーザＡとプリンタＢ及びその設定情報を対応付けて設定情報テーブルに登録する。そして、ユーザＡからの指示に応じてプリンタＡとプリンタＢを切り替えて駆動する。
【００５９】
図７は、ボットサーバＡで実現されるチャットボットの処理を模式的に示す。チャットボットは、プリンタＡ及びプリンタＢの２つのプリンタと連携してユーザＡに対してプリントサービスを提供する。チャットボットは、ユーザＡとプリンタＡ及びプリンタＢを対応付け、ユーザＡからのメッセージを受け取り、その内容を解析してメッセージ内容がプリンタＡを示している場合にはプリンタＡに切り替えてプリントサービスを実行する。また、メッセージ内容がプリンタＢを示している場合にはプリンタＢに切り替えてプリントサービスを実行する。
【００６０】
このとき、ユーザＡは、プリントサービス内容に応じてプリンタＡとプリンタＢを切り替える操作をしなければならず煩雑となる。例えば、プリンタＡでプリントする場合にはチャットボットに対して
「＠プリンタＡ  プリントして」
とのメッセージを送信し、他方で、プリンタＢでプリントする場合にはチャットボットに対して
「＠プリンタＢ  プリントして」
とのメッセージを送信しなければならず、どのプリンタにどのような設定情報が対応付けられているかに留意しつつ適切なメッセージを送信する必要があり、煩雑化する。特に、チャットボットがプリンタＡ、プリンタＢに加えプリンタＣ、さらにはそれ以上のプリンタと連携してプリントサービスを提供する場合には、切り替えるべきプリンタ数に応じて切替動作が煩雑化してしまう。
【００６１】
複数のプリンタのいずれかをデフォルトに設定し、プリント指示に対してデフォルトのプリンタを用いる構成も考えられるが、デフォルト以外のプリンタを用いる場合には同様に切替動作が必要となる。
【００６２】
そこで、本実施形態では、ボットサーバＡで実現されるチャットボットを複数の同一チャットボットとし、複数のチャットボットのそれぞれが１又は複数のプリンタと連携する構成とすることで、ユーザによるプリンタ切替動作の煩雑化を抑制する。ここで、「同一のチャットボット」とは、機能が同一のチャットボットであることを意味し、その名称や外見が異なっていてもよい。例えば、２つの同一チャットボットの名称として、チャットボットａとチャットボットｂ、あるいはチャットボット１とチャットボット２等である。
【００６３】
図８は、本実施形態におけるボットサーバＡで実現される複数のチャットボットの処理を模式的に示す。
【００６４】
ボットサーバＡにより、チャットボットａ〜ｃの３つのチャットボットが実現される。チャットボットａ〜ｃは、全て同一機能を有する。チャットボットａ〜ｃは、全て同一のソフトウェアロボットプログラムで構成される。これらのソフトウェアロボットプログラムはそれぞれ別個にインストールされていてもよく、同一プログラムを構成する互いに異なるプログラムモジュールとして構成されていてもよい。
【００６５】
チャットボットａは、例えばプリンタＡと連携し、ユーザからのメッセージに応じてプリンタＡを駆動してプリントサービスを提供する。
【００６６】
チャットボットｂは、例えばプリンタＢと連携し、ユーザからのメッセージに応じてプリンタＢを駆動してプリントサービスを提供する。
【００６７】
チャットボットｃは、例えばプリンタＣと連携し、ユーザからのメッセージに応じてプリンタＣを駆動してプリントサービスを提供する。
【００６８】
ユーザは、プリンタＡでのプリントを所望する場合にはチャットボットａに対して「プリントして」等の動作指示のメッセージを送信し、プリンタＢでのプリントを所望する場合にはチャットボットｂに対して「プリントして」等の動作指示のメッセージを送信し、プリンタＣでのプリントを所望する場合にはチャットボットｃに対して「プリントして」等の動作指示のメッセージを送信するだけで、所望のプリンタでプリントし得る。
【００６９】
なお、チャットボットａ〜ｃとプリンタＡ〜Ｃとの連携関係は固定ではなく、ユーザ毎に動的に設定し得る。例えば、ユーザＢについてはチャットボットａがプリンタＢと連携するとともにチャットボットｃがプリンタＣと連携し、ユーザＣについてはチャットボットａがプリンタＡと連携する等である。
【００７０】
図９は、本実施形態におけるユーザ毎のチャットボットとプリンタとの連携関係を示す。ユーザＡについては、
チャットボットａとプリンタＡ
チャットボットｂとプリンタＢ
チャットボットｃとプリンタＣ
が連携する。ユーザＢについては、
チャットボットａとプリンタＢ
チャットボットｂとプリンタＣ
が連携する。ユーザＣについては、
チャットボットａとプリンタＡ
が連携する。チャットボットａ〜ｃは、ユーザ毎のプリンタの対応関係を設定情報テーブルに登録する。そして、ユーザからのメッセージに含まれるユーザＩＤから、設定情報テーブルを参照して対応するプリンタを特定し、当該プリンタを駆動する。
【００７１】
図８及び図９では、１つのチャットボットが１つのプリンタと連携している場合を示したが、必ずしもこれに限定されるものではなく、１つのチャットボットが複数のプリンタと連携してもよい。
【００７２】
図１０は、チャットボットの他の処理を模式的に示す。
【００７３】
チャットボットａは、例えばプリンタＡと連携し、ユーザからのメッセージに応じてプリンタＡを駆動してプリントサービスを提供する。
【００７４】
チャットボットｂは、例えばプリンタＢと連携し、ユーザからのメッセージに応じてプリンタＢを駆動してプリントサービスを提供する。
【００７５】
チャットボットｃは、例えばプリンタＡ及びプリンタＣと連携し、ユーザからのメッセージに応じてプリンタＡまたはプリンタＣを駆動してプリントサービスを提供する。
【００７６】
ユーザは、プリンタＡでのプリントを所望する場合にはチャットボットａに対して「プリントして」等の動作指示のメッセージを送信し、プリンタＢでのプリントを所望する場合にはチャットボットｂに対して「プリントして」等の動作指示のメッセージを送信し、プリンタＡまたはプリンタＣでのプリントを所望する場合にはチャットボットｃに対して「＠プリンタＡ  プリントして」、「＠プリンタＣ  プリントして」等の動作指示のメッセージを送信するだけで、所望のプリンタでプリントし得る。
【００７７】
但し、１つのチャットボットが連携するプリンタ数が増大すると、既述したように切替動作が煩雑化するので、１つのチャットボットが連携し得るプリンタ数の上限を制限（例えば２つまで）するのが望ましい。
【００７８】
なお、プリンタＡについては、チャットボットａとチャットボットｃが重複して連携しているが、チャットボットａが連携するプリンタＡの設定情報と、チャットボットｃが連携するプリンタＡの設定情報を互いに異なるものとし得る。
【００７９】
このように、ボットサーバＡで複数のチャットボットを実現することで、プリンタの切替動作を軽減し得るが、複数のチャットボットは予め用意してもよく、あるいはユーザからのメッセージに応じて適応的に１つずつ追加してもよい。すなわち、初期状態は１つのチャットボットとし、ユーザからのメッセージに応じ、一定条件が満たされた場合に２つ、３つ、・・・とチャットボットを順次追加していく。
【００８０】
図１１は、チャットボットを順次追加していく処理を模式的に示す。１つのチャットボットが連携し得るプリンタ数の上限を２とし、一定条件として、当初のチャットボットが連携するプリンタ数が２を超えた場合とする。
【００８１】
図１１（ａ）は、初期状態であり、１つのチャットボットａのみが存在し、このチャットボットはプリンタＡ及びプリンタＢと連携する。
【００８２】
図１１（ｂ）は、ユーザがさらにプリンタＣでのプリントサービスを所望した場合である。チャットボットａが連携するプリンタ数は２で上限に達しているので、ボットサーバＡは一定条件を満たすと判定し、チャットボットａに加えてチャットボットｂを新たに追加し、このチャットボットｂとプリンタＣとを連携させる。
【００８３】
図１１（ｃ）は、ユーザがさらにプリンタＤでのプリントサービスを所望した場合である。ボットサーバＡは、チャットボットａには上限である２つのプリンタが連携し、新たに追加したチャットボットもプリンタＣが連携していることから、チャットボットａ，ｂに加えてさらにチャットボットｃを新たに追加し、このチャットボットｃとプリンタＤとを連携させる。
【００８４】
追加されたチャットボットｂとプリンタＣとを連携させる際には、その旨をチャットボットａが自動応答メッセージでユーザに送信し、追加されたチャットボットｃとプリンタＤとを連携させる際には、その旨をチャットボットａあるいはチャットボットｃが自動応答メッセージでユーザに送信してもよい。
【００８５】
次に、チャットボットａがプリンタＡと連携しており、ユーザＡがさらにプリンタＢ及びプリンタＣでのプリントサービスを所望した場合の画面例について具体的に説明する。
【００８６】
図１２は、ユーザＡが操作するユーザ端末Ａに表示される画面例を示す。ユーザＡがチャットボットａを利用可能（「友達登録」している）であるとする。
【００８７】
ユーザ端末Ａの画面には、チャットサービスサーバ１４によりユーザＡを示す表象図形（アイコン）１００が表示されるとともに、ボットサーバＡで実現されるチャットボットａを示すアイコン１０４が表示される。そして、ユーザＡ及びチャットボットａのメッセージ２００が上から下に時系列で表示される。
【００８８】
図１２（ａ）において、まず、ユーザＡがチャットボットａに対して
「＠プリンタＢ」
とのメッセージを送信する。
【００８９】
このメッセージを受け取ったチャットボットａは、ユーザＡに対応付けてプリンタＡのみが登録されており、まだ１台分の余裕があると判定して、ユーザＡに対応付けてプリンタＡに加えてプリンタＢを設定情報テーブルに登録する。そして、
「プリンタＢを登録し、本プリンタをデフォルトにしました。全部で２台登録されています」
とのメッセージを作成して自動応答する。
【００９０】
次に、ユーザＡがチャットボットａに対して
「＠プリンタＣ」
とのメッセージを送信する。
【００９１】
このメッセージを受け取ったチャットボットａは、ユーザＡに対応付けて既にプリンタＡ及びプリンタＢの２台のプリンタが登録されており、上限に達していると判定して、別のチャットボットｂをユーザＡに紹介するメッセージを作成して自動応答する。例えば、チャットボットｂのアドレスを示すＵＲＬを生成し、
「登録プリンタが一杯です。新しいボットに登録しましょう」
とのメッセージとともにＵＲＬを自動応答する。
【００９２】
このメッセージを視認したユーザＡは、このメッセージに含まれるＵＲＬをタップする等してチャットボットｂにアクセスする。
【００９３】
図１２（ｂ）は、チャットボットｂにアクセスした場合のユーザ端末Ａに表示される画面である。ユーザ端末Ａの画面には、チャットサービスサーバ１４によりユーザＡを示すアイコン１００が表示されるとともに、ボットサーバＡで実現されるチャットボットｂを示すアイコン１０６が表示される。
【００９４】
チャットボットｂは、まず、
「プリントボットｂへようこそ」
とのメッセージを作成して自動応答する。なお、チャットボットｂはチャットボットａと同一機能を有しているので、チャットボットａの友達登録はそのままチャットボットｂに引き継がれるためユーザＡは改めてチャットボットｂを友達登録する必要はなく、直ちに利用可能である。勿論、ユーザＡはチャットボットｂを新たに友達登録してもよい。
【００９５】
チャットボットｂは、さらに、
「先程のプリンタＣを登録しますか？」
とのメッセージを作成して自動応答する。
【００９６】
このメッセージを視認したユーザＡは、
「はい」
とのメッセージを送信する。
【００９７】
このメッセージを受け取ったチャットボットｂは、ユーザＡとプリンタＣとを対応付けて設定情報テーブルに登録する。設定情報テーブルはチャットボットａ及びチャットボットｂで共通に用いられるが、それぞれ別個のテーブルとしてもよい。そして、
「プリンタＣを登録し、本プリンタをデフォルトにしました。全部で１台登録されています」
とのメッセージを作成して自動応答する。
【００９８】
この後、ユーザＡは、プリンタＡあるいはプリンタＢでプリントする場合にはチャットボットａに対してプリント指示のメッセージを送信し、プリンタＣでプリントする場合にはチャットボットｂに対してプリント指示のメッセージを送信する。
【００９９】
ボットサーバＡで実現されるチャットボットａ及びチャットボットｂの処理アルゴリズムを詳細に説明すると、以下の通りである。
【０１００】
ステップ１：チャットボットａは、ユーザＡからの友達登録を受け付け、ユーザＡのユーザＩＤをユーザ情報記憶部１６５に記憶する。
【０１０１】
ステップ２：ユーザＡからのプリンタＡの登録要求に関するメッセージを受け付け、その内容を解析してユーザＡの設定情報としてユーザＡとプリンタＡを対応付けて設定情報テーブルに登録する。情報管理テーブルは、設定情報記憶部１６６に記憶される。
【０１０２】
ステップ３：ユーザＡからのプリンタＢの登録要求に関するメッセージを受け付け、その内容を解析してユーザＡとプリンタＢを対応付けて設定情報テーブルに登録する。この際、登録される合計プリンタ数が上限を超えているか否かを判定し、上限を超えていなければ登録を実行する。
【０１０３】
ステップ４：ユーザＡに対し、プリンタＡ及びプリンタＢの２台が登録された旨のメッセージを作成して自動応答する。
【０１０４】
ステップ５：ユーザＡからのプリンタＣの登録要求に関するメッセージを受け付け、その内容を解析する。ユーザＡに対応付けられた合計プリンタ数は既に上限に達しており、さらにプリンタＣを対応付けると上限を超えてしまうので登録を拒否し、同一機能を有するチャットボットｂを追加する。ユーザＡに対し、登録プリンタが上限に達した旨、及びチャットボットｂにアクセスするためのアドレス情報（ＵＲＬ等）を含むメッセージを作成して自動応答する。
【０１０５】
ステップ６：チャットボットｂは、ユーザＡがアクセスすると、チャットボットａで登録を拒否したプリンタＣの登録を実行するか否かの確認メッセージを作成して自動応答する。
【０１０６】
ステップ７：ユーザＡからの肯定的な回答のメッセージを受け付けると、その内容を解析してユーザＡの設定情報としてユーザＡとプリンタＣを対応付けて設定情報テーブルに登録する。
【０１０７】
ステップ８：ユーザＡに対し、プリンタＣが登録された旨のメッセージを作成して自動応答する。
【０１０８】
図１３は、設定情報テーブルの更新を模式的に示す。
【０１０９】
図１３（ａ）は、初期状態の設定情報テーブルであり、ユーザＡに関してチャットボットａ（ボットａ）とプリンタＡが対応付けられる。「初期」フィールドにおける「Ｖ」マークはデフォルトのプリンタとして設定されていることを示す。チャットボットｂ（ボットｂ）にはプリンタは対応付けられていない。
【０１１０】
図１３（ｂ）は、ユーザＡからのメッセージ「＠プリンタＢ」に応じて更新された後の設定情報テーブルである。ユーザＡに関してチャットボットａ（ボットａ）とプリンタＡ及びプリンタＢが対応付けられる。プリンタＢがデフォルトプリンタとして設定されている。
【０１１１】
図１３（ｃ）は、ユーザＡからのメッセージ「＠プリンタＣ」に応じて更新された後の設定情報テーブルである。ユーザＡに関してチャットボットｂとプリンタＣが対応付けられる。プリンタＣがデフォルトプリンタとして設定されている。
【０１１２】
図１４は、本実施形態のシーケンス図を示す。ユーザＡが操作するユーザ端末Ａ、チャットボットａ、及びチャットボットｂ間の処理である。
【０１１３】
ユーザＡがユーザ端末Ａを操作してチャットボットａを友達登録する。その後、ユーザＡはメッセージを送信してプリンタＡを登録する。
【０１１４】
次に、ユーザ端末Ａは、プリンタＢの登録指示メッセージをチャットボットａに送信する。チャットボットａは、このメッセージを受け取り、設定情報テーブルにユーザＡに関してプリンタＡに加えてプリンタＢを追加登録する。設定情報テーブルを記憶する設定情報記憶部１６６は、ユーザＡに関してプリンタＢを追加登録すると、登録完了通知をチャットボットａに送信し、チャットボットａは登録完了メッセージを作成して自動応答する。
【０１１５】
次に、ユーザ端末Ａは、プリンタＣの登録指示メッセージをチャットボットａに送信する。チャットボットａは、このメッセージを受け取り、設定情報テーブルにユーザＡに関してさらにプリンタＣを追加登録しようとする。しかし、設定情報テーブルのプリンタ数は既に上限に達しているので、設定情報記憶部１６６は登録ＮＧ通知をチャットボットａに送信し、チャットボットａは新たなチャットボットｂを推奨するメッセージを作成して自動応答する。ユーザＡは、この応答メッセージを視認し、推奨されたＵＲＬ等を用いてチャットボットｂにアクセスする。また、設定情報記憶部１６６は、ユーザＡに関してプリンタＣの登録要求があった旨のフラグを設定情報テーブルにセットする。
【０１１６】
次に、ユーザＡはユーザ端末Ａを操作してチャットボットｂを友達登録する。なお、チャットボットｂはユーザＡを自動的に友達登録してもよく、この場合には当該登録操作は不要である。
【０１１７】
チャットボットｂは、設定情報テーブルを参照し、ユーザＡに関してプリンタＣの登録要求があった旨のフラグがセットされている（登録予約）ことを確認し、プリンタＣを登録するか否かの確認メッセージを作成して自動応答する。
【０１１８】
ユーザ端末Ａは、このメッセージに応じて「はい」とのメッセージをチャットボットｂに送信する。チャットボットｂは、このメッセージに応じて設定情報テーブルにユーザＡに関してプリンタＣを登録する。設定情報テーブルを記憶する設定情報記憶部１６６は、ユーザＡに関してプリンタＣを登録すると、登録完了通知をチャットボットｂに送信し、チャットボットｂは登録完了メッセージを作成して自動応答する。
【０１１９】
＜実施形態２＞
実施形態１では、チャットボットａとチャットボットｂがそれぞれ異なるチャットルームでユーザＡとメッセージをやり取りしているが、チャットボットａとチャットボットｂが同一チャットルームでユーザＡとメッセージをやり取りしてもよい。
【０１２０】
図１５は、本実施形態におけるユーザＡが操作するユーザ端末Ａに表示される画面例を示す。ユーザＡがチャットボットａを利用可能（「友達登録」している）であるとする。
【０１２１】
図１５において、まず、ユーザＡがチャットボットａに対して
「＠プリンタＢ」
とのメッセージを送信する。
【０１２２】
このメッセージを受け取ったチャットボットａは、ユーザＡに対応付けてプリンタＡのみが登録されており、まだ１台分の余裕があると判定して、ユーザＡに対応付けてプリンタＡに加えてプリンタＢを設定情報テーブルに登録する。そして、
「プリンタＢを登録し、本プリンタをデフォルトにしました。全部で２台登録されています」
とのメッセージを作成して自動応答する。
【０１２３】
次に、ユーザＡがチャットボットａに対して
「＠プリンタＣ」
とのメッセージを送信する。
【０１２４】
このメッセージを受け取ったチャットボットａは、ユーザＡに対応付けて既にプリンタＡ及びプリンタＢの２台のプリンタが登録されており、上限に達していると判定して、別のチャットボットｂをこのチャットルームに招待するメッセージを作成して自動応答する。例えば、
「登録プリンタが一杯です。新しいボットｂを招待します」
「新しいボットｂが参加しました」
とのメッセージを作成して自動応答する。そして、チャットボットｂをこのチャットルームに参加させてチャットボットｂのアイコン１０６を表示し、チャットボットｂは、
「プリントボットｂへようこそ」
とのメッセージを作成して自動応答する。
【０１２５】
なお、ユーザＡに対して新しいチャットボットｂを参加させてもよいか否かを確認し、ユーザＡからの肯定的回答を受け取った場合にチャットボットｂを参加させてもよい。
【０１２６】
チャットボットｂは、さらに、
「先ほどのプリンタＣを登録しますか？」
とのメッセージを作成して自動応答する。
【０１２７】
このメッセージを視認したユーザＡは、
「はい」
とのメッセージを送信する。
【０１２８】
このメッセージを受け取ったチャットボットｂは、ユーザＡとプリンタＣとを対応付けて設定情報テーブルに登録する。そして、
「プリンタＣを登録し、本プリンタをデフォルトにしました。全部で１台登録されています」
とのメッセージを作成して自動応答する。
【０１２９】
この後、ユーザは、プリンタＡあるいはプリンタＢでプリントする場合にはチャットボットａに対してプリント指示のメッセージを送信し、プリンタＣでプリントする場合にはチャットボットｂに対してプリント指示のメッセージを送信する。例えば、
「＠チャットボットａ  プリントして」
「＠チャットボットｂ  プリントして」
等である。この場合、チャットボットａではプリンタＢがデフォルトに設定されているので、プリンタＢでプリントされる。他方、チャットボットｂにはプリンタＣのみが対応付けられているので、ユーザＡはチャットボットｂに対して単にプリントを指示するメッセージを送信すればよい。
【０１３０】
＜実施形態３＞
実施形態１，２では、チャットボットと連携するプリンタ数が上限を超える場合にチャットボットを追加しているが、チャットボットと連携するプリンタの切替回数が上限を超える場合にチャットボットを追加してもよい。
【０１３１】
図１６は、本実施形態におけるユーザＡが操作するユーザ端末Ａに表示される画面例を示す。ユーザＡがチャットボットａを利用可能（「友達登録」している）であるとする。また、チャットボットａには、プリンタＡ及びプリンタＢが対応付けられているものとする。
【０１３２】
図１６において、まず、ユーザＡがチャットボットａに対して
「プリンタＢに切り替える」
とのメッセージを送信する。
【０１３３】
このメッセージを受け取ったチャットボットａは、
「プリンタＢをデフォルトにしました。全部で２台登録されています」
とのメッセージを作成して自動応答する。
【０１３４】
次に、ユーザＡがチャットボットａに対して
「プリント」
とのプリントを指示するメッセージを送信する。
【０１３５】
チャットボットａは、このメッセージに応じてデフォルトに設定されているプリンタＢを駆動してプリントサービスを実行する。
【０１３６】
また、ユーザＡがチャットボットａに対して
「プリンタＡに切り替える」
あるいは
「＠プリンタＡ  プリントして」
あるいは
「プリンタＡでプリントして」
とのプリントを指示するメッセージを送信する。チャットボットａは、このメッセージに応じてプリンタをプリンタＢからプリンタＡに切り替えてプリンタＡを駆動してプリントサービスを実行する。
【０１３７】
以下、同様にしてユーザＡからのメッセージに応じてプリンタＡとプリンタＢを切り替えてプリントサービスを実行するが、チャットボットａはプリンタ毎に切替回数及び利用回数をカウントして設定情報テーブルに登録する。
【０１３８】
そして、切替回数及び利用回数を順次カウントしていき、その後のあるタイミングでユーザＡが
「プリンタＡに切り替える」
とのメッセージを送信する。
【０１３９】
チャットボットａは、このメッセージに応じてプリンタをプリンタＢからプリンタＡに切り替えようとするが、プリンタＡへの切替回数が上限に達している場合に、
「新しいボットに登録すれば切替操作が不要です。プリンタＡを登録しましょう」
とのメッセージを作成するとともにチャットボットｂのＵＲＬを自動応答する。
【０１４０】
このメッセージを視認したユーザＡは、このメッセージに含まれるＵＲＬをタップする等してチャットボットｂにアクセスする。以降は、図１２（ｂ）と同様である。
【０１４１】
切替回数の上限は任意であるが、上限を１に設定すれば、切替回数が最小化される。
【０１４２】
ボットサーバＡで実現されるチャットボットａ及びチャットボットｂの処理アルゴリズムを詳細に説明すると、以下の通りである。
【０１４３】
ステップ１：チャットボットａは、ユーザＡからの友達登録を受け付け、ユーザＡのユーザＩＤをユーザ情報記憶部１６５に記憶する。
【０１４４】
ステップ２：ユーザＡからのプリンタＡの登録要求に関するメッセージを受け付け、その内容を解析してユーザＡの設定情報としてユーザＡとプリンタＡを対応付けて設定情報テーブルに登録する。情報管理テーブルは、設定情報記憶部１６６に記憶される。
【０１４５】
ステップ３：ユーザＡからのプリンタＢに切り替える旨の要求に関するメッセージを受け付け、その内容を解析してユーザＡとプリンタＢを対応付けて設定情報テーブルに登録する。この際、登録される合計プリンタ数が上限を超えているか否かを判定し、上限を超えていなければ登録を実行する。
【０１４６】
ステップ４：ユーザＡに対し、プリンタＡ及びプリンタＢの２台が登録された旨のメッセージを作成して自動応答する。
【０１４７】
ステップ５：ユーザＡからのプリント指示を受け付け、プリンタＡあるいはプリンタＢでプリントサービスを実行する。ユーザＡからのプリント指示に「＠プリンタＡ」等のプリンタを指示するキーワード（メンション）が含まれていればその指示に応じたプリンタでプリントサービスを実行する。プリンタを指示するキーワードがなければ、デフォルトに設定されているプリンタでプリントサービスを実行する。チャットボットａは、プリンタ毎の切替回数及び利用回数をカウントして設定情報テーブルに登録する。
【０１４８】
ステップ６：ユーザＡからのプリンタＡに切り替える旨の要求に関するメッセージを受け付け、その内容を解析する。プリンタＡの切替回数が上限に達しており、さらにプリンタＡへの切替を行うと上限を超えてしまうので切替を拒否し、同一機能を有するチャットボットｂを追加する。ユーザＡに対し、チャットボットｂに登録すれば切替が不要になる旨、及びチャットボットｂにアクセスするためのアドレス情報（ＵＲＬ等）を含むメッセージを作成して自動応答する。
【０１４９】
ステップ７：チャットボットｂは、ユーザＡがアクセスすると、チャットボットａで切替を拒否したプリンタＡの登録を実行するか否かの確認メッセージを作成して自動応答する。
【０１５０】
ステップ８：ユーザＡからの肯定的な回答のメッセージを受け付けると、その内容を解析してユーザＡの設定情報としてユーザＡとプリンタＡを対応付けて設定情報テーブルに登録する。
【０１５１】
ステップ９：ユーザＡに対し、プリンタＡが登録された旨のメッセージを作成して自動応答する。
【０１５２】
図１７は、設定情報テーブルの更新を模式的に示す。
【０１５３】
図１７（ａ）は、チャットボットａとプリンタＡ及びプリンタＢが対応付けられた状態の設定情報テーブルであり、ユーザＡに関してチャットボットａ（ボットａ）とプリンタＡ及びプリンタＢが対応付けられており、プリンタ毎に切替回数と利用回数がカウントされ登録される。図では、プリンタＡの切替回数＝１０回、利用回数＝２０回、プリンタＢの切替回数＝１０回、利用回数＝２５回と示されている。ここで、「プリンタＡの切替回数」は、プリンタＢからプリンタＡへの切替回数を意味する。切替回数の上限を１０回とすると、プリンタＢからプリンタＡへ切り替えると、上限を超えてしまうため、チャットボットａは、プリンタＡをチャットボットｂに登録するように促すメッセージを送信する。
【０１５４】
図１７（ｂ）は、ユーザＡからのメッセージに応じて更新された後の設定情報テーブルである。チャットボットａとプリンタＡとの対応付けが削除され（no entry）、チャットボットｂとプリンタＡが新たに対応付けられる。
【０１５５】
＜実施形態４＞
実施形態３では、チャットボットと連携するプリンタの切替回数が上限を超える場合にチャットボットを追加しているが、既に複数のチャットボットが存在する場合に、プリンタ毎の切替回数に応じてチャットボットとプリンタの対応付けを変更、すなわち組み替えてもよい。
【０１５６】
図１８は、本実施形態におけるユーザＡが操作するユーザ端末Ａに表示される画面例を示す。チャットボットとしてチャットボットａ及びチャットボットｂが既に存在し、それぞれ、
チャットボットａ：プリンタＡ、プリンタＢ、プリンタＣ
チャットボットｂ：プリンタＤ、プリンタＥ
が対応付けられているものとする（本実施形態では、あるチャットボットに連携し得るプリンタ数の上限を３とする）。ユーザＡは、チャットボットａ及びチャットボットｂを利用可能（「友達登録」している）であるとする。
【０１５７】
図１８において、まず、ユーザＡがチャットボットａに対して
「プリンタＢに切り替える」
とのメッセージを送信する。
【０１５８】
このメッセージを受け取ったチャットボットａは、
「プリンタＢをデフォルトにしました。全部で３台登録されています」
とのメッセージを作成して自動応答する。
【０１５９】
次に、ユーザＡがチャットボットａに対して
「プリント」
とのプリントを指示するメッセージを送信する。
【０１６０】
チャットボットａは、このメッセージに応じてデフォルトに設定されているプリンタＢを駆動してプリントサービスを実行する。
【０１６１】
また、ユーザＡがチャットボットａに対して
「プリンタＡに切り替える」
あるいは
「＠プリンタＡ  プリントして」
あるいは
「プリンタＡでプリントして」
とのプリントを指示するメッセージを送信する。チャットボットａは、このメッセージに応じてプリンタをプリンタＢからプリンタＡに切り替えてプリンタＡを駆動してプリントサービスを実行する。
【０１６２】
以下、同様にしてユーザＡからのメッセージに応じてプリンタＡ、プリンタＢ、プリンタＣを切り替えてプリントサービスを実行するが、チャットボットａはプリンタ毎に切替回数及び利用回数をカウントして設定情報テーブルに登録する。チャットボットｂについても同様にして、プリンタ毎に切替回数及び利用回数をカウントして設定情報テーブルに登録する。
【０１６３】
そして、切替回数及び利用回数を順次カウントしていき、その後のあるタイミングでユーザＡがチャットボットａに対して
「プリンタＡに切り替える」
とのメッセージを送信する。
【０１６４】
チャットボットａは、このメッセージに応じてプリンタをプリンタＡに切り替えようとするが、プリンタＡへの切替回数が上限に達している場合に、
「ボットｂの組合せを変更すれば切り替え操作が軽減します。プリンタＡ，Ｄを組み替えましょう」
とのメッセージを作成するとともに推奨される組み替えパターンを作成して自動応答する。チャットボットａは、チャットボットｂに対応付けられているプリンタＤ及びプリンタＥの切替回数を参照し、最も切替回数の少ないプリンタを選択し、プリンタＡとスワップする。つまり、プリンタＤの切替回数が最も少ないものとすると、プリンタＡとプリンタＤをスワップし、チャットボットａにプリンタＤを対応付け、チャットボットｂにプリンタＡを対応付けるように設定情報テーブルを更新する。
【０１６５】
図１９は、設定情報テーブルの更新を模式的に示す。
【０１６６】
図１９（ａ）は、チャットボットａとプリンタＡ、プリンタＢ、プリンタＣが対応付けられ、チャットボットｂとプリンタＤ、Ｅが対応付けられた状態の設定情報テーブルであり、プリンタ毎に切替回数と利用回数がカウントされ登録される。図では、プリンタＡの切替回数＝１０回、利用回数＝２０回、プリンタＢの切替回数＝１０回、利用回数＝２５回、プリンタＣの切替回数＝３回、利用回数＝５回、プリンタＤの切替回数＝１回、利用回数＝２回、プリンタＥの切替回数＝１回、利用回数＝２回と示されている。切替回数の上限を１０回とすると、プリンタＡへの切り替えが生じると、上限を超えてしまうため、チャットボットａは、チャットボットｂに対応付けされているプリンタＤ及びプリンタＥの切替回数を参照し、最も切替回数が少ないプリンタとしてプリンタＤを選択する（図では、プリンタＤ、Ｅの切替回数が同数であるため、いずれかを選択する）。
【０１６７】
図１９（ｂ）は、ユーザＡからのメッセージに応じて更新された後の設定情報テーブルである。チャットボットａとプリンタＤが対応付けられ、チャットボットｂとプリンタＡが対応付けられる。
【０１６８】
このように、本実施形態では、チャットボット毎のプリンタの切替回数が均等化されるように、チャットボットとプリンタの組合せが変更される。
【０１６９】
＜実施形態５＞
実施形態３，４では、プリンタの切替回数に応じてチャットボットとプリンタの対応付けを変化させているが、プリンタの動作条件、すなわちプリンタの印刷条件に応じてチャットボットとプリンタの対応付けを変化させてもよい。プリンタとその印刷条件をまとめて外部機器と解釈すると、プリンタが同一であってもその印刷条件が互いに異なる場合には、互いに異なる外部機器とみなし得る。
【０１７０】
図２０は、設定情報テーブルの更新を模式的に示す。
【０１７１】
図２０（ａ）は、チャットボットａとプリンタＡ及びプリンタＢが対応付けられており、チャットボットｂには何も対応付けられていない状態の設定情報テーブルである。プリンタＡには、設定情報として印刷条件Ｐ１と印刷条件Ｐ２が対応付けられている。プリンタ毎及び印刷条件毎に切替回数と利用回数がカウントされ登録される。図では、プリンタＡ及び印刷条件Ｐ１の切替回数＝１０回、利用回数＝２０回、プリンタＡ及び印刷条件Ｐ２の切替回数＝１０回、利用回数２５回、プリンタＢの切替回数＝２回、利用回数＝４回と示されている。また、プリンタＡ及び印刷条件Ｐ２がデフォルトに設定されている。切替回数の上限を１０回とすると、プリンタＡ及び印刷条件Ｐ１への切り替えが生じると、上限を超えてしまうため、チャットボットａは、プリンタＡ及び印刷条件Ｐ１について、チャットボットｂへの登録を促す。
【０１７２】
図２０（ｂ）は、ユーザＡからのメッセージに応じて更新された後の設定情報テーブルである。チャットボットａとプリンタＡ及び印刷条件Ｐ２、プリンタＢが対応付けられており、チャットボットｂとプリンタＡ及び印刷条件Ｐ１が対応付けられる。
【０１７３】
プリンタ及びその印刷条件の切替回数に応じて、チャットボットとプリンタ及びその印刷条件との対応付けを変更、すなわち組み替えてもよい。例えば、チャットボットａとプリンタＡ及び印刷条件Ｐ１、プリンタＡ及び印刷条件Ｐ２が対応付けられ、チャットボットｂとプリンタＢ及び印刷条件Ｐ３、プリンタＢ及び印刷条件Ｐ４が対応付けられているところ、プリンタＡ及び印刷条件Ｐ１と、プリンタＢ及び印刷条件Ｐ４をスワップして組み替える等である。
【０１７４】
以上、本発明の実施形態について説明したが、本発明はこれらの実施形態に限定されるものではなく、種々の変形が可能である。以下、変形例について説明する。
【０１７５】
＜変形例１＞
実施形態では、一定条件が満たされた場合にチャットボットを順次追加しているが、一定条件としては、
（１）１つのチャットボットが連携するプリンタ数が上限を超えたとき
（２）１つのチャットボットが連携するプリンタの切替回数が上限を超えたとき
（３）１つのチャットボットが連携するプリンタの印刷条件の切替回数が上限を超えたとき
（４）１つのチャットボットが連携するプリンタの利用回数が上限を超えたとき
（５）１つのチャットボットが連携するプリンタの利用回数の最大値と最小値の差が上限を超えたとき
（６）ユーザからチャットボットを追加すべき旨の要求メッセージを受け取ったとき
等があり得る。
【０１７６】
要するに、チャットボットが複数のプリンタと連携している場合において、複数のプリンタ間の切替回数がより小さくなるようにチャットボットを順次追加してプリンタを対応付ければよい。
【０１７７】
＜変形例２＞
実施形態では、切替回数に応じてチャットボットｂを追加しているが、単に、ユーザからデフォルトに設定されたプリンタ以外のプリンタでのプリントを指示するメッセージを受け付けた場合に、これに応じてチャットボットｂを追加して当該プリンタを対応付けてもよい。この場合、デフォルトに設定されたプリンタからの切替回数に応じ、切替回数を０とする、あるいは切替回数を最小化するようにチャットボットを追加するといえる。
【０１７８】
＜変形例３＞
実施形態では、ユーザ端末の画面上にチャットボットａ及びチャットボットｂのアイコンを表示させているが、これらのアイコンの名称、色、形状の少なくともいずれかが異なるように表示させてユーザがチャットボットａ及びチャットボットｂを識別可能とするのが望ましい。但し、チャットボットａとチャットボットｂは同一機能を有しているので、その機能の共通性が維持される範囲内での相違とするのが望ましい。
【０１７９】
＜変形例４＞
実施形態では、チャットボットとして、ユーザからのメッセージに応じてプリントサービスを提供するチャットボットを例にとり説明しているが、これ以外にもチャットボットは任意のサービスを提供し得る。これらのサービスを例示すると以下の通りである。
・音楽、ニュース記事、宿泊施設、書籍、料理レシピ等の検索サービス
・チケット予約サービス
・フリーマーケットへの出品／検索／取引連絡サービス
・他言語への翻訳サービス
【０１８０】
図２１は、翻訳サービスを実行する場合のシステム構成図を示す。図１と異なり、プリンタＡ（１８Ａ）、プリンタＢ（１８Ｂ）、プリンタＣ（１８Ｃ）に代えて、外部機器として翻訳エンジンＡ（１９Ａ）、翻訳エンジン（１９Ｂ）、翻訳エンジンＣ（１９Ｃ）が備えられる。翻訳エンジンＡは、日本語を英語に翻訳するプログラム（及び当該プログラムがインストールされた翻訳機器）であり、翻訳エンジンＢは、日本語を中国語に翻訳するプログラム（及び当該プログラムがインストールされた翻訳機器）であり、翻訳エンジンＣは、日本語をスペイン語に翻訳するプログラム（及び当該プログラムがインストールされた翻訳機器）である。
【０１８１】
ユーザＡが、翻訳エンジンＡを選択し、英訳に続いて元の日本語を表示するようなフォーマットを設定情報として設定して登録する。これにより、ユーザＡがチャットボットに対して
「今日は空いていますか？」
とのメッセージを送信すると、チャットボットは、翻訳エンジンＡを駆動して
「Are you free today?」
「今日は空いていますか？」
とのメッセージを自動応答する。
【０１８２】
１つのチャットボットが連携する翻訳エンジン数に上限（例えば２つ）があり、既に翻訳エンジンＡ及び翻訳エンジンＢと連携しており、ユーザが翻訳エンジンＣによる翻訳を所望した場合、新たにチャットボットを追加して、追加チャットボットと翻訳エンジンＣを対応付ける。
【０１８３】
検索サービスの場合には、外部機器として翻訳エンジンに代えて検索エンジンが使用され得る。この場合の設定情報は検索条件であり、例えば宿泊施設の検索では、日数、料金、ホテルのグレード、人数等が含まれ得る。検索条件の切替回数が上限に達した場合、新たにチャットボットを追加して、追加チャットボットと特定検索条件の検索エンジンを対応付ける。図２０におけるプリンタと印刷条件の組合せは、検索エンジンと検索条件の組合せに置換され得る。
【符号の説明】
【０１８４】
１０Ａ  ユーザ端末Ａ、１０Ｂ  ユーザ端末Ｂ、１０Ｃ  ユーザ端末Ｃ、１２  クラウド、１４  チャットサービスサーバ、１６Ａ  ボットサーバＡ、１６Ｂ  ボットサーバ１６Ｂ、１８Ａ  プリンタＡ、１８Ｂ  プリンタＢ、１８Ｃ  プリンタＣ。
【図１】
2019160211.tif 000003
【図２】
2019160211.tif 000004
【図３】
2019160211.tif 000005
【図４】
2019160211.tif 000006
【図５】
2019160211.tif 000007
【図６】
2019160211.tif 000008
【図７】
2019160211.tif 000009
【図８】
2019160211.tif 000010
【図９】
2019160211.tif 000011
【図１０】
2019160211.tif 000012
【図１１】
2019160211.tif 000013
【図１２】
2019160211.tif 000014
【図１３】
2019160211.tif 000015
【図１４】
2019160211.tif 000016
【図１５】
2019160211.tif 000017
【図１６】
2019160211.tif 000018
【図１７】
2019160211.tif 000019
【図１８】
2019160211.tif 000020
【図１９】
2019160211.tif 000021
【図２０】
2019160211.tif 000022
【図２１】
2019160211.tif 000023