(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-19
(45)【発行日】2024-01-29
(54)【発明の名称】印刷提案の問合せを抑制するサーバーシステム、プログラム
(51)【国際特許分類】
H04L 51/02 20220101AFI20240122BHJP
H04L 51/04 20220101ALI20240122BHJP
G06F 3/12 20060101ALI20240122BHJP
【FI】
H04L51/02
H04L51/04
G06F3/12 303
G06F3/12 337
(21)【出願番号】P 2019215449
(22)【出願日】2019-11-28
【審査請求日】2022-11-24
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】齋藤 和之
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2019-144697(JP,A)
【文献】特開2019-164653(JP,A)
【文献】特開2015-028750(JP,A)
【文献】特開2005-047253(JP,A)
【文献】特表2019-519822(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 51/00
G06F 3/12
(57)【特許請求の範囲】
【請求項1】
ファイルがアップロードされたことを検知する検知工程と、
前記アップロードがなされたチャットルームが個別会話の場であるかグループ会話の場であるかを判定する判定工程と、
前記判定工程で
個別会話の場であると判定された場合には、
前記ファイルを印刷するか問い合わせ
る表示を表示手段に行わせ、
前記判定工程で
グループ会話の場であると判定された場合には、
前記ファイルを印刷するか問い合わせ
る表示を前記表示手段に行わせないように制御する制御工程と
、をサーバーシステムに実行させるためのプログラム。
【請求項2】
前記ファイルは、
前記チャットルームを提供するサーバにアップロードされたファイルであって、
前記表示は、
前記チャットルームへのメッセージの書き込みによって実現することを特徴とする請求項1に記載のプログラム。
【請求項3】
前記判定工程では、
イベント発生場所に関するパラメータに基づいて、前記判定を行うことを特徴とする請求項1又は2に記載のプログラム。
【請求項4】
前記判定工程では、
前記チャットルームに参加しているユーザ数が所定の人数未満であれば個別会話の場であると判定し、
前記チャットルームに参加しているユーザ数が所定の人数以上であればグループ会話の場であると判定することを特徴とする請求項1又は2に記載のプログラム。
【請求項5】
前記制御工程では、前記判定工程で個別会話の場であると判定された場合であっても、前回の前記表示に対する応答がなかった場合、前記表示を前記表示手段に行わせないように制御することを特徴とする請求項1乃至4のいずれか1項に記載のプログラム。
【請求項6】
前記判定工程でグループ会話の場であると判定された場合であっても、前記チャットルームにおいてユーザと対話を行う印刷用ボットを指名したメッセージが書き込まれた場合、印刷指示の確認のための提案を行わせるように制御する第2の制御工程をサーバーシステムに実行させる、請求項1乃至5のいずれか1項に記載のプログラム。
【請求項7】
前記制御工程は、前記判定工程でグループ会話の場であると判定された場合であっても、前記ファイルのファイル名に
特定の文字列が含まれる場合、前記表示を前記表示手段に行わせるように制御することを特徴とする請求項1乃至
6のいずれか1項に記載のプログラム。
【請求項8】
前記制御工程は、前記判定工程でグループ会話の場であると判定された場合であっても、前記アップロードがなされた時間、曜日、または日付が所定の時間、曜日、または日付である場合、前記表示を前記表示手段に行わせるように制御することを特徴とする請求項1乃至7のいずれか1項に記載のプログラム。
【請求項9】
ファイルがアップロードされたことを検知する検知手段と、
前記アップロードがなされたチャットルームが個別会話の場であるかグループ会話の場であるかを判定する判定手段と、
前記判定手段で
個別会話の場であると判定された場合には、
前記ファイルを印刷するか問い合わせ
る表示を表示手段に行わせ、
前記判定手段で
グループ会話の場であると判定された場合には、
前記ファイルを印刷するか問い合わせ
る表示を前記表示手段に行わせないように制御する制御手段と
、を有することを特徴とするサーバーシステム。
【請求項10】
前記ファイルは、
前記チャットルームを提供するサーバにアップロードされたファイルであって、
前記問い合わせの表示は、
前記チャットルームへのメッセージの書き込みによって実現することを特徴とする請求項
9に記載のサーバーシステム。
【請求項11】
前記判定手段は、
イベント発生場所に関するパラメータに基づいて、前記判定を行うことを特徴とする請求項
9又は
10に記載のサーバーシステム。
【請求項12】
前記判定手段は、
前記チャットルームに参加しているユーザ数が所定の人数未満であれば個別会話の場であると判定し、
前記チャットルームに参加しているユーザ数が所定の人数以上であればグループ会話の場であると判定することを特徴とする請求項9又は10に記載のサーバーシステム。
【請求項13】
前記制御手段は、前記判定手段に個別会話の場であると判定された場合であっても、前回の前記表示に対する応答がなかった場合、前記表示を前記表示手段に行わせないように制御することを特徴とする請求項9乃至11のいずれか1項に記載のサーバーシステム。
【請求項14】
前記判定手段にグループ会話の場であると判定された場合であっても、前記チャットルームにおいてユーザと対話を行う印刷用ボットを指名したメッセージが書き込まれた場合、印刷指示の確認のための提案を行わせるように制御する第2の制御手段を更に備えることを特徴とする請求項9乃至13のいずれか1項に記載のサーバーシステム。
【請求項15】
前記制御手段は、前記判定手段にグループ会話の場であると判定された場合であっても、
前記ファイルのファイル名に
特定の文字列が含まれる場合、前記表示を前記表示手段に行わせるように制御することを特徴とする請求項
9乃至
14のいずれか1項に記載のサーバーシステム。
【請求項16】
前記制御手段は、前記判定手段にグループ会話の場であると判定された場合であっても、前記アップロードがなされた時間、曜日、または日付が所定の時間、曜日、または日付である場合、前記表示を前記表示手段に行わせるように制御することを特徴とする請求項9乃至15のいずれか1項に記載のサーバーシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷提案の問合せを抑制するサーバーシステム、プログラムに関するものである。
【背景技術】
【0002】
ネットワークを通じて複数のユーザ端末間でメッセージをやり取りする、いわゆるビジネスチャットのためのメッセージングアプリの利用が広まっている。近年、このようなメッセージングアプリにおいて、ユーザがメッセージングアプリ上にて送信したメッセージの内容に応じて自動的にメッセージを応答するいわゆるボットを使用したサービスが増えている。一方、クラウドサービスの普及に伴い、印刷機器もネットワーク通信機能を備え、ユーザが端末からネットワークを介して印刷指示を行うクラウドプリントサービスが提供されている。
【0003】
前述したようなクラウドプリントサービスとボットサービスが連携することでユーザは端末上のメッセージングアプリからボットサービスとの対話形式によって印刷機器に対して印刷指示を行うことができる。メッセージアプリ上で印刷用ボットを介して印刷を行う場合に、印刷用ボットからユーザに対して印刷を提案してくれることは便利である。
【0004】
しかし、他のユーザとの会話に印刷用ボットが介入するのは、他のユーザとの会話の邪魔となってしまう場合がある。
【0005】
特許文献1では、特定メッセージに応じてプリントサービスを実行するモードと、プリントサービスを実行しないモードを切り替えることで、そのような介入を抑止する方法が記載されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、先行技術の方法だと、印刷用ボット自身が判断して会話の抑制を提案してくれるわけではないため、ユーザがモードを指定しなければならないという手間があり、利便性を損なっている。また、ボットのサービスを停止させるための指示自体が、他のユーザとの会話の邪魔になるという問題がある。また、サービス停止中は、印刷指示を待っているわけではないため、モードを再度切り替えるための余分な会話が必要となり、その点においても利便性を損なっている。
【0008】
このように、無駄な問合せを行ってしまうケースは、印刷用ボットに限らず、起こりえるため、本発明では、そのような無駄な問合せを排除したい。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のプログラムは、ファイルがアップロードされたことを検知する検知工程と、前記アップロードがなされたチャットルームが個別会話の場であるかグループ会話の場であるかを判定する判定工程と、前記判定工程で個別会話の場であると判定された場合には、前記ファイルを印刷するか問い合わせる表示を表示手段に行わせ、前記判定工程でグループ会話の場であると判定された場合には、前記ファイルを印刷するか問い合わせる表示を前記表示手段に行わせないように制御する制御工程と、をサーバーシステムに実行させる。
【発明の効果】
【0010】
本発明により、無駄な問合せは発生せず、便利な問合せを行うことができる。
【図面の簡単な説明】
【0011】
【
図2】クライアント端末とプリンタと各種サーバのハードウェア構成を示す図。
【
図3】クライアント端末と各種サーバのソフトウェア構成を示す図。
【
図4】第1実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図5】第1実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図6】第1実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図7】第1実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図8】第1実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図9】第2実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図10】第3実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図11】第3実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図12】第4実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図13】第5実施形態に係るボットサービスの処理の一例を示すフローチャート。
【
図14】第1実施形態に係るボットサービスの会話の例を示す図。
【
図15】第3実施形態に係るボットサービスの会話の例を示す図。
【
図16】第4実施形態に係るボットサービスの会話の例を示す図。
【
図17】第5実施形態に係るボットサービスの会話の例を示す図。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態について図面を用いて説明する。
【0013】
<実施形態1>
図1は本実施形態における印刷用ボットシステムの構成図を示したものである。以下では、サーバと記載した場合、単一のサーバであるものとして実施例を記載するが、実際には複数台のサーバからなるシステムであってもよい。単一のサーバや、複数台のサーバからなるシステムをサーバーシステムと呼ぶことにする。メッセージアプリサーバ101、プリントボットサーバ102、クラウドプリントサーバ103、クライアント端末104、プリンタ105がネットワーク106を介して接続されている。
図1ではクライアント端末104とプリンタ105をそれぞれ1つずつ記載しているが、実際は複数であることが通常である。各サーバにおいても、複数台により負荷分散された構成であってもよい。逆に、物理的には1つのサーバが内部で仮想的に各サーバの役割を果たす構成であってもよい。また各サーバは、クラウド上に配置されたクラウドサーバでもよい。ネットワーク106はインターネットなどのWANを想定しているが、社内LANなどの閉じた環境であってもよい。クライアント端末104はPCやタブレット、スマートフォンなどを指しており、ユーザによって直接操作される端末である。クライアント端末104上では任意のアプリケーションソフトウェアを実行可能となっている。プリンタ105は物理用紙に対して実際に印刷を行うデバイスであり、ネットワーク106を介して受信した印刷データを画像データに変換して印刷する。メッセージアプリサーバ101はチャットサービスなどのメッセージングサービスをクライアント端末に提供する。プリントボットサーバ102はメッセージアプリサーバ101が提供するメッセージングサービスに対して仮想ユーザとして登録され、通常ユーザと同様にメッセージ送受信を行う。プリントサーバ106は、外部からの印刷指示と文書データを受け付け、印刷データに変換した後、所定のプリンタ105へ印刷データを送信し、印刷指示を行う役割を持つ。クラウド環境にプリントサーバ106を配置する場合には、これをクラウドプリントサーバと呼ぶこともある。プリンタ105に印刷を行うタイミングとしては、ユーザによってプリンタ105上での操作が不要なプッシュ型の方式であってもよいし、ユーザがプリンタ105において印刷開始の操作を行ってから印刷を開始するプル型の方式であってもよい。
【0014】
次に、
図2を用いて本実施形態のシステムの持つそれぞれのデバイスにおけるハードウェア構成について説明する。
【0015】
図2(a)はメッセージアプリサーバ101のハードウェア構成を示すブロック図である。メッセージアプリサーバ101は記憶部214、制御部211、ネットワーク通信部215を備える。記憶部214はハードディスクやSSDなどの不揮発性の記憶装置を指し、デジタルデータの保存と書き換えが可能である。
【0016】
制御部211はCPU212とメモリ213とから構成され、メッセージアプリサーバ101の全体の動作を制御する。CPU212は記憶部214に記憶されたプログラムをメモリ213に展開し、それを実行する。メモリ213はCPU212の主記憶メモリでありワークエリアや各種プログラムを展開するための一時記憶領域として用いられる。
ネットワーク通信部215は外部のネットワーク106と通信を行う装置であり、ネットワーク106を介して外部のサーバやクライアント端末等とのデジタルデータの入出力を行う。
【0017】
図2(b)はプリントボットサーバ102のハードウェア構成を示すブロック図である。プリントボットサーバ102は記憶部224、制御部221、ネットワーク通信部225を備える。それぞれの説明はメッセージアプリサーバ101のものと同等であるため割愛する。
【0018】
図2(c)はプリントサーバ103のハードウェア構成を示すブロック図である。プリントサーバ103は記憶部234、制御部231、ネットワーク通信部235を備える。こちらも同様にそれぞれの説明は割愛する。
【0019】
図2(d)はクライアント端末104のハードウェア構成を示すブロック図である。クライアント端末104は表示部246、操作部247、記憶部244、制御部241、ネットワーク通信部245を備える。表示部246は液晶ディスプレイなどユーザに対して視覚的な情報をリアルタイムに表示するための装置である。操作部247はキーボードやマウスなどによりユーザからの入力を受け付けるための装置である。タッチパネルなど、表示部246と操作部247の両方の機能を備え持つ装置を用いることもある。記憶部244、制御部241、ネットワーク通信部245の説明はメッセージアプリサーバ101のものと同等であるため割愛する。
【0020】
図2(e)はプリンタ105のハードウェア構成を示すブロック図である。プリンタ105は表示部256、操作部257、記憶部254、制御部251、ネットワーク通信部255、印刷部258を備える。表示部256はプリンタ105に備え付けのタッチパネルやLEDなど、ユーザに対して情報をリアルタイムに表示するための装置である。操作部257はユーザからの入力を受け付けるための装置であり、タッチパネルに加えてテンキーなどのハードキーを含むこともある。記憶部254、制御部251についてはメッセージアプリサーバ101のものと同等であるため説明を割愛する。ネットワーク通信部255は外部のネットワーク106と通信を行う装置であり、主に印刷データの受信を行ったり、エラーなどのプリンタ105の状態について外部のサーバ等に向けて送信したりする役割を持つ。印刷部258はカセットやトレイに用意された用紙に対して、給紙、印字、排紙の一連の動作を行うことで印刷処理を行う装置である。印字の方式は電子写真方式やインクジェット方式など特に限定されない。排紙時に使用される両面ユニットやステイプル、パンチ処理などのフィニッシング装置も印刷部258に含まれる。なお、本実施形態ではプリンタ105の例として印刷機能のみを行うシングルファンクションプリンタについて説明しているが、スキャナ機能やFAX機能も合わせて持つマルチファンクションプリンタ(複合機)を用いてもよい。
【0021】
次に、
図3を用いて本実施形態のシステムのそれぞれのデバイスにおけるソフトウェア構成について説明する。
【0022】
図3(a)はクライアント端末104のソフトウェア構成を示すブロック図である。メッセージングアプリ341はビジネスチャットなどのネットワークサービスにおいて、ユーザとのインタフェースの役割を果たすソフトウェアアプリケーションである。具体的にはユーザによる操作部247からのメッセージ入力を受け付けてメッセージアプリサーバ101にメッセージを送信したり、ユーザによるファイルのアップロード指示を受け付けてメッセージアプリサーバ101にファイルを送信したりする。また、別のユーザによるメッセージ入力が行われると、メッセージアプリサーバ101からの通知を受けて表示部246にリアルタイムにそのメッセージを表示する。メッセージの種類は一般の文字列や画像に加えて、プリントボットサーバ102などが発信するボタンやコンボボックスなどのUIコントロール(GUI上の部品)であることもある。UIコントロールにおいてユーザが操作を行うと、所定のアクション情報をメッセージアプリサーバ101に送信するのもメッセージングアプリ341の役割である。ファイルストレージ342はクライアント端末104の記憶部244内に用意されたユーザファイル保存用の領域であり、ユーザは不図示の他のアプリケーションで作成したファイルを含む任意のファイルを保存することができる。メッセージングサービス341はファイルストレージ342にアクセスする権限を持つ。
【0023】
図3(b)はメッセージアプリサーバ101のソフトウェア構成を示すブロック図である。メッセージングサービス311はビジネスチャットなどのネットワークサービスを提供するソフトウェアアプリケーションである。ネットワーク106に接続された複数のクライアント端末104やプリントボットサーバ102との情報のやり取りを行う。メッセージングサービス311はユーザ管理を行っており、あらかじめ登録されたユーザやボットに対してのみ情報のやり取りを行う。これにより機密情報などの共有もメッセージングサービス311によって可能になっている。本実施形態ではそれらの登録されたユーザやボットをメンバと呼ぶ。メッセージングサービス311はメンバから受信したメッセージをリアルタイムに他のメンバに送信する。また、受信したファイルをファイルストレージ312に保存し、他のメンバに通知する。前述したアクション情報を受信した際にはあらかじめ登録されたサーバ(例えばプリントボットサーバ102)などにその情報を送信する。ファイルストレージ312はメッセージアプリサーバ101の記憶部214内に用意された領域である。メッセージングサービス311の管理するメンバ情報やメンバから受信した各種メッセージやファイルがファイルストレージ312に保存されており、メッセージングサービス311によって使用される。
【0024】
図3(c)はプリントボットサーバ102のソフトウェア構成を示す図である。ボットサービス321はメッセージアプリサーバ101のメッセージングサービス311からのメッセージなどを受信してその内容に応じた処理を実行する。具体的にはユーザの印刷要求に応じてプリントサーバ103と連携しながらメッセージアプリサーバ101に対してメッセージを送信したり、印刷指示に応じてプリントサーバ103に印刷指示を行ったりする。ファイルストレージ322はプリントボットサーバ102の記憶部224内に用意された領域である。ボットサービス321(プリントボットサーバ102に配置されたソフトウェアプログラム)がメッセージを作成する際に用いる印刷設定やプレビュー画像などが保存されており、ボットサービス321によって使用される。
【0025】
図3(d)はプリントサーバ103のソフトウェア構成を示す図である。プリントサービス331は外部から受信した印刷データを登録済みのプリンタ(例えばプリンタ105)に対して、ネットワーク106経由で送信し実行させるサービスである。ファイルストレージ332はプリントサーバ103の記憶部233内に用意された領域である。ファイルストレージ332にはプリントサービス331に登録済みのユーザ情報、ユーザの保持するプリンタに関する情報、ユーザごとのデフォルト印刷設定、印刷設定のリストなどが保存されており、プリントサービス331によって使用される。
【0026】
次に
図4から
図8、および
図14ならびに
図18を用いて本実施形態におけるアプリやサービスの処理について説明する。
【0027】
図4に示す処理はすべてプリントボットサーバ102の記憶部224に格納されたボットサービス321のプログラムがメモリ223にロードされてCPU222によって実行される。
【0028】
まず、ボットサービス321は、メッセージアプリサーバ101から送信されるイベントを監視する(s401、s402)。イベントには、ファイルのアップロードイベントが含まれる。ボットサービス321は、メッセージアプリサーバ101から送信されるイベントが発生した場合は、イベントを検知し、そのイベントの情報として、イベントメタデータ情報(
図18)を取得する(s403)。ボットサービス321は、発生したイベントがユーザからのメッセージか否かを判断する(s404)。例えば、印刷メタデータの特定のパラメータで判断するという方法がある。例えば、
図18は、イベントメタデータ情報の例を示しており、event_typeというパラメータはイベント種類を示している。この例では、event_typeというパラメータの値が“message”(
図18(a)、1801)であれば、ユーザからのメッセージであることを示している。s404で、ユーザからのメッセージであると判定した場合は、ボットサービス321はボットの提案に対するユーザの応答か否かをメッセージ内容から判定する(s405)。例えば、ボットサービス321は、メッセージ内に「YES/NO」「OK/キャンセル」など肯定/否定を表す単語が含まれている場合は提案への応答と判断し、「印刷して」など特定の単語が含まれている場合はボットへの指示と判断する。s405で、ユーザからのメッセージがボットの提案に対するユーザの応答ではないと判定した場合は、s406に移行する。s406では、ボットサービス321は、複数メンバが会話している「グループ会話の場」であるのか、メンバがボットと1対1で会話している「個別会話の場」であるのかの判定を行う。詳細は
図5にて後述する。s406で、グループ会話の場と判定した場合は、ボットサービス321はグループ会話の場に対応する処理を実行する(s407)。詳細は
図6にて後述する。s406で、個別会話の場であると判定した場合は、ボットサービス321は個別会話の場に対応する処理を実行する(s408)。詳細は
図7にて後述する。s405で、で、ユーザからのメッセージがボットの提案に対する応答であると判定した場合は、ボットサービス321はユーザ応答に対応する処理を実行する(s409)。詳細は
図8にて後述する。一方、s404にて発生したイベントがユーザからのメッセージではないと判定した場合は、そのイベントがユーザによるUI中に配置された“YES”や“NO”等のUIコントロール操作か否かを判定する(s410)。s410で、そのイベントがユーザによるUIコントロール操作ではないと判定した場合は、ボットサービスに関連したイベントではないと判定し、ボットサービスにおけるそのイベントへの処理を終了する。もし、s410にて、そのイベントがユーザによるUIコントロール操作であると判定した場合は、ボットサービス321はボットの提案に対する応答か否かを判定する(s411)。例えば、ボットサービス321は提示したメッセージ内の特定のUIコントロールへの操作がされたか否かで判断する。s411で、ボットの提案に対する応答ではないと判定した場合は、ボットサービスに関連したイベントではないと判定し、ボットサービスにおけるそのイベントへの処理を終了する。s411で、ボットの提案に対する応答であると判定した場合は、ボットサービス321はユーザ応答に対応する処理を実行する(s409)。
【0029】
図5は、会話の場の判定方法の例について示している。
【0030】
図5(a)は、会話の場をイベント発生場所によって判定している例である。
【0031】
図5(a)のフローは、ボットサービス321が発生したイベントをユーザからのメッセージであり、ボットの提案に対する応答ではないと判定した結果、s501が始まる。
【0032】
まず、ボットサービス321は、イベントメタデータ情報からイベント発生場所を示すパラメータを検出する(s501)。次に、ボットサービス321は、抽出したパラメータからイベント発生場所を判定する(s502)。例えば、
図18は、イベントメタデータ情報の例を示しており、room_typeというパラメータはイベント発生場所を示している。ボットサービス321は、このroom_typeを検出して、そのパラメータの値によってグループが参加している場所か、個別のユーザが参加している場所かを判断する(s502)。
図18の例では、room_typeパラメータの値が“group“(
図18(a)、1802)であれば、グループ用のメッセージ交換の場と判定し、その結果、イベント発生場所はメンバが集合して会話するグループ会話の場と判定する(s503)。また、room_typeパラメータの値が“individual“(
図18(b)、1803)であれば、メンバ1人の専用のメッセージ交換の場と判定し、その結果、イベント発生場所が個別会話の場であると判定する(s504)。なお、場とはチャットルームという意味である。また、イベント発生場所のパラメータの値ではなく、実際の会話メンバの人数で、会話の場がグループ会話の場か個別会話の場かを判定することも可能である。
【0033】
図5(b)は、会話の場を会話の人数によって判定している例である。
【0034】
図5(a)のフローも、ボットサービス321が発生したイベントをユーザからのメッセージであると判定した結果、s511が始まる。
【0035】
まず、ボットサービス321は、メッセージアプリサーバから会話履歴を取得する(s511)。次に、ボットサービス321は、会話履歴のデータから会話に参加するユーザ数についてボットを除いてカウントする(s512)。次に、ボットサービス321は、カウントしたボット除くユーザ数がn人以上であるか否かを判定する(s513)。s513でユーザ数がn人以上であれば、ボットサービス321は、グループで会話しているグループ会話の場であると判定する(s514)。s513でユーザ数がn人未満であれば、ボットサービス321は、個別会話の場であると判定する(s514)。上記において、通常はn=2で判断するが、特定の少人数において、印刷用ボットの会話への介入を許す場合は、その特定の少人数に合わせてnを変更する。
【0036】
上述の方法を用いると、会話履歴用のメッセージ交換の場を示す“group”であっても実質的に1人のみで利用している場合や、特定の少人数メンバで利用している場合などで、印刷用ボットによる利便性を向上することが可能となる。
【0037】
図6は、ボットサービス321によるグループ会話の場に対応する処理の例について示している。
【0038】
図6は、グループ会話の場にユーザから明示的な印刷指示があった場合のみ処理を行う例である。
【0039】
図6(a)のフローは、ボットサービス321が会話の場をグループ会話の場であると判定した結果、s601が始まる。
【0040】
まず、ボットサービス321は、ユーザメッセージを解析し、明示的な指示か否かを判定する(s601)。例えば、印刷メタデータの特定のパラメータおよびメッセージ中の用語で判断するという方法がある。例えば、
図18は、イベントメタデータ情報の例を示しており、event_typeというパラメータはイベント種類を示している。この例では、event_typeというパラメータの値が“mention”(
図18(c)、1804)であれば、特定の相手を指名したメッセージであることを示している。さらに、「@Print_Bot、ファイルxxxxを印刷して」(
図14、1401、
図18(c)、1805)のように、印刷用ボットを指名しており、印刷に関する用語が出現するメッセージであれば、明示的な指示と判定する。s601で、明示的な指示と判定した場合は、ボットサービス321は、指示を下したユーザを特定する(s602)。次に、ボットサービス321は,特定したユーザを指名して、指示の確認のための提案(例、チャットルームへのメッセージの書き込み)を実施する(s603)。
【0041】
【0042】
例えば、ボットサービス321は,プリントサーバ103に対して、特定したユーザが実在するか否かのユーザ認証の問い合わせを行う(s611)。次に、ボットサービス321は,プリントサーバ103からの応答に対して、ユーザ認証の判定を行う(s612)。s612にて、ユーザ認証に成功と判定した場合は、ボットサービス321は,プリントサーバ103から、ユーザに応じた印刷環境情報を取得する(s615)。例えば、印刷環境情報の例として、プリンタのID、プリンタの種類、デフォルトの印刷設定などがある。次に、ボットサービス321は,ユーザに対し、印刷実行を確認する旨のメッセージを生成する(s616)。例えば、「@ユーザCさん ファイルxxxxをプリンタABCに印刷します。よろしいですか?」のようなメッセージを生成する(
図14、1402)。またこの時、グループ会話中に余計なメッセージが増加しないよう、ボットサービス321は,ユーザ応答用のUIコントロールを作成する(s617)。例えば、「YES」「NO」のようなボタンをUIコントロールとして作成する(
図14、1403)。次に、ボットサービス321は,生成したメッセージとUIコントロールを合成して、メッセージアプリサーバ101に送信する(s618)。一方、s612にて、ユーザ認証に失敗と判定した場合は、ボットサービス321は,ユーザ認証に失敗した旨のメッセージを生成する(s613)。例えば、「ユーザ認証に失敗しました」のようなメッセージを生成する。そして、ボットサービス321は,生成したメッセージをメッセージアプリサーバ101に送信する(s614)。
【0043】
図7は、ボットサービス321による個別会話の場に対応する処理の例について示している。
【0044】
図7は、ボットサービス321が会話の場を個別会話の場であると判定した結果、個別会話の場にユーザからファイルが提示(アップロード)されたことに反応して(すなわち、アップロードされたことを検知して)、ボットサービス321が提案を行う例である。
【0045】
図7(a)のフローは、ボットサービス321がファイルのアップロードがされたことを検知したうえで、会話の場を個別会話の場であると判定し、さらにボットの提案に対する応答ではない場合と判定した結果、s701が始まる。
【0046】
まず、ボットサービス321は、印刷用ボットの個別会話の相手であるユーザを特定する(s701)。次に、ボットサービス321は、会話のメッセージ中にファイルが提示(アップロード)されているか否かを判定する(s702)。もし、メッセージ中にファイルが提示されている場合は、ボットサービス321は、そのファイルを対象とした印刷を提案する(s703)。例えば、「ファイルooooをプリンタABCに印刷しましょうか?」のようなメッセージを生成し、メッセージアプリサーバ102に送信する(
図14、1404)。これにより、メッセージがチャットルームのページに書き込まれることになる。
図7(b)に、具体的な提案実施のフローを示す。ただし、
図7(b)は、
図6(b)のs615以外は同じであるため説明を省略する。
図7(b)にs615が無いのは、個別会話の場であるが故に、他のユーザを気にすることが不要なため、ユーザはコマンドではなくメッセージによって「YES」「NO」の応答が可能であることを示すためである。もちろん、
図6(b)と同様に、メッセージ中に応答用コマンドを合成することも可能である。
【0047】
図8は、ボットサービス321によるユーザからの応答に対する処理の例について示している。
【0048】
図8は、ユーザからの応答に対して、ボットサービス321がプリントサーバ103に印刷指示とファイルを送信する例である。
【0049】
図8のフローは、ボットサービス321が、発生しているイベントを、メッセージもしくはUIコントロール操作によるユーザからの応答であると判定した結果、s801が始まる。まず、ボットサービス321は、ユーザ応答の種類が、肯定か否定かを判定する(s801)。
【0050】
例えば、ユーザがメッセージで「YES」と返答した場合や、「YES」というUIコントロールボタンを押下したような場合は肯定と判断する。また、ユーザがメッセージで「NO」と返答した場合や、「NO」というUIコントロールボタンを押下したような場合は否定と判断する。s801にて、肯定と判定した場合は、ボットサービス321は、プリントサーバ103に対してユーザの認証が実施済みであるかどうかを判定する。s802にて、すでに認証済みと判定した場合は、ボットサービス321は、メッセージアプリサーバ101から印刷対象のファイルを取得する(s803)。次に、ボットサービス321は、印刷指示と前述で取得したファイルをプリントサーバ103に送信する(s804)。一方、s801にて、否定と判定した場合は、ボットサービス321は、何もしない。また、s802にて、ユーザ認証が未実施と判定された場合は、プリントサーバ103に対してユーザ認証を実施する。なお、S805からs808の処理は、
図7のs711からS714の処理と同じであるため説明を省略する。
【0051】
以上のように、ボットサービス321が、グループ会話の場であるのか個別会話の場であるのかを判断し、それぞれの場に応じて適応的にメッセージの発信を制御することにより、ボットによるユーザ間の会話への不要な介入を防止することができる。また、ボットサービス321が、会話への介入を抑制中でも印刷指示を待っているため、印刷指示があればすぐに印刷の実行が可能となり利便性の低下を防ぐことができる。
【0052】
<実施形態2>
実施形態1では、会話の場の種類に応じて印刷用ボットの会話への介入を抑制する例について説明した。
【0053】
本実施形態では、さらに、個別会話の場であっても、印刷用ボットからの提案に対するユーザの反応に応じて印刷用ボットのアクションを切り替える方法について説明する。
【0054】
本実施形態に係る具体的な処理について、
図9を用いて説明する。
【0055】
なお、ここでは実施形態1との違いについてのみ説明する。システム構成、ハードウェア/ソフトウェア構成、それぞれの処理フローについては一部を除き実施形態1と同じであるため説明を省略する。
【0056】
図9は、個別会話の場において、前回のボットサービス321からの提案に対するユーザからの反応が無かった場合に、ボットサービス321が提案を抑制する例である。
【0057】
図9のフローは、ボットサービス321が会話の場を個別会話の場であると判定し、さらにボットの提案に対する応答ではない場合と判定した結果、s901が始まる。
【0058】
s901からs902までの処理は、
図7のs701からs702までの処理と同じであるため説明を省略する。
【0059】
s902にて、メッセージ中にファイルが提示されていると判定した場合は、ボットサービス321は、前回の印刷用ボットからの提案に対し、ユーザからの応答があったのか、あるいは無視されていたのかを判定する(s903)。s903にて、前回提案時に応答があったのであれば、ボットサービス321は、今回もユーザに対して印刷を提案する(s904)。この時のユーザに印刷を提案する詳細な処理は、
図7(b)と同じであるため説明を省略する。一方、s903にて、前回の印刷用ボットからの提案に対し、ユーザからの応答が無かったのであれば、ボットサービス321は、ユーザメッセージを解析し、明示的な指示か否かを判定する(s905)。これは
図6のs601の処理と同じであるため説明を省略する。次に、s905にて、明示的指示であると判定した場合は、ボットサービス321は、ユーザに対して印刷実行の確認のための提案を実行する(s904)。
【0060】
この時の、ユーザに印刷実行の確認の提案をする詳細な処理は、
図6(b)と同じであるため説明を省略する。一方、s905にて、明示的指示でないと判定した場合は、ボットサービス321は、なにも提案はしない。
【0061】
以上、本実施形態によれば、ボットサービス321は、個別会話の場において、前回のボットサービス321からの提案に対するユーザからの反応が無かった場合に、自動的に明示的指示を待つようになり、ボットサービス321からの提案を抑制する。そのため、ユーザの都合に合わせて、ボットからの提案を抑制することが可能となる。
【0062】
<実施形態3>
実施形態2では、個別会話の場であっても、印刷用ボットからの提案に対するユーザの反応に応じて印刷用ボットのアクションを切り替える方法について説明した。
【0063】
本実施形態では、印刷用ボットからの提案に「待機」の選択肢を提示し、ユーザからの指示待ちに切り替える方法について説明する。
【0064】
【0065】
なお、ここでは実施形態1および2との違いについてのみ説明する。システム構成、ハードウェア/ソフトウェア構成、それぞれの処理フローについては一部を除き実施形態1と同じであるため説明を省略する。
【0066】
図10は、個別会話の場において、ボットサービス321からの提案に「待機」の選択肢を用意し、ユーザが待機を選択した場合は、明示的な指示があるまでボットサービス321が提案を抑制する例である。
【0067】
図10(a)のフローは、ボットサービス321が会話の場を個別会話の場であると判定し、さらにボットの提案に対する応答ではない場合と判定した結果、s1001が始まる。s1001からs1002までの処理は、
図7のs701からs702までの処理と同じであるため説明を省略する。
【0068】
s1002にて、メッセージ中にファイルが提示されていると判定した場合は、ボットサービス321は、待機フラグのON/OFFを判定する(s1003)。ここで、待機フラグがONの場合は、ボットサービス321が提案の応答案に用意した「待機」の選択肢を、ユーザが選択していると判断する。また、待機フラグがOFFの場合は、ボットサービス321が提案の応答案に用意した「待機」の選択肢を、ユーザが選択していないと判断する。s1003にて、待機フラグがOFFの場合は、ボットサービス321はユーザに対して印刷を提案する(s1004)。この時のユーザに印刷を提案する詳細な処理は、
図6(b)と同じであるため説明を省略する。ただし、この時、ボットサービス321はユーザ応答用のUIコントロールとして、例えば、「YES」「NO」「待機」のようなボタンをUIコントロールとして作成する(s617)。
【0069】
図10(b)は、ボットサービス321がユーザに対して印刷を提案する詳細な処理を示している。
【0070】
この時のs1011からs1016までの処理は、
図7(b)のs701からs706までの処理と同じであるため説明を省略する。s1016にて、ボットサービス321が、ユーザに印刷を提案する旨のメッセージを作成後、ボットサービス321は、ユーザ応答用のUIコントロールを生成する(s1017)。この時、「YES」「NO」のような通常の肯定、否定のUIコントロールと共に、「待機」のUIコントロールも付加する(
図15、1501)。ボットサービス321は,生成したメッセージとUIコントロールを合成して、メッセージアプリサーバ101に送信する(s1018)。一方、s1003にて、待機フラグがONの場合は、ボットサービス321はユーザからの明示的指示であるか否かを判定する(s1005)。これは
図6のs601の処理と同じであるため説明を省略する。S1005にて、明示的指示でないと判定した場合は、ボットサービス321は、なにも提案はしない。また、s1005にて、明示的指示であると判定した場合は、ボットサービス321は、ユーザに対して印刷実行の確認のための提案を実行する(s1004)。
【0071】
図10(c)は、ボットサービス321がユーザに対して印刷実行の確認の提案する詳細な処理を示している。
【0072】
この時のs1021からs1028までの処理は、
図6(b)のs611からs618までの処理と同じであるため説明を省略する。
【0073】
s1028にて、生成したメッセージとUIコントロールを合成して、メッセージアプリサーバ101に送信した後、ボットサービス321は、待機フラグをOFFにリセットする(s1029)。
【0074】
図11は、ユーザからの応答に対するボットサービス321の処理の例について示している。
【0075】
図11は、ボットサービス321の提案に、「YES」「NO」のような通常の肯定、否定のUIコントロールと共に、「待機」のUIコントロールも付加された場合の処理の例である。
【0076】
図11のフローは、ボットサービス321が、発生しているイベントを、メッセージもしくはUIコントロール操作によるユーザからの応答であると判定した結果、s1101が始まる。
図11のs1101からs1108までは
図8のs801からs808までの処理と同じであるため説明を省略する。
【0077】
s1101にて、ユーザの応答の種類が待機であると判定した場合に、ボットサービス321は待機フラグをONにする。
【0078】
以上、本実施形態によれば、ボットサービス321は、印刷用ボットからの提案に「待機」の選択肢を提示し、ユーザからの指示待ちに切り替えることで、明示的指示を待つようになり、ボットサービス321からの提案を抑制する。
【0079】
そのため、ユーザの都合に合わせて、ボットからの提案を抑制することが可能となる。
【0080】
<実施形態4>
実施形態1では、会話の場の種類に応じて印刷用ボットの会話への介入を抑制する例について説明した。
【0081】
本実施形態では、さらに、グループ会話の場であっても、特定のファイル名のファイルが提示された場合に、例外として印刷用ボットがユーザに提案をおこなう方法について説明する。
【0082】
本実施形態に係る具体的な処理について、
図12および
図16を用いて説明する。
【0083】
なお、ここでは実施形態1との違いについてのみ説明する。システム構成、ハードウェア/ソフトウェア構成、それぞれの処理フローについては一部を除き実施形態1と同じであるため説明を省略する。
【0084】
図12は、ボットサービス321によるグループ会話の場に対応する処理の例について示している。
【0085】
図12は、グループ会話の場にユーザから明示的な印刷指示があった場合だけでなく、特定のキーワードと一致するファイルが提示された場合においても処理を行う例である。
【0086】
図12のフローは、ボットサービス321が会話の場をグループ会話の場であると判定した結果、s1201が始まる。
【0087】
s1201からs1203までの処理は、
図6(a)のs601からs603までの処理と同じであるため説明を省略する。
【0088】
S1201にて、明示的指示では無いと判定した場合に、ボットサービス321は、メッセージ内で提示(アップロード)されたファイル名が、あらかじめ指定されている特定のキーワードと一致するか否かの判定を行う(s1204)。S1204にて、メッセージ内で提示されたファイル名が、特定のキーワードと一致する場合は、ユーザに対して印刷を提案する(s1203)。この時のユーザに印刷を提案する詳細な処理は、
図7(b)と同じであるため説明を省略する。
図16は、本実施形態のUIの例を示しており、「請求書」というキーワードが指定されている場合の例である。1601のメッセージではファイル名に対してキーワードが不一致のため、この時ボットサービス321は提案をしていない。しかし、1602のメッセージに含まれているファイル名においてキーワードが一致したため、1603のようにボットサービス321が印刷を提案している。一方、S1204にて、ファイル名がキーワードと不一致の場合は、ボットサービス321は、何も提案しない。
【0089】
以上、本実施形態によれば、ボットサービス321は、グループ会話の場でボットからの提案を抑制している状態でも、特定のファイルに対しては印刷用ボットから提案をすることで、重要なファイルの見逃しを回避することが可能となる。
【0090】
<実施形態5>
実施形態1では、会話の場の種類に応じて印刷用ボットの会話への介入を抑制する例について説明した。
【0091】
本実施形態では、さらに、グループ会話の場であっても、特定の時間/曜日/日付の場合に、例外として印刷用ボットがユーザに提案をおこなう方法について説明する。
【0092】
本実施形態に係る具体的な処理について、
図13および
図17を用いて説明する。
【0093】
なお、ここでは実施形態1との違いについてのみ説明する。システム構成、ハードウェア/ソフトウェア構成、それぞれの処理フローについては一部を除き実施形態1と同じであるため説明を省略する。
【0094】
図13は、ボットサービス321によるグループ会話の場に対応する処理の例について示している。
【0095】
図13は、グループ会話の場にユーザから明示的な印刷指示があった場合だけでなく、特定の曜日の場合においても処理を行う例である。
【0096】
図13のフローは、ボットサービス321が会話の場をグループ会話の場であると判定した結果、s1301が始まる。
【0097】
s1301からs1303までの処理は、
図6(a)のs601からs603までの処理と同じであるため説明を省略する。
【0098】
S1301にて、明示的指示では無いと判定した場合に、ボットサービス321は、メッセージを受信した曜日をサーバの制御部103から取得し、あらかじめ指定されている特定の曜日と一致するか否かの判定を行う(s1304)。S1304にて、曜日が不一致の場合は、ボットサービス321は、何も提案しない(
図17(a))。S1304にて、メッセージを受信した現在時点の曜日が、特定の曜日と一致する場合は、ユーザに対して印刷を提案する(s1303)(
図17(b)、1701)。この時のユーザに印刷を提案する詳細な処理は、
図7(b)と同じであるため説明を省略する。
【0099】
本例では、曜日の例を示したが、時間や日付であっても同様に可能である。
【0100】
以上、本実施形態によれば、ボットサービス321は、グループ会話の場でボットからの提案を抑制している状態でも、特定の時間/曜日/日付においては印刷用ボットから提案をすることで、ユーザの都合にあわせて利便性を向上することが可能となる。
【0101】
また、本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0102】
101 メッセージアプリサーバ
102 プリントボットサーバ
103 プリントサーバ
104 クライアント端末
105 プリンタ
311 メッセージングサービス
321 ボットサービス
331 プリントサービス