(57)【要約】  本明細書には、必要に応じてアプリケーションのリコンパイルを要することなしに、新しい機能を実行時に言語に対して追加できるようにする様々な科学計測器と統合される新しいソフトウェアアプリケーション方法が紹介されている。ソフトウェア機能の一部として、本明細書に提示されているマクロプログラミング言語によれば、構成検証のための視覚的なフィードバックを伴う、スクリプト内のアクションステートメントの入力と出力との間の自動化された接続が可能である。別の態様として、本発明のマクロプログラミング言語は、様々な分光分析アプリケーションの自動化を実現し、且つ、必要に応じて、マクロの意図に対して接続された構成可能なユーザーインターフェイスの自動生成をも許容する。【特許請求の範囲】
【請求項１】
マクロ言語を使用してサンプルの１つ又は複数の分析計測を可能にするカスタマイズ可能な方法であって、
１つ又は複数の望ましいアクションステートメントをユーザーインターフェイス作業空間上に送って望ましいスクリプトを提供するステップと、
前記１つ又は複数のアクションステートメントの入力及び出力を自動的に接続及び相互リンクするステップであって、１つ又は複数の追加の必要とされる入力及び出力が存在していないか、又は前記スクリプト内において明白に提供することができない場合には、前記ドラッグされた１つ又は複数の望ましいアクションステートメントの表現は、視覚的な第２状態に配置され、前記１つ又は複数の追加の入力及び出力を前記スクリプト内において接続及び相互リンクされるように判定することができる場合には、前記ドラッグされた１つ又は複数の望ましいアクションステートメントの前記表現は、視覚的な第１状態に配置される、ステップと、
前記望ましいスクリプトを実行して前記アクションステートメントに従ってデータを提供するステップであって、前記データは、光学顕微鏡、クロマトグラフ装置、光学分光計、及び質量分光計から選択された少なくとも１つの科学計測器から結果的に得られる計測値を含む、ステップと、
前記望ましいスクリプトの前記１つ又は複数のアクションステートメントに基づいて構成可能なユーザーインターフェイス（ＵＩ）要素を自動生成するステップと、
を有する方法。
【請求項２】
前記１つ又は複数のアクションステートメントの入力及び出力を自動的に接続及び相互リンクする前記ステップは、前記１つ又は複数のアクションステートメントを編集するためのユーザーインターフェイス（ＵＩ）編集要素を前記１つ又は複数のアクションステートメントの結果的に得られるアクションを実行するコードから分離する組み込まれたソフトウェアインターフェイスを実装するステップを有する請求項１に記載のカスタマイズ可能なマクロソフトウェア方法。
【請求項３】
前記実行するステップは、コンパイルを伴うことなしに実行するステップを更に有する請求項１に記載のカスタマイズ可能なマクロソフトウェア方法。
【請求項４】
光学顕微鏡、クロマトグラフ装置、光学分光計、及び質量分光計から選択された前記少なくとも１つの科学計測器用に構成された１つ又は複数の多様なアプリケーションソフトウェアの間において実質的に同一である一般的なインターフェイスを提供するステップを更に有する請求項１に記載のカスタマイズ可能なマクロ言語方法。
【請求項５】
前記１つ又は複数の多様なアプリケーションソフトウェアは、望ましい前記少なくとも１つの科学計測器の特定の機能を実行するためのダイナミックリンクライブラリを生成するステップを更に有し、この後に、エンドユーザーは、マクロエディタ内に表示された命令インターフェイスを操作することができる請求項４のカスタマイズ可能なマクロ言語方法。
【請求項６】
前記望ましいスクリプトの前記１つ又は複数の望ましいアクションステートメントと関連付けられた個別のステートメントの機能のすべてを記述するために命令インターフェイスが提供される請求項１に記載のカスタマイズ可能なマクロ言語方法。
【請求項７】
構成可能なユーザーインターフェイス（ＵＩ）要素を自動生成する前記ステップは、ボタンコントロール、データのＸＹ表示、情報の表、及び画像のうちの少なくとも１つを自動的に追加するステップを更に有する請求項１に記載のカスタマイズ可能なマクロ言語方法。
【請求項８】
前記データは、撮像データ、クロマトグラフデータ、質量スペクトル、ＵＶ−Ｖｉｓ、フーリエ変換、フーリエ変換赤外線（ＦＴＩＲ）、蛍光、燐光、ラマン、赤外線（ＩＲ）、及びＸ線データのうちの少なくとも１つを含む請求項１に記載のカスタマイズ可能なマクロ言語方法。
【請求項９】
前記データは、異なるデータのタイプの複合体である請求項８に記載のカスタマイズ可能なマクロ言語方法。
【請求項１０】
コンピュータ実行可能命令を有するコンピュータ可読媒体であって、
１つ又は複数の望ましいアクションステートメントをユーザーインターフェイス作業空間上に送って望ましいスクリプトを提供するステップと、
前記１つ又は複数のアクションステートメントの入力及び出力を自動的に接続及び相互リンクするステップであって、１つ又は複数の追加の必要とされる入力及び出力が存在していないか、又は前記スクリプト内において明白に提供することができない場合には、前記ドラッグされた１つ又は複数の望ましいアクションステートメントの表現は、視覚的な第２状態に配置され、前記１つ又は複数の追加の入力及び出力を前記スクリプト内において接続及び相互リンクされるように判定することができる場合には、前記ドラッグされた１つ又は複数の望ましいアクションステートメントの前記表現は、視覚的な第1状態に配置される、ステップと、
前記望ましいスクリプトを実行して前記アクションステートメントに従ってスペクトルデータを提供するステップであって、前記スペクトルデータは、光学顕微鏡、クロマトグラフ装置、光学分光計、及び質量分光計から選択された少なくとも１つの科学計測器から結果として得られる計測値を含む、ステップと、
前記望ましいスクリプトの前記１つ又は複数のアクションステートメントに基づいて構成可能なユーザーインターフェイス（ＵＩ）要素を自動生成するステップと、
を有するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析計測ソフトウェアの分野に関する。更に詳しくは、本発明は、エンドユーザーが複雑な科学計測を容易に実行できるようにするカスタマイズ可能なユーザー環境（Ｃｕｓｔｏｍｉｚａｂｌｅ  Ｕｓｅｒ  Ｅｎｖｉｒｏｎｍｅｎｔ：ＣＵＥ）ソフトウェアに関する。
【背景技術】
【０００２】
光学分光法から質量分光法まで多岐にわたる多数の分析法によるスペクトル分析は、膨大な数のサンプルの効率的であって、正確であり、定性的且つ定量的な分析をエンドユーザーに提供する。例えば、未知の組成のサンプルが付与された場合に、特製の、但し、多くの場合に市販されている科学計測器を使用したＵＶ−Ｖｉｓスペクトル分析を使用し、サンプル中に存在している特定の物質の量を判定することができる。サンプルに対して試験プロセスを実行することが可能であり、これにより、ＵＶ−Ｖｉｓスペクトルが生成される。適切な方式によってサンプル材料中の様々な物質を示す出力値を生成するように、誘発される波長放射の操作、背景の除去、及びスペクトル間における操作（例えば、迅速な比較のための比率及び吸収度の差の計測）を含むソフトウェアによって制御された技法により、分析自体を支援することが好ましい。
【０００３】
従って、特定の計測器及びその分析機能は、その計測器の動作の際に望ましい調査及び分析パラメータを操作するための異なる固有の命令の組を必要としていることが理解されよう。スタンドアロンの特殊な及び通常の操作のために計測器をユーザーが容易に使用することができるように、ほとんどすべての市販の科学計測器の一部として、組込み型のソフトウェアが提供されている。提供されるソフトウェアは、望ましい計測及びエンドユーザーの理解のレベルに応じて、通常の操作のための環境に依存したキー入力から、カスタマイズされた生成メソッドのための手段の提供まで、即ち、通常の分析も提供できるが、多くの場合に、高度な分析をも提供できるカスタマイズされたマクロプログラムの提供まで、多岐にわたっている。
【０００４】
特に、マクロプログラムは、プログラミングの知識を有していないユーザーでも容易に生成することができる。但し、購入した科学計測器と関連するプログラムの生成を所望するエンドユーザーは、多くの場合に、その計測器のプログラミング文法を学習しなければならず、従って、最も平易なタスクの場合にも、気が重くなることがあろう。関連するマクロプログラミング製品の開発及び使用を促進するために、企業は、特定アプリケーション用のプログラムが容易に開発されるように、使い易い操作を含むグラフィックユーザーインターフェイス（Ｇｒａｐｈｉｃ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ：ＧＵＩ）ソフトウェアを提供することができる。
【０００５】
有益な一例として、ＧＵＩマクロプログラミングアプリケーションに対するインターフェイスには、ユーザーが所望するマクロの要素のスクリプトが作成されるように、ドロップダウンメニューから選択肢を提供することができる。エンドユーザーは、特定のドロップダウンメニューから選択することによって作業空間に対する特定のアクションの操作を可能にしているが、この場合に、エンドユーザーは、それらのアクションを接続し、操作をコンパイルし、且つ、望ましいプログラムされたアクションのためのプログラムを実行しなければならない。このような手続き的な方法によれば、エンドユーザーは、アクションの実際の動作方法を規定するためのプログラムを記述する必要なしに、アクション項目をワークシート空間内に導入することができる。このような方法は容易であるため、最もレベルの低いプログラマでも、自信を持つことになり、これが複雑なマクロプログラミングの開発に結び付いているが、これには、多くの場合に、但し、必然ではないが、多少のプログラミングスキルが必要とされる。更には、マクロプラグラムを構築するために提供されるコントロールの操作の容易性により、人々は、更なる柔軟性を実現すると共に更に複雑なアプリケーションを生成するために必要とされるプログラミングスキルを学習するように仕向けられている。
【０００６】
対話型のグラフィックユーザーインターフェイス（ＧＵＩ）を利用してデータベースを自動生成するシステム及び方法に関する背景情報については、Ｃｏｓｔｉｎ他に対して２００６年４月１８日付けで発行された「ＤＡＴＡＢＡＳＥ  ＰＲＯＧＲＡＭ  ＷＩＴＨ  ＡＵＴＯＭＡＴＩＣ  ＣＲＥＡＴＩＯＮ  ＯＦ  ＵＳＥＲ  ＦＥＡＴＵＲＥＳ」という名称の米国特許第７，０３２，９６０Ｂ１号明細書に記述及び特許請求されており、この文献は、「本システムは、入力されたデータに基づいた適切な情報の自動生成を実現する技法を規定している。本明細書に記述されているこの自動生成の結果が、プログラミング又は特殊な学習を伴わない情報のカスタムデータベースの形成である。これらのデータベースは、情報の初期仕様書から自動的に生成される」という記述を含む。
【０００７】
アニメーション化されたアイコンを内蔵してプログラミングのフロー及び操作を視覚化するシステム及び方法に関する背景情報については、Ｋａｈｎに対して１９９６年５月１４日付けで発行された「ＡＮＩＭＡＴＥＤ  ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥ  ＦＯＲ  ＣＯＭＰＵＴＥＲ  ＰＲＯＧＲＡＭ  ＣＲＥＡＴＩＯＮ，  ｃｏｎｔｒｏｌ  ａｎｄ  ｅｘｅｃｕｔｉｏｎ」という名称の米国特許第５，５１７，６６３号明細書に記述及び特許請求されており、この文献は、「コンピュータプログラミングシステムは、対話型の視覚的な方式によって生成されるアニメーション化されたプログラムソースを提供する。アニメーションは、ユーザー又はプログラマがプログラミングのフロー及び操作を視覚化することができるように、コンピュータプログラミングと統合されている。従って、同時演算などの動的現象ために、アニメーション化された画像が生成される。プログラムシステムは、同時通信エージェントの演算モデルをサポートしている。演算モデルのための具体的なメタファが提供されており、例えば、エージェントは、建物として実装されており、規則又は方法は、建物内部の実装されたロボット又は作業者であり、局所的状態は、建物内部の掲示板に掲示され、運搬人が建物の間においてメッセージを搬送している、などである」という記述を含む。
【０００８】
対話型の媒体を使用して子供がプログラミングスキルを学習することができるようにするシステムの背景情報については、Ｒｅｓｎｉｃｋらが「Ｓｃｒａｔｃｈ：Ｐｒｏｇｒａｍｍｉｎｇ  ｆｏｒ  ａｌｌ」（Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ、第５２巻、第１１号（２００９年１１月）６０〜６７頁）において記述しており、この文献は、「スクラッチは、高度な対話性を有するように設計されている。ブロックのスタックをクリックするだけで、スタックは、そのコードの実行を即座に開始する。ユーザーは、スタックが稼働している最中にも、スタックに対して変更を加えることが可能であり、従って、新しいアイデアによって実験を増分的且つ反復的に実行することが容易である」という記述を含む。
【０００９】
但し、上述の、並びに、当技術分野に存在している従来のマクロプログラミング言語は、スクリプト内の特定要素の直接的なリンク結合（即ち、自動的なパラメータルーティング）を許容してはおらず、多くの場合に、プログラムの実行を可能とするために開発されたソフトウェアのコンパイルをエンドユーザーに要求し、且つ、複雑なソフトウェアプログラムから最も平易なソフトウェアプログラムまで多岐にわたる対話型の視覚的な方式によってカスタマイズ可能な新しいコード（マクロ）を生成するための能力を提供してもいない。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従って、当技術分野には、既定の科学計測器との関連においてそれらのニーズを可能な限り簡単な方式で充足するためのマクロプログラミング言語に対するニーズが存在している。
【課題を解決するための手段】
【００１１】
本発明は、一般に、構成検証のための視覚的なフィードバックを伴う、スクリプト内のアクションステートメントの入力と出力の間における自動化された接続、即ち、動的なパラメータルーティングが可能となるようなマクロプログラミングの新しい方式を提供する。別の態様として、本発明のマクロプログラミング言語は、様々な分光分析アプリケーションの自動化を実現し、この結果、必要に応じて、マクロの意図に対して接続された構成可能なユーザーインターフェイス（ＵＩ）の自動生成も許容される。
【００１２】
従って、本発明は、サンプルの１つ又は複数の分析計測を可能にするためのカスタマイズ可能なマクロプログラミング言語を対象としており、これは、１つ又は複数の望ましいアクションステートメントをユーザーインターフェイス作業空間上にドラッグしてスクリプトを提供するステップと、１つ又は複数のアクションステートメントの入力と出力を自動的に接続及び相互リンクするステップであって、１つ又は複数の追加の必要とされる入力及び出力が存在していないか、或いは、それらをスクリプト内において明白に提供することができない場合には、ドラッグされた１つ又は複数の望ましいアクションステートメントの表現は、視覚的な第２状態に配置され、１つ又は複数の追加の入力及び出力をスクリプト内において接続及び相互リンクされるように判定することができる場合には、ドラッグされた１つ又は複数の望ましいアクションステートメントの表現は、視覚的な第１状態に配置される、ステップと、次いで、コンパイルを伴うことなしに、望ましいスクリプトを実行し、前記アクションステートメントに従って、スペクトルデータを提供するステップであって、スペクトルデータは、光学顕微鏡、クロマトグラフ装置、光学分光計、及び質量分光計から選択された少なくとも１つの分析計測器の結果として得られる計測値を含む、ステップと、スクリプトの１つ又は複数のアクションステートメントに基づいて構成可能なユーザーインターフェイス（ＵＩ）要素を自動的に生成するステップと、を含む。
【図面の簡単な説明】
【００１３】
【図１Ａ】本発明のカスタマイズ可能なユーザー環境（ＣＵＥ）の動的なパラメータルーティングの能力を示すための画像を示す。
【図１Ｂ】本発明のカスタマイズ可能なユーザー環境（ＣＵＥ）の動的なパラメータルーティングの能力を示すための画像を示す。
【図２Ａ】本発明のカスタマイズ可能なユーザー環境（ＣＵＥ）の動的なパラメータルーティングの能力を示すための画像を示す。
【図２Ｃ】本発明のカスタマイズ可能なユーザー環境（ＣＵＥ）の動的なパラメータルーティングの能力を示すための画像を示す。
【図３】自動的なアクションパラメータのルーティングのフローチャートを示す。
【図４】アクションに対するＤｅｃｌａｒｅＲｅｓｕｌｔｓ（）のフローチャート手順を示す。
【図５Ａ】本発明の多機能プログラミング（マクロ）態様を示すための画像を示す。
【図５Ｂ】本発明の多機能プログラミング（マクロ）態様を示すための画像を示す。
【図６】本発明の多機能プログラミング（マクロ）態様を示すための画像を示す。
【図７Ａ】本発明の自動ユーザーインターフェイス（ＵＩ）生成能力を示すための画像を示す。
【図７Ｂ】本発明の自動ユーザーインターフェイス（ＵＩ）生成能力を示すための画像を示す。
【図８Ａ】本発明の自動ユーザーインターフェイス（ＵＩ）生成能力を示すための画像を示す。
【図８Ｂ】本発明の自動ユーザーインターフェイス（ＵＩ）生成能力を示すための画像を示す。
【図９】本発明のマクロプログラミング言語を使用する能力を有する例示用のシステムを示す。
【発明を実施するための形態】
【００１４】
本明細書における本発明の説明においては、黙示的又は明示的に理解されるか又は特記されていない限り、単数形で表記されている用語は、その複数形をも含んでおり、複数形で表記されている用語は、その単数形をも含んでいることを理解されたい。更には、本明細書に記述されている所与のコンポーネント又は実施形態においては、黙示的又は明示的に理解されるか又は特記されていない限り、一般には、そのコンポーネントについて列挙されている可能な候補又は代替肢のいずれもが、個別に又は相互の組合せにおいて、使用されてもよいことを理解されたい。更には、本明細書に示されている図面は、必ずしも、縮尺どおりではなく、要素のいくつかは、本発明をわかりやすくするためにのみ描かれている場合があることを理解されたい。又、参照符号は、対応した又は類似した要素を示すために、様々な図面において反復される場合がある。更には、前述の候補又は代替肢の任意のリストは、黙示的又は明示的に理解されるか又は特記されていない限り、例示を目的としたものに過ぎず、限定を意味するものではないことを理解されたい。更には、特記されていない限り、本明細書及び請求項に使用されている成分の量、構成要素、反応条件などを表現する数値は、「約」という用語によって修飾されているものと理解されたい。
【００１５】
従って、特記されていない限り、本明細書及び添付の請求項に記述されている数値パラメータは、本明細書に提示されている主題によって得られることが求められている望ましい特性に応じて変化することがある近似値である。最低限でも、且つ、請求項の範囲と等価な原理の適用を制限するための試みとしてではなく、それぞれの数値パラメータは、少なくとも、報告されている有効桁の数に鑑み、且つ、通常の丸め法を適用することにより、解釈することを要する。本明細書に提示されている主題の広範な範囲を記述している数値の範囲及びパラメータが近似値であるという事実にも拘わらず、特定の例において記述されている数値は、可能な限り正確に報告されている。但し、あらゆる数値は、本質的に、それらの個々の試験計測値に見出される標準偏差の結果として不可避に生じる特定の誤差を含んでいる。
【００１６】
概要説明
本発明は、エンドユーザーが１つ又は複数の異なる分析計測器のためのカスタマイズされたスタンドアロンプログラムモジュールを迅速に生成することができるようにするカスタマイズ可能なユーザー環境（ＣＵＥ）を有するマクロプログラミング言語を提供する。本明細書に提示されている固有の一態様は、所与のプログラムの動作可能性について結果的に得られる視覚的なフィードバックと相互リンクしている様々なステートメント（アクション項目）の入力及び出力の自動的な接続を可能にするマクロ言語の動的パラメータルーティング機能である。更には、本明細書に提示されているマクロプログラミング言語の設計によれば、必要に応じて、マクロの意図に対して構成可能なユーザーインターフェイス（ＵＩ）を自動的に生成するという利益をも有する様々な科学分析アプリケーション用の自動化機能も可能となる。具体的には、本明細書に開示されているＣＵＥは、必要に応じて、ＣＵＥソフトウェアのリコンパイル又は変更を伴うことなしに、熟練した技術者が様々な分析計測のための新しい自動化機能を追加できるようにする多機能マクロプログラミング言語である。これは、新しい機能を有するＤＬＬをＣＵＥが存在するディレクトリ内に複写することによって実現される。
【００１７】
従って、エンドユーザーは、シリアルポートインターフェイスによってシステムに接続されているキーボード及び／又は、例えば、マウスなどのポインティング装置などの１つ又は複数の入力装置に多くの場合に結合されている演算システム（例えば、パーソナルコンピュータ）の使用によって支援されるソフトウェア命令及び情報を使用することにより、自身の望ましいマクロを作成する。その他のタイプのポインティング装置には、トラックパッド、トラックボール、ペン、ヘッドトラッカ、データグローブ、並びに、望ましいマクロの開発を容易にすることができるコンピュータモニタなどの表示装置上においてカーソルを位置決めするのに好適なその他の装置が含まれる。
【００１８】
又、既定の計測、例えば、スペクトル間の操作を介したデータのマージ（１つ又は複数の収集された様々なスペクトルの間における除算、減算、乗算）、例えば、１つ又は複数の分光分析法の結果として得られるマージされた又は複数のスペクトルなどの、例えば、複合情報スペクトルなどの結果のエクスポート／表示を開始するための命令は、演算システムに接続された機械可読媒体（例えば、コンピュータ可読媒体）上に保存されている命令下において実行されてもよいことを理解されたい。本発明の態様によれば、コンピュータ可読媒体とは、機械／コンピュータによって読取り（即ち、スキャン／検知）可能であると共に機械の／コンピュータのハードウェア及び／又はソフトウェアによって解釈可能な形態において提供された符号化された情報を有する当業者には既知であると共に理解される媒体を意味している。具体的には、コンピュータ可読媒体は、多くの場合に、限定を伴うことなしに、ローカルハードディスク駆動装置、フロッピーディスク、ＣＤ−ＲＯＭ又はＤＶＤ、ＲＡＭ、ＲＯＭ、ＵＳＢメモリ装置、並びに、場合によっては、当業者には既知であると共に理解される任意のリモートメモリストレージ装置などのローカル又はリモートメモリストレージ装置を含むことができる。
【００１９】
又、当業者であれば、本発明の関連するソフトウェアは、ハンドヘルド型装置、マクロプロセッサに基づいた又はプログラム可能な消費者用電子装置、ネットワークパーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータなどを含むことができるその他のコンピュータシステム構成において実装してもよいことを理解しよう。又、本発明は、分散演算環境において実施してもよく、この場合には、関連するタスクは、通信ネットワーク（例えば、無線）を通じてリンクされたリモート処理装置によって実行される。分散演算環境においては、生成されたマクロモジュールをローカル及びリモートメモリストレージ装置の両方の内部に配置してもよい。
【００２０】
繰り返しになるが、新しいコンテンツを既定のユーザーインターフェイスフレームワークに追加することにより、或いは、完全に異なるサンプル及び計測調査アプリケーションのための新しい方法及び機能を実装するための固有のマクロモジュールを作成することにより、ほとんどすべてのエンドユーザーが、動作可能性に関する視覚的な検証を自動的にリンク及び提供する固有のマクロアプリケーションを容易に生成することができることを理解されたい。本発明の別の有益な態様として、本明細書に記述されている言語は、複雑な科学機器の稼働に対するバッチファイル（命令のリストを含むスクリプトの１つのタイプ）の自動化とは本質的に異なる様々なアプリケーションのための自動化機能を有する。
【００２１】
本発明の１つ又は複数のカスタマイズされたマクロによってサポートすることができるこのような科学計測器は、いくつかの光学及び質量分光計、撮像装置、クロマトグラフ装置（例えば、ガス及び液体）を含み、これらは、いずれも、市販されているか、或いは、その他の方法によって当業者が入手することができる。
【００２２】
例示用の撮像装置は、走査装置、共焦点装置、デジタル撮像装置、及び望遠鏡式装置などのうちのいずれか１つを含む。例示用のクロマトグラフ装置は、電気泳動装置、ガスクロマトグラフ装置、及び液体クロマトグラフ装置などを含むことができる。
【００２３】
例示用の光学分光計は、ＵＶ−Ｖｉｓ分光計、フーリエ変換（Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ：ＦＴ）分光計（例えば、フーリエ変換赤外線（Ｆｒｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ  Ｉｎｆｒａｒｅｄ：ＦＴＩＲ）分光計）、蛍光分光計、ラマン分光計、赤外線分光計（ＩＲ）、及びＸ線分光計を含むことができる。本発明のソフトウェアと共に適合可能な例示用の質量分光計は、当業者には既知のように、例えば、タイムオブフライト（Ｔｉｍｅ−Ｏｆ−Ｆｌｉｇｈｔ：ＴＯＦ）装置、線形イオントラップ（Ｌｉｎｅａｒ  Ｉｏｎ  Ｔｒａｐ：ＬＩＴ）、磁気及び静電気アナライザ、四重極、イオンサイクロトロン共鳴（Ｉｏｎ  Ｃｙｃｌｏｔｒｏｎ  Ｒｅｓｏｎａｎｃｅ：ＩＣＲ）装置、オービトラップ、又はフーリエ変換質量分光計（Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ  Ｍａｓｓ  Ｓｐｅｃｔｒｏｍｅｔｅｒ：ＦＴＭＳ）などの質量分析の能力を有する様々な単一段アナライザシステム（従来は、時間的タンデムと呼ばれている）、並びに、多段アナライザ（空間的タンデム）を含むことができる。留意すべき重要な点は、以上に概説した装置のそれぞれは、当然のことながら、固有の計測及び分析機能の異なる組を有し、且つ、従って、多くの場合に、このような計測器の表示及び操作のために異なる固有の命令の組を必要としているという点であり、これは、本明細書に提示されている本発明のカスタマイズ可能な対話型ソフトウェアの有益な態様の１つである。
【００２４】
光学分散分光計などの分光計によって提供される計測能力の違いを理解するために、所定範囲の入力光波長を試料に供給し、且つ、試料からの出力光を単色光分光器―出力光をその成分波長に分解する装置―によって受光し、次いで、これらの出力波長において、１つ又は複数の検出器によって光強度を計測して出力スペクトルを生成する。紫外−可視分光分析（ＵＶ−Ｖｉｓ）装置として構成された際には、所定範囲の入力光波長（又は周波数）は、調査対象のサンプルによって吸収される電磁スペクトルの紫外及び可視領域内に位置しており、これは、その分子成分の電子的エネルギーレベルの特徴を示している。特定のＵＶ−Ｖｉｓ吸収帯域により、ユーザーは、芳香族基又はカルボキシル（ＣＯ）基などの特定の分子成分の特徴を判定することができる。
【００２５】
ＦＴ分光計においては、干渉計を使用してインターフェログラム―いくつかの入力光波長の時変混合物−を試料に供給し、且つ、１つ又は複数の検出器によって試料からの（時変）出力光を計測する。次いで、フーリエ変換などの数学的な技法を使用して出力光の様々な波長を「解読」することにより、その成分波長において出力光の強度を取得し、且つ、これにより、出力スペクトルを生成することができる。
【００２６】
蛍光／燐光分光計においては、検出器は、分子が光の１つ又は複数の光子を吸収した後に所与の期間において高エネルギー状態から低エネルギー状態に遷移する分子からの光を収集するように構成されている。この結果、蛍光放射及び関連する強度により、光吸収の後の分子内のエネルギーの再分配状態を判定することができる。１ミリ秒未満の時間尺度の光放射は、通常、蛍光と見なされ、１ミリ秒を上回る時間尺度は、一般に、燐光と呼ばれる。
【００２７】
ラマン分光計においては、可視、近赤外、又は近紫外範囲の放射波長を有するレーザーなどの強力な光源からの照明に基づいて、システム内の振動、回転、及びその他の低周波数モードを調査することができる
【００２８】
赤外（ＩＲ）分光計においては、調査対象のサンプルに、その分子構造が調査されるように、電磁スペクトルの赤外領域又は近赤外領域内の所定範囲の波長及び関連する周波数を吸収させる。赤外吸収帯域により、芳香族、オレフィン、脂肪族化合物、アルデヒド、ケトン、カルボン酸、アルコール、アミン、及びアミド基などの分子構造成分が識別される。吸収が生じる周波数は、これらの成分内の結合が延伸及び／又は屈曲する周波数をも反映している。
【００２９】
Ｘ線分光計は、サンプルからのＸ線（Ｘ線光子）放射の形態のエネルギーを放出する電子遷移を利用しており、この場合に、Ｘ線は、それらのＸ線が放射されたサンプルの原子の特徴を示すエネルギー及び波長を有しており、即ち、これらのＸ線は、サンプルの原子組成の特徴を示している。従って、このような計測器は、Ｘ線エネルギー及び／又は波長を計測及び分析して原子組成を識別及び定量化することができる。
【００３０】
質量分光計においては、当業者は、多くの場合に、質量に基づいて分子を分離及び識別するために、特に、質量対電荷比（ｍ／ｚ）に基づいた識別のために、前述の計測及び技法のいずれかを利用している。
【００３１】
詳細説明
以上において簡単に説明したように、本発明は、Ａ）動的パラメータルーティングを提供可能なもの、即ち、可能な場合に、エンドユーザーに対する視覚的な検証を伴う、自動的結合を必要とする入力及び出力を様々なステートメントが必要としていることを理解することができるもの、Ｂ）様々な科学分光分析アプリケーションのための自動化機能を提供することができる多機能マクロプログラミング言語、及びＣ）マクロの意図に対して構成可能なユーザーインターフェイス（ＵＩ）を自動生成するマクロプログラミング言語という３つの新しい有益な態様を有するマクロプログラミング言語を提供することを理解されたい。次節以降において、これらのそれぞれについて順番に説明するが、説明の順序は、限定を意図したものではない。
【００３２】
動的なパラメータルーティング
本発明の有益な動的パラメータルーティングの態様は、様々なステートメント（アクション項目）が適切に構成されているかどうか又は注意を必要としているかどうかについてエンドユーザーに確認しつつ、必要な際に、これらのステートメントの入力及び出力を新しい方式によって自動的に１つに接続すると共にこれらを相互リンクすることができるカスタマイズ可能なユーザー環境（ＣＵＥ）を有するマクロプログラミングを対象としている。使い易さの一環として、マクロプログラミングステートメントを自動的に完成させるように指定された情報を明白な方式によって実行することができる際には、アクションステートメントは、正しい選択肢によって自動的に完成され、且つ、その他の表示されているステートメントの色相との関係においてを意味を有する色相（例えば、青色などの第１色状態）において表示される。本発明のこの有益な態様は、これらの１つ又は複数のアクションステートメントが適切に構成されていることを視覚的にエンドユーザーに対して通知する。マクロプログラミングステートメントを自動的に完成させるために必要とされる情報を明白な方式によって自動的に実行することができない際には、ステートメントは、意味を有する色相（例えば、赤色などの第２色状態）において表示され、提供されたプログラミング言語から自動的に推定することができない入力又は出力情報をエンドユーザーが提供する必要があることをエンドユーザーに対して通知する。更には、ステートメントが追加又は除去或いは変更されるのに伴って、マクロは、ステートメントを自動完成させると共に動作可能性についてエンドユーザーに通知する構成された状態のうちの１つにそれらを配置するために（例えば、赤色から青色にする又はこの逆を実行するために）情報が存在しているかどうかを自動的に再計算することをも理解されたい。
【００３３】
従って、この新しい動的パラメータルーティング態様によれば、本明細書に記述されているように、ルーチンが作業マクロプログラムを生成するために多数の情報を提供する必要がないため、エンドユーザーが複雑なルーチンを記述することが実質的に非常に簡単になり、この有益な結果は、相対的に高速且つ直観的な編集プロセスである。更には、動的パラメータルーティングの態様によれば、顧客がスクリプトに関係する情報片の名称を変更した場合に、この変更が、構成されたマクロの全体を通じて伝達され、且つ、すべての関係するステートメントにおいて名称の変更が行われるように、相互に関係しているすべてのステートメントを１つにリンクすることも可能となる。
【００３４】
本発明を更に理解することができるように、本明細書に記述されているマクロの作成の容易性を示すために、且つ、本発明の動的パラメータルーティング機能についての洞察力を読者に対して概略的に提供するために、図１Ａ及び図１Ｂが提供されている。具体的には、図１Ａは、参照符号１０によって全体的に示されているように、スクリプトを生成、編集、及び試験するためのカスタマイズ可能なユーザーインターフェイス（ＣＵＥ）エディタウィンドウを示している。アプリケーションが起動した際に最初に表示されるＣＵＥエディタウィンドウ１０は、スクリプトに追加することができる、例えば、１７、１８、及び１９などのアクションを有するアクションペイン１２（ユーザーとのやり取りを伴うことなしに実行することができる命令のリスト）を含む。例えば、１７、１８、及び１９などのアクションは、多くの場合に、機能によってグループ化されるが、特定の科学計測器又はアプリケーションに関係する関連ソフトウェアによってグループ化することもできる。右側ペインは、望ましいスクリプトを作成するためにエンドユーザーに対して最初に提供される、例えば、Ｓｔａｒｔ１６及びＥＮＤアクション（図示されてはいない）などの既定のアクションボックスを有する作業空間２０と見なされたい。メニューバー２４は、スクリプトに伴う作業を実行するための機能を提供しており、これにより、実行時の表示をカスタマイズし、スクリプトを試験し、且つ、ヘルプを取得する。
【００３５】
それぞれのアクション（例えば、１７、１８、１９）を、例えば、カーソル制御を介したクリック及び追加又はドラッグなどのエンドユーザーの操作を介して望ましい挿入地点において作業空間２０に送るだけである。このような操作により、作業空間２０内に表示される関連するアクションボックス１７’、１８’、１９’が、即ち、所与のスクリプトの望ましいアクション１７、１８、１９を表す関連シンボルが、提供される。本発明の新しい態様の一部として、例えば、１７’などのアクションボックスの所与の色相（例えば、色）は、所与のアクションの状態の追加情報（即ち、エンドユーザーに対する視覚的な検証）を提供するように設計されている。例えば、図１Ａからは容易に明らかではないが、赤色は、アクションパラメータを設定しなければならないことを示しており、パラメータが設定された際に、青色に変化する。従って、青色は、アクションパラメータが有効な設定を有していることを示している。灰色は、アクションがパラメータを有していないことを示しており、且つ、緑色は、多くの場合に、ループやｉｆ−ｔｈｅｎアクションなどのように、アクションが実行される順序に対して、そのアクションが影響を及ぼすことを示している。
【００３６】
従って、例えば、１７、１８、及び１９などの所与のアクションは、アクションボックス１７’、１８’、１９’（例えば、Ｍｅａｓｕｒｅ  Ｓａｍｐｌｅ、Ｃｒｅａｔｅ  ｒｅｐｏｒｔ  Ｔａｂｌｅ、及びＡｄｄ  Ｔａｂｌｅ  Ｒｏｗ）からなるスクリプトを提供するために、選択され、且つ、作業空間２０内にドロップされる。図１Ａに示されている例においては、この後に、本発明のソフトウェアは、ユーザー入力を伴うことなしに、Ｍｅａｓｕｒｅ  ｓａｍｐｌｅアクションボックス１７’によって提供されるＭｅａｓｕｒｅｍｅｎｔとＣｒｅａｔｅ  Ｒｅｐｏｒｔ  Ｔａｂｌｅアクションボックス１８’によって生成されるテーブルをＡｄｄ  Ｔａｂｌｅ  Ｒｏｗアクションボックス１９’に対して自動的に接続する。追加の有益な態様として、スクリプトの全体的な方向についてエンドユーザーを支援するために、関連するアクションボックスの隣には、関連する既知のパラメータステートメント２８及び３２も自動的に表示される。第１の２つのアクションボックス（例えば、１７’及び１８’）は、関連するパラメータステートメント２８を介して示されているように、出力を生成し、表示されているパラメータステートメント３２は、それらの関連するアクションボックスの結果として得られる指定された「Ｂｌｏｏｄ  Ｍｅａｓｕｒｅ」及び「ＡｎｓｗｅｒＴａｂｌｅ」を使用することに留意されたい。
【００３７】
図１Ｂは、関連するパラメータステートメントを提供するためのアクションボックスの編集の容易性を示している。具体的には、（例えば、カーソル制御を使用してダブルクリックすることによって）「Ｍｅａｓｕｒｅ  Ｓａｍｐｌｅ」アクションボックス１７’を起動した際に、パネル３０が表示され、これにより、ユーザーは、望ましいパラメータステートメント３４を所与の選択領域に入力することができる。このサンプルパネル３０においては、Ｍｅａｓｕｒｅｍｅｎｔ名は、この出力の名称を規定している。本発明の新規性の一環として、前述のように、アクションのための必要とされるパラメータを有する、例えば、１７’などの特定のアクションボックスの色相は、望ましくは、アクションパラメータが有効な設定を有していることをエンドユーザーに視覚的に通知するために、パラメータの設定が完了した後に、例えば、赤色から青色に変化する。
【００３８】
図２Ａは、Ｍｅａｓｕｒｅｍｅｎｔ２として示されている関連するパラメータステートメントに伴って図１Ａのスクリプトの作成の際に追加される別のＭｅａｓｕｒｅｍｅｎｔアクションボックス２１’を示している。この場合にも、アクションボックスのそれぞれは、作業空間２０内にドロップされるが、この場合には、（スクリプト内のＭｅａｓｕｒｅｍｅｎｔアクションボックス１７’及び２１’に基づいて）２つの計測が可能であるため、組み込まれているソフトウェアインターフェイスは、２つの計測が「Ａｄｄ  Ｔａｂｌｅ  Ｒｏｗ」アクション３８に追加され、２つの計測が「Ｄｉｓｐｌａｙ  Ｍｅａｓｕｒｅｍｅｎｔ」アクション３９によって表示される可能性が存在していると解釈する。ソフトウェアは、これらのアクションを曖昧であると見なすため、マクロが注意を必要としていることをエンドユーザーに対して視覚的に通知するように、Ｔａｂｌｅ  Ｒｏｗアクションボックス３８及びＤｉｓｐｌａｙ  Ｍｅａｓｕｒｅｍｅｎｔアクションボックス３９が所定の状態（例えば、赤色）で表示される。図２Ａにおいては、「Ａｄｄ  Ｔａｂｌｅ  Ｒｏｗ」３８及び「Ｄｉｓｐｌａｙ  Ｍｅａｓｕｒｅｍｅｎｔ」３９は、本明細書に記述されているソフトウェアによって曖昧であると見なされているこれらのアクションの適用を簡単に示すために、破線様の背景によって強調表示された状態で示されている。次いで、図２Ｂは、「Ａｄｄ  Ｔａｂｌｅ  Ｒｏｗ」３８及び「Ｄｉｓｐｌａｙ  Ｍｅａｓｕｒｅｍｅｎｔ」３９を「Ｍｅａｓｕｒｅｍｅｎｔ２」アクション項目２１’に対して自動的に接続するソフトウェアによって削除される第１のＢｌｏｏｄ  Ｍｅａｓｕｒｅアクション１７’を示している。この結果、「Ａｄｄ  Ｔａｂｌｅ  Ｒｏｗ」３８及び「Ｄｉｓｐｌａｙ  Ｍｅａｓｕｒｅｍｅｎｔ」３９アクションボックスは、明白な状態（例えば、青色）に戻り、この開発されたマクロが動作可能であることをエンドユーザーに対して通知する。
【００３９】
本発明の自動（動的）アクションパラメータルーティング能力との関連において、ソフトウェアによって提供されるすべてのマクロアクションは、アクションを編集するためのユーザーインターフェイス（ＵＩ）をアクションを実行するコードから分離する組み込まれたインターフェイスを実装していることに留意されたい。換言すれば、ソフトウェアは、ステートメントを自動的に接続し、且つ、ソフトウェアは、シーンの背後のすべての作業を実行する。このような組み込まれたインターフェイスは、限定を伴うことなしに、以下のような多数のメソッドを含む。
・ＡｒｅＣｏｎｔｒｏｌＣｏｎｔｅｎｔｓＶａｌｉｄ（アクション）：これは、アクションを完了させるのに必要なすべての情報が有効であるかどうかをＵＩに問い合わせる。
・ＵｐｄａｔａＵＩＦｒｏｍＡｃｔｉｏｎ（アクション）：これは、アクションから指定のパラメータを取得し、且つ、それらをＵＩ内に配置する。更には、これは、利用可能な出力を調査し、且つ、アクションが有効ではない場合には、そのアクションの要件に対する明白な解決策が存在しているかどうかを確かめなければならない。
・ＵｐｄａｔｅＡｃｔｏｉｎＦｒｏｍＵＩ（アクション）：これは、ＵＩから指定のパラメータを取得し、且つ、それらをアクション内に配置する。
・ＳｕｐｐｏｒｔｅｄＡｃｔｉｏｎ（）：これは、このＵＩが編集することができるアクションのリストを返す。
【００４０】
更には、アクションは、出力を生成した場合に、そのアクションによって生成されるそれぞれの結果（出力）の名称及びタイプ（カテゴリ）を指定するＤｅｃｌａｒｅＲｅｓｕｌｔｓ（）と呼ばれるメソッドを実装しなければならない。マクロ言語エディタは、この動作を認知し、且つ、マクロの実行が始まる前に、且つ、任意のマクロアクションが編集される前及び後において、すべての結果を宣言しなければならない。次いで、ＤｅｃｌａｒｅＲｅｓｕｌｔｓ（）メソッドが、いくつかの新しい結果が生成されていると通知した場合には、マクロ言語は、すべてのアクションを調査し、且つ、それらの自動的な完成を試みなければならず、この理由は、状態を赤色から青色に又はこの逆に変更する可能性があるためである。
【００４１】
図３及び図４は、本発明の新しい動的パラメータルーティングプロセスを概略的に示す例示用のフローチャートである。図３は、具体的には、１つ又は複数の出力がＤｅｃｌａｒｅＲｅｓｕｌｔｓ（）に起因して変化した際にアクションを自動的に完成させるように、開発されたマクロのすべてのアクションについて実行される本発明のフローチャートを示している。従って、特定のアプリケーションのためのソフトウェアコードの開発、変更、又は試験に従事するエンジニアや技術者などのエンドユーザーは、本明細書に記述されているカスタマイズ可能なユーザーインターフェイス（ＣＵＥ）エディタウィンドウを開き、且つ、一連のアクションを構築することにより、望ましいマクロのスクリプトを形成することができる。所与のスクリプトの開発においては、組み込まれたインターフェイスソフトウェアは、参照符号４２によって示されているように、自動完成プロセスを自動的に開始する。フローチャートのブロック４４において、ソフトウェアは、指定のアクションの名称を取得し、且つ、次いで、ブロック４６によって示されているように、すべてのアクションエディタを取得する。従って、ブロック４８によって示されているように、それぞれのエディタごとに、本発明の新しいインターフェイスソフトウェアは、ブロック５０として示されているプロセス（即ち、Ｕｓｅ  ＳｕｐｐｏｔｅｄＡｃｔｉｏｎｓ（））を呼び出し、望ましいＵＩが編集することができるアクションを判定する。判定分岐５２によって示されているように、エディタがアクションをサポートしている場合には、ソフトウェアは、ＵＩから指定のパラメータを取得すると共にそれらをアクション内に配置するブロック５４によって示されているプロセス（即ち、ＵｐｄａｔｅＵＩＦｒｏｍＡｃｔｏｉｎ（））を呼び出す。更には、ソフトウェアは、アクションが有効ではない場合には、利用可能な出力を調査し、且つ、このアクションの要件に対して明白な解決策が存在しているかどうかを確かめなければならない。次いで、ブロック５６によって示されているように、ソフトウェアは、プロセスＡｒｅＣｏｎｔｒｏｌＣｏｎｔｅｎｔｓＶａｌｉｄ（アクション）を呼び出し、アクションを完了させるのに必要な情報のすべてが有効であるかどうかを判定する。判定分岐５８によって示されているように、「はい」の場合には、ボックス６２によって示されているように、アクションボックスは、青色でマーキングされ、そうでない場合には、ボックス６０によって示されているように、アクションボックスは、赤色でマーキングされる。具体的には、プロセスＵａｄａｔｅＡｃｔｉｏｎＦｒｏｍＵＩ（）は、ＵＩから指定のパラメータを取得し、且つ、それらをアクション内に配置する。このプロセスが終了する６６前に、個々のアクションによって生成された結果を変更するために、ブロック６４によって示されているように、ＤｅｃｌａｒｅＲｅｓｕｌｔｓ（）のルーチンが呼び出される。この特定のルーチンは、すべてのマクロアクションの一部分であり、且つ、指定のパラメータ名及びタイプを使用する出力（結果）を宣言し、且つ、その出力（結果）のグローバルに一意であるＩＤ（Ｇｌｏｂａｌｌｙ  Ｕｎｉｑｕｅ  ＩＤ：ＧＵＩＤ）をも返す。更には、このルーチンは、アクションによって宣言されたそれぞれのパラメータ名（結果）のカウントをも維持している。
【００４２】
従って、図４は、図３のブロック６４によって示されているＤｅｃｌａｒｅＲｅｓｕｌｔｓ（）のフローチャートを示している。繰り返しになるが、アクションがマクロに追加又はマクロから削除されるたびに、そのアクションについて、ＤｅｃｌｅａｒｅＲｅｓｕｌｔｓ（）が呼び出される。アクションのＤｅｃｌａｒｅＲｅｓｕｌｔｓ（）が真（ｔｒｕｅ）を返した際には、これは、新しい出力（結果）の宣言が完了していることを常に意味している。これが発生した際には、組み込まれたソフトウェアは、すべてのアクションを調査し、且つ、自動完成手順を実行する。プロセスの一部として、ソフトウェアは、図４のブロック７０によって示されているように、結果のリスト内のアクションのＳｐｅｃｉｆｉｅｄ  Ｐａｒａｍｅｔｅｒ  Ｎａｍｅをチェックする。この後に、ソフトウェアは、判定分岐７２によって示されているように、グローバルに一意のＩＤ（ＧＵＩＤ）が特定のアクションについてナル（ｎｕｌｌ）であるかどうかを確かめる。個々のブロック７４及び判定分岐７６（はい）によって示されているように、このアクションのＧＵＩＤがナルであり（はい）、且つ、ソフトウェアがそのタイプの結果のリスト内において指定のパラメータ名を見出した場合には、ソフトウェアは、ブロック７８によって示されているように、結果のリスト内において見出されたＧＵＩＤを使用する。但し、このアクションのＧＵＩＤがナルであるが、判定分岐７６によって示されているように、ソフトウェアがそのタイプの結果のリスト内において指定のパラメータ名を見出さない場合には、ソフトウェアは、ブロック８０において示されているように、新しいＧＵＩＤを取得し、ブロック８２において示されているように、指定の名称を有する結果リストに新しい項目を追加し、且つ、次いで、最後に、ブロック８４において示されているように、この宣言された結果用のこの新しいＧＵＩＤを使用するようにこのアクションを変更する。一方、図４の判定分岐７２によって示されているように（即ち、いいえ）、ＧＵＩＤがナルではなく、且つ、ソフトウェアが、個別のブロック８６及び判定分岐８８によって示されているように（はい）、そのタイプの結果のリスト内において指定のプログラム名を見出し、且つ、判定分岐９０によって示されているように（はい）、結果のリスト内の指定の名称とリスト内のその項目が同一のＧＵＩＤを有している場合には、ソフトウェアは、ブロック９２によって示されているように、なにもしない。判定分岐８８（はい）及び判定分岐９０（いいえ）によって示されているように、指定の名称が結果のリスト内において見出されたが、このアクションのＧＵＩＤがマッチングしていない場合には、ソフトウェアは、ブロック９４によって示されているように、このアクションのＧＵＩＤを結果のリスト内において見出された項目のＧＵＩＤに自動的に変更する。
【００４３】
それぞれ、判定分岐７２、ブロック８６、及び判定分岐８８によって示されているように、ＧＵＩＤがナルではなく、且つ、指定のパラメータ名が結果リスト内に存在しておらず、且つ、このアクションの結果リスト内の名称ＧＵＩＤが異なっており、判定分岐９６によって示されているように、このパラメータ結果を宣言したアクションの数が１に等しい場合には、ソフトウェアは、ブロック１０４によって示されているように、結果リスト内の宣言された結果の名称を新しい指定のパラメータ名に変更する。
【００４４】
こちらも判定分岐９６による判定において、このパラメータ結果を宣言するアクションの数が１を上回っている場合には、ソフトウェアは、ブロック９８、１００、及び１０２によってそれぞれ示されているように、新しいＧＵＩＤを取得し、新しい項目を指定の名称を有する結果リストに追加し、且つ、この宣言された結果のこの新しいＧＵＩＤを使用するように、このアクションを変更する。
【００４５】
上述のように、自動的な動的パラメータルーティング（即ち、ステートメントの自動的な完成）のための以上に示されている処理は、いずれも、シーンの背後のすべての作業を実行するが、図１Ｂのパネル３０によって示されているように、ユーザーに対してＵＩを表示することはせず、且つ、アクションボックスの状態を赤色から青色に且つこの逆に変更することにより、所与の開発されたマクロの動作可能性についてエンドユーザーに通知するのみである。
【００４６】
多機能プログラミング（マクロ）言語
様々な科学的分光分析アプリケーションの自動化を提供することができる多機能マクロプログラミング言語は、本発明の別の有益な態様である。具体的には、本発明のこの態様は、アプリケーションのリコンパイルを伴うことなしに（コンパイルは依然として選択肢であることに留意されたい）、新しい機能（又は、マクロステートメント）を実行時に言語に追加することが可能であり、且つ、この結果、マクロプログラミング言語は、完全に異なるアプリケーションのためのステートメントを受け入れることができる。
【００４７】
有益な非限定的な例として、この言語は、限定を伴うことなしに、ＵＶ−Ｖｉｓ、ＦＴＩＲ、ＩＲ（近赤外（ＮＩＲ）、ラマン、質量分析などの上述の科学的アプリケーションのうちのいずれかのためのマクロをサポートするように構成することが可能であり、これらのマクロのそれぞれは、その独自の固有の能力の個別の組を有する。従って、本明細書に提示されている新しい利益の一環として、本発明のマクロ言語は、これらの多様なアプリケーションを単独でサポートすることができるのみならず、同時に、予め開発された読み込まれたマクロのコンテンツに基づいて特定のアプリケーションのＵＩ及びステートメントを表示するべきであるかどうかをも知ることができる。
【００４８】
図５Ａ、図５Ｂ、及び最後に図６は、本発明の多機能マクロプログラミング言語を示している。具体的には、図５Ａ、図５Ｂ、及び図６は、様々な異なるアプリケーションのための自動化機能の容易性を示すための一連のＣＵＥエディタウィンドウを示している。
【００４９】
図５Ａは、図１Ａの説明との関係において少し上述したように、この場合にも、参照符号１０によって全体的に示されている、スクリプトを生成、編集、及び試験するためのカスタマイズ可能なユーザーインターフェイス（ＣＵＥ）エディタウィンドウを示している。以前と同様に、ＣＵＥエディタウィンドウ１０は、アプリケーションが起動された際に最初に表示され、且つ、スクリプトに追加することができる、例えば、１７及び１８などのアクションを有するアクションペイン１２を含む。例えば、１７及び１８などのアクションは、多くの場合に、機能によってグループ化されるが、特定の科学計測器又はアプリケーションに関係する関連ソフトウェアによってグループ化することもできる。右側ペインは、望ましいスクリプトを構築するためにエンドユーザーに最初に提供される、例えば、Ｓｔａｒｔ１６及びＥＮＤアクション１６’’などの既定のアクションボックスを有する作業空間２０と見なされたい。メニューバー２４は、スクリプトに伴う作業を実行するための機能を提供しており、これにより、実行時の表示をカスタマイズし、スクリプトを試験し、且つ、ヘルプを取得する。図５Ａにおいて指摘するべきポイントは、前述のように、いくつかのアプリケーションのマクロを作成する際に作業空間に追加することができる、例えば、１７及び１８などのいくつかの選択されたタスクが存在しているという点である。
【００５０】
具体的には、図５Ｂは、バッチファイルの自動化の際に、ディレクトリを生成すると共にファイルを演算システム上に複写するためのアプリケーション１１０を示しており、図６は、この場合には、ＦＴＩＲアプリケーションである望ましいアプリケーションと関連付けられた多数の（例えば、最大で、約１１８個の）編集可能なマクロタスク（例えば、１１２）によって構成される本発明の有益な機能を示している。これから理解するべき重要な側面は、本発明のマクロプログラミング言語は、特定のアプリケーション又は言語のその他の部分を直接的に参照することなしに、その作業のすべてを実行するのに十分なインターフェイスを規定するように設計されているという点である。具体的には、動作のすべてが、生成、操作、編集、及び実行などの間接化又は抽象化のレベルを通じて実行されている。
【００５１】
このような動作を可能にするために、本発明は、プログラミング環境において可能な多様性のすべてを結果的にサポートすることができるように実質的に一般的なものとなるように（上述の計測器及び／又はアプリケーションのいずれかと共に提供される）１つ又は複数のアプリケーションと関連するすべての情報がインターフェイスに対して抽象化される機能を提供する。この抽象化は、それぞれのマクロプログラミングステートメントにとって利用可能な唯一の情報である。この機能を可能にするために、本発明は、ＳｐｅｃｔａなどのアプリケーションソフトウェアとＴｈｅｒｍｏ  Ｆｉｓｈｅｒ  Ｓｃｉｅｎｔｉｆｉｃ  Ｉｎｃ．によって、例えば、彼らの市販の計測器との関連において提供されるＮＤ２０００及びＩＮＳＩＧＨＴなどのＵＶアプリケーションソフトウェアの間において実質的に同一である一般的なインターフェイス内に非常に複雑なアプリケーションのためのすべての関係する情報（即ち、５０万を上回るステートメントを有するもの）を収容する（例えば、ＩＡｐｐｌｉｃａｔｉｏｎＣｏｎｔｅｘｔインターフェイスと適切に呼称される）アプリケーションインターフェイスを有する。
【００５２】
このアプリケーションコンテキストは、それぞれのマクロステートメントに対する唯一の入力であり、且つ、本発明のマクロプログラミング言語に関する限り、これは、指定のアプリケーションコンテキストを使用してその機能を実行するようにそれぞれのステートメントに対して指示するのみである。本明細書に提示されているマクロ言語は、それぞれのステートメント内において発生する内容については、なにも解釈する必要がない。このような構成により、上述のように、本発明のマクロ言語は、上述のＴｈｅｒｍｏ  Ｆｉｓｈｅｒ  Ｓｃｉｅｎｔｉｆｉｃ  Ｉｎｃ．によって提供される多様なアプリケーションのいずれかと共に使用することができる。
【００５３】
又、技術者や実験者などの当技術分野における熟練したプログラマは、望ましい統合された計測器の特定の機能を実行するのに必要な任意のＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｉｅｓ）を生成した後に、一般記述セクションにおいて、上述の多様な計測器のいずれかをサポートするように、本発明のソフトウェアを構成することができる。１つ又は複数の命令インターフェイスを含むＤＬＬが生成され、且つ、熟練した技術者がマクロエディタ内に表示されるインターフェイスを実装した場合に、このようなＤＬＬの命令は、相応して、マクロエディタ内において熟練した技術者に対して提示される。例えば、ＤＬＬは、関連するアプリケーションを制御するための命令を含むように生成してもよく、或いは、ＤＬＬは、例えば、ループ処理、Ｉｆステートメント、変数に対する値の割り当てなどのマクロ言語自体に固有の基本的な命令を含んでもよい。従って、コンパイル時にではなく、実行時にＤＬＬを付加するか又は取り除くことにより、マクロを編集及び実行している最中に、熟練した技術者に表示される機能及びユーザーインターフェイスが変化する。
【００５４】
従って、このような機能により、エンドユーザーは、提供されたプログラムモジュールのプロセス内においてカスタムステップを提供することにより、それらの独自の固有プロセスの概要を規定し、表示される情報コンテンツを追加すると共に／又は、エンドユーザーの特定のビジネスアプリケーションのフォーマットで情報を提示することができる。
【００５５】
又、本発明は、マクロ言語内の個々のステートメントの機能のすべてを記述する命令インターフェイスを実現することも理解されたい。エンドユーザーが、規定されたインターフェイスのうちの１つ又は複数のものを実装及び使用する命令を生成した場合には、その命令も、規定されたマクロ言語との互換性を有する。
【００５６】
構成可能なユーザーインターフェイスの自動生成
別の例示用の実施形態として、本発明は、所与のマクロの意図に対して構成された構成可能なユーザーインターフェイスの自動生成を提供している。このような実施形態によれば、限定を伴うことなしに、データのＸＹ表示、情報の表、アクションを実行するボタン、画像などの必要なＵＩ要素の自動生成が可能である。具体的には、このようなＵＩ要素は、ＵＩ要素を表示対象のデータの変更の責任を担うプログラミングコードに対して結び付ける間接化のレベルを必要とすることなしに、表示される情報を規定する開発されたマクロステートメントに対して自動的に接続することができる。
【００５７】
図１Ａとの関連においてカスタマイズ可能なユーザーインターフェイスについて説明した際に概略的に上述したように、開発された１つ又は複数のマクロアクションステートメントは、ＵＩの生成と任意の所与のステートメントへのリンクをトリガするように、表示するデータの種類及びその具体的なタイプを指定するべく構成することができる。本発明のマクロ言語は、この動作を認知しており、且つ、従って、最初に実行を開始する際に、ＵＩを生成するように設計されている。この生成は、自動的に実行されるか、或いは、別の方式としては、エンドユーザーが最後にマクロを編集した際にエンドユーザーによって指定されたそれぞれの要素のｘ、ｙ、幅、高さ、及びｚ次元に基づいて生成される。別の有益な態様として、本発明のマクロ言語は、任意の関連するＵＩ要素について監視すると共に、出力に対する変更を反映するようにそれらのコンテンツを変更するべく、設計されている。
【００５８】
従って、図７Ａ、図７Ｂ、図８Ａ、及び図８Ｂは、画面作業空間２０上にドラッグされたステートメントに基づいてユーザーインターフェイスを自動生成するマクロ言語を示す一連の画像を示している。具体的には、図７Ａは、ソフトウェアが、ポップアップ情報ウィンドウ１２０によって示されているように、例えば、「Ｖｉｅｗ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ」などのプルダウンメニューから、ステートメントのいずれもが対話型のユーザーインターフェイスと関連付けられていないことを知ることを示している。図７Ｂは、アクションボックス「Ｄｉｓｐｌａｙ  Ｍｅａｓｕｒｅｍｅｎｔ」１２４及び「Ｄｉｓｐｌａｙ  Ｔａｂｌｅ」１２８を（水平ラインとして示されている）挿入地点１３０において追加することにより、個々のアクションボックス１２４及び１２８を介してマクロによって編集される編集可能な「Ｄｉｓｐｌａｙ  Ｍｅａｓｕｒｅｍｅｎｔ」部分１２４’及び編集可能な「Ｄｉｓｐｌａｙ  ｔａｂｌｅ」１２８’を含む編集可能なユーザーインターフェイス（ＵＩ）１３４が自動的に生成されることを示している。簡潔に上述したように、開発者は、自動生成されたＵＩ要素のサイズ及び位置（例えば、それぞれの要素のｘ、ｙ、幅、高さ、及びｚ次元）を変更することが可能であり、且つ、その情報は、マクロ内に保存され、且つ、マクロが実行されてＵＩを表示する際には、常に使用されることになる。
【００５９】
図８Ａは、編集可能なＵＩ１３４内にボタン１４４’、１４８’を提供するために画面作業空間２０内のサブタスクに接続された、例えば、「Ｄｉｓｐｌａｙ  Ｓｕｂｍａｃｒｏ  Ｂｕｔｔｏｎ」１４４、１４８などの２つのアクションボックスを追加することによる編集可能なＵＩアプリケーションの生成の継続部分を示している。ボタン１４４’、１４８’を押下することにより、サブタスクが実行される。図８Ｂは、Ｗｉｎｅ分析マクロ用のカスタマイズされた対話型ＵＩの例を示すためにのみ示されており、顧客は、実行する試験１５２と、サンプル１５６及びブランク１６０を計測するタイミングと、を選択する。
【００６０】
図９は、本発明のマクロプログラミング言語を利用する能力を有する本教示内容による例示用のシステムの図である。図９に示されているシステム１９０は、薬剤、化学薬品、ワイン、固体、液体などの多岐にわたる既定のサンプルをその内部における分析のために調査する能力を有する１つ又は複数の科学計測器１９３（例えば、分光計）を含む。例示用のシステム１９０は、任意のその他の必要な電子的操作に加えて、本発明のマクロ言語を介してプログラム制御命令を提供すると共に動作データ（フィートバック）を受け取るように、１９３に電子的に結合されたコンピュータ／組込み型コンピュータ１９５又はその他の電子的なプロセッサ又はコントローラを含む。又、システム１９０は、必要に応じて、入力データベース１９６を有する実体的に組み込まれたコンピュータ読取り可能媒体及び出力データベース１９７を有する実体的に組み込まれたコンピュータ書込み可能媒体を含むこともできる。任意選択により、コンピュータ／組込み型コンピュータ１９５は、更に、表示画面やプリンタなどの１つ又は複数のその他の出力装置１９９に且つ／又はキーボードやインターネット接続などの１つ又は複数のその他の入力装置１９８に対して電子的に結合されてもよい。コンピュータ／組込み型コンピュータ１９５は、図９に示されているように、分光計に結合された「既製」のコンピュータとして有益に構成することも可能であり、或いは、タッチスクリーンＬＣＤディスプレイが分光計に統合された状態において科学計測器（例えば、図９に示されている分光計１９３）の一部として組み込むこともできることを理解されたい。従って、このような組み込まれたコンピュータは、限定を伴うことなしに、Ｉｎｓｉｇｈｔソフトウェア又はＣＵＥマクロなどの望ましいアプリケーション用のＧＵＩを表示することができる。
【００６１】
図９の破線の接続線は、電子信号及び電子信号情報の流れを搬送する接続経路を表している。様々な接続線上の矢印は、情報の流れの可能な方向を表している。尚、機械的コンポーネントは、それ自体が、任意の必要な電源、ハウジング、負圧ラインなどを含んでいるが、このような補助的コンポーネントは、添付図面には、わかりやすくするために明示的に示されていない場合がある。
【００６２】
更に図９を参照すれば、コンピュータ／プロセッサ１９５は、必要に応じて、任意選択により、１つ又は複数のデータリンク装置１８８を使用して―インターネットを通じて、或いは、相互接続されたイントラネットやローカルエリアネットワークなどのその他のプライベートなコンピュータネットワークの一部として―計算負荷の一部又はすべてを共有してもよい１つ又は複数のその他のプロセッサ１８９に対して電子的に（例えば、有線又は無線で）接続されてもよいことに留意されたい。
【００６３】
本明細書の様々な実施形態との関連において記述されている特徴は、本発明の精神及び範囲を逸脱することなしに、任意の組合せにおいて混合又は整合されてもよいことを理解されたい。様々な選択された実施形態が詳細に図示及び記述されているが、これらは、例示を目的としており、且つ、本発明の精神及び範囲を逸脱することなし、様々な置換及び変更が可能であることを理解されたい。
【図１Ａ】
2013534331.tif 000002
【図１Ｂ】
2013534331.tif 000003
【図２Ａ】
2013534331.tif 000004
【図２Ｂ】
2013534331.tif 000005
【図３】
2013534331.tif 000006
【図４】
2013534331.tif 000007
【図６】
2013534331.tif 000008
【図７Ａ】
2013534331.tif 000009
【図７Ｂ】
2013534331.tif 000010
【図８Ａ】
2013534331.tif 000011
【図８Ｂ】
2013534331.tif 000012
【図９】
2013534331.tif 000013
【図５Ａ】
2013534331.tif 000014
【図５Ｂ】
2013534331.tif 000015
【国際調査報告】
2013534331.tif 000016
2013534331.tif 000017