【文献】
Andre van der Hoek, Marija Rakic, Roshanak Roshandel and Nenad Medvidovic,Taming Architectual Evolution,ESEC/FSE-9 Proceedings of the 8th Europian software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering,米国,ACM,2001年 9月10日,pp.1-10,ISBN:1-58113-390-1
【文献】
I.Yoshimoto, N.Monden, M.Hirakawa, M.Tanaka, and T.Ichikawa,Interactive Iconic Programming Facility in HI-VISUAL,Proc., IEEE Workshop on Visual Languages,米国,IEEE,1986年12月,pp.34-41
(58)【調査した分野】(Int.Cl.,DB名)
第2のプロセスは、入力として前記第1のプロセスの前記第1のバージョンの第1の出力または前記第1のプロセスの前記第2のバージョンの第2の出力のいずれかを受信し、前記第2のプロセスが前記第1の出力を受信するか、もしくは、前記第2の出力を受信するかは、前記第1のプロセスのどのバージョンが選択されるかに基づいている、請求項1に記載の方法。
前記第1のプロセスのバージョンを選択する入力を受信するように構成されているラジオ・ユーザ・インターフェース・コントロールを前記電子表示装置に表示することをさらに含む、請求項1に記載の方法。
前記選択モジュールは、前記第1のプロセスの全バージョンに適用できる前記第1のプロセスの1つ以上のパラメータを定義する入力を受信するようにさらに構成されている、請求項11に記載の装置。
前記メモリに記憶された前記命令は、前記第1のプロセスの前記第1のバージョンの第1の出力または前記第1のプロセスの前記第2のバージョンの第2の出力のいずれかを入力として受信するように構成されている第2のプロセスを記憶するように前記プロセッサを構成し、前記第2のプロセスが前記第1の出力を受信するか、または、前記第2の出力を受信するかは、前記第1のプロセスのうちどのバージョンが選択されるかに基づいている、請求項11に記載の装置。
前記データ処理モジュールは、前記第1のプロセスの前記選択されたバージョンを使用して前記データを処理することに基づいて出力データを作り出すようにさらに構成され、
前記表示モジュールは、前記出力データに対応するインジケータを表示するようにさらに構成されている、
請求項11に記載の装置。
前記表示モジュールは、前記第1のプロセスのバージョンを選択する入力を受信するように構成されているラジオ・ユーザ・インターフェース・コントロールを表示するようにさらに構成されている、請求項11に記載の装置。
【発明の概要】
【0005】
発明のシステム、方法、および装置は、各々がいくつかの態様を有するが、これらの態様のうち単独で発明の望ましい特性に関与する態様は1つもない。後に続く請求項によって表された本発明の範囲を限定することなく、ここではいくつかの特徴を簡単に説明する。この考察を検討した後、特に、「発明を実施するための形態」という名前の欄を読んだ後、本発明の特徴が処理連鎖における処理ステップの複数のバージョンを管理する改良された方法およびシステムを含む利点をどのようにしてもたらすかが分かるであろう。
【0006】
本明細書に開示された方法およびシステムは、処理連鎖の内部の処理ステップの複数のバージョンの定義を行う。処理連鎖は、一部の態様では、少なくとも部分的に並列であり、および、一部の態様では、少なくとも部分的に直列である一連の処理ステップを通るデータのフローを定義することがある。処理連鎖における少なくとも一部の処理ステップは、連鎖から入力データを受信し、データを処理し、少なくとも部分的に連鎖から受信された入力データに基づく出力を生成することがある。1つの処理ステップの出力は、別の第2の処理ステップへの入力でもよく、その結果、処理ステップの「連鎖」、すなわち、処理連鎖を形成する。
【0007】
処理連鎖が実行されるとき、処理ステップの特定のバージョンが以前の選択に基づいて実行され、処理連鎖の出力データの生成に寄与する。システムは、それ故に、特定の出力が生成されたときに使用された各処理ステップの各バージョンが分かっている。この情報は、記録することができ、一部の事例では、アーカイブの目的のため利用できるように、出力データに関連付けられる。後で、処理連鎖の特定の結果が複製される必要がある場合、アーカイブデータは、現行システムより容易にこのような再生成を行うのに役立つように依存される可能性がある。
【0008】
本開示の一態様は、入力としてデータを受信するように構成されている第1のプロセスの第1および第2のバージョンに対応する第1および第2のバージョンインジケータを表示し、第1または第2のバージョンを選択する入力を受信し、プロセスの選択されたバージョンに基づいてデータを処理する方法を提供する。この方法の一部の態様は、第1のプロセスの第1および第2のバージョンに適用される、第1のプロセスの1つ以上のパラメータを定義する入力を受信することを含む。この方法の一部の態様では、第1のプロセスの第1および第2のバージョンは、共通タイプの少なくとも1つの出力を作り出すように構成されている。この方法の一部の態様では、第2のプロセスは、第1のプロセスの第1のバージョンの第1の出力または第1のプロセスの第2のバージョンの第2の出力のいずれかを入力として受信する。この方法の一部の態様では、第2のプロセスが第1の出力を受信するか、または、第2の出力を受信するかは、第1のプロセスのうちどのバージョンが選択されるかに基づいている。この方法の一部の態様は、第1のプロセスの選択されたバージョンを使用してデータを処理することに基づいて出力データを作り出すことと、出力データに対応するインジケータを表示することとをさらに備える。この方法の一部の態様は、第1のプロセスの別のバージョンを選択する入力を受信することと、他のバージョンの選択に少なくとも部分的に基づいて他のバージョンを使用してデータを処理し、第2の出力データを作り出すことと、第2の出力データに対応するデータインジケータを表示することとを含む。この方法の一部の態様は、データのインジケータを表示することを含む。この方法の一部の態様は、選択されたバージョンを示す値で処理の出力にタグ付けすることを含む。この方法の一部の態様は、以前選択されたバージョンから現在選択されたバージョンに第1のプロセスの選択されたバージョンを変更する入力を受信することと、第1のプロセスの出力データが以前選択されたバージョンに基づいているか、または、現在選択されたバージョンに基づいているかについて第1の決定を行うことと、第1の決定に基づいて出力データのインジケータの色について第2の決定を行うことと、決定された色を使って電子表示装置にインジケータを表示することとを含む。この方法の一部の態様は、第1のプロセスのバージョンを選択する入力を受信するように構成されているユーザ・インターフェース・コントロールを表示することを含む。この方法の一部の態様は、第1のプロセスの表示されるバージョンの個数を決定することと、1より大きいバージョンの個数に応じて複数のバージョンインジケータを表示することとを含む。この方法の一部の態様では、データは、画像ファイルを定義する。
【0009】
開示された別の態様は、計算回路においてデータを処理する装置である。この装置は、プロセッサと、プロセッサに動作的に接続され、プロセッサを構成する命令を記憶するように構成されているメモリとを含み、前記命令は、入力としてデータを受信するように構成されている第1のプロセスの第1および第2のバージョンに対応する第1および第2のバージョンインジケータを表示するように構成されている表示モジュール、第1または第2のバージョンを選択する入力を受信するように構成されている選択モジュール、ならびに、プロセスの選択されたバージョンに基づいてデータを処理するように構成されているデータ処理モジュールを含む。
【0010】
この装置の一部の態様では、選択モジュールは、第1のプロセスの第1および第2のバージョンに適用できる第1のプロセスの1つ以上のパラメータを定義する入力を受信するようにさらに構成されている。この装置の一部の態様では、第1のプロセスの第1および第2のバージョンは、共通タイプの少なくとも1つの出力を作り出すように構成されている。この装置の一部の態様では、メモリに記憶された命令は、第1のプロセスの第1のバージョンの第1の出力または第1のプロセスの第2のバージョンの第2の出力のいずれかを入力として受信するように構成されている第2のプロセスを記憶するようにプロセッサを構成する。これらの態様の一部では、これらの態様の一部で第2のプロセスが第1の出力を受信するか、もしくは、第2の出力を受信するかは、第1のプロセスのうちどのバージョンが選択されるかに基づいている。
【0011】
この装置の一部の態様では、データ処理モジュールは、第1のプロセスの選択されたバージョンを使用してデータを処理することに基づいて出力データを作り出すようにさらに構成され、表示モジュールは、出力データに対応するインジケータを表示するようにさらに構成されている。この装置の一部の態様では、選択モジュールは、第1のプロセスの別のバージョンを選択する入力を受信するようにさらに構成され、データ処理モジュールは、第2の出力データを作り出すために他のバージョンの選択に少なくとも部分的に基づいて他のバージョンを使用してデータを処理するようにさらに構成され、表示モジュールは、第2の出力データに対応するデータインジケータを表示するようにさらに構成されている。この装置の一部の態様では、表示モジュールは、データのインジケータを表示するようにさらに構成されている。この装置の一部の態様では、処理モジュールは、選択されたバージョンを示す値で処理の出力にタグ付けするように構成されている。
【0012】
この装置の一部の態様では、選択モジュールは、以前選択されたバージョンから現在選択されたバージョンに第1のプロセスの選択されたバージョンを変更する入力を受信するように構成され、表示モジュールは、第1のプロセスの出力データが以前選択されたバージョンに基づいているか、もしくは、現在選択されたバージョンに基づいているかについて第1の決定を行い、第1の決定に基づいて出力データのインジケータの色について第2の決定を行い、決定された色を使って電子表示装置にインジケータを表示するようにさらに構成されている。この装置の一部の態様では、表示モジュールは、第1のプロセスのバージョンを選択する入力を受信するように構成されているユーザ・インターフェース・コントロールを表示するようにさらに構成されている。この装置の一部の態様では、表示モジュールは、第1のプロセスの表示されるバージョンの個数を決定し、1より大きいバージョンの個数に応じて複数のバージョンインジケータを表示するようにさらに構成されている。
【0013】
開示された別の態様は、計算回路においてデータを処理する装置である。この装置は、入力としてデータを受信するように構成されている、第1のプロセスの第1および第2のバージョンに対応する第1および第2のバージョンインジケータを表示する手段と、第1もしくは第2のバージョンを選択する入力を受信する手段と、プロセスの選択されたバージョンに基づいてデータを処理する手段とを含む。
【0014】
この装置の一部の態様は、第1のプロセスの第1および第2のバージョンに適用できる第1のプロセスの1つ以上のパラメータを定義する入力を受信する手段をさらに含む。この装置の一部の態様では、第1のプロセスの第1および第2のバージョンは、共通タイプの少なくとも1つの出力を作り出すように構成されている。
【0015】
この装置の一部の態様では、第2のプロセスは、第1のプロセスの第1のバージョンの第1の出力または第1のプロセスの第2のバージョンの第2の出力のいずれかを入力として受信する。この装置の一部の態様では、第2のプロセスが第1の出力を受信するか、または、第2の出力を受信するかは、第1のプロセスのどのバージョンが選択されるかに基づく。この装置の一部の態様は、第1のプロセスの選択されたバージョンを使用してデータを処理することに基づいて出力データを作り出す手段と、出力データに対応するインジケータを表示する手段とをさらに含む。この装置の一部の態様は、第1のプロセスの別のバージョンを選択する入力を受信する手段と、第2の出力データを作り出すために他のバージョンの選択に少なくとも部分的に基づいて他のバージョンを使用してデータを処理する手段と、第2の出力データに対応するデータインジケータを表示する手段とをさらに含む。
【0016】
この装置の一部の態様は、データのインジケータを表示する手段をさらに含む。この装置の一部の態様は、選択されたバージョンを示す値で処理の出力にタグ付けする手段をさらに含む。この装置の一部の態様は、以前選択されたバージョンから現在選択されたバージョンに第1のプロセスの選択されたバージョンを変更する入力を受信する手段と、第1のプロセスの出力データが以前選択されたバージョンに基づいているか、または、現在選択されたバージョンに基づいているかについて第1の決定を行う手段と、第1の決定に基づいて出力データのインジケータの色について第2の決定を行う手段と、決定された色を使って電子表示装置にインジケータを表示する手段とをさらに含む。この装置の一部の態様は、第1のプロセスのバージョンを選択する入力を受信するように構成されているユーザ・インターフェース・コントロールを表示する手段をさらに含む。この装置の一部の態様は、第1のプロセスの表示されるバージョンの個数を決定する手段と、1より大きいバージョンの個数に応じて複数のバージョンインジケータを表示する手段とをさらに含む。この装置の一部の態様では、データは、画像ファイルを定義する。
【0017】
開示された別の態様は、実行されたとき、プロセッサに計算回路においてデータを処理する方法を実行させる命令を備えるコンピュータ読み取り可能な記憶媒体である。この方法は、入力としてデータを受信するように構成されている第1のプロセスの第1および第2のバージョンに対応する第1および第2のバージョンインジケータを表示することと、第1または第2のバージョンを選択する入力を受信することと、プロセスの選択されたバージョンに基づいてデータを処理することとを含む。コンピュータ読み取り可能な記憶媒体の一部の実施形態では、この方法は、第1のプロセスの第1および第2のバージョンに適用できる、第1のプロセスの1つ以上のパラメータを定義する入力を受信することをさらに含む。
【0018】
コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第1のプロセスの第1および第2のバージョンが共通タイプの少なくとも1つの出力を作り出すように構成されていることをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様において、この方法は、第2のプロセスが第1のプロセスの第1のバージョンの第1の出力または第1のプロセスの第2のバージョンの第2の出力のいずれかを入力として受信することをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第2のプロセスが第1の出力を受信するか、または、第2の出力を受信するかは、第1のプロセスのうちどのバージョンが選択されるかに基づいていることをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第1のプロセスの選択されたバージョンを使用してデータを処理することに基づいて出力データを作り出すことと、出力データに対応するインジケータを表示することとをさらに含む。
【0019】
コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第1のプロセスの別のバージョンを選択する入力を受信することと、第2の出力データを作り出すために他のバージョンの選択に少なくとも部分的に基づいて他のバージョンを使用してデータを処理することと、第2の出力データに対応するデータインジケータを表示することとをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、データのインジケータを表示することをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、選択されたバージョンを示す値で処理の出力にタグ付けすることをさらに含む。
【0020】
コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、以前選択されたバージョンから現在選択されたバージョンに第1のプロセスの選択されたバージョンを変更する入力を受信することと、第1のプロセスの出力データが以前選択されたバージョンに基づいているか、または、現在選択されたバージョンに基づいているかについて第1の決定を行うことと、第1の決定に基づいて出力データのインジケータの色について第2の決定を行うことと、決定された色を使ってインジケータを電子表示装置に表示することとをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第1のプロセスのバージョンを選択する入力を受信するように構成されているユーザ・インターフェース・コントロールを表示することをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第1のプロセスの表示されるバージョンの個数を決定することと、1より大きいバージョンの個数に応じて複数のバージョンインジケータを表示することとをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、データは、画像ファイルを定義する。
【発明を実施するための形態】
【0026】
発明の実施形態は、処理連鎖のステップをグラフで表示し、ユーザが処理連鎖のステップを修正することを可能にするシステムおよび方法に関する。たとえば、システムは、一連の処理ステップとして処理連鎖を表示するように構成されることがある。各処理ステップは、各ブロックが連鎖内でこのブロックを接続する1本以上の線で表されているブロックのようなグラフィカルな標識によって表現されることがある。各ブロックは、特定のステップをリストアップし、次に、このステップを行うためにシステムの内部で動くプロセスのグラフィカルな標識に関連付けられる。それ故に、各位置に、プロセス内のステップを表すプロセスの1つの標識と、ステップがどのようにして行われるかの基礎となるプロセスを表現する1つ以上の関連した標識とが存在することがある。処理ステップを更新または修正するために、ユーザは、このステップに関連付けられることになる新しいバージョンを追加することがある。ユーザは、次に、ユーザ・インターフェース内の標識を選択し、更新を要求することによって、処理ステップの新たに追加されたバージョンを選択することにより処理連鎖を再実行することがあり得る。このシステムは、次に、処理連鎖の少なくとも一部、たとえば、新しいバージョンによる影響を受ける処理ステップだけを再実行することがある。プロセスの新しいバージョンに基づく新しい結果は、次に、報告されることがある。処理連鎖を選択し更新するこのグラフィカルな方法は、ユーザがこれらのデータがどのように計算されるかを迅速かつ容易に操作すること、および、さらにプロセス内の特定の方法を更新することによってこのプロセスにトレーサブルな更新を行うことを可能にする。
【0027】
新規システム、装置、および方法の様々な態様は、添付図面を参照して以下でより詳しく説明される。この開示は、しかしながら、多くの異なった形態で具現化されることがあり、本開示の全体を通じて提示された何らかの具体的な構造もしくは機能に限定されるものとして解釈されるべきではない。むしろ、これらの態様は、本開示が詳細かつ完全であり、開示の範囲を当業者に十分に伝えるように提供される。本明細書における教示に基づいて、当業者は、開示の範囲が、本発明の他の態様と独立に実施されるか、または組み合わされるかとは無関係に、本明細書に開示された新規システム、装置、および方法のあらゆる態様を対象とするように意図されていることを認めるべきである。たとえば、本明細書に記載された幾つもの態様を使用して、装置が実施されることがあり、または、方法が実施されることがある。その上、発明の範囲は、他の構造、機能、または、本明細書に記載された発明の様々な態様に加えて、もしくは、これら以外の構造および機能を使用して実施されるこのような装置または方法を対象とすることが意図されている。本明細書に記載されたいずれの態様も請求項の1つ以上の要素によって具現化されることがあることが理解されるべきである。
【0028】
本明細書に開示された実施は、処理連鎖におけるプロセスの複数のバージョンを管理する方法およびシステムを提供する。当業者は、これらの実施形態がハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせで実施されることがあることを認識するであろう。
【0029】
以下の説明では、例の完全な理解をもたらすように具体的な詳細が記載される。しかしながら、例がこれらの具体的な詳細なしに実施されることがあることは、当業者によって理解されるであろう。たとえば、電気部品/装置は、例を不必要に詳しく分かり難くすることがないようにブロック図に示されている。他の実例では、このような部品、他の構造および手法は、例をさらに説明するために詳細に表されることがある。
【0030】
例は、フローチャート、フロー図、有限状態図、構造図、またはブロック図として描かれたプロセスとして説明されてもよいことが注目される。フローチャートは、逐次プロセスとして演算を記載するが、演算の多くは、並列もしくは同時に実行される可能性があり、プロセスは、繰り返される可能性がある。その上、演算の順序は、並べ替えられることがある。プロセスは、プロセスの演算が完了したときに終了する。プロセスは、方法、関数、手続、サブルーチン、サブプログラムなどに対応することがある。プロセスがソフトウェア関数に対応するとき、プロセスの終了は、呼び出し側関数またはメイン関数への関数のリターンに対応する。
【0031】
当業者は、情報および信号が多種多様のテクノロジーおよび手法のうちいずれかを使用して表現されることがあることを理解するだろう。たとえば、上記説明を通して参照されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光粒子、またはこれらのいずれかの組み合わせによって表現されることがある。
【0032】
図1は、逆方向チェイニング能力を提供する分析システムのユーザ・インターフェース画面100を示す。ユーザ・インターフェース画面100は、「あらゆる分析および記憶のためのプラットフォーム(Platform for ALL Analysis and Storage)」の略であるPALLASと呼ばれるプログラムのユーザ・インターフェースの一部を表す。
図1に表された画面100は、PALLASのレシピ管理システムによって表示される。レシピは、材料、または処理ステップの集合である。
図1は、レシピ・エディタ・ウィンドウ140およびプロパティ・ウィンドウ150を表す。PALLASの一部の実施は、ユーザが材料を類似もしくは適合している入力および出力ファイルと連結してレシピにまとめることを可能にする。これらのレシピは、PALLASサーバー上でデータベース内に記憶され得る。
【0033】
レシピは、PALLAS内で閲覧、変更、または作成され得る。レシピ・エディタ・ウィンドウ140は、ユーザによって操作され得る処理連鎖の処理ステップを表す。一部の態様では、プロパティ・ウィンドウ150は、現在選択されているレシピ・エディタ・ウィンドウ140内に処理ステップのプロパティ、または、入力/出力データファイルを表示する。
【0034】
レシピ・エディタ・ウィンドウ140の中の画面100に表されたレシピは、2つの処理連鎖105a〜bのグラフィカルな表現を含む。処理連鎖105aは、3つの処理ステップ110a〜cを含む。処理連鎖105bは、2つの処理ステップ112a〜bを含む。例示された態様では、処理ステップの各バージョンは、バージョンインジケータを使用して表示される。たとえば、画面100は、処理ステップインジケータ110a〜cおよび112a〜bのそれぞれは、バージョンインジケータ110a−v1、110b−v1、110c−v1、112a−v1、および112b−v1で表された1つの対応するバージョンを有する。一部の態様では、処理ステップインジケータ110a〜cおよび/または112a〜bに対応する処理ステップのうち1つ以上は、複数のバージョンを有することがある(
図1において図示されず)。
【0035】
各処理連鎖105a〜bは、1つ以上の入力を受け入れることがある。たとえば、処理連鎖105a〜bのそれぞれは、入力としてファイルリーダまたはデータベース・アクセス・ブロック101の出力を受信する。ファイルリーダ101は、入力ファイル(たとえば、未加工画像ファイル)を読み込み、これを処理連鎖105a〜bによる処理の準備ができているフォーマットに変換することがある。
【0036】
入力としてファイルリーダ101を介してソースファイル(たとえば、未加工もしくは変換済み画像ファイル)を受信するのに加えて、処理連鎖は、1つ以上の付加的な入力パラメータをさらに受信することがある。これらの付加的な入力パラメータのうち少なくとも1つは、ユーザからの入力に基づくことがある。一部の態様では、これらの付加的なパラメータ値は、処理ステップがソースファイル(たとえば、未加工もしくは変換済み画像ファイル)のような別の入力をどのように処理するかをもたらすことがある。付加的な入力パラメータの例は、コントラスト情報、色相情報、画像回転角、クロッピング情報、および/または第2の画像ファイルのうち1つ以上を含む可能性がある。他のパラメータも検討される。一部の態様では、パラメータは、同じレシピの全処理ステップの間で共有される可能性がある(たとえば、グローバルパラメータ)。一部の態様では、パラメータは、同じ処理ステップの異なったバージョンの間で共有される可能性がある(たとえば、処理パラメータ)。一部の実施形態では、ある一定のパラメータは、処理ステップの特定のバージョンだけに適用できることがある(たとえば、バージョン固有パラメータ)。
【0037】
図1は、一方のインジケータから別のインジケータへのデータのフローを示すコネクタ130a〜bを表す。たとえば、コネクタ130aは、リーダー101と処理ステップインジケータ112aとの間に表されている。処理ステップインジケータ112aは、次に、別のコネクタ130bを介して別の処理ステップインジケータ112bに接続される。
図1において処理連鎖105a〜bの表示された要素を閲覧することにより、ユーザは、ファイルリーダ101からの画像ファイルが様々な出力を生成するためにどのように処理されるかを迅速かつ性格に理解することができる。
【0038】
図2Aは、レシピ・エディタ・ウィンドウ140’およびプロパティ・ウィンドウ150’を含む
図1の分析システムの第2のユーザ・インターフェース画面200aを表す。一部の態様では、
図2のレシピ・エディタ・ウィンドウ140’は、
図1のレシピ・エディタ・ウィンドウ140を生成したのと同じレシピ・エディタによって生成される。レシピ・エディタ・ウィンドウ140’は、
図1からの処理連鎖105aおよび105bの修正バージョンを表現する処理連鎖105a’および105b’を含む。
図1の処理連鎖105a〜bと対比して、レシピ・エディタ・ウィンドウ140’は、処理連鎖のそれぞれが、インジケータ110aに対応する処理ステップが今度は2つのバージョン110a−v1および110a−v2を含むように修正されていることを表す。処理連鎖105bは、処理連鎖105b’に修正され、インジケータ112bに対応する処理ステップは、バージョンインジケータ112b−v1および112b−v2によって表された2つのバージョンを含む。
図2Aは、処理ステップ110a〜cおよび1120a〜bの2つのバージョンを例示するが、何らかの処理ステップが有することがあるバージョンの個数は、これらに限定されない。たとえば、一部の実施形態では、処理ステップは、3、4、5、6、7、8、9、10、またはこれ以上のバージョンを有することがある。バージョンの個数は、一部の実施において、無制限にすることができる。
【0039】
一部の態様では、
図1〜2Aに表されたインジケータ110a〜cおよび112a〜bに対応する処理ブロックのような特定の処理ブロックのバージョンは、1つ以上の属性またはパラメータを共有することがある。たとえば、PALLASの一部の態様では、一部のパラメータは、システムによって定義された全処理ステップによって共有されるので、グローバルと考えられることがある。一部の他のパラメータは、処理ステップ固有であることがある。これらのパラメータは、他の処理ステップと共有されないことがあるが、単一の処理ステップの全バージョンと共有される。一部の態様では、表示装置100を実施するアプリケーションプログラムは、ユーザがプロセスステップの全バージョンに共通であるが、他の処理ブロックに共通ではないプロパティに対する値を入力もしくは更新することを可能にするインターフェースを提供することがある。これらのプロパティを更新することは、処理ブロックの各バージョンに更新済みのパラメータ値を適用させる、および/または、利用させることがある。PALLASの一部のさらなる態様は、単一の処理ステップの各バージョンだけに固有であるパラメータ値を定義するためにこのバージョンを提供することがある。
【0040】
図1および2Aに表されたレシピ・エディタは、処理ステップのそれぞれによってどのパラメータが使用されるかを定義する。処理連鎖の実行のためのパラメータの特定の値は、実行ビュー200bによって一部の態様で定義されることがある。
【0041】
一部の態様では、PALLASは、第1のアルゴリズムを使用するために処理ステップの1つのバージョン、および、第2の異なったアルゴリズムを呼び出すために処理ステップの第2のバージョンを提供することがある。処理ステップのバージョンは、処理ロジックを共有することがある。たとえば、一部の態様では、処理ステップの2つ以上のバージョンは、同じロジックの50%、60%、70%、80%、90%、または99%を共有することがある。一部の態様では、処理ステップの2つ以上のバージョンは、同じロジックの100%を共有することがある。この状況において、バージョンは、異なったパラメータ値を処理ステップの各バージョンに渡すレシピ定義に基づいてこれらの出力が異なることがある。
【0042】
一部の態様では、処理ブロックのバージョンは、少なくとも1つの共通入力を共有し、少なくとも1つの共通出力もしくは出力のタイプを生成することがある。たとえば、
図2Aに表されるように、バージョン110a−v1および110a−v2は、共通入力としてファイルリーダ101を共有する。これらのバージョンは全て、類似する出力タイプに対応するデータを生成するので、共通出力をさらに共有する。バージョン112a−v1および112a−v2は、バージョン110a−v1および110a−v2と入力101をさらに共有するが、これらは、同じ処理ブロックのバージョンではない。たとえば、バージョン110a−v1および110a−v2は、バージョン112a−v1および112a−v2と共通出力を共有しない。同様に、バージョン110a−v1および110a−v2は、プロパティ・ウィンドウ150内に表示されることがある共通パラメータをバージョン112a−v1および112a−v2と共有しない。これらの様々なバージョンは、レシピ・エディタ140’において一緒に表示されることもない。
【0043】
一部の態様では、第1の処理連鎖の1つ以上の出力は、第2の処理連鎖への入力である可能性がある。たとえば、
図1を参照すると、図示されない一部の態様では、ファイルリーダ101は、処理連鎖105a〜bの両方によって処理されることがある。一部の態様では、第1の処理連鎖105aによって生成された第1の出力データは、第2の処理連鎖105bへの入力として使用されることがある。処理連鎖105bは、次に、第1の出力データに基づいて第2の出力データを生成することがある。
【0044】
PALLASの特定の実施では、処理ブロックの各バージョンは、スクリプトおよびこのスクリプトの対応する処理ステップのバージョンがPALLASシステムからパラメータを受信することを可能にする標準入力インターフェースに適合するスクリプトの定義を少なくとも参照することがある。
【0045】
一部の態様では、処理ステップのバージョンは、レシピ・エディタ画面140’上で視覚的に一緒にグループ化されることがある。たとえば、一部の態様では、ユーザ・インターフェース画面上のグループボックスまたは類似するインジケータは、複数の処理ステップバージョンインジケータが同じ処理ステップのバージョンであることを示すことがある。たとえば、一部の態様は、処理ステップ112aをこれのそれぞれのバージョン112a−v1および112a−v2に関連付けるために、処理ステップインジケータ112a、ならびにバージョンインジケータ112a−v1および112a−v2を実質的に囲むグループボックスを表示することがある。上記特徴のうち1つ以上は、処理ステップのバージョンの範囲内で一緒に使用される可能性がある。
【0046】
図2Bは、
図2Aのレシピ・エディタ画面140’に表されたレシピのプロセスビュー141を含む実行ビュー200bを表す
図1の分析システムの第3のユーザ・インターフェース画面である。
図2Bは、プロセスビュー141に表されたレシピの選択された部分に対するプロパティ・ウィンドウ151をさらに表す。
図1および
図2Aのレシピ・エディタ140および140’は、処理連鎖内の処理ステップを表すが、プロセスビュー141は、処理連鎖の実行中もしくは実行後に処理連鎖(群)を通るそれぞれのデータフローを表す。一部の態様では、
図1および
図2Aに表された処理連鎖および/または処理ステップのいずれも、実行ビュー200bの中に表されることがあることに留意されたい。
【0047】
プロセスビュー141において、2つの処理連鎖201aおよび201bが表される。データインジケータ205aおよび205bは、処理されているソースデータ(たとえば、画像ファイル)を表現する。
図2Bは、別個のデータインジケータ205aおよび205bを表すが、一部の態様では、処理連鎖201aおよび201bによって処理されたデータは、同一のソースに由来することがある。
【0048】
プロセスビュー141は、処理連鎖201aおよび201bの中間出力インジケータ220aおよび220bを表示する。中間出力インジケータ220a〜bは、それぞれ先行する処理ステップ210a〜bによって作り出された出力に対応する。処理ステップ210aは、
図2Aの処理ステップ110aに対応することがある。プロセスビュー141は、処理ステップ210bによって作り出された出力に対応する出力インジケータ220bをさらに表す。出力インジケータ240aおよび240bは、出力220aおよび220bを処理した処理ステップ230aおよび230bの出力に対応する。出力インジケータ240aおよび240bは、処理連鎖201aおよび201bの最終出力に対応することがある。
【0049】
一部の態様では、処理ステップの複数のバージョンのうち1つは、実行ビュー200bを介して選択されることがある。一部の態様では、この選択は、たとえば、ポインティング装置もしくはタッチスクリーン入力を用いてユーザによって行われる。一部の態様では、複数のバージョンを含む特定の処理ステップのインジケータがプロセスビュー141の中で選択されるとき、プロパティ・ウィンドウ151は、ドロップダウンメニュー230aを用いて選択された処理ステップの特定のバージョンの選択肢を提供することがある。たとえば、ユーザが処理ステップインジケータ210aをクリックするとき、プロパティ・ウィンドウ151は、処理ステップ210aのプロパティを表示することがある。ユーザは、その後、選択された処理ステップ210aのどのバージョンがドロップダウン230aを用いて処理連鎖によって作動もしくは使用されるべきであるかを選択することがある。ユーザが複数のバージョンを持たない処理ステップインジケータを選択する場合、ドロップダウン230aは、グレー表示される、または、唯一のバージョンだけが存在することを示す「1」に初期設定されることがある。一部の実施形態では、ドロップダウンメニュー230aは、選択された処理ステップが単一のバージョンだけを含むとき、全く表されないことがある。
【0050】
代替的に、一部の態様では(図示せず)、処理ステップの複数のバージョンがプロセスビュー141の中に表されることがある。複数のバージョンは、ユーザが処理ステップの特定のバージョンを選択することを可能にするラジオコントロールを共有することがある。たとえば、処理ステップ210aが
図2Aの処理ステップ110aに対応する場合、処理ステップ110aのバージョン110a−v1または110a−v2の一方は、ラジオコントロールを用いて実行ビューの中の処理ステップインジケータ210aの左側(または右側)に選択されることがある。他の実施形態は、処理ステップのバージョンを選択する異なった手法を使用することがある。たとえば、一部の態様では、プロセスビュー141の中の表示されたバージョンインジケータをクリックすることは、処理ステップの対応するバージョンを選択することがある。他の実施形態は、処理ステップバージョンの手動による選択を行うことがある。たとえば、一部の態様では、ユーザは、バージョン番号に対応する特定のバージョンを選択するために特定の処理ステップのバージョン番号をユーザ・インターフェース・コントロールにそのままタイプ入力することがある。
【0051】
一部の態様では、処理ステップのバージョンを選択することは、選択されたバージョンを「アクティブ状態」にさせ、処理ステップの全ての他のバージョンを「非アクティブ状態」にさせる。換言すれば、処理ステップの1つのバージョンを選択することにより、処理ステップの選択されたバージョンは、処理ステップの関数(群)を実行するために使用されることがあり、次に、処理ステップを含む処理連鎖が実行され、または、行われる。選択されていない処理ステップのバージョンは、処理ステップの実行中に関数を実行しないであろう。代替的に、選択されていないバージョンは、動作することがあるが、これらの出力は、処理連鎖の出力の一部ではないかもしれない。換言すれば、処理ステップの1つのバージョンを選択することは、処理連鎖の範囲内の処理ステップの少なくとも特定のインスタンスに対して、この処理ステップの全ての他のバージョンの選択を除外する。
【0052】
一部の態様では、処理ステップは、1つ以上の処理連鎖の内部に複数のインスタンスを有することがある。たとえば、図示しない一部の態様では、処理ステップ210aは、処理連鎖201aおよび201bの両方で利用されることがある。処理ステップ210aは、
図2Bの処理ステップ110aに対応することがあるので、この処理ステップは、2つのバージョン110a−v1および110a−v2を含むことがある。この状況では、処理ステップ210a/110aのどのバージョンが処理連鎖201aおよび201bのそれぞれにおいてアクティブ状態であるかを選択する必要性がある。
【0053】
単一の処理ステップが複数の処理連鎖で使用される、または、単一の処理連鎖の内部で繰り返し使用されるとき、実行ビュー200bは、単一の処理ステップに対する別個のインスタンスインジケータを表すであろう。処理ステップの各インスタンスインジケータは、プロセスビュー141において選択される可能性があり、様々なプロパティがプロパティ・ウィンドウ151において処理ステップの選択されたインスタンス毎に表されるであろう。これは、適切な場合、様々なバージョンを利用するために単一の処理ステップの様々なインスタンスを提供する。たとえば、処理ステップ210a/110aの第1のバージョンは、処理連鎖201aで用いるため選択されることがあり、処理ステップ210a/110aの第2のバージョンは、処理連鎖201b内の処理ステップ220aのため選択されることがあり得る。
【0054】
PALLASシステムは、処理ステップのインスタンス固有パラメータを定義することがあることに留意されたい。たとえば、処理ステップの全てのバージョンは、前述のとおり処理ステップ固有パラメータを共有することがある。処理ステップの全てのインスタンスは、処理ステップ固有パラメータをさらに共有することがある。しかしながら、処理ステップの各インスタンスは、インスタンスに固有であり、かつ処理ステップの他のインスタンスと共有されない少なくとも1つのパラメータを有することがある。
【0055】
図3は、開示された実施形態を実施することがあるシステム300のブロック図である。システム300は、計算回路302および表示装置304を含む。計算回路302は、プロセッサ306およびメモリ308を含む。プロセッサ306は、汎用処理ユニットでもよく、または、イメージング応用のため特別に設計されたプロセッサでもよい。メモリ308は、様々な画像処理および装置管理タスクを実行するような関数を実行するようにプロセッサ306を構成する命令を記憶する。メモリ308に記憶された命令は、モジュールに体系化される。モジュールは、バージョン制御モジュール310と、表示モジュール312と、選択モジュール314と、データ処理モジュール316とを含む。
【0056】
バージョン制御モジュール310は、バージョン制御を実行し、処理ステップのバージョンに関する情報をユーザに表示するようにプロセッサ306を構成することがある命令を含む。バージョン制御モジュール310は、装置300の全部のバージョン制御関数を統合および/または制御することもある。たとえば、バージョン制御モジュール310は、表示モジュール312、選択モジュール314、およびデータ処理モジュール316の内部の命令を呼び出す命令を含むことがある。バージョン制御モジュール310は、処理ブロックのバージョンを記憶し、処理データ(または出力データ)を、出力データを作り出した処理ブロックのバージョンに関連付けることがある。バージョン制御モジュール310は、入力データを記憶し、記憶された入力データを、記憶された入力データに基づいて作り出された、記憶された出力データに関連付けることもある。たとえば、プロセッサ306がユーザによるバージョンの選択に関する情報を受信したとき、プロセッサは、選択されたバージョンを使用してデータを処理することがある。バージョン制御モジュール310は、出力データを作り出すために使用された処理ステップのバージョン(群)を出力データと共に記憶するようにプロセッサ306をさらに構成することがある。その結果、プロセッサ306は、バージョン制御モジュール310の内部の命令と共に、プロセスのバージョンを制御する少なくとも1つの手段を表現する。
【0057】
表示モジュール312は、様々な要素またはグラフィカルな標識を表示装置304に表示するようにプロセッサ306を構成することがある命令を含む。たとえば、表示モジュール312内の命令は、
図1、
図2Aおよび
図2Bに関連して前述された画面100および/または200aを表示するようにプロセッサ306を構成することがある。その結果、プロセッサ306は、表示モジュール312と併せて、要素を表示装置104に表示する少なくとも1つの手段に相当する。
【0058】
選択モジュール314は、ユーザから入力選択を受信するようにプロセッサ306を構成することがある命令を含む。たとえば、選択モジュール314によって受信された入力は、
図2Aに表された、処理連鎖105b’の内部でバージョン112a−v1または112a−v2のいずれかのような処理連鎖において使用されるべき処理ステップのバージョンを識別することがある。その結果、プロセッサ306と、選択モジュール314内の命令とは、処理ステップのバージョンを選択する少なくとも1つの手段に相当する。
【0059】
データ処理モジュール316は、プロセスの選択されたバージョンを使用して入力データを処理するようにプロセッサ306を構成することがある命令を含む。たとえば、
図2Aにおける処理ステップ112aのバージョン112a−v1が(
図2Bの実行ビューにおいて上記開示されたバージョン選択方法のうち1つを用いて)選択された場合、データ処理モジュール316は、処理ステップ112aのバージョン112a−v1を使用して処理連鎖105b’を実行することがある。その結果、プロセッサ306は、処理モジュール316と併せて、データ処理ステップの選択されたバージョンを使用してデータを処理する少なくとも1つの手段に相当する。
【0060】
一部の実施形態では、計算回路302は、表示装置を有するユーザコンピュータとデータ通信することができる。他の実施形態では、計算回路およびユーザコンピュータは、同じコンピュータの内部に収納される。説明の都合上、計算回路およびユーザコンピュータが同じ装置内に収納されている実施形態が記載されるが、開示された態様は、これらの実施形態に限定されない。計算回路およびユーザコンピュータが異なったコンピュータに収納されているとき、計算回路302は、適当なデータ通信プロトコルを使用してユーザコンピュータからデータを送受信する。
【0061】
付加的に、
図3は、数個のモジュールを有する1つのメモリ部品を示すが、当業者は、異なったメモリアーキテクチャを利用するいくつかの実施形態を認識するであろう。たとえば、設計は、メモリ308に格納されたモジュールを実施するプロセッサ命令の記憶のためROMまたはスタティックRAMメモリを利用する。代替的に、プロセッサ命令は、システム始動時に、装置300に統合された、または、外部装置ポートを介して接続されたディスクストレージ装置から読み込まれることがある。プロセッサ命令は、次に、プロセッサ306による実行を実現し易くするためにRAMにロードされることがある。たとえば、メモリ308は、プロセッサ306による実行前に命令が作業メモリ308の中にロードされるRAMメモリでもよい。
【0062】
図4は、データを処理する方法400の一実施形態のフローチャートである。
図4の方法400の一部または全部は、前述の
図3の計算回路に含まれる命令によって一実施形態において実施されることがある。この方法は、一部の態様では、
図1〜2Bに関して表されたユーザ・インターフェースのうち1つ以上を表示することがある。この方法400は、スタートブロック410で始まり、次に、ブロック420に移行し、プロセスの第1および第2のバージョンインジケータが表示される。たとえば、一部の態様では、第1および第2のバージョンインジケータを表示することは、
図2Aに関連して前述されたように処理ステップの2つのバージョンを表示することと等価であることがある。たとえば、第1のバージョンインジケータは、処理ブロックバージョン110a−v1であることがあり、第2のバージョンインジケータは、処理ブロックバージョン110a−v2であることがある。ブロック420の一部の態様では、3つ以上のバージョンインジケータが表示されることがある。たとえば、一部の態様では、3個、4個、5個、6個、7個、8個、9個、または10個のバージョンインジケータが表示されることがある。処理ステップのバージョンの個数の制限は、利用可能なシステム資源による制限以外には考えられていない。
【0063】
図2Aを参照して前述したとおり、処理ステップのバージョンは、1つ以上の処理ステップ固有パラメータを共有することがある。さらに、処理ステップのバージョンは、少なくとも1つの入力および少なくとも1つの出力タイプを共有する。
図2Aおよび
図2Bにおいて前述したとおり、バージョン112a−v1および112a−v2は、両方共に、入力としてコネクタ130aを介してファイルリーダ101の出力を受信する。同様に、両方のバージョン112a−v1および112a−v2は、共通出力タイプの出力220aおよび220bを作り出す。
【0064】
一部の態様では、ブロック420は、処理ステップインジケータ110aまたは110bのような処理ステップインジケータを表示することを含むことがある。一部の態様では、ブロック420は、処理ステップインジケータからの、または、処理ステップインジケータへのコネクタを表示することをさらに含むことがある。たとえば、
図2Aに表されるように、コネクタ130aは、ファイルリーダ101と処理ステップインジケータ112aとの間に表示される。一部の態様では、ブロック420は、処理ステップと共に複数のバージョンのインジケータを表示することを含むことがある。たとえば、一部の態様は、複数のバージョンを含む処理ステップを用いてツリーコントロールを実施することがある。ツリーコントロールは、ユーザが処理ステップのビューを展開すること、および、折りたたむことを可能にする。折りたたまれたとき、処理ステップインジケータは、処理ステップが複数のバージョンを有することを示す「+」記号もしくは他のインジケータのようなインジケータと一緒に表示されることがある。一部の態様では、インジケータを選択することは、ツリーコントロールを展開させ、その間に、処理ステップの各バージョンに対して1つずつ、バージョンインジケータのリストを表示する。インジケータを再び選択することは、ツリーコントロールを折りたたむことがある。
【0065】
一部の態様では、ブロック420は、1つ以上のデータインジケータ(群)を表示することをさらに含むことがある。一部の態様では、第1のデータインジケータは、処理ステップへの入力として供給されたソースデータに対応することがある。第2のデータインジケータは、処理ステップによって作り出された出力データに対応することがある。一部の態様では、第1のデータインジケータに対応するソースデータファイルは、処理される画像を定義することができる。本例では、処理される画像は、分子構造、化合物、化学反応、または、バクテリアのような微生物の画像でもよいが、これらに限定されるものではない。
【0066】
一部の態様では、ブロック420に関連して前述された関数のうち1つ以上は、
図3に関連して前述された表示モジュール312によって実行されることがある。
【0067】
第1および第2のバージョンインジケータがブロック420によって表示された後、プロセス400は、ブロック430に移り、表示されたバージョン(本例では、第1および第2のバージョン)を選択する入力が受信される。前述のとおり、処理ステップのあらゆるバージョンは、少なくとも1つの共通入力および少なくとも1つの共通出力タイプを共有する。たとえば、
図2Aに表されるように、第1および第2のバージョン112a−v1および112a−v2は、同じ入力、すなわち、ファイルリーダプロセス101の出力を受信する。同様に、第1および第2のバージョンの出力は、少なくとも1つの共通出力タイプを共有する。一部の態様では、共通出力タイプは、画像ファイルでもよい。
【0068】
前述のとおり、一部の態様では、第1または第2のバージョンを選択することは、複数のバージョンインジケータをグループ化するラジオコントロールを選択することにより行われることがある。一部の態様では、これらの複数のバージョンインジケータは、
図2Bに表されるように実行ビューの内部にあることがある。一部の態様では、第1または第2のバージョンを選択することは、ドロップダウンリストから選択することにより行われることがある。たとえば、
図2Bに表されるように、バージョンは、いくつかの態様では、ドロップダウンコントロール230aを使って選択されることがある。処理ステップのバージョンを選択する他の方法がさらに検討される。たとえば、バージョンの選択は、コンフィギュレーションファイルを使って行われることがある。一部の態様では、表されている例に加えて、他のユーザ・インターフェース・ダイアログが処理ステップのバージョンの選択を実現し易くすることがある。一部の態様では、ブロック430に関連して前述された関数のうち1つ以上は、
図3に関連して前述された選択モジュール314によって行われることがある。
【0069】
特定のバージョンが選択されると、プロセス400は、ブロック440に移り、データが選択されたバージョンを使用して、または、選択されたバージョンに基づいて処理される。プロセス400の一部の態様では、選択されたバージョンが入力データの処理を完了すると、プロセスの選択されたバージョンによって作り出された出力データに対応する出力データインジケータが表示されることがある。
【0070】
一部の態様では、出力データは、作り出され、ハードディスク、メモリディスクなどのような安定した記憶媒体といった非一時的ストレージに記憶されることがある。出力データは、その後、さらなる分析のため他の処理方法によって消費されることがある。一部の態様では、出力データは、1台以上の他の装置を制御することがあり、または、種々の技術ドメインにおける引き続く処理のため使用されることがある。たとえば、一部の態様では、出力データは、生体試料に関連付けられた生体試料の細胞内詳細の画像のような生体試料の画像でもよい。出力データが作成された後、画像は、これらの態様では、細胞生物学者によって再検討されることがある。
【0071】
一部の態様では、処理連鎖は、蛍光データを取り込む第1の画像と、電子顕微鏡からの高解像度データを含む第2の画像とを処理することがある。処理連鎖は、前述の出力データを生成するためにこれらの2つの画像内のデータを相関させることがある。出力データは、その後、相関顕微鏡法を行うために利用されることがある。
【0072】
一部の他の態様では、処理連鎖は、特定の岩石サンプルの鉱物学を同定するために使用されることがある。たとえば、岩石の鉱物学および微細構造の詳細な観察を行うことにより、岩石の履歴が分かることがある。一部の態様では、処理連鎖は、顕微鏡から得られた岩石の画像を分析し、岩石試料の内部の鉱物を光学的に同定することがある。出力データは、その後、たとえば、岩石試料の中に存在する鉱物を同定するために色分けされた岩石の画像を表現することがある。この画像は、岩石試料が取り出されたエリアのさらなる探査かどうかを決定するために地球科学者によって使用されることがある。たとえば、地球科学者が石油化学物質を探しているとき、出力データは、石油化学物質が、岩石が取り出されたエリアに多かれ少なかれ存在する可能性があるか否かを決定するために使用されることがある。
【0073】
一部の態様では、出力データインジケータは、選択可能なユーザ・インターフェース・コントロールでもよい。ユーザ・インターフェース・コントロールの選択に応答して、ブロック440のいくつかの態様は、選択されたコントロールに対応する出力データの1つ以上の属性を表示することがある。表示された1つ以上の属性は、選択された出力データを作り出すために使用される1つ以上の処理ステップに対するバージョン識別子を含むことがある。たとえば、
図2Bに表されるように、出力データ240aが選択された場合、出力データ240aを作り出すために使用された処理ステップ210aおよび230aの各々のバージョン番号が表示されることがある。表示されたバージョン番号は、出力データ240aが作成されたときに選択された処理ステップ210aおよび230aのバージョンに対応することがある。
【0074】
一部の実施形態では、プロセス400は、1つ以上の処理ステップの異なるバージョンを使用して、2回以上実行されることがある。たとえば、プロセス400の1回目の反復は、第1の処理ステップの第1の選択されたバージョンを使用して行われることがあり、2回目の反復は、第1の処理ステップの異なった選択されたバージョン(たとえば、第2のバージョン)を使用して行われることがある。一部の態様では、別個の出力データがプロセス400の実行毎に生成される。それ故に、たとえば、少なくとも1つの処理ステップの異なったバージョンを使用してプロセス400を2回行うことは、少なくとも2組の出力データを結果として生じることがある。一部の態様では、ユーザは、第1の処理ステップの第1のバージョンおよび第2のバージョンに基づいて作り出された少なくとも2組の出力データを比較し、対比する。
【0075】
一部の実施形態では、処理連鎖は、少なくとも2つの区別できる処理ステップを含むことがある。たとえば、
図2Aに表されるように、処理連鎖105b’は、処理ステップ112aおよび処理ステップ112bを含む。各処理ステップ112a〜bは、実行ビューにおけるプロセスの実行のときに選択されたバージョンを有することがある。これらの実施形態では、入力データが第1の処理ステップによって処理された後、たとえば、前述のとおり、第1の処理ステップの出力から得られたデータは、第2の処理ステップの選択されたバージョンによってさらに処理されることがある。
【0076】
一部の実施形態では、出力データは、出力データを作り出すために使用された処理ステップのバージョンの1つ以上の標識と共に記憶されることがある。これらの態様では、ユーザが出力データに対応する出力データ標識を選択するとき、出力データを作り出すために使用された処理ステップの少なくとも1つのバージョンが表示されることがある。この情報は、一部の態様では、出力データを再作成するために使用されることもある。たとえば、出力データと共に記録された、または、出力データに関連付けられた処理ステップのバージョンは、一部の態様では、出力データを再作成するために使用されることがある。
【0077】
一部の態様では、出力データを作り出すために使用される処理ステップの内部の処理ロジックの定義は、出力データに関連付けられ、または出力データと共に記憶されることがある。このことは、アーカイブ目的のため特に役立つ可能性がある。たとえば、出力データを作成するために使用された処理ロジックと共に出力データを記憶することにより、出力データを作成した実験結果の再生は、実現し易くなることがある。一部の態様では、処理ロジックは、たとえば、python、C、C++、Java、C#ソースコードのようなソースコードの記憶によって、「ソース」形式で記憶されることがある。他の態様では、構文要素、javaバイトコードなどのような中間コードは、出力データと共に記憶されることがある。
【0078】
一部の態様では、出力データを記憶することに関連付けられ、処理ロジックのコピーを出力データに関連付ける関数は、
図3に関連して前述したバーション制御モジュール310内に含まれる命令によって行われることがある。
【0079】
方法400の一部の態様は、処理連鎖に基づいて作り出された出力データが処理連鎖の内部の1つ以上の処理ステップの現在選択されたバージョンと一致しているか否かについての標識を表示する。たとえば、一部の態様では、プロセス400は、処理連鎖の内部にあり、各処理ステップが対応する選択されたバージョンを有する1つ以上の処理ステップに基づいて第1の出力データを作り出すことを含む。処理ステップのうち少なくとも1つの選択されたバージョンは、次に、第1の出力データが作り出された後に、変更されることがある。第1の出力データは、これを作成するために使用された処理ステップの選択されたバージョンともはや一致しないので、プロセス400の一部の態様は、表示装置に不一致を示すことがある。たとえば、一部の態様では、一致しない出力データに関連付けられた出力データインジケータの色は、これの対応する処理連鎖と一致する出力データに関連付けられた第1の色から、これの対応する処理連鎖と一致しない出力に関連付けられた第2の色に変更されることがある。
【0080】
一部の態様では、方法400は、処理連鎖によって作り出された出力データの複数のバージョンを追跡することがある。出力データの複数のバージョンは、各々が出力データのバージョンを作り出すために使用された1つ以上の処理ステップのバージョンに関連付けられることがある。これらの態様では、処理ステップの選択されたバージョンが変更されたとき、データベースは、処理連鎖内の処理ステップの現在選択されたバージョンと一致する出力データのバージョンを求めて検索されることがある。このようなバージョンが識別された場合、出力データインジケータは、出力データが既に存在することを示す色で表示されることがある。このようなバージョンが識別されない場合、出力データインジケータは、出力データが存在しないことを示す異なった色で表示される。一部の態様では、出力データが存在することを示す色は、緑色にすることができ、出力データが存在しないことを示す色は、ピンク色もしくは茶色にすることができるが、実施形態は、これらに限定されない。処理ステップの現在選択されたバージョンと一致する出力データが存在しない場合、ユーザは、現在選択されたバージョンを使用して処理連鎖を再び動かすことを選ぶことができる。処理連鎖の処理の完了時、出力データの新しいバージョンが作り出されることがある。対応する出力データインジケータは、出力データが処理連鎖の内部の処理ステップの現在選択されたバージョンと一致することを示す色で表示されることがある。
【0081】
一部の態様では、ブロック440に関連して前述された関数のうち1つ以上は、
図3に関連して前述された、データ処理モジュール316によって行われることがある。ブロック440が完了すると、プロセス400は、最終ブロック450に移る。
【0082】
当業者は、本明細書に開示された実施に関連して記載された様々な例示的な論理ブロック、モジュール、回路、およびプロセスステップが電子ハードウェア、コンピュータソフトウェア、または両者の組み合わせとして実施されることがあることをさらに認めるであろう。ハードウェアとソフトウェアのこの互換性を明瞭に示すために、様々な例示的な部品、ブロック、モジュール、回路、およびステップは、概ねこれらの機能性の観点で説明されている。このような機能性がハードウェアで実施されるか、または、ソフトウェアで実施されるかは、特定の用途およびシステム全体に課された設計制約に依存する。当業者は、特定の用途毎に様々な方法で説明された機能性を実施することがあるが、このような実施決定は、本発明の範囲からの逸脱を引き起こすものとして解釈されるべきではない。当業者は、一部もしくは一部分が全体より少ない、または、全体に等しい何かを含むことを認めるであろう。たとえば、画素の集合の一部は、これらの画素の部分集合を指すことがある。
【0083】
本明細書に開示された実施と関連して記載された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)もしくは他のプログラマブル論理装置、ディスクリートゲートもしくはトランジスタ論理回路、ディスクリートハードウェア部品、または、本明細書に記載された関数を実行するように設計されたこれらのいずれかの組み合わせを用いて実施もしくは実行されることがある。汎用プロセッサは、マイクロプロセッサでもよいが、代替的には、プロセッサは、いかなる従来的なプロセッサ、コントローラ、マイクロコントローラ、または状態機械でもよい。プロセッサは、コンピューティング装置の組み合わせ、たとえば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと併せた1台以上のマイクロプロセッサ、または、いずれかの他のこのようなコンフィギュレーションとして実施されることもある。
【0084】
本明細書に開示された実施と併せて記載された方法もしくはプロセスのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこれらの2つの組み合わせで直接的に具現化されることがある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当該技術分野において知られている何らかの他の形態の非一時的記憶媒体に存在することがある。典型的なコンピュータ読み取り可能な記憶媒体は、プロセッサに連結され、このようなプロセッサは、コンピュータ読み取り可能な記憶媒体から情報を読み取ること、および、コンピュータ読み取り可能な記憶媒体に情報を書き込むことができる。代替的には、記憶媒体は、プロセッサと一体的でもよい。プロセッサおよび記憶媒体は、ASICの中に存在することがある。ASICは、ユーザ端末、カメラ、または他の装置に存在することがある。代替的には、プロセッサおよび記憶媒体は、ユーザ端末、カメラ、または他の装置の中にディスクリート部品として存在することがある。
【0085】
表題は、参考のため、および、様々な節を見つけるのに役立てるために本明細書に含まれている。表題は、これらの表題に関連して記載された概念の範囲を制限することを意図していない。このような概念は、明細書全体を通じて適用できることがある。
【0086】
開示された実施についての以上の記載は、当業者が本発明を行うこと、または、使用することを可能にするために設けられている。これらの実施への様々な変更は、当業者に容易に分かるものであり、本明細書において定義された一般的な原理は、発明の趣旨もしくは範囲から逸脱することなく他の実施に適用できることがある。それ故に、本発明は、本明細書に表された実施に限定されることが意図されていないが、本明細書に開示された原理および新規性のある特徴と一致する最も広い範囲が認められるべきである。