(57)【特許請求の範囲】
【請求項１】
コンピュータシステムによる任意のデータプロバイダーからのデータの標準化フィルタリング方法において、
任意のデータプロバイダーから、複数のデータオブジェクト及びこれらデータオブジェクトに関連付けられている複数の属性を含む第１の組のデータを受信し、
各ラベルが第１の組のデータの異なる属性を記述している複数のラベル、及び、前記複数の属性の少なくとも１つに関連付けられているフィルタ入力値を、このコンピュータシステムのユーザから受信するための、複数のフィルタ入力値用の領域と共に、前記第１の組のデータを表示し、ここで、前記複数のフィルタ入力値用の領域の各々が、前記第１の組のデータの異なる属性に関連付けられており、前記フィルタ入力値用の領域に関連付けられている前記異なる属性に対応するフィルタ入力値のみを受信するためのものであり、
前記コンピュータシステムのユーザから、前記複数のフィルタ入力値用の領域のうちの１つまたは複数に対するフィルタ入力値を受信し、ここで、前記複数のフィルタ入力値用の領域のうちの第１のフィルタ入力値用の領域が、前記複数の属性のうちの第１の属性に対応する第１のフィルタ入力値を受け入れ、
前記フィルタ入力値を任意のデータプロバイダーに送信し、
任意のデータプロバイダーから第２の組のデータを受信し、ここで、前記第２の組のデータが、前記フィルタ入力値に従って前記第１の組のデータをフィルタリングすることによって導出され、
前記複数のラベル及びフィルタ入力値用の領域と共に前記第２の組のデータを表示する、
任意のデータプロバイダーからのデータの標準化フィルタリング方法。
【請求項２】
請求項１に記載の方法において、
前記組のデータ、ラベル及びフィルタ入力値用の領域を、コントロールウィンドウに表示することを含む、方法。
【請求項３】
請求項２に記載の方法において、
更に、質問ユーザーインターフェースを表示し、前記コントロールウィンドウを質問ユーザーインターフェース中に表示すること、
を含む方法。
【請求項４】
請求項１に記載の方法において、
前記第１及び第２の組のデータがデータオブジェクトの行／列テーブルであり、各列が前記属性の一つを表し、各行が一つのデータオブジェクトを表す、方法。
【請求項５】
請求項１に記載の方法において、
更に、フィルタ入力値をデータプロバイダーに最後に供給してから経過した時間を計時し、
前記経過時間が所定の閾値間隔を超えるか、又はユーザが明白に送信ステップを開始するか、いずれかが最初に起こった時に、新しいフィルタ入力値をデータプロバイダーに送信する、方法。
【請求項６】
請求項５に記載の方法において、
更に、前記任意のデータプロバイダーから前記所定の閾値間隔を受信し、ここで、前記所定の閾値間隔が、ユーザの応答性と、前記任意のデータプロバイダーがデータをフィルタするのに必要とされる時間との、バランスをとるように設定されている、方法。
【請求項７】
請求項１に記載の方法において、
少なくとも１個のフィルタ入力値用の領域がテキストストリングを含み、このテキストストリングを前記フィルタ入力値用の領域内部に表示し、前記複数のフィルタ入力値用の領域のうちの１又は複数で、フィルタ入力値をテキストストリングに変更する、方法。
【請求項８】
請求項１に記載の方法において、
所定のアプリケーションプログラミングインターフェイスによる、フィルタ指令の転送、及び、データの組の提供を含む、方法。
【請求項９】
請求項８に記載の方法において、
前記アプリケーションプログラミングインターフェイスが、
（ａ）フィルタ入力値用の領域の設定、（ｂ）フィルタ入力値用の領域のゲット、（ｃ）全フィルタ入力値用の領域の表示／隠蔽、（ｄ）通知を送信するペアレントの設定、及び（ｅ）フィルタタイマーの間隔の設定のための機能を含み、且つ、
前記アプリケーションプログラミングインターフェイスが、
（ａ）任意のデータプロバイダーに対してフィルタ入力値用の領域を変更したことを通知すること、（ｂ）任意のデータプロバイダーに対してプルダウンメニューを返すことを要求すること、（ｃ）任意のデータプロバイダーに対してオペレータを選択したことを通知すること、及び（ｄ）ペアレントに対してフィルタ入力値用の領域をスタートさせたこと又は削除終了させたことを呼出す機能／それらのための機能を含む、方法。
【請求項１０】
任意のデータプロバイダーがコンピュータシステムのメモリー又は記憶装置中に位置する請求項１に記載の方法。
【請求項１１】
任意のデータプロバイダーがコンピュータシステムのメモリー又は記憶装置中に位置し、該第２コンピュータシステムが第１コンピュータシステムと通信する請求項１に記載の方法。
【請求項１２】
コンピュータシステムによって第１の組のデータの中のデータをフィルタリングするために用いられるコントロールを表示装置上に表示する方法であって、
任意のデータプロバイダーから第１の組のデータを受信し、この第１の組のデータが複数のデータオブジェクト及びこれらデータオブジェクトに関連付けられている複数の属性を含み、
複数のラベル、複数のプルダウンメニューボタン、及び複数のフィルタ入力値用の領域と共に、コントロール中に第１の組のデータを表示し、ここで、各ラベルは第１の組のデータの属性を表示し、各ラベルは一組の比較モードに対応し、各フィルタ入力値用の領域は第１の組のデータの属性に対応し、且つ、少なくとも１個のフィルタ入力値用の領域が該フィルタ入力値用の領域の関連付けられている属性により第１の組のデータを変更するために用いる入力を受信し、
ラベルの隣のプルダウンメニューボタンの操作に応答して、前記任意のデータプロバイダーから提供される内容のプルダウンメニューを表示し、ここで、前記任意のデータプロバイダーは、前記プルダウンメニューに表示された、１つまたは複数の属性特有フィルタリングオプションを提供し、これによって、前記任意のデータプロバイダーが、前記コンピュータシステムのユーザから、前記ラベルによって記述される属性のための、前記１つまたは複数の属性特有フィルタリングオプションに対する、入力応答を引き出し、
プルダウンメニューに応答するコンピュータシステムのユーザから入力を受信し、
前記入力を任意のデータプロバイダーに送信し、
任意のデータプロバイダーから第２の組のデータを受信し、ここで、該第２の組のデータは入力に従って第１の組のデータをソートすることによって導出され、
第２の組のデータを表示する、
ことを含むコントロールを表示装置上に表示する方法。
【請求項１３】
少なくとも一つの前記プルダウンメニューが、プルダウンメニューの関連付けられている属性についての比較モードの選択からなる請求項１２に記載の方法。
【請求項１４】
プルダウンメニューの内容が、プルダウンメニューの関連付けられている属性についてのカスタムコントロールを含む請求項１２に記載の方法。
【請求項１５】
プルダウンメニューが個別のウィンドウを開く請求項１２に記載の方法。
【請求項１６】
プルダウンメニューの内容が、プルダウンメニューの関連付けられている属性についての固有値リストを含む請求項１２に記載の方法。
【請求項１７】
ユーザーインターフェース選択装置とディスプレイとを含む図形ユーザーインターフェースを持つコンピュータシステムによって、データプロバイダーへの質問の形式を定め質問の結果を提示する方法において、
（ａ）データオブジェクトの組に関連付けられているデータ属性の組を識別するステップと、
（ｂ）前記図形ユーザーインターフェースの第１のフィールドの前記属性のためのラベルを提示するステップと、
（ｃ）前記コンピュータシステムのユーザから、前記第１のフィールドに隣接するフィルタで、１つまたは複数の前記属性に対応するデータエントリーを受信するステップであって、前記フィルタ入力値用の領域の各々が、前記属性の異なる１つに対応し、前記フィルタ入力値用の領域に関連付けられている前記異なる属性に対応するフィルタ入力値のみを受信するためのものである、ステップと、
（ｄ）データプロバイダーに質問し、前記受信したデータエントリーに応じた前記データオブジェクトの組をフィルタリングすることによって、前記データオブジェクトの組においてデータオブジェクトを識別するステップと、
（ｅ）前記識別されたデータオブジェクトが、前記ラベルとそれに関連付けられているフィルタ入力値用の領域と一緒に提示されるように編成されている、前記質問の結果を図形ユーザーインターフェースに提示するステップと、
を含む方法。
【請求項１８】
ウィンドウ化されたヘッダーコントロールがステップ（ａ）乃至（ｄ）を遂行し、別個のウィンドウ化されたディスプレイコントロールがステップ（ｅ）を行う請求項１７に記載の方法。
【請求項１９】
請求項１７に記載の方法において、
前記第１フィールドを第１行に配置し、
前記フィルタ入力値用の領域を、前記第１行の下の第２行に配置し、
前記質問によって識別されたデータオブジェクトを前記第２行の下にある連続行に表示する、
ことも含む方法。
【請求項２０】
請求項１７に記載の方法において、
前記識別ステップが、前記図形ユーザーインターフェースと統合されるコード化からではなく、前記データプロバイダーからの前記データ属性の組を取得するステップを含む、
ことを特徴とする方法。
【請求項２１】
請求項１７に記載の方法において、
データエントリーが前記フィルタ入力値用の領域のただ１つに受信された時、前記データプロバイダーに２以上の質問要求を発行するステップであって、これら質問要求のうちの第２のものが、第１のものよりも詳細であるステップを含む、
ことを特徴とする方法。
【請求項２２】
請求項１に記載の方法において、
前記コンピュータシステムの前記ユーザから、追加フィルタ入力値を受信するステップであって、前記複数のフィルタ入力値用の領域の第２のフィルタ入力値用の領域が、前記複数の属性のうちの第２の属性に対応する第２のフィルタ入力値を受け入れるステップと、
前記追加フィルタ入力値を前記任意のデータプロバイダーに送信するステップと、
前記任意のデータプロバイダーから第３のデータの組を受信するステップであって、前記第３のデータの組が、前記追加フィルタ入力値に応じて前記第２の組のデータをフィルタリングすることによって、導出されるステップと、
前記複数のフィルタ入力値用の領域と前記複数のラベルとともに前記第３のデータの組を表示するステップと、
をさらに含む方法。
【請求項２３】
コンピュータシステムによって第１の組のデータのデータをフィルタリングするのに使用されるコントロールを表示装置に表示する方法であって、
任意のデータプロバイダーから第１の組のデータを受信し、ここで、前記第１の組のデータが、複数のデータオブジェクトと、これらデータオブジェクトに関連付けられている複数の属性とを含み、
前記第１の組のデータを、複数のラベルと複数のプルダウンメニューボタンと共に表示し、ここで、各ラベルが、前記第１の組のデータの属性を記述し、各ラベルがプルダウンメニューボタンに対応し、
ラベルに関連付けられているプルダウンメニューボタンの起動に応答して、前記任意のデータプロバイダーから与えられたコンテンツを持つプルダウンメニューを表示し、ここで、前記任意のデータプロバイダーが、前記プルダウンメニューに表示された１つまたは複数の属性特有フィルタリングオプションを供給し、前記任意のデータプロバイダーが、前記ラベルによって記述された前記属性のための前記１つまたは複数の属性特有フィルタリングオプションに応答して、コンピュータシステムのユーザの入力を引き出し、
前記プルダウンメニューに応答する前記ユーザからの入力を受信し、
前記入力を前記任意のプロバイダーに送信し、
前記任意のデータプロバイダーから第２の組のデータを受信し、ここで、前記データの組が、前記入力に応じて前記第１の組のデータをソートすることによって導出される、
ことを含む方法。
【請求項２４】
請求項２３に記載の方法において、
少なくとも１つのプルダウンメニューが、比較モードの選択を含む、
ことを特徴とする方法。
【請求項２５】
請求項２３に記載の方法において、
前記プルダウンメニューの前記コンテンツが、カスタムコントロールを含む、
ことを特徴とする方法。
【請求項２６】
請求項２３に記載の方法において、
前記プルダウンメニューの前記コンテンツが、固有値リストを含む、
ことを特徴とする方法。
【請求項２７】
請求項１７に記載の方法において、さらに、
視覚的な表示応答スピードと処理応答性能との間のバランスを反映する、バッチ時間間隔にタイマーを設定するステップと、
受信したデータエントリーをバッチして格納するステップと、
前記ステップ（ｄ）における前記データプロバイダーへの質問の際に、前記タイマーが満了した時、又はユーザが明瞭にバッチされたデータエントリーを送ることを指示した時のうちどちらかが早く起こったときに、データプロバイダーに通信を送るステップと、
を含むことを特徴とする方法。
【請求項２８】
請求項２７に記載の方法において、さらに、
前記バッチされたデータエントリーが前記データプロバイダーに送信されたとき、前記タイマーをリセットするステップを含むことを特徴とする方法。
【請求項２９】
請求項２７に記載の方法において、さらに、
ユーザ入力をユーザから受け入れる毎に、前記タイマーをリセットするステップを含むことを特徴とする方法。
【請求項３０】
請求項２７に記載の方法において、さらに、
タイミングパラメータを前記データプロバイダーから受信するステップと、
前記タイミングパラメータに応じて前記バッチ時間間隔に前記タイマーを設定するステップと、
を含む、ことを特徴とする方法。
【請求項３１】
請求項２７に記載の方法において、ウェブブラウザによって当該方法を行うことを特徴とする方法。
【請求項３２】
請求項１７に記載の方法において、
前記質問の結果が、ペアレントウィンドウに提示されており、
一般的なフィルタコントロールが前記フィルタ入力値用の領域を受け取り、前記コンピュータシステムが、前記ペアレントウィンドウを介して前記一般的なフィルタコントロールと前記属性データプロバイダーとの間で間接的に通信させる手段を有し、前記一般的なフィルタコントロールが１つ以上のフィルタ入力値用の領域を伴う動作の実行を要求するメッセージに対して応答し、前記属性データプロバイダーは、前記データエントリーに基づくとともに、前記属性データプロバイダーによって選択されたフィルタリング技法に従って、前記データセットをフィルタリングすることを特徴とする方法。
【請求項３３】
請求項１７に記載の方法において、
複数の異なるタイプのデータプロバイダーのうちのいずれか１つを利用可能な一般的なフィルタコントロールによって、前記フィルタ入力値用の領域内の前記データエントリーを受信することを特徴とする方法。
【請求項３４】
請求項１７に記載の方法において、さらに、
前記データ属性の組のうちの所定の属性のための選択可能な複数の値を、当該ユーザにテキストの態様で提示することなしに非テキストで提示するための非テキスト用セレクタを提示するステップを含み、
前記非テキスト用セレクタは、前記図形ユーザーインターフェースへとコード化することなく、前記データプロバイダーによって提供されることを特徴とする方法。
【請求項３５】
請求項３４に記載の方法において、
前記の非テキスト用セレクタは、複数の色の範囲を図式的に表示することを含むことを特徴とする方法。
【請求項３６】
請求項１７に記載の方法において、
前記データプロバイダーから、カスタムコントロールの範囲内でカスタムコントロールの態様及びその動作を示すカスタムコントロール情報を受信するステップと、
受信した前記カスタムコントロール情報に基づいて、前記カスタムコントロールの範囲内の当該カスタムコントロールを提示するステップと、
を含むことを特徴とする方法。
【請求項３７】
請求項３６に記載の方法において、
前記カスタムコントロールの提示は、複数の色の範囲を図式的に表示することを含むことを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データプロバイダーに対して質問を提出し、結果を標準化された形式で返すための技術に関するものである。
【０００２】
【従来の技術】
コンピュータユーザーは、コンピュータを利用しようという時に度々圧倒的な量の情報に出会うことがある。インターネットサーチエンジンのようなデータプロバイダーは、一つの質問に対して何千もの「ヒット」を返す。イーメールアーカイブについてのデータプロバイダーは、一つのメッセージを見出すためにスクロールしなければならない何百ものメッセージを示す。コンピュータファイルのディレクトリツリーは、複雑なレイヤに何万ものドキュメントをリストしている場合がある。図１(a) は、各データプロバイダー210 、212 、214 、216 、218 に対して異なるインターフェース200 、202 、204 、206 、208 を持つシステムを示す。
【０００３】
この量の情報にアクセスする場合の困難さと妥協するために、データプロバイダーは標準ユーザーインターフェースを用いようとしない。ユーザーは、一つの多目的ユーザーインターフェースを学習する代わりに、マルチユーザーインターフェース、時間の浪費及びいらいらする仕事に慣れなければならない。
【０００４】
標準ユーザーインターフェースがないために、ソフトウェア開発者にとって、各データプロバイダーのために異なるインターフェースを設計しなければならないという過剰な仕事が生まれる。例えばウィンドウ化された環境において、ソフトウェア開発者は、各データプロバイダーの要求を満たすために、異なるタブ、ボタン、及び全体の構成を持つ新しいコントロールを設計しなければならない。
【０００５】
実在のユーザーインターフェースは、同時に多重属性に基づいてデータの組をフィルタリングすることができる。しかし、ユーザーインターフェースを見るだけでこれを完了させる方法が常に明らかであるとは限らない。例えば、ユーザーがデータの組の属性及び質問言語の進んだ知識を有する場合のみ、ユーザーインターフェースがデータの組の多重属性を用いる正確なフィルタリングをサポートするかも知れない。標準ユーザーインターフェースは、多重属性について、直観的な形でデータの組の正確なフィルタリングを可能にはしない。
【０００６】
ユーザーインターフェースは、各質問タームについて多重比較モードをサポートすることにより、データの組について正確な質問を送出することができる。例えば、Microsoft エクセル97のオートフィルタは、質問タームについて多重比較モードをサポートする。オートフィルタによれば、ユーザーが、質問タームとデータの組とを比較する方法を指定することができる。オートフィルタの実行上の一つの欠点は、ユーザーが、主ユーザーインターフェースから離れたダイアログボックスで比較モードを指定することである。
【０００７】
連続的なフィルタによって莫大な量のデータを管理し得る量に引き下げるために、しばしばユーザーによって反復相関質問が送出される。例えば、インターネットサーチエンジンに対する一つの質問を送出したユーザーが、回答として何千もの「ヒット」を受取ることがある。このユーザーは、これらの回答の中からサブの組を得るために、続いてもっと狭い質問を送出する。より狭い質問は、通常は元の質問＋他のタームである。
【０００８】
修正された質問が、第１の質問に応答して返された狭い組ではなく、全体のデータの組に対して実行されると、膨大な冗長が発生する。ユーザーインターフェースとデータプロバイダーとの間に、質問タームについての変更のみが送られるのではなく、質問ターム全体が送られると冗長が少なくなる。これらの冗長は、ユーザーインターフェースにおける目視によるフィードバックの機会を無くしてしまい、データの組のフィルタリングにおける応答時刻を遅らせる原因になる。
【０００９】
実在する殆どのユーザーインターフェースは、他の基準の入力によるデータの組の「シュリンキング」を示すのではなく、質問式が完全になったことをユーザーが正確に表示した後でのみ質問を送出する。例えば、ユーザーが質問を入力し続いてエンターキーを押して質問を送出する。この方法の欠点は、入力がエンターされる時のデータの組のシュリンキングを目視する機会が失われることである。
【００１０】
このため、実在するユーザーインターフェースの一部のものは、テキスト入力の各キーストロークが入力された後でフィルタする。例えば、多くのアプリケーションが、各キーストロークが入力された時に起動するヘルプインデックスを持っている。ユーザーが「ディスプレイ」について助けが必要な時は、ユーザーが「ｄ」を入力すると、インデックスは「ｄ」にジャンプする。ユーザーが「ｉ」を入力すると、インデックスは「ｄｉ」にジャンプする等である。この方法の欠点は、フィルタリングシステムが大きいデータの組をフィルタリングする際に、時には、ダウンしてしまい、応答性及び目視性能が損なわれることである。
【００１１】
実在するユーザーインターフェースの他の欠点は、データの組の非テキストのフィルタリングが不可能なことである。その代わり、ユーザーがデータの組の中のカラー、アイコン、ビットマップ又はサウンドについてサーチする場合であっても、データの組は、任意の文字のパターン又は文字の正確な値によってソートされる。
【００１２】
【発明が解決しようとする課題】
本発明の好ましい実施例においては、ユーザーがよく知らないプロバイダーと効果的に且つ直観的に対話できる標準ユーザーインターフェースを具備することにより、従来技術の欠点を克服する。
【００１３】
【課題を解決するための手段】
本発明の好ましい実施例は、ヘッダーコントロールにより、ユーザーが、不要なデータを直観的且つ効果的にフィルタすることを可能にする。ヘッダーコントロール及びそれが含む標準ユーザーインターフェースは、ユーザー及びソフトウェア開発者のためのタスクを簡易化する。ユーザーは、もはや多数のユーザーインターフェースにおける熟練者になる必要はない。ソフトウェア開発者は、もはやそれぞれのデータプロバイダーのためのユーザーインターフェースを設計する必要はない。その代わり、ソフトウェア開発者は、データプロバイダー及びデータの組についての最小の情報を標準ユーザーインターフェースに提供するだけでよい。
【００１４】
記載された実施例においては、標準ユーザーインターフェースは、ウィンドウ化された環境において「QuickFilter 」ヘッダーコントロールと表現されている。標準ユーザーインターフェースは、対応する縦に配列された「リストビュー」コントロールによって表示されるデータの組のそれぞれの属性に対するラベル、フィルタ及びプルダウンメニューボタンを含む。プルダウンメニューボタンは、データの組の属性と関連するアイテムのメニューを表示することができる。コントロールは、コンピュータのオペレーティングシステムに含まれる一組のアプリケーションプログラミングインターフェース（ＡＰＩ）を通してデータプロバイダーと通信する。
【００１５】
データプロバイダーは、これらのＡＰＩを通して、ヘッダーコントロールデータの組及びプルダウンメニュー情報を送出し、続いて、標準ユーザーインターフェースの一部分として、プルダウンメニュー情報がヘッダーコントロールに表示される。ヘッダーコントロールは、コントロールのフィルタに対する変更をデータプロバイダーに通知する。ヘッダーコントロールは、更に、データプロバイダーによって供給されたプルダウンメニュー情報を利用した選択をデータプロバイダーに通知する。
【００１６】
データプロバイダーは、ヘッダーコントロールから受信したフィルタの変更及び選択情報に関するデータの組をフィルタする。各データプロバイダーは、ヘッダーコントロールから受信した情報を与えるデータの組をフィルタする方法を決定する。データの組がフィルタされると、データプロバイダーは、それをリストビューコントロールに返送し、そこで表示される。
【００１７】
ヘッダーコントロールは、直観的且つ容易に用いられるように設計される。それによれば、データの組の属性が表示されているデータの組のそれぞれの属性に対するラベル及びフィルタを指示することにより、正確で直観的な質問を行うことができる。ユーザーによってフィルタが変更されると、データの組はデータプロバイダーによってフィルタされ、リストビューコントロールに再表示される。これにより、フィルタ入力を受信した時におけるデータの組のシュリンキングの目視的効果を創り出す。
【００１８】
ヘッダーコントロールは、ユーザーからそれを行うべきとする明確な信号を受けることなしに、フィルタ変更の通知を送出することにより、この目視の「シュリンキング」効果を達成する。フィルタ要求が未処理になること及び有利なシュリンキング効果を壊すことがないように、データプロバイダーによってセットされるフィルタタイマーが、フィルタ要求を送出する頻度を決定する。データの組のフィルタリング及び再表示が早急に行われる場合は、データの組は、入力の各キーストロークの後でフィルタされることがある。他方、データの組のフィルタリング及び再表示が長時間かかる場合は、頻繁過ぎる組の再構成によって生じる効率の低下に対する表示の応答性をバランスさせるため、フィルタタイマーを長い間隔にセットするとよい。
【００１９】
記載された実施例においては、プルダウンメニューが、属性についてのフィルタがデータの組と比較される比較モードについての情報を表示する。プルダウンメニューの中のその情報が関連する属性の近くにその情報を表示することにより、標準ユーザーインターフェースの他の直観的な観点が与えられる。
【００２０】
他の実施例においては、プルダウンメニューが、データプロバイダーによって提供されるカスタムコントロールを表示する（又はカスタムコントロールを表示する２次ウィンドウを開く）。カスタムコントロールは、非テキスト属性を持つデータの組をフィルタするために用いる非テキストフィルタ入力を、ユーザーが入力できるようにする。例えば、カスタムコントロールは、ユーザーがカラーを選択し続いてカラーによってデータの組をフィルタするために用いられるカラーパレットであってもよい。
【００２１】
【発明の実施の形態】
本発明の他の及び追加の特徴は、図面を参照して行われる以下の詳細な説明により、容易に明らかになる。
【００２２】
本発明について、任意のデータプロバイダーに対する標準ユーザーインターフェース（ＳＵＩ）を具えるための方法及び装置を参照して説明する。ユーザーは、ＳＵＩの使用を通して、よく知らないデータプロバイダーに対して正確な質問を送出し、適時に応答を受信することができる。応答の適時性は、質問の効率及び中間的に更新される質問の結果を連続的に表示する目視的効果を最大にするために変動する。以下の実施例においては、ＳＵＩの標準化は、ＳＵＩ及びデータプロバイダーが、一組のアプリケーションプログラミングインターフェース（ＡＰＩ）を受け入れることによって達成される。
【００２３】
〔本発明のための動作環境〕
図２及び以下のディスカッションは、本発明を実現することができる適切な計算環境の要約的且つ一般的な説明を提供するためのものである。本発明は、パーソナルコンピュータ上でランするコンピュータプログラムのコンピュータ実行可能命令の一般的コンテクストで説明されるが、当業者にとっては、本発明が更に他のプログラムモジュールとの組合せにより実行可能であることが明らかであろう。
【００２４】
一般的に、プログラムモジュールは、特定のタスクを遂行し又は特定のアブストラクトデータタイプを実行するルーチン、プログラム、コンポーネント、データ構造体、その他を含む。更に、本発明が、手で扱うデバイス、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブルなコンシューマエレクトロニクス、ミニコンピュータ、メインフレームコンピュータ、及びその他を含む他のコンピュータシステム構成によっても実現されることが、当業者にとって明らかであろう。本発明は、更に、タスクが通信ネットワークを通してリンクされた遠隔処理装置によって実行される分布型計算環境においても実現することができる。分布型計算環境においては、プログラムモジュールは、ローカル及び遠隔両者のメモリー格納デバイスに置くことができる。
【００２５】
図２は、本発明のための動作環境を提供するコンピュータシステムの例を示す図である。このコンピュータシステムは、処理ユニット121 、システムメモリー122 、及びシステムメモリーを含む種々のシステムコンポーネントを処理ユニット121 に相互接続するシステムバス123 を具えるパーソナルコンピュータ120 を含む。このシステムバスは、メモリーバス又はメモリーコントローラ、周辺バス、又はＰＣＩ、ＶＥＳＡ、マイクロチャネル（ＭＣＡ）、ＩＳＡ及びＥＩＳＡ等のバスアーキテクチャを用いるローカルバスを含む種々の型のバス構造のいずれかを含むことができる。
【００２６】
システムメモリーは、リードオンリーメモリー（ＲＯＭ）124 及びランダムアクセスメモリー（ＲＡＭ）125 を含む。例えばスタートアップの時等にパーソナルコンピュータ120 中のエレメント間の情報転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）は、ＲＯＭ124 に格納されている。
【００２７】
パーソナルコンピュータ120 は、更に、ハードディスクドライブ127 、着脱可能のディスク129 に対して読出し及び書込みを行うための磁気ディスクドライブ128 、及び、ＣＤ−ＲＯＭディスク131 から読出すため又は他の光学媒体にに対して読出し及び書込みを行うための光ディスクドライブ130 等を含む。ハードディスクドライブ127 、磁気ディスクドライブ128 及び光ディスクドライブ130 は、それぞれ、ハードディスクドライブインターフェース132 、磁気ディスクドライブインターフェース133 及び光ディスクドライブインターフェース134 により、システムバス123 に接続されている。これらのドライブ及び対応するコンピュータ読出し可能媒体は、パーソナルコンピュータ120 のためのデータ、データ構造、コンピュータ実行可能命令（ダイナミックリンクライブラリーのようなプログラムコード及び実行可能ファイル）等の非蒸発性記憶を行う。
【００２８】
上述のコンピュータ読出し可能媒体の説明においては、ハードディスク、着脱可能の磁気ディスク及びＣＤを引用したが、それは更に、磁気カセット、フラッシュメモリーカード、ディジタルビデオディスク、ベルヌーイカートリッジ、及びその他の、コンピュータが読出すことができる他の型の媒体を含むことができる。
【００２９】
オペレーティングシステム135 （例えばウィンドウズＮＴ、ウィンドウズ９５、ＭＳ−ＤＯＳ等）、１又は複数のアプリケーションプログラム136 、他のプログラムモジュール137 及びプログラムデータ138 を含む多数のプログラムモジュールが、これらのドライブ及びＲＡＭ125 中に格納される。
【００３０】
ユーザーは、キーボード140 及びマウス142 のようなポインター装置を用いてコマンド及び情報をパーソナルコンピュータ120 に入力することができる。他の入力デバイス（図示していない）としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、又はその他を含む。これら及び他の入力デバイスは、システムバスに接続されているシリアルポートインターフェース146 を通して処理ユニット121 に接続されることが多いが、パラレルポート、ゲームポート又はユニバーサルシリアルバス（ＵＳＢ）のような他のインターフェースによって接続することもできる。
【００３１】
更に、モニター147 又は他の型のディスプレイ装置が、ビデオアダプター148 のようなインターフェースを介してシステムバス123 に接続される。モニターに加えて、パーソナルコンピュータは、一般的に、スピーカー及びプリンターのような他の周辺出力装置（図示していない）を含む。
【００３２】
パーソナルコンピュータ120 は、遠隔コンピュータ149 のような１又は複数の遠隔コンピュータに対する論理的な接続を用いて、ネットワーク化された環境で動作することができる。遠隔コンピュータ149 は、サーバー、ルーター、ピアデバイス又は他の共通ネットワークノードであってもよく、図２にはメモリー格納装置150 のみが図示されているに過ぎないが、一般的には、パーソナルコンピュータ120 に関して説明したエレメントの多く又は全てを含む。図２に示された論理的接続は、ローカルエリアネットワーク（ＬＡＮ）151 及びワイドエリアネットワーク（ＷＡＮ）152 を含む。このようなネットワーク化環境は、オフィス、企業の広域コンピュータネットワーク、イントラネット及びインターネットにおいて、普通に用いられている。
【００３３】
ＬＡＮネットワーク化環境において用いられる場合は、パーソナルコンピュータ120 は、ネットワークインターフェース又はアダプター153 を通してＬＡＮ151 に接続される。ＷＡＮネットワーク化環境において用いられる場合は、パーソナルコンピュータ120 は、一般的に、モデム154 又はインターネットのようなＷＡＮ152 全体に対する通信を確立するための他の手段を含む。内装又は外装のモデム154 は、シリアルポートインターフェース146 を介してシステムバス123 に接続される。
【００３４】
ネットワーク化環境においては、パーソナルコンピュータ120 に関して示されたプログラムモジュール又はその部分は、遠隔メモリー格納装置に格納することができる。図示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段を用いることができることは明らかである。
【００３５】
〔ヘッダーコントロール及び標準ユーザーインターフェース〕
図１(b) 及び３〜１３は、本発明の実施例の標準ユーザーインターフェース（ＳＵＩ）を含むヘッダーコントロール及びリストビューコントロールの機能を示す図である。図１(b) 及び３〜８は、ヘッダーコントロール及びＳＵＩ全体のワーキングを示し、図９(a) 及び９(b) は、テキストフィルタ入力に対してフィルタタイマーがＳＵＩの中で作用する態様を示す。図１０及び１１は、それぞれ、カスタムコントロールメニュー及び固有値リストを用いる本発明の他の実施例を示す。図１２及び１３は、図示したシステムの動作を更に一般的に説明するフローチャートである。
【００３６】
図１(b) は、本発明によるＳＵＩの説明図である。従来の技術による方法によれば、複数のデータプロバイダー210 、212 、214 、216 、218 をアクセスするためには複数のＵＩが必要であるのと対照的に、本発明では、複数のデータプロバイダーをアクセスするために１個のＳＵＩ220 だけでよい。
【００３７】
図示されたＳＵＩ220 は、ＡＰＩにより設計された任意のデータプロバイダーにアクセスすることができる。これについては以下に詳述する。例えば、ＳＵＩを、下記に示すＡＰＩを用い、ファイルマネージャ202 を通してファイルディレクトリツリー212 にアクセスするために用いることができる。同じＳＵＩを、スプレッドシート216 、インターネット214 、又はイーメールアーカイブ218 をアクセスするために用いることができる。
【００３８】
ＳＵＩ220 は、コンピュータシステムのユーザー及びソフトウェア設計者にとって利点がある。ユーザーは、もはや別の質問言語を学ぶこと又は別のデータプロバイダーにアクセスするために別のインターフェースを操作する方法を思い出す必要はない。ソフトウェア開発者は、もはやデータプロバイダー固有のユーザーインターフェースを設計する必要はない。それに代わって、ソフトウェア開発者はＳＵＩの特徴のみを信頼すればよい。
【００３９】
図３は、ユーザーによってコントロールが開かれた後のＳＵＩ220 を含むコントロール222 を示す。図３に示されたＳＵＩは、スタンドアローンコントロールの一部分である。他の実施例においては、ＳＵＩは他の質問コントロールの一部分である。
【００４０】
コントロール222 は、データの組（属性についての欄 350、 352、 354、 356を含む）、データの組の属性についてのラベル 320、 322、 324、 326、データの組の属性についてのフィルタ 330、 332、 334、 336、及び属性のラベルの次に、プルダウンメニューボタン 340、 342、 344、 346を表示するための領域310 を含む。属性の数及び属性のラベルは、コントロールが開かれる時に知られる。他の実施例においては、属性及び属性についてのラベルの数は、コントロールに表示されたデータの組から収集される。どのような場合においても、属性についての欄及びラベルの数はデータの組に依存して変化する。
【００４１】
図示された実施例においては、ヘッダーコントロールがリストビューコントロールに関係なく開かれる。これは、図３に示されるように、データの組が表示される以前にヘッダーコントロールが視認されるようになることを意味する。他の実施例においては、ヘッダーコントロールが開かれると同時にデータの組がリストビューコントロール中に表示される。データプロバイダーがデータの組及びプルダウンメニューに含まれる情報を供給し、これらはヘッダーコントロール上のプルダウンメニューボタンを押すことによって動作する。
当業者には明らかなように、データの組の領域、ラベル、フィルタ、及びプルダウンメニューボタンの厳密な構成は、所望により変更することができる。
【００４２】
図４は、データの組を表示する図３のコントロールを示す。データの組は、データオブジェクトの行360 及びそれらのデータを記述する属性の列370 を含む。図４に示されたデータの組はネーム、タイプ、パス、及び日付によって記述されるアプリケーションドキュメントからなっているが、他のデータの組を用いることもできる。例えば、データの組は、インターネットサーチエンジン、イーメール、イーメールアーカイブに格納されたメッセージ、又はスプレッドシートに記録されたデータによって、ヒットが登録されているワールドワイドウェブページを含むことができる。データの組はデータプロバイダーによって供給される。上述のリストビューコントロールは、任意の数のデータオブジェクト又はデータ属性と共にデータの組を収容することができる。上述のヘッダーコントロールは、同様に、任意の数のデータ属性を収容することができる。
【００４３】
当業者には明らかなように、上述の実施例の機能を変更せずに、データの組の厳密な構成を変えることができる。例えば、データの組の行が属性であり、列がデータオブジェクトを表すようにしてもよい。
【００４４】
図５は、プルダウンメニューボタン342 が押され、プルダウンメニュー382 がヘッダーコントロールによって表示された図４のＳＵＩを示す。プルダウンメニュー382 は比較モードを表示しており、それによって列352 の属性のフィルタ332 （図３）がデータの組に適用される。例えば、「タイプ」属性についてのプルダウンメニューが表示される。比較モードを選択することにより、データの組のいずれかのメンバーが、属性についてのフィルタ332 に入力されたタームに対して「Starts with （前方一致）」、「Ends with （後方一致）」、「Is(exactly) （完全一致）」又は「Is not（除外）」であるタイプを持つか否かを、ユーザーがチェックすることができる。
【００４５】
データプロバイダーは、プルダウンメニューに表示される比較モード情報を供給する。この情報は、それぞれの属性について異なるものであり得る。図５においては、ユーザーがポインティング装置のカーソル390 で比較モードの「Starts with 」を選択している。（当業者には明らかなように、上述の実施例の機能を変更せずに比較モードを選択するための他の入力装置を用いることができる。）ユーザーが属性についての比較モードを選択しない場合は、データプロバイダーが質問を実行する時にはデフォルト比較モードを用いる。
【００４６】
図６は、ユーザーがヘッダーコントロールのタイプフィルタ332 に入力をエンターした後の図４のＳＵＩを示す。ユーザーは、ポインティング装置を用いてフィルタ上をクリックすることによってタイプフィルタを動作させる。フィルタ上のクリックによって指示されると、フィルタはエディットモードに切り替わる。ユーザーは「ＭＳ」と打ち込み、<ENTER> を押して、データの変更をデータプロバイダーに送る。これに対して、ポインティング装置でＳＵＩ上のどこかをクリックしてエディットモードから出ることができる。
【００４７】
ユーザーがエディットモードから出る時に、ヘッダーコントロールによって、フィルタの変更がデータプロバイダーに送られる。データプロバイダーは、タイプフィルタのターム「ＭＳ」及び、ユーザーによって選択されていたか又はデフォルト比較モードであった、いずれかの比較モード「Starts with 」によってデータの組をフィルタする。フィルタされたデータの組がデータプロバイダーによって返送され、リストビューコントロール中に表示される。
【００４８】
フィルタ及び比較モード入力を用いて質問を実行する方法をデータプロバイダーが決定するとしても、通常、データプロバイダーは、ユーザーによって変更されていないフィルタを知らない。言い換えれば、デフォルトによってフィルタはブランク（即ち非動作）であり、フィルタリングには用いられない。
【００４９】
当業者には明らかなように、上述の実施例の機能を変更せずに、エディットのためにフィルタを動作させる方法及びフィルタから出る方法には種々の方法を用いることができる。
【００５０】
図７は、ユーザーがタイプ比較モード「Ends with 」及びタイプフィルタ「Word」を選択した後の図４のＳＵＩを示す。データプロバイダーは、送られてきたフィルタ及びモード情報に従ってデータの組をフィルタする。フィルタされたデータの組がデータプロバイダーによって返送され、リストビューコントロール中に表示される。
【００５１】
図８は、ユーザーが、ヘッダーコントロール中で、タイプ比較モード「Starts with 」、タイプフィルタ「ＭＳ」、日付比較モード「年」及び日付フィルタ「９７」を選択した後の図４のＳＵＩを示す。このコントロールはデータの組を表示し、ヘッダーコントロールは、データプロバイダーが全てのこの情報を用いてデータの組をフィルタした後、そのフィルタを表示する。
【００５２】
データプロバイダーが、データの組にフィルタ及びモード選択を適用する方法を決める。図８においては、データプロバイダーが、「ＭＳ」で始まり且つ「９７」年を持つデータオブジェクトをフィルタしている。これに代わり、データプロバイダーが、「ＭＳ」で始まるか又は「９７」年を持つデータオブジェクトをフィルタしてもよい。データプロバイダーは、どのようなフィルタリングアルゴリズムにおいても、フィルタターム及びモード選択を用いることができる。フィルタリング処理は、上述の実施例のヘッダーコントロール及びリストビューコントロールには見えない。ヘッダーコントロールは、フィルタ変更及びモード選択をデータプロバイダー（又はそのインターフェースプログラム）に送り、リストビューコントロールが、返送として、フィルタされたデータの組を受け取る。
【００５３】
図８は、上述のように、質問の全てのタームに従って行われたフィルタリングの後のデータの組を示すが、ユーザーが特定のフィルタに対してエディットモードから出る時には、フィルタの変更がデータプロバイダーに送られる。比較モード選択が行われた時は、データプロバイダーに送られる。データプロバイダーがフィルタ変更又は比較モード選択を受信した時は、データプロバイダーは、質問の最新のタームに従ってデータの組をフィルタする。図８の質問について、データプロバイダーは、フィルタリング操作が図８のデータの組を得る前に、複数のフィルタリング動作を実行する。
【００５４】
〔テキストフィルタ変更のタイマー〕
図９(a) 及び９(b) は、テキストフィルタ変更のタイマーと共に動作する図４のＳＵＩを示す。ユーザーがフィルタをエディットする場合、タイマーが、ユーザーが最後にキーボード入力を行ってから経過した時間を計測する。キーボード入力を受信した時に、それは、フィルタ変更としてデータプロバイダーに送られるまで、ヘッダーコントロールによってバッチされる。ユーザーがフィルタについてのエディットモードを出る時には、ヘッダーコントロールは、バッチされた入力を自動的に送る。それに加えて、キーボード入力が最後に受信されてから経過した時間（又は質問がデータプロバイダーに最後に送られてきてから経過した時間）が或る限界以上の場合には、バッチされたキーボード入力はデータプロバイダーに送られる。
【００５５】
図９(a) の場合、図示された実施例のユーザーは初心者タイピストであること、及びタイマーが２秒にセットされていることを仮定する。ユーザーは、タイプ「ＭＳ Works」に従って図４のデータの組をフィルタしようとしている。ユーザーは「ＭＳ Wor」と打ち込むが、ユーザーがキーボードで「ｋ」を見出す前にタイマーが満了し、フィルタ変更タイプ「ＭＳ Wor」がデータプロバイダーに送られている。タイプ「ＭＳ Wor」及び比較モード「Starts with 」（デフォルト）に従ってフィルタされたデータの組が返送され表示される。
【００５６】
図９(b) の場合、ユーザーが次に「ｋ」を見出し、「ks<ENTER> 」を打ち込むと仮定する。<ENTER> によりユーザーはエディットモードから出ることになり、タイマー満了後間を置かずに直ちにデータプロバイダーに送られるべきフィルタ変更タイプ「ks」が自動的に送られる。タイプ「ＭＳ Works」及び比較モード「Starts with 」（デフォルト）に従ってフィルタされたデータの組が返送され表示される。
【００５７】
上述の実施例におけるタイマーは、各入力のキーストロークが受信された後でリセットされる。タイマーが３秒にセットされると、キーストロークの間の３秒未満の休止の場合はそれらのキーストロークが一つのフィルタ変更にバッチされるべきであるとされ、各キーストロークの後でリセットされる。最後のキーストロークの後の３秒以上の休止が受信されると、バッチされたキーボード入力がフィルタ変更として送信される。
【００５８】
本発明の上述の実施例においては、データプロバイダーによってタイマーがセットされ、また変更される場合もある。データプロバイダーがタイマーを極めて短い期間にセットした場合、データプロバイダーは、各キーストロークが入力されるとフィルタする。このような場合、データプロバイダーのフィルタリング操作がキーストロークの打ち込みより長くかかると、データプロバイダーは、フィルタ要求におけるボグダウン状態になり、そのためデータの組の再表示の可視応答が遅れ、ユーザーがエディットモードを出ることによって明示的にフィルタ操作を開始する場合にも応答が遅れる。
【００５９】
他方、タイマーが長い期間にセットされた場合、ＳＵＩは、ユーザーがキーストロークを打ち込む時にデータの組を「シュリンキング」する場合の可視的なインパクトを与える利点を失う。
【００６０】
従って、データプロバイダーは、ＳＵＩの応答性を、過剰な回数のデータの組の再構成による性能の低下に対して、バランスをとるようにタイマーをセットする。データプロバイダーの仕事が過大又は過少になると、最適時間に変更する。例えば、データプロバイダーがインターネットサーチエンジンである場合、この時間は、インターネットの利用のピーク時間では長く、インターネットの利用のオフ時間では短くする。
【００６１】
当業者には明らかなように、データプロバイダーのための最適時間を予め定めることができる場合は、上述の実施例の機能を変更せすに、ヘッダーコントロールを開く時にタイマーをセットすることができる。
【００６２】
〔カスタムコントロールメニュー〕
図１０は、上述の実施例のコントロール及びＳＵＩの他の実施例を示す。この実施例においては、ユーザーがプルダウンメニューボタン342 を操作すると、カスタムコントロールメニュー402 が表示される。データプロバイダーが、プルダウンメニューに表示されたカスタムコントロール412 を供給する。他の実施例においては、データプロバイダーが、複数のカスタムコントロール412 のうちのいずれをプルダウンメニューに表示するかの信号をコントロールに送る。（図１０のカラーピッカーコントロール412 は特許公報作成の制約のため必然的にグレーになる。）
【００６３】
ユーザーはカスタムコントロール412 と対話し、カスタムコントロールが関連している属性352 についての非テキスト質問タームを（例えば、ポインティング装置のカーソル390 で）入力する。これらの非テキスト質問タームは、データの組をフィルタするためにテキストフィルタが用いられる時に用いられる。
【００６４】
例えば、サーチされるデータの組が、地方の自動車ディーラーによってストックされている自動車であり、ワールドワイドウェッブ上の頁に詳細に記載されていると仮定する。各自動車の属性の一つは色である。限られた色の種類（白、オフホワイト、グリーニッシュグレー等）の潜在的な自動車のバイヤーが、所望の色の自動車を文字によって探すのは不便である。文字のタームで自動車の色を全て記述することは不可能である点を克服し、より直観的なフィルタを可能にするため、上述の実施例において、カスタムコントロール412 を自動車の色についてのカラーパレットの形にすることができる。このカラーパレットが与えられると、ユーザーはポインティング装置で色を選択する。この選択がフィルタの変更と同様にデータプロバイダーに送られる。すると、データプロバイダーは、フィルタとして色の選択を用いてデータの組をフィルタする。
【００６５】
カスタムコントロールメニューは、データプロバイダーによって供給される比較モード情報を、カスタムコントロールメニュー402 の横のプルダウンメニュー382 に表示する。例えばカスタムコントロール412 がカラーパレットである場合、比較モード「Is close to （類似）」及び「Is not（除外）」が表示される。他の実施例においては、カスタムコントロールメニューがカスタムコントロールを含み、一方、比較モード情報は別のメニューに表示される。
【００６６】
更に他の実施例においては、カスタムコントロールは、フィルタのプルダウンメニューの動作によって、又はプルダウンメニューの「Custom... 」エントリーの選択によって開かれる二次ウィンドウの形をとる。
【００６７】
図１４は、ユーザーが「変更」プルダウンメニューを起動した時に、二次の「カレンダー」ウィンドウが開かれる様子を示す。ユーザーは、カレンダー中の一つの日付をクリックすることができる。又は、図１５に示すように、カレンダーウィンドウ中で日付の一つの範囲をカスタムコントロール装置でドラッグしてもよい。前者の場合、一つの日付が「変更」フィルタフィールドにエントリーされ、後者の場合、日付の範囲がエントリーされる。
【００６８】
図１６は、ユーザーが「変更」プルダウンメニューボタンを操作した時に開かれる二次ウィンドウの他の例を示す。この例においては、二次ウィンドウにより、ユーザーが、例えばOn（当日）、Between （間）又はAround（付近）のような複数の条件のうちの一つを指定することができる。ユーザーがAroundを選択した場合、スライダーコントロールが起動し、指定された日付近のフィルタの基準に合致する時間の範囲をエントリーすることが可能になる。
【００６９】
カスタムカラーセレクタに戻ると、カラーデータが定量的な形（例えば、ＲＧＢ、ＹＵＶ等）でデータプロバイダーに格納されている場合、「is close to 」条件は、対応する色成分が、ユーザーによって選択された色のその色成分の例えば１５％以内というように全て数値として表される色によって満足される。（変形例においては、異なる色に対して人間の目の感度が異なるため、「最も近いこと」を判定する場合には、異なる色成分について異なる範囲の百分率が用いられる。）
【００７０】
図１０には図示されていないが、特定の他の色の関係は「lighter than（薄い）」及び「darker than （濃い）」を含む。例えばユーザー指定色を対応するグレースケール値に変換し、その値を、データプロバイダーが格納している色に対応するグレースケール値と比較することにより、これらを判定することができる。
【００７１】
〔固有値リスト〕
図１１は、図４のヘッダーコントロール及びＳＵＩの他の実施例を示す。この実施例においては、ユーザーがプルダウンメニューボタン342 を操作した時に、固有値リストメニュー422 が表示される。固有値リストは、その固有値リストに対応する属性の固有値を列挙する。例えば、図１１の固有値リストは、「MS Word 」、「MS Excel」、「MS Works」及び「Text」、即ち、データプロバイダーに格納されている全てのデータの型の完全なリストを表示する。
【００７２】
プルダウンメニューに表示される固有値リストは、ユーザーにより、ポインティング装置で値を選択するために用いられる。この選択は、フィルタ変更としてデータプロバイダーに送られ、データプロバイダーが固有値選択を用いてデータの組をフィルタする。
【００７３】
データプロバイダーは固有値リストを供給する。プルダウンメニューの内容を初期化する前に、データプロバイダーは現在のデータの組を走査し、そのデータの組の与えられた属性についての現在の固有値を決定する。比較モードが返送される時に、固有値も返送される。
【００７４】
前述したように、フィルタが複数の属性についてセットされる場合、データプロバイダーは、質問を実行する時はこれらのＡＮＤをとる。固有値リストにより、この基本的なプロトコルの強力な拡張が可能になる。ユーザーが（例えば複数の値を選択する間コントロールのキーを保持し続けることにより）一つの属性の固有値リスト中の複数の異なる値を選択する場合、これらは、データプロバイダーに質問する時はＯＲになる。これは、有効性をテストする時に高度に直観的なインターフェースを与えることが見出された。
【００７５】
〔サーチを狭くすること〕
前述のように、大量のデータを取扱うことが可能な量まで減らすために、連続的にフィルタしようとするユーザーによって、往々にして関連質問が繰り返し送出される。例えば、ユーザーがインターネットサーチエンジンに一つの質問を送出すると、回答として数千もの「ヒット」を受信する。ユーザーは、これらの回答の中からサブの組を見出すために、次に更に狭い質問を送出する。この更に狭い質問は、通常、元の質問＋（即ち「ＡＮＤ」）他のタームである。
【００７６】
変更された質問が、最初の質問に応答して返送された狭い組ではなく、データの組全体について実行されるとすると、恐るべき冗長な結果になる。この冗長は、ユーザーインターフェースにおける視覚でのフィードバックを損ない、応答時間を遅くする。
【００７７】
上述の実施例においては、狭くしたフィルタの取扱いは、質問を受ける特定のデータプロバイダーに任されている。第２の質問の際、直ちに行われる質問に対して更に限定された結果が送られる場合、一部のデータプロバイダーはサーチを再度やり直す。他のもっと賢いデータプロバイダーは、再度やり直すことはせずに、前のサーチの結果を保持しこれを改良する。
【００７８】
〔オブジェクトとしての質問〕
多くの場合、他のユーザーに対して、質問の結果を送る代わりに質問を送ることが有利である。（質問の結果は間もなく古いものになり、更に嵩張るものである。）上述の実施例においては、ユーザーは、例えばイーメールによってQuickFilter コントロールを他のユーザーに送ることができる。そうすると、その他のユーザーは、好みの時に好みの方法で送られた質問を実行することができる。
【００７９】
〔カーソルによるスクロール〕
時には、フィルタの基準が広くセットされ過ぎて、データプロバイダーの数百（或いはそれ以上）ものデータオブジェクトが表示に対して適格とされる。一つの実施例においては、フィルタの基準に合致するデータオブジェクトが、その数に関係なく全て表示のためにリストビューコントロールに送られる。他の実施例においては、限定された数のオブジェクト（例えば、ウィンドウに表示できる数の２倍）が送られる。これによれば、ウィンドウを若干スクロールすればよいので、大量のデータ転送によるシステムの過負荷を生じることはない。ユーザーがウィンドウの最後のエントリーを超えてスクロールしようとする場合は、リストビューコントロールから、データプロバイダーが追加のオブジェクトを提供し表示するように指示することができる。
【００８０】
〔ソートの順序〕
上述の実施例においては、ＳＵＩに表示されるオブジェクトのソートはデータプロバイダーが実行し、そのデータプロバイダーが、そのオブジェクトをソートされた順序でリストビューコントロールに提供する。他の実施例においては、ＳＵＩ側でソートを実行することができる。
【００８１】
〔ヘッダーコントロール、及びアプリケーションプログラミングインターフェース〕
上述のように、ヘッダーコントロールは、一組のＡＰＩを用いてデータプロバイダー及びコントロールのペアレントと通信する。一般的に、ＡＩＰは、メッセージ及び通知の交換を通して動作する。ヘッダーコントロールは、コントロールのペアレントに、及びペアレントを通してデータプロバイダーに、通知を送信する。ヘッダーコントロールは、ペアレントから、及びペアレントを通してデータプロバイダーから、メッセージを受信する。
【００８２】
図１２は、上述の実施例のヘッダーコントロールのハイレベルフローチャートである。図１２に示すように、ヘッダーコントロールは、ステップ500 でユーザーにより開かれる。この時点で、コントロールフレーム、ラベル、フィルタ及びプルダウンメニューボタンが表示される。この時点で、リストビューコントロールも共に初期化されるか否かによってデータの組が表示される場合又は表示されない場合がある。ヘッダーコントロールは、スタンドアロンコントロールとして又は大きい質問ウィンドウの一部として開くことができる。両者の場合共、ヘッダーコントロールはペアレントを持ち、それを通してメッセージを送信し且つ受信する。Microsoft のウィンドウズで開く場合は、ウィン３２クリエイトウィンドウＡＰＩが用いられる。
【００８３】
ヘッダーコントロールがMicrosoft のQuickFilter の標準に従って作成される場合は、このコントロールは、そのコントロールに対するメッセージ及びそのコントロールからの通知に、NM＿QUICKFILTER 又はQF＿FILTER構造体として記述される。
【００８４】
・ＱＦ＿ＦＩＬＴＥＲ
この構造体は、個々のフィルタを含み、データプロバイダーからメッセージの一部分として送られる。このメッセージにより、ペアレントが特定の列に対して現在のフィルタ値をセットし又はリトリーブすることが可能になる。
フィールドdwTypeは、FILTER＿TYPE＿* の値に基づいて、有効なフィルタ値を表示する。dwTypeがFILTER＿TYPE＿INT の場合は、iFilter フィールドが有効である。dwTypeがFILTER＿TYPE＿STRINGの場合は、pszFilter が適切なバッファを指示し、そのバッファからフィルタデータをセットし、又はそのバッファにフィルタデータを返送する、と仮定する。フィルタをセットする場合はcchFilter がそのフィルタの最大エディットサイズを決定し、フィルタに返送する場合はそれがpszFilter によって指示されるバッファサイズを決定する。
【００８５】
0004326045.tif 000002
【００８６】
・ＮＭ＿ＱＵＩＣＫＦＩＬＴＥＲ
WM＿NOTIFYの通知によりヘッダーコントロールのペアレントに返送通信を行う場合、NM＿QUICKFILTER 構造体が通知の対象である列を示す。QuickFilter からの全ての通知はこのヘッダーを持っている。
NMHDR フィールドは、全ての通知メッセージの標準部分である。ｉ列は、通知の対象であるヘッダー中の列を示す。
【００８７】
0004326045.tif 000003
【００８８】
ヘッダーコントロールは、一旦開かれると、メッセージを受信するために待機する（図１２のステップ520)。コントロールがメッセージを受信した時は、そのメッセージへの応答としてとるべき行動を決定するためにメッセージを翻訳する（ステップ540)。
【００８９】
ヘッダーコントロールは、メッセージを翻訳した後メッセージについて動作し（ステップ560)、次のメッセージに対する待機の状態（ステップ520)に戻る。コントロールがとる動作は、コントロールの閉鎖（ステップ570)、コントロールの移動又は再配列、コントロールの外観の再構成、又は、コントロールのペアレントへ又はペアレントを通してデータプロバイダーへの通知の送出である。
【００９０】
多くのメッセージが、ヘッダーコントロールを取扱うための標準的なメッセージであり、上述の実施例のコントロールに特別に指示されるものではない。例えば、ウィンドウ化された環境において実行される場合、上述の実施例のコントロールは、ペアレントから、コントロールの列を再構成することを伝えるWin32HDM＿メッセージを受信する。コントロールは、更に、ペアレントから、移動すること及び再配列することを伝える他の標準Win32 メッセージを受信する。
【００９１】
ヘッダーコントロールは、ペアレントを通してデータプロバイダーから、標準ユーザーインターフェースの一部分として表示されるデータの組を提供するＨＤＭメッセージを受信する。ヘッダーコントロールは、更に、ペアレントを通してデータプロバイダーから、プルダウンメニューに表示される情報を提供するＨＭＥＮＵを受信する。
【００９２】
これらの標準メッセージに加えて、ヘッダーコントロールは、上述の実施例のコントロールに特有の他のメッセージを受信する。これらのメッセージは、次のセクションで説明される。
【００９３】
〔ＡＰＩメッセージ及び通知〕
上述のヘッダーコントロールは、フィルタをセットすること、フィルタをゲットすること、全てのフィルタを示し又は隠蔽すること、通知が送られるペアレントをセットすること、及び、フィルタタイマーの期間をセットすることを指示するメッセージに応答する。
【００９４】
ヘッダーコントロールがMicrosoft のQuickFilter の標準に従って設計されている場合は、上記の動作を行うことをコントロールに指示するメッセージは以下のように実現される。
【００９５】
・ＱＦＭ＿ＳＥＴＦＩＬＴＥＲ
特定の列にフィルタ値をセットするために、ペアレントがこのメッセージを送信する。wParamはフィルタをセットする列を含む。これは、HDM ＿SETITEM によってQuickFilter コントロールに前もって加えられているものと仮定する。lParamはQF＿FILTER構造体へのポインターを含む。
フィルタが整数フィルタ（FILTER＿TYPE＿INT)の場合、その値が単純にメモリーに格納される。エディットコントロールが生成されユーザーがその値を変更できる場合、対応するスタイルビットがセットされ、ユーザーが数字を入力することのみ可能になる。
フィルタがストリングフィルタ（FILTER＿TYPE＿STRING）の場合、pszFilter を指すそのストリングのコピーが作られる。ストリング値がエディットされると、ユーザーが入力できる文字の数を制限するためにcchFilter が用いられる。
コールが成功すると、TRUEに戻る。
【００９６】
・ＱＦＭ＿ＧＥＴＦＩＬＴＥＲ
ペアレントが、特定の列についてのフィルタ値を得るためにこのメッセージを送出する。wParamはフィルタを得るための列を含む。lParamはQF＿FILTER構造体へのポインターを含む。
この構造体は、現在のフィルタの内容及び型を含むために満たされる。データプロバイダーは特定の列についてのフィルタの型を知っており、QF＿FILTER構造体が有効なバッファポインター及びサイズを含むものと仮定する。
フィルタがFILTER＿TYPE＿INT の場合、単純に整数値がその構造体に格納される。フィルタがFILTER＿TYPE＿STRINGの場合、データプロバイダーによって供給されるバッファが充分に大きい時は、ストリングがそのバッファにコピーされる。逆の場合はコールは失敗である。
コールが成功すると、TRUEに戻る。
【００９７】
・ＱＦＭ＿ＳＨＯＷＦＩＬＴＥＲ
デフォルトにより、コントロールのためのフィルタバーが目視できる。このメッセージにより、wParam中の値に基づいて、呼出者がそれを表示し又は隠蔽することができる。wParamが非ゼロである場合、フィルタバーが表示され、他の場合は隠蔽されたままである。
コールは前のフィルタバーが見える状態に戻る。
【００９８】
・ＱＦＭ＿ＳＥＴＮＯＴＩＦＹＴＡＲＧＥＴ
リストビューにおいて標準ヘッダーコントロールに代えてQuickFilter ヘッダーコントロールを用いる場合、ListViewがコントロールのペアレントなので、通知はデフォルトによりそれに送られる。QuickFilter は、それに代わり、通知がlParamのＨＷＮＤに記述されているウィンドウに送られるように指定することができる。
コールが成功すると、TRUEに戻る。
【００９９】
・ＱＦＭ＿ＳＥＴＣＨＡＮＧＥＴＩＭＥＯＵＴ
フィルタをエディットする場合、QuickFilter コントロールは、エディットを一括し、指定されたタイムアウトの後一つの通知(QFN＿CHANGE) を送出する。このメッセージにより、データプロバイダーがそのタイムアウトを、ダブルクリックタイムアウトの２倍であるデフォルトから変更することができる。lParamは、フィルタのタイマーをセットするため、ミリ秒単位で時間を含む。
コールが成功すると、TRUEに戻る。
【０１００】
上述のヘッダーコントロールは更に、データプロバイダーにフィルタが変更されたことを通知し、データプロバイダーがプルダウンメニューを返送することを要求し、データプロバイダーにオペレータが選択されたことを通知し、且つ、ペアレントにフィルタがエディットを開始したか又は終了したかを通知する。
ヘッダーコントロールがMicrosoft のQuickFilter の標準に従って設計されている場合は、これらの通知は以下のように実現される。
【０１０１】
・ＱＦＮ＿ＣＨＡＮＧＥ
QFN ＿CHANGE通知は、ヘッダーコントロールのペアレントに、一つのフィルタが変更されたことを通知する。NM＿QUICKFILTER 構造体は、パラメータとして送られ、コントロール及び変更された列の両者についての情報を含む。
QFN ＿CHANGE通知は、フィルタタイマーが満了した後、ユーザーがエディットコントロール中の<ENTER> を押した後、又はユーザーがプルダウンメニューから比較モードを選択した後に送られる。
この通知によって返送される値は無視される。
【０１０２】
・ＱＦＮ＿ＧＥＴＯＰＥＲＡＴＯＲＭＥＮＵ
QFN ＿GETOPERATORMENU 通知は、フィルタが特定の列に対して比較オペレータメニューを表示しようとする時に送る。NM＿QUICKFILTER 構造体がパラメータとして送られ、コントロール及び表示のための列の両者についての情報を含む。ペアレントは、このメッセージを受取るとＨＭＥＮＵを返送する必要があり、これが表示される。返送値がＮＵＬＬの場合、そのコールはその列についてのオペレータメニューを無視する。この通知からの返送値はＨＭＥＮＵ又はＮＵＬＬである。
【０１０３】
・ＱＦＮ＿ＯＰＥＲＡＴＯＲＣＨＯＳＥＮ
比較オペレータメニューが表示され、ユーザーが選択を行い、QuickFilter コントロールがペアレントにこの通知を送出してそれらの変更を知らせる。
この通知メッセージによって返送される値は無視される。
この通知は、パラメータとして、構造体NM＿QFOPERATORCHOSENを送る。QFN ＿GETOPERATORMENU 通知を送った後、フィルタコントロールはその上にTrackPopupMenuを呼出し、結果を表示する。そのTrackPopupMenuからの返送コードはペアレントに送られ、NM＿QFOPERATORCHOSENとして用いられる。
NM＿QFOPERATORCHOSENは、NM＿QUICKFILTER ヘッダー及びTrackPopupMenuの結果を含むｗＩＤフィールドからなる。TrackPopupMenuの結果は非ゼロと仮定している。
【０１０４】
0004326045.tif 000004
【０１０５】
・ＱＦＮ＿ＢＥＧＩＮＦＩＬＴＥＲＥＤＩＴ
・ＱＦＮ＿ＥＮＤＦＩＬＴＥＲＥＤＩＴ
これら二つの通知は、フィルタがエディットされる時に、ペアレントに通知するために用いられる。NM＿QUICKFILTER 構造体がパラメータとして送られ、エディットされる列の識別子を含む。
この通知メッセージによって返送される値は無視される。
【０１０６】
カスタムコントロールを用いる実施例においては、Microsoft COM オブジェクトを用いて、IQFCustomFilter と名付けられるインターフェースを実現する。このインターフェースは、QuickFilter ヘッダーコントロールとカスタムフィルタとの間で、以下のように動作する。
【０１０７】
・HRESULT IQFCustomFilter::Edit
(HWND hwndParent,POINT,ptHit,HWND* pdWnd)
ユーザーがフィルタ領域をクリックすると、::Editメソッドが呼出され、（point として）相対的Ｘ／Ｙを送る。このメソッドは、供給されたポインターにＨＷＮＤを返送する。そのコールが S＿FALSE 又は失敗を返送する場合は、phWnd が無効であるとされる。他の場合は、ウィンドウが表示され、ユーザーがプロパティをエディットすることができる。
【０１０８】
・HRESULT IQFCustomFilter::Render
(Hdc hDC,RECT rect,DWORD dwState)
これはフィルタバーにフィルタを表示するために呼出される。ICustomFilter オブジェクトは、それが保持するデータの表現を所定のＨＤＣ／rectangle に翻訳する責任を負う。
【０１０９】
・HRESULT IQFCustomFilter::GetOperatorMenu
(HMENU* phMenu)
・HRESULT IQFCustomFilter::OperatorChosen
(UINT uID)
これらは、フィルタコントロールによってペアレントに送られる QFN＿GETOPERATORMENU/ QFN＿SETOPERATOR 通知に直接マップする。ICustomFilter オブジェクトがICustomFilter::GetOperatorMenuから E＿NOTIMPL を返送すると、標準的な通知が発行される。 QFN＿OPERATORCHOSENは、常にペアレントがオペレータＩＤを格納できるように発行される。オペレータメニューを返すと、HMENU が指定されたポインターに返送される。これがＮＵＬＬの場合又はそのコールが S＿FALSE を返す場合は、それは無視される。
【０１１０】
・ＱＦＭ＿ＤＩＳＭＩＳＳＥＤＩＴ
wParam = fRefresh
iParam = 0
カスタムフィルタエディターがフィルタの状態を変更した場合は、 QFM＿DISMISSEDIT が送られ、全体が表示される。fRefreshは、カスタムフィルタオブジェクトが再度それ自体をフィルタバーに翻訳すべきか否かを表示する。
【０１１１】
当業者には明らかなように、上述の実施例の機能は厳密に詳細に上述したようなメッセージ及び通知の使用に依存するものではない。それらは、単に例として説明したものである。
【０１１２】
〔エディットコントロール及びフィルタタイマー〕
図１３のフローチャートは、上述の実施例に用いられるエディットコントロール及びフィルタタイマーの機能を示す。
【０１１３】
エディットコントロールは、上述のように、ユーザーがフィルタの上をクリックした時に開かれ (ステップ600)、コントロールは通知(QFN＿BEGINFILTEREDIT)を送り、フィルタのエディットを開始する。フィルタ入力バッチは消去される (ステップ602)。次にフィルタタイマーが、データプロバイダーが指定した値にリセットされる (ステップ604)。エディットコントロールは、ユーザーによってクリックされたフィルタの上に置かれる。エディットコントロールは、一旦開かれた後は、フィルタタイマーの期間を変更するメッセージ (ステップ620)又はエディットを終了するメッセージ (ステップ630)を待ち、キーボード入力 (ステップ640)を待ち、且つフィルタタイマーを維持する (ステップ650)。
【０１１４】
エディットコントロールが、フィルタタイマーを変更するメッセージ(QFN＿SETTIMEOUT) を受信した場合( ステップ620)は、フィルタタイマーの期間がそのメッセージによっ指定されたように変更され、タイマーがリセットされる( ステップ622)。
【０１１５】
エディットコントロールが、エディットの終了を知らせるメッセージ(QFN＿ENDFILTEREDIT)を受信した場合( ステップ630)は、エディットコントロールはクローズし( ステップ632)、フィルタは、エディットコントロールで最後に修正されたテキストストリングを表示する。
【０１１６】
エディットコントロールがキーストロークを受信した場合( ステップ640)は、フィルタタイマーが、データプロバイダーによって指定された(QFM＿SETTIMEOUT) レベルにリセットされる( ステップ642)。キーストロークが<ENTER> の場合( ステップ670)は、ユーザーがデータプロバイダーに対してフィルタリング操作を開始することを要求していることが明らかである。何らかのバッチされたフィルタの変更がある場合は、エディットコントロールがクローズする前にこれらの変更がデータプロバイダーに送られる(QFN＿CHANGE)(ステップ680)。キーストロークが<ENTER> 以外の場合は、そのキーストロークが、フィルタ変更の最後のバッチがデータプロバイダーに送られた(QFN＿CHANGE) 後になされた全てのフィルタ変更を含むバッチファイルに加えられる( ステップ674)。タイマーが再初期化され( ステップ676)、最後のキーストローク以後に経過した時間を記録する。続いてコントロールは次の入力に対して待機する。
【０１１７】
エディットコントロールが、キーストローク( ステップ640)、タイムアウトメッセージ( ステップ620)、又はエディット終了信号( ステップ630)以外を受信した場合は、フィルタタイマーがチェックされる( ステップ650)。フィルタタイマーが満了しており（即ち、ユーザーが最後にキーストロークを入力した後経過した時間がデータプロバイダーによってセットされた時間以上であり）、且つフィルタバッチに空きがない場合、コントロールは、データプロバイダーに、パラメータとしてバッチされたフィルタ変更と共に、フィルタ変更通知を送出する(QFN＿CHANGE)(ステップ680)。続いてコントロールは次の入力に対して待機する。ユーザーのキーストローク入力が全くない場合又はフィルタ変更の最後のバッチの送信以後キーストロークが入力されない場合は、バッチは空であり、経過時間はゼロであり、コントロールは次の入力に対して待機する。
【０１１８】
当業者には明らかなように、図１３のフローチャートにおける各ステップについては、図示された実施例の機能を変更することなく、その正確な順序を種々の方法に変更することができる。
【０１１９】
〔ウェブの実現〕
本発明の実施例により、インターネットに基づくサーチのウィンドウ化された結果についての特別な有用性が明らかになる。このような実施例においては、データプロバイダーは一般的に、通信リンクによりユーザーのコンピュータにリンクされている遠隔コンピュータである。そのような遠隔コンピュータとして動作するポピュラーなサーチエンジンは、Excite、Lycos 、HotBot及びAlta Vistaを含む。
【０１２０】
上記の実施例においては、ユーザーのコンピュータ上の図形質問インターフェースと遠隔データプロバイダーとの間の通信は、通常は上述のMicrosoft ウィンドウズＡＰＩによって行われる。これに代わり、上記の通信は他の手段でも行われる。システムがＪａｖａ等によって実行される場合、通信にはＪａｖａの通知イベントを用いることができる。他の実施例においては、ＨＴＴＰ通信を用いることができる。
インターネットオブジェクトをフィルタするデータの属性は、データ、サイズ、ドメイン、テキストアブストラクト等を含む。
【０１２１】
他のウェブに基づくアプリケーションと同様に、通信の待ち時間の発行を取扱う必要がある。好ましい実施例においては、（上述の）タイマーによって用いられる時定数は、（既知の技術によって測定される）実際のネットワークの待ち時間、及び、データプロバイダーが負う現在の処理負荷に従って適切にセットされる。
【０１２２】
Ｊａｖａアプレット等を用い、ユーザー自身の机上からワールドワイドウェブ全体にこのインターフェースの標準化を拡張すれば、上述のコントロール等を書き、ウェブページに組込むことができる。
【０１２３】
上述の複数の実施例に基づいて発明者らのインベンティブワークの原理を説明したが、この技術は上述の原理から逸脱せずに構成及び詳細を変更することができる。
【０１２４】
例えば、上述の実施例は、標準ユーザーインターフェース（即ちQuickFilter ヘッダーコントロール−これはデータの組については何も知らないが、フィルタ、ラベル、プルダウンメニュー等及びデータの組を簡単に表すリストビューディスプレイコントロールのみを知っている。）を形成するための二つの別個のコントロール構造体を使用しているが、代替実施例においては、一体化された構造体を用いることができる。
【０１２５】
更に、上述では本発明を図形ユーザーインターフェースを用いて説明したが、発明者らのインベンティブコンセプトはこれに限定されない。例えば、上述の原理は、テキストに基づくインターフェースにおいても（一般的に例えば多くのメインフレームシステムにおいて）有効に用いられる。
【０１２６】
更に、上記では本発明に、リストビューコントロール中のそれぞれのデータオブジェクトを詳細に記述したタブラーが用いられると説明されたが、他の実施例においては、特定のフィルタ基準に合致するもっと簡単なデータオブジェクトのアイコンビューを具えることができる。
【０１２７】
更に、詳細な実施例では、複数の属性のそれぞれについてフィルタフィールドを用いたが、他の実施例においては、複数の属性にまたがってサーチするために一つのフィルタフィールドを用いることができる。そのような実施例の一つにおいては、ヘッダーコントロールが一般的な「サーチフォー」フィールドを有する。このフィールドに入力されたデータは、そのデータオブジェクトの全ての属性に対して合致する。合致するオブジェクトは、（どの属性が合致するかに関係なく）全てディスプレイに表示される。このような一般的な「サーチフォー」フィールドを上述の特定の属性フィールドに付加することができ、また、それらの除外に対して用いることができる。同様に、一つのフィールドを、全ての属性フィールド（例えば、タイトル／アブストラクト／著者）のサブセットにまたがってサーチを行うために用いることができる。
【０１２８】
本発明の原理を応用し得る実施例は広い多様性を持つという観点から、詳細な実施例は単に説明のためのものであり、本発明の範囲を限定するものととられるべきではない。本発明の請求項には、全てのそのような変更において、特許請求の範囲及び精神に含まれるもの及びそれらと同等であるものについて記載されている。
【図面の簡単な説明】
【図１】図１(a) は種々のデータベースにアクセスするためのユーザーインターフェースを有するコンピュータシステムの構成図であり、図１(b) は種々のデータベースにアクセスするための本発明の一実施例によるユーザーインターフェースを有するコンピュータシステムの構成図である。
【図２】本発明の実施のための動作環境として作用するコンピュータシステムを表す構成図である。
【図３】データの組のためのスペースを持つリストビューコントロール、及び、データの組の属性についてのラベル、プルダウンメニューボタン及び属性についてのフィルタを有するヘッダーコントロールを含むウィンドウコントロールを示す図である。
【図４】データオブジェクトの行及び属性の列からなるデータの組を表示している図３のウィンドウコントロールを示す図である。
【図５】起動されたプルダウンメニューボタン及びデータプロバイダーから比較モード情報の検索の後に表示されるプルダウンメニューを有する図４のウィンドウコントロールを示す図である。
【図６】データの組がタイプ「MS」、比較モード「Start with」によってフィルタされた後の図４のウィンドウコントロールを示す図である。
【図７】データの組がタイプ「Word」、比較モード「End with」によってフィルタされた後の図４のウィンドウコントロールを示す図である。
【図８】データの組がタイプ「MS」、比較モード「Start with」、日付「97」、比較モード「年」によってフィルタされた後の図４のウィンドウコントロールを示す図である。
【図９】図９(a) は、フィルタタイマーが満了してフィルタ処理が開始され、データの組がタイプ「MS Wor」、比較モード「Start with」によってフィルタされた後の図４のウィンドウコントロールを示す図であり、図９(b) は、ユーザーが<Enter> を押した時にフィルタ処理が開始され、データの組がタイプ「MS Work 」、比較モード「Start with」によってフィルタされた後の図９(a) のウィンドウコントロールを示す図である。
【図１０】ホーム並びにフィルタ入力のための領域及び比較モード入力のための領域を表示するカスタムコントロールメニューからなるデータの組を表示するウィンドウコントロールを示す図である。
【図１１】フィルタ入力を得るために用いられる各列の固有値を表示する固有値リストメニューを表す図４のウィンドウコントロールを示す図である。
【図１２】本発明の一実施例による方法を示すフローチャートである。
【図１３】種々の環境においてヘッダーコントロールによって行われる応答を示すフローチャートである。
【図１４】「変更」プルダウンメニューが起動されている時に二次「カレンダー」ウィンドウが開かれたウィンドウコントロールを示す図である。
【図１５】二次「カレンダー」ウィンドウで日付の範囲を選択した場合の図１４のウィンドウコントロールを示す図である。
【図１６】「変更」プルダウンメニューの起動によって開かれ、特定の日付付近の「変更」属性の選択が可能な他の二次ウィンドウを示す図である。
【符号の説明】
１２０  パーソナルコンピュータ
１２１  処理ユニット
１２２  システムメモリー
１２３  システムバス
１２４  リードオンリーメモリー
１２５  ランダムアクセスメモリー
１２７  ハードディスクドライブ
１２８  磁気ディスクドライブ
１２９  磁気ディスク
１３０  光ディスクドライブ
１３１  光ディスク
１３２  ハードディスクドライブインターフェース
１３３  磁気ディスクドライブインターフェース
１３４  光ディスクドライブインターフェース
１３５  オペレーティングシステム
１３６  アプリケーション
１３７  プログラムモジュール
１３８  プログラムデータ
１４０  キーボード
１４２  マウス
１４６  シリアルポートインターフェース
１４７  モニター
１４８  ビデオアダプター
１４９  遠隔コンピュータ
１５０  メモリー格納装置
１５１  ローカルエリアネットワーク
１５２  ワイドエリアネットワーク
１５３  ネットワークアダプター
１５４  モデム
２１０、２１２、２１４、２１６、２１８  データプロバイダー
２００、２０２、２０４、２０６、２０８  インターフェース
２２０  標準ユーザーインターフェース
２２２  コントロール
３１０  表示領域
３２０、３２２、３２４、３２６  属性についてのラベル
３３０、３３２、３３４、３３６  属性についてのフィルタ
３４０、３４２、３４４、３４６  プルダウンメニューボタン
３５０、３５２、３５４、３５６  属性についての欄
３６０  データオブジェクトの行
３７０  属性の列
３８２  プルダウンメニュー
３９０  カーソル
４０２  カスタムコントロールメニュー
４１２  カスタムコントロール
４２２  固有値リストメニュー
【図１】
0004326045.tif 000005
【図２】
0004326045.tif 000006
【図３】
0004326045.tif 000007
【図４】
0004326045.tif 000008
【図５】
0004326045.tif 000009
【図６】
0004326045.tif 000010
【図７】
0004326045.tif 000011
【図８】
0004326045.tif 000012
【図９】
0004326045.tif 000013
【図１０】
0004326045.tif 000014
【図１１】
0004326045.tif 000015
【図１２】
0004326045.tif 000016
【図１３】
0004326045.tif 000017
【図１４】
0004326045.tif 000018
【図１５】
0004326045.tif 000019
【図１６】
0004326045.tif 000020