会話ベースの電子メールシステムにおける会話の表示
【課題】2人以上の異なる人によって送信された複数のメッセージを一緒に表示し、ユーザが適切な脈絡の中で個別のメッセージを理解するために役立つ枠組みを提供する。
【解決手段】ユーザに宛てられた複数のメッセージのそれぞれは、個々の会話に関連付けられてもよく、それぞれの会話は個々の会話識別子を有し、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む。会話リストは、1組の行として、第2の事前定義された基準により決定される順序で表示され、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含む。会話の内容は、表示された会話リストからユーザが会話を選択した場合に表示される。メッセージは、拡張モード、短縮モード、および隠しモードの、3つのモードのうちの1つで表示されてもよい。
【解決手段】ユーザに宛てられた複数のメッセージのそれぞれは、個々の会話に関連付けられてもよく、それぞれの会話は個々の会話識別子を有し、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む。会話リストは、1組の行として、第2の事前定義された基準により決定される順序で表示され、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含む。会話の内容は、表示された会話リストからユーザが会話を選択した場合に表示される。メッセージは、拡張モード、短縮モード、および隠しモードの、3つのモードのうちの1つで表示されてもよい。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、一般に、クライアント−サーバコンピュータネットワークシステムの分野に関し、特に、ユーザが多数のメッセージを効率的かつユーザフレンドリな方法で管理するためのシステムおよび方法に関する。
【背景技術】
【0002】
発明の背景
毎日、人々は、何百万もの電子メール(「e−mailとも書く」)メッセージを、仕事と余暇のために、コンピュータネットワークを介して送信および受信している。電子メールは、便利で、使いやすく、多くの場合はほとんど即時に届くため、人々が情報を交換するための非常に一般的な通信チャネルとなった。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来、ユーザの電子メールアカウントに到着する電子メールメッセージは、専用の電子メールクライアントによって、またはWebブラウザウィンドウ内で、個別に、時系列順に表示されている(例えば、最新のメッセージがブラウザウィンドウの最上部に表示され、最旧のメッセージがブラウザウィンドウの最下部に表示される)。しかし、2人以上の人によって異なる時刻に送信された複数のメッセージが、同じトピックを扱うことがあるのは一般的である。メッセージを一緒に表示することは、ユーザが適切な脈絡の中で個別のメッセージを理解するために役立つ。
【0004】
ユーザによって受信されるメッセージとユーザによって送信されるメッセージとを含む、複数のメッセージを、それらのそれぞれのトピックに従って編成および表示する、システムおよび方法を有することは非常に望ましい。さらに、同じトピックに関連し、かつ同じ会話の部分を形成するすべてのメッセージが直感的に提示され、それにより、特定の送信者により発行された特定のメッセージをユーザが効率的に識別できるようになり、ユーザが会話内のメッセージを、会話内の他のメッセージと比較した脈絡の中で見ることができるようになることは非常に望ましい。
【課題を解決するための手段】
【0005】
概要
一実施形態では、メッセージを処理するための方法は、ユーザに宛てられた複数のメッセージ(各メッセージは固有のメッセージ識別子を有する)を受信するステップを含む。複数のメッセージのそれぞれは、個々の会話に関連付けられており、それぞれの会話は個々の会話識別子を有する。さらに、それぞれの会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む。会話のリストが、1組の行として、第2の事前定義された基準により決定される順序で表示され、ここで、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含む。会話の内容は、表示された会話のリストからユーザが会話を選択した場合に表示される。
本発明の性質および実施形態をよりよく理解するために、以下の実施形態の説明を、図面とともに参照されたい。図面にわたる同様の参照番号は、対応する部分を意味する。
【図面の簡単な説明】
【0006】
【図1】本発明によるクライアント−サーバベースのネットワークシステムの一実施形態を概略的に示す。
【図2】会話管理システムによって提供される会話を表示するためのさまざまなフォームを、会話アシスタントが生成する方法を説明する概要フローチャートである。
【図3A】会話リストのホストとなるフォームを会話アシスタントが生成する方法を説明するフローチャートである。
【図3B】本発明の一実施形態による、「受信トレイ」カテゴリ内の会話リストの概略スクリーンショットである。
【図4A】「その他の操作」プルダウンリストの動作を説明するフローチャートである。
【図4B】「その他の操作」プルダウンリストを使用してユーザが1つのカテゴリから別のカテゴリに会話を移動させる場合のスクリーンショットである。
【図5A】「ラベルを追加」プルダウンリストの動作を説明するフローチャートである。
【図5B】「ラベルを追加」プルダウンリストを使用してユーザが会話にラベルを追加する場合のスクリーンショットである。
【図6A】会話アシスタントが、会話管理システムの表示命令に応答して、会話表示を生成する方法を示すフローチャートである。
【図6B】本発明の一実施形態による、すべてのメッセージが短縮モードで表示された会話表示のスクリーンショットである。
【図6C】本発明の一実施形態による、いくつかのメッセージが短縮モードで表示され、いくつかのメッセージが拡張モードで表示された会話表示のスクリーンショットである。
【図6D】本発明の一実施形態による、すべてのメッセージが拡張モードで表示された会話表示のスクリーンショットである。
【図6E】本発明のさまざまな実施形態によりメッセージが表示された、会話表示のスクリーンショットである。
【図7A】会話アシスタントが、ユーザの検索要求に一致する会話を表示するためにさまざまなフォームを生成する方法を説明するフローチャートである。
【図7B】本発明の一実施形態による、クエリ語「Tahoe」に一致する3つの会話を含むスクリーンショットである。
【図7C】本発明の一実施形態による、クエリ語に一致するかまたは一致しない、かつさまざまなモードで表示された、会話内のメッセージのスクリーンショットである。
【図8】スペルが間違っている可能性のあるすべての語を訂正するために、会話アシスタントがユーザと対話する方法を説明するフローチャートである。
【図9A】ユーザにより作成された返信メッセージを含む会話のスクリーンショットである。
【図9B】スペルチェックプロセスのさまざまな段階における、3つの独立した閲覧ウィンドウを含むスクリーンショットを示す。
【図10】会話サーバの一実施形態を示す。
【図11】受信メッセージを処理する方法を表すフローチャートである。
【図12】メッセージを会話に対応付ける方法を表すフローチャートである。
【図13】メッセージに属性を割り当てる方法を表すフローチャートである。
【図14】会話に属性を割り当てる方法を表すフローチャートである。
【図15】会話を検索し、識別された会話の表示を生成する方法を表すフローチャートである。
【図16】メッセージデータベースを示す。
【図17】ユーザデータベースと、特定のユーザのためのインデックスとを示す。
【図18】受信メッセージに対応する会話を識別するため、および受信メッセージに関連付けられる属性を決定するために使用される、1組のデータ構造を示す。
【図19】会話サーバの一実施形態を示す。
【発明を実施するための形態】
【0007】
実施形態の説明
本発明は、ユーザに対しておよびユーザによって送信されるメッセージを編成して表示する、クライアント−サーバシステムと、対応する方法とに関する。
【0008】
図1は、クライアント−サーバシステムの一実施形態を概略的に示す。システムは、会話管理システム102と、通信ネットワーク106と、複数のクライアント104とを含む。会話は、1つの会話トピックを扱う1つまたは複数の関連するメッセージを含む。以下に記載するように、いずれのメッセージが、それぞれの別個の会話の部分であるかを判定するために、会話トピックを超えた、追加の基準が使用されてもよい。メッセージの送信者および受信者は、会話の参加者である。会話管理システム102のユーザに宛てられたすべてのメッセージは、複数の会話に分類され、会話ベースのフォーマットで、個別に、または一緒に、ユーザに提示される。会話管理システム102の実装に関するより詳細な説明は、後に記載する。
【0009】
クライアント104は、ブラウザ108および会話アシスタント110を含む。ブラウザ108は、会話を表示するために使用されるブラウザウィンドウを有する、汎用のインターネットブラウザ(Webブラウザと呼ばれることもある)であってもよく、または、会話を表示するためのウィンドウを有する、専用のブラウザアプリケーションであってもよい。会話、および会話内のメッセージは、ハイパーテキストマークアップ言語(HTML)を使用して、またはその他の任意の適切な描画方法を使用して、ブラウザ108によって描画されてもよい。ユーザが、自分の個人アカウント内に記憶されたメッセージにアクセスするために、ブラウザ108を介して、会話管理システム102に要求を発行した後、会話管理システム102は、ユーザの要求に従って、ユーザの個人アカウント内の複数の会話を識別し、それらの会話と、1組の表示命令とを、クライアント104に返送する。会話アシスタント110は、それに対応して、表示命令に従った1つまたは複数のフォームを生成する(各フォームは、会話のうちのいくつかの情報を含む)。フォームは、次に、ブラウザ108に発行され、ブラウザ108によって描画される。別の実施形態では、会話アシスタント110は、別法として、会話管理システム102内において存在し動作してもよい。
【0010】
図2は、会話管理システム102によって提供された会話を表示するためのさまざまなフォームを、会話アシスタント110が生成する方法を説明する概要フローチャートである。ステップ202において、複数の会話および関連する表示命令を受信した後、会話アシスタント110は、ステップ204において、ユーザが複数の会話を要求したか、または個別の会話を要求したかを判定する。ユーザが複数の会話を要求する場合、会話アシスタント110は、ステップ206において、会話リストのホストとなる(hosts a list of conversations)フォームを生成する(各会話はフォーム内の1つの行を占める)。フォーム内の各行について、会話アシスタント110は、ステップ208において、表示命令に従って、1組の列と、表示されるべき関連する特徴とをさらに生成する。列内の情報および関連する特徴が描画される方法についてのさらなる詳細は、図3Aおよび図3Bと組み合わせて、後に記載する。
【0011】
ユーザが個別の会話を要求する場合、会話アシスタント110は、ステップ210において、会話に関連付けられた一連のメッセージのホストとなる、別個のフォームを生成する。ステップ212において、会話アシスタント110は、各メッセージについて、対応する表示命令に従って、サブフォームと、表示されるべき関連する特徴の組とを生成する。そのようなサブフォームおよび関連する特徴を会話アシスタントが描画する方法についてのさらなる詳細は、図6A〜図6Dと組み合わせて、後に記載する。
【0012】
会話リストまたは個別の会話のホストとなるフォームを生成した後、会話アシスタント110は、ステップ214において、1組のシステム定義カテゴリのホストとなるフォームを生成する。それぞれのシステム定義カテゴリは、0以上の会話と関連付けられてもよい。一実施形態では、システム定義カテゴリは、ユーザの操作に応答して、または事前定義された基準が満たされた場合に、会話管理システム102が会話に割り当てる属性である。例えば、ユーザが会話に削除のための印を付け、しかし、その会話をユーザのメールアカウントから永久的に除去するために必要なステップはまだ実行していない場合、システムはその会話に「ゴミ箱」属性を関連付ける。より具体的には、会話管理システム102は、属性「ゴミ箱」を会話に添付し、例えば「受信トレイ」などの既存の属性を、必要に応じて会話から削除する。いくつかのシステム定義カテゴリは相互排他的であってもよいことに留意されたい。別の例では、システムは、新たに受信した着信メッセージに、「受信トレイ」属性と「未読」属性とを自動的に関連付けてもよい。システム定義カテゴリのより詳細な説明は、図4Aおよび図4Bと組み合わせて、後に記載する。
【0013】
次に、会話アシスタント110は、ステップ216において、1組のユーザ定義ラベルのホストとなる別のフォームを生成する。図3Bは、このフォームが内部に表示されているグループボックス347を示す。それぞれのユーザ定義ラベルは、0以上の会話と関連付けられてもよい。一実施形態では、ユーザ定義ラベルは、特定の会話に関連付けられることが可能な属性である。ユーザ定義ラベルが割り当てられる会話は、特定のユーザ操作によって、あるいは、フィルタまたは類似した機構の動作によって決定されてもよい。システム定義カテゴリとは異なり、これらのラベルはユーザによって任意に定義され、これらのラベルは相互排他的ではない。言い換えると、会話は、同時に複数のラベルに関連付けられてもよい。例えば、ユーザの個人アカウント内に、「買い物リスト」および「感謝祭」という2つのラベルが存在してもよい。「買い物リスト」ラベルは、ユーザによって、またはユーザにより設定されたフィルタによって、買い物関連の会話に割り当てられてもよく、他方、「感謝祭」ラベルは、感謝祭の買い物を含む、感謝祭の活動に関連する会話に割り当てられてもよい。ラベルはユーザによって定義されるため、ユーザはラベルを削除することも可能である。ユーザ定義ラベルのより詳細な説明は、図5Aおよび図5Bと組み合わせて、後に記載する。グループボックス347に関しては、ユーザがグループボックス347内のユーザ定義ラベルを選択(例えば、クリック)した場合、会話アシスタント110は会話管理システムに、ユーザが選択したラベルに関連付けられた会話を探すためのクエリを発行する。次に、そのクエリが実行され、そのような会話が存在する場合は、それらの会話のリストがユーザに提示される。
【0014】
会話管理システム102と会話アシスタント110とは共同で動作して、ユーザが、ユーザのメールアカウント内のメッセージを検索すること、および検索結果を高度に直感的な方法で提示することを可能にする。会話管理システム102は、ユーザの電子メールアカウントから情報を抽出するか、またはユーザによって作成されたメッセージを処理するのに対して、会話アシスタント110は、会話管理システム102によって準備された情報を描画する。他の実施形態では、会話管理システム102と会話アシスタント110との間の異なる役割分担が使用されてもよい。システムによって実行されるタスクの多くは、会話管理システム102または会話アシスタント110のいずれかによって、あるいはこれらの2つが共同で動作することによって実行されることが可能なため、本明細書では、これらの2つの構成要素をまとめて「会話システム」と呼ぶ場合がある。
【0015】
会話システム(102および/または110)は、ステップ218において、ユーザが最近の検索結果に再アクセスする(またはより正確には、最近の検索結果を再生成する)ことが可能になるように、ユーザによって発行された1組の検索のホストとなるフォームを生成してもよい。検索ベースの会話リストの生成のより詳細な説明は、図7A〜図7Cと組み合わせて、後に記載する。さらに、会話システムは、ステップ220において、ユーザによって最近アクセスされた1組の会話のホストとなるフォーム(例えば、図3Bのグループボックス349内に表示されるフォーム)を生成してもよい。この機能は、Webブラウザの「戻る」ボタンに類似している。ステップ222において、会話アシスタント110は、表示のためにブラウザ108にフォームを発行する。
【0016】
ステップ214〜220は、図2に示す順序以外の、多くの可能な順序で実行されてもよい。一部の実施形態では、これらのフォーム生成ステップのいくつかは省略されてもよい。
【0017】
会話リストの生成
次に、図3Aを参照すると、会話管理システム102は、例えばユーザのメールアカウントの受信トレイ表示を要求するユーザまたはクライアントに応答して、会話リストを生成する(ステップ302)。以下でより詳細に説明するように、会話リストは、ユーザのメールアカウントの検索を実行することにより生成される。受信トレイ表示のための会話リストを生成するために、「受信トレイ」属性(ラベルと呼ばれることもある)に関連付けられた会話について、ユーザのメールアカウントが検索される。次に、会話管理システム102は、次により詳細に説明するように、ステップ304において、表示のために、それらの会話に関する情報を準備する。さらに、会話管理システムは、ステップ305において、ユーザ選択可能な操作のリスト、およびユーザ選択可能なラベルのリストを生成する。ユーザ選択可能なラベルは、システム定義ラベルとユーザ定義ラベルとを含んでいてもよい。図4および図5に関連する以下の議論は、これらのユーザ選択可能なリストの使用について説明する。結果の情報は、次に、ステップ306において、描画のために会話アシスタントに送信される。
【0018】
ステップ304において、会話管理システム102は、会話リスト内の各会話について1組のフィールドを生成するために、一連のステップ(ステップ306〜ステップ324)を繰り返し実行する。一部の実施形態では、ユーザが会話リストにざっと目を通すことが容易にできるように、これらのフィールドは、会話アシスタント110によって、列内に描画されてもよい。
【0019】
それぞれの会話、および関連するメッセージの組について、会話管理システム102は、最初に、ステップ307において、送信者リストを生成する。送信者リストは複数の送信者識別子を含み、各識別子は、メッセージのうちの少なくとも1つを書いた送信者に対応している。送信者は、その送信者のファーストネーム、ラストネーム、フルネーム、電子メールアドレス、写真または固有のアイコン、あるいはそれらの組み合わせによって識別されてもよい。一部の実施形態では、少なくとも2人の送信者が同じファーストネームを有する場合、一方の送信者をもう一方から識別するために、各送信者のラストネームの十分な部分がそれぞれの送信者識別子に含まれる。例えば、2人の送信者が、Paulというファーストネームと、最初の文字が異なるラストネームとを有する場合、送信者は、Paulと、ラストネームの最初の文字との連結(例えば、PaulBおよびPaulK)を使用して識別されてもよい。当業者は、同じファーストネームを有する2人の送信者を識別するためのその他の方法を理解するであろう。他の実施形態では、送信者の識別子は、ユーザの連絡先リスト内に存在する、特定の送信者に関連付けられた情報に基づいていてもよい。さらに他の実施形態では、ユーザは、特定の送信者について送信者リスト内に表示されるニックネームを作成してもよい。送信者が会話内の複数のメッセージを書いた場合でも、その送信者の識別子は、送信者リスト内に一度だけ表示される。一実施形態では、リスト内の送信者識別子は、それらの送信者のそれぞれのメッセージの、システム102における到着時刻に従って並べられる。別の実施形態では、リスト内の送信者識別子は、それらの各名前に従って、アルファベット順に並べられる。次に、会話管理システム102は、ステップ308において、表示命令に従ってリスト内の1つまたは複数の送信者識別子をハイライトするように、送信者リストをフォーマットする。「ハイライトする」という用語は、本明細書では、太字にする、下線を付ける、背景色を変更する、フォント色を変更する、フォントを変更するなど、視覚的識別力のある方法で表示することを意味するために使用される。さらに、この文脈では、「ハイライトする」という用語は、あるもの(例えば、テキストの指定された部分)を識別力のある方法で表示するためのフォーマット情報を生成することを意味する。例えば、一部の実施形態では、送信者のメッセージがまだ表示されていないか、またはユーザによって既読の印が付けられていない場合、その送信者の名前は太字で表示されるようにフォーマットされる。
【0020】
一部の実施形態では、会話アシスタントは、会話の送信者リストおよび/または受信者リストに記載された人々のうちの1人以上の写真を受信するか、または、それらの写真へのアクセスが可能である。ユーザが、会話リストまたは個別の会話のいずれかを見て、送信者リスト内の名前または識別子の上にカーソルを配置すると、その送信者の写真が表示される。一部の実施形態では、リストされたメッセージ受信者について、会話を表示する際に、同じ機能が提供される。この機能は、大規模な組織で使用される電子メールシステムのために、特に有用な可能性がある。
【0021】
一部の実施形態では、会話内の少なくとも1つのメッセージをユーザ自身が書いた場合、会話管理システム102は、ステップ310において、送信者リスト内のユーザの名前またはその他の識別子を、送信者リスト内でのそのユーザの識別子としての、固有の文字列、アイコン、またはそのユーザのためのその他の出力キューに置き換える。固有の文字列のための1つの選択肢は、特定の言語での自己参照識別子である。例えば、英語の代名詞「me」が、送信者リスト内でユーザを表すために使用されてもよい。この機能は、送信者リスト内で送信者をそのファーストネームによって識別すること(これは、もちろん、代替実施形態で行われてもよい)よりも有用であり、その理由は、多くの人が同じファーストネームを共有するためである。固有の識別子によってユーザを表すことは、さらに、少なくとも1つのメッセージを提供することによって該ユーザが実際に参加した会話を、該ユーザが容易に識別するためにも役立つ。
【0022】
多くの人が会話にメッセージを提供した場合は、送信者リストが、ブラウザウィンドウ内の限られたスペースに収まらないほど長くなることがある。これは、送信者リスト内の1人以上の送信者が、それらの送信者の電子メールアドレスによって識別される場合、特に当てはまる。その場合、会話管理システム102は、ステップ312において、さまざまな情報に基づいて送信者リスト内の送信者に優先順位を付け、ブラウザウィンドウ内に表示するための、送信者リストのサブセットを識別する。一実施形態では、サブセットは、少なくとも会話内の最後のメッセージの送信者と、適切な場合は、まだ表示されていないかまたはユーザによって既読の印を付けられていないメッセージの送信者とを含む。別の実施形態では、サブセットは、会話内の最初に受信されたメッセージの送信者と、会話内の最後に受信されたメッセージの送信者と、優先順位付けまたは得点付け方法に従って選択された0以上の追加の送信者とを含む。一部の実施形態では、より後の時刻に到着したメッセージの送信者に、より高い優先度が与えられる。このタイプの優先順序付けでは、未読メッセージの送信者が表示される可能性が高くなる傾向がある。その他のタイプの優先順序付け手法が、同様に使用されてもよい。一部の実施形態では、送信者リストが会話内のメッセージ送信者のサブセットのみを識別する場合、送信者リストは、送信者リストが不完全であることを示す省略記号「...」またはその他の記号を含む。一部の実施形態では、まだ表示されていないかまたはユーザによって既読の印を付けられていないメッセージの送信者が1人以上存在する場合、サブセットはそれらの送信者を、利用可能なスペースによって許容されるだけ多数識別する。
【0023】
ステップ314において、会話管理システム102は、永久的に削除された、または削除のための印が付けられたメッセージを除く、会話内のメッセージの数を示す、会話のためのメッセージ数インジケータを作成する。メッセージ数インジケータは、1対の括弧内の数であってもよく、例えば、「(3)」は、会話内に3つのメッセージがあることを表す。一部の実施形態では、会話が1つのメッセージのみを含む場合、その会話についてのメッセージ数は生成されない。メッセージ数インジケータは、アイコンであってもよい。アイコンは、例えば会話内の未読(つまり、表示されていない、または既読の印が付けられていない)のままのメッセージの数を示す、追加情報を提供するために、色分けされてもよい。次に、会話管理システム102は、ステップ316において、処理中の会話のために会話トピックを生成する。通常、会話トピックは、会話内の最初のメッセージの件名、またはその件名が事前定義された長さを超える場合は、その件名の端が切り捨てられたバージョンである。別の実施形態では、会話トピックは、最初のメッセージの、または代替方法として、最初のメッセージよりも多くのメッセージの、内容を発見的に調べることによって決定される。一実施形態では、「未読」属性を有する少なくとも1つのメッセージを会話が含む場合、メッセージ数識別子および会話トピックの両方が、ユーザの注意を引くためにブラウザウィンドウ内でハイライトされる。別の実施形態では、1つまたは複数の未読メッセージを示すために、会話トピックのみがハイライトされる。
【0024】
既定の電子メール規格によれば、メッセージは、アドレスが「To:」フィールド内にリストされる1つの一次クラスの受信者、およびアドレスが「Cc:」フィールドまたは「Bcc:」フィールド内にリストされる2つの二次クラスの受信者という、少なくとも3つのクラスの受信者に送信されてもよい。したがって、会話管理システム102は、ステップ318において、会話へのユーザの参加のもう1つのインジケータである、ユーザについての受信者ステータスインジケータを作成する。一実施形態では、ユーザがいずれかのメッセージの一次受信者である会話には、「>>」などの第1の識別的インジケータを使用して印が付けられ、ユーザが少なくとも1つのメッセージの二次受信者であり、いずれのメッセージの一次受信者でもない会話には、「>」などの第2の識別的インジケータを使用して印が付けられ、(例えば、メッセージがグループまたはメーリングリストに送信されたため)ユーザがいずれのメッセージの受信者としても明示的にリストされていない会話には、特別な印は付けられない。他の実施形態では、ユーザが少なくとも1つのメッセージの一次受信者である会話、およびユーザが二次受信者のみである会話は、それらの会話を表す行の1つまたは複数の部分をハイライトするなどの、その他の視覚的識別力のある方法で表されてもよい。別の実施形態では、ユーザが少なくとも1つのメッセージの唯一の一次受信者である会話には、「>>」などの第1の識別的インジケータを使用して印が付けられ、少なくとも1つのメッセージが、メーリングリストにではなく、ユーザの電子メールアドレスに直接送信された会話には、「>」などの第2の識別的インジケータを使用して印が付けられ、(例えば、メッセージがグループまたはメーリングリストに送信されたため)ユーザがいずれのメッセージの受信者としても明示的にリストされていない会話には、特別な印は付けられない。
【0025】
一部の実施形態では、会話管理システム102は、ステップ320において、会話の抜粋を作成する。抜粋は、ユーザに会話の内容のプレビューを、ユーザが会話を開く必要なしに提供する。一実施形態では、抜粋は、会話内の最新のメッセージから生成される。別の実施形態では、抜粋は、会話内の最初のメッセージ(すなわち、最も古いメッセージ)から抽出される。さらに別の実施形態では、抜粋は、例えば会話内に最も頻繁に現れるキーワードの組を列記するなどの、事前定義された発見的規則に従って、会話内のすべてのメッセージから抽出される。会話管理システム102は、ユーザにより発行された検索に応答して会話リストを準備している場合、ステップ322において、ユーザが発行したクエリ語に一致するハイライトされた部分を含む抜粋を作成する。これは、グーグル(Google)検索エンジンなどの検索エンジンによって返される検索結果に含まれる抜粋に、1つまたは複数の点で類似していてもよい。
【0026】
最後に、会話管理システム102は、ステップ324において、会話の日付/時刻値を識別する。この日付/時刻値は、多くの場合、ブラウザウィンドウ内での会話リストの表示順序を指定する。一部の実施形態では、会話リスト内の各会話に、会話リストを生成するために使用された検索基準に一致する最新のメッセージの日付/時刻に等しい日付/時刻が割り当てられる。例えば、ユーザ指定の検索クエリ(例えば、「タホ湖」)が使用された場合、会話リスト内の一致する各会話について、割り当てられる日付/時刻は、ユーザ指定の検索クエリに一致する最新のメッセージの日付/時刻である。別の例では、検索基準が「受信トレイ」(すなわち、「受信トレイ」ラベルが割り当てられた少なくも1つのメッセージを有する会話)である場合、会話リスト内の各会話に割り当てられる日付/時刻は、「受信トレイ」ラベルに関連付けられた最新のメッセージの日付/時刻である。一部の実施形態では、会話リスト内の会話は、割り当てられた日付/時刻値に関して、逆時系列順にリストされる(すなわち、最新の会話が最初にリストされる)。本明細書で使用される場合、「日付/時刻」値は、特定のメッセージに関連付けられた任意の日付値および/または時刻値を意味する。日付および/または時刻は、メッセージの作成、送信、受信、またはその他の事象の日付および/または時刻に基づいて、メッセージに関連付けられてもよい。
【0027】
他の実施形態では、会話リスト内の各会話に日付/時刻を割り当てるための、その他の方法または基準が使用されてもよく、それらの日付/時刻値に従って会話を並べるための、その他の方法が使用されてもよい。例えば、一部の実施形態では、高度な検索クエリツールを使用する場合、日付/時刻が、指定された時刻枠内に入る会話(かつ、その他のユーザ指定の検索要求がある場合は、それらを満足する会話)を検索する選択肢がユーザに与えられる。結果の会話リストは、ユーザ指定の目標日付または目標日付/時刻と、リスト内の各会話の日付/時刻との間の、時間の長さに従ってリストされる。したがって、目標の日付または日付/時刻の前および後の会話は、結果の会話リスト内で交互配置されてもよい。
【0028】
図3Bは、本発明の一実施形態による、「受信トレイ」カテゴリ内の会話リストの概略スクリーンショットである。スクリーンショットの左上隅には、「メールを作成」リンク340がある。ユーザは、このリンクをクリックして、新しいメッセージを書き始める。リンク340の隣には、テキストボックス341と、「メールを検索」ボタン342とがある。ユーザが、テキストボックス341を介して1つまたは複数のクエリ語を発行し、次に、「メールを検索」ボタン342をクリックした後、システムは、クエリ語に一致する会話をリストする新しい表示を生成する。一部の実施形態では、一致は、それぞれのクエリ語の1つまたは複数の同義語が存在することによって発生してもよい。一部の実施形態では、一致は、それぞれのクエリ語の語根に基づいて発生してもよい。例えば、「book」についての検索は、「book」、「books」、および「booking」という語によって一致されてもよい。詳細については、図7Aおよび図7Bを参照されたい。ボタン342の隣には、「その他の操作」リスト344および「ラベルを追加」リスト345という、2つのプルダウンリストがある。これらの2つのプルダウンリストの詳細については、図4および図5をそれぞれ参照されたい。「メールを作成」リンク340のすぐ下には、一連のグループボックスがあり、各ボックスは、図2のステップ214〜220のうちの1つによって生成されるフォームに対応している。例えば、グループボックス346には、「受信トレイ」、「スターあり」、「送信済みメール」、「下書き」、「すべてのメール」、「迷惑メール」、および「ゴミ箱」などを含む、システム定義カテゴリが表示される。他の実施形態では、システム定義カテゴリの組は、これらのカテゴリのサブセットおよび/または追加のカテゴリを含む、異なったものであってもよい。一部の実施形態では、「スターあり」カテゴリは、ユーザが、例えば他の参加者にメッセージを送信することによって、積極的に関与することを予定している会話を含む(このカテゴリは「やること」リストに類似している)。したがって、一実施形態では、ユーザが例えばスターありメッセージを検索することができるように、メッセージにスターの印が付けられてもよい。一実施形態では、「すべてのメール」カテゴリは、「迷惑メール」カテゴリ内や「ゴミ箱」カテゴリ内にない、すべての会話を含む。現在のスクリーンショットは、「受信トレイ」カテゴリに属する会話のみを表示しているため、グループボックス346内の対応するリンクがハイライトされていることに留意されたい。
【0029】
図3Bの概略スクリーンショットの主要な領域は、会話リスト360を含むフォームであり、各会話はフォーム内の1つの行を占めている。各行は、さらに、チェックボックス362と、送信者リスト364と、受信者ステータスインジケータ366と、会話トピックおよび抜粋368と、日付/時刻値369とを含む。他の実施形態では、各会話行についてのフィールドの組は、これらのフィールドのサブセットおよび/または追加のフィールドを含む、異なるものであってもよい。一部の実施形態では、会話リストが表示される場合、すべての行が均一な高さを有する。他の実施形態では、さまざまな抜粋長を収容するために、高さは可変であってもよい。チェックボックス362は、対応する会話を1つのシステム定義カテゴリ(例えば、「受信トレイ」)から別のシステム定義カテゴリ(例えば、「ゴミ箱」)に移動することをユーザが決定した場合、または対応する会話にユーザ定義ラベルを付けることをユーザが決定した場合に、ユーザによってチェックされる。フォーム内のその他の列またはフィールドの定義は、図3Aと組み合わせて、上述した。最初の会話内には2つのメッセージがあること、および、最初の行内では送信者S2がハイライトされており、これはS2によって送信されたメッセージがまだ読まれていないか、または既読の印が付けられていないことを示すことに留意されたい。対照的に、2つ目の会話は4つのメッセージを含み、それらのメッセージはすべてがすでに読まれているか、または既読の印が付けられており、したがって2つ目の行内では何もハイライトされていない。一部の実施形態では、スターありステータスのための視覚的インジケータが提供される。会話内のいずれかのメッセージがスターありステータスを有する場合、「受信トレイ」は、少なくとも1つのスターありメッセージを会話が含むことの視覚的インジケータを提供する。
【0030】
図示していないが、一実施形態では、図3Bによって表されるブラウザウィンドウは、永続的に表示されるメッセージ作成領域と、関連するアドレス指定および件名フィールドと、メッセージの作成および送信を可能にするフォームに一般に関連付けられてもよいその他のオプションおよびフィールドとを含む。そのような領域は、例えば、会話リスト360の下に表示される。したがって、一実施形態では、単一のユーザインタフェース(例えば、ブラウザウィンドウ)内で、ユーザは、会話リストを見ることと、さらに、新しいウィンドウ(例えば、メッセージ作成ウィンドウ)を開くことを要求されず、かつ、現在のブラウザウィンドウから会話リストを削除することなしに、新しいメッセージを作成することとを選択できてもよい。
【0031】
図4Aは、「その他の操作」プルダウンリスト344の動作を説明するフローチャートである。ユーザがプルダウンリストをクリックした後、ブラウザは、ステップ402において、システム定義操作のリストを表示する。ステップ404において、ユーザは、プルダウンリスト内の特定の操作と、会話リスト内の少なくとも1つの会話とを選択する。ブラウザは、次に、ステップ406において、ユーザが選択した会話を、ユーザが選択した操作に関連付け、ステップ408において、それらを、さらなる処理のために会話管理システムに送り返す。ユーザが選択した操作によって、ユーザが選択した会話が、以前に表示されていた会話リストから除去される場合、ステップ410において、会話アシスタントは会話管理システムから新しい会話リストを受信し、会話アシスタントは新しい会話リストをブラウザ内で表示する。
【0032】
図4Bには、ユーザが2つ目の会話のチェックボックス413をチェックし、「その他の操作」プルダウンリストをクリックし、項目「迷惑メール」415を選択した場合にもたらされる、図3Bの概略スクリーンショットからの変更が示されている。結果として、2つ目の会話は「受信トレイ」カテゴリから除去され、「迷惑メール」カテゴリは新しいメンバを有することになる。「無視」および「スヌーズ」などの、プルダウンリスト内のいくつかの操作は、対応するカテゴリを有さないことに留意されたい。「無視」および「スヌーズ」は、両方とも、「すべてのメール」カテゴリに対応する。具体的には、ユーザが会話のチェックボックスをチェックし、次に「無視」項目をクリックした場合、会話は「すべてのメール」カテゴリに移される。「無視」された会話に関連する任意の新しいメッセージが到着した場合、システムは、やはり新しいメッセージを会話に関連付けるが、会話をユーザに注目されるように自動的に元に戻すことはしない。ただし、ユーザが「すべてのメール」カテゴリにアクセスし、無視されている会話のチェックボックスをチェックして、次に、対応する「その他の操作」プルダウンリスト内の「受信トレイ」項目を選択することによって、会話の無視を停止し、「受信トレイ」カテゴリ内に会話を戻すことは可能である。この例で示されているように、異なるカテゴリのプルダウンリストは、異なる操作項目の組を有してもよい。「スヌーズ」操作項目を使用すれば、ユーザは、トリガ条件を設定することによって、会話を一時的に無視することが可能になる。トリガ条件は、例えば、会話が一定期間(例えば、1時間、1日、1週間など)「受信トレイ」カテゴリから消え、その後、自動的に戻らなければならないなどの、時間駆動型であってもよく、あるいは、例えば、未チェックのメッセージの数が所定の制限に達するまで、または、特定の人が会話にメッセージを提供するまで、または、ユーザを一次受信者として指定するメッセージが受信されるまで、または、指定された単語または語句を含むメッセージが受信されるまで、会話は「受信トレイ」カテゴリに戻ってはならないなどの、イベント駆動型であってもよい。当業者は、使用可能なその他のトリガ条件を理解するであろう。
【0033】
会話の分類
図5Aは、「ラベルを追加」プルダウンリスト345の動作を説明するフローチャートである。ユーザがプルダウンリストをクリックした後、ブラウザは、ステップ502において、ユーザ定義ラベルのリストを、ユーザが選択するために表示する。ステップ504において、ユーザは、プルダウンリスト内の特定のラベルと、会話リスト内の少なくとも1つの会話とを選択する。ブラウザは、次に、ステップ506において、ユーザが選択した会話を、ユーザが選択したラベルに関連付け、ステップ508において、それらを、さらなる処理のために会話管理システムに送り返す。結果として、ユーザが選択したラベルに関連付けられた会話のリストは、ステップ506においてそのラベルに関連付けられた会話を含むようになる。以下でより詳細に説明するように、ラベルまたは属性が会話に関連付けられる場合、探し当てられるべきそのラベルを有する会話の検索を可能にするために、1つまたは複数のエントリがインデックス1710(図17、図18)に追加される。一部の実施形態では、ラベルまたは属性は、会話データベース1808(図18)内の1つまたは複数のエントリにも追加される。一部の実施形態では、会話に関連付けられたラベルは、ユーザがその会話を見る場合に表示される。一部の実施形態では、会話リスト内の各会話に関連付けられたラベルは、リスト内の各会話について提供される情報行内に表示される。
【0034】
図5Bは、ユーザが2つ目の会話のチェックボックス512をチェックし、次に、「ラベルを追加」プルダウンリストをクリックし、項目「ラベル2」514を選択した場合にもたらされる、ブラウザウィンドウを示す概略スクリーンショットである。(「ラベル2」は、ユーザ指定のラベル名を表すことに留意されたい。)これにより、「ラベル2」が、チェックされた会話に関連付けられる。結果として、チェックされた会話は、「ラベル2」に関連付けられたメッセージに対するクエリに応答して生成される検索結果に含まれてもよい。一部の実施形態では、会話リスト内の各会話に関連付けられたラベルは、フォームの対応する行内に表示され、したがって、「ラベル2」は、ステップ506において「ラベル2」に関連付けられた会話に対応する行内に表示される。カスタマイズされたラベル名をユーザが入力することが可能であること、および/または、事前定義されたラベルをシステムが提供してもよいことは、もちろん、当業者によって理解されるであろう。
【0035】
会話の表示
図6Aは、会話アシスタントが、会話管理システムの表示命令に応答して、会話表示(conversational view)を生成する方法を示すフローチャートである。一部の実施形態では、表示されるべき会話情報をフォーマットするための動作などの、図6Aに示す動作のいくつかは、クライアント内の会話アシスタントに会話情報を送信する前に、会話管理システムによって実行される。
【0036】
会話アシスタントは、最初に、ステップ602において、特定の会話に属する一連のメッセージ、および関連する表示命令の組を受信する。会話アシスタントは、ステップ604において、会話のトピックを識別し、会話に関連付けられたシステム定義カテゴリおよびユーザ定義ラベルがあればそれらも識別する。カテゴリおよびラベルに基づいて、会話は、ユーザ選択可能な操作のリスト、およびユーザ選択可能なラベルのリストを、それぞれ生成する。これらの2つのリストは、図3Bに示す2つのプルダウンリスト344および345に類似している。一実施形態では、ユーザ選択可能な操作のリストは、特定の会話(すなわち、表示される会話)に適用できる操作のみを含む。したがって、すでに「ゴミ箱」カテゴリ内にある会話は、再び「ゴミ箱」カテゴリに関連付けられることはできない。同様に、ユーザ選択可能なラベルのリストは、特定の会話にまだ関連付けられていないラベルのみを含む。
【0037】
ステップ608から、会話アシスタントは、会話内のそれぞれの個別のメッセージについてのサブフォームの生成を開始する。サブフォームは、少なくとも、詳細メッセージヘッダとメッセージボディとを含む。本明細書で使用される場合、メッセージボディは、件名参照を含み、メッセージングソフトウェアによってメッセージに追加されるすべてのシステム情報を除く、ユーザによって作成されるメッセージを意味する。それぞれの詳細メッセージヘッダは、送信者の名前および/またはアドレスと、すべての一次および二次受信者と、メッセージの件名と、メッセージレベルの操作の組と、日付/時刻値とを含む。メッセージレベルの操作のうちの1つは、経路選択情報、およびメッセージングシステムにより提供されるその他の情報(「マイムバージョン(Mime−Version)」や「内容タイプ(Content−Type)」など)を含む、元のフォーマットでメッセージを表示するためのオプションを含む。会話アシスタントは、さらに、ステップ610において、詳細メッセージヘッダから、簡略メッセージヘッダを作成する。簡略メッセージヘッダは、送信者および受信者の識別子を含む。一部の実施形態では、受信者は簡略メッセージヘッダから除外される。ユーザが受信者リスト内にある場合、会話アシスタントは、ステップ610において、送信者リスト内のユーザの識別子に類似した、固有の文字列またはアイコンをユーザの識別子として利用する。例えば、英語の代名詞「me」が、簡略メッセージヘッダ内でユーザを表すために使用されてもよい。メッセージが、この会話内で特定の受信者を識別する(すなわち、メッセージヘッダの一次または二次受信者フィールド内で識別する)最初のメッセージである場合、会話アシスタントは、ステップ614において、簡略メッセージヘッダ内の受信者の識別子をハイライトする。他方、一部の実施形態では、受信者リストに以前に含まれていた受信者が、もはや含まれていない場合、会話アシスタントは受信者の識別子を、例えば「ゴースト(ghost)」フォントなどの、視覚的に識別される方法で表示する。他の実施形態では、簡略メッセージヘッダは、送信者識別子と、メッセージの部分と、メッセージの日付/時刻表示とを含む。
【0038】
次に、会話アシスタントは、ステップ616において、サブフォームの表示方法を決定する。サブフォームに関連付けられたメッセージが、まだ表示されていないか、またはユーザによって既読の印を付けられていない場合は、ステップ618において、サブフォームは拡張モードで表示される、すなわち、簡略メッセージヘッダと完全なメッセージボディとの両方が表示される。メッセージがすでに表示された場合、または既読の印が付けられている場合は、ステップ620において、サブフォームは、デフォルトで、簡略メッセージヘッダとメッセージボディの一部分(例えば、メッセージの最初の数行)とのみを含む短縮モードで表示される。ユーザは、その後、短縮されたサブフォームを、クリックすることによって拡張してもよい。同様に、サブフォームは、詳細メッセージヘッダを表示しないが、ステップ622においてユーザが詳細メッセージヘッダを見たい場合に選択するためのオプションを含む。最後に、会話アシスタントは、ステップ624において、例えば、「返信」、「全員へ返信」、「転送」などの、1組の返信オプションをサブフォームの下部に作成する。一部の実施形態では、上述の操作のサブセットが、会話内の各メッセージについて実行される。一部の実施形態では、1つまたは複数の追加のフォーマット操作が実行される。
【0039】
図6Bは、本発明の一実施形態による、図3B内の2つ目の会話の概略スクリーンショットである。スクリーンショットの上および左部分は、図3Bと同じである。ただし、会話リスト360は、メッセージリスト640に置き換えられている。メッセージリストの上には、会話のトピック「トピック2」630と、会話に関連付けられたすべてのユーザ定義ラベル632と、「すべてのメッセージを拡張」ボタン634とがある。4つのメッセージは、すでに表示されたか、またはユーザによって既読の印を付けられているため、リスト内の上の3つのメッセージは短縮モードで表示され、最後(かつ、最新)のメッセージのみが拡張モードで表示されている。一部の実施形態では、未読メッセージ(すなわち、まだ表示されていないか、またはユーザによって既読の印を付けられていないメッセージ)がない場合、スターありの印が付けられている会話内のメッセージも拡張モードで表示される。これは、会話内のすべてのメッセージが積み重ねられているという視覚効果を提供する。それぞれの短縮サブフォームは、簡略メッセージヘッダ641と、メッセージボディの最初の数語などの、抜粋643とを表示する。一部の実施形態では、簡略メッセージヘッダ内の送信者は色で識別され、それにより、各送信者のテキスト表現は異なる色で提示される。これは、表示されている会話内で送信者を識別するために役立つ。一部の実施形態では、送信者に関連付ける色をシステムが使い切ってしまうまで、色はシステムによって生成される。一部の実施形態では、色は会話ごとに関連付けられ、それにより、同じ送信者に、表示される会話によって、異なる色が関連付けられてもよいようになる。簡略メッセージヘッダ641内ですべての受信者がハイライトされているのは、これが会話の最初のメッセージであるためであることに留意されたい。対照的に、2つ目の短縮サブフォーム内で1つの識別子「S1」のみがハイライトされているのは、これが、S1が会話内の参加者となる最初のメッセージであるためである。拡張サブフォームは、完全なメッセージボディ645と、選択された場合に詳細メッセージヘッダが表示されるようにする「詳細オプション」リンク647と、返信オプションのリスト649とを含む。最後のメッセージはS4によって送信されたため、返信オプションのうちの1つは「S4へ返信」となっており、これは、返信がS4に宛てられることをユーザに警告する。
【0040】
一部の実施形態では、会話内のメッセージの数がしきい値(例えば、8または10メッセージ)を超え、かつ、会話内の複数の連続するメッセージが短縮サブフォームで表示されるべきである場合(例えば、「受信トレイ」会話リストから選択された会話内の、既読の印が付けられたメッセージ)、これらのメッセージは、テキストを含まず、したがって、送信者リストも抜粋も含まない、第2の短縮サブフォームで表示される。代わりに、第2の短縮サブフォームは、これらのメッセージのそれぞれを小さなバーで表す。視覚効果は、これらのサブフォームが、1組のカード内のカードの端のように見えるということである。一部の実施形態では、会話内の最初と最後のメッセージは第2の短縮サブフォームでは決して表示されず、より一般的には、「スターあり」ラベルを有するメッセージなどの、特定のメッセージは、第2の短縮サブフォームによって表されることから除外される。第2の短縮サブフォームは、多数のメッセージを有する会話の表示を容易にするために使用される。ユーザ指定の検索クエリに一致する会話(しきい値を超える数のメッセージを有する)内のメッセージを表すために、これと同じ方法が使用されてもよい。この場合、第2の短縮サブフォームで表されるメッセージは、検索クエリに一致しない、連続したメッセージのグループである。
【0041】
図6Cの概略スクリーンショットは、(1)最初のサブフォーム650は、ユーザがサブフォームをクリックした後で、拡張モードで表示されている、(2)最後のサブフォームは、詳細メッセージヘッダ660を含む、(3)メッセージ返信フォーム670が、ユーザが「S4へ返信」リンクをクリックした後で、最後のサブフォームに添付されている、という点を除き、図6Bに示したものに類似している。一実施形態では、会話内のメッセージ(例えば、最後のメッセージ)に返信するためのテキストボックスは、ユーザが会話の内容を見ている場合に、そのメッセージに関連して永続的に表示されてもよい。言い換えると、ユーザが「S4へ返信」リンクをクリックする必要なしに、メッセージ返信フォーム670が表示され、それに関連付けられた返信テキストボックスに、ユーザはアクセスすることが可能である。他の実施形態では、メッセージ返信フォームは、会話内のすべてのメッセージについて、または拡張モードで表示されているすべてのメッセージについて、永続的に表示されてもよい。
【0042】
最初の拡張サブフォーム650は、図6Bに示す最後のサブフォームと構造的に同じである。これは、簡略メッセージヘッダと、「詳細オプション」リンクと、メッセージボディと、サブフォームの下部にある1組の返信オプションとを含む。詳細メッセージヘッダ660は、メッセージ送信者および受信者の電子メールアドレスまたはその他の識別子に加えて、ユーザが行うことが可能な操作のリストを含む。例えば、「このメッセージをゴミ箱に入れる」操作661は、ユーザがメッセージを会話から除去することを可能にする。メッセージ返信フォーム670は、デフォルトでは、「To:」フィールド内にS4のアドレスのみを含み、その理由は、ユーザが返信しようとしているメッセージの送信者はS4だからである。ただし、ユーザがより多くの受信者に返信メッセージを送信したい場合、メッセージ返信フォームはユーザに追加のオプション(例えば、「Ccを追加」、「Bccを追加」)を提供する。メッセージ返信フォーム670は、さらに、ユーザが元のメッセージの件名を編集すること、および返信メッセージにドキュメントを添付することを可能にする。
【0043】
図6Dは、「すべてのメッセージを拡張」ボタン634をユーザがクリックした後の、図6Bに示す会話の概略スクリーンショットである。結果として、4つのメッセージ608がすべて拡張モードで表示されている。ボタン634内のテキストは、「すべてのメッセージを短縮」に変化することに留意されたい。ユーザがボタン634を再びクリックした後は、会話の表示は、図6Bに示すフォーマットに戻る。
【0044】
図6Eは、前に説明した機能のいくつかを示す、会話の概略スクリーンショットである。特に、図6Eは、682において、会話内のメッセージの数がしきい値を超えた場合に使用される第2の短縮サブフォームの例を示す。ユーザは、それらのメッセージのヘッダ情報は何も見ることができないが、いくつのメッセージがこの第2の短縮サブフォームになっているかを見ることは可能である。一部の実施形態では、第2の短縮サブフォームによるメッセージのいずれの端のメッセージも、簡略メッセージヘッダ684および686によって示されるような簡略メッセージヘッダを示す、短縮サブフォームで示される。一部の実施形態では、図6Eに示すように、簡略メッセージヘッダは、送信者、メッセージの部分、メッセージの日付/時刻値を含み、メッセージのその他の受信者は示さない。「スターあり」機能の例は、メッセージ688において見ることができる。メッセージ688内のスターは、塗りつぶされているという点で、他のメッセージのスターと異なっており、これは、メッセージ688がスターありステータスを有するのに対して、他のメッセージはそうではないことを示している。もちろん、ステータスの区別を提供する任意の視覚的インジケータが使用されてもよく、概念は、「スター」、およびスターが「塗りつぶし」されているかどうかに限定されない。上述のように、スターありステータスを有するメッセージは、一実施形態では、会話が表示され、かつ(図6Eにおけるように)未読メッセージがない場合に、拡張モードで表示される。別の実施形態では、未読の、または表示されていないメッセージがある場合、スターありメッセージ688は短縮サブフォームで表示されるが、682におけるメッセージのような第2の短縮サブフォームでは表示されない。他の実施形態は、未読の、または表示されていないメッセージの存在に関係なく、スターありメッセージを常に拡張モードで表示するなどの、異なる順列(permutation)を見越したものである。
【0045】
クエリを使用した、会話の検索、リスト、および表示
上述のように、ユーザは、ユーザが指定したクエリに一致する会話を検索してもよい。会話管理システム102と会話アシスタント110とは、共同で動作して、クエリに対応する検索結果を生成し、非常に直感的な方法でユーザに結果を提示する。図7Aは、会話アシスタント110が、ユーザの検索要求に一致する会話を表示するために、さまざまなフォームを生成する方法を説明するフローチャートである。一部の実施形態では、表示される会話情報をフォーマットするための動作などの、図7Aに示す動作のいくつかは、クライアント内の会話アシスタントに会話情報を送信する前に、会話管理システムによって実行される。
【0046】
ステップ702において、会話アシスタント110は、検索クエリ(1つまたは複数のクエリ語を含んでもよい)に一致する複数の会話を表す情報と、関連する表示命令とを、会話管理システム102から受信する。ステップ704において、会話アシスタント110は、会話リストのホストとなるフォームを生成する(各会話はフォーム内の1つの行を占める)。フォーム内の各行について、会話アシスタント110は、さらに、ステップ706において、一致したクエリ語を含む抜粋を生成する。一部の実施形態では、会話アシスタント110は、検索クエリ内のクエリ語のいずれかに一致する、抜粋の語をハイライトする。ステップ710において、会話リストが表示される。図7Bは、これらのステップに従って生成される会話リストの概略スクリーンショットである。一部の実施形態では、ユーザは、抜粋の生成および/または表示を抑止させるユーザ嗜好を指定してもよい。一部の実施形態では、検索クエリに一致するテキストが、メッセージのヘッダまたはその他の情報内にある場合、提供される抜粋は、メッセージの最初の部分である。
【0047】
一部の実施形態では、会話リスト内の会話を表す行(例えば、図7Bに示す会話リストの行)をユーザが選択(例えば、クリック)すると(ステップ712)、会話アシスタント110は、ステップ714において、選択された会話を表示する。これを行うために、会話アシスタントは、選択された会話に関連付けられた一連のメッセージのホストとなる、一連のサブフォームを生成する。特に、選択される会話が、ユーザ指定の検索クエリに応答して生成される会話リストから選択される場合、関連するメッセージが検索クエリ内のいずれのクエリ語も含まないサブフォームは短縮モードで表示されるのに対して、関連するメッセージが少なくとも1つのクエリ語を含むサブフォームは拡張モードで表示される。会話アシスタント110は、さらに、メッセージボディ内の一致したクエリ語をハイライトする。指定されたクエリに一致する、選択された会話の表示の例を、図7Cの概略スクリーンショットに示す。選択された会話が、「受信トレイ」会話リストなどのカテゴリ会話リストから選択された場合は、メッセージの初期表示は、図6Cに関して上述したようになる。
【0048】
図7Bは,クエリ語「Tahoe」720に一致する3つの会話730をリストする、ブラウザウィンドウの概略スクリーンショットである。3つの会話730の上には、「検索オプション」リンク732がある。ユーザは、リンクをクリックして、検索を実行するために使用されたオプションを更新してもよい。例えば、ユーザは、検索が1つのカテゴリ内の会話に制限されるか、またはすべてのカテゴリ内の会話に制限されるかを指定してもよい。リストされる会話が、2つ以上の別個のカテゴリに属する場合、グループボックス346内のいずれのカテゴリもハイライトされない。一致する各会話内では、「Tahoe」という語を含む抜粋が識別され、「Tahoe」という語をハイライトして表示される。これらの抜粋は、3つの会話が3つの別個のトピックを扱うものであることを示している。すなわち、最初の会話は、タホ湖へのスキー旅行に関するものであり、2番目の会話は、タホモデルのSUVに関するものであり、3番目の会話は、タホ国有林におけるキャンプ場に関するものである。したがって、ユーザは、抜粋中の情報を利用して、いずれの特定の会話を開くかを決定してもよい。
【0049】
図7Cは、3番目の会話をユーザがクリックした後の、その会話内のすべてのメッセージを表示する概略スクリーンショットである。このスクリーンショットでは、(グループボックス346内の)「すべてのメール」カテゴリがハイライトされていることに留意されたい。これは、3番目の会話が現在、「すべてのメール」カテゴリ内に配置されていることを示す。2番目のメッセージがクエリ語「Tahoe」を含むため、2番目のサブフォームは拡張モードで表示され、「Tahoe」という語がハイライトされている。
【0050】
スペルチェック
図8は、ユーザによって作成されているメッセージ内の、スペルが間違っている可能性のある語を訂正するために、会話アシスタントがユーザと対話する方法を説明するフローチャートである。メッセージを作成した後、かつ、そのメッセージを送信する前に、ユーザは、「その他の操作」プルダウンリストをクリックして、「スペルチェック」項目を選択してもよい。この項目は、図4Bでは表示されていないことに留意されたい。その理由は、図4B内のプルダウンリストは会話レベルの操作のみを含むためである。「スペルチェック」は、メッセージ作成フォームが使用されている間のみプルダウン操作リスト内に表示される、メッセージレベルの操作である。ユーザによる「スペルチェック」操作の選択に応答して、会話アシスタントは、ステップ802において、作成されたメッセージを会話管理システムに送信し、次に、作成されたメッセージのスペルチェックされたコピーと、表示命令とを受信する。代替の実施形態では、スペルチェッカーに関連してここで説明する、会話管理システムによって実行される動作は、会話アシスタントによって、またはローカルクライアントアプリケーションによって、ローカル辞書を使用して実行される。表示命令に基づいて、会話アシスタントは、ステップ804において、メッセージ内のスペルが間違っている可能性のある語のそれぞれをハイライトし、ステップ806において、ハイライトされたそれぞれの語に、システムにより生成された候補となる語のリストを関連付け、ステップ808において、独立した閲覧ウィンドウ内に、フォーマットし直されたメッセージを表示する。ユーザが閲覧ウィンドウ内で特定のハイライトされた語を選択すると、会話アシスタントは、ステップ810において、ユーザが選択した語をスペル訂正ウィンドウ内に配置し、そのウィンドウの隣に、候補となる代替語のリストを添付する。(代替語は、1つまたは複数の語を含んでもよいことに留意されたい。)会話アシスタントは、次に、ステップ812において、スペル訂正ウィンドウ内の、スペルが間違っている語を、候補リスト内のユーザが指定した代替語を使用して更新する。会話アシスタントは、さらに、ステップ814において、スペル訂正ウィンドウを、ユーザが指定した方向に拡張してもよく、それにより、ユーザは、ステップ816において、スペル訂正ウィンドウ内で2つ以上の語を修正することが可能になる。
【0051】
図9Aのスクリーンショットは、ユーザがS4への返信メッセージ817を作成したことを除き、図6Cに示した会話と同じものを示している。メッセージを送信する前に、ユーザはスペルチェックを実行することを決定する。したがって、ユーザは、「その他の操作」プルダウンリストをクリックし、次に、「スペルチェック」項目818を選択する。会話アシスタントは、それに対応して、作成されたメッセージを会話管理システムに送信し、次に、独立した閲覧ウィンドウ内にスペルチェック結果を表示する。一部の実施形態では、スペルチェック結果は、ユーザがメッセージを作成していたのと同じウィンドウ内に表示される。実質的には、スペルチェッカーに関連付けられた特定の機能の切り換え、およびスペルが間違っている可能性のある語のハイライトを除き、表示は概して同じままである。この実施形態が有する追加の利点は、メッセージの作成時にユーザに提供されたのと同じ視覚的背景内で(そのような背景を有さない独立した新しいウィンドウがユーザに提示されることなしに)、ユーザがスペルチェックを実行することができるということである。
【0052】
図9Bは、スペルチェックプロセスのさまざまな段階における、3つの独立した閲覧ウィンドウを含むスクリーンショットを示す。最初のウィンドウ820は、メッセージのスペルチェックされたコピーを含む。特に、スペルが間違っている可能性のある3つの語821、823、および825が、ウィンドウ内でハイライトされている。2つ目の語823をユーザがクリックした後は、2つ目の閲覧ウィンドウ830内に示すように、「Delying」という語がスペル訂正ウィンドウ832内に組み込まれる。さらに、システムにより生成された候補となる語のリスト834が、スペル訂正ウィンドウの下または隣に表示される。ユーザは、次に、スペルが間違っている語「delying」を置き換えるために、3つ目の置換語「delaying」を選択する。訂正された語「delaying」の前に「temporarily」という語を追加したい場合、ユーザは、3つ目のウィンドウ840内に示されているように、左向き矢印841をクリックし、閲覧ウィンドウのポインタを、スペルが間違っている語「delying」の前の位置に配置し、次に、「temporarily」という語を入力してもよい。最後に、スペルが間違っているすべての語を訂正した後で、ユーザは「完了」ボタン845をクリックし、それによりメッセージはS4に送信される。
【0053】
会話サーバ
図10〜図19は、前述の会話サーバ102の実施形態を説明するための補助となり得る。会話サーバ102の一実施形態を、図10に示す。会話サーバ102は、会話エンジン1002と、アップデータエンジン1004と、メッセージインデックス1006と、クエリエンジン1008と、メッセージデータベース1010と、1つまたは複数の補助サービスサーバ1012と、スペルチェッカー1014と、SMTP1016とを含む。
【0054】
会話エンジン1002は、通信ネットワーク106との接続を経由した、会話アシスタント110からの要求と、会話アシスタント110への応答とを処理する。通信ネットワーク106は、インターネット、1つまたは複数のローカルエリアネットワーク(LAN)、1つまたは複数のワイドエリアネットワーク(WAN)、その他のタイプのネットワーク、またはそのようなネットワークの組み合わせを含んでもよい。会話エンジンは、さらに、補助サービスサーバ1012およびスペルチェッカー1014などの、さまざまな補助サービスにも接続される。クエリエンジン1008は、会話エンジン1002、メッセージインデックス1006、およびメッセージデータベース1010に接続される。アップデータエンジン1004は、会話エンジン1002とメッセージインデックス1006との間、および会話エンジン1002とメッセージデータベース1010との間に接続される。SMTPゲートウェイ1016は、会話エンジン1002と通信ネットワーク1006との間に接続される。図10は、会話サーバ102を複数の別々のアイテムとして示しているが、この図は、本明細書で説明する実施形態の構造的概略を示すことよりも、むしろ、会話サーバ102内に存在してもよいさまざまな特徴の機能的説明を示すことを意図している。実際には、当業者によって理解されるように、別々に示されているアイテムが組み合わされてもよく、いくつかのアイテムは分離されてもよい。例えば、図中で別々に示されているいくつかのアイテムは、単一のサーバ上に実装されてもよく、単一のアイテムが、1つまたは複数のサーバによって実装されてもよい。会話サーバ102内の実際のサーバの数、およびそれらの間で特徴が割り当てられる方法は、1つの実装と別の実装とで異なるであろうし、ピーク利用期間中および平均利用期間中にシステムが処理しなければならない電子メールトラフィックの量に部分的に依存してもよい。
【0055】
上で簡単に述べたように、会話エンジン1002は、通信ネットワーク106との接続を経由して、会話アシスタント110からの、メッセージに関連するさまざまな要求に応答して、会話ベースの応答を返してもよい。SMTPゲートウェイ1016も通信ネットワーク106に接続されてもよいが、SMTPゲートウェイ1016は、メッセージの受信および送信に、より直接的に関与してもよい。一部の実施形態では、SMTPゲートウェイ1016は、例えば、シンプル・メール・トランスファー・プロトコル(Simple Mail Transfer Protocol(SMTP))を使用してメッセージを送信および受信する。SMTPゲートウェイ1016は、新しいメッセージを通信ネットワーク106から受信し、そのメッセージをさらなる処理のために会話エンジン1002に送信してもよい。さらに、SMTPゲートウェイ1016は、会話サーバ1002からメッセージを受信し、次に、それらのメッセージを、メッセージ内で指定された受信者アドレスに(通信ネットワーク106を経由して)送信する。
【0056】
会話エンジン1002は、さらに、作成中であってもよいメッセージのスペルチェックのための要求も処理してもよい。会話エンジン1002は、チェックされるべきテキストの部分を、スペルチェックのために、スペルチェッカー1014に送信する。スペルチェッカー1014は、スペルが間違っている可能性があるとして識別されたテキストの識別情報を含む情報を返す。一部の実施形態では、スペルチェッカー1014は、スペルが間違っている可能性があるとして識別されたテキストのための、候補に関する情報を提供する。一部の実施形態では、この情報は、後続の処理のために、会話アシスタント110に送信される。
【0057】
1つまたは複数の補助サービスサーバ1012は、追加のサービスを会話エンジン1002に提供する。一部の実施形態では、補助サービスサーバ1012は、迷惑メール検出モジュールを含む。迷惑メール検出モジュールの動作は、図11を参照して以下で説明する。一部の実施形態では、補助サービスサーバ1012は、電子メールメッセージに添付されたファイルの効率的な記憶および取り出しを管理する、添付ファイル管理モジュールを含む。
【0058】
受信されたメッセージを処理するための実施形態を、図11に示す。メッセージは、受信され、会話に割り当てられ、インデックスされ、1つまたは複数の属性が割り当てられて、保存される。最初に、メッセージは、例えばSMTPゲートウェイ1016によって受信され、そこでいくらかの加工および処理が行われもよく、次に、会話エンジン1002に渡されてもよい(ステージ1102)。会話エンジン1002は、メッセージのためのメッセージ識別子を生成してもよい。メッセージ識別子は、1つのメッセージを別のメッセージから区別するために使用されてもよい。一実施形態では、識別子は、1つまたは複数の部分から構成される、Nビットの数である。例えば、一実施形態では、メッセージ識別子は、Yビット(例えば、32ビットまたは48ビット)のタイムスタンプと、メッセージ内容の64−Yビットハッシュとからなる、64ビットの数であってもよい。ハッシュは、大きな領域から小さな領域に値をマッピングする数学関数である。当業者は、メッセージを相互に区別するための十分な情報を提供するメッセージ識別子の、多くの異なる作成方法があることを理解するであろう。
【0059】
会話エンジン1002は、次に、メッセージをその構成部分へ、構文解析してもよい(ステージ1104)。これらの部分は、送信者のアドレス、1つまたは受信者アドレス、メッセージの件名、前述のRFC2822(2001年4月)内に記載されている「References:」フィールド、RFC2822内に同様に記載されている「In−Reply−To:」フィールド、メッセージの内容、または、メッセージ内に含まれてもよいその他の任意の情報を含んでもよい。メッセージが受信された後、かつメッセージの構文解析の前または後に、メッセージは、迷惑メール検査モジュールに渡されて(ステージ1105)、メッセージが迷惑メール基準に一致するかどうかが判定される。一部の実施形態では、迷惑メール検査モジュールは、他のメッセージ処理と非同期に、かつ並列に動作する。一部の実施形態では、迷惑メール基準は、ユーザが読むことを希望する見込みがない、求められていないメッセージである可能性があるかどうかを判定することを意図したものである。
【0060】
構文解析されたメッセージは、メッセージデータベースに追加される(ステージ1106)。一実施形態では、メッセージは、メッセージデータベースに追加され、その後は修正されることはない(ただし、削除についての修正は除くことがある)。
【0061】
メッセージの構文解析中に抽出されたメッセージの部分のいくつかまたはすべては、受信されたメッセージが属する会話(存在する場合)の判定を補助するために使用されてもよい(ステージ1108)。例えば、メッセージの件名が、同じ件名を有する他のメッセージと比較されてもよく、その理由は、会話内のメッセージは同じ、またはほぼ同じ件名を有する可能性があるためである。適合する会話が見つからない場合、メッセージは、新しい会話に関連付けられる。
【0062】
会話の関連付けが行われた後、メッセージは検索のためにインデックスされる(ステージ1110)。一実施形態では、ヘッダ情報の部分に加えて、メッセージのテキストのすべてがインデックスされる。一部の実施形態では、メッセージボディ内の「ノイズワード」(例えば、「the」、「a」、「or」などの単語)はインデックスされないが、メッセージの関連部分内の他のすべてのテキストはインデックスされる。検索される可能性があるメッセージの部分はインデックスされなければならないことを、当業者は理解するであろう。以下に記載するように、一部の実施形態では、メッセージに関連付けられた属性に関する情報が、メッセージ処理の後のステージにおいてインデックスに追加される。
【0063】
次に、初期属性の組がメッセージに割り当てられる(ステージ1112)。これらのタイプの属性は、例えば、メッセージが新しいことを示すために、受信されたメッセージに「未読」のラベルを付けること(これは通常、メッセージがまだ表示されておらず、既読の印も付けられていないことを意味する)を含んでもよい。ユーザにより送信されるメッセージ以外の、メッセージに初期割り当てされる別の属性は、「受信トレイ」属性である。各メッセージに初期割り当てされる別の属性の組は、同じ会話内の他のメッセージ(存在する場合)に関連付けられるユーザ定義の属性である。会話内の他のメッセージに関連付けられたユーザ定義の属性は、図18を参照して以下に記載する会話データベースを検索することにより判定される。その他の属性も、メッセージに初期割り当てされてもよい。メッセージに関連付けられた属性は、メッセージデータベースを検索して、類似した属性を有するメッセージを取得するために使用されてもよい。例えば、「未読」のラベルが付けられたすべてのメッセージを検索するために、検索が実行されてもよい。さらに、会話の属性がメッセージに追加されてもよく、その理由は、一実施形態では、メッセージはその会話の属性を継承するためである。
【0064】
一部の実施形態では、メッセージに関連付けられる属性は、必ずしも会話内のすべてのメッセージではなく、個別のメッセージに関連付けられる属性を含んでもよい。例えば、「削除の印付き」属性(「ゴミ箱」属性と呼ばれることもある)は、会話内の個別のメッセージに関連付けられてもよく、その一方で、同じ会話内の他のメッセージには関連付けられなくてもよい。削除の印付きメッセージは、依然としてシステムによって記憶され、依然として会話に関連付けられているが、対応する会話が表示される際に、通常は表示されない。「削除の印付き」属性を有するメッセージをユーザが見ることを可能にするために、1つまたは複数の特別な表示が使用される。そのような表示は、メッセージを「復旧」する機会をユーザに提供する。他方、一部の実施形態では、ユーザ定義ラベルが会話に関連付けられた場合、会話内のすべてのメッセージにそのラベルが関連付けられる。その他の一部の実施形態では、ユーザ定義ラベルが会話に関連付けられた場合、事前定義された基準を満たす、会話内のすべてのメッセージ(例えば、削除の印付きメッセージ以外のメッセージ)にそのラベルが関連付けられる。
【0065】
次に、ユーザが設定済みであってもよいユーザ定義フィルタがあれば、メッセージに適用される(ステージ1114)。それぞれのユーザ定義フィルタは、1組のフィルタ条件と、1組の動作とを含む。フィルタ条件は、どのメッセージがフィルタに一致するかを定義し、動作は、メッセージに追加される、またはメッセージから削除されるラベルを指定する動作を含む。フィルタ条件は、送信者、受信者、メッセージ件名内のテキスト、メッセージ内のテキストなどに関する基準を含んでもよい。一部の実施形態では、動作は、「受信トレイから削除」(すなわち、メッセージから「受信トレイ」ラベルを削除(存在する場合))、メッセージにシステムラベル(カテゴリと呼ばれることもある)を追加、およびメッセージにユーザ定義ラベルを追加することを含んでもよい。例えば、フィルタは、特定の語または語の組み合わせを有するすべてのメッセージに、「ゴミ箱」ラベルがラベル付けされることを指定してもよい。別のフィルタは、メッセージ内の任意の位置に「Lake Tahoe」という語が現れる場合、そのメッセージに「Vacation」ラベルが追加されることを指定してもよい。
【0066】
一部の実施形態では、ステージ1112および1114は、処理中のメッセージへのラベルの割り当てに関する、ということが留意されてもよい。ステージ1112および1114の実行時、またはその頃において、迷惑メール検査モジュール(ステージ1105)からの結果が取得される。迷惑メール検査モジュールが、メッセージを迷惑メールとして分類した場合、「迷惑メール」ラベルがメッセージに割り当てられ、相いれないラベル(例えば、「受信トレイ」または「ゴミ箱」)があればメッセージから削除される。
【0067】
メッセージに割り当てられるラベルの組が設定された後は、会話エンジン1002内のインデックスおよび特定のテーブルが、メッセージに割り当てられたラベルの組を反映するように更新される(ステージ1116)。インデックスは、メッセージに割り当てられたラベルを示す情報を追加することによって更新される。結果として、それらのラベルのそれぞれについてのインデックス検索は、処理中の現在のメッセージを含む、メッセージのリストを生成するようになる。さらに、会話エンジン内の少なくとも1つのテーブルまたはデータベースが、処理中の現在のメッセージに割り当てられたラベルの組を示すように更新される。これは、図18を参照して、以下で説明する。
【0068】
最後に、メッセージの送信者に確認応答が送信されてもよい(ステージ1118)。一部の実施形態では、確認応答が送信されてもよく、他の実施形態では、確認応答は送信されなくてもよい。
【0069】
図11は、ステージを特定の順序で示しているが、ステージの順序を不当に制限することを意図するものではない。他の実施形態では、ステージは異なる順序であってもよい。例えば、メッセージのインデックスを行う前に、メッセージデータベースにメッセージが追加されてもよく、したがって、ステージ1114の後にステージ1110が続いてもよい。当業者は、ステージのさまざまな並べ換え方法を理解するであろう。
【0070】
会話への各メッセージの関連付け
図12を参照して、メッセージがどのようにして会話に対応付けられてもよいか(ステージ1106)を、以下にさらに詳細に記載する。メッセージが構文解析(図11のステージ1104)された後で、構成部分の一部は、候補となる会話のための検索クエリを構築するために使用されてもよい(ステージ1202)。例えば、会話は、時間情報、送信者情報、件名情報、ヘッダ内のその他の情報、システムにより提供される情報、またはそれらの任意の組み合わせに基づいて関連付けられてもよい。一部の実施形態では、メッセージの件名を、「References:」および/または「In−Reply−To:」フィールドとともに使用して、検索クエリを構築してもよい。他の実施形態では、メッセージの送信者、または受信者を検索クエリ内に含む。当業者は、現在のメッセージに関連付けられてもよいメッセージを生成するための、多くのさまざまな検索クエリを理解するであろう。
【0071】
検索クエリが、以前に記憶されたメッセージに対して適用され、候補となるメッセージが受信される(ステージ1204)。メッセージ、またはメッセージに関する情報が調べられて、現在のメッセージに最もよく一致するメッセージ(存在する場合)が判定される(ステージ1206)。そのメッセージが属する会話が、現在のメッセージが属する会話である可能性がある。現在のメッセージが属する会話を判定するために、多くの異なる方法が採られてもよい。一方法では、現在のメッセージの件名を使用してもよい。同じ件名を有するメッセージは、同じ会話に属する可能性がある。したがって、現在のメッセージの件名を使用するクエリが構築されてもよい。例えば、着信メッセージが件名「今日の昼食はどこに行きましょうか?」を有する場合、この現在のメッセージが属する会話(存在する場合)は、同じ件名を有する1つまたは複数のメッセージを含む可能性がある。件名を比較する場合、比較を実行する前に件名をノーマライズするのが望ましいことがある。一部の実施形態では、件名のノーマライズは、一部のシステムによって件名に一般に追加される、「Re:」および「Fwd:」などのプレフィクスを削除することを含む。
【0072】
ただし、件名のみではなく、それ以上を調べるのが望ましい場合がある。2つのメッセージが同じ件名を有し、しかし一方は他方よりもはるかに前に受信された場合、それらは同じ会話の一部ではない可能性が比較的高い。例えば、件名「今日の昼食はどこに行きましょうか?」を有する2つのメッセージが、1か月間隔たって受信された場合、それらが同じ会話の部分である見込みはない。したがって、本発明の一実施形態では、現在のメッセージと、候補となる会話からのメッセージとの、ノーマライズされた件名が一致する場合、メッセージの日付/時刻値の検査が望ましいことがある。
【0073】
メッセージを会話に照合する場合、受信者、メッセージ内容の部分、送信者のドメインアドレス、またはその他の要素などの、その他の要素が考慮されてもよい。当業者は、新しいメッセージが属する会話を判定するための、多くの異なる方法があることを理解するであろう。現在のメッセージが、十分に一致するメッセージと照合されたら、一致するメッセージに関連付けられた会話が、現在のメッセージに関連付けられてもよい(ステージ1206)。他方、十分に一致するメッセージが検出されない場合(したがって、会話が検出されない場合)は、新しい会話識別子がメッセージに関連付けられる(ステージ1206)。
【0074】
一部の実施形態では、会話識別子は、会話内で受信された最初のメッセージから作成されてもよい。例えば、最初のメッセージの、システムにより提供されるメッセージ識別子(送信または受信システムのいずれかによって提供される)が、会話識別子としての役割を果たしてもよい。後続のメッセージは、その後、会話識別子としての役割を果たすようになった、このメッセージ識別子に関連付けられる。当業者は、会話識別子を提供するために使用されてもよい、最初のメッセージのさまざまな特徴を理解するであろう。一部の実施形態では、複数の会話に同じ会話識別子が割り当てられないように、特徴は、値が最初のメッセージに固有であるという確信をいくらか提供する(provide some comfort)ものでなければならない。
【0075】
前述のように、現在のメッセージが(既存のまたは新たに作成された)会話に関連付けられた後は(ステージ1106)、初期属性が追加される(ステージ1108)。これらの初期属性を追加(ステージ1108)するための一実施形態は、図13を参照することによって、よりよく理解されるであろう。最初に、メッセージの送信者が調べられてもよい。現在のメッセージの送信者が、ユーザ(そのユーザのためにこのメッセージ処理が実行されている)ではない場合、現在のメッセージは、そのユーザに対して、他の誰かによって送信された可能性が高い。したがって、ステージ1302において、現在のメッセージの送信者がユーザではないことが判定された場合、「受信トレイ」という初期属性(「受信トレイ」ラベルとも呼ばれる)が、現在のメッセージに関連付けられてもよい(ステージ1304)。「受信トレイ」という属性は、ユーザに対して送信されたメッセージを識別するために使用されてもよい。例えば、一部の実施形態では、「受信トレイ」属性を有するメッセージの検索が、ユーザのための「受信トレイ」表示の生成において使用される。
【0076】
本明細書中では、用語「属性」および「ラベル」は、区別なく使用される。さらに、メッセージに特定の属性を「関連付ける」ことと、特定の属性またはラベルをメッセージに「印付ける」こととは、同じまたは同等の操作であると見なされる。
【0077】
現在のメッセージは新しい可能性が高いため、ユーザはこのメッセージを以前に見たことがない可能性も高い。したがって、それを示す「未読」属性が、現在のメッセージに関連付けられてもよい(ステージ1306)。当業者は、同じ結果を実現するために、メッセージ属性が多くの方法で実装されてもよいことを理解するであろう。例えば、事前定義された値が「受信トレイ」を表してもよい。それらの属性に基づいて、所望の属性を有するメッセージが検索可能であれば十分である。その他の属性もメッセージに関連付けられてもよい。属性は複数の形態で考慮されてもよいが(Attributes may be thought of in a plurality of forms)、区別よりも、特定の属性を検索する機能の方がより重要である。属性は、「受信トレイ」、「ゴミ箱」、「迷惑メール」、「すべてのドキュメント」、および「未読」などの、システム定義属性を含んでもよい。一部の実施形態では、特定のシステム属性は相互排他的であってもよい(例えば、「受信トレイ」、「ゴミ箱」、および「迷惑メール」)。属性は、本明細書でカテゴリと呼ばれることもある、ユーザ定義属性も含んでいてもよい。
【0078】
(ステージ1302において判定されるように)ユーザが処理中のメッセージの送信者であった場合は、または、「未読」などの任意の適用可能なシステム属性がメッセージに追加(ステージ1306)された後は、会話に属する追加の属性がメッセージに追加される(ステージ1307)。
【0079】
特定のフィルタ基準が調べられて、着信メッセージに対して適用されてもよい(ステージ1308)。一実施形態では、ユーザは、所定の条件が満たされた場合に受信メッセージに属性を適用するフィルタを設定してもよい。別の実施形態では、システムが1つまたは複数の事前定義されたフィルタを受信メッセージに適用してもよい。
【0080】
現在のメッセージがフィルタ基準に一致する場合、フィルタに従って、メッセージに属性が適用されてもよい(ステージ1310)。一実施形態では、特定のメッセージが「受信トレイ」内に配置されないように、ユーザがフィルタを設定することを可能にするためのツールを、システムが提供する。言い換えると、このフィルタは、「受信トレイ」属性がメッセージから除去されるようにする。別の実施形態では、現在のメッセージは、ユーザに対象分野(1つまたは複数の会話が関連していてもよい)を示すラベルなどの、特定のユーザ定義属性に関連付けられてもよい。例えば、着信メッセージは、ラベル「食物」を有する会話に関連付けられてもよく、次に「食物」ラベルが現在のメッセージに関連付けられる。一般に、メッセージは、そのメッセージが関連付けられている会話のラベルを継承する。複数のフィルタが受信メッセージに適用されてもよいため、新しく受信されたメッセージおよびそれらが関連付けられる会話は、2つ以上のユーザ定義ラベルに関連付けられてもよい。
【0081】
別の実施形態では、ユーザは、スヌーズ条件を会話に関連付けてもよい。一部の実施形態では、スヌーズ条件が会話に関連付けられるのは、それを行うようにユーザがシステムに明確に指令した場合である。一部の実施形態では、スヌーズ条件が会話に関連付けられるのは、会話内のメッセージにフィルタが一致した場合である。スヌーズ条件は、スヌーズ条件が適用されている会話内に、新しいメッセージが受信された場合に、特定の動作が実行されるように指定するものである。例えば、スヌーズ条件は、会話内の新しいメッセージに「受信トレイ」ラベルをシステムが関連付けるのを防止してもよい。より具体的には、ユーザは、特定のトリガ条件が満たされない限り、会話内の新しいメッセージがユーザの受信トレイ内に配置されるのを防止するスヌーズ条件を、(直接的に、またはフィルタの動作を介して)会話に関連付けてもよい。そのようなトリガ条件の1つは、(唯一の一次受信者として)ユーザに直接宛てられた着信メッセージであってもよい。別のそのようなトリガ条件は、ユーザまたはシステムによって選択された期間の経過であってもよい。さらに他のトリガ条件は、指定された単語または語句を含む受信メッセージであってもよい。この場合、スヌーズ条件を満たすメッセージが受信されると、スヌーズ条件は会話から削除され、着信メッセージに「受信トレイ」ラベルが印付けられる。一部の実施形態では、会話内の他のメッセージに「受信トレイ」ラベルを追加するなどの、追加の動作も行われてもよい。別の実施形態では、「未読」ラベルを有する会話内のすべてのメッセージに、「受信トレイ」ラベルがラベル付けされる。したがって、「受信トレイ」の検索によって、この会話が返される。一部の実施形態では、事前定義された事象または条件が発生するまで、会話に関連付けられた新しいメッセージに「受信トレイ」ラベルが印付けられるのを防止する、スヌーズフィルタを生成することによって、スヌーズ条件が会話に関連付けられる(事前定義された事象または条件が発生した後は、スヌーズフィルタは削除されるか、または修正される)。
【0082】
受信メッセージに適用されてもよい別のタイプのフィルタは、望ましくないメッセージを識別して、それらのメッセージに「迷惑メール」ラベルを印付ける(すなわち、そのようなメッセージに「迷惑メール」属性を関連付ける)、「迷惑メール」フィルタである。
【0083】
図14は、会話の属性を修正するための一実施形態を説明する。会話の属性は、会話または会話に関連付けられた着信メッセージが、フィルタ基準に一致する場合に修正されてもよい。会話の属性は、さらに、特定のユーザ定義属性を会話が有するべきであることをユーザが指示した場合も、修正されてもよい。例えば、ユーザは、特定の会話が「食物」カテゴリに関連付けられるべきであることを指定してもよい。そのような場合、会話(およびその各メッセージ)には、「食物」属性に関連付けられるようにするために、「食物」ラベルが印付けられる。ユーザは、さらに、会話に削除のための印が付けられるように指定してもよい。
【0084】
いくつかの点で、ユーザ定義属性は、概念的に、フォルダになぞらえることができる。しかし、本発明の実施形態では、会話が、複数のユーザ定義属性に関連付けられることが可能である。一部の実施形態では、新しい属性が会話に関連付けられた場合、会話内のすべてのメッセージに新しい属性が印付けられる。
【0085】
図14を参照すると、会話の特定の属性が修正されるべきである場合、検索が構築されて(ステージ1402)、会話が見つけられる(ステージ1404)。会話が見つかった後は(ステージ1404)、会話の属性が修正されてもよい(ステージ1406)。ステージ1402、1404、および1406を実現するために使用される特定の機構は、属性を会話に関連付けるために使用される機構に依存する。一部の実施形態では、属性は、会話ベースで会話に関連付けられる。例えば、会話エンジンは、それぞれの特定の会話に関連付けられた属性のリストを維持してもよい。それに代えて、又は加えて、会話エンジンは、それぞれの定義済み属性を、その属性が印付けられたすべての会話にマッピングする、インデックスを維持してもよい。あるいは、一部の実施形態では、会話に関連付けられた属性は、会話内の個別のメッセージに関連付けられてもよい。そのような実施形態では、会話エンジンは、それぞれの定義済み属性を、その属性が印付けられたすべてのメッセージにマッピングするインデックスを維持してもよく、さらに、各メッセージを、そのメッセージに関連付けられた会話にマッピングするための、テーブルまたはその他の機構も維持してもよい。
【0086】
本発明の多くの機能では、メッセージではなく、会話が、情報の基本単位として使用される。例えば、「受信トレイ」は、会話のリストをユーザに提示する。本発明の一部の特徴では、ユーザの電子メールアカウント内の、複数の別個の会話表示内にリストされるべき会話を識別するために、検索が使用される。会話の検索、および識別された会話の表示の生成について、図15を参照して次に説明する。最初に、検索クエリが受信される(ステージ1502)。検索クエリは、ユーザにより指定されたもの、または(例えば、ユーザが「受信トレイ」アイコンをクリックしたのに応答して)システムにより生成されたものであってもよい。検索クエリは、複数の要素に基づいていてもよい。検索クエリ内の検索語は、単語または単語の組み合わせの形態で、ユーザにより指定されてもよい。例えば、「ベーグル」および「安価」という単語を含むメッセージをユーザは検索してもよく、それにより、関連する会話があれば返される。検索クエリは、特定のユーザ操作に応答して、システムによって生成されてもよい。例えば、「受信トレイ」の表示をユーザが希望した場合、システムにより生成された検索クエリが、属性「受信トレイ」を有する会話を検索してもよい。
【0087】
検索クエリ内では、検索可能な語の任意の組み合わせが使用されてもよい。上述のように、検索可能な語は、メッセージのテキスト、メッセージまたは会話に関連付けられた任意の属性、あるいはメッセージに関連付けられたヘッダ情報を含んでもよい。一実施形態では、検索クエリをメッセージのデータベースに適用すると、1組のメッセージが返される(ステージ1504)。図10を手短に参照すると、これは、例えばクエリエンジン1008に検索クエリを送信することにより行われてもよい。クエリエンジン1008は、検索クエリをメッセージインデックス1006に適用してもよく、メッセージインデックス1006はメッセージのリストを返してもよい。ステージ1504において、メッセージのリストが受信されてもよい。望ましい場合は、他の実施形態が、1組のメッセージ識別子、ドキュメント識別子、メッセージのすべてまたは部分、あるいはそれらの任意の組み合わせを戻すことを含む、多くの異なる方法でメッセージのリストを返してもよい。
【0088】
一部の実施形態では、検索は、個別のメッセージに対してではなく、全体としての会話対して実行される。したがって、クエリが第1および第2のクエリ語を含み、その一方が最初のメッセージ内で検出され、もう一方が同じ会話の2つ目のメッセージ内で検出された場合、その会話はクエリに関連していると見なされ、したがって、検索結果に含まれる。例えば、会話の中で、最初のメッセージは昼食の場所の案を求め、後続のメッセージは、特定のレストランの名前を挙げながらも、最初のメッセージのテキストは含んでいない場合を考える。ユーザが、特定のレストランと昼食とについて議論されている会話を見つけることに興味がある場合、検索は、会話内のメッセージ境界が存在しないかのように、会話全体のテキストに対して適用されるならば、望ましい結果を生成する可能性がより高くなる。
【0089】
会話は、ステージ1504において返されるメッセージの組に関連付けられている。関連付けられている会話を識別するために、多くの方法が使用されてもよい。ステージ1504において返された組からメッセージが選択されると(ステージ1506)、メッセージが属する会話が識別される(ステージ1508)。一実施形態では、各メッセージを会話に対応させるデータ構造が維持されてもよい。その場合は、特定のメッセージ識別子に関連付けられたデータ構造エントリの検査によって、メッセージが属する会話が識別される。結果の組として返される会話の数は、事前定義された数に制限されてもよい。その場合、十分な数の会話が識別されるまで、メッセージの組の処理が継続されて、結果が返される。他方、返されるメッセージの組に関連付けられたすべての会話が識別されるが、サブセットのみが返されてもよい。
【0090】
返された結果のすべてまたは一部が属する会話を識別することによって、会話のリストが作成されたら(ステージ1510)、会話情報が、要求者に返すためにフォーマットされる(ステージ1512)。フォーマットステージ1512では、識別された会話に関連付けられた複数の異なるタイプの情報がフォーマットされてもよく、その詳細は1つの実施形態と別の実施形態とで異なる。一部の実施形態では、フォーマット情報は、ユーザへの会話情報の表示のために会話アシスタント110によって認識されるタイプである。
【0091】
一部の実施形態では、ステージ1510において生成される会話リスト内の会話は、事前定義された規則または規則の組に従って各会話に割り当てられた日付/時刻値に基づき並べられる。上述のように、一部の実施形態では、会話リスト内の各会話には、会話リストを生成するために使用された検索基準に一致する最新のメッセージの日付/時刻に等しい日付/時刻が割り当てられ、会話リスト内の会話は、これらの割り当てられた日付/時刻値に従って(例えば、逆時系列順に)並べられる。当業者は、会話リスト内の会話を並べて表示するための、その他のさまざまな方法があることを理解するであろう。
【0092】
一部の実施形態では、(ステージ1512において生成された)会話リストを表すフォーマットされた会話データは、会話リスト内の各会話に含まれるメッセージ数のカウントを含む。一部の実施形態では、各会話のメッセージカウントは、会話内に含まれているメッセージの数をユーザに示すために、会話アシスタント110によって表示される。
【0093】
一実施形態では、会話リスト内の各会話について、(例えば、ステージ1512の間に)簡略会話ヘッダが作成される。会話ヘッダは、会話内のメッセージの送信者のリストを識別してもよい。このリストは、会話内の送信者のすべてまたはサブセットを含んでもよい。一部の実施形態では、送信者のリストは、ユーザによって現在「未読」としてラベル付けされている(会話内の)メッセージを送信した送信者を、視覚的に識別するようにフォーマットされてもよい。別の実施形態では、会話アシスタント110は、これらの送信者を、他の送信者とは異なるフォーマットで表示する。例えば、「未読」メッセージの送信者は、太字の、またはハイライトされたテキストを使用して識別されてもよい。
【0094】
別の実施形態では、(簡略会話ヘッダ内の)メッセージ送信者のリストは、ユーザの名前またはアドレスを自己参照識別子に置き換えることによって処理されてもよい。結果として、会話についての送信者リストが表示される際に、ユーザ以外の送信者に類似した、ユーザの名前または他の識別情報を表示する代わりに、自己参照識別子(例えば、「me」)が表示される。その他のタイプの自己参照識別子が、画面を見ているユーザ(the viewing user)を、他のユーザから区別するために使用されてもよい。
【0095】
別の実施形態では、会話リスト内の各メッセージのための簡略会話ヘッダは、ユーザがメッセージをどのように受信したかを示す情報を含んでもよい。言い換えると、その情報は、ユーザにどのようにしてメッセージが送信されたかを明確に識別してもよい。例えば、ユーザにはメッセージが直接送信されてもよく、またはユーザにはメッセージがCcで送信されてもよく、またはユーザにはメッセージがBccで送信されてもよく、またはユーザはメッセージ送信先の配布リストの一部であってもよい。ユーザがメッセージを受信した、これらのさまざまな方法のうちの1つまたは複数が、ユーザに示されてもよい。例えば、ユーザにメッセージが直接送信された場合、それを示すための画像的表示(「>」など)が、ユーザに会話を提示する際に使用されてもよい。
【0096】
一部の実施形態では、会話リスト内の各メッセージのための簡略情報ヘッダは、会話内容の抜粋を含み、抜粋は、検索語に一致するテキストを太字で表示するための情報を含み、さらに、一致するテキストを囲む、通常のフォントでフォーマットされたテキストも含む。受信トレイまたはその他のシステムカテゴリのために、会話リストが生成される場合、抜粋は、事前定義された基準に従って選択された、会話からのテキストを含む。一部の実施形態では、抜粋は、会話内の最新のメッセージの最初の部分からのテキストを含むのに対して、別の実施形態では、抜粋は、会話内容を示すように自動的に選択されたテキストを含む。
【0097】
別の実施形態では、検索クエリに一致する会話の中から、特定の会話を見るためにユーザが選択する場合、会話エンジンは、会話内のどのメッセージがクエリに一致し、どのメッセージが一致しないかを示す会話情報を生成してもよい。会話情報は、さらに、検索クエリに一致するメッセージのテキストの部分も含んでもよい。この会話情報は、ユーザへの表示のためにフォーマットされてもよい。会話情報は、拡張モードで表示するためにフォーマットされた一致するメッセージと、短縮モードで表示するためにフォーマットされた一致しないメッセージとを含んでもよい。拡張モードでは、ヘッダ情報と、内容情報と、検索クエリに一致するテキストと、検索クエリを囲むテキストとの、すべてまたは一部の、任意の組み合わせを含む、さまざまなタイプの情報がユーザに提示されてもよい。一部の実施形態では、(例えば、ユーザが「すべてのメッセージを短縮」ボタンまたはオプションを選択したことに応答して)検索クエリに一致する1つまたは複数のメッセージが短縮モードで表示される場合、そのようなメッセージのために短縮モードで表示される情報は、メッセージ内容の抜粋を含み、抜粋は、検索語に一致するテキストを太字で表示するための情報を含み、さらに、一致するテキストを囲む、通常のフォントでフォーマットされたテキストも含む。
【0098】
さらに別の実施形態では、会話情報は、特定のユーザがいつ会話に追加されたか、またはいつ会話から除去されたかを示してもよい。例えば、あるユーザが、ある時点までは会話内のメッセージに含まれていて、その後は含まれなくなった場合、1つまたは複数の後続のメッセージについての情報は、そのユーザがもはや会話の部分ではなくなったことを示してもよい。会話アシスタントは、例えば、そのユーザの名前を表示するために、まだ会話に参加しているユーザの名前を表示するために使用されるフォントとは異なるフォントを使用することによって、これを行ってもよい。会話アシスタントは、この目的のために「ゴースト(ghost)」フォントを使用してもよい。
【0099】
会話情報は、さらに、会話への新しい参加者の導入に関する情報も提供してもよい。例えば、新しい参加者を含む最初のメッセージに関する情報は、新しい参加者の名前を識別的に表示するためのフォーマット情報を含んでもよい。この情報は、会話アシスタントによってユーザに表示されてもよく、それにより、新しく追加された送信者の名前またはその他の識別情報が、太字または他の何らかの視覚的識別力のある表示フォーマットで表示されてもよい。
【0100】
会話情報は、さらに、スペルチェックに関する情報も含んでもよい。この情報は、スペルチェッカー1014が、スペルが間違っている可能性があるとして識別した語に関する指示と、正しいスペルの候補に関する情報とを含んでもよい。
【0101】
図16は、本発明の一実施形態に従ってメッセージを記憶するためのフォーマットの例を示す。メッセージは、メッセージデータベース内に記憶される場合(図11のステージ1114)、図16に示すように記憶されてもよい。メッセージデータベース1602は、例えばメッセージ1(1604)〜メッセージx(1606)(xは特定のユーザに対応するメッセージの数を表す)などの、メッセージに関する情報を記憶してもよい。一実施形態では、各ユーザのメッセージは、そのユーザに固有のメッセージデータベース1602内に記憶される。別の実施形態では、2人以上のユーザに属するメッセージが、同じメッセージデータベース1602内に記憶されてもよい。当業者は、1人のユーザのメッセージ(messages from one user)が、別のユーザに属するメッセージとして現れるのを防止するための多くの方法を理解するであろう。さらに別の実施形態では、2人以上のユーザのメッセージが、メッセージにつき1つのみの記憶エントリを使用して、メッセージデータベース1602内に記憶されてもよく、それにより、複数のユーザがメッセージの1つのコピーを参照するようになってもよい。
【0102】
一実施形態では、メッセージ(例えば、メッセージ1608)は、ヘッダ情報1612と、内容1614と、アタッチメント1616とを含んでもよい。ヘッダ情報1614は、例えば、送信者および受信者を識別する情報と、メッセージの日付/時刻値と、件名とを含む、メッセージのヘッダ情報を含んでもよい。RFC2822に記載されているような、その他の情報も、ヘッダ情報内に含まれてもよい。内容1614は、メッセージの内容を含んでもよい。内容1614は、テキストおよび/またはその他のタイプの内容(例えば、画像または写真)を含んでもよい。アタッチメント1616は、特定のメッセージに添付される任意の情報の内容であってもよい。例えば、メッセージに添付されるドキュメントは、メッセージ1610のこの部分に配置されてもよい。当業者は、メッセージ情報を記憶するためのその他の方法を理解するであろう。例えば、添付ファイルは、別の記憶構造内に記憶されてもよく、その記憶構造への参照がアタッチメント1616内に配置されてもよい。
【0103】
代替実施形態では、各会話についてのすべてのメッセージが、メッセージデータベース内の単一のレコード、ドキュメント、またはデータ構造として記憶される。
【0104】
ユーザ、メッセージおよび会話データ構造
図17は、本発明の一実施形態によるユーザデータベースおよびメッセージインデックスを示す。ユーザデータベース1702は、ユーザに関する情報を記憶してもよい。記憶される情報は、ユーザ情報1704を含んでもよい。ユーザ情報1704は、ユーザ嗜好、セキュリティ情報、または本発明のさまざまな実施形態によって使用されてもよいその他の任意の情報に関連する、さまざまなタイプのユーザ情報を含んでもよい。ユーザデータベースは、ユーザを識別するために使用される、ユーザID(1)(1706)〜ユーザID(m)(1708)(mはシステムのユーザの数を表してもよい)などのユーザ識別情報を含んでもよい。特定のユーザID(m)(1708)は、nビットの2進数などの、各ユーザのための固有の識別子であってもよい。その他のタイプのユーザ識別情報が使用されてもよい。
【0105】
一部の実施形態では、ユーザのユーザIDは、ユーザのメールアカウントに関連付けられたフィルタ、クエリ、およびラベルに関する情報を記憶するための、1組のデータ構造1720を識別するために使用される。一部の実施形態では、これらのデータ構造は、ユーザにより発行された最後のいくつかのクエリを表す情報を記憶するためのクエリキャッシュ1722と、ユーザ定義フィルタ(存在する場合)を記憶するための1組のフィルタデータ構造1724と、ユーザ定義ラベルを表す情報を記憶するためのラベルデータ構造1726とを含む。クエリキャッシュ1722内に記憶された情報により表される最近のクエリは、ユーザが会話管理システムにそれらのクエリを容易に再発行することを可能にするために、例えばグループボックス348(図3B)内で、ユーザに提示されてもよい。ユーザ定義フィルタは、会話管理システムによって、新しい各メッセージの処理中に、そのメッセージがユーザのメールアカウントに追加される際に使用される。ユーザ定義ラベルに関する、記憶された情報は、ユーザが選択したラベルを有する会話のリストをユーザが容易に要求することを可能にするために、例えばグループボックス347(図3B)内で、ユーザに提示されてもよい。
【0106】
ユーザのユーザIDは、ユーザに対応する、フルテキストおよび属性インデックス1710を識別するために使用されてもよい。フルテキストおよび属性インデックス1710は、特定のユーザに関連付けられてもよく、それにより、特定のユーザに関連付けられたメッセージのインデックスを、異なるユーザが検索することはできなくなる。フルテキストおよび属性インデックス1710は、ユーザのメールアカウント内のメッセージに関する情報を記憶し、それにより、フルテキストおよび属性インデックス1710に対して適用されるクエリは、一致するメッセージ(存在する場合)のリストを返すようになる。リストは、メッセージ識別子のリストとして返されてもよい。
【0107】
特定のメッセージについて、フルテキストおよび属性インデックス1710内に含まれる情報は、メッセージのメッセージID1712と、メッセージ1714の内容1714と、メッセージの属性1716に関する情報とを含んでもよい。メッセージID1712は、メッセージの固有の識別子である(すなわち、同じユーザのために記憶されるすべての他のメッセージに関して固有)。メッセージID1712は、メッセージデータベース1702内に記憶された特定のメッセージを参照するために使用されるnビットの数であってもよい。一実施形態では、メッセージID1712は、64ビットの数であってもよい。メッセージID1712は、タイムスタンプ情報と、メッセージID1712が参照するメッセージの内容に関連する情報とから構成されてもよい。タイムスタンプ情報は、例えばSMTPゲートウェイ1018によって、メッセージがいつ受信されたかを示す、システムにより提供されるYビット(例えば、32ビットまたは48ビット)のタイムスタンプであってもよい。メッセージの内容に関連する情報は、メッセージ内容の64−Yビットハッシュであってもよい。
【0108】
メッセージの内容は、完全にインデックスされた検索可能な語として、インデックス内に配置される。インデックス1710が、語または語の組み合わせについて検索される場合、インデックスは、語または語の組み合わせに一致するメッセージの、メッセージリスト(例えばメッセージID)を返す。特定の事前定義された条件が、一致するすべてのメッセージよりも少ないメッセージを返すように要求してもよい。別の実施形態では、インデックス1710は、クエリ内の語または語の組み合わせに一致する会話のリスト(会話ID)を返す。
【0109】
一実施形態では、フルテキストおよび属性インデックス1710内の、検索語のためのエントリは、検索語に一致する最新のメッセージが優先的に返されるように、インデックスされる各メッセージのメッセージID1712に含まれるタイムスタンプ情報に従って並べられる。例えば、インデックス1710内の、各語に対応するメッセージのメッセージIDのリストは、最新のタイムスタンプを有するメッセージIDが、より古いタイムスタンプを有するメッセージIDよりも、リスト内でより早くリストされるように並べられてもよい。他の実施形態では、各メッセージに関連付けられる日付/時刻情報は、各メッセージの受信の日付および/または時刻を示すが、日付/時刻情報はメッセージID内に組み込まれない。そのような実施形態では、インデックス1710内のエントリは、それにもかかわらず、最新の日付/時刻値を有するメッセージのメッセージIDが、より古い日付/時刻値を有するメッセージIDよりも、リスト内でより早くリストされるように並べられる。
【0110】
メッセージに関連付けられた任意の属性1716も、インデックスされる(すなわち、インデックス1710内に含まれる)。特定の属性に対するクエリが、その特定の属性に一致するメッセージを返すように、属性1716は、フルテキストおよび属性インデックス1710に追加される。ラベルまたは属性が会話に追加された場合、または会話から削除された場合、インデックス1710は、それに応じて更新される。インデックスには、各定義済みラベルまたは属性を、そのラベルまたは属性を有するすべてのメッセージ(または、他の実施形態では、会話)にマッピングする、エントリまたはデータが含まれる。したがって、会話にラベルが追加された場合、そのラベルを会話内のすべてのメッセージにマッピングするためのデータが、インデックス1710に追加される。会話からラベルが削除された場合は、そのラベルを会話内のメッセージにマッピングする、インデックス内のデータが、除去または無効化される。一部の実施形態では、会話に関連付けられた各ラベルまたは属性は、会話データベース1808(図18)内の1つまたは複数のエントリにも追加される。
【0111】
フルテキストおよび属性インデックス1710は、クエリ語を個別のメッセージID 1712にマッピングするように構成されてもよいが、メッセージIDを会話識別子にマッピングするための他のデータ構造が提供されてもよい。1つのそのようなデータ構造の組の論理図を、図18に示す。当業者は、検索クエリ語を会話または会話識別子にマッピングするための、多くの異なるデータ構造が使用されてもよいことを理解するであろう。
【0112】
前述のように、ユーザデータベース1702は、特定のユーザに関連付けられたフルテキストおよび属性インデックス1710を参照する、ユーザID1708を含んでもよい。図18に示すように、メッセージ−会話マップ1804内で、特定のメッセージID1712が特定の会話ID1802に関連付けられてもよい。メッセージ−会話マップ1804内の各エントリは、メッセージID1712を会話ID1802に関連付ける(すなわち、マッピングする)。一部の実施形態では、会話ID1804はnビットの数である。この数は、メッセージID1712によって識別されるメッセージが属する特定の会話を一意に識別する。これらの実施形態では、ユーザのメールアカウント内の各会話は、別個の会話IDを有する。
【0113】
特定の会話に関連付けられたその他のメッセージを識別するために、ユーザ会話データベース1808が使用されてもよい。そのようなデータベースは、例えば、特定の検索クエリに一致した1つまたは複数のメッセージの会話に含まれる、残りのメッセージを識別する場合に使用されてもよい。ユーザ会話データベースは、複数の会話エントリ1810を含む。各会話エントリ1810は、会話に関連付けられたメッセージのリスト(またはメッセージを表すその他のデータ構造)を記憶する。例えば、会話エントリ1812は、メッセージエントリ1816の連鎖リスト(linked list)を含んでもよい(各メッセージエントリは会話内の特定のメッセージに対応する)。連鎖リストは、例えば、会話内のメッセージに関連付けられた日付/時刻値によって並べられてもよい。例示的メッセージエントリ1816は、特定のメッセージのメッセージID1712と、ヘッダ1818と、ラベル1820とを含む。ヘッダ1818は、前述のヘッダ情報1612のすべてまたは一部を含んでもよい。ラベル1820は、メッセージに関連付けられた特定の属性を識別する情報を含んでもよい。特定のエントリ1822のメッセージID(4)1712は、メッセージデータベース1602内の特定のメッセージに関連付けられてもよい。一部の実施形態では、メッセージエントリ1816は、対応するメッセージのボディの内容を含まない。
【0114】
一部の実施形態では、図11のステージ1106で行われてもよい、新しいメッセージの特定の会話への関連付けを、メッセージデータベース1602にアクセスすることなく、補助するために、インデックス1708内の情報と会話エントリ1812内の情報とが使用されてもよい。新しく到着したメッセージに一致する可能性があるものとして、メッセージが識別された場合(図12のステージ1204)、最もよく一致するメッセージの、および、したがって、最もよく一致する会話の決定が、一致するメッセージのヘッダ1818を使用して行われてもよい。例えば、ヘッダ1818はメッセージの件名情報を含んでもよく、その件名情報は(ノーマライズされた形態で)、新しく到着したメッセージのノーマライズされた件名と比較されてもよい。ヘッダ1818内のその他の情報も、処理中の着信メッセージのヘッダ情報と比較されてもよい。一致するものとして会話が識別されたら、メッセージデータベースからメッセージを取り出す必要なしに、識別された会話についてのメッセージエントリのラベル1820内で識別される属性が、着信メッセージに適用されてもよい(図13のステージ1307)。
【0115】
メッセージが会話から削除された場合、会話エントリ1812は、会話内の他のメッセージに影響を与えることなく更新されてもよい。そのような場合、削除されるメッセージに対応する(会話エントリ1812内の)メッセージエントリ1816が、メッセージエントリの連鎖リストから削除される。したがって、メッセージはもはやその会話とは関連付けられなくなる。一部の実施形態では、メッセージ−会話マップ1804も、削除を反映するように修正される。
【0116】
前述のように、いくつかの場合には、例えば特定の属性を使用することにより、メッセージに削除の印を付け、しかし会話からは除去しないようにするのが望ましいことがある。メッセージが会話から除去されてもよいような条件になった場合は、その除去が上述のように実行されてもよい。メッセージ−会話マップ1802および会話エントリ1812からのメッセージの除去を許可してもよい条件には、メッセージに削除の印が付けられてからの一定時間の経過、ユーザによる操作、またはその他のトリガ事象が含まれてもよい。
【0117】
会話もまた、削除の印が付けられ、しかしユーザのメールアカウントからはまだ除去されていないようにされてもよい。会話がユーザのメールアカウントから永久的に除去される場合は、会話についての、メッセージ−会話マップ1802エントリが除去されてもよい。その上、会話データベース1808から、対応する会話エントリ1812が除去されてもよく、さらに、インデックス1708から、会話内のメッセージについてのインデックスエントリが除去されてもよい。
【0118】
上で示したように、別の実施形態では、フルテキストメッセージインデックス1708は、クエリに応答して、会話識別子のリストを返す。この実施形態では、メッセージ−会話マップ1802は省略されてもよい。代わりに、会話データベースが、クエリに応答した会話の処理を完了するために必要な、主要なマッピングを提供する。
【0119】
図19を参照すると、上述の方法を実装する会話サーバ102の一実施形態は、1つまたは複数の処理ユニット(CPU)1902と、1つまたは複数のネットワークまたはその他の通信インタフェース1904と、メモリ1006と、これらの構成要素を相互接続するための1つまたは複数の通信バス1908とを含む。会話サーバ102は、任意選択で、表示装置とキーボードとを含むユーザインタフェースを含んでもよい。メモリ1906は、高速ランダムアクセスメモリを含んでもよく、さらに、1つまたは複数の磁気記憶ディスクまたは光記憶ディスクなどの、不揮発性メモリも含んでもよい。メモリ1906は、CPU1902から遠く離れた場所に配置された大容量記憶装置を含んでもよい。メモリ1906は、
さまざまな基本システムサービスを処理するため、およびハードウェア依存タスクを実行するためのプロシージャを含む、オペレーティングシステム1916と、
インターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの、1つまたは複数の通信ネットワークインタフェース1904(有線または無線)を介して、会話サーバ102を他のコンピュータに接続するために使用される、ネットワーク通信モジュール(または命令)1918と、
前述のように、会話アシスタント110からの要求に応答し、会話アシスタント110に応答を提供するための、会話エンジン1002モジュールとを記憶してもよく、会話エンジン1002モジュールは、
前述のように新しいメッセージを処理するための、新メッセージ処理モジュール1920と、
前述のようにユーザのメッセージを検索するための、検索モジュール1922と(検索モジュール1922は、ユーザにより提供される入力からの検索要求を処理するためのモジュール1922と、会話アシスタント110により開始されるシステム生成検索を処理するためのモジュール1926とを含む)、
会話サーバ102から提供された情報を会話アシスタントが処理することを可能にする情報を、会話アシスタント110に提供するための、会話アシスタントローダ1928と(一部の実施形態では、電子メールメッセージを処理するためにクライアントコンピュータが最初に会話サーバ102に接続された場合、会話アシスタントローダ1928が起動され、会話アシスタント110がクライアントコンピュータにロードされる。一部の実施形態では、電子メールセッションが開始されるたびに、会話アシスタントローダ1928は会話アシスタント110をクライアントコンピュータ上にロードし、他の実施形態では、1つの電子メールセッションから別の電子メールセッションへの間で、会話アシスタント110は、クライアントコンピュータによって維持される)、
前述のように会話アシスタント110に提供されるフォーマット情報を提供するための、フォーマット応答モジュール1930と(フォーマット応答モジュール1930は、前述のように、事前定義された基準に従って会話を並べるための、会話順序付けモジュール1932と、会話アシスタント110に返される所定の数の会話を、返すことができる総数から選択するための、会話選択モジュール1034と、前述のように「未読」の印が付けられたメッセージ(すなわち、表示されていない、または既読の印が付けられていないメッセージ)を識別するための、未読/未表示メッセージの送信者識別1936と、前述のようにユーザの識別情報を自己参照情報に置き換えることに関する情報を提供するための、自己参照モジュール1938と、前述のように会話に新しく追加された受信者に関する情報を識別および提供するための、新受信者モジュール1940と、前述のようにもはや会話に参加していない受信者に関する情報を識別および提供するための、削除受信者モジュール1942と、前述のように、一致するメッセージの特定のテキストに関する情報を取得および提供するための、抜粋モジュール1944と、前述のように会話アシスタント110への送信のためにメッセージのフルテキストを取り出すための、フルテキストモジュール1946と、スペルチェッカー1014から返される情報をフォーマットするための、フォーマットスペルチェックモジュール1948とを含む)、
前述のように会話およびメッセージの属性を変更するための、属性変更モジュール1950と、
前述のように、メッセージまたは会話に削除のための印を付けて、その後、それらのメッセージまたは会話を除去するための、削除/除去モジュール1095と、
前述のようにフィルタを作成、監視、および実行するための、フィルタモジュール1954と、
ユーザがメッセージを作成し、その結果のメッセージをSMTPゲートウェイ1016に送信することを可能にする、作成/送信モジュール1956とを含んでもよい。
【0120】
スペルチェック処理および表示方法の例示的実施形態などの、上述のさまざまな特徴は、電子メッセージ通信または電子メールに限定されないことが理解されるべきである。例えば、上述のスペルチェック方法またはユーザインタフェースは、他の実施形態では、さまざまなタイプの文書(例えば、ワードプロセッシング文書)に適用されてもよく、それらの文書と組み合わせて実装されてもよい。
【0121】
以上の説明は、説明の目的のために、特定の実施形態を参照して行った。しかし、上述の具体的な説明は、開示された厳密な形態で本発明が網羅されたり限定されたりすることを意図するものではない。上記の教示を考慮すれば多くの変更および変形が可能である。実施形態は、本発明の原理とその実際的な適用例とを最もよく説明するために、そしてそれにより、当業者が、本発明およびさまざまな実施形態を、企図された特定の使用に適したさまざまな変更とともに、最もよく利用できるようにするために、選択され説明されたものである。
【技術分野】
【0001】
発明の分野
本発明は、一般に、クライアント−サーバコンピュータネットワークシステムの分野に関し、特に、ユーザが多数のメッセージを効率的かつユーザフレンドリな方法で管理するためのシステムおよび方法に関する。
【背景技術】
【0002】
発明の背景
毎日、人々は、何百万もの電子メール(「e−mailとも書く」)メッセージを、仕事と余暇のために、コンピュータネットワークを介して送信および受信している。電子メールは、便利で、使いやすく、多くの場合はほとんど即時に届くため、人々が情報を交換するための非常に一般的な通信チャネルとなった。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来、ユーザの電子メールアカウントに到着する電子メールメッセージは、専用の電子メールクライアントによって、またはWebブラウザウィンドウ内で、個別に、時系列順に表示されている(例えば、最新のメッセージがブラウザウィンドウの最上部に表示され、最旧のメッセージがブラウザウィンドウの最下部に表示される)。しかし、2人以上の人によって異なる時刻に送信された複数のメッセージが、同じトピックを扱うことがあるのは一般的である。メッセージを一緒に表示することは、ユーザが適切な脈絡の中で個別のメッセージを理解するために役立つ。
【0004】
ユーザによって受信されるメッセージとユーザによって送信されるメッセージとを含む、複数のメッセージを、それらのそれぞれのトピックに従って編成および表示する、システムおよび方法を有することは非常に望ましい。さらに、同じトピックに関連し、かつ同じ会話の部分を形成するすべてのメッセージが直感的に提示され、それにより、特定の送信者により発行された特定のメッセージをユーザが効率的に識別できるようになり、ユーザが会話内のメッセージを、会話内の他のメッセージと比較した脈絡の中で見ることができるようになることは非常に望ましい。
【課題を解決するための手段】
【0005】
概要
一実施形態では、メッセージを処理するための方法は、ユーザに宛てられた複数のメッセージ(各メッセージは固有のメッセージ識別子を有する)を受信するステップを含む。複数のメッセージのそれぞれは、個々の会話に関連付けられており、それぞれの会話は個々の会話識別子を有する。さらに、それぞれの会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む。会話のリストが、1組の行として、第2の事前定義された基準により決定される順序で表示され、ここで、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含む。会話の内容は、表示された会話のリストからユーザが会話を選択した場合に表示される。
本発明の性質および実施形態をよりよく理解するために、以下の実施形態の説明を、図面とともに参照されたい。図面にわたる同様の参照番号は、対応する部分を意味する。
【図面の簡単な説明】
【0006】
【図1】本発明によるクライアント−サーバベースのネットワークシステムの一実施形態を概略的に示す。
【図2】会話管理システムによって提供される会話を表示するためのさまざまなフォームを、会話アシスタントが生成する方法を説明する概要フローチャートである。
【図3A】会話リストのホストとなるフォームを会話アシスタントが生成する方法を説明するフローチャートである。
【図3B】本発明の一実施形態による、「受信トレイ」カテゴリ内の会話リストの概略スクリーンショットである。
【図4A】「その他の操作」プルダウンリストの動作を説明するフローチャートである。
【図4B】「その他の操作」プルダウンリストを使用してユーザが1つのカテゴリから別のカテゴリに会話を移動させる場合のスクリーンショットである。
【図5A】「ラベルを追加」プルダウンリストの動作を説明するフローチャートである。
【図5B】「ラベルを追加」プルダウンリストを使用してユーザが会話にラベルを追加する場合のスクリーンショットである。
【図6A】会話アシスタントが、会話管理システムの表示命令に応答して、会話表示を生成する方法を示すフローチャートである。
【図6B】本発明の一実施形態による、すべてのメッセージが短縮モードで表示された会話表示のスクリーンショットである。
【図6C】本発明の一実施形態による、いくつかのメッセージが短縮モードで表示され、いくつかのメッセージが拡張モードで表示された会話表示のスクリーンショットである。
【図6D】本発明の一実施形態による、すべてのメッセージが拡張モードで表示された会話表示のスクリーンショットである。
【図6E】本発明のさまざまな実施形態によりメッセージが表示された、会話表示のスクリーンショットである。
【図7A】会話アシスタントが、ユーザの検索要求に一致する会話を表示するためにさまざまなフォームを生成する方法を説明するフローチャートである。
【図7B】本発明の一実施形態による、クエリ語「Tahoe」に一致する3つの会話を含むスクリーンショットである。
【図7C】本発明の一実施形態による、クエリ語に一致するかまたは一致しない、かつさまざまなモードで表示された、会話内のメッセージのスクリーンショットである。
【図8】スペルが間違っている可能性のあるすべての語を訂正するために、会話アシスタントがユーザと対話する方法を説明するフローチャートである。
【図9A】ユーザにより作成された返信メッセージを含む会話のスクリーンショットである。
【図9B】スペルチェックプロセスのさまざまな段階における、3つの独立した閲覧ウィンドウを含むスクリーンショットを示す。
【図10】会話サーバの一実施形態を示す。
【図11】受信メッセージを処理する方法を表すフローチャートである。
【図12】メッセージを会話に対応付ける方法を表すフローチャートである。
【図13】メッセージに属性を割り当てる方法を表すフローチャートである。
【図14】会話に属性を割り当てる方法を表すフローチャートである。
【図15】会話を検索し、識別された会話の表示を生成する方法を表すフローチャートである。
【図16】メッセージデータベースを示す。
【図17】ユーザデータベースと、特定のユーザのためのインデックスとを示す。
【図18】受信メッセージに対応する会話を識別するため、および受信メッセージに関連付けられる属性を決定するために使用される、1組のデータ構造を示す。
【図19】会話サーバの一実施形態を示す。
【発明を実施するための形態】
【0007】
実施形態の説明
本発明は、ユーザに対しておよびユーザによって送信されるメッセージを編成して表示する、クライアント−サーバシステムと、対応する方法とに関する。
【0008】
図1は、クライアント−サーバシステムの一実施形態を概略的に示す。システムは、会話管理システム102と、通信ネットワーク106と、複数のクライアント104とを含む。会話は、1つの会話トピックを扱う1つまたは複数の関連するメッセージを含む。以下に記載するように、いずれのメッセージが、それぞれの別個の会話の部分であるかを判定するために、会話トピックを超えた、追加の基準が使用されてもよい。メッセージの送信者および受信者は、会話の参加者である。会話管理システム102のユーザに宛てられたすべてのメッセージは、複数の会話に分類され、会話ベースのフォーマットで、個別に、または一緒に、ユーザに提示される。会話管理システム102の実装に関するより詳細な説明は、後に記載する。
【0009】
クライアント104は、ブラウザ108および会話アシスタント110を含む。ブラウザ108は、会話を表示するために使用されるブラウザウィンドウを有する、汎用のインターネットブラウザ(Webブラウザと呼ばれることもある)であってもよく、または、会話を表示するためのウィンドウを有する、専用のブラウザアプリケーションであってもよい。会話、および会話内のメッセージは、ハイパーテキストマークアップ言語(HTML)を使用して、またはその他の任意の適切な描画方法を使用して、ブラウザ108によって描画されてもよい。ユーザが、自分の個人アカウント内に記憶されたメッセージにアクセスするために、ブラウザ108を介して、会話管理システム102に要求を発行した後、会話管理システム102は、ユーザの要求に従って、ユーザの個人アカウント内の複数の会話を識別し、それらの会話と、1組の表示命令とを、クライアント104に返送する。会話アシスタント110は、それに対応して、表示命令に従った1つまたは複数のフォームを生成する(各フォームは、会話のうちのいくつかの情報を含む)。フォームは、次に、ブラウザ108に発行され、ブラウザ108によって描画される。別の実施形態では、会話アシスタント110は、別法として、会話管理システム102内において存在し動作してもよい。
【0010】
図2は、会話管理システム102によって提供された会話を表示するためのさまざまなフォームを、会話アシスタント110が生成する方法を説明する概要フローチャートである。ステップ202において、複数の会話および関連する表示命令を受信した後、会話アシスタント110は、ステップ204において、ユーザが複数の会話を要求したか、または個別の会話を要求したかを判定する。ユーザが複数の会話を要求する場合、会話アシスタント110は、ステップ206において、会話リストのホストとなる(hosts a list of conversations)フォームを生成する(各会話はフォーム内の1つの行を占める)。フォーム内の各行について、会話アシスタント110は、ステップ208において、表示命令に従って、1組の列と、表示されるべき関連する特徴とをさらに生成する。列内の情報および関連する特徴が描画される方法についてのさらなる詳細は、図3Aおよび図3Bと組み合わせて、後に記載する。
【0011】
ユーザが個別の会話を要求する場合、会話アシスタント110は、ステップ210において、会話に関連付けられた一連のメッセージのホストとなる、別個のフォームを生成する。ステップ212において、会話アシスタント110は、各メッセージについて、対応する表示命令に従って、サブフォームと、表示されるべき関連する特徴の組とを生成する。そのようなサブフォームおよび関連する特徴を会話アシスタントが描画する方法についてのさらなる詳細は、図6A〜図6Dと組み合わせて、後に記載する。
【0012】
会話リストまたは個別の会話のホストとなるフォームを生成した後、会話アシスタント110は、ステップ214において、1組のシステム定義カテゴリのホストとなるフォームを生成する。それぞれのシステム定義カテゴリは、0以上の会話と関連付けられてもよい。一実施形態では、システム定義カテゴリは、ユーザの操作に応答して、または事前定義された基準が満たされた場合に、会話管理システム102が会話に割り当てる属性である。例えば、ユーザが会話に削除のための印を付け、しかし、その会話をユーザのメールアカウントから永久的に除去するために必要なステップはまだ実行していない場合、システムはその会話に「ゴミ箱」属性を関連付ける。より具体的には、会話管理システム102は、属性「ゴミ箱」を会話に添付し、例えば「受信トレイ」などの既存の属性を、必要に応じて会話から削除する。いくつかのシステム定義カテゴリは相互排他的であってもよいことに留意されたい。別の例では、システムは、新たに受信した着信メッセージに、「受信トレイ」属性と「未読」属性とを自動的に関連付けてもよい。システム定義カテゴリのより詳細な説明は、図4Aおよび図4Bと組み合わせて、後に記載する。
【0013】
次に、会話アシスタント110は、ステップ216において、1組のユーザ定義ラベルのホストとなる別のフォームを生成する。図3Bは、このフォームが内部に表示されているグループボックス347を示す。それぞれのユーザ定義ラベルは、0以上の会話と関連付けられてもよい。一実施形態では、ユーザ定義ラベルは、特定の会話に関連付けられることが可能な属性である。ユーザ定義ラベルが割り当てられる会話は、特定のユーザ操作によって、あるいは、フィルタまたは類似した機構の動作によって決定されてもよい。システム定義カテゴリとは異なり、これらのラベルはユーザによって任意に定義され、これらのラベルは相互排他的ではない。言い換えると、会話は、同時に複数のラベルに関連付けられてもよい。例えば、ユーザの個人アカウント内に、「買い物リスト」および「感謝祭」という2つのラベルが存在してもよい。「買い物リスト」ラベルは、ユーザによって、またはユーザにより設定されたフィルタによって、買い物関連の会話に割り当てられてもよく、他方、「感謝祭」ラベルは、感謝祭の買い物を含む、感謝祭の活動に関連する会話に割り当てられてもよい。ラベルはユーザによって定義されるため、ユーザはラベルを削除することも可能である。ユーザ定義ラベルのより詳細な説明は、図5Aおよび図5Bと組み合わせて、後に記載する。グループボックス347に関しては、ユーザがグループボックス347内のユーザ定義ラベルを選択(例えば、クリック)した場合、会話アシスタント110は会話管理システムに、ユーザが選択したラベルに関連付けられた会話を探すためのクエリを発行する。次に、そのクエリが実行され、そのような会話が存在する場合は、それらの会話のリストがユーザに提示される。
【0014】
会話管理システム102と会話アシスタント110とは共同で動作して、ユーザが、ユーザのメールアカウント内のメッセージを検索すること、および検索結果を高度に直感的な方法で提示することを可能にする。会話管理システム102は、ユーザの電子メールアカウントから情報を抽出するか、またはユーザによって作成されたメッセージを処理するのに対して、会話アシスタント110は、会話管理システム102によって準備された情報を描画する。他の実施形態では、会話管理システム102と会話アシスタント110との間の異なる役割分担が使用されてもよい。システムによって実行されるタスクの多くは、会話管理システム102または会話アシスタント110のいずれかによって、あるいはこれらの2つが共同で動作することによって実行されることが可能なため、本明細書では、これらの2つの構成要素をまとめて「会話システム」と呼ぶ場合がある。
【0015】
会話システム(102および/または110)は、ステップ218において、ユーザが最近の検索結果に再アクセスする(またはより正確には、最近の検索結果を再生成する)ことが可能になるように、ユーザによって発行された1組の検索のホストとなるフォームを生成してもよい。検索ベースの会話リストの生成のより詳細な説明は、図7A〜図7Cと組み合わせて、後に記載する。さらに、会話システムは、ステップ220において、ユーザによって最近アクセスされた1組の会話のホストとなるフォーム(例えば、図3Bのグループボックス349内に表示されるフォーム)を生成してもよい。この機能は、Webブラウザの「戻る」ボタンに類似している。ステップ222において、会話アシスタント110は、表示のためにブラウザ108にフォームを発行する。
【0016】
ステップ214〜220は、図2に示す順序以外の、多くの可能な順序で実行されてもよい。一部の実施形態では、これらのフォーム生成ステップのいくつかは省略されてもよい。
【0017】
会話リストの生成
次に、図3Aを参照すると、会話管理システム102は、例えばユーザのメールアカウントの受信トレイ表示を要求するユーザまたはクライアントに応答して、会話リストを生成する(ステップ302)。以下でより詳細に説明するように、会話リストは、ユーザのメールアカウントの検索を実行することにより生成される。受信トレイ表示のための会話リストを生成するために、「受信トレイ」属性(ラベルと呼ばれることもある)に関連付けられた会話について、ユーザのメールアカウントが検索される。次に、会話管理システム102は、次により詳細に説明するように、ステップ304において、表示のために、それらの会話に関する情報を準備する。さらに、会話管理システムは、ステップ305において、ユーザ選択可能な操作のリスト、およびユーザ選択可能なラベルのリストを生成する。ユーザ選択可能なラベルは、システム定義ラベルとユーザ定義ラベルとを含んでいてもよい。図4および図5に関連する以下の議論は、これらのユーザ選択可能なリストの使用について説明する。結果の情報は、次に、ステップ306において、描画のために会話アシスタントに送信される。
【0018】
ステップ304において、会話管理システム102は、会話リスト内の各会話について1組のフィールドを生成するために、一連のステップ(ステップ306〜ステップ324)を繰り返し実行する。一部の実施形態では、ユーザが会話リストにざっと目を通すことが容易にできるように、これらのフィールドは、会話アシスタント110によって、列内に描画されてもよい。
【0019】
それぞれの会話、および関連するメッセージの組について、会話管理システム102は、最初に、ステップ307において、送信者リストを生成する。送信者リストは複数の送信者識別子を含み、各識別子は、メッセージのうちの少なくとも1つを書いた送信者に対応している。送信者は、その送信者のファーストネーム、ラストネーム、フルネーム、電子メールアドレス、写真または固有のアイコン、あるいはそれらの組み合わせによって識別されてもよい。一部の実施形態では、少なくとも2人の送信者が同じファーストネームを有する場合、一方の送信者をもう一方から識別するために、各送信者のラストネームの十分な部分がそれぞれの送信者識別子に含まれる。例えば、2人の送信者が、Paulというファーストネームと、最初の文字が異なるラストネームとを有する場合、送信者は、Paulと、ラストネームの最初の文字との連結(例えば、PaulBおよびPaulK)を使用して識別されてもよい。当業者は、同じファーストネームを有する2人の送信者を識別するためのその他の方法を理解するであろう。他の実施形態では、送信者の識別子は、ユーザの連絡先リスト内に存在する、特定の送信者に関連付けられた情報に基づいていてもよい。さらに他の実施形態では、ユーザは、特定の送信者について送信者リスト内に表示されるニックネームを作成してもよい。送信者が会話内の複数のメッセージを書いた場合でも、その送信者の識別子は、送信者リスト内に一度だけ表示される。一実施形態では、リスト内の送信者識別子は、それらの送信者のそれぞれのメッセージの、システム102における到着時刻に従って並べられる。別の実施形態では、リスト内の送信者識別子は、それらの各名前に従って、アルファベット順に並べられる。次に、会話管理システム102は、ステップ308において、表示命令に従ってリスト内の1つまたは複数の送信者識別子をハイライトするように、送信者リストをフォーマットする。「ハイライトする」という用語は、本明細書では、太字にする、下線を付ける、背景色を変更する、フォント色を変更する、フォントを変更するなど、視覚的識別力のある方法で表示することを意味するために使用される。さらに、この文脈では、「ハイライトする」という用語は、あるもの(例えば、テキストの指定された部分)を識別力のある方法で表示するためのフォーマット情報を生成することを意味する。例えば、一部の実施形態では、送信者のメッセージがまだ表示されていないか、またはユーザによって既読の印が付けられていない場合、その送信者の名前は太字で表示されるようにフォーマットされる。
【0020】
一部の実施形態では、会話アシスタントは、会話の送信者リストおよび/または受信者リストに記載された人々のうちの1人以上の写真を受信するか、または、それらの写真へのアクセスが可能である。ユーザが、会話リストまたは個別の会話のいずれかを見て、送信者リスト内の名前または識別子の上にカーソルを配置すると、その送信者の写真が表示される。一部の実施形態では、リストされたメッセージ受信者について、会話を表示する際に、同じ機能が提供される。この機能は、大規模な組織で使用される電子メールシステムのために、特に有用な可能性がある。
【0021】
一部の実施形態では、会話内の少なくとも1つのメッセージをユーザ自身が書いた場合、会話管理システム102は、ステップ310において、送信者リスト内のユーザの名前またはその他の識別子を、送信者リスト内でのそのユーザの識別子としての、固有の文字列、アイコン、またはそのユーザのためのその他の出力キューに置き換える。固有の文字列のための1つの選択肢は、特定の言語での自己参照識別子である。例えば、英語の代名詞「me」が、送信者リスト内でユーザを表すために使用されてもよい。この機能は、送信者リスト内で送信者をそのファーストネームによって識別すること(これは、もちろん、代替実施形態で行われてもよい)よりも有用であり、その理由は、多くの人が同じファーストネームを共有するためである。固有の識別子によってユーザを表すことは、さらに、少なくとも1つのメッセージを提供することによって該ユーザが実際に参加した会話を、該ユーザが容易に識別するためにも役立つ。
【0022】
多くの人が会話にメッセージを提供した場合は、送信者リストが、ブラウザウィンドウ内の限られたスペースに収まらないほど長くなることがある。これは、送信者リスト内の1人以上の送信者が、それらの送信者の電子メールアドレスによって識別される場合、特に当てはまる。その場合、会話管理システム102は、ステップ312において、さまざまな情報に基づいて送信者リスト内の送信者に優先順位を付け、ブラウザウィンドウ内に表示するための、送信者リストのサブセットを識別する。一実施形態では、サブセットは、少なくとも会話内の最後のメッセージの送信者と、適切な場合は、まだ表示されていないかまたはユーザによって既読の印を付けられていないメッセージの送信者とを含む。別の実施形態では、サブセットは、会話内の最初に受信されたメッセージの送信者と、会話内の最後に受信されたメッセージの送信者と、優先順位付けまたは得点付け方法に従って選択された0以上の追加の送信者とを含む。一部の実施形態では、より後の時刻に到着したメッセージの送信者に、より高い優先度が与えられる。このタイプの優先順序付けでは、未読メッセージの送信者が表示される可能性が高くなる傾向がある。その他のタイプの優先順序付け手法が、同様に使用されてもよい。一部の実施形態では、送信者リストが会話内のメッセージ送信者のサブセットのみを識別する場合、送信者リストは、送信者リストが不完全であることを示す省略記号「...」またはその他の記号を含む。一部の実施形態では、まだ表示されていないかまたはユーザによって既読の印を付けられていないメッセージの送信者が1人以上存在する場合、サブセットはそれらの送信者を、利用可能なスペースによって許容されるだけ多数識別する。
【0023】
ステップ314において、会話管理システム102は、永久的に削除された、または削除のための印が付けられたメッセージを除く、会話内のメッセージの数を示す、会話のためのメッセージ数インジケータを作成する。メッセージ数インジケータは、1対の括弧内の数であってもよく、例えば、「(3)」は、会話内に3つのメッセージがあることを表す。一部の実施形態では、会話が1つのメッセージのみを含む場合、その会話についてのメッセージ数は生成されない。メッセージ数インジケータは、アイコンであってもよい。アイコンは、例えば会話内の未読(つまり、表示されていない、または既読の印が付けられていない)のままのメッセージの数を示す、追加情報を提供するために、色分けされてもよい。次に、会話管理システム102は、ステップ316において、処理中の会話のために会話トピックを生成する。通常、会話トピックは、会話内の最初のメッセージの件名、またはその件名が事前定義された長さを超える場合は、その件名の端が切り捨てられたバージョンである。別の実施形態では、会話トピックは、最初のメッセージの、または代替方法として、最初のメッセージよりも多くのメッセージの、内容を発見的に調べることによって決定される。一実施形態では、「未読」属性を有する少なくとも1つのメッセージを会話が含む場合、メッセージ数識別子および会話トピックの両方が、ユーザの注意を引くためにブラウザウィンドウ内でハイライトされる。別の実施形態では、1つまたは複数の未読メッセージを示すために、会話トピックのみがハイライトされる。
【0024】
既定の電子メール規格によれば、メッセージは、アドレスが「To:」フィールド内にリストされる1つの一次クラスの受信者、およびアドレスが「Cc:」フィールドまたは「Bcc:」フィールド内にリストされる2つの二次クラスの受信者という、少なくとも3つのクラスの受信者に送信されてもよい。したがって、会話管理システム102は、ステップ318において、会話へのユーザの参加のもう1つのインジケータである、ユーザについての受信者ステータスインジケータを作成する。一実施形態では、ユーザがいずれかのメッセージの一次受信者である会話には、「>>」などの第1の識別的インジケータを使用して印が付けられ、ユーザが少なくとも1つのメッセージの二次受信者であり、いずれのメッセージの一次受信者でもない会話には、「>」などの第2の識別的インジケータを使用して印が付けられ、(例えば、メッセージがグループまたはメーリングリストに送信されたため)ユーザがいずれのメッセージの受信者としても明示的にリストされていない会話には、特別な印は付けられない。他の実施形態では、ユーザが少なくとも1つのメッセージの一次受信者である会話、およびユーザが二次受信者のみである会話は、それらの会話を表す行の1つまたは複数の部分をハイライトするなどの、その他の視覚的識別力のある方法で表されてもよい。別の実施形態では、ユーザが少なくとも1つのメッセージの唯一の一次受信者である会話には、「>>」などの第1の識別的インジケータを使用して印が付けられ、少なくとも1つのメッセージが、メーリングリストにではなく、ユーザの電子メールアドレスに直接送信された会話には、「>」などの第2の識別的インジケータを使用して印が付けられ、(例えば、メッセージがグループまたはメーリングリストに送信されたため)ユーザがいずれのメッセージの受信者としても明示的にリストされていない会話には、特別な印は付けられない。
【0025】
一部の実施形態では、会話管理システム102は、ステップ320において、会話の抜粋を作成する。抜粋は、ユーザに会話の内容のプレビューを、ユーザが会話を開く必要なしに提供する。一実施形態では、抜粋は、会話内の最新のメッセージから生成される。別の実施形態では、抜粋は、会話内の最初のメッセージ(すなわち、最も古いメッセージ)から抽出される。さらに別の実施形態では、抜粋は、例えば会話内に最も頻繁に現れるキーワードの組を列記するなどの、事前定義された発見的規則に従って、会話内のすべてのメッセージから抽出される。会話管理システム102は、ユーザにより発行された検索に応答して会話リストを準備している場合、ステップ322において、ユーザが発行したクエリ語に一致するハイライトされた部分を含む抜粋を作成する。これは、グーグル(Google)検索エンジンなどの検索エンジンによって返される検索結果に含まれる抜粋に、1つまたは複数の点で類似していてもよい。
【0026】
最後に、会話管理システム102は、ステップ324において、会話の日付/時刻値を識別する。この日付/時刻値は、多くの場合、ブラウザウィンドウ内での会話リストの表示順序を指定する。一部の実施形態では、会話リスト内の各会話に、会話リストを生成するために使用された検索基準に一致する最新のメッセージの日付/時刻に等しい日付/時刻が割り当てられる。例えば、ユーザ指定の検索クエリ(例えば、「タホ湖」)が使用された場合、会話リスト内の一致する各会話について、割り当てられる日付/時刻は、ユーザ指定の検索クエリに一致する最新のメッセージの日付/時刻である。別の例では、検索基準が「受信トレイ」(すなわち、「受信トレイ」ラベルが割り当てられた少なくも1つのメッセージを有する会話)である場合、会話リスト内の各会話に割り当てられる日付/時刻は、「受信トレイ」ラベルに関連付けられた最新のメッセージの日付/時刻である。一部の実施形態では、会話リスト内の会話は、割り当てられた日付/時刻値に関して、逆時系列順にリストされる(すなわち、最新の会話が最初にリストされる)。本明細書で使用される場合、「日付/時刻」値は、特定のメッセージに関連付けられた任意の日付値および/または時刻値を意味する。日付および/または時刻は、メッセージの作成、送信、受信、またはその他の事象の日付および/または時刻に基づいて、メッセージに関連付けられてもよい。
【0027】
他の実施形態では、会話リスト内の各会話に日付/時刻を割り当てるための、その他の方法または基準が使用されてもよく、それらの日付/時刻値に従って会話を並べるための、その他の方法が使用されてもよい。例えば、一部の実施形態では、高度な検索クエリツールを使用する場合、日付/時刻が、指定された時刻枠内に入る会話(かつ、その他のユーザ指定の検索要求がある場合は、それらを満足する会話)を検索する選択肢がユーザに与えられる。結果の会話リストは、ユーザ指定の目標日付または目標日付/時刻と、リスト内の各会話の日付/時刻との間の、時間の長さに従ってリストされる。したがって、目標の日付または日付/時刻の前および後の会話は、結果の会話リスト内で交互配置されてもよい。
【0028】
図3Bは、本発明の一実施形態による、「受信トレイ」カテゴリ内の会話リストの概略スクリーンショットである。スクリーンショットの左上隅には、「メールを作成」リンク340がある。ユーザは、このリンクをクリックして、新しいメッセージを書き始める。リンク340の隣には、テキストボックス341と、「メールを検索」ボタン342とがある。ユーザが、テキストボックス341を介して1つまたは複数のクエリ語を発行し、次に、「メールを検索」ボタン342をクリックした後、システムは、クエリ語に一致する会話をリストする新しい表示を生成する。一部の実施形態では、一致は、それぞれのクエリ語の1つまたは複数の同義語が存在することによって発生してもよい。一部の実施形態では、一致は、それぞれのクエリ語の語根に基づいて発生してもよい。例えば、「book」についての検索は、「book」、「books」、および「booking」という語によって一致されてもよい。詳細については、図7Aおよび図7Bを参照されたい。ボタン342の隣には、「その他の操作」リスト344および「ラベルを追加」リスト345という、2つのプルダウンリストがある。これらの2つのプルダウンリストの詳細については、図4および図5をそれぞれ参照されたい。「メールを作成」リンク340のすぐ下には、一連のグループボックスがあり、各ボックスは、図2のステップ214〜220のうちの1つによって生成されるフォームに対応している。例えば、グループボックス346には、「受信トレイ」、「スターあり」、「送信済みメール」、「下書き」、「すべてのメール」、「迷惑メール」、および「ゴミ箱」などを含む、システム定義カテゴリが表示される。他の実施形態では、システム定義カテゴリの組は、これらのカテゴリのサブセットおよび/または追加のカテゴリを含む、異なったものであってもよい。一部の実施形態では、「スターあり」カテゴリは、ユーザが、例えば他の参加者にメッセージを送信することによって、積極的に関与することを予定している会話を含む(このカテゴリは「やること」リストに類似している)。したがって、一実施形態では、ユーザが例えばスターありメッセージを検索することができるように、メッセージにスターの印が付けられてもよい。一実施形態では、「すべてのメール」カテゴリは、「迷惑メール」カテゴリ内や「ゴミ箱」カテゴリ内にない、すべての会話を含む。現在のスクリーンショットは、「受信トレイ」カテゴリに属する会話のみを表示しているため、グループボックス346内の対応するリンクがハイライトされていることに留意されたい。
【0029】
図3Bの概略スクリーンショットの主要な領域は、会話リスト360を含むフォームであり、各会話はフォーム内の1つの行を占めている。各行は、さらに、チェックボックス362と、送信者リスト364と、受信者ステータスインジケータ366と、会話トピックおよび抜粋368と、日付/時刻値369とを含む。他の実施形態では、各会話行についてのフィールドの組は、これらのフィールドのサブセットおよび/または追加のフィールドを含む、異なるものであってもよい。一部の実施形態では、会話リストが表示される場合、すべての行が均一な高さを有する。他の実施形態では、さまざまな抜粋長を収容するために、高さは可変であってもよい。チェックボックス362は、対応する会話を1つのシステム定義カテゴリ(例えば、「受信トレイ」)から別のシステム定義カテゴリ(例えば、「ゴミ箱」)に移動することをユーザが決定した場合、または対応する会話にユーザ定義ラベルを付けることをユーザが決定した場合に、ユーザによってチェックされる。フォーム内のその他の列またはフィールドの定義は、図3Aと組み合わせて、上述した。最初の会話内には2つのメッセージがあること、および、最初の行内では送信者S2がハイライトされており、これはS2によって送信されたメッセージがまだ読まれていないか、または既読の印が付けられていないことを示すことに留意されたい。対照的に、2つ目の会話は4つのメッセージを含み、それらのメッセージはすべてがすでに読まれているか、または既読の印が付けられており、したがって2つ目の行内では何もハイライトされていない。一部の実施形態では、スターありステータスのための視覚的インジケータが提供される。会話内のいずれかのメッセージがスターありステータスを有する場合、「受信トレイ」は、少なくとも1つのスターありメッセージを会話が含むことの視覚的インジケータを提供する。
【0030】
図示していないが、一実施形態では、図3Bによって表されるブラウザウィンドウは、永続的に表示されるメッセージ作成領域と、関連するアドレス指定および件名フィールドと、メッセージの作成および送信を可能にするフォームに一般に関連付けられてもよいその他のオプションおよびフィールドとを含む。そのような領域は、例えば、会話リスト360の下に表示される。したがって、一実施形態では、単一のユーザインタフェース(例えば、ブラウザウィンドウ)内で、ユーザは、会話リストを見ることと、さらに、新しいウィンドウ(例えば、メッセージ作成ウィンドウ)を開くことを要求されず、かつ、現在のブラウザウィンドウから会話リストを削除することなしに、新しいメッセージを作成することとを選択できてもよい。
【0031】
図4Aは、「その他の操作」プルダウンリスト344の動作を説明するフローチャートである。ユーザがプルダウンリストをクリックした後、ブラウザは、ステップ402において、システム定義操作のリストを表示する。ステップ404において、ユーザは、プルダウンリスト内の特定の操作と、会話リスト内の少なくとも1つの会話とを選択する。ブラウザは、次に、ステップ406において、ユーザが選択した会話を、ユーザが選択した操作に関連付け、ステップ408において、それらを、さらなる処理のために会話管理システムに送り返す。ユーザが選択した操作によって、ユーザが選択した会話が、以前に表示されていた会話リストから除去される場合、ステップ410において、会話アシスタントは会話管理システムから新しい会話リストを受信し、会話アシスタントは新しい会話リストをブラウザ内で表示する。
【0032】
図4Bには、ユーザが2つ目の会話のチェックボックス413をチェックし、「その他の操作」プルダウンリストをクリックし、項目「迷惑メール」415を選択した場合にもたらされる、図3Bの概略スクリーンショットからの変更が示されている。結果として、2つ目の会話は「受信トレイ」カテゴリから除去され、「迷惑メール」カテゴリは新しいメンバを有することになる。「無視」および「スヌーズ」などの、プルダウンリスト内のいくつかの操作は、対応するカテゴリを有さないことに留意されたい。「無視」および「スヌーズ」は、両方とも、「すべてのメール」カテゴリに対応する。具体的には、ユーザが会話のチェックボックスをチェックし、次に「無視」項目をクリックした場合、会話は「すべてのメール」カテゴリに移される。「無視」された会話に関連する任意の新しいメッセージが到着した場合、システムは、やはり新しいメッセージを会話に関連付けるが、会話をユーザに注目されるように自動的に元に戻すことはしない。ただし、ユーザが「すべてのメール」カテゴリにアクセスし、無視されている会話のチェックボックスをチェックして、次に、対応する「その他の操作」プルダウンリスト内の「受信トレイ」項目を選択することによって、会話の無視を停止し、「受信トレイ」カテゴリ内に会話を戻すことは可能である。この例で示されているように、異なるカテゴリのプルダウンリストは、異なる操作項目の組を有してもよい。「スヌーズ」操作項目を使用すれば、ユーザは、トリガ条件を設定することによって、会話を一時的に無視することが可能になる。トリガ条件は、例えば、会話が一定期間(例えば、1時間、1日、1週間など)「受信トレイ」カテゴリから消え、その後、自動的に戻らなければならないなどの、時間駆動型であってもよく、あるいは、例えば、未チェックのメッセージの数が所定の制限に達するまで、または、特定の人が会話にメッセージを提供するまで、または、ユーザを一次受信者として指定するメッセージが受信されるまで、または、指定された単語または語句を含むメッセージが受信されるまで、会話は「受信トレイ」カテゴリに戻ってはならないなどの、イベント駆動型であってもよい。当業者は、使用可能なその他のトリガ条件を理解するであろう。
【0033】
会話の分類
図5Aは、「ラベルを追加」プルダウンリスト345の動作を説明するフローチャートである。ユーザがプルダウンリストをクリックした後、ブラウザは、ステップ502において、ユーザ定義ラベルのリストを、ユーザが選択するために表示する。ステップ504において、ユーザは、プルダウンリスト内の特定のラベルと、会話リスト内の少なくとも1つの会話とを選択する。ブラウザは、次に、ステップ506において、ユーザが選択した会話を、ユーザが選択したラベルに関連付け、ステップ508において、それらを、さらなる処理のために会話管理システムに送り返す。結果として、ユーザが選択したラベルに関連付けられた会話のリストは、ステップ506においてそのラベルに関連付けられた会話を含むようになる。以下でより詳細に説明するように、ラベルまたは属性が会話に関連付けられる場合、探し当てられるべきそのラベルを有する会話の検索を可能にするために、1つまたは複数のエントリがインデックス1710(図17、図18)に追加される。一部の実施形態では、ラベルまたは属性は、会話データベース1808(図18)内の1つまたは複数のエントリにも追加される。一部の実施形態では、会話に関連付けられたラベルは、ユーザがその会話を見る場合に表示される。一部の実施形態では、会話リスト内の各会話に関連付けられたラベルは、リスト内の各会話について提供される情報行内に表示される。
【0034】
図5Bは、ユーザが2つ目の会話のチェックボックス512をチェックし、次に、「ラベルを追加」プルダウンリストをクリックし、項目「ラベル2」514を選択した場合にもたらされる、ブラウザウィンドウを示す概略スクリーンショットである。(「ラベル2」は、ユーザ指定のラベル名を表すことに留意されたい。)これにより、「ラベル2」が、チェックされた会話に関連付けられる。結果として、チェックされた会話は、「ラベル2」に関連付けられたメッセージに対するクエリに応答して生成される検索結果に含まれてもよい。一部の実施形態では、会話リスト内の各会話に関連付けられたラベルは、フォームの対応する行内に表示され、したがって、「ラベル2」は、ステップ506において「ラベル2」に関連付けられた会話に対応する行内に表示される。カスタマイズされたラベル名をユーザが入力することが可能であること、および/または、事前定義されたラベルをシステムが提供してもよいことは、もちろん、当業者によって理解されるであろう。
【0035】
会話の表示
図6Aは、会話アシスタントが、会話管理システムの表示命令に応答して、会話表示(conversational view)を生成する方法を示すフローチャートである。一部の実施形態では、表示されるべき会話情報をフォーマットするための動作などの、図6Aに示す動作のいくつかは、クライアント内の会話アシスタントに会話情報を送信する前に、会話管理システムによって実行される。
【0036】
会話アシスタントは、最初に、ステップ602において、特定の会話に属する一連のメッセージ、および関連する表示命令の組を受信する。会話アシスタントは、ステップ604において、会話のトピックを識別し、会話に関連付けられたシステム定義カテゴリおよびユーザ定義ラベルがあればそれらも識別する。カテゴリおよびラベルに基づいて、会話は、ユーザ選択可能な操作のリスト、およびユーザ選択可能なラベルのリストを、それぞれ生成する。これらの2つのリストは、図3Bに示す2つのプルダウンリスト344および345に類似している。一実施形態では、ユーザ選択可能な操作のリストは、特定の会話(すなわち、表示される会話)に適用できる操作のみを含む。したがって、すでに「ゴミ箱」カテゴリ内にある会話は、再び「ゴミ箱」カテゴリに関連付けられることはできない。同様に、ユーザ選択可能なラベルのリストは、特定の会話にまだ関連付けられていないラベルのみを含む。
【0037】
ステップ608から、会話アシスタントは、会話内のそれぞれの個別のメッセージについてのサブフォームの生成を開始する。サブフォームは、少なくとも、詳細メッセージヘッダとメッセージボディとを含む。本明細書で使用される場合、メッセージボディは、件名参照を含み、メッセージングソフトウェアによってメッセージに追加されるすべてのシステム情報を除く、ユーザによって作成されるメッセージを意味する。それぞれの詳細メッセージヘッダは、送信者の名前および/またはアドレスと、すべての一次および二次受信者と、メッセージの件名と、メッセージレベルの操作の組と、日付/時刻値とを含む。メッセージレベルの操作のうちの1つは、経路選択情報、およびメッセージングシステムにより提供されるその他の情報(「マイムバージョン(Mime−Version)」や「内容タイプ(Content−Type)」など)を含む、元のフォーマットでメッセージを表示するためのオプションを含む。会話アシスタントは、さらに、ステップ610において、詳細メッセージヘッダから、簡略メッセージヘッダを作成する。簡略メッセージヘッダは、送信者および受信者の識別子を含む。一部の実施形態では、受信者は簡略メッセージヘッダから除外される。ユーザが受信者リスト内にある場合、会話アシスタントは、ステップ610において、送信者リスト内のユーザの識別子に類似した、固有の文字列またはアイコンをユーザの識別子として利用する。例えば、英語の代名詞「me」が、簡略メッセージヘッダ内でユーザを表すために使用されてもよい。メッセージが、この会話内で特定の受信者を識別する(すなわち、メッセージヘッダの一次または二次受信者フィールド内で識別する)最初のメッセージである場合、会話アシスタントは、ステップ614において、簡略メッセージヘッダ内の受信者の識別子をハイライトする。他方、一部の実施形態では、受信者リストに以前に含まれていた受信者が、もはや含まれていない場合、会話アシスタントは受信者の識別子を、例えば「ゴースト(ghost)」フォントなどの、視覚的に識別される方法で表示する。他の実施形態では、簡略メッセージヘッダは、送信者識別子と、メッセージの部分と、メッセージの日付/時刻表示とを含む。
【0038】
次に、会話アシスタントは、ステップ616において、サブフォームの表示方法を決定する。サブフォームに関連付けられたメッセージが、まだ表示されていないか、またはユーザによって既読の印を付けられていない場合は、ステップ618において、サブフォームは拡張モードで表示される、すなわち、簡略メッセージヘッダと完全なメッセージボディとの両方が表示される。メッセージがすでに表示された場合、または既読の印が付けられている場合は、ステップ620において、サブフォームは、デフォルトで、簡略メッセージヘッダとメッセージボディの一部分(例えば、メッセージの最初の数行)とのみを含む短縮モードで表示される。ユーザは、その後、短縮されたサブフォームを、クリックすることによって拡張してもよい。同様に、サブフォームは、詳細メッセージヘッダを表示しないが、ステップ622においてユーザが詳細メッセージヘッダを見たい場合に選択するためのオプションを含む。最後に、会話アシスタントは、ステップ624において、例えば、「返信」、「全員へ返信」、「転送」などの、1組の返信オプションをサブフォームの下部に作成する。一部の実施形態では、上述の操作のサブセットが、会話内の各メッセージについて実行される。一部の実施形態では、1つまたは複数の追加のフォーマット操作が実行される。
【0039】
図6Bは、本発明の一実施形態による、図3B内の2つ目の会話の概略スクリーンショットである。スクリーンショットの上および左部分は、図3Bと同じである。ただし、会話リスト360は、メッセージリスト640に置き換えられている。メッセージリストの上には、会話のトピック「トピック2」630と、会話に関連付けられたすべてのユーザ定義ラベル632と、「すべてのメッセージを拡張」ボタン634とがある。4つのメッセージは、すでに表示されたか、またはユーザによって既読の印を付けられているため、リスト内の上の3つのメッセージは短縮モードで表示され、最後(かつ、最新)のメッセージのみが拡張モードで表示されている。一部の実施形態では、未読メッセージ(すなわち、まだ表示されていないか、またはユーザによって既読の印を付けられていないメッセージ)がない場合、スターありの印が付けられている会話内のメッセージも拡張モードで表示される。これは、会話内のすべてのメッセージが積み重ねられているという視覚効果を提供する。それぞれの短縮サブフォームは、簡略メッセージヘッダ641と、メッセージボディの最初の数語などの、抜粋643とを表示する。一部の実施形態では、簡略メッセージヘッダ内の送信者は色で識別され、それにより、各送信者のテキスト表現は異なる色で提示される。これは、表示されている会話内で送信者を識別するために役立つ。一部の実施形態では、送信者に関連付ける色をシステムが使い切ってしまうまで、色はシステムによって生成される。一部の実施形態では、色は会話ごとに関連付けられ、それにより、同じ送信者に、表示される会話によって、異なる色が関連付けられてもよいようになる。簡略メッセージヘッダ641内ですべての受信者がハイライトされているのは、これが会話の最初のメッセージであるためであることに留意されたい。対照的に、2つ目の短縮サブフォーム内で1つの識別子「S1」のみがハイライトされているのは、これが、S1が会話内の参加者となる最初のメッセージであるためである。拡張サブフォームは、完全なメッセージボディ645と、選択された場合に詳細メッセージヘッダが表示されるようにする「詳細オプション」リンク647と、返信オプションのリスト649とを含む。最後のメッセージはS4によって送信されたため、返信オプションのうちの1つは「S4へ返信」となっており、これは、返信がS4に宛てられることをユーザに警告する。
【0040】
一部の実施形態では、会話内のメッセージの数がしきい値(例えば、8または10メッセージ)を超え、かつ、会話内の複数の連続するメッセージが短縮サブフォームで表示されるべきである場合(例えば、「受信トレイ」会話リストから選択された会話内の、既読の印が付けられたメッセージ)、これらのメッセージは、テキストを含まず、したがって、送信者リストも抜粋も含まない、第2の短縮サブフォームで表示される。代わりに、第2の短縮サブフォームは、これらのメッセージのそれぞれを小さなバーで表す。視覚効果は、これらのサブフォームが、1組のカード内のカードの端のように見えるということである。一部の実施形態では、会話内の最初と最後のメッセージは第2の短縮サブフォームでは決して表示されず、より一般的には、「スターあり」ラベルを有するメッセージなどの、特定のメッセージは、第2の短縮サブフォームによって表されることから除外される。第2の短縮サブフォームは、多数のメッセージを有する会話の表示を容易にするために使用される。ユーザ指定の検索クエリに一致する会話(しきい値を超える数のメッセージを有する)内のメッセージを表すために、これと同じ方法が使用されてもよい。この場合、第2の短縮サブフォームで表されるメッセージは、検索クエリに一致しない、連続したメッセージのグループである。
【0041】
図6Cの概略スクリーンショットは、(1)最初のサブフォーム650は、ユーザがサブフォームをクリックした後で、拡張モードで表示されている、(2)最後のサブフォームは、詳細メッセージヘッダ660を含む、(3)メッセージ返信フォーム670が、ユーザが「S4へ返信」リンクをクリックした後で、最後のサブフォームに添付されている、という点を除き、図6Bに示したものに類似している。一実施形態では、会話内のメッセージ(例えば、最後のメッセージ)に返信するためのテキストボックスは、ユーザが会話の内容を見ている場合に、そのメッセージに関連して永続的に表示されてもよい。言い換えると、ユーザが「S4へ返信」リンクをクリックする必要なしに、メッセージ返信フォーム670が表示され、それに関連付けられた返信テキストボックスに、ユーザはアクセスすることが可能である。他の実施形態では、メッセージ返信フォームは、会話内のすべてのメッセージについて、または拡張モードで表示されているすべてのメッセージについて、永続的に表示されてもよい。
【0042】
最初の拡張サブフォーム650は、図6Bに示す最後のサブフォームと構造的に同じである。これは、簡略メッセージヘッダと、「詳細オプション」リンクと、メッセージボディと、サブフォームの下部にある1組の返信オプションとを含む。詳細メッセージヘッダ660は、メッセージ送信者および受信者の電子メールアドレスまたはその他の識別子に加えて、ユーザが行うことが可能な操作のリストを含む。例えば、「このメッセージをゴミ箱に入れる」操作661は、ユーザがメッセージを会話から除去することを可能にする。メッセージ返信フォーム670は、デフォルトでは、「To:」フィールド内にS4のアドレスのみを含み、その理由は、ユーザが返信しようとしているメッセージの送信者はS4だからである。ただし、ユーザがより多くの受信者に返信メッセージを送信したい場合、メッセージ返信フォームはユーザに追加のオプション(例えば、「Ccを追加」、「Bccを追加」)を提供する。メッセージ返信フォーム670は、さらに、ユーザが元のメッセージの件名を編集すること、および返信メッセージにドキュメントを添付することを可能にする。
【0043】
図6Dは、「すべてのメッセージを拡張」ボタン634をユーザがクリックした後の、図6Bに示す会話の概略スクリーンショットである。結果として、4つのメッセージ608がすべて拡張モードで表示されている。ボタン634内のテキストは、「すべてのメッセージを短縮」に変化することに留意されたい。ユーザがボタン634を再びクリックした後は、会話の表示は、図6Bに示すフォーマットに戻る。
【0044】
図6Eは、前に説明した機能のいくつかを示す、会話の概略スクリーンショットである。特に、図6Eは、682において、会話内のメッセージの数がしきい値を超えた場合に使用される第2の短縮サブフォームの例を示す。ユーザは、それらのメッセージのヘッダ情報は何も見ることができないが、いくつのメッセージがこの第2の短縮サブフォームになっているかを見ることは可能である。一部の実施形態では、第2の短縮サブフォームによるメッセージのいずれの端のメッセージも、簡略メッセージヘッダ684および686によって示されるような簡略メッセージヘッダを示す、短縮サブフォームで示される。一部の実施形態では、図6Eに示すように、簡略メッセージヘッダは、送信者、メッセージの部分、メッセージの日付/時刻値を含み、メッセージのその他の受信者は示さない。「スターあり」機能の例は、メッセージ688において見ることができる。メッセージ688内のスターは、塗りつぶされているという点で、他のメッセージのスターと異なっており、これは、メッセージ688がスターありステータスを有するのに対して、他のメッセージはそうではないことを示している。もちろん、ステータスの区別を提供する任意の視覚的インジケータが使用されてもよく、概念は、「スター」、およびスターが「塗りつぶし」されているかどうかに限定されない。上述のように、スターありステータスを有するメッセージは、一実施形態では、会話が表示され、かつ(図6Eにおけるように)未読メッセージがない場合に、拡張モードで表示される。別の実施形態では、未読の、または表示されていないメッセージがある場合、スターありメッセージ688は短縮サブフォームで表示されるが、682におけるメッセージのような第2の短縮サブフォームでは表示されない。他の実施形態は、未読の、または表示されていないメッセージの存在に関係なく、スターありメッセージを常に拡張モードで表示するなどの、異なる順列(permutation)を見越したものである。
【0045】
クエリを使用した、会話の検索、リスト、および表示
上述のように、ユーザは、ユーザが指定したクエリに一致する会話を検索してもよい。会話管理システム102と会話アシスタント110とは、共同で動作して、クエリに対応する検索結果を生成し、非常に直感的な方法でユーザに結果を提示する。図7Aは、会話アシスタント110が、ユーザの検索要求に一致する会話を表示するために、さまざまなフォームを生成する方法を説明するフローチャートである。一部の実施形態では、表示される会話情報をフォーマットするための動作などの、図7Aに示す動作のいくつかは、クライアント内の会話アシスタントに会話情報を送信する前に、会話管理システムによって実行される。
【0046】
ステップ702において、会話アシスタント110は、検索クエリ(1つまたは複数のクエリ語を含んでもよい)に一致する複数の会話を表す情報と、関連する表示命令とを、会話管理システム102から受信する。ステップ704において、会話アシスタント110は、会話リストのホストとなるフォームを生成する(各会話はフォーム内の1つの行を占める)。フォーム内の各行について、会話アシスタント110は、さらに、ステップ706において、一致したクエリ語を含む抜粋を生成する。一部の実施形態では、会話アシスタント110は、検索クエリ内のクエリ語のいずれかに一致する、抜粋の語をハイライトする。ステップ710において、会話リストが表示される。図7Bは、これらのステップに従って生成される会話リストの概略スクリーンショットである。一部の実施形態では、ユーザは、抜粋の生成および/または表示を抑止させるユーザ嗜好を指定してもよい。一部の実施形態では、検索クエリに一致するテキストが、メッセージのヘッダまたはその他の情報内にある場合、提供される抜粋は、メッセージの最初の部分である。
【0047】
一部の実施形態では、会話リスト内の会話を表す行(例えば、図7Bに示す会話リストの行)をユーザが選択(例えば、クリック)すると(ステップ712)、会話アシスタント110は、ステップ714において、選択された会話を表示する。これを行うために、会話アシスタントは、選択された会話に関連付けられた一連のメッセージのホストとなる、一連のサブフォームを生成する。特に、選択される会話が、ユーザ指定の検索クエリに応答して生成される会話リストから選択される場合、関連するメッセージが検索クエリ内のいずれのクエリ語も含まないサブフォームは短縮モードで表示されるのに対して、関連するメッセージが少なくとも1つのクエリ語を含むサブフォームは拡張モードで表示される。会話アシスタント110は、さらに、メッセージボディ内の一致したクエリ語をハイライトする。指定されたクエリに一致する、選択された会話の表示の例を、図7Cの概略スクリーンショットに示す。選択された会話が、「受信トレイ」会話リストなどのカテゴリ会話リストから選択された場合は、メッセージの初期表示は、図6Cに関して上述したようになる。
【0048】
図7Bは,クエリ語「Tahoe」720に一致する3つの会話730をリストする、ブラウザウィンドウの概略スクリーンショットである。3つの会話730の上には、「検索オプション」リンク732がある。ユーザは、リンクをクリックして、検索を実行するために使用されたオプションを更新してもよい。例えば、ユーザは、検索が1つのカテゴリ内の会話に制限されるか、またはすべてのカテゴリ内の会話に制限されるかを指定してもよい。リストされる会話が、2つ以上の別個のカテゴリに属する場合、グループボックス346内のいずれのカテゴリもハイライトされない。一致する各会話内では、「Tahoe」という語を含む抜粋が識別され、「Tahoe」という語をハイライトして表示される。これらの抜粋は、3つの会話が3つの別個のトピックを扱うものであることを示している。すなわち、最初の会話は、タホ湖へのスキー旅行に関するものであり、2番目の会話は、タホモデルのSUVに関するものであり、3番目の会話は、タホ国有林におけるキャンプ場に関するものである。したがって、ユーザは、抜粋中の情報を利用して、いずれの特定の会話を開くかを決定してもよい。
【0049】
図7Cは、3番目の会話をユーザがクリックした後の、その会話内のすべてのメッセージを表示する概略スクリーンショットである。このスクリーンショットでは、(グループボックス346内の)「すべてのメール」カテゴリがハイライトされていることに留意されたい。これは、3番目の会話が現在、「すべてのメール」カテゴリ内に配置されていることを示す。2番目のメッセージがクエリ語「Tahoe」を含むため、2番目のサブフォームは拡張モードで表示され、「Tahoe」という語がハイライトされている。
【0050】
スペルチェック
図8は、ユーザによって作成されているメッセージ内の、スペルが間違っている可能性のある語を訂正するために、会話アシスタントがユーザと対話する方法を説明するフローチャートである。メッセージを作成した後、かつ、そのメッセージを送信する前に、ユーザは、「その他の操作」プルダウンリストをクリックして、「スペルチェック」項目を選択してもよい。この項目は、図4Bでは表示されていないことに留意されたい。その理由は、図4B内のプルダウンリストは会話レベルの操作のみを含むためである。「スペルチェック」は、メッセージ作成フォームが使用されている間のみプルダウン操作リスト内に表示される、メッセージレベルの操作である。ユーザによる「スペルチェック」操作の選択に応答して、会話アシスタントは、ステップ802において、作成されたメッセージを会話管理システムに送信し、次に、作成されたメッセージのスペルチェックされたコピーと、表示命令とを受信する。代替の実施形態では、スペルチェッカーに関連してここで説明する、会話管理システムによって実行される動作は、会話アシスタントによって、またはローカルクライアントアプリケーションによって、ローカル辞書を使用して実行される。表示命令に基づいて、会話アシスタントは、ステップ804において、メッセージ内のスペルが間違っている可能性のある語のそれぞれをハイライトし、ステップ806において、ハイライトされたそれぞれの語に、システムにより生成された候補となる語のリストを関連付け、ステップ808において、独立した閲覧ウィンドウ内に、フォーマットし直されたメッセージを表示する。ユーザが閲覧ウィンドウ内で特定のハイライトされた語を選択すると、会話アシスタントは、ステップ810において、ユーザが選択した語をスペル訂正ウィンドウ内に配置し、そのウィンドウの隣に、候補となる代替語のリストを添付する。(代替語は、1つまたは複数の語を含んでもよいことに留意されたい。)会話アシスタントは、次に、ステップ812において、スペル訂正ウィンドウ内の、スペルが間違っている語を、候補リスト内のユーザが指定した代替語を使用して更新する。会話アシスタントは、さらに、ステップ814において、スペル訂正ウィンドウを、ユーザが指定した方向に拡張してもよく、それにより、ユーザは、ステップ816において、スペル訂正ウィンドウ内で2つ以上の語を修正することが可能になる。
【0051】
図9Aのスクリーンショットは、ユーザがS4への返信メッセージ817を作成したことを除き、図6Cに示した会話と同じものを示している。メッセージを送信する前に、ユーザはスペルチェックを実行することを決定する。したがって、ユーザは、「その他の操作」プルダウンリストをクリックし、次に、「スペルチェック」項目818を選択する。会話アシスタントは、それに対応して、作成されたメッセージを会話管理システムに送信し、次に、独立した閲覧ウィンドウ内にスペルチェック結果を表示する。一部の実施形態では、スペルチェック結果は、ユーザがメッセージを作成していたのと同じウィンドウ内に表示される。実質的には、スペルチェッカーに関連付けられた特定の機能の切り換え、およびスペルが間違っている可能性のある語のハイライトを除き、表示は概して同じままである。この実施形態が有する追加の利点は、メッセージの作成時にユーザに提供されたのと同じ視覚的背景内で(そのような背景を有さない独立した新しいウィンドウがユーザに提示されることなしに)、ユーザがスペルチェックを実行することができるということである。
【0052】
図9Bは、スペルチェックプロセスのさまざまな段階における、3つの独立した閲覧ウィンドウを含むスクリーンショットを示す。最初のウィンドウ820は、メッセージのスペルチェックされたコピーを含む。特に、スペルが間違っている可能性のある3つの語821、823、および825が、ウィンドウ内でハイライトされている。2つ目の語823をユーザがクリックした後は、2つ目の閲覧ウィンドウ830内に示すように、「Delying」という語がスペル訂正ウィンドウ832内に組み込まれる。さらに、システムにより生成された候補となる語のリスト834が、スペル訂正ウィンドウの下または隣に表示される。ユーザは、次に、スペルが間違っている語「delying」を置き換えるために、3つ目の置換語「delaying」を選択する。訂正された語「delaying」の前に「temporarily」という語を追加したい場合、ユーザは、3つ目のウィンドウ840内に示されているように、左向き矢印841をクリックし、閲覧ウィンドウのポインタを、スペルが間違っている語「delying」の前の位置に配置し、次に、「temporarily」という語を入力してもよい。最後に、スペルが間違っているすべての語を訂正した後で、ユーザは「完了」ボタン845をクリックし、それによりメッセージはS4に送信される。
【0053】
会話サーバ
図10〜図19は、前述の会話サーバ102の実施形態を説明するための補助となり得る。会話サーバ102の一実施形態を、図10に示す。会話サーバ102は、会話エンジン1002と、アップデータエンジン1004と、メッセージインデックス1006と、クエリエンジン1008と、メッセージデータベース1010と、1つまたは複数の補助サービスサーバ1012と、スペルチェッカー1014と、SMTP1016とを含む。
【0054】
会話エンジン1002は、通信ネットワーク106との接続を経由した、会話アシスタント110からの要求と、会話アシスタント110への応答とを処理する。通信ネットワーク106は、インターネット、1つまたは複数のローカルエリアネットワーク(LAN)、1つまたは複数のワイドエリアネットワーク(WAN)、その他のタイプのネットワーク、またはそのようなネットワークの組み合わせを含んでもよい。会話エンジンは、さらに、補助サービスサーバ1012およびスペルチェッカー1014などの、さまざまな補助サービスにも接続される。クエリエンジン1008は、会話エンジン1002、メッセージインデックス1006、およびメッセージデータベース1010に接続される。アップデータエンジン1004は、会話エンジン1002とメッセージインデックス1006との間、および会話エンジン1002とメッセージデータベース1010との間に接続される。SMTPゲートウェイ1016は、会話エンジン1002と通信ネットワーク1006との間に接続される。図10は、会話サーバ102を複数の別々のアイテムとして示しているが、この図は、本明細書で説明する実施形態の構造的概略を示すことよりも、むしろ、会話サーバ102内に存在してもよいさまざまな特徴の機能的説明を示すことを意図している。実際には、当業者によって理解されるように、別々に示されているアイテムが組み合わされてもよく、いくつかのアイテムは分離されてもよい。例えば、図中で別々に示されているいくつかのアイテムは、単一のサーバ上に実装されてもよく、単一のアイテムが、1つまたは複数のサーバによって実装されてもよい。会話サーバ102内の実際のサーバの数、およびそれらの間で特徴が割り当てられる方法は、1つの実装と別の実装とで異なるであろうし、ピーク利用期間中および平均利用期間中にシステムが処理しなければならない電子メールトラフィックの量に部分的に依存してもよい。
【0055】
上で簡単に述べたように、会話エンジン1002は、通信ネットワーク106との接続を経由して、会話アシスタント110からの、メッセージに関連するさまざまな要求に応答して、会話ベースの応答を返してもよい。SMTPゲートウェイ1016も通信ネットワーク106に接続されてもよいが、SMTPゲートウェイ1016は、メッセージの受信および送信に、より直接的に関与してもよい。一部の実施形態では、SMTPゲートウェイ1016は、例えば、シンプル・メール・トランスファー・プロトコル(Simple Mail Transfer Protocol(SMTP))を使用してメッセージを送信および受信する。SMTPゲートウェイ1016は、新しいメッセージを通信ネットワーク106から受信し、そのメッセージをさらなる処理のために会話エンジン1002に送信してもよい。さらに、SMTPゲートウェイ1016は、会話サーバ1002からメッセージを受信し、次に、それらのメッセージを、メッセージ内で指定された受信者アドレスに(通信ネットワーク106を経由して)送信する。
【0056】
会話エンジン1002は、さらに、作成中であってもよいメッセージのスペルチェックのための要求も処理してもよい。会話エンジン1002は、チェックされるべきテキストの部分を、スペルチェックのために、スペルチェッカー1014に送信する。スペルチェッカー1014は、スペルが間違っている可能性があるとして識別されたテキストの識別情報を含む情報を返す。一部の実施形態では、スペルチェッカー1014は、スペルが間違っている可能性があるとして識別されたテキストのための、候補に関する情報を提供する。一部の実施形態では、この情報は、後続の処理のために、会話アシスタント110に送信される。
【0057】
1つまたは複数の補助サービスサーバ1012は、追加のサービスを会話エンジン1002に提供する。一部の実施形態では、補助サービスサーバ1012は、迷惑メール検出モジュールを含む。迷惑メール検出モジュールの動作は、図11を参照して以下で説明する。一部の実施形態では、補助サービスサーバ1012は、電子メールメッセージに添付されたファイルの効率的な記憶および取り出しを管理する、添付ファイル管理モジュールを含む。
【0058】
受信されたメッセージを処理するための実施形態を、図11に示す。メッセージは、受信され、会話に割り当てられ、インデックスされ、1つまたは複数の属性が割り当てられて、保存される。最初に、メッセージは、例えばSMTPゲートウェイ1016によって受信され、そこでいくらかの加工および処理が行われもよく、次に、会話エンジン1002に渡されてもよい(ステージ1102)。会話エンジン1002は、メッセージのためのメッセージ識別子を生成してもよい。メッセージ識別子は、1つのメッセージを別のメッセージから区別するために使用されてもよい。一実施形態では、識別子は、1つまたは複数の部分から構成される、Nビットの数である。例えば、一実施形態では、メッセージ識別子は、Yビット(例えば、32ビットまたは48ビット)のタイムスタンプと、メッセージ内容の64−Yビットハッシュとからなる、64ビットの数であってもよい。ハッシュは、大きな領域から小さな領域に値をマッピングする数学関数である。当業者は、メッセージを相互に区別するための十分な情報を提供するメッセージ識別子の、多くの異なる作成方法があることを理解するであろう。
【0059】
会話エンジン1002は、次に、メッセージをその構成部分へ、構文解析してもよい(ステージ1104)。これらの部分は、送信者のアドレス、1つまたは受信者アドレス、メッセージの件名、前述のRFC2822(2001年4月)内に記載されている「References:」フィールド、RFC2822内に同様に記載されている「In−Reply−To:」フィールド、メッセージの内容、または、メッセージ内に含まれてもよいその他の任意の情報を含んでもよい。メッセージが受信された後、かつメッセージの構文解析の前または後に、メッセージは、迷惑メール検査モジュールに渡されて(ステージ1105)、メッセージが迷惑メール基準に一致するかどうかが判定される。一部の実施形態では、迷惑メール検査モジュールは、他のメッセージ処理と非同期に、かつ並列に動作する。一部の実施形態では、迷惑メール基準は、ユーザが読むことを希望する見込みがない、求められていないメッセージである可能性があるかどうかを判定することを意図したものである。
【0060】
構文解析されたメッセージは、メッセージデータベースに追加される(ステージ1106)。一実施形態では、メッセージは、メッセージデータベースに追加され、その後は修正されることはない(ただし、削除についての修正は除くことがある)。
【0061】
メッセージの構文解析中に抽出されたメッセージの部分のいくつかまたはすべては、受信されたメッセージが属する会話(存在する場合)の判定を補助するために使用されてもよい(ステージ1108)。例えば、メッセージの件名が、同じ件名を有する他のメッセージと比較されてもよく、その理由は、会話内のメッセージは同じ、またはほぼ同じ件名を有する可能性があるためである。適合する会話が見つからない場合、メッセージは、新しい会話に関連付けられる。
【0062】
会話の関連付けが行われた後、メッセージは検索のためにインデックスされる(ステージ1110)。一実施形態では、ヘッダ情報の部分に加えて、メッセージのテキストのすべてがインデックスされる。一部の実施形態では、メッセージボディ内の「ノイズワード」(例えば、「the」、「a」、「or」などの単語)はインデックスされないが、メッセージの関連部分内の他のすべてのテキストはインデックスされる。検索される可能性があるメッセージの部分はインデックスされなければならないことを、当業者は理解するであろう。以下に記載するように、一部の実施形態では、メッセージに関連付けられた属性に関する情報が、メッセージ処理の後のステージにおいてインデックスに追加される。
【0063】
次に、初期属性の組がメッセージに割り当てられる(ステージ1112)。これらのタイプの属性は、例えば、メッセージが新しいことを示すために、受信されたメッセージに「未読」のラベルを付けること(これは通常、メッセージがまだ表示されておらず、既読の印も付けられていないことを意味する)を含んでもよい。ユーザにより送信されるメッセージ以外の、メッセージに初期割り当てされる別の属性は、「受信トレイ」属性である。各メッセージに初期割り当てされる別の属性の組は、同じ会話内の他のメッセージ(存在する場合)に関連付けられるユーザ定義の属性である。会話内の他のメッセージに関連付けられたユーザ定義の属性は、図18を参照して以下に記載する会話データベースを検索することにより判定される。その他の属性も、メッセージに初期割り当てされてもよい。メッセージに関連付けられた属性は、メッセージデータベースを検索して、類似した属性を有するメッセージを取得するために使用されてもよい。例えば、「未読」のラベルが付けられたすべてのメッセージを検索するために、検索が実行されてもよい。さらに、会話の属性がメッセージに追加されてもよく、その理由は、一実施形態では、メッセージはその会話の属性を継承するためである。
【0064】
一部の実施形態では、メッセージに関連付けられる属性は、必ずしも会話内のすべてのメッセージではなく、個別のメッセージに関連付けられる属性を含んでもよい。例えば、「削除の印付き」属性(「ゴミ箱」属性と呼ばれることもある)は、会話内の個別のメッセージに関連付けられてもよく、その一方で、同じ会話内の他のメッセージには関連付けられなくてもよい。削除の印付きメッセージは、依然としてシステムによって記憶され、依然として会話に関連付けられているが、対応する会話が表示される際に、通常は表示されない。「削除の印付き」属性を有するメッセージをユーザが見ることを可能にするために、1つまたは複数の特別な表示が使用される。そのような表示は、メッセージを「復旧」する機会をユーザに提供する。他方、一部の実施形態では、ユーザ定義ラベルが会話に関連付けられた場合、会話内のすべてのメッセージにそのラベルが関連付けられる。その他の一部の実施形態では、ユーザ定義ラベルが会話に関連付けられた場合、事前定義された基準を満たす、会話内のすべてのメッセージ(例えば、削除の印付きメッセージ以外のメッセージ)にそのラベルが関連付けられる。
【0065】
次に、ユーザが設定済みであってもよいユーザ定義フィルタがあれば、メッセージに適用される(ステージ1114)。それぞれのユーザ定義フィルタは、1組のフィルタ条件と、1組の動作とを含む。フィルタ条件は、どのメッセージがフィルタに一致するかを定義し、動作は、メッセージに追加される、またはメッセージから削除されるラベルを指定する動作を含む。フィルタ条件は、送信者、受信者、メッセージ件名内のテキスト、メッセージ内のテキストなどに関する基準を含んでもよい。一部の実施形態では、動作は、「受信トレイから削除」(すなわち、メッセージから「受信トレイ」ラベルを削除(存在する場合))、メッセージにシステムラベル(カテゴリと呼ばれることもある)を追加、およびメッセージにユーザ定義ラベルを追加することを含んでもよい。例えば、フィルタは、特定の語または語の組み合わせを有するすべてのメッセージに、「ゴミ箱」ラベルがラベル付けされることを指定してもよい。別のフィルタは、メッセージ内の任意の位置に「Lake Tahoe」という語が現れる場合、そのメッセージに「Vacation」ラベルが追加されることを指定してもよい。
【0066】
一部の実施形態では、ステージ1112および1114は、処理中のメッセージへのラベルの割り当てに関する、ということが留意されてもよい。ステージ1112および1114の実行時、またはその頃において、迷惑メール検査モジュール(ステージ1105)からの結果が取得される。迷惑メール検査モジュールが、メッセージを迷惑メールとして分類した場合、「迷惑メール」ラベルがメッセージに割り当てられ、相いれないラベル(例えば、「受信トレイ」または「ゴミ箱」)があればメッセージから削除される。
【0067】
メッセージに割り当てられるラベルの組が設定された後は、会話エンジン1002内のインデックスおよび特定のテーブルが、メッセージに割り当てられたラベルの組を反映するように更新される(ステージ1116)。インデックスは、メッセージに割り当てられたラベルを示す情報を追加することによって更新される。結果として、それらのラベルのそれぞれについてのインデックス検索は、処理中の現在のメッセージを含む、メッセージのリストを生成するようになる。さらに、会話エンジン内の少なくとも1つのテーブルまたはデータベースが、処理中の現在のメッセージに割り当てられたラベルの組を示すように更新される。これは、図18を参照して、以下で説明する。
【0068】
最後に、メッセージの送信者に確認応答が送信されてもよい(ステージ1118)。一部の実施形態では、確認応答が送信されてもよく、他の実施形態では、確認応答は送信されなくてもよい。
【0069】
図11は、ステージを特定の順序で示しているが、ステージの順序を不当に制限することを意図するものではない。他の実施形態では、ステージは異なる順序であってもよい。例えば、メッセージのインデックスを行う前に、メッセージデータベースにメッセージが追加されてもよく、したがって、ステージ1114の後にステージ1110が続いてもよい。当業者は、ステージのさまざまな並べ換え方法を理解するであろう。
【0070】
会話への各メッセージの関連付け
図12を参照して、メッセージがどのようにして会話に対応付けられてもよいか(ステージ1106)を、以下にさらに詳細に記載する。メッセージが構文解析(図11のステージ1104)された後で、構成部分の一部は、候補となる会話のための検索クエリを構築するために使用されてもよい(ステージ1202)。例えば、会話は、時間情報、送信者情報、件名情報、ヘッダ内のその他の情報、システムにより提供される情報、またはそれらの任意の組み合わせに基づいて関連付けられてもよい。一部の実施形態では、メッセージの件名を、「References:」および/または「In−Reply−To:」フィールドとともに使用して、検索クエリを構築してもよい。他の実施形態では、メッセージの送信者、または受信者を検索クエリ内に含む。当業者は、現在のメッセージに関連付けられてもよいメッセージを生成するための、多くのさまざまな検索クエリを理解するであろう。
【0071】
検索クエリが、以前に記憶されたメッセージに対して適用され、候補となるメッセージが受信される(ステージ1204)。メッセージ、またはメッセージに関する情報が調べられて、現在のメッセージに最もよく一致するメッセージ(存在する場合)が判定される(ステージ1206)。そのメッセージが属する会話が、現在のメッセージが属する会話である可能性がある。現在のメッセージが属する会話を判定するために、多くの異なる方法が採られてもよい。一方法では、現在のメッセージの件名を使用してもよい。同じ件名を有するメッセージは、同じ会話に属する可能性がある。したがって、現在のメッセージの件名を使用するクエリが構築されてもよい。例えば、着信メッセージが件名「今日の昼食はどこに行きましょうか?」を有する場合、この現在のメッセージが属する会話(存在する場合)は、同じ件名を有する1つまたは複数のメッセージを含む可能性がある。件名を比較する場合、比較を実行する前に件名をノーマライズするのが望ましいことがある。一部の実施形態では、件名のノーマライズは、一部のシステムによって件名に一般に追加される、「Re:」および「Fwd:」などのプレフィクスを削除することを含む。
【0072】
ただし、件名のみではなく、それ以上を調べるのが望ましい場合がある。2つのメッセージが同じ件名を有し、しかし一方は他方よりもはるかに前に受信された場合、それらは同じ会話の一部ではない可能性が比較的高い。例えば、件名「今日の昼食はどこに行きましょうか?」を有する2つのメッセージが、1か月間隔たって受信された場合、それらが同じ会話の部分である見込みはない。したがって、本発明の一実施形態では、現在のメッセージと、候補となる会話からのメッセージとの、ノーマライズされた件名が一致する場合、メッセージの日付/時刻値の検査が望ましいことがある。
【0073】
メッセージを会話に照合する場合、受信者、メッセージ内容の部分、送信者のドメインアドレス、またはその他の要素などの、その他の要素が考慮されてもよい。当業者は、新しいメッセージが属する会話を判定するための、多くの異なる方法があることを理解するであろう。現在のメッセージが、十分に一致するメッセージと照合されたら、一致するメッセージに関連付けられた会話が、現在のメッセージに関連付けられてもよい(ステージ1206)。他方、十分に一致するメッセージが検出されない場合(したがって、会話が検出されない場合)は、新しい会話識別子がメッセージに関連付けられる(ステージ1206)。
【0074】
一部の実施形態では、会話識別子は、会話内で受信された最初のメッセージから作成されてもよい。例えば、最初のメッセージの、システムにより提供されるメッセージ識別子(送信または受信システムのいずれかによって提供される)が、会話識別子としての役割を果たしてもよい。後続のメッセージは、その後、会話識別子としての役割を果たすようになった、このメッセージ識別子に関連付けられる。当業者は、会話識別子を提供するために使用されてもよい、最初のメッセージのさまざまな特徴を理解するであろう。一部の実施形態では、複数の会話に同じ会話識別子が割り当てられないように、特徴は、値が最初のメッセージに固有であるという確信をいくらか提供する(provide some comfort)ものでなければならない。
【0075】
前述のように、現在のメッセージが(既存のまたは新たに作成された)会話に関連付けられた後は(ステージ1106)、初期属性が追加される(ステージ1108)。これらの初期属性を追加(ステージ1108)するための一実施形態は、図13を参照することによって、よりよく理解されるであろう。最初に、メッセージの送信者が調べられてもよい。現在のメッセージの送信者が、ユーザ(そのユーザのためにこのメッセージ処理が実行されている)ではない場合、現在のメッセージは、そのユーザに対して、他の誰かによって送信された可能性が高い。したがって、ステージ1302において、現在のメッセージの送信者がユーザではないことが判定された場合、「受信トレイ」という初期属性(「受信トレイ」ラベルとも呼ばれる)が、現在のメッセージに関連付けられてもよい(ステージ1304)。「受信トレイ」という属性は、ユーザに対して送信されたメッセージを識別するために使用されてもよい。例えば、一部の実施形態では、「受信トレイ」属性を有するメッセージの検索が、ユーザのための「受信トレイ」表示の生成において使用される。
【0076】
本明細書中では、用語「属性」および「ラベル」は、区別なく使用される。さらに、メッセージに特定の属性を「関連付ける」ことと、特定の属性またはラベルをメッセージに「印付ける」こととは、同じまたは同等の操作であると見なされる。
【0077】
現在のメッセージは新しい可能性が高いため、ユーザはこのメッセージを以前に見たことがない可能性も高い。したがって、それを示す「未読」属性が、現在のメッセージに関連付けられてもよい(ステージ1306)。当業者は、同じ結果を実現するために、メッセージ属性が多くの方法で実装されてもよいことを理解するであろう。例えば、事前定義された値が「受信トレイ」を表してもよい。それらの属性に基づいて、所望の属性を有するメッセージが検索可能であれば十分である。その他の属性もメッセージに関連付けられてもよい。属性は複数の形態で考慮されてもよいが(Attributes may be thought of in a plurality of forms)、区別よりも、特定の属性を検索する機能の方がより重要である。属性は、「受信トレイ」、「ゴミ箱」、「迷惑メール」、「すべてのドキュメント」、および「未読」などの、システム定義属性を含んでもよい。一部の実施形態では、特定のシステム属性は相互排他的であってもよい(例えば、「受信トレイ」、「ゴミ箱」、および「迷惑メール」)。属性は、本明細書でカテゴリと呼ばれることもある、ユーザ定義属性も含んでいてもよい。
【0078】
(ステージ1302において判定されるように)ユーザが処理中のメッセージの送信者であった場合は、または、「未読」などの任意の適用可能なシステム属性がメッセージに追加(ステージ1306)された後は、会話に属する追加の属性がメッセージに追加される(ステージ1307)。
【0079】
特定のフィルタ基準が調べられて、着信メッセージに対して適用されてもよい(ステージ1308)。一実施形態では、ユーザは、所定の条件が満たされた場合に受信メッセージに属性を適用するフィルタを設定してもよい。別の実施形態では、システムが1つまたは複数の事前定義されたフィルタを受信メッセージに適用してもよい。
【0080】
現在のメッセージがフィルタ基準に一致する場合、フィルタに従って、メッセージに属性が適用されてもよい(ステージ1310)。一実施形態では、特定のメッセージが「受信トレイ」内に配置されないように、ユーザがフィルタを設定することを可能にするためのツールを、システムが提供する。言い換えると、このフィルタは、「受信トレイ」属性がメッセージから除去されるようにする。別の実施形態では、現在のメッセージは、ユーザに対象分野(1つまたは複数の会話が関連していてもよい)を示すラベルなどの、特定のユーザ定義属性に関連付けられてもよい。例えば、着信メッセージは、ラベル「食物」を有する会話に関連付けられてもよく、次に「食物」ラベルが現在のメッセージに関連付けられる。一般に、メッセージは、そのメッセージが関連付けられている会話のラベルを継承する。複数のフィルタが受信メッセージに適用されてもよいため、新しく受信されたメッセージおよびそれらが関連付けられる会話は、2つ以上のユーザ定義ラベルに関連付けられてもよい。
【0081】
別の実施形態では、ユーザは、スヌーズ条件を会話に関連付けてもよい。一部の実施形態では、スヌーズ条件が会話に関連付けられるのは、それを行うようにユーザがシステムに明確に指令した場合である。一部の実施形態では、スヌーズ条件が会話に関連付けられるのは、会話内のメッセージにフィルタが一致した場合である。スヌーズ条件は、スヌーズ条件が適用されている会話内に、新しいメッセージが受信された場合に、特定の動作が実行されるように指定するものである。例えば、スヌーズ条件は、会話内の新しいメッセージに「受信トレイ」ラベルをシステムが関連付けるのを防止してもよい。より具体的には、ユーザは、特定のトリガ条件が満たされない限り、会話内の新しいメッセージがユーザの受信トレイ内に配置されるのを防止するスヌーズ条件を、(直接的に、またはフィルタの動作を介して)会話に関連付けてもよい。そのようなトリガ条件の1つは、(唯一の一次受信者として)ユーザに直接宛てられた着信メッセージであってもよい。別のそのようなトリガ条件は、ユーザまたはシステムによって選択された期間の経過であってもよい。さらに他のトリガ条件は、指定された単語または語句を含む受信メッセージであってもよい。この場合、スヌーズ条件を満たすメッセージが受信されると、スヌーズ条件は会話から削除され、着信メッセージに「受信トレイ」ラベルが印付けられる。一部の実施形態では、会話内の他のメッセージに「受信トレイ」ラベルを追加するなどの、追加の動作も行われてもよい。別の実施形態では、「未読」ラベルを有する会話内のすべてのメッセージに、「受信トレイ」ラベルがラベル付けされる。したがって、「受信トレイ」の検索によって、この会話が返される。一部の実施形態では、事前定義された事象または条件が発生するまで、会話に関連付けられた新しいメッセージに「受信トレイ」ラベルが印付けられるのを防止する、スヌーズフィルタを生成することによって、スヌーズ条件が会話に関連付けられる(事前定義された事象または条件が発生した後は、スヌーズフィルタは削除されるか、または修正される)。
【0082】
受信メッセージに適用されてもよい別のタイプのフィルタは、望ましくないメッセージを識別して、それらのメッセージに「迷惑メール」ラベルを印付ける(すなわち、そのようなメッセージに「迷惑メール」属性を関連付ける)、「迷惑メール」フィルタである。
【0083】
図14は、会話の属性を修正するための一実施形態を説明する。会話の属性は、会話または会話に関連付けられた着信メッセージが、フィルタ基準に一致する場合に修正されてもよい。会話の属性は、さらに、特定のユーザ定義属性を会話が有するべきであることをユーザが指示した場合も、修正されてもよい。例えば、ユーザは、特定の会話が「食物」カテゴリに関連付けられるべきであることを指定してもよい。そのような場合、会話(およびその各メッセージ)には、「食物」属性に関連付けられるようにするために、「食物」ラベルが印付けられる。ユーザは、さらに、会話に削除のための印が付けられるように指定してもよい。
【0084】
いくつかの点で、ユーザ定義属性は、概念的に、フォルダになぞらえることができる。しかし、本発明の実施形態では、会話が、複数のユーザ定義属性に関連付けられることが可能である。一部の実施形態では、新しい属性が会話に関連付けられた場合、会話内のすべてのメッセージに新しい属性が印付けられる。
【0085】
図14を参照すると、会話の特定の属性が修正されるべきである場合、検索が構築されて(ステージ1402)、会話が見つけられる(ステージ1404)。会話が見つかった後は(ステージ1404)、会話の属性が修正されてもよい(ステージ1406)。ステージ1402、1404、および1406を実現するために使用される特定の機構は、属性を会話に関連付けるために使用される機構に依存する。一部の実施形態では、属性は、会話ベースで会話に関連付けられる。例えば、会話エンジンは、それぞれの特定の会話に関連付けられた属性のリストを維持してもよい。それに代えて、又は加えて、会話エンジンは、それぞれの定義済み属性を、その属性が印付けられたすべての会話にマッピングする、インデックスを維持してもよい。あるいは、一部の実施形態では、会話に関連付けられた属性は、会話内の個別のメッセージに関連付けられてもよい。そのような実施形態では、会話エンジンは、それぞれの定義済み属性を、その属性が印付けられたすべてのメッセージにマッピングするインデックスを維持してもよく、さらに、各メッセージを、そのメッセージに関連付けられた会話にマッピングするための、テーブルまたはその他の機構も維持してもよい。
【0086】
本発明の多くの機能では、メッセージではなく、会話が、情報の基本単位として使用される。例えば、「受信トレイ」は、会話のリストをユーザに提示する。本発明の一部の特徴では、ユーザの電子メールアカウント内の、複数の別個の会話表示内にリストされるべき会話を識別するために、検索が使用される。会話の検索、および識別された会話の表示の生成について、図15を参照して次に説明する。最初に、検索クエリが受信される(ステージ1502)。検索クエリは、ユーザにより指定されたもの、または(例えば、ユーザが「受信トレイ」アイコンをクリックしたのに応答して)システムにより生成されたものであってもよい。検索クエリは、複数の要素に基づいていてもよい。検索クエリ内の検索語は、単語または単語の組み合わせの形態で、ユーザにより指定されてもよい。例えば、「ベーグル」および「安価」という単語を含むメッセージをユーザは検索してもよく、それにより、関連する会話があれば返される。検索クエリは、特定のユーザ操作に応答して、システムによって生成されてもよい。例えば、「受信トレイ」の表示をユーザが希望した場合、システムにより生成された検索クエリが、属性「受信トレイ」を有する会話を検索してもよい。
【0087】
検索クエリ内では、検索可能な語の任意の組み合わせが使用されてもよい。上述のように、検索可能な語は、メッセージのテキスト、メッセージまたは会話に関連付けられた任意の属性、あるいはメッセージに関連付けられたヘッダ情報を含んでもよい。一実施形態では、検索クエリをメッセージのデータベースに適用すると、1組のメッセージが返される(ステージ1504)。図10を手短に参照すると、これは、例えばクエリエンジン1008に検索クエリを送信することにより行われてもよい。クエリエンジン1008は、検索クエリをメッセージインデックス1006に適用してもよく、メッセージインデックス1006はメッセージのリストを返してもよい。ステージ1504において、メッセージのリストが受信されてもよい。望ましい場合は、他の実施形態が、1組のメッセージ識別子、ドキュメント識別子、メッセージのすべてまたは部分、あるいはそれらの任意の組み合わせを戻すことを含む、多くの異なる方法でメッセージのリストを返してもよい。
【0088】
一部の実施形態では、検索は、個別のメッセージに対してではなく、全体としての会話対して実行される。したがって、クエリが第1および第2のクエリ語を含み、その一方が最初のメッセージ内で検出され、もう一方が同じ会話の2つ目のメッセージ内で検出された場合、その会話はクエリに関連していると見なされ、したがって、検索結果に含まれる。例えば、会話の中で、最初のメッセージは昼食の場所の案を求め、後続のメッセージは、特定のレストランの名前を挙げながらも、最初のメッセージのテキストは含んでいない場合を考える。ユーザが、特定のレストランと昼食とについて議論されている会話を見つけることに興味がある場合、検索は、会話内のメッセージ境界が存在しないかのように、会話全体のテキストに対して適用されるならば、望ましい結果を生成する可能性がより高くなる。
【0089】
会話は、ステージ1504において返されるメッセージの組に関連付けられている。関連付けられている会話を識別するために、多くの方法が使用されてもよい。ステージ1504において返された組からメッセージが選択されると(ステージ1506)、メッセージが属する会話が識別される(ステージ1508)。一実施形態では、各メッセージを会話に対応させるデータ構造が維持されてもよい。その場合は、特定のメッセージ識別子に関連付けられたデータ構造エントリの検査によって、メッセージが属する会話が識別される。結果の組として返される会話の数は、事前定義された数に制限されてもよい。その場合、十分な数の会話が識別されるまで、メッセージの組の処理が継続されて、結果が返される。他方、返されるメッセージの組に関連付けられたすべての会話が識別されるが、サブセットのみが返されてもよい。
【0090】
返された結果のすべてまたは一部が属する会話を識別することによって、会話のリストが作成されたら(ステージ1510)、会話情報が、要求者に返すためにフォーマットされる(ステージ1512)。フォーマットステージ1512では、識別された会話に関連付けられた複数の異なるタイプの情報がフォーマットされてもよく、その詳細は1つの実施形態と別の実施形態とで異なる。一部の実施形態では、フォーマット情報は、ユーザへの会話情報の表示のために会話アシスタント110によって認識されるタイプである。
【0091】
一部の実施形態では、ステージ1510において生成される会話リスト内の会話は、事前定義された規則または規則の組に従って各会話に割り当てられた日付/時刻値に基づき並べられる。上述のように、一部の実施形態では、会話リスト内の各会話には、会話リストを生成するために使用された検索基準に一致する最新のメッセージの日付/時刻に等しい日付/時刻が割り当てられ、会話リスト内の会話は、これらの割り当てられた日付/時刻値に従って(例えば、逆時系列順に)並べられる。当業者は、会話リスト内の会話を並べて表示するための、その他のさまざまな方法があることを理解するであろう。
【0092】
一部の実施形態では、(ステージ1512において生成された)会話リストを表すフォーマットされた会話データは、会話リスト内の各会話に含まれるメッセージ数のカウントを含む。一部の実施形態では、各会話のメッセージカウントは、会話内に含まれているメッセージの数をユーザに示すために、会話アシスタント110によって表示される。
【0093】
一実施形態では、会話リスト内の各会話について、(例えば、ステージ1512の間に)簡略会話ヘッダが作成される。会話ヘッダは、会話内のメッセージの送信者のリストを識別してもよい。このリストは、会話内の送信者のすべてまたはサブセットを含んでもよい。一部の実施形態では、送信者のリストは、ユーザによって現在「未読」としてラベル付けされている(会話内の)メッセージを送信した送信者を、視覚的に識別するようにフォーマットされてもよい。別の実施形態では、会話アシスタント110は、これらの送信者を、他の送信者とは異なるフォーマットで表示する。例えば、「未読」メッセージの送信者は、太字の、またはハイライトされたテキストを使用して識別されてもよい。
【0094】
別の実施形態では、(簡略会話ヘッダ内の)メッセージ送信者のリストは、ユーザの名前またはアドレスを自己参照識別子に置き換えることによって処理されてもよい。結果として、会話についての送信者リストが表示される際に、ユーザ以外の送信者に類似した、ユーザの名前または他の識別情報を表示する代わりに、自己参照識別子(例えば、「me」)が表示される。その他のタイプの自己参照識別子が、画面を見ているユーザ(the viewing user)を、他のユーザから区別するために使用されてもよい。
【0095】
別の実施形態では、会話リスト内の各メッセージのための簡略会話ヘッダは、ユーザがメッセージをどのように受信したかを示す情報を含んでもよい。言い換えると、その情報は、ユーザにどのようにしてメッセージが送信されたかを明確に識別してもよい。例えば、ユーザにはメッセージが直接送信されてもよく、またはユーザにはメッセージがCcで送信されてもよく、またはユーザにはメッセージがBccで送信されてもよく、またはユーザはメッセージ送信先の配布リストの一部であってもよい。ユーザがメッセージを受信した、これらのさまざまな方法のうちの1つまたは複数が、ユーザに示されてもよい。例えば、ユーザにメッセージが直接送信された場合、それを示すための画像的表示(「>」など)が、ユーザに会話を提示する際に使用されてもよい。
【0096】
一部の実施形態では、会話リスト内の各メッセージのための簡略情報ヘッダは、会話内容の抜粋を含み、抜粋は、検索語に一致するテキストを太字で表示するための情報を含み、さらに、一致するテキストを囲む、通常のフォントでフォーマットされたテキストも含む。受信トレイまたはその他のシステムカテゴリのために、会話リストが生成される場合、抜粋は、事前定義された基準に従って選択された、会話からのテキストを含む。一部の実施形態では、抜粋は、会話内の最新のメッセージの最初の部分からのテキストを含むのに対して、別の実施形態では、抜粋は、会話内容を示すように自動的に選択されたテキストを含む。
【0097】
別の実施形態では、検索クエリに一致する会話の中から、特定の会話を見るためにユーザが選択する場合、会話エンジンは、会話内のどのメッセージがクエリに一致し、どのメッセージが一致しないかを示す会話情報を生成してもよい。会話情報は、さらに、検索クエリに一致するメッセージのテキストの部分も含んでもよい。この会話情報は、ユーザへの表示のためにフォーマットされてもよい。会話情報は、拡張モードで表示するためにフォーマットされた一致するメッセージと、短縮モードで表示するためにフォーマットされた一致しないメッセージとを含んでもよい。拡張モードでは、ヘッダ情報と、内容情報と、検索クエリに一致するテキストと、検索クエリを囲むテキストとの、すべてまたは一部の、任意の組み合わせを含む、さまざまなタイプの情報がユーザに提示されてもよい。一部の実施形態では、(例えば、ユーザが「すべてのメッセージを短縮」ボタンまたはオプションを選択したことに応答して)検索クエリに一致する1つまたは複数のメッセージが短縮モードで表示される場合、そのようなメッセージのために短縮モードで表示される情報は、メッセージ内容の抜粋を含み、抜粋は、検索語に一致するテキストを太字で表示するための情報を含み、さらに、一致するテキストを囲む、通常のフォントでフォーマットされたテキストも含む。
【0098】
さらに別の実施形態では、会話情報は、特定のユーザがいつ会話に追加されたか、またはいつ会話から除去されたかを示してもよい。例えば、あるユーザが、ある時点までは会話内のメッセージに含まれていて、その後は含まれなくなった場合、1つまたは複数の後続のメッセージについての情報は、そのユーザがもはや会話の部分ではなくなったことを示してもよい。会話アシスタントは、例えば、そのユーザの名前を表示するために、まだ会話に参加しているユーザの名前を表示するために使用されるフォントとは異なるフォントを使用することによって、これを行ってもよい。会話アシスタントは、この目的のために「ゴースト(ghost)」フォントを使用してもよい。
【0099】
会話情報は、さらに、会話への新しい参加者の導入に関する情報も提供してもよい。例えば、新しい参加者を含む最初のメッセージに関する情報は、新しい参加者の名前を識別的に表示するためのフォーマット情報を含んでもよい。この情報は、会話アシスタントによってユーザに表示されてもよく、それにより、新しく追加された送信者の名前またはその他の識別情報が、太字または他の何らかの視覚的識別力のある表示フォーマットで表示されてもよい。
【0100】
会話情報は、さらに、スペルチェックに関する情報も含んでもよい。この情報は、スペルチェッカー1014が、スペルが間違っている可能性があるとして識別した語に関する指示と、正しいスペルの候補に関する情報とを含んでもよい。
【0101】
図16は、本発明の一実施形態に従ってメッセージを記憶するためのフォーマットの例を示す。メッセージは、メッセージデータベース内に記憶される場合(図11のステージ1114)、図16に示すように記憶されてもよい。メッセージデータベース1602は、例えばメッセージ1(1604)〜メッセージx(1606)(xは特定のユーザに対応するメッセージの数を表す)などの、メッセージに関する情報を記憶してもよい。一実施形態では、各ユーザのメッセージは、そのユーザに固有のメッセージデータベース1602内に記憶される。別の実施形態では、2人以上のユーザに属するメッセージが、同じメッセージデータベース1602内に記憶されてもよい。当業者は、1人のユーザのメッセージ(messages from one user)が、別のユーザに属するメッセージとして現れるのを防止するための多くの方法を理解するであろう。さらに別の実施形態では、2人以上のユーザのメッセージが、メッセージにつき1つのみの記憶エントリを使用して、メッセージデータベース1602内に記憶されてもよく、それにより、複数のユーザがメッセージの1つのコピーを参照するようになってもよい。
【0102】
一実施形態では、メッセージ(例えば、メッセージ1608)は、ヘッダ情報1612と、内容1614と、アタッチメント1616とを含んでもよい。ヘッダ情報1614は、例えば、送信者および受信者を識別する情報と、メッセージの日付/時刻値と、件名とを含む、メッセージのヘッダ情報を含んでもよい。RFC2822に記載されているような、その他の情報も、ヘッダ情報内に含まれてもよい。内容1614は、メッセージの内容を含んでもよい。内容1614は、テキストおよび/またはその他のタイプの内容(例えば、画像または写真)を含んでもよい。アタッチメント1616は、特定のメッセージに添付される任意の情報の内容であってもよい。例えば、メッセージに添付されるドキュメントは、メッセージ1610のこの部分に配置されてもよい。当業者は、メッセージ情報を記憶するためのその他の方法を理解するであろう。例えば、添付ファイルは、別の記憶構造内に記憶されてもよく、その記憶構造への参照がアタッチメント1616内に配置されてもよい。
【0103】
代替実施形態では、各会話についてのすべてのメッセージが、メッセージデータベース内の単一のレコード、ドキュメント、またはデータ構造として記憶される。
【0104】
ユーザ、メッセージおよび会話データ構造
図17は、本発明の一実施形態によるユーザデータベースおよびメッセージインデックスを示す。ユーザデータベース1702は、ユーザに関する情報を記憶してもよい。記憶される情報は、ユーザ情報1704を含んでもよい。ユーザ情報1704は、ユーザ嗜好、セキュリティ情報、または本発明のさまざまな実施形態によって使用されてもよいその他の任意の情報に関連する、さまざまなタイプのユーザ情報を含んでもよい。ユーザデータベースは、ユーザを識別するために使用される、ユーザID(1)(1706)〜ユーザID(m)(1708)(mはシステムのユーザの数を表してもよい)などのユーザ識別情報を含んでもよい。特定のユーザID(m)(1708)は、nビットの2進数などの、各ユーザのための固有の識別子であってもよい。その他のタイプのユーザ識別情報が使用されてもよい。
【0105】
一部の実施形態では、ユーザのユーザIDは、ユーザのメールアカウントに関連付けられたフィルタ、クエリ、およびラベルに関する情報を記憶するための、1組のデータ構造1720を識別するために使用される。一部の実施形態では、これらのデータ構造は、ユーザにより発行された最後のいくつかのクエリを表す情報を記憶するためのクエリキャッシュ1722と、ユーザ定義フィルタ(存在する場合)を記憶するための1組のフィルタデータ構造1724と、ユーザ定義ラベルを表す情報を記憶するためのラベルデータ構造1726とを含む。クエリキャッシュ1722内に記憶された情報により表される最近のクエリは、ユーザが会話管理システムにそれらのクエリを容易に再発行することを可能にするために、例えばグループボックス348(図3B)内で、ユーザに提示されてもよい。ユーザ定義フィルタは、会話管理システムによって、新しい各メッセージの処理中に、そのメッセージがユーザのメールアカウントに追加される際に使用される。ユーザ定義ラベルに関する、記憶された情報は、ユーザが選択したラベルを有する会話のリストをユーザが容易に要求することを可能にするために、例えばグループボックス347(図3B)内で、ユーザに提示されてもよい。
【0106】
ユーザのユーザIDは、ユーザに対応する、フルテキストおよび属性インデックス1710を識別するために使用されてもよい。フルテキストおよび属性インデックス1710は、特定のユーザに関連付けられてもよく、それにより、特定のユーザに関連付けられたメッセージのインデックスを、異なるユーザが検索することはできなくなる。フルテキストおよび属性インデックス1710は、ユーザのメールアカウント内のメッセージに関する情報を記憶し、それにより、フルテキストおよび属性インデックス1710に対して適用されるクエリは、一致するメッセージ(存在する場合)のリストを返すようになる。リストは、メッセージ識別子のリストとして返されてもよい。
【0107】
特定のメッセージについて、フルテキストおよび属性インデックス1710内に含まれる情報は、メッセージのメッセージID1712と、メッセージ1714の内容1714と、メッセージの属性1716に関する情報とを含んでもよい。メッセージID1712は、メッセージの固有の識別子である(すなわち、同じユーザのために記憶されるすべての他のメッセージに関して固有)。メッセージID1712は、メッセージデータベース1702内に記憶された特定のメッセージを参照するために使用されるnビットの数であってもよい。一実施形態では、メッセージID1712は、64ビットの数であってもよい。メッセージID1712は、タイムスタンプ情報と、メッセージID1712が参照するメッセージの内容に関連する情報とから構成されてもよい。タイムスタンプ情報は、例えばSMTPゲートウェイ1018によって、メッセージがいつ受信されたかを示す、システムにより提供されるYビット(例えば、32ビットまたは48ビット)のタイムスタンプであってもよい。メッセージの内容に関連する情報は、メッセージ内容の64−Yビットハッシュであってもよい。
【0108】
メッセージの内容は、完全にインデックスされた検索可能な語として、インデックス内に配置される。インデックス1710が、語または語の組み合わせについて検索される場合、インデックスは、語または語の組み合わせに一致するメッセージの、メッセージリスト(例えばメッセージID)を返す。特定の事前定義された条件が、一致するすべてのメッセージよりも少ないメッセージを返すように要求してもよい。別の実施形態では、インデックス1710は、クエリ内の語または語の組み合わせに一致する会話のリスト(会話ID)を返す。
【0109】
一実施形態では、フルテキストおよび属性インデックス1710内の、検索語のためのエントリは、検索語に一致する最新のメッセージが優先的に返されるように、インデックスされる各メッセージのメッセージID1712に含まれるタイムスタンプ情報に従って並べられる。例えば、インデックス1710内の、各語に対応するメッセージのメッセージIDのリストは、最新のタイムスタンプを有するメッセージIDが、より古いタイムスタンプを有するメッセージIDよりも、リスト内でより早くリストされるように並べられてもよい。他の実施形態では、各メッセージに関連付けられる日付/時刻情報は、各メッセージの受信の日付および/または時刻を示すが、日付/時刻情報はメッセージID内に組み込まれない。そのような実施形態では、インデックス1710内のエントリは、それにもかかわらず、最新の日付/時刻値を有するメッセージのメッセージIDが、より古い日付/時刻値を有するメッセージIDよりも、リスト内でより早くリストされるように並べられる。
【0110】
メッセージに関連付けられた任意の属性1716も、インデックスされる(すなわち、インデックス1710内に含まれる)。特定の属性に対するクエリが、その特定の属性に一致するメッセージを返すように、属性1716は、フルテキストおよび属性インデックス1710に追加される。ラベルまたは属性が会話に追加された場合、または会話から削除された場合、インデックス1710は、それに応じて更新される。インデックスには、各定義済みラベルまたは属性を、そのラベルまたは属性を有するすべてのメッセージ(または、他の実施形態では、会話)にマッピングする、エントリまたはデータが含まれる。したがって、会話にラベルが追加された場合、そのラベルを会話内のすべてのメッセージにマッピングするためのデータが、インデックス1710に追加される。会話からラベルが削除された場合は、そのラベルを会話内のメッセージにマッピングする、インデックス内のデータが、除去または無効化される。一部の実施形態では、会話に関連付けられた各ラベルまたは属性は、会話データベース1808(図18)内の1つまたは複数のエントリにも追加される。
【0111】
フルテキストおよび属性インデックス1710は、クエリ語を個別のメッセージID 1712にマッピングするように構成されてもよいが、メッセージIDを会話識別子にマッピングするための他のデータ構造が提供されてもよい。1つのそのようなデータ構造の組の論理図を、図18に示す。当業者は、検索クエリ語を会話または会話識別子にマッピングするための、多くの異なるデータ構造が使用されてもよいことを理解するであろう。
【0112】
前述のように、ユーザデータベース1702は、特定のユーザに関連付けられたフルテキストおよび属性インデックス1710を参照する、ユーザID1708を含んでもよい。図18に示すように、メッセージ−会話マップ1804内で、特定のメッセージID1712が特定の会話ID1802に関連付けられてもよい。メッセージ−会話マップ1804内の各エントリは、メッセージID1712を会話ID1802に関連付ける(すなわち、マッピングする)。一部の実施形態では、会話ID1804はnビットの数である。この数は、メッセージID1712によって識別されるメッセージが属する特定の会話を一意に識別する。これらの実施形態では、ユーザのメールアカウント内の各会話は、別個の会話IDを有する。
【0113】
特定の会話に関連付けられたその他のメッセージを識別するために、ユーザ会話データベース1808が使用されてもよい。そのようなデータベースは、例えば、特定の検索クエリに一致した1つまたは複数のメッセージの会話に含まれる、残りのメッセージを識別する場合に使用されてもよい。ユーザ会話データベースは、複数の会話エントリ1810を含む。各会話エントリ1810は、会話に関連付けられたメッセージのリスト(またはメッセージを表すその他のデータ構造)を記憶する。例えば、会話エントリ1812は、メッセージエントリ1816の連鎖リスト(linked list)を含んでもよい(各メッセージエントリは会話内の特定のメッセージに対応する)。連鎖リストは、例えば、会話内のメッセージに関連付けられた日付/時刻値によって並べられてもよい。例示的メッセージエントリ1816は、特定のメッセージのメッセージID1712と、ヘッダ1818と、ラベル1820とを含む。ヘッダ1818は、前述のヘッダ情報1612のすべてまたは一部を含んでもよい。ラベル1820は、メッセージに関連付けられた特定の属性を識別する情報を含んでもよい。特定のエントリ1822のメッセージID(4)1712は、メッセージデータベース1602内の特定のメッセージに関連付けられてもよい。一部の実施形態では、メッセージエントリ1816は、対応するメッセージのボディの内容を含まない。
【0114】
一部の実施形態では、図11のステージ1106で行われてもよい、新しいメッセージの特定の会話への関連付けを、メッセージデータベース1602にアクセスすることなく、補助するために、インデックス1708内の情報と会話エントリ1812内の情報とが使用されてもよい。新しく到着したメッセージに一致する可能性があるものとして、メッセージが識別された場合(図12のステージ1204)、最もよく一致するメッセージの、および、したがって、最もよく一致する会話の決定が、一致するメッセージのヘッダ1818を使用して行われてもよい。例えば、ヘッダ1818はメッセージの件名情報を含んでもよく、その件名情報は(ノーマライズされた形態で)、新しく到着したメッセージのノーマライズされた件名と比較されてもよい。ヘッダ1818内のその他の情報も、処理中の着信メッセージのヘッダ情報と比較されてもよい。一致するものとして会話が識別されたら、メッセージデータベースからメッセージを取り出す必要なしに、識別された会話についてのメッセージエントリのラベル1820内で識別される属性が、着信メッセージに適用されてもよい(図13のステージ1307)。
【0115】
メッセージが会話から削除された場合、会話エントリ1812は、会話内の他のメッセージに影響を与えることなく更新されてもよい。そのような場合、削除されるメッセージに対応する(会話エントリ1812内の)メッセージエントリ1816が、メッセージエントリの連鎖リストから削除される。したがって、メッセージはもはやその会話とは関連付けられなくなる。一部の実施形態では、メッセージ−会話マップ1804も、削除を反映するように修正される。
【0116】
前述のように、いくつかの場合には、例えば特定の属性を使用することにより、メッセージに削除の印を付け、しかし会話からは除去しないようにするのが望ましいことがある。メッセージが会話から除去されてもよいような条件になった場合は、その除去が上述のように実行されてもよい。メッセージ−会話マップ1802および会話エントリ1812からのメッセージの除去を許可してもよい条件には、メッセージに削除の印が付けられてからの一定時間の経過、ユーザによる操作、またはその他のトリガ事象が含まれてもよい。
【0117】
会話もまた、削除の印が付けられ、しかしユーザのメールアカウントからはまだ除去されていないようにされてもよい。会話がユーザのメールアカウントから永久的に除去される場合は、会話についての、メッセージ−会話マップ1802エントリが除去されてもよい。その上、会話データベース1808から、対応する会話エントリ1812が除去されてもよく、さらに、インデックス1708から、会話内のメッセージについてのインデックスエントリが除去されてもよい。
【0118】
上で示したように、別の実施形態では、フルテキストメッセージインデックス1708は、クエリに応答して、会話識別子のリストを返す。この実施形態では、メッセージ−会話マップ1802は省略されてもよい。代わりに、会話データベースが、クエリに応答した会話の処理を完了するために必要な、主要なマッピングを提供する。
【0119】
図19を参照すると、上述の方法を実装する会話サーバ102の一実施形態は、1つまたは複数の処理ユニット(CPU)1902と、1つまたは複数のネットワークまたはその他の通信インタフェース1904と、メモリ1006と、これらの構成要素を相互接続するための1つまたは複数の通信バス1908とを含む。会話サーバ102は、任意選択で、表示装置とキーボードとを含むユーザインタフェースを含んでもよい。メモリ1906は、高速ランダムアクセスメモリを含んでもよく、さらに、1つまたは複数の磁気記憶ディスクまたは光記憶ディスクなどの、不揮発性メモリも含んでもよい。メモリ1906は、CPU1902から遠く離れた場所に配置された大容量記憶装置を含んでもよい。メモリ1906は、
さまざまな基本システムサービスを処理するため、およびハードウェア依存タスクを実行するためのプロシージャを含む、オペレーティングシステム1916と、
インターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの、1つまたは複数の通信ネットワークインタフェース1904(有線または無線)を介して、会話サーバ102を他のコンピュータに接続するために使用される、ネットワーク通信モジュール(または命令)1918と、
前述のように、会話アシスタント110からの要求に応答し、会話アシスタント110に応答を提供するための、会話エンジン1002モジュールとを記憶してもよく、会話エンジン1002モジュールは、
前述のように新しいメッセージを処理するための、新メッセージ処理モジュール1920と、
前述のようにユーザのメッセージを検索するための、検索モジュール1922と(検索モジュール1922は、ユーザにより提供される入力からの検索要求を処理するためのモジュール1922と、会話アシスタント110により開始されるシステム生成検索を処理するためのモジュール1926とを含む)、
会話サーバ102から提供された情報を会話アシスタントが処理することを可能にする情報を、会話アシスタント110に提供するための、会話アシスタントローダ1928と(一部の実施形態では、電子メールメッセージを処理するためにクライアントコンピュータが最初に会話サーバ102に接続された場合、会話アシスタントローダ1928が起動され、会話アシスタント110がクライアントコンピュータにロードされる。一部の実施形態では、電子メールセッションが開始されるたびに、会話アシスタントローダ1928は会話アシスタント110をクライアントコンピュータ上にロードし、他の実施形態では、1つの電子メールセッションから別の電子メールセッションへの間で、会話アシスタント110は、クライアントコンピュータによって維持される)、
前述のように会話アシスタント110に提供されるフォーマット情報を提供するための、フォーマット応答モジュール1930と(フォーマット応答モジュール1930は、前述のように、事前定義された基準に従って会話を並べるための、会話順序付けモジュール1932と、会話アシスタント110に返される所定の数の会話を、返すことができる総数から選択するための、会話選択モジュール1034と、前述のように「未読」の印が付けられたメッセージ(すなわち、表示されていない、または既読の印が付けられていないメッセージ)を識別するための、未読/未表示メッセージの送信者識別1936と、前述のようにユーザの識別情報を自己参照情報に置き換えることに関する情報を提供するための、自己参照モジュール1938と、前述のように会話に新しく追加された受信者に関する情報を識別および提供するための、新受信者モジュール1940と、前述のようにもはや会話に参加していない受信者に関する情報を識別および提供するための、削除受信者モジュール1942と、前述のように、一致するメッセージの特定のテキストに関する情報を取得および提供するための、抜粋モジュール1944と、前述のように会話アシスタント110への送信のためにメッセージのフルテキストを取り出すための、フルテキストモジュール1946と、スペルチェッカー1014から返される情報をフォーマットするための、フォーマットスペルチェックモジュール1948とを含む)、
前述のように会話およびメッセージの属性を変更するための、属性変更モジュール1950と、
前述のように、メッセージまたは会話に削除のための印を付けて、その後、それらのメッセージまたは会話を除去するための、削除/除去モジュール1095と、
前述のようにフィルタを作成、監視、および実行するための、フィルタモジュール1954と、
ユーザがメッセージを作成し、その結果のメッセージをSMTPゲートウェイ1016に送信することを可能にする、作成/送信モジュール1956とを含んでもよい。
【0120】
スペルチェック処理および表示方法の例示的実施形態などの、上述のさまざまな特徴は、電子メッセージ通信または電子メールに限定されないことが理解されるべきである。例えば、上述のスペルチェック方法またはユーザインタフェースは、他の実施形態では、さまざまなタイプの文書(例えば、ワードプロセッシング文書)に適用されてもよく、それらの文書と組み合わせて実装されてもよい。
【0121】
以上の説明は、説明の目的のために、特定の実施形態を参照して行った。しかし、上述の具体的な説明は、開示された厳密な形態で本発明が網羅されたり限定されたりすることを意図するものではない。上記の教示を考慮すれば多くの変更および変形が可能である。実施形態は、本発明の原理とその実際的な適用例とを最もよく説明するために、そしてそれにより、当業者が、本発明およびさまざまな実施形態を、企図された特定の使用に適したさまざまな変更とともに、最もよく利用できるようにするために、選択され説明されたものである。
【特許請求の範囲】
【請求項1】
電子メッセージを処理する方法であって、
ユーザに宛てられた複数の電子メッセージを受信するステップと(各メッセージは固有のメッセージ識別子を有する)、
前記複数の電子メッセージのそれぞれを、個々の会話に関連付けるステップと(各会話は固有の会話識別子を有し、各会話は1つまたは複数の電子メッセージの組を含む)、
会話リストを所定の順序で表示するステップと(各会話は前記リスト内の単一の項目として表される)を含む方法。
【請求項2】
前記会話リストは行の組を含み、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストを少なくとも含み、前記会話リスト内の行の前記送信者リストは、対応する会話内の少なくとも1つのメッセージの、1人または複数の送信者の識別子を含み、
前記行に対応する前記会話が、第1の送信者により送信されたメッセージと、第2の送信者により送信された1つまたは複数のメッセージとを含む場合、前記表示するステップは、前記第1の送信者により送信された前記メッセージがまだ表示されていないか、または前記ユーザによって既読として印付けられていない場合に、前記送信者リスト内の前記第1の送信者の識別子を、第1の識別性のあるフォーマットで表示するステップと、前記第2の送信者により送信されたすべてのメッセージがすでに表示されたか、または前記ユーザによって既読として印付けられている場合に、前記送信者リスト内の前記第2の送信者の識別子を、第2の識別性のあるフォーマットで表示するステップとを含む、請求項1に記載の方法。
【請求項3】
前記表示するステップは、前記送信者リスト内の送信者の名前を、前記送信者によって送信されたメッセージが前記ユーザによってまだ読まれていない場合にハイライトするステップを含む、請求項2に記載の方法。
【請求項4】
前記送信者リスト内の送信者の識別子は、前記送信者が前記ユーザである場合に、固有の文字列またはアイコンで置き換えられる、請求項3に記載の方法。
【請求項5】
前記行の組の中の行は、前記ユーザが前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを識別する、受信者インジケータを含む、請求項2に記載の方法。
【請求項6】
前記ユーザが前記表示された会話リスト内の会話を選択した場合に、会話の内容を表示するステップを含み、前記表示するステップは、1つまたは複数のサブフォームを表示するステップを含み、各サブフォームは前記会話内の個々の電子メッセージに対応し、各サブフォームは、短縮表示モードと拡張表示モードとを含む、2つの表示モードを有する、請求項2に記載の方法。
【請求項7】
すでに表示されたか、または前記ユーザによって既読として印付けられている電子メッセージに対応する前記サブフォームは、前記短縮表示モードで描画され、まだ表示されていないか、または前記ユーザによって既読として印付けられていない電子メッセージに対応する前記サブフォームは、前記拡張表示モードで描画される、請求項6に記載の方法。
【請求項8】
前記メッセージ送信者および前記一次メッセージ受信者のうちのいずれかの識別子は、前記関連付けられたメッセージが、前記メッセージ送信者または前記一次メッセージ受信者による前記会話への最初の参加を構成する場合に、ハイライトされる、請求項2に記載の方法。
【請求項9】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
ユーザに宛てられた複数の電子メッセージを受信するための命令と(各メッセージは固有のメッセージ識別子を有する)、
前記複数の電子メッセージのそれぞれを、個々の会話に関連付けるための命令と(各会話は固有の会話識別子を有し、各会話は1つまたは複数の電子メッセージの組を含む)、
会話リストを所定の順序で表示するための命令と(各会話は前記リスト内の単一の項目として表される)を含むコンピュータ。
【請求項10】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、1組の行として、第2の事前定義された基準に従って決定された順序で表示するステップと(各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含む)、
前記ユーザが前記表示された会話リストから会話を選択した場合に、会話の内容を表示するステップとを含む方法。
【請求項11】
前記会話の内容を表示するステップは、1つまたは複数のサブフォームを表示するステップを含み、各サブフォームは前記会話内の個々のメッセージに対応し、各サブフォームは、短縮表示モードと拡張表示モードとを含む、少なくとも2つの表示モードを有する、請求項10に記載の方法。
【請求項12】
隠し表示モードを含む、第3の表示モードをさらに提供する、請求項11に記載の方法。
【請求項13】
個々のメッセージに対応するサブフォーム内に、会話参加者識別子リストを表示するステップと、前記個々のメッセージが、前記会話参加者識別子リスト内の個々の会話参加者が参加者である前記会話内の最初のメッセージである場合に、前記個々の会話参加者の識別子をハイライトを使用して表示するステップとを含む、請求項11に記載の方法。
【請求項14】
前記ハイライトは、太字、下線、フォント色、フォントサイズ、背景色、およびフォントタイプからなるリストから選択される1つまたは複数である、請求項13に記載の方法。
【請求項15】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、1組の行として、第2の事前定義された基準に従って決定された順序で表示するための命令と(各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含む)、
前記ユーザが前記表示された会話リストから会話を選択した場合に、会話の内容を表示するための命令とを含むコンピュータ。
【請求項16】
メッセージを検索する方法であって、
検索クエリに関連する複数の会話を識別するために、メッセージリポジトリを検索するステップと(前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージと、個々の会話識別子とを含む)、
前記識別された会話の少なくともサブセットを表す会話リストを作成するステップと、
前記会話リストから会話を選択するステップと、
前記選択された会話の第1のテキストと、前記選択された会話の第2のテキストとを区別するステップとを含む方法。
【請求項17】
前記第2のテキストは、前記検索クエリに関連している、請求項16に記載の方法。
【請求項18】
前記区別するステップは、
第1のフォーマットでの前記第1のテキストのフォーマット情報を提供するステップと、第2のフォーマットでの前記第2のテキストのフォーマット情報を提供するステップとを含み、
前記第1のフォーマットは、前記第2のフォーマットと、視覚的識別力のある様式で異なっている、請求項17に記載の方法。
【請求項19】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
検索クエリに関連する複数の会話を識別するために、メッセージリポジトリを検索するための命令と(前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージと、それぞれの会話識別子とを含む)、
前記識別された会話の少なくともサブセットを表す会話リストを作成するための命令と、
前記会話リストから会話を選択するための命令と、
前記選択された会話の第1のテキストと、前記選択された会話の第2のテキストとを区別するための命令とを含むコンピュータ。
【請求項20】
メッセージを検索する方法であって、
検索クエリに関連する少なくとも1つのメッセージをそれぞれが含む、複数の会話を識別するために、メッセージリポジトリを検索するステップと(前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージと、個々の会話識別子とを含む)、
前記識別された会話の少なくともサブセットを表す会話リストを作成するステップと、
前記会話リストから会話を選択するステップと、
前記選択された会話の第1のメッセージと、前記選択された会話の第2のメッセージとを区別するステップとを含む方法。
【請求項21】
前記第2のメッセージは、前記検索クエリに関連している、請求項20に記載の方法。
【請求項22】
前記区別するステップは、
第1のフォーマットでの前記第1のメッセージのフォーマット情報を提供するステップと、第2のフォーマットでの前記第2のメッセージのフォーマット情報を提供するステップとを含み、
前記第1のフォーマットは、前記第2のフォーマットと、視覚的識別力のある様式で異なっている、請求項21に記載の方法。
【請求項23】
前記フォーマット情報は、特定のメッセージが最初に拡張モードに関連付けられているか、または短縮モードに関連付けられているかに関係する、請求項22に記載の方法。
【請求項24】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
検索クエリに関連する少なくとも1つのメッセージをそれぞれが含む、複数の会話を識別するために、メッセージリポジトリを検索するための命令と(前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージと、それぞれの会話識別子とを含む)、
前記識別された会話の少なくともサブセットを表す会話リストを作成するための命令と、
前記会話リストから会話を選択するための命令と、
前記選択された会話の第1のメッセージと、前記選択された会話の第2のメッセージとを区別するための命令とを含むコンピュータ。
【請求項25】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、第2の事前定義された基準に従って決定された順序で、かつ1組の行として表示するステップと(各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値と、検索クエリの少なくとも1つの検索語に関連する会話情報の部分とを少なくとも含む)を含む方法。
【請求項26】
前記会話リスト内の会話を識別するためにメッセージリポジトリを検索するステップを含み、それぞれの識別された会話は、前記検索クエリに関連する少なくとも1つのメッセージを含む、請求項25に記載の方法。
【請求項27】
前記部分を表示するステップは、第1のテキスト情報を囲む第2のテキスト情報を表示するステップを含む、請求項25に記載の方法。
【請求項28】
前記部分を表示するステップは、前記検索クエリに関連する第1のテキスト情報を、第2のテキスト情報とは別個の様式で表示するステップを含む、請求項25に記載の方法。
【請求項29】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、第2の事前定義された基準に従って決定された順序で、かつ1組の行として表示するための命令と(各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値と、検索クエリの少なくとも1つの検索語に関連する会話情報の部分とを少なくとも含む)を含むコンピュータ。
【請求項30】
メッセージを検索する方法であって、
検索クエリを会話ユニットに送信するステップと、
前記検索要求に対応して、会話リストを受信するステップであって(各会話は、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージを含み、かつ、前記検索クエリに関連する少なくとも1つのメッセージを有する)、
前記受信される会話リストは、前記会話リストの少なくともサブセット内の各会話について、前記検索クエリに関連する個々のメッセージの識別された部分を含み、前記個々のメッセージの前記識別された部分は、前記個々のメッセージのメッセージボディの部分である、ステップと、
前記会話リストの少なくともサブセットを表示するステップ(前記会話リスト内の少なくとも1つの会話に関連して、リストされた会話の個々のメッセージの前記識別された部分を表示するステップを含む)とを含む方法。
【請求項31】
前記部分を表示するステップは、前記検索クエリの少なくとも1つの検索語に関連する第1のテキスト情報を、前記部分の第2のテキスト情報とは別個の様式で表示するステップを含む、請求項30に記載の方法。
【請求項32】
前記様式は、太字、ハイライト、イタリック体、異なる前景色、異なる背景色、フォントサイズ、フォント色、およびその他のフォント属性からなる組から選択されるフォーマットを含む、請求項31に記載の方法。
【請求項33】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
検索クエリを会話ユニットに送信するための命令と、
前記検索要求に対応して、会話リストを受信するための命令と(各会話は、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージを含み、かつ、前記検索クエリに関連する少なくとも1つのメッセージを有する)、
前記受信される会話リストのための命令と(前記受信される会話リストは、前記会話リストの少なくともサブセット内の各会話について、前記検索クエリに関連する個々のメッセージの識別された部分を含み、前記個々のメッセージの前記識別された部分は、前記個々のメッセージのメッセージボディの部分である)、
前記会話リストの少なくともサブセットを表示するための命令と(前記会話リスト内の少なくとも1つの会話に関連して、リストされた会話の個々のメッセージの前記識別された部分を表示するための命令を含む)を含むコンピュータ。
【請求項34】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、第2の事前定義された基準に従って決定された順序で表示するステップと(各会話は、前記リスト内の単一の項目として表される)を含み、
前記会話リストは行の組を含み、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含み、
前記行の組の中の行は、前記ユーザが前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを示す、受信者インジケータを含む方法。
【請求項35】
前記表示される会話リスト内の行の前記送信者リストは、対応する会話内のメッセージの、複数の送信者の識別子を含む、請求項34に記載の方法。
【請求項36】
前記行に対応する前記会話が、第1の送信者により送信されたメッセージと、第2の送信者により送信された1つまたは複数のメッセージとを含む場合、前記表示するステップは、前記第1の送信者により送信された前記メッセージがまだ表示されていないか、または前記ユーザによって既読として印付けられていない場合に、前記送信者リスト内の前記第1の送信者の識別子を、第1の識別性のあるフォーマットで表示するステップと、前記第2の送信者により送信されたすべてのメッセージがすでに表示されたか、または前記ユーザによって既読として印付けられている場合に、前記送信者リスト内の前記第2の送信者の識別子を、第2の識別性のあるフォーマットで表示するステップとを含む、請求項35に記載の方法。
【請求項37】
前記表示するステップは、前記送信者リスト内の送信者の名前を、前記送信者によって送信されたメッセージが前記ユーザによってまだ読まれていない場合にハイライトするステップを含む、請求項35に記載の方法。
【請求項38】
前記送信者リスト内の送信者の識別子は、前記送信者が前記ユーザである場合に、固有の文字列またはアイコンで置き換えられる、請求項35に記載の方法。
【請求項39】
前記会話に、前記会話に含まれるメッセージの送信者の組を関連付けるステップを含み、前記送信者リストは、前記送信者の組の中の複数の送信者の識別子を含み、ただし、前記送信者の組が、事前定義された制限を超える場合は、前記送信者の組の中のすべての送信者よりも少ない送信者の識別子を含む、請求項35に記載の方法。
【請求項40】
いずれの送信者識別子を前記送信者リストに含めるかを決定するための優先度が、送信者の識別子に割り当てられ、前記優先度は、前記会話内の前記メッセージに関連付けられた日付/時刻情報とステータス情報とに従って決定される、請求項35に記載の方法。
【請求項41】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、第2の事前定義された基準に従って決定された順序で表示するための命令と(各会話は、前記リスト内の単一の項目として表される)を含み、
前記会話リストは行の組を含み、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含み、
前記行の組の中の行は、前記ユーザが、前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを示す、受信者インジケータを含むコンピュータ。
【請求項1】
電子メッセージを処理する方法であって、
ユーザに宛てられた複数の電子メッセージを受信するステップと(各メッセージは固有のメッセージ識別子を有する)、
前記複数の電子メッセージのそれぞれを、個々の会話に関連付けるステップと(各会話は固有の会話識別子を有し、各会話は1つまたは複数の電子メッセージの組を含む)、
会話リストを所定の順序で表示するステップと(各会話は前記リスト内の単一の項目として表される)を含む方法。
【請求項2】
前記会話リストは行の組を含み、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストを少なくとも含み、前記会話リスト内の行の前記送信者リストは、対応する会話内の少なくとも1つのメッセージの、1人または複数の送信者の識別子を含み、
前記行に対応する前記会話が、第1の送信者により送信されたメッセージと、第2の送信者により送信された1つまたは複数のメッセージとを含む場合、前記表示するステップは、前記第1の送信者により送信された前記メッセージがまだ表示されていないか、または前記ユーザによって既読として印付けられていない場合に、前記送信者リスト内の前記第1の送信者の識別子を、第1の識別性のあるフォーマットで表示するステップと、前記第2の送信者により送信されたすべてのメッセージがすでに表示されたか、または前記ユーザによって既読として印付けられている場合に、前記送信者リスト内の前記第2の送信者の識別子を、第2の識別性のあるフォーマットで表示するステップとを含む、請求項1に記載の方法。
【請求項3】
前記表示するステップは、前記送信者リスト内の送信者の名前を、前記送信者によって送信されたメッセージが前記ユーザによってまだ読まれていない場合にハイライトするステップを含む、請求項2に記載の方法。
【請求項4】
前記送信者リスト内の送信者の識別子は、前記送信者が前記ユーザである場合に、固有の文字列またはアイコンで置き換えられる、請求項3に記載の方法。
【請求項5】
前記行の組の中の行は、前記ユーザが前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを識別する、受信者インジケータを含む、請求項2に記載の方法。
【請求項6】
前記ユーザが前記表示された会話リスト内の会話を選択した場合に、会話の内容を表示するステップを含み、前記表示するステップは、1つまたは複数のサブフォームを表示するステップを含み、各サブフォームは前記会話内の個々の電子メッセージに対応し、各サブフォームは、短縮表示モードと拡張表示モードとを含む、2つの表示モードを有する、請求項2に記載の方法。
【請求項7】
すでに表示されたか、または前記ユーザによって既読として印付けられている電子メッセージに対応する前記サブフォームは、前記短縮表示モードで描画され、まだ表示されていないか、または前記ユーザによって既読として印付けられていない電子メッセージに対応する前記サブフォームは、前記拡張表示モードで描画される、請求項6に記載の方法。
【請求項8】
前記メッセージ送信者および前記一次メッセージ受信者のうちのいずれかの識別子は、前記関連付けられたメッセージが、前記メッセージ送信者または前記一次メッセージ受信者による前記会話への最初の参加を構成する場合に、ハイライトされる、請求項2に記載の方法。
【請求項9】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
ユーザに宛てられた複数の電子メッセージを受信するための命令と(各メッセージは固有のメッセージ識別子を有する)、
前記複数の電子メッセージのそれぞれを、個々の会話に関連付けるための命令と(各会話は固有の会話識別子を有し、各会話は1つまたは複数の電子メッセージの組を含む)、
会話リストを所定の順序で表示するための命令と(各会話は前記リスト内の単一の項目として表される)を含むコンピュータ。
【請求項10】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、1組の行として、第2の事前定義された基準に従って決定された順序で表示するステップと(各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含む)、
前記ユーザが前記表示された会話リストから会話を選択した場合に、会話の内容を表示するステップとを含む方法。
【請求項11】
前記会話の内容を表示するステップは、1つまたは複数のサブフォームを表示するステップを含み、各サブフォームは前記会話内の個々のメッセージに対応し、各サブフォームは、短縮表示モードと拡張表示モードとを含む、少なくとも2つの表示モードを有する、請求項10に記載の方法。
【請求項12】
隠し表示モードを含む、第3の表示モードをさらに提供する、請求項11に記載の方法。
【請求項13】
個々のメッセージに対応するサブフォーム内に、会話参加者識別子リストを表示するステップと、前記個々のメッセージが、前記会話参加者識別子リスト内の個々の会話参加者が参加者である前記会話内の最初のメッセージである場合に、前記個々の会話参加者の識別子をハイライトを使用して表示するステップとを含む、請求項11に記載の方法。
【請求項14】
前記ハイライトは、太字、下線、フォント色、フォントサイズ、背景色、およびフォントタイプからなるリストから選択される1つまたは複数である、請求項13に記載の方法。
【請求項15】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、1組の行として、第2の事前定義された基準に従って決定された順序で表示するための命令と(各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含む)、
前記ユーザが前記表示された会話リストから会話を選択した場合に、会話の内容を表示するための命令とを含むコンピュータ。
【請求項16】
メッセージを検索する方法であって、
検索クエリに関連する複数の会話を識別するために、メッセージリポジトリを検索するステップと(前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージと、個々の会話識別子とを含む)、
前記識別された会話の少なくともサブセットを表す会話リストを作成するステップと、
前記会話リストから会話を選択するステップと、
前記選択された会話の第1のテキストと、前記選択された会話の第2のテキストとを区別するステップとを含む方法。
【請求項17】
前記第2のテキストは、前記検索クエリに関連している、請求項16に記載の方法。
【請求項18】
前記区別するステップは、
第1のフォーマットでの前記第1のテキストのフォーマット情報を提供するステップと、第2のフォーマットでの前記第2のテキストのフォーマット情報を提供するステップとを含み、
前記第1のフォーマットは、前記第2のフォーマットと、視覚的識別力のある様式で異なっている、請求項17に記載の方法。
【請求項19】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
検索クエリに関連する複数の会話を識別するために、メッセージリポジトリを検索するための命令と(前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージと、それぞれの会話識別子とを含む)、
前記識別された会話の少なくともサブセットを表す会話リストを作成するための命令と、
前記会話リストから会話を選択するための命令と、
前記選択された会話の第1のテキストと、前記選択された会話の第2のテキストとを区別するための命令とを含むコンピュータ。
【請求項20】
メッセージを検索する方法であって、
検索クエリに関連する少なくとも1つのメッセージをそれぞれが含む、複数の会話を識別するために、メッセージリポジトリを検索するステップと(前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージと、個々の会話識別子とを含む)、
前記識別された会話の少なくともサブセットを表す会話リストを作成するステップと、
前記会話リストから会話を選択するステップと、
前記選択された会話の第1のメッセージと、前記選択された会話の第2のメッセージとを区別するステップとを含む方法。
【請求項21】
前記第2のメッセージは、前記検索クエリに関連している、請求項20に記載の方法。
【請求項22】
前記区別するステップは、
第1のフォーマットでの前記第1のメッセージのフォーマット情報を提供するステップと、第2のフォーマットでの前記第2のメッセージのフォーマット情報を提供するステップとを含み、
前記第1のフォーマットは、前記第2のフォーマットと、視覚的識別力のある様式で異なっている、請求項21に記載の方法。
【請求項23】
前記フォーマット情報は、特定のメッセージが最初に拡張モードに関連付けられているか、または短縮モードに関連付けられているかに関係する、請求項22に記載の方法。
【請求項24】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
検索クエリに関連する少なくとも1つのメッセージをそれぞれが含む、複数の会話を識別するために、メッセージリポジトリを検索するための命令と(前記複数の前記識別された会話のそれぞれは、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージと、それぞれの会話識別子とを含む)、
前記識別された会話の少なくともサブセットを表す会話リストを作成するための命令と、
前記会話リストから会話を選択するための命令と、
前記選択された会話の第1のメッセージと、前記選択された会話の第2のメッセージとを区別するための命令とを含むコンピュータ。
【請求項25】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、第2の事前定義された基準に従って決定された順序で、かつ1組の行として表示するステップと(各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値と、検索クエリの少なくとも1つの検索語に関連する会話情報の部分とを少なくとも含む)を含む方法。
【請求項26】
前記会話リスト内の会話を識別するためにメッセージリポジトリを検索するステップを含み、それぞれの識別された会話は、前記検索クエリに関連する少なくとも1つのメッセージを含む、請求項25に記載の方法。
【請求項27】
前記部分を表示するステップは、第1のテキスト情報を囲む第2のテキスト情報を表示するステップを含む、請求項25に記載の方法。
【請求項28】
前記部分を表示するステップは、前記検索クエリに関連する第1のテキスト情報を、第2のテキスト情報とは別個の様式で表示するステップを含む、請求項25に記載の方法。
【請求項29】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、第2の事前定義された基準に従って決定された順序で、かつ1組の行として表示するための命令と(各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値と、検索クエリの少なくとも1つの検索語に関連する会話情報の部分とを少なくとも含む)を含むコンピュータ。
【請求項30】
メッセージを検索する方法であって、
検索クエリを会話ユニットに送信するステップと、
前記検索要求に対応して、会話リストを受信するステップであって(各会話は、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージを含み、かつ、前記検索クエリに関連する少なくとも1つのメッセージを有する)、
前記受信される会話リストは、前記会話リストの少なくともサブセット内の各会話について、前記検索クエリに関連する個々のメッセージの識別された部分を含み、前記個々のメッセージの前記識別された部分は、前記個々のメッセージのメッセージボディの部分である、ステップと、
前記会話リストの少なくともサブセットを表示するステップ(前記会話リスト内の少なくとも1つの会話に関連して、リストされた会話の個々のメッセージの前記識別された部分を表示するステップを含む)とを含む方法。
【請求項31】
前記部分を表示するステップは、前記検索クエリの少なくとも1つの検索語に関連する第1のテキスト情報を、前記部分の第2のテキスト情報とは別個の様式で表示するステップを含む、請求項30に記載の方法。
【請求項32】
前記様式は、太字、ハイライト、イタリック体、異なる前景色、異なる背景色、フォントサイズ、フォント色、およびその他のフォント属性からなる組から選択されるフォーマットを含む、請求項31に記載の方法。
【請求項33】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
検索クエリを会話ユニットに送信するための命令と、
前記検索要求に対応して、会話リストを受信するための命令と(各会話は、事前定義された基準を満たす共通の特性の組を共有する1つまたは複数のメッセージを含み、かつ、前記検索クエリに関連する少なくとも1つのメッセージを有する)、
前記受信される会話リストのための命令と(前記受信される会話リストは、前記会話リストの少なくともサブセット内の各会話について、前記検索クエリに関連する個々のメッセージの識別された部分を含み、前記個々のメッセージの前記識別された部分は、前記個々のメッセージのメッセージボディの部分である)、
前記会話リストの少なくともサブセットを表示するための命令と(前記会話リスト内の少なくとも1つの会話に関連して、リストされた会話の個々のメッセージの前記識別された部分を表示するための命令を含む)を含むコンピュータ。
【請求項34】
メッセージを処理する方法であって、
ユーザに宛てられた複数のメッセージを受信するステップと(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるステップと(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、第2の事前定義された基準に従って決定された順序で表示するステップと(各会話は、前記リスト内の単一の項目として表される)を含み、
前記会話リストは行の組を含み、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含み、
前記行の組の中の行は、前記ユーザが前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを示す、受信者インジケータを含む方法。
【請求項35】
前記表示される会話リスト内の行の前記送信者リストは、対応する会話内のメッセージの、複数の送信者の識別子を含む、請求項34に記載の方法。
【請求項36】
前記行に対応する前記会話が、第1の送信者により送信されたメッセージと、第2の送信者により送信された1つまたは複数のメッセージとを含む場合、前記表示するステップは、前記第1の送信者により送信された前記メッセージがまだ表示されていないか、または前記ユーザによって既読として印付けられていない場合に、前記送信者リスト内の前記第1の送信者の識別子を、第1の識別性のあるフォーマットで表示するステップと、前記第2の送信者により送信されたすべてのメッセージがすでに表示されたか、または前記ユーザによって既読として印付けられている場合に、前記送信者リスト内の前記第2の送信者の識別子を、第2の識別性のあるフォーマットで表示するステップとを含む、請求項35に記載の方法。
【請求項37】
前記表示するステップは、前記送信者リスト内の送信者の名前を、前記送信者によって送信されたメッセージが前記ユーザによってまだ読まれていない場合にハイライトするステップを含む、請求項35に記載の方法。
【請求項38】
前記送信者リスト内の送信者の識別子は、前記送信者が前記ユーザである場合に、固有の文字列またはアイコンで置き換えられる、請求項35に記載の方法。
【請求項39】
前記会話に、前記会話に含まれるメッセージの送信者の組を関連付けるステップを含み、前記送信者リストは、前記送信者の組の中の複数の送信者の識別子を含み、ただし、前記送信者の組が、事前定義された制限を超える場合は、前記送信者の組の中のすべての送信者よりも少ない送信者の識別子を含む、請求項35に記載の方法。
【請求項40】
いずれの送信者識別子を前記送信者リストに含めるかを決定するための優先度が、送信者の識別子に割り当てられ、前記優先度は、前記会話内の前記メッセージに関連付けられた日付/時刻情報とステータス情報とに従って決定される、請求項35に記載の方法。
【請求項41】
メインメモリと、
プロセッサと、
前記メインメモリ内に記憶され、前記プロセッサによって実行される、少なくとも1つのプログラムとを含むコンピュータであって、前記少なくとも1つのプログラムは、
ユーザに宛てられた複数のメッセージを受信するための命令と(各メッセージは固有のメッセージ識別子を有する)、
前記複数のメッセージのそれぞれを、個々の会話に関連付けるための命令と(各会話は個々の会話識別子を有し、各会話は、第1の事前定義された基準を満たす共通の特性の組を共有する、1つまたは複数のメッセージの組を含む)、
会話リストを、第2の事前定義された基準に従って決定された順序で表示するための命令と(各会話は、前記リスト内の単一の項目として表される)を含み、
前記会話リストは行の組を含み、各行は、リストされる会話のうちの1つに対応し、かつ、送信者リストと、会話トピックと、日付/時刻値とを少なくとも含み、
前記行の組の中の行は、前記ユーザが、前記会話内の任意のメッセージの一次受信者であるか、または二次受信者であるかを示す、受信者インジケータを含むコンピュータ。
【図1】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図5A】
【図5B】
【図6A】
【図6B】
【図6C】
【図6D】
【図6E】
【図7A】
【図7B】
【図7C】
【図8】
【図9A】
【図9B】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3A】
【図3B】
【図4A】
【図4B】
【図5A】
【図5B】
【図6A】
【図6B】
【図6C】
【図6D】
【図6E】
【図7A】
【図7B】
【図7C】
【図8】
【図9A】
【図9B】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2011−123893(P2011−123893A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−275595(P2010−275595)
【出願日】平成22年12月10日(2010.12.10)
【分割の表示】特願2007−506396(P2007−506396)の分割
【原出願日】平成17年3月25日(2005.3.25)
【出願人】(502208397)グーグル インコーポレイテッド (161)
【Fターム(参考)】
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2010−275595(P2010−275595)
【出願日】平成22年12月10日(2010.12.10)
【分割の表示】特願2007−506396(P2007−506396)の分割
【原出願日】平成17年3月25日(2005.3.25)
【出願人】(502208397)グーグル インコーポレイテッド (161)
【Fターム(参考)】
[ Back to top ]