(57)【要約】【課題】ユーザの意図に反してチャットボットの動作が実行されることを抑制する。【解決手段】制御装置は、１人のユーザとチャットボットが参加する個別チャットでユーザから投稿された情報が第１の条件を満たした場合には、第１の条件と対応付けられた特定処理が実行されるように制御する一方、複数のユーザとチャットボットが参加するグループチャットで第１の条件のみを満たした場合には特定処理を実行せず、第１の条件と異なる第２の条件を満たした場合に特定処理を実行するように制御する。【選択図】図１
2020052508.tif 000002
【特許請求の範囲】
【請求項１】
１人のユーザとチャットボットが参加する個別チャットでユーザから投稿された情報が第１の条件を満たした場合には、前記第１の条件と対応付けられた特定処理が実行されるように制御する一方、複数のユーザとチャットボットが参加するグループチャットで前記第１の条件のみを満たした場合には前記特定処理を実行せず、前記第１の条件と異なる第２の条件を満たした場合に前記特定処理を実行するように制御する制御部
を備えた制御装置。
【請求項２】
前記特定処理は、ユーザによって投稿されたファイルを用いて実行される処理であり、
前記第１の条件は、ユーザによるファイルの投稿に設定され、
前記第２の条件は、ユーザによるファイルの投稿に加え、ファイルの投稿前又は投稿後の何れかに、前記特定処理の実行を指示する実行指示が投稿されることに設定された
請求項１記載の制御装置。
【請求項３】
前記制御部は、前記実行指示から第１の期間内に投稿されたファイル、又は、前記実行指示と、当該実行指示の前又は後ろに存在する他の実行指示との間で、かつ、前記実行指示から前記第１の期間内に投稿された当該ファイルを前記特定処理の対象に含めて前記特定処理を実行するよう制御する
請求項２記載の制御装置。
【請求項４】
前記制御部は、前記他の実行指示が投稿されるまでの期間で、かつ、前記特定処理の対象となるファイルの何れかから第２の期間に投稿されたファイルも前記特定処理の対象に含めるように制御する
請求項３記載の制御装置。
【請求項５】
前記第１の期間が前記第２の期間より短く設定された
請求項４記載の制御装置。
【請求項６】
前記制御部は、前記実行指示を投稿したユーザとファイルを投稿したユーザが同一人物である場合に、前記特定処理を実行するように制御する
請求項２〜請求項５の何れか１項に記載の制御装置。
【請求項７】
前記制御部は、前記個別チャットで前記第１の条件が満たされてから前記特定処理を実行するまでの第１の時間を、前記グループチャットで前記第２の条件が満たされてから前記特定処理を実行するまでの第２の時間よりも長く設定し、前記特定処理を実行するように制御する
請求項１〜請求項６の何れか１項に記載の制御装置。
【請求項８】
前記制御部は、前記グループチャットで前記第１の条件は満たすが前記第２の条件は満たされない投稿がユーザによって行われた場合、前記特定処理の実行の要否をユーザに問い合わせる投稿を行い、前記特定処理の実行に関する問い合わせに対してユーザから投稿された応答に応じて、前記特定処理を行うか否か制御する
請求項１〜請求項７の何れか１項に記載の制御装置。
【請求項９】
前記特定処理は、ユーザによって投稿されたファイルを用いた処理であり、
前記第１の条件は、ユーザによるファイルの投稿に設定され、
前記制御部は、ユーザによってファイルが投稿された場合、前記個別チャットでは投稿されたファイルの属性に関わらず、前記第１の条件が満たされたと判定し、前記グループチャットでは投稿されたファイルの属性が第３の条件を満たした場合に、前記第２の条件が満たされたと判定する制御を行う
請求項１〜請求項８の何れか１項に記載の制御装置。
【請求項１０】
前記第３の条件が、投稿されたファイルが前記グループチャットに参加している各々のユーザ同士で既に共有されていることに設定されている
請求項９記載の制御装置。
【請求項１１】
前記制御部は、投稿されたファイルが前記グループチャットで既に投稿済みのファイルと同じファイルである場合に、投稿されたファイルが前記グループチャットに参加している各々のユーザ同士で共有されていると判定する制御を行う
請求項１０記載の制御装置。
【請求項１２】
複数のユーザとチャットボットが参加するグループチャットにおける何れかのユーザから投稿されたファイルが、前記グループチャットに参加している各々のユーザ同士で共有されているものでない場合には、当該投稿されたファイルを用いた処理を実行するよう制御しない一方、前記ファイルが、前記ユーザ同士で共有されているものである場合には、前記投稿されたファイルを用いた処理を実行するよう制御する制御部
を備えた制御装置。
【請求項１３】
前記制御部は、投稿されたファイルが前記グループチャットで既に投稿済みのファイルと同じファイルである場合に、投稿されたファイルが前記グループチャットに参加している各々のユーザ同士で共有されていると判定する制御を行う
請求項１２記載の制御装置。
【請求項１４】
コンピュータを、
請求項１〜請求項１３の何れか１項に記載の制御装置の制御部として機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術は、制御装置、及び制御プログラムに関する。
【背景技術】
【０００２】
特許文献１には、メンバが書き込んだメッセージを時系列に沿って表示するコミュニケーションサービスにおけるメッセージから、外部機器を操作するための動作指示を検出するとともに、該メッセージを書き込んだメンバを該動作指示の指示者として特定する動作指示検出手段と、上記動作指示検出手段が検出した上記動作指示に従って上記外部機器を制御する外部機器制御手段と、上記外部機器制御手段の制御によって上記外部機器が動作した結果を取得する動作結果取得手段と、上記動作結果取得手段が取得した動作の結果を報告する報告メッセージを生成する報告メッセージ生成手段と、上記報告メッセージ生成手段が生成した報告メッセージを、上記コミュニケーションサービスを提供するサーバに出力して、上記動作指示検出手段が特定した指示者を宛て先として明記した状態で、該メッセージを上記コミュニケーションサービスに表示させる報告メッセージ表示手段と、を備えることを特徴とするメッセージ通知装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１６４５２２号公報
【発明の概要】
【０００４】
チャット上でユーザから投稿された情報に基づいて特定の処理を実行するソフトウェアロボット（以下、「チャットボット」という）が知られている。
【０００５】
こうしたチャットボットは、チャット上でユーザから投稿された情報が予め定めた条件を満たした場合に、条件と対応付けられた特定の処理（例えばユーザに対する情報の通知や、ユーザが所望する処理の実行制御等）を実行するように設計されている。
【０００６】
チャットボットとのチャットに参加するユーザの数の面からチャットを分類した場合、ユーザ１人とチャットボットが参加するチャットである個別チャットと、複数のユーザとチャットボットが参加するチャットであるグループチャットに分類される。
【発明が解決しようとする課題】
【０００７】
グループチャットには複数のユーザが参加することから、グループチャットで何れかのユーザが情報を投稿した場合には、その投稿が必ずしもチャットボットに向けたものとは断定できない。したがって、特定の処理の実行要否を決定するための条件を個別チャットの場合と同じ条件に設定した場合、例えばチャットボットが、他のユーザに向けた投稿をチャットボットに向けた投稿と誤って認識してしまい、設定した条件が成立してしまうことがある。この場合、ユーザの意図に反してチャットボットが条件の成立に伴って特定の処理の実行制御に関わる動作を行うことになる。
【０００８】
本発明は、グループチャット上でユーザから投稿された情報に基づき特定の処理の実行制御を行なう場合において、チャットボットによる特定処理の実行要否を決定するための条件を、個別チャットで用いる条件と同じ条件に設定した場合よりも、ユーザの意図に反してチャットボットの動作が実行されることを抑制することができる制御装置、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１記載の制御装置の発明は、１人のユーザとチャットボットが参加する個別チャットでユーザから投稿された情報が第１の条件を満たした場合には、前記第１の条件と対応付けられた特定処理が実行されるように制御する一方、複数のユーザとチャットボットが参加するグループチャットで前記第１の条件のみを満たした場合には前記特定処理を実行せず、前記第１の条件と異なる第２の条件を満たした場合に前記特定処理を実行するように制御する制御部を備える。
【００１０】
請求項２記載の発明は、前記特定処理は、ユーザによって投稿されたファイルを用いて実行される処理であり、前記第１の条件は、ユーザによるファイルの投稿に設定され、前記第２の条件は、ユーザによるファイルの投稿に加え、ファイルの投稿前又は投稿後の何れかに、前記特定処理の実行を指示する実行指示が投稿されることに設定される。
【００１１】
請求項３記載の発明は、前記制御部は、前記実行指示から第１の期間内に投稿されたファイル、又は、前記実行指示と、当該実行指示の前又は後ろに存在する他の実行指示との間で、かつ、前記実行指示から前記第１の期間内に投稿された当該ファイルを前記特定処理の対象に含めて前記特定処理を実行するよう制御する。
【００１２】
請求項４記載の発明は、前記制御部は、前記他の実行指示が投稿されるまでの期間で、かつ、前記特定処理の対象となるファイルの何れかから第２の期間に投稿されたファイルも前記特定処理の対象に含めるように制御する。
【００１３】
請求項５記載の発明は、前記第１の期間が前記第２の期間より短く設定される。
【００１４】
請求項６記載の発明は、前記制御部は、前記実行指示を投稿したユーザとファイルを投稿したユーザが同一人物である場合に、前記特定処理を実行するように制御する。
【００１５】
請求項７記載の発明は、前記制御部は、前記個別チャットで前記第１の条件が満たされてから前記特定処理を実行するまでの第１の時間を、前記グループチャットで前記第２の条件が満たされてから前記特定処理を実行するまでの第２の時間よりも長く設定し、前記特定処理を実行するように制御する。
【００１６】
請求項８記載の発明は、前記制御部は、前記グループチャットで前記第１の条件は満たすが前記第２の条件は満たされない投稿がユーザによって行われた場合、前記特定処理の実行の要否をユーザに問い合わせる投稿を行い、前記特定処理の実行に関する問い合わせに対してユーザから投稿された応答に応じて、前記特定処理を行うか否か制御する。
【００１７】
請求項９記載の発明は、前記特定処理は、ユーザによって投稿されたファイルを用いた処理であり、前記第１の条件は、ユーザによるファイルの投稿に設定され、前記制御部は、ユーザによってファイルが投稿された場合、前記個別チャットでは投稿されたファイルの属性に関わらず、前記第１の条件が満たされたと判定し、前記グループチャットでは投稿されたファイルの属性が第３の条件を満たした場合に、前記第２の条件が満たされたと判定する制御を行う。
【００１８】
請求項１０記載の発明は、前記第３の条件が、投稿されたファイルが前記グループチャットに参加している各々のユーザ同士で既に共有されていることに設定されている。
【００１９】
請求項１１記載の発明は、前記制御部は、投稿されたファイルが前記グループチャットで既に投稿済みのファイルと同じファイルである場合に、投稿されたファイルが前記グループチャットに参加している各々のユーザ同士で共有されていると判定する制御を行う。
【００２０】
請求項１２記載の制御装置の発明は、複数のユーザとチャットボットが参加するグループチャットにおける何れかのユーザから投稿されたファイルが、前記グループチャットに参加している各々のユーザ同士で共有されているものでない場合には、当該投稿されたファイルを用いた処理を実行するよう制御しない一方、前記ファイルが、前記ユーザ同士で共有されているものである場合には、前記投稿されたファイルを用いた処理を実行するよう制御する制御部を備える。
【００２１】
請求項１３記載の発明は、前記制御部は、投稿されたファイルが前記グループチャットで既に投稿済みのファイルと同じファイルである場合に、投稿されたファイルが前記グループチャットに参加している各々のユーザ同士で共有されていると判定する制御を行う。
【００２２】
請求項１４記載の制御プログラムの発明は、コンピュータを、請求項１〜請求項１３の何れか１項に記載の制御装置の制御部として機能させる。
【発明の効果】
【００２３】
請求項１記載の発明によれば、グループチャット上でユーザから投稿された情報に基づき特定の処理の実行制御を行なう場合において、チャットボットによる特定処理の実行要否を決定するための条件を、個別チャットで用いる条件と同じ条件に設定した場合よりも、ユーザの意図に反してチャットボットの動作が実行されることを抑制することができる、という効果を有する。
【００２４】
請求項２記載の発明によれば、ユーザによって同じファイルが投稿された場合であっても、個別チャットとグループチャットで、特定処理の実行タイミングを変えることができる、という効果を有する。
【００２５】
請求項３記載の発明によれば、ファイルを投稿する毎に実行指示を行う場合と比較して、特定処理の実行に伴う操作量を削減することができる、という効果を有する。
【００２６】
請求項４記載の発明によれば、ファイルの投稿を第１の期間内に終えることができない場合であっても、投稿されたファイルを特定処理の対象に含めることができる、という効果を有する。
【００２７】
請求項５記載の発明によれば、投稿するファイルの選択に時間を要した場合であっても、投稿されたファイルを特定処理の対象に含めることができる、という効果を有する。
【００２８】
請求項６記載の発明によれば、実行指示を投稿した人と異なる他の人が投稿したファイルを特定処理の対象に含めないようにすることができる、という効果を有する。
【００２９】
請求項７記載の発明によれば、第１の時間を第２の時間より短く設定したと比較して、個別チャットで複数のファイルに対して特定処理を実行する場合の操作性を向上させることができる、という効果を有する。
【００３０】
請求項８記載の発明によれば、特定処理を実行する条件が成立しない場合であっても、自発的にユーザの意図を確認し、ユーザが投稿したファイルに対して特定処理を実行することができる、という効果を有する。
【００３１】
請求項９記載の発明によれば、グループチャットにおいて投稿されたファイルの属性を考慮せずに第１の条件を満たしていると判定する場合と比較して、ユーザの意図に反してチャットボットの動作が実行されることを抑制することができる、という効果を有する。
【００３２】
請求項１０記載の発明によれば、グループチャットに参加する他のユーザに向けて投稿されたファイルに対して、誤って特定処理を実行してしまうことを抑制することができる、という効果を有する。
【００３３】
請求項１１記載の発明によれば、グループチャットの投稿履歴を参照することで、投稿されたファイルがユーザ同士で共有されているファイルか確認することができる、という効果を有する。
【００３４】
請求項１２記載の発明によれば、グループチャット上でユーザから投稿された情報に基づき特定の処理の実行制御を行なう場合において、チャットボットによる特定処理の実行要否を決定するための条件を、個別チャットで用いる条件と同じ条件に設定した場合よりも、ユーザの意図に反してチャットボットの動作が実行されることを抑制することができる、という効果を有する。
【００３５】
請求項１３記載の発明によれば、グループチャットの投稿履歴を参照することで、投稿されたファイルがユーザ同士で共有されているファイルか確認することができる、という効果を有する。
【００３６】
請求項１４記載の発明によれば、グループチャット上でユーザから投稿された情報に基づき特定の処理の実行制御を行なう場合において、チャットボットによる特定処理の実行要否を決定するための条件を、個別チャットで用いる条件と同じ条件に設定した場合よりも、ユーザの意図に反してチャットボットの動作が実行されることを抑制することができる、という効果を有する。
【図面の簡単な説明】
【００３７】
【図１】制御システムの概略構成を示す図である。
【図２】トークルームサーバのハードウェア構成を示すブロック図である。
【図３】チャットボットサーバのハードウェア構成を示すブロック図である。
【図４】トークルームサーバの機能構成の例を示すブロック図である。
【図５】チャットボットサーバの機能構成の例を示すブロック図である。
【図６】登録部に登録されるユーザと画像形成装置との対応関係を示すテーブルの一例である。
【図７】登録部に登録される、トークルームと画像形成装置との対応関係を示すテーブルの一例ある。
【図８】個別チャットにおける特定処理の流れの一例を示すフローチャートである。
【図９】個別チャットが行われるトークルームの一例を示す図である。
【図１０】グループチャットにおいて、画像の投稿、実行指示の投稿の順に行われる特定処理の流れの一例を示すフローチャートである。
【図１１】グループチャットが行われるトークルームの一例を示す図である。
【図１２】グループチャットにおいて、複数の実行指示が投稿された場合のトークルームの一例を示す図である。
【図１３】グループチャットにおいて、実行指示を投稿したユーザと異なるユーザも画像を投稿した場合のトークルームの一例を示す図である。
【図１４】グループチャットにおいて、期間Ｔ１内に実行指示が投稿されなかった場合のトークルームの一例を示す図である。
【図１５】グループチャットにおいて、実行指示の投稿、画像の投稿の順に行われる特定処理の流れの他の一例を示すフローチャートである。
【図１６】グループチャットにおいて、複数の画像が投稿された場合のトークルームの一例を示す図である。
【図１７】グループチャットにおいて、投稿終了情報が投稿された場合のトークルームの一例を示す図である。
【図１８】グループチャットにおいて、印刷する画像を投稿しなかった場合のトークルームの一例を示す図である。
【図１９】グループチャットにおいて、実行指示を投稿したユーザと異なるユーザも画像を投稿した場合のトークルームの一例を示す図である。
【図２０】グループチャットにおいて、複数の実行指示が投稿された場合のトークルームの一例を示す図である。
【図２１】グループチャットにおいて、投稿される画像の属性に基づいて実行される制御処理の流れの他の一例を示すフローチャートである。
【図２２】グループチャットにおいて、共有画像が投稿された場合のトークルームの一例を示す図である。
【発明を実施するための形態】
【００３８】
以下、本発明の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び処理には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【００３９】
＜第１実施形態＞
図１は、本発明の技術の実施形態に係る制御システムの概略構成を示す図である。
【００４０】
制御システムは、ユーザ端末１０、トークルームサーバ２０、チャットボットサーバ３０、及び情報処理装置４０を含む。ユーザ端末１０、トークルームサーバ２０、及びチャットボットサーバ３０は、インターネット５０により相互に接続されている。チャットボットサーバ３０は、本実施の形態に係る制御装置の一例である。
【００４１】
ユーザ端末１０は、ユーザが使用する端末であって、デスクトップ型コンピュータ、ノートパソコン、タブレット、又はスマートフォン等のいかなる端末であっても良い。図１においては、ユーザＡがユーザ端末１０Ａを、ユーザＢがユーザ端末１０Ｂを、ユーザＣがユーザ端末１０Ｃを、ユーザＤがユーザ端末１０Ｄを使用しているものとする。ユーザ端末１０Ａ〜１０Ｄを総称して、「ユーザ端末１０」と呼ぶ。
【００４２】
トークルームサーバ２０は、トークルームを提供する。トークルームは、少なくとも１人のユーザと後述するチャットボットが共に参加して、チャットにより投稿したファイルによって表される情報を共有できる仮想空間である。
【００４３】
ここで、「ファイル」とは、何らかの情報を表すデータの単位であり、「チャット」とは、コンピュータネットワーク上でリアルタイムに複数の構成員が情報を入力してやりとりを交わすこと、又はそれをするための環境を指す。「構成員」とは、実在する人物と関連付けられたユーザと、特定の規則に従って動作するソフトウェアロボットの両方を含む。また、「チャットボット」とは、トークルーム上でユーザから投稿された情報に基づいて特定の処理（以降、「特定処理」という）の実行がなされるよう制御するソフトウェアロボットである。
【００４４】
ユーザは、ユーザ端末１０を通じて、トークルーム内において、ファイルを投稿することが可能である。ここで「ファイルを投稿する」とは、チャットにおいて情報を入力する行為をいう。
【００４５】
ファイルによって表される情報には、例えば画像や文字が含まれる。したがって、換言すれば「ファイルを投稿する」とは、チャットにおいて画像、及び文字によって表される各種指示や情報を入力する行為ということができる。
【００４６】
トークルーム内では、ユーザ同士でファイルによって表される情報を共有し、更に、チャットボットがユーザの情報に応答して、返答したりすることが可能である。また、ユーザがトークルーム内において、チャットボットに対して、情報処理装置４０に特定処理を実行させるための指示を与えることも可能である。チャットボットは、例えば、自然言語処理により、投稿されたファイルによって表される情報に含まれる指示を抽出し、情報処理装置４０に特定処理を実行させるように制御する。なお、トークルームには、ユーザとチャットボットが１対１で参加したり、複数のユーザとチャットボットとが参加したりすることが可能である。
【００４７】
以降では、１人のユーザとチャットボットだけがトークルームに参加して行うチャットを「個別チャット」と呼び、複数のユーザとチャットボットがトークルームに参加して行うチャットを「グループチャット」と呼ぶことにする。トークルームは開設された数だけ複数存在しうる。
【００４８】
チャットボットサーバ３０は、チャットボットを管理するサーバである。チャットボットは、上述の通り、トークルームに参加して、ユーザが投稿したファイルによって表される情報に応答したり、情報に含まれる指示に従い情報処理装置４０に特定処理を実行させたりする。
【００４９】
チャットボットは、参加しているトークルームにおいて、情報処理装置４０に特定処理を実行させるための指示に関する情報が投稿されると、トークルームに参加しているユーザに関連付けて登録されている情報処理装置４０に、特定処理を実行させるように制御する。なお、情報処理装置４０は、いかなる情報処理を行なう装置であっても良い。
【００５０】
ここで、「情報処理」とは、例えば、文字データ又は画像データ等から印刷を実行する処理、情報処理装置４０が備える設備を用いてデータを生成又は加工等する処理、及び情報処理装置４０と他の機器との間でデータを授受する処理等を含む。以下では、情報処理装置４０が画像形成装置であり、特定処理を実行させるための指示が印刷を実行させるための実行指示である場合を例に説明する。
【００５１】
なお、画像形成装置は情報処理装置４０の一例であることから、画像形成装置に対しても参照番号４０を付して説明を行う。画像形成装置４０は、印刷ジョブに基づいて用紙等の記録媒体に画像を形成する装置である。
【００５２】
図１の制御システムの例においては、画像形成装置４０Ａ及び画像形成装置４０Ｂが、チャットボットサーバ３０により管理されている。画像形成装置４０Ａ及び画像形成装置４０Ｂを総称して、「画像形成装置４０」と呼ぶ。図１の例では、チャットボットサーバ３０に画像形成装置４０が接続されているが、画像形成装置４０は、インターネット５０を経由して、チャットボットサーバ３０に接続されても良い。
【００５３】
次に、トークルームサーバ２０及びチャットボットサーバ３０のハードウェア構成について説明する。
【００５４】
図２は、トークルームサーバのハードウェア構成を示すブロック図である。
【００５５】
図２に示すように、トークルームサーバ２０は、ＣＰＵ(Central Processing Unit)２１、ＲＯＭ(Read Only Memory)２２、ＲＡＭ(Random Access Memory)２３、ストレージ２４、入力部２５、表示部２６、及び通信Ｉ／Ｆ(Interface)２７の各構成を有する。各構成は、バス２９を介して相互に通信可能に接続されている。
【００５６】
ＣＰＵ２１は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする制御部として機能する。すなわち、ＣＰＵ２１は、ＲＯＭ２２又はストレージ２４からプログラムを読み出し、ＲＡＭ２３を作業領域としてプログラムを実行する。ＣＰＵ２１は、ＲＯＭ２２又はストレージ２４に記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ＲＯＭ２２又はストレージ２４には、トークルームを提供するトークルーム提供プログラムが格納されている。
【００５７】
ＲＯＭ２２は、各種プログラム及び各種データを格納する。ＲＡＭ２３は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ２４は、ＨＤＤ(Hard Disk Drive)又はＳＳＤ(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【００５８】
入力部２５は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
【００５９】
表示部２６は、例えば液晶ディスプレイであり、各種の情報を表示する。表示部２６は、タッチパネル方式を採用して、入力部２５として機能しても良い。通信Ｉ／Ｆ２７は、インターネット５０を介して、他の機器と通信するためのインタフェースであり、例えばイーサネット（登録商標）、ＦＤＤＩ、Ｗｉ−Ｆｉ（登録商標）等の規格が用いられる。
【００６０】
図３は、チャットボットサーバのハードウェア構成を示すブロック図である。
【００６１】
図３に示すように、チャットボットサーバ３０は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ストレージ３４、入力部３５、表示部３６、及び通信Ｉ／Ｆ３７の各構成を有する。各構成は、バス３９を介して相互に通信可能に接続されている。チャットボットサーバ３０の各構成は、図２のトークルームサーバ２０の各構成と同様の機能を有する。
【００６２】
次に、トークルームサーバ２０及びチャットボットサーバ３０の機能構成について説明する。
【００６３】
図４は、トークルームサーバ２０の機能構成の例を示すブロック図である。
【００６４】
図４に示すように、トークルームサーバ２０は、機能構成として、提供部２０１を有する。機能構成は、ＣＰＵ２１がＲＯＭ２２又はストレージ２４に記憶されたトークルーム提供プログラムを読み出して、ＲＡＭ２３に展開して実行することにより実現される。
【００６５】
提供部２０１は、ユーザが参加し、ファイルを投稿可能なトークルームを提供する。トークルームサーバ２０は、提供部２０１の機能を用いて、個別チャットが行われるトークルーム、及び、グループチャットが行われるトークルームを提供する。
【００６６】
トークルームは、ユーザからの開設要求に従い、複数開設されうる。また、例えばあるユーザがトークルームサーバ２０にアクセスしてトークルームに開設要求を行い、特定のトークルームを開設した場合、開設者であるユーザは、開設したトークルームに他のユーザを招待し、参加させる事ができる。或いは、トークルームに参加中のユーザであれば、トークルームに参加していない他のユーザをトークルームへ招待して、新たに参加させる事ができる。
【００６７】
図５は、チャットボットサーバ３０の機能構成の例を示すブロック図である。図６は、登録部３０１に登録されるユーザと画像形成装置４０との対応関係を示すテーブルの一例である。図７は、登録部３０１に登録される、トークルームと画像形成装置４０との対応関係を示すテーブルの一例ある。
【００６８】
図５に示すように、チャットボットサーバ３０は、機能構成として、登録部３０１及び実行制御部３０２を有する。各機能構成は、ＣＰＵ３１がＲＯＭ３２又はストレージ３４に記憶された制御プログラムを読み出して、ＲＡＭ３３に展開して実行することにより実現される。
【００６９】
登録部３０１は、例えば、図６に示すように、ユーザと画像形成装置４０とを関連付けた対応付けテーブルを登録する。図６に示す対応付けテーブルの例では、更に、印刷を実行する場合に用いられる印刷設定もユーザ毎に関連付けられている。
【００７０】
また、登録部３０１は、例えば、図７に示すように、トークルームと画像形成装置４０とを関連付けた対応付けテーブルを登録する。図７に示す対応付けテーブルの例では、更に、トークルームに参加中のユーザがトークルーム毎に対応付けられ、また、当該トークルーム内での印刷設定がユーザ毎に対応付けられている。グループチャットが行われているトークルームへユーザが参加する場合、図６に示す対応付けテーブルにおいて参加するユーザと関連付けられている画像形成装置４０を、参加するトークルームに関連付けて登録することにより、図７に示す対応付けテーブルが形成される。
【００７１】
すなわち、図６に示す対応付けテーブルは、個別チャットにおいて使用される。一方、図７に示す対応付けテーブルは、グループチャットにおいて使用される。各々のチャットでは、ユーザから印刷設定に関する指示が行われなかった場合、印刷対象となる情報は、チャットの種類に対する対応付けテーブルに設定されたユーザ毎の印刷設定に従って、画像形成装置４０で印刷される。
【００７２】
以降では、図６及び図７に示す対応付けテーブルに予め登録されたユーザ毎の印刷設定を「標準印刷設定」という。
【００７３】
実行制御部３０２は、チャットボットとしてトークルームに参加する。そして、実行制御部３０２は、トークルームにおいて、画像形成装置４０に画像を印刷させるための条件が成立した場合、画像を投稿したユーザと関連付けられている画像形成装置４０の情報と標準印刷設定を対応付けテーブルから取得して、取得した情報によって指定された画像形成装置４０に、取得した標準印刷設定で印刷を実行させるように制御する。このように実行制御部３０２は、本実施の形態に係る制御部の一例である。
【００７４】
次に、本実施の形態に係るチャットボットサーバ３０の作用について説明する。
【００７５】
図８は、チャットボットサーバ３０が個別チャットに参加している場合に、ＣＰＵ３１によって実行される特定処理の流れの一例を示すフローチャートである。図８に示す特定処理は、チャットボットサーバ３０における特定処理の一例である。
【００７６】
図８に示す特定処理を規定する制御プログラムは、例えばチャットボットサーバ３０のＲＯＭ３２に予め記憶されている。チャットボットサーバ３０のＣＰＵ３１は、ＲＯＭ３２に記憶される制御プログラムを読み込み、特定処理を実行する。
【００７７】
まず、ステップＳ１０において、ＣＰＵ３１は、参加相手のユーザによって、画像を含むファイルがトークルームに投稿されたか否かを判定する。
【００７８】
画像を含むファイルが投稿されていない場合にはステップＳ１０の判定処理を繰り返し実行して、画像を含むファイルの投稿を監視する。以降では説明の便宜上、「画像を含むファイル」のことを単に「画像」ということにする。
【００７９】
一方、ユーザによって画像が投稿された場合にはステップＳ２０に移行する。
【００８０】
画像形成装置４０を制御して印刷を行うチャットボットサーバ３０とユーザが１対１で参加する個別チャットにおいて、ユーザがトークルームに画像を投稿する行為は、トークルームに投稿した画像の印刷を指示する実行指示に相当する。したがって、ステップＳ２０において、ＣＰＵ３１は、ユーザによって投稿された画像を取得し、印刷対象としてＲＡＭ３３に記憶する。
【００８１】
ステップＳ３０において、ＣＰＵ３１は、経過時間を計測するタイマを起動する。タイマの起動は、例えばＣＰＵ３１に内蔵されるタイマ機能を用いて実現される。これにより、トークルームに画像が投稿されてからの経過時間が計測される。
【００８２】
ステップＳ４０において、ＣＰＵ３１は、起動したタイマの値が予め定めた規定時間を経過したか否かを判定する。この規定時間は、ユーザが、更に他の画像を投稿することを考慮して設定された、本実施の形態に係る第１の時間の一例に相当する時間であり、例えばストレージ３４に予め記憶されている。規定時間の値に制約はなく、何れの値に設定してもよい。
【００８３】
タイマの値が規定時間を経過していない場合にはステップＳ６０に移行する。
【００８４】
ステップＳ６０において、ＣＰＵ３１は、ステップＳ１０で投稿された画像とは異なる他の画像がユーザによってトークルームに投稿されたか否かを判定する。
【００８５】
他の画像が投稿されていない場合にはステップＳ４０に戻り、タイマの値が規定時間を経過していないか監視する。
【００８６】
一方、他の画像が投稿されている場合にはステップＳ７０に移行し、ステップＳ７０において、ＣＰＵ３１はステップＳ２０と同様に、ユーザによって投稿された画像を取得し、印刷対象としてＲＡＭ３３に記憶した後、ステップＳ４０に移行する。
【００８７】
すなわち、ＣＰＵ３１は、規定時間の間にユーザが投稿した画像は、ユーザが印刷の意図を持って投稿した画像として取り扱う。
【００８８】
ステップＳ４０の判定処理において、タイマの値が規定時間を経過したと判定された場合にはステップＳ５０に移行する。
【００８９】
ステップＳ５０において、ＣＰＵ３１は、個別チャットの場合に用いられる図６に示した対応付けテーブルを参照して、画像を投稿したユーザに対応付けられている画像形成装置４０に対して、画像を投稿したユーザに対応付けられている標準印刷設定に従って、印刷対象に設定された画像の印刷を実行するように制御する。以上により、図８に示した特定処理を終了する。なお、ＣＰＵ３１は、個別チャットへ参加している間は、再び図８に示した特定処理を再開して、ユーザによる次の画像の投稿を監視する。
【００９０】
すなわち、個別チャットの場合、チャットボットサーバ３０は、ユーザによって画像がトークルームに投稿されると画像の印刷を実行する。チャットボットサーバ３０にとって、個別チャットにおけるトークルームへの画像の投稿は、画像の印刷を実行するために設定された条件であり、本実施の形態に係る第１の条件の一例である。
【００９１】
図９は、図８に示した個別チャットにおける特定処理が実行された場合に、個別チャットに参加したユーザのユーザ端末１０における画面に表示されるトークルームの一例を示す図である。
【００９２】
例えば規定時間が１０分に設定されている場合、ユーザが１４時に画像Ｍ１を投稿すると、規定時間が経過した１４時１０分に、チャットボットサーバ３０が画像Ｍ１の印刷を実行するための制御を開始する。また、例えば規定時間を０分に設定した場合には、ユーザが１４時に画像Ｍ１を投稿した後、間隔を空けずにチャットボットサーバ３０が画像Ｍ１の印刷を実行するための制御を開始する。
【００９３】
図９に示すようにチャットボットサーバ３０は、印刷を実行するための制御を開始する場合、例えば「印刷を開始します」といった、ユーザにチャットボットサーバ３０の処理状況を通知する情報Ｍ１０をトークルームに投稿してもよい。
【００９４】
また、チャットボットサーバ３０は、印刷を実行するための制御を開始する前に、適用する印刷設定をユーザに問い合わせる情報を投稿してもよい。ユーザが標準印刷設定を用いる情報を投稿した場合には、チャットボットサーバ３０は、ユーザに関連付けられた標準印刷設定で画像を印刷するように画像形成装置４０を制御する。一方、ユーザが標準印刷設定とは異なる印刷設定を指定した情報を投稿した場合には、チャットボットサーバ３０は、ユーザによって指定された印刷設定で画像を印刷するように画像形成装置４０を制御する。
【００９５】
次に、グループチャットにおけるチャットボットサーバ３０の作用について説明する。
【００９６】
個別チャットでは、チャットボットサーバ３０は、ユーザによって画像がトークルームに投稿された場合に画像の印刷を実行する制御を開始した。しかしながら、グループチャットにおいて何れかのユーザがトークルームに投稿した画像は、必ずしもチャットボットサーバ３０宛ての画像とは限らず、トークルームに参加する他のユーザに宛てた画像である場合がある。したがって、グループチャットにおいても個別チャットと同様に、チャットボットサーバ３０がユーザによって画像がトークルームに投稿された場合に画像の印刷を実行する制御を開始した場合、画像を投稿したユーザは、チャットボットサーバ３０に対して印刷の開始を中止する指示を投稿して、画像の印刷を中止させる操作を行うことになる。
【００９７】
すなわち、チャットボットサーバ３０でユーザの意図に沿った動作を実行するためには、グループチャットにおいてユーザがトークルームに投稿した画像の印刷を開始する条件を、個別チャットで画像の印刷を開始する条件と異なるように設定する必要がある。
【００９８】
図１０は、チャットボットサーバ３０がグループチャットに参加している場合に、ＣＰＵ３１によって実行される特定処理の流れの一例を示すフローチャートである。図１０に示す特定処理は、チャットボットサーバ３０における特定処理の一例である。
【００９９】
図１０に示す特定処理を規定する制御プログラムは、例えばチャットボットサーバ３０のＲＯＭ３２に予め記憶されている。チャットボットサーバ３０のＣＰＵ３１は、ＲＯＭ３２に記憶される制御プログラムを読み込み、特定処理を実行する。ここでは一例として、ユーザが画像を印刷する場合、まず印刷したい画像をトークルームに投稿する手順となっている場合について説明する。したがって、図１０に示す特定処理の前に、グループチャットに参加するユーザの何れかによって、少なくとも１つの画像がトークルームに投稿されている前提で説明を行う。
【０１００】
ステップＳ１００において、ＣＰＵ３１は、画像の印刷の実行を指示する実行指示を含むファイルがトークルームに投稿されたか否かを判定する。以降では説明の便宜上、「画像の印刷の実行を指示する実行指示を含むファイル」のことを単に「実行指示」ということにする。実行指示に用いられる用語は予め定められており、例えば「プリント」という情報が投稿されると、ＣＰＵ３１は実行指示があったものと認識する。
【０１０１】
実行指示が投稿されていない場合にはステップＳ１００の判定処理を繰り返し実行して、ユーザからの実行指示の投稿を監視する。
【０１０２】
ステップＳ１１０において、ＣＰＵ３１は、ステップＳ１００で検知した実行指示の投稿が行われた投稿時刻を基準時刻としてＲＡＭ３３に記憶する。
【０１０３】
ステップＳ１２０において、ＣＰＵ３１は、ステップＳ１００で検知した実行指示の投稿時刻より前の時刻に投稿された、実行指示を投稿したユーザと同一人物のユーザが投稿した画像であって、実行指示の投稿時刻から期間Ｔ１以内に投稿され、かつ、実行指示の投稿時刻からの間隔が最も短い直近の画像が存在するか否かを判定する。以降では、実行指示を投稿したユーザと同一人物のユーザが投稿した画像であって、基準となる情報（この場合、「実行指示」）の投稿時刻から特定の期間（この場合、「期間Ｔ１」）以内に投稿され、かつ、基準となる情報の投稿時刻からの間隔が最も短い直近の画像のことを「隣接画像」ということにする。
【０１０４】
ここで「期間Ｔ１」は、ステップＳ１００で検知した実行指示によって印刷する画像の範囲を規定する期間であり、ＣＰＵ３１は、実行指示の投稿時刻から遡って期間Ｔ１以内に投稿された画像を印刷対象に含める。画像の投稿時刻と実行指示の投稿時刻の間隔があまりにも離れている場合、ユーザが画像の投稿直後に実行指示を投稿する場合と比較して、投稿された画像が印刷対象の画像である確率は低下する。
【０１０５】
例えばユーザがトークルームに画像を投稿してから数日経過した後に実行指示を投稿した場合、ユーザが投稿した画像の印刷を本当に所望しているか不明確である。したがって、投稿された画像が実行指示による印刷対象であるとみなすことができる期間を期間Ｔ１として設定することで、ユーザが印刷を所望していない画像が印刷されることを抑制する。期間Ｔ１は、本実施の形態に係る第１の期間の一例である。
【０１０６】
基準時刻より前の時刻に投稿された隣接画像までの間隔が期間Ｔ１に含まれる場合、ステップＳ１３０に移行する。
【０１０７】
ステップＳ１３０において、ＣＰＵ３１は、実行指示から隣接画像までの間にステップＳ１００で検知した実行指示と異なる、ステップＳ１００で検知した実行指示を投稿したユーザと同一人物のユーザが投稿した他の実行指示が投稿されていないか否かを判定する。
【０１０８】
ステップＳ１００で検知した実行指示と隣接画像までの間に他の実行指示が含まれる場合、隣接画像は他の実行指示による印刷対象に含まれるため、既に他の実行指示によって、実行指示の投稿以前に投稿された画像の印刷が行われていることになる。したがって、ＣＰＵ３１は、ステップＳ１００で検知した実行指示と隣接画像までの間に他の実行指示が投稿されていないか確認する。
【０１０９】
ステップＳ１００で検知した実行指示と隣接画像までの間に他の実行指示が投稿されていない場合にはステップＳ１４０に移行する。
【０１１０】
この場合、隣接画像はユーザが印刷の意図を持って投稿した画像であり、まだ印刷されていない画像ということになるため、ステップＳ１４０において、ＣＰＵ３１は、隣接画像を印刷対象に追加する。
【０１１１】
ユーザが投稿した画像が１枚であれば、ＣＰＵ３１は、即座にステップＳ１４０で印刷対象に追加した画像の印刷を実行する制御を開始すればよいが、ユーザが複数の画像を投稿していることもある。したがって、ＣＰＵ３１は、更に印刷を所望する画像が投稿されていないか確認する。
【０１１２】
そのため、ステップＳ１５０において、ＣＰＵ３１は、ステップＳ１４０で最後に印刷対象に追加した隣接画像の投稿時刻を新たな基準時刻としてＲＡＭ３３に記憶する。
【０１１３】
ステップＳ１６０において、ＣＰＵ３１は、基準時刻より前の時刻に投稿された、実行指示を投稿したユーザと同一人物のユーザが投稿した画像であって、基準時刻から期間Ｔ２以内に投稿され、かつ、基準時刻からの間隔が最も短い直近の画像、すなわち基準時刻に投稿された画像の隣接画像が存在するか否かを判定する。
【０１１４】
ここで「期間Ｔ２」は、ステップＳ１００で検知した実行指示によって印刷する画像の範囲を規定する期間であり、ＣＰＵ３１は、印刷対象となった画像の投稿時刻から遡って期間Ｔ２以内に投稿された画像も印刷対象に含める。このようにすることで、複数の画像が１つの実行指示によって印刷対象に追加されることになる。期間Ｔ２は、本実施の形態に係る第２の期間の一例である。
【０１１５】
基準時刻より前の時刻に投稿された隣接画像までの間隔が期間Ｔ２に含まれる場合、ステップＳ１７０に移行する。
【０１１６】
基準時刻に投稿された画像と隣接画像の間にステップＳ１００で検知した実行指示と異なる他の実行指示が含まれる場合、隣接画像は他の実行指示による印刷対象に含まれるため、既に他の実行指示によって、隣接画像の投稿以前に投稿された画像の印刷が行われていることになる。したがって、ＣＰＵ３１は、基準時刻に投稿された画像と隣接画像までの間に他の実行指示が投稿されていないか確認することが好ましい。
【０１１７】
したがって、ステップＳ１７０において、ＣＰＵ３１は、基準時刻に投稿された画像と隣接画像までの間に他の実行指示が投稿されていないか否かを判定する。基準時刻に投稿された画像と隣接画像までの間に他の実行指示が投稿されていない場合にはステップＳ１４０に移行して隣接画像を印刷対象に追加し、ステップＳ１５０で、最後に印刷対象に追加した画像の投稿時刻を基準時刻に設定する。
【０１１８】
一方、ステップＳ１６０の判定処理で、基準時刻より前の時刻に投稿された隣接画像までの間隔が期間Ｔ２を超えると判定された場合、及び、ステップＳ１７０の判定処理で、基準時刻に投稿された画像と隣接画像までの間に他の実行指示が投稿されていると判定された場合には、ステップＳ１８０に移行する。
【０１１９】
ステップＳ１８０において、ＣＰＵ３１は、グループチャットの場合に用いられる図７に示した対応付けテーブルを参照して、参加しているトークルームにおいて実行指示を投稿したユーザに対応付けられている画像形成装置４０に対して、実行指示を投稿したユーザに対応付けられている標準印刷設定に従って、印刷対象に設定された画像の印刷を実行するように制御する。
【０１２０】
ステップＳ１９０において、ＣＰＵ３１は次の実行指示の投稿に備え、印刷対象に設定した画像の情報をＲＡＭ３３から消去する。
【０１２１】
すなわち、ＣＰＵ３１がステップＳ１４０〜Ｓ１７０を繰り返し実行することで、実行指示の投稿時刻から期間Ｔ１以内に含まれる画像だけでなく、他の実行指示が投稿されるまでの期間で、かつ、印刷対象に設定された画像から期間Ｔ２以内に投稿された画像も順次印刷対象に設定される。
【０１２２】
一方、ステップＳ１２０の判定処理で、基準時刻より前の時刻に投稿された隣接画像までの間隔が期間Ｔ１を超えると判定された場合、及び、ステップＳ１３０の判定処理で、ステップＳ１００で検知した実行指示と隣接画像までの間に他の実行指示が投稿されていると判定された場合、ステップＳ２００に移行する。
【０１２３】
この場合、ユーザによって実行指示が投稿されたが、印刷対象となる画像が存在しないことを意味する。
【０１２４】
したがって、ステップＳ２００において、ＣＰＵ３１は、ユーザに画像の投稿を促す情報をトークルームに投稿し、図１０に示した特定処理を終了する。なお、ＣＰＵ３１は、グループチャットへ参加している間は、再び図１０に示した特定処理を再開して、ユーザによる次の実行指示の投稿を監視する。
【０１２５】
グループチャットの場合、チャットボットサーバ３０は、ユーザによるトークルームへの画像の投稿に加え、画像を投稿したユーザと同じユーザが実行指示を投稿することによって画像の印刷を実行する。すなわち、グループチャットの方が個別チャットに比べて、印刷を実行するための制御を開始する条件が厳しく設定される。
【０１２６】
チャットボットサーバ３０にとって、グループチャットにおけるトークルームへの画像の投稿、及び実行指示の投稿は、画像の印刷を実行するために設定された条件であり、実行指示の投稿は、本実施の形態に係る第２の条件の一例である。グループチャットにおいて画像の印刷を実行するためには、画像の投稿に加えて実行指示の投稿が行われることが必要である。また、実行指示が投稿されても、画像の投稿が行われていなければ画像の印刷は実行されないため、画像の投稿は、実行指示の投稿に対する必要条件とも言うことができる。
【０１２７】
図８に示した個別チャットにおける特定処理では、トークルームに画像が投稿されてから規定時間経過後に、ステップＳ５０で印刷の実行を開始した。一方、図１０に示したグループチャットの特定処理では、トークルームに画像が投稿され、かつ、実行指示が投稿された場合、個別チャットにおける特定処理のように時間の経過を待つ処理は実行されず、ＣＰＵ３１でステップＳ１００からステップＳ１７０までの各処理が実行された後、即座にステップＳ１８０で印刷の実行を開始する。
【０１２８】
すなわち、個別チャットにおける特定処理の方が、グループチャットにおける特定処理よりも、画像の印刷を開始する条件が成立してから、実際に画像の印刷を実行する制御が開始されるまでの時間が長くなる。なお、ＣＰＵ３１で図１０に示した特定処理のステップＳ１００からステップＳ１７０までの各処理を実行するために要する時間は、本実施の形態に係る第２の時間の一例である。
【０１２９】
また、期間Ｔ１及び期間Ｔ２の長さに制約はないが、期間Ｔ１は、例えばユーザが画像を投稿してから実行指示を投稿し終えるまでに要する長さに設定される。期間Ｔ２は、例えばユーザが画像を投稿してから次の画像を投稿し終えるまでに要する長さに設定される。複数の画像の中から印刷したい画像を選択してトークルームに投稿するために要する時間は、画像を選択するという動作が含まれるため、単に実行指示を投稿するために要する時間よりも長くかかる傾向がある。したがって、期間Ｔ１は期間Ｔ２より短く設定されることが好ましい。
【０１３０】
図１１は、図１０に示したグループチャットにおける特定処理が実行された場合に、グループチャットに参加したユーザのユーザ端末１０における画面に表示されるトークルームの一例を示す図である。以降の説明では一例として、期間Ｔ１が３分に設定され、期間Ｔ２が５分に設定されている前提の下で説明を行う。
【０１３１】
例えばユーザＡが１４時に画像Ｍ１を投稿し、１４時５７分に画像Ｍ２を投稿し、１５時に画像Ｍ３を投稿した後、１５時１分に実行指示として「プリント」の情報Ｍ５を投稿した場合、チャットボットサーバ３０は印刷を実行するための制御を開始する。
【０１３２】
この場合、実行指示の投稿時刻から画像Ｍ３の投稿時刻までの間隔は期間Ｔ１以内であり、画像Ｍ３の投稿時刻から画像Ｍ２の投稿時刻までの間隔は期間Ｔ２以内である。しかし、画像Ｍ２の投稿時刻から画像Ｍ１の投稿時刻までの間隔は期間Ｔ２を超えている。したがって、チャットボットサーバ３０は、画像Ｍ２及び画像Ｍ３を印刷対象として、印刷を実行するための制御を開始する。すなわち、画像Ｍ１の印刷は行われない。
【０１３３】
図１１に示すようにチャットボットサーバ３０は、印刷を実行するための制御を開始する場合、例えば「印刷を開始します」といった、ユーザにチャットボットサーバ３０の処理状況を通知する情報Ｍ１０をトークルームに投稿してもよい。
【０１３４】
グループチャットにおいてもチャットボットサーバ３０は、印刷を実行するための制御を開始する前に、適用する印刷設定をユーザに問い合わせる情報を投稿してもよい。ユーザが標準印刷設定を用いる情報を投稿した場合には、チャットボットサーバ３０は、ユーザに関連付けられた標準印刷設定で画像を印刷するように画像形成装置４０を制御する。一方、ユーザが標準印刷設定とは異なる印刷設定を指定した情報を投稿した場合には、チャットボットサーバ３０は、ユーザによって指定された印刷設定で画像を印刷するように画像形成装置４０を制御する。
【０１３５】
図１２は、図１０に示したグループチャットの特定処理が実行された場合における、他のトークルームの一例を示す図である。
【０１３６】
例えばユーザＡが１４時５５分に画像Ｍ１を投稿し、１４時５６分に実行指示として「プリント」の情報Ｍ５を投稿したとする。引き続きユーザＡは、１４時５７分に画像Ｍ２を投稿し、１５時に画像Ｍ３を投稿した後、１５時１分に実行指示として「プリント」の情報Ｍ５を投稿したとする。
【０１３７】
まず、チャットボットサーバ３０は、１４時５６分の実行指示によって、印刷を実行するための制御を開始する。この場合、１４時５６分に投稿された実行指示の投稿時刻から画像Ｍ１の投稿時刻までの間隔は期間Ｔ１以内であることから、チャットボットサーバ３０は、画像Ｍ１を印刷対象として印刷を実行するための制御を開始する。
【０１３８】
次に、チャットボットサーバ３０は、１５時１分の実行指示によって、印刷を実行するための制御を開始する。この場合、１５時１分に投稿された実行指示の投稿時刻から画像Ｍ３の投稿時刻までの間隔は期間Ｔ１以内であり、画像Ｍ３の投稿時刻から画像Ｍ２の投稿時刻までの間隔は期間Ｔ２以内である。一方、画像Ｍ２の投稿時刻から画像Ｍ１の投稿時刻までの間隔も期間Ｔ２以内であるが、画像Ｍ２と画像Ｍ１の間には他の実行指示が投稿されているため、画像Ｍ１は１５時１分の実行指示による印刷対象には含まれない。したがって、チャットボットサーバ３０は、画像Ｍ２及び画像Ｍ３を印刷対象として、印刷を実行するための制御を開始する。
【０１３９】
図１３は、図１０に示したグループチャットの特定処理が実行された場合における、他のトークルームの一例を示す図である。
【０１４０】
例えばユーザＡが１５時に画像Ｍ１を投稿し、ユーザＡと異なるユーザＢが１５時１分に画像Ｍ２を投稿した後、ユーザＡが１５時１分に実行指示として「プリント」の情報Ｍ５を投稿したとする。
【０１４１】
チャットボットサーバ３０は、１５時１分の実行指示によって、印刷を実行するための制御を開始する。この場合、実行指示の投稿時刻から画像Ｍ２の投稿時刻までの間隔は期間Ｔ１以内であるが、画像Ｍ２を投稿したユーザと実行指示を投稿したユーザは異なる人物であるため、画像Ｍ２は実行指示による印刷対象には含まれない。一方、実行指示の投稿時刻から画像Ｍ１の投稿時刻までの間隔は期間Ｔ１以内であり、画像Ｍ１を投稿したユーザと実行指示を投稿したユーザは同一人物であるため、チャットボットサーバ３０は、画像Ｍ１を印刷対象として、印刷を実行するための制御を開始する。
【０１４２】
図１４は、図１０に示したグループチャットの特定処理が実行された場合における、他のトークルームの一例を示す図である。
【０１４３】
例えばユーザＡが１４時に画像Ｍ１を投稿した後、ユーザＡが１５時に実行指示として「プリント」の情報Ｍ５を投稿したとする。この場合、１５時に投稿された実行指示の投稿時刻から画像Ｍ１の投稿時刻までの間隔は期間Ｔ１を超えるため、ユーザによって実行指示が投稿されたが、印刷対象となる画像が存在しない状態となる。したがって、チャットボットサーバ３０は、例えば「印刷したいファイルを投稿して下さい」といった、ユーザに画像の投稿を促す情報Ｍ１２をトークルームに投稿する。
【０１４４】
ユーザによって実行指示が投稿されたが、印刷対象となる画像が存在しない場合におけるチャットボットサーバ３０の処理は、ユーザに画像の投稿を促す情報の投稿に限られない。
【０１４５】
例えば、チャットボットサーバ３０は、トークルームに画像が投稿されてから期間Ｔ１の間、画像を投稿したユーザによって実行指示が投稿されなかった場合、期間Ｔ１の経過後に、例えば「ファイルを印刷しますか？（Ｙ／Ｎ）」といった、ユーザに印刷の要否を問い合わせる情報をトークルームに投稿してもよい。
【０１４６】
チャットボットサーバ３０の問い合わせに対してユーザが「Ｙ」の情報を投稿した場合には、チャットボットサーバ３０は、図１０におけるステップＳ１４０から処理を開始し、画像Ｍ１を印刷対象として、印刷を実行するための制御を開始する。一方、チャットボットサーバ３０の問い合わせに対してユーザが「Ｎ」の情報を投稿した場合には、図１０に示した特定処理を終了する。
【０１４７】
また、チャットボットサーバ３０は、図１４に示したように、ユーザによって実行指示が投稿されたが、画像の投稿間隔が期間Ｔ１又は期間Ｔ２を超えるため印刷対象となる画像が存在しないと判定された場合にも、例えば「ファイルを印刷しますか？（Ｙ／Ｎ）」といった、ユーザに印刷の要否を問い合わせる情報をトークルームに投稿してもよい。
【０１４８】
ここまでは、グループチャットにおいてユーザが画像を印刷する場合、まず印刷したい画像をトークルームに投稿する手順をとる場合に適用される特定処理の例について説明した。チャットボットサーバ３０は、この他、ユーザが画像を印刷する場合、まず印刷指示をトークルームに投稿してから、印刷したい画像を投稿する手順にも対応する。以降では、当該手順に対応した特定処理の例について説明する。
【０１４９】
図１５は、チャットボットサーバ３０がグループチャットに参加している場合に、ＣＰＵ３１によって実行される特定処理の流れの一例を示すフローチャートである。図１５に示す特定処理は、チャットボットサーバ３０における特定処理の一例である。
【０１５０】
図１５に示す特定処理を規定する制御プログラムは、例えばチャットボットサーバ３０のＲＯＭ３２に予め記憶されている。チャットボットサーバ３０のＣＰＵ３１は、ＲＯＭ３２に記憶される制御プログラムを読み込み、特定処理を実行する。
【０１５１】
ステップＳ３００において、ＣＰＵ３１は、トークルームに実行指示が投稿されたか否かを判定する。実行指示が投稿されていない場合にはステップＳ３００の判定処理を繰り返し実行して、ユーザからの実行指示の投稿を監視する。一方、実行指示が投稿された場合にはステップＳ３１０に移行する。
【０１５２】
ステップＳ３１０において、ＣＰＵ３１は、ステップＳ３００で検知した実行指示の投稿が行われた投稿時刻を基準時刻としてＲＡＭ３３に記憶する。
【０１５３】
ステップＳ３２０において、ＣＰＵ３１は、基準時刻からの経過時間を計測するタイマを起動する。図８のステップＳ３０で説明したように、タイマの起動は、例えばＣＰＵ３１に内蔵されるタイマ機能を用いて実現される。
【０１５４】
ステップＳ３３０において、ＣＰＵ３１は、ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって、トークルームに画像が投稿されたか否かを判定する。画像が投稿されていない場合にはステップＳ３４０に移行する。
【０１５５】
ステップＳ３４０において、ＣＰＵ３１は、ステップＳ３２０で起動したタイマの値を参照して、基準時刻から期間Ｔ１が経過したか否か、すなわち、実行指示の投稿時刻から期間Ｔ１が経過したか否かを判定する。基準時刻から期間Ｔ１以内であればステップＳ３３０に移行して、再びトークルームに画像が投稿されたか否かを判定する。すなわち、ＣＰＵ３１は、ステップＳ３３０及びＳ３４０を繰り返し実行することで、基準時刻より後に設定された期間Ｔ１以内に、ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって画像が投稿されるのを監視する。
【０１５６】
基準時刻から期間Ｔ１以内に、ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって画像が投稿されなかった場合、すなわち、ステップＳ３４０の判定処理で、基準時刻から期間Ｔ１が経過したと判定された場合には、ステップＳ４３０に移行する。
【０１５７】
この場合、ユーザは実行指示を投稿したが、印刷対象となる画像を投稿していない状況であることから、ステップＳ４３０において、ＣＰＵ３１は、ユーザに画像の印刷の意思があるか否かを問い合わせる情報をトークルームに投稿し、図１５に示した特定処理を終了する。なお、ＣＰＵ３１は、グループチャットへ参加している間は、再び図１５に示した特定処理を再開して、ユーザによる次の実行指示の投稿を監視する。
【０１５８】
一方、ステップＳ３３０の判定処理で、ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって画像が投稿されたと判定された場合には、ステップＳ３５０に移行する。
【０１５９】
この場合、実行指示の投稿時刻から期間Ｔ１以内に画像が投稿されたことになる。したがって、ステップＳ３５０において、ＣＰＵ３１は、ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって投稿された画像を印刷対象としてＲＡＭ３３に記憶する。印刷対象に設定した画像は、実行指示を投稿したユーザと同一人物のユーザが投稿した画像であって、基準となる情報（この場合、「実行指示」）の投稿時刻から特定の期間（この場合、「期間Ｔ１」）以内に投稿され、かつ、基準となる情報の投稿時刻からの間隔が最も短い直近の画像であるため、「隣接画像」の要件を満たす。
【０１６０】
ユーザが投稿する画像が１枚であれば、ＣＰＵ３１は、即座にステップＳ３５０で印刷対象に追加した画像の印刷を実行する制御を開始すればよいが、ユーザが印刷したい画像を複数投稿することも考えられる。したがって、ＣＰＵ３１は、引き続きユーザから投稿される画像も印刷対象に含めるようにする。
【０１６１】
そのため、ステップＳ３６０において、ＣＰＵ３１は、ステップＳ３５０で最後に印刷対象に追加した画像の投稿時刻を基準時刻としてＲＡＭ３３に記憶する。
【０１６２】
ステップＳ３７０において、ＣＰＵ３１は、基準時刻からの経過時間を計測するタイマを再起動して、経過時間の計測を開始する。
【０１６３】
ステップＳ３８０において、ＣＰＵ３１は、ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって、トークルームに新たな画像が投稿されたか否かを再度判定する。新たな画像が投稿された場合には、ユーザが印刷の意図を持って投稿した画像と考えられるため、ステップＳ３５０に移行して、当該新たな画像も印刷対象に追加する。印刷対象に新たな画像が追加されると、ステップＳ３６０で新たに追加した画像の投稿時刻が基準時刻に設定され、ステップＳ３７０で基準時刻からの経過時間を計測するタイマが再起動される。
【０１６４】
一方、ステップＳ３８０の判定処理で新たな画像が投稿されていないと判定された場合には、ステップＳ３９０に移行する。
【０１６５】
ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって、ステップＳ３００で検知した実行指示と異なる他の実行指示がトークルームに投稿された場合、当該他の実行指示は、他の実行指示より後に投稿される画像に対する実行指示ということになる。一方、他の実行指示がトークルームに投稿されない場合には、ステップＳ３００で検知した実行指示を投稿したユーザが、印刷を所望する新たな画像を投稿する可能性が残っている。
【０１６６】
したがって、ステップＳ３９０において、ＣＰＵ３１は、ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって、ステップＳ３００で検知した実行指示と異なる他の実行指示がトークルームに投稿されたか否かを判定する。他の実行指示が投稿されていない場合、引き続き新たな画像の投稿を監視するためステップＳ４００に移行する。
【０１６７】
ステップＳ４００において、ＣＰＵ３１はステップＳ３７０で再起動したタイマの値を参照して、基準時刻から期間Ｔ２が経過したか否か、すなわち、最後に投稿された画像の投稿時刻から期間Ｔ２が経過したか否かを判定する。基準時刻から期間Ｔ２以内であればステップＳ３８０に移行し、ＣＰＵ３１は、ステップＳ３００で検知した実行指示を投稿したユーザと同じユーザによって、トークルームに新たな画像が投稿されたか否かを再度判定する。
【０１６８】
一方、ステップＳ３９０の判定処理で他の実行指示が投稿されたと判定された場合、及び、ステップＳ４００の判定処理で、最後に投稿された画像の投稿時刻から期間Ｔ２が経過したと判定された場合、ステップＳ４１０に移行する。
【０１６９】
ステップＳ４１０において、ＣＰＵ３１は、グループチャットの場合に用いられる図７に示した対応付けテーブルを参照して、参加しているトークルームにおいて実行指示を投稿したユーザに対応付けられている画像形成装置４０に対して、実行指示を投稿したユーザに対応付けられている標準印刷設定に従って、印刷対象に設定された画像の印刷を実行するように制御する。
【０１７０】
更に、ステップＳ４２０において、ＣＰＵ３１は次の実行指示の投稿に備え、印刷対象に設定した画像の情報をＲＡＭ３３から消去して図１５に示した特定処理を終了する。
【０１７１】
すなわち、ＣＰＵ３１がステップＳ３８０〜Ｓ４００を繰り返し実行することで、実行指示の投稿時刻から期間Ｔ１以内に含まれる画像だけでなく、他の実行指示が投稿されるまでの期間で、かつ、最後に印刷対象に設定された画像から期間Ｔ２以内に投稿された新たな画像も順次印刷対象に設定される。
【０１７２】
印刷指示をトークルームに投稿してから、印刷したい画像を投稿する手順のグループチャットにおいても、チャットボットサーバ３０は、ユーザによるトークルームへの画像の投稿に加え、画像を投稿したユーザと同じユーザが実行指示を投稿することによって画像の印刷が行われる。
【０１７３】
なお、ＣＰＵ３１は図１５に示した特定処理を終了する場合、起動したタイマを停止する。
【０１７４】
図１６は、図１５に示したグループチャットにおける特定処理が実行された場合に、グループチャットに参加したユーザのユーザ端末１０における画面に表示されるトークルームの一例を示す図である。
【０１７５】
例えばユーザＡが１５時に実行指示として「プリント」の情報Ｍ５を投稿した後、同じくユーザＡが１５時１分に画像Ｍ１を投稿し、１５時２分に画像Ｍ２を投稿し、１５時１２分に画像Ｍ３を投稿したとする。
【０１７６】
この場合、実行指示の投稿時刻から画像Ｍ１の投稿時刻までの間隔は期間Ｔ１以内であり、画像Ｍ１の投稿時刻から画像Ｍ２の投稿時刻までの間隔は期間Ｔ２以内である。しかし、画像Ｍ２の投稿時刻から画像Ｍ３の投稿時刻までの間隔は期間Ｔ２を超えている。したがって、チャットボットサーバ３０は、画像Ｍ２が投稿されて期間Ｔ２が経過した場合に、画像Ｍ１及び画像Ｍ２を印刷対象として、印刷を実行するための制御を開始する。すなわち、画像Ｍ３の印刷は行われない。
【０１７７】
図１１を用いて既に説明したように、チャットボットサーバ３０は、印刷を実行するための制御を開始する場合、トークルームに例えば「印刷を開始します」といった、ユーザにチャットボットサーバ３０の処理状況を通知する情報Ｍ１０を投稿してもよい。また、グループチャットにおいてもチャットボットサーバ３０は、印刷を実行するための制御を開始する前に、適用する印刷設定をユーザに問い合わせる情報を投稿してもよい。
【０１７８】
図１７は、図１５に示したグループチャットの特定処理が実行された場合における、他のトークルームの一例を示す図である。
【０１７９】
図１５に示したグループチャットの特定処理では、ユーザによる複数の画像の投稿に対応するため、ユーザが画像を投稿しても期間Ｔ１又は期間Ｔ２が経過するまでは、印刷を実行するための制御が開始されなかった。したがって、ユーザは期間Ｔ１又は期間Ｔ２が経過する前に、印刷したい画像の投稿が終了したことを表す情報（以降、「投稿終了情報」）を投稿するようにしてもよい。
【０１８０】
例えばユーザＡが１５時に実行指示として「プリント」の情報Ｍ５を投稿した後、同じくユーザＡが１５時１分に画像Ｍ１を投稿し、１５時２分に画像Ｍ２を投稿し、１５時２分に投稿終了情報として「以上」の情報Ｍ１４を投稿したとする。
【０１８１】
この場合、情報Ｍ１４の投稿がなければ、チャットボットサーバ３０は、画像Ｍ２が投稿されて期間Ｔ２が経過した場合に、画像Ｍ１及び画像Ｍ２を印刷対象として、印刷を実行するための制御を開始する。しかし、情報Ｍ１４が投稿されることで、印刷対象となる画像の範囲が確定されるため、チャットボットサーバ３０は、画像Ｍ２が投稿されて期間Ｔ２が経過する前であっても、情報Ｍ１４が投稿された直後から、画像Ｍ１及び画像Ｍ２を印刷対象として、印刷を実行するための制御を開始することができる。
【０１８２】
投稿終了情報は、予めストレージ３４に記憶される。図１７では一例として、「以上」を投稿終了情報として用いたが、「終了」等、他の表現を投稿終了情報としてストレージ３４に記憶してもよい。
【０１８３】
チャットボットサーバ３０は、例えば形態素解析のような公知の自然言語の解析手法を用いてユーザが投稿した情報の内容を解析し、解析した情報の内容がストレージ３４に記憶した投稿終了情報と一致する場合に、投稿終了情報が投稿されたと判定する。
【０１８４】
図１８は、図１５に示したグループチャットの特定処理が実行された場合における、他のトークルームの一例を示す図である。
【０１８５】
例えばユーザＡが１５時に実行指示として「プリント」の情報Ｍ５を投稿した後、期間Ｔ１が経過するまでに何れの画像も投稿しなかったとする。
【０１８６】
この場合、期間Ｔ１の経過後に図１５のステップＳ４３０が実行され、チャットボットサーバ３０は、ユーザＡに画像の印刷の意思があるか否かを問い合わせる情報をトークルームに投稿する。図１８の例では、チャットボットサーバ３０によって、「印刷を中止しますか？（Ｙ／Ｎ）印刷を継続する場合には画像を投稿してください」という情報Ｍ１６がトークルームに投稿されている。
【０１８７】
チャットボットサーバ３０の問い合わせに対してユーザが「Ｙ」の情報を投稿した場合には、チャットボットサーバ３０は、ユーザが「Ｙ」の情報を投稿した時刻を基準時刻に設定した上で、図１５におけるステップＳ３２０から処理を開始する。一方、チャットボットサーバ３０の問い合わせに対してユーザが「Ｎ」の情報を投稿した場合には、図１５に示した特定処理を終了する。
【０１８８】
図１９は、図１５に示したグループチャットの特定処理が実行された場合における、他のトークルームの一例を示す図である。
【０１８９】
例えばユーザＡが１５時に実行指示として「プリント」の情報Ｍ５を投稿した後、ユーザＡと異なる人物であるユーザＢが１５時１分に画像Ｍ２を投稿し、ユーザＡが１５時２分に画像Ｍ１を投稿したとする。
【０１９０】
この場合、実行指示の投稿時刻から画像Ｍ２の投稿時刻までの間隔は期間Ｔ１以内である。しかしながら、画像Ｍ２を投稿したユーザは、実行指示を投稿したユーザと異なるため、印刷対象には含まれない。一方、実行指示の投稿時刻から画像Ｍ１の投稿時刻までの間隔も期間Ｔ１以内であるため、チャットボットサーバ３０は、画像Ｍ１を印刷対象として、画像Ｍ１が投稿されて期間Ｔ２の経過後に、印刷を実行するための制御を開始する。
【０１９１】
図２０は、図１５に示したグループチャットの特定処理が実行された場合における、他のトークルームの一例を示す図である。
【０１９２】
例えばユーザＡが１５時に実行指示として「プリント」の情報Ｍ５を投稿した後、同じくユーザＡが１５時１分に画像Ｍ１を投稿し、１５時２分に画像Ｍ２を投稿したとする。更にユーザＡは、１５時３分に実行指示として「プリント」の情報Ｍ５を投稿し、１５時４分に画像Ｍ３を投稿したとする。
【０１９３】
この場合、実行指示の投稿時刻から画像Ｍ１の投稿時刻までの間隔は期間Ｔ１以内であり、画像Ｍ１の投稿時刻から画像Ｍ２の投稿時刻までの間隔は期間Ｔ２以内であるため、チャットボットサーバ３０は、画像Ｍ１及び画像Ｍ２を印刷対象に設定する。その後、１５時に投稿された実行指示とは異なる他の実行指示である情報Ｍ５が投稿されたことから、チャットボットサーバ３０は、画像Ｍ２が投稿されて期間Ｔ２が経過する前であっても、画像Ｍ１及び画像Ｍ２を印刷対象として、印刷を実行するための制御を開始する。
【０１９４】
また、１５時３分に投稿された情報Ｍ５から画像Ｍ３の投稿時刻までの間隔は期間Ｔ１以内であることから、チャットボットサーバ３０は、画像Ｍ３を印刷対象に設定し、画像Ｍ３が投稿されて期間Ｔ２が経過した後に、画像Ｍ３の印刷を実行するための制御を開始する。
【０１９５】
このように本実施の形態に係るチャットボットサーバ３０は、個別チャットとグループチャットで、印刷を実行するための制御を開始する条件が異なる。グループチャットでは、ユーザが投稿した画像がチャットボットサーバ３０宛ての画像であるか確認する必要があるため、印刷を実行するための条件が個別チャットよりも厳しくなる。
【０１９６】
＜第２実施形態＞
上述したように、グループチャットに参加するチャットボットサーバ３０は、ユーザによって画像が投稿され、かつ、画像を投稿したユーザと同じユーザによって、投稿した画像の印刷を指示する実行指示が投稿された場合に、印刷を実行するための制御を開始する。
【０１９７】
しかしながら、ユーザによって投稿された画像の属性が特定の条件を満たす場合には、実行指示の投稿がなくとも画像の投稿により、印刷を実行するための制御を開始してもよい場合がある。
【０１９８】
本実施の形態では、グループチャットにおいてユーザから実行指示の投稿がない場合であっても、ユーザの意図に沿って印刷の実行を開始するチャットボットサーバ３０について説明する。
【０１９９】
トークルームに投稿された画像は、トークルームに後から参加したユーザ（チャットボットサーバ３０を含む）からも参照できるように、トークルームサーバ２０のストレージ２４に設けられた記憶領域(以降、「アルバム」という）に記憶される。アルバムは、各々のトークルームと１対１に対応付けられてストレージ２４に設けられる。
【０２００】
また、チャットボットサーバ３０のストレージ３４には、チャットボットサーバ３０がトークルームに参加した以降に各々のユーザによって投稿された画像が、トークルームの履歴として記憶される。
【０２０１】
すなわち、アルバムに記憶されている画像、及び、履歴として記憶されている画像は、トークルームに参加する各々のユーザ同士に共有されている画像である。「画像が共有される」とは、画像がトークルームに参加する各々のユーザによって閲覧可能な状態にあることをいう。
【０２０２】
トークルームに参加する各々のユーザによって共有されている画像がトークルームに投稿された場合、当該画像は既に各々のユーザに共有されていることから、当該画像は、トークルームに参加する何れかのユーザに向けて投稿された画像であるとは考えにくい。すなわち、何れかのユーザに向けて投稿された画像である確率よりも、チャットボットサーバ３０に向けて投稿された画像である確率の方が高い。
【０２０３】
したがって、グループチャットにおいて、トークルームに参加する各々のユーザ同士で共有されているという属性を有する画像が投稿された場合、チャットボットサーバ３０は、ユーザからの実行指示を待たずに印刷を実行するための制御を開始する。
【０２０４】
ここで「画像の属性」とは、例えば画像の大きさ及び作成日時といった画像自体の特徴を示す項目の他、どのような場面でどのように使われたかといった画像の使われ方を表す情報を含む。したがって、画像がトークルームに参加する各々のユーザ同士によって共有されるという使われ方が行われているか否かの情報は、画像の属性に含まれる。
【０２０５】
次に、こうした画像の属性に応じて印刷を実行するタイミングを制御する、グループチャットにおけるチャットボットサーバ３０の作用について説明する。
【０２０６】
図２１は、  チャットボットサーバ３０がグループチャットに参加している場合に、ＣＰＵ３１によって実行される制御処理の流れの一例を示すフローチャートである。
【０２０７】
図２１に示す制御処理を規定する制御プログラムは、例えばチャットボットサーバ３０のＲＯＭ３２に予め記憶されている。チャットボットサーバ３０のＣＰＵ３１は、ＲＯＭ３２に記憶される制御プログラムを読み込み、特定処理を実行する。
【０２０８】
まず、ステップＳ５００において、ＣＰＵ３１は、トークルームに参加する何れかのユーザによって、画像が投稿されたか否かを判定する。画像が投稿された場合にはステップＳ５１０に移行する。
【０２０９】
ステップＳ５１０において、ＣＰＵ３１は、参加しているトークルームと対応付けられたアルバム、及びトークルームの履歴の少なくとも一方を参照して、投稿された画像がグループチャットに参加している各々のユーザ同士で共有されている画像（以降、「共有画像」という）であるか否かを判定する。具体的には、ＣＰＵ３１は、参加しているトークルームと対応付けられたアルバム、及びトークルームの履歴の少なくとも一方に、ステップＳ５００で検知した画像と同じ画像が含まれる場合に、投稿された画像が共有画像であると判定する。
【０２１０】
すなわち、共有画像とは、参加しているトークルームにおいて、何れかのユーザが既に投稿した投稿済みの画像のことである。
【０２１１】
ここで「画像が同じ」とは、例えば画像のファイル名、画像の作成者、及び画像のデータ量が同じであることをいうが、画像が同じであるか否かを判定する基準はこれに限られない。例えばユーザがトークルームに画像を投稿した後に画像のファイル名を修正し、ファイル名を修正した画像を再度同じトークルームに投稿することも考えられる。したがって、ＣＰＵ３１は、公知の画像認識手法やパターンマッチング手法を用いて、画像の内容を比較することで、同じ画像であるか否かを判定するようにしてもよい。
【０２１２】
投稿された画像が共有画像の場合にはステップＳ５２０に移行する。
【０２１３】
ステップＳ５２０において、ＣＰＵ３１は、ステップＳ５００で検知した投稿された画像の印刷を実行するための制御を開始して、図２１に示す制御処理を終了する。すなわち、ＣＰＵ３１は、投稿された画像がグループチャットに参加している各々のユーザ同士で共有されている共有画像である場合には、実行指示の投稿が行われなくても画像の印刷を実行するための制御を開始する。
【０２１４】
一方、ステップＳ５００の判定処理で画像が投稿されていないと判定された場合、及び、ステップＳ５１０の判定処理で投稿された画像が共有画像ではないと判定された場合には、ステップＳ５３０に移行する。
【０２１５】
ステップＳ５３０において、ＣＰＵ３１は、トークルームに実行指示が投稿されたか否かを判定する。実行指示が投稿されていない場合にはステップＳ５００に移行する。すなわち、トークルームに画像又は実行指示が投稿されるまで、ステップＳ５００とステップＳ５３０の判定処理が交互に行われ、ユーザからの投稿を監視する。
【０２１６】
一方、実行指示が投稿された場合には、ステップＳ５４０に移行する。
【０２１７】
ステップＳ５４０では、図１０又は図１５に示した特定処理が実行される。
【０２１８】
例えば共有画像でない画像が投稿された後に実行指示が投稿された場合には、図１０に示したステップＳ１１０から特定処理が実行され、画像が投稿されることなく実行指示だけが投稿された場合には、図１５に示したステップＳ３１０から特定処理が実行される。すなわち、投稿された画像が共有画像でない場合、チャットボットサーバ３０は、画像と実行指示の投稿順序に応じて、印刷指示をトークルームに投稿してから、印刷したい画像を投稿する手順のグループチャットと、印刷したい画像をトークルームに投稿してから、印刷指示を投稿する手順のグループチャットの両方に対応するように動作する。
【０２１９】
以上により図２１に示す制御処理を終了する。なお、ＣＰＵ３１は、グループチャットへ参加している間は、再び図２１に示した制御処理を再開して、ユーザによるトークルームへの画像又は実行指示の投稿を監視する。
【０２２０】
図２２は、図２１に示したグループチャットにおける制御処理でユーザから共有画像が投稿された場合に、グループチャットに参加したユーザのユーザ端末１０における画面に表示されるトークルームの一例を示す図である。
【０２２１】
例えばユーザＡが１５時に共有画像である画像Ｍ１を投稿したとする。この場合、投稿された画像が共有画像であることから、チャットボットサーバ３０は、グループチャットであってもユーザＡからの実行指示の投稿を待つことなく、即座に画像Ｍ１を印刷対象として、印刷を実行するための制御を開始する。
【０２２２】
なお、図１０及び図１５に示した特定処理において、投稿された画像を印刷対象に追加するか否かの判定に、画像が共有画像であるか否かの判定を追加するようにしてもよい。図１０及び図１５の特定処理は、ユーザによって画像の投稿、及び実行指示の投稿が行われた場合に画像の印刷を実行する制御を開始するが、実行指示を投稿したユーザと同じユーザによって共有画像が投稿された場合に、画像が投稿されたと判定してもよい。すなわち、投稿された画像の属性が共有画像であるという条件が満たされた場合に、画像が投稿されたとみなされる。投稿された画像の属性が共有画像であるという条件は、本実施の形態に係る第３の条件の一例である。
【０２２３】
この場合、投稿された画像の属性からもユーザが実行したい内容を確認することができるため、画像が投稿されたという行為と実行指示が投稿されたという行為から、ユーザが画像の印刷を所望していると判定する場合と比較して、より正確にユーザの意図に沿った動作を実行することができる。
【０２２４】
本実施の形態に係るチャットボットサーバ３０は、投稿された画像が共有画像か否かの条件に基づいて、印刷に関する処理の実行タイミングを制御したが、印刷に関する処理を実行するか否かの判定は、画像が共有画像か否かといった属性だけでなく、他の属性を組み合わせて行ってもよい。例えば画像の作成者が画像を投稿したユーザと同一人物であるか否かも判定し、画像の作成者が画像を投稿したユーザと同一人物である場合に、印刷に関する処理を実行するようにしてもよい。
【０２２５】
また、チャットボットサーバ３０が情報処理装置４０に実行させるように制御する特定処理は、印刷に関する処理に限定されない。例えば、病院の予約、及びインターネットショッピング等の処理を行うようにしてもよい。この場合、特定処理の内容に応じて、情報処理装置４０への制御の開始条件を設定する。
【０２２６】
例えばチャットボットサーバ３０は、ユーザによって指定された病院が既に通院したことのある病院であれば、即座に予約を開始するが、初めて通院する病院であれば、指定した病院で本当に大丈夫かを確認する情報をユーザに問い合わせ、ユーザから許可する情報が投稿された場合に予約を開始する。
【０２２７】
以上、実施の形態を用いて本発明について説明したが、本発明は各実施の形態に記載の範囲には限定されない。本発明の要旨を逸脱しない範囲で各実施の形態に多様な変更又は改良を加えることができ、当該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。例えば、本発明の要旨を逸脱しない範囲で処理の順序を変更してもよい。
【０２２８】
本実施の形態では、一例として特定処理及び制御処理をソフトウェアで実現する形態について説明したが、図８、図１０、図１５、及び図２１に示したフローチャートと同等の処理を、例えばＡＳＩＣ（Application Specific Integrated Circuit）に実装し、ハードウェアで処理させるようにしてもよい。この場合、表示処理をソフトウェアで実現した場合と比較して、処理の高速化が図られる。
【０２２９】
また、上述した実施の形態では、制御プログラムがＲＯＭ３２にインストールされている形態を説明したが、これに限定されるものではない。本発明に係る制御プログラムは、コンピュータで読み取り可能な記憶媒体に記録された形態で提供することも可能である。例えば、本発明に係る制御プログラムを、ＣＤ(Compact Disc)−ＲＯＭ、又はＤＶＤ(Digital Versatile Disc)−ＲＯＭ等の光ディスクに記録した形態で提供してもよい。また、本発明に係る制御プログラムを、ＵＳＢ(Universal Serial Bus)メモリ及びフラッシュメモリ等の半導体メモリに記録した形態で提供してもよい。更に、チャットボットサーバ３０は、通信Ｉ／Ｆ３７を介して、通信回線に接続される外部装置から本発明に係る制御プログラムを取得するようにしてもよい。
【符号の説明】
【０２３０】
１０（１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ）  ユーザ端末
２０  トークルームサーバ
２１、３１  ＣＰＵ
２２、３２  ＲＯＭ
２３、３３  ＲＡＭ
２４、３４  ストレージ
２５、３５  入力部
２６、３６  表示部
２７、３７  通信Ｉ／Ｆ
２９、３９  バス
３０  チャットボットサーバ
４０（４０Ａ、４０Ｂ）  情報処理装置（画像形成装置）
５０  インターネット
２０１  提供部
３０１  登録部
３０２  実行制御部
【図１】
2020052508.tif 000003
【図２】
2020052508.tif 000004
【図３】
2020052508.tif 000005
【図４】
2020052508.tif 000006
【図５】
2020052508.tif 000007
【図６】
2020052508.tif 000008
【図７】
2020052508.tif 000009
【図８】
2020052508.tif 000010
【図９】
2020052508.tif 000011
【図１０】
2020052508.tif 000012
【図１１】
2020052508.tif 000013
【図１２】
2020052508.tif 000014
【図１３】
2020052508.tif 000015
【図１４】
2020052508.tif 000016
【図１５】
2020052508.tif 000017
【図１６】
2020052508.tif 000018
【図１７】
2020052508.tif 000019
【図１８】
2020052508.tif 000020
【図１９】
2020052508.tif 000021
【図２０】
2020052508.tif 000022
【図２１】
2020052508.tif 000023
【図２２】
2020052508.tif 000024