(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-25
(54)【発明の名称】サブグラフを用いた情報照合
(51)【国際特許分類】
G06F 16/903 20190101AFI20240118BHJP
【FI】
G06F16/903
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023542590
(86)(22)【出願日】2022-01-11
(85)【翻訳文提出日】2023-07-12
(86)【国際出願番号】 CN2022071202
(87)【国際公開番号】W WO2022152103
(87)【国際公開日】2022-07-21
(32)【優先日】2021-01-13
(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)【復代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】カティービー、モハマド
(72)【発明者】
【氏名】ファルチ、エイタン、ダニエル
(72)【発明者】
【氏名】オーバーホーファー、マーティン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175HB03
5B175KA12
(57)【要約】
方法は、情報を照合する。第1のサブグラフの第1の中心ノードと第2のサブグラフの第2の中心ノードとが特定される。サブグラフの両方から隣接ノードを有する隣接ノードのグループが特定される。グループ内の隣接ノードのグループは同じノードタイプの隣接ノードを有する。各クラスタ内の隣接ノードの最一致ノードペアが特定される。各最一致ノードペアの隣接ノードは、第1のサブグラフから第1のノードと第2のサブグラフから第2のノードとを含む。第1および第2の中心ノードと、最一致ノードペアの1つまたは複数とが用いられた中心ノード間の全体距離に基づいて、中心ノードが一致するかどうかが決定される。
【特許請求の範囲】
【請求項1】
情報を照合するための方法であって、前記方法は、
コンピュータシステムによって、第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定することと、
前記コンピュータシステムによって、前記第1のサブグラフと前記第2のサブグラフとの両方から隣接ノードを有する前記隣接ノードのグループを特定することであって、前記隣接ノードの前記グループ内の前記隣接ノードのグループは、同じノードタイプの前記隣接ノードを有する、特定することと、
前記コンピュータシステムによって、最一致ノードペアのセットを形成するために、前記隣接ノードの各グループの前記隣接ノードの最一致ノードペアを特定することであって、各最一致ノードペアは、前記第1のサブグラフから第1の隣接ノードと前記第2のサブグラフから第2の隣接ノードとを含む、特定することと、
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することと、
を含む方法。
【請求項2】
前記コンピュータシステムによって、クラスタのセット内の各クラスタが前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有するように、前記隣接ノードの各グループからクラスタの前記セットを作成することをさらに含み、前記コンピュータシステムによって、最一致ノードペアの前記セットを形成するために、前記隣接ノードの各グループの前記隣接ノードの前記最一致ノードペアを特定することであって、前記最一致ノードペアの前記隣接ノードは、前記第1のサブグラフから前記第1の隣接ノードと前記第2のサブグラフから前記第2の隣接ノードとを含む、特定することは、
前記コンピュータシステムによって、最一致ノードペアの前記セットを形成するためにクラスタの前記セット内の各クラスタの前記隣接ノードの前記最一致ノードペアを特定することであって、各最一致ノードペアは前記第1のサブグラフから前記第1の隣接ノードと前記第2のサブグラフから前記第2の隣接ノードとを含む、特定すること、
を含む、請求項1に記載の方法。
【請求項3】
前記コンピュータシステムによって、前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有する前記隣接ノードの前記グループを特定することであって、前記隣接ノードの前記グループ内の前記隣接ノードの前記グループは、前記同じノードタイプの前記隣接ノードを有する、特定することは、
前記コンピュータシステムによって、前記隣接ノードのノードタイプに基づいて、各サブグラフから前記隣接ノードを初期グループに配置することと、
前記コンピュータシステムによって、前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有する前記隣接ノードの前記グループを形成するために、前記隣接ノードの前記第1のサブグラフの1つと前記隣接ノードの前記第2のサブグラフの1つとの両方から前記隣接ノードを有する前記初期グループ内の各初期グループを選択することと、
を含む請求項1に記載の方法。
【請求項4】
前記コンピュータシステムによって、クラスタの前記セット内の各クラスタが前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有するように、前記隣接ノードの各グループからクラスタの前記セットを作成することは、
前記コンピュータシステムによって、前記隣接ノードの前記グループ内の前記隣接ノードの各グループ内に候補クラスタを作成することと、
前記コンピュータシステムによって、クラスタの前記セットを形成するために、前記隣接ノードの前記第1のサブグラフと前記隣接ノードの前記第2のサブグラフとの両方から隣接ノードを有する前記候補クラスタ内の各クラスタを選択することと、
を含む請求項2に記載の方法。
【請求項5】
前記コンピュータシステムによって、クラスタの前記セット内の各クラスタの前記最一致ノードペアを特定することは、
前記コンピュータシステムによって、比較される前記隣接ノード、比較される前記隣接ノードのリンク、および比較される前記隣接ノードの深さに基づいて、クラスタ内で比較される前記隣接ノードのための隣接距離を決定することと、
前記コンピュータシステムにより、クラスタの前記セットについての最一致ノードペアの前記セットを形成するために、最短の隣接距離を有する前記クラスタ内の2つのノードとして、クラスタの前記セット内の各クラスタの前記最一致ノードペアを特定することと、
を含む請求項2に記載の方法。
【請求項6】
比較される前記隣接ノード、比較される前記隣接ノードのリンク、および比較される前記隣接ノードの深さに基づく前記クラスタ内の前記隣接ノードのための前記隣接距離は、以下の式、
ここで、distance(x、y)は前記クラスタ内のノードxとノードyと間の距離であり、depth(x、y)は前記ノードxの第1の深さと前記ノードyの第2の深さの平均値であり、constは0より大きく1以下の定数値である、
および、
ここで、distance(x、y)は前記クラスタ内の前記ノードxと前記ノードyとの間の前記距離であり、depth(x、y)は前記ノードxの前記第1の深さと前記ノードyの前記第2の深さの平均値であり、constは0より大きく1以下の前記定数値である、
のいずれかを用いて計算される請求項5に記載の方法。
【請求項7】
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することは、
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノード、およびクラスタの前記セットの最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとの間の全体距離(overall distance)を、以下のように
ここで、distance(CenterNode
1、CenterNode
2)は、前記第1の中心ノードと前記第2の中心ノードとの間の距離であり、dH(x、y)は、前記最一致ノードペアにおける隣接ノードxと隣接ノードyとの間の距離であり、Mは前記グループ内の最一致隣接ノードペアについてのノードタイプの数である、決定することと、
前記コンピュータシステムによって、前記第1の中心ノードと前記第2の中心ノードとの間の計算された前記全体距離に基づいて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することと、
を含む、請求項2に記載の方法。
【請求項8】
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することは、
前記コンピュータシステムによって、前記第1の中心ノードと前記第2の中心ノードとの比較特徴を決定するために、前記第1の中心ノードと前記第2の中心ノードとを比較することと、
前記コンピュータシステムによって、クラスタの前記セット内の各クラスタの前記隣接ノード間の最低距離から距離特徴を決定することと、
前記コンピュータシステムによって、前記比較特徴と前記距離特徴とを用いて、前記第1の中心ノードと前記第2の中心ノードとの間の全体距離を決定することと、
前記コンピュータシステムによって、前記全体距離が、前記第1の中心ノードと前記第2の中心ノードとが一致するための閾値内であるかを決定することと、
を含む、請求項2に記載の方法。
【請求項9】
前記第1の中心ノードと前記第2の中心ノードとの間の前記全体距離は、以下のように
ここで、cv(i)は係数ベクトルであり、fv(i)は前記比較特徴と前記距離特徴とを含む特徴ベクトルであり、max(cv)は前記係数ベクトルの要素の中で最大値を持つものであり、min(cv)は前記係数ベクトルの前記要素の中で最小値を持つものであり、iはインデックス値であり、nは前記特徴ベクトルの要素数である、決定される請求項8に記載の方法。
【請求項10】
情報を照合する方法であって、前記方法は、
コンピュータシステムによって、2つのサブグラフの2つの中心ノードの隣接ノードをノードタイプ別にグループに割り当てることであって、前記グループは前記2つのサブグラフの両方から隣接ノードを含む、割り当てることと、
前記コンピュータシステムによって、前記隣接ノードの前記グループに対して前記隣接ノードの最一致ノードペアのセットを形成するために、ハウスドルフ距離を用いて、隣接ノードの各グループに対して前記隣接ノードの最一致ノードペアを選択することであって、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する、選択することと、
前記コンピュータシステムによって、前記2つの中心ノードと前記隣接ノードの最一致ノードペアの前記セットとを用いて、前記2つの中心ノード間の全体距離を決定することであって、前記2つの中心ノード間の前記全体距離は、前記2つの中心ノードの各々に対する最一致ノードペアの前記セットが考慮される、決定することと、
前記2つの中心ノード間の前記全体距離に基づいて、前記2つの中心ノード間に一致が存在するかどうかを決定することと、
を含む方法。
【請求項11】
前記コンピュータシステムによって、クラスタのセットを形成するために、前記グループ内の同じノードタイプの隣接ノードをクラスタに分類することであって、クラスタの前記セット内のクラスタは、前記2つのサブグラフの各々から少なくとも1つの隣接ノードを有する、クラスタに分類すること、
をさらに含み、
前記コンピュータシステムによって、前記隣接ノードの前記グループに対して前記隣接ノードの最一致ノードペアの前記セットを形成するために、前記ハウスドルフ距離を用いて、前記隣接ノードの各グループに対して前記隣接ノードの前記最一致ノードペアを選択することであって、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する、選択することは、
前記コンピュータシステムによって、クラスタの前記セットに対して前記隣接ノードの最一致ノードペアの前記セットを形成するために、前記ハウスドルフ距離を用いて、各クラスタに対して前記隣接ノードの前記最一致ノードペアを選択することであって、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する、選択すること、
を含む請求項10に記載の方法。
【請求項12】
コンピュータシステムによって、前記2つのサブグラフの前記2つの中心ノードの前記隣接ノードを前記ノードタイプ別に前記グループに割り当てることであって、前記グループは前記2つのサブグラフの両方から前記隣接ノードを含む、割り当てることは、
前記コンピュータシステムによって、前記隣接ノードの前記ノードタイプに基づいて、前記2つの各サブグラフから前記隣接ノードを初期グループに配置することと、
前記コンピュータシステムによって、前記グループを形成するために、前記2つのサブグラフの両方から前記隣接ノードを有する前記初期グループ内の各初期グループを選択することと、
を含む請求項11に記載の方法。
【請求項13】
第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定し、
前記第1のサブグラフと前記第2のサブグラフとの両方から隣接ノードを有する前記隣接ノードのグループを特定することであって、前記隣接ノードの前記グループ内の前記隣接ノードのグループは、同じノードタイプの前記隣接ノードを有する、特定し、
最一致ノードペアのセットを形成するために、前記隣接ノードの各グループの前記隣接ノードの最一致ノードペアを特定することであって、各最一致ノードペアは、前記第1のサブグラフから第1の隣接ノードと前記第2のサブグラフから第2の隣接ノードとを含む、特定し、
前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定する
プログラム命令を実行するコンピュータシステム
を含む情報管理システム。
【請求項14】
前記コンピュータシステムは、
クラスタのセット内の各クラスタが前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有するように、前記隣接ノードの各グループからクラスタの前記セットを作成するプログラム命令を実行し、最一致ノードペアのセットを形成するために、前記隣接ノードの各グループの前記隣接ノードの前記最一致ノードペアを特定する際に、前記最一致ノードペアの前記隣接ノードは、前記第1のサブグラフから前記第1の隣接ノードと前記第2のサブグラフから前記第2の隣接ノードとを含み、前記コンピュータシステムは、
最一致ノードペアの前記セットを形成するためにクラスタの前記セット内の各クラスタの前記隣接ノードの前記最一致ノードペアを特定することであって、各最一致ノードペアは前記第1のサブグラフから前記第1の隣接ノードと前記第2のサブグラフから前記第2の隣接ノードとを含む、特定するプログラム命令を実行する請求項13に記載の情報管理システム。
【請求項15】
前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有する前記隣接ノードの前記グループを特定する際に、前記隣接ノードの前記グループ内の前記隣接ノードの前記グループは、前記同じノードタイプの前記隣接ノードを有し、前記コンピュータシステムは、
前記隣接ノードのノードタイプに基づいて、各サブグラフから前記隣接ノードを初期グループに配置し、
前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有する前記隣接ノードの前記グループを形成するために、前記隣接ノードの前記第1のサブグラフの1つと前記隣接ノードの前記第2のサブグラフの1つとの両方から前記隣接ノードを有する前記初期グループ内の各初期グループを選択する
プログラム命令を実行する請求項13に記載の情報管理システム。
【請求項16】
クラスタの前記セット内の各クラスタが前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有するように、前記隣接ノードの各グループからクラスタの前記セットを作成する際に、前記コンピュータシステムは、
前記隣接ノードの前記グループ内の前記隣接ノードの各グループ内に候補クラスタを作成し、
クラスタの前記セットを形成するために、前記隣接ノードの前記第1のサブグラフと前記隣接ノードの前記第2のサブグラフとの両方から隣接ノードを有する前記候補クラスタ内の各クラスタを選択する
プログラム命令を実行する請求項14に記載の情報管理システム。
【請求項17】
クラスタの前記セット内の各クラスタの前記最一致ノードペアを特定する際に、前記コンピュータシステムは、
比較される前記隣接ノード、比較される前記隣接ノードのリンク、および比較される前記隣接ノードの深さに基づいて、クラスタ内で比較される前記隣接ノードのための隣接距離を決定し、
クラスタの前記セットについての最一致ノードペアの前記セットを形成するために、最短の隣接距離を有する前記クラスタ内の2つのノードとして、クラスタの前記セット内の各クラスタの前記最一致ノードペアを特定する
プログラム命令を実行する請求項14に記載の情報管理システム。
【請求項18】
比較される前記隣接ノード、比較される前記隣接ノードのリンク、および比較される前記隣接ノードの深さに基づく前記クラスタ内の前記隣接ノードのための前記隣接距離は、以下の式、
ここで、distance(x、y)は前記クラスタ内のノードxとノードyと間の距離であり、depth(x、y)は前記ノードxの第1の深さと前記ノードyの第2の深さの平均値であり、constは0より大きく1以下の定数値である、
および、
ここで、distance(x、y)は前記クラスタ内の前記ノードxと前記ノードyと間の前記距離であり、depth(x、y)は前記ノードxの前記第1の深さと前記ノードyの前記第2の深さの平均値であり、constは0より大きく1以下の前記定数値である、
のいずれかを用いて計算される請求項17に記載の情報管理システム。
【請求項19】
前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定する際に、前記コンピュータシステムは、
前記第1の中心ノード、前記第2の中心ノード、およびクラスタの前記セットの最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとの間の全体距離(overall distance)を、以下のように
ここで、distance(CenterNode
1、CenterNode
2)は、前記第1の中心ノードと前記第2の中心ノードとの間の距離であり、dH(x、y)は、前記最一致ノードペアにおける隣接ノードxと隣接ノードyとの間の距離であり、Mは前記グループ内の最一致隣接ノードペアについてのノードタイプの数である、決定し、
前記第1の中心ノードと前記第2の中心ノードとの間の計算された前記全体距離に基づいて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定する
プログラム命令を実行する請求項14に記載の情報管理システム。
【請求項20】
前記第1の中心ノード、前記第2の中心ノードおよびクラスタの前記セットの最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定する際に、前記コンピュータシステムは、
前記第1の中心ノードと前記第2の中心ノードとの比較特徴を決定するために、前記第1の中心ノードと前記第2の中心ノードとを比較し、
クラスタの前記セット内の各クラスタの隣接ノード間の最低距離から距離特徴を決定し、
前記比較特徴と前記距離特徴とを用いて、前記第1の中心ノードと前記第2の中心ノードとの間の前記距離の間の前記全体距離(overall distance)を決定し、
前記全体距離が、前記第1の中心ノードと前記第2の中心ノードとが一致するための閾値内であるかを決定する
プログラム命令を実行する請求項19に記載の情報管理システム。
【請求項21】
前記第1の中心ノードと前記第2の中心ノードとの間の全体距離は、以下のように
ここで、cv(i)は係数ベクトルであり、fv(i)は前記比較特徴と前記距離特徴とを含む特徴ベクトルであり、max(cv)は前記係数ベクトルの要素の中で最大値を持つものであり、min(cv)は前記係数ベクトルの前記要素の中で最小値を持つものであり、iはインデックス値であり、nは前記特徴ベクトルの要素数である、決定される請求項20に記載の情報管理システム。
【請求項22】
2つのサブグラフの2つの中心ノードの隣接ノードをノードタイプ別にグループに割り当てることであって、前記グループは前記2つのサブグラフの両方から隣接ノードを含み、割り当て、
前記隣接ノードの前記グループに対して前記隣接ノードの最一致ノードペアのセットを形成するために、ハウスドルフ距離を用いて、前記隣接ノードの各グループに対して前記隣接ノードの最一致ノードペアを選択することであって、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する、選択し、
前記2つの中心ノードと前記隣接ノードの最一致ノードペアの前記セットとを用いて、前記2つの中心ノード間の全体距離を決定することであって、前記2つの中心ノード間の全体距離は、前記2つの中心ノードの各々に対する最一致ノードペアの前記セットが考慮され、決定し、
前記2つの中心ノード間の前記全体距離に基づいて、前記2つの中心ノード間に一致が存在するかどうかを決定する
プログラム命令を実行するコンピュータシステムを含む情報管理システム。
【請求項23】
前記コンピュータシステムは、
クラスタのセットを形成するために、前記グループ内の同じノードタイプの隣接ノードをクラスタに分類する前記プログラム命令を実行し、クラスタの前記セット内のクラスタは、前記2つのサブグラフの各々から1つの隣接ノードを少なくとも有し、
前記隣接ノードの前記グループに対して前記隣接ノードの最一致ノードペアの前記セットを形成するために、前記ハウスドルフ距離を用いて、前記隣接ノードの各グループに対して前記隣接ノードの前記最一致ノードペアを選択する際に、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有し、前記コンピュータシステムは、
クラスタの前記セットに対して前記隣接ノードの最一致ノードペアの前記セットを形成するために、前記ハウスドルフ距離を用いて、各クラスタに対して前記隣接ノードの前記最一致ノードペアを選択する前記プログラム命令を実行し、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する
請求項22に記載の情報管理システム。
【請求項24】
前記2つのサブグラフの前記2つの中心ノードの前記隣接ノードを前記ノードタイプ別に前記グループに割り当てる際に、前記グループは前記2つのサブグラフの両方から前記隣接ノードを含み、前記コンピュータシステムは、
前記隣接ノードの前記ノードタイプに基づいて、前記2つのサブグラフの各サブグラフから前記隣接ノードを初期グループに配置し、
前記グループを形成するために、前記2つのサブグラフの両方から前記隣接ノードを有する前記初期グループ内の各初期グループを選択する
前記プログラム命令を実行する請求項22に記載の情報管理システム。
【請求項25】
情報を照合するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、その中に実装されたプログラム命令を有するコンピュータ可読記憶媒体を含み、前記プログラム命令は、コンピュータシステムによって実行可能であり、前記コンピュータに、
前記コンピュータシステムによって、第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定することと、
前記コンピュータシステムによって、前記第1のサブグラフと前記第2のサブグラフとの両方から隣接ノードを有する前記隣接ノードのグループを特定することであって、前記隣接ノードの前記グループ内の前記隣接ノードのグループは、同じノードタイプの前記隣接ノードを有する、特定することと、
前記コンピュータシステムによって、クラスタの前記セットについて最一致ノードペアのセットを形成するために、前記隣接ノードの各グループの前記隣接ノードの最一致ノードペアを特定することであって、前記最一致ノードペアの前記隣接ノードは、前記第1のサブグラフから第1の隣接ノードと前記第2のサブグラフから第2の隣接ノードとを含む、特定することと、
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することと、
を含む方法を実行させるコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、改良されたコンピュータシステムに関し、より具体的には、サブグラフの照合のための方法、装置、システム、およびコンピュータプログラム製品に関する。
【背景技術】
【0002】
企業やその他の組織は、多くのデータソースを有する。これらのデータソースには、個人、組織、サプライヤ、製品、マーケティングプラン、またはその他の種類の項目のレコードが含まれている。これらのレコードは、企業の日常的な取引を処理する複数の業務システムで管理されていることが多い。これらのレコードは、レポートを作成するために分析システムによって移動またはアクセスされる。これらのレポートには、顧客別収益、製品別収益、販売動向、使用レポートまたは他の種類のレポートが含まれる。分析システムでレポートを作成する際、重複したレコードがあると、分析や結果のレポートに不正確さが生じることがある。結果として、レポート要件を満たすために、データ内の重複レコードが特定され、調整される。
【0003】
異なるデータセット内または異なるデータセット間で重複するレコードを識別するために、ソフトウェアマッチングアルゴリズムが使用されてきた。これらのマッチングアルゴリズムは、例えば、決定論的マッチング、ファジー確率的マッチング、および他のタイプのマッチングプロセスを実装する。これらのソフトウェアマッチングアルゴリズムは、重複レコードが存在するかどうかを決定するために、レコードのリレーショナルデータ構造および列データ構造に着目する。比較するレコードの数が増えると、時間やリソースの使用量が飛躍的に増加する可能性がある。
【0004】
従って、上述した問題の少なくとも一部、および他の可能性のある問題を考慮した方法および装置を有することが望まれるであろう。例えば、大量のレコードを照合するのに必要な時間やリソースの量に関する技術的な問題を克服した方法および装置を有することが望ましいであろう。
【発明の概要】
【0005】
本発明の一実施形態によれば、方法は情報を照合する。コンピュータシステムによって、第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとが特定される。コンピュータシステムによって、第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有する隣接ノードのグループが特定される。隣接ノードのグループ内の隣接ノードのグループは、同じノードタイプの隣接ノードを有する。コンピュータシステムによって、クラスタのセット内の最一致ノードペアのセットを形成するために、隣接ノードの各グループの隣接ノードの最一致ノードペアが特定され、各最一致ノードペアは、第1のサブグラフから第1の隣接ノードと第2のサブグラフから第2の隣接ノードとを含む。コンピュータシステムによって、第1の中心ノード、第2の中心ノードおよびクラスタのセット内の最一致ノードペアのセットを用いて、第1の中心ノードと第2の中心ノードとが一致するかどうかを決定する。
【0006】
本発明の別の実施形態によれば、方法は情報を照合する。コンピュータシステムが、2つのサブグラフの2つの中心ノードの隣接ノードをノードタイプ別にグループに割り当て、グループは2つのサブグラフの両方から隣接ノードを含む。コンピュータシステムが、隣接ノードのグループに対して隣接ノードの最一致ノードペアのセットを形成するために、ハウスドルフ距離を用いて、隣接ノードの各グループに対して隣接ノードの最一致ノードペアを選択し、最一致ノードペアのセット内の最一致ノードペアは、2つのサブグラフの各々から隣接ノードを有する。コンピュータシステムが、2つの中心ノードと隣接ノードの最一致ノードペアのセットとを用いて、2つの中心ノード間の全体距離を決定する。2つの中心ノード間の全体距離は、2つの中心ノードの各々に対する最一致ノードペアのセットが考慮される。コンピュータシステムが、2つの中心ノード間の全体距離に基づいて、2つの中心ノード間に一致が存在するかどうかを決定する。
【0007】
本発明のさらに別の実施形態によれば、情報管理システムは、第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定するプログラム命令を実行するコンピュータシステムを含む。コンピュータシステムは、第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有する隣接ノードのグループを特定するプログラム命令を実行する。隣接ノードのグループ内の隣接ノードのグループは、同じノードタイプの隣接ノードを有する。コンピュータシステムは、最一致ノードペアのセットを形成するために、隣接ノードの各グループの隣接ノードの最一致ノードペアを特定するプログラム命令を実行する。各最一致ノードペアは、第1のサブグラフから第1の隣接ノードと第2のサブグラフから第2の隣接ノードとを含む。コンピュータシステムは、第1の中心ノード、第2の中心ノードおよび最一致ノードペアのセットを用いて、第1の中心ノードと第2の中心ノードとが一致するかどうかを決定するプログラム命令を実行する。
【0008】
本発明のさらに別の実施形態によれば、情報管理システムは、2つのサブグラフの2つの中心ノードの隣接ノードをノードタイプ別にグループに割り当てるプログラム命令を実行するコンピュータシステムを含む。グループは2つのサブグラフの両方から隣接ノードを含む。コンピュータシステムは、クラスタのセットに対して隣接ノードの最一致ノードペアのセットを形成するために、ハウスドルフ距離を用いて、隣接ノードの各グループに対して隣接ノードの最一致ノードペアを選択するプログラム命令を実行する。最一致ノードペアのセット内の最一致ノードペアは、2つのサブグラフの各々から隣接ノードを有する。コンピュータシステムは、2つの中心ノードと隣接ノードの最一致ノードペアのセットとを用いて、2つの中心ノード間の全体距離を決定するプログラム命令を実行する。2つの中心ノード間の全体距離は、2つの中心ノードの各々に対する最一致ノードペアのセットが考慮される。コンピュータシステムは、2つの中心ノード間の全体距離に基づいて、2つの中心ノード間に一致が存在するかどうかを決定するプログラム命令を実行する。
【0009】
本発明のさらに別の実施形態によれば、情報を照合するためのコンピュータプログラム製品は、その中に実装されたプログラム命令を有するコンピュータ可読記憶媒体を含んでいる。プログラム命令は、コンピュータシステムによって実行可能であり、コンピュータに、コンピュータシステムによって、第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定することと、コンピュータシステムによって、第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有する隣接ノードのグループを特定することであって、隣接ノードのグループ内の隣接ノードのグループは、同じノードタイプの隣接ノードを有する、特定することと、コンピュータシステムによって、クラスタのセットについて最一致ノードペアのセットを形成するために、隣接ノードの各グループの隣接ノードの最一致ノードペアを特定することであって、最一致ノードペアの隣接ノードは、第1のサブグラフから第1の隣接ノードと第2のサブグラフから第2の隣接ノードとを含む、特定することと、コンピュータシステムによって、第1の中心ノード、第2の中心ノードおよびクラスタのセット内の最一致ノードペアのセットを用いて、第1の中心ノードと第2の中心ノードとが一致するかどうかを決定することを含む方法を実行させる。
【0010】
したがって、異なる例示的な実施形態は、サブグラフを比較しない現在の技術と比較して、情報の断片が一致しているかどうかを決定する際に使用される時間またはリソースの少なくとも一方を削減することができる。さらに、異なる例示的な実施例は、少なくとも1次マッチングまたは1次2次マッチングにおいて、情報の断片を照合する際の精度を高めることもできる。
【図面の簡単な説明】
【0011】
【
図1】例示的な実施形態が実装され得るデータ処理システムのネットワークを示す絵図である。
【
図2】例示的な実施形態による
図1のクラウドコンピューティング環境50によって提供される機能抽象化レイヤのセットである。
【
図3】例示的な実施形態が実装され得るデータ処理システムのネットワークを示す絵図である。
【
図4】例示的な実施形態による情報環境のブロック図である。
【
図5】例示的な実施形態による隣接ノードがグループに割り当てられた2つのサブグラフの説明図である。
【
図6】例示的な実施形態による隣接ノードのグループの説明図である。
【
図7】例示的な実施形態による、隣接するエンティティのグループから作成されるクラスタの説明図である。
【
図8】例示的な実施形態による隣接する情報の断片を示す説明図である。
【
図9】例示的な実施形態による情報を管理するためのプロセスのフローチャートである。
【
図10】例示的な実施形態による中心ノードの照合のための処理のフローチャートである。
【
図11】例示的な実施形態による隣接ノードのグループを特定するための処理のフローチャートである。
【
図12】例示的な実施形態によるクラスタのセットを作成するためのフローチャートである。
【
図13】例示的な実施形態による隣接ノードの最一致ペアを特定するためのプロセスのフローチャートである。
【
図14】例示的な実施形態による第1のサブ中心ノードグラフと第2の中心ノードとが一致するかどうかを決定するための処理のフローチャートである。
【
図15】例示的な実施形態による第1の中心ノードと第2の中心ノードとが一致するかどうかを決定するための処理のフローチャートである。
【
図16】例示的な実施形態によるサブグラフを照合するためのプロセスのフローチャートである。
【
図17】例示的な実施形態による隣接ノードをグループに割り当てるための処理のフローチャートである。
【
図18】例示的な実施形態による各クラスタの隣接ノードの最一致ノードペアを選択するためのプロセスのフローチャートである。
【
図19】例示的な実施形態による特徴ベクトルを生成するための処理のフローチャートである。
【
図20】例示的な実施形態による中心ノードを照合するためのプロセスのフローチャートである。
【
図21】例示的な実施形態によるデータ処理システムのブロック図である。
【発明を実施するための形態】
【0012】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
【0013】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、しかし限定するものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストとしては、以下の、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せを含む。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0014】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせ、を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0015】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路のための構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0016】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0017】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するためにコンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読プログラム命令が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
【0018】
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
【0019】
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、1つのステップとして達成される場合があり、同時に、実質的に同時に、部分的または全体的に時間的に重複する方法で実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
【0020】
例示的な実施形態は、多くの異なる考慮事項を認識し、考慮に入れる。例えば、例示的な実施形態は、グラフとして表されるデータを有するレコードの関係ネットワークを現在のマッチングアルゴリズムが考慮しないことを、認識し、考慮する。例えば、例示的な実施形態は、ある人物に関する2つのレコードを比較する際に、レコードがグラフ内の隣接ノードに同じ関係を有する場合、これらのレコードは同じ人物に関するものである可能性が高いことを認識し、考慮に入れる。例示的な実施形態は、レコード自体の名前の類似性を決定する場合と比較して、サブグラフを比較することで、レコードが重複していることをより強く示すことができることを認識し、考慮に入れている。したがって、例示的な実施形態は、サブグラフの比較を考慮に入れることで、照合プロセスにおける照合結果を改善できることを認識し、考慮している。
【0021】
したがって、例示的な実施形態は、情報を照合するための方法、装置、システム、およびコンピュータプログラム製品を提供する。1つの例示的な例では、第1のサブグラフにおける第1の中心ノードと第2のサブグラフにおける第2の中心ノードとが特定される。第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有する隣接ノードのグループが、コンピュータシステムによって特定される。隣接ノードのグループにおける隣接ノードのグループは、同じノードタイプの隣接ノードを有する。コンピュータシステムによって、クラスタのセット内の各クラスタが、第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有するように、隣接ノードの各グループからクラスタのセットが作成される。コンピュータシステムによって、クラスタのセットの最一致ノードペアのセットを形成するために、クラスタのセット内の各クラスタ内の隣接ノードの最一致ノードペアが特定され、最一致ノードペアの隣接ノードは第1のサブグラフから第1の隣接ノードと第2のサブグラフから第2の隣接ノードを含んでいる。第1の中心ノードと第2の中心ノードとが一致するかどうかは、第1の中心ノード、第2の中心ノード、およびクラスタのセットにおける最一致ノードペアを用いた第1の中心ノードと第2の中心ノードとの間の全体距離に基づいて、コンピュータシステムによって決定される。
【0022】
本明細書で使用される場合、項目に関して使用される「のセット」は、1つまたは複数の項目を意味する。例えば、「クラスタのセット」は、1つまたは複数のクラスタを意味する。さらに、項目に関して使用される「のグループ」は、1つまたは複数の項目を意味する。例えば、「隣接ノードのグループ」は、1つまたは複数の隣接ノードである。
【0023】
図1は、クラウドコンピューティング環境50の図が示されている。図示のように、クラウドコンピューティング環境50は1つまたは複数のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。クラウドコンピューティングノード10は互いに通信することができる。クラウドコンピューティングノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、
図1に示すコンピュータ装置54A~Nの種類は例示に過ぎず、クラウドコンピューティング環境50におけるクラウドコンピューティングノード10は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0024】
ここで
図2を参照すると、
図1のクラウドコンピューティング環境50によって提供される機能的抽象化モデルレイヤのセットが示されている。
図2に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0025】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0026】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75を含む。
【0027】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル83は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0028】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、ならびに、データ管理96が含まれる。データ管理96は、
図1のクラウドコンピューティング環境50または
図1のクラウドコンピューティング環境50にアクセスする物理的な場所のネットワークにおいて、データを管理するためのサービスを提供する。
【0029】
例えば、データ管理96は、マスターデータ管理サービスとして、または、情報の管理において、統一性、正確性、意味的整合性、説明責任の少なくとも1つを高めることができるデータ管理サービスにおいて実装することができる。データ管理96によるこのような情報の管理は、情報のコピーが複数存在する場合に有効である。データ管理96は、情報のコピーのすべてにわたって真実の単一バージョンを維持することができる。1つの例示的な例では、データ管理96は、複数のオペレーションシステムに位置するレコードなどの情報を管理するために使用することができる。1つの例示的な例では、データ管理96は、重複するレコードを特定することができる。データ管理96は、特定された重複するレコードを調整することも可能である。例示的な例では、データ管理96は、情報の重複部分を特定するために、レコードなどの情報を処理する際に照合処理を採用することができる。
【0030】
ここで
図3を参照すると、例示的な実施形態が実装され得る、データ処理システムのネットワークの絵図が描かれている。ネットワークデータ処理システム300は、例示的な実施形態が実装され得るコンピュータのネットワークである。ネットワークデータ処理システム300は、ネットワークデータ処理システム300内で一緒に接続された様々なデバイスおよびコンピュータ間の通信リンクを提供するために使用される媒体である、ネットワーク302を含む。ネットワーク302は、有線、無線通信リンク、または光ファイバケーブルなどの接続を含んでいてもよい。
【0031】
描かれている例では、サーバコンピュータ304とサーバコンピュータ306とは、記憶装置308と共にネットワーク302に接続する。さらに、クライアントデバイス310は、ネットワーク302に接続する。描かれているように、クライアントデバイス310は、クライアントコンピュータ312、クライアントコンピュータ314、およびクライアントコンピュータ316を含む。クライアントデバイス310は、例えば、コンピュータ、ワークステーション、またはネットワークコンピュータであり得る。描かれている例では、サーバコンピュータ304は、ブートファイル、オペレーティングシステムイメージ、およびアプリケーションなどの情報を、クライアントデバイス310に提供する。さらに、クライアントデバイス310は、携帯電話318、タブレットコンピュータ320、およびスマートグラス322などの他のタイプのクライアントデバイスを含み得る。この例示的な例では、サーバコンピュータ304、サーバコンピュータ306、記憶装置308、およびクライアントデバイス310は、ネットワーク302に接続するネットワークデバイスである。ネットワーク302は、これらネットワークデバイスのための通信媒体である。クライアントデバイス310の一部または全部は、これらの物理デバイスがネットワーク302に接続し、ネットワーク302を介して相互に情報を交換できるモノのインターネット(IoT)を形成してもよい。
【0032】
クライアントデバイス310は、この例では、サーバコンピュータ304に対するクライアントである。ネットワークデータ処理システム300は、追加のサーバコンピュータ、クライアントコンピュータ、および図示しない他のデバイスを含んでもよい。クライアントデバイス310は、有線、光ファイバー、または無線接続の少なくとも1つを利用してネットワーク302に接続する。
【0033】
ネットワークデータ処理システム300に位置するプログラムコードは、コンピュータ記録可能な記憶媒体に格納され、使用するためにデータ処理システムまたは他のデバイスにダウンロードされることができる。例えば、プログラムコードは、サーバコンピュータ304のコンピュータ記録可能な記憶媒体に格納され、クライアントデバイス310で使用するためにネットワーク302を介してクライアントデバイス310にダウンロードされることができる。
【0034】
描かれた例では、ネットワークデータ処理システム300は、相互に通信するためにプロトコルのTCP/IP(Transmission Control Protocol/Internet Protocol)スイートを使用するネットワークおよびゲートウェイの世界的な集まりを表すネットワーク302を備えるインターネットである。インターネットの中心には、データおよびメッセージをルーティングする何千もの商業、政府、教育、および他のコンピュータシステムからなる主要ノードまたはホストコンピュータ間の高速データ通信回線のバックボーンがある。もちろん、ネットワークデータ処理システム300も、多数の異なるタイプのネットワークを使用して実装してもよい。例えば、ネットワーク302は、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、またはワイドエリアネットワーク(WAN)のうち少なくとも1つで構成することができる。
図3は、例として意図されており、異なる例示的な実施形態に対するアーキテクチャ上の制限として意図されていない。
【0035】
本明細書で使用される際、「数」は、項目の言及と共に使用される場合、1つ以上の項目を意味する。例えば、「異なるタイプのネットワークの数」は、1つ以上の異なるタイプのネットワークである。
【0036】
さらに、「少なくとも1つの」という語句は、項目のリストと共に使用される場合、リストされた項目の1つ以上の異なる組み合わせを使用することができ、リスト内の各項目の1つだけが必要である場合があることを意味する。言い換えれば、「少なくとも1つ」は、リストから任意の項目の組み合わせと数を使用することができるが、リスト内のすべてのアイテムが必要なわけではないことを意味する。項目は、特定の物体(オブジェクト)、物、またはカテゴリであることができる。
【0037】
例えば、限定するものではないが、「項目A、項目B、または項目Cのうちの少なくとも1つ」は、項目A、項目Aと項目B、または項目Bを含み得る。この例はまた、項目A、項目B、および項目C、または項目Bと項目Cを含み得る。もちろん、これら項目の任意の組み合わせが存在し得る。いくつかの例示的な例では、「少なくとも1つの」は、例えば、限定されないが、項目Aの2つ、項目Bの1つ、および項目Cの10個、項目Bの4つと項目Cの7つ、または他の適切な組合せであり得る。
【0038】
この例示的な例では、情報マネージャ330は、サーバコンピュータ304に配置されている。情報マネージャ330は、リポジトリ334に配置されたレコード332の形式で情報のコピーを管理することができる。例えば、情報マネージャ330は、レコード332内の重複レコード336を特定することができる。描かれている例では、レコード332は、個人、会社、組織、サプライヤ、代理店、家庭、製品、サービス、および他の適切なタイプのオブジェクトのうちの少なくとも1つから選択されるオブジェクトに対するものとすることができる。
【0039】
レコード332内で一致が特定されると、調整を実行することができる。この調整は、レコードの重複するコピーを削除すること、レコードを併合すること、または他の適切な行動を含むことができる。この例示的な例では、重複レコード336は、完全に一致していてもよく、または同じオブジェクトを表すために十分に一致していてもよい。言い換えれば、2つのレコードが一致し重複レコード336として指定されるために、これら2つのレコード間の100パーセントの一致は、いくつかの例では必要としない場合がある。
【0040】
例えば、名前が完全に同じように綴られていない場合でも、人に関する2つの記録は重複レコード336とみなされることがある。例えば、あるレコードは「John Smith」のものであり、一方の別のレコードは「Jon Smith」のものである場合がある。レコード内の他の情報は、名前が完全に一致しなくても、レコードが一致するとみなされるほど十分に近い場合がある。別の例として、「144River Lane」と「144River Ln.」とは、レコード内の住所が一致すると見なされることがある。
【0041】
この例示的な例では、レコード332の比較は、サブグラフを使用して情報マネージャ330によって実行することができる。例えば、情報マネージャ330は、2つのサブグラフ340内の2つの中心ノード338を特定することができ、2つの中心ノード338の各々は、2つのサブグラフ340のうちの1つにある。描かれているように、2つのサブグラフ340は、隣接ノード342も含む。2つのサブグラフ340の各々は、隣接ノード342の一部を含むことができる。
【0042】
この例示的な例では、隣接ノード342内の各隣接ノードは、レコード332内のレコードを表現することができる。たとえば、2つの中心ノード338はそれぞれ、一人の個人のレコードを表すことができる。隣接ノード342は、2つの中心ノード338に接続またはリンクされているオブジェクトを表すレコードまたは他のデータ構造とすることができる。オブジェクトは、友人、雇用者、住居、契約、車両、近隣の人、親戚、仕事仲間、建物、仕事場、または2つの中心ノード338の1つ以上に関係する他の一部の適切なオブジェクトのうちの少なくとも1つから選択することができる。
【0043】
この例示的な実施例では、2つのサブグラフ340が比較されて、2つの中心ノード338についてのレコード332の間に一致が存在するかどうかが決定される。この例示的な例では、2つの中心ノード338の特定は、現在利用可能な任意の照合技術を使用して、情報マネージャ330によって行われることができる。2つの中心ノード338の情報は、特徴結果344を生成するために比較され得る。特徴は、中心ノードの情報の比較から得られる特徴である。
【0044】
例えば、情報は、レコードの様々なフィールドから導出することができる。例えば、情報は、名前、姓、名、ビジネスアドレス、車両、電話番号、ZIPコード、エリアコード、またはレコードに存在し得る他の情報であることができる。
【0045】
特徴は、情報の比較において特徴的であり得る。例えば、特徴は、完全一致、部分一致、情報欠落、一致なし、または他のタイプの特徴であり得る。これらの特徴結果344は、ベクトルにおけるスコアまたは数値として表現することができる。これらの特徴結果344は、情報マネージャ330による分析のための候補レコードを特定するために使用することもできる。特徴結果344は、2つの中心ノード338などの2つのノード間の距離に基づく特徴でもあり得る。
【0046】
この例では、特徴結果344は、レコード332内のどのレコードを情報マネージャ330によってさらに処理することができるかを決定するために使用することができる。言い換えれば、特徴結果344は、重複レコード336を特定する際に比較されるレコードの数を減らすために使用することができる。
【0047】
2つのサブグラフ340における2つの中心ノード338の特定により、情報マネージャ330は、2つの中心ノード338によって表されるレコード332が重複レコード336であるかどうかを決定する際に、2つのサブグラフ340の類似性348を決定できる。この例示的な例では、類似性348は、以下に説明するように、2つのサブグラフ340の間の距離に基づくことができる。その結果、スコア350は、類似性348、または類似性348と特徴結果344との両方を使用して、2つの中心ノード338が重複レコード336を表すかどうかを決定するために生成することができる。
【0048】
この例示的な例では、情報マネージャ330は、スコア350を閾値352の数値と比較することによってこの決定を下すことができる。これらの閾値は、上限レベルの閾値とすることができ、または、2つの中心ノード338が重複レコード336を表すかどうかを決定するためにスコア350を比較する際に使用するための範囲を定義することができる。
【0049】
したがって、情報マネージャ330は、重複レコード336を特定する際の精度を高めることができる。さらに、この精度は、個人、組織、機関、またはその他の単一なエンティティなどのエンティティに対する1次マッチングにおいて増加させることができる。さらに、家族のようなエンティティに対する2次マッチングにおいても精度を高めることができる。2つのサブグラフ340における2つの中心ノード338の類似性348を決定することは、2つのサブグラフ340における関係情報を分析する際に、2次マッチングに対する精度を高めることができる。
【0050】
描かれているように、情報マネージャ330は、2つの中心ノード338の類似性348を決定するための入力として、2つの中心ノード338に対する2つのサブグラフ340の2つの中心ノード338および隣接ノード342を使用できる。描かれているように、情報マネージャ330は、隣接ノード342をグループ354に割り当てる。グループ354の各グループは、異なるノードタイプを表す。グループ354の各グループは、2つのサブグラフ340の両方から隣接ノード342を有する。クラスタリングは、グループ354内のクラスタ356を決定するために実行され得る。言い換えれば、隣接ノード342の各クラスタは、同じタイプの隣接ノード342のクラスタである。
【0051】
このクラスタリングは、任意の適切なクラスタリングプロセスを使用して実行することができる。例えば、密度ベースのクラスタリングは、2つのサブグラフ340からグループ内の隣接ノード342に対して実行することができる。
【0052】
描かれているように、クラスタ356の各クラスタは、2つのサブグラフ340の両方から隣接ノード342を含む。言い換えれば、各クラスタは、2つのサブグラフ340の各サブグラフから少なくとも1つの隣接ノードを含む。
【0053】
情報マネージャ330は、最一致ノードペア358を形成するために、クラスタ356内の各クラスタについて最一致ノードペアを特定することができる。この決定は、クラスタ内の各サブグラフから2つの隣接ノード間の隣接距離が計算されるハウスドルフ距離を決定することによって行うことができる。この隣接距離は、隣接ノード、比較される隣接ノードのリンク、および比較される隣接ノードのインデックスを比較することに基づくことができる。異なる距離は、2つの中心ノード338の間の類似性348を示すことができる全体距離360を決定するために使用することができる。全体距離360は、隣接ノード342を考慮した2つの中心ノード338の間の距離である。言い換えれば、2つの中心ノード338間の距離は、隣接ノード342を考慮すると変化し得る。この例では、隣接ノード342は、2つの中心ノード338の最一致ノードペアである。2つの中心ノード338についての全体距離360は、2つの中心ノード338についてのレコード332が、重複レコード336と見なされるほど類似しているかどうかを判断するために使用することができる。
【0054】
ここで
図4を参照すると、例示的な実施形態による情報環境のブロック図が描かれている。この例示的な例では、情報環境400は、
図3のネットワークデータ処理システム300に示されているハードウェアのようなハードウェアで実装できるコンポーネントを含む。
【0055】
描かれているように、情報環境400は、情報402が管理され得る環境である。この例示的な例では、情報402の管理は、データセット404の1つまたは複数に位置する情報402を調整することを含み得る。これらのデータセットは、1つまたは複数のリポジトリに位置することができる。これらのリポジトリは、例えば、データウェアハウス、データレイク、データマート、データベース、またはいくつかの他の適切なデータ記憶エンティティのうちの少なくとも1つを含むことができる。
【0056】
情報402は、様々な形式をとることができる。例えば、情報402は、レコード406の形式をとることができる。レコード406のレコードは、情報402を整理するために使用されるデータ構造である。例えば、レコードは、異なるデータタイプである場合があるフィールドの集まりであり得る。レコード406は、データベース、テーブル、または他の適切な構成に保存することができる。
【0057】
情報環境400の情報管理システム408は、情報402を管理するように動作することができる。情報402のこの管理は、情報402に関する保存、追加、削除、修正、または他の操作の実行を含むことができる。例えば、情報管理システム408は、1つまたは複数のデータセット404において重複する情報を見つけることができる。これらの重複は、次に、調整がなされる場合があり、重複排除、重複情報の併合、または他のアクションのようなアクションが実行され得る。
【0058】
この例示的な例では、情報管理システム408は、多数の異なる構成要素を含む。描かれているように、情報管理システム408は、コンピュータシステム410と情報マネージャ412とを含む。
【0059】
情報マネージャ412は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアが使用される場合、情報マネージャ412によって実行されるオペレーションは、プロセッサユニットなどのハードウェア上で実行されるように構成されたプログラムコードで実装することができる。ファームウェアが使用される場合、情報マネージャ412によって実行されるオペレーションは、プログラムコードおよびデータで実装され、プロセッサユニット上で実行されるように永続メモリに保存されることができる。ハードウェアが採用される場合、ハードウェアは、情報マネージャ412におけるオペレーションを実行するために動作する回路を含んでいてもよい。
【0060】
例示的な例では、ハードウェアは、回路システム、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、またはいくつかの他の適切なタイプのハードウェアのうち少なくとも1つから選択される形態をとることができ、数多くの操作を実行するように構成されている。プログラマブルロジックデバイスでは、デバイスは、操作の回数を実行するように構成することができる。このデバイスは、後で再設定することもできるし、恒久的に操作回数を実行するように構成することもできる。プログラマブルロジックデバイスには、例えば、プログラマブルロジックアレイ、プログラマブルアレイロジック、フィールドプログラマブルロジックアレイ、フィールドプログラマブルゲートアレイ、および他の適切なハードウェアデバイスがある。さらに、プロセスは、無機コンポーネントと統合された有機コンポーネントで実施することができ、人間を除く有機コンポーネントのみで構成することができる。例えば、プロセスは、有機半導体中の回路として実装することができる。
【0061】
コンピュータシステム410は、物理的なハードウェアシステムであり、1つまたは複数のデータ処理システムを含む。複数のデータ処理システムがコンピュータシステム410に存在する場合、それらのデータ処理システムは、通信媒体を使用して互いに通信する。通信媒体は、ネットワークであり得る。データ処理システムは、コンピュータ、サーバコンピュータ、タブレットコンピュータ、または他の適切なデータ処理システムのうちの少なくとも1つから選択することができる。
【0062】
この例示的な例では、コンピュータシステム410の情報マネージャ412は、第1のサブグラフ416の第1の中心ノード414および第2のサブグラフ420の第2の中心ノード418を特定する。この特定は、多くの異なる方法で実行することができる。例えば、レコード406のような情報の断片を互いに比較するために使用される現在利用可能な比較アルゴリズムを使用して、情報402から第1の中心ノード414および第2の中心ノード418を特定することができる。これらの比較アルゴリズムには、例えば、近似文字列照合、レコードリンケージ、または他の処理が含まれる。1つの例示的な例では、これらの中心ノードの各々は、レコード406に記録され得る。この初期照合プロセスは、情報マネージャ412が分析のための候補中心ノードを特定するために使用することができる。
【0063】
さらに、この例では、情報マネージャ412は、第1のサブグラフ416および第2のサブグラフ420を特定する。これら2つのサブグラフの隣接ノード422は、第1の中心ノード414および第2の中心ノード418のうちの1つにリンクされる。
【0064】
描かれているように、情報マネージャ412は、第1のサブグラフ416および第2のサブグラフ420の両方からノードタイプ430において同じノードタイプ428の隣接ノード422を有する隣接ノード422のグループ424を特定する。ノードタイプ430は、構造メタデータであり、ノード内の情報の断片のための異なるフィールドのメタデータを含むことができる。このメタデータは、フィールド名、データ型、粒度、および他の情報を含むことができる。例えば、ノードタイプは、個人、組織、代理店、ベンダー、家族世帯、家、車両、契約、保険、保証、サービス、またはメタデータの他の適切な型であり得る。
【0065】
この例示的な例では、ノードは、ノードタイプ430についての情報の集まりである。ノードは、例えば、レコードまたは情報402の他の適切な断片であり得る。
【0066】
グループ424を作成する際、情報マネージャ412は、隣接ノード422のノードタイプ430に基づいて、各サブグラフから隣接ノード422を初期グループ432に配置できる。情報マネージャ412は、第1のサブグラフ416と第2のサブグラフ420との両方から隣接ノード422を有する隣接ノード422のグループ424を形成するために、隣接ノード422の第1のサブグラフ416と、隣接ノード422の第2のサブグラフ420との両方から隣接ノード422を有する初期グループ432内の各初期グループを選択することができる。
【0067】
この例示的な例では、情報マネージャ412は、クラスタのセット434内の各クラスタが第1のサブグラフ416および第2のサブグラフ420の両方から隣接ノード422を有するように、隣接ノード422の各グループからクラスタのセット434を作成する。クラスタのセット434を作成する際に、情報マネージャ412は、隣接ノード422のグループ424内の隣接ノード422の各グループ内に候補クラスタ436を作成することができる。情報マネージャ412は、クラスタのセット434を形成するために、隣接ノード422の第1のサブグラフ416および隣接ノード422の第2のサブグラフ420の両方から隣接ノード422を有する候補クラスタ436内の各クラスタを選択できる。
【0068】
例示的な例では、情報マネージャ412は、クラスタのセット434における最一致ノードペアのセット440を形成するために、クラスタのセット434における各クラスタの隣接ノード422の最一致ノードペア438を特定する。最一致ノードペア438の2つの隣接ノードは、第1のサブグラフ416から隣接ノード422内の第1の隣接ノード442と、第2のサブグラフ420から隣接ノード422内の第2の隣接ノード444とを含む。
【0069】
最一致ノードペア438を特定する際に、情報マネージャ412は、クラスタ内で比較される隣接ノード422のための隣接距離450を決定できる。この比較は、比較される隣接ノード422、比較される隣接ノード422のリンク、および比較される隣接ノード422の深さに基づいて行われ得る。情報マネージャ412は、クラスタのセット434に対する最一致ノードペアのセット440を形成するために、クラスタのセット434内の各クラスタに最一致ノードペア438を、最短隣接距離452を有するクラスタ内の2つのノードとして特定することができる。
【0070】
この例に描かれているように、情報マネージャ412は、第1の中心ノード414、第2の中心ノード418、およびクラスタのセット434における最一致ノードペアのセット440を用いて、第1の中心ノード414と第2の中心ノード418との間の全体距離446に基づいて、第1の中心ノード414と第2の中心ノード418とが一致するかを決定する。
【0071】
さらに、情報マネージャ412は、分析のための候補中心ノードを特定するために、特徴結果448を使用することができる。2つの中心ノードが互いに十分に近い場合、全体距離446を決定するために追加のステップを実行することができる。
【0072】
この例示的な例では、特徴結果448は、第1の中心ノード414と第2の中心ノード418との間の情報の比較に関する特徴を含むことができる。特徴結果448はまた、第1の中心ノード414と第2の中心ノード418との間の距離に基づく特徴を含むことができる。特徴結果448はまた、第1の中心ノード414と第2の中心ノード418との間の情報を比較することによって得られた特徴の合計に基づく総計であり得る。言い換えれば、特徴は、比較される情報に存在し得る関心のある特性である。
【0073】
例えば、特徴の発生は、姓、名、契約名、車両メーカー、車両モデル、または他の種類の情報などの情報を2つの中心ノード間で比較することにより、決定することができる。特徴は、例えば、完全一致、部分一致、類似名、取り残された名、一致しない名、正確な単語の数、類似した単語の数、取り残された単語の数、一致しない単語の数、および他の種類の関心を得る可能性がある特徴であり得る。これらの種類の特徴は、比較特徴である。特徴結果448は、異なる特徴に対する個々のスコアの少なくとも1つ、またはすべての特徴に基づく総計スコアを含むことができる。これらのスコアは、特徴ベクトルの各要素が特定の特徴の発生を表す特徴ベクトルの形式で構成することができる。一例では、特徴結果448は、第1の中心ノード414と第2の中心ノード418とを特定するために使用される現在利用可能な比較アルゴリズムを用いて決定することができる。
【0074】
2つの中心ノードが一致する場合、情報マネージャ412は、第1の中心ノード414と第2の中心ノード418との情報402の断片に関して、アクションのセット454を実行できる。アクションのセット454は、例えば、重複排除、情報402の結合、情報402の修正、または他の適切なアクションを含む。
【0075】
1つの例示的な例では、大量のレコードを照合するのに必要な時間およびリソースの量に関する技術的問題を克服する1つ以上の技術的解決策が存在する。その結果、1つ以上の技術的解決策は、情報402の重複部分が存在するかどうかを判断するために情報402を処理するのに必要な時間またはリソースの量の少なくとも1つを削減するという技術的効果を提供し得る。1つの例示的な例では、レコード自体の類似性を判断するのと比較して、サブグラフの中心ノードとして表されるレコードなどの情報の断片が重複しているかどうかのより強い指示を提供する方法でサブグラフを比較できる1つ以上の技術的解決策が存在する。1つの例示的な例では、レコードの照合の結果の精度を向上させるためにサブグラフ比較が実行される1つ以上の技術的な解決策が存在する。
【0076】
コンピュータシステム410は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせを使用して、異なる例示的な例で説明したステップ、オペレーション、またはアクションの少なくとも1つを実行するように構成され得る。その結果、コンピュータシステム410は、コンピュータシステム410内の情報マネージャ412が、現在の技術と比較してより少ない時間またはより少ない資源の少なくとも1つを使用して情報402の断片が一致するかどうかを決定できる特別目的のコンピュータシステムとして動作する。特に、情報マネージャ412は、情報マネージャ412を有しない現在利用可能な一般的なコンピュータシステムと比較して、コンピュータシステム410を特別な目的のコンピュータシステムに変換する。
【0077】
例示的な例では、コンピュータシステム410における情報マネージャ412の使用は、コンピュータシステム410の性能を向上させる情報402を管理するための実用的アプリケーションにプロセスを統合する。言い換えれば、コンピュータシステム410における情報マネージャ412は、サブグラフ分析を使用して情報間に一致が存在するかどうかを決定するコンピュータシステム410における情報マネージャ412に統合されたプロセスの実用的アプリケーションに向けられる。この例示的な例では、コンピュータシステム410内の情報マネージャ412は、2つの中心ノードおよび2つの中心ノードと隣接ノードとのサブグラフを特定することができる。情報マネージャ412は、隣接ノードのノードタイプに基づいてサブグラフの両方から2つの中心ノードの隣接ノードのグループを特定する。言い換えれば、特定のノードタイプに対する各グループは、サブグラフのそれぞれから少なくとも1つの隣接ノードを含む。情報マネージャ412によって、グループの各々における隣接ノードについて、1つまたは複数のクラスタが特定される。この例示的な例では、これらのクラスタの各々は、2つのサブグラフの各々から少なくとも1つの隣接ノードを含む。情報マネージャ412は、各クラスタの隣接ノードの最一致ノードペアを特定する。この特定は、ノードのペア間の距離を特定し、最短距離を有するノードペアをクラスタ内の最一致ペアとして選択することによって行われ得る。情報マネージャ412は、2つの中心ノードと、クラスタについて識別された最一致ノードペアとを使用して、これら2つの中心ノード間の全体的な距離を決定することができる。情報マネージャ412は、2つの中心ノード間の全体距離446に基づいて、2つの中心ノード間に一致が存在するか否かを決定することができる。全体距離446は、第1の中心ノード414および第2の中心ノード418のための最一致ノードペアのセット440などの隣接ノード442を考慮した、第1の中心ノード414と第2の中心ノード418の間の距離である。
【0078】
このようにして、2つの中心ノードに対応する2つのレコードなどの2つの情報が一致するかどうかの決定が行われる。このようにして、コンピュータシステム410における情報マネージャ412は、コンピュータシステム410の機能が改善されるという情報の照合のための実用的なアプリケーションを提供する。例えば、サブグラフを照合することによって、コンピュータシステム410における情報マネージャ412は、2つの情報の間に一致が存在するかどうかを決定する際の精度の向上を提供できる。例示的な例では、情報マネージャ412は、2つの中心ノード間の全体距離446を使用して、一致が存在するかどうかを決定することができる。
【0079】
図4の情報環境400の図示は、例示的な実施形態を実施することができる方法に対する物理的または建築的な制限を意味するものでない。図示されたものに加えて、またはその代わりに、他の構成要素を使用することができる。また、一部の構成要素は不要であってもよい。また、ブロックは、いくつかの機能的な構成要素を説明するために提示されている。これらのブロックの1つ以上は、例示的な実施形態で実装されるときに、異なるブロックに組み合わせたり、分割したり、組み合わせて分割したりすることができる。例えば、データセット404はコンピュータシステム410の外部に位置するものとして示されているが、データセット404の1つ以上はコンピュータシステム410に位置することができる。さらに、コンピュータシステム410が複数のデータ処理システムを含む場合、情報マネージャ412は分散され、複数のデータ処理システム内に位置する構成要素からなることができる。別の例では、第1のサブグラフ416は、隣接ノード422のいずれも含まないことができるが、第2のサブグラフ420は、隣接ノード422のすべてを含む。
【0080】
図5~7は、
図4の情報マネージャ412によって処理され得るサブグラフの説明図である。次に
図5を参照すると、例示的な実施形態による隣接ノードがグループに割り当てられた2つのサブグラフの説明図が描かれている。この例示的な例では、第1のサブグラフ500は、第1の中心ノード(CN1)502、隣接ノード504、隣接ノード506、隣接ノード508、隣接ノード510、隣接ノード512、隣接ノード514、隣接ノード516、および隣接ノード518を含む。第2のサブグラフ520は、第2の中心ノード(CN2)522、隣接ノード524、隣接ノード526、隣接ノード528、隣接ノード530、隣接ノード532、隣接ノード534、隣接ノード536、および隣接ノード538を含む。描かれているように、隣接ノードの各々は、ノードタイプを有する。これら2つのサブグラフは、
図4の第1のサブグラフ416および第2のサブグラフ420に対する例示的な実装である。
【0081】
次に、
図6に目を向けると、例示的な実施形態による隣接ノードのグループの説明図が描かれている。例示的な例では、同じ参照番号が複数の図において使用されることがある。異なる図において参照数字をこのように再利用することは、異なる図において同じ要素を表す。
【0082】
この図に描かれているように、第1のサブグラフ500および第2のサブグラフ520の隣接エンティティは、ノードタイプに基づいてグループに割り当てられ、または配置される。言い換えれば、グループ内の隣接ノードはすべて同じノードタイプである。
【0083】
この図に描かれているように、グループ600は、第1のサブグラフ500から隣接ノード512、隣接ノード514、および隣接ノード516と、第2のサブグラフ520から隣接ノード534と、を含む。グループ602は、第1のサブグラフ500から隣接ノード504および隣接ノード506と、第2のサブグラフ520から隣接ノード524、隣接ノード526、および隣接ノード528と、を含む。グループ604は、第1のサブグラフ500から隣接ノード508および隣接ノード510と、第2のサブグラフ520から隣接ノード530および隣接ノード532と、を含む。
【0084】
この例示的な例では、グループ606は、第2のサブグラフ520から隣接ノード536および隣接ノード538を含む。グループ606は、第1のサブグラフ500から隣接ノードを含まない。グループ608は、第1のサブグラフ500から隣接ノード518を含む。このグループは、第2のサブグラフ520から隣接ノードを含まない。
【0085】
グループは、両方のサブグラフから隣接ノードが存在するグループから選択される。この例では、グループは、グループ600、グループ602、およびグループ604を含む。グループ606およびグループ608は、さらなる処理のためのグループに含まれない。これらのグループは、両方のサブグラフから隣接ノードを含んでいない。その結果、異なるサブグラフ間の距離または特徴に関する比較は、これらのグループを使用して行えない。
【0086】
次に
図7に目を向けると、例示的な実施形態による、隣接するエンティティのグループから作成されるクラスタの説明図が描かれている。この例示的な例では、グループ内の両方のサブグラフから隣接ノードが存在する隣接ノードの各グループからクラスタが作成される。クラスタリングは、隣接ノードのクラスタ内の隣接ノードが他のクラスタ内の隣接ノードよりも互いに類似するように、隣接ノードを分類するように実行される。
【0087】
このクラスタリングは、クラスタリングを実装したアルゴリズムまたは機械学習モデを使って形成することができる。このクラスタリングは、様々なクラスタリング技法を用いて実行することができる。例えば、ノイズを含むアプリケーションの密度に基づく空間クラスタリング(BDSCAN)、k-meansクラスタリング、分布に基づくクラスタリング、密度に基づくクラスタリング、または他のタイプのクラスタリングを使用することができる。
【0088】
描かれているように、クラスタリングの結果、グループ600のクラスタ700およびクラスタ702が作成され、グループ602のクラスタ704、クラスタ706、およびクラスタ708が作成され、グループ604のクラスタ710が作成されることになる。この例示的な例では、クラスタのさらなる処理のために選択されたクラスタは、両方のサブグラフから隣接ノードを含むクラスタである。描かれているように、クラスタ702およびクラスタ708は、これらのクラスタが2つのサブグラフの一方からノードを含むだけであるため、削除される。クラスタリングの結果は、各クラスタがサブグラフのそれぞれから同じタイプの隣接ノードの1セットを保持する1つまたは複数のクラスタになり得る。この例では、4つのクラスタが残っており、これらのクラスタは、サブグラフのそれぞれから同じタイプの隣接ノードを含んでいる。
【0089】
これらのクラスタから、最一致ノードペアを決定することができる。最一致ノードペアは、サブグラフの両方から隣接ノードを含むクラスタのそれぞれについて決定することができる。クラスタ内の最一致ノードペアは、最短距離を有し、異なるサブグラフからのノードのペアである。言い換えれば、最一致ノードペアは、第1のサブグラフ500から第1の隣接ノードと、第2のサブグラフ520から第2の隣接ノードとを含み、それら2つの隣接ノードは、クラスタ内の隣接ノードの他のペアと比較して、クラスタ内でそれらの間の距離が最も短くなる。
【0090】
例えば、クラスタ700において、隣接ノード516と隣接ノード534との間の距離が0.1であり、隣接ノード514と隣接ノード534との間の距離が0.6である場合、最一致ペアは、隣接ノード516と隣接ノード534とである。
【0091】
別の例として、クラスタ704において、最一致ノードペアは、隣接ノード504と隣接ノード524である。これらは、クラスタ内の唯一の2つのノードである。クラスタ706において、隣接ノード506と隣接ノード526とが、最一致ノードペアである。
【0092】
クラスタ710では、隣接ノード510と隣接ノード532との間の距離は0.2、隣接ノード510と隣接ノード530との間の距離は0.3、隣接ノード508と隣接ノード532との間の距離は0.6、隣接ノード508と隣接ノード530との間の距離は0.4である。この例では、クラスタ710の最一致ノードペアは、隣接ノード510と隣接ノード532とを含む。見て分かるように、距離は、各ノードペアが2つのサブグラフのそれぞれから隣接ノードを含むノードペア間で計算される。
【0093】
特定されたこれらの最小距離は、ノードクラスタの異なるサブセットに適用されるハウスドルフ距離とすることができる。数学において、ハウスドルフ距離は、メトリック空間の2つのサブセットが互いにどの程度離れているかを測定する。ハウスドルフ距離はハウスドルフメトリックとも呼ばれる。例えば、クラスタ700のハウスドルフ距離は、dH=min(0.1、0.6)=0.1であることができる。クラスタ704のハウスドルフ距離はdH=min(0.2)=0.2であり、クラスタ706のハウスドルフ距離はdH=min(0.5)=0.5である。クラスタ710のハウスドルフ距離は、dH=min(0.2、0.3、0.6、0.4)=0.2である。
【0094】
その結果、ハウスドルフ距離の集まりは、[0.1、0.2、0.5、0.2]であり、これらの値のそれぞれが、第1のサブグラフ500および第2のサブグラフ520からのグループに対して特定されたクラスタにおける最一致ノードペアの最小値である。
【0095】
この例示的な例では、隣接ノードに対する距離に基づく距離特徴ベクトルは、様々な閾値または範囲内にある距離の数を数えることに基づいて決定することができる。例えば、距離特徴ベクトルは、以下のように決定することができる、特徴ベクトルfv(i)=[dHs≦0.3の数、0.7>dHs>0.3の数、dHsの数]。その結果、この例における特徴ベクトルは、fv(i)=[3、1、0]となる。
【0096】
比較特徴ベクトルは、中心ノードの情報を比較することから決定することができる。例えば、第1の中心ノード502が[John Smith Jr.]であり、第2の中心ノード522が[Johnny Smith]である場合、これら2つの中心ノードの情報の比較に基づいて特徴量を特定することができる。情報の比較に基づく特徴は、例えば、[厳密な名前、類似の名前、除外された名前、一致しない名前]とすることができる。この例では、中心ノードの比較特徴ベクトルは、fv(i)=[1,1,1,0]である。この具体例では、最初の1が[Smithに対するSmith]のカウント、2番目の1が[Johnに対するJohnny]のカウント、3番目の1が[Jr.に対するnone]のカウントである。
【0097】
その結果、中心ノードの比較特徴および隣接距離特徴の結果を含む全体特徴ベクトルは、fv(i)=[1,1,1,0,3,1,0]となる。この特徴ベクトルは、類似度が第1の中心ノード502、第2の中心ノード522、および最一致ノードペアを考慮する第1のサブグラフ500および第2のサブグラフ520の類似性を決定する際に使用できる。
【0098】
この例では、類似性は、第1の中心ノード502と第2の中心ノード522との間の全体の距離によって測定することができる。この特定の例では、特徴ベクトルであるfvおよび係数ベクトルであるcvを用いて、距離は以下のように計算され得る。
【0099】
ここで、cv(i)は係数ベクトルであり、fv(i)は比較特徴と距離特徴を含む特徴ベクトルであり、max(cv)は係数ベクトルの中で最大値を持つ要素であり、min(cv)は係数ベクトルの中で最小値を持つ要素であり、iはインデックス値であり、nは特徴ベクトルの要素数である。
【0100】
この例では、比較特徴ベクトルからの比較特徴および距離特徴ベクトルからの距離特徴からなるこの特徴ベクトルは、第1の中心ノード502と第2の中心ノード522との間の全体の距離を決定するために使用され得る。さらに、重み付けは、特徴ベクトル係数を使用して、異なる特徴ベクトルに適用され得る。これらの係数は、予め決定され得る。係数は、主題の専門家または機械学習モデルを用いて決定することができる。例えば、2つの中心ノードの類似性を決定する際に、より重要視されるべき特徴ベクトル内の特定の要素に対して、より高い特徴ベクトル係数を使用することができる。
【0101】
図5~7に描かれた例では、[1、1、1、0、3、1、0]の特徴ベクトルと[10、7、-5、-10、5、2、0.5]の係数ベクトルに対して、第1の中心ノードと第2の中心ノードとの全体距離は、次のように求めることができる。
【0102】
となり、この2つの中心ノードをサブグラフの隣接ノードを考慮せずに比較した場合と比較して、より正確な距離となる。
この描かれた例では、中心ノードのサブグラフを比較することにより、中心ノードのレコードのみを比較する場合と比較して、中心ノードのレコードまたは情報間の類似性を決定する際の精度および粒度が向上する。言い換えれば、サブグラフの比較は、中心ノード間の距離を決定し、調整された距離が2つの中心ノードの全体距離であるサブグラフ内の隣接ノードに基づいて、中心ノード間の決定された距離を調整することによって実行することができる。
【0103】
図5~7の2つのサブグラフに対する2つの中心ノードおよび隣接ノードの図示は、例示的な実施例においてサブグラフに対して異なる操作を実行できる1つの態様を例示する目的で提示されており、他の例示的な実施例を実施できる態様を制限することを意味しない。例えば、各グラフについて、8つの隣接ノードが示されている。他の例示的な実施例では、他の数の隣接ノードが存在し得る。例えば、3、25、300、または他の数の隣接ノードが、各サブグラフに存在することができる。あるサブグラフは、次に分析される他のサブグラフと同じ数の隣接ノードを有しないことがある。別の例として、隣接ノードは、中心ノードから1の深さのみを有するものとして示される。他の例示的な例では、隣接ノードは、サブグラフにおいて、2、3、6などの他の深さまたはその他の深さを有する場合がある。例えば、特定の隣接ノードは、中心ノードから2の深さを有することがある。言い換えれば、特定の隣接ノードは、中心ノードにリンクされている別の隣接ノードへのリンクを有することがある。別の例示的な例では、特徴ベクトルは、隣接ノードの距離特徴ベクトルの距離特徴のみを含んでいてもよい。
【0104】
他の例示的な例では、比較特徴ベクトルおよび距離特徴ベクトルを生成することなく、比較特徴および距離特徴から直接特徴ベクトルを生成することができる。いくつかの例示的な実施例では、特徴ベクトルは、比較特徴なしで距離特徴を含むことができる。さらに別の例示的な例では、特徴ベクトルは、特徴ベクトルが比較特徴および距離特徴の両方を含む2つの中心ノードの比較から生成することができる。この例では、距離特徴は、2つの中心ノードの間で計算された距離に基づいている。
【0105】
次に
図8を参照すると、例示的な実施形態による隣接ノードの情報の断片を示す説明図が描かれている。この例示的な例では、テーブル800は、隣接ノードについて存在し得る情報を図示する。
【0106】
描かれているように、テーブル800は、多数の異なる列を含む。この例では、これらの列は、この例では同じノードタイプである隣接ノード516および隣接ノード534を含む。
【0107】
この例示的な例では、テーブル800は、隣接ノードの情報を識別する多数の異なる列を有する。これらの列は、隣接ノード802、サブグラフ804、リンクタイプ806、深さ808、隣接人物810、およびアドレス812を含む。
【0108】
隣接ノード802は、隣接ノードの識別子である。この例では、行814の隣接ノードは隣接ノード516に対応し、行816の隣接ノードは隣接ノード534に対応する。
【0109】
サブグラフ804は、本実施例において、近傍隣接が所属するサブグラフを識別する。リンクタイプ806は、隣接ノードを他のノードに接続するリンクの特定のタイプの識別子である。他のノードは、他の隣接ノードまたは中心ノードであることができる。リンクタイプ806の値は、2つの隣接ノードタイプの間の関係のための情報を含む構造メタデータのどのタイプが存在するかを示す。この例示的な例では、リンクタイプ806は、近傍者のノードへのリンクを示す。深さ808は、隣接ノードを中心ノードに接続するリンクの数を特定する。この例では、深さは、両方の隣接ノードについて1である。
【0110】
この例示的な例では、隣接人物810は、バケットグループの一種である。隣接人物810のハッシュ値は、隣接人物の名前をハッシュ化して生成されたハッシュ値である。アドレス812は、隣接人物810で特定される隣接人物の住所のバケットである。アドレス812のハッシュ値は、各隣接者の住所をハッシュ化することから生成される。バケットのカテゴリの他の例としては、電話番号、ビジネスアドレス、車両モデル、都市、国、または他の適切なカテゴリが挙げられる。
【0111】
この例示的な例では、フィールドまたは属性に対してハッシュを生成することができる。名前などの特定のカテゴリについて、既知の、または許容されるバリエーションを考慮に入れて、異なるアクションを生成することができる。このようにして、データ入力エラーを考慮して、部分的な一致を特定することができる。このタイプの単一の属性に対する複数のバケットハッシュの生成は、電話番号、生年月日、または他の適切な情報などのデータに適用することができる。
【0112】
テーブル800の描写は、1つの例示的な実施例において異なる特徴を説明する目的のために、限られたタイプのデータである。例示的な実施例は、隣接のノードにおいて、より多くのバケットまたは他の情報を有することができる。さらに、バケットは、複数のカテゴリを含んでいてもよい。例えば、バケットは、名前とエリアコードであってもよい。別の例として、バケットは、契約、ジョーンズ、およびシアトルであることができる。
【0113】
次に
図9に目を向けると、例示的な実施形態による情報を管理するためのプロセスのフローチャートが描かれている。
図9のプロセスは、ハードウェア、ソフトウェア、またはその両方で実装することができる。ソフトウェアで実装される場合、プロセスは、1つまたは複数のコンピュータシステム内の1つまたは複数のハードウェアデバイスに位置する1つまたは複数のプロセッサユニットによって実行されるプログラムコードの形式をとることができる。このプロセスは、
図2のデータ管理96で実装することができる。図示の例では、このプロセスは、
図3のネットワークデータ処理システム300の情報マネージャ330、および
図4のコンピュータシステム410の情報マネージャ412に実装することができる。このプロセスは、情報の断片を管理するために使用することができる。この例では、情報の断片はレコードの形式をとるが、特定の実装では他の形式をとることができる。
【0114】
プロセスは、中心ノード間のサブグラフの類似性を決定する際に使用するために、中心ノードとなるのに十分な類似性を持つ1つまたは複数のデータセット内のレコードを決定することから始まる(ステップ900)。ステップ900では、
図4の特徴結果448のような特徴結果を得るために、レコード間で比較を行うことができる。これらの比較の結果を使用して、どの中心ノードが互いに十分に近いか、または十分に類似し、さらなる処理を保証するかを特定することができる。言い換えれば、ステップ900は、レコードから候補中心ノードを特定する際の初期パスとして実行することができる。これらの比較は、この例では、サブグラフ内の隣接ノードを考慮しない。例えば、中心ノード自体のみに基づいて、中心ノード間の距離を決定することができる。
【0115】
ステップ900において、中心ノード間の一致の識別は、行われる比較の数を減少させることができる。その結果、中心ノードのためのサブグラフと他の全ての中心ノードのためのサブグラフとの詳細な比較を行う必要がない。
【0116】
2つの中心ノードがさらなる処理のために十分に類似していると特定されると、2つの中心ノードの文脈的ネットワークと独立したネットワークの類似性を比較することにより、2つの中心ノードが類似しているか異なっているかを結論づける全体的な信頼度を増減させることができる。これらの異なるネットワークは、2つの中心ノードのサブグラフである。
【0117】
プロセスは、特定された中心ノードに対するサブグラフを特定する(ステップ902)。プロセスは、中心ノード間の全体的な類似性を決定する(ステップ904)。ステップ904において、プロセスは、中心ノードのためのサブグラフ内の中心ノードおよび隣接ノードを考慮することによって、中心ノード間の全体的な類似性を決定することができる。たとえば、「John Smith」の2つの中心ノードを比較すると、それ自体がいくらか似ている可能性がある。1つ目の中心ノードが「カナダのABC社」と雇用関係しかなく、2つ目の中心ノードが「XYZ」とパートナーシップ関係しかない場合、中心ノードは似ていないとの解釈が可能である。しかし、第2の中心ノードが「ABC社」と雇用関係を持ち、それが第1のノードに関係する「カナダのABC社」とは別のノードであってもなくてもよい場合、2つの中心ノードはより類似していると結論づけることができる状況である。
【0118】
プロセスは、レコードのペアに対するサブグラフのペアの全体的な類似性に基づいて、レコードのペアが一致するかどうかを決定する(ステップ906)。この例示的な例では、決定は、中心ノードを特定するために、レコードの初期分析によって決定された特徴結果の分析も含むことができる。ステップ906において、レコードは中心ノードであり得る。
【0119】
その後、プロセスは、一致するものがあるかどうかに基づいてアクションのセットを実行する(ステップ908)。その後、プロセスは終了する。ステップ908において、アクションは、重複排除、一致するレコードの合併、の少なくとも1つを含むことができ、または他の適切なアクションが実行されることができる。このようにして、異なるデータセット内の情報間の一貫性を得て、報告、取引、または1つ以上のデータセットで見つかったレコードの正確性または一貫性の少なくとも一方を必要とする他の好適な操作などの操作を実行することが可能である。
【0120】
次に
図10に目を向けると、例示的な実施形態による中心ノードの照合のための処理のフローチャートが描かれている。
図10のプロセスは、ハードウェア、ソフトウェア、またはその両方で実装することができる。ソフトウェアで実装される場合、プロセスは、1つまたは複数のコンピュータシステム内の1つまたは複数のハードウェアデバイスに配置された1つまたは複数のプロセッサユニットによって実行されるプログラムコードの形式をとることができる。このプロセスは、
図2のデータ管理96で実施することができる。図示の例では、このプロセスは、
図3のネットワークデータ処理システム300の情報マネージャ330または
図4のコンピュータシステム410の情報マネージャ412において実装することができる。このステップのプロセスは、
図9のステップ908を実施するために使用することができる。
【0121】
プロセスは、第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定することから始まる(ステップ1000)。プロセスは、第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有する隣接ノードのグループを特定し、隣接ノードのグループ内の隣接ノードのグループは、同じノードタイプの隣接ノードを有する(ステップ1002)。
【0122】
プロセスは、クラスタのセット内の各クラスタが第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有するように、隣接ノードの各グループからクラスタのセットを作成する(ステップ1004)。プロセスは、クラスタのセット内の最一致ノードペアのセットを形成するために、クラスタのセット内の各クラスタの隣接ノードの最一致ノードペアを特定する(ステップ1006)。ステップ1006において、最一致ノードペアの隣接ノードは、第1のサブグラフから第1の隣接ノードと第2のサブグラフから第2の隣接ノードとを含む。
【0123】
プロセスは、第1の中心ノード、第2の中心ノード、およびクラスタのセット内の最一致ノードペアのセットを用いて、第1の中心ノードと第2の中心ノードとの間の全体距離に基づいて、第1のサブグラフの第1の中心ノードと第2のサブグラフの第2の中心ノードとが一致しているかどうかを決定する(ステップ1008)。ステップ1008において、全体距離は、サブグラフ内の隣接ノードを考慮しない2つの中心ノード間の距離と異なる。その後、プロセスは終了する。
【0124】
図11を参照すると、例示的な実施形態による隣接ノードのグループを特定するための処理のフローチャートが描かれている。この図のプロセスは、
図10のステップ1002のための1つの実装の例である。
【0125】
プロセスは、隣接ノードのノードタイプに基づいて、隣接ノードを各サブグラフから初期グループに配置することから始まる(ステップ1100)。プロセスは、第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有する隣接ノードのグループを形成するために、隣接ノードの第1のサブグラフの1つと隣接ノードの第2のサブグラフの1つとの両方から隣接ノードを有する初期グループ内の各初期グループを選択する(ステップ1102)。その後、処理は終了する。
【0126】
図12に目を向けると、例示的な実施形態によるクラスタのセットを作成するためのフローチャートが描かれている。この図のプロセスは、
図10のステップ1004に対する1つの実装の例である。
【0127】
プロセスは、隣接ノードのグループにおいて、隣接ノードの各グループ内に候補クラスタを作成することから始まる(ステップ1200)。プロセスは、クラスタのセットを形成するために、隣接ノードの第1のサブグラフと隣接ノードの第2のサブグラフとの両方から隣接ノードを有する候補クラスタ内の各クラスタを選択する(ステップ1202)。その後、処理は終了する。
【0128】
図13を参照すると、例示的な実施形態による隣接ノードの最一致ペアを特定するためのプロセスのフローチャートが描かれている。この図のプロセスは、
図10のステップ1006に対する1つの実装の例である。
【0129】
プロセスは、比較される隣接ノード、比較される隣接ノードのリンク、および比較される隣接ノードの深さに基づいて、クラスタ内で比較される隣接ノードの隣接距離を決定することから始まる(ステップ1300)。ステップ1300において、隣接距離は、多くの異なる方法で決定することができる。たとえば、幅優先探索、ダイクストラ法、またはベルマン-フォード法は、これらの距離を決定するために使用できるアルゴリズムの例である。
【0130】
この例では、比較される隣接ノード、比較される隣接ノードのリンク、および比較される隣接ノードの深さに基づくクラスタ内の隣接ノードの隣接距離は、以下の式のいずれかを使用して計算される。
【0131】
【0132】
ここでdistance(x、y)はクラスタ内のノードxとノードyとの間の距離であり、depth(x、y)はノードxの第1の深さとノードyの第2の深さとの平均深さであり、constは0より大きく1以下の定数値である。ノードxの深さは、そのノードからノードxの中心ノードまでの最短経路を有するリンクの数である。この例では、depth(x、y)は、(1)ノードxと第1の中心ノードとの間の最短リンクの数と(2)ノードyと第2の中心ノードとの間の最短リンクの数との平均とすることもできる。
【0133】
【0134】
ここで、distance(x、y)はクラスタ内のノードxとノードyとの間の距離であり、depth(x、y)はノードxの第1の深さとノードyの第2の深さとの平均深さであり、constは0より大きく1以下である定数値である。ノードxの深さは、そのノードからノードxの中心ノードまでの最短経路を有するリンクの数である。
【0135】
プロセスは、クラスタのセットについての最一致ノードペアのセットを形成するために、最短の隣接距離を有するクラスタ内の2つのノードとして、クラスタのセットの各クラスタのための最一致ノードペアを特定する(ステップ1302)。その後、処理は終了する。
【0136】
図14では、例示的な実施形態による第1の中心ノードと第2の中心ノードとが一致するかどうかを決定するための処理のフローチャートが描かれている。この図のプロセスは、
図10のステップ1008に対する1つの実装の例である。
【0137】
このプロセスは、第1の中心ノード、第2の中心ノード、およびクラスタのセットにおける最一致ノードペアのセットを用いて、第1の中心ノードと第2の中心ノードとの間の全体距離(overall distance)を以下のように決定することから始まる。
【0138】
【0139】
ここで、distance(CenterNode1、CenterNode2)は、第1の中心ノードと第2の中心ノードとの間の距離であり、dH(x、y)は、最一致ノードペアの隣接ノードxと隣接ノードyとの間の距離であり、Mはグループ内の最一致隣接ノードペアのノードタイプの数である(ステップ1400)。この例示的な例では、dH(x、y)で表される距離は、0から1の間の値である。また、distance(CenterNode1、CenterNode2)は、0から1の間の値である。その結果、この例示的な例では、全体距離は0から1の間の値である。この例では、0という値は、比較されるデータ間に完全一致が存在することを意味し、1という値は、比較されるデータが全く異なることを意味する。場合によっては、所定のノードタイプのいくつかの隣接ノードが第1のサブグラフに存在し、同じノードタイプの隣接ノードが第2のサブグラフに存在しないこともありうる。2つのサブグラフ間で一致しないこれらのノードタイプは、Mに含まれない。
【0140】
この例では、隣接ノードxはCenterNode1によって接続されることができ、隣接ノードyはCenterNode2へ接続されることができる。この接続は、直接的であっても、ノードを介在させて間接的であってもよい。この例では、dH(x、y)は、クラスタ内の隣接ノードである隣接ノードxと隣接ノードyとの様々な組み合わせに対して決定できる最小距離である。
【0141】
プロセスは、第1の中心ノードと第2の中心ノードとの間で計算された全体距離に基づいて、第1のサブグラフと第2のサブグラフとが一致するかどうかを決定する(ステップ1402)。処理はその後、終了する。
【0142】
次に
図15に目を向けると、例示的な実施形態による第1の中心ノードと第2の中心ノードとが一致するかどうかを決定するための処理のフローチャートが描かれている。この図のプロセスは、
図10のステップ1008に対する1つの実装の例である。
【0143】
プロセスは、第1の中心ノードと第2の中心ノードとの比較特徴ベクトルについて、第1の中心ノードと第2の中心ノードとの間の比較特徴を決定することから始まる(ステップ1500)。特徴とは、比較される情報間で注目される特性である。特徴のこのタイプは、比較特徴である。例えば、中心ノードの名前を比較する場合、名前の比較で注目する特徴は、[正確な単語の数、類似した単語の数、取り残された単語の数、一致しない単語の数]とすることができる。これらの特徴について「John Smith Jr.」と「Johnny Smith」を比較すると、正確な単語[Smith、Smith]の数として比較特徴量ベクトルの要素には、カウント1が存在することになる。第2の特徴である類似した単語の数は、[John、Johnny]で示される。第3の特徴である取り残された単語の数は、[Jr.、none]で示される。第4の特徴である未マッチ単語数は、一致が存在するため0となる。その結果、この例の比較特徴ベクトルはfv=[1、1、1、0]となる。
【0144】
プロセスは、クラスタのセット内の各クラスタの最低距離から、距離特徴を決定する(ステップ1502)。この例では、距離特徴は、特定の距離が距離特徴のために指定された閾値範囲内にあるかどうかに基づくことができる。例えば、距離特徴は、[0,3より小さい距離、0.3から0.7の間の距離、0.7より大きい距離]であり得る。この例では、3つの距離特徴が存在し、距離特徴ベクトルは、特定の特徴の各々について、何個のノードが存在するかのカウントを示す。
【0145】
プロセスは、比較特徴ベクトルと距離特徴ベクトルとを用いて、第1の中心ノードと第2の中心ノードとの間の距離の間の全体距離を決定する(ステップ1504)。ステップ1504において、比較特徴ベクトルは、中心ノードについて定められ、距離特徴ベクトルは、隣接ノードについて決定されるものである。ステップ1504において、最一致ノードペアの形で隣接ノードを考慮した2つの中心ノード間の全体距離は、以下のように決定される。
【0146】
【0147】
ここで、cv(i)は係数ベクトルのインデックスiの要素であり、fv(i)は比較特徴ベクトルと距離特徴ベクトルとを含む特徴ベクトルのインデックスiの要素であり、max(cv)は係数ベクトルの最大値の要素であり、min(cv)は係数ベクトルの最小値の要素であり、iはインデックス値であり、nは特徴ベクトルの要素の数である。この特有の例では、特徴ベクトルfvは、中心ノードの比較特徴とクラスタの距離特徴との両方を含む。
【0148】
特徴ベクトルは、この例において、中心ノードの比較特徴と、隣接ノードの距離特徴との要素を含む。係数ベクトルは、特徴ベクトル内の対応する特徴に重みをかける際に使用される要素から構成される。これらの係数ベクトルは、特徴ベクトル内の各特徴の計算全体に対する重要度を示すために使用することができる。係数ベクトルは、予め決めておくか、機械学習モデルを用いて生成することができる。
【0149】
プロセスは、全体距離が、第1の中心ノードと第2の中心ノードとが一致するための閾値以内であるか否かを決定する(ステップ1506)。その後、処理は終了する。
【0150】
ここで
図16を参照すると、例示的な実施形態によるサブグラフを照合するためのプロセスのフローチャートが描かれている。
図16のプロセスは、ハードウェア、ソフトウェア、またはその両方で実装することができる。ソフトウェアで実装される場合、プロセスは、1つまたは複数のコンピュータシステム内の1つまたは複数のハードウェアデバイスに位置する1つまたは複数のプロセッサユニットによって実行されるプログラムコードの形態をとることができる。このプロセスは、
図2のデータ管理96で実施することができる。例示的な例では、このプロセスは、
図3のネットワークデータ処理システム300の情報マネージャ330および
図4のコンピュータシステム410の情報マネージャ412において実装することができる。このステップのプロセスは、
図9のステップ908を実施するために使用することができる。
【0151】
プロセスは、2つの中心ノードのそれぞれが2つのサブグラフのうちの1つにあり、2つのサブグラフにおける2つの中心ノードを特定することから始まる(ステップ1600)。プロセスは、2つのサブグラフにおける2つの中心ノードの隣接ノードを、ノードタイプ別にグループに割り当て、ここで、グループは、2つのサブグラフの両方から隣接ノードを含む(ステップ1602)。プロセスは、クラスタのセットを形成するために、グループ内の同じノードタイプの隣接ノードをクラスタに分類し、ここで、クラスタのセット内のクラスタは、2つのサブグラフのそれぞれから少なくとも1つの隣接ノードを有する(ステップ1604)。
【0152】
プロセスは、クラスタのセットについて、隣接ノードの最一致ノードペアのセットを形成するために、ハウスドルフ距離を用いて、各クラスタの隣接ノードの最一致ノードペアを選択する(ステップ1606)。この例では、最一致ノードペアのセットにおける最一致ノードペアは、2つのサブグラフのそれぞれから隣接するノードを有する。
【0153】
プロセスは、2つの中心ノードと、隣接ノードの最一致ノードペアのセットとを用いて、2つの中心ノード間の全体距離を決定する(ステップ1608)。ステップ1608において、2つの中心ノード間の全体距離は、2つの中心ノードの最一致ノードペアのセットを考慮する。プロセスは、2つの中心ノードの間の全体距離に基づいて、2つの中心ノードの間に一致が存在するかどうかを決定する(ステップ1610)。その後、プロセスは終了する。
【0154】
図17では、例示的な実施形態による隣接ノードをグループに割り当てるための処理のフローチャートが描かれている。本図の処理は、
図16のステップ1602に対する一実装例である。
【0155】
プロセスは、隣接ノードのノードタイプに基づいて、2つのサブグラフの各サブグラフから隣接ノードを、初期グループに配置することから始まる(ステップ1700)。プロセスは、グループを形成するために、2つのサブグラフの両方から隣接ノードを有する初期グループ内の各初期グループを選択する(ステップ1702)。その後、処理は終了する。
【0156】
次に
図18を参照すると、例示的な実施形態による各クラスタの隣接ノードの最一致ノードペアを選択するためのプロセスのフローチャートが描かれている。この図のプロセスは、
図16のステップ1604に対する1つの実装の例である。
【0157】
プロセスは、比較される隣接ノード、比較される隣接ノードのリンク、および比較される隣接ノードの深さに基づいて、クラスタ内で比較される隣接ノードの隣接距離を決定することから始まる(ステップ1800)。プロセスは、クラスタのセットについての最一致ノードペアのセットを形成するために、クラスタのセット内の各クラスタに対する最一致ノードペアを、クラスタ内で隣接距離が最短である2つのノードとして特定する(ステップ1802)。その後、プロセスは終了する。
【0158】
次に
図19に目を向けると、例示的な実施形態による特徴ベクトルを生成するための処理のフローチャートが描かれている。
図19のプロセスは、ハードウェア、ソフトウェア、またはその両方で実装することができる。ソフトウェアで実装される場合、プロセスは、1つまたは複数のコンピュータシステム内の1つまたは複数のハードウェアデバイスに位置する1つまたは複数のプロセッサユニットによって実行されるプログラムコードの形態をとることができる。このプロセスは、
図2のデータ管理96で実施することができる。例示的な例では、このプロセスは、
図3のネットワークデータ処理システム300の情報マネージャ330および
図4のコンピュータシステム410の情報マネージャ412において実装することができる。
【0159】
プロセスは、2つの中心ノードの比較特徴を決定することから始まる(ステップ1900)。ステップ1900において、特徴は、2つの中心ノードの間で比較される情報に存在する関心のある特性である。次に、プロセスは、比較特徴について比較特徴ベクトルを決定する(ステップ1902)。ステップ1902において、比較特徴ベクトルの各要素は、特定の特徴についての発生回数を特定する。
【0160】
例えば、中心ノード内の名前を比較する場合、名前の比較のための注目すべき特徴は、[正確な名前、類似する名前、除外される名前、一致しない名前]とすることができる。「John Smith Jr.」と「Johnny Smith」を比較する場合、これらの特徴について、正確な名前として[Smith、Smith]に対する比較特徴ベクトルの要素には、カウント1が存在する。第2の特徴である類似する名前は、[John、Johnny]が存在する。第3の特徴である除外される名前は、[Jr.、none]を見分けることに関して存在する。第4の特徴である一致しないは、一致が存在するため0となる。その結果、この例の比較特徴ベクトルはfv=[1、1、1、0]となる。
【0161】
次に、プロセスは、中心ノードについて特定されたクラスタの距離特徴を決定する(ステップ1904)。ステップ1904において、特徴は、隣接ノードのクラスタ内の最も短い距離に基づいている。言い換えれば、特徴は、最一致ノードペアにおける2つの隣接ノードの間で決定された距離に基づいている。プロセスは、距離特徴から距離特徴ベクトルを生成する(ステップ1906)。距離特徴ベクトルの各要素は、特定の特徴についての発生回数を示す。特徴は、隣接ノード間の距離の閾値または範囲とすることができる。
【0162】
例えば、距離特徴は、[0.3より小さい距離、0.3から0.7の間の距離、0.7より大きい距離]とすることができる。この例では、3つの距離特徴が存在し、距離特徴ベクトルは、特定の特徴のそれぞれについて、何個のノードが存在するかのカウントを示す。
【0163】
そして、プロセスは、比較特徴ベクトルにおける比較特徴と、距離特徴ベクトルにおける距離特徴とを含む特徴ベクトルを生成する(ステップ1908)。その後、プロセスは終了する。この特徴ベクトルは、中心ノード間の全体的な距離を決定する際に、1つのアプローチで使用することができる。
【0164】
次に
図20に目を向けると、例示的な実施形態による中心ノードを照合するためのプロセスのフローチャートが描かれている。
図20のプロセスは、ハードウェア、ソフトウェア、またはその両方で実装することができる。ソフトウェアで実装される場合、プロセスは、1つまたは複数のコンピュータシステム内の1つまたは複数のハードウェアデバイスに位置する1つまたは複数のプロセッサユニットによって実行されるプログラムコードの形態をとることができる。このプロセスは、
図2のデータ管理96で実施することができる。例示的な例では、このプロセスは、
図3のネットワークデータ処理システム300の情報マネージャ330および
図4のコンピュータシステム410の情報マネージャ412において実装することができる。このステップのプロセスは、
図9のステップ908を実施するために使用することができる。
【0165】
このプロセスは、
図10のフローチャートで実行されるステップと同様である。図示の例では、クラスタのセットを作成することは、オプションのステップである。
【0166】
プロセスは、第1のサブグラフにおける第1の中心ノードおよび第2のサブグラフにおける第2の中心ノードを特定することから始まる(ステップ2000)。プロセスは、第1のサブグラフおよび第2のサブグラフの両方から隣接ノードを有する隣接ノードのグループを特定し、隣接ノードのグループにおける隣接ノードのグループは、同じノードタイプである隣接ノードを有する(ステップ2002)。
【0167】
プロセスは、クラスタのセットにおける最一致ノードペアのセットを形成するために、隣接ノードの各グループにおける隣接ノードの最一致ノードペアを特定する(ステップ2004)。ステップ2004において、各最一致ノードペアの隣接ノードは、第1のサブグラフから第1の隣接ノードと、第2のサブグラフから第2の隣接ノードとを含む。
【0168】
プロセスは、第1の中心ノード、第2の中心ノード、およびクラスタのセット内の最一致ノードペアのセットを用いて、第1の中心ノードと第2の中心ノードとの間の全体距離に基づいて、第1の中心ノードと第2の中心ノードとが一致するかどうかを決定する(ステップ2006)。その後、プロセスは終了する。
【0169】
異なる描写された実施形態におけるフローチャートおよびブロック図は、例示的な実施形態における装置および方法のいくつかの可能な実装のアーキテクチャ、機能性、および命令を示すものである。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、機能、または動作もしくはステップの一部の少なくとも1つを表してよい。例えば、1つまたは複数のブロックは、プログラムコード、ハードウェア、またはプログラムコードとハードウェアとの組み合わせで実装されることができる。ハードウェアで実装される場合、ハードウェアは、例えば、フローチャートまたはブロック図における1つまたは複数の命令を実行するように製造または構成された集積回路の形態をとることができる。プログラムコードとハードウェアとの組み合わせとして実装される場合、実装は、ファームウェアの形態をとることができる。フローチャートまたはブロック図の各ブロックは、異なる命令を実行する特殊用途ハードウェアシステム、または特殊用途ハードウェアと特殊用途ハードウェアによって実行されるプログラムコードとの組み合わせを使用して実装することができる。
【0170】
例示的な実施形態のいくつかの代替の実装では、ブロックに示されている1つまたは複数の機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実質的に同時に実行されることができ、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。また、フローチャート又はブロック図において、図示されたブロックに加えて他のブロックを追加することができる。
【0171】
次に
図21に目を向けると、例示的な実施形態によるデータ処理システムのブロック図が描かれている。データ処理システム2100は、
図1のクラウドコンピューティングノード10、および
図2のハードウェアおよびソフトウェアレイヤ60のハードウェアコンポーネントを実装するために使用することができる。データ処理システム2100は、
図3におけるサーバコンピュータ304、サーバコンピュータ306、およびクライアントデバイス310を実装するために使用することも可能である。データ処理システム2100は、
図4におけるコンピュータシステム410を実装するためにも使用することができる。この例示的な例では、データ処理システム2100は、通信フレームワーク2102を含み、通信フレームワーク2102は、プロセッサユニット2104、メモリ2106、永続的ストレージ2108、通信ユニット2110、入力/出力(I/O)ユニット2112、およびディスプレイ2114間の通信を提供する。この例では、通信フレームワーク2102は、バスシステムの形態をとる。
【0172】
プロセッサユニット2104は、メモリ2106にロードすることができるソフトウェアの命令を実行する役割を果たす。プロセッサユニット2104は、1つまたは複数のプロセッサを含む。例えば、プロセッサユニット2104は、マルチコアプロセッサ、中央処理装置(CPU)、グラフィック処理装置(GPU)、物理処理装置(PPU)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、またはいくつかの他の適切なタイプのプロセッサの少なくとも1つから選択することができる。さらに、プロセッサユニット2104は、メインプロセッサが単一チップ上のセカンダリプロセッサとともに存在する1つまたは複数のヘテロジニアスプロセッサシステムを使用して実装することができる。別の例示的な例として、プロセッサユニット2104は、単一チップ上に同じタイプの複数のプロセッサを含む対称型マルチプロセッサシステムであり得る。
【0173】
メモリ2106および永続的ストレージ2108は、記憶装置2116の例である。記憶装置は、例えば、限定されないが、データ、機能的形態のプログラムコード、または他の適切な情報の少なくとも1つのような情報を、一時的ベース、永続的ベース、または一時的ベースと永続的ベースとの両方のいずれかで記憶することができるハードウェアの任意の部分である。記憶装置2116は、これらの例示的な実施例では、コンピュータ可読記憶装置とも呼ばれることがある。メモリ2106は、これらの例では、例えば、ランダムアクセスメモリまたは任意の他の適切な揮発性または不揮発性の記憶装置であり得る。永続的ストレージ2108は、特定の実装に応じて、様々な形態を取ることができる。
【0174】
例えば、永続的ストレージ2108は、1つまたは複数のコンポーネントまたはデバイスを含むことができる。例えば、永続的ストレージ2108は、ハードドライブ、ソリッドステートドライブ(SSD)、フラッシュメモリ、書き換え可能な光ディスク、書き換え可能な磁気テープ、または上記のいくつかの組合せであり得る。永続的ストレージ2108によって使用される媒体はまた、取り外し可能であり得る。例えば、リムーバブルハードドライブを永続的ストレージ2108に使用することができる。
【0175】
通信ユニット2110は、これらの例示的な例では、他のデータ処理システムまたは装置との通信を提供する。これらの例示的な実施例では、通信ユニット2110は、ネットワークインタフェースカードである。
【0176】
入力/出力ユニット2112は、データ処理システム2100に接続可能な他のデバイスとのデータの入出力を可能にする。例えば、入力/出力ユニット2112は、キーボード、マウス、または他の適切な入力デバイスの少なくとも1つを介したユーザ入力のための接続を提供してもよい。さらに、入力/出力ユニット2112は、出力をプリンタに送信してもよい。ディスプレイ2114は、情報をユーザに表示するための機構を提供する。
【0177】
オペレーティングシステム、アプリケーション、またはプログラムのうちの少なくとも1つのための命令は、記憶装置2116に配置され、記憶装置2116は、通信フレームワーク2102を介してプロセッサユニット2104と通信する。異なる実施形態のプロセスは、コンピュータ実装命令を使用して、プロセッサユニット2104によって実行されることができ、コンピュータ実装命令はメモリ2106などのメモリに配置されていてもよい。
【0178】
これらの命令はプログラム命令であり、プロセッサユニット2104内のプロセッサによって読み取られ実行され得るプログラムコード、コンピュータ使用可能プログラムコード、またはコンピュータ可読プログラムコードとも呼ばれる。異なる実施形態におけるプログラムコードは、メモリ2106または永続的ストレージ2108などの異なる物理的またはコンピュータ可読記憶媒体上で実装することができる。
【0179】
プログラムコード2118は、選択的に取り外し可能で、プロセッサユニット2104による実行のためにデータ処理システム2100にロードまたは転送できるコンピュータ可読媒体2120上に機能形態で配置されている。プログラムコード2118およびコンピュータ可読媒体2120は、これらの例示的な実施例においてコンピュータプログラム製品2122を形成する。例示的な実施例では、コンピュータ可読媒体2120は、コンピュータ可読記憶媒体2124である。
【0180】
コンピュータ可読記憶媒体2124は、プログラムコード2118を伝播または伝送する媒体ではなく、プログラムコード2118を記憶するために使用される物理的または有形記憶装置である。コンピュータ可読記憶媒体2124は、本明細書で使用されるように、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバーケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0181】
あるいは、プログラムコード2118は、コンピュータ可読信号媒体を用いてデータ処理システム2100に転送することができる。コンピュータ可読信号媒体は、信号であり、例えば、プログラムコード2118を含む伝搬データ信号とすることができる。例えば、コンピュータ可読信号媒体は、電磁信号、光信号、または任意の他の適切なタイプの信号のうちの少なくとも1つであり得る。これらの信号は、無線接続、光ファイバケーブル、同軸ケーブル、ワイヤ、または他の任意の適切なタイプの接続などの接続を介して伝送することができる。
【0182】
さらに、本明細書で使用する場合、「コンピュータ可読媒体2120」は単数または複数であり得る。例えば、プログラムコード2118は、単一の記憶装置またはシステムの形態でコンピュータ可読媒体2120に配置することができる。別の例では、プログラムコード2118は、複数のデータ処理システムに分散されているコンピュータ可読媒体2120に配置され得る。言い換えれば、プログラムコード2118の一部の命令は1つのデータ処理システムに配置され、プログラムコード2118の他の命令は1つのデータ処理システムに配置され得る。たとえば、プログラムコード2118の一部は、サーバコンピュータのコンピュータ可読媒体2120に配置することができ、一方、プログラムコード2118の別の部分は、クライアントコンピュータのセットに配置されたコンピュータ可読媒体2120に配置することができる。
【0183】
データ処理システム2100について例示された異なる構成要素は、異なる実施形態を実施することができる方法に対するアーキテクチャ上の制限を提供することを意図していない。いくつかの例示的な例では、構成要素の1つ以上が、別の構成要素に組み込まれるか、そうでなければ、別の構成要素の一部を形成することができる。例えば、メモリ2106、またはその一部は、いくつかの例示的な例では、プロセッサユニット2104に組み込まれることがある。異なる例示的な実施形態は、データ処理システム2100について例示された構成要素に加えて、またはその代わりに構成要素を含むデータ処理システムにおいて実施され得る。
図21に示された他の構成要素は、示された例示的な例から変化させることができる。異なる実施形態は、プログラムコード2118を実行することができる任意のハードウェアデバイスまたはシステムを使用して実装することができる。
【0184】
したがって、例示的な実施例は、情報を照合させるためのコンピュータ実装方法、コンピュータシステム、およびコンピュータプログラム製品を提供する。第1のサブグラフの第1の中心ノードと第2のサブグラフの第2の中心ノードとは、コンピュータシステムによって特定される。第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有する隣接ノードのグループは、コンピュータシステムによって特定される。隣接ノードのグループにおける隣接ノードのグループは、同じノードタイプの隣接ノードを有する。クラスタのセット内の各クラスタが第1のサブグラフと第2のサブグラフとの両方から隣接ノードを有するように、コンピュータシステムによって、隣接ノードの各グループからクラスタのセットが生成される。クラスタのセットにおける最一致ノードペアのセットを形成するために、隣接ノードの最一致ノードペアが、クラスタのセットにおける各クラスタにおいて、コンピュータシステムによって特定され、ここで、最一致ノードペアの隣接ノードは、第1のサブグラフの第1の隣接ノードと第2のサブグラフの第2の隣接ノードとを含む。第1の中心ノード、第2の中心ノード、およびクラスタのセットにおける最一致ノードペアのセットを用いた第1の中心ノードと第2の中心ノードとの間の全体距離に基づいて、第1の中心ノードと第2の中心ノードとが一致するかどうかは、コンピュータシステムによって決定される。
【0185】
その結果、異なる例示的な例は、中心ノードと、中心ノードのためのサブグラフ内の隣接ノードとを比較しない現在の技術と比較して、情報の断片が一致しているかどうかを決定する際に使用される時間またはリソースの量の少なくとも一方を低減することができる。さらに、異なる例示的な実施例は、少なくとも第1次照合または第1次第2次照合における情報の断片の照合の精度を高めることもできる。
【0186】
異なる例示的な実施形態の説明は、例示および説明の目的で提示されたものであり、開示された形態の実施形態を網羅的または限定することを意図していない。異なる例示的な実施例は、アクションまたはオペレーションを実行するコンポーネントを説明する。例示的な実施形態では、コンポーネントは、説明されるアクションまたはオペレーションを実行するように構成され得る。例えば、コンポーネントは、コンポーネントによって実行される例示的な例で説明されるアクションまたはオペレーションを実行する能力をコンポーネントに提供する構造の構成または設計を有することができる。さらに、用語「含む(includes)」、「含む(including)」、「有する(has)」、「含む(contains)」、およびそれらの変形が本明細書で使用される限り、そのような用語は、追加要素または他の要素を排除することなく、開放遷移語としての用語「comprise」と同様の方法で包括することを意図している。
【0187】
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。すべての実施形態が、例示的な例で説明されたすべての特徴を含むわけではない。さらに、異なる例示的な実施形態は、他の例示的な実施形態と比較して異なる特徴を提供することができる。開示される実施形態の範囲から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。
【手続補正書】
【提出日】2023-09-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
情報を照合するための方法であって、前記方法は、
コンピュータシステムによって、第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定することと、
前記コンピュータシステムによって、前記第1のサブグラフと前記第2のサブグラフとの両方から隣接ノードを有する前記隣接ノードのグループを特定することであって、前記隣接ノードの前記グループ内の前記隣接ノードのグループは、同じノードタイプの前記隣接ノードを有する、特定することと、
前記コンピュータシステムによって、最一致ノードペアのセットを形成するために、前記隣接ノードの各グループの前記隣接ノードの最一致ノードペアを特定することであって、各最一致ノードペアは、前記第1のサブグラフから第1の隣接ノードと前記第2のサブグラフから第2の隣接ノードとを含む、特定することと、
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することと、
を含む方法。
【請求項2】
前記コンピュータシステムによって、クラスタのセット内の各クラスタが前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有するように、前記隣接ノードの各グループからクラスタの前記セットを作成することをさらに含み、前記コンピュータシステムによって、最一致ノードペアの前記セットを形成するために、前記隣接ノードの各グループの前記隣接ノードの前記最一致ノードペアを特定することであって、前記最一致ノードペアの前記隣接ノードは、前記第1のサブグラフから前記第1の隣接ノードと前記第2のサブグラフから前記第2の隣接ノードとを含む、特定することは、
前記コンピュータシステムによって、最一致ノードペアの前記セットを形成するためにクラスタの前記セット内の各クラスタの前記隣接ノードの前記最一致ノードペアを特定することであって、各最一致ノードペアは前記第1のサブグラフから前記第1の隣接ノードと前記第2のサブグラフから前記第2の隣接ノードとを含む、特定すること、
を含む、請求項1に記載の方法。
【請求項3】
前記コンピュータシステムによって、前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有する前記隣接ノードの前記グループを特定することであって、前記隣接ノードの前記グループ内の前記隣接ノードの前記グループは、前記同じノードタイプの前記隣接ノードを有する、特定することは、
前記コンピュータシステムによって、前記隣接ノードのノードタイプに基づいて、各サブグラフから前記隣接ノードを初期グループに配置することと、
前記コンピュータシステムによって、前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有する前記隣接ノードの前記グループを形成するために、前記隣接ノードの前記第1のサブグラフの1つと前記隣接ノードの前記第2のサブグラフの1つとの両方から前記隣接ノードを有する前記初期グループ内の各初期グループを選択することと、
を含む請求項1に記載の方法。
【請求項4】
前記コンピュータシステムによって、クラスタの前記セット内の各クラスタが前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有するように、前記隣接ノードの各グループからクラスタの前記セットを作成することは、
前記コンピュータシステムによって、前記隣接ノードの前記グループ内の前記隣接ノードの各グループ内に候補クラスタを作成することと、
前記コンピュータシステムによって、クラスタの前記セットを形成するために、前記隣接ノードの前記第1のサブグラフと前記隣接ノードの前記第2のサブグラフとの両方から隣接ノードを有する前記候補クラスタ内の各クラスタを選択することと、
を含む請求項2に記載の方法。
【請求項5】
前記コンピュータシステムによって、クラスタの前記セット内の各クラスタの前記最一致ノードペアを特定することは、
前記コンピュータシステムによって、比較される前記隣接ノード、比較される前記隣接ノードのリンク、および比較される前記隣接ノードの深さに基づいて、クラスタ内で比較される前記隣接ノードのための隣接距離を決定することと、
前記コンピュータシステムにより、クラスタの前記セットについての最一致ノードペアの前記セットを形成するために、最短の隣接距離を有する前記クラスタ内の2つのノードとして、クラスタの前記セット内の各クラスタの前記最一致ノードペアを特定することと、
を含む請求項2に記載の方法。
【請求項6】
比較される前記隣接ノード、比較される前記隣接ノードのリンク、および比較される前記隣接ノードの深さに基づく前記クラスタ内の前記隣接ノードのための前記隣接距離は、以下の式、
ここで、distance(x、y)は前記クラスタ内のノードxとノードyと間の距離であり、depth(x、y)は前記ノードxの第1の深さと前記ノードyの第2の深さの平均値であり、constは0より大きく1以下の定数値である、
および、
ここで、distance(x、y)は前記クラスタ内の前記ノードxと前記ノードyとの間の前記距離であり、depth(x、y)は前記ノードxの前記第1の深さと前記ノードyの前記第2の深さの平均値であり、constは0より大きく1以下の前記定数値である、
のいずれかを用いて計算される請求項5に記載の方法。
【請求項7】
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することは、
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノード、およびクラスタの前記セットの最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとの間の全体距離(overall distance)を、以下のように
ここで、distance(CenterNode
1、CenterNode
2)は、前記第1の中心ノードと前記第2の中心ノードとの間の距離であり、dH(x、y)は、前記最一致ノードペアにおける隣接ノードxと隣接ノードyとの間の距離であり、Mは前記グループ内の
最一致ノードペアについてのノードタイプの数である、決定することと、
前記コンピュータシステムによって、前記第1の中心ノードと前記第2の中心ノードとの間の計算された前記全体距離に基づいて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することと、
を含む、請求項2に記載の方法。
【請求項8】
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することは、
前記コンピュータシステムによって、前記第1の中心ノードと前記第2の中心ノードとの比較特徴を決定するために、前記第1の中心ノードと前記第2の中心ノードとを比較することと、
前記コンピュータシステムによって、クラスタの前記セット内の各クラスタの前記隣接ノード間の最低距離から距離特徴を決定することと、
前記コンピュータシステムによって、前記比較特徴と前記距離特徴とを用いて、前記第1の中心ノードと前記第2の中心ノードとの間の全体距離を決定することと、
前記コンピュータシステムによって、前記全体距離が、前記第1の中心ノードと前記第2の中心ノードとが一致するための閾値内であるかを決定することと、
を含む、請求項2に記載の方法。
【請求項9】
前記第1の中心ノードと前記第2の中心ノードとの間の前記全体距離は、以下のように
ここで、cv(i)は係数ベクトルであり、fv(i)は前記比較特徴と前記距離特徴とを含む特徴ベクトルであり、max(cv)は前記係数ベクトルの要素の中で最大値を持つものであり、min(cv)は前記係数ベクトルの前記要素の中で最小値を持つものであり、iはインデックス値であり、nは前記特徴ベクトルの要素数である、決定される請求項8に記載の方法。
【請求項10】
情報を照合する方法であって、前記方法は、
コンピュータシステムによって、2つのサブグラフの2つの中心ノードの隣接ノードをノードタイプ別にグループに割り当てることであって、前記グループは前記2つのサブグラフの両方から隣接ノードを含む、割り当てることと、
前記コンピュータシステムによって、前記隣接ノードの前記グループに対して前記隣接ノードの最一致ノードペアのセットを形成するために、ハウスドルフ距離を用いて、隣接ノードの各グループに対して前記隣接ノードの最一致ノードペアを選択することであって、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する、選択することと、
前記コンピュータシステムによって、前記2つの中心ノードと前記隣接ノードの最一致ノードペアの前記セットとを用いて、前記2つの中心ノード間の全体距離を決定することであって、前記2つの中心ノード間の前記全体距離は、前記2つの中心ノードの各々に対する最一致ノードペアの前記セットが考慮される、決定することと、
前記2つの中心ノード間の前記全体距離に基づいて、前記2つの中心ノード間に一致が存在するかどうかを決定することと、
を含む方法。
【請求項11】
前記コンピュータシステムによって、クラスタのセットを形成するために、前記グループ内の同じノードタイプの隣接ノードをクラスタに分類することであって、クラスタの前記セット内のクラスタは、前記2つのサブグラフの各々から少なくとも1つの隣接ノードを有する、クラスタに分類すること、
をさらに含み、
前記コンピュータシステムによって、前記隣接ノードの前記グループに対して前記隣接ノードの最一致ノードペアの前記セットを形成するために、前記ハウスドルフ距離を用いて、前記隣接ノードの各グループに対して前記隣接ノードの前記最一致ノードペアを選択することであって、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する、選択することは、
前記コンピュータシステムによって、クラスタの前記セットに対して前記隣接ノードの最一致ノードペアの前記セットを形成するために、前記ハウスドルフ距離を用いて、各クラスタに対して前記隣接ノードの前記最一致ノードペアを選択することであって、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する、選択すること、
を含む請求項10に記載の方法。
【請求項12】
コンピュータシステムによって、前記2つのサブグラフの前記2つの中心ノードの前記隣接ノードを前記ノードタイプ別に前記グループに割り当てることであって、前記グループは前記2つのサブグラフの両方から前記隣接ノードを含む、割り当てることは、
前記コンピュータシステムによって、前記隣接ノードの前記ノードタイプに基づいて、前記2つの各サブグラフから前記隣接ノードを初期グループに配置することと、
前記コンピュータシステムによって、前記グループを形成するために、前記2つのサブグラフの両方から前記隣接ノードを有する前記初期グループ内の各初期グループを選択することと、
を含む請求項11に記載の方法。
【請求項13】
第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定し、
前記第1のサブグラフと前記第2のサブグラフとの両方から隣接ノードを有する前記隣接ノードのグループを特定することであって、前記隣接ノードの前記グループ内の前記隣接ノードのグループは、同じノードタイプの前記隣接ノードを有する、特定し、
最一致ノードペアのセットを形成するために、前記隣接ノードの各グループの前記隣接ノードの最一致ノードペアを特定することであって、各最一致ノードペアは、前記第1のサブグラフから第1の隣接ノードと前記第2のサブグラフから第2の隣接ノードとを含む、特定し、
前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定する
プログラム命令を実行するコンピュータシステム
を含む情報管理システム。
【請求項14】
前記コンピュータシステムは、
クラスタのセット内の各クラスタが前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有するように、前記隣接ノードの各グループからクラスタの前記セットを作成するプログラム命令を実行し、最一致ノードペアのセットを形成するために、前記隣接ノードの各グループの前記隣接ノードの前記最一致ノードペアを特定する際に、前記最一致ノードペアの前記隣接ノードは、前記第1のサブグラフから前記第1の隣接ノードと前記第2のサブグラフから前記第2の隣接ノードとを含み、前記コンピュータシステムは、
最一致ノードペアの前記セットを形成するためにクラスタの前記セット内の各クラスタの前記隣接ノードの前記最一致ノードペアを特定することであって、各最一致ノードペアは前記第1のサブグラフから前記第1の隣接ノードと前記第2のサブグラフから前記第2の隣接ノードとを含む、特定するプログラム命令を実行する請求項13に記載の情報管理システム。
【請求項15】
前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有する前記隣接ノードの前記グループを特定する際に、前記隣接ノードの前記グループ内の前記隣接ノードの前記グループは、前記同じノードタイプの前記隣接ノードを有し、前記コンピュータシステムは、
前記隣接ノードのノードタイプに基づいて、各サブグラフから前記隣接ノードを初期グループに配置し、
前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有する前記隣接ノードの前記グループを形成するために、前記隣接ノードの前記第1のサブグラフの1つと前記隣接ノードの前記第2のサブグラフの1つとの両方から前記隣接ノードを有する前記初期グループ内の各初期グループを選択する
プログラム命令を実行する請求項13に記載の情報管理システム。
【請求項16】
クラスタの前記セット内の各クラスタが前記第1のサブグラフと前記第2のサブグラフとの両方から前記隣接ノードを有するように、前記隣接ノードの各グループからクラスタの前記セットを作成する際に、前記コンピュータシステムは、
前記隣接ノードの前記グループ内の前記隣接ノードの各グループ内に候補クラスタを作成し、
クラスタの前記セットを形成するために、前記隣接ノードの前記第1のサブグラフと前記隣接ノードの前記第2のサブグラフとの両方から隣接ノードを有する前記候補クラスタ内の各クラスタを選択する
プログラム命令を実行する請求項14に記載の情報管理システム。
【請求項17】
クラスタの前記セット内の各クラスタの前記最一致ノードペアを特定する際に、前記コンピュータシステムは、
比較される前記隣接ノード、比較される前記隣接ノードのリンク、および比較される前記隣接ノードの深さに基づいて、クラスタ内で比較される前記隣接ノードのための隣接距離を決定し、
クラスタの前記セットについての最一致ノードペアの前記セットを形成するために、最短の隣接距離を有する前記クラスタ内の2つのノードとして、クラスタの前記セット内の各クラスタの前記最一致ノードペアを特定する
プログラム命令を実行する請求項14に記載の情報管理システム。
【請求項18】
比較される前記隣接ノード、比較される前記隣接ノードのリンク、および比較される前記隣接ノードの深さに基づく前記クラスタ内の前記隣接ノードのための前記隣接距離は、以下の式、
ここで、distance(x、y)は前記クラスタ内のノードxとノードyと間の距離であり、depth(x、y)は前記ノードxの第1の深さと前記ノードyの第2の深さの平均値であり、constは0より大きく1以下の定数値である、
および、
ここで、distance(x、y)は前記クラスタ内の前記ノードxと前記ノードyと間の前記距離であり、depth(x、y)は前記ノードxの前記第1の深さと前記ノードyの前記第2の深さの平均値であり、constは0より大きく1以下の前記定数値である、
のいずれかを用いて計算される請求項17に記載の情報管理システム。
【請求項19】
前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定する際に、前記コンピュータシステムは、
前記第1の中心ノード、前記第2の中心ノード、およびクラスタの前記セットの最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとの間の全体距離(overall distance)を、以下のように
ここで、distance(CenterNode
1、CenterNode
2)は、前記第1の中心ノードと前記第2の中心ノードとの間の距離であり、dH(x、y)は、前記最一致ノードペアにおける隣接ノードxと隣接ノードyとの間の距離であり、Mは前記グループ内の
最一致ノードペアについてのノードタイプの数である、決定し、
前記第1の中心ノードと前記第2の中心ノードとの間の計算された前記全体距離に基づいて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定する
プログラム命令を実行する請求項14に記載の情報管理システム。
【請求項20】
前記第1の中心ノード、前記第2の中心ノードおよびクラスタの前記セットの最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定する際に、前記コンピュータシステムは、
前記第1の中心ノードと前記第2の中心ノードとの比較特徴を決定するために、前記第1の中心ノードと前記第2の中心ノードとを比較し、
クラスタの前記セット内の各クラスタの隣接ノード間の最低距離から距離特徴を決定し、
前記比較特徴と前記距離特徴とを用いて、前記第1の中心ノードと前記第2の中心ノードとの間の前記距離の間の前記全体距離(overall distance)を決定し、
前記全体距離が、前記第1の中心ノードと前記第2の中心ノードとが一致するための閾値内であるかを決定する
プログラム命令を実行する
請求項14に記載の情報管理システム。
【請求項21】
前記第1の中心ノードと前記第2の中心ノードとの間の全体距離は、以下のように
ここで、cv(i)は係数ベクトルであり、fv(i)は前記比較特徴と前記距離特徴とを含む特徴ベクトルであり、max(cv)は前記係数ベクトルの要素の中で最大値を持つものであり、min(cv)は前記係数ベクトルの前記要素の中で最小値を持つものであり、iはインデックス値であり、nは前記特徴ベクトルの要素数である、決定される請求項20に記載の情報管理システム。
【請求項22】
2つのサブグラフの2つの中心ノードの隣接ノードをノードタイプ別にグループに割り当てることであって、前記グループは前記2つのサブグラフの両方から隣接ノードを含み、割り当て、
前記隣接ノードの前記グループに対して前記隣接ノードの最一致ノードペアのセットを形成するために、ハウスドルフ距離を用いて、前記隣接ノードの各グループに対して前記隣接ノードの最一致ノードペアを選択することであって、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する、選択し、
前記2つの中心ノードと前記隣接ノードの最一致ノードペアの前記セットとを用いて、前記2つの中心ノード間の全体距離を決定することであって、前記2つの中心ノード間の全体距離は、前記2つの中心ノードの各々に対する最一致ノードペアの前記セットが考慮され、決定し、
前記2つの中心ノード間の前記全体距離に基づいて、前記2つの中心ノード間に一致が存在するかどうかを決定する
プログラム命令を実行するコンピュータシステムを含む情報管理システム。
【請求項23】
前記コンピュータシステムは、
クラスタのセットを形成するために、前記グループ内の同じノードタイプの隣接ノードをクラスタに分類する前記プログラム命令を実行し、クラスタの前記セット内のクラスタは、前記2つのサブグラフの各々から1つの隣接ノードを少なくとも有し、
前記隣接ノードの前記グループに対して前記隣接ノードの最一致ノードペアの前記セットを形成するために、前記ハウスドルフ距離を用いて、前記隣接ノードの各グループに対して前記隣接ノードの前記最一致ノードペアを選択する際に、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有し、前記コンピュータシステムは、
クラスタの前記セットに対して前記隣接ノードの最一致ノードペアの前記セットを形成するために、前記ハウスドルフ距離を用いて、各クラスタに対して前記隣接ノードの前記最一致ノードペアを選択する前記プログラム命令を実行し、最一致ノードペアの前記セット内の前記最一致ノードペアは、前記2つのサブグラフの各々から隣接ノードを有する
請求項22に記載の情報管理システム。
【請求項24】
前記2つのサブグラフの前記2つの中心ノードの前記隣接ノードを前記ノードタイプ別に前記グループに割り当てる際に、前記グループは前記2つのサブグラフの両方から前記隣接ノードを含み、前記コンピュータシステムは、
前記隣接ノードの前記ノードタイプに基づいて、前記2つのサブグラフの各サブグラフから前記隣接ノードを初期グループに配置し、
前記グループを形成するために、前記2つのサブグラフの両方から前記隣接ノードを有する前記初期グループ内の各初期グループを選択する
前記プログラム命令を実行する請求項22に記載の情報管理システム。
【請求項25】
情報を照合するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、その中に実装されたプログラム命令を有するコンピュータ可読記憶媒体を含み、前記プログラム命令は、コンピュータシステムによって実行可能であり、前記コンピュータに、
前記コンピュータシステムによって、第1のサブグラフ内の第1の中心ノードと第2のサブグラフ内の第2の中心ノードとを特定することと、
前記コンピュータシステムによって、前記第1のサブグラフと前記第2のサブグラフとの両方から隣接ノードを有する前記隣接ノードのグループを特定することであって、前記隣接ノードの前記グループ内の前記隣接ノードのグループは、同じノードタイプの前記隣接ノードを有する、特定することと、
前記コンピュータシステムによって、クラスタの前記セットについて最一致ノードペアのセットを形成するために、前記隣接ノードの各グループの前記隣接ノードの最一致ノードペアを特定することであって、前記最一致ノードペアの前記隣接ノードは、前記第1のサブグラフから第1の隣接ノードと前記第2のサブグラフから第2の隣接ノードとを含む、特定することと、
前記コンピュータシステムによって、前記第1の中心ノード、前記第2の中心ノードおよび最一致ノードペアの前記セットを用いて、前記第1の中心ノードと前記第2の中心ノードとが一致するかどうかを決定することと、
を含む方法を実行させるコンピュータプログラム製品。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正の内容】
【0011】
【
図1】例示的な実施形態が実装され得るデータ処理システムのネットワークを示す絵図である。
【
図2】例示的な実施形態による
図1のクラウドコンピューティング環境50によって提供される機能抽象化レイヤのセットである。
【
図3】例示的な実施形態が実装され得るデータ処理システムのネットワークを示す絵図である。
【
図4】例示的な実施形態による情報環境のブロック図である。
【
図5】例示的な実施形態による隣接ノードがグループに割り当てられた2つのサブグラフの説明図である。
【
図6】例示的な実施形態による隣接ノードのグループの説明図である。
【
図7】例示的な実施形態による、隣接するエンティティのグループから作成されるクラスタの説明図である。
【
図8】例示的な実施形態による隣接する情報の断片を示す説明図である。
【
図9】例示的な実施形態による情報を管理するためのプロセスのフローチャートである。
【
図10】例示的な実施形態による中心ノードの照合のための処理のフローチャートである。
【
図11】例示的な実施形態による隣接ノードのグループを特定するための処理のフローチャートである。
【
図12】例示的な実施形態によるクラスタのセットを作成するためのフローチャートである。
【
図13】例示的な実施形態による隣接ノードの最一致ペアを特定するためのプロセスのフローチャートである。
【
図14】例示的な実施形態による
第1のサブグラフと第2のサブグラフとが一致するかどうかを決定するための処理のフローチャートである。
【
図15】例示的な実施形態による第1の中心ノードと第2の中心ノードとが一致するかどうかを決定するための処理のフローチャートである。
【
図16】例示的な実施形態によるサブグラフを照合するためのプロセスのフローチャートである。
【
図17】例示的な実施形態による隣接ノードをグループに割り当てるための処理のフローチャートである。
【
図18】例示的な実施形態による各クラスタの隣接ノードの最一致ノードペアを選択するためのプロセスのフローチャートである。
【
図19】例示的な実施形態による特徴ベクトルを生成するための処理のフローチャートである。
【
図20】例示的な実施形態による中心ノードを照合するためのプロセスのフローチャートである。
【
図21】例示的な実施形態によるデータ処理システムのブロック図である。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0087
【補正方法】変更
【補正の内容】
【0087】
このクラスタリングは、クラスタリングを実装したアルゴリズムまたは機械学習モデルを使って形成することができる。このクラスタリングは、様々なクラスタリング技法を用いて実行することができる。例えば、ノイズを含むアプリケーションの密度に基づく空間クラスタリング(DBSCAN)、k-meansクラスタリング、分布に基づくクラスタリング、密度に基づくクラスタリング、または他のタイプのクラスタリングを使用することができる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0095
【補正方法】変更
【補正の内容】
【0095】
この例示的な例では、隣接ノードに対する距離に基づく距離特徴ベクトルは、様々な閾値または範囲内にある距離の数を数えることに基づいて決定することができる。例えば、距離特徴ベクトルは、以下のように決定することができる、特徴ベクトルfv(i)=[dHs≦0.3の数、0.7>dHs>0.3の数、dHs≧0.7の数]。その結果、この例における特徴ベクトルは、fv(i)=[3、1、0]となる。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0136
【補正方法】変更
【補正の内容】
【0136】
図14では、例示的な実施形態による
第1のサブグラフと第2のサブグラフとが一致するかどうかを決定するための処理のフローチャートが描かれている。この図のプロセスは、
図10のステップ1008に対する1つの実装の例である。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0139
【補正方法】変更
【補正の内容】
【0139】
ここで、distance(CenterNode1、CenterNode2)は、第1の中心ノードと第2の中心ノードとの間の距離であり、dH(x、y)は、最一致ノードペアの隣接ノードxと隣接ノードyとの間の距離であり、Mはグループ内の最一致ノードペアのノードタイプの数である(ステップ1400)。この例示的な例では、dH(x、y)で表される距離は、0から1の間の値である。また、distance(CenterNode1、CenterNode2)は、0から1の間の値である。その結果、この例示的な例では、全体距離は0から1の間の値である。この例では、0という値は、比較されるデータ間に完全一致が存在することを意味し、1という値は、比較されるデータが全く異なることを意味する。場合によっては、所定のノードタイプのいくつかの隣接ノードが第1のサブグラフに存在し、同じノードタイプの隣接ノードが第2のサブグラフに存在しないこともありうる。2つのサブグラフ間で一致しないこれらのノードタイプは、Mに含まれない。
【手続補正7】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【手続補正8】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【手続補正9】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】