(57)【要約】【課題】    本願発明は、複数の電子ファイル解析技術を開示する。【解決手段】    1つの特定の例示的実施形態において、この解析技術は解析装置として具体化され、この解析装置は、１個または複数個の電子ファイルを読み込む入力モジュールと；１個または複数個の構文要素を記憶する構文要素モジュールと；１個または複数個の構文要素の１個または複数個を変換させて、前記入力モジュールにより読み込まれた１個または複数個の電子ファイルを解析するための変換モジュールと；そして前記解析された１個または複数個の電子ファイルから１個または複数個の正規化された電子ファイルを生成できる出力モジュール；とで構成されたことを特徴とする。【選択図】  図１
2010072861.tif 000002
【特許請求の範囲】
【請求項１】
電子ファイルを解析する装置であって：
１個または複数個の電子ファイルを読み込む入力モジュールと；
１個または複数個の構文要素を記憶する構文要素モジュールと；
１個または複数個の構文要素の１個または複数個を変換させて、前記入力モジュールにより読み込まれた１個または複数個の電子ファイルを解析するための変換モジュールと；そして
前記解析された１個または複数個の電子ファイルから１個または複数個の正規化された電子ファイルを生成できる出力モジュール；
とで構成されたことを特徴とする電子ファイル解析装置。
【請求項２】
前記入力モジュールと、前記構文要素モジュール、前記変換モジュールおよび前記出力モジュールは、各々と通信可能に構成されたことを特徴とする請求項１記載の電子ファイル解析装置。
【請求項３】
更に、１個または複数個の解析された電子ファイルを解析するために用いる１個または複数個の構文要素を記憶する構文要素記憶部を有するように構成されたことを特徴とする請求項１記載の電子ファイル解析装置。
【請求項４】
前記構文要素は、１個または複数個の電子ファイルを解析するために用いる第2の１個または複数個の変換された構文要素へ変換されるように構成されたことを特徴とする請求項１記載の電子ファイル解析装置。
【請求項５】
前記構文要素は、正規化されたファイルが形成されるまで、変換され、そして前記電子ファイルに適用されるように構成されたことを特徴とする請求項１記載の電子ファイル解析装置。
【請求項６】
複数個の電子ファイルを解析する解析方法において：
１個または複数個の構文要素を準備し；
１個または複数個の特徴を有する１個または複数個の電子ファイルを読み込み；
変換された構文要素は前記１個または複数個の電子ファイルに含まれる１個または複数個の特徴の少なくとも1個を利用しており、当該１個または複数個の変換された構文要素へ前記１個または複数個の構文要素の少なくとも1つを変換し；そして
前記１個または複数個の電子ファイルを解析するために、前記変換された構文要素の１個または複数個を、前記１個または複数個の電子ファイルに適用する；
各ステップで構成されたことを特徴とする電子ファイルの解析方法。
【請求項７】
更に、前記１個または複数個の解析された電子ファイルから１個または複数個の正規化されたファイルを生成するステップで構成されたことを特徴とする請求項６記載の電子ファイルの解析方法。
【請求項８】
更に、前記１個または複数個の解析された電子ファイルを解析するために用いる前記１個または複数個の変換された構文要素を記憶するステップで構成されたことを特徴とする請求項６記載の電子ファイルの解析方法。
【請求項９】
前記構文要素は、前記１個または複数個の電子ファイルを解析するために用いる第2の構文要素へ変換されるように構成されたことを特徴とする請求項６記載の電子ファイルの解析方法。
【請求項１０】
前記構文要素は、正規化されたファイルが形成されるまで、変換され、かつ前記電子ファイルに適用されるように構成されたことを特徴とする請求項６記載の電子ファイルの解析方法。
【請求項１１】
少なくとも一つの搬送波に入力された少なくとも一つの信号であって、請求項６に記載の方法を実行するためのコンピュータ・プロセスを実行する、少なくとも一つのプロセッサに指示するための、前記少なくとも一つのプロセッサによって読み込み可能なように構成されたコンピュータ・プログラムの命令を送信するための、少なくとも一つの搬送波に入力された少なくとも一つの信号。
【請求項１２】
少なくとも一つのプロセッサで読み取り可能な搬送波であって、請求項６に記載の方法を実行するためのコンピュータ・プロセスを実行する、少なくとも一つのプロセッサに指示するための、前記少なくとも一つのプロセッサによって読み込み可能なように構成されたコンピュータ・プログラムの命令を搬送するための、少なくとも一つのプロセッサで読み取り可能な搬送波。
【請求項１３】
複数個の電子ファイルを解析するシステムにおいて：
１個または複数個の構文要素を準備する手段と；
１個または複数個の特徴を有する１個または複数個の電子ファイルを読み込む手段と；
変換された構文要素は前記１個または複数個の電子ファイルに含まれる１個または複数個の特徴の少なくとも1個を利用しており、当該１個または複数個の変換された構文要素へ前記１個または複数個の構文要素の少なくとも1つを変換する手段と；そして
前記１個または複数個の電子ファイルを解析するために、前記変換された構文要素の１個または複数個を、前記１個または複数個の電子ファイルに適用する手段；
とで構成されたことを特徴とする電子ファイルの解析システム。
【請求項１４】
更に、前記１個または複数個の解析された電子ファイルから１個または複数個の正規化されたファイルを生成する手段で構成されたことを特徴とする請求項１３記載の電子ファイルの解析システム。
【請求項１５】
更に、前記１個または複数個の解析された電子ファイルを解析するために用いる前記１個または複数個の変換された構文要素を記憶する手段で構成されたことを特徴とする請求項１３記載の電子ファイルの解析システム。
【請求項１６】
前記構文要素は、前記１個または複数個の電子ファイルを解析するために用いる第2の構文要素へ変換されるように構成されたことを特徴とする請求項１３記載の電子ファイルの解析システム。
【請求項１７】
前記構文要素は、正規化されたファイルが形成されるまで、変換され、かつ前記電子ファイルに適用されるように構成されたことを特徴とする請求項１３記載の電子ファイルの解析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の開示内容は、一般に、実用的な電子ファイルを解析するためのシステムと方法に関し、より詳しくは、電子ファイル解析技術に関する。
【背景技術】
【０００２】
多くのソフトウェアプログラムは、あるレベルではカスタマイズ可能である。容易にソフトウェアをカスタマイズするためには、カスタマイズ内容が変更になる毎にそのソフトウェアを実行可能ファイルにコンパイルし、また再コンパイルする必要が無いように、多くのソフトウェアプログラムは、１個または複数個の電子的コンフィギュレーション・ファイルを利用している。このコンフィギュレーション・ファイルは、特定のソフトウェアプログラムで公知のフォーマットで形成されている。例えば、あるコンフィギュレーション・ファイルの各ラインには、キー名およびキー値が含まれている。そしてこのコンフィギュレーション・ファイルは、そのソフトウェアプログラムによって読み込まれる。そのソフトウェアプログラムがコンフィギュレーション・ファイルを読み込み、解析するときには、そのプログラムは特定のフォーマットを探すことができる。例えば、そのソフトウェアプログラムは、コンフィギュレーション・ファイルのあらゆるライン上で、キー名がキー値に先行しているという前提に立つ事が出来る。仮に上述のコンフィギュレーション・ファイルが、そのソフトウェアプログラムが読み込み可能なフォーマットと一致しない場合には、そのソフトウェアプログラムは、コンフィギュレーション・ファイルを読み込むことができず、そしてソフトウェアプログラムは実行されないし、或いはそのソフトウェアプログラムは、デフォルト・コンフィギュレーション・のパラメータを使用することも可能である。いずれの例にもおいても、コンフィギュレーション・ファイルの有用性は、減少し、或いは消滅されることになる。
【０００３】
残念なことに、電子コンフィギュレーション・ファイルのためのフォーマットは、各ソフトウェアプログラム毎に異なっている。極端な例では、各ソフトウェアプログラム毎に、異なるコンフィギュレーション・ファイルのフォーマットを必要としている。これらの相異は重要ではなく、またはその相異は、大きく異なっていてもよい。
【０００４】
ただし最先端技術に関する問題は、その電子コンフィギュレーション・ファイルは非常に特定なフォーマットであることを必要とするかもしれないということである。それらが所定のフォーマットから逸脱して相異する場合、そのコンフィギュレーション・ファイル又は全コンフィギュレーション・ファイルの１個又は複数個の値は、そのソフトウェアプログラムで読み込みが出来ないこともあり得る。この欠点は、コンフィギュレーション・ファイルの有効性を低下させたり或いは有効性を完全に減損させることになる。
【０００５】
ある１つのコンフィギュレーション・マネジメント・システムは、１個または複数個のサーバ全体の１個または複数個の電子コンフィギュレーション・ファイルを読み込むように稼動可能である。このコンフィギュレーション・マネジメント・システムは更に、複数個のコンフィギュレーション・ファイルを確認して、コンフィギュレーション・ファイル上のオペレーションを実行することも可能である。例えば、このコンフィギュレーション・マネジメント・システムは、異なるコンフィギュレーション・ファイル間の相異を確認することも可能であり、或いは１個または複数個のコンフィギュレーション・ファイルを変更することも可能である。多くの標準化されたコンフィギュレーション・ファイル用のフォーマットが利用可能である一方で、ソフトウェア産業では、コンフィギュレーション・ファイルを標準化する要求は存在しない。その結果、１つのソフトウェアプログラムがコンフィギュレーション・マネジメント・システムに加えられると、ユーザは、そのソフトウェアプログラムのコンフィギュレーション・ファイルがそのコンフィギュレーション・管理システムと互換性を有するかを確認しなければならない。このような作業には、ユーザが１個または複数個のコンフィギュレーション・ファイル用のフォーマットについて対話処理を行なわねばならず、またユーザに対してそれ等の知識を要求する結果になってしまう。
【０００６】
前述からみて、現行の電子ファイル解析技術に関して重要な課題および欠点があると理解することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本願発明は、複数の電子ファイル解析技術を開示する。
【０００８】
1つの特定の例示的実施形態において、この解析技術は解析装置として具体化され、この解析装置は、１個または複数個の電子ファイルを読み込む入力モジュールと；１個または複数個の構文要素を記憶する構文要素モジュールと；１個または複数個の構文要素の１個または複数個を変換させて、前記入力モジュールにより読み込まれた１個または複数個の電子ファイルを解析するための変換モジュールと；そして前記解析された１個または複数個の電子ファイルから１個または複数個の正規化された電子ファイルを生成できる出力モジュール；とで構成されたことを特徴とする。
【０００９】
本願発明のこの実施例の他の側面として、この解析装置では、前記入力モジュールと、前記構文要素モジュール、前記変換モジュールおよび前記出力モジュールは、各々と通信可能に構成されたことを特徴としている。
【００１０】
本願発明のこの実施例の他の側面として、この解析装置では、更に、１個または複数個の解析された電子ファイルを解析するために用いる１個または複数個の構文要素を記憶する構文要素記憶部を有するように構成されたことを特徴としている。
【００１１】
本願発明のこの実施例の他の側面として、この解析装置では、前記構文要素は、１個または複数個の電子ファイルを解析するために用いる第2の１個または複数個の変換された構文要素へ変換されるように構成されたことを特徴としている。
【００１２】
本願発明のこの実施例の他の側面として、この解析装置では、前記構文要素は、正規化されたファイルが形成されるまで、変換され、そして前記電子ファイルに適用されるように構成されたことを特徴としている。
【００１３】
他の特定の例示的実施形態において、この解析技術は解析方法として具体化され、この解析方法は、１個または複数個の構文要素を準備し；１個または複数個の特徴を有する１個または複数個の電子ファイルを読み込み；変換された構文要素は前記１個または複数個の電子ファイルに含まれる１個または複数個の特徴の少なくとも1個を利用しており、当該１個または複数個の変換された構文要素へ前記１個または複数個の構文要素の少なくとも1つを変換し；そして前記１個または複数個の電子ファイルを解析するために、前記変換された構文要素の１個または複数個を、前記１個または複数個の電子ファイルに適用する；各ステップで構成されたことを特徴としている。
【００１４】
本願発明のこの実施例の他の側面として、この解析方法では、更に、前記１個または複数個の解析された電子ファイルから１個または複数個の正規化されたファイルを生成するステップで構成されたことを特徴としている。
【００１５】
本願発明のこの実施例の他の側面として、この解析方法では、更に、前記１個または複数個の解析された電子ファイルを解析するために用いる前記１個または複数個の変換された構文要素を記憶するステップで構成されたことを特徴としている。
【００１６】
本願発明のこの実施例の他の側面として、この解析方法では、前記構文要素は、前記１個または複数個の電子ファイルを解析するために用いる第2の構文要素へ変換されるように構成されたことを特徴としている。
【００１７】
本願発明のこの実施例の他の側面として、この解析方法では、前記構文要素は、正規化されたファイルが形成されるまで、変換され、かつ前記電子ファイルに適用されるように構成されたことを特徴としている。
【００１８】
本願発明のこの実施例の他の側面として、少なくとも一つの搬送波に入力された少なくとも一つの信号であって、請求項６に記載の方法を実行するためのコンピュータ・プロセスを実行する、少なくとも一つのプロセッサに指示するための、前記少なくとも一つのプロセッサによって読み込み可能なように構成されたコンピュータ・プログラムの命令を送信するための、少なくとも一つの搬送波に入力された少なくとも一つの信号であるように構成されたことを特徴としている。
【００１９】
本願発明のこの実施例の他の側面として、少なくとも一つのプロセッサで読み取り可能な搬送波であって、請求項６に記載の方法を実行するためのコンピュータ・プロセスを実行する、少なくとも一つのプロセッサに指示するための、前記少なくとも一つのプロセッサによって読み込み可能なように構成されたコンピュータ・プログラムの命令を搬送するための、少なくとも一つのプロセッサで読み取り可能な搬送波であるように構成されたことを特徴としている。
【００２０】
他の特定の例示的実施形態において、この解析技術は解析システムとして具体化され、この解析システムは、１個または複数個の構文要素を準備する手段と；１個または複数個の特徴を有する１個または複数個の電子ファイルを読み込む手段と；変換された構文要素は前記１個または複数個の電子ファイルに含まれる１個または複数個の特徴の少なくとも1個を利用しており、当該１個または複数個の変換された構文要素へ前記１個または複数個の構文要素の少なくとも1つを変換する手段と；そして前記１個または複数個の電子ファイルを解析するために、前記変換された構文要素の１個または複数個を、前記１個または複数個の電子ファイルに適用する手段；とで構成されたことを特徴としている。
【００２１】
本願発明のこの実施例の他の側面として、更に、前記１個または複数個の解析された電子ファイルから１個または複数個の正規化されたファイルを生成する手段で構成されたことを特徴としている。
【００２２】
本願発明のこの実施例の他の側面として、更に、前記１個または複数個の解析された電子ファイルを解析するために用いる前記１個または複数個の変換された構文要素を記憶する手段で構成されたことを特徴としている。
【００２３】
本願発明のこの実施例の他の側面として、前記構文要素は、前記１個または複数個の電子ファイルを解析するために用いる第2の構文要素へ変換されるように構成されたことを特徴としている。
【００２４】
本願発明のこの実施例の他の側面として、前記構文要素は、正規化されたファイルが形成されるまで、変換され、かつ前記電子ファイルに適用されるように構成されたことを特徴としている。
【００２５】
本発明は、以下の例示的な実施例と添付図面を参照にしてさらに詳細に開示する。なお本発明は実施例を参照して説明が加えられるが、本発明はそれらに限定する趣旨ではない。すなわち実際は本願明細書において記載されている内容に加えて、追加的な実施、さまざまな変更、他の実施例、それに他の分野での実施、等は前述の説明および添付図面から、当業者にとっては明白であり、これらは全て本発明の開示範囲及び特許請求の範囲に属するものと理解される。またそれらの各種実施形態にも本発明を利用できるのは、当業者にとって明らかであると解釈されるべきである。
【発明を実施するための最良の形態】
【００２６】
図1には、本願の開示事項の１つの実施例に係る機器101への、そして機器101からの、情報に関するジェネラルフローの線図レベルの概要が示されている。機器101は、以下の複数個の図において更に詳細に説明されるが、周知あるいは未知のタイプの１個または複数個の電子ファイル110を読み込むように稼動可能であり、１個または複数個の正規化された電子ファイル120を生成することができる。この正規化された電子ファイル120は、他のプログラムまたはプロセスで読み込み可能な統一形式となっている。例えば、この正規化された電子ファイル120は、事前定義されたドキュメント形式定義を有する広範囲マークアップ言語（「XML」）の形式でもよい。機器101は、１個または複数個の構文要素記憶部105とデータ通信可能である。未知のフォーマットの電子ファイル110は、機器101および構文要素記憶部105を含むシステム100中で、他の素子にとっては未知のフォーマットである必要は必ずしもない。むしろ、そのフォーマットが明白でない場合には、電子ファイル110は未知のフォーマットであってもよい。例えば電子ファイル110は機器101によって読み込まれるが、しかしその電子ファイル110を読み込む時には、そのフォーマットは機器101によって明確に既知である必要はない。このように、そのフォーマットが最終的に既知または機器101によって識別される場合であっても、電子ファイル110のフォーマットは、入力時には未知であってもよい。
【００２７】
ここで図2には、本願発明の実施例に係るファイル解析システム200の線図レベルの概要が示されている。このファイル解析システム200は、入力モジュール210、出力モジュール220、変換モジュール230および構文要素モジュール240を含むことができる。各モジュールは、他の複数個のモジュールと相互に交信可能である。ある実施例においては、それら1個または複数個のモジュールは1つの物理的システム内に含まれるが、これは必ずしも必要ではない。他の実施形態では、１個または複数個のモジュールは、１個または複数個の物理的システム、例えば１個または複数個のコンピュータ上に配置することも可能である。その１個または複数個のコンピュータとその１個または複数個のコンピュータ上にある１個または複数個のモジュールは、ネットワークを介して通信可能である。機器101は、１個または複数個のモジュール、例えば入力モジュール210、出力モジュール220、変換モジュール230、および構文要素モジュール240等を含むことができる。各モジュールは、以下で更に詳細に説明される。
【００２８】
入力モジュール210は、１個または複数個の電子ファイルを読み込むことが可能である。その電子ファイルは、入力モジュール210と同じシステムに配置してもよいし、或いは入力モジュール210と通信可能な他のシステムに配置することもできる。例えば、入力モジュール210は、１個または複数個の電子ファイルを生成したり、または記憶エリアのネットワークへ移動することができ、或いはこの入力モジュール210は、リモートシステムから１個または複数個の電子ファイルを読み込むために、インターネット等の１個または複数個のネットワークを利用することができる。
【００２９】
構文要素モジュール240は、構文要素記憶部105と通信可能である。この構文要素モジュール240は、構文要素記憶部105へ、或いは構文要素記憶部105から１個または複数個の構文要素を送ったり又は受けることができる。構文要素記憶部105には、１個または複数個の構文要素を含むことができる。この構文要素記憶部105は、１個または複数個の電子ファイル内で含ませたり、或いは１個または複数個のデータベース内に含ませてもよい。構文要素モジュール240と構文要素記憶部105は、同一システムで稼動してもうよいし、または一つ以上のシステム上に分離して配置してもよいし、そして１個または複数個のネットワークまたは他の通信装置と通信可能に配置してもよい。
【００３０】
変換モジュール230は、構文要素の１個または複数個を読み込むように稼動可能であってもよく、そして１個または複数個の構文要素の１個または複数個を変換させるように稼動可能でもよい。本願発明の実施例に係る１個または複数個の構文要素に実行される変換は、更に以下に詳細に開示されている。
【００３１】
出力モジュール220は、１個または複数個の電子ファイルを生成するように稼動可能である。この出力モジュール220は、入力モジュール210として同系統に置かれることができるか、または入力モジュール210と通信可能であるように他のシステムに配置されることができる。例えば、この出力モジュール220は、１個または複数個の電子ファイルを生成したり、記憶用のエリアネットワーク又は他のネットワーク化したファイルシステムへ移動したりすることが出来る。なおそれ等のネットワークには限定されるものではないがインターネットを含み、リモートシステム上の１個または複数個の電子ファイルを生成したり又は移動させることが出来る。
【００３２】
ここで図３には、本願発明の実施例に係る潜在的に周知フォーマットの電子ファイルを解析するためのフローチャートが示されている。本開示に係る実施例は、電子コンフィギュレーション・ファイルを使用して記載されている。この開示は、１個または複数個の電子コンフィギュレーション・ファイルを読み取り解析するようにして稼動可能であるが、電子ファイルがコンフィギュレーション・ファイルであることは必須の要件でない。従って使用するコンフィギュレーション・ファイル実施例は、本開示を制限しない。
【００３３】
この開示の実施例では、１個または複数個のConfiguration
Template Language（コンフィギュレーション・テンプレート言語「CTL」）の記述が、利用可能である。1つのCTLの記述は、1つのコンフィギュレーション・ファイルの種類に対応している。代替の実施形態では、１個または複数個のCTLの記述は、１個または複数個のコンフィギュレーション・ファイルの種類に対応することもできる。例えば、1つのCTLの記述は、標準的なWindows INIコンフィギュレーション・ファイルと関係していてもよし、そして他のCTLの記述は、標準的なアパッチ・コンフィギュレーション・ファイルと関係していてもよい。典型的なコンフィギュレーション・ファイルは、図3aに示されている。図3aに示されるこの典型的なコンフィギュレーション・ファイルは、コメント・タイプ、キー・タイプおよびキー・バリュー・タイプを含むことができる。
【００３４】
まずステップ301に示すように、１個または複数個の電子コンフィギュレーション・ファイルが、読み込まれる。次にステップ302に示すように、ステップ301からの電子コンフィギュレーション・ファイルと関連するCTLの記述が読まれる。典型的なCTLの記述は、図3bに示されている。図3bに示されるこのCTLの記述は、図3aで見られる典型的なコンフィギュレーション・ファイルと関係している。このCTLの記述は、関連するコンフィギュレーション・ファイル内の標準的な表記法を使用することができる。例えば、図3aおよび図3bの例示的なコンフィギュレーション・ファイルおよびCTLの記述に関して、図3bの「/* EMX_COMMENT */」のラインは、「/*」と「*/」の間に記載されているテキストが、構文解析のためには「EMX_COMMENT」として指定されていることを示している。更に、図3bの「#EMX_COMMENT」のラインは、「#」サインと関連するそのテキストが、「EMX_COMMENT」として指定されていることを示している。
【００３５】
次にステップ304に示すように、上述のコンフィギュレーション・ファイルと関連したCTLの記述は、特定の値または「トークン」に解析される。図3bに示した典型的なCTLの記述のための例示的トークンが、図3cに示されている。これ等のトークンと関連した典型的な用語集が、図3dに示されている。CTLの記述を解析するために用いる典型的な「構文」が、図3eに示されている。各電子コンフィギュレーション・ファイルフォーマット用のCTLの記述以外には、この構文は、電子コンフィギュレーション・ファイル自体には適用されない。図3eにおいて、例えばこの典型的な「構文」は、拡張バッカス‐ナウア表記（「EBNF」）のメタ構文表記であってもよい。例えば、あるコメントは、「#」文字から開始され、一本のラインに表示される。図3dの典型的な用語集に示されているように、「CM_B」はコメントの始まりを示し、そして「CM_E」はコメントの終りを示すことができる。図3cに示される「CM_B=#、CM_E=NULL」のラインは、コメントが、「#」文字で始まり、「NULL」文字またはコンフィギュレーション・ファイルのライン終了として定義されるキャラクタで終了することを表している。同様に、図3cに示される「CM_B=/*、CM_E=*/」のラインは、コメントが「/*」文字で開始し、「*/」で終了することを示す。また類似のトークンを、1つのコンフィギュレーション・ファイル内の例えばセクション、キー、バリューを示すために用いることができる。
【００３６】
ステップ306に示すように、これ等のトークンは、機器101と共に格納されるており、従って類似のコンフィギュレーション・ファイルを解析するために用いることができる。このような方法で、ステップ302およびステップ304は、関連するCTLの記述がトークンにすでに解析されているフォーマットを有するコンフィギュレーション・ファイルを解析するためには必要ではない。これ等のトークンは、「未知の」コンフィギュレーション・ファイルのためにその後においても使用することもできる。
【００３７】
ステップ308に示すように、上述のトークンは、一組の１個または複数個の構文要素または構文記号として表示されることができる。図3cに示されるトークンに由来する典型的な構文要素は、図3fに示されている。例えば、ある1つの構文要素は、「/* */」である。これは、図3cに示す「CM_B=/*、CM_E=*/」ラインに対応している。構文要素は将来の使用のために格納されており、その結果、機器101は未知のコンフィギュレーション・ファイルを解析することが可能となる。このような方法で生成した構文要素は、要素セットで形成されている。例えば、所与のファイルフォーマットと関連したセットの構文要素の中にある１個または複数個の構文要素は、「セクション」素子であり、この「セクション」素子は、そのコンフィギュレーション・ファイルの1つのセクションが開始または終了する所を意味する。そのセットと同一セット中の１個または複数個の他の構文要素は、「コメント」素子であり、何処でコメントが開始し又は終了するかを意味する。それ等の構文要素または構文記号は、周知の構文要素の１個または複数個のセットを作成するために、対象のファイルを解析する開始位置として用いられる。
【００３８】
ステップ310に示すように、CTLの記述を解析することによって作成される複数個のトークンは、コンフィギュレーション・ファイルを解析するために用いることができる。作成された典型的なトークンは、図3cに示されおり、これ等のトークンは、正規化された分野でコンフィギュレーション・ファイルを解析するために用いることができる。この正規化は、定義済みドキュメント型定義を有する広範囲マークアップ言語（「XML」）文書の形式であってもよい。例えば図3aに示される典型的なコンフィギュレーション・ファイルに示される注釈フィールドは、2つの異なる方法（例えば、「#」で始まるコメントのラインや、或いは「/*」と「*/」でコメントの開始点と終了点を表現する方法）で表現されることができる。対象となるコンフィギュレーション・ファイルと関連したトークンによって正しく解析されると、両方のコメント・タイプは、コメントとして指定されることができる。これ等のコメントは、それから正規化された方法で定義される。例えば全てのコメントは、「/*」文字で開始し、「*/」文字で終了するように正規化される。この方法は、このように、１個または複数個のタイプのコンフィギュレーション・ファイルを読むためにCTLの記述を使用し、それから更なる使用のために１個または複数個の正規化されたタイプのコンフィギュレーション・ファイルを生成する。
【００３９】
実施例はこのように、定型的かつ直観的な構文を使用して作成されたCTLの記述でコンフィギュレーション・ファイル形式を表現する能力を有する。このコンフィギュレーション形式は、１個または複数個のCTLの記述を使用して直観的にモデル化し、それ等のCTLの記述は、コンフィギュレーション・ファイルを解析するために用いることができる。この実施例においては、本願発明の1つの実施例は、各コンフィギュレーション・ファイル・タイプのためのCTLの記述を使用することができる。仮にCTLの記述が特定のコンフィギュレーション・ファイルを記述しない場合には、そのコンフィギュレーション・ファイルはCTLの記述を使用して正しく解析することができない。またCTLの記述がコンフィギュレーション・ファイルに利用できない場合、コンフィギュレーション・ファイルは解析することはまだ可能である。
【００４０】
図4には、本願発明の実施例に係る未知のフォーマットの電子ファイルを解析するためのフローチャートが示されている。まずステップ402において、コンフィギュレーション・ファイルが、読み込まれる。ステップ404において、周知のファイルから得られた構文要素を使用してそのコンフィギュレーション・ファイルを解析してみる。他の実施形態では、それ等の構文要素は、周知のファイルフォーマットと関連した周知のCTLの記述を得る以上に供給してもよい。各々の利用可能な構文要素を使用してもよいし、或いは構文要素の利用可能なより小さいサブセットを用いてコンフィギュレーション・ファイルを解析するようにしてもよい。仮にコンフィギュレーション・ファイルが利用できる構文要素の１個または複数個によって解析された場合、そのコンフィギュレーション・ファイルは、ステップ406に示すように「既知」というようにマークがされて、そのコンフィギュレーション・ファイルは、正規化されたコンフィギュレーション・ファイルを作成するために、その利用できる構文要素を使用して解析されることができる。このコンフィギュレーション・ファイルのファイルフォーマットが、上述の１個または複数個の構文要素とすでに関係していない場合には、ステップ402からのコンフィギュレーション・ファイルのそのファイルフォーマットは、それからその文書を解析するために用いられた１個または複数個の構文要素と関連付けられる。
【００４１】
そして仮に既存の構文要素の使用が成功しない場合、構文要素の代替セットが、ステップ404において使用された１個または複数個の構文要素から生成される。構文要素の代替セットを生成する方法は、図5に示され、ステップ408から418については、その後に説明する。
【００４２】
ここで図5に移って、本願発明の実施例に係る１個または複数個の構文要素を変換させる方法が開示されている。ステップ502において、構文要素の１個または複数個のセットの組合せ間で、制御された準ランダム交差オペレーションが実行される。交差オペレーションとは、例えば、より小さい複数個の部分にこの１個または複数個の構文要素を減らして、その小さな複数個の部分を１個または複数個の構文要素に組み合わせるステップで構成されている。元の複数個の構文要素の全ての可能な組合せのセットは、解析規則に合致しない新規な構文要素の１個または複数個を取り除くことによって減少させることができる。例えば解析規則のセットが、図5aに示されている。この解析規則の適用は、コンフィギュレーション・ファイルに適用することができる構文要素の数を減らすように設計されている。
【００４３】
次にステップ504において、ターゲットコンフィギュレーション・ファイルが利用され、反復文字グループのためにスキャンされる。例えばターゲットコンフィギュレーション・ファイルには、「/*」文字セットが高い確率で発生するかもしれない。その場合には、より高い優先権が、非英数字を含む文字および文字群に与えられる。これはこれ等の文字は、文字または文字群がフォーマットの一部として使用されることを意味するからである。確率分布を、ターゲットコンフィギュレーション・ファイルの反復文字群のスキャンを使用して形成することが出来る。
【００４４】
次にステップ506において、１個または複数個の変換オペレーションが、新規な構文記号に対して実行される。この変換では、ステップ504で得られた１個または複数個の文字または文字群の１個または複数個を使用し、それ等をステップ502において発生させた新規な構文要素の１個または複数個に挿入させる。すなわち、その結果に形成された新規の構文要素セットは、ランダムには形成されず、ターゲットコンフィギュレーション・ファイルの反復文字群スキャンを使用して形成されることになる。
【００４５】
ステップ508において、構文要素の新規なセットが、ステップ506において生成された変換構文要素を使用して生成される。
【００４６】
図5に示されるステップ502からステップ508を、複数回反復して平行に実行することが出来る点に留意する必要がある。例えば、1つの装置が変換用第1の構文要素セットを生成するためにステップ502からステップ508を実行し、そして他の装置が変換用第2の構文要素セットを生成するためにステップ502からステップ508を実行してもよい。このプロセスは、複数の装置によって平行に実行しても、又は1つの装置が平行に複数セットの変換された構文要素を平行に生成する能力を有するように構成してもよい。更にまた、変換された構文要素の各セットを、平行に１個または複数個のコンフィギュレーション・ファイルに適用してもよい。例えば、変換された構文要素のセットを生成する並列プロセスを、同時に多数の未知のコンフィギュレーション・ファイルに使用してもよい。
【００４７】
図4に戻って、ステップ412に示すように、変換された構文要素の新規なセットでコンフィギュレーション・ファイルを解析する試みが実行される。
【００４８】
ステップ508が成功し、そしてコンフィギュレーション・ファイルはうまく解析された場合には、そのコンフィギュレーション・ファイルはそして、「既知」というようにマークされ、そのコンフィギュレーション・ファイルは、利用できる構文要素を使用して解析され、ステップ410に示すように、正規化されたコンフィギュレーション・ファイルが生成される。もしそのファイルフォーマットが、上記の１個または複数個の構文要素と関連していない場合には、ステップ402からのコンフィギュレーション・ファイルのファイルフォーマットはその後、ドキュメントを解析するために用いる１個または複数個の変換された構文要素と関連付けられる。変換された構文要素のこの新規なセットは、ステップ402での「既知」のコンフィギュレーション・ファイルのフォーマットと同じフォーマットを有する複数個のファイル用に記憶される。
【００４９】
そのコンフィギュレーション・ファイルが、ステップ408で生成された変換された構文要素の新規なセットを使用して解析されない場合には、ステップ414に示すように、繰返しの合計数を示すカウンタが増加される。繰返しの数が予め定められた回数に達する場合には、そのファイルは「未知」であるとマークされ、ステップ416に示すように、そのコンフィギュレーション・ファイルは、変換された構文要素または他の供給された構文要素の新規なセットを使用して、更なる解析のために格納される。更に又、別の実施例では、エラーメッセージが生成されたり、又はそのコンフィギュレーション・ファイルがうまく解析されなかったことを、オペレータに他の方法で知らしめるように構成してもよい。もしカウンタが予め定められた回数に達しなかった場合、ステップ418に示すように、変換された構文要素の新規なセットが、生成される。ステップ418からステップ408への繰り返しが、変換された構文要素の１個または複数個の新規なセットを生成するために、実行される。他の実施形態では、変換された構文要素の第1のセットを用いてコンフィギュレーション・ファイルが不成功なら、そのコンフィギュレーション・ファイルが、一組の変換された構文要素によって解析されるまで、変換された構文要素の新規な複数個のセットが生成されるように構成してもよい。
【００５０】
上述のように本願発明の実施例によれば、概して入力データの処理および出力データの生成を含む点に留意する必要がある。この入力データ処理および出力データ生成は、ハードウェアまたはソフトウェアで行うことができる。例えば、上記の通りに本願発明の実施例に係るコンフィギュレーション・ファイルを解析する機能を実施するために、コンピュータまたは類似装置または関連回路において、特定の電子部品を使用するように構成してもよい。更に代替案として、予め記憶された命令に従って作動する１個または複数個のプロセッサが、上述のように本願発明の実施例に従って、コンフィギュレーション・ファイルを解析する機能を実施するように構成してもよい。もしこの様になると、上述の命令を１個または複数個のプロセッサで読取り可能なキャリア（例えば磁気ディスクまたは他の記憶媒体）に保存したり、或いは上述の命令を１個または複数個の搬送波による１個または複数個の信号を経由して１個または複数個のプロセッサに送信することは、本願発明の開示の範囲内である。
【００５１】
本発明は、本願明細書に記載されている特定の実施態様によっては、権利範囲が制限されることはない。実際に本願明細書に記載されている内容に加え種々の変更を加えることは、上述の記載と添付した図面からとで当業者には明らかである。従ってその種の変更態様も、以下添付の請求の範囲の権利範囲内であると理解される。更に、本発明は本願明細書において特定の環境での特定の実施を前提として記載されているが、その有用性はそれにのみ制限されるものではなく、本発明がいかなる目的や環境においても、有益に実行可能であると当業者は理解できる。したがって以下の特許請求の範囲は、開示された本発明の記載内容とその技術的な精神からみて広く解釈されなければならない。
【図面の簡単な説明】
【００５２】
本開示内容をより完全に理解出来るように、添付図面を参照にして説明を行う。なお発明の各要素には、参照番号が付けられている。これ等の図面は、この開示内容を制限するものとして解釈すべきではなく、単に例示する目的のためである。
【００５３】
【図１】図1は、本願の開示事項の１つの実施例に係るシステムレベルの構成図を示し、入力電子ファイルおよび出力電子ファイルが含まれる。
【図２】図2は、本願の開示事項の１つの実施例に係るシステムレベルの構成図を示し、実際のモジュールを示している。
【図３】図3は本願の開示事項の１つの実施例に係る周知フォーマットの電子ファイルを解析するフローチャートを示している。
【図３ａ】図3aは、本願の開示事項の１つの実施例に係る典型的な電子コンフィギュレーション・ファイルを示している。;
【図３ｂ】図3bは、本願の開示事項の１つの実施例に係る典型的なコンフィギュレーション・テンプレート言語の記述を示している。
【図３ｃ】図3cは、本願の開示事項の１つの実施例に係る典型的なトークンを示している。
【図３ｄ】図3dは、本願の開示事項の１つの実施例に係るトークン定義の典型的な用語集を示している。
【図３ｅ】図3eは、本願の開示事項の１つの実施例に係るコンフィギュレーション・テンプレート言語の記述のための1つの潜在的構文リストを示している。
【図３ｆ】図3fは、本願の開示事項の１つの実施例に係る潜在的構文要素または構文記号の典型的なリストを示している。
【図４】図4は、本願の開示事項の１つの実施例に係る未知のフォーマットの電子ファイルを解析するフローチャートを示している。
【図５】図5は、本願の開示事項の１つの実施例に係る図4の１個または複数個の構文要素を変換させるためのフローチャートを示している。
【図５ａ】図5aは、本願の開示事項の１つの実施例に係る変換規則の典型的なリストを示している。
【図１】
2010072861.tif 000003
【図２】
2010072861.tif 000004
【図３】
2010072861.tif 000005
【図３ａ】
2010072861.tif 000006
【図３ｂ】
2010072861.tif 000007
【図３ｃ】
2010072861.tif 000008
【図３ｄ】
2010072861.tif 000009
【図３ｅ】
2010072861.tif 000010
【図３ｆ】
2010072861.tif 000011
【図４】
2010072861.tif 000012
【図５】
2010072861.tif 000013
【図５ａ】
2010072861.tif 000014