(57)【要約】【課題】階層型データベースにおけるクラス間の包含関係を適切かつ効果的に表示することのできる階層構造表示装置および方法を提供すること【解決手段】階層構造をなすクラスが定義された階層型データベースの階層構造表示を表示するにあたり、階層構造をなすいずれか一のクラスを識別する第１の表示領域の少なくとも一部が、該クラスから派生した子クラスを識別する第２の表示領域の全てを含むように前記第１及び第２の表示領域を表示する。【選択図】    図１
2004178015.tif 000002
【特許請求の範囲】
【請求項１】
階層構造をなすクラスが定義された階層型データベースの階層構造表示装置において、
前記階層構造をなすいずれか一のクラスを識別する第１の表示領域の少なくとも一部が、該クラスから派生した子クラスを識別する第２の表示領域の全てを含むように前記第１及び第２の表示領域を表示する階層構造表示手段を具備することを特徴とする階層構造表示装置。
【請求項２】
選択された前記一のクラス及び子クラスのいずれかに関連するクラス情報を表示するクラス情報表示手段を具備することを特徴とする請求項１に記載の階層構造表示装置。
【請求項３】
選択された前記一のクラス及び子クラスのいずれかが有するプロパティのリストを前記クラス情報と関連付けて表示するプロパティリスト表示手段を具備することを特徴とする請求項２に記載の階層構造表示装置。
【請求項４】
前記プロパティリストから選択されたプロパティに関連するプロパティ情報を表示するプロパティ情報表示手段を具備することを特徴とする請求項３に記載の階層構造表示装置。
【請求項５】
継承元のクラスと、継承先のクラスにおける前記プロパティリスト中のプロパティとを同一色で対応付けて表示する手段を具備することを特徴とする請求項３に記載の階層構造表示装置。
【請求項６】
前記子クラスを識別する第２の表示領域の表示有無を前記一のクラスに対して与えられた開閉操作に応じて切り替える手段を具備することを特徴とする請求項１乃至５のいずれかに記載の階層構造表示装置。
【請求項７】
インスタンスを有するクラスのみを展開表示する手段を具備することを特徴とする請求項１乃至６のいずれかに記載の階層構造表示装置。
【請求項８】
前記階層構造内において選択された一のクラスの直系クラスのみを表示する手段を具備することを特徴とする請求項１乃至７のいずれかに記載の階層構造表示装置。
【請求項９】
前記いずれか一のクラスに関連付けて、前記子クラスのいずれか一つがインスタンスを有するか否かを識別するマークを表示する手段を具備することを特徴とする請求項１乃至８のいずれかに記載の階層構造表示装置。
【請求項１０】
前記階層構造内のいずれか一のクラスを検索開始ポイントに設定する手段と、
前記検索ポイントを設定するクラスをインスタンスを有するクラスに限定する手段と
を具備することを特徴とする請求項１乃至９のいずれかに記載の階層構造表示装置。
【請求項１１】
前記検索ポイントを設定するクラスを、インスタンスを有する少なくとも２つ以上の子クラスを有するクラスに限定することを特徴とする請求項１０に記載の階層構造表示装置。
【請求項１２】
前記階層型データベースは、複数の親クラスからのプロパティの多重継承を許容することを特徴とする請求項１乃至１１のいずれかに記載の階層構造表示装置。
【請求項１３】
前記多重継承に係るプロパティを選択し、該プロパティの継承元に相当する前記親クラスのいずれかを参照する手段を具備することを特徴とする請求項１２に記載の階層構造表示装置。
【請求項１４】
第１のルートを有する第１の階層構造と、第２のルートを有する第２の階層構造とに共通するユニバーサル・ルートを設定する手段を具備することを特徴とする請求項１乃至１３のいずれかに記載の階層構造表示装置。
【請求項１５】
階層構造をなすクラスが定義された階層型データベースの階層構造表示方法において、
前記階層構造をなすいずれか一のクラスを識別する第１の表示領域の少なくとも一部が、該クラスから派生した子クラスを識別する第２の表示領域の全てを含むように前記第１及び第２の表示領域を表示する階層構造表示ステップと、
前記一のクラス及び子クラスのいずれかの選択を受け付けるステップと、
前記選択に連動し、該選択された前記一のクラス及び子クラスのいずれかに関連するクラス情報を表示するクラス情報表示ステップと、
前記選択に連動し、該選択された前記一のクラス及び子クラスのいずれかが有するプロパティのリストを前記クラス情報と関連付けて表示するプロパティリスト表示ステップと
を具備することを特徴とする階層構造表示方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、階層型データベースに好適な階層構造表示装置および方法に関する。
【０００２】
【従来の技術】
今日、コンピュータソフトウェアの技術分野は、よりユーザフレンドリな機能を提供すべく日々進歩を遂げている。例えば、ファイルシステムの利用にあたりユーザが所望のディレクトリに移動して所望のファイルを開くような操作（オペレーション）を視覚的かつ直感的に行えるように、グラフィック・ユーザ・インタフェース（ＧＵＩ）は線やアイコン等を組み合わせてディレクトリ（フォルダ）構造をツリー状に表示し、ユーザに提示することができる。このようなＧＵＩ機能はマイクロソフト社のオペレーティング・システム（ＯＳ）Ｗｉｎｄｏｗｓ（商標）や、その他にもＵＮＩＸ（商標）やＬＩＮＵＸ（商標）などの汎用のオペレーティングシステムにおいて広く採用されている。
【０００３】
ディレクトリ構造ツリーの各ノード（ディレクトリ）間について、上位のノードに含まれる情報（ファイル等）と下位のノードに含まれる情報との間に、包含あるいは部分集合といった関係はない。すなわち、ディレクトリ構造ツリーを形成する、ルート・ノードから始まる各ノードは、ファイルなどの情報を納めるコンテナの相互接続関係を表しているにすぎない。
【０００４】
一方、オブジェクト指向データベース（ＯＯＤＢ）やオブジェクト・リレーショナルデータベース（ＯＲＤＢ）を代表とするデータベースは、階層構造を有し、該階層構造において下位分類が上位分類の属性を継承する仕組みを有する。このようなデータベースでは、継承によって下位の分類では属性が累増するという特徴がある。下位分類が上位分類の属性を継承することは、「インヘリタンス」とも呼ばれ、このような技術は多くの文献に記載されている（例えば下記非特許文献１参照。）。
【０００５】
なお、オブジェクト指向データベース（ＯＯＤＢ）関連の技術分野では、階層中の分類を「クラス」と呼ぶことが多い。本明細書では、「分類」と「クラス」とをほぼ同じ意味を有する用語として用いる。また、オブジェクト・リレーショナル型データベース（ＯＲＤＢ）においては、継承を許したテーブルがクラスに相当する。上下関係にあるテーブル間においては、上位のテーブルから下位のテーブルへ属性が継承される。ここでの属性は、ＯＲＤＢにおいては上位テーブルを構成するコラムのヘッダー情報に相当し、これが下位テーブルへ継承される。
【０００６】
本明細書においては、オブジェクト指向データベース（ＯＯＤＢ）とオブジェクト・リレーショナルデータベース（ＯＲＤＢ）の両者を含めて「階層型データベース」と称する。また、各階層のクラスに属する同じ属性種を持つデータを「インスタンス」と呼び、その集合をデータの「ポピュレーション」と呼ぶ。
【０００７】
このように、階層型データベースの階層構造は、クラス間の包含関係（継承関係）があることから、上述のディレクトリ構造ツリーとはその性質が明らかに異なるものである。
【０００８】
階層型データベースを製品カタログデータベースに応用したサービスが既に幾つか提供されている（下記非特許文献２，３を参照。）。
【０００９】
【非特許文献１】
Ｏｂｊｅｃｔ−Ｏｒｉｅｎｔｅｄ  Ｃｏｎｃｅｐｔｓ，  Ｄａｔａｂａｓｅｓ，  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ，  Ｅｄｉｔｅｄ  ｂｙ  Ｗｏｎ  Ｋｉｍ，  １９８９，  ＡＣＭ  Ｐｒｅｓｓ
【００１０】
【非特許文献２】
株式会社ポータル、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｐｏｒｔａｌｃｏｒｐ．ｎｅｔ＞
【００１１】
【非特許文献３】
ｅ−ｉｎｇＢｉｚ．ｃｏｍ、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｅ−ｉｎｇｂｉｚ．ｃｏｍ／／ＣＡＴＡＬＯＧ２／ｓｅｒｖｌｅｔ／ＣａｔａｌｏｇＳｅａｒｃｈ？Ｌａｎｇ＝ｊａ＞
【００１２】
【発明が解決しようとする課題】
階層構造表示に関し、従来のディレクトリ構造ツリーにおける表示、例えばマイクロソフト社（商標）のエクスプローラでは、
・下位のフォルダ（ディレクトリ）を上位のフォルダへの開閉要求に応じて展開表示する
・段下げにより、そのフォルダよりが上位のフォルダに対して下位のフォルダであることを表す
・階層のレベル（深さ）ごとに段下げを揃えることにより、レベルが同じフォルダであることが容易に分かるようにする
といったことが行える。
【００１３】
しかしながら、これらはあくまでディレクトリ（ノード）の接続関係を辿ることができるようにするものでしかない。
【００１４】
したがって、このような従来の階層構造表示は、上位のクラスから下位のクラスへプロパティ（属性）が継承されるような階層型データベースには適さない。
【００１５】
階層型データベースにおける階層構造表示には、個々のクラスが、その所有するプロパティによって特徴付けられる概念を表す場合の、クラス間の包含関係を表現できることが求められる。また、階層型データベースの階層構造がクラスによって構成される場合、該クラスのインスタンスの存在有無を表示できることが好ましい。
【００１６】
本発明はかかる事情を考慮してなされたものであり、階層型データベースにおけるクラス間の包含関係を適切かつ効果的に表示することのできる階層構造表示装置および方法を提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明に係る階層構造表示装置は、階層構造をなすクラスが定義された階層型データベースの階層構造表示装置において、前記階層構造をなすいずれか一のクラスを識別する第１の表示領域の少なくとも一部が、該クラスから派生した子クラスを識別する第２の表示領域の全てを含むように前記第１及び第２の表示領域を表示する階層構造表示手段を具備することを特徴とする。
【００１８】
本発明に係る階層構造表示方法は、階層構造をなすクラスが定義された階層型データベースの階層構造表示方法において、前記階層構造をなすいずれか一のクラスを識別する第１の表示領域の少なくとも一部が、該クラスから派生した子クラスを識別する第２の表示領域の全てを含むように前記第１及び第２の表示領域を表示する階層構造表示ステップと、前記一のクラス及び子クラスのいずれかの選択を受け付けるステップと、前記選択に連動し、該選択された前記一のクラス及び子クラスのいずれかに関連するクラス情報を表示するクラス情報表示ステップと、前記選択に連動し、該選択された前記一のクラス及び子クラスのいずれかが有するプロパティのリストを前記クラス情報と関連付けて表示するプロパティリスト表示ステップとを具備することを特徴とする。
【００１９】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【００２０】
図１は本発明の一実施形態に係る階層構造表示システムの概略構成を示すブロック図である。本システムは、階層型データベースの階層構造表示に基づいて、ユーザが検索やデータベース管理等を、その規模や詳細度等に依らず適切かつ容易に行えるようにするものである。本発明に係る階層構造表示装置は、ＣＰＵ５、メモリ６、二次記憶装置７、ディスプレイ８等の基本ハードウェアを備えた汎用のコンピュータを用い、同コンピュータ上で動作するアプリケーションプログラム１０として実現することができる。この場合、同コンピュータにはアプリケーションプログラム１０の実行環境を提供するとともに、ハードウェアを制御するためのオペレーティングシステムも導入されている。階層構造表示装置のアプリケーションプログラム１０は、オペレーティングシステム上に構築され、ディスプレイ８や図示しないマウス、キーボード等と協働するグラフィカルユーザインターフェース（ＧＵＩ）を構成する。階層型データベースは、例えば二次記憶装置７に導入されている。
【００２１】
同図に示すように階層表示装置は、階層構造表示部１と、クラス情報表示部２と、プロパティリスト表示部３と、プロパティ情報表示部４とにより構成されている。
【００２２】
ＩＳＯ１３５８４に規定のように、プロパティなどのクラス特性を下位クラスが上位クラスから継承するような階層型データベースにおいては、階層中の単なる上位、下位の関係ではなく、包含関係として階層構造が表現されたほうが、利用者にとってはクラス間の関係がわかりやすい。
【００２３】
そこで、階層構造表示部１は、図２に示すようにクラス間の包含関係を明示的に表示する。具体的には、上位クラスが下位クラスを包含するように矩形等のダイアグラムを用いてクラスを表示する。
【００２４】
図２の表示例によれば、”Ｐｒｏｄｕｃｔ”クラス２０が”Ｖｅｈｉｃｌｅ”クラス２１を包含していることが明示される。この”Ｖｅｈｉｃｌｅ”クラス２１は、”ＡｕｔｏＢｙｃｉｃｌｅ”クラス２２および”ＡｕｔｏＭｏｂｉｌｅ”クラス２３の２つのクラスを含んでいることがわかる。言い替えれば、”ＡｕｔｏＢｙｃｉｃｌｅ”クラス２２および”ＡｕｔｏＭｏｂｉｌｅ”クラス２３の２つのクラスは、”Ｖｅｈｉｃｌｅ”クラス２１に包含されている。さらに、”ＡｕｔｏＭｏｂｉｌｅ”クラス２３は”ＰａｓｓｅｎｇｅｒｓＣａｒ”クラス２４および”Ｔｒｕｃｋ”クラス２５を包含していることもわかる。
【００２５】
このような矩形ダイアグラムを用いた包含関係の表示は、次のように変形することができる。例えば、図２のような包含関係を表すダイアグラムの一部、例えば紙面右側の端部や、紙面下側の端部を切り欠く（省略）表示としてもよい。ユーザはこれらの切り欠き部分を容易に推測できることから、必ずしも包含関係が不明瞭とはならない。このような表示によれば表示ウインドウ上の占有領域を節約できる。なお、切り欠き表示の領域はマウス等によるウインドウバーへの操作にダイナミックに連動して調整できることが好ましい。
【００２６】
階層型データベースの各クラスは、インスタンスを持つことができる。インスタンスは実例ともいう。階層構造表示部１は、当該クラスがインスタンスを持つか否かを上記包含関係とともに明示的に表示する。
【００２７】
従来の階層構造表示では、ユーザに対してクラスの開閉の指針が示されているような表示例はない。つまり、クラスを上位から下位に向かって開いてみなければ、下位のクラスにおけるインスタンスの存在有無を確認できない。
【００２８】
本実施形態では、図２中の傘マークのようなマークを付けることにより、クラスの開閉を行わなくとも、上位のクラスでインスタンスの存在が確認できる。また、カバンマークのようなマークを付けることにより、明確にインスタンスの存在が確認できる。このようなインスタンスの有無表示によれば、ユーザは絞り込み検索を行いやすくなる。
【００２９】
図２の例において、傘マーク（例えば参照数字３０）は、下位に（子）クラスが存在することを表し、鞄マーク（例えば参照数字３２，３３）は、クラスにインスタンスが存在することを表している。傘マークが付与されていないクラス（例えば”Ｓｅｄａｎ”クラス２９や”Ｔｒｕｃｋ”クラス２５）は、末端クラスであり、すなわち下位クラスを持たない。
【００３０】
閉じた傘マーク（例えば参照数字３１）は、その下位のクラス階層を開いていない状態を表す。この閉じた傘マーク３１や３４は、傘の色が無色（或いは白抜き）となっており、その下位クラスにインスタンスが存在しないことを明示している。例えば、”ＡｕｔｏＢｉｃｙｃｌｅ”クラス２２以下には下位クラスが存在するが、傘マーク３１が閉じているため表示されていないことがわかる。また、この”ＡｕｔｏＢｉｃｙｃｌｅ”クラス２２には、登録されているインスタンスはないことがわかる。
【００３１】
閉じた傘マークで有色のもの（例えば参照数字３５）は、クラス階層を開いていない状態を表している。傘マークが有色であることは、そのクラス以下にインスタンスが存在することを明示的に表す。具体例としては、”Ｗａｇｏｎ”クラス３５以下には下位クラスが存在するが、傘が閉じているため表示されていない。また、傘マーク３５が有色であるから、この”Ｗａｇｏｎ”クラス３５は下位クラスのいずれかにインスタンスが存在することが分かる。
【００３２】
開いた傘マークで無色（白抜き）のもの（例えば参照数字３４）は、クラス階層を開いた状態を表し、かつそのクラス以下にはインスタンスが存在しないことを表す。例えば、”ＳｐｏｒｔｓＣａｒ”クラス２６の一階層下に存在する”ＯｐｅｎＣａｒ”クラス２７が表示されている。傘マークは無色であるから、当該クラス以下には登録されているインスタンスが存在しないことが分かる。
【００３３】
開いた傘マークで有色のもの（例えば参照数字３０）は、クラス階層を開いた状態を表し、かつそのクラス以下にインスタンスが存在することを表す。例えば、”Ｖｅｈｉｃｌｅ”クラス２１の一階層下に存在する”ＡｕｔｏＢｉｃｙｃｌｅ”クラス３１、”ＡｕｔｏＭｏｂｉｌｅ”クラス２３を確認できる。その下位クラスである”Ｓｅｄａｎ”クラス２９、”Ｔｒｕｃｋ”クラス２５にはインスタンスが存在するため、インスタンスそのものを表す鞄マーク３２、３３が表示されている。
【００３４】
上位クラスにおける下位クラスのインスタンスの有無判定は、例えば図３のフローチャートで表す処理手順に基づいて行うことができる。図３の処理手順では、各クラスの情報として、下位クラスでのインスタンス有無フラグを持たせることにしている。インスタンス有無フラグは、インスタンス新規作成の際に更新されるものとする。
【００３５】
図３はインスタンス有無フラグの更新処理手順を示すフローチャートである。
【００３６】
まず、新規にインスタンスが挿入されたクラス（ｃｌａｓｓ）をセットする（ステップＳ１）。このクラスについて、フラグ（ｓｕｂ＿ｉｎｓ＿ｆｌｇ）がＯＮであるか否かをステップＳ２において判定する。フラグがＯＮと判定された場合には、下位にクラスが存在することを示して終了する。フラグがＯＦＦであると判定された場合には、下位にクラスが存在しない。ステップＳ４においてこのフラグをＯＮにセットし、次にステップＳＳ５において上位クラスが存在するか否かを判定する。上位クラスが存在しない場合は処理を終了する。上位クラスが存在する場合はステップＳ６においてクラス（ｃｌａｓｓ）を上位クラスとしてステップＳ２に戻る。この処理手順によれば、インスタンスの追加があるときにだけ、最小限の範囲でフラグの更新処理が行われるため、効率的である。図２のクラス階層構造表示は、このフラグがＯＮであるときに、傘マークの内部が有色となる。
【００３７】
図４は、階層構造表示に関するより具体的なＧＵＩ画面の構成例を示す図である。図４において、クラスの包含関係はウインドウの領域１１に示されている。この領域１１内では、クラス間の包含関係を表すダイアグラムの右側端部と、上端部の表示が省略されている。
【００３８】
図１に示した階層構造表示装置の働きにより、階層構造表示部１とクラス情報表示部２とが連動し、階層構造表示部とプロパティリスト表示部３とが連動し、また、プロパティリスト表示部３とプロパティ情報表示部４とが連動し、表示内容が変更される。階層構造表示部１で選択されたクラスの名称、シノニム、定義などの情報をクラス情報表示部２により確認することができる。これは図４の領域１２に対応する。また、階層構造表示部１で選択されたクラスで定義／継承されているプロパティのリストをプロパティリスト表示部３で確認することができる。これは、図４の領域１３に対応する。このプロパティリスト表示部３で選択されたプロパティの情報は、プロパティ情報表示部４により確認することができる。プロパティの名称、シノニム、定義、データ型などの詳細情報が分かる。プロパティ情報表示部４による詳細情報の表示例を図５に示す。
【００３９】
「ヘリテージ（Ｈｅｒｉｔａｇｅ）表示」
図６は、選択されたクラスから上位のクラスへ向かって直系の親クラス４０だけを表示している例である。このような表示をヘリテージ（Ｈｅｒｉｔａｇｅ）表示と呼ぶ。この例では、“ノートＰＣ”クラス４１から見た直系に相当するクラス間の親子関係が表現されている。
【００４０】
「検索開始ポイント（Ｔｒａｖｅｒｓａｌ検索）の限定」
図７は検索開始ポイントを限定するトラバーサル（Ｔｒａｖｅｒｓａｌ）検索を説明するための図である。階層型データベースでは、通常、階層にまたがったインスタンスの検索（以降、Ｔｒａｖｅｒｓａｌ検索と呼ぶ）を、任意のクラスから行うことができる。これは、階層の上位から検索をかけることにより、どのクラスのインスタンスかをユーザが意識することなく検索が行えるという利点がある。しかしながら、検索を開始するポイントが階層の上位であればあるほど、検索対象となるクラス、およびインスタンスが爆発的に増大する。このために検索時間がかかり、システムのパフォーマンスを低下させる恐れがある。そこで図７のように検索開始ポイントを限定する。これによれば膨大なデータに対する検索を回避できるようになり、システムのパフォーマンスの低下を防ぐことができる。
【００４１】
検索開始ポイントは、インスタンスを持つクラスに限定することもできる。インスタンスは多くの場合、ツリーの末端近くのクラスに存在するため、検索対象クラスを少なく抑えることができる。図７の例で言うと、”Ｐａｓｓｅｎｇｅｒｓ  Ｃａｒ”、”Ｓｅｄａｎ”、”Ｔｒｕｃｋ”の鞄マークが付与された三つのクラス２４、２９、２５がトラバーサル検索の対象となる。
【００４２】
また、システムアドミニストレータや辞書設計者などが、自クラスにインスタンスを含まなくとも、下位にインスタンスを含むようなクラスに対して、データベースや検索の負荷を考慮して、人的に設定することも可能である。図７の例でいうと、”Ａｕｔｏ  Ｂｉｃｙｃｌｅ”、”Ｓｐｏｒｔｓ  Ｃａｒ”、”Ｏｐｅｎ  Ｃａｒ”など無色の傘マークまたは、末端のクラスで鞄マークがついていないクラスに関しては、トラバーサル検索の対象とはならないが、他についてはその対象として、人的に検索開始ポイントを設定することが可能である。検索開始ポイントは、明示的にマークを挿入することでユーザに表示する。図７の”Ａｕｔｏ  Ｍｏｂｉｌｅ”クラスに付与されているルーペマーク７１がこれに相当する。”Ａｕｔｏ  Ｍｏｂｉｌｅ”クラスからトラバーサル検索を行った場合、”Ｐａｓｓｅｎｇｅｒ  Ｃａｒ”と”Ｓｅｄａｎ”、”Ｗａｇｏｎ”から以下、および”Ｔｒｕｃｋ”の各クラスに対して、検索条件に合ったインスタンスの検索を行うことができる。
【００４３】
また、図８の処理手順に従い、検索開始ポイントを自動的に設定することも可能である。図８の処理手順では、自クラスにはインスタンスを含まないが、直下の子クラスの２箇所以上にインスタンスが存在する場合に、当該クラスを検索開始ポイントとする）。検索開始ポイントの設定は、例えば、クラスの情報として各クラスに持たせ、インスタンスを挿入するタイミングで行なう。２つ以上の直下の子クラスにインスタンスが存在する場合、これを検索開始ポイントとする。
【００４４】
ｃｌａｓｓ．ｃｈｌｄ＿ｉｎｓは、クラス（ｃｌａｓｓ）の直下の子クラスの、インスタンスの有無を示す変数である。初期値は、ＮＯＮＥ（直下の子クラスにインスタンスが全くない）とする。一つの直下の子クラスにだけインスタンスが存在する場合には、該変数をＯＮＥとし（ステップＳ７）、２つ以上の直下の子クラスにインスタンスが存在する場合には、ＭＵＬＴとなる（ステップＳ６）。これが、ＭＵＬＴ（複数）の場合、開始ポイントとする。図７の例では、”Ａｕｔｏ  Ｍｏｂｉｌｅ”クラスは、直下のクラスである”Ｐａｓｓｅｎｇｅｒ  Ｃａｒ”と”Ｔｒｕｃｋ”にインスタンスが存在するため、図８の処理手順に従って検索開始ポイントとして設定される。
【００４５】
「部分継承表示」
図９は、マルチインヘリタンスを伴う階層構造の一例を示す図である。例えば、ＩＳＯ１３５８４では、単純木の階層構造のみを規定しており、マルチインヘリタンス（多重継承）は規定されていない。しかしながら、マルチインヘリタンスと類似するものとして、別のクラスの一部を継承することができるケイスオブ（ＣａｓｅＯｆ）なる概念が知られている。これは、別のクラスで定義されたプロパティリストの一部を継承することができるというものである。
【００４６】
図９の階層構造例では、実線が通常の継承関係を表し、破線９０がケイスオブ（ＣａｓｅＯｆ）による部分継承を表している。”Ｈｙｂｒｉｄ  Ｖｅｈｉｃｌｅ”クラスは、”Ｅｌｅｃｔｒｉｃ  Ｖｅｈｉｃｌｅ”クラスの子クラスであるが、ケイスオブ（ＣａｓｅＯｆ）による部分継承によって同時に”Ｓｅｄａｎ”クラスのプロパティを継承している。
【００４７】
図１０は、階層構造中の部分継承を明示的に示す表示例である。ここでは、”Ｈｙｂｒｉｄ  Ｖｅｈｉｃｌｅ”クラス１００を”Ｅｌｅｃｔｒｉｃ  Ｖｅｈｉｃｌｅ”クラス１０１の子クラスとしてのみ表示している。この表示例では、”Ｓｅｄａｎ”クラス１００の下位には子クラスは存在しないから、部分継承しているクラスが存在するのどうかが分からない。しかし、”Ｈｙｂｒｉｄ  Ｖｅｈｉｃｌｅ”クラス１００が別のクラスから部分継承しているクラスであることを明示するために、他のクラスとは異なる表記（ここではクラス名称を例えば斜字体表記としている）としている。
【００４８】
一方、図１１は図１０とは異なる部分継承の他の表示例を示したものである。この例では、”Ｈｙｂｒｉｄ  Ｖｅｈｉｃｌｅ”クラス１１０を”Ｓｅｄａｎ”クラス１１１の子クラスのように表示している。”Ｓｅｄａｎ”クラス１１１よりも下位のクラスである”ＨｙｂｒｉｄＶｅｈｉｃｌｅ”クラス１１０は、”Ｓｅｄａｎ”クラス１１１の正規の子クラスではなく、ケイスオブ（ＣａｓｅＯｆ）により部分継承されている。このことを明示的に示すために、参照（Ｒｅｆ）マーク１１２を付与している。また、階層構造表示部１は、このＲｅｆマーク付のクラスが選択された場合、正規のクラスへジャンプする機構を備えており、ユーザは、”Ｓｅｄａｎ”クラス１１１を起点としても検索を行っていくことができる。
【００４９】
「色別表示」
図１２は、階層構造表示における色別表示を説明するための図である。階層構造表示部１により表示される階層構造の各階層の色と、プロパティリスト表示部３におけるプロパティリストの先頭マークの色とを同色で表示する。このような色別表示によれば、現在の選択クラス１２１からみた上位クラスのどの階層でプロパティリスト中の各プロパティが定義されているのかを、一目で確認することができ、極めて良好な視覚効果が得られる。
【００５０】
「部分継承元クラス参照表示」
図１３は、部分継承先のクラスから、部分継承したプロパティの出所クラスへの参照表示を示す図である。図１３において、参照数字２１は階層構造表示、２２はプロパティリスト表示、２３はプロパティ情報表示の例である。階層構造表示２１における”Ｈｙｂｒｉｄ  Ｖｅｈｉｃｌｅ”クラスおよびプロパティリスト表示２２における”ｅｎｇｉｎｅ＿ｔｙｐｅ”プロパティは、ユーザによって選択されている項目であり、ハイライト表示されている。
【００５１】
また、プロパティリスト表示２２において表示されているプロパティの左端に示すＣマーク２５は、このプロパティが部分継承に係るものであることを明示するためのマークである。ユーザは、この”Ｈｙｂｒｉｄ  Ｖｅｈｉｃｌｅ”クラスが部分継承している”ｅｎｇｉｎｅ＿ｔｙｐｅ”プロパティの詳細情報をプロパティ情報表示２３を参照することで、このプロパティは”Ｓｅｄａｎ”クラスから継承されたものであることを確認できる。ここで、Ｊｕｍｐ（ジャンプ）ボタン２４をユーザが押すと、階層構造表示２１においては部分継承したプロパティの出所クラス”Ｓｅｄａｎ”クラスにフォーカスが切り替わり、これと同時にプロパティリスト表示２２におけるプロパティリストが”Ｓｅｄａｎ”クラスのプロパティリストに表示更新される。
【００５２】
「バーチャル（仮想）・ルート表示」
階層構造表示２１は、通常、一つの階層構造を表示する。これは、上位クラスを持たないルート（ＲＯＯＴ）を源とするツリーに相当する。良く知られているＣ＋＋やＪａｖａ言語などに設けられたグラフィックライブラリなどでは、複数ツリー表示は、画面の切り替えによって行われる。このため、そのうちの一つのツリーしか一度に表示することができない。一方、本発明の実施形態では、複数のツリーに対してバーチャル・ルートを設け、それに対応するクラスを作成することにより、作成したバーチャルルートクラスの下位クラスとして、それぞれのツリーのルートを表現する。
【００５３】
図１４は、階層構造表示部におけるバーチャル・ルートを設けた場合の表示例を示している。バーチャル・ルート１４０は通常のクラスと同等に扱われる。これまでに説明した本実施形態に係わるすべての機能を、バーチャル・ルート１４０下においても通常クラスと同様に利用することができる。
【００５４】
例えば、図１５は、バーチャル・ルート１５０の一階層下の各ツリーのルート１５１，１５２のみを初期表示するよう設定したものである。
【００５５】
図１６は、初期展開クラスの設定例を示す図である。ここでは、デフォルトの展開階数は「ＴＲＥＥ＿ＯＰＥＮ＝６」と設定されている。また、初期時に展開表示する個々のクラスは、「ＴＲＥＥ＿ＯＰＥＮ＿ＣＬＡＳＳ」以下に、クラスの識別子１６０を列挙することで指定することができる。クラスの展開は、デフォルトの展開階数を原則とするが、このようにクラスの指定があれば、その枝部分については、該クラスまでの展開とする。
【００５６】
以上説明した本発明の実施形態によれば、階層構造そのものについての情報（包含関係）のみならず、インスタンスの有無やプロパティリストなどを含むクラスに関する情報、プロパティに関する情報を効果的に提示するよう表示部に配置する。したがって、ユーザが操作しやすいインターフェースを提供できる。たとえば、階層表示するクラス範囲を、ユーザあるいは提供者が意図的により指定して限定することもでき、複雑な階層構造を必要な部分だけに絞ってユーザに提供することができる。また、検索開始ポイントを限定してユーザに提供することで、システムに負荷がかからない検索を行わせることもできる。
【００５７】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。例えば、本発明はクラス間に継承が発生するような階層型データベースのみならず、種々のシステムにおける階層構造の表示にも適用可能である。例えば、ファイルシステムにおけるディレクトリ構造ツリーの表示にも本発明は適用可能である。例えば、ディレクトリ毎に、そのインスタンスの存在有無を明示することなどである。
【００５８】
【発明の効果】
以上説明したように、本発明によれば、階層型データベースにおけるクラス間の包含関係を適切かつ効果的に表示することのできる階層構造表示装置および方法を提供できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る階層構造表示システムの概略構成を示すブロック図
【図２】上記実施形態に係るクラス間の包含関係を示す図
【図３】上記実施形態に係る下位クラスにおけるインスタンスの有無判定の処理手順の一例を示すフローチャート
【図４】上記実施形態に係る階層構造表示に関するより具体的なＧＵＩ画面の構成例を示す図
【図５】上記実施形態に係るプロパティ情報表示部による詳細情報の表示例を示す図
【図６】上記実施形態に係るヘリテージ（Ｈｅｒｉｔａｇｅ）表示の一例を示す図
【図７】上記実施形態に係るトラバーサル（Ｔｒａｖｅｒｓａｌ）検索を説明するための図
【図８】上記実施形態に係る検索開始ポイントを自動的に設定する処理手順の一例を示すフローチャート
【図９】上記実施形態に係るマルチインヘリタンスを伴う階層構造の一例を示す図
【図１０】上記実施形態に係る階層構造中の部分継承の表示例を示す図
【図１１】上記実施形態に係る部分継承の他の表示例を示す図
【図１２】上記実施形態に係る色別表示を説明するための図
【図１３】上記実施形態に係る部分継承先のクラスから、部分継承したプロパティの出所クラスへの参照表示を示す図
【図１４】上記実施形態に係る階層構造表示部におけるバーチャル・ルートを設けた場合の表示例を示す図
【図１５】上記実施形態に係るバーチャル・ルート設定時の初期表示例を示す図
【図１６】上記実施形態に係る初期展開クラスの設定例を示す図
【符号の説明】
１…階層構造表示部
２…クラス情報表示部
３…プロパティリスト表示部
４…プロパティ情報表示部
５…ＣＰＵ
６…メモリ
７…二次記憶装置
８…ディスプレイ
【図１】
2004178015.tif 000003
【図２】
2004178015.tif 000004
【図３】
2004178015.tif 000005
【図４】
2004178015.tif 000006
【図５】
2004178015.tif 000007
【図６】
2004178015.tif 000008
【図７】
2004178015.tif 000009
【図８】
2004178015.tif 000010
【図９】
2004178015.tif 000011
【図１０】
2004178015.tif 000012
【図１１】
2004178015.tif 000013
【図１２】
2004178015.tif 000014
【図１３】
2004178015.tif 000015
【図１４】
2004178015.tif 000016
【図１５】
2004178015.tif 000017
【図１６】
2004178015.tif 000018