(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】データと実行駆動パイプラインとを組み合わせるための技法
(51)【国際特許分類】
G06Q 10/0633 20230101AFI20241024BHJP
【FI】
G06Q10/0633
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024527836
(86)(22)【出願日】2022-11-22
(85)【翻訳文提出日】2024-07-01
(86)【国際出願番号】 US2022050675
(87)【国際公開番号】W WO2023096887
(87)【国際公開日】2023-06-01
(32)【優先日】2021-11-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523276485
【氏名又は名称】ケボティクス,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】シェベラ,デニス
(72)【発明者】
【氏名】シュー,ヘンギュ
【テーマコード(参考)】
5L010
【Fターム(参考)】
5L010AA07
(57)【要約】
複数のプロセスを含むデータ処理ワークフローの仕様を得るシステムが提供され、各プロセスは、入力データ及び出力データと関連付けられ、各プロセスは、ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる。システムは、ワークフロー内の1つ又は複数のプロセスの各々に対する、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むパイプライン実行記録を生成するために、1つ又は複数のプロセスを実行することができる。システムは、ワークフロークエリを受信することと、ワークフロークエリを使用して、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスに対するパイプライン実行記録を検索することと、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを得ることとを行うことができる。パイプライン実行記録及びワークフロークエリは、グラフによって表すことができる。
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを含むシステムであって、前記少なくとも1つのプロセッサが、
複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、前記ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、
前記ワークフロー内の前記複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、前記1つ又は複数のプロセスを実行することと、
パイプライン実行記録を生成することであって、前記パイプライン実行記録が、前記1つ又は複数の実行されたプロセスの各々に対する、前記関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することと
を行うように構成される、システム。
【請求項2】
前記プロセスデータ記録が、1つ又は複数の外部のデータソース内のデータを指す1つ又は複数のポインタを含む、請求項1に記載のシステム。
【請求項3】
前記プロセスデータ記録が、各々が前記ワークフロー内の前記複数のプロセスの前記1つ又は複数のプロセスのそれぞれの実行と関連付けられた複数のデータセットを含む、請求項1又は2に記載のシステム。
【請求項4】
前記データ処理ワークフローの前記仕様を得ることが、
グラフィカルユーザインタフェースを介して、前記複数のプロセスの前記1つ又は複数のプロセスを定義するユーザ選択を受信すること
を含む、請求項1~3のいずれか一項に記載のシステム。
【請求項5】
前記ユーザ選択が、ユーザが選択可能なプロセスのライブラリからの1つ又は複数のプロセスの選択を含む、請求項4に記載のシステム。
【請求項6】
前記データ処理ワークフローの前記仕様が、スクリプトファイルを含む、請求項1~5のいずれか一項に記載のシステム。
【請求項7】
前記パイプライン実行記録が、グラフデータベースに格納される、請求項1~6のいずれか一項に記載のシステム。
【請求項8】
前記少なくとも1つのプロセッサが、
ワークフロークエリを受信することと、
前記ワークフロークエリを使用して、前記ワークフロークエリとマッチした前記データ処理ワークフロー内の1つ又は複数のプロセスに対する前記パイプライン実行記録を検索することと、
前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた出力データを得ることと
を行うようにさらに構成される、請求項1~7のいずれか一項に記載のシステム。
【請求項9】
前記少なくとも1つのプロセッサが、
入力データクエリを受信することと、
前記入力データクエリが、前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた入力データとマッチするかどうかを判断することと、
前記入力データクエリがマッチすると判断することに応答して、前記パイプライン実行記録における前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた出力データを回収することによって、前記出力データを得ることと、
前記入力データクエリがマッチしないと判断することに応答して、
新しい出力データを生成するために、前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスを実行し、
前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた前記出力データとして、前記新しい出力データを得ることと
を行うようにさらに構成される、請求項8に記載のシステム。
【請求項10】
前記パイプライン実行記録が、グラフデータベースに格納され、
前記ワークフロークエリが、サブグラフを含む、請求項8又は9に記載のシステム。
【請求項11】
前記少なくとも1つのプロセッサが、
前記パイプライン実行記録をグラフで表示することと、
前記ワークフロークエリとして前記グラフの少なくとも一部分を定義するユーザ選択を受信することと
を行うようにさらに構成される、請求項8~10のいずれか一項に記載のシステム。
【請求項12】
前記プロセスデータ記録が、1つ又は複数の外部のデータソース内のデータを指す1つ又は複数のポインタを含み、前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた前記出力データを得ることが、
前記1つ又は複数のポインタの少なくとも1つを使用して、前記1つ又は複数の外部のデータソースの少なくとも1つから前記出力データを回収すること
を含む、請求項8~11のいずれか一項に記載のシステム。
【請求項13】
少なくとも1つのプロセッサを使用して、
複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、前記ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、
前記ワークフロー内の前記複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、前記1つ又は複数のプロセスを実行することと、
パイプライン実行記録を生成することであって、前記パイプライン実行記録が、前記1つ又は複数の実行されたプロセスの各々に対する、前記関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することと
を含む、方法。
【請求項14】
前記プロセスデータ記録が、
1つ又は複数の外部のデータソース内のデータを指す1つ又は複数のポインタを含む、或いは
任意選択により、各々が前記ワークフロー内の前記複数のプロセスの前記1つ又は複数のプロセスのそれぞれの実行と関連付けられた複数のデータセットを含む、請求項13に記載の方法。
【請求項15】
前記データ処理ワークフローの前記仕様を得ることが、
グラフィカルユーザインタフェースを介して、前記複数のプロセスの前記1つ又は複数のプロセスを定義するユーザ選択を受信すること
を含む、請求項13又は14に記載の方法。
【請求項16】
前記ユーザ選択が、ユーザが選択可能なプロセスのライブラリからの1つ又は複数のプロセスの選択を含む、請求項15に記載の方法。
【請求項17】
ワークフロークエリを受信することと、
前記ワークフロークエリを使用して、前記ワークフロークエリとマッチした前記データ処理ワークフロー内の1つ又は複数のプロセスに対する前記パイプライン実行記録を検索することと、
前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた出力データを得ることと
をさらに含む、請求項13~16のいずれか一項に記載の方法。
【請求項18】
入力データクエリを受信することと、
前記入力データクエリが、前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた入力データとマッチするかどうかを判断することと、
前記入力データクエリがマッチすると判断することに応答して、前記パイプライン実行記録における前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた出力データを回収することによって、前記出力データを得ることと、
前記入力データクエリがマッチしないと判断することに応答して、
新しい出力データを生成するために、前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスを実行し、
前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた前記出力データとして、前記新しい出力データを得ることと
をさらに含む、請求項17に記載の方法。
【請求項19】
命令を含む非一時的なコンピュータ可読媒体であって、前記命令が、実行されると、
複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、前記ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、
前記ワークフロー内の前記複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、前記1つ又は複数のプロセスを実行することと、
パイプライン実行記録を生成することであって、前記パイプライン実行記録が、前記1つ又は複数の実行されたプロセスの各々に対する、前記関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することと
を含む動作を少なくとも1つのプロセッサに実行させる、非一時的なコンピュータ可読媒体。
【請求項20】
前記動作が、
ワークフロークエリを受信することと、
前記ワークフロークエリを使用して、前記ワークフロークエリとマッチした前記データ処理ワークフロー内の1つ又は複数のプロセスに対する前記パイプライン実行記録を検索することと、
前記ワークフロークエリとマッチした前記データ処理ワークフロー内の前記1つ又は複数のプロセスと関連付けられた出力データを得ることと
をさらに含む、請求項19に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001] この出願は、2021年11月23日に出願された“TECHNIQUES FOR COMBINED DATA AND EXECUTION DRIVEN PIPELINE”と称する米国仮特許出願第63/282584号の利益を主張し、その全内容は、参照により本明細書に組み込まれる。
【背景技術】
【0002】
背景
[0002] データ処理ワークフローシステムは、通常、ユーザがデータ処理ワークフローをセットアップし、回収及び/又は実行のためにワークフローを格納することができるように(例えば、データベースを通じて)、ユーザがワークフローを管理できるようにする。ワークフローを実行するため、ユーザは、典型的には、入力データを選択し(例えば、ストレージソースから)、入力データを使用してワークフローの実行をトリガする必要がある。次いで、ワークフローが実行され、出力データが生成される。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
[0003] 本発明人等は、改善されたワークフロー管理システム及びその改善されたワークフロー管理システムを使用した様々な応用を考案できることを認識し、理解している。そのような改善されたシステム及び方法は、いくつかの実施形態によれば、演算及びAIプロセスを採用してハードウェア要件を利用し(ワークフローの構築において)、ユーザが多様な応用において(例えば、化学ワークフローにおいて)計装及びサンプル追跡を制御できるようにする。システム及び方法は、ワークフロー内の1つ又は複数のプロセスと関連付けて、プロセス間で渡されるデータを格納することができる。例えば、データ処理ワークフローやワークフロー内のプロセス間のデータは、パイプライン実行記録として、グラフデータベースに格納することができる。このシステム及び方法により、ユーザは、ワークフローの構造(例えば、検索クエリとしてのグラフ又はサブグラフ)によって、ワークフローの任意の適切な段階で、パイプライン実行記録のクエリを行うことができる。本明細書で提供されるシステム及び方法は、複雑且つ動的に変化するデータ及びワークフローをスケールアップすることができるため、コンベンションシステムよりも特に有利である。
【0004】
[0004] いくつかの実施形態は、少なくとも1つのプロセッサを含むワークフロー管理のためのシステムであって、少なくとも1つのプロセッサが、複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、ワークフロー内の複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、1つ又は複数のプロセスを実行することと、パイプライン実行記録を生成することであって、パイプライン実行記録が、1つ又は複数の実行されたプロセスの各々に対する、関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することとを行うように構成される、システムを対象とする。
【0005】
[0005] いくつかの実施形態は、ワークフロー管理のための方法であって、少なくとも1つのプロセッサを使用して、複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、ワークフロー内の複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、1つ又は複数のプロセスを実行することと、パイプライン実行記録を生成することであって、パイプライン実行記録が、1つ又は複数の実行されたプロセスの各々に対する、関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することとを含む、方法を対象とする。
【0006】
[0006] いくつかの実施形態は、命令を含む非一時的なコンピュータ可読媒体であって、命令が、実行されると、複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、ワークフロー内の複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、1つ又は複数のプロセスを実行することと、パイプライン実行記録を生成することであって、パイプライン実行記録が、1つ又は複数の実行されたプロセスの各々に対する、関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することとを含む動作を少なくとも1つのプロセッサに実行させる、非一時的なコンピュータ可読媒体を対象とする。
【0007】
図面の簡単な説明
[0007] 本開示のさらなる実施形態並びにその特徴及び利点は、添付の図面と併せて、本明細書の説明を参照することによって、より明らかになるであろう。図のコンポーネントは、必ずしも原寸に比例するとは限らない。その上、図中、同様の参照番号は、異なる図全体を通じて、対応する部分を指定する。
【図面の簡単な説明】
【0008】
【
図1A】[0008]いくつかの実施形態による、データと実行駆動パイプラインとを組み合わせるためのワークフロー管理システムの図である。
【
図1B】[0009]いくつかの実施形態による、グラフ検索クエリを定義することによってデータパイプライン記録を検索するための検索クエリの例を示す。
【
図2A】[0010]いくつかの実施形態による、ユーザによって定義された例示的なデータ処理ワークフロー内の複数のプロセスを示す。
【
図2B】[0011]いくつかの実施形態による、
図2Aのデータ処理ワークフローと関連付けられたパイプライン実行記録の例を示す。
【
図3A】[0012]いくつかの実施形態による、ワークフロー管理システムにおいて実装することができるグラフィカルユーザインタフェースの例を示す。
【
図3B】[0013]いくつかの実施形態による、ワークフロー管理システムにおいて実装することができるフォームビルダの例を示す。
【
図4A】[0014]いくつかの実施形態による、例示的なマップ縮小データ処理ワークフロー内の複数のプロセスを示す。
【
図4B】[0015]いくつかの実施形態による、
図4Aのデータ処理ワークフローと関連付けられたパイプライン実行記録の例を示す。
【
図5】[0016]いくつかの実施形態による、データ処理ワークフローの一部分が1つ又は複数のプロセスを含むサブワークフローを含む、別の例示的なデータ処理ワークフローを示す。
【
図6】[0017]いくつかの実施形態による、例示的なデータ処理ワークフローと関連付けられたパイプライン実行記録を示す。
【
図7】[0018]いくつかの実施形態による、機械学習訓練及び予測と組み合わされた別の例示的なデータ処理ワークフローと関連付けられたパイプライン実行記録を示す。
【
図8A】[0019]いくつかの実施形態による、データと実行駆動パイプラインとを組み合わせるためのシステムの1つ又は複数のコンポーネントを実装することができるシステムのアーキテクチャの例を示す。
【
図8B】[0019]いくつかの実施形態による、データと実行駆動パイプラインとを組み合わせるためのシステムの1つ又は複数のコンポーネントを実装することができるシステムのアーキテクチャの例を示す。
【
図9A】[0020]いくつかの実施形態による、データ処理ワークフローにおいて実装された分子評価の応用例を示す。
【
図9B】[0021]いくつかの実施形態による、
図9Aに示されるデータ処理ワークフローの実行から得られたグラフデータベース内のパイプライン実行記録の例を示す。
【
図10A】[0022]いくつかの実施形態による、データ処理ワークフローの実行から得られたグラフデータベースに少なくとも部分的に基づくグラフデータベースクエリの例を示す。
【
図10B】[0022]いくつかの実施形態による、データ処理ワークフローの実行から得られたグラフデータベースに少なくとも部分的に基づくグラフデータベースクエリの例を示す。
【
図11】[0023]いくつかの実施形態による、複数の分子評価ワークフローを並列処理する例を示す。
【
図12】[0024]いくつかの実施形態による、データ処理ワークフロー内の例示的なプロセスのプロセスユニットの例を示す。
【
図13】[0025]いくつかの実施形態による、再帰的なデータ処理ワークフローの例を示す。
【
図14】[0026]いくつかの実施形態による、1つ又は複数のプロセスを加えることによってデータ処理ワークフローを再構成する例を示す。
【
図15】[0027]いくつかの実施形態による、データ処理ワークフローにおいて実装された研究所におけるサンプル追跡の応用例を示す。
【
図16】[0028]いくつかの実施形態による、本明細書で開示される技法及び実施形態の態様のいずれかを実行するために使用することができるコンピュータシステムの例示的な実装形態を示す。
【発明を実施するための形態】
【0009】
詳細な説明
[0029] 本開示の原理の理解を促進する目的で、ここでは、図面に示される実施形態を参照し、具体的な言語を使用してそれを説明する。とはいえ、これによって本発明の範囲が限定されることはないことが理解されよう。
【0010】
[0030] ワークフロー管理システムは、様々なタスクを実行するために使用することができる。応用の一例では、データ処理ワークフローの作成及び/又は構成は、ワークフロー管理システムにおいて、分子の特性の予測などの特定の機能を実行するために行うことができる。ワークフローは複数回実行することができ、その都度、分子の特性を予測するために処理することができる異なる分子の構造など、異なる入力データを使用することができる。
【0011】
[0031] 従来のワークフローシステムでは、入力/出力データは、ワークフローから完全に分離されている。入力データは、従来の手法では、パイプライン(例えば、ワークフロー又はワークフローの一部分の実行によるデータフロー)での使用を目的として指定されているが、入力データは、パイプラインともパイプラインの特定の実行(例えば、パイプラインは時間の経過と共に変化し得るため、その実行のためのパイプライン構成を含む)とも関連付けられていない。それに従って、パイプラインの特定の実行の各々に関する情報は、典型的には失われる。同様に、最終出力データを保存することはできるが、特定のパイプラインと手動で関連付ける必要がある。これは、典型的には行われないが、行われたとしても、処理パイプラインの結果を格納するだけであり、出力データは、入力データ、及び/又は出力データを生成するために実行された特定のパイプライン構成とは関連付けられない。さらに、データ/メタデータのいずれも、各パイプラインコンポーネントの実行中に、パイプラインコンポーネント自体と関連付けて格納されることはない。従って、従来のシステムは、特定のパイプライン及びその関連実行の記録を提供しない。従って、パイプラインの実行においてどのようなデータが段階的に生成されたかを確認するために、従来の手法を使用して、特定のパイプライン構成又はそのパイプラインの実行でデータを回収することは可能ではない。その上、パイプラインがどのように変化したかを確認するため、又は以前のパイプライン構成の一部分若しくはそれらの部分に提供された/それらの部分から生成されたデータを調べるためになど、パイプラインを時系列で振り返ることはできない。それに加えて、各ユーザは、自分自身のワークフロー及びデータに個別に責任を負い、どのユーザも他のユーザのワークフロー及び/又はそのデータを共有したり、他のユーザのワークフローの一部分を繰り返したりすることはできない。
【0012】
[0032] それに従って、本発明人等は、データと実行駆動パイプラインとを組み合わせるための技法を開発した。本明細書では、データとパイプラインワークフローを統合するシステム、コンピュータ化された方法及び非一時的な命令を含む様々な技法について説明し、ワークフロー内のプロセスによって渡されたデータは、ワークフローコンポーネントと関連付けて格納される(例えば、データベースに)。
【0013】
[0033] 例示的なデータ処理ワークフローは、特定の構成でリンクされた複数のプロセスを含み得る。1つ又は複数のプロセスの各々は、それぞれの入力データ及び出力データと関連付けることができ、複数のプロセスは、あるプロセスの出力データがワークフロー内の1つ又は複数の他のプロセスへの入力として提供されるようにリンクすることができる。データ処理ワークフローが実行されると、データは、関連リンクを介して構成されるようなワークフロー内の複数のプロセスを流れる。
【0014】
[0034] データ処理ワークフローの仕様は、データ処理ワークフロー内の複数のプロセスの構成(複数のプロセスがどのようにリンクされているかなど)について説明するデータを含み得る。例えば、データ処理ワークフロー内の複数のプロセスは、直列に、並列に、又は直列と並列の組合せでリンクすることができる。いくつかの実施形態では、ワークフローの仕様は、ワークフローについて説明する仕様ファイルなど、デジタル表現で表すことができる。例えば、仕様ファイルは、XMLファイル、JSONファイル、グラフファイル、フラットファイル及び/又は他の任意の適切なフォーマットであり得る。
【0015】
[0035] 従って、本明細書で説明される技法は、例えば、ワークフローの仕様に基づいて、データ処理ワークフロー内の複数のプロセスの1つ又は複数のプロセスを実行することができる。いくつかの実施形態では、本技法は、パイプライン(例えば、データ処理ワークフロー内の1つ又は複数のプロセスの実行によるデータフロー)の実行と関連付けられたパイプライン実行記録を作成することができる。パイプライン実行記録は、1つ又は複数の実行されたプロセスの各々に対する、関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含み得る。従って、パイプライン実行記録は、データ処理ワークフロー(又はその一部分)の実行の1つ又は複数のインスタンスを記録したデータ、及びその実行と関連付けられた入力/出力データ又は他の実行メタデータを含む。
【0016】
[0036] いくつかの実施形態では、パイプライン実行記録は、任意の適切なフォーマットでデータベースに格納することができる。例えば、パイプライン実行記録は、グラフで表し、グラフデータベースに格納することができる。いくつかの実施形態では、本技法は、ユーザ(パイプライン実行記録を作成した者)又は他のユーザ(パイプライン実行記録を作成しなかった者)が、パイプライン実行記録のクエリを行い、データがパイプラインをどのように流れたか、パイプラインがどのように実行されたか、又は特定の実行のためのパイプラインの構成を確認できるようにもする。非限定的な例では、本技法は、ユーザが、ワークフロークエリを使用して、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスに対するパイプライン実行記録を検索できるようにする。例えば、パイプライン実行記録がグラフデータベースである場合は、ワークフロークエリは、グラフデータベースの一部分の1つ又は複数のプロセスを表すサブグラフで表すことができる。
【0017】
[0037] ワークフロークエリに応答して、パイプライン実行記録におけるデータ処理ワークフロー内の1つ又は複数のプロセスをワークフロークエリとマッチさせることができる。その結果、本技法は、データ処理ワークフロー内の1つ又は複数のプロセスを再実行することなく、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられたデータを出力することができる。その代替として及び/又はそれに加えて、ワークフロークエリがパイプライン実行記録内のどのプロセスともマッチしない場合は、本技法は、新しい出力データを生成するために、ワークフロークエリで表されているデータ処理ワークフロー内の1つ又は複数のプロセスを実行することができる。
【0018】
[0038] 様々な実施形態では、本技法は、例えば、グラフ表現で、パイプライン実行記録を表示することができる。本技法は、ワークフロークエリとしてグラフの少なくとも一部分を定義するユーザ選択を受信するユーザインタフェース(例えば、グラフィカルユーザインタフェース)を提供することができる。同様に、本技法は、ユーザがデータ処理ワークフローを定義できるようにするためのユーザインタフェースを提供することもできる。例えば、本技法は、グラフィカルユーザインタフェースを提供し、グラフィカルユーザインタフェースを介して、複数のプロセスの1つ又は複数のプロセスを定義するユーザ選択を受信することができる。非限定的な例では、ユーザ選択は、ユーザが選択可能なプロセスのライブラリからの1つ又は複数のプロセスの選択を含み得る。ユーザによって定義された、結果として得られたデータ処理ワークフローは、本明細書において上記で説明される仕様ファイルなどの仕様に格納することができる。
【0019】
[0039] 様々な実施形態について説明してきたが、当業者であれば、さらに多くの実施形態及び実装形態が可能であることが明らかであろう。それに従って、本明細書で説明される実施形態は、例であり、唯一の可能な実施形態及び実装形態ではない。その上、上記で説明される利点は、必ずしも唯一の利点であるとは限らず、また、必ずしも説明されるすべての利点がすべての実施形態で達成されるとは限らない。
【0020】
[0040]
図1Aは、いくつかの実施形態による、データと実行駆動パイプラインとを組み合わせるためのシステムの図である。いくつかの実施形態では、ワークフロー管理システム100は、データ処理ワークフローの仕様を得るように構成されたワークフロービルダを含み得、ワークフローは、複数のプロセスの1つ又は複数のプロセスを含み得る。いくつかの例では、ワークフロービルダは、データ処理ワークフロー内の1つ又は複数のプロセスを定義するユーザ選択を受信するように構成されたユーザインタフェースを含み得る。データ処理ワークフローでは、1つ又は複数のプロセスの各々は、それぞれの入力データ及び出力データと関連付けることができ、1つ又は複数のプロセスは、あるプロセスの出力データがワークフロー内の1つ又は複数の他のプロセスへの入力として提供されるようにリンクすることができる。
【0021】
[0041]
図2Aは、いくつかの実施形態による、ユーザによって定義される例示的なデータ処理ワークフロー内の複数のプロセスを示す。示されるように、ワークフロー200は、3つのプロセス202、204、206(この例では、限定することを意図せずに、KUnitと呼ばれる)を含み得る。いくつかの実施形態では、ワークフロー200は、ワークフロー管理システム100(
図1A)において実装することができる。プロセス(例えば、KUnit)は、特定の動作を実行することができる機能ユニットであり得る。
図2Aに示されるように、プロセス202は、入力データとして生成物の反応物リストを取り入れるフォワードライブラリ生成(ReactionSage)を含み得る。フォワードライブラリ生成プロセスは、第1の機械学習(ML)推論プロセス204及び第2のML推論プロセス206にリンクされ、ML推論プロセス204、206の各々は、フォワードライブラリ生成プロセスの出力を入力データとして取り入れ、生成物の特性を含むそれぞれの出力を生成する。
【0022】
[0042]
図2Bは、いくつかの実施形態による、
図2Aのデータ処理ワークフローと関連付けられたパイプライン実行記録240の例を示す。
図2Aに示される例では、データ処理ワークフロー内のプロセスの各々を実行し、ワークフローの中間データ(他のプロセスに対する入力データとして提供される)又は出力データを生成することができる。
【0023】
[0043]
図1Aに戻ると、システム100は、ワークフロー内の複数のプロセスの1つ又は複数のプロセスの各々に対する、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、1つ又は複数のプロセスを実行することができる。システムは、パイプライン実行記録を生成することができ、パイプライン実行記録は、1つ又は複数の実行されたプロセスの各々に対する、関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む。
図2A及び2Bの例では、システムは、データ処理ワークフロー200内のプロセス(例えば、フォワードライブラリ生成プロセス202、第1のML推論プロセス204及び第2のML推論プロセス206)の各々の入力データ及び出力データを含むパイプライン実行記録240を生成することができる。パイプライン実行記録240内の関連データは、フォワードライブラリ生成プロセス202への入力データ、第1のML推論プロセス204及び第2のML推論プロセス206の出力データ、並びに任意の中間データを含み得る。示される例では、中間データは、フォワードライブラリ生成プロセス202の出力データ(第1のML推論プロセス204及び第2のML推論プロセス206への入力である)を含み得る。
【0024】
[0044] いくつかの実施形態では、パイプライン実行記録は、グラフ表現で表すことができ、データ処理ワークフロー内の各プロセスと関連付けられた入力/出力データは、それぞれのノードによって表すことができ、データ処理ワークフロー内の各プロセスは、ノード間のリンクによって表すことができる。例えば、
図2Bを参照すると、パイプライン実行記録は、グラフ表現では、複数のノード(データレイクフォルダとして示される)及びノード間の複数のリンクによって表すことができる。例えば、フォワードライブラリ生成プロセス202は、フォワードライブラリ生成プロセスと関連付けられた、入力データ用のノードと出力データ用のノードと間のリンクによって表すことができる。第1のML推論プロセス204は、第1のML推論プロセスと関連付けられた、フォワードライブラリ生成プロセス202の出力データと関連付けられたノードと最終出力データ(例えば、生成物の特性)と関連付けられたノードと間のリンクによって表すことができる。同様に、第2のML推論プロセス206は、第2のML推論プロセスと関連付けられた、フォワードライブラリ生成プロセス202の出力データと関連付けられたノードと最終出力データ(例えば、生成物の特性)と関連付けられたノードと間のリンクによって表すことができる。
【0025】
[0045]
図1Aに戻ると、いくつかの実施形態では、生成されたパイプライン実行記録は、グラフデータベースなどのワークフローデータベース104に格納することができる。いくつかの例では、各データノードは、データ処理ワークフロー内のそれぞれのプロセスと関連付けられた入力/出力データを格納することができる。その代替として及び/又はそれに加えて、各データノードは、データフォルダ(例えば、
図2Bに示されるような、データレイクフォルダ)を指す1つ又は複数のポインタを含み得、データフォルダ内のデータは、ソフトウェアベースのシステム(例えば、外部のデータベース106)及び/又はハードウェアベースのシステムであり得る外部のソースからダウンロードすることができる。このパイプライン実行記録の表現(例えば、グラフ表現)により、システムは、任意の定義されたワークフローを、そのワークフローと関連付けられたデータと共に格納し、検索することができ、データは、所定の入力データ(例えば、ユーザが定義した入力データ)を使用して、ワークフローの以前の実行から得ることができる。
【0026】
[0046] それに従って、システム100は、ワークフロー検索エンジンを含み得、ワークフロー検索エンジンは、1人又は複数のユーザから、ワークフロークエリを受信し、ワークフロークエリを使用して、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスに対するパイプライン実行記録を検索するように構成される。システムは、パイプライン実行記録から、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを入手し、入手した出力データをユーザに返すことができる。これにより、ユーザは、システムがデータ処理ワークフローのどの部分も再実行することなく、出力データを迅速に入手することができる。
【0027】
[0047] いくつかの実施形態では、ユーザは、ユーザが検索したいと思うワークフロー内の1つ又は複数のプロセスを特定することができる。ユーザは、検索クエリとして特定した1つ又は複数のプロセスを使用して、関連パイプライン実行記録を検索することができる。いくつかの例では、検索クエリは、
図1Bに示されるサブグラフなど、グラフ表現のものであり得る。
【0028】
[0048]
図1Bは、いくつかの実施形態による、グラフ検索クエリを定義することによってパイプライン実行記録を検索するための検索クエリの例を示す。いくつかの実施形態では、システムは、検索できるパイプライン実行記録140を表示することができる。例えば、パイプライン実行記録140は、上記で説明されるように、グラフ表現で表示することができる。システムは、パイプライン実行記録の一部分(例えば、サブグラフ150)を定義するユーザ選択を受信することができる。サブグラフ150は、ワークフロー内の1つ又は複数のプロセスを含み得る。システムは、検索クエリ内の1つ又は複数のプロセスとマッチした1つ又は複数のプロセスに対するパイプライン実行記録を検索し、検索クエリとマッチした1つ又は複数のプロセスに対する実行情報(例えば、入力/出力及び/又は実行メタデータ)を得ることができる。例えば、検索の出力により、検索クエリとマッチした1つ又は複数のプロセスと関連付けられた出力データ及び/又は任意の中間データを返すことができる。
【0029】
[0049] いくつかの実施形態では、システムは、ワークフロー内のマッチしたプロセスの実行と関連付けられたデータ(例えば、入力/出力データ又は他のメタデータ)を得ることがき、データは、ワークフローデータベース(
図1Aを参照)に格納することができる。他の実施形態では、システムは、ワークフロー内のマッチしたプロセスに対する新しい入力データを得ることができ、マッチしたプロセスを再実行して新しい出力データを生成することができる。例えば、システムは、パイプライン実行記録内の検索のための1つ又は複数のプロセスに加えて、入力データクエリを受信することができる。システムは、ワークフロークエリとマッチしたワークフロー内の1つ又は複数のプロセスを決定することができる。それに加えて、システムは、入力データクエリが、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた入力データとマッチするかどうかを判断することができる。入力データクエリがマッチすると判断することに応答して、システムは、ワークフロークエリとマッチしたパイプライン実行記録におけるデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを回収することによって、出力データを得ることができる。それに加えて及び/又はその代替として、入力データクエリがマッチしないと判断することに応答して、システムは、入力データクエリを使用して、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスを実行(再実行)し、新しい出力データを生成することができる。システムは、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データとして、新しい出力データを得ることができる。
【0030】
[0050] 新しい入力データでワークフローを再実行する事例では、システムは、ワークフロー及び新しい入力データと関連付けられた新しい出力データを含む新しいパイプライン実行記録を作成/付加することができる。例示的な実装形態では、システムは、ワークフロー(又はワークフローの一部分)と関連付けられたデータの異なるセットを管理するために、バージョン制御を使用することができる。システムメインは、各ワークフローに対して単一のパイプライン実行記録を維持することが理解されており、パイプライン実行記録は、各々がワークフロー(又はワークフローの一部分)の実行と関連付けられた複数のデータセットを含み得る。いくつかの実施形態では、システムは、ワークフローと関連付けられた複数のパイプライン実行記録を格納することができ、各記録は、ワークフロー(又はワークフローの一部分)の実行と関連付けられる。
【0031】
[0051]
図3Aは、いくつかの実施形態による、ワークフロービルダにおいて実装することができるグラフィカルユーザインタフェースの例を示す。例えば、
図3Aに示されるグラフィカルユーザインタフェース300は、
図1Aに示されるワークフロービルダにおいて実装することができる。いくつかの実施形態では、ワークフロービルダは、データ処理ワークフローの定義/構築のためのユーザ選択を受信し、ワークフローの仕様を得ることができる。ユーザ選択は、ワークフロー内の1つ又は複数のプロセスの選択、及び1つ又は複数のプロセスの各々と関連付けられた入力/出力データの選択を含み得る。
図3Aに示されるように、ワークフロービルダのユーザインタフェース300のボックス(302A、302B、...)の各々は、機能を定義するプロセス、又は1つ若しくは複数のプロセスと関連付けられた入力/出力データを定義するデータブロックであり得る。いくつかの実施形態では、プロセスボックス又はデータブロックは、ユーザがプロセス又はデータブロックのライブラリ(
図3Aの320など)から選択することができる。ユーザインタフェース300は、ユーザが、データブロック及び1つ又は複数のプロセスを接続して、データ処理ワークフローを構築できるようにする。
【0032】
[0052]
図3Aをさらに参照すると、ユーザは、第1のデータブロック302Aを選択し、それをプロセスボックス「分子」(302B)に接続することができ、第1のデータブロック302Aは、分子データ(例えば、SMILESフォーマット)を、プロセス「分子」(302B)に提供することができる分子を表す出力データに変換するように構成することができる。プロセス「分子」(302B)は、入力として分子データを受信し、プロセス「モルステート」(302C)に提供することができる出力データを生成するように構成することができる。プロセス「モルステート」302Cは、「分子」プロセス302Bからの出力データを受信し、分子状態を含む出力データを生成することができる。ユーザは、ワークフローを構築するために、さらなるプロセス及びデータブロックの選択を続けることができる。
図3Aに示される例では、ワークフローは、一連の出力データを生成するために実行することができる。例えば、出力データは、入力分子のエネルギー特性、励起状態及び座標を含み得る。ユーザがワークフローを構築できるようにするためのものとしてグラフィカルユーザインタフェースが示されているが、他の技法も可能であることが理解されている。例えば、システムは、ユーザが、スクリプト言語を使用して、ドラッグ&ドロップ操作を使用して、ワークフローファイルから読み取ることによって又はそれらの組合せで、データ処理ワークフローを定義できるようにすることができる。
【0033】
[0053] いくつかの実施形態では、システムは、データ処理ワークフロー内のプロセスと関連付けられるデータタイプの柔軟性を可能にする。
図3Bは、いくつかの実施形態による、
図1Aのワークフロービルダにおいて実装することができるフォームビルダ350の例を示す。示されるように、システムは、ユーザがプロセスと関連付けることができるデータフォーマット(スキーマ)を定義/編集できるようにすることができる。これにより、将来的なデータスキーマの変更、古いスキーマのサポート又は古いスキーマから新しいスキーマへの移行など、柔軟性が可能になる。
【0034】
[0054] 本明細書で説明される様々な実施形態は、
図4A~7に示されるワークフローなどの様々な応用においてデータ処理ワークフローの構築及び検索を行うために実装することができる。
図4A~7では、ワークフローは、それぞれのパイプライン実行記録によって表されており、それに関しては以下で詳述する。
【0035】
[0055]
図4Aは、いくつかの実施形態による、例示的なマップ縮小データ処理ワークフロー400内の複数のプロセスを示す。いくつかの実施形態では、ワークフロー400は、ワークフロー管理システム100(
図1A)において構築及び実行することができる。
図4Bは、いくつかの実施形態による、
図4Aのデータ処理ワークフロー400と関連付けられたパイプライン実行記録420の例を示す。
図5は、いくつかの実施形態による、データ処理ワークフローの一部分が1つ又は複数のプロセスを含むサブワークフローを含む、OLEDのための別の例示的なプロセスと関連付けられたパイプライン実行記録500を示す。
図6は、いくつかの実施形態による、例示的なデータ処理ワークフローと関連付けられたパイプライン実行記録600を示す。
図7は、いくつかの実施形態による、機械学習訓練及び予測と組み合わされた別の例示的なデータ処理ワークフローと関連付けられたパイプライン実行記録700を示す。
【0036】
[0056] 示されるように、データ処理ワークフロー内のプロセスと関連付けられたデータは、データ又はデータレイクを含み得る。いくつかの実施形態では、データは、データ自体、又はデータを格納するメモリ若しくは外部のデータソースへのポインタを含み得る。データレイクは、生ファイル、ネイティブファイル又は処理済みのファイルをサポートするデータストレージ用の抽象化されたオブジェクト(例えば、S3、Azure、Google Storage)である。データレイク自体は、他のコンポーネントなしで検索データの使用を可能にする(ある程度まで)メタデータを含み得る。データレイクは、データ記憶装置及び/又はプラットフォーム(例えば、クラウドストレージ)から利用することができ、ローカルにダウンロードすることができる(例えば、より高速に実行するために)。
【0037】
[0057] 様々な例では、データ処理ワークフロー内のプロセスは、機械学習プロセス(例えば、機械学習訓練、機械学習推論)、分子オブジェクト作成プロセス(例えば、入力データとしてSMILESを有し、出力データとして分子オブジェクトを有する)、量子化学プロセスで必要な分子の電子状態を定義する分子状態プロセス(例えば、入力データとして分子オブジェクトを有し、出力データとして分子状態を有する)、入力分子の最小のコンフォーマの数に対する3D座標を計算する分子/コンフォーマプロセス(例えば、入力データとして分子を有し、出力データとして座標を有する)、量子化学密度汎関数理論計算を使用したジオメトリ最適化(OPT-DFT)プロセス(例えば、入力データとして座標及び分子状態を有し、出力データは、エネルギーデータ、電子データ、座標データ、又はプロセスからの生の/未解析の出力のためのOPT-DFTデータレイクデータを含み得る)のいずれかであり得る。
【0038】
[0058] いくつかの実施形態では、データ処理ワークフロー内のプロセスは、分子の電子励起状態を予測するためのシングルポイント時間依存密度汎関数理論量子化学計算SP-TDDFT(入力データとして座標及び分子状態を有し、出力データは、エネルギーデータ、電子データ、励起データ及び/又はSP-TDDFTデータレイクデータを有し得る)でもあり得る。いくつかの実施形態では、データ処理ワークフロー内のプロセスは、ジオメトリ最適化プロセス(入力データとして座標を有し、出力データもまた座標を含み得る)又は励起状態計算プロセス(入力データとして座標を有し、出力データは、励起状態を含む)も含み得る。いくつかの実施形態では、データ処理ワークフロー内のプロセスは、複数のプロセスの組合せを含み得る。例えば、
図5に示されるように、パイプライン実行記録500内のプロセス540は、複数のプロセスを含み得る。
【0039】
[0059]
図8A及び8Bは、いくつかの実施形態による、データと実行駆動パイプラインとを組み合わせるためのシステムの1つ又は複数のコンポーネントを実装することができるシステムのアーキテクチャの例を示す。いくつかの実施形態では、
図8A及び8Bのアーキテクチャは、
図1Aの100などのワークフロー管理システムにおいて実装することができる。いくつかの実施形態では、アーキテクチャは、SaaSとして実装することができる。いくつかの実施形態では、コンテナ技術を使用することができる。
【0040】
[0060]
図8Aを参照すると、ワークフロー管理システム(例えば、
図1Aの100)は、バックエンドコンポーネント810を含むイベント駆動アーキテクチャ800を使用して実装されている。いくつかの実施形態では、すべてのバックエンドコンポーネント(例えば、810)は、コンテナオーケストレーションプラットフォーム(Kubernetesクラスタなど)にデプロイされ、メッセージブローカ812(例えば、RabbitMQ)は、通信バスとして機能する。示されるように、KUnit 814は、コンテナにおいて実行され、それらのステータスとライフサイクルは、「Kloudサービス」816によって管理される。「Kloudサービス」816は、KUnit管理、データベース及びデータレイクへのアクセス、演算リソースのスケーリング、役割ベースの制御管理、エラー処理などのすべての論理を実装する。
図8Aにさらに示されるように、サービス(例えば、認証サービス802)は、APIゲートウェイ818によって提供される開発者API及びCLIアクセス(804)を介して、バックエンド810のコンポーネントと通信することができる。それに加えて及び/又はその代替として、ウェブアプリケーションフロントエンド(WAF)840は、フロントエンドインタフェース用のAPIを介して、バックエンド810と通信することができ、フロントエンドインタフェース用のAPIは、イングレスゲートウェイ820を介して提供され、ウェブアプリケーションファイアウォール842によって保護される。
【0041】
[0061]
図8Aをさらに参照すると、グラフ内のプロセス(例えば、KUnit)は、様々なクラスタのユーザがアクセスできるように、異なるクラスタ(他のクラウドプロバイダ及びオンプレミスクラスタなど)間で実行することができる。それに加えて、パイプライン実行記録は、異なるクラスタ間で生成し、他のクラスタのユーザによって共有することができる。例えば、さらなるクラスタ(例えば、810A、810B)も同様に、それら自体のプロセス(例えば、KUnit 814A、814B)を含み、それら自体の「Kloudサービス」(例えば、816A、816B)及びメッセージングブローカ(例えば、RabbitMQ 812A、812B)をそれぞれデプロイすることができる。さらなるクラスタ(例えば、810A、810B)の各々及びクラスタ810は、それぞれのバス(例えば、880、880A、880B)を介して、共有データベースクラスタ及び/又はデータレイク870に接続される。
【0042】
[0062]
図8Bを参照すると、データ及びワークフローマネージャ850を実装することができる。データ及びワークフローマネージャは、いくつかのコンポーネント及び層を含み得、クラウドコンピューティングで実行される分散した異種のワークフローのために実装することができる。データ及びワークフローマネージャ850は、すべてのプロセスのグローバルオーケストレーション及びデータの交換に責任を負うオペレーショナルコア852などの中央コンポーネントを含み得る。拡張性、再現性及び敏捷性のため、コア852は、コードアクセス及びデータアクセスのための拡張可能なインタフェースを有する。いくつかの実施形態では、コードインタフェース854は、コード、ワークフロー及び実行ファイルが格納される定義(例えば、Gitリポジトリ、コンテナリポジトリ、アーチファクトリポジトリなど)を提供することができる。コードのタイプに応じて、コアは、特定のコンピューティングインフラストラクチャ(例えば、クラウド又はオンプレミスコンピューティング)をデプロイ及び実行することができる。データインタフェース856は、プロセス(コード)による消費又は使用のために、データがどこに格納され、変換されているかについての仕様を提供する。
【0043】
[0063] いくつかの実施形態では、データ及びワークフローマネージャのガバナンスにより、データ、コード及び実行の適切な制御を提供することができる。いくつかの実施形態では、コンポーネントやサービス間のすべての通信は、暗号化したり、認証したり、許可したりすることができる。これらのセキュリティスキームは、ネットワークの内外に存在する脅威からシステムを保護し、データ処理ワークフロー内のプロセスを安全に実行できるようにする。
【0044】
[0064]
図8Bをさらに参照すると、いくつかの実施形態では、データとメタデータは両方とも抽象化される。様々なフォーマットがサポートされており、拡張も可能である。いくつかの実施形態では、知識グラフデータベース858は、異なるソースからのデータについての情報とこのデータから生成されたプロセスについての情報とを組み合わせる中央データ/メタデータストレージであり得る。知識グラフデータベース858は、プロセスとプロセスが生成したデータとの間の関係を表すのに適した構造化されたフォーマットのデータを、さらなるメタデータと共に格納する。それに加えて、Hadoop又はBig Tableのような他のデータストレージフォーマットのサポートは、データインタフェース856を介して接続することができる。
【0045】
[0065] いくつかの実施形態では、データ及びワークフローマネージャの主な目標は、異種のワークフロー(演算と実験が混在する)及びその関連データのプログラミング、実行及びクエリのための拡張可能な抽象化をサポートすることである。スケーラブルで、異なる組織や人々が使用することを意図した、共同プラットフォームの技術的課題は、常に変化するデータフォーマット(及びスキーマ)、ワークフロー並びにツール(例えば、AI/MLと機器の両方など)をサポートすることである。それに従って、本明細書の様々な実施形態で説明されるようなシステムは、(i)敏捷性:データスキーマの柔軟性、データ及びメタデータスキーマは将来変更される、古いスキーマのサポート又は新しいスキーマへの移行、エンドユーザは独自のスキーマを定義することができる、メタデータの一部は自動的に収集される、(ii)検索とクエリ:メタデータ及びデータによる検索、フリーテキスト検索、知識とワークフローグラフによる検索、クラウド上の異なるユーザによる検索、(iii)セキュリティ:データの不変性(付加のみ)、データアクセス及び処理の監査、データアクセスの承認、データの暗号化、(iv)再現性:メタデータは、データを再生できる(高い確率で、又はランダムなプロセスの場合は同様の確率分布で)十分な情報を有する、並びに(v)スケーラビリティ:システムは水平方向にスケーリングすることができるなどの想定及び特徴に従って設計される。
【0046】
[0066] いくつかの実施形態では、機械学習、物理モデリング及び実験パイプラインは、多くの特性を共有する。実験パイプラインに対する主な違いは、研究所内の物理的なプロセス及びオブジェクトと同期させる必要があるということである。従って、同じエンジンを使用してワークフローの実行と追跡の両方を行うことにより、実験や仮説に基づくワークフローを迅速に導入する能力が提供される。このワークフローの統合により、データの検索性が高まり、異なるワークフローによって生成されたデータから仮説及びモデルが構築される。これらのワークフローは、単純なYAML定義ファイル、DSL(ドメイン固有言語)、SDK及び/又は他のツールによって、エンドユーザがプログラムすることができる。いくつかの実施形態では、ワークフローは、コマンドラインインタフェース(CLI)、Jupyterノートブック、ウェブインタフェース(
図7に示されるものなど)及び/又は他の適切なツールを介して、テスト、実行及びモニタすることができる。
【0047】
[0067] 上記で説明されるような様々な実施形態は、グラフデータベース(例えば、
図1Aのワークフローデータベース)にデータを格納することができ、データはすべて、プロセスにリンクされ、生成する及び/又は使用する(存在する場合)ことができる。グラフデータベースに格納されたデータは、クエリの一部としてワークフローグラフ又はそのサブグラフに基づいてクエリを行うことができる。ワークフローは、階層的(無制限)であり、異なる階層レベルでクエリを行うことができる。データは、不変であり、削除されない。データは、ワークフローの一部としてパイプライン実行記録に記録されるため、本明細書で説明されるシステムの様々な実施形態は、「履歴」又は「データトレイル」クエリを可能にする。データは、抽象化することができ、スキーマによってインデックス化されたデータであっても、他のデータストレージへの参照がないデータであってもよい。データ処理ワークフローの各プロセス(例えば、機能ユニット)は、自動スケーリングすることも、異なるクラスタ上で実行することも、どのような作業負荷のものでも可能である。いくつかの実施形態では、ワークフローは、機器やユーザと通信することも、GPU又はCPUプログラムを実行することも、開発者環境とインタフェースを取ることもできる。パイプライン実行記録は、クラウド上に格納することができ、異なるクラスタ上のユーザによるアクセス(例えば、検索)が可能である。
【0048】
[0068]
図9~15は、本明細書の本開示において説明されるワークフロー管理システムの様々な実施形態のさらなる応用の例をさらに示す。例えば、
図9Aは、ワークフロー管理システム(例えば、
図1Aの100)において実装された分子評価の例を示す。プロセス900は、KUnitとして実装することができ、分子の特性をスクリーニングし、分子をいかに簡単に合成できるかを評価するように構成することができる。このスクリーニングの応用は、新素材や新薬の発見において実装することができる。プロセス900は、3つの基礎プロセス902、904、906を含み得る。これらのプロセスは、サーバレスプロセスでも、又はシェルKUnitでもよい。例えば、プロセス902は、特性予測のためのプロセスであり、プロセス904は、逆合成のためのプロセスであり、プロセス906は、スコアリングのためのプロセスであり得る。いくつかの実施形態では、プロセス「特性予測」及び「逆合成」(例えば、KUnit)は、GPUインスタンス上で実行することができ、異なる(及び相互に排他的な)ソフトウェア依存性を有し得る。
図9Aに示されるように、いくつかの例では、プロセス902、904、906の各々は、丸みを帯びた長方形の上部に入力を、下部に出力を示し、矢印は、プロセス間の接続性を示す。例えば、分子901は、最初の2つのプロセス902、904に送られ、それらの結果902A、904Aは、スコアリング関数906において組み合わされ、総合スコア906Aが生成される。これらの図(例えば、
図9~15)では、図解は、サーバレス/シェルプロセスについては小文字の名称を、グラフプロセスについては全部大文字の名称を付けて示されている。
【0049】
[0069]
図9Bは、いくつかの実施形態による、
図9Aのワークフローの実行から得られたグラフデータベース内のパイプライン実行記録の例を示す。パイプライン実行記録950は、ワークフロー(又はその一部分)の実行の成功から得られたグラフデータベースの基礎的な接続性を含む。例えば、パイプライン実行記録950は、グラフで表すことができ、グラフ内のノードは、使用されたデータ及び実行されたプロセス(例えば、分子901A、予測結果902A、逆合成結果904A、プロセス902、904、906)の各々に対応し、グラフ内のエッジは、ノード間の関連性に対応する。例えば、
図9Bに示されるように、エッジは、データからプロセスへの関連性を示す「入力」エッジ(破線の矢印で示される)、プロセスからデータへの関連性を示す「出力」エッジ(実線の矢印で示される)、グラフからその子プロセスへの関連性を示す「含有」エッジ(点線の矢印で示される)など、異なるタイプのものであり得る。
【0050】
[0070]
図10A及び10Bは、いくつかの実施形態による、
図9Aに示されるものなどのワークフローの実行から得られたグラフデータベースに少なくとも部分的に基づくグラフデータベースクエリの例を示す。
図10Aは、データを生成するために使用された
図10Bのグラフ1050の一部に基づくグラフデータベースクエリ1001を示す。
図10Bは、
図9Bで同様に示されるように、
図9Aのワークフロー900の実行から得られたパイプライン実行記録1050を示す。示されるように、パイプライン実行記録1050は、グラフで表され、グラフ内のノードは、使用されたデータ及び実行されたプロセス(例えば、分子1001A、予測結果1002A、逆合成結果1004A、プロセス1002、1004、1006)の各々に対応し、グラフ内のエッジは、ノード間の関連性に対応する。この事例では、クエリは、所定の分子の特性予測及びスコアを見出すために使用されることが意図される。いくつかの実施形態では、パイプライン実行記録を検索するための方法は(
図10A及び10Bを参照して)、「特性予測」という名称のプロセス(例えば、1002)に入力されるすべての分子を検索することによるクエリ入力1000から開始し、これにより、クエリ出力1003としての分子(例えば、1001A)が見つかる。次いで、方法は、タイプ「予測」(例えば、1002A)の出力データを有するそのプロセス(例えば、1002)の出力の検索を続ける。これにより、クエリ出力1005が得られる。検索するための方法は、所定のデータ記録「予測」(例えば、1002A)を入力とする「スコアリング関数」プロセス(例えば、1006)の検索に次いで、クエリ出力1007としてデータタイプ「スコア」(例えば、1006A)につながる出力エッジの検索を続ける。各段階のフィルタにより、エッジによって接続された他のプロセスのいずれかに逸脱することなく、クエリが所望のルートを通って流れ続けることが保証される。
図10Aのこの例では、検索により、「分子」(例えば、1003)、「予測」(例えば、1005)及び「スコア」(例えば、1007)のデータ記録が返され、これらは、例えば、テーブルに格納することができる。
【0051】
[0071]
図11は、いくつかの実施形態による、複数の分子を並列処理する例を示す。いくつかの実施形態では、本明細書の本開示において説明されるようなワークフロー管理システム(例えば、
図1Aの100)の様々な実施形態は、並列化された「マップ縮小」フレームワークをサポートする。
図11に示されるように、「バルク分子評価」プロセス1100(例えば、KUnitとして実装される)は、複数の分子(例えば、1150A、1150B、...、1150N)の分子評価を並列に実行するように構成される。分子1100Aは分割され、各「分子評価」グラフ(例えば、1150A、1150B、...、1150N)が並列に実行され、その後、結果として得られた予測(例えば、1100B)のすべてがワークフロー管理システムに集められる。
【0052】
[0072]
図12は、いくつかの実施形態による、ワークフロー内の例示的なプロセス1200の処理ユニットの例を示す。いくつかの実施形態では、例示的なプロセス1200は、本明細書の本開示において説明されるものなどのデータ処理ワークフロー内の1つ又は複数のプロセス(例えば、KUnit)のいずれかであり得る。個々のKUnitは、その演算における何らかの条件に応じて、異なるチャネル(例えば、1210A、1212A)を介して送信される複数の可能な出力(例えば、1210、1212)を有し得る。この例では、サーバレスKUnitは、ユーザが提供したファイルのアップロード(例えば、1202)を検証するために使用される。アップロード(例えば、1202)が有効である場合は、出力1210は、アップロードされたデータ1202の処理済みのバージョンである。アップロード1202が無効である場合は、代わりにエラーメッセージ1212が生成される。プロセス1200及びプロセス1200につながる他のプロセスを含むワークフローでは、出力チャネル(例えば、1210A、1212A)は、次いで、プロセス1200の出力に基づいて、他のKUnitを引き続き実行させることができる。
【0053】
[0073]
図13は、いくつかの実施形態による、再帰的なワークフローの例を示す。再帰的なワークフロー1300は、本明細書で説明されるワークフロー管理システム(例えば、
図1Aの100)の様々な実施形態で実装することができる。いくつかの実施形態では、ワークフロー1300は、2つの整数の最大公約数を決定するためのガウス消去アルゴリズムを実装する。示されるように、ワークフロー1300は、整数の比較(プロセス1302)及び整数の減算(プロセス1304)のサブルーチンのための別個のプロセス(例えば、KUnit)を有する。非限定的な実装形態では、2つの整数(例えば、整数1、1301Aと整数2、1301B)が比較され、それらが等しくない場合は、大きい方の整数1302Bと小さい方の整数1302Cとの差1304Aが、小さい方の整数1302Cと再帰的に比較される(接続1306、1308を通じて)。このプロセスは、2つの整数(例えば、1301A、1301B)が等しくなるまで繰り返され、その数値1302Aが最大公約数である。
図13に示されるように、再帰的なワークフローは、子から子へ(又は子からそれ自体へ)逆戻りする1つ又は複数の接続(接続1306、1308など)を含む。これにより、「整数の比較」プロセス1302は、それがトリガされるたびに繰り返される。
【0054】
[0074]
図14は、いくつかの実施形態による、1つ又は複数のプロセスを加えることによってワークフローを再構成する例を示す。ワークフロー1400は、本明細書で説明されるワークフロー管理システム(例えば、
図1Aの100)の様々な実施形態を実装することができ、例えば、1つ又は複数のプロセスを加えることによって、再構成することができる。
図14では、ユーザインタラクションプロセス1402(例えば、専用KUnit、「K-インタラクト」)をワークフロー1400に加えることができる。インタラクションは単純な通知であり、ユーザから構造化された入力を収集する。インタラクションプロセス1402のいくつかの入力チャネル(例えば、1401A、1401B、1401C)及び出力チャネル(例えば、1402A)が示されている。オプション(1404A、1404B)のリストから選ぶようユーザに求めるフォーム1403Aの論理を処理する「切り替え」プロセス1404を含めることができる。それに加えて及び/又はその代替として、K-インタラクトフォーム所定の入力1405Aへの入力(例えば、1406A、1406B、1406C)を生成する「構成」プロセス1406が含まれる。
【0055】
[0075]
図15は、いくつかの実施形態による、ワークフロー1500において実装された研究所におけるサンプル追跡の例を示す。いくつかの実施形態では、ワークフロー1500は、本明細書で説明されるワークフロー管理システム(例えば、
図1Aの100)の様々な実施形態で実装することができる。示されるように、本明細書で説明されるようなワークフロー管理システムは、「サンプルアリコートの移動」などの複雑なプロセスの実装を単純化することができる。従来の方式では、「サンプルアリコートの移動」は、各サンプルのオリジンを追跡する上で、かなり複雑なものであった。すなわち、ソースサンプルの一部分がデスティネーションサンプルに追加された際、新しいソースサンプルのオリジンはデスティネーションサンプルを含むべきではないが、新しいデスティネーションサンプルのオリジンは、両方のオリジナルサンプルを含むべきである。例示的な実装形態では、本開示で説明されるようなワークフロー管理システムは、エフェメラルサンプルを生成し(例えば、1502)、エフェメラルサンプルを消費する(例えば、1504)2つの子(例えば、1502、1504)を有するグラフを利用することによって、そのようなワークフロー1500を達成することができる。そのような構成では、ソースサンプル1501Aの一部分は、デスティネーションサンプル1501Bに追加され、ソースサンプル1501Aとデスティネーションサンプル1501Bの両方を含む新しいデスティネーションサンプル1504Aが生成されるのに対して、新しいソースサンプル1502Aのオリジンは、デスティネーションサンプル1501Bを含まない。
【0056】
[0076] それに従って、
図1~15の様々な実施形態で説明されるシステム及び方法は、演算及び物理プロセスのための統一システムを可能にするために、他の従来のシステムに勝る利点を提供することができる。例えば、上記で説明されるシステム及び方法は、演算及びAIプロセスが多様なハードウェア要件を利用できるようにし(ワークフローの構築において)、ユーザが計装及びサンプル追跡を制御できるようにすることができる。上記で説明されるシステム及び方法では、ワークフロー内の1つ又は複数のプロセスと関連付けて、プロセス間で渡されるデータを格納することができる。例えば、データ処理ワークフロー及びワークフロー内のプロセス間のデータは、パイプライン実行記録として、グラフデータベースに格納することができる。ワークフローのパイプライン実行記録により、ユーザは、ワークフローの構造(例えば、検索クエリとしてのグラフ又はサブグラフ)によって、ワークフローの任意の適切な段階で、データのクエリを行うことができる。その上、本明細書で提供されるシステム及び方法は、複雑且つ動的に変化するデータ及び化学ワークフローをスケールアップすることができるため、コンベンションシステムよりも特に有利である。
【0057】
[0077]
図16は、いくつかの実施形態による、本明細書で開示される技法及び実施形態の態様のいずれかを実行するために使用することができるコンピュータデバイスの例示的な実装形態を示す。例えば、コンピュータデバイス1600は、
図1Aのシステム100にインストールすることができる。コンピュータデバイス1600は、
図1A~15で説明されるような様々な方法及び行為を実行するように構成することができる。例えば、コンピュータデバイス1600は、
図1Aに示されるような、ワークフロー管理システム100若しくはその任意のコンポーネント(例えば、ワークフロービルダ102、ワークフロー検索エンジン108)又はユーザと関連付けられた任意のデバイスを実装することができる。コンピューティングデバイス1600は、1つ又は複数のコンピュータハードウェアプロセッサ1602や、非一時的なコンピュータ可読記憶媒体(例えば、メモリ1604及び1つ又は複数の不揮発性記憶装置1606)を含み得る。プロセッサ1602は、(1)メモリ1604及び(2)不揮発性記憶装置1606へのデータの書き込み並びに(1)メモリ1604及び(2)不揮発性記憶装置1606からのデータの読み取りを制御することができる。本明細書で説明される機能性のいずれかを実行するため、プロセッサ1602は、プロセッサ1602による実行のためのプロセッサ実行可能命令を格納する非一時的なコンピュータ可読記憶媒体として機能し得る、1つ又は複数の非一時的なコンピュータ可読記憶媒体(例えば、メモリ1604)に格納された1つ又は複数のプロセッサ実行可能命令を実行することができる。また、コンピューティングデバイス1600は、ネットワークI/Oインタフェース1608や、ユーザI/Oインタフェース1610も含む。
【0058】
[0078] 本明細書で概説する様々な方法又はプロセスは、多様なオペレーティングシステム又はプラットフォームのいずれか1つを採用する1つ又は複数のプロセッサ上で実行可能なソフトウェアとしてコード化することができる。それに加えて、このようなソフトウェアは、多くの適切なプログラミング言語及び/又はプログラミングツール若しくはスクリプトツールのいずれかを使用して記述することができ、また、仮想マシン又は適切なフレームワーク上で実行される実行可能な機械語コード又は中間コードとしてコンパイルすることができる。
【0059】
[0079] この点に関して、様々な発明概念は、1つ又は複数のコンピュータ又は他のプロセッサ上で実行されると本発明の様々な実施形態を実装する1つ又は複数のプログラムで符号化された少なくとも1つの非一時的なコンピュータ可読記憶媒体(例えば、コンピュータメモリ、1つ若しくは複数のフロッピーディスク、コンパクトディスク、光ディスク、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ又は他の半導体デバイスにおける回路構成など)として具体化することができる。1つ又は複数の非一時的なコンピュータ可読媒体は、有形のものであり、格納された1つ又は複数のプログラムを任意のコンピュータリソースにロードして、上記で論じられるような本発明の様々な態様を実装することができる。
【0060】
[0080] 「プログラム」、「ソフトウェア」及び/又は「アプリケーション」という用語は、本明細書では、上記で論じられるような実施形態の様々な態様を実装するようにコンピュータ又は他のプロセッサをプログラムするために採用することができるあらゆるタイプのコンピュータコード又はコンピュータ実行可能命令のセットを指すために、一般的な意味で使用される。それに加えて、一態様によれば、実行時に本発明の方法を実行する1つ又は複数のコンピュータプログラムは、単一のコンピュータ又はプロセッサ上に存在する必要はないが、本発明の様々な態様を実装するために、異なるコンピュータ又はプロセッサの間でモジュール方式で分散できることを理解すべきである。
【0061】
[0081] コンピュータ実行可能命令は、1つ又は複数のコンピュータ又は他のデバイスによって実行されるプログラムモジュールなど、多くの形態であり得る。一般に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、プログラムモジュールの機能性は、様々な実施形態において要望通りに組み合わることも、分散させることもできる。
【0062】
[0082] また、データ構造は、任意の適切な形態で、非一時的なコンピュータ可読記憶媒体に格納することができる。データ構造は、データ構造内の場所を通じて関連するフィールドを有し得る。そのような関係は、同様に、フィールド間の関係を伝える非一時的なコンピュータ可読媒体内の場所をフィールドのストレージに割り当てることによって達成することができる。しかし、データ構造のフィールド内の情報間の関係を確立するため、ポインタ、タグ、又はデータ要素間の関係を確立する他のメカニズムの使用を含め、任意の適切なメカニズムを使用することができる。
【0063】
[0083] 様々な発明概念は、1つ又は複数の方法として具体化することができ、その例が提供されている。方法の一部として実行される行為は、任意の適切な方法で順序付けることができる。それに従って、例示的な実施形態では連続的な行為として示されている場合であっても、いくつかの行為を同時に行うことを含め、示される順序とは異なる順序で行為が行われる実施形態を構築することができる。
【0064】
[0084] いくつかの実施形態は、少なくとも1つのプロセッサを含むワークフロー管理のためのシステムであって、少なくとも1つのプロセッサが、複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、ワークフロー内の複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、1つ又は複数のプロセスを実行することと、パイプライン実行記録を生成することであって、パイプライン実行記録が、1つ又は複数の実行されたプロセスの各々に対する、関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することとを行うように構成される、システムを対象とする。
【0065】
[0085] いくつかの実施形態では、プロセスデータ記録は、1つ又は複数の外部のデータソース内のデータを指す1つ又は複数のポインタを含む。
【0066】
[0086] いくつかの実施形態では、プロセスデータ記録は、各々がワークフロー内の複数のプロセスの1つ又は複数のプロセスのそれぞれの実行と関連付けられた複数のデータセットを含む。
【0067】
[0087] いくつかの実施形態では、データ処理ワークフローの仕様を得ることは、グラフィカルユーザインタフェースを介して、複数のプロセスの1つ又は複数のプロセスを定義するユーザ選択を受信することを含む。
【0068】
[0088] いくつかの実施形態では、ユーザ選択は、ユーザが選択可能なプロセスのライブラリからの1つ又は複数のプロセスの選択を含む。
【0069】
[0089] いくつかの実施形態では、データ処理ワークフローの仕様は、スクリプトファイルを含む。
【0070】
[0090] いくつかの実施形態では、パイプライン実行記録は、グラフデータベースに格納される。
【0071】
[0091] いくつかの実施形態では、少なくとも1つのプロセッサは、ワークフロークエリを受信することと、ワークフロークエリを使用して、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスに対するパイプライン実行記録を検索することと、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを得ることとを行うようにさらに構成される。
【0072】
[0092] いくつかの実施形態では、少なくとも1つのプロセッサは、入力データクエリを受信することと、入力データクエリが、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた入力データとマッチするかどうかを判断することと、入力データクエリがマッチすると判断することに応答して、パイプライン実行記録におけるデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを回収することによって、出力データを得ることと、入力データクエリがマッチしないと判断することに応答して、(1)新しい出力データを生成するために、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスを実行し、(2)ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データとして、新しい出力データを得ることとを行うようにさらに構成される。
【0073】
[0093] いくつかの実施形態では、パイプライン実行記録は、グラフデータベースに格納され、ワークフロークエリは、サブグラフを含む。
【0074】
[0094] いくつかの実施形態では、少なくとも1つのプロセッサは、パイプライン実行記録をグラフで表示することと、ワークフロークエリとしてグラフの少なくとも一部分を定義するユーザ選択を受信することとを行うようにさらに構成される。
【0075】
[0095] いくつかの実施形態では、プロセスデータ記録は、1つ又は複数の外部のデータソース内のデータを指す1つ又は複数のポインタを含み、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを得ることは、1つ又は複数のポインタの少なくとも1つを使用して、1つ又は複数の外部のデータソースの少なくとも1つから出力データを回収することを含む。
【0076】
[0096] いくつかの実施形態は、ワークフロー管理のための方法であって、少なくとも1つのプロセッサを使用して、複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、ワークフロー内の複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、1つ又は複数のプロセスを実行することと、パイプライン実行記録を生成することであって、パイプライン実行記録が、1つ又は複数の実行されたプロセスの各々に対する、関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することとを含む、方法を対象とする。
【0077】
[0097] いくつかの実施形態では、プロセスデータ記録は、1つ又は複数の外部のデータソース内のデータを指す1つ又は複数のポインタを含むか、或いは任意選択により、各々がワークフロー内の複数のプロセスの1つ又は複数のプロセスのそれぞれの実行と関連付けられた複数のデータセットを含む。
【0078】
[0098] いくつかの実施形態では、データ処理ワークフローの仕様を得ることは、グラフィカルユーザインタフェースを介して、複数のプロセスの1つ又は複数のプロセスを定義するユーザ選択を受信することを含む。
【0079】
[0099] いくつかの実施形態では、ユーザ選択は、ユーザが選択可能なプロセスのライブラリからの1つ又は複数のプロセスの選択を含む。
【0080】
[0100] いくつかの実施形態では、方法は、ワークフロークエリを受信することと、ワークフロークエリを使用して、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスに対するパイプライン実行記録を検索することと、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを得ることとをさらに含む。
【0081】
[0101] いくつかの実施形態では、方法は、入力データクエリを受信することと、入力データクエリが、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた入力データとマッチするかどうかを判断することと、入力データクエリがマッチすると判断することに応答して、パイプライン実行記録におけるデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを回収することによって、出力データを得ることと、入力データクエリがマッチしないと判断することに応答して、(1)新しい出力データを生成するために、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスを実行し、(2)ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データとして、新しい出力データを得ることとをさらに含む。
【0082】
[0102] いくつかの実施形態は、命令を含む非一時的なコンピュータ可読媒体であって、命令が、実行されると、複数のプロセスを含むデータ処理ワークフローの仕様を得ることであって、各プロセスが、入力データ及び出力データと関連付けられ、各プロセスが、ワークフロー内の1つ又は複数の他のプロセスにさらにリンクされる、得ることと、ワークフロー内の複数のプロセスの1つ又は複数のプロセスの各々に対して、入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを生成するために、1つ又は複数のプロセスを実行することと、パイプライン実行記録を生成することであって、パイプライン実行記録が、1つ又は複数の実行されたプロセスの各々に対する、関連入力データ、出力データ、実行メタデータ又はそれらのいくつかの組合せを含むプロセスデータ記録を含む、生成することとを含む動作を少なくとも1つのプロセッサに実行させる、非一時的なコンピュータ可読媒体を対象とする。
【0083】
[0103] いくつかの実施形態では、動作は、ワークフロークエリを受信することと、ワークフロークエリを使用して、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスに対するパイプライン実行記録を検索することと、ワークフロークエリとマッチしたデータ処理ワークフロー内の1つ又は複数のプロセスと関連付けられた出力データを得ることとをさらに含む。
【0084】
[0104] 本明細書及び特許請求の範囲において使用される場合、「1つの(a)」及び「1つの(an)」などの不定冠詞は、それとは異なる規定が明確に示されていない限り、「少なくとも1つ」を意味すると理解すべきである。本明細書及び特許請求の範囲において使用される場合、1つ又は複数の要素のリストに関する「少なくとも1つ」という語句は、要素のリスト内のいずれか1つ又は複数の要素から選択される少なくとも1つの要素を意味すると理解すべきであるが、必ずしも要素のリスト内に具体的に列挙される各要素及びすべての要素の少なくとも1つを含む必要はなく、要素のリスト内の要素の任意の組合せを除外するものではない。これにより、「少なくとも1つ」という語句が指す要素のリスト内で具体的に特定された要素以外の要素が、具体的に特定された要素に関連するか又は無関係であるかにかかわらず、任意選択的に存在することが可能になる。
【0085】
[0105] 本明細書及び特許請求の範囲において使用される場合、「及び/又は」という語句は、そのように結ばれた要素の「一方又は両方」、すなわち、ある場合には連言的に存在し、他の場合には選言的に存在する要素を意味すると理解すべきである。「及び/又は」とともに列挙された複数の要素も、同じように解釈すべきであり、すなわち、そのように結ばれた要素の「1つ又は複数」を意味する。「及び/又は」という節によって具体的に特定された要素以外の他の要素は、具体的に特定された要素に関連するか又は無関係であるかにかかわらず、任意選択的に存在することができる。従って、非限定的な例として、「A及び/又はB」への言及は、「含む」などのオープンエンドの言語と併せて使用される場合、一実施形態では、Aのみ(任意選択により、B以外の要素を含む)を指し、別の実施形態では、Bのみ(任意選択により、A以外の要素を含む)を指し、さらに別の実施形態では、AとBの両方(任意選択により、他の要素を含む)を指し得る。
【0086】
[0106] 本明細書及び特許請求の範囲において使用される場合、「又は」は、上記で定義されるような「及び/又は」と同じ意味を有すると理解すべきである。例えば、リスト内のアイテムを区切る場合、「又は」或いは「及び/又は」は、包含的であるもの、すなわち、要素の数又はリストのうちの少なくとも1つを含むが、複数のものも含む、及び任意選択により、リストにない追加のアイテムも含むものと解釈されるものとする。「~のうちの1つのみ」又は「~のうちのまさに1つ」など、それとは異なる規定が明確に示されている用語のみ、或いは特許請求の範囲において使用される際は、「~からなる」は、要素の数又はリストのうちのまさに1つの要素を含むことを指す。一般に、「又は」という用語は、本明細書で使用される場合、「~のいずれか」、「~のうちの1つ」、「~のうちの1つのみ」又は「~のうちのまさに1つ」などの排他的な用語が続く場合は、排他的な選択肢(すなわち、「一方又は他方であって、両方ではない」)のみを示すものとして解釈されるものとする。「本質的に~からなる」は、特許請求の範囲において使用される際は、特許法の分野で使用される通常の意味を有するものとする。
【0087】
[0107] 特許請求の範囲における、請求項要素を修飾するための「第1の」、「第2の」、「第3の」などの序数用語の使用は、それ自体、ある請求項要素の他の請求項要素に対する優先順位、先行順位若しくは順序、又は方法の行為が実行される時間的順序を含意するものではない。このような用語は、単に、ある名称を有する請求項要素を、同じ名称を有する別の要素と区別するため(ただし、序数用語は使用するため)のラベルとして使用されているに過ぎない。
【0088】
[0108] 本明細書で使用される表現及び用語は、説明のためのものであり、限定的なものと見なすべきではない。「含む(including、comprising)」、「有する」、「含有する」、「伴う」及びそれらの変形形態の使用は、その前に列挙されるアイテム及び追加のアイテムを包含することを意味する。
【0089】
[0109] 本発明のいくつかの実施形態を詳細に説明したが、当業者であれば、様々な変更及び改良が容易に思いつくであろう。そのような変更及び改良は、本発明の主旨及び範囲内であることが意図される。それに従って、前述の説明は、単なる例示に過ぎず、限定を意図するものではない。
【0090】
[0110] この開示では様々な態様について説明しており、これには以下の態様が含まれるが、これらに限定されない。
【国際調査報告】