(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】データフィールドのプロファイルデータからのデータフィールドの意味論的意味の発見
(51)【国際特許分類】
G06F 16/21 20190101AFI20241119BHJP
【FI】
G06F16/21
(21)【出願番号】P 2021571432
(86)(22)【出願日】2020-05-29
(86)【国際出願番号】 US2020035226
(87)【国際公開番号】W WO2020243499
(87)【国際公開日】2020-12-03
【審査請求日】2023-05-29
(32)【優先日】2019-05-31
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-02-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】509123208
【氏名又は名称】アビニシオ テクノロジー エルエルシー
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】クリストファー・サーストン・バトラー
(72)【発明者】
【氏名】ティモシー・スペンサー・ブッシュ
【審査官】原 秀人
(56)【参考文献】
【文献】米国特許出願公開第2016/0283527(US,A1)
【文献】特表2015-533436(JP,A)
【文献】国際公開第2018/025706(WO,A1)
【文献】米国特許出願公開第2018/0240019(US,A1)
【文献】特開2018-151805(JP,A)
【文献】米国特許出願公開第2013/0006914(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
1つ又は複数のデータセットに含まれるフィールドのデータ値の意味論的意味を発見するための、データ処理システムによって実行される方法であって、前記方法は、
前記1つ又は複数のデータセットに含まれるフィールドを識別することであって、前記フィールドは、識別子に関連付けられる、識別することと、
前記フィールドの1つ又は複数のデータ値を識別することであって、少なくとも前記データ値のうちの第1のデータ値は、前記データ値のうちの第2のデータ値と異なる、識別することと、
前記フィールドの前記1つ又は複数のデータ値に基づいて、前記フィールドの前記1つ又は複数のデータ値の1つ又は複数の属性を特定することと、
複数のテストにアクセスすることであって、
前記テストは、1つ又は複数の所定の属性に対して提案された意味論的意味を指定
し、前記意味論的意味は、所定のフィールドにどのような種類のデータ値が含まれるかを示す、アクセスすることと、
前記フィールドの1つ又は複数のデータ値の前記特定された1つ又は複数の属性に少なくとも前記複数のテストを適用することと、
前記フィールド
の前記1つ又は複数のデータ値の前記特定された1つ又は複数の属性に少なくとも前記複数のテストを適用することに基づいて、前記フィールドの前記1つ又は複数のデータ値の1つ又は複数の提案された意味論的意味を指定することと、
前記フィールドに対して前記1つ又は複数の提案された意味論的意味の間の類似性を特定することと、
前記1つ又は複数の提案された意味論的意味の間の前記類似性に基づいて、前記提案された意味論的意味の1つを、前記フィールドの前記1つ又は複数のデータ値の前記意味論的意味を識別するものとして識別することと、
データストア内において、前記フィールドの前記識別子を、前記フィールドの前記1つ又は複数のデータ値の前記識別された意味論的意味と共に保存することと
を含む、方法。
【請求項2】
前記フィールドのデータ値のフォーマットを特定することをさらに含み、前記1つ又は複数の属性は前記フォーマットを示す、請求項1に記載の方法。
【請求項3】
前記フィールドに含まれる前記データ値を表す統計値を特定することをさらに含み、前記1つ又は複数の属性は統計値を示す、請求項1に記載の方法。
【請求項4】
前記統計値は、前記フィールドの前記1つ又は複数のデータ値の最小長さ、前記フィールドの前記1つ又は複数のデータ値の最大長さ、前記フィールドの最も一般的なデータ値、前記フィールドの最も一般的でないデータ値、前記フィールドの最大データ値及び前記フィールドの最小データ値の少なくとも1つを含む、請求項3に記載の方法。
【請求項5】
前記複数のテストを適用することは、
前記フィールドが、前記1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、
前記プライマリキーに関連する前記複数のテストのうち1つのテストを選択することと
を含む、請求項1に記載の方法。
【請求項6】
前記複数のテストを適用することは、前記フィールドのデータ値の、用語集内の用語とのメタデータ比較を行うことを含む、請求項1に記載の方法。
【請求項7】
前記複数のテストを適用することは、
前記フィールドの前記データ値の前記1つ又は複数の属性から、前記フィールドの前記1つ又は複数のデータ値によって表されるパターンを特定することと、
前記パターンにマッピングされる特定の意味論的意味を特定することと、
前記フィールドを前記特定の意味論的意味でラベル付けすることと
を含む、請求項1に記載の方法。
【請求項8】
前記複数のテストを適用することは、
データ集合を表す値のリストを検索することと、
前記フィールドの前記1つ又は複数のデータ値を前記値のリストと比較することと、
前記比較することに応答して、前記データ値の閾値数が値の前記リストの前記値と一致することを特定することと、
前記特定することに応答して、前記フィールドを、前記データ集合を指定する特定の意味論的意味でラベル付けすることと
を含む、請求項1に記載の方法。
【請求項9】
前記複数のテストを適用することは、
前記フィールドのための少なくとも2つの意味論的意味を生成することと、
前記少なくとも2つの意味論的意味が相互に排他的であるか又は包含的であるかを特定することと
を含む、請求項1に記載の方法。
【請求項10】
前記複数のテストを適用することに応答して、前記フィールドと、前記1つ又は複数のデータセットの別のフィールドとの間の関係を特定することをさらに含む、請求項1に記載の方法。
【請求項11】
前記関係は、前記フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、前記第一のデータ値が前記第二のデータ値と相関するという表示又は前記第一のデータ値が前記第二のデータ値と同一であるという表示の1つを含む、請求項10に記載の方法。
【請求項12】
前記複数のテストは、少なくとも1つの重み値にそれぞれ関連付けられ、前記方法は、
少なくとも1つのテストに関連付けられた重み値を更新することと、
前記更新された重み値を使用して、前記フィールドの前記データ値の前記1つ又は複数の属性に基づいて前記テストを再び適用することと
をさらに含む、請求項1に記載の方法。
【請求項13】
機械学習プロセスを使用して前記複数のテストを訓練することをさらに含む、請求項1に記載の方法。
【請求項14】
データ品質ルール環境から、前記提案された意味論的意味に割り当てられる1つ又は複数のデータ品質ルールを検索することと、
前記1つ又は複数のデータ品質ルールのうちのデータ品質ルールを前記フィールドに割り当てることと
をさらに含む、請求項1に記載の方法。
【請求項15】
スコア値を各提案された意味論的意味に適用することと、
前記提案された意味論的意味の各意味論的意味について、前記意味論的意味に関連付けられた前記スコア値を結合することと、
各提案された意味論的意味に関連付けられた前記スコア値に従って前記提案された意味論的意味をランク付けすることと
をさらに含む、請求項1に記載の方法。
【請求項16】
前記複数のテストから前記提案された意味論的意味のバリデーションを受け取ることと、
前記バリデーションを受け取ることに応答して、前記複数のテストを重み付けすることと
をさらに含む、請求項1に記載の方法。
【請求項17】
前記データストアは、データ辞書を含む、請求項1に記載の方法。
【請求項18】
前記提案された意味論的意味をデータ品質ルール環境に出力することをさらに含む、請求項1に記載の方法。
【請求項19】
前記提案された意味論的意味の前記識別された1つに基づいて、前記データ品質ルール環境からのデータ品質ルールを使用して前記フィールドのデータを処理することに関するエラーの数を、前記提案された意味論的意味の前記識別された1つを使用することなく前記フィールドの前記データを処理することに関するエラーの別の数に対して減少させることをさらに含む、請求項18に記載の方法。
【請求項20】
特定の識別子を含む前記1つ又は複数のデータセットを処理するためのリクエストを受信することと、
前記リクエストに応答して、前記データストアから、前記特定の識別子と、前記特定の識別子に関連付けられた特定の意味論的意味とにアクセスすることと、
前記特定の意味論的意味に基づいて、前記1つ又は複数のデータセットの少なくとも一部を処理するための1つ又は複数のデータ処理ルールを特定することと、
少なくとも前記1つ又は複数のデータセットの前記一部を、前記
特定された1つ又は複数のデータ処理ルールに従って処理することと
をさらに含む、請求項1に記載の方法。
【請求項21】
1つ又は複数のデータセットに含まれるフィールドの意味論的意味を発見するためのデータ処理システムであって、前記データ処理システムは、
命令を保存するデータストレージと、
前記データストレージによって保存された前記命令を実行して、
1つ又は複数のデータセットに含まれるフィールドを識別することであって、前記フィールドは、識別子に関連付けられている、識別することと、
前記フィールドの1つ又は複数のデータ値を識別することであって、少なくとも前記データ値のうちの第1のデータ値は、前記データ値のうちの第2のデータ値と異なる、識別することと、
前記フィールドの前記1つ又は複数のデータ値に基づいて、前記フィールドの前記データ値の1つ又は複数の属性を特定することと、
複数のテストにアクセスすることであって、
前記テストは、1つ又は複数の所定の属性に対して提案された意味論的意味を指定
し、前記意味論的意味は、所定のフィールドにどのような種類のデータ値が含まれるかを示す、アクセスすることと、
前記フィールドの1つ又は複数のデータ値の前記特定された1つ又は複数の属性に少なくとも前記複数のテストを適用することと、
前記フィールド
の前記1つ又は複数のデータ値の前記特定された1つ又は複数の属性に少なくとも前記複数のテストを適用することに基づいて、前記フィールドの前記1つ又は複数のデータ値の1つ又は複数の提案された意味論的意味を指定することと、
前記フィールドに対して前記1つ又は複数の提案された意味論的意味の間の類似性を特定することと、
前記1つ又は複数の提案された意味論的意味の間の前記類似性に基づいて、前記提案された意味論的意味の1つを、前記フィールドの前記1つ又は複数のデータ値の前記意味論的意味を識別するものとして識別することと、
データストア内において、前記フィールドの前記識別子を、前記フィールドの前記1つ又は複数のデータ値の前記識別された意味論的意味と共に保存することと
を含む動作を行うように構成された少なくとも1つのプロセッサと
を含むデータ処理システム。
【請求項22】
前記動作は、
特定の識別子を含む前記1つ又は複数のデータセットを処理するためのリクエストを受信することと、
前記リクエストに応答して、前記データストアから、前記特定の識別子と、前記特定の識別子に関連付けられた特定の意味論的意味とにアクセスすることと、
前記特定の意味論的意味に基づいて、前記1つ又は複数のデータセットの少なくとも一部を処理するための1つ又は複数のデータ処理ルールを特定することと、
少なくとも前記1つ又は複数のデータセットの前記一部を、前記
特定された1つ又は複数のデータ処理ルールに従って処理することと
をさらに含む請求項21に記載のデータ処理システム。
【請求項23】
前記動作は、前記フィールドのデータ値のフォーマットを特定することをさらに含み、前記1つ又は複数の属性は前記フォーマットを示す、請求項21に記載のデータ処理システム。
【請求項24】
前記動作は、前記フィールドに含まれる前記データ値を表す統計値を特定することをさらに含み、前記1つ又は複数の属性は統計値を示す、請求項21に記載のデータ処理システム。
【請求項25】
前記統計値は、前記フィールドの前記1つ又は複数のデータ値の最小長さ、前記フィールドの前記1つ又は複数のデータ値の最大長さ、前記フィールドの最も一般的なデータ値、前記フィールドの最も一般的でないデータ値、前記フィールドの最大データ値及び前記フィールドの最小データ値の少なくとも1つを含む、請求項24に記載のデータ処理システム。
【請求項26】
前記複数のテストを適用することは、
前記フィールドが、前記1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、
前記プライマリキーに関連する前記複数のテストのうち1つのテストを選択することと
を含む、請求項21に記載のデータ処理システム。
【請求項27】
前記複数のテストを適用することは、前記フィールドのデータ値の、用語集内の用語とのメタデータ比較を行うことを含む、請求項21に記載のデータ処理システム。
【請求項28】
前記複数のテストを適用することは、
前記フィールドの前記データ値の前記1つ又は複数の属性から、前記フィールドの前記1つ又は複数のデータ値によって表されるパターンを特定することと、
前記パターンにマッピングされる特定の意味論的意味を特定することと、
前記フィールドを前記特定の意味論的意味でラベル付けすることと
を含む、請求項21に記載のデータ処理システム。
【請求項29】
前記複数のテストを適用することは、
データ集合を表す値のリストを検索することと、
前記フィールドの前記1つ又は複数のデータ値を前記値のリストと比較することと、
前記比較することに応答して、前記データ値の閾値数が値の前記リストの前記値と一致することを特定することと、
前記特定することに応答して、前記フィールドを、前記データ集合を指定する特定の意味論的意味でラベル付けすることと
を含む、請求項21に記載のデータ処理システム。
【請求項30】
1つ又は複数のデータセットに含まれるフィールドの意味論的意味を発見するための命令を記憶する1つ又は複数の非一時的コンピュータ可読媒体であって、前記命令は、
1つ又は複数のデータセットに含まれるフィールドを識別することであって、前記フィールドは、識別子に関連付けられている、識別することと、
前記フィールドの1つ又は複数のデータ値を識別することであって、少なくとも前記データ値のうちの第1のデータ値は、前記データ値のうちの第2のデータ値と異なる、識別することと、
前記フィールドの前記1つ又は複数のデータ値に基づいて、前記フィールドの前記データ値の1つ又は複数の属性を特定することと、
複数のテストにアクセスすることであって、
前記テストは、1つ又は複数の所定の属性に対して提案された意味論的意味を指定
し、前記意味論的意味は、所定のフィールドにどのような種類のデータ値が含まれるかを示す、アクセスすることと、
前記フィールドの1つ又は複数のデータ値の前記特定された1つ又は複数の属性に少なくとも前記複数のテストを適用することと、
前記フィールド
の前記1つ又は複数のデータ値の前記特定された1つ又は複数の属性に少なくとも前記複数のテストを適用することに基づいて、前記フィールドの前記1つ又は複数のデータ値の1つ又は複数の提案された意味論的意味を指定することと、
前記フィールドに対して前記1つ又は複数の提案された意味論的意味の間の類似性を特定することと、
前記1つ又は複数の提案された意味論的意味の間の前記類似性に基づいて、前記提案された意味論的意味の1つを、前記フィールドの前記1つ又は複数のデータ値の前記意味論的意味を識別するものとして識別することと、
データストア内において、前記フィールドの前記識別子を、前記フィールドの前記1つ又は複数のデータ値の前記識別された意味論的意味と共に保存することと
を含む動作を行うように構成された1つ又は複数のプロセッサによって実行可能である、1つ又は複数の非一時的コンピュータ可読媒体。
【請求項31】
前記動作は、
特定の識別子を含む前記1つ又は複数のデータセットを処理するためのリクエストを受信することと、
前記リクエストに応答して、前記データストアから、前記特定の識別子と、前記特定の識別子に関連付けられた特定の意味論的意味とにアクセスすることと、
前記特定の意味論的意味に基づいて、前記1つ又は複数のデータセットの少なくとも一部を処理するための1つ又は複数のデータ処理ルールを特定することと、
少なくとも前記1つ又は複数のデータセットの前記一部を、前記
特定された1つ又は複数のデータ処理ルールに従って処理することと
をさらに含む、請求項30に記載の1つ又は複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本願は、2019年3月31日に出願された米国特許出願第62/855,233号明細書及び2020年2月19日に出願された米国特許出願公開第16/794,361号明細書に対する優先権を主張するものであり、これらの特許出願の各々の内容全体は、参照により本明細書に援用される。
【0002】
本開示は、データの分類に関する。より詳細には、本開示は、データフィールドのデータ及びメタデータのデータプロファイルを解析することにより、データフィールドを分類することに関する。
【背景技術】
【0003】
データの集合は、データフィールドに保存されたデータの内容を含むことができる。データフィールドは、そのデータフィールドに保存されたデータの内容の種類を示すことができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示に記載の以下のようなシステム及びプロセスは、以下の利点の1つ又は複数を含むことができる。多くのシステムにおいて、既存のデータセットは、非常に大きく、文書化されない可能性がある。幾つかの場合、データセットにラベルが付される場合、ラベルが一貫しないか、又は性質的に技術的であり、ラベルからビジネス情報を確認することが難しい可能性がある。レガシーシステム及び長年にわたるシステムのバージョニングにより、データセットの何れの各部分が実践的に関連するものであるかを特定することは、難しい可能性がある。このようなデータセットに対する注釈を開発する必要がある。
【課題を解決するための手段】
【0005】
これらのシステム及びプロセスは、データセットのためのラベルを迅速且つ場合により自動的に提供するように構成される。本明細書に記載のシステム及びプロセスは、データセット内のメタデータ及びデータの内容に対して一連の統計的チェックを実行することにより、そのデータセットのデータの内容を発見し、分類し、ラベル付けするように構成される。データの内容を発見することは、データの内容(又はデータフィールド)がそのデータセット内にあることを特定することを含む。例えば、本明細書に記載のシステム及びプロセスは、ラベルのない又は意味のない方法でラベル付けされたデータフィールド(例えば、表又はデータベース中のコラム)をラベル付けすることを提供する。これらのシステム及びプロセスは、特定のデータフィールドがデータセット内にあることを発見し、その特定のデータフィールドをラベル付けするように構成される。このラベル付けを行うために、本明細書に記載のシステム及びプロセスは、説明的な定義を、データセットのフィールド、例えばビジネス用語又はドメインをデータセットのフィールドに割り当てることによってマッピングするように構成される。データフィールドのために生成されたラベルは、そのデータフィールドに保存されたデータの内容に関する情報を提供する。情報は、どのような種類のデータの内容がそのデータフィールドに含まれるか(例えば、電話番号、ファーストネーム、日付等)を示すことができる。
【0006】
情報は、コンピューティングシステムによって様々な用途に使用できる。例えば、データセットの生成されたラベルを使用できる用途は、データ品質の強化、個人データの匿名化、データのマスキング、個人を特定できる情報(PII)の報告、テストデータの管理、データセットのアノテーション等を含むことができる。例えば、コメントデータは、PIIを含み得、マスキングが必要であり得る。他の例では、本明細書に記載のシステム及びプロセスは、異なる発信源からのサードパーティデータをラベル付けするための機構を提供できる。これは、システム管理者が、例えば規制上の目的のために、システムに保存されるデータセット内にどのようなデータがあるかを把握し、理解しなければならないシステムにとって有益であり得る。
【0007】
加えて、本明細書に記載のシステム及びプロセスにより、データ規格を異なるデータソースからの多くの異なるデータ項目にわたって適用できるようにするインフラストラクチャを構築することが可能となる。このインフラストラクチャは、容易に改変でき(例えば、ユーザインタフェースを通して定義を分類テストに追加することによる)、新たなデータ要求事項が特定されたときに追加のテストを加えることができる。
【0008】
ある態様において、システムは、1つ又は複数のデータセットに含まれるフィールドを識別することであって、そのフィールドは、識別子を有する、識別することと、そのフィールドについて、データ処理システムにより、そのフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成することと、複数のラベル案テストにアクセスすることと、少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、ラベル案の組を生成することと、ラベル案の組内のラベル案間の類似性を特定することと、少なくともその組内のラベル案間の類似性に基づいて分類を選択することと、分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定することと、ラベル案の1つを、意味論的意味を識別するものとして識別することと、データストア内において、フィールドの識別子を、その意味論的意味を識別するラベル案の識別された1つと共に保存することとを行うように構成される。前文の機能は、本発明の一般的な技術的環境を示すことである。
【0009】
幾つかの実装形態において、フィールドの1つ又は複数のデータ値をプロファイルすることは、フィールドのデータ値のフォーマットを特定することを含む。フィールドのデータ値をプロファイルすることは、フィールドに含まれるデータ値を表す統計値を特定することを含む。統計値は、そのフィールドのデータ値の最小長さ、そのフィールドのデータ値の最大長さ、そのフィールドの最も一般的なデータ値、そのフィールドの最も一般的でないデータ値、そのフィールドの最大データ値及びそのフィールドの最小データ値の少なくとも1つを含む。複数のラベル案テストを適用することは、そのフィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、複数のラベル案テストのうち、プライマリキーに関連するラベル案テストを選択することとを含む。複数のラベル案テストを適用することは、そのフィールドのデータ値の、用語集内の用語とのメタデータ比較を行うことを含む。複数のラベル案テストを適用することは、データプロファイルから、そのフィールドの保存されたデータ値によって表されるパターンを特定することと、そのパターンにマッピングされる特定のラベルを特定することと、そのフィールドをその特定のラベルでラベル付けすることとを含む。複数のラベル案テストを適用することは、データ集合を表す値のリストを検索することと、そのフィールドのデータ値を値のリストと比較することと、比較することに応答して、閾値数のデータ値がリストの値と一致することを特定することと、特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることとを含む。複数のラベル案テストを適用することは、そのフィールドのための少なくとも2つのラベルを生成することと、少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することとを含む。
【0010】
幾つかの実装形態において、システムは、複数のラベル案テストを適用することに応答して、そのフィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することをさらに含む動作を行うように構成される。この関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む。複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられ、方法は、少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することとをさらに含む。
【0011】
幾つかの実装形態において、動作は、機械学習プロセスを使用して複数のラベル案テストを訓練することをさらに含む。動作は、データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられる1つ又は複数のデータ品質ルールを検索することと、その1つ又は複数のデータ品質ルールのうちのデータ品質ルールをそのフィールドに割り当てることとを含む。ラベル案テストから生成されたラベル案を比較することは、スコア値を各ラベル案に適用することと、ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることとを含む。
【0012】
幾つかの実装形態において、動作は、複数のラベル案テストからラベル案のバリデーションを受け取ることと、バリデーションを受け取ることに応答して、複数のラベル案テストをラベル案で重み付けすることとをさらに含む。データストアは、データ辞書を含む。幾つかの実装形態において、動作は、ラベル案をデータ品質ルール環境に出力することをさらに含む。幾つかの実装形態において、動作は、ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを使用してそのフィールドのデータを処理することに関するエラーの数を、ラベル案の識別された1つを使用することなくそのフィールドのデータを処理することに関するエラーの別の数に対して減少させることをさらに含む。
【0013】
ある態様において、システムは、命令を保存するデータストレージと、データストレージによって保存された命令を実行して、1つ又は複数のデータセットに含まれるフィールドを識別することであって、フィールドは、識別子を有する、識別することと、そのフィールドについて、データ処理システムにより、そのフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成することと、複数のラベル案テストにアクセスすることと、少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、ラベル案の組を生成することと、ラベル案の組内のラベル案間の類似性を特定することと、少なくとも組内のラベル案間の類似性に基づいて分類を選択することと、分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定することと、ラベル案の1つを、意味論的意味を識別するものとして識別することと、データストア内において、そのフィールドの識別子を、意味論的意味を識別するラベル案の識別された1つと共に保存することとを含む動作を行うように構成された少なくとも1つのプロセッサとを含む。
【0014】
幾つかの実装形態において、フィールドの1つ又は複数のデータをプロファイルすることは、そのフィールドのデータ値のフォーマットを特定することを含む。フィールドのデータ値をプロファイルすることは、そのフィールドに含まれるデータ値を表す統計値を特定することを含む。統計値は、そのフィールドのデータ値の最小長さ、そのフィールドのデータ値の最大長さ、そのフィールドの最も一般的なデータ値、そのフィールドの最も一般的でないデータ値、そのフィールドの最大データ値及びそのフィールドの最小データ値の少なくとも1つを含む。複数のラベル案テストを適用することは、そのフィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、複数のラベル案テストのうち、プライマリキーに関連するラベル案テストを選択することとを含む。複数のラベル案テストを適用することは、そのフィールドのデータ値の、用語集内の用語とのメタデータ比較を行うことを含む。複数のラベル案テストを適用することは、データプロファイルから、そのフィールドの保存されたデータ値を表すパターンを特定することと、そのパターンにマッピングされる特定のラベルを特定することと、そのフィールドをその特定のラベルでラベル付けすることとを含む。複数のラベル案テストを適用することは、データ集合を表す値のリストを検索することと、そのフィールドのデータ値を値のリストと比較することと、比較することに応答して、閾値数のデータ値がリストの値と一致することを特定することと、特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることとを含む。複数のラベル案テストを適用することは、そのフィールドのための少なくとも2つのラベルを生成することと、少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することとを含む。
【0015】
幾つかの実装形態において、システムは、複数のラベル案テストを適用することに応答して、そのフィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することをさらに含む動作を行うように構成される。関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む。複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられ、方法は、少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することとをさらに含む。
【0016】
幾つかの実装形態において、動作は、機械学習プロセスを使用して複数のラベル案テストを訓練することをさらに含む。動作は、データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられる1つ又は複数のデータ品質ルールを検索することと、1つ又は複数のデータ品質ルールのうちのデータ品質ルールをフィールドに割り当てることとを含む。ラベル案テストから生成されたラベル案を比較することは、スコア値を各ラベル案に適用することと、ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることとを含む。
【0017】
幾つかの実装形態において、動作は、複数のラベル案テストからラベル案のバリデーションを受け取ることと、バリデーションを受け取ることに応答して、複数のラベル案テストをそのラベル案で重み付けすることとをさらに含む。データストアは、データ辞書を含む。幾つかの実装形態において、動作は、ラベル案をデータ品質ルール環境に出力することをさらに含む。幾つかの実装形態において、動作は、ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを使用してそのフィールドのデータを処理することに関するエラーの数を、ラベル案の識別された1つを使用することなくそのフィールドのデータを処理することに関するエラーの別の数に対して減少させることをさらに含む。
【0018】
ある態様において、システムは、1つ又は複数のデータセットに含まれるフィールドを識別する手段であって、フィールドは、識別子を有する、手段と、そのフィールドについて、データ処理システムにより、そのフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成する手段と、複数のラベル案テストにアクセスする手段と、少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、ラベル案の組を生成する手段と、ラベル案の組内のラベル案間の類似性を特定する手段と、少なくとも組内のラベル案間の類似性に基づいて分類を選択する手段と、分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定する手段と、ラベル案の1つを、意味論的意味を識別するものとして識別する手段と、データストア内において、そのフィールドの識別子を、意味論的意味を識別するラベル案の識別された1つと共に保存する手段とを含む。
【0019】
幾つかの実装形態において、フィールドの1つ又は複数のデータ値をプロファイルすることは、フィールドのデータ値のフォーマットを特定することを含む。そのフィールドのデータ値をプロファイルすることは、そのフィールドに含まれるデータ値を表す統計値を特定することを含む。統計値は、そのフィールドのデータ値の最小長さ、そのフィールドのデータ値の最大長さ、そのフィールドの最も一般的なデータ値、そのフィールドの最も一般的でないデータ値、そのフィールドの最大データ値及びそのフィールドの最小データ値の少なくとも1つを含む。複数のラベル案テストを適用することは、フィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、複数のラベル案テストのうち、そのプライマリキーに関連するラベル案テストを選択することとを含む。複数のラベル案テストを適用することは、そのフィールドのデータ値の、用語集内の用語とのメタデータ比較を行うことを含む。複数のラベル案テストを適用することは、データプロファイルから、そのフィールドの保存されたデータ値によって表されるパターンを特定することと、そのパターンにマッピングされる特定のラベルを特定することと、そのフィールドをその特定のラベルでラベル付けすることとを含む。複数のラベル案テストを適用することは、データ集合を表す値のリストを検索することと、そのフィールドのデータ値を値のリストと比較することと、比較することに応答して、データの閾値数がリストの値と一致することを特定することと、特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることとを含む。複数のラベル案テストを適用することは、そのフィールドのための少なくとも2つのラベルを生成することと、少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することとを含む。
【0020】
幾つかの実装形態において、システムは、複数のラベル案テストを適用することに応答して、そのフィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することをさらに含む動作を行うように構成される。この関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む。複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられ、方法は、少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することとをさらに含む。
【0021】
幾つかの実装形態において、動作は、機械学習プロセスを使用して複数のラベル案テストを訓練することをさらに含む。動作は、データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられる1つ又は複数のデータ品質ルールを検索することと、その1つ又は複数のデータ品質ルールのうちのデータ品質ルールをそのフィールドに割り当てることとを含む。ラベル案テストから生成されたラベル案を比較することは、スコア値を各ラベル案に適用することと、ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることとを含む。
【0022】
幾つかの実装形態において、動作は、複数のラベル案テストからラベル案のバリデーションを受け取ることと、バリデーションを受け取ることに応答して、複数のラベル案テストをラベル案で重み付けすることとをさらに含む。データストアは、データ辞書を含む。幾つかの実装形態において、動作は、ラベル案をデータ品質ルール環境に出力することをさらに含む。幾つかの実装形態において、動作は、ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを使用してそのフィールドのデータを処理することに関するエラーの数を、ラベル案の識別された1つを使用することなくそのフィールドのデータを処理することに関するエラーの別の数に対して減少させることをさらに含む。
【0023】
システムの他の特徴及び利点は、以下の説明及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0024】
【
図1A】データフィールドのデータから生成されたデータプロファイルを解析することによってデータフィールドを発見し、分類し、ラベル付けするためのシステムのブロック図である。
【
図1B】データフィールドのデータから生成されたデータプロファイルを解析することによってデータフィールドを発見し、分類し、ラベル付けするためのシステムのブロック図である。
【
図2A】実行システム202がデータフィールドの意味論的意味を識別するためにデータフィールドをどのようにプロファイルし、分類し、ラベル付けするかを示すブロック図である。
【
図2B】実行システム202がデータフィールドの意味論的意味を識別するためにデータフィールドをどのようにプロファイルし、分類し、ラベル付けするかを示すブロック図である。
【
図2C】実行システム202がデータフィールドの意味論的意味を識別するためにデータフィールドをどのようにプロファイルし、分類し、ラベル付けするかを示すブロック図である。
【
図2D】実行システム202がデータフィールドの意味論的意味を識別するためにデータフィールドをどのようにプロファイルし、分類し、ラベル付けするかを示すブロック図である。
【
図2E】実行システム202がデータフィールドの意味論的意味を識別するためにデータフィールドをどのようにプロファイルし、分類し、ラベル付けするかを示すブロック図である。
【
図3A】データフィールドの意味論的意味を識別するためにデータフィールドをプロファイルし、分類し、ラベル付けするためのプロセスのブロック図である。
【
図3B】データフィールドの意味論的意味を識別するためにデータフィールドをプロファイルし、分類し、ラベル付けするためのプロセスのブロック図である。
【
図3C】データフィールドの意味論的意味を識別するためにデータフィールドをプロファイルし、分類し、ラベル付けするためのプロセスのブロック図である。
【
図3D】データフィールドの意味論的意味を識別するためにデータフィールドをプロファイルし、分類し、ラベル付けするためのプロセスのブロック図である。
【
図3E】データフィールドの意味論的意味を識別するためにデータフィールドをプロファイルし、分類し、ラベル付けするためのプロセスのブロック図である。
【
図3F】データフィールドの意味論的意味を識別するためにデータフィールドをプロファイルし、分類し、ラベル付けするためのプロセスのブロック図である。
【
図3G】データフィールドの意味論的意味を識別するためにデータフィールドをプロファイルし、分類し、ラベル付けするためのプロセスのブロック図である。
【
図4】データフィールドのデータから生成されたデータプロファイルを解析することによってデータフィールドを発見し、分類し、ラベル付けするための実行システムのロジックエンジンにより行われる動作を示すフロー図である。
【
図5】データフィールドの意味論的意味を識別するためにデータフィールドをプロファイルし、分類し、ラベル付けするためのプロセスのブロック図である。
【
図6A】データプロファイリングプロセスの結果を示すユーザインタフェースの描写である。
【
図6B】分類プロセスの結果を示すユーザインタフェースの描写である。
【
図6C】発見されたデータフィールドのラベルに関する推奨を示すユーザインタフェースの描写である。
【
図6D】データフィールドのラベリングの結果の例を示すユーザインタフェースの描写である。
【
図7】データフィールドのデータから生成されたデータプロファイルを解析することによってデータフィールドを発見し、分類し、ラベル付けするための例示的なプロセスを示すフロー図である。
【発明を実施するための形態】
【0025】
図1A~1Bを参照すると、データフィールドのデータから生成されたデータプロファイルを発見し、分類し、ラベル付けするためのネットワーク型システム100が示されている。ネットワーク型システム100は、実行システム102と、1つ又は複数のデータソース112と、参照データベース116と、データ辞書データベース114とを含む。実行システム102は、ネットワーク型システム100内のデータソース112a、112b(まとめてデータソース112という)からデータを受け取るように構成される。実行システム102は、データソース112から受け取ったソースデータをプロファイルして、データソース112のソースデータを表すデータプロファイルを生成するように構成される。実行システム102は、プロファイルデータを解析して、ソースデータの部分を発見し、分類し(例えば、テストし)、ソースデータのこれらの部分の意味論的意味を表すラベルに関連付けるように構成される。ソースデータの一部は、そのソースデータ内のフィールドを含むことができる。換言すれば、実行システム102はプロファイルデータを使用することにより、ソースデータの1つ又は複数のフィールドの意味論的意味を、複数の分類テストを用いて特定する。ソースデータを分類することは、ソースデータのその部分に蓋然性を関連付けることを含む。蓋然性は、ソースデータのその部分がデータ辞書データベース114に含まれるラベルに対応する可能性を示す。
【0026】
一般に、実行システム102は、プロファイルデータモジュール104と、分類モジュール105と、テストモジュール106と、結果確証モジュール108と、ロードデータモジュール110とを含み、それらが一緒にデータソース112から受け取ったデータのデータフィールドを発見し、分類し、ラベル付けするように構成される。ここで、実行システム102によるラベル付けプロセス(意味論的発見プロセスとも呼ぶ)の一般的な説明を記す。プロファイルデータモジュール104は、ソースデータ112を受け取って、プロファイルデータを生成する。後述のように、プロファイルデータは、ソースデータ及びソースデータのフィールドの統計的属性を表すメタデータを含む。プロファイルデータは、ソースデータのフィールド間の関係(例えば、統計的相関、依存性及びその他)を指定するデータも含むことができる。
【0027】
分類モジュール105は、各フィールドをあるデータ型(例えば、日付フィールド、番号フィールド、文字列等)を有するものとして分類する。分類モジュールは、ラベルインデックスのための参照データベース116をチェックして、そのフィールド(又は同じフィールド名を有する他のフィールド)が既に意味論的ラベルでラベル付けされているか否かを特定する。
【0028】
一般に、データセット内の各フィールドは、フィールド名等の識別子に関連付けられる。識別子は、データセット内のフィールドの場所を指定するフィールドアドレスを含むこともできる。例えば、識別子は、そのフィールドが何れの表内にあるか、及びその表の何れのコラムがそのフィールドを表すかを指定することができる。幾つかの実施形態において、識別子はラベルインデックスの一部であり、これは各フィールドの識別子をこれらのフィールドの意味論的ラベルに関連付ける。識別子は、フィールドの名称、キー値又はそのフィールドを識別する他の何れかの値であり得る。
【0029】
テストモジュール106は複数の分類子を含み、各々がフィールドのデータ値、フィールド名及び各フィールドのプロファイルデータに対して動作するように構成される。テストモジュール106の分類子(テストとも呼ぶ)は各々、異なる方法を用いてフィールドに関連付けられることになるラベル案を挙げるが、これについて後により詳細に説明する。テストはラベル辞書データベース114からのラベルの辞書をラベルライブラリとして使用し、それから1つ又は複数のラベルを、テスト対象のフィールドの意味論的意味を識別するものとして提案することができる。テストは、異なる方法を使用するために相互に異なるラベルを提案し得るか、又は全てのテストからのラベル案は、同じである可能性もある。テストモジュール106の各テストからのラベル案(及び該当する場合にはそれらのスコア)が結果確証モジュール108に送信される。
【0030】
結果確証モジュール108は、フィールドのラベル案を、テストのラベル案間の類似性の量に基づいて、あるカテゴリにバケット化する。ラベル案が全て同じであれば、類似性の量が高く、マッチが見つかる。結果確証モジュール108は、テストモジュール106からの各フィールドに関するラベル案のグループを推奨に従ってカテゴライズすることもできる(ラベル案の1つが推奨ラベルである)。結果確証モジュール108は、案間に類似性がほとんどないと判断して、ユーザに結果をさらに調査するように提案することができる。結果確証モジュール108は、テストモジュール106からのラベル案を無視すべきとしてカテゴライズすることもでき、これについて以下に説明する。実行システム102は、ラベル案がそのフィールドの意味論的意味を正しく識別していることを確認するバリデーションデータを(例えば、ユーザインタフェースを通してユーザから)受け取ることができる。バリデーションが行われると、そのラベル案がそのフィールドに割り当てられ、そのフィールドが割り当てられたラベルに関連付けられることを示すようにラベルインデックスが更新される。ロードデータモジュール110は、ラベルインデックスを参照データベース116に送信し、将来のラベル付けプロセスの繰り返し(意味発見プロセスとも呼ぶ)又は下流のアプリケーションによりアクセスされるようにする。モジュール104、105、106、108及び110の機能を、
図2A~3Gに関して以下でさらに詳細に説明する。
【0031】
データ辞書データベース114は、ソースデータのフィールドの意味論的意味を識別するための候補ラベルであるラベルリストを含む。データ辞書データベース114の各ラベルは1つ又は複数の属性に関連付けられる。属性は、そのラベルの意味論的意味を説明し、実行システム102に、各ラベルの意味論的意味が何であるかのコンテキストを提供するタグ、関連付け又は他のメタデータを含むことができる。例えば、属性は、フィールドの値を説明する統計メタデータ、そのフィールドの具体的な値の組(例えば、都市名、郵便番号等のリスト)のためのタグ、指定されたデータフォーマット(例えば、データフォーマット)、データセットのフィールド間の関係及びその他を含むことができる。テスト(分類)プロセス中、実行システム102は、ラベルの属性がソースデータのフィールドの属性とどの程度密接に一致するかを特定するように構成される。分類テストは、フィールドのプロファイルデータとフィールド自体の内容を解析して、データ辞書データベース114の何れのラベルがそのフィールドの意味論的意味を識別するかを特定するように構成される。データ辞書データベース114には、実行システム102が意味発見プロセスを実行する前に、ラベル及びラベル属性のリストをポピュレートすることができる。
【0032】
図1Aに示されるように、データ辞書データベース114は拡張可能であり、それは、新しい意味論的意味を有するデータが実行システムにより処理されると新しいラベルをデータ辞書データベース114に追加できるからである。幾つかの実装形態において、シードラベルの組を自動的に提供してシステムを初期化でき、データ辞書データベース114の既存のラベルがそのフィールドの意味論的意味を識別しない場合、必要に応じて追加のラベルを加えることができる。例えば、実行システム102がデータ辞書データベース114内に分類テストを満たす属性(例えば、各テストのスコアが閾値より低い)を有するラベルを見つけることができない場合、実行システム102はユーザに対し、そのデータ辞書データベース114のための、ラベルなしフィールドに対応する属性を有するものとしての新しいラベルを定義するように促すことができる。その後のテストで、実行システム102は同様の属性を有するその後のフィールドをラベル付けするために、新たに定義されたラベルを提案するように構成される。
【0033】
実行システム102は、自動的に且つユーザの入力に応答して、ソースデータの部分に、ソースデータのその部分の意味論的意味を識別する1つ又は複数のラベルでタグ付けするように構成される。ソースデータの発見、分類及びラベル付けは、ソースデータの分類を改善し、ソースデータのラベル付けの正確さを高めるために繰り返すことができる。ソースデータのラベルは、ラベルインデックスとしてソースデータに関連付けられたメタデータを含み、これについて後に説明する。ソースデータの発見、分類及びラベル付けが完了すると、ラベルインデックスは参照データベース116にロードされ、1つ又は複数の下流のアプリケーションにより使用されるようにする。
【0034】
図1Bに示されるように、ソースデータのプロファイリング、分類及びラベル付けが実行システム102によって実行されると、ロードデータモジュール110はデータをデータ辞書データベース114と参照データベース116の各々に送信することができる。意味発見プロセス中又はその結果として追加のラベルが定義されると、新たに定義されたラベルはデータ辞書データベース114に追加され、実行システム102による(例えば、テストモジュール106による)将来のラベル付けにおいて使用されるようにする。追加的又は代替的に、ロードデータモジュール110は、ラベルインデックスデータを参照データベース116に送信する。ラベルインデックスは、ソースデータについて、何れのラベルがそのソースデータの、実行システム102によって既にラベル付けされた各フィールドに関連付けられるかを説明する。例えば、各ラベルについて、ラベルインデックスはそのラベルに関連付けられた各フィールドのリストを含むことができる。代替的に、ラベルインデックスは、ソースデータの各フィールドについて、何れのラベルがそのフィールドに関連付けられるかを説明することができる。ラベルインデックスは参照データベース116内に保存される。実行システム102によるその後のラベル付けプロセスにおいて、ラベルインデックスをチェックして(例えば、分類モジュール105による)、特定のフィールドが既にラベル付けされているか否かを特定できる。これにより、実行システム102は、テストプロセスを迂回して、単純にフィールドに既知のラベルでラベル付けすることができ、それによってフィールドのラベル付けのために処理されるデータ量が減る。幾つかの実装形態において、あるラベルが既にそのフィールド(又は同様のフィールド)に既に割り当てられていることを示すデータをテストプロセス中に使用して、テストの分類子の正確さを向上させることができ、これについて以下に説明する。
【0035】
ラベルインデックスは、様々な用途のために1つ又は複数の下流のアプリケーションに提供されるか、又はそれによって検索されることが可能である。ラベルインデックスは下流のアプリケーションがデータセットのデータ値の意味を特定するためのクイックリファレンスを提供し、下流のアプリケーションはデータセットを解析する必要がない。例えば、アプリケーションは、フィールドの意味論的意味を特定するために、ラベルインデックスのみを参照すればよい。ラベルインデックスは、特定のフィールドが個人を特定できる情報(PII)を含むか否か、及びそのフィールドのデータをどのようにマスクすべきかを示すことができる。ラベルインデックスは、データセットのスキーマが何であるか(例えば、そのフィールドがプライマリキーであるか、外部キーであるか)を示すことができる。ラベルインデックスは、指定されたラベルの属性を通して、フィールド間の意味論上の関係が何か(例えば、これらが相互に相関するか、依存性があるか否か及びその他)を示すことができる。この意味論的意味はラベルの各々の属性に含められるため、アプリケーションは、意味論的情報を検索するために、データセット自体をスキャンするのではなく、ラベルインデックスを参照するのみでよい。下流のアプリケーションにより処理されるデータ量を減らすことにより、そのアプリケーションのための処理リソースを減らし、それは、データセット内の各フィールドの意味論的意味を特定するのに、ラベルインデックスのみがあればよいからである。ある例において、ラベルインデックスは、データセット内の何れのフィールドがPIIを含むかを示し得る。データセットの各フィールドをスキャンすることなく、アプリケーションはPIIを有するフィールドのみを必要に応じてマスクすることができる。そのため、アプリケーションは、データセットを保存するデータストアにアクセスする回数を減らすことができ、送信されるデータを減らすことができる(バンド幅の利用が減る)。
【0036】
幾つかの実装形態において、データ辞書もアプリケーションに提供できる。データ辞書及びラベルインデックスのデータフットプリントが比較的小さいことは、データセットのサイズが大きい状況で有益である可能性がある。ラベルインデックスとデータ辞書の大きさは各々、データセット自体の大きさに関してゆっくりと大きくなる。データセット全体を検索してアプリケーションに適切なコンテキストを提供するために、データセット全体を検索する必要なく、ラベルインデックスとデータ辞書は、アプリケーションがデータセットの関連部分のみにアクセスするために必要な全てのコンテキストを提供する。アプリケーションは、データセットのラベルとラベルの属性を単純に参照して、データセット内のフィールドのコンテキストを特定することができる。
【0037】
データソース112のソースデータは、何種類かのデータを含むことができる。1つの例において、データソース112のソースデータは、データフィールドの表を含む。実行システム102は、その表のデータフィールドを発見し、分類し、ラベル付けするように構成される。例えば、実行システム102は、ソースデータの発見された各フィールドのデータの内容を解析し、そのデータフィールドのデータの内容がどのようなものを表すかを特定する。実行システム102は、データフィールドを既知のラベルに関連付けることによって(例えば、それを蓋然性の値に割り当てることによる)各データフィールドを分類する。表のラベル付きデータはデータストレージ114に出力でき、これには他のアプリケーション及びシステムが、ラベル付きデータに対して動作するためにアクセスできる。データ表のデータフィールドを発見し、分類し、ラベル付けするプロセスについて後に詳細に説明する。データソース112は、何れの種類のコンピューティングシステムを含むこともできる。例えば、データソース112はメインフレーム、データベース、サードパーティから供給される構造化されていないデータ、データレイク、パーソナルコンピュータ、ハイスケールネットワーク及びその他を含むことができる。
【0038】
本開示において、データ表のデータフィールドを発見し、分類し、ラベル付けするためのプロセスは、実行システム102及びネットワーク型システム100の機能性を説明するための例として使用される。しかし、データフィールドは、実行システム102が発見し、分類し、検出するものの一例であるものの、実行システム102は、他の種類のデータに対する動作も行うことができる。例えば、実行システム102は、あるアプリケーションからアプリケーションデータを受け取る。実行システム102は、そのアプリケーションの異なるデータを発見し、分類し、ラベル付けするように構成される。データは、そのアプリケーションを動作させるために保存され、アクセスされる異なるファイルを含むことができる。実行システム102は、アプリケーションによって保存されるPIIを発見し、マルウェアを発見し、アプリケーションファイルに変更を加え、且つその他を行うために使用できる。他の例において、実行システム102は、(例えば、パーソナルコンピュータ上の)ファイルシステムに保存されたファイルを解析できる。実行システム102は、ファイルシステムをスキャンして、ユーザが定義する特定のファイルサブセットを識別することができる。例えば、ユーザはホームコンピュータを再フォーマットする前に、ホームコンピュータから作業ファイルを取り出したいと考え得る。実行システム102は、ホームコンピュータのファイルシステムをスキャンして、全ての作業ファイルにタグを付けるように構成できる。実行システム102は、忘れる権利等のデータ主体の権利、データ消去、主体のアクセスリクエスト、データ修正リクエスト、データサスペンション、データ蓋然性及び同意に関するデータをラベル付けするように構成できる。他の多くの応用が可能である。
【0039】
ソースデータの部分(データフィールド等)を発見し、分類し、ラベル付けするために、実行システム102は、1つ又は複数のファイル118に関する参照データベースにアクセスするように構成される。ファイル118は、実行システム102にソースデータの発見、分類及びラベル付けを実行するためのコンテキストを提供する。幾つかの実装形態において、参照データベース116は、データフィールドのエントリにおいて見つけられた値同士間の関係を保存するルックアップテーブルを保存できる。例えば、データストレージは、コードを用語集とマッチさせるルックアップテーブルを含むことができ、実行システム102はソースデータの発見、分類及びラベル付け中にこれを参照できる。参照データベース116のファイル118は、分類に使用される重み値を含むことができる。例えば、重み値は実行システム102に対し、ラベル付けされるソースデータ112に関して2つの用語(例えば、ビジネス用語)が相互に関係する蓋然性を示すことができる。これらの値は、ユーザにより又は自動的にソースデータ118の発見、分類及びラベル付けの初回イテレーション中に生成でき、その後のイテレーション中に更新できる。
【0040】
ファイル118は、反復的プロセスにおいて、実行システム102によるソースデータの発見、分類及びラベル付け前、発見、分類及びラベル付け中又は発見、分類及びラベル付け後に定義できる。ネットワーク型システム100の開発環境(図示せず)は、ユーザが参照データベース116を記述するか、又はデータストレージのファイル118を更新するために使用可能な手段を提供できる。例えば、開発環境は、実行システム102のユーザにフィードバックを提供するユーザインタフェースを含むことができる。例えば、開発環境のユーザインタフェースはレポートを表示でき、これは、実行システム102がどのように動作するか、例えば実行システム102によって何れのデータフィールドがラベル付けされ、どの程度の蓋然性で各分類が行われるかを示す。ユーザ及びユーザインタフェースに提供されるフィードバックの例は、後に詳細に説明する。
【0041】
一般に、実行システム102は1つ又は複数のプロセッサを含み、これは、プロファイルデータモジュール104、分類モジュール105、テストモジュール106、結果確証モジュール108及びロードデータモジュール110のロジックを実行するように構成される。プロファイルデータモジュール104、分類モジュール105、テストモジュール106、結果確証モジュール108及びロードデータモジュール110の各々の動作は、バッチ処理により又はリアルタイムの何れでも実行できる。追加的に、実行システム102はモジュール104、105、106、108、110の各々の動作をほぼ同時に又は異なる期間中に行うことができる。例えば、幾つかの実装形態において、プロファイルデータモジュール104が第一の時点でデータソース112からのソースデータのプロファイルを提示するプロファイルデータを生成する。その後、ある期間中のデータソース112からの全てのデータがプロファイルデータモジュール104によってプロファイルされると、分類モジュール105、テストモジュール106、結果確証モジュール108及びロードデータモジュール110はプロファイルデータを解析して、そのソースデータのデータフィールドを発見し、分類し、ラベル付けしてそのデータを1つ又は複数の下流のアプリケーションのためにデータストレージ116にロードすることができる。
【0042】
図2A~2Eは、実行システム202がデータフィールドの意味論的意味を識別するために、データフィールドをどのようにプロファイルし、分類し、ラベル付けするかを示すブロック図である。
図2Aを見ると、プロファイルデータモジュール104によりデータソースをプロファイルするプロセス200aが示されている。プロファイルデータモジュール104は、ソースデータ(例えば、表、ファイル等)を受け取り(254)、ソースデータのデータプロファイルを生成するように構成される。プロファイルデータモジュール104は、ソースデータ(例えば、1つ又は複数のデータセット)のフィールドを発見する(256)。プロファイルデータモジュール104は、ソースデータの表の行の識別、フィールド名を見つけること、フィールドの参照又は何れかの同様のプロセスによってフィールドを発見できる。プロファイルデータモジュール104は、データフィールドの統計的属性を特定し(258)、これらの統計的属性を含むプロファイルデータを生成する(260)。プロファイルデータは、ソースデータ内のパターンを識別する。より具体的に、プロファイルデータは、ソースデータの表のデータフィールドの値に関する統計を含む。例えば、プロファイルデータは、データフィールドのデータ値が数字データ、文字列等を含むか否かを指定する情報を含むことができる。例えば、データ値に関する統計としては、データフィールドの各々に含まれる値の最大値、最小値、標準偏差、平均等(データが数字である場合)を含めることができる。幾つかの実装形態において、データに関する統計には、データ値の各エントリに何桁又は何文字あるかを含めることができる。例えば、データプロファイルは、データフィールドの各データ値が7つ(又は10)の数字を含むことを示すことができ、これらはデータフィールドが電話番号を含むことを示すコンテキスト上の手がかりを提供し得る。例えば、データプロファイルは、データフィールドの各エントリが、値の小さい組からの値を含むことを示すことができ、これはテストモジュール106によるルックアップテーブルとの比較をトリガするために使用され得る。
【0043】
プロファイルデータモジュール104のためのデータインジェストは、フィールドのフィールド名、表内のフィールド(又はファイルシステム内のファイル)の場所の解析及びデータのスキーマの解析を含む。換言すれば、データインジェストはフィールドレベル、データセットレベル及びスキーマレベルで行われる。
【0044】
フィールドレベルでは、プロファイルデータモジュール104は、フィールドとフィールドのエントリの値を解析してプロファイルデータを生成する。プロファイルデータモジュール104は、フィールド又はそのエントリの値がヌルか、ブランクか、特定のデータ型にとって有効か、等を特定できる。プロファイルデータは、ヌルのパーセンテージ、ブランクのパーセンテージ及びフィールドごとの値のパーセンテージに関する統計を含むことができる。プロファイルデータモジュール104は、これらのパーセンテージのベースラインパーセンテージ(これは、ユーザにより開発環境を通して指定されるか又は自動的に生成され得る)からの変化を示すデータを生成することもできる。他の例では、プロファイルデータは、エントリのデータが暗黙的なデータ型にとって有効であるか否かの表示を含むことができる。例えば、データフィールドが文字列フィールドであることが分かっているのに日付データが見られる場合、そのデータがそのエントリにとって無効であることが推測され得る。他の例では、プロファイルデータは、エントリのデータが指定されたフォーマット(例えば、小数点2位までが要求されるが、明示的な型は、指定されていない)にとって有効であるという表示を含むことができる。幾つかの実装形態では、これらの機能性の幾つかは、プロファイルデータが生成された後にテストモジュール106によって実行される。
【0045】
データセットレベルでは、プロファイルデータモジュール104は、ソースデータの一部をソースデータ全体のデータセットに関係付ける統計を提供できる。例えば、プロファイルデータモジュール104は、固有キーの一意性及びカーディナリティの表示を含む。プロファイルデータモジュール104は、ソースデータのキー値に重複があるか否かを示す。プロファイルデータモジュール104は、近似的な固有キーのマッチに重複があるか否かを示す。プロファイルデータモジュール104は、これらの特徴の1つ又は複数を有する記録のカウントを示す。幾つかの実装形態において、この情報は、例えば、フィールドがキー値であると特定された後に結果確証モジュール108によって特定される。
【0046】
スキーマレベルでは、プロファイルデータモジュール104は、ある時間を経たソースデータに関するデータフィールドの統計情報を特定するよう構成される。例えば、プロファイルデータモジュール104は、ソースデータの新バージョンに追加又は削除されたコラムかあるか否かを検出する。プロファイルデータモジュール104は、区切られたフィールドを検出する。幾つかの実装形態において、プロファイルデータモジュール104は、リネージュカウントを実行して、何れかの記録がソースデータの前バージョンから落ちているか否かを特定する。他のスキーマ展開も検出できる。幾つかの実装形態において、この機能性は、データフィールドがプロファイルデータ内で発見された後に、結果確証モジュール108によって実行される。
【0047】
幾つかの実装形態において、プロファイルデータは、コンテキストデータが参照データベース116内で入手できる場合に改善できる。例えば、ユーザがソースデータの1つ又は複数のデータフィールドのためのフォーマットを指定する場合、プロファイルデータはこれらのデータフィールドに関する追加の統計情報を生成できる。これは、繰り返しプロセスの一環であり得る。例えば、データフィールドが初回のイテレーション内で発見されると(ただし、そのイテレーションでは分類はできなかった)、ユーザはデータフィールドのデータの内容を見て、実行システム102にプロファイルデータモジュール104(及び他のデータモジュール)が解析するための追加の情報を提供し得る。例えば、ユーザが、全てのデータフィールドに数字データのみを含めるように指定すると、プロファイルデータモジュール104は、何れのデータが無効であるかを迅速に特定し、データプロファイル内のその情報の統計的尺度を提供することができる。
【0048】
プロファイルデータモジュール104は、プロファイルデータを生成する前にソースデータのデータセット全体をスキャンすることにより、プロファイルデータをソースデータから生成する。プロファイルデータモジュール104はソースデータから全てのデータセットをコピーする必要はないが、プロファイルデータを生成するためにそのようにすることもできる。データセットは大きい(例えば、何ギガバイトものサイズ又はさらに何テラバイトものサイズ)可能性があるため、解析のためにデータを大量にローカルシステムにコピーすることは、非現実的であり得る。一般に、プロファイルデータモジュール104は、データソースに関する活動が低い期間にソースデータをスキャンする。
【0049】
図2Bを参照すると、分類モジュール105によってプロファイルデータを用いてデータフィールドを分類するプロセス200bが示されている。分類モジュール105は、プロファイルデータを受け取り(262)、フィールドを含むソースデータを受け取る(264)ように構成される。ソースデータの各フィールドについて、分類モジュール105は、(例えば、参照データベース116からの)ソースデータの発見されたフィールドについての既存のラベルを含むラベルインデックスをルックアップする(266)ように構成される。これらのラベルは、ラベル付きプロセスのそれ以前のイテレーションから得るか、又はラベルインデックス(例えば、初期ラベルインデックス)を手動で生成するか、インポートするか又はそれ以外に取得することができる。しかし、ラベルインデックスは、ラベル付けプロセスを実行する前に存在する必要がない。
【0050】
フィールドについて、分類モジュールは、そのフィールドが既にラベルインデックス内のラベルに関連付けられているか否かを特定する(268)。フィールドが依然としてラベルなしである場合又はラベルインデックスが存在しない場合、分類モジュール105は、そのフィールドのためのラベルが見つからないと特定する。必要に応じて、分類モジュール105は、意味論ラベルでポピュレートすべき新たなラベルインデックスを生成する。分類モジュール105は、フィールドデータ型の分類を実行する(270)。分類は、そのフィールドのプロファイルデータ、フィールド名及びフィールドの値に基づくことができる。例えば、分類モジュール105は、フィールドが「日付」フィールドであると特定できる。幾つかの実装形態において、分類モジュール105は、そのフィールドが数字フィールド、文字列フィールド又は他のこのようなデータ型であると特定することができる。分類モジュール105は、そのフィールドのデータ型を特定するが、そのフィールドの意味論的意味(及びしたがって、意味ラベル)は、後述のようにテストモジュール106によって特定される。例えば、分類モジュール105はフィールドが日付フィールドであると特定することができ、テストモジュール106は日付フィールドの日付が顧客の「生年月日」であると特定する。他の例では、テストモジュール106は、数字フィールドが「ユーザID」フィールドであると特定する。他の多くのこのような例が可能である。分類モジュール105は、分類されたデータを生成し(272)、それが意味論的意味を見つけるための分類出力276としてテストモジュール106に送信される。分類されたデータには、分類モジュール105により特定されたデータ型でタグ付けされる。
【0051】
ラベルが見つかると、分類モジュールはラベルデータを生成し(274)、これはテストモジュール106と結果確証モジュール108に伝えられる可能性がある。ラベルデータは、テストモジュール106と結果確証モジュール108に、そのフィールドが既にラベル付けされていることを知らせる。これは、そのフィールドに適用される分類子を重み付けするか又はラベルを提案するために使用できる。しかし、フィールドは分類モジュール105によって再分類され、テストモジュール106により再テストされて、そのラベルが正しいことが確認され、おそらくはデータ辞書データベース114の内のそのラベルのラベル属性が更新される可能性がある。例えば、テストモジュール106が既存のラベルはうまくフィットしないと判断した場合、新しいラベルが提案される可能性がある。ユーザが既存のラベルを選択すると(例えば、結果確証モジュール108により提示されたとき)、ラベルデータは、データ辞書データベース114内のそのラベルのラベル属性がそのラベルによりラベル付けされるデータの値を表さないという、実行システム102に対するフラグとして使用でき、これらの属性を更新できる。
【0052】
幾つかの実装形態において、分類モジュール105は、複数のイテレーションにわたって機械学習方式を用いて更新できる。例えば、発見されたフィールドが既にラベル付けされている場合、分類子は、それ以上の分類を迂回できると特定することができる。他の例では、フィールドに適用されたスコアは、データソース112から又はユーザ入力から受け取った追加のデータに基づいて更新できる。分類モジュール105は、テストモジュール108が前のイテレーションと比較して異なるテストを行うべきであると特定することができる。例えば、フィンガプリント解析が前のイテレーションで決定的ではなかった場合、分類子は、その後のイテレーションではこのテストを迂回すべき(又は他のテストに置き換えるべき)であると特定することができる。
【0053】
図2Cを参照すると、テストモジュール106により、意味ラベルに関連付けられものとしてフィールドを分類するプロセス200cが示されている。テストモジュール106は、プロファイルデータ内の統計を用いて且つ参照データベース116内で提供される追加のコンテキスト情報(ルックアップテーブル442等)を用いて、データセットのソースデータを分類するように構成される。分類モジュール105の分類出力276は、各フィールドのデータ型のコンテキストを提供し、またそのフィールドの既存のラベル(存在する場合)を提供するために使用される。テストモジュール106は、データ辞書データベース114から候補ラベル440を受け取るように構成される。候補ラベルは既存のラベルのライブラリであり、各々が1つ又は複数の属性に関連付けられ、それがデータフィールドの意味論的意味を(例えば、下流のアプリケーション又はユーザに対して)識別する。前述のように、データ辞書データベース114内の各ラベルに関連付けられた属性は、ラベルの意味論的意味を提供する。テストモジュール106は、これらの候補ラベルの何れが、データプロファイル、フィールド名及びそのフィールドのデータ値により特定されるデータフィールドの属性と最も密接に関連付けられるかを特定する。
【0054】
テストモジュール106は複数のテスト(又は分類子)を含み、各々が異なるテストモジュールによって実行されて、1つ又は複数のラベルをテスト対象の各フィールドに関連付ける。例えば、データセットのフィールドがプロファイルデータモジュール104により発見された後、テストモジュールは、フィールドの属性が各候補ラベルの属性にどの程度密接に対応するかを特定する。各テストは、異なるデータと方式を利用して、1つ又は複数のラベルを提案する。異なるテストでは異なる分類方式が使用されるため、各テストからのラベル案は、必ずしも同じとは限らないことがあり得る。ラベル案は、結果確証モジュール108内で検証され、これについて後に説明する。異なるテストを用いてフィールドの意味論的意味を識別することにより、何れか1つのテストを使用する場合より意味論的意味の特定がはるかによりロバストとなるが、これは、そのフィールドの意味論的意味を示すものとして何れの1つの要素(例えば、フィールド名又はそのフィールドの特定の値若しくは値の組の包含等)にも依拠しないからである。
【0055】
各データフィールド内のデータのテストは、データセットのデータのポピュレーションレベル(値がデータフィールド内でどの程度頻繁に出現するか)、発見されたデータ型(例えば、日付又は数字は文字列として保持される)、データフィールドのドメイン、キーフィールドの発見、フィールドが単独の単語か説明的フィールドかの特定及びその他の1つ又は複数の特定を含むことができる。例えば、データの分類は、日付と時間の解析を含むことができる。テストモジュール106は、したがって、プロファイルモジュール104からプロファイルデータを受け取り、一連の統計学的機能を実行して、フィールドの詳細を識別し、分類し、既知のラベル型の組に照らしてテストする。テストのルールはデータ型に応じて異なり、これは分類モジュール105によって分類出力276内で識別できるか、又は幾つかの場合、プロファイルデータモジュール104により生成されるプロファイルデータに含めることができる。
【0056】
テストモジュール106は、フィールド名及びデータフィールド内のエントリに対して複数の異なる分類テストを実行して、そのデータフィールドをどのようにラベル付けするかを特定するように構成される。テストモジュール106は、分類出力276、候補ラベル440及び参照データベース116からの何れかの参照データ442を受け取って、これらのデータをテストに供する。テストは、パターン解析410、ビジネス用語解析414、フィンガプリント解析418及びキーワード検索422を含む。前述のように、フィールド名とフィールドデータを含む表が図解的な例として説明されているが、テストモジュール106のテスト410、414、418及び422は他のデータ型に対しても実行できる。データフィールド及びソースデータのデータフィールド及びデータエントリに対して実行される分類テストの例としては、ファジマッチングプラン、コラムデータプラン、ビジネス用語マッチングプラン、キーワードマッチング、フィンガプリンティングプラン(例えば、コンテキストデータルックアップ)、パターンマッチング及び確証を含めることができる。
【0057】
テストモジュール106のファジマッチングロジックは、用語の辞書からのフィールド名のファジマッチングのためのロジックを含む。一般に、ファジマッチングは、正確なマッチを見つけることができない場合、フィールド名と辞書内の用語との間のマッチを見つけるように構成される。システムは、正確と言うのに満たない辞書の用語を見つける。例えば、テストモジュール106は、ファジマッチの閾値を100未満のパーセンテージに設定し、辞書データベース(例えば、データベース116)は、そのパーセンテージに対応する(例えば、それより大きい)全てのマッチをそのメモリに戻す。幾つかの実装形態において、蓋然性スコアが各マッチに割り当てられる。蓋然性スコアは、ユーザに提示できる。
【0058】
テストモジュール106のビジネス用語解析414は、データフィールド名を用語集内の既知のビジネス用語とマッチさせるためのロジックを含む。一般に、ビジネス用語は、異なるコンテキスト又はビジネス用語のグループ内に入れることができる。テストモジュール106は、特定の単語又は用語が他の単語又は用語内に出現することを発見するためのチェックを行う。これは、特定の仕様書の参照を含むことができる。例えば、テストモジュール106は、通りの名称の異なる略語、例えば「st」、「ln」、「ave」、「pl」、「ct」等を示す仕様書を受け取る。テストモジュール106は、これらの略語の何れかがデータフィールド内に含まれるか否かを特定するためのチェックを行う。仕様書のデータ要素の1つ又は複数がデータフィールド内に含まれると、テストモジュール106は、データフィールドが通りの名称を含むと特定する。この1つの情報は、それ自体で、例えばそのデータフィールドが通りの名称を含み、したがってそのようにラベル付けされるべきであることを特定するために使用できる。この1つの情報は、データフィールドが住所等の他の情報を含むことも示し得る。テストモジュール106は、コラム内に他のデータのほかに通りの名称があるとの特定を利用して、データフィールドがアドレスを含むか、通りの名称のみを含むか、又は他の何れかのデータを含むかを特定する。他の例では、「生年月日」という語句を認識し、そのようなラベルに関連付けることができる。他のマッチング手法には、ファジマッチング、同義語等を用いたマッチングを含めることができる。一般に、テストモジュール106は、蓋然性スコアを各マッチに関連付ける。ユーザは、例えば、開発環境を通して、このロジックを構成するための仕様書を生成できる。
【0059】
テストモジュール106のパターンマッチング解析410は、(フィールド名に加えて又はその代わりに)フィールドのデータの内容を使用する。パターンマッチングのために使用できるパターンマッチングのタイプは、テストモジュール106が分類データ276の結果に基づいて特定できる。例えば、分類データ276は、フィールドのデータ型、例えばデータが数字であることを識別し得る。この例において、プロファイルデータは、データフィールド内の各エントリが13~18文字の長さであることも示す。これは、テストモジュール106に対し、そのデータフィールドはクレジットカード番号のデータフィールドであり得ることを示し得る。これを確認するために、1つ又は複数のパターンテストは、テストモジュール106が、疑われるデータフィールドのデータに照らして実行できる。例えば、各エントリの初めの4~6桁は発行元コードの表に照らしてチェックできる。最後の番号はルーンテストによって定義されるチェックデジットを含むことができる。データフィールドのためのエントリの閾値パーセンテージがこれらのパターンの各々を満たす場合、テストモジュール106は、そのフィールドがクレジットカード番号を保持すると結論し、フィールド名を適切なラベル及び蓋然性と関連付けることができる。パターンマッチングロジックに関して、フィールドのデータ自体とフィールド内のデータのパターン(例えば、プロファイルデータ内で識別される)の両方が、何れのパターンテストを実行するか、及び何れのラベルをそのデータフィールドに適用すべきかを見分けるために使用できる。
【0060】
テストモジュール106は、ソースデータ112に対してパターン解析テスト410を実行すべきか否かを特定する(408)。この特定は、分類データ276の結果であり得る。パターンマッチ解析410は、プロファイルデータを用いて、ソースデータ112が候補フィールドラベルを示す所定のパターンと一致するか否かを特定する。例えば、フィールドのデータが特定の長さと構成物を有する場合、パターンマッチ解析410は対応する候補ラベルを識別する。ラベルに適用されるパターンスコアは、識別されたパターンが所定のパターンにどの程度密接にマッチするか、そのパターンがどの程度示差的であるか、又は何れかの数の要素の関数であり得る。重みは、パターンの示差性に応じて調整できる。例えば、ごく稀なパターンはより高い重み値に対応し得る。発見されたフィールドの値が(値の全体又は一部について)そのパターンと密接にマッチする場合、スコアは、少ない数の値のみがそのパターンとマッチする場合より高くすることができる。
【0061】
テストモジュール106は、キーワード検索テスト422を含むことができる。キーワードテスト(ビジネス用語マッチングテストと同様である)は、データフィールド内の特定のキーワードの検索を含む、データベースのテストを含む。例えば、住所を見つけるために、テストモジュール106は「ストリート」、「ロード」、「アベニュー」等、一般的な住所の単語を探索する。テストはユーザによって拡張でき、ユーザは新しいキーワードファイルを参照データベース116の仕様書に追加できる。キーワードテストは、ある語句内の単語又は単語の一部を見つけるために使用でき、これは、例えば、データフィールドを一意に識別できる限定的な一般的単語の組がある住所及び会社名等である。
【0062】
テストモジュール106は、フィールド名に対してキーワード解析422を実行すべきか否かを特定できる(420)。この例において、テストモジュール106は、フィールドの幾つかが依然としてラベル値に関連付けられない場合、キーワードマッチングテストを実行するであろう。フィールド名(及びおそらく、フィールド値)が、これらがある表の1つ又は複数のキーワードを含むか否かの点でチェックされ、これはテストモジュール106が特定のラベルをフィールドに関連付けることを支援し得る。テストモジュール106は、キーワード検索422を実行し、キーワード検索スコアを生成する。
【0063】
テストモジュール106は、ソースデータのデータ値を解析するためのフィンガプリンティングテスト418を含むことができる。フィンガプリンティングのロジックは、一般に、テータフィールド全体のためのデータルックアップ含む。フィンガプリンティングロジックは、データ値に基づくテストを含む。データフィールドのフィンガプリンティングのロジックは、(例えば、参照データベース116から)の既知のリストをデータフィールドのデータと比較して、データフィールドのデータがリストのデータと相関するか否かを特定することを含む。例えば、データフィールドからのデータは、名のリスト、州名のリスト、都市名のリスト及びその他と比較することができる。フィンガプリント(データリストとして知られる)は、一般に、包括的ではなく代表的である。換言すれば、フィンガプリントはフィンガプリントの組の一部である値の個々の例を含む必要はない。一般に、フィンガプリントはそのデータフィールドのデータエントリ内に出現するはずである最も一般的な値を近似的に代表する、選択された例示的な値を含むことができる。例えば、フィンガプリントは、名の表のために米国で考え得るあらゆる名を必要とするわけではなく、最も一般的な名の選択されたグループで十分であり得る。例えば、一般には上位100の名により、データフィールドとデータフィンガプリントとの間の相関を示すのに十分なデータが得られる。データフィンガプリントはマスタデータから生成できる。例えば、システムは、データフィールドが都市名に対応するか否かをチェックするために、人口密度の高い上位50~100米国の都市を含み得る。ユーザは、特定のシステムのためのフィンガプリンティングテストの機能性を高めるために、仕様書に新しいドメインを追加することができる。
【0064】
テストモジュール106は、そのフィールドについてフィンガプリント表をチェックすべきか否かを特定する(416)。フィンガプリンティングは、フィールドのために考え得る値の長いリストがあるが、値の幾つかは、それ以外のものより一般的であると予想されるような状況で有効に機能することができる。例えば、都市名、通りの名称、さらに姓名もフィンガプリンティング解析の好適な候補である。テストモジュール106は、フィンガプリント解析418を行い、フィンガプリントスコアを生成する。
【0065】
テストモジュール106は、ビジネス用語解析を行うか否かを特定する(412)。ビジネス用語解析は、ソースデータ112内において、フィールドのラベル付けのためにビジネス用語に対応し得る多くの固有の用語がある場合に有益であり得る。ビジネス解析が実行されると、テストモジュール106は、フィールド名をビジネス用語と比較して、マッチを見つけ、ラベル及びそれらに関連する蓋然性を生成することにより、ビジネス用語解析414を実行する。ビジネス用語解析414の結果は、パターンマッチ解析410と同様に、重み及びスコアに関連付けられる。
【0066】
テストモジュール106は、確証ロジックを使用し、テスト間の結果を比較して、結果を改善するように構成できる。例えば、確証ロジックは、他の分類テストを用いてビジネス用語のマッチのバリデーションのために使用できる。例えば、データフィールドが旧姓値を含むことを指定するテストは、姓のフィールドであるという分類テストに合格すべきである。
【0067】
テストモジュール106は、(例えば、特定のソースからの)前のデータセット又は同じデータセットの前のイテレーションの分類が類似し、何れのテストがその後のイテレーションのために選択されるか、及びこれらのその後のイテレーションの蓋然性の値がどのように特定されるかに影響を与える機械学習ロジックを実行するように構成される。機械学習ロジックは、データセットについて訓練され、訓練データを用いて開発された重みを適用してデータセットの新しいデータを分類することができる。
【0068】
テスト410、414、418及び422の各々は、解析対象のデータフィールドのための1つ又は複数のラベル案を出力できる。テスト410、414、418及び422は、一致する必要がない。各ラベル案は、スコア(図示せず)及び重み値(図示せず)に関連付けることができる。各ラベルのスコアと重みは、結果確証モジュール108が、ラベル案のうち、そのフィールドの意味論的意味を識別するものとしての特定のラベルを提案し、そのラベルをあるカテゴリにカテゴライズする(又はそのラベルをバケット化する)ために使用できる。カテゴリ(後述する)は、テスト間にどの程度の一致があるかを示し、したがってラベル案がそのフィールドのデータの意味論的意味を識別する確実性を示唆する。
【0069】
テストを実行するために、テストモジュール106は、データ276、442及び440を受け取り、各テストを実行すべきかを特定する。例えば、受け取ったデータ型が特定のテストのためにフォーマットされない場合、テストは、実行されなくてもよい。テストの何れの組合せを実行することもできる。テストモジュールは、パターン解析410を実行すべきか特定し(408)、ビジネス用語解析414を実行すべきかを特定し(412)、フィンガプリント解析418を実行すべきかを特定し(416)、キーワード検索422を実行すべきかを特定する(420)。各テスト410、414、418及び422は、1つ又は複数のラベル案を生成して、ラベル案を出力する。全てのラベル案を含むテスト結果は結合され(424)、結果確証モジュール108にテスト結果306として送信される。
【0070】
幾つかの実装形態において、その後のテストは、以前のテストから結果が依然として見つからない場合に実行できる。幾つかの実装形態において、テストモジュール106は、解析対象のソースデータ112に基づいて参照データベース116からデータを検索することによって参照データを作成する。例えば、テストモジュール106は、ソースデータ112の場所、ソースデータ内の表の名称、ユーザ入力及びその他に基づいて参照データベース116からデータを検索できる。テストモジュール106は、何れのルックアップテーブルにアクセスして、ソースデータの各フィールドに照らしてチェックするかを特定できる。ルックアップの選択は、プロファイルデータモジュール104から受け取ったプロファイルデータに基づいて実行できる。
【0071】
幾つかの実装形態において、テストモジュール106は、スキーマ解析を実行すべきかを特定する。スキーマ解析は、ソースデータ112をある期間にわたり、全体として解析するために使用できる。例えば、フィールドが損なわれ、追加され、削除され、及び他の場合、この情報は、他のデータフィールドをラベル付けするために使用できる。
【0072】
幾つかの実装形態において、テストが各々完了すると、テストモジュール106は関連するスコアを結合して最終スコアを生成し、これはそのスコアが適用される、関連するラベル案と共に示される。幾つかの実装形態において、上流のスコアは下流のスコアに影響を与えるため、スコアは相互に離散的ではなく、各解析が行われると更新されるスコアを表す。幾つかの実装形態において、各ラベル案とそのスコアは結果確証モジュール108に別々に報告され、したがって、これは、どのようにテスト結果306をカテゴライズするかを特定する。
【0073】
幾つかの実装形態において、テストの順序は、処理集約性の高いテストが最後に予定されるような順序であり得る。時間集約性の高いテストは、他のテストがうまくいかなかった場合の最後の手段であり得る。テストの順序をこのように決定することにより、ソースデータ112のラベル付けのための実行システム102上の処理時間を短縮できる。
【0074】
図2Dを参照すると、結果確証モジュール108は、確証ロジックを実行するように構成される。テストモジュール106がソースデータについて分類テストを行い、ソースデータのデータフィールドのラベルの蓋然性の値を特定すると、結果確証モジュール108は、分類された結果が高い確実性を示すか否か、又はさらにテストを行うべきか否かを特定するためのチェックを行う。
【0075】
結果確証モジュール108は、テストモジュール106によってソースデータについて実行された異なるテストのテスト結果306を受け取り、結果が相互に裏付けるか、又は相互に矛盾するかを特定する。テストモジュール106のテストの結果306は、結果確証モジュール108によって幾つかの分類カテゴリにソートされる。カテゴリは、マッチカテゴリ290、推奨カテゴリ291、調査カテゴリ292及び無視カテゴリ293を含む。カテゴリの各々は、テスト結果306内のラベル案間の類似性を示す。例えば、全てのラベル案が類似する場合、テスト結果の類似性レベル高い。各ラベル案が異なる場合、テスト結果の類似性レベルは低い。類似性は、単なるテストの各々による投票機構以上のものであり得る。各ラベル案は重み付けされスコア値に関連付けられる。テストの1つのラベル案がその他とマッチしないが、他のテストの他のラベル案と比べて、比較的高いスコア値及び大きい重みに関連付けられる場合、たとえ4つのテストの3つが一致しても、その類似性は、より低いと識別される可能性がある。
【0076】
識別されたカテゴリに応じて、結果確証モジュール108は、そのラベルがフィールドの意味論的意味を識別するということのバリデーションを自動的に行うことができるか、又はそれは、ユーザに手動でラベルのバリデーションを行うように促すことができる。バリデーションは、ユーザインタフェース上でクライアントデバイスを通して行うことができ、これについて後述する。
【0077】
マッチカテゴリ290は、あるラベルに関する最高レベルの確実性を示す(例えば、100マッチ)。幾つかの実装形態において、マッチしたラベルはソースデータに関連付けられたメタデータに自動的に含められる。しかし、結果確証モジュール108は、依然としてこの結果を手動バリデーションのためにユーザに提示するように構成できる。一般に、マッチカテゴライゼーションは、実行されたテストの全部が同じラベルを提案したことを示す。幾つかの実装形態において、そのマッチカテゴリは、ラベルが全てマッチするわけではないが、何れかの異なるラベルがスコア閾値より低い場合に選択でき、これは、テスト間の大体の一致を示す。
【0078】
推奨カテゴリ291は、一般に、少なくとも1つのラベルがデータフィールドとの高品質の関連付けを有することを示す。しかし、推奨ラベルは、一般に、最高の確実性に関して設定された閾値レベルより低く、さらにバリデーションを行うことが好ましい。幾つかの実装形態において、推奨カテゴリは、幾つかの高品質のラベルがデータフィールドに関連付けられることを示す。幾つかの実装形態において、結果確証モジュール108は、推奨されたラベルを各々の蓋然性と共にランク付けしてリストにし、これは、ユーザがそのデータフィールドにとって最良のラベルを選択することを支援できる。
【0079】
調査カテゴリ292は、何れかの特定のテストに合格しない幾つかの興味深い統計的特性を有する値又はデータフィールドを示す。例えば、データフィールドは、それが意味を有するはずであるかのように見える可能性があるが、何れのテストでもラベルが提案されないか、又はこれらの若しくはラベル案のスコアがある閾値より低い。例えば、データフィールドは、そのデータフィールドがソースデータ内の重要なドメイン又はフィールドであることを示すプロファイル属性を含む可能性があるが、何れのラベルも推奨されない(又は閾値蓋然性より高いものが推奨される)。一般に、このような結果は、追加のルールをテストに追加すべきであり(例えば、テストを拡張するか、何れかの方法で変更すべきであり)、再び実行すべきであることを示す。
【0080】
無視カテゴリ293は、あるデータフィールドが興味を引かないものとして指定されるか、又はフィールドが何れのテストもトリガせず、そのデータフィールドが重要であることを示唆するプロファイル属性を一切示さなかったことを示す。一般に、無視カテゴリは、受け取ったテータにエラーがあるか、又は識別可能なパターンを持たない場合に示される。無視カテゴリは、新しいラベルを定義すべきであることを示し得るが、それは、一般に、フィールドが特定の構造を持たない雑多なデータを含むことを示す。
【0081】
一般に、テスト結果306をあるカテゴリにカテゴライズする(例えば、バケット化する)ために、結果確証モジュール108はプロセス285を実行する。結果確証モジュール108は、フィールドからのテスト結果を比較する(286)。各フィールドについて、結果確証モジュールは、テスト結果306を類似性レベルに基づいてカテゴリに割り当てる(288)。
【0082】
分類カテゴリを指定する分類ファイルを生成することに加えて、結果確証モジュール108は、他のファイルを生成するように構成される。他のファイルは、プロファイルコメントファイルを含む。プロファイルコメントファイルは、分類解析プロセスの結果を説明するファイルである。他のファイルは、発見結果のサマリを含み、これはビジネス用語マッチングプロセスとフィンガプリンティングプロセスからの出力を結合したものを説明する。
【0083】
結果確証モジュール108は、各データフィールドの総計と範囲に基づいて、データ値の異常値があるか否かを特定するように構成される。異常値は、あるデータフィールドについて識別された関係又はフォーマットと一致しないデータ値を含む。結果確証モジュール108は、異常値がテストモジュール106の分類からの関係のクラスタリング及び予測に基づいて特定される。
【0084】
上述のプロセスは、分類の正確さを高めて、ユーザが分類テストを更新してよりよい結果が得られるようにするために、繰り返すことができる。前述のように、幾つかの実装形態において、機械学習ロジックは、各イテレーション中に分類子を訓練して、このプロセスを容易にするために使用できる。一般に、プロファイルデータがプロファイルデータモジュール104によって生成されると、テストモジュール106及び結果確証モジュール108のプロセスが繰り返され、ソースデータ自体が更新されない限り、新たなプロファイルデータを繰り返し生成する必要はない。
【0085】
プロファイルデータモジュール104、分類モジュール105、テストモジュール106及び結果確証モジュール108がデータフィールドの各々のためのラベルを生成すると、ロードデータモジュール110はラベルインデックスを含むメタデータを参照データベース116にロードすることができる。
図2Eを参照すると、ロードデータモジュール110は、ラベルインデックスを更新し、データを参照データベース116にロードするためのプロセス299を実行する。ロードデータモジュール110は、フィールド名を受け取り(295)、フィールドのラベル案を受け取り(296)、これは、手動で又は自動的にバリデーションが行われる。ロードデータモジュール110は、フィールド名とラベル案を結合する(297)。ロードデータモジュールは、ラベルをデータセット内のフィールドの位置に関連付けることによってラベルインデックスを更新する。ロードデータモジュールは、データセットがラベルインデックスに解析されるためにラベルを結合し(298)、これは、実行システム202及び下流のアプリケーションにより、そのデータセットについて参照され得る。
【0086】
一般に、参照データベース116には1つ又は複数の下流のコンピューティングシステムが様々な用途のためにアクセスできる。例えば、データセットの生成されたラベルは、データ品質のエンフォースメント、個人データの匿名化、データマスキング、(PII)レポート、テストデータの管理、データセットの注釈付け及びその他のために使用できる。
【0087】
ロードデータモジュール110は、メタデータとソースデータを1つ又は複数の他のコンピューティングシステムによって使用可能な1つのパッケージにパッケージするように構成される。例えば、プロファイルデータが生成されると、分類モジュール105、テストモジュール106及び結果確証モジュール108の動作は各々、それらのプロセスの複数のインスタンスをソースデータの異なるパーティションで並行して実行するように構成できる。例えば、ソースデータが複数の表を含んでいる場合、ソースデータは表によって区切ることができる。テストモジュール106と結果確証モジュール108は、それらのロジックプロセスのインスタンスを複数の表について同時に実行して、実行システム102のプロセスのスループットを高めることができる。ソースデータがラベル付けされると、ロードデータモジュール110は、パーティションを再び一体化して、ラベル付けされたソースデータを参照データベース116内に保存するように構成できる。
【0088】
図3A~3Gは、データフィールドをプロファイルし、分類し、ラベル付けして、データフィールドの意味論的意味を識別するためのプロセスのブロック図である。
図3Aの例において、ブロック
図300aは、ソースデータ302が区切られて、各表302a、302bが実行システム102によって並行処理されることを示す。ソースデータ302は、フィールドとフィールド内のエントリの値を含む。前述のように、表とフィールドがソースデータの例として示されているが、ソースデータは、他のデータ型を含むこともできる。プロファイルデータモジュール104は、ソースデータ302を受け取り、インデックスデータ302cを参照データベース116に保存する。インデックスデータ302cは、ソースデータ302のための表のインデックスであり得る。インデックスデータ302cは、その後、ソースデータ302内のフィールドの各々のためのラベルを含むように変更され、したがってラベルインデックスとなる。
図3Aに示されるように、インデックスデータ302cはフィールド名を各フィールドのソースデータ302内のフィールド位置に関連付ける。
【0089】
ソースデータ302は、2つの表、すなわち表302a及び表302bを含む。第一の表302aは、日付、都市名及び英数字コードを含む。第二の表302bは、氏名、電話番号及び日付を含む。ユーザにとって、都市名が実際に都市名であること又は電話番号が実際に電話番号であることは、明らかであるが、ユーザが英数字コードの目的を特定すること又は日付がどのようなものを表すかを特定することは、より難しいことがあり得る。実行システム102は、この問題を第一及び第二の表302a、302bのフィールドの各々を前述のように分類することによって解決するように構成される。
【0090】
一般に、プロファイルデータモジュール104はまず、ソースデータ302の表の全部をプロファイルして、表に関する統計的特徴を特定する。プロファイルデータ304a、304bがそれぞれ表302a、302bの各々について生成されると、実行システム102は第一の表302aを第一のパーティション304aに、第二の表302bを第二のパーティション304bに区切る。
【0091】
前述のように、プロファイルデータ304はフィールド名と各フィールドのエントリに関する統計情報を含む。例えば、表302aについて、プロファイルデータ304aは4つのフィールド、日付1、日付2、場所及びIDを識別する。プロファイルデータモジュール104は、日付1のデータ値(エントリとも呼ばれる)が同じフォーマット##/##/####を含むことを特定する。実際には、プロファイルデータモジュール104は、ほぼ全ての値がこのフォーマットを有すると特定し、異常値を捨てることができる。日付1の値のフォーマットを特定することに加えて、プロファイルデータモジュール104は、日付1の値の全てにおいて最初の2桁が1~12内に入ることを特定した。この日付は、テストモジュール106に対して、日付1のエントリの値が日付であることを示すことができる。
【0092】
同様に、プロファイルデータモジュール104は、日付2、場所及びIDのフィールドの各々についてもフォーマット解析と統計解析を行う。日付2も、そのエントリために##/##/####のフォーマットを有する。プロファイルデータモジュール104は、日付2の最後の4桁部分の値が常に日付1のエントリの最後の4桁部分の対応する値より大きいことも特定する。これは、日付1及び日付2の両方が日付を含んでいる場合、表302a内の各エントリについて、日付2の日付の値は常に日付1の対応する日付の値より時間的に後であることを示す。プロファイルデータモジュール104は、場所が文字列であり、その中で2つの文字コードが常に最初の単語に続くことを特定する。プロファイルデータモジュール104は、IDが常に長さが7の英数字列を含むことを特定し、これはテストモジュール106に対し、IDの値がコード、ユーザID等であることというヒントを提供し得る。
【0093】
プロファイルデータモジュール104は、表302bをプロファイルしてプロファイルデータ302bも生成する。一般に、表302a、302bを一緒にプロファイルしてから、パーティションに区切られる。プロファイルデータモジュール104は、表302の姓が文字列を含み、「スミス」の値が最も一般的なエントリである(x2)ことを特定する。プロファイルデータモジュール104は、表302bの名が文字列を含み、「ジョン」の値が最も一般的なエントリである(x3)ことを特定する。プロファイルデータモジュール104は、M/Fが2つの値、「M」又は「F」の1つである1つの文字を含むことを特定する。プロファイルデータモジュール104は、番号のフォーマットは(###)###-####を含み、括弧内の番号(すなわち最初の3つの数字)は限定された組を形成することを特定する。プロファイルデータモジュール104は、備考が文字列を含み、最初の2桁が1~12であることを特定する。
【0094】
プロファイルデータ304は、プロファイルデータモジュール104によって生成されると、テストモジュール106に送信される。テストモジュール106は、表に対する動作をパーティション306a及び306bにおいて並行して行うように構成される。プロファイルデータモジュール104は、プロファイルデータ304を分類モジュール105に送信する。
【0095】
図3Bを参照すると、ブロック
図300bは、分類モジュール105がプロファイルデータ304とソースデータ302を処理して各フィールドのデータ型を分類するための方法を示す。分類モジュール105は、プロファイルデータモジュール104からプロファイルデータ304と参照データベース116からラベルインデックス220を受け取る(401)。分類モジュール105は、ソースデータからフィールドを選択する(405)。この例において、日付1のフィールドが分類のために選択される。分類は、ソースデータ302について、フィールドごとに行われる。選択されたフィールドに関するプロファイルデータ314は、そのフィールドのための既存のラベルがあるか否かに基づいて分類される。ここで、日付1のフィールドの状態は<ラベル付け前>として示される。分類モジュール105は、日付1のフィールドを分類して、そのフィールドが日付フィールドであることを特定し、そのフィールドのための任意のラベルを示す(この場合には見つからない)。これらの情報は分類出力286であり、それがテストモジュール106に送信される。
【0096】
図3Cを参照すると、線
図300cは、テストモジュール106が日付1のフィールドのためのラベルをどのように挙げるかを示す。この
図300cは、第一の時間T1におけるデータセットの1つのフィールドに関するテストを示す。テストは、フィールドごとに行われるが、一般に、データセットの全てのフィールドがテストされる。テストモジュール106は、分類出力286、プロファイルデータ304及びルックアップテーブル442を含む参照データベース116に保存されたデータにより提供される手がかりを用いて分類出力306を生成する。例えば、前述のように、分類モジュール105は、表302aの日付1のフォーマットから、第一のフィールドが「日付」フィールドであると特定する。第一の部分が1~12の番号である(及びそのシステムが米国の日付表記法を使用する)との追加情報がさらに、日付1は日付のフィールドであることを示唆する。テストモジュール106は、日付1が日付フィールドである蓋然性95を割り当てる。しかし、それ以外のコンテキストがないため、テストモジュール106は、日付フィールドの日付の種類がどのようなものを表すかを特定できない。日付1の日付フィールドは、あるサービスの契約日、生年月日、更新日及びその他を含むことができる。テストモジュールは、テストが参照データベース116とラベル表440のコンテキスト情報を使用することから、日付1のフィールドが「生年月日」のフィールドであると特定できる。ラベル表440は、解析対象のデータセットのための定義されたラベルのリストを含む。ラベル表440は、前述のように追加のラベルを追加して必要に応じて補正できる。
図3Cに示されるように、ラベル表440の各ラベルは1つ又は複数の属性であり、これは、そのデータについてラベルが説明すべき何れの特徴がそこにあるかを説明する。例えば、有効な電話番号の最初の3桁は、参照データベース内の地域コード表内の考え得る番号の組に含まれるものである。例えば、有効期限のフィールドの日付は、生年月日のフィールド(存在する場合)の日付より常に後である。これらの属性は、フィールド値及びデータの他の特徴間の複雑な関係を示し、データが、関連付けられたラベルにより識別される意味論的意味を有することを示す。
【0097】
日付1のフィールドをテストするために、テストモジュール106は、前述のようにテスト410、414、418及び422を何れかの組合せで実行する。各テストで1つ又は複数のラベルが提案される。例えば、パターンマッチ解析410は、生年月日のラベル案318をスコア.80、重み1.5で挙げる。例えば、ビジネス用語解析414は、有効期限のラベル案320をスコア.75、重み1.1で挙げる。例えば、フィンガプリンティング解析418は、生年月日のラベル案322をスコア.60、重み1.75で挙げる。例えば、キーワード検索解析422は、生年月日のラベル案324をスコア0、重み.5で挙げる。重みは、ユーザによって実行システム102に適用されたフィードバックに基づいてあらかじめ決定するか、又は機械学習プロセスによって自動的に調整することができる。スコアは、テストにより、その案がどの程度強力であるかを示す。例えば、キーワード検索テスト422のスコアが0とされるのは、利用可能なデータが、その解析を使用するために適正にフォーマットされないからであり得る。したがって、この場合、このテストの案は捨てられる。スコア1は、例えば、そのテストについて、ラベル案が正しい確実性が高いことを示す。例えば、ラベル表440内の特定のラベルに関する全ての属性が、日付1のフィールドに関するソースデータ302及びプロファイルデータ304において識別されると、そのテストでは、その特定のラベルがそのフィールドの意味論的意味を正しく識別することを確実にすることができる。
【0098】
テストモジュール106は、ラベル案318、320、322及び324を結合して424、テスト結果326とする。テスト結果326は、提案されたラベルとそれらに関連付けられたスコア及び重みを含む。結果確証モジュール108は、このスコアと重みを用いて、ラベル案が相互にどの程度類似するかを、案をカテゴリにカテゴライズするために特定する。
【0099】
図3Dを参照すると、線
図300dは第二の時間T2を示し、その後、ソースデータのフィールドの各々がテストされている。テスト結果326は、日付1について示され、これらは他のフィールドのための他のテスト結果と結合される。例えば、テストモジュール106は、日付2が有効期限であることをスコア95で特定し、これは、日付1が生年月日であるとの特定と同様である。テストモジュール106は、この日付が各エントリについての日付1の日付の値より常に後であるとの追加のコンテキストを有する。追加情報にアクセスして、日付をさらに定義することができる。この例において、テストは「有効期限」を考え得るフィールド名として提案する。テストモジュール106は、フィンガプリント解析に基づいて、「生年月日」のラベルに関して日付2にスコア53を割り当てる。
【0100】
テストモジュール106は、場所のエントリの値に基づいてルックアップを行う。前述のように、テストモジュール106は、ルックアップテーブル、キーワードマッチング、ファジマッチングロジック等を用いて、文字列の値が都市名であり、各エントリの2文字の文字列が州の略称を表すと特定できる。幾つかの実装形態において、テストモジュール106は、場所のエントリの各値を2つの部分に分割して、エントリの値が都市と州名の両方を表すと特定するように構成される。
【0101】
テストモジュール106は、このソースデータ302のためにシステム管理者が提供した特定のルックアップテーブルを参照する。このシステムは自動車部門からのデータを取り込んでいるため、表のうち、ユーザにより含められる1つは運転免許証IDの表である。テストモジュール106は、IDの値のフォーマットがルックアップテーブル内にある運転免許証IDのフォーマットとマッチすると特定できる。この場合、フィンガプリンティングアルゴリズムが適用される。IDとルックアップテーブルの値との間には幾つかのマッチが見つかるが、この例ではわずかなマッチのみがある。テストモジュール106は、このラベルに対応するスコア62を割り当てる。この例のその後のイテレーションでは、フィンガプリンティングアルゴリズムがより強力なマッチを取得するための追加の値を提供できる。しかし、他の例では、フィンガプリンティングアルゴリズムは、初回の試行時に高い確実性のマッチを提供できる。
【0102】
パーティション306a内の表302aの解析と並行して、テストモジュール106は、パーティション306b内の表302bのためのプロファイルデータとその内容を解析するように構成される。この例において、テストモジュール106は、1つ又は複数の分類子を表302bの姓に適用して、そのフィールドが姓を表すと特定する。例えば、前述の分類アルゴリズムを表302bのデータに適用できる。最も一般的な値(「スミス」)は、2回のみ出現するため、テストモジュール106は、そのフィールドに「姓」のラベルを低いスコア35で割り当てる。しかし、名について、ルックアップテーブルの同様の解析に基づき、「ジョン」という名前がより頻繁に出現する(及び名の値として識別される)ため、名のスコアは、85である。
【0103】
テストモジュール106は、表302bのM/Fの値について、1文字コードに照らしたチェックを行う。性別指定表が見つかり、M/Fの値は、表内で指定されるものとマッチする。M/Fには、「性別」のラベルが98のスコアで割り当てられる。
【0104】
番号に関して、テストモジュール106は、各エントリ(又はほとんどのエントリ)のフォーマットが電話番号に対応することを特定する。第二のチェックとして、最初の3桁が地域コード表と比較される。番号の各値の最初の3桁は地域コード表(図示せず)内の値とマッチするため、テストモジュール106は番号に「電話番号」のラベルをスコア100で割り当てる。備考に関して、テストモジュール106は何れのテストでも可能性の高いラベルは見つからなかったと特定する。テスト結果306は、解析される表に基づいてパーティション306a、306b内に保持できる。
【0105】
図3Eを参照すると、線
図300eは、結果確証モジュール108が日付1のフィールドのためのテスト結果326をどのように処理するかを示す。
図3Eは、特定のフィールド、日付1を処理するための時間T1を示し、これは、各フィールドがフィールドごとにカテゴライズされるからである。結果確証モジュール108は、日付1のフィールドのためのテスト結果326を受け取る。
【0106】
結果確証モジュール308は、モジュール286でテスト結果326のラベル案を相互に比較する。生年月日のラベル案はカウント3を有し、それに対して有効期限のラベル案はカウント1を有する。幾つかの実装形態において、日付1等のフィールドの意味論的意味を識別するための最終的なラベル案として何れのラベルをユーザに示すべきかを特定するために、単純な投票機構を使用できる。幾つかの実装形態において、何れのラベルが提案され、何れのカテゴリがラベル案に関連付けられるかを特定するためにスコアと重みを使用できる。例えば、結果確証モジュール108は、ラベル案をそれらの重み付けされたスコアによりランク付けし、最上位のラベル案を選択することができる。幾つかの実装形態において、全てのラベル案がバリデーションのためにユーザに示される(複数の案がある場合)。
【0107】
結果確証モジュール108は、モジュール288によってラベル案間の類似性に基づいてラベル案をカテゴリに割り当てる。カテゴリは、重みスコアに、各ラベル案のカウント及びその他に基づいて選択できる。カウント、スコア及び重みの関数を用いて、フィールドのためのラベル案をカテゴリ290、291、292又は293の1つに割り当てることができる。ここで、ラベル案は全てのテストについて一致するわけではないため、また一致しないテストに十分に高い重み付けスコアの値が割り当てられるため、(マッチカテゴリ290ではなく)推奨カテゴリ291が選択される。結果確証モジュールは、ユーザに対してカテゴライズされた案289のバリデーションを行うように促す可能性が高い。
【0108】
レポート生成モジュール380は、フィールドの各々が、どのように、何れのラベル案でカテゴライズされるかを示すレポート381を生成できる。例えば、各カテゴリのカウントと、何れのフィールド及びラベル案が各カテゴリ内にあるかを含むヒストグラムが示される。一般に、数の少ないフィールドは調査する必要があり、数の多いフィールドは推奨案又はマッチした案を有する。
【0109】
図3Fを参照すると、ブロック
図300eは、全フィールドにカテゴライズされたラベル案が割り当てられた後の結果確証モジュールの時間T2を示す。テスト結果と割り当てられたカテゴリ221は、テスト結果バリデーションモジュール399に送信される。バリデーションモジュール399は、例えば、バリデーションデータ111(例えば、クライアントデバイス)上でユーザインタフェースがユーザに対して提示されるようにすることができる。バリデーションデータ309は、ソース111を介して受け取られ、バリデーション済みラベルは割り当てられたラベル308としてフィールドに割り当てられる。各フィールドは、そのフィールドのデータの意味論的意味を識別する1つの割り当てられたラベルに関連付けられる。
【0110】
図3Gを参照すると、線
図330fは、ソースデータ302のフィールドのための割り当てられたラベル308がロードデータモジュール110によってどのように保存され、ラベルインデックスがどのように更新/生成されるかを示す。ロードデータモジュール110は、参照データベース116からインデックスデータ302cを受け取る。インデックス302cは、データ辞書データベース114内の各ラベルについて、そのラベルに割り当てられる各フィールドの場所を生成するために使用される。ラベルインデックス310は、この関連付けを示す。下流のアプリケーションがソースデータ302を操作すると、ラベルインデックス310を参照して、データの扱いにおけるエラーを減らし、データをさらに解析せずに、フィールドの意味論的意味を迅速に見つけることができる。これにより、下流のアプリケーションは、データ自体に実際にアクセスすることなく、例えば個人識別情報をスクリーニングすることが可能となる。
【0111】
図4は、データフィールドのデータから生成されたデータプロファイルを解析することにより、データフィールドを発見し、分類し、ラベル付けするために実行システムのロジックエンジンが実行する動作を示すフロー
図400である。前述のように、解析が結果確証モジュール108によって行われた後、結果が非決定的であれば解析を繰り返すことができる。
【0112】
図5は、データフィールドのデータから生成されたデータプロファイルを解析することにより、データフィールドを発見し、分類し、ラベル付けするための実行システム102のブロック図を示す。実行システム102は、例示的な環境500で示されており、特定のフィールド208がフィールド202a、202b及び202cを含むソースでデータ202からラベル付けされる。この例では、ラベルが既にフィールド208に関連付けられる状態で、システムの拡張可能性が示されている。
【0113】
図5の例において、ソースデータ202は「Field_XYZ」と呼ばれるフィールド208を含み、これは技術的なフィールド名である。実行システム102は、ソースデータ202を受け取り、フィールド208に、そのフィールドにどのような種類の値が保存されるかを表すビジネス用語でラベル付けするように構成される。フィールド208はデータエントリを含み、これは、例えば、文字列「オースティンTX」を含むデータエントリ210である。
【0114】
プロファイルデータモジュール104は、ソースデータ202を受け取り、ソースデータからプロファイルデータを生成するように構成される。この例は、特定のデータエントリに制約されるが、ソースデータ202は、典型的には、多くのエントリを含む。一般に、エントリは、統計情報を得るためにスキャンできる。プロファイルデータがフィールド(又は一般的にある表)について生成されると、テストモジュール106は前述のように1つ又は複数の分類テストを実行する。分類106は、参照データベース116を参照して、フィールド名「Field_XYZ」が既にラベルを有するか否かを特定することができる。この例において、直接的なルックアップの結果がラベルインデックス154内で見つかる。フィールド名「Field_XYZ」は、「都市名」のフィールド名を表すことが(例えば、ユーザが生成する仕様書によるか、又は他の何れかの手段により)分かる。この関係はインデックス154内で明確に定義されるため、テストモジュール106はこの関係に高い確実性のスコアを付けるか、又はその結果を結果確証モジュール108に引き渡すことができる。テストモジュール106は、何れの「都市名」であり得るかの知識を用いて、何れの値を値210に含めるかについてさらに特定することができる。
【0115】
テストモジュール106により識別されたラベルは結果確証モジュール108に送信される。結果確証モジュール108は、ラベルをカテゴリ「マッチ」218にカテゴライズし、ラベルを自動的に適用すべきかを特定し、必要に応じてバリデーションを要求する。結果確証モジュール108は、前述のように別の分類テストの裏付けをとり、フィールド208にラベルを付けるためのランク付けされた推奨リストを出力する。ラベル220のバリデーションが行われると、割り当てられたラベルが送信されて、必要に応じてインデックス表152が更新される。幾つかの実装形態において、都市名のラベルの属性を、フィールド208の属性に基づいて更新できる。
【0116】
図6Aを参照すると、例えばプロファイルデータモジュール104によるデータプロファイルプロセスの結果を示すユーザインタフェース500の描写が示されている。ユーザインタフェース500は、ヘッダ501と、行502a~e並びに列504、506、508及び510とを含む。行502a~eの各々は、ソースデータ112のフィールドを表す。幾つかの実装形態において、異なる行は同じフィールドを表す(例えば、502aと502b)が、各行はそのフィールドと他のフィールドとの間で検出される異なる関係を示す。例えば、行502aは、フィールド「日付1」がフィールド「日付2」と相関することを示し、行502bは、フィールド「姓」がフィールド「ID」を特定することを示す。
【0117】
列504は、ソースデータ112のフィールドの各々を示す。列506は、そのフィールドとソースデータ112との間で検出される、列508に示されるような関係の種類を示す。列510は、列504及び508のフィールドが列506に示されるように相互に関係する確実性のスコア(例えば、蓋然性)を含む。
【0118】
ソースデータ内で検出される関係は、テストモジュール106によってフィールドの各々のラベル値を特定するために使用できる。例えば、郵便番号のフィールドが州のフィールドに関係すると特定することにより、各フィールドが現実的に何を意味するかについての手がかりを提供できる。これは、フィールドの名称が技術的であるか、又はそれ以外にそのフィールドに含まれるデータの型を示さない場合に有益である。
【0119】
図6Bを参照すると、テストモジュール106の分類プロセスの結果を含むユーザインタフェース520の描写が示されている。ウィンドウ524は、発見されたフィールド526a~eのリストを示す。この例では、
図6Aの列504及び508からのフィールドが含められる。ボックス526aは、何れのフィールドがテストモジュール106によって解析されたかを示す。この例において、フィールド「日付1」が解析される。幾つかの実装形態において、各フィールドを選択して、テストモジュール106がどのように発見されたフィールドを解析し、スコアがどのように生成されるかの詳細を示すことができる。例えば、ボタン526aの太線の輪郭は、このボタンが選択されることを示す。
【0120】
ウィンドウ528は、ウィンドウ524の選択された発見済みフィールドの解析の詳細を示す。ここで、ウィンドウ528は、4つの分類子テストが適用されることを示し、すなわちパターンマッチ解析、ビジネス用語解析、フィンガプリント解析及びキーワード検索である。各テストは、対応する重み付けされたスコアに関連付けられる。最終的な調整済みスコアもボックス536に示されている。
【0121】
ウィンドウ534は、候補ラベル及びそれらの調整済みスコアのリスト530を示す。ここで、ラベル「生年月日」は95のスコアに関連付けられる。第二のラベル「有効期限」は33のスコアに関連付けられる。候補ラベルがそれらのスコアに従ってランク付けされることが示されているが、候補ラベルは何れの順序で示すこともできる。スコア95は、ウィンドウ528に示される調整済みスコアとマッチする。ウィンドウ528に示される実行済み解析とスコアは、候補ラベル532a「生年月日」に関連付けられる。
【0122】
ウィンドウ534は、テストモジュール106の分類プロセスに関する追加の詳細を示す。ラベル案の数を示すことができる。この例では、数は2である。他の例では、発見されたフィールドの1つ又は複数を解析するためのイテレーションの数を示すことができる。
【0123】
図6Cは、結果確証モジュール108の結果の例を示すユーザインタフェース540の描写である。ユーザインタフェース540はラベル案のペイン542を含み、その中にデータフィールドを表す可能性のあるラベルが示されている。ウィンドウ552は、結果確証モジュール108により受け取られたとき、解析内で何れのフィールドが発見されたかを示す。発見されたフィールド554は「場所」の名称を有し、これは
図6Aのプロファイルデータに含まれ、
図6Bに関して記載されたように解析される。「都市名」の値を有するラベル案556がユーザに対し、「場所」のフィールドのためのラベルとして推奨される。
【0124】
推奨項目情報のペイン544は、そのラベルが推奨される対象となる発見されたフィールドを説明するデータを含む。例えば、そのフィールドに割り当てられる現在のラベル568を示すことができる。この例では、そのフィールドはラベル付け前である(おそらく、ユーザ入力の待機中)。データフィールド内のエントリの値をペイン574内に示すことができる。フィールド間のリンクは、メニュー572内に示すことができる。この例では、「アルバニー」、「ボストン」、「クリーブランド」、「デトロイト」、「エバンストン」及び「ファーゴ」が示されている。
【0125】
プロファイルサマリのペイン550は、ラベルの内容のサマリを示す。例えば、サマリのペイン550は、そのフィールドに関する統計データ、例えば総数、欠損値、個別/固有値、エントリの最小及び最大長さ、エントリに含まれる文字、エントリのデータ型及びその他を含むことができる。この例では、「ジャンル」とラベル付けされることになるフィールドは28の値を有し、そのうちの28が固有値である。全ての値の長さは3~11文字の間であり、全て文字列型である。テストモジュール106は、エントリのデータのほかにこれらの手がかりを用いて、ラベル「ジャンル」を推奨すべきか否かを特定できる。
【0126】
一般的な値のペイン548は、何れの値がそのフィールド内で最も一般的であるか、及びそのフィールドの値のそれらの相対的割合を示す。この例では、フィールドの全ての異なる値の出現回数が類似する。
【0127】
パターンのペイン546は、フィールドのエントリの各々の一般的なパターンを示す。例えば、日付があった場合、パターンは前述のように##/##/####を含み得る。ここで、フィールドの大半を示す特定のパターンはないが、「New_」のパターンを含む値が最も一般的である。これらの特定のプロファイルデータがペイン550、548、546に示されているが、ユーザが発見されたフィールドについて提案された候補名を承認することを支援できる何れのデータを示すこともできる。
【0128】
図6Dを参照すると、発見されたデータフィールドのラベルのための推奨を示すユーザインタフェース560の描写である。ユーザインタフェースは、表のフォーマットで提示され、表の値は相互作用する。列562は、ソースデータ内で受け取ったフィールド名を示す。列564は、何れのラベルがフィールドに割り当てられるかを示す。前述のように、各フィールドは複数のラベルに関連付けることができる。列566は、列562のフィールドのためのラベル案を示す。列568は、テストモジュール106がフィールドに何れのテストを行ったか、その結果はどの程度強力であるか、及び何れのカテゴリの推奨がそのラベルについて行われたか、を識別する。列570は、列562のフィールドに関するユーザによる意思決定の待機中であることを示す。例えば、ユーザには、ラベル案を容認/拒絶すること、更新されたパラメータを用いて再テストすること及びその他が惻隠され得る。
【0129】
この例において、発見されたフィールド「日付1」が最終行に示されており、これは、
図6A~6Cに関して説明されたように発見され、プロファイルされ、分類され、ラベル付けされる。フィールド「日付1」に「生年月日」のラベルが割り当てられる。列568に示されるように、ラベルのカテゴリは「推奨」カテゴリであり、それは、候補ラベルに関連付けられたスコアが
図6Bに示されるように95であるからである。実行された解析には、他の解析のほかにパターンマッチングが含まれた。ラベルをフィールド「日付1」に割り当てる意思決定はオープンであり、これは、ラベルが既に割り当てられており、ユーザによるそれ以上の動作が不要であるからである。
【0130】
図7は、発見されたフィールドに候補ラベルでラベル付けするプロセス600のフロー図を示す。プロセス600は、1つ又は複数のデータセットに含まれるフィールドを識別すること(602)を含み、このフィールドは、識別子を有する。プロセス600は、データ処理システムにより、フィールドの1つ又は複数のデータ値をプロファイルして(604)、データプロファイルを生成することを含む。プロセス600は、複数のラベル案テストにアクセスすること(606)を含む。プロセス600は、少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいてラベル案の組を生成すること(608)を含む。プロセス600は、ラベル案の組内のラベル案間の類似性を特定すること(610)を含む。プロセス600は、少なくとも組内のラベル案間の類似性に基づいて分類を選択すること(612)を含む。プロセス600は、ユーザ入力が必要であるか否かを特定すること(614)を含む。プロセス600は、ユーザ入力が必要である場合、入力を要求するグラフィカルユーザインタフェースをレンダリングすること(616)を含む。プロセス600は、ラベル案の、意味論的意味を識別する1つを識別すること(618)を含む。プロセスは、データストア内において、フィールドの識別子を、ラベル案の意味論的意味を識別するものとして識別された1つと共に保存すること(620)を含む。
【0131】
上述の技術は、コンピュータ上で実行されるソフトウェアを用いて実装できる。例えば、ソフトウェアは、各々が少なくとも1つのプロセッサ、少なくとも1つのデータストレージシステム(揮発性及び不揮発性メモリ及び/又は記憶素子を含む)、少なくとも1つの入力デバイス又はポート及び少なくとも1つの出力デバイス又はポートを含む、1つ又は複数のプログラムされた又はプログラム可能なコンピュータシステム(これは、分散型、クライアント/サーバ又はグリッド等の各種のアーキテクチャであり得る)上で実行される1つ又は複数のコンピュータプログラム内の手順を形成する。ソフトウェアは、例えば、チャート及びフローチャートのデザインと構成に関する他のサービスを提供する、より大きいプログラムの1つ又は複数のモジュールを形成できる。チャートのノード、リンク及び要素は、コンピュータ可読媒体に保存されるデータ構造として又はデータレポジトリに保存されるデータモデルに適合する他の組織化されたデータとして実装できる。
【0132】
幾つかの実装形態において、本明細書に記載のデータ処理システムは、1つ又は複数の態様を含む。ある態様において、1つ又は複数のデータセットに含まれるフィールドのデータの意味論的意味を発見するためにデータ処理システムによって実行される方法は、1つ又は複数のデータセットに含まれるフィールドを識別することを含み、このフィールドは、識別子に関連付けられる。方法は、そのフィールドについて、データ処理システムによりフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成することを含む。方法は、そのフィールドについて、少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、複数のラベル案テストにアクセスすることを含む。方法は、そのフィールドについて、ラベル案の組を生成することを含む。方法は、そのフィールドについて、ラベル案の組内のラベル案間の類似性を特定することを含む。方法は、そのフィールドについて、少なくとも組内のラベル案間の類似性に基づいて分類を選択することを含む。方法は、そのフィールドについて、分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定することを含む。方法は、そのフィールドについて、ラベル案の1つを、意味論的意味を識別するものとして識別することを含む。方法は、そのフィールドについて、データストアに、フィールドの識別子を、意味論的意味を識別するラベル案の識別された1つと共に保存することを含む。方法は、特定の識別子を含む1つ又は複数のデータセットを処理するためのリクエストを受信することを含む。方法は、そのリクエストに応答して、データストアから、特定の識別子と、その特定の識別子に関連付けられた特定のラベルとにアクセスすることを含む。方法は、特定のラベルに基づいて、1つ又は複数のデータセットの少なくとも一部を処理するための1つ又は複数のデータ処理ルールを特定することを含む。方法は、少なくとも1つ又は複数のデータセットの一部を、選択された1つ又は複数のデータ処理ルールに従って処理することを含む。
【0133】
一般に、意味論的意味を識別するラベル案の識別された1つと共に記憶されたフィールドの識別子は、ラベルインデックス等のインデックスである。データ処理しステムがデータセットのフィールドを処理するとき、データ処理システムは、値がどのように処理されるべきかを特定するのにフィールドの値にアクセスする必要がない。むしろ、データ処理システムは、単にそのフィールドのためのラベルインデックス内の関連するラベルにアクセスし、その後、データを処理するための特定のルールの組(例えば、データ品質ルール、データマスキングルール及び他の組)にアクセスすることができる。特定のルールの組は、ラベルインデックス内のラベルに関連付けられる。したがって、データ処理システムは、より正確にデータセットを処理することができ、それは、データ処理システムが、ラベル付けされたフィールドの値を処理するために適切な処理ルールを選択したからである。これにより、データマスキング、データセットのスキーマ解析、データ品質ルールの適用、テストデータの選択等の様々な用途のためのフィールドのデータ値の処理におけるエラーが減る。例えば、ラベルは、データ処理システムに対し、データセットは、どのような構造であるか(例えば、フィールドがキー値のフィールドに対応するか否か)を示すために、(例えば、前述のようにラベル表内の)属性に関連付けることができる。データ処理システムは、したがって、データセットをそのフィールドをラベル付けするラベルに関連する属性に従って処理することができる。これらの属性は、この例では、フィールドがキー値を含むことを示し得る。したがって、ある態様において、記憶された識別子は、データ処理システムにより、特定のデータ処理ルール又はラベル案によりラベル付けされるフィールドを処理するための動作にアクセスするために使用される。
【0134】
ある態様において、フィールド内の1つ又は複数のデータ値をプロファイリングすることは、フィールドのデータ値のフォーマットを特定することを含む。ある態様において、フィールドのデータ値をプロファイリングすることは、フィールドに含まれるデータ値を表す統計値を特定することを含む。
【0135】
ある態様において、統計値は、フィールドのデータ値の最小長さ、フィールドのデータ値の最大長さ、フィールドの最も一般的なデータ値、フィールドの最も一般的でないでデータ値、フィールドの最大データ値及びフィールドの最小データ値の少なくとも1つを含む。
【0136】
ある態様において、複数のラベル案テストを適用することは、フィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、複数のラベル案テストのうち、プライマリキーに関連するラベル案テストを選択することとを含む。
【0137】
ある態様において、複数のラベル案テストを適用することは、フィールドのデータ値と用語集内の用語とのメタデータ比較を行うことを含む。
【0138】
ある態様において、複数のラベル案テストを適用することは、データプロファイルから、フィールドの保存されたデータ値によって表されるパターンを特定することと、そのパターンにマッピングされる特定のラベルを特定することと、フィールドに特定のラベルでラベル付けすることとを含む。
【0139】
ある態様において、複数のラベル案テストを適用することは、データ集合の代表である値のリストを検索することと、フィールドのデータ値を値のリストと比較することと、比較することに応答して、データ値がリストの値とマッチする閾値数を特定することと、特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることとを含む。
【0140】
ある態様において、複数のラベル案テストを適用することは、フィールドのための少なくとも2つのラベルを生成することと、少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することとを含む。
【0141】
ある態様において、方法は、複数のラベル案テストを適用することに応答して、フィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することを含む。ある態様において、関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む。
【0142】
ある態様において、複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられる。方法は、少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することとを含む。ある態様において、方法は、機械学習プロセスを使用して複数のラベル案テストを訓練することを含む。
【0143】
ある態様において、方法は、データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられた1つ又は複数のデータ品質ルールを検索することと、1つ又は複数のデータ品質ルールのうちのデータ品質ルールをフィールドに割り当てることとを含む。
【0144】
ある態様において、ラベル案テストから生成されるラベル案を比較することは、各ラベル案にスコア値を適用することと、ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることとを含む。
【0145】
ある態様において、方法は、複数のラベル案テストからラベル案のバリデーションを受け取ることと、バリデーションを受け取ることに応答して、複数のラベル案テストをラベル案で重み付けすることとを含む。
【0146】
ある態様において、データストアは、データ辞書を含む。
【0147】
ある態様において、方法は、ラベル案をデータ品質ルール環境に出力することを含む。ある態様において、方法は、ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを用いて、フィールドのためのデータを処理する際のエラーの数を、ラベル案の識別された1つを使用せずにフィールドのためのデータを処理する場合のエラーの他の数に関して減少させることを含む。
【0148】
ある態様において、1つ又は複数のデータセットに含まれるフィールドの意味論的意味を発見するためのデータ処理システムは、命令を保存するデータストレージと、データストレージによって保存された命令を実行するように構成された少なくとも1つのプロセッサとを含む。動作は、1つ又は複数のデータセットに含まれるフィールドを識別することを含み、このフィールドは、識別子に関連付けられる。動作は、そのフィールドについて、データ処理システムによってフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成することを含む。動作は、そのフィールドについて、少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、複数のラベル案テストにアクセスすることを含む。動作は、そのフィールドについて、ラベル案の組を生成することを含む。動作は、そのフィールドについて、ラベル案の組内のラベル案間の類似性を特定することを含む。動作は、そのフィールドについて、少なくとも組内のラベル案間の類似性に基づいて分類を選択することを含む。動作は、そのフィールドについて、分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定することを含む。動作は、そのフィールドについて、ラベル案の1つを、意味論的意味を識別するものとして識別することを含む。動作は、そのフィールドについて、データストア内において、フィールドの識別子を、意味的意味を識別するラベル案の識別された1つと共に保存することを含む。動作は、特定の識別子を含む1つ又は複数のデータセットを処理するためのリクエストを受信することを含む。動作は、そのリクエストに応答して、データストアから、特定の識別子と、特定の識別子に関連付けられた特定のラベルとにアクセスすることを含む。動作は、特定のラベルに基づいて、1つ又は複数のデータセットの少なくとも一部を処理するための1つ又は複数のデータ処理ルールを特定することを含む。動作は、少なくとも1つ又は複数のデータセットの一部を、選択された1つ又は複数のデータ処理ルールに従って処理することを含む。
【0149】
一般に、意味論的意味を識別するラベル案の識別された1つと共に記憶されたフィールドの識別子は、ラベルインデックス等のインデックスである。データ処理しステムがデータセットのフィールドを処理するとき、データ処理システムは、値がどのように処理されるべきかを特定するのにフィールドの値にアクセスする必要がない。むしろ、データ処理システムは、単にそのフィールドのためのラベルインデックス内の関連するラベルにアクセスし、その後、データを処理するための特定のルールの組(例えば、データ品質ルール、データマスキングルール及び他の組)にアクセスすることができる。特定のルールの組は、ラベルインデックス内のラベルに関連付けられる。したがって、データ処理システムは、より正確にデータセットを処理することができ、それは、データ処理システムが、ラベル付けされたフィールドの値を処理するために適切な処理ルールを選択したからである。これにより、データマスキング、データセットのスキーマ解析、データ品質ルールの適用、テストデータの選択等の様々な用途のためのフィールドのデータ値の処理におけるエラーが減る。例えば、ラベルは、データ処理システムに対し、データセットは、どのような構造であるか(例えば、フィールドがキー値のフィールドに対応するか否か)を示すために、(例えば、前述のようにラベル表内の)属性に関連付けることができる。データ処理システムは、したがって、データセットをそのフィールドをラベル付けするラベルに関連する属性に従って処理することができる。これらの属性は、この例では、フィールドがキー値を含むことを示し得る。したがって、ある態様において、記憶された識別子は、データ処理システムにより、特定のデータ処理ルール又はラベル案によりラベル付けされるフィールドを処理するための動作にアクセスするために使用される。
【0150】
ある態様において、フィールド内の1つ又は複数のデータ値をプロファイリングすることは、フィールドのデータ値のフォーマットを特定することを含む。ある態様において、フィールドのデータ値をプロファイリングすることは、フィールドに含まれるデータ値を表す統計値を特定することを含む。
【0151】
ある態様において、統計値は、フィールドのデータ値の最小長さ、フィールドのデータ値の最大長さ、フィールドの最も一般的なデータ値、フィールドの最も一般的でないでデータ値、フィールドの最大データ値及びフィールドの最小データ値の少なくとも1つを含む。
【0152】
ある態様において、複数のラベル案テストを適用することは、フィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、複数のラベル案テストのうち、プライマリキーに関連するラベル案テストを選択することとを含む。
【0153】
ある態様において、複数のラベル案テストを適用することは、フィールドのデータ値と用語集内の用語とのメタデータ比較を行うことを含む。
【0154】
ある態様において、複数のラベル案テストを適用することは、データプロファイルから、フィールドの保存されたデータ値によって表されるパターンを特定することと、そのパターンにマッピングされる特定のラベルを特定することと、フィールドに特定のラベルでラベル付けすることとを含む。
【0155】
ある態様において、複数のラベル案テストを適用することは、データ集合の代表である値のリストを検索することと、フィールドのデータ値を値のリストと比較することと、比較することに応答して、データ値がリストの値とマッチする閾値数を特定することと、特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることとを含む。
【0156】
ある態様において、複数のラベル案テストを適用することは、フィールドのための少なくとも2つのラベルを生成することと、少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することとを含む。
【0157】
ある態様において、動作は、複数のラベル案テストを適用することに応答して、フィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することを含む。ある態様において、関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む。
【0158】
ある態様において、複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられる。動作は、少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することとを含む。ある態様において、動作は、機械学習プロセスを使用して複数のラベル案テストを訓練することを含む。
【0159】
ある態様において、動作は、データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられた1つ又は複数のデータ品質ルールを検索することと、1つ又は複数のデータ品質ルールのうちのデータ品質ルールをフィールドに割り当てることとを含む。
【0160】
ある態様において、ラベル案テストから生成されるラベル案を比較することは、各ラベル案にスコア値を適用することと、ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることとを含む。
【0161】
ある態様において、動作は、複数のラベル案テストからラベル案のバリデーションを受け取ることと、バリデーションを受け取ることに応答して、複数のラベル案テストをラベル案で重み付けすることとを含む。
【0162】
ある態様において、データストアは、データ辞書を含む。
【0163】
ある態様において、動作は、ラベル案をデータ品質ルール環境に出力することを含む。ある態様において、動作は、ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを用いて、フィールドのためのデータを処理する際のエラーの数を、ラベル案の識別された1つを使用せずにフィールドのためのデータを処理する場合のエラーの他の数に関して減少させることを含む。
【0164】
ある態様において、1つ又は複数のデータセットに含まれるフィールドの意味論的意味を発見するための命令を保存する1つ又は複数の非一時的コンピュータ可読媒体であり、命令は、動作を行うように構成された1つ又は複数のプロセッサによって実行される。動作は、1つ又は複数のデータセットに含まれるフィールドを識別することを含み、このフィールドは、識別子に関連付けられる。動作は、そのフィールドについて、データ処理システムによってフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成することを含む。動作は、そのフィールドについて、少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、複数のラベル案テストにアクセスすることを含む。動作は、そのフィールドについて、ラベル案の組を生成することを含む。動作は、そのフィールドについて、ラベル案の組内のラベル案間の類似性を特定することを含む。動作は、そのフィールドについて、少なくとも組内のラベル案間の類似性に基づいて分類を選択することを含む。動作は、そのフィールドについて、分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定することを含む。動作は、そのフィールドについて、ラベル案の1つを、意味論的意味を識別するものとして識別することを含む。動作は、そのフィールドについて、データストア内において、フィールドの識別子を、意味的意味を識別するラベル案の識別された1つと共に保存することを含む。
【0165】
一般に、意味論的意味を識別するラベル案の識別された1つと共に記憶されたフィールドの識別子は、ラベルインデックス等のインデックスである。データ処理しステムがデータセットのフィールドを処理するとき、データ処理システムは、値がどのように処理されるべきかを特定するのにフィールドの値にアクセスする必要がない。むしろ、データ処理システムは、単にそのフィールドのためのラベルインデックス内の関連するラベルにアクセスし、その後、データを処理するための特定のルールの組(例えば、データ品質ルール、データマスキングルール及び他の組)にアクセスすることができる。特定のルールの組は、ラベルインデックス内のラベルに関連付けられる。したがって、データ処理システムは、より正確にデータセットを処理することができ、それは、データ処理システムが、ラベル付けされたフィールドの値を処理するために適切な処理ルールを選択したからである。これにより、データマスキング、データセットのスキーマ解析、データ品質ルールの適用、テストデータの選択等の様々な用途のためのフィールドのデータ値の処理におけるエラーが減る。例えば、ラベルは、データ処理システムに対し、データセットは、どのような構造であるか(例えば、フィールドがキー値のフィールドに対応するか否か)を示すために、(例えば、前述のようにラベル表内の)属性に関連付けることができる。データ処理システムは、したがって、データセットをそのフィールドをラベル付けするラベルに関連する属性に従って処理することができる。これらの属性は、この例では、フィールドがキー値を含むことを示し得る。したがって、ある態様において、記憶された識別子は、データ処理システムにより、特定のデータ処理ルール又はラベル案によりラベル付けされるフィールドを処理するための動作にアクセスするために使用される。
【0166】
ある態様において、フィールド内の1つ又は複数のデータ値をプロファイリングすることは、フィールドのデータ値のフォーマットを特定することを含む。ある態様において、フィールドのデータ値をプロファイリングすることは、フィールドに含まれるデータ値を表す統計値を特定することを含む。
【0167】
ある態様において、統計値は、フィールドのデータ値の最小長さ、フィールドのデータ値の最大長さ、フィールドの最も一般的なデータ値、フィールドの最も一般的でないでデータ値、フィールドの最大データ値及びフィールドの最小データ値の少なくとも1つを含む。
【0168】
ある態様において、複数のラベル案テストを適用することは、フィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、複数のラベル案テストのうち、プライマリキーに関連するラベル案テストを選択することとを含む。
【0169】
ある態様において、複数のラベル案テストを適用することは、フィールドのデータ値と用語集内の用語とのメタデータ比較を行うことを含む。
【0170】
ある態様において、複数のラベル案テストを適用することは、データプロファイルから、フィールドの保存されたデータ値によって表されるパターンを特定することと、そのパターンにマッピングされる特定のラベルを特定することと、フィールドに特定のラベルでラベル付けすることとを含む。
【0171】
ある態様において、複数のラベル案テストを適用することは、データ集合の代表である値のリストを検索することと、フィールドのデータ値を値のリストと比較することと、比較することに応答して、データ値がリストの値とマッチする閾値数を特定することと、特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることとを含む。
【0172】
ある態様において、複数のラベル案テストを適用することは、フィールドのための少なくとも2つのラベルを生成することと、少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することとを含む。
【0173】
ある態様において、動作は、複数のラベル案テストを適用することに応答して、フィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することを含む。ある態様において、関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む。
【0174】
ある態様において、複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられる。動作は、少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することとを含む。ある態様において、動作は、機械学習プロセスを使用して複数のラベル案テストを訓練することを含む。
【0175】
ある態様において、動作は、データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられた1つ又は複数のデータ品質ルールを検索することと、1つ又は複数のデータ品質ルールのうちのデータ品質ルールをフィールドに割り当てることとを含む。
【0176】
ある態様において、ラベル案テストから生成されるラベル案を比較することは、各ラベル案にスコア値を適用することと、ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることとを含む。
【0177】
ある態様において、動作は、複数のラベル案テストからラベル案のバリデーションを受け取ることと、バリデーションを受け取ることに応答して、複数のラベル案テストをラベル案で重み付けすることとを含む。
【0178】
ある態様において、データストアは、データ辞書を含む。
【0179】
ある態様において、動作は、ラベル案をデータ品質ルール環境に出力することを含む。ある態様において、動作は、ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを用いて、フィールドのためのデータを処理する際のエラーの数を、ラベル案の識別された1つを使用せずにフィールドのためのデータを処理する場合のエラーの他の数に関して減少させることを含む。
【0180】
本明細書に記載の技術は、デジタル電子回路において又はコンピュータハードウェア、ファームウェア、ソフトウェア若しくはそれらの組合せにおいて実装できる。装置は、プログラマブルプロセッサによって実行されるための、機械可読記憶装置(例えば、非一時的機械可読記憶装置、機械可読ハードウェア記憶装置及びその他)に有形に具現化又は保存されたコンピュータプログラム製品において実装でき、方法の動作は、入力データに対して動作し、出力を生成することによって機能を実行するための訓練プログラムを実行するプログラマブルプロセッサによって実行できる。本明細書に記載の実施形態並びに特許請求項及び本明細書に記載の技術の他の実施形態は、有利には、データストレージシステムからデータ及び命令を受け取り、またそれにデータ及び命令を送信するように連結された少なくとも1つのプログラマブルプロセッサ、少なくとも1つの入力装置及び少なくとも1つの出力装置を含むプログラマブルシステム上で実行可能な1つ又は複数のコンピュータプログラムで実装できる。各コンピュータプログラムは、ハイレベルの手続き型若しくはオブジェクト指向型プログラミング言語又は希望に応じてアセンブリ若しくは機械言語で実装でき、何れの場合も言語はコンパイル型又はインタプリタ型言語であり得る。
【0181】
コンピュータプログラムの実行に適したプロセッサには、例えば、汎用及び専用マイクロプロセッサ並びにあらゆる種類のデジタルコンピュータの何れの1つ又は複数のプロセッサも含まれる。一般に、プロセッサは、命令とデータをリードオンリメモリ若しくはランダムアクセスメモリ又はそれらの両方から受信する。コンピュータの必須要素は命令を実行するためのプロセッサと、命令とデータを記憶するための1つ又は複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つ又は複数の大量記憶装置、例えば磁気、磁気光ディスク又は光ディスクも含むか、又はそれからデータを受信するか若しくはそれにデータを送信するか、又はその両方を行うように動作的に連結される。コンピュータプログラム命令とデータを具現化するためのコンピュータ可読媒体はあらゆる形態の不揮発性メモリを含み、これには、例えば、EPROM、EEPROM及びフラッシュメモリデバイス等の半導体メモリデバイス、内部ハードディスク若しくはリムーバブルディスク等の磁気ディスク、磁気光ディスク並びにCD ROM及びDVD-ROMディスクが含まれる。プロセッサとメモリは、専用ロジック回路により補足するか又はその中に組み込むこともできる。前述のものの何れも、ASIC(特定用途集積回路)により補足するか又はその中に組み込むこともできる。
【0182】
ユーザとの対話を可能にするために、実施形態は、ユーザに対して情報を表示するLCD(液晶表示体)モニタ等の表示装置並びにそれによってユーザがコンピュータに入力を提供できるキーボード及びマウス又はトラックボール等のポインティングデバイスを有するコンピュータ上で実装できる。他の種類のデバイスを用いてユーザとの対話を可能にすることもでき、例えば、ユーザに提供されるフィードバックは、何れの形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック又は触覚フィードバックであり得、またユーザからの入力は、音響、音声又は触覚入力を含む何れの形態で受け取られることもできる。
【0183】
実施形態は、データサーバ等のバックエンドコンポーネントを含むか、又はアプリケーションサーバ等のミドルウェアコンポーネントを含むか、又はそれを通してユーザが実施形態の実装形態と対話できるグラフィカルユーザインタフェース若しくはウェブブラウザを有するクライアントコンピュータ等のフロントエンドコンポーネントを含むか、又はこのようなバックエンド、ミドルウェア若しくはフロントエンドコンポーネントのあらゆる組合せを含むコンピュータシステムで実装できる。システムのコンポーネントは、何れの形態若しくは媒体のデジタルデータ通信、例えば通信ネットワークによっても相互接続できる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)及びワイドエリアネットワーク(WAN)、例えばインタネットが含まれる。
【0184】
システムと方法又はそれらの一部は、ハイパーテキスト転送プロトコル(HTTP)を利用するインタネッ上のサーバの集合である「ワールドワイドウェブ」(ウェブ又はWWW)を使用し得る。HTTPは、ユーザにリソースへのアクセスを提供する既知のアプリケーションプロトコルであり、リソースは、テキスト、グラフィクス、画像、音声、ビデオ、ハイパテキストマークアップ言語(HTML)のほか、プログラム等の様々なフォーマットの情報であり得る。ユーザがリンクを指定すると、クライアントコンピュータはTCP/IPリクエストをウェブサーバに行い、HTMLに従ってフォーマットされた他のウェブページであり得る情報を受け取る。ユーザは、スクリーン上の命令に従い、特定のデータを入力するか、又は選択したアイコンをクリックすることにより、同じ又は他のサーバ上の他のページにアクセスすることもできる。当業者の間で知られている何れの種類の選択装置、例えばチェックボックス、ドロップダウンボックス及びその他も、ユーザがあるコンポーネントのための選択肢を選択できるようにするウェブページを使用する実施形態のために使用し得る点にも留意すべきである。サーバは、UNIX(登録商標)マシンを含む各種のプラットフォーム上で動作するが、Windows 2000/2003(登録商標)、Windows NT(登録商標)、Sun、Linux(登録商標)及びMacintosh(登録商標)等の他のプラットフォームも使用し得る。コンピュータユーザは、サーバ又はウェブ上のネットワークで利用可能な情報を、ブラウジングソフトウェア、例えばFirefox(登録商標)、Netscape Navigator(登録商標)、Microsoft Internet Explorer(登録商標)又はMosaicブラウザの使用を通して閲覧できる。コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバとは、一般に相互に離れており、典型的に通信ネットワークを通して対話する。クライアントとサーバの関係は、コンピュータプログラムがそれぞれのコンピュータ上で実行され、相互にクライアント-サーバ関係を有することによって生じる。
【0185】
他の実施形態も説明文及び特許請求項の範囲と主旨に含まれる。例えば、ソフトウェアの性質から、前述の機能は、ソフトウェア、ハードウェア、ファームウェア、ハードライティング又はこれらの何れを組み合わせたものでも実装できる。機能を実装する特徴は、物理的に様々な場所にもあり得、これには、分散されて機能の各部分が異なる物理的場所で実装されることも含まれる。本明細書における用語「1つの(a)」の使用は、本願全体を通して、限定的な方法で使用されず、したがって用語「1つの(a)」について複数を意味すること又は「1つ又は複数」を意味することを排除するものではない。さらに、仮特許出願の優先権が主張される限り、その仮特許出願は、限定的ではなく、本明細書に記載の技術がどのように実装され得るかの例を含むと理解すべきである。
【0186】
各種の実施形態を説明した。本発明は、(代替的に)以下の番号を付した態様1~76によっても説明され得る。
【0187】
態様
1.1つ又は複数のデータセットに含まれるフィールドのデータの意味論的意味を発見するための、データ処理システムによって実行される方法であって、
1つ又は複数のデータセットに含まれるフィールドを識別することであって、そのフィールドは、識別子に関連付けられる、識別することと、
そのフィールドについて、
データ処理システムにより、そのフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成することと、
複数のラベル案テストにアクセスすることと、
少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、ラベル案の組を生成することと、
ラベル案の組内のラベル案間の類似性を特定することと、
少なくともその組内のラベル案間の類似性に基づいて分類を選択することと、
分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定することと、
ラベル案の1つを、意味論的意味を識別するものとして識別することと、
データストア内において、フィールドの識別子を、意味論的意味を識別するラベル案の識別された1つと共に保存することと
を含む方法。
【0188】
2.フィールドの1つ又は複数のデータ値をプロファイルすることは、フィールドのデータ値のフォーマットを特定することを含む、態様1の方法。
【0189】
3.フィールドのデータ値をプロファイルすることは、フィールドに含まれるデータ値を表す統計値を特定することを含む、態様1の方法。
【0190】
4.統計値は、そのフィールドのデータの最小長さ、そのフィールドのデータの最大長さ、そのフィールドの最も一般的なデータ値、そのフィールドの最も一般的でないデータ値、そのフィールドの最大データ値及びそのフィールドの最小データ値の少なくとも1つを含む、態様3の方法。
【0191】
5.複数のラベル案テストを適用することは、
そのフィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、
複数のラベル案テストのうち、プライマリキーに関連するラベル案テストを選択することと
を含む、態様1の方法。
【0192】
6.複数のラベル案テストを適用することは、そのフィールドのデータ値の、用語集内の用語とのメタデータ比較を行うことを含む、態様1の方法。
【0193】
7.複数のラベル案テストを適用することは、
データプロファイルから、そのフィールドの保存されたデータ値によって表されるパターンを特定することと、
そのパターンにマッピングされる特定のラベルを特定することと、
そのフィールドをその特定のラベルでラベル付けすることと
を含む、態様1の方法。
【0194】
8.複数のラベル案テストを適用することは、
データ集合を表す値のリストを検索することと、
そのフィールドのデータ値を値のリストと比較することと、
比較することに応答して、閾値数のデータ値がリストの値と一致することを特定することと、
特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることと
を含む、態様1の方法。
【0195】
9.複数のラベル案テストを適用することは、
そのフィールドのための少なくとも2つのラベルを生成することと、
少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することと
を含む、態様1の方法。
【0196】
10.複数のラベル案テストを適用することに応答して、そのフィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することをさらに含む、態様1の方法。
【0197】
11.関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む、態様10の方法。
【0198】
12.複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられ、方法は、
少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、
更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することと
をさらに含む、態様1の方法。
【0199】
13.機械学習プロセスを使用して複数のラベル案テストを訓練することをさらに含む、態様1の方法。
【0200】
14.データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられる1つ又は複数のデータ品質ルールを検索することと、
その1つ又は複数のデータ品質ルールのうちのデータ品質ルールをそのフィールドに割り当てることと
をさらに含む、態様1の方法。
【0201】
15.ラベル案テストから生成されたラベル案を比較することは、
スコア値を各ラベル案に適用することと、
ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、
各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることと
を含む、態様1の方法。
【0202】
16.複数のラベル案テストからラベル案のバリデーションを受け取ることと、
バリデーションを受け取ることに応答して、複数のラベル案テストをラベル案で重み付けすることと
をさらに含む、態様1の方法。
【0203】
17.データストアは、データ辞書を含む、態様1の方法。
【0204】
18.ラベル案をデータ品質ルール環境に出力することをさらに含む、態様1の方法。
【0205】
19.ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを使用してそのフィールドのデータを処理することに関するエラーの数を、ラベル案の識別された1つを使用することなくそのフィールドのデータを処理することに関するエラーの別の数に対して減少させることをさらに含む、態様18の方法。
【0206】
20.1つ又は複数のデータセットに含まれるフィールドの意味論的意味を発見するためのデータ処理システムであって、
命令を保存するデータストレージと、
データストレージによって保存された命令を実行して、
1つ又は複数のデータセットに含まれるフィールドを識別することであって、フィールドは、識別子を有する、識別することと、
そのフィールドについて、
データ処理システムにより、そのフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成することと、
複数のラベル案テストにアクセスすることと、
少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、ラベル案の組を生成することと、
ラベル案の組内のラベル案間の類似性を特定することと、
少なくとも組内のラベル案間の類似性に基づいて分類を選択することと、
分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定することと、
ラベル案の1つを、意味論的意味を識別するものとして識別することと、
データストア内において、そのフィールドの識別子を、意味論的意味を識別するラベル案の識別された1つと共に保存することと
を含む動作を行うように構成された少なくとも1つのプロセッサと
を含むデータ処理システム。
【0207】
21.フィールドの1つ又は複数のデータをプロファイルすることは、そのフィールドのデータ値のフォーマットを特定することを含む、態様20のシステム。
【0208】
22.フィールドのデータ値をプロファイルすることは、そのフィールドに含まれるデータ値を表す統計値を特定することを含む、態様20のシステム。
【0209】
23.統計値は、そのフィールドのデータ値の最小長さ、そのフィールドのデータ値の最大長さ、そのフィールドの最も一般的なデータ値、そのフィールドの最も一般的でないデータ値、そのフィールドの最大データ値及びそのフィールドの最小データ値の少なくとも1つを含む、態様22のシステム。
【0210】
24.複数のラベル案テストを適用することは、
そのフィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、
複数のラベル案テストのうち、プライマリキーに関連するラベル案テストを選択することと
を含む、態様20のシステム。
【0211】
25.複数のラベル案テストを適用することは、そのフィールドのデータ値の、用語集内の用語とのメタデータ比較を行うことを含む、態様20のシステム。
【0212】
26.複数のラベル案テストを適用することは、
データプロファイルから、そのフィールドの保存されたデータ値を表すパターンを特定することと、
そのパターンにマッピングされる特定のラベルを特定することと、
そのフィールドをその特定のラベルでラベル付けすることと
を含む、態様20のシステム。
【0213】
27.複数のラベル案テストを適用することは、
データ集合を表す値のリストを検索することと、
そのフィールドのデータ値を値のリストと比較することと、
比較することに応答して、閾値数のデータ値がリストの値と一致することを特定することと、
特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることと
を含む、態様20のシステム。
【0214】
28.複数のラベル案テストを適用することは、
そのフィールドのための少なくとも2つのラベルを生成することと、
少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することと
を含む、態様20のシステム。
【0215】
29.動作は、複数のラベル案テストを適用することに応答して、そのフィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することをさらに含む、態様20のシステム。
【0216】
30.関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む、態様29のシステム。
【0217】
31.複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられ、動作は、
少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、
更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することと
をさらに含む、態様20のシステム。
【0218】
32.動作は、機械学習プロセスを使用して複数のラベル案テストを訓練することをさらに含む、態様20のシステム。
【0219】
33.動作は、
データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられる1つ又は複数のデータ品質ルールを検索することと、
1つ又は複数のデータ品質ルールのうちのデータ品質ルールをフィールドに割り当てることと
をさらに含む、態様20のシステム。
【0220】
34.ラベル案テストから生成されたラベル案を比較することは、
スコア値を各ラベル案に適用することと、
ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、
各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることと
を含む、態様20のシステム。
【0221】
35.動作は、
複数のラベル案テストからラベル案のバリデーションを受け取ることと、
バリデーションを受け取ることに応答して、複数のラベル案テストをそのラベル案で重み付けすることと
をさらに含む、態様20のシステム。
【0222】
36.データストアは、データ辞書を含む、態様20のシステム。
【0223】
37.動作は、ラベル案をデータ品質ルール環境に出力することをさらに含む、態様20のシステム。
【0224】
38.動作は、ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを使用してそのフィールドのデータを処理することに関するエラーの数を、ラベル案の識別された1つを使用することなくそのフィールドのデータを処理することに関するエラーの別の数に対して減少させることをさらに含む、態様37のシステム。
【0225】
39.1つ又は複数のデータセットに含まれるフィールドの意味的意味を発見するための命令を記憶する1つ又は複数の非一時的コンピュータ可読媒体であって、命令は、
1つ又は複数のデータセットに含まれるフィールドを識別することであって、フィールドは、識別子を有する、識別することと、
そのフィールドについて、
データ処理システムにより、そのフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成することと、
複数のラベル案テストにアクセスすることと、
少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、ラベル案の組を生成することと、
ラベル案の組内のラベル案間の類似性を特定することと、
少なくとも組内のラベル案間の類似性に基づいて分類を選択することと、
分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定することと、
ラベル案の1つを、意味論的意味を識別するものとして識別することと、
データストア内において、そのフィールドの識別子を、意味論的意味を識別するラベル案の識別された1つと共に保存することと
を含む動作を行うように構成された1つ又は複数のプロセッサによって実行可能である、1つ又は複数の非一時的コンピュータ可読媒体。
【0226】
40.フィールドの1つ又は複数のデータをプロファイルすることは、そのフィールドのデータ値のフォーマットを特定することを含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0227】
41.フィールドのデータ値をプロファイルすることは、そのフィールドに含まれるデータ値を表す統計値を特定することを含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0228】
42.統計値は、そのフィールドのデータ値の最小長さ、そのフィールドのデータ値の最大長さ、そのフィールドの最も一般的なデータ値、そのフィールドの最も一般的でないデータ値、そのフィールドの最大データ値及びそのフィールドの最小データ値の少なくとも1つを含む、態様41の1つ又は複数の非一時的コンピュータ可読媒体。
【0229】
43.複数のラベル案テストを適用することは、
そのフィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定することと、
複数のラベル案テストのうち、プライマリキーに関連するラベル案テストを選択することと
を含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0230】
44.複数のラベル案テストを適用することは、そのフィールドのデータ値の、用語集内の用語とのメタデータ比較を行うことを含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0231】
45.複数のラベル案テストを適用することは、
データプロファイルから、そのフィールドの保存されたデータ値を表すパターンを特定することと、
そのパターンにマッピングされる特定のラベルを特定することと、
そのフィールドをその特定のラベルでラベル付けすることと
を含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0232】
46.複数のラベル案テストを適用することは、
データ集合を表す値のリストを検索することと、
そのフィールドのデータ値を値のリストと比較することと、
比較することに応答して、閾値数のデータ値がリストの値と一致することを特定することと、
特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けすることと
を含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0233】
47.複数のラベル案テストを適用することは、
そのフィールドのための少なくとも2つのラベルを生成することと、
少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定することと
を含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0234】
48.動作は、複数のラベル案テストを適用することに応答して、そのフィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定することをさらに含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0235】
49.関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む、態様48の1つ又は複数の非一時的コンピュータ可読媒体。
【0236】
50.複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられ、動作は、
少なくとも1つのラベル案テストに関連付けられた重み値を更新することと、
更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用することと
をさらに含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0237】
51.動作は、機械学習プロセスを使用して複数のラベル案テストを訓練することをさらに含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0238】
52.動作は、
データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられる1つ又は複数のデータ品質ルールを検索することと、
1つ又は複数のデータ品質ルールのうちのデータ品質ルールをフィールドに割り当てることと
をさらに含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0239】
53.ラベル案テストから生成されたラベル案を比較することは、
スコア値を各ラベル案に適用することと、
ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合することと、
各ラベルに関連付けられたスコア値に従ってラベルをランク付けすることと
を含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0240】
54.動作は、
複数のラベル案テストからラベル案のバリデーションを受け取ることと、
バリデーションを受け取ることに応答して、複数のラベル案テストをそのラベル案で重み付けすることと
をさらに含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0241】
55.データストアは、データ辞書を含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0242】
56.動作は、ラベル案をデータ品質ルール環境に出力することをさらに含む、態様39の1つ又は複数の非一時的コンピュータ可読媒体。
【0243】
57.動作は、ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを使用してそのフィールドのデータを処理することに関するエラーの数を、ラベル案の識別された1つを使用することなくそのフィールドのデータを処理することに関するエラーの別の数に対して減少させることをさらに含む、態様56の1つ又は複数の非一時的コンピュータ可読媒体。
【0244】
58.1つ又は複数のデータセットに含まれるフィールドの意味論的意味を発見するためのデータ処理システムであって、
1つ又は複数のデータセットに含まれるフィールドを識別する手段であって、フィールドは、識別子を有する、手段と、
そのフィールドについて、
データ処理システムにより、そのフィールドの1つ又は複数のデータ値をプロファイルして、データプロファイルを生成する手段と、
複数のラベル案テストにアクセスする手段と、
少なくとも複数のラベル案テストをデータプロファイルに適用することに基づいて、ラベル案の組を生成する手段と、
ラベル案の組内のラベル案間の類似性を特定する手段と、
少なくとも組内のラベル案間の類似性に基づいて分類を選択する手段と、
分類に基づいて、意味論的意味を識別するラベル案を識別することにおいて入力を要求するグラフィカルユーザインタフェースをレンダリングするか、又は入力が必要でないことを特定する手段と、
ラベル案の1つを、意味論的意味を識別するものとして識別する手段と、
データストア内において、そのフィールドの識別子を、意味論的意味を識別するラベル案の識別された1つと共に保存する手段と
を含むデータ処理システム。
【0245】
59.フィールドの1つ又は複数のデータ値をプロファイルする手段は、フィールドのデータ値のフォーマットを特定する手段を含む、態様58のシステム。
【0246】
60.そのフィールドのデータ値をプロファイルする手段は、そのフィールドに含まれるデータ値を表す統計値を特定する手段を含む、態様58のシステム。
【0247】
61.統計値は、そのフィールドのデータ値の最小長さ、そのフィールドのデータ値の最大長さ、そのフィールドの最も一般的なデータ値、そのフィールドの最も一般的でないデータ値、そのフィールドの最大データ値及びそのフィールドの最小データ値の少なくとも1つを含む、態様60のシステム。
【0248】
62.複数のラベル案テストを適用する手段は、
フィールドが、1つ又は複数のデータセットのうちのデータセットのためのプライマリキーを含むことを特定する手段と、
複数のラベル案テストのうち、そのプライマリキーに関連するラベル案テストを選択する手段と
を含む、態様58のシステム。
【0249】
63.複数のラベル案テストを適用することは、そのフィールドのデータ値の、用語集内の用語とのメタデータ比較を行う手段を含む、態様58のシステム。
【0250】
64.複数のラベル案テストを適用することは、
データプロファイルから、そのフィールドの保存されたデータ値によって表されるパターンを特定する手段と、
そのパターンにマッピングされる特定のラベルを特定する手段と、
そのフィールドをその特定のラベルでラベル付けする手段と
を含む、態様58のシステム。
【0251】
65.複数のラベル案テストを適用する手段は、
データ集合を表す値のリストを検索する手段と、
そのフィールドのデータ値を値のリストと比較する手段と、
比較することに応答して、データの閾値数がリストの値と一致することを特定する手段と、
特定することに応答して、そのフィールドを、データ集合を指定する特定のラベルでラベル付けする手段と
を含む、態様58のシステム。
【0252】
66.複数のラベル案テストを適用することは、
そのフィールドのための少なくとも2つのラベルを生成する手段と、
少なくとも2つのラベルが相互に排他的であるか又は包含的であるかを特定する手段と
を含む、態様58のシステム。
【0253】
67.複数のラベル案テストを適用することに応答して、そのフィールドと、1つ又は複数のデータセットの別のフィールドとの間の関係を特定する手段をさらに含む、態様58のシステム。
【0254】
68.関係は、フィールドの第一のデータ値が、他のフィールドに保存された第二のデータ値を決定するという表示、第一のデータ値が第二のデータ値と相関するという表示又は第一のデータ値が第二のデータ値と同一であるという表示の1つを含む、態様67のシステム。
【0255】
69.複数のラベル案テストは、少なくとも1つの重み値にそれぞれ関連付けられ、システムは、
少なくとも1つのラベル案テストに関連付けられた重み値を更新する手段と、
更新された重み値を使用して、ラベル案テストをデータプロファイルに再び適用する手段と
をさらに含む、態様58のシステム。
【0256】
70.機械学習プロセスを使用して複数のラベル案テストを訓練する手段をさらに含む、態様58のシステム。
【0257】
71.データ品質ルール環境から、意味論的意味を指定するラベル案に割り当てられる1つ又は複数のデータ品質ルールを検索する手段と、
1つ又は複数のデータ品質ルールのうちのデータ品質ルールをそのフィールドに割り当てる手段と
をさらに含む、態様58のシステム。
【0258】
72.ラベル案テストから生成されたラベル案を比較する手段は、
スコア値を各ラベル案に適用する手段と、
ラベル案の各ラベルについて、そのラベルに関連付けられたスコア値を結合する手段と、
各ラベルに関連付けられたスコア値に従ってラベルをランク付けする手段と
を含む、態様58のシステム。
【0259】
73.複数のラベル案テストからラベル案のバリデーションを受け取る手段と、
バリデーションを受け取ることに応答して、複数のラベル案テストをラベル案で重み付けする手段と
をさらに含む、態様58のシステム。
【0260】
74.データストアは、データ辞書を含む、態様58のシステム。
【0261】
75.ラベル案をデータ品質ルール環境に出力する手段をさらに含む、態様58のシステム。
【0262】
76.ラベル案の識別された1つに基づいて、データ品質環境からのデータ品質ルールを使用してそのフィールドのデータを処理することに関するエラーの数を、ラベル案の識別された1つを使用することなくそのフィールドのデータを処理することに関するエラーの別の数に対して減少させる手段をさらに含む、態様75のシステム。
【0263】
以上では、本発明の各種の実施形態を説明した。しかし、当業者であれば、その均等物を含む以下の請求項の範囲によって定義される本発明から逸脱することなく、それらから様々な改良形態がなされ得ることが分かるであろう。
【符号の説明】
【0264】
102 実行システム
104 プロファイルモジュール
105 分類モジュール
106 テストモジュール
108 結果確証モジュール
110 ロードデータモジュール
112 データソース
114 データ辞書データベース
116 参照データベース
118 ソースデータ