(57)【特許請求の範囲】
【請求項１】
ヒューマンインターフェイスデスクリプションを提供し且つ処理するためのコンピュータ実施の方法（４００）であって、
コンピュータが、データ入力についてユーザに入力指示するためのヒューマンインターフェイスデスクリプション（１６０）を提供するステップ（４７５）と、
前記コンピュータが、前記ユーザからデータ（１７０）を受け取るステップ（４８０）と、
前記コンピュータが、前記ユーザから受け取ったデータ（１７０）をデータインスタンス（１５０）に格納するステップ（４８５）と
を備え、
前記データ（１７０）は、前記ヒューマンインターフェイスデスクリプション（１６０）の少なくとも一つのレイアウトエレメント（１２２，１２３，１２４−１，１２４−２，１２５，１２６，１２７）のステータスを備え、
前記コンピュータが、前記ヒューマンインターフェイスデスクリプション（１６０）に含まれるファンクションを実行することにより、ユーザが前記データをサブミットする時点での前記レイアウトエレメント上のカーソル位置を受け取ることで、前記ステータスとしてサブミット時のカーソル位置を含ませ、且つ、当該受け取ったカーソル位置を、前記ヒューマンインターフェイスデスクリプション（１６０）に含まれる隠されたフィールドの値とし、前記ヒューマンインターフェイスデスクリプションの翻訳時に、当該ヒューマンインターフェイスデスクリプションに含まれるファンクションを実行することで、前記隠されたフィールドの値に基づいてカーソル位置を設定し、
前記提供ステップ（４７５）は、
前記コンピュータが、レイアウトテンプレート（１４０−１）およびデータデスクリプション（１４０−２）を提供するステップ（４５０）と、
前記コンピュータが、前記データデスクリプション（１４０−２）から前記データインスタンス（１５０）を作成するステップ（４６０）と、
前記コンピュータが、前記データインスタンス（１５０）を前記レイアウトテンプレート（１４０−１）と共にヒューマンインターフェイスデスクリプション（１６０）にマージするステップ（４７０）とを備え、
前記コンピュータが、アプリケーションプログラムに前記データインスタンスのデータを転送し、データインスタンスが前記アプリケーションプログラムから修正されたデータを受け取るステップを実行することで、前記データインスタンスに格納されたユーザ入力のデフォルト値を前記アプリケーションプログラムに修正させることを特徴とする方法。
【請求項２】
前記マージステップ（４７０）は、Ｊａｖａ（登録商標）等のプログラミング言語で記述された変換プログラムを使用する請求項１記載の方法。
【請求項３】
前記変換プログラムは、スタイルシート言語変換である請求項２記載の方法。
【請求項４】
前記受取ステップ（４８０）において、データ（１７０）はＸパスを備える請求項１記載の方法。
【請求項５】
ヒューマンインターフェイスデスクリプションを提供し且つ処理するためのコンピュータシステム（９９９）であって、
データ入力についてユーザに入力指示するためのヒューマンインターフェイスデスクリプション（１６０）を提供するステップ（４７５）のための手段と、
前記ユーザからデータ（１７０）を受け取るステップ（４８０）のための手段と、
前記ユーザから受け取ったデータ（１７０）をデータインスタンス（１５０）に格納するステップ（４８５）のための手段と
を備え、
前記データ（１７０）は、前記ヒューマンインターフェイスデスクリプション（１６０）の少なくとも一つのレイアウトエレメント（１２２，１２３，１２４−１，１２４−２，１２５，１２６，１２７）のステータスを備え、
前記ヒューマンインターフェイスデスクリプション（１６０）に含まれるファンクションを実行することにより、ユーザが前記データをサブミットする時点での前記レイアウトエレメント上のカーソル位置を受け取ることで、前記ステータスとしてサブミット時のカーソル位置を含ませ、且つ、当該受け取ったカーソル位置を、前記ヒューマンインターフェイスデスクリプション（１６０）に含まれる隠されたフィールドの値とし、前記ヒューマンインターフェイスデスクリプションの翻訳時に、当該ヒューマンインターフェイスデスクリプションに含まれるファンクションを実行することで、前記隠されたフィールドの値に基づいてカーソル位置を設定し、
前記提供ステップ（４７５）のための手段は、
レイアウトテンプレート（１４０−１）およびデータデスクリプション（１４０−２）を提供するステップ（４５０）のための手段と、
前記データデスクリプション（１４０−２）から前記データインスタンス（１５０）を作成するステップ（４６０）のための手段と、
前記データインスタンス（１５０）を前記レイアウトテンプレート（１４０−１）と共にヒューマンインターフェイスデスクリプション（１６０）にマージするステップ（４７０）のための手段とを備え、
アプリケーションプログラムに前記データインスタンスのデータを転送し、データインスタンスが前記アプリケーションプログラムから修正されたデータを受け取るステップを実行することで、前記データインスタンスに格納されたユーザ入力のデフォルト値を前記アプリケーションプログラムに修正させることを特徴とするコンピュータシステム。
【請求項６】
コンピュータ（９００）のプロセッサ（９１０）にヒューマンインターフェイスデスクリプションを提供させ且つ処理させるための複数の命令を備えるコンピュータプログラム（１００）であって、
データ入力についてユーザに入力指示するためのヒューマンインターフェイスデスクリプション（１６０）を提供するステップ（４７５）と、
前記ユーザからデータ（１７０）を受け取るステップ（４８０）と、
前記ユーザから受け取ったデータ（１７０）をデータインスタンスに格納するステップ（４８５）と
を前記コンピュータ（９００）に実行させ、
前記データ（１７０）は、前記ヒューマンインターフェイスデスクリプション（１６０）の少なくとも一つのレイアウトエレメント（１２２，１２３，１２４−１，１２４−２，１２５，１２６，１２７）のステータスを備え、
前記コンピュータ（９００）が、前記ヒューマンインターフェイスデスクリプション（１６０）に含まれるファンクションを実行することにより、ユーザが前記データをサブミットする時点での前記レイアウトエレメント上のカーソル位置を受け取ることで、前記ステータスとしてサブミット時のカーソル位置を含ませ、且つ、当該受け取ったカーソル位置を、前記ヒューマンインターフェイスデスクリプション（１６０）に含まれる隠されたフィールドの値とし、前記ヒューマンインターフェイスデスクリプションの翻訳時に、当該ヒューマンインターフェイスデスクリプションに含まれるファンクションを実行することで、前記隠されたフィールドの値に基づいてカーソル位置を設定し、
レイアウトテンプレート（１４０−１）およびデータデスクリプション（１４０−２）を提供するステップ（４５０）と、
前記データデスクリプション（１４０−２）から前記データインスタンス（１５０）を作成するステップ（４６０）と、
前記データインスタンス（１５０）を前記レイアウトテンプレート（１４０−１）と共にヒューマンインターフェイスデスクリプション（１６０）にマージするステップ（４７０）とを通して、前記コンピュータ（９００）に前記提供ステップ（４７５）を実行させ、
前記コンピュータ（９００）が、アプリケーションプログラムに前記データインスタンスのデータを転送し、データインスタンスが前記アプリケーションプログラムから修正されたデータを受け取るステップを実行することで、前記データインスタンスに格納されたユーザ入力のデフォルト値を前記アプリケーションプログラムに修正させることを特徴とするコンピュータプログラム。
【請求項７】
コンピュータ（９００）のプロセッサ（９１０）にヒューマンインターフェイスデスクリプションを生成させ且つ処理させるための複数の命令と、前記コンピュータ（９００）に請求項１の方法（４００）のステップを実行させる複数の命令とを含むプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、データ処理システムのヒューマンインターフェイスに関し、更に詳しくは、ヒューマンインターフェイスを通じてコンピュータと情報のやり取りを行うためのコンピュータ実装の方法およびコンピュータシステムに関する。
【背景技術】
【０００２】
従来技術のシステムにおいては、ヒューマンインターフェイスは、標準化されたヒューマンインターフェイス記述言語(SIDL; Standardized Human Interface Description Language)を用いて記述される。以下で用いられる“ヒューマンインターフェイス”なる用語は、コンピュータ上で動作するアプリケーションプログラムと人間が対話(interact)するための任意の種類のアプリケーションインターフェイスを表す。ヒューマンインターフェイスの例には、グラフィカルユーザインターフェイス（ＧＵＩ）またはボイスユーザインターフェイス（ＶＵＩ）がある。
【０００３】
一般には、ＳＩＤＬは、“拡張マークアップ言語”(XML; Extensible Markup Language)を基にした言語であって一組のレイアウトコンポーネント(layout component)を提供する。レイアウトコンポーネントは、ヒューマンインターフェイスの特定のエレメントを記述する記述命令(description instruction)から成る。以下では、この記述命令をレイアウトエレメント(LE; layout element)と称す。変換ルール(transform rules)を含む変換プログラム(transformer program)は、レイアウトエレメントをブラウザ対応のデスクリプションに変換する。
【０００４】
ブラウザは、以下のように、“ハイパーテキストマークアップ言語”(HTML; Hyper Text Markup Language)、“ワイヤレスマークアップ言語”(WML; Wireless Markup Language)、または“音声拡張マークアップ言語”(VXML; Voice Extensible Markup Language)のようなマークアップ言語で記述されたドキュメントを、このドキュメントのビジュアルまたはオーディオプレゼンテーションに“翻訳(render)”するコンピュータプログラムである。ブラウザは、装置特定(device specific)のものであり得る。例えば、パーソナルコンピュータ画面上のＨＴＭＬドキュメントを翻訳するブラウザは、ワイヤレスアプリケーションプロトコル（ＷＡＰ）の携帯電話ディスプレイ上のＷＭＬドキュメントを翻訳するブラウザとは異なる。
【０００５】
ブラウザ対応のデスクリプションは、ヒューマンインターフェイスの一部としてのコンピュータの出力装置上で、対応するビジュアルまたはオーディオレイアウトエレメントに従来ブラウザにより翻訳され得る。ＳＩＤＬにおいて、レイアウトエレメントは、一般には、“行(row)”、“セル(cell)”、“テーブル(table)”、“グリッド(grid)”等のようなアプリケーション独立の特性を有している。このようなレイアウトエレメントは、任意のアプリケーションの任意のコンテキスト(context)において再使用できる。
【０００６】
従来技術のヒューマンインターフェイスにおいては、ヒューマンインターフェイスは、ユーザインターフェイスが生じた後、その初期状態において頻繁に再翻訳(re-render)される。例えば、ユーザが、ヒューマンインターフェイスを通してデータを入力してそのデータをウェブアプリケーションにサブミットすることにより、ウェブアプリケーションと対話（interact）するときに、通常、データのサブミッションの後にヒューマンインターフェイスは初期値（例えばエンプティまたはデフォルトでのプリセット）を持つ全入力フィールドを示す。時々、ユーザが既になされた複数の入力から単一の入力を訂正することを単に欲するので、これは不便である。この場合、全ての前の入力は再び入力されなければならない。既になされた入力を更なる入力によって補充するときは、全ての前の入力は再び入力されなければならない。
【発明の開示】
【課題を解決するための手段】
【０００７】
従って、本発明は、コンピュータとのユーザの対話の後にヒューマンインターフェイスでユーザに入力指示する技術的課題を解決するためのコンピュータ実施の方法、コンピュータシステムおよびコンピュータプログラムプロダクト(product)を提供する。ここで、ヒューマンインターフェイスは、対話の前のそのステータスを“記憶(remembers)”する。このコンテキストにおける“記憶(remembers)”は、階層の拡張ステータスのような、レイアウトエレメントのステータスを保持する本発明のコンピュータシステムの能力を記述するために使用される。
【０００８】
説明の便宜のため、および本発明を限定する意図はないものとして、本発明の以下の説明では、ヒューマンインターフェイスはグラフィカルユーザインターフェイスであると仮定する。しかしながら、用語“レイアウトエレメント”は、以下ではグラフィカルレイアウトエレメントを表現するために用いられ、またボイスヒューマンインターフェイスにおける意味を有し、それは、特定の対話（相互のやりとり(interaction)）図式に付随するサウンド（例えば、話し言葉）のシーケンスに対応する。
【０００９】
本発明の好ましい実施形態による技術的課題に対する解法は、次の特徴により提供される。即ち、本発明のコンピュータシステムは、
ａ）データ入力についてユーザに入力指示するためのヒューマンインターフェイスデスクリプションを提供し、
ｂ）ユーザからデータを受け取る。ここで、上記データは、ヒューマンインターフェイスデスクリプションの少なくとも一つのレイアウトエレメントのステータスを備える。
任意的には、本発明のコンピュータシステムは、
ｃ）上記データを格納する。
【００１０】
好ましい実施形態において、ａ）のヒューマンインターフェイスデスクリプションを提供するとき、本発明のコンピュータシステムは、
ｄ）レイアウトテンプレートおよびデータデスクリプションを提供し、
ｅ）上記データデスクリプションからデータインスタンスを作成し、そして
ｆ）上記データインスタンスをレイアウトテンプレートと共にヒューマンインターフェイスデスクリプションにマージする。
【００１１】
従って、本発明の更なる利点は、ユーザが、ヒューマンインターフェイスを通じてデータを入力してそのデータをサブミットするとすぐに、データサブミッション(data submission)が発生する前と同じステータスを提示するヒューマンインターフェイスを用いて入力指示(prompt)されることである。例えば、ユーザが階層の或るノードに関するデータを入力するために階層を拡張したとき、データサブミッション後の階層の拡張ステータスはデータサブミッション前と同じままである。
【００１２】
ＸＳＬＴのようなスタイルシート言語変換が変換(transformation)またはコンバージョン(conversion)ルールを規定するために代わりに使用される本発明の記述における任意の個所で、当業者は、Ｊａｖａ（登録商標）のような任意のプログラミング言語でそれらのルールを実施することもできる。
【００１３】
本発明の特徴は、添付の特許請求の範囲において特に示された構成要素および組み合わせによって実現され且つ達成される。上述の概要および以下の詳細な説明は代表的なものであって説明的なものに過ぎず、且つ説明されるように本発明を制限するものではない。
【発明を実施するための最良の形態】
【００１４】
可能な限り、同一または類似するパーツを参照するために図面の全体にわたって同一の参照番号が使用されるであろう。説明の便宜上、最も重要な参照番号およびそれらの説明を本説明の文末の参照番号一覧にリストアップする。
【００１５】
図１は、複数のコンピュータ９００，９０１，９０２（または９０ｑ、ただし、ｑ＝０…Ｑ−１であり、Ｑは任意の数）を備える本発明のコンピュータネットワークシステム９９９の簡略化されたブロックダイアグラムを図示する。
【００１６】
コンピュータ９００−９０２は、コンピュータ間ネットワーク９９０を介して接続される。コンピュータ９００は、プロセッサ９１０、メモリ９２０、バス９３０を備え、且つ、随意的に入力装置９４０および出力装置９５０（Ｉ／Ｏ装置、ユーザインターフェイス９６０）を備える。図示されたように、本発明は、コンピュータプログラムプロダクト１００（ＣＰＰ）、プログラムキャリア９７０、およびプログラム信号９８０によって与えられ、これらを総じて“プログラム”と称す。
【００１７】
コンピュータ９００に関しては、コンピュータ９０１／９０２は、ときどき“リモートコンピュータ”として参照され、コンピュータ９０１／９０２は、例えば、サーバ、ルータ、ピア装置(peer device)、または他の共通ネットワークノードであり、一般に、コンピュータ９００に関連して述べた構成要素の多くまたは全部を備える。従って、コンピュータ９００における構成要素１００および９１０−９８０はまた、総じて、コンピュータ９０ｑにおいて、対応する構成要素１０ｑおよび９１ｑ−９８ｑ（ｑ＝０について示される）を示す。
【００１８】
コンピュータ９００は、例えば、従来型のパーソナルコンピュータ（ＰＣ）、デスクトップおよびハンドヘルド装置、マルチプロセッサコンピュータ、ペンコンピュータ、マイクロプロセッサベースまたはプログラマブルな家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、パーソナルモバイルコンピューティング装置、携帯電話、携帯型または固定型パーソナルコンピュータ、パームトップコンピュータ、またはその種の他のものである。
【００１９】
プロセッサ９１０は、例えば、中央演算処理装置（ＣＰＵ）、マイクロコントローラユニット（ＭＣＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、またはその種の他のものである。
【００２０】
メモリ９２０は、データおよび命令を一時的または恒久的に格納する要素を象徴する。メモリ９２０が都合よくコンピュータ９００の一部として図示されているが、メモリ機能は、ネットワーク９９０、コンピュータ９０１／９０２、およびプロセッサ９１０自体（例えば、キャッシュ、レジスタ）、またはその他においても提供され得る。メモリ９２０は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、または他のアクセスオプションを備えるメモリであってもよい。メモリ９２０は、コンピュータ読み取り可能な媒体によって物理的に提供され、例えば、（ａ）ハードディスク、フロッピーディスク（登録商標）のような磁気媒体、または他の磁気ディスク、テープ、カセットテープ、（ｂ）光ディスク（ＣＤ−ＲＯＭ、デジタルバーサタイルディスク−ＤＶＤ）のような光媒体、（ｃ）ＤＲＡＭ、ＳＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、メモリスティックのような半導体媒体、またはペーパー(paper)のような他の任意の媒体によってもよい。
【００２１】
状況に応じて、メモリ９２０は異なる媒体にわたって分散される。メモリ９２０の部分はリムーバブル(removable)または非リムーバブルであってもよい。コンピュータ９００は、媒体からの読み出しおよび媒体への書き込みを行うために、例えばディスクドライブ、テープドライブなどのような、この技術分野でよく知られた装置を使用する。
【００２２】
メモリ９２０は、例えば基本入出力システム（ＢＩＯＳ）、オペレーティングシステム（ＯＳ）、プログラムライブラリ、コンパイラ、インタプリタ、およびテキストプロセッシングツールのようなサポートモジュールを格納する。サポートモジュールは、市販されており、そして当業者によってコンピュータ９００上にインストールすることができる。簡単のため、これらモジュールは図示されていない。
【００２３】
ＣＰＰ１００はプログラム命令を備え、状況に応じて、本発明の方法ステップをプロセッサ９１０に実行させるデータを備える。方法ステップは、以下に更に詳細に説明される。換言すると、ＣＰＰ１００は、コンピュータ９００の動作と、ネットワークシステム９９９におけるその相互のやりとり(interaction)を規定する。例えば、制約する意図ではないが、ＣＰＰ１００は、任意のプログラミング言語におけるソースコードとして、且つコンパイルされた形式でのオブジェクトコード（“binary code”）として利用可能である。当業者であれば、上述のサポートモジュール（例えば、コンパイラ、インタプリタ、オペレーティングシステム）の任意のものとともにＣＰＰ１００を使用することができる。
【００２４】
ＣＰＰ１００は、メモリ９２０に格納されているように図示されているが、ＣＰＰ１００は他の場所に配置し得る。ＣＰＰ１００はまたキャリア９７０に具現されてもよい。
【００２５】
キャリア９７０は、コンピュータ９００の外部に図示されている。ＣＰＰ１００をコンピュータ９００に移すために、キャリア９７０は、都合よく入力装置９４０に差し込まれる。キャリア９７０は、概して上述した媒体（メモリ９２０参照）のような、任意のコンピュータ読み取り可能な媒体として実施される。一般に、キャリア９７０は、本発明の方法を実施するためにその中に具現されたコンピュータ読み取り可能なプログラムコード手段を備えるコンピュータ読み取り可能な媒体からなるメーカー品である。さらに、プログラム信号９８０はまた、コンピュータプログラム１００を具現し得る。信号９８０は、ネットワーク９９０上をコンピュータ９００に伝わる。
【００２６】
コンピュータ９００に結びつけて、ＣＰＰ１００、プログラムキャリア９７０、およびプログラム信号９８０を説明したことは都合がよい。状況に応じて、プログラムキャリア９７１／９７２（図示なし）およびプログラム信号９８１／９８２は、コンピュータ９０１／９０２においてプロセッサ９１１／９１２（図示なし）によって実行されるべきコンピュータプログラムプロダクト（ＣＰＰ）１０１／１０２をそれぞれ具現化する。
【００２７】
入力装置９４０は、コンピュータ９００による処理のためにデータおよび命令を提供する装置を象徴する。例えば、装置９４０は、キーボード、ポインティングデバイス（例えばマウス、トラックボール、カーソル方向キー）、マイクロホン、ジョイスティック、ゲームパッド、スキャナである。その例はヒューマンインタラクション(human interaction)を備える装置であるが、装置９４０は、ワイヤレスレシーバ（例えば衛星放送受信アンテナまたは地上波アンテナを備えるもの）、センサ（例えば温度計）、カウンタ（例えば工場における物品カウンタ）のように、ヒューマンインタラクションなしで動作することもできる。入力装置９４０は、キャリア９７０を読み取る役目を果たすこともできる。
【００２８】
出力装置９５０は、命令および処理されたデータを与える装置を象徴する。例えば、モニタまたはディスプレイ、ブラウン管（ＣＲＴ）、フラットパネルディスプレイ、液晶ディスプレイ（ＬＣＤ）、スピーカ、プリンタ、プロッタ、バイブレーション警報装置である。上述と同様に、出力装置９５０は、ユーザとコミュニケーションをとるが、さらにコンピュータと通信することもできる。
【００２９】
入力装置９４０および出力装置９５０は、単一の装置に一体化されることができ、装置９４０および９５０の何れも任意的(optional)に提供され得る。
【００３０】
バス９３０およびネットワーク９９０は、命令およびデータ信号を伝えることにより論理的および物理的接続を提供する。一方、コンピュータ９００内部の接続は、都合の良いことに、“バス９３０”として参照され、コンピュータ９００−９０２の間の接続は、“ネットワーク９９０”として参照される。状況に応じて、ネットワーク９９０は、データ伝送およびプロトコルコンバージョンを専門にするコンピュータであるゲートウェイを備える。
【００３１】
装置９４０および９５０は、バス９３０によって（図示するように）、またはネットワーク９９０によって（任意的）によって、コンピュータ９００に接続される。一方、コンピュータ９００内部の信号は大部分が電気的信号であり、ネットワークにおける信号は、電気的、磁気的、光学的またはワイヤレス（無線）信号である。
【００３２】
ネットワーク環境（ネットワーク９９０のような）は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネット（即ち、ワールドワイドウェブ）においては一般的である。リモートコンピュータとコンピュータ９００との間の物理的な距離は重要ではない。ネットワーク９９０は、有線または無線ネットワークでもよい。少しばかりのネットワーク実施の名称を挙げると、ネットワーク９９０は、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）；総合デジタル通信網（ＩＳＤＮ）、赤外（ＩＲ）リンク、無線リンク、ユニバーサルモバイルテレコミュニケーションシステム（ＵＭＴＳ）、グローバルシステムフォーモバイルコミュニケーション（ＧＳＭ）、符号分割多元接続（ＣＤＭＡ）、または衛星リンクである。
【００３３】
伝送プロトコルおよびデータフォーマットは、例えば、伝送制御プロトコル／インターネットプロトコル(TCP/IP; transmission control protocol/internet protocol)、ハイパーテキストトランスファプロトコル(HTTP; hyper text transfer protocol)、セキュアＨＴＴＰ(secure HTTP)、ワイヤレスアプリケーションプロトコル、ユニークリソースロケータ(URL; unique resource locator)、ユニークリソースアイデンティファイア(URI; unique resource identifier)、ハイパーテキストマークアップ言語HTML(hyper text markup language)、拡張マークアップ言語(XML; extensible markup language)、拡張ハイパーテキストマークアップ言語(XHTML; extensible hyper text markup language)、ワイヤレスアプリケーションマークアップ言語(WML; wireless application markup language)等として知られている。
【００３４】
上記要素間に接続されたインターフェイスもこの技術分野では良く知られている。簡単のためにインターフェイスは図示されていない。インターフェイスは、例えば、シリアルポートインターフェイス、パラレルポートインターフェイス、ゲームポート(game port)、ユニバーサルシリアルバス（ＵＳＢ）インターフェイス、内部または外部モデム、ビデオアダプター(video adaptor)、またはサウンドカード(sound card)である。
【００３５】
コンピュータおよびプログラムは、密接に関連している。以下で用いられるように、“コンピュータが提供する”および“プログラムが提供する”というような言い回しは、プログラムによって制御されるコンピュータによる動作を表現するための便利な省略形である。
【００３６】
本発明にとって、コンピュータプログラム、ファイル、またはドキュメントがコンピュータシステム９９９のどこに格納されているかは重要ではない。説明の便宜上、それらはコンピュータ９００のメモリ９２０に格納されているものとする。
【００３７】
図２は、ヒューマンインターフェイスデスクリプションを提供し且つ処理するための本発明の方法４００の好ましい実施形態の簡略化したフローチャートを図示する。
【００３８】
詳細な説明の全体にわたって使用されるヒューマンインターフェイスの例は、通覧(survey)アプリケーションの例である。会社の経理担当管理者は、他の管理者から会計年度２００２年の計画資料を手に入れることを欲する。このため、その経理担当管理者は、種々の質問グループ(question group)からなる通覧質問表(survey questionnaire)を作成する。各質問グループは、“計画コスト(planned cost)”または“計画収入(planned revenues)”のような特定の分野に言及する。各質問グループは、種々の質問を含むことができる。この例で用いられる質問は、質問グループ“計画コスト(planned costs)”に属し、そして“計画トラベルコスト２００２(planned travel costs 2002)：”を取り込む。その質問に対する入力を指示(prompt)された管理者は、対応する入力フィールドにおける質問のテキストの隣にかれらの計画データ(planning data)を入力し、そして該当する計画データを記入した後にそのデータをサブミットする。
【００３９】
デスクリプションにおいて用いられるプログラムコーディング部分を備える全ての表は、代表的なものであって説明的なものに過ぎず、且つ完全な機能のコンピュータプログラムを提供することを意図したものではない。
【００４０】
好ましくは、方法４００は、以下のステップａ）およびｂ）、即ち、
ａ）データ入力についてユーザに入力指示するためのヒューマンインターフェイスデスクリプション１６０を提供するステップ４７５と、
ｂ）ユーザからデータ１７０を受け取るステップ４８０とを備え、上記データ１７０は、ヒューマンインターフェイスデスクリプション１６０の少なくとも一つのレイアウトエレメント１２２，１２３，１２４-１，１２４−２，１２５，１２６，１２７のステータスを備える。
【００４１】
方法４００の好ましい実施形態は、上記提供ステップ４７５は、ステップｄ）からｆ）、即ち、
ｄ）レイアウトテンプレート１４０−１およびデータデスクリプション１４０−２を提供するステップ４５０と、
ｅ）データデスクリプション１４０−２からデータインスタンス１５０を作成するステップ４５０と、
ｆ）データインスタンス１５０をレイアウトテンプレート１４０−１と共にヒューマンインターフェイスデスクリプション１６０にマージするステップ４７０と
をさらに備える。
方法４００は、任意的なステップ、即ち
ｃ）データ１７０を格納するステップ４８５（破線）
をさらに備える。
【００４２】
ここで上記ステップを詳細に説明する。
提供ステップ４７５において、コンピュータシステム９９９（図１参照）は、ヒューマンインターフェイスデスクリプション１６０（図４参照）を提供し、従来のブラウザは、出力装置９５０（図１参照）上でヒューマンインターフェイスデスクリプション１６０を翻訳してユーザに入力指示する。提供ステップ４７５の好ましい実施形態の詳細は、図３に基づき説明される。好ましくは、ヒューマンインターフェイスデスクリプション１６０は、ＸＨＴＭＬのようなマークアップ言語で記述される。表１Ａ，１Ｂは、通覧の例におけるヒューマンインターフェイスデスクリプション１６０のＸＨＴＭＬの例を示す。ＸＨＴＭＬ命令は、この技術分野では知られており、従って詳細に説明しない。以下のライン番号は表１Ａ，１Ｂを引用する。ライン４は、二つのファンクション（例えばジャバスクリプトファンクション）を表す。ファンクションａ）は、ヒューマンインターフェイスデスクリプション１６０がロードされたときにカーソル位置を設定する。ファンクションｂ）は、ユーザがヒューマンインターフェイス９５１（図５参照）を通してデータをサブミットするときに現在のカーソル位置を決定する。さらに、ファンクションｂ）は、ヒューマンインターフェイスデスクリプション１６０（ライン１０）における第１の入力フィールド命令にカーソル位置の値を送る。好ましくは、第１の入力フィールドは隠されたフィールド(hidden field)である。ネーム属性“//survey/planned_costs/travel”（ライン１９）を備える第２の入力フィールド命令は、ＬＥフィールド入力(LE FieldInput)１２５に対応する。各入力フィールドは、データ１７０のデータセット（図４参照）を表す。
【００４３】
【表１Ａ】
0004647208.tif 000002
【００４４】
【表１Ｂ】
0004647208.tif 000003
【００４５】
コンピュータシステム９９９はヒューマンインターフェイスデスクリプション１６０を翻訳するとき、ユーザは、図５に示されるレイアウトエレメントに類似した構成を有するスクリーンで入力指示される。ユーザは、ＬＥテキスト出力(LE TextOutput)１２５（ライン１５）にある質問テキストを読み、そしてＬＥフィールド入力(LE FieldInput)１２５にデータを入力することが期待され、それは第２の入力フィールド命令に対応し、そこにデフォルト値１２５−１（図５、“０．０”参照）が表示される（ライン１９）。もし、一つよりも多くの質問が表示されれば、ユーザは、一つ以上のデータ入力を実行することができる。全てのデータ入力を終えた後、ユーザは、データ１７０（図４；表２参照）をサブミットする。例えば、データ１７０のサブミッションは、入力装置９４０（図１参照）上で“ENTER”キーを選択することにより実行される。
【００４６】
データ受取ステップ４８０において、コンピュータシステム９９９のコンピュータ（例えばコンピュータ９００、図１参照）は、ユーザインターフェイス９６０（図１参照）を介してユーザからデータ１７０を受け取る。データ１７０は少なくとも一つのデータセットを備える。
【００４７】
好ましくは、データ１７０は、データ１７０（表２参照）の各データセットについてネームおよび値を含むフォーマットで受け取られる。好ましくは、各データのネームは、Ｘパスに対応する。
【００４８】
Ｘパス（ＸＭＬパス言語）は、ドキュメントの論理的構造または階層を通してパスに基づくアドレッシングシンタックスを用いることによりＸＭＬドキュメントにおいて項目を捜し出して処理するための方法を記述する言語である。Ｘパス言語は、“Ｘパス  Ｗ３Ｃ  勧告  バージョン１．０、１９９９年１１月１６日”に述べられている。Ｘパスはまた、より高い抽出(abstraction)レベルでアプリケーションプログラマがドキュメントを取り扱うことを可能にする。Ｘパスは、ＸＳＬＴおよびＸポインタ（ＳＭＬポインタ言語）の双方によって使用され且つそれら双方の一部として特定される言語である。それは、ＸＭＬ情報セット(Infoset)において規定された情報アブストラクションを使用する。Ｘパスは、ＸＭＬシンタックス自体を使用しないので、ＸＭＬ以外のコンテキストにおいては使用できない。
【００４９】
表２は、通覧の例におけるデータ１７０を示す。
表２の各行は、データ１７０のデータセットに対応する。この例では、各データセットのネームはＸパス(Xpath)である。
【００５０】
【表２】
0004647208.tif 000004
【００５１】
第１のデータセット（表２、ライン２）は、第１の入力フィールド命令に対応し、そしてレイアウトエレメントページ(layout element page)１２７のステータス情報を表す（表１Ａ、ライン１０、図５参照）。レイアウトエレメントのステータスは、ユーザがデータ１７０をサブミットした時点でのレイアウトエレメントについての情報を備える。通覧の例において、ＬＥページ(LE page)１２７のステータスは、ページ１２７（図５参照）上のカーソルの位置である。ユーザが一つよりも多くのＬＥフィールド入力(LE FieldInput)１２５（図５参照）にデータを入力すれば、カーソルは、通常、最後のデータ入力を受け取ったＬＥにとどまる。説明の便宜上、ＬＥフィールド入力(LE FieldInput)１２５のみを考慮する。この場合、ＬＥページ(LE page)１２７のステータス“cursorPos”は、ＬＥ１２５に特有のポインタである。このようなポインタは、各ＬＥについて特有なＩＤとして実施できる。通覧の例において、データパス“/survey/planned_costs/travel”（表２のライン２の値カラム参照）は、ＬＥフィールド入力(LE FieldInput)１２５について特有のＩＤとしての役目を果たす。ユーザがデータ１７０をサブミットするときにカーソルがＬＥにあると仮定すれば、ページ１２７のステータスcuesorPosは、ヒューマンインターフェイスデスクリプション１６０の第１の入力フィールド命令において“/survey/planned_costs/travel”に設定される。このことは、カーソル位置を決定し且つカーソル位置の値をドキュメント１６０の第１の入力フィールド命令に送るファンクションｂ）（表１Ａ、ライン４ｂ参照）を用いることにより達成される（表１Ａ、ライン１０参照）。第１の入力フィールド命令の内容は、データ１７０（表２、第２行のデータセット参照）の一部である。好ましくは、第１の入力フィールド命令のネーム属性“//env:envelope/env:states/uicl:page/@cursorPos”は、データインスタンス１５０における“state”位置(<env:states>;表２、ライン６参照)に対応する。データインスタンス１５０を用いることにより個々のドキュメ
ントデスクリプション１６０をどのようにして提供するかは、図３に基づき詳細に説明される。
【００５２】
任意的なデータ格納ステップ４８５（破線）において、データ１７０はメモリに格納される。好ましくは、データ１７０はデータインスタンス１５０に格納される。この場合、表２のネームカラムにおけるＸパスは、データインスタンス１５０の構成（表３参照）に準拠し、各データセットの対応する値の格納場所を示す。
【００５３】
値(value)＝“/survey/planned_costs/travel”は、ページ１２７の属性cursorPos（表３、ライン７参照）の値として、state”位置(<env:envelope><env:states><uicl:page … cursorPos=″…″>（表３、ライン６−９参照）に格納される。任意的に、データ１７０はまた、他の場所（例えば、コンピュータシステム９９９の任意のメモリ９２０，９２１，９２２）に格納してもよい。個々のドキュメントデスクリプション１６０が、少なくとも２回目に翻訳されると、ファンクションａ)（表１Ａ、ライン４ａ参照）は、データインスタンス１５０からページ１２７のレイアウトエレメントステータス情報を読み出すために実行され、そしてそれに応じてカーソル位置を設定する。
【００５４】
任意的に、計画トラベルコストについてのデータ１７０の第２のデータセット（表３、第３行参照）は、対応する位置でのデータインスタンスに格納される。通覧の例において、データインスタンス１５０における格納場所は、表２のネームカラム（例えば“//survey/planned_costs/travel”）から自動的に知られる。対応する値（“５０００”、ライン１３）は、ユーザによって計画トラベルコストとして入力される。
【００５５】
好ましくは、データインスタンス１５０は、ＸＭＬドキュメントのようなマークアップ言語である。表３は、通覧の例におけるデータインスタンス１５０のＸＭＬの例を与える。以下のライン番号は表３を引用する。表３は、そのヘッダ（ライン３，５）にランタイム依存データのユーザネーム（“USER1”、ライン４）を備えるＸＭＬエンベロープ（ライン２，１７）を図示し、一方、データデスクリプション（ライン１１−１３）は、その本体(body)（ライン１０，１６）を形成する。レイアウトエレメントステータス情報はライン６−９に格納される。エンベロープネームスペースは、接頭辞“env:”により表される。
【００５６】
任意的に、データを格納した後、またはデータを格納する前に、データ１７０は
図３におけるマージステップ４７０のデスクリプションと同様に、インターフェイス１５５を使用することにより、アプリケーションプログラム（例えば、コンピュータプログラム１０１、図１参照）により処理され得る。
【００５７】
【表３】
0004647208.tif 000005
【００５８】
図３は、提供ステップ４７５の詳細を例示する。
提供ステップ４７５は、更なるステップ、即ち、
ｄ）レイアウトテンプレート１４０−１（図４参照）およびデータデスクリプション１４０−２（図４参照）を提供するステップ４５０と、
ｅ）データデスクリプション１４０−２からデータインスタンス１５０（図４参照）を作成するステップ４６０と、
ｆ）データインスタンス１５０をレイアウトテンプレート１４０−１と共にヒューマンインターフェイスデスクリプション１６０（図４参照）にマージするステップ４７０と
を備える。
【００５９】
ステップｄ）からｆ）をここで詳細に説明する。
提供ステップ４５０において、コンピュータシステム９９９は、レイアウトテンプレート１４０−１およびデータデスクリプション１４０−２を提供する。例えば、レイアウトテンプレート１４０−１およびデータデスクリプション１４０−２はメモリ９２０（図１参照）から読み出される。
【００６０】
好ましくは、レイアウトテンプレート１４０−１はＸＳＬＴのようなスタイルシート言語変換であり、それはレイアウト情報と共にＸＳＬ命令を備える。これらの命令は、データインスタンス１５０のような、データを備えるＸＭＬドキュメントに適用される。表４は、通覧の例において使用されるレイアウトテンプレート１４０−１を示す。
レイアウトテンプレート１４０−１のファンクションは、図３のマージステップ４７０の記述において詳細に説明される。
【００６１】
【表４】
0004647208.tif 000006
【００６２】
好ましくは、データデスクリプションドキュメント１４０−２はＸＭＬのようなマークアップ言語で記述される。通覧の例において使用されるデータデスクリプション１４０−２は表５に示される。以下のライン番号は表５を引用する。ライン１はＸＭＬドキュメントである。ライン２−４は、デフォルト値“０．０”（ライン４参照）のデータパス“//survey/planned_costs/travel”を規定する。閉タグ</…>（ライン４から６）はデータパスの規定を完結する。
【００６３】
【表５】
0004647208.tif 000007
【００６４】
インスタンス作成ステップ４６０において、コンピュータシステム９９９は、結果としてデータインスタンス１５０（表３参照）になる更なるランタイム依存データ（ランタイム中に生成または修正されたデータ）により、データデスクリプション１４０−２を補充する。ランタイム依存データの例は、ユーザネーム、ドキュメント生成日、セッションＩＤ、エラーメッセージ、レイアウトエレメントステータスなどである。
【００６５】
必要に応じて、データインスタンス１５０は、例えば、アプリケーションプログラム（例えばコンピュータ９０１上のコンピュータプログラム１０１）により修正される。これは、インターフェイス１５５を通して達成される。例えば、コンピュータシステム９９９（図１参照）は、インターフェイス１５５を通してアプリケーションプログラムにデータインスタンス１５０（例えばコンピュータ９００）のデータを転送し、そしてデータインスタンス１５０は、インターフェイス１５５を通してアプリケーションプログラムから修正されたデータを受け取る。利点は、データインスタンス１５０のアプリケーション特定初期化(application specific initialization)である。例えば、通覧の例において、ユーザ（例えば、USER1、表３のライン４参照）は、会計年度のための計画トラベルコスト(planned travel costs)を入力することを欲する。対応するデータデスクリプション１４０−２から導き出されるデフォルト値は、“０．０”（表３、ライン９参照）である。この例において、アプリケーションプログラムは、前会計年度のユーザの実際のトラベルコストを知っている。アプリケーションプログラムはインターフェイス１５５を通して呼び出され、そして前のトラベルコストについての質問を実施する。結果値はインターフェイス１５５を通してデータインスタンス１５０に戻され、そして古いデフォルト値を置き換える。
【００６６】
マージステップ４７０において、レイアウトテンプレート１４０−１は、データインスタンス１５０に適用される。好ましくは、これは、レイアウトエレメント情報がデータとマージされたデータインスタンス１５０のスタイルシート変換（表４参照）に対応する。説明の便宜上、結果として生じるヒューマンインターフェイスデスクリプション１６０は、例として表１Ａのライン１９における第２の入力フィールド命令を用いることにより議論される。なぜなら、それはレイアウト情報およびデータの双方を備えるからである。以下のライン番号は、明示的な表の引用を除いては表４（レイアウトテンプレート１４０−１）を引用する。
【００６７】
ライン１１−１５は、表１Ａのライン１９を生じる。ライン１１は、ネーム属性“//survey/planned_costs/travel”およびタイプ属性“text”を備える第２の入力フィールド命令を生じる。ライン１２，１４は値属性を規定する。ライン１３は、データパスとして“//env:envelope/env:body/survey/planned_costs/travel”を備える場所から値属性の値を得るための命令を備える。この命令がデータインスタンス１５０に適用される場合には、対応する値（表３、ライン１３参照）は、第２の入力フィールド命令の値属性の値として読み取られる。ヒューマンインスタンスデスクリプション１６０は、通覧の例において初めてデータインスタンス１５０とマージされ、その値は、データデスクリプション１４０−２からのデフォルト値“０．０”であるか、またはインターフェイス１５５を通してアプリケーションプログラムによって修正された値である。そのマージングは、ユーザがデータ１７０をサブミットした後に実施され、その値は、データインスタンス１５０に格納されたユーザ入力“５０００”（表３のライン１３参照）、またはインターフェイス１５５を通してアプリケーションプログラムによって修正された値である。
【００６８】
図４は、本発明によるドキュメントおよびデータの処理を図示する。
ユーザは、ヒューマンインターフェイスデスクリプション１６０を用いることにより、データ１７０をサブミットする。データ１７０は、少なくとも一つのレイアウトエレメント１２２，１２３，１２４−１，１２４−２，１２５，１２６，１２７（図５参照）のステータス情報を備える。コンピュータシステム９９９（図１参照）はデータ１７０を受け取る（４８０）。任意的に、コンピュータシステム９９９は、データインスタンス１５０にデータ１７０を格納する（４８５）。データインスタンス１５０は、インターフェイス１５５を介してアプリケーションプログラム（例えばコンピュータプログラム１０１、図１参照）により修正され得る。好ましくは、コンピュータシステム９９９は、レイアウトテンプレート１４０−１をデータインスタンス１５０とマージすることにより（４７０）、ヒューマンインターフェイスデスクリプション１６０を提供する。好ましくは、データインスタンス１５０は、データデスクリプション１４０−２から作成される。
【００６９】
図５は、ヒューマンインターフェイス９５１上の個々のドキュメントデスクリプション１６０のビジュアル表現を図示する。
【００７０】
通覧の例において、個々のドキュメントデスクリプション１６０のＸＨＴＭＬ命令（表１Ａ，１Ｂ参照）は、結果として、レイアウトエレメントのページ(page)１２７、グリッド(grid)１２２、行(row)１２３、セル(cell)１２４−１，１２４−２、テキスト出力(TextOutput)１２６、フィールド入力(FieldInput)１２５、および属性１２５−１を生じる。好ましくは、従来のブラウザは、個々のドキュメントデスクリプション１６０を翻訳して、出力装置９５０（図１参照）上でフィールド１２５へのデータ入力のためのヒューマンインターフェイス９５１でユーザに入力指示する。
【００７１】
本発明は、コンピュータ実施の方法４００として説明されたので、ここで本発明はコンピュータシステム９９９として説明される。
【００７２】
本発明のコンピュータシステム９９９は、ヒューマンインターフェイスデスクリプションを提供し且つ処理する。
コンピュータ９００（図１参照）はオペレーティングコンピュータ(operating computer)であるとする。当業者であれば、サーバコンピュータ（例えば、コンピュータ９０１、図１参照）がデータ処理のために使用され且つクライアントコンピュータ（例えば、コンピュータ９００、図１参照）がユーザ用のフロントエンドコンピュータとして動作するところのクライアントサーバシステムにおいても本発明を実施することができる。
【００７３】
コンピュータシステム９９９の好ましい実施形態は、次の手段、即ち、
ａ）データ入力についてユーザに入力指示するためのヒューマンインターフェイスデスクリプション１６０（図４参照）を提供するステップ４７５（図２参照）のための手段と、
ｂ）上記ユーザからデータ１７０（図４参照）を受け取るステップ４８０（図２参照）のための手段とを備え、上記データ１７０は、ヒューマンインターフェイスデスクリプション１６０の少なくとも一つのレイアウトエレメント１２２，１２３，１２４−１，１２４−２，１２５，１２６，１２７を備える。
【００７４】
好ましくは、手段ａ）は、メモリ９２０からヒューマンインターフェイスデスクリプション１６０を読み取るためのコンピュータプログラムおよびコンピュータのプロセッサ（例えばコンピュータ９００のプロセッサ９１０）によって実行されるマイクロソフト（登録商標）インターネットエクスプローラまたはネットスケープ（登録商標）ナビゲータのような在来のブラウザを備える。ブラウザは、ヒューマンインターフェイスデスクリプション１６０を翻訳し、そしてその結果をヒューマンインターフェイス９５１（図５参照）として出力装置９５０（図１参照）上に表示する。好ましくは、ヒューマンインターフェイス９５１は、ヒューマンインターフェイス９５１を通してデータ１７０を入力するようにユーザに入力指示する。ユーザは、入力装置９４０（図１参照）を介してデータを入力する。例えば、ユーザは、マウスによりヒューマンインターフェイス９５１において表示された入力フィールドを選択し、そしてキーボードまたは同等のマイクロホンによりデータを入力する。ヒューマンインターフェイスデスクリプション１６０におけるファンクション（例えばジャバスクリプト（登録商標）ファンクション）は、少なくとも一つのレイアウトエレメント１２２，１２３，１２４−１，１２４−２，１２５，１２６，１２７（図５参照）のステータスを決定し、そして、好ましくは、そのステータスをヒューマンインターフェイスデスクリプション１６０の第１の入力フィールド命令（表１Ａ、ライン１０参照）に転送する。第１の入力フィールド命令の内容は、サブミットされたデータ１７０の一部になる。好ましくは、データ１７０は、表１Ａ，１Ｂに従うフォーマットを有する。データ１７０の他のデータセットのように、好ましくは、ステータスもまたＸパス(XPath)でのネームを備える。
【００７５】
好ましくは、手段ｂ）は、コンピュータ９００の基本入出力システム（ＢＩＯＳ）およびブラウザを備える。ＢＩＯＳは、バス９３０（図１参照）を通して入力装置９４０から信号を受け取る。例えば、その信号は、出力装置９５０上でブラウザによって適切に表示されプレイされ得るキャラクターまたはビットマップまたは任意の他のパターンとして翻訳される。ユーザによってデータ１７０のサブミッションがなされると（例えば、在来のキーボードのENTERキーを用いることにより）、コンピュータ９００は、バス９３０を介してデータ１７０を受け取る。
【００７６】
任意的に、好ましい本実施形態においては、コンピュータシステム９９９は、
ｃ）データ１７０（図４参照）を格納するステップ４８５（図２参照）のための手段をさらに備える。好ましくは、手段ｃ）は、ストレージプログラムおよびＸＭＬドキュメントを備える。ストレージプログラムは、ＸＭＬドキュメント（例えばデータインスタンス１５０；図４参照）に属するメモリ９２０のランタイムメモリ部にデータ１７０を自動的に格納(storage)する。好ましくは、正確なストレージアドレスは、表２の各データセットの名の下にＸパスから導き出される。
【００７７】
好ましい実施形態において、手段ａ）は、さらに手段ｄ）、ｅ）およびｆ）、即ち、
ｄ）レイアウトテンプレート１４０−１およびデータデスクリプション１４０−２を提供するステップ４５０のための手段と、
ｅ）データデスクリプション１４０−２からデータインスタンス１５０（図７参照）を作成するステップ４６０（図２参照）のための手段と、
ｆ）データインスタンス１５０をレイアウトテンプレート１４０−１と共にヒューマンインターフェイスデスクリプション１６０（図７参照）にマージするステップ４７０（図２参照）のための手段とを備える。
【００７８】
好ましくは、手段ｄ）は、コンピュータシステム９９９の内部（例えば、メモリ９２０）または外部の何れかの格納場所からレイアウトテンプレート１４０−１およびデータデスクリプション１４０−２を読み出し、且つレイアウトテンプレート１４０−１およびデータデスクリプション１４０−２を、手段ｅ）およびｆ）によりアクセスされ得るコンピュータシステム９９９のメモリ（例えば、メモリ９２０）に格納するコンピュータプログラムである。
【００７９】
好ましくは、手段ｅ）は、メモリ９２０からデータデスクリプション１４０−２を読み出し、且つデータデスクリプション１４０−２のデータにランタイム依存データを加えることによりメモリ９２０（例えばランタイムデータを格納するためのＲＡＭ）のランタイム部にデータインスタンスドキュメント１５０を生成するコンピュータプログラムである。ランタイム依存データは、例えば、ランタイム中に、アプリケーションプログラム（例えば、コンピュータ９０１上の１０１、図１の記載参照）により、生成または修正される。表３は、データインスタンス１５０の例を示し、それはマークアップ言語ドキュメントとして実施される。
【００８０】
好ましくは、手段ｆ）は、レイアウトテンプレート１４０−１を備え、それは、この例においてはスタイルシート言語変換ドキュメント（表４参照）である。プロセッサ９１０は、メモリ９２０からレイアウトテンプレート１４０−１を読み取り、そしてそれをデータインスタンス１５０に適用する。その結果は、個々のヒューマンインターフェイスデスクリプション１６０（表１Ａ，１ＢにおけるＸＨＴＭＬの例を参照）であり、それはメモリ９２０のランタイム部に格納される。
【００８１】
本発明はコンピュータ実施の方法４００およびコンピュータシステム９９９として説明されたので、ここで本発明は、コンピュータ読み取り可能なデータキャリア９７０（図１参照）上に格納可能なコンピュータプログラムプロダクト１００（図１参照）として説明される。
【００８２】
コンピュータプログラムプロダクト１００は、コンピュータ（例えば、コンピュータ９００）のプロセッサ（例えば、プロセッサ９１０）にヒューマンインターフェイスデスクリプションを生成させ且つ処理させるための複数の命令を備える。コンピュータプログラムプロダクト１００は、コンピュータ９００に以下のステップａ）およびｂ）、即ち、
ａ）データ入力についてユーザに入力指示するためのヒューマンインターフェイスデスクリプション１６０を提供するステップ４７５と、
ｂ）上記ユーザからデータ１７０を受け取るステップ４８０を実行させ、ここで、上記データ１７０は、ヒューマンインターフェイスデスクリプション１６０の少なくとも一つのレイアウトエレメント１２２，１２３，１２４−１，１２４−２，１２５，１２６，１２７のステータスを備える。
【００８３】
コンピュータプログラムプロダクト１００は、コンピュータ９００に任意的なステップ、即ち、
ｃ）データ１７０を格納するステップ４８５
をさらに実行させる。
【００８４】
本発明の好ましい実施形態において、コンピュータプログラムプロダクト１００は、コンピュータ９００に、以下のサブステップｄ）からｆ）、即ち、
ｄ）レイアウトテンプレート１４０−１およびデータデスクリプション１４０−２を提供するステップ４５０と、
ｅ）データデスクリプション１４０−２からデータインスタンス１５０を作成するステップ４６０と、
ｆ）データインスタンス１５０をレイアウトテンプレート１４０−１と共にヒューマンインターフェイスデスクリプション１６０にマージするステップ４７０と
を通して、提供ステップａ）を実行させる。
【００８５】
コンピュータプログラム１００のステップａ）からｆ）は、図２および３に基づき詳細に説明された方法４００のステップａ）からｆ）と等価である。
コンピュータプログラムプロダクト１００は、コンピュータ読み取り可能なデータキャリア（例えば、データキャリア９７０）に格納してもよい。
【００８６】
【表６】
0004647208.tif 000008
【図面の簡単な説明】
【００８７】
【図１】本発明のコンピュータネットワークシステムの簡略化したブロックダイアグラムを図解する図である。
【図２】ヒューマンインターフェイスデスクリプションを提供し且つ処理するための本発明の方法の好ましい実施形態の簡略化されたフローチャートを図解する図である。
【図３】方法ステップの詳細を図解する図である。
【図４】本発明によるドキュメントおよびデータの処理を図解する図である。
【図５】ヒューマンインターフェイスデスクリプションのビジュアル表現を図解する図である。
【図１】
0004647208.tif 000009
【図２】
0004647208.tif 000010
【図３】
0004647208.tif 000011
【図４】
0004647208.tif 000012
【図５】
0004647208.tif 000013