(57)【要約】      （修正有）【課題】２人以上の異なる人によって送信された複数のメッセージを一緒に表示し、ユーザが適切な脈絡の中で個別のメッセージを理解するために役立つ枠組みを提供する。【解決手段】複数のメッセージのそれぞれは、個々の会話に関連付けられ、それぞれの会話は個々の会話識別子を有する。さらに、それぞれの会話は、第１の事前定義された基準を満たす共通の特性の組を共有する、１つまたは複数のメッセージの組を含む。会話リストは、１組の行として、第２の事前定義された基準により決定される順序で表示され、各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストと、会話トピックと、日付／時刻値とを少なくとも含む。会話の内容は、表示された会話リストからユーザが会話を選択した場合に表示される。メッセージは、拡張モード、短縮モード、および隠しモードの、３つのモードのうちの１つで表示されてもよい。【選択図】図１
2014209349.tif 000002
【特許請求の範囲】
【請求項１】
電子メッセージを処理する方法であって、
ユーザに宛てられた複数の電子メッセージを受信するステップと（各メッセージは固有のメッセージ識別子を有する）、
前記複数の電子メッセージのそれぞれを、個々の会話に関連付けるステップと（各会話は固有の会話識別子を有し、各会話は１つまたは複数の電子メッセージの組を含む）、
会話リストを所定の順序で表示するステップと（各会話は前記リスト内の単一の項目として表される）を含む方法。
【請求項２】
前記会話リストは行の組を含み、各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストを少なくとも含み、前記会話リスト内の行の前記送信者リストは、対応する会話内の少なくとも１つのメッセージの、１人または複数の送信者の識別子を含み、
前記行に対応する前記会話が、第１の送信者により送信されたメッセージと、第２の送信者により送信された１つまたは複数のメッセージとを含む場合、前記表示するステップは、前記第１の送信者により送信された前記メッセージがまだ表示されていないか、または前記ユーザによって既読として印付けられていない場合に、前記送信者リスト内の前記第１の送信者の識別子を、第１の識別性のあるフォーマットで表示するステップと、前記第２の送信者により送信されたすべてのメッセージがすでに表示されたか、または前記ユーザによって既読として印付けられている場合に、前記送信者リスト内の前記第２の送信者の識別子を、第２の識別性のあるフォーマットで表示するステップとを含む、請求項１に記載の方法。
【請求項３】
前記表示するステップは、前記送信者リスト内の送信者の名前を、前記送信者によって送信されたメッセージが前記ユーザによってまだ読まれていない場合にハイライトするステップを含む、請求項２に記載の方法。
【請求項４】
前記送信者リスト内の送信者の識別子は、前記送信者が前記ユーザである場合に、固有の文字列またはアイコンで置き換えられる、請求項３に記載の方法。
【請求項５】
前記行の組の中の行は、前記ユーザが前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを識別する、受信者インジケータを含む、請求項２に記載の方法。
【請求項６】
前記ユーザが前記表示された会話リスト内の会話を選択した場合に、会話の内容を表示するステップを含み、前記表示するステップは、１つまたは複数のサブフォームを表示するステップを含み、各サブフォームは前記会話内の個々の電子メッセージに対応し、各サブフォームは、短縮表示モードと拡張表示モードとを含む、２つの表示モードを有する、請求項２に記載の方法。
【請求項７】
すでに表示されたか、または前記ユーザによって既読として印付けられている電子メッセージに対応する前記サブフォームは、前記短縮表示モードで描画され、まだ表示されていないか、または前記ユーザによって既読として印付けられていない電子メッセージに対応する前記サブフォームは、前記拡張表示モードで描画される、請求項６に記載の方法。
【請求項８】
前記メッセージ送信者および前記一次メッセージ受信者のうちのいずれかの識別子は、前記関連付けられたメッセージが、前記メッセージ送信者または前記一次メッセージ受信者による前記会話への最初の参加を構成する場合に、ハイライトされる、請求項２に記載の方法。
【請求項９】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも１つのプログラムとを含むコンピュータであって、前記少なくとも１つのプログラムは、
ユーザに宛てられた複数の電子メッセージを受信するための命令と（各メッセージは固有のメッセージ識別子を有する）、
前記複数の電子メッセージのそれぞれを、個々の会話に関連付けるための命令と（各会話は固有の会話識別子を有し、各会話は１つまたは複数の電子メッセージの組を含む）、
会話リストを所定の順序で表示するための命令と（各会話は前記リスト内の単一の項目として表される）を含むコンピュータ。
【請求項１０】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと（各メッセージは固有のメッセージ識別子を有する）、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと（各会話は個々の会話識別子を有し、各会話は、第１の事前定義された基準を満たす共通の特性の組を共有する、１つまたは複数のメッセージの組を含む）、
会話リストを、１組の行として、第２の事前定義された基準に従って決定された順序で表示するステップと（各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストと、会話トピックと、日付／時刻値とを少なくとも含む）、
前記ユーザが前記表示された会話リストから会話を選択した場合に、会話の内容を表示するステップとを含む方法。
【請求項１１】
前記会話の内容を表示するステップは、１つまたは複数のサブフォームを表示するステップを含み、各サブフォームは前記会話内の個々のメッセージに対応し、各サブフォームは、短縮表示モードと拡張表示モードとを含む、少なくとも２つの表示モードを有する、請求項１０に記載の方法。
【請求項１２】
隠し表示モードを含む、第３の表示モードをさらに提供する、請求項１１に記載の方法。
【請求項１３】
個々のメッセージに対応するサブフォーム内に、会話参加者識別子リストを表示するステップと、前記個々のメッセージが、前記会話参加者識別子リスト内の個々の会話参加者が参加者である前記会話内の最初のメッセージである場合に、前記個々の会話参加者の識別子をハイライトを使用して表示するステップとを含む、請求項１１に記載の方法。
【請求項１４】
前記ハイライトは、太字、下線、フォント色、フォントサイズ、背景色、およびフォントタイプからなるリストから選択される１つまたは複数である、請求項１３に記載の方法。
【請求項１５】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも１つのプログラムとを含むコンピュータであって、前記少なくとも１つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と（各メッセージは固有のメッセージ識別子を有する）、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と（各会話は個々の会話識別子を有し、各会話は、第１の事前定義された基準を満たす共通の特性の組を共有する、１つまたは複数のメッセージの組を含む）、
会話リストを、１組の行として、第２の事前定義された基準に従って決定された順序で表示するための命令と（各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストと、会話トピックと、日付／時刻値とを少なくとも含む）、
前記ユーザが前記表示された会話リストから会話を選択した場合に、会話の内容を表示するための命令とを含むコンピュータ。
【請求項１６】
メッセージを検索する方法であって、
検索クエリに関連する複数の会話を識別するために、メッセージリポジトリを検索するステップと（前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する１つまたは複数のメッセージと、個々の会話識別子とを含む）、
前記識別された会話の少なくともサブセットを表す会話リストを作成するステップと、
前記会話リストから会話を選択するステップと、
前記選択された会話の第１のテキストと、前記選択された会話の第２のテキストとを区別するステップとを含む方法。
【請求項１７】
前記第２のテキストは、前記検索クエリに関連している、請求項１６に記載の方法。
【請求項１８】
前記区別するステップは、
第１のフォーマットでの前記第１のテキストのフォーマット情報を提供するステップと、第２のフォーマットでの前記第２のテキストのフォーマット情報を提供するステップとを含み、
前記第１のフォーマットは、前記第２のフォーマットと、視覚的識別力のある様式で異なっている、請求項１７に記載の方法。
【請求項１９】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも１つのプログラムとを含むコンピュータであって、前記少なくとも１つのプログラムは、
検索クエリに関連する複数の会話を識別するために、メッセージリポジトリを検索するための命令と（前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する１つまたは複数のメッセージと、それぞれの会話識別子とを含む）、
前記識別された会話の少なくともサブセットを表す会話リストを作成するための命令と、
前記会話リストから会話を選択するための命令と、
前記選択された会話の第１のテキストと、前記選択された会話の第２のテキストとを区別するための命令とを含むコンピュータ。
【請求項２０】
メッセージを検索する方法であって、
検索クエリに関連する少なくとも１つのメッセージをそれぞれが含む、複数の会話を識別するために、メッセージリポジトリを検索するステップと（前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する１つまたは複数のメッセージと、個々の会話識別子とを含む）、
前記識別された会話の少なくともサブセットを表す会話リストを作成するステップと、
前記会話リストから会話を選択するステップと、
前記選択された会話の第１のメッセージと、前記選択された会話の第２のメッセージとを区別するステップとを含む方法。
【請求項２１】
前記第２のメッセージは、前記検索クエリに関連している、請求項２０に記載の方法。
【請求項２２】
前記区別するステップは、
第１のフォーマットでの前記第１のメッセージのフォーマット情報を提供するステップと、第２のフォーマットでの前記第２のメッセージのフォーマット情報を提供するステップとを含み、
前記第１のフォーマットは、前記第２のフォーマットと、視覚的識別力のある様式で異なっている、請求項２１に記載の方法。
【請求項２３】
前記フォーマット情報は、特定のメッセージが最初に拡張モードに関連付けられているか、または短縮モードに関連付けられているかに関係する、請求項２２に記載の方法。
【請求項２４】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも１つのプログラムとを含むコンピュータであって、前記少なくとも１つのプログラムは、
検索クエリに関連する少なくとも１つのメッセージをそれぞれが含む、複数の会話を識別するために、メッセージリポジトリを検索するための命令と（前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する１つまたは複数のメッセージと、それぞれの会話識別子とを含む）、
前記識別された会話の少なくともサブセットを表す会話リストを作成するための命令と、
前記会話リストから会話を選択するための命令と、
前記選択された会話の第１のメッセージと、前記選択された会話の第２のメッセージとを区別するための命令とを含むコンピュータ。
【請求項２５】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと（各メッセージは固有のメッセージ識別子を有する）、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと（各会話は個々の会話識別子を有し、各会話は、第１の事前定義された基準を満たす共通の特性の組を共有する、１つまたは複数のメッセージの組を含む）、
会話リストを、第２の事前定義された基準に従って決定された順序で、かつ１組の行として表示するステップと（各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストと、会話トピックと、日付／時刻値と、検索クエリの少なくとも１つの検索語に関連する会話情報の部分とを少なくとも含む）を含む方法。
【請求項２６】
前記会話リスト内の会話を識別するためにメッセージリポジトリを検索するステップを含み、それぞれの識別された会話は、前記検索クエリに関連する少なくとも１つのメッセージを含む、請求項２５に記載の方法。
【請求項２７】
前記部分を表示するステップは、第１のテキスト情報を囲む第２のテキスト情報を表示するステップを含む、請求項２５に記載の方法。
【請求項２８】
前記部分を表示するステップは、前記検索クエリに関連する第１のテキスト情報を、第２のテキスト情報とは別個の様式で表示するステップを含む、請求項２５に記載の方法。
【請求項２９】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも１つのプログラムとを含むコンピュータであって、前記少なくとも１つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と（各メッセージは固有のメッセージ識別子を有する）、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と（各会話は個々の会話識別子を有し、各会話は、第１の事前定義された基準を満たす共通の特性の組を共有する、１つまたは複数のメッセージの組を含む）、
会話リストを、第２の事前定義された基準に従って決定された順序で、かつ１組の行として表示するための命令と（各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストと、会話トピックと、日付／時刻値と、検索クエリの少なくとも１つの検索語に関連する会話情報の部分とを少なくとも含む）を含むコンピュータ。
【請求項３０】
メッセージを検索する方法であって、
検索クエリを会話ユニットに送信するステップと、
前記検索要求に対応して、会話リストを受信するステップであって（各会話は、事前定義された基準を満たす共通の特性の組を共有する１つまたは複数のメッセージを含み、かつ、前記検索クエリに関連する少なくとも１つのメッセージを有する）、
前記受信される会話リストは、前記会話リストの少なくともサブセット内の各会話について、前記検索クエリに関連する個々のメッセージの識別された部分を含み、前記個々のメッセージの前記識別された部分は、前記個々のメッセージのメッセージボディの部分である、ステップと、
前記会話リストの少なくともサブセットを表示するステップ（前記会話リスト内の少なくとも１つの会話に関連して、リストされた会話の個々のメッセージの前記識別された部分を表示するステップを含む）とを含む方法。
【請求項３１】
前記部分を表示するステップは、前記検索クエリの少なくとも１つの検索語に関連する第１のテキスト情報を、前記部分の第２のテキスト情報とは別個の様式で表示するステップを含む、請求項３０に記載の方法。
【請求項３２】
前記様式は、太字、ハイライト、イタリック体、異なる前景色、異なる背景色、フォントサイズ、フォント色、およびその他のフォント属性からなる組から選択されるフォーマットを含む、請求項３１に記載の方法。
【請求項３３】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも１つのプログラムとを含むコンピュータであって、前記少なくとも１つのプログラムは、
検索クエリを会話ユニットに送信するための命令と、
前記検索要求に対応して、会話リストを受信するための命令と（各会話は、事前定義された基準を満たす共通の特性の組を共有する１つまたは複数のメッセージを含み、かつ、前記検索クエリに関連する少なくとも１つのメッセージを有する）、
前記受信される会話リストのための命令と（前記受信される会話リストは、前記会話リストの少なくともサブセット内の各会話について、前記検索クエリに関連する個々のメッセージの識別された部分を含み、前記個々のメッセージの前記識別された部分は、前記個々のメッセージのメッセージボディの部分である）、
前記会話リストの少なくともサブセットを表示するための命令と（前記会話リスト内の少なくとも１つの会話に関連して、リストされた会話の個々のメッセージの前記識別された部分を表示するための命令を含む）を含むコンピュータ。
【請求項３４】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと（各メッセージは固有のメッセージ識別子を有する）、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと（各会話は個々の会話識別子を有し、各会話は、第１の事前定義された基準を満たす共通の特性の組を共有する、１つまたは複数のメッセージの組を含む）、
会話リストを、第２の事前定義された基準に従って決定された順序で表示するステップと（各会話は、前記リスト内の単一の項目として表される）を含み、
前記会話リストは行の組を含み、各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストと、会話トピックと、日付／時刻値とを少なくとも含み、
前記行の組の中の行は、前記ユーザが前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを示す、受信者インジケータを含む方法。
【請求項３５】
前記表示される会話リスト内の行の前記送信者リストは、対応する会話内のメッセージの、複数の送信者の識別子を含む、請求項３４に記載の方法。
【請求項３６】
前記行に対応する前記会話が、第１の送信者により送信されたメッセージと、第２の送信者により送信された１つまたは複数のメッセージとを含む場合、前記表示するステップは、前記第１の送信者により送信された前記メッセージがまだ表示されていないか、または前記ユーザによって既読として印付けられていない場合に、前記送信者リスト内の前記第１の送信者の識別子を、第１の識別性のあるフォーマットで表示するステップと、前記第２の送信者により送信されたすべてのメッセージがすでに表示されたか、または前記ユーザによって既読として印付けられている場合に、前記送信者リスト内の前記第２の送信者の識別子を、第２の識別性のあるフォーマットで表示するステップとを含む、請求項３５に記載の方法。
【請求項３７】
前記表示するステップは、前記送信者リスト内の送信者の名前を、前記送信者によって送信されたメッセージが前記ユーザによってまだ読まれていない場合にハイライトするステップを含む、請求項３５に記載の方法。
【請求項３８】
前記送信者リスト内の送信者の識別子は、前記送信者が前記ユーザである場合に、固有の文字列またはアイコンで置き換えられる、請求項３５に記載の方法。
【請求項３９】
前記会話に、前記会話に含まれるメッセージの送信者の組を関連付けるステップを含み、前記送信者リストは、前記送信者の組の中の複数の送信者の識別子を含み、ただし、前記送信者の組が、事前定義された制限を超える場合は、前記送信者の組の中のすべての送信者よりも少ない送信者の識別子を含む、請求項３５に記載の方法。
【請求項４０】
いずれの送信者識別子を前記送信者リストに含めるかを決定するための優先度が、送信者の識別子に割り当てられ、前記優先度は、前記会話内の前記メッセージに関連付けられた日付／時刻情報とステータス情報とに従って決定される、請求項３５に記載の方法。
【請求項４１】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも１つのプログラムとを含むコンピュータであって、前記少なくとも１つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と（各メッセージは固有のメッセージ識別子を有する）、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と（各会話は個々の会話識別子を有し、各会話は、第１の事前定義された基準を満たす共通の特性の組を共有する、１つまたは複数のメッセージの組を含む）、
会話リストを、第２の事前定義された基準に従って決定された順序で表示するための命令と（各会話は、前記リスト内の単一の項目として表される）を含み、
前記会話リストは行の組を含み、各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストと、会話トピックと、日付／時刻値とを少なくとも含み、
前記行の組の中の行は、前記ユーザが、前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを示す、受信者インジケータを含むコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、一般に、クライアント−サーバコンピュータネットワークシステムの分野に関し、特に、ユーザが多数のメッセージを効率的かつユーザフレンドリな方法で管理するためのシステムおよび方法に関する。
【背景技術】
【０００２】
発明の背景
毎日、人々は、何百万もの電子メール（「ｅ−ｍａｉｌとも書く」）メッセージを、仕事と余暇のために、コンピュータネットワークを介して送信および受信している。電子メールは、便利で、使いやすく、多くの場合はほとんど即時に届くため、人々が情報を交換するための非常に一般的な通信チャネルとなった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来、ユーザの電子メールアカウントに到着する電子メールメッセージは、専用の電子メールクライアントによって、またはＷｅｂブラウザウィンドウ内で、個別に、時系列順に表示されている（例えば、最新のメッセージがブラウザウィンドウの最上部に表示され、最旧のメッセージがブラウザウィンドウの最下部に表示される）。しかし、２人以上の人によって異なる時刻に送信された複数のメッセージが、同じトピックを扱うことがあるのは一般的である。メッセージを一緒に表示することは、ユーザが適切な脈絡の中で個別のメッセージを理解するために役立つ。
【０００４】
ユーザによって受信されるメッセージとユーザによって送信されるメッセージとを含む、複数のメッセージを、それらのそれぞれのトピックに従って編成および表示する、システムおよび方法を有することは非常に望ましい。さらに、同じトピックに関連し、かつ同じ会話の部分を形成するすべてのメッセージが直感的に提示され、それにより、特定の送信者により発行された特定のメッセージをユーザが効率的に識別できるようになり、ユーザが会話内のメッセージを、会話内の他のメッセージと比較した脈絡の中で見ることができるようになることは非常に望ましい。
【課題を解決するための手段】
【０００５】
概要
一実施形態では、メッセージを処理するための方法は、ユーザに宛てられた複数のメッセージ（各メッセージは固有のメッセージ識別子を有する）を受信するステップを含む。複数のメッセージのそれぞれは、個々の会話に関連付けられており、それぞれの会話は個々の会話識別子を有する。さらに、それぞれの会話は、第１の事前定義された基準を満たす共通の特性の組を共有する、１つまたは複数のメッセージの組を含む。会話のリストが、１組の行として、第２の事前定義された基準により決定される順序で表示され、ここで、各行は、リストされる会話のうちの１つに対応し、かつ、送信者リストと、会話トピックと、日付／時刻値とを少なくとも含む。会話の内容は、表示された会話のリストからユーザが会話を選択した場合に表示される。
本発明の性質および実施形態をよりよく理解するために、以下の実施形態の説明を、図面とともに参照されたい。図面にわたる同様の参照番号は、対応する部分を意味する。
【図面の簡単な説明】
【０００６】
【図１】本発明によるクライアント−サーバベースのネットワークシステムの一実施形態を概略的に示す。
【図２】会話管理システムによって提供される会話を表示するためのさまざまなフォームを、会話アシスタントが生成する方法を説明する概要フローチャートである。
【図３Ａ】会話リストのホストとなるフォームを会話アシスタントが生成する方法を説明するフローチャートである。
【図３Ｂ】本発明の一実施形態による、「受信トレイ」カテゴリ内の会話リストの概略スクリーンショットである。
【図４Ａ】「その他の操作」プルダウンリストの動作を説明するフローチャートである。
【図４Ｂ】「その他の操作」プルダウンリストを使用してユーザが１つのカテゴリから別のカテゴリに会話を移動させる場合のスクリーンショットである。
【図５Ａ】「ラベルを追加」プルダウンリストの動作を説明するフローチャートである。
【図５Ｂ】「ラベルを追加」プルダウンリストを使用してユーザが会話にラベルを追加する場合のスクリーンショットである。
【図６Ａ】会話アシスタントが、会話管理システムの表示命令に応答して、会話表示を生成する方法を示すフローチャートである。
【図６Ｂ】本発明の一実施形態による、すべてのメッセージが短縮モードで表示された会話表示のスクリーンショットである。
【図６Ｃ】本発明の一実施形態による、いくつかのメッセージが短縮モードで表示され、いくつかのメッセージが拡張モードで表示された会話表示のスクリーンショットである。
【図６Ｄ】本発明の一実施形態による、すべてのメッセージが拡張モードで表示された会話表示のスクリーンショットである。
【図６Ｅ】本発明のさまざまな実施形態によりメッセージが表示された、会話表示のスクリーンショットである。
【図７Ａ】会話アシスタントが、ユーザの検索要求に一致する会話を表示するためにさまざまなフォームを生成する方法を説明するフローチャートである。
【図７Ｂ】本発明の一実施形態による、クエリ語「Ｔａｈｏｅ」に一致する３つの会話を含むスクリーンショットである。
【図７Ｃ】本発明の一実施形態による、クエリ語に一致するかまたは一致しない、かつさまざまなモードで表示された、会話内のメッセージのスクリーンショットである。
【図８】スペルが間違っている可能性のあるすべての語を訂正するために、会話アシスタントがユーザと対話する方法を説明するフローチャートである。
【図９Ａ】ユーザにより作成された返信メッセージを含む会話のスクリーンショットである。
【図９Ｂ】スペルチェックプロセスのさまざまな段階における、３つの独立した閲覧ウィンドウを含むスクリーンショットを示す。
【図１０】会話サーバの一実施形態を示す。
【図１１】受信メッセージを処理する方法を表すフローチャートである。
【図１２】メッセージを会話に対応付ける方法を表すフローチャートである。
【図１３】メッセージに属性を割り当てる方法を表すフローチャートである。
【図１４】会話に属性を割り当てる方法を表すフローチャートである。
【図１５】会話を検索し、識別された会話の表示を生成する方法を表すフローチャートである。
【図１６】メッセージデータベースを示す。
【図１７】ユーザデータベースと、特定のユーザのためのインデックスとを示す。
【図１８】受信メッセージに対応する会話を識別するため、および受信メッセージに関連付けられる属性を決定するために使用される、１組のデータ構造を示す。
【図１９】会話サーバの一実施形態を示す。
【発明を実施するための形態】
【０００７】
実施形態の説明
本発明は、ユーザに対しておよびユーザによって送信されるメッセージを編成して表示する、クライアント−サーバシステムと、対応する方法とに関する。
【０００８】
図１は、クライアント−サーバシステムの一実施形態を概略的に示す。システムは、会話管理システム１０２と、通信ネットワーク１０６と、複数のクライアント１０４とを含む。会話は、１つの会話トピックを扱う１つまたは複数の関連するメッセージを含む。以下に記載するように、いずれのメッセージが、それぞれの別個の会話の部分であるかを判定するために、会話トピックを超えた、追加の基準が使用されてもよい。メッセージの送信者および受信者は、会話の参加者である。会話管理システム１０２のユーザに宛てられたすべてのメッセージは、複数の会話に分類され、会話ベースのフォーマットで、個別に、または一緒に、ユーザに提示される。会話管理システム１０２の実装に関するより詳細な説明は、後に記載する。
【０００９】
クライアント１０４は、ブラウザ１０８および会話アシスタント１１０を含む。ブラウザ１０８は、会話を表示するために使用されるブラウザウィンドウを有する、汎用のインターネットブラウザ（Ｗｅｂブラウザと呼ばれることもある）であってもよく、または、会話を表示するためのウィンドウを有する、専用のブラウザアプリケーションであってもよい。会話、および会話内のメッセージは、ハイパーテキストマークアップ言語（ＨＴＭＬ）を使用して、またはその他の任意の適切な描画方法を使用して、ブラウザ１０８によって描画されてもよい。ユーザが、自分の個人アカウント内に記憶されたメッセージにアクセスするために、ブラウザ１０８を介して、会話管理システム１０２に要求を発行した後、会話管理システム１０２は、ユーザの要求に従って、ユーザの個人アカウント内の複数の会話を識別し、それらの会話と、１組の表示命令とを、クライアント１０４に返送する。会話アシスタント１１０は、それに対応して、表示命令に従った１つまたは複数のフォームを生成する（各フォームは、会話のうちのいくつかの情報を含む）。フォームは、次に、ブラウザ１０８に発行され、ブラウザ１０８によって描画される。別の実施形態では、会話アシスタント１１０は、別法として、会話管理システム１０２内において存在し動作してもよい。
【００１０】
図２は、会話管理システム１０２によって提供された会話を表示するためのさまざまなフォームを、会話アシスタント１１０が生成する方法を説明する概要フローチャートである。ステップ２０２において、複数の会話および関連する表示命令を受信した後、会話アシスタント１１０は、ステップ２０４において、ユーザが複数の会話を要求したか、または個別の会話を要求したかを判定する。ユーザが複数の会話を要求する場合、会話アシスタント１１０は、ステップ２０６において、会話リストのホストとなる（hosts a list of conversations）フォームを生成する（各会話はフォーム内の１つの行を占める）。フォーム内の各行について、会話アシスタント１１０は、ステップ２０８において、表示命令に従って、１組の列と、表示されるべき関連する特徴とをさらに生成する。列内の情報および関連する特徴が描画される方法についてのさらなる詳細は、図３Ａおよび図３Ｂと組み合わせて、後に記載する。
【００１１】
ユーザが個別の会話を要求する場合、会話アシスタント１１０は、ステップ２１０において、会話に関連付けられた一連のメッセージのホストとなる、別個のフォームを生成する。ステップ２１２において、会話アシスタント１１０は、各メッセージについて、対応する表示命令に従って、サブフォームと、表示されるべき関連する特徴の組とを生成する。そのようなサブフォームおよび関連する特徴を会話アシスタントが描画する方法についてのさらなる詳細は、図６Ａ〜図６Ｄと組み合わせて、後に記載する。
【００１２】
会話リストまたは個別の会話のホストとなるフォームを生成した後、会話アシスタント１１０は、ステップ２１４において、１組のシステム定義カテゴリのホストとなるフォームを生成する。それぞれのシステム定義カテゴリは、０以上の会話と関連付けられてもよい。一実施形態では、システム定義カテゴリは、ユーザの操作に応答して、または事前定義された基準が満たされた場合に、会話管理システム１０２が会話に割り当てる属性である。例えば、ユーザが会話に削除のための印を付け、しかし、その会話をユーザのメールアカウントから永久的に除去するために必要なステップはまだ実行していない場合、システムはその会話に「ゴミ箱」属性を関連付ける。より具体的には、会話管理システム１０２は、属性「ゴミ箱」を会話に添付し、例えば「受信トレイ」などの既存の属性を、必要に応じて会話から削除する。いくつかのシステム定義カテゴリは相互排他的であってもよいことに留意されたい。別の例では、システムは、新たに受信した着信メッセージに、「受信トレイ」属性と「未読」属性とを自動的に関連付けてもよい。システム定義カテゴリのより詳細な説明は、図４Ａおよび図４Ｂと組み合わせて、後に記載する。
【００１３】
次に、会話アシスタント１１０は、ステップ２１６において、１組のユーザ定義ラベルのホストとなる別のフォームを生成する。図３Ｂは、このフォームが内部に表示されているグループボックス３４７を示す。それぞれのユーザ定義ラベルは、０以上の会話と関連付けられてもよい。一実施形態では、ユーザ定義ラベルは、特定の会話に関連付けられることが可能な属性である。ユーザ定義ラベルが割り当てられる会話は、特定のユーザ操作によって、あるいは、フィルタまたは類似した機構の動作によって決定されてもよい。システム定義カテゴリとは異なり、これらのラベルはユーザによって任意に定義され、これらのラベルは相互排他的ではない。言い換えると、会話は、同時に複数のラベルに関連付けられてもよい。例えば、ユーザの個人アカウント内に、「買い物リスト」および「感謝祭」という２つのラベルが存在してもよい。「買い物リスト」ラベルは、ユーザによって、またはユーザにより設定されたフィルタによって、買い物関連の会話に割り当てられてもよく、他方、「感謝祭」ラベルは、感謝祭の買い物を含む、感謝祭の活動に関連する会話に割り当てられてもよい。ラベルはユーザによって定義されるため、ユーザはラベルを削除することも可能である。ユーザ定義ラベルのより詳細な説明は、図５Ａおよび図５Ｂと組み合わせて、後に記載する。グループボックス３４７に関しては、ユーザがグループボックス３４７内のユーザ定義ラベルを選択（例えば、クリック）した場合、会話アシスタント１１０は会話管理システムに、ユーザが選択したラベルに関連付けられた会話を探すためのクエリを発行する。次に、そのクエリが実行され、そのような会話が存在する場合は、それらの会話のリストがユーザに提示される。
【００１４】
会話管理システム１０２と会話アシスタント１１０とは共同で動作して、ユーザが、ユーザのメールアカウント内のメッセージを検索すること、および検索結果を高度に直感的な方法で提示することを可能にする。会話管理システム１０２は、ユーザの電子メールアカウントから情報を抽出するか、またはユーザによって作成されたメッセージを処理するのに対して、会話アシスタント１１０は、会話管理システム１０２によって準備された情報を描画する。他の実施形態では、会話管理システム１０２と会話アシスタント１１０との間の異なる役割分担が使用されてもよい。システムによって実行されるタスクの多くは、会話管理システム１０２または会話アシスタント１１０のいずれかによって、あるいはこれらの２つが共同で動作することによって実行されることが可能なため、本明細書では、これらの２つの構成要素をまとめて「会話システム」と呼ぶ場合がある。
【００１５】
会話システム（１０２および／または１１０）は、ステップ２１８において、ユーザが最近の検索結果に再アクセスする（またはより正確には、最近の検索結果を再生成する）ことが可能になるように、ユーザによって発行された１組の検索のホストとなるフォームを生成してもよい。検索ベースの会話リストの生成のより詳細な説明は、図７Ａ〜図７Ｃと組み合わせて、後に記載する。さらに、会話システムは、ステップ２２０において、ユーザによって最近アクセスされた１組の会話のホストとなるフォーム（例えば、図３Ｂのグループボックス３４９内に表示されるフォーム）を生成してもよい。この機能は、Ｗｅｂブラウザの「戻る」ボタンに類似している。ステップ２２２において、会話アシスタント１１０は、表示のためにブラウザ１０８にフォームを発行する。
【００１６】
ステップ２１４〜２２０は、図２に示す順序以外の、多くの可能な順序で実行されてもよい。一部の実施形態では、これらのフォーム生成ステップのいくつかは省略されてもよい。
【００１７】
会話リストの生成
次に、図３Ａを参照すると、会話管理システム１０２は、例えばユーザのメールアカウントの受信トレイ表示を要求するユーザまたはクライアントに応答して、会話リストを生成する（ステップ３０２）。以下でより詳細に説明するように、会話リストは、ユーザのメールアカウントの検索を実行することにより生成される。受信トレイ表示のための会話リストを生成するために、「受信トレイ」属性（ラベルと呼ばれることもある）に関連付けられた会話について、ユーザのメールアカウントが検索される。次に、会話管理システム１０２は、次により詳細に説明するように、ステップ３０４において、表示のために、それらの会話に関する情報を準備する。さらに、会話管理システムは、ステップ３０５において、ユーザ選択可能な操作のリスト、およびユーザ選択可能なラベルのリストを生成する。ユーザ選択可能なラベルは、システム定義ラベルとユーザ定義ラベルとを含んでいてもよい。図４および図５に関連する以下の議論は、これらのユーザ選択可能なリストの使用について説明する。結果の情報は、次に、ステップ３０６において、描画のために会話アシスタントに送信される。
【００１８】
ステップ３０４において、会話管理システム１０２は、会話リスト内の各会話について１組のフィールドを生成するために、一連のステップ（ステップ３０６〜ステップ３２４）を繰り返し実行する。一部の実施形態では、ユーザが会話リストにざっと目を通すことが容易にできるように、これらのフィールドは、会話アシスタント１１０によって、列内に描画されてもよい。
【００１９】
それぞれの会話、および関連するメッセージの組について、会話管理システム１０２は、最初に、ステップ３０７において、送信者リストを生成する。送信者リストは複数の送信者識別子を含み、各識別子は、メッセージのうちの少なくとも１つを書いた送信者に対応している。送信者は、その送信者のファーストネーム、ラストネーム、フルネーム、電子メールアドレス、写真または固有のアイコン、あるいはそれらの組み合わせによって識別されてもよい。一部の実施形態では、少なくとも２人の送信者が同じファーストネームを有する場合、一方の送信者をもう一方から識別するために、各送信者のラストネームの十分な部分がそれぞれの送信者識別子に含まれる。例えば、２人の送信者が、Ｐａｕｌというファーストネームと、最初の文字が異なるラストネームとを有する場合、送信者は、Ｐａｕｌと、ラストネームの最初の文字との連結（例えば、ＰａｕｌＢおよびＰａｕｌＫ）を使用して識別されてもよい。当業者は、同じファーストネームを有する２人の送信者を識別するためのその他の方法を理解するであろう。他の実施形態では、送信者の識別子は、ユーザの連絡先リスト内に存在する、特定の送信者に関連付けられた情報に基づいていてもよい。さらに他の実施形態では、ユーザは、特定の送信者について送信者リスト内に表示されるニックネームを作成してもよい。送信者が会話内の複数のメッセージを書いた場合でも、その送信者の識別子は、送信者リスト内に一度だけ表示される。一実施形態では、リスト内の送信者識別子は、それらの送信者のそれぞれのメッセージの、システム１０２における到着時刻に従って並べられる。別の実施形態では、リスト内の送信者識別子は、それらの各名前に従って、アルファベット順に並べられる。次に、会話管理システム１０２は、ステップ３０８において、表示命令に従ってリスト内の１つまたは複数の送信者識別子をハイライトするように、送信者リストをフォーマットする。「ハイライトする」という用語は、本明細書では、太字にする、下線を付ける、背景色を変更する、フォント色を変更する、フォントを変更するなど、視覚的識別力のある方法で表示することを意味するために使用される。さらに、この文脈では、「ハイライトする」という用語は、あるもの（例えば、テキストの指定された部分）を識別力のある方法で表示するためのフォーマット情報を生成することを意味する。例えば、一部の実施形態では、送信者のメッセージがまだ表示されていないか、またはユーザによって既読の印が付けられていない場合、その送信者の名前は太字で表示されるようにフォーマットされる。
【００２０】
一部の実施形態では、会話アシスタントは、会話の送信者リストおよび／または受信者リストに記載された人々のうちの１人以上の写真を受信するか、または、それらの写真へのアクセスが可能である。ユーザが、会話リストまたは個別の会話のいずれかを見て、送信者リスト内の名前または識別子の上にカーソルを配置すると、その送信者の写真が表示される。一部の実施形態では、リストされたメッセージ受信者について、会話を表示する際に、同じ機能が提供される。この機能は、大規模な組織で使用される電子メールシステムのために、特に有用な可能性がある。
【００２１】
一部の実施形態では、会話内の少なくとも１つのメッセージをユーザ自身が書いた場合、会話管理システム１０２は、ステップ３１０において、送信者リスト内のユーザの名前またはその他の識別子を、送信者リスト内でのそのユーザの識別子としての、固有の文字列、アイコン、またはそのユーザのためのその他の出力キューに置き換える。固有の文字列のための１つの選択肢は、特定の言語での自己参照識別子である。例えば、英語の代名詞「ｍｅ」が、送信者リスト内でユーザを表すために使用されてもよい。この機能は、送信者リスト内で送信者をそのファーストネームによって識別すること（これは、もちろん、代替実施形態で行われてもよい）よりも有用であり、その理由は、多くの人が同じファーストネームを共有するためである。固有の識別子によってユーザを表すことは、さらに、少なくとも１つのメッセージを提供することによって該ユーザが実際に参加した会話を、該ユーザが容易に識別するためにも役立つ。
【００２２】
多くの人が会話にメッセージを提供した場合は、送信者リストが、ブラウザウィンドウ内の限られたスペースに収まらないほど長くなることがある。これは、送信者リスト内の１人以上の送信者が、それらの送信者の電子メールアドレスによって識別される場合、特に当てはまる。その場合、会話管理システム１０２は、ステップ３１２において、さまざまな情報に基づいて送信者リスト内の送信者に優先順位を付け、ブラウザウィンドウ内に表示するための、送信者リストのサブセットを識別する。一実施形態では、サブセットは、少なくとも会話内の最後のメッセージの送信者と、適切な場合は、まだ表示されていないかまたはユーザによって既読の印を付けられていないメッセージの送信者とを含む。別の実施形態では、サブセットは、会話内の最初に受信されたメッセージの送信者と、会話内の最後に受信されたメッセージの送信者と、優先順位付けまたは得点付け方法に従って選択された０以上の追加の送信者とを含む。一部の実施形態では、より後の時刻に到着したメッセージの送信者に、より高い優先度が与えられる。このタイプの優先順序付けでは、未読メッセージの送信者が表示される可能性が高くなる傾向がある。その他のタイプの優先順序付け手法が、同様に使用されてもよい。一部の実施形態では、送信者リストが会話内のメッセージ送信者のサブセットのみを識別する場合、送信者リストは、送信者リストが不完全であることを示す省略記号「...」またはその他の記号を含む。一部の実施形態では、まだ表示されていないかまたはユーザによって既読の印を付けられていないメッセージの送信者が１人以上存在する場合、サブセットはそれらの送信者を、利用可能なスペースによって許容されるだけ多数識別する。
【００２３】
ステップ３１４において、会話管理システム１０２は、永久的に削除された、または削除のための印が付けられたメッセージを除く、会話内のメッセージの数を示す、会話のためのメッセージ数インジケータを作成する。メッセージ数インジケータは、１対の括弧内の数であってもよく、例えば、「（３）」は、会話内に３つのメッセージがあることを表す。一部の実施形態では、会話が１つのメッセージのみを含む場合、その会話についてのメッセージ数は生成されない。メッセージ数インジケータは、アイコンであってもよい。アイコンは、例えば会話内の未読（つまり、表示されていない、または既読の印が付けられていない）のままのメッセージの数を示す、追加情報を提供するために、色分けされてもよい。次に、会話管理システム１０２は、ステップ３１６において、処理中の会話のために会話トピックを生成する。通常、会話トピックは、会話内の最初のメッセージの件名、またはその件名が事前定義された長さを超える場合は、その件名の端が切り捨てられたバージョンである。別の実施形態では、会話トピックは、最初のメッセージの、または代替方法として、最初のメッセージよりも多くのメッセージの、内容を発見的に調べることによって決定される。一実施形態では、「未読」属性を有する少なくとも１つのメッセージを会話が含む場合、メッセージ数識別子および会話トピックの両方が、ユーザの注意を引くためにブラウザウィンドウ内でハイライトされる。別の実施形態では、１つまたは複数の未読メッセージを示すために、会話トピックのみがハイライトされる。
【００２４】
既定の電子メール規格によれば、メッセージは、アドレスが「Ｔｏ：」フィールド内にリストされる１つの一次クラスの受信者、およびアドレスが「Ｃｃ：」フィールドまたは「Ｂｃｃ：」フィールド内にリストされる２つの二次クラスの受信者という、少なくとも３つのクラスの受信者に送信されてもよい。したがって、会話管理システム１０２は、ステップ３１８において、会話へのユーザの参加のもう１つのインジケータである、ユーザについての受信者ステータスインジケータを作成する。一実施形態では、ユーザがいずれかのメッセージの一次受信者である会話には、「＞＞」などの第１の識別的インジケータを使用して印が付けられ、ユーザが少なくとも１つのメッセージの二次受信者であり、いずれのメッセージの一次受信者でもない会話には、「＞」などの第２の識別的インジケータを使用して印が付けられ、（例えば、メッセージがグループまたはメーリングリストに送信されたため）ユーザがいずれのメッセージの受信者としても明示的にリストされていない会話には、特別な印は付けられない。他の実施形態では、ユーザが少なくとも１つのメッセージの一次受信者である会話、およびユーザが二次受信者のみである会話は、それらの会話を表す行の１つまたは複数の部分をハイライトするなどの、その他の視覚的識別力のある方法で表されてもよい。別の実施形態では、ユーザが少なくとも１つのメッセージの唯一の一次受信者である会話には、「＞＞」などの第１の識別的インジケータを使用して印が付けられ、少なくとも１つのメッセージが、メーリングリストにではなく、ユーザの電子メールアドレスに直接送信された会話には、「＞」などの第２の識別的インジケータを使用して印が付けられ、（例えば、メッセージがグループまたはメーリングリストに送信されたため）ユーザがいずれのメッセージの受信者としても明示的にリストされていない会話には、特別な印は付けられない。
【００２５】
一部の実施形態では、会話管理システム１０２は、ステップ３２０において、会話の抜粋を作成する。抜粋は、ユーザに会話の内容のプレビューを、ユーザが会話を開く必要なしに提供する。一実施形態では、抜粋は、会話内の最新のメッセージから生成される。別の実施形態では、抜粋は、会話内の最初のメッセージ（すなわち、最も古いメッセージ）から抽出される。さらに別の実施形態では、抜粋は、例えば会話内に最も頻繁に現れるキーワードの組を列記するなどの、事前定義された発見的規則に従って、会話内のすべてのメッセージから抽出される。会話管理システム１０２は、ユーザにより発行された検索に応答して会話リストを準備している場合、ステップ３２２において、ユーザが発行したクエリ語に一致するハイライトされた部分を含む抜粋を作成する。これは、グーグル（Ｇｏｏｇｌｅ）検索エンジンなどの検索エンジンによって返される検索結果に含まれる抜粋に、１つまたは複数の点で類似していてもよい。
【００２６】
最後に、会話管理システム１０２は、ステップ３２４において、会話の日付／時刻値を識別する。この日付／時刻値は、多くの場合、ブラウザウィンドウ内での会話リストの表示順序を指定する。一部の実施形態では、会話リスト内の各会話に、会話リストを生成するために使用された検索基準に一致する最新のメッセージの日付／時刻に等しい日付／時刻が割り当てられる。例えば、ユーザ指定の検索クエリ（例えば、「タホ湖」）が使用された場合、会話リスト内の一致する各会話について、割り当てられる日付／時刻は、ユーザ指定の検索クエリに一致する最新のメッセージの日付／時刻である。別の例では、検索基準が「受信トレイ」（すなわち、「受信トレイ」ラベルが割り当てられた少なくも１つのメッセージを有する会話）である場合、会話リスト内の各会話に割り当てられる日付／時刻は、「受信トレイ」ラベルに関連付けられた最新のメッセージの日付／時刻である。一部の実施形態では、会話リスト内の会話は、割り当てられた日付／時刻値に関して、逆時系列順にリストされる（すなわち、最新の会話が最初にリストされる）。本明細書で使用される場合、「日付／時刻」値は、特定のメッセージに関連付けられた任意の日付値および／または時刻値を意味する。日付および／または時刻は、メッセージの作成、送信、受信、またはその他の事象の日付および／または時刻に基づいて、メッセージに関連付けられてもよい。
【００２７】
他の実施形態では、会話リスト内の各会話に日付／時刻を割り当てるための、その他の方法または基準が使用されてもよく、それらの日付／時刻値に従って会話を並べるための、その他の方法が使用されてもよい。例えば、一部の実施形態では、高度な検索クエリツールを使用する場合、日付／時刻が、指定された時刻枠内に入る会話（かつ、その他のユーザ指定の検索要求がある場合は、それらを満足する会話）を検索する選択肢がユーザに与えられる。結果の会話リストは、ユーザ指定の目標日付または目標日付／時刻と、リスト内の各会話の日付／時刻との間の、時間の長さに従ってリストされる。したがって、目標の日付または日付／時刻の前および後の会話は、結果の会話リスト内で交互配置されてもよい。
【００２８】
図３Ｂは、本発明の一実施形態による、「受信トレイ」カテゴリ内の会話リストの概略スクリーンショットである。スクリーンショットの左上隅には、「メールを作成」リンク３４０がある。ユーザは、このリンクをクリックして、新しいメッセージを書き始める。リンク３４０の隣には、テキストボックス３４１と、「メールを検索」ボタン３４２とがある。ユーザが、テキストボックス３４１を介して１つまたは複数のクエリ語を発行し、次に、「メールを検索」ボタン３４２をクリックした後、システムは、クエリ語に一致する会話をリストする新しい表示を生成する。一部の実施形態では、一致は、それぞれのクエリ語の１つまたは複数の同義語が存在することによって発生してもよい。一部の実施形態では、一致は、それぞれのクエリ語の語根に基づいて発生してもよい。例えば、「ｂｏｏｋ」についての検索は、「ｂｏｏｋ」、「ｂｏｏｋｓ」、および「ｂｏｏｋｉｎｇ」という語によって一致されてもよい。詳細については、図７Ａおよび図７Ｂを参照されたい。ボタン３４２の隣には、「その他の操作」リスト３４４および「ラベルを追加」リスト３４５という、２つのプルダウンリストがある。これらの２つのプルダウンリストの詳細については、図４および図５をそれぞれ参照されたい。「メールを作成」リンク３４０のすぐ下には、一連のグループボックスがあり、各ボックスは、図２のステップ２１４〜２２０のうちの１つによって生成されるフォームに対応している。例えば、グループボックス３４６には、「受信トレイ」、「スターあり」、「送信済みメール」、「下書き」、「すべてのメール」、「迷惑メール」、および「ゴミ箱」などを含む、システム定義カテゴリが表示される。他の実施形態では、システム定義カテゴリの組は、これらのカテゴリのサブセットおよび／または追加のカテゴリを含む、異なったものであってもよい。一部の実施形態では、「スターあり」カテゴリは、ユーザが、例えば他の参加者にメッセージを送信することによって、積極的に関与することを予定している会話を含む（このカテゴリは「やること」リストに類似している）。したがって、一実施形態では、ユーザが例えばスターありメッセージを検索することができるように、メッセージにスターの印が付けられてもよい。一実施形態では、「すべてのメール」カテゴリは、「迷惑メール」カテゴリ内や「ゴミ箱」カテゴリ内にない、すべての会話を含む。現在のスクリーンショットは、「受信トレイ」カテゴリに属する会話のみを表示しているため、グループボックス３４６内の対応するリンクがハイライトされていることに留意されたい。
【００２９】
図３Ｂの概略スクリーンショットの主要な領域は、会話リスト３６０を含むフォームであり、各会話はフォーム内の１つの行を占めている。各行は、さらに、チェックボックス３６２と、送信者リスト３６４と、受信者ステータスインジケータ３６６と、会話トピックおよび抜粋３６８と、日付／時刻値３６９とを含む。他の実施形態では、各会話行についてのフィールドの組は、これらのフィールドのサブセットおよび／または追加のフィールドを含む、異なるものであってもよい。一部の実施形態では、会話リストが表示される場合、すべての行が均一な高さを有する。他の実施形態では、さまざまな抜粋長を収容するために、高さは可変であってもよい。チェックボックス３６２は、対応する会話を１つのシステム定義カテゴリ（例えば、「受信トレイ」）から別のシステム定義カテゴリ（例えば、「ゴミ箱」）に移動することをユーザが決定した場合、または対応する会話にユーザ定義ラベルを付けることをユーザが決定した場合に、ユーザによってチェックされる。フォーム内のその他の列またはフィールドの定義は、図３Ａと組み合わせて、上述した。最初の会話内には２つのメッセージがあること、および、最初の行内では送信者Ｓ２がハイライトされており、これはＳ２によって送信されたメッセージがまだ読まれていないか、または既読の印が付けられていないことを示すことに留意されたい。対照的に、２つ目の会話は４つのメッセージを含み、それらのメッセージはすべてがすでに読まれているか、または既読の印が付けられており、したがって２つ目の行内では何もハイライトされていない。一部の実施形態では、スターありステータスのための視覚的インジケータが提供される。会話内のいずれかのメッセージがスターありステータスを有する場合、「受信トレイ」は、少なくとも１つのスターありメッセージを会話が含むことの視覚的インジケータを提供する。
【００３０】
図示していないが、一実施形態では、図３Ｂによって表されるブラウザウィンドウは、永続的に表示されるメッセージ作成領域と、関連するアドレス指定および件名フィールドと、メッセージの作成および送信を可能にするフォームに一般に関連付けられてもよいその他のオプションおよびフィールドとを含む。そのような領域は、例えば、会話リスト３６０の下に表示される。したがって、一実施形態では、単一のユーザインタフェース（例えば、ブラウザウィンドウ）内で、ユーザは、会話リストを見ることと、さらに、新しいウィンドウ（例えば、メッセージ作成ウィンドウ）を開くことを要求されず、かつ、現在のブラウザウィンドウから会話リストを削除することなしに、新しいメッセージを作成することとを選択できてもよい。
【００３１】
図４Ａは、「その他の操作」プルダウンリスト３４４の動作を説明するフローチャートである。ユーザがプルダウンリストをクリックした後、ブラウザは、ステップ４０２において、システム定義操作のリストを表示する。ステップ４０４において、ユーザは、プルダウンリスト内の特定の操作と、会話リスト内の少なくとも１つの会話とを選択する。ブラウザは、次に、ステップ４０６において、ユーザが選択した会話を、ユーザが選択した操作に関連付け、ステップ４０８において、それらを、さらなる処理のために会話管理システムに送り返す。ユーザが選択した操作によって、ユーザが選択した会話が、以前に表示されていた会話リストから除去される場合、ステップ４１０において、会話アシスタントは会話管理システムから新しい会話リストを受信し、会話アシスタントは新しい会話リストをブラウザ内で表示する。
【００３２】
図４Ｂには、ユーザが２つ目の会話のチェックボックス４１３をチェックし、「その他の操作」プルダウンリストをクリックし、項目「迷惑メール」４１５を選択した場合にもたらされる、図３Ｂの概略スクリーンショットからの変更が示されている。結果として、２つ目の会話は「受信トレイ」カテゴリから除去され、「迷惑メール」カテゴリは新しいメンバを有することになる。「無視」および「スヌーズ」などの、プルダウンリスト内のいくつかの操作は、対応するカテゴリを有さないことに留意されたい。「無視」および「スヌーズ」は、両方とも、「すべてのメール」カテゴリに対応する。具体的には、ユーザが会話のチェックボックスをチェックし、次に「無視」項目をクリックした場合、会話は「すべてのメール」カテゴリに移される。「無視」された会話に関連する任意の新しいメッセージが到着した場合、システムは、やはり新しいメッセージを会話に関連付けるが、会話をユーザに注目されるように自動的に元に戻すことはしない。ただし、ユーザが「すべてのメール」カテゴリにアクセスし、無視されている会話のチェックボックスをチェックして、次に、対応する「その他の操作」プルダウンリスト内の「受信トレイ」項目を選択することによって、会話の無視を停止し、「受信トレイ」カテゴリ内に会話を戻すことは可能である。この例で示されているように、異なるカテゴリのプルダウンリストは、異なる操作項目の組を有してもよい。「スヌーズ」操作項目を使用すれば、ユーザは、トリガ条件を設定することによって、会話を一時的に無視することが可能になる。トリガ条件は、例えば、会話が一定期間（例えば、１時間、１日、１週間など）「受信トレイ」カテゴリから消え、その後、自動的に戻らなければならないなどの、時間駆動型であってもよく、あるいは、例えば、未チェックのメッセージの数が所定の制限に達するまで、または、特定の人が会話にメッセージを提供するまで、または、ユーザを一次受信者として指定するメッセージが受信されるまで、または、指定された単語または語句を含むメッセージが受信されるまで、会話は「受信トレイ」カテゴリに戻ってはならないなどの、イベント駆動型であってもよい。当業者は、使用可能なその他のトリガ条件を理解するであろう。
【００３３】
会話の分類
図５Ａは、「ラベルを追加」プルダウンリスト３４５の動作を説明するフローチャートである。ユーザがプルダウンリストをクリックした後、ブラウザは、ステップ５０２において、ユーザ定義ラベルのリストを、ユーザが選択するために表示する。ステップ５０４において、ユーザは、プルダウンリスト内の特定のラベルと、会話リスト内の少なくとも１つの会話とを選択する。ブラウザは、次に、ステップ５０６において、ユーザが選択した会話を、ユーザが選択したラベルに関連付け、ステップ５０８において、それらを、さらなる処理のために会話管理システムに送り返す。結果として、ユーザが選択したラベルに関連付けられた会話のリストは、ステップ５０６においてそのラベルに関連付けられた会話を含むようになる。以下でより詳細に説明するように、ラベルまたは属性が会話に関連付けられる場合、探し当てられるべきそのラベルを有する会話の検索を可能にするために、１つまたは複数のエントリがインデックス１７１０（図１７、図１８）に追加される。一部の実施形態では、ラベルまたは属性は、会話データベース１８０８（図１８）内の１つまたは複数のエントリにも追加される。一部の実施形態では、会話に関連付けられたラベルは、ユーザがその会話を見る場合に表示される。一部の実施形態では、会話リスト内の各会話に関連付けられたラベルは、リスト内の各会話について提供される情報行内に表示される。
【００３４】
図５Ｂは、ユーザが２つ目の会話のチェックボックス５１２をチェックし、次に、「ラベルを追加」プルダウンリストをクリックし、項目「ラベル２」５１４を選択した場合にもたらされる、ブラウザウィンドウを示す概略スクリーンショットである。（「ラベル２」は、ユーザ指定のラベル名を表すことに留意されたい。）これにより、「ラベル２」が、チェックされた会話に関連付けられる。結果として、チェックされた会話は、「ラベル２」に関連付けられたメッセージに対するクエリに応答して生成される検索結果に含まれてもよい。一部の実施形態では、会話リスト内の各会話に関連付けられたラベルは、フォームの対応する行内に表示され、したがって、「ラベル２」は、ステップ５０６において「ラベル２」に関連付けられた会話に対応する行内に表示される。カスタマイズされたラベル名をユーザが入力することが可能であること、および／または、事前定義されたラベルをシステムが提供してもよいことは、もちろん、当業者によって理解されるであろう。
【００３５】
会話の表示
図６Ａは、会話アシスタントが、会話管理システムの表示命令に応答して、会話表示（conversational view）を生成する方法を示すフローチャートである。一部の実施形態では、表示されるべき会話情報をフォーマットするための動作などの、図６Ａに示す動作のいくつかは、クライアント内の会話アシスタントに会話情報を送信する前に、会話管理システムによって実行される。
【００３６】
会話アシスタントは、最初に、ステップ６０２において、特定の会話に属する一連のメッセージ、および関連する表示命令の組を受信する。会話アシスタントは、ステップ６０４において、会話のトピックを識別し、会話に関連付けられたシステム定義カテゴリおよびユーザ定義ラベルがあればそれらも識別する。カテゴリおよびラベルに基づいて、会話は、ユーザ選択可能な操作のリスト、およびユーザ選択可能なラベルのリストを、それぞれ生成する。これらの２つのリストは、図３Ｂに示す２つのプルダウンリスト３４４および３４５に類似している。一実施形態では、ユーザ選択可能な操作のリストは、特定の会話（すなわち、表示される会話）に適用できる操作のみを含む。したがって、すでに「ゴミ箱」カテゴリ内にある会話は、再び「ゴミ箱」カテゴリに関連付けられることはできない。同様に、ユーザ選択可能なラベルのリストは、特定の会話にまだ関連付けられていないラベルのみを含む。
【００３７】
ステップ６０８から、会話アシスタントは、会話内のそれぞれの個別のメッセージについてのサブフォームの生成を開始する。サブフォームは、少なくとも、詳細メッセージヘッダとメッセージボディとを含む。本明細書で使用される場合、メッセージボディは、件名参照を含み、メッセージングソフトウェアによってメッセージに追加されるすべてのシステム情報を除く、ユーザによって作成されるメッセージを意味する。それぞれの詳細メッセージヘッダは、送信者の名前および／またはアドレスと、すべての一次および二次受信者と、メッセージの件名と、メッセージレベルの操作の組と、日付／時刻値とを含む。メッセージレベルの操作のうちの１つは、経路選択情報、およびメッセージングシステムにより提供されるその他の情報（「マイムバージョン（Ｍｉｍｅ−Ｖｅｒｓｉｏｎ）」や「内容タイプ（Ｃｏｎｔｅｎｔ−Ｔｙｐｅ）」など）を含む、元のフォーマットでメッセージを表示するためのオプションを含む。会話アシスタントは、さらに、ステップ６１０において、詳細メッセージヘッダから、簡略メッセージヘッダを作成する。簡略メッセージヘッダは、送信者および受信者の識別子を含む。一部の実施形態では、受信者は簡略メッセージヘッダから除外される。ユーザが受信者リスト内にある場合、会話アシスタントは、ステップ６１０において、送信者リスト内のユーザの識別子に類似した、固有の文字列またはアイコンをユーザの識別子として利用する。例えば、英語の代名詞「ｍｅ」が、簡略メッセージヘッダ内でユーザを表すために使用されてもよい。メッセージが、この会話内で特定の受信者を識別する（すなわち、メッセージヘッダの一次または二次受信者フィールド内で識別する）最初のメッセージである場合、会話アシスタントは、ステップ６１４において、簡略メッセージヘッダ内の受信者の識別子をハイライトする。他方、一部の実施形態では、受信者リストに以前に含まれていた受信者が、もはや含まれていない場合、会話アシスタントは受信者の識別子を、例えば「ゴースト（ｇｈｏｓｔ）」フォントなどの、視覚的に識別される方法で表示する。他の実施形態では、簡略メッセージヘッダは、送信者識別子と、メッセージの部分と、メッセージの日付／時刻表示とを含む。
【００３８】
次に、会話アシスタントは、ステップ６１６において、サブフォームの表示方法を決定する。サブフォームに関連付けられたメッセージが、まだ表示されていないか、またはユーザによって既読の印を付けられていない場合は、ステップ６１８において、サブフォームは拡張モードで表示される、すなわち、簡略メッセージヘッダと完全なメッセージボディとの両方が表示される。メッセージがすでに表示された場合、または既読の印が付けられている場合は、ステップ６２０において、サブフォームは、デフォルトで、簡略メッセージヘッダとメッセージボディの一部分（例えば、メッセージの最初の数行）とのみを含む短縮モードで表示される。ユーザは、その後、短縮されたサブフォームを、クリックすることによって拡張してもよい。同様に、サブフォームは、詳細メッセージヘッダを表示しないが、ステップ６２２においてユーザが詳細メッセージヘッダを見たい場合に選択するためのオプションを含む。最後に、会話アシスタントは、ステップ６２４において、例えば、「返信」、「全員へ返信」、「転送」などの、１組の返信オプションをサブフォームの下部に作成する。一部の実施形態では、上述の操作のサブセットが、会話内の各メッセージについて実行される。一部の実施形態では、１つまたは複数の追加のフォーマット操作が実行される。
【００３９】
図６Ｂは、本発明の一実施形態による、図３Ｂ内の２つ目の会話の概略スクリーンショットである。スクリーンショットの上および左部分は、図３Ｂと同じである。ただし、会話リスト３６０は、メッセージリスト６４０に置き換えられている。メッセージリストの上には、会話のトピック「トピック２」６３０と、会話に関連付けられたすべてのユーザ定義ラベル６３２と、「すべてのメッセージを拡張」ボタン６３４とがある。４つのメッセージは、すでに表示されたか、またはユーザによって既読の印を付けられているため、リスト内の上の３つのメッセージは短縮モードで表示され、最後（かつ、最新）のメッセージのみが拡張モードで表示されている。一部の実施形態では、未読メッセージ（すなわち、まだ表示されていないか、またはユーザによって既読の印を付けられていないメッセージ）がない場合、スターありの印が付けられている会話内のメッセージも拡張モードで表示される。これは、会話内のすべてのメッセージが積み重ねられているという視覚効果を提供する。それぞれの短縮サブフォームは、簡略メッセージヘッダ６４１と、メッセージボディの最初の数語などの、抜粋６４３とを表示する。一部の実施形態では、簡略メッセージヘッダ内の送信者は色で識別され、それにより、各送信者のテキスト表現は異なる色で提示される。これは、表示されている会話内で送信者を識別するために役立つ。一部の実施形態では、送信者に関連付ける色をシステムが使い切ってしまうまで、色はシステムによって生成される。一部の実施形態では、色は会話ごとに関連付けられ、それにより、同じ送信者に、表示される会話によって、異なる色が関連付けられてもよいようになる。簡略メッセージヘッダ６４１内ですべての受信者がハイライトされているのは、これが会話の最初のメッセージであるためであることに留意されたい。対照的に、２つ目の短縮サブフォーム内で１つの識別子「Ｓ１」のみがハイライトされているのは、これが、Ｓ１が会話内の参加者となる最初のメッセージであるためである。拡張サブフォームは、完全なメッセージボディ６４５と、選択された場合に詳細メッセージヘッダが表示されるようにする「詳細オプション」リンク６４７と、返信オプションのリスト６４９とを含む。最後のメッセージはＳ４によって送信されたため、返信オプションのうちの１つは「Ｓ４へ返信」となっており、これは、返信がＳ４に宛てられることをユーザに警告する。
【００４０】
一部の実施形態では、会話内のメッセージの数がしきい値（例えば、８または１０メッセージ）を超え、かつ、会話内の複数の連続するメッセージが短縮サブフォームで表示されるべきである場合（例えば、「受信トレイ」会話リストから選択された会話内の、既読の印が付けられたメッセージ）、これらのメッセージは、テキストを含まず、したがって、送信者リストも抜粋も含まない、第２の短縮サブフォームで表示される。代わりに、第２の短縮サブフォームは、これらのメッセージのそれぞれを小さなバーで表す。視覚効果は、これらのサブフォームが、１組のカード内のカードの端のように見えるということである。一部の実施形態では、会話内の最初と最後のメッセージは第２の短縮サブフォームでは決して表示されず、より一般的には、「スターあり」ラベルを有するメッセージなどの、特定のメッセージは、第２の短縮サブフォームによって表されることから除外される。第２の短縮サブフォームは、多数のメッセージを有する会話の表示を容易にするために使用される。ユーザ指定の検索クエリに一致する会話（しきい値を超える数のメッセージを有する）内のメッセージを表すために、これと同じ方法が使用されてもよい。この場合、第２の短縮サブフォームで表されるメッセージは、検索クエリに一致しない、連続したメッセージのグループである。
【００４１】
図６Ｃの概略スクリーンショットは、（１）最初のサブフォーム６５０は、ユーザがサブフォームをクリックした後で、拡張モードで表示されている、（２）最後のサブフォームは、詳細メッセージヘッダ６６０を含む、（３）メッセージ返信フォーム６７０が、ユーザが「Ｓ４へ返信」リンクをクリックした後で、最後のサブフォームに添付されている、という点を除き、図６Ｂに示したものに類似している。一実施形態では、会話内のメッセージ（例えば、最後のメッセージ）に返信するためのテキストボックスは、ユーザが会話の内容を見ている場合に、そのメッセージに関連して永続的に表示されてもよい。言い換えると、ユーザが「Ｓ４へ返信」リンクをクリックする必要なしに、メッセージ返信フォーム６７０が表示され、それに関連付けられた返信テキストボックスに、ユーザはアクセスすることが可能である。他の実施形態では、メッセージ返信フォームは、会話内のすべてのメッセージについて、または拡張モードで表示されているすべてのメッセージについて、永続的に表示されてもよい。
【００４２】
最初の拡張サブフォーム６５０は、図６Ｂに示す最後のサブフォームと構造的に同じである。これは、簡略メッセージヘッダと、「詳細オプション」リンクと、メッセージボディと、サブフォームの下部にある１組の返信オプションとを含む。詳細メッセージヘッダ６６０は、メッセージ送信者および受信者の電子メールアドレスまたはその他の識別子に加えて、ユーザが行うことが可能な操作のリストを含む。例えば、「このメッセージをゴミ箱に入れる」操作６６１は、ユーザがメッセージを会話から除去することを可能にする。メッセージ返信フォーム６７０は、デフォルトでは、「Ｔｏ：」フィールド内にＳ４のアドレスのみを含み、その理由は、ユーザが返信しようとしているメッセージの送信者はＳ４だからである。ただし、ユーザがより多くの受信者に返信メッセージを送信したい場合、メッセージ返信フォームはユーザに追加のオプション（例えば、「Ｃｃを追加」、「Ｂｃｃを追加」）を提供する。メッセージ返信フォーム６７０は、さらに、ユーザが元のメッセージの件名を編集すること、および返信メッセージにドキュメントを添付することを可能にする。
【００４３】
図６Ｄは、「すべてのメッセージを拡張」ボタン６３４をユーザがクリックした後の、図６Ｂに示す会話の概略スクリーンショットである。結果として、４つのメッセージ６０８がすべて拡張モードで表示されている。ボタン６３４内のテキストは、「すべてのメッセージを短縮」に変化することに留意されたい。ユーザがボタン６３４を再びクリックした後は、会話の表示は、図６Ｂに示すフォーマットに戻る。
【００４４】
図６Ｅは、前に説明した機能のいくつかを示す、会話の概略スクリーンショットである。特に、図６Ｅは、６８２において、会話内のメッセージの数がしきい値を超えた場合に使用される第２の短縮サブフォームの例を示す。ユーザは、それらのメッセージのヘッダ情報は何も見ることができないが、いくつのメッセージがこの第２の短縮サブフォームになっているかを見ることは可能である。一部の実施形態では、第２の短縮サブフォームによるメッセージのいずれの端のメッセージも、簡略メッセージヘッダ６８４および６８６によって示されるような簡略メッセージヘッダを示す、短縮サブフォームで示される。一部の実施形態では、図６Ｅに示すように、簡略メッセージヘッダは、送信者、メッセージの部分、メッセージの日付／時刻値を含み、メッセージのその他の受信者は示さない。「スターあり」機能の例は、メッセージ６８８において見ることができる。メッセージ６８８内のスターは、塗りつぶされているという点で、他のメッセージのスターと異なっており、これは、メッセージ６８８がスターありステータスを有するのに対して、他のメッセージはそうではないことを示している。もちろん、ステータスの区別を提供する任意の視覚的インジケータが使用されてもよく、概念は、「スター」、およびスターが「塗りつぶし」されているかどうかに限定されない。上述のように、スターありステータスを有するメッセージは、一実施形態では、会話が表示され、かつ（図６Ｅにおけるように）未読メッセージがない場合に、拡張モードで表示される。別の実施形態では、未読の、または表示されていないメッセージがある場合、スターありメッセージ６８８は短縮サブフォームで表示されるが、６８２におけるメッセージのような第２の短縮サブフォームでは表示されない。他の実施形態は、未読の、または表示されていないメッセージの存在に関係なく、スターありメッセージを常に拡張モードで表示するなどの、異なる順列（permutation）を見越したものである。
【００４５】
クエリを使用した、会話の検索、リスト、および表示
上述のように、ユーザは、ユーザが指定したクエリに一致する会話を検索してもよい。会話管理システム１０２と会話アシスタント１１０とは、共同で動作して、クエリに対応する検索結果を生成し、非常に直感的な方法でユーザに結果を提示する。図７Ａは、会話アシスタント１１０が、ユーザの検索要求に一致する会話を表示するために、さまざまなフォームを生成する方法を説明するフローチャートである。一部の実施形態では、表示される会話情報をフォーマットするための動作などの、図７Ａに示す動作のいくつかは、クライアント内の会話アシスタントに会話情報を送信する前に、会話管理システムによって実行される。
【００４６】
ステップ７０２において、会話アシスタント１１０は、検索クエリ（１つまたは複数のクエリ語を含んでもよい）に一致する複数の会話を表す情報と、関連する表示命令とを、会話管理システム１０２から受信する。ステップ７０４において、会話アシスタント１１０は、会話リストのホストとなるフォームを生成する（各会話はフォーム内の１つの行を占める）。フォーム内の各行について、会話アシスタント１１０は、さらに、ステップ７０６において、一致したクエリ語を含む抜粋を生成する。一部の実施形態では、会話アシスタント１１０は、検索クエリ内のクエリ語のいずれかに一致する、抜粋の語をハイライトする。ステップ７１０において、会話リストが表示される。図７Ｂは、これらのステップに従って生成される会話リストの概略スクリーンショットである。一部の実施形態では、ユーザは、抜粋の生成および／または表示を抑止させるユーザ嗜好を指定してもよい。一部の実施形態では、検索クエリに一致するテキストが、メッセージのヘッダまたはその他の情報内にある場合、提供される抜粋は、メッセージの最初の部分である。
【００４７】
一部の実施形態では、会話リスト内の会話を表す行（例えば、図７Ｂに示す会話リストの行）をユーザが選択（例えば、クリック）すると（ステップ７１２）、会話アシスタント１１０は、ステップ７１４において、選択された会話を表示する。これを行うために、会話アシスタントは、選択された会話に関連付けられた一連のメッセージのホストとなる、一連のサブフォームを生成する。特に、選択される会話が、ユーザ指定の検索クエリに応答して生成される会話リストから選択される場合、関連するメッセージが検索クエリ内のいずれのクエリ語も含まないサブフォームは短縮モードで表示されるのに対して、関連するメッセージが少なくとも１つのクエリ語を含むサブフォームは拡張モードで表示される。会話アシスタント１１０は、さらに、メッセージボディ内の一致したクエリ語をハイライトする。指定されたクエリに一致する、選択された会話の表示の例を、図７Ｃの概略スクリーンショットに示す。選択された会話が、「受信トレイ」会話リストなどのカテゴリ会話リストから選択された場合は、メッセージの初期表示は、図６Ｃに関して上述したようになる。
【００４８】
図７Ｂは，クエリ語「Ｔａｈｏｅ」７２０に一致する３つの会話７３０をリストする、ブラウザウィンドウの概略スクリーンショットである。３つの会話７３０の上には、「検索オプション」リンク７３２がある。ユーザは、リンクをクリックして、検索を実行するために使用されたオプションを更新してもよい。例えば、ユーザは、検索が１つのカテゴリ内の会話に制限されるか、またはすべてのカテゴリ内の会話に制限されるかを指定してもよい。リストされる会話が、２つ以上の別個のカテゴリに属する場合、グループボックス３４６内のいずれのカテゴリもハイライトされない。一致する各会話内では、「Ｔａｈｏｅ」という語を含む抜粋が識別され、「Ｔａｈｏｅ」という語をハイライトして表示される。これらの抜粋は、３つの会話が３つの別個のトピックを扱うものであることを示している。すなわち、最初の会話は、タホ湖へのスキー旅行に関するものであり、２番目の会話は、タホモデルのＳＵＶに関するものであり、３番目の会話は、タホ国有林におけるキャンプ場に関するものである。したがって、ユーザは、抜粋中の情報を利用して、いずれの特定の会話を開くかを決定してもよい。
【００４９】
図７Ｃは、３番目の会話をユーザがクリックした後の、その会話内のすべてのメッセージを表示する概略スクリーンショットである。このスクリーンショットでは、（グループボックス３４６内の）「すべてのメール」カテゴリがハイライトされていることに留意されたい。これは、３番目の会話が現在、「すべてのメール」カテゴリ内に配置されていることを示す。２番目のメッセージがクエリ語「Ｔａｈｏｅ」を含むため、２番目のサブフォームは拡張モードで表示され、「Ｔａｈｏｅ」という語がハイライトされている。
【００５０】
スペルチェック
図８は、ユーザによって作成されているメッセージ内の、スペルが間違っている可能性のある語を訂正するために、会話アシスタントがユーザと対話する方法を説明するフローチャートである。メッセージを作成した後、かつ、そのメッセージを送信する前に、ユーザは、「その他の操作」プルダウンリストをクリックして、「スペルチェック」項目を選択してもよい。この項目は、図４Ｂでは表示されていないことに留意されたい。その理由は、図４Ｂ内のプルダウンリストは会話レベルの操作のみを含むためである。「スペルチェック」は、メッセージ作成フォームが使用されている間のみプルダウン操作リスト内に表示される、メッセージレベルの操作である。ユーザによる「スペルチェック」操作の選択に応答して、会話アシスタントは、ステップ８０２において、作成されたメッセージを会話管理システムに送信し、次に、作成されたメッセージのスペルチェックされたコピーと、表示命令とを受信する。代替の実施形態では、スペルチェッカーに関連してここで説明する、会話管理システムによって実行される動作は、会話アシスタントによって、またはローカルクライアントアプリケーションによって、ローカル辞書を使用して実行される。表示命令に基づいて、会話アシスタントは、ステップ８０４において、メッセージ内のスペルが間違っている可能性のある語のそれぞれをハイライトし、ステップ８０６において、ハイライトされたそれぞれの語に、システムにより生成された候補となる語のリストを関連付け、ステップ８０８において、独立した閲覧ウィンドウ内に、フォーマットし直されたメッセージを表示する。ユーザが閲覧ウィンドウ内で特定のハイライトされた語を選択すると、会話アシスタントは、ステップ８１０において、ユーザが選択した語をスペル訂正ウィンドウ内に配置し、そのウィンドウの隣に、候補となる代替語のリストを添付する。（代替語は、１つまたは複数の語を含んでもよいことに留意されたい。）会話アシスタントは、次に、ステップ８１２において、スペル訂正ウィンドウ内の、スペルが間違っている語を、候補リスト内のユーザが指定した代替語を使用して更新する。会話アシスタントは、さらに、ステップ８１４において、スペル訂正ウィンドウを、ユーザが指定した方向に拡張してもよく、それにより、ユーザは、ステップ８１６において、スペル訂正ウィンドウ内で２つ以上の語を修正することが可能になる。
【００５１】
図９Ａのスクリーンショットは、ユーザがＳ４への返信メッセージ８１７を作成したことを除き、図６Ｃに示した会話と同じものを示している。メッセージを送信する前に、ユーザはスペルチェックを実行することを決定する。したがって、ユーザは、「その他の操作」プルダウンリストをクリックし、次に、「スペルチェック」項目８１８を選択する。会話アシスタントは、それに対応して、作成されたメッセージを会話管理システムに送信し、次に、独立した閲覧ウィンドウ内にスペルチェック結果を表示する。一部の実施形態では、スペルチェック結果は、ユーザがメッセージを作成していたのと同じウィンドウ内に表示される。実質的には、スペルチェッカーに関連付けられた特定の機能の切り換え、およびスペルが間違っている可能性のある語のハイライトを除き、表示は概して同じままである。この実施形態が有する追加の利点は、メッセージの作成時にユーザに提供されたのと同じ視覚的背景内で（そのような背景を有さない独立した新しいウィンドウがユーザに提示されることなしに）、ユーザがスペルチェックを実行することができるということである。
【００５２】
図９Ｂは、スペルチェックプロセスのさまざまな段階における、３つの独立した閲覧ウィンドウを含むスクリーンショットを示す。最初のウィンドウ８２０は、メッセージのスペルチェックされたコピーを含む。特に、スペルが間違っている可能性のある３つの語８２１、８２３、および８２５が、ウィンドウ内でハイライトされている。２つ目の語８２３をユーザがクリックした後は、２つ目の閲覧ウィンドウ８３０内に示すように、「Ｄｅｌｙｉｎｇ」という語がスペル訂正ウィンドウ８３２内に組み込まれる。さらに、システムにより生成された候補となる語のリスト８３４が、スペル訂正ウィンドウの下または隣に表示される。ユーザは、次に、スペルが間違っている語「ｄｅｌｙｉｎｇ」を置き換えるために、３つ目の置換語「ｄｅｌａｙｉｎｇ」を選択する。訂正された語「ｄｅｌａｙｉｎｇ」の前に「ｔｅｍｐｏｒａｒｉｌｙ」という語を追加したい場合、ユーザは、３つ目のウィンドウ８４０内に示されているように、左向き矢印８４１をクリックし、閲覧ウィンドウのポインタを、スペルが間違っている語「ｄｅｌｙｉｎｇ」の前の位置に配置し、次に、「ｔｅｍｐｏｒａｒｉｌｙ」という語を入力してもよい。最後に、スペルが間違っているすべての語を訂正した後で、ユーザは「完了」ボタン８４５をクリックし、それによりメッセージはＳ４に送信される。
【００５３】
会話サーバ
図１０〜図１９は、前述の会話サーバ１０２の実施形態を説明するための補助となり得る。会話サーバ１０２の一実施形態を、図１０に示す。会話サーバ１０２は、会話エンジン１００２と、アップデータエンジン１００４と、メッセージインデックス１００６と、クエリエンジン１００８と、メッセージデータベース１０１０と、１つまたは複数の補助サービスサーバ１０１２と、スペルチェッカー１０１４と、ＳＭＴＰ１０１６とを含む。
【００５４】
会話エンジン１００２は、通信ネットワーク１０６との接続を経由した、会話アシスタント１１０からの要求と、会話アシスタント１１０への応答とを処理する。通信ネットワーク１０６は、インターネット、１つまたは複数のローカルエリアネットワーク（ＬＡＮ）、１つまたは複数のワイドエリアネットワーク（ＷＡＮ）、その他のタイプのネットワーク、またはそのようなネットワークの組み合わせを含んでもよい。会話エンジンは、さらに、補助サービスサーバ１０１２およびスペルチェッカー１０１４などの、さまざまな補助サービスにも接続される。クエリエンジン１００８は、会話エンジン１００２、メッセージインデックス１００６、およびメッセージデータベース１０１０に接続される。アップデータエンジン１００４は、会話エンジン１００２とメッセージインデックス１００６との間、および会話エンジン１００２とメッセージデータベース１０１０との間に接続される。ＳＭＴＰゲートウェイ１０１６は、会話エンジン１００２と通信ネットワーク１００６との間に接続される。図１０は、会話サーバ１０２を複数の別々のアイテムとして示しているが、この図は、本明細書で説明する実施形態の構造的概略を示すことよりも、むしろ、会話サーバ１０２内に存在してもよいさまざまな特徴の機能的説明を示すことを意図している。実際には、当業者によって理解されるように、別々に示されているアイテムが組み合わされてもよく、いくつかのアイテムは分離されてもよい。例えば、図中で別々に示されているいくつかのアイテムは、単一のサーバ上に実装されてもよく、単一のアイテムが、１つまたは複数のサーバによって実装されてもよい。会話サーバ１０２内の実際のサーバの数、およびそれらの間で特徴が割り当てられる方法は、１つの実装と別の実装とで異なるであろうし、ピーク利用期間中および平均利用期間中にシステムが処理しなければならない電子メールトラフィックの量に部分的に依存してもよい。
【００５５】
上で簡単に述べたように、会話エンジン１００２は、通信ネットワーク１０６との接続を経由して、会話アシスタント１１０からの、メッセージに関連するさまざまな要求に応答して、会話ベースの応答を返してもよい。ＳＭＴＰゲートウェイ１０１６も通信ネットワーク１０６に接続されてもよいが、ＳＭＴＰゲートウェイ１０１６は、メッセージの受信および送信に、より直接的に関与してもよい。一部の実施形態では、ＳＭＴＰゲートウェイ１０１６は、例えば、シンプル・メール・トランスファー・プロトコル（Ｓｉｍｐｌｅ Ｍａｉｌ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ（ＳＭＴＰ））を使用してメッセージを送信および受信する。ＳＭＴＰゲートウェイ１０１６は、新しいメッセージを通信ネットワーク１０６から受信し、そのメッセージをさらなる処理のために会話エンジン１００２に送信してもよい。さらに、ＳＭＴＰゲートウェイ１０１６は、会話サーバ１００２からメッセージを受信し、次に、それらのメッセージを、メッセージ内で指定された受信者アドレスに（通信ネットワーク１０６を経由して）送信する。
【００５６】
会話エンジン１００２は、さらに、作成中であってもよいメッセージのスペルチェックのための要求も処理してもよい。会話エンジン１００２は、チェックされるべきテキストの部分を、スペルチェックのために、スペルチェッカー１０１４に送信する。スペルチェッカー１０１４は、スペルが間違っている可能性があるとして識別されたテキストの識別情報を含む情報を返す。一部の実施形態では、スペルチェッカー１０１４は、スペルが間違っている可能性があるとして識別されたテキストのための、候補に関する情報を提供する。一部の実施形態では、この情報は、後続の処理のために、会話アシスタント１１０に送信される。
【００５７】
１つまたは複数の補助サービスサーバ１０１２は、追加のサービスを会話エンジン１００２に提供する。一部の実施形態では、補助サービスサーバ１０１２は、迷惑メール検出モジュールを含む。迷惑メール検出モジュールの動作は、図１１を参照して以下で説明する。一部の実施形態では、補助サービスサーバ１０１２は、電子メールメッセージに添付されたファイルの効率的な記憶および取り出しを管理する、添付ファイル管理モジュールを含む。
【００５８】
受信されたメッセージを処理するための実施形態を、図１１に示す。メッセージは、受信され、会話に割り当てられ、インデックスされ、１つまたは複数の属性が割り当てられて、保存される。最初に、メッセージは、例えばＳＭＴＰゲートウェイ１０１６によって受信され、そこでいくらかの加工および処理が行われもよく、次に、会話エンジン１００２に渡されてもよい（ステージ１１０２）。会話エンジン１００２は、メッセージのためのメッセージ識別子を生成してもよい。メッセージ識別子は、１つのメッセージを別のメッセージから区別するために使用されてもよい。一実施形態では、識別子は、１つまたは複数の部分から構成される、Ｎビットの数である。例えば、一実施形態では、メッセージ識別子は、Ｙビット（例えば、３２ビットまたは４８ビット）のタイムスタンプと、メッセージ内容の６４−Ｙビットハッシュとからなる、６４ビットの数であってもよい。ハッシュは、大きな領域から小さな領域に値をマッピングする数学関数である。当業者は、メッセージを相互に区別するための十分な情報を提供するメッセージ識別子の、多くの異なる作成方法があることを理解するであろう。
【００５９】
会話エンジン１００２は、次に、メッセージをその構成部分へ、構文解析してもよい（ステージ１１０４）。これらの部分は、送信者のアドレス、１つまたは受信者アドレス、メッセージの件名、前述のＲＦＣ２８２２（２００１年４月）内に記載されている「Ｒｅｆｅｒｅｎｃｅｓ：」フィールド、ＲＦＣ２８２２内に同様に記載されている「Ｉｎ−Ｒｅｐｌｙ−Ｔｏ：」フィールド、メッセージの内容、または、メッセージ内に含まれてもよいその他の任意の情報を含んでもよい。メッセージが受信された後、かつメッセージの構文解析の前または後に、メッセージは、迷惑メール検査モジュールに渡されて（ステージ１１０５）、メッセージが迷惑メール基準に一致するかどうかが判定される。一部の実施形態では、迷惑メール検査モジュールは、他のメッセージ処理と非同期に、かつ並列に動作する。一部の実施形態では、迷惑メール基準は、ユーザが読むことを希望する見込みがない、求められていないメッセージである可能性があるかどうかを判定することを意図したものである。
【００６０】
構文解析されたメッセージは、メッセージデータベースに追加される（ステージ１１０６）。一実施形態では、メッセージは、メッセージデータベースに追加され、その後は修正されることはない（ただし、削除についての修正は除くことがある）。
【００６１】
メッセージの構文解析中に抽出されたメッセージの部分のいくつかまたはすべては、受信されたメッセージが属する会話（存在する場合）の判定を補助するために使用されてもよい（ステージ１１０８）。例えば、メッセージの件名が、同じ件名を有する他のメッセージと比較されてもよく、その理由は、会話内のメッセージは同じ、またはほぼ同じ件名を有する可能性があるためである。適合する会話が見つからない場合、メッセージは、新しい会話に関連付けられる。
【００６２】
会話の関連付けが行われた後、メッセージは検索のためにインデックスされる（ステージ１１１０）。一実施形態では、ヘッダ情報の部分に加えて、メッセージのテキストのすべてがインデックスされる。一部の実施形態では、メッセージボディ内の「ノイズワード」（例えば、「ｔｈｅ」、「ａ」、「ｏｒ」などの単語）はインデックスされないが、メッセージの関連部分内の他のすべてのテキストはインデックスされる。検索される可能性があるメッセージの部分はインデックスされなければならないことを、当業者は理解するであろう。以下に記載するように、一部の実施形態では、メッセージに関連付けられた属性に関する情報が、メッセージ処理の後のステージにおいてインデックスに追加される。
【００６３】
次に、初期属性の組がメッセージに割り当てられる（ステージ１１１２）。これらのタイプの属性は、例えば、メッセージが新しいことを示すために、受信されたメッセージに「未読」のラベルを付けること（これは通常、メッセージがまだ表示されておらず、既読の印も付けられていないことを意味する）を含んでもよい。ユーザにより送信されるメッセージ以外の、メッセージに初期割り当てされる別の属性は、「受信トレイ」属性である。各メッセージに初期割り当てされる別の属性の組は、同じ会話内の他のメッセージ（存在する場合）に関連付けられるユーザ定義の属性である。会話内の他のメッセージに関連付けられたユーザ定義の属性は、図１８を参照して以下に記載する会話データベースを検索することにより判定される。その他の属性も、メッセージに初期割り当てされてもよい。メッセージに関連付けられた属性は、メッセージデータベースを検索して、類似した属性を有するメッセージを取得するために使用されてもよい。例えば、「未読」のラベルが付けられたすべてのメッセージを検索するために、検索が実行されてもよい。さらに、会話の属性がメッセージに追加されてもよく、その理由は、一実施形態では、メッセージはその会話の属性を継承するためである。
【００６４】
一部の実施形態では、メッセージに関連付けられる属性は、必ずしも会話内のすべてのメッセージではなく、個別のメッセージに関連付けられる属性を含んでもよい。例えば、「削除の印付き」属性（「ゴミ箱」属性と呼ばれることもある）は、会話内の個別のメッセージに関連付けられてもよく、その一方で、同じ会話内の他のメッセージには関連付けられなくてもよい。削除の印付きメッセージは、依然としてシステムによって記憶され、依然として会話に関連付けられているが、対応する会話が表示される際に、通常は表示されない。「削除の印付き」属性を有するメッセージをユーザが見ることを可能にするために、１つまたは複数の特別な表示が使用される。そのような表示は、メッセージを「復旧」する機会をユーザに提供する。他方、一部の実施形態では、ユーザ定義ラベルが会話に関連付けられた場合、会話内のすべてのメッセージにそのラベルが関連付けられる。その他の一部の実施形態では、ユーザ定義ラベルが会話に関連付けられた場合、事前定義された基準を満たす、会話内のすべてのメッセージ（例えば、削除の印付きメッセージ以外のメッセージ）にそのラベルが関連付けられる。
【００６５】
次に、ユーザが設定済みであってもよいユーザ定義フィルタがあれば、メッセージに適用される（ステージ１１１４）。それぞれのユーザ定義フィルタは、１組のフィルタ条件と、１組の動作とを含む。フィルタ条件は、どのメッセージがフィルタに一致するかを定義し、動作は、メッセージに追加される、またはメッセージから削除されるラベルを指定する動作を含む。フィルタ条件は、送信者、受信者、メッセージ件名内のテキスト、メッセージ内のテキストなどに関する基準を含んでもよい。一部の実施形態では、動作は、「受信トレイから削除」（すなわち、メッセージから「受信トレイ」ラベルを削除（存在する場合））、メッセージにシステムラベル（カテゴリと呼ばれることもある）を追加、およびメッセージにユーザ定義ラベルを追加することを含んでもよい。例えば、フィルタは、特定の語または語の組み合わせを有するすべてのメッセージに、「ゴミ箱」ラベルがラベル付けされることを指定してもよい。別のフィルタは、メッセージ内の任意の位置に「Ｌａｋｅ Ｔａｈｏｅ」という語が現れる場合、そのメッセージに「Ｖａｃａｔｉｏｎ」ラベルが追加されることを指定してもよい。
【００６６】
一部の実施形態では、ステージ１１１２および１１１４は、処理中のメッセージへのラベルの割り当てに関する、ということが留意されてもよい。ステージ１１１２および１１１４の実行時、またはその頃において、迷惑メール検査モジュール（ステージ１１０５）からの結果が取得される。迷惑メール検査モジュールが、メッセージを迷惑メールとして分類した場合、「迷惑メール」ラベルがメッセージに割り当てられ、相いれないラベル（例えば、「受信トレイ」または「ゴミ箱」）があればメッセージから削除される。
【００６７】
メッセージに割り当てられるラベルの組が設定された後は、会話エンジン１００２内のインデックスおよび特定のテーブルが、メッセージに割り当てられたラベルの組を反映するように更新される（ステージ１１１６）。インデックスは、メッセージに割り当てられたラベルを示す情報を追加することによって更新される。結果として、それらのラベルのそれぞれについてのインデックス検索は、処理中の現在のメッセージを含む、メッセージのリストを生成するようになる。さらに、会話エンジン内の少なくとも１つのテーブルまたはデータベースが、処理中の現在のメッセージに割り当てられたラベルの組を示すように更新される。これは、図１８を参照して、以下で説明する。
【００６８】
最後に、メッセージの送信者に確認応答が送信されてもよい（ステージ１１１８）。一部の実施形態では、確認応答が送信されてもよく、他の実施形態では、確認応答は送信されなくてもよい。
【００６９】
図１１は、ステージを特定の順序で示しているが、ステージの順序を不当に制限することを意図するものではない。他の実施形態では、ステージは異なる順序であってもよい。例えば、メッセージのインデックスを行う前に、メッセージデータベースにメッセージが追加されてもよく、したがって、ステージ１１１４の後にステージ１１１０が続いてもよい。当業者は、ステージのさまざまな並べ換え方法を理解するであろう。
【００７０】
会話への各メッセージの関連付け
図１２を参照して、メッセージがどのようにして会話に対応付けられてもよいか（ステージ１１０６）を、以下にさらに詳細に記載する。メッセージが構文解析（図１１のステージ１１０４）された後で、構成部分の一部は、候補となる会話のための検索クエリを構築するために使用されてもよい（ステージ１２０２）。例えば、会話は、時間情報、送信者情報、件名情報、ヘッダ内のその他の情報、システムにより提供される情報、またはそれらの任意の組み合わせに基づいて関連付けられてもよい。一部の実施形態では、メッセージの件名を、「Ｒｅｆｅｒｅｎｃｅｓ：」および／または「Ｉｎ−Ｒｅｐｌｙ−Ｔｏ：」フィールドとともに使用して、検索クエリを構築してもよい。他の実施形態では、メッセージの送信者、または受信者を検索クエリ内に含む。当業者は、現在のメッセージに関連付けられてもよいメッセージを生成するための、多くのさまざまな検索クエリを理解するであろう。
【００７１】
検索クエリが、以前に記憶されたメッセージに対して適用され、候補となるメッセージが受信される（ステージ１２０４）。メッセージ、またはメッセージに関する情報が調べられて、現在のメッセージに最もよく一致するメッセージ（存在する場合）が判定される（ステージ１２０６）。そのメッセージが属する会話が、現在のメッセージが属する会話である可能性がある。現在のメッセージが属する会話を判定するために、多くの異なる方法が採られてもよい。一方法では、現在のメッセージの件名を使用してもよい。同じ件名を有するメッセージは、同じ会話に属する可能性がある。したがって、現在のメッセージの件名を使用するクエリが構築されてもよい。例えば、着信メッセージが件名「今日の昼食はどこに行きましょうか？」を有する場合、この現在のメッセージが属する会話（存在する場合）は、同じ件名を有する１つまたは複数のメッセージを含む可能性がある。件名を比較する場合、比較を実行する前に件名をノーマライズするのが望ましいことがある。一部の実施形態では、件名のノーマライズは、一部のシステムによって件名に一般に追加される、「Ｒｅ：」および「Ｆｗｄ：」などのプレフィクスを削除することを含む。
【００７２】
ただし、件名のみではなく、それ以上を調べるのが望ましい場合がある。２つのメッセージが同じ件名を有し、しかし一方は他方よりもはるかに前に受信された場合、それらは同じ会話の一部ではない可能性が比較的高い。例えば、件名「今日の昼食はどこに行きましょうか？」を有する２つのメッセージが、１か月間隔たって受信された場合、それらが同じ会話の部分である見込みはない。したがって、本発明の一実施形態では、現在のメッセージと、候補となる会話からのメッセージとの、ノーマライズされた件名が一致する場合、メッセージの日付／時刻値の検査が望ましいことがある。
【００７３】
メッセージを会話に照合する場合、受信者、メッセージ内容の部分、送信者のドメインアドレス、またはその他の要素などの、その他の要素が考慮されてもよい。当業者は、新しいメッセージが属する会話を判定するための、多くの異なる方法があることを理解するであろう。現在のメッセージが、十分に一致するメッセージと照合されたら、一致するメッセージに関連付けられた会話が、現在のメッセージに関連付けられてもよい（ステージ１２０６）。他方、十分に一致するメッセージが検出されない場合（したがって、会話が検出されない場合）は、新しい会話識別子がメッセージに関連付けられる（ステージ１２０６）。
【００７４】
一部の実施形態では、会話識別子は、会話内で受信された最初のメッセージから作成されてもよい。例えば、最初のメッセージの、システムにより提供されるメッセージ識別子（送信または受信システムのいずれかによって提供される）が、会話識別子としての役割を果たしてもよい。後続のメッセージは、その後、会話識別子としての役割を果たすようになった、このメッセージ識別子に関連付けられる。当業者は、会話識別子を提供するために使用されてもよい、最初のメッセージのさまざまな特徴を理解するであろう。一部の実施形態では、複数の会話に同じ会話識別子が割り当てられないように、特徴は、値が最初のメッセージに固有であるという確信をいくらか提供する（provide some comfort）ものでなければならない。
【００７５】
前述のように、現在のメッセージが（既存のまたは新たに作成された）会話に関連付けられた後は（ステージ１１０６）、初期属性が追加される（ステージ１１０８）。これらの初期属性を追加（ステージ１１０８）するための一実施形態は、図１３を参照することによって、よりよく理解されるであろう。最初に、メッセージの送信者が調べられてもよい。現在のメッセージの送信者が、ユーザ（そのユーザのためにこのメッセージ処理が実行されている）ではない場合、現在のメッセージは、そのユーザに対して、他の誰かによって送信された可能性が高い。したがって、ステージ１３０２において、現在のメッセージの送信者がユーザではないことが判定された場合、「受信トレイ」という初期属性（「受信トレイ」ラベルとも呼ばれる）が、現在のメッセージに関連付けられてもよい（ステージ１３０４）。「受信トレイ」という属性は、ユーザに対して送信されたメッセージを識別するために使用されてもよい。例えば、一部の実施形態では、「受信トレイ」属性を有するメッセージの検索が、ユーザのための「受信トレイ」表示の生成において使用される。
【００７６】
本明細書中では、用語「属性」および「ラベル」は、区別なく使用される。さらに、メッセージに特定の属性を「関連付ける」ことと、特定の属性またはラベルをメッセージに「印付ける」こととは、同じまたは同等の操作であると見なされる。
【００７７】
現在のメッセージは新しい可能性が高いため、ユーザはこのメッセージを以前に見たことがない可能性も高い。したがって、それを示す「未読」属性が、現在のメッセージに関連付けられてもよい（ステージ１３０６）。当業者は、同じ結果を実現するために、メッセージ属性が多くの方法で実装されてもよいことを理解するであろう。例えば、事前定義された値が「受信トレイ」を表してもよい。それらの属性に基づいて、所望の属性を有するメッセージが検索可能であれば十分である。その他の属性もメッセージに関連付けられてもよい。属性は複数の形態で考慮されてもよいが（Attributes may be thought of in a plurality of forms）、区別よりも、特定の属性を検索する機能の方がより重要である。属性は、「受信トレイ」、「ゴミ箱」、「迷惑メール」、「すべてのドキュメント」、および「未読」などの、システム定義属性を含んでもよい。一部の実施形態では、特定のシステム属性は相互排他的であってもよい（例えば、「受信トレイ」、「ゴミ箱」、および「迷惑メール」）。属性は、本明細書でカテゴリと呼ばれることもある、ユーザ定義属性も含んでいてもよい。
【００７８】
（ステージ１３０２において判定されるように）ユーザが処理中のメッセージの送信者であった場合は、または、「未読」などの任意の適用可能なシステム属性がメッセージに追加（ステージ１３０６）された後は、会話に属する追加の属性がメッセージに追加される（ステージ１３０７）。
【００７９】
特定のフィルタ基準が調べられて、着信メッセージに対して適用されてもよい（ステージ１３０８）。一実施形態では、ユーザは、所定の条件が満たされた場合に受信メッセージに属性を適用するフィルタを設定してもよい。別の実施形態では、システムが１つまたは複数の事前定義されたフィルタを受信メッセージに適用してもよい。
【００８０】
現在のメッセージがフィルタ基準に一致する場合、フィルタに従って、メッセージに属性が適用されてもよい（ステージ１３１０）。一実施形態では、特定のメッセージが「受信トレイ」内に配置されないように、ユーザがフィルタを設定することを可能にするためのツールを、システムが提供する。言い換えると、このフィルタは、「受信トレイ」属性がメッセージから除去されるようにする。別の実施形態では、現在のメッセージは、ユーザに対象分野（１つまたは複数の会話が関連していてもよい）を示すラベルなどの、特定のユーザ定義属性に関連付けられてもよい。例えば、着信メッセージは、ラベル「食物」を有する会話に関連付けられてもよく、次に「食物」ラベルが現在のメッセージに関連付けられる。一般に、メッセージは、そのメッセージが関連付けられている会話のラベルを継承する。複数のフィルタが受信メッセージに適用されてもよいため、新しく受信されたメッセージおよびそれらが関連付けられる会話は、２つ以上のユーザ定義ラベルに関連付けられてもよい。
【００８１】
別の実施形態では、ユーザは、スヌーズ条件を会話に関連付けてもよい。一部の実施形態では、スヌーズ条件が会話に関連付けられるのは、それを行うようにユーザがシステムに明確に指令した場合である。一部の実施形態では、スヌーズ条件が会話に関連付けられるのは、会話内のメッセージにフィルタが一致した場合である。スヌーズ条件は、スヌーズ条件が適用されている会話内に、新しいメッセージが受信された場合に、特定の動作が実行されるように指定するものである。例えば、スヌーズ条件は、会話内の新しいメッセージに「受信トレイ」ラベルをシステムが関連付けるのを防止してもよい。より具体的には、ユーザは、特定のトリガ条件が満たされない限り、会話内の新しいメッセージがユーザの受信トレイ内に配置されるのを防止するスヌーズ条件を、（直接的に、またはフィルタの動作を介して）会話に関連付けてもよい。そのようなトリガ条件の１つは、（唯一の一次受信者として）ユーザに直接宛てられた着信メッセージであってもよい。別のそのようなトリガ条件は、ユーザまたはシステムによって選択された期間の経過であってもよい。さらに他のトリガ条件は、指定された単語または語句を含む受信メッセージであってもよい。この場合、スヌーズ条件を満たすメッセージが受信されると、スヌーズ条件は会話から削除され、着信メッセージに「受信トレイ」ラベルが印付けられる。一部の実施形態では、会話内の他のメッセージに「受信トレイ」ラベルを追加するなどの、追加の動作も行われてもよい。別の実施形態では、「未読」ラベルを有する会話内のすべてのメッセージに、「受信トレイ」ラベルがラベル付けされる。したがって、「受信トレイ」の検索によって、この会話が返される。一部の実施形態では、事前定義された事象または条件が発生するまで、会話に関連付けられた新しいメッセージに「受信トレイ」ラベルが印付けられるのを防止する、スヌーズフィルタを生成することによって、スヌーズ条件が会話に関連付けられる（事前定義された事象または条件が発生した後は、スヌーズフィルタは削除されるか、または修正される）。
【００８２】
受信メッセージに適用されてもよい別のタイプのフィルタは、望ましくないメッセージを識別して、それらのメッセージに「迷惑メール」ラベルを印付ける（すなわち、そのようなメッセージに「迷惑メール」属性を関連付ける）、「迷惑メール」フィルタである。
【００８３】
図１４は、会話の属性を修正するための一実施形態を説明する。会話の属性は、会話または会話に関連付けられた着信メッセージが、フィルタ基準に一致する場合に修正されてもよい。会話の属性は、さらに、特定のユーザ定義属性を会話が有するべきであることをユーザが指示した場合も、修正されてもよい。例えば、ユーザは、特定の会話が「食物」カテゴリに関連付けられるべきであることを指定してもよい。そのような場合、会話（およびその各メッセージ）には、「食物」属性に関連付けられるようにするために、「食物」ラベルが印付けられる。ユーザは、さらに、会話に削除のための印が付けられるように指定してもよい。
【００８４】
いくつかの点で、ユーザ定義属性は、概念的に、フォルダになぞらえることができる。しかし、本発明の実施形態では、会話が、複数のユーザ定義属性に関連付けられることが可能である。一部の実施形態では、新しい属性が会話に関連付けられた場合、会話内のすべてのメッセージに新しい属性が印付けられる。
【００８５】
図１４を参照すると、会話の特定の属性が修正されるべきである場合、検索が構築されて（ステージ１４０２）、会話が見つけられる（ステージ１４０４）。会話が見つかった後は（ステージ１４０４）、会話の属性が修正されてもよい（ステージ１４０６）。ステージ１４０２、１４０４、および１４０６を実現するために使用される特定の機構は、属性を会話に関連付けるために使用される機構に依存する。一部の実施形態では、属性は、会話ベースで会話に関連付けられる。例えば、会話エンジンは、それぞれの特定の会話に関連付けられた属性のリストを維持してもよい。それに代えて、又は加えて、会話エンジンは、それぞれの定義済み属性を、その属性が印付けられたすべての会話にマッピングする、インデックスを維持してもよい。あるいは、一部の実施形態では、会話に関連付けられた属性は、会話内の個別のメッセージに関連付けられてもよい。そのような実施形態では、会話エンジンは、それぞれの定義済み属性を、その属性が印付けられたすべてのメッセージにマッピングするインデックスを維持してもよく、さらに、各メッセージを、そのメッセージに関連付けられた会話にマッピングするための、テーブルまたはその他の機構も維持してもよい。
【００８６】
本発明の多くの機能では、メッセージではなく、会話が、情報の基本単位として使用される。例えば、「受信トレイ」は、会話のリストをユーザに提示する。本発明の一部の特徴では、ユーザの電子メールアカウント内の、複数の別個の会話表示内にリストされるべき会話を識別するために、検索が使用される。会話の検索、および識別された会話の表示の生成について、図１５を参照して次に説明する。最初に、検索クエリが受信される（ステージ１５０２）。検索クエリは、ユーザにより指定されたもの、または（例えば、ユーザが「受信トレイ」アイコンをクリックしたのに応答して）システムにより生成されたものであってもよい。検索クエリは、複数の要素に基づいていてもよい。検索クエリ内の検索語は、単語または単語の組み合わせの形態で、ユーザにより指定されてもよい。例えば、「ベーグル」および「安価」という単語を含むメッセージをユーザは検索してもよく、それにより、関連する会話があれば返される。検索クエリは、特定のユーザ操作に応答して、システムによって生成されてもよい。例えば、「受信トレイ」の表示をユーザが希望した場合、システムにより生成された検索クエリが、属性「受信トレイ」を有する会話を検索してもよい。
【００８７】
検索クエリ内では、検索可能な語の任意の組み合わせが使用されてもよい。上述のように、検索可能な語は、メッセージのテキスト、メッセージまたは会話に関連付けられた任意の属性、あるいはメッセージに関連付けられたヘッダ情報を含んでもよい。一実施形態では、検索クエリをメッセージのデータベースに適用すると、１組のメッセージが返される（ステージ１５０４）。図１０を手短に参照すると、これは、例えばクエリエンジン１００８に検索クエリを送信することにより行われてもよい。クエリエンジン１００８は、検索クエリをメッセージインデックス１００６に適用してもよく、メッセージインデックス１００６はメッセージのリストを返してもよい。ステージ１５０４において、メッセージのリストが受信されてもよい。望ましい場合は、他の実施形態が、１組のメッセージ識別子、ドキュメント識別子、メッセージのすべてまたは部分、あるいはそれらの任意の組み合わせを戻すことを含む、多くの異なる方法でメッセージのリストを返してもよい。
【００８８】
一部の実施形態では、検索は、個別のメッセージに対してではなく、全体としての会話対して実行される。したがって、クエリが第１および第２のクエリ語を含み、その一方が最初のメッセージ内で検出され、もう一方が同じ会話の２つ目のメッセージ内で検出された場合、その会話はクエリに関連していると見なされ、したがって、検索結果に含まれる。例えば、会話の中で、最初のメッセージは昼食の場所の案を求め、後続のメッセージは、特定のレストランの名前を挙げながらも、最初のメッセージのテキストは含んでいない場合を考える。ユーザが、特定のレストランと昼食とについて議論されている会話を見つけることに興味がある場合、検索は、会話内のメッセージ境界が存在しないかのように、会話全体のテキストに対して適用されるならば、望ましい結果を生成する可能性がより高くなる。
【００８９】
会話は、ステージ１５０４において返されるメッセージの組に関連付けられている。関連付けられている会話を識別するために、多くの方法が使用されてもよい。ステージ１５０４において返された組からメッセージが選択されると（ステージ１５０６）、メッセージが属する会話が識別される（ステージ１５０８）。一実施形態では、各メッセージを会話に対応させるデータ構造が維持されてもよい。その場合は、特定のメッセージ識別子に関連付けられたデータ構造エントリの検査によって、メッセージが属する会話が識別される。結果の組として返される会話の数は、事前定義された数に制限されてもよい。その場合、十分な数の会話が識別されるまで、メッセージの組の処理が継続されて、結果が返される。他方、返されるメッセージの組に関連付けられたすべての会話が識別されるが、サブセットのみが返されてもよい。
【００９０】
返された結果のすべてまたは一部が属する会話を識別することによって、会話のリストが作成されたら（ステージ１５１０）、会話情報が、要求者に返すためにフォーマットされる（ステージ１５１２）。フォーマットステージ１５１２では、識別された会話に関連付けられた複数の異なるタイプの情報がフォーマットされてもよく、その詳細は１つの実施形態と別の実施形態とで異なる。一部の実施形態では、フォーマット情報は、ユーザへの会話情報の表示のために会話アシスタント１１０によって認識されるタイプである。
【００９１】
一部の実施形態では、ステージ１５１０において生成される会話リスト内の会話は、事前定義された規則または規則の組に従って各会話に割り当てられた日付／時刻値に基づき並べられる。上述のように、一部の実施形態では、会話リスト内の各会話には、会話リストを生成するために使用された検索基準に一致する最新のメッセージの日付／時刻に等しい日付／時刻が割り当てられ、会話リスト内の会話は、これらの割り当てられた日付／時刻値に従って（例えば、逆時系列順に）並べられる。当業者は、会話リスト内の会話を並べて表示するための、その他のさまざまな方法があることを理解するであろう。
【００９２】
一部の実施形態では、（ステージ１５１２において生成された）会話リストを表すフォーマットされた会話データは、会話リスト内の各会話に含まれるメッセージ数のカウントを含む。一部の実施形態では、各会話のメッセージカウントは、会話内に含まれているメッセージの数をユーザに示すために、会話アシスタント１１０によって表示される。
【００９３】
一実施形態では、会話リスト内の各会話について、（例えば、ステージ１５１２の間に）簡略会話ヘッダが作成される。会話ヘッダは、会話内のメッセージの送信者のリストを識別してもよい。このリストは、会話内の送信者のすべてまたはサブセットを含んでもよい。一部の実施形態では、送信者のリストは、ユーザによって現在「未読」としてラベル付けされている（会話内の）メッセージを送信した送信者を、視覚的に識別するようにフォーマットされてもよい。別の実施形態では、会話アシスタント１１０は、これらの送信者を、他の送信者とは異なるフォーマットで表示する。例えば、「未読」メッセージの送信者は、太字の、またはハイライトされたテキストを使用して識別されてもよい。
【００９４】
別の実施形態では、（簡略会話ヘッダ内の）メッセージ送信者のリストは、ユーザの名前またはアドレスを自己参照識別子に置き換えることによって処理されてもよい。結果として、会話についての送信者リストが表示される際に、ユーザ以外の送信者に類似した、ユーザの名前または他の識別情報を表示する代わりに、自己参照識別子（例えば、「ｍｅ」）が表示される。その他のタイプの自己参照識別子が、画面を見ているユーザ（the viewing user）を、他のユーザから区別するために使用されてもよい。
【００９５】
別の実施形態では、会話リスト内の各メッセージのための簡略会話ヘッダは、ユーザがメッセージをどのように受信したかを示す情報を含んでもよい。言い換えると、その情報は、ユーザにどのようにしてメッセージが送信されたかを明確に識別してもよい。例えば、ユーザにはメッセージが直接送信されてもよく、またはユーザにはメッセージがＣｃで送信されてもよく、またはユーザにはメッセージがＢｃｃで送信されてもよく、またはユーザはメッセージ送信先の配布リストの一部であってもよい。ユーザがメッセージを受信した、これらのさまざまな方法のうちの１つまたは複数が、ユーザに示されてもよい。例えば、ユーザにメッセージが直接送信された場合、それを示すための画像的表示（「＞」など）が、ユーザに会話を提示する際に使用されてもよい。
【００９６】
一部の実施形態では、会話リスト内の各メッセージのための簡略情報ヘッダは、会話内容の抜粋を含み、抜粋は、検索語に一致するテキストを太字で表示するための情報を含み、さらに、一致するテキストを囲む、通常のフォントでフォーマットされたテキストも含む。受信トレイまたはその他のシステムカテゴリのために、会話リストが生成される場合、抜粋は、事前定義された基準に従って選択された、会話からのテキストを含む。一部の実施形態では、抜粋は、会話内の最新のメッセージの最初の部分からのテキストを含むのに対して、別の実施形態では、抜粋は、会話内容を示すように自動的に選択されたテキストを含む。
【００９７】
別の実施形態では、検索クエリに一致する会話の中から、特定の会話を見るためにユーザが選択する場合、会話エンジンは、会話内のどのメッセージがクエリに一致し、どのメッセージが一致しないかを示す会話情報を生成してもよい。会話情報は、さらに、検索クエリに一致するメッセージのテキストの部分も含んでもよい。この会話情報は、ユーザへの表示のためにフォーマットされてもよい。会話情報は、拡張モードで表示するためにフォーマットされた一致するメッセージと、短縮モードで表示するためにフォーマットされた一致しないメッセージとを含んでもよい。拡張モードでは、ヘッダ情報と、内容情報と、検索クエリに一致するテキストと、検索クエリを囲むテキストとの、すべてまたは一部の、任意の組み合わせを含む、さまざまなタイプの情報がユーザに提示されてもよい。一部の実施形態では、（例えば、ユーザが「すべてのメッセージを短縮」ボタンまたはオプションを選択したことに応答して）検索クエリに一致する１つまたは複数のメッセージが短縮モードで表示される場合、そのようなメッセージのために短縮モードで表示される情報は、メッセージ内容の抜粋を含み、抜粋は、検索語に一致するテキストを太字で表示するための情報を含み、さらに、一致するテキストを囲む、通常のフォントでフォーマットされたテキストも含む。
【００９８】
さらに別の実施形態では、会話情報は、特定のユーザがいつ会話に追加されたか、またはいつ会話から除去されたかを示してもよい。例えば、あるユーザが、ある時点までは会話内のメッセージに含まれていて、その後は含まれなくなった場合、１つまたは複数の後続のメッセージについての情報は、そのユーザがもはや会話の部分ではなくなったことを示してもよい。会話アシスタントは、例えば、そのユーザの名前を表示するために、まだ会話に参加しているユーザの名前を表示するために使用されるフォントとは異なるフォントを使用することによって、これを行ってもよい。会話アシスタントは、この目的のために「ゴースト（ｇｈｏｓｔ）」フォントを使用してもよい。
【００９９】
会話情報は、さらに、会話への新しい参加者の導入に関する情報も提供してもよい。例えば、新しい参加者を含む最初のメッセージに関する情報は、新しい参加者の名前を識別的に表示するためのフォーマット情報を含んでもよい。この情報は、会話アシスタントによってユーザに表示されてもよく、それにより、新しく追加された送信者の名前またはその他の識別情報が、太字または他の何らかの視覚的識別力のある表示フォーマットで表示されてもよい。
【０１００】
会話情報は、さらに、スペルチェックに関する情報も含んでもよい。この情報は、スペルチェッカー１０１４が、スペルが間違っている可能性があるとして識別した語に関する指示と、正しいスペルの候補に関する情報とを含んでもよい。
【０１０１】
図１６は、本発明の一実施形態に従ってメッセージを記憶するためのフォーマットの例を示す。メッセージは、メッセージデータベース内に記憶される場合（図１１のステージ１１１４）、図１６に示すように記憶されてもよい。メッセージデータベース１６０２は、例えばメッセージ１（１６０４）〜メッセージｘ（１６０６）（ｘは特定のユーザに対応するメッセージの数を表す）などの、メッセージに関する情報を記憶してもよい。一実施形態では、各ユーザのメッセージは、そのユーザに固有のメッセージデータベース１６０２内に記憶される。別の実施形態では、２人以上のユーザに属するメッセージが、同じメッセージデータベース１６０２内に記憶されてもよい。当業者は、１人のユーザのメッセージ（messages from one user）が、別のユーザに属するメッセージとして現れるのを防止するための多くの方法を理解するであろう。さらに別の実施形態では、２人以上のユーザのメッセージが、メッセージにつき１つのみの記憶エントリを使用して、メッセージデータベース１６０２内に記憶されてもよく、それにより、複数のユーザがメッセージの１つのコピーを参照するようになってもよい。
【０１０２】
一実施形態では、メッセージ（例えば、メッセージ１６０８）は、ヘッダ情報１６１２と、内容１６１４と、アタッチメント１６１６とを含んでもよい。ヘッダ情報１６１４は、例えば、送信者および受信者を識別する情報と、メッセージの日付／時刻値と、件名とを含む、メッセージのヘッダ情報を含んでもよい。ＲＦＣ２８２２に記載されているような、その他の情報も、ヘッダ情報内に含まれてもよい。内容１６１４は、メッセージの内容を含んでもよい。内容１６１４は、テキストおよび／またはその他のタイプの内容（例えば、画像または写真）を含んでもよい。アタッチメント１６１６は、特定のメッセージに添付される任意の情報の内容であってもよい。例えば、メッセージに添付されるドキュメントは、メッセージ１６１０のこの部分に配置されてもよい。当業者は、メッセージ情報を記憶するためのその他の方法を理解するであろう。例えば、添付ファイルは、別の記憶構造内に記憶されてもよく、その記憶構造への参照がアタッチメント１６１６内に配置されてもよい。
【０１０３】
代替実施形態では、各会話についてのすべてのメッセージが、メッセージデータベース内の単一のレコード、ドキュメント、またはデータ構造として記憶される。
【０１０４】
ユーザ、メッセージおよび会話データ構造
図１７は、本発明の一実施形態によるユーザデータベースおよびメッセージインデックスを示す。ユーザデータベース１７０２は、ユーザに関する情報を記憶してもよい。記憶される情報は、ユーザ情報１７０４を含んでもよい。ユーザ情報１７０４は、ユーザ嗜好、セキュリティ情報、または本発明のさまざまな実施形態によって使用されてもよいその他の任意の情報に関連する、さまざまなタイプのユーザ情報を含んでもよい。ユーザデータベースは、ユーザを識別するために使用される、ユーザＩＤ（１）（１７０６）〜ユーザＩＤ（ｍ）（１７０８）（ｍはシステムのユーザの数を表してもよい）などのユーザ識別情報を含んでもよい。特定のユーザＩＤ（ｍ）（１７０８）は、ｎビットの２進数などの、各ユーザのための固有の識別子であってもよい。その他のタイプのユーザ識別情報が使用されてもよい。
【０１０５】
一部の実施形態では、ユーザのユーザＩＤは、ユーザのメールアカウントに関連付けられたフィルタ、クエリ、およびラベルに関する情報を記憶するための、１組のデータ構造１７２０を識別するために使用される。一部の実施形態では、これらのデータ構造は、ユーザにより発行された最後のいくつかのクエリを表す情報を記憶するためのクエリキャッシュ１７２２と、ユーザ定義フィルタ（存在する場合）を記憶するための１組のフィルタデータ構造１７２４と、ユーザ定義ラベルを表す情報を記憶するためのラベルデータ構造１７２６とを含む。クエリキャッシュ１７２２内に記憶された情報により表される最近のクエリは、ユーザが会話管理システムにそれらのクエリを容易に再発行することを可能にするために、例えばグループボックス３４８（図３Ｂ）内で、ユーザに提示されてもよい。ユーザ定義フィルタは、会話管理システムによって、新しい各メッセージの処理中に、そのメッセージがユーザのメールアカウントに追加される際に使用される。ユーザ定義ラベルに関する、記憶された情報は、ユーザが選択したラベルを有する会話のリストをユーザが容易に要求することを可能にするために、例えばグループボックス３４７（図３Ｂ）内で、ユーザに提示されてもよい。
【０１０６】
ユーザのユーザＩＤは、ユーザに対応する、フルテキストおよび属性インデックス１７１０を識別するために使用されてもよい。フルテキストおよび属性インデックス１７１０は、特定のユーザに関連付けられてもよく、それにより、特定のユーザに関連付けられたメッセージのインデックスを、異なるユーザが検索することはできなくなる。フルテキストおよび属性インデックス１７１０は、ユーザのメールアカウント内のメッセージに関する情報を記憶し、それにより、フルテキストおよび属性インデックス１７１０に対して適用されるクエリは、一致するメッセージ（存在する場合）のリストを返すようになる。リストは、メッセージ識別子のリストとして返されてもよい。
【０１０７】
特定のメッセージについて、フルテキストおよび属性インデックス１７１０内に含まれる情報は、メッセージのメッセージＩＤ１７１２と、メッセージ１７１４の内容１７１４と、メッセージの属性１７１６に関する情報とを含んでもよい。メッセージＩＤ１７１２は、メッセージの固有の識別子である（すなわち、同じユーザのために記憶されるすべての他のメッセージに関して固有）。メッセージＩＤ１７１２は、メッセージデータベース１７０２内に記憶された特定のメッセージを参照するために使用されるｎビットの数であってもよい。一実施形態では、メッセージＩＤ１７１２は、６４ビットの数であってもよい。メッセージＩＤ１７１２は、タイムスタンプ情報と、メッセージＩＤ１７１２が参照するメッセージの内容に関連する情報とから構成されてもよい。タイムスタンプ情報は、例えばＳＭＴＰゲートウェイ１０１８によって、メッセージがいつ受信されたかを示す、システムにより提供されるＹビット（例えば、３２ビットまたは４８ビット）のタイムスタンプであってもよい。メッセージの内容に関連する情報は、メッセージ内容の６４−Ｙビットハッシュであってもよい。
【０１０８】
メッセージの内容は、完全にインデックスされた検索可能な語として、インデックス内に配置される。インデックス１７１０が、語または語の組み合わせについて検索される場合、インデックスは、語または語の組み合わせに一致するメッセージの、メッセージリスト（例えばメッセージＩＤ）を返す。特定の事前定義された条件が、一致するすべてのメッセージよりも少ないメッセージを返すように要求してもよい。別の実施形態では、インデックス１７１０は、クエリ内の語または語の組み合わせに一致する会話のリスト（会話ＩＤ）を返す。
【０１０９】
一実施形態では、フルテキストおよび属性インデックス１７１０内の、検索語のためのエントリは、検索語に一致する最新のメッセージが優先的に返されるように、インデックスされる各メッセージのメッセージＩＤ１７１２に含まれるタイムスタンプ情報に従って並べられる。例えば、インデックス１７１０内の、各語に対応するメッセージのメッセージＩＤのリストは、最新のタイムスタンプを有するメッセージＩＤが、より古いタイムスタンプを有するメッセージＩＤよりも、リスト内でより早くリストされるように並べられてもよい。他の実施形態では、各メッセージに関連付けられる日付／時刻情報は、各メッセージの受信の日付および／または時刻を示すが、日付／時刻情報はメッセージＩＤ内に組み込まれない。そのような実施形態では、インデックス１７１０内のエントリは、それにもかかわらず、最新の日付／時刻値を有するメッセージのメッセージＩＤが、より古い日付／時刻値を有するメッセージＩＤよりも、リスト内でより早くリストされるように並べられる。
【０１１０】
メッセージに関連付けられた任意の属性１７１６も、インデックスされる（すなわち、インデックス１７１０内に含まれる）。特定の属性に対するクエリが、その特定の属性に一致するメッセージを返すように、属性１７１６は、フルテキストおよび属性インデックス１７１０に追加される。ラベルまたは属性が会話に追加された場合、または会話から削除された場合、インデックス１７１０は、それに応じて更新される。インデックスには、各定義済みラベルまたは属性を、そのラベルまたは属性を有するすべてのメッセージ（または、他の実施形態では、会話）にマッピングする、エントリまたはデータが含まれる。したがって、会話にラベルが追加された場合、そのラベルを会話内のすべてのメッセージにマッピングするためのデータが、インデックス１７１０に追加される。会話からラベルが削除された場合は、そのラベルを会話内のメッセージにマッピングする、インデックス内のデータが、除去または無効化される。一部の実施形態では、会話に関連付けられた各ラベルまたは属性は、会話データベース１８０８（図１８）内の１つまたは複数のエントリにも追加される。
【０１１１】
フルテキストおよび属性インデックス１７１０は、クエリ語を個別のメッセージＩＤ １７１２にマッピングするように構成されてもよいが、メッセージＩＤを会話識別子にマッピングするための他のデータ構造が提供されてもよい。１つのそのようなデータ構造の組の論理図を、図１８に示す。当業者は、検索クエリ語を会話または会話識別子にマッピングするための、多くの異なるデータ構造が使用されてもよいことを理解するであろう。
【０１１２】
前述のように、ユーザデータベース１７０２は、特定のユーザに関連付けられたフルテキストおよび属性インデックス１７１０を参照する、ユーザＩＤ１７０８を含んでもよい。図１８に示すように、メッセージ−会話マップ１８０４内で、特定のメッセージＩＤ１７１２が特定の会話ＩＤ１８０２に関連付けられてもよい。メッセージ−会話マップ１８０４内の各エントリは、メッセージＩＤ１７１２を会話ＩＤ１８０２に関連付ける（すなわち、マッピングする）。一部の実施形態では、会話ＩＤ１８０４はｎビットの数である。この数は、メッセージＩＤ１７１２によって識別されるメッセージが属する特定の会話を一意に識別する。これらの実施形態では、ユーザのメールアカウント内の各会話は、別個の会話ＩＤを有する。
【０１１３】
特定の会話に関連付けられたその他のメッセージを識別するために、ユーザ会話データベース１８０８が使用されてもよい。そのようなデータベースは、例えば、特定の検索クエリに一致した１つまたは複数のメッセージの会話に含まれる、残りのメッセージを識別する場合に使用されてもよい。ユーザ会話データベースは、複数の会話エントリ１８１０を含む。各会話エントリ１８１０は、会話に関連付けられたメッセージのリスト（またはメッセージを表すその他のデータ構造）を記憶する。例えば、会話エントリ１８１２は、メッセージエントリ１８１６の連鎖リスト（linked list）を含んでもよい（各メッセージエントリは会話内の特定のメッセージに対応する）。連鎖リストは、例えば、会話内のメッセージに関連付けられた日付／時刻値によって並べられてもよい。例示的メッセージエントリ１８１６は、特定のメッセージのメッセージＩＤ１７１２と、ヘッダ１８１８と、ラベル１８２０とを含む。ヘッダ１８１８は、前述のヘッダ情報１６１２のすべてまたは一部を含んでもよい。ラベル１８２０は、メッセージに関連付けられた特定の属性を識別する情報を含んでもよい。特定のエントリ１８２２のメッセージＩＤ（４）１７１２は、メッセージデータベース１６０２内の特定のメッセージに関連付けられてもよい。一部の実施形態では、メッセージエントリ１８１６は、対応するメッセージのボディの内容を含まない。
【０１１４】
一部の実施形態では、図１１のステージ１１０６で行われてもよい、新しいメッセージの特定の会話への関連付けを、メッセージデータベース１６０２にアクセスすることなく、補助するために、インデックス１７０８内の情報と会話エントリ１８１２内の情報とが使用されてもよい。新しく到着したメッセージに一致する可能性があるものとして、メッセージが識別された場合（図１２のステージ１２０４）、最もよく一致するメッセージの、および、したがって、最もよく一致する会話の決定が、一致するメッセージのヘッダ１８１８を使用して行われてもよい。例えば、ヘッダ１８１８はメッセージの件名情報を含んでもよく、その件名情報は（ノーマライズされた形態で）、新しく到着したメッセージのノーマライズされた件名と比較されてもよい。ヘッダ１８１８内のその他の情報も、処理中の着信メッセージのヘッダ情報と比較されてもよい。一致するものとして会話が識別されたら、メッセージデータベースからメッセージを取り出す必要なしに、識別された会話についてのメッセージエントリのラベル１８２０内で識別される属性が、着信メッセージに適用されてもよい（図１３のステージ１３０７）。
【０１１５】
メッセージが会話から削除された場合、会話エントリ１８１２は、会話内の他のメッセージに影響を与えることなく更新されてもよい。そのような場合、削除されるメッセージに対応する（会話エントリ１８１２内の）メッセージエントリ１８１６が、メッセージエントリの連鎖リストから削除される。したがって、メッセージはもはやその会話とは関連付けられなくなる。一部の実施形態では、メッセージ−会話マップ１８０４も、削除を反映するように修正される。
【０１１６】
前述のように、いくつかの場合には、例えば特定の属性を使用することにより、メッセージに削除の印を付け、しかし会話からは除去しないようにするのが望ましいことがある。メッセージが会話から除去されてもよいような条件になった場合は、その除去が上述のように実行されてもよい。メッセージ−会話マップ１８０２および会話エントリ１８１２からのメッセージの除去を許可してもよい条件には、メッセージに削除の印が付けられてからの一定時間の経過、ユーザによる操作、またはその他のトリガ事象が含まれてもよい。
【０１１７】
会話もまた、削除の印が付けられ、しかしユーザのメールアカウントからはまだ除去されていないようにされてもよい。会話がユーザのメールアカウントから永久的に除去される場合は、会話についての、メッセージ−会話マップ１８０２エントリが除去されてもよい。その上、会話データベース１８０８から、対応する会話エントリ１８１２が除去されてもよく、さらに、インデックス１７０８から、会話内のメッセージについてのインデックスエントリが除去されてもよい。
【０１１８】
上で示したように、別の実施形態では、フルテキストメッセージインデックス１７０８は、クエリに応答して、会話識別子のリストを返す。この実施形態では、メッセージ−会話マップ１８０２は省略されてもよい。代わりに、会話データベースが、クエリに応答した会話の処理を完了するために必要な、主要なマッピングを提供する。
【０１１９】
図１９を参照すると、上述の方法を実装する会話サーバ１０２の一実施形態は、１つまたは複数の処理ユニット（ＣＰＵ）１９０２と、１つまたは複数のネットワークまたはその他の通信インタフェース１９０４と、メモリ１００６と、これらの構成要素を相互接続するための１つまたは複数の通信バス１９０８とを含む。会話サーバ１０２は、任意選択で、表示装置とキーボードとを含むユーザインタフェースを含んでもよい。メモリ１９０６は、高速ランダムアクセスメモリを含んでもよく、さらに、１つまたは複数の磁気記憶ディスクまたは光記憶ディスクなどの、不揮発性メモリも含んでもよい。メモリ１９０６は、ＣＰＵ１９０２から遠く離れた場所に配置された大容量記憶装置を含んでもよい。メモリ１９０６は、
さまざまな基本システムサービスを処理するため、およびハードウェア依存タスクを実行するためのプロシージャを含む、オペレーティングシステム１９１６と、
インターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの、１つまたは複数の通信ネットワークインタフェース１９０４（有線または無線）を介して、会話サーバ１０２を他のコンピュータに接続するために使用される、ネットワーク通信モジュール（または命令）１９１８と、
前述のように、会話アシスタント１１０からの要求に応答し、会話アシスタント１１０に応答を提供するための、会話エンジン１００２モジュールとを記憶してもよく、会話エンジン１００２モジュールは、
前述のように新しいメッセージを処理するための、新メッセージ処理モジュール１９２０と、
前述のようにユーザのメッセージを検索するための、検索モジュール１９２２と（検索モジュール１９２２は、ユーザにより提供される入力からの検索要求を処理するためのモジュール１９２２と、会話アシスタント１１０により開始されるシステム生成検索を処理するためのモジュール１９２６とを含む）、
会話サーバ１０２から提供された情報を会話アシスタントが処理することを可能にする情報を、会話アシスタント１１０に提供するための、会話アシスタントローダ１９２８と（一部の実施形態では、電子メールメッセージを処理するためにクライアントコンピュータが最初に会話サーバ１０２に接続された場合、会話アシスタントローダ１９２８が起動され、会話アシスタント１１０がクライアントコンピュータにロードされる。一部の実施形態では、電子メールセッションが開始されるたびに、会話アシスタントローダ１９２８は会話アシスタント１１０をクライアントコンピュータ上にロードし、他の実施形態では、１つの電子メールセッションから別の電子メールセッションへの間で、会話アシスタント１１０は、クライアントコンピュータによって維持される）、
前述のように会話アシスタント１１０に提供されるフォーマット情報を提供するための、フォーマット応答モジュール１９３０と（フォーマット応答モジュール１９３０は、前述のように、事前定義された基準に従って会話を並べるための、会話順序付けモジュール１９３２と、会話アシスタント１１０に返される所定の数の会話を、返すことができる総数から選択するための、会話選択モジュール１０３４と、前述のように「未読」の印が付けられたメッセージ（すなわち、表示されていない、または既読の印が付けられていないメッセージ）を識別するための、未読／未表示メッセージの送信者識別１９３６と、前述のようにユーザの識別情報を自己参照情報に置き換えることに関する情報を提供するための、自己参照モジュール１９３８と、前述のように会話に新しく追加された受信者に関する情報を識別および提供するための、新受信者モジュール１９４０と、前述のようにもはや会話に参加していない受信者に関する情報を識別および提供するための、削除受信者モジュール１９４２と、前述のように、一致するメッセージの特定のテキストに関する情報を取得および提供するための、抜粋モジュール１９４４と、前述のように会話アシスタント１１０への送信のためにメッセージのフルテキストを取り出すための、フルテキストモジュール１９４６と、スペルチェッカー１０１４から返される情報をフォーマットするための、フォーマットスペルチェックモジュール１９４８とを含む）、
前述のように会話およびメッセージの属性を変更するための、属性変更モジュール１９５０と、
前述のように、メッセージまたは会話に削除のための印を付けて、その後、それらのメッセージまたは会話を除去するための、削除／除去モジュール１０９５と、
前述のようにフィルタを作成、監視、および実行するための、フィルタモジュール１９５４と、
ユーザがメッセージを作成し、その結果のメッセージをＳＭＴＰゲートウェイ１０１６に送信することを可能にする、作成／送信モジュール１９５６とを含んでもよい。
【０１２０】
スペルチェック処理および表示方法の例示的実施形態などの、上述のさまざまな特徴は、電子メッセージ通信または電子メールに限定されないことが理解されるべきである。例えば、上述のスペルチェック方法またはユーザインタフェースは、他の実施形態では、さまざまなタイプの文書（例えば、ワードプロセッシング文書）に適用されてもよく、それらの文書と組み合わせて実装されてもよい。
【０１２１】
以上の説明は、説明の目的のために、特定の実施形態を参照して行った。しかし、上述の具体的な説明は、開示された厳密な形態で本発明が網羅されたり限定されたりすることを意図するものではない。上記の教示を考慮すれば多くの変更および変形が可能である。実施形態は、本発明の原理とその実際的な適用例とを最もよく説明するために、そしてそれにより、当業者が、本発明およびさまざまな実施形態を、企図された特定の使用に適したさまざまな変更とともに、最もよく利用できるようにするために、選択され説明されたものである。
【図１】
2014209349.tif 000003
【図２】
2014209349.tif 000004
【図３Ａ】
2014209349.tif 000005
【図３Ｂ】
2014209349.tif 000006
【図４Ａ】
2014209349.tif 000007
【図４Ｂ】
2014209349.tif 000008
【図５Ａ】
2014209349.tif 000009
【図５Ｂ】
2014209349.tif 000010
【図６Ａ】
2014209349.tif 000011
【図６Ｂ】
2014209349.tif 000012
【図６Ｃ】
2014209349.tif 000013
【図６Ｄ】
2014209349.tif 000014
【図６Ｅ】
2014209349.tif 000015
【図７Ａ】
2014209349.tif 000016
【図７Ｂ】
2014209349.tif 000017
【図７Ｃ】
2014209349.tif 000018
【図８】
2014209349.tif 000019
【図９Ａ】
2014209349.tif 000020
【図９Ｂ】
2014209349.tif 000021
【図１０】
2014209349.tif 000022
【図１１】
2014209349.tif 000023
【図１２】
2014209349.tif 000024
【図１３】
2014209349.tif 000025
【図１４】
2014209349.tif 000026
【図１５】
2014209349.tif 000027
【図１６】
2014209349.tif 000028
【図１７】
2014209349.tif 000029
【図１８】
2014209349.tif 000030
【図１９】
2014209349.tif 000031
【手続補正書】
【提出日】平成26年6月26日(2014.6.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メッセージを処理するための方法であって、
１つまたは複数のプロセッサと、前記１つまたは複数のプロセッサによって実行される１つまたは複数のプログラムを記憶するメモリとを有するコンピュータシステムにおいて、
特定のユーザに宛てられた複数のメッセージを受信するステップと、
前記複数のメッセージのそれぞれに対する個々の会話を決定するステップと、
前記個々の会話を、表示のための行の組として、クライアントシステムに送信するためのステップであって、前記行の組の各行はそれぞれの会話の１つに対応し会話の中のメッセージ数を示すアイコンを含む、ステップと、
を含む、方法。
【請求項２】
前記アイコンは、
削除された、または削除のための印がつけられたメッセージを除く、会話の中のメッセージ数を示す、請求項１に記載の方法。
【請求項３】
前記アイコンは、
会話の中の表示されていない、または既読の印がつけられていないメッセージの数を示す、請求項１または２に記載の方法。
【請求項４】
前記会話が含むメッセージの数が１の場合、前記アイコンは表示されない、請求項１〜３いずれか一項に記載の方法。
【請求項５】
前記行の組の各行または前記アイコンは、前記会話の中に表示されていない、または既読の印がつけられていないメッセージを含む場合に、強調表示される、請求項１〜４いずれか一項に記載の方法。
【請求項６】
コンピュータによる実行のために構成された１つまたは複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、
前記１つまたは複数のプログラムは、
特定のユーザに宛てられた複数のメッセージを受信するための命令と、
前記複数のメッセージのそれぞれに対する個々の会話を決定するための命令と、
前記個々の会話を、表示のための行の組として、クライアントシステムに送信するための命令であって、前記行の組の各行はそれぞれの会話のうちの１つに対応し会話の中のメッセージ数を示すアイコンを含む、命令と、
を含む、非一時的コンピュータ可読記憶媒体。
【請求項７】
前記アイコンは、
削除された、または削除のための印がつけられたメッセージを除く、会話の中のメッセージ数を示す、請求項６に記載の非一時的コンピュータ可読記憶媒体。
【請求項８】
前記アイコンは、
会話の中の表示されていない、または既読の印がつけられていないメッセージの数を示す、請求項６または７に記載の非一時的コンピュータ可読記憶媒体。
【請求項９】
前記会話が含むメッセージの数が１の場合、前記アイコンは表示されない、請求項６〜８いずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記会話の前記表示のための行の組の各行または前記アイコンは、前記会話の中に表示されていない、または既読の印がつけられていないメッセージを含む場合に、強調表示される、請求項６〜９いずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【請求項１１】
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサによって実行される１つまたは複数のプログラムを記憶するメモリと、
を含み、
前記１つまたは複数のプログラムは、
特定のユーザに宛てられた複数のメッセージを受信するための命令と、
前記複数のメッセージのそれぞれに対する個々の会話を決定するための命令と、
前記個々の会話を、表示のための行の組として、クライアントシステムに送信するための命令であって、前記行の組の各行はそれぞれの会話のうちの１つに対応し会話の中のメッセージ数を示すアイコンを含む、命令と、
を含む、メッセージ処理システム。
【請求項１２】
前記アイコンは、
削除された、または削除のための印がつけられたメッセージを除く、会話の中のメッセージ数を示す、請求項１１に記載のシステム。
【請求項１３】
前記アイコンは、
会話の中の表示されていない、または既読の印がつけられていないメッセージの数を示す、請求項１１または１２に記載のシステム。
【請求項１４】
前記会話が含むメッセージの数が１の場合、前記アイコンは表示されない、請求項１１〜１３いずれか一項に記載のシステム。
【請求項１５】
前記会話の前記表示のための行の組の各行または前記アイコンは、前記会話の中に表示されていない、または既読の印がつけられていないメッセージを含む場合に、強調表示される、請求項１１〜１４いずれか一項に記載のシステム。
【外国語明細書】
2014209349000001.pdf