JP5297802B2 - グラフ型計算のためのメタデータ管理 - Google Patents

グラフ型計算のためのメタデータ管理 Download PDF

Info

Publication number
JP5297802B2
JP5297802B2 JP2008519474A JP2008519474A JP5297802B2 JP 5297802 B2 JP5297802 B2 JP 5297802B2 JP 2008519474 A JP2008519474 A JP 2008519474A JP 2008519474 A JP2008519474 A JP 2008519474A JP 5297802 B2 JP5297802 B2 JP 5297802B2
Authority
JP
Japan
Prior art keywords
graph
data format
record
port
user
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
JP2008519474A
Other languages
English (en)
Other versions
JP2008544423A (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 JP2008544423A publication Critical patent/JP2008544423A/ja
Application granted granted Critical
Publication of JP5297802B2 publication Critical patent/JP5297802B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24526Internal representations for queries

Description

発明の詳細な説明
技術の分野
本発明は、データ処理システムにおける計算の制御に関し、より詳細には、グラフ型計算のためのメタデータ管理に関する。
背景
複雑なビジネスシステムは、一つの段階で生成した結果を次の段階へ送ることにより多段階でデータを処理するのが普通である。このようなシステムを通る情報の全体的な流れは、成分(データファイルまたはプロセスのいずれでもよい)を表すグラフの頂点、および成分間の流れを示すグラフのリンクまたは「辺」を有する有向データフローグラフを用いて記述することができる。
それと同じ形式のグラフ表現を用いて、並列処理システムを記述することができる。説明にすぎないが、この並列処理システムは、多数の中央処理ユニット(CPU)を用いるコンピューターシステムの何らかの構成を含み、ローカル(例えば、SMPコンピュータのようなマルチプロセッサシステム)、もしくはローカル分散型(例えば、クラスタまたはMPPとして結合されたマルチプロセッサ)、またはリモートもしくはリモート分散型(例えば、LANまたはWANネットワークを介して結合されるマルチプロセッサ)、またはこれらの任意の組み合わせのいずれでもよい。繰り返しになるが、グラフは成分(データファイルまたはプロセス)およびフロー(グラフの辺またはリンク)から成る。明示的または黙示的にグラフ要素(成分およびフロー)を複製することにより、システム内の並列処理を表すことができる。
グラフを用いて、計算を直接起動させることができる。マサチュセッツ州レキシントンのAb Initio Software Corporationが提供するグラフ開発環境(GDE)による「CO>OPERATING SYSTEM(登録商標)」は、このようなシステムを具体化している。このシステムにより作成されるグラフは、グラフ成分により表される個々のプロセスの入出力情報を取得して、プロセス間で情報を移動させ、そしてプロセスの実行順序を定義するための方法を提供する。このシステムは、プロセス間の通信方法を選択するアルゴリズムとプロセス実行のスケジュールを組むアルゴリズムとを含み、グラフ実行の監視も提供する。
開発者は、「ランタイム」時(すなわち、グラフを実行する時)にグラフコンパイラにより実行可能命令へ変換される命令(例えば、シェルスクリプト)の生成が可能な、環境変数またはコマンドライン引数の使用を介して、何らかの形で制御されるグラフを作製することが非常に多い。従って、環境変数およびコマンドライン引数は、ファイル名、データ選択式、およびキー(例えば、ソートキー)のような情報を規定するためのその場限り(アドホック)のパラメータとなるので、アプリケーションは更にフレキシブルになる。しかし、ユーザは生成されたシェルスクリプトを読み出し、環境変数およびコマンドライン引数を参照するためにそれを検索して、特定グラフの実行を制御するパラメーターセットを見つけなければならない。
概要
一般的な態様では、本発明は、グラフ型計算に関係付けられるメタデータを決定するための方法、ならびに対応するソフトウエアおよびシステムを特徴とする。本方法は、グラフの第1部分に関係付けられるメタデータを関数的に変換して、グラフの第2部分に関係付けられる変換メタデータを生成するステップと;グラフの第2部分に関連するグラフの第3部分を決定するステップと;グラフの第2部分からグラフの第3部分まで変換メタデータを伝搬させるステップとを含む。
この態様は下記特徴の内の一つ以上を含むことができる。すなわち、
グラフの第3部分は、データフローによりグラフの第2部分に関連付けられる。
データフローは二つの相互接続されたグラフ要素のポート間のデータフローを含む。
データフローは、グラフ要素の二つのポート間の内部データフローを含む。
グラフの第3部分は、第2部分に関係付けられるメタデータが、第3部分にも関係付けられるべきであることを指示するリンクにより、グラフの第2部分に関連付けられる。
第1部分は、第1グラフ要素の第1ポートを含み、第2部分は、第1グラフ要素の第2ポートを含む。
関数的変換は、第1ポートに関係付けられるメタデータへの少なくとも一つの参照を含むメタデータ定義を含む。
メタデータ定義は、参照されたメタデータの関数として第2ポートに対するメタデータを定義する。
第1ポートは入力ポートであり、第2ポートは出力ポートである。
関数的に変換されるメタデータはユーザにより提供される。
関数的に変換されるメタデータは、グラフの第4部分から伝搬される。
本方法は、グラフの接続性の変更に応じて変換メタデータを伝搬するステップを更に含む。
本方法は、ユーザーアクションに応じて変換メタデータを伝搬するステップを含む。
本方法は、ユーザからリクエストを受け取るステップと;リクエストに応じてユーザへグラフ要素に関係付けられたメタデータを表示するステップとを更に含む。
ユーザからのリクエストは、メタデータが表示されるべきグラフ要素を選択するユーザ入力を含む。
ユーザ入力は、所定時間の間、選択したグラフ要素のグラフ表現の近傍にオンスクリーンのポインタを配置するステップを含む。
表示されるメタデータは、別のグラフ要素から伝搬されるメタデータを含む。
表示されるメタデータはグラフ実行の前に表示される。
本発明の各態様は下記の利点の内の一つ以上を含むことができる:
ランタイムパラメータに関するグラフインターフェースは、入力フォーム化されている。グラフインターフェースは、どのパラメータを供給する必要があるか、およびそれらパラメータをどのように指示すべきかを知ることができるように、システムにとって十分に良く定義されている。
成分を制御するメタデータは、ランタイムパラメータにより、直接的または間接的に規定または計算することができる。
グラフ構造は、成分の有無をユーザが選択できるように、条件付き成分を制御するランタイムパラメータの値に基づいて修正することができる。
グラフのランタイムパラメータ化の利点は、ビジネスアナリストおよび統計モデラーのようなエンドユーザが、彼らの必要に見合うデータをリクエストできるように十分充実した、アプリケーションのパラメータ化ができることである。近年の企業のデータ環境の複雑さは、データ収集および事前解析変換の処理に、膨大な量の直接的な人の関与を日常的に必要とする状況をもたらしている。本発明は、専門のデータアナライザがいなくても、それぞれのクエリー形式に対するクリティカルパスに、エンドユーザが望むデータを定義し、検索できる強力なツールを提供する。
グラフ内を伝搬させられるメタデータは、他のメタデータの関数として定義されるメタデータのような、関数的に変換されるメタデータを含むことができる。例えば、伝搬はグラフ実行の前の編集時に行うことがある。変換されるメタデータの伝搬を可能にすることにより、グラフを実行する前であってもメタデータを見たりおよび/または操作するユーザ能力が強化される。
ランタイムパラメータを伴う再利用可能な(相互接続可能な)成分のライブラリがあってもよい。グラフは、グラフ内のランタイムパラメータ全てに対して自動的に決定される実行指示順序により、これらの成分から作成できる。場合によっては、パラメータを再順序化して、ある種の制約を満たす必要がある。所望の順序(例えば、開発者が規定する順序)に基づいて、これらの制約を満たすようにパラメータを再順序化すると、所望の順序から著しく外れた順序でパラメータをユーザに催促する可能性が減少する。
本発明の他の特徴および利点は、以下の説明およびクレームから明らかになる。
詳細な説明
概観
図1Aは、主要素の相互関係を示す本発明の一実施の形態のブロック図である。グラフ開発環境(GDE)102は、実行可能なグラフを創成し、グラフ成分に対するパラメータを定義するためのユーザーインターフェースを提供する。GDEは、例えば、本発明の譲受人から入手可能なCO>OPERATING SYSTEM(登録商標)のGDEとすることができる。GDE102は、収納庫104および並列オペレーティングシステム106と通信する。収納庫104および並列オペレーティングシステム106は、ウェブインターフェース108および実行部110にも結合されている。
収納庫104は、グラフ型アプリケーションの開発および実行、ならびにグラフ型アプリケーションと他のシステム(例えば、他のオペレーティングシステム)との間のメタデータ相互交換をサポートするよう設計された拡張可能オブジェクト指向データベースシステムであることが好ましい。収納庫104は、あらゆる種類のメタデータに対する格納システムであり、(限定はしないが)文書化、レコードフォーマット、変換関数、グラフ、ジョブ、および監視情報を含む。収納庫は、当該技術分野では周知である。例えば、米国特許第5,930,794号、第6,032,158号、および第6,044,374号を参照。
並列オペレーティングシステム106は、GDE102で生成されたデータフローグラフ表現を受け入れ、処理ロジックと、グラフが定義するリソースとに対応するコンピュータ命令を生成する。並列オペレーティングシステム106は、次いで、複数のプロセッサ(同質でなくてもよい)上でこれらの命令を実行するのが典型的である。適切な並列オペレーティングシステムは、本発明の譲受人から入手可能なCO>OPERATING SYSTEM(登録商標)である。
ウェブインターフェース108は、収納庫104の内容のウェブブラウザ型ビューを提供する。ウェブインターフェース108を用いて、ユーザは、オブジェクトを閲覧し、新規オブジェクトを創成し、既存のオブジェクトを変更し、アプリケーションパラメータを規定し、ジョブをスケジュール化する等が可能である。ウェブインターフェース108は、グラフのランタイムパラメータについての収納庫104内の格納情報に基づいてパラメータ化したグラフに対する、入力フォーム型ユーザーインターフェースを自動的に創成する。
実行部110は、ウェブインターフェース108を介してアクセスされるオプションの収納庫型ジョブスケジュールシステムである。実行部110は、収納庫104内にジョブと、オブジェクトとしてのジョブ待ち行列とを維持し、ウェブインターフェース108は、ジョブとジョブ待ち行列のビューを提供し、その操作を容易にする。
図1Bは、フィルタ成分126へフロー124により接続される入力データセット122を有する単純なデータフローグラフ120を示す。フィルタ成分126は、フロー128により出力データセット130へ接続される。データセットは、例えば、データフローグラフが実行する計算のための、データ(例えば、入力データセット)を提供するか、またはデータ(例えば、出力データセット)を受け取るファイルまたはデータベーステーブルを含むことができる。
データフローグラフ内の「フロー(流れ)」により表されるデータフローは、離散的なデータ要素へ組織化することができる。例えば、要素は、レコード(または行)およびフィールド(または列)内に組織化されるデータセットからのレコードを含むことができる。レコード内の値に対応するフィールドおよびデータ形式のシーケンスを記述するメタデータは、「レコードフォーマット」と呼ばれる。
グラフ内の成分およびデータセットは、フローへ接続するための入力および/または出力ポートを有する。フロー124およびフロー128の「ソースエンド」は、入力データセット122の出力ポートおよびフィルタ成分126の出力ポートに、それぞれインターフェース(接続)する。フロー124およびフロー128の「シンクエンド」は、フィルタ成分126の入力ポートおよび出力データセット130の入力ポートに、それぞれインターフェース(接続)する。データセットまたは成分の入力または出力ポートは、ポートに流れ込むデータまたはポートから流れ出るデータに対するレコードフォーマットのような、メタデータに関係付けられる。
ポートに対するレコードフォーマット、または成分に関係付けられる他のメタデータを含む、パラメータは、パラメータースコープの規則に基づいて値へバインドされる。パラメータは、設計時または実行時に(すなわち、後述する「ランタイムパラメータ」)値へバインドすることができる。パラメータの値は、例えば、ユーザーインターフェース上で(例えば、プロンプトに応答して)、ユーザが定義するか、ファイルから定義するか、または同一コンテクストもしくは異なるコンテクスト内の別のパラメータに関して定義することができる。例えば、パラメータは、パラメータを別のパラメータに対して「同一」の関連性を有するように指定することにより、異なるコンテクストからエクスポートする(例えば、異なる成分のコンテクストで評価されるパラメータを)ことも可能である。
グラフ内で用いる成分は、「サブグラフ」を形成するフローと相互接続される他の成分を用いて実装できる。サブグラフを別のグラフの成分として用いる前に、成分の入力および/または出力ポートのような、成分の様々な特性を定義する。場合によっては、サブグラフ成分間の関連性と協調させなければならない成分の特性は、グラフ内でその成分を用いる前に規定するのがよい。例えば、サブグラフ成分のランタイムパラメータに対して実行を促す順序を選択する必要がある。グラフ内の成分のランタイムパラメータに対する実行を促す順序を選択するための手法について、以下に詳細に説明する。
メタデータ伝搬
レコードフォーマットパラメータのような、ポートに関係付けられるメタデータの値は、「伝搬」により取得することができる。メタデータ伝搬は、「外部から」または「内部で」発生させることができる。外部メタデータ伝搬に関しては、第1成分のポートに対するレコードフォーマットパラメータの値は、フローにより第1成分へ接続される第2成分のポートに対するレコードフォーマットの値を伝搬させることにより、値を取得できる。その値は、フローのソースエンドからシンクエンドへの下流方向、またはフローのシンクエンドからソースエンドへの上流方向の何れに伝搬させることもできる。メタデータは、メタデータを定義済みのポートから、メタデータを未定義のポートへ伝搬させる。
内部メタデータ伝搬に関しては、成分の一ポートに対して定義したメタデータを、その成分を実装するサブグラフに基づいてその成分の別のポートへ伝搬させる。場合によっては、内部メタデータ伝搬が「非変換」内部データパス上で発生する。例えば、ユーザは、ソート成分へ流れ込むレコードのデータ形式を規定するソート成分入力ポートに対してメタデータを提供してもよい。ソート成分は順序を付け直すもののレコードを変換しないので、データ形式はソート成分により変更されず、データ形式は、ソート成分から流れ出るレコードのデータ形式を正確に記述するソート成分の出力ポートへ、変更されずに伝搬される。
しかし、成分によっては、その成分を通って流れるデータを変換する(またはオプションで変換する)。例えば、フィルタ成分へ流れ込むレコードのフィールドを規定するフィルタ成分入力ポートに、ユーザはメタデータを提供できる。フィルタ成分は、各レコードから与えられるフィールドの値を削除できる。メタデータ定義を用いて、フィルタ成分の出力ポートに対するメタデータが、その成分のフィルタ作用に基づいて、入力ポートのメタデータに関連付けられるように規定することができる。例えば、レコードフィールドを規定するメタデータから、フィルタ処理されたフィールドを削除できる。既に入力ポートメタデータが既知であっても、このようなメタデータ定義を提供できる。従って、ポートに関係付けたメタデータを、詳細に後述するように別のポートに対するメタデータを含むが、一つ以上のパラメータの関数として規定することにより、メタデータを内部データパス変換を超えてでも伝搬させることができる。
設計時にグラフを構築しているときに、ユーザがグラフ内の幾つかの成分の幾つかのポートに対するメタデータを提供しながら、内部および外部のメタデータ伝搬を発生させるようオプションで構成することができる。代替として、ランタイム時、またはランタイム直前を含め、グラフの構築後に、メタデータ伝搬を発生させることもできる。
ランタイムパラメータ
ランタイムパラメータは、アプリケーション構築者がパラメータ設定(例えば、ソート関数のキーパラメータ、ファイル名称、レコードフォーマット、変換関数等)の値をランタイム時(例えば、コンピューターシステム上でプログラムを実行する時またはその直前)まで延期することができる。ランタイムパラメータの値は、エンドユーザが提供するか、または他のランタイムパラメータもしくはオブジェクト収納庫に格納されたオブジェクトの組み合わせから導くことができる。
ランタイムパラメータは、アプリケーションへ一定量のフレキシビリティを与える。付加されるフレキシビリティは、これらのパラメータを用いて、オンデマンドでメタデータ(データフォーマットつまりtypes(形式)、およびプログラムロジックつまりtransform(変換))を計算することにより達成される。形式および変換は、他の形式および変換、ユーザ提供のパラメータ値、および格納された(例えば、収納庫からの)オブジェクトと同期させることができる。これにより、任意の形式の入力データで機能するとともに、ランタイムパラメータ値を通じて直接または間接的にその構造が制御される一連の変換を介して、データを生成する「標準の」アプリケーションを構築できるようになる。
実施によっては、ランタイムパラメータを創成しまたは編集する場合、開発者は、各パラメータに対してプロンプトおよびそのプロンプトを表示する条件を規定できる。このシステムは、提示するプロンプト指令を解釈して、条件が適合すると、パラメータ値を受け取るためのグラフィカルユーザーインターフェース(GUI)制御を提示する。
ランタイムパラメータ指定
ランタイムパラメータは、開発者がグラフ実行時(すなわち、ランタイム時)に外部入力に基づいてグラフの振る舞いを修正するメカニズムを提供する。好適な実施の形態では、これらの外部の値はユーザの直接入力により提供される。しかし、これら外部の値は、環境変数およびコマンドラインパラメータを含む幾つかの異なるソースからもたらされてもよい。GDE102は、これらの状況全てを扱うための正しいコードを生成し、グラフをGDEから直接実行する場合にテスト値を開発者に催促する。ランタイムパラメータを用いて、開発者は、例えば、入力ファイルのパスが特定名称を有する環境変数により提供されること;次いで、その環境変数がグラフインターフェースの既知の一部となること;を明示的に宣言できる。従って、このようなパラメータに対して明確に定義されるインターフェースが存在する。例えば、生成されたシェルスクリプトを読み出し、環境変数およびコマンドライン引数を参照するためにそれを検索して、特定グラフの実行を制御する一セットのパラメータを見つけなくてもよい。
図2は、指定されたランタイムパラメータを有するロールアップ成分202およびソート成分204を有する代表的なグラフ200のブロック図である。ランタイムパラメータ(ソート成分204用のキーおよびロールアップ成分202用の規則)は、入力用インターフェース206でユーザへ提示される。以下では、ランタイムパラメータの指定方法、およびユーザ入力を促すランタイムパラメータ提示用の統合ユーザーインターフェースの創成方法を説明する。
ランタイムパラメータを幾つかの方法で指定または定義することができる。その一方法は、GDE102で表示されるランタイムパラメーターグリッドを使用する方法である。図3は、グラフに関係するランタイムパラメーターグリッド300を表すグラフダイアログの一実施の形態の図である。新規ランタイムパラメータは適切なフィールド内へ単に記入するだけで創成される。それぞれのランタイムパラメータに関係付けられるオブジェクトは、収納庫104内に創成され、そのパラメータを利用する全てのグラフ成分へリンクされる。例えば、グラフソート成分のためのソートキーがランタイムパラメータとして定義される場合、ソートキーパラメータを表すオブジェクトは収納庫104内に格納され、関係するソート成分へリンクされる。ランタイムパラメータ定義の代替方法は、グラフ成分の既存パラメータに特別にフラグを立てて、他の成分に対してそれが「見える」(それをエクスポートする)ようにすることである。これら方法の組み合わせを用いてもよい。例えば、成分を創成する場合、開発者は、その成分の特定パラメータをランタイムパラメータとして指定できる。開発者は、次いで、パラメーターグリッドを用いて、グラフに対するランタイムパラメータ全ての既定値および他の特性を設定でき、新規ランタイムパラメータを定義できる。
グラフを実行すると、ユーザ入力または外部のプログラム的ソース(例えば、コマンドラインパラメータまたは環境変数)からの、各パラメータに対する値を取得するようパラメータが処理される。図示の実施の形態では、ランタイムパラメーターグリッド300は下記フィールドを含む:
Name(名称)302 − このフィールドはランタイムパラメータの名称を含む。「Score_threshold」は名称例である。
Type(形式)304 − このフィールドはランタイムパラメータに許容される値の形式を含む。「Integer(整数)」は形式例である。図示の実施の形態におけるサポートされる形式は:
・ブール代数 − 値は真または偽の何れかとすることができる;
・選択 − 値は、値リストの内の一つである;
・照合者 − キーパラメータ値;
・データセット − 外部データファイル名称および場所;
・日付 − 日付けの値;
・式 − 算術、論理、および/または条件式(例えば、選択式);
・浮動小数点 − 浮動小数点の値;
・整数 − 整数値;
・レイアウト − 並列または直列のレイアウト定義;
・レコードフォーマット − レコード記述またはレコード記述を含むファイル;
・文字列 − 任意の文字列;
・変換 − 変換記述または変換記述を含むファイル;
Location(Loc)(場所)306 − このフィールドはレコードフォーマットおよび変換形式により用いられる。形式フィールド304が、ファイル場所を記述するか、または組み込まれた記述を含むかどうかを規定する。サポートされる場所は:
・埋込型 − パラメータはレコードまたは変換記述を含む;
・ホスト − パラメータはホストマシン上のファイル参照を含む;
・ローカル − パラメータはローカルマシン上のファイル参照を含む;
・収納庫 − パラメータは収納庫変換またはレコードフォーマット参照を含む;
Default Value(既定値)308 − このフィールドは、(1)他の値が外部プログラム的ソースから提供されない場合に用いられるランタイムパラメータの既定値、または(2)ユーザ入力からランタイム値を導く方法もしくはグラフを実行するユーザからの相互作用による情報を取得する方法、を記述する規則もしくは式の何れかを含む。後者の場合、ユーザが入力値を提供しない場合、第2既定値のフィールド(不図示)を用いて、ランタイムパラメータの値を提供することができる。「ブール代数」および「選択」の形式では、フィールドはユーザに正当な選択しかさせない。「レイアウト」形式では、フィールドは読み出しのみで、現在定義されているレイアウト定義を表示する。その他全ての形式では、フィールドは、ユーザが正当な文字列をタイプ入力する単純なテキストエディタとするのが好ましい。
Edit(編集)310 − パラメータ行の編集スペース310(または、アイコン、例えば、鉛筆アイコン)をクリックすると、より進化した編集ウィンドウが現れ、ユーザは既定値のフィールド308を編集するための様々なオプションを選択して回る。図示の実施の形態では、関係付けられる形式に対して下記のエディタを利用できる:
・単行エディタ − 整数、浮動小数点、日付および文字列形式;
・選択ダイアログ − ブール代数および選択形式;
・キーエディタ − 照合者形式;
・ファイルブラウザ − データセット形式用、レコードフォーマット用、および場所が埋込型でない場合の変換形式用;
・変換エディタ − 埋込型の場所を有する変換形式用;
・レコードフォーマットエディタ − 埋込型の場所を有するレコードフォーマット形式用;
・式エディタ − 式形式用;
・レイアウトエディタ − レイアウト形式用;
上記エディタは、種類フィールド値(下記参照)が「PL」(パラメータ言語の)でなければ起動される。この場合、ユーザは、グラフ実行時にパラメータ値を導き出す、または促すための規則を定義するためのエディタを提示される。
Description(記述)312 − これは、開発者がランタイムパラメータの予測値を記述する自由フォーマットのフィールドである。既定値がユーザに入力値を要請するための規則を含む場合、ランタイム時のプロンプトとして用いられる。
Kind(種類)314 − このフィールドは、グラフ実行時に、関係するパラメータの値を取得することになる場所を定義する。サポートされる種類のフィールド314の値は:
・環境(Environment) − ランタイムパラメータの値が、同一名称の環境変数内に見いだせると予測される。環境変数が定義されていない場合、値は既定値フィールド308内の値が用いられる。パラメータが要求される場合(すなわち、エクスポートされるパラメータ)、および既定値フィールド308が空の場合、ランタイムエラーが生成され、グラフ実行は停止される;
・位置的(Positional) − ランタイムパラメータの値が、アプリケーションを呼び出すコマンドライン上の相対的位置で予測される。例えば、ランタイムパラメータが、定義された第3位置のランタイムパラメータの場合、そのパラメータ値は、実行スクリプト内の第3位置のコマンドライン引数と予測される。規定された位置パラメータはどれも提供されねばならず、一つでも欠けるとランタイムエラーを生ずる。
・キーワード(Keyword) − ランタイムパラメータの値がキーワードコマンドラインパラメータと予測される。図示の実施の形態では、キーワードパラメータは次の形をとる:
-<parameter name><parameter value>
キーワードパラメータはオプションであり、ランタイムエラーが生じるのは、キーワードパラメータが提供されない場合、既定値のフィールド308が空白の場合、および対応するエクスポートパラメータが要求される場合に限られる。
・固定(Fixed) − パラメータのランタイム値は常に既定値である。これは二つ以上のランタイムパラメータ間で定数値を共有するのに有用である。
・PL − ランタイムパラメータの既定値は、グラフ実行時に、他のパラメータからランタイムパラメータの値を導き出すよう解釈されるか、または追加入力をユーザに促すよう解釈されるPL式を含む。本発明のどれか特定の実施の形態で用いるために選択される成分記述言語は、広く利用できるオブジェクト指向スクリプト言語「Python」のような任意の適切なスクリプト言語であってよい。このようなスクリプトは、プログラム制御のもとでメタデータ(形式および変換)を構築し、条件付きテスト、比較、データ変換、算術演算および論理演算、文字列およびリスト操作、ならびにユーザ入力に関する他の機能、外部のプログラムで供給される入力、ならびに他のランタイムパラメータを実行し、どのランタイムパラメータにも最終的な値を生成できる。
図示の実施の形態では、ランタイムパラメーターグリッド300上で直接創成されているランタイムパラメータを参照するための有用な取り決めは、ドル符号「$」を先頭に付したパラメータ名称を入力するだけでよい。例えば、$keyは、keyと名称を付けたランタイム変数を参照する。図示の実施の形態では、新規ランタイムパラメータは、「文字列」形式を既定値とし、先進のオプションダイアログに基づく既定の種類は、既定値のランタイム種類(既定値のランタイム種類は「環境」)とする。
ランタイムパラメータ値はランタイムに決定でき、PLスクリプトは条件付きテストを提供できるので、「条件付き」ランタイムパラメータを創成できる。条件付きランタイムパラメータは、ランタイムに決定されるパラメータに対する条件全てを有効化している場合に限り、ユーザ入力のためのプロンプトを生成させる。従って、例えば、データセットを「NO」でソートすべきかどうかを要求する第1プロンプトへユーザが応答する場合、ソートキーを要求する第2の条件付きプロンプトを表示する必要はない。
従って、設計段階(「設計時間」)の間に、開発者はグラフ成分の特定パラメータを「ランタイム」パラメータとして指定する。そのグラフ成分に関係付けられるオブジェクトは、次に、関連するパラメーターデータ(例えば、図3のパラメーターグリッド300からの情報の形式)とともに格納される。
図4は、ランタイムパラメータを用いるプロセスを要約したフローチャートである。ランタイム中に、実行対象のアプリケーションに対応するパラメーターオブジェクトが(例えば、収納庫から)取り出される(ステップ400)。ユーザ入力が指示されるかどうかについて、それらオブジェクト毎に判定される(ステップ402)。Yesの場合、プロンプト表示の何らかの条件が満たされているかどうかについて判定され(ステップ403)、それには以前のプロンプトに対するユーザ入力の評価を含んでもよい。Noの場合、既定値を用いる(ステップ408)。代替として、パラメータ値はなくてもよく(例えば、ユーザがソート関数をアクティブ化するよう選択しなかった場合、ソートキーは不要となろう)、従って、無視してもよい。さもなければ、ユーザ入力のためにプロンプトを生成する(ステップ404)。
ユーザが特定パラメータの値を入力しない場合(ステップ406)、パラメータの既定値を選択できる(ステップ408)。代替として、ユーザ入力がないことを示すためにエラー状態を発生させることができる。どのイベントでも(ユーザ入力がないことによるエラー状態ではないと仮定する)、入力の変換ならびに他のパラメータに基づく従属関係および条件を考慮してパラメータの最終値が決定される(ステップ410)。
ユーザ入力が特定パラメータに対して指示されないと判定された場合(ステップ402)、そのパラメータが、環境変数またはコマンドラインパラメータのように、外部からプログラム的にもたらされるべきかどうかに関しての判定が行われる(ステップ412)。Noの場合、パラメータに対する既定値が選択される(ステップ414)。代替として、エラー状態を発生させて、規定形式の利用できる入力がないことを指示するようにしてもよい。どのイベントでも(外部入力がないことによるエラー状態ではないと仮定する)、入力の変換ならびに他のパラメータに基づく従属関係および条件を考慮してパラメータの最終値が決定される(ステップ410)。
最終的にパラメータが決まると、オプションのステップとして、全ての条件付き成分(後述する)を完全に、またはフロー(すなわち、グラフのリンクまたは辺)により置換するかのいずれかで、上記説明の規定の条件および規則に基づいて削除できる(ステップ416)。演算グラフ構造が最終化され、最終パラメータ値が決まると、グラフは従来方法で実行される(ステップ418)。
テスト値
ランタイムパラメータを伴うグラフを創成し、テストを行う間に開発者をサポートするために、GDE102の好ましい実施の形態は、ランタイムパラメータのテスト値もサポートする。開発者がランタイムパラメータを伴うグラフを実行する場合、またはグラフ成分に影響を与える基底のコードを見たい場合、GDE102は、関係するテストパラメーターグリッドを表示し、ユーザは一つ以上のランタイムパラメータの新規テスト値をそこに入力できる。好ましくは、用いられるテスト値の最後のセットを記憶しグラフとともに保存する。
ランタイムパラメータ毎に、開発者はテスト値の列に所望のテスト値を入力する。編集フィールドをテスト値の列に関係付けてもよい。テスト値フィールドおよび編集フィールドは、パラメータの種類がPLの場合を除いて、ランタイムパラメーターグリッド200の既定値フィールドおよび編集フィールドと同様に振る舞う。
特定ランタイムパラメータの値に対してユーザを促すべきであるとPLの式が指示する場合、テスト値フィールドおよび編集の振る舞いは関係するPLの式の解釈に基づく。PLの式が他の入力に基づいて値を単に導き出すだけの場合、ランタイムパラメータは、通常モードではテスト値のグリッドに表示されない。
ランタイムパラメータがその値を取得する方法の規定
パラメータがランタイムパラメータとして指定された後、対応するオブジェクトが収納庫104内に創成される。ランタイムパラメータが種類フィールド214に「PL」値を有する場合、パラメータの既定値フィールド308は、下記の好適な形を持つ「prompt_for」擬似関数を含む:
Figure 0005297802
上記に示すように、prompt_for擬似関数は、プロンプトを以前の入力に基づいて表示すべきかどうかを判定する条件付きの式の一部とすることができる。
このようなオブジェクトでは、ユーザーインターフェースを用いて、入力したランタイムパラメータをユーザに直接提示する。好ましい実施の形態では、ウェブインターフェース108が、この機能を提供する。特に、ランタイム中は、それぞれのランタイムパラメーターオブジェクトのそれぞれのprompt_for擬似関数は、ウェブインターフェース108により構文解析されて、対応するユーザープロンプトを有するウェブページを(例えば、HTMLで)生成する。(代替として、このウェブページをランタイムの前に生成して、ランタイム時に単に提示するだけとすることができる。しかし、このウェブページのランタイム生成は、より大きなフレキシビリティを提供する。特に、ページの内容を以前のユーザ入力に依存させることができる)。ウェブインターフェース108は、このようなウェブページを表示し、ユーザ入力を受け取る従来のウェブブラウザと併せて用いることができる。
prompt_for擬似関数は、パラメータ値に対するプロンプトの方法をウェブインターフェース108へ指し示す。特に、文字列定数のprompt_kindパラメータは、どの種類のユーザーインターフェース(UI)要素(テキストボックス、ドロップダウンリスト等)を提示するかを指し示す。キーワードをコンマで区切ったリストの文字列のmodifiers(修飾子)部分は、各種プロンプトに共通な幾つかのオプションを提供する。図示の実施の形態では、修飾子文字列内のスペースは意味をもたない。修飾子キーワードは下記のように解釈される:
・キーワード「in place」は、アプリケーションに対する要約レベルのユーザーインターフェースで、要素を直接提示すべきことを宣言し、低位レベルまで「掘り下げ」ずに値が提供されるようにする。in placeが規定されない場合、単純な「編集」ボタンを要約レベルインターフェースで提示し、パラメータ値を提供する別のページへユーザを導く。
・キーワード「blank ok」は、ユーザが値を提供しなくてもよいことを宣言する。アプリケーションは、合理的な方法で既定値を処理する。blank okが規定されない場合、ユーザは、何らかの値を提供しないと、アプリケーションを実行できない。
以下、異なる種類の修飾子を持つprompt_forコールの実施例を幾つか挙げる:
Figure 0005297802
本項のこれ以降では、各種prompt-kindsおよびそれに対応するoptionsをリストアップし、それぞれがウェブインターフェース108により生成されるウェブページにどのように現れるかを説明する。
text [size] − 従来の一行テキストボックスの文字幅sizeを提示する(sizeが提供されない場合、ブラウザのテキストボックスの既定値のサイズとする)。
radio choice-list [description-list] − choice-listの要素毎に一つのボタンとする一セットのラジオボタンの形式で、従来の「一つを選択してください」プロンプトを提示する。description-listが提供される場合、対応する記述(description)でそれぞれの選択にラベル付けし;提供されない場合は、choice-listからの対応項目の文字列形式で、その選択にラベル付けする。
radioplus choice-list [description-list] − radioと同様ではあるが、テキストボックスに続く追加ボタンを提示して、choice-listにない「書き込み」値をユーザに選択させる。
checkbox choice-list [description-list] − choice-listの要素毎に一つのボタンとする一セットのチェックボックスの形式で、従来の「ゼロ以上を選択してください」プロンプトを提示する。description-listが提供される場合、対応する記述(description)でそれぞれの選択にラベル付けし;提供されない場合は、choice-listからの対応項目の文字列形式で、その選択にラベル付けする。
dropdown choice-list [description-list, size] − choice-listの要素に対してドロップダウンリストの形式で、従来の「一つ選択してください」プロンプトを提示する。description-listが提供される場合、対応する記述(description)でそれぞれの選択にラベル付けし;提供されない場合は、choice-listからの対応項目の文字列形式で、その選択にラベル付けする。sizeが提供される場合、多数の選択を一度に見ることができ、提供されない場合は一つしか見えない。
multidropdown choice-list [description-list, size] − choice-listの要素に対してドロップダウンリストの形式で、従来の「一つ選択してください」プロンプトを提示する。description-listが提供される場合、対応する記述(description)でそれぞれの選択にラベル付けし;提供されない場合は、choice-listからの対応項目の文字列形式で、その選択にラベル付けする。sizeが提供される場合、多数の選択を一度に見ることができ、提供されない場合はブラウザの既定値の数の項目が示される。
key type-obj [size] − 所与のtype-objからのフィールドを作成するキー(照合者としても知られる)のプロンプトを提示する。キーは、type-obj内のフィールドを既定値とするsizeと同じ程度の多数の部品をもつことができる。図5は、Keyプロンプトにより生成されるグラフダイアログ500の一実施の形態の図である。以下は3つの入力keyプロンプトに対するスクリプトテキストの実施例であり、ファイル「/datasets/fixed」は、ドロップダウンボックス502に示す利用できるキーの内容を定義する:
Figure 0005297802
図示の実施の形態では、通常の照合順序は昇順であるが、ユーザは、関係するチェックボックス504にチェックを付すことにより、キーに対して降順の照合を選択することができる。
fiter type-obj −所与のtype-objの各フィールドの条件から成るフィルタの式のプロンプトを提示する。「blank ok」修飾子は、フィルタに影響せず;ブランクフィルタは、「真」の式を生じる。図6は、Filterプロンプトにより生成されるグラフダイアログ600の一実施の形態の図である。それぞれの式のテキスト編集ボックス604に関係付けられる利用可能なフィールド名称602は、type-objにより定義される。比較値をテキスト編集ボックス604に記入し、比較演算子(例えば、等号、より大きい、より小さいまたは、と等しい)を、対応するドロップダウンリストコントロール606から選択する。
flexifilter type-obj − filterプロンプトと同様であるが、所与のtype-objの各フィールドの条件を作成するフィルタ式のためのプロンプトを提供し、それぞれのラインのフィールド名称はドロップダウンリストから選択可能である。これにより多数の条件に対して同一フィールド(例えば、field STATE=MA OR field STATE=CA)を用いることが可能になる。
rollup type-obj key [size] − 所与のキーによりロールアップされる所与のtype-objのフィールドに基づいて、ロールアップ計算のためのプロンプトを提示する。ロールアップは、type-obj内のフィールド数を既定値とするsizeと同じ程度の多数の規則を持つことができる。blank ok修飾子はロールアップに影響を与えず;ブランクロールアップは各グループの値だけを提供するパッケージを生み出す。図7は、Rollupプロンプトにより生成されるグラフダイアログ700の一実施の形態の図である。図示の実施の形態では、ドロップダウンボックス702の列は、利用できるロールアップ計算関数(例えば、合計、最小値、最大値)を定義する。それぞれの計算に関係付けられる利用可能フィールド名称704をtype-objにより定義する。それぞれのロールアップ規則は、所望の式のユーザ定義に関係付けられるテキスト編集ボックス706、ソース値が計算に参加する基準を定義する(ブール代数式により)ための「場所(where)」テキスト編集ボックス708、および計算結果を受け取るフィールドを指定するための出力フィールドテキスト編集ボックス710を有する。それを明らかに導き出せる場合には、出力フィールドの名称は規定しなくてもよい。
reformat type-obj [size] − type-objのフィールドに基づいて再フォーマット計算のためのプロンプトを提示する。再フォーマットは、type-obj内のフィールド数を既定値とするsizeと同じ程度の多数の規則をもつことができる。図8は、Reformatプロンプトにより生成されるグラフダイアログ800の一実施の形態の図である。図示の実施の形態では、reformatプロンプトは、同一名称の出力フィールド(チェックボックスボタンを用いて個々に、またはSelect All(全て選択)もしくはSelect None(どれも選択しない)ボタンを用いて集合的に、選択/非選択するか)へ入力フィールドをコピーするだけのために、セクション802を含む。プロンプトの第2セクションは、再フォーマットの式(例えば、total=revenue_1−revenue_2)の定義ができるテキスト編集ボックス804の列を含む。それぞれの規則は、再フォーマットされた結果を受け取るフィールドを指定するための、関係する出力フィールドテキスト編集ボックス806を有する。
outputspec − 出力データセット仕様のためのプロンプトを提示する。表示されるボタンは、利用できるフォーマットオプションを提示するためのドロップダウンボタン、および出力データセットの特定事例の名称を入力するためのテキスト編集ボックスを含む。blank ok修飾子は出力データセット仕様に影響を与えない。
fpath starting-point − ファイルパスに対するプロンプトを提示する。プロンプトは基本的にテキストボックスであるが、その隣りに、ファイルパスを閲覧するためのポップアップウィンドウを出現させる「閲覧(Browse)」ボタンを有する。テキストボックスが空白でない場合、閲覧操作の開始点としてそれを用いる。空白の場合はstarting-point引数を用いる。
rpath starting-point − 収納庫パスに対するプロンプトを提示する。プロンプトは基本的にテキストボックスであるが、その隣りに、閲覧するためのポップアップウィンドウを出現させる「閲覧(Browse)」ボタンを有する。テキストボックスが空白でない場合、閲覧操作の開始点としてそれを用いる。空白の場合はstarting-point引数を用いる。
radiofpath choice-list [description-list] − radioplusと同様であるが、「書き込み(write-in)」スロット内にfpath型のbox-plus-browseボタンを提示する。
radiorpath choice-list [description-list] − radioplusと同様であるが、「書き込み(write-in)」スロット内にrpath型のbox-plus-browseボタンを提示する。
条件付き成分
実施によっては、パラメータ値および算出メタデータに基づくグラフの成分およびフローの構造への変更を可能にする条件付き成分メカニズムを含む。グラフの各成分は、その成分がランタイム時にグラフに出現するかどうかの条件を有する。その条件は、ランタイムパラメータを介して直接的または間接的に計算できる。条件付き成分を様々な目的に用いて、例えば、グラフを最適化または専用化することができる。最適化のために、アプリケーションは、特定データセットからの値を使用しない場合、そのデータセットの処理を省略して、グラフをより効率的に実行させることもある。専用化では、アプリケーションは所望の詳細レベルに基づいて幾つかの異なる出力データセットを生成する条件を付けるか、またはグラフの幾つかのオプション部分のどれかを実行可能にすることもある。
図9Aは、マージ結合(MergeJoin)成分900が、ファイルAおよびBからのデータを結合し、その結果を出力ファイル902へ出力する第1グラフのブロック図である。図9Bは、ロールアップ成分904がファイルAからのデータを集約し、その結果を出力ファイル902へ出力する第2グラフのブロック図である。図9Cは、マージ結合成分906が、ファイルAおよびBからのデータを結合し、その得られたデータをロールアップ成分908が集約し、最終結果を出力ファイル902へ出力するグラフのブロック図である。条件付き成分を用いて、これら3つのグラフを単一グラフへ組み合わせることができる。この単一グラフは図9Cのグラフと最初は同じように見えるが、その正確な構造はランタイムまで決定されない。適切な条件を設定することにより、ロールアップ成分908を接続(フロー)により置換できるので、図9Aのグラフと同様なランタイムグラフが得られる。同様に、適切な条件を設定することにより、マージ結合成分906をファイルAへの接続(フロー)により置換できるので、図9Bのグラフと同様なランタイムグラフが得られる。
図示の実施の形態では、条件付き成分は、頂点を定義する任意のグラフ成分(すなわち、入力/出力ファイルのようなデータセット成分、再フォーマットもしくはソート成分のような処理成分、またはサブグラフとして知られる他のグラフ)とすることができる。好ましい実施の形態では、条件付き成分は二つの特殊なパラメータ:Condition(条件)およびCondition-interpretation(条件解釈)により制御される。条件は、ブール代数式、または、ランタイムまで評価を保留する値である。図示の実施の形態では、値「偽」および「0」は、偽の条件を規定し、他の全ての値(空を含む)は真の条件を示す。条件解釈パラメータは相互に排他的な値を許容する二つ、すなわち、Remove Completely(完全削除)およびReplace With Flow(フローで置換)を有する。
図10は、Condition-interpretation(条件解釈)制御1004を有するCondition(条件)1002を表すグラフダイアログ1000の一実施の形態の図である。Condition-interpretation(条件解釈)制御1004により、Remove Completely(完全削除)解釈1006またはReplace With Flow(フローで置換)解釈1008の何れかの選択が可能となる。
Remove Completely(完全削除):この解釈では、Condition(条件)を満たす場合、成分および全てのその接続フロー(すなわち、グラフのリンクまたは辺)はグラフから削除されることになる。アクティブなRemove Completely(完全削除)条件は、成分および全てのその直接接続フローをグラフから機能的に削除する。Remove Completely(完全削除)条件は、任意の成分について用いることができる。
グラフから削除される条件付き成分は、条件付き成分の存在によっては他の接続される成分を汚染させる(poison)ことがあり、それらを削除してしまうことがある。図11は、そのような汚染が発生する状況を示すグラフ1100の図である。入力ファイル成分1102に関する条件が削除を指示し、その対応する条件解釈がRemove Completely(完全削除)である場合、入力ファイル成分1102およびその接続フローはともにグラフ1100から削除される。これは、次いで、ソート成分1104を汚染させ、その入力は必須の入力ポートであるのに、それに接続されるデータフローはもう何もないので、ソート成分を削除する。これは次に、ロールアップ成分1106を汚染させ、その入力は必須の入力ポートであるのに、それに接続されるデータフローはもう何もないので、ロールアップ成分を削除する。この「消失汚染」を停止させる唯一の方法は、下流成分のオプションのポートまたはカウントされるポート(counted port)への接続である。従って、全体のソート−ロールアップグラフの分流1108は、入力ファイル成分1102に関する条件が削除を指示すると、グラフ1100から効果的に削除される。図11の結果は、元のグラフ構造の公称3入力の結合成分1110がランタイム時に2入力の結合成分となる、ということである。
一実施では、汚染(「黙示条件」としても知られる)の詳細な構文は下記の通りである:
・成分が必須のポートを有し、それに接続される活きたフローが存在しない場合、成分およびそれに接続される全てのフローはグラフから削除される。
・成分をグラフから完全に削除する場合、そのポートに接続される全てのフローはグラフから削除される。
・成分をフローで置換する場合、その成分のdesignated input port(指定入力ポート)およびdesignated output port(指定出力ポート)以外の全てのポートへ接続される全てのフローはグラフから削除される。
・必須のインデックス付きポートが、それに接続される活きたフローを持たない場合、同一インデックスを有する対応するオプションのインデックス付きポート毎に、その対応するポートへ接続されるどれかのフローをグラフから削除する。
これらの規則には驚くべき結論がある。例えば、オプションのポートだけを有する成分は、汚染が原因で削除されることはない。従って、所望する場合は、明示的に削除しなければならない。
図12は、Remove Completely(完全削除)条件付き成分を含むグラフのランタイム準備のプロセスを要約するフローチャートである。Condition-interpretation(条件解釈)がRemove Completelyで、かつCondition(条件)が満たされない場合(ステップ1200)、条件付きCOMPONENT(成分)はグラフから削除されない(ステップ1202)。Condition(条件)が満たされる場合(ステップ1200)、条件付きCOMPONENT(成分)は、その成分へ接続される全てのフローと併せてグラフから削除される(ステップ1204)。次いで、全ての「汚染された」成分およびフローは、上記説明の規則に基づいてグラフから削除される(ステップ1206)。
Replace With Flow(フローで置換):この解釈では、Condition(条件)を満たす場合、成分は、フローで置換されることになる(例えば、グラフの辺)。Replace With Flow(フローで置換)の条件解釈は追加情報を必要とする。図10を参照すると、ユーザは、成分をグラフから削除する場合に接続を行う入力ポート1010(または、カウントされるポートのファミリー)および出力ポート1012(または、カウントされるポートのファミリー)を指定する。既定値により、厳密に一つの必須の入力ポートまたはカウントされるポートがあり、厳密に一つの必須の出力ポートまたはカウントされるポートがある場合、これらは、指定されたフロースルー接続ポートである(それぞれ、designated input port(指定入力ポート)およびdesignated output port(指定出力ポート)と呼ぶ)。必須のポートは、接続対象の少なくとも一つのフローを要求するポートである。
図13は、本発明の特定の実施の形態に対するReplace With Flow(フローで置換)条件付き成分を含むグラフのランタイム準備のプロセスを要約するフローチャートである。図示の実施の形態(CO>OPERATING
SYSTEM(登録商標)で利用できる成分に基づく)における特定の利用可能な入力および出力の幾つかの成分の従属関係に応じて、幾つかの規則が、この実装およびReplace With Flow(フローで置換)条件の使用に適用される。
・Condition-interpretation(条件解釈)がReplace With Flow(フローで置換)であって、Condition(条件)が満たされない場合(ステップ1300)、条件付き成分はグラフから削除されない(ステップ1302)。
・指定された入力ポートおよび指定された出力ポートを有する成分は、その指定された入力ポートへ接続される厳密に一つの活きた正しいフロー、およびその指定された出力ポートへ接続される厳密に一つの活きた正しいフローがある場合、フローで置換できる(「活きた」フローとは、ランタイム時に削除されなかったフローのことである)(ステップ1304)。Yesの場合、成分自体をグラフから削除し、その指定された入力ポートへ接続される活きた正しいフロー、およびその指定された出力ポートへ接続される活きた正しいフローを互いにリンクする(ステップ1306)。削除される成分の他のポートへ直接リンクされる他のフローはどれも(すなわち、特別に指定された入力および出力ポート以外の全てのポート)、グラフから削除される。削除された成分へ接続された「汚染された」成分およびフローはどれも、上記説明のように削除される(ステップ1308)。
・Replace With Flow(フローで置換)条件を有する成分が、カウントされる入力のファミリー内の二つ以上の指定された入力ポートへ取り付けられる活きたフローを有する場合(ステップ1310)、グラフを正当なものにするためにはその成分が必要なので、グラフから削除しない(ステップ1312)。
・必須入力に活きたファンインフローを有する成分は、特殊な扱いが必要である。「活きたファンインフロー」は、その成分が、必須入力ポートへ接続される活きたファンインフローもしくは全て対全てのフローを有するか、または単一の必須入力ポートへ接続される二つ以上の活きた正しいフローを有することを意味する。そのような成分では、Replace With Flow(フローで置換)条件の解釈は、条件付き成分を活きた入力フロー全てを集める集約成分で置換すべきである(ステップ1314)。置換した成分へ接続された「汚染された」フローおよび成分は、上記説明のように、どれも削除される(ステップ1316)。
メタデータ伝搬の態様
グラフのメタデータは、例えば、グラフ開発者、グラフユーザにより、またはグラフの別の部分からの伝搬により、提供される。データまたはデータの計算に関係付けられるメタデータを含む各種のメタデータ、例えば:ポートに対するレコードフォーマット(例えば、ポートへ流れ込むかまたはポートから流れ出るレコードのフィールドシーケンスおよびデータの形式)、ソート性、圧縮法、文字セット、バイナリ表現(ビッグエンディアン(big-endian)、リトルエンディアン(little-endian))、パーティション化、成分がどの計算リソース(例えば、プロセッサ、一時的ディスクスペース)を用いるか、データ変換、および成分が使用できるメモリ量、を伝搬させることができる。グラフ構造の多様な態様がメタデータ伝搬に影響を与える。これらの内の二つの態様を以下に説明する。
成分削除後の伝搬
実施によっては、グラフ成分を削除した後にフローが生成される場合、そのようなフロー内のデータを定義するメタデータを修正後のグラフへどのように伝搬させるべきかを選択しなければならない。メタデータはフローの両端のどちらからでも利用できる。実施によっては、フローの上流端からのメタデータが好ましい。
フローの上流端が削除された成分(または、集約成分で置換された成分)の場合、GDE102は、まだ削除されていない成分を見つけるまで、グラフの上流を「歩く」ことにより、そのフローのためのメタデータを見つける。その上流成分により曝されたメタデータを用いて、生成されたフローのためのデータの特性を定義する。
変換したメタデータの伝搬
上記説明のように、メタデータは、あるポートに関係付けられるメタデータを別のポートに対するメタデータを含む一つ以上のパラメータの関数として規定することにより、内部変換データパスを越えてでも伝搬することができる。図23Aは、データセット2302およびデータセット2304からのデータに対して結合操作を計算するグラフ2300を示す。この実施例では、グラフ開発者はデータセットの出力ポートでメタデータを提供する。次いで、このメタデータは、入力データセットのレコードに対して結合操作を計算する「スマート結合」成分2306へ伝搬される。例えば、メタデータは、出力ポート2308から入力ポート2310へ伝搬する。次いで、メタデータは、「スマート結合」成分2306により変換され、「スマート結合」成分2306の出力ポート2316からフィルタ成分2318の入力ポート2317へ伝搬する。
図23Bは、「スマート結合」成分2306を実装するサブグラフを示す。成分2306は、結合成分2350が実行する結合操作のキーフィールドをその値が表すkey_field パラメータを用いる。成分2306は条件付きソート成分2354および2356を含むための条件としてもkey_field パラメータを用いる。入力ポート2310へ流れ込むレコードがkey_field に関して既にソートされている場合、ソート成分2354は条件を取り消される。同様に、入力ポート2314へ流れ込むレコードがkey_field に関して既にソートされている場合、ソート成分2356は条件を取り消される。入力レコードのどちらかのフローがkey_field に関してまだソートされていない場合、ソート成分2354および2356は、レコードをソートしてから結合成分2350へ流し込む。
変換されたメタデータの伝搬をこの「スマート結合」成分を通じて可能にするために、グラフ開発者は、「スマート結合」成分2306の出力ポート2316に対するメタデータ(例えば、フィールドを記述するためのメタデータ)を、第1入力ポート2310に対するメタデータinput0.metadata、第2入力ポート2314に対するメタデータinput1.metadata、およびキーフィールドパラメータkey_field、の関数として定義する:
output.metadata=metadata_join(key_field,input0.metadata, input1.metadata)
出力ポートメタデータは関数の引数を値(適切なコンテクストに関して)にバインドし、その結果に関数metadata_joinを実行することにより決定する。この実施例では、ポート2310および2314に対するメタデータは未定義なので、伝搬メタデータは、メタデータパラメータinput0.metadataとinput1.metadataとへ結合される。ユーザは、ポート2308から、「スマート結合」成分2306の入力ポート2310へ流れるレコードに対するフィールド「A」および「B」を規定する出力ポート2308に対するメタデータを提供する。ユーザは、同様に、出力ポート2312から、「スマート結合」成分2306の入力ポート2314へ流れるレコードに対するフィールド「A」および「C」を規定する出力ポート2312に対するメタデータを供給する。このユーザ供給メタデータはポート2310および2314へ伝搬する。結合操作のためのキーフィールドはフィールドAなので、「公式パラメータ」key_fieldは値「A」へバインドされる。
関数metadata_joinは、key_fieldパラメータの値が、input0.metadataおよびinput1.metadataにより規定されるフィールドの両セットのメンバーかどうかを最初に決定することにより、出力メタデータを決定する。そうであるなら、出力メタデータは二セットのフィールドの和集合である。そうでなければ、出力メタデータはフィールドの空集合を示す。
メタデータが「スマート結合」成分2306の入力ポートへ伝搬した後(または、例えば、ユーザが提供した後)、「スマート結合」成分2306の出力ポートの変換されたメタデータは、フィールドA、B、およびCを含む。次いで、この変換されたメタデータを、他の成分へ伝搬させることができる。この実施例では、変換メタデータはフィルタ成分2318へ伝搬する。
メタデータは、ユーザが提供するか、またはポート間を伝搬するかにかかわらず、ユーザに表示することができる。例えば、ユーザは入力装置(例えば、マウス)を用いて成分の一部を、そのメタデータの値を見るために選択できる。メタデータ伝搬はそのようなユーザ選択に応じて始動させることもできる。
例示のメタデータ伝搬プロセス
図24は、例示のメタデータ伝搬プロセス2400のフローチャートである。プロセス2400は、例えば、グラフ内の変更がある度に、ユーザのアクションに応じて、および/またはグラフを実行する直前に、実行することができる。プロセス2400は、フローが決定する部分的な順序に基づいて順序付けられたグラフ内の各成分により作業リストを生成する(例えば、成分Aは、成分Aから成分Bへのフローがある場合、成分Bの前にくる)。フローが二つの成分間の一意の順序を決定しない状況では、成分ラベルのアルファベット順を均衡を破るために用いることができる。これは、作業リスト内の成分の安定な順序付けを提供する(成分ラベルが一意であると仮定する)。伝搬プロセス2400がグラフに対して繰り返される場合(例えば、新規成分の追加後)、新規作業リストは、以前の作業リスト内の成分間の順序と同一の順序を維持する。
プロセス2400は、作業リストの開始で始動し、作業リスト内の成分毎に、プロセス2400は、成分を実装するサブグラフの仕様(例えば、サブグラフ内のデータフロー)に基づいて、2404にて内部(例えば、入力ポートから出力ポートまで、または出力ポートから入力ポートまで)でメタデータを伝搬させる。この内部のメタデータ伝搬は、非変換データパスのどちらかの端にある複数ポート間に非変換メタデータを転送するステップを含む。内部メタデータ伝搬は、上記説明のように、グラフのパラメータおよび/または他のポートのメタデータを参照するメタデータ定義を有するポートに対してメタデータを導き出すステップも含む。プロセス2400がこのようなメタデータ定義に出会った場合、プロセス2400は、メタデータを導き出すのにその値が必要な何れかのパラメータを評価する。
作業リスト上の成分に対する内部メタデータ伝搬を実行した後、プロセス2400は、メタデータを有する成分の各ポートから、2406にてメタデータを持たない関連成分のポートへメタデータを外部伝搬させる。この外部伝搬によりメタデータを取得する成分はどれも、2408にて作業リストの最後へ移動する。プロセス2400は、2410にて作業リストの最後の成分を処理した後に終了する。
この種類の外部メタデータ伝搬をサポートする成分間の、ある種類の関連性は、二つの成分のポート間(例えば、入力ポートから出力ポートまで、または出力ポートから入力ポートまで)のデータフローリンクである。
この種類の外部メタデータ伝搬をサポートする成分間の、別の種類の関連性は、あるポートに対するメタデータを別のポートに用いることもできることを示すリンクである。この種類の「メタデータリンク」は必ずしもデータフローリンクに対応するとは限らない。例えば、ポートは、特にどれかのポートに関係付けられないグラフ内のメタデータへのメタデータリンクを持つことができる。
成分化したサブグラフのランタイムパラメータ
サブグラフを別のグラフの成分として用いるために「成分化」する前に、成分の入力および/または出力ポートのような成分の各種特性を定義する。ランタイムパラメータを持つ成分を含むサブグラフでは、ランタイムパラメータのプロンプト順序を選択するのがよい。グラフ内の成分は必ずしもシーケンシャルな順序とは限らないので、ユーザを促すための、ランタイムパラメータの多くの可能性のあるグローバル順序付けがあり得る。グローバル順序の幾つかは、各成分に関係付けられる元の順序と一致しない。各成分のパラメータの順序をできるだけ維持する、プロンプトのためのグローバル順序を生成する一方で、従属関係を考慮するのにふさわしい場合は再順序付けすることも有用である。例えば、成分は、「処理したデータをどこに格納しますか?」と質問するプロンプトの前に、「どのデータを処理しますか?」と質問するプロンプトを順序付けることができる。どの順序でプロンプトを提供できるとしても、この順序でプロンプトを提供することが望ましい。
プロンプトされるランタイムパラメータを評価するプロセスで、プロンプトされないランタイムパラメータを評価する必要があるかもしれないので、プロンプト化の順序は、全てのランタイムパラメータの評価順序から得られる。グラフのランタイムパラメータ(どの成分とも関係付けられないグラフのパラメータを含む)の評価順序を決定するための一手法は、パラメータ間の従属関係を表す一つ以上の有向非循環グラフに基づいて、トポロジカルなソートを実行するステップを含む。しかし、トポロジカルなソートアルゴリズムによっては、不必要にパラメータを再順序付けすることがあり、ランタイムパラメータに対する好ましくないプロンプト化順序が生じてしまう。
ソート実施例1
第1実施例では、パラメーターソートプロセスは、二つのグラフ成分、すなわち、Component(成分)I、およびComponent(成分)Iへ接続されるComponent(成分)II、のパラメータに対する最初のパラメータリストを提供する。この実施例では、パラメータは「成分内」従属関係だけを有する。すなわち、成分のパラメータは、同一成分内の他のパラメータにのみ従属する。パラメータは下記のように定義される:
Component(成分)Iは下記パラメータを含む:
Figure 0005297802
Component(成分)IIは下記パラメータを含む:
Figure 0005297802
パラメータをリストアップする順序は、ユーザに値を促す所望順序を定義する。パラメータの最初のリストは、成分毎のこの「最初の順序付け」を維持する。「序数」が各パラメータへ割り当てられて、最初の順序付けのそのパラメータの順序を示す。下記の表は、この最初の順序付けにおけるパラメータをリストアップする。
Figure 0005297802
「従属関係」の列は、リストにあるパラメータが従属する他のパラメータを示す。従属関係は、パラメータ評価に順序付けの制約を課す。すなわち、パラメータを別のパラメータが使用する(例えば、参照する)前に、それを定義する必要がある。
「共通トポロジカルソート」アルゴリズムは、従属関係を持たないパラメータを転送するリストを通って、それぞれを通るたびに順序付けした出力リストへ行く。それぞれを通った後、転送されるパラメータを、どれも従属関係の列から削除する。この処理は全てのパラメータが転送されてしまうまで繰り返される。これらの他のパラメータを評価してから、他のパラメータに従属するパラメータを評価するように、出力リスト内のパラメータ順序は「最終的な順序付け」を表す。
この実施例では、1回目に通ったとき、パラメータx、q、aおよびcを出力リストに転送する。2回目に通ったとき、パラメータyおよびbを出力リストに転送する。3回目および最終的に通ったとき、パラメータzを出力リストに転送する。従って、パラメータに対する最終的な順序付けは:x、q、a、c、y、b、zである。この順序付けは、パラメータ従属関係により課される順序付けの制約を満たすが、それはパラメータを不必要に再順序付けすることにもなる。この実施例では、最初の順序付けは、パラメータ従属関係により課される順序付けの制約も満たす。
順序付けの制約を満たすグラフのパラメータに対する評価順序を決定するための他の手法は、最初の順序付けを尊重する。例えば、幾つかの手法は、パラメータを順序付けて、順序付けの制約を満たし、最初の順序付けに基づく基準によって順序付けを選択する。基準には、最初の順序付けに近い順序を保持するのを優先的に扱う多様な基準(例えば、最初の順序付けへの変更に基づいて尺度を最小化する)のどれかを含めることができる。場合によっては、多数の順序付けが、どれも良好に基準に基づいて所与の基準を満たすことができるので、唯一の「最良」の順序付けが存在しないこともある。
最初の順序付けを尊重する手法の一実施例は、「修正トポロジカルソート」手法である。この手法では、最初の順序付けに基づく基準は、最初のリストから転送されるパラメータの数を最小化してから、転送されないパラメータのどれにも従属しない先行するパラメータを転送する。換言すると、「修正トポロジカルソート」は、従属関係の列から転送されるパラメータを削除してから、従属関係がゼロの次のパラメータを転送する。上記実施例では、「修正トポロジカルソート」手法は、最初の順序付けx、y、z、q、a、b、cと同一の最終的順序付けを生成する。
最初の順序付けを尊重する修正トポロジカルソートプロセス
パラメータ毎に割り当てられた序数により決定されるように、両方が最初の順序付けを尊重する二つの例示の「修正トポロジカルソート」プロセスについて、擬似コードを以下に示す。第2プロセスは、幾つかの場合に対する時間効率を改良する最適化を含む。このプロセスは、パラメータに対する入力データから生成されるデータ構造を操作する。
順序付けられるべきN個のパラメータがあると仮定すると、入力データは、一意のパラメータ名称、名称を付されたパラメータが従属する一セットのパラメータ(「従属関係セット」と呼ばれる)、および名称を付されたパラメータに関連する情報を格納するオプションの属性データオブジェクト、からなるN×3個(N triples)のリストを含む。
この入力データに関係付けられるのは、パラメータ間の従属関係を表す一つ以上の非循環グラフであり、「従属関係グラフ」と呼ばれる。それぞれの一意のパラメータ名称は、従属関係グラフのノードに対応し、関係する従属関係セットは、他のノードからそのノードへのリンクセットに対応する。従って、リンクは、第1パラメータに対する第1ノードから、第1パラメータに従属する第2パラメータに対する第2ノードに向いている。代替として、リンクの方向とパラメータ従属関係との間の対応を逆にすることができる。
パラメータを評価した後、最初の順序付けに近い順序を保つのを優先しながら、別のパラメータを評価するために用いることができるように、出力データ構造result_listは、(必要な場合)再順序付けされた入力データからのN個のパラメータのリストを含む。出力データ構造result_listを生成するために、このプロセスは、作業データ構造param_listから出力データ構造result_listへ、一つずつパラメータを転送することによりパラメータを「除去」する。出力データ構造は、全てのパラメータを除去した後に完成する。
第1の「修正トポロジカルソート」プロセスは二つの段階を含む。第1段階で、このプロセスは、ソートした出力データ構造を生成する際に用いるために、入力データに基づいて作業データ構造を作成する。第2段階で、このプロセスは、これらの作業データ構造により表される従属関係の制約に基づいてパラメータを繰り返しソートし、除去する。
このプロセスが第1段階で作成する作業データ構造の幾つかは、ハッシュ化に基づくデータ構造の辞書である。辞書の項目には、時間O(logN)で効率的にアクセスできる。以下の例示のデータ構造は第1段階で作成される:
parm_list[index]:番号index(index = 0はリスト内の第1項目と対応する)によりインデックス化された、除去されないパラメータ名称を順序付けたリスト。このデータ構造は「動的」である(すなわち、プロセスの実行中に変化する)。項目をリストの中央から削除する場合、それに合わせて削除項目の後の項目のインデックスが移動するように、リストは位置によりインデックス化する。
n_dependencies_dict[name]:パラメータ名称(name)により入力される辞書であり、そのエントリは、入力されるパラメータが従属するパラメータの数を含む。この辞書は動的である。
dependers_dict[name]:パラメータ名称(name)により入力される辞書であり、そのエントリは、入力されるパラメータに従属するパラメーターセットを表す辞書である(パラメータ名称によっても入力される)。この辞書は静的である(すなわち、プロセス実行中に変化しない)。
order_dict[name]:パラメータ名称(name)により入力される辞書であり、最初の順序付けにおけるパラメータの序数付き位置、0〜N−1の整数を格納する。この辞書は静的である。
attribute_dict[name]:パラメータ名称(name)により入力される辞書であり、入力されるパラメータに対するオプションの属性データオブジェクトを格納する。この辞書は静的である。
result_list[index]:プロセスの出力を表すパラメータ名称および属性の順序付けたリストであり、番号のindexによりインデックス化される(index = 0はリスト内の第1項目に対応する)。このデータ構造は最初は空である。この辞書は動的である。
プロセスの時間効率を解析するために、従属関係グラフの平均「程度」(または、ノードからのリンク数)をzと仮定する。これらのデータ構造を作成するには、時間O(N)が必要である。但し、時間O(N*z)を要するn_dependencies_dictおよびdependers_dictを除く。
第2段階で、このプロセスは、これらが従属する除去されないパラメータの数により(すなわち、n_dependencies_dictの値だけ)、最低から最高まで、次いで、これらの序数により(すなわち、order_dictの値により)、最低から最高まで、最初にパラメータを順序付けるby_n_deps_and_orderによるソート基準に基づいてparam_listデータ構造内のパラメータをソートする。次いで、このプロセスは、ソートしたparam_list内の第2パラメータを除去する。このパラメータに対するn_dependencies_dictの値はゼロにすべきである。(ソートしたparam_list内の第1パラメータに対するn_dependencies_dictの値がゼロでない場合、エラーフラグが立てられる)。
パラメータを除去するために、このプロセスは、それを(どれかの対応する属性と併せて)result_listに追加し、従属するもの全ての(すなわち、dependers_dict内のパラメータ)従属関係カウント(すなわち、n_dependencies_dictの値)を1だけ減じる。最終的にそのパラメータはparm_listから消去される。得られた第1パラメータのソートおよび除去を、全てのパラメータが除去されてしまうまで繰り返す。
以下は、eliminate(除去)手順のための擬似コード定義である:
Figure 0005297802
eliminate(除去)手順の引数は、list(その値は、例えばparam_listである)およびindexである。関数result_list.appendは、関係する属性と併せて、位置indexに指示されるlist項目をresult_listに追加する。次いで、この手順は、除去されるパラメータに関して入力されるdependers_dictデータ構造のメンバーである各パラメータdependerに対するn_dependencies_dictの値を1だけ減じる。次いで、この手順は、listからパラメータを消去する。eliminate(除去)手順のランタイムは、O(zlogN)である。
以下は、第1「修正トポロジカルソート」プロセスに対するソート/除去ループのための擬似コードである:
Figure 0005297802
このプロセスは、最初に、上記説明したソート基準by_n_deps_and_orderに基づいてparam_listのパラメータを順序付ける関数parm_list.sort(by_n_deps_and_order)を用いてparam_listの最初のソートを実行する。次いで、このプロセスは、param_listが空になるまで、param_listの別のソートが続くeliminate(除去)手順を実行する。このプロセスは、param_list内の第1パラメータ(index =0を有する)に対する従属関係の数を確認するためにチェックする。Noの場合、このプロセスは、パラメータを削除し、循環エラーを記録し、そして継続する。ソートはO(NlogN)を要し、ループ範囲はNなので、ループに対する全体のランタイムに対する評価はO(N2logN)である。
第2の「修正トポロジカルソート」プロセスは、z << Nのような従属関係グラフがまばらな場合に利点がある。ある最初のソート後、このプロセスは、他のどのパラメータにも従属しないパラメータのリストcandidates(候補)のソート性を維持することができる。これは、後述するように、この予想されるランタイムを短縮する。
以下は、第2「修正トポロジカルソート」プロセスに対する擬似コードである:
Figure 0005297802
このプロセスは、最初に、上記説明したソート基準by_n_deps_and_orderに基づいてparam_listのパラメータを順序付ける関数parm_list.sort(by_n_deps_and_order)を用いてparam_listの最初のソートを実行する。次いで、このプロセスは、三つのセクション(ラベル付きの「#セクション1」、「#セクション2」、および「#セクション3」)を有するループを実行する。
セクション1で、このプロセスは、従属関係がゼロのパラメータだけを含むcandidates(候補)リストを作成する。このプロセスは、parm_list内の全てのパラメータをスキャンし、それらをcandidates(候補)に追加し、それらの相対的な順序を保存する。
セクション2で、このプロセスは、candidates(候補)からのパラメータを消去し、新規パラメータをcandidates(候補)内に結合するループを実行する。this_parmとして保存されたcandidates(候補)内の第1パラメータは、candidates(候補)から除去され、param_listから消去される。関数get_new(this_parm)は、新規に除去されたthis_parmに対するdependers_dictのメンバーであるパラメータ名称のリストを返し、ゼロの従属関係を残す。次いで、削除された最後の従属関係を持っているパラメータを表すこれらのパラメータを、(それぞれの序数に基づいて順序付けられたことを確認するため)by_n_deps_and_orderに基づいてソートし、candidates(候補)内に結合する。従って、candidates(候補)リストは、序数によりソートされるゼロ従属関係パラメータのリストのままである。
セクション3は、例えば、二つのパラメータが互いに対して定義される場合に発生する「循環エラー」がある場合に参加するだけである。この場合、このプロセスは、parm_listを再びソートし、parm_list内の第1パラメータがゼロでない従属関係を有する場合、それを消去し、ループをセクション1で繰り返す。
循環エラーが存在しないと仮定すると、Nパラメータのリストparm_listを開始時のみソートし、O(NlogN)のソート時間を生じる。この後は、candidates(候補)リストの先頭でパラメータを除去することにより得られる、新規に生成された従属関係のないパラメータの、ずっと小さなリストについてソートを行うだけでよい。このリストのサイズは(平均で)z未満であり、ソート時間O(zlogz)およびマージ時間O(z)が得られる。従って、ループの一回の繰り返しはO(zlogz)であり、全体時間はO(Nzlogz + NlogN)である。zがNの増加とともに増加しない場合には、この時間はO(NlogN)と効率的になる。
ソート実施例2
別の実施例では、パラメータソートプロセス(例えば、第1または第2「修正トポロジカルソート」プロセス)は、図25Aに示すように、グラフ成分2502、2504および2506を有するグラフ2500に対する、ランタイムパラメータの最初のリストを決定する。グラフ2500は、入力データセット2510の出力ポート2508および出力データセット2514の入力ポート2512に関係付けられるランタイムパラメータも有する。この実施例では、パラメータは、「成分内」従属関係および「成分間」従属関係の両方を有する。すなわち、成分のパラメータは、同一成分内のパラメータおよび他の成分内のパラメータに従属する。この実施例では、成分間の従属関係は、幾つかのパラメータが従属するメタデータの伝搬を可能とする成分間のフローにより発生する。
従属関係を、図25Aに、第1パラメータまたはポートから第2パラメータまたはポートまでの矢印で示す。ポートへの矢印は、リンクされるパラメータの値が、そのポートから下流のポートへ伝搬することを示す。あるポートからの矢印は、値が上流ポートから、リンクされるパラメータへ伝搬することを示す。第1パラメータから第2パラメータへの矢印は、第2パラメータの値が第1パラメータの値に従属する(例えば、参照する)ことを示す。
図25Bは、グラフ2500に基づくパラメータp0、p1、p2、p4、p5およびp6間の順序付け制約を表す従属関係グラフ2550を示す。図25Cは、グラフ2500に基づくパラメータp3、p7、p8およびp9間の順序付け制約を表す従属関係グラフ2552を示す。
パラメータソートプロセスは、グラフ2500内の要素配置の順序に基づいて、様々なグラフ要素に対する10個のパラメータp0、p2、…p9それぞれに序数を割り当てる。図25Aでは、グラフ2500へ追加される(例えば、GDE102を用いてユーザにより)第1グラフ要素は、パラメータp0、p1およびp2を有する成分2502である。追加される第2要素は、パラメータp3、p4およびp5を有する成分2506である。追加される第3要素は、パラメータp6を有するデータセット2510である。追加される第4要素は、パラメータp7を有するデータセット2514である。追加される最後の要素は、ランタイムパラメータを持たないデータセット2516である。以下の表は割り当てられた序数により定義された最初の順序付けでパラメータをリストアップする。
Figure 0005297802
処理の様々な段階におけるparam_listおよびresult_list内のパラメータの以下のリストは、上記説明の第1「修正トポロジカルソート」プロセスに対応する。それぞれの段階におけるby_n_deps_and_orderにより、ソート基準に基づいてソートされるparam_listを示す。
Figure 0005297802
処理の様々な段階におけるcandidates(候補)およびresult_list内のパラメータの以下のリストは、上記説明の第2「修正トポロジカルソート」プロセスに対応する。パラメータがそれぞれの段階における同一順序内に残っているので、段階の間のcandidates(候補)をソートしなくてもよい。
Figure 0005297802
従って、図26を参照すると、「修正トポロジカルソート」プロセス2600は、ランタイムパラメータの値をユーザに促す順序の所望の第1順序付け2602、およびパラメータに対する順序付け(例えば、従属関係グラフ2550および2552)の制約2604を入力としてとる。プロセス2600は、所望の第2順序付け2602に基づいて順序付け制約を満たすパラメーターセットの新規順序付け2606を提供する。
典型的な使用法
典型的には、ユーザは、ウェブインターフェース108の前に座り、ユーザが実行したいアプリケーションのグラフを収納庫104内に見つける。アプリケーショングラフに関係付けられるオブジェクト全てをスキャンすることにより、ウェブインターフェース108は、ユーザがアプリケーションのランタイムパラメータの値を規定できるウェブページ入力フォームを生成する。全てランタイムパラメータを規定し終わると、アプリケーションとパラメータ設定との組み合わせは、ジョブとしてまとめられ、実行部110が実行するようスケジュール化される。ジョブ実行の時間がくると、実行部110は、既知の方法で、並列オペレーティングシステム106のもとで実行するためにアプリケーションを待ち行列に並ばせる。並列オペレーティングシステム106は、ユーザおよび運営者がジョブの進行および性能を追跡できるように、追跡情報およびジョブステータスを収集し、この情報を収納庫104に格納する。
実施例
図14は、ランタイムパラメータがないロールアップアプリケーションを表すグラフ1400の図である。このグラフは、それぞれの種類のアカウントの数を計算し、その結果を出力ファイルへ書き込む。本アプリケーションの全ての態様、すなわち、入力ファイル成分1402の名称、入力データのフォーマット、ハッシュロールアップ成分1404内のデータをロールアップするために用いるキーと変換規則、出力フォーマット、および出力ファイル成分1406の名称は、グラフ開発者が決定したものである。ユーザは定義に従って正確にこのグラフを実行するだけでよい。
図15は、図14のロールアップアプリケーションのランタイムパラメータ化バージョンを表すグラフ1500の図である。このアプリケーションのデータフローグラフ構造は、非ランタイムパラメータ化バージョンと非常に類似しているが、このアプリケーションの方がよりフレキシブルである。ランタイムパラメータを通じて、エンドユーザは抽象化された入力データセット1502(入力ファイル名称およびフォーマットが導き出される収納オブジェクト)の名称、ハッシュロールアップ成分1504に対するロールアップキーおよびロールアップ規則、および出力ファイル成分1506の名称を規定できる。
図16は、図15のアプリケーション例に対するランタイムパラメーターグリッド1600を表すグラフダイアログの一実施の形態の図である。これは、図2に示すパラメーターグリッドの記入バージョンである。注意すべきは、上記説明のように、幾つかの既定パラメータがprompt_for擬似関数を用いて定義される、ということであり、従って、ウェブインターフェース108を介するユーザ入力を必要とする。このグラフの外観は、非ランタイムパラメータ化アプリケーショングラフとほとんど違わないが、一つ以上のパラメーターグリッド(または、他の適切な制御)により、開発者は、グラフの実行を制御する全てのパラメータを完全に追跡することができる。
図17Aは、図16のパラメーターグリッド1600内の情報から、ウェブインターフェース108により生成される入力フォーム1700を表すグラフダイアログの一実施の形態の図である。この実施例では、入力フォーム1700は、ユーザ入力の4つのランタイムパラメータ、すなわち、入力データセット収納庫パス1702、ロールアップキー1704、ロールアップ規則1706、および出力パス1708を表す。図17Bは、ユーザがパラメータ値を記入した図17Aの入力フォーム1700の図である。直接記入および/またはランタイムパラメータ1702〜1708に関係付けられる編集またはブラウザ操作ボタンを用いて、ユーザは、関係グラフを実行するための対応するパラメータ値1710〜1716を提供する。
図18は、ランタイムパラメータ化したロールアップおよび結合アプリケーションを表すグラフの図である。図19は、図18のアプリケーション例に対するランタイムパラメーターグリッド1900を表すグラフダイアログの一実施の形態の図である。ここで、このアプリケーションの幾つかの態様がパラメータ化されているが、結合キーおよび入力データセットを含むほとんどは固定されたままである。図20は、図19のパラメーターグリッド1900内の情報からウェブインターフェース108により生成される入力フォーム2000を表すグラフダイアログの一実施の形態の図である。注意すべきは、ロールアップへの入力形式は上位の入力フォームが表示された時点で既知となるので、ロールアップ規則2002を所定の位置に指示することができることである。
図21は、ランタイムパラメータ化したロールアップ−結合−ソートアプリケーションを表すグラフ2100の図である。図18の実施例と同様であるが、条件付きソート成分2102がグラフ2100へ追加されている。図22は、図21に示すアプリケーション例に対するランタイムパラメーターグリッド2200を表すグラフダイアログの一実施の形態の図である。sort_keyランタイムパラメータ2202は、ソートを望んでいることをユーザが示す場合のみ、記入を促される。この効果を得るために、開発者は、sort_keyランタイムパラメータ2202の既定値2204に対するif条件付きテスト内にprompt_for擬似関数を置く。if条件付きテストは、第2のランタイムパラメータ、do_sort2206を参照する。do_sortパラメータ2206の既定値フィールド2208および記述フィールド2210を定義して、テキストプロンプト「データをソートすべきでしょうか?」に対する真/偽またはYes/Noの回答をユーザに質問するradioプロンプトを生成する。do_sortパラメータ2206に提供される値が「真」の場合、ソート成分2102はランタイム時にグラフの一部として含まれる。「偽」の場合、ソート成分2102は、その規定した条件解釈に応じて、グラフから完全に削除されるか、またはフローで置換される。
スクリプト実装
GDE102は、パラメータ化したグラフの構築を容易にするが、時には、入力フォーム型インターフェースを提供したいと望まれる非グラフ形プログラムが存在する。アプリケーションレベルPLおよび収納庫104を用いて、任意のシェルスクリプトをパラメータ化できる。例えば、アプリケーションの記述を下記に類似な構造を有するファイルへ書き込むことができる:
Figure 0005297802
汎用コンピュータ実装
本発明は、ハードウエアもしくはソフトウエア、または両者の組み合わせ(例えば、プログラマブルロジックアレイ)で実装することができる。他に言及しない限り、本発明の一部として含まれるアルゴリズムは、何らかの特定コンピュータまたは他の装置と本質的には関連していない。特に、各種の汎用マシンを、本明細書の教示に基づいて書かれたプログラマブルにより用いることができ、または、より専用化した装置を構築して、要求される方法ステップを実行すると一層便利になる。しかし、本発明は、一台以上のプログラマブルコンピューターシステム上で実行する一台以上のコンピュータープログラムで実装することが好ましい。それぞれのシステムは、少なくとも一つのプロセッサ、少なくとも一つのデータ格納システム(揮発性メモリおよび不揮発性メモリおよび/または記憶素子を含む)、少なくとも一つの入力装置またはポート、および少なくとも一つの出力装置またはポートを備える。プログラムコードをプロセッサ上で実行して、本明細書で説明した機能を実行する。
このようなプログラムはそれぞれ、任意の所望するコンピュータ言語(機械語、アセンブリ言語、または高級プロシージャ言語、論理言語、もしくはオブジェクト指向プログラミング言語を含む)で実装して、コンピューターシステムと通信することができる。どの場合でも、言語はコンパイル型またはインタプリート型言語とすることができる。
このようなコンピュータープログラムはそれぞれ、汎用もしくは専用のプログラマブルコンピュータが読み取り可能な格納媒体または装置(例えば、固体、磁気、または光の媒体)に格納して、格納媒体または装置をコンピューターシステムが読み出し、本明細書で説明した手順を実行する時にコンピュータを構成し、動作させることが好ましい。進歩性のあるこのシステムは、コンピュータープログラムで構成されたコンピュータが読み取り可能な格納媒体として実装し、そのように構成される格納媒体が、コンピューターシステムを規定の方法、所定の方法で動作させて、本明細書で説明した機能を実行させると考えることもできる。
本発明の幾つかの実施の形態を説明してきた。にもかかわらず、言うまでもないのは、本発明の精神および範囲から逸脱することなく多様な修正を行うことができるということである。例えば、上記説明の機能ステップの幾つかは、全体の処理に実質的に影響を与えることなく異なる順序で実行してもよい。例えば、図4のステップ402および412は順序を逆にしても実行可能である。従って、他の実施の形態は以下のクレームの範囲内にある。
図1Aは、主要素の相互関係を示す本発明の一実施の形態のブロック図である。 図1Bは、データフローグラフのブロック図である。 図2は、指定されたランタイムパラメータを有するロールアップ成分およびソート成分204を有する代表的なグラフのブロック図である。 図3は、グラフに関係付けられるランタイムパラメーターグリッドを表すグラフダイアログの一実施の形態の図である。 図4は、ランタイムパラメータを用いるプロセスを要約したフローチャートである。 図5は、Key(キー)プロンプトにより生成されるグラフダイアログの一実施の形態の図である。 図6は、Filter(フィルタ)プロンプトにより生成されるグラフダイアログの一実施の形態の図である。 図7は、Rollup(ロールアップ)プロンプトにより生成されるグラフダイアログの一実施の形態の図である。 図8は、Reformat(再フォーマット)プロンプトにより生成されるグラフダイアログの一実施の形態の図である。 図9Aは、マージ結合成分がファイルAおよびBからのデータを結合し、その結果を出力ファイルへ出力する第1グラフのブロック図である。 図9Bは、ロールアップ成分がファイルAからのデータを集約し、その結果を出力ファイルへ出力する第2グラフのブロック図である。 図9Cは、マージ成分が、ファイルAおよびBからのデータを結合し、ロールアップ成分が、得られたデータを集約し、最終結果を出力ファイルへ出力するグラフのブロック図である。 図10は、Condition-interpretation(条件解釈)制御を有するCondition(条件)を表すグラフダイアログの一実施の形態の図である。 図11は、汚染(poison)が発生する状況を示すグラフの図である。 図12は、Remove Completely(完全削除)条件付き成分を含むグラフのランタイム準備のプロセスを要約するフローチャートである。 図13は、本発明の特定実施の形態に対するReplace With Flow(フローで置換)条件付き成分を含むグラフのランタイム準備のプロセスを要約するフローチャートである。 図14は、ランタイムパラメータがないロールアップアプリケーションを表すグラフの図である。 図15は、図14のロールアップアプリケーションのランタイムパラメータ化バージョンを表すグラフの図である。 図16は、図15の例示のアプリケーションに対するランタイムパラメーターグリッドを表すグラフダイアログの一実施の形態の図である。 図17Aは、図16のパラメーターグリッド内の情報からウェブインターフェースにより生成される入力フォームを表すグラフダイアログの一実施の形態の図である。 図17Bは、ユーザがパラメータ値を記入した図17Aの入力フォームの図である。 図18は、ランタイムパラメータ化したロールアップおよび結合アプリケーションを表すグラフの図である。 図19は、図18の例示のアプリケーションに対するランタイムパラメーターグリッドを表すグラフダイアログの一実施の形態の図である。 図20は、図19のパラメーターグリッド内の情報からウェブインターフェースにより生成される入力フォームを表すグラフダイアログの一実施の形態の図である。 図21は、ランタイムパラメータ化したロールアップ−結合−ソートアプリケーションを表すグラフの図である。 図22は、図21に示すアプリケーション例に対するランタイムパラメーターグリッドを表すグラフダイアログの一実施の形態の図である。 図23Aは、メタデータが伝搬されるグラフの図である。 図23Bは、図23Aのグラフ内の成分に対するサブグラフの図である。 図24は、メタデータ伝搬プロセスのフローチャートである。 図25Aは、成分内および成分間の従属関係を有するパラメータを含むグラフである。 図25Bは、図25Aのグラフのパラメータ間の従属関係を表す従属関係グラフである。 図25Cは、図25Aのグラフのパラメータ間の従属関係を表す従属関係グラフである。 図26は、修正トポロジのソートプロセスの図である。 各図面の同一符号は同一要素を表す。

Claims (72)

  1. グラフ型計算に関係付けられる、レコードのデータ形式を決定するための方法であって:
    コンピューターシステムが、グラフの第1部分に関係付けられる、レコードのデータ形式を変換して、前記グラフの第2部分に関係付けられる、前記レコードの変換データ形式を生成するステップと;
    前記コンピューターシステムが、前記グラフの前記第2部分に関連する前記グラフの第3部分を決定するステップと;
    前記コンピューターシステムが、前記グラフの前記第2部分から前記グラフの前記第3部分まで前記レコードの前記変換データ形式を伝搬させるステップと、を含む方法。
  2. 前記グラフの前記第3部分は、データフローにより前記グラフの前記第2部分に関連付けられる、
    請求項1の方法。
  3. 前記データフローは、二つの相互接続されたグラフ要素のポート間のデータフローを含む、
    請求項2の方法。
  4. 前記データフローは、グラフ要素の二つのポート間の内部データフローを含む、
    請求項2の方法。
  5. 前記グラフの前記第3部分は、第2部分に関係付けられる、前記レコードの前記変換データ形式が、前記第3部分とも関係付けられるべきであることを指示するリンクにより、前記グラフの前記第2部分に関連付けられる、
    請求項1の方法。
  6. 前記第1部分は、第1グラフ要素の第1ポートを含み:および、
    前記第2部分は、前記第1グラフ要素の第2ポートを含む、
    請求項1の方法。
  7. 前記レコードの前記データ形式を変換するステップは、前記コンピューターシステムが、前記第1ポートに関係付けられる前記レコードの前記データ形式への少なくとも一つの参照を含む、前記レコードのデータ形式定義を用いるステップを含む、
    請求項6の方法。
  8. 前記レコードの前記データ形式定義は、前記参照された、前記データの前記データ形式の関数として前記第2ポートに対する、レコードのデータ形式を定義する、
    請求項7の方法。
  9. 前記第1ポートは入力ポートであり、前記第2ポートは出力ポートである、
    請求項6の方法。
  10. 変換される前記レコードの前記データ形式は、ユーザにより提供される、
    請求項1の方法。
  11. 変換される前記レコードの前記データ形式は、前記グラフの第4部分から伝搬される、
    請求項1の方法。
  12. 前記コンピューターシステムが、前記グラフの接続性の変更に応じて、前記レコードの前記変換データ形式を伝搬するステップを更に含む、
    請求項1の方法。
  13. 前記コンピューターシステムが、ユーザーアクションに応じて、前記レコードの前記変換データ形式を伝搬するステップを含む、
    請求項1の方法。
  14. 前記コンピューターシステムが、ユーザからリクエストを受け取るステップと;
    前記コンピューターシステムが、前記リクエストに応じてユーザへグラフ要素に関係付けられた、前記レコードの前記変換データ形式を表示するステップとを更に含む、
    請求項1の方法。
  15. ユーザからの前記リクエストは、前記レコードの前記変換データ形式が表示されるべきグラフ要素を選択するユーザ入力を含む、
    請求項14の方法。
  16. 前記ユーザ入力は、所定時間の間、前記選択したグラフ要素のグラフ表現の近傍にオンスクリーンのポインタを配置するステップを含む、
    請求項15の方法。
  17. 前記表示される、前記レコードの前記データ形式は、別のグラフ要素から伝搬される、前記レコードの前記データ形式を含む、
    請求項14の方法。
  18. 前記表示される、前記レコードの前記データ形式は、前記グラフを実行する前に表示される、
    請求項14の方法。
  19. グラフ型計算に関係付けられる、レコードのデータ形式を決定するためのコンピュータで読み取り可能な格納媒体上に格納されるソフトウエアであって、前記ソフトウエアは、コンピューターシステムに:
    グラフの第1部分に関係付けられる、レコードのデータ形式を変換して、前記グラフの第2部分に関係付けられる、前記レコードの変換データ形式を生成するステップと;
    前記グラフの前記第2部分に関連する前記グラフの第3部分を決定するステップと;
    前記グラフの前記第2部分から前記グラフの前記第3部分まで前記レコードの前記変換データ形式を伝搬させるステップとを実行させるための命令を含むソフトウエア。
  20. グラフ型計算に関係付けられる、レコードのデータ形式を決定するためのシステムであって、前記システムは:
    グラフの第1部分に関係付けられる、レコードのデータ形式を変換して、前記グラフの第2部分に関係付けられる、前記レコードの変換データ形式を生成するための手段と;
    前記グラフの前記第2部分に関連する前記グラフの第3部分を決定するための手段と;
    前記グラフの前記第2部分から前記グラフの前記第3部分まで前記レコードの前記変換データ形式を伝搬させるための手段とを含むシステム。
  21. 前記グラフの前記第3部分は、データフローにより前記グラフの前記第2部分に関連付けられる、
    請求項19のソフトウェア。
  22. 前記データフローは、二つの相互接続されたグラフ要素のポート間のデータフローを含む、
    請求項21のソフトウェア。
  23. 前記データフローは、グラフ要素の二つのポート間の内部データフローを含む、
    請求項21のソフトウェア。
  24. 前記グラフの前記第3部分は、第2部分に関係付けられる、前記レコードの前記変換データ形式が、前記第3部分とも関係付けられるべきであることを指示するリンクにより、前記グラフの前記第2部分に関連付けられる、
    請求項19のソフトウェア。
  25. 前記第1部分は、第1グラフ要素の第1ポートを含み:および、
    前記第2部分は、前記第1グラフ要素の第2ポートを含む、
    請求項19のソフトウェア。
  26. 前記レコードの前記データ形式を変換するステップは、前記コンピューターシステムが、前記第1ポートに関係付けられる、前記レコードの前記データ形式への少なくとも一つの参照を含む、前記レコードのデータ形式定義を用いるステップを含む、
    請求項25のソフトウェア。
  27. 前記レコードの前記データ形式定義は、前記参照された、前記データの前記データ形式の関数として前記第2ポートに対する、レコードのデータ形式を定義する、
    請求項26のソフトウェア。
  28. 前記第1ポートは入力ポートであり、前記第2ポートは出力ポートである、
    請求項25のソフトウェア。
  29. 変換される、前記レコードの前記データ形式は、ユーザにより提供される、
    請求項19のソフトウェア。
  30. 変換される、前記レコードの前記データ形式は、前記グラフの第4部分から伝搬される、
    請求項19のソフトウェア。
  31. 前記ソフトウェアは、コンピューターシステムに、前記グラフの接続性の変更に応じて、前記レコードの前記変換データ形式を伝搬するステップを実行させるための命令を更に含む、
    請求項19のソフトウェア。
  32. 前記ソフトウェアは、コンピューターシステムに、ユーザーアクションに応じて、前記レコードの前記変換データ形式を伝搬するステップを実行させるための命令を更に含む、
    請求項19のソフトウェア。
  33. 前記ソフトウェアは、コンピューターシステムに、
    ユーザからリクエストを受け取るステップと;
    前記リクエストに応じてユーザへグラフ要素に関係付けられた、前記レコードの前記変換データ形式を表示するステップとを実行させるための命令を更に含む、
    請求項19のソフトウェア。
  34. ユーザからの前記リクエストは、前記レコードの前記変換データ形式が表示されるべきグラフ要素を選択するユーザ入力を含む、
    請求項33のソフトウェア。
  35. 前記ユーザ入力は、所定時間の間、前記選択したグラフ要素のグラフ表現の近傍にオンスクリーンのポインタを配置することを含む、
    請求項34のソフトウェア。
  36. 前記表示される、前記レコードの前記データ形式は、別のグラフ要素から伝搬される、前記レコードの前記データ形式を含む、
    請求項33のソフトウェア。
  37. 前記表示される、前記レコードの前記データ形式は、前記グラフを実行する前に表示される、
    請求項33のソフトウェア。
  38. 前記グラフの前記第3部分は、データフローにより前記グラフの前記第2部分に関連付けられる、
    請求項20のシステム。
  39. 前記データフローは、二つの相互接続されたグラフ要素のポート間のデータフローを含む、
    請求項38のシステム。
  40. 前記データフローは、グラフ要素の二つのポート間の内部データフローを含む、
    請求項38のシステム。
  41. 前記グラフの前記第3部分は、第2部分に関係付けられる、前記レコードの前記変換データ形式が、前記第3部分とも関係付けられるべきであることを指示するリンクにより、前記グラフの前記第2部分に関連付けられる、
    請求項20のシステム。
  42. 前記第1部分は、第1グラフ要素の第1ポートを含み:および、
    前記第2部分は、前記第1グラフ要素の第2ポートを含む、
    請求項20のシステム。
  43. 前記レコードの前記データ形式を変換することは、前記第1ポートに関係付けられる、前記レコードの前記データ形式への少なくとも一つの参照を含む、前記レコードのデータ形式定義を用いることを含む、
    請求項42のシステム。
  44. 前記レコードの前記データ形式定義は、前記参照された、前記データの前記データ形式の関数として前記第2ポートに対する、レコードのデータ形式を定義する、
    請求項43のシステム。
  45. 前記第1ポートは入力ポートであり、前記第2ポートは出力ポートである、
    請求項42のシステム。
  46. 変換される、前記レコードの前記データ形式は、ユーザにより提供される、
    請求項20のシステム。
  47. 変換される、前記レコードの前記データ形式は、前記グラフの第4部分から伝搬される、
    請求項20のシステム。
  48. 前記グラフの接続性の変更に応じて、前記レコードの前記変換データ形式を伝搬するための手段を更に含む、
    請求項20のシステム。
  49. ユーザーアクションに応じて、前記レコードの前記変換データ形式を伝搬するための手段を更に含む、
    請求項20のシステム。
  50. ユーザからリクエストを受け取るための手段と;
    前記リクエストに応じてユーザへグラフ要素に関係付けられた、前記レコードの前記変換データ形式を表示するための手段とを更に含む、
    請求項20のシステム。
  51. ユーザからの前記リクエストは、前記レコードの前記変換データ形式が表示されるべきグラフ要素を選択するユーザ入力を含む、
    請求項50のシステム。
  52. 前記ユーザ入力は、所定時間の間、前記選択したグラフ要素のグラフ表現の近傍にオンスクリーンのポインタを配置することを含む、
    請求項51のシステム。
  53. 前記表示される、前記レコードの前記データ形式は、別のグラフ要素から伝搬される、前記レコードの前記データ形式を含む、
    請求項50のシステム。
  54. 前記表示される、前記レコードの前記データ形式は、前記グラフを実行する前に表示される、
    請求項50のシステム。
  55. グラフ型計算に関係付けられる、レコードのデータ形式を決定するためのシステムであって、前記システムは:
    レコードのデータ形式を受け取るように構成された入力デバイスと;
    前記レコードのデータ形式を決定するための処理を実行するように構成された、少なくとも1つのプロセッサとを含み、前記処理は:
    グラフの第1部分に関係付けられる、前記レコードの前記データ形式を変換して、前記グラフの第2部分に関係付けられる、前記レコードの変換データ形式を生成するステップと;
    前記グラフの前記第2部分に関連する前記グラフの第3部分を決定するステップと;
    前記グラフの前記第2部分から前記グラフの前記第3部分まで前記レコードの前記変換データ形式を伝搬させるためのステップとを含むシステム。
  56. 前記グラフの前記第3部分は、データフローにより前記グラフの前記第2部分に関連付けられる、
    請求項55のシステム。
  57. 前記データフローは、二つの相互接続されたグラフ要素のポート間のデータフローを含む、
    請求項56のシステム。
  58. 前記データフローは、グラフ要素の二つのポート間の内部データフローを含む、
    請求項56のシステム。
  59. 前記グラフの前記第3部分は、第2部分に関係付けられる、前記レコードの前記変換データ形式が、前記第3部分とも関係付けられるべきであることを指示するリンクにより、前記グラフの前記第2部分に関連付けられる、
    請求項55のシステム。
  60. 前記第1部分は、第1グラフ要素の第1ポートを含み:および、
    前記第2部分は、前記第1グラフ要素の第2ポートを含む、
    請求項55のシステム。
  61. 前記レコードの前記データ形式を変換するステップは、前記コンピューターシステムが、前記第1ポートに関係付けられる、前記レコードの前記データ形式への少なくとも一つの参照を含む、前記レコードのデータ形式定義を用いるステップを含む、
    請求項60のシステム。
  62. 前記レコードの前記データ形式定義は、前記参照された、前記データの前記データ形式の関数として前記第2ポートに対する、レコードのデータ形式を定義する、
    請求項61のシステム。
  63. 前記第1ポートは入力ポートであり、前記第2ポートは出力ポートである、
    請求項60のシステム。
  64. 変換される、前記レコードの前記データ形式は、ユーザにより提供される、
    請求項55のシステム。
  65. 変換される、前記レコードの前記データ形式は、前記グラフの第4部分から伝搬される、
    請求項55のシステム。
  66. 前記処理は、前記グラフの接続性の変更に応じて、前記レコードの前記変換データ形式を伝搬するステップを更に含む、
    請求項55のシステム。
  67. 前記処理は、ユーザーアクションに応じて、前記レコードの前記変換データ形式を伝搬するステップを更に含む、
    請求項55のシステム。
  68. 前記処理は:
    ユーザからリクエストを受け取るステップと;
    前記リクエストに応じてユーザへグラフ要素に関係付けられた、前記レコードの前記変換データ形式を表示するステップとを更に含む、
    請求項55のシステム。
  69. ユーザからの前記リクエストは、前記レコードの前記変換データ形式が表示されるべきグラフ要素を選択するユーザ入力を含む、
    請求項68のシステム。
  70. 前記ユーザ入力は、所定時間の間、前記選択したグラフ要素のグラフ表現の近傍にオンスクリーンのポインタを配置することを含む、
    請求項69のシステム。
  71. 前記表示される、前記レコードの前記データ形式は、別のグラフ要素から伝搬される、前記レコードの前記データ形式を含む、
    請求項68のシステム。
  72. 前記表示される、前記レコードの前記データ形式は、前記グラフを実行する前に表示される、
    請求項68のシステム。
JP2008519474A 2005-06-27 2006-06-27 グラフ型計算のためのメタデータ管理 Active JP5297802B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/167,902 US7877350B2 (en) 2005-06-27 2005-06-27 Managing metadata for graph-based computations
US11/167,902 2005-06-27
PCT/US2006/024933 WO2007002647A2 (en) 2005-06-27 2006-06-27 Managing metadata for graph-based computations

Publications (2)

Publication Number Publication Date
JP2008544423A JP2008544423A (ja) 2008-12-04
JP5297802B2 true JP5297802B2 (ja) 2013-09-25

Family

ID=37568863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008519474A Active JP5297802B2 (ja) 2005-06-27 2006-06-27 グラフ型計算のためのメタデータ管理

Country Status (8)

Country Link
US (3) US7877350B2 (ja)
EP (1) EP1899873A4 (ja)
JP (1) JP5297802B2 (ja)
KR (2) KR101278078B1 (ja)
CN (1) CN101208695B (ja)
AU (1) AU2006261749B2 (ja)
CA (1) CA2610989C (ja)
WO (1) WO2007002647A2 (ja)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
EP2527983A3 (en) 2006-08-10 2013-06-12 Ab Initio Technology LLC Distributing services in graph-based computations
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
US8706667B2 (en) * 2007-07-26 2014-04-22 Ab Initio Technology Llc Transactional graph-based computation with error handling
KR101552188B1 (ko) * 2007-09-07 2015-09-10 삼성전자 주식회사 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치
KR101499599B1 (ko) 2008-06-30 2015-03-18 아브 이니티오 테크놀로지 엘엘시 그래프 기반 계산에서의 데이터 로깅
AU2009322441B2 (en) * 2008-12-02 2016-07-28 Ab Initio Technology Llc Visualizing relationships between data elements
EP2370892B1 (en) 2008-12-02 2020-11-04 Ab Initio Technology LLC Mapping instances of a dataset within a data management system
EP2391938A4 (en) 2009-01-30 2016-06-08 Ab Initio Technology Llc DATA PROCESSING WITH VECTOR FIELDS
CN105843684B (zh) * 2009-02-13 2020-03-03 起元技术有限责任公司 管理任务执行
KR101688555B1 (ko) * 2009-09-16 2016-12-21 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
CA2782414C (en) * 2009-12-14 2021-08-03 Ab Initio Technology Llc Specifying user interface elements
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
WO2011159759A1 (en) 2010-06-15 2011-12-22 Ab Initio Technology Llc Dynamically loading graph-based computations
US9396283B2 (en) 2010-10-22 2016-07-19 Daniel Paul Miranker System for accessing a relational database using semantic queries
US8510288B2 (en) * 2010-10-22 2013-08-13 Microsoft Corporation Applying analytic patterns to data
JP5902185B2 (ja) * 2010-10-25 2016-04-13 アビニシオ テクノロジー エルエルシー コンピュータプログラムを表すデータフローグラフ内のデータセットオブジェクトの管理
WO2012097278A1 (en) 2011-01-14 2012-07-19 Ab Initio Technology Llc Managing changes to collections of data
US9003084B2 (en) * 2011-02-18 2015-04-07 Ab Initio Technology Llc Sorting
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US9038033B1 (en) * 2011-12-09 2015-05-19 Sencha, Inc. Techniques and mechanisms for web application minification
WO2013157244A1 (ja) * 2012-04-18 2013-10-24 日本電気株式会社 タスク配置装置、タスク配置方法、および、コンピュータ・プログラム
KR102031402B1 (ko) * 2012-07-24 2019-10-11 아브 이니티오 테크놀로지 엘엘시 데이터 모델에서의 엔티티 매핑
US9032362B2 (en) * 2012-09-10 2015-05-12 Sap Se System and method for generating high performance calculators for calculation graphs
US9852153B2 (en) 2012-09-28 2017-12-26 Ab Initio Technology Llc Graphically representing programming attributes
US10489360B2 (en) 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
AU2013335231B2 (en) 2012-10-22 2018-08-09 Ab Initio Technology Llc Profiling data with location information
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9703822B2 (en) 2012-12-10 2017-07-11 Ab Initio Technology Llc System for transform generation
US9116603B2 (en) 2012-12-26 2015-08-25 Ab Initio Technology Llc Managing interactions with data having membership in multiple groupings
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
KR102349573B1 (ko) 2013-09-27 2022-01-10 아브 이니티오 테크놀로지 엘엘시 데이터에 적용되는 규칙 평가
EP3092557B1 (en) * 2013-12-05 2024-03-27 AB Initio Technology LLC Managing interfaces for dataflow graphs composed of sub-graphs
KR102186050B1 (ko) 2013-12-06 2020-12-03 아브 이니티오 테크놀로지 엘엘시 소스 코드 번역
CA2941115C (en) 2014-03-14 2023-04-04 Ab Initio Technology Llc Mapping attributes of keyed entities
US9626407B2 (en) 2014-06-17 2017-04-18 Google Inc. Real-time saved-query updates for a large graph
SG11201700381XA (en) 2014-07-18 2017-02-27 Ab Initio Technology Llc Managing lineage information
CN104182528B (zh) * 2014-08-27 2017-07-07 广西教育学院 基于偏序模式的教育信息化课程关联模式发现方法及系统
US9626393B2 (en) 2014-09-10 2017-04-18 Ab Initio Technology Llc Conditional validation rules
US10176234B2 (en) * 2014-11-05 2019-01-08 Ab Initio Technology Llc Impact analysis
US10055333B2 (en) * 2014-11-05 2018-08-21 Ab Initio Technology Llc Debugging a graph
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
WO2016130626A1 (en) * 2015-02-11 2016-08-18 Ab Initio Technology Llc Filtering data lineage diagrams
US10417281B2 (en) * 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US20160246574A1 (en) * 2015-02-23 2016-08-25 Eddie Jakobitz Task sequencer
US10521209B2 (en) * 2015-05-12 2019-12-31 Phase Change Software Llc Machine-based normalization of machine instructions
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10127264B1 (en) 2015-09-17 2018-11-13 Ab Initio Technology Llc Techniques for automated data analysis
WO2017112654A2 (en) * 2015-12-21 2017-06-29 Ab Initio Technology Llc Sub-graph interface generation
CN105843660B (zh) * 2016-03-21 2019-04-02 同济大学 一种编译器的代码优化调度方法
USD881907S1 (en) * 2016-04-22 2020-04-21 Aetna Inc. Display screen with a graphical user interface
US10936289B2 (en) 2016-06-03 2021-03-02 Ab Initio Technology Llc Format-specific data processing operations
US10324925B2 (en) 2016-06-19 2019-06-18 Data.World, Inc. Query generation for collaborative datasets
US11042560B2 (en) 2016-06-19 2021-06-22 data. world, Inc. Extended computerized query language syntax for analyzing multiple tabular data arrangements in data-driven collaborative projects
US11068847B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to facilitate data project development via data access layering logic in a networked computing platform including collaborative datasets
US10747774B2 (en) 2016-06-19 2020-08-18 Data.World, Inc. Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets
US11042537B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US10699027B2 (en) 2016-06-19 2020-06-30 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US11468049B2 (en) 2016-06-19 2022-10-11 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US11755602B2 (en) 2016-06-19 2023-09-12 Data.World, Inc. Correlating parallelized data from disparate data sources to aggregate graph data portions to predictively identify entity data
US10452677B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US11016931B2 (en) 2016-06-19 2021-05-25 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US11086896B2 (en) 2016-06-19 2021-08-10 Data.World, Inc. Dynamic composite data dictionary to facilitate data operations via computerized tools configured to access collaborative datasets in a networked computing platform
US10515085B2 (en) 2016-06-19 2019-12-24 Data.World, Inc. Consolidator platform to implement collaborative datasets via distributed computer networks
US10984008B2 (en) 2016-06-19 2021-04-20 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US11947554B2 (en) 2016-06-19 2024-04-02 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US11023104B2 (en) 2016-06-19 2021-06-01 data.world,Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11042556B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Localized link formation to perform implicitly federated queries using extended computerized query language syntax
US10824637B2 (en) 2017-03-09 2020-11-03 Data.World, Inc. Matching subsets of tabular data arrangements to subsets of graphical data arrangements at ingestion into data driven collaborative datasets
US11068475B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to develop and manage data-driven projects collaboratively via a networked computing platform and collaborative datasets
US10691710B2 (en) 2016-06-19 2020-06-23 Data.World, Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US10645548B2 (en) 2016-06-19 2020-05-05 Data.World, Inc. Computerized tool implementation of layered data files to discover, form, or analyze dataset interrelations of networked collaborative datasets
US10353911B2 (en) 2016-06-19 2019-07-16 Data.World, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
US10853376B2 (en) 2016-06-19 2020-12-01 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US11036716B2 (en) 2016-06-19 2021-06-15 Data World, Inc. Layered data generation and data remediation to facilitate formation of interrelated data in a system of networked collaborative datasets
US11042548B2 (en) 2016-06-19 2021-06-22 Data World, Inc. Aggregation of ancillary data associated with source data in a system of networked collaborative datasets
US10452975B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11036697B2 (en) 2016-06-19 2021-06-15 Data.World, Inc. Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
US11675808B2 (en) 2016-06-19 2023-06-13 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US10346429B2 (en) 2016-06-19 2019-07-09 Data.World, Inc. Management of collaborative datasets via distributed computer networks
US11334625B2 (en) 2016-06-19 2022-05-17 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US10438013B2 (en) 2016-06-19 2019-10-08 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11941140B2 (en) 2016-06-19 2024-03-26 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US10162354B2 (en) * 2016-07-21 2018-12-25 Baidu Usa Llc Controlling error corrected planning methods for operating autonomous vehicles
CN110023925A (zh) 2016-12-01 2019-07-16 起元技术有限责任公司 生成、访问和显示沿袭元数据
JP7023953B2 (ja) * 2017-01-11 2022-02-22 ソシエテ・デ・プロデュイ・ネスレ・エス・アー 乳清タンパク質ミセルを含む乳清タンパク質とカゼイン供給源とによる、熱滅菌した高タンパク質でスプーン切れのよい栄養組成物
US11238109B2 (en) 2017-03-09 2022-02-01 Data.World, Inc. Computerized tools configured to determine subsets of graph data arrangements for linking relevant data to enrich datasets associated with a data-driven collaborative dataset platform
US11068453B2 (en) 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
US11113051B2 (en) * 2017-04-28 2021-09-07 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
KR20200052277A (ko) 2017-08-03 2020-05-14 넥스트 실리콘 리미티드 설정가능한 하드웨어 런타임 최적화
US10817344B2 (en) 2017-09-13 2020-10-27 Next Silicon Ltd Directed and interconnected grid dataflow architecture
GB201716304D0 (en) * 2017-10-05 2017-11-22 Palantir Technologies Inc Data analysis system and method
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
US11055074B2 (en) 2017-11-13 2021-07-06 Ab Initio Technology Llc Key-based logging for processing of structured data items with executable logic
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US10922308B2 (en) 2018-03-20 2021-02-16 Data.World, Inc. Predictive determination of constraint data for application with linked data in graph-based datasets associated with a data-driven collaborative dataset platform
US11243960B2 (en) 2018-03-20 2022-02-08 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures
USD920353S1 (en) 2018-05-22 2021-05-25 Data.World, Inc. Display screen or portion thereof with graphical user interface
US11947529B2 (en) 2018-05-22 2024-04-02 Data.World, Inc. Generating and analyzing a data model to identify relevant data catalog data derived from graph-based data arrangements to perform an action
USD940169S1 (en) 2018-05-22 2022-01-04 Data.World, Inc. Display screen or portion thereof with a graphical user interface
US11537990B2 (en) 2018-05-22 2022-12-27 Data.World, Inc. Computerized tools to collaboratively generate queries to access in-situ predictive data models in a networked computing platform
USD940732S1 (en) 2018-05-22 2022-01-11 Data.World, Inc. Display screen or portion thereof with a graphical user interface
US11327991B2 (en) 2018-05-22 2022-05-10 Data.World, Inc. Auxiliary query commands to deploy predictive data models for queries in a networked computing platform
US11442988B2 (en) 2018-06-07 2022-09-13 Data.World, Inc. Method and system for editing and maintaining a graph schema
WO2020068927A2 (en) 2018-09-25 2020-04-02 Ab Initio Technology Llc A dedicated audit port for implementing recoverability in outputting audit data
CN110968709B (zh) * 2018-09-30 2023-04-07 北京国双科技有限公司 数据传输方法及相关系统
CA3114288A1 (en) 2018-10-15 2020-04-23 Netz Forecasts Ltd. Systems and methods for network stabilization prediction
US11175914B2 (en) * 2019-06-28 2021-11-16 Aras Corporation Calculation engine for performing calculations based on dependencies in a self-describing data system
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods
US11269526B2 (en) 2020-04-23 2022-03-08 Next Silicon Ltd Interconnected memory grid with bypassable units
US20220091908A1 (en) * 2020-09-24 2022-03-24 UiPath, Inc. Filter instantiation for process graphs of rpa workflows
DE112022000886T5 (de) 2021-01-31 2023-12-21 Ab Initio Technology Llc Datenverarbeitungssystem mit manipulation logischer datensatzgruppen
US11947600B2 (en) 2021-11-30 2024-04-02 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures

Family Cites Families (203)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3662343A (en) 1970-07-29 1972-05-09 Docutel Corp Credit card automatic currency dispenser
US3662401A (en) 1970-09-23 1972-05-09 Collins Radio Co Method of program execution
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4814979A (en) 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4720780A (en) 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4914568A (en) 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5127104A (en) 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation
JPS63231613A (ja) 1987-03-20 1988-09-27 Matsushita Giken Kk コマンド設定方法
JPH0526792Y2 (ja) 1987-07-14 1993-07-07
JPH01258122A (ja) * 1988-04-08 1989-10-16 Nec Corp データ形式変換方式
US5357632A (en) 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5280619A (en) 1990-05-17 1994-01-18 Texas Instruments Incorporated System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions
US5323452A (en) 1990-12-18 1994-06-21 Bell Communications Research, Inc. Visual programming of telephone network call processing logic
EP0529303A3 (en) 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US6400996B1 (en) 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5333319A (en) 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
JP3223933B2 (ja) 1993-02-10 2001-10-29 日本電信電話株式会社 知識ベース推論方法およびその装置
US5745778A (en) 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US6044211A (en) 1994-03-14 2000-03-28 C.A.E. Plus, Inc. Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US5692168A (en) 1994-10-18 1997-11-25 Cyrix Corporation Prefetch buffer using flow control bit to identify changes of flow within the code stream
JPH08305576A (ja) 1995-01-12 1996-11-22 Internatl Business Mach Corp <Ibm> コンピュータ・ユーザとの対話を行うためのエキスパート・システム及びその方法
US5673369A (en) 1995-03-02 1997-09-30 International Business Machines Corporation Authoring knowledge-based systems using interactive directed graphs
US5701400A (en) 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5805462A (en) 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
JP3154942B2 (ja) 1995-09-11 2001-04-09 株式会社東芝 分散チェックポイント生成方法および同方法が適用される計算機システム
US5630047A (en) 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5712971A (en) 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
JP3258228B2 (ja) 1996-03-15 2002-02-18 株式会社東芝 チェックポイント生成方法
US7415466B2 (en) 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery
US6006242A (en) 1996-04-05 1999-12-21 Bankers Systems, Inc. Apparatus and method for dynamically creating a document
US5857204A (en) 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JP3672208B2 (ja) 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US6016516A (en) 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6760903B1 (en) 1996-08-27 2004-07-06 Compuware Corporation Coordinated application monitoring in a distributed computing environment
US5799266A (en) 1996-09-19 1998-08-25 Sun Microsystems, Inc. Automatic generation of test drivers
US5930794A (en) 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
US6038558A (en) 1996-10-18 2000-03-14 Sagent Technology, Inc. Extensible database retrieval and viewing architecture
US6151531A (en) 1996-12-12 2000-11-21 Charles Frankel Et Al System and method for managing the alteration of garments
US5924095A (en) 1997-02-05 1999-07-13 Oracle Corporation Processing distributed transactions in heterogeneous computing environments using two-phase commit
US6330008B1 (en) 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
US5933640A (en) 1997-02-26 1999-08-03 Digital Equipment Corporation Method for analyzing and presenting test execution flows of programs
US5999729A (en) 1997-03-06 1999-12-07 Continuum Software, Inc. System and method for developing computer programs for execution on parallel processing systems
US6088716A (en) 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
US6032158A (en) 1997-05-02 2000-02-29 Informatica Corporation Apparatus and method for capturing and propagating changes from an operational database to data marts
JPH1124904A (ja) * 1997-07-01 1999-01-29 Mitsubishi Electric Corp プログラム作成装置及びプログラム作成プログラムを記憶した記憶媒体
US6044394A (en) 1997-07-21 2000-03-28 International Business Machines Corporation Managing independently executing computer tasks that are interrelated by dataflow
US6145017A (en) 1997-08-05 2000-11-07 Adaptec, Inc. Data alignment system for a hardware accelerated command interpreter engine
US6173276B1 (en) 1997-08-21 2001-01-09 Scicomp, Inc. System and method for financial instrument modeling and valuation
US6574661B1 (en) 1997-09-26 2003-06-03 Mci Communications Corporation Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client
US6332212B1 (en) 1997-10-02 2001-12-18 Ltx Corporation Capturing and displaying computer program execution timing
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6014670A (en) * 1997-11-07 2000-01-11 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6339775B1 (en) * 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6044374A (en) 1997-11-14 2000-03-28 Informatica Corporation Method and apparatus for sharing metadata between multiple data marts through object references
JPH11184766A (ja) 1997-12-18 1999-07-09 Nippon Telegr & Teleph Corp <Ntt> ビジネスイベントサーバ
US6272650B1 (en) 1998-02-03 2001-08-07 Amazing Media, Inc. System and method for disambiguating scene graph loads
US6437796B2 (en) 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method
US6208345B1 (en) * 1998-04-15 2001-03-27 Adc Telecommunications, Inc. Visual data integration system and method
US6256637B1 (en) 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6675189B2 (en) 1998-05-28 2004-01-06 Hewlett-Packard Development Company, L.P. System for learning and applying integrated task and data parallel strategies in dynamic applications
US6480876B2 (en) 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism in dynamic applications
US6314114B1 (en) 1998-06-23 2001-11-06 Oracle Corporation Distributed resource management
US6259988B1 (en) 1998-07-20 2001-07-10 Lockheed Martin Corporation Real-time mission adaptable route planner
JP2000099317A (ja) 1998-09-18 2000-04-07 Toshiba Corp ユーザインタフェース設計装置及び方法
US6401216B1 (en) 1998-10-29 2002-06-04 International Business Machines Corporation System of performing checkpoint/restart of a parallel program
US6608628B1 (en) 1998-11-06 2003-08-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) Method and apparatus for virtual interactive medical imaging by multiple remotely-located users
US6570579B1 (en) 1998-11-09 2003-05-27 Broadcom Corporation Graphics display system
US6449711B1 (en) 1999-02-04 2002-09-10 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs
JP2000244749A (ja) * 1999-02-24 2000-09-08 Sony Corp データ演算装置及び方法並びにデータ演算プログラムを供給するプログラム供給媒体
US6538651B1 (en) 1999-03-19 2003-03-25 John Hayman Parametric geometric element definition and generation system and method
US6728879B1 (en) 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6816825B1 (en) 1999-06-18 2004-11-09 Nec Corporation Simulation vector generation from HDL descriptions for observability-enhanced statement coverage
US6647408B1 (en) 1999-07-16 2003-11-11 Novell, Inc. Task distribution
US6715145B1 (en) 1999-08-31 2004-03-30 Accenture Llp Processing pipeline in a base services pattern environment
US20020129340A1 (en) 1999-10-28 2002-09-12 Tuttle Douglas D. Reconfigurable isomorphic software representations
US7137116B2 (en) 1999-11-09 2006-11-14 Microsoft Corporation Method and system for performing a task on a computer
US6879946B2 (en) 1999-11-30 2005-04-12 Pattern Discovery Software Systems Ltd. Intelligent modeling, transformation and manipulation system
US6584581B1 (en) 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
US7409679B2 (en) 1999-12-20 2008-08-05 Headway Research Limited System and method for computer-aided graph-based dependency analysis
MXPA01012275A (es) * 2000-03-31 2003-06-24 Sanochemia Pharmazeutika Ag Derivados y analogos novedosos de galantamina.
US6848100B1 (en) 2000-03-31 2005-01-25 Intel Corporation Hierarchical software path profiling
US7062483B2 (en) 2000-05-18 2006-06-13 Endeca Technologies, Inc. Hierarchical data-driven search and navigation system and method for information retrieval
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6813761B1 (en) 2000-06-30 2004-11-02 Microsoft Corporation Methods for enhancing flow analysis
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6832369B1 (en) 2000-08-01 2004-12-14 International Business Machines Corporation Object oriented method and apparatus for class variable initialization
US6496961B2 (en) 2000-10-27 2002-12-17 Nec Usa, Inc. Dynamic detection and removal of inactive clauses in SAT with application in image computation
US20020152244A1 (en) 2000-12-22 2002-10-17 International Business Machines Corporation Method and apparatus to dynamically create a customized user interface based on a document type definition
US6804800B2 (en) 2000-12-29 2004-10-12 Intel Corporation Method and apparatus for detecting and recovering from errors in a source synchronous bus
JP4294879B2 (ja) * 2001-02-05 2009-07-15 株式会社日立製作所 サービスレベル制御機構を有するトランザクション処理システム及びそのためのプログラム
US20020111876A1 (en) 2001-02-09 2002-08-15 Rudraraju Panduranga R. Transaction aggregation system and method
US7082386B2 (en) 2001-02-21 2006-07-25 International Business Machines Corporation Generalized software modeling tool
US20030004773A1 (en) * 2001-03-15 2003-01-02 Objectsoft, Inc. Scheduling system with methods for polling to determine best date and time
US7188091B2 (en) 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US6651234B2 (en) 2001-04-06 2003-11-18 Nec Corporation Partition-based decision heuristics for SAT and image computation using SAT and BDDs
US20020147745A1 (en) 2001-04-09 2002-10-10 Robert Houben Method and apparatus for document markup language driven server
US7082604B2 (en) 2001-04-20 2006-07-25 Mobile Agent Technologies, Incorporated Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US20040093559A1 (en) * 2001-05-25 2004-05-13 Ruth Amaru Web client for viewing and interrogating enterprise data semantically
GB2376094A (en) 2001-05-30 2002-12-04 Ibm Flexible navigation of a workflow graph in a data processing system
US7069536B2 (en) 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20030033432A1 (en) 2001-08-08 2003-02-13 Simpson Shell S. Web based imaging service that converts web pages into content on behalf of another web site
US20040006745A1 (en) * 2001-08-31 2004-01-08 Van Helden Wico Methods, apparatuses, system, and articles for associating metadata with datastream
US7165030B2 (en) 2001-09-17 2007-01-16 Massachusetts Institute Of Technology Concatenative speech synthesis using a finite-state transducer
US7085426B2 (en) 2001-10-15 2006-08-01 Jonas August Volterra filters for enhancement of contours in images
US7130484B2 (en) 2001-10-15 2006-10-31 Jonas August Biased curve indicator random field filters for enhancement of contours in images
DE10152213B4 (de) 2001-10-23 2006-04-27 Onespin Solutions Gmbh Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches
US7092401B2 (en) 2001-11-15 2006-08-15 International Business Machines Corporation Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram
DE60106467T2 (de) 2001-12-14 2006-02-23 Hewlett-Packard Development Co., L.P., Houston Verfahren zum Installieren Überwachungsagenten, System und Computerprogramm von Objekten in einem IT-Netz Überwachung
US7240247B2 (en) 2002-04-29 2007-07-03 Intel Corporation Providing a chain of tokenized error and state information for a call stack
US20040041838A1 (en) 2002-09-04 2004-03-04 Adusumilli Venkata J.R.B. Method and system for graphing data
US7103597B2 (en) 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7167850B2 (en) 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
US7694272B2 (en) 2002-10-21 2010-04-06 Sungard (Israel) Ltd Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language
US7412658B2 (en) * 2002-11-14 2008-08-12 Sap Ag Modeling system for graphic user interface
US7711772B2 (en) 2002-11-15 2010-05-04 Schlumberger Technology Corporation Web-based system and method for electronic data delivery
US7430747B2 (en) 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7441008B2 (en) 2002-12-18 2008-10-21 International Business Machines Corporation Method for correlating transactions and messages
US20050193056A1 (en) 2002-12-26 2005-09-01 Schaefer Diane E. Message transfer using multiplexed connections in an open system interconnection transaction processing environment
US20040148373A1 (en) 2003-01-23 2004-07-29 International Business Machines Corporation Service level agreement compliance measurement
US7707564B2 (en) 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7417645B2 (en) 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US7669129B2 (en) * 2003-04-04 2010-02-23 Avid Technology, Inc. Graphical user interface for providing editing of transform hierarchies within an effects tree
US7665025B2 (en) 2003-04-16 2010-02-16 The Mathworks, Inc. Signal navigation and label propagation in block diagrams
US20040225657A1 (en) 2003-05-07 2004-11-11 Panacea Corporation Web services method and system
US8265979B2 (en) 2003-06-17 2012-09-11 International Business Machines Corporation Automatic generation of process models
EP1636730A2 (en) 2003-06-18 2006-03-22 Applera Corporation Methods and systems for the analysis of biological sequence data
EP1639510A1 (en) 2003-06-24 2006-03-29 BAE Systems PLC A method, tool and system for increasing the efficiency of a design process
CA2891145C (en) 2003-06-25 2019-02-19 Craig W. Stanfill Computer-aided parallelizing of computation graphs
EP1652072A4 (en) 2003-07-11 2008-12-31 Computer Ass Think Inc METHOD AND APPARATUS FOR PROCESSING PARALLEL ACTIONS
GB0318196D0 (en) 2003-08-02 2003-09-03 Ibm A method apparatus and computer program for processing a queue of messages
US7444595B2 (en) 2003-08-13 2008-10-28 National Instruments Corporation Graphical programming system and method for creating and managing a scene graph
WO2005022417A2 (en) * 2003-08-27 2005-03-10 Ascential Software Corporation Methods and systems for real time integration services
US7174479B2 (en) 2003-09-10 2007-02-06 Microsoft Corporation Method and system for rollback-free failure recovery of multi-step procedures
EP1676217B1 (en) * 2003-09-15 2011-07-06 Ab Initio Technology LLC Data profiling
US20050102670A1 (en) 2003-10-21 2005-05-12 Bretl Robert F. Shared object memory with object management for multiple virtual machines
US20050097515A1 (en) 2003-10-31 2005-05-05 Honeywell International, Inc. Data empowered laborsaving test architecture
US20080052687A1 (en) * 2003-11-03 2008-02-28 Agustin Gonzales-Tuchmann Development environment for data transformation applications
US7480863B2 (en) * 2003-11-26 2009-01-20 International Business Machines Corporation Dynamic and intelligent hover assistance
US7296072B2 (en) 2003-12-12 2007-11-13 International Business Machines Corporation Enhanced port type agnostic proxy support for web services intermediaries
US7404189B2 (en) 2003-12-30 2008-07-22 International Business Machines Corporation Scheduler supporting web service invocation
US7543275B2 (en) 2004-01-29 2009-06-02 Sun Microsystems, Inc. Mechanism for executing test suites written for different harnesses under one test execution harness
US7467383B2 (en) 2004-03-08 2008-12-16 Ab Initio Software Llc System for controlling task execution using a graphical representation of task dependency
US7594227B2 (en) 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
CA2563478A1 (en) * 2004-04-16 2005-10-27 James A. Aman Automatic event videoing, tracking and content generation system
US20050256818A1 (en) 2004-04-30 2005-11-17 Xerox Corporation Workflow auto generation from user constraints and hierarchical dependence graphs for workflows
JP2007536634A (ja) 2004-05-04 2007-12-13 フィッシャー−ローズマウント・システムズ・インコーポレーテッド プロセス制御システムのためのサービス指向型アーキテクチャ
US7614037B2 (en) 2004-05-21 2009-11-03 Microsoft Corporation Method and system for graph analysis and synchronization
US7316001B2 (en) 2004-06-05 2008-01-01 Graphlogic Inc. Object process graph system
JP2008503011A (ja) 2004-06-08 2008-01-31 ダートデバイセズ コーポレーション ユニバーサルデバイスインタオペラビリティプラットフォームのためのデバイスチームリクルートメントおよびコンテンツレンディションのアーキテクチャ装置および方法
US7398514B2 (en) 2004-09-29 2008-07-08 Microsoft Corporation Test automation stack layering
US7343482B2 (en) 2004-10-20 2008-03-11 Arm Limited Program subgraph identification
US7598953B2 (en) 2004-11-05 2009-10-06 Microsoft Corporation Interpreter for simplified programming of graphics processor units in general purpose programming languages
US8082541B2 (en) 2004-12-09 2011-12-20 Advantest Corporation Method and system for performing installation and configuration management of tester instrument modules
WO2006078751A2 (en) 2005-01-18 2006-07-27 Everypoint, Inc. Systems and methods for processing changing data
US7620947B2 (en) 2005-03-11 2009-11-17 Autodesk, Inc. Enhanced directed graph representation for dependency systems
US7505975B2 (en) 2005-04-14 2009-03-17 Bea Systems, Inc. Use of transaction context to select single database instance for global transaction
JP4246176B2 (ja) 2005-04-25 2009-04-02 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070118839A1 (en) 2005-10-24 2007-05-24 Viktors Berstis Method and apparatus for grid project modeling language
US7747565B2 (en) 2005-12-07 2010-06-29 Microsoft Corporation Garbage collector support for transactional memory
US8073671B2 (en) 2006-03-31 2011-12-06 Microsoft Corporation Dynamic software performance models
US7870556B2 (en) 2006-05-16 2011-01-11 Ab Initio Technology Llc Managing computing resources in graph-based computations
EP2527983A3 (en) 2006-08-10 2013-06-12 Ab Initio Technology LLC Distributing services in graph-based computations
US7844946B2 (en) 2006-09-26 2010-11-30 Intel Corporation Methods and apparatus to form a transactional objective instruction construct from lock-based critical sections
US20080244524A1 (en) 2007-03-27 2008-10-02 Tim Kelso Program Test System
US7805635B2 (en) 2007-04-09 2010-09-28 International Business Machines Corporation Constraint programming for reduction of system test-configuration-matrix complexity
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
JP4073033B1 (ja) 2007-04-27 2008-04-09 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
US8706667B2 (en) 2007-07-26 2014-04-22 Ab Initio Technology Llc Transactional graph-based computation with error handling
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
WO2009039352A1 (en) 2007-09-20 2009-03-26 Ab Initio Technology Llc Managing data flows in graph-based computations
US7886141B2 (en) 2007-10-27 2011-02-08 Asix Electronics Corporation Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems
US8775441B2 (en) 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
US20090193416A1 (en) 2008-01-24 2009-07-30 Nec Laboratories America, Inc. Decidability of reachability for threads communicating via locks
US8225288B2 (en) * 2008-01-29 2012-07-17 Intuit Inc. Model-based testing using branches, decisions, and options
US8797178B2 (en) 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
US20090235267A1 (en) 2008-03-13 2009-09-17 International Business Machines Corporation Consolidated display of resource performance trends
US9184874B2 (en) 2008-03-31 2015-11-10 Qualcomm Incorporated Storing log likelihood ratios in interleaved form to reduce hardware memory
KR101499599B1 (ko) 2008-06-30 2015-03-18 아브 이니티오 테크놀로지 엘엘시 그래프 기반 계산에서의 데이터 로깅
US20100070955A1 (en) 2008-07-08 2010-03-18 Nec Laboratories America Alias analysis for concurrent software programs
US8782613B2 (en) 2008-08-12 2014-07-15 Hewlett-Packard Development Company, L.P. Optimizing applications using source code patterns and performance analysis
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US20100169137A1 (en) 2008-12-31 2010-07-01 Ebay Inc. Methods and systems to analyze data using a graph
US7979479B2 (en) 2009-01-08 2011-07-12 International Business Machines Corporation Transaction-controlled graph processing and management
US8635694B2 (en) 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
CN105843684B (zh) 2009-02-13 2020-03-03 起元技术有限责任公司 管理任务执行
US7992040B2 (en) 2009-02-20 2011-08-02 International Business Machines Corporation Root cause analysis by correlating symptoms with asynchronous changes
US8327377B2 (en) 2009-04-30 2012-12-04 Ca, Inc. Detecting, logging and tracking component dependencies in web service transactions
US8332811B2 (en) 2009-04-30 2012-12-11 United Parcel Service Of America, Inc. Systems and methods for generating source code for workflow platform
US8473901B1 (en) 2009-06-12 2013-06-25 The Mathworks, Inc. Non-literal representation of programming language code
US8205113B2 (en) 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
US8667329B2 (en) 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
WO2011159759A1 (en) * 2010-06-15 2011-12-22 Ab Initio Technology Llc Dynamically loading graph-based computations
US9158650B2 (en) 2010-08-04 2015-10-13 BoxTone, Inc. Mobile application performance management
WO2012027560A1 (en) 2010-08-25 2012-03-01 Ab Initio Technology Llc Evaluating dataflow graph characteristics
AU2012100128A4 (en) 2011-02-22 2012-03-08 Zensar Technologies Ltd A computer implemented system and method for indexing and optionally annotating use cases and generating test scenarios therefrom
US8732669B2 (en) 2011-03-11 2014-05-20 Oracle International Corporation Efficient model checking technique for finding software defects
US9875094B2 (en) 2012-08-29 2018-01-23 International Business Machines Corporation Microcode upgrade in a storage system

Also Published As

Publication number Publication date
CA2610989C (en) 2015-06-16
AU2006261749A1 (en) 2007-01-04
WO2007002647A2 (en) 2007-01-04
US9158797B2 (en) 2015-10-13
CN101208695A (zh) 2008-06-25
KR20130009859A (ko) 2013-01-23
EP1899873A4 (en) 2008-12-24
AU2006261749B2 (en) 2013-06-13
US7877350B2 (en) 2011-01-25
KR20080040641A (ko) 2008-05-08
US8484159B2 (en) 2013-07-09
US20130297562A1 (en) 2013-11-07
EP1899873A2 (en) 2008-03-19
CA2610989A1 (en) 2007-01-04
KR101372971B1 (ko) 2014-03-13
US20060294150A1 (en) 2006-12-28
WO2007002647A3 (en) 2007-05-03
CN101208695B (zh) 2013-04-24
KR101278078B1 (ko) 2013-06-25
US20110093433A1 (en) 2011-04-21
JP2008544423A (ja) 2008-12-04

Similar Documents

Publication Publication Date Title
JP5297802B2 (ja) グラフ型計算のためのメタデータ管理
JP5235663B2 (ja) グラフ型計算のためのパラメータ管理
AU2020210281B2 (en) Impact analysis
JP6073838B2 (ja) 条件成分を有するパラメータ化図形
AU2013228010A1 (en) Managing metadata for graph-based computations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090604

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120305

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120312

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120316

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120419

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120424

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130124

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130131

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130314

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: 20130606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130617

R150 Certificate of patent or registration of utility model

Ref document number: 5297802

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250