JP4718747B2 - ユーザインターフェイスを生成するためのエキスパートシステム - Google Patents

ユーザインターフェイスを生成するためのエキスパートシステム Download PDF

Info

Publication number
JP4718747B2
JP4718747B2 JP2002051972A JP2002051972A JP4718747B2 JP 4718747 B2 JP4718747 B2 JP 4718747B2 JP 2002051972 A JP2002051972 A JP 2002051972A JP 2002051972 A JP2002051972 A JP 2002051972A JP 4718747 B2 JP4718747 B2 JP 4718747B2
Authority
JP
Japan
Prior art keywords
user interface
user
application
expert system
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002051972A
Other languages
English (en)
Other versions
JP2003015874A5 (ja
JP2003015874A (ja
Inventor
ミクソフスキー ジャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003015874A publication Critical patent/JP2003015874A/ja
Publication of JP2003015874A5 publication Critical patent/JP2003015874A5/ja
Application granted granted Critical
Publication of JP4718747B2 publication Critical patent/JP4718747B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般にエキスパートシステムに関し、より詳細には、ユーザインターフェイスデザイナの意図をアプリケーションから受信し、この意図を、ユーザインターフェイス設計のガイドライン、規定および原理の形で実施されるような、ユーザインターフェイスの分野におけるエキスパートの知識に基づく1組のプログラムのルールからユーザインターフェイスを生成するための意思決定を行うことによって実現する1つのソフトウェアに関する。
【0002】
(関連出願の相互参照)
なお、本願は、2001年2月27日出願の米国仮特許出願第60/272,006号の特典を主張し、これを参照により明白に本明細書に組み込んだものである。
【0003】
【従来の技術】
ユーザインターフェイスは、プログラムまたはオペレーティングシステムの一部分であり、これを介してユーザがコンピューティングデバイスに結果に到達するように命令することができ、かつこれを介してデバイスが情報をユーザに運ぶことができる。コンピューティングデバイスの例は、コンピュータ、電話などの携帯用電子デバイス、およびインタラクティブテレビユニットである(以下で、コンピュータという用語を使用して、一般にすべてのコンピューティングデバイスを指す)。
【0004】
グラフィカルユーザインターフェイスは、コンピュータのモニタまたは他のタイプのディスプレイ(テレビなど)を出力デバイスとして、および、ディスプレイに影響を及ぼす1つまたは複数の入力デバイス、通常はコンピュータのキーボード、およびマウスなどのポインティングデバイスを使用するユーザインターフェイスである。コンピュータはスクリーンにおいて情報をユーザに表示する。スクリーンは、ディスプレイの閲覧可能な領域全体を取り上げることができ、あるいは、視聴可能な領域の一部のみをウィンドウの形式において取り上げることができる。別のユーザインターフェイスの実施例はオーディオユーザインターフェイスであり、これはユーザがマイクロフォン入力デバイスを介してコンピュータに話し、コンピュータがスピーカ出力デバイスを介して応答するものである。いくつかのユーザインターフェイスは、複数の対話のモード(たとえば、グラフィカルおよびオーディオ)をサポートする。
【0005】
ソフトウェアプログラマはユーザインターフェイスをプログラミング言語により作成し、これによりコンピュータの入力および出力デバイスへのアクセスが可能になる。しかし、これらのユーザインターフェイスを初めから作成する必要はない。たとえば、図1を参照すると、ユーザインターフェイスルーチンの集まりを、Microsoft Windows(登録商標)オペレーティングシステム118(以下「Windows(登録商標)118」)など、オペレーティングシステムに常駐するライブラリ(図示せず)に記憶することができる。ライブラリにおけるユーザインターフェイスルーチンを呼び出すため、ソフトウェアプログラマは関数呼出しを配置し、プログラム116における適切な場所でライブラリにおいて対応するルーチンを呼び出す。プログラム116を動作中であるコンピュータが関数呼出しに来たとき、コンピュータが関数呼出しを実行し、関数呼出しを、ライブラリにおいて対応するユーザインターフェイスルーチンからのサービスのための要求に変換する。
【0006】
各関数呼出しは、入力引数のセットを含む。入力引数は、関数呼出しがコンピュータによって実行されたとき、対応するユーザインターフェイスルーチンに沿って渡される。各ルーチンはユーザインターフェイスを、ダイアログボックス120など、特定のテンプレートから提示するように設計され、これはユーザからの応答を処理する特殊なウィンドウである。入力引数は、ダイアログボックス120の提示に影響を与えることができる情報を提供する。各関数呼出しは、1つのルーチンにおいて単一のテンプレートとの1対1の対応を有する。各関数呼出しについて、特定のテンプレートの正確なインスタンスが現れるという期待がある。逸脱がある可能性はなく、これは、いかなる逸脱もWindows(登録商標)118においてバグと見なされるからである。
【0007】
図2ないし図5は、メッセージボックス124〜130を例示し、これらはあるタイプのダイアログボックス120である。各メッセージボックスが形成される元のテンプレートはタイトルバー102を含み、これはメッセージボックスの最上部にある水平のスペースであり、メッセージボックスの名前を含むものであり、また、閉じるボタン104を含み、これは通常はタイトルバーの右隅に位置し、その上にxマークが付いている正方形のボタンである。メッセージボックス用のテンプレートは、メッセージを含むためのスクリーン106、ならびにユーザがメッセージボックスと対話することができる1つまたは複数のボタンも含む。
【0008】
図2におけるメッセージボックス124は、メッセージ「Hello world!」を、OKボタン108と共にユーザに提示する。図2のメッセージボックス124を作成するための関数呼出しは、messageBox(「Hello World!」、OK)という形式にすることができ、これは「messageBox」という名前および2つの入力引数「Hello World」および「OK」を有する関数呼出しである。
【0009】
図3のメッセージボックス126は、図2のメッセージボックス124に類似している。ただし、図3のメッセージボックス126は、キャンセルボタン110も含んでいる。
【0010】
図3のメッセージボックスの126を作成するための関数呼出しは、messageBox(「Hello World!」、OK_CANCEL)という形式を有することができる。
【0011】
図4のメッセージボックス128は、図2および図3のメッセージボックス124、126と同様に、メッセージ「Hello World!」を含む。この違いは、図4のメッセージボックス128はYESボタン114、NOボタン112、ならびにキャンセルボタン110を含むが、OKボタン108を含んでいないことである。メッセージボックス128を作成するための関数呼出しは、messageBox(「Hello World!」、YES_NO_CANCEL)という形式を有することができる。
【0012】
図5のメッセージボックス130を作成する関数呼出しへの入力引数は、長いテキスト文字列「Call me Ishmael...」およびOKボタン108を含む。図5のメッセージボックス130を作成する関数呼出しに対応するユーザインターフェイスルーチンは、図5のメッセージボックス130の垂直のスペースを増大して、長いテキスト文字列を収容するようにする。図5のメッセージボックス130を作成するための関数呼出しの形式は、messageBox(「Call me Ishmael...」、OK)など、シグネチャを含む。
【0013】
図2ないし図5は、関数呼出しmessageBox(...)がプログラム116から作成され、Windows(登録商標)118におけるmessageBoxテンプレートが、メッセージボックス124〜130を作成するために使用されることを例示している。メッセージボックステンプレートの修正は、ある情報を、入力引数を介して関数呼出しmessageBox(...)へ供給することによって行うことができるが、修正されたメッセージボックスはなお一種のメッセージボックスであり、Windows(登録商標)118によって逸脱が行われることはない。
【0014】
ユーザインターフェイスは、直接、ソフトウェアプログラマが使用するプログラミング言語において、図1ないし図5を参照して上述したように構築することができるが、これらはよりしばしば、専用ユーザインターフェイス開発ツールを使用して構築される。たとえば、グラフィカルユーザインターフェイスはしばしば、フォームパッケージと呼ばれるツールを使用して構築される。フォームパッケージは通常プログラマに、ユーザが見るであろうものを近似するスクリーン(フォームとも呼ばれる)を提示する。フォームパッケージにより、プログラマは個別のグラフィカルユーザインターフェイスコントロール(たとえば、ボタン、テキストエントリボックス、リストボックス)をスクリーンに追加することができ、コントロールをスクリーン上で配置することができる。
【0015】
また、フォームパッケージにより、プログラマは、どのようにスクリーンおよびそのコントロールが、ユーザがボタンコントロール上をマウスによりクリックしたときなど、ユーザのアクションに反応するべきであるかを指示することもできる。通常、プログラマは、コンピュータコードにルーチンを書き込み、次いでスクリーン上のコントロールをこれらのルーチンに接続することによって、これらの反応を明示的に定義する。次いで、特定のユーザイベントが、関連付けられたコードルーチンの実行をトリガする。
【0016】
プログラム用のグラフィカルユーザインターフェイスは、1つまたは複数のスクリーンからなる可能性がある。フォームパッケージによって、プログラマは、何のスクリーンをプログラマが望むとしてもそれによりユーザインターフェイスを構築する際に完全な自由が可能となる。
【0017】
しかし、この自由には複数のミスをおかす可能性が付いてくる。プログラマは、そのユーザが適切に理解かつ使用するためには複雑すぎるユーザインターフェイスを作成する可能性がある。プログラマは、不注意により、バグのあるユーザインターフェイスを作成する可能性がある。バグの一例は、可能な入力条件の範囲全体を正しく処理できないことである。
【0018】
問題の見込みを減らすために、プログラマは通常、手動でユーザインターフェイスのガイドラインおよびデファクトな規定に従うことを学んでおり、これらは、どのようにユーザインターフェイスが現れ、どのような挙動を示すべきであるかを提案するものである。
【0019】
たとえば、図13は、グラフィカルユーザインターフェイスにおけるあるタイプのスクリーンであり、ユーザが4項目のうち1つを選択するように求められるものである。ウィンドウ702はテキスト704を含み、これがユーザに対してオプションボタン706、708、710および712から選択を行うように指図する。この例では、オプションボタン706が選択された状態で図示される。オプションボタン706、708、710および712のうちただ1つのみを、所与の時間に選択することができる。ユーザはボタンのうち1つを選択し、次いでOKボタン714をクリックして、自分が完了したことを指示する。ユーザはキャンセルボタン716をクリックして、選択を行うことを希望しないことを指示することもできる。
【0020】
このスクリーンにおける作業での規定の一例として、OKボタン714およびキャンセルボタン716がオプションボタン706、708、710および712の下になる標準の配置を考察する。この規定は、ユーザが最初にオプションボタンと対話し、次にOKボタンまたはキャンセルボタンと対話するであろうという事実、および、人は通常スクリーンを上から下へ読むという事実から生じる。ボタン714、716をオプションボタンの右側に配置することも受け入れ可能(かつ規定内)であり、これは英語(および他の複数の言語)が左から右へ読まれるからである。しかし、ボタン714、716をスクリーンの最上部でオプションボタンの708〜712の上に置くことは受け入れ可能ではなく、これはユーザがOKボタン714またはキャンセルボタン716を、オプションを選択する前に押す可能性が高くなるからである。
【0021】
図13に示すスクリーン上のコントロールは、よく知られているパターンを形成する。複数のプログラマは、スクリーンの特有の目的が異なる場合でも、図13に示すパターンに従うスクリーンを作成する。結局は、グラフィカルユーザインターフェイスのユーザがこのようなパターンに慣れるようになる可能性があり、それによりプログラムによる彼らの効率が向上する。彼らはまた、スクリーンが以前に見たことのあるパターンに準拠していた場合、新しいスクリーンをより迅速に学習できる可能性がある。
【0022】
大抵のソフトウェアプログラミング環境は、このようなユーザインターフェイスパターンを利用するためのいかなる方法も提供しない。プログラマが自分のプログラムにおいて、図13に示すものと同じパターンに従う選択肢の選択スクリーンを使用することを望んだ場合、彼は通常、基本グラフィカルユーザインターフェイスコントロールを使用して、スクラッチ(scratch)からこのようなスクリーンを作成するために、フォームパッケージを使用しなければならない。プログラマは一般に、スクリーンの外観および挙動を初めから定義するので、ユーザインターフェイスを不正確に実施する可能性があり、それにより、不注意によりバグを導入する可能性がある。これは、プログラマが、よく知られたパターンに従うスクリーンを作成しようとしているときでさえ、起こる可能性がある。
【0023】
単純なユーザインターフェイスパターンでさえも、プログラマが正しくパターンに従うことが困難である可能性がある。プログラマは、ユーザがいずれかの利点をパターンの使用から得るために、いくつかの正しい詳細を得ることが必要である。このような詳細の実施例には、それだけに限定されるものではないが、正しいコントロールのセットの選択、従来の、或いはそうでない場合は意味のあるラベルをこれらのコントロールのために提供すること、コントロールをスクリーン上に正しく配列すること、ユーザ入力のすべての使用可能なモード(キーボード、ポインティングデバイス、音声認識など)をサポートすること、すべての条件およびエラーを正しく処理すること、インターフェイスを様々なロケールおよび言語において正しく使用できるようにすること、およびインターフェイスを、様々な身体的障害(色盲、近視、盲目、身体的協調が遅いなど)を有する人々が正しく使用できるようにすることが含まれる。
【0024】
さらに、どのタイプのユーザインターフェイスパターンが所与の状況において適切であるかを決定するためのガイドラインは、ありふれたものではない。プログラマがユーザに一連の選択肢を提示し、ユーザに選択肢のうち厳密に1つを選択するように要求することを望む状況を考察する。プログラマがMicrosoft Windows(登録商標)オペレーティングシステム上で使用するためのグラフィカルユーザインターフェイスを作成中であると仮定する。Microsoft Corporationは、1セットのユーザインターフェイスガイドラインを、Windows(登録商標)用に設計されたプログラム向けに発行している(「Microsoft Windows(登録商標)User Experience:Official Guidelines for User Interface Developers and Designers」、Microsoft Press、1999年)。これらのガイドラインは、以下のような少なくとも3つの異なるタイプのコントロールを提案しており、これらをこの状況において使用することができる。
【0025】
1)オプションボタン:「オプションボタンは、ラジオボタンとも呼ばれ、制限された相互排他的な選択肢のセット内の単一の選択を表す。すなわち、ユーザはオプションのセットのうち1つのみを選択することができる。したがって、常にオプションボタンを2つまたはそれ以上のセットにおいてグループ化する...。オプションボタンの使用を、小さいセットのオプション、通常は7つあるいはそれ未満だが、常に少なくとも2つに制限する。さらに選択肢が必要である場合、単一選択リストボックスまたはドロップダウンリストボックスなど、異なるタイプのコントロールの使用を考察する。」(164ページ)
2)単一選択リストボックス:「リストボックスは、ユーザのための選択肢のリストを表示するためのコントロールである...。リストボックスは、複数の選択肢を表示するために最適であり、これは数またはコンテンツにおいて変わるものである...。単一選択リストボックスは、ただ1つの項目をリストにおいて選択するように設計される。したがって、コントロールは、オプションボタンのグループに類似した相互排他的なオペレーションを提供するが、ただし、リストボックスは複数の項目をより効率的に処理することができる。単一選択リストボックスを、少なくとも3から8の選択肢を示すために十分に高く定義する...どこでリストボックスが使用されるかの設計制約に応じて行う。」(170〜174ページ)
3)ドロップダウンリストボックス:「単一選択リストボックスと同様に、ドロップダウンリストボックスは、単一の項目のみをリストから選択することに備えており、違いは、リストが要求において表示されることである。...。ドロップダウンリストボックスは、スペースを節約して使用し、かつクラッタを低減するために効果的な方法であるが、これらは、項目のブラウズおよび選択のために、単一選択リストボックスより多くのユーザの労力を必要とする。」(175ページ)
【0026】
【発明が解決しようとする課題】
信じられないことに、どのコントロールを使用するべきであるかについての決定は、プログラマに委ねられている。プログラマは状況をすぐに評価し、これを、使用可能なガイドラインおよび規定と比較し、次いで適切な選択を行わなければならない。適切なパターンの選択に失敗することは、ユーザを混乱させる危険性がある。
【0027】
プログラマの決定を複雑にするものは、プログラマがプログラムを記述中であるときに、プログラマが通常は、ユーザインターフェイスが使用されるであろう厳密な条件を知ることができないことである。プログラムはユーザに選択肢のリストを提供する必要があり、ただし選択肢の数は、変化する要因に応じて大幅に変わる(たとえば、プログラムは、現在コンピュータネットワークに接続している人のリストを表示する必要がある)。プログラマはしばしば意思決定を、このような要因についての論理的あるいは推定された値の範囲に基づいて行うことを強いられる。プログラムの記述時に行われた決定の結果、実際には不適当なユーザインターフェイスとなるおそれがある。
【0028】
そこで、本発明の目的は、適切なユーザインターフェイスパターンを識別かつ構築する負担の多くをエキスパートシステムに移動させ、該システムはユーザインターフェイス設計のガイドライン、規定および原理に従うようにプログラムされたエキスパートシステムを提供することにある。
【0029】
【課題を解決するための手段】
プログラマはアプリケーションを従来の方法で記述するが、アプリケーション用の完全なユーザインターフェイスを作成する必要はない。その代わりに、プログラマはコードを記述して、ユーザインターフェイスの目的についての自分の意図を反映し、これらのいくつかのコードがエキスパートシステムを呼び出し、これがアプリケーションのユーザインターフェイスを完成する。エキスパートシステムは、適切なユーザインターフェイスをその場で生成し、このインターフェイスをアプリケーションに返す。
【0030】
次いで、アプリケーションがこのユーザインターフェイスを呼び出し、これがユーザの対話をコントロールする。ユーザインターフェイスがアプリケーションと、必要なように通信する。ユーザインターフェイスは結局、ユーザインターフェイスがある指示をユーザの対話から受信したとき、コントロールをアプリケーションに返す。ユーザインターフェイスをオンザフライで生成する代わりに、別法として、エキスパートシステムがユーザインターフェイスを、後にアプリケーションのランタイム中に使用するために生成し、記憶する。プログラマはエキスパートシステムを使用して、アプリケーションのユーザインターフェイス全体またはその一部のみを生成することができる。
【0031】
本発明の前述の態様および複数の付随の利点は、以下の詳細な説明を、添付の図面と共に取られるときに参照することによって、これがよりよく理解されるようになるので、より容易に理解されるようになるであろう。
【0032】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
【0033】
図6は、本発明を実施することができる適切なコンピューティングシステム環境200の一例を示す。
【0034】
コンピューティングシステム環境200は適切なコンピューティング環境の一実施例でしかなく、本発明の使用または機能性の範囲について、いかなる限定も示唆するように意図されるものではない。コンピューティング環境200は、例示かつ記載されたコンポーネントのいずれか1つまたは組み合わせに関するいかなる従属性または要件も有するものとして解釈されるべきではない。
【0035】
本発明は、複数の他の汎用または専用コンピューティングシステム環境または構成により動作する。本発明による使用のために適切である可能性のある周知のコンピューティングシステム、環境および/または構成の例には、それだけに限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルな家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【0036】
本発明を一般に、コンピュータによって実行されるプログラムモジュールなど、コンピュータ実行可能命令に関連して記載する。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データタイプを実施する。
【0037】
本発明はまた、分散コンピューティング環境においても実施することができ、ここではタスクが、通信ネットワークを介してリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールが、記憶デバイスを含む、ローカルおよびリモートコンピューティング記憶媒体に位置することができる。
【0038】
図6を参照すると、本発明を実施するためのシステムは、汎用コンピューティングデバイスをコンピュータ210の形式において含む。コンピュータ210のコンポーネントは、それだけに限定されるものではないが、処理装置220、システムメモリ230およびシステムバス221を含むことができ、システムバス221は、システムメモリを含む様々なシステムコンポーネントを処理装置220に結合する。システムバス221はいくつかのタイプのバス構造のいずれにすることもでき、これにはメモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスが含まれる。
【0039】
例として、それだけに限定されるものではないが、このようなバスアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、周辺コンポーネント相互接続(PCI)バスが含まれ、これはMezzanineバスとしても知られている。
【0040】
コンピュータ210は通常、さまざまなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ210によってアクセスすることができるいかなる使用可能な媒体にすることもでき、揮発性および不揮発性媒体、取外し可能および取外し不能媒体を含む。例として、それだけに限定されるものではないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、揮発性および不揮発性、取外し可能および取外し不能媒体を含み、これは、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報を記憶するためのいずれかの方法または技術において実施される。
【0041】
コンピュータ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、または他のいかなるコンピュータ記憶媒体をも含むが、これに限定されるものではない。
【0042】
通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、または、搬送波などの変調データ信号における他のデータ、またはいかなる情報送達媒体をも含む他の移送メカニズムを実施する。「変調データ信号」という用語は、1つまたは複数のその特性セットを有するか、あるいは信号における情報を符号化するような方法で変更された信号を意味する。例として、それだけに限定されるものではないが、通信媒体は、ワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体、および、音波、RF赤外線および他のワイヤレス媒体などのワイヤレス媒体を含む。上のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0043】
システムメモリ230は、読み取り専用メモリ(ROM)231およびランダムアクセスメモリ(RAM)232など、揮発性および/または不揮発性メモリの形式におけるコンピュータ記憶媒体を含む。基本入出力システム233(BIOS)は、起動中など、情報をコンピュータ210内の要素の間で転送するための助けとなる基本ルーチンを含み、通常はROM231に記憶される。RAM232は通常、データおよびまたはプログラムモジュールを含み、これらは即時にアクセス可能であり、かつ/またはそのとき処理装置220によって操作を加えられている。例として、それだけに限定されるものではないが、図6はオペレーティングシステム234、アプリケーションプログラム235、他のプログラムモジュール236およびプログラムデータ237を例示する。
【0044】
コンピュータ210は他の取外し可能/取外し不能、揮発性/不揮発性コンピュータ記憶媒体も含むことができる。例としてのみ、図6は、取外し不能な不揮発性磁気媒体から読み取りあるいはこれに書き込むためのハードディスクドライブ241、取外し可能な不揮発性磁気ディスク252から読み取りあるいはこれに書き込むための磁気ディスクドライブ251、および、CD−ROMまたは他の光媒体など、取外し可能な不揮発性光ディスク256から読み取りあるいはこれに書き込むための光ディスクドライブ255を例示する。
【0045】
例示的動作環境において使用することができる他の取外し可能/取外し不能、揮発性/不揮発性コンピュータ記憶媒体は、それだけに限定されるものではないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどを含む。ハードディスクドライブ241は通常、インターフェイス240などの取外し不能メモリインターフェイスを介してシステムバス221へ接続され、磁気ディスク書き込み251および光ディスクドライブ255は通常、インターフェイス250などの取外し可能メモリインターフェイスによってシステムバス221へ接続される。
【0046】
上述かつ図6において例示されたドライブおよびそれらの関連付けられたコンピュータ記憶媒体は、コンピュータ210のためのコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータを提供する。図6では、たとえば、ハードディスクドライブ241が、オペレーティングシステム244、アプリケーションプログラム245、他のプログラムモジュール246およびプログラムデータ247を記憶するものとして例示される。
【0047】
これらのコンポーネントは、オペレーティングシステム234、アプリケーションプログラム235、他のプログラムモジュール236およびプログラムデータ237と同じものにするかあるいはそれらと異なるようにすることができる。オペレーティングシステム244、アプリケーションプログラム245、他のプログラムモジュール246およびプログラムデータ247には、ここでは異なる番号が与えられて、最低でもそれらが異なるコピーであることが例示される。ユーザが、コマンドおよび情報をコンピュータ210へ、キーボード262、および、一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス261などの入力デバイスを介して入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる可能性がある。
【0048】
これらおよび他の入力デバイスがしばしば処理装置220へ、システムバスに結合されたユーザ入力インターフェイス260を介して接続されるが、これを、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)など、他のインターフェイスおよびバス構造によって接続することができる。モニタ291または他のタイプの表示デバイスもまた、ビデオインターフェイス290などのインターフェイスを介してシステムバス221へ接続される。モニタに加えて、コンピュータは、スピーカ297およびプリンタ296など、他の周辺出力デバイスも含むことができ、これらは入出力周辺インターフェイス295を介して接続することができる。
【0049】
コンピュータ210は、ネットワーク環境において、リモートコンピュータ280など、1つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータ280は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードにすることができ、通常は、コンピュータ210に関して上に記載した要素の複数またはすべてを含むが、記憶デバイス281のみを図6に例示した。図6に示す論理接続は、ローカルエリアネットワーク(LAN)271および広域ネットワーク(WAN)273を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
【0050】
LANネットワーキング環境において使用するとき、ネットワークインターフェイスまたはアダプタ270を介してコンピュータ210がLAN271へ接続される。WANネットワーキング環境において使用するとき、コンピュータ210が通常はモデム272、または、インターネットなどのWAN273を介して通信を確立するための他の手段を含む。モデム272は、内部あるいは外部にすることができ、入出力周辺インターフェイス295または他の適切なメカニズムを介してシステムバス221へ接続することができる。ネットワーク環境では、コンピュータ210に関して示したプログラムモジュール、またはその一部を、リモート記憶デバイスに記憶することができる。例として、それだけに限定されるものではないが、図6はリモートアプリケーションプログラム285を、メモリデバイス281上に常駐するものとして例示する。図示のネットワーク接続は例示のためのものでしかなく、通信リンクをコンピュータの間で確立する他の手段を使用することができることは理解されよう。
【0051】
図7は、本発明の好ましい実施形態を実施するために適切なコンピュータ302を示す。メモリ304の領域は、プログラマによって記述されたアプリケーション306を含む。このアプリケーション306がエキスパートシステム308を呼び出す。エキスパートシステム308は、アプリケーション306からそれに渡された情報を考察し、場合によっては永久記憶デバイス312、または、ネットワーク318を介して接続された別のコンピュータ320上に記憶された外部要因も検査する。
【0052】
エキスパートシステム308はユーザインターフェイス310を生成し、ユーザインターフェイス310をアプリケーション306へ返す。アプリケーション306は、ユーザインターフェイス310が作成された直後、あるいは、生成されたユーザインターフェイス310がすでに記憶されていた場合はランタイムに、ユーザインターフェイス310を呼び出してユーザと対話する。ユーザインターフェイス310がこの対話をコントロールし、これは、情報を、出力デバイス314を介してユーザへ通信し、かつ入力を、入力デバイス316を介してユーザから受信することによって行う。対話が完了したとき、ユーザインターフェイス310は、対話のいかある結果も呼び出し側のプログラム306へ返す。
【0053】
プログラマまたはユーザインターフェイスデザイナは、ユーザインターフェイス310を生成するプロセスを、ユーザインターフェイス目標または自分の意図をエキスパートシステム308に指示することによって開始する。図8は、ユーザインターフェイス目標または意図(以下で、ユーザインターフェイス目標324または意図324とする)の、エキスパートシステム308への通信をより詳細に例示する。意図324はアプリケーション306に記憶される。アプリケーション306は、不完全なユーザインターフェイスを有する可能性がある。意図324がエキスパートシステム308に通信されて、ユーザインターフェイス310が生成されたとき、アプリケーション306の不完全なユーザインターフェイスが完成される。意図324を実施するための複数の適切な技術を使用することができる。
【0054】
1つの適切な技術は、情報324をアプリケーション306へ関数呼出しとして記憶することを含む。各関数呼出しは、それに関連付けられたパラメータ326のセットを有する。様々な種類のユーザインターフェイス目標または意図が可能であり、これらは、何の種類の質問をユーザに尋ねるべきであるか、何の種類の情報をユーザに通信するべきであるか、または何の種類のタスクをユーザに実行させるべきであるかなどである。このようなユーザインターフェイス目標または意図の例には、以下が含まれる。
【0055】
1)ユーザに単一のテキスト文字列を供給させること。
2)ユーザに単一の数(たとえば、ゼロより大きい整数)を供給させること。
3)ユーザに、単一の項目をリストから選び取らせること。
4)ユーザに、いくつかの項目をリストから選び取らせること。
5)ユーザに、リストにおける項目を好ましい順序で配列させること。
6)ユーザに項目のリストを管理させること(項目の追加、項目の編集、それらの削除)。
7)ユーザに項目を所与の構造(たとえば階層)において編成させること。
8)ユーザに2つのコンテナの間で項目を移動あるいはコピーさせること(たとえば、2つのフォルダの間のファイル)。
9)ユーザに1つまたは複数のオペレーションを、リストにおける項目の選択において適用させること。
【0056】
ユーザインターフェイス目標または意図324の指示に加えて、プログラマはパラメータ326をエキスパートシステム308に供給することができ、これらがさらにプログラマの意図を指定し、あるいはそうでない場合はエキスパートシステム308を、意味のあるユーザインターフェイスの生成において支援する。エキスパートシステム308は、指定されたユーザインターフェイス目標または意図に応じて、プログラマにいくつかのパラメータ326を供給するように要求することもできる。他のパラメータはオプショナルにすることができる。パラメータ326の例には、以下が含まれる。
【0057】
1)プログラマがユーザに提供することを望む質問または命令のテキスト
2)ユーザが選択を行うことが予想される元の選択肢(たとえば、テキスト文字列のリスト)
3)プログラマが、ユーザが操作できるようにすることを望むデータ
4)質問へのデフォルト応答
5)ユーザが質問に応答することが要求されるかどうか、あるいはユーザが質問から選ぶことができるかどうかの指示
6)プログラマが、ユーザとの対話に応答して受信することが予想されるデータのタイプ(妥当性検査のため、かつもっとも有効となる表示のタイプを決定するため)
7)プログラマが、生成されたユーザインターフェイスに課すことを望む可能性のある、水平および垂直のスペースの量における制約
8)プログラマが生成されたユーザインターフェイスにおいて好むであろうビジュアルスタイルの指示(たとえば、エキスパートシステムが、ユーザがすぐにタスクに集中することができる保守的なビジュアルスタイルを有するユーザインターフェイスを生成するべきか、あるいは楽しませるための、視覚的に魅力のあるスタイルを有するユーザインターフェイスを生成するべきか)。
【0058】
エキスパートシステム308は、それが使用可能な外部要因も検査することができ、これはどのユーザインターフェイスがもっとも適切であるかについての意思決定において行われる。これらの外部要因には、以下が含まれる可能性がある。
【0059】
1)プログラムが何のタイプのコンピュータ上で動作中であるか。たとえば、デバイスの中央プロセッサの速度が、ユーザインターフェイスが実行するために受け入れ可能な処理量に制限を課す可能性がある。
【0060】
2)プログラムが何のオペレーティングシステム上で動作中であるか。複数の現在のオペレーティングシステムが類似したユーザインターフェイスを提供するが、各オペレーティングシステムは、ある種類の対話がどのように行われるべきであるかについて、それ自体の規定を定義することができる。
【0061】
3)何のタイプの入力デバイスが使用可能であるか。大抵のパーソナルコンピュータは少なくともコンピュータキーボードを有し、マウスなどのポインティングデバイスも有する。他のデバイスは、タッチスクリーン、音声入力用のマイクロフォン、および他の入力デバイスを有する可能性がある。たとえば、電話は数値キーパッドを有する。
【0062】
4)何のタイプの出力デバイスが使用可能であるか。大抵のデバイスはスクリーンを有し、この場合、様々なスクリーン属性である、その物理サイズ、その解像度(それが表示できるピクセル数)、およびそれが何色を表示できるかが、関連したものとなる可能性がある。別の例の出力デバイスは、オーディオスピーカである。
【0063】
5)これらの質問が尋ねられる対象の典型的なユーザは誰であるか。関連した要因には、通常のユーザの年齢、国籍および文化的背景、読み書きする言語、一般的なコンピュータ経験の程度、身体的能力、およびユーザが製品を使用するであろう物理的環境が含まれる可能性がある。
【0064】
6)この質問が尋ねられている対象の特定の個人について、何が知られているか。エキスパートシステムは、先に識別された個人について、上の一般的なユーザ属性に対する特定の回答を含むことができる。
【0065】
7)特定のユーザによる、過去におけるこの質問または類似の質問の経験の履歴がどのようなものであるか。たとえば、ユーザがこの質問に以前に直面したことが一度もなかった場合、彼はより明示的な支援を提供するユーザインターフェイスを必要とする可能性がある。他方では、ユーザがこの質問に以前に何度も直面しており、常に同じ応答を提供していた場合、エキスパートシステムは、ユーザの通常の応答をデフォルトとして提供することができ、あるいは、エキスパートシステムは、何もユーザに表示せずに即座にデフォルトの応答を返すユーザインターフェイスを生成することができる。
【0066】
8)他の何のソフトウェアがマシン上で使用可能であるか。エキスパートシステムは他のソフトウェアアプリケーションを、それが質問を尋ねるために使用するユーザインターフェイスの形成において、使用するように決定することができる。
【0067】
9)エキスパートシステムがアクセスを有する様々なデータの現在値が何であるか。エキスパートシステムはユーザインターフェイスを、日時など、それがマシンを介して知覚することができる世界についての様々な事実に基づいて選択することができる。加えて、マシンが他のデバイスのネットワーク(インターネットなど)へのアクセスを有する場合、エキスパートシステムが、ネットワークからのデータを使用して、その選択およびユーザインターフェイスの設計を通知できるようにすることが可能である。
【0068】
重要なことに、エキスパートシステム308によって意図について生成されたユーザインターフェイスは根本的に、異なる入力条件下で、あるいは等しい入力条件下でさえ、異なる可能性がある(外部要因が変化している可能性があるため)。すなわち、エキスパートシステム308は、プログラマに、同じ意図および同じセットのパラメータ326と共に複数の回数呼び出された場合、それが同じユーザインターフェイスを生成するという保証を提供することができない。
【0069】
エキスパートシステム308がグラフィカルユーザインターフェイスを生成中であった場合、生成されたユーザインターフェイス310は、単一のスクリーン、複数のスクリーンのシーケンスを含み、あるいはスクリーンをまったく含まない可能性がある。本明細書では「スクリーン」を使用して、一般に、出力デバイス上の可視の表示領域全体、またはより大きいディスプレイ内に含まれたウィンドウ、またはウィンドウの一部のいずれかを指す。生成されたユーザインターフェイスは、ページファンクション(pagefunctions)においてカプセル化されたスクリーンを含むことができる。スクリーンを含んでいる、生成されたユーザインターフェイスでは、スクリーン上のコントロールが呼び出し毎に変わる可能性があり、コントロールの属性であるそれらのラベル、位置、サイズ、含まれる値などについてもそうなる可能性がある。エキスパートシステム308は、グラフィカルユーザインターフェイス以外の他のタイプのユーザインターフェイス(たとえば、オーディオユーザインターフェイス)を生成することもできる。
【0070】
図9を参照すると、エキスパートシステム308が、コードモジュールまたはコンポーネント334〜338の集まりとして実施される。各コードモジュールは、単一のタイプのユーザインターフェイス目標または意図について、適切なユーザインターフェイスを生成するように設計される。
【0071】
換言すれば、各コードモジュールは、ユーザインターフェイス目標または意図を実現するために、異なる種類のテンプレートへのアクセスを有している。プログラマは、自分のユーザインターフェイス目標または意図を、関連コードモジュールを呼び出すアプリケーション306用のプログラミングコードを記述することによって指示する。適切に呼び出されるために、コードモジュールはアプリケーション306に、あるパラメータを供給するように要求する可能性がある。呼び出しにおいて、コードモジュールは、アプリケーション306が追加のオプショナルのパラメータを指定できるようにすることもできる。これらの要求されたパラメータおよびオプショナルのパラメータは、意図毎に(よって、コードモジュール毎に)異なる可能性がある。コードモジュールは、要求されたパラメータおよびオプショナルのパラメータを評価し、いかなる関連した外部要因をも検査して、どの種類のユーザインターフェイスが適切であるかを決定する。
【0072】
図9のように、アプリケーション306は、プログラマの様々な意図を表すための記述されたいくつかのコードを含み、これは、項目のリストをオーダーするための意図332、項目をリストから選択するための意図330、および他の意図340などである。アプリケーション306に記憶された各意図は、エキスパートシステム308において、対応するコードモジュールまたはコンポーネントを呼び出すことができ、これらはOrderコンポーネント336、チューズ(Choose)コンポーネント334および他のコンポーネント338である。Chooseコンポーネント334は、ユーザが項目をリストから選択すること330を助けるための意図に対応する。ユーザが項目をリストから選択すること330を助けるための意図が正しくChooseコンポーネント334を呼び出すために、意図は特定のプログラムのフォームにおいて記述され、これは関数呼出しChoose(...)324Aなどである。関数呼出し324Aのためのパラメータは、ユーザが選択するための元である項目のリスト326Aを含むことができる。
【0073】
類似の方法で、Orderコンポーネント336は、項目のリストをオーダーするための意図332に対応する。項目のリストをオーダーするための意図332が、Orderコンポーネント336を、関数呼出しOrder(...)324Aを介して呼び出す。項目のリスト326Bは、関数呼出し324Bのためのパラメータを構成する。アプリケーション306上の他の意図340は、エキスパートシステム308において対応するコンポーネント338を有する。コンポーネント338の中の適切なコンポーネントが、関数呼出しに含まれるべき適切なパラメータのセットを伴う関数呼出しによって、呼び出される。
【0074】
エキスパートシステムのコードモジュールが、何の種類のユーザインターフェイスが適切であるかを決定した後、モジュールはユーザインターフェイス310の適切な表現を生成し、この表現をアプリケーション306へ返す。本発明の様々な実施形態のために適切な動作環境は、オブジェクト指向の環境を含む。ユーザインターフェイス310は、プログラム実行中に動的に作成されるオブジェクトとして表現することができ、これをプログラムファンクションの間で渡すことができ、そのメンバファンクションが呼び出されるようにすることができ、これらのメンバファンクションが結果を呼び出し側プログラムに返すようにすることができる。このようなオブジェクトは、マシンの入力および出力デバイスと対話して、ユーザとの要求された対話を実行する。本発明の実施形態を、オブジェクト指向ではない環境においても実施できることは、当業者には理解されよう。
【0075】
エキスパートシステム308がユーザインターフェイス310を生成し、これをアプリケーション306に返した後、呼び出し側プログラム306は通常、生成されたユーザインターフェイス310を即座に呼び出す。しかし、アプリケーション306がユーザインターフェイス310の表現を記憶媒体(たとえば、ディスク)に、後にアプリケーション306(または、潜在的に異なるプログラム)によって使用するために記憶することも可能である。ユーザインターフェイス310の表現を別のコンピュータへ、そのコンピュータ上のプログラムによる記憶または呼び出しのために伝送することもできる。
【0076】
しかし、ユーザインターフェイスが生成された時間とそれが使用される時間の間に経過する時間が長いほど、様々な外部要因が、それらがエキスパートシステム308によって検査されたときのそれらの値から変化している可能性がより高く、それにより潜在的にユーザインターフェイスが、新しいセットの外部要因の下で不適切にされることに留意されたい。
【0077】
図7は、アプリケーション306、エキスパートシステム308、および生成されたユーザインターフェイス310を、すべてが同じコンピュータ302上に常駐するものとして示すが、これらのコンポーネントが、ネットワークを介して通信する分離したコンピュータ上で存在できることは、当業者には理解されよう。たとえば、エキスパートシステム308は、インターネットサーバ(図示せず)上のプロセスの形式を取ることができ、これはユーザインターフェイスを、World Wide Webブラウザにおける表示に適切な、完全あるいは部分的にHTML(ハイパーテキストマークアップ言語)ページの形式において返す。
【0078】
図10は、エキスパートシステム308の呼び出しにおいて実行されるステップの流れ図である。
【0079】
ステップ402では、アプリケーション306は、エキスパートシステム308に渡されるパラメータのセットを計算する。「計算する」という用語は、ユーザインターフェイスデザイナによって事前定義されたパラメータ、または、アプリケーション306による目的のために収集、解析あるいは適合されるパラメータの包含を意味する。
【0080】
ステップ404では、アプリケーション306がプログラマの意図を反映し、これは関連したエキスパートシステムのコードモジュールを呼び出し、かつ関連パラメータに渡すことによって行う。エキスパートシステム308は、適切なユーザインターフェイス310の表現を生成し、返す。
【0081】
ステップ406では、アプリケーション306がこの生成されたユーザインターフェイス310を呼び出す。アプリケーション306は、生成されたユーザインターフェイス310が何の形式を取るかを承知していない。アプリケーション306は、いつユーザインターフェイスが処理を終了したか、および対話の結果が何であったかを通知されることが予想できることのみを知っている。処理がステップ408へ進行し、アプリケーション306は、ユーザとの対話の結果を使用して、いかなる必要なオペレーションも実行することができる。
【0082】
エキスパートシステム308がアプリケーション306に、エキスパートシステム308自体にこの生成されたユーザインターフェイス310を直接呼び出すようにさせるためのオプションを提供することが可能である。この場合、生成されたユーザインターフェイス310を返すのではなく、エキスパートシステム308がユーザとの対話の結果を返す。アプリケーション306の観点から、このようなオプションは効果的にステップ404および406を単一のステップに結合する。
【0083】
図11は、プロセス500を例示し、これはエキスパートシステム308が意図またはユーザインターフェイス目標324をアプリケーション306から受信したところである。
【0084】
ブロック502では、エキスパートシステム308がユーザインターフェイス目標324を、ファンクション呼び出しなど、適切なメカニズムを介して受信する。ファンクション呼び出しと共に、ブロック504で、エキスパートシステム308は、ファンクション呼び出しに関連付けられたパラメータのセットを受信する。
【0085】
次に、ブロック506では、エキスパートシステム308は複数のコードモジュール334〜338の中でコードモジュールを選択し、これは、複数のユーザインターフェイス目標の中で、受信されたユーザインターフェイス目標に対応するものである。プロセス500は次にブロック508へ流れ、ここでエキスパートシステム308が、選択されたコードモジュール内のルールのセットからルールを選択する。ルールのセットはプログラムにより、選択されたコードモジュールにおいて定義される。
【0086】
各コードモジュール334〜338は、ユーザインターフェイス設計のガイドライン、規定および原理から抽出された異なるルールを含む。これらの抽出されたルールの一例を、以下で図12を参照して論ずる。ルールが選択された後、プロセス500がブロック510に入る。このとき、選択されたルールを選択かつ実行しているので、エキスパートシステム308がユーザインターフェイスを、選択されたルールに関連付けられたテンプレートから生成する。モジュール内の各ルールは、異なるテンプレートに対応する。
【0087】
図12は、ユーザに単一の項目を選択肢のリストから選択させる汎用目標に対処するように設計された、コードモジュールまたはコンポーネント334の実施内のルールのセットを示す。
【0088】
この例では、エキスパートシステム308が、Microsoft Windows(登録商標)オペレーティングシステム上で使用するためのグラフィカルユーザインターフェイスを生成し、Microsoftによって示されたガイドライン(「Microsoft Windows(登録商標)User Experience:Official Guidelines for User Interface Developers and Designers」、Microsoft Press、1999年)に従って、どのタイプのコントロールがそのタスクにもっとも適切であるかを決定する。この場合のエキスパートシステム308は、コードモジュールが呼び出されたとき、アプリケーション306に選択肢のリスト326Aを供給するように要求する。プログラマはオプショナルに、エキスパートシステム308によって生成されたいかなるスクリーンのサイズをも制限する制約を供給することができる(たとえば、スクリーンが特定のディスプレイ上に、あるいは先に存在するウィンドウ内に適合できるようにするため)。次いで、エキスパートシステム308は、どの種類のユーザインターフェイスが、プログラマの目標を満たすことにおいてもっとも適切となるかを決定する。
【0089】
ステップ602では、エキスパートシステム308は、ユーザに提供される選択肢の数をカウントする。ステップ604で、エキスパートシステム308が、選択肢のカウントがゼロであるかどうかを決定する。それがゼロであった場合、ユーザが選択を行うことはない。この場合、処理がステップ606へ進行し、エキスパートシステム308が、可視のスクリーンを含んでいないユーザインターフェイス310を生成する。後に呼び出されると、このユーザインターフェイス310は即座にアプリケーション306に戻り、ユーザによって選択が行われなかったことを示す結果を返す。
【0090】
カウントがゼロより大きかった場合、処理がステップ608へ進行する。ここで、エキスパートシステム308が、選択肢のカウントがちょうど1であるかどうかを決定する。そうであった場合、処理がステップ610へ進行し、エキスパートシステムが、可視のスクリーンを含んでいないユーザインターフェイス310を再度生成する。後に呼び出されると、このユーザインターフェイス310は即座にアプリケーション306に戻り、ユーザが唯一の使用可能な選択肢を選択したことを示す結果を返す。
【0091】
カウントが1より大きかった場合、処理がステップ612に進行する。このステップで、エキスパートシステム308が、カウントが8より小さい(すなわち、2以上であり、かつ7以下でもある)かどうかを決定する。そうであった場合、処理がステップ614へ進行し、エキスパートシステム308がユーザインターフェイス310を生成する。後によびだされると、このユーザインターフェイス310が、オプションボタンを使用して使用可能な選択肢を示す単一のスクリーンを表示する。このようなスクリーンの一実施例を、図13に示す。
【0092】
カウントが8以上であった場合、処理がステップ616へ進行する。このステップで、エキスパートシステム308が、生成されたユーザインターフェイスで使用可能な垂直のスペースの量においていずれかの制約があるかどうかを考察し、そうであった場合、少なくとも3つの項目を表示する単一選択リストボックスを表示するために十分な垂直のスペースがあるかどうかを考察する。十分な余地があった場合、処理がステップ618へ進行し、エキスパートシステム308がユーザインターフェイス310を生成する。後に呼び出されると、このユーザインターフェイス310が、使用可能な選択肢を単一選択リストボックスにおいて示す単一のスクリーンを示す。このようなスクリーンの一例を図14に示す。
【0093】
そうでない場合(リストボックスのために十分な余地がなかった場合)、処理がステップ620へ進行し、エキスパートシステム308がユーザインターフェイス310を生成する。後に呼び出されると、このユーザインターフェイス310は、使用可能な選択肢をドロップダウンリストボックスにおいて示す単一のスクリーンを表示する。このようなスクリーンの一実施例を図16に示す。処理が完了した後、エキスパートシステム308がアプリケーション306に戻り、生成されたユーザインターフェイス310を返す。
【0094】
図13は、エキスパートシステム308によって生成されたグラフィカルユーザインターフェイススクリーンの一例であり、ユーザが4つの項目のうち1つを選択するように尋ねられるものである。ウィンドウ702はテキスト704を含み、これがユーザに、オプションボタン706、708、710および712から選択を行うように指図する。
【0095】
この例では、オプションボタン706が選択された状態で図示される。オプションボタン706、708、710および712のうち1つのみを、所与の時間に選択することができる。ユーザはボタンのうち1つを選択し、次いでOKボタン714をクリックして、自分が終了したことを指示する。ウィンドウが閉じられ、ユーザインターフェイスがユーザの選択をアプリケーション306に返す。ユーザが、図示のスクリーン状態においてOKボタン714を押した場合、この最初のオプションがアプリケーション306に返される(このオプションを、たとえば、第1の選択を示す整数1、または、この選択のテキストについてのテキスト文字列「赤」として返すことができる)。
【0096】
その代わりにユーザがキャンセルボタン716をクリックした場合、ウィンドウが閉じられ、呼び出し側のプログラムに、ユーザが選択を行わなかったことが通知される(たとえば、整数−1など、使用可能な選択肢のセットにおいて意味を有していない、特殊なヌル値を返すことによる)。
【0097】
図14は、エキスパートシステム308によって生成されたグラフィカルユーザインターフェイススクリーンの一例であり、ユーザが10項目のうち1つを選択するように尋ねられるものである。単一のウィンドウ802がテキスト804を含み、これがユーザに、10項目を含む(10項目のすべては図示されない)単一選択リストボックス806から選択を行うように指図する。リストボックス806は、8項目を示すために十分な高さでしかない。ユーザはリストボックス806をスクロールして、すべての項目を見なければならない。ユーザがリスト項目のうち1つを選択し、次いでOKボタン808をクリックして、自分が終了したことを指示する。ウィンドウが閉じられ、ユーザインターフェイスがユーザの選択をアプリケーション306に返す。その代わりにユーザがキャンセルボタン810をクリックした場合、ウィンドウが閉じられ、アプリケーション306に、ユーザが選択を行わなかったことが通知される。
【0098】
図15〜図16は、エキスパートシステム308によって生成されたグラフィカルユーザインターフェイスにおけるスクリーンの別の例を示し、ここではユーザが再度、10項目のうち1つを選択するように尋ねられる(10項目のすべては図示されない)。このとき、プログラマは、ユーザインターフェイスが使用することができる出力ディスプレイのサイズにおいて、いくつかの制約を確立している。
【0099】
図14に示すスクリーンのように、図15に示すウィンドウ902はテキスト904を含み、これがユーザに選択を行うように指図する。しかしここでは、単一選択リストボックス806を使用するために十分な垂直のスペースがない。この場合、エキスパートシステム308は、その代わりに、選択肢のより小型の表現であるドロップダウンリストボックス906を選択している。ドロップダウンリストボックス906は最初に、単一の行に折りたたまれている。ドロップダウン矢印908をクリックすることによって、ユーザがこれを展開してリストボックス914を示すことができる。このリストボックス914は、使用可能な選択肢の一部を表示する。ユーザはリストをスクロールして、残りを見なければならない。ユーザはリストボックス914における項目のうち1つを選択し、次いでドロップダウン矢印908をもう一度クリックして、その最初の状態に戻す
【0100】
次いで、ユーザがOKボタン910をクリックして、自分が終了したことを指示する。ウィンドウが閉じ、ユーザインターフェイスがユーザの選択をアプリケーション306へ返す。ユーザがキャンセルボタン612をクリックした場合、ウィンドウ902が代わりに閉じられ、アプリケーション306に、ユーザが選択を行わなかったことが通知される。
【0101】
エキスパートシステム308は、プログラマによって作成されたプログラムから分離可能なコンポーネントであり、別々に更新あるいはそうでない場合は修正することができる。したがって、同じマシン上の複数のプログラムが、エキスパートシステム308の同じインスタンスを呼び出すことができる。エキスパートシステム308が、後続のバージョンにおける追加のユーザインターフェイスの知識により改良あるいは修正されるとき、エキスパートシステム308は異なる意思決定を行うことができる。同じ意図またはユーザインターフェイス目標、パラメータのセットおよび外部要因が与えられると、異なるバージョンのエキスパートシステム308は、異なるユーザインターフェイスを生成することができる。
【0102】
複雑なユーザインターフェイスの構築において、エキスパートシステム308はそれ自体を再帰的に呼び出して、ユーザインターフェイスの一部を構築することができる。たとえば、複数のスクリーンを有する複雑なグラフィカルユーザインターフェイスを生成することができるコードモジュールは、他のコードモジュールを呼び出して、個々のスクリーンを生成することができる。
【0103】
プログラマは、エキスパートシステム308の、ユーザインターフェイス設計原理の既存の知識を、安心して利用することができる。プログラマは、新しいコードモジュールを作成し、かつこれらをエキスパートシステム308自体に追加することによって、ユーザインターフェイス設計原理の新しい知識(場合によっては、ある特定の領域におけるもの)を体系化するための能力を有することもできる。これにより、この知識が他のプログラマにも使用可能になる。
【0104】
以上から、本発明の処理は、以下のようにまとめることができる。
【0105】
エキスパートシステムは、ユーザインターフェイスデザイナの1つ又は複数の意図を実現するための1つ又は複数のコンポーネントを含む。各意図は、エキスパートシステムによって受信されたとき、受信された意図を実現するための対応するコンポーネントを識別し、アクティブ化する。各コンポーネントは、プログラムにより、ユーザインターフェイス設計のガイドライン、規定および原理から抽出されたルールのセットを含む。パラメータのセットには、受信された各意図も供給されて、対応するコンポーネントを支援してルールをルールのセットから選択かつ実行する。各ルールは、ユーザインターフェイスを、他のルールによって使用された他のテンプレートとは異なるテンプレートから生成する。
【0106】
なお、本発明の好ましい実施形態を例示し、記載したが、特許請求の範囲の範囲内で、本発明の精神および範囲から逸脱することなく、様々な変更をその中で行うことができることは理解されよう。
【0107】
独占的な所有権または特権が主張される本発明の実施形態は、以下のように定義される。
【0108】
【発明の効果】
以上説明したように、本発明によれば、不完全なユーザインターフェイスを有しかつアプリケーションのユーザインターフェイスデザイナの複数の意図を記憶するように適合されたアプリケーションと、複数の意図を実現するための1つ又は複数のコンポーネントを有するエキスパートシステムとを設けたので、適切なユーザインターフェイスパターンを識別かつ構築する負担の多くをエキスパートシステムに移動させ、該エキスパートシステムをユーザインターフェイス設計のガイドライン、規定、原理に従うようにプログラムすることができる。
【図面の簡単な説明】
【図1】プログラムにおけるユーザインターフェイス関数呼出し、オペレーティングシステムにおける特定のユーザインターフェイスルーチン、および、特定のテンプレートからのユーザインターフェイスの対応する提示の間の1対1の対応を例示するブロック図である。
【図2】ユーザインターフェイス関数呼出しへのユーザ引数の値に依存する、メッセージボックスの様々な提示を例示する図である。
【図3】ユーザインターフェイス関数呼出しへのユーザ引数の値に依存する、メッセージボックスの様々な提示を例示する図である。
【図4】ユーザインターフェイス関数呼出しへのユーザ引数の値に依存する、メッセージボックスの様々な提示を例示する図である。
【図5】ユーザインターフェイス関数呼出しへのユーザ引数の値に依存する、メッセージボックスの様々な提示を例示する図である。
【図6】コンピューティングデバイスを例示するブロック図である。
【図7】本発明の一実施形態である、ユーザインターフェイスを生成するためのエキスパートシステムを含むコンピューティングシステムを例示するブロック図である。
【図8】本発明の一実施形態である、ユーザインターフェイスを生成するためのエキスパートシステムへの、ユーザインターフェイスデザイナの意図およびパラメータをより詳細に例示するブロック図である。
【図9】本発明の一実施形態である、1つまたは複数のユーザインターフェイスデザイナの意図をエキスパートシステムへ送信するアプリケーションの間の対話、および、エキスパートシステムが1つまたは複数の意図をアプリケーションから受信してユーザインターフェイスを生成することを、より詳細に示すブロック図である。
【図10】本発明の一実施形態である、エキスパートシステムを呼び出すための方法を例示するプロセス図である。
【図11】本発明の一実施形態である、エキスパートシステムがユーザインターフェイスデザイナの意図を実現してユーザインターフェイスを生成する方法を例示する別のプロセス図である。
【図12】本発明の一実施形態である、エキスパートシステムのサンプルコードモジュールまたはコンポーネント内の、ユーザインターフェイスデザイナの意図を実現するため、より詳細には、ユーザに使用可能な選択肢を示すための方法を示すプロセス図である。
【図13】本発明の一実施形態である、ユーザがオプションボタンを使用して選択するために使用可能な選択肢を例示するブロック図である。
【図14】本発明の一実施形態である、使用可能な選択肢をユーザへ、単一選択リストボックスにおいて示すスクリーンを例示するブロック図である。
【図15】本発明の一実施形態である、ドロップダウンリストボックスの選択された選択肢を示す単一のスクリーンのブロック図である。
【図16】本発明の一実施形態である、使用可能な選択肢をユーザへ、ドロップダウンリストボックスにおいて示す単一のスクリーンを例示するブロック図である。
【符号の説明】
302、320 コンピュータ
306 アプリケーション
308 エキスパートシステム
310 ユーザインターフェイス
312 永久記憶装置
314 入力デバイス
316 出力デバイス
324、330、332、340 意図
324 目標
326 パラメータ
334 Chooseコンポーネント
336 Orderコンポーネント
338 他のコンポーネント

Claims (10)

  1. ユーザがコンピュータシステムと対話することができるユーザインターフェイスを生成するためのシステムであって、
    不完全なユーザインターフェイスを有し、かつ、前記アプリケーションのユーザインターフェイスデザイナの複数の意図を表す情報を記憶するアプリケーションと、
    ここで、前記複数の意図は、前記不完全なユーザインターフェイスと関連付けられており、各意図を表す情報は、ユーザインターフェイスを生成する際に使用されるパラメータのセットと対応付けられ、かつ、前記ユーザへ質問を提出することと、ある情報を前記ユーザに提示することと、前記ユーザが実行すべきタスクを定義することとのうち少なくとも1つを含み、
    前記アプリケーションの前記不完全なユーザインターフェイスは、前記1つまたは複数の意図が実現されるときに完成されるものであり、
    前記複数の意図を実現するための1つまたは複数のコードモジュールを有するエキスパートシステムとを記憶する記憶装置
    を具え、
    ここで、前記コンピュータシステムは、前記エキスパートシステムを用いて、前記複数の意図を表す情報のうちの何れか1つを前記アプリケーションから受信し、前記受信された各意図を表す情報を用いて、該受信された意図を表す情報で表される意図を実現するための対応するコードモジュールを識別かつアクティブ化し、
    対応する各コードモジュールは、どのタイプのユーザインターフェイスパターンが所与の状況において適切であるかを決定するためのガイドライン、規定、および原理から抽出されたルールのセットを含み、
    前記コンピュータシステムは、受信された各意図を表す情報が供給された前記パラメータのセットを使用して、前記対応するコードモジュールに、ルールを前記ルールのセットから選択かつ実行させ、
    前記コンピュータシステムは、完成されたユーザインターフェイスを、選択かつ実行された前記ルールと関連付けられたテンプレートから生成することを特徴とするシステム。
  2. 前記生成されたユーザインターフェイスは、
    グラフィカルユーザインターフェイス、コマンドラインインターフェイス、および、オーディオユーザインターフェイスのうち少なくとも1つを含むことを特徴とする請求項1記載のシステム。
  3. 情報を外部要因として格納する外部要因のソースをさらに具え、
    前記外部要因のソースは、前記アプリケーションの動作環境ならびに前記ユーザの背景に関係付けられた情報を含み、
    前記コンピュータシステムは、前記外部要因を用いて、前記対応するコードモジュールに、ルールを前記ルールのセットから選択かつ実行させることを特徴とする請求項1記載のシステム。
  4. 前記外部要因は、前記アプリケーションが動作中であるコンピュータのタイプ、前記アプリケーションが動作中であるオペレーティングシステムのタイプ、使用可能な入力デバイスのタイプ、使用可能な出力デバイスのタイプ、前記ユーザの前記背景、他のソフトウェアの存在、および、前記システム外部の他の事実のうちの少なくとも1つを含むことを特徴とする請求項3記載のシステム。
  5. 前記パラメータのセットからの各パラメータは、
    テキスト情報、前記ユーザが選択を行うことが予想される元の選択肢のセット、前記ユーザが操作することを許可されるいくつかのデータ、前記ユーザによって提出された質問へのデフォルト応答、前記ユーザが前記質問に応答する必要があることを表す指示、前記ユーザが前記質問に応答しないことができることを表す指示、前記ユーザとの対話に応答して受信されることが予想されるデータのタイプ、前記生成されたユーザインターフェイスの寸法に関する制約のセット、および、前記生成されたユーザインターフェイスが取ることができる前記ビジュアルスタイルの指示のうちの少なくとも1つを含むことを特徴とする請求項1記載のシステム。
  6. エキスパートシステムを有するコンピュータシステムによって、ユーザがコンピュータシステムと対話するためのユーザインターフェイスを生成するための方法であって、
    ユーザインターフェイス目標は、不完全なユーザインターフェイスと関連付けられており、
    前記コンピュータシステムが、前記ユーザインターフェイス目標を、前記エキスパートシステムを用いることにより前記ユーザインターフェイス目標を表す情報を記憶するアプリケーションから受信するステップと、
    ここで、該ユーザインターフェイス目標は、前記ユーザに提出される質問と、前記ユーザに通信されるいくつかの情報と、前記ユーザによって実行されるタスクのうちの少なくとも1つを含み、
    前記コンピュータシステムが、前記ユーザインターフェイス目標に対応するユーザインターフェイスを生成する際に使用されるパラメータのセットを、前記エキスパートシステムを用いることにより前記アプリケーションから受信するステップと、
    ここで、各パラメータは、前記ユーザに提示するための情報と、前記ユーザによって実行される前記タスクのための情報と、前記生成されたユーザインターフェイスを制約するための情報とのうちの少なくとも1つを含み、
    前記コンピュータシステムが、ユーザインターフェイスを、前記エキスパートシステムを用いることおよびコードモジュールのセットからコードモジュールを選択することによって生成するステップと
    を具え、
    ここで、各コードモジュールは、前記ユーザインターフェイス目標を実現するための異なる種類のテンプレートへのアクセス機能を備えることにより、ユーザインターフェイスを複数のテンプレートから生成するように設計され、
    前記コードモジュールを選択するステップは、どのタイプのユーザインターフェイスパターンが所与の状況において適切であるかを決定するためのガイドライン、規定、および、原理から抽出された、前記コードモジュールに含まれるルールのセットからルールを選択するステップを含み、
    前記ルールを選択するステップは、前記パラメータのセットを用いて行われ、
    前記ユーザインターフェイスは、前記選択されたルールが実行されたとき、テンプレートから生成されることを特徴とする方法。
  7. 前記コンピュータシステムが、外部要因のセットを前記エキスパートシステムによって選択的に検査するステップをさらに具え、
    各要因は、前記コンピュータシステムの動作環境および前記ユーザの背景から選択され、
    前記ルールを選択するステップは、前記外部要因のセットをさらに用いて行われることを特徴とする請求項6記載の方法。
  8. ユーザインターフェイス目標は、前記ユーザに単一のテキスト文字列を供給させることと、前記ユーザに単一の数を供給させることと、前記ユーザに単一の項目をリストから選び取らせることと、前記ユーザにいくつかの項目をリストから選び取らせることと、前記ユーザにリストにおける前記項目を好ましい順序で配列させることと、前記ユーザに項目のリストを管理させることと、前記ユーザに項目を所与の構造に編成させることと、前記ユーザに1つまたは複数のオペレーションをリスト内で項目の選択において適用させることとのうちの少なくとも1つを含むことを特徴とする請求項6記載の方法。
  9. ユーザインターフェイスを作成するためのシステムであって、
    a)少なくとも1つのユーザインターフェイスデザイナの意図が記述されたプログラミングコードを含むアプリケーションと、
    ここで、該少なくとも1つの意図を表す情報は、関連付けられたパラメータのセットを含み、
    b)少なくとも1つの意図を表す情報および前記関連付けられたパラメータのセットを受信するためのエキスパートシステムと
    を記憶する記憶装置を具え、
    該エキスパートシステムは、複数のコードモジュールを含み、前記コードモジュールの各々は、ルールのセットを含み、前記ルールの各々は、テンプレートに関連付けられており
    前記ユーザインターフェイスを作成するためのシステムは、前記少なくとも1つの意図を表す情報および前記関連付けられたパラメータのセットを受信することに応答して、該エキスパートシステムを使用して、
    i)前記複数のコードモジュールからコードモジュールを選択し、
    ii)ルールを、前記選択されたコードモジュールに含まれた前記ルールのセットから選択し、
    iii)ユーザインターフェイスを、前記選択されたルールに関連付けられた前記テンプレートに従って生成する
    ことを特徴とするシステム。
  10. 関連付けられたディスプレイを有するコンピュータ上でアプリケーションのためのユーザインターフェイスを生成する方法であって、
    a)前記コンピュータが、ユーザインターフェイスデザイナによりアプリケーションに含まれるプログラミングコードで記述された少なくとも1つの意図と、前記少なくとも1つの意図に関連付けられたパラメータのセットとをエキスパートシステムに供給するステップと、
    )前記コンピュータが、前記エキスパートシステムが前記少なくとも1つの意図を表す情報と該関連付けられたパラメータのセットとを受信することに応答して、前記エキスパートシステムを用いて、
    i)コードモジュールを複数のコードモジュールから選択するステップと、
    ii)ルールを、前記選択されたコードモジュール内のルールのセットから選択するステップと、
    iii)ユーザインターフェイスを、前記選択されたルールに関連付けられたテンプレートから生成するステップとを有し、
    )前記コンピュータが、前記ユーザインターフェイスを前記アプリケーションに供給するステップと、
    )前記コンピュータが、前記アプリケーションが前記ユーザインターフェイスを受信することに応答して、前記アプリケーションを用いて、ユーザインターフェイスを前記ディスプレイ上で生成するステップと
    を具えたことを特徴とする方法。
JP2002051972A 2001-02-27 2002-02-27 ユーザインターフェイスを生成するためのエキスパートシステム Expired - Fee Related JP4718747B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27200601P 2001-02-27 2001-02-27
US60/272,006 2001-02-27

Publications (3)

Publication Number Publication Date
JP2003015874A JP2003015874A (ja) 2003-01-17
JP2003015874A5 JP2003015874A5 (ja) 2011-02-03
JP4718747B2 true JP4718747B2 (ja) 2011-07-06

Family

ID=23037996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002051972A Expired - Fee Related JP4718747B2 (ja) 2001-02-27 2002-02-27 ユーザインターフェイスを生成するためのエキスパートシステム

Country Status (4)

Country Link
US (1) US7013297B2 (ja)
EP (1) EP1237076A3 (ja)
JP (1) JP4718747B2 (ja)
CN (1) CN1387105A (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931591B1 (en) * 1999-10-15 2005-08-16 Saepio Technologies, Inc. Publishing layout wizard
US8290809B1 (en) 2000-02-14 2012-10-16 Ebay Inc. Determining a community rating for a user using feedback ratings of related users in an electronic environment
US7428505B1 (en) 2000-02-29 2008-09-23 Ebay, Inc. Method and system for harvesting feedback and comments regarding multiple items from users of a network-based transaction facility
US9614934B2 (en) 2000-02-29 2017-04-04 Paypal, Inc. Methods and systems for harvesting comments regarding users on a network-based facility
US20020078152A1 (en) 2000-12-19 2002-06-20 Barry Boone Method and apparatus for providing predefined feedback
US20040080545A1 (en) * 2002-10-28 2004-04-29 International Business Machines Corporation Method for dynamic accessibility of a drop-down selection in a GUI combobox construct
JP4079087B2 (ja) * 2003-03-12 2008-04-23 セイコーエプソン株式会社 レイアウトシステム
CN100334552C (zh) * 2003-05-16 2007-08-29 北京北方格林电子技术有限责任公司 界面设计和任务处理分离的系统
US7426703B2 (en) 2003-08-27 2008-09-16 Microsoft Corporation Hierarchical navigation layers for wizards
US7925611B1 (en) * 2003-09-25 2011-04-12 Rockwell Automation Technologies, Inc. Graphical user interface
US7752559B1 (en) 2003-12-05 2010-07-06 The Mathworks, Inc. Graphical model preparation for embedded deployment
JP2005196291A (ja) * 2003-12-26 2005-07-21 Fujitsu Ltd ユーザインタフェースアプリケーション開発プログラム、および開発装置
US7975240B2 (en) * 2004-01-16 2011-07-05 Microsoft Corporation Systems and methods for controlling a visible results set
US20050177814A1 (en) * 2004-01-26 2005-08-11 Martlage Aaron E. System for providing a graphical representation of user interface and executable application operation
US7007245B2 (en) * 2004-03-12 2006-02-28 Chevron U.S.A. Inc. Product selection expert system
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US7543278B2 (en) * 2004-10-15 2009-06-02 Microsoft Corporation System and method for making a user interface element visible
US20060100991A1 (en) * 2004-10-21 2006-05-11 International Business Machines Corporation Method for dynamical determination of actions to perform on a selected item in a web portal GUI environment
US20070055932A1 (en) * 2005-09-02 2007-03-08 Microsoft Corporation Application programming interfaces for graphical user interfaces
US20070079309A1 (en) * 2005-09-30 2007-04-05 David Schmidt Task generation using information handling system
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US8806347B2 (en) * 2005-12-27 2014-08-12 Panasonic Corporation Systems and methods for providing distributed user interfaces to configure client devices
US20070288279A1 (en) * 2006-06-07 2007-12-13 Microsoft Corporation Entering And Using Time Ranges
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
JP4881102B2 (ja) * 2006-08-15 2012-02-22 富士通株式会社 選択系gui部品の表示方法及び表示制御装置
US8146006B2 (en) * 2006-12-01 2012-03-27 International Business Machines Corporation Method and apparatus for obtaining user interface information from executable program code
US20080168367A1 (en) * 2007-01-07 2008-07-10 Chaudhri Imran A Dashboards, Widgets and Devices
US7962443B2 (en) * 2007-02-08 2011-06-14 Interactive Documents, Llc Method and system for replacing data in a structured design template
CN100504771C (zh) * 2007-06-08 2009-06-24 腾讯科技(深圳)有限公司 一种生成应用程序界面的方法及系统
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
KR101311669B1 (ko) * 2007-12-17 2013-09-27 노키아 코포레이션 보조 설정 및 관리
US20090271742A1 (en) * 2008-04-29 2009-10-29 Rui Zhang User interface navigation design system
US20100125541A1 (en) * 2008-11-14 2010-05-20 Andreas Werner Wendel Popup window for error correction
US20100251118A1 (en) * 2009-03-26 2010-09-30 Peterson Michael L Help utility with expanded content display
JP2011253374A (ja) * 2010-06-02 2011-12-15 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US9009592B2 (en) 2010-06-22 2015-04-14 Microsoft Technology Licensing, Llc Population of lists and tasks from captured voice and audio content
US8370767B2 (en) * 2010-06-22 2013-02-05 Microsoft Corporation List authoring surface
US20130067365A1 (en) * 2011-09-13 2013-03-14 Microsoft Corporation Role based user interface for limited display devices
US10192176B2 (en) 2011-10-11 2019-01-29 Microsoft Technology Licensing, Llc Motivation of task completion and personalization of tasks and lists
JP5853828B2 (ja) * 2012-03-30 2016-02-09 富士通株式会社 ワークフロー作成方法、プログラム
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
GB2518003A (en) * 2013-09-10 2015-03-11 Belegin Ltd Method and apparatus for generating a plurality of graphical user interfaces
US10394533B2 (en) 2013-09-30 2019-08-27 The Mathworks, Inc. Reusable component in a modeling environment
JP6032250B2 (ja) * 2014-07-31 2016-11-24 キヤノンマーケティングジャパン株式会社 プログラム生成装置、情報処理装置、制御方法、およびプログラム
US10380656B2 (en) 2015-02-27 2019-08-13 Ebay Inc. Dynamic predefined product reviews
US9952837B1 (en) * 2015-04-01 2018-04-24 The Mathworks, Inc. Reusable component in a modeling environment
US10503341B2 (en) * 2015-07-09 2019-12-10 International Business Machines Corporation Usability analysis for user interface based systems
US10521502B2 (en) * 2016-08-10 2019-12-31 International Business Machines Corporation Generating a user interface template by combining relevant components of the different user interface templates based on the action request by the user and the user context
CN107846321B (zh) * 2016-09-19 2022-03-11 阿里巴巴集团控股有限公司 一种接口的监控方法、装置及电子设备
DE112017007222T5 (de) 2017-04-13 2019-11-28 Mitsubishi Electric Corporation Bildschirmanzeigegenerierungsvorrichtung, Fabrikautomatisierungssystem und Bildschirmanzeigegenerierungsverfahren
KR102378953B1 (ko) * 2017-06-16 2022-03-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 규칙 기반 사용자 인터페이스 생성
US11332340B2 (en) * 2018-08-28 2022-05-17 Tk Elevator Innovation And Operations Gmbh Elevator control and user interface system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903454A (en) 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
US5644686A (en) 1994-04-29 1997-07-01 International Business Machines Corporation Expert system and method employing hierarchical knowledge base, and interactive multimedia/hypermedia applications
US6434578B1 (en) 1996-06-26 2002-08-13 Microsoft Corporation Generating instruction sequences using independently executable pane renderers
US6021403A (en) * 1996-07-19 2000-02-01 Microsoft Corporation Intelligent user assistance facility
US5877759A (en) * 1997-03-26 1999-03-02 Netscape Communications Corporation Interface for user/agent interaction
US8121891B2 (en) * 1998-11-12 2012-02-21 Accenture Global Services Gmbh Personalized product report
US6029158A (en) * 1998-12-22 2000-02-22 Ac Properties B.V. System, method and article of manufacture for a simulation enabled feedback system

Also Published As

Publication number Publication date
US20020118225A1 (en) 2002-08-29
EP1237076A2 (en) 2002-09-04
EP1237076A3 (en) 2006-10-11
CN1387105A (zh) 2002-12-25
US7013297B2 (en) 2006-03-14
JP2003015874A (ja) 2003-01-17

Similar Documents

Publication Publication Date Title
JP4718747B2 (ja) ユーザインターフェイスを生成するためのエキスパートシステム
Li et al. SUGILITE: creating multimodal smartphone automation by demonstration
US7017145B2 (en) Method, system, and program for generating a user interface
US7165215B2 (en) Pane element
US8261177B2 (en) Generating media presentations
JP4643931B2 (ja) 外部プログラムに基づくテーマを使用するWebページレンダリング機構
US7636722B2 (en) System and method for describing application extensions in XML
US7620895B2 (en) Systems and methods for teaching a person to interact with a computer program having a graphical user interface
JP4972254B2 (ja) リフレッシュ可能なWebクエリを作成するための統合された方法
US7636897B2 (en) System and method for property-based focus navigation in a user interface
US20060265662A1 (en) System and method for generating and updating user interfaces of web-based applications
US8627344B2 (en) Methods and apparatuses for user interface management
US20020089526A1 (en) Infocenter user interface for applets and components
US7992128B2 (en) Computer software adaptation method and system
US20040034831A1 (en) Methods and apparatus for low overhead enhancement of web page and markup language presentations
CA2481262A1 (en) Programming interface for a computer platform
US20060053411A1 (en) Systems, methods, and computer readable media for consistently rendering user interface components
JPH09223062A (ja) サービス提供形態のカスタマイズ方法およびその方法の実施に使用可能なサーバ装置
Seffah et al. Multiple user interfaces: Towards a task-driven and patterns-oriented design model
Barnaby Distributed. NET Programming in VB. NET
Chen et al. ZK: AJAX without the JavaScript framework
Kost Dynamically generated multi-modal application interfaces
Menkhaus Adaptive user interface generation in a mobile computing environment
JP2005512187A (ja) ユーザー対話性画像要素を提供するユーザーインターフェイスディスプレイ装置
McClure Beginning Ajax with Asp. Net

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050217

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070305

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070605

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070927

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20070928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070928

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071206

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071228

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7431

Effective date: 20091202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091202

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20101129

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7431

Effective date: 20101129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110225

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110401

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350