(57)【特許請求の範囲】
【請求項１】
階層データセット内のナビゲーションを容易にするために、コンピュータにおいて実行される方法であって、
前記階層データセット内のルートノードから選択ノードへの経路を表すブレッドクラムリストを生成するステップであって、前記ブレッドクラムリストは、前記階層データセットを単一のステップでナビゲートするために、階層的でなく、かつ前記経路上のノードを前記選択ノード毎に含む、ステップと、
前記階層データセット内の好適な位置を表す少なくとも１つの補足ブレッドクラムを前記ブレッドクラムリストに追加するステップであって、前記好適な位置は、
前記選択ノードに概念的に関連する、前記階層データセット内の少なくとも１つのノード、および
少なくとも１のユーザとの関連を有する、前記階層データセット内の少なくとも１つのノード
を含む好適な位置のセットから選択される、ステップと、
前記ブレッドクラムリストを表示するステップと
を含むことを特徴とする方法。
【請求項２】
少なくとも１のユーザとの関連を有する前記階層データセット内の少なくとも１つのノードの前記好適な位置は、ユーザによって以前に訪問された位置を表す、前記階層データセットのノードを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記以前に訪問された位置は、前記階層データセット内において前記選択ノードより下位にある、以前に訪問された位置を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記階層データセットの個々のノードは、前記選択ノードの下位にある、訪問された下位ノードを下位ノード訪問メモリに記録するように構成され、
前記ブレッドクラムリストは、前記選択ノードの前記下位ノード訪問メモリ内で表される前記訪問された下位ノードを表す、補足ブレッドクラムを備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記階層データセットは、スコープ化された階層データセットを備え、前記スコープ化された階層データセットは、任意の概念的基準にしたがって１つのブレッドクラムとして集約された、異なる階層レベルのノードを含む前記階層データセットであり、前記以前に訪問された位置を表すノードが、前記スコープ化された階層データセット内に含まれることを特徴とする請求項２に記載の方法。
【請求項６】
前記好適な位置は、前記階層データセット内の頻繁に訪問される位置を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記階層データセットは、スコープ化された階層データセットを備え、前記スコープ化された階層データセットは、任意の概念的基準にしたがって１つのブレッドクラムとして集約された、異なる階層レベルのノードを含む前記階層データセットであり、前記頻繁に訪問される位置を表すノードが、前記スコープ化された階層データセット内に含まれることを特徴とする請求項６に記載の方法。
【請求項８】
前記表示するステップは、前記少なくとも１つの補足ブレッドクラムの表示を切り替えるように構成された補足ブレッドクラムインジケータを表示することを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記選択ノードは、ユーザによって選択され、
ユーザによって以前に訪問された前記階層データセットの前記ノードは、前記選択ノードを選択した前記ユーザによって以前に訪問された、前記階層データセットのノードを含むことを特徴とする請求項２に記載の方法。
【請求項１０】
前記ブレッドクラムリストを表示するステップは、前記少なくとも１つの補足ブレッドクラムを含むブレッドクラムの一次元のリストとして、前記ブレッドクラムリストを表示することを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
階層データセット内のナビゲーションを容易にするために、プロセッサに、
階層データセット内のルートノードから選択ノードへの経路を表すブレッドクラムリストを生成するステップであって、前記ブレッドクラムリストは、前記階層データセットを単一のステップでナビゲートするために、階層的でなく、かつ前記経路上のノードを前記選択ノード毎に含む、ステップと、
前記階層データセット内の好適な位置を表す少なくとも１つの補足ブレッドクラムを前記ブレッドクラムリストに追加するステップであって、前記好適な位置は、
前記選択ノードに概念的に関連する、前記階層データセット内の少なくとも１つのノード、および
少なくとも１のユーザとの関連を有する、前記階層データセット内の少なくとも１つのノード
を含む好適な位置のセットから選択される、ステップと、
前記ブレッドクラムリストを表示するステップと
を実行させるプロセッサ実行可能命令を記憶したことを特徴とするコンピュータ読取可能記憶媒体。
【請求項１２】
階層データセット内のナビゲーションを容易にするために、コンピュータにおいて実行される方法であって、
前記階層データセット内のルートノードから選択ノードへの経路を表すブレッドクラムリストを生成するステップであって、前記ブレッドクラムリストは、前記階層データセットを単一のステップでナビゲートするために、階層的でなく、かつ前記経路上のノードを前記選択ノード毎に含む、ステップと、
前記階層データセット内の好適な位置を表す少なくとも１つの補足ブレッドクラムを前記ブレッドクラムリストに付加するステップと、
前記少なくとも１つの補足ブレッドクラムを付加した一次元のブレッドクラムのシーケンスとして、前記ブレッドクラムリストを表示するステップと
を含むことを特徴とする方法。
【請求項１３】
前記少なくとも１つの補足ブレッドクラムによって表される好適な位置は、前記選択ノードと概念的に関連する、前記階層データセットの少なくとも１つのノードの位置を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記少なくとも１つの補足ブレッドクラムによって表される好適な位置は、ユーザによって以前に訪問された位置を表す、前記階層データセットの少なくとも１つのノードの位置を含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記ブレッドクラムリストの少なくとも１つのブレッドクラムは、前記階層データセットの少なくとも２つのノードを表すことを特徴とする請求項１２に記載の方法。
【請求項１６】
階層データセット内のナビゲーションを容易にするために、プロセッサに、
前記階層データセット内のルートノードから選択ノードへの経路を表すブレッドクラムリストを生成するステップであって、前記ブレッドクラムリストは、前記階層データセットを単一のステップでナビゲートするために、階層的でなく、かつ前記経路上のノードを前記選択ノード毎に含む、ステップと、
前記階層データセット内の好適な位置を表す少なくとも１つの補足ブレッドクラムを前記ブレッドクラムリストに付加するステップと、
前記少なくとも１つの補足ブレッドクラムを付加した一次元のブレッドクラムのシーケンスとして、前記ブレッドクラムリストを表示するステップと
を実行させるプロセッサ実行可能命令を記憶したことを特徴とするコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層データセットに対するブレッドクラムリストの追加に関する。
【背景技術】
【０００２】
コンピューティングの多くのエリアには、階層的に編成されたデータセット、ならびにそのようなデータセットの表示およびナビゲーションのための技法が関連する。階層的に編成されるそのようなデータアイテムはノードとしても知られ、該階層的に編成されたデータアイテムのセットは、ルートノードとして知られる最上レベルにある１つまたは複数のアイテムを用いて編成され得る。各ノードは、子ノードとして知られる任意の数の下位アイテムを含むことができ、該子ノードも同じく任意の数の下位アイテムを含むことができる。ノードは子ノードを含まなくともよく、従ってリーフノードの役割を果たすこともある。この編成構造は包含関係の階層を提供し、ルートノードを除く各ノードは、１つ上のレベルのノード（親ノードとして知られる）内に含まれる。
【０００３】
階層的データ編成を幾つかのコンテキストで使用することができる。一例として、ＸＭＬ（Extensible Markup Language）スキーマに準拠する形式で格納されたデータは階層的に編成されており、ＸＭＬデータセットは多くとも１つのルートノードを含み、ルートノード以外の各データアイテムはちょうど１つ上のレベルのＸＭＬデータアイテムに含まれる。本例では、包含関係は入れ子（nesting）を表し、完全な入れ子型の厳密に階層的なデータセットがもたらされる。
【０００４】
階層的データセットはしばしば、個々のノードを開閉してその中に含まれる子ノードを（それぞれ）表示または隠蔽することができる、ツリービュー・グラフィカル・ユーザコントロールを通じて表示される。図１Ａ〜１Ｂに図示される例示的なツリービューは、それぞれ、同じ階層データセットのツリービューを２つの異なるビュー状態で表している。図１Ａは、階層の唯一の最上レベルを成し、他のノードの全てを直接的または間接的に含む、ノードＡと名づけたルートノード１２を含む、階層データセット１０を示している。例えば、ノードＡ１２はノードＢ１４、ノードＣ１６、ノードＦ２２、およびノードＫ３２を直接含み、これらはいずれも第２階層レベルを成す。ノードＣ１６はさらにノードＤ１８およびノードＥ２０を含み、ノードＦ２２はさらにノードＧ２４、ノードＨ２６、およびノードＪ３０を含み、ここでノードＨ２６はさらにノードＩ２８を含む。
【０００５】
ツリービュー・ユーザコントロールを使用して、無数のノードから成る非常に大きな階層データセットを表示することができるが、該ノードの全てを表示すると、ユーザのナビゲーションには扱いにくいものとなる。したがって、ツリービューは、各ノードを開状態または閉状態で表示できるようにし、開状態のノード（「−」記号で示される）は、全ての子ノードとともに示され、閉状態のノード（「＋」記号で示される）は、子ノードを隠蔽した状態で示される。ツリービューにおけるノードの開状態または閉状態を、ユーザが切り替える（toggle）ことができる（例えば、ノードの左側の「＋」記号または「−」記号をマウスなどのポインティング・デバイスでクリックすることによって）。図１Ｂに示されるツリービュー１０は、図１Ａのツリービューと同じデータセットを図示するが、ノードＣ１６、ノードＨ２６、ノードＪ３０、およびノードＫ３２は閉状態で図示されている（したがって、ノードＣ１６内に含まれるノードＤおよびＥ、ならびにノードＨ２６に含まれるノードＩは隠蔽されている）。図１Ｂのツリービューで図示された階層データセット１０は、依然としてノードＤ、Ｅ、およびＩを含むが、これらの子ノードは、ツリービュー１０の現在の状態では隠蔽されており、それぞれの親ノードを開くことによって再び示すことができる。
【０００６】
データセットの階層編成により、ノードに到達するためにトラバースする各経路（path）に従ってノードを記述することができる。例えば、図１Ａでは、ノードＨ２６をノードＦ２２の子ノードとして記述することができ、ノードＦ２２は同じくノードＡ１２の子ノードである。逆方向では、ノードＡ１２で開始して（ノードＡ１２の子ノードの中で）ノードＦ２へナビゲートし、（ノードＦ２２の子ノードの中で）ノードＨ２６へナビゲートすることによって、図１Ａに図示された階層データセット１０をトラバースすることでノードＨ２６に到達することができる。このシーケンスは、ノードＡ：ノードＦ：ノードＨという階層的経路を形成し、該経路を使用して階層データセット１０内のノードＨ２６の編成を記述することができる。
【０００７】
ユーザが階層データセットをトラバースするとき、このシーケンスを、ブレッドクラムリスト（パンくずリスト）（breadcrumb list）として、例えばユーザが現在のノードへ到達するためにナビゲートした階層的な一連のノードとして提示することもできる。図１Ｃは、図１Ａの階層データセット内のノード毎のブレッドクラムリストを図示している。図１Ｃの例示的なブレッドクラムリスト４０では、階層データセットの各ノード４２が選択されると、各ノード４２は、階層データセットのルートノードから該選択ノード（selected node）への経路内の各位置を表すブレッドクラム（breadcrumb）４６を含む、ブレッドクラムリスト４４に関連付けられる。図１Ｃの例示的なブレッドクラムリスト４４において、ブレッドクラム４６は、ルートノードから選択ノードまでの順で表示される。したがって、表示されるブレッドクラムリスト４４は、階層データセットを介して選択ノードへ到達する経路を、ユーザに表示する。さらに、一部の実装形態では、ブレッドクラムリスト４４のブレッドクラム４６を（例えば、マウスなどのポインティング・デバイスでブレッドクラムをクリックすることによって）アクティブ化して、アクティブ化されたブレッドクラムで表されたノードへ（例えば、同じ階層データセットを表示しているツリービューに、アクティブ化されたブレッドクラムによって表されたノードへジャンプさせることによって）移動する。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
この発明の概要の記載を、以下の発明を実施するための形態においてさらに説明される概念の選択を簡潔な形で紹介するために提供する。この発明の概要の記載は、特許請求される主題の主要な要素または本質的な特徴を特定するようには意図されておらず、特許請求される主題の範囲を限定するようにも意図されていない。
【０００９】
本開示では、階層データセットの表現について論ずる。上述したタイプのブレッドクラムリストは、階層データセット内のノードの位置に関する何らかの有用な情報を提供することができ、これらの階層内のナビゲーションを容易にすることができる。しかしながら、より大きな階層データセット（多数のノードを有する階層データセット）内におけるナビゲートには、所望のノードに到達するために階層データセットの多くのレベルを掘り下げる（drill down）など多くのナビゲーション・ステップが必要となることがあり、これはユーザにとっては扱いにくいものである。
【課題を解決するための手段】
【００１０】
階層データセットの他の所望の部分へナビゲートするために、さらなるナビゲーション支援をブレッドクラムリストのコンテキストで提供することができる。ルートノードから選択ノードへの経路内またはその経路外のいずれかで、階層内の好適な位置（preferred location）にポイントする１つまたは複数の補足ブレッドクラム（supplemental breadcrumb）を含むように、ブレッドクラムリストに追加することができる。好適な位置の例の一部には、階層データセット内の以前に訪問された位置（previously visited location）、ユーザが頻繁に訪れている階層データセット内の位置、選択ノードをナビゲートする際にユーザがよく訪れることを好む階層データセット内の位置が含まれる。これらの好適な位置を「補足」ブレッドクラムとしてブレッドクラムリストに（例えば、リストの末端に）含めることによって、ユーザインタフェースは、階層データセット内のユーザのナビゲーションを容易にすることができる。
【００１１】
前述の目的および関連する目的を達成するために、以下の説明および添付の図面では、ある特定の例示的な態様および実装を説明する。これらは、１つまたは複数の態様を利用する様々な方法のうちの一部を示すものにすぎない。本開示の他の態様、利点、および新規の特徴は、添付図面とともに検討すると、以下の発明を実施するための形態から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１Ａ】例示的な階層データセットに対する例示的なツリービュー・ユーザインタフェースコンポーネントを示す図である。
【図１Ｂ】例示的な階層データセットに対する例示的なツリービュー・ユーザインタフェースコンポーネントを示す図である。
【図１Ｃ】図１Ａ〜１Ｂで図示される例示的な階層データセット内の様々なノードに対するブレッドクラムリストを示すテーブルである。
【図２】例示的な方法を示す流れ図である。
【図３Ａ】図１Ａに図示される例示的な階層データセットの例示的なナビゲーション履歴を表す、例示的なブレッドクラム経路のセットを示すテーブルである。
【図３Ｂ】図１Ａに図示される例示的な階層データセットの例示的なナビゲーション履歴を表す、例示的なブレッドクラム経路の別のセットを示すテーブルである。
【図３Ｃ】図１Ａに図示される例示的な階層データセット内の様々なノードに対する例示的なブレッドクラム経路のセットを示すテーブルである。
【図３Ｄ】図１Ａに図示される例示的な階層データセット内の様々なノードに対する例示的なブレッドクラム経路の別のセットを示すテーブルである。
【図３Ｅ】図１Ａに図示される例示的な階層データセット内の様々なノードに対する例示的なブレッドクラム経路の別のセットを示すテーブルである。
【図４Ａ】例示的なスコープ化された階層データセットに対する例示的なツリービュー・ユーザインタフェースコンポーネントを示す図である。
【図４Ｂ】図４Ａに図示される例示的なスコープ化された階層データセット内の様々なノードに対するブレッドクラムリストのテーブルである。
【図４Ｃ】図４Ａに図示される例示的なスコープ化された階層データセットの例示的なナビゲーション履歴を表す、例示的なブレッドクラム経路の別のセットを示すテーブルである。
【図４Ｄ】図４Ａに図示される例示的なスコープ化された階層データセット内の様々なノードに対する例示的なブレッドクラム経路のセットを示すテーブルである。
【図５Ａ】本明細書で説明される視覚的態様のブレッドクラムリストを示す図である。
【図５Ｂ】本明細書で説明した視覚的態様の別のブレッドクラムリストを示す図である。
【図５Ｃ】本明細書で説明した視覚的態様のさらに別のブレッドクラムリストを示す図である。
【図５Ｄ】本明細書で説明した視覚的態様のさらに別のブレッドクラムリストを示す図である。
【図６】例示的なシステムを示すコンポーネント図である。
【図７】本明細書で開示されるようなブレッドクラムリストを備える例示的な統合開発環境を示す図である。
【図８】本明細書で開示されるような方法を実行するように構成されるプロセッサ実行可能命令を備えた例示的なコンピュータ読取可能媒体を示す図である。
【発明を実施するための形態】
【００１３】
次に、図面を参照して特許請求される主題を説明するが、図面では、その全体を通じて同じ参照番号を使用して同じ要素を示している。以下の記述では、説明の目的で、特許請求される主題の完全な理解を提供するために多数の具体的な詳細を説明している。しかしながら、これらの具体的な詳細を用いずに特許請求される主題を実施することができることは明らかであろう。他の事例では、特許請求される主題の説明を容易にするために、公知の構造および装置をブロック図の形式で示している。
【００１４】
本開示は、階層データセットを表現するための技法に関し、具体的には、階層データセット内をナビゲートするためのブレッドクラムリストに関する。ツリービュー・コントロールは非常に大きな階層データセットに関連付けられるが、ツリービュー・コントロールにとって、該階層データセットに含まれる情報の量は扱いにくいものとなり得る。特に、大きな階層データセットをナビゲートするには、ユーザが、低レベルのノードに到達するためにツリービュー内の多数のノードの開閉を管理しなければならないことがあるので、非常に時間がかかる可能性がある。ルートノードまでの親のリストを示すブレッドクラムリストは、一部のナビゲーション・パターンにとっては有用である可能性があるが、他のナビゲーション・パターンは、そのようなブレッドクラムリストではあまり容易にならない可能性もある。一例として、ユーザがいくつかのノードを繰り返し訪れる必要があり、特に、そのノードが階層データセットの異なる部分に存在し、ルートノードからかなり異なる経路で到達されるノードである場合、それらのノード各々に到達するために同じノード・シーケンスを繰り返し辿ってナビゲートする必要がある。別の例として、ユーザが特定のノードを頻繁に訪れる必要がある場合、または、階層内の多くの深いレベルにあるが該階層の複数のユーザが頻繁に訪れるノードを、該ユーザが訪れる必要がある場合、上述のブレッドクラムリストでは、そのようなナビゲーションを大幅に促進させることはできないことがある。
【００１５】
代替的なブレッドクラムリストのユーザインタフェースコンポーネントは、ブレッドクラムリストの様々な部分を、関連する情報のグループとして提示することができる。上述のナビゲーション・パターンの予測において、選択ノードのブレッドクラムリストを、ルートノードに戻るブレッドクラムを用いて生成することができ、次いで、階層データセット内の好適な位置を表す少なくとも１つの補足ブレッドクラムを追加することができる。一例として、補足ブレッドクラムは、ユーザが階層データセットをナビゲートする間に以前に訪れた位置（特に、選択ノードより下位にある位置）を表すことができる。別の例として、補足ブレッドクラムは、ユーザが階層データセットをナビゲートする間に頻繁に訪れた位置を表すことができる。第３の例として、補足ブレッドクラムは、階層データセットの他のユーザが（特に、選択ノードをナビゲートする間に）頻繁に訪れる位置を表すことができる。少なくとも１つの補足ブレッドクラムをブレッドクラムリストに追加することにより（例えば、ブレッドクラムリストに付加することにより）、階層データセットに対するグラフィカルユーザインタフェースは、好適な位置へのショートカットを提供することによって階層データセット内のユーザのナビゲーションを容易にすることができる。
【００１６】
図２は、階層データセットに関するブレッドクラムリストに対して補足ブレッドクラムを使用することに関連する例示的な方法を示す流れ図を提示する。この図は、階層データセット内のナビゲーションを容易にする方法５０を図示している。方法５０は５２で開始し、階層データセット内のルートノードから選択ノードへの経路を表す、ブレッドクラムリストを生成すること５４を含む。方法５０は、階層データセット内の好適な位置を表す少なくとも１つの補足ブレッドクラムをブレッドクラムリストに追加すること５６も含む。方法５０は、該ブレッドクラムリストを表示すること５８も含む。このタイプのブレッドクラムリストを生成して、１つまたは複数の補足ブレッドクラムを追加し、ブレッドクラムリストをユーザに対して表示することによって、方法５０は、階層データセット内のユーザのナビゲーションを容易にし、この結果が達成されると、本方法は６０で終了する。
【００１７】
図３Ａ〜３Ｅは、様々な好適な位置を表す補足ブレッドクラムを有するブレッドクラムリストに関する一部の実施形態を示す。図１Ａに図示された階層データセットが、図３Ａ、３Ｂ、および３Ｅ、ならびにこれらの図で示される概念の基礎となっている。図３Ｃは、図１Ａの階層データセットを若干修正したものを図示しており、この修正版は図３Ｄおよび図３Ｄで提示される概念の基礎となる。したがって、図３Ａ〜３Ｂ、および図３Ｄ〜３Ｅ、ならびにこれらの図で示される概念を完全な理解には、図１Ａおよび図３Ｃを参照するのが有用であろう。また、これらの例示的なブレッドクラムリストにおいて、補足ブレッドクラムは、ルートノードから選択ノードへの経路を備えたブレッドクラム（白色）と比較されるように異なる色（灰色）で示されており、補足ブレッドクラムは、上記経路を備えているブレッドクラムに付加されている。しかしながら、補足ブレッドクラムを視覚的に様式化する態様には多数の変形が可能であり、そのような変形形態の一部を以下の図３Ａ〜３Ｅの議論でより詳細に論ずる。
【００１８】
図３Ａは、例示的なナビゲーション履歴（navigation history）を考慮した、図１Ａの例示的な階層データセットの様々なノードに対する例示的なブレッドクラムリストのテーブルを提示しており、ユーザは階層データセットのノードを特定の順序で訪れる（例えば、最初にノードＡ、次にノードＣ、その次にノードＥ、次いでノードＣに戻るなど）。図３Ａに図示される例示的なナビゲーション履歴は、階層データセットを単一のステップでナビゲートすることを特徴とするが、ユーザが階層データセットのノードを任意の順序で訪問することも可能であることは認識されよう。この例示的なナビゲーション履歴７０内のナビゲーション毎に、ユーザに、選択ノードに対するブレッドクラムのリストが提示される。本明細書で説明される１つまたは複数の技法によると、ブレッドクラムリストは、ルートノード（この場合、ノードＡ）から選択ノード（例えば、７２、７４、７６）への経路を表すブレッドクラムを、好適な位置を表す１つまたは複数の補足ブレッドクラムとともに備えている。図３Ａの例示的なブレッドクラムリストでは、補足ブレッドクラムは階層データセット内の以前に訪問されたノードを表す。最初の３回のナビゲーションでは、ユーザは、連続してブレッドクラムの経路を備えるノード（それぞれ、７２、７４、７６）を訪れる（例えば、選択する）。４回目のナビゲーションでは、ユーザは、親ノードＣ７８へ上方にナビゲートし、その結果、以前に訪問された子ノードＥは、ルートノードＡから選択ノードＣ７８へのブレッドクラム経路にはもはや含まれない。本明細書で説明される技法に関する本実施形態では、ノードＥは、該ユーザが以前に訪れたノードであるため該階層内における好適な位置であり、したがって、ブレッドクラム経路内の補足ブレッドクラム８０として表される。同様に、５回目のナビゲーションでは、階層データセットのノードＣを含む部分から、ノードＦを含む別の部分へ移動し、したがって、このナビゲーションに対するブレッドクラムリストは、ルートノードＡから選択ノードＦへの経路を表すブレッドクラム、ならびに、ノードＣ８２およびノードＥ８４などの以前に訪問された位置を表す補足ブレッドクラムを含む。
【００１９】
図３Ａのブレッドクラムリストが、以前に訪問されたノードを含む好適な位置を表す補足ブレッドクラムを含むことは認識されよう。補足ブレッドクラムを生成するための本技法を、各々が様々な利点を有する多数の実装形態で具現化することができる。一例として、図３Ａに図示されるように、以前に訪問された位置がルートノードから選択ノードへの経路に含まれる場合は、以前に訪問された位置は補足ブレッドクラムとして追加されない。例えば、１０回目のナビゲーションにおいて、以前に訪問されたノードＣ８６は（それが９回目のナビゲーションでは補足ブレッドクラムとして含まれているにも関わらず）、補足ブレッドクラムから省略されているが、これは、ノードＣが既に、ルートノードＡから選択ノードＣ８６への経路を含むブレッドクラム８８として提示されているからである。別の例として、補足ブレッドクラムの数に、絶対的に（例えば、補足ブレッドクラムの数は３つを超えない）またはブレッドクラムリストのサイズとの関連で（例えば、ブレッドクラムリスト内のブレッドクラムの数は８つを超えない）、上限を定めることができる。本明細書で説明される技法に従って動作しうる他の変形形態も当業者によって考案され得るであろう。
【００２０】
図３Ｂは、図３Ａと同じ例示的なナビゲーション履歴を考慮した、図１Ａの例示的な階層データセットの様々なノードに対する例示的なブレッドクラムリストの別のテーブルを図示している。この実装は、補足ブレッドクラムに対する好適な位置の選択に関してさらなる限定を特徴とする点で、図３Ａに示される実装とは異なる。図３Ａと同様に、好適な位置は、前に訪れたが未だブレッドクラム経路の一部ではないノードであり、さらに、当該位置は、階層データセット内の選択ノードより下位である（例えば、ツリービュー内でさらに下にある）。例えば、３回目のナビゲーションでは、ノードＥは、好適な位置を表す補足ブレッドクラム９２として含まれるが、これはノードＥが、現在のノードＣ９０より下位にあるからである。しかしながら、ノードＦへの５回目のナビゲーションでは、以前に訪問されたノードＣも以前に訪問されたノードＥも補足ブレッドクラムとしては含まれない。なぜならば、ノードＣもノードＥもノードＦ９４の下位にないからである。この例示的な選択技法は、補足ブレッドクラムのセットを、選択ノードにより関連するものに限定する際に、階層データセットの他の（無関係である可能性がある）部分を表すものを隠蔽することによって、有利なものとなる可能性がある。
【００２１】
図３Ｂによって表される別の変形では、階層データセットのノードは下位ノード訪問メモリ（subordinate node visit memory）を備える。ユーザが、階層データセットをナビゲートすると、ノードは下位ノード訪問メモリに、ユーザが訪れた下位ノード（例えば、子ノード、孫ノードなど）を記録することができる。下位ノード訪問メモリは、下位ノードへの訪問に関する他の詳細（例えば、訪問の新しさ（recency）、訪問の頻度、下位ノードが選択された時間など）を含むこともできる。ユーザが後にあるノードを選択するとき、該選択ノードの下位ノード訪問メモリにアクセスして、該ユーザが訪れた該選択ノードの下位ノードを決定することができ、補足ブレッドクラムを生成して、該補足ブレッドクラムを、以前に訪問された下位ノードのブレッドクラムリストに挿入することができる。さらに、このような補足ブレッドクラムを様々な方法でソートすることができ、該補足ブレッドクラムは、下位ノードの訪問に関して記録された追加の情報に基づくものとすることができる。例えば、下位ノード訪問メモリから生成された補足ブレッドクラムを、子ノードの階層レベル（例えば、最初に全ての子ノード、次に全ての孫ノードなど）や、訪問の新しさ若しくは頻度、下位ノードが選択されていた時間などに従って、ソートすることができる。本明細書で説明される技法に従って動作しうる他の変形形態も当業者によって考案され得るであろう。例えば、図３Ｂでは、ノードＦ９４は、最初は空である下位ノード訪問メモリを備えている。ユーザが（ノードＦ９４の下位である）ノードＨおよびＩを訪れると、ルートノードＦ９４は、その下位ノードの訪問を下位ノード訪問メモリに記録することができる。後でノードＦ９４を選択すると（例えば、９回目の訪問で）、ノードＦ９４の下位ノード訪問メモリを利用して、以前に訪問された上記下位ノードに対する補足ブレッドクラムを生成することができる。
【００２２】
図３Ｃは、図１Ａの階層データセットではあるが、階層データセット１０のユーザが頻繁に訪問したとして識別される２つのノード（ノードＥ９６およびノードＪ９８）を有するという追加の特徴を含む階層データセットを図示している。例えば、メディア・コレクションを備える階層データセットでは、ノードＥ９６およびノードＪ９８は、該メディア・コレクションのユーザが最も頻繁に再生したメディアアイテム（例えば、メディア・セット内の最新のヒット）を表すことができる。これらの識別子はまた、階層データセット内の好適な位置と見なされる。したがって、図３Ｄは、例示的な階層データセットの様々なノードに対する例示的なブレッドクラムリストの別のテーブル７０を図示しており、該テーブルでは、好適な位置（例えば、階層データセットのユーザが最も頻繁に訪れるノード）が補足ブレッドクラムとして含まれている。したがって、ノードＥおよびＪは、該ノードの一方がブレッドクラムリストに既に含まれている場合を除いて、ナビゲーション毎に補足ブレッドクラム（それぞれ、１００および１０２）としてブレッドクラムリストに追加される（例えば、３回目のナビゲーションでは、ノードＥが既にブレッドクラムリスト内にあるので、ノードＥは補足ブレッドクラムとして含まれない）。本実装形態の項目を図３Ｂに図示される実装形態の項目と組み合わせて、参照される位置が選択ノードの下位にあるときのみ、頻繁に訪問されるノードを補足ブレッドクラムとして含むようにすることも可能である。
【００２３】
図３Ｅは、図３Ａと同じ例示的なナビゲーション履歴を考慮した、図１Ａの例示的な階層データセットの様々なノードに対する例示的なブレッドクラムリストのさらに別のテーブルを図示している。本実装形態は、階層データセットのトラバース中にユーザがノードの各々を訪れた頻度に基づいて補足ブレッドクラムに対する好適な位置を選択する、という点で異なる。本実施形態では、システムは、階層データセットの各ノードへの訪問の数を追跡して、ルートノードから選択ノードへの経路を表す、ブレッドクラムリストに含まれない以前のノードに対する補足ブレッドクラムを表示する。例えば、ノードＥ１０６への最初の訪問の後に、ノードＥは、１度訪問された位置を表す補足ブレッドクラム１１０として表示される。同様に、ノードＣ１０４、１０８への最初の２回の訪問の後、ノードＣは、２度訪問された位置を表す補足ブレッドクラム１１２として表示される。さらに、補足ブレッドクラムを、訪問の頻度に従ってソートすることができる。訪問頻度を、各補足ブレッドクラム内に表示することができ（例えば、５回目のナビゲーションには、ノードＣを参照し、このノードがユーザによって２度訪問されたことを示す、補足ブレッドクラムが含まれる）、あるいは単に訪問頻度を、補足ブレッドクラムのセットを選択および／またはソートするのに使用することができる。以前に訪問されたノードは、該ノードがブレッドクラムリストの一部である場合は、補足ブレッドクラムとして表示されないことにも留意されたい。例えば、ノードＦは、該ノードＦが、ルートノード（ノードＡ）から選択ノード（ノードＨ）への経路を表すブレッドクラムリストに含まれるため、６回目のナビゲーションでは補足ブレッドクラムとして含まれない。
【００２４】
補足ブレッドクラムによって表される好適な位置に関する実施形態のさらなるセットには、スコープ化された（scoped）階層データセットの概念が含まれる。具体的には、ユーザは低レベルのノードに到達するためにツリービュー内の多数のノードの開閉を管理しなければならないことがあるので、多くのレベルを有する階層データセットをナビゲートするには非常に時間がかかる可能性がある。同様に、低レベルのコントロールのためには、ブレッドクラムリストが面倒なほど長くなる可能性がある（例えば、階層データセットとする米国連邦法典において、特定の特許規則への参照が、全部で７つのブレッドクラムから成る「United States Code : Chapter 35 : Section (103) : Paragraph (b) : Subparagraph (3) : Subsubparagraph (A) : Subsubsubparagraph (iii)」（合衆国法典:第３５章：第１０３条：第ｂ項：第３サブパラグラフ：第Ａサブサブパラグラフ：第ｉｉｉサブサブサブパラグラフ）などのブレッドクラムリストとして表される可能性がある）。従来のブレッドクラムリストにおける複数の深さレベルの表示は、あまりに多くの情報によりユーザを圧倒させる可能性があり、このために、各ユーザインタフェースコンポーネントのナビゲーションのユーティリティが低下している。これらの欠点は、可搬性が改良された小型ＬＣＤスクリーンを特徴とするスマート携帯電話およびウルトラモバイルＰＣ（ＵＭＰＣ：ultramobile PC）などの小型ディスプレイ付きの装置では悪化する可能性がある。
【００２５】
代替的なブレッドクラムリストのユーザインタフェースコンポーネントは、ブレッドクラムリストの様々な部分を、関連する情報のグループとして提示することができる。概念的にリンクされた様々なレベルの階層を１つのブレッドクラムとして集約して提示することができ、ユーザが階層をより深くナビゲートするにつれて集約度を高めることができる。例えば、上で参照した米国特許法の一部は、全部で３つのブレッドクラム、すなわち「United States Code, Chapter 35 : Section(103), Paragraph(b), Subparagraph(3) : Subsubparagraph(A), Subsubsubparagraph(iii)」（合衆国法典、第３５章：第１０３条、第ｂ項、第３サブパラグラフ：第Ａサブサブパラグラフ、第ｉｉｉサブサブサブパラグラフ）を含むブレッドクラムリストとして、より都合よく記述することができ、同じ規則を表すスコープ化されていないブレッドクラムリストの７つのブレッドクラムと比較して簡略化されている。これらの特定のスコープ化されたブレッドクラムは、「35 U.S.C.」（合衆国法典第３５章）を表す第１のブレッドクラムと、「Section 103(b)(3)」（第１３０条（ｂ）（３））を表す第２のブレッドクラムと、「A(iii)」を表す第３のブレッドクラムとして引用されることが多い。この簡略化されたブレッドクラムリストは、同種の情報の集約に応じて、より少ない数のブレッドクラムを表示する。
【００２６】
何らかの概念的基準に従って様々なレベルの階層データセットをリンクさせることを「スコープ化（scoping）」と呼ぶ。この手法では、例えば、階層データセットの或る特定の部分内のいくつかのレベルを、あるスコープを共有しているものとして示すことができ、該階層のこれらのレベル内またはこれらのレベルより下位をナビゲートすることにより、ブレッドクラムリスト内に、そのスコープ内の複数のレベルのノードを参照する、集約されたブレッドクラムを生成する。ブレッドクラムリストのコンテキストでは、スコープ化により、複数のブレッドクラム／ノードを単一のブレッドクラムまたは１つの原子的単位（atomic unit）に集約して、より効率的なデータのナビゲーションおよび／または管理を促進することができる。
【００２７】
スコープ化された階層データセットの概念は図４Ａに図示されており、図４Ａは、図１Ａのスコープ化されていない階層データセット１０と同じノード編成を含むが以前の階層の一部のノードがスコープにグループ化されている、例示的なスコープ化された階層データセット１２０を示している。図４Ａには２つのスコープが図示されている。すなわち、一方は、第２レベルのノードＢ１２４およびＣ１２６と、ノードＣ１２６内の第３レベルのノードＤ１２８およびＥ１３０とを含むスコープ、もう一方は、第２レベルのノードＦ１３２と、第３レベルのノードＧ１３４、Ｈ１３６、およびＪ１４０とを含むスコープである。これらのスコープは例示的な目的でハッシングおよびシェーディングして示されているが、階層スコープは概念的な関係であって、スコープ化された階層を示すユーザインタフェースに１つまたは複数の特徴的な視覚スタイルを組み込むことができるが、視覚的な提示は本技法の必須の要素ではないことは認識されよう。図４Ａから、特定のノードの子ノードは必ずしも同じスコープとはならないことがわかるであろう。例えば、ノードＡ１２２は子ノードとして、（あるスコープの）ノードＢ１２４およびＣ１２６の両方と、（別のスコープの）ノードＦ１３２と、（スコープ化されていない）ノードＫ１４２とを含む。また、あるスコープに関連付けられたノードが、別のスコープに関連付けられた子ノードまたはスコープに関連付けられていない子ノードを含むこともあり得ることがわかるであろう。例えば、ノードＦ１３２、Ｇ１３４、およびＪ１４０と同じスコープのノードＨ１３６は、スコープ化されていないノードＩ１３８を含む。最後に、各スコープが、親ノード／子ノードの階層関係を有する少なくとも１つのノードの対（例えば、ノードＥ１３０対ノードＣ１２６）を備えることにより、そのようなノードを、スコープ化されたブレッドクラムに集約することが可能になるという利点を有することもわかるであろう。
【００２８】
図４Ｂは、図４Ａに図示したスコープ化された階層データセット１２０の様々なノードに対するスコープ化されたブレッドクラムを有するブレッドクラムリストを図示している。図４Ｂの例示的なブレッドクラムリスト１５０では、階層データセットの各ノードが選択されると、該各ノードは、階層データセットのルートノードから選択ノード１５２への経路内の各位置を表すブレッドクラムを備えるブレッドクラムリスト１５４に、関連付けられる。さらに、このテーブル１５０で提示されるブレッドクラムリスト１５４は、有利には、ノードの階層的なスコープ化を階層データセット１２０内に組み込んでいる。ノードＣ、Ｄ、およびＥは階層スコープを共有しているので、これらのノードを参照するブレッドクラムは、集約されてスコープ化されたブレッドクラム１５６を生成する。したがって、ノードＤのブレッドクラムリストは、ノードＣとＤの両方を備えるスコープ化されたブレッドクラム１５６を特徴とし、ノードＥのブレッドクラムリストは、ノードＣとＥの両方を含むスコープ化されたブレッドクラム１５８を特徴とする。図４Ａの議論で述べたように、あるスコープを有するノードは、異なるスコープの子ノードまたはスコープを有さない子ノードを含むことができる。例えば、図４Ａの例示的な階層データセット１２０では、ノードＩ１３８は、スコープをノードＦ１３２と共有するノードＨ１３６のスコープ化されていない子ノードであり、したがって、この階層データセットに関連付けられたブレッドクラムリスト１５０においてノードＦとＨは、１つのスコープ化されたブレッドクラム１６０に集約されており、一方ノードＩは、該ブレッドクラムリストにおいてスコープ化されていないブレッドクラム１６２として提示される。図４Ｂに図示されるスコープ化されたブレッドクラムリスト１５０と、図１Ｃに図示されるスコープ化されていないブレッドクラムリスト４０との比較により、スコープ化されていないブレッドクラムリストに対して、スコープ化されたブレッドクラムリストは相対的に短縮されていることが示される。
【００２９】
スコープ化された階層データセットのコンテキストでは、補足ブレッドクラムの包含は、ブレッドクラムによって表されるノードのスコープを考慮すると、階層データセット内のユーザのナビゲーションをさらに容易にすることができる。図４Ｃは、図１Ａの例示的なスコープ化されていない階層データセットを介した図３Ｂのナビゲーション履歴と同じ例示的なナビゲーション履歴を考慮した、図４Ａの例示的なスコープ化された階層データセットの様々なノードに対する例示的なブレッドクラムリストの別のテーブル１５０を示す。図４Ｃに示される実装形態は、以前に訪問されたノードであって、ルートノードから選択ノードへのブレッドクラム経路の一部ではなく、かつ階層スコープを選択ノードと共有しているノードを含む、好適な位置の補足ブレッドクラムを備えるブレッドクラムリストを表示する。例えば、４回目のナビゲーションでは、ノードＥは選択ノードＣ１６４より下位にあるので、該ノードＥは、好適な位置を表す補足ブレッドクラム１６６として含まれる。しかし、ノードＦへの５回目のナビゲーションでは、以前に訪問されたノードＣおよび以前に訪問されたノードＥの両方とも、選択ノードＦ１６８の下位にはないので、該ノードＣおよび該ノードＥの両方とも補足ブレッドクラムとして含まれない。さらに、階層スコープを共有する類似のタイプのブレッドクラムは、１つのスコープ化されたブレッドクラムに集約される。例えば、８回目のナビゲーションでは、（各ノードがノードＡから選択ノードＨへの経路内にある）ノードＦおよびＨは、階層スコープを共有し、したがって１つのスコープ化されたブレッドクラム１７２に集約される。しかしながら、ノードＩのブレッドクラム１７４は補足ブレッドクラムであるので、該ノードＩは、ノードＦおよびＨを表すブレッドクラム１７２とは集約されない。ある実施形態では、補足ブレッドクラムを、同じ階層スコープの他の補足ブレッドクラムと集約するが、ルートノードから選択ノードへの経路を含むブレッドクラムとは集約しないように（階層スコープを共有するか否かに関わらず）、構成することができる。例えば、ノードＨおよびＩは、図４Ａではスコープを共有するようには示されていないが、説明のために９回目のナビゲーションでは、このナビゲーションでは補足ブレッドクラムであるノードＨおよびＩが、階層スコープを共有しているかのようにスコープ化されたブレッドクラム１７６に集約されている。
【００３０】
図４Ｄは、図４Ａの例示的なスコープ化された階層データセットの様々なノード１５２に対する例示的なブレッドクラムリスト１５４の別のテーブル１５０を示し、ここでは、好適な位置（例えば、階層データセットのユーザが最も頻繁に訪れるノード）が補足ブレッドクラムとして含まれているが、これは該好適な位置が選択ノード１５２の階層スコープを共有するときのみである。図３Ｃと同様に、ノードＥおよびＪを、図４Ａの例示的な階層データセット１２０内の頻繁に訪問される位置（frequently visited location）と見なす。さらに、ノードＥはまた、ノードＢ、Ｃ、およびＤと同じ階層スコープを共有し、そしてノードＪは、ノードＦ、Ｇ、およびＨと同じ階層スコープを共有する。したがって、図４Ｄのナビゲーション履歴において、ノードＥは、選択ノード１５２がノードＢ、Ｃ、またはＤであるとき（２回目、４回目、および１０回目のナビゲーションのように）、補足ブレッドクラム１７８としてブレッドクラムリストに追加される。同様に、ノードＪは、選択ノード１５２がノードＦ、Ｇ、またはＨであるとき（５回目、６回目、８回目、および９回目のナビゲーションのように）、補足ブレッドクラム１８０としてブレッドクラムリストに追加される。このように、ブレッドクラムリスト１５４は、階層データセットのユーザ間で好適に関心が示される階層スコープの部分へのユーザのナビゲーションを容易にすることができる。
【００３１】
本明細書で述べたように、ブレッドクラムリストは、ユーザに対して表示される。ブレッドクラムリストの表示は、多数の方法で行なわれ、いくつかの利点が提示される多数の態様によって異なるものとすることができる。図５Ａ〜５Ｄは、ブレッドクラムリストを表示する幾つかの係る可変な態様を示す。一例として、図５Ａに図示されるように、ブレッドクラムリスト１９０には、特にルートノードから選択ノードへの経路を表すブレッドクラム１９２と比較すると特徴的な視覚スタイルで表示された、補足ブレッドクラム１９４が提示されている。図５Ａでは、補足ブレッドクラム１９４は、ブレッドクラムリスト１９０において該補足ブレッドクラム１９４を他のブレッドクラム１９２と区別するシェーディングスタイルで表示される。補足ブレッドクラムに対する特徴的な視覚スタイルには、異なるサイズ、形状（shape）、フォント、フォント・スタイル、色など、またはそれらの任意の組合せが含まれる。変更することが可能な表示の別の態様は、ブレッドクラムリストへの補足ブレッドクラムの追加に関連する。以前の例（図３Ａ〜３Ｂ、図３Ｄ〜３Ｅ、および図４Ｂ〜４Ｄ）では、補足ブレッドクラムはブレッドクラムリストに付加されている。しかしながら、ブレッドクラムリストの先頭への追加（プリペンｄ）、補足ブレッドクラムリストの他のブレッドクラムとのインタリーブなど、他の方法で補足ブレッドクラムを追加することも可能である。図５Ｂに図示される例示的なブレッドクラムリスト１９０は、補足ブレッドクラム１９４を他のブレッドクラム１９２の下に表示することによって、該補足ブレッドクラム１９４がブレッドクラムリストに追加されているように示している。図５Ｃは、補足ブレッドクラムの表示の第３の態様を示しており、好適な位置（例えば、頻繁に訪問される位置）の補足ブレッドクラムが、簡略化された補足ブレッドクラムインジケータ１９６内に表示されており、該簡略化された補足ブレッドクラムインジケータ１９６を使用して補足ブレッドクラムをアクティブにすることができるが、該補足ブレッドクラムの詳細は省略されている。例えば、簡略化された補足ブレッドクラムインジケータは、頻繁に訪問される位置（例えば、階層データセットのユーザがしばしば訪れることを望む選択ノードの下位にあるノード）を表すことができ、該簡略化された補足ブレッドクラムインジケータを使用して、ブレッドクラムリスト内の使用空間を削減しつつ、表されるノードの識別と利用可能性を示すことができる。図５Ｄは、補足ブレッドクラムの表示の第４の態様を示し、該態様は、少なくとも１つの補足ブレッドクラム１９４の表示を切り替えるように構成される補足ブレッドクラムインジケータ１９８を、ブレッドクラムリスト１９０内に表示することを含む。したがって、ブレッドクラムリスト１９０は、ルートノードから選択ノードへの経路を表すブレッドクラム１９２を含むことができ、および好適な位置を表す１つまたは複数の補足ブレッドクラム１９４を含むこともできるが、ブレッドクラムリスト１９０を表示する際、最初は補足ブレッドクラム１９４を、該補足ブレッドクラム１９４の包含を示すために含まれている補足ブレッドクラムインジケータ１９���で隠すことができる。補足ブレッドクラムインジケータ１９８のユーザによるアクティブ化（例えば、マウスなどのポインティング・デバイスで補足ブレッドクラムインジケータをクリックすること）により、補足ブレッドクラム１９４の表示と隠蔽との間を切り替えることができる。本明細書で提示した技法に従って動作し得るブレッドクラムリストの表示に関する多くのこのような態様が、当業者によって考案され変形され得るであろう。
【００３２】
１つまたは複数の補足ブレッドクラムをブレッドクラムリスト内に含める技法を、階層データセット内のナビゲーションを容易にするためのシステムなどのシステムとして実装することもできる。この性質のシステムは、階層データセットを表すように構成されるメモリと、階層データセット内のルートノードから選択ノードへの経路を表すブレッドクラムリストを生成するように構成され、およびブレッドクラムリストに階層データセット内の好適な位置を表す少なくとも１つの補足ブレッドクラムを追加するように構成されるブレッドクラム化コンポーネント（breadcrumbing component）と、ブレッドクラムリストを表示するように構成される表示コンポーネントとを備ることができる。このようなシステムによって生成されるブレッドクラムリストは、選択ノードの親ノードだけでなく、階層データセット内の他の好適な位置（例えば、以前に訪問された位置および／または頻繁に訪問される位置）へのナビゲーション・アクセス（navigation access）を提供することによって、階層データセットにおけるユーザのナビゲーションを容易にすることができる。上述の補足ブレッドクラムに対する好適な位置を選択するための代替を、例えばブレッドクラム化コンポーネントによって実装することができる。
【００３３】
これらの概念を具現化するシステムを多数の変形で組み立てることができる。一例として、ブレッドクラムリストは、これらの技法に従ってブレッドクラムリストを生成するように構成される、ＦＰＧＡ（field-programmable gate array）などのハードウェアを備えることができる。代替または追加として、ブレッドクラム化コンポーネントは、デスクトップ・プロセッサなどの汎用のハードウェアで実行するためにエンコードされ、好適な位置を表す１つまたは複数の補足ブレッドクラムを有するブレッドクラムリストを生成するように構成される、ソフトウェア命令を備えることができる。同様に、表示コンポーネントは、（例えば）ＬＣＤモニタ、ＣＲＴモニタ、プロジェクタ、またはプリンタなどの視覚表示装置を備えることができる。表示コンポーネントは、例えば、表示アダプタ、ビデオメモリバッファ、ソフトウェアドライバ、および／またはビジュアルプログラミング・インタフェースなどの、ブレッドクラム化コンポーネントと視覚表示装置との間で通信するためのインタフェースを備えることもできる。また、表示コンポーネントを、上で論じた特定の実施形態のいずれかまたは一部を組み込むように構成することもできる。一例として、表示コンポーネントを、補足ブレッドクラムの表示を切り替えるように構成された補足ブレッドクラムインジケータを表示するように構成することができる。別の例として、例えば、様々なタイプの補足ブレッドクラムを他の補足ブレッドクラムから区別し、およびルートノードへの経路を含むブレッドクラムから区別する、特徴的な色および／またはシェーディングなどの特徴的な視覚スタイルで補足ブレッドクラムを表示するように、表示コンポーネントを構成することができる。本明細書で提示した技法に従って動作し得るように構成される多くのそのようなシステムが、当業者によって考案され得るであろう。
【００３４】
本明細書で説明した概念に従って実装されるシステムの他の実施形態は、追加のコンポーネントを含むことができる。そのような実施形態のあるセットでは、システムは、キーボードまたはマウスなどの、ブレッドクラムリストに関連するユーザ入力を受け入れるように構成される入力コンポーネントを備えることができる。一例として、入力コンポーネントを、ブレッドクラムのアクティブ化を表すユーザ入力を受け入れるように構成し、表示コンポーネントを、該アクティブのブレッドクラム内のノードをユーザインタフェースコンポーネント（例えば、アクティブ化されたブレッドクラム内のノードを表示するように構成されたビューワ（viewer））で提示するように構成することができる。本明細書で提示される技法に従って動作し得るように構成されたシステムのコンテキストで、多くそのような入力コンポーネントが当業者によって考案され得るであろう。
【００３５】
図６は、補足ブレッドクラムを特徴とするブレッドクラムリストを生成するための例示的なシステムを示し、このシステム２００には、本明細書で説明される態様のいくつかが組み込まれている。この例示的な図においてシステム２００は、階層データセットのデータ表現（data representation）２０６を含んでいるモリ２０４と動作可能に結合された、ブレッドクラム化コンポーネント２０２を備える。システム２００は、階層データセット２０６内の選択ノード（図６では、階層データセットのツリービューとして表示されている）に対して、ブレッドクラム化コンポーネント２０２によって生成された補足ブレッドクラムを含む、ブレッドクラムリスト２１２を表示するように構成された表示コンポーネント２０８も備える。システム２００はまた、ブレッドクラムリスト２１２に関連してユーザ入力を受け入れるように構成された２つの入力装置、すなわちキーボード２１４とマウス２１６を備える。これらのコンポーネントはともに、階層データセット２０６に対する１つまたは複数の補足ブレッドクラムを有するブレッドクラムリスト２１２を生成および表示するためのシステム２００を構成し、階層データセット２０６とのユーザの対話（例えば、階層データセット２０６のノードのナビゲーションを容易にすること）を可能にする。この例示的なシステム２００では、メモリ２０４は、ノードＢ、Ｃ、Ｄ、およびＥに対する階層スコープと、ノードＦ、Ｇ、Ｈ、およびＪに対する別の階層スコープとを有するスコープ化された階層データセット２０６のデータ表現を含む。この例示的なシステムにおいて表示コンポーネント２０８は、ノードＨが選択されているツリービュー２１０と、ルートノードＡから選択ノードＨへの経路（および、ノードＦとノードＨによって共有される階層スコープを反映している、スコープ化されたブレッドクラム）を表すブレッドクラムリスト２１２とを図示している。このブレッドクラムリスト２１２はまた、選択ノードＨの階層を共有するノードＪを、補足ブレッドクラムとして表している。この補足ブレッドクラムが表す位置（ノードＪ）は以前に訪問されているので、またはこの補足ブレッドクラムがこの例示的なスコープ化された階層データセット２０６内で頻繁に訪問されるノードを表すので、この補足ブレッドクラムを含むことができる。
【００３６】
補足ブレッドクラムをブレッドクラムリスト内に含む技法を統合開発環境（integrated development environment）で利用することもできる。このような環境内では、グラフィカルユーザインタフェース（ＧＵＩ：graphical user interface）アプリケーションがしばしば作成され、ボタン、テキストボックス、およびリストボックスなどの様々なグラフィカルコントロールを用いて豊富なユーザインタフェースを設計し、グラフィカルユーザインタフェースを備える上記のようなコントロールを介してユーザと対話するソフトウェアを書くための、高度なツールのセットを提供する。このようなアプリケーションの１つの共通の特徴は、グラフィカルユーザインタフェース・アプリケーション（「フォーム（form）」）を階層データセットとして表現することであり、この場合、フォームを表すルートノードは様々なグラフィカルコントロールを含み、当該グラフィカルコントロールは他のコントロール（例えば、ボタンのセットを含むパネル）および多数の構成可能なプロパティを含むことができる。しかしながら、近年では、ユーザコントロールの取り合わせは高度かつ複雑に開発されてきた。現代の統合開発環境はプログラマに、ボタンおよびリストボックスなどのグラフィカルユーザインタフェース・アプリケーション、ならびにメディアプレイヤ、グラフィカル・チャート・コンポーネント、複雑なデータベース対話コンポーネント、および予めパッケージ化されたニューラル・ネットワークなどの高まりつつあるより複雑なコンポーネントの取り合わせを構築するための多数の単純なツールを提供している。
【００３７】
グラフィカルユーザインタフェース・アプリケーションを備えることができるコンポーネントの多様性と複雑性が増すにつれて、プログラマに対して上記コントロールの取り合わせおよび詳細を記述する情報の階層データセットのサイズも増大してきた。プログラマが、アプリケーションを設計しながら広大な階層データセットをナビゲートするのは困難な可能性がある。ブレッドクラムリストを使用したとしても、ナビゲーションを容易にすることはできないが、これは、コントロールとプロパティが階層データセット内の数レベルの深さに置かれることがあり、したがってオブジェクトを記述するには、扱いにくいブレッドクラムリストが必要となるからである（例えば、６つの入れ子ノードの深さを有し、したがって６つのスコープ化されていないブレッドクラムを有する「Application Form : Controls : Media Player : Media Control Panel : Progress Slider : Scrollbar」というブレッドクラムリストが、メディアプレイヤ・アプリケーション内のプログレッシブ・スクロールバーを記述する）。階層スコープをグラフィカルユーザインタフェースコンポーネントの階層データセットに適用することが可能であり、スコープ化されたブレッドクラムリストを生成して表示することによって、選択ノードを記述することができる（例えば、「Application Form, Controls : Media Player, Media Control Panel : Progress Slider, Scrollbar」は、３つのスコープ化されたブレッドクラムのみを有する）。ナビゲーションは、ユーザインタフェースの要素を表すスコープ化された階層データセットのノードについて、ブレッドクラムリスト内に補足ブレッドクラムを含むことによって容易にすることもできる。
【００３８】
したがって、本明細書で提示される技法を、統合開発環境内の少なくとも１つのユーザインタフェースコンポーネントを表すスコープ化された階層データセット内のナビゲーションを容易にする方法として具現化することができる。本方法は、スコープ化された階層データセット内のルートノードから選択ノードへの経路を表すブレッドクラムリストを生成することと、該スコープ化された階層データセット内の好適な位置を表す少なくとも１つの補足ブレッドクラムをブレッドクラムリストに追加することと、ブレッドクラムリストを統合開発環境内で表示することとを含む。
【００３９】
この階層データセットでは、階層データセット（例えば、グラフィカルユーザインタフェース・アプリケーションを備えるコンポーネントおよびプロパティを表すデータセット）内のオブジェクトのいくつかの概念的に関連するセットを関連付けてグループ化する、階層スコープを適用することができる。一例として、「コントロールテンプレート」要素、例えばコントロールを含む要素を関連付けてグループ化するための階層スコープを、適用することができる（例えば、メディアプレイヤ・コンポーネントを、ストップボタン、プレイボタン、プログレスバーなどを指定するコントロールテンプレートによって定義することができる）。別の例として、例えば、１つまたは複数のグラフィカル・コンポーネントに適用される視覚スタイル（例えば、グラフィカル・ユーザコントロールに適用されるフォント、フォント・スタイル、背景色、および枠色）を定義するプロパティ集合など、「コントロールスタイル」を含むプロパティを論理的にグループ化するための階層スコープを適用することができる。第３の例として、例えば、グラフィカルユーザインタフェース・アプリケーションおよびそのプロパティ（例えば、そのデフォルトのスタイル）を表すルートノードなど、「ルートシーン（root scene）」要素を論理的にグループ化するための階層スコープを適用することができる。これらの階層スコープを、開発中のグラフィカルユーザインタフェース・アプリケーションの構造を定義する階層データセットに適用することによって、統合開発環境は、スコープ化されたブレッドクラムリストを介したアプリケーションの要素に対するプログラマのナビゲーションを容易にすることができる。
【００４０】
図７は、グラフィカルユーザインタフェース・アプリケーションを定義する複雑な要素をナビゲートするために生成されたスコープ化されたブレッドクラムリストに、補足ブレッドクラムを追加することを特徴とする例示的な統合開発環境２２０を示す。メディアプレイヤ・アプリケーションを作成するために使用中の例示的な統合開発環境２２０が図示されている。該アプリケーションの要素は、ツリービュー２２２内に表示された階層ノードとして示されており、概念的に関連するノードをグループ化するための様々な階層スコープが図示されている。例えば、階層データセットのルートノードはフォーム、例えば、グラフィカルユーザインタフェース・アプリケーションを備え、かつアプリケーション内のグラフィカル・ユーザコントロールの全てを含んでいるクラスを表す。ルートノードは、ｏｂｊＰｌａｙｅｒ２２４およびｌｓｔＡｌｌＴｒａｃｋｓ２３０などのいくつかのコントロールを含み、該コントロールはそれぞれ、各コントロールをそのコントロール内に組み込まれたサブ・コントロールの一部と概念的に結合する「コントロールテンプレート」スコープを用いて設計される。例えば、「ｏｂｊＰｌａｙｅｒ」２２４（メディアプレイヤ・コンポーネントのインスタンス）は、該メディアプレイヤ・コンポーネントが含む２つのサブ・コントロール、すなわち、現在再生しているトラックを表示するためのリストボックス（listbox）コントロール２２６、およびいくつかのメディア再生コントロール（巻戻し、停止、再生、早送り、取出し）を含むパネル２２８と、階層スコープを共有する。同様に、「ｌｓｔＡｌｌＴｒａｃｋｓ」２３０（リストボックス・コントロールのインスタンス）は、キャプション用の文字列（string）２３２、リスト用のスクロールバー（scrollbar）２３４、およびリストボックス・コントロール用の枠（border）２３６などのその構成コンポーネントの一部と、階層スコープを共有する。前の例と同様に、この例示的な図の階層スコープは、表現的なシェーディング（メディア・プレイヤ・コントロール２２４、２２６、２２８を表す階層スコープ用のストライプのシェーディング、およびリストボックス・コントロール２３０、２３２、２３４、２３６、２３８を表す階層スコープ用の点描のシェーディング）によって表されている。
【００４１】
これらの階層スコープを、グラフィカルユーザインタフェース・アプリケーションの要素を表す階層データセット２２２に含めることによって、図７に図示される例示的な統合開発環境２２０は、ナビゲーションを容易にするスコープ化されたブレッドクラムリストを構築することができる。この例示的な環境では、開発者は、グラフィカルユーザインタフェース・アプリケーションの２つの部分を編集している。すなわち、フォーム（ｆｒｍＭｙＭｅｄｉａＰｌａｙｅｒと名づけられている）と、現在のトラックのリストを含むリストボックス・コントロールの枠（ｂｄｒＬｉｓｔｂｏｘという名前を有する枠の部分、およびｌｓｔＡｌｌＴｒａｃｋｓという名前を有するリストボックス・コントロール）とを編集している。フォーム・エディタ２４０は、該エディタ・ウインドウ２４０の下部に、フォーム（例えば、階層データセットのルートノード）を表すブレッドクラム２４４を含む第１のブレッドクラムリスト２４２を表示している。このブレッドクラムリストはまた、２つの補足ブレッドクラムを含む。すなわち、フォームのタイトルを含む、ｓｔｒＴｉｔｌｅを表す第１の補足ブレッドクラム２４６と、「全てのトラック」リストボックス・コントロールのキャプションを含む、ｌｓｔＡｌｌＴｒａｃｋｓ:ｓｔｒＣａｐｔｉｏｎを表す第２の補足ブレッドクラム２４８とを含む。これらの補足ブレッドクラム２４６、２４８は、コントロール・セット内の以前に訪問または編集されたプロパティ、コントロール・セット内の頻繁に訪問または編集されるプロパティ、これらのコントロールの共通的に編集される機能などを含む、好適な位置への参照として含まれている。リストボックス・コントロールの枠のプロパティもまた、枠プロパティ・エディタ２５０内で編集されており、第２のブレッドクラムリスト２５２が、枠スタイル（border style）プロパティ用のエディタ・ウインドウの下部に表示される。ルートノード（例えば、フォーム）から選択ノード（例えば、枠プロパティ・オブジェクト）への経路を含むブレッドクラム２５４、２５６に加えて、この第２のブレッドクラムリスト２５２は、（例えば、リストボックス・コントロールに対して）階層スコープ内の以前に訪問された位置としての好適な位置、リストボックス・コントロールに対して共通的に編集されるプロパティなどとして識別される、リストボックス・コントロールのキャプションを表す補足ブレッドクラム２５８も含むことができる。この説明から、ブレッドクラムリスト内への補足ブレッドクラムの追加によって、現在の選択ノードに論理的に関連付けられた好適な位置への複雑な階層内のナビゲーションが容易になることは明らかであろう。
【００４２】
本明細書で論じた技法を、本明細書で論じたようにブレッドクラムリストを生成するよう構成されたプロセッサ実行可能命令を含むコンピュータ読取可能媒体として具現化することもできる。これらの方法で考案されうる例示的なコンピュータ読取可能媒体が図８に図示されており、図８において実装形態２６０は、コンピュータ読取可能データ２６４がエンコードされるコンピュータ読取可能媒体２６２（例えば、ＣＤ−Ｒ、ＤＶＤ−Ｒ、または円盤状のハード・ディスク・ドライブ）を備えている。このコンピュータ読取可能データ２６４は、本明細書で説明される原理に従って動作するように構成されたプロセッサ実行可能命令２６６のセットを含む。このような一実施形態では、プロセッサ実行可能命令２６６を、図２の流れ図に図示される方法のように、ブレッドクラムリストを生成し、少なくとも１つの補足ブレッドクラムを追加し、ブレッドクラムリストを表示することによって、階層データセット内のナビゲーションを容易にする方法を実行するように構成することができる。別のこのような実施形態では、プロセッサ実行可能命令２６６を、図６のコンポーネント図に図示されるシステムのように、階層データセット内のナビゲーションを容易にするためのシステムを実装するように構成することができる。さらに別のこのような実施形態では、プロセッサ実行可能命令２６６を、図７に図示される統合開発環境などの統合開発環境内において、少なくとも１つのユーザインタフェースコンポーネントを表す階層データセット内のナビゲーションを容易にする方法２６８を実装するように構成することができる。本明細書で提示される技法に従って動作するように構成される多くのこのようなコンピュータ読取可能媒体が、当業者によって考案されうるであろう。
【００４３】
本主題を構造的特徴および／または方法論的動作に特有の言葉で説明してきたが、添付の特許請求の範囲で定義される主題は、必ずしも上述の特定の特徴または動作に限定されないことを理解されたい。むしろ、上述の特定の特徴および動作は、特許請求の範囲を実装する例示形態として開示されている。
【００４４】
本出願で使用されるとき、用語「コンポーネント」、「モジュール」、「システム」、「インタフェース」などは、通常、コンピュータに関連するエンティティ、すなわち、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかを指すように意図されている。例えば、コンポーネントは、プロセッサ上で稼動するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータとすることができるが、これらには限定されない。例として、コントローラ上で稼動するアプリケーションおよびコントローラの両方がコンポーネントとなりうる。１つまたは複数のコンポーネントが、プロセスおよび／または実行スレッド内に存在することがあり、あるコンポーネントを１つのコンピュータ上に局所化すること、および／または２つまたはそれ以上のコンピュータ間に分散させることができる。
【００４５】
さらに、特許請求される主題を、方法として、装置として、あるいは開示された主題を実装するようにコンピュータを制御するソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組合せを生成するための標準的なプログラミングおよび／または製造技術を使用して製品として実装することができる。本明細書で使用されるとき「製品（article of manufacture）」という用語は、任意のコンピュータ読取可能装置、キャリア、または媒体からアクセス可能なコンピュータ・プログラムを網羅するように意図されている。例えば、コンピュータ読取可能媒体には、磁気記憶装置（例えば、ハード・ディスク、フロッピ・ディスク、磁気ストライプなど）、光ディスク（例えば、ＣＤ（compact disk）、ＤＶＤ（digital versatile disk）など）、スマート・カード、およびフラッシュメモリデバイス（例えば、カード、スティック、キードライブなど）が含まれるが、これらには限定されない。さらに、搬送波を利用して、電子メールの送受信の際、あるいはインターネットまたはＬＡＮ（local area network）などのネットワークへのアクセスの際に使用されるようなコンピュータ読取可能な電子データを運ぶことができる。当然、本主題の範囲および精神を逸脱せずに、この構成に対して多くの修正が可能であることが当業者には認識されよう。
【００４６】
さらに、「例示的」という単語は、本明細書において、例、事例、または例示としての役割を果たすことを意味するように使用されている。「例示的」として本明細書で説明される任意の態様または設計は、必ずしも他の態様または設計に対して好適または有利であると解釈されるべきではない。むしろ、例示的という単語の使用は、概念を具体的に提示するように意図されている。本出願で使用されるとき「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するように意図されている。すなわち、特に明記しない限り、あるいは文脈から明らかでない限り、「ＸはＡまたはＢを利用する」とは、自然な包括的順列のうちのいずれかを意味するように意図されている。すなわち、ＸがＡを利用する、ＸがＢを利用する、あるいはＸがＡおよびＢの両方を利用するとき、「ＸはＡまたはＢを利用する」は、前述の例のいずれも満たす。さらに、本出願および添付の特許請求の範囲で使用されるとき、冠詞「ａ」および「ａｎ」は通常、単数形を指すと特に明記しない限り、またはそれが文脈から明らかでない限り、「１つまたは複数」を意味するように解釈されることがある。
【００４７】
また、本開示は１つまたは複数の実装形態に関連して図示され、説明されているが、当業者は本明細書および添付の図面を読んで理解すると均等の変形および修正を行うことが可能であろう。本開示は、全てのそのような修正形態および変形形態を含み、特許請求の範囲の範囲によってのみ限定される。特に、上述のコンポーネント（例えば、要素、リソースなど）によって実行される様々な機能に関連して、そのようなコンポーネントを説明するために使用される用語は、特に明記しない限り、本明細書で説明した本開示の例示的な実装形態の機能を実行する開示された構造と構造的に等価でないとしても、説明したコンポーネントの特有の機能を実行する（例えば、機能的に等価な）任意のコンポーネントに対応するように意図されている。さらに、本開示の特定の特徴が、いくつかの実装形態のうち１つのみに関連して開示されていることがあるが、そのような特徴を、任意の所与の応用または特定の応用のために望ましく有利なように、他の実装形態の１つまたは複数の他の特徴と組み合わせることもできる。さらに、用語「含む」、「有している」、「有する」、またはその変形を発明の詳細な説明または特許請求の範囲のいずれかで使用する限りにおいて、そのような用語は、用語「備える」と同様に包括的であることが意図されている。
【図１Ａ】
0005405469.tif 000002
【図１Ｂ】
0005405469.tif 000003
【図１Ｃ】
0005405469.tif 000004
【図２】
0005405469.tif 000005
【図３Ａ】
0005405469.tif 000006
【図３Ｂ】
0005405469.tif 000007
【図３Ｃ】
0005405469.tif 000008
【図３Ｄ】
0005405469.tif 000009
【図３Ｅ】
0005405469.tif 000010
【図４Ａ】
0005405469.tif 000011
【図４Ｂ】
0005405469.tif 000012
【図４Ｃ】
0005405469.tif 000013
【図４Ｄ】
0005405469.tif 000014
【図５Ａ】
0005405469.tif 000015
【図５Ｂ】
0005405469.tif 000016
【図５Ｃ】
0005405469.tif 000017
【図５Ｄ】
0005405469.tif 000018
【図６】
0005405469.tif 000019
【図７】
0005405469.tif 000020
【図８】
0005405469.tif 000021