(57)【特許請求の範囲】
【請求項１】
入来メッセージを受信するステップと、
前記入来メッセージが複数の格納されたメッセージを備える会話スレッドの一部であることを決定するステップと、
前記入来メッセージに前記会話スレッドの会話識別子を割り当てることによって前記入来メッセージを前記会話スレッドに関連付けるステップと、
前記会話スレッドの会話ルールを生成するステップであって、前記会話ルールは、前記会話スレッドのために確立される、ステップと、
前記会話スレッドの会話ルールを会話アクションテーブルに格納するステップであって、前記会話アクションテーブルは複数のカラムを備え、前記複数のカラムは、少なくとも会話識別子、前記会話ルールが前記会話識別子に適用されるかどうかを示すブールパラメータ、前記会話ルールを実施するのに必要な情報、少なくともカテゴリ名を備える情報、および前記会話ルールが効力を保っている期間を示す有効期限日時を備える、ステップと、
前記会話ルールが前記会話スレッドに関連付けられていることを決定するステップと、
前記会話ルールを前記入来メッセージに適用するステップと、
前記会話ルールを前記会話スレッドの前記複数の格納されたメッセージに自動的に割り当てるステップと
を備えることを特徴とする方法。
【請求項２】
前記入来メッセージは、Ｅメールメッセージ、テキストメッセージ、ショートメッセージサービスメッセージ、マルチメディアメッセージサーバーメッセージ、ボイスメッセージ、またはビデオメッセージを備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記会話スレッドの会話ルールを生成するステップは、前記入来メッセージを削除項目フォルダーに自動的に送る常時削除会話ルールを生成するステップを備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記会話スレッドの会話ルールを生成するステップは、前記入来メッセージを目標項目フォルダーに自動的に送る常時移送会話ルールを生成するステップを備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記会話スレッドの会話ルールを生成するステップは、前記入来メッセージにカテゴリを自動的に割り当てる常時類別会話ルールを生成するステップを備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記入来メッセージを前記会話スレッドに関連付けるステップは、
前記入来メッセージが、前記会話スレッドの少なくとも一つの既存のメッセージの「ｍｅｓｓａｇｅ  ｉｄｅｎｔｉｆｉｅｒ」プロパティによって指定される値に対応する値を指定する「ｉｎ−ｒｅｐｌｙ−ｔｏ」プロパティを含むことを決定するステップと、
前記入来メッセージが、前記会話スレッドの少なくとも一つの既存のメッセージの「ｍｅｓｓａｇｅ  ｉｄｅｎｔｉｆｉｅｒ」プロパティによって指定される値に対応する値を指定する「ｒｅｆｅｒｅｎｃｅｓ」プロパティを含むことを決定するステップと、
前記入来メッセージの正規化された「ｓｕｂｊｅｃｔ」プロパティが、前記会話スレッドの少なくとも一つの既存のメッセージの正規化された「ｓｕｂｊｅｃｔ」プロパティに一致することを決定するステップと
のうちの少なくとも一つをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
コンピュータ実行可能命令を格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ実行可能命令は、コンピュータによって実行されると、前記コンピュータに、
入来メッセージが複数の格納されたメッセージを備える会話スレッドの一部であることを決定するステップと、
前記入来メッセージに前記会話スレッドの会話識別子を割り当てることによって前記入来メッセージを前記会話スレッドに関連付けるステップと、
前記会話スレッドの会話ルールを生成するステップであって、前記会話ルールは、前記会話スレッドのために確立される、ステップと、
前記会話スレッドの会話ルールを会話アクションテーブルに格納するステップであって、前記会話アクションテーブルは複数のカラムを備え、前記複数のカラムは、少なくとも会話識別子、前記会話ルールが前記会話識別子に適用されるかどうかを示すブールパラメータ、前記会話ルールを実施するのに必要な情報、少なくともカテゴリ名を備える情報、および前記会話ルールが効力を保っている期間を示す有効期限日時を備える、ステップと、
前記会話スレッドに関連付けられている会話ルールを検索するステップと、
前記会話ルールを前記入来メッセージに適用するステップと、
前記会話ルールを前記会話スレッドの前記複数の格納されたメッセージに自動的に割り当てるステップと
を備える方法を実行させることを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項８】
前記会話ルールは、前記入来メッセージを削除項目フォルダーに自動的に送る常時削除会話ルール、前記入来メッセージを目標項目フォルダーに自動的に送る常時移送会話ルール、または前記入来メッセージにカテゴリを自動的に割り当てる常時類別会話ルールを備えることを特徴とする請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９】
入来メッセージを受信するように構成される入来メッセージモジュールと、
前記入来メッセージモジュールに通信可能に結合された会話識別モジュールであって、前記会話識別モジュールは、前記入来メッセージが会話スレッドの一部であることを決定し、前記入来メッセージの会話識別子プロパティを前記会話スレッドの会話識別子に設定することによって、前記入来メッセージを前記会話スレッドに関連付けるように構成され、前記会話スレッドは複数の格納されたメッセージを備える、会話識別モジュールと、
前記会話識別モジュールに通信可能に結合された会話マネージャーモジュールであって、前記会話マネージャーモジュールは、
前記会話スレッドの会話ルールを生成するように、ここで、前記会話ルールは、前記会話スレッドのために確立され、
前記会話スレッドの会話ルールを会話アクションテーブルに格納するように、ここで、前記会話アクションテーブルは複数のカラムを備え、前記複数のカラムは、少なくとも会話識別子、前記会話ルールが前記会話識別子に適用されるかどうかを示すブールパラメータ、前記会話ルールを実施するのに必要な情報、少なくともカテゴリ名を備える情報、および前記会話ルールが効力を保っている期間を示す有効期限日時を備え、
前記会話ルールが前記会話スレッドに関連付けられていることを決定するように、
前記会話ルールを前記入来メッセージに適用するように、
前記会話ルールを前記会話スレッドの前記複数の格納されたメッセージに自動的に割り当てるように
構成される、会話マネージャーモジュールと
を備えることを特徴とする装置。
【請求項１０】
前記メッセージは、Ｅメールメッセージ、テキストメッセージ、ショートメッセージサービスメッセージ、マルチメディアメッセージサーバーメッセージ、ボイスメッセージ、またはビデオメッセージを含むことを特徴とする請求項９に記載の装置。
【請求項１１】
前記会話ルールは、前記入来メッセージを削除項目フォルダーに自動的に送る常時削除会話ルール、前記入来メッセージを目標項目フォルダーに自動的に送る常時移送会話ルール、または前記入来メッセージにカテゴリを自動的に割り当てる常時類別会話ルールを備えることを特徴とする請求項９に記載の装置。
【請求項１２】
前記会話マネージャーモジュールに通信可能に結合されたメッセージデータベースを備え、
前記メッセージデータベースは、前記会話スレッドの複数のメッセージを格納するように構成されることを特徴とする請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、メッセージアプリケーションのための自動会話技術に関する。
【背景技術】
【０００２】
電子メール（Ｅメール）アプリケーションは、多くのファイルシステムによって提供されるインターフェースに類似したインターフェース内の論理的なフォルダーにメッセージを保存する能力をユーザーに提供する。Ｅメールアプリケーションは、ユーザーが、保存されたメッセージを論理的な「会話」にグループ化することを可能にすることもできる。各会話は、関連メッセージのグループであり、ルートメッセージと、ルートメッセージに対する返答または互いに対する返答とを含む。会話によって配列された場合、メッセージは、メッセージの主題またはスレッドによってグループ化された会話のリストとして、Ｅメールアプリケーションのユーザーインターフェースに表示される。会話は、日付によってソートすることができ、各会話内のメッセージは、誰が誰に返答したかに基づいてソートすることができる。
【０００３】
会話グループによって提供される利便性にも関わらず、いくつかのＥメールアプリケーションは、会話に対する操作を個々の会話項目（ｃｏｎｖｅｒｓａｔｉｏｎ  ｉｔｅｍ）に制限する。例えば、ユーザーは、昼食を何にするかについて同僚たちと話し合う会話スレッド（ｃｏｎｖｅｒｓａｔｉｏｎ  ｔｈｒｅａｄ）に関与することを望まないことがある。ユーザーは、受信トレイを整理された状態に保つため、個々の会話項目が入来すると直ちに、それらを削除する必要があることがある。そのような操作は、ユーザーにとって面倒で時間がかかることがあり、どの日もユーザーが受信するＥメールメッセージの量が増えていく場合には特にそうである。その結果、上記および他の問題を解決し、様々な利用シナリオにおいてユーザーのエクスペリエンスを向上させるには、項目管理技術および表示技術に対する改良が必要とされる。
【発明の概要】
【０００４】
この概要は、以下で詳細な説明においてさらに説明される概念の抜粋を簡略化された形で紹介するために提供される。この要約は、特許請求される主題の主要な特徴または必須の特徴を識別することを意図しておらず、特許請求される主題の範囲を限定するために使用されることも意図していない。
【０００５】
様々な実施形態は一般に、メッセージアプリケーションのための自動会話技術に関する。いくつかの実施形態は特に、例えばＥメールアプリケーションなどのメッセージアプリケーションのための、会話グループまたはスレッドの全体にわたって適用できる自動会話アクションに関する。
【０００６】
一実施形態は、例えば、メッセージアプリケーションプログラムを有するコンピューティングデバイスなどの装置を含むことができる。メッセージアプリケーションプログラムは、要素の中でもとりわけ、入来メッセージを受信するように動作する入来メッセージモジュール（ｉｎｃｏｍｉｎｇ  ｍｅｓｓａｇｅ  ｍｏｄｕｌｅ）を含むことができる。メッセージアプリケーションプログラムはまた、入来メッセージモジュールに通信可能に結合された会話識別モジュール（ｃｏｎｖｅｒｓａｔｉｏｎ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｍｏｄｕｌｅ）を含むことができ、会話識別モジュールは、入来メッセージが会話スレッドの一部であることを決定し、入来メッセージの会話識別子プロパティ（ｃｏｎｖｅｒｓａｔｉｏｎ  ｉｄｅｎｔｉｆｉｅｒ  ｐｒｏｐｅｒｔｙ）を会話スレッドの会話識別子（ｃｏｎｖｅｒｓａｔｉｏｎ  ｉｄｅｎｔｉｆｉｅｒ）に設定することによって、入来メッセージを会話スレッドに関連付けるように動作する。メッセージアプリケーションプログラムはさらに、会話識別モジュールに通信可能に結合された会話マネージャーモジュール（ｃｏｎｖｅｒｓａｔｉｏｎ  ｍａｎａｇｅｒ  ｍｏｄｕｌｅ）を含むことができ、会話マネージャーモジュールは、会話ルール（ｃｏｎｖｅｒｓａｔｉｏｎ  ｒｕｌｅ）が会話スレッドに関連付けられていることを決定し、その会話ルールを入来メッセージに適用するように動作する。他の実施形態も説明され、特許請求される。
【０００７】
上記および他の特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することから明らかになろう。上述の概略的な説明および以下の詳細な説明はともに説明的なものにすぎず、特許請求される態様を限定するものではないことを理解されたい。
【図面の簡単な説明】
【０００８】
【図１】動作環境の一実施形態を示す図である。
【図２】コンピューティングデバイスの一実施形態を示す図である。
【図３】Ｅメールアプリケーションの一実施形態を示す図である。
【図４】第１の会話ビューの一実施形態を示す図である。
【図５】第２の会話ビューの一実施形態を示す図である。
【図６】第３の会話ビューの一実施形態を示す図である。
【図７】第４の会話ビューの一実施形態を示す図である。
【図８】第５の会話ビューの一実施形態を示す図である。
【図９】論理フローの一実施形態を示す図である。
【図１０】物品の一実施形態を示す図である。
【発明を実施するための形態】
【０００９】
様々な実施形態は、一定の動作、機能、またはサービスを実行するように構成された物理的構造または論理的構造を含む。構造は、物理的構造、論理的構造、または両方の組み合わせを含むことができる。物理的構造または論理的構造は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを使用して実施される。しかし、特定のハードウェア要素またはソフトウェア要素を参照する実施形態についての説明は、例として意図したものであり、限定としては意図していない。実施形態を実際に実施するのにハードウェア要素を使用するか、それともソフトウェア要素を使用するかという決定は、所望の計算速度、電力レベル、耐熱性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計制約または性能制約など、多くの外部要因に依存する。さらに、物理的構造または論理的構造は、構造間で情報を電子信号またはメッセージの形で伝達する、対応する物理的接続または論理的接続を有することができる。接続は、情報または特定の構造に適するように、有線接続および／または無線接続を含むことができる。「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ）」または「実施形態（ａ  ｅｍｂｏｄｉｍｅｎｔ）」についてのどのような言及も、それが意味するのは、実施形態に関して説明された特定の特徴、構造、または特性が、少なくとも１つの実施形態に含まれることであることに留意するのは有意義である。明細書内の様々な場所に出現する「一実施形態では」という語句は、必ずしもすべてが同じ実施形態に言及しているわけではない。
【００１０】
様々な実施形態は、メッセージアプリケーションのための自動会話技術に関することができる。自動会話技術は、任意のメッセージアプリケーションのために実施することができる。メッセージアプリケーションの例は、Ｅメールメッセージアプリケーション、テキストメッセージアプリケーション、ＳＭＳ（ショートメッセージサービス）メッセージアプリケーション、ＭＭＳ（マルチメディアメッセージサーバー）メッセージアプリケーション、ボイスメッセージアプリケーション、およびビデオメッセージアプリケーションなどを含むことができるが、それらに限定されない。一実施形態では、自動会話技術は、限定としてではなく、例として、Ｅメールアプリケーションを参照して説明することができる。具体的な実施は、他のメッセージングアプリケーションとともに自動会話技術を実施することがあるが、それも本発明の実施形態の範囲内に依然として含まれる。
【００１１】
様々な実施形態は、Ｅメールアプリケーションなどのメッセージアプリケーションのための自動会話技術に関することができる。一般に、Ｅメールアプリケーションは、ユーザーが、メッセージを構成し、電子通信システムを介してメッセージを送信および受信することを可能にする。いくつかの実施形態では、説明される技術は、クライアント／サーバーＥメールメッセージングシステムの１つまたは複数の要素によって実施することができる。そのような実施形態では、サーバーは、様々なメッセージングクライアントをサポートし、クライアントから要求およびデータを受け入れ、要求を処理し、データを保存し、処理結果をクライアントに返すことができる。したがって、項目集約技術および表示技術のうちの１つまたは複数は、クライアントベースのＥメールアプリケーション内の機能、ウェブブラウザを介したＥメールサービスへのアクセスを提供するウェブベースのＥメールアプリケーションを含むサーバーベースのＥメールアプリケーション内の機能として、および／またはＥメールと対話する他のタイプのアプリケーション、プログラム、もしくはサービスによって実施することができる。
【００１２】
いくつかの実施形態では、自動会話技術のうちの１つまたは複数は、本願出願人が販売するＭＩＣＲＯＳＯＦＴ  ＯＦＦＩＣＥ  ＯＵＴＬＯＯＫ（登録商標）アプリケーションソフトウェアなど、Ｅメールクライアントアプリケーションまたはソフトウェアプログラム内で実施することができる。そのような実施形態では、説明される技術は、オンラインモードまたはオフラインモードのどちらかで、Ｅメールクライアントアプリケーションによって実行することができる。オフラインモードでは、Ｅメールクライアントアプリケーションは、ローカルに保存またはキャッシュされたＥメールメッセージに対して、１つまたは複数の自動会話技術を実行することができる。説明される技術は、ＭＡＰＩ（メッセージングアプリケーションプログラミングインターフェース）クライアント、ＨＴＴＰ（ハイパーテキスト転送プロトコル）クライアント、ＰＯＰ３（ポストオフィスプロトコル３）クライアント、ＩＭＡＰ（インターネットメッセージアクセスプロトコル）またはＩＭＡＰ４クライアント、およびＮＮＴＰ（ネットワークニュース転送プロトコル）クライアントなどを含むが、それらに限定されない、説明される実施形態に従った任意のタイプのＥメールクライアントによって実施できることが理解できよう。
【００１３】
代替的または追加的に、１つまたは複数の自動会話技術は、本願出願人が販売するＭＩＣＲＯＳＯＦＴ  ＥＸＣＨＡＮＧＥ  ＳＥＲＶＥＲ（登録商標）など、サーバーベースのＥメールアプリケーションまたはソフトウェアプログラム内の機能として実施することができる。サーバーは、Ｅメール機能、カレンダ機能、連絡先機能、タスク機能、情報へのモバイルおよびウェブベースアクセスのサポート、ならびにデータ保存を提供することができる。サーバーは、メールボックスおよびフォルダー内のＥメールメッセージおよび他のデータを含む項目を保存するためのメッセージストアを備えること、またはメッセージストアと通信することができ、様々なＥメールクライアントと通信するため、およびメッセージストアへのアクセスを可能にするためのインターフェースを提供することができる。サーバーは、サーバー上の受信者、同じ組織内の別のサーバー上の受信者、および／またはインターネットもしくは他のメッセージングシステム上の受信者に宛てたＥメールメッセージのための様々なルーティング動作および転送動作を実行するメッセージ転送サブシステムによって使用できる、システムのユーザーについての情報および構成情報を含むディレクトリを備えること、またはディレクトリと通信することもできる。
【００１４】
いくつかの実施形態では、サーバーは、ＳＭＴＰ、ＮＮＴＰ、ＩＭＡＰ４、およびＰＯＰ３サービスを提供して、インターネットユーザーが、ＨＴＴＰ通信を介したＲＰＣ（リモートプロシージャコール）を含む様々なインターネットアクセスプロトコルおよびＨＴＴＰベースのプロトコルを介したメッセージングデータにアクセスすることを可能にする、ウェブアクセス機能、モバイルアクセス機能、および同期機能を含む様々なウェブサービス、ＩＩＳ（インターネット情報サービス）アプリケーションならびにＩＳＡＰＩ（インターネットサーバーアプリケーションプログラミングインターフェース）アプリケーションをサポートすることができる。いくつかの実施では、データは、圧縮されたＷｂＸＭＬ（ワイヤレスバイナリＸＭＬ）データとしてフォーマットして、モバイルクライアントのための帯域幅を効率的に使用することができる。標準のインターネットプロトコルに加えて、サーバーは、会社または他の組織によって使用される場合、独自仕様プロトコルまたは非標準プロトコルを介した通信をサポートすることもできる。
【００１５】
Ｅメールアプリケーションは、多くのファイルシステムによって提供されるインターフェースと類似のインターフェース内の論理的なフォルダーにメッセージを保存する能力をユーザーに提供することができる。フォルダーという用語は、項目の任意の集まりではあるが、保存および／またはユーザーインターフェース内に表された項目の集まりを指示できることが理解できよう。いくつかのオペレーティングシステムまたはアプリケーションは、項目の集まりを指示する場合、フォルダーという用語を使用しないことがあるが、そのようなシナリオも、フォルダーを説明および例示する実施形態によってカバーされることが意図されている。
【００１６】
Ｅメールアプリケーションは、ユーザーおよび／またはロジックが、保存されたメッセージを論理的な会話にグループ化して、会話グループまたは会話スレッドを形成することを可能にすることもできる。各会話は、関連メッセージのグループであり、例えば、ルートメッセージと、ルートメッセージに対する返答または互いに対する返答とを含むことができる。ユーザーがメッセージを会話によって配列することを選択した場合、メッセージは、メッセージの主題またはスレッドによってグループ化できる会話のリストとして、Ｅメールアプリケーションのユーザーインターフェースに表示される。会話は、日付によってソートすることができ、各会話内のメッセージは、誰が誰に返答したかに基づいてソートすることができる。
【００１７】
場合によっては、会話をなすメッセージは、複数のフォルダーにわたって保存することができる。例えば、ユーザーは、手動で様々なフォルダーにメッセージを組織化することができる。ユーザーは、送信者、主題、または他の基準に基づいて、Ｅメールメッセージをあるフォルダーに自動的に分類するための、１つまたは複数のフィルタリングルールを設定することもできる。加えて、ユーザーによって送信された返答メッセージは、ユーザーの送信済項目フォルダー内に保存することができる。
【００１８】
会話スレッドによって提供される利便性にも関わらず、いくつかのＥメールアプリケーションは、会話に対する操作を個々の会話項目に制限する。例えば、ユーザーは、昼食を何にするかについて同僚たちと話し合う会話スレッドに関与することを望まないことがある。ユーザーは、受信トレイを整理された状態に保つため、個々の会話項目が入来すると直ちに、それらを削除する必要があることがある。そのような操作は、ユーザーにとって面倒で時間がかかることがあり、どの日もユーザーが受信するＥメールメッセージの量が増えていく場合には特にそうである。
【００１９】
上記および他の問題を解決するため、様々な実施形態は、メッセージアプリケーションのための様々な自動会話技術を実施することができる。いくつかの実施形態は特に、例えばＥメールアプリケーションなどのメッセージアプリケーションのための、会話グループまたは会話スレッドの全体にわたって適用できる自動会話技術に関する。
【００２０】
一実施形態は、例えば、Ｅメールアプリケーションプログラムなどのメッセージアプリケーションプログラムを有するコンピューティングデバイスなどの装置を含むことができる。メッセージアプリケーションプログラムは、要素の中でもとりわけ、入来メッセージを受信するように動作する入来メッセージモジュールを含むことができる。メッセージアプリケーションプログラムはまた、入来メッセージモジュールに通信可能に結合された会話識別モジュールを含むことができ、会話識別モジュールは、入来メッセージが会話スレッドの一部であることを決定し、入来メッセージの会話識別子プロパティを会話スレッドの会話識別子に設定することによって、入来メッセージを会話スレッドに関連付けるように動作する。メッセージアプリケーションプログラムはさらに、会話識別モジュールに通信可能に結合された会話マネージャーモジュールを含むことができ、会話マネージャーモジュールは、会話ルールが会話スレッドに関連付けられていることを決定し、その会話ルールを入来メッセージに適用するように動作する。このように、ユーザーは会話ルールを一度確立するだけでよく、会話ルールが、会話スレッド内のすべての保存メッセージに加えて、同じ会話スレッドの一部である新しい入来メッセージにも自動的に適用される。その結果、ユーザーは、向上したメッセージングエクスペリエンスを有することができる。
【００２１】
より具体的には、会話マネージャーモジュールは、会話グループまたは会話スレッドの全体にわたって適用できる会話レベルアクションの形で自動会話技術を実施する。会話レベルアクションは一般に、会話スレッド全体の一部または全部のメッセージに影響する。対照的に、項目レベルアクションは一般に、単一のメッセージ項目に影響する。会話ルールの例は、とりわけ、「常時削除（ａｌｗａｙｓ  ｄｅｌｅｔｅ）」会話ルール、「常時移送（ａｌｗａｙｓ  ｍｏｖｅ）」会話ルール、「常時類別（ａｌｗａｙｓ  ｃａｔｅｇｏｒｉｚｅ）」会話を含むことができるが、それらに限定されない。これらは少数の例にすぎず、与えられた実施にとって望ましいように、会話スレッドに対して任意の数の会話レベルアクションを実施することができる。実施形態は、これに関連して限定されない。
【００２２】
図１は、様々な実施形態を実施するのに適した動作環境１００のブロック図を示している。動作環境１００は、単一エンティティ環境または複数エンティティ分散環境による実施のために設計された要素を含むことができる。各要素は、与えられた１組の設計パラメーターまたは性能制約にとって望ましい、ハードウェア要素、ソフトウェア要素、またはそれらの任意の組み合わせとして実施することができる。ハードウェア要素の例は、デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、回路素子（例えば、トランジスタ、抵抗、コンデンサー、インダクターなど）、集積回路、ＡＳＩＣ（特定用途向け集積回路）、ＰＬＤ（プログラム可能論理回路）、ＤＳＰ（デジタル信号プロセッサ）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、およびチップセットなどを含むことができる。ソフトウェア要素の例は、任意のソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、インターフェース、ソフトウェアインターフェース、ＡＰＩ（アプリケーションプログラムインターフェース）、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、ワード、値、シンボル、またはそれらの任意の組み合わせを含むことができる。
【００２３】
本明細書で使用される「システム」、「サブシステム」、「コンポーネント」、および「モジュール」という用語は、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中ソフトウェアを含む、コンピューター関連エンティティを指示することを意図している。例えば、コンポーネントは、プロセッサ上で実行中のプロセス、プロセッサ、ハードディスクドライブ、（光記憶媒体および／もしくは磁気記憶媒体の）複数の記憶ドライブ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、ならびに／またはコンピューターとして実施することができる。例を挙げると、サーバー上で実行中のアプリケーションおよびサーバーはどちらも、コンポーネントとすることができる。１つまたは複数のコンポーネントは、プロセスおよび／または実行のスレッド内に存在することができ、コンポーネントは、与えられた実施にとって望ましいように、１つのコンピューター上に局在させること、および／または２つ以上のコンピューター間に分散させることができる。実施形態は、これに関連して限定されない。
【００２４】
図１に示される例示的な実施形態では、動作環境１００は、要素の中でもとりわけ、クライアントコンピューティングデバイス１１０と、サーバーコンピューティングデバイス１３０とを含むことができる。コンピューティングデバイス１１０、１３０は、計算能力および通信能力を有する任意の適切な電子デバイスを利用して実施することができる。コンピューティングデバイス１１０、１３０の例は、モバイルデバイス、携帯情報端末、モバイルコンピューティングデバイス、スマートフォン、セルラー電話、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピューター、ＰＣ（パーソナルコンピューター）、デスクトップコンピューター、ラップトップコンピューター、ノートブックコンピューター、ハンドヘルドコンピューター、サーバー、サーバーアレイもしくはサーバーファーム、ウェブサーバー、ネットワークサーバー、インターネットサーバー、ワークステーション、ミニコンピューター、メインフレームコンピューター、スーパーコンピューター、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、消費者家電、プログラム可能な消費者家電、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、加入者局、モバイル加入者センタ、無線ネットワークコントローラー、ルーター、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはそれらの組み合わせを含むことができるが、それらに限定されない。図１に示される動作環境１００は、あるトポロジにおいて限られた数のノードを有するが、動作環境１００は、与えられた実施にとって望ましいように、代替トポロジにおいてはより多いまたは少ないノードを含むことができることが理解できよう。
【００２５】
コンピューティングデバイス１１０、１３０は、ネットワーク１１８および適切な無線または有線通信媒体を介して通信可能に結合することができる。コンピューティングデバイス１１０、１３０は、互いの間で動作を調整することができる。調整は、情報の単方向交換または双方向交換を含むことができる。例えば、コンピューティングデバイス１１０、１３０は、ネットワーク１１８を介して情報を伝達することができる。ネットワーク１１８は、パケット交換ネットワーク、回路交換ネットワーク、または両方の組み合わせを含むことができる。情報は、様々なネットワークインターフェースを介して送信されるデータメッセージとして実施することができる。例示的なネットワークインターフェースは、並列インターフェース、直列インターフェース、およびバスインターフェースを含む。
【００２６】
コンピューティングデバイス１１０、１３０は、それぞれのコンピューティングシステム１２０、１２０ａを実施することができる。コンピューティングシステム１２０、１２０ａは、１つまたは複数のプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラー、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、およびマルチメディアＩ／Ｏ（入出力）コンポーネントなど、様々なコンピューティング要素を含むことができる。コンピューティングシステム１２０、１２０ａは、要素の中でもとりわけ、それぞれのクライアントアプリケーションプログラム１２２およびサーバーアプリケーションプログラム１３２を実施することができる。図１に示される例では、クライアントアプリケーションプログラム１２２は、Ｅメールクライアントアプリケーション１２４および他のアプリケーション１２６を含むことができ、サーバーアプリケーションプログラム１３２は、Ｅメールサーバーアプリケーション１３４および他のアプリケーション１３６を含むことができる。様々な実施では、Ｅメールクライアントアプリケーション１２４および／またはＥメールサーバーアプリケーション１３４は、説明される実施形態に従った１つまたは複数の項目集約技術および表示技術を実行することができる。
【００２７】
アプリケーション１２６は、クライアントコンピューティングデバイス１１０の動作をサポートする１つまたは複数のタイプのアプリケーションプログラムを含むことができる。例示的なアプリケーションプログラムは、ウェブブラウザアプリケーション、電話アプリケーション（例えば、セルラー、ＶｏＩＰ、ＰＴＴ）、ネットワーキングアプリケーション、メッセージングアプリケーション（例えば、ＩＭ、ＳＭＳ、ＭＭＳ）、カレンダアプリケーション、連絡先アプリケーション、タスクアプリケーション、文書処理アプリケーション、表計算アプリケーション、データベースアプリケーション、メディアアプリケーション（例えば、ビデオプレーヤ、オーディオプレーヤ、マルチメディアプレイヤ、デジタルカメラ、ビデオカメラ、メディア管理）、位置情報に基づくサービス（ＬＢＳ：ｌｏｃａｔｉｏｎ  ｂａｓｅｄ  ｓｅｒｖｉｃｅ）アプリケーション、およびゲーミングアプリケーションなどを含むことができるが、それらに限定されない。
【００２８】
アプリケーション１３６は、サーバーコンピューティングデバイス１３０の動作をサポートする１つまたは複数のタイプのアプリケーションプログラムを含むことができる。様々な実施では、アプリケーション１３６は、説明される実施形態に従った、Ｅメールサーバー、ウェブサーバー、および／またはファイルサーバーなどの、サーバーコンピューティングデバイス１３０の動作をサポートするサーバーアプリケーションプログラムを含むことができる。場合によっては、１つまたは複数のアプリケーション１３６は、１つまたは複数のアプリケーション１２６のネットワークベース、サーバーベース、またはウェブベースのバージョンを含むことができる。そのような場合、アプリケーション１２６、１３６は、クライアントコンピューティングデバイス１１０がオフラインである場合は、別々に動作することができ、またはクライアントコンピューティングデバイス１１０がオンラインであり、ネットワーク１１８を介してサーバーコンピューティングデバイス１３０に接続されている場合は、相互動作を行うことができる。
【００２９】
コンピューティングシステム１２０、１２０ａは、クライアントコンピューティングデバイス１１０およびサーバーコンピューティングデバイス１３０の動作を制御するのに適した、それぞれのオペレーティングシステム１２８、１３８を含むことができる。いくつかの実施形態では、オペレーティングシステム１２８、１３８は、本願出願人が販売するＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムなどのオペレーティングシステムのクライアントバージョンおよびサーバーバージョンをそれぞれ含むことができる。他の適切なオペレーティングシステムが、クライアントコンピューティングデバイス１１０および／またはサーバーコンピューティングデバイス１３０のために使用できることが理解できよう。
【００３０】
コンピューティングデバイス１１０、１３０は、メールボックスおよびフォルダー内のＥメールメッセージおよび他のデータなどの項目を保存するためのデータストアを備えること、またはデータストアと通信することができる。図１を参照すると、データストアは、データベース１４０によって実施することができる。そのような実施では、ネットワーク１１８を介して接続されている場合、サーバーコンピューティングデバイス１３０は、クライアントコンピューティングデバイス１１０に、データベース１４０へのアクセスを提供することができる。代替的または追加的に、クライアントコンピューティングデバイス１１０は、ネットワーク１１８を介してデータベース１４０に直接アクセスすることができる。説明の目的で別個の要素として示されているが、いくつかの実施形態では、データベース１４０は、クライアントコンピューティングデバイス１１０および／またはサーバーコンピューティングデバイス１３０の一部を形成できることが理解できよう。データストアは、クライアントコンピューティングデバイス１１０上、サーバーコンピューティングデバイス１３０上、および／またはデータベース１４０上に存在できること、いくつかの実施形態では、クライアントコンピューティングデバイス１１０、サーバーコンピューティングデバイス１３０、および／またはデータベース１４０は、互いに同期させることができる、それぞれのデータストアを保存できることが理解できよう。
【００３１】
それぞれのコンピューティングシステム１２０、１２０ａに加えて、コンピューティングデバイス１１０、１３０は、それぞれの通信システム１５０、１５０ａを実施することができる。通信システム１５０、１５０ａは、送信機、受信機、トランシーバー、無線機、ネットワークインターフェース、ベースバンドプロセッサ、アンテナ、増幅器、およびフィルタなど、様々な通信要素を含むことができる。一実施形態では、例えば、コンピューティングデバイス１１０、１３０は、図２を参照して説明されるようなコンピューティングおよび通信アーキテクチャを使用して実施することができる。
【００３２】
図２は、様々な実施形態を実施するのに適したコンピューティングデバイス２００の例示的なアーキテクチャを提供している。コンピューティングデバイス２００は、例えば、クライアントコンピューティングデバイス１１０および／またはサーバーコンピューティングデバイス１３０を表すことができる。図示されるように、コンピューティングデバイス２００は、プロセッサ２０４およびシステムメモリ２０６を備える処理システムを含む、パーソナルコンピューターまたはサーバーコンピューターのために従来のコンピューティングアーキテクチャを示している。システムメモリ２０６は、メモリのタイプの中でもとりわけ、ＲＡＭ（ランダムアクセスメモリ）２０８およびＲＯＭ（リードオンリメモリ）２１０を含むことができる。ＢＩＯＳ（基本Ｉ／Ｏシステム）などのＩ／Ｏ（入出力）システムは、ＲＯＭ２１０内に保存されたロジックを使用して、スタートアップ動作中などに、コンピューティングデバイス２００内の要素間で情報を転送するのを助けるルーチンを実施することができる。システムバス２１２は、コンピューティングデバイス２００の要素のすべてを通信可能に結合して、情報転送動作およびデータ処理動作を円滑化する。
【００３３】
コンピューティングデバイス２００は、オペレーティングシステム１２８などのオペレーティングシステムに加えて、他のプログラムモジュール２１６およびプログラムデータ２１８を保存するための大容量記憶デバイス２１４をさらに含む。大容量記憶デバイス２１４は、以下でより詳細に説明されるように、様々なアプリケーションプログラムも保存することができる。
【００３４】
大容量記憶デバイス２１４は、システムバス２１２に接続された大容量記憶コントローラー（図示されず）を介してプロセッサ２０４に接続される。大容量記憶デバイス２１４および関連するコンピューター可読媒体は、コンピューティングデバイス２００のための不揮発性記憶を提供する。本明細書に含まれるコンピューター可読媒体の説明は、ハードディスクまたはＣＤ−ＲＯＭドライブなどの大容量記憶デバイスに関するが、コンピューター可読媒体は、コンピューティングデバイス２００によってアクセスできる任意の利用可能な媒体とすることができることを当業者であれば理解されたい。限定することなく例を挙げると、コンピューター可読媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を保存するための任意の方法または技術で実施される、揮発性および不揮発性、着脱可能および着脱不能な媒体を含む。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のソリッドステートメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ、もしくは他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶、もしくは他の磁気記憶デバイス、または所望の情報を保存するのに使用でき、コンピューターによってアクセスできる他の任意の媒体を含むが、それらに限定されない。
【００３５】
様々な実施形態によれば、コンピューティングデバイス２００は、いくつかの実施ではインターネットなどのＴＣＰ（伝送制御プロトコル）およびＩＰ（インターネットプロトコル）ネットワークとすることができるネットワーク１１８を介したリモートコンピューターへの論理接続を使用して、ネットワーク環境において動作することができる。コンピューティングデバイス２００は、システムバス２１２に接続されたネットワークインターフェース２２０（例えば、有線または無線ネットワークインターフェース）を介してネットワーク１１８に接続することができる。ネットワーク１１８は、ＷＡＮ（ワイドエリアネットワーク）、ＬＡＮ（ローカルエリアネットワーク）、および／またはセルラー電話ネットワークを含むが、それらに限定されない、説明される実施形態に従った任意のタイプのネットワークを含むことができること、ネットワークインターフェース２２０は、様々なネットワークおよび／またはリモートコンピューターシステムに接続するためのＧＰＲＳ、ＣＤＭＡ  １ｘＲＴＴ、およびＩＥＥＥ８０２．１１などの様々なトランスポート層をサポートできることが理解できよう。
【００３６】
コンピューティングデバイス２００は、多くの入力デバイス２２４から入力を受信し、処理するためのＩ／Ｏコントローラー２２２を含むことができる。ユーザーは、キーボード、およびマウス、トラックボール、またはタッチパッドなどのポインティングデバイスなどの様々な入力デバイス２２４を介して、コンピューティングデバイス２００にコマンドおよび情報を入力することができる。入力デバイス２２４の他の例は、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、またはスキャナーなどを含むことができる。入力デバイス２２４は、システムバス２１２に結合されたＩ／Ｏコントローラー２２２を介してプロセッサ２０４に接続することができるが、パラレルポート、ゲームポート、またはＵＳＢ（ユニバーサルシリアルバス）などの他のインターフェースおよびバス構造によって接続することもできる。Ｉ／Ｏコントローラー２２２は、Ｉ／Ｏコントローラー２２２を介してシステムバス２１２に接続されるモニタまたは他のタイプの表示デバイスなど、様々な出力デバイス２２４に出力を提供することもできる。様々な実施では、表示デバイスは、説明される実施形態に従った１つまたは複数のＵＩ（ユーザーインターフェース）をユーザーに提示することができる。表示デバイスに加えて、Ｉ／Ｏコントローラー２２２は、プリンター、スピーカ、および他の周辺デバイスに出力を提供することができる。
【００３７】
上で述べられたように、多くのプログラムモジュールおよびデータファイルは、コンピューティングデバイス２００の大容量記憶デバイス２１４およびＲＡＭ２０８に保存することができる。図２に示される例では、大容量記憶デバイス２１４およびＲＡＭ２０８は、オペレーティングシステム１２８に加えて、Ｅメールクライアントアプリケーション１２４および他のアプリケーション１２６を含む１つまたは複数のクライアントアプリケーションプログラム１２２を保存することができる。いくつかの実施では、大容量記憶デバイス２１４およびＲＡＭ２０８は、オペレーティングシステム１３８に加えて、Ｅメールサーバーアプリケーション１３４および他のアプリケーション１３６を含む１つまたは複数のサーバーアプリケーションプログラム１３２を保存できることが理解できよう。
【００３８】
様々な実施形態によれば、Ｅメールクライアントアプリケーション１２４および／またはＥメールサーバーアプリケーション１３４は、１つまたは複数の自動会話技術を実施することができる。一実施形態では、例えば、Ｅメールクライアントアプリケーション１２４および／またはＥメールサーバーアプリケーション１３４は、図３を参照して説明されるように実施することができる。
【００３９】
図３は、様々な実施形態を実施するのに適したＥメールアプリケーション３００の一実施形態を示している。図１および図２を参照すると、いくつかの実施では、Ｅメールアプリケーション３００は、コンピューティングデバイス１１０上に存在するクライアントアプリケーションプログラム１２２の１つとしてのＥメールクライアントアプリケーション１２４として動作することができる。代替的または追加的に、Ｅメールアプリケーション３００は、コンピューティングデバイス１３０上に存在するサーバーアプリケーションプログラム１３２の１つとしてのＥメールサーバーアプリケーション１３４として動作することができる。さらに、Ｅメールアプリケーション３００の１つまたは複数の部分は、Ｅメールクライアントアプリケーション１２４およびＥメールサーバーアプリケーション１３４の間に分散することができる。Ｅメールアプリケーション３００の１つまたは複数の部分は、コンピューティングデバイス２００のＲＡＭ２０８内の、別のリモートコンピューター上の、またはコンピューターソフトウェア分野の当業者が思いつく他の任意の変形内のアプリケーションプログラムによって実施することもできる。
【００４０】
図示されるように、Ｅメールアプリケーション３００は、項目ストレージ（ｉｔｅｍ  ｓｔｏｒａｇｅ）３１０を含むことができる。限定ではなく説明の目的で、項目ストレージ３１０は、Ｅメールアプリケーション３００の一部として示されているが、項目ストレージ３１０は、説明される実施形態に従った様々なロケーションに存在できることが理解できよう。例えば、項目ストレージ３１０は、クライアントコンピューティングデバイス１１０上、サーバーコンピューティングデバイス１３０上、および／またはデータベース１４０上に存在することができる。１つの非限定的な例として、Ｅメールアプリケーション３００の項目ストレージ３１０は、データベースおよび／または１つもしくは複数のファイル内の、コンピューティングデバイス２００のプログラムデータ２１８内に存在することができる。別の非限定的な例として、項目ストレージ３１０は、全体的または部分的に、オペレーティングシステム１２８またはオペレーティングシステム１３８などのオペレーティングシステムのファイルシステム内の、ユーザーによって指定されたディレクトリに存在することができる。別の非限定的な例として、項目ストレージ３１０は、全体的または部分的に、サーバーコンピューティングデバイス１３０によってアクセスまたはホストできるデータベース１４０上に存在することができる。
【００４１】
図３に示される例では、項目ストレージ３１０は、受信トレイフォルダー３１２と、ジャンクフォルダー３１４と、送信済項目フォルダー３１６と、１つまたは複数の他のＥメールフォルダー３１８と、１つまたは複数のアーカイブファイル３２０とを含む。フォルダーまたはファイルという用語は、項目の任意の集まりではあるが、保存および／またはユーザーインターフェース内に表された項目の集まりを指示できることが理解できよう。いくつかのオペレーティングシステムまたはアプリケーションは、項目の集まりを指示する場合、フォルダーという用語を使用しないことがあるが、そのようなシナリオも、フォルダーを説明および例示する実施形態によってカバーされることが意図されている。他のフォルダー変形およびファイルを説明される実施形態に従って実施できることも理解できよう。
【００４２】
Ｅメールアプリケーション３００は、受信トレイフォルダー３１２、ジャンクフォルダー３１４、送信済項目フォルダー３１６、およびある送信者もしくは受信者、主題（例えばプロジェクト）、内容（例えば、テキスト、添付ファイル）、または他の基準などに関連する項目を保存するためのユーザー作成フォルダーなどの１つまたは複数の他のＥメールフォルダー３１８などの、何らかの論理的なフォルダー内に項目を保存する能力をユーザーに提供することができる。ユーザーは、Ｅメールアプリケーション３００とインターフェースをとり、手動で様々なフォルダーに項目を組織化することができる。ユーザーは、送信者、受信者、主題、内容、または他の基準に基づいて、項目をあるフォルダーに自動的に分類するための１つまたは複数のフィルタリングルールを設定することもできる。加えて、他のメッセージに応答してユーザーによって送信された返答メッセージは、送信済項目フォルダー３１６内に保存することができる。ユーザーは、ユーザーのローカルハードドライブおよび／または他の任意の適切なアーカイビングデータ構造上に１つまたは複数のパーソナルストレージテーブル（Ｐｅｒｓｏｎａｌ  Ｓｔｏｒａｇｅ  Ｔａｂｌｅ）拡張子（．ｐｓｔ）ファイルとして実施できる、１つまたは複数のアーカイブファイル３２０内により古い項目を保存することもできる。
【００４３】
Ｅメールアプリケーション３００は、ユーザーが、保存メッセージを論理的な会話にグループ化することを可能にすることができる。各会話は、関連する項目のグループを含むことができ、例えば、ルートメッセージと、ルートメッセージに対する返答または互いに対する返答とを含む。場合によっては、会話をなす関連する項目は、受信トレイフォルダー３１２、ジャンクフォルダー３１４、送信済項目フォルダー３１６、他のＥメールフォルダー３１８、およびアーカイブファイル３２０のうちの２つ以上など、複数の保存ロケーションにわたって保存することができる。
【００４４】
図示されるように、Ｅメールアプリケーション３００は、本明細書で説明される項目集約技術および表示技術の一部または全部を実行することに責任をもつことができる項目管理ロジック（ｉｔｅｍ  ｍａｎａｇｅｍｅｎｔ  ｌｏｇｉｃ）３３０を含むことができる。図３に示される例では、項目管理ロジック３３０は、様々なモジュールを含み、各モジュールは、項目管理ロジック３３０によって実行される様々な動作のためのロジックの別個の組を表す。
【００４５】
項目管理ロジック３３０は、他の様々な動作および機能をサポートできる、Ｅメールアプリケーション３００を動作させるための他のロジックも含むことができる。例示的な動作および機能は、送信および受信動作、保存および組織化動作、フィルタリング動作、ソーティング動作、検索動作、プレビューイング動作、同期のための機能、ウェブアクセスおよびモバイルアクセスを含むメッセージングデータにアクセスするための機能、ユーザーのオンライン／オフライン状態を検出するための機能、Ｅメールアプリケーション３００をカレンダ機能、連絡先機能、およびタスク機能と統合するための機能、ならびに／または説明される実施形態に従った他の任意の機能を含むことができる。
【００４６】
いくつかの実施では、項目管理ロジック３３０は、クライアントコンピューティングデバイス１１０上のクライアントアプリケーションプログラム１２２の一部としての、またはサーバーコンピューティングデバイス１３０上のサーバーアプリケーションプログラム１３２の一部としてのＥメールアプリケーション３００内に存在することができる。しかし、代替的または追加的に、項目管理ロジック３３０は、説明される実施形態に従って、様々なロケーションにおいて、１つまたは複数のタイプのコンピューター可読記憶媒体上に保存されたコンピューター実行可能命令として具現できることが理解できよう。
【００４７】
図３に示される例は、特定の１組のロジックを含むが、項目管理ロジック３３０は、一般的な機能の例示的な実施を提供することが理解できよう。ロジックの系列は、別途指摘されない限り、必ずしも提示された順序で実行される必要がないことを理解されたい。加えて、項目管理ロジック３３０は、ステップのある系列を実行するものとして説明できるが、代替の実施形態に従って、ステップの他の系列を実行することもできる。さらに、項目管理ロジック３３０によって実行されるいくつかの個別ステップは、その個別ステップに適した様々な系列で実行できる複数のサブステップを含むことができる。さらに、特定の実施に応じて、項目管理ロジック３３０によって、追加的なステップを実行することができ、またはいくつかのステップを省略することができる。
【００４８】
図３に示される例示的な実施形態では、項目管理ロジック３３０は、入来メッセージモジュール３３２と、会話識別モジュール３３４と、会話マネージャーモジュール３３６と、メッセージ検索モジュール（ｍｅｓｓａｇｅ  ｒｅｔｒｉｅｖａｌ  ｍｏｄｕｌｅ）３３８と、送出メッセージモジュール（ｏｕｔｇｏｉｎｇ  ｍｅｓｓａｇｅ  ｍｏｄｕｌｅ）３４０とに細分することができる。これらのモジュールが１つまたは複数の共通の命令を共有できることを理解されたい。さらに、項目管理ロジック３３０は、追加的なメッセージ機能を提供するために、説明されたモジュールに加えて、他のメッセージモジュール３４２も含むことができることを理解されたい。例えば、項目管理ロジックは、「スパム」Ｅメールメッセージを排除するメッセージモジュールを含むことができる。
【００４９】
プロセッサ２０４によって実行されると、入来メッセージモジュール３３２は、オペレーティングシステム１２８と対話して、ネットワーク１１８からネットワークインターフェース２２０によって受信された入来Ｅメールメッセージを受信する。例えば、入来メッセージモジュール３３２は、オペレーティングシステム１２８によって提供されるインターフェースを使用して、オペレーティングシステム１２８に入来Ｅメールメッセージを入来メッセージモジュール３３２に提供させるコールバックを構成することができる。入来メッセージモジュール３３２は、入来Ｅメールメッセージを受信すると、入来Ｅメールメッセージに対して１つまたは複数のＥメール処理動作を実行することができる。例えば、入来メッセージモジュール３３２は、入来Ｅメールアドレスが、コンピューティングデバイス１１０、１３０によって予め維持されるアクティブアカウントに関連するＥメールアドレスを指定した、「ｔｏ」プロパティ、「ｃｃ」プロパティ、または「ｂｃｃ」プロパティを含むかどうかを決定することができる。この例では、入来メッセージモジュール３３２は、入来Ｅメールメッセージの「ｔｏ」プロパティ、「ｃｃ」プロパティ、または「ｂｃｃ」プロパティが、コンピューティングデバイス１１０、１３０によって以前維持されていた非アクティブアカウントに関連するＥメールアドレスを指定している場合、送出「宛先不明（ｂｏｕｎｃｅ）」メッセージを生成することができる。入来メッセージモジュール３３２は、入来Ｅメールメッセージに対してＥメール処理動作を実行した後、入来Ｅメールメッセージを会話識別モジュール３３４に提供することができる。
【００５０】
項目管理ロジック３３０は、入来メッセージモジュール３３２に通信可能に結合された会話識別モジュール３３４を含むことができる。会話識別モジュール３３４は、入来メッセージが会話スレッドの一部であることを決定するように動作する。会話識別モジュール３３４は、入来メッセージの会話識別子プロパティを会話スレッドの会話識別子に設定することによって、入来メッセージを会話スレッドに関連付ける。
【００５１】
プロセッサ２０４によって実行されると、会話識別モジュール３３４は、入来メッセージモジュール３３２から入来Ｅメールメッセージを受信し、入来Ｅメールメッセージに関連付けられた既存の会話を識別しようと試みる。会話識別モジュール３３４は、入来Ｅメールメッセージに関連付けられた既存の会話をうまく識別できない場合、入来Ｅメールメッセージを新しい会話に関連付けることができる。
【００５２】
会話識別モジュール３３４は、メッセージが既存の会話の一部であるかどうかを多くの異なる方法で決定することができる。一実施形態では、例えば、会話識別モジュール３３４は、以下の条件、すなわち、
（１）入来Ｅメールメッセージが、既存の会話に関連付けられた保存メッセージの「ｍｅｓｓａｇｅ  ｉｄｅｎｔｉｆｉｅｒ」プロパティによって指定される値に対応する値を指定する「ｉｎ−ｒｅｐｌｙ−ｔｏ」プロパティを含む、
（２）入来Ｅメールメッセージが、既存の会話に関連付けられた保存メッセージの「ｍｅｓｓａｇｅ  ｉｄｅｎｔｉｆｉｅｒ」プロパティによって指定される値に対応する値を指定する「ｒｅｆｅｒｅｎｃｅｓ」プロパティを含む、および
（３）入来Ｅメールの正規化された「ｓｕｂｊｅｃｔ」プロパティが、既存の会話に関連付けられた保存メッセージの正規化された「ｓｕｂｊｅｃｔ」プロパティに一致する
という条件の１つまたは複数が生じた場合、入来Ｅメールメッセージを既存の会話に関連付けるアルゴリズムを実行する。
【００５３】
これらの条件の１つの発生は、会話識別モジュール３３４が、入来Ｅメールメッセージを既存の会話に関連付けることを可能にするための例示的な１組の前提条件を表すことができる。しかし、会話識別モジュール３３４が入来Ｅメールメッセージを既存の会話に関連付ける前に、追加的な条件が生じることができる実施も存在することができる。例えば、一実施は、条件（１）が生じない場合に条件（２）が生じたときに限って、受信メッセージを既存の会話に関連付けることができる。
【００５４】
追加的または代替的に、会話識別モジュール３３４は、Ｅメールメッセージを会話に関連付けるように動作しない。代わりに、会話識別モジュール３３４は、Ｅメールメッセージを会話に関連付けるアクションを実行することができる。これは、入来Ｅメールメッセージおよび送出Ｅメールメッセージの両方を含む。
【００５５】
会話識別モジュール３３４は、入来Ｅメールメッセージを既存の会話に関連付けた後、または入来Ｅメールメッセージを新しい会話に関連付けた後、入来Ｅメールメッセージを、入来Ｅメールメッセージに関連付けられた会話を識別する会話識別子（Ｃｏｎｖｅｒｓａｔｉｏｎ  Ｉｄｅｎｔｉｆｉｅｒ）とともにメッセージデータベース３５０内に保存することができる。一実施では、メッセージデータベース３５０は、各Ｅメールメッセージに対応する行と、Ｅメールメッセージの各プロパティに対応する列とを含むテーブルを含む。例えば、テーブルは、Ｅメールメッセージの「ｔｏ」プロパティ、Ｅメールメッセージの「ｆｒｏｍ」プロパティ、Ｅメールメッセージの「ｃｃ」プロパティ、Ｅメールメッセージの「ｄａｔｅ」プロパティ、Ｅメールメッセージの「ｓｕｂｊｅｃｔ」プロパティ、およびＥメールメッセージの「ｂｏｄｙ」プロパティなどに対応する列を含むことができる。さらに、この例では、テーブルは、Ｅメールメッセージに関連付けられた会話を識別する会話識別子に対応する列を含むことができる。以下の表１に一例が提供されている。
【００５６】
【表１】
0005480894.tif 000002
【００５７】
テーブルがＥメールメッセージの他の多くのプロパティに対応する列を含むことができることを理解されたい。これらの他のプロパティは、「Ｘ−ＭｉｍｅＯＬＥ」プロパティ、「Ｃｏｎｔｅｎｔ−ｃｌａｓｓ」プロパティ、「ＭＩＭＥ−Ｖｅｒｓｉｏｎ」プロパティ、「Ｃｏｎｔｅｎｔ−Ｔｙｐｅ」プロパティ、「Ｃｏｎｔｅｎｔ−Ｔｒａｎｓｆｅｒ−Ｅｎｃｏｄｉｎｇ」プロパティ、「Ｄａｔｅ」プロパティ、「Ｍｅｓｓａｇｅ  ＩＤ」プロパティ、「Ｘ−ＭＳ−Ｈａｓ−Ａｔｔａｃｈ」プロパティ、「Ｘ−ＭＳ−ＴＮＥＦ−Ｃｏｒｒｅｌａｔｏｒ」プロパティ、「Ｘ−Ｐｒｉｏｒｉｔｙ」プロパティ、「Ｐｒｉｏｒｉｔｙ」プロパティ、「Ｉｍｐｏｒｔａｎｃｅ」プロパティ、「ｃｃ」プロパティ、および「ｂｃｃ」プロパティなどを含むことができる。さらに、表１が、Ｅメールアドレス「ｙｂａｒａ＠ｍｉｃｒｏｓｏｆｔ．ｃｏｍ」に関連付けられた人とＥメールアドレス「ｂａｒｎｅｙ＠ｍｉｃｒｏｓｏｆｔ．ｃｏｍ」に関連付けられた人の間で交換された、昼食を共にするかどうかに関する一連のＥメールメッセージを含むことが容易に理解できる。これらのＥメールメッセージが、「ｃｏｎｖｅｒｓａｔｉｏｎ  ｉｄｅｎｔｉｆｉｅｒ」プロパティに列挙された同じ会話識別子を有することに留意されたい。このように、これらのＥメールメッセージの「ｃｏｎｖｅｒｓａｔｉｏｎ  ｉｄｅｎｔｉｆｉｅｒ」プロパティの会話識別子は、これらのＥメールメッセージが共通の会話に関連付けられていることを示す。
【００５８】
項目管理ロジック３３０は、会話マネージャーモジュール３３６に通信可能に結合されたメッセージ検索モジュール３３８を含むことができる。プロセッサ２０４によって実行されると、メッセージ検索モジュール３３８は、メッセージデータベース３５０内に保存されたＥメールメッセージを、ユーザーが検索することを可能にする。Ｅメールアプリケーション３００がサーバーコンピューティングデバイス１３０によって実施される場合、例えば、メッセージ検索モジュール３３８は、クライアントコンピューティングデバイス１１０上のＥメールクライアントアプリケーション１２４から定期的な要求を受信して、クライアントコンピューティングデバイス１１０のユーザーに関連付けられたＥメールアドレスを指定する新しいメッセージを検索することができる。そのような要求に応答して、メッセージ検索モジュール３３８は、以前にクライアントコンピューティングデバイス１１０に送信されたことのない、メッセージデータベース３５０内の新しいＥメールメッセージを識別することができる。メッセージ検索モジュール３３８は、そのような新しいＥメールメッセージを識別した場合、識別されたＥメールメッセージを、そのＥメールメッセージの会話識別子とともに、クライアントコンピューティングデバイス１１０に送信することができる。識別されたＥメールメッセージを受信すると、クライアントコンピューティングデバイス１１０上のＥメールクライアントアプリケーションは、識別されたＥメールメッセージが、以前に検索されたＥメールメッセージとともに、Ｅメールメッセージが関連付けられた会話によってグループ化された、ユーザーインターフェースビューを提示することができる。例えば、クライアントコンピューティングデバイス１１０は、会話に関連付けられたＥメールメッセージがＥメールメッセージのツリーとして提示される、ユーザーインターフェースビューを提示することができる。別の例では、クライアントコンピューティングデバイス１１０は、会話ごとに別々のＥメールメッセージのリストを含むインターフェースを提示することができる。
【００５９】
項目管理ロジック３３０は、メッセージ検索モジュール３３８に通信可能に結合された送出メッセージモジュール３４０を含むことができる。プロセッサ２０４によって実行されると、送出メッセージモジュール３４０は、ユーザーが、送出Ｅメールメッセージを送信することを可能にする。例えば、送出メッセージモジュール３４０は、クライアントコンピューティングデバイス１１０上のＥメールクライアントアプリケーション１２４から要求を受信して、送出Ｅメールメッセージを送信することができる。この例では、送出メッセージモジュール３４０は、送出Ｅメールメッセージを会話識別子に関連付け、この会話識別子を送出Ｅメールメッセージに組み込むことができる。送出メッセージモジュール３４０は、送出Ｅメールメッセージを会話識別子に関連付け、この会話識別子をＥメールメッセージの「ｃｏｎｖｅｒｓａｔｉｏｎ  ｉｄｅｎｔｉｆｉｅｒ」プロパティとして送出Ｅメールメッセージに組み込んだ後、送出Ｅメールメッセージをネットワーク１１８上に送信するようオペレーティングシステム１２８に命令することができる。
【００６０】
項目管理ロジック３３０は、会話識別モジュール３３４に通信可能に結合された会話マネージャーモジュール３３６を含むことができる。一般に、会話マネージャーモジュール３３６は、様々な自動会話技術を実施するように構成することができる。会話マネージャーモジュール３３６は、Ｅメールアプリケーション３００によって管理される会話グループまたは会話スレッドの全体にわたって適用できる会話レベルアクションの形で、自動会話技術を実施する。会話レベルアクションは一般に、会話スレッド全体の一部または全部のメッセージに影響する。対照的に、項目レベルアクションは一般に、単一のメッセージ項目に影響する。
【００６１】
会話機能を用いてユーザーが情報過剰を低減するのを助けるという主要教義の１つは、会話モデル上で行動するための容易な方法をユーザーに提供することである。会話モデルは、今では知的に、ユーザーが対話しているメッセージのグループを表す。新しい会話モデルがサポートする２つの主要なグループのアクションが存在する。第１に、会話モデルは、これまではもっぱら項目レベルアクションであったものを会話レベルに進展させ、特に会話項目に対する新しい１組のアクションの導入を推進する。項目レベルアクションの進展は、ユーザーが会話全体に対して単一の会話ルールを設定すればよいように、「２値判定（Ｆｌａｇ）」、「類別（Ｃａｔｅｇｏｒｉｚｅ）」、および「割り当て（Ａｓｓｉｇｎ）」などの、かつてはメッセージに対して個別に実行されていたアクションを一括することに関する。例えば、ユーザーは、会話スレッドについて２値判定を行うことができ、それを使用して、会話スレッド内の最新のメッセージについて容易に２値判定を行うことができる。さらに、会話レベルビューを有することで、Ｅメールアプリケーション３００が、アクションの第２のカテゴリを、特に会話スレッド自体に特別に作用するカテゴリを導入することを可能にする。これらは、常時削除会話ルールまたは常時移送会話ルールなど、「会話」のセマンティックを利用する１組の動作である。
【００６２】
会話マネージャーモジュール３３６は、会話スレッドのための会話ルールを作成するように動作する。オペレータまたはユーザーは、会話スレッドから１つまたは複数のメッセージを選択し、１つまたは複数のメッセージに会話ルールを割り当てることによって、会話スレッドのための会話ルールを作成することができる。会話ルールは、会話スレッドの会話識別子（ＩＤ）プロパティが共通する既存または将来のメッセージに対して実行する１組の会話レベルアクションを定義する。既存のメッセージは、メッセージデータベース３５０内に保存することができる。将来のメッセージは、ネットワーク１１８およびネットワークインターフェース２２０を介してリモートデバイスから受信された、Ｅメールアプリケーション３００への新しい入来メッセージを含むことができる。会話ルールのいくつかの例は、とりわけ、「常時削除」会話ルール、「常時移送」会話ルール、「常時類別」会話を含むが、それらに限定されない。これらの会話ルールの各々が以下でさらに説明される。
【００６３】
会話マネージャーモジュール３３６は、会話スレッドのための会話ルールを作成すると、その会話ルールを会話アクションテーブル（ＣＡＴ：ｃｏｎｖｅｒｓａｔｉｏｎ  ａｃｔｉｏｎ  ｔａｂｌｅ）内に保存する。ＣＡＴは、会話レベルアクションを推進するのに必要とされる情報を保存するために設計された新しいテーブルである。ＣＡＴは、会話「オブジェクト」がそれに関連付けられた進行中アクション（ｏｎｇｏｉｎｇ  ａｃｔｉｏｎ）を有する場所である。それは、進行中アクションまたはアクションの組を有する、各会話のためのエントリを含む、ＰＳＴによるテーブルである。ＣＡＴの基本構造が、以下の表２に示されている。
【００６４】
【表２】
0005480894.tif 000003
【００６５】
表２に示されるように、ＣＡＴは、会話識別子、会話ルールがその会話識別子に適用されるかどうかを示すパラメーター（ＹｅｓまたはＮｏ）、および常時移送会話ルールのための目標フォルダー、または常時類別会話ルールのためのカテゴリ名など、与えられたルールを実施するのに必要とされる情報を含むことができる。ＣＡＴは、与えられた会話ルールが効力を保っている期間を示す有効期限日時も提供する。新しい入来メッセージが入来メッセージモジュール３３２に到着し、会話識別モジュール３３４がその入来メッセージを会話スレッドの一部として識別したときは常に、会話マネージャーモジュール３３６は、ＣＡＴを調べ、会話スレッドに関連付けられた様々な会話ルールに従って、その後のメッセージ処理動作を入来メッセージに対して実行する。
【００６６】
会話マネージャーモジュール３３６は、入来メッセージを削除項目フォルダーに自動的に回送するための常時削除会話ルールを作成するように動作する。常時削除会話ルールは、ユーザーが、会話に到着した新しい項目を削除項目フォルダーに自動的に移送し、それによって、その入来メッセージを受信トレイフォルダーから除去することを可能にする、パワーユーザー用の機能である。ユーザーは、ユーザーインターフェースリボン（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ  ｒｉｂｂｏｎ）上のユーザーインターフェースボタンなどのユーザーインターフェース要素を選択することによって、常時削除会話ルールを作成することができる。
【００６７】
ユーザーが、会話のメッセージなど、単一の会話項目を選択して、その単一の会話項目にフォーカスを当て、「常時削除」のためのユーザーインターフェースボタンを選択した場合、会話マネージャーモジュール３３６は、常時削除会話ルールを作成する動作を開始する。会話マネージャーモジュール３３６は最初に、会話がすでに既存の常時削除会話ルールをしかるべき箇所に有するかどうかを決定する。これは、会話項目のプロパティをチェックして、ペアレント会話項目がそれに関連付けられた進行中アクションを有するかどうかを決定することによって、達成することができる。このプロパティは、ＣＡＴ処理が行われるときに、メッセージに対して設定される。会話マネージャーモジュール３３６は、表３に示される以下のプロパティを有するダイアログボックスなどのユーザーインターフェースビューを生成する。
【００６８】
【表３】
0005480894.tif 000004
【００６９】
ユーザーが［ＯＫ］をクリックした場合、会話のための現在のフォルダー内の個々のメッセージのすべてが、削除項目フォルダーに移送される。この会話についてのエントリが、まだ存在していない場合、ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤを使用してＣＡＴ内に作成される。この会話に到達した、ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤに一致する新しい会話項目は、削除項目フォルダーに自動的に移送される。このロジックは、ＣＡＴ内に設定された有効期限ガイドラインの制約を受ける。
【００７０】
複数の会話項目にフォーカスが当てられ、ユーザーが「常時削除」のためのユーザーインターフェースボタンを選択した場合、会話マネージャーモジュール３３６は、常時削除会話ルールを作成する動作を開始する。会話マネージャーモジュール３３６は最初に、選択された会話項目のための現在のフォルダーが削除項目フォルダーであるかどうかを決定する。そうでなければ、会話マネージャーモジュール３３６は、表４に示される以下のプロパティを有するダイアログボックスなどのユーザーインターフェースビューを生成する。
【００７１】
【表４】
0005480894.tif 000005
【００７２】
ユーザーが［ＯＫ］をクリックした場合、選択された会話のための現在のフォルダー内の個々のメッセージのすべてが、削除項目フォルダーに移送される。会話の各々についてのエントリが、ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤを使用してＣＡＴ内に作成される。これらの会話に到達した、ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤに一致する新しい項目は、削除項目フォルダーに自動的に移送される。このロジックは、ＣＡＴ内に設定された有効期限ガイドラインの制約を受ける。
【００７３】
ユーザーは、多くの異なる方法で、会話に対する「常時削除」進行中アクションを無効化することができる。会話のための常時削除会話ルールを無効化するため、ユーザーは、削除項目フォルダーに移ることができる。
【００７４】
単一の会話項目にフォーカスが当てられ、その会話項目が現在、常時削除会話ルールの適用を受けており、現在のフォルダーが削除項目フォルダーである場合、リボンユーザーインターフェースは、その会話スレッドから常時削除会話ルールを解除する「常時削除無効化（Ｄｉｓａｂｌｅ  Ａｌｗａｙｓ  Ｄｅｌｅｔｅ）」ユーザーインターフェースボタンを表示する。ユーザーインターフェースボタンを選択することで、会話マネージャーモジュール３３６に、表５に示される以下のプロパティを有するダイアログボックスなどのユーザーインターフェースビューを生成させる。
【００７５】
【表５】
0005480894.tif 000006
【００７６】
ユーザーが［ＯＫ］を選択した場合、会話スレッド内の個々のメッセージのすべてが受信トレイフォルダーに移送される。会話マネージャーモジュール３３６は、常時削除会話ルールに対応するエントリをＣＡＴから削除する。
【００７７】
複数の会話項目にフォーカスが当てられ、それらの会話項目が現在常時削除会話ルールの適用を受けており、現在のフォルダーが削除項目フォルダーである場合、リボンユーザーインターフェースは、その会話スレッドから常時削除会話ルールを解除する「常時削除無効化」ユーザーインターフェースボタンを表示する。ユーザーインターフェースボタンを選択することで、会話マネージャーモジュール３３６に、表６に示される以下のプロパティを有するダイアログボックスなどのユーザーインターフェースビューを生成させる
【００７８】
【表６】
0005480894.tif 000007
【００７９】
ユーザーが［ＯＫ］を選択した場合、選択された会話における個々のメッセージのすべてが、受信トレイフォルダーに移送される。会話マネージャーモジュール３３６は、常時削除会話ルールに対応するエントリをＣＡＴから削除する。
【００８０】
会話マネージャーモジュール３３６は、複数選択状態の場合、ビュー表示の速度低下を引き起こすなど、Ｅメールアプリケーション３００の性能に影響し得るので、すべての会話の有効／無効状態をチェックしないことに留意するのは有意義である。性能を向上させるため、会話マネージャーモジュール３３６は、各会話をチェックしないが、代わりに、会話のすべてがそれに関連付けられた進行中アクションを有すると仮定することをデフォルトとする。代替的に、性能が問題にならない与えられた実施については、会話マネージャーモジュール３３６は、複数選択状態の場合も、すべての会話の有効／無効状態をチェックすることができる。
【００８１】
会話マネージャーモジュール３３６は、入来メッセージを目標項目フォルダーに自動的に回送するための常時移送会話ルールを作成するように動作する。常時移送会話ルールは、ユーザーが、特定の会話内の項目を選択したフォルダーに容易に移送することを可能にする別のパワーユーザー用の機能である。それは、定期的ルールを作成するよりもはるかに軽量であり、「フォルダーに移送（Ｍｏｖｅ  Ｔｏ  Ｆｏｌｄｅｒ）」リボンボタンからアクセスされる。
【００８２】
単一の会話項目にフォーカスが当てられ、目標フォルダーが選択された場合、リボンユーザーインターフェースは、メッセージを目標フォルダーに移送する常時移送会話ルールを生成するための動作を開始する「常時移送」ユーザーインターフェースボタンを表示する。ユーザーインターフェースボタンを選択することで、会話マネージャーモジュール３３６に、表７に示される以下のプロパティを有するダイアログボックスなどのユーザーインターフェースビューを生成させる。
【００８３】
【表７】
0005480894.tif 000008
【００８４】
ユーザーが［ＯＫ］をクリックした場合、会話のための現在のフォルダー内の個々のメッセージのすべてが選択されたフォルダーに移送される。会話マネージャーモジュール３３６は、この会話についての新しいエントリを、それがまだ存在していない場合は、ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤを使用してＣＡＴ内に生成する。会話マネージャーモジュール３３６は、新しい会話項目を評価し、ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤに一致する新しい会話項目を目標フォルダーに自動的に移送する。このロジックは、ＣＡＴ内に設定された有効期限ガイドラインの制約を受ける。
【００８５】
複数の会話項目にフォーカスが当てられ、目標フォルダーが選択された場合、リボンユーザーインターフェースは、複数の会話のためのメッセージを目標フォルダーに移送する常時移送会話ルールを生成するための動作を開始する「常時移送」ユーザーインターフェースボタンを表示する。ユーザーインターフェースボタンを選択することで、会話マネージャーモジュール３３６に、表８に示される以下のプロパティを有するダイアログボックスなどのユーザーインターフェースビューを生成させる。
【００８６】
【表８】
0005480894.tif 000009
【００８７】
ユーザーが［ＯＫ］をクリックした場合、選択された会話のための現在のフォルダー内の個々のメッセージのすべてが選択されたフォルダーに移送される。会話マネージャーモジュール３３６は、これらの会話についてのエントリを、それがまだ存在していない場合は、ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤを使用してＣＡＴ内に生成する。ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤがそれに関連付けられた常時移送会話ルールをすでに有する場合、これはそのルールを上書きする。それはまた、有効期限をデフォルト時間にリセットする。この会話に到着した、ＰＲ＿ＣＯＮＶＥＲＳＡＴＩＯＮ＿ＩＤに一致する新しい項目は、選択されたフォルダーに自動的に移送される。このロジックは、ＣＡＴ内に設定された有効期限ガイドラインの制約を受ける。
【００８８】
常時移送会話ルールには、いくつかの例外ケースが存在する。例えば、ユーザーが、常時移送会話ルールのための移送先フォルダーとして削除項目を選択した場合、それは本質的には、常時削除会話ルールと同じである。削除項目フォルダー内の会話が選択された場合、「常時削除」ボタンは「非アクティブ」状態に切り替わる。
【００８９】
ユーザーは、多くの異なる方法で、常時移送会話ルールを無効化することができる。例えば、単一の会話項目にフォーカスが当てられた場合、会話マネージャーモジュール３３６は、その会話項目が現在、既存の常時移送会話ルールの適用を受けているかどうかを決定することができる。これは、会話項目のプロパティをチェックして、ペアレント会話項目がそれに関連付けられた進行中アクションを有するかどうかを決定することによって、達成することができる。このプロパティは、ＣＡＴ処理が行われるときに、メッセージに対して設定される。リボンユーザーインターフェースは、会話スレッドから常時移送会話ルールを解除する「常時削除無効化（Ｄｉｓａｂｌｅ  Ａｌｗａｙｓ  Ｍｏｖｅ）」ユーザーインターフェースボタンを表示する。ユーザーインターフェースボタンを選択することで、会話マネージャーモジュール３３６に、表９に示される以下のプロパティを有するダイアログボックスなどのユーザーインターフェースビューを生成させる。
【００９０】
【表９】
0005480894.tif 000010
【００９１】
ユーザーが［ＯＫ］をクリックした場合、会話マネージャーモジュール３３６は、進行中の常時移送アクションを中止する。会話マネージャーモジュール３３６は、会話スレッドのためのエントリをＣＡＴから削除する。会話項目は、与えられた実施に基づいて、任意選択的に現在のロケーションから移送されることもあり、または移送されないこともある。
【００９２】
複数の会話項目にフォーカスが当てられた場合、リボンユーザーインターフェースは、会話スレッドから常時移送会話ルールを解除する「常時移送無効化」ユーザーインターフェースボタンを表示する。ユーザーインターフェースボタンを選択することで、会話マネージャーモジュール３３６に、表１０に示される以下のプロパティを有するダイアログボックスなどのユーザーインターフェースビューを生成させる。
【００９３】
【表１０】
0005480894.tif 000011
【００９４】
ユーザーが［ＯＫ］をクリックした場合、会話マネージャーモジュール３３６は、関連付けられたアクションを有するすべての会話について進行中の常時移送アクションを中止する。会話マネージャーモジュール３３６は、会話スレッドのためのエントリをＣＡＴから削除する。会話項目は、与えられた実施に基づいて、任意選択的に現在のロケーションから移送されることもあり、または移送されないこともある。
【００９５】
会話マネージャーモジュール３３６は、カテゴリを入来メッセージに自動的に割り当てる常時類別会話ルールを作成するように動作する。カテゴリを会話項目に自動的に割り当てることで、会話スレッド全体の進行中の類別を可能にする。
【００９６】
リボンユーザーインターフェースの適切な「常時類別」ユーザーインターフェースボタンを使用して、カテゴリを単一の会話項目に割り当てた場合、選択されたカテゴリが、その会話のためのすべてのフォルダー内のすべての項目に適用される。これは進行中アクションであり、ＣＡＴエントリが自動的に作成される。これは、任意の個々のメッセージのために存在し得る他のカテゴリに付加される。例えば、会話スレッドがメッセージ１、２、３、４を有し、メッセージ１がカテゴリＡを有し、メッセージ３がカテゴリＢを有し、すべてのメッセージ１〜４が受信トレイフォルダー内に存在すると仮定する。ユーザーが会話スレッドを選択し、カテゴリＣを有する「常時類別」アクションを適用した場合、結果は以下のように付加的になる。
【００９７】
メッセージ１−カテゴリＡ＋Ｃ
メッセージ２−カテゴリＣ
メッセージ３−カテゴリＢ＋Ｃ
メッセージ４−カテゴリＣ
常時類別会話項目についての上記および他の概念が、図４〜図８を参照してさらに詳細に説明される。
【００９８】
図４は、会話ビュー４０２、４０４の一実施形態を示している。会話ビュー４０２、４０４は、会話スレッドによってメッセージをグループ化する会話ビューを表す。会話ビュー４０２、４０４は、各々がカテゴリインジケーターを有する複数のメッセージ４２０を示している。会話ビュー４０２では、各メッセージ４２０は、空であることによって、対応するメッセージ４２０に割り当てられたカテゴリがないことを示す、カテゴリインジケーター４１０を有する。複数の会話項目が選択され、それらの会話を含むすべてのフォルダー内のメッセージのすべてに常時類別会話ルールが適用された場合、メッセージ４２０のすべてが、網掛けのカテゴリインジケーター４１２によって示されるように、１つまたは複数の選択されたカテゴリに割り当てられる。
【００９９】
図５は、会話ビュー５０２、５０４の一実施形態を示している。会話ビュー５０２、５０４も、会話スレッドによってメッセージをグループ化する会話ビューを表す。会話マネージャーモジュール３３６が、例えば「Ｒａｎｄｙ  Ｂｙｒｎｅ」宛てのすべてのメッセージなど、選択されたメッセージタイプのメッセージ４２０に作用する場合、会話マネージャーモジュール３３６は、選択されたメッセージタイプのメッセージ４２０のみに選択されたカテゴリを適用する。図５に図示されるように、会話ビュー５０４は、網掛けのカテゴリインジケーター４１２によって示されるように、選択されたメッセージ４２０に選択されたカテゴリを割り当てる。
【０１００】
図６は、会話ビュー６０２、６０４の一実施形態を示している。会話ビュー６０２、６０４も、会話スレッドによってメッセージをグループ化する会話ビューを表す。会話ビュー６０２は、カテゴリインジケーター４１０のいくつかに網掛けが施されており、それによって、対応するメッセージ４２０にカテゴリが割り当てられていることを示している。単一の会話項目にフォーカスが当てられているとき、会話マネージャーモジュール３３６は、カテゴリを削除することができる。例えば、ユーザーがリボンユーザーインターフェース上の「すべてのカテゴリを消去（Ｃｌｅａｒ  Ａｌｌ  Ｃａｔｅｇｏｒｉｅｓ）」ユーザーインターフェースボタンを選択した場合、会話マネージャーモジュール３３６は、すべてのフォルダー内のすべてのメッセージからすべてのカテゴリを削除する。複数のカテゴリインジケーター４１０に分割された単一のカテゴリインジケーター４１０によって示されるように、メッセージ４２０が複数の割り当てカテゴリを有する場合であっても、これは成立する。これは一般に、進行中アクションではない。会話マネージャーモジュール３３６は、ＣＡＴから常時類別会話ルールを削除する。
【０１０１】
図７は、会話ビュー７０２、７０４の一実施形態を示している。会話ビュー７０２、７０４も、会話スレッドによってメッセージをグループ化する会話ビューを表す。会話スレッド７０２は、カテゴリインジケーター４１０のいくつかに網掛けが施されており、さらに、メッセージ４２０のいくつかに対する単一のカテゴリインジケーター４１０の複数のカテゴリインジケーター４１０への分割によって示されるように、メッセージ４２０のいくつかが複数の割り当てカテゴリを有することを示している。単一の会話項目にフォーカスが当てられているとき、会話マネージャーモジュール３３６は、会話項目に割り当てられた複数のカテゴリのうちの単一のカテゴリを削除することができる。例えば、ユーザーがリボンユーザーインターフェース上の「カテゴリを消去（Ｃｌｅａｒ  Ａ  Ｃａｔｅｇｏｒｙ）」ユーザーインターフェースボタンを選択した場合、会話マネージャーモジュール３３６は、すべてのフォルダー内のすべてのメッセージから、選択されたカテゴリのみを削除する。例えば、２つのカテゴリがそれに割り当てられた「Ｍｉｃｈａｅｌ  Ａｆｆｒｏｎｔｉ」宛てのメッセージ４２０は、２つのカテゴリの一方を削除するように、会話マネージャーモジュール３３６によって変更され、これは、複数のカテゴリインジケーター４１０が単一のカテゴリインジケーター４１０になることによって示されている。これは一般に、進行中アクションではない。会話マネージャーモジュール３３６は、ＣＡＴから選択されたカテゴリの常時類別会話ルールを削除する。複数の会話項目にフォーカスが当てられているときでも、会話マネージャーモジュール３３６は、「カテゴリを消去」ユーザーインターフェースボタンが作動されるときと同様のロジックを適用することができる。
【０１０２】
図８は、会話ビュー８０２、８０４の一実施形態を示している。会話ビュー８０２、８０４も、会話スレッドによってメッセージをグループ化する会話ビューを表す。会話スレッド８０２は、カテゴリインジケーター４１０のいくつかに網掛けが施されており、さらに、メッセージ４２０のいくつかに対する単一のカテゴリインジケーター４１０の複数のカテゴリインジケーター４１０への分割によって示されるように、メッセージ４２０のいくつかが複数の割り当てカテゴリを有することを示している。単一の会話項目にフォーカスが当てられているとき、会話マネージャーモジュール３３６は、会話項目に割り当てられた複数のカテゴリのうちの単一のカテゴリを削除することができる。例えば、ユーザーがリボンユーザーインターフェース上の「カテゴリを消去」ユーザーインターフェースボタンを選択した場合、会話マネージャーモジュール３３６は、すべてのフォルダー内のすべてのメッセージから、選択されたカテゴリのみを削除する。例えば、２つのカテゴリがそれに割り当てられた「Ｍｉｃｈａｅｌ  Ａｆｆｒｏｎｔｉ」宛てのメッセージ４２０は、２つのカテゴリの一方を削除するように、会話マネージャーモジュール３３６によって変更され、これは、複数のカテゴリインジケーター４１０が単一のカテゴリインジケーター４１０になることによって示されている。さらに、会話マネージャーモジュール３３６は、例えば「Ｍｉｃｈａｅｌ  Ａｆｆｒｏｎｔｉ」宛てのすべてのメッセージなど、選択されたメッセージタイプのメッセージ４２０に作用するように構成することができる。この場合、会話マネージャーモジュール３３６は、同じメッセージタイプのメッセージ４２０のみから、選択された１つまたは複数のカテゴリを削除する。
【０１０３】
新しい入来メッセージが、入来メッセージモジュール３３２に到着し、会話識別モジュール３３４が、入来メッセージが会話スレッドの一部であると認識した場合は常に、会話マネージャーモジュール３３６は、会話ルールが会話スレッドに関連付けられているかどうかを決定し、関連付けられている場合は、入来メッセージに会話ルールを適用する。会話マネージャーモジュール３３６は、ＣＡＴを調べ、会話スレッドに関連付けられた様々な会話ルールに従って、その後のメッセージ処理動作を入来メッセージに対して実行する。
【０１０４】
一例として、マイケルという名前のユーザーが、１日の間の多くのメールを掌握することを好んでいると仮定する。彼は、配信リストメールを異なるフォルダーに移送するルールを有しているが、受信トレイで受信した通常メールを追跡するために依然として多くの作業を行っている。仲間の一人が、今度の大学バスケットボールプレーオフについて、チーム配信リストへのＥメールスレッドを立ち上げ、マイケルもそれを彼の受信トレイで受信する。マイケルは、今年はメンバとして参加することに関心をもっておらず、受信トレイからそのスレッドを削除したい。彼は「常時削除」アクションを選択し、スレッド全体が削除項目フォルダーに移送される。仲間たちがスレッド上で会話を続けているとき、その後のすべての返答は、黙っていても正しくマイケルの削除項目フォルダーに置かれ、一回限りのルールを作成すること、またはその（通常は）重要なエイリアスから自分自身を削除することをマイケルに強いなくても、マイケルの受信トレイは、その会話の雑音によって乱雑にされることなく保たれる。
【０１０５】
別の例では、ポールという名前のユーザーは、ファイリング係であり、プロジェクトまたはメール送信者に基づいて、絶えずメールを異なったフォルダーに移送すると仮定する。新しい会話が彼の受信トレイに到着すると、ポールは、そのフォルダーに到着したことがあるメッセージに対しては容易に行動して、それらをどこでも望む場所に移送することができる。「モランディ」プロジェクトについての特定の会話が突然現れ、アクティブであり続けたため、ポールは、その会話内の新しい項目が到着したときに、それらを「モランディプロジェクト」フォルダーに容易に動かすために、「常時移送」アクションを使用する。
【０１０６】
さらに別の例では、メアリという名前のユーザーが、新しいメッセージが到着するときに、それらを類別すると仮定する。会話についてのその後の返答が到着すると、メアリは、新しい返答が到着するたびに、各項目を個別に手動で類別する必要がある。メアリは、新しい項目がその会話に到達したことがあることを認識して、最初のメッセージからの正しいカテゴリを会話の残りに自動的に適用するために、「常時類別」アクションを使用する。
【０１０７】
入来メッセージに会話ルールを適用することに加えて、会話マネージャーモジュール３３６は、保存されたメッセージにも会話ルールを適用する。メッセージデータベース３５０は、各会話スレッドについての複数のメッセージを保存する。会話マネージャーモジュール３３６は、会話スレッドのための新しい会話ルールを作成した場合、その会話ルールを適切な会話スレッドの複数の保存されたメッセージに適用する。
【０１０８】
上で説明された実施形態の動作は、１つまたは複数の論理フローを参照して、さらに説明することができる。代表的な論理フローは、別途指摘されない限り、必ずしも提示された順序または任意の特定の順序で実行される必要はないことが理解できよう。さらに、論理フローに関して説明された様々な活動は、直列的または並列的に実行できる。論理フローは、説明された実施形態の１つもしくは複数のハードウェア要素および／もしくはソフトウェア要素を使用して、または与えられた１組の設計制約および性能制約にとって望ましい代替要素を使用して、実施することができる。例えば、論理フローは、論理デバイス（例えば汎用コンピューターまたは専用コンピューター）によって実行されるロジック（例えばコンピュータープログラム命令）として実施することができる。
【０１０９】
図９は、様々な実施形態を実施するのに適した論理フロー９００の一実施形態を示している。論理フロー９００は、本明細書で説明される１つまたは複数の実施形態によって実行される動作の一部または全部を表すことができる。
【０１１０】
図９に示される例示的な実施形態では、論理フロー９００は、ブロック９０２において、入来メッセージを受信することができる。例えば、入来メッセージモジュール３３２は、オペレーティングシステム１２８と対話して、ネットワーク１１８からネットワークインターフェース２２０によって受信された入来Ｅメールメッセージを受信する。例えば、入来メッセージモジュール３３２は、オペレーティングシステム１２８によって提供されるインターフェースを使用して、オペレーティングシステム１２８に入来Ｅメールメッセージを入来メッセージモジュール３３２に提供させるコールバックを構成することができる。入来メッセージモジュール３３２は、入来Ｅメールメッセージを受信すると、入来Ｅメールメッセージに対して１つまたは複数のＥメール処理動作を実行することができる。入来メッセージモジュール３３２は、入来Ｅメールメッセージに対してＥメール処理動作を実行した後、入来Ｅメールメッセージを会話識別モジュール３３４に提供することができる。
【０１１１】
論理フロー９００は、ブロック９０４において、入来メッセージが会話スレッドの一部であることを決定することができる。例えば、会話識別モジュール３３４は、入来メッセージモジュール３３２から入来Ｅメールメッセージを受信し、入来Ｅメールメッセージに関連付けられた既存の会話を識別しようと試みる。会話識別モジュール３３４は、入来Ｅメールメッセージに関連付けられた既存の会話をうまく識別できない場合、入来Ｅメールメッセージを新しい会話に関連付けることができる。会話識別モジュール３３４は、任意の数の異なるアルゴリズムおよび条件を利用して、メッセージが会話スレッドの一部であるかどうかを明示的または暗黙的に決定することができる。実施形態は、これに関連して限定されない。
【０１１２】
論理フロー９００は、ブロック９０６において、入来メッセージを会話スレッドに関連付けることができる。例えば、入来メッセージモジュール３３２が、入来メッセージが既存の会話スレッドの一部であると識別した場合、会話識別モジュール３３４は、入来メッセージの適切なプロパティにおいて、入来メッセージに共通の会話識別子を割り当てることによって、入来メッセージを会話スレッドに関連付ける。しかし、入来メッセージモジュール３３２が、入来メッセージが既存の会話スレッドの一部であると識別しない場合、会話識別モジュール３３４は、入来メッセージに新しい会話識別子を割り当てることによって、入来Ｅメールメッセージを新しい会話に関連付ける。会話識別モジュール３３４は、入来Ｅメールメッセージを既存の会話に関連付けた後、または入来Ｅメールメッセージを新しい会話に関連付けた後、入来Ｅメールメッセージを、入来Ｅメールメッセージに関連付けられた会話を識別する会話識別子とともに、メッセージデータベース３５０に保存することができる。
【０１１３】
論理フロー９００は、ブロック９０８において、会話ルールが会話スレッドに関連付けられていることを決定することができる。例えば、会話マネージャーモジュール３３６は、ＣＡＴを検索して、会話ルールが会話スレッドに関連付けられているかどうかを決定する。会話マネージャーモジュール３３６は、例えば会話識別子など、任意の数の異なる検索基準を使用して、ＣＡＴを検索することができる。
【０１１４】
論理フロー９００は、ブロック９１０において、会話ルールを入来メッセージに適用することができる。例えば、会話マネージャーモジュール３３６は、会話スレッドに関連付けられた会話ルールを見出した場合、見出した会話ルールを入来メッセージに適用する。会話マネージャーモジュール３３６は、入来メッセージの削除、入来メッセージの移送、入来メッセージの類別、別のユーザーの別のＥメールアプリケーション３００への入来メッセージの転送、入来メッセージへの返答、入来メッセージのコピー、または与えられたＥメールアプリケーション３００によって利用可能にされた他の任意のメッセージ処理動作などの一定のメッセージ処理動作を、会話ルールで定義されたように入来メッセージに対して実行する。会話マネージャーモジュール３３６は、入来メッセージおよび対応する会話ルールを使用して、メッセージデータベース３５０によって保存された他のメッセージに対する以降の操作、またはコンピューティングデバイス１１０、１３０上で動作するアプリケーションプログラムを作動またはトリガすることもできる。
【０１１５】
図１０は、様々な実施形態のためのロジックを保存するのに適した製造物品１０００の図を示している。図示されるように、製造物品１０００は、ロジック１００４を保存するための記憶媒体１００２を含むことができる。記憶媒体１００２の例は、揮発性メモリまたは不揮発性メモリ、着脱可能または着脱不能メモリ、消去可能または消去不能メモリ、書き込みまたは再書き込みメモリなどを含む、電子データを保存することが可能な１つまたは複数のタイプのコンピューター可読記憶媒体を含むことができる。ロジック１００４の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、ＡＰＩ（アプリケーションプログラムインターフェース）、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、ワード、値、シンボル、またはそれらの任意の組み合わせなど、様々なソフトウェア要素を含むことができる。
【０１１６】
一実施形態では、例えば、製造物品１０００および／またはコンピューター可読記憶媒体１００２は、コンピューターによって実行されたときに、コンピューターに説明された実施形態に従った方法および／または動作を実行させる実行可能コンピュータープログラム命令を含むロジック１００４を保存することができる。実行可能コンピュータープログラム命令は、ソースコード、コンパイル済コード、解釈済コード、実行可能コード、静的コード、および動的コードなど、任意の適切なタイプのコードを含むことができる。実行可能コンピュータープログラム命令は、ある機能を実行するようコンピューターに命令するための、事前定義されたコンピューター言語、方式、またはシンタックスに従って、実施することができる。命令は、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、ＢＡＳＩＣ、Ｐｅｒｌ、Ｍａｔｌａｂ、Ｐａｓｃａｌ、Ｖｉｓｕａｌ  ＢＡＳＩＣ、およびアセンブリ言語など、任意の適切な高級、低級、オブジェクト指向、ビジュアル、コンパイル済、および／または解釈済のプログラミング言語を使用して、実施することができる。
【０１１７】
様々な実施形態は、ハードウェア要素、ソフトウェア要素、または両方の組み合わせを使用して実施することができる。ハードウェア要素の例は、先に提供された論理デバイスの例のいずれかを含むことができ、マイクロプロセッサ、回路、回路素子（例えば、トランジスタ、抵抗、コンデンサー、インダクターなど）、集積回路、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどをさらに含むことができる。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、ＡＰＩ（アプリケーションプログラムインターフェース）、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、ワード、値、シンボル、またはそれらの任意の組み合わせを含むことができる。実施形態がハードウェア要素および／またはソフトウェア要素を使用して実施されるかどうかの決定は、与えられた実施にとって望ましい、所望の計算速度、電力レベル、耐熱性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計制約または性能制約など、任意の数の要因に従って変化し得る。
【０１１８】
いくつかの実施形態は、「結合された（ｃｏｕｐｌｅｄ）」および「接続された（ｃｏｎｎｅｃｔｅｄ）」という表現、ならびにそれらの派生表現を使用して説明することができる。これらの用語は、必ずしも互いの同義語として意図されているわけではない。例えば、いくつかの実施形態は、２つ以上の要素が互いに物理的または電気的に直接接触していることを示す「接続された」および／または「結合された」という用語を使用して説明することができる。しかし、「結合された」という用語は、２つ以上の要素が互いに直接接触していないが、それでも依然として互いに協力または対話することを意味することもできる。
【０１１９】
読者が速やかに技術開示の本質を確認することを可能にする要約書を要求する米国特許施行規則第１．７２条（ｂ）に準拠して、開示の要約書が提供されることが強調される。要約書は、特許請求の範囲または意味を解釈または限定するためにそれが使用されないという理解のもとに提出されている。加えて、上記の詳細な説明においては、開示を簡素化する目的で、様々な特徴が単一の実施形態内に一緒にグループ化されていることが理解できよう。開示のこの方法は、特許請求される実施形態が各請求項で明示的に列挙されたよりも多くの特徴を必要とするという意図を反映したものと解釈されるべきではない。むしろ、以下の特許請求の範囲が示しているように、本発明の主題は、開示された単一の実施形態のすべての特徴よりも少ない特徴に存する。したがって、以下の特許請求の範囲は、これによって、各請求項が別個の実施形態として自立している、詳細な説明に包含される。添付の特許請求の範囲において、「含む（ｉｎｃｌｕｄｉｎｇ）」および「〜において（ｉｎ  ｗｈｉｃｈ）」という用語は、それぞれ「含む（ｃｏｍｐｒｉｓｉｎｇ）」および「〜において（ｗｈｅｒｅｉｎ）」と等価のプレインイングリッシュ（ｐｌａｉｎ−Ｅｎｇｌｉｓｈ）として使用されている。さらに、「第１の」、「第２の」、および「第３の」などの用語は、単なるラベルとして使用されており、それらの対象に数的要件を課すことは意図されていない。
【０１２０】
本発明の主題は、構造的特徴および／または方法論的行為に固有の言葉で説明されたが、添付の特許請求の範囲において確定される本発明の主題は、上で説明された特定の特徴または行為に必ずしも限定されないことを理解されたい。むしろ、上で説明された特定の特徴または行為は、特許請求の範囲を実施する例示的な形として開示されている。
【図１】
0005480894.tif 000012
【図２】
0005480894.tif 000013
【図３】
0005480894.tif 000014
【図４】
0005480894.tif 000015
【図５】
0005480894.tif 000016
【図６】
0005480894.tif 000017
【図７】
0005480894.tif 000018
【図８】
0005480894.tif 000019
【図９】
0005480894.tif 000020
【図１０】
0005480894.tif 000021