(57)【要約】【課題】選択すべきメニュー項目を探索し、ユーザ・インタフェースに表示すること。【解決手段】自動探索メニューとのユーザ・インタフェース用のシステムおよび方法が提供される。インタフェースは、各コマンドを瞬間的に探索可能な階層としてユーザに示す。視覚的には、これは、上方に編集ボックスを有するツリー・ビューとして表される。押す必要のある「Ｓｅａｒｃｈ」ボタンや「Ｇｏ」ボタンはない。編集ボックスに任意の文字が入力されてから１秒後に、コンピュータは、表示される階層を、入力されたキーワードに一致する項目のみに縮小する。１秒たたないうちに別の文字を入力すると、タイマがリセットされる。これによって、ユーザは、階層を数項目に縮小するのに必要なだけのキーワードを入力し、これらの項目のうちの１つをマウス・クリックすることができる。この方法は、多数のコマンドに適用される。【選択図】図１
2006209749.tif 000002
【特許請求の範囲】
【請求項１】
メニュー項目の階層ビューを与える方法において、
入力された探索基準に基づいて階層構造を探索することと、
前記階層構造に存在し前記探索基準に一致するメニュー項目のみを表示するのに必要な、前記階層構造の部分のみを表示することと
を備えたことを特徴とする方法。
【請求項２】
前記探索動作は、
ユーザが少なくとも１つの文字を入力することと、
ただちに、前記入力された少なくとも１つの文字に基づいて階層構造を探索することと
を備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記ユーザが追加的な文字を入力したときに前記追加的な文字に基づいて引き続き前記探索動作および表示動作を繰り返すことをさらに備えたことを特徴とする請求項２に記載の方法。
【請求項４】
前記ユーザは、表示すべき前記階層構造の上方の編集ボックス内に前記少なくとも１つの文字を入力することを特徴とする請求項２に記載の方法。
【請求項５】
前記ユーザが前記少なくとも１つの文字を入力したときに前記探索を開始する前に自動的に約１秒待つことをさらに備えたことを特徴とする請求項２に記載の方法。
【請求項６】
前記メニュー項目は、コマンドであることを特徴とする請求項１に記載の方法。
【請求項７】
前記表示されるメニュー項目の１つをコンピュータの入力装置によって選択することをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項８】
メニュー項目の階層ビューを与える方法を実行するための命令が記憶されたコンピュータ読取り可能記憶媒体であって、
入力された探索基準に基づいて階層構造を探索することと、
前記階層構造に存在し前記探索基準に一致するメニュー項目のみを表示するのに必要な、前記階層構造の部分のみを表示することと
を備えたことを特徴とするコンピュータ読取り可能記憶媒体。
【請求項９】
前記探索動作は、
ユーザが少なくとも１つの文字を入力することと、
ただちに、前記入力された少なくとも１つの文字に基づいて階層構造を探索することと
を備えたことを特徴とする請求項８に記載のコンピュータ読取り可能記憶媒体。
【請求項１０】
前記ユーザが追加的な文字を入力したときに前記追加的な文字に基づいて引き続き前記探索動作および表示動作を繰り返すための命令をさらに備えたことを特徴とする請求項９に記載のコンピュータ読取り可能記憶媒体。
【請求項１１】
前記ユーザは、表示すべき前記階層構造の上方の編集ボックス内に前記少なくとも１つの文字を入力することを特徴とする請求項９に記載のコンピュータ読取り可能記憶媒体。
【請求項１２】
前記ユーザが前記少なくとも１つの文字を入力したときに前記探索を開始する前に自動的に約１秒待つための命令をさらに備えたことを特徴とする請求項９に記載のコンピュータ読取り可能記憶媒体。
【請求項１３】
前記メニュー項目は、コマンドであることを特徴とする請求項８に記載のコンピュータ読取り可能記憶媒体。
【請求項１４】
前記表示されるメニュー項目の１つをコンピュータの入力装置によって選択するための命令をさらに備えたことを特徴とする請求項８に記載のコンピュータ読取り可能記憶媒体。
【請求項１５】
メニュー項目の階層ビューを与えるシステムにおいて、
入力された探索基準に基づいて階層構造を探索する手段と、
前記探索手段と動作可能に通信し、前記階層構造に存在し前記探索基準に一致するメニュー項目のみを表示するのに必要な、前記階層構造の部分のみを表示する手段と
を備えたことを特徴とするシステム。
【請求項１６】
前記探索動作は、
ユーザが少なくとも１つの文字を入力するための手段と、
前記入力手段と動作可能に通信し、ただちに、前記入力された少なくとも１つの文字に基づいて階層構造を探索する手段と
を備えたことを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記入力手段と動作可能に通信し、前記ユーザが追加的な文字を入力したときに前記追加的な文字に基づいて引き続き前記探索動作および表示動作を繰り返す手段をさらに備えたことを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記ユーザは、表示すべき前記階層構造の上方の編集ボックス内に前記少なくとも１つの文字を入力するための手段をさらに備えたことを特徴とする請求項１６に記載のシステム。
【請求項１９】
前記入力手段と動作可能に通信し、前記ユーザが前記少なくとも１つの文字を入力したときに前記探索を開始する前に自動的に約１秒待つ手段をさらに備えたことを特徴とする請求項１６に記載のシステム。
【請求項２０】
前記メニュー項目は、コマンドであることを特徴とする請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ユーザ・インタフェースに関し、特に、選択すべきメニュー項目を探索し、ユーザ・インタフェースに表示することに関する。
【背景技術】
【０００２】
ユーザは、連想する言葉によって考える傾向があり、従って、特定のタスクを実行する要求は、メニューを通過するパスではなく単一のキーワードに関連付けられることが自然である。このように、コンピュータがしばしば使いづらくなることに大いに関係していることは、タスク、メニューを通過するパスおよびその他のユーザ・インタフェース（ＵＩ）要素との関連付けを記憶する必要があることである。
【０００３】
任意の一時点でユーザが利用できる多数のコマンドがあり、現在そのようなコマンドは一般に、階層構造になっており、ユーザがこのような階層を使い分けるのは難しい。一般に、現在のコンピューティング環境のメニュー・システムにおいて何かにアクセスする場合、ユーザは、手動で（すなわち、視覚的に、マウスまたはキーボードによって何度も選択することによって）ツリーを横断しなければならない。ドキュメントにアクセスするにはディレクトリ・ツリーを横断する必要がある。コマンドにアクセスするにはメニュー・ツリーを横断する必要がある。ユーザは、任意の所与の時間に多数のことを行うことができ、従来、これらのオプションをツリー内に配置することによって、ユーザが所望のコマンドに到達するのが容易になっている。ユーザは、長いリストを直線状に探索するのがあまり得意ではなく、従って、階層メニュー・システムは、実際上ツリーに基づく手動の探索に相当するものをユーザに与えるが、この探索は階層が多いために困難で時間がかかる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このため、任意のレベルのユーザが多数のコマンドにアクセスするのを簡単にしかつ高速化するシステムおよび方法が必要である。
【課題を解決するための手段】
【０００５】
当技術分野の上記に識別された欠点を考慮して、本発明の一態様は、メニュー項目の階層ビューを与えるシステムおよび方法を提供する。この方法は、入力された探索基準に基づいて階層構造を探索し、次いで階層構造の一部のみを表示することを含む。表示される部分は、階層構造に存在する探索基準に一致するメニュー項目のみを表示するのに必要な部分である。
【０００６】
この連想探索プロセスは、ユーザが少なくとも１つの文字を入力し、次いで、ほぼただちに、入力された少なくとも１つの文字に基づいて階層構造を探索することを含む。ユーザが追加的な文字を入力したときに、追加的な文字に基づいて引き続き探索動作および表示動作を繰り返すプロセスも提供される。ユーザは、表示すべき階層構造の上方の編集ボックス内に少なくとも１つの文字を入力することができる。本発明の他の利点および特徴について以下に説明する。
【０００７】
本発明による自動探索メニューとのユーザ・インタフェースを提供するシステムおよび方法につて、添付の図面を参照してさらに説明する。
【発明を実施するための最良の形態】
【０００８】
以下の説明および図には、本発明の様々な実施形態を完全に理解するためのある特定の詳細が記載されている。本発明の様々な実施形態を不必要に曖昧にしないように、コンピューティング・ソフトウェア技術に関連することの多いある公知の詳細は、以下の開示には記載されない。さらに、当業者には、以下の詳細の１または複数を除いて、本発明の他の実施形態を実施できることが理解されよう。最後に、以下の開示では、ステップおよびシーケンスを参照して様々な方法について説明するが、このような説明は本発明の実施形態を明確に実施するためのものであり、これらのステップおよびステップのシーケンスを、本発明を実施するのに必要なものとみなすべきではない。
【０００９】
（概要）
自動探索メニューすなわち「Auto Search Menu」とのユーザ・インタフェースを提供するシステムおよび方法について説明する。アプリケーション・コマンド、プログラム、およびファイルへの高速アクセスを実現する機構としてユーザが利用できるコマンドの迅速に探索可能なツリーについて説明する。まず、探索可能なツリー・ビューを有する例示的なメニュー・インタフェースについて説明する。次に、このようなメニューのツリー・ビューを作成するプロセスについて、図１に示されているいくつかのコマンドを用いて実施例と一緒に説明する。最後に、図５および６は、本明細書に記載されているシステムおよび方法と一緒に使用するのに一般に適するものとみなされるコンピューティング・ネットワーク環境を示している。図５および６の内容は全体的に例示的なものであるので、対応する説明は、本明細書の終わりの「例示的なコンピューティング・ネットワーク環境」という節に当てはまる。
【００１０】
（メニュー・インタフェース）
図１を参照すると、ユーザによって入力されたキーワードに基づく自動探索中に見つかったコマンドをツリー・ビュー内に示すグラフィカル・ユーザ・インタフェース・メニューの図が示されている。編集ボックス１０１、入力されたキーワード１０２、および、例えばコマンド１０４であってよい一致項目１０４を有する一致項目のツリー１０３が示されている。ユーザは、キーワードまたは部分的なキーワード１０２を編集ボックス１０１に入力し、そのキーワードに一致する結果として得られたコマンド１０４が一致項目のツリー１０３内に表示される。コマンド１０４は、入力されたキーワード１０２に一致する階層内のコマンド１０４のみが一致項目のツリー１０３に表示されることを除いて、コマンドが通常表示されるのと同じ階層構造内に表示される。従って、ユーザが探している項目を容易に見つけて選択することができる。
【００１１】
任意の文字が編集ボックス１０１に入力されてから約１秒後に、表示される階層（すなわち、一致項目のツリー１０３）は、入力されたキーワード１０２に一致する項目１０４のみに縮小する。これはタイマによって制御される。ユーザが約１秒経過する前に編集ボックス１０１に他の文字を入力すると、タイマがリセットされる。これによって、ユーザは、階層１０３を数個の項目に縮小するのに必要なだけのキーワードを入力することができ、これらの項目の１つを例えばマウス・クリックやキーボードによって選択することができる。
【００１２】
図１の現在の例では、ユーザは、編集ボックス１０１内のキーワード１０２として文字「ｗｏｒ」を入力している。従って、見つかった一致項目１０４は、コマンド・ラベルに文字列「ｗｏｒ」を有するコマンドであった。コマンド「Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（登録商標）」、「Ｐｕｚｚｌｅ  Ｗｏｒｄ（登録商標）」、および「ＷｏｒｄＰａｄ（登録商標）」は、それに関連するソフトウェア・アプリケーションを開始するコマンドであり、「Ｗｏｒｋ  Ｒｅｐｏｒｔ」は、「Ｗｏｒｋ  Ｒｅｐｏｒｔ」という名称の関連するファイルを開くコマンドである。これらの項目１０４はすべて、入力されたキーワード１０２に一致する文字列「ｗｏｒ」を、それぞれのコマンド・ラベルに有しているため、一致項目のツリー１０３に含めるべき一致項目として識別される。
【００１３】
あるいは、一致項目のツリー１０３に表示すべきと考えられる項目１０４に関連する他の情報を用いて、一致項目を見つける際の探索を行うことができる。例えば、メニューに表示されるコマンド・ラベルの代わりに、コマンドの種類またはソフトウェア・アプリケーションの種類を使用することができる。入力されたキーワードが例えば「ｄｒａｗ」である場合、すべての描画ソフトウェア・アプリケーションが表示される。あるいは、ファイルを開くコマンドの場合、作成者の名前を編集ボックスに入力することができ、その作成者によって作成されたドキュメントを開くすべてのコマンドが階層１０３内に表示される。典型的には、各コマンドまたは下位の関連するオブジェクトが、ファイルであるかアプリケーションであるかにかかわらず、入力されたキーワード１０２に一致する探索を実行する際に利用できるそのオブジェクトに関する追加的な情報を与える、各コマンドまたはオブジェクトに関連するメタデータがある。
【００１４】
次に図２を参照すると、図１の一致項目のツリー１０３を作成するためにユーザによって入力されたキーワードに基づく利用可能なコマンドの探索プロセスを示すフローチャートが示されている。まず、一致項目のツリー１１０がクリアされ新しい探索が開始される。利用可能なコマンドまたはメニュー項目は、すでにリスト内にインデックス付けされており、このリストは、探索プロセスにおいて項目ごとに横方向に探索される（１１１）。現在の要素は、インデックス内の第１の要素または項目に設定される（１１２）。次に、リスト内の要素または項目の、コマンド名または他の関連する情報が、ユーザによって入力されたキーワードと比較される（１１３）。一致する場合、要素が一致項目のツリー１０３に挿入される（１１４）。一致しない場合、インデックスから次の要素が読み取られる（１１５）。インデックスの終わりに達した場合（次に読み取られる要素がヌルまたは０であることによって判定される（１１６））、探索は終了する（１１７）。達していない場合、探索ループは引き続き、次にインデックス１１３から読み取られた要素を検査し、インデックスの終わり１１６に達するまで一致項目を一致項目のツリー１０３に追加する（１１４）。
【００１５】
図３を参照すると、キーワード１０１に一致することが判明した要素を一致項目のツリー１０３に挿入する（１１４）図２のプロセスのより詳細な図を示すフローチャートが示されている。一致項目のツリー１０３に要素を挿入するプロセスを支持する原則は、要素自体を挿入するだけでなく、要素がすべての利用可能なコマンドの階層内に存在するとして、その要素の位置に表示するように一致項目のツリーを作成することである。このために、インデックス内で要素が見つかると、その要素に至るまでの、およびその要素を含むサブメニューのチェーンを、それがまだ一致項目のツリー１０３に存在しない範囲で一致項目のツリー１０３に挿入しなければならない。再帰的プロセスについての以下のグラフィカル表現は、この機能を実行する１つの方法を示しているが、同じ結果を与える他の可能な変形実施形態および方法を使用してもよい。
【００１６】
一致項目が見つかった後、図３のプロセス１１４が開始され（１２０）、メモリ内の再帰的スタックがクリアされる（１２１）。次に、現在の要素が親であるかどうかが判定される（１２２）。親である場合、現在の要素の親がツリー内に存在するかどうかが判定される（１２３）。親でない場合、再帰的ルーチンが開始され、現在の要素がメモリ内の再帰的スタックに追加される（１２４）。次に、現在の要素が現在の要素の親に設定され（１２５）、現在の要素が親を有するかどうかを再び判定する（１２２）ことによってループが継続する。
【００１７】
上記の再帰的動作は、現在の要素が親を有さなくなる（すなわち、ルートになる）（１２６）か、または現在の要素の親がすでに一致項目のツリー１０３内に存在する（１２７）ことが判明するまで引き続き横方向に探索を行う。この点で、ルーチンは再帰的ループから分離し、現在の要素をルートとして一致項目のツリー１０３に挿入するか（現在の要素が親を有さない場合）、または現在の要素を一致項目のツリー１０３内に見つかったその親のすぐ下に挿入する（１２９）。次に、再帰的スタックが空であるかどうかが判定される（１３０）。空である場合（１３１）、ツリーへの挿入プロセス１１４が終了する（１３２）。空でない場合、現在の要素が再帰的スタック上の次の要素に設定され（１３３）、次の要素が再帰的スタックから除去される（１３４）。プロセスは、次に、現在の要素が親を有するかどうかを判定する点（１２２）に進む。このループは、再帰的スタックが空になり（１３１）、従って、すでに再帰的スタック上に配置されているすべての要素が一致項目のツリー１０３内のそれぞれの親の下方に挿入される（１２９）まで継続する。
【００１８】
次に、図４Ａおよび４Ｂを参照すると、それぞれ、図１に示されている各コマンドをツリー・ビュー内に表示するように構成されるプロセスにおける例示的な一致項目のツリーの図と、図１のツリー・ビューに対応する一致項目のツリーの図が示されている。Ｐｒｏｇｒａｍｓ要素１３５が示され、その下にＡｃｃｅｓｓｏｒｉｅｓ１３６要素、ＭＩＣＲＯＳＯＦＴ  ＷＯＲＤ（登録商標）１３７要素、ＰＵＺＺＬＥＷＯＲＤ（登録商標）１３８要素が示されている。Ａｃｃｅｓｓｏｒｉｅｓ１３６要素の下方にＷＯＲＤＰＡＤ（登録商標）１３９要素が示されている。さらに、図４Ｂに示されているように、追加的にＤｏｃｕｍｅｎｔｓ１４０要素およびＷｏｒｋ  Ｒｅｐｏｒｔ要素１４１を所定の位置に含む完全な一致項目のツリーが示されている。図４Ａの１０３は、Ｄｏｃｕｍｅｎｔｓおよび要素およびＷｏｒｋ  Ｒｅｐｏｒｔ要素をまだ所定の位置に有していない一致項目のツリーを示しているが、以下の例に示されるように、これらの要素は図３のプロセスに従って追加される。
【００１９】
まず、図２によれば、要素Ｗｏｒｋ  Ｒｅｐｏｒｔ１４１は、文字「ｗｏｒ」を入力したことによって一致項目１１３と識別される。次に、一致項目１１４のＷｏｒｋ  Ｒｅｐｏｒｔ１４１を一致項目のツリーに挿入する図３のプロセスを開始する。まず、再帰的スタックがクリアされた後（１２１）、要素Ｗｏｒｋ  Ｒｅｐｏｒｔが親を有するかどうかが判定される（１２２）。親を有する場合、すなわち要素Ｄｏｃｕｍｅｎｔｓ１４０の場合、この親が一致項目のツリー１０３内に存在するかどうかが判定される（１２３）。親を有しない場合、現在の要素、Ｗｏｒｋ  Ｒｅｐｏｒｔ１４１が再帰的スタックに追加され（１２５）、次に、現在の要素が現在の要素の親、すなわちＤｏｃｕｍｅｎｔ１４０に設定される。プロセスは、引き続き、Ｄｏｃｕｍｅｎｔｓが親を有するかどうかを判定する（１２２）。Ｄｏｃｕｍｅｎｔｓは親を有さないと、一致項目のツリー１０３内のＭｅｎｕルート１３４の下にルート要素１４０として挿入される。次に、再帰的スタックが空であるかどうかが判定される（１３０）。再帰的スタックは、すでに要素Ｗｏｒｋ  Ｒｅｐｏｒｔ１４１に追加されているため空ではない。従って、現在の要素が、再帰的スタック上の次の要素、すなわちＷｏｒｋ  Ｒｅｐｏｒｔ１４１に設定され、次いで再帰的スタック１３４から削除される。Ｗｏｒｋ  Ｒｅｐｏｒｔ１４１がすでに追加されている唯一の要素であったため、現在再帰的スタックは空である。
【００２０】
プロセスは引き続き、現在の要素が親を有するかどうかを判定する。Ｗｏｒｋ  Ｒｅｐｏｒｔ、すなわち現在の要素は、Ｄｏｃｕｍｅｎｔｓ１４０である親を有している。しかし、今回、Ｄｏｃｕｍｅｎｔｓ１４０は、すでに追加されている（１２８）ため一致項目のツリー内に存在している。従って、現在の要素の親がツリー１０３内に存在するかどうかを調べる検査が行われる（１２３）と、プロセスは、引き続き現在の要素のＷｏｒｋ  Ｒｅｐｏｒｔ１４１をツリー１０３内のＤｏｃｕｍｅｎｔｓ１４０の下に挿入する（１２９）。再帰的スタックは現在空であるため（１３１）、プロセスが終了し、ツリーは、図４Ｂのように完全に表示され、図１のツリー・ビューに対応する。上記の例は、要素の短いチェーンを挿入する例であり、もちろん同じプロセスを要素のより長いチェーンに適用することができる。
【００２１】
（例示的なコンピューティング・ネットワーク環境）
図５を参照すると、本発明の様々な態様と一緒に使用するのに適した例示的なコンピューティング・デバイスを表すブロック図が示されている。例えば、ユーザ・インタフェースに自動探索メニューを与えるプロセスおよび方法を実行するコンピュータ実行可能命令は、図５に示されているようなコンピューティング環境に存在し、および／またはこのような環境で実行することができる。コンピューティング・システム環境２２０は、適切なコンピューティング環境の一例に過ぎず、本発明の用途または機能の範囲に関する制限を示すものではない。コンピューティング環境２２０は、例示的な動作環境２２０に示されている構成要素のうちの任意の１つまたは構成要素の組合せに関する何らかの依存性または必要性を有すると解釈すべきではない。
【００２２】
本発明の各態様は、他の多数の汎用または専用コンピューティング・システム環境または構成に対して動作する。本発明と一緒に使用するのに適した公知のコンピューティング・システム、環境、および／または構成の例には、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース・システム、セットトップ・ボックス、プログラム可能なコンシューマ・エレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、上記のシステムや装置などのうちのどれかを含む分散コンピューティング環境含まれるがこれらに限らない。
【００２３】
本発明の各態様は、一般に、コンピュータによって実行される、プログラム・モジュールなどのコンピュータ実行可能命令に関して実施することができる。一般に、プログラム・モジュールには、特定のタスクを実行するかまたは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。本発明の各態様は、通信網を通じてリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境で実施してもよい。分散コンピューティング環境では、メモリ記憶装置を含むローカル・コンピュータ記憶媒体とリモート・コンピュータ記憶媒体の両方にプログラム・モジュールを配置することができる。
【００２４】
本発明の各態様を実施する例示的なシステムは、コンピュータ２４１の形をした汎用コンピューティング・デバイスを含む。コンピュータ２４１の構成要素には、処理ユニット２５９、システム・メモリ２２２、システム・メモリを含む様々なシステム構成要素を処理ユニット２５９に結合するシステム・バス２２１を含むことができるが、これらに限らない。システム・バス２２１は、様々なバス・アーキテクチャのうちのどれかを使用するメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含むいくつかの種類のバス構造のうちのどれかであってよい。一例として、このようなアーキテクチャにはＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカル・バス、およびＭｅｚｚａｎｉｎｅバスとも呼ばれるＰＣＩ（Peripheral Component Interconnect）バスが含まれるがこれに限らない。
【００２５】
コンピュータ２４１は、様々なコンピュータ読取り可能媒体を含んでいる。コンピュータ読取り可能媒体は、コンピュータ２４１によってアクセスできる任意の利用可能な媒体であってよく、揮発性媒体と非揮発性媒体、取外し可能媒体と取外し不能媒体の両方が含まれる。一例として、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を備えてよいが、これらに限らない。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラム・モジュール、その他のデータなどの情報を記憶する任意の方法または技術で実施される揮発性媒体と非揮発性媒体、取外し可能媒体と取外し不能媒体の両方を含む。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disk）または他の磁気記憶装置、または任意の他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報を記憶するのに用いることができ、かつコンピュータ２４１によってアクセスできる他の任意の媒体が含まれるが、これらに限らない。通信媒体は、典型的には、コンピュータ読取り可能命令、データ構造、プログラム・モジュール、またはその他のデータを搬送波信号などの変調データ信号やその他の転送機構で実現し、任意の情報供給媒体を含む。「変調データ信号」は、その特性のうちの１または複数が信号内の情報を符号化するように設定または変更された信号を意味する。一例として、通信媒体は、有線網や直接有線接続などの有線媒体、音響媒体、ＲＦ媒体、赤外線媒体、その他の無線媒体などの無線媒体を含むが、それらに限らない。上記の媒体のうちの任意の媒体の組合せもコンピュータ読取り可能媒体の範囲内に含めるべきである。
【００２６】
システム・メモリ２２は、読取り専用メモリ（ＲＯＭ）２２３やランダム・アクセス・メモリ（ＲＡＭ）２６０などの揮発性メモリおよび／または非揮発性メモリの形をしたコンピュータ記憶媒体を含む。基本入出力システム２２４（ＢＩＯＳ）は、立上げ時などにコンピュータ２４１内の各要素間で情報を転送するのを助ける基本ルーチンを含み、通常ＲＯＭ２２３に記憶されている。ＲＡＭ２６０は、典型的には、処理ユニット２５９にアクセス可能であり、および／または現在処理ユニット２５９によって操作されているデータ・モジュールおよび／またはプログラム・モジュールを含む。一例として、図５は、オペレーティング・システム２２５、アプリケーション・プログラム２２６、その他のプログラム・モジュール２２７、およびプログラム・データ２２８を示しているが、これらに限らない。
【００２７】
コンピュータ２４１は、他の取外し可能／取外し不能、揮発性／非揮発性コンピュータ記憶媒体を含むことができる。図５は、一例としてのみ、取外し不能非揮発性磁気媒体からの読取りまたは取外し不能非揮発性磁気媒体への書込みを行うハード・ディスク・ドライブ２３８と、取外し可能非揮発性磁気ディスク２５４からの読取りまたは取外し可能非揮発性磁気ディスク２５４への書込みを行う磁気ディスク・ドライブ２３９と、ＣＤ  ＲＯＭやその他の光学媒体などの取外し可能非揮発性光学ディスク２５３からの読取りまたは取外し可能非揮発性光学ディスク２５３への書込みを行う光学ディスク・ドライブ２４０とを示している。例示的な動作環境で使用できる他の取外し可能／取外し不能、揮発性／非揮発性コンピュータ記憶媒体は、磁気テープ・カセット、フラッシュ・メモリ・カード、ＤＶＤ、デジタル・ビデオ・テープ、半導体ＲＡＭ、半導体ＲＯＭなどを含むが、これらに限らない。ハード・ディスク・ドライブ２３８は、典型的には、インタフェース２３４などの取外し不能メモリ・インタフェースを通してシステム・バス２２１に接続され、磁気ディスク・ドライブ２３９および光学ディスク・ドライブ２４０は、典型的には、インタフェース２３５などの取外し可能メモリ・インタフェースによってシステム・バス２２１に接続されている。
【００２８】
上述し図５に示したドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ２４１用のコンピュータ読取り可能命令、データ構造、プログラム・モジュール、およびその他のデータを記憶する。図５では、例えば、ハード・ディスク・ドライブ２３８は、オペレーティング・システム２５８、アプリケーション・プログラム２５７、その他のプログラム・モジュール２５６、およびプログラム・データ２５５として示されている。これらの構成要素が、オペレーティング・システム２２５、アプリケーション・プログラム２２６、その他のプログラム・モジュール２２７、およびプログラム・データ２２８と同じであっても異なっていてもよいことに留意されたい。オペレーティング・システム２５８、アプリケーション・プログラム２５７、その他のプログラム・モジュール２５６、およびプログラム・データ２５５は、ここでは、少なくとも、それらがそれぞれの異なるコピーであることを示すように異なる番号が与えられている。ユーザは、キーボード２５１や、一般にマウス、トラックボール、またはタッチ・パッドと呼ばれるポインティング・デバイス２５２などの入力装置を通じてコンピュータ２４１にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、マイクロフォン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナなどを含むことができる。これらおよびその他の入力装置は、システム・バスに結合されたユーザ入力インタフェース２３６を通して処理ユニット２５９に接続されることがパラレル・ポートや、ゲーム・ポートや、汎用シリアル・バス（ＵＳＢ）のような他のインタフェース・バス構造によって接続してもよい。モニタ２４２または他の種類の表示装置もビデオ・インタフェース２３２などのインタフェースを介してシステム・バス２２１に接続されている。コンピュータは、モニタだけでなく、スピーカ２４４やプリンタ２４３のような他の周辺出力装置を含むことができ、スピーカ２４４やプリンタ２４３は出力周辺インタフェースを通して接続することができる。
【００２９】
コンピュータ２４１は、リモート・コンピュータ２４６などの１または複数のリモート・コンピュータとの論理接続を用いて、ネットワーク化環境で動作することができる。リモート・コンピュータ２４６は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の一般的なネットワーク・ノードであってよく、典型的には、コンピュータ２４１に関して上述した要素のうちの多くまたはすべてを含む。ただし、図５にはメモリ記憶装置２４７しか示されていない。図５に示されている論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）２４５およびワイド・エリア・ネットワーク（ＷＡＮ）２４９を含むが、他のネットワークを含んでもよい。このようなネットワーク化環境は、会社、エンタープライズ・ワイド・コンピュータ・ネットワーク、イントラネット、およびインタネットで広く使用されている。
【００３０】
コンピュータ２４１は、ＬＡＮネットワーク化環境で使用されるとき、ネットワーク・インタフェースまたはアダプタ２３７を通してＬＡＮ２４５に接続される。コンピュータ２４１は、ＷＡＮネットワーク化環境で使用されるとき、典型的には、インタネットなどのＷＡＮ２４９上で通信を確立するモデム２５０またはその他の手段を含む。モデム２５０は、内蔵モデムでも外付けモデムでもよく、ユーザ入力インタフェース２３６または他の適切な機構を介してシステム・バス２２１に接続することができる。ネットワーク化環境では、コンピュータ２４１に関して示したプログラム・モジュールまたはその一部をリモート・メモリ記憶装置に記憶することができる。一例として、図５はメモリ装置２４７上に存在するリモート・アプリケーション・プログラム２４８を示しているが、これに限らない。図示のネットワーク接続が例示的なものであり、コンピュータ同士の間に通信リンクを確立する他の手段を使用してよいことが理解されよう。
【００３１】
本明細書に記載された様々な技術をハードウェアまたはソフトウェア、あるいは必要に応じてそれらの組合せとの接続で実施できることを理解されたい。従って、本発明の方法および装置あるいはそれらのある態様または部分は、フロッピィ・ディスケット、ＣＤ−ＲＯＭ、ハード・ドライブ、他の任意の機械読取り可能記憶媒体などの有形媒体で実現されるプログラム・コード（すなわち、命令）の形をとることができ、このプログラム・コードが、コンピュータなどの機械にロードされこの機械によって実行されると、この機械は本発明を実施する装置になる。プログラム可能なコンピュータ上でのプログラム・コード実行の場合、コンピューティング・デバイスは一般に、プロセッサと、プロセッサによって読取り可能な記憶媒体（揮発性メモリおよび非揮発性メモリならびに／または記憶要素を含む）と、少なくとも１つの入力装置と、少なくとも１つの出力装置とを含む。例えば、ＡＰＩ、再使用可能な制御装置などを用いることによって、本発明に関して記載されているプロセスを実施または使用することのできる１または複数のプログラム。このようなプログラムは、高レベルの手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実施され、コンピュータ・システムと通信することが好ましい。しかし、プログラムは、必要に応じてアセンブリ言語または機械言語で実施することができる。いずれの場合も、言語はコンパイルまたは解釈済みの言語であってよく、かつハードウェア実現形態と組み合わせてよい。
【００３２】
例示的な実施形態は１または複数のスタンドアロン・コンピュータ・システムに対する本発明の各態様の利用を参照しているが、本発明はそれに限らず、ネットワーク環境または分散コンピューティング環境のようなあらゆるコンピューティング環境に関して実施することができる。さらに、本発明の各態様は、複数のチップまたは装置においてまたは複数のチップまたは装置にわたって実施することができ、同様に複数の装置にわたって記憶を行うことができる。このような装置にはパーソナル・コンピュータ、ネットワーク・サーバ、ハンドヘルド・デバイス、スーパーコンピュータ、または自動車や航空機のような他のシステムに組み込まれたコンピュータを含めてよい。
【００３３】
例示的なネットワーク化コンピューティング環境が図６に示されている。当業者には、ネットワークがあらゆるコンピュータまたはその他のクライアントもしくはサーバ装置を接続することも、分散コンピューティング環境で接続することもできることが理解できよう。なお、任意の数の処理ユニット、メモリ・ユニット、または記憶ユニットと、同時に発生する任意の数のアプリケーションおよびプロセスを有するあらゆるコンピュータ・システムまたは環境が、提供されるシステムおよび方法と一緒に使用するのが適切なコンピュータ・システムまたは環境とみなされる。
【００３４】
分散コンピューティングでは、コンピューティング・デバイスとシステムとの交換によってコンピュータ・リソースおよびサービスが共用される。これらのリソースおよびサービスは、情報の交換、ファイルのキャッシュおよびディスクへの記憶を含む。分散コンピューティングは、ネットワーク接続性を活用し、クライアントがその集合的な力にてこ入れして企業全体の利益を得るのを可能にする。なお、様々な装置が、本明細書に記載されたプロセスを実施できるアプリケーション、オブジェクト、またはリソースを有してよい。
【００３５】
図６は、例示的なネットワーク化コンピューティング環境または分散コンピューティング環境の概略図である。この環境は、コンピューティング・デバイス２７１、２７２、２７６、および２７７と、オブジェクト２７３、２７４、および２７５ならびにデータベース２７８を備えている。これらのエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は、それぞれ、プログラム、メソッド、データ記憶域、プログラム可能論理などを備えていても、それらを利用してもよい。エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は、ＰＤＡ、オーディオ／ビデオ装置、ＭＰ３プレーヤー、パーソナル・コンピュータのような同じまたは異なる装置の各部にわたってよい。各エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は、通信網２７０を介して他のエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８と通信する。なお、データベース２７８またはその他の記憶要素の保守および更新に任意のエンティティが責任を負ってよい。
【００３６】
ネットワーク２７０は、それ自体が、図６のシステムにサービスを提供する他のコンピューティング・エンティティを備えてよく、かつそれ自体が、複数の相互に接続されたネットワークを表してよい。本発明の一態様によれば、各エンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８は、ＡＰＩまたは他のオブジェクト、ソフトウェア、ファームウェア、および／またはハードウェアを利用して他のエンティティ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８のうちの１または複数のサービスを要求することができる離散的な機能プログラム・モジュールを含んでよい。
【００３７】
２７５などのオブジェクトを、他のコンピューティング・デバイス２７６上に存在させてよいことも理解されよう。従って、図示の物理的環境は、接続される装置をコンピュータとして示しているが、このような図は例示的なものに過ぎず、ＰＤＡ、テレビジョン、ＭＰ３プレーヤーのような様々なデジタル装置、インタフェースなどのソフトウェア・オブジェクト、ＣＯＭオブジェクトなどを備える物理的環境を図示または記載してもよい。
【００３８】
分散コンピューティング環境をサポートする様々なシステム、構成要素、およびネットワーク構成がある。例えば、コンピューティング・システム同士を有線システムまたは無線システムによって接続しても、ローカル・ネットワークまたは広域分散ネットワークによって接続してもよい。現在、インタネットに多数のネットワークが結合されており、インタネットは、広域分散コンピューティング用のインフラストラクチャを形成し、多数の異なるネットワークを包含している。インタネットに結合されているかどうかにかかわらず、あらゆるこのようなインフラストラクチャを、提供されるシステムおよび方法と一緒に使用することができる。
【００３９】
ネットワーク・インフラストラクチャは、クライアント／サーバ・アーキテクチャ、ピア・ツー・ピア・アーキテクチャ、ハイブリッド・アーキテクチャのような多数のネットワーク・トポロジを可能にする。「クライアント」は、それに関係のない他のクラスまたはグループのサービスを使用するクラスまたはグループの一員である。コンピューティングにおいて、クライアントは、他のプログラムから提供されるサービスを要求するプロセス、すなわち１組の命令またはタスクである。クライアント・プロセスは、他のプログラムやサービス自体に関する有用な詳細を「知る」必要なしに、要求したサービスを利用する。クライアント／サーバ・アーキテクチャ、特にネットワーク化システムにおいて、クライアントは、典型的には、他のコンピュータ、例えばサーバから与えられる共用ネットワーク・リソースにアクセスするコンピュータである。図６の例では、状況に応じて、あらゆるコンピュータ２７１、２７２、２７３、２７４、２７５、２７６、２７７、および２７８をクライアント、サーバ、またはその両方とみなすことができる。
【００４０】
サーバは、典型的には、インタネットなどのリモートまたはローカル・ネットワーク上でアクセス可能なリモート・コンピュータ・システムであるが、必ずしもそうでなくてよい。クライアント・プロセスが第１のコンピュータ・システムでアクティブであり、サーバ・プロセスが第２のコンピュータ・システムでアクティブであり、プロセス同士が通信媒体上で互いに通信することができ、従って、分散機能が実現され、複数のクライアントがサーバの情報収集機能を活用することができる。
【００４１】
クライアントとサーバは、プロトコル層から与えられる機能を利用して互いに通信する。例えば、ＨＴＴＰ（HyperText Transfer Protocol）は、ＷＷＷ（World Wide Web）すなわち「Ｗｅｂ」と一緒に使用される共通のプロトコルである。通常、ＩＰ（Internet Protocol）などのコンピュータ・ネットワーク・アドレスまたはＵＲＬ（Universal Resource Locator）のような他の参照要素を用いてサーバ・コンピュータまたはクライアント・コンピュータ同士を互いに識別することができる。ネットワーク・アドレスをＵＲＬアドレスと呼ぶことができる。通常媒体上で通信を行うことができ、例えば、クライアントおよびサーバをＴＣＰ／ＩＰ接続を介して互いに接続して大容量通信を行うことができる。
【００４２】
図５に示されている一般的なフレームワークに従って構成できる離散的なコンピューティング環境と、図６のようなネットワーク環境におけるコンピューティングで起こりえるさらなる多様化を考慮して、本明細書に与えられたシステムおよび方法は、特定のコンピューティング・アーキテクチャに対して何らかの点で制限的に構成することはできない。その代わり、本発明を単一の実施形態に制限すべきではなく、添付の特許請求の範囲による範囲で解釈すべきである。
【００４３】
（結論）
本明細書に記載された様々なシステム、方法、および技術は、ハードウェアまたはソフトウェア、あるいは必要に応じてそれらの組合せによって実施することができる。従って、本発明の方法および装置、またはそのある態様もしくは部分は、フロッピィ・ディスケット、ＣＤ−ＲＯＭ、ハード・ドライブ、他の任意の機械読取り可能記憶媒体などの有形媒体で実現されるプログラム・コード（すなわち、命令）の形をとることができ、このプログラム・コードが、コンピュータなどの機械にロードされこの機械によって実行されると、この機械は本発明を実施する装置になる。プログラム可能なコンピュータ上でプログラム・コードを実行する場合、コンピュータは一般に、プロセッサと、プロセッサによって読取り可能な記憶媒体（揮発性メモリおよび非揮発性メモリならびに／または記憶要素を含む）と、少なくとも１つの入力装置と、少なくとも１つの出力装置とを含む。１または複数のプログラムが高レベルの手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実施され、コンピュータ・システムと通信することが好ましい。しかし、プログラムは、必要に応じてアセンブリ言語または機械言語で実施することができる。いずれの場合も、言語はコンパイルまたは解釈済みの言語であってよく、かつハードウェア実現形態と組み合わせてよい。
【００４４】
本発明の方法および装置は、電線またはケーブル、光ファイバ、他の任意の伝送形式のようなある種の伝送媒体上で伝送されるプログラム・コードの形で実施することもでき、このプログラム・コードがＥＰＲＯＭ、ゲート・アレイ、プログラム可能論理デバイス（ＰＬＤ）、クライアント・コンピュータ、ビデオ・レコーダなどの機械にロードされかつこのような機械によって実行されると、機械は本発明を実施する装置になる。プログラム・コードは、汎用プロセッサ上で実施されると、プロセッサと組み合わされ、本発明のインデックス付け機能を実行するように動作する固有の装置を実現する。
【００４５】
本発明について様々な図の好ましい実施形態に関して説明したが、他の同様の実施形態を使用しても、本発明から逸脱せずに本発明の同じ機能を実行するように前述の実施形態に修正および追加を施してもよいことを理解されたい。例えば、本発明の例示的な実施形態について、パーソナル・コンピュータの機能をエミュレートするデジタル装置に関して説明したが、当業者には、本発明が、本出願に記載されたようなデジタル装置に限らず、ゲーム・コンソール、ハンドヘルド・コンピュータ、ポータブル・コンピュータのような任意の数の既存のまたは新しいコンピューティング・デバイスまたは環境に、それが有線であるか無線であるかにかかわらずに適用き、かつ通信網を介して互いに接続され、通信網を介して対話する任意の数のそのようなコンピューティング・デバイスに適用できることが認識されよう。さらに、本明細書では、特に、無線ネットワーク化装置の数が増え続けているため、ハンドヘルド・デバイス・オペレーティング・システムやその他のアプリケーション特有ハードウェア／ソフトウェア・インタフェース・システムを含む様々なコンピュータ・プラットフォームが考えられることに留意されたい。従って、本発明を単一の実施形態に制限すべきではなく、添付の特許請求の範囲による範囲で解釈すべきである。
【００４６】
最後に、本明細書に記載された開示された実施形態は、他のプロセッサ・アーキテクチャ、コンピュータ・ベースのシステム、またはシステム仮想化に使用できるように適応させることができ、そのような実施形態は、本明細書における開示によって明示的に予想され、従って、本発明は、本明細書に記載された特定の実施形態に制限すべきではなく、かなり広義に解釈すべきである。同様に、プロセッサ仮想化以外の目的に合成命令を使用することも本明細書における開示によって予想され、そのようにプロセッサ仮想化以外の状況で合成命令を任意に利用することを、本明細書における開示にかなり広義に読み込むべきである。
【図面の簡単な説明】
【００４７】
【図１】ユーザによって入力されたキーワードに基づく自動探索時に見つかったツリー・ビュー内のコマンドを示すグラフィカル・ユーザ・インタフェースの図である。
【図２】ユーザによって入力されたキーワードに基づく利用可能なプロセスを示すフローチャートである。
【図３】キーワードに一致することが判明した要素を図１のメニューに示されているものとしてツリーに挿入する図２のプロセスのより詳細な図を示すフローチャートである。
【図４Ａ】図１に示されているコマンドをツリー・ビュー内に表示するように構成されるプロセス内のツリーの図である。
【図４Ｂ】図１に示されているコマンドをツリー・ビュー内に表示するために構成された完全なツリーの図である。
【図５】本発明の様々な態様と一緒に使用するのに適した例示的なコンピューティング・デバイスを表すブロック図である。
【図６】多数のコンピュータ化プロセスを実施できる例示的なネットワーク化コンピューティング環境を示す図である。
【符号の説明】
【００４８】
１０１  編集ボックス
１０２  キーワード
１０３  一致項目のツリー
１０４  一致項目
【図１】
2006209749.tif 000003
【図２】
2006209749.tif 000004
【図３】
2006209749.tif 000005
【図４Ａ】
2006209749.tif 000006
【図４Ｂ】
2006209749.tif 000007
【図５】
2006209749.tif 000008
【図６】
2006209749.tif 000009