(57)【特許請求の範囲】
【請求項１】
コンピュータの情報処理による方法であって、
検索エンジンを使用して、１つ以上の初期検索タームによって１つ以上の非構造化データ・ソースの第１のセットを検索するステップと、
非構造化データ・ソースの前記第１のセットの前記検索からの、１つ以上の検索ヒットを受け取るステップと、
前記検索ヒットから、１つ以上のタームを取り出すステップと、
前記取り出された１つ以上のタームに対応する１つ以上のエンティティを、前記検索ヒットから抽出するステップと、
前記１つ以上の抽出されたエンティティと、前記対応する１つ以上のタームとを検索パラメータとして使用して、１つ以上の構造化データ・ソースにクエリを行うステップと、
前記クエリからの１つ以上のクエリ結果を受け取るステップと、
前記検索エンジンを使用し、検索タームとして前記クエリ結果のうちの１つ以上によって、１つ以上の非構造化データ・ソースの第２のセットを検索するステップと、
検索ヒットおよび前記抽出されたエンティティを、結果データ・ストアに記録するステップと、
を含む方法。
【請求項２】
前記方法は、
前記１つ以上のクエリ結果を、前記クエリ結果のカーディナリティに基づき分析するステップ
をさらに含み、前記分析は、
前記１つ以上のクエリ結果から選択されたクエリ結果が、非汎用、非一般タームであると特定するステップと、
前記特定に応答して、１つ以上の非構造化データ・ソースの前記第２のセットの前記検索を、前記選択されたクエリ結果を使用して実行するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記選択されたクエリ結果を使用する前記検索の前記実行から生じる前記検索ヒットを、前記結果データ・ストアに記録するステップ
をさらに含む、請求項２に記載の方法。
【請求項４】
前記１つ以上のクエリ結果に関して、エンティティ関係解明分析を実行するステップ
をさらに含む、請求項２に記載の方法。
【請求項５】
前記方法は、
前記エンティティ関係解明分析の結果を、未処理結果データ・ストアに記憶するステップ
をさらに含み、カーディナリティに基づく前記分析は、前記未処理結果データ・ストア内の前記結果それぞれに対して実行される、請求項４に記載の方法。
【請求項６】
前記クエリ結果それぞれを汎用ターム・データ・ストアと比較することによって、前記クエリ結果のうちの１つ以上を汎用タームであると判断するステップと、
汎用タームであると判断された前記クエリ結果それぞれをスキップするステップと、
非汎用タームであると判断された前記クエリ結果を処理するステップであって、前記非汎用タームそれぞれと、一般ターム・データ・ストアとを比較することによって、前記非汎用タームのうちの１つ以上を一般タームであると判断するステップを含む、前記処理するステップと、
一般タームであると判断された前記クエリ結果それぞれをスキップするステップと、
非汎用および非一般タームの両方であると判断された前記クエリ結果それぞれを、前記検索エンジンを利用することによって、前記１つ以上の非構造化データ・ソースを使用して検索するステップと、
をさらに含む、請求項２に記載の方法。
【請求項７】
前記一般タームは、周知の施設に関連する識別データを含む、請求項６に記載の方法。
【請求項８】
１つ以上のプロセッサと、
前記プロセッサのうちの少なくとも１つによってアクセス可能なメモリと、
前記プロセッサのうちの少なくとも１つによってアクセス可能な不揮発性記憶媒体と、
前記メモリに記憶された命令のセットであって、以下のアクション：
検索エンジンを使用して、１つ以上の初期検索タームによって１つ以上の非構造化データ・ソースの第１のセットを検索すること、
非構造化データ・ソースの前記第１のセットの前記検索からの、１つ以上の検索ヒットを受け取ること、
前記検索ヒットから、１つ以上のタームを取り出すこと、
前記取り出された１つ以上のタームに対応する１つ以上のエンティティを、前記検索ヒットから抽出すること、
前記１つ以上の抽出されたエンティティと、前記対応する１つ以上のタームとを検索パラメータとして使用して、１つ以上の構造化データ・ソースにクエリを行うこと、
前記クエリからの１つ以上のクエリ結果を受け取ること、
前記検索エンジンを使用し、検索タームとして前記クエリ結果のうちの１つ以上によって、１つ以上の非構造化データ・ソースの第２のセットを検索すること、および
検索ヒットおよび前記抽出されたエンティティを、結果データ・ストアに記録すること
を実行するために前記プロセッサのうちの少なくとも１つによって実行される、前記命令のセットと、
を含む情報処理システム。
【請求項９】
前記アクションは、
前記１つ以上のクエリ結果を、前記クエリ結果のカーディナリティに基づき分析すること
をさらに含み、前記分析は、
前記１つ以上のクエリ結果から選択されたクエリ結果が、非汎用、非一般タームであると特定すること、および
前記特定に応答して、１つ以上の非構造化データ・ソースの前記第２のセットの前記検索を、前記選択されたクエリ結果を使用して実行すること
をさらに含む、請求項８に記載の情報処理システム。
【請求項１０】
前記アクションは、
前記選択されたクエリ結果を使用する前記検索の前記実行から生じる前記検索ヒットを、前記結果データ・ストアに記録すること
をさらに含む、請求項９に記載の情報処理システム。
【請求項１１】
前記アクションは、
前記１つ以上のクエリ結果に関して、エンティティ関係解明分析を実行すること
をさらに含む、請求項９に記載の情報処理システム。
【請求項１２】
前記アクションは、
前記エンティティ関係解明分析の結果を、未処理結果データ・ストアに記憶すること
をさらに含み、カーディナリティに基づく前記分析は、前記未処理結果データ・ストア内の前記結果それぞれに対して実行される、請求項１１に記載の情報処理システム。
【請求項１３】
前記アクションは、
前記クエリ結果それぞれを汎用ターム・データ・ストアと比較することによって、前記クエリ結果のうちの１つ以上を汎用タームであると判断すること、
汎用タームであると判断された前記クエリ結果それぞれをスキップすること、
非汎用タームであると判断された前記クエリ結果の処理であって、前記非汎用タームそれぞれと、一般ターム・データ・ストアとを比較することによって、前記非汎用タームのうちの１つ以上を一般タームであると判断することを含む、前記処理を行うこと、
一般タームであると判断された前記クエリ結果それぞれをスキップすること、および
非汎用および非一般タームの両方であると判断された前記クエリ結果それぞれを、前記検索エンジンを利用することによって、前記１つ以上の非構造化データ・ソースを使用して検索すること
をさらに含む、請求項９に記載の情報処理システム。
【請求項１４】
機能的記述情報を含み、コンピュータ可読媒体に記憶されたコンピュータ・プログラムであって、前記機能的記述情報は、情報処理システムによって実行されると、前記情報処理システムに、
検索エンジンを使用して、１つ以上の初期検索タームによって１つ以上の非構造化データ・ソースの第１のセットを検索すること、
非構造化データ・ソースの前記第１のセットの前記検索からの、１つ以上の検索ヒットを受け取ること、
前記検索ヒットから、１つ以上のタームを取り出すこと、
前記取り出された１つ以上のタームに対応する１つ以上のエンティティを、前記検索ヒットから抽出すること、
前記１つ以上の抽出されたエンティティと、前記対応する１つ以上のタームとを検索パラメータとして使用して、１つ以上の構造化データ・ソースにクエリを行うこと、
前記クエリからの１つ以上のクエリ結果を受け取ること、
前記検索エンジンを使用し、検索タームとして前記クエリ結果のうちの１つ以上によって、１つ以上の非構造化データ・ソースの第２のセットを検索すること、および
検索ヒットおよび前記抽出されたエンティティを、結果データ・ストアに記録すること
を含むアクションを実行させる、コンピュータ・プログラム。
【請求項１５】
前記アクションは、
前記１つ以上のクエリ結果を、前記クエリ結果のカーディナリティに基づき分析すること
をさらに含み、前記分析は、
前記１つ以上のクエリ結果から選択されたクエリ結果が、非汎用、非一般タームであると特定すること、および
前記特定に応答して、１つ以上の非構造化データ・ソースの前記第２のセットの前記検索を、前記選択されたクエリ結果を使用して実行すること
をさらに含む、請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
前記アクションは、
前記選択されたクエリ結果を使用する前記検索の前記実行から生じる前記検索ヒットを、前記結果データ・ストアに記録すること
をさらに含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記アクションは、
前記１つ以上のクエリ結果に関して、エンティティ関係解明分析を実行すること
をさらに含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記アクションは、
前記エンティティ関係解明分析の結果を、未処理結果データ・ストアに記憶すること
をさらに含み、カーディナリティに基づく前記分析は、前記未処理結果データ・ストア内の前記結果それぞれに対して実行される、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記アクションは、
前記クエリ結果それぞれを汎用ターム・データ・ストアと比較することによって、前記クエリ結果のうちの１つ以上を汎用タームであると判断すること、
汎用タームであると判断された前記クエリ結果それぞれをスキップすること、
非汎用タームであると判断された前記クエリ結果の処理であって、前記非汎用タームそれぞれと、一般ターム・データ・ストアとを比較することによって、前記非汎用タームのうちの１つ以上を一般タームであると判断することを含む、前記処理を行うこと、
一般タームであると判断された前記クエリ結果それぞれをスキップすること、および
非汎用および非一般タームの両方であると判断された前記クエリ結果それぞれを、前記検索エンジンを利用することによって、前記１つ以上の非構造化データ・ソースを使用して検索すること
をさらに含む、請求項１５に記載のコンピュータ・プログラム。
【請求項２０】
前記一般タームは、周知の施設に関連する識別データを含む、請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化および非構造化データ・ソースの両方を、ソース間の共通点を発見し、当該の共通点を循環（ｒｅｃｕｒｓｉｖｅｌｙ）利用する形で検索する手法に関する。
【背景技術】
【０００２】
政府機関、企業、およびその他の民間組織などの情報ユーザは、通常、非構造化および構造化データ・ソースの両方を管理する。こうしたソースの一部は、組織内に保持されることもあり、その一方で他のソースは、外部エンティティによって保持され、したがって制御されることもある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
構造化および非構造化ソースには、相乗効果も、リンクも、自動通知も互いの間にほとんどまたは全くないことが多い。従来、こうした異なるタイプのソース間でのデータ・マイニングは不十分である。１つの手法は、構造化ソースにインデックスを付けることであるが、この手法は、構造化メタデータに基づいて適用可能な論理を無視する。第２の手法は、非構造化データから構造化データを抽出することである。しかし、自動抽出技術は長年にわたり研究されているが、得られるのは質に問題のある構造化データである。
【課題を解決するための手段】
【０００４】
初期検索タームを使用して、検索エンジンを用い非構造化データ・ソースを検索する手法が提供される。検索エンジンから受け取られた検索ヒットが収集され、検索タームの候補が、検索ヒットから取り出される。抽出されたタームに対応するエンティティが検索ヒットから抽出される。抽出されたエンティティおよび抽出されたタームが、リレーショナル・データベースのテーブルなどの構造化データ・ソースにクエリを行うために使用される。次に、構造化データ・ソースに対して実行されたクエリからのクエリ結果が受け取られる。このクエリ結果が、非構造化データ・ソースをさらに検索するために使用され、再び、検索ヒットを受け取り、そこからタームおよびエンティティが抽出される。検索ヒットおよび抽出されたエンティティが、分析用に結果データ・ストア（ｄａｔａ  ｓｔｏｒｅ）に記憶される。
【０００５】
前述の事項は概要であり、したがって、細部の単純化、一般化および省略を当然含む。このため、当業者には当然のことであるが、この概要は例示にすぎず、決して限定することを目的としてはいない。特許請求の範囲によってのみ定義される本発明の他の側面、発明の特徴および利点は、以下に記載する非限定的な、詳細な説明において明らかとなる。
【図面の簡単な説明】
【０００６】
【図１】本願明細書に記載される方法を実装することができるデータ処理システムのブロック図である。
【図２】図１に示された情報処理システム環境の拡張を提供し、本願明細書に記載される方法が、ネットワーク環境で動作する多種多様な情報処理システム上で実行可能であることを示す。
【図３】非構造化データ・ソースと、構造化データ・ソースとの間の、データの取り出しのための対話図（ｄｉａｇｒａｍ  ｉｎｔｅｒａｃｔｉｏｎ）である。
【図４】構造化ソースにおけるエンティティ関係（ｅｎｔｉｔｙ  ｒｅｌａｔｉｏｎｓｈｉｐ）、および非構造化データ・ソースからエンティティを抽出するエンティティ・エクストラクタ（ｅｎｔｉｔｙ  ｅｘｔｒａｃｔｏｒ）との対話を実行する、エンティティ・リゾルバ（ｅｎｔｉｔｙ  ｒｅｓｏｌｖｅｒ）によって実行されるステップを示すフローチャートである。
【図５】エンティティ・リゾルバによる、カーディナリティ（ｃａｒｄｉｎａｌｉｔｙ）について構造化結果を分析するステップを示すフローチャートである。
【発明を実施するための形態】
【０００７】
添付の図面を参照することによって、本発明がよりよく理解され、本発明の多数の目的、特徴および利点が当業者に明らかとなる。
【０００８】
以下の記載および図面では、特定の具体的な詳細事項を記載し、本発明の様々な実施形態の完全な理解を提供する。なお、本発明の様々な実施形態を不必要に曖昧にしないよう、コンピューティングおよびソフトウェアの技術に関連することの多い特定の周知の詳細事項は以下の開示には記載されない。さらに、当業者には当然のことであるが、以下に記載される詳細事項の１つ以上を用いずに本発明の他の実施形態を実践することができる。最後に、以下の開示では、ステップおよびシーケンスを参照して様々な方法が記載されるが、そのような記載は、本発明の実施形態の明確な実装を提供するものであり、ステップおよびステップのシーケンスは、本発明の実践に必須と受け取られてはならない。それどころか、下記の事項は、本発明の例の詳細な記載を提供することを目的としており、本発明自体を限定するものと受け取られてはならない。むしろ、様々な変形物が、本記載に続く特許請求の範囲により定義される本発明の範囲内に入ると考えられる。
【０００９】
以下の詳細な説明は、全般的に上記の本発明の概要に従い、必要に応じて、本発明の様々な側面および実施形態の定義をさらに説明し、拡大する。この目的を達成するために、この詳細な説明は、まず、本発明に関連するソフトウェア技術またはハードウェア技術、あるいはその両方の技術を実装するのに適した、図１のコンピューティング環境について記載する。現代のコンピューティング技術が、複数の別々のデバイスにまたがって実行可能であることを強調するために、図２には、基本的なコンピューティング環境の拡張として、ネットワーク化環境が示されている。
【００１０】
図１は、情報処理システム１００を示し、これは、本願明細書に記載されるコンピューティング動作を実行することができるコンピュータ・システムの単純化した例である。情報処理システム１００は、プロセッサ・インターフェース・バス１１２に結合された１つ以上のプロセッサ１１０を含む。プロセッサ・インターフェース・バス１１２は、プロセッサ１１０を、メモリ・コントローラ・ハブ（ＭＣＨ：Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ）としても知られるノースブリッジ１１５に接続する。ノースブリッジ１１５は、システム・メモリ１２０に接続し、プロセッサ（単数または複数）１１０がシステム・メモリにアクセスする手段を提供する。グラフィックス・コントローラ１２５もノースブリッジ１１５に接続している。一実施形態では、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ：周辺コンポーネント・インターコネクト）  Ｅｘｐｒｅｓｓ（Ｒ）バス１１８が、ノースブリッジ１１５をグラフィックス・コントローラ１２５に接続する。グラフィックス・コントローラ１２５は、コンピュータ・モニタなどのディスプレイ・デバイス１３０に接続する。
【００１１】
ノースブリッジ１１５およびサウスブリッジ１３５は、バス１１９を使用して相互接続する。一実施形態では、バスは、ノースブリッジ１１５とサウスブリッジ１３５との間で各方向にデータを高速転送するダイレクト・メディア・インターフェース（ＤＭＩ：Ｄｉｒｅｃｔ  Ｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）バスである。別の実施形態では、周辺コンポーネント・インターコネクト（ＰＣＩ）バスが、ノースブリッジと、サウスブリッジとを接続する。Ｉ／Ｏコントローラ・ハブ（ＩＣＨ：Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｈｕｂ）としても知られるサウスブリッジ１３５は、一般に、ノースブリッジによって提供される能力よりも低速で動作する能力を実装するチップである。サウスブリッジ１３５は通常、様々なコンポーネントの接続に使用される様々なバスを提供する。このバスには、例えば、ＰＣＩおよびＰＣＩ  Ｅｘｐｒｅｓｓバス、ＩＳＡバス、システム管理バス（ＳＭＢｕｓまたはＳＭＢ（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｂｕｓ））、またはロー・ピン・カウント（ＬＰＣ：Ｌｏｗ  Ｐｉｎ  Ｃｏｕｎｔ）バス、あるいはそのいずれかの組み合わせが含まれる。ＬＰＣバスは、ブートＲＯＭ１９６および「レガシー」Ｉ／Ｏデバイス（「スーパーＩ／Ｏ」チップを使用する）などの低帯域幅デバイスを接続することが多い。「レガシー」Ｉ／Ｏデバイス（１９８）には、例えば、シリアルおよびパラレル・ポート、キーボード、マウス、またはフレキシブル・ディスク・コントローラ、あるいはそのいずれかの組み合わせが含まれ得る。ＬＰＣバスは、さらに、サウスブリッジ１３５をトラステッド・プラットフォーム・モジュール（ＴＰＭ：Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）１９５に接続する。サウスブリッジ１３５に含まれることの多いその他のコンポーネントには、ダイレクト・メモリ・アクセス（ＤＭＡ：Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ、プログラマブル・インタラプト・コントローラ（ＰＩＣ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）、および、サウスブリッジ１３５をハード・ディスク・ドライブなどの不揮発性記憶デバイス１８５にバス１８４を使用して接続する記憶デバイス・コントローラがある。
【００１２】
ＥｘｐｒｅｓｓＣａｒｄ１５５は、ホットプラグ可能なデバイスを情報処理システムに接続するスロットである。ＥｘｐｒｅｓｓＣａｒｄ１５５は、ユニバーサル・シリアル・バス（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＰＣＩ  Ｅｘｐｒｅｓｓバスの両方を使用してサウスブリッジ１３５に接続するため、ＰＣＩ  ＥｘｐｒｅｓｓおよびＵＳＢ両方の接続性をサポートする。サウスブリッジ１３５は、ＵＳＢに接続するデバイスにＵＳＢ接続性を提供するＵＳＢコントローラ１４０を含む。こうしたデバイスには、ウェブカメラ（カメラ）１５０、赤外線（ＩＲ：ｉｎｆｒａｒｅｄ）受信機１４８、キーボードおよびトラックパッド１４４、およびワイヤレス・パーソナル・エリア・ネットワーク（ＰＡＮ：ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋｓ）を提供するＢｌｕｅｔｏｏｔｈ（Ｒ）デバイス１４６が含まれる。ＵＳＢコントローラ１４０はそのほか、マウス、リムーバブル不揮発性記憶デバイス１４５、モデム、ネットワーク・カード、ＩＳＤＮコネクタ、ファックス、プリンタ、ＵＳＢハブ、およびその他多数のタイプのＵＳＢ接続デバイスなど、多岐にわたるＵＳＢ接続デバイス１４２にもＵＳＢ接続性を提供する。リムーバブル不揮発性記憶デバイス１４５は、ＵＳＢ接続デバイスとして示されているが、例えばＦｉｒｅｗｉｒｅ（Ｒ）インターフェースなどの別のインターフェースを使用して接続されてもよいであろう。
【００１３】
ワイヤレス・ローカル・エリア・ネットワーク（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）デバイス１７５は、ＰＣＩまたはＰＣＩ  Ｅｘｐｒｅｓｓバス１７２を介してサウスブリッジ１３５に接続する。ＬＡＮデバイス１７５は、典型的には、情報処理システム１００と、別のコンピュータ・システムまたはデバイスとの間でのワイヤレス通信に、すべてが同じプロトコルを使用する無線変調技術のＩＥＥＥ８０２．１１標準のうちの１つを実装する。光学記憶デバイス１９０は、シリアルＡＴＡ（ＳＡＴＡ：Ｓｅｒｉａｌ  ＡＴＡ）バス１８８を使用してサウスブリッジ１３５に接続する。シリアルＡＴＡアダプタおよびデバイスは、高速シリアル・リンク上で通信する。シリアルＡＴＡバスはさらに、サウスブリッジ１３５を、ハード・ディスク・ドライブなどの他の形態の記憶デバイスに接続する。サウンド・カードなどの音声回路１６０は、バス１５８を介してサウスブリッジ１３５に接続する。音声回路１６０はさらに、音声ライン入力および光デジタル音声入力ポート１６２、光デジタル出力およびヘッドホン・ジャック１６４、内蔵スピーカ１６６、ならびに内蔵マイク１６８などの機能性を提供する。イーサネット（Ｒ）コントローラ１７０は、ＰＣＩまたはＰＣＩ  Ｅｘｐｒｅｓｓバスなどのバスを使用してサウスブリッジ１３５に接続する。イーサネット・コントローラ１７０は、情報処理システム１００を、ローカル・エリア・ネットワーク（ＬＡＮ）、インターネット、およびその他のパブリックおよびプライベート・コンピュータ・ネットワークなどのコンピュータ・ネットワークに接続する。
【００１４】
図１は１つの情報処理システムを示すが、情報処理システムは多数の形態をとり得る。例えば、情報処理システムは、デスクトップ、サーバ、携帯用、ラップトップ、ノート型、移動インターネット・デバイス、またはその他のフォーム・ファクタのコンピュータもしくはデータ処理システムの形態をとり得る。さらに情報処理システムは、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、ゲーム・デバイス、ＡＴＭ機、携帯用電話デバイス、通信デバイス、またはプロセッサとメモリとを含んだその他のデバイスなど、他のフォーム・ファクタをとることもできる。
【００１５】
図２は、本願明細書に記載される方法が、ネットワーク化環境で動作する幅広い種類の情報処理システム上で実行可能であることを示すために、図１に示されている情報処理システム環境の拡張を提供する。情報処理システムのタイプは、ハンドヘルド・コンピュータ／移動電話２１０などの小型のハンドヘルド・デバイスから、メインフレーム・コンピュータ２７０などの大型メインフレーム・システムまで多岐にわたる。ハンドヘルド・コンピュータ／移動電話２１０の例には、携帯情報端末（ＰＤＡ）、ＭＰ３プレーヤ、携帯用テレビ、およびコンパクト・ディスク・プレーヤなどの個人用娯楽デバイスがある。情報処理システムの他の例には、ペン、すなわちタブレット・コンピュータ２２０、ラップトップ、すなわちノート型コンピュータ２３０、ワークステーション２４０、パーソナル・コンピュータ・システム２５０、およびサーバ２６０がある。図２に個別に示されていない他のタイプの情報処理システムは、情報処理システム２８０によって表されている。図のように、コンピュータ・ネットワーク２００を使用して、様々な情報処理システムをともにネットワーク化することが可能である。様々な情報処理システムを相互接続するために使用できるコンピュータ・ネットワークのタイプには、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイヤレス・ローカル・エリア・ネットワーク（ＷＬＡＮ：Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、公衆交換電話網（ＰＳＴＮ：Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋ）、その他のワイヤレス・ネットワーク、および情報処理システムを相互接続するために使用可能なその他任意のネットワーク・トポロジが含まれる。情報処理システムの多くは、ハード・ドライブまたは不揮発性メモリ、あるいはその両方などの不揮発性データ・ストアを含む。図２に示されている情報処理システムの一部は、別々の不揮発性データ・ストアを示す（サーバ２６０は不揮発性データ・ストア２６５を利用し、メインフレーム・コンピュータ２７０は不揮発性データ・ストア２７５を利用し、さらに情報処理システム２８０は不揮発性データ・ストア２８５を利用する）。不揮発性データ・ストアは、様々な情報処理システムに外付けされるコンポーネントとされても、情報処理システムのうちの１つに内蔵されてもよい。さらに、リムーバブル不揮発性記憶デバイス１４５を情報処理システムのＵＳＢポートまたはその他のコネクタに接続するなど、様々な技術を使用して、リムーバブル不揮発性記憶デバイス１４５を２つ以上の情報処理システム間で共有することが可能である。
【００１６】
図３は、データを取り出すための、非構造化データ・ソースと構造化データ・ソースとの間の対話図である。非構造化データ・ソース３２５は、プライベート・データソース、ならびにインターネットで利用可能なデータ・ソースなどの公に利用可能なデータ・ソースの両方を含む。公に利用可能な検索エンジンなどの検索エンジン３２０が、非構造化データ・ソースの検索に使用される。非構造化データ・ソースに検索タームとして初期タームが提供される。例えば、法執行の実装では、初期タームは、容疑者の名前、生年月日、車両のプレート情報、社会保障番号および逮捕時に収集された他のデータなど、逮捕中に収集されたデータとしてもよいであろう。
【００１７】
非構造化データ・ソースの検索から生じる検索結果（「ヒット」）からデータを抽出するために、エンティティ・エクストラクタ３４０が使用される。エンティティ・エクストラクタは、非構造化データ・セット内のデータ「タイプ」を特定する市販製品である。例えば、エンティティ・エクストラクタは、非構造化検索結果内の１つのデータ（「ターム」）が、数字の桁数および形式に基づきクレジット・カード番号である可能性があると、特定することもあるであろう。別のタームは「企業名」のように見えることもあるであろうし、その一方で、非構造化データ内の別のタームは住所、電話番号、またはそのほか様々なデータ・タイプのように見えることもあるであろう。
【００１８】
エンティティ・エクストラクタの結果はデータ・タイプであり、これがエンティティ・リゾルバ３１０に渡される。エンティティ・リゾルバは、このデータ・タイプがどの構造化データ・ソース（例えばデータベース・テーブル）に対応し得るかを判断し、適切なクエリを当該の構造化データ・ソースに対して実行する。例えば、エンティティ・エクストラクタが電話番号などのタームを特定すると、エンティティ・リゾルバは、電話番号フィールドを有する構造化データ・ソースを特定し、非構造化データ・ソースから抽出された電話番号を求めてこのフィールドが検索される（例えば、「ｓｅｌｅｃｔ＊ｆｒｏｍ［ｔａｂｌｅ＿ｎａｍｅ］ｗｈｅｒｅ  ｐｈｏｎｅｎｕｍ＝［ｐｈｏｎｅ＿ｎｕｍ］」などで、ｔａｂｌｅ＿ｎａｍｅは特定された構造化データベース・テーブルの名前であり、ｐｈｏｎｅｎｕｍはテーブル内のフィールドであり、ｐｈｏｎｅ＿ｎｕｍは非構造化データ・ソースから抽出された実際の電話番号（例えば２０２−５５５−１２３４）である）。
【００１９】
エンティティ・リゾルバ３１０は、「カーディナル（ｃａｒｄｉｎａｌ）」データ項目も特定する。これは、非汎用（ｎｏｎ−ｃｏｍｍｏｎ）かつ非一般（ｎｏｎ−ｇｅｎｅｒｉｃ）のデータ項目である。このカーディナル・データ項目およびそのそれぞれのエンティティ・タイプが、結果データ・ストア３５０に記憶されるものである。図のように、結果データ・ストア３５０に記憶されるデータは、特定されたカーディナル・データ、非構造化データ・ソースからの関係した「ヒット」、およびエンティティ・データ（データ・タイプ、構造化データ・ソースからのデータ）を含む。図のように、プロセスは循環する。エンティティ・リゾルバがカーディナル・データ項目を特定し、この項目（非汎用、非一般ターム）が、検索エンジン３２０によって非構造化データ・ソース３２５の検索に使用される。次に、結果として生じる検索「ヒット」（結果）が、上述のように処理される。循環する反復プロセスであることにより、図３に示されている処理は、何度も繰り返しが可能であり、次々と結果が生成され、それが結果データ・ストア３５０に記憶される。
【００２０】
図４は、エンティティ・リゾルバによって実行されるステップを示すフローチャートであり、エンティティ・リゾルバは、構造化ソースにおけるエンティティ関係、および非構造化データ・ソースからエンティティを抽出するエンティティ・エクストラクタとの対話を実行する。処理は４００で開始し、それからステップ４０５で、検索タームが受け取られる。初期問い合わせの場合、検索タームはバックエンド・プロセス４１０から受け取られるとよいであろう。図３に関係して紹介した例を使用すれば、バックエンド・プロセスは、容疑者が逮捕されて容疑者および疑われる違法行為にについてデータが収集されるときに始められる調書記入プロセスであってもよいであろう。
【００２１】
ステップ４１５で、エンティティ関係解明（ｅｎｔｉｔｙ  ｒｅｌａｔｉｏｎｓｈｉｐ  ｒｅｓｏｌｕｔｉｏｎ）プロセスが、構造化データ・ソース３００にクエリを行うために実行される。エンティティ関係解明プロセスには、構造化データ・ソース内の検索するデータベース・テーブルなどのソース、ならびに使用する検索フィールド、ならびにクエリが行われるタームを特定することが含まれる。例えば、上記の逮捕歴の例を使用すると、テーブルは、以前の逮捕歴テーブルであってもよく、フィールドは、電話番号フィールドであり、プロセスは、同じ電話番号に一致する他の逮捕歴を検索してもよいであろう。他の容疑者も同じ電話番号を使用したことがあれば、この電話番号は、容疑者を互いに関係付ける、または結び付けるのに重要である可能性がある。しかしこの時点では、プロセスは、１つの特定データの重要性も関連性も推測しない。その代わりに、ステップ４１５は、クエリ結果を未処理結果（ｒａｗ  ｒｅｓｕｌｔｓ）データ・ストア４２０に記憶する。次に、未処理結果データ・ストア４２０に記憶された結果は、定義済みプロセス４２５によってカーディナリティの分析を行われる（カーディナリティの分析に関する処理の詳細は、図５および対応する文章を参照のこと）。
【００２２】
カーディナリティの分析に基づき、データが実際のカーディナル・データであるかどうかについて判断が下される（判定４３０）。データがカーディナル・データであれば、判定４３０は「はい」の分岐４３２へ分岐し、それからステップ４３５で、定義済みプロセス４２５中に実行された非構造化検索から生じる検索ヒットが、さらに処理されるようエンティティ・エクストラクタ・プロセス４６０へ送信される。さらに、ステップ４４０で、カーディナル・データ、エンティティ・データ、および関係する検索ヒットが、結果データ・ストア３５０に記憶される。判定４３０に戻り、定義済みプロセス４２５によって実行された分析が、データはカーディナル・データでないと判断すれば、非カーディナル結果が結果データ・ストア３５０に記憶されないように、判定４３０は「いいえ」の分岐４４２へ分岐し、ステップ４３５および４４０を回避（スキップ）する。
【００２３】
未処理結果データ・ストア４２０に、処理するべきさらなる結果があるかどうかについて判断が下される（判定４４５）。処理するべきさらなる結果があれば、判定４４５は、「はい」の分岐４４６へ分岐し、次の結果を上記のようにカーディナリティについて分析してデータを処理するために、ループして定義済みプロセス４２５に戻る。このループは、未処理結果データ・ストア４２０内のすべての結果が処理されるまで継続し、すべてが処理された時点で、判定４４５が「いいえ」の分岐４４８へ分岐する。上記のように、このプロセスは、必要な限り繰り返すことができる反復する循環プロセスである。プロセスの反復を継続するかどうかについて判断が下される（判定４５０）。プロセスを継続することが望ましければ、判定４５０は「はい」の分岐４５２へ分岐し、以下に記載されている、エンティティ・エクストラクタから次の検索タームを受け取るよう、ループして戻る。このループは、反復が望ましくなくなるまで継続し、望ましくなくなった時点で、判定４５０が「いいえ」の分岐４５４へ分岐し、処理が４５５で終了する。
【００２４】
４６０で開始するエンティティ・エクストラクタ・プロセスが示されており、それからステップ４６５で、エンティティ・エクストラクタは、非構造化データ・ソースの検索から生じた検索ヒットを受け取るが、この生じたデータとは、カーディナル・データであると判断されたものである。言い換えれば、図５に記載されるように、汎用タームおよび一般データが、さらなる処理のためにエンティティ・エクストラクタに渡されることはない。その代わりに、非構造化データ・ソースにおいて発見された非一般でもある非汎用タームが、エンティティ・エクストラクタによる処理のために検索「ヒット」として送られる。
【００２５】
ステップ４７０で、エンティティ抽出を実行する市販のツールとしてもよいエンティティ・エクストラクタが、エンティティ（例えば、検索ヒットにおいて発見された１つのデータ（ターム）に関係する可能性があるフィールド名およびその他のメタデータの候補）を抽出する。例えば電話番号、クレジット・カード番号、住所などのエンティティを、検索ヒットから抽出できたかどうかについて判断が下される（判定４７５）。エンティティが検索ヒットから抽出されていれば、判定４７５は「はい」の分岐４７８へ分岐し、それから抽出されたエンティティが、上記のように４００で始まるエンティティ・リゾルバ・プロセスによって処理される。一方、エンティティが抽出されていなければ、判定４７５は、「いいえ」の分岐４８２へ分岐して、ステップ４８０を回避する。ステップ４８５で、エンティティ・エクストラクタは、次のエンティティ抽出リクエストの到着を待ち、到着した時点で、ステップ４８５は次のエンティティ抽出リクエストを処理するためにループしてステップ４６５へ戻る。
【００２６】
図５は、カーディナリティについて構造化結果を分析するための、エンティティ・リゾルバによるステップを示すフローチャートである。処理は、５００で開始し、それからステップ５１０で、未処理結果データ・ストア４２０から結果が取り出される。図４に記載したとおり、未処理結果データ・ストア４２０は、エンティティ・リゾルバが構造化データ・ソースからのデータに関してエンティティ関係解明を実行したときに結果が記憶されるところである。ステップ５２０で、受け取られた結果の中の第１のターム（例えばデータ項目）が選択される。ステップ５２５で、このタームが、データ・ストア５３０にある汎用ワードおよびタームと比較される。
【００２７】
選択されたタームが、汎用タームであるかどうかについて判断が下される（判定５４０）。汎用タームの例は、つづり字教本または従来の辞書にあるワードの大部分であると考えられる。非汎用タームの例は、従来の辞書には通常ない人物名、電話番号、組織名または同様のものであると考えられる。タームが非汎用タームであれば、判定５４０は「いいえ」の分岐５４５へ分岐し、それからステップ５５０で、タームは非汎用ではあるが、一般であるかまたは非一般であるかどうかを特定するために、タームが一般タームと比較される。これは、一般ターム・データ・ストア５５５を確認することによって実行される。一般タームの例は、多くの一般人に知られている企業もしくはその他の組織の電話番号または住所としてもよいであろう。例えば、地元のピザ店の電話番号は一般タームと見なされてもよいであろう。汎用タームおよび一般タームは、どちらかと言えば無意味なヒットを非常に多く返すことになるため、通常、非構造化データの検索には役立たない。タームが一般タームであるかどうかについて判断が下される（判定５６０）。タームが非一般タームであれば、判定５６０は「いいえ」の分岐５６５へ分岐し、それからステップ５７０で、ターム（ここでは非汎用かつ非一般であると分かっている）の検索が、非構造化データ・ソース３２５に対して行われる。非汎用、非一般タームが検索パラメータとして使用され、検索エンジンが、検索タームが発見されたドキュメントまたはウェブ・ページなどの検索結果、すなわち「ヒット」を返す。
【００２８】
判定５４０および５６０に戻る。タームが汎用または一般であると分かれば、判定５４０および５６０はそれぞれ「はい」の分岐５７２および５７５へ分岐し、ステップ５７０を回避する。ブロック５８０に記載されているように、タームが汎用または一般のいずれかであると分かれば、タームはスキップされ、非構造化データ・ソースを使用して検索されることはない。
【００２９】
未処理結果データ・ストアに、処理すべきさらなるタームがあるかどうかについて判断が下される（判定５８５）。処理すべきさらなるタームが未処理結果にあれば、判定５８５は「はい」の分岐５８８へ分岐し、未処理結果データ・ストア内の次のタームの選択および処理に、ループして戻る。このループは、未処理結果データ・ストア内の結果がすべて処理されるまで継続し、それから判定５８５が「いいえ」の分岐５９０へ分岐して、処理は５９５にて呼び出しプロセス（図４参照）に戻る。
【００３０】
上記の処理を用いる法執行の実施形態における実装例では、逮捕歴が作成および処理される。まず、逮捕歴のログが、構造システム（ｓｔｒｕｃｔｕｒａｌ  ｓｙｓｔｅｍ）（バックエンド・システムの例）に取られる。この構造システムには、逮捕およびその他の警察活動に関する構造化データ・ソースが保持されている。この例では、容疑者は「Ｍａｘ  Ｄｏｂｓｏｎ」という名前であり、生年月日６／７／１９８０、所定の社会保障番号、車両プレート番号ＣＴ／２３４ＡＳ８である。様々なタームのカーディナリティ分析に基づき、非構造化検索が実行される。この例では、名前エンティティおよびＤＯＢ（ｄａｔｅ  ｏｆ  ｂｉｒｔｈ：生年月日）／ＳＳＮ（ｓｏｃｉａｌ  ｓｅｃｕｒｉｔｙ  ｎｕｍｂｅｒ：社会保障番号）エンティティの非構造化検索が、ヒットを返さないと仮定する。しかし、車両プレート番号を使用した非構造化データ・ソースの検索は、特定の事件のレポートを取り出す（ドキュメント「ヒット」）。エンティティ・エクストラクタ・プロセスによって実行されるエンティティ抽出が、「１２３  Ｍａｉｎ  Ｓｔｒｅｅｔ，Ｓｔａｔｅｎ  Ｉｓｌａｎｄ，ＮＹ」という住所を抽出する。この抽出された住所をエンティティ・リゾルバ・プロセスに返すことで、エンティティ・リゾルバは、構造化データ・ソースにクエリを行うことができ、この構造化データ・ソースは、この住所が、名前「Ｍａｘｉｍ  Ｄｏｂｒｏｖｓｋｉ」、ＤＯＢ６／７／１９８０、パスポート番号＃２３８２０８（ウクライナ）の、入国国際旅客の目的地として使用されたことを示す査証入国記録を含む。構造化データ・ソースはさらに、この容疑者が、高級盗難車両の取引に関して別の監視リスト（エンティティ・リゾルバ内の別の構造化データ・ソース）に載っていることを示す。最終的なデータ（監視リスト上の人物の本名、他のエンティティ情報、および非構造化データ・ソースの関係する「ヒット」）が、分析用に結果データ・ストアに記憶される。この時点で、警察職員は、逮捕した容疑者に関して、その逮捕自体の間に収集した少数のデータではなく、関係するデータを大幅に多く有する。結果データ・ストアに記憶されるデータのこの豊富さは、構造化および非構造化データ・ソースの両方から循環してデータを抽出するべくエンティティ・リゾルバおよびエンティティ・エクストラクタが協調して動作した結果である。
【００３１】
本発明の実装の１つは、クライアント・アプリケーション、すなわち、例えばコンピュータのランダム・アクセス・メモリに常駐するとよいコード・モジュール内の命令セット（プログラム・コード）、またはその他の機能的記述情報（ｆｕｎｃｔｉｏｎａｌ  ｄｅｓｃｒｉｐｔｉｖｅ  ｍａｔｅｒｉａｌ）である。コンピュータによって要求されるまで、命令セットは、例えばハード・ディスク・ドライブ内などの別のコンピュータ・メモリ、または光ディスク（最終的にＣＤ  ＲＯＭにおいて使用される）もしくはフレキシブル・ディスク（最終的にフレキシブル・ディスク・ドライブにおいて使用される）などのリムーバブル・メモリなどに記憶されていてもよい。したがって、本発明は、コンピュータ用のコンピュータ・プログラム製品として実装されてもよい。さらに、記載された様々な方法は、都合のよいことに、ソフトウェアによって選択的に有効化または再設定される汎用コンピュータによって実装されるが、当該の方法は、ハードウェア、ファームウェア、または要求される方法ステップを実行するよう構築された、より特殊な装置において実行され得ることも、当業者には当然のことである。機能的記述情報は、機能性を機械に与える情報である。機能的記述情報は、次に限定されるものではないが、コンピュータ・プログラム、命令、ルール、ファクト（ｆａｃｔ）、計算可能関数の定義、オブジェクト、データ構造を含む。
【００３２】
本発明の特定の実施形態を示し説明したが、当業者には当然のことながら、本願明細書の教示に基づき、本発明およびそのより広範な側面から逸脱することなく、変更を加えることおよび改変することができる。したがって、添付の特許請求の範囲は、そのような変更および改変すべてを、本発明の真の意図および範囲内にあるものとしてその範囲内に含むものとする。さらに、当然のことながら、本発明は添付の特許請求の範囲のみによって定義される。当業者には当然のことながら、導入される請求項の構成要素の特定数が意図される場合、そのような意図は請求項内で明確に述べられ、そのように述べられていなければそのような限定は存在しない。理解するための支援として非限定的な例を挙げると、以下の添付の特許請求の範囲は、請求項の構成要素を導入するために、前置き表現「少なくとも１つの」および「１つ以上の」の利用を含む。しかし、そのような表現の使用は、不定冠詞「ａ」または「ａｎ」による請求項の構成要素の導入が、当該の導入された請求項の構成要素を含む特定の請求項を、当該構成要素を１つのみ含む発明に制限することを意味すると解釈されるべきではない。これは、同じ請求項が前置き表現「１つ以上の」または「少なくとも１つの」と、「ａ」または「ａｎ」などの不定冠詞とを含む場合であっても同じである。請求項における定冠詞の使用についても同じことが言える。
【符号の説明】
【００３３】
３００  構造化データ・ソース
３１０  エンティティ・リゾルバ
３２０  検索エンジン
３２５  非構造化データ・ソース
３４０  エンティティ・エクストラクタ
３５０  結果データ・ストア
【図１】
0005558997.tif 000002
【図２】
0005558997.tif 000003
【図３】
0005558997.tif 000004
【図４】
0005558997.tif 000005
【図５】
0005558997.tif 000006