(57)【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを含むコンピューティングシステムにおける、記録の集合体に対する変更を管理するための方法であって、
前記少なくとも１つのプロセッサは、
データ格納システムに記録の第１のセットを格納するステップであって、前記記録の第１のセットは、前記記録の集合体の第１のバージョンを表す、ステップと、
ユーザインターフェース上で受信された入力によって指定される、前記記録の集合体に対する提案された変更を検証するステップと
を含み、前記検証するステップは、
前記提案された変更を検証するための検証基準に基づいて前記データ格納システムへのクエリを行い、前記クエリを行うステップに応じて第１の結果を受信するステップと、
前記記録の集合体に未だ適用されていない変更を表す記録の第２のセットを処理して、第２の結果を生成するステップであって、前記記録の第２セットによって表される前記変更は、前記入力によって指定される前記提案された変更と異なる、該生成するステップと、
前記第２の結果に基づいて前記第１の結果を更新して、第３の結果を生成するステップと、
前記第３の結果を処理して、前記検証基準に従って前記提案された変更が有効かどうかを決定するステップと
を実行する、方法。
【請求項２】
前記記録の第１のセットは、１つ以上のソース値を１つ以上のターゲット値にマッピングするメタデータマップをそれぞれ有する記録を含む、請求項１に記載の方法。
【請求項３】
前記第３の結果を処理するステップは、１つ以上のソース値の同じセットが、２つ以上の異なるメタデータマップにより、１つ以上のターゲット値の２つ以上の異なるセットにマッピングされた場合、又は１つ以上のソース値の２つ以上の異なるセットが、２つ以上の異なるメタデータマップにより、１つ以上のターゲット値の前記同じセットにマッピングされる場合は前記提案された変更を無効にするステップを含む、請求項２に記載の方法。
【請求項４】
前記第３の結果を処理するステップは、前記提案された変更の適用により、前記記録の第１のセットに既に含まれる他の記録と重複する重複記録が１つ以上作成されることになるかどうかを特定するステップを含む、請求項１に記載の方法。
【請求項５】
前記提案された変更の適用により、１つ以上の重複記録が作成されることになるかどうかを特定するステップは、１つ以上の重複行を特定するステップを含む、請求項４に記載の方法。
【請求項６】
ソース値をそれぞれのターゲット値にマッピングする１つの行より多くの行に固有のソース値が出現しないことを保証するための前記検証基準として、１つ以上のソース値を使用することで、前記１つ以上の重複行が特定される、請求項５に記載の方法。
【請求項７】
前記記録の第２のセットは、ユーザインターフェースに入力されている前記記録の第１のセットに対する提案された変更を表す１つ以上の変更セットを含む、請求項１に記載の方法。
【請求項８】
前記入力は、以前に保存された変更セットに関連する変更を前記記録の第１のセットに適用するという命令を含む、請求項１に記載の方法。
【請求項９】
前記記録の集合体に対する前記提案された変更を検証するステップは、前記入力によって前記ユーザインターフェースで指定される他の提案された変更に対して、前記提案された変更を検証するステップを含む、請求項１に記載の方法。
【請求項１０】
前記ユーザインターフェースは、記録セットの１つ以上のサブセットを選択可能に表示するための１つ以上のフィルタを含む、請求項１に記載の方法。
【請求項１１】
前記少なくとも１つのプロセッサが、
前記提案された変更が有効でない場合に通知を生成するステップをさらに実行する、請求項１に記載の方法。
【請求項１２】
前記通知は、前記検証基準に違反する前記提案された変更の一部を特定する、請求項１１に記載の方法。
【請求項１３】
記録の集合体に対する変更を管理するためのコンピュータプログラムを格納するコンピュータ可読記憶媒体であって、前記コンピュータプログラムは、コンピューティングシステムに、
データ格納システムに記録の第１のセットを格納させるための命令であって、前記記録の第１のセットは、前記記録の集合体の第１のバージョンを表す、命令と、
ユーザインターフェース上で受信された入力によって指定される、前記記録の集合体に対する提案された変更を検証させるための命令と
を含み、前記検証することは、
前記提案された変更を検証するための検証基準に基づいて前記データ格納システムへのクエリを行い、前記クエリを行うことに応じて第１の結果を受信することと、
前記記録の集合体に未だ適用されていない変更を表す記録の第２のセットを処理して、第２の結果を生成することであって、前記記録の第２セットによって表される前記変更は、前記入力によって指定される前記提案された変更と異なる、該生成することと、
前記第２の結果に基づいて前記第１の結果を更新して、第３の結果を生成することと、
前記第３の結果を処理して、前記検証基準に従って前記提案された変更が有効かどうかを決定することと
を含む、コンピュータ可読記憶媒体。
【請求項１４】
記録の集合体に対する変更を管理するためのコンピューティングシステムであって、
記録の第１のセットを格納するデータ格納システムであって、前記記録の第１のセットは、前記記録の集合体の第１のバージョンを表す、データ格納システムと、
ユーザインターフェース上で受信された入力によって指定される、前記記録の集合体に対する提案された変更を検証するよう構成された少なくとも１つのプロセッサと
を含み、前記検証することは、
前記提案された変更を検証するための検証基準に基づいて前記データ格納システムへのクエリを行い、前記クエリを行うことに応じて第１の結果を受信することと、
前記記録の集合体に未だ適用されていない変更を表す記録の第２のセットを処理して、第２の結果を生成することであって、前記記録の第２セットによって表される前記変更は、前記入力によって指定される前記提案された変更と異なる、該生成することと、
前記第２の結果に基づいて前記第１の結果を更新して、第３の結果を生成することと、
前記第３の結果を処理して、前記検証基準に従って前記提案された変更が有効かどうかを決定することと
を含む、コンピューティングシステム。
【請求項１５】
前記記録の第１のセットは、１つ以上のソース値を１つ以上のターゲット値にマッピングするメタデータマップをそれぞれ有する記録を含む、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記第３の結果を処理することは、１つ以上のソース値の同じセットが、２つ以上の異なるメタデータマップにより、１つ以上のターゲット値の２つ以上の異なるセットにマッピングされた場合、又は１つ以上のソース値の２つ以上の異なるセットが、２つ以上の異なるメタデータマップにより、１つ以上のターゲット値の前記同じセットにマッピングされる場合は前記提案された変更を無効にさせるための命令をさらに含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記第３の結果を処理することは、前記提案された変更の適用により、前記記録の第１のセットに既に含まれる他の記録と重複する重複記録が１つ以上作成されることになるかどうかを特定することを含む、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記提案された変更の適用により、１つ以上の重複記録が作成されることになるかどうかを特定することは、１つ以上の重複行を特定することを含む、請求項１７に記載のコンピュータ可読記憶媒体。
【請求項１９】
ソース値をそれぞれのターゲット値にマッピングする１つの行より多くの行に固有のソース値が出現しないことを保証するための前記検証基準として、１つ以上のソース値を使用することで、前記１つ以上の重複行が特定される、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記記録の第２のセットは、ユーザインターフェースに入力されている前記記録の第１のセットに対する提案された変更を表す１つ以上の変更セットを含む、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記入力は、以前に保存された変更セットに関連する変更を前記記録の第１のセットに適用するという命令を含む、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項２２】
前記記録の集合体に対する前記提案された変更を検証することは、前記入力によって前記ユーザインターフェースで指定される他の提案された変更に対して、前記提案された変更を検証することを含む、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項２３】
前記ユーザインターフェースは、記録セットの１つ以上のサブセットを選択可能に表示するための１つ以上のフィルタを含む、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記コンピュータプログラムは、前記コンピューティングシステムに、
前記提案された変更が有効でない場合に通知を生成させる命令をさらに含む、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記通知は、前記検証基準に違反する前記提案された変更の一部を特定する、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記記録の第１のセットは、１つ以上のソース値を１つ以上のターゲット値にマッピングするメタデータマップをそれぞれ有する記録を含む、請求項１４に記載のコンピューティングシステム。
【請求項２７】
前記第３の結果を処理することは、１つ以上のソース値の同じセットが、２つ以上の異なるメタデータマップにより、１つ以上のターゲット値の２つ以上の異なるセットにマッピングされた場合、又は１つ以上のソース値の２つ以上の異なるセットが、２つ以上の異なるメタデータマップにより、１つ以上のターゲット値の前記同じセットにマッピングされる場合は前記提案された変更を無効にすることを含む、請求項２６に記載のコンピューティングシステム。
【請求項２８】
前記第３の結果を処理することは、前記提案された変更の適用により、前記記録の第１のセットに既に含まれる他の記録と重複する重複記録が１つ以上作成されることになるかどうかを特定することを含む、請求項１４に記載のコンピューティングシステム。
【請求項２９】
前記提案された変更の適用により、１つ以上の重複記録が作成されることになるかどうかを特定することは、１つ以上の重複行を特定することを含む、請求項２８に記載のコンピューティングシステム。
【請求項３０】
ソース値をそれぞれのターゲット値にマッピングする１つの行より多くの行に固有のソース値が出現しないことを保証するための前記検証基準として１つ以上のソース値を使用することで、前記１つ以上の重複行が特定される、請求項２９に記載のコンピューティングシステム。
【請求項３１】
前記記録の第２のセットは、ユーザインターフェースに入力されている前記記録の第１のセットに対する提案された変更を表す１つ以上の変更セットを含む、請求項１４に記載のコンピューティングシステム。
【請求項３２】
前記入力は、以前に保存された変更セットに関連する変更を前記記録の第１のセットに適用するという命令を含む、請求項１４に記載のコンピューティングシステム。
【請求項３３】
前記記録の集合体に対する前記提案された変更を検証することは、前記入力によって前記ユーザインターフェースで指定される他の提案された変更に対して、前記提案された変更を検証することを含む、請求項１４に記載のコンピューティングシステム。
【請求項３４】
前記ユーザインターフェースは、記録セットの１つ以上のサブセットを選択可能に表示するための１つ以上のフィルタを含む、請求項１４に記載のコンピューティングシステム。
【請求項３５】
前記プロセッサは、
前記提案された変更が有効でない場合に通知を生成するようさらに構成される、請求項１４に記載のコンピューティングシステム。
【請求項３６】
前記通知は、前記検証基準に違反する前記提案された変更の一部を特定する、請求項３５に記載のコンピューティングシステム。
【請求項３７】
前記記録の第２のセットは、前記記録の集合体に対する前記提案された変更を指定する前記入力を受信する前に前記データ格納システムに格納される、請求項１に記載の方法。
【請求項３８】
前記記録の第２のセットは、前記記録の集合体に対する前記提案された変更を指定する前記入力を受信する前に前記データ格納システムに格納される、請求項１３に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記記録の第２のセットは、前記記録の集合体に対する前記提案された変更を指定する前記入力を受信する前に前記データ格納システムに格納される、請求項１４に記載のコンピューティングシステム。
【請求項４０】
前記記録の第２のセットにより表される前記変更は、既に提案され、検証されている、請求項１に記載の方法。
【請求項４１】
前記第１の結果は、前記提案された変更により影響される情報を含む前記記録の第１のセット内の記録を示す、請求項４０に記載の方法。
【請求項４２】
前記第２の結果は、前記提案された変更と潜在的に矛盾する前記記録の第２のセット内に矛盾する記録があるか否かを示す、請求項４１に記載の方法。
【請求項４３】
前記第２の結果は、前記提案された変更により影響される情報を含む矛盾の記録内または前記記録の第１のセット内の記録を示す、請求項４２に記載の方法。
【請求項４４】
前記記録の第２のセットにより表される前記変更は、既に提案され、検証されている、請求項１３に記載のコンピュータ可読記録媒体。
【請求項４５】
前記第１の結果は、前記提案された変更により影響される情報を含む前記記録の第１のセット内の記録を示す、請求項４４に記載のコンピュータ可読記録媒体。
【請求項４６】
前記第２の結果は、前記提案された変更と潜在的に矛盾する前記記録の第２のセット内に矛盾する記録があるか否かを示す、請求項４５に記載のコンピュータ可読記録媒体。
【請求項４７】
前記第２の結果は、前記提案された変更により影響される情報を含む矛盾の記録内または前記記録の第１のセット内の記録を示す、請求項４６に記載のコンピュータ可読記録媒体。
【請求項４８】
前記記録の第２のセットにより表される前記変更は、既に提案され、検証されている、請求項１４に記載のコンピューティングシステム。
【請求項４９】
前記第１の結果は、前記提案された変更により影響される情報を含む前記記録の第１のセット内の記録を示す、請求項４８に記載のコンピューティングシステム。
【請求項５０】
前記第２の結果は、前記提案された変更と潜在的に矛盾する前記記録の第２のセット内に矛盾する記録があるか否かを示す、請求項４９に記載のコンピューティングシステム。
【請求項５１】
前記第２の結果は、前記提案された変更により影響される情報を含む矛盾の記録内または前記記録の第１のセット内の記録を示す、請求項５０に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１１年１月１４日に出願された米国特許出願第６１／４３３，０８２号の優先権を主張し、同特許は、参照により本明細書に組み込まれる。
【０００２】
背景
この説明は、データの集合体に対する変更の管理に関する。
【背景技術】
【０００３】
データベースシステムなどのコンピューティングシステムは、データの集合体に対する変更を管理するためのさまざまなメカニズムを提供する。ある事例では、ユーザは、データベースに格納されたデータに対する変更を提案して実施する。一般に、データベースは、格納されたデータをどのように変更することができるかを定義する規則を含む。
【発明の概要】
【課題を解決するための手段】
【０００４】
要約
一態様では、一般に、記録の集合体に対する変更を管理するための方法は、データ格納システムに記録の第１のセットを格納するステップであって、記録の第１のセットは、記録の集合体の第１のバージョンを表す、ステップを含む。本方法は、ユーザインターフェース上で受信された入力によって指定される、記録の集合体に対する提案された変更を検証するステップをさらに含む。検証するステップは、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第１の結果を受信するステップと、記録の集合体に未だ適用されていない変更を表す記録の第２のセットを処理して、第２の結果を生成するステップと、第２の結果に基づいて第１の結果を更新して、第３の結果を生成するステップと、第３の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定するステップとを含む。
【０００５】
別の態様では、一般に、コンピュータ可読記憶媒体は、記録の集合体に対する変更を管理するためのコンピュータプログラムを格納する。コンピュータプログラムは、コンピューティングシステムに、データ格納システムに記録の第１のセットを格納させるための命令であって、記録の第１のセットは、記録の集合体の第１のバージョンを表す、命令と、ユーザインターフェース上で受信された入力によって指定される、記録の集合体に対する提案された変更を検証させるための命令とを含む。検証するステップは、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第１の結果を受信するステップと、記録の集合体に未だ適用されていない変更を表す記録の第２のセットを処理して、第２の結果を生成するステップと、第２の結果に基づいて第１の結果を更新して、第３の結果を生成するステップと、第３の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定するステップとを含む。
【０００６】
別の態様では、一般に、記録の集合体に対する変更を管理するためのコンピューティングシステムは、記録の第１のセットを格納するデータ格納システムであって、記録の第１のセットは、記録の集合体の第１のバージョンを表す、データ格納システムと、ユーザインターフェース上で受信された入力によって指定される、記録の集合体に対する提案された変更を検証するよう構成された少なくとも１つのプロセッサとを含む。検証するステップは、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第１の結果を受信するステップと、記録の集合体に未だ適用されていない変更を表す記録の第２のセットを処理して、第２の結果を生成するステップと、第２の結果に基づいて第１の結果を更新して、第３の結果を生成するステップと、第３の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定するステップとを含む。
【０００７】
別の態様では、一般に、記録の集合体に対する変更を管理するためのコンピューティングシステムは、記録の第１のセットを格納するための手段であって、記録の第１のセットは、記録の集合体の第１のバージョンを表す、手段と、ユーザインターフェース上で受信された入力によって指定される、記録の集合体に対する提案された変更を検証するための手段とを含む。検証するステップは、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第１の結果を受信するステップと、記録の集合体に未だ適用されていない変更を表す記録の第２のセットを処理して、第２の結果を生成するステップと、第２の結果に基づいて第１の結果を更新して、第３の結果を生成するステップと、第３の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定するステップとを含む。
【０００８】
態様は、以下の特徴の１つまたは複数を含み得る。記録の第１のセットは、１つまたは複数のソース値をそれぞれのターゲット値にマッピングするメタデータマップを含む。提案された変更は、１つまたは複数のソース値の１つが２つ以上の異なるターゲット値にマッピングされた場合は無効になる。第３の結果を処理するステップは、提案された変更の適用により、１つまたは複数の重複記録が作成されることになるかどうかを特定するステップを含む。提案された変更の適用により、１つまたは複数の重複記録が作成されることになるかどうかを特定するステップは、１つまたは複数の重複行を特定するステップを含む。１つまたは複数の重複行は、検証基準として１つまたは複数のソース値を使用することで特定される。記録の第２のセットは、ユーザインターフェースに入力されている記録の第１のセットに対する提案された変更を表す１つまたは複数の変更セットを含む。入力は、以前に保存された変更セットに関連する変更を記録の第１のセットに適用するという命令を含む。記録の集合体に対する提案された変更を検証するステップは、入力によってユーザインターフェースで指定される他の提案された変更に対して、提案された変更を検証するステップを含む。ユーザインターフェースは、記録セットの１つまたは複数のサブセットを選択可能に表示するための１つまたは複数のフィルタを含む。提案された変更が有効でない場合は通知が生成される。通知は、検証基準に違反する提案された変更の一部を特定する。
【０００９】
態様は、以下の利点の１つまたは複数を含み得る。例えば、本明細書に記載される技法を使用して、さまざまなデータベースおよびファイルの整合性および精度を維持することができる。また、本明細書に記載される技法により、管理者は、１つまたは複数の記録システムを効率的に維持することができる。
【００１０】
発明の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１１】
図面の説明
【図１】グラフベースのコンピューテーションを実行するためのシステムのブロック図である。
【図２】記録の集合体に対する変更を管理するための例示的な手順のフローチャートである。
【図３】例示的なコンピューティング環境のスクリーンショットである。
【図４Ａ】例示的なコンピューティング環境のスクリーンショットである。
【図４Ｂ】例示的なコンピューティング環境のスクリーンショットである。
【発明を実施するための形態】
【００１２】
説明
図１は、データの集合体（例えば、記録として構造化されたデータ）に対する変更を管理するための技法を使用できる例示的なコンピューティング環境１００を示す。システム１００は、記憶装置またはオンラインデータストリームとの接続部などの１つまたは複数のデータソースを含み得るデータ格納システム１１２を含み、それぞれは、さまざまな格納形式のいずれかの形式（例えば、メインフレームによって使用されるデータベース表、スプレッドシートファイル、フラットテキストファイルまたはネイティブ形式）でデータを格納することができる。
【００１３】
処理環境１０６は、処理エンジン１０８と、検証エンジン１１０とを含む。処理環境１０６は、ＵＮＩＸ（登録商標）オペレーティングシステムなどの適切なオペレーティングシステムの制御下で、１つまたは複数の汎用コンピュータをホストとすることができる。例えば、処理環境１０６は、ローカルで接続された（例えば、ＳＭＰコンピュータなどのマルチプロセッサシステム）もしくはローカルで分散された（例えば、クラスタもしくはＭＰＰとして結合された複数のプロセッサ）、または、リモートで接続されたもしくはリモートで分散された（例えば、ローカルエリアネットワーク（ＬＡＮ）および／または広域ネットワーク（ＷＡＮ）を介して結合された複数のプロセッサ）、あるいは、それらの任意の組み合わせの、複数の中央演算処理装置（ＣＰＵ）を使用したコンピュータシステムの構成を含む複数ノード並列演算環境を含み得る。
【００１４】
データ格納システム１１２を提供する記憶装置は、処理環境１０６とローカルで接続する、例えば、処理環境１０６を実行しているコンピュータに接続された記憶媒体（例えば、ハードドライブ）に格納することもでき、処理環境１０６とリモートで接続する、例えば、リモート接続上で、処理環境１０６を実行しているコンピュータと連通するリモートシステム（例えば、メインフレーム）をホストとすることもできる。
【００１５】
処理環境１０６（および／または処理エンジン１０８などのその関連コンポーネント）は、異なる形式のデータベースシステムを含むさまざまなタイプのシステムからデータを受信することができる。データは、恐らくヌル値を含む、それぞれのフィールド（「属性」または「列」とも呼ばれる）に対する値を有する記録として組織化することができる。データソースから最初にデータを読み取る際、処理環境１０６は、通常、そのデータソース内の記録についてのいくつかの初期のフォーマット情報から始める。状況次第では、データソースの記録構造は、初めは知られていない場合があり、代わりに、データソースの分析後に決定される場合がある。記録についての初期情報は、異なる値を表すビット数と、記録内のフィールドの順番と、ビットによって表される値のタイプ（例えば、ストリング、符号付き／符号なし整数）とを含み得る。
【００１６】
また、コンピューティング環境１００は、ユーザ１０１から処理環境１０６にコマンドを通信するよう構成されたユーザインターフェース１０２も含む。ある例では、以下でさらに詳細に説明されるように、ユーザ１０１は、ユーザインターフェース１０２を使用して、提案された記録変更１０４を入力することができる。例えば、ユーザ１０１は、記録セット１１６内の表からの行もしくは列の追加および／もしくは削除、または、表の１つもしくは複数のフィールドの値に対する変更を含む提案された記録変更１０４を入力することによって、データ格納システム１１２に格納された記録セット１１６内の１つまたは複数の記録の変更を試みることができる。また、ユーザインターフェース１０２は、コンピュータディスプレイ、スピーカおよび同様のものなど、さまざまな出力デバイスを使用して、処理環境１０６からユーザ１０１に情報を通信することもできる。例えば、ユーザインターフェース１０２は、データ格納システム１１２に格納された情報をグラフで表すことができるグラフ表示（例えば、データベース表の列と行を表すグリッドを表示することによって）を含み得る。
【００１７】
処理エンジン１０８および検証エンジン１１０は、提案された記録変更１０４およびデータ格納システム１１２から検索された情報を使用して、データ格納システム１１２に格納された記録セット１１６に対する変更を検証および／または実施する。データ格納システム１１２から検索された情報は、１つまたは複数の未定の記録変更１１４（例えば、まだ実施されていないが、既に検証および／または保存が行われている可能性がある記録セット１１６に対する変更）に関連する情報を含み得る。いくつかの例では、未定の記録変更は、「変更セット」と呼ばれる。一般に、処理エンジン１０８は、１つまたは複数の記録セットを変更するための命令を表すデータを含む記録データを受信して処理する。処理エンジン１０８は、提案された記録変更１０４、未定の記録変更１１４および記録セット１１６からのデータを使用して、データ格納システム１１２に格納された記録セット１１６を変更するための命令を生成または実行することができる。ある例では、検証エンジン１１０は、記録の集合体を変更するため、命令が実行される前に（例えば、処理エンジン１０８によって）記録の集合体を変更するための命令を検証する。処理環境１０６は処理エンジン１０８と検証エンジン１１０の両方を含むが、処理環境１０６は、任意の数の個別のタスクエンジン間でそのタスクを分割することができる。例えば、単一のタスクエンジンは、処理エンジン１０８と検証エンジン１１０の両方の機能を実行することが可能である。同様に、処理エンジン１０８および検証エンジン１１０によって実行されるタスクは、多数のサブタスクエンジン間で分割することが可能である。
【００１８】
データ格納システム１１２に格納されたデータは、処理環境１０６でアクセス可能である。また、データ格納システム１１２は、開発者１０１がデータ格納システム１１２に格納されたデータに対する変更を提案して実施することができるユーザインターフェース１０２でも直接または間接的にアクセス可能である。ある例では、ユーザインターフェース１０２は、頂点間の有向リンク（作業要素のフローを表す）によって接続された頂点（コンポーネントまたはデータセットを表す）を含むデータフローグラフなどのアプリケーションを開発するための開発環境に関連する。例えば、そのような環境については、参照により本明細書に組み込まれる「Managing Parameters for Graph-Based Applications」と称する米国特許出願公開第２００７／００１１６６８号でさらに詳細に説明されている。そのようなグラフベースのコンピューテーションを実行するシステムについては、参照により本明細書に組み込まれる米国特許第５，５６６，０７２号「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」で説明されている。このシステムに従って作成されたデータフローグラフは、グラフコンポーネントによって表される個別のプロセスに情報を持ち込む、および個別のプロセスから情報を引き出すための方法、プロセス間で情報を移動するための方法、ならびに、プロセスに対する実行順番を定義するための方法を提供する。このシステムは、プロセス間通信方法（例えば、グラフのリンクに従った通信経路は、ＴＣＰ／ＩＰもしくはＵＮＩＸ（登録商標）ドメインソケットを使用することも、共有メモリを使用して、プロセス間でデータを渡すこともできる）を選択するアルゴリズムを含む。
【００１９】
図２は、記録の集合体に対する変更を管理するための例示的な手順２００のフローチャートを示す。手順２００は、コンピューティング環境１００のモジュールの１つまたは複数（例えば、処理エンジン１０８）によって実行することができる。
【００２０】
記録の第１のセットが、データ格納システムに格納される（２０２）。記録の第１のセットは、記録の集合体の第１のバージョンを表す。ある例では、記録の集合体は、メタデータマップなど、データ処理の際に使用するために正確に維持および更新すべき情報の集合体を表す。一般に、メタデータマップは、２つの異なるシステム間での値の変換を指定することができる。例えば、第１のシステムが値Ｍ（男性）およびＦ（女性）を使用して「性別」フィールドを定義し、第２のシステムが値０（男性）および１（女性）を使用して性別フィールドを定義する場合、メタデータマップを使用して、第１の（「ソース」）システムから第２の（「ターゲット」）システムへ値を変換することができる（例えば、Ｍ→０、Ｆ→１）。マッピングは、単一フィールド間またはフィールドセット間で行うことができる（例えば、第１のシステムから第２のシステムに複数の列をマッピングする）。例えば、人物の性別を表す第１の列および人物が居住する州を表す第２の列を含む記録を格納する第１のシステムについて考慮する。この例では、性別コードは州に依存し得、第１の性別コードマッピングはある州に対して使用され、第２の性別コードマッピングは別の州に対して使用される。ＭＡ州の記録は、値１を男性にマッピングし得るが、ＮＹ州の記録は、値３を男性にマッピングし得る。この例では、ＭＡ／０の組み合わせは、男性にマッピングし、ＭＡ／１の組み合わせは、女性にマッピングし、ＮＹ／３の組み合わせは、男性にマッピングする。
【００２１】
ある例では、メタデータマップは、１つの（および唯一の）ソース値から１つのターゲット値への変換を提供する。これらの例では、そのような変換はエラーを引き起こす恐れがあるため、メタデータマップは、Ｍ→０およびＦ→０に対する変換を提供することはできない。この様式の変換は、２つの異なるソース値が同じターゲット値にマッピングされることになるため、「Ｍ」と「Ｆ」との区別を本質的に破壊することになる。それに応じて、多くの場合、各ターゲット値は、１つのソース値にのみ関連し得る。他の実装形態では、ターゲットシステムが２つの異なるソース値（例えば、ＭとＦ）間の区別を維持することが望ましくない場合は、複数のソース値を同じターゲット値にマッピングすることが可能である。
【００２２】
入力によって指定される記録の集合体に対する提案された変更が、検証される（２０４）。ある例では、提案された変更を検証するステップ（２０４）は、手順２０６、２０８、２１０および２１２を含む検証プロセス２０５を含む。すなわち、提案された変更を検証するステップ（２０４）では、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第１の結果を受信する（２０６）。例えば、提案された記録変更１０４についての情報を受信した後、処理エンジン１０８は、データ格納システム１１２へのクエリを行う。ある例では、データ格納システム１１２へのクエリを行うステップにより、データ格納システム１１２は、提案された変更１０４によって影響を受ける行および／または列に関連する行および／または列を特定する第１の結果を返すことになる。クエリが基づく検証基準は、特定の行のソースまたはターゲット列からの値のセットを表す。例えば、ソース列検証基準を使用して、提案された変更１０４の実施が記録セット１１６内の重複行をもたらさないことを検証することができ、ターゲット列からの値を使用して、ソース値とターゲット値との間のマッピングが可逆的なものであることを検証することができる（例えば、ターゲット値の各セットがユニークなものであることを確認するため）。処理エンジン１０８は、提案された記録変更１０４の検証において後に使用するために、第１の結果を格納することができる（例えば、ローカルメモリに）。
【００２３】
第２の結果を生成するため、記録の集合体に未だ適用されていない変更を表す記録の第２のセット（「変更セット」）が、処理される（２０８）。例えば、処理エンジン１０８は、第２の結果を生成するため、提案された記録変更１０４と矛盾し得る変更を表す、データ格納システム１１２に格納された未定の記録変更１１４を処理することができる。例えば、提案された記録変更１０４が行Ｘの値を修正するという命令を含む場合、処理エンジンは、行Ｘに関連する未定の記録変更１１４からいかなる情報も抽出することができる。未定の記録変更１１４から抽出された情報は、第２の結果として格納される（例えば、ローカルメモリに）。ある実施形態では、処理エンジン１０８は、未定の記録変更１１４を考慮することなく、提案された記録変更１０４を検証するため、第１の結果を検証エンジン１１０に渡すことができる。同様に、処理エンジン１０８は、提案された記録変更１０４を考慮することなく、未定の記録変更１１４を検証するため、第２の結果を検証エンジン１１０に渡すことができる。ある例では、図４Ａ、４Ｂに示される環境および技法の１つまたは複数（以下でさらに詳細に説明される）を使用して、変更セットを生成することができる。
【００２４】
第１の処理結果が、第２の結果に基づいて更新されて、第３の結果が、生成される（２１０）。例えば、上記で論じられる方法で第１および第２の結果を生成した後、処理エンジン１０８は、第２の結果からの情報を用いて第１の結果を更新して、第３の結果を生成することができる。ある例では、第３の結果は、第１および第２の結果において特定された行および／または列を含む。第３の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定することができる（２１２）。例えば、処理エンジン１０８は、第３の結果および提案された記録変更１０４を検証エンジン１１０に渡すことができる。次いで、検証エンジン１１０は、提案された記録変更１０４を比較して（例えば、提案された記録変更１０４において特定された検証基準を使用して）、提案された記録変更１０４が有効かどうかを決定することができる（２１４）。記録セットに対する提案された変更が有効かどうかを決定するステップは、重複ソース値をチェックするステップ、ソース値の各セットがターゲット値のユニークなセットにマッピングされることを実証するステップおよびいかなる範囲（例えば、日付範囲）も重複しないことを実証するステップの１つまたは複数を含み得る。
【００２５】
提案された変更が無効である（いいえ）と決定された場合は、提案された変更が、拒否される（２１８）。また、１つまたは複数のユーザ通知が、生成され得る（２２０）。ある例では、通知は、提案された変更が無効になった１つまたは複数の理由を特定することができる。例えば、提案された変更が未定の記録変更１１４において削除されている行を修正するという命令を含むことが原因で、検証エンジン１１０が提案された変更を拒否すれば、提案された記録変更１０４と未定の記録変更１１４との間の矛盾を特定する通知をユーザインターフェース１０２上で生成することができる。
【００２６】
提案された変更が有効である（はい）と決定された場合は、提案された変更が、記録の集合体に適用され得る。例えば、検証エンジン１１０が検証基準に従って提案された変更１０４が有効であることを決定すれば、処理エンジン１０８（または別の適切な実体）は、提案された記録変更１０４において提供された命令に従って、記録セット１１６を修正することができる。例えば、提案された記録変更１０４が記録セット１１６の行を修正するという命令を含み、検証エンジン１１０が検証基準に従って提案された変更１０４が有効であることを決定する場合は、処理エンジン１０８は、提案された記録変更１０４において特定された記録セット１１６の行を修正することができる。
【００２７】
ある例では、検証基準に基づいて外部の表からの行についてクエリを行う検証プロセス、それはソース値セットまたはターゲット値セットのいずれかであり得る。次いで、データ格納システム（例えば、メタデータ格納リポジトリ）は、外部の行の更新または削除を表す現在の変更セットに関して、保存された行に対してクエリを受け得る。ある例では、データ格納システムのこのクエリは、オーバーライドの本質は結果として得られた行がもはや検証基準に適合しないことを意味し得るため、検証基準を使用しない場合がある。保存されたオーバーライドに基づいて、もはや検証基準に適合しない外部の行は、データ格納システムから除去することができる。次いで、データ格納システムは、検証基準に適合する行に対してクエリを受け得る。既に検証セット内にある外部の行のユニークな識別子に適合する、結果として得られた行の一部またはすべては、対応する外部の行を置き換えることができる。次いで、検証基準に適合する他の行は、セットに追加することができる。最終的に、ユーザインターフェースからのいかなる未保存の変更も、最新の変更が検証基準に適合するかどうかに基づいて、検証セットから、同じユニークな識別子を有する既存の行を置き換えるまたは除去することができる。検証基準に適合し、新しい行（例えば、外部の表に対する挿入）を表す未保存の行は、検証セットに追加することができる。次いで、行の最終セットを使用して、検証を適用することができる。
【００２８】
図３は、例えば、ユーザインターフェース１０２上で表示され得る環境３００の例示的なスクリーンショットである。ユーザ（例えば、ユーザ１０１）は、環境３００を使用して、１つまたは複数の記録を閲覧したり相互作用したりすることができる。環境３００は、ファイルエクスプローラ３１２を提供し、ファイルエクスプローラ３１２は、１つまたは複数の組織システムを使用して、ファイルの構成を表示する。この例では、ファイルは階層構造に組織化される（例えば、親「Ｍａｐｐｉｎｇｓ」は子ノード「Ｍａｐｓ」を含み、子ノード「Ｍａｐｓ」は順に多くの下位の子ノードファイルを含む）。ユーザは、ファイルエクスプローラをナビゲートして、選択されたファイル３０３などの１つまたは複数のファイルを選択して表示することができる。
【００２９】
ファイルが選択された後、選択されたファイル３０３に関連するデータに１つまたは複数のフィルタ３１４を適用することができる。フィルタ３１４の適用は、例えば、環境３００で表示されるデータのタイプまたは量を変更することができる。例えば、選択されたファイル３０３にフィルタ３１４を適用して、ターゲット値が入力されていない行の表示を抑制することができる。
【００３０】
この例では、選択されたファイル３０３は、メタデータマップである。上記で論じられるように、一般に、メタデータマップは、２つの異なるシステム間での値の変換であり得る。図３では、メタデータマップは、第１の行３０４を含む５つの行３０２を含む。また、メタデータマップは、第１の列３０８と第２の列３１０を含む２つの列３０６も含む。第１の行３０４を参照すると、第１の列３０８は、ある１つのメタデータに対するソース値（Ｐ００１）を表す。第２の列３１０は、同じある１つのメタデータに対するターゲット値（Ｙ）を表す。したがって、この例では、第１の列３０８および第２の列３１０は、選択されたファイル３０３の第１の行３０４に対するメタデータマップを定義し、ソース値Ｐ００１をターゲット値「Ｙ」にマッピングする。
【００３１】
図４Ａおよび４Ｂは、例示的な環境４００Ａ、４００Ｂであり、無効な提案された変更に関連する行が閲覧環境に自動的に提供され、その結果、ユーザは、規則違反の視覚表示を見ることができる技法のデモンストレーションを行う。図４Ａは、上記で説明される環境３００（図３）と同様の環境４００Ａの例示的なスクリーンショットである。環境４００Ａは、選択されたファイルに関連するメタデータを表示し、第１の行４０４を含む。この例では、フィルタ４０２により、環境４００Ａは、ソース値が値「Ｐ００２」を有する行のみを表示し、この行は第１の行４０４を含む。第１の行４０４の第１の列は、ソース値４０６  Ｐ００２を含み、これは、第１の行４０４の第２の列のターゲット値４０８「Ｎ」にマッピングされる。それに応じて、第１の行４０４は、ソース値４０６  Ｐ００２に対するメタデータマップを表す。
【００３２】
図４Ｂは、ユーザ（または他の実体）が無効な変更を表す第２の行４１０を追加した環境４００Ｂを示す。上記で説明されるように、無効な変更により、通知で示されるタイプの行を本来なら抑制することになるフィルタが存在するにもかかわらず、規則違反（例えば、検証基準の違反）をユーザに通知するための通知が生成されることになり得る。例えば、図４Ａと同様に、フィルタ４０２は有効な状態を保ち、これにより、通常、表示される行をソース値が値Ｐ００２を有する行に制限することができる。しかし、この例では、第２の行４１０が追加されており（例えば、提案された変更１０４として）、これは、ソース値４１２「Ｐ００３」をターゲット値４１４「Ｘ」にマッピングすることを提案する。提案された変更を分析すると同時に、提案された変更は、第１の結果（例えば、記録セット１１６に関連する第１の結果）および第２の結果（例えば、未定の記録変更１１４に関連する第２の結果）の一方または両方に対して無効になる。この例では、検証基準は単一のソース値を２つ以上のターゲット値にマッピングすることはできないと指定しているため、ターゲット値Ｘ  ４１４へのソース値４１２  Ｐ００３の提案されたマッピングは、矛盾する行４０９で示される、ターゲット値４０７「Ｙ」へのソース値４１２  Ｐ００３の既存のマッピングと矛盾するため、無効である。
【００３３】
検証プロセスは、さまざまな技法を使用してトリガすることができる。例えば、ユーザは、記録の集合体に対する提案された変更を検証することを検証エンジン１１０（図１）に指示する「変更を検証する」コントロールを起動することができる。また、検証プロセスは、ユーザインターフェース（例えば、環境４００Ａ、４００Ｂ）に変更が入力された後でトリガすることもできる。ある例では、検証プロセスは、リアルタイムで起こり得、ユーザがユーザインターフェースに変更を入力する（例えば、タイプする）と、記録の集合体に対する変更を検証することができる。したがって、検証プロセスは、格納された（例えば、外部に格納された）記録の集合体、格納された未定の記録変更のセット（例えば、変更セット）およびユーザインターフェースに現れるが、変更セットとして未だ保存されていない、または記録の集合体に未だ適用されていない変更に対して、提案された変更を検証することができる（例えば、ユーザインターフェースにおける第１の変更は、未だ実施されていない、または変更セットとして未だ保存されていないユーザインターフェースにおける他の変更に対して検証することができる）。
【００３４】
提案された変更が無効になった後、矛盾する行４０９は、そうでなければＰ００２以外のソース値を有する行を抑制することになるフィルタ４０２を適用するにもかかわらず、環境４００Ｂにおいてレンダリングすることができる。この場合、矛盾する行４０９は、無効な提案された変更を表す違反する行（行４１０）に隣接してレンダリングされる。それに加えて、１つまたは複数の通知４１４、４１６を生成して、無効な提案された変更にユーザの注目を集めることができる。無効な提案された変更を訂正するため、ユーザは、違反した検証規則を満たすため、提案された変更の削除、または、提案された変更および／もしくは矛盾する値の修正のいずれかを行うことができる。
【００３５】
また、環境４００Ｂは、ユーザによって起動され得る保存コントロール４１８と、保存＆提出コントロール４２０とを含む。ある例では、保存コントロール４１８の起動は、ユーザによって入力されたいかなる提案された変更も保存するが、提案された変更を記録セットに適用することはない（例えば、保存コントロール４１８の起動に応じて、記録セットに関連するデータが変更されることはない）。代わりに、保存コントロール４１８の起動により、記録セットに未だ適用されていない保存された提案された変更（例えば、図１に示される未定の記録変更１１４）を含むファイル（例えば、変更セット）が生成され得る。保存＆提出コントロール４２０は、提案された変更の保存と記録セットへのそれらの適用の両方を行うためにユーザによって起動され得る。したがって、提案された変更が有効であると決定されれば（例えば、図２に関連して説明されるプロセス２００によって）、提案された変更に従って記録セットが変更されることになる。ある例では、ユーザは、変更セットをさらに編集するため、または、変更セットで示される変更を実施するため、変更セットにアクセスすることができる。記録の集合体への変更セットの実施は、プロセス２００（図２）と同様の検証プロセス次第である。変更セットを実施する（例えば、変更セットの提案された変更を記録の集合体に適用する）と、変更セットは提案された変更１０４を表し得、未定の記録変更１１４は有効になった変更セットとは異なる１つまたは複数の変更セットであり得る。
【００３６】
上記で説明される記録の集合体に対する変更を管理するための技法は、コンピュータ上で実行するためのソフトウェアを使用して実施することができる。例えば、ソフトウェアは、１つまたは複数のプログラムされたまたはプログラム可能なコンピュータシステム（それは、分散型、クライアント／サーバまたはグリッドなどのさまざまなアーキテクチャのものである）上で実行する１つまたは複数のコンピュータプログラムの手順を形成し、コンピュータシステムはそれぞれ、少なくとも１つのプロセッサと、少なくとも１つのデータ格納システム（揮発性および不揮発性メモリならびに／または格納要素を含む）と、少なくとも１つの入力デバイスまたはポートと、少なくとも１つの出力デバイスまたはポートを含む。ソフトウェアは、例えば、データフローグラフの設計および構成に関連する他のサービスを提供する大規模なプログラムの１つまたは複数のモジュールを形成することができる。グラフのノードおよび要素は、コンピュータ可読媒体に格納されたデータ構造、または、データリポジトリに格納されたデータモデルに適合する他の組織化されたデータとして実装することができる。
【００３７】
ソフトウェアは、汎用または特殊用途のプログラム可能なコンピュータによる読み取りが可能なＣＤ−ＲＯＭなどの記憶媒体上で提供されても、ネットワークの通信媒体上で、ソフトウェアが実行されるコンピュータに送達されてもよい（伝播信号で符号化される）。機能のすべては、特殊用途のコンピュータ上で、または、コプロセッサなどの特殊用途のハードウェアを使用して実行することができる。ソフトウェアは、ソフトウェアによって指定されるコンピューテーションの異なる部分は異なるコンピュータによって実行される分散様式で実施することができる。それぞれのそのようなコンピュータプログラムは、好ましくは、汎用もしくは特殊用途のプログラム可能なコンピュータによる読み取りが可能な記憶媒体もしくはデバイス（例えば、ソリッドステートメモリもしくは媒体、または、磁気もしくは光媒体）上に格納されるか、または、同記憶媒体もしくはデバイスにダウンロードされるが、それは、コンピュータシステムで記憶媒体もしくはデバイスを読み取り、本明細書に記載される手順を実行する際にコンピュータを構成および動作するためである。また、本発明のシステムは、コンピュータ可読記憶媒体として実装され、コンピュータプログラムを用いて構成されるものと考慮され得、そのように構成された記憶媒体は、特定の事前に定義された様式でコンピュータシステムを動作させ、本明細書に記載される機能を実行する。
【００３８】
本発明の多くの実施形態について説明してきた。それにもかかわらず、本発明の精神および範囲から逸脱することなく、さまざまな変更を行うことができることが理解されよう。例えば、上記で説明されたステップのいくつかは、順番に依存しないものであり得、したがって、説明されている順番とは異なる順番で実行することができる。
【００３９】
前述の説明は、例示を意図するものであり、本発明の範囲を限定するものではなく、本発明の範囲は、添付の特許請求の範囲によって定義されることを理解されたい。例えば、上記で説明された多くの機能ステップは、処理全体に実質的に影響を与えることなく、異なる順番で実行することができる。他の実施形態は、以下の特許請求の範囲内にある。
【図１】
0005940560.tif 000002
【図２】
0005940560.tif 000003
【図３】
0005940560.tif 000004
【図４Ａ】
0005940560.tif 000005
【図４Ｂ】
0005940560.tif 000006