(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
G06F 3/0484 20220101AFI20241217BHJP
H04L 51/04 20220101ALI20241217BHJP
【FI】
G06F3/0484
H04L51/04
(21)【出願番号】P 2020213559
(22)【出願日】2020-12-23
【審査請求日】2023-11-20
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】ラフル プガレンディ
【審査官】井上 香緒梨
(56)【参考文献】
【文献】特開平07-244637(JP,A)
【文献】特開2015-153117(JP,A)
【文献】特開2014-102815(JP,A)
【文献】米国特許出願公開第2019/0306341(US,A1)
【文献】特開2018-128843(JP,A)
【文献】特開2020-142381(JP,A)
【文献】特開2020-052582(JP,A)
【文献】特開2005-050256(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/01
G06F3/048-3/04895
H04L51/00-51/58
(57)【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
複数のユーザの間で通信手段により通信されるメッセージを取得し、
前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行し、
前記対象に対して前記処理が行われた旨を表示するように制御し、
前記プロセッサは、一の対象に対する前記処理の候補として複数の処理候補がある場合に、当該一の対象に対して、当該複数の処理候補を選択可能に表示し、
前記プロセッサは、前記複数のユーザのうちの特定のユーザが入力した前記メッセージで対象及び処理の少なくとも1つの情報が言及されていない場合に、当該少なくとも1つの情報を指定するように当該特定のユーザに促す
ことを特徴とする情報処理装置。
【請求項2】
プロセッサを備え、
前記プロセッサは、
複数のユーザの間で通信手段により通信されるメッセージを取得し、
前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行し、
前記対象に対して前記処理が行われた旨を表示するように制御し、
前記プロセッサは、一の対象に対する前記処理の候補として複数の処理候補がある場合に、当該一の対象に対して、当該複数の処理候補を選択可能に表示し、
前記プロセッサは、前記メッセージで言及された前記対象に対して、当該メッセージで言及された前記処理が実行されなかった場合に、ユーザより指示を受け付けた際に、当該対象に対して当該処理を再実行する
ことを特徴とする情報処理装置。
【請求項3】
前記プロセッサは、前記複数のユーザのうちの特定のユーザが入力した前記メッセージで言及された対象に対して、当該メッセージで言及された処理が実行されなかった場合に、当該対象に対して当該処理の再実行の指示を当該特定のユーザに許可することを特徴とする
請求項2に記載の情報処理装置。
【請求項4】
プロセッサを備え、
前記プロセッサは、
複数のユーザの間で通信手段により通信されるメッセージを取得し、
前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行し、
前記対象に対して前記処理が行われた旨を表示するように制御し、
前記プロセッサは、前記メッセージで言及された前記対象に対して、当該メッセージで言及された前記処理が実行されなかった場合に、ユーザより指示を受け付けた際に、当該対象に対して当該処理を再実行し、
前記プロセッサは、前記複数のユーザのうちの特定のユーザが入力した前記メッセージで言及された対象に対して、当該メッセージで言及された処理が実行されなかった場合に、当該対象に対して当該処理の再実行の指示を当該特定のユーザ以外のユーザに禁止することを特徴とする情報処理装置。
【請求項5】
プロセッサを備え、
前記プロセッサは、
複数のユーザの間で通信手段により通信されるメッセージを取得し、
前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行し、
前記対象に対して前記処理が行われた旨を表示するように制御し、
前記プロセッサは、実行された前記処理の履歴を、前記メッセージを表示している画面と同一の画面上に表示するように制御し、
前記プロセッサは、
前記履歴上で、ユーザから特定の処理の指定を受け付け、
前記特定の処理以降に前記ユーザの指示により実行された処理を取り消す
ことを特徴とする情報処理装置。
【請求項6】
コンピュータに、
複数のユーザの間で通信手段により通信されるメッセージを取得する機能と、
前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行する機能と、
前記対象に対して前記処理が行われた旨を表示するように制御する機能と
を実現させ、
前記コンピュータに、一の対象に対する前記処理の候補として複数の処理候補がある場合に、当該一の対象に対して、当該複数の処理候補を選択可能に表示する機能を実現させ、
前記コンピュータに、前記複数のユーザのうちの特定のユーザが入力した前記メッセージで対象及び処理の少なくとも1つの情報が言及されていない場合に、当該少なくとも1つの情報を指定するように当該特定のユーザに促す機能を実現させるためのプログラム。
【請求項7】
コンピュータに、
複数のユーザの間で通信手段により通信されるメッセージを取得する機能と、
前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行する機能と、
前記対象に対して前記処理が行われた旨を表示するように制御する機能と
を実現させ、
前記コンピュータに、一の対象に対する前記処理の候補として複数の処理候補がある場合に、当該一の対象に対して、当該複数の処理候補を選択可能に表示する機能を実現させ、
前記コンピュータに、前記メッセージで言及された前記対象に対して、当該メッセージで言及された前記処理が実行されなかった場合に、ユーザより指示を受け付けた際に、当該対象に対して当該処理を再実行する機能を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、ユーザが、メッセージ及び添付ドキュメントを、メッセージの件名又は本文に自然言語命令を付けて、又はスクリプトとして、コンピュータベースのシステムに送信し、ユーザ認証後、メッセージの件名及び本文が解釈され、実行されるドキュメント処理アクティビティが識別され、識別されたドキュメント処理アクティビティを使用して、添付又は参照されたドキュメントは、ドキュメント処理サーバによる命令に従って処理される、文書処理のためのシステム及び方法が記載されている。
【0003】
特許文献2には、自然言語で表現され、1つ又は複数のサーバによって受信されたテキスト又は音声メッセージを多機能プリンタのユーザのモバイルデバイスから受信し、受信したテキスト又は音声メッセージのテキストデータ又はオーディオデータを抽出し、受信したテキスト又は音声メッセージの抽出されたテキストデータ又はオーディオデータを1つ又は複数のサーバに転送し、1つ又は複数のサーバから、1つ又は複数のサーバによるテキストデータ又はオーディオデータの処理に基づくテキスト又は音声メッセージに関連する1つ又は複数のエンティティ又はインテントを受信し、エンティティ又はインテントを処理して、多機能プリンタのユーザのモバイルデバイスからのテキスト又は音声メッセージに関連する1つ又は複数の機能を決定し、決定された1つ又は複数の機能を実行することによって、多機能プリンタの機能を制御する、多機能プリンタのプリント及びスキャン機能にアクセスするための方法及びシステムが記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許公開2015/0256493号公報
【文献】米国特許10686951号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数のユーザの間で通信手段により通信されるメッセージにおいて、ある対象に対してある処理を実行することに言及される場合がある。この場合、その対象に対してその処理を実行するためには、ユーザは、通信手段によるメッセージの通信とは別に、その対象に対してその処理を実行する必要がある。
【0006】
本発明の目的は、複数のユーザの間で通信手段により通信されるメッセージにおいて、ある対象に対してある処理を実行することが言及された際に、通信手段によるメッセージの通信とは別に、ユーザがその対象に対してその処理を実行する場合に比して、ユーザが行うべき操作の手間を削減することにある。
【課題を解決するための手段】
【0007】
請求項1に記載の発明は、プロセッサを備え、前記プロセッサは、複数のユーザの間で通信手段により通信されるメッセージを取得し、前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行し、前記対象に対して前記処理が行われた旨を表示するように制御し、前記プロセッサは、一の対象に対する前記処理の候補として複数の処理候補がある場合に、当該一の対象に対して、当該複数の処理候補を選択可能に表示し、前記プロセッサは、前記複数のユーザのうちの特定のユーザが入力した前記メッセージで対象及び処理の少なくとも1つの情報が言及されていない場合に、当該少なくとも1つの情報を指定するように当該特定のユーザに促すことを特徴とする情報処理装置である。
請求項2に記載の発明は、プロセッサを備え、前記プロセッサは、複数のユーザの間で通信手段により通信されるメッセージを取得し、前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行し、前記対象に対して前記処理が行われた旨を表示するように制御し、前記プロセッサは、一の対象に対する前記処理の候補として複数の処理候補がある場合に、当該一の対象に対して、当該複数の処理候補を選択可能に表示し、前記プロセッサは、前記メッセージで言及された前記対象に対して、当該メッセージで言及された前記処理が実行されなかった場合に、ユーザより指示を受け付けた際に、当該対象に対して当該処理を再実行することを特徴とする情報処理装置である。
請求項3に記載の発明は、前記プロセッサは、前記複数のユーザのうちの特定のユーザが入力した前記メッセージで言及された対象に対して、当該メッセージで言及された処理が実行されなかった場合に、当該対象に対して当該処理の再実行の指示を当該特定のユーザに許可することを特徴とする請求項2に記載の情報処理装置である。
請求項4に記載の発明は、プロセッサを備え、前記プロセッサは、複数のユーザの間で通信手段により通信されるメッセージを取得し、前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行し、前記対象に対して前記処理が行われた旨を表示するように制御し、前記プロセッサは、前記メッセージで言及された前記対象に対して、当該メッセージで言及された前記処理が実行されなかった場合に、ユーザより指示を受け付けた際に、当該対象に対して当該処理を再実行し、前記プロセッサは、前記複数のユーザのうちの特定のユーザが入力した前記メッセージで言及された対象に対して、当該メッセージで言及された処理が実行されなかった場合に、当該対象に対して当該処理の再実行の指示を当該特定のユーザ以外のユーザに禁止することを特徴とする情報処理装置である。
請求項5に記載の発明は、プロセッサを備え、前記プロセッサは、複数のユーザの間で通信手段により通信されるメッセージを取得し、前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行し、前記対象に対して前記処理が行われた旨を表示するように制御し、前記プロセッサは、実行された前記処理の履歴を、前記メッセージを表示している画面と同一の画面上に表示するように制御し、前記プロセッサは、前記履歴上で、ユーザから特定の処理の指定を受け付け、前記特定の処理以降に前記ユーザの指示により実行された処理を取り消すことを特徴とする情報処理装置である。
請求項6に記載の発明は、コンピュータに、複数のユーザの間で通信手段により通信されるメッセージを取得する機能と、前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行する機能と、前記対象に対して前記処理が行われた旨を表示するように制御する機能とを実現させ、前記コンピュータに、一の対象に対する前記処理の候補として複数の処理候補がある場合に、当該一の対象に対して、当該複数の処理候補を選択可能に表示する機能を実現させ、前記コンピュータに、前記複数のユーザのうちの特定のユーザが入力した前記メッセージで対象及び処理の少なくとも1つの情報が言及されていない場合に、当該少なくとも1つの情報を指定するように当該特定のユーザに促す機能を実現させるためのプログラムである。
請求項7に記載の発明は、コンピュータに、複数のユーザの間で通信手段により通信されるメッセージを取得する機能と、前記メッセージで言及された対象に対して、当該メッセージで言及された処理を実行する機能と、前記対象に対して前記処理が行われた旨を表示するように制御する機能とを実現させ、前記コンピュータに、一の対象に対する前記処理の候補として複数の処理候補がある場合に、当該一の対象に対して、当該複数の処理候補を選択可能に表示する機能を実現させ、前記コンピュータに、前記メッセージで言及された前記対象に対して、当該メッセージで言及された前記処理が実行されなかった場合に、ユーザより指示を受け付けた際に、当該対象に対して当該処理を再実行する機能を実現させるためのプログラムである。
【発明の効果】
【0008】
請求項1の発明によれば、ユーザが入力したメッセージで対象及び処理の少なくとも1つの情報が言及されていない場合に、ユーザにそのことを知らせることができる。
請求項2の発明によれば、対象に対して処理が実行されなかった場合に、その対象に対してその処理を再実行可能とすることができる。
請求項3の発明によれば、ユーザが対象に対して処理を実行することに言及したが実行されなかった場合に、そのユーザがその対象に対してその処理の再実行を指示可能とすることができる。
請求項4の発明によれば、ユーザが対象に対して処理を実行することに言及したが実行されなかった場合に、そのユーザ以外のユーザがその対象に対してその処理の再実行を指示不可能とすることができる。
請求項5の発明によれば、ユーザが処理の履歴を確認しながら行う処理の指定により、その処理以降に実行された処理を取り消すことができる。
請求項6の発明によれば、ユーザが入力したメッセージで対象及び処理の少なくとも1つの情報が言及されていない場合に、ユーザにそのことを知らせることができる。
請求項7の発明によれば、対象に対して処理が実行されなかった場合に、その対象に対してその処理を再実行可能とすることができる。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施の形態が適用されるコンピュータシステムの全体構成例を示した図である。
【
図2】本発明の実施の形態におけるサーバのハードウェア構成例を示した図である。
【
図3】本発明の実施の形態におけるクライアントに第1のシナリオで表示される画面の例を示した図である。
【
図4】本発明の実施の形態におけるクライアントに第1のシナリオで表示される画面の例を示した図である。
【
図5】本発明の実施の形態におけるクライアントに第1のシナリオで表示される画面の例を示した図である。
【
図6】本発明の実施の形態におけるクライアントに第2のシナリオで表示される画面の例を示した図である。
【
図7】本発明の実施の形態におけるクライアントに第2のシナリオで表示される画面の例を示した図である。
【
図8】本発明の実施の形態におけるクライアントに第2のシナリオで表示される画面の例を示した図である。
【
図9】本発明の実施の形態におけるクライアントに第2のシナリオで表示される画面の例を示した図である。
【
図10】本発明の実施の形態におけるクライアントに第3のシナリオで表示される画面の例を示した図である。
【
図11】本発明の実施の形態におけるクライアントに第3のシナリオで表示される画面の例を示した図である。
【
図12】本発明の実施の形態におけるサーバの機能構成例を示したブロック図である。
【
図13】本発明の実施の形態におけるサーバの動作例を示したフローチャートである。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【0011】
[コンピュータシステムの全体構成]
図1は、本実施の形態が適用されるコンピュータシステム1の全体構成例を示した図である。図示するように、このコンピュータシステム1は、クライアント10a~10cと、サーバ30とが、通信回線80を介して接続されることにより構成されている。尚、図では、クライアント10a~10cを示したが、これらを区別する必要がない場合は、クライアント10と称することもある。また、図には、3つのクライアント10しか示していないが、4つ以上のクライアント10を設けてもよい。
【0012】
クライアント10は、コンピュータシステム1を利用するユーザにより使用されるコンピュータである。クライアント10には、コンピュータシステム1が提供するサービスを利用するためのアプリケーションがインストールされ、例えばユーザの起動操作により動作するようになっている。クライアント10としては、例えば、パーソナルコンピュータ、タブレット端末、スマートフォン等を用いるとよい。
【0013】
サーバ30は、ユーザの操作によりクライアント10から送られた要求に応じて、ユーザに対しクライアント10を通じてサービスを提供するコンピュータである。サーバ30としては、例えば、汎用のパーソナルコンピュータを用いるとよい。本実施の形態では、情報処理装置の一例として、サーバ30を設けている。
【0014】
通信回線80は、クライアント10とサーバ30との間の情報通信に用いられる回線である。通信回線80としては、例えば、インターネットを用いるとよい。
【0015】
[サーバのハードウェア構成]
図2は、本実施の形態におけるサーバ30のハードウェア構成例を示した図である。図示するように、サーバ30は、プロセッサ31と、メインメモリ32と、HDD(Hard Disk Drive)33とを備える。ここで、プロセッサ31は、OS(Operating System)やアプリケーション等の各種ソフトウェアを実行し、後述する各機能を実現する。また、メインメモリ32は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、HDD33は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。更に、サーバ30は、外部との通信を行うための通信I/F(以下、「I/F」と表記する)34と、ディスプレイ等の表示デバイス35と、キーボードやマウス等の入力デバイス36とを備える。
【0016】
また、
図2に示したハードウェア構成は、クライアント10のハードウェア構成としても捉えられる。但し、クライアント10について述べるときは、
図2のプロセッサ31、メインメモリ32、HDD33、通信I/F34、表示デバイス35、入力デバイス36をそれぞれ、プロセッサ11、メインメモリ12、HDD13、通信I/F14、表示デバイス15、入力デバイス16と表記するものとする。
【0017】
[本実施の形態の概要]
本実施の形態では、サーバ30が、複数のユーザの間で通信手段により通信されるメッセージを取得し、メッセージで言及された対象に対して、メッセージで言及された処理を実行し、対象に対して処理が行われた旨を表示するように制御する。
【0018】
ここで、通信手段は、複数のユーザの間でメッセージを通信するための手段であれば、如何なる手段であってもよい。また、メッセージは、複数のユーザの間で通信されるメッセージであれば、如何なるものであってもよい。通信手段にはチャット、電子メール、電話等があり、メッセージにはこれらの通信手段で通信されるものがあるが、以下では、通信手段としてチャットを例にとり、メッセージとしてチャットのメッセージを例にとって説明する。但し、以下では、「チャットのメッセージ」を単に「メッセージ」ともいうものとする。
【0019】
対象は、処理が行われる対象であれば、如何なるものであってもよい。対象には、文書データ、画像データ等があるが、以下では、文書データ(以下、単に「文書」という)を例にとって説明する。
【0020】
処理は、対象に対して行われる処理であれば、如何なるものであってもよい。処理には、文書にスタンプを押下する処理(「サインする処理」ともいう)、文書を宛先に送付する処理等がある。
【0021】
言及とは、メッセージで明示的か暗示的かに関わらず話題にすることをいう。即ち、言及は、メッセージで明示的に指定することだけでなく、メッセージで曖昧に述べることも含む。メッセージで曖昧に述べるとは、メッセージで明示的に指定しないが、メッセージの文脈から分かるような形で述べることである。「No.123申請」に対する承認を依頼する場合、メッセージで明示的に指定するとは、例えば「No.123申請の承認をお願いします」と述べることであり、メッセージで曖昧に述べるとは、例えば「先日申し上げた申請の承認をお願いします」と述べることである。また、言及とは、何らかの処理を他のユーザに依頼することだけでなく、自身が何らかの処理を実行することを他のユーザに知らせることも含む。後者の例としては、「写真をコピーにして皆に渡します」といったものが考えられる。
【0022】
また、本実施の形態では、サーバ30が、処理の候補として複数の処理候補がある場合に、対象に対して、複数の処理候補から選択された一の処理候補を実行する。ここで、複数の処理候補は、処理自体が異なるものでもよい。この場合、複数の処理候補とは、例えば、文書に指定されたスタンプを押下する処理、文書を指定された宛先に送付する処理等の複数の処理である。また、複数の処理候補は、各処理候補が複数のデータのうちの各処理候補に対応するデータを用いて処理を行うものでもよい。即ち、複数の処理候補は、処理自体は同じで、処理で用いるデータが異なるものでもよい。この場合、複数の処理候補とは、例えば、文書にスタンプを押下する処理において、異なるスタンプを用いる複数の処理である。或いは、複数の処理候補とは、例えば、文書を宛先に送付する処理において、異なる宛先を用いる複数の処理であってもよい。尚、スタンプや宛先は、処理で用いるデータの一例である。
【0023】
更に、本実施の形態では、サーバ30が、対象の候補として複数の対象候補がある場合に、複数の対象候補から選択された一の対象候補に対して、処理を実行する。ここで、複数の対象候補とは、対象が文書である場合、複数の文書であってよい。或いは、複数の対象候補とは、対象が文書である場合、1つの文書の複数のページや、1つの文書の複数の箇所であってもよい。但し、以下では、複数の文書を例にとって説明する。
【0024】
[本実施の形態の具体例]
図3乃至
図11は、本実施の形態におけるクライアント10に表示される画面100の例を示した図である。これらの図に示すように、画面100は、チャット表示欄500と、処理履歴表示欄600と、処理画像表示欄700とを含む。
【0025】
チャット表示欄500は、複数のユーザの間又はサーバ30とユーザとの間で通信されるチャットのメッセージ等を表示する欄である。
【0026】
処理履歴表示欄600は、サーバ30が行った処理の履歴である処理履歴を表示する欄である。サーバ30が行った処理が、クライアント10を使用するユーザが指示した処理であれば、処理履歴表示欄600には、「あなた」を主語として処理履歴が表示される。また、サーバ30が行った処理が、クライアント10を使用するユーザ以外の他のユーザが指示した処理であれば、処理履歴表示欄600には、他のユーザの名前を主語として処理履歴が表示される。
【0027】
処理画像表示欄700は、サーバ30が行った処理を表す画像である処理画像を表示する欄である。処理画像表示欄700には、文書を表すアイコンが表示されると共に、そのアイコンに関連付けて、その文書に対する処理内容を表すアイコンが表示される。
【0028】
まず、第1のシナリオで表示される画面100について説明する。第1のシナリオは、アリスが文書にスタンプを押下し、その文書に対するスタンプの押下をボブに依頼する場面を想定したシナリオである。
【0029】
図3には、アリスが「Doc1」にスタンプを押下してボブに対し「Doc1」にスタンプを押下することを依頼した際にボブのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、アリスの「ボブ、今Doc1にサインしています。あなたもそれにサインしてくれますか。」というメッセージ511が表示されている。また、処理履歴表示欄600には、「アリスがDoc1にサインした。」という処理履歴611が表示されている。ここで、処理履歴611は、ボブが指示した処理の履歴ではないので、グレイアウトされて表示されている。更に、処理画像表示欄700には、「Doc1」にアリスのスタンプが押下されたことが、「Doc1」のアイコン711にアリスのスタンプのアイコン713を重ねて表示することで示されている。
【0030】
図4には、ボブがアリスの依頼に応答して「Doc1」にスタンプを押下する際にボブのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、ボブの「いいですよ。今サインしています。」というメッセージ512が表示されている。但し、この例では、ボブは複数のスタンプを有しているものとする。そこで、チャット表示欄500には、更に、サーバ30の「スタンプを選んでください。」というメッセージ513と、「スタンプ1」乃至「スタンプ5」からなるスタンプの選択肢514とが表示されている。
【0031】
図5には、ボブが「スタンプ1」を選択してこれを「Doc1」に押下した際にボブのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、サーバ30の「あなたはスタンプ1でサインしました。」というメッセージ515が表示されている。また、処理履歴表示欄600には、「あなたがDoc1にサインした。」という処理履歴612と、この処理履歴612で示される処理を取り消すための「Undo」ボタン613とが表示されている。これにより、ボブは「Undo」ボタン613をクリックすることにより、メッセージ512で自分が指示した処理を取り消すことができるようになっている。一方で、アリスのクライアント10の画面100の処理履歴表示欄600には「Undo」ボタンは表示されないので、アリスはボブが指示した処理を取り消すことができない。更に、処理画像表示欄700には、「Doc1」に「スタンプ1」が更に押下されたことが、「Doc1」のアイコン711にボブの「スタンプ1」のアイコン714を更に重ねて表示することで示されている。
【0032】
次に、第2のシナリオで表示される画面100について説明する。第2のシナリオは、アリスが文書に対するスタンプの押下をボブに依頼するが、その依頼内容が曖昧である場面を想定したシナリオである。
【0033】
図6には、アリスがボブに対しスタンプを押下することを依頼する際にアリスのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、アリスの「ボブ、文書にサインしてくれますか。」というメッセージ521が表示されている。但し、このメッセージ521では、文書が指定されていない。そこで、チャット表示欄500には、サーバ30の「文書を特定してください。」というメッセージ522が表示される。そして、アリスは、このメッセージ522に応答して、「Doc2」というメッセージ523を入力している。
【0034】
図7には、アリスが「Doc2」と入力した際にアリスのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、アリスの「ボブ、Doc2にサインしてくれますか。」というメッセージ524が表示されている。このメッセージ524は、
図6でアリスが「Doc2」というメッセージ522を入力したことにより、メッセージ521が編集されたものである。
【0035】
図8には、ボブがアリスの依頼に応答して「Doc2」にスタンプを押下する際にボブのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、ボブの「いいですよ。今サインしています。」というメッセージ525が表示されている。但し、この例でも、ボブは複数のスタンプを有しているものとする。そこで、チャット表示欄500には、更に、サーバ30の「スタンプを選んでください。」というメッセージ526と、「スタンプ1」乃至「スタンプ5」からなるスタンプの選択肢527とが表示されている。
【0036】
図9には、ボブが「スタンプ5」を選択してこれを「Doc2」に押下した際にボブのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、サーバ30の「あなたはスタンプ5でサインしました。」というメッセージ528が表示されている。また、処理履歴表示欄600には、「あなたがDoc2にサインした。」という処理履歴621と、この処理履歴621で示される処理を取り消すための「Undo」ボタン622とが表示されている。これにより、ボブは「Undo」ボタン622をクリックすることにより、メッセージ525で自分が指示した処理を取り消すことができるようになっている。一方で、アリスのクライアント10の画面100の処理履歴表示欄600には「Undo」ボタンは表示されないので、アリスはボブが指示した処理を取り消すことができない。更に、処理画像表示欄700には、「Doc2」に「スタンプ5」が押下されたことが、「Doc2」のアイコン722にボブの「スタンプ5」のアイコン723を重ねて表示することで示されている。
【0037】
次に、第3のシナリオで表示される画面100について説明する。第3のシナリオは、ボブが
図7のアリスの依頼に応答して文書にスタンプを押下しようとするが、エラーが発生する場面を想定したシナリオである。
【0038】
図10には、ボブが
図7のアリスの依頼に応答して「Doc2」にスタンプを押下する際にボブのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、ボブの「いいですよ。今サインしています。」というメッセージ531が表示されている。但し、この例では、ボブは1つのスタンプを有しているものとする。また、この例では、サーバ30が「Doc2」にボブのスタンプを押下する処理中にエラーが発生したとする。すると、チャット表示欄500には、サーバ30の「おっと、何か間違いが起こりました。再試行してください。」というメッセージ532が表示される。また、処理履歴表示欄600には、「あなたがDoc2にサインした。」という処理履歴631と、この処理履歴631で示される処理を再試行するための「Retry」ボタン632とが表示される。これにより、ボブは「Retry」ボタン632をクリックすることにより、メッセージ531で自分が指示した処理を再試行することができるようになっている。一方で、アリスのクライアント10の画面100の処理履歴表示欄600には「Retry」ボタンは表示されないので、アリスはボブが指示した処理を再試行することができない。
【0039】
図11には、ボブが
図10の「Retry」ボタン632をクリックした際にボブのクライアント10に表示される画面100の例を示す。このとき、チャット表示欄500には、
図10のメッセージ532に代えて、サーバ30の「あなたはDoc2にサインしました。」というメッセージ533が表示されている。また、処理履歴表示欄600には、
図10の「Retry」ボタン632に代えて、処理履歴631で示される処理を取り消すための「Undo」ボタン633が表示されている。これにより、ボブは「Undo」ボタン633をクリックすることにより、メッセージ531で自分が指示した処理を取り消すことができるようになっている。一方で、アリスのクライアント10の画面100の処理履歴表示欄600には「Undo」ボタンは表示されないので、アリスはボブが指示した処理を取り消すことができない。更に、処理画像表示欄700には、「Doc2」にボブのスタンプが押下されたことが、「Doc2」のアイコン732にボブのスタンプのアイコン733を重ねて表示することで示されている。
【0040】
[サーバの機能構成]
図12は、本実施の形態におけるサーバ30の機能構成例を示したブロック図である。図示するように、サーバ30は、受信部41と、メッセージ解析部42と、文書記憶部43と、処理情報記憶部44と、文書処理部45と、処理履歴記憶部46と、送信部47とを備えている。
【0041】
受信部41は、チャットのメッセージを、そのメッセージの送信元のクライアント10(以下、単に「送信元のクライアント10」という)から受信して、メッセージ解析部42に受け渡す。ここで、メッセージは、クライアント10で「Retry」ボタンがクリックされたことにより、再試行情報として送信されたものも含む。本実施の形態では、複数のユーザの間で通信手段により通信されるメッセージを取得することの一例として、受信部41のこの処理を行っている。
【0042】
また、受信部41は、メッセージで言及された処理で利用される複数の利用データのうちのユーザが選択した利用データを示すメッセージを、送信元のクライアント10から受信して、文書処理部45に受け渡す。
【0043】
更に、受信部41は、クライアント10で「Undo」ボタンがクリックされたことを示す取り消し情報を、そのクライアント10から受信する。ここで、取り消し情報は、「Undo」ボタンに対応する処理を識別する処理識別情報を含む。本実施の形態では、履歴上で、ユーザから特定の処理の指定を受け付けることの一例として、受信部41のこの処理を行っている。
【0044】
メッセージ解析部42は、受信部41からメッセージを受け取って、そのメッセージを解析し、そのメッセージで文書及び処理に言及されているかどうかを判定する。メッセージ解析部42は、そのメッセージで文書及び処理に言及されていると判定すれば、その文書及び処理を文書処理部45に伝えると共に、そのメッセージをそのまま送信するよう送信部47に指示する。メッセージ解析部42は、そのメッセージで文書及び処理の少なくとも一方に言及されていないと判定すれば、文書及び処理の言及されていない方を補うことを促すメッセージを送信するよう送信部47に指示する。
【0045】
また、メッセージ解析部42は、文書処理部45からの問い合わせに応じて、そのメッセージがサーバ30に処理を依頼するものであるか送信先のユーザに処理を依頼するものであるかを判定し、判定結果を文書処理部45に返す。
【0046】
文書記憶部43は、処理対象の文書を記憶する。ここで、文書は、文書を識別する文書識別情報に関連付けて記憶される。文書識別情報には、例えば、文書名、文書の保存場所の情報等がある。これにより、メッセージで文書識別情報によって文書に言及されている場合に、文書が文書識別情報に基づいて取得可能になっている。
【0047】
処理情報記憶部44は、文書に対して行われる処理に関する情報である処理情報を記憶する。ここで、処理情報には、処理を行う際に利用するデータ(以下、「利用データ」という)がある。処理情報記憶部44は、各処理に対する利用データをユーザごとに記憶するとよい。処理情報記憶部44は、例えば、文書にスタンプを押下する処理に対しては、利用データとしてスタンプの種類を記憶する。この場合、スタンプの種類は、ユーザによって異なるので、処理情報記憶部44は、ユーザごとにスタンプの種類を記憶する。スタンプの種類は1つだけある場合も2つ以上ある場合もある。また、処理情報記憶部44は、例えば、文書の送付を送信先のユーザに依頼する処理に対しては、利用データとして文書を送付する際の宛先の情報を記憶する。この場合、宛先の情報は、ユーザによって異なるので、処理情報記憶部44は、ユーザごとに宛先の情報を記憶する。宛先の情報は1つだけある場合も2つ以上ある場合もある。更に、処理情報記憶部44は、利用データを必要としない処理については、利用データを含めずに処理情報を記憶する。
【0048】
文書処理部45は、メッセージ解析部42から伝えられた処理で利用可能な利用データの数を、処理情報記憶部44を参照することにより判定する。
【0049】
文書処理部45は、処理で利用可能な利用データの数が0であると判定すれば、メッセージがサーバ30に処理を依頼するものであるかどうかをメッセージ解析部42に問い合わせる。
【0050】
文書処理部45は、処理で利用可能な利用データの数が1であると判定すれば、利用データを処理情報記憶部44から取得する。そして、文書処理部45は、メッセージがサーバ30に処理を依頼するものであるかどうかをメッセージ解析部42に問い合わせる。
【0051】
文書処理部45は、処理で利用可能な利用データの数が2以上であると判定すれば、この2以上の利用データからの1つの利用データの選択を促すメッセージを送信するよう送信部47に指示する。これにより、文書処理部45は、選択された利用データを示すメッセージが受信部41から受け渡されると、選択された利用データを処理情報記憶部44から取得する。そして、文書処理部45は、最初に受信部41が受信したメッセージがサーバ30に処理を依頼するものであるかどうかをメッセージ解析部42に問い合わせる。
【0052】
文書処理部45は、メッセージがサーバ30に処理を依頼するものであれば、処理履歴を送信するよう送信部47に指示し、メッセージ解析部42から伝えられた文書を文書記憶部43から取得する。そして、文書処理部45は、取得した文書に対して、メッセージ解析部42から伝えられた処理を、利用データが取得されていればその利用データを利用して実行する。本実施の形態では、メッセージで言及された対象に対して、メッセージで言及された処理を実行することの一例として、文書処理部45のこの処理を行っている。
【0053】
文書処理部45は、このように文書に対して処理が行われると、処理履歴記憶部46に処理履歴を記憶すると共に、処理結果を送信するよう送信部47に指示する。
【0054】
また、文書処理部45は、ユーザが指示した処理が実行されなかった場合において、受信部41がその処理の再試行情報としてメッセージを受信した際にも、上記と同じ処理を行う。本実施の形態では、メッセージで言及された対象に対して、メッセージで言及された処理が実行されなかった場合に、対象に対して処理を再実行することをユーザに許可することの一例として、文書処理部45のこの処理を行っている。但し、ユーザが指示した処理が実行されなかった場合において、そのユーザに対してはその処理の再試行情報を送信できるようにし、そのユーザ以外のユーザに対してはその処理の再試行情報を送信できないようにしてもよい。その意味で、文書処理部45のこの処理は、複数のユーザのうちの特定のユーザが入力したメッセージで言及された対象に対して、メッセージで言及された処理が実行されなかった場合に、対象に対して処理を再実行することを特定のユーザに許可することの一例である。また、文書処理部45のこの処理は、複数のユーザのうちの特定のユーザが入力したメッセージで言及された対象に対して、メッセージで言及された処理が実行されなかった場合に、対象に対して処理を再実行することを特定のユーザ以外のユーザに禁止することの一例でもある。
【0055】
更に、文書処理部45は、受信部41が処理識別情報を含む取り消し情報を受信した場合、処理履歴記憶部46に記憶された処理履歴から処理識別情報に基づいて処理を特定して、その処理を取り消す。その際、その処理以降に同じユーザが処理を行っていた場合は、これらの処理を含めて取り消すようにしてよい。或いは、その処理以降に同じユーザが同じ文書に対して処理を行っていた場合は、これらの処理を含めて取り消すようにしてもよい。本実施の形態では、特定の処理以降にユーザの指示により実行された処理を取り消すことの一例として、文書処理部45のこの処理を行っている。
【0056】
処理履歴記憶部46は、文書処理部45により実行された処理の履歴である処理履歴を記憶する。ここで、処理履歴は、処理履歴を識別する処理履歴識別情報に関連付けて記憶される。処理履歴識別情報には、例えば、処理が指示された時刻、処理が指示されるごとに採番される一連番号等がある。また、処理履歴は、処理を指示したユーザを識別するユーザ識別情報にも関連付けて記憶される。これにより、受信部41が処理履歴識別情報及びユーザ識別情報を伴う取り消し情報をクライアント10から受信した場合に、処理履歴識別情報及びユーザ識別情報に基づいて処理履歴が特定でき、その処理履歴で示される処理の取り消しが可能になっている。
【0057】
送信部47は、受信部41が受信したメッセージをメッセージ解析部42から受け渡されると、そのメッセージを送信先のクライアント10へ送信する。これにより、送信先のクライアント10では、画面100のチャット表示欄500に、そのメッセージが表示される。
【0058】
また、送信部47は、受信部41が受信したメッセージで言及されていない文書又は処理を補うことを促すメッセージを送信するようメッセージ解析部42から指示されると、その文書又は処理を補うことを促すメッセージを送信元のクライアント10へ送信する。これにより、送信元のクライアント10では、画面100のチャット表示欄500に、その文書又は処理を補うことを促すメッセージが表示される。本実施の形態では、複数のユーザのうちの特定のユーザが入力したメッセージで対象及び処理の少なくとも1つの情報が言及されていない場合に、少なくとも1つの情報を指定するように特定のユーザに促すことの一例として、送信部47のこの処理を行っている。
【0059】
また、送信部47は、受信部41が受信したメッセージで言及された処理で利用可能な複数の利用データからの1つの利用データの選択を促すメッセージを送信するよう文書処理部45から指示されると、その利用データの選択を促すメッセージを送信元のクライアント10へ送信する。これにより、送信元のクライアント10では、画面100のチャット表示欄500に、その利用データの選択を促すメッセージが表示される。
【0060】
更に、送信部47は、処理履歴を送信するよう文書処理部45から指示されると、処理履歴を送信元及び送信先のクライアント10へ送信する。これにより、送信元及び送信先のクライアント10では、画面100の処理履歴表示欄600に、処理履歴が表示される。本実施の形態では、実行された処理の履歴を、メッセージを表示している画面と同一の画面上に表示するように制御することの一例として、送信部47のこの処理を行っている。
【0061】
更にまた、送信部47は、処理結果を送信するよう文書処理部45から指示されると、処理結果を送信元及び送信先のクライアント10へ送信する。これにより、送信元のクライアント10及び送信先のクライアント10では、画面100のチャット表示欄500に、処理結果を示すメッセージが表示され、画面100の処理画像表示欄700に、処理結果を示す画像が表示される。本実施の形態では、対象に対して処理が行われた旨を表示するように制御することの一例として、文書処理部45のこの処理を行っている。
【0062】
[サーバの動作]
図13は、本実施の形態におけるサーバ30の動作例を示したフローチャートである。
【0063】
図示するように、サーバ30では、まず、受信部41が、メッセージを送信元のクライアント10から受信する(ステップ401)。
【0064】
次に、メッセージ解析部42が、ステップ401で受信されたメッセージで文書及び処理に言及されているかどうかを判定する(ステップ402)。
【0065】
その結果、ステップ401で受信されたメッセージで文書及び処理に言及されているとステップ402で判定されれば、送信部47が、そのメッセージを送信先のクライアント10へ送信する(ステップ403)。
【0066】
次に、文書処理部45が、処理情報記憶部44を参照して、ステップ402で特定された処理で利用可能な利用データの数を判定する(ステップ404)。
【0067】
ステップ404で利用可能な利用データの数が0である、つまり、利用データが必要ないと判定されれば、処理はステップ409へ進む。
【0068】
ステップ404で利用可能な利用データの数が1であると判定すれば、文書処理部45は、その1つの利用データを処理情報記憶部44から取得する(ステップ405)。そして、処理はステップ409へ進む。
【0069】
ステップ404で利用可能な利用データの数が2以上であると判定されれば、送信部47は、その2以上の利用データからの利用データの選択を促すメッセージを、送信元のクライアント10へ送信する(ステップ406)。これにより、送信元のユーザが利用データを選択すると、受信部41は、選択された利用データを示すメッセージを送信元のクライアント10から受信する(ステップ407)。すると、文書処理部45は、選択された利用データを処理情報記憶部44から取得する(ステップ408)。そして、処理はステップ409へ進む。
【0070】
次いで、メッセージ解析部42は、ステップ401で受信されたメッセージが、自身に対して、ステップ402で特定された処理を依頼するものであるかどうかを判定する(ステップ409)。
【0071】
ステップ409でメッセージが自身に処理を依頼するものであると判定されなければ、つまり、メッセージが送信先のユーザに処理を依頼するものであると判定すれば、処理は終了する。尚、この動作例では、メッセージが送信先のユーザに処理を依頼するものであると判定される場合であっても、ステップ404~408の処理を行うものとしている。これは、メッセージが送信先のユーザに処理を依頼するものであっても、例えば、メッセージで言及された処理が文書を宛先に送付する処理である場合に宛先の情報等の利用データを取得することがあるからである。
【0072】
ステップ409でメッセージが自身に処理を依頼するものであると判定されれば、送信部47は、処理履歴を送信元のクライアント10及び送信先のクライアント10へ送信する(ステップ410)。
【0073】
また、文書処理部45は、ステップ402で特定された文書に対して、ステップ402で特定された処理を実行する(ステップ411)。ここで、文書処理部45は、ステップ402で特定された文書を、文書記憶部43に記憶された文書の中から取得するとよい。また、文書処理部45は、ステップ405又はステップ408で利用データが取得されている場合は、この利用データを用いて処理を実行するとよい。
【0074】
更に、文書処理部45は、ステップ411での処理の履歴である処理履歴を処理履歴記憶部46に記憶する(ステップ412)。
【0075】
更にまた、送信部47は、ステップ411での処理の結果である処理結果を送信元のクライアント10及び送信先のクライアント10へ送信する(ステップ413)。その際、送信元のクライアント10では、処理結果が正常に受信された場合は、処理履歴表示欄600に、ステップ410で送信された処理履歴に関連付けて、「Undo」ボタンが表示されるようにするとよい。一方、送信元のクライアント10では、処理結果が正常に受信されず、タイムアウトになった場合は、ステップ410で送信された処理履歴に関連付けて、「Retry」ボタンが表示されるようにするとよい。
【0076】
以上の処理が行われた後、処理は終了する。
【0077】
一方、ステップ401で受信されたメッセージで文書及び処理に言及されているとステップ402で判定されなければ、送信部47は、文書及び処理のうち言及されていない方を補うように促すメッセージを送信元のクライアント10へ送信する(ステップ414)。そして、処理は終了する。
【0078】
ここで、
図13に示した動作例を、上述した第1のシナリオに沿って具体的に説明する。
【0079】
第1のシナリオでは、アリスのクライアント10でチャット表示欄500にメッセージ511が入力されると、受信部41が、ステップ401において、メッセージ511をアリスのクライアント10から受信する。
【0080】
次に、メッセージ解析部42が、ステップ402において、メッセージ511で文書及び処理に言及されていると判定する。ここで、文書に言及されていると判定するのは、文書名である「Doc1」がメッセージ511に含まれているからである。また、処理に言及されていると判定するのは、スタンプを押下する処理を表す「signing」がメッセージ511に含まれているからである。
【0081】
すると、送信部47が、ステップ403において、メッセージ511をボブのクライアント10へ送信する。これにより、
図3に示すように、ボブのクライアント10のチャット表示欄500にメッセージ511が表示される。
【0082】
次に、文書処理部45が、ステップ404において、処理情報記憶部44を参照して、スタンプを押下する処理で利用可能な利用データの数を判定する。ここでは、スタンプを押下する処理で利用可能なアリスのスタンプの数は1つであるとする。
【0083】
すると、文書処理部45は、ステップ405において、その1つのスタンプを処理情報記憶部44から取得する。
【0084】
次いで、メッセージ解析部42が、ステップ409において、メッセージ511がサーバ30に処理を依頼するものであると判定する。
【0085】
すると、送信部47が、ステップ410において、処理履歴611をアリスのクライアント10及びボブのクライアント10へ送信する。これにより、
図3に示すように、ボブのクライアント10の処理履歴表示欄600には、処理履歴611がグレイアウトして表示される。
【0086】
また、文書処理部45が、ステップ411において、「Doc1」にアリスのスタンプを押下する処理を実行する。更に、文書処理部45は、ステップ412において、処理履歴を処理履歴記憶部46に記憶する。更にまた、送信部47は、ステップ413において、「Doc1」にアリスのスタンプを押下する処理を実行した旨の処理結果をアリスのクライアント10及びボブのクライアント10へ送信する。これにより、
図3に示すように、ボブのクライアント10の処理画像表示欄700には、アイコン711にアイコン713を重ねた画像が表示される。
【0087】
次に、
図4に示すように、ボブのクライアント10でチャット表示欄500にメッセージ512が入力されると、受信部41が、ステップ401において、メッセージ512をボブのクライアント10から受信する。
【0088】
次に、メッセージ解析部42が、ステップ402において、メッセージ511で文書及び処理に言及されていると判定する。ここで、文書に言及されていると判定するのは、メッセージ511からの文脈で処理対象が「Doc1」と判定できるからである。また、処理に言及されていると判定するのは、スタンプを押下する処理を表す「Signing」がメッセージ512に含まれているからである。
【0089】
すると、送信部47が、ステップ403において、メッセージ512をアリスのクライアント10へ送信する。
【0090】
次に、文書処理部45が、ステップ404において、処理情報記憶部44を参照して、スタンプを押下する処理で利用可能な利用データの数を判定する。ここでは、スタンプを押下する処理で利用可能なボブのスタンプの数は5つであるとする。
【0091】
すると、文書処理部45は、ステップ406において、5つのスタンプからの1つのスタンプの選択を促すメッセージ513をボブのクライアント10へ送信する。これにより、
図4に示すように、ボブのクライアント10のチャット表示欄500にメッセージ513が表示される。ここで、ボブが1つのスタンプを選択すると、受信部41は、ステップ407において、選択されたスタンプを示すメッセージを受信する。すると、文書処理部45は、ステップ408において、選択されたスタンプを処理情報記憶部44から取得する。
【0092】
次いで、メッセージ解析部42が、ステップ409において、メッセージ512がサーバ30に処理を依頼するものであると判定する。
【0093】
すると、送信部47が、ステップ410において、処理履歴612をアリスのクライアント10及びボブのクライアント10へ送信する。これにより、
図5に示すように、ボブのクライアント10の処理履歴表示欄600には、処理履歴612が表示される。
【0094】
また、文書処理部45が、ステップ411において、「Doc1」にボブのスタンプを押下する処理を実行する。更に、文書処理部45は、ステップ412において、処理履歴を処理履歴記憶部46に記憶する。更にまた、送信部47は、ステップ413において、「Doc1」にボブのスタンプを押下する処理を実行した旨の処理結果をアリスのクライアント10及びボブのクライアント10へ送信する。これにより、
図5に示すように、ボブのクライアント10のチャット表示欄500には、メッセージ515が表示され、ボブのクライアント10の処理画像表示欄700には、アイコン711にアイコン713,714を重ねた画像が表示される。その際、ボブのクライアント10の処理履歴表示欄600には、「Undo」ボタン613も表示される。
【0095】
次に、
図13に示した動作例を、上述した第2のシナリオに沿って具体的に説明する。
【0096】
第2のシナリオでは、
図6に示すように、アリスのクライアント10でチャット表示欄500にメッセージ521が入力されると、受信部41が、ステップ401において、メッセージ521をアリスのクライアント10から受信する。
【0097】
次に、メッセージ解析部42が、ステップ402において、メッセージ521で文書には言及されていないが処理には言及されていると判定する。ここで、文書に言及されていないと判定するのは、文書名がメッセージ521に含まれておらず、文脈からも判定できないからである。また、処理に言及されていると判定するのは、スタンプを押下する処理を表す「sign」がメッセージ521に含まれているからである。
【0098】
すると、送信部47が、ステップ414において、文書名を補うように促すメッセージ522を送信元のクライアント10へ送信する。これにより、
図6に示すように、アリスのクライアント10のチャット表示欄500にメッセージ522が表示される。
【0099】
次に、
図6に示すように、アリスのクライアント10でチャット表示欄500に「Doc2」を示すメッセージ523が入力されると、
図6のメッセージ521は編集される。その結果、
図7に示すように、アリスのクライアント10でチャット表示欄500にメッセージ524が入力されると、受信部41が、ステップ401において、メッセージ524をアリスのクライアント10から受信する。
【0100】
次に、メッセージ解析部42が、ステップ402において、メッセージ524で文書及び処理に言及されていると判定する。ここで、文書に言及されていると判定するのは、文書名である「Doc2」がメッセージ524に含まれているからである。また、処理に言及されていると判定するのは、スタンプを押下する処理を表す「sign」がメッセージ524に含まれているからである。
【0101】
すると、送信部47が、ステップ403において、メッセージ524をボブのクライアント10へ送信する。これにより、
図8に示すように、ボブのクライアント10のチャット表示欄500にメッセージ524が表示される。
【0102】
その後、メッセージ解析部42が、ステップ409において、メッセージ524がサーバ30に処理を依頼するものでないと判定する。
【0103】
次に、
図8に示すように、ボブのクライアント10でチャット表示欄500にメッセージ525が入力される。その後の動作は、
図4でボブのクライアント10のチャット表示欄500にメッセージ512が入力された場合の動作と基本的に同じなので、説明を省略する。
【0104】
次に、
図13に示した動作例を、上述した第3のシナリオに沿って具体的に説明する。
【0105】
第3のシナリオでは、
図10に示すように、ボブのクライアント10でチャット表示欄500にメッセージ531が入力されると、受信部41が、ステップ401において、メッセージ531をボブのクライアント10から受信する。
【0106】
次に、メッセージ解析部42が、ステップ402において、メッセージ531で文書及び処理に言及されていると判定する。ここで、文書に言及されていると判定するのは、メッセージ531からの文脈で処理対象が「Doc2」と判定できるからである。また、処理に言及されていると判定するのは、スタンプを押下する処理を表す「Signing」がメッセージ531に含まれているからである。
【0107】
すると、送信部47が、ステップ403において、メッセージ531をアリスのクライアント10へ送信する。
【0108】
次に、文書処理部45が、ステップ404において、処理情報記憶部44を参照して、スタンプを押下する処理で利用可能な利用データの数を判定する。ここでは、スタンプを押下する処理で利用可能なボブのスタンプの数は1つであるとする。
【0109】
すると、文書処理部45は、ステップ405において、その1つのスタンプを処理情報記憶部44から取得する。
【0110】
次いで、メッセージ解析部42が、ステップ409において、メッセージ531がサーバ30に処理を依頼するものであると判定する。
【0111】
すると、送信部47が、ステップ410において、処理履歴631をアリスのクライアント10及びボブのクライアント10へ送信する。これにより、
図10に示すように、ボブのクライアント10の処理履歴表示欄600には、処理履歴631が表示される。
【0112】
また、文書処理部45が、ステップ411において、「Doc2」にボブのスタンプを押下する処理を実行する。ここで、処理中にエラーが発生したとする。すると、ボブのクライアント10では、正常な処理結果が受信されないので、チャット表示欄500にエラーの発生を示すメッセージ532が表示され、処理履歴表示欄600に処理を再試行するための「Retry」ボタン632が表示される。
【0113】
次に、
図10で「Retry」ボタン632がクリックされると、受信部41が、ステップ401において、メッセージ531をボブのクライアント10から受信する。
【0114】
次に、メッセージ解析部42が、ステップ402において、メッセージ531で文書及び処理に言及されていると判定する。
【0115】
すると、送信部47が、ステップ403において、メッセージ531をアリスのクライアント10へ送信する。
【0116】
次に、文書処理部45が、ステップ404において、処理情報記憶部44を参照して、スタンプを押下する処理で利用可能な利用データの数を判定する。ここでは、スタンプを押下する処理で利用可能なボブのスタンプの数は1つであるとする。
【0117】
すると、文書処理部45は、ステップ405において、その1つのスタンプを処理情報記憶部44から取得する。
【0118】
次いで、メッセージ解析部42が、ステップ409において、メッセージ531がサーバ30に処理を依頼するものであると判定する。
【0119】
すると、送信部47が、ステップ410において、処理履歴631をアリスのクライアント10及びボブのクライアント10へ送信する。これにより、
図11に示すように、ボブのクライアント10の処理履歴表示欄600には、処理履歴631が表示される。
【0120】
また、文書処理部45が、ステップ411において、「Doc2」にボブのスタンプを押下する処理を実行する。ここでは、処理中にエラーが発生しなかったとする。すると、文書処理部45は、ステップ412において、処理履歴を処理履歴記憶部46に記憶する。また、送信部47は、ステップ413において、「Doc2」にボブのスタンプを押下する処理を実行した旨の処理結果をアリスのクライアント10及びボブのクライアント10へ送信する。これにより、
図11に示すように、ボブのクライアント10のチャット表示欄500には、メッセージ533が表示され、ボブのクライアント10の処理画像表示欄700には、アイコン732にアイコン733を重ねた画像が表示される。その際、ボブのクライアント10の処理履歴表示欄600には、「Undo」ボタン633も表示される。
【0121】
次に、本実施の形態におけるサーバ30の「Undo」ボタンがクリックされた際の動作例について説明する。
【0122】
クライアント10で「Undo」ボタンがクリックされ、取り消し対象の処理を特定する処理識別情報を含む取り消し情報が送信されると、サーバ30では、まず、受信部41が、この取り消し情報を受信する。すると、文書処理部45が、処理履歴記憶部46に記憶された処理履歴から、取り消し情報に含まれる処理識別情報で識別される処理を特定し、その処理を取り消す。
【0123】
[プロセッサ]
本実施の形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス等)を含むものである。
【0124】
また、本実施の形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は、本実施の形態において記載した順序のみに限定されるものではなく、変更してもよい。
【0125】
[プログラム]
本実施の形態におけるサーバ30が行う処理は、例えば、アプリケーションソフトウェア等のプログラムとして用意される。
【0126】
即ち、本実施の形態を実現するプログラムは、コンピュータに、複数のユーザの間で通信手段により通信されるメッセージを取得する機能と、メッセージで言及された対象に対して、メッセージで言及された処理を実行する機能と、対象に対して処理が行われた旨を表示するように制御する機能とを実現させるためのプログラムとして捉えられる。
【0127】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD-ROM等の記録媒体に格納して提供することも可能である。
【符号の説明】
【0128】
10…クライアント、30…サーバ、41…受信部、42…メッセージ解析部、43…文書記憶部、44…処理情報記憶部、45…文書処理部、46…処理履歴記憶部、47…送信部