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