(57)【要約】      （修正有）【課題】電子メールコンテンツ包含を検出するシステム及び方法を得る。【解決手段】第１電子メール文書の複数の文字列各々に対応するハッシュ値を含む、第１のハッシュ値組を生成し、第２電子メール文書の複数の文字列各々に対応するハッシュ値を含む、第２のハッシュ値組を生成し、第１のハッシュ値組が第２のハッシュ値組のサブセットを成すか否かを判定する。【選択図】図２
2010231252.tif 000002
【特許請求の範囲】
【請求項１】
第１の電子メール文書に対応し、該第１の電子メール文書の複数の文字列の各々に対応するそれぞれのハッシュ値を含む、第１の組のハッシュ値を生成する段階と、
第２の電子メール文書に対応し、該第２の電子メール文書の複数の文字列の各々に対応するそれぞれのハッシュ値を含む、第２の組のハッシュ値を生成する段階と、
前記第１の組のハッシュ値が前記第２の組のハッシュ値よりも小さなサブセットを成すか否かを判定する段階と、
を含むことを特徴とする方法。
【請求項２】
前記第１の電子メール文書の前記複数の文字列の各々が、前記第１の電子メール文書のそれぞれの段落であり、前記第２の電子メール文書の前記複数の文字列の各々が、前記第２の電子メール文書のそれぞれの段落であることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の電子メール文書に対応する前記第１の組のハッシュ値を表す第１のブルームフィルタを生成する段階と、
前記第２の電子メール文書に対応する前記第２の組のハッシュ値を表す第２のブルームフィルタを生成する段階と、
を更に含み、前記判定する段階が、前記第１のブルームフィルタと前記第２のブルームフィルタとを比較する段階を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記判定する段階が、前記第１及び第２のブルームフィルタにビット単位ＯＲ演算を行う段階を含むことを特徴とする請求項２に記載の方法。
【請求項５】
前記判定する段階の結果に基づいて、前記第１の電子メール文書のコンテンツが前記第２の電子メール文書内に含まれ得るか否かの表示を行う段階を更に含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記判定する段階の結果に基づいて、前記第１の電子メール文書のコンテンツが前記第２の電子メール文書内に含まれ得るか否かの表示を行う段階を更に含むことを特徴とする請求項１に記載の方法。
【請求項７】
第１の電子メール文書に対応し、該第１の電子メール文書の複数の文字列の各々に対応するそれぞれのハッシュ値を含む、第１の組のハッシュ値を生成し、
第２の電子メール文書に対応し、該第２の電子メール文書の複数の文字列の各々に対応するそれぞれのハッシュ値を含む、第２の組のハッシュ値を生成し、
前記第１の組のハッシュ値が前記第２の組のハッシュ値よりも小さなサブセットを成すか否かを判定する、
手順をコンピュータで実行するためのプログラム命令を記録したコンピュータ読み取り可能なメモリ媒体。
【請求項８】
前記第１の電子メール文書の前記複数の文字列の各々が、前記第１の電子メール文書のそれぞれの段落であり、前記第２の電子メール文書の前記複数の文字列の各々が、前記第２の電子メール文書のそれぞれの段落であることを特徴とする請求項７に記載のコンピュータ読み取り可能なメモリ媒体。
【請求項９】
前記プログラム命令が、更に、
前記第１の電子メール文書に対応する前記第１の組のハッシュ値を表す第１のブルームフィルタを生成し、
前記第２の電子メール文書に対応する前記第２の組のハッシュ値を表す第２のブルームフィルタを生成する、
手順をコンピュータで実行可能であり、前記第１の組のハッシュ値が前記第２の組のハッシュ値よりも小さなサブセットを成すか否かを判定する手順が、前記第１のブルームフィルタと前記第２のブルームフィルタとの比較を含むことを特徴とする請求項７に記載のコンピュータ読み取り可能なメモリ媒体。
【請求項１０】
前記プログラム命令が、前記第１及び第２のブルームフィルタの比較に基づいて、前記第１の電子メール文書のコンテンツが前記第２の電子メール文書内に含まれ得るか否かの表示を行うことを、コンピュータで実行可能であることを特徴とする請求項９に記載のコンピュータ読み取り可能なメモリ媒体。
【請求項１１】
前記プログラム命令が、ビット単位ＯＲ演算を行うことにより前記第１及び第２のブルームフィルタの比較を、コンピュータで実行可能であることを特徴とする請求項９に記載のコンピュータ読み取り可能なメモリ媒体。
【請求項１２】
前記プログラム命令が、前記第１及び第２の電子メール文書の所定のコンテンツを無視することを、コンピュータで実行可能であることを特徴とする請求項７に記載のコンピュータ読み取り可能なメモリ媒体。
【請求項１３】
前記所定のコンテンツが、電子メールヘッダ情報を含むことを特徴とする請求項１２に記載のコンピュータ読み取り可能なメモリ媒体。
【請求項１４】
１つ又はそれ以上のプロセッサを備え、
メモリであって、
第１の電子メール文書に対応し、該第１の電子メール文書の複数の文字列の各々に対応するそれぞれのハッシュ値を含む、第１の組のハッシュ値を生成し、
第２の電子メール文書に対応し、前記第２の電子メール文書の複数の文字列の各々に対応するそれぞれのハッシュ値を含む、第２の組のハッシュ値を生成し、
前記第１の組のハッシュ値が前記第２の組のハッシュ値よりも小さなサブセットを成すか否かを判定する、
手順をコンピュータで実行するためのプログラム命令を記録したメモリを備えている、
ことを特徴とするシステム。
【請求項１５】
前記第１の電子メール文書の前記複数の文字列の各々が、前記第１の電子メール文書のそれぞれの段落であり、前記第２の電子メール文書の前記複数の文字列の各々が、前記第２の電子メール文書のそれぞれの段落であることを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記プログラム命令が、
前記第１の電子メール文書に対応する前記第１の組のハッシュ値を表す第１のブルームフィルタを生成し、
前記第２の電子メール文書に対応する前記第２の組のハッシュ値を表す第２のブルームフィルタを生成する、
手順をコンピュータで実行可能であり、
前記第１の組のハッシュ値が前記第２の組のハッシュ値よりも小さなサブセットを成すか否かを判定する手順が、前記第１のブルームフィルタと前記第２のブルームフィルタとを比較することを含むことを特徴とする請求項１４に記載のシステム。
【請求項１７】
前記プログラム命令が、ビット単位ＯＲ演算を行うことにより前記第１及び第２のブルームフィルタの比較を、コンピュータで実行可能であることを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記プログラム命令が、前記第１の組のハッシュ値が前記第２の組のハッシュ値よりも小さいサブセットを成すか否かを判定する際に、前記第１又は第２の組内の１つ又はそれ以上のハッシュ値を無視することを、コンピュータで実行可能であることを特徴とする請求項１４に記載のシステム。
【請求項１９】
前記プログラム命令が、前記第１の組のハッシュ値が前記第２の組のハッシュ値よりも小さなサブセットを成すか否かを判定することに基づいて、前記第２の電子メール文書を前記第１の電子メール文書に対する返答と特定する、コンピュータで実行可能であることを特徴とする請求項１４に記載のシステム。
【請求項２０】
前記第１及び第２の組の前記ハッシュ値の１つ又はそれ以上が、ＭＤ５又はＳＨＡ−１ハッシュアルゴリズムを用いて生成されることを特徴とする請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メールシステムに関し、詳細には、電子メール文書内のコンテンツ包含の検出に関する。
【背景技術】
【０００２】
データベースに存在する類似した電子メールを効率的に見つけることが望まれる場合が多い。例えば、訴訟電子情報開示場面では、電子メールの広範囲なデータベースを検索して電子メールが訴訟事件に重要であるか否かを判定する必要がある。広範囲なデータベースを検索して、電子メールを比較して潜在的に類似したものを判定することは、問題含みの冗長なプロセスである場合がある。類似性に関して電子メールを比較する１つの手法は、異なる電子メールのコンテンツからハッシュ値を計算した後に、同一性に関してハッシュ値を比較することである。残念ながら、一般にこのような手法で特定されるのは、正確な複製である電子メールだけであり、電子メールに何らかの差異があれば、一般に結果として異なるハッシュ値が生成されることになる。可能性のある別の手法は、１つの電子メールの全てのワードを別の電子メールのワードと比較して類似性を判定することである。しかしながら、このような手法は、一般的に非常に計算的に厳しいものがある。
【０００３】
電子メールは多くのテキストが追加されることなく転送又は返信されるので、ほとんど複製である場合が多い。最初の電子メールが繰り返し返信及び／又は転送される際に、そのチェーンの最後の電子メールだけを見つけることが望ましい場合があるは、その理由は、最後の電子メールが先行の電子メールのコンテンツの全てを含む場合が多いからである。したがって、電子情報開示場面では、何の情報も見落とすことなく最小数の電子メールを調べることができるように、返答電子メールのチェーン内の最後の電子メールを見つけることがより望ましいであろう。
【発明の概要】
【課題を解決するための手段】
【０００４】
電子メールコンテンツ包含を検出するシステム及び方法を開示する。１つの実施形態において、方法は、第１の電子メール文書に対応する第１の組のハッシュ値を生成する段階を含み、第１の組のハッシュ値は、第１の電子メール文書の複数の文字列の各々に対応するそれぞれのハッシュ値を含む。本方法は、第２の電子メール文書に対応する第２の組のハッシュ値を生成する段階を更に含み、第２の組のハッシュ値は、第２の電子メール文書の複数の文字列の各々に対応するそれぞれのハッシュ値を含む。本方法は、最後に、第１の組のハッシュ値が第２の組のハッシュ値のサブセットであるか否かを判定する段階を更に含む。
【０００５】
特定の実施形態においては、本方法は、第１の電子メール文書に対応する第１の組のハッシュ値を表す第１のブルームフィルタを生成する段階と、第２の電子メール文書に対応する前記第２の組のハッシュ値を表す第２のブルームフィルタを生成する段階と、第１のブルームフィルタを第２のブルームフィルタと比較する段階とを更に含むことができる。第１及び第２のブルームフィルタは、ビット単位のＯＲ演算を行うことにより比較することができる。種々の実施形態において、本方法は、判定する段階の結果に基づいて、第１の電子メール文書のコンテンツが第２の電子メール文書内に含まれているか否かの表示を行う段階を更に含む。
【図面の簡単な説明】
【０００６】
【図１】電子メールデータベース及び包含検出コードを含むコンピューターシステムのブロック図である。
【図２】電子メール文書内でコンテンツ包含を検出する方法の１つの実施形態のフローチャートである。
【図３】２つの例示的な電子メールのコンテンツを示す。
【図４】無関係なコンテンツが取り除かれた２つの例示的な電子メールを示す。
【図５】例示的なハッシュを示す。
【図６】ブルームフィルタ手法を用いてハッシュ値を比較する方法の１つの実施形態のフローチャートである。
【図７】例示的なブルームフィルタを示す。
【図８】ブルームフィルタの例示的なビット単位ＯＲ比較を示す。
【発明を実施するための形態】
【０００７】
本発明は、種々の変更及び代替形態とすることが可能であり、特定の実施形態が例示的に図示されており本明細書で詳細に説明されている。しかしながら、図面及びその詳細な説明は、本発明を開示された特定の形態に限定することを意図しておらず、むしろ、特許請求の範囲により定義される本発明の精神及び範囲に該当する全ての変更物、均等物、及び代替物代案を包含することが意図されていることを理解されたい。本出願において、用語「ｍａｙ」は、必須の意味（すなわち、ｍｕｓｔ）ではなく、許容的な意味（すなわち、〜可能性を有する、〜できる）で使用されることに留意されたい。
【０００８】
ここで図１を参照すると、コンピューターシステム１００の１つの実施形態のブロック図が示されている。コンピューターシステム１００は、プロセッササブシステム１５０に結合された記憶サブシステム１１０を含む。記憶サブシステム１１０は、電子メールデータベース１２０及び包含検出コード１３０を格納している。コンピューターシステム１００は、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ又はノートコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、携帯電話、ポケットベル、又は個人用携帯情報端末（ＰＤＡ）など消費者向け装置を含むが、これらに限定されない種々の形式の装置の何れかとすることができる。また、コンピューターシステム１００は、記憶装置、スイッチ、モデム、ルータなどの任意の形式のネットワーク化された周辺機器とすることもできる。また、図１には単一のコンピューターシステム１００が示されているが、システム１００は、同時に作動する２つ又はそれ以上のコンピューターシステムとして実現することもできる。
【０００９】
プロセッササブシステム１５０は、包含検出コード１３０を実行することができる１つ又はそれ以上のプロセッサを示している。例えば、ｘ８６プロセッサ、パワーＰＣプロセッサ、ＩＢＭセルプロセッサ、又はＡＲＭプロセッサ等の種々の特定型式のプロセッサを使用することができる。
【００１０】
「コンピュータ読み取り可能な記憶媒体」と呼ぶ場合もある記憶サブシステム１１０は、さまざまな記憶媒体を示す。記憶サブシステム１１０は、任意の適切な媒体形式及び／又は記憶アーキテクチャを使用して実現することができる。例えば、記憶サブシステム１１０は、ハードディスク記憶装置、フロッピー（登録商標）ディスク記憶装置、取外し可能ディスク記憶、フラッシュメモリ、ランダムアクセスメモリ、又はリードオンリーメモリ等の半導体メモリなどの記憶媒体を使用して実現することができる。記憶サブシステム１１０は、単一の場所で実行すること、又は（例えば、ＳＡＮ構成で）分散させることができることに留意されたい。
【００１１】
電子メールデータベース１２０は、１人又はそれ以上の電子メールシステムユーザに関連した、本明細書では各々を電子メール文書と呼ぶ、複数の電子メールメッセージを含む。電子メールデータベース１２０内の種々の電子メール文書は、お互い複製であること、又はデータベース内の他の電子メール（例えば、最初の電子メール、及び最初の電子メールを含む対応する返答電子メール）に実質的に類似したコンテンツを含むことができることに留意されたい。
【００１２】
以下に詳細に説明するように、包含検出コード１３０は、データベース１２０内の１つの電子メール文書のコンテンツが別の電子メール文書内に含まれているか（又は潜在的に含まれているか）否かを特定するための、プロセッササブシステム１５０により実行可能な命令を含む。種々の実施形態において、潜在的に含まれるか又は他の電子メールのコンテンツを含むと包含検出コード１３０によって特定された電子メール文書は、ユーザ（例えば、少なくとも返答電子メールのチェーン内の最後の電子メール）に報告することができる。特定の実施形態において、特定された電子メールは更に評価することができる。例えば、同一確認により、電子メール文書を別のコードにより分析又は比較して、１つの電子メールのコンテンツが別のメール内に含まれている程度を判定及び／又は確認すること、及び／又は電子メールのチェーンを特定することができる。包含検出コード１３０を実行することで、他の電子メール文書内にコンテンツを含まない電子メール文書の効率的なフィルタリングが可能になる。
【００１３】
図２は、包含検出コード１３０の１つの実施形態の実行に従って実施することができる種々の作業を例示するフローチャートである。図２に例示する種々の作業は、図３に示す例示的な状況に関連して検討することになるが、図３は、２つの可能性がある電子メール文書３０１Ａ及び３０１Ｂのコンテンツを示す。図示のように、電子メール文書３０１Ｂは、電子メール文書３０１Ａに対する返答である。本実施例において、電子メールは３０１Ａ及び３０１Ｂは、異なる電子メールヘッダ（例えば、送信者、宛先、及び件名の部分）を含むことに留意されたい。また、電子メール文書３０１Ｂの末尾部には、電子メール文書０１1Ａには含まれていない文字列「Ｔｈｅ  ｆｏｘ  ｗａｓ  ｃｕｎｎｉｎｇ」が含まれることに留意されたい。
【００１４】
ステップ２１０では、処理中の電子メール文書の無関係の電子メールコンテンツを取り除く又は無視する。この無関係なコンテンツとしては、「Ｆｒｏｍ［Ｎａｍｅ］、Ｔｏ［Ｎａｍｅ］、Ｓｕｂｊｅｃｔ［ＴＩＴＬＥ］、［ＤＡＴＥ］、［ＴＩＭＥ］、［ＮＡＭＥ］ｗｒｏｔｅ」、「転送メッセージ開始」、「−−−−−元のメッセージ−−−−−」等の一般的な電子メール文書に見いだすことができる共通の再発する語句を挙げることができる。図４にはこのステップから得られる実施例が示されており、ヘッダは、電子メール文書３０１Ａ及び３０１Ｂから取り除かれている。種々の実施形態において、ステップ２１０の間に各々の電子メール文書から取り除かれた／無視された無関係な電子メールコンテンツは、所定の又は予め選択されたワード又は語句（例えば、一般に電子メール文書に共通の語句）とすることができる。他の実施形態において、取り除かれる／無視される無関係な電子メールコンテンツは、ユーザからの入力によって管理又は指定することができる。特定の実施形態において、ステップ２１０を省略できることに留意されたい。
【００１５】
次に、ステップ２２０において、処理中の第１の電子メール文書の段落ごとに第１の組のハッシュ値が生成され、ステップ２３０において、処理中の第２の電子メール文書の段落ごとに第２の組のハッシュ値が生成される。図５には、段落「Ｔｈｅ  ｑｕｉｃｋ  ｂｒｏｗｎ  ｆｏｘ  ｊｕｍｐｅｄ  ｏｖｅｒ  ｔｈｅ  ｌａｚｙ  ｄｏｇ」、「Ｔｈｅ  ｄｏｇ  ｗａｓ  ｓｌｅｅｐｉｎｇ」、及び「Ｔｈｅ  ｆｏｘ  ｗａｓ  ｃｕｎｎｉｎｇ」に関するハッシュ値５０１Ａ〜Ｅが生成される実施例を示す。この特定の実施形態において、段落内の各々の文字のアルファベット位置を合計して各々のハッシュ値を生成する。例えば、文字「Ｔ」はアルファベットの第２０の文字であり、文字「ｈ」は第８の文字である。したがって、段落「Ｔｈｅ  ｑｕｉｃｋ  ｂｒｏｗｎ  ｆｏｘ  ｊｕｍｐｅｄ  ｏｖｅｒ  ｔｈｅ  ｌａｚｙ  ｄｏｇ」の文字のアルファベット位置の合計に基づいて「４６４」のハッシュ値が生成される。同様に、それぞれの段落「Ｔｈｅ  ｄｏｇ  ｗａｓ  ｓｌｅｅｐｉｎｇ」及び「Ｔｈｅ  ｆｏｘ  ｗａｓ  ｃｕｎｎｉｎｇ」に基づいてハッシュ値「１８９」及び「２０３」が計算される。
【００１６】
任意の種々の他のハッシュ関数を使用して特定の段落に関するハッシュ値を計算できることに留意されたい。一般的に言えば、「ハッシュ関数」は、入力を数（すなわちハッシュ値）へマッピングさせる任意の関数である。したがって、種々の実施形態において、ＭＤ５ハッシュ、ＳＨＡ−１ハッシュなどの特定のハッシュアルゴリズムを使用することができる。例示的な実施例において、ハッシュ関数への入力としては、段落を形成する文字、又は文字のＡＳＣＩＩ序数値又は各々の段落内の文字の英字位置等の文字を表す値を挙げることができる。実施形態に応じて、句読点記号及び／又は数字等の文字をハッシュ関数への入力として含めること又は含めないことができる。
【００１７】
また、特定の実施形態において、異なるハッシュ関数を使用して各々の段落に関して複数のハッシュ値を生成できることに留意されたい。更に、特定の別の実施形態において、例えば、文、段落の一部、又は文字をグループ化するための任意の他の変形例等の段落以外の文字列に関してハッシュ値を計算できることに留意されたい。
【００１８】
ステップ２４０において、ステップ２２０で生成した第１の組のハッシュ値と、ステップ２３０で生成した第２の組のハッシュ値とを比較して、第１の組のハッシュ値が第２の組のハッシュ値のサブセットを成すか否かを判定する。第１セットが第２セットのサブセットを成す場合、包含検出コード１３０は、ステップ２５０Ａにおいて、第１の電子メールのコンテンツが第２の電子メールに含まれる（又は含まれる可能性がある）旨の表示を行うことができる。逆に、第１セットが第２セットのサブセットではない場合、包含検出コード１３０は、ステップ２５０Ｂにおいて、第１の電子メールのコンテンツが第２の電子メール内に含まれない（又は含まれない可能性がある）旨の表示を行うことができる。図５に示すように、電子メール文書３０１Ａのそれぞれの段落「Ｔｈｅ  ｑｕｉｃｋ  ｂｒｏｗｎ  ｆｏｘ  ｊｕｍｐｅｄ  ｏｖｅｒ  ｔｈｅ  ｌａｚｙ  ｄｏｇ」及び「Ｔｈｅ  ｄｏｇ  ｗａｓ  ｓｌｅｅｐｉｎｇ」から、ハッシュ値４６４及び１８９が生成される。電子メール文書３０１Ａのこれらの段落は電子メール文書３０１Ｂのコンテンツにも含まれるので、ハッシュ値「４６４」及び「１８９」は、電子メール文書３０１Ｂに関しても生成される。一方で「Ｔｈｅ  ｆｏｘ  ｗａｓ  ｃｕｎｎｉｎｇ」は、電子メール文書３０１Ｂだけに含まれているので、ハッシュ値「２０３」は、電子メール文書３０１Ｂに関してだけ生成される。電子メール文書３０１Ａに対応するハッシュ値「４６４」及び「１８９」の組は、電子メール文書３０１Ｂに対応するハッシュ値「４６４」、「１８９」、及び「２０３」の組よりも小さなサブセットを成すことから、包含検出コード１３０は、電子メール文書３０１Ａのコンテンツが電子メール文書３０１Ｂに含まれるという表示を行うことができる。本明細書で使用する場合、第２の組が第１の組に含まれる各々のハッシュ値、並びに第１の電子メール文書に含まれない段落から生成される追加的なハッシュ値を含む場合、第１の電子メール文書に関して生成された第１の組のハッシュ値は、第２の電子メール文書の小さなサブセットを成す。特定の実施形態において、第１の組が第２の組と同じである場合（すなわち、各々の組が同じハッシュ値を含む場合）、包含検出コード１３０は、ステップ２５０Ａにおいてコンテンツ包含の表示を行うこともできる。
【００１９】
異なる電子メール文書のペアを繰り返し比較することにより、返答電子メールのチェーンは、他の電子メールに含まれるコンテンツを有する電子メールを判定することによって特定することができる。１つの電子メールがチェーン内の全ての他のコンテンツを含むと判定されると、この電子メールがチェーン内の最後のメールであると推察できる。例えば、図５において、電子メール文書３０１Ａ及び３０１Ｂは、返答電子メールの同じチェーン内にあり、電子メール文書３０１Ｂは、最後の電子メールである。特定の実施形態においては、包含検出コード１３０は、特定の電子メールは、いくつかの他の電子メールのコンテンツを含むと判定し、かつ、特定の電子メールがチェーン内の最後であるという表示を行うように構成することができる。
【００２０】
複数の無関係な電子メールは、１つの電子メール文書のコンテンツが別の電子メール（例えば、共通の再発する段落）に含まれる（又は、潜在的に含まれる）という誤った表示をもたらすコンテンツを含む場合が時折あることに留意されたい。したがって、種々の実施形態において、ステップ２４０の間に、包含検出コード１３０は、複数の無関係な電子メールに出現するコンテンツに対応する特定のハッシュ値を無視するようにプログラムすることができる。
【００２１】
図６は、１組のハッシュ値が別の組の小さなサブセットを成すか否かを判定するステップ２４０の１つの特定の実施例を示すフローチャートである。したがって、以下の操作を前述の方法とともに実行することができる。
【００２２】
ステップ６１０において、ステップ２２０で生成した第１の組のハッシュ値は、第１の電子メール文書に対応するブルームフィルタに反映される。一般的に言えば、「ブルームフィルタ」は、１組の素子を表すビットベクトルの形のデータ構造であり、要素がその組の構成要素であるか否かを検査するために使用される。最初に、空のブルームフィルタは、ゼロのビットアレイとして特徴づけることができる。要素はブルームフィルタに追加されるので、対応する代表ビットをセットすることができる。
【００２３】
つまり、図７に示すように、選択されたビットをセットすることにより、「４６４」の計算ハッシュ値５０１Ａ、及び電子メール文書３０１Ａからの段落に対応する「１８９」の計算ハッシュ値５０１Ｂは、ブルームフィルタ７０１Ａに反映される。特に、本実施例で示す特定のブルームフィルタアルゴリズムに関して、計算ハッシュ値「４６４」を形成する数字に基づいて、ブルームフィルタ６０１Ａのビット位置４及び６をセットし、同様に、ハッシュ値「１８９」に対して位置１、８、及び９に対応するビットをセットする。ステップ６２０において、図示のように、選択されたビットを同様にセットすることにより、第２の電子メール文書３０１Ｂの段落に対応する、ステップ２３０で生成された計算ハッシュ値をブルームフィルタ７０１Ｂに反映させる。
【００２４】
他の実施形態において、任意の種々の他のブルームフィルタアルゴリズムを用いることができることに留意されたい。例えば、ブルームフィルタデータ構造を形成するベクトルのサイズ（すなわちビット数）は、図７に示すものより非常に大きくすることができ、アルゴリズムで指示される通りに他の特定のビット位置をセットすることにより、所定のハッシュ値をブルームフィルタにおいて表すことができる。
【００２５】
ステップ６３０において、ステップ６１０及び６２０で生成されたブルームフィルタを比較してオーバーラップの程度を判定する。図６に示すように、計算ハッシュ値「４６４」及び「１８９」は、ブルームフィルタ７０１Ａ及び７０１Ｂの両方に示されているので、ブルームフィルタ７０１Ａ及び７０１Ｂの位置１、４、６、８、及び９のビットがこれに対応してセットされる。一方、ハッシュ値「２０３」は、ブルームフィルタ７０１Ｂでのみに示されているので、ブルームフィルタ７０１Ａにおいて、位置２、０、及び３のビットはこれに対応してセットされない。
【００２６】
図８に示す１つの特定の実施形態において、ビット単位のＯＲを行って２つの電子メール文書のブルームフィルタを比較することができる。本実施例において、ビットベクトル８０１は、ブルームフィルタ７０１Ａ及び７０１Ｂの各ビットベクトルの間のビット単位ＯＲから生成され、その後、ブルームフィルタ７０１Ａ及び７０１Ｂの各々と比較される。結果として得られるビット単位ＯＲのビットベクトル８０１が入力ブルームフィルタ７０１Ａ又は７０１Ｂのいずれかに一致する場合、包含検出コード１３０は、ステップ２５０Ａにおいて、一方の電子メールのコンテンツが他方の電子メールのコンテンツに含まれている（又は、潜在的に含まれている）旨の表示を行うことができる。逆に、結果として得られるビット単位ＯＲのビットベクトル８０１がブルームフィルタ７０１Ａ又は７０１Ｂのいずれにも一致しない場合、包含検出コード１３０は、ステップ２５０Ｂにおいて、いずれの電子メールのコンテンツも他方の電子メールのコンテンツに含まれない（又は、潜在的に含まれない）という表示を行うことができる。図８に示す特定の実施例において、ビットベクトル８０１は、ブルームフィルタ７０１Ｂに一致しているので、包含検出コード１３０は、電子メール文書３０１Ａのコンテンツが電子メール文書３０１Ｂに含まれるという表示を行うことに留意されたい。
【００２７】
以上、特定の実施形態について説明したが、これらの実施形態は、特定の特徴部に関して単一の実施形態だけで説明されている場合であっても本開示内容の範囲を限定することを目的とするものではない。本開示内容においてもたらされる特徴部の実施例は、特に記述がない限り、制限的ではなく例示的であることが意図されている。前記の説明は、本開示内容から利益を得る当業者であれば理解できるような変形物、変更物、及び均等物を包含することを目的とする。本発明の範囲は、種々の説明された実施形態によって解決される問題点の一部又は全部を軽減するか否かを問わず、本明細書で（明示的に又は非明示的に）開示する任意の特徴部又は特徴部の組み合わせ、又は任意の一般化されたものを含む。したがって、新しい請求項は、このような特徴部の任意の組合せに対して、本出願（又は優先権を主張する出願）の審査中に作成することができる。特に、特許請求の範囲に関して、従属請求項の特徴部は独立請求項と組み合わせることができ、それぞれの独立請求項の特徴部は、任意の適当な方法で、特許請求の範囲に列挙する特定の組合せだけに留まらず組み合わせることができる。
【符号の説明】
【００２８】
１００  コンピューターシステム；  １１０  記憶サブシステム；  
１２０  電子メールデータベース；  １３０  包含検出コード；  
１５０  プロセッササブシステム。  
【図１】
2010231252.tif 000003
【図２】
2010231252.tif 000004
【図３】
2010231252.tif 000005
【図４】
2010231252.tif 000006
【図５】
2010231252.tif 000007
【図６】
2010231252.tif 000008
【図７】
2010231252.tif 000009
【図８】
2010231252.tif 000010
【外国語明細書】
2010231252.tif 000011
2010231252.tif 000012
2010231252.tif 000013
2010231252.tif 000014
2010231252.tif 000015
2010231252.tif 000016
2010231252.tif 000017
2010231252.tif 000018
2010231252.tif 000019
2010231252.tif 000020
2010231252.tif 000021
2010231252.tif 000022
2010231252.tif 000023
2010231252.tif 000024
2010231252.tif 000025
2010231252.tif 000026
2010231252.tif 000027
2010231252.tif 000028
2010231252.tif 000029
2010231252.tif 000030
2010231252.tif 000031
2010231252.tif 000032
2010231252.tif 000033
2010231252.tif 000034