(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-28
(54)【発明の名称】情報管理方法、システム、プログラム
(51)【国際特許分類】
G06F 16/383 20190101AFI20231120BHJP
【FI】
G06F16/383
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023524269
(86)(22)【出願日】2021-10-21
(85)【翻訳文提出日】2023-04-19
(86)【国際出願番号】 CN2021125194
(87)【国際公開番号】W WO2022111148
(87)【国際公開日】2022-06-02
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100091568
【氏名又は名称】市位 嘉宏
(72)【発明者】
【氏名】セス、アビシェク
(72)【発明者】
【氏名】ナガンナ、ソーマ シェカール
(72)【発明者】
【氏名】フー、ランディ
(72)【発明者】
【氏名】オニール ジュニア、ジェイムズ アルバート
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175FB02
5B175HB03
5B175KA04
(57)【要約】
情報を管理するシステム、方法、プログラムを提供する。まずデータ・レコードのバケット・ハッシュのセットおよび比較情報が識別される。バケット・ハッシュのセットは比較情報から生成され、バケット・ハッシュのセットおよび比較情報はメタデータ・レコードを形成する。バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードが識別され、いくつかの候補メタデータ・レコードは候補バケット・ハッシュのセットおよび候補比較情報を含む。メタデータ・レコード内の比較情報といくつかの候補メタデータ・レコード内の候補比較情報との比較からデータ・レコードのエンティティ・メンバーシップが識別される。
【特許請求の範囲】
【請求項1】
情報を管理するための方法であって、
コンピュータ・システムによって、データ・レコードのバケット・ハッシュのセットおよび比較情報を識別することであって、前記バケット・ハッシュのセットは前記比較情報から生成され、前記バケット・ハッシュのセットおよび前記比較情報はメタデータ・レコードを形成する、前記識別することと、
前記コンピュータ・システムによって、前記バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードを識別することであって、前記いくつかの候補メタデータ・レコードは候補バケット・ハッシュのセットおよび候補比較情報を含む、前記識別することと、
前記コンピュータ・システムによって、前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との比較から前記データ・レコードのエンティティ・メンバーシップを決定することと、
を含む、方法。
【請求項2】
前記コンピュータ・システムによって、前記バケット・ハッシュのセットおよび前記比較情報を使用して前記データ・レコードのメタデータ・レコードを作成することと、
前記コンピュータ・システムによって、前記データ・レコードに対して決定された前記エンティティ・メンバーシップで前記メタデータ・レコードを更新することと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記コンピュータ・システムによって、前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との前記比較から前記メタデータ・レコードの前記エンティティ・メンバーシップを決定することは、
前記コンピュータ・システムによって、比較を形成するために前記メタデータ・レコード内の前記比較情報を前記いくつかの候補メタデータ・レコード内の前記候補比較情報と比較することと、
前記コンピュータ・システムによって、前記比較から比較スコアのセットを生成することと、
前記コンピュータ・システムによって、前記比較スコアのセットを閾値のセットと比較することに基づいて前記エンティティ・メンバーシップを決定することと、
を含む、請求項1に記載の方法。
【請求項4】
前記コンピュータ・システムによって、要求元から検索要求を受信することと、
前記コンピュータ・システムによって、前記要求元からの前記検索要求で受信された検索項目を使用して検索バケット・ハッシュのセットおよび検索比較情報を作成することと、
前記コンピュータ・システムによって、前記検索バケット・ハッシュのセットを使用して前記メタデータ・データベース内で候補メタデータ・レコードのセットを検索することと、
前記コンピュータ・システムによって、前記候補メタデータ・レコードのセット内の前記候補比較情報が前記検索比較情報にどれほど類似しているかを示す前記候補メタデータ・レコードのセットの比較スコアのセットに基づいて前記候補メタデータ・レコードのセットから候補メタデータ・レコードを選択することと、
前記コンピュータ・システムによって、前記候補メタデータ・レコード内のソース識別子を使用して前記候補メタデータ・レコードに対応する識別されたデータ・レコードを前記要求元に返すことと、
をさらに含む、請求項1に記載の方法。
【請求項5】
単一のデータ・レコードの前記バケット・ハッシュのセット内に複数のバケット・ハッシュを生成することができ、前記複数のバケット・ハッシュのそれぞれは前記データ・レコード内の属性の一部分のみを表す、請求項1に記載の方法。
【請求項6】
前記比較情報は、前記データ・レコード内の情報を表す比較文字列またはテキスト列のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項7】
前記バケット・ハッシュのセットは、名、姓、住所、通りの名前、州、郵便番号、居住都市、電話番号、職業、会社名、生年月日、口座番号、職業、会社の電話番号、会社の住所、または納税者番号のうちの少なくとも1つに基づく、請求項1に記載の方法。
【請求項8】
前記メタデータ・レコードは、エンティティ・メンバーシップ、顧客識別子、レコード・タイプ、確率的自己スコア、またはタイム・スタンプのうちの少なくとも1つをさらに含む、請求項1に記載の方法。
【請求項9】
前記データ・レコードの前記バケット・ハッシュのセットおよび前記比較情報はインデックス作成サービスから受信される、請求項1に記載の方法。
【請求項10】
コンピュータ・システムと、
前記コンピュータ・システムに記憶されたメタデータ・データベースと、
を備え、前記メタデータ・データベース内のメタデータ・レコードはそれぞれ、バケット・ハッシュのセット、比較情報、およびエンティティ・メンバーシップを含み、前記バケット・ハッシュのセットは前記比較情報を使用して生成され、前記エンティティ・メンバーシップは関連するメタデータ・レコードのセットを識別する、情報管理システム。
【請求項11】
前記コンピュータ・システムは、データ・レコードの前記バケット・ハッシュのセットおよび前記比較情報を識別することであって、前記バケット・ハッシュのセットは前記比較情報から生成され、前記バケット・ハッシュのセットおよび前記比較情報はメタデータ・レコードを形成する、前記識別することと、前記バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードを識別することであって、前記いくつかの候補メタデータ・レコードは候補バケット・ハッシュおよび候補比較情報を含む、前記識別することと、前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との比較から前記データ・レコードのエンティティ・メンバーシップを決定することと、を実行する、請求項10に記載の情報管理システム。
【請求項12】
前記コンピュータ・システムは、前記バケット・ハッシュのセットおよび前記比較情報を使用して前記データ・レコードのメタデータ・レコードを作成することと、前記データ・レコードに対して決定された前記エンティティ・メンバーシップで前記メタデータ・レコードを更新することと、を実行する、請求項11に記載の情報管理システム。
【請求項13】
前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との前記比較から前記メタデータ・レコードの前記エンティティ・メンバーシップを決定する際に、前記コンピュータ・システムは、比較を形成するために前記メタデータ・レコード内の前記比較情報を前記いくつかの候補メタデータ・レコード内の前記候補比較情報と比較することと、前記比較から比較スコアのセットを生成することと、前記比較スコアのセットを閾値のセットと比較することに基づいて前記エンティティ・メンバーシップを決定することと、を実行する、請求項11に記載の情報管理システム。
【請求項14】
前記コンピュータ・システムは、要求元から検索要求を受信することと、前記要求元からの前記検索要求で受信された検索項目を使用して検索バケット・ハッシュのセットおよび検索比較情報を作成することと、前記検索バケット・ハッシュのセットを使用して前記メタデータ・データベース内で候補メタデータ・レコードのセットを検索することと、前記候補メタデータ・レコードのセット内の前記候補比較情報が前記検索比較情報にどれほど類似しているかを示す前記候補メタデータ・レコードのセットの比較スコアのセットに基づいて前記候補メタデータ・レコードのセットから候補メタデータ・レコードを選択することと、前記メタデータ・レコード内のソース識別子を使用して前記候補メタデータ・レコードに対応する識別されたデータ・レコードを前記要求元に返すことと、を実行する、請求項10に記載の情報管理システム。
【請求項15】
前記比較情報は、情報を表す比較文字列またはテキスト列のうちの少なくとも1つを含む、請求項10に記載の情報管理システム。
【請求項16】
前記メタデータ・レコードは、エンティティ・メンバーシップ、顧客識別子、レコード・タイプ、確率的自己スコア、またはタイム・スタンプのうちの少なくとも1つをさらに含む、請求項11に記載の情報管理システム。
【請求項17】
情報を管理するためのコンピュータ・プログラム製品であって、
コンピュータ可読記憶媒体と、
前記コンピュータ可読記憶媒体に記憶され、コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、データ・レコードのバケット・ハッシュのセットおよび比較情報を識別することであって、前記バケット・ハッシュのセットは前記比較情報から生成され、前記バケット・ハッシュのセットおよび前記比較情報はメタデータ・レコードを形成する、前記識別することを実行させる第1のプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードを識別することであって、前記いくつかの候補メタデータ・レコードは候補バケット・ハッシュおよび候補比較情報を含む、前記識別することを実行させる第2のプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との比較から前記データ・レコードのエンティティ・メンバーシップを決定することを実行させる第3のプログラム・コードと、
を含む、コンピュータ・プログラム製品。
【請求項18】
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記バケット・ハッシュのセットおよび前記比較情報を使用して前記データ・レコードのメタデータ・レコードを作成することを実行させる第4のプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記データ・レコードに対して決定された前記エンティティ・メンバーシップで前記メタデータ・レコードを更新することを実行させる第5のプログラム・コードと、
をさらに含む、請求項17に記載のコンピュータ・プログラム製品。
【請求項19】
前記第3のプログラム・コードは、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、比較を形成するために前記メタデータ・レコード内の前記比較情報を前記いくつかの候補メタデータ・レコード内の前記候補比較情報と比較することを実行させるプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記比較から比較スコアのセットを生成することを実行させるプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記比較スコアのセットを閾値のセットと比較することに基づいて前記エンティティ・メンバーシップを決定することを実行させるプログラム・コードと、
を含む、請求項17に記載のコンピュータ・プログラム製品。
【請求項20】
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、要求元から検索要求を受信することを実行させる第4のプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記要求元からの前記検索要求で受信された検索項目を使用して検索バケット・ハッシュのセットおよび検索比較情報を作成することを実行させる第5のプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記検索バケット・ハッシュのセットを使用して前記メタデータ・データベース内で候補メタデータ・レコードのセットを検索することを実行させる第6のプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記候補メタデータ・レコードのセット内の前記候補比較情報が前記検索比較情報にどれほど類似しているかを示す前記候補メタデータ・レコードのセットの比較スコアのセットに基づいて前記候補メタデータ・レコードのセットから候補メタデータ・レコードを選択することを実行させる第7のプログラム・コードと、
前記コンピュータ可読記憶媒体に記憶され、前記コンピュータ・システムによって実行可能であり、前記コンピュータ・システムに、前記候補メタデータ・レコード内のソース識別子を使用して前記候補メタデータ・レコードに対応する識別されたデータ・レコードを前記要求元に返すことを実行させる第8のプログラム・コードと、
をさらに含む、請求項17に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般に改良されたコンピュータ・システムに関し、より詳細には、コンピュータ・システムにおいてメタデータ・インデックスを使用してデータの集合体を管理するための方法、装置、システム、およびコンピュータ・プログラムに関する。
【背景技術】
【0002】
組織によって収集および記憶されるデータの量は、増え続けている。たとえば、企業は、製品、サービス、顧客、取引、および他のタイプの情報に関するデータを記憶し得る。情報の最新かつ最も正確なバージョンが存在するようにすることが望ましい。この情報は異なるデータベースまたは他の情報の集合体に配置され得る。
【0003】
大量の情報がある場合、マスター・データ管理ソリューションを用いてこのデータを取り扱い、様々なソースからのデータのインデックス作成、照合、およびリンク付けを実行し得る。マスター・データ管理システムを中央データ管理システムとして使用して、単一の信頼できるデータのビューをユーザに提供することができる。マスター・データ管理は、異なるデータ・ソースで発生し得る差異および誤りを克服するのに役立つ、正確で包括的なデータの照合を提供することができる。データを照合する際に、異なるソースからのレコード・ペアを比較して、レコード・ペアが一致したか否か、およびレコード・ペアを相互にリンクすべきか否かを判定することができる。レコード内のレコード属性が比較され、一致するか否かが判定される。これらのレコード属性は、たとえば、名前、住所、電話番号、または他の適切な情報とすることができる。様々な比較関数を使用して、完全一致、距離、音声(phonetic)、部分一致、n-gram、または他の何らかの条件などの一致条件に関してレコードを比較することができる。これらのタイプの比較の結果に基づいて、スコアを生成することができる。たとえば、属性ごとにいくつかのスコアを作成し、統計的に決定された相対的な重みに基づいて組み合わせて、レコード同士がリンクするのに十分なほど一致しているか否かを判定することができる。
【発明の概要】
【0004】
本発明の一実施形態によれば、方法は情報を管理する。コンピュータ・システムによって、データ・レコードのバケット・ハッシュのセットおよび比較情報が識別される。バケット・ハッシュのセットは比較情報から生成され、バケット・ハッシュのセットおよび比較情報はメタデータ・レコードを形成する。コンピュータ・システムによって、バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードが識別され、いくつかの候補メタデータ・レコードは候補バケット・ハッシュのセットおよび候補比較情報を含む。コンピュータ・システムによって、メタデータ・レコード内の比較情報といくつかの候補メタデータ・レコード内の候補比較情報との比較からデータ・レコードのエンティティ・メンバーシップが識別される。
【0005】
本発明の他の実施形態によれば、情報管理システムは、コンピュータ・システムと、コンピュータ・システムに記憶されたメタデータ・データベースと、を備える。メタデータ・データベース内のメタデータ・レコードはそれぞれ、バケット・ハッシュのセット、比較情報、およびエンティティ・メンバーシップを含み、バケット・ハッシュのセットは比較情報を使用して生成され、エンティティ・メンバーシップは関連するメタデータ・レコードのセットを識別する。
【0006】
本発明のさらに他の実施形態によれば、情報を管理するためのコンピュータ・プログラム製品は、コンピュータ可読記憶媒体を、コンピュータ可読記憶媒体に記憶された第1のプログラム・コード、第2のプログラム・コード、および第3のプログラム・コードと共に含む。第1のプログラム・コードは、コンピュータ・システムによって実行可能であり、コンピュータ・システムに、データ・レコードのバケット・ハッシュのセットおよび比較情報を識別することであって、バケット・ハッシュのセットは比較情報から生成され、バケット・ハッシュのセットおよび比較情報はメタデータ・レコードを形成する、識別することを実行させる。第2のプログラム・コードは、コンピュータ・システムによって実行可能であり、コンピュータ・システムに、バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードを識別することであって、いくつかの候補メタデータ・レコードは候補バケット・ハッシュおよび候補比較情報を含む、識別することを実行させる。第3のプログラム・コードは、コンピュータ・システムによって実行可能であり、コンピュータ・システムに、メタデータ・レコード内の比較情報といくつかの候補メタデータ・レコード内の候補比較情報との比較からデータ・レコードのエンティティ・メンバーシップを決定することを実行させる。
【図面の簡単な説明】
【0007】
【
図1】例示的な実施形態によるクラウド・コンピューティング環境の図である。
【
図2】例示的な実施形態による抽象化モデル・レイヤの図である。
【
図3】例示的な実施形態が実装されるデータ処理システムのネットワークの図的表現である。
【
図4】例示的な実施形態による情報管理環境のブロック図である。
【
図5】例示的な実施形態による、情報マネージャを使用してレコードを照合するためのデータフローの図である。
【
図6】例示的な実施形態によるメタデータ・レコードの図である。
【
図7】例示的な実施形態による、情報を管理するためのプロセスのフローチャートである。
【
図8】例示的な実施形態による、情報を管理するためのプロセスのフローチャートである。
【
図9】例示的な実施形態による、エンティティ・メンバーシップを決定するためのプロセスのフローチャートである。
【
図10】例示的な実施形態による、情報を管理するためのプロセスのフローチャートである。
【
図11】例示的な実施形態による、データ・レコードをリンクするためのメタデータ・データベースを生成するためのプロセスのフローチャートである。
【
図12】例示的な実施形態によるデータ処理システムのブロック図である。
【発明を実施するための形態】
【0008】
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0009】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリー・スティック(R)、フレキシブル・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的にコード化されたデバイス、およびこれらの任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0010】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
【0011】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行され得る。最後のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)またはワイド・エリア・ネットワーク(WAN:wide area network)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされ得る。いくつかの実施形態では、たとえば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic array)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行することによって、電子回路を個人向けにし得る。
【0012】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装できることは理解されよう。
【0013】
これらのコンピュータ可読プログラム命令を、コンピュータまたは他のプログラム可能データ処理装置のプロセッサに提供して、それらの命令がコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行された場合に、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為を実装するための手段が生成されるようなマシンを生成し得る。また、これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方法で機能するように指示することが可能なコンピュータ可読記憶媒体に記憶して、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為の態様を実装する命令を含む製造品を構成するようにし得る。
【0014】
また、コンピュータ可読プログラム命令をコンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させることによって、それらの命令がコンピュータ、他のプログラム可能装置、または他のデバイス上で実行された場合に、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為が実装されるようなコンピュータ実装処理を生成し得る。
【0015】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理的機能(複数可)を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替的実装形態では、ブロックに記載した機能は、図示した順序以外で行われ得る。たとえば、関与する機能に応じて、連続して示した2つのブロックは、実際には、1つのステップとして実現され、同時に、実質的に同時に、部分的にまたは完全に時間的に重なるように実行され、またはそれらのブロックは、場合により逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能もしくは行為を実行するか、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用のハードウェア・ベースのシステムによって実装できることにも気付くであろう。
【0016】
例示的な実施形態は、いくつかの異なる考慮事項を認識し、考慮に入れる。たとえば、情報を照合するプロセスにおいて、レコードが候補選択のプロセスを経るということを例示的な実施形態は認識し、考慮に入れる。選択される候補レコードは、重複レコードの疑いがあるレコードである。候補選択に続いて候補レコードが比較され、レコードのリンク付けまたはリンク解除の判断が行われるということを例示的な実施形態は認識し、考慮に入れる。
【0017】
従来、候補選択は、このプロセスがバケット・ハッシュの形態の大量のデータのスキャンを伴うので、非常にコストのかかるタスクであったということを例示的な実施形態は認識し、考慮に入れる。選択された候補レコードの比較データを取得することがこのプロセスにおいて必要であり、非常にコストのかかるプロセスであり得るということを例示的な実施形態は認識し、考慮に入れる。照合プロセスの効率が候補選択およびそれらの候補の比較データの取り出しの効率に依存するということを例示的な実施形態は認識し、考慮に入れる。結果として、これらのステップのそれぞれがデータベースからのレコードの検索および取り出しを伴うということを例示的な実施形態は認識し、考慮に入れる。
【0018】
したがって、一致を識別してリンクを生成するためにデータ・レコードを処理する際のデータベース・アクセスの回数を削減することが望ましいということを例示的な実施形態は認識し、考慮に入れる。アクセスを削減するためにデータベースの行内の3つのタイプの列へのアクセスを使用することができ、ここで、1つの列はバケット・ハッシュを含み、第2の列は比較文字列を含み、第3の列はレコードのリンク付け情報を含む、ということを例示的な実施形態は認識し、考慮に入れる。1つの例示的な例では、より高速な照合機能を容易にするために単一のインデックスを使用する。このインデックスは、メタデータ・レコードが含まれているデータベースの形態のデータの集合体であり、データベースとも呼ばれ得る。各メタデータ・レコードは、バケット・ハッシュのセットと比較文字列とを含む。メタデータ・レコードは、エンティティ・メンバーシップを含むこともできる。エンティティ・メンバーシップは、データ・レコードの識別子を含むフィールドである。同じ識別子を有する他のデータ・レコードは、リンクされていると見なされる。
【0019】
本明細書で使用する場合、項目に関して使用するときの「~のセット」とは、1つまたは複数の項目を意味する。たとえば、「バケット・ハッシュのセット」とは、1つまたは複数のバケット・ハッシュである。
【0020】
したがって、メタデータを照合するための改善されたインデックス作成メカニズムを有するシステムを有することが望ましいであろうということを例示的な実施形態は認識し、考慮に入れる。1つの例示的な例では、方法、装置、コンピュータ・システム、およびコンピュータ・プログラム製品は情報を管理する。コンピュータ・システムによって、データ・レコードのバケット・ハッシュのセットおよび比較情報が識別される。バケット・ハッシュのセットは比較情報から生成され、バケット・ハッシュのセットおよび比較情報はメタデータ・レコードを形成する。コンピュータ・システムによって、バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードが識別され、いくつかの候補メタデータ・レコードは候補バケット・ハッシュのセットおよび候補比較情報を含む。コンピュータ・システムによって、メタデータ・レコード内の比較情報といくつかの候補メタデータ・レコード内の候補比較情報との比較からデータ・レコードのエンティティ・メンバーシップが識別される。
【0021】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に列挙した教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているまたは今後開発される他の任意のタイプのコンピューティング環境と共に実装することが可能である。
【0022】
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとのやりとりによって迅速にプロビジョニングおよび解放することができる、設定可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つのデプロイメント・モデルとを含み得る。
【0023】
特徴は以下の通りである。
【0024】
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
【0025】
ブロード・ネットワーク・アクセス:能力はネットワークを介して利用することができ、異種のシンまたはシック・クライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
【0026】
リソース・プーリング:プロバイダのコンピューティング・リソースをプールして、様々な物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされるマルチ・テナント・モデルを使用して複数のコンシューマにサービス提供する。一般にコンシューマは、提供されるリソースの正確な位置に対して何もできず、知っているわけでもないが、より高い抽象化レベル(たとえば、国、州、またはデータセンターなど)では位置を特定可能であり得るという点で位置非依存の感覚がある。
【0027】
迅速な弾力性:能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングして素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとって、プロビジョニング可能な能力は無制限であるように見えることが多く、任意の時間に任意の数量で購入することができる。
【0028】
測定されるサービス:クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適したある抽象化レベルでの計量機能を活用して、リソースの使用を自動的に制御し、最適化する。リソース使用量を監視、管理、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
【0029】
サービス・モデルは以下の通りである。
【0030】
ソフトウェア・アズ・ア・サービス(SaaS:Software as a Service):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、Webブラウザ(たとえば、Webベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能性のある例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む、基盤となるクラウド・インフラストラクチャを管理も制御もしない。
【0031】
プラットフォーム・アズ・ア・サービス(PaaS:Platform as a Service):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、コンシューマが作成または取得したアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成を制御する。
【0032】
インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure as a Service):コンシューマに提供される能力は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをコンシューマがデプロイして動作させることが可能な、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御し、場合によっては選択したネットワーキング・コンポーネント(たとえば、ホスト・ファイアウォール)を限定的に制御する。
【0033】
デプロイメント・モデルは以下の通りである。
【0034】
プライベート・クラウド:クラウド・インフラストラクチャは組織専用に運用される。これは組織または第三者によって管理され、構内または構外に存在し得る。
【0035】
コミュニティ・クラウド:クラウド・インフラストラクチャはいくつかの組織によって共有され、共通の懸念(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項など)を有する特定のコミュニティをサポートする。これは組織または第三者によって管理され、構内または構外に存在し得る。
【0036】
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体に対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
【0037】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または独自技術(たとえば、クラウド間の負荷分散のためのクラウド・バースティング)によって結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を合成したものである。
【0038】
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味論的相互運用性に重点を置いたサービス指向型である。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0039】
ここで
図1を参照すると、例示的なクラウド・コンピューティング環境50の図が示されている。図示のように、クラウド・コンピューティング環境50は1つまたは複数のクラウド・コンピューティング・ノード10を含み、これらを使用して、たとえば、パーソナル・デジタル・アシスタント(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信し得る。クラウド・コンピューティング・ノード10は相互に通信し得る。これらは、たとえば、上述のプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組み合わせなどの1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化され得る(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持する必要がない、インフラストラクチャ・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、またはソフトウェア・アズ・ア・サービス、あるいはそれらの組み合わせを提供することが可能になる。
図1に示したコンピューティング・デバイス54A~Nのタイプは例示的なものにすぎないことを意図しており、クラウド・コンピューティング環境50内のクラウド・コンピューティング・ノード10は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能接続(たとえば、Webブラウザを使用)あるいはその両方を介して任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
【0040】
ここで
図2を参照すると、
図1のクラウド・コンピューティング環境50によって提供される機能的抽象化レイヤのセットが示されている。
図2に示したコンポーネント、レイヤ、および機能は例示的なものにすぎないことを意図しており、本発明の実施形態はこれらに限定されないことを事前に理解されたい。図示のように、以下のレイヤおよび対応する機能が提供される。
【0041】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(Reduced Instruction Set Computer:縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66が含まれる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0042】
仮想化レイヤ70は抽象化レイヤを提供し、抽象化レイヤから、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供され得る。
【0043】
一例では、管理レイヤ80は、下記の機能を提供し得る。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および価格決定82は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する会計または請求とを提供する。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド・コンシューマおよびタスクの同一性検証だけでなく、データおよび他のリソースに対する保護も提供する。ユーザ・ポータル83は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されたサービス・レベルが満たされるような、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA:Service Level Agreement)の計画および履行85は、SLAに従って将来要求されると予想されるクラウド・コンピューティング・リソースの事前手配および調達を提供する。
【0044】
ワークロード・レイヤ90は、クラウド・コンピューティング環境が利用される機能性の例を提供する。このレイヤから提供されるワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、取引処理95、ならびにマスター・データ管理96、を含む。マスター・データ管理96は、
図1のクラウド・コンピューティング環境50または
図1のクラウド・コンピューティング環境50にアクセスする物理的な場所にあるネットワークにおいて情報を管理するためのサービスを提供する。たとえば、マスター・データ管理96を使用して、異なるリポジトリに配置される情報の複数のコピーを管理することができる。マスター・データ管理96は、エンティティの情報の全てのコピーにわたってシングル・バージョン・オブ・トゥルース(single version of the truth)を維持するように動作することができる。この例では、シングル・バージョン・オブ・トゥルース(SVOT)は、エンティティのデータを一貫性のある冗長でない形態で記憶することを伴う。
【0045】
ここで
図3を参照すると、例示的な実施形態が実装されるデータ処理システムのネットワークの図的表現が示されている。ネットワーク・データ処理システム300は、例示的な実施形態が実装されるコンピュータのネットワークである。ネットワーク・データ処理システム300は、ネットワーク・データ処理システム300内で一緒に接続された様々なデバイスおよびコンピュータの間に通信リンクを提供するために使用される媒体であるネットワーク302を含む。ネットワーク302は、有線、無線通信リンク、または光ファイバ・ケーブルなどの接続を含み得る。
【0046】
図示の例では、サーバ・コンピュータ304およびサーバ・コンピュータ306は、データストア307およびデータストア308と共にネットワーク302に接続する。さらに、クライアント・デバイス310は、ネットワーク302に接続する。図示のように、クライアント・デバイス310は、クライアント・コンピュータ312、クライアント・コンピュータ314、およびクライアント・コンピュータ316を含む。クライアント・デバイス310は、たとえば、コンピュータ、ワークステーション、またはネットワーク・コンピュータとすることができる。図示の例では、サーバ・コンピュータ304は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどの情報をクライアント・デバイス310に提供する。さらに、クライアント・デバイス310は、携帯電話318、タブレット・コンピュータ320、およびスマート・グラス322などの他のタイプのクライアント・デバイスを含むこともできる。この例示的な例では、サーバ・コンピュータ304、サーバ・コンピュータ306、データストア307、データストア308、およびクライアント・デバイス310は、ネットワーク302に接続するネットワーク・デバイスであり、ネットワーク302がこれらのネットワーク・デバイス用の通信媒体となる。クライアント・デバイス310の一部または全部は、これらの物理デバイスがネットワーク302に接続し、ネットワーク302を介して互いに情報を交換することができるモノのインターネット(IoT:Internet-of-things)を形成し得る。
【0047】
データストア307およびデータストア308は、ハードウェア・システムであり、情報の記憶、管理、または配布のうちの少なくとも1つのためのリポジトリとして機能する。これらのデータストアは、顧客情報、取引、在庫情報、ポートフォリオ、事業計画、および他の情報などの情報を記憶することができる。情報は、データストア307およびデータストア308に配置されたデータベースに記憶することができる。これらのデータベースは、様々な形態を取ることができる。たとえば、データベースは、グラフ・データベース、非リレーショナル分散データベース、リレーショナル・データベース、または他のタイプのデータベースのうちの少なくとも1つから選択することができる。
【0048】
クライアント・デバイス310は、この例ではサーバ・コンピュータ304に対するクライアントである。ネットワーク・データ処理システム300は、図示していない追加のサーバ・コンピュータ、クライアント・コンピュータ、および他のデバイスを含み得る。クライアント・デバイス310は、有線、光ファイバ、または無線接続のうちの少なくとも1つを利用してネットワーク302に接続する。
【0049】
ネットワーク・データ処理システム300に配置されたプログラム・コードは、コンピュータ記録可能記憶媒体に記憶し、使用のためにデータ処理システムまたは他のデバイスにダウンロードすることができる。たとえば、プログラム・コードは、サーバ・コンピュータ304上のコンピュータ記録可能記憶媒体に記憶し、クライアント・デバイス310上で使用するためにネットワーク302を介してクライアント・デバイス310にダウンロードすることができる。
【0050】
図示の例では、ネットワーク・データ処理システム300はインターネットであり、ネットワーク302は、伝送制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)のプロトコル・スイートを使用して相互に通信するネットワークおよびゲートウェイの世界規模の集合体を表す。インターネットの中心には、データおよびメッセージをルーティングする数千の商用の、政府の、教育の、および他のコンピュータ・システムからなる主要なノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンがある。当然ながら、ネットワーク・データ処理システム300はまた、多数の異なるタイプのネットワークを使用して実装され得る。たとえば、ネットワーク302は、インターネット、イントラネット、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN:metropolitan area network)、またはワイド・エリア・ネットワーク(WAN)のうちの少なくとも1つから構成することができる。
図3は、様々な例示的な実施形態に対するアーキテクチャ上の制限としてではなく、一例として意図している。
【0051】
本明細書で使用する場合、項目に関して使用するときの「いくつかの(number of)」は、1つまたは複数の項目を意味する。たとえば、「いくつかの異なるタイプのネットワーク」は、1つまたは複数の異なるタイプのネットワークである。
【0052】
さらに、項目のリストと共に使用する場合の「~のうちの少なくとも1つ(at least one of)」という語句は、リストした項目のうちの1つまたは複数の様々な組み合わせを使用することができ、リスト内の各項目の1つだけが必要であり得ることを意味する。換言すれば、「~のうちの少なくとも1つ」は、リストから任意の項目および項目数の組み合わせが使用されるが、リスト内の全ての項目が必要なわけではないということを意味する。項目は、特定のオブジェクト、モノ、またはカテゴリとすることができる。
【0053】
たとえば、限定はしないが、「項目A、項目B、または項目Cのうちの少なくとも1つ」は、項目A、項目Aおよび項目B、または項目Bを含み得る。この例はまた、項目A、項目B、および項目Cまたは項目Bおよび項目Cを含み得る。当然ながら、これらの項目の任意の組み合わせが存在することができる。いくつかの例示的な例では、「~のうちの少なくとも1つ」は、たとえば、限定はしないが、2つの項目A、1つの項目B、および10個の項目C、4つの項目Bおよび7つの項目C、または他の適切な組み合わせとすることができる。
【0054】
図示のように、情報マネージャ321は、データストア307およびデータストア308に配置された情報を管理するように動作することができる。この例示的な例では、情報マネージャ321は、情報の重複コピーを識別し、データ重複排除を実行し、または情報の異なるコピー間の正確性を確認することができる。たとえば、情報マネージャ321は、これらの異なる場所にある情報を比較および照合して、データ重複排除および情報を管理する際の他の機能を実行することができる。情報は、データベース内のレコードまたは他のタイプの情報の集合体に記憶することができる。この例示的な例では、情報マネージャ321は、メタデータ・データベース323を使用して、データ・レコードの候補選択の識別、候補データ・レコードの比較の実行、およびデータ・レコードをリンクするか否かの判定などのステップを実行する。
【0055】
この例示的な例では、メタデータ・レコード324は、これらのステップを実行できる速度および効率を高めるように構成される。たとえば、メタデータ・レコード324は、候補選択、比較、およびリンク付けまたはリンク解除のステップなどのステップを実行する際にアクセスされるテーブルまたはデータベースの数を削減するように設計される。たとえば、メタデータ・レコード324のうちのメタデータ・レコード326は、バケット・メンバーシップ328、比較文字列330、およびエンティティ・メンバーシップ332を含む。バケット・メンバーシップ328は、比較文字列330を使用して生成されるバケット・ハッシュを含む。エンティティ・メンバーシップ332は、相互にリンクされているレコードを識別する一意の識別子である。
【0056】
換言すれば、相互にリンクされているメタデータ・レコード324のうちの全てのメタデータ・レコードは、エンティティ・メンバーシップ332に関して同じ一意の識別子を有する。リンクされたレコードは、たとえば、人、組織、会社、政府機関、世帯、口座、または他の任意のタイプのエンティティなどのエンティティに関するものとすることができる。
【0057】
この図示の例では、候補を識別し、候補を比較し、データ・レコードをリンク付けまたはリンク解除するために必要な情報は、メタデータ・レコード324のうちの単一のメタデータ・レコードで見つかる。このようにして、異なるデータベースへの複数回のアクセスが回避される。その結果、アクセス回数の削減により、データ・レコードを処理できる速度を向上させることができる。データ・レコードの数が増えるほど、時間の節約も大きくなる。たとえば、3,000,000,000個のレコードなどの大量のレコードを処理する場合、時間を大幅に節約することができる。
【0058】
図3の例の説明は、他の例示的な例を実装できる方法を限定することを意図していない。たとえば、データストア307およびデータストア308に加えて、またはそれらの代わりに、他の場所に情報を配置することができる。たとえば、情報マネージャ321によって管理される情報は、サーバ・コンピュータ304、サーバ・コンピュータ306、またはクライアント・デバイス310のセットのうちの少なくとも1つに配置することもできる。
【0059】
ここで
図4を参照すると、例示的な実施形態による情報管理環境のブロック図が示されている。この例示的な例では、情報管理環境400は、
図3のネットワーク・データ処理システム300に示したハードウェアなどのハードウェアで実装することができるコンポーネントを含む。
【0060】
図示のように、情報管理システム402は、データストア406内の情報404を管理するように動作することができる。この例では、データストア406は、情報404の集合体を永続的に記憶および管理するように機能するハードウェア・システムである。データストア406は、データベース、ファイル、ドキュメント、スプレッドシート、または他の何らかの適切な形態のうちの少なくとも1つから選択された情報リポジトリを含むことができる。データストア406は、単一の場所に存在することができ、または異なるコンピュータまたはストレージ・システム上の多くの場所に分散させることができる。
【0061】
1つの例示的な例では、データ・レコード408の形態の情報404は、データストア406内のデータベース410のセットに記憶される。図示のように、データベースは、情報を体系的に記憶するデータ構造である。データベースは複数のテーブルを含むことができる。異なるテーブルは、製品、財務記録、従業員、または他の情報などの異なるタイプの情報を表すことができる。この例では、データ・レコード408は、データベース410のセット内の異なるテーブルに記憶される。
【0062】
図示のように、情報管理システム402は、コンピュータ・システム412および情報マネージャ414を含む。情報マネージャ414は、コンピュータ・システム412内に配置される。
【0063】
情報マネージャ414は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせで実装することができる。ソフトウェアが使用される場合、情報マネージャ414によって実行される動作は、プロセッサ・ユニットなどのハードウェア上で実行するように構成されるプログラム・コードで実装することができる。ファームウェアが使用される場合、情報マネージャ414によって実行される動作は、プログラム・コードおよびデータで実装し、永続メモリに記憶して、プロセッサ・ユニット上で実行することができる。ハードウェアが用いられる場合、ハードウェアは、情報マネージャ414における動作を実行するように動作する回路を含み得る。
【0064】
例示的な例では、ハードウェアは、回路システム、集積回路、特定用途向け集積回路(ASIC:application specific integrated circuit)、プログラマブル・ロジック・デバイス、またはいくつかの動作を実行するように構成される他の何らかの適切なタイプのハードウェアのうちの少なくとも1つから選択される形態を取り得る。プログラマブル・ロジック・デバイスを使用する場合、デバイスはいくつかの動作を実行するように構成することができる。デバイスは、後で再構成することができ、またはいくつかの動作を実行するように永続的に構成することもできる。プログラマブル・ロジック・デバイスには、たとえば、プログラマブル・ロジック・アレイ、プログラマブル・アレイ・ロジック、フィールド・プログラマブル・ロジック・アレイ、フィールド・プログラマブル・ゲート・アレイ、および他の適切なハードウェア・デバイスが含まれる。さらに、プロセスは、無機コンポーネントと統合された有機コンポーネントで実装することができ、人間を除く有機コンポーネントで完全に構成することができる。たとえば、プロセスは、有機半導体の回路として実装することができる。
【0065】
コンピュータ・システム412は、物理ハードウェア・システムであり、1つまたは複数のデータ処理システムを含む。2つ以上のデータ処理システムがコンピュータ・システム412に存在する場合、それらのデータ処理システムは、通信媒体を使用して相互に通信する。通信媒体はネットワークとすることができる。データ処理システムは、コンピュータ、サーバ・コンピュータ、タブレット・コンピュータ、または他の何らかの適切なデータ処理システムのうちの少なくとも1つから選択することができる。
【0066】
この例示的な例では、情報マネージャ414は、データベース410のセット内のデータ・レコード408などの情報404を管理する際に、いくつかの異なるステップを実行することができる。データ・レコード408の管理は、メタデータ・データベース416を使用して形成することができる。
【0067】
たとえば、情報マネージャ414は、データ・レコード408のうちのデータ・レコード422のバケット・ハッシュ418のセットおよび比較情報420を識別することができる。この例では、データ・レコード422のバケット・ハッシュ418のセットおよび比較情報420は、メタデータ・データベース416内のメタデータ・レコード426のうちのメタデータ・レコード424を形成する。この例示的な例では、情報マネージャ414は、インデックス作成サービス428から受信されたデータ・レコード422のバケット・ハッシュ418のセットおよび比較情報420を受信することによって、この情報を識別することができる。
【0068】
この例示的な例では、インデックス作成サービス428は、多数のデータ・レコード408のバケット・ハッシュ418を生成することができる一括インデックス作成サービスとすることができる。インデックス作成サービス428は、データ・レコード408から比較情報420を識別することもできる。図示のように、インデックス作成サービス428は、1つの例示的な例では、現在利用可能なマスター・データ管理システムにおける機能またはプロセスとすることができる。
【0069】
この例では、バケット・ハッシュ418のセットは、比較情報420から生成される。バケット・ハッシュ418のうちのバケット・ハッシュは、1つまたは複数の比較情報420にハッシュ関数を適用することによって生成される値である。この例では、バケット・ハッシュ418のセットは、名、姓、住所、通りの名前、州、郵便番号、居住都市、電話番号、職業、会社名、生年月日、口座番号、会社の電話番号、会社の住所、または納税者番号のうちの少なくとも1つから選択される比較情報420に基づくことができる。
【0070】
さらに、単一のデータ・レコードのバケット・ハッシュ418のセット内に複数のバケット・ハッシュを生成することができ、複数のバケット・ハッシュのうちの各バケット・ハッシュはデータ・レコード内のフィールドまたは属性の一部分のみを表すことができる。たとえば、郵便番号が12345の場合、3つのバケット・ハッシュを生成することができる。たとえば、「123」にハッシュ関数を適用して第1のバケット・ハッシュを生成することができ、「234」に同じハッシュ関数を適用して第2のバケット・ハッシュを生成することができ、「345」に同じハッシュ関数を適用して第3のバケット・ハッシュを生成することができる。このタイプのバケット・ハッシュの生成は、n-gramベースのバケット化と呼ばれ得る。
【0071】
その結果、単一のデータ・レコード内のフィールドまたは属性に対してバケット・ハッシュ418のセット内に複数のバケット・ハッシュを生成することができ、バケット・ハッシュのそれぞれはデータ・レコード内のフィールドまたは属性の一部分のみを表す。このようにして、潜在的なデータ入力エラーを考慮して、部分一致を識別することができる。このタイプの複数のバケット・ハッシュの生成は、電話番号、生年月日、または他の適切な情報など、データ・レコード内の他のタイプの情報に適用することができる。
【0072】
比較情報420は、多くの異なる形態を取ることができる。たとえば、比較情報420は、データ・レコード422内の情報404を表す比較文字列430またはテキスト列432のうちの少なくとも1つとすることができる。この例示的な例では、比較文字列430は、特定の比較または照合プロセスによって使用または認識されるフォーマットまたは構文が追加されたテキストとすることができる。たとえば、比較文字列430内のテキストの場所または位置は、データ・レコード422内の特定のタイプの情報を示し得る。特定のタイプの情報は、属性とも呼ばれ得る。
【0073】
さらに、特定の比較または照合プロセスによって期待される構文を追加することができる。図示のように、テキスト列432は、フォーマットまたは特定の構文なしでデータ・レコード422から取得されるテキストとすることができる。
【0074】
この例示的な例では、バケット・ハッシュ418のセットおよび比較情報420は、メタデータ・データベース416に記憶することができるメタデータ・レコード424を形成する。メタデータ・データベース416はインデックスとも呼ばれ得る。その結果、対象のデータ・レコードのうちの各データ・レコードを処理して、メタデータ・データベース416内にメタデータ・レコード426を生成することができる。
【0075】
図示のように、情報マネージャ414は、バケット・ハッシュ418のセットを使用して、メタデータ・データベース416内のいくつかの候補メタデータ・レコード434を識別することができる。たとえば、情報マネージャ414は、いくつかの候補メタデータ・レコード434を識別するために、メタデータ・レコード424内のバケット・ハッシュを含むメタデータ・レコード426を検索することができる。このタイプの検索は、いくつかの候補メタデータ・レコード434を見つけるために、メタデータ・レコード424内のバケット・ハッシュ418のセットのそれぞれに対して実行することができる。このようにして、メタデータ・レコード426を使用して、データ・レコード422に関連し得るデータ・レコード408の検索を実行することができる。いくつかの候補メタデータ・レコード434は、候補バケット・ハッシュ436のセットおよび候補比較情報438を含むことができる。
【0076】
さらに、情報マネージャ414は、メタデータ・レコード424内の比較情報420といくつかの候補メタデータ・レコード434内の候補比較情報438との比較442からデータ・レコード422のエンティティ・メンバーシップ440を決定することができる。比較442は、メタデータ・レコード424とメタデータ・レコード426のうちの他のメタデータ・レコードとの間に一致が存在する可能性を示すスコアを含むことができる。
【0077】
このようにして、データ・レコード422によって表されるデータ・レコード422が、データ・レコード408のうちの他のデータ・レコードと同じであるかまたは十分に類似している可能性に関する判定を行うことができる。データ・レコード422がデータ・レコード408のうちの他のデータ・レコードと同じであるかまたは十分に類似している可能性がある場合、一致が存在すると見なされる。
【0078】
スコアは、データ・レコード422の異なる部分の間の一致の確率を示すサブ・パートまたはサブ・スコアを含むことができる。これらの異なる部分は、データ・レコード422内のフィールドまたは属性とすることができる。たとえば、一部分は、名、姓、住所、通りの名前、州、郵便番号、居住都市、電話番号、職業、会社名、生年月日、口座番号、会社の電話番号、会社の住所、納税者番号、またはデータ・レコードの一部分で見つかる他の何らかの適切な情報のうちの少なくとも1つとすることができる。
【0079】
たとえば、エンティティ・メンバーシップ440を決定する際に、情報マネージャ414は、メタデータ・レコード424内の比較情報420をいくつかの候補メタデータ・レコード434内の候補比較情報438と比較して、比較442を形成することができる。情報マネージャ414は、比較442から比較スコア444のセットを生成することができる。情報マネージャ414は、比較スコア444のセットを閾値446のセットと比較することに基づいてエンティティ・メンバーシップ440を決定することができる。
【0080】
この例示的な例では、閾値446のセットは、パーセンテージのセットなどの値のセットとすることができる。比較スコア444が、特定の属性または全ての比較情報についてどれだけ近い一致が存在するかを示すパーセンテージを有する場合、メタデータ・レコード424内の比較情報420は、比較スコア444のセットが閾値446のセットを満たすかまたは超えるいくつかの候補メタデータ・レコード434のうちの各候補メタデータ・レコードへの一致と見なすことができる。
【0081】
この例示的な例では、データ・レコード422のメタデータ・レコード424内のエンティティ・メンバーシップ440は、一致と見なされるデータ・レコード408のメタデータ・レコード426のうちの1つまたは複数の他のメタデータ・レコードと同じ一意の識別子を有するように更新することができる。他の例示的な例では、メタデータ・レコード424内のエンティティ・メンバーシップ440は、メタデータ・レコード424に対応するデータ・レコード422が一意であり、データ・レコード408のうちの他のデータ・レコードと一致しないことを示す値を有することができる。この例示的な例では、データ・レコード408のこのリンク付けは、情報マネージャ414がデータ・レコード408間のリンク付けを示すようにメタデータ・レコード426内のエンティティ・メンバーシップを更新することによって実行することができる。たとえば、情報マネージャ414は、候補メタデータ・レコード434との比較442からデータ・レコード422に対して決定されたエンティティ・メンバーシップ440でメタデータ・レコード424を更新することができる。更新は、メタデータ・レコード424と一致する候補メタデータ・レコード434に使用されている一意の識別子を含めるためのものとすることができる。
【0082】
エンティティ・メンバーシップを決定するために処理されたメタデータ・データベース416内のメタデータ・レコード426を用いて、このデータベースを使用して、データストア406内のデータベース410のセット内のデータ・レコード408を検索することができる。到来データ・レコードまたは検索要求内の検索項目を使用して、同様のプロセスを行うことができる。
【0083】
たとえば、情報マネージャ414は、要求元450から検索要求448を受信することができる。この例では、要求元450は、人間のオペレータの形態のユーザ、またはコンピュータ上で実行されるプロセスもしくはプログラムとすることができる。
【0084】
情報マネージャ414は、要求元450から検索要求448で受信した検索項目456を使用して、検索バケット・ハッシュ452のセットおよび検索比較情報454を作成することができる。情報マネージャ414は、検索バケット・ハッシュ452のセットを使用して、メタデータ・データベース416内で候補メタデータ・レコード434のセットを検索することができる。
【0085】
情報マネージャ414は、候補メタデータ・レコード434のセット内の候補比較情報438が検索比較情報454にどれほど類似しているかを示す候補メタデータ・レコード434のセットの比較スコア444のセットに基づいて候補メタデータ・レコードのセット434からの候補メタデータ・レコード458が検索項目456と一致するか否かを判定することができる。情報マネージャ414は、候補メタデータ・レコード458内のソース識別子462を使用して、メタデータ・レコード424に対応するデータ・レコード408のうちの識別されたデータ・レコード460を要求元450に返すことができる。
【0086】
1つの例示的な例では、データ・レコードなどの情報を分析するために必要な時間および処理リソースの問題を克服する機能が、他のタイプのリポジトリ用の1つまたは複数のデータベースに存在し得る。1つの例示的な例では、情報マネージャ414は、データ重複排除のプロセスを実行して、データ・レコード408内にある情報404などの情報を一致させるように動作することができる。メタデータ・データベース416を使用して、データ・レコード408を照合するためのデータベースまたはテーブルでの検索の量を削減することができる。
【0087】
例示的な例では、バケット・ハッシュ418および比較情報420などのメタデータは、メタデータ・データベース416内のメタデータ・レコード426に存在する。図示の例では、比較が望まれるデータ・レコード408に対してメタデータ・レコード426が生成される。この例では、メタデータ・レコード426のうちの各メタデータ・レコードは、データ・レコード408のうちの対応するデータ・レコードに対して生成されたバケット・ハッシュ418のセットおよび比較情報420を含む。
【0088】
例示的な例では、メタデータ・レコード426内の一致するバケット・ハッシュ418を求めてメタデータ・レコード426内で検索を実行することによって、相互にリンクされる候補メタデータ・レコード434を識別することができる。各候補メタデータ・レコードは、バケット・ハッシュ418のセットおよび比較情報420を含む。比較情報420の比較が行われるときに、比較情報420はバケット・ハッシュ418のセットと共にデータ・レコード422内に存在するので、データベースへの追加のクエリは不要である。
【0089】
さらに、比較の結果、データ・レコード408の比較情報420が一致した場合、対応するメタデータ・レコード426内のこれらのデータ・レコードのエンティティ・メンバーシップ440を、2つのデータ・レコード408を相互にリンクするように更新することができる。さらに、このプロセスを使用して、メタデータ・レコード426内のエンティティ・メンバーシップ440を、データ・レコード408の対応するものをリンク解除するように更新することもできる。
【0090】
このようにして、現在使用されている技術と比較して、データベース・アクセスの回数の削減が行われる。その結果、メタデータ・データベース416内のメタデータ・レコード426は、データ・レコード408のメタデータを照合するために使用することができるインデックスを形成する。
【0091】
これらのメタデータ・レコードを使用して、データ・レコード408を検索することができる。たとえば、検索要求448が受信されると、情報マネージャ414は、検索要求448内の検索項目456から検索バケット・ハッシュ452および検索比較情報454を生成することができる。この情報を使用して、候補メタデータ・レコード434を探し、次いで検索比較情報454および候補比較情報438を使用して比較を実行することができる。候補メタデータ・レコード434のうちの1つまたは複数との一致が見つかった場合、それらの候補メタデータ・レコード内のソース識別子を情報マネージャ414が使用して、検索要求448に対応するデータ・レコード408を特定することまたは返すことのうちの少なくとも1つを実行することができる。
【0092】
コンピュータ・システム412は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせを使用して、異なる例示的な例に記載したステップ、動作、またはアクションのうちの少なくとも1つを実行するように構成することができる。その結果、コンピュータ・システム412内の情報マネージャ414が、比較の実行に必要な時間およびリソースを削減するプロセスを使用して、データ・レコード408をリンクまたはリンク解除するようにエンティティ・メンバーシップを更新することを含む、情報404を管理することを可能にする専用コンピュータ・システムとしてコンピュータ・システム412が動作する。具体的には、情報マネージャ414は、情報404とデータ・レコード408とを比較するためにメタデータ・データベース416を使用する情報マネージャ414を有さない現在利用可能な汎用コンピュータ・システムと比較して、コンピュータ・システム412を専用コンピュータ・システムに変換する。
【0093】
例示的な例では、コンピュータ・システム412で情報マネージャ414を使用することにより、プロセスが情報404を管理するための実用的なアプリケーションへと統合され、コンピュータ・システム412の性能が向上する。換言すれば、コンピュータ・システム412内のメタデータ・データベース416を使用する情報マネージャ414は、メタデータ・データベース416内のメタデータ・レコード426を使用して互いに一致すると見なされるデータ・レコード408を識別するコンピュータ・システム412内の情報マネージャ414へと統合されたプロセスの実用的なアプリケーションを対象とする。この例示的な例では、コンピュータ・システム412内の情報マネージャ414は、コンピュータ・システム412の機能が現在の技術と比較して改善されるような情報管理の実用的なアプリケーションを提供する。
【0094】
このように、例示的な例は、より効率的な候補の選択および候補の比較を容易にするメタデータ・アーキテクチャを提供する。さらに、メタデータ・レコードの構造により、現在の技術での大きいバケットの問題が軽減され、複数のバケット間で相関関係を有するデータを取得することが可能になる。さらに、この設計は、現在の技術により1つずつ実行するのではなく、複数のバケットからバケット・ハッシュに基づいて単一のパスで候補メタデータ・レコードを取り出すことも可能にする。
【0095】
ここで
図5を参照すると、例示的な実施形態による、情報マネージャを使用してレコードを照合するためのデータフローの図が示されている。例示的な例では、同じ参照番号を2つ以上の図で使用し得る。異なる図における参照番号のこの再使用は、異なる図における同じ要素を表す。
【0096】
この例示的な例では、情報マネージャ414は、いくつかの異なるコンポーネントを含む。図示のように、情報マネージャ414は、メタデータ・レコード・マネージャ500と、照合およびリンク・サービス502とを含む。
【0097】
この例示的な例では、データストア406内のデータ・レコード408をインデックス作成サービス428によって処理することができる。インデックス作成サービス428は、データ・レコード408の大部分または全てを処理することができる一括インデックス作成サービスとすることができる。この例示的な例では、インデックス作成サービス428は、標準化器504、比較情報生成器506、およびバケット・ハッシュ生成器508を含む。
【0098】
標準化器504は比較情報を生成することができ、比較情報生成の一部として、データ・レコード408内の情報を標準化することができる。たとえば、標準化器504によって名前を標準化することができる。一例では、バケット・ハッシュおよび比較情報を生成する目的で、名前「Bob」、「Robert」、および「William」を「Bob」に標準化して、「Robert」および「William」の各インスタンスを「Bob」に変更することができる。他の例として、音声標準化(phonetic standardization)を実行することができ、標準化器504によって「Richard」および「Richerd」を「r IH ch er d」の音声表示(phonetic representation)に標準化することができる。図示のように、比較情報生成器506は、比較プロセスによって使用されるフォーマットまたは構文のうちの少なくとも1つを含む比較文字列などの、各データ・レコードの比較情報を生成することができる。
【0099】
この例示的な例では、バケット・ハッシュ生成器508は、比較情報420に基づいてバケット・ハッシュを生成することができる。たとえば、バケット・ハッシュ生成器508は、標準化器504によって生成された標準化された語を使用して各データ・レコードのバケット・ハッシュ418を生成することができ、比較情報生成器506を使用して、比較情報生成器506によって比較情報420内に比較文字列を生成することができる。
【0100】
インデックス作成サービス428は、バケット・ハッシュ418および比較情報420を情報マネージャ414内のメタデータ・レコード・マネージャ500に送信する。図示のように、メタデータ・レコード・マネージャ500は、バケット・ハッシュ418および比較情報420を使用してメタデータ・レコード426を生成することができる。その結果、メタデータ・データベース416内のメタデータ・レコード426のうちのメタデータ・レコードが、インデックス作成サービス428による対応するデータ・レコード・プロセスごとに存在する。
【0101】
この例示的な例では、メタデータ・レコード・マネージャ500は、いくつかの異なるタイプのプロセスを使用して実装することができる。たとえば、メタデータ・レコード・マネージャ500は、ElasticSearch(R)検索エンジンなどの検索エンジンを含むことができる。このタイプの検索エンジンは、メタデータ・データベース416内のメタデータ・レコード426のインデックスを生成することができる。このメタデータのインデックス作成により、候補メタデータ・レコードの検索を実行できる速度および効率を向上させることができる。
【0102】
この例示的な例では、照合およびリンク・サービス502は、いくつかの異なるコンポーネントを含む。図示のように、照合およびリンク・サービス502は、候補選択器510、比較器512、およびリンカ514を含む。
【0103】
候補選択器510は、一致するメタデータ・レコードを識別するために処理中であるメタデータ・レコードにリンクするための候補である候補メタデータ・レコード434を検索することができる。この検索はバケット・ハッシュ418を使用して実行することができる。たとえば、メタデータ・レコード内の各バケット・ハッシュを使用して、そのバケット・ハッシュを含む他のメタデータ・レコードを検索することができる。一致するバケット・ハッシュを有するデータ・レコードは、メタデータ・データベース416内のメタデータ・レコード426から返される候補メタデータ・レコード434である。
【0104】
図示のように、比較器512は、候補メタデータ・レコード434内の候補比較情報438を、処理中のデータ・レコード422のメタデータ・レコード424内の比較情報420と比較することができる。この比較は、比較情報を取得するためにメタデータ・データベース416または他のデータベースへの別のアクセスを実行する必要なく実行される。この例では、候補比較情報438は、候補バケット・ハッシュ436と共に候補メタデータ・レコード434に配置される。その結果、メタデータ・レコード426を使用するこの例では、比較情報を検索するための追加のデータベース・アクセスは不要である。この例では、比較器512は、同じ意味を有する異なるデータ・レコード間の構文上の類似性を考慮に入れることができる。この比較は、等価関数(equivalence function)を使用して実行することができる。
【0105】
1つまたは複数の一致が識別されると、リンカ514は、処理中のメタデータ・レコードと一致する1つまたは複数の候補メタデータ・レコードのエンティティ・メンバーシップを更新することができる。この更新は、バケット・ハッシュ418の最初の検索で返される
図4の候補メタデータ・レコード434で行うことができる。その結果、エンティティ・メンバーシップのためのデータベースへの追加のアクセスは不要である。この更新は、処理中のメタデータ・レコードのエンティティ・メンバーシップを更新することによって、データ・レコード408を相互にリンクまたはリンク解除するためのものとすることができる。
【0106】
このようにして、データ・レコード408を処理するために必要なデータベース・アクセスの回数または時間のうちの少なくとも1つを削減するようにデータ・レコード408を処理およびリンクすることができる。重複するデータ・レコードが識別されると、データ重複排除または他のステップを実行することができる。
【0107】
図4および
図5の情報管理環境400および情報管理環境400内の様々なコンポーネントの図は、例示的な実施形態を実装できる方法に対する物理的なまたは構造上の制限を示唆するものではない。図示したコンポーネントに加えて、またはそれらの代わりに、他のコンポーネントが使用され得る。一部のコンポーネントは不要であり得る。また、ブロックは、いくつかの機能コンポーネントを説明するために提示している。これらのブロックのうちの1つまたは複数は、例示的な実施形態で実装される場合に、異なるブロックへと結合、分割、または結合および分割され得る。
【0108】
たとえば、メタデータ・レコード424は、バケット・ハッシュ418のセットおよび比較情報420に加えて他の情報を他のフィールドに含むことができる。たとえば、メタデータ・レコード424は、エンティティ・メンバーシップ、顧客識別子、レコード・タイプ、確率的自己スコア(probabilistic self-score)、タイム・スタンプ、または他の適切な情報のうちの少なくとも1つに関する属性またはフィールドを含むことができる。エンティティ・メンバーシップは、レコードをリンクするために使用することができる識別子である。顧客識別子は、顧客を識別することができる。この例では、レコード・タイプは、個人または組織などのレコードのタイプまたはカテゴリの識別子である。レコードのタイプに基づいて、異なる比較関数を使用することができる。その結果、レコード・タイプを使用して、そのタイプのデータに対して照合を実行する方法を決定することができる。
【0109】
図示の例では、確率的自己スコアはレコードの自己比較スコア(self-comparison score)である。このスコアは、レコードの強さを示すことができる。たとえば、レコードがより多くの属性を有する場合、このレコードの自己比較スコアは、属性の数がより少ないレコードよりも高くすることができる。このスコアは、ソース・データの品質に関する何らかの分析を実行するためのものとすることができる。より高い自己スコアのレコードを有するソースは、より低い自己スコアのレコードを有するソースよりも情報量が豊富(rich)である。タイム・スタンプは、メタデータ・レコード424が最後に更新されたときを示す。
【0110】
他の例示的な例では、情報マネージャ414は、データ・レコード408から情報を生成することによって、バケット・ハッシュ418および比較情報420を識別することができる。他の例として、データストア406は、コンピュータ・システム412に加えて他のコンピュータ・システムに配置することができる。
【0111】
図6を参照すると、例示的な実施形態によるメタデータ・レコードの図が示されている。メタデータ・レコード600は、
図4のメタデータ・レコード424を実装できる1つの方法の一例である。
【0112】
例示的な例では、メタデータ・レコード600は、いくつかの異なる属性を含む。図示のように、メタデータ・レコード600は、内部レコード識別子602、ソース識別子604、バケット・ハッシュ606、比較文字列608、エンティティ・メンバーシップ610、およびテキスト検索612を含む。
【0113】
内部レコード識別子602は、メタデータ・データベース内でメタデータ・レコード600を一意に識別する一意の識別子である。ソース識別子604は、メタデータ・レコード600に対応するデータ・レコードを特定するために使用することができる。たとえば、ソース識別子604は、ソースの識別子およびレコード識別子などを含むことができる。メタデータ・レコード600に対応するデータ・レコードを特定するために、レコード識別子および他の情報、たとえば、レポジトリ識別子、データベース識別子、IPアドレス、または他の適切な情報を使用することができる。
【0114】
バケット・ハッシュ606は、比較文字列608またはテキスト検索612のうちの少なくとも1つなどの比較情報を使用して生成されるバケット・ハッシュである。図示のように、メタデータ・レコード600内のバケット・ハッシュ606は、他のメタデータ・レコード内のバケット・ハッシュと対照して検索され得る。
【0115】
この図示の例では、比較文字列608は比較情報の一例である。比較文字列608は、データ・レコードの比較に使用できるプロセスによって使用されるフォーマットまたは構文のうちの少なくとも1つを有するテキストを含む。比較文字列608は、データ・レコードの連結されたテキスト表現とすることができる。比較文字列608により、メタデータ・データベースに使用される検索エンジンのテキストベースの検索機能を活用して、十分なレベルの一致を有する候補メタデータ・レコードのより迅速な識別を実行することができる。この例示的な例では、メタデータ・レコードが候補メタデータ・レコードと一致していると見なすのに十分な数の語が一致しているか否かを判定するために比較スコアを生成および使用するように照合を形成することができる。
【0116】
この例では、テキスト検索612は、特定のフォーマットまたは構文になっていない語を含む。テキスト検索612は、ElasticSearch(R)検索エンジンなどの検索エンジンによる検索に使用することができる。
【0117】
この例示的な例では、エンティティ・メンバーシップ610は、メタデータ・レコードを相互にリンクし、ひいてはそれらのメタデータ・レコードによって表されるデータ・レコードをリンクする識別子を含む。一致するデータ・レコードの各メタデータ・レコードは、エンティティ・メンバーシップ610に関して同じ値を有する。場合によっては、データ・レコードが一意であり、一致するデータ・レコードを有さない場合がある。その場合、データ・レコードに対応するメタデータ・レコード内のエンティティ・メンバーシップ610は、メタデータ・レコード内で一意である。
【0118】
次に
図7を参照すると、例示的な実施形態による、情報を管理するためのプロセスのフローチャートが示されている。
図7のプロセスは、ハードウェア、ソフトウェア、またはその両方で実装することができる。ソフトウェアで実装される場合、このプロセスは、1つまたは複数のコンピュータ・システム内の1つまたは複数のハードウェア・デバイスに配置された1つまたは複数のプロセッサ・ユニットによって実行されるプログラム・コードの形態を取ることができる。たとえば、このプロセスは、
図4のコンピュータ・システム412内の情報マネージャ414で実装することができる。
【0119】
このプロセスは、データ・レコードのバケット・ハッシュのセットおよび比較情報を識別することから始まり、バケット・ハッシュのセットは比較情報から生成され、バケット・ハッシュのセットおよび比較情報はメタデータ・レコードを形成する(ステップ700)。このプロセスは、バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードを識別し、いくつかの候補メタデータ・レコードは候補バケット・ハッシュのセットおよび候補比較情報を含む(ステップ702)。このプロセスは、メタデータ・レコード内の比較情報といくつかの候補メタデータ・レコード内の候補比較情報との比較からデータ・レコードのエンティティ・メンバーシップを決定する(ステップ704)。その後、このプロセスは終了する。
【0120】
図8を参照すると、例示的な実施形態による、情報を管理するためのプロセスのフローチャートが示されている。
図8のプロセスは、情報を管理するために
図7のプロセスで実行することができる追加のステップを示している。
【0121】
このプロセスは、バケット・ハッシュのセットおよび比較情報を使用してデータ・レコードのメタデータ・レコードを作成する(ステップ800)。ステップ800は、
図7の様々なステップの間にいつでも実行することができる。
【0122】
このプロセスは、データ・レコードに対して決定されたエンティティ・メンバーシップでメタデータ・レコードを更新する(ステップ802)。その後、このプロセスは終了する。ステップ802は、
図7のステップ704でエンティティ・メンバーシップが決定された後に実行することができる。
【0123】
ここで
図9を参照すると、例示的な実施形態による、エンティティ・メンバーシップを決定するためのプロセスのフローチャートが示されている。この図のプロセスは、
図7のステップ704を実装できる1つの方法の一例である。
【0124】
このプロセスは、比較を形成するためにメタデータ・レコード内の比較情報をいくつかの候補メタデータ・レコード内の候補比較情報と比較することから始まる(ステップ900)。このプロセスは、比較から比較スコアのセットを生成する(ステップ902)。この例示的な例では、識別された候補レコードごとに比較スコアを生成することができる。さらに、比較スコアのセットはサブ比較スコアを含むことができ、各サブ比較スコアは、候補比較情報内で識別される特定の属性またはフィールドに関するものである。たとえば、比較スコア内のサブ比較スコアを生成するために比較される属性またはフィールドを識別するための文字列またはラベルの順序が存在することができる構文を使用することができる。次いで、スコアを重み付きで合計して、メタデータ・レコード全体の比較スコアを生成することができる。一致が存在するか否かを判定する際に一部の属性により大きい重みを与えるように重み付けを割り当てることができる。
【0125】
このプロセスは、比較スコアのセットを閾値のセットと比較することに基づいてエンティティ・メンバーシップを決定する(ステップ904)。その後、このプロセスは終了する。
【0126】
図10を参照すると、例示的な実施形態による、情報を管理するためのプロセスのフローチャートが示されている。
図10のプロセスは、ハードウェア、ソフトウェア、またはその両方で実装することができる。ソフトウェアで実装される場合、このプロセスは、1つまたは複数のコンピュータ・システム内の1つまたは複数のハードウェア・デバイスに配置された1つまたは複数のプロセッサ・ユニットによって実行されるプログラム・コードの形態を取ることができる。たとえば、このプロセスは、
図4のコンピュータ・システム412内の情報マネージャ414で実装することができる。このフローチャートでは、このプロセスは、メタデータ・データベース内のメタデータ・レコードを使用してデータ・レコードを検索するために使用することができる。
【0127】
このプロセスは、要求元から検索要求を受信することから始まる(ステップ1000)。このプロセスは、要求元からの検索要求で受信された検索項目を使用して検索バケット・ハッシュのセットおよび検索比較情報を作成する(ステップ1002)。検索バケット・ハッシュのセットは、検索要求内の検索項目を使用して生成される。同様に、検索要求内の検索項目を使用して比較情報を生成することもできる。
【0128】
このプロセスは、検索バケット・ハッシュのセットを使用してメタデータ・データベース内で候補メタデータ・レコードのセットを検索する(ステップ1004)。このプロセスは、候補メタデータ・レコードのセット内の候補比較情報が検索比較情報にどれほど類似しているかを示す候補メタデータ・レコードのセットの比較スコアのセットに基づいて候補メタデータ・レコードのセットから候補メタデータ・レコードを選択する(ステップ1006)。
【0129】
このプロセスは、候補メタデータ・レコード内のソース識別子を使用して候補メタデータ・レコードに対応する識別されたデータ・レコードを要求元に返す(ステップ1008)。その後、このプロセスは終了する。識別されるデータ・レコードは、候補メタデータ・レコード内の情報を使用して識別することができる。たとえば、候補メタデータ・レコードは、ソース識別子を含むことができる。ソース識別子は、返されるデータ・レコードの場所を特定するために使用できる情報を含む。この情報は、たとえば、リポジトリ識別子、データ・レコードが配置されているデータベースのレコード識別子、または他の適切な情報を含むことができる。
【0130】
次に
図11を参照すると、例示的な実施形態による、データ・レコードをリンクするためのメタデータ・データベースを生成するためのプロセスのフローチャートが示されている。このメタデータ・データベースは、照合用インデックスとも呼ばれ得る。
【0131】
図11のプロセスは、ハードウェア、ソフトウェア、またはその両方で実装することができる。ソフトウェアで実装される場合、このプロセスは、1つまたは複数のコンピュータ・システム内の1つまたは複数のハードウェア・デバイスに配置された1つまたは複数のプロセッサ・ユニットによって実行されるプログラム・コードの形態を取ることができる。たとえば、このプロセスは、
図4のコンピュータ・システム412内の情報マネージャ414で実装することができる。
【0132】
このプロセスは、データストアから到来データ・レコードを受信することから始まる(ステップ1100)。データストアは、任意の適切なバックエンド・ストアまたはデータベースとすることができる。たとえば、データストアは、Janus Graph、Cloudant(R)、Hbase(R)、またはDB2(R)データベースとすることができる。この図示の例では、ステップ1100は、ウェブ・アプリケーション1120によって実行することができる。ウェブ・アプリケーション1120は永続レイヤ(persistent layer)として動作することができ、インデックス作成サービス1130および一括照合サービス1150から独立している。
【0133】
このプロセスは、到来データ・レコードのバケット・ハッシュおよび比較情報を生成する(ステップ1102)。この例では、ステップ1102は、ウェブ・アプリケーション1120からデータ・レコードを受信することができるインデックス作成サービス1130によって実行される。たとえば、ウェブ・アプリケーション1120は、表現状態転送(REST:Representational State Transfer)アプリケーション・プログラミング・インターフェース(API:application programning interface)呼び出しを行って、一括インデックス作成サービスにデータ・レコードのメタデータを生成するように要求することができる。この例では、インデックス作成サービス1130は、到来レコードを読み取り、データを標準化し、比較文字列を作成し、到来データ・レコードごとにバケット・ハッシュを作成して、下流の統計的な照合をサポートすることが可能な、スケーラブルな一括方式のプロセスとすることができる。さらに、インデックス作成サービス1130は、テキストベースのインデックス作成または迅速な検索のために到来データ・レコードのテキスト表現を作成することもできる。
【0134】
このプロセスは、バケット・ハッシュおよび比較情報をメタデータ・データベースにメタデータ・レコードとして記憶する(ステップ1104)。この例では、ステップ1104は、メタデータ・データベース内のメタデータ・レコードを管理するように動作することができるデータストア・マネージャ1140によって実行することができる。メタデータ・データベースは、カラムナ(columnar)・フォーマットまたは行ベースのフォーマットなどの特定のデータ・ストレージ・フォーマットに従うデータストアとすることができる。この例示的な例では、カラムナ・データベースをインデックス・サポートと共に使用することができ、到来データ・レコードに対して生成された情報が同じ行に記憶される。図示のように、データストア・マネージャ1140は、到来データ・レコードに類似したデータ・レコードの検索を実行してから下流の分析を行うことによって、効率を改善することができる。この例示的な例では、予備検索は、たとえばElasticSearch(R)またはSOLR(R)検索エンジンなどの任意の検索エンジンに基づき得る。
【0135】
例示的な例では、一括照合サービス1150はステップ1106~1116を実行する。一括照合サービス1150は、コンテナ化された環境にデプロイされるスケーラブルなSpark(R)ベースの照合エンジンとすることができる。
【0136】
このプロセスは、到来データ・レコードから生成されたバケット・ハッシュと一致するバケット・ハッシュを含むメタデータ・レコードをメタデータ・データベース内で検索して、候補メタデータ・レコードを識別する(ステップ1106)。ステップ1106において、候補メタデータ・レコードは、対応するデータ・レコードのメタデータを含む。たとえば、候補メタデータ・レコードは、到来データ・レコードから生成されたバケット・ハッシュおよび比較情報と比較することができるバケット・ハッシュおよび比較情報を含む。
【0137】
このプロセスは、候補メタデータ・レコード内の比較情報を到来データ・レコードから生成された比較情報と比較する(ステップ1108)。この例示的な例では、データ・レコードの候補の比較情報と、到来データ・レコードから生成された比較情報との間でペアごとの比較を実施することができる。比較を形成するために、到来データ・レコードの比較情報とメタデータ・レコードの比較情報とを比較することができる。
【0138】
このプロセスは、比較に基づいて比較スコアを生成する(ステップ1110)。次いで、このプロセスは、スコアを閾値のセットと比較する(ステップ1112)。この例示的な例では、ステップ1112における閾値は、事前定義された閾値とすることができる。この閾値は、システム・レベルで定義される設定可能な値とすることができる。閾値の最適値は、データ・スチュワードによる様々な試行およびテストに基づいて選択することができる。
【0139】
この比較により、比較スコアが事前定義された閾値を満たすかまたは超える候補メタデータ・レコードは、候補メタデータ・レコードに対応するデータ・レコードを処理中の到来データ・レコードとリンクする目的で一致と見なすことができる。このプロセスは、一致として識別された候補メタデータ・レコードを使用して一致するデータ・レコードのエンティティ・メンバーシップの一意の識別子のセットを識別する(ステップ1114)。
【0140】
次いで、このプロセスは、処理中の到来データ・レコードのメタデータ・レコードを生成する(ステップ1116)。ステップ1116において、メタデータ・レコードは、到来データ・レコードから生成されたバケット・ハッシュおよび比較情報を含む。さらに、このメタデータ・レコードはエンティティ・メンバーシップの一意の識別子も含み、この一意の識別子は、比較から一致すると識別された候補メタデータ・レコード内の一意の識別子と同じ識別子である。メタデータ・レコードは、到来データ・レコードのソースを識別するソース識別子を含むこともできる。このソース識別子は、ソースからデータ・レコードを取り出すために使用される情報とすることができる。
【0141】
このプロセスは、到来データ・レコードのメタデータ・レコードをメタデータ・データベースに記憶する(ステップ1118)。その後、このプロセスは終了する。このステップは、データストア・マネージャ1140によって実行することができる。
【0142】
図示した異なる実施形態におけるフローチャートおよびブロック図は、例示的な実施形態における装置および方法のいくつかの可能な実装のアーキテクチャ、機能、および動作を示している。この点に関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、機能、または動作もしくはステップの一部分のうちの少なくとも1つを表し得る。たとえば、ブロックのうちの1つまたは複数は、プログラム・コード、ハードウェア、またはプログラム・コードおよびハードウェアの組み合わせとして実装することができる。ハードウェアで実装される場合、ハードウェアは、たとえば、フローチャートまたはブロック図の1つまたは複数の動作を実行するように製造または構成される集積回路の形を取り得る。プログラム・コードおよびハードウェアの組み合わせとして実装される場合、実装はファームウェアの形を取り得る。フローチャートまたはブロック図の各ブロックは、様々な動作を実行する専用ハードウェア・システム、または専用ハードウェアと専用ハードウェアによって実行されるプログラム・コードとの組み合わせを使用して実装することができる。
【0143】
例示的な実装のいくつかの代替の実装では、ブロックに示した1つまたは複数の機能は、図示した順序以外で行われ得る。たとえば、いくつかのケースでは、関与する機能に応じて、連続して示した2つのブロックは実質的に同時に実行することができ、またはそれらのブロックは場合により逆の順序で実行され得る。また、フローチャートまたはブロック図に示すブロックに加えて、他のブロックを追加することもできる。
【0144】
ここで
図12を参照すると、例示的な実施形態によるデータ処理システムのブロック図が示されている。データ処理システム1200は、
図1のサーバ・コンピュータ104、サーバ・コンピュータ106、およびクライアント・デバイス110を実装するために使用することができる。データ処理システム1200はまた、コンピュータ・システム412を実装するために使用することができる。この例示的な例では、データ処理システム1200は、プロセッサ・ユニット1204、メモリ1206、永続ストレージ1208、通信ユニット1210、入力/出力(I/O:input/output)ユニット1212、およびディスプレイ1214の間の通信を提供する通信フレームワーク1202を含む。この例では、通信フレームワーク1202はバス・システムの形態を取る。
【0145】
プロセッサ・ユニット1204は、メモリ1206にロードすることができるソフトウェアの命令を実行する役割を果たす。プロセッサ・ユニット1204は、1つまたは複数のプロセッサを含む。たとえば、プロセッサ・ユニット1204は、マルチコア・プロセッサ、中央処理装置(CPU:central processing unit)、グラフィック処理装置(GPU:graphics processing unit)、物理演算ユニット(PPU:physics processing unit)、デジタル・シグナル・プロセッサ(DSP:digital signal processor)、ネットワーク・プロセッサ、または他の何らかの適切なタイプのプロセッサのうちの少なくとも1つから選択することができる。さらに、プロセッサ・ユニット1204は、単一のチップ上にメイン・プロセッサが二次プロセッサと共に存在する1つまたは複数の異種プロセッサ・システムを使用して実装され得る。他の例示的な例として、プロセッサ・ユニット1204は、単一のチップ上に同じタイプの複数のプロセッサを含む対称マルチプロセッサ・システムとすることができる。
【0146】
メモリ1206および永続ストレージ1208は、ストレージ・デバイス1216の例である。ストレージ・デバイスは、一時的に、もしくは永続的に、または一時的かつ永続的に、データ、関数形式のプログラム・コード、または他の適切な情報のうちの少なくとも1つなどであるがこれらに限定されない情報を記憶することが可能な任意のハードウェアである。ストレージ・デバイス1216は、これらの例示的な例ではコンピュータ可読ストレージ・デバイスとも呼ばれ得る。メモリ1206は、これらの例では、たとえば、ランダム・アクセス・メモリまたは他の任意の適切な揮発性もしくは不揮発性ストレージ・デバイスとすることができる。永続ストレージ1208は、特定の実装に応じて、様々な形態を取り得る。
【0147】
たとえば、永続ストレージ1208は、1つまたは複数のコンポーネントまたはデバイスを含み得る。たとえば、永続ストレージ1208は、ハード・ドライブ、ソリッド・ステート・ドライブ(SSD:solid-state drive)、フラッシュ・メモリ、書き換え可能な光ディスク、書き換え可能な磁気テープ、またはこれらの任意の組み合わせとすることができる。永続ストレージ1208によって使用される媒体も取り外し可能にすることができる。たとえば、取り外し可能なハード・ドライブを永続ストレージ1208に使用することができる。
【0148】
通信ユニット1210は、これらの例示的な例では、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例示的な例では、通信ユニット1210はネットワーク・インターフェース・カードである。
【0149】
入力/出力ユニット1212は、データ処理システム1200に接続することができる他のデバイスとのデータの入力および出力を可能にする。たとえば、入力/出力ユニット1212は、キーボード、マウス、または他の何らかの適切な入力デバイスのうちの少なくとも1つを介したユーザ入力のための接続を提供し得る。さらに、入力/出力ユニット1212は、出力をプリンタに送り得る。ディスプレイ1214は、情報をユーザに表示するメカニズムを提供する。
【0150】
オペレーティング・システム、アプリケーション、またはプログラムのうちの少なくとも1つに関する命令は、通信フレームワーク1202を介してプロセッサ・ユニット1204と通信するストレージ・デバイス1216に配置することができる。異なる実施形態のプロセスは、メモリ1206などのメモリに配置されるコンピュータ実装命令を使用して、プロセッサ・ユニット1204によって実行することができる。
【0151】
これらの命令は、プロセッサ・ユニット1204内のプロセッサで読み取って実行することができるプログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。異なる実施形態におけるプログラム・コードは、メモリ1206または永続ストレージ1208など、異なる物理記憶媒体またはコンピュータ可読記憶媒体上に具現化することができる。
【0152】
プログラム・コード1218は、選択的に取り外し可能なコンピュータ可読媒体1220上に関数形式で配置され、プロセッサ・ユニット1204による実行のためにデータ処理システム1200にロードまたは転送することができる。プログラム・コード1218およびコンピュータ可読媒体1220は、これらの例示的な例ではコンピュータ・プログラム製品1222を形成する。例示的な例では、コンピュータ可読媒体1220は、コンピュータ可読記憶媒体1224である。
【0153】
これらの例示的な例では、コンピュータ可読記憶媒体1224は、プログラム・コード1218を伝播または送信する媒体ではなく、プログラム・コード1218を記憶するために使用される物理的なまたは有形のストレージ・デバイスである。コンピュータ可読記憶媒体1224は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
【0154】
あるいは、プログラム・コード1218は、コンピュータ可読信号媒体を使用してデータ処理システム1200に転送することができる。コンピュータ可読信号媒体は信号であり、たとえば、プログラム・コード1218を含む伝播されるデータ信号とすることができる。たとえば、コンピュータ可読信号媒体は、電磁信号、光信号、または他の任意の適切なタイプの信号のうちの少なくとも1つとすることができる。これらの信号は、無線接続、光ファイバ・ケーブル、同軸ケーブル、ワイヤ、または他の任意の適切なタイプの接続などの接続を介して伝送することができる。
【0155】
さらに、本明細書で使用する場合、「コンピュータ可読媒体1220」は、単数または複数にすることができる。たとえば、プログラム・コード1218は、単一のストレージ・デバイスまたはシステムの形態でコンピュータ可読媒体1220に配置することができる。他の例では、プログラム・コード1218は、複数のデータ処理システムに分散されたコンピュータ可読媒体1220に配置することができる。換言すれば、プログラム・コード1218内の一部の命令を1つのデータ処理システムに配置することができ、プログラム・コード1218内の他の命令を1つのデータ処理システムに配置することができる。たとえば、プログラム・コード1218の一部分をサーバ・コンピュータのコンピュータ可読媒体1220に配置することができ、プログラム・コード1218の他の部分をクライアント・コンピュータのセットに配置されたコンピュータ可読媒体1220に配置することができる。
【0156】
データ処理システム1200に関して示した様々なコンポーネントは、様々な実施形態を実装することができる方法にアーキテクチャ上の制限を与えることを意図したものではない。いくつかの例示的な例では、コンポーネントのうちの1つまたは複数は、他のコンポーネントに組み込まれるか、または別の方法でその一部分を形成し得る。たとえば、メモリ1206またはその一部分は、いくつかの例示的な例ではプロセッサ・ユニット1204に組み込まれ得る。異なる例示的な実施形態は、データ処理システム1200について示したコンポーネントに加えたまたはそれらの代わりのコンポーネントを含むデータ処理システムで実装することができる。
図12に示した他のコンポーネントは、図示した例示的な例から変更することができる。異なる実施形態は、プログラム・コード1218を実行することが可能な任意のハードウェア・デバイスまたはシステムを使用して実装することができる。
【0157】
したがって、本発明の例示的な実施形態は、情報を管理するためのコンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品を提供する。1つの例示的な例では、コンピュータ・システムによって、データ・レコードのバケット・ハッシュのセットおよび比較情報が識別される。バケット・ハッシュのセットは比較情報から生成され、バケット・ハッシュのセットおよび比較情報はメタデータ・レコードを形成する。コンピュータ・システムによって、バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードが識別され、いくつかの候補メタデータ・レコードは候補バケット・ハッシュのセットおよび候補比較情報を含む。コンピュータ・システムによって、メタデータ・レコード内の比較情報といくつかの候補メタデータ・レコード内の候補比較情報との比較からデータ・レコードのエンティティ・メンバーシップが識別される。
【0158】
メタデータ・データベース内のメタデータ・レコードにより、データ・レコードを比較してデータ・レコードが一致するか否かを判定する際の検索の高速化またはデータベース・アクセスの削減のうちの少なくとも1つが可能になる。例示的な例では、メタデータ・レコードはバケット・ハッシュおよび比較情報を含む。さらに、メタデータ・レコードは、エンティティ・メンバーシップ情報を含むこともできる。その結果、検索を実行して、処理中のメタデータ・レコードと一致するバケット・ハッシュを有するメタデータ・レコードを識別することができる。返されるメタデータ・レコードは、比較用の候補メタデータ・レコードである。例示的な例では、これらのメタデータ・レコードは比較情報を含むこともできる。その結果、比較情報を取得するために別の検索を実行することなく、最初の検索で既に返されている結果を用いて比較を行うことができる。さらに、一致が識別されると、処理中のメタデータ・レコードまたは既に返されている候補メタデータ・レコードに対して、別の検索を形成することなく、メタデータ・レコードをリンクするための更新を実行することができる。
【0159】
さらに、例示的な例は、データ・レコードを特定できる速度を高めるために、ソース識別子およびソース・レコード識別子などの情報をメタデータ・レコードに含めることもできる。その結果、検索回数が削減され、多くのデータ・レコードを処理するために必要な時間を節約することもできる。
【0160】
様々な例示的な実施形態の説明は、例示および説明の目的で提示しており、網羅的であることも、開示した形態の実施形態に限定されることも意図するものではない。様々な例示的な例は、アクションまたは動作を実行するコンポーネントについて説明している。例示的な実施形態では、コンポーネントは、説明したアクションまたは動作を実行するように構成することができる。たとえば、コンポーネントは、コンポーネントによって実行されるものとして例示的な例で説明したアクションまたは動作を実行する能力をコンポーネントに提供する構造の構成または設計を有することができる。さらに、用語「含む(includes)」、「含む(including)」、「有する(has)」、「含む(contains)」、およびそれらの変形を本明細書で使用する限りにおいて、そのような用語は、追加の要素または他の要素を除外することなく、オープンな移行語として、「備える(comprises)」という用語と同様に包括的であることを意図している。
【0161】
本発明の様々な実施形態の説明は例示の目的で提示しているが、網羅的であることも、開示した実施形態に限定されることも意図したものではない。全ての実施形態が、例示的な例に記載した全ての特徴を含むわけではない。さらに、異なる例示的な実施形態は、他の例示的な実施形態と比較して、異なる特徴を提供し得る。記載した実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用する用語は、実施形態の原理、実際の適用、もしくは市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示した実施形態を理解できるようにするために選択している。
【手続補正書】
【提出日】2023-05-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
情報を管理するための方法であって、
コンピュータ・システムによって、データ・レコードのバケット・ハッシュのセットおよび比較情報を識別することであって、前記バケット・ハッシュのセットは前記比較情報から生成され、前記バケット・ハッシュのセットおよび前記比較情報はメタデータ・レコードを形成する、前記識別することと、
前記コンピュータ・システムによって、前記バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードを識別することであって、前記いくつかの候補メタデータ・レコードは候補バケット・ハッシュのセットおよび候補比較情報を含む、前記識別することと、
前記コンピュータ・システムによって、前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との比較から前記データ・レコードのエンティティ・メンバーシップを決定することと、
を含む、方法。
【請求項2】
前記コンピュータ・システムによって、前記バケット・ハッシュのセットおよび前記比較情報を使用して前記データ・レコードのメタデータ・レコードを作成することと、
前記コンピュータ・システムによって、前記データ・レコードに対して決定された前記エンティティ・メンバーシップで前記メタデータ・レコードを更新することと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記コンピュータ・システムによって、前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との前記比較から前記メタデータ・レコードの前記エンティティ・メンバーシップを決定することは、
前記コンピュータ・システムによって、比較を形成するために前記メタデータ・レコード内の前記比較情報を前記いくつかの候補メタデータ・レコード内の前記候補比較情報と比較することと、
前記コンピュータ・システムによって、前記比較から比較スコアのセットを生成することと、
前記コンピュータ・システムによって、前記比較スコアのセットを閾値のセットと比較することに基づいて前記エンティティ・メンバーシップを決定することと、
を含む、請求項1に記載の方法。
【請求項4】
前記コンピュータ・システムによって、要求元から検索要求を受信することと、
前記コンピュータ・システムによって、前記要求元からの前記検索要求で受信された検索項目を使用して検索バケット・ハッシュのセットおよび検索比較情報を作成することと、
前記コンピュータ・システムによって、前記検索バケット・ハッシュのセットを使用して前記メタデータ・データベース内で候補メタデータ・レコードのセットを検索することと、
前記コンピュータ・システムによって、前記候補メタデータ・レコードのセット内の前記候補比較情報が前記検索比較情報にどれほど類似しているかを示す前記候補メタデータ・レコードのセットの比較スコアのセットに基づいて前記候補メタデータ・レコードのセットから候補メタデータ・レコードを選択することと、
前記コンピュータ・システムによって、前記候補メタデータ・レコード内のソース識別子を使用して前記候補メタデータ・レコードに対応する識別されたデータ・レコードを前記要求元に返すことと、
をさらに含む、請求項1に記載の方法。
【請求項5】
単一のデータ・レコードの前記バケット・ハッシュのセット内に複数のバケット・ハッシュを生成することができ、前記複数のバケット・ハッシュのそれぞれは前記データ・レコード内の属性の一部分のみを表す、請求項1に記載の方法。
【請求項6】
前記比較情報は、前記データ・レコード内の情報を表す比較文字列またはテキスト列のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項7】
前記バケット・ハッシュのセットは、名、姓、住所、通りの名前、州、郵便番号、居住都市、電話番号、職業、会社名、生年月日、口座番号
、会社の電話番号、会社の住所、または納税者番号のうちの少なくとも1つに基づく、請求項1に記載の方法。
【請求項8】
前記メタデータ・レコードは、エンティティ・メンバーシップ、顧客識別子、レコード・タイプ、確率的自己スコア、またはタイム・スタンプのうちの少なくとも1つをさらに含む、請求項1に記載の方法。
【請求項9】
前記データ・レコードの前記バケット・ハッシュのセットおよび前記比較情報はインデックス作成サービスから受信される、請求項1に記載の方法。
【請求項10】
コンピュータ・システムと、
前記コンピュータ・システムに記憶されたメタデータ・データベースと
を備え、
前記メタデータ・データベース内のデータ・レコードはそれぞれ、バケット・ハッシュのセット、比較情報、およびエンティティ・メンバーシップを含み、データ・レコードの前記バケット・ハッシュのセットおよび前記比較情報を識別することであって、前記バケット・ハッシュのセットは前記比較情報から生成され、前記バケット・ハッシュのセットおよび前記比較情報はメタデータ・レコードを形成する、前記識別することと、
前記バケット・ハッシュのセットを使用してメタデータ・データベース内のいくつかの候補メタデータ・レコードを識別することであって、前記いくつかの候補メタデータ・レコードは候補バケット・ハッシュおよび候補比較情報を含む、前記識別することと、
前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との比較から前記データ・レコードのエンティティ・メンバーシップを決定することと、を実行する、情報管理システム。
【請求項11】
前記コンピュータ・システムは、前記バケット・ハッシュのセットおよび前記比較情報を使用して前記データ・レコードのメタデータ・レコードを作成することと、前記データ・レコードに対して決定された前記エンティティ・メンバーシップで前記メタデータ・レコードを更新することと、を実行する、請求項
10に記載の情報管理システム。
【請求項12】
前記メタデータ・レコード内の前記比較情報と前記いくつかの候補メタデータ・レコード内の前記候補比較情報との前記比較から前記メタデータ・レコードの前記エンティティ・メンバーシップを決定する際に、前記コンピュータ・システムは、比較を形成するために前記メタデータ・レコード内の前記比較情報を前記いくつかの候補メタデータ・レコード内の前記候補比較情報と比較することと、前記比較から比較スコアのセットを生成することと、前記比較スコアのセットを閾値のセットと比較することに基づいて前記エンティティ・メンバーシップを決定することと、を実行する、請求項10に記載の情報管理システム。
【請求項13】
前記コンピュータ・システムは、要求元から検索要求を受信することと、前記要求元からの前記検索要求で受信された検索項目を使用して検索バケット・ハッシュのセットおよび検索比較情報を作成することと、前記検索バケット・ハッシュのセットを使用して前記メタデータ・データベース内で候補メタデータ・レコードのセットを検索することと、前記候補メタデータ・レコードのセット内の前記候補比較情報が前記検索比較情報にどれほど類似しているかを示す前記候補メタデータ・レコードのセットの比較スコアのセットに基づいて前記候補メタデータ・レコードのセットから候補メタデータ・レコードを選択することと、前記メタデータ・レコード内のソース識別子を使用して前記候補メタデータ・レコードに対応する識別されたデータ・レコードを前記要求元に返すことと、を実行する、請求項10に記載の情報管理システム。
【請求項14】
単一のデータ・レコードの前記バケット・ハッシュのセット内に複数のバケット・ハッシュを生成することができ、前記複数のバケット・ハッシュのそれぞれは前記データ・レコード内の属性の一部分のみを表す、請求項10に記載の情報管理システム。
【請求項15】
前記比較情報は、情報を表す比較文字列またはテキスト列のうちの少なくとも1つを含む、請求項10に記載の情報管理システム。
【請求項16】
前記バケット・ハッシュのセットは、名、姓、住所、通りの名前、州、郵便番号、居住都市、電話番号、職業、会社名、生年月日、口座番号、会社の電話番号、会社の住所、または納税者番号のうちの少なくとも1つに基づく、請求項10に記載の情報管理システム。
【請求項17】
前記メタデータ・レコードは、エンティティ・メンバーシップ、顧客識別子、レコード・タイプ、確率的自己スコア、またはタイム・スタンプのうちの少なくとも1つをさらに含む、請求項10に記載の情報管理システム。
【請求項18】
前記データ・レコードの前記バケット・ハッシュのセットおよび前記比較情報はインデックス作成サービスから受信される、請求項10に記載の情報管理システム。
【請求項19】
請求項1~9の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム。
【請求項20】
請求項19に記載の前記コンピュータ・プログラムを、コンピュータ可読記憶媒体に記憶した、記憶媒体。
【国際調査報告】