JP6567043B2 - 階層的なエンティティのための計算の管理 - Google Patents

階層的なエンティティのための計算の管理 Download PDF

Info

Publication number
JP6567043B2
JP6567043B2 JP2017512761A JP2017512761A JP6567043B2 JP 6567043 B2 JP6567043 B2 JP 6567043B2 JP 2017512761 A JP2017512761 A JP 2017512761A JP 2017512761 A JP2017512761 A JP 2017512761A JP 6567043 B2 JP6567043 B2 JP 6567043B2
Authority
JP
Japan
Prior art keywords
attribute
entity
expression
referenced
computing system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017512761A
Other languages
English (en)
Other versions
JP2017532652A (ja
Inventor
クレイグ ダブリュー. スタンフィル
クレイグ ダブリュー. スタンフィル
リチャード シャピロ
リチャード シャピロ
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2017532652A publication Critical patent/JP2017532652A/ja
Application granted granted Critical
Publication of JP6567043B2 publication Critical patent/JP6567043B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Paper (AREA)
  • Circuits Of Receivers In General (AREA)
  • Indicating Measured Values (AREA)
  • User Interface Of Digital Computer (AREA)

Description

関連出願の相互参照
本出願は、2014年9月3日に出願した米国特許出願第62/045,108号明細書の優先権を主張するものである。
この説明は、階層的なエンティティのための計算を管理することに関する。
コンピューティング環境内のさまざまなエンティティが複数の値を有するデータを表すことができるさまざまな方法が、存在する。一部のコンピューティング環境は、一連の値がベクトルの要素としてデータ構造に記憶されるベクトルエンティティを与える。そのとき、ベクトルエンティティは、単一の記号列(symbolic string)によって式(expression)内で記号的に参照され得る。表計算などの一部のコンピューティング環境は、グリッド若しくはテーブルの行として、又はグリッド若しくはテーブル自体として、多値エンティティの明示的な視覚的表現を提供する。一部のコンピューティング環境においては、異なるエンティティが、例えば、1つのエンティティが任意の数の「子エンティティ」(又は「下位エンティティ」と呼ばれる)に関連付けられる可能性があり、所与の子エンティティがその他の子エンティティに対する「親エンティティ」である可能性がある階層的関係を互いに有する可能性がある。
複数のエンティティを含む計算を表す式を評価するために、コンピューティング環境は、その式が規則に則している(つまり、式がエラーを引き起こすことなく評価され得る)のか又は規則に違反している(つまり、式がエラーを引き起こすことなく評価され得ない)のかを決定する「適合性(conformability)」の概念を有する可能性がある。特に、適合性は、異なるエンティティが式内で特定の方法で操作され得るか否かを決定する可能性がある。例えば、第1のベクトルが第2のベクトルに加えられている式において、適合性は、2つのベクトルが同じ数の要素を有することを必要とする可能性がある(その場合、第2のベクトルは第1のベクトルに「適合する」)。
一態様においては、概して、コンピューティングシステムが、階層に従って関連付けられる複数のエンティティを表すエンティティデータを記憶するデータストレージシステムであって、少なくとも1つのルートエンティティが、階層の最も高いレベルにあり、1又は2以上のエンティティが、階層の最も高いレベル未満の1又は2以上のレベルにあり、ルートエンティティよりも低いレベルの各エンティティが、単一のエンティティの子エンティティであり、1又は2以上のエンティティが、それぞれ、複数のインスタンス、及びインスタンスの各々に関するそれぞれの要素を有する少なくとも1つの属性を有する、データストレージシステムを含む。コンピューティングシステムは、1又は2以上の引数(argument)の1又は2以上の関数をそれぞれが表現する1又は2以上の式を含む入力データを受け取るための入力デバイス又はポートであって、引数の1又は2以上が、エンティティデータ内に表されたエンティティの属性を参照する、入力デバイス又はポートと、入力データに含まれる式を処理するように構成された少なくとも1つのプロセッサとをさらに含む。処理することは、式を分析して、式の引数によって参照される1若しくは2以上の属性の各々に関して、(1)属性のエンティティの階層内の位置、及び(2)属性を参照する引数に適用された関数の結果の要素の数のうちの少なくとも1つを決定すること、及び式を分析した結果に基づいて式を評価するか又はエラーを示すことを含む。
態様は、以下の特徴のうちの1又は2以上を含み得る。
入力データは、エンティティデータ内に表された第1のエンティティの第1の属性の1又は2以上の要素の値を定義する第1の式を含む。
第1の式は、エンティティデータ内に表された第2のエンティティの第2の属性を参照して第1の属性の1又は2以上の要素の値を定義する。
コンピューティングシステムは、トランザクション処理システムを含む。
第1のエンティティは、トランザクション処理システムにおける異なる購入に対応するインスタンスを有し、第2のエンティティは、トランザクション処理システムにおける異なる顧客に対応するインスタンスを有する。
処理することは、第1の式を評価した後、第1の属性の1又は2以上の要素の値を表すようにエンティティデータを更新することをさらに含む。
少なくとも1つの式内の少なくとも1つの関数は、2又は3以上のオペランドに対して働く1又は2以上の演算子を含み、オペランドのうちの2又は3以上は、記憶されたデータによって表されるエンティティの属性を参照する。
式を分析することは、参照される属性がただ1つのベクトル値の参照される属性及び1又は2以上のスカラ値の参照される属性を含むと決定することをさらに含み、式を評価することは、ベクトル値の参照される属性のあらゆる要素のためにスカラ値の参照される属性を複製することを含む。
式を分析することは、参照される属性が複数のベクトル値の参照される属性を含むと決定することと、ベクトル値の参照される属性の2又は3以上の階層内のそれぞれの位置を比較することとをさらに含む。
処理することは、ベクトル値の参照される属性の2又は3以上が階層内の異なるそれぞれの位置を有することに基づいてエラーを示すことを含む。
前記属性のエンティティの階層内の位置を決定することは、ルートエンティティから始まる親−子関係によって関連付けられるエンティティの連鎖の中を通る属性のエンティティまでのパスに基づく属性に関するコンテキストを決定することを含む。
式を分析することは、式の引数によって参照される少なくとも第1の属性に関して、第1のエンティティの先祖であるエンティティの第2の属性のコンテキストを昇格させる(promote)ことを含む昇格(promotion)手順を実行することをさらに含み、第2の属性は、式の引数によって参照され、第2の属性のコンテキストを昇格させることは、第1の属性のコンテキストによって第2の属性のコンテキストを置き換えることを含む。
処理することは、第1の式の第1の引数によって参照される第1の属性が第1の式の第2の引数によって参照される第2の属性と異なるコンテキストを有することに基づいてエラーを示すことを含む。
式を分析することは、それぞれの引数によって参照される2又は3以上の属性の各々に関して、属性のエンティティの階層内の位置を決定することを含む。
式を分析することは、決定された位置を比較することと、位置のそれぞれの引数に適用されている関数に関連する決定された位置の少なくとも2つの間の不一致(incompatibility)に応答してエラーを示すこととを含む。
式を分析することは、引数によって参照される1又は2以上の属性の各々に関して、属性を参照する引数に適用される関数の結果の要素の数を決定することを含む。
式を分析することは、集約関数の引数によって参照される少なくとも第1の属性に関して、集約関数の結果の要素の数を決定することと、第1の属性のエンティティに関してスカラ値に対応しない結果に応答して、結果が第1の属性のエンティティに関してスカラ値に対応するまで集約関数の適用を1又は2回以上繰り返すこととを含む。
別の態様においては、概して、方法が、階層に従って関連付けられる複数のエンティティを表すエンティティデータをデータストレージシステムに記憶するステップであって、少なくとも1つのルートエンティティが、階層の最も高いレベルにあり、1又は2以上のエンティティが、階層の最も高いレベル未満の1又は2以上のレベルにあり、ルートエンティティよりも低いレベルの各エンティティが、単一のエンティティの子エンティティであり、1又は2以上のエンティティが、それぞれ、複数のインスタンス、及びインスタンスの各々に関するそれぞれの要素を有する少なくとも1つの属性を有する、ステップを含む。方法は、1又は2以上の引数の1又は2以上の関数をそれぞれが表現する1又は2以上の式を含む入力データを入力デバイス又はポートを介して受け取るステップであって、引数の1又は2以上が、エンティティデータ内に表されたエンティティの属性を参照する、ステップと、入力データに含まれる式を少なくとも1つのプロセッサを使用して処理するステップとをさらに含む。処理するステップは、式を分析して、式の引数によって参照される1若しくは2以上の属性の各々に関して、(1)属性のエンティティの階層内の位置、及び(2)属性を参照する引数に適用された関数の結果の要素の数のうちの少なくとも1つを決定すること、及び式を分析した結果に基づいて式を評価するか又はエラーを示すことを含む。
別の態様においては、概して、ソフトウェアが、コンピュータ可読媒体に非一時的形態で記憶される。ソフトウェアは、コンピューティングシステムに、階層に従って関連付けられる複数のエンティティを表すエンティティデータをデータストレージシステムに記憶することであって、少なくとも1つのルートエンティティが、階層の最も高いレベルにあり、1又は2以上のエンティティが、階層の最も高いレベル未満の1又は2以上のレベルにあり、ルートエンティティよりも低いレベルの各エンティティが、単一のエンティティの子エンティティであり、1又は2以上のエンティティが、それぞれ、複数のインスタンス、及びインスタンスの各々に関するそれぞれの要素を有する少なくとも1つの属性を有する、記憶することを行わせるための命令を含む。ソフトウェアは、コンピューティングシステムに、1又は2以上の引数の1又は2以上の関数をそれぞれが表現する1又は2以上の式を含む入力データを入力デバイス又はポートを介して受け取ることであって、引数の1又は2以上が、エンティティデータ内に表されたエンティティの属性を参照する、受け取ることと、入力データに含まれる式を少なくとも1つのプロセッサを使用して処理することとを行わせるための命令をさらに含む。処理することは、式を分析して、式の引数によって参照される1若しくは2以上の属性の各々に関して、(1)属性のエンティティの階層内の位置、及び(2)属性を参照する引数に適用された関数の結果の要素の数のうちの少なくとも1つを決定すること、及び式を分析した結果に基づいて式を評価するか又はエラーを示すことを含む。
態様は、以下の利点のうちの1又は2以上を含む可能性がある。
計算を管理するための技術は、階層的なエンティティ(つまり、異なるエンティティは階層に従って互いに関連付けられる)に対する計算を表す式を定義し、評価する際の効率及び柔軟性を与える。概して、階層は、頂点がエンティティを表し、辺がエンティティの間の関係を表す、有向辺によって接続された頂点のグラフ(例えば、有向非循環グラフ(DAG,directed acyclic graph))として表され得る。各頂点は、階層の特定のレベルにある。少なくとも1つのエンティティ(例えば、階層が木構造を有する場合の「ルートエンティティ」)が、階層の最も高いレベルにあり、1又は2以上のエンティティが、階層の最も高いレベル未満の1又は2以上のレベルにある。最も高いレベル未満のレベルの各エンティティは、単一の親エンティティの子エンティティである。いかなる子エンティティも持たないエンティティは、「葉エンティティ」である。ルートから同じ数の世代を有するエンティティは、階層の同じレベルにあると考えられ得る。一部の実装形態において、エンティティは、それらのエンティティが「兄弟」である(つまり、同じ親エンティティを有する)場合、階層の同じレベルにあるとしか考えられない。概して、本明細書において使用されるとき、より高いレベルのエンティティは、より低いレベルのエンティティよりもルートエンティティに近い。(代替的に、等価な説明において、ルートエンティティが、階層の最も低いレベルにあると考えられる可能性があり、用語「より高い」及び「より低い」が、より低いレベルのエンティティがより高いレベルのエンティティよりもルートに近いように逆に解釈される可能性がある。)下でより詳細に説明される分析モジュールは、どんな種類の計算が実行されるべきかを決定し、階層的なエンティティの間の適合性の違反及びその他の潜在的なエラーについて式のエディタ内でフィードバックを提供するために式を効率的に分析することができる。階層的に編成されたデータを管理し、処理するコンピューティングシステムに関しては、式を定義するための効果的な構文を提供するが、潜在的に大量な結果データに影響を与える可能性があるエラーが引き起こされないことを保証するためのメカニズムも含むユーザインターフェース内で計算が効率的にプログラミングされる方法を有することが有用である。例えば、オンライン商業トランザクション処理システム(例えば、ネットワークに接続され、トランザクションを表すエンティティのインスタンスを処理するように構成されたコンピューティングシステム)は、式がさまざまな異なる種類のトランザクション値を参照することを可能にし得る。例えば、トランザクション値は、異なる購入に対応する値及び異なる顧客に対応する値、(例えば、旅行、パッケージの納品などに関する)予約に対応する値、又は価格及び関連する量に対応する値を含み得る。そのようなシステムにおいては、複雑な式を許容するのに十分なだけ柔軟であるが、結果に入り込む可能性がある微妙なエラーを検出し、防止することができる適合性の形態をサポートすることが有用である。
本発明のその他の特徴及び利点は、以下の説明及び請求項から明らかになるであろう。
階層的なエンティティを含む計算を管理するためのコンピューティングシステムのブロック図である。 エンティティを定義し、見るためのユーザインターフェースの例を示す図である。 適合性チェック手順の流れ図である。
図1は、計算技術が使用され得るコンピューティングシステム100の例を示す。システム100は、ユーザインターフェース104を提供する実行環境102を含み、ローカルストレージ106を有する。ユーザ108は、ユーザインターフェース104内で式を規定し、それらの式110の表現が、ローカルストレージ106に記憶される。実行環境102は、式110(又は式の一部)を分析してそれらの式が規則に則しているかどうかを決定するための分析モジュール112と、分析モジュール112によって規則に則しているものとして確認された式(又は式の一部)を評価するための評価モジュール114とを含む。式に含まれるのは、1又は2以上の引数の任意の数の関数である。引数の一部は、ローカルストレージ106、又は実行環境102と通信するデータストレージシステム116などの別のアクセス可能な場所に記憶されたエンティティデータ内に表されたエンティティの属性を参照する可能性がある。
実行環境102は、例えば、UNIXオペレーティングシステムのバージョンなどの好適なオペレーティングシステムの制御下の1又は2以上の多目的コンピュータ上でホストされる可能性がある。例えば、実行環境102は、ローカルの(例えば、対称型マルチプロセッシング(SMP,symmetric multi-processing)コンピュータなどのマルチプロセッサシステム)又はローカルに分散された(例えば、クラスタ若しくは超並列処理(MPP,massively parallel processing)システムとして接続された複数のプロセッサか、或いは遠隔の又は遠隔に分散された(例えば、ローカルエリアネットワーク(LAN,local area network)及び/若しくは広域ネットワーク(WAN,wide-area network)を介して接続された複数のプロセッサ)か、或いはこれらの任意の組合せかのいずれかの複数の中央演算処理装置(CPU,central processing unit)或いはプロセッサコアを用いるコンピュータシステムの構成を含むマルチノード並列コンピューティング環境を含む可能性がある。
データストレージシステム116は、1若しくは2以上のストレージデバイス、又はオンラインデータストリーム若しくはオンラインサービスへの接続を含み、それらのストレージデバイス又は接続の各々は、さまざまなフォーマット(例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブフォーマット)のいずれかでデータを記憶又は提供し得る。データストレージシステム116を提供するストレージデバイスは、実行環境102のローカルにあり、例えば、実行環境102をホストするコンピュータに接続されたストレージ媒体(例えば、ハードドライブ118)に収容される可能性があり、又は実行環境102のリモートにあり、例えば、(例えば、クラウドコンピューティングインフラストラクチャによって提供される)リモート接続を介して実行環境102をホストするコンピュータと通信するリモートシステム(例えば、メインフレーム120)上でホストされる可能性がある。分析モジュール112による式110の分析、又は評価モジュール114による式110の評価は、明示的なユーザ入力又はサービス要求などのその他の形態の入力に応答して開始される可能性がある。サービス要求は、階層的なエンティティを表すエンティティデータ、又はそのようなエンティティデータへの参照を含む可能性がある。例えば、XMLで符号化されたサービス要求が、階層的エンティティデータを含む可能性があり、又はサービス要求が、データストレージシステム116に記憶されたエンティティデータを参照する可能性がある。
ローカルストレージ106又はデータストレージシステム116に記憶されたデータは、階層的なエンティティとして式内で参照され得る何らかのデータを含む。エンティティは、独立して存在することができるか又は一意に特定され得る、情報領域(information domain)における特定の種類の任意の数のアイテム(item)のコレクション(collection)の抽象化と考えられる可能性がある。例えば、「Customer」エンティティが、データベースのテーブルによって、又は(区切られたレコードを有する)ファイルとして記憶されるデータセットによって表される可能性がある。データベースのテーブル又はデータセットのファイルの個々のレコード(又は「行」)は、それぞれ、例えば、商業データを管理するシステムにおいて会社の異なる顧客を表すCustomerエンティティの異なるインスタンスを表す可能性がある。エンティティは、特定のクラスのデータオブジェクトのコレクションなどの任意のその他の種類のデータ構造によって表される可能性もあり、エンティティの異なるインスタンスは、データオブジェクトの異なるインスタンスに対応する。
各エンティティは、任意の数の属性を有する可能性がある。例えば、データベースのテーブルによって表されるエンティティにおいては、テーブルのフィールド(又は「列」)が、そのエンティティの特定の属性に対応する特定の種類のデータ(例えば、所定のデータ型を有する変数)を記憶するために定義される可能性がある。例えば、Customerエンティティに関するテーブルは、Customerエンティティのインスタンスに関連する値を記憶するためのフィールドを含む可能性があり、インスタンスの各々は、テーブル内の異なるレコードによって表される。エンティティの特定のインスタンスに関しては、そのインスタンスの属性のいずれかが、(スカラ値又は値のベクトル若しくは下位レコードを含む)特定の値を有する可能性があり、或いはヌル値を有するか又は空のままにされる可能性がある。エンティティの属性がスカラと考えられるのか又はベクトルと考えられるのかは、存在するエンティティのインスタンスの数に対応する。したがって、テーブルによって表されるエンティティの例においては、テーブルが単一の行を含むとすれば、各フィールドは、そのエンティティに関するスカラ値の属性を表すことになる。テーブルが複数の行を含むとすれば、各フィールドは、そのエンティティに関するベクトル値の属性の要素を表すことになり、各ベクトルの要素の数(すなわち、ベクトルの長さ)は、テーブルの行の数に等しい。
また、各エンティティは、任意の数の子エンティティを有する可能性がある。子エンティティは、(エンティティの特定のインスタンスに関して単一のインスタンスを有するだけである下位レコードとは異なり)それ自体、親エンティティの各インスタンスに関して任意の数のインスタンスを有する可能性がある。異なるエンティティの間の階層的な親−子関係は、さまざまな方法のいずれかで形成され得る。一部の実施形態において、親−子関係は、親エンティティに関するテーブルの行に対応する外部キー値を記憶する子エンティティに関するテーブルのフィールドを使用して形成される可能性がある。その他の実装形態において、親−子関係は、親及び子エンティティを表すデータ構造の間のポインタを使用して形成される可能性があり、又は親エンティティを表すデータ構造内に埋め込まれた子エンティティを表すデータ構造の入れ子が、存在する可能性がある。各子エンティティは、ルートエンティティから始まる親−子関係によって関連付けられるエンティティの連鎖の中を通る特定のパス(階層内のその子エンティティの位置を規定するその子エンティティの「コンテキスト」とも呼ばれる)を有する。階層の最も低いレベルにあるのは、いかなる子エンティティも持たない葉エンティティである。各エンティティは、葉エンティティであるか又は親エンティティであるかのどちらかである。
エンティティの異なるインスタンスが一意に特定され得ることを可能にするために、エンティティの1又は2以上の属性が、エンティティに関する一意キーの一部である「キー属性」として特定される可能性がある。場合によっては、エンティティは、単一のキー属性を有する。例えば、「Custid」とラベル付けされたフィールドは、Customerエンティティのインスタンスを表す各レコードに一意である値を記憶し得る。そのような単一のキーフィールドは、「単純キー(simple key)」と呼ばれることがある。場合によっては、エンティティが、(「複合キー」とも呼ばれる)一意キーを一緒に形成する複数のキー属性を有する。例えば、フィールド「first_name」と、「last_name」と、「SSN」との組合せ(例えば、連結)は、Accountsエンティティのインスタンスを表すレコードを一緒に一意に特定するキー属性として働く可能性がある。(「候補キー」とも呼ばれる)一意の値を有する複数のフィールドが存在し、それらのフィールドのうちの1つ(又はフィールドの組合せ)が、(「主キー」とも呼ばれる)使用される一意キーとして使用するために選択され得る。(「サロゲートキー」とも呼ばれる)一意キーの一部として働く値を記憶するためにレコードにフィールドが追加されることがある。
ユーザインターフェース104は、ディスプレイスクリーン上のグラフィカルユーザインターフェースとして提示される可能性がある。図2Aは、ユーザ108が階層内のエンティティ及びそれらのエンティティの互いの関係を定義し、見ることを可能にするために与えられ得るユーザインターフェース200の視覚的構成の例を示す。ユーザインターフェース200は、(1)属性のデータ型のリストを含む別々の字下げされたセクションにおいて定義された異なるエンティティを命名する見出しを含む左の部分202と、(2)対応するデータ型と位置を揃えられた属性名を含む右の部分204とを含む。一部の実施形態においては、階層内のすべてのその他のエンティティによってアクセスされ得るグローバル変数として働く属性を有する単一のインスタンスを有するルートエンティティが、設けられる。この例においては、「int」(すなわち、整数)型の「TaxRate」と命名された単一の属性を記載するセクション206Aにおいて定義されたルートエンティティが、設けられる。ルートエンティティは、セクション206Bにおいて定義された「Customer」と命名された単一の子エンティティを有する。さらに、Customerエンティティは、3つの属性、すなわち、(「string」型の)「Custid」、(「int」型の)「Discount」、及び(「string」型の)「PostalCode」を有する。
セクションの字下げは、階層内の対応するエンティティのレベルに対応する(つまり、同じ量だけ字下げされたすべてのセクションは、階層内の同じレベルにある)。同じ量だけ字下げされ、特定のエンティティに関するセクションよりも下にある任意の数の連続的なセクションは、その特定のエンティティの子であるエンティティを定義する。この例において、Customerエンティティは、2つの子エンティティ、すなわち、(1)セクション206Cにおいて定義される「Purchase」と命名されたエンティティと、セクション206Dにおいて定義される「Payment」と命名されたエンティティとを有する。Purchaseエンティティは、3つの属性、すなわち、(「int」型の)「Quantity」、(「number」型の)「UnitPrice」、及び(「date」型の)「PurchDate」を有する。Paymentエンティティは、2つの属性、すなわち、(「number」型の)「PayAmount」及び(「date」型の)「PayDate」を有する。
システムがサロゲートキーを割り当てることによって自動的にか、又はユーザが主キーのために1若しくは2以上の属性を指定する(例えば、CustidをCustomerエンティティのためのエンティティキーとして指定する)ことによってかのどちらかで、エンティティキーが各エンティティに割り当てられ得る。ユーザが一意でないエンティティキーとして使用される属性を指定する場合、システムは、それをエラーとして示すことができる。ユーザがエンティティキーとして属性を指定しない場合、エンティティキーが親エンティティの特定のインスタンスに関連するキー値の空間内で一意であることを保証するようにしてサロゲートエンティティキーが各インスタンスのためにデフォルトで生じさせられる可能性がある。このサロゲートエンティティキーは、ユーザから隠される可能性があり、又は(例えば、名前「SurrogateKey」を有する)宣言された属性としてユーザインターフェース200に明示的に含まれ、ユーザが式内でサロゲートエンティティキーを参照することを可能にする可能性がある。エンティティが「インデックス付き」であるものとして規定される場合、エンティティキーが、0から始まり、増加する(つまり、間をまったく空けない)連続する整数として割り当てられる可能性があり、したがって、エンティティのインスタンスは、Customer[i]などの構文を使用して参照される可能性があり、ここで、iは、エンティティキーの整数値である。加えて、エンティティが順序付けられているという特性を有する場合、はっきりと定義された順序を有する属性のうちの1つが順序を与えるものとして指定される可能性がある。順序は、一意の値を有するキーを使用する(例えば、CustomerエンティティのためのCustidによる)完全な順序付けである可能性があり、又は順序は、(例えば、CustomerエンティティのためのPostalCodeによる)部分的な順序付けである可能性がある。
図2Bは、(図2Aのように、階層内のエンティティ及びそれらのエンティティの互いの関係を定義し、見ることに加えて)ユーザ108が特定の属性に関する式を定義することを可能にするために与えられ得るユーザインターフェース220の視覚的構成の例を示す。例示を目的として、この例のユーザインターフェース220は、前の例の対応するセクション206A〜206D内のエンティティと同様のエンティティに関するセクション228A〜228Dを含む。ユーザインターフェース220は、(1)属性のデータ型のリストを含む別々の字下げされたセクションにおいて定義された異なるエンティティを命名する見出しを含む左の部分222と、(2)対応するデータ型と位置を揃えられた属性名を含む真ん中の部分224と、(3)(1又は2以上の)その他の属性の(1又は2以上の)値によって定義される任意の属性に関する式を含む右の部分226とを含む。そのような式を使用して定義された属性は、「定義属性(defined attribute)」と呼ばれ、対応するエンティティのインスタンスは、与えられた式に従って計算されるその定義属性の値を有することになる。例えば、定義属性の値は、さまざまなエンティティを含む計算が評価されるときに計算又は再計算される可能性がある。そのような式を持たない属性は、「具体的属性(concrete attribute)」と呼ばれ、対応するエンティティのインスタンスは、いかなるその他の属性も参照せずに値を直接与えられる。2つ以上の属性が式内で参照される場合、分析モジュール112は、下でより詳細に説明されるように、それらの「参照される属性」が適合するかどうかを決定する。この例においては、ルートエンティティのCustomerエンティティとPurchaseエンティティとが、前の例の具体的属性に加えて、その他の属性を参照する式を用いて定義される定義属性を与えられた。
分析モジュール112は、式内の任意の数の引数に適用されなければならない任意の数の関数を特定することができる。例えば、式は、引数のセットに適用される単一の関数、又はその他の関数の結果に適用される関数の合成を含む可能性がある。本明細書において使用されるとき、用語「関数」は、幅広く使用され、関数の引数である任意の数のオペランドに適用される任意の演算を指す可能性があり、又はたとえその関数が決まった演算ではないとしても、任意の数の引数(引数がないことも含む)を入力に取るように定義された任意の計算を指す可能性がある。式内で使用するためにサポートされ得る演算の種類の例は、さまざまなプログラミング言語の単項演算子、二項演算子、及び三項演算子(例えば、加算、減算、乗算、除算、モジュラス、左又は右シフト)、等しいこと又は等しくないことのさまざまなテスト、スカラ値演算(例えば、指数、対数)の適用を含む。加えて、ユーザが式内で使用したい可能性がある任意のカスタム関数をユーザが定義することを可能にするためのプログラミング言語が提供される可能性がある。
定義属性の値がどのようにして計算されるべきかを定義する式をユーザ108が提供した後、分析モジュール112は、式を分析して、式が規則に則しているのか又は規則に違反しているのかを決定する。適合性(又はその欠如)に加えて、その他のエラー又は不整合が、分析モジュール112によって認識され得る。参照される属性は、具体的属性又は定義属性のどちらかである可能性があるが、参照される属性が定義属性である場合、いかなる循環参照もあってはならない。例えば、第1の属性を定義する式が第2の属性を参照する場合、その第2の属性は、第1の属性を参照する式によって定義(つまり、循環参照)されてはならない。
第1のエンティティの属性を定義する式が、第1のエンティティの「先祖エンティティ(ancestor entity)」である第2のエンティティの属性を参照する可能性があり、第1のエンティティの「先祖エンティティ」であるとは、その第2のエンティティが、第1のエンティティとルートエンティティとの間の親−子関係の連鎖の中にあることを意味する。例えば、AmountDueに関する式は、(Customerエンティティからの)Discount属性及び(ルートエンティティからの)TaxRate属性を参照する。属性値が参照されているその先祖エンティティの特定のインスタンスが、存在することになる。ルートエンティティの単一のインスタンスの属性は、階層内のいずれのエンティティのいずれの属性に関するいずれの式内においても同じ値を有する。式は、定義属性と同じレベルのPurchAmount、1つ上のレベルのDiscount、及び2つ上のレベルのTaxRateを参照するAmountDueに関する式のように、異なるレベルの異なる属性に対する参照を含む可能性もある。
一部の参照される属性は、それらの属性のそれぞれのエンティティの複数のインスタンスからの値を有するベクトル値属性である。そのようなベクトル値属性に適用され得る一種の演算は、(その属性のエンティティのそれぞれのインスタンスに含まれる)その属性の値のすべてを表すベクトルの要素に対して働く集約演算(aggregation operation)である。場合によっては、集約演算は、スカラの結果を生成する。例えば、TotalDueに関する式は、sum(AmountDue)であり、sum(AmountDue)は、Customerエンティティの特定のインスタンスに関して、Purchase子エンティティのインスタンス全体にわたってAmountDueの値を足し、Customerエンティティの特定のインスタンスに関するスカラの結果を生成する。より広く、集約演算は、集約されているベクトルのレベルから階層内で1つ上のレベルにある結果をもたらす、コンテキスト内の最後のエンティティを取り除くことと考えられ得る。ルートエンティティのTotalTax属性に関する式は、TaxRate及びPurchAmount(ルートエンティティの孫)の積である被加数を有する合計を含む。したがって、Purchaseの値は、Purchaseエンティティのインスタンス全体で合計され、結果は、Customerエンティティ(ルートエンティティの子)のインスタンス全体のベクトルである。
代替的に、一部の集約演算は、対応するエンティティの特定のインスタンスに関してスカラの結果が得られるまで、オペランドに対して繰り返し働く可能性がある。例えば、上の合計のベクトル値の結果の値が、合計され、TotalTax属性の値としてスカラを与える可能性がある。この繰り返しの集約は、例えば、属性がそれらの属性のエンティティに関してスカラ値であることを必要とする特定の実施形態において実行される可能性がある。
属性の値のすべてに対して働く、ベクトル値の属性に適用され得る別の種類の演算は、ベクトル値の結果を返す演算である。例えば、running_sum(<vector>)と呼ばれる演算が、<vector>の始まりと現在の要素との間の<vector>の要素の部分的な合計を生成する演算として定義される。したがって、running_sum({1, 2, 3, 4})を含んでいたとした式は、結果として得られるベクトル{1, 3, 6, 10}を生じることになる。属性がそれらの属性のエンティティに関してスカラ値であることを必要とする実装形態においては、そのような演算は、スカラの結果を得るためにさらなる演算が適用されることをやはり必要とする。
ユーザインターフェース220内で与えられた式は、属性の定義と属性の参照との間の依存関係に基づいて暗黙的に順序付けられる。この順序は、ユーザインターフェース220内の空間的な順序によって制約されない。例えば、TotalDueの定義は、AmountDueを参照しており、これは、循環定義が存在しないので規則に則している。AmountDueがユーザインターフェース220内でより下の方で定義されていることは、問題にならない。定義属性に関する式が評価される順序を制約するための部分的な順序付けを決定するために、トポロジカルソートが使用され得る。トポロジカルソートは、循環参照が存在しないことを保証するためにも使用され得る。
属性が式内で一意に参照され得るさまざまな方法が、存在する。属性名が一意である場合、分析モジュール112の一部の実装形態は、その属性をその属性の名前によってのみ認識するように構成される可能性がある。(兄弟エンティティ(sibling entity)が一意の名前を有すると仮定して)たとえ異なるエンティティの属性が同じ名前を有するとしても属性が一意に参照され得る別の方法は、式内に属性のコンテキストを含めることによる。例えば、ルートエンティティの子から始め、所望の属性のエンティティが到達されるまで各エンティティ名の後にドット(「.」)を含めて、コンテキストの各エンティティが命名される「適格な名前(qualified name)」を提供するために、「ドット表記」が使用され得る。例えば、PurchDate属性は、たとえ別のエンティティがPurchDateと呼ばれる属性を有していたとしても、適格な名前Customer.Purchase.PurchDateによって式内で曖昧性なく参照され得る。一部の実装形態においては、属性の潜在的に曖昧な「適格でない(non-qualified)」名前(すなわち、コンテキストのない単なる属性名)が、適格でない名前を含む式が現れたエンティティと同じエンティティに属すると解釈される可能性がある。例えば、Purchaseが(PurchAmountの代わりに)Amountと呼ばれる属性を有し、Paymentが(PayAmountの代わりに)Amountと呼ばれる属性を有するとすれば、AmountDueにおけるAmountに対する参照は、PaymentではなくPurchaseに属するものと自動的に解釈されることになる。しかし、TotalTax属性に現れる参照は、(PurchAmountの代わりに)適格な名前Customer.Purchase.Amountを含む必要がある。場合によっては、エンティティの属性のいずれも規定することなくそのエンティティ自体を参照することが有用である可能性があり、その場合、「Customer」と命名されたエンティティを参照するために「Customer[]」などの特別な表記が使用される可能性がある。この表記は、属性値のベクトルの特定の要素を選択するために使用される可能性もある。例えば、Customer.Discountは、Customerエンティティのインスタンス全体のベクトルであり、Customer[5].Discountは、Customerエンティティの第5のインスタンスのDiscount属性のスカラ値である。
式が規則に則しているのか又は規則に違反しているのかの決定は、参照される属性がスカラであるのか又はベクトルであるのか、及び参照されるベクトル属性の適合性に基づく。各エンティティは、任意の数の具体的属性及び任意の数の定義属性を有する可能性がある。エンティティの各属性(具体的又は定義)は、そのエンティティの各インスタンスに関するそれぞれの値を有する。したがって、第1のエンティティの特定のインスタンスに関して、第1の属性は、スカラである(単一の値を有する)可能性があるが、第1のエンティティの先祖のインスタンスに関しては、第1の属性は、ベクトルである(第1のエンティティの各インスタンスに関して1つずつ複数の値を有する)可能性がある。したがって、親エンティティの定義属性に関する式における子エンティティの属性に対する参照は、その子エンティティのインスタンス全体のベクトルである。一部の実装形態において、式を評価した結果は、属性がその式によって定義されているエンティティの特定のインスタンスに関してスカラであることを要求される。したがって、式は、これらのベクトルの要素に対して働く集約演算(例えば、sum、max)を含み得る。
システム100が適合性を保証するために使用する手順の一例は、(評価モジュール114によって実行される)評価が後に続く(分析モジュール112によって実行される)分析の1又は2以上のフェーズを含む。この手順は、式内に現れる特定の属性のコンテキストが「昇格させられる」初期ステップを含む可能性がある。例えば、適格な名前Customer.Purchase.AmountDueは、定義属性AmountDueに関するCustomer.Purchaseのコンテキストを有する。定義属性のこのコンテキストが、昇格手順において使用される。昇格させられる属性は、定義属性の祖先エンティティの属性である。したがって、この例においては、属性TaxRate及びCustomer.Discountが昇格させられる。属性は、その属性のコンテキストを定義属性のコンテキストによって置き換えて「昇格させられた名前」を生じさせることによって昇格させられ、これは、この例においては、Customer.Purchase.TaxRate及びCustomer.Purchase.Discountを生じる。昇格させられている名前と同じ名前を有するいずれの既存の属性によって引き起こされるいかなる曖昧性も、属性名に一時的な接頭辞又は接尾辞を加えることによるなどのさまざまな方法で解決され得る。
昇格ステップの後、分析モジュール112は、ベクトルである2又は3以上の参照される属性に対して実行される演算を式が含むかどうかを決定する。含む場合、そのような多ベクトル演算のそれぞれに関して、分析モジュール112は、ベクトル値の参照される属性の適合性を調べる。定義属性のエンティティのインスタンスに関して、祖先エンティティのいずれの昇格させられた属性も、又は定義属性自体と同じエンティティのいずれの属性も、それらの属性のそれぞれのエンティティの特定のインスタンスに由来するスカラ値を有する。一方、いずれかの祖先でないエンティティ(つまり、子孫エンティティ又はいとこエンティティ)の属性は、潜在的に、それらの属性のそれぞれのエンティティの複数のインスタンスに由来する値のベクトルを有する可能性がある。したがって、適合性に関して調べられる必要がある可能性があるのは、これらの祖先でないエンティティである。
2又は3以上のベクトル値の参照される属性が適合するかどうかを決定する次のステップは、それらの属性のコンテキストを比較することである。一部の実装形態において、比較は、2又は3以上の属性のそれぞれの一意の対に関して一回実行される。各対に関して、分析モジュール112は、(潜在的に昇格させられる)コンテキストが同一であるかどうか、又は一方が他方の接頭辞であるかどうかを決定する。これらの条件のどちらかが真である場合、参照される属性の対は適合する。これらの条件のどちらも真でない場合、参照される属性の対は適合しない。参照される属性のセット全体は、それらの属性がすべての対で互いに適合する場合に適合する。分析モジュール112が参照される属性が適合すると決定する場合、評価モジュール114は、式、又はそれらの参照される属性に対する演算を含む式の一部を評価する。そうでない場合、システム100は、適合性分析の結果に基づいて適合性エラーを(例えば、ユーザインターフェース220内の視覚的インジケータとして)示す。一部の実装形態において、2又は3以上の適合するベクトル値の属性に対する演算の結果が、コンテキストのうちで最長のものをそれ自体のコンテキストとして継承する。
分析モジュール112は、ベクトル値の参照される属性及びスカラ値の参照される属性の混合に対して働く演算の場合、適合性を調べる必要はない。例えば、追加的な演算が、ベクトルのあらゆる要素に(つまり、属性のエンティティのあらゆるインスタンスに関して)スカラを足すことによってベクトルとスカラを合計する可能性がある。一部の演算に関して、スカラ値の属性及びベクトル値の属性の混合は、オペランドとして許容されない可能性があり、分析モジュールが式を規則に違反するものとして特定することにつながる可能性がある。
図3は、システム100によって実行される可能性がある適合性チェック手順300の例の流れ図を示す。この例において、手順300は、式内の評価される潜在的な複数の関数を含むforループとして実装される。forループの前後に実行されるステップ(図示せず)が存在する可能性があり、さまざまな実装形態において、その他の分析及び/又は評価ステップがこの手順300に加えて実行される可能性がある。forループを使用して、分析モジュール112は、漸進的にそれらの関数の引数を分析して、(評価モジュール114によって)関数が適用される前に適合性を調べることができる。forループは、式内に表された1又は2以上の関数に対して繰り返される(302)。それぞれの特定された関数に関して、手順300は、関数の引数のすべてを特定する(304)。手順は、参照される属性を含むそれらの引数の数を数える(306)。2以上の参照される属性が存在する場合、手順300は、それらの複数の参照される属性のコンテキストを比較することによって適合性チェックを実行する(310)。1以下の参照される属性(つまり、0又は1つの参照される属性)が存在する場合、手順は、適合性チェック(310)を実行することなくforループの始めにループして戻る。参照される属性が適合しない場合、手順300は、エラーを示し(312)、forループを抜ける(314)。参照される属性が適合する場合、手順300は、関数を適用する(316)。ループ条件は、今適用された関数が式内の適用される最後の関数であるかどうかを調べる(318)。最後の関数である場合、手順300は、forループを抜ける(314)。最後の関数でない場合、手順300は、forループの始めにループして戻る。
さまざまな種類の集約又は選択演算が、ベクトルからスカラ値を生成するために式内で使用するためにサポートされる可能性があり、そして、それらのスカラ値は、その他のスカラ値とともに操作され得る。例えば、1つの種類の演算は、次の構文、すなわち、<vector> where <condition>を使用してベクトルをフィルタリングする。条件は、ベクトルの単一の要素に関してのみ真になると仮定される。この及びその他の演算子に関して、評価モジュール114は、演算がスカラの結果を生じることをランタイムで検証することができ、生じない場合、エラーを生成することができる。
一部の実装形態においては、さまざまな制限が、エンティティに課される可能性がある。場合によっては、それらの制限は、エンティティのコンテキストに影響を与え、したがって、エンティティの適合性に影響を与える。例えば、エンティティは、複数のインスタンスを有することを可能にされない子エンティティを有する可能性があるが、その子エンティティの単一のインスタンスは、独自の属性を有する可能性がある。そのような子エンティティに関するコンテキストは、その子エンティティの親のコンテキストと同じである(つまり、スカラ子エンティティは、属性として扱われる)。
一部の実装形態において、(属性がその他の属性の関数として定義され得るのと同様に)エンティティはその他のエンティティの関数として定義されることを可能にされる。例えば、エンティティは、その他のエンティティのunion、join、group by、又はrollup(又はその他の関係演算)として定義され得る。さまざまな関数が、結果のコンテキストを決定するための規則を有する可能性がある。
上述の階層的なエンティティのための計算を管理する手法は、好適なソフトウェアを実行するコンピューティングシステムを使用して、例えば、好適なソフトウェア命令を実行するプログラミング可能なコンピューティングシステムを用いて実装される可能性があり、又はフィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)などの好適なハードウェアで、若しくは何らかの混成の形態で実装される可能性がある。例えば、プログラミングされる手法において、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである可能性がある)1又は2以上のプログラミングされた又はプログラミング可能なコンピューティングシステム上で実行される1又は2以上のコンピュータプログラムのプロシージャを含み得る。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリに記憶されたデータモデルに準拠するデータ構造又はその他の編成されたデータとして実装され得る。
ソフトウェアは、CD−ROM又は(例えば、多目的若しくは専用のコンピューティングシステム若しくはデバイスによって読み取り可能な)その他のコンピュータ可読媒体などの有形の非一時的媒体上に提供される可能性があり、或いはそのソフトウェアが実行されるコンピューティングシステムの有形の非一時的媒体にネットワークの通信媒体を介して配信される(例えば、伝搬信号に符号化される)可能性がある。処理の一部又はすべては、専用のコンピュータで、又はコプロセッサ若しくはフィールドプログラマブルゲートアレイ(FPGA)若しくは専用の特定用途向け集積回路(ASIC,application-specific integrated circuit)などの専用のハードウェアを使用して実行される可能性がある。処理は、ソフトウェアによって規定された計算の異なる部分が異なるコンピューティング要素によって実行される分散された方法で実装される可能性がある。それぞれのそのようなコンピュータプログラムは、本明細書において説明された処理を実行するためにストレージデバイスの媒体がコンピュータによって読み取られるときにコンピュータを構成し、動作させるために、多目的又は専用のプログラミング可能なコンピュータによってアクセスされ得るストレージデバイスのコンピュータ可読ストレージ媒体(例えば、ソリッドステートメモリ若しくは媒体、又は磁気式若しくは光学式媒体)に記憶されるか又はダウンロードされることが好ましい。本発明のシステムは、コンピュータプログラムで構成された有形の非一時的媒体として実装されると考えられる可能性もあり、そのように構成された媒体は、本明細書において説明された処理ステップのうちの1又は2以上を実行するために特定の予め定義された方法でコンピュータを動作させる。
本発明のいくつかの実施形態が、説明された。しかしながら、上述の説明は、添付の請求項の範囲によって定義される本発明の範囲を例示するように意図されており、限定するように意図されていないことを理解されたい。したがって、その他の実施形態も、添付の請求項の範囲内にある。例えば、本発明の範囲を逸脱することなくさまざまな修正がなされ得る。さらに、上述のステップの一部は、順序に依存しない可能性があり、したがって、説明された順序とは異なる順序で実行される可能性がある。

Claims (45)

  1. コンピューティングシステムであって、
    階層に従って関連付けられる複数のエンティティを表すエンティティデータを記憶するデータストレージシステムであって、少なくとも1つのルートエンティティが、前記階層の最も高いレベルにあり、1又は2以上のエンティティが、前記階層の前記最も高いレベル未満の1又は2以上のレベルにあり、前記ルートエンティティよりも低いレベルの各エンティティが、単一のエンティティの子エンティティであり、1又は2以上のエンティティが、それぞれ、複数のインスタンス、及び前記インスタンスの各々に関するそれぞれの要素を有する少なくとも1つの属性を有する、データストレージシステムと、
    1又は2以上の引数の1又は2以上の関数をそれぞれが表現する1又は2以上の式を含む入力データを受け取るための入力デバイス又はポートであって、前記引数の1又は2以上が、前記エンティティデータ内に表されたエンティティの属性を参照する、入力デバイス又はポートと、
    前記入力データに含まれる前記式を処理するように構成された少なくとも1つのプロセッサであって、前記処理することが、
    式を分析して、前記式の引数によって参照される1若しくは2以上の属性の各々に関して、(1)前記属性のエンティティの前記階層内の位置、及び(2)前記属性を参照する引数に適用された関数の結果の要素の数のうちの少なくとも1つを決定することであって、前記式を分析することが、前記式が2若しくは3以上の属性を含む時に、それぞれの引数によって参照される2又は3以上の属性の各々に関して、前記2若しくは3以上の属性の各々のエンティティの階層内の位置を決定することと、前記2若しくは3以上の属性の決定された位置を比較することと、前記位置のそれぞれの引数に適用されている前記関数に関連する前記決定された位置の少なくとも2つの間の不一致に応答してエラーを示すこととを含む、決定すること、及び
    前記式を分析した結果に基づいて前記式を評価するか又はエラーを示すことを含む、少なくとも1つのプロセッサとを含む、前記コンピューティングシステム。
  2. 入力データが、エンティティデータ内に表された第1のエンティティの第1の属性の1又は2以上の要素の値を定義する第1の式を含む請求項1に記載のコンピューティングシステム。
  3. 第1の式が、エンティティデータ内に表された第2のエンティティの第2の属性を参照して第1の属性の1又は2以上の要素の値を定義する請求項2に記載のコンピューティングシステム。
  4. トランザクション処理システムを含む請求項3に記載のコンピューティングシステム。
  5. 第1のエンティティが、トランザクション処理システムにおける異なる購入に対応するインスタンスを有し、第2のエンティティが、前記トランザクション処理システムにおける異なる顧客に対応するインスタンスを有する請求項4に記載のコンピューティングシステム。
  6. 処理することが、第1の式を評価した後、第1の属性の1又は2以上の要素の値を表すようにエンティティデータを更新することをさらに含む請求項2に記載のコンピューティングシステム。
  7. 少なくとも1つの式内の少なくとも1つの関数が、2又は3以上のオペランドに対して働く1又は2以上の演算子を含み、前記オペランドのうちの2又は3以上が、記憶されたデータによって表されるエンティティの属性を参照する請求項1に記載のコンピューティングシステム。
  8. 式を分析することが、参照される属性がただ1つのベクトル値の参照される属性及び1又は2以上のスカラ値の参照される属性を含むと決定することをさらに含み、前記式を評価することが、前記ベクトル値の参照される属性のあらゆる要素のために前記スカラ値の参照される属性を複製することを含む請求項7に記載のコンピューティングシステム。
  9. 式を分析することが、参照される属性が複数のベクトル値の参照される属性を含むと決定することと、前記ベクトル値の参照される属性の2又は3以上の階層内のそれぞれの位置を比較することとをさらに含む請求項7に記載のコンピューティングシステム。
  10. 処理することが、ベクトル値の参照される属性の2又は3以上が階層内の異なるそれぞれの位置を有することに基づいてエラーを示すことを含む請求項7に記載のコンピューティングシステム。
  11. 属性のエンティティの階層内の位置を決定することが、ルートエンティティから始まる親−子関係によって関連付けられるエンティティの連鎖の中を通る前記属性の前記エンティティまでのパスに基づく前記属性に関するコンテキストを決定することを含む請求項1に記載のコンピューティングシステム。
  12. 式を分析することが、前記式の引数によって参照される少なくとも第1の属性に関して、第1のエンティティの先祖であるエンティティの第2の属性のコンテキストを昇格させることを含む昇格手順を実行することをさらに含み、前記第2の属性が、前記式の引数によって参照され、前記第2の属性の前記コンテキストを昇格させることが、前記第1の属性のコンテキストによって前記第2の属性の前記コンテキストを置き換えることを含む請求項11に記載のコンピューティングシステム。
  13. 処理することが、第1の式の第1の引数によって参照される第1の属性が前記第1の式の第2の引数によって参照される第2の属性と異なるコンテキストを有することに基づいてエラーを示すことを含む請求項11に記載のコンピューティングシステム。
  14. 式を分析することが、引数によって参照される1又は2以上の属性の各々に関して、前記属性を参照する引数に適用される関数の結果の要素の数を決定することを含む請求項1に記載のコンピューティングシステム。
  15. 式を分析することが、集約関数の引数によって参照される少なくとも第1の属性に関して、前記集約関数の結果の要素の数を決定することと、前記第1の属性のエンティティに関してスカラ値に対応しない結果に応答して、結果が前記第1の属性の前記エンティティに関してスカラ値に対応するまで前記集約関数の適用を1又は2回以上繰り返すこととを含む請求項14に記載のコンピューティングシステム。
  16. 方法であって、
    コンピューティングシステムによって、階層に従って関連付けられる複数のエンティティを表すエンティティデータをデータストレージシステムに記憶するステップであって、少なくとも1つのルートエンティティが、前記階層の最も高いレベルにあり、1又は2以上のエンティティが、前記階層の前記最も高いレベル未満の1又は2以上のレベルにあり、前記ルートエンティティよりも低いレベルの各エンティティが、単一のエンティティの子エンティティであり、1又は2以上のエンティティが、それぞれ、複数のインスタンス、及び前記インスタンスの各々に関するそれぞれの要素を有する少なくとも1つの属性を有する、ステップと、
    前記コンピューティングシステムによって、1又は2以上の引数の1又は2以上の関数をそれぞれが表現する1又は2以上の式を含む入力データを入力デバイス又はポートを介して受け取るステップであって、前記引数の1又は2以上が、前記エンティティデータ内に表されたエンティティの属性を参照する、ステップと、
    前記コンピューティングシステムによって、前記入力データに含まれる前記式を少なくとも1つのプロセッサを使用して処理するステップであって、
    前記コンピューティングシステムによって、式を分析して、前記式の引数によって参照される1若しくは2以上の属性の各々に関して、(1)前記属性のエンティティの前記階層内の位置、及び(2)前記属性を参照する引数に適用された関数の結果の要素の数のうちの少なくとも1つを決定するステップであって、前記式を分析することが、前記式が2若しくは3以上の属性を含む時に、それぞれの引数によって参照される2又は3以上の属性の各々に関して、前記2若しくは3以上の属性の各々のエンティティの階層内の位置を決定することと、前記2若しくは3以上の属性の決定された位置を比較することと、前記位置のそれぞれの引数に適用されている前記関数に関連する前記決定された位置の少なくとも2つの間の不一致に応答してエラーを示すこととを含む、ステップと、
    前記コンピューティングシステムによって、前記式を分析した結果に基づいて前記式を評価するか又はエラーを示すことを含む、ステップとを含む、前記方法。
  17. コンピュータ可読媒体に非一時的形態で記憶されたソフトウェアであって、コンピューティングシステムに、
    階層に従って関連付けられる複数のエンティティを表すエンティティデータをデータストレージシステムに記憶することであって、少なくとも1つのルートエンティティが、前記階層の最も高いレベルにあり、1又は2以上のエンティティが、前記階層の前記最も高いレベル未満の1又は2以上のレベルにあり、前記ルートエンティティよりも低いレベルの各エンティティが、単一のエンティティの子エンティティであり、1又は2以上のエンティティが、それぞれ、複数のインスタンス、及び前記インスタンスの各々に関するそれぞれの要素を有する少なくとも1つの属性を有する、記憶することと、
    1又は2以上の引数の1又は2以上の関数をそれぞれが表現する1又は2以上の式を含む入力データを入力デバイス又はポートを介して受け取ることであって、前記引数の1又は2以上が、前記エンティティデータ内に表されたエンティティの属性を参照する、受け取ることと、
    前記入力データに含まれる前記式を少なくとも1つのプロセッサを使用して処理することであって、
    式を分析して、前記式の引数によって参照される1若しくは2以上の属性の各々に関して、(1)前記属性のエンティティの前記階層内の位置、及び(2)前記属性を参照する引数に適用された関数の結果の要素の数のうちの少なくとも1つを決定することであって、前記式を分析することが、前記式が2若しくは3以上の属性を含む時に、それぞれの引数によって参照される2又は3以上の属性の各々に関して、前記2若しくは3以上の属性の各々のエンティティの階層内の位置を決定することと、前記2若しくは3以上の属性の決定された位置を比較することと、前記位置のそれぞれの引数に適用されている関数に関連する前記決定された位置の少なくとも2つの間の不一致に応答してエラーを示すこととを含む、決定すること、及び
    前記式を分析した結果に基づいて前記式を評価するか又はエラーを示すことを含む、処理することとを行わせるための命令を含む、前記ソフトウェア。
  18. 入力データが、エンティティデータ内に表された第1のエンティティの第1の属性の1又は2以上の要素の値を定義する第1の式を含む、請求項16に記載の方法。
  19. 第1の式が、エンティティデータ内に表された第2のエンティティの第2の属性を参照して第1の属性の1又は2以上の要素の値を定義する、請求項18に記載の方法。
  20. コンピューティングシステムが、トランザクション処理システムを含む、請求項19に記載の方法。
  21. 第1のエンティティが、トランザクション処理システムにおける異なる購入に対応するインスタンスを有し、第2のエンティティが、前記トランザクション処理システムにおける異なる顧客に対応するインスタンスを有する、請求項20に記載の方法。
  22. 処理することが、第1の式を評価した後、第1の属性の1又は2以上の要素の値を表すようにエンティティデータを更新することをさらに含む、請求項18に記載の方法。
  23. 少なくとも1つの式内の少なくとも1つの関数が、2又は3以上のオペランドに対して働く1又は2以上の演算子を含み、前記オペランドのうちの2又は3以上が、記憶されたデータによって表されるエンティティの属性を参照する、請求項16に記載の方法。
  24. 式を分析することが、参照される属性がただ1つのベクトル値の参照される属性及び1又は2以上のスカラ値の参照される属性を含むと決定することをさらに含み、前記式を評価することが、前記ベクトル値の参照される属性のあらゆる要素のために前記スカラ値の参照される属性を複製することを含む、請求項23に記載の方法。
  25. 式を分析することが、参照される属性が複数のベクトル値の参照される属性を含むと決定することと、前記ベクトル値の参照される属性の2又は3以上の階層内のそれぞれの位置を比較することとをさらに含む、請求項23に記載の方法。
  26. 処理することが、ベクトル値の参照される属性の2又は3以上が階層内の異なるそれぞれの位置を有することに基づいてエラーを示すことを含む、請求項23に記載の方法。
  27. 属性のエンティティの階層内の位置を決定することが、ルートエンティティから始まる親−子関係によって関連付けられるエンティティの連鎖の中を通る前記属性のエンティティまでのパスに基づく前記属性に関するコンテキストを決定することを含む、請求項16に記載の方法。
  28. 式を分析することが、前記式の引数によって参照される少なくとも第1の属性に関して、第1のエンティティの先祖であるエンティティの第2の属性のコンテキストを昇格させる(promote)ことを含む昇格(promotion)手順を実行することをさらに含み、前記第2の属性が、前記式の引数によって参照され、前記第2の属性のコンテキストを昇格させることが、前記第1の属性のコンテキストによって前記第2の属性のコンテキストを置き換えることを含む、請求項27に記載の方法。
  29. 処理することが、第1の式の第1の引数によって参照される第1の属性が第1の式の第2の引数によって参照される第2の属性と異なるコンテキストを有することに基づいてエラーを示すことを含む、請求項27に記載の方法。
  30. 式を分析することが、引数によって参照される1又は2以上の属性の各々に関して、前記属性を参照する引数に適用される関数の結果の要素の数を決定することを含む、請求項16に記載の方法。
  31. 式を分析することは、集約関数の引数によって参照される少なくとも第1の属性に関して、前記集約関数の結果の要素の数を決定することと、前記第1の属性のエンティティに関してスカラ値に対応しない結果に応答して、結果が前記前記第1の属性のエンティティに関してスカラ値に対応するまで前記集約関数の適用を1又は2回以上繰り返すこととを含む、請求項30に記載の方法。
  32. 入力データが、エンティティデータ内に表された第1のエンティティの第1の属性の1又は2以上の要素の値を定義する第1の式を含む、請求項17に記載のソフトウェア。
  33. 第1の式が、エンティティデータ内に表された第2のエンティティの第2の属性を参照して第1の属性の1又は2以上の要素の値を定義する、請求項32に記載のソフトウェア。
  34. コンピューティングシステムが、トランザクション処理システムを含む、請求項33に記載のソフトウェア。
  35. 第1のエンティティが、トランザクション処理システムにおける異なる購入に対応するインスタンスを有し、第2のエンティティが、前記トランザクション処理システムにおける異なる顧客に対応するインスタンスを有する、請求項34に記載のソフトウェア。
  36. コンピューティングシステムに処理させるための命令が、前記コンピューティングシステムにさらに、第1の式を評価した後、第1の属性の1又は2以上の要素の値を表すようにエンティティデータを更新させる1又は2以上の命令をさらに含む、請求項32に記載のソフトウェア。
  37. 少なくとも1つの式内の少なくとも1つの関数が、2又は3以上のオペランドに対して働く1又は2以上の演算子を含み、前記オペランドのうちの2又は3以上が、記憶されたデータによって表されるエンティティの属性を参照する、請求項17に記載のソフトウェア。
  38. コンピューティングシステムに式を分析させるための命令が、前記コンピューティングシステムにさらに、参照される属性がただ1つのベクトル値の参照される属性及び1又は2以上のスカラ値の参照される属性を含むと決定させるための1又は2以上の命令をさらに含み、
    前記式を評価することが、前記ベクトル値の参照される属性のあらゆる要素のために前記スカラ値の参照される属性を複製することを含む、請求項37に記載のソフトウェア。
  39. コンピューティングシステムに式を分析させるための命令が、前記コンピューティングシステムに、参照される属性が複数のベクトル値の参照される属性を含むと決定することと、ベクトル値の参照される属性の2又は3以上の階層内のそれぞれの位置を比較することとをさらにさせるための1又は2以上の命令をさらに含む、請求項37に記載のソフトウェア。
  40. コンピューティングシステムに処理させるための命令が、前記コンピューティングシステムにさらに、ベクトル値の参照される属性の2又は3以上が階層内の異なるそれぞれの位置を有することに基づいてエラーを示させるための1又は2以上の命令を含む、請求項37に記載のソフトウェア。
  41. コンピューティングシステムに属性のエンティティの階層内の位置を決定させるための命令が、前記コンピューティングシステムにルートエンティティから始まる親−子関係によって関連付けられるエンティティの連鎖の中を通る前記属性の前記エンティティまでのパスに基づく前記属性に関するコンテキストを決定させるための1又は2以上の命令を含む、請求項17に記載のソフトウェア。
  42. コンピューティングシステムに式を分析させるための命令が、前記コンピューティングシステムに、前記式の引数によって参照される少なくとも第1の属性に関して、第1のエンティティの先祖であるエンティティの第2の属性のコンテキストを昇格させる(promote)ことを含む昇格(promotion)手順を実行させるための1又は2以上の命令をさらに含み、第2の属性が、前記式の引数によって参照され、前記第2の属性のコンテキストを昇格させることが、前記第1の属性のコンテキストによって前記第2の属性のコンテキストを置き換えることを含む、請求項41に記載のソフトウェア。
  43. コンピューティングシステムに処理させるための命令が、前記コンピューティングシステムに第1の式の第1の引数によって参照される第1の属性が前記第1の式の第2の引数によって参照される第2の属性と異なるコンテキストを有することに基づいてエラーを示させるための1又は2以上の命令を含む、請求項41に記載のソフトウェア。
  44. コンピューティングシステムに式を分析させるための命令が、前記コンピューティングシステムに、引数によって参照される1又は2以上の属性の各々に関して、前記属性を参照する引数に適用される関数の結果の要素の数を決定させるための1又は2以上の命令を含む、請求項17に記載のソフトウェア。
  45. コンピューティングシステムに式を分析させるための命令が、前記コンピューティングシステムに、集約関数の引数によって参照される少なくとも第1の属性に関して、前記集約関数の結果の要素の数を決定させることと、前記第1の属性のエンティティに関してスカラ値に対応しない結果に応答して、結果が前記第1の属性の前記エンティティに関してスカラ値に対応するまで前記集約関数の適用を1又は2回以上繰り返させるための1又は2以上の命令を含む、請求項44に記載のソフトウェア。
JP2017512761A 2014-09-03 2015-09-03 階層的なエンティティのための計算の管理 Active JP6567043B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462045108P 2014-09-03 2014-09-03
US62/045,108 2014-09-03
PCT/US2015/048245 WO2016036911A1 (en) 2014-09-03 2015-09-03 Managing computations for hierarchical entities

Publications (2)

Publication Number Publication Date
JP2017532652A JP2017532652A (ja) 2017-11-02
JP6567043B2 true JP6567043B2 (ja) 2019-08-28

Family

ID=54207685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017512761A Active JP6567043B2 (ja) 2014-09-03 2015-09-03 階層的なエンティティのための計算の管理

Country Status (9)

Country Link
US (2) US10360186B2 (ja)
EP (1) EP3189447A1 (ja)
JP (1) JP6567043B2 (ja)
KR (1) KR102452813B1 (ja)
CN (1) CN106796598B (ja)
AU (2) AU2015311906B2 (ja)
CA (3) CA3184338A1 (ja)
SG (1) SG11201701673TA (ja)
WO (1) WO2016036911A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063073B (zh) * 2018-07-24 2020-12-22 玖富金科控股集团有限责任公司 一种因果关系问题的分析系统和分析方法
CN111737122B (zh) * 2020-06-16 2023-07-21 中国银行股份有限公司 一种大型机程序调用层级的检查方法及系统
CN113051355B (zh) * 2021-04-16 2023-07-18 小芒电子商务有限责任公司 一种单据生成方法、装置、计算机设备及存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920608B1 (en) * 1999-05-21 2005-07-19 E Numerate Solutions, Inc. Chart view for reusable data markup language
US7421648B1 (en) * 1999-05-21 2008-09-02 E-Numerate Solutions, Inc. Reusable data markup language
US6281899B1 (en) * 1999-06-08 2001-08-28 Monkeymedia, Inc. Method, apparatus and article of manufacture for displaying traversing and playing content in a multi-dimensional topic space
US7392281B1 (en) * 2000-02-25 2008-06-24 Navic Systems, Inc. System and method for providing guaranteed delivery of messages to embedded devices over a data network
US7171427B2 (en) 2002-04-26 2007-01-30 Oracle International Corporation Methods of navigating a cube that is implemented as a relational object
US20040133581A1 (en) * 2002-05-21 2004-07-08 High-Speed Engineering Laboratory, Inc. Database management system, data structure generating method for database management system, and storage medium therefor
JP2004171261A (ja) * 2002-11-20 2004-06-17 Nippon Yunishisu Kk 顧客分析システム及び顧客分析方法
US7590613B2 (en) 2003-08-13 2009-09-15 Oracle International Corporation Layout aware calculations
US7979384B2 (en) * 2003-11-06 2011-07-12 Oracle International Corporation Analytic enhancements to model clause in structured query language (SQL)
US20070078826A1 (en) * 2005-10-03 2007-04-05 Tolga Bozkaya Analytic enhancements to model clause in structured query language (SQL)
US7873663B2 (en) * 2004-01-13 2011-01-18 International Business Machines Corporation Methods and apparatus for converting a representation of XML and other markup language data to a data structure format
GB0406860D0 (en) * 2004-03-26 2004-04-28 British Telecomm Computer apparatus
US7496898B1 (en) 2004-04-15 2009-02-24 Sun Microsystems, Inc. Error analysis and diagnosis for generic function calls
EP1759315B1 (en) * 2004-06-23 2010-06-30 Oracle International Corporation Efficient evaluation of queries using translation
US7711739B2 (en) * 2005-01-25 2010-05-04 Microsoft Corporation Enhancing node-based query languages to support common relational mapping patterns
US7523121B2 (en) * 2006-01-03 2009-04-21 Siperian, Inc. Relationship data management
US8577704B2 (en) * 2007-12-10 2013-11-05 Modelsheet Software, Llc Automatically generating formulas based on parameters of a model
EP2648116A3 (en) * 2012-04-03 2014-05-28 Tata Consultancy Services Limited Automated system and method of data scrubbing
JP6338579B2 (ja) 2012-07-24 2018-06-06 アビニシオ テクノロジー エルエルシー データモデルにおけるエンティティのマッピング
US9824471B2 (en) 2012-09-27 2017-11-21 Oracle International Corporation Automatic generation of hierarchy visualizations
JP6415016B2 (ja) * 2012-11-12 2018-10-31 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム

Also Published As

Publication number Publication date
US10360186B2 (en) 2019-07-23
US20160063031A1 (en) 2016-03-03
CA2959956A1 (en) 2016-03-10
US20200073857A1 (en) 2020-03-05
US11093456B2 (en) 2021-08-17
EP3189447A1 (en) 2017-07-12
CA3184338A1 (en) 2016-03-10
CA2959956C (en) 2022-09-20
AU2020202678B2 (en) 2021-08-12
CN106796598B (zh) 2021-01-29
KR102452813B1 (ko) 2022-10-07
KR20170052608A (ko) 2017-05-12
AU2015311906B2 (en) 2020-01-30
CA3128836C (en) 2023-02-07
AU2020202678A1 (en) 2020-05-14
CA3128836A1 (en) 2016-03-10
JP2017532652A (ja) 2017-11-02
SG11201701673TA (en) 2017-04-27
WO2016036911A1 (en) 2016-03-10
CN106796598A (zh) 2017-05-31
AU2015311906A1 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
JP6916403B2 (ja) データへの論理的妥当性検査規則の指定および適用
US11544284B2 (en) Aggregation framework system architecture and method
JP6357162B2 (ja) 位置情報を用いたデータのプロファイリング
JP6488317B2 (ja) キー指定される実体の属性のマッピング
AU2013295864B2 (en) Mapping entities in data models
KR101169296B1 (ko) 그래프 기반 계산을 위한 파라미터의 관리
JP5328099B2 (ja) データプロファイリング
AU2020202678B2 (en) Managing computations for hierarchical entities
KR20130009859A (ko) 그래프 기반 계산을 위한 파라미터의 관리
JP2017500646A (ja) データ生成
Hayes Multi-sets and Multi-relations with an Application to a Bill-of-materials System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190730

R150 Certificate of patent or registration of utility model

Ref document number: 6567043

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250