(57)【要約】【課題】出力機器の識別情報の登録がある前にチャットルームに投稿された出力対象がエラーとなることなく、出力機器が登録されたらその出力機器から出力されるよう制御可能な情報処理装置を提供する。【解決手段】チャットルームに参加しているチャットボットは、ユーザから印刷可能なファイルが投稿された場合（Ｓ１４）、そのファイルを印刷対象として記憶する（Ｓ１６）。またユーザからチャットルームに印刷指示の投稿がなされた場合（Ｓ１８）、そのユーザにプリンタが登録されているか否かを判定し（Ｓ２０）、登録されていない場合は、プリンタの登録を求めるメッセージをチャットルームに投稿する（Ｓ２４）。この投稿に応じてユーザがプリンタＩＤをチャットルームに投稿すると、チャットボットはそのプリンタＩＤをそのユーザに対応付けて登録し（Ｓ２８）、そのプリンタで印刷を実行する（Ｓ２２）。【選択図】図６
2020071598.tif 000002
【特許請求の範囲】
【請求項１】
チャットルームに対するユーザからの出力指示及び出力対象の投稿を検知する手段と、前記出力対象の投稿が検知されたときに、前記ユーザ又は前記チャットルームに出力機器の識別情報が登録されていない場合は前記出力対象を前記ユーザ又は前記チャットルームに対応する出力対象として登録する登録手段と、
前記出力指示の投稿が検知されたときに、前記ユーザ又は前記チャットルームに出力機器の識別情報が登録されていない場合は出力機器の登録を前記ユーザに要求する投稿を前記チャットルームに入力する制御を行う制御手段と、
を含む情報処理装置。
【請求項２】
前記出力機器の登録を前記ユーザに要求する投稿の後、前記ユーザから出力機器の識別情報を含む投稿が前記チャットルームに入力された場合、その識別情報を前記ユーザ又は前記チャットルームに対応する前記出力機器の識別情報として登録する登録手段と、
前記ユーザからの前記出力指示に応じて、前記出力機器に対して前記出力対象の出力を指示する出力指示手段と、
を更に含む、請求項１に記載の情報処理装置。
【請求項３】
前記登録手段は、
前記ユーザからの投稿に含まれる前記識別情報に対応する出力機器がネットワーク経由で前記情報処理装置から利用可能か否かを確認する手段と、
前記確認により前記出力機器が利用可能でないと分かった場合に、前記ユーザに対して前記出力機器の状態の確認を求める旨の投稿を前記チャットルームに入力する手段と、
を含む、請求項２に記載の情報処理装置。
【請求項４】
前記登録手段は、前記ユーザからの投稿に含まれる前記識別情報が別のユーザに対応する出力機器の識別情報として登録されている場合に、前記別のユーザに対する前記識別情報の登録が解除されるのを待ってから、前記識別情報を前記ユーザに対応する前記出力機器の識別情報として登録する、ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
ユーザから前記チャットルームに入力された投稿にコード画像が含まれる場合、そのコード画像をデコードし、そのデコード結果が出力機器の識別情報を示す場合に、その識別情報を前記ユーザ又は前記チャットルームに対応する前記出力機器の識別情報として登録する第２の登録手段、を更に含む、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第２の登録手段は、
前記ユーザからの投稿に含まれる前記識別情報に対応する出力機器がネットワーク経由で前記情報処理装置から利用可能か否かを確認する手段と、
前記確認により前記出力機器が利用可能でないと分かった場合に、前記ユーザに対して前記出力機器の状態の確認を求める旨の投稿を前記チャットルームに入力する手段と、
を含む、請求項５に記載の情報処理装置。
【請求項７】
前記ユーザ又は前記チャットルームに対応付けて前記識別情報が登録された後、所定の解除条件が満たされると、前記ユーザから明示的な解除指示がなくても、前記ユーザ又は前記チャットルームに対応付けた前記識別情報の登録を解除する登録解除手段、を更に含む、請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記解除条件は、前記ユーザが前記チャットルームから退出したこと、前記情報処理装置が前記チャットルームから退出させられたこと、前記出力指示の投稿がない状態が所定時間以上続いたこと、のうちの少なくとも一つである、請求項７に記載の情報処理装置。
【請求項９】
前記出力機器の前記識別情報がグループチャットのための前記チャットルームに対応付けて登録された場合、前記ユーザが前記チャットルームから退出したことは前記解除条件とはせず、前記チャットルームに参加していた人が全員前記チャットルームから退出したことを前記解除条件とする、請求項７又は８に記載の情報処理装置。
【請求項１０】
前記登録解除手段により登録が解除された前記識別情報を記憶する記憶手段と、
前記ユーザが前記チャットルームに入室した後、前記記憶手段に記憶された前記識別情報に対応する前記出力機器を利用することの提案を示す投稿を前記チャットルームに入力し、前記ユーザから前記提案を受け入れる旨の投稿が前記チャットルームに投稿された場合、前記記憶手段に記憶された前記識別情報を、前記ユーザ又は前記チャットルームに対応する前記出力機器の識別情報として登録する手段と、
を更に含む請求項７〜９のいずれか１項に記載の情報処理装置。
【請求項１１】
コンピュータを、
チャットルームに対するユーザからの出力指示及び出力対象の投稿を検知する手段、
前記出力対象の投稿が検知されたときに、前記ユーザ又は前記チャットルームに出力機器の識別情報が登録されていない場合は前記出力対象を前記ユーザ又は前記チャットルームに対応する出力対象として登録する登録手段、
前記出力指示の投稿が検知されたときに、前記ユーザ又は前記チャットルームに出力機器の識別情報が登録されていない場合は出力機器の登録を前記ユーザに要求する投稿を前記チャットルームに入力する制御を行う制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
チャット上でのユーザの投稿に含まれるデータを受け取り、そのデータに対して特定の処理を行うソフトウエアロボット（以下、チャットボット）がある。
【０００３】
チャットボットの中には、チャットルーム上にユーザが投稿した印刷対象の文書や印刷指示を検知し、その所定の印刷装置に送って印刷させるものなど、チャットルーム上のユーザの投稿に従って外部の出力機器を操作するものがある。この種のチャットボットには予め出力機器が登録されており、チャットボットは、チャットルームに投稿されたユーザの指示に応じてその登録されている出力機器を操作する。
【０００４】
特許文献１には、時系列でメッセージを表示するサービスにおいて、ユーザからのメッセージにより外部機器を動作させ、動作結果を、指示ユーザを宛先としたメッセージで表示することが開示されている。
【０００５】
特許文献２には、インターネット上にプリントサーバおよびプリンタが配置されたネットワークプリントシステムにおいて、イントラネット上に文書管理サーバを配置し、インターネット上に中継サーバを配置することが開示されている。文書管理サーバは、利用者から特定の文書データについての印刷指示を受けると、該文書データを中継サーバに転送する。中継サーバは、転送された文書データを文書特定情報で特定可能に保存する。プリントサーバは、文書特定情報の通知を受け、該文書特定情報をもとに中継サーバから文書データを取得してプリンタに印刷させる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１６４５２２号公報
【特許文献２】特開２００７−００４２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
チャットボット等の情報処理装置に対して出力機器が登録されていない状態で、チャットルームに対してユーザから出力対象となるべきデータ（例えば印刷対象の画像）が投稿された場合、従来のその種の情報処理装置は、そのデータを出力対象と認識しなかったり、出力できなかったりというように、その投稿自体はエラーとなってしまう。その後情報処理装置に出力機器が登録された後で、再度その出力対象を投稿しないと、その出力対象をその出力機器から出力することができない。
【０００８】
本発明は、出力機器の識別情報の登録がある前にチャットルームに投稿された出力対象がエラーとなることなく、出力機器が登録されたらその出力機器から出力されるよう制御可能な情報処理装置を提供する。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、チャットルームに対するユーザからの出力指示及び出力対象の投稿を検知する手段と、前記出力対象の投稿が検知されたときに、前記ユーザ又は前記チャットルームに出力機器の識別情報が登録されていない場合は前記出力対象を前記ユーザ又は前記チャットルームに対応する出力対象として登録する登録手段と、前記出力指示の投稿が検知されたときに、前記ユーザ又は前記チャットルームに出力機器の識別情報が登録されていない場合は出力機器の登録を前記ユーザに要求する投稿を前記チャットルームに入力する制御を行う制御手段と、を含む情報処理装置である。
【００１０】
請求項２に係る発明は、前記出力機器の登録を前記ユーザに要求する投稿の後、前記ユーザから出力機器の識別情報を含む投稿が前記チャットルームに入力された場合、その識別情報を前記ユーザ又は前記チャットルームに対応する前記出力機器の識別情報として登録する登録手段と、前記ユーザからの前記出力指示に応じて、前記出力機器に対して前記出力対象の出力を指示する出力指示手段と、更に含む、請求項１に記載の情報処理装置である。
【００１１】
請求項３に係る発明は、前記登録手段は、前記ユーザからの投稿に含まれる前記識別情報に対応する出力機器がネットワーク経由で前記情報処理装置から利用可能か否かを確認する手段と、前記確認により前記出力機器が利用可能でないと分かった場合に、前記ユーザに対して前記出力機器の状態の確認を求める旨の投稿を前記チャットルームに入力する手段と、を含む、請求項２に記載の情報処理装置である。
【００１２】
請求項４に係る発明は、前記登録手段は、前記ユーザからの投稿に含まれる前記識別情報が別のユーザに対応する出力機器の識別情報として登録されている場合に、前記別のユーザに対する前記識別情報の登録が解除されるのを待ってから、前記識別情報を前記ユーザに対応する前記出力機器の識別情報として登録する、ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置である。
【００１３】
請求項５に係る発明は、ユーザから前記チャットルームに入力された投稿にコード画像が含まれる場合、そのコード画像をデコードし、そのデコード結果が出力機器の識別情報を示す場合に、その識別情報を前記ユーザ又は前記チャットルームに対応する前記出力機器の識別情報として登録する第２の登録手段、を更に含む、請求項１〜４のいずれか１項に記載の情報処理装置である。
【００１４】
請求項６に係る発明は、前記第２の登録手段は、前記ユーザからの投稿に含まれる前記識別情報に対応する出力機器がネットワーク経由で前記情報処理装置から利用可能か否かを確認する手段と、前記確認により前記出力機器が利用可能でないと分かった場合に、前記ユーザに対して前記出力機器の状態の確認を求める旨の投稿を前記チャットルームに入力する手段と、を含む、請求項５に記載の情報処理装置。
【００１５】
請求項７に係る発明は、前記ユーザ又は前記チャットルームに対応付けて前記識別情報が登録された後、所定の解除条件が満たされると、前記ユーザから明示的な解除指示がなくても、前記ユーザ又は前記チャットルームに対応付けた前記識別情報の登録を解除する登録解除手段、を更に含む、請求項１〜６のいずれか１項に記載の情報処理装置である。
【００１６】
請求項８に係る発明は、前記解除条件は、前記ユーザが前記チャットルームから退出したこと、前記情報処理装置が前記チャットルームから退出させられたこと、前記出力指示の投稿がない状態が所定時間以上続いたこと、のうちの少なくとも一つである、請求項７に記載の情報処理装置である。
【００１７】
請求項９に係る発明は、前記出力機器の前記識別情報がグループチャットのための前記チャットルームに対応付けて登録された場合、前記ユーザが前記チャットルームから退出したことは前記解除条件とはせず、前記チャットルームに参加していた人が全員前記チャットルームから退出したことを前記解除条件とする、請求項７又は８に記載の情報処理装置である。
【００１８】
請求項１０に係る発明は、前記登録解除手段により登録が解除された前記識別情報を記憶する記憶手段と、前記ユーザが前記チャットルームに入室した後、前記記憶手段に記憶された前記識別情報に対応する前記出力機器を利用することの提案を示す投稿を前記チャットルームに入力し、前記ユーザから前記提案を受け入れる旨の投稿が前記チャットルームに投稿された場合、前記記憶手段に記憶された前記識別情報を、前記ユーザ又は前記チャットルームに対応する前記出力機器の識別情報として登録する手段と、を更に含む請求項７〜９のいずれか１項に記載の情報処理装置である。
【００１９】
請求項１１に係る発明は、コンピュータを、チャットルームに対するユーザからの出力指示及び出力対象の投稿を検知する手段、前記出力対象の投稿が検知されたときに、前記ユーザ又は前記チャットルームに出力機器の識別情報が登録されていない場合は前記出力対象を前記ユーザ又は前記チャットルームに対応する出力対象として登録する登録手段、前記出力指示の投稿が検知されたときに、前記ユーザ又は前記チャットルームに出力機器の識別情報が登録されていない場合は出力機器の登録を前記ユーザに要求する投稿を前記チャットルームに入力する制御を行う制御手段、として機能させるためのプログラムである。
【発明の効果】
【００２０】
請求項１、２又は１１に係る発明によれば、出力機器の識別情報の登録がある前にチャットルームに投稿された出力対象がエラーとなることなく、出力機器が登録されたらその出力機器から出力されるよう制御することができる。
【００２１】
請求項３又は６に係る発明によれば、チャットルームに対する投稿により入力された識別情報に対応する出力機器が利用可能でない場合に、ユーザにその利用可能で無い状態を解消するためのきっかけを与えることができる。
【００２２】
請求項４に係る発明によれば、同じ出力機器が複数のユーザに同時に登録された状態となることによる不具合を防止することができる。
【００２３】
請求項５に係る発明によれば、ユーザからコード画像を投稿する方法で出力機器の識別情報の入力を受け付けることができる。
【００２４】
請求項７、８に係る発明によれば、ユーザが、前に登録した識別情報が残っていることにより、別の出力機器から出力したい場合にその前に登録した識別情報に対応する出力機器から出力されてしまうことを防止することができる。
【００２５】
請求項９に係る発明によれば、グループチャットのチャットルームに入室しているユーザが使う可能性がある出力機器の登録が解除されてしまうことを防止することができる。
【００２６】
請求項１０に係る発明によれば、登録解除手段により登録が解除された識別情報に対応する出力機器を再度使用する際に再度同じ識別情報を入力する手間を省くことができる。
【図面の簡単な説明】
【００２７】
【図１】実施形態のシステム構成図である。
【図２】実施形態の機能ブロック図である。
【図３】実施形態の構成ブロック図である。
【図４】登録プリンタ情報テーブルの説明図である。
【図５】登録プリンタ情報テーブルの別の例の説明図である。
【図６】プリンタの登録及び印刷に関するチャットボットの処理手順を例示する図である。
【図７】プリンタの登録解除に関するチャットボットの処理手順を例示する図である。
【図８】プリンタの登録及び印刷に関するチャットボットの処理手順の更に詳細な例の一部を示す図である。
【図９】プリンタの登録及び印刷に関するチャットボットの処理手順の更に詳細な例の残りの部分を示す図である。
【図１０】チャットの画面表示の例を示す図である。
【図１１】チャットの画面表示の別の例を示す図である。
【図１２】登録を指示されたプリンタを確認する処理の手順を例示する図である。
【図１３】ユーザから登録を指示されたプリンタが他のユーザに登録されている場合のチャットボットの処理手順の例の一部を示す図である。
【図１４】ユーザから登録を指示されたプリンタが他のユーザに登録されている場合のチャットボットの処理手順の例の残りの部分を示す図である。
【図１５】プリンタの登録解除の手順の詳細な例を示す図である。
【図１６】登録の自動解除の適用、不適用をプリンタごとに規定した登録プリンタ情報テーブルの説明図である。
【図１７】前回使用したプリンタのＩＤを記録した登録プリンタ情報テーブルの説明図である。
【図１８】前回使用したプリンタを提案するステップを含んだ処理の手順を例示する図である。
【発明を実施するための形態】
【００２８】
以下、図面に基づき本発明の実施形態について、チャットボットとして、ユーザからのメッセージに応じて印刷サービスを提供するチャットボットを例にとり説明する。
【００２９】
＜システムの概要＞
図１は、実施形態におけるメッセージサービスシステムの全体構成図を示す。メッセージサービスシステムは、ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）、チャットサービスサーバ１４、ボットサーバＡ（１６Ａ）〜ボットサーバＢ（１６Ｂ）、及びプリンタａ（１８ａ）〜プリンタｃ（１８ｃ）を備える。
【００３０】
ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）は、メッセージサービスのユーザが利用する端末であり、スマートフォンやタブレット端末、ＰＣ（パーソナルコンピュータ）等の情報端末である。図では、ユーザ端末Ａ（１０Ａ）、ユーザ端末Ｂ（１０Ｂ）、ユーザ端末Ｃ（１０Ｃ）の３台を示しているが、その数は任意である。ユーザは、ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）を操作してクラウド１２上のチャットサービスサーバ１４にアクセスし、他のユーザやチャットボットとメッセージ等をやり取りする。以下では、ユーザＡがユーザ端末Ａを操作し、ユーザＢがユーザ端末Ｂを操作し、ユーザＣがユーザ端末Ｃを操作するものとする。ユーザ端末Ａ（１０Ａ）〜ユーザ端末Ｃ（１０Ｃ）とチャットサービスサーバ１４は、有線あるいは無線の通信ネットワークでデータ送受信可能に接続される。通信ネットワークの一例はインターネット等の公衆回線であるが、専用回線でもよい。
【００３１】
チャットサービスサーバ１４は、クラウド１２上に配置されたクラウドサーバであり、チャットサービスを提供するサーバである。チャットサービスサーバ１４は、１又は複数のサーバコンピュータで構成される。チャットサービスサーバ１４は、ユーザ端末Ａ〜ユーザ端末Ｃに対するメッセージ等の送受信処理、及びメッセージ送受信の表示画面表示等、メッセージのやり取りに関する処理全般を実行する。チャットサービスサーバ１４は、２人のメンバ間のメッセージ等のやり取りを処理する他に、３人以上のメンバでグループを形成し、グループ内でのメッセージ等のやり取りを処理することができる。以下では、２人のメンバ間でメッセージ等のやり取りを行なうこと、及びそのやり取りを行なう場のことを、一対一チャット又はピア・ツー・ピアチャットと呼ぶ。また、３人以上のメンバで形成したグループ内でメッセージ等のやり取りを行なうこと、及びそのやり取りを行なう場のことを、グループチャットと呼ぶ。チャットサービスサーバ１４は、グループチャットごとに、そのグループチャットに所属するメンバの識別子（例、ユーザＩＤ）のリストを保持する。また、チャットサービスにおいてメンバ間でメッセージ等のやりとりが行われる仮想的な場に特に言及する場合には、その場のことをチャットルームと呼ぶ。
【００３２】
さらに、チャットサービスサーバ１４は、ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）と協働し、ボットサーバ１６Ａ，１６Ｂにより提供されるチャットボットに対するメッセージ等のやり取りを処理する。本実施形態においてチャットボットは、チャット上でメッセージ等のやり取りを行なう「メンバ」の１人として取り扱う。すなわち、メンバには、実在する人物との関連付けがなされたユーザと、チャットボットとの両方が含まれる。ユーザとチャットボットとのメッセージ等のやり取りには、１人のユーザとチャットボットとのメッセージ等のやり取り、及び複数のユーザとチャットボットとのメッセージ等のやり取りが含まれる。すなわち、チャットボットは、ユーザとの一対一チャットに参加する場合もあれば、グループチャットに参加する場合もある。チャットボットは、例えば、チャットに参加しているユーザからの招待に応じて、そのチャットに参加する。
【００３３】
チャットにおいてメンバ間でやりとりされるメッセージ等の概念の中には、テキストで表現されたメッセージの他に、いわゆる「スタンプ」のように投稿内容を表す画像や、ＵＲＬ（Uniform Resource Locator）、音声や動画等によるメッセージ、等が含まれる。このようなメッセージ等のことを、チャットに対する「投稿」とも呼ぶ。これはチャットに投稿された情報を示す意味での「投稿」である。また、チャットのメンバが、そのようなメッセージ等をそのチャットに入力する行為のことも「投稿」と呼ぶ。これは行為としての「投稿」である。チャットへの「投稿」行為には、そのチャットに対してテキストのメッセージを書き込む行為、スタンプを送信する行為、ＵＲＬを貼付する行為、ファイル等のデータをチャットに入力する行為（例えば投稿するデータを選択し、投稿ボタンを押下する行為）、などが含まれる。
【００３４】
ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、ユーザとの間で投稿をやり取りするチャットボットのソフトウエアロボットプログラムがインストールされ、当該プログラムを実行する。これらのボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、企業や店舗などの、広告用または商業用に割り当てられたメッセンジャーサービスアカウントがそれぞれ運用するものであってもよい。
【００３５】
ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、チャットサービスサーバ１４と特定ＡＰＩ（ＡＰＩとはApplication Programming Interface：アプリケーションプログラミングインタフェースのこと）を介して協働し、ユーザとメッセージ等の投稿をやり取りし、ユーザからのメッセージに自動応答してメッセージを返信する。特定ＡＰＩは、チャットサービスサーバ１４を利用するためのＡＰＩである。ＡＰＩの形式は任意であるが、例えばＪＳＯＮ（Javascript（登録商標） Object Notation：ジャバスクリプト  オブジェクト  ノーテイションの略）形式のＡＰＩとし、規定のフォーマットのＪＳＯＮデータをチャットサービスサーバ１４の特定ＵＲＬに対してＰＯＳＴやＧＥＴで送信し、結果がＪＳＯＮ形式のデータとして返ってくる。
【００３６】
ボットサーバＡ（１６Ａ）、ボットサーバＢ（１６Ｂ）は、ユーザからのメッセージに動作指示が含まれている場合に、当該動作指示に応じて特定のサービス内容を実行する。本実施形態において、ボットサーバＡ（１６Ａ）は、ユーザからのメッセージに印刷指示が含まれている場合に、この印刷指示に応じてプリンタａ（１８ａ）、プリンタｂ（１８ｂ）又はプリンタｃ（１８ｃ）を動作させて印刷処理する「プリントボット」として機能する。他方、ボットサーバ１６Ｂは、ユーザからの動作指示に応じて任意のサービスを提供し得る。図１では、ボットサーバＡ（１６Ａ）、ボットサーバＢ（１８Ｂ）の２台を示しているが、その数は任意である。また、１台のボットサーバで複数のチャットボットを構成してもよく、複数台のボットサーバで１つのチャットボットを構成してもよい。
【００３７】
チャットボット（あるいはプリントボット）としてのボットサーバＡは、予めユーザ毎に登録された、ソフトウエアロボットプログラムの動作に関する設定情報に従ってプリンタａ、ｂ又はｃを駆動して印刷処理を実行する。本実施形態では、ユーザごと、又はチャットルームごとに、そのユーザが利用するプリンタ、又はそのチャットルームに参加するユーザが利用するプリンタを、動的にチャットボットに登録することが可能である。
【００３８】
プリンタａ（１８ａ）〜プリンタｃ（１８ｃ）は、ボットサーバＡからの指令により印刷処理を実行する。
【００３９】
図２は、ボットサーバＡ（１６Ａ）の機能ブロック図である。ボットサーバＡは、機能ブロックとして、通信部１６０、メッセージ受付部１６１、内容解析部１６２、動作制御部１６３、応答メッセージ作成部１６４、ユーザ情報記憶部１６５、登録プリンタ情報記憶部１６６、メッセージ記憶部１６７、ＡＰＩゲートウェイ１６８、及びプリンタＤＢ（データベース）１６９を備える。
【００４０】
通信部１６０は、チャットサービスサーバ１４及びプリンタａ〜ｃと通信する。通信部１６０は、ＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４と通信し、投稿を交換する。通信部１６０は、ＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４から受信した投稿、すなわちユーザ端末Ａ〜ユーザ端末Ｃからの投稿をメッセージ受付部１６１に出力する。また、通信部１６０は、応答メッセージ作成部１６４で作成されたメッセージ等の応答を、ＡＰＩゲートウェイ１６８を介してチャットサービスサーバ１４に送信（つまりユーザ端末Ａ〜ユーザ端末Ｃに送信）する。さらに、通信部１６０は、動作制御部１６３からの指令に従い、プリンタａ〜ｃに印刷指示を出力してプリンタａ〜ｃを駆動する。
【００４１】
メッセージ受付部１６１は、通信部１６０からの投稿を受け付け、内容解析部１６２に出力する。チャットにおけるユーザからの投稿の中には、印刷指示や、チャットボットからの問い合わせに対する回答が含まれる。メッセージ受付部１６１は、受け付けた投稿をメッセージ記憶部１６７に順次記憶する。
【００４２】
内容解析部１６２は、受け付けた投稿の内容を解析する。例えば内容解析部１６２は、
その投稿の内容にファイルが含まれる場合、そのファイルのファイル形式を判別する。投稿に含まれるファイルの形式には、例えば、ＰＮＧ形式やＪＰＥＧ形式等の画像ファイルの形式、ワードプロセッサやスプレッドシートのアプリケーションにより生成されるアプリケーション固有の文書ファイル形式、ＰＤＦ（Portable Document Format）形式等の閲覧用の文書ファイル形式等がある。また内容解析部１６２は、その投稿がテキストで表現されたメッセージを含む場合、そのテキストを解析して動作制御部１６３に出力する。具体的には、受け付けたメッセージに含まれるユーザ識別子（以下、ユーザＩＤという）を認識するとともに、メッセージに含まれるテキスト部分を抽出してその構文解析を実行する。構文解析の方法は任意であり、例えば、入力メッセージを形態素単位に分解した後、名詞や形容詞、動詞、疑問代名詞をキーワードとして抽出する。内容解析部１６２は、メッセージのテキスト部分に動作指示が含まれている場合に、その動作指示の内容を解析して動作制御部１６３に出力する。本実施形態における動作指示には、印刷指示、プリンタの登録指示、チャットボットの問合せに対する回答としての指示、が含まれる。また、受け付けた投稿がスタンプである場合は、内容解析部１６２はそのスタンプに対応付けられた意味情報を取得する。スタンプにはあらかじめ当該スタンプが示す意味が定められており、チャットの処理を行うコンピュータは、各スタンプの意味を、そのスタンプ自体から、又はチャットサービスサーバから取得できる。
【００４３】
また内容解析部１６２は、投稿に画像ファイルが含まれる場合、その画像ファイルが表す画像を解析し、その画像がＱＲコード（登録商標）等の所定コード形式のコード画像であるかどうかを判定する。画像が所定コード形式のコード画像であるかどうかは、公知の方式で判定すればよい。本実施形態のチャットボットは、ユーザ又はチャットルームに登録するプリンタのプリンタＩＤを、コード画像の形式で受け付ける機能を持っており、その機能のために内容解析部１６２は、投稿にコード画像が含まれるかどうかを判定する。
【００４４】
動作制御部１６３は、内容解析部１６２で得られた解析結果に基づき、ユーザからの印刷指示を認識した場合、そのユーザに対して、又はその印刷指示が投稿されたチャットルームに対して、プリンタが登録されているか否かを判定する。そして登録されている場合には、その登録されているプリンタａ、ｂ又はｃに対して、通信部１６０を介して印刷指示を出力する。また、ユーザ又はチャットルームにプリンタが登録されていないと判定した場合には、動作制御部１６３は、後述する応答メッセージ作成部１６４と協働して、プリンタの登録を要請するメッセージ等をそのチャットルームに投稿する。そして、そのメッセージ等に応じてそのユーザからプリンタの識別情報（以下プリンタＩＤと呼ぶ）が投稿されると、そのプリンタＩＤをそのユーザ又はチャットルームで使用するプリンタの情報として登録する。
【００４５】
応答メッセージ作成部１６４は、内容解析部１６２における解析結果や動作制御部１６３からの指示に応じて応答内容を示す投稿情報を作成し、通信部１６０を介してその投稿情報をチャットサービスサーバ１４に送信する。この応答の投稿情報の一例は、前述したプリンタの登録を要請するメッセージである。
【００４６】
ユーザ情報記憶部１６５は、チャットサービスサーバ１４を利用するユーザの情報、特に、ボットサーバＡで実現されるチャットボットを利用するユーザの情報をテーブルとして記憶する。チャットボットは、チャットサービスサーバ１４で実現されるチャットサービス上で特定のアカウントが割り当てられており、このアカウントを指定してユーザが一定の操作（例えば「友達」登録を意味する操作）を行うことでチャットボットの利用が確定される。ユーザ情報記憶部１６５が記憶するユーザの情報には、例えばユーザＩＤ、ユーザが持つ各種の権限についての情報等がある。
【００４７】
登録プリンタ情報記憶部１６６は、ユーザ又はチャットルームに対して登録されたプリンタの情報を記憶する。例えば、登録プリンタ情報記憶部１６６は、ユーザごとに、そのユーザに対して登録されたプリンタのプリンタＩＤを記憶する。
【００４８】
メッセージ記憶部１６７は、メッセージ受付部１６１で受け付けたユーザからのメッセージを履歴として記憶する。
【００４９】
プリンタＤＢ１６９は、チャットボットから制御可能なプリンタの情報が登録されたデータベースである。プリンタＤＢ１６９に記憶される各プリンタの情報には、各プリンタのプリンタＩＤがある。また、プリンタＤＢ１６９には、プリンタの通信アドレス（例えばＩＰアドレス）、性能（例えば両面印刷の可否、カラー印刷の可否等）等の情報が記憶されていてもよい。プリンタＤＢ１６９に登録されているプリンタ群が、ユーザ又はチャットルームに登録できるプリンタの母集団である。
【００５０】
図３は、ボットサーバＡの構成ブロック図を示す。ボットサーバＡは、１又は複数のサーバコンピュータから構成され、１又は複数のＣＰＵ１６ｂ、ＲＯＭ１６ｃ、ＲＡＭ１６ｄ、通信インタフェース（Ｉ／Ｆ）１６ｅ、入出力Ｉ／Ｆ１６ｆ、及び記憶装置１６ｇを備える。
【００５１】
１又は複数のＣＰＵ１６ｂは、ＲＯＭ１６ｃあるいは記憶装置１６ｇに記憶されたボットアプリを読み出し、ＲＡＭ１６ｄをワーキングメモリとして用いることでチャットボットの機能を実現する。すなわち、ユーザからのメッセージに自動応答し、ユーザからのメッセージに動作指示が含まれている場合に当該動作指示に応じてプリンタａ〜ｃを駆動する。ＣＰＵ１６ｂは、ボットアプリを実行することで、図２におけるメッセージ受付部１６１、内容解析部１６２、動作制御部１６３、応答メッセージ作成部１６４、及びＡＰＩゲートウェイ１６８を実現する。
【００５２】
通信Ｉ／Ｆ１６ｅは、チャットサービスサーバ１４とのメッセージのやり取りを行うとともに、プリンタａ〜ｃに対して印刷指示を出力する。
【００５３】
入出力Ｉ／Ｆは、キーボードマウス等の入力装置、表示装置等の出力装置とデータを送受信する。
【００５４】
記憶装置１６ｇは、ＨＤＤ（Hard Disk Drive：ハードディスクドライブ）やＳＳＤ（Solid State Drive：ソリッドステートドライブ）等の不揮発性メモリで構成され、ボットアプリを記憶する他に、ユーザ情報テーブル、プリンタ情報テーブル、メッセージ管理テーブル及びプリンタテーブルを記憶する。記憶装置１６ｇは、図２におけるユーザ情報記憶部１６５、登録プリンタ情報記憶部１６６、メッセージ記憶部１６７及びプリンタＤＢ１６９を実現する。
【００５５】
なお、本実施形態では、チャットボットを実現するためのソフトウエアロボットプログラムをＣＰＵにより実行しているが、チャットボットの一部をプログラムの実行による処理ではなく、ハードウエア処理により実現してもよい。ハードウエア処理は、例えばＡＳＩＣやＦＰＧＡ（フィールドプログラマブルゲートアレイ）などの回路を用いて行ってもよい。
【００５６】
図４に、登録プリンタ情報記憶部１６６に記憶される登録プリンタ情報テーブルの例を示す。この例の登録プリンタ情報テーブルには、各ユーザのユーザＩＤに対応付けて、そのユーザの登録プリンタのプリンタＩＤが記憶されている。ユーザがチャット上でチャットボットに印刷指示を行った場合、チャットボットは、そのユーザの登録プリンタのプリントＩＤが登録プリンタ情報記憶部１６６に記憶されていれば、その登録プリンタにその印刷指示に係る印刷処理を実行させる。
【００５７】
図５に、登録プリンタ情報記憶部１６６に記憶される登録プリンタ情報テーブルの別の例を示す。図４に例示したテーブルが、ユーザに対応付けられた登録プリンタのプリンタＩＤを記憶したものであるのに対し、図５に例示したテーブルは、チャットルームに対応付けられた登録プリンタのプリンタＩＤを記憶している。すなわち、図５のテーブルには、チャットルームの識別情報（以下、ルームＩＤと呼ぶ）に対応付けて、そのチャットルームで使用するものとして登録された登録プリンタのプリンタＩＤが登録されている。ユーザがチャット上でチャットボットに印刷指示を行った場合、チャットボットは、そのチャットのチャットルームのプリンタＩＤに対応するプリンタが、登録プリンタ情報記憶部１６６に登録されていれば、そのプリンタにその印刷指示に係る印刷処理を実行させる。
【００５８】
プリンタをユーザ単位で登録するか、チャットルーム単位で登録するかは、ボットサーバ１６Ａ内で一律に決めておいてもよいし、チャットルームごとに個別に設定できるようにしてもよい。また、ユーザ単位でのプリンタ登録及びチャットルーム単位でのプリンタの登録の両方を受け付けるようにしてもよい。この場合、チャットルーム上で印刷指示を行ったユーザと、そのチャットルームと、の両方にプリンタが登録されている場合も起こり得る。そのような場合の対処方法の情報はボットサーバ１６Ａに設定しておけばよい。ここでいう対処方法の情報は、例えば、ユーザからの印刷指示に対して、そのユーザの登録プリンタと、その印刷指示が投稿されたチャットルームの登録プリンタのどちらに印刷させるかを決めるルールである。あるいは、対処方法の情報は、そのような場合にチャットルーム上でユーザにどちらのプリンタで印刷するか問い合わせることを示した情報であってもよい。
【００５９】
＜チャットボットの動作＞
次に本実施形態においてチャットボット（すなわちボットサーバ１６Ａ又は１６Ｂ）が行う制御の例を説明する。
【００６０】
図６は、チャットボットの概略的な処理手順の一例を示す。このチャットボットは、あるチャット（すなわちチャットルーム）に参加しているものとする。ここでは、プリンタの登録がユーザ単位でなされる場合を例にとって説明する。
【００６１】
チャットボットは、チャットにおけるユーザの投稿を監視している。そのチャットがグループチャットであり、複数のユーザがそのチャットに参加している場合は、チャットボットはそれら各ユーザの投稿を監視している。
【００６２】
チャットボットは、この監視の中で、ユーザからの投稿がプリンタＩＤを示すものか（Ｓ１０）、印刷対象のファイルであるか（Ｓ１４）、及びその投稿が印刷指示を意味するものか（Ｓ１８）を判定する。
【００６３】
プリンタＩＤが投稿された場合（Ｓ１０の判定結果がＹｅｓ）、チャットボットは、そのプリンタＩＤを、登録プリンタ情報テーブル（図４参照）のそのユーザのユーザＩＤに対応する登録プリンタの欄に登録する（Ｓ１２）。画像ファイルや文書ファイル等の印刷対象となり得るファイルが投稿された場合（Ｓ１４の判定結果がＹｅｓ）、チャットボットは、そのファイルを印刷対象として、そのユーザのユーザＩＤに対応付けて保存する（Ｓ１６）。
【００６４】
ユーザからの投稿が、プリンタＩＤでもファイルでも印刷指示でもない場合（すなわちＳ１８の判定結果がＮｏ）は、チャットボットは、Ｓ１０に戻り、ユーザからの次の投稿を待つ。すなわち、印刷に関係しない、ユーザ間の一般的なやりとりのための投稿には、反応しない。
【００６５】
また別の例として、このチャットルームが、ユーザとチャットボットとの一対一チャットのためのルームである場合において、Ｓ１８の判定結果がＮｏである場合には、チャットボットは、簡潔に指示し直すよう要請する内容の投稿をチャットルームに対して行ってもよい。ユーザとチャットボットの一対一のチャットルームでは、ユーザから投稿されるのは、プリンタＩＤの登録、印刷対象のファイル、印刷指示のいずれかであるはずなので、そのいずれともチャットボットが認識できなかった場合には、投稿された内容が複雑である等の問題がある可能性があるので、簡潔な内容で投稿し直すようユーザに要請するのである。逆に、このチャットルームが、複数人の人間のユーザとチャットボットとが参加しているグループチャットのルームである場合には、Ｓ１８の判定結果がＮｏである場合、対象となる投稿は他の人間のユーザに向けて発せられたものである可能性が高いので、チャットボットはその投稿は無視するようにしてもよい。
【００６６】
このように、チャットボットは、参加しているチャットルームが一対一チャットかグループチャットかで、Ｓ１８の判定結果がＮｏの場合の動作を切り替えてもよい。
【００６７】
ユーザからの投稿が印刷指示を示すものである場合（Ｓ１８の判定結果がＹｅｓ）、チャットボットは、登録プリンタ情報テーブルにそのユーザに対応するプリンタが登録されているか否かを調べる（Ｓ２０）。そして、Ｓ２０で登録されていると判定した場合は、Ｓ１６で記憶した印刷対象のファイルを、そのプリンタに送信して印刷させる（Ｓ２２）。なお、印刷指示を示す投稿を検知したときに、印刷対象のファイルが投稿されていない場合には、チャットボットは、印刷対象のファイルを投稿するよう要請する内容の投稿をチャットルームに行い、この投稿に応じてユーザから投稿されたファイルをプリンタに印刷させる。
【００６８】
Ｓ２０で、そのユーザに対応するプリンタが登録プリンタ情報テーブルに登録されていないと判定した場合、チャットボットは、そのチャットに対して、今回の印刷に使用するプリンタのプリンタＩＤを登録するよう要請する内容の投稿を行う（Ｓ２４）。
【００６９】
チャットに対するプリンタＩＤの投稿は、例えば、プリンタＩＤを示すＱＲコード（登録商標）等のコード画像を、そのチャットの画面を表示しているユーザの携帯端末（例えばスマートフォン）のカメラで撮影し、撮影した画像をそのチャットに入力することで行う。ここで、プリンタＩＤを示すコード画像は、例えば、ユーザが使用しようとしているプリンタのＵＩ（ユーザインタフェース）画面のメニューから呼び出すことによりその画面に表示される。あるいは、そのコード画像を印刷したシールをそのプリンタに貼付しておいてもよい。また、プリンタＩＤの投稿は、プリンタＩＤを示すテキストをチャットに入力する方法で行ってもよい。
【００７０】
Ｓ２４の後、チャットボットは、その投稿に対してそのユーザからプリンタＩＤが投稿されるのを待ち（Ｓ２６）、プリンタＩＤが投稿されると、そのプリンタＩＤをそのユーザのユーザＩＤに対応付けて登録プリンタ情報テーブルに登録する（Ｓ２８）。そして、チャットボットは、今登録したプリンタに、Ｓ１６で記憶した印刷対象のファイルを送付して印刷させる（Ｓ２２）。
【００７１】
このように、チャットボットは、チャット上でユーザから印刷指示を受けた場合に、そのユーザが用いるプリンタが登録されていなければ、ユーザにプリンタの登録（すなわち使用したいプリンタのＩＤの入力）をそのチャット上で要請する。この要請に応じてユーザがプリンタＩＤを入力すると、そのプリンタＩＤが示すプリンタに対して印刷指示の対象文書を印刷させる。
【００７２】
また本実施形態では、プリンタの登録を基本的には一時的なものとして取り扱う。すなわち、チャットボットは、プリンタの登録を、ユーザから明示の登録解除指示がなくても、所定の登録解除条件が満たされると、自動的に解除する。登録解除条件には、例えばユーザがその登録したプリンタを利用しないまま所定時間が経過したこと、等の条件がある。
【００７３】
このように、プリンタの登録を自動的に解除するのを基本モードとするのは、一つには、ユーザがチャットサービスの利用に用いる端末が携帯端末である場合が多いと考えられるからである。ユーザが携帯端末を携帯して移動するので、ユーザがその携帯端末からチャットに参加しているときの現実の居場所は一定ではない。このため、仮にプリンタを固定的に登録する方式をとると、ユーザがその固定的に登録したプリンタがある場所とは別の場所にいるときに印刷を行う場合に、ユーザの意図せぬ不具合が生じる。すなわち、ユーザが、使用するプリンタを変更する操作をせずに印刷指示を行うと、ユーザの現在の居場所とは異なる場所にあるその登録プリンタから印刷出力がなされてしまうこととなる。そこで、本実施形態では、ユーザが用いるプリンタの登録を一時的なものとし、その代わりに、必要となったときのチャットボットへのプリンタの登録操作を簡潔なもの（例えば前述したプリンタＩＤを示すコード画像の撮影）とすることで、ユーザの操作負担を軽減する。
【００７４】
図７に、チャットボットが実行する、プリンタの登録解除制御の概略的な手順を例示する。この手順は、ユーザに対応付けるプリンタが登録されたことをトリガとして開始される。チャットボットは、この手順の開始と共にタイマを起動する（Ｓ３０）。このタイマは、登録解除条件の１つである、登録プリンタを使用していない時間、の計時に用いられる。チャット上に、印刷対象の文書や印刷指示の投稿など、ユーザがプリンタを使用する意思があることを示す投稿が行われると、そのタイマの残り時間はリセット（初期化）又は延長される。そして、チャットボットは、例えば定期的に、タイマがタイムアウト（すなわち残り時間が０になること）をする等の登録解除条件が成立したかどうかを判定し（Ｓ３２）、登録解除条件が成立すると、登録プリンタ情報テーブルへのそのユーザのプリンタ登録を解除、すなわちそのテーブル内のそのユーザの登録プリンタ欄のプリンタＩＤを削除する（Ｓ３４）。
【００７５】
以上、プリンタがユーザ単位で登録される場合を例にとって説明したが、プリンタがチャットルーム単位で登録される場合も、同様の処理を行えばよい。
【００７６】
＜チャットボットの動作の詳細な例＞
次に、図８及び図９を参照して、チャットボットの動作手順のより詳細な例を説明する。この例では、プリンタをチャットボットに登録する操作として、ユーザが携帯端末のチャットアプリ画面から呼び出したカメラによりプリンタＩＤのコード画像を撮影する方法を用いる方法を想定する。
【００７７】
図８に示すように、まずチャットボットの動作制御部１６３は、自分が参加しているチャットルームに新たな投稿がなされるのを待つ（Ｓ１００）。
【００７８】
新たな投稿がなされた旨の通知をメッセージ受付部１６１から受け取ると、動作制御部１６３は、その投稿が画像ファイルや文書ファイル等のファイルを含むかどうかを内容解析部１６２に判定させる（Ｓ１０２）。この判定の結果がＹｅｓの場合、更にそのファイルの内容がコード画像であるかどうかを内容解析部１６２に判定させる（Ｓ１０４）。
【００７９】
Ｓ１０４の判定の結果がＮｏの場合、そのファイルは印刷対象になる可能性があるので、動作制御部１６３は、そのファイルを、その投稿を行ったユーザのユーザＩＤに対応付けて保存する（Ｓ１０６）。そして、動作制御部１６３は、応答メッセージ作成部１６４を用いて、印刷対象を受け付けたことを表す応答メッセージをそのチャットルームに投稿する（Ｓ１０８）。そしてＳ１００に戻って、新たな投稿がなされるのを待つ。
【００８０】
Ｓ１０４の判定結果がＹｅｓの場合、動作制御部１６３は、そのファイルが示すコード画像を内容解析部１６２にデコードさせ（Ｓ１１０）、デコード結果を受け取る。次に動作制御部１６３は、そのデコード結果がプリンタＩＤを含んでいるかどうかを判定する（Ｓ１１２）。Ｓ１１２の判定の結果がＮｏの場合、動作制御部１６３は、そのファイルを印刷対象として、そのユーザのユーザＩＤに対応付けて保存し（Ｓ１０６）、印刷対象を受け付けた旨をチャットルームに投稿し（Ｓ１０８）、Ｓ１００に戻る。
【００８１】
Ｓ１１２の判定結果がＹｅｓの場合、動作制御部１６３は、登録プリンタ情報テーブルに対し、そのユーザ（投稿者）のユーザＩＤに対応付けて、そのデコード結果のプリンタＩＤを登録する（Ｓ１１４）。次に、動作制御部１６３は、応答メッセージ作成部１６４に、プリンタ登録を受け付けた旨の応答メッセージをチャットルームに投稿させる（Ｓ１１６）。そして、動作制御部１６３は、そのユーザに対応する印刷対象のファイルが保存されているかどうかを調べ（Ｓ１１８）、保存されていればそのファイルを、今登録したプリンタＩＤに対応するプリンタに送って印刷させる（Ｓ１１９）。この後、Ｓ１００に戻り、新たな投稿が行われるのを待つ。Ｓ１１８で印刷対象が保存されていない場合、動作制御部１６３は、Ｓ１００に戻る。
【００８２】
Ｓ１０２の判定結果がＮｏの場合、すなわちＳ１００で検知された新たな投稿がファイルを含まない場合、その投稿の内容がメッセージのテキスト又はスタンプである場合、図９に示す手順に進む。
【００８３】
この手順では、動作制御部１６３は、内容解析部１６２にその投稿内容を解析させ、その投稿内容が印刷指示を示すものであるかどうかを判定する（Ｓ１２０）。例えば、その投稿内容のメッセージに自然言語解析を施すことで、その内容が印刷指示であるかどうかを判定する。Ｓ１２０の判定結果がＹｅｓの場合、動作制御部１６３は、登録プリンタ情報テーブルに、そのユーザのユーザＩＤに対応するプリンタＩＤが登録されているかどうかを調べる（Ｓ１２２）。そして、登録されていれば、動作制御部１６３は、そのプリンタＩＤに対応するプリンタに対して、印刷対象のファイルを印刷させ（Ｓ１２４）、図８のＳ１００に戻る。
【００８４】
一方、Ｓ１２２の判定結果がＮｏの場合、動作制御部１６３は、応答メッセージ作成部１６４に、プリンタの登録を要請するメッセージ等をチャットルームに投稿させる（Ｓ１２６）。このあと、処理は図８のＳ１００に戻る。
【００８５】
ユーザは、チャットルームに投稿されたこのメッセージ等を見て、チャットアプリからカメラを呼び出し、自分の手近にある、使いたいプリンタのＩＤを示すコード画像をカメラで撮影し、撮影した画像をチャットルームに投稿する。これに応じて動作制御部１６３は、図８の手順によりそのプリンタＩＤを認識し（Ｓ１１０、Ｓ１１２）、そのユーザに対応付けて登録した（Ｓ１１４）後、Ｓ１２０で認識した印刷指示に応じた印刷処理を、そのプリンタＩＤに対応するプリンタを用いて実行する（Ｓ１１９）。
【００８６】
なお、図９の手順では、チャットルームに印刷指示が投稿される前にその印刷対象のファイルが投稿済みであることを想定しているが、その想定が成り立たない場合には、動作制御部１６３は、Ｓ１２０で印刷指示を認識した後に、その指示を行ったユーザのＩＤに対応付けて印刷対象のファイルが保存されているかどうかを調べるようにしてもよい。そして、保存されていないことが分かった場合には、印刷対象のファイルを投稿するよう促す投稿をチャットルームに行うようにしてもよい。
【００８７】
なお、Ｓ１１２における、コード画像のデコード結果がプリンタＩＤを含むかどうかの判定は、例えば、そのデコード結果のテキストが特定条件を満たし、その特定条件により規定されるプリンタＩＤの項目を含んでいるかどうかを調べることで行う。一例として、プリンタＩＤの情報が、ＪＳＯＮ形式で以下に例示するように表現されるとする。
{“print_bot_version” : “1.0” , “type” : “type_id” , “printer_id” : “12345678” , “expiration_time” : “201812310000”}
この例では、デコード結果のテキストがＪＳＯＮ形式で、「“print_bot_version” : “1.0”」かつ「“type” : “type_id”」を含む場合に、動作制御部１６３は、そのテキストが正当なプリンタＩＤを示すものであると判定する。そして、そのテキストに含まれる項目“printer_id” の値 “12345678”をプリントＩＤと認識する。
【００８８】
＜印刷が行われる際のチャット画面の例＞
以上、本実施形態のチャットボットが行う処理を例示した。次に、図１０及び図１１を参照して、チャットルームにおいてユーザとチャットボットとが行うチャットの例を説明する。図１０及び図１１は、ユーザの端末（例えば携帯端末）にインストールされたチャットサービス用のクライアントアプリケーションが生成したチャット画面２００を示している。図１０及び図１１において、アイコン１００はユーザを、アイコン１０２はチャットボットを示す。以下、説明を簡潔にするために、アイコン１００が示すユーザをユーザ１００と呼び、アイコン１０２が示すチャットボットをチャットボット１０２と呼ぶ。
【００８９】
図１０の例では、まずユーザ１００が、写真の画像ファイルをチャットルームに投稿する（図示の投稿２０２）。チャットボット１０２は、例えば図８の手順に従い、その投稿が画像ファイルを含み、その画像ファイルはコード画像でないと判定する。そして、その判定に従い、その画像ファイルを印刷対象としてユーザ１００のユーザＩＤに対応付けて保存し、印刷対象（この場合は写真）を受け付けた旨を示す投稿「写真を受け付けました！」をチャットルームに入力する。
【００９０】
次にユーザ１００は、チャットルームに対して「印刷をお願い」というテキストの投稿２０４を入力する。チャットボットの内容解析部１６２は投稿２０４のテキストを解析してそれが印刷指示を示すものであると判定する。すると、動作制御部１６３は、そのユーザ１００に対応する登録プリンタのＩＤが登録プリンタ情報テーブルに登録されているかどうかを調べる。この例では、登録されていないとする。
【００９１】
この場合、チャットボット１０２の動作制御部１６３は、応答メッセージ作成部１６４により、プリンタの登録を要請する投稿２０６をチャットルームに入力する。例示した投稿２０６は、「プリンタのＱＲコードを撮影してください。」という、登録のための操作を説明するメッセージを含んでいる。ユーザ１００は、この要請に応じ、手近にあるプリンタに貼付されたシールに印刷された（又はそのプリンタのＵＩ画面に表示された）ＱＲコードを携帯端末のカメラで撮影し、撮影結果の画像を含んだ投稿２０８をチャットルームに入力する。
【００９２】
投稿２０８を認識したチャットボット１０２は、その投稿２０８内のＱＲコードをデコードしてプリンタＩＤを取得し、そのプリンタＩＤをユーザ１００に対応付けて登録プリンタ情報テーブルに登録する。そして、プリンタを登録した旨を示す投稿をチャットルームに入力すると共に、そのプリンタＩＤに対応するプリンタに対して、印刷対象として記憶している投稿２０２の画像ファイルを印刷させる。印刷を開始すると、チャットボット１０２は、印刷中であることを示す投稿をチャットルームに入力し、印刷が完了すると、その旨を示す投稿をチャットルームに投稿する。
【００９３】
図１１の例は、ユーザから印刷対象や印刷指示の投稿が行われる前に、プリンタの登録指示が行われる場合の例である。この例では、まずユーザ１００が、手近にあるプリンタのＱＲコードを自分の携帯端末のカメラで撮影し、撮影した画像をチャットルームに投稿する。投稿２１０は、このＱＲコードの画像を含んでいる。チャットボット１０２は、例えば図８の手順に従ってそのＱＲコードをデコードしてプリンタＩＤを取得し、そのプリンタＩＤをユーザ１００に対応付けて登録プリンタ情報テーブルに登録する。そして、プリンタを登録した旨を示す投稿をチャットルームに入力する。
【００９４】
その後ユーザ１００は、印刷したい画像ファイルを含んだ投稿２１２をチャットルームに入力する。チャットボット１０２は、その投稿２１２に含まれる画像ファイルを印刷対象として保存し、その画像ファイルを印刷対象として受け付けた旨を示す投稿を行う。
【００９５】
次にユーザ１００は、印刷指示を意味する投稿２１４をチャットルームに入力する。これを受けてチャットボット１０２は、印刷対象の画像ファイルを、先ほど登録したプリンタに印刷させる。
【００９６】
＜プリンタ登録時の詳細な処理の例＞
上述した図１０の手順では、チャットボットは、ユーザが投稿したコード画像からプリンタＩＤを認識したら、そのプリンタＩＤをユーザのプリンタとして登録し、そのプリンタに印刷を実行させた。しかし、認識したプリンタＩＤを持つプリンタが実在しなかったり、実在しても電源が切れていたりして、印刷が実行できない場合もあり得る。そこで、そのような場合に対処するチャットボットの処理手順を図１２に例示する。
【００９７】
図１２に例示する手順は、図８の手順のＳ１１２とＳ１１４の間に入るものである。この手順では、チャットボットは、Ｓ１１０及びＳ１１２で認識したプリンタＩＤがプリンタＤＢ１６８に登録されているかどうかを調べる（Ｓ１３０）。登録されていない場合、そのプリンタＩＤは間違いである（すなわち、対応するプリンタは実在しない）。この場合、チャットボットは、入力したプリンタＩＤに間違いが無いか確認する内容のメッセージをチャットルームに投稿し（Ｓ１３２）、図８のＳ１００に戻る。なお、コード画像から認識したプリンタＩＤが間違ったものである可能性はあまりないが、チャットルームに対してテキスト入力で入力したプリンタＩＤの場合は間違っている可能性が相応にある。
【００９８】
Ｓ１３０の判定結果がＹｅｓの場合、チャットボットは、ネットワーク越しに、そのプリンタＩＤに対応するプリンタが利用可能どうか確認する（Ｓ１３４）。この確認の処理では、チャットボットはそのプリンタＩＤに対応するプリンタに対してネットワーク経由で稼働中かどうかを問い合わせ、その問い合わせに対する応答の有無又は応答内容に基づいて、そのプリンタが利用可能か判定する。例えば、その問合せに対して応答があればそのプリンタは利用可能であり、応答がなければ利用可能でないと判定する。チャットボットは、Ｓ１３４の確認処理により、そのプリンタが利用可能であるか判定する（Ｓ１３６）。
【００９９】
そのプリンタが利用可能と判定した場合、チャットボットは図８の手順のＳ１１４に進み、そのプリンタＩＤを登録プリンタ情報テーブルに登録する。
【０１００】
一方、プリンタが利用可能でないと判定した場合、チャットボットは、例えば「ご指定のプリンタと接続できません。プリンタの電源、ネットワーク接続をご確認ください。」というように、そのプリンタの状態の確認を求めるメッセージをチャットルームに登録する（Ｓ１３８）。ユーザは、そのメッセージを見て、プリンタの電源等を確認し、プリンタをネットワーク経由で利用可能な状態にするよう試みる。チャットボットは、Ｓ１３８の後、例えば定期的にそのプリンタに対して問合せを行い、そのプリンタが利用可能になったかどうか確認する（Ｓ１４０）。プリンタが利用可能になった場合は、チャットボットは図８の手順のＳ１１４に進む。
【０１０１】
チャットボットは、Ｓ１３８の投稿のあと、プリンタが利用可能になるのを所定時間待つ（Ｓ１４２）。所定時間待ってもプリンタが利用可能になったことが確認できなければ（Ｓ１４２でタイムアウトと判定）、チャットボットは、指定されたプリンタが利用できないことを示すメッセージをチャットルームに投稿し（Ｓ１４４）、図８のＳ１００に戻る。
【０１０２】
次に、図１２の手順の変形例を、図１３及び図１４を参照して説明する。この変形例では、同じプリンタが同時に異なる複数人に登録されている状態が生じないよう制御する。
【０１０３】
一つのプリンタが異なる複数人に登録されている場合、それら各人の印刷指示が間をおかずにそのプリンタで実行されるといったこともある。そのような場合、ある人の印刷指示に対応する印刷結果を別の人が間違って手に取って見てしまったり間違って持ち去っていったりするという事態も起こり得る。特にそのプリンタがコンビニエンスストア等のように不特定の人がアクセスできる場所にある場合、そのような事態は大きな問題となり得る。そこで、この変形例では、そのような事態が生じないよう、一つのプリンタが複数人に同時に登録されている状態が生じないようにする。
【０１０４】
図１３の手順では、図８のＳ１１０及びＳ１１２で認識したプリンタＩＤがプリンタＤＢ１６８に登録されているとＳ１３０で判定した場合、チャットボットは、登録プリンタ情報テーブルを調べて、そのプリンタＩＤが他のユーザにも登録されているかどうか判定する（Ｓ１５０）。そのプリンタＩＤが他のユーザに登録されていなければ、チャットボットは、図１２の手順のＳ１３４に進む。
【０１０５】
Ｓ１５０でそのプリンタＩＤが他のユーザに登録されていることが分かった場合、チャットボットは、当該「他のユーザ」の印刷指示をそのプリンタで印刷中かどうかを判定する（Ｓ１５２）。以下、説明を簡潔にするために、今回そのプリントＩＤを登録しようとしているユーザをユーザＡと呼び、Ｓ１５０でいまそのプリンタＩＤが登録されていると判定された「他のユーザ」をユーザＢと呼ぶこととする。Ｓ１５２で印刷中でないと判定した場合、チャットボットは、ユーザＢに対するそのプリンタＩＤの登録を解除（すなわち登録プリンタ情報テーブルのユーザＢのデータからそのプリンタＩＤを削除）する（Ｓ１５４）。このとき、チャットボットは、ユーザＢが参加しているチャットルームに、プリンタの登録を解除した旨を示す投稿を行ってもよい。そして、チャットボットは、Ｓ１３４に進み、ユーザＡに対してそのプリンタＩＤを登録する。
【０１０６】
Ｓ１５２の判定結果がＹｅｓの場合、チャットボットは、チャットルーム上に、ユーザＡ宛で、登録しようとしているプリンタが他のユーザにより使用中であることを示すメッセージを投稿し（Ｓ１５６）、そのユーザＡを印刷待ちリストの末尾に追加する（Ｓ１５８）。そして、図１４の手順のＳ１６０に進む。印刷待ちリストは、ボットサーバ１６Ａ又は１６Ｂのメモリ等にプリンタＩＤごとに用意された待ち行列であり、そのプリンタＩＤが示すプリンタの登録を待っているユーザＩＤを先入れ先出し方式で保持する。
【０１０７】
図１４のＳ１６０では、チャットボットは、そのプリンタＩＤに対応するプリンタが実行中の印刷処理が終了するのを待つ。そして、印刷処理が終了すると、その印刷処理の実行を指示したユーザ（すなわちユーザＢ）に対するそのプリンタＩＤの登録を解除する（Ｓ１６２）。このとき、ユーザＢがそのプリンタＩＤの登録の指示を行ったチャットルームに対して、別のユーザのためにユーザＢのプリンタの登録を解除したことを示す投稿を行ってもよい。
【０１０８】
次にチャットボットは、そのプリンタＩＤに対応する印刷待ちリストが空か否かを調べる（Ｓ１６４）。Ｓ１６４の判定結果がＮｏの場合、すなわち印刷待ちリストにユーザＩＤが残っている場合、チャットボットは、その印刷待ちリストの先頭のユーザＩＤを取り出し、そのユーザＩＤに対してそのプリンタＩＤを登録する（すなわち登録プリンタ情報テーブルに対して、そのユーザＩＤに対応付けてそのプリンタＩＤを登録する）（Ｓ１６６）。そしてチャットボットは、その先頭のユーザＩＤのユーザが印刷指示を行ったチャットルームに対して、印刷を開始した旨を示す投稿を入力（Ｓ１６８）すると共に、その先頭ユーザに対応付けて保存していた印刷対象のファイル等をそのプリンタＩＤに対応するプリンタに送って印刷させる（Ｓ１６９）。この後、処理はＳ１６０に戻る。
【０１０９】
Ｓ１６４の判定結果がＹｅｓの場合、すなわち当該プリンタＩＤに対応する印刷待ちリストに未処理のユーザＩＤがない場合は、チャットボットは、図８のＳ１００に戻る。
【０１１０】
このように、図１３及び図１４の手順により、一つのプリンタが一時に割り当てられるユーザは一人に限定される。なお、図１３及び図１４に示した具体的な手順はあくまで一例に過ぎず、同様の処理を実現する別の手順を用いてもよい。
【０１１１】
＜プリンタの自動登録解除の詳細な例＞
次に、図１５を参照して、プリンタの登録解除制御の手順の詳細な例を説明する。
【０１１２】
この手順は、ユーザに対応付けるプリンタが登録されたことをトリガとして開始される。チャットボットは、この手順の開始と共にタイマを起動する（Ｓ１７０）。
【０１１３】
またチャットボットは、そのユーザがそのプリンタの登録の操作（例えばコード画像の投稿）を行ったチャットルームにそのユーザが参加しているかどうかを判定する（Ｓ１７２）。この判定は、チャットサービスサーバ１４に問い合わせることで行えばよい。ユーザがそのチャットルームに参加していない（すなわち、その登録操作の後、ユーザがチャットルームから退出した）場合、チャットボットは、そのユーザに対するそのプリンタの登録を解除し（Ｓ１８８）、この手順を終了する。そのユーザがチャットルームから退出した以上、そのプリンタは今後しばらくは用いられないからである。
【０１１４】
ユーザがそのチャットルームに参加している場合、チャットボットは、そのユーザがチャットルームに対して印刷対象（例えば画像等のファイル）又は印刷指示を新たに投稿したかどうかを判定する（Ｓ１７４）。この判定の結果がＹｅｓの場合、チャットボットは、タイマの残り時間を初期化、又は所定長さだけ延長する（Ｓ１７６）。ユーザが印刷対象となるファイル等又は印刷指示を投稿した場合、ユーザはそのプリンタを使用する意思を持っているということであり、その投稿の後も続けてそのプリンタに対する印刷関連の投稿を行う可能性があるので、タイマを延長するのである。
【０１１５】
その後チャットボットは、タイマがタイムアウトした（すなわち残り時間が０になった）かどうかを判定し（Ｓ１７８）、タイムアウトした場合には、そのユーザに対するそのプリンタの登録を解除し（Ｓ１８８）、この手順を終了する。タイマがタイムアウトした場合、ユーザがそのプリンタを少なくともしばらくは使うことがないと考えられるので、登録を解除するのである。
【０１１６】
Ｓ１７８の判定結果がＮｏの場合、チャットボットは、タイマの残り時間が所定の閾値以下であるかどうかを判定する（Ｓ１８０）。この判定の結果がＹｅｓであれば、チャットボットは、そのユーザにプリンタの登録を延長するか否かを問い合わせる投稿をチャットルームに対して行い（Ｓ１８２）、ユーザからの応答を待つ。そして、その問合せから所定時間以内に延長を要求する旨の投稿がそのユーザからあれば（Ｓ１８４の判定結果がＹｅｓ）、チャットボットは、タイマの残り時間を初期化、又は所定長さだけ延長し（Ｓ１８６）、Ｓ１７２に戻る。所定時間内に延長要求の投稿がない場合、又は延長不要の旨の投稿があった場合は、チャットボットは、Ｓ１８６をスキップし、Ｓ１７２に戻る。
【０１１７】
また図１５には示さなかったが、チャットボットは、ユーザからプリンタの登録解除を指示する投稿を受けた場合に、そのプリンタの登録を解除してもよい。
【０１１８】
以上に説明したように、この例では、ユーザがチャットルームから退出した場合、プリンタを利用する意思表示をしない状態が所定時間続いた場合、又は明示的な解除指示を行った場合、にそのユーザに対するそのプリンタの登録を解除する。
【０１１９】
またプリンタ登録を自動解除する場合の別の例として、チャットボットが、参加していたチャットルームに対するユーザからの指示に応じてそのチャットルームから退出した場合がある。この場合、チャットボットは、そのチャットルーム上でのユーザの指示応じて行ったプリンタの登録を解除する。
【０１２０】
また更に別の例として、プリンタが印刷を完了すると、そのプリンタのユーザ等への登録を解除するようにしてもよい。
【０１２１】
なお、以上に説明したプリンタ登録の自動解除は、必ずしもすべてのプリンタに適用しなくてもよい。プリンタごとに自動解除を適用するかしないかを定めておいてもよい。例えば、プリンタＤＢ１６８に対して、プリンタＩＤごとに、自動解除を適用するか否かを登録しておき、チャットボットは、ユーザがプリンタを登録した場合、その登録を自動解除するかどうかを、プリンタＤＢ１６８を参照して判定してもよい。また、プリンタに貼付したシールやプリンタの画面に表示されるコード画像が示す情報に、プリンタＩＤに加え、そのプリンタが自動解除の適用対象か否かを示す情報を含めておいてもよい。この場合、チャットボットは、図１６に例示するように、そのコード画像がユーザから投稿された際に、そのコード画像が示すプリンタＩＤをユーザに対応付けて登録プリンタ情報テーブルに登録すると共に、そのプリンタＩＤが自動登録解除の対象であるかどうかを示す情報をその登録プリンタ情報テーブルに登録する。なお、図１６の例では、テーブルの自動登録解除の欄の値が「ＯＮ」であればプリンタは自動解除の適用対象であり、「ＯＦＦ」であれば適用対象でない。
【０１２２】
自動解除を適用しないプリンタについては、そのプリンタがユーザ等に登録されると、チャットボットは明示的な解除指示を受けるまではその登録を解除しない。ただし、前述した図１３および図１４の制御をプリンタに適用する場合には、そのプリンタに自動登録解除を適用しない場合でも、あるユーザ等に対するプリンタの登録が、他のユーザ等がそのプリンタを利用するために解除される場合がある。
【０１２３】
また、チャットボットは、自動解除適用なしのプリンタＡがユーザに登録された状態で、そのユーザから自動解除適用有りのプリンタＢを登録する旨の指示を受けた場合、いったんそのユーザに対するプリンタＡの登録を解除し、代わりにプリンタＢを登録する。そしてプリンタＢの登録を自動解除すると、チャットボットは、元々登録されていたプリンタＡを再度そのユーザに登録してもよい。すなわち、自動解除適用なしのプリンタＡは、一種のデフォルトプリンタとして扱うのである。なお、自動解除適用なしのプリンタＡがユーザに登録された状態で、そのユーザから自動解除適用なしの別のプリンタＣを登録する旨の指示を受けた場合は、デフォルトプリンタがプリンタＡからプリンタＣに切り替わる。
【０１２４】
＜登録を自動解除したプリンタの再登録操作の簡素化＞
上述の例のようにチャットボットがユーザのプリンタ登録を自動解除した場合、ユーザが再度同じプリンタを使うときには再度同じ登録作業を行う必要がある。
【０１２５】
そこで、以下では、そのような場合のユーザの再登録の作業負担を軽減する例を説明する。
【０１２６】
この例では、チャットサーバは、ユーザが登録しその後登録を自動解除したプリンタのＩＤを保存しておき、ユーザが再度チャットルームで印刷指示を行った場合に、チャットルームでその保存していたプリンタを再度利用するか否かを問い合わせる。そして、その問合せに対して、チャットルームに対してユーザから再度利用する旨の投稿がなされた場合、その保存していたプリンタＩＤをそのユーザに対応付けて登録する。
【０１２７】
図１７に、この例における登録プリンタ情報テーブルの例を示す。例示するテーブルには、ユーザＩＤに対応付けて、登録プリンタのプリンタＩＤ（図中の「現在の登録プリンタ」の欄）と、前回利用された後登録が解除されたプリンタのプリンタＩＤ（「前回使用したプリンタ」の欄）とが登録されている。
【０１２８】
図１８に、この例におけるチャットボットの処理手順を例示する。この手順は、図９の手順のうちＳ１２０の判定結果がＮｏである場合の処理のバリエーションである。
【０１２９】
図１８において、Ｓ１２０の判定結果がＮｏである場合、すなわち印刷を指示したユーザに対してプリンタが登録されていない場合、チャットボットは、登録プリンタ情報テーブルに、そのユーザが「前回使用したプリンタ」があるかどうかを調べる（Ｓ１９０）。Ｓ１９０の判定結果がＮｏの場合は、チャットボットはＳ１２６に進み、プリンタ登録要請を、そのユーザが印刷指示を投稿しチャットルームに投稿する。
【０１３０】
Ｓ１９０の判定結果がＹｅｓの場合、チャットボットは、そのチャットルームに対して、「前回使用したプリンタ」を使用するかどうかの問合せを投稿する（Ｓ１９２）。この投稿には、「前回使用したプリンタ」がどのプリンタであるかがユーザに分かるようにするための情報、例えばそのプリンタのプリンタ名を含めておいてもよい。プリンタ名は、プリンタごとにあらかじめプリンタＤＢ１６８等に登録しておけばよい。チャットボットは、その問合せに対するそのユーザの応答の投稿を所定時間待ち、その時間内にユーザから応諾（すなわち、「前回使用したプリンタ」の使用を希望する旨）の投稿があれば（Ｓ１９４の判定結果がＹｅｓ）、そのユーザに対してその「前回使用したプリンタ」を登録する（Ｓ１９６）。すなわち、登録プリンタ情報テーブル（図１７参照）におけるそのユーザの「現在の登録プリンタ」の欄に、「前回使用したプリンタ」の欄にあるプリンタＩＤを登録する。そして、チャットボットは、Ｓ１２４に進み、そのプリンタＩＤに対応するプリンタにて、印刷指示に係る印刷対象のファイルを印刷する。Ｓ１９４の判定結果がＮｏの場合、すなわちその所定時間内にユーザから応答の投稿がなかった場合や、「前回使用したプリンタ」の使用を拒否する旨の投稿があった場合には、チャットボットはＳ１２６に進み、ユーザにプリンタ登録を要請する投稿をチャットルームに行う。なお、Ｓ１９２の投稿において、「前回使用したプリンタ」を使用するかどうかを問い合わせると共に、使用しない場合には使用したいプリンタのＩＤを投稿するよう求めてもよい。この場合、その問合せの投稿に対してユーザがプリンタＩＤのコード画像を投稿した場合、チャットボットはそのコード画像をデコードし、得られたプリンタＩＤをそのユーザに対応付けて登録する。
【０１３１】
図１８の例では、チャットボットは、ユーザからの印刷指示をトリガとして、そのユーザが「前回使用したプリンタ」を再度登録するかをユーザに問い合わせたが、この代わりに、ユーザがチャットルームに入場（すなわち参加）したときに、その問合せを行ってもよい。
【０１３２】
図１７及び図１８の例では、前回のプリンタＩＤを記憶し、次回にユーザに提案したが、これは一例に過ぎない。この代わりに、過去の所定期間内、又は過去所定数回などのように、過去の複数回の登録において登録されたプリンタＩＤ群を記憶し、それら記憶したプリンタＩＤ群の中から所定の基準に従って選択した１以上のプリンタＩＤをユーザに提案してもよい。例えば、チャットボットは、ユーザごとに、そのユーザが過去１ヶ月の間に登録したプリンタＩＤを、その登録の日時と対応付けて記憶し、ユーザがチャットルームに入室した場合又はチャットルームで印刷指示を行った場合に、記憶したプリンタＩＤ群の中で、前回登録したものと、最も登録回数が多いものの２つを候補としてユーザに提示する投稿をチャットルームに対して行う等である。
【０１３３】
以上では、プリンタ登録のためのチャットルームへのプリンタＩＤの投稿を、プリンタＩＤを表したコード画像を投稿することで行ったが、これは一例に過ぎない。別の例として、プリンタＩＤを表す文字列をユーザが手入力でチャットルームに投稿してもよい。また、コード画像及び文字列手入力の両方のモードでプリンタＩＤを登録できるようにしてもよい。ここで、プリンタＩＤを文字列形式でユーザに投稿させる方式の場合、チャットボットは、プリンタＩＤの投稿を、他のチャット参加者に読ませる通常のメッセージの投稿と区別する必要がある。このため、一つの例では、チャットボットは、チャットルームにメッセージが投稿されるごとに、そのメッセージに含まれる文字列がプリンタＤＢ１６８に登録されたプリンタＩＤを表すかチェックする。ただ、全ての投稿に対してこのようなチェックを行うとチャットボットの処理負担が大きい。そこで、別の例として、ユーザからチャットルームに印刷指示が投稿されたときに、そのユーザにプリンタが登録されていない場合、ユーザにプリンタＩＤの入力を求める投稿をチャットルームに投稿してチャットボットがプリンタＩＤ受付モードに移行し、その移行から例えば所定時間の間だけ、そのユーザからの投稿がプリンタＩＤを含むか確認するようにしてもよい。もちろん、一度プリンタＩＤが投稿されたと確認したら、プリンタＩＤ受付モードは終了する。プリンタＩＤ受付モードでない期間は、チャットボットは、ユーザから投稿されたメッセージがプリンタＩＤを含むか確認しない。
【０１３４】
また以上では、プリンタ登録をユーザ単位で行う場合を主たる例として説明を行ったが、プリンタ登録をチャットルーム単位で行う場合にも、同様の制御が適用可能である。プリンタ登録をチャットルーム単位で行う場合、登録プリンタ情報テーブル（すなわち登録プリンタ情報記憶部１６６）には、チャットルームのＩＤに対応付けて、そのチャットルームに対応付けるプリンタのＩＤが登録される。チャットルームに対するプリンタの登録は、そのチャットルームに参加しているユーザがそのチャットルームに対してプリンタＩＤを投稿することで行う。また、チャットルームがグループチャットのためのものである場合、登録されたプリンタはチャットルームに参加している複数のユーザで共用されることが想定される。そこで、グループチャットのチャットルームについては、プリンタの登録を指示したユーザがそのチャットルームから退出しただけではそのプリンタの登録を自動解除せず、そのチャットルームに参加（すなわち入室）しているユーザ（人間）が一人もいなくなって初めて自動解除するようにしてもよい。また、ユーザからプリンタＩＤが投稿された際に、チャットボットが、そのプリンタＩＤをユーザ個人に登録するか、チャットルームに登録するかをそのユーザに問い合わせてもよい。ユーザ個人への登録の場合は、上記実施形態と同様そのユーザがチャットルームから退出すればその登録は自動解除し、チャットルームへの登録の場合はチャットルームが無人になるまではその登録を自動解除しないようにしてもよい。
【０１３５】
また以上では、チャットボットからプリンタを制御する場合の例を説明した。しかし、上記実施形態の制御は、プリンタ以外の出力機器を制御するチャットボットにも適用可能である。上記実施形態の制御が適用可能な出力機器の例としては、例えば、三次元物体を造形する３Ｄプリンタ、音声を出力するスピーカ（例えばいわゆるＡＩスピーカ）、動画等を表示する大画面のディスプレイを制御するコントローラ、等がある。例えば、ユーザが登録したスピーカを制御するチャットボットの場合、グループチャットに音声ファイルが投稿された場合、その音声ファイルを（必要に応じてスピーカが対応可能なデータ形式に変換した上で）ユーザに登録されたスピーカに送って出力させる。
【符号の説明】
【０１３６】
１２  クラウド、１４  チャットサービスサーバ、１６Ａ，１６Ｂ  ボットサーバ、１６ｇ  記憶装置、１６０  通信部、１６１  メッセージ受付部、１６２  内容解析部、１６３  動作制御部、１６４  応答メッセージ作成部、１６５  ユーザ情報記憶部、１６６  登録プリンタ情報記憶部、１６７  メッセージ記憶部、１６８  ＡＰＩゲートウェイ。
【図１】
2020071598.tif 000003
【図２】
2020071598.tif 000004
【図３】
2020071598.tif 000005
【図４】
2020071598.tif 000006
【図５】
2020071598.tif 000007
【図６】
2020071598.tif 000008
【図７】
2020071598.tif 000009
【図８】
2020071598.tif 000010
【図９】
2020071598.tif 000011
【図１０】
2020071598.tif 000012
【図１１】
2020071598.tif 000013
【図１２】
2020071598.tif 000014
【図１３】
2020071598.tif 000015
【図１４】
2020071598.tif 000016
【図１５】
2020071598.tif 000017
【図１６】
2020071598.tif 000018
【図１７】
2020071598.tif 000019
【図１８】
2020071598.tif 000020