(57)【要約】      （修正有）【課題】グループチャットに参加するボットにグループ共用の出力機器を登録する方式と比べて、グループチャットに参加する一人のユーザから行われた出力指示の発言に応じて、出力指示の発言をしていないユーザを含む個々の出力先ユーザに便利な出力機器から出力できる仕組みを提供する。【解決手段】ボットサーバ１６Ａのユーザ情報記憶部１６５には、各ユーザが使うプリンタが登録されている。グループチャットでユーザが文書の印刷を指示する発言を行うと、それを検知したボットサーバの動作制御部１６３は、そのグループチャットに参加している各ユーザのプリンタをユーザ情報記憶部から求め、求めた各プリンタに対して文書の印刷指示を送って印刷させる。【選択図】図２
2020052481.tif 000002
【特許請求の範囲】
【請求項１】
グループチャットに参加する複数のユーザのそれぞれに対応する出力機器の情報を記憶する記憶手段と、
前記複数のユーザのいずれか一人がデータの出力指示を示す投稿を前記グループチャット上で行った場合に、前記記憶手段に記憶された情報に従い、前記複数のユーザのうちの前記出力指示を示す投稿をしていないユーザを含む１以上の出力先ユーザのそれぞれに対応する出力機器から前記データを出力するための制御を行う制御手段と、
を含む情報処理装置。
【請求項２】
前記複数のユーザのそれぞれに対応する出力機器の性能を示す性能情報を取得する手段、を更に含み、
前記制御手段は、前記出力先ユーザのそれぞれに対応する前記出力機器の中に前記出力指示に対応する出力設定での出力が不可能な性能のものがある場合、その不可能な性能の出力機器で出力可能とするための対処処理を実行する、
請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記対処処理として、前記出力先ユーザに対応する前記出力機器のすべてが満足可能な出力設定を提案する第２の投稿を、前記出力指示を行ったユーザに対して行い、第２の投稿で提案した前記出力設定を受け入れる旨の第３の投稿がそのユーザからあった場合に、第２の投稿で提案した前記出力設定に設定変更する、請求項２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記対処処理として、前記出力先ユーザのそれぞれに対応する前記出力機器のうち前記出力設定での出力が不可能な性能の出力機器ごとに個別に、当該出力機器の性能で出力が可能な出力設定に変更する提案を行う第４の投稿を行い、第４の投稿に対して前記出力指示を行ったユーザ又は当該出力機器に対応付けられたユーザから、その提案を受け入れる旨の第５の投稿があった場合に、その提案した出力設定に変更して前記データを当該出力機器から出力するように制御する、請求項２に記載の情報処理装置。
【請求項５】
前記制御手段は、前記出力指示を行ったユーザから、対処を委せる旨の投稿があった場合、前記対処処理として、前記出力先ユーザのそれぞれに対応する前記出力機器ごとに、当該出力機器の性能で出力可能な状態に前記データを変換し、変換後の前記データを当該出力機器から出力するように制御する、請求項２に記載の情報処理装置。
【請求項６】
前記制御手段は、前記グループチャット上でのいずれかの前記ユーザの投稿に応じて、前記グループチャットにおける動作モードを特定モードと非特定モードのいずれかに切り替え、前記特定モードである間にいずれかの前記ユーザがデータの出力指示を示す投稿を行った場合には、前記グループチャットのすべての前記ユーザを前記出力先ユーザとし、それら出力先ユーザそれぞれに対応する前記出力機器ら前記データが出力されるようにする制御を行う、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記制御手段は、前記特定モードにおいて、前記出力機器に対応する種類のデータの投稿があった場合は、そのデータについての出力指示を示す投稿がなくても、そのデータの出力指示がなされたものとみなす制御を行う、請求項６に記載の情報処理装置。
【請求項８】
前記データの投稿に関して、その投稿を行ったユーザと同じユーザからそのデータが出力不要であることを示す投稿があった場合は、そのデータについては、そのデータの出力指示がなされたものとみなす制御は行わない、請求項７に記載の情報処理装置。
【請求項９】
前記制御手段は、前記非特定モードにおいて、前記ユーザからデータの出力指示を示す投稿があった場合、その投稿に出力先のユーザの指定が含まれていれば、その出力先のユーザに対応する出力機器から前記データを出力するよう制御する、請求項６〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記制御手段は、前記非特定モードにおいて、前記ユーザからデータの出力指示を示す投稿があった場合、その投稿に出力先のユーザの指定が含まれていない場合、その出力指示を示す投稿を行ったユーザに対応する出力機器から前記データを出力するよう制御する、請求項６〜９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記制御手段は、データの出力指示を示す投稿に関して、第１の出力先ユーザに対応する出力機器が前記記憶手段に記憶されていない場合、前記第１の出力先ユーザに対して前記データの出力に関して希望する取扱を尋ねる投稿を行い、この投稿に対して前記第１の出力先ユーザから、第２の出力先ユーザに対応する出力機器から当該データを出力することを希望する旨の投稿があった場合は、前記第１の出力先ユーザ用の出力を前記第２の出力先ユーザに対応する出力機器から行うよう制御する、請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記制御手段は、データの出力指示を示す投稿に関して、前記グループチャットにおいて第１の出力先ユーザから、第２の出力先ユーザに対応する出力機器から当該データを出力することを希望する旨の投稿があった場合は、前記第１の出力先ユーザ用の出力を前記第２の出力先ユーザに対応する出力機器から行うよう制御する、請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１３】
前記制御手段は、前記第１の出力先ユーザから、前記第２の出力先ユーザに対応する出力機器から当該データを出力することを希望する旨の投稿があった場合に、前記第２の出力先ユーザに対して前記第１の出力先ユーザ用の出力を許可するか否かを問い合わせる発言を行い、その発言に対して前記第２の出力先ユーザから許可する旨の発言があった場合に、前記第１の出力先ユーザ用の出力を前記第２の出力先ユーザに対応する出力機器から行うよう制御する、請求項１１又は１２に記載の情報処理装置。
【請求項１４】
コンピュータを、
グループチャットに参加する複数のユーザのそれぞれに対応する出力機器の情報を記憶する記憶手段、
前記複数のユーザのいずれか一人がデータの出力指示を示す投稿前記グループチャット上で行った場合に、前記記憶手段に記憶された情報に従い、前記複数のユーザのうちの前記出力指示を示す投稿をしていないユーザを含む１以上の出力先ユーザのそれぞれに対応する出力機器から前記データを出力するための制御を行う制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
チャットサービス上でのユーザの発言から機器への操作指示を認識し、その機器を操作するソフトウエアロボット（以下、「チャットボット」又は単に「ボット」と呼ぶ）がある。例えば、ユーザが、印刷装置を制御するボットをチャットサービスに登録し、そのボットとの一対一チャットで、ユーザからボットへ印刷を指示するシステムがある。この従来システムでは、ボットにはそのユーザに対応する印刷装置が登録されており、ユーザがボットに印刷指示を行うと、その登録された印刷装置から印刷が行われる。
【０００３】
特許文献１に開示される情報提供システムは、ユーザ端末で実行されるインスタントメッセージングアプリケーションを介してユーザが人工知能ソフトウエアプログラムで実現される仮想の友だちの通訳ソフトウエアロボットをユーザが友だちに追加されるようにする。そして、ユーザが通訳ソフトウエアロボットをトークセッションを介して第１言語のメッセージを入力して送信すれば、情報提供システムは、第１言語のメッセージと共に、またはこれに代替して第２言語に翻訳された第２言語のメッセージを生成してユーザ及び対話相手方に提供する。
【０００４】
特許文献２に開示された制御サーバは、解析部が解析したメッセージの内容が、所定の電気機器に対する制御指示である場合に、当該制御指示に応じたメッセージであって、電気機器がメッセージの主体であることを連想させる表現を含むメッセージを電子伝言板に書き込む。
【０００５】
特許文献３に開示された方法は、インスタントメッセージングアプリケーションを介した情報提供方法において、ユーザ端末のメッセージングアプリケーションを介してユーザがソフトウエアロボットに送信するメッセージを受信し、前記メッセージをクエリとしてデータベースから応答を検索し、前記ユーザ端末のメッセージングアプリケーションを介して前記応答を前記ユーザに送信する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１７９５１９号公報
【特許文献２】特開２０１５−１４４０２７号公報
【特許文献３】特開２０１４−２２５２６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
出力機器を操作するボットをグループチャットに参加させる場合を考える。この場合、ボットにはグループチャットのためのグループ共用の出力機器を登録することが考えられる。この場合、ボットはグループチャット上でデータの出力指示を受けると、その出力機器にそのデータを出力させることとなる。しかし、グループチャットに参加するユーザが互いに遠隔の地にいる場合もあり、そのボットに登録された出力機器が、それらユーザのすべてにとって便利であるとは限らない。例えばボットに登録された出力機器が近くにないユーザは、出力機器からのデータの出力を得ることができない。
【０００８】
本発明は、グループチャットに参加するボットにグループ共用の出力機器を登録する方式と比べて、グループチャットに参加する一人のユーザから行われた出力指示の発言に応じて、出力指示の発言をしていないユーザを含む個々の出力先ユーザに便利な出力機器から出力できる仕組みを提供する。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、グループチャットに参加する複数のユーザのそれぞれに対応する出力機器の情報を記憶する記憶手段と、前記複数のユーザのいずれか一人がデータの出力指示を示す投稿前記グループチャット上で行った場合に、前記記憶手段に記憶された情報に従い、前記複数のユーザのうちの前記出力指示を示す投稿をしていないユーザを含む１以上の出力先ユーザのそれぞれに対応する出力機器から前記データを出力するための制御を行う制御手段と、を含む情報処理装置である。
【００１０】
請求項２に係る発明は、前記複数のユーザのそれぞれに対応する出力機器の性能を示す性能情報を取得する手段、を更に含み、前記制御手段は、前記出力先ユーザのそれぞれに対応する前記出力機器の中に前記出力指示に対応する出力設定での出力が不可能な性能のものがある場合、その不可能な性能の出力機器で出力可能とするための対処処理を実行する、請求項１に記載の情報処理装置である。
【００１１】
請求項３に係る発明は、前記制御手段は、前記対処処理として、前記出力先ユーザに対応する前記出力機器のすべてが満足可能な出力設定を提案する第２の投稿を、前記出力指示を行ったユーザに対して行い、第２の投稿で提案した前記出力設定を受け入れる旨の第３の投稿がそのユーザからあった場合に、第２の投稿で提案した前記出力設定に設定変更する、請求項２に記載の情報処理装置である。
【００１２】
請求項４に係る発明は、前記制御手段は、前記対処処理として、前記出力先ユーザのそれぞれに対応する前記出力機器のうち前記出力設定での出力が不可能な性能の出力機器ごとに個別に、当該出力機器の性能で出力が可能な出力設定に変更する提案を行う第４の投稿を行い、第４の投稿に対して前記出力指示を行ったユーザ又は当該出力機器に対応付けられたユーザから、その提案を受け入れる旨の第５の投稿があった場合に、その提案した出力設定に変更して前記データを当該出力機器から出力するように制御する、請求項２に記載の情報処理装置である。
【００１３】
請求項５に係る発明は、前記制御手段は、前記出力指示を行ったユーザから、対処を委せる旨の投稿があった場合、前記対処処理として、前記出力先ユーザのそれぞれに対応する前記出力機器ごとに、当該出力機器の性能で出力可能な状態に前記データを変換し、変換後の前記データを当該出力機器から出力するように制御する、請求項２に記載の情報処理装置である。
【００１４】
請求項６に係る発明は、前記制御手段は、前記グループチャット上でのいずれかの前記ユーザの投稿に応じて、前記グループチャットにおける動作モードを特定モードと非特定モードのいずれかに切り替え、前記特定モードである間にいずれかの前記ユーザがデータの出力指示を示す投稿を行った場合には、前記グループチャットのすべての前記ユーザを前記出力先ユーザとし、それら出力先ユーザそれぞれに対応する前記出力機器ら前記データが出力されるようにする制御を行う、請求項１〜５のいずれか１項に記載の情報処理装置である。
【００１５】
請求項７に係る発明は、前記制御手段は、前記特定モードにおいて、前記出力機器に対応する種類のデータの投稿があった場合は、そのデータについての出力指示を示す投稿がなくても、そのデータの出力指示がなされたものとみなす制御を行う、請求項６に記載の情報処理装置。
【００１６】
請求項８に係る発明は、前記データの投稿に関して、その投稿を行ったユーザと同じユーザからそのデータが出力不要であることを示す投稿があった場合は、そのデータについては、そのデータの出力指示がなされたものとみなす制御は行わない、請求項７に記載の情報処理装置である。
【００１７】
請求項９に係る発明は、前記制御手段は、前記非特定モードにおいて、前記ユーザからデータの出力指示を示す投稿があった場合、その投稿に出力先のユーザの指定が含まれていれば、その出力先のユーザに対応する出力機器から前記データを出力するよう制御する、請求項６〜８のいずれか１項に記載の情報処理装置である。
【００１８】
請求項１０に係る発明は、前記制御手段は、前記非特定モードにおいて、前記ユーザからデータの出力指示を示す投稿があった場合、その投稿に出力先のユーザの指定が含まれていない場合、その出力指示を示す投稿を行ったユーザに対応する出力機器から前記データを出力するよう制御する、請求項６〜９のいずれか１項に記載の情報処理装置である。
【００１９】
請求項１１に係る発明は、前記制御手段は、データの出力指示を示す投稿に関して、第１の出力先ユーザに対応する出力機器が前記記憶手段に記憶されていない場合、前記第１の出力先ユーザに対して前記データの出力に関して希望する取扱を尋ねる投稿を行い、この投稿に対して前記第１の出力先ユーザから、第２の出力先ユーザに対応する出力機器から当該データを出力することを希望する旨の投稿があった場合は、前記第１の出力先ユーザ用の出力を前記第２の出力先ユーザに対応する出力機器から行うよう制御する、請求項１〜１０のいずれか１項に記載の情報処理装置である。
【００２０】
請求項１２に係る発明は、前記制御手段は、データの出力指示を示す投稿に関して、前記グループチャットにおいて第１の出力先ユーザから、第２の出力先ユーザに対応する出力機器から当該データを出力することを希望する旨の投稿があった場合は、前記第１の出力先ユーザ用の出力を前記第２の出力先ユーザに対応する出力機器から行うよう制御する、請求項１〜１０のいずれか１項に記載の情報処理装置である。
【００２１】
請求項１３に係る発明は、前記制御手段は、前記第１の出力先ユーザから、前記第２の出力先ユーザに対応する出力機器から当該データを出力することを希望する旨の投稿があった場合に、前記第２の出力先ユーザに対して前記第１の出力先ユーザ用の出力を許可するか否かを問い合わせる発言を行い、その発言に対して前記第２の出力先ユーザから許可する旨の発言があった場合に、前記第１の出力先ユーザ用の出力を前記第２の出力先ユーザに対応する出力機器から行うよう制御する、請求項１１又は１２に記載の情報処理装置である。
【００２２】
請求項１４に係る発明は、コンピュータを、グループチャットに参加する複数のユーザのそれぞれに対応する出力機器の情報を記憶する記憶手段、前記複数のユーザのいずれか一人がデータの出力指示を示す投稿前記グループチャット上で行った場合に、前記記憶手段に記憶された情報に従い、前記複数のユーザのうちの前記出力指示を示す投稿をしていないユーザを含む１以上の出力先ユーザのそれぞれに対応する出力機器から前記データを出力するための制御を行う制御手段、として機能させるためのプログラムである。
【発明の効果】
【００２３】
請求項１又は１４に係る発明によれば、グループチャットに参加するチャットボットにグループ共用の出力機器を登録する方式と比べて、グループチャットに参加する一人のユーザから行われたデータ出力指示の発言に応じて、出力指示の発言をしていないユーザを含むそのグループチャットの個々の出力先ユーザに便利な出力機器から出力できる。
【００２４】
請求項２、３、４又は５に係る発明によれば、出力先ユーザのそれぞれに対応する出力機器の中に出力指示に対応する出力設定での出力が不可能な性能のものがある場合に、出力指示を行ったユーザ又は出力先ユーザの希望に従ってそれら各出力機器から出力可能な設定に変更することができる。
【００２５】
請求項６に係る発明によれば、特定モードである間は、出力指示を行うユーザは出力先を指定しなくても、グループチャットのすべてのユーザに対応する出力機器から出力させることができる。
【００２６】
請求項７に係る発明によれば、特定モードにおいては出力機器に対応する種類のデータをグループチャットに投稿すれば、データの出力のための明示的な指示を行わなくても各ユーザの出力機器から出力させることができる。
【００２７】
請求項８に係る発明によれば、データを投稿しただけで出力指示とみなされる場合に、投稿した者がその出力指示を取り消すことができる。
【００２８】
請求項９に係る発明によれば、非特定モードでは、出力指示に指定された出力先ユーザに対応する出力機器からデータを出力することができる。
【００２９】
請求項１０に係る発明によれば、非特定モードでは、出力先の指定がない場合、出力指示を行ったユーザに対応する出力機器から出力することができる。
【００３０】
請求項１１に係る発明によれば、対応する出力機器が記憶手段に記憶されていないユーザから、他のユーザに対応する出力機器からの出力の希望を受けることができる。
【００３１】
請求項１２に係る発明によれば、自分に対応する出力機器の場所とは別の、他のユーザ（第２の出力先ユーザ）に対応する出力機器に近い場所に居るユーザ（第１の出力先ユーザ）が、当該他のユーザに対応する出力機器からの出力を希望することができる。
【００３２】
請求項１３に係る発明によれば、第１の出力先ユーザが希望しても、第２の出力先ユーザが望まない場合には、第２の出力先ユーザに対応する出力機器から第１の出力先ユーザのための出力を行わないようにすることができる。
【図面の簡単な説明】
【００３３】
【図１】実施形態１のシステム構成図である。
【図２】実施形態１の機能ブロック図である。
【図３】実施形態１の構成ブロック図である。
【図４】ユーザ情報テーブルの説明図である。
【図５】グループ情報テーブルの説明図である。
【図６】チャットボットの処理手順を例示する図である。
【図７】図６の手順に対応するグループチャットの画面表示の例を示す図である。
【図８】印刷設定通りの印刷ができない登録プリンタへの対処を含むチャットボットの処理手順を例示する図である。
【図９】図８の手順に対応するグループチャットの画面表示の例を示す図である。
【図１０】印刷設定通りの印刷ができない登録プリンタへの対処を含むチャットボットの処理手順の別の例を示す図である。
【図１１】図１０の手順に対応するグループチャットの画面表示の例を示す図である。
【図１２】印刷設定通りの印刷ができない登録プリンタへの対処を含むチャットボットの処理の別の例における、グループチャットの画面表示の例を示す図である。
【図１３】会議モードでの処理を含むチャットボットの処理手順を例示する図である。
【図１４】図１３の手順に対応するグループチャットの画面表示の例を示す図である。
【図１５】プリンタ未登録のチャット参加者についての処理を含むチャットボットの処理手順の一部を例示する図である。
【図１６】図１５の手順に対応するグループチャットの画面表示の例を示す図である。
【図１７】登録プリンタとは別のプリンタから出力するための処理を含むチャットボットの処理手順の一部を例示する図である。
【図１８】図１７の手順に対応するグループチャットの画面表示の例を示す図である。
【発明を実施するための形態】
【００３４】
以下、図面に基づき本発明の実施形態について、チャットボットとして、ユーザからのメッセージに応じて印刷サービスを提供するチャットボットを例にとり説明する。
【００３５】
＜実施形態１＞
図１は、実施形態におけるメッセージサービスシステムの全体構成図を示す。メッセージサービスシステムは、ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）、チャットサービスサーバ１４、ボットサーバＡ（１６Ａ）〜ボットサーバＢ（１６Ｂ）、及びプリンタａ（１８ａ）〜プリンタｃ（１８ｃ）を備える。
【００３６】
ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）は、メッセージサービスのユーザが利用する端末であり、スマートフォンやタブレット端末、ＰＣ（パーソナルコンピュータ）等の情報端末である。図では、ユーザ端末Ａ（１０Ａ）、ユーザ端末Ｂ（１０Ｂ）、ユーザ端末Ｃ（１０Ｃ）の３台を示しているが、その数は任意である。ユーザは、ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）を操作してクラウド１２上のチャットサービスサーバ１４にアクセスし、他のユーザやチャットボットとメッセージ等をやり取りする。以下では、ユーザＡがユーザ端末Ａを操作し、ユーザＢがユーザ端末Ｂを操作し、ユーザＣがユーザ端末Ｃを操作するものとする。ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）とチャットサービスサーバ１４は、有線あるいは無線の通信ネットワークでデータ送受信可能に接続される。通信ネットワークの一例はインターネット等の公衆回線であるが、専用回線でもよい。
【００３７】
チャットサービスサーバ１４は、クラウド１２上に配置されたクラウドサーバであり、チャットサービスを提供するサーバである。チャットサービスサーバ１４は、１又は複数のサーバコンピュータで構成される。チャットサービスサーバ１４は、ユーザ端末Ａ〜ユーザ端末Ｃに対するメッセージ等の送受信処理、及びメッセージ送受信の表示画面表示等、メッセージのやり取りに関する処理全般を実行する。チャットサービスサーバ１４は、２人のメンバ間のメッセージ等のやり取りを処理する他に、３人以上のメンバでグループを形成し、グループ内でのメッセージ等のやり取りを処理することができる。以下では、２人のメンバ間でメッセージ等のやり取りを行なうこと、及びそのやり取りを行なう場のことを、一対一チャット又はピア・ツー・ピアチャットと呼ぶ。また、３人以上のメンバで形成したグループ内でメッセージ等のやり取りを行なうこと、及びそのやり取りを行なう場のことを、グループチャットと呼ぶ。チャットサービスサーバ１４は、グループチャットごとに、そのグループチャットに所属するメンバの識別子（例、ユーザＩＤ）のリストを保持する。さらに、チャットサービスサーバ１４は、ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）と協働し、ボットサーバ１６Ａ，１６Ｂにより提供されるチャットボットに対するメッセージ等のやり取りを処理する。本実施形態においてチャットボットは、チャット上でメッセージ等のやり取りを行なう「メンバ」の１人として取り扱う。すなわち、メンバには、実在する人物との関連付けがなされたユーザと、チャットボットとの両方が含まれる。ユーザとチャットボットとのメッセージ等のやり取りには、１人のユーザとチャットボットとのメッセージ等のやり取り、及び複数のユーザとチャットボットとのメッセージ等のやり取りが含まれる。すなわち、チャットボットは、ユーザとの一対一チャットに参加する場合もあれば、グループチャットに参加する場合もある。チャットボットは、例えば、チャットに参加しているユーザからの招待に応じて、そのチャットに参加する。
【００３８】
チャットにおいてメンバ間でやりとりされるメッセージ等の概念の中には、文字列で表現されたメッセージの他に、いわゆる「スタンプ」のように投稿内容を表す画像や、ＵＲＬ（Uniform Resource Locator）等が含まれる。このようなメッセージ等のことを、チャットに対する「投稿」とも呼ぶ。これはチャットに投稿された情報を示す意味での「投稿」である。また、チャットのメンバが、そのようなメッセージ等をそのチャットに入力する行為のことも「投稿」と呼ぶ。これは行為としての「投稿」である。チャットへの「投稿」行為には、そのチャットに対して文字列のメッセージを書き込む行為、スタンプを送信する行為、ＵＲＬを貼付する行為、ファイル等のデータをチャットに入力する行為（例えば投稿するデータを選択し、投稿ボタンを押下する行為）、などが含まれる。
【００３９】
ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、ユーザとの間で投稿をやり取りするチャットボットのソフトウエアロボットプログラムがインストールされ、当該プログラムを実行する。これらのボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、企業や店舗などの、広告用または商業用に割り当てられたメッセンジャーサービスアカウントがそれぞれ運用するものであってもよい。
【００４０】
ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、チャットサービスサーバ１４と特定ＡＰＩ（ＡＰＩとはApplication Programming Interface：アプリケーションプログラミングインタフェースのこと）を介して協働し、ユーザとメッセージ等の投稿をやり取りし、ユーザからのメッセージに自動応答してメッセージを返信する。特定ＡＰＩは、チャットサービスサーバ１４を利用するためのＡＰＩである。ＡＰＩの形式は任意であるが、例えばＪＳＯＮ（Javascript（登録商標） Object Notation：ジャバスクリプト  オブジェクト  ノーテイションの略）形式のＡＰＩとし、規定のフォーマットのＪＳＯＮデータをチャットサービスサーバ１４の特定ＵＲＬに対してＰＯＳＴやＧＥＴで送信し、結果がＪＳＯＮ形式のデータとして返ってくる。
【００４１】
ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、ユーザからのメッセージに動作指示が含まれている場合に、当該動作指示に応じて特定のサービス内容を実行する。本実施形態において、ボットサーバＡ（１６Ａ）は、ユーザからのメッセージに印刷指示が含まれている場合に、この印刷指示に応じてプリンタａ（１８ａ）、プリンタｂ（１８ｂ）又はプリンタｃ（１８ｃ）を動作させて印刷処理する「プリントボット」として機能する。他方、ボットサーバ１６Ｂは、ユーザからの動作指示に応じて任意のサービスを提供し得る。図１では、ボットサーバＡ（１６Ａ）、ボットサーバＢ（１８Ｂ）の２台を示しているが、その数は任意である。また、１台のボットサーバで複数のチャットボットを構成してもよく、複数台のボットサーバで１つのチャットボットを構成してもよい。
【００４２】
チャットボット（あるいはプリントボット）としてのボットサーバＡは、予めユーザ毎に登録された、ソフトウエアロボットプログラムの動作に関する設定情報に従ってプリンタａ、ｂ又はｃを駆動して印刷処理を実行する。本実施形態では、ユーザごとに、そのユーザが利用するプリンタをチャットボットに登録することが可能であり、チャットボットは、印刷出力先をユーザ名（又はユーザＩＤ）で指定した印刷指示を受けた場合、そのユーザ名に対応付けて登録されたプリンタ（そのユーザについての「登録プリンタ」と呼ぶ）にその印刷指示に係る印刷処理を実行させる。
【００４３】
プリンタａ（１８ａ）〜プリンタｃ（１８ｃ）は、ボットサーバＡからの指令により印刷処理を実行する。
【００４４】
図２は、ボットサーバＡ（１６Ａ）の機能ブロック図である。ボットサーバＡは、機能ブロックとして、通信部１６０、メッセージ受付部１６１、内容解析部１６２、動作制御部１６３、応答メッセージ作成部１６４、ユーザ情報記憶部１６５、グループ情報記憶部１６６、メッセージ記憶部１６７、及びＡＰＩゲートウェイ１６８を備える。
【００４５】
通信部１６０は、チャットサービスサーバ１４及びプリンタａ〜ｃと通信する。通信部１６０は、ＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４と通信し、投稿を交換する。通信部１６０は、ＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４から受信した投稿、すなわちユーザ端末Ａ〜ユーザ端末Ｃからの投稿をメッセージ受付部１６１に出力する。また、通信部１６０は、応答メッセージ作成部１６４で作成されたメッセージ等の応答を、ＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４に送信（つまりユーザ端末Ａ〜ユーザ端末Ｃに送信）する。さらに、通信部１６０は、動作制御部１６３からの指令に従い、プリンタａ〜ｃに印刷指示を出力してプリンタａ〜ｃを駆動する。
【００４６】
メッセージ受付部１６１は、通信部１６０からの投稿を受け付け、内容解析部１６２に出力する。チャットにおけるユーザからの投稿の中には、印刷指示やチャットボットからの質問に対する回答が含まれる。メッセージ受付部１６１は、受け付けた投稿をメッセージ記憶部１６７に順次記憶する。
【００４７】
内容解析部１６２は、受け付けた投稿のうち、少なくとも文字列で表現されたメッセージの内容を解析して動作制御部１６３に出力する。具体的には、受け付けたメッセージに含まれるユーザ識別子（ユーザＩＤ）を認識するとともに、メッセージに含まれるテキスト部分を抽出してその構文解析を実行する。構文解析の方法は任意であり、例えば、入力メッセージを形態素単位に分解した後、名詞や形容詞、動詞、疑問代名詞をキーワードとして抽出する。内容解析部１６２は、メッセージのテキスト部分に動作指示が含まれている場合に、その動作指示の内容を解析して動作制御部１６３に出力する。本実施形態における動作指示には、プリンタａ〜ｃに対する印刷指示、会議モード（詳細は後述）の開始及び終了の指示、印刷不要の指示、チャットボットの質問に対する回答としての指示、が含まれる。また、受け付けた投稿がスタンプである場合は、内容解析部１６２はそのスタンプに対応付けられた意味情報を取得する。スタンプにはあらかじめ当該スタンプが示す意味が定められており、チャットの処理を行うコンピュータは、各スタンプの意味を、そのスタンプ自体から、又はチャットサービスサーバから取得できる。
【００４８】
動作制御部１６３は、内容解析部１６２で得られた解析結果に基づき、ユーザからの印刷指示を認識した場合、通信部１６０を介してプリンタａ〜ｃに印刷指示を出力する。特に、動作制御部１６３は、グループチャットで印刷指示を受けた場合、そのグループチャットに参加している各メンバの登録プリンタに印刷を実行させる制御を行う。
【００４９】
また、本実施形態のチャットボットは、ユーザがグループチャットで出力先の指定を省略して印刷指示を示す投稿（例：グループチャット上での、印刷指示を意味するメッセージの投稿）を行うと、そのグループチャットに現に参加しているユーザ（以下、参加者と呼ぶ）全員の登録プリンタからその印刷指示の対象の文書を印刷するモードを有している。このモードのことを会議モードと呼ぶ。ここで、グループチャットの各参加者の登録プリンタの性能にはばらつきがあることが一般的である。また参加者の中には、会議モードで印刷指示された文書の印刷が不要な者もいるかも知れない。また参加者の中にはチャットボットにプリンタを登録していない者がいる場合もある。また参加者の中には、登録プリンタはあるが、そのグループチャットに参加している時点では出先におり、その登録プリンタに出力されても困る者もいる可能性がある。このような参加者個別の事情に対処するために、動作制御部１６３は、応答メッセージ作成部１６４を介して案内や質問を示す投稿をグループチャットに対して行ったり、そのメッセージに対する参加者からの回答に応じて印刷の設定や印刷要否等の変更を行ったりする。なお、グループチャットに登録されているメンバの全てが常にグループチャットに参加しているとは限らないので、ある時点でのグループチャットの参加者は、そのグループチャットのメンバ全体の部分集合である。
【００５０】
応答メッセージ作成部１６４は、内容解析部１６２における解析結果や動作制御部１６３からの指示に応じて応答内容を示す投稿情報を作成し、通信部１６０を介してその投稿情報をチャットサービスサーバ１４に送信する。
【００５１】
ユーザ情報記憶部１６５は、チャットサービスサーバ１４を利用するユーザの情報、特に、ボットサーバＡで実現されるチャットボットを利用するユーザの情報をテーブルとして記憶する。チャットボットは、チャットサービスサーバ１４で実現されるチャットサービス上で特定のアカウントが割り当てられており、このアカウントを指定してユーザが一定の操作（例えば「友達」登録を意味する操作）を行うことでチャットボットの利用が確定される。ユーザ情報記憶部１６５が記憶するユーザの情報には、例えばユーザＩＤ、ユーザの登録プリンタの情報が含まれる。各ユーザの権限についての情報を記憶してもよい。
【００５２】
グループ情報記憶部１６６は、チャットサービスサーバ１４が管理している各グループチャットのグループの情報を記憶する。グループの情報には、グループの識別子（以下グループＩＤとも呼ぶ）と、そのグループを構成するメンバのユーザＩＤのリストとを含む。
【００５３】
メッセージ記憶部１６７は、メッセージ受付部１６１で受け付けたユーザからのメッセージを履歴として記憶する。
【００５４】
図３は、ボットサーバＡの構成ブロック図を示す。ボットサーバＡは、１又は複数のサーバコンピュータから構成され、１又は複数のＣＰＵ１６ｂ、ＲＯＭ１６ｃ、ＲＡＭ１６ｄ、通信インタフェース（Ｉ／Ｆ）１６ｅ、入出力Ｉ／Ｆ１６ｆ、及び記憶装置１６ｇを備える。
【００５５】
１又は複数のＣＰＵ１６ｂは、ＲＯＭ１６ｃあるいは記憶装置１６ｇに記憶されたボットアプリを読み出し、ＲＡＭ１６ｄをワーキングメモリとして用いることでチャットボットの機能を実現する。すなわち、ユーザからのメッセージに自動応答し、ユーザからのメッセージに動作指示が含まれている場合に当該動作指示に応じてプリンタａ〜ｃを駆動する。ＣＰＵ１６ｂは、ボットアプリを実行することで、図２におけるメッセージ受付部１６１、内容解析部１６２、動作制御部１６３、応答メッセージ作成部１６４、及びＡＰＩゲートウェイ１６８を実現する。
【００５６】
通信Ｉ／Ｆ１６ｅは、チャットサービスサーバ１４とのメッセージのやり取りを行うとともに、プリンタａ〜ｃに対して印刷指示を出力する。
【００５７】
入出力Ｉ／Ｆは、キーボードマウス等の入力装置、表示装置等の出力装置とデータを送受信する。
【００５８】
記憶装置１６ｇは、ＨＤＤ（Hard Disk Drive：ハードディスクドライブ）やＳＳＤ（Solid State Drive：ソリッドステートドライブ）等の不揮発性メモリで構成され、ボットアプリを記憶する他に、ユーザ情報テーブル、グループ情報テーブル及びメッセージ管理テーブルを記憶する。記憶装置１６ｇは、図２におけるユーザ情報記憶部１６５、グループ情報記憶部１６６及びメッセージ記憶部１６７を実現する。
【００５９】
なお、本実施形態では、チャットボットを実現するためのソフトウエアロボットプログラムをＣＰＵにより実行しているが、チャットボットの一部をプログラムの実行による処理ではなく、ハードウエア処理により実現してもよい。ハードウエア処理は、例えばＡＳＩＣやＦＰＧＡ（フィールドプログラマブルゲートアレイ）などの回路を用いて行ってもよい。
【００６０】
図４に、ユーザ情報記憶部１６５に記憶されるユーザ情報テーブルの例を示す。この例のユーザ情報テーブルには、各ユーザのユーザＩＤに対応付けて、そのユーザの登録プリンタの識別子（プリンタＩＤと呼ぶ）と、その登録プリンタの性能情報（「プリンタ性能」）とが登録されている。プリンタ性能には、カラー印刷及び両面印刷の機能の有無、印刷可能な最大の用紙サイズ、Ｎｕｐ機能（用紙１ページに印刷データのページをＮページ割り付けて印刷する機能。Ｎは正の整数）の有無等がある。チャットボットでのユーザの識別に用いるユーザＩＤは、チャットサービスサーバ１４における当該ユーザのＩＤをそのまま用いてもよいし、チャットボット（ボットサーバ）が独自に付与してもよい。ただし、後者の場合、ボットサーバは、自らユーザに付与したユーザＩＤと、チャットサービスサーバ１４におけるそのユーザのＩＤとの対応関係の情報を保持する。
【００６１】
図５に、グループ情報記憶部１６６に記憶されるグループ情報テーブルの例を示す。例示したグループ情報テーブルには、各グループのグループＩＤ（これはそのグループに対応するグループチャットのＩＤでもある）に対応付けて、そのグループに属するユーザ（すなわちグループのメンバ）のユーザＩＤのリスト（「メンバリスト」）と、そのグループのグループチャットに現在参加しているユーザのＩＤのリスト（「現在のチャット参加者」）とが登録されている。なお、メンバリスト及び現在のチャット参加者の情報は、チャットサービスサーバ１４から取得する。
【００６２】
次に本実施形態においてチャットボット（ボットサーバ１６Ａ又は１６Ｂ）が行う制御の例を説明する。
【００６３】
図６は、チャットボットの処理手順の一例を示す。このチャットボットは、あるグループチャットに参加しているものとする。
【００６４】
チャットボットは、そのグループチャットにおける各参加者の投稿を監視している。この監視処理では、チャットボット（特に内容解析部１６２）が、各参加者の投稿の内容を解析して、それら投稿の中からチャットボット宛の動作指示（又はチャットボットの質問に対する回答）を示す投稿を検出する。ここでは、チャットボットが、ある１人の参加者（人間）からの印刷指示を示す投稿を検知（Ｓ１０）した場合を考える。印刷指示を示す投稿には、印刷して欲しいことの意思表示に加え、印刷対象の文書（対象文書と呼ぶ）の指定、出力先のユーザ（チャットの参加者又はメンバ）の指定が、明示的又は暗黙的に含まれる。
【００６５】
例えば、グループチャット（あるいはそのグループチャットが行われる仮想的な場としてのチャットルーム）の設定又はモード（例えば後述する会議モード）によっては、参加者が文書をグループチャットに投稿する操作（この操作には文書の識別情報の入力が含まれる）を行うと、それを暗黙的な印刷指示とみなす。また別の設定又はモードでは、文書を投稿しただけでは印刷指示とはみなさず、その文書を印刷するには、別途明示的に印刷指示を示す投稿を要する。なお、ここで言う「文書」は、印刷画像として出力可能な形式のファイルである。例えば、ワードプロセッサやスプレッドシート等のアプリケーションで作成された文書ファイル、ＰＮＧその他各種画像フォーマットの画像ファイル等が「文書」の例である。
【００６６】
また、ある設定又はモード（例えば後述する会議モード）では、印刷指示に関して出力先のユーザの指定が明示的にない場合、当該グループチャットの参加者全員を出力先として暗黙的に指定しているものとみなす。また、グループチャットに現在参加していないものも含めてそのグループチャットのメンバ全員を出力先として暗黙的に指定しているものとみなす設定又はモードがあってもよい。また、別の設定又はモードでは、出力先ユーザの明示的な指定がない印刷指示については、その指示を行った本人（の登録プリンタ）を暗黙的な出力先であるとみなす。
【００６７】
なお、出力先の明示的な指定は、出力先とするユーザのユーザＩＤ、又はそのユーザのチャット上での表示名（これはユーザＩＤに対応付けられている）の文字列を、印刷指示に対応付けて投稿することで行う。
【００６８】
印刷したい旨の意思表示、対象文書の指定、出力先ユーザの指定は、互いに対応付けられていれば、複数の異なる発言（ただし同一ユーザの発言に限る）に分けて行われてもよい。印刷したい旨の意思表示、対象文書の指定、出力先ユーザの指定を互いに対応付ける方法の例としては、例えばそれらを示す投稿を連続して行う方法がある。
【００６９】
印刷指示を検知すると、チャットボット（特に動作制御部１６３）は、その指示に対応する各出力先ユーザの登録プリンタをユーザ情報テーブルから求める（Ｓ１２）。
【００７０】
次に、チャットボットの動作制御部１６３は、Ｓ１２で特定した各登録プリンタに対して、対象文書を印刷するよう指示する（Ｓ１４）。それら各プリンタでの処理が終了すると、チャットボット、特に応答メッセージ作成部１６４は、印刷結果を伝えるメッセージをグループチャットに投稿する（Ｓ１６）。
【００７１】
印刷が行われるときのグループチャット上でのやりとりの例を図７に示す。図７は、ユーザＡが操作するユーザ端末Ａ（符号１０Ａで示す）に表示されるチャットサービスの画面例である。この画面が示すグループチャットには、ユーザＡ、Ｂ、Ｃと、チャットボットが参加している。この例では、ユーザＡがチャットボットに対して印刷指示を行うものとする。
【００７２】
ユーザ端末Ａの画面には、チャットサービスサーバ１４によりユーザＡ（図中では「UserA」で示す）を示す表象図形、例えばアイコン１００が表示されるとともに、ボットサーバＡで実現されるチャットボットを示すアイコン１０２が表示される。そして、ユーザＡ及びチャットボットの投稿２００が上から下に時系列で表示される。
【００７３】
図７の例では、まず、ユーザＡが「文書1.doc」という文書を投稿する旨のメッセージを投稿し、そのあとその「文書1.doc」を当該グループチャットの参加者全員に印刷することを求めるメッセージを投稿する。
【００７４】
チャットボットは、ユーザＡの最初の投稿に含まれる文書「文書1.doc」を、印刷の対象になる可能性があるファイルとして、ユーザＡのユーザＩＤに対応付けて、例えばメモリやストレージに記憶する。そして、チャットボットは、ユーザＡの次の投稿を解析することで、その投稿が印刷の指示を示すものであること、その対象が先ほど記憶した文書「文書1.doc」であること、及び出力先が当該グループチャットの参加者全員であることを検知する。これに応じ、チャットボットは、グループチャットの現在の参加者はユーザＡ、Ｂ、Ｃであることを認識し、内容解析部１６２により「参加者全員」とはユーザＡ、Ｂ、Ｃの全員であることを認識する。そして、「ユーザＡ、Ｂ、Ｃのプリンタから出力します。」との発言をグループチャットに対して行う。またチャットボットは、ユーザＡ、Ｂ、Ｃの登録プリンタａ、ｂ、ｃをユーザ情報テーブル（図４参照）から求め、「文書1.doc」をそれら各登録プリンタで取扱可能な形式のデータに変換し、変換結果を含む印刷指示をそれら各登録プリンタに送る。
【００７５】
各登録プリンタは、受け取った印刷指示を実行することで、「文書1.doc」を用紙に印刷し、印刷が完了すると完了通知をチャットボット（ボットサーバ）に返す。
【００７６】
これを受けてチャットボットは、印刷完了を示すメッセージ（「印刷が完了しました。」）をグループチャットに発言する。
【００７７】
このように、本実施形態では、ユーザは、グループチャットの各参加者の登録プリンタの識別情報（プリンタ名等）を出力先として指定しなくても、出力先とする参加者を特定可能な情報（例えば「参加者全員に印刷して」）を投稿すれば、それら参加者のプリンタから印刷出力がなされることとなる。
【００７８】
＜印刷設定に関する処理＞
さて、チャットが遠隔のユーザ同士の会話手段である以上、グループチャットの各参加者が登録している登録プリンタは別々のプリンタである蓋然性が高く、性能もまちまちでると考えられる。
【００７９】
一方、チャットボットは、ユーザから、印刷指示に対応する印刷設定（印刷パラメータ）をチャットでユーザから受け付ける機能を有する。印刷設定には、カラー／白黒印刷の指定、両面／片面印刷の指定、用紙サイズ、Ｎｕｐ、倍率（拡大・縮小）等の項目がある。
【００８０】
したがって、グループチャットの参加者の登録プリンタの中には、ユーザからの印刷指示に付随する印刷設定での印刷を、性能不足のために実行できないものもあり得る。例えば、カラー印刷が指定された印刷指示がグループチャットで行われたが、その印刷指示の出力先に（明示的又は暗黙的に）指定されたユーザの登録プリンタが白黒印刷しかできないものである場合、そのプリンタではその印刷指示通りのカラー印刷はできず（その代わりに白黒で印刷）、プリンタによっては印刷自体を行わない場合もあり得る。
【００８１】
そこで、本実施形態では、グループチャットでの印刷指示の出力先のユーザの登録プリンタの中に、指定された印刷設定を満たせない性能のプリンタがある場合に、チャットボットがそのグループチャットの参加者とチャットすることでその問題に対処する。すなわち、チャットボットは、印刷指示を行った参加者、又は出力先に指定された参加者とチャットすることで、当初の印刷設定を満たせない性能のプリンタでも印刷指示が実行できるようにするために、印刷設定を変更する等の対処処理を行う。
【００８２】
このためのチャットボット（特に動作制御部１６３）の処理手順の一例を、図８に示す。
【００８３】
図８の手順では、チャットボットは、自分が参加しているグループチャットのある１人の参加者（人間）からの印刷指示を示す投稿を検知（Ｓ２０）した場合を考える。印刷指示の投稿には、出力先ユーザの指定、対象文書の指定、印刷設定等が明示的又は暗黙的に含まれる。
【００８４】
チャットボットは、ユーザ情報テーブルから各出力先ユーザの登録プリンタを特定し、それら各登録プリンタの性能情報を取得する（Ｓ２２）。次にチャットボットは、印刷設定とそれら各登録プリンタの性能情報とを比較して、出力先の登録プリンタの中に印刷設定通りの印刷が実行できない性能のものがあるかどうかを判定する（Ｓ２４）。この判定の結果がＮｏ、すなわち出力先の登録プリンタのすべてがその印刷設定通りの印刷が可能な性能を持つ場合、チャットボットは、それら各登録プリンタに対して、その印刷設定でその対象文書を印刷するよう指示する（Ｓ３２）。
【００８５】
Ｓ２４の判定結果がＹｅｓ、すなわち出力先の登録プリンタの中に印刷設定通りの印刷が実行できない性能のもの（以下「性能不足プリンタ」と呼ぶ）がある場合、チャットボットは、出力先のうちの性能不足プリンタのすべてが実行可能な印刷設定を求める。例えば、ユーザから指定された印刷設定の項目のうち性能不足プリンタが実行できない項目を、その性能不足プリンタの性能で実行可能な範囲の最高の値に変更するという処理を、すべての性能不足プリンタについて行うことで、性能不足プリンタのすべてが実行可能な印刷設定が求められた。このように求められた印刷設定は、出力先の登録プリンタのすべてが実行可能な印刷設定である。
【００８６】
チャットボットは、そのグループチャットの中で、あるいは印刷指示を行った参加者（以下「指示者」と呼ぶ）との一対一チャットで、出力先の参加者の登録プリンタの中に、その指示者から指定された印刷設定通りの印刷が不可能なものであることを示す投稿を行う。そして、チャットボットは、この印刷指示についての印刷設定を、求めた出力先の登録プリンタのすべてが実行可能な印刷設定へと変更することを提案する投稿を、そのグループチャット又は指示者との一対一チャットで、その指示者に対して行う（Ｓ２６）。グループチャット内でのこの提案の投稿は、指示者に対するメンション（すなわち指示者のユーザ名を発言の宛先として指定する文字列）を含んでいてもよい。
【００８７】
指示者は、その提案の投稿をみて、その提案を受け入れるかどうかを示す投稿をそのグループチャット又はその一対一チャットに対して行う。チャットボットは、指示者のその投稿の内容を解析して、その投稿がその提案を受け入れる旨を示すか否かを判定する（Ｓ２８）。指示者の投稿が、提案を受け入れる旨のものであった場合、チャットボットは、当該印刷指示に対応する印刷設定の内容をＳ２６で提案したものに変更し（Ｓ３０）、出力先の各登録プリンタに対してその変更後の印刷設定で対象文書を印刷するよう指示する（Ｓ３２）。
【００８８】
Ｓ２８で、指示者からの投稿が提案の受け入れを拒否するものであった場合、あるいは所定の時間待っても、指示者から提案を受け入れる旨を示す投稿がなかった場合、図８の例では、チャットボットは、そのグループチャットに対して、印刷指示に係る印刷が実行できない旨を示す投稿を行い（Ｓ３４）、出力先の各登録プリンタへの印刷指示は行わない。
【００８９】
図８の処理に対応するグループチャット上でのやりとりの例を図９に示す。図９は、ユーザＡが操作するユーザ端末Ａ（１０Ａ）に表示されるチャットサービスの画面例である。この画面が示すグループチャットには、ユーザＡ、Ｂ、Ｃと、チャットボットが参加している。この例では、ユーザＡが指示者であるとする。
【００９０】
図９の例では、まず、ユーザＡが「文書1.doc」という文書を投稿し、そのあとその「文書1.doc」を当該グループチャットの参加者全員にカラーで印刷することを求める内容の投稿を行う。
【００９１】
チャットボットは、ユーザＡの最初の投稿に含まれる文書「文書1.doc」を、印刷の対象になる可能性があるファイルとして、ユーザＡのユーザＩＤに対応付けて、例えばメモリやストレージに記憶する。またチャットボットは、その文書「文書1.doc」を調べて、その文書がＡ３サイズのページを含むことを検知する。そして、チャットボットは、ユーザＡの次の投稿を解析することで、その投稿が印刷の指示を示すものであること、その対象が先ほど記憶した文書「文書1.doc」であること、及び出力先が当該グループチャットの参加者全員であること、カラー印刷が指定されたこと、を検知する。
【００９２】
これに応じ、チャットボットは、グループチャットの現在の参加者はユーザＡ、Ｂ、Ｃであることから、内容解析部１６２により「参加者全員」とはユーザＡ、Ｂ、Ｃであることを認識する。またチャットボットは、ユーザＡ、Ｂ、Ｃの登録プリンタａ、ｂ、ｃをユーザ情報テーブル（図４参照）から求め、それらプリンタａ、ｂ、ｃの性能情報を取得する。そしてチャットボットは、それらプリンタａ、ｂ、ｃが、指示者の指定した印刷設定（カラー印刷、Ａ３サイズ）を実行できるかどうか判定する。この例では、プリンタｂ及びｃが、カラー印刷とＡ３サイズに対応していないことが分かったとする。この場合チャットボットは、「ユーザＢ、Ｃのプリンタはカラー、Ａ３がプリント不可です。」というメッセージを、例えばそのグループチャット上に投稿する。
【００９３】
またチャットボットは、印刷設定におけるカラー印刷を白黒印刷に、Ａ３をＡ４に変更することでプリンタｂ、ｃでも印刷可能になることを見いだし、白黒、Ａ４への変更を指示者に対して提案するメッセージ、例えば「白黒、Ａ４に変更すれば全員印刷できます。設定を変更しますか？」とのメッセージを、グループチャット（あるいは指示者であるユーザＡとの一対一チャット）に対して投稿する。
【００９４】
指示者（この例ではユーザＡ）は、その提案の発言に対する回答をグループチャット又は一対一チャットでチャットボットに対して行う。図示例ではユーザＡは、提案された設定変更を受け入れることを意味する「変更ＯＫ」というメッセージをグループチャットに対して投稿している。
【００９５】
チャットボットは、ユーザＡによる「変更ＯＫ」とのメッセージを解析して、先の提案が受け入れられたと判断し、「白黒、Ａ４でユーザＡ、Ｂ、Ｃのプリンタから出力します。」とのメッセージをグループチャットに対して投稿する。そして、チャットボットは、その提案に対応する変更後の印刷設定でユーザＡ、Ｂ、Ｃのプリンタａ、ｂ、ｃに対して「文書1.doc」の印刷を指示し、各プリンタでの印刷が完了すると、印刷が完了したことを示す投稿をグループチャットに対して行う。
【００９６】
次に、図１０を参照して、印刷指示の出力先のユーザの登録プリンタの中に性能不足プリンタがある場合に、チャットボットが行う対処処理の別の例を説明する。
【００９７】
図８及び図９の例では、性能不足プリンタがある場合に、すべての出力先の登録プリンタに適用する印刷設定を、性能不足プリンタが実行可能な印刷設定に変更することを指示者に提案した。これに対して、図１０の例では、当初の印刷設定通りに印刷可能な出力先については印刷設定は変更せず、性能不足プリンタについてのみ、印刷設定の変更を提案する。また、この例では、印刷設定変更の提案は、指示者ではなく、性能不足プリンタを登録している参加者に対して行い、その参加者から提案に対する回答を受ける。
【００９８】
図１０の処理手順のうち、チャットボットがグループチャットにて参加者から印刷設定を伴う印刷指示を受け、出力先の各ユーザの登録プリンタの性能情報を取得する（Ｓ２０、Ｓ２２）までは、図８の手順と同じである。この後、チャットボットは、Ｓ２２で特定した出力先の登録プリンタごとに、Ｓ４０〜Ｓ４９の処理を実行する。
【００９９】
すなわち、チャットボットは、注目する登録プリンタの性能情報と指示者が指定した印刷設定とを比較し、そのプリンタで印刷設定通りの印刷が可能か判定する（Ｓ４０）。この判定の結果がＹｅｓの場合、チャットボットは、その登録プリンタに対してその印刷設定で対象文書の印刷を指示する（Ｓ４８）。
【０１００】
Ｓ４０の判定結果がＮｏの場合、チャットボットは、印刷設定のうちその登録プリンタの性能では実行できない各項目について、その項目の値を例えばその性能で実行可能な最高値に変更する設定変更を、その登録プリンタに対応する参加者に対してチャットで提案する（Ｓ４２）。この提案は、当該グループチャット上で行ってもよいし、その参加者との一対一チャットで行ってもよい。
【０１０１】
参加者は、チャットボットからのチャットでのその提案の投稿に対して、そのチャット上で回答を行う。チャットボットは、その回答の内容を解析し、設定変更の提案が受け入れられたかどうかを判定する（Ｓ４４）。提案が受け入れられた場合、チャットボットは、印刷設定をＳ４２で提案したものに変更し（Ｓ４６）、その変更後の印刷設定で対象文書を印刷するよう、その登録プリンタに指示する（Ｓ４８）。Ｓ４４で変更の提案が受け入れられなかったと判定した場合、チャットボットは、グループチャット又は一対一チャットで、当該登録プリンタに対応する参加者については印刷ができない旨を示す投稿を行う（Ｓ４９）。
【０１０２】
図１０の処理に対応するグループチャット上でのやりとりの例を図１１に示す。図１１もユーザ端末Ａ（１０Ａ）に表示されるチャットサービスの画面例であり、この画面が示すグループチャットには、ユーザＡ、Ｂ、Ｃと、チャットボットが参加しており、ユーザＡが指示者であるとする。
【０１０３】
図１１の例では、ユーザＡが「文書1.doc」という文書を投稿し、そのあとその「文書1.doc」を当該グループチャットの参加者全員に、カラー、両面、Ａ４、２ｕｐで印刷することを求める投稿を行う。
【０１０４】
チャットボットは、ユーザＡのこれらの投稿から、文書「文書1.doc」を「カラー、両面、Ａ４、２ｕｐ」の印刷設定で印刷する印刷指示を認識する。
【０１０５】
これに応じ、チャットボットは、グループチャットの現在の参加者はユーザＡ、Ｂ、Ｃであることから、内容解析部１６２により「参加者全員」とはユーザＡ、Ｂ、Ｃであることを認識する。またチャットボットは、ユーザＡ、Ｂ、Ｃの登録プリンタａ、ｂ、ｃをユーザ情報テーブルから求め、それらプリンタａ、ｂ、ｃの性能情報を取得する。そしてチャットボットは、それらプリンタａ、ｂ、ｃが、指示者の指定した印刷設定を実行できるかどうか判定する。この例では、プリンタａは、その印刷設定通りの印刷が可能な性能を持つが、プリンタｂはその印刷設定のうち２ｕｐのみが不可であり、プリンタｃは両面印刷のみが不可であるとする。
【０１０６】
この場合、チャットボットは、グループチャット上で、例えばメンションの形でユーザＡに対して「印刷します。」とのメッセージを投稿し、プリンタａに対してその印刷設定での印刷を指示する。
【０１０７】
またチャットボットは、プリンタｂについては印刷設定のうち２ｕｐの指定をなしにすれば印刷可能なので、グループチャット上でユーザＢに対して、「２ｕｐ印刷は不可です。２ｕｐなしに変更しますか？」という提案のメッセージを投稿する。またプリンタｃについては印刷設定のうち両面の指定を片面に変更すれば印刷可能なので、チャットボットは、グループチャット上でユーザＣに対して、「両面印刷は不可です。片面印刷に変更しますか？」という提案のメッセージを投稿する。
【０１０８】
図示例では、ユーザＢ（アイコン１０４で示す）及びユーザＣ（アイコン１０６で示す）は、共に「変更ＯＫ」の回答をグループチャットに投稿する。
【０１０９】
これら回答に応じて、チャットボットは、ユーザＢ及びＣに対して印刷を実行する旨を知らせる投稿を行い、それぞれ変更後の印刷設定で印刷を実行するようプリンタｂ及びｃに指示を行う。
【０１１０】
以上、図１０及び図１１を参照して説明した例では、チャットボットは、性能不足プリンタに関する提案に対する回答を、そのプリンタを登録プリンタとしているユーザから受け付けたが、この代わりに指示者から回答を受け付けるようにしてもよい。
【０１１１】
次に、図１２のチャット画面の例を参照して、印刷指示の出力先のユーザの登録プリンタの中に性能不足プリンタがある場合にチャットボットが行う対処処理の更に別の例を説明する。
【０１１２】
この例は、図１０及び図１１を用いて説明した例と似ている。異なる点は、チャットボットが「Ｂｏｔにおまかせ」機能を持つ点である。すなわち、図１２で説明する例では、ユーザが性能不足プリンタについての設定変更をユーザが検討せずに、チャットボットに委せることができる。
【０１１３】
この例では、ユーザＡが「文書1.doc」という文書を投稿し、そのあとその「文書1.doc」を当該グループチャットの参加者全員に、カラー、両面、Ａ３、２ｕｐで印刷することを求める投稿を行う。
【０１１４】
チャットボットは、ユーザＡのこれらの投稿から、文書「文書1.doc」を「カラー、両面、Ａ３、２ｕｐ」の印刷設定で印刷する印刷指示を認識する。
【０１１５】
これに応じ、チャットボットは、グループチャットの現在の参加者はユーザＡ、Ｂ、Ｃであることから、内容解析部１６２により「参加者全員」とはユーザＡ、Ｂ、Ｃであることを認識する。またチャットボットは、ユーザＡ、Ｂ、Ｃの登録プリンタａ、ｂ、ｃをユーザ情報テーブルから求め、それらプリンタａ、ｂ、ｃの性能情報を取得する。そしてチャットボットは、それらプリンタａ、ｂ、ｃが、指示者の指定した印刷設定を実行できるかどうか判定する。この例では、プリンタａは、その印刷設定通りの印刷が可能な性能を持つが、プリンタｂはその印刷設定のうちＡ３と２ｕｐが不可であり、プリンタｃはカラー、両面、Ａ３、２ｕｐが不可であるとする。
【０１１６】
この場合、チャットボットは、グループチャットに、「ユーザＡのプリンタから印刷します。」とのメッセージを投稿し、プリンタａに対してその印刷設定での印刷を指示する。
【０１１７】
またチャットボットは、プリンタｂについては、グループチャット（または一対一チャット）上でユーザＢに対して、「Ａ３、２ｕｐ印刷は不可です。設定を変更しますか？」という問合せのメッセージを投稿する。またプリンタｃについては「カラー、両面、Ａ３、２ｕｐ印刷は不可です。設定を変更しますか？」という問合せのメッセージを投稿する。
【０１１８】
図示例では、これら問合せに対して、ユーザＢ及びユーザＣは共に「Ｂｏｔにおまかせ」とのの回答をグループチャットに投稿する。
【０１１９】
これら回答に応じて、チャットボットは、プリンタｂについてはＡ３，２ｕｐの設定をそれぞれプリンタｂが対応可能なＡ４及びＮｕｐなしに変更し、プリンタｃについてはカラー、両面、Ａ３、２ｕｐの設定を、プリンタｃが対処可能な白黒、片面、Ａ４、Ｎｕｐなし、の設定に変更する。そしてチャットボットは、「ユーザＢのプリンタから印刷します。」及び「ユーザＣのプリンタから印刷します。」と投稿し、それぞれプリンタｂ及びｃに対してそれぞれ変更後の印刷設定で印刷を指示する。
【０１２０】
＜会議モード＞
例えばビジネス用のチャットサービスにおけるグループチャットの利用シーンには、部署内での業務上の連絡や、業務のための会議など、様々なものがある。ここで、グループチャットで会議を行っている場合、そのチャット上で印刷が行われるのは、会議参加者全員に向けた会議資料である場合が多いと考えられる。逆に、会議でない通常の業務連絡をグループチャットで行っているシーンでは、チャットの参加者全員宛に印刷出力したいかどうかは場合による。
【０１２１】
このように、グループチャットの各種利用シーンでは、印刷指示の出力先を当該チャットの参加者全員又はメンバ全員としたい場合もあれば、個別に指定したい場合もある。
【０１２２】
参加者又はメンバ全員を印刷出力先としたい場合が多いと考えられるケース（例えば会議）では、指示者がいちいち出力先を個別に又は「参加者全員」などと指定しなくてもすめば、指示者の手間が軽減される。
【０１２３】
そこで、本実施形態では、指示者が出力先を明示的に指定しない場合に、グループチャットの参加者又はメンバ全員を出力先とみなす特定モードをチャットボットに設ける。ここでは、その特定モードのことを「会議モード」と呼ぶ。
【０１２４】
また、グループチャットでの印刷指示の出力先が参加者全員とみなされた場合であっても、個別の事情で印刷出力を必要としない参加者がいる場合もある。そこでこの例では、会議モードでの印刷指示に対して、個々の参加者から印刷不要の指示を受け付ける。
【０１２５】
チャットボットの動作制御部１６３は、グループチャット上でいずれかの参加者が会議モードに入る旨の発言（「会議開始の宣言」）を行うと、これを検知して、自身のモードを会議モードへと遷移させる。会議開始の宣言は、グループチャットのメンバの全員ができるようにしてもよいし、それらメンバのうちあらかじめグループチャットのチャットルームに設定された１以上の特定の者のみができるようにしてもよい。
【０１２６】
会議モードの間は、前述のように、出力先の明示的に指定されない印刷指示があった場合、チャットボットは、その印刷指示の出力先を、当該グループチャットの現在の参加者全員とみなす。なお、別の例として、出力先の明示的な指定のない場合に、グループチャットのメンバ全員（現在参加していない者も含む）とみなしてもよい。参加者全員、メンバ全員のいずれとみなすかは、グループチャットのチャットルームの設定項目の１つに設定可能としてもよい。またその設定をグループチャット上で受け付けるようにしてもよい。
【０１２７】
また、この例では、会議モードの間は、チャットボットは、文書がグループチャットに投稿されると、自動的にその文書の印刷指示がなされたものとみなす。すなわち、この例では、投稿した文書について明示的に印刷指示の発言を行う必要はない。
【０１２８】
またチャットボットは、グループチャット上でいずれかの参加者が会議モードを終了する旨の発言（「会議終了の宣言」と呼ぶ）を行うと、これを検知して、会議モードを終了する。会議モードでない間のチャットボットのモードを、通常モードと呼ぶ。会議終了の宣言は、グループチャットのメンバの全員ができるようにしてもよいし、それらメンバのうちあらかじめグループチャットのチャットルームに設定された１以上の特定の者のみができるようにしてもよい。
【０１２９】
通常モードの間は、チャットボットは、印刷の出力先の明示的な指示がない場合は、指示者に対してそのグループチャットまたは指示者との一対一チャットで出力先を問い合わせてもよい。また別の例としてチャットボットは、印刷の出力先の明示的な指示がない場合は、指示者の登録プリンタを出力先とみなしてもよい。また、出力先の明示的な指定のない場合の出力先の求め方を、チャットボットに設定できるようにしてもよい。
【０１３０】
また通常モードの間は、チャットボットは、文書の投稿だけでは直ちに印刷指示とはみなさない。ただし、通常モードでも文書の投稿を印刷指示とみなすようチャットボットに設定できるようにしてもよい。
【０１３１】
図１３に、グループチャットに文書が投稿されたときのチャットボットの処理手順を例示する。この手順は、グループチャットにいずれかのユーザから文書が投稿された場合に開始される。
【０１３２】
チャットボットは、自分が参加しているチャットボットに文書が投稿されたことを検知すると、所定長さの猶予期間をカウントするタイマーを起動する。そのタイマーにより猶予期間の経過が判明するまでにその文書を投稿したユーザが印刷不要を示す投稿をグループチャットに対して行ったことを検知すると（Ｓ５２の判定結果がＹｅｓ）、チャットボットは、その文書の印刷のための処理は行わない。この場合チャットボットは一連の処理を終了し、次の文書が投稿されるのを待つ。
【０１３３】
Ｓ５２の判定結果がＮｏの場合、チャットボットは、現在のモードが会議モードか否かを判定する（Ｓ５４）。会議モードでない場合、チャットボットは、なにもせずに処理を終了する。この後、その文書を対象とする印刷指示を示す投稿がグループチャット上になされると、チャットボットはその文書を、その印刷指示の出力先に指定されたユーザの登録プリンタから出力する。
【０１３４】
Ｓ５４で現在のモードが会議モードであると判定されると、チャットボットは、グループ情報テーブル（グループ情報記憶部１６６）を参照して、当該グループチャットに現在参加している参加者を特定する（Ｓ５６）。そして、特定した各参加者の登録プリンタを、ユーザ情報テーブル（すなわちユーザ情報記憶部１６５）から求め、求めた参加者及び登録プリンタの各ペアを、メモリ上に一時的に用意した出力先リストに登録する（Ｓ５８）。
【０１３５】
次にチャットボットは、現在の各参加者の登録プリンタから文書を印刷する旨のメッセージをグループチャットに発言する（Ｓ５９）。そしてチャットボットは、所定の待機時間だけ、印刷を開始するのを待つ（Ｓ６０）。
【０１３６】
グループチャットの参加者は、その文書の印刷出力が不要である場合、その待機時間の間に、印刷不要の旨を表すメッセージをグループチャット上に投稿する。チャットボットは、グループチャット上に印刷不要の旨の投稿がなされたかどうかを監視し（Ｓ６２）、印刷不要の旨の投稿を検知すると、その投稿を行った参加者とそれに対応する登録プリンタのペアを出力先リストから削除する（Ｓ６４）。
【０１３７】
待機時間が経過すると、チャットボットは、その時点で出力先リストにある参加者と登録プリンタのペアごとに、そのペアに含まれる登録プリンタに印刷指示を送る（Ｓ６６）。
【０１３８】
次に、図１４を参照して、会議モードにおけるグループチャット上でのやりとりの例を説明する。図１４は、ユーザＡが操作するユーザ端末Ａ（１０Ａ）に表示されるチャットサービスの画面例である。この画面が示すグループチャットには、ユーザＡ、Ｂ、Ｃと、チャットボットが参加している。
【０１３９】
この例では、まずユーザＡ（１００）がグループチャットに「今日は会議です。」とのメッセージを投稿する。チャットボット（１０２）は、現在が通常モードであり、その「今日は会議です。」というメッセージが会議を開始することを意味することから、その発言が会議開始の宣言であると解釈する。そこで、チャットボットは、会議モードに遷移し、グループチャットに「承知しました。会議モードに入ります。」と、会議モードに遷移したことを示す投稿を行う。
【０１４０】
次にユーザＡが「文書1.doc」という文書を投稿する。すると、チャットボットは、現在のモードが会議モードなので、その文書の投稿がその文書の印刷指示であるとみなし、現在のグループチャットの参加者全員であるユーザＡ、Ｂ、Ｃがその出力先であるとみなす。チャットボットは、印刷不要指示を受け付ける所定の猶予時間だけ待つが、この例ではユーザＡから印刷不要の指示は投稿されない。
【０１４１】
そこで、チャットボットは、「ユーザのプリンタから出力します。」とグループチャットに投稿し、各出力先の参加者から印刷不要の指示を受け付けるために所定の待機時間だけ待つ。この例では、その待機時間の間に、ユーザＢ（１０４）から印刷不要の旨の投稿がなされる。これを検知したチャットボットは、ユーザＢおよびこれに対応する登録プリンタを出力先リストから削除し、その指示を受け付けたことを示すために、グループチャットに「ユーザＢの印刷はしません。」と投稿する。そして、待機時間の経過後、ユーザＡとＣの登録プリンタからそれぞれ「文書1.doc」を印刷出力する。
【０１４２】
このあとユーザＡは更に別の「文書2.doc」をグループチャットに対して投稿する。そして、猶予期間内に、ユーザＡが更に印刷不要の旨を示すメッセージ「この文書は印刷不要」を投稿する。チャットボットは、「文書2.doc」を投稿したユーザと同じユーザから猶予期間内に印刷不要を指示する投稿を受けたことから、すべての参加者について印刷不要と判定し、その印刷不要の指示を受け付けたことを示すために「承知しました。印刷しません。」とのメッセージをグループチャットに投稿する。これにより「文書2.doc」は印刷されない。
【０１４３】
次にユーザＡが「会議を終わります。」との投稿をグループチャットに対して行う。チャットボットは、この投稿が会議の終了の指示であることを認識し、会議モードを終えて通常モードに遷移する。そしてチャットボットは、会議モードが終了したことを示すために「承知しました。会議モードを終了します。」との投稿をグループチャットに対して行う。
【０１４４】
図１３及び図１４の例では、会議モード下で印刷指示が行われた場合、グループチャットの参加者のうち印刷が不要な参加者が不要の旨をチャットに投稿したが、これは一例に過ぎない。この代わりに、印刷指示の後、チャットボットが、印刷が必要なユーザはその旨を投稿するようチャットで求め、その求めに応じて印刷が必要である旨の投稿を行ったユーザの登録プリンタのみから印刷を行うようにしてもよい。
【０１４５】
＜プリンタ登録をしていない参加者の取扱＞
以上の説明では、グループチャットの参加者には、対応する登録プリンタがあるとした。しかし、参加者がチャットボットにプリンタを登録していない場合もあり得る。以下では、そのような場合に対処する処理を例示する。
【０１４６】
このような対処処理の例として、図１３の処理手順のうち、Ｓ５９の部分を図１５に示す部分的な手順に置き換えたものを説明する。
【０１４７】
この手順では、Ｓ５６でグループチャットの各参加者の登録プリンタを特定した後、チャットボットは、登録プリンタを特定できた各参加者について印刷を行う旨の投稿をグループチャットに対して行う（Ｓ７２）。次にチャットボットは、登録プリンタがない参加者がいたかどうかを判定し（Ｓ７４）、この判定の結果がＮｏの場合はＳ６０（図１３）に移行する。
【０１４８】
Ｓ７４の判定結果がＹｅｓの場合、チャットボットは、登録プリンタがない各参加者に対して、グループチャットで、又は当該参加者との一対一チャットで、登録プリンタが無いことに対してどのように対処するかを問い合わせる（Ｓ７６）。問合せを受けた参加者は、どのような対処をするかを示す投稿を行う。このような投稿には、例えば、現実世界で自分の近くにいる他の参加者の登録プリンタで出力することを希望する旨の投稿、又はチャットボットに自分のプリンタを登録することを指示する投稿などがある。後者の場合、参加者は、登録したいプリンタの識別情報の文字列をグループチャットに投稿したり、そのプリンタの識別情報を示すバーコード等のコード画像（これは例えば、そのプリンタにシールとして貼付されているか、又はそのプリンタの画面に表示される。）を、チャットに用いている端末で撮影して投稿したりする。また、その参加者は、印刷不要であれば、その旨をチャットボットに回答するか、或いは問合せに答えないまま放置する。
【０１４９】
チャットボットは、問い合わせ先の参加者からの反応が、プリンタを指定する旨の投稿であるか、印刷不要の旨を示す反応であるかを判定する（Ｓ７８）。ここでプリンタを指定する旨の投稿には、例えば他の参加者のプリンタからの出力を希望する旨の投稿や、自分のプリンタを登録する指示を示す投稿などがある。問い合わせ先の参加者からの反応がプリンタを指定する旨の投稿であれば、その参加者とそのプリンタとのペアを出力先リストに追加する（Ｓ８０）。ここで、問い合わせ先の参加者の投稿が、他の参加者のプリンタからの出力を希望する内容である場合、チャットボットは、当該「他の参加者」に対してその希望を受け入れるかどうかを問い合わせる内容の投稿を、グループチャットまたは当該「他の参加者」との一対一チャットで行ってもよい。この場合、当該「他の参加者」からその希望を受け入れる旨の投稿が行われると、チャットボットは、出力先リストに、希望する旨の投稿を行った参加者と出力先である「他の参加者」の登録プリンタのペアを出力先リストに登録する。Ｓ８０の後、チャットボットは、Ｓ８０で出力先リストに登録した参加者と登録プリンタのペアについて、その参加者の印刷をその登録プリンタで行う旨の投稿をグループチャット上に行う。なお、登録プリンタのない参加者の希望を「他の参加者」が拒否した場合、チャットボットは、他の対処方法を前者に対して問い合わせる。
【０１５０】
Ｓ７８で、問い合わせ先の参加者からの反応が、印刷不要を示すものであれば、チャットボットは、Ｓ６０の処理に進む。
【０１５１】
この例におけるグループチャット上でのやりとりの具体例を、図１６を参照して説明する。図１６も、ユーザＡが操作するユーザ端末Ａ（１０Ａ）に表示されるチャットサービスの画面例である。
【０１５２】
この例では、ユーザＡ（１００）がグループチャットに会議開始の宣言を行い、チャットボットがこれに応じて会議モードに遷移した旨を投稿し、ユーザＡが「文書1.doc」という文書を投稿するまでは、図１４の例と同じである。チャットボットは、現在のモードが会議モードなので、現在のグループチャットの参加者全員であるユーザＡ、Ｂ、Ｃにその文書を印刷出力するために、それら各ユーザの登録プリンタをユーザ情報記憶部１６５から求める。この例では、ユーザＡ及びＢにはプリンタが登録されていたが、ユーザＣにはプリンタが登録されていなかったとする。
【０１５３】
この場合チャットボット（１０２）は、グループチャットに対して、「ユーザＡ、Ｂのプリンタから出力します。」との投稿を行い、更に「ユーザＣにはプリンタが登録されていません。どうしますか？」とユーザＣの対処を求める内容の投稿を行う。
【０１５４】
これに応じて、ユーザＣ（１０６）が、「ユーザＡのプリンタから出力してください。」との投稿を行ったとする。すると、チャットボットは、ユーザＣの希望を受け入れるかどうかを確認するメッセージ「ユーザＡ、よいですか？」をグループチャットに対して投稿する。図示例では、ユーザＡはユーザＣの希望を受け入れる旨のメッセージ「ＯＫです。」を投稿する。これを受けてチャットボットは、ユーザＡの登録プリンタをユーザＣと対応付けて出力先リストに追加する。この場合、出力先リストには、ユーザＡの登録プリンタからの出力として、ユーザＡの分とユーザＣの分の２人分が含まれることになる。チャットボットは、「ユーザＣの分はユーザＡのプリンタから出力します。」とのメッセージをグループチャットに対して投稿誌、出力先リストに含まれるユーザＡ、Ｂ、Ｃのそれぞれのジョブを、対応するプリンタに指示する。この場合、ユーザＡの登録プリンタには２回、ユーザＢのプリンタには１回の印刷指示が行われる。
【０１５５】
＜登録プリンタ以外からの出力＞
図１５及び図１６を参照して説明した例は、プリンタ未登録のユーザについての処理であった。
【０１５６】
一方、登録プリンタがあるユーザも、例えば出先からグループチャットに参加している場合のように、登録プリンタが現在の居場所からは不便である場合がある。そこで、この例では、ユーザから登録プリンタ以外のプリンタからの印刷の希望を一時的に受け付ける仕組みについて説明する。
【０１５７】
この例の手順の要部を図１７に示す。図１７に示す部分手順は、図１３の処理手順のＳ６０〜Ｓ６２の部分を置き換えるものである。
【０１５８】
この手順では、チャットボットは、Ｓ５９でグループチャットの各参加者の登録プリンタから出力する旨の投稿を行った後、所定の待機時間の間、それら参加者からの印刷不要の指示を受け付ける（Ｓ６２およびＳ６４）は、図１３の手順と同様である。
【０１５９】
また、チャットボットは、その待機期間の間に、参加者から、自分の登録プリンタの代わりに他の参加者の登録プリンタから出力する旨の依頼の投稿を受け付ける（Ｓ９０）。そのような依頼がいずれかの参加者からあれば、チャットボットは、依頼先である「他の参加者」に対して、その依頼を受け付けるか否かを問い合わせる（Ｓ９２）。そして、「他の参加者」から「受け入れ可」を示す回答がなされたか否かを判定し（Ｓ９４）、「受け入れ可」の回答がなされた場合は、出力先リストに、依頼先の登録プリンタに対応付けて依頼元のユーザを登録する（Ｓ９６）。Ｓ９０〜Ｓ９４と、Ｓ６２〜Ｓ６４との順序関係は、図１７に例示したものに限らない。
【０１６０】
この例におけるグループチャット上でのやりとりの具体例を、図１８を参照して説明する。図１８も、ユーザＡが操作するユーザ端末Ａ（１０Ａ）に表示されるチャットサービスの画面例である。
【０１６１】
この例では、ユーザＡ（１００）がグループチャットに会議開始の宣言を行い、チャットボットがこれに応じて会議モードに遷移した旨を投稿し、ユーザＡが「文書1.doc」という文書を投稿し、これに応じてチャットボットが、参加者であるユーザＡ、Ｂ、Ｃのプリンタから出力する旨を投稿するまでは、図１４の例と同じである。
【０１６２】
この後の待機時間の間に、ユーザＣ（１０６）が「今日はユーザＡのプリンタから出力してください。」と、別参加者の登録プリンタからの出力を依頼する内容の投稿を行う。
【０１６３】
すると、チャットボットは、ユーザＣの依頼を受け入れるかどうかを確認するメッセージ「ユーザＡ、よいですか？」をグループチャットに対して投稿。これに対して図示例では、ユーザＡはユーザＣの希望を受け入れる旨のメッセージ「ＯＫです。」を投稿する。これを受けてチャットボットは、ユーザＡの登録プリンタをユーザＣと対応付けて出力先リストに追加する。この場合、出力先リストには、ユーザＡの登録プリンタからの出力として、ユーザＡの分とユーザＣの分の２人分が含まれることになる。チャットボットは、「ユーザＣの分はユーザＡのプリンタから出力します。」との投稿をグループチャットに対して行い、出力先リストに含まれるユーザＡ、Ｂ、Ｃのそれぞれのジョブを、対応するプリンタに指示する。この場合、ユーザＡの登録プリンタには２回、ユーザＢのプリンタには１回の印刷指示が行われる。
【０１６４】
＜プリント以外の例＞
以上では、チャット上のユーザの発言に応じてそのユーザが登録した登録プリンタを制御するチャットボットを例にとって説明した。しかし、上記実施形態の制御は、プリンタ以外の出力機器を制御するチャットボットにも適用可能である。上記実施形態の制御が適用可能な出力機器の例としては、例えば、三次元物体を造形する３Ｄプリンタ、音声を出力するスピーカ（例えばいわゆるＡＩスピーカ）、動画等を表示する大画面のディスプレイを制御するコントローラ、等がある。例えば、ユーザが登録したスピーカを制御するチャットボットの場合、グループチャットに音声ファイルが投稿された場合、その音声ファイルを（必要に応じてスピーカが対応可能なデータ形式に変換した上で）出力先に指定された各ユーザのスピーカに送って出力させる。
【０１６５】
以上に例示したボットサーバは、例えば、コンピュータに上述の各機能を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、フラッシュメモリやＳＳＤ（ソリッドステートドライブ）、ＨＤＤ（ハードディスクドライブ）等の固定記憶装置を制御するコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバス等を介して接続された回路構成を有する。それら各機能の処理内容が記述されたプログラムがネットワーク等の経由でフラッシュメモリ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【符号の説明】
【０１６６】
１０Ａ，１０Ｂ，１０Ｃ  ユーザ端末、１２  クラウド、１４  チャットサービスサーバ、１６Ａ，１６Ｂ  ボットサーバ、１６ｂ  ＣＰＵ、１６ｃ  ＲＯＭ、１６ｄ  ＲＡＭ、１６ｅ  通信Ｉ／Ｆ、１６ｆ  入出力Ｉ／Ｆ、１６ｇ  記憶装置、１８ａ，１８ｂ，１８ｃ  プリンタ、１６０  通信部、１６１  メッセージ受付部、１６２  内容解析部、１６３  動作制御部、１６４  応答メッセージ作成部、１６５  ユーザ情報記憶部、１６６  グループ情報記憶部、１６７  メッセージ記憶部、１６８  ＡＰＩゲートウェイ。
【図１】
2020052481.tif 000003
【図２】
2020052481.tif 000004
【図３】
2020052481.tif 000005
【図４】
2020052481.tif 000006
【図５】
2020052481.tif 000007
【図６】
2020052481.tif 000008
【図７】
2020052481.tif 000009
【図８】
2020052481.tif 000010
【図９】
2020052481.tif 000011
【図１０】
2020052481.tif 000012
【図１１】
2020052481.tif 000013
【図１２】
2020052481.tif 000014
【図１３】
2020052481.tif 000015
【図１４】
2020052481.tif 000016
【図１５】
2020052481.tif 000017
【図１６】
2020052481.tif 000018
【図１７】
2020052481.tif 000019
【図１８】
2020052481.tif 000020