JP2022074045A - コンピュータ実装方法、コンピュータ・プログラムおよびコンピュータ・システム(グラフ・データベースにおけるデータのデータ品質の測定) - Google Patents

コンピュータ実装方法、コンピュータ・プログラムおよびコンピュータ・システム(グラフ・データベースにおけるデータのデータ品質の測定) Download PDF

Info

Publication number
JP2022074045A
JP2022074045A JP2021174001A JP2021174001A JP2022074045A JP 2022074045 A JP2022074045 A JP 2022074045A JP 2021174001 A JP2021174001 A JP 2021174001A JP 2021174001 A JP2021174001 A JP 2021174001A JP 2022074045 A JP2022074045 A JP 2022074045A
Authority
JP
Japan
Prior art keywords
node
edge
graph
subgraph
data quality
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021174001A
Other languages
English (en)
Inventor
ヤニック・セイレット
Saillet Yannick
クラウディオ・アンドレラ・ファンコーニ
Andrea Fanconi Claudio
マーティン・オーバーホーファー
Oberhofer Martin
クマール・バブ ヘマン
Kumar Babu Hemanth
バセム・エラシオティ
Elasioty Basem
マイク・ダブリュー・グラッセルト
W Grasselt Mike
ロバート・カーン
Robert Kern
トゥアニー・カロリーネ・スチュアート
Karoline Stuart Thuany
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022074045A publication Critical patent/JP2022074045A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/24765Rule-based classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 コンピュータ実装方法、コンピュータ・プログラムもしくはシステムまたはこれらの組み合わせを提供すること。【解決手段】 下記動作を実行する、方法等が提供される。動作は、第1エンティティを表す第1ノードと、第1エンティティ間の関係性を表す第1エッジとを含む第1グラフを取得することを含む。第1ノードは、第1エンティティを記述する第1エンティティ属性に関連付けられ、第1エッジは、関係性を記述する第1エッジ属性に関連付けられる。動作は、また、第1グラフの第1ノードの一のノードについて、第1サブグラフを決定することを含む。第1サブグラフは、一のノードと、その隣接ノードとを含む。動作は、データ品質規則のセットの1以上の適用可能な規則を、第1サブグラフの第1エンティティ属性値および第1エッジ属性値に適用することに少なくとも部分的に基づいて、一のノードに関するデータ品質問題を決定することを含む。【選択図】 図2

Description

本発明は、コンピュータ・システムの分野に関し、より詳細には、グラフ・データベースにおけるデータのデータ品質に関する。
データベース・システムは、例えば、データを表し、格納するために、セマンティック・クエリのためのノード、エッジおよびプロパティ/属性を有するグラフ構造を使用する。グラフは、データベースにおけるデータ項目を、エッジがノード間の関係性を表すとしてノードおよびエッジのコレクションに関連付ける。関係性により、データ・ストア内のデータが共に直接にリンクされ、多くの場合、単一の動作で取り出される。
本開示は、上記点に鑑みてなされたものであり、グラフ・データベースのデータのデータ品質を測定するためのシステム、方法およびコンピュータ・プログラムを提供することを目的とする。
本開示の一側面に従えば、以下の動作を実行する(下記の順序であることは要さない。)コンピュータ実装方法、コンピュータ・プログラムもしくはコンピュータ・システムまたはこれらの組み合わせが提供される。動作は、第1エンティティを表す第1ノードと、第1エンティティ間の関係性を表す第1エッジとを含む第1グラフを取得することであって、第1ノードは、第1ノードにより表される第1エンティティを記述する第1エンティティ属性に関連付けられ、第1エッジは、第1エッジにより表される関係性を記述する第1エッジ属性に関連付けられる、取得することと;第1グラフの第1ノードの一のノードについて、第1サブグラフを決定することであって、第1サブグラフは、一のノードと、少なくとも1つの一のノードの隣接ノードとを含む、決定することと;データ品質規則のセットの1以上の適用可能な規則を第1サブグラフの第1エンティティ属性値および第1エッジ属性値に適用することに少なくとも部分的に基づいて、一のノードに関するデータ品質問題を決定することであって、データ品質規則のセットは、グラフノード間のエッジのタイプおよびグラフノードの属性間の関係を表す、決定することとを含む。
以下、本発明の実施形態について、例示として、以下の図面を参照しながら、より詳細に説明する。
本開示の実施形態に従ったコンピューティング・システムの概略図。 本開示の実施形態に従った、グラフの簡略化された構造を示す図。 本開示の実施形態に従った処理の動作を示すフローチャート。 本開示の実施形態に従ったデータ品質規則を決定するための動作を示すフローチャート。 本開示の実施形態に従ったデータ品質規則を決定するための動作を示すフローチャート。 本開示の実施形態に従ったグラフを例示する図。 本開示の実施形態に従ったデータ品質問題を検出するための動作を示すフローチャート。 本開示の実施形態に従ったグラフを例示する図。 本開示の実施形態において提供される1以上の動作に適するコンピューティング・システムを説明する。
本発明の種々の実施形態について説明するが、説明を目的としており、開示される実施形態を網羅または限定することを意図するものではない。多数の変更例もしくは変形例またはその両方が、説明する実施形態の要旨および精神を逸脱することなく、当業者にとって明白となるであろう。本明細書で使用される用語は、実施形態の原理、実際の応用、または、市場において見られる技術を超えた技術向上を最も良く説明し、または、他の当業者が本明細書に開示の実施形態を理解することができるように選ばれたものである。
本開示の側面に従えば、グラフ・データベースのデータのデータ品質を測定するためのシステム、方法およびコンピュータ・プログラムを提供することができる。特に、本開示のシステム、方法およびコンピュータ・プログラムは、グラフにおけるノード間の関係およびこれらのノードのプロパティ/属性における矛盾(データ品質問題)を検知するために提供され、また、ノードのフィールド(例えば、属性、プロパティなど)における矛盾を検知するために提供される。例えば、本開示の実施形態は、グラフからのデータトランザクションのセットを構築するために提供され、これをテーブル形式で表すことができる。実施形態は、さらに、既知のアソシエーション・アルゴリズムをテーブル形式のデータ(トランザクションのセット)に適用し、グラフのノードのプロパティ/属性およびこれらの他のノードに対する関係性の間の関係性を特徴付ける強いパターン(strong pattern)を識別することができ、このデータを使用してアソシエーション関連性についての規則を生成することができる。実施形態は、識別されたアソシエーション規則をグラフのすべてのノードおよび関係性に適用し、これらの規則に対する違反を識別することができる。識別されたこれらのアソシエーション規則に対する違反に関連付けられたグラフのノードおよびエッジの一方または両方は、次いで適切に処理され得る潜在的なデータ品質問題としてマークされる。
グラフは、データ値がプロパティとしてノードおよびエッジに格納されるプロパティ・グラフを参照する。プロパティ・グラフは、グラフ・データベース(GDB)に含まれてもよく、グラフ・データベース管理システム、または、格納するためにプロパティ・グラフを例えばリレーショナル・テーブルに変換し、また、読み出しまたは問い合わせ時にリレーショナル・テーブルをプロパティ・グラフに変換するラッパ層を提供する他のデータベース・システムによって、管理および処理されてもよい。そのようなグラフは、例えば、有向グラフであってよい。グラフは、ノード(また頂点とも参照される。)およびエッジのコレクションであってよい。グラフのエッジは、グラフの任意の2つのノードを接続する。エッジは、例えば、順序付きノードのペア(v1,v2)によって表され得て、ノードv1からノードv2へ向けて辿られる。
グラフのノードは、一例として、エンティティを表す。エンティティは、ユーザ(例えば、従業員など)、オブジェクト、会社、他の個人もしくはこれらに類するものまたはこれらの組み合わせを参照する。エンティティ(および対応するノード)は、値が割り当てられる、ある1以上のエンティティ属性もしくはプロパティまたはその両方を有している。例えば、人は、エンティティであってもよい。人のエンティティ属性は、例えば、婚姻関係の有無、年齢、性別、識別データもしくはこれらに類するものまたはこれらの組み合わせを含んでもよい。ノードを表す属性値は、ノードによって表されるエンティティのエンティティ属性値の値である。2つのノード間のエッジは、エッジにより接続された2つのノード間の少なくとも関係性を示す1以上のエッジ属性値が割り当てられてもよい。エッジを表す属性値は、エッジ属性値の値である。関係性は、例えば、継承関係(例えば、親および子)もしくはある階層に従った連想関係またはその両方を含んでもよい。例えば、ノードv1およびv2の間の継承関係は、v1およびv2間の”is-a関係性”と参照されることがある(例えば”v2 is-a parent of v1”)。ノードv1およびv2間の連想関係は、v1が、v2の一部である、v2の成分である、またはv2に関連付けられることを意味する、v1およびv2間の”has-a関係性”と参照されることがある(例えば、”v2 has-a relationship with v1”)。
グラフは、1以上のドメインのセットのエンティティおよび関係性を表してもよい。ドメイン(ドメイン・オントロジーとも参照される。)は、例えば、産業、生物学、政策もしくはこれらに類するものまたはこれらの組み合わせなどの世界の一部に属する概念もしくはカテゴリまたはその両方を表してもよい。ドメインは、典型的には、ドメイン特有の用語の定義をモデルすることができる。例えば、ドメインは、ヘルスケア特有の分野、広告特有の分野、商業特有の分野、医療特有の分野、バイオ医療特有の分野もしくはこれらに類するものまたはこれらの組み合わせを参照する。1以上のドメインのセットは、オントロジーを表す。例えば、ドメインのセットは、家族ドメインおよび会社ドメインを含んでもよく、ここで、家族ドメインはおよび会社ドメインは、例えば従業員オントロジーであってもよい同一のオントロジーに属する。
例えば百万の顧客レコード、連絡先もしくはこれらに類するものまたはこれらの組み合わせ、並びに、数十万の従業員を有する会社に関連する人物レコードのデータを格納するグラフのように、グラフは、しばしば、数千または数百万ものノードおよびエッジを有する可能性があるので、グラフ・データベースに関連付けられるグラフを処理することは、しかしながら、技術的に挑戦しがいがある。これは、データ重複除去、ネットワークを越えたデータ通信もしくはグラフの任意の他の処理またはこれらの組み合わせの場合に、特に挑戦しがいがある。例えば、マスタデータ管理(MDM)システムは、重複レコードを識別し、適用可能であれば、重複レコード問題などを解決する必要のある、永続性ストレージとして、グラフを用いることができる。このプロセスは、一般的に、マッチング処理であってよく、音声学(Soundex、NYSIISなど)、編集距離、ニックネーム解決もしくはこれらに類するものまたはこれらの組み合わせなど、決定論的技術もしくはファジー演算子を用いる確率的マッチング技術またはこれらの両方を使用することができる。加えて、グラフに関連付けられるデータは、データ品質問題(problems/issues)のセットを有する可能性がある。データ品質問題は、グラフにより表されるドメインのセットのドメインに依存する。例えば、データ品質問題のセットは、家族ドメインのデータ品質問題のサブセットと、他のドメインのデータ品質問題の他のサブセットと含んでもよい。
本開示の側面は、ノードのコンテキストを用いて、グラフ・データベースにおいて、グラフまたは複数のグラフに関連付けられたあるデータにおけるデータ品質問題を識別し、データ品質問題の識別を各サブグラフ構造に制限することによって、グラフ・データベースにおけるデータ品質の測定を提供することができる。いくつかの実施形態においては、これは、サブグラフを使用しており、また、データ品質を示すことによってより信頼できるデータを提供することができるので、グラフをより効率的なやり方で処理することを可能とする可能性がある。例えば、グラフ(例えばサブグラフなど)のノードに関するデータ品質問題が、その近隣ノードを考慮することによって決定することができる。ただ個々のレコード内の矛盾を探す代わりに、グラフ(そこでは、例えばノードが属性を含み、他のノードへのあるタイプ(関係性)のエッジまたはリンクを有する。)にデータが組織化される事実は、グラフ・データベースにおけるデータについてデータ品質問題を決定する場合に、グラフのノード間の関係性が、ノード自身のプロパティと同程度に重要である可能性があるという、追加の次元を追加する。したがって、本開示の実施形態は、グラフのノード間の関係における矛盾の検出並びにグラフ内のノードのフィールドにおける矛盾の検出を提供することができる。
概して、リレーショナル・データベースには現れず、グラフ・データベース(GDB)を観測する場合に識別され得る、4つの別個の品質問題がある。第1は、いくつかの属性が、(例えばノード間の)関係を推測する場合があり、あるいはその逆もある。ゆえに、関係と対比した属性に関して矛盾が発見される可能性がある。例えば、ノードE1は、(ノードE1によって表される個人/エンティティについて)未婚の婚姻ステータス属性を示す場合がある。しかしながら、ノードE1およびノードE2間のエッジ(例えば、リンク)は、ノードE1で表されるエンティティとノードE2で表されるエンティティとの間の配偶者関係を表す”E1 isSpouseOf E2”のエッジ関係を示し得る。このようにして、これは、ノードE1、またはノードE1およびノードE2間のエッジに関連付けられたデータとの矛盾また潜在的なデータ品質問題を識別するであろう。
3つ組の場合、エンティティとの関係が、元々は近隣ではなかった(例えば、推論されているようには実際に関連付けられていない)他の2つのエンティティ間の関係を推論できる場合に品質問題が生じる可能性がある。例えば、ノードE1とノードE2間のエッジ(例えばリンク)が、”E1 isParentOf E2”のエッジ関係を示し、かつ、ノードE1とノードE3間のエッジ(例えばリンク)が、”E1 isParentOf E3”のエッジ関係を示し、これは、ノードE2およびノードE3との間の”E2 isSiblingOf E3”および”E3 isSiblingOf E2”関係を推論し得て、これは正しくない可能性がある。
関係が同一エンティティとの他の関係を推論することができる場合に他のデータ品質問題が生じる可能性がある。例えば、ノードE1とノードC1との間のエッジ(例えばリンク)が”E1 isEmployed C1”のエッジ関係を示し、これは、”E1 HasContract C1”の関係を推論し得て、これは正確ではない可能性がある。他のデータ品質問題は、2つの関係間の誤った全単射が見つかった際に生じ得る。例えば、”E1 isManager E2”は、”E2 isManager E1”と一致したり、これを推測したりすることはできない。
いくつかの実施形態においては、検出されたデータ品質問題は、例えば、第1サブグラフの一のノードの少なくとも1つのエッジおよび一のノードの少なくとも1つのエンティティ属性、並びに、第1サブグラフの一のノードの少なくとも1つのエッジおよび一のノードの他のエッジ、のうちの1つに少なくとも基づく可能性がある。
いくつかの実施形態においては、第1サブグラフにおける一のノードと第1サブグラフの任意の他の第1ノードとの間の距離は、事前定義された距離のセットのうちの1つの距離以下であってよい。上記用語”距離”は、グラフにおける2つのノード間の距離を参照し、これは2つのノードを結ぶ最短経路(またグラフ上の測地線と参照される。)におけるエッジ数である。
第1サブグラフは、例えば、ノードn を含んでもよく、ここで、i=0,…n1-1であり、n1は、第1サブグラフにおけるノード数である。iは、第1サブグラフの各第1ノードについて別個の値を有する。第1エッジ属性は、Eij と参照され、ここで、iおよびjは、第1エッジEij に接続される第1ノードn およびn のインデックスである。例えば、一のノードは、n で参照される。一のノードn と第1サブグラフの任意の他の第1ノードn (i>0)間の距離は、選択された距離以下であってよい。選択された距離は、事前定義された距離のセットから選択される。いくつかの実施形態においては、選択は、例えば、ランダム選択であってよい。他の例では、選択は、反復処理の一部として実行され得る。反復処理は、距離のセットのうちの各距離について方法の繰り返しを含んでもよい。距離の選択は、距離のセットの全ての距離が選択されるまで実行される。他の例では、選択は、ユーザにプロンプトを表示し、選択された距離を示すユーザ入力を受信することによって実行されてもよい。
いくつかの実施形態においては、事前定義された距離のセットは、例えば、ユーザ定義であってもよく、ここでは、ユーザが、彼または彼女が第1グラフにおけるデータ品質問題の検出に適切であると考える距離を定義することができる。距離のセットは、例えば、データ品質問題を検知するために用いられるデータ品質規則を(事前)決定するために用いられる距離であってよい。
いくつかの実施形態においては、第1サブグラフは、一のノードn 、一のノードn に第1エッジEi0 を介して接続される他の第1ノードn 、および、一のノードn にまたは他のノードn に隣接する少なくとも1つの第1ノードn によって形成される。例えば、第1ノードn は、第1エッジEj0 を介して一のノードn に、または、第1エッジEij を介して第1ノードn にリンクされ得る。すなわち、第1サブグラフは、少なくとも3つの第1ノードn ,n ,n および2つの第1エッジEi0 およびEij /Ej0 を含む。このような実施形態は、より大きなサブグラフを確認する必要がない、データ品質問題の効率的な識別を可能とする、第1サブグラフのコンパクトな構造を可能とする。これは、多くのオントロジー・ドメインにおいて個々の関係性が少数のノードで定義される可能性があるので、特に有利な可能性がある。例えば、家族ドメインにおいては、ノードの家族コンテキストは、家族のメンバーを表す少数の隣接ノードで定義される可能性がある。
例えば、いくつかの実施形態においては、第1グラフは、従業員オントロジーといったオントロジーのエンティティおよび関係性を表す。オントロジーは、異なる複数のドメインを含み得る。例えば、従業員オントロジーは、家族ドメインおよび会社ドメインドメインのセットを含んでもよい。第1サブグラフは、例えば、それが単一のドメイン(家族ドメイン、会社ドメインなど)を表すように決定されてもよい。
いくつかの実施形態においては、データ品質問題を検出することは、一のノードの1以上の第1エンティティ属性値もしくは一のノードが接続する第1エッジの1以上の第1エッジ属性値またはその両方がデータ品質問題を有すると決定することを含む。これは、例えば、一のノードn の第1エンティティ属性の値を、第1サブグラフの他のノードn の第1エンティティ属性の値と比較、および、第1サブグラフのエッジEij の第1エッジ属性の値と比較することによって実行されてもよい。他の例では、いくつかの実施形態においては、データ品質問題の検出は、第1サブグラフのノード間のエッジのタイプおよびこれらのノードの属性間の期待される関係を表す規則を用いて、もしくは、第1サブグラフのノード間のエッジのタイプおよび第1サブグラフのノード間の他のエッジ間の期待される関係を表す規則を用いて実行されてもよい。これらの規則は、第1グラフとは異なるグラフを用いて決定または生成される。
いくつかの実施形態においては、データ品質問題の検出は、さらに、一のノードおよび一のノードが接続する第1エッジの少なくとも1つを、データ品質問題を有するとしてマークすることを含んでもよい。これは、第1グラフの最適な処理を可能とする。例えば、ユーザは、データ品質問題を有するとしてラベル付けまたはマークされたノードまたはエッジをスキップまたは考慮することができる。
いくつかの実施形態においては、データ品質問題の検出は、さらに、第2エンティティを表す第2ノードと、第2エンティティ間の関係性を表す第2エッジとを含む第2グラフを処理することを含んでもよい。第2ノードは、第2ノードにより表される第2エンティティを記述する第2エンティティ属性に関連付けられる。第2エッジは、第2エッジにより表される関係性を記述する第2エッジ属性に関連付けられる。第2グラフを処理することは、第2グラフの各第2エッジについて、1以上の第2サブグラフを生成することを含んでもよい。1以上の第2サブグラフの各第2サブグラフは、それぞれの事前定義された最大近接レベル以下の第2サブグラフの第2エッジの第2ノードと他の第2ノードとの間の距離を有する。最大近接レベルは、1以上の整数値であってよい。最大近接レベルは、第2グラフの各第2サブグラフについて同一であってもよいし、異なっていてもよい。1以上の第2サブグラフの最大近接レベルは、各距離が第2サブグラフを生成するために用いられた最大近接レベルに等しい、距離のセットを定義する。データ品質問題の検出は、さらに、形成された第2サブグラフの第2エンティティ属性の属性および第2エッジ属性の属性値間の関係に基づいて、データ品質規則(例えば、アソシエーション規則など)を決定すること、および、データ品質規則(例えば、アソシエーション規則など)を第1グラフに適用し、データ品質問題の検出を提供することを含んでもよい。
いくつかの実施形態においては、データ品質規則(例えば、アソシエーション規則)は、第2グラフのサブグラフから生成してもよい。これは、グラフ・データベースにおけるデータ品質の測定の自動実行を可能とし、ユーザ介入を削減するかまたは取り除き得るようにする。いくつかの実施形態においては、生成されたデータ品質規則(例えば、アソシエーション規則)は、さらに、自動的に、他のグラフ、例えば第1グラフにおけるデータ品質問題を検出するために使用することができる。一例として、データ品質規則(例えば、アソシエーション規則など)は、1以上の第2サブグラフの各第2サブグラフについて決定されてもよい。第2サブグラフのデータ品質規則(例えば、アソシエーション規則など)は、第2サブグラフのエッジおよびエンティティ属性の値の組み合わせによって表されてもよい。データ品質規則(例えば、アソシエーション規則など)は、例えば、エンティティおよびこれらの関係並びにこれらのプロパティ/属性を示すタプルなどの事前定義されたデータ構造で提供されてもよい。いくつかの実施形態においては、第1サブグラフを処理し、そのデータ構造において第1サブグラフの値の組み合わせに符号化する場合と同一のデータ構造タイプが用いられる。これは、規則として提供されたデータ構造を、第1グラフから生成されたデータ構造と比較することを可能とする。
例えば、いくつかの実施形態においては、データ品質規則(例えば、アソシエーション規則)を決定することは、第2グラフを辿ること、および、第2グラフの各エッジについてトランザクションを計算することを含んでもよい。トランザクションは、エッジのソース・ノードおよびターゲット・ノードの両方の全てのエンティティ属性値、エッジのタイプ、および、ターゲット・ノードをターゲット・ノードの任意の他の近隣ノードに接続する全てのエッジのタイプで形成される。いくつかの実施形態においては、データ・マイニング技術が、規則における強いパターンを検出するために適用され得る。いくつかの実施形態においては、低すぎる信頼度または低すぎる裏付けを有するような検出された規則は、除外されてもよい。データ・マイニング技術を適用することは、アソシエーション・アルゴリズムを適用することを含んでもよい。
いくつかの実施形態においては、データ品質問題を検出することは、第2サブグラフのノードの数が、ノードの最大数よりも小さくなるように最大近接レベルを定義することをさらに含んでもよい。これは、本開示の実施形態に従うグラフの処理を効率的に制御するために使用することができる構成可能なパラメータを提供する。
いくつかの実施形態においては、データ品質規則を決定することは、1以上の第2サブグラフの各第2サブグラフについてデータベース・エントリを生成することを含んでもよい。データベース・エントリは、各第2サブグラフの第2ノードおよび第2エッジのエンティティ属性値およびエッジ属性値を含んでもよい。いくつかの実施形態においては、アソシエーション・アルゴリズムが、アソシエーション規則を検出するためにデータベース・エントリに適用されてもよい。アソシエーション規則は、検出されたアソシエーション規則から、検出された各アソシエーション規則に関連付けられた信頼度に基づいて(定義されたレベルを超える信頼度を有するもの)選択され、データ品質規則が、選択されたアソシエーション規則を含むようにすることができる。このような実施形態は、品質規則を生成するための体系的で制御可能な方法を提供する。いくつかの実施形態においては、アソシエーション規則を選択することは、閾値より小さな信頼度を有する、検出されたアソシエーション規則を除外することをさらに含み得る。
いくつかの実施形態においては、第1グラフおよび第2グラフは、同一のドメインのオントロジーを表してもよい。いくつかの実施形態においては、第1グラフおよび第2グラフは、同一のグラフの異なるサブグラフであってもよい。いくつかの実施形態においては、第1グラフおよび第2グラフは、上述したように、同一のグラフであってもよく、これは、効率的なテスト環境およびデータ品質問題検出の検証を提供することができる。
いくつかの実施形態においては、データ品質問題の検出は、第2エンティティを表す第2ノードと、第2エンティティ間の関係性を表す第2エッジとを含む第2グラフを処理することをさらに含んでもよい。第2ノードは、第2ノードにより表される第2エンティティを記述する第2エンティティ属性に関連付けられる。第2エッジは、第2エッジにより表される関係性を記述している第2エッジ属性に関連付けられる。第2グラフを処理することは、第2グラフの各第2エッジについて、第1サブグラフと同一の構造を有する第2サブグラフを生成することと、生成された第2サブグラフの第2エンティティ属性の属性値と第2エッジ属性の属性値との間の関係に基づいて、データ品質規則を決定することと、データ品質規則を、データ品質問題を検出するために第1グラフに適用することとを含み得る。
用語”第1”、”第2”、”およびこれらに類するものは、本明細書において、これらが先行する名詞のラベルとして使用されており、明示的にそのように定義されない限り、いかなるタイプの順序付け(例えば、空間的、時間的、論理的など)を暗示するものではない。
図1Aは、本開示の実施形態に従った例示的なコンピューティング・システム100を示す。コンピューティング・システム100は、例えば、コンピューティング・システム100が重複排除システムを可能にすることができるように、マスタデータ管理もしくはデータ・ウェアハウジングまたはその両方を実行するように構成され得る。コンピューティング・システム100は、データ統合システム101と、1または複数のクライアント・システムまたはデータ・ソース105とを含む。クライアント・システム105は、(例えば、図6を参照して説明されるような)コンピューティング・システムを含んでもよい。データ統合システム101は、グラフ・データベース・システム103へのアクセスを制御してもよい。
クライアント・システム105は、ネットワーク接続を介してデータ統合システム101と通信し、ネットワーク接続は、例えば、無線ローカル・エリア・ネットワーク(WLAN)接続、ワイド・エリア・ネットワーク(WAN)接続、ローカル・エリア・ネットワーク(LAN)接続もしくはインターネットまたはこれらの組み合わせを含む。
クライアント・システム105は、クエリ要求を受信もしくは生成またはその両方をするように構成され得る。例えば、クライアント・システム105は、グラフ・データベース・システム103に関連付けられたクエリ要求を生成もしくは受信またはその両方をすることができる。クエリ要求は、例えば、重複するノードの識別を要求することができる。クライアント・システム105は、クエリ要求をデータ統合システム101に送信もしくは転送またはその両方をすることができる。データ統合システム101は、グラフ・データベース・システム103を用いて、データをフェチし、例えば、クエリ要求に応答してクライアント・システム105に送り返すべき、グラフ・データベース・システム103のグラフ107の適切なサブセットを計算するように構成されてもよい。
他の例においては、各クライアント・システム105は、グラフ・データベース・システム103によって格納されるべきデータ・レコードをデータ統合システム101に送信するように構成されてもよい。データ・レコード(例えばレコード)は、特定のエンティティの名前、誕生日、クラスもしくはこれらに類するものまたはこれらの組み合わせなど関連データ項目のコレクションで有り得る。レコードは、エンティティを表すことができ、ここで、エンティティは、それについての情報をレコードに格納する、ユーザ、オブジェクトまたは概念を参照する。用語”データ・レコード”および”レコード”は、同義で使用される。グラフ・データベース・システム103は、レコードを、関係性を有するエンティティとして格納するためにグラフ107を使用することができ、ここで、各レコードは、プロパティが、名前、誕生日もしくはこれらに類するものまたはこれらの組み合わせなどの属性値であるとして、グラフ107のノードまたは頂点に割り当てられてもよい。データ統合システム101は、グラフ・データベース・システム103を用いてクライアント・システム105から受信したレコードを格納し、グラフ107における重複ノードに関して検査し、もしくはグラフ107におけるデータ品質問題を検出し、またはこれらの組み合わせを行ってもよい。例えば、クライアント・システム105は、グラフ107と同一の構造を有していても有していなくてもよいデータ・レコードを提供もしくは作成またはその両方をするよう構成されてもよい。一例として、クライアント・システム105は、拡張可能なマーク付け言語(XML)形式、JavaScript(登録商標)オブジェクト表記法(JSON)形式もしくは属性と対応する属性値との関連付けを提供できる他の形式またはこれらの組み合わせでレコードを提供するよう構成されてもよい。
一例において、データ統合システム101は、1または複数の抽出-変換-ロード(ETL)バッチ処理を用いて、HyperText Transport Protocol(HTTP)通信もしくは他のタイプのデータ交換またはその両方を介して、クライアント・システム105からデータ・レコードをインポートしてもよい。データ統合システム101もしくはクライアント・システム105またはその両方は、パーソナル・コンピュータ(PC)、サーバ、モバイル・コンピューティング・デバイスもしくはこれらに類するものまたはこれらの組み合わせと関連付けられ得る。
データ統合システム101は、本開示の動作の少なくとも一部を実装するアルゴリズム120のような1以上のアルゴリズムを用いて、グラフ107を処理するように構成されてもよい。例えば、データ統合システム101は、アルゴリズム120を用いてグラフ107のデータ・レコードを処理し、グラフ・データベース内のデータ品質問題を発見してもよい。別個のコンポーネントとして示されているが、いくつかの実施形態においては、グラフ・データベース・システム103は、データ統合システム101に一部として含まれてもよい。
図1Bは、例示のドメイン・オントロジーに従ったグラフ107の簡略化された構造の図である。例示のオントロジーは、会社の従業員に関係する。グラフ107は、会社の従業員を表す複数のノード(例えばpersonノード)130を含みんでもよい。グラフ107は、また、それぞれの従業員に関連する人物を表す1以上のノード(例えば、spouseノード、child1ノード、child2ノードなど)130もしくは会社を表すノード(例えばcompanyノード)130またはその両方を含んでもよい。ノード130の各々は、それぞれのレコードのエンティティ属性の属性値を含んでもよい。例えば、従業員を表すノード(例えばpersonノード)130は、ステータス(Status)、年齢(age)、識別データ(ID)もしくはこれらに類するものまたはこれらの組み合わせなどのエンティティ属性135の属性値を含んでもよい。配偶者を表すノード(例えばspouseノード)130は、ステータス、年齢、識別データもしくはこれらに類するものまたはこれらの組み合わせなどのエンティティ属性135の属性値を含んでもよい。さらに、子供を表すノード130(例えばchild1、child2など)は、また、それぞれ、それぞれの子に関連付けられる、ステータス、年齢、識別データもしくはこれらに類するものまたはこれらの組み合わせなどのエンティティ属性135の属性値を含み得る。
ノード130は、複数のエッジ131によって共にリンクされる。エッジ131は、それぞれのノード間の関係を記述することができるエッジ属性値137に関連付けられてもよい。例えば、personノードおよびspouseノードをリンクするエッジ131は、personノードによって表される個人が、spouseノードによって表される個人の配偶者であることを示すエッジ属性値”Spouse-of”に関連付けられる。加えて、personノードおよびchild1ノードをリンクするエッジ131は、personノードによって表される個人が、child1ノードによって表される個人の親であることを示すエッジ属性値”parent-of”に関連付けられる。personノードおよびchild2ノードをリンクするエッジ131は、personノードによって表される個人が、child2ノードによって表される個人の親であることを示すエッジ属性値”parent-of”に関連付けられる。child1ノードおよびchild2ノードをリンクするエッジ131は、child1ノードによって表される個人が、child2ノードによって表される個人の兄弟であることを示すエッジ属性値”Sibling-of”に関連付けられる。child2ノードおよびchild1ノードをリンクするエッジ131は、child2ノードによって表される個人が、child1ノードによって表される個人の兄弟であることを示すエッジ属性値”Sibling-of”に関連付けられる。グラフ107を辿ることにより、データ統合システム101は、グラフ内でそれぞれのノードが他のいずれのノードに関連するかを決定することができる。
グラフは、図面(例えば、図1B、図4Bおよび図5B)において表される。グラフのノード(または頂点)は、図面において円または楕円により表され、エッジは、グラフの2つのそれぞれのノードを接続する線によって表される。ノードによって表される、spouse、person、child1、child2、companyもしくはこれらに類するものまたはこれらの組み合わせのようなエンティティは、ノードを描く円/楕円内で識別され得る。図面および説明の簡便のため、ごく少数のノードおよびエッジのみが、これらの関連するエンティティおよびエッジ属性の一部とともに示されている。しかしながら、グラフの各ノードおよび各エッジは、1以上のエンティティ属性および1以上のエッジ属性に関連付けられる可能性がある。
図2は、本開示の例示の実施形態に従った、第1グラフGR1(例えばグラフ107など)処理し、グラフ・データベースにおけるデータのデータ品質を測定するため(例えば潜在的なデータ品質問題を検出するため)の動作200を示すフローチャートである。説明の便宜上、図2において説明される動作は、図1Aにおいて示されたようなコンピューティング・システムにおいて実装されてもよいが、しかしながら、実施形態は、そのような実装に限定されない。いくつかの実施形態においては、図2の動作は、例えば、データ統合システム101によって実行されてもよい。
動作は、ステップ201で開始し、ここでは、コンピューティング・システム(例えば、コンピューティング・システム100、コンピューティング・システム600、もしくはこれらに類するものまたはこれらの組み合わせ)は、選択された一のノードn に基づいて、第1グラフGR1の第1サブグラフGR1subを決定する。例えば、第1グラフGR1(例えばグラフ107)の第1ノード群から一のノードn が選択されてもよい。いくつかの実施形態においては、一例として、一のノードに関係するデータ品質問題に関して検査する(例えばグラフにおけるデータのデータ品質を決定するための)要求を示す入力が受信される。いくつかの実施形態においては、一のノードは、グラフからランダムに選択されてもよい。いくつかの実施形態においては、一のノードn についてのデータ品質問題の検出は、第1グラフGR1(例えばグラフ107など)の各第1ノードについて実行される検査処理(例えば、データ品質の測定など)の一部である可能性がある。
いくつかの実施形態においては、第1グラフの構造は、事前定義された、または、所定の基準構造を反映する。基準構造は、例えば、図3を参照して説明するように決定されてもよい。一例として、第1サブグラフは、一のノードn と、少なくとも1つの一のノードn の隣接ノードn (i=1…n1)とを含む。すなわち、第1サブグラフは、一のノードn 、少なくとも1つの隣接ノードn および少なくとも1つのエッジEi0 を含む。一のノードn は、第1エンティティ属性のセットa …a N0を有していてもよい。少なくとも1つの近隣ノードn の各々は、第1エンティティ属性のセットa …a Niを有してもよく、ここで、N0およびNiは、エンティティ属性の総数である。少なくとも1つのエッジEi0 の各々は、エッジ属性のセットbi0 …bi0 Ni0を有してもよい。
動作は、ステップ203へ進み、ここでは、コンピューティング・システムは、第1グラフGR1の一のノードn に関連付けられたデータ品質問題を検出あるいは、さもなければ決定することができる。データ品質問題は、第1グラフGR1の第1サブグラフGR1subの第1エンティティ属性値および第1エッジ属性値に基づいて検出されてもよい。いくつかの実施形態においては、データ品質問題は、例えば、図5Aに関連して説明されるように、決定されてもよい。例えば、いくつかの実施形態においては、データ品質問題の検出は、comb1、comb2…combMのような属性値の1以上の組み合わせを決定することによって部分的に実行されてもよい。属性の組み合わせのうちの各組み合せは、属性a …a N0の少なくとも一部、属性a …a Niの少なくとも一部および属性bi0 …bi0 Ni0少なくとも一部の値を含む。一例として、組み合わせcomb1は、トリプレット(a ,a ,bio )、組み合わせcomb2は、(a ,a ,a ,a ,bio )、以下同様である。
いくつかの実施形態においては、例えば、それについて(例えば、データ品質問題を決定するため)データ品質が測定されるべき、グラフ・データベースに含まれるデータ(例えば、属性および他のノードとの関係を有する、サブグラフのノード)は、サブグラフを辿って、サブグラフに含まれるデータからテーブル・エントリおよび/またはトランザクションのセットを構築することによって処理され、例えば図5Aのステップ501に関して説明されるような表形式で表されるようにされてもよい。一例として、エントリ/トランザクションは、各エッジについて構築または計算されてもよく、また、エッジによって接続されたソース・ノードおよびターゲット・ノードの両方の全ての属性値、エッジについてのエッジ属性値(例えば関係性の一種)およびターゲット・ノードとターゲット・ノードの任意の他の近隣ノードとを接続するエッジのすべてのエッジ属性値(例えば関係の一種)から構成されてもよい。
さらに、属性の組み合わせの各々を検査し、例えば図5Aのステップ503に関して説明されているように、その組み合わせが、属性の組み合わせにおいて表されるべきものの期待を満たすか否かを決定することができる。そのような決定を容易にするために、いくつかの実施形態においては、1以上の基準(例えば、データ品質規則、アソシエーション規則など)が、複数の組み合わせの各組み合せについて、生成もしくはさもなければ提供またはこれらの両方がなされてもよい。一例として、いくつかの実施形態においては、アソシエーション・アルゴリズムが、グラフのノードのプロパティ/属性およびこれらの関係性の間の関係性を特徴付ける強いパターンを見つけるために適用され、1以上の基準(例えば、データ品質規則、アソシエーション規則など)生成または提供することができる。基準(例えば、データ品質規則、アソシエーション規則など)は、ノード間のエッジ(例えばリンク)のタイプとこれらのノードの属性との間の期待される関係を表してもよい。例えば、組み合わせcomb1について2つの基準(例えば、データ品質規則、アソシエーション規則など)comb1ref1,comb1ref2が提供され、以下同様である。組み合わせcomb1、comb2…combMの各々は、例えば、関連する基準(例えば、データ品質規則、アソシエーション規則)に違反するノードもしくはエッジまたはその両方を特定することによってデータ品質問題を決定または検出す際に使用するために、1以上の関連する基準(例えば、データ品質規則、アソシエーション規則など)と比較されてもよい。
組み合わせcomb1,comb2…combMのうちの任意の1つが対応する基準(例えば、データ品質規則、アソシエーション規則など)のいずれもと一致しない場合、そのような結果は、データについてデータ品質問題があることを示し得る。組み合わせが対応する基準(例えば、データ品質規則、アソシエーション規則など)に違反する(例えば一致しないなど)場合、基準(例えば、データ品質規則、アソシエーション規則など)に違反するノードもしくはエッジまたはその両方には、潜在的なデータ品質問題の指摘が提供されてもよい(例えばマークされるなど)。例えば、comb1は、基準(例えば、データ品質規則アソシエーション規則など)comb1ref1,comb1ref2のそれぞれと比較されてもよい。comb1が、2つの基準comb1ref1,comb1ref2の1つと等しい(例えば一致する)場合、データ品質問題は存在しない。comb1が、2つの基準comb1ref1,comb1ref2のいずれの1つとも等しくない(例えば一致しない)場合、この結果は、データについて潜在的なデータ品質問題が存在することを示す。関連付けられるノードもしくはエッジまたはその両方は、潜在的なデータ品質問題を有するとしてマークされてもよい。
一例として、属性の組み合わせcomb1は、次の値(”single”、”single”、”spouse of”)有し得て、これらは、二人の未婚(single)の個人が、同時に既婚(married)であり得ないため、データ品質問題を有する。基準の組み合わせcomb1ref1およびcomb1ref2は、それぞれ、次の値(”single”、”single”、”sibling of”)および(”married”、”married”、”spouse of”)を有してもよい。組み合わせcomb1と、comb1ref1およびcomb1ref2との比較により、データ品質問題があり、かつ、属性の組み合わせcomb1に関連付けられたノードもしくはエッジまたはその両方には潜在的なデータ品質問題の指摘が提供(例えばマーク付け)される得ることが、明らかになるであろう。
いくつかの実施形態においては、データ品質規則は、データ品質問題を検出するために第1サブグラフに適用されてもよい。データ品質規則は、図3を参照して説明するように、取得することができる。
図3は、本開示の実施形態に従ったデータ品質規則を決定するための動作300を示すフローチャートである。
動作は、ステップ301で開始し、ここでは、コンピューティング・システム(例えば、コンピューティング・システム100、コンピューティング・システム600もしくはこれらに類するものまたはこれらの組み合わせ)は、グラフを得るか、または、さもなければ、グラフと共に提供されてもよい。ステップ301で得られるかまたは提供されるグラフは、説明の明確化のため、第2グラフGR2と参照される。第2グラフGR2は、第2エンティティを表す第2ノードn と、2つのコードn ,n の第2エンティティ間の関係性を表す第2エッジEij とを含んでもよい。第2ノードn は、第2ノードにより表される第2エンティティを記述する第2エンティティ属性に関連付けられてもよい。第2エッジEij は、上記第2エッジにより表される関係性を記述する第2エッジ属性に関連付けられてもよい。
動作は、ステップ303に進み、ここでは、コンピューティング・システムは、第2グラフGR2の各第2エッジEij について第2サブグラフGR2sub ijを形成してもよい。いくつかの実施形態においては、第2サブグラフGR2sub ijの少なくとも一部の各第2サブグラフは、図2の第1サブグラフGR1subと同一の構造を有してもよい。例えば、いくつかの実施形態においては、第2サブグラフGR2sub ijの各第2サブグラフは、図2の第1サブグラフGR1subと同一構造を有してもよい。つまり、サブグラフGR2sub ijの構造は、図2において説明された動作に対する基準構造として提供されてもよい。第2サブグラフの各第2サブグラフGR2sub ijは、事前定義された最大近接レベル以下の第2サブグラフの第2エッジの第2ノードと他の第2ノードとの間の距離を有する。いくつかの実施形態においては、例えば、第2サブグラフGR2sub ijは、同一の最大近接レベルを用いて提供される。いくつかの実施形態においては、異なる例として、第2サブグラフGR2sub ijの1つのサブセットが、最大近接レベルd1で提供される一方で、第2サブグラフGR2sub ijの他のサブセットが、d1とは異なる最大近接レベルd2で提供されてもよい。いくつかの実施形態においては、他の例として、第2サブグラフGR2sub ijの各第2サブグラフは、異なる最大近接レベルを用いて提供されてもよい。第2サブグラフを決定するために用いられる最大近接レベルは、第2サブグラフそれぞれの構造を規定する。これらの構造は、図2において説明された動作において提供される第1サブグラフを定義するために使用される基準構造として提供されてもよい。
動作は、ステップ305に進み、ここでは、コンピューティング・システムは、形成された第2サブグラフGR2sub ijの第2エンティティ属性の属性値と、第2エッジ属性の属性値との間の関係に基づいて、データ品質規則(例えばアソシエーション規則など)決定してもよい。例えば、いくつかの実施形態においては、データ品質規則は、例えば、アソシエーション規則マイニング/学習処理/アルゴリズムを第2サブグラフの属性値に適用することによって、自動で生成されてもよい。いくつかの実施形態においては、他の例として、第2サブグラフに基づいてデータ品質規則を提供するためにユーザに入力が求められてもよい。そのような実施形態においては、データ品質規則を示すユーザ入力が、コンピュータ・システムによって取得されてもよい。
図4Aは、本開示の実施形態に従ったデータ品質規則を生成するための動作400を示すフローチャートである。図4Bに示したグラフ420を参照しながら図4Aの動作が説明される。
グラフ420は、4つのノードn ,n ,n ,n を含む。ノードn ,n ,n ,n の各々は、ノードに関連付けられたエンティティのエンティティ属性IDおよびStatusの値を有する。例えば、ノードn は、ID=1およびStatus=marriedを有する人物であるエンティティを表す。グラフ420は、さらに、ノードn (例えば、ソースノード)をノードn (例えばターゲット・ノード)にリンクするエッジE12 を有する。エッジE12 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの親であることを示すエッジ属性値”parent of”を有する。グラフ420は、さらに、ノードn をノードn にリンクするエッジE13 を有する。エッジE13 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの親であることを記述するエッジ属性値”parent of”を有する。グラフ420は、さらに、ノードn をノードn にリンクするエッジE14 を有する。エッジE14 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの配偶者であることを示すエッジ属性値”spouse of”を有する。グラフ420は、さらに、ノードn をノードn にリンクするエッジE23 を有する。エッジE23 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの兄弟であることを示すエッジ属性値”sibling of”を有する。グラフ420は、さらに、ノードn をノードn にリンクするエッジE32 を有する。エッジE32 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの兄弟であることを示すエッジ属性値”sibling of”を有する。
動作は、ステップ401から開始し、ここでは、コンピュータ・システム(例えば、コンピューティング・システム100、コンピューティング・システム600もしくはこれらに類するものまたはこれらの組み合わせ)は、グラフ(例えば、グラフ420)を辿り、5つのエッジE12 ,E13 ,E14 ,E23 およびE32 の各エッジを処理し、エッジにより表される関係のプロパティを決定し、これらをテーブル・エントリ/またはトランザクションに構築することができる。いくつかの実施形態においては、エッジに関連付けられるプロパティは、例えば、エッジによって接続されるソース・ノードおよびターゲット・ノードの全ての属性値、エッジのエッジ属性値、およびターゲット・ノードにリンクする任意の他のエッジのエッジ属性値を含み得る。一例として、これらのグラフを辿り、エントリ/トランザクションを構築する動作は、結果として、それぞれエッジE12 ,E13 ,E14 ,E23 およびE32 に関連付けられた以下の5つのエントリ/トランザクションT ~T をもたらす。
Figure 2022074045000002
この例では、エッジにおいて、E1は、ソース・ノードを参照し、E2は、ターゲット・ノードを参照する。
動作は、ステップ403へ進み、ここでは、コンピュータ・システムは、関係およびプロパティ/属性に少なくとも部分的に基づいてアソシエーション規則を決定する際に用いるために、事前定義された、または所定のアソシエーション・アルゴリズムを、テーブル・エントリT ~T に適用する。いくつかの実施形態においては、アソシエーション・アルゴリズムは、例えば、先験的(a priori)アルゴリズムであってよい。アソシエーション・アルゴリズムは、トランザクション/エントリに適用されて、充分な信頼度(例えば、事前定義したレベルを超える信頼度)を有するアソシエーション規則のセットを決定することができる。アソシエーション規則は、ノード間のエッジ(例えばリンク)のタイプと、これらのノードの属性値との間の期待される関係を表してもよい。一例として、結果として得られるアソシエーション規則のセットは、以下の3つの規則を含んでもよい:
Figure 2022074045000003
アソシエーション規則の各々は、条件部と帰結部と含む。例えば、上記の規則においては、各アソシエーション規則の帰結部は、記号”=>”により示されるか、先行される。
図5Aは、本開示の実施形態に従った、グラフ・データベースにおけるデータについてデータ品質問題を検出するための動作500を示すフローチャートである。図5Bに示したグラフ520を参照しながら図5Aの動作が説明される。
グラフ520は、4つのノードn ,n ,n ,n を含む。ノードn ,n ,n ,n の各々は、ノードに関連付けられたエンティティのエンティティ属性IDおよびStatusの値を有する。例えば、ノードn は、ID=1およびStatus=singleを有する人物であるエンティティを表す。グラフ520は、さらに、ノードn (例えば、ソースノード)をノードn (例えばターゲットノード)にリンクするエッジE12 を有する。エッジE12 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの親であることを示すエッジ属性値”parent of”を有する。グラフ520は、さらに、ノードn をノードn にリンクするエッジE13 を有する。エッジE13 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの親であることを示すエッジ属性値”parent of”を有する。グラフ520は、さらに、ノードn をノードn にリンクするエッジE14 を有する。エッジE14 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの配偶者であることを示すエッジ属性値”spouse of”を有する。グラフ520は、さらに、ノードn をノードn にリンクするエッジE23 を有する。エッジE23 は、ノードn によって表されるエンティティが、ノードn によって表されるエンティティの親であることを記述するエッジ属性値”parent of”有する。
動作は、ステップ501から開始し、ここでは、コンピュータ・システム(例えば、コンピューティング・システム100、コンピューティング・システム600もしくはこれらに類するものまたはこれらの組み合わせ)は、グラフ(例えば、グラフ520)を辿り、4つのエッジE12 ,E13 ,E14 およびE23 の各エッジを処理し、各エッジにより表される関係のプロパティを決定し、これらを(ステップ401で説明したものと同様のやり方で)テーブル・エントリ/またはトランザクションに構築することができる。各エッジにより表される関係のプロパティは、エッジによって接続されるソース・ノードおよびターゲット・ノードの属性値、各エッジのエッジ属性値、および、ターゲット・ノードを近隣ノードにリンクする任意の他のエッジのエッジ属性値を含み得る。一例として、グラフを辿り、エントリ/トランザクションを構築するこれらの動作は、結果として、それぞれエッジE12 ,E13 ,E14 およびE23 に関連付けられた以下の4つのエントリ/トランザクションT ~T の出力もたらす。
Figure 2022074045000004
この例では、ソース・ノードを参照し、E2は、エッジに接続するターゲット・ノードを参照する。
動作は、ステップ503へ進み、ここでは、コンピュータ・システムは、上記ステップ403で定義されたものなどのアソシエーション規則(例えば、データ品質規則など)を、ステップ501で取得された4つのテーブル・エントリ/トランザクションT ,T ,T ,T に適用する。一例として、アソシエーション規則を適用する動作は、以下の決定をもたらす。エントリ/トランザクションT は、規則1(E1.parentOf.E2 AND E1.parentOf.E3 => E2.isSibling.E3.)に違反する。規則1は、規則の条件部(E1.parentOf.E2 AND E1.parentOf.E3)が、エントリ/トランザクションT において提示される(例えば、これによって確認される)ので適用可能である。しかしながら、規則の帰結部(E2.isSibling.E3)が、エントリ/トランザクションT から見つからず(例えば、これによって確認されない)、ひいては、エントリ/トランザクションT は、規則1に違反する。エントリ/トランザクションT は、規則3(E1.isSpouseOf.E2 => E1.status: married AND E2.status: married.)に違反する。規則3は、規則の条件部(E1.isSpouseOf.E2)が、エントリ/トランザクションT において提示される(例えばこれによって確認される)ので適用可能である。しかしながら、エントリ/トランザクションT は、E1.status:singleを含み、ひいては、規則の帰結部(E1.status: married AND E2.status: married.)がエントリ/トランザクションT において一致しない(例えば、これによって確認されない)ので、エントリ/トランザクションT は、規則3に違反する。このようにして、エントリ/トランザクションT およびエントリ/トランザクションT に関連付けられたノードもしくはリンクまたはその両方の1または複数に潜在的なデータ品質問題の指摘が提供される(例えばマークされる)。
図6は、本開示の実施形態に従う、本明細書において説明される動作の少なくとも一部を実装することに適した汎用コンピューティング・システム600を表す。
本明細書で説明される動作もしくは方法またはその両方は、少なくとも部分的に非対話的であり、サーバまたは埋め込みシステムのような、コンピュータ化されたシステムによって、自動化され得ることが理解されよう。いくつかの実施形態においては、しかしながら、本明細書で説明される動作もしくは方法またはその両方は、少なくとも部分的に、対話型システムにおいて実装されてもよい。これらの動作もしくは方法またはその両方は、ソフトウェア(例えば、ソフトウェア612、BIOS622、ファームウェアなど)、ハードウェア(たとえば、プロセッサ605など)、または、これらの組み合わせにおいてさらに実装されてもよい。いくつかの実施形態においては、本明細書で説明される動作もしくは方法またはその両方は、パーソナル・コンピュータ、ワークステーション、ミニコンピュータ、メインフレーム・コンピュータもしくはこれらに類するものまたはこれらの組み合わせなどの特定用途または汎用デジタル・コンピュータによって実行され得るソフトウェアにおいて、実行形式プログラムとして実装されてもよい。図6に示されるように、システム600は、その結果として、汎用コンピュータ601を含む。
いくつかの実施形態においては、ハードウェア・アーキテクチャに関し、図6に示されるように、コンピュータ601は、プロセッサ605と、メモリ・コントローラ615に結合されたメモリ(例えば、メインメモリなど)610と、ローカル入力/出力コントローラ635を介して通信可能に結合される1以上の入力および/または出力(I/O)デバイス(または周辺機器)10,645とを含む。入力/出力コントローラ635は、これに限定されるものではないが、当該技術分野で知られているように、1以上のバスまたは他の有線または無線の接続であってよい。入力/出力コントローラ635は、通信を可能にするため、コントローラ、バッファ(キャッシュ)、ドライバ、リピータおよび受信機のような追加の要素を有する可能性があるが、これらは簡便のため省略される。さらに、ローカル・インタフェースは、上述したコンポーネントの間の適切な通信を可能とするためにアドレス、制御もしくはデータまたはこれらの組み合わせの接続を含んでもよい。本明細書で説明されるようにI/Oデバイス10,645は、一般的には、当該技術分野で知られた、任意の一般化された暗号カードまたはスマート・カードを含んでもよい。
プロセッサ605は、具体的にはメモリ610に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ605は、任意のカスタム・メイドのまたは市販のプロセッサ、中央処理装置(CPU)、コンピュータ601に関連付けられたいくつかのプロセッサのうちの補助プロセッサ、半導体ベースのマイクロプロセッサ(例えば、マイクロチップまたはチップセットの形態で)もしくはソフトウェア命令を実行するための任意のデバイスまたはこれらの組み合わせであってよい。
メモリ610は、揮発メモリ要素(例えば、DRAM,SRAM,SDRAMなどのランダム・アクセス・メモリ(RAM))、非揮発メモリ要素(例えば、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROM)、電気的消去可能プログラマブル・リード・オンリー・メモリ(EEPROM)、プログラマブル・リード・オンリー・メモリ(PROM)など)の任意の1つまたは組み合わせを含んでもよい。メモリ610は、種々のコンポーネントが離れた場所にあるが、プロセッサ605によってアクセスできる、分散アーキテクチャを有してもよいことに留意されたい。
メモリ610内のソフトウェア612は、論理機能、とりわけ本開示の実施形態に関与する機能を実装するための実行可能な命令の順序付きリストをそれぞれ含む1以上の別個のプログラムを含んでもよい。図6の例においては、メモリ610内のソフトウェア612は、命令(例えばデータベース管理システムなどのデータベースを管理するための命令)を含む。
メモリ610内のソフトウェアは、典型的には、適切なオペレーティング・システム(OS)611も含む。OS611は、基本的に、本明細書で説明する動作を実装するソフトウェア612などの他のコンピュータ・プログラムの実行を制御する。
本明細書で説明される方法は、ソース・プログラム、実行形式プログラム(例えばオブジェクト・コード)、スクリプトもしくは実行するべき命令のセット(例えばソフトウェア612など)を含む他の実体物またはこれらの組み合わせの形態であってよい。ソース・プログラムについては、プログラムは、メモリ610に含まれても含まれなくてもよいコンパイラ、アセンブラ、インタプリタもしくはこれらに類するものまたはこれらの組み合わせを介して、OS611に関連して適切に動作するために変換(translate)される必要がある。さらに、方法は、データおよびメソッドのクラスを有するオブジェクト指向プログラミング言語、または、ルーチン、サブルーチンもしくは関数またはこれらの組み合わせを有する手続型プログラミング言語で書かれてもよい。
例示の実施形態においては、従来型のキーボード650およびマウス655が、入力/出力コントローラ635に結合されてもよい。例えば、I/Oデバイス645などの他の出力装置は、例えば、これに限定されないが、プリンタ、スキャナ、マイクなどの入力装置を含んでもよい。最後に、I/Oデバイス10,645は、例えば、これに限定されないが、ネットワーク・インタフェース・カードまたは(他のファイル、デバイス、システムまたはネットワークにアクセスするための)変調器/復調器、または、高周波、他のトランシーバ、電話インタフェース、ブリッジ、ルータもしくはこれらに類するものまたはこれらの組み合わせなど、入力および出力の両方を通信するデバイスをさらに含んでもよい。I/Oデバイス10,645は、当該技術分野で知られた任意の汎用暗号カードまたはスマート・カードであってもよい。システム600は、さらに、ディスプレイ630に結合されたディスプレイ・コントローラ625を含んでもよい。いくつかの実施形態においては、システム600は、ネットワーク665に結合するためのネットワーク・インタフェースをさらに含んでもよい。ネットワーク655は、ブロードバンド接続を介して、コンピュータ601と他の外部サーバ、クライアントもしくはこれらに類するものまたはこれらの組み合わせの間の通信のためのIPベースのネットワークであってもよい。ネットワーク665は、本明細書で議論した方法の一部または全部のステップを実行するために関与し得るコンピュータ601および外部システム30の間でデータを送信または受信する。例示的な実施形態において、ネットワーク665は、サービスプロバイダによって管理されたマネージドIPネットワークであってもよい。ネットワーク665は、例えば、Wi-Fi(登録商標)、WiMAX(登録商標)もしくはこれらに類するものまたはこれらの組み合わせなどの無線プロトコルおよび技術を使用するなど、無線様式で実装されてもよい。ネットワーク665は、また、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワークもしくは他の類似のタイプのネットワーク環境またはこれらの組み合わせなどのパケット交換ネットワークであってもよい。ネットワーク665は、固定された無線ネットワーク、無線ローカル・エリア・ネットワーク(W(LAN))、無線ワイド・エリア・ネットワーク(WWAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、イントラネットもしくは他の適切なネットワーク・システムまたはこれらの組み合わせであってよく、信号を受信しまた送信するための装置を含む。
コンピュータ601がPC、ワークステーション、インテリジェント・デバイスもしくはこれらに類するものまたはこれらの組み合わせである場合は、メモリ610内のソフトウェアは、さらに、BIOS(Basic Input Output System)622を含んでもよい。BIOSは、起動時にハードウェアを初期化し、テストし、OS611を起動し、ハードウェア・デバイスの間でデータの転送をサポートする、重要なソフトウェアルーチンのセットである。BIOSは、コンピュータ601がアクティベートされた場合にBIOSが実行されるようにROMに格納される。
コンピュータ601が稼働中である場合、プロセッサ605は、メモリ610内に格納されるソフトウェア612を実行し、メモリ610へのまたはメモリ610からのデータを通信し、かつ、一般にソフトウェアに従ってコンピュータ601の動作を制御するように構成される。本明細書で説明された方法およびOS611は、全体として、または部分的に、しかし、典型的には後者で、プロセッサ605により読み込まれ、プロセッサ605内でおそらくはバッファされ、そして、実行される。
本明細書で説明されるシステムおよび方法がソフトウェア612において実装される場合、図6に示すように、方法は、コンピュータ関連システムまたは方法によって、または関連して使用するために、ストレージ620などの任意のコンピュータ読取可能媒体に格納されてもよい。ストレージ620は、ハード・ディスク・ドライブ(HDD)ストレージなどのディスク・ストレージを含んでもよい。
本発明は、任意の統合の可能な技術的な詳細のレベルでのシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の側面を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含んでもよい。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読ストレージ媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のより具体的な例示の例示列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピーディスク(登録商標)、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはこれらの組み合わせといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバまたはこれらの組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソース・コードあるいはオブジェクト・コードであってよく、1以上のプログラミング言語は、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの手続型言語を含む。コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、本発明の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよく、この電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む。
本発明の側面は、本明細書において、本発明の実施形態に従った方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供され、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行される命令が、フローチャート図もしくはブロックまたはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するように、マシンを生成する。これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置もしくは他のデバイスまたはこれらの組み合わせに特定のやり方で機能するよう指示できるコンピュータ可読ストレージ媒体に格納され、それに格納された命令を有するコンピュータ可読ストレージ媒体に、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
コンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で実行される命令が、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成することもできる。
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に従ったシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、特定の論理機能を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表す可能性がある。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる可能性がある。例えば、連続して示される2つのブロックは、実際には、同時に、実質的に同時に、または部分的にまたは全体的に一時的に重なった仕方で、一つのステップとして完了されてもよく、あるいは、複数のブロックは、関与する機能性に応じて逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロックおよびブロック図もしくはフローチャート図またはその両方の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実施する、特定目的ハードウェアベースのシステムによって実装されてもよいことに留意されたい。
定義
「本発明」は、用語”本発明”によって説明されている主題が、出願時の特許請求の範囲または特許の審査後に最終的に発行され得る特許請求の範囲のいずれかにより対象とされる旨の絶対的な表示と見なされるべきではない。用語”本発明”は、読者が、本明細書の開示が潜在的に新しいと考えられる一般的な感触を得るのを助けるために使用されるが、用語”本発明”の使用によって示されるこの理解は、仮かつ暫定的なものであり、関係のある情報が発展するに従って、また、特許請求の範囲が潜在的に補正されるに従って、特許審査の過程にわたって変更される可能性がある。
「実施形態」については、上記”本発明”の定義を参照されたい。用語”実施形態”に対しては同様の注意が適用される。
「および/または」または「AもしくはBまたはその両方」もしくは「A、BもしくはCまたはこれらの組み合わせ」という表現は、包含的論理和であり、例えばA、Bおよび/またはC(A、BもしくはCまたはこれらの組み合わせ)は、少なくとも1つのAまたはBまたはCが真であり、当てはまることを意味する。
「含んでいる(including)/含む(include)/含む(includes)」は、特に明示的に示さない限り、”含むが、必ずしも限定されるものではない”ことを意味する。
「データ通信」は、現在知られている、または、将来開発される任意の種類のデータ通信スキームをいい、これらのデータ通信スキームには、無線通信、有線通信、無線部分および有線部分を有する通信ルートが含まれる。データ通信は、(i)直接データ通信、(ii)間接データ通信もしくは(iii)フォーマット、パケット化ステータス、媒体、暗号化ステータスもしくはプロトコルまたはこれらの組み合わせがデータ通信の全過程を通じて固定されるデータ通信、またはこれらの組み合わせに必ずしも限定されない。
「受信する/提供する/送信する/入力する/出力する/報告する」というこれらの単語は、特に明示的に特定の断りがない限り、(i)これらの目的語と主語との間の関係性に関する特定の程度の直接性(directness)もしくは(ii)これらの目的語と主語との間に介在する中間的な要素、行為もしくは物またはこれらの組み合わせの欠如、またはその両方を暗示するものと解釈されるべきではない。
「モジュール/サブモジュール」は、モジュールが(i)単一の局所近接にある、(ii)広範囲に分散される、(iii)ソフトウェア・コードの大部分内で単一の局所近接にある、(iv)ソフトウェア・コードの単一の部分内に位置する、(v)単一のストレージ・デバイス、メモリまたは媒体に位置する、(vi)機械的に接続される、(vii)電気的に接続される、もしくは(viii)データ通信で接続されるかに関わらず、いくつかの機能を行うために協働的に動作するハードウェア、ファームウェアもしくはソフトウェアまたはこれらの組み合わせの任意のセットをいう。
「コンピュータ」は、有意なデータ処理および/または機械可読命令読み込み機能を有する任意のデバイスをいい、このデバイスには、デスクトップ・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)ベースのデバイス、スマートフォン、パーソナル・デジタル・アシスタンス(PDA)、ボディ装着または挿入型コンピュータ、組み込みデバイス・スタイルのコンピュータ、特定用途向け集積回路ベースのデバイスが含まれるが、これらに限定されない。
100…コンピューティング・システム、101…データ統合システム、103…グラフ・データベース・システム、105…クライアント・システム、107,420,520…グラフ、120…アルゴリズム、130…ノード、131…エッジ、135…エンティティ属性、137…エッジ属性値、600…コンピューティング・システム、601…コンピュータ、605…プロセッサ、610…メモリ、611…OS、612…ソフトウェア、615…メモリ・コントローラ、622…BIOS、625…ディスプレイ・コントローラ、630…ディスプレイ、635…ローカル入力/出力コントローラ、10,645…I/Oデバイス、650…キーボード、655…マウス、30…外部システム、665…ネットワーク

Claims (20)

  1. コンピュータ実装方法であって、
    第1エンティティを表す第1ノードと、第1エンティティ間の関係性を表す第1エッジとを含む第1グラフを取得することであって、前記第1ノードは、前記第1ノードにより表される前記第1エンティティを記述する第1エンティティ属性に関連付けられ、前記第1エッジは、前記第1エッジにより表される前記関係性を記述する第1エッジ属性に関連付けられる、取得することと、
    前記第1グラフの前記第1ノードの一のノードについて、第1サブグラフを決定することであって、前記第1サブグラフは、前記一のノードと、少なくとも1つの前記一のノードの隣接ノードを含む、決定することと、
    データ品質規則のセットの1以上の適用可能な規則を前記第1サブグラフの第1エンティティ属性値および第1エッジ属性値に適用することに少なくとも部分的に基づいて、前記一のノードに関するデータ品質問題を決定することであって、前記データ品質規則のセットは、グラフノード間のエッジのタイプおよび前記グラフノードの属性間の関係を表す、決定することと
    を含む、方法。
  2. 前記データ品質問題が
    前記一のノードの1以上の第1エンティティ属性値、および
    前記一のノードが接続する第1エッジの1以上の第1エッジ属性値
    のうちの1または複数と関連付けられることを決定すること
    をさらに含む、請求項1に記載のコンピュータ実装方法。
  3. 前記データ品質問題が、前記一のノードおよび前記一のノードが接続される第1エッジの少なくとも1つに関連するとの指摘を提供すること
    をさらに含む、請求項1または2に記載のコンピュータ実装方法。
  4. 前記第1サブグラフにおいて前記一のノードと前記第1サブグラフの他の第1ノードとの間の距離が、事前定義された距離のセットの1つの距離以下である、請求項1~3のいずれか1項に記載のコンピュータ実装方法。
  5. 前記第1サブグラフは、前記一のノード、前記一のノードに第1エッジを介して接続された他の第1ノード、および、前記一のノードに隣接する、または、前記一のノードに接続された前記他の第1ノードに隣接する、少なくとも1つの第1ノードによって形成される、請求項1~4のいずれか1項に記載のコンピュータ実装方法。
  6. 第2エンティティを表す第2ノードと、第2エンティティ間の関係性を表す第2エッジとを含む第2グラフを取得することであって、前記第2ノードは、前記第2ノードにより表される前記第2エンティティを記述する第2エンティティ属性に関連付けられ、前記第2エッジは、前記第2エッジにより表される前記関係性を記述する第2エッジ属性に関連付けられる、取得することと、
    前記第2グラフの各第2エッジについて、1以上の第2サブグラフを生成することであって、前記1以上の第2サブグラフの各第2サブグラフは、事前定義された最大近接レベル以下の前記第2エッジの第2ノードと前記第2サブグラフの他の第2ノードとの間の距離を有し、前記1以上の第2サブグラフの前記最大近接レベルは、前記距離のセットを定義する、生成することと、
    生成された前記1以上の第2サブグラフの第2エンティティ属性の属性値と第2エッジ属性の属性値との間の関係に少なくとも部分的に基づいて、前記データ品質規則のセットを決定することと、
    前記データ品質規則のセットを、前記データ品質問題を検出する際に使用するために提供すること
    をさらに含む、請求項4に記載のコンピュータ実装方法。
  7. 前記第2サブグラフのノードの数が、ノードの最大数よりも小さくなるように最大近接レベルを定義すること
    をさらに含む、請求項6に記載のコンピュータ実装方法。
  8. 前記データ品質規則のセットを決定することは、
    前記1以上の第2サブグラフの各第2サブグラフについてデータベース・エントリを生成することであって、前記データベース・エントリは、対応する各第2サブグラフの前記第2ノードおよび前記第2エッジのエンティティ属性値およびエッジ属性値を含む、生成することと、
    アソシエーション・アルゴリズムを前記データベース・エントリに適用して、アソシエーション規則を検出することと、
    検出された各アソシエーション規則に関連付けられた信頼度に少なくとも部分的に基づいて、検出された前記アソシエーション規則からアソシエーション規則を選択することであって、前記データ品質規則は、選択されたアソシエーション規則を含む、選択することと
    を含む、請求項6または7に記載のコンピュータ実装方法。
  9. 前記アソシエーション規則を選択することは、
    閾値より小さな信頼度を有する、検出されたアソシエーション規則を除外すること
    をさらに含む、請求項8に記載のコンピュータ実装方法。
  10. 前記第1グラフおよび前記第2グラフは、同一のドメインのオントロジーを表す、請求項6~9のいずれか1に記載のコンピュータ実装方法。
  11. 前記第1グラフおよび前記第2グラフは、同一のグラフのサブグラフである、請求項6~9のいずれか1に記載のコンピュータ実装方法。
  12. 前記第1グラフおよび前記第2グラフは、同一のグラフである、請求項6~9のいずれか1に記載のコンピュータ実装方法。
  13. 第2エンティティを表す第2ノードと、第2エンティティ間の関係性を表す第2エッジとを含む第2グラフを取得することであって、前記第2ノードは、前記第2ノードにより表される前記第2エンティティを記述する第2エンティティ属性に関連付けられ、前記第2エッジは、前記第2エッジにより表される前記関係性を記述している第2エッジ属性に関連付けられる、取得することと、
    前記第2グラフの各第2エッジについて、前記第1サブグラフと同一の構造を有する第2サブグラフを生成することと、
    生成された前記第2サブグラフの第2エンティティ属性の属性値と第2エッジ属性の属性値との間の関係に少なくとも部分的に基づいて、前記データ品質規則のセットを決定することと、
    前記データ品質規則のセットを、前記データ品質問題を検出する際に使用するため提供することと
    を含む、請求項1~5のいずれか1項に記載のコンピュータ実装方法。
  14. コンピュータ・プログラムであって、コンピュータに、
    第1エンティティを表す第1ノードと、第1エンティティ間の関係性を表す第1エッジとを含む第1グラフを取得することであって、前記第1ノードは、前記第1ノードにより表される前記第1エンティティを記述する第1エンティティ属性に関連付けられ、前記第1エッジは、前記第1エッジにより表される前記関係性を記述する第1エッジ属性に関連付けられる、取得することと、
    前記第1グラフの前記第1ノードの一のノードについて第1サブグラフを決定することであって、前記第1サブグラフは、前記一のノードと、少なくとも1つ前記一のノードの隣接ノードとを含む、決定することと、
    データ品質規則のセットの1以上の適用可能な規則を、前記第1サブグラフの第1エンティティ属性値および第1エッジ属性値に適用することに少なくとも部分的に基づいて、前記一のノードに関するデータ品質問題を決定することであって、前記データ品質規則のセットは、グラフノード間のエッジのタイプと、前記グラフノードの属性との間の関係を表す、決定することと
    を実行させるためのコンピュータ・プログラム。
  15. 前記コンピュータ・プログラムは、前記コンピュータに、
    前記データ品質問題が、前記一のノードおよび前記一のノードが接続される第1エッジの少なくとも1つに関連するとの指摘を提供すること
    をさらに実行させる、請求項14に記載のコンピュータ・プログラム。
  16. 前記第1サブグラフは、前記一のノード、前記一のノードに第1エッジを介して接続された他の第1ノード、および、前記一のノードに隣接する、または、前記一のノードに接続された前記他の第1ノードに隣接する、少なくとも1つの第1ノードによって形成される、請求項14または15に記載のコンピュータ・プログラム。
  17. 前記コンピュータ・プログラムは、前記コンピュータに、
    第2エンティティを表す第2ノードと、第2エンティティ間の関係性を表す第2エッジとを含む第2グラフを取得することであって、前記第2ノードは、前記第2ノードにより表される前記第2エンティティを記述する第2エンティティ属性に関連付けられ、前記第2エッジは、前記第2エッジにより表される前記関係性を記述する第2エッジ属性に関連付けられる、取得することと、
    前記第2グラフの各第2エッジについて、1以上の第2サブグラフを生成することであって、前記1以上の第2サブグラフの各第2サブグラフは、事前定義された最大近接レベル以下の前記第2エッジの第2ノードと前記第2サブグラフの他の第2ノードとの間の距離を有し、前記1以上の第2サブグラフの前記最大近接レベルは、前記距離のセットを定義する、生成することと、
    生成された前記1以上の第2サブグラフの第2エンティティ属性の属性値と第2エッジ属性の属性値との間の関係に少なくとも部分的に基づいて、前記データ品質規則のセットを決定することと、
    前記データ品質規則のセットを、前記データ品質問題を検出する際に使用するために提供することと
    をさらに実行させる、請求項14~16のいずれか1項に記載のコンピュータ・プログラム。
  18. 前記データ品質規則のセットを決定することは、
    前記1以上の第2サブグラフの各第2サブグラフについてデータベース・エントリを生成することであって、前記データベース・エントリは、対応する各第2サブグラフの前記第2ノードおよび前記第2エッジのエンティティ属性値およびエッジ属性値を含む、生成することと、
    アソシエーション・アルゴリズムを前記データベース・エントリに適用して、アソシエーション規則を検出することと、
    検出された各アソシエーション規則に関連付けられた信頼度に少なくとも部分的に基づいて、検出された前記アソシエーション規則からアソシエーション規則を選択することであって、前記データ品質規則は、選択された前記アソシエーション規則を含む、選択することと
    をさらに実行させる、請求項17に記載のコンピュータ・プログラム。
  19. コンピュータ・システムであって、
    プロセッサ・セットと、
    コンピュータ可読記録媒体と
    を含み、前記プロセッサ・セットは、前記コンピュータ可読記録媒体に格納されたプログラム命令を実行することによって、
    第1エンティティを表す第1ノードと、第1エンティティ間の関係性を表す第1エッジとを含む第1グラフを取得することであって、前記第1ノードは、前記第1ノードにより表される前記第1エンティティを記述する第1エンティティ属性に関連付けられ、前記第1エッジは、前記第1エッジにより表される前記関係性を記述する第1エッジ属性に関連付けられる、取得することと、
    前記第1グラフの前記第1ノードの一のノードについて第1サブグラフを決定することであって、前記第1サブグラフは、前記一のノードと、少なくとも1つ前記一のノードの隣接ノードとを含む、決定することと、
    データ品質規則のセットの1以上の適用可能な規則を、前記第1サブグラフの第1エンティティ属性値および第1エッジ属性値に適用することに少なくとも部分的に基づいて、前記一のノードに関するデータ品質問題を決定することであって、前記データ品質規則のセットは、グラフノード間のエッジのタイプと、前記グラフノードの属性との間の関係を表す、決定することと
    を実行するように構成されている、コンピュータ・システム。
  20. 前記プロセッサ・セットは、前記コンピュータ可読記録媒体に格納されたプログラム命令を実行することによって、
    前記データ品質問題が、前記一のノードおよび前記一のノードが接続される第1エッジの少なくとも1つに関連するとの指摘を提供すること
    を実行するよう構成されている、請求項19に記載のコンピュータ・システム。
JP2021174001A 2020-10-29 2021-10-25 コンピュータ実装方法、コンピュータ・プログラムおよびコンピュータ・システム(グラフ・データベースにおけるデータのデータ品質の測定) Pending JP2022074045A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/083,357 US11651055B2 (en) 2020-10-29 2020-10-29 Measuring data quality of data in a graph database
US17/083,357 2020-10-29

Publications (1)

Publication Number Publication Date
JP2022074045A true JP2022074045A (ja) 2022-05-17

Family

ID=78594980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021174001A Pending JP2022074045A (ja) 2020-10-29 2021-10-25 コンピュータ実装方法、コンピュータ・プログラムおよびコンピュータ・システム(グラフ・データベースにおけるデータのデータ品質の測定)

Country Status (5)

Country Link
US (1) US11651055B2 (ja)
JP (1) JP2022074045A (ja)
CN (1) CN114428882A (ja)
DE (1) DE102021123578A1 (ja)
GB (1) GB2601888A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11936435B2 (en) * 2022-03-23 2024-03-19 Aleksandar MILOJKOVIC Systems and methods for combination telecommunications and power networks
CN115994194B (zh) * 2023-03-23 2023-06-02 河北东软软件有限公司 政务大数据的数据质量检查方法、系统、设备及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783096B2 (en) * 2005-10-17 2010-08-24 Siemens Corporation Device systems and methods for imaging
US7836004B2 (en) * 2006-12-11 2010-11-16 International Business Machines Corporation Using data mining algorithms including association rules and tree classifications to discover data rules
US8185558B1 (en) * 2010-04-19 2012-05-22 Facebook, Inc. Automatically generating nodes and edges in an integrated social graph
EP2963563A1 (en) * 2014-06-30 2016-01-06 Fujitsu Limited Computing apparatus and method for managing a graph database
US10176609B2 (en) * 2016-05-11 2019-01-08 Runtime Collective Limited Analysis and visualization of interaction and influence in a network
US10068666B2 (en) * 2016-06-01 2018-09-04 Grand Rounds, Inc. Data driven analysis, modeling, and semi-supervised machine learning for qualitative and quantitative determinations
US10685053B2 (en) * 2016-07-02 2020-06-16 Hcl Technologies Limited System and method for generating professional profile for employees
US11392875B2 (en) * 2016-12-06 2022-07-19 Refinitiv Us Organization Llc Risk identification engine and supply chain graph generator

Also Published As

Publication number Publication date
CN114428882A (zh) 2022-05-03
DE102021123578A1 (de) 2022-05-05
GB202114409D0 (en) 2021-11-24
US20220138512A1 (en) 2022-05-05
US11651055B2 (en) 2023-05-16
GB2601888A (en) 2022-06-15

Similar Documents

Publication Publication Date Title
Ringle et al. Partial least squares structural equation modeling in HRM research
US11429878B2 (en) Cognitive recommendations for data preparation
US10394705B2 (en) Regression testing of SQL execution plans for SQL statements
US11321304B2 (en) Domain aware explainable anomaly and drift detection for multi-variate raw data using a constraint repository
US20190384745A1 (en) Systems and Methods for Management of Data Platforms
US20150356123A1 (en) Systems and methods for management of data platforms
US11500876B2 (en) Method for duplicate determination in a graph
US20130311517A1 (en) Representing Incomplete and Uncertain Information in Graph Data
US11531656B1 (en) Duplicate determination in a graph
US20200320153A1 (en) Method for accessing data records of a master data management system
US10956453B2 (en) Method to estimate the deletability of data objects
US11366843B2 (en) Data classification
JP2022074045A (ja) コンピュータ実装方法、コンピュータ・プログラムおよびコンピュータ・システム(グラフ・データベースにおけるデータのデータ品質の測定)
US11205138B2 (en) Model quality and related models using provenance data
US20170083820A1 (en) Posterior probabilistic model for bucketing records
US20220188341A1 (en) Computer-implemented methods, systems comprising computer-readable media, and electronic devices for narrative-structured representation of and intervention into a network computing environment
US20140379723A1 (en) Automatic method for profile database aggregation, deduplication, and analysis
WO2023154779A2 (en) Methods and systems for identifying anomalous computer events to detect security incidents
JP2018170008A (ja) エンティティの属性をマッピングする方法及びシステム
US11687574B2 (en) Record matching in a database system
CN115803726A (zh) 使用合格关系得分的主数据的改进的实体解析
US11941056B2 (en) Method for weighting a graph
US20220114189A1 (en) Extraction of structured information from unstructured documents
US11775532B1 (en) Systems and methods for resolving relationships within data sets
US20220188344A1 (en) Determining an ontology for graphs

Legal Events

Date Code Title Description
RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20211125

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240307