(57)【要約】【課題】従来の検索木描画方法においては、検索木の木構造を描画することは可能であったが、各ノードを示す図形の面積が小さいことにより、各ノードに、その下位ノードに属するデータ集合が含む複数の属性を同時に表示することができないという問題があった。【解決手段】本発明による検索木描画装置、検索木描画方法およびプログラムにおいては、ノードを表す図形を錐体で表し、子ノードを表す錐体の頂点が親ノードを表す錐体の底面の外周上に接するように各ノードを表す錐体を配置することで、ノード間の関係を示す線を用いずに木構造が描写でき、各ノードを表す錐体を大きく描写することが可能となる。【選択図】図１
2014041504.tif 000002
【特許請求の範囲】
【請求項１】
属性名と属性値の組を１つ以上含むデータの集合を木構造で保持するデータ蓄積手段と、
前記木構造の各ノードを錐体により描画する錐体描画手段と、
該錐体の側面に情報を描画する側面情報描画手段と、
前記木構造のノードのうちの子ノードを表す錐体を、当該子ノードを表す錐体の頂点が前記木構造のノードのうちの親ノードを表す錐体の底面の外周上に接し、当該子ノードを表す錐体の底面の外周が隣接する他の子ノードと接しない位置に配置する錐体配置手段と、
該錐体描画手段と該側面情報描画手段と該錐体配置手段とを各ノードについて再帰的に実行する検索木描画手段と、
を有することを特徴とする検索木描画装置。
【請求項２】
前記側面情報描画手段は、各ノードを表す錐体の側面に対して、少なくとも該検索木が含むデータ集合に含まれる属性種類数の領域に分割し、分割した各領域に各属性種類の属性を１対１の関係で関連付け、各ノードを表す錐体の側面が含む該領域に関連付けられた属性に関する情報を描画することを特徴とする請求項１に記載の検索木描画装置。
【請求項３】
前記側面情報描画手段は、各ノードを表す錐体の側面が含む該領域に描画する該領域に関連付けられた属性に関する情報として、該ノードが下位に含むデータ集合に含まれる該領域に関連付けた属性値の最大値から最小値の範囲を該検索木が含む全データ集合に含まれる該領域に関連付けた属性値の最大値と最小値の範囲で正規化した情報を描画することを特徴とする請求項２に記載の検索木描画装置。
【請求項４】
前記錐体の回転角度を算出する回転角度算出手段をさらに有し、
前記側面情報描画手段は、各錐体の側面上に描画した情報を、各錐体の頂点から各底面に垂直に下ろした垂線を中心に該回転角度だけ一斉に回転させた状態で再描画することを特徴とする請求項１から３のいずれかに記載の検索木描画装置。
【請求項５】
該木構造がＵＢＩ−Ｔｒｅｅであることを特徴とする請求項１から４のいずれかに記載の検索木描画装置。
【請求項６】
属性名と属性値の組を１つ以上含むデータの集合を木構造で保持するデータ蓄積手段に蓄積されている前記木構造の各ノードを錐体により描画する錐体描画手順と、
該錐体の側面に情報を描画する側面情報描画手順と、
前記木構造のノードのうちの子ノードを表す錐体を、当該子ノードを表す錐体の頂点が前記木構造のノードのうちの親ノードを表す錐体の底面の外周上に接し、当該子ノードを表す錐体の底面の外周が隣接する他の子ノードと接しない位置に配置する錐体配置手順と、
を有する検索木描画方法。
【請求項７】
前記錐体の回転角度を算出し、各錐体の側面上に描画した情報を、各錐体の頂点から各底面に垂直に下ろした垂線を中心に該回転角度だけ一斉に回転させた状態で再描画する回転処理手順を、さらに有することを特徴とする請求項６に記載の検索木描画方法。
【請求項８】
錐体描画手段が、属性名と属性値の組を１つ以上含むデータの集合を木構造で保持するデータ蓄積手段に蓄積されている前記木構造の各ノードを錐体により描画する錐体描画手順と、
側面情報描画手段が、該錐体の側面に情報を描画する側面情報描画手順と、
錐体配置手段が、前記木構造のノードのうちの子ノードを表す錐体を、当該子ノードを表す錐体の頂点が前記木構造のノードのうちの親ノードを表す錐体の底面の外周上に接し、当該子ノードを表す錐体の底面の外周が隣接する他の子ノードと接しない位置に配置する錐体配置手順と、
をコンピュータに実行させるための検索木描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索木の木構造を描画する方法に関する。
【背景技術】
【０００２】
データベースやファイルシステムにおいては、蓄積されたデータ集合の中から所望のデータを高速に検索するために、Ｂ−ＴｒｅｅやＲ−Ｔｒｅｅなどの検索木を用いてデータを管理する。Ｂ−Ｔｒｅｅは１種類の属性の属性値集合の索引となる検索木であり、Ｒ−Ｔｒｅｅは多種類の属性の属性値集合の索引となる検索木である。Ｂ−ＴｒｅｅにはＢ＋−Ｔｒｅｅなど、Ｒ−ＴｒｅｅにはＲＤ−Ｔｒｅｅなどの改良技術も存在する。
【０００３】
Ｒ−Ｔｒｅｅでは、全てのデータが同じ種類の属性を持つ多属性データ集合を対象に管理するが、異なる種類、異なる数の属性をもつ異種異数多属性データ集合を対象に管理するＵＢＩ−Ｔｒｅｅという検索木も近年考案されている（特許文献１および特許文献２）。ＵＢＩ−Ｔｒｅｅは特徴として、ｕＴｕｐｌｅ形式という、「キー＝値」の並びにより属性名と属性値とを自由に表現した形式のデータを管理する。このとき「キー＝値」は「属性名＝属性値」と同義となる。例えば、「センサＩＤ＝１、時間＝３、温度＝２０」のように表現することで、センサＩＤと時間と温度という３つの属性名とこれに対応する属性値を表現する。
【０００４】
一般に検索木は、管理するデータ集合について、各ノードが下位に含むデータ集合に含まれる属性名と属性値範囲を管理するという特徴を持つ。Ｂ−Ｔｒｅｅのように属性が１種類の場合には、通常属性名が省略され、各ノードが下位に含むデータ集合に含まれる属性値範囲のみを管理する。
【０００５】
一方、検索木の木構造を可視化する検索木可視化方法として、検索木のノードを表す図形を円錐上に配置して３次元的に表示し、ノードを表す図形間をエッジと呼ばれる直線で繋ぐことでノード間の関連性を表すＣｏｎｅ  Ｔｒｅｅ（非特許文献１）や、検索木の各ノードやデータを表す図形を四角形で表し、各ノードやデータに対応する四角形を親ノードに対応する四角形の内側に配置することによって検索木の木構造を２次元平面上に表すデータ宝石箱（非特許文献２）などがある。
【０００６】
また前記データ宝石箱は、検索木が管理するデータまたはノードを表す図形に対し、該図形が存在する２次元平面とは直行する方向に、該データが含む１つの属性の属性値または該ノードが下位に含むデータ集合に含まれる１つの属性の属性値集約値、すなわち属性値の最大値や平均値などの統計値の大きさに応じた長さを持たせた直方体または錐体を表す機能を有し、該機能を併用して可視化することで検索木の木構造に加えて１つの属性の属性値や属性値集約値を一覧することが可能である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１７０４６０号公報
【特許文献２】特開２０１１−１７０４６１号公報
【非特許文献】
【０００８】
【非特許文献１】Ｇｅｏｒｇｅ  Ｇ．Ｒｏｂｅｒｔｓｏｎ，  Ｊｏｃｋ  Ｄ．Ｍａｃｋｉｎｌａｙ，  Ｓｔｕａｒｔ  Ｋ．Ｃａｒｄ，  “Ｃｏｎｅ  Ｔｒｅｅｓ：  Ａｎｉｍａｔｅｄ  ３Ｄ  Ｖｉｓｕａｌｉｚａｔｉｏｎｓ  ｏｆ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｉｎｆｏｒｍａｔｉｏｎ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＡＣＭ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｈｕｍａｎ  Ｆａｃｔｏｒｓ  ｉｎ  Ｃｏｍｐｕｔｉｎｇ  Ｓｙｓｔｅｍｓ  （ＣＨＩ’９１），  ＡＣＭ  Ｐｒｅｓｓ，  １９９１，ｐｐ．１８９−１９４．
【非特許文献２】伊藤貴之、梶永泰正、池端裕子、“データ宝石箱：大規模階層型データのグラフィックスショーケース、”情報処理学会グラフィクス＆ＣＡＤ  研究会、２００１−ＣＧ−１０４、ｐｐ．６５−７０、２００１。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
検索木の研究開発や検索木の理解・学習、あるいはデータベース管理者が行う検索木の状態確認やデータ集合の管理状況確認においては、検索木の木構造に加えて各ノードが下位に含むデータ集合に含まれる属性についてその属性値範囲を俯瞰出来ると良い。特に、前記ＵＢＩ−Ｔｒｅｅのように異種異数多属性データ集合を管理する場合においては、各ノードが下位に含むデータ集合に含まれる属性種類数がノードごとに異なることから、検索木の木構造に加えて各ノードが下位に含むデータ集合に含まれるのはどの属性で、それぞれどのような属性値範囲を保有するかを俯瞰できるよう可視化することが重要である。
【００１０】
しかしながら、従来の可視化方法では１度に描画することが出来る情報の種類が限定されてしまう方法か、情報を描画することが出来る領域が小さく制限される方法しかなく、上記の要求を満たした可視化は出来なかった。例えば従来の可視化方法では、Ｃｏｎｅ  Ｔｒｅｅやデータ宝石箱という可視化方法があるが、可視化方法にＣｏｎｅ  Ｔｒｅｅを用いた場合、検索木の木構造は明確に描画することが出来るが、各ノードが下位に含むデータ集合に含まれる属性についてその属性値範囲を俯瞰出来るように可視化することは困難だという問題がある。
【００１１】
ノード間の関連性を表すエッジの色、太さ、形状といった要素を変更することで各ノードが下位に含むデータ集合に含まれる属性についてその属性値範囲を描画する方法が考えられるが、各要素につき１種類の属性の属性値範囲しか描画することは出来ない。
【００１２】
またノードを表す図形を大きく描画することで当該図形上に各ノードが下位に含むデータ集合に含まれる属性についてその属性値範囲を描画する方法も考えられるが、ノードを表す図形以外にもエッジを表す図形を描画する必要があり、その分だけノードを表す図形の大きさが制限されることから多くの属性についてその属性値範囲を描画することは困難であった。
【００１３】
また、可視化方法にデータ宝石箱を用いても、２次元的に可視化した検索木の木構造に加えて、データまたはノードを表す図形が存在する２次元平面とは直交する方向に長さを持たせた直方体または錐体に該データが含む１つの属性の属性値または該ノードが下位に含むデータ集合に含まれる１つの属性の属性値集約値を描画することしか出来ず、各ノードが下位に含むデータ集合に含まれる複数の属性の属性値範囲を同時に、可視化することは出来ないという問題があった。本発明はこうした問題を解決する。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本願発明の検索木描画装置、検索木描画方法およびプログラムは、ノードを表す図形を錐体で表し、子ノードを表す錐体の頂点が親ノードを表す錐体の底面の外周上に接し隣接する他の子ノードと接しないよう各ノードを表す錐体を配置することで、３次元的に検索木の木構造を描画し、さらに錐体の側面に情報を描画する。
【００１５】
具体的には、本発明に係る検索木描画装置は、属性名と属性値の組を１つ以上含むデータの集合を木構造で保持するデータ蓄積手段と、前記木構造の各ノードを錐体により描画する錐体描画手段と、該錐体の側面に情報を描画する側面情報描画手段と、前記木構造のノードのうちの子ノードを表す錐体を、当該子ノードを表す錐体の頂点が前記木構造のノードのうちの親ノードを表す錐体の底面の外周上に接し、当該子ノードを表す錐体の底面の外周が隣接する他の子ノードと接しない位置に配置する錐体配置手段と、該錐体描画手段と該側面情報描画手段と該錐体配置手段とを各ノードについて再帰的に実行する検索木描画手段と、を有することを特徴とする。
【００１６】
本発明に係る検索木描画装置では、前記側面情報描画手段は、各ノードを表す錐体の側面に対して、少なくとも該検索木が含むデータ集合に含まれる属性種類数の領域に分割し、分割した各領域に各属性種類の属性を１対１の関係で関連付け、各ノードを表す錐体の側面が含む該領域に関連付けられた属性に関する情報を描画してもよい。
ノードを表す錐体の側面を検索木が含むデータ集合に含まれる属性種類数以上の数の領域に分割し、分割した各領域に各属性を１対１の関係で関連付け、各領域に関連付けられた属性に関する情報を描画することにより、各ノードが下位に含むデータ集合に含まれる１つ以上の属性に関する情報を各ノードについて俯瞰することが可能となる。
【００１７】
本発明に係る検索木描画装置では、前記側面情報描画手段は、各ノードを表す錐体の側面が含む該領域に描画する該領域に関連付けられた属性に関する情報として、該ノードが下位に含むデータ集合に含まれる該領域に関連付けた属性値の最大値から最小値の範囲を該検索木が含む全データ集合に含まれる該領域に関連付けた属性値の最大値と最小値の範囲で正規化した情報を描画してもよい。
ノードを表す錐体の側面の各領域に各ノードが下位に含むデータ集合に含まれる該領域に関連付けた属性値の最大値から最小値の範囲を該検索木が含む全データ集合に含まれる該領域に関連付けた属性値の最大値と最小値の範囲で正規化した情報を描画することで、各ノードが下位に含むデータ集合に含まれる１つ以上の属性についてその属性値範囲をノード間で俯瞰出来るように可視化することが可能となる。
【００１８】
本発明に係る検索木描画装置では、前記錐体の回転角度を算出する回転角度算出手段をさらに有し、前記側面情報描画手段は、各錐体の側面上に描画した情報を、各錐体の頂点から各底面に垂直に下ろした垂線を中心に該回転角度だけ一斉に回転させた状態で再描画してもよい。
各錐体の側面に描画する情報を各錐体の頂点から各底面に垂直に下ろした垂線を中心に、一斉に回転させた状態を再描画することで、各錐体の側面に描画する全ての情報について容易に把握し、ノード間で該情報を比較することが出来る。
【００１９】
本発明に係る検索木描画装置では、該木構造がＵＢＩ−Ｔｒｅｅであってもよい。
【００２０】
具体的には、本発明に係る検索木描画方法は、属性名と属性値の組を１つ以上含むデータの集合を木構造で保持するデータ蓄積手段に蓄積されている前記木構造の各ノードを錐体により描画する錐体描画手順と、該錐体の側面に情報を描画する側面情報描画手順と、前記木構造のノードのうちの子ノードを表す錐体を、当該子ノードを表す錐体の頂点が前記木構造のノードのうちの親ノードを表す錐体の底面の外周上に接し、当該子ノードを表す錐体の底面の外周が隣接する他の子ノードと接しない位置に配置する錐体配置手順と、を有する。
【００２１】
本発明に係る検索木描画方法では、前記錐体の回転角度を算出し、各錐体の側面上に描画した情報を、各錐体の頂点から各底面に垂直に下ろした垂線を中心に該回転角度だけ一斉に回転させた状態で再描画する回転処理手順を、さらに有していてもよい。
【００２２】
具体的には、本発明に係る検索木描画プログラムは、錐体描画手段が、属性名と属性値の組を１つ以上含むデータの集合を木構造で保持するデータ蓄積手段に蓄積されている前記木構造の各ノードを錐体により描画する錐体描画手順と、側面情報描画手段が、該錐体の側面に情報を描画する側面情報描画手順と、錐体配置手段が、前記木構造のノードのうちの子ノードを表す錐体を、当該子ノードを表す錐体の頂点が前記木構造のノードのうちの親ノードを表す錐体の底面の外周上に接し、当該子ノードを表す錐体の底面の外周が隣接する他の子ノードと接しない位置に配置する錐体配置手順と、をコンピュータに実行させるための検索木描画プログラムである。
【００２３】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００２４】
本発明によれば、ノードを表す図形を錐体で表し、子ノードを表す錐体の頂点が親ノードを表す錐体の底面の外周上に接し隣接する他の子ノードと接しないよう各ノードを表す錐体を配置することで、３次元的に検索木の木構造を描画し、さらに錐体の側面に情報を描画する。これにより、エッジを用いないことでノードを表す錐体を大きく描画することが可能となり、錐体の側面に多くの情報を描画することが可能となる。またこのとき、ノードを表す図形として錐体を用い、さらに前記配置方法を行うことで、エッジを用いずともノード間の関連性は表現可能である。
【図面の簡単な説明】
【００２５】
【図１】本実施の形態における装置構成を示す。
【図２】本実施の形態におけるデータ蓄積部（１０１）が保持するデータ集合（１２０）を管理する木構造を示す。
【図３】本実施の形態におけるデータ蓄積部（１０１）が保持するデータ集合（１２０）の内容を示す。
【図４】本実施の形態におけるデータ蓄積部（１０１）が保持するデータを管理する木構造が保持するポインタ表と属性値範囲表を示す。
【図５】本実施の形態における検索木描画部（１１４）が実施する検索木描画処理（ステップ３００）のフローチャートを示す。
【図６】本実施の形態における錐体描画部（１１０）が錐体描画処理（ステップ３０１）により描画対象ノードを表す錐体を円錐にて描画した錐体描画イメージ（４００）を示す。
【図７】本実施の形態における側面情報描画部（１１１）が側面情報描画処理（ステップ３０２）により描画対象ノードを表す円錐の側面を複数の領域に分割した側面情報描画イメージ（４０１）を示す。
【図８】本実施の形態における側面情報描画部（１１１）が側面情報描画処理（ステップ３０２）により、さらに描画対象ノードとしてｎＲＴ（２００）を表す円錐の側面の各領域に情報を描画した側面情報描画イメージ（４０２）を示す。
【図９】本実施の形態における側面情報描画部（１１１）が側面情報描画処理（ステップ３０２）により、さらに描画対象ノードとしてｎ１（２０１）を表す円錐の側面の各領域に情報を描画した側面情報描画イメージ（４０３）を示す。
【図１０】本実施の形態における錐体配置部（１１２）が錐体配置処理（ステップ３０３）により描画対象ノードの子ノードを表す円錐の頂点を算出した際の、算出した座標を側面情報描画イメージ（４０４）上に示したものである。
【図１１】本実施の形態において、描画処理を再帰的に実施する検索木描画処理により描画される検索木描画イメージ（４０５）を示す。
【発明を実施するための形態】
【００２６】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施の例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００２７】
（検索木描画装置の装置構成）
第１図は本実施の形態における装置構成を示す。
検索木描画装置（１００）は、データ蓄積部（１０１）を具備する。データ蓄積部（１０１）は、木構造によりデータ集合（１２０）を保持する。さらに、検索木描画装置（１００）は、検索木描画部（１１４）と錐体描画部（１１０）と側面情報描画部（１１１）と錐体配置部（１１２）とを具備する。さらに、検索木描画装置（１００）は、回転角度算出部（１１３）を具備する。
【００２８】
第２図は本実施の形態におけるデータ蓄積部（１０１）が保持するデータ集合（１２０）を管理する木構造を示す。
本実施形態においてデータ蓄積部（１０１）が保持するデータ集合（１２０）を管理する木構造はＵＢＩ−Ｔｒｅｅとする。ただし、本実施形態はＵＢＩ−Ｔｒｅｅとするが、本発明はそれに限らず、木構造をもつ検索木であればよく、例えば前記Ｂ−Ｔｒｅｅや前記Ｒ−Ｔｒｅｅでもよい。
【００２９】
データ蓄積部（１０１）が保持するデータ集合（１２０）を管理する木構造は、ｎＲＴ（２００）、ｎ１（２０１）、ｎ２（２０２）の３つのノードから構成され、第３図で示す４つのデータを保持している。さらに、各ノードは第４図で示すポインタ表と属性値範囲表を保持している。またデータ蓄積部（１０１）は木構造情報表（２１０）を保持し、木構造情報表（２１０）は子ノード数最大値（２１１）とｎＲＴの高さ（２１２）とｎＲＴへのポインタ（２１３）と回転角度Ｒを保持する。
【００３０】
本実施形態では、検索木は子ノード数最大値（２１１）が４、木の高さ、すなわちｎＲＴの高さ（２１２）が２、また回転角度Ｒが９０であるが、本発明はこれに限らずそれぞれより大きい値でも小さい値でもよい。またｎＲＴへのポインタ（２１３）の値はｂｆｆｆｄｃ１８であるが、実行のタイミングや実行環境により当然変化し得る。
【００３１】
第３図は本実施の形態におけるデータ蓄積部（１０１）が保持するデータ集合（１２０）の内容を示す。
データ集合（１２０）はデータ（ア）〜（エ）を含む。本発明におけるデータとは、「キー＝値」の任意個の並びから構成されるデータ形式によって記述することとする。このとき「キー＝値」は「属性名＝属性値」と同義となる。例えば、データ（ア）は「ｘ＝０、ｙ＝５」のように表現することで、ｘとｙという２つの属性とこれに対応する属性値を表現する。
【００３２】
本発明のいうデータについて具体的に例を挙げると、属性には、温度や湿度、電流あるいは電圧、流体の流量、物質の濃度、明度、騒音、位置、加速度などが挙げられる。属性値は各属性に対応する値となる。またこれに限らず、値を持ち「属性名＝属性値」の形式で表現することが出来れば、どのようなデータでも良い。例えばＷｅｂやインターネットを経由して取得したデータであっても良い。また本実施形態ではデータの数が４つであるが、より多くのデータを同様に扱うことも可能である。
【００３３】
第４図は本実施の形態におけるデータ蓄積部（１０１）が保持するデータを管理する木構造が保持するポインタ表と属性値範囲表を示す。
本実施形態ではｎＲＴ（２００）はポインタ表（２２０）と属性値範囲表（２３０）を保持する。このとき、ｎＲＴのポインタ表（２２０）はｎ１（２０１）とｎ２（２０２）へのポインタ、属性値範囲表（２３０）はｎ１（２０１）とｎ２（２０２）が保持する属性値範囲表を統合した属性名と属性値範囲を保持する。つまり、ｎＲＴ（２００）の保持する属性値範囲表（２３０）は、ｎ１（２０１）の保持する属性値範囲表（２３１）が「ｘ＝０〜５、ｙ＝５〜１０」、ｎ２（２０２）の保持する属性値範囲表（２３２）が「ｘ＝５〜１０、ｙ＝０〜５」であるとき、「ｘ＝０〜１０、ｙ＝０〜１０」となる。
【００３４】
またｎ１（２０１）はポインタ表（２２１）と属性値範囲表（２３１）を保持する。このときｎ１（２０１）のポインタ表（２２１）はデータ（ア）とデータ（イ）へのポインタ、属性値範囲表（２３１）はデータ（ア）とデータ（イ）が保持する属性名と、その属性値の範囲を保持する。つまり、ｎ１（２０１）の保持する属性値範囲表（２３１）は、ｎ１（２０１）の保持するデータ（ア）が「ｘ＝０、ｙ＝５」、データ（イ）が「ｘ＝５、ｙ＝１０」であるとき、「ｘ＝０〜５、ｙ＝５〜１０」となる。
【００３５】
同様に、ｎ２（２０２）はポインタ表（２２２）と属性値範囲表（２３２）を保持する。このときｎ２（２０２）のポインタ表（２２２）はデータ（ウ）とデータ（エ）へのポインタ、属性値範囲表（２３２）はデータ（ウ）とデータ（エ）が保持する属性名と属性値の範囲を保持する。
【００３６】
（検索木描画装置における全体フローチャート）
第５図は本実施の形態における検索木描画部（１１４）が実施する検索木描画処理（ステップ３００）のフローチャートを示す。本実施形態に係る検索木描画方法は、初期化処理（ステップ５０１）と、描画処理（ステップ５０２）と、を順に有する。
まず初期化処理（ステップ５０１）として、データ蓄積部（１０１）の木構造情報表（２１０）からｎＲＴの高さ（２１２）とｎＲＴへのポインタ（２１３）を取得し、ｎＲＴの高さ（２１２）を描画対象ノードの高さ、ｎＲＴへのポインタ（２１３）を描画対象ノードへのポインタ、空間座標（Ｘ、Ｙ、Ｚ）上の点（０、０、１００）を描画対象ノードの頂点座標とする。また、変数ｋにｎＲＴ（２００）の属性値範囲表（２３０）の行数、すなわち２を代入し、変数ｎＲＴｐにｎＲＴへのポインタを代入する。なお、ｋは該木構造に含まれる属性種類数に等しい。また、本実施形態では点（０、０、１００）を初期化処理時の描画対象ノードの頂点座標としたが、本発明はこれに限らず、頂点座標は任意の座標としても良い。
【００３７】
次に、初期化を行った描画対象ノードへのポインタ、描画対象ノードの頂点座標、描画対象ノードの高さ、ｋ、ｎＲＴｐを引数として描画処理を実行する（ステップ５０２）。
描画処理においては、
まず、錐体描画部（１１０）に該引数を渡し、錐体描画処理により描画対象ノードを表す錐体を描画し（ステップ３０１）、
次に側面情報描画部（１１１）に該引数を渡し、側面情報描画処理により描画対象ノードを表す錐体の側面に情報を描画し（ステップ３０２）、
次に錐体配置部（１１２）に該引数を渡し、錐体配置処理により描画対象ノードの各子ノードを表す錐体の頂点座標をそれぞれ算出する。
ただし、描画対象ノードの高さが１、すなわち描画対象ノードがリーフノードであるならば、次のステップ３０４をスキップする（ステップ３０３）。
【００３８】
さらに、描画対象ノードの高さを１減らした後、描画対象ノードの各子ノードについて、描画処理を実行する（ステップ３０４）。このとき、前記１減らした値を描画対象ノードの高さ、各子ノードへのポインタを描画対象ノードへのポインタ、錐体配置処理（ステップ３０３）で算出した各子ノードを表す錐体の頂点座標を描画対象ノードの頂点座標とし、変数ｋはそのままの値、すなわち２を、変数ｎＲＴｐはそのままの値、すなわちｎＲＴへのポインタとして、これらを引数とする。なお、各子ノードへのポインタは描画対象ノードのポインタ表より取得する。
【００３９】
錐体描画処理（ステップ３０１）、側面情報描画処理（ステップ３０２）、錐体配置処理（ステップ３０３）の詳細については後述する。
なお、描画する際には、ＤｉｒｅｃｔＸやＯｐｅｎＧＬなどの既存の描画ライブラリを用いて、該描画ライブラリにデータ蓄積部が保持する情報や該描画処理において算出した情報を入力することで、容易に描画イメージを作成することが可能である。
本実施の形態において、描画結果は検索木描画装置（１００）に接続したスクリーンに表示してもよい。あるいは、検索木描画装置（１００）をＷｅｂアプリケーションサーバとし、ネットワークに接続し、当該ネットワークに接続されたＷｅｂブラウザに対して描画イメージを送出して当該Ｗｅｂブラウザ上に図形を表示する構成としてもよい。
【００４０】
なお、本実施形態では、描画処理（ステップ５０２）をステップ３０１〜ステップ３０４の順で行う例について説明するが、本発明はこれに限定されない。例えば、描画対象ノードの基線を錐体描画処理（ステップ３０１）において定めることとすれば、錐体配置処理（ステップ３０３）の後に側面情報描画処理（ステップ３０２）を行うこととしても良い。また、描画対象ノードの基線を錐体描画処理（ステップ３０１）において定めることとし、錐体描画処理（ステップ３０１）と錐体配置処理（ステップ３０３）により算出された各ノードを表す円錐の頂点座標、高さ、底面の半径を記憶しておくこととすれば、各ノードについて錐体描画処理（ステップ３０１）と錐体配置処理（ステップ３０３）を再帰的に実行した後に、各ノードについて側面情報描画処理（ステップ３０２）のみを再帰的に実行しても良い。
【００４１】
（錐体描画部１１０）
第６図は本実施の形態における錐体描画部（１１０）が錐体描画処理（ステップ３０１）により描画対象ノードを表す錐体を円錐にて描画した錐体描画イメージ（４００）を示す。本図を用いて錐体描画処理（ステップ３０１）について説明する。
【００４２】
まず錐体描画処理（ステップ３０１）は、描画対象ノードの高さと木構造情報表（２１０）の子ノード数最大値（２１１）から、描画対象ノードを表す円錐の高さ、すなわち頂点座標から円錐の底面の中心点までの長さを算出する。本実施形態においては、「高さｂの描画対象ノードを表す円錐の高さ＝１００×（（１／子ノード数最大値）＾（ｎＲＴの高さ−ｂ））」により円錐の高さを算出する。このときｎＲＴの高さ（２１２）は木構造情報表（２１０）から読み出す。
次に、錐体描画処理（ステップ３０１）は、描画対象ノードを表す円錐の底面の半径を算出する。本実施形態においては円錐の底面の半径は高さと同等とする。
【００４３】
次に、錐体描画処理（ステップ３０１）は、円錐の頂点座標、円錐の高さ、円錐の底面の半径に従い描画対象ノードを表す円錐を描画する。例として、ｎＲＴ（２００）を表す円錐の描画について記述する。
まず錐体描画処理（ステップ３０１）は、ｎＲＴ（２００）を表す円錐の高さを算出する。子ノード数最大値（２１１）は４、ｎＲＴの高さ（２１２）は２、また描画対象ノードの高さｂも同様に２となるため、「高さ２のｎＲＴ（２００）を表す円錐の高さ＝１００×（（１／４）＾（２−２））＝１００」となる。このとき、ｎＲＴ（２００）を表す円錐の頂点座標は（０、０、１００）としたため、ｎＲＴ（２００）を表す円錐の底面の中心点は（０、０、０）となる。
次に、錐体描画処理（ステップ３０１）は、ｎＲＴ（２００）を表す円錐の底面の半径を算出する。本実施形態においては円錐の底面の半径は高さと同等とするため１００とする。
次に、錐体描画処理（ステップ３０１）は、与えられたｎＲＴ（２００）を表す円錐の頂点座標と、算出した円錐の高さ、円錐の底面の半径に従い、ｎＲＴ（２００）を表す円錐を描画することで、第６図に示す錐体描画イメージ（４００）が描画される。
【００４４】
なお、本発明はこれに限らず、別の方法で各円錐の高さを算出してもよい。例えば、全円錐を同じ高さにしても良いし、親ノードを表す円錐の高さに対して子ノードを表す円錐の高さを１／１０にするという方法でもよい。また円錐の底面の半径は高さと同等としたが、本発明はこれに限らず高さの１／２にするなどとしてもよい。
【００４５】
（側面情報描画部１１１における領域分割）
第７図は、本実施の形態における側面情報描画部（１１１）が側面情報描画処理（ステップ３０２）により描画対象ノードを表す円錐の側面を複数の領域に分割した側面情報描画イメージ（４０１）を示す。本図を用いて側面情報描画処理（ステップ３０２）について説明する。
【００４６】
まず側面情報描画処理（ステップ３０２）は、描画対象ノードを表す円錐の側面にｋ本の線分を描画し、円錐の側面をｋ個の領域に分割し、分割した各領域にｋ種類の属性を１対１の関係で関連付ける。具体的には、ｋ本の線分は、描画対象ノードを表す円錐の底面の中心点と、Ｘ軸方向に円錐の底面の半径だけ移動した円錐の底面の外周との交点を結ぶ直線を描画対象ノードの基線とし、円錐の底面において基線から「Ｒ度＋（３６０度／ｋ）×ｎ」（ｎ＝０、１、２、・・・、ｋ−２、ｋ−１）の角度にある直線と底面の円周の交点と、円錐の頂点を結ぶ線分とする。このとき回転角度Ｒは木構造情報表（２１０）より読み出す。
【００４７】
本実施形態では、ｋ、すなわちｎＲＴ（２００）の属性値範囲表（２３０）の行数は２であることから、２本の線分を円錐の側面上に描画する。回転角度Ｒは本実施形態において９０であるから、ｎＲＴ（２００）においてはｎＲＴ（２００）を表す円錐の底面の中心点（０、０、０）と、Ｘ軸方向に円錐の底面の半径だけ移動した円錐の底面の外周との交点（１００、０、０）を結ぶ直線をｎＲＴ（２００）の基線（４１１）とし、１本目の線分、すなわちｎ＝０の線分は基線（４１１）から「９０度」のところにある点（０、−１００、０）と円錐の頂点（０、０、１００）を結ぶ線分であり、２本目の線分は「９０度＋（３６０度／２）×１」、すなわち基線（４１１）から「２７０度」のところにある点（０、１００、０）と円錐の頂点（０、０、１００）を結ぶ線分となる。これにより第７図に示す側面情報描画イメージ（４０１）が描画される。
【００４８】
本実施形態では、各領域の大きさが均等になるよう分割したが、本発明はこれに限らず、異なる大きさに分割しても良い。またｋ個以上の領域に分割しても良い。
【００４９】
次に側面情報描画処理（ステップ３０２）は、ｋ本の線分によって分割された領域を、それぞれｋ個の属性に関連付ける。本実施形態では、２本の線分によって分割された領域のうち、１本目の線分、すなわちｎ＝０の線分から２本目の線分、すなわちｎ＝１の線分までの領域を属性ｘに、同様に２本目の線分から１本目の線分までの領域を属性ｙに関連付ける。本発明はこれに限らず、逆順に各領域を各属性に関連付けても良い。
【００５０】
（側面情報描画部１１１における情報描画）
第８図及び第９図は、それぞれ、本実施の形態における側面情報描画部（１１１）が側面情報描画処理（ステップ３０２）により、さらに描画対象ノードを表す円錐の側面の各領域に情報を描画した側面情報描画イメージ（４０２）及び（４０３）を示す。本図を用いて側面情報描画処理（ステップ３０２）について説明する。
【００５１】
側面情報描画処理（ステップ３０２）は、ｎＲＴ（２００）の属性値範囲表（２３０）と描画対象描画対象ノードの属性値範囲表を参照し、各属性についてｎＲＴ（２００）の属性値範囲表（２３０）に記載された属性値範囲、すなわち該木構造が保持する全データ集合における属性値範囲Ｒ１と、描画対象ノードの属性値範囲表に記載された属性値範囲、すなわち描画対象ノード以下に保持するデータ集合における属性値範囲Ｒ２とを取得し、該領域において、関連付けられた該属性のＲ１に対するＲ２の範囲を描画する。本実施形態においては、該領域のうち、円錐の底面と接する点をＲ１の範囲の始点、円錐の頂点となる点をＲ１の範囲の終点とし、その中でＲ２の占める範囲を第８図に示すように斜線あるいは点線の網掛けで描画する。
【００５２】
例として、ｎＲＴ（２００）、ｎ１（２０１）を表す円錐の描画について記述する。
本実施形態におけるｎＲＴ（２００）を表す円錐においては、属性ｘについて、Ｒ１がｘ＝０〜１０に対し、Ｒ２も同様にｘ＝０〜１０であることから、属性ｘに関連付けられた該領域において全範囲を斜線の網掛けで描画する。属性ｙについては、Ｒ１がｙ＝０〜１０に対し、Ｒ２も同様にｙ＝０〜１０であることから、属性ｙに関連付けられた該領域において全範囲を点線の網掛けで描画する。これにより、第８図に示す側面情報描画イメージ（４０２）が描画される。
【００５３】
ｎ１（２０１）を描画対象とする場合には、属性ｘについて、Ｒ１がｘ＝０〜１０に対し、Ｒ２はｘ＝０〜５、すなわちＲ１の範囲に対してＲ２は０％〜５０％の部分の範囲となるため、属性ｘに関連付けられた該領域において、底面に近い方から０〜５０％の範囲を斜線の網掛けで描画する。属性ｙについては、Ｒ１がｙ＝０〜１０に対し、Ｒ２はｙ＝５〜１０、すなわちＲ１の範囲に対してＲ２は５０％〜１００％の部分の範囲となるため、属性ｙに関連付けられた該領域において、底面に近い方から５０％〜１００％の範囲を点線の網掛けで描画する。これにより、第９図に示す側面情報描画イメージ（４０３）が描画される。
【００５４】
なお、Ｒ１が０〜１０であり、かつＲ２が２〜４の場合には、底面に近い方から２０％〜４０％の範囲を斜線または点線の網掛けで描画することになる。
ただし、本発明はこれに限らず、円錐の頂点と接する点をＲ１の範囲の始点、円錐の底面となる点をＲ１の範囲の終点としても良く、範囲の描画に用いる網掛けを属性に関わらず斜線、または点線で統一しても良い。また、範囲の描画に属性ごとに異なる色彩を用いても良く、該色彩を半透明化させても良い。また、Ｒ１に対するＲ２の範囲を色彩の濃さ、あるいは輝度によって変化させることにより描画しても良い。
【００５５】
本発明における正規化は、本実施形態では、このように、描画対象ノードが下位にデータ集合に含まれる該領域に関連付けた属性の属性値範囲を、該検索木が含む全データ集合に含まれる該領域に関連付けた属性の属性値範囲の中で占める範囲に変換することを指す。
【００５６】
（錐体配置部１１２）
第１０図は本実施の形態における錐体配置部（１１２）が錐体配置処理（ステップ３０３）により描画対象ノードの子ノードを表す円錐の頂点を算出した際の、算出した座標を側面情報描画イメージ（４０４）上に示したものである。本図を用いて錐体配置処理（ステップ３０３）について説明する。
【００５７】
まず、錐体配置部（１１２）は、描画対象ノードを表す円錐の底面の基線と外周の交点を基点とし、この基点を１つ目の子ノードを表す円錐の頂点座標とする。例えば、描画対象ノードがｎＲＴ（２００）の場合、基線（４１１）と外周の交点（１００、０、０）が基点となる。
【００５８】
次に、錐体配置部（１１２）は、円錐の底面の中心角３６０度を子ノード数で分割し、分割した角度において円錐の底面の中心点から外周に向けて伸ばした直線と円錐の底面の外周の交点を各子ノードの頂点座標とする。このとき、子ノード数は描画対象ノードのポインタ表の行数により算出する。本実施形態におけるｎＲＴ（２００）を表す円錐においては、ｎＲＴ（２００）はｎ１（２０１）とｎ２（２０２）の２つの子ノードを有し、ポインタ表（２２０）の行数は２であるため、円錐の底面の中心角３６０度を２で分割する。この場合、ｎ１は基線（４１１）上の基点（１００、０、０）、ｎ２は基線（４１１）を基点（１００、０、０）から３６０度／２だけ回転したときの外周との交点（−１００、０、０）が頂点座標となる。
【００５９】
以上の描画処理を再帰的に実施することにより、検索木全体を描画することができる。このようにして描画された検索木は、ノード間の関連性を表すエッジを用いることなく、各ノードを表す円錐とその配置によって３次元的に検索木の木構造を表現し、さらに各ノードを表す円錐の側面の各領域上に該領域に関係づけられた属性に関する情報を表現し、さらに該領域に関係づけられた属性に関する情報として該円錐に対応するノードが下位に含むデータ集合に含まれる該属性の属性値範囲を表現しており、これにより各ノードが下位に含むデータ集合には、どの属性がどの程度の属性値範囲だけ含まれているかを俯瞰することが出来るという特徴を持つ。
【００６０】
（完成図）
第１１図は本実施の形態において、描画処理を再帰的に実施する検索木描画処理により
描画される検索木描画イメージ（４０５）を示す。本実施形態において描画された検索木は、このようにノード間の関連性を表すエッジを用いることなく、ｎＲＴ（２００）、ｎ１（２０１）、ｎ２（２０２）のノードを表す円錐とその配置によって３次元的に検索木の木構造を表現し、さらに各ノードを表す円錐の側面の各領域上に該領域に関係づけられた属性ｘと属性ｙに関する情報を表現し、さらに該領域に関係づけられた属性ｘと属性ｙに関する情報として該円錐に対応するノードが下位に含むデータ集合に含まれる属性ｘと属性ｙの属性値範囲を表現しており、これにより各ノードが下位に含むデータ集合には、属性ｘと属性ｙがどの程度の属性値範囲だけ含まれているかを俯瞰することが出来る。
【００６１】
なお、本実施形態では検索木描画部（１１４）がルートノードから再帰的に描画する例について説明したが、本発明はそれに限らず、検索木描画部（１１４）は任意のインナーノードから再帰的に描画することにより、該インナーノード以下の部分木のみを描画しても良い。また子ノードから親ノードへのポインタも各子ノードで管理することとすれば、リーフノードを起点として他のノードを描画することも可能である。
【００６２】
（回転角度算出部１１３を用いた回転処理）
さらに、検索木描画装置（１００）は、第１１図で示した描画イメージにおいて、各ノードを表す円錐の側面の各領域に描画された情報を、各円錐の頂点から底面に下した垂線を中心とし、回転角度算出部（１１３）が算出した角度だけ各円錐を回転させた側面情報描画イメージを再描画する回転処理を実行してもよい。
【００６３】
以下に本実施形態におけるその回転処理手順を示す。
検索木描画部（１１４）が検索木描画処理（ステップ３００）を実施した後、回転角度算出部（１１３）が以下の処理を行う。
回転角度算出部（１１３）は、一定期間毎に、木構造情報表（２１０）の回転角度Ｒの値を９０からΔずつ大きくした値に更新し、さらに検索木描画部（１１４）の検索木描画処理（ステップ３００）を呼び出す。
【００６４】
本実施形態においてはΔは５であり、一定期間経過後のＲは「Ｒ＝９０＋５」、すなわち９５となる。さらに一定期間経過後の木構造情報表（２１０）の回転角度Ｒは「Ｒ＝９５＋５」、すなわち１００となる。また本実施形態では３秒を該一定期間とする。すると本実施形態では、３秒経過毎に各領域に描画する情報を５度ずつ回転させて再描画されることとなる。
【００６５】
ただし本発明はこれに限らず、１秒毎に回転させて再描画しても良いし、ユーザからの操作命令を受け付け、操作命令を受け付けたタイミングで回転させて再描画しても良い。また回転角度Δはマイナスの値を取り、各領域に描画する情報を逆回転させて再描画しても良い。
【００６６】
また、回転処理は、検索木描画部（１１４）が検索木描画処理（ステップ３００）を実施し描画した木構造について、錐体描画処理（ステップ３０１）と錐体配置処理（ステップ３０３）により算出された各ノードを表す円錐の頂点座標、高さ、底面の半径を記憶しておくことで、各ノードについて側面情報描画処理（ステップ３０２）のみを再帰的に実行し、各領域に描画する情報を再描画しても良い。
【００６７】
このように、各ノードを表す円錐の側面の各領域に描画された情報を回転させて再描画することで、どの領域も前面に描画することを可能とする。これにより各錐体の側面に描画する全ての情報を容易に把握することが可能となり、またノード間で全情報を見比べることが可能となる。
【産業上の利用可能性】
【００６８】
本発明は情報通信産業に適用することができる。
【符号の説明】
【００６９】
１００：検索木描画装置
１０１：データ蓄積部
１１０：錐体描画部
１１１：側面情報描画部
１１２：錐体配置部
１１３：回転角度算出部
１１４：検索木描画部
１２０：データ集合
２００：ｎＲＴ
２０１：ｎ１
２０２：ｎ２
【図１】
2014041504.tif 000003
【図２】
2014041504.tif 000004
【図３】
2014041504.tif 000005
【図４】
2014041504.tif 000006
【図５】
2014041504.tif 000007
【図６】
2014041504.tif 000008
【図７】
2014041504.tif 000009
【図８】
2014041504.tif 000010
【図９】
2014041504.tif 000011
【図１０】
2014041504.tif 000012
【図１１】
2014041504.tif 000013