(57)【要約】      （修正有）【課題】ソースコードを修正することなくコンピュータプログラムの出力を修正するシステムおよび方法を提供する。【解決手段】コンピュータプログラムは、２つのファイル、すなわち入力データファイルおよびレシピテキストファイルを読み出す。このデータ入力ファイルは、出力装置に対して供給される名称／値の対を含み、レシピテキストファイルはフォーマット記述を含む。データ入力ファイルの名称／値の対は、必要とされる構造に従って配置される必要はない。プログラムの実行中、レシピテキストファイルのフォーマット記述は、一連の実行可能なオブジェクトに変換され、データ入力ファイルからの名称／値の対は、これらのフォーマット記述に従った１つのフォーマットによって供給される。入力テキストファイルおよびレシピテキストファイルの統合した変更によって、出力フォーマットは修正される。【選択図】図２
2006179020.tif 000002
【特許請求の範囲】
【請求項１】
フォーマットされた情報を出力するシステムにおいて、
複数の名称／値の対を含む入力データテキストファイルと、
複数のフォーマット記述を含み、前記フォーマット記述の少なくともいくつかは、前記名称／値の対の１以上へのリンクを示すレシピテキストファイルと、
実行プログラムと、
を有し、前記実行プログラムは、
前記レシピテキストファイルを一連の実行可能なオブジェクトに変換し、
出力を供給するリクエストを受信し、
前記リクエストに応じて、前記実行可能なオブジェクトを実行して前記フォーマット記述に従って１以上の前記名称／値の対を供給し、前記入力データテキストファイルおよび前記レシピテキストファイルの統合された変更によって変更されるようになされた
ことを特徴とするシステム。
【請求項２】
供給された出力がラベルであることを特徴とする請求項１に記載のシステム。
【請求項３】
フォーマットされた情報を出力する方法において、
複数の名称／値の対を含む入力データテキストファイルを与えるステップと、
複数のフォーマット記述を含むレシピテキストファイルを与え、前記フォーマット記述の少なくともいくつかが前記名称／値の対の１以上へのリンクを示すステップと、
前記レシピテキストファイルを一連の実行可能なオブジェクトに変換するステップと、
出力を供給するリクエストを受信するステップと、
前記一連の実行可能なオブジェクトを実行して前記フォーマット記述に従って前記名称／値の対の１以上を供給するステップと、
前記レシピテキストファイルを修正して１以上の修正されたフォーマット記述を含むようにするステップと、
前記レシピテキストファイルを修正された一連の実行可能なオブジェクトに変換するステップと、
出力を供給する第２のリクエストを受信するステップと、
前記修正された一連の実行可能なオブジェクトを実行して前記フォーマット記述に従って前記名称／値の対の１以上を供給するステップと、
を有する方法。
【請求項４】
１以上の修正された名称／値の対を含む前記入力データテキストファイルを修正するステップを含む請求項３に記載の方法。
【請求項５】
供給された前記出力がラベルである請求項３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータ出力フォーマットシステム、詳しくは、コンピュータプログラムのソースコードを修正しないでコンピュータプログラムの出力フォーマットを修正する方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータシステムのユーザは、ときどき、現在実行されている処理を変形した新たな処理を実行するプログラムを必要とする。したがって、ユーザによって使用されているコンピュータプログラムは、ユーザの実行を処理するように維持あるいは修正を必要とする。フォーマットされている場合、必要な修正は、大部分、プログラムの出力の方法への変更を含んでいる。従来、一般にコンピュータプログラムの出力は、ソースコード自体によって決められていた。このため、元のプログラムに記述された出力フォーマットから派生した出力フォーマットを望む場合、コンピュータプログラム自体のソースコードを修正するため、非常に熟練したコンピュータプログラマを雇用する必要があった。この結果、コンピュータプログラムの出力フォーマットの修正を必要とする場合、費用がかさみ、長い期間を要していた。
【０００３】
例えば、ラベルを作成するプログラムを検討する。最初に、プログラムを使用する期間において、オブジェクトの位置、フォント、文字サイズ、および方向は受け入れることができる。しかしながら、プログラムを使用する期間に、新しい要求あるいは予期しない要求に応じて、フォーマットをある種の方法で変更することが必要になる。この要求を満たすためには、非常に熟練したコンピュータプログラマがコンピュータプログラムのソースコードを再度プログラミングする必要があり、時間と費用の両方がかかることになる。
【０００４】
したがって、コンピュータプログラムの出力フォーマットを変更するために必要な時間とプログラミングの能力を低減するような技術が求められている。
【０００５】
発明の概要
本発明は、時間と費用がかかるプログラムのソースコードの変更を行うことなく、コンピュータプログラムの出力フォーマットの修正を行う方法を提供することを目的とする。
【０００６】
この目的は、別個の入力テキストファイルを通じて容易に変更できる複数のフォーマット記述を有するプログラムを提供することによって達成される。プログラムのソースコードを変更するよりも、むしろ出力フォーマットの変更を望む場合、テキストファイルの内容が修正される。これは、入力テキストファイルであってソースコードではないので、ファイルの簡単なシンタックス規則の情報だけを必要とし、複雑なコンピュータプログラムのソースコードを作成する能力は必要としないからである。したがって、費用がかさみ時間を要するコードレベルの変更をすることなく、コンピュータプログラムの出力フォーマットを変更することによって、能率は格段に向上する。
【０００７】
好ましい実施の形態では、コンピュータプログラムは、入力ファイルおよびレシピ（ｒｅｃｉｐｅ）テキストファイルの２つのファイルを読み出す。このデータ入力ファイルは、出力装置に対して供給（ｒｅｎｄｅｒ）される名称／値の対と、フォーマット記述を含むレシピテキストファイルを含む。データ入力ファイルの名称／値の対は、必要な構造に従って配置される必要はない。プログラムの実行中、レシピテキストファイルのフォーマット記述は、一連の実行可能なオブジェクトに変換され、データ入力ファイルからの名称／値の対は、これらのフォーマット記述に従ったフォーマットで供給される。入力テキストファイルおよびレシピテキストファイルの統合した変更により、出力フォーマットが修正される。
【０００８】
本発明の他の実施の形態は、フォーマットされた情報を出力する方法である。この方法は、名称／値の対を含む入力データテキストファイルを与え、フォーマット記述を含むレシピテキストファイルを与え、レシピテキストファイルを一連の実行可能なオブジェクトに変換し、出力を供給するリクエストを受信し、実行可能なオブジェクトを実行してフォーオマットの記述に従って名称／値の対を供給する。次に、この方法は、レシピテキストファイルを修正して修正されたフォーマット記述を含むようにし、修正されたレシピテキストファイルを一連の実行可能なオブジェクトに変換し、出力を供給する他のリクエストを受信し、実行可能なオブジェクトを実行して修正されたフォーマット記述に従って名称／値の対を供給する。入力データテキストファイルは、レシピテキストファイルの修正に応じて、修正された名称／値の対を含むように修正することができる。
【０００９】
例として、ラベルを作成するプログラムを再び検討する。前述のように、プログラムの最初の使用中、オブジェクトの位置、フォント、文字サイズ、および方向は受け入れられるが、プログラムを使用する期間において、新しい要求あるいは予期しない要求を満たすように、ある種の方法でフォーマットを変更することが必要となる。しかしながら、非常に熟練したコンピュータプログラマがコンピュータプログラムのソースコードを再プログラミングするには及ばない。このプログラムのソースコードを修正するのではない、レシピテキストファイルへの簡単な追加あるいは修正は、レシピテキストのファイルシンタックスの知識のみを用いて行うことができる。レシピテキストファイルのフォーマット記述は、このプログラムによって一連の実行可能なオブジェクトに変換されるので、ソースコードの修正は必要ない。したがって、高度に技術的なコンピュータプログラミング言語でプログラミングする能力は必要とされない。
【００１０】
発明の実施の形態
本発明は、ソースコードを変更することなくコンピュータプログラムの出力を修正するシステムおよび方法に関連する。簡単にいうと、本発明は、入力データを含む入力データファイルおよびフォーマット記述を含むレシピテキストファイルをコンピュータに与える。一旦これらのファイルがコンピュータによって読み出されると、レシピファイルは一連の実行可能なオブジェクトに変換される。ユーザからのリクエストがコンピュータによって受信された後、実行可能なオブジェクトが実行され、レシピテキストファイルに含まれたフォーマットに従ってデータ入力ファイルからデータが供給される。
【００１１】
レシピテキストファイルに含まれたフォーマットに従って出力が供給された後、レシピテキストファイルは、出力フォーマットにおいて所望の変更を反映するように修正される。一旦これが行われると、このシステムは、レシピテキストファイルを実行可能なオブジェクトに変換し、ユーザ入力に応じてこのオブジェクトを再び実行する。この実行の結果は、前の実行から修正されたフォーマットによるデータテキストファイルからのデータの出力である。
【００１２】
本発明の実施の形態を、図面を参照して説明する。いくつかの図面を通じて、同様の部材は同じ指示符号で示すことにする。まず、図１において、本発明の実施の形態の動作環境の例が示されている。動作環境の例において、本発明は、ソースコードを修正することなくコンピュータプログラムの修正を容易にするように動作してもよい。しかしながら、当業者は、本発明が携帯機器、マルチプロセッサシステム、マイクロプロセッサベースあるいはプログラマ可能な民生用電子機器、ミニコンピュータ、メインフレームコンピュータなどの種類においても実現できることを理解すべきである。本発明は、リモート処理装置によってタスクが実行される分散コンピューティング環境でも実現することもできる。
【００１３】
本発明の実施の形態を、以下でＦＯＳＳアプリケーションプログラムと称するフォーマット出力サブシステムアプリケーションプログラム３６の一般的な環境において説明する。ＦＯＳＳアプリケーションプログラム３６は、コンピュータプログラムの出力の修正を容易にし、ソースコードを修正することなくコンピュータプログラムの出力を修正するため、入力データテキストファイル３８およびレシピテキストファイル３９と対話する。当業者は、本発明がいろいろな他のプログラムモジュール３７と組み合わせて実現することができることを理解するであろう。一般に、プログラムモジュールは、特定のタスクを実行するかあるいは特定の抽象データタイプを実現するようなルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明が通信ネットワークを介して接続された図示されたコンピュータシステム構成とは異なる構成によって実現されてもよいことを理解するであろう。分散コンピューティング環境では、プログラムモジュールは、ローカルメモリ記憶装置およびリモートメモリ記憶装置の両方に存在してもよい。
【００１４】
本発明を実現する動作環境１００の例は、通常のパーソナルコンピュータシステム２０を含み、このパーソナルコンピュータ２０は、プロセッシングユニット２１、システムメモリ２２、システムメモリ２２をプロセッシングユニット２１に接続するシステムバス２３を含む。このシステムメモリ２２は、読み出し専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。基本入出力システム２６（ＢＩＯＳ）は、ＲＯＭ１２４に記憶される。ＢＩＯＳ２６は、起動時などに、パーソナルコンピュータシステム２０の構成要素間で情報を転送するのに役立つ基本ルーチンを含む。
【００１５】
さらに、パーソナルコンピュータシステム２０は、ハードディスクドライブ２７、例えば取り外し可能なディスク２９に対する読み出しあるいは書き込みが可能な磁気ディスクドライブ２８、例えばＣＤ−ＲＯＭディスク３１を読み出すかあるいは他の非解媒体に対する読み出しまたは書き込みが可能な光ディスクドライブ３０を含む。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、ハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３、および光ドライブインタフェース３４によってそれぞれシステムバス２３に接続されている。ドライブおよび関連するコンピュータで読み出し可能な媒体は、パーソナルコンピュータシステム２０に不揮発性の記憶装置を提供する。例えば、入力データテキストファイル３８は、パーソナルコンピュータ２０のハードディスク２７のＲＡＭ２５に記憶されてもよい。前述のコンピュータで読み出し可能な媒体の説明では、ハードディスク、取り外し可能な磁気ディスクおよびＣＤ−ＲＯＭディスクを参照しているが、当業者には、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイカートリッジ等のようなコンピュータシステムによって読み出し可能な他の種類の媒体を動作環境の例において使用することができることは理解されるであろう。
【００１６】
オペレーティングシステム３５、ＦＯＳＳアプリケーションプログラム３６、他のプログラムモジュール３７、入力データテキストファイル３８、レシピテキストファイル３９、一連の実行可能なオブジェクト４０および修正された一連の実行可能なオブジェクト４１を含む多数のプログラムモジュールは、ドライブおよびＲＡＭ２５に記憶することができる。特に、コンピュータプログラムの出力の修正を容易にするＦＯＳＳアプリケーションプログラム３６は、ソースコードを修正することなくコンピュータプログラムの出力を修正するため、入力データテキストファイル３８およびレシピテキストファイル３９と対話する。ＦＯＳＳアプリケーションプログラム３６の実施の形態の例は、図２を参照して以下で詳細に説明する。
【００１７】
他の入力装置（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星ディシュアンテナ、スキャナなどを含んでもよい。これらおよび他の入力装置は、しばしばシステムバスに接続されたシリアルポートインタフェース４６を介してプロセッシングユニット２１に接続されているが、ゲームポートあるいはユニバーサルシリアルバス（ＵＳＢ）のような他のインタフェースによって接続されてもよい。モニタのようなディスプレイ装置４７あるいは他の種類の装置も、ビデオアダプタ４８のようなインタフェースを介してシステムバス２３に接続されている。プリンタ４５も、パラレルインタフェース４４のようなインタフェースを介してシステムバス２３にも接続されている。ディスプレイ装置４７およびプリンタ４５に加えて、パーソナルコンピュータシステムは、典型的にはスピーカのような他の周辺出力装置（図示せず）を含む。
【００１８】
パーソナルコンピュータシステム２０は、リモートコンピュータシステム４９のような１以上のリモートコンピュータシステムへの論理接続を使用し、ネットワーク環境で動作してもよい。リモートコンピュータシステム４９は、サーバ、ルータ、ピア装置あるいは他の共通ネットワークノードであってもよく、図１には唯一のメモリ記憶装置５０が示されているが、典型的にはパーソナルコンピュータシステム２０に関して示されている構成要素の多数あるいは全部を含んでいる。図１に示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１およびワイドエリアネットワーク（ＷＡＮ）５２を含んでいる。このようなネットワーク環境は、事務所、企業内コンピュータネットワーク、イントラネットおよびインターネットでは普通である。
【００１９】
ＬＡＮネットワーク環境において使用される場合、パーソナルコンピュータシステム２０は、ネットワークインタフェース５３を介してＬＡＮ５１に接続される。ＷＡＮネットワーク環境で使用される場合、パーソナルコンピュータシステム２０は、典型的にはインターネットのようなＷＡＮ５２を介して通信を確立するモデム５４あるいは他の手段を含む。モデム５４は、内蔵または外付けのいずれでもよく、シリアルポートインタフェース４６を介してシステムバス２３に接続されている。ネットワーク環境では、パーソナルコンピュータシステム２０あるいはその一部について示されたプログラムモジュールは、リモートメモリ記憶装置５０に記憶されてもよい。図示されたネットワーク接続は一例であり、コンピュータシステム間の通信リンクを確立するには他の手段を使用してもよいことが理解されるであろう。さらに、本発明はパーソナルコンピュータシステム以外のホストコンピュータシステムあるいはサーバコンピュータシステムで同様に実現でき、例えばネットワーク接続インタフェース５３を介してＣＤ−ＲＯＭ以外の手段によってホストコンピュータシステムに同様に伝送できることが理解されるであろう。
【００２０】
本発明の原理の幅広い適応性にもかかわらず、幅広く使用されるパーソナルコンピュータシステム２０に用いられるＦＯＳＳアプリケーションプログラム３６としての実施の形態の例の構成は、顕著な利益を招来することを理解すべきである。特に、本明細書に記載された本発明の方法を実行するコンピュータ実行命令を含むＦＯＳＳアプリケーションプログラム３６は、通常のパーソナルコンピュータシステム２０で実行された場合、受け入れ可能なメモリ使用および性能特性を示すように特別に設計されている。レビュープログラムモジュール３６をそのように構成する際に、特にメモリ容量の最小化および実効速度の増加というしばしば競合する目的の間における一定のトレードオフのバランスが、必然的に生じる。本明細書に記載された実施の形態の例において生じたトレードオフのバランスの変化は、特にコンピュータハードウェアおよびメモリ記憶装置における不可避の改善が他のトレードオフのバランスを実行可能にするという事実に関して本発明の概念および範囲内にあることを理解すべきである。
【００２１】
図２は、コンピュータプログラムの出力がソースコード修正なしに修正されるモジュール２００の例を示している。本実施の形態では、出荷される荷物のためのラベルを生成するプログラムが示されている。方法２００は、開始ブロック２０５で開始され、システムに特定の名称／値の対を含む入力データテキストファイル３８が与えられるステップ２１０に進む。図３に示されるように、入力データテキストファイルに含まれる名称／値の対は、出力に表示される情報を与える。図３の列Ａは名称を示し、列Ｂは特定の名称／値の対に対応する値を示す。特に、名称／値の対３０５〜３３０は、荷物の送り元のアドレスを示してもよい。名称／値の対３６５は、ラベルにあるバーコードについての情報を示してもよい。さらに、アイコンあるいはロゴを示すグラフィカルデータは、名称／値の対に含めてもよく、入力データテキストファイル３８に含めてもよい。入力データテキストファイルに含まれた情報はそれ自体でフォーマットの指示を与えず、入力データテキストファイル３８の名称／値の対は、必要な構造に従って配置される必要はない。
【００２２】
図２に戻ると、方法２００は、ステップ２１５に進み、ここで、システムにはフォーマット記述を含むレシピテキストファイル３９が与えられる。システムに与えられるレシピテキストファイル３９は、ハードディスク３２に記憶された複数のこのようなファイルから選択してもよく、入力データテキストファイル３８に含まれた情報によって特定してもよい。例えば、図３に示すような入力データテキストファイル３８は、４Ｘ６Ｌａｂｌｅという特定のレシピテキストファイルを示す特定の名称／値の対３７０を含んでもよい。レシピテキストファイル３９におけるフォーマット記述は、ラベルサイズ、テキストフォントおよびサイズ、ログあるいはバーコードのようなアイコンの位置を指定してもよい。さらに、外国のような特定の宛先が入力データで指定される場合、フォーマットは、宛先の慣習あるいは要求を反映する。
【００２３】
適切にフォーマットされた出力は、レシピテキストファイル３９を用いて生成される。レシピテキストファイル３９は、ラベル、レポートおよび他のフォーマットされた出力のための規則をカプセル化し、ＦＯＳＳアプリケーションプログラム３６の初期化中に読み込まれる。このファイルは、いくつかのアーティファクトおよび／または他のフォーマット記述を含むフォーマット規則の記述から構成されている。
【００２４】
各アーティファクトは、一定の値を有してもよいしあるいは入力データテキストファイル３８の名称／値の対に与えられたデータへのリンクを示してもよい。入力データテキストファイル３８に与えられたデータは、ＦＯＳＳアプリケーションプログラムが実行される場合、入力データテキストファイル３８から供給されるデータを得るためにアーティファクトによって使用される。入力データテキストファイル３８をＦＯＳＳアプリケーションプログラムに送るために使用される運搬手段はバッグと呼ばれる。バッグは、名称、名称−値ストリング対、および埋め込まれたバッグを有することができる。バッグにおけるアイテムは、レシピテキストファイル３９におけるリンクとして参照されない限り、供給されない。
【００２５】
レシピテキストファイル３９は、下記のタイプのフォーマットの規則記述を含んでいる。
【００２６】
フォーマット
このフォーマットアイテムは、ラベルプリンタのような出力装置に対してデータをいかに供給するかあるいはより詳細に印刷するかを定義するルートフォーマット規則記述子である。このアイテムは、フォーマット出力サイズ、デフォルトフォント、デフォルトライン特性およびアーティファクトを定義するフォーマット規則記述を集めている。各フォーマットは、フォーマットレシピを参照するために使用される名称を有する。名称の多くは下記のように列挙される。
【００２７】
「パターン（ｐａｔｔｅｒｎ）」アーティファクト
このアーティファクトは、単一アーティファクトフォーマット規則記述子内において、入力データテキストファイル３８から、複数のデータアイテムの供給が可能になるように使用される。このアーティファクトは、「Ｃ」言語の「ｐｒｉｎｔｆ（）」機能に非常に似た動作をする。テキスト値の集まりは、特定のフォーマットを使用して供給される。パターンにおける参照アイテムがデータバッグに存在しない場合、空ストリングは印刷値として使用される。
【００２８】
「描画（ｄｒａｗ）」アーティファクト
このアーティファクトは、直線、楕円、あるいは矩形のいずれかを描画するのに使用される。
【００２９】
「複合（ｃｏｍｐｏｓｉｔｅ）」アーティファクト
このアーティファクトは、データを出力装置に対して供給するように他のレシピテキストファイルを呼び出すために使用される。しかしながら、この場合、呼び出されたフォーマットは、データについて異なるバッグを参照し、出力装置コンテキストにおいて異なる位置を有してもよい。例えば、いかにアドレスを印刷するかを規定するフォーマットレシピがあってもよい。このフォーマットレシピは、「送り元（ｓｈｉｐ  ｆｒｏｍ）」および「宛先（ｓｈｉｐ  ｔｏ）」のアドレスを印刷するために再使用してもよい。しかしながら、使用されるデータおよび供給する位置は異なる。例えば、「宛先（ｓｈｉｐ  ｔｏ）」複合アーティファクトは、単に「宛先（ｓｈｉｐ  ｔｏ）」アドレスを含む埋め込みバッグを参照し、アーティファクトをラベルに配置する固有の位置を有する。
【００３０】
「グラフィック（ｇｒａｐｈｉｃ）」アーティファクト
このアーティファクトは、出力コンテキストにおいてグラフィック画像を印刷するために使用される。これは出荷ラベルにロゴを付けるために使用してもよい。
【００３１】
「テキスト（ｔｅｘｔ）」アーティファクト
このアーティファクトは、入力データテキストファイル３８からの単一データを供給すために使用される。
【００３２】
「通過（ｐａｓｓｔｈｒｏｕｇｈ）」アーティファクト
これは、装置コンテキストのいかなるオペレーティングシステム制御も迂回し、ラベルプリンタのような出力装置に対して直接に供給されたデータを送るために使用される特別のアーティファクトである。装置ドライバがプリンタによって与えられる特定の機能を利用しない場合、これを使用されてもよい。
【００３３】
Ｍａｘｉコードアーティファクト
このアーティファクトは、与えられたデータバッグから特定のデータを収集し、このデータをＭａｘｉコード画像として供給するために使用される。
【００３４】
ｈｒｃｓコードアーティファクト
このアーティファクトは、与えられた入力データテキストファイル３８から特定のデータを収集し、人間が読み取ることができるソートコードとして供給する。ソートコードは、ソーティングパッケージのために使用されるテキストストリングである。
【００３５】
「イフ（ｉｆ）」アーティファクト修正子
これはオプショナルアーティファクト修正子である。この修正子は、テストを実行し、アーティファクトを供給する前に合格したことを示している。このテストは、アーティファクトが入力データテキストファイル３８のアイテムにおける５つの存在および／または値についてテストできるようにするブール表現である。
【００３６】
「ブロック（ｂｌｏｃｋ）」アーティファクト修正子
これは、定義されたフォーマットレシピ内のアーティファクトテキストをどこに配置するかを指定するために全アーティファクトによって使用される修正子である。このブロックは、フォーマット空間内の矩形エリアを定義する。
【００３７】
「ペン（ｐｅｎ）」アーティファクト修正子
これは、ラインタイプおよび幅値を指定するオプショナルアーティファクト修正子である。
【００３８】
「フォント（ｆｏｎｔ）」アーティファクト修正子
これは、フォントタイプおよびサイズ値を指定するオプショナルアーティファクト修正子である。
【００３９】
レシピテキストファイル３９を書き込むための規則は、バッカスナウアフォーマット（ＢＮＦ）文法として定義される。ＢＮＦ文法は、言語を記述するテキストのコンテキストセンシティブセットを記述するために使用される技術である。この場合、使用される文法は、レシピテキストファイル３９を記述する規則を表している。この文法を使用して作成されたサンプルレシピテキストファイル３９が図４に示されている。文法における各行は、レシピテキストファイル内のテキストをいかに分析するかの規則を表している。この規則は下記のフォーマットを有する。
【００４０】
規則名⇒規則
符号「⇒」の左辺は、構文解析されているテキストストリームにおいて何が予期されるかを特定する生成規則の名称である。右辺は、入力ストリームにおいて予想するトークンのリストである。いろいろな文法インスタンスをサポートするために、文法規則においては他の規則が受け入れられなければならない。単一規則は、ゼロあるいは１以上の可能性を有してもよい。実際の生成は入力ストリームのコンテキストに依存する。例えば、レシピテキストファイル３９における特定の位置で、フォーマット規則が予想できる。フォーマットは、ライン、テキスト、サークル、Ｍａｘｉコードシンボル、あるいは定義されたアーティファクトであり得る。いくつかの場合、この規則はトークンを生成しなくてもよい。この場合、「＄」は他の規則として特定される。いくつかのトークンは、角括弧（「＜＞」）で囲まれている。これは、トークンが実際に入力ストリームにおけるテキストでなく、他の規則によって定義される定義を有することを示している。これは非ターミナルトークンとして知られている。生成における全ての他のテキストは、ターミナルトークンと呼ばれる実際のテキストを表す。
【００４１】
レシピテキストファイルを作成する文法は、下記の表で定義される。
【表１】
2006179020.tif 000003
【００４２】
2006179020.tif 000004
【表２】
2006179020.tif 000005
【００４３】
2006179020.tif 000006
【００４４】
2006179020.tif 000007
【００４５】
2006179020.tif 000008
【００４６】
前述した規則の適用の例として、下記の２つの規則は表１から得られる。
【表３】
2006179020.tif 000009
【００４７】
上記の２つの規則を適用すると、図４に示すようなレシピテキストからの下記の行４０５および４１０をそれぞれ生成できる。
【００４８】
，［ｆｏｎｔ，ｎａｍｅ＝Ａｒｉａｌ，ｓｉｚｅ＝８］
，［ｐｅｎ，ｗｉｄｔｈ＝１，ｓｔｙｌｅ＝ｓｏｌｉｄ］
行４０５から分かるように、「８」ポイントサイズを有する「Ａｒｉａｌ」として知られる特定のフォントは、ラベル上に英数字シンボルを印刷するために使用される。さらに行４１０から、ペン幅は「１」に選択され、例えば、破線ではなく「実線」で描かれる。
【００４９】
図２に戻ると、この方法２００は、ステップ２１５からステップ２２０に進み、システムはレシピテキストファイル３９をパーソナルコンピュータシステム２０で実行するのに適する一連の実行可能なオブジェクトに変換する。ステップ２２０から、この方法は、ユーザが出力を供給することを望むかどうかをユーザ入力が決定するブロック２２５に進む。供給された出力を受信する媒体の例には、レーザプリンタ、ドットマトリックスプリンタ、インクジェットプリンタ、ピンプロッタ、あるいは静電プロッタが含まれる。さらに、この出力は、電子メールメッセージ、ｆｔｐファイル、ｇｉｆファイル、あるいは同様な電子ファイルを含む電子フォーマットで供給されてもよい。当業者は、本発明が出力機構のいろいろな形式を使用して実行できることを理解すべきである。決定のブロック２２５において、ユーザが出力を供給することを望まない場合、この方法はステップ２３０に進み、この方法を終了する。しかしながら、決定のブロック２２５でユーザが出力を供給することを望む場合、この方法はステップ２３５に進む。
【００５０】
ステップ２３５において、システムは、ステップ２２０で生成された一連の実行可能なオブジェクト４０を実行し、レシピテキストファイル３９のフォーマット記述に従って入力データファイル３８の名称／値の対を供給する。次に、方法２００はステップ２４０に進み、ユーザ入力に応じて、このシステムはレシピテキストファイル３９を修正する。これらの修正は、供給されるラベルのサイズ、テキストフォントおよびサイズ、あるいはテーブルに配置されるロゴあるいはバーコードのようなアイコンの位置の変更を含んでもよい。ステップ２４０から、この方法はステップ２４５に進み、このシステムはレシピテキストファイルを修正された一連の実行可能なオブジェクト４１に修正されるように変換する。次に、この方法は、決定のステップ２５０に進み、ユーザ入力が出力を供給することを望むかどうか決定する。ユーザが出力を供給することを望まない場合、この方法はこの方法が終了するステップ２５５に続く。しかしながら、決定のブロック２５０においてユーザが出力を供給することを望む場合、この方法はステップ２６０に進む。ステップ２６０において、システムは修正された一連の実行可能なオブジェクト４１を実行し、レシピテキストファイル３９の修正されたフォーマット記述に従って入力データファイル３８の名称／値の対を供給する。修正された一連の実行可能なオブジェクト４１が使用されるので、供給された出力フォーマットは、以前の修正を反映する。ステップ２６０から、方法２００は終了ブロック２６５に進む。
【００５１】
以上のように、本発明は、ソースコードを修正することなくコンピュータプログラムの出力を修正する方法を提供するということが理解されるであろう。なお、以上の説明は本発明の実施の形態の例にのみ関連し、特許請求の範囲の概念および範囲から逸脱することなく多数の変更を施すことができることが理解されるべきである。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施の形態の例についての動作環境の例を示す機能ブロック図である。
【図２】本発明の実施形態の例の一般的な動作を示すフローチャートである。
【図３】入力データテキストファイルに含まれた名称／値の対を示す図である。
【図４】図４はレシピテキストファイルを示す図である。
【図１】
2006179020.tif 000010
【図２】
2006179020.tif 000011
【図３】
2006179020.tif 000012
【図４】
2006179020.tif 000013
【手続補正書】
【提出日】平成18年1月30日(2006.1.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フォーマットされた情報を出力するシステムにおいて、
複数の名称／値の対を含む入力データテキストファイルと、
第１のフォーマットで出力を生成するフォーマットソースコードを含むコンピュータプログラムと、
１以上のアーティファクトを含む複数のフォーマット記述を含み、前記複数のフォーマット記述の少なくともいくつかは、前記複数の名称／値の対の１以上へのリンクを示すレシピテキストファイルと、
実行プログラムと、
を有し、前記実行プログラムは、
前記レシピテキストファイルを一連の実行可能なオブジェクトに変換し、
前記出力を供給するリクエストを前記コンピュータプログラムから受信し、
前記リクエストに応じて、前記フォーマットソースコードを変更することなく、前記一連の実行可能なオブジェクトを実行して前記複数のフォーマット記述に従って１以上の前記複数の名称／値の対を第２のフォーマットで前記出力に供給する
ことを特徴とするシステム。
【請求項２】
供給された出力がラベルであることを特徴とする請求項１に記載のシステム。
【請求項３】
フォーマットされた情報を出力する方法において、
複数の名称／値の対を含む入力データテキストファイルを与えるステップと、
第１のフォーマットで出力を生成するフォーマットソースコードを含むコンピュータプログラムを与えると、
１以上のアーティファクトを含む複数のフォーマット記述を含むレシピテキストファイルを与え、前記複数のフォーマット記述の少なくともいくつかが前記複数の名称／値の対の１以上へのリンクを示すステップと、
前記レシピテキストファイルを一連の実行可能なオブジェクトに変換するステップと、
前記出力を供給する第１のリクエストを前記コンピュータプログラムから受信するステップと、
前記第１のリクエストに応じて、前記フォーマットソースコードを変更することなく、前記一連の実行可能なオブジェクトを実行して前記複数のフォーマット記述に従って前記複数の名称／値の対の１以上を第２のフォーマットで前記出力に供給するステップと、
前記レシピテキストファイルを修正して１以上の修正されたフォーマット記述を含むようにするステップと、
前記レシピテキストファイルを修正された一連の実行可能なオブジェクトに変換するステップと、
前記出力を供給する第２のリクエストを受信するステップと、
前記第２のリクエストに応じて、前記フォーマットソースコードを変更することなく、前記修正された一連の実行可能なオブジェクトを実行して前記複数のフォーマット記述に従って前記名称／値の対の１以上を第３のフォーマットで前記出力に供給するステップと、
を有する方法。
【請求項４】
１以上の修正された名称／値の対を含む前記入力データテキストファイルを修正するステップを含む請求項３に記載の方法。
【請求項５】
供給された前記出力がラベルである請求項３に記載の方法。
【外国語明細書】
2006179020.tif 000014
2006179020.tif 000015
2006179020.tif 000016
2006179020.tif 000017
2006179020.tif 000018
2006179020.tif 000019
2006179020.tif 000020
2006179020.tif 000021
2006179020.tif 000022
2006179020.tif 000023
2006179020.tif 000024
2006179020.tif 000025
2006179020.tif 000026
2006179020.tif 000027
2006179020.tif 000028
2006179020.tif 000029
2006179020.tif 000030
2006179020.tif 000031
2006179020.tif 000032
2006179020.tif 000033
2006179020.tif 000034
2006179020.tif 000035
2006179020.tif 000036
2006179020.tif 000037
2006179020.tif 000038
2006179020.tif 000039