(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0023】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【0024】
[コンピュータシステムの全体構成]
図1は、本実施の形態が適用されるコンピュータシステムの全体構成例を示した図である。図示するように、このコンピュータシステムは、クライアント10a〜10cと、インスタントメッセージサーバ(以下、「IMサーバ」という)20とが、ネットワーク80を介して接続されることにより、構成されている。尚、図では、クライアント10a〜10cを示したが、これらを区別する必要がない場合は、クライアント10と称する。また、図には、3つのクライアント10しか示していないが、4つ以上のクライアント10を設けてもよい。
【0025】
クライアント10は、ユーザがインスタントメッセージにより他のユーザとコミュニケーションを行う際に用いられるコンピュータ装置である。具体的には、ユーザが入力したメッセージを表示すると共にIMサーバ20経由で他のクライアント10に送信する。また、他のユーザが他のクライアント10に入力したメッセージをIMサーバ20経由で受信して表示する。ここで、クライアント10としては、デスクトップPC(Personal Computer)、ノートPC、タブレットPC、ウェアラブルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、携帯電話等を用いるとよい。
【0026】
IMサーバ20は、クライアント10間でのコミュニケーションツールであるインスタントメッセージを動作させるコンピュータ装置である。具体的には、インスタントメッセージに参加しているクライアント10を管理し、あるクライアント10からメッセージを受信すると、参加している他の全てのクライアント10に対してそのメッセージを送信する。尚、IMサーバ20は、メッセージをデータとして記憶する。以下、このデータを「メッセージデータ」と呼ぶ。ここで、IMサーバ20としては、PC等を用いるとよい。
【0027】
ネットワーク80は、クライアント10とIMサーバ20との間の情報通信に用いられる通信手段であり、例えば、インターネットである。
【0028】
[本実施の形態の概要]
図2は、このような構成を有するコンピュータシステムのクライアント10における一般的なインスタントメッセージによる表示の例を示した図である。この表示では、最初にユーザAがメッセージM1を入力し、これに続けて、ユーザBがメッセージM2を、ユーザCがメッセージM3をそれぞれ入力し、再びユーザAがメッセージM4を入力したことが示されている。また、その後、ユーザDがメッセージM5を、ユーザBがメッセージM6を、ユーザCがメッセージM7をそれぞれ入力したことも示されている。
【0029】
ところが、このような表示では、メッセージは入力された順に並べられているに過ぎない。従って、どのメッセージとどのメッセージとがつながっているのか、つまり、どのメッセージがどのメッセージに対する返答なのかが分かり難い。また、あるメッセージが別のメッセージのどの部分に対する返答なのかも分かり難い。
【0030】
例えば、
図2の表示例には、実際は以下のようなコンテクストがある。即ち、メッセージM1には、3つのインスタントメッセージソフトウェアを表すキーワード「IM1」、「IM2」、「IM3」が含まれている。そして、このうち、「IM1」について、ユーザBがメッセージM2を返答し、これに対してユーザAがメッセージM4を返答している。また、「IM2」について、ユーザCがメッセージM3を返答し、これに対してユーザBがメッセージM6を返答している。更に、「IM3」については、ユーザCがメッセージM7を返答している。一方、ユーザDは、メッセージM1の全体に対してメッセージM5を返答している。しかしながら、表示された情報からは、このようなコンテクストが見えない。
【0031】
そこで、本実施の形態では、返答する対象を指定し、返答するメッセージとその対象とをリンクさせるようにする。
【0032】
図3は、このように返答する対象を指定してメッセージを入力するときの操作の例を示した図である。この図では、
図2でメッセージM1に対してユーザBがメッセージM2を入力する場面のみを抜き出している。
【0033】
まず、ユーザBは、吹き出し31で示すように、メッセージM1内のキーワード「IM1」を選択する。次に、ユーザBは、吹き出し32で示すように、返信ボタンをクリックする。すると、返信するメッセージを入力するための返信ウィンドウ33が表示されるので、ユーザBは、吹き出し34で示すように、返信ウィンドウ33にメッセージM2を入力する。その後、ユーザBが、吹き出し35で示すように、OKボタンをクリックすると、メッセージM1に対するメッセージM2の返信が完了する。これにより、メッセージM1内のキーワード「IM1」とメッセージM2とが関連付けられ、そのことを示すリンクL1が表示される。ここで、このような関連付けは、例えば、後述するように、メッセージM1とメッセージM2とリンクL1とにタグ「IM1」を付加することにより、実現される。
【0034】
尚、先行するメッセージに対して何らかのメッセージを入力する態様としては、返信だけでなく、例えば、先行するメッセージに同調する意見の表明等もある。これらは一般化して「コメント」と捉えることができるが、本実施の形態では、返信を例にとって説明することにする。
【0035】
図4は、各ユーザが
図2に示したメッセージを返信する際に
図3に示した操作を行った場合の表示の例を示した図である。このような表示が、本実施の形態のゴールであり、返答する対象として指定されたキーワードとそのキーワードにリンクされた全てのメッセージとが表示されている。具体的には、メッセージM1内のキーワード又はその全体にメッセージM2〜M7の全てがリンクされているので、メッセージM1〜M7の全てが表示されている。また、メッセージM1内のキーワード又はその全体とメッセージM2〜M7との間には、
図2の説明で述べたような関連があるので、そのような関連を表すリンクL1〜L6も表示されている。また、メッセージの全体への返答は、そのメッセージ内の返答対象として指定された全てのキーワードに対する返答と考えればよい。ここでは、第1のメッセージの一例として、メッセージM1を用いており、第1のメッセージの少なくとも一部に対するコメントとして入力された第2のメッセージの一例として、メッセージM3を用いており、第1のメッセージの少なくとも一部と第2のメッセージとをつなぐリンクの一例として、リンクL2を用いている。
【0036】
また、本実施の形態において、同じ話題に関するメッセージの集まりであるスレッドは、リンクされたメッセージを辿ることで作成される。これは、例えば、関連するメッセージ及びその間のリンクに付加されたタグを辿ることにより、実現される。
【0037】
図5は、スレッド別の表示の例を示した図である。ここでは、
図4のような表示が行われた状態でユーザがメッセージM6を選択したときの表示を示している。このような表示は、メッセージM6からリンクされたキーワードを辿ることにより、実現される。或いは、メッセージM3、又は、メッセージM1,M3内のキーワード「IM2」を選択したときも同様の表示が行われる。一方で、例えばメッセージM2は、リンクを辿ってメッセージM1に辿り着くまでに現れないので、表示されない。ここでは、第1のメッセージの一の部分及び第2のメッセージの何れかを選択する操作が行われたときに表示されない第3のメッセージの一例として、メッセージM2を用いている。一方で、メッセージM5のように、メッセージM6からリンクされたキーワードにはつながっていないが、そのようなキーワードを含むメッセージの全体にリンクされているメッセージもある。本実施の形態では、このようなメッセージも同じスレッドに含めて表示するものとする。ここでは、第1のメッセージの全体に対するコメントとして入力され、第1のメッセージの一の部分及び第2のメッセージの何れかを選択する操作が行われたときに表示される第4のメッセージの一例として、メッセージM5を用いている。
【0038】
更に、本実施の形態では、メッセージからメッセージへのリンクを付け替えることも可能とする。
図6及び
図7は、リンクを付け替えるときの表示の例を示した図である。
【0039】
まず、
図6に示すように、あるユーザが、メッセージM7内のキーワード「IM3」を返答対象としてメッセージM8を入力したとする。すると、メッセージM7内の「IM3」とメッセージM8との関連を表すリンクL7が表示される。
【0040】
ところが、このような表示が行われた後に、そのユーザが、メッセージM8は「IM1」に関するメッセージなので、メッセージM7内の「IM3」を返答対象としたのは間違いだったと気付いたとする。この場合、そのユーザは、
図7に示すように、メッセージM4内のキーワード「IM1」を正しい返答対象とし、リンクをつなぎ替える操作を行うことができる。このような操作により、リンクL7は破線で示すように非表示となり、リンクL8が表示されるようになる。ここでは、リンクの一端の移動元の第1のメッセージの一例として、メッセージM7を用いており、リンクの一端を第1のメッセージの少なくとも一部から第5のメッセージの少なくとも一部に移動する操作が行われると第5のメッセージの少なくとも一部とつなぐリンクが表示される第2のメッセージの一例として、メッセージM8を用いており、リンクの一端が移動してきたときに第2のメッセージとつなぐリンクが表示される第5のメッセージの一例として、メッセージM4を用いている。
【0041】
尚、
図6及び
図7では、リンクのメッセージに接続された側を固定して、リンクのキーワードに接続された側をつなぎ替えるものとしたが、これには限らない。リンクのキーワードに接続された側を固定して、リンクのメッセージに接続された側をつなぎ替えるものとしてもよい。この場合は、例えば、リンクL7のメッセージ側の接続先をメッセージM8ではなく、その代わりのメッセージにつなぎ替えることになる。ここでは、リンクの一端が移動してきたときに第1のメッセージの少なくとも一部とつなぐリンクが表示される第6のメッセージの一例として、メッセージM8の代わりのメッセージを用いている。
【0042】
[本実施の形態におけるコンピュータシステムの機能構成]
図8は、これまで述べたような概要を実現するためのクライアント10及びIMサーバ20の機能構成例を示した図である。図示するように、クライアント10は、受信部11と、表示情報生成部12と、表示制御部13と、操作受付部14と、送信部15とを含む。また、IMサーバ20は、メッセージ情報記憶部21と、受信部22と、メッセージ情報管理部23と、送信部24とを含む。
【0043】
まず、クライアント10を構成する処理部について説明する。
【0044】
受信部11は、メッセージ情報のセットをIMサーバ20から受信する。ここで、メッセージ情報とは、メッセージデータとメッセージデータのプロパティとを含む情報である。また、受信部11は、既に表示されたメッセージ(以下、「既表示メッセージ」という)に関連するメッセージ(以下、「関連メッセージ」という)がIMサーバ20上に保存されている旨の情報をIMサーバ20から受信することもある。
【0045】
表示情報生成部12は、受信部11が受信したメッセージ情報のセットに基づいて、GUIを表示するための表示情報を生成する。また、関連メッセージがIMサーバ20上に保存されている旨の情報を受信部11が受信した場合は、関連メッセージを示すアイコンを表示するための表示情報を生成する。更に、操作受付部14がユーザ操作を受け付けた場合に、そのユーザ操作に応じたGUIを表示するための表示情報を生成する。例えば、ユーザ操作がメッセージ内のキーワードを選択するものである場合、そのキーワードを返信対象としてメッセージを入力するための返信ウィンドウを表示するための表示情報を生成する。また、ユーザ操作がメッセージを選択するものである場合、そのメッセージとつながった一連のメッセージのみを表示するための表示情報を生成する。更に、ユーザ操作がメッセージ間のリンクを選択するものである場合、そのメッセージの始端及び終端にドラッグ可能なアイコンを表示するための表示情報を生成し、ユーザ操作がそのアイコンをドラッグ&ドロップするものである場合、リンクを移動するか追加するかを問い合わせるダイアログボックスを表示するための表示情報を生成する。
【0046】
表示制御部13は、表示情報生成部12が生成した表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する。
【0047】
操作受付部14は、表示制御部13の制御により表示されたGUI上でのユーザ操作を受け付ける。
【0048】
送信部15は、操作受付部14がユーザ操作を受け付けた場合に、そのユーザ操作に関する情報をIMサーバ20に送信する。例えば、ユーザ操作が返信ウィンドウにメッセージを入力するものである場合、そのメッセージをIMサーバ20に送信する。また、ユーザ操作が関連メッセージを示すアイコンを選択するものである場合、その関連メッセージを特定する情報をIMサーバ20に送信し、ユーザ操作が既表示メッセージと関連メッセージとを関連付けるものである場合、それらのメッセージを関連付ける旨の情報をIMサーバ20に送信する。更に、ユーザ操作がリンクを移動するか追加するかを指定するものである場合、既存のリンクの始端及び終端を示す情報(以下、「既存始端終端情報」という)と、新規のリンクの始端及び終端を示す情報(以下、「新規始端終端情報」という)と、リンクを移動するか追加するかの区分(以下、「移動追加区分」という)とをIMサーバ20に送信する。
【0049】
次に、IMサーバ20を構成する処理部及び記憶部について説明する。
【0050】
メッセージ情報記憶部21は、メッセージ情報を記憶する。メッセージ情報とは、上述したように、メッセージデータと、メッセージデータのプロパティとを含む情報である。メッセージデータのプロパティはメッセージプロパティとリンクプロパティとを含む。メッセージプロパティは、タグ情報等のメタデータを複数持つことができる。リンクプロパティは、メッセージのつながりを表現するものであり、これもタグ情報等のメタデータを複数持つことができる。ここで、タグ情報は、IMサーバ20上に保存されているタグへのURLであってもよい。
【0051】
受信部22は、ユーザ操作に関する情報をクライアント10から受信する。例えば、ユーザ操作が返信ウィンドウにメッセージを入力するものである場合、そのメッセージをクライアント10から受信する。また、ユーザ操作が関連メッセージを示すアイコンを選択するものである場合、その関連メッセージを特定する情報をクライアント10から受信し、ユーザ操作が既表示メッセージと関連メッセージとを関連付けるものである場合、それらのメッセージを関連付ける旨の情報をクライアント10から受信する。更に、ユーザ操作がリンクを移動するか追加するかを指定するものである場合、既存始端終端情報と新規始端終端情報と移動追加区分とをクライアント10から受信する。本実施の形態では、メッセージを取得する取得部の一例として、受信部22を設けている。
【0052】
メッセージ情報管理部23は、受信部22が受信したユーザ操作に関する情報に基づいて、メッセージ情報記憶部21に記憶されたメッセージ情報の更新を行う。例えば、ユーザ操作に関する情報が返信ウィンドウに入力されたメッセージである場合、そのメッセージのメッセージデータを追加し、そのメッセージが返信対象とするキーワードとその追加したメッセージデータとの間にリンクを設定する。また、ユーザ操作に関する情報が既表示メッセージと関連メッセージとを関連付ける旨の情報である場合、これらのメッセージのメッセージデータの間にリンクを設定する。更に、ユーザ操作に関する情報が既存始端終端情報と新規始端終端情報と移動追加区分とである場合、対象のリンクの付け替え又は追加を行う。また、メッセージ情報管理部23は、メッセージ情報記憶部21に記憶されたメッセージ情報の読み出しも行う。更に、メッセージ情報管理部23は、関連メッセージがメッセージ情報記憶部21に記憶されているかどうかの判定も行う。本実施の形態では、リンク情報を生成する生成部の一例として、メッセージ情報管理部23を設けている。
【0053】
送信部24は、メッセージ情報管理部23が読み出したメッセージ情報のセットをクライアント10に送信する。また、送信部24は、関連メッセージがメッセージ情報記憶部21に記憶されているとメッセージ情報管理部23により判定された場合に、関連メッセージがIMサーバ20上に保存されている旨の情報をクライアント10に送信する。本実施の形態では、メッセージ等が表示されるように又は表示されないように制御する制御部の一例として、送信部24を設けている。
【0054】
ここで、メッセージ情報記憶部21に記憶されるメッセージプロパティ及びリンクプロパティの内容について説明する。
図9(a)〜(c)は、このようなメッセージプロパティ及びリンクプロパティの例を示した図である。この図では、
図4のメッセージM1及びメッセージM2について示している。
【0055】
図9(a)は、メッセージM1のメッセージプロパティの一部のリンクに関する部分である。図示するように、メッセージプロパティは、リンクとして、メッセージM1につながるリンクL1,L2,L4,L6を保持し、タグ情報として、キーワード「IM1」、「IM2」、「IM3」を保持している。
【0056】
図9(b)は、メッセージM1につながるリンクL1のリンクプロパティの一部である。図示するように、リンクプロパティは、リンク先メッセージとして、リンクL1のリンク先であるメッセージM2を保持し、リンク元キーワード及びタグ情報として、メッセージM2の返答対象として指定されたキーワード「IM1」を保持している。本実施の形態では、リンク情報の一例として、リンクプロパティを用いている。
【0057】
図9(c)は、メッセージM2のメッセージプロパティの一部のリンクに関する部分である。図示するように、メッセージプロパティは、リンクとして、メッセージM2につながっているリンクL3を保持し、タグ情報として、メッセージM2の返答対象として指定されたキーワード「IM1」を保持している。
【0058】
[本実施の形態におけるコンピュータシステムの動作]
図10は、
図3及び
図4に示した概要を実現する際のクライアント10及びIMサーバ20の動作例を示したシーケンス図である。この動作は、例えば、ユーザがクライアント10からIMサーバ20へインスタントメッセージの開始要求を送った時に開始するものとする。
【0059】
図10に示すように、IMサーバ20では、まず、メッセージ情報管理部23が、メッセージ情報記憶部21からメッセージ情報のセットを読み出し、送信部24が、これをクライアント10に送信する(ステップ201)。ここで、メッセージ情報管理部23は、メッセージ情報記憶部21から、例えば、ユーザにより明示的に指定されたセッションに関するメッセージ情報のセットを読み出せばよい。或いは、ユーザが招待されたセッション、ユーザが参加申請したセッション、注目タグを含むセッション等のユーザに関連するセッションを判断して、そのセッションに関するメッセージ情報のセットを読み出してもよい。
【0060】
これにより、クライアント10では、受信部11が、IMサーバ20からメッセージ情報のセットを受信する(ステップ101)。そして、表示情報生成部12が、メッセージ情報のセットに基づいてGUIを表示するための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ102)。具体的には、表示情報生成部12は、メッセージ情報に含まれるメッセージデータに基づいて、GUIのメッセージの部分を生成する。また、メッセージ情報に含まれるメッセージプロパティ及びリンクプロパティに基づいて、GUIのリンクの部分を生成する。そして、表示制御部13は、メッセージのセット及びメッセージ間のリンクを含むGUIが表示されるように制御する。
【0061】
この状態で、ユーザが返信対象とするメッセージ内のキーワードを選択する操作を行うと、操作受付部14が、その操作を受け付ける(ステップ103)。このとき、ユーザは返信対象のキーワードを複数選択することもできる。また、返信のサジェスト機能によりサジェストされたキーワードを選択してもよい。ここで、返信のサジェスト機能とは、例えば、既に存在するタグ情報に対応するキーワードを選択候補として表示する機能である。
【0062】
具体的には、
図11に示すように、メッセージM1が表示された状態で、ユーザが、吹き出し41で示すように、メッセージM1内のキーワード「IM1」を選択し、吹き出し42で示すように、返信ボタンをクリックしたとする。すると、キーワード「IM3」を返信対象として既に入力されたメッセージが存在することを通知する通知ウィンドウ43が表示される。尚、この例では、通知ウィンドウ43を、キーワード「IM3」を起点とする吹き出し形状のウィンドウとしたが、キーワード「IM3」にリンクされた四角形のウィンドウ等、如何なるUIとしてもよい。また、通知ウィンドウ43内には、必須ではないが、既に存在するメッセージのスレッドを表示してもよい。この状態で、ユーザは、吹き出し44で示すように、OKボタンをクリックすることで、既存の返答箇所へ同時に返答することをシステムに通知する。或いは、複数の既存の返答箇所に対して同様のアクションをとることで、複数の既存の返答箇所へ同時に返答することを通知してもよい。
【0063】
すると、
図12に示すように、選択された既存のメッセージM7とそこまでのリンクL6とが表示される。また、このとき、必須ではないが、メッセージM7のスレッドを表示してもよい。更に、返信するメッセージを入力するための返信ウィンドウ45が表示されるので、ユーザは、吹き出し46で示すように、返信ウィンドウ45に、キーワード「IM1」、「IM3」に対するメッセージM9を入力する。その後、ユーザが、吹き出し47で示すように、OKボタンをクリックすると、メッセージM1に対するメッセージM9の返信が完了する。これにより、メッセージM1内のキーワード「IM1」、「IM3」とメッセージM9とが関連付けられ、そのことを示すリンクL9が表示される。ここで、このような関連付けは、例えば、メッセージM1にタグ「IM1」を追加し、メッセージM9とリンクL9とにタグ「IM1」、「IM3」を付加することにより、実現される。このとき、リンクL9には、最初に選択された箇所へのリンクだけでなく、サジェスト機能で選択された箇所へのリンクも含まれる。また、最終的に関連する返答メッセージが全て表示されるようにしてもよい。
【0064】
再び
図10を参照してクライアント10及びIMサーバ20の動作例の説明を続ける。ステップ103でメッセージ内のキーワードを選択する操作を受け付けると、操作受付部14は、選択されたキーワードを保持しておく。その後、表示情報生成部12が、返信ウィンドウを表示するための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ104)。
【0065】
これに応答して、ユーザが返信するメッセージを入力する操作を行うと、操作受付部14が、その操作を受け付ける(ステップ105)。すると、送信部15が、ここで操作受付部14が受け付けたメッセージと、先に操作受付部14が保持していたキーワードとを、IMサーバ20に送信する(ステップ106)。
【0066】
これにより、IMサーバ20では、受信部22が、クライアント10からメッセージ及びキーワードを受信する(ステップ202)。そして、メッセージ情報管理部23が、受信したメッセージのメッセージデータを作成してメッセージ情報記憶部21に記憶する(ステップ203)。また、メッセージ情報管理部23は、ステップ203で作成したメッセージデータにメッセージプロパティを設定してメッセージ情報記憶部21に記憶する(ステップ204)。具体的には、ステップ203で作成したメッセージデータのメッセージプロパティを作成し、ステップ103で選択されたキーワードをタグ情報として設定し、これをメッセージ情報記憶部21に記憶する。更に、メッセージ情報管理部23は、ステップ103で返信対象としたメッセージのメッセージデータと、ステップ203で作成されたメッセージデータとの間にリンクを設定し、そのリンクの情報をメッセージ情報記憶部21に記憶する(ステップ205)。具体的には、ステップ103で返信対象としたメッセージのメッセージプロパティに、この2つのメッセージ間のリンクを設定し、ステップ103で選択されたキーワードをタグ情報として設定する。また、この設定したリンクのリンクプロパティを作成し、ステップ203で作成したメッセージデータを特定する情報をリンク先メッセージとして設定し、ステップ103で選択されたキーワードをリンク元キーワード及びタグ情報として設定し、これをメッセージ情報記憶部21に記憶する。
【0067】
その後、送信部24が、このセッションに関係する他の全てのクライアント10へメッセージ情報が更新された旨を通知する(ステップ206)。
【0068】
そして、この動作は、例えば、ユーザがクライアント10からIMサーバ20へインスタントメッセージの終了要求を送ると終了する。
【0069】
尚、この動作例において、ステップ105で入力された返信メッセージと、返信対象メッセージと返信メッセージとの間のリンクとを、自クライアント10に表示されたGUIに反映させる方法としては、2つの方法が考えられる。
【0070】
第1の方法は、ステップ206の後にIMサーバ20から更新後のメッセージ情報を受信し、この更新後のメッセージ情報に基づいて、自クライアント10に表示されたGUIに返信メッセージ及びリンクを反映させる方法である。
【0071】
第2の方法は、IMサーバ20でメッセージ情報を更新するのと並行して、ステップ101で受信して保持していたメッセージ情報を表示情報生成部12が更新し、この表示情報生成部12による更新後のメッセージ情報に基づいて、自クライアント10に表示されたGUIに返信メッセージ及びリンクを反映させる方法である。
【0072】
図13は、
図10に示したクライアント10及びIMサーバ20の動作を拡張した動作例を示したシーケンス図である。
図10のステップ203〜205でメッセージ情報が更新された後に、以下の動作を行ってもよい。
【0073】
即ち、
図13に示すように、IMサーバ20では、メッセージ情報管理部23が、
図10の動作の結果としてクライアント10に表示された返信メッセージのメッセージデータに関連するメッセージデータのセットがメッセージ情報記憶部21に記憶されているかどうかを判断し、関連するメッセージデータのセットがあると判断されれば、送信部24が、その旨をクライアント10に送信する(ステップ221)。例えば、ステップ203で記憶されたメッセージデータのメッセージプロパティに含まれるタグ情報と、全く別のユーザ同士が交換しているメッセージデータのメッセージプロパティに含まれるタグ情報とが、文字列として一致する場合に、これらのメッセージデータを、関連するメッセージデータとすればよい。
【0074】
これにより、クライアント10では、受信部11が、関連するメッセージデータのセットがある旨の情報をIMサーバ20から受信する(ステップ121)。そして、表示情報生成部12が、その旨をアイコン等で示したGUIを表示するための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ122)。ここで、アイコン等は、ユーザ別、地域別、時間別等に分けて複数表示してもよい。また、アイコン等としたが、アイコン等で表現される視覚的な合図等であれば如何なる表示オブジェクトを表示してもよい。
【0075】
これに応答して、ユーザがアイコンを選択する操作を行うと、操作受付部14が、その操作を受け付ける(ステップ123)。すると、送信部15が、アイコンを選択する操作が行われた旨をIMサーバ20に送信する(ステップ124)。
【0076】
これにより、IMサーバ20では、受信部22が、アイコンを選択する操作が行われた旨を受信する(ステップ222)。すると、メッセージ情報管理部23が、メッセージ情報記憶部21から、ステップ123で選択されたアイコンで示される関連メッセージに関するメッセージ情報のセットを読み出し、送信部24が、これをクライアント10に送信する(ステップ223)。
【0077】
これにより、クライアント10では、受信部11が、IMサーバ20から関連メッセージに関するメッセージ情報のセットを受信する(ステップ125)。そして、表示情報生成部12が、関連メッセージに関するメッセージ情報のセットに基づいてGUIを表示するための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ126)。具体的には、表示情報生成部12は、メッセージ情報に含まれるメッセージデータに基づいて、GUIのメッセージの部分を生成する。また、メッセージ情報に含まれるメッセージプロパティ及びリンクプロパティに基づいて、GUIのリンクの部分を生成する。そして、表示制御部13は、メッセージのセット及びメッセージ間のリンクを含むGUIが表示されるように制御する。ここで、関連メッセージは、第1のメッセージ及び第2のメッセージとは関係なく入力された第7のメッセージの一例である。
【0078】
これに応答して、ステップ126で表示された関連メッセージと、既に表示されていた返信メッセージ(既表示メッセージ)とを関連付ける操作をユーザが行うと、操作受付部14が、その操作を受け付ける(ステップ127)。すると、送信部15が、メッセージを関連付ける操作が行われた旨をIMサーバ20に送信する(ステップ128)。
【0079】
これにより、IMサーバ20では、受信部22が、メッセージを関連付ける操作が行われた旨を受信する(ステップ224)。すると、メッセージ情報管理部23が、関連メッセージのメッセージデータと既表示メッセージのメッセージデータとの間にリンクを設定する(ステップ225)。具体的には、既表示メッセージのメッセージプロパティに、この2つのメッセージ間のリンクを設定し、関連メッセージのメッセージプロパティに設定されているタグ情報を設定する。また、関連メッセージのメッセージプロパティに、この2つのメッセージ間のリンクを設定し、既表示メッセージのメッセージプロパティに設定されているタグ情報を設定する。更に、この設定したリンクのリンクプロパティを作成し、関連メッセージをリンク先メッセージとして設定し、既表示メッセージのタグ情報のうち関連メッセージのタグ情報でもあるものをリンク元キーワード及びタグ情報として設定し、これをメッセージ情報記憶部21に記憶する。
【0080】
その後、送信部24が、このセッションに関係する他の全てのクライアント10及び関連するメッセージの交換を行っている全てのクライアント10へメッセージ情報が更新された旨を通知する(ステップ226)。これにより、関連するメッセージの交換を行っているクライアント10にもメッセージのセットが表示される。尚、メッセージのセットはアイコン等で省略表示され、ユーザの明示の指示により詳細表示されるようにしてもよい。
【0081】
尚、この動作例において、関連メッセージと既表示メッセージとの間のリンクを、自クライアント10に表示されたGUIに反映させる方法としては、2つの方法が考えられる。
【0082】
第1の方法は、ステップ226の後にIMサーバ20から更新後のメッセージ情報を受信し、この更新後のメッセージ情報に基づいて、自クライアント10に表示されたGUIに返信メッセージ及びリンクを反映させる方法である。
【0083】
第2の方法は、IMサーバ20でメッセージ情報を更新するのと並行して、ステップ125で受信して保持していたメッセージ情報を表示情報生成部12が更新し、この表示情報生成部12による更新後のメッセージ情報に基づいて、自クライアント10に表示されたGUIに返信メッセージ及びリンクを反映させる方法である。
【0084】
図14は、
図5に示した概要を実現する際のクライアント10及びIMサーバ20の動作例を示したシーケンス図である。この動作も、例えば、ユーザがクライアント10からIMサーバ20へインスタントメッセージの開始要求を送った時に開始するものとする。
【0085】
図14に示すように、IMサーバ20では、まず、メッセージ情報管理部23が、メッセージ情報記憶部21からメッセージ情報のセットを読み出し、送信部24が、これをクライアント10に送信する(ステップ241)。
【0086】
これにより、クライアント10では、受信部11が、IMサーバ20からメッセージ情報のセットを受信する(ステップ141)。そして、表示情報生成部12が、メッセージ情報のセットに基づいてGUIを表示するための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ142)。具体的には、表示情報生成部12は、メッセージ情報に含まれるメッセージデータに基づいて、GUIのメッセージの部分を生成する。また、メッセージ情報に含まれるメッセージプロパティ及びリンクプロパティに基づいて、GUIのリンクの部分を生成する。そして、表示制御部13は、メッセージのセット及びメッセージ間のリンクを含むGUIが表示されるように制御する。
【0087】
この状態で、ユーザがメッセージを選択する操作を行うと、操作受付部14が、その操作を受け付ける(ステップ143)。すると、表示情報生成部12が、ステップ141で受信したメッセージ情報において、リンクを辿ることにより、一連のメッセージを抽出する(ステップ144)。具体的には、ステップ143で選択されたメッセージに対応するメッセージプロパティに設定されたのと同じタグ情報が設定されたメッセージプロパティ及びリンクプロパティに対応するメッセージ及びリンクを抽出すればよい。そして、表示情報生成部12が、抽出された一連のメッセージのみを表示し、他のメッセージを非表示とするための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ145)。
【0088】
尚、この動作例では、リンクを辿ることにより一連のメッセージを抽出する処理を、クライアント10で行うようにしたが、IMサーバ20で行うようにしてもよい。その場合、クライアント10及びIMサーバ20は以下のような動作を行うことになる。即ち、クライアント10では、操作受付部14が、ユーザがメッセージを選択する操作を受け付け、送信部15が、メッセージを選択する操作が行われた旨をIMサーバ20に送信する。これにより、IMサーバ20では、受信部22が、メッセージを選択する操作が行われた旨をクライアント10から受信し、メッセージ情報管理部23が、メッセージ情報記憶部21に記憶されたメッセージ情報において、リンクを辿ることにより、一連のメッセージを抽出し、送信部24が、抽出された一連のメッセージをクライアント10に送信する。これにより、クライアント10では、受信部11が、抽出された一連のメッセージをIMサーバ20から受信し、表示情報生成部12が、抽出された一連のメッセージのみを表示して他のメッセージを非表示とするための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する。
【0089】
図15は、
図6及び
図7に示した概要を実現する際のクライアント10及びIMサーバ20の動作例を示したシーケンス図である。この動作も、例えば、ユーザがクライアント10からIMサーバ20へインスタントメッセージの開始要求を送った時に開始するものとする。尚、ここでは、リンクのキーワードにつながっている方の端部を「始端」と呼び、リンクのメッセージにつながっている方の端部を「終端」と呼ぶことにする。
【0090】
図15に示すように、IMサーバ20では、まず、メッセージ情報管理部23が、メッセージ情報記憶部21からメッセージ情報のセットを読み出し、送信部24が、これをクライアント10に送信する(ステップ261)。
【0091】
これにより、クライアント10では、受信部11が、IMサーバ20からメッセージ情報のセットを受信する(ステップ161)。そして、表示情報生成部12が、メッセージ情報のセットに基づいてGUIを表示するための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ162)。具体的には、表示情報生成部12は、メッセージ情報に含まれるメッセージデータに基づいて、GUIのメッセージの部分を生成する。また、メッセージ情報に含まれるメッセージプロパティ及びリンクプロパティに基づいて、GUIのリンクの部分を生成する。そして、表示制御部13は、メッセージのセット及びメッセージ間のリンクを含むGUIが表示されるように制御する。
【0092】
この状態で、ユーザがメッセージ間のリンクを選択する操作を行うと、操作受付部14が、その操作を受け付ける(ステップ163)。このとき、操作受付部14は、選択されたリンクの始端のキーワードと終端のメッセージとを含む既存始端終端情報を保持しておく。その後、表示情報生成部12が、リンクの始端及び終端にドラッグ可能なアイコンを表示するための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ164)。
【0093】
これに応答して、ユーザがアイコンを既表示のメッセージにドラッグ&ドロップする操作を行うと、操作受付部14が、その操作を受け付ける(ステップ165)。このとき、操作受付部14は、リンクの始端のアイコンがドラッグ&ドロップされれば、リンクの始端のキーワードとしてドラッグ&ドロップ先のキーワードを含み、リンクの終端のメッセージとしてドラッグ&ドロップ前と同じメッセージを含む新規始端終端情報を保持しておく。また、リンクの終端のアイコンがドラッグ&ドロップされれば、リンクの始端のキーワードとしてドラッグ&ドロップ前と同じキーワードを含み、リンクの終端のメッセージとしてドラッグ&ドロップ先のメッセージを含む新規始端終端情報を保持しておく。その後、表示情報生成部12が、リンクを移動するか追加するかを質問するダイアログボックスを表示するための表示情報を生成し、表示制御部13が、表示情報に基づく表示が行われるように表示機構10d(
図16参照)を制御する(ステップ166)。
【0094】
これに応答して、ユーザがリンクを移動するか追加するかを選択する操作を行うと、操作受付部14が、その操作を受け付ける(ステップ167)。すると、送信部15が、操作受付部14が先に保持していた既存始端終端情報及び新規始端終端情報と、ここで操作受付部14が受け付けた移動か追加かを識別する移動追加区分とをIMサーバ20に送信する(ステップ168)。
【0095】
これにより、IMサーバ20では、受信部22が、既存始端終端情報と新規始端終端情報と移動追加区分とを受信する(ステップ262)。すると、メッセージ情報管理部23が、対象となるメッセージ間のリンクの付け替え又は追加を行う(ステップ263)。具体的には、新規始端終端情報で示されるリンクのリンクプロパティを作成し、リンクプロパティに、新規始端終端情報に含まれる終端のメッセージをリンク先メッセージとして設定し、新規始端終端情報に含まれる始端のキーワードをリンク元キーワード及びタグ情報として設定し、これをメッセージ情報記憶部21に記憶する。また、始端側のメッセージのメッセージプロパティに、この設定されたリンクを設定する。更に、終端側のメッセージのメッセージプロパティに、始端側のメッセージのメッセージプロパティに設定されているタグ情報を設定する。移動追加区分が追加を示していれば、処理はここまでであるが、移動追加区分が移動を示していれば、既存のリンクの削除も行う。即ち、既存始端終端情報で示されるリンクのリンクプロパティを削除する。また、始端側のメッセージのメッセージプロパティから、この削除されたリンクを削除する。更に、終端側のメッセージのメッセージプロパティから、始端側のメッセージのメッセージプロパティに設定されているタグ情報を削除する。
【0096】
その後、送信部24が、このセッションに関係する他の全てのクライアント10にメッセージ情報が更新された旨を通知する(ステップ264)。
【0097】
尚、この動作例において、メッセージの付け替え又は追加を、自クライアント10に表示されたGUIに反映させる方法としては、2つの方法が考えられる。
【0098】
第1の方法は、ステップ264の後にIMサーバ20から更新後のメッセージ情報を受信し、この更新後のメッセージ情報に基づいて、自クライアント10に表示されたGUIにメッセージの付け替え又は追加を反映させる方法である。
【0099】
第2の方法は、IMサーバ20でメッセージ情報を更新するのと並行して、ステップ168で送信した既存始端終端情報と新規始端終端情報と移動追加区分とに基づいて、自クライアント10に表示されたGUIにメッセージの付け替え又は追加を反映させる方法である。
【0100】
即ち、本実施の形態では、IMサーバ20がメッセージ情報を一元管理し、IMサーバ20がこれを更新する構成を主に想定したが、この限りではない。各動作例のバリエーションとして示したように、クライアント10がIMサーバ20からメッセージ情報を受信し、クライアント10がこれを更新する構成を採用してもよい。この場合は、受信部11が、メッセージを取得する取得部の一例として機能し、表示情報生成部12が、リンク情報を生成する生成部の一例として機能し、表示制御部13が、メッセージ等が表示されるように又は表示されないように制御する制御部の一例として機能することになる。
【0101】
以上述べたように、本実施の形態では、返信対象のキーワードと返信するメッセージとを結び付けてグラフィカルに表示するようにした。これにより、インスタントメッセージにおけるメッセージのつながりを明らかにすることが可能となった。
【0102】
また、本実施の形態では、メッセージをスレッドごとに表示したり非表示としたりする機能を設けた。これにより、ユーザが興味のあるスレッドのみを表示することが可能となった。
【0103】
更に、本実施の形態では、メッセージ間のリンクのつながり先を変更する機能を設けた。これにより、メッセージのスレッドを後から作成し、一連のメッセージに意味付けを行うことが可能になった。
【0104】
[本実施の形態を適用可能なコンピュータのハードウェア構成]
図16は、本実施の形態におけるクライアント10のハードウェア構成例を示した図である。図示するように、クライアント10は、演算手段であるCPU(Central Processing Unit)10aと、M/B(マザーボード)チップセット10bを介してCPU10aに接続されたメインメモリ10cと、同じくM/Bチップセット10bを介してCPU10aに接続された表示機構10dとを備える。また、M/Bチップセット10bには、ブリッジ回路10eを介して、ネットワークインターフェイス10fと、磁気ディスク装置(HDD)10gと、音声機構10hと、キーボード/マウス10iと、光学ドライブ10jとが接続されている。
【0105】
尚、
図16において、各構成要素は、バスを介して接続される。例えば、CPU10aとM/Bチップセット10bの間や、M/Bチップセット10bとメインメモリ10cの間は、CPUバスを介して接続される。また、M/Bチップセット10bと表示機構10dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構10dがPCI Express対応のビデオカードを含む場合、M/Bチップセット10bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路10eと接続する場合、ネットワークインターフェイス10fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置10gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス10i、及び、光学ドライブ10jについては、USB(Universal Serial Bus)を用いることができる。
【0106】
また、
図16は、クライアント10のハードウェア構成例を示すものとしたが、IMサーバ20のハードウェア構成例を示すものと捉えてもよい。
【0107】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0108】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。