(57)【要約】入力ドキュメントをドキュメント保管庫からの一組のドキュメントに対して照合する自動化された方法。一組のドキュメントのそれぞれについて、ドキュメント識別子、及び第１の署名発生器(215-A)により生成された署名を含む署名データベース(224)を記憶する。入力ドキュメントを受け取り、第２の署名発生器(215-B)を使用して、入力ドキュメントに対して署名を生成し、入力ドキュメントに対して生成された署名を使用して、署名データベースを検索する。第１の署名発生器(215-A)、及び第２の署名発生器(215-B)は、同一ドキュメントに対して異なる数の署名を生成するように構成される。他の実施形態、態様、及び機能も開示する。
2010518531.tif 000002
【特許請求の範囲】
【請求項１】
非対称署名生成を使用したドキュメント照合のための自動化された方法であって、
ドキュメント保管庫からドキュメントを受け取るステップと、
第１の署名発生器を使用して、前記ドキュメントのそれぞれについて署名を生成するステップと、
前記ドキュメントのそれぞれについての前記署名、及びドキュメント識別子を署名データベースに提供するステップと、
入力ドキュメントを受け取るステップと、
第２の署名発生器を使用して、前記入力ドキュメントについて署名を生成するステップと、
前記入力ドキュメントについて生成された署名を使用して、前記署名データベースを検索するステップと
を含み、
前記第１の署名発生器、及び前記第２の署名発生器は、同一ドキュメントに対して異なる数の署名を生成するように構成される、方法。
【請求項２】
前記第１の署名発生器は、前記第２の署名発生器に比べて、同一のドキュメントから少ない数の署名を生成するように構成される、請求項１に記載の方法。
【請求項３】
前記第１の署名発生器、及び前記第２の署名発生器はいずれも、同じ許容レベルを有するように構成され、前記許容レベルは、ドキュメント変化を特定するために前記方法を使用することが可能であるという予想に関連する、請求項２に記載の方法。
【請求項４】
前記第１の署名発生器、及び前記第２の署名発生器はいずれも、ドキュメントテキストサイズが増大するのにしたがって増大する数の署名を生成するように構成される、請求項３に記載の方法。
【請求項５】
複数の前記第２の署名発生器がそれぞれ、ネットワークの保護ポイントに配置される、請求項２に記載の方法。
【請求項６】
前記ネットワークの保護ポイントは、インターネット・プロトコル・ルーターを含む、請求項５に記載の方法。
【請求項７】
前記ネットワークの保護ポイントは、無線アクセスポイントを含む、請求項５に記載の方法。
【請求項８】
前記ネットワークの保護ポイントは、ホストコンピュータの入出力インタフェースを含む、請求項５に記載の方法。
【請求項９】
前記ネットワークの保護ポイントは、携帯機器の入出力インタフェースを含む、請求項５に記載の方法。
【請求項１０】
前記第１の署名発生器、及び前記第２の署名発生器はそれぞれ、
テキストを含むドキュメントを受け取り、
前記ドキュメントを構文解析し、所定の文字特性によって隔てられた前記ドキュメント上のテキストにそれぞれ対応する複数のトークンを含むトークンセットを生成し、
前記ドキュメント中の前記テキストの頻度、及び分布に基いて、前記トークンセット中の各トークンについてスコアを計算し、
計算されたスコアに基いて、前記トークンセット中の各トークンをランク付けし、
ランク付けされたトークンの中から、ランク付けされたトークンのサブセットを選択し、
選択されたトークンの出現のそれぞれについて、署名を生成するように構成される、請求項１に記載の方法。
【請求項１１】
前記第１の署名発生器、及び前記第２の署名発生器はそれぞれ、
複数の文字を含むドキュメントを受け取り、
前記ドキュメントを正規化し、前記複数の文字の中から情報を有しない文字を除去し、
前記ドキュメント中の出現頻度、及び分布に基いて、前記複数の文字のうちの情報を有する各文字についてスコアを計算し、
計算されたスコアに基いて、前記複数の文字のうちの情報を有する各文字をランク付けし、
ランク付けされた情報を有する文字の中から、文字出現を選択し、
選択された文字出現のそれぞれについて署名を生成するように構成される、請求項１に記載の方法。
【請求項１２】
入力ドキュメントをドキュメント保管庫からの一組のドキュメントに対して照合する自動化された方法であって、
ドキュメント識別子、及び前記一組のドキュメントのそれぞれについて第１の署名発生器によって生成された署名を含む署名データベースを記憶するステップと、
入力ドキュメントを受け取るステップと、
第２の署名発生器を使用して、前記入力ドキュメントについて署名を生成するステップと、
前記入力ドキュメントについて生成された署名を使用して、前記署名データベースを検索するステップと
を含み、
前記第１の署名発生器、及び前記第２の署名発生器は、同一ドキュメントに対して異なる数の署名を生成するように構成される、方法。
【請求項１３】
前記第１の署名発生器は、前記第２の署名発生器に比べて、同一ドキュメントから少ない数の署名を生成するように構成される、請求項１２に記載の方法。
【請求項１４】
前記第１の署名発生器、及び前記第２の署名発生器はいずれも、同じ許容レベルを有するように構成され、前記許容レベルは、ドキュメント変化を特定するために前記方法を使用することが可能であるという予想に関連する、請求項１３に記載の方法。
【請求項１５】
前記第１の署名発生器、及び前記第２の署名発生器はいずれも、ドキュメントテキストサイズが増大するのにしたがって増大する数の署名を生成するように構成される、請求項１４に記載の方法。
【請求項１６】
前記第２の署名発生器は、ネットワークの保護ポイントに配置される、請求項１３に記載の方法。
【請求項１７】
前記ネットワークの保護ポイントは、インターネット・プロトコル・ルーターを含む、請求項１６に記載の方法。
【請求項１８】
前記ネットワークの保護ポイントは、無線アクセスポイントを含む、請求項１６に記載の方法。
【請求項１９】
前記ネットワークの保護ポイントは、ホストコンピュータの入出力インタフェースを含む、請求項１６に記載の方法。
【請求項２０】
前記ネットワークの保護ポイントは、携帯機器の入出力インタフェースを含む、請求項１６に記載の方法。
【請求項２１】
前記第１の署名発生器、及び前記第２の署名発生器はそれぞれ、
テキストを含むドキュメントを受け取り、
前記ドキュメントを構文解析し、所定の文字特性によって隔てられた前記ドキュメント上のテキストにそれぞれ対応する複数のトークンを含むトークンセットを生成し、
前記ドキュメント中の前記テキストの頻度、及び分布に基いて、前記トークンセット中の各トークンについてスコアを計算し、
計算されたスコアに基いて、前記トークンセット中の各トークンをランク付けし、
ランク付けされたトークンの中から、ランク付けされたトークンのサブセットを選択し、
選択されたトークンの出現のそれぞれについて、署名を生成するように構成される、請求項１２に記載の方法。
【請求項２２】
前記第１の署名発生器、及び前記第２の署名発生器はそれぞれ、
複数の文字を含むドキュメントを受け取り、
前記ドキュメントを正規化し、前記複数の文字の中から情報を有しない文字を除去し、
前記ドキュメント中の出現頻度、及び分布に基いて、前記複数の文字のうちの情報を有する各文字についてスコアを計算し、
計算されたスコアに基いて、前記複数の文字のうちの情報を有する各文字をランク付けし、
ランク付けされた情報を有する文字の中から、文字出現を選択し、
選択された文字出現のそれぞれについて署名を生成するように構成される、請求項１２に記載の方法。
【請求項２３】
プロセッサにより実行可能な命令を記憶するように構成されたコンピュータ読取可能媒体であって、前記命令は実行されたときに、プロセッサに、
一組のドキュメントのそれぞれについてドキュメント識別子、及び第１の署名発生器によって生成された署名を含む署名データベースを記憶させ、
入力ドキュメントを受け取らせ、
第２の署名発生器を使用して前記入力ドキュメントに対する署名を生成させ、
前記入力ドキュメントに対して生成された署名を使用して前記署名データベースを検索させるように構成され、
前記第１の署名発生器、及び前記第２の署名発生器は、同一ドキュメントに対して異なる数の署名を生成するように構成される、コンピュータ読取可能媒体。
【請求項２４】
コンピュータ読取可能命令を実行するように構成されたプロセッサと、
前記コンピュータ読取可能命令を含むデータを記憶するように構成されたメモリと、
前記プロセッサ、及び前記メモリを相互接続する通信システムとを含み、
前記コンピュータ読取可能命令は、一組のドキュメントのそれぞれについてドキュメント識別子、及び第１の署名発生器によって生成された署名を含む署名データベースを記憶し、入力ドキュメントを受け取り、第２の署名発生器を使用して前記入力ドキュメントに対する署名を生成し、前記入力ドキュメントに対して生成された署名を使用して前記署名データベースを検索するように構成され、
前記第１の署名発生器、及び前記第２の署名発生器は、同一ドキュメントに対して異なる数の署名を生成するように構成される、コンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２００７年２月１４日に出願されたLiwei Ren他による「Asymmetric Document Signature Generation」と題する米国仮特許出願第６０／８８９，７７５号の恩恵を主張する。この米国仮特許出願の中身は、参照により全て本明細書に援用される。
【０００２】
本願は、２００６年２月２４日に出願されたLiwei Ren他による「Matching Engine with Signature Generation」と題する米国特許出願第１１／３６１，３４０号に関連する。
【０００３】
１．技術分野
本発明は、概して、サーチエンジン技術に関し、詳しくは、コンテンツ照合エンジンに関する。
【背景技術】
【０００４】
２．関連技術の説明
従来のサーチエンジン
一般に、エンタープライズ・サーチエンジンは、与えられたクエリ・ステートメントを含む関連ドキュメントを探すためのソフトウェアシステムである。エンタープライズ・サーチエンジンは通常、クローラー、インデクサー、サーチャー、及びクエリ・エンジンから構成される。クローラーは、事前に決められた種々の場所からドキュメントを収集し、ドキュメントを保管庫に放り込む。インデクサーは、ドキュメント保管庫からドキュメントを取り出し、ドキュメントから索引を生成し、索引を索引データベースに記憶する。サーチャーは、具体的なクエリに応答して、索引データベースを検索し、関連文書のリスト（「ヒット」と呼ばれる）を返す。クエリエンジンは、ユーザから与えられたクエリ語句を構文解析し、種々のクエリコマンドをサーチャーへ送信し、処理を行う。
【０００５】
ここで例えば、図１に示されている従来のサーチシステム１００を考える。従来のサーチシステム１００は、ドキュメント保管庫に記憶されている１以上のドキュメントソース１０５（ａ〜ｎ）から、ドキュメントをフェッチすることが出来る。ドキュメントソース１０５（ａ〜ｎ）からフェッチされたドキュメントは、サーチエンジン１２０によって索引付けされ、索引付けされたドキュメント１２２は、索引データベース１２４に記憶される。
【０００６】
その後、情報を求めるユーザ１５０は、クエリ作成器１３０を使用し、サーチエンジン１２０においてドキュメント１２６を検索するためのクエリを作成する場合がある。すると、索引データベース１２４内の索引付けされた種々のドキュメント１２２に対し、サーチエンジン１２０によりサーチが実施される。クエリに対応する１以上の一致（すなわち、「ヒット」）が見つかると、サーチエンジン１２０は、一致する索引付けされたドキュメントを、ユーザ１５０に提示されるサーチ結果１３５として返す。
【０００７】
上述の検索システムは、マニュアル検索に比べて改良されてはいるものの、依然として種々の制限を有する。一つの制限は、索引付けされたドキュメントが、クエリのコンテクストに必ずしも関連しないことである。例えば、全米プロフットボールリーグ（ＮＦＬ）の得点に関連するドキュメントの検索により、アメリカンフットボールリーグではなく、英国フットボール（サッカー）に関連する結果が返されることがある。
【０００８】
より一般的には、従来のサーチシステムは、多数のクエリ問題について関連ドキュメントを検索するのに不十分である。例えば、２つのドキュメントの関連度が、何らかの所定のパーセンテージ値、例えばＸ％であると推測される場合における問題を考える。入力ドキュメント、及びこのパーセンテージ値Ｘ％を与えると、ドキュメント保管庫からの関連ドキュメントの検索は、その入力ドキュメントと、返されるドキュメントとの間の関連度がいずれも、Ｘ％より大きくなければならないように実施される。
【０００９】
上記のクエリ問題に従来の検索システムを直接使用した場合、幾つかの欠点が生じる。例えば、従来の検索システムは、ドキュメントの関連度に関する正確、かつ効率的な測定を行うことが出来ない場合がある。
【００１０】
また、従来の検索システムは一般に、ドキュメントの巨大なリストを返し、リストの大半は全く関係ない場合がある。したがって、取得の精度は低い。ドキュメントの巨大なリストを返すことは、従来の検索エンジン技術の一般的問題である。なぜなら、キーワードで表されたクエリは、ユーザが取得しようとするドキュメントを正確に表現することが出来ないからである。
【００１１】
従来の検索システムの直接的使用に伴うもう一つの欠点は、それらは通常、種々のモデルを使用してドキュメントの関連度を測定しており、モデルはしばしば不正確なことがあり、また非常に激しい計算を必要とすることである。そのように不正確でリソース消費の激しいモデルとしては、例えば、用語ベクトル空間モデル、確率モデル、及び潜在的意味空間モデルなどが挙げられる。
【００１２】
したがって、従来の検索システムに変更を加えて改良し、検索エンジンが、クエリに応答して、高い関連度を有するドキュメントの精確、且つ正確なリストを返すようにすることが必要とされている。さらに、従来の検索システムに変更を加えて改良し、空きリソースを効率的、かつ有効に使用することも必要とされている。
【発明の概要】
【課題を解決するための手段】
【００１３】
概要
一実施形態は、入力ドキュメントをドキュメント保管庫からの一組のドキュメントと照合する自動化された方法に関する。一組のドキュメントのそれぞれについてドキュメント識別子、及び第１の署名発生器により生成された署名を含む、署名データベースを記憶する。入力ドキュメントを受け取り、第２の署名発生器を使用して入力ドキュメントに対して署名を生成し、入力ドキュメントに対して生成された署名を使用して署名データベースを検索する。第１、及び第２の署名発生器は、同一ドキュメントに対して異なる数の署名を生成するように構成される。
【００１４】
他の実施形態、態様、及び特徴も開示する。
【００１５】
開示される種々の実施形態は、他にも利点、及び特徴を有する。それらは、添付の図面を併せて見ることによってより容易に、下記の詳細な説明、及び添付の特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】検索エンジンの従来のアーキテクチャを示す図である。
【図２Ａ】署名生成を利用した照合エンジンのアーキテクチャの一実施形態を示す図である。
【図２Ｂ】分散コンピューティング環境における署名生成を利用した照合エンジンの配備を示す図である。
【図２Ｃ】本発明による非対称署名生成を利用した照合エンジンのアーキテクチャの一実施形態を示す図である。
【図３】本発明による、英語のドキュメントに使用される、署名生成プロセスの第１の実施形態を示す図である。
【図４】本発明による、Universal Transformation Format (UTF)でエンコードされたドキュメントに使用される、署名生成プロセスの第２の実施形態を示す図である。
【図５】本発明による関連度検出プロセスの第１の実施形態を示す図である。
【図６】本発明による関連度検出プロセスの第２の実施形態を示す図である。
【図７】本発明の一実施形態に従って種々の方法ステップを実施するように構成される場合がある例示的なコンピュータ装置７００を示す概略図である。
【発明を実施するための形態】
【００１７】
詳細な説明
背景技術のセクションで述べたように、従来の検索アーキテクチャに変更を加えて改良し、検索アーキテクチャが、クエリに応答して、高い関連度を有するドキュメントを精確、且つ正確に返すようにすることが必要とされている。
【００１８】
署名生成を利用した照合エンジン
高い関連度を有するドキュメントを効率的に見付ける一つの方法は、ドキュメントに対する署名の付与、及びドキュメントに関連付けられた署名の使用である。この方法は、２００６年２月２４日にLiwei Ren他により出願された、「Matching Engine with Signature Generation」と題する同時継続の米国特許出願第１１／３６１，３４０号に開示されている。
【００１９】
図２Ａは、米国特許出願第１１／３６１，３４０号に開示されているような、署名を利用した照合エンジンのアーキテクチャを示している。図２Ａに示すように、１以上のドキュメントリソース２０５（ａ〜ｎ）が、ドキュメント保管庫２１０に収集（すなわち、記憶）される場合がある。一般に、このアーキテクチャは、ドキュメント中の種々のトークンを事前処理し、最も有用な幾つかのトークンを選択し、有用なトークンに基いて、ドキュメントに関連する署名を生成するように構成される。アーキテクチャはさらに、生成される署名の、入力ドキュメントに対する一意性を確保するように構成される。アーキテクチャはさらに、同一文書の種々のバージョンにわたる収集の安定性を維持しつつ、収集される署名の数を制限するように構成される。なお、一実施形態において、署名は例えば、特定の情報に対応するハッシュ表現のような値、又は選択されたトークンに一致するＡＳＣＩＩ文字の文字列である場合がある。
【００２０】
次に、アーキテクチャに関連するプロセスの一実施形態を参照すると、まず、ドキュメント２０５は、手動で収集され、又はクローラーを使用して収集される。例えば、クローラーは、ドキュメントを収集するために、決められたドキュメントリソースを全て訪れてドキュメントを収集し、収集された各ドキュメントに一意のドキュメント識別子（ＩＤ）を割り当て、その一意のドキュメントＩＤ、及びドキュメントをドキュメント保管庫２１０に入れるように構成される場合がある。
【００２１】
署名発生器２１５は、ドキュメント保管庫２１０内の特定の幾つかのドキュメントから署名のリストを生成する。署名は、ドキュメントを表す一意の情報から、人によって作成される文字列、又は値である。この代表的情報は、ドキュメントにとって固有であり、ドキュメントに小さな変化があったときでも、変わらない。署名発生器２１５は、１以上の署名発生プロセスを記憶するように構成される場合がある。署名発生器２１５はさらに、処理すべきドキュメントのタイプに基いて、記憶されたプロセスの中から一つのプロセスを選択し、実行するように構成される場合がある。例えば、署名発生プロセスの一実施形態は、例えばＡＳＣＩＩコードで書かれた英語のドキュメントに対して使用されるように適合（構成）され、詳しくは、図３を参照して説明される。このプロセスは、例えば、ロマンス語やラテン語のような、小文字、ストップワード、及びステミングを使用することがある他の言語にも使用することができる。署名生成プロセスの他の実施形態は、ユニコードを使用する任意の言語について、ＵＴＦ−８（Universal Transformation Format）でエンコードされたドキュメントで使用されるように構成される場合があり、詳しくは、図４を参照して説明される。
【００２２】
署名発生器２１５が、特定のドキュメントに対して署名を生成すると、インデクサー２２２は、そのドキュメントに、一意のドキュメント識別子（ＩＤ）、及び署名発生器２１５により生成された署名を索引付ける。結果得られた（インデクサ２２２により）索引付けされたドキュメントは、検索エンジン２２０の索引データベース２２４に記憶される。
【００２３】
索引付けされたドキュメントが検索エンジン２２０の索引データベース２２４に記憶されると、ドキュメントを検索する準備が完了する。ユーザ２５０は、署名発生器２１５によって生成された署名に基いて、クエリ・ライター２３０を使用してクエリ語句を書く。なお、ユーザ２５０により提供される入力ドキュメントは、クエリ入力を提供する。ユーザ２５０は、署名が何であるかを知る必要なく、むしろユーザ２５０は、入力ドキュメントが何であるかを知っているだけでよい。ユーザ２５０は、入力ドキュメントを署名発生器２１５に渡す。署名発生器２１５から出力された署名は、クエリ作成のために、クエリ・ライター２３０に渡される。そして、作成されたクエリは、ドキュメント検索のために、サーチャー２２２（検索手段）に渡される。
【００２４】
検索エンジン２２０におけるサーチャー２２６は、クエリ・ライター２３０を使用して提供されたクエリを使用して、索引データベース２２４を検索する。サーチャーは、関連する可能性があるドキュメント２２６（「ヒット」）のリストを関連度検出エンジン２４０に返す。関連度検出エンジン２４０は、入力ドキュメントとヒットとの間の関連度（例えば、パーセンテージで表される）を計算する。関連度検出エンジン２４０は、関連度計算（すなわち、分析）のための１以上のプロセスを含むように構成される。関連度検出プロセスの第１の実施形態については、図５を参照して詳しく説明される。関連度検出プロセスの第２の実施形態については、図６を参照して詳しく説明される。なお、関連度検出エンジン２４０は、これらのプロセスのうちの何れかを選択し、及び／又は実施することができる。例えば、小さなドキュメントの場合、関連度検出プロセスの第１の実施形態が配備され、例えば、１０メガバイト（ＭＢ）よりも大きなサイズを持つ、大きなドキュメントの場合、関連度検出プロセスの第２の実施形態が配備される場合がある。
【００２５】
上述の照合エンジンアーキテクチャは、限られた一組の強く関連するドキュメントを効率良く見付けるために使用される場合がある。例えば、ドキュメントＤに対して関連度Ｘ％をもって関連するドキュメントを探すためのクエリが与えられた場合、照合エンジンは、ドキュメント保管庫からのドキュメント｛Ｄ１，・・・，Ｄｎ｝のリストを効率的に検索し、リストの中から、ドキュメントＤに対してＸ％よりも大きな関連度を有する一組のドキュメントを返す。
【００２６】
帯域幅制限、及びスケーラビリティ
図２Ａの照合エンジンアーキテクチャは、限られた一組の強く関連するドキュメントを効率的に見付けるために使用される場合があるが、このアーキテクチャには、幾つかの欠点がある。特に、このアーキテクチャは、帯域幅制限、及びスケーラビリティに関して制限を有する。
【００２７】
分散コンピューティング環境の例におけるこの照合エンジンアーキテクチャを考える。換言すれば、インデクサ２２２とサーチャー２２６が、ネットワーク２６０を介して異なるコンピュータシステムに配備される場合を考える。このケースは、図２Ｂに示されている。
【００２８】
この場合、署名（索引）データベース２２４は、インデクサ２２２のコンピュータシステム２６５において生成される。しかしながら、サーチャー２２６も、ドキュメント検索クエリを実行するために、署名（検索）データベース２２４をアクセスする必要がある。したがって、署名（索引）データベース２２４のコピーを、サーチャー２２６のコンピュータシステム２７０にもダウンロードしなければならない。
【００２９】
例えば、大きな法人企業の例では、ドキュメント保管庫内のドキュメントの数は、非常に大きな数に増大することがあり、例えば、百万個以上を上回る場合がある。索引付けされたドキュメントの数が大きくなるにつれて、署名（索引）データベース２２４も大きくなっていく。したがって、大きな署名（索引）データベース２２４をダウンロードするネットワーク帯域幅コストは、巨大になり、問題となる場合がある。さらに、サーチャー２２６のコンピュータシステム２７０において大きな署名（索引）データベース２２４を記憶するために必要となるデータ記憶空間も、巨大になり、問題となる場合がある。
【００３０】
言い換えれば、図２Ａの照合エンジンアーキテクチャには、スケーラビリティ制限がある。本願は、照合エンジンのスケーラビリティを大幅に改善する解決策を開示する。
【００３１】
非対称ドキュメント署名生成
図２Ａから分かるように、図２Ａの照合エンジンアーキテクチャは、インデクサー２２２とサーチャー２２６のいずれについても、署名発生器２１５が同じように構成される点で、対称的である。本願に開示する解決策は、この対称性を破壊する。
【００３２】
図２Ｃは、本発明による非対称署名を利用した照合エンジンアーキテクチャの一実施形態を示している。図示のように、２つの署名発生器２１５−Ａ（インデクサー用）、及び２１５−Ｂ（サーチャー用）が、今度は、異なる構成を有している。
【００３３】
具体的には、２つの署名発生器２１５−Ａ（インデクサー用）、及び２１５−Ｂ（サーチャー用）は、同じ署名生成アルゴリズム、又はプロセスを使用することも出来るが、これらは、互いに異なるように構成され、署名生成プロセスに対し、異なる入力パラメタを使用する場合がある。例えば、本願に記載する署名生成プロセス（図３、及び図４に関係する）はそれぞれ、次のようなパラメタで表現することができる：  Ｓ＝ＥｘｔｒａｃｔＳｉｇｎａｔｕｒｅ（Ｔ，Ｍ，Ｎ）。ただし、ＥｘｔｒａｃｔＳｉｇｎａｔｕｒｅ（）は、パラメタ化された署名生成プロセスを表し、Ｔは、入力テキストを表し、Ｍ、及びＮは、抽出すべき最大の署名を決定する２つの入力であり、Ｓは、出力署名の組を表す。
【００３４】
対称署名生成は、任意の所与のテキストに対する署名を生成するときに、下記のように同じ入力を有する（同じパラメタを使用する）：
・署名発生器Ａ：  Ｓ＝ＥｘｔｒａｃｔＳｉｇｎａｔｕｒｅ（Ｔ，Ｍ，Ｎ）
・署名発生器Ｂ：  Ｓ＝ＥｘｔｒａｃｔＳｉｇｎａｔｕｒｅ（Ｔ，Ｍ，Ｎ）
ただし、ＭとＮは同じである。例えば、ある特定の実施形態では、全ての入力テキストＴに対して一様に、Ｍ＝５、及びＮ＝５０に設定する場合がある。
【００３５】
これに対し、非対称署名発生器は、所与のテキストに対する署名を生成するために、異なる入力を有する（異なるパラメタを使用する）。例えば、一実施形態において、２つの署名発生器について、入力パラメタＮは異なる場合があるが、入力パラメタＭは同じである場合がある。
【００３６】
本発明の一実施形態によれば、署名発生器Ａについては、入力パラメタＮ＝Ｇｅｔ−Ｎ−ｆｏｒ−ＧｅｎｅｒａｔｏｒＡ（Ｔ，Ｌ）を使用して入力パラメタＮが決定され、署名発生器Ｂについては、Ｎ＝Ｇｅｔ−Ｎ−ｆｏｒ−ＧｅｎｅｒａｔｏｒＢ（Ｔ，Ｌ）を使用して入力パラメタＮが決定される場合がある。ただし、２つの関数Ｇｅｔ−Ｎ−ｆｏｒ−ＧｅｎｅｒａｔｏｒＡ（）と関数Ｇｅｔ−Ｎ−ｆｏｒ−ＧｅｎｅｒａｔｏｒＢ（）は異なるが、いずれも、入力テキストのテキストサイズＴ、及び許容レベルＬに基いて、入力番号Ｎを計算する。許容レベルは、照合エンジンが、何らかのドキュメントのバリエーションを識別する期待値を規定する。許容レベルは、パーセンテージで表現される場合がある。例えば、許容レベル３０％は、たとえドキュメントの中身の３０％以内が変更されていた場合でも、照合エンジンが、そのドキュメントのバージョンを特定出来ることを意味する。
【００３７】
一つの具体的な実施形態として、下記の６つの許容レベルを定義する場合がある。
・レベル１：  ５％
・レベル２：  １０％
・レベル３：  ２０％
・レベル４：  ４０％
・レベル５：  ５０％
・レベル６：  ベスト・エフォート。
【００３８】
さらに、この特定の実施形態では、下記の表１に従って、許容レベル（レベル１から６）、及びテキストサイズ（種々のサイズ範囲）に応じて、２つの関数Ｇｅｔ−Ｎ−ｆｏｒ−ＧｅｎｅｒａｔｏｒＡＧｅｔ−Ｎ−ｆｏｒ−ＧｅｎｅｒａｔｏｒＢを定義する
【表１】
2010518531.tif 000003
【００３９】
表１から分かるように、Ｎは通常、許容レベルの増大とともに増大し、この実施形態では、Ｎが２のべき乗（すなわち、２、４、８、１６、３２、・・・）の数であるものと仮定する。特定の許容レベルが選択されたとき、Ｎは通常、テキストサイズの増大とともに増大する。また、特定の許容レベル、及びテキストサイズが与えられたとき、発生器Ａに関するＮは一般に、発生器Ｂに関するＮよりも小さい。
【００４０】
上述の特定の実施形態では、同じ数Ｍを使用しつつ、テキストサイズに応じて異なる数Ｎを選択している。出願人は、この実施形態を使用して、対称署名生成とほぼ同じ正確さ、及び処理能力を維持しながら、有利にも、索引（署名）データベース２２４の大きさを低減することが出来ると判断した。
【００４１】
より一般的には、出願人は、下記の態様、及び特徴が、有利であるものと判断した。
・発生器Ａは、発生器Ｂに比べて非常に少ない数の署名しか生成する必要がない。
・発生器Ａと発生器Ｂの両方により抽出される署名の数は、入力テキストサイズに基いて決定されなければならない。
・ＡとＢの両方により抽出される署名の数は、システムによって設定可能な所定の許容レベルに基いて決定しなければならない。
【００４２】
出願人は、非対称署名生成を使用して、対称署名生成とほぼ同じ正確さ、及び処理能力を維持しつつも、署名データベースの大きさを低減できるであろうことの根拠として、次のような数学的定理を提示する。
【００４３】
入力Ｔ、及びＮが与えれたとき、任意のテキストＴに対し、Ｔから発生器により抽出される一組の署名をＳ（Ｔ，Ｎ）で表すものとする。
定理：Ｔを任意のテキストとし、ｎ、及びｍを、２のべき乗である２つの数であるものとする。もし、ｎ＜ｍであれば、次の結果が得られる：
Ｓ（Ｔ，ｎ）＜Ｔ（Ｔ，ｍ）
これは、一組の署名Ｓ（Ｔ，ｎ）が、Ｓ（Ｔ，ｍ）に含まれることを意味する。
推論：Ｔ１、及びＴ２を、同じテキストの２つのバージョンであるものとし、ｎ、及びｍを、２のべき乗である２つの数であるものとする。もし、ｎ＜ｍであれば、次の結果が得られる：
Ｓ（Ｔ１，ｎ）∩Ｓ（Ｔ２，ｎ）＜Ｓ（Ｔ１，ｎ）∩Ｓ（Ｔ２，ｍ）＜Ｓ（Ｔ１，ｍ）∩Ｓ（Ｔ２，ｍ）
ただし、Ｓ（Ｔ１，ｎ）∩Ｓ（Ｔ２，ｍ）は丁度、非対称署名生成が示す照合精度である。ここで、ｎ、及びｍは、発生器Ａ、及び発生器Ｂそれぞれについての入力数とみなすことができる。
【００４４】
この推論は、非対称署名生成の照合能力が、小さな署名番号を有する対称署名生成の場合と、大きな署名番号を有する対称署名生成の場合の２つの場合の間に位置することを表している。実際のところ、実験データによれば、それは、第２の場合に近いことが分かった。しかしながら、署名データベースは、非常に小さい。
【００４５】
本発明の一実施形態によれば、サーチャー２２６は、ネットワークの種々の保護ポイントに配置される場合がある。ネットワークの種々のポイントにサーチャー２２６を設置することにより、例えば、慎重に扱うべきデータが組織のネットワークから漏出することを防止することができる。ネットワークの保護ポイントとしては、例えば、インターネット・プロトコル・ルーター、ワイヤレス・アクセス・ポイント、並びに、ホストコンピュータ（例えば、デスクトップ、ラップトップなど）、携帯装置等の特定の入出力（例えば、データ記憶、又はネットワーク）インタフェースなどが挙げられる。
【００４６】
なお、一実施形態において、データベースは、例えば、フラットファイル、又は関連データベースのような従来のデータベースであってもよい。また、本明細書に開示するプロセスの種々の実施形態は、１以上のソフトウェア要素を使用して実施される場合がある。一般に、ソフトウェア要素（またはモジュール）は、特定の幾つかの処理を実施するように構成された任意のソフトウエア構造を意味する場合がある。一実施形態において、例えば、ソフトウェア要素は、例えばプロセッサのようなハードウェア要素によって実行されるように構成された種々のプログラム命令、及び／又はデータを含む場合がある。プログラム命令は、所定の構文を成すように構成された単語、値、または記号を含むコマンドの編成されたリストを含み、プログラム命令は、それを実行したときに、プロセッサに、対応する一組の処理を実施させる。
【００４７】
署名生成プロセス
一般に、署名発生器は、任意の関連ドキュメントから一組の署名を抽出する。各署名は、例えば、固定長のＡＳＣＩＩ文字列である場合がある。署名には、満たすべき特定の基準がある。第１に、無関係の２つのドキュメントが、同じ署名を共有してはならない。第２に、同じドキュメントの２つのバージョンは、少なくとも１つの共通の署名を共有しなければならない。
【００４８】
下記２つの署名生成アルゴリズム、又はプロセスはそれぞれ、ＡＳＣＩＩテキスト、及びＵＴＦ−８から署名を抽出するように設計される。これら２つの例示的プロセスについては、図３、及び図４をそれぞれ参照して詳しく説明される。
【００４９】
図３は、本発明による署名生成プロセスの第１の実施形態を示している。この実施形態は、ＡＳＣＩＩコードでエンコードされた英語のドキュメントからの署名の生成を示している。下記は、このプロセスに関する。ステップ３１０、３１５、３２０、及び３２５は、ドキュメント中のトークンを事前処理する。ステップ３３０、３３５、３４０、３４５、及び３５０は、最も有用な情報を有する幾つかのトークンを選択する。ステップ３５５、及び３６０は、署名を生成する。特に、ステップ３５５は、生成された署名が入力ドキュメントのコンテキストに対して一意に決定されることを確認し、ステップ３６０は、同一ドキュメントの種々の変更バージョンにわたる収集の安定性を維持しつつ、収集される署名の数を制限する。
【００５０】
プロセスは、ドキュメントの入力３０５から開始される。プロセスは、ドキュメントを構文解析３１０し、１以上のトークンの初期リスト（トークンリスト）を生成（すなわち、作成）する。一実施形態において、トークンは、所定の文字特性によって分離されたドキュメント上のテキストを含む。所定の文字特性の例は、デリミタである。トークンが分離された後、ステミング、ストップワーク、又は小文字分析のような関数を適用することができる。
【００５１】
続いてプロセスは、トークンリストの各トークンの小文字化３１５を実施する。小文字化３１５は、トークンの各文字を小文字に変換する関数である。プロセスはさらに、トークンリストの各トークンをステミングする。なお、ワード・ステミングとは、単語から中核となる語幹を識別、すなわち特定する処理である。続いてプロセスは、リストの各トークンにストップワードリストを適用３２５し、新たな第１のトークンリスト（Ｌ１）を形成する。ストップワードとは、何も情報を持たないとみなされる単語である。ストップワードの例としては、「ｔｈｅ」、「ａｒｅ」、「ｄｏ」、及び「ａｍ」などが挙げられる。さらに、プロセスは、ストップワードリストの各構成要素をステミングする。
【００５２】
プロセスは、第１の新たなトークンリスト（Ｌ１）から重複しないトークンをそれぞれ選択し（取り出し）、第２のトークンリスト（Ｌ２）を形成する。プロセスは、第２のトークンリストＬ２上の各トークンについて、第１のトークンリストＬ１におけるその出現位置をマーキング３３５し、下記の組を生成する：
Ｌ１＝｛ｔ１，ｔ２，・・・，ｔｍ｝
Ｌ２＝｛Ｔ１，Ｔ２，・・・，Ｔｍ｝
ただし、出現位置はＴｉ〜＜Ｐ（ｉ，１），Ｐ（ｉ，２），・・・，Ｐ（ｉ，Ｓｉ）＞で表され、ｉ＝１，・・・，ｎであり、Ｓ１＋Ｓ２＋・・・＋Ｓｎ＝ｍである。
【００５３】
次にプロセスは、第２のトークンリストＬ２における各トークンのランキング・スコアを計算（又は、生成）３４０する。スコアは、下記によって決定される。
Ｓｃｏｒｅ（Ｔｊ）＝［Ｐ（ｊ，Ｓｊ）−Ｐ（ｊ，１）］＊Ｓｊ＊Ｗｅｉｇｈｔ（Ｔｊ）／Ｓｑｒｔ（Ｄｊ）
ただし、Ｄｊ＝［Ｐ（ｊ，２）−Ｐ（ｊ，１）］２＋［Ｐ（ｊ，３）−Ｐ（ｊ，２）］２・・・＋［Ｐ（ｊ，Ｓｊ）−Ｐ（ｊ，Ｓｊ−１）］２である。さらに、スコア関数は、テキスト中のトークンの重要度を頻度、及びそのトークンに割り当てられた重みによって計測する。なお、ｗｅｉｇｈｔ（）は、所定の関数であってもよい。一実施形態において、その値は「１」である場合があり、他の実施形態では、トークンが「−」、「＿」、及び「＠」のような特殊な文字を幾らか含むとき、その値は、事前に割り当てられた数、例えば６．８である場合がある。スコア関数は、Ｓｊ＊Ｗｅｉｇｈｔ（Ｔｊ）によって決定される場合がある。スコア関数は、ドキュメント全体にトークンを均一に分散させ、より良いスコアを得るために使用される場合がある。これは、［Ｐ（ｊ，Ｓｊ）−Ｐ（ｊ，１）］／Ｓｑｒｔ（Ｄｊ）によって決まる。
【００５４】
次に、プロセスは、計算されたスコアによって、第２のトークンリストＬ２をソート３４５し、次に、そのリスト（Ｌ２）における上位Ｍ個のトークンを選択する（すなわち、取る）。なお、Ｍは、任意の整数であってよく、システム内で事前定義される場合もあれば、システムへの入力に従って選択される場合もある。スコアに従って第２のトークンリストＬ２から得られた上位Ｍ個のトークンは、第３のトークンリストＬ３を形成する。プロセスは、第３のトークンリストＬ３の各トークンＴｊについて、Ｌ１におけるそのトークンの出現位置、及び近傍トークンから、署名を生成３５５する。このプロセスは、下記のように表現することができる：
各ｋ∈｛Ｐ（ｊ，１），Ｐ（ｊ，２），・・・，Ｐ（ｊ，Ｓｊ｝について、Ｌ１における近傍２ｄ個のトークンを取って、それらを１つに結合し、１つの文字列、すなわちｔｋ−ｄ＋・・・＋ｔｋ−１＋ｔｋ＋ｔｋ＋１＋・・・＋ｔｋ＋ｄを形成する。この文字列をエンコードすることにより、署名Ｆｊ，ｋが得られる。
【００５５】
第３のトークンリストＬ３における各トークンＴｊについて、プロセスは、リスト｛Ｆｊ，１，Ｆｊ，２，・・・，Ｆｊ，Ｓｊ｝をソートし、ソートされたリストから上位Ｎ個の署名を選択３６０する。なお、Ｎは、任意の整数であってよく、システム内で事前定義される場合もあれば、システムへの入力に従って選択される場合もある。次に、第３のトークンリストＬ３の全ての構成要素について、合計で（Ｍ＊Ｎ）個の選択された署名が収集（すなわち、収集）３６５される。次にプロセスは、収集された署名を出力３７０する。
【００５６】
図４は、本発明による署名生成プロセスの第２の実施形態を示している。第２の実施形態は、例えば、プレーンＵＴＦ−８フォーマット（Universal Transformation Format）で書かれた任意の言語のテキストドキュメント、及び我々が有用であると考える、ＵＴＦ−８における文字のリストを入力４０５するプロセスを含む。さらに、他の入力としては、最上位ランキング・スコアを有する文字の数に対応する何らかの数Ｍ、及び各文字についての最大署名数に対応する何らかの数Ｎが挙げられる。他の任意選択的入力としては、例えば３０のような所定の値を有する一定の整数ＣＨＡＲ＿ＮＥＩＧＨＢＯＲが挙げられる。この一定の整数は、署名の生成に使用されることがあるテキスト文字列において、文字の近傍のサイズを定義する。他の入力には、選択率Ｒがある。これは、例えば、０．２０のような０と１の間の所定の範囲である。選択率は、ある集合からある部分集合を選択するときに使用される数である。さらに別の入力には、空の署名リストＳが挙げられる。
【００５７】
プロセスは、ドキュメントを検査し、有用でない文字を除去することによって、ドキュメントを正規化４１０する。有用でない文字の１つは、テキストのコンテキストに貢献しないＵＴＦ−８文字である。こうした文字は、成形のような他の目的に提供される場合がある。例えば、ある文字列が、ｎ個の連続した空白を含む場合、ｎ−１個の空白は、情報を持たないものとみなされる場合がある。情報を持たない文字の他の例には、制御（ＣＴＲＬ）文字、及びリターンが挙げられる。
【００５８】
次にプロセスは、正規化されたドキュメントを検査し４１５、ＵＴＦ−８アルファベットにおける各文字ｃの出現を記録する。出現位置は、Ｐ（１，ｃ），Ｐ（２，ｃ），・・・，Ｐ（ｎ，ｃ）のように表される。プロセスは、下記を使用して、その文字のランキング・スコアを計算（すなわち、生成）する：
Ｓｃｏｒｅ（ｃ）＝Ｓｑｒｔ（ｎ）＊［Ｐ（ｎ，ｃ）−Ｐ（１，ｃ）］／Ｓｑｒｔ（Ｄ）
ただし、Ｄ＝［Ｐ（２，ｃ）−Ｐ（１，ｃ）］２＋［Ｐ（３，ｃ）−Ｐ（２，ｃ）］２＋・・・＋［Ｐ（ｎ，ｃ）−Ｐ（ｎ−１，ｃ）］２である。スコア関数は、テキスト中の文字の重要度をその文字の頻度によって測定する。スコア関数はさらに、ドキュメント全体に均一に分布する文字が、より良いスコアを得ることを確保する。これを達成するための計算は、
［Ｐ（ｎ，ｃ）−Ｐ（１，ｃ）］／Ｓｑｒｔ（Ｄ）
を含む。  
【００５９】
続いてプロセスは、アルファベット文字をスコアによってソート４２０し、その後、上位スコアを有するＭ個の文字を選択する（すなわち、取る）４２５。ここで生成されたリストは、文字リストＬと呼ばれることがある。なお、Ｍは、任意の整数であってよく、前述のように、システム内で事前定義される場合もあれば、システムへの入力に従って選択される場合もある。
【００６０】
文字ｃの各出現時に、プロセスは、文字リストＬにおける各文字ｃについて、その文字ｃの近傍を計算する。具体的には、プロセスは、その左の文字と右の文字を取得し、全てのエンコードバイトを一つに結合することによって、整数ｖを形成する。この近傍値ｖと発生ｐは、対（ｖ，ｐ）を成す。次に、プロセスは、変数ｊに１の値を割り当てる４３０。変数ｊは、リストＬの要素番号である。ｊを使用することにより、Ｌの構成要素を一つづつ処理することができる。例示的な処理として、この構造は、「各々」の概念を実現するために使用され、１づつ増加４３５される。さらに、これは、文字リストＬにおける各文字ｃについての対のリストをＬ１（ｃ）を形成４４０する。リストＬ１（ｃ）のサイズは、Ｎ（ｃ）で表される場合がある。各リストＬ１（ｃ）について、プロセスは、リスト上での各近傍値ｖの反復ｍをカウントし、３連項（ｍ，ｖ，ｐ）を有する第２のリストＬ２（ｃ）を形成４４５する。第２のリストＬ２（ｃ）のサイズもまた、Ｎ（ｃ）で表される場合がある。各リストＬ２（ｃ）は、（ｍ，ｖ）によってソート４５０される。ただし、ｍは、第１比較パラメタであり、ｖは、第２比較パラメタである。
【００６１】
プロセスは、第２のソート済みリストＬ２（ｃ）から上位Ｋ（ｃ）個の３連項を選択（又は、取得）４５５する。ただし、Ｋ（ｃ）＜＝Ｒ＊Ｎ（ｃ）である。その結果、第３のリストＬ３（ｃ）が形成される。第３のリストＬ３（ｃ）の各３連項（ｍ，ｖ，ｐ）について、プロセスは、ハッシュ関数ｈａｓｈ（ｐ）により、そのハッシュ値を計算４６０する。ハッシュ関数ｈａｓｈ（ｐ）は、出現位置ｐを取り囲む近傍文字を用いて、ハッシュ値を生成する。適用可能なハッシュ関数の一例には、従来のラビン−カープ・ハッシュ関数がある。近傍文字の数は、ＣＨＡＲ＿ＮＥＩＧＨＢＯＲによって決められる。プロセスは、第３のリストＬ３（ｃ）をハッシュ値でソートし、ソートされたリストＬ３（ｃ）の最上部から最大Ｎ個の３連項を選択（取得）４７０し、第４のリストＬ４（ｃ）を形成する。なお、Ｎは、任意の整数であってよく、前述のように、システム内で事前定義される場合もあれば、システムへの入力に従って選択される場合もある。Ｌ４（ｃ）上の各３連項（ｍ，ｖ，ｐ）について、プロセスは、出現位置ｐを取り囲む文字を使用して、署名を生成４７５し、それを署名リストＳに追加する。なお、記載したプロセスは、反復的なものであり、したがって、リストＬ上の全ての文字ｃについて反復される。換言すれば、変数ｊ（Ｌの第ｊ番目の文字を示す）は、ｊ＝Ｍになる４８０までインクリメント４３５される。ただし、Ｍは、最上位スコアを有する文字の数である。プロセスの最後に、署名リストＳが出力４８５される。
【００６２】
署名発生器は、クエリを作成するときのキーワードの役割を有利に置き換える独自の構成を有する。署名発生器が有用である理由は、署名発生器によれば、ヒットのサイズを低減することが出来るからである。その結果、照合エンジンの検索精度も向上する。さらに、署名発生器は、言語に依存しない構成にすることができ、したがって、検索に利用可能なドキュメントの範囲も拡張される。
【００６３】
概して署名は、従来のキーワードに比べて有用な形で、検索エンジンにおける一つの特定の役割を果たす。署名は、本明細書に記載したような形で種々のドキュメントから抽出され、キーワードに比べて良好にドキュメントを特徴付け／表現する。したがって、署名は、キーワードに比べてより強くドキュメントに関連する。署名はドキュメントに強く関連するが、キーワードは必ずしもそうでなく、２つの無関係なドキュメントは、同じ一つのキーワードを有することはあっても、署名を共有することはなく、署名は、キーワードに比べて良好な検索精度を実現するという点で、署名は、キーワードとは異なる。
【００６４】
また、本発明によるシステムは、関連度検出のための種々の機会を有する場合がある。関連度検出に関し、各ドキュメントは、アルファベットの文字（ＡＳＣＩＩ、Ｕｎｉｃｏｄｅなど）の文字列とみなすことができる。したがって、２つのドキュメントの関連度は、２つの文字列の類似度に強く関連する。２つの文字列の類似度を定義する種々の従来の方法が存在する。一つの方法は、２つの文字列から最も大きな共通の部分列を得ることである。第２の方法は、２つの文字列の最も大きな共通の部分文字列を抽出することである。ただし、これらの方法はいずれも、それらを使用しても、しばしば不十分であるという制限を有する。最大共通文字列の方法は、それよりも小さな共通の部分文字列を含まないため、不正確である。最大共通部分列の方法は、中身の入れ替えを処理できないので、やはり不正確である。
【００６５】
本発明による第３の方法は、文字列の類似性から開始される。例えば、２つの文字列ｓｔｒ１、及びｓｔｒ２、並びに、第２の文字列ｓｔｒ２の部分文字列のリストＳを考える。このリストは、Ｓにおける全ての構成要素が重複せず、Ｓにおける各構成要素の長さが、最小値Ｍより大きくなければならず、且つ、Ｓの各構成要素がさらにｓｔｒ１の部分文字列でもあるという要件を満たしている。なお、Ｍは、任意の整数であってよく、システム内で事前定義される場合もあれば、システムへの入力にしたがって選択される場合もある。
【００６６】
上記３つの条件を満たす部分文字列の全ての組について、Ｓは、全ての部分文字列長の最大合計を得る。ｓｔｒ１に対するｓｔｒ２の類似性を測定するために、関数ＳＩＭが使用される。この関数は下記のように表される：
ＳＩＭ（ｓｔｒ２，ｓｔｒ１）＝（Ｓ内の全ての部分文字列の長さの合計）／（ｓｔｒ２の長さ）＊１００％
関数ＳＩＭは対称ではなく、したがって、ＳＩＭ（ｓｔｒ１，ｓｔｒ２）≠ＳＩＭ（ｓｔｒ２，ｓｔｒ１）である。例えば、ｓｔｒ１＝「ＡＡＡＡＡＣＣＣＣＣＣＣＣＢＢＢＢＢＢＤＤＤＤＤＤＡＡＡＡＡＡＬＬＬＬＬＬＬ」、及びｓｔｒ２＝「ＣＣＣＣＣＣＣＣＣＺＺＺＺＺＡＡＡＡＡＡＡＢＢＢＢＴＴＴＴＬＬＬ」を考える。必要最小限の部分文字列長は、例えばＭ＝４のように設定される場合がある。そして、ｓｔｒ２の部分文字列Ｓ＝｛「ＡＡＡＡＡＡ」，「ＣＣＣＣＣＣＣＣ」，「ＢＢＢＢ」）が、
ＳＩＭ（ｓｔｒ２，ｓｔｒ１）＝１８／２７＝６７％
のように類似度を計算する対象となる。
【００６７】
上記の例は、各コピーの最小サイズ要件を維持しながら、ｓｔｒ１からｓｔｒ２への部分文字列コピーによって実際に定義される２つの文字列の類似度の一実施形態を示す。テキストドキュメントの場合、ドキュメントの内容には必ずしも貢献しない多数の文字が存在する。例えば、余分な空白や目に見えない文字は、有用な情報を何も持たない。したがって、関数ＳＩＭを適用する前に、そのような無用な文字が、まずドキュメントから除去される。このプロセスは、文字列正規化と呼ばれることがある。例えば「There are       some  useless           characters  in this sentence    !」は「There are some useless characters in this sentence!」のように正規化されることがある。この例では、元の文の中の単語間に不要な（すなわち、役に立たない）空白が存在しているが、正規化後は、単語間に一つの空白しか存在しない。
【００６８】
上記の他に、下記のようにプレーンＡＳＣＩＩフォーマット、又はＵＴＦ−８フォーマットで書かれた２つのテキストドキュメントｄｏｃ１、及びｄｏｃ２が与えられる例を考える。まず、ドキュメントｄｏｃ１は、文字列ｓｔｒ１になるように正規化され、ドキュメントｄｏｃ２は、文字列ｓｔｒ２になるように正規化される。ｄｏｃ１に対するｄｏｃ２の関連度は、ＳＩＭ（ｓｔｒ２，ｓｔｒ１）によって定義され、これは、ＲＬＶＮ（ｄｏｃ２，ｄｏｃ１）のように表現されることもある。この例では、関数ＲＬＶＮが対称ではない。
【００６９】
次に、文字の添え字を考える。ｎ＋１文字からなる文字列Ｘ＝ｘ０ｘ１・・・ｘｎが与えられ、最初のｎ文字は、実際の文字列から構成され、ｘｎ＝＄が、ＡＳＣＩＩテーブルにもＵＴＦ−８テーブルにも定義されていない独自の指標文字であり、ｉ＝０，１，・・・，ｎとして、位置ｉから始まるｘの添え字をＳ（Ｘ，ｉ）で表すものとする。この例では、Ｓ（Ｘ，０）＝Ｘ、及びＳ（Ｘ，ｎ）＝＄であり、文字列Ｘは、ｎ＋１個の添え字（または、添え字文字列）を有している。さらに、添え字文字列はソートされる。文字列Ｘは、ｎ＋１個の添え字文字列を含む。これらは、任意の手段により、辞書編集のようにソートされる場合がある。添え字ソートは、当業者とって既知の従来のアルゴリズム問題である。
【００７０】
関連度検出プロセス
上記の概略を念頭に置き、今度は、図５を参照する。図５は、本発明による関連度検出プロセスの第１の実施形態を示している。プロセスは、初期ドキュメント（例えば、ｄｏｃと呼ばれる）、１以上の追加ドキュメント、及び整数Ｍの入力５０５から開始される。例えば、追加ドキュメントのリストは、照合すべきテキストドキュメントのリストである場合がある。ｍを追加ドキュメントの数とし、Ｍを最小部分文字列一致長に対応する整数とすると、追加ドキュメントは、ｄｏｃ１（又はｄｏｃ＿１）からｄｏｃｍ（又はｄｏｃ＿ｍ）で表される場合がある。なお、Ｍは、任意の整数であってよく、前述のようにシステム内で事前定義される場合もあれば、システムへの入力にしたがって選択される場合もある。
【００７１】
プロセスは、全てのドキュメント、初期ドキュメント、及び追加ドキュメントｄｏｃ１からｄｏｃｎを正規化５１０し、文字列ｓｔｒ１（又は、ｓｔｒ＿１）からｓｔｒｍ（又は、ｓｔｒ＿ｍ）を得る。従来の添え字ソートアルゴリズムの使用により、プロセスは、配列ＩＤＸを使用してｓｔｒの添え字をソート５１５し、添え字文字列位置を記録する。なお、配列ＩＤＸは、従来の添え字ソートアルゴリズムにおいて既知である。プロセスは次に、例えばｋ＝１のように、変数ｋに値を割り当てる（すなわち、入れる）５２０。プロセスはさらに、変数Ｌが文字列ｓｔｒの長さになり、変数Ｌｋがｓｔｒｋの長さになり、変数Ｐ＝０、及びＳＩＭｋ＝０となるように変数に値を割り当てる（入れる）５２５。
【００７２】
プロセスは次に、文字列ｓｔｒとＳ（ｓｔｒｋ，Ｐ）との間の最大一致長を探す５３５。具体的には、プロセスは、変数Ｖ＝ｓｅａｒｃｈＭａｘＭａｔｃｈＬｅｎ（ＩＤＸ，０，Ｌ，ｓｔｒ，Ｌ，Ｓ（ｓｔｒｋ，Ｐ），Ｌｋ−Ｐ）のように割り当てる（すなわち、であるものとする）。ただし、ｓｅａｒｃｈＭａｘＭａｔｃｈＬｅｎ（）は、文字列ｓｔｒとＳ（ｓｔｒｋ，Ｐ）との間の最大一致長を計算するための再帰関数であり、詳しくは下記のように定義される。
【表２】
2010518531.tif 000004
【００７３】
上記は、もう一つの文字列ｓｔｒ２との間で最長の共通接頭部分文字列を共有する（文字列ｓｔｒの）添え字文字列を探すための関数、ｓｅａｒｃｈＭａｘＭａｔｃｈＬｅｎ（）の一例である。この関数は、二分探索法によって実施される。関数ｇｅｔＭａｘＭａｔｃｈＳｉｚｅは、２つの文字列間の最長の共通接頭部を得るための関数である。次に、プロセスは、もしＶ＞＝Ｍであると判断５４０すると、ＳＩＭｋ＝ＳＩＭｋ＋Ｖ／Ｌｋ、Ｐ＝Ｐ＋Ｖのように割り当てる５５０。プロセスは、もしＶ＞＝Ｍを満たしていないと判断した場合、Ｐ＝Ｐ＋１のように変数Ｐをインクリメントする。プロセスは、もしＰ＜Ｌｋであると判断した場合、文字列ｓｔｒとＳ（ｓｔｒｋ，Ｐ）との間の最大一致長の探索５３５に戻る。
【００７４】
プロセスは、もし条件Ｐ＜Ｌｋが満たされていないと判断した場合、次に、ｋ＜ｍであるか否かを判断５６０する。もしｋ＜ｍであれば、プロセスは、ｋ＝ｋ＋１のようにｋをインクリメント５３０し、プロセスは、変数Ｌを文字列ｓｔｒの長さにし、変数Ｌｋをｓｔｒｋの長さにし、変数Ｐ＝０、及びＳＩＭｋ＝０となるように割り当てるステップ５２５へ戻る。プロセスは、もしｋ＜ｍが満たされていないと判断した場合、ＳＩＭ１、・・・ＳＩＭｍの結果を出力５６５する。
【００７５】
有利なことに、この出力は、入力ドキュメントと、リスト上の追加ドキュメントとの間における類似度をパーセンテージで表す。例えば、上で例示したように、記憶された索引ドキュメントデータベースにおいてドキュメントを探すために、閾値パーセンテージｘ％、及び入力ドキュメントが与えられる。プロセスは、有利にも、署名発生器により、入力ドキュメントの署名を生成する。サーチャーは、署名を使用して索引データベースを検索し、入力ドキュメントとの間で少なくとも１つの共通の署名を共有するドキュメントのリスト（ヒット）を返す。関連度検出プロセスは、入力ドキュメントと、リスト上の各ドキュメントとの間の類似度を計算する。出力は、ＳＩＭ１，・・・，ＳＩＭｍとして表される。プロセスは今度は、ＳＩＭｋ＞＝ｘ％を満たすドキュメントを選択する。このロジックについては、照合エンジンアーキテクチャを利用して示される。
【００７６】
次に図６を参照すると、図６は、本発明による関連度検出プロセスの第２の実施形態を示している。プロセスは、ｄｏｃと呼ばれる初期テキストドキュメント、及び該ｄｏｃと照合すべきドキュメントのリスト、並びに整数Ｍの入力６０５から開始される。テキストドキュメントの数をｍとし、Ｍを最小部分文字列一致長として、テキストドキュメントのリストは、ｄｏｃ１，・・・，ｄｏｃｍで表される。なお、Ｍは、任意の整数であってよく、前述のように、システム内で事前定義される場合もあれば、システムへの入力にしたがって選択される場合もある。
【００７７】
プロセスは、ｄｏｃ、ｄｏｃ１、・・・、ｄｏｃｍを正規化６１０し、文字列ｓｔｒ、ｓｔｒ１、・・・、ｓｔｒｍを発生（生成）する。次に、プロセスは、文字列ｓｔｒのサイズよりも大きな素数Ｑを割り当て、文字列ｓｔｒのサイズをＬと呼ぶ６１５。例えば、この実施形態を説明するために、Ｑ＝３＊Ｌ／２であるものと仮定する。プロセスは、連鎖機能を備えたハッシュテーブルに、サイズＱを有するアレイＨを割り当て、ハッシュ値の衝突を解消する。所与の変数ｊ＝０〜Ｌ−Ｍについて、プロセスは、ハッシュ値ｈ＝ＨＴ＿ＦＵＮ（ｓｔｒ，ｊ，Ｍ）を生成６２０し、Ｈ［ｈ］における文字列位置ｊを記憶する。あるいは、プロセスは、それを衝突連鎖リンクリストに記憶する場合がある。ハッシュ関数ＨＴ＿ＦＵＮは、位置ｊから始まり、長さＭを有する文字列ｓｔｒの部分文字列のハッシュ値を計算するための関数である。一実施形態として、従来のラビン−カープ・ハッシュ関数を使用する場合がある。
【００７８】
次に、例えば、ｋ＝１のように、変数ｋに値を割り当てる６２５。さらに、Ｌｋを文字列ｓｔｒｋの長さとし、Ｐ＝０、及びＳＩＭｋ＝０となるように値を割り当てる６３０。プロセスは、ｈ＝ＨＴ＿ＦＵＮ（ｓｔｒｋ，Ｐ，Ｍ）のようにハッシュ値を計算６４０する。プロセスは、ハッシュテーブルエントリＨ［ｈ］を調べ、Ｈ［ｈ］が空であるか否かを判断する。もし、Ｈ［ｈ］が空ではなかった場合、Ｈ［ｈ］における連鎖リンクリストの各文字列位置ｓに対し、プロセスは、変数Ｖ（ｓ）＝ｇｅｔＭａｘＭａｔｃｈＳｉｚｅ（ｓｔｒ＋ｓ，Ｌ−ｓ，ｓｔｒｋ＋Ｐ，Ｌｋ−Ｐ）を割り当て６５０、２つの部分文字列の最大一致長を得る。プロセスは次に、Ｖ＝ｍａｘｉｍｕｍ（Ｖ（ｓ））を割り当てる６５５。変数Ｖは、Ｓ（ｓｔｒｋ，Ｐ）の最大接頭文字列の長さを表し、この接頭文字列は、文字列ｓｔｒの部分文字列でもある。
【００７９】
プロセスは、もしＶ＞＝Ｍであると判断６６０した場合、ＳＩＭｋ＝ＳＩＭｋ＋Ｖ／Ｌｋ、及びＰ＝Ｐ＋Ｖのように値を割り当てる６７０。もし、Ｖ＜Ｍであると判断６６０した場合、プロセスは、Ｐ＝Ｐ＋１のように値を割り当てる６６５。同様に、プロセスは、もしＨ［ｈ］が空であると判断した場合、Ｐ＝Ｐ＋１のように値を割り当てる６６５。プロセスのそれらの後者のいずれにおいても、次のステップは、Ｐ＜Ｌｋ−Ｍであるか否かを判断６７５することである。もしＰ＜Ｌｋ−Ｍであった場合、プロセスは、ｈ＝ＨＴ＿ＦＵＮ（ｓｔｒｋ，Ｐ，Ｍ）のようなハッシュ値の計算６４０に戻る。一方、プロセスは、もしＰがＬｋ−Ｍよりも小さくないと判断した場合、プロセスは次に、ｋ＜ｍであるか否かを判断６８０する。もし、ｋ＜ｍであった場合、プロセスは、ｋ＝ｋ＋１のようにｋをインクリメント６３５し、Ｌｋを文字列ｓｔｒｋの長さとし、Ｐ＝０、及びＳＩＭｋ＝０となるように値を割り当てる６３０。もし、ｋがｍ以上であれば、プロセスは、ＳＩＭ１，・・・，ＳＩＭｍを出力する。上記のように、出力は有利にも、入力ドキュメントと、追加ドキュメントのリストとの間の類似度をパーセンテージで表す。
【００８０】
関連度検出エンジンは、有利にも、ドキュメント関連度をパーセンテージで決定するように構成される。この構成は、ヒットに含まれる無関係なドキュメントをパーセンテージ閾値によって、フィルタリングし、除外できるように構成される。その結果、検索エンジンの有用性が向上し、より高い容認度を有する結果が得られる。
【００８１】
一実施形態において、関連度検出エンジンは、有利にも、ドキュメント・フィルタを提供するように構成される。関連度検出エンジンは、所与のドキュメントと、他のドキュメントのリストとの間の関連度（すなわち、類似度）を、ドキュメント関連度の定義に基いて計算する。関連度は、パーセンテージで与えられる。閾値Ｘ％が与えられた場合、当該エンジンは、リスト上の、Ｘ％より小さい関連度を有するドキュメントを、フィルタリングにより除外する。
【００８２】
一般に、署名生成を利用した開示した照合エンジンは、多数の独自の機能、及び利点を有する。記載したような署名発生器、及び関連度検出エンジンの使用はそれぞれ、独自の機能を追加し、かつシステム構成の中にある。
【００８３】
コンピュータ装置
図７は、本発明の一実施形態による種々の方法ステップを実施するように構成される例示的なコンピュータ装置７００を示す概略図である。代替実施形態では、コンピュータ装置の他の設計が使用される場合もある。上記のように、本発明の種々の実施形態は、ネットワークによって相互接続された複数のコンピュータ装置７００によって実施される場合がある。
【００８４】
図７に示すように、コンピュータ装置７００は、プロセッサ７０２、コンピュータ読取可能なメモリシステム７０４、ストレージ・インタフェース７０８、ネットワーク・インタフェース７１０、及び他のインタフェース７１２を含む。これらのシステム構成要素は、（システムバス、又は他の相互接続システムのような）相互接続ネットワーク７０６の使用により、相互接続される。メモリ７０４は、他の構成要素、及びデータを有する他に、本明細書に開示する種々の方法ステップを実施するためのコンピュータ実行可能命令を含むように構成される場合がある。
【００８５】
ストレージ・インタフェース７０８は、記憶装置７１４をコンピュータ装置７００に接続するために使用される場合がある。ネットワーク・インタフェース７１０は、外部ネットワーク７１６を利用して、他のコンピュータと通信するために使用される場合がある。一部のインタフェースは、例えば表示装置７２０、キーボード７２２、及び他の装置のような種々の装置に接続される場合もある。
【００８６】
むすび
本明細書に記載する機能、及び利点は、本明細書に実施形態として記載されたシステム、及び方法を利用する者に対し、便利な使用を提供する。例えば、本明細書に記載するように、例えば制御信号を送信、及び／又は受信することにより特定の情報へのアクセスを制限するメカニズムが、ユーザに与えられる。さらに、例えばそれらの機能をサポートするために、例えばサーバシステムのような構成要素の全て、又は種々の部分が、ユーザの近くに配置されるか、ユーザに対して遠くに配置されるかに関わらず、これらの利点は得られる。
【００８７】
種々の実施形態を完全に理解してもらうために、本明細書では、多数の具体的詳細を説明している。しかしながら、当業者には分かるように、それらの実施形態は、具体的詳細なしに実施される場合がある。他の例では、実施形態を不明瞭にしないために、既知の処理、構成要素、及び回路については、詳しく説明していない。当然ながら、本明細書に開示する具体的構造、及び機能の詳細は、例示的なものであり、実施形態の範囲を制限しない。
【００８８】
１以上のハードウェア要素を使用して、種々の実施形態を実施することができる。一般に、ハードウェア要素は、特定の処理を実施するように構成された任意のハードウェア構造を意味する。一実施形態として、ハードウェア要素は、例えば、基板上に作成された任意のアナログ、若しくはデジタル電子回路、又は電気回路を含む。作成は、例えば、相補型金属酸化膜半導体（ＣＭＯＳ）技術、バイポーラ技術、及びバイポーラＣＭＯＳ（ＢｉＣＭＯＳ）技術のようなシリコンベースの集積回路（ＩＣ）技術を使用して実施される場合がある。ハードウェア要素の例には、例えば、プロセッサ、マイクロプロセッサ、回路、回路要素（例えば、トランジスタ、レジスタ、キャパシタ、及びインダクタなど）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル・ロジック・デバイス（ＰＬＤ）、デジタル・シグナル・プロセッサ（ＤＳＰ）、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、及びチップセットなどが挙げられる。実施形態が、この例に限定されることはない。
【００８９】
１以上のソフトウェア要素を使用して、種々の実施形態を実施することができる。一般に、ソフトウェア要素は、特定の処理を実施するように構成された任意のソフトウェア構造を意味する。一実施形態として、ソフトウェア要素は、例えば、プロセッサのようなハードウェア要素によって実行されるように構成されたプログラム命令、及び／又はデータを含む。プログラム命令は、所定の構文を成すように構成された単語、値、又は記号を含むコマンドの編成されたリストを含み、それらのコマンドが実行されたときに、プロセッサにより、対応する一連の処理が実施される。
【００９０】
ソフトウェアは、プログラミング言語を使用して書かれ、又はプログラムすることができる。プログラミング言語の例には、Ｃ、Ｃ＋＋、ＢＡＳＩＣ、Ｐｅｒｌ、Ｍａｔｌａｂ、Ｐａｓｃａｌ、Ｖｉｓｕａｌ  ＢＡＳＩＣ、ＪＡＶＡ、ＡｃｔｉｖｅＸ、アセンブリ言語、及びマシンコードなどが挙げられる。ソフトウェアは、任意のタイプのコンピュータ読取可能媒体、または機械読み取り可能な媒体に記憶することができる。さらに、ソフトウェアは、ソースコードやオブジェクトコードとして、媒体に記憶される場合がある。また、ソフトウェアは、圧縮データ、及び／又は暗号化データとして媒体に記憶される場合もある。ソフトウェアの例としては、例えば、任意のソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、手順、ソフトウェアインタフェース、アプリケーションプログラムインタフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、記号、及びそれらの任意の組み合わせが挙げられる。実施形態が、この例に限定されることはない。
【００９１】
一部の実施形態は、「結合された」、及び「接続された」といった表現を、それらの派生語とともに使用して説明される場合がある。これらの用語が、互いに類義語として使用されることを意図していると考えてはならない。例えば、一部の実施形態は、「２以上の要素が互いに直接物理的に、又は電気的に接触している状態を示すために、「接続された」という用語を使用する場合がある。他の例として、一部の実施形態は、２以上の要素が互いに直接物理的に、又は電気的に接触している状態を示すために、「結合された」という用語を使用する場合がある。しかしながら、「結合された」という用語は、２以上の要素が直接的に接触してはいないが、それでも依然として、互いに協働し、又は交信している状態を指す場合もある。
【００９２】
一部の実施形態は、例えば、任意のコンピュータ読取可能媒体、機械読取可能媒体、又はソフトウェアを機能を備えた物品を使用して実施される場合がある。媒体、又は物品としては、例えば、任意の適当なタイプのメモリユニット、メモリ装置、メモリ物品、記憶媒体、記憶装置、記憶物品、記憶媒体、及び／又は、メモリを参照して説明され例のいずれかのような記憶ユニットが挙げられる。媒体、又は物品としては、例えば、メモリ、着脱可能な、または着脱不可能な媒体、消去可能な、または消去不可能な媒体、書き換え可能な、または書き換え不可能な媒体、デジタル、またはアナログの媒体、ハードディスク、フロッピー(R)ディスク、コンパクトディスク・リード・オンリー・メモリ（ＣＤＲＯＭ）、コンパクトディスク・ディスク・レコーダブル（ＣＤ−Ｒ）、コンパクト・ディスク・リライタブル（ＣＤ−ＲＷ）、光ディスク、磁気媒体、磁気光媒体、リムーバブルメモリカード、またはディスク、種々のタイプのデジタル多用途ディスク（ＤＶＤ）、契約者識別モジュール、テープ、及びカセットなどが挙げられる。命令には例えば、ソースコード、オブジェクトコード、コンパイル済みコード、インタープリテッド・コード、実行可能コード、スタティックコード、及びダイナミックコードなどのような任意の適当なタイプのコードが含まれる。命令は、例えば、Ｃ、Ｃ＋＋、Ｊａｖａ、ＢＡＳＩＣ、Ｐｅｒｌ、Ｍａｔｌａｂ、Ｐａｓｃａｌ、Ｖｉｓｕａｌ  Ｂａｓｉｃ、ＪＡＶＡ、ＡｃｔｉｖｅＸ、アセンブリ言語、及びマシンコードなどのような、任意の適当な上位の、下位の、オブジェクト指向の、視覚的な、コンパイル済みの、及び／又は、翻訳済みのプログラミング言語を使用して実施される場合がある。実施形態が、この例に限定されることはない。
【００９３】
特に断りがない限り、「処理する」、「計算する」、「計算する」、「判断する」等の用語は、コンピューティングシステムのレジスタ、及び／又はメモリ内に物理量（例えば、電気）として表現されたデータを操作し、及び／又は変換し、コンピューティングシステムのメモリ、レジスタ、または、情報記憶装置、情報伝送装置、若しくは表示装置のような他のものの中に物理量として表現される他のデータ類似度に変換する、コンピュータ、またはコンピュータシステム、あるいは、類似の電子計算装置の動作、及び／又はプロセスを意味する。実施形態が、この例に限定されることはない。
【００９４】
本明細書において、「１つの実施形態」、「一実施形態」とは、その実施形態に関係して説明された特定の要素、機能、構造、又は特性が、少なくとも１つの実施形態に含まれることを意味する。明細書中の種々の箇所に登場する「一実施形態において」という語句は、必ずしも全て同じ実施形態を指しているのではない。
【００９５】
本明細書において、「からなる」、「含む」、「含んでいる」、「含む」、「含んでいる」、「有する」、「有している」、又はそれらの任意の他の変形は、排他的でない包含を意味する場合もある。例えば、リストの要素を含むプロセス、方法、物品、又は装置は、必ずしもそれらの要素だけに制限されるのではなく、他にも、リストに明確に現れない要素や、そうしたプロセス、方法、物品、又は装置に本来備わっている要素を含む場合がある。また、それとは逆に、特に断り書きがない限り、「又は」は、排他的論理和を意味するのではなく、両立的な包含を意味する。例えば、次のいずれか一つにより、条件Ａ、又は条件Ｂが満たされる：Ａが真であり（又は、存在し）、Ｂが偽である（又は、不在である）；  Ａが偽であり（又は、不在であり）、Ｂが真である（又は、存在する）；  Ｂが真であり（又は、存在し）、ＡとＢの両方が真である（又は、存在する）。
【００９６】
さらに、「ａ」、または「ａｎ」の使用が、本発明の実施形態の要素、及び構成要素を説明するために採用される。これは単に、本発明の実施形態の一般的意味を与えるために、便宜上なされた。この記載は、１つ、又は少なくとも１つを含むものとして解釈すべきであり、特に別の意味であることが明らかである場合を除き、単数形は、複数形も含む。
【００９７】
本明細書の開示を読めば、本明細書に開示した原理を利用した署名生成、及び関連度検出を含む場合がある、関連ドキュメントを問い合わせるための照合エンジンのためのシステム、及びプロセスのさらに別の代替構造、及び機能設計は、当業者にとって明らかであろう。したがって、特定の幾つかの実施形態を図示説明したば、本発明が、本明細書に開示した構成、及び構成要素に厳密に制限されることはなく、当業者にとって明らかな種々の修正、変更、及び変形実施形態も、添付の特許請求の範囲に規定される発明の思想、及び範囲を外れることなく、本明細書に開示する本発明の方法、及び装置の構成、処理、及び詳細を成すように作成することができる。
【図１】
2010518531.tif 000005
【図２Ａ】
2010518531.tif 000006
【図２Ｂ】
2010518531.tif 000007
【図２Ｃ】
2010518531.tif 000008
【図３】
2010518531.tif 000009
【図４】
2010518531.tif 000010
【図５】
2010518531.tif 000011
【図６】
2010518531.tif 000012
【図７】
2010518531.tif 000013
2010518531.tif 000014
2010518531.tif 000015
2010518531.tif 000016
2010518531.tif 000017
2010518531.tif 000018
2010518531.tif 000019
2010518531.tif 000020
2010518531.tif 000021
2010518531.tif 000022
【国際調査報告】
2010518531.tif 000023