(57)【特許請求の範囲】
【請求項１】
計算回路においてデータを処理する方法であって、
入力として前記データを受信するように構成されている第１のプロセスの第１および第２のバージョンに対応する第１および第２のバージョンインジケータを電子表示装置に表示することと、
前記第１または第２のバージョンを選択する入力を受信することと、
前記プロセスの前記選択されたバージョンに基づいて前記データを処理することと、
以前選択されたバージョンから現在選択されたバージョンに前記第１のプロセスの前記選択されたバージョンを変更する入力を受信することと、
前記第１のプロセスの出力データが前記以前選択されたバージョンに基づいているか、または、前記現在選択されたバージョンに基づいているかについて第１の決定を行うことと、
前記第１の決定に基づき前記出力データのインジケータの第２の表示を行うことと、
を含む方法。
【請求項２】
前記第１のプロセスの全バージョンに適用できる前記第１のプロセスの１つ以上のパラメータを定義する入力を受信することをさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のプロセスの前記第１および第２のバージョンは、共通タイプの少なくとも１つの出力を作り出すように構成されている、請求項１に記載の方法。
【請求項４】
第２のプロセスは、入力として前記第１のプロセスの前記第１のバージョンの第１の出力または前記第１のプロセスの前記第２のバージョンの第２の出力のいずれかを受信し、前記第２のプロセスが前記第１の出力を受信するか、もしくは、前記第２の出力を受信するかは、前記第１のプロセスのどのバージョンが選択されるかに基づいている、請求項１に記載の方法。
【請求項５】
前記第１のプロセスの前記選択されたバージョンを使用して前記データを処理することに基づいて出力データを作り出すことと、
前記出力データに対応するインジケータを表示することと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記第１のプロセスの他のバージョンを選択する入力を受信することと、
第２の出力データを作り出すために前記他のバージョンの選択に少なくとも部分的に基づいて前記他のバージョンを使用して前記データを処理することと、
前記第２の出力データに対応するデータインジケータを表示することと、
をさらに含む、請求項５に記載の方法。
【請求項７】
前記選択されたバージョンを示す値で前記処理の出力にタグ付けすることをさらに含む、請求項１に記載の方法。
【請求項８】
前記第１の決定に基づいて前記出力データのインジケータの色について決定を行うことと、
前記決定された色で前記インジケータを表示することと、
をさらに含む、請求項１に記載の方法。
【請求項９】
前記第１のプロセスのバージョンを選択する入力を受信するように構成されているラジオ・ユーザ・インターフェース・コントロールを前記電子表示装置に表示することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記第１のプロセスのバージョンの個数を決定することと、
１より大きい前記バージョンの個数に応じて複数のバージョンインジケータを前記電子表示装置に表示することと、
をさらに含む、請求項１に記載の方法。
【請求項１１】
計算回路においてデータを処理する装置であって、
プロセッサと、
前記プロセッサに動作的に接続され、前記プロセッサを構成する命令を記憶するように構成されているメモリと、
を備え、
前記命令は、
入力として前記データを受信するように構成されている第１のプロセスの第１および第２のバージョンに対応する第１および第２のバージョンインジケータを電子表示装置に表示するように構成されている表示モジュールと、
前記第１または第２のバージョンを選択する入力を受信するように構成されている選択モジュールと、
前記第１のプロセスの前記選択されたバージョンに基づいて前記データを処理するように構成されているデータ処理モジュールと、
を含み、
前記選択モジュールは、以前選択されたバージョンから現在選択されたバージョンに前記第１のプロセスの前記選択されたバージョンを変更する入力を受信するように構成され、
前記表示モジュールは、
前記第１のプロセスの出力データが前記以前選択されたバージョンに基づいているか、もしくは、前記現在選択されたバージョンに基づいているかについて第１の決定を行い、前記第１の決定に基づき前記出力データのインジケータの第２の表示を行うようにさらに構成されている、装置。
【請求項１２】
前記選択モジュールは、前記第１のプロセスの全バージョンに適用できる前記第１のプロセスの１つ以上のパラメータを定義する入力を受信するようにさらに構成されている、請求項１１に記載の装置。
【請求項１３】
前記第１のプロセスの前記第１および第２のバージョンは、共通タイプの少なくとも１つの出力を作り出すように構成されている、請求項１１に記載の装置。
【請求項１４】
前記メモリに記憶された前記命令は、前記第１のプロセスの前記第１のバージョンの第１の出力または前記第１のプロセスの前記第２のバージョンの第２の出力のいずれかを入力として受信するように構成されている第２のプロセスを記憶するように前記プロセッサを構成し、前記第２のプロセスが前記第１の出力を受信するか、または、前記第２の出力を受信するかは、前記第１のプロセスのうちどのバージョンが選択されるかに基づいている、請求項１１に記載の装置。
【請求項１５】
前記データ処理モジュールは、前記第１のプロセスの前記選択されたバージョンを使用して前記データを処理することに基づいて出力データを作り出すようにさらに構成され、
前記表示モジュールは、前記出力データに対応するインジケータを表示するようにさらに構成されている、
請求項１１に記載の装置。
【請求項１６】
前記選択モジュールは、前記第１のプロセスの別のバージョンを選択する入力を受信するようにさらに構成され、
前記データ処理モジュールは、第２の出力データを作り出すために他のバージョンの選択に少なくとも部分的に基づいて前記他のバージョンを使用して前記データを処理するようにさらに構成され、
前記表示モジュールは、前記第２の出力データに対応するデータインジケータを表示するようにさらに構成されている、
請求項１５に記載の装置。
【請求項１７】
前記処理モジュールは、前記選択されたバージョンを示す値で前記処理の出力にタグ付けするように構成されている、請求項１１に記載の装置。
【請求項１８】
前記表示モジュールは、
前記第１の決定に基づいて前記出力データのインジケータの色について決定を行い、
前記決定された色を使って前記インジケータを前記電子表示装置に表示するようにさらに構成されている、
請求項１１に記載の装置。
【請求項１９】
前記表示モジュールは、前記第１のプロセスのバージョンを選択する入力を受信するように構成されているラジオ・ユーザ・インターフェース・コントロールを表示するようにさらに構成されている、請求項１１に記載の装置。
【請求項２０】
前記表示モジュールは、
前記第１のプロセスの個数を決定し、
１より大きい前記バージョンの個数に応じて複数のバージョンインジケータを表示するようにさらに構成されている、
請求項１１に記載の装置。
【請求項２１】
計算回路においてデータを処理する装置であって、
入力として前記データを受信するように構成されている第１のプロセスの第１および第２のバージョンに対応する第１および第２のバージョンインジケータを表示する手段と、
前記第１もしくは第２のバージョンを選択する入力を受信し、以前選択されたバージョンから現在選択されたバージョンに前記第１のプロセスの前記選択されたバージョンを変更する入力を受信する手段と、
前記プロセスの前記選択されたバージョンに基づいて前記データを処理する手段と、
前記第１のプロセスの出力データが前記以前選択されたバージョンに基づいているか、または、前記現在選択されたバージョンに基づいているかについて第１の決定を行う手段と、
前記第１の決定に基づき前記出力データのインジケータを表示する手段と、
を備える装置。
【請求項２２】
実行されたとき、プロセッサに計算回路においてデータを処理する方法を実行させる命令を備えるコンピュータ読み取り可能な記憶媒体であって、前記方法は、
入力として前記データを受信するように構成されている第１のプロセスの第１および第２のバージョンに対応する第１および第２のバージョンインジケータを表示することと、
前記第１または第２のバージョンを選択する入力を受信することと、
前記プロセスの前記選択されたバージョンに基づいて前記データを処理することと、
以前選択されたバージョンから現在選択されたバージョンに前記第１のプロセスの前記選択されたバージョンを変更する入力を受信することと、
前記第１のプロセスの出力データが前記以前選択されたバージョンに基づいているか、または、前記現在選択されたバージョンに基づいているかについて第１の決定を行うことと、
前記第１の決定に基づき前記出力データのインジケータの第２の表示を行うことと、
を含む、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【相互参照】
【０００１】
本出願は、２０１５年２月１６日付けで出願された、“ＭＥＴＨＯＤＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＭＡＮＡＧＩＮＧ  ＭＵＬＴＩＰＬＥ  ＶＥＲＳＩＯＮＳ  ＯＦ  Ａ  ＰＲＯＣＥＳＳ  ＩＮ  ＰＲＯＣＥＳＳＩＮＧ  ＣＨＡＩＮ”と題する米国仮出願第６２／１２１，３８９号に基づく優先権を主張する。本出願は、２０１５年３月１７日付けで出願された欧州特許出願第１５１５９３３９．９号に基づく優先権をさらに主張する。これらの先行出願の開示は、本出願の一部とされ、これらの全体が参照によって本明細書に組み込まれる。
【技術分野】
【０００２】
記載された技術は、概して、処理連鎖における処理ステップの複数のバージョンを管理する方法およびシステムに関する。
【背景技術】
【０００３】
逆方向チェイニングは、少し例を挙げると、材質科学、エレクトロニクス、地質学的分析、および工業検査などの多くの産業で使用される処理技術である。逆方向チェイニングを行う分析システムは、ユーザが特定の所望の結果を指定することを可能にすることがある。分析システムは、その場合、特定の結果が得られるか否か、および、得られない場合、どのようにしてその結果が得られるかを決定することがある。分析システムは、この分析システムが自由に使える処理ブロックおよびデータセットに基づいてこの結果を得る方法を指定することがある。
【０００４】
所望の結果を得ることができる処理連鎖の開発中に、結果を生成するために使用される処理ステップは、修正および／または改良されることがある。処理ステップが修正された後、処理連鎖は、修正に基づいて新しい出力結果を生成するために再実行されることがある。ユーザは、その後、それぞれが処理ステップの異なるバージョンによって作成された出力データの複数のバージョンを提示されることがある。この状況は、特定の処理連鎖が複数のデータ処理ステップを含むとき、より一層複雑化されることがあり、複数の処理ステップは、処理連鎖の開発中に修正されている。それ故に、データ処理連鎖の内部でデータ処理ステップの漸進的な開発に関連付けられた複雑さを管理することが必要である。
【発明の概要】
【０００５】
発明のシステム、方法、および装置は、各々がいくつかの態様を有するが、これらの態様のうち単独で発明の望ましい特性に関与する態様は１つもない。後に続く請求項によって表された本発明の範囲を限定することなく、ここではいくつかの特徴を簡単に説明する。この考察を検討した後、特に、「発明を実施するための形態」という名前の欄を読んだ後、本発明の特徴が処理連鎖における処理ステップの複数のバージョンを管理する改良された方法およびシステムを含む利点をどのようにしてもたらすかが分かるであろう。
【０００６】
本明細書に開示された方法およびシステムは、処理連鎖の内部の処理ステップの複数のバージョンの定義を行う。処理連鎖は、一部の態様では、少なくとも部分的に並列であり、および、一部の態様では、少なくとも部分的に直列である一連の処理ステップを通るデータのフローを定義することがある。処理連鎖における少なくとも一部の処理ステップは、連鎖から入力データを受信し、データを処理し、少なくとも部分的に連鎖から受信された入力データに基づく出力を生成することがある。１つの処理ステップの出力は、別の第２の処理ステップへの入力でもよく、その結果、処理ステップの「連鎖」、すなわち、処理連鎖を形成する。
【０００７】
処理連鎖が実行されるとき、処理ステップの特定のバージョンが以前の選択に基づいて実行され、処理連鎖の出力データの生成に寄与する。システムは、それ故に、特定の出力が生成されたときに使用された各処理ステップの各バージョンが分かっている。この情報は、記録することができ、一部の事例では、アーカイブの目的のため利用できるように、出力データに関連付けられる。後で、処理連鎖の特定の結果が複製される必要がある場合、アーカイブデータは、現行システムより容易にこのような再生成を行うのに役立つように依存される可能性がある。
【０００８】
本開示の一態様は、入力としてデータを受信するように構成されている第１のプロセスの第１および第２のバージョンに対応する第１および第２のバージョンインジケータを表示し、第１または第２のバージョンを選択する入力を受信し、プロセスの選択されたバージョンに基づいてデータを処理する方法を提供する。この方法の一部の態様は、第１のプロセスの第１および第２のバージョンに適用される、第１のプロセスの１つ以上のパラメータを定義する入力を受信することを含む。この方法の一部の態様では、第１のプロセスの第１および第２のバージョンは、共通タイプの少なくとも１つの出力を作り出すように構成されている。この方法の一部の態様では、第２のプロセスは、第１のプロセスの第１のバージョンの第１の出力または第１のプロセスの第２のバージョンの第２の出力のいずれかを入力として受信する。この方法の一部の態様では、第２のプロセスが第１の出力を受信するか、または、第２の出力を受信するかは、第１のプロセスのうちどのバージョンが選択されるかに基づいている。この方法の一部の態様は、第１のプロセスの選択されたバージョンを使用してデータを処理することに基づいて出力データを作り出すことと、出力データに対応するインジケータを表示することとをさらに備える。この方法の一部の態様は、第１のプロセスの別のバージョンを選択する入力を受信することと、他のバージョンの選択に少なくとも部分的に基づいて他のバージョンを使用してデータを処理し、第２の出力データを作り出すことと、第２の出力データに対応するデータインジケータを表示することとを含む。この方法の一部の態様は、データのインジケータを表示することを含む。この方法の一部の態様は、選択されたバージョンを示す値で処理の出力にタグ付けすることを含む。この方法の一部の態様は、以前選択されたバージョンから現在選択されたバージョンに第１のプロセスの選択されたバージョンを変更する入力を受信することと、第１のプロセスの出力データが以前選択されたバージョンに基づいているか、または、現在選択されたバージョンに基づいているかについて第１の決定を行うことと、第１の決定に基づいて出力データのインジケータの色について第２の決定を行うことと、決定された色を使って電子表示装置にインジケータを表示することとを含む。この方法の一部の態様は、第１のプロセスのバージョンを選択する入力を受信するように構成されているユーザ・インターフェース・コントロールを表示することを含む。この方法の一部の態様は、第１のプロセスの表示されるバージョンの個数を決定することと、１より大きいバージョンの個数に応じて複数のバージョンインジケータを表示することとを含む。この方法の一部の態様では、データは、画像ファイルを定義する。
【０００９】
開示された別の態様は、計算回路においてデータを処理する装置である。この装置は、プロセッサと、プロセッサに動作的に接続され、プロセッサを構成する命令を記憶するように構成されているメモリとを含み、前記命令は、入力としてデータを受信するように構成されている第１のプロセスの第１および第２のバージョンに対応する第１および第２のバージョンインジケータを表示するように構成されている表示モジュール、第１または第２のバージョンを選択する入力を受信するように構成されている選択モジュール、ならびに、プロセスの選択されたバージョンに基づいてデータを処理するように構成されているデータ処理モジュールを含む。
【００１０】
この装置の一部の態様では、選択モジュールは、第１のプロセスの第１および第２のバージョンに適用できる第１のプロセスの１つ以上のパラメータを定義する入力を受信するようにさらに構成されている。この装置の一部の態様では、第１のプロセスの第１および第２のバージョンは、共通タイプの少なくとも１つの出力を作り出すように構成されている。この装置の一部の態様では、メモリに記憶された命令は、第１のプロセスの第１のバージョンの第１の出力または第１のプロセスの第２のバージョンの第２の出力のいずれかを入力として受信するように構成されている第２のプロセスを記憶するようにプロセッサを構成する。これらの態様の一部では、これらの態様の一部で第２のプロセスが第１の出力を受信するか、もしくは、第２の出力を受信するかは、第１のプロセスのうちどのバージョンが選択されるかに基づいている。
【００１１】
この装置の一部の態様では、データ処理モジュールは、第１のプロセスの選択されたバージョンを使用してデータを処理することに基づいて出力データを作り出すようにさらに構成され、表示モジュールは、出力データに対応するインジケータを表示するようにさらに構成されている。この装置の一部の態様では、選択モジュールは、第１のプロセスの別のバージョンを選択する入力を受信するようにさらに構成され、データ処理モジュールは、第２の出力データを作り出すために他のバージョンの選択に少なくとも部分的に基づいて他のバージョンを使用してデータを処理するようにさらに構成され、表示モジュールは、第２の出力データに対応するデータインジケータを表示するようにさらに構成されている。この装置の一部の態様では、表示モジュールは、データのインジケータを表示するようにさらに構成されている。この装置の一部の態様では、処理モジュールは、選択されたバージョンを示す値で処理の出力にタグ付けするように構成されている。
【００１２】
この装置の一部の態様では、選択モジュールは、以前選択されたバージョンから現在選択されたバージョンに第１のプロセスの選択されたバージョンを変更する入力を受信するように構成され、表示モジュールは、第１のプロセスの出力データが以前選択されたバージョンに基づいているか、もしくは、現在選択されたバージョンに基づいているかについて第１の決定を行い、第１の決定に基づいて出力データのインジケータの色について第２の決定を行い、決定された色を使って電子表示装置にインジケータを表示するようにさらに構成されている。この装置の一部の態様では、表示モジュールは、第１のプロセスのバージョンを選択する入力を受信するように構成されているユーザ・インターフェース・コントロールを表示するようにさらに構成されている。この装置の一部の態様では、表示モジュールは、第１のプロセスの表示されるバージョンの個数を決定し、１より大きいバージョンの個数に応じて複数のバージョンインジケータを表示するようにさらに構成されている。
【００１３】
開示された別の態様は、計算回路においてデータを処理する装置である。この装置は、入力としてデータを受信するように構成されている、第１のプロセスの第１および第２のバージョンに対応する第１および第２のバージョンインジケータを表示する手段と、第１もしくは第２のバージョンを選択する入力を受信する手段と、プロセスの選択されたバージョンに基づいてデータを処理する手段とを含む。
【００１４】
この装置の一部の態様は、第１のプロセスの第１および第２のバージョンに適用できる第１のプロセスの１つ以上のパラメータを定義する入力を受信する手段をさらに含む。この装置の一部の態様では、第１のプロセスの第１および第２のバージョンは、共通タイプの少なくとも１つの出力を作り出すように構成されている。
【００１５】
この装置の一部の態様では、第２のプロセスは、第１のプロセスの第１のバージョンの第１の出力または第１のプロセスの第２のバージョンの第２の出力のいずれかを入力として受信する。この装置の一部の態様では、第２のプロセスが第１の出力を受信するか、または、第２の出力を受信するかは、第１のプロセスのどのバージョンが選択されるかに基づく。この装置の一部の態様は、第１のプロセスの選択されたバージョンを使用してデータを処理することに基づいて出力データを作り出す手段と、出力データに対応するインジケータを表示する手段とをさらに含む。この装置の一部の態様は、第１のプロセスの別のバージョンを選択する入力を受信する手段と、第２の出力データを作り出すために他のバージョンの選択に少なくとも部分的に基づいて他のバージョンを使用してデータを処理する手段と、第２の出力データに対応するデータインジケータを表示する手段とをさらに含む。
【００１６】
この装置の一部の態様は、データのインジケータを表示する手段をさらに含む。この装置の一部の態様は、選択されたバージョンを示す値で処理の出力にタグ付けする手段をさらに含む。この装置の一部の態様は、以前選択されたバージョンから現在選択されたバージョンに第１のプロセスの選択されたバージョンを変更する入力を受信する手段と、第１のプロセスの出力データが以前選択されたバージョンに基づいているか、または、現在選択されたバージョンに基づいているかについて第１の決定を行う手段と、第１の決定に基づいて出力データのインジケータの色について第２の決定を行う手段と、決定された色を使って電子表示装置にインジケータを表示する手段とをさらに含む。この装置の一部の態様は、第１のプロセスのバージョンを選択する入力を受信するように構成されているユーザ・インターフェース・コントロールを表示する手段をさらに含む。この装置の一部の態様は、第１のプロセスの表示されるバージョンの個数を決定する手段と、１より大きいバージョンの個数に応じて複数のバージョンインジケータを表示する手段とをさらに含む。この装置の一部の態様では、データは、画像ファイルを定義する。
【００１７】
開示された別の態様は、実行されたとき、プロセッサに計算回路においてデータを処理する方法を実行させる命令を備えるコンピュータ読み取り可能な記憶媒体である。この方法は、入力としてデータを受信するように構成されている第１のプロセスの第１および第２のバージョンに対応する第１および第２のバージョンインジケータを表示することと、第１または第２のバージョンを選択する入力を受信することと、プロセスの選択されたバージョンに基づいてデータを処理することとを含む。コンピュータ読み取り可能な記憶媒体の一部の実施形態では、この方法は、第１のプロセスの第１および第２のバージョンに適用できる、第１のプロセスの１つ以上のパラメータを定義する入力を受信することをさらに含む。
【００１８】
コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第１のプロセスの第１および第２のバージョンが共通タイプの少なくとも１つの出力を作り出すように構成されていることをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様において、この方法は、第２のプロセスが第１のプロセスの第１のバージョンの第１の出力または第１のプロセスの第２のバージョンの第２の出力のいずれかを入力として受信することをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第２のプロセスが第１の出力を受信するか、または、第２の出力を受信するかは、第１のプロセスのうちどのバージョンが選択されるかに基づいていることをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第１のプロセスの選択されたバージョンを使用してデータを処理することに基づいて出力データを作り出すことと、出力データに対応するインジケータを表示することとをさらに含む。
【００１９】
コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第１のプロセスの別のバージョンを選択する入力を受信することと、第２の出力データを作り出すために他のバージョンの選択に少なくとも部分的に基づいて他のバージョンを使用してデータを処理することと、第２の出力データに対応するデータインジケータを表示することとをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、データのインジケータを表示することをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、選択されたバージョンを示す値で処理の出力にタグ付けすることをさらに含む。
【００２０】
コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、以前選択されたバージョンから現在選択されたバージョンに第１のプロセスの選択されたバージョンを変更する入力を受信することと、第１のプロセスの出力データが以前選択されたバージョンに基づいているか、または、現在選択されたバージョンに基づいているかについて第１の決定を行うことと、第１の決定に基づいて出力データのインジケータの色について第２の決定を行うことと、決定された色を使ってインジケータを電子表示装置に表示することとをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第１のプロセスのバージョンを選択する入力を受信するように構成されているユーザ・インターフェース・コントロールを表示することをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、この方法は、第１のプロセスの表示されるバージョンの個数を決定することと、１より大きいバージョンの個数に応じて複数のバージョンインジケータを表示することとをさらに含む。コンピュータ読み取り可能な記憶媒体の一部の態様では、データは、画像ファイルを定義する。
【図面の簡単な説明】
【００２１】
【図１】逆方向チェイニング能力を提供する分析システムのユーザ・インターフェース画面を示した図。
【００２２】
【図２Ａ】レシピ・エディタ・ウィンドウおよびプロパティ・ウィンドウを含む図１の分析システムの第２のユーザ・インターフェース画面を示した図。
【００２３】
【図２Ｂ】実行ビューおよびプロパティ・ウィンドウを含む図１の分析システムの第３のユーザ・インターフェース画面を示した図。
【００２４】
【図３】開示された実施形態を実施することがあるシステムのシステムブロック図。
【００２５】
【図４】データを処理する方法の一実施形態のフローチャート。
【発明を実施するための形態】
【００２６】
発明の実施形態は、処理連鎖のステップをグラフで表示し、ユーザが処理連鎖のステップを修正することを可能にするシステムおよび方法に関する。たとえば、システムは、一連の処理ステップとして処理連鎖を表示するように構成されることがある。各処理ステップは、各ブロックが連鎖内でこのブロックを接続する１本以上の線で表されているブロックのようなグラフィカルな標識によって表現されることがある。各ブロックは、特定のステップをリストアップし、次に、このステップを行うためにシステムの内部で動くプロセスのグラフィカルな標識に関連付けられる。それ故に、各位置に、プロセス内のステップを表すプロセスの１つの標識と、ステップがどのようにして行われるかの基礎となるプロセスを表現する１つ以上の関連した標識とが存在することがある。処理ステップを更新または修正するために、ユーザは、このステップに関連付けられることになる新しいバージョンを追加することがある。ユーザは、次に、ユーザ・インターフェース内の標識を選択し、更新を要求することによって、処理ステップの新たに追加されたバージョンを選択することにより処理連鎖を再実行することがあり得る。このシステムは、次に、処理連鎖の少なくとも一部、たとえば、新しいバージョンによる影響を受ける処理ステップだけを再実行することがある。プロセスの新しいバージョンに基づく新しい結果は、次に、報告されることがある。処理連鎖を選択し更新するこのグラフィカルな方法は、ユーザがこれらのデータがどのように計算されるかを迅速かつ容易に操作すること、および、さらにプロセス内の特定の方法を更新することによってこのプロセスにトレーサブルな更新を行うことを可能にする。
【００２７】
新規システム、装置、および方法の様々な態様は、添付図面を参照して以下でより詳しく説明される。この開示は、しかしながら、多くの異なった形態で具現化されることがあり、本開示の全体を通じて提示された何らかの具体的な構造もしくは機能に限定されるものとして解釈されるべきではない。むしろ、これらの態様は、本開示が詳細かつ完全であり、開示の範囲を当業者に十分に伝えるように提供される。本明細書における教示に基づいて、当業者は、開示の範囲が、本発明の他の態様と独立に実施されるか、または組み合わされるかとは無関係に、本明細書に開示された新規システム、装置、および方法のあらゆる態様を対象とするように意図されていることを認めるべきである。たとえば、本明細書に記載された幾つもの態様を使用して、装置が実施されることがあり、または、方法が実施されることがある。その上、発明の範囲は、他の構造、機能、または、本明細書に記載された発明の様々な態様に加えて、もしくは、これら以外の構造および機能を使用して実施されるこのような装置または方法を対象とすることが意図されている。本明細書に記載されたいずれの態様も請求項の１つ以上の要素によって具現化されることがあることが理解されるべきである。
【００２８】
本明細書に開示された実施は、処理連鎖におけるプロセスの複数のバージョンを管理する方法およびシステムを提供する。当業者は、これらの実施形態がハードウェア、ソフトウェア、ファームウェア、またはこれらの何らかの組み合わせで実施されることがあることを認識するであろう。
【００２９】
以下の説明では、例の完全な理解をもたらすように具体的な詳細が記載される。しかしながら、例がこれらの具体的な詳細なしに実施されることがあることは、当業者によって理解されるであろう。たとえば、電気部品／装置は、例を不必要に詳しく分かり難くすることがないようにブロック図に示されている。他の実例では、このような部品、他の構造および手法は、例をさらに説明するために詳細に表されることがある。
【００３０】
例は、フローチャート、フロー図、有限状態図、構造図、またはブロック図として描かれたプロセスとして説明されてもよいことが注目される。フローチャートは、逐次プロセスとして演算を記載するが、演算の多くは、並列もしくは同時に実行される可能性があり、プロセスは、繰り返される可能性がある。その上、演算の順序は、並べ替えられることがある。プロセスは、プロセスの演算が完了したときに終了する。プロセスは、方法、関数、手続、サブルーチン、サブプログラムなどに対応することがある。プロセスがソフトウェア関数に対応するとき、プロセスの終了は、呼び出し側関数またはメイン関数への関数のリターンに対応する。
【００３１】
当業者は、情報および信号が多種多様のテクノロジーおよび手法のうちいずれかを使用して表現されることがあることを理解するだろう。たとえば、上記説明を通して参照されることがあるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光粒子、またはこれらのいずれかの組み合わせによって表現されることがある。
【００３２】
図１は、逆方向チェイニング能力を提供する分析システムのユーザ・インターフェース画面１００を示す。ユーザ・インターフェース画面１００は、「あらゆる分析および記憶のためのプラットフォーム（Ｐｌａｔｆｏｒｍ  ｆｏｒ  ＡＬＬ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｓｔｏｒａｇｅ）」の略であるＰＡＬＬＡＳと呼ばれるプログラムのユーザ・インターフェースの一部を表す。図１に表された画面１００は、ＰＡＬＬＡＳのレシピ管理システムによって表示される。レシピは、材料、または処理ステップの集合である。図１は、レシピ・エディタ・ウィンドウ１４０およびプロパティ・ウィンドウ１５０を表す。ＰＡＬＬＡＳの一部の実施は、ユーザが材料を類似もしくは適合している入力および出力ファイルと連結してレシピにまとめることを可能にする。これらのレシピは、ＰＡＬＬＡＳサーバー上でデータベース内に記憶され得る。
【００３３】
レシピは、ＰＡＬＬＡＳ内で閲覧、変更、または作成され得る。レシピ・エディタ・ウィンドウ１４０は、ユーザによって操作され得る処理連鎖の処理ステップを表す。一部の態様では、プロパティ・ウィンドウ１５０は、現在選択されているレシピ・エディタ・ウィンドウ１４０内に処理ステップのプロパティ、または、入力／出力データファイルを表示する。
【００３４】
レシピ・エディタ・ウィンドウ１４０の中の画面１００に表されたレシピは、２つの処理連鎖１０５ａ〜ｂのグラフィカルな表現を含む。処理連鎖１０５ａは、３つの処理ステップ１１０ａ〜ｃを含む。処理連鎖１０５ｂは、２つの処理ステップ１１２ａ〜ｂを含む。例示された態様では、処理ステップの各バージョンは、バージョンインジケータを使用して表示される。たとえば、画面１００は、処理ステップインジケータ１１０ａ〜ｃおよび１１２ａ〜ｂのそれぞれは、バージョンインジケータ１１０ａ−ｖ１、１１０ｂ−ｖ１、１１０ｃ−ｖ１、１１２ａ−ｖ１、および１１２ｂ−ｖ１で表された１つの対応するバージョンを有する。一部の態様では、処理ステップインジケータ１１０ａ〜ｃおよび／または１１２ａ〜ｂに対応する処理ステップのうち１つ以上は、複数のバージョンを有することがある（図１において図示されず）。
【００３５】
各処理連鎖１０５ａ〜ｂは、１つ以上の入力を受け入れることがある。たとえば、処理連鎖１０５ａ〜ｂのそれぞれは、入力としてファイルリーダまたはデータベース・アクセス・ブロック１０１の出力を受信する。ファイルリーダ１０１は、入力ファイル（たとえば、未加工画像ファイル）を読み込み、これを処理連鎖１０５ａ〜ｂによる処理の準備ができているフォーマットに変換することがある。
【００３６】
入力としてファイルリーダ１０１を介してソースファイル（たとえば、未加工もしくは変換済み画像ファイル）を受信するのに加えて、処理連鎖は、１つ以上の付加的な入力パラメータをさらに受信することがある。これらの付加的な入力パラメータのうち少なくとも１つは、ユーザからの入力に基づくことがある。一部の態様では、これらの付加的なパラメータ値は、処理ステップがソースファイル（たとえば、未加工もしくは変換済み画像ファイル）のような別の入力をどのように処理するかをもたらすことがある。付加的な入力パラメータの例は、コントラスト情報、色相情報、画像回転角、クロッピング情報、および／または第２の画像ファイルのうち１つ以上を含む可能性がある。他のパラメータも検討される。一部の態様では、パラメータは、同じレシピの全処理ステップの間で共有される可能性がある（たとえば、グローバルパラメータ）。一部の態様では、パラメータは、同じ処理ステップの異なったバージョンの間で共有される可能性がある（たとえば、処理パラメータ）。一部の実施形態では、ある一定のパラメータは、処理ステップの特定のバージョンだけに適用できることがある（たとえば、バージョン固有パラメータ）。
【００３７】
図１は、一方のインジケータから別のインジケータへのデータのフローを示すコネクタ１３０ａ〜ｂを表す。たとえば、コネクタ１３０ａは、リーダー１０１と処理ステップインジケータ１１２ａとの間に表されている。処理ステップインジケータ１１２ａは、次に、別のコネクタ１３０ｂを介して別の処理ステップインジケータ１１２ｂに接続される。図１において処理連鎖１０５ａ〜ｂの表示された要素を閲覧することにより、ユーザは、ファイルリーダ１０１からの画像ファイルが様々な出力を生成するためにどのように処理されるかを迅速かつ性格に理解することができる。
【００３８】
図２Ａは、レシピ・エディタ・ウィンドウ１４０’およびプロパティ・ウィンドウ１５０’を含む図１の分析システムの第２のユーザ・インターフェース画面２００ａを表す。一部の態様では、図２のレシピ・エディタ・ウィンドウ１４０’は、図１のレシピ・エディタ・ウィンドウ１４０を生成したのと同じレシピ・エディタによって生成される。レシピ・エディタ・ウィンドウ１４０’は、図１からの処理連鎖１０５ａおよび１０５ｂの修正バージョンを表現する処理連鎖１０５ａ’および１０５ｂ’を含む。図１の処理連鎖１０５ａ〜ｂと対比して、レシピ・エディタ・ウィンドウ１４０’は、処理連鎖のそれぞれが、インジケータ１１０ａに対応する処理ステップが今度は２つのバージョン１１０ａ−ｖ１および１１０ａ−ｖ２を含むように修正されていることを表す。処理連鎖１０５ｂは、処理連鎖１０５ｂ’に修正され、インジケータ１１２ｂに対応する処理ステップは、バージョンインジケータ１１２ｂ−ｖ１および１１２ｂ−ｖ２によって表された２つのバージョンを含む。図２Ａは、処理ステップ１１０ａ〜ｃおよび１１２０ａ〜ｂの２つのバージョンを例示するが、何らかの処理ステップが有することがあるバージョンの個数は、これらに限定されない。たとえば、一部の実施形態では、処理ステップは、３、４、５、６、７、８、９、１０、またはこれ以上のバージョンを有することがある。バージョンの個数は、一部の実施において、無制限にすることができる。
【００３９】
一部の態様では、図１〜２Ａに表されたインジケータ１１０ａ〜ｃおよび１１２ａ〜ｂに対応する処理ブロックのような特定の処理ブロックのバージョンは、１つ以上の属性またはパラメータを共有することがある。たとえば、ＰＡＬＬＡＳの一部の態様では、一部のパラメータは、システムによって定義された全処理ステップによって共有されるので、グローバルと考えられることがある。一部の他のパラメータは、処理ステップ固有であることがある。これらのパラメータは、他の処理ステップと共有されないことがあるが、単一の処理ステップの全バージョンと共有される。一部の態様では、表示装置１００を実施するアプリケーションプログラムは、ユーザがプロセスステップの全バージョンに共通であるが、他の処理ブロックに共通ではないプロパティに対する値を入力もしくは更新することを可能にするインターフェースを提供することがある。これらのプロパティを更新することは、処理ブロックの各バージョンに更新済みのパラメータ値を適用させる、および／または、利用させることがある。ＰＡＬＬＡＳの一部のさらなる態様は、単一の処理ステップの各バージョンだけに固有であるパラメータ値を定義するためにこのバージョンを提供することがある。
【００４０】
図１および２Ａに表されたレシピ・エディタは、処理ステップのそれぞれによってどのパラメータが使用されるかを定義する。処理連鎖の実行のためのパラメータの特定の値は、実行ビュー２００ｂによって一部の態様で定義されることがある。
【００４１】
一部の態様では、ＰＡＬＬＡＳは、第１のアルゴリズムを使用するために処理ステップの１つのバージョン、および、第２の異なったアルゴリズムを呼び出すために処理ステップの第２のバージョンを提供することがある。処理ステップのバージョンは、処理ロジックを共有することがある。たとえば、一部の態様では、処理ステップの２つ以上のバージョンは、同じロジックの５０％、６０％、７０％、８０％、９０％、または９９％を共有することがある。一部の態様では、処理ステップの２つ以上のバージョンは、同じロジックの１００％を共有することがある。この状況において、バージョンは、異なったパラメータ値を処理ステップの各バージョンに渡すレシピ定義に基づいてこれらの出力が異なることがある。
【００４２】
一部の態様では、処理ブロックのバージョンは、少なくとも１つの共通入力を共有し、少なくとも１つの共通出力もしくは出力のタイプを生成することがある。たとえば、図２Ａに表されるように、バージョン１１０ａ−ｖ１および１１０ａ−ｖ２は、共通入力としてファイルリーダ１０１を共有する。これらのバージョンは全て、類似する出力タイプに対応するデータを生成するので、共通出力をさらに共有する。バージョン１１２ａ−ｖ１および１１２ａ−ｖ２は、バージョン１１０ａ−ｖ１および１１０ａ−ｖ２と入力１０１をさらに共有するが、これらは、同じ処理ブロックのバージョンではない。たとえば、バージョン１１０ａ−ｖ１および１１０ａ−ｖ２は、バージョン１１２ａ−ｖ１および１１２ａ−ｖ２と共通出力を共有しない。同様に、バージョン１１０ａ−ｖ１および１１０ａ−ｖ２は、プロパティ・ウィンドウ１５０内に表示されることがある共通パラメータをバージョン１１２ａ−ｖ１および１１２ａ−ｖ２と共有しない。これらの様々なバージョンは、レシピ・エディタ１４０’において一緒に表示されることもない。
【００４３】
一部の態様では、第１の処理連鎖の１つ以上の出力は、第２の処理連鎖への入力である可能性がある。たとえば、図１を参照すると、図示されない一部の態様では、ファイルリーダ１０１は、処理連鎖１０５ａ〜ｂの両方によって処理されることがある。一部の態様では、第１の処理連鎖１０５ａによって生成された第１の出力データは、第２の処理連鎖１０５ｂへの入力として使用されることがある。処理連鎖１０５ｂは、次に、第１の出力データに基づいて第２の出力データを生成することがある。
【００４４】
ＰＡＬＬＡＳの特定の実施では、処理ブロックの各バージョンは、スクリプトおよびこのスクリプトの対応する処理ステップのバージョンがＰＡＬＬＡＳシステムからパラメータを受信することを可能にする標準入力インターフェースに適合するスクリプトの定義を少なくとも参照することがある。
【００４５】
一部の態様では、処理ステップのバージョンは、レシピ・エディタ画面１４０’上で視覚的に一緒にグループ化されることがある。たとえば、一部の態様では、ユーザ・インターフェース画面上のグループボックスまたは類似するインジケータは、複数の処理ステップバージョンインジケータが同じ処理ステップのバージョンであることを示すことがある。たとえば、一部の態様は、処理ステップ１１２ａをこれのそれぞれのバージョン１１２ａ−ｖ１および１１２ａ−ｖ２に関連付けるために、処理ステップインジケータ１１２ａ、ならびにバージョンインジケータ１１２ａ−ｖ１および１１２ａ−ｖ２を実質的に囲むグループボックスを表示することがある。上記特徴のうち１つ以上は、処理ステップのバージョンの範囲内で一緒に使用される可能性がある。
【００４６】
図２Ｂは、図２Ａのレシピ・エディタ画面１４０’に表されたレシピのプロセスビュー１４１を含む実行ビュー２００ｂを表す図１の分析システムの第３のユーザ・インターフェース画面である。図２Ｂは、プロセスビュー１４１に表されたレシピの選択された部分に対するプロパティ・ウィンドウ１５１をさらに表す。図１および図２Ａのレシピ・エディタ１４０および１４０’は、処理連鎖内の処理ステップを表すが、プロセスビュー１４１は、処理連鎖の実行中もしくは実行後に処理連鎖（群）を通るそれぞれのデータフローを表す。一部の態様では、図１および図２Ａに表された処理連鎖および／または処理ステップのいずれも、実行ビュー２００ｂの中に表されることがあることに留意されたい。
【００４７】
プロセスビュー１４１において、２つの処理連鎖２０１ａおよび２０１ｂが表される。データインジケータ２０５ａおよび２０５ｂは、処理されているソースデータ（たとえば、画像ファイル）を表現する。図２Ｂは、別個のデータインジケータ２０５ａおよび２０５ｂを表すが、一部の態様では、処理連鎖２０１ａおよび２０１ｂによって処理されたデータは、同一のソースに由来することがある。
【００４８】
プロセスビュー１４１は、処理連鎖２０１ａおよび２０１ｂの中間出力インジケータ２２０ａおよび２２０ｂを表示する。中間出力インジケータ２２０ａ〜ｂは、それぞれ先行する処理ステップ２１０ａ〜ｂによって作り出された出力に対応する。処理ステップ２１０ａは、図２Ａの処理ステップ１１０ａに対応することがある。プロセスビュー１４１は、処理ステップ２１０ｂによって作り出された出力に対応する出力インジケータ２２０ｂをさらに表す。出力インジケータ２４０ａおよび２４０ｂは、出力２２０ａおよび２２０ｂを処理した処理ステップ２３０ａおよび２３０ｂの出力に対応する。出力インジケータ２４０ａおよび２４０ｂは、処理連鎖２０１ａおよび２０１ｂの最終出力に対応することがある。
【００４９】
一部の態様では、処理ステップの複数のバージョンのうち１つは、実行ビュー２００ｂを介して選択されることがある。一部の態様では、この選択は、たとえば、ポインティング装置もしくはタッチスクリーン入力を用いてユーザによって行われる。一部の態様では、複数のバージョンを含む特定の処理ステップのインジケータがプロセスビュー１４１の中で選択されるとき、プロパティ・ウィンドウ１５１は、ドロップダウンメニュー２３０ａを用いて選択された処理ステップの特定のバージョンの選択肢を提供することがある。たとえば、ユーザが処理ステップインジケータ２１０ａをクリックするとき、プロパティ・ウィンドウ１５１は、処理ステップ２１０ａのプロパティを表示することがある。ユーザは、その後、選択された処理ステップ２１０ａのどのバージョンがドロップダウン２３０ａを用いて処理連鎖によって作動もしくは使用されるべきであるかを選択することがある。ユーザが複数のバージョンを持たない処理ステップインジケータを選択する場合、ドロップダウン２３０ａは、グレー表示される、または、唯一のバージョンだけが存在することを示す「１」に初期設定されることがある。一部の実施形態では、ドロップダウンメニュー２３０ａは、選択された処理ステップが単一のバージョンだけを含むとき、全く表されないことがある。
【００５０】
代替的に、一部の態様では（図示せず）、処理ステップの複数のバージョンがプロセスビュー１４１の中に表されることがある。複数のバージョンは、ユーザが処理ステップの特定のバージョンを選択することを可能にするラジオコントロールを共有することがある。たとえば、処理ステップ２１０ａが図２Ａの処理ステップ１１０ａに対応する場合、処理ステップ１１０ａのバージョン１１０ａ−ｖ１または１１０ａ−ｖ２の一方は、ラジオコントロールを用いて実行ビューの中の処理ステップインジケータ２１０ａの左側（または右側）に選択されることがある。他の実施形態は、処理ステップのバージョンを選択する異なった手法を使用することがある。たとえば、一部の態様では、プロセスビュー１４１の中の表示されたバージョンインジケータをクリックすることは、処理ステップの対応するバージョンを選択することがある。他の実施形態は、処理ステップバージョンの手動による選択を行うことがある。たとえば、一部の態様では、ユーザは、バージョン番号に対応する特定のバージョンを選択するために特定の処理ステップのバージョン番号をユーザ・インターフェース・コントロールにそのままタイプ入力することがある。
【００５１】
一部の態様では、処理ステップのバージョンを選択することは、選択されたバージョンを「アクティブ状態」にさせ、処理ステップの全ての他のバージョンを「非アクティブ状態」にさせる。換言すれば、処理ステップの１つのバージョンを選択することにより、処理ステップの選択されたバージョンは、処理ステップの関数（群）を実行するために使用されることがあり、次に、処理ステップを含む処理連鎖が実行され、または、行われる。選択されていない処理ステップのバージョンは、処理ステップの実行中に関数を実行しないであろう。代替的に、選択されていないバージョンは、動作することがあるが、これらの出力は、処理連鎖の出力の一部ではないかもしれない。換言すれば、処理ステップの１つのバージョンを選択することは、処理連鎖の範囲内の処理ステップの少なくとも特定のインスタンスに対して、この処理ステップの全ての他のバージョンの選択を除外する。
【００５２】
一部の態様では、処理ステップは、１つ以上の処理連鎖の内部に複数のインスタンスを有することがある。たとえば、図示しない一部の態様では、処理ステップ２１０ａは、処理連鎖２０１ａおよび２０１ｂの両方で利用されることがある。処理ステップ２１０ａは、図２Ｂの処理ステップ１１０ａに対応することがあるので、この処理ステップは、２つのバージョン１１０ａ−ｖ１および１１０ａ−ｖ２を含むことがある。この状況では、処理ステップ２１０ａ／１１０ａのどのバージョンが処理連鎖２０１ａおよび２０１ｂのそれぞれにおいてアクティブ状態であるかを選択する必要性がある。
【００５３】
単一の処理ステップが複数の処理連鎖で使用される、または、単一の処理連鎖の内部で繰り返し使用されるとき、実行ビュー２００ｂは、単一の処理ステップに対する別個のインスタンスインジケータを表すであろう。処理ステップの各インスタンスインジケータは、プロセスビュー１４１において選択される可能性があり、様々なプロパティがプロパティ・ウィンドウ１５１において処理ステップの選択されたインスタンス毎に表されるであろう。これは、適切な場合、様々なバージョンを利用するために単一の処理ステップの様々なインスタンスを提供する。たとえば、処理ステップ２１０ａ／１１０ａの第１のバージョンは、処理連鎖２０１ａで用いるため選択されることがあり、処理ステップ２１０ａ／１１０ａの第２のバージョンは、処理連鎖２０１ｂ内の処理ステップ２２０ａのため選択されることがあり得る。
【００５４】
ＰＡＬＬＡＳシステムは、処理ステップのインスタンス固有パラメータを定義することがあることに留意されたい。たとえば、処理ステップの全てのバージョンは、前述のとおり処理ステップ固有パラメータを共有することがある。処理ステップの全てのインスタンスは、処理ステップ固有パラメータをさらに共有することがある。しかしながら、処理ステップの各インスタンスは、インスタンスに固有であり、かつ処理ステップの他のインスタンスと共有されない少なくとも１つのパラメータを有することがある。
【００５５】
図３は、開示された実施形態を実施することがあるシステム３００のブロック図である。システム３００は、計算回路３０２および表示装置３０４を含む。計算回路３０２は、プロセッサ３０６およびメモリ３０８を含む。プロセッサ３０６は、汎用処理ユニットでもよく、または、イメージング応用のため特別に設計されたプロセッサでもよい。メモリ３０８は、様々な画像処理および装置管理タスクを実行するような関数を実行するようにプロセッサ３０６を構成する命令を記憶する。メモリ３０８に記憶された命令は、モジュールに体系化される。モジュールは、バージョン制御モジュール３１０と、表示モジュール３１２と、選択モジュール３１４と、データ処理モジュール３１６とを含む。
【００５６】
バージョン制御モジュール３１０は、バージョン制御を実行し、処理ステップのバージョンに関する情報をユーザに表示するようにプロセッサ３０６を構成することがある命令を含む。バージョン制御モジュール３１０は、装置３００の全部のバージョン制御関数を統合および／または制御することもある。たとえば、バージョン制御モジュール３１０は、表示モジュール３１２、選択モジュール３１４、およびデータ処理モジュール３１６の内部の命令を呼び出す命令を含むことがある。バージョン制御モジュール３１０は、処理ブロックのバージョンを記憶し、処理データ（または出力データ）を、出力データを作り出した処理ブロックのバージョンに関連付けることがある。バージョン制御モジュール３１０は、入力データを記憶し、記憶された入力データを、記憶された入力データに基づいて作り出された、記憶された出力データに関連付けることもある。たとえば、プロセッサ３０６がユーザによるバージョンの選択に関する情報を受信したとき、プロセッサは、選択されたバージョンを使用してデータを処理することがある。バージョン制御モジュール３１０は、出力データを作り出すために使用された処理ステップのバージョン（群）を出力データと共に記憶するようにプロセッサ３０６をさらに構成することがある。その結果、プロセッサ３０６は、バージョン制御モジュール３１０の内部の命令と共に、プロセスのバージョンを制御する少なくとも１つの手段を表現する。
【００５７】
表示モジュール３１２は、様々な要素またはグラフィカルな標識を表示装置３０４に表示するようにプロセッサ３０６を構成することがある命令を含む。たとえば、表示モジュール３１２内の命令は、図１、図２Ａおよび図２Ｂに関連して前述された画面１００および／または２００ａを表示するようにプロセッサ３０６を構成することがある。その結果、プロセッサ３０６は、表示モジュール３１２と併せて、要素を表示装置１０４に表示する少なくとも１つの手段に相当する。
【００５８】
選択モジュール３１４は、ユーザから入力選択を受信するようにプロセッサ３０６を構成することがある命令を含む。たとえば、選択モジュール３１４によって受信された入力は、図２Ａに表された、処理連鎖１０５ｂ’の内部でバージョン１１２ａ−ｖ１または１１２ａ−ｖ２のいずれかのような処理連鎖において使用されるべき処理ステップのバージョンを識別することがある。その結果、プロセッサ３０６と、選択モジュール３１４内の命令とは、処理ステップのバージョンを選択する少なくとも１つの手段に相当する。
【００５９】
データ処理モジュール３１６は、プロセスの選択されたバージョンを使用して入力データを処理するようにプロセッサ３０６を構成することがある命令を含む。たとえば、図２Ａにおける処理ステップ１１２ａのバージョン１１２ａ−ｖ１が（図２Ｂの実行ビューにおいて上記開示されたバージョン選択方法のうち１つを用いて）選択された場合、データ処理モジュール３１６は、処理ステップ１１２ａのバージョン１１２ａ−ｖ１を使用して処理連鎖１０５ｂ’を実行することがある。その結果、プロセッサ３０６は、処理モジュール３１６と併せて、データ処理ステップの選択されたバージョンを使用してデータを処理する少なくとも１つの手段に相当する。
【００６０】
一部の実施形態では、計算回路３０２は、表示装置を有するユーザコンピュータとデータ通信することができる。他の実施形態では、計算回路およびユーザコンピュータは、同じコンピュータの内部に収納される。説明の都合上、計算回路およびユーザコンピュータが同じ装置内に収納されている実施形態が記載されるが、開示された態様は、これらの実施形態に限定されない。計算回路およびユーザコンピュータが異なったコンピュータに収納されているとき、計算回路３０２は、適当なデータ通信プロトコルを使用してユーザコンピュータからデータを送受信する。
【００６１】
付加的に、図３は、数個のモジュールを有する１つのメモリ部品を示すが、当業者は、異なったメモリアーキテクチャを利用するいくつかの実施形態を認識するであろう。たとえば、設計は、メモリ３０８に格納されたモジュールを実施するプロセッサ命令の記憶のためＲＯＭまたはスタティックＲＡＭメモリを利用する。代替的に、プロセッサ命令は、システム始動時に、装置３００に統合された、または、外部装置ポートを介して接続されたディスクストレージ装置から読み込まれることがある。プロセッサ命令は、次に、プロセッサ３０６による実行を実現し易くするためにＲＡＭにロードされることがある。たとえば、メモリ３０８は、プロセッサ３０６による実行前に命令が作業メモリ３０８の中にロードされるＲＡＭメモリでもよい。
【００６２】
図４は、データを処理する方法４００の一実施形態のフローチャートである。図４の方法４００の一部または全部は、前述の図３の計算回路に含まれる命令によって一実施形態において実施されることがある。この方法は、一部の態様では、図１〜２Ｂに関して表されたユーザ・インターフェースのうち１つ以上を表示することがある。この方法４００は、スタートブロック４１０で始まり、次に、ブロック４２０に移行し、プロセスの第１および第２のバージョンインジケータが表示される。たとえば、一部の態様では、第１および第２のバージョンインジケータを表示することは、図２Ａに関連して前述されたように処理ステップの２つのバージョンを表示することと等価であることがある。たとえば、第１のバージョンインジケータは、処理ブロックバージョン１１０ａ−ｖ１であることがあり、第２のバージョンインジケータは、処理ブロックバージョン１１０ａ−ｖ２であることがある。ブロック４２０の一部の態様では、３つ以上のバージョンインジケータが表示されることがある。たとえば、一部の態様では、３個、４個、５個、６個、７個、８個、９個、または１０個のバージョンインジケータが表示されることがある。処理ステップのバージョンの個数の制限は、利用可能なシステム資源による制限以外には考えられていない。
【００６３】
図２Ａを参照して前述したとおり、処理ステップのバージョンは、１つ以上の処理ステップ固有パラメータを共有することがある。さらに、処理ステップのバージョンは、少なくとも１つの入力および少なくとも１つの出力タイプを共有する。図２Ａおよび図２Ｂにおいて前述したとおり、バージョン１１２ａ−ｖ１および１１２ａ−ｖ２は、両方共に、入力としてコネクタ１３０ａを介してファイルリーダ１０１の出力を受信する。同様に、両方のバージョン１１２ａ−ｖ１および１１２ａ−ｖ２は、共通出力タイプの出力２２０ａおよび２２０ｂを作り出す。
【００６４】
一部の態様では、ブロック４２０は、処理ステップインジケータ１１０ａまたは１１０ｂのような処理ステップインジケータを表示することを含むことがある。一部の態様では、ブロック４２０は、処理ステップインジケータからの、または、処理ステップインジケータへのコネクタを表示することをさらに含むことがある。たとえば、図２Ａに表されるように、コネクタ１３０ａは、ファイルリーダ１０１と処理ステップインジケータ１１２ａとの間に表示される。一部の態様では、ブロック４２０は、処理ステップと共に複数のバージョンのインジケータを表示することを含むことがある。たとえば、一部の態様は、複数のバージョンを含む処理ステップを用いてツリーコントロールを実施することがある。ツリーコントロールは、ユーザが処理ステップのビューを展開すること、および、折りたたむことを可能にする。折りたたまれたとき、処理ステップインジケータは、処理ステップが複数のバージョンを有することを示す「＋」記号もしくは他のインジケータのようなインジケータと一緒に表示されることがある。一部の態様では、インジケータを選択することは、ツリーコントロールを展開させ、その間に、処理ステップの各バージョンに対して１つずつ、バージョンインジケータのリストを表示する。インジケータを再び選択することは、ツリーコントロールを折りたたむことがある。
【００６５】
一部の態様では、ブロック４２０は、１つ以上のデータインジケータ（群）を表示することをさらに含むことがある。一部の態様では、第１のデータインジケータは、処理ステップへの入力として供給されたソースデータに対応することがある。第２のデータインジケータは、処理ステップによって作り出された出力データに対応することがある。一部の態様では、第１のデータインジケータに対応するソースデータファイルは、処理される画像を定義することができる。本例では、処理される画像は、分子構造、化合物、化学反応、または、バクテリアのような微生物の画像でもよいが、これらに限定されるものではない。
【００６６】
一部の態様では、ブロック４２０に関連して前述された関数のうち１つ以上は、図３に関連して前述された表示モジュール３１２によって実行されることがある。
【００６７】
第１および第２のバージョンインジケータがブロック４２０によって表示された後、プロセス４００は、ブロック４３０に移り、表示されたバージョン（本例では、第１および第２のバージョン）を選択する入力が受信される。前述のとおり、処理ステップのあらゆるバージョンは、少なくとも１つの共通入力および少なくとも１つの共通出力タイプを共有する。たとえば、図２Ａに表されるように、第１および第２のバージョン１１２ａ−ｖ１および１１２ａ−ｖ２は、同じ入力、すなわち、ファイルリーダプロセス１０１の出力を受信する。同様に、第１および第２のバージョンの出力は、少なくとも１つの共通出力タイプを共有する。一部の態様では、共通出力タイプは、画像ファイルでもよい。
【００６８】
前述のとおり、一部の態様では、第１または第２のバージョンを選択することは、複数のバージョンインジケータをグループ化するラジオコントロールを選択することにより行われることがある。一部の態様では、これらの複数のバージョンインジケータは、図２Ｂに表されるように実行ビューの内部にあることがある。一部の態様では、第１または第２のバージョンを選択することは、ドロップダウンリストから選択することにより行われることがある。たとえば、図２Ｂに表されるように、バージョンは、いくつかの態様では、ドロップダウンコントロール２３０ａを使って選択されることがある。処理ステップのバージョンを選択する他の方法がさらに検討される。たとえば、バージョンの選択は、コンフィギュレーションファイルを使って行われることがある。一部の態様では、表されている例に加えて、他のユーザ・インターフェース・ダイアログが処理ステップのバージョンの選択を実現し易くすることがある。一部の態様では、ブロック４３０に関連して前述された関数のうち１つ以上は、図３に関連して前述された選択モジュール３１４によって行われることがある。
【００６９】
特定のバージョンが選択されると、プロセス４００は、ブロック４４０に移り、データが選択されたバージョンを使用して、または、選択されたバージョンに基づいて処理される。プロセス４００の一部の態様では、選択されたバージョンが入力データの処理を完了すると、プロセスの選択されたバージョンによって作り出された出力データに対応する出力データインジケータが表示されることがある。
【００７０】
一部の態様では、出力データは、作り出され、ハードディスク、メモリディスクなどのような安定した記憶媒体といった非一時的ストレージに記憶されることがある。出力データは、その後、さらなる分析のため他の処理方法によって消費されることがある。一部の態様では、出力データは、１台以上の他の装置を制御することがあり、または、種々の技術ドメインにおける引き続く処理のため使用されることがある。たとえば、一部の態様では、出力データは、生体試料に関連付けられた生体試料の細胞内詳細の画像のような生体試料の画像でもよい。出力データが作成された後、画像は、これらの態様では、細胞生物学者によって再検討されることがある。
【００７１】
一部の態様では、処理連鎖は、蛍光データを取り込む第１の画像と、電子顕微鏡からの高解像度データを含む第２の画像とを処理することがある。処理連鎖は、前述の出力データを生成するためにこれらの２つの画像内のデータを相関させることがある。出力データは、その後、相関顕微鏡法を行うために利用されることがある。
【００７２】
一部の他の態様では、処理連鎖は、特定の岩石サンプルの鉱物学を同定するために使用されることがある。たとえば、岩石の鉱物学および微細構造の詳細な観察を行うことにより、岩石の履歴が分かることがある。一部の態様では、処理連鎖は、顕微鏡から得られた岩石の画像を分析し、岩石試料の内部の鉱物を光学的に同定することがある。出力データは、その後、たとえば、岩石試料の中に存在する鉱物を同定するために色分けされた岩石の画像を表現することがある。この画像は、岩石試料が取り出されたエリアのさらなる探査かどうかを決定するために地球科学者によって使用されることがある。たとえば、地球科学者が石油化学物質を探しているとき、出力データは、石油化学物質が、岩石が取り出されたエリアに多かれ少なかれ存在する可能性があるか否かを決定するために使用されることがある。
【００７３】
一部の態様では、出力データインジケータは、選択可能なユーザ・インターフェース・コントロールでもよい。ユーザ・インターフェース・コントロールの選択に応答して、ブロック４４０のいくつかの態様は、選択されたコントロールに対応する出力データの１つ以上の属性を表示することがある。表示された１つ以上の属性は、選択された出力データを作り出すために使用される１つ以上の処理ステップに対するバージョン識別子を含むことがある。たとえば、図２Ｂに表されるように、出力データ２４０ａが選択された場合、出力データ２４０ａを作り出すために使用された処理ステップ２１０ａおよび２３０ａの各々のバージョン番号が表示されることがある。表示されたバージョン番号は、出力データ２４０ａが作成されたときに選択された処理ステップ２１０ａおよび２３０ａのバージョンに対応することがある。
【００７４】
一部の実施形態では、プロセス４００は、１つ以上の処理ステップの異なるバージョンを使用して、２回以上実行されることがある。たとえば、プロセス４００の１回目の反復は、第１の処理ステップの第１の選択されたバージョンを使用して行われることがあり、２回目の反復は、第１の処理ステップの異なった選択されたバージョン（たとえば、第２のバージョン）を使用して行われることがある。一部の態様では、別個の出力データがプロセス４００の実行毎に生成される。それ故に、たとえば、少なくとも１つの処理ステップの異なったバージョンを使用してプロセス４００を２回行うことは、少なくとも２組の出力データを結果として生じることがある。一部の態様では、ユーザは、第１の処理ステップの第１のバージョンおよび第２のバージョンに基づいて作り出された少なくとも２組の出力データを比較し、対比する。
【００７５】
一部の実施形態では、処理連鎖は、少なくとも２つの区別できる処理ステップを含むことがある。たとえば、図２Ａに表されるように、処理連鎖１０５ｂ’は、処理ステップ１１２ａおよび処理ステップ１１２ｂを含む。各処理ステップ１１２ａ〜ｂは、実行ビューにおけるプロセスの実行のときに選択されたバージョンを有することがある。これらの実施形態では、入力データが第１の処理ステップによって処理された後、たとえば、前述のとおり、第１の処理ステップの出力から得られたデータは、第２の処理ステップの選択されたバージョンによってさらに処理されることがある。
【００７６】
一部の実施形態では、出力データは、出力データを作り出すために使用された処理ステップのバージョンの１つ以上の標識と共に記憶されることがある。これらの態様では、ユーザが出力データに対応する出力データ標識を選択するとき、出力データを作り出すために使用された処理ステップの少なくとも１つのバージョンが表示されることがある。この情報は、一部の態様では、出力データを再作成するために使用されることもある。たとえば、出力データと共に記録された、または、出力データに関連付けられた処理ステップのバージョンは、一部の態様では、出力データを再作成するために使用されることがある。
【００７７】
一部の態様では、出力データを作り出すために使用される処理ステップの内部の処理ロジックの定義は、出力データに関連付けられ、または出力データと共に記憶されることがある。このことは、アーカイブ目的のため特に役立つ可能性がある。たとえば、出力データを作成するために使用された処理ロジックと共に出力データを記憶することにより、出力データを作成した実験結果の再生は、実現し易くなることがある。一部の態様では、処理ロジックは、たとえば、ｐｙｔｈｏｎ、Ｃ、Ｃ＋＋、Ｊａｖａ、Ｃ＃ソースコードのようなソースコードの記憶によって、「ソース」形式で記憶されることがある。他の態様では、構文要素、ｊａｖａバイトコードなどのような中間コードは、出力データと共に記憶されることがある。
【００７８】
一部の態様では、出力データを記憶することに関連付けられ、処理ロジックのコピーを出力データに関連付ける関数は、図３に関連して前述したバーション制御モジュール３１０内に含まれる命令によって行われることがある。
【００７９】
方法４００の一部の態様は、処理連鎖に基づいて作り出された出力データが処理連鎖の内部の１つ以上の処理ステップの現在選択されたバージョンと一致しているか否かについての標識を表示する。たとえば、一部の態様では、プロセス４００は、処理連鎖の内部にあり、各処理ステップが対応する選択されたバージョンを有する１つ以上の処理ステップに基づいて第１の出力データを作り出すことを含む。処理ステップのうち少なくとも１つの選択されたバージョンは、次に、第１の出力データが作り出された後に、変更されることがある。第１の出力データは、これを作成するために使用された処理ステップの選択されたバージョンともはや一致しないので、プロセス４００の一部の態様は、表示装置に不一致を示すことがある。たとえば、一部の態様では、一致しない出力データに関連付けられた出力データインジケータの色は、これの対応する処理連鎖と一致する出力データに関連付けられた第１の色から、これの対応する処理連鎖と一致しない出力に関連付けられた第２の色に変更されることがある。
【００８０】
一部の態様では、方法４００は、処理連鎖によって作り出された出力データの複数のバージョンを追跡することがある。出力データの複数のバージョンは、各々が出力データのバージョンを作り出すために使用された１つ以上の処理ステップのバージョンに関連付けられることがある。これらの態様では、処理ステップの選択されたバージョンが変更されたとき、データベースは、処理連鎖内の処理ステップの現在選択されたバージョンと一致する出力データのバージョンを求めて検索されることがある。このようなバージョンが識別された場合、出力データインジケータは、出力データが既に存在することを示す色で表示されることがある。このようなバージョンが識別されない場合、出力データインジケータは、出力データが存在しないことを示す異なった色で表示される。一部の態様では、出力データが存在することを示す色は、緑色にすることができ、出力データが存在しないことを示す色は、ピンク色もしくは茶色にすることができるが、実施形態は、これらに限定されない。処理ステップの現在選択されたバージョンと一致する出力データが存在しない場合、ユーザは、現在選択されたバージョンを使用して処理連鎖を再び動かすことを選ぶことができる。処理連鎖の処理の完了時、出力データの新しいバージョンが作り出されることがある。対応する出力データインジケータは、出力データが処理連鎖の内部の処理ステップの現在選択されたバージョンと一致することを示す色で表示されることがある。
【００８１】
一部の態様では、ブロック４４０に関連して前述された関数のうち１つ以上は、図３に関連して前述された、データ処理モジュール３１６によって行われることがある。ブロック４４０が完了すると、プロセス４００は、最終ブロック４５０に移る。
【００８２】
当業者は、本明細書に開示された実施に関連して記載された様々な例示的な論理ブロック、モジュール、回路、およびプロセスステップが電子ハードウェア、コンピュータソフトウェア、または両者の組み合わせとして実施されることがあることをさらに認めるであろう。ハードウェアとソフトウェアのこの互換性を明瞭に示すために、様々な例示的な部品、ブロック、モジュール、回路、およびステップは、概ねこれらの機能性の観点で説明されている。このような機能性がハードウェアで実施されるか、または、ソフトウェアで実施されるかは、特定の用途およびシステム全体に課された設計制約に依存する。当業者は、特定の用途毎に様々な方法で説明された機能性を実施することがあるが、このような実施決定は、本発明の範囲からの逸脱を引き起こすものとして解釈されるべきではない。当業者は、一部もしくは一部分が全体より少ない、または、全体に等しい何かを含むことを認めるであろう。たとえば、画素の集合の一部は、これらの画素の部分集合を指すことがある。
【００８３】
本明細書に開示された実施と関連して記載された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）もしくは他のプログラマブル論理装置、ディスクリートゲートもしくはトランジスタ論理回路、ディスクリートハードウェア部品、または、本明細書に記載された関数を実行するように設計されたこれらのいずれかの組み合わせを用いて実施もしくは実行されることがある。汎用プロセッサは、マイクロプロセッサでもよいが、代替的には、プロセッサは、いかなる従来的なプロセッサ、コントローラ、マイクロコントローラ、または状態機械でもよい。プロセッサは、コンピューティング装置の組み合わせ、たとえば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと併せた１台以上のマイクロプロセッサ、または、いずれかの他のこのようなコンフィギュレーションとして実施されることもある。
【００８４】
本明細書に開示された実施と併せて記載された方法もしくはプロセスのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこれらの２つの組み合わせで直接的に具現化されることがある。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当該技術分野において知られている何らかの他の形態の非一時的記憶媒体に存在することがある。典型的なコンピュータ読み取り可能な記憶媒体は、プロセッサに連結され、このようなプロセッサは、コンピュータ読み取り可能な記憶媒体から情報を読み取ること、および、コンピュータ読み取り可能な記憶媒体に情報を書き込むことができる。代替的には、記憶媒体は、プロセッサと一体的でもよい。プロセッサおよび記憶媒体は、ＡＳＩＣの中に存在することがある。ＡＳＩＣは、ユーザ端末、カメラ、または他の装置に存在することがある。代替的には、プロセッサおよび記憶媒体は、ユーザ端末、カメラ、または他の装置の中にディスクリート部品として存在することがある。
【００８５】
表題は、参考のため、および、様々な節を見つけるのに役立てるために本明細書に含まれている。表題は、これらの表題に関連して記載された概念の範囲を制限することを意図していない。このような概念は、明細書全体を通じて適用できることがある。
【００８６】
開示された実施についての以上の記載は、当業者が本発明を行うこと、または、使用することを可能にするために設けられている。これらの実施への様々な変更は、当業者に容易に分かるものであり、本明細書において定義された一般的な原理は、発明の趣旨もしくは範囲から逸脱することなく他の実施に適用できることがある。それ故に、本発明は、本明細書に表された実施に限定されることが意図されていないが、本明細書に開示された原理および新規性のある特徴と一致する最も広い範囲が認められるべきである。
【図１】
0006730818.tif 000002
【図２Ａ】
0006730818.tif 000003
【図２Ｂ】
0006730818.tif 000004
【図３】
0006730818.tif 000005
【図４】
0006730818.tif 000006