以下、図面を参照して、実施形態について説明する。
図1は、実施形態に係るメッセージ作成支援装置を含むクライアント−サーバシステムのハードウェア構成を示すブロック図である。
図1のクライアント−サーバシステムは、主として、コンピュータ10と、複数のユーザによって利用される複数のクライアント端末(ユーザ端末)20とから構成される。なお、図1には便宜的に1つのクライアント端末20のみが示されている。クライアント端末20上では、コンピュータ10を利用するクライアントソフトウェアが動作する。クライアントソフトウェアとしては、例えばブラウザ及びメーラ等が含まれる。クライアント端末20は、ローカルエリアネットワーク(LAN:Local Area Network)のようなネットワーク30を介してコンピュータ10と接続されている。
コンピュータ10は、ハードディスクドライブ(HDD:Hard Disk Drive)のような外部記憶装置40と接続されている。この外部記憶装置40は、コンピュータ10によって実行されるプログラム41を格納する。コンピュータ10及び外部記憶装置40は、メッセージ作成支援装置50を構成する。
本実施形態に係るメッセージ作成支援装置50は、上記した複数のクライアント端末20を利用する複数のユーザ間でメッセージを送受信する際に利用される。
メッセージ作成支援装置50を利用するユーザは、クライアント端末20を利用して、他のユーザを送信先とするメッセージを作成することができる。ユーザによって作成されたメッセージは、メッセージ作成支援装置50を介して、当該メッセージの送信先となるユーザに送信される。これにより、メッセージ作成支援装置50を利用するユーザは、他のユーザにメッセージを送信することができる。なお、他のユーザに対してメッセージを送信する際には、当該メッセージに文書等を添付することができる。
図2は、図1に示すメッセージ作成支援装置50の主として機能構成を示すブロック図である。図2に示すように、メッセージ作成支援装置50は、メッセージ作成部51、主要返信先判定部52、興味範囲判定部53、文書差分生成部54、文書差分加工部55、メッセージ受信部56、メッセージ登録部57、メッセージ送信部58、メッセージ閲覧部59及びアクセス制御部60を含む。本実施形態において、これらの各部51〜60は、図1に示すコンピュータ10が外部記憶装置40に格納されているプログラム41を実行することにより実現されるものとする。このプログラム41は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム41が、例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
また、メッセージ作成支援装置50は、格納部42を含む。本実施形態において、格納部42は、例えば外部記憶装置40に格納される。格納部42は、ユーザ情報格納部43、メッセージ格納部44、文書格納部45及びアクセス情報格納部46を含む。
ユーザ情報格納部43には、メッセージ作成支援装置50を利用する複数のユーザに関する情報(ユーザ情報)が格納される。具体的には、ユーザ情報格納部43には、ユーザに割り当てられているメールアドレス(以下、単にユーザのメールアドレスと表記)及び当該ユーザを表す表示名(ユーザ名)等が対応づけて予め格納される。また、ユーザ情報格納部43には、後述するようにメッセージ及び文書を閲覧するための権限に関する情報(以下、閲覧権限情報と表記)等が格納される。
メッセージ格納部44には、上記したメッセージ作成支援装置50を利用する複数のユーザによって送信された複数のメッセージが格納される。具体的には、メッセージ格納部44には、上記したようにユーザ(以下、第1のユーザと表記)から他のユーザ(以下、第2のユーザと表記)に対して送信されたメッセージ(以下、第1のメッセージと表記)及び当該第1のメッセージに対する返信として当該第2のユーザから当該第1のユーザに対して送信されたメッセージ(以下、第2のメッセージと表記)を含む複数のメッセージが格納される。なお、第1のメッセージは、例えば文書(以下、第1の文書と表記)が添付されて送信されたメッセージであるものとする。
メッセージ格納部44に格納された複数のメッセージの各々には、例えば当該メッセージを識別するためのメッセージID、当該メッセージの送信者であるユーザのメールアドレス及び当該メッセージの送信先となるユーザのメールアドレス等が含まれる。また、メッセージ格納部44に格納されたメッセージが他のメッセージに対する返信として送信されたメッセージである場合には、当該メッセージには、当該他のメッセージ(つまり、返信先となるメッセージ)を識別するためのメッセージID(返信先メッセージID)が含まれる。更に、メッセージ格納部44に格納されたメッセージに上記したように文書が添付されている場合には、当該メッセージには、当該文書を識別するための文書ID(以下、添付文書IDと表記)が含まれる。
文書格納部45は、メッセージ格納部44に格納されているメッセージに添付された文書(つまり、当該メッセージに含まれる添付文書IDによって識別される文書)が格納される。つまり、上記したように第1のメッセージに第1の文書が添付されていた場合には、文書格納部45には第1の文書が格納される。なお、文書格納部45に格納される文書(ファイル)は、例えばプレーンテキストファイルであるか、XMLまたはHTML等で書かれた構造付きテストファイルであるか、またはバイナリファイルである。バイナリファイルは、例えばテキスト抽出フィルタソフトウェアを使用することで、ページ番号等の構造付きテキストを抽出することが可能である。
アクセス情報格納部46には、メッセージ格納部44に格納されているメッセージ及び文書格納部45に格納されている文書に対する、メッセージ作成支援装置50を利用するユーザのアクセス状況(つまり、閲覧状況)を示すアクセス情報が格納される。具体的には、アクセス情報格納部46に格納されているアクセス情報は、ユーザがアクセス(閲覧)したメッセージまたは文書を示す情報である。
メッセージ作成部51は、クライアント端末20に対する第1のユーザの操作に応じて、例えばメッセージ格納部44に格納されている第2のメッセージに対する返信としてメッセージ(以下、第3のメッセージと表記)を作成する。また、メッセージ作成部51によって作成された第3のメッセージには、第1の文書が改訂された文書(以下、第2の文書と表記)を添付することができる。
なお、メッセージ作成部51によって作成された第3のメッセージには、当該第3のメッセージを識別するためのメッセージID、当該第3のメッセージの送信者である第1のユーザのメールアドレス、当該第3のメッセージの送信先となる第2のユーザのメールアドレス、当該第3のメッセージの返信先となる第2のメッセージを識別するための返信先メッセージID及び第2の文書を識別するための添付文書ID等が含まれる。
主要返信先判定部52は、ユーザ情報格納部43に格納されているユーザを表す表示名及びメッセージ作成部51によって作成された第3のメッセージに基づいて、当該第3のメッセージの冒頭に出現する文字列によって表される第2のユーザを主要返信先ユーザとして特定する。
興味範囲判定部53は、主要返信先判定部52によって主要返信先ユーザとして特定された第2のユーザから上記した第3のメッセージの送信者である第1のユーザに対して送信された第2のメッセージ(つまり、第1のユーザから第2のユーザに対して送信された第1のメッセージに対する返信として当該第2のユーザから当該第1のユーザに対して送信された第2のメッセージ)をメッセージ格納部44から取得する。興味範囲判定部53は、取得された第2のメッセージから、第1のメッセージに添付された第1の文書における範囲(つまり、第2のユーザが興味を持っている第1の文書の範囲)を表す文字列を抽出する。
文書差分生成部54は、文書格納部45に格納されている第1の文書(第1のメッセージに添付されていた第2の文書が改訂される前の文書)及び第3のメッセージに添付されている第2の文書の差分を生成する。
文書差分加工部55は、興味範囲判定部53によって抽出された文字列によって表される第1の文書における範囲に基づいて、文書差分生成部54によって生成された差分を加工する。文書差分加工部55は、文書差分生成部54によって生成された差分を、第2のユーザの興味を持っている範囲に応じて適切な形式に加工する。
なお、文書差分加工部55によって加工された差分は、第3のメッセージに付加されてクライアント端末20から送信される。
メッセージ受信部56は、例えば第1のユーザが利用するクライアント端末20から送信された第3のメッセージ(文書差分加工部55によって加工された差分が付加された第3のメッセージ)を受信する。なお、メッセージ受信部51によって受信された第3のメッセージには、上記したように第1の文書が改訂された文書(以下、第2の文書)が添付されている。
メッセージ登録部57は、メッセージ受信部56によって受信された第3のメッセージをメッセージ格納部44に格納する。また、メッセージ登録部57は、メッセージ受信部56によって受信された第3のメッセージに添付されている第2の文書を文書格納部45に格納する。
また、メッセージ作成支援装置50を利用するユーザは、メッセージ閲覧部59を介して、メッセージ格納部44に格納されているメッセージ及び文書格納部45に格納されている文書にアクセスして閲覧することができる。メッセージ閲覧部59は、典型的にはWebブラウザに対してHTML(Hyper Text Markup Language)画面を提供するWebサイトの形態をとる。
この場合、アクセス制御部60は、上記したユーザ情報格納部43に格納されている閲覧権限情報に基づいて、メッセージ閲覧部59を介して行われるメッセージ及び文書に対するアクセス(閲覧)を制御する。具体的には、アクセス制御部60は、メッセージ閲覧部59を介してメッセージ及び文書にアクセスしようとするユーザが当該メッセージ及び文書にアクセスする権限があるか否かを判定する。アクセス制御部60は、アクセスする権限があると判定された場合には閲覧を許可し、アクセスする権限がないと判定された場合には閲覧を拒否する。
なお、メッセージ閲覧部59を介してユーザによってメッセージまたは文書が閲覧(アクセス)された場合、当該ユーザが当該メッセージまたは文書にアクセスしたことを示すアクセス情報が上記したアクセス情報格納部46に格納される。
図3は、図2に示すユーザ情報格納部43のデータ構造の一例を示す。図3に示すように、ユーザ情報格納部43には、メッセージ作成支援装置50を利用するユーザ毎に、当該ユーザのメールアドレス、パスワード、表示名及び別名が対応づけて格納されている。
メールアドレスは、ユーザに一意に割り当てられており、本実施形態においてはユーザを識別するための識別子としても利用される。パスワードは、上記したアクセス制御における閲覧権限情報としてユーザに対して設定されている例えば文字列である。表示名はユーザを表す文字列(ユーザ名)であり、別名は当該ユーザを表す文字列であって表示名とは異なる文字列である。
図3に示す例では、ユーザ情報格納部43には、例えばメールアドレス「メールアドレスA」、パスワード「パスワードA」、表示名「ユーザA」及び別名「ユーザA´」が対応づけて格納されている。これによれば、表示名が「ユーザA」及び別名が「ユーザA´」であるユーザのメールアドレスが「メールアドレスA」であり、当該ユーザに対してパスワードとして「パスワードA」が設定されていることを示している。
ここでは、メールアドレスが「メールアドレスA」であるユーザについて説明したが、他のユーザについても同様である。
図4は、図2に示すメッセージ格納部44のデータ構造の一例を示す。メッセージ格納部44には、上記したようにメッセージ作成支援装置50を介してユーザによって送信されたメッセージが格納される。図4に示すように、メッセージ格納部44には、メッセージを識別するためのメッセージIDに対応づけて、送信日時、送信者メールアドレス、送信先メールアドレス、返信先メッセージID、添付文書ID及び本文が格納されている。
送信日時は、対応づけてられているメッセージIDによって識別されるメッセージが送信された日時を示す。送信者メールアドレスは、対応づけられているメッセージIDによって識別されるメッセージを送信したユーザのメールアドレスを示す。送信先メールアドレスは、対応づけられているメッセージIDによって識別されるメッセージの送信先となるユーザのメールアドレスを示す。返信先メッセージIDは、対応づけられているメッセージIDによって識別されるメッセージが他のメッセージに対する返信として送信されたメッセージである場合に、当該他のメッセージを識別するためのメッセージIDを示す。添付文書IDは、対応づけられているメッセージIDによって識別されるメッセージに文書が添付されていた場合に、当該文書を識別するための文書IDを示す。本文は、対応づけられているメッセージIDによって識別されるメッセージに含まれる本文を示す。なお、本文は、文字列を含む。また、メッセージが電子メールの場合、本文は慣習的に宛先(送信先)、参考(CC)、送信者名、概要、詳細、署名などの内容から構成され、宛先、参考及び送信者名等は定型的な形式で記述される場合が多い。
図4に示す例では、メッセージ格納部44には、例えばメッセージID「M01」に対応づけて、送信日時「送信日時1」、送信者メールアドレス「メールアドレスA」、送信先メールアドレス「メールアドレスB」、「メールアドレスC」、添付文書ID「D01」及び本文「本文1」が格納されている。これによれば、メッセージID「M01」によって識別されるメッセージが、メールアドレスが「メールアドレスA」であるユーザからメールアドレスが「メールアドレスB」であるユーザ及び「メールアドレスC」であるユーザに対して「送信日時1」に送信されたことを示す。なお、図4に示すように、メッセージの送信先を複数とすることも可能である。
また、メッセージID「M01」によって識別されるメッセージに添付されていた文書が添付文書ID「D01」によって識別される文書であり、当該メッセージの本文が「本文1」であることが示されている。
なお、メッセージID「M01」によって識別されるメッセージが他のメッセージに対する返信でない場合には、図4に示すように、返信メッセージIDは空欄となる。
また、メッセージ格納部44には、例えばメッセージID「M02」に対応づけて、送信日時「送信日時2」、送信者メールアドレス「メールアドレスB」、送信先メールアドレス「メールアドレスA」、「メールアドレスC」、返信先メッセージID「M01」及び本文「本文1」が格納されている。これによれば、メッセージID「M02」によって識別されるメッセージが、メールアドレスが「メールアドレスB」であるユーザからメールアドレスが「メールアドレスA」であるユーザ及び「メールアドレスC」であるユーザに対して「送信日時2」に送信されたことを示す。
また、メッセージID「M02」によって識別されるメッセージが返信先メッセージID「M01」によって識別されるメッセージに対する返信として送信されたメッセージであり、当該メッセージの本文が「本文1」であることが示されている。
なお、メッセージID「M02」によって識別されるメッセージに文書が添付されていない場合には、図4に示すように、添付文書IDは空欄となる。
ここでは、メッセージID「M01」及び「M02」によって識別されるメッセージについて説明したが、他のメッセージについても同様である。
図5は、図2に示す文書格納部45のデータ構造の一例を示す。文書格納部45には、メッセージ格納部44に格納されているメッセージに添付されていた文書が格納されている。図5に示すように、文書格納部45には、文書ID及び文書(の内容)が対応づけて格納されている。
文書IDは、文書を識別するための識別子であり、上記したメッセージ格納部44に格納されている添付文書IDを示す。文書は、対応づけられている文書IDによって識別される文書を示す。
図5に示す例では、文書格納部45には、例えば文書ID「D01」及び文書「文書1」が対応づけて格納されている。これによれば、文書ID「D01」によって識別される文書が「文書1」であることが示されている。
なお、上記したアクセス制御のために、メッセージ格納部44には当該メッセージ格納部44に格納されているメッセージ毎に当該メッセージに対してアクセス可能なユーザに関する情報が設定されていてもよいし、同様に、文書格納部45には当該文書格納部45に格納されている文書毎に当該文書に対してアクセス可能なユーザに関する情報が設定されていてもよい。
図6は、図2に示すアクセス情報格納部46のデータ構造の一例を示す。アクセス情報格納部46には、メッセージ格納部44に格納されているメッセージ及び文書格納部45に格納されている文書に対するユーザのアクセス状況を示すアクセス情報が格納される。図6に示すように、アクセス情報格納部46に格納されているアクセス情報には、メールアドレス、アクセス日時及びアクセス対象が対応づけて格納されている。
メールアドレスは、メッセージまたは文書にアクセスしたユーザのメールアドレスを示す。アクセス日時は、ユーザがメッセージまたは文書にアクセスした日時を示す。アクセス対象は、ユーザがアクセスしたメッセージを識別するためのメッセージIDまたは文書を識別するための文書IDを示す。
図6に示す例では、アクセス情報格納部46に格納されているアクセス情報には、例えばメールアドレス「メールアドレスA」、アクセス日時「アクセス日時1」及びアクセス対象「M01」が含まれている。これによれば、メールアドレスが「メールアドレスA」であるユーザが「アクセス日時1」にアクセス対象「M01」によって識別されるメッセージにアクセスした(つまり、当該メッセージを閲覧した)ことが示されている。
また、アクセス情報格納部46に格納されているアクセス情報には、例えばメールアドレス「メールアドレスB」、アクセス日時「アクセス日時2」及びアクセス対象「D01」が対応づけて含まれている。これによれば、メールアドレスが「メールアドレスB」であるユーザが「アクセス日時2」にアクセス対象「D01」によって識別される文書にアクセスした(つまり、当該文書を閲覧した)ことが示されている。
次に、図7のフローチャートを参照して、本実施形態に係るメッセージ作成支援装置50の処理手順について説明する。
ここでは、第1のユーザが第2のユーザに対して第1の文書が添付された第1のメッセージを既に送信しているものとする。また、第2のユーザが第1のユーザに対して、第1のメッセージに対する返信として第2のメッセージ(第1のメッセージに添付された第1の文書に対する第2のユーザのコメントを含む第2のメッセージ)を既に送信しているものとする。つまり、メッセージ格納部44には第1及び第2のメッセージが格納されており、文書格納部45には第1の文書が格納されているものとする。以下、第1のユーザが第2のユーザによって送信された第2のメッセージに対する返信メッセージを送信する場合について説明する。
まず、メッセージ作成部51は、第1のユーザのクライアント端末20に対する操作に応じて、上記した第2のメッセージに対する返信として第3のメッセージを作成する(ステップS1)。この場合、第1のユーザは、例えば第2のメッセージに含まれる第2のユーザのコメント(第1の文書に対するコメント)を参考にして第1の文書を改訂した第2の文書を第3のメッセージに添付することができる。また、このように第2のメッセージの返信として第2の文書が添付された第3のメッセージが作成される場合、第1のユーザは、後述する差分の生成の指示(以下、差分生成指示と表記)をすることができる。また、第1のユーザは、第3のメッセージの送信先となる第2のユーザ(のメールアドレス)を指定する。なお、第3のメッセージの送信先として、例えば第2のユーザのメールアドレスを含む複数のメールアドレスを指定しても構わない。以下、メッセージ作成部51によって作成された第3のメッセージを単に第3のメッセージと称する。
なお、第3のメッセージには、当該第3のメッセージを識別するためのメッセージID、当該第3のメッセージが送信された送信日時、当該第3のメッセージを送信したユーザのメールアドレス(送信者メールアドレス)、当該第3のメッセージの送信先となるユーザのメールアドレス(送信先メールアドレス)、当該第3のメッセージの返信先となる第2のメッセージを識別するためのメッセージID(返信先メッセージID)、当該第3のメッセージに添付された第2の文書を識別するための文書ID(添付文書ID)及び当該第3のメッセージの本文が含まれる。
次に、第3のメッセージが作成される際に、上記した差分生成指示がされたか否かが判定される(ステップS2)。
差分生成指示がされたと判定された場合(ステップS2のYES)、主要返信先判定部52は、ユーザ情報格納部43に格納されているユーザの表示名及び別名と第3のメッセージ(の本文)とに基づいて、主要返信先判定処理を実行する(ステップS3)。主要返信先判定処理によれば、主要返信先判定部52は、最も主要な返信先となる第2のユーザ(主要返信先ユーザ)を特定(判定)する。主要返信先判定部52によって特定される主要返信先ユーザとは、第3のメッセージを特に読んでもらうことを期待する(返信を期待する)ユーザである。なお、この主要返信先判定処理の詳細については後述する。
次に、興味範囲判定部53は、主要返信先判定部52によって特定された主要返信先ユーザが第1のメッセージに添付されていた第1の文書において興味を持っている(関心のある)範囲を特定する(ステップS4)。この場合、興味範囲判定部53は、主要返信先ユーザが第1のメッセージに対する返信として送信した第2のメッセージ(の本文)に含まれる文字列(つまり、第1のメッセージに添付されていた第1の文書に対する主要返信先ユーザのコメント)から、当該第1の文書の範囲を表す文字列を抽出する。興味範囲判定部53は、抽出された文字列によって表される第1の文書の範囲を、主要返信先ユーザが第1の文書において興味を持っている範囲として特定する。以下、興味範囲判定部53によって特定された範囲を単に第1の文書における興味範囲と称する。
文書差分生成部54は、第1のメッセージに添付されていた第1の文書(文書格納部45に格納されている第1の文書)及び第3のメッセージに添付された第2の文書の差分を生成する処理(以下、差分生成処理と表記)を実行する(ステップS5)。なお、第1のメッセージに添付されていた第1の文書は、第3のメッセージに含まれる返信先メッセージIDによって識別されるメッセージ(第2のメッセージ)を特定し、当該特定されたメッセージに含まれる返信先メッセージIDによって識別されるメッセージ(第1のメッセージ)を識別するためのメッセージIDに対応づけてメッセージ格納部44に格納されている添付文書IDによって特定することができる。文書差分生成部54によって生成された差分には、第1の文書から第2の文書に改訂されたことにおける全ての範囲の変更内容が含まれる。
また、ここでは便宜的に第1のメッセージに添付されていた第1の文書を用いて差分を生成するものとして説明しているが、当該第1の文書に至るまでに複数回の改訂がされている場合がある。換言すれば、例えば第3のメッセージに添付された第2の文書に改訂されるまでに、当該第1の文書を含む複数の版が存在する場合がある。この場合、差分生成処理の対象となる文書は、第1の文書を含む複数の版の文書のうち主要返信先ユーザが最後にアクセスした文書とする。
なお、第1の文書を含む複数の版の文書は、例えば第3のメッセージに含まれる返信メッセージIDによって繋がっている複数のメッセージ(つまり、メッセージの返信が繰り返されることによるメッセージスレッド)において各メッセージに添付されている複数の文書である。また、主要返信先ユーザが最後にアクセスした文書は、アクセス情報格納部46に格納されているアクセス情報に基づいて特定される。具体的には、主要返信先ユーザが最後にアクセスした文書は、上記した複数の版の文書の各々を識別するための文書IDのうち、主要返信先ユーザのメールアドレス及び最も遅いアクセス日時に対応づけてアクセス情報に含まれている文書IDによって特定される。
次に、文書差分加工部55は、上記した第1の文書における興味範囲に基づいて、文書差分生成部55によって生成された差分を加工する(ステップS6)。
ここで、文書差分加工部55による差分を加工する処理について具体的に説明する。文書差分加工部55は、文書差分生成部54によって生成された差分を、第1の文書における興味範囲(つまり、主要返信先ユーザが興味を持っている範囲)の差分に加工する。つまり、文書差分加工部55は、文書差分生成部55によって生成された差分を、興味範囲判定部53によって特定された第1の文書の範囲のみに限定した差分とする。
また、上記した文書差分加工部55は、第1の文書における興味範囲の差分(変更内容)を例えば主要返信先ユーザにとって可読性が高い形式に変換する。この場合、例えば第1の文書における興味範囲の差分が当該差分の内容を抜粋または要約した文の形式に変換されてもよい。具体的には、第1の文書における興味範囲の差分(変更内容)の要点を表す例えば「○○から始まる2行が変更されました」のような文字列(定型文)に変換されてもよいし、変更前文書と変更後文書を左右に並べて互いの追加・削除・置換部分をサイドバイサイドで提示(可視化)する形式に変換されてもよい。更に、第1の文書における興味範囲の差分において一定以上の変更量が存在する場合には、「大幅に変更されました」のような定型文に変換されてもよい。また、第1の文書における興味範囲の差分の内容に応じて第3のメッセージの内容を補足することを促すような文字列(例えば、「第1の文書における興味範囲の変更の意図を記述することを推奨します」等)に変換されてもよい。
ここで、上記したように文書差分加工部55によって差分が加工されると、第3のメッセージに当該加工された差分(第1の文書の興味範囲のみに限定した差分及び可読性が高い形式に変換された当該差分)が付加される。このように文書差分加工部55によって加工された差分が付加された第3のメッセージは、第1のユーザが利用するクライアント端末20からメッセージ作成支援装置50に対して送信される。ここでは、第1の文書の興味範囲のみに限定した差分及び可読性が高い形式に変換された当該差分が第3のメッセージに付加されるものとして説明したが、これらのうちの一方のみが付加されるような構成であってもよい。
メッセージ受信部56は、クライアント端末20によって送信された第3のメッセージ(加工された差分が付加された第3のメッセージ)を受信する(ステップS7)。このメッセージ受信部56によって受信された第3のメッセージには、第2の文書が添付されている。
メッセージ登録部57は、メッセージ受信部51によって受信された第3のメッセージをメッセージ格納部44に登録(格納)する(ステップS8)。また、メッセージ登録部57は、第3のメッセージに添付された第2の文書を文書格納部45に登録(格納)する。なお、メッセージ格納部44に格納された第3のメッセージ及び文書格納部45に格納された第2の文書は、後に閲覧権限を有するユーザによって閲覧可能である。
メッセージ送信部58は、メッセージ受信部56によって受信された第3のメッセージを当該第3のメッセージの送信先となる第2のユーザに送信する(ステップS9)。このとき、メッセージ送信部58は、第3のメッセージに含まれる送信先メールアドレスを用いて送信処理を実行する。なお、第3のメッセージに含まれる送信先メールアドレスが複数存在する場合であっても、当該複数の送信先メールアドレスに対して加工された差分が付加された第3のメッセージが送信される。換言すれば、本実施形態においては、主要返信先ユーザに応じて加工された差分が付加された第3のメッセージが全ての送信先となるユーザに送信される。
なお、メッセージ送信部58によって第3のメッセージが送信される際、当該第3のメッセージの本文を例えばメッセージ閲覧部59を介して閲覧するためのアクセス指定子(例えば、URL)をメッセージに追記する構成であってもよい。また、第3のメッセージ送信時のネットワーク帯域及びユーザ端末の記憶領域を削減するために、添付文書(ここでは、第2の文書)をアクセスURL等に置き換えてもよい。
上記したように第1の文書の興味範囲のみに限定した差分及び可読性が高い形式に変換された当該差分を付加された第3のメッセージを送信することによって、主要返信先ユーザは、当該主要返信先ユーザが興味を持っている範囲における変更内容(差分)を容易に認識することができる。
次に、図8のフローチャートを参照して、前述した主要返信先判定処理(図7に示すステップS4の処理)の処理手順について説明する。主要返信先判定処理は、上述したように主要返信先判定部52によって実行される処理である。ここでは、上述した第3のメッセージの送信先となる第2のユーザが複数存在しているものとして説明する。
まず、主要返信先判定部52は、第3のメッセージを取得する(ステップS11)。次に、主要返信先判定部52は、取得された第3のメッセージに含まれる送信先メールアドレスの各々に対応づけてユーザ情報格納部43に格納されている表示名(及び別名)を取得する(ステップS12)。
次に、ステップS12において取得された表示名(及び別名)の各々についてステップS13及びS14の処理が実行される。以下、ステップS13及びS14の処理が実行される表示名を対象表示名とする。
主要返信先判定部52は、ステップS11において取得された第3のメッセージ(の本文)の冒頭部分(の文字列)から、対象表示名を検索する。これにより、主要返信先判定部52は、第3のメッセージの冒頭部分に対象表示名があるか否かを判定する(ステップS13)。なお、ステップS13における第3のメッセージの冒頭部分としては、当該第3のメッセージの本文の冒頭数行が予め設定されているものとする。
第3のメッセージの冒頭部分に対象表示名がないと判定された場合(ステップS13のNO)、後述するステップS15の処理が実行される。
一方、第3のメッセージの冒頭部分に対象表示名があると判定された場合(ステップS13のYES)、主要返信先判定部52は、当該対象表示名(によって表される第2のユーザ)を主要返信先候補として追加する(ステップS14)。
ステップS14の処理が実行されると、ステップS12において取得された全ての表示名について上記したステップS13及びS14の処理が実行されたか否かを判定する(ステップS15)。
全ての表示名について処理が実行されていないと判定された場合(ステップS15のNO)、上記したステップS13に戻って処理が繰り返される。この場合、ステップS13及びS14の処理が実行されていない表示名を対象表示名として処理が繰り返される。
一方、全ての表示名について処理が実行されたと判定された場合(ステップS15のYES)、主要返信先判定部52は、主要返信先候補として追加された表示名のうち、第3のメッセージにおいて冒頭に出現する表示名によって表されるユーザを主要返信先ユーザとして特定する(ステップS16)。
つまり、主要返信先判定処理においては、第3のメッセージの本文の冒頭部分(冒頭数行)を走査することによって、当該第3のメッセージの送信先であるユーザであって当該冒頭部分において最初に出現する表示名によって表されるユーザを主要返信先ユーザとして決定する。
次に、図9のフローチャートを参照して、前述した差分生成処理(図7に示すステップS6の処理)の処理手順について説明する。上述したように差分生成処理においては、例えば第1のメッセージに添付されていた第1の文書及び第3のメッセージに添付された第2の文書(第1の文書が改訂された第2の文書)の差分が生成される。ここでは、便宜的に、第1のメッセージに添付されていた第1の文書を旧文書、第3のメッセージに添付された第2の文書を新文書として説明する。なお、差分生成処理は、上述したように文書差分生成部55によって実行される。
まず、文書差分生成部54は、差分生成処理の対象となる旧文書及び新文書を取得する(ステップS21)。なお、差分生成処理の対象となる文書(旧文書及び新文書)は、例えば当該文書の構造(情報)が解析等によって取得可能なものであるものとする。
ここで、図10及び図11を参照して、差分生成処理の対象となる文書について具体的に説明する。なお、差分生成処理の対象となる文書には、例えば業務文書等のドキュメント型文書及び発表資料等のプレゼンテーション型文書が含まれる。
図10は、ドキュメント型文書の一例を示す。図10に示すドキュメント型文書100は、例えば章101及び当該章101に含まれる節102のような階層的な構造を有する。
図10に示す例では、ドキュメント型文書100が有する章101は、章番号103、章タイトル104及び当該章101の本文105から構成されている。章101に含まれる節102は、当該章101の本文とみなすことができる。
また、ドキュメント型文書100が有する章101に含まれる節102は、節番号106、節タイトル107及び当該節102の本文108から構成されている。
図11は、プレゼンテーション型文書の一例を示す。図11に示すプレゼンテーション型文書200では、上記したドキュメント型文書100の章101及び節102の代わりに、ページ201及び当該ページ201内に含まれるページ内大項目202のような階層的な構造を有する。
図11に示す例では、プレゼンテーション型文書200が有するページ201は、ページ番号203、ページタイトル204及びページ内大項目202から構成されている。
また、プレゼンテーション型文書200が有するページ内大項目202は、大項目マーク205、大項目タイトル206及び本文207から構成されている。
以下、上記したドキュメント型文書及びプレゼンテーション型文書の扱いを共通化するために、ドキュメント型文書が有する章及びプレゼンテーション型文書が有するページを大ブロック、ドキュメント型文書が有する節及びプレゼンテーション型文書が有するページ内大項目を中ブロックと称する。また、ドキュメント型文書が有する章タイトル及びプレゼンテーション型文書が有するページタイトルを大ブロックタイトル、ドキュメント型文書が有する節タイトル及びプレゼンテーション型文書が有する大項目タイトルを中ブロックタイトルと称する。
再び図9に戻ると、文書差分生成部54は、取得された旧文書及び新文書を解析することによって、当該旧文書及び新文書からそれぞれ大ブロック及び中ブロックを判別する。これにより、文書差分生成部54は、旧文書及び新文書の大ブロック及び大ブロックタイトルと、旧文書及び新文書の中ブロック及び中ブロックタイトルとを取得する(ステップS22)。
次に、文書差分生成部54は、ステップS22において取得された新文書の大ブロックタイトルの各々についてステップS23〜S31の処理を実行する。
この場合、文書差分生成部54は、ステップS22において取得された新文書の大ブロックタイトルの中から1つの新文書の大ブロックタイトルを取得する(ステップS23)。以下、ここで取得された新文書の大ブロックタイトルを新文書の対象大ブロックタイトルと称する。また、新文書の対象大ブロックタイトルをタイトルとする新文書の大ブロックを新文書の対象大ブロックと称する。
次に、文書差分生成部54は、ステップS22において取得された旧文書の大ブロックタイトルの各々についてステップS24〜S28の処理を実行する。
文書差分生成部54は、ステップS22において取得された旧文書の大ブロックタイトルの中から1つの旧文書の大ブロックタイトルを取得する(ステップS24)。以下、ここで取得された旧文書の大ブロックタイトルを旧文書の対象大ブロックタイトルと称する。また、旧文書の対象大ブロックタイトルをタイトルとする旧文書の大ブロックを旧文書の対象大ブロックと称する。
文書差分生成部54は、新文書の対象大ブロックタイトル及び旧文書の対象大ブロックタイトルを比較する。これにより、文書差分生成部54は、新文書の対象大ブロックタイトル及び旧文書の対象大ブロックタイトルが一致するか否かを判定する(ステップS25)。
新文書の対象大ブロックタイトル及び旧文書の対象大ブロックタイトルが一致しないと判定された場合(ステップS25のNO)、文書差分生成部54は、ステップS22において取得された新文書の中ブロックタイトルの中から新文書の対象大ブロックに含まれる中ブロックタイトルを取得する(ステップS26)。以下、ステップS26において取得された中ブロックタイトルを新文書の対象中ブロックタイトルと称する。
一方、文書差分生成部54は、ステップS22において取得された旧文書の中ブロックタイトルの中から旧文書の対象大ブロックに含まれる中ブロックタイトルを取得する(ステップS27)。以下、ステップS27において取得された中ブロックタイトルを旧文書の対象中ブロックタイトルと称する。
次に、文書差分生成部54は、新文書の対象中ブロックタイトル及び旧文書の対象中ブロックタイトルの類似度を算出する。なお、新文書の対象中ブロックタイトル及び旧文書の対象中ブロックタイトルの類似度は、例えば編集距離/文字列長等の指標によって算出される。編集距離には、2つの文字列が異なる程度を示す数値が用いられる。具体的には、文字の挿入、削除または置換によって、1つの文字列を別の文字列に変形するのに必要な手順の最小回数で表現される。編集距離が用いられる場合、上記した2つの文字列が異なる程度を示す数値(1つの文字列を別の文字列に変形するのに必要な手順の最小回数)が小さい方が類似度が高くなる。
文書差分生成部54は、算出された類似度に基づいて、新文書の対象中ブロックタイトル及び旧文書の対象中ブロックタイトルが類似するか否かを判定する(ステップS28)。この場合、文書差分生成部54は、算出された類似度が例えば予め定められた値以上である場合に新文書の対象中ブロックタイトル及び旧文書の対象中ブロックタイトルが類似すると判定する。
新文書の対象中ブロックタイトル及び旧文書の対象中ブロックタイトルが類似しないと判定された場合(ステップS28のNO)、文書差分生成部54は、全ての旧文書の大ブロックタイトルについて上記したステップS24〜S28の処理が実行されたか否かを判定する(ステップS29)。
全ての旧文書の大ブロックタイトルについて処理が実行されていないと判定された場合(ステップS29のNO)、上記したステップS24に戻って、当該処理が実行されていない旧文書の大ブロックタイトルに対して処理が繰り返される。
一方、全ての旧文書の大ブロックタイトルについて処理が実行されたと判定された場合(ステップS29のYES)、文書差分生成部54は、新文書の対象大ブロックを新規ブロック(つまり、旧文書に対応する大ブロックが存在しない大ブロック)として判定する(ステップS30)。
また、上記したステップS25において新文書の対象大ブロックタイトル及び旧文書の対象大ブロックタイトルが一致すると判定された場合、文書差分生成部54は、新文書の対象大ブロック及び旧文書の対象大ブロックを対応づける(ステップS31)。
また、上記したステップS28において新文書の対象中ブロックタイトル及び旧文書の対象中ブロックタイトルが類似すると判定された場合、ステップS31の処理が実行される。
ステップS30またはS31の処理が実行されると、文書差分生成部54は、全ての新文書の大ブロックタイトルについてステップS23〜S31の処理が実行された否かを判定する(ステップS32)。
全ての新文書の大ブロックタイトルについて処理が実行されていないと判定された場合(ステップS32のNO)、上記したステップS23に戻って、当該処理が実行されてない新文書の大ブロックタイトルに対して処理が繰り返される。
一方、全ての新文書の大ブロックタイトルについて処理が実行されたと判定された場合(ステップS32のYES)、文書差分生成部54は、上記したステップS31において対応づけられた大ブロック(新文書の大ブロック及び旧文書の大ブロック)間で差分を生成する(ステップS33)。なお、上記したステップS30において新規ブロックと判定された新文書の大ブロックについては、当該新文書の大ブロック自体が差分となる。
上記したように差分生成処理においては、新文書の各大ブロックと旧文書の各大ブロックとの対応関係が判別され、当該対応関係のある新文書の大ブロックと旧文書の大ブロックとの間で差分が生成される。
なお、ステップS25において新文書の大ブロックタイトルと旧文書の大ブロックタイトルとが一致しない場合には、新文書の中ブロックタイトルと旧文書の中ブロックタイトルとの類似度を算出するものとして説明したが、例えば新文書の大ブロックタイトルと旧文書の大ブロックタイトルとの類似度が算出される構成であっても構わない。
また、新文書及び旧文書において中ブロックが存在しない場合には、上記したように新文書及び旧文書の大ブロック(タイトル)のみを用いて対応関係を判別することも可能である。
また、ステップS28においては中ブロックタイトル同士の類似度を算出して類似であるか否かを判定するものとして説明したが、例えば中ブロックのタイトル同士及び本文同士の類似度等を算出し、当該タイトル及び本文のそれぞれの類似度によって類似が判定されても構わない。この場合には、タイトルの方が内容の類似性に与える影響が多いため、タイトルの類似度及び本文の類似度に異なる重み係数をかけた上で判定処理を行うことが好ましい。
以下、送信先のユーザに対して送信される加工された差分が付加されたメッセージの具体例について説明する。
ここでは、図12に示すような流れ(返信関係)で各メッセージが既に送信されているものとする。なお、図12において、Mはメッセージを表し、A、B及びCはユーザを表し、Dは添付文書を表している。また、矢印は、返信関係を表している。なお、図12に示すようなメッセージの返信関係の流れは、メッセージ作成部51によって作成されたメッセージ及びメッセージ格納部44に格納されているメッセージに含まれる返信先メッセージIDに基づいて特定できる。
図12に示す例によれば、メッセージM1は、ユーザAからユーザB及びCに送信されており、文書D1が添付されていることが示されている。
また、図12に示す例によれば、ユーザBがメッセージM1に対する返信としてメッセージM2を送信しており、ユーザAがメッセージM2に対する返信として文書D3が添付されたメッセージM4を送信しており、更に、ユーザBがメッセージM4に対する返信としてメッセージM5を送信していることが示されている。なお、メッセージM2はユーザ及びユーザCに対して送信されており、メッセージM4はユーザB及びユーザCに対して送信されており、メッセージM5はユーザA及びユーザCに対して送信されているものとする。
更に、図12に示す例によれば、ユーザCがメッセージM1に対する返信として文書D2が添付されたメッセージM3を返信しており、ユーザAがメッセージM3に対する返信として文書D4が添付されたメッセージM6を送信しており、更に、ユーザCがメッセージM6に対する返信としてメッセージM7を送信していることが示されている。なお、メッセージM3はユーザA及びユーザBに対して送信されており、メッセージM6はユーザC及びユーザBに対して送信されており、メッセージM7はユーザA及びユーザBに対して送信されているものとする。
上記した図12に示す例においては、メッセージM1〜M7がメッセージ格納部44に格納されており、文書D1〜D4が文書格納部45に格納されている。
以下、図12に示す例において、ユーザAがメッセージM5に対する返信として文書D5が添付されたメッセージM8を送信する場合について説明する。
なお、図13は、ユーザAがユーザBに送信したメッセージM1の一例を示す。図14は、ユーザAがメッセージM1に対する返信として送信したメッセージM2の一例を示す。図15は、ユーザAがメッセージM2に対する返信として送信したメッセージM4の一例を示す。また、図16は、ユーザBがメッセージM4に対する返信として送信したメッセージM5の一例を示す。
また、図17は、メッセージM1に添付された文書D1の一例を示す。図18は、メッセージM4に添付された文書D3の一例を示す。また、図19は、メッセージM5に添付される文書D5の一例を示す。
上記したようにユーザAがメッセージM5に対する返信として文書D5が添付されたメッセージM8を送信する場合、ユーザAは、例えばクライアント端末20に表示される返信メッセージ作成画面に対して操作を行うことによって、メッセージM8を作成することができる。
ここで、図20は、ユーザAが利用するクライアント端末20に表示される返信メッセージ作成画面の一例を示す。なお、図20に示す返信メッセージ作成画面300は、例えばメッセージM5に対する返信をユーザAが指示した際に表示される。
返信メッセージ作成画面300には、例えば宛先欄301、本文作成欄302及び添付文書欄303が設けられている。
宛先欄301は、メッセージM8の送信先を指定するために設けられている。図20に示す返信メッセージ作成画面300の例では、宛先欄301には、メッセージM8の送信先としてユーザB及びユーザCが指定されている。なお、宛先欄301には追加ボタン301aが設けられている。ユーザAは、返信メッセージ作成画面300において追加ボタン301aを指定することによって宛先欄301に宛先(送信先)を追加することができる。
本文作成欄302は、メッセージM8の本文を作成するために設けられている。ユーザAは、クライアント端末20を操作することによって、この本文作成欄302において本文を作成することができる。
添付文書欄303は、メッセージM8に添付される文書を指定するために設けられている。図20に示す返信メッセージ作成画面300の例では、添付文書欄303には、メッセージM8に添付される文書として文書D5が指定されている。
なお、添付文書欄303には、削除ボタン303a、追加ボタン303b及び差分生成ボタン303cが設けられている。ユーザAは、返信メッセージ作成画面300において削除ボタン303aを指定することによって添付文書欄303において指定されている文書を削除することができる。また、ユーザAは、返信メッセージ作成画面300において追加ボタン303bを指定することによって添付文書欄303に文書を追加することができる。
また、ユーザAは、返信メッセージ作成画面300において差分生成ボタン303cを指定することができる。この場合、前述した図7に示す処理が実行される。
ここで、図20に示す返信メッセージ作成画面300の本文作成欄に作成された本文を参照すると、当該本文の冒頭部分において最初に出現する表示名はユーザBである。したがって、この場合における主要返信先ユーザはユーザBと決定される。
また、主要返信先ユーザであるユーザBから送信されたメッセージM2(図14に示すメッセージM2)及びメッセージM5(図16に示すメッセージM5)を参照すると、当該メッセージM2及びメッセージM5の本文には文書の範囲を表す文字列として「2ページ」、「3ページ」及び「4ページ」が存在する。この場合、ユーザBが興味を持っている範囲として「2ページ」、「3ページ」及び「4ページ」が特定される。
また、ユーザBが最後にアクセス(閲覧)した文書がメッセージM4に添付された文書D3である場合、当該文書D3とメッセージM5に添付された文書D5との差分が生成される。なお、ユーザBが最後にアクセスした文書が文書D3でなく、メッセージM1に添付された文書D1である場合には、当該文書D1及び文書D5の差分が生成されることになる。
この場合、上記したように特定された範囲(2ページ、3ページ及び4ページ)に基づいて文書D3と文書D5との差分が加工され、当該加工された差分がメッセージM8に付加される。
ここで、図21は、加工された差分が付加されたメッセージM8の一例を示す。図21に示す例では、図20に示す返信メッセージ作成画面300の本文作成欄302の末尾に加工された差分400が付加されている。
加工された差分400においては、上記したユーザBが興味を持っている2ページ〜4ページの差分が可読性の高い形式に変換されて記述されている。具体的には、「P2とP4が大きく変わっています」及び「ユーザBさんはP2〜P4に興味を持っていました」等が記述されている。また、「意図を記述することを推奨します」が記述されていることにより、ユーザAは、例えばユーザBが興味を持っている範囲の改訂内容(変更内容)に関するコメントをメッセージM8(の本文)に追記することを検討することができる。
また、加工された差分400においては、ユーザBが興味を持っている範囲の差分(変更内容)が細部として記述されている。
ユーザAは、図21に示す加工された差分400が付加されたメッセージM8を確認し、図20に示す返信メッセージ作成画面300に設けられている送信ボタン304を指定することができる。
このように送信ボタン304が指定されると、図21に示すメッセージM8(加工された差分400が付加されたメッセージM8)は、メッセージ作成支援装置50を介して、当該メッセージM8の送信先であるユーザB及びユーザCに送信される。
本実施形態においては、主要返信先ユーザであるユーザBが興味を持っている範囲に着目して差分を加工してメッセージM8に付加しているため、ユーザBは、当該ユーザBが興味を持っている範囲の差分を容易に確認することができる。
上記したように本実施形態においては、第1のユーザの操作に応じて、第2のメッセージに対する返信となる第2のユーザを送信先とする第3のメッセージであって、第1の文書が改訂された第2の文書が添付された第3のメッセージを作成し、メッセージ格納部44に格納されている第2のメッセージから第1の文書における範囲を表す文字列を抽出し、文書格納部45に格納されている第1の文書及び作成された第3のメッセージに添付された第2の文書の差分を生成し、抽出された文字列によって表される第1の文書における範囲に基づいて差分を加工し、当該加工された差分を第3のメッセージに付加して第2のユーザに対して送信する構成により、文書を受け取るユーザに応じて適切な差分内容を提示することが可能となる。
また、本実施形態においては、第3のメッセージの冒頭に出現する文字列によって表される第2のユーザを特定し、当該特定された第2のユーザから第1のユーザに対して送信された第2のメッセージから第1の文書における範囲を表す文字列を抽出する構成により、特に返信を希望する第2のユーザが興味を持っている範囲に応じて差分を加工することが可能となる。
更に、本実施形態においては、アクセス情報格納部46に格納されているアクセス情報に基づいて、特定された第2のユーザがアクセスした第1の文書及び第3のメッセージに添付された第2の文書の差分を生成する構成により、第2のユーザが、意識している(閲覧した)文書及び第2の文書の差分を生成することができる。
また、本実施形態においては、生成された差分を抽出された文字列によって表される第1の文書における範囲の差分に加工し、当該加工された差分を第3のメッセージに付加して第2のユーザに対して送信する構成により、第3のメッセージの送信先となる第2のユーザが興味を持っている範囲に限定した差分のみを当該第2のユーザに対して提示することができる。
また、本実施形態においては、抽出された文字列によって表される第1の文書における範囲の差分を可読性が高い形式に変換し、当該可読性が高い形式に変換された差分を第3のメッセージに付加して第2のユーザに対して送信する構成により、第2のユーザは、より容易に第2の文書の変更内容(第2のユーザが興味を持っている範囲の差分の内容)を把握することができる。
なお、本実施形態においては、第2のメッセージから第1の文書の範囲を表す文字列を抽出することによって第2のユーザが興味を持っている範囲を特定するものとして説明したが、例えば第2のメッセージからキーワード等を抽出することによって第2のユーザが興味を持っている範囲を特定する構成としても構わない。第2のメッセージからキーワードが抽出された場合には、例えば当該抽出されたキーワードの出現頻度が高い範囲を第2のユーザが興味を持っている範囲として特定することができる。
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。