(57)【要約】【課題】辞書ファイルを簡略化すると共に辞書作成時の合成に要する計算時間を短縮する。【解決手段】論理演算ファイル１８に記載されているクラス間の論理演算により既存のクラスから新しいクラスに導入されるプロパティを決定し、決定されたプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイル１９として出力する。これにより、実際に全てのプロパティを継承やCase ofで輸入せずとも、そのクラス間の関係のみを演算子を用いて記述し、実際にインスタンスを作成する、つまりプロパティに従って実際のデータ値を入力するクラスのみ完全な階層型辞書ファイルに変換すればよいので、辞書ファイルを簡略化すると共に辞書作成時の合成に要する計算時間を短縮することができる。【選択図】        図７
2007087216.tif 000002
【特許請求の範囲】
【請求項１】
上位クラスから下位クラスへプロパティの継承を持つ階層型辞書におけるクラス間の論理演算を記載する論理演算ファイルを編集する演算ファイル編集手段と、
この演算ファイル編集手段により編集された前記論理演算ファイルを記憶する演算ファイル記憶手段と、
この演算ファイル記憶手段に記憶されている前記論理演算ファイルを評価して既存のクラスから新しいクラスに導入されるプロパティを決定する演算ファイル評価手段と、
この演算ファイル評価手段による評価結果である既存のクラスから新しいクラスに導入されるプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイルとして出力する辞書ファイル出力手段と、
この辞書ファイル出力手段により出力された前記階層型辞書ファイルを記憶部に記憶する辞書ファイル記憶手段と、
を備えることを特徴とする階層型辞書作成装置。
【請求項２】
前記階層型辞書ファイルを読み込む辞書ファイル入力手段を更に備え、
前記辞書ファイル出力手段は、前記辞書ファイル入力手段により読み込まれた前記階層型辞書ファイルと前記演算ファイル評価手段による評価結果である既存のクラスから新しいクラスに導入されるプロパティとを合わせ、前記階層型辞書ファイルとして出力する、
ことを特徴とする請求項１記載の階層型辞書作成装置。
【請求項３】
クラス間の論理演算に基づいて定義されたプロパティの輸入については、ISO13584規格に定義されるCase ofを用いたプロパティ毎の輸入形式に変換して前記階層型辞書ファイルとして出力する、
ことを特徴とする請求項１または２記載の階層型辞書作成装置。
【請求項４】
前記辞書ファイル出力手段は、画面上で前記演算ファイル評価手段による評価結果である既存のクラスから新しいクラスに導入されるプロパティに基づく階層型辞書データモデルに対する編集を許容する編集手段を更に備える、
ことを特徴とする請求項１ないし３のいずれか一記載の階層型辞書作成装置。
【請求項５】
既存の１つまたは複数のクラスから全部または一部のプロパティのみを集めた中間クラスを、既存のクラスとは独立に生成する中間クラス生成手段を更に備え、
前記演算ファイル評価手段は、前記中間クラスから新しいクラスに導入されるプロパティを決定する、
ことを特徴とする請求項１ないし４のいずれか一記載の階層型辞書作成装置。
【請求項６】
前記辞書ファイル出力手段は、クラス間の論理演算による被演算子に同一の識別子を持つプロパティが含まれることになった場合には、その旨を報知する、
ことを特徴とする請求項１ないし５のいずれか一記載の階層型辞書作成装置。
【請求項７】
前記辞書ファイル出力手段は、クラス間の論理演算による被演算子に同一の識別子を持つプロパティが含まれることになった場合には、共役プロパティの上位概念に相当する派生プロパティを定義し、当該派生プロパティと共役プロパティとの間を、前記派生プロパティを特殊化した下位プロパティとして前記共役プロパティを関係付ける、
ことを特徴とする請求項１ないし６のいずれか一記載の階層型辞書作成装置。
【請求項８】
前記辞書ファイル出力手段は、クラス間の論理演算による被演算子に同一の識別子を持つプロパティが含まれることになった場合であって、制約条件があるものに関しては、階層構造内で重複しない別の識別子である派生識別子を割り当てた派生プロパティを定義する、
ことを特徴とする請求項１ないし６のいずれか一記載の階層型辞書作成装置。
【請求項９】
前記辞書ファイル出力手段は、各クラスで利用可能なプロパティに対してそのプロパティ値をあてはめたデータ行から成っているコンテンツテーブル間の論理演算によってプロパティが重複することになった場合、演算を行ったコンテンツテーブルが所属するクラスの中のうち１つのクラスの下位クラスとして新たにクラスを設け、重複したプロパティについては、親クラス以外のクラスのコンテンツテーブルから出現したプロパティを派生プロパティとして新たに設けたクラスで定義する、
ことを特徴とする請求項１ないし６のいずれか一記載の階層型辞書作成装置。
【請求項１０】
前記辞書ファイル出力手段は、各クラスで利用可能なプロパティに対してそのプロパティ値をあてはめたデータ行から成っているコンテンツテーブル間の論理演算によってプロパティが重複することになった場合、演算元の両方のクラスとは全く別の位置に新たにクラスを設け、重複が生じたプロパティ両方に新規に派生識別子を与えて派生プロパティとして新たに設けたクラスで定義する、
ことを特徴とする請求項１ないし６のいずれか一記載の階層型辞書作成装置。
【請求項１１】
上位クラスから下位クラスへプロパティの継承を持つ階層型辞書におけるクラス間の論理演算を記載する論理演算ファイルを編集する演算ファイル編集機能と、
この演算ファイル編集機能により編集された前記論理演算ファイルを記憶する演算ファイル記憶機能と、
この演算ファイル記憶機能に記憶されている前記論理演算ファイルを評価して既存のクラスから新しいクラスに導入されるプロパティを決定する演算ファイル評価機能と、
この演算ファイル評価機能による評価結果である既存のクラスから新しいクラスに導入されるプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイルとして出力する辞書ファイル出力機能と、
この辞書ファイル出力機能により出力された前記階層型辞書ファイルを記憶部に記憶する辞書ファイル記憶機能と、
をコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
上位クラスから下位クラスへプロパティの継承を持つ階層型辞書におけるクラス間の論理演算を記載する論理演算ファイルを編集する演算ファイル編集工程と、
この演算ファイル編集工程により編集された前記論理演算ファイルを記憶する演算ファイル記憶工程と、
この演算ファイル記憶工程に記憶されている前記論理演算ファイルを評価して既存のクラスから新しいクラスに導入されるプロパティを決定する演算ファイル評価工程と、
この演算ファイル評価工程による評価結果である既存のクラスから新しいクラスに導入されるプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイルとして出力する辞書ファイル出力工程と、
この辞書ファイル出力工程により出力された前記階層型辞書ファイルを記憶部に記憶する辞書ファイル記憶工程と、
を含むことを特徴とする階層型辞書作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＸＭＬスキーマ、ＲＤＦ、ISO13584／IEC61360、もしくはＩＳＯ15926規格等に準拠する上位クラスから下位クラスへプロパティを継承する機能を持つ階層型辞書の記述や作成に用いられる階層型辞書作成装置、プログラムおよび階層型辞書作成方法に関する。
【背景技術】
【０００２】
オブジェクト指向データベース（ＯＯＤＢ）やオブジェクト・リレーショナル型データベース（ＯＲＤＢ）を代表とする階層型データベースでは、下位が上位分類のプロパティを継承する階層構造を持つ。この階層型データベースにおいては、継承に従って下位の分類ではプロパティが累増する。この上位分類のプロパティを下位に継承することは、通常「インヘリタンス」と呼ばれており、このような技術は多くの文献に記載されている。
【０００３】
また、オブジェクト指向データベースにおいては、階層中の分類は「クラス」と呼ばれることが多い。一方、オブジェクト・リレーショナル型データベース（ＯＲＤＢ）においては、継承を許したテーブルがこれに相当し、上下関係を持つテーブル間において、上位のテーブルから下位のテーブルへ属性（プロパティ）、すなわち上位テーブルを構成するコラムのヘッダ情報が下位テーブルへ継承される。各階層の分類に属する同じ属性種を持つデータを「インスタンス」と呼び、その集合をデータの「ポピュレーション」と呼ぶ。データのポピュレーションは、関係データベース（ＲＤＢ）あるいはＯＲＤＢにおいては、テーブルと呼ばれる構造に格納されるのが普通である。テーブルにおいてそれを構成する属性の並びをテーブルのヘッダと呼ぶ。
【０００４】
階層型データベースの１つとしては、製品情報を電子的に提供する電子カタログシステムを実装するための国際規格であるISO13584 Parts Library規格（以下、ＰＬＩＢ規格という）がある。このＰＬＩＢ規格は、複数の“Part"（通常、「分冊」と訳される）からなる製品あるいは部品ライブラリデータに関するオブジェクト指向的な記述の方法とその交換ファイル形式のセマンティックス、すなわち、どのような用語や記述方式およびデータ型を用いるかを定める国際規格である。ＰＬＩＢ規格のPart42（分冊第４２）はIEC61360-2（分冊第２）と内容が共通している。この規格は、オブジェクト指向的に製品を分類し、個々の分類を特徴付ける属性群を明らかにし、分類に対するコンテンツをファイル交換する仕組みであるので、勿論、属性の継承の概念はこの中に含まれている。また、この規格はISO6523"Structure for Identification of organizations and organization parts"を引用して作られており、特に、ISO6523の定めるICD（International Code Designator）を活用して属性に対して世界的に一意な識別子を割り振ることが可能である。
【０００５】
近年においては、ＰＬＩＢ規格に準拠したシステムがいくつか提案されている（特許文献１，２）。
【０００６】
【特許文献１】特開２００４−１７７９９６号公報
【特許文献２】特開２００４−１７８０１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上述したようなＰＬＩＢ規格では、クラス間のプロパティの継承関係や輸入関係を予め記載した詳細な辞書を作成しておくようにしている。
【０００８】
しかしながら、このようにクラス間のプロパティの継承関係や輸入関係を予め記載した詳細な辞書を作成しておくことは手間と時間がかかるとともに、継承の記述や個々のプロパティの輸入に関する詳細な規則や方法をユーザが把握する必要がある。また、データ辞書中のプロパティの輸入に関する記述量が増加するという問題もある。
【０００９】
本発明は、上記に鑑みてなされたものであって、辞書ファイルを簡略化すると共に辞書作成時の合成に要する計算時間を短縮することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明の階層型辞書作成装置は、上位クラスから下位クラスへプロパティの継承を持つ階層型辞書におけるクラス間の論理演算を記載する論理演算ファイルを編集する演算ファイル編集手段と、この演算ファイル編集手段により編集された前記論理演算ファイルを記憶する演算ファイル記憶手段と、この演算ファイル記憶手段に記憶されている前記論理演算ファイルを評価して既存のクラスから新しいクラスに導入されるプロパティを決定する演算ファイル評価手段と、この演算ファイル評価手段による評価結果である既存のクラスから新しいクラスに導入されるプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイルとして出力する辞書ファイル出力手段と、この辞書ファイル出力手段により出力された前記階層型辞書ファイルを記憶部に記憶する辞書ファイル記憶手段と、を備える。
【００１１】
また、本発明のプログラムは、上位クラスから下位クラスへプロパティの継承を持つ階層型辞書におけるクラス間の論理演算を記載する論理演算ファイルを編集する演算ファイル編集機能と、この演算ファイル編集機能により編集された前記論理演算ファイルを記憶する演算ファイル記憶機能と、この演算ファイル記憶機能に記憶されている前記論理演算ファイルを評価して既存のクラスから新しいクラスに導入されるプロパティを決定する演算ファイル評価機能と、この演算ファイル評価機能による評価結果である既存のクラスから新しいクラスに導入されるプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイルとして出力する辞書ファイル出力機能と、この辞書ファイル出力機能により出力された前記階層型辞書ファイルを記憶部に記憶する辞書ファイル記憶機能と、をコンピュータに実行させる。
【００１２】
また、本発明の階層型辞書作成方法は、上位クラスから下位クラスへプロパティの継承を持つ階層型辞書におけるクラス間の論理演算を記載する論理演算ファイルを編集する演算ファイル編集工程と、この演算ファイル編集工程により編集された前記論理演算ファイルを記憶する演算ファイル記憶工程と、この演算ファイル記憶工程に記憶されている前記論理演算ファイルを評価して既存のクラスから新しいクラスに導入されるプロパティを決定する演算ファイル評価工程と、この演算ファイル評価工程による評価結果である既存のクラスから新しいクラスに導入されるプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイルとして出力する辞書ファイル出力工程と、この辞書ファイル出力工程により出力された前記階層型辞書ファイルを記憶部に記憶する辞書ファイル記憶工程と、を含む。
【発明の効果】
【００１３】
本発明によれば、論理演算ファイルに記載されているクラス間の論理演算により既存のクラスから新しいクラスに導入されるプロパティを決定し、決定されたプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイルとして出力することにより、実際に全てのプロパティを継承やCase ofで輸入せずとも、そのクラス間の関係のみを演算子を用いて記述し、実際にインスタンスを作成する、つまりプロパティに従って実際のデータ値を入力するクラスのみ完全な階層型辞書ファイルに変換すればよいので、従来のクラス間のプロパティの継承関係や輸入関係を予め記述する方法に比べて、クラス間のプロパティの継承関係や輸入関係を予め記載した詳細な辞書を作成しておく手間と時間を省き、継承の記述や個々のプロパティの輸入に関する詳細な規則や方法をユーザが把握する必要がなくなると共に、辞書中のプロパティの輸入に関する記述量を削減することが可能になる。すなわち、辞書ファイルを簡略化すると共に辞書作成時の合成に要する計算時間を短縮することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかる階層型辞書作成装置、階層型辞書作成プログラムおよび階層型辞書作成方法の最良な実施の形態を詳細に説明する。
【００１５】
［第１の実施の形態］
［１．階層型辞書について］
最初に、本実施の形態の前提となる、製品情報を電子的に提供する電子カタログシステムに用いられる階層型辞書について説明する。
【００１６】
図１は、階層型辞書の構成の一例を示す説明図である。図１に示す階層型データベースである階層型辞書は、複数の階層に分かれている。そして、各階層は、１又は２以上の分類項目を有しており、下位が上位の属性（プロパティ）を継承する性質を持つ。したがって、下位の階層の分類項目の属性は、上位の階層の分類項目の属性を継承する。ここで、階層型の分類項目はクラスと呼ばれ、各クラスは属性を持つ。図１に示す階層型辞書は、多重継承を含む一般的なクラス間の属性継承関係を示している。クラスはＡ０、Ｂ０、Ｂ１、Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｄ１で示され、属性はＰ０〜Ｐ７で示される。クラスＣ３においては、その親クラスＢ１から属性Ｐ０とＰ４を継承し、別の親クラスＤ１から属性Ｐ７を継承する。属性Ｐ６は、クラスＣ３において独自に定義された属性である。クラスＡ０とクラスＤ１は、独立したクラスである。ユニバーサルルート（Universal Root）は、全てのルートクラスを仮想的に含む全体クラスである。これは通常数学で言う「全体集合」に相当するものと考えられる。すなわち、全体クラスでは、継承すべき属性を特に含んでおらず、属性を持たないため、全てのルートクラスの親クラスとして扱うことが可能になる。
【００１７】
製品情報を電子的に提供する電子カタログシステムを実装するための国際規格であるＰＬＩＢ規格（ISO13584 parts Library）は、製品分類やその属性に用いる階層構造は単純木構造である。したがって、上位クラス（親クラス）は１つしか存在しない。親クラス以外の属性を継承する場合には、Case Of（「ケースオブ」）という属性の輸入（引用）のための特別な構造が用いられる。この構造は、図１の多重継承を、例えば番号の一番若い親クラスを主系列とするなどにより主系列と副系列に適宜分け、副系列に対してCase Ofという別名を与えた例とみなすことができる。また、ＯＲＤＢや一般的なオブジェクト指向データベースにおいては、全てのテーブルやクラスに親テーブル及び親クラスがあるわけではない。しかし、独立に存在するテーブルやクラスについても、図１に示すように、仮想的な「ユニバーサルルート」を設定することにより、全てのクラスをただ１つのルートからたどることが可能になり、単純木と変わらなくなる。
【００１８】
図２は、単純木を用いたＰＬＩＢ規格の階層型辞書の構成の一例を示す説明図である。図２に示すＰＬＩＢ規格の階層型辞書は、ユニバーサルルートを持たない。図２において、Ａ０、Ｂ０、Ｂ１、Ｃ０、Ｃ１、Ｃ２の木構造の部分は、分類階層を含む情報を表現する。本実施の形態では木は単純木であり、クラスには１つの上位クラスしかない。
【００１９】
図２において、クラスＡ０は下位クラスＢ０とＢ１を持つ。クラスＢ０は、下位クラスＣ０及びＣ１を持ち、クラスＢ１は下位クラスＣ２およびＣ３を持つ。それぞれの製品クラスは属性項目を持ち、上位クラスの属性は下位クラスに継承される。図２中、コンテンツ１２１、１２２、１２３及び１２４は実際の製品データである。例えば、コンテンツ１２１は、Ｃ０という種類の製品データである。このコンテンツ１２１は、３種類分のコンテンツデータである。すなわち、コンテンツ１２１は、属性項目Ｐ０の属性値としてｘ１、ｘ２と、属性項目Ｐ１の属性値としてｙ１、ｙ２と、属性項目Ｐ２の属性値としてｚ１、ｚ２とを持つ。
【００２０】
なお、図１のコンテンツ１１１〜１１４は、図２のコンテンツ１２１〜１２４と同様の性質を持つ。
【００２１】
辞書のクラスと属性は、それぞれのアトリビュートによって定義されている。ここで、「アトリビュート」とは、クラスや属性に詳細情報を規定するための情報フィールドである。クラスに所属する「属性」との混同を避けるために、クラスや属性の詳細情報フィールドを「アトリビュート」と呼んで本明細書の記述では区別する。クラスには、図３に示すように、クラスタイプ（class type）、クラス名（code）、親クラス（superclass）、標準名称（preferred name）などのアトリビュートが定義されている。属性には、図４に示すように、属性コード（code）、定義クラス（definition class）、データ型（data type）、標準名称（preferred name）などのアトリビュートが定義されている。
【００２２】
クラス及び属性を定義するアトリビュートは、PLIB定義に従って、内容のフォーマット、内容に対して編集可・不可（図３、図４に示すAdd、Modify、Delete）、内容の必須・オプショナル（図３、図４に示すObligation）などを決める。
【００２３】
［２．システムの構成］
本発明の第１の実施の形態について詳細に説明する。図５は、第１の実施の形態に係る階層型辞書作成装置を含むシステムのシステム構築例を示す模式図である。本システムは、図５に示すように、階層型辞書作成装置であるサーバコンピュータ（以下、サーバという）１にＬＡＮ（Local Area Network）等のネットワーク２を介して端末装置であるクライアントコンピュータ（以下、クライアント端末という）３が複数台接続されたサーバクライアントシステムを想定する。クライアント端末３は、一般的なパーソナルコンピュータ等である。
【００２４】
図６は、サーバ１のモジュール構成図である。サーバ１は、情報処理を行うＣＰＵ（Central Processing Unit）１０１、ＢＩＯＳなどを記憶した読出し専用メモリであるＲＯＭ（Read Only Memory）１０２、各種データを書換え可能に記憶するＲＡＭ（Random Access Memory）１０３、各種データベースとして機能するとともに各種のプログラムを格納するＨＤＤ（Hard Disk Drive）１０４、記憶媒体１１０を用いて情報を保管したり外部に情報を配布したり外部から情報を入手するためのＣＤ−ＲＯＭドライブ等の媒体駆動装置１０５、ネットワーク２を介して外部の他のコンピュータと通信により情報を伝達するための通信制御装置１０６、処理経過や結果等を操作者に表示するＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等の表示装置１０７、並びに操作者がＣＰＵ１０１に命令や情報等を入力するためのキーボードやマウス等の入力装置１０８等から構成されており、これらの各部間で送受信されるデータをバスコントローラ１０９が調停して動作する。
【００２５】
このようなサーバ１では、ユーザが電源を投入するとＣＰＵ１０１がＲＯＭ１０２内のローダーというプログラムを起動させ、ＨＤＤ１０４よりＯＳ（Operating System）というコンピュータのハードウェアとソフトウェアとを管理するプログラムをＲＡＭ１０３に読み込み、このＯＳを起動させる。このようなＯＳは、ユーザの操作に応じてプログラムを起動したり、情報を読み込んだり、保存を行ったりする。ＯＳのうち代表的なものとしては、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）等が知られている。これらのＯＳ上で走る動作プログラムをアプリケーションプログラムと呼んでいる。なお、アプリケーションプログラムは、所定のＯＳ上で動作するものに限らず、後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００２６】
ここで、サーバ１は、アプリケーションプログラムとして、階層型辞書作成プログラムをＨＤＤ１０４に記憶している。この意味で、ＨＤＤ１０４は、階層型辞書作成プログラムを記憶する記憶媒体として機能する。
【００２７】
また、一般的には、サーバ１のＨＤＤ１０４にインストールされる動作プログラムは、ＣＤ−ＲＯＭやＤＶＤなどの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク、半導体メモリ等の各種方式のメディア等の記憶媒体１１０に記録され、この記憶媒体１１０に記録された動作プログラムがＨＤＤ１０４にインストールされる。このため、ＣＤ−ＲＯＭ等の光情報記録メディアやＦＤ等の磁気メディア等の可搬性を有する記憶媒体１１０も、階層型辞書作成プログラムを記憶する記憶媒体となり得る。さらには、階層型辞書作成プログラムは、例えば通信制御装置１０６を介して外部から取り込まれ、ＨＤＤ１０４にインストールされても良い。
【００２８】
サーバ１は、ＯＳ上で動作する階層型辞書作成プログラムが起動すると、この階層型辞書作成プログラムに従い、ＣＰＵ１０１が各種の演算処理を実行して各部を集中的に制御する。サーバ１のＣＰＵ１０１が実行する各種の演算処理のうち、本実施の形態の特長的な処理について以下に説明する。
【００２９】
図７は、サーバ１の概略構成を示すブロック図である。図７に示すように、サーバ１は、階層型辞書作成プログラムに従うことにより、論理演算ファイル入力部１１と、演算ファイル評価手段として機能する論理演算式評価部１２と、データモデル生成部１３と、PLIBファイル出力部１４と、演算ファイル編集手段として機能する論理式エディタ部１５と、論理ファイル出力部１６と、辞書ファイル入力手段として機能するPLIBファイル入力部１７と、を備える。なお、クラス間の論理演算（ブール演算）を記載する論理演算ファイル１８、およびPLIB所定のファイル形式（ISO10303-21、あるいはPLIBデータモデルを表すXMLファイルなど）の階層型辞書ファイルであるPLIB形式辞書ファイル１９は、記憶部であるＲＡＭ１０３またはＨＤＤ１０４に格納されている。以下、各機能について説明する。
【００３０】
論理演算ファイル入力部１１は、クラス間の論理演算ファイル１８の入力部である。読み込まれたクラス間の論理演算ファイル１８は、論理演算式評価部１２において評価され、評価結果がデータモデル生成部１３に出力される。
【００３１】
データモデル生成部１３は、論理演算式評価部１２における評価結果をPLIBのデータモデルに置換する。このようにしてデータモデル生成部１３で作成されたデータモデルは、PLIBファイル出力部１４からPLIB所定のファイル形式（ISO10303-21、あるいはPLIBデータモデルを表すXMLファイルなど）で出力され、PLIB形式辞書ファイル１９としてＲＡＭ１０３またはＨＤＤ１０４に格納される。ここに、辞書ファイル記憶手段の機能が実行される。また、データモデル生成部１３およびPLIBファイル出力部１４により辞書ファイル出力手段が実現されている。
【００３２】
一方、論理式エディタ部１５は、クラス間の論理演算ファイル１８をテキストとして、あるいは編集手段として機能するGUI（Graphical User Interface）を利用して編集する。論理式エディタ部１５で編集されたクラス間の論理演算ファイル１８は、PLIBファイル出力部１４から出力され、ＲＡＭ１０３またはＨＤＤ１０４に格納される。ここに、演算ファイル記憶手段の機能が実行される。
【００３３】
上述したように、基本的にはクラス間の論理演算ファイル１８を変換することにより、新たなPLIB形式辞書ファイル１９が生成されるが、既存のPLIB形式辞書ファイル１９をPLIBファイル入力部１７により読み込み、別に、論理演算式評価部１２によって評価済みのクラス間の論理演算ファイル１８に記載されている情報と合わせ、データモデル生成部１３において新しいPLIBデータモデルとして合成した後、PLIBファイル出力部１４により、新たなPLIB形式辞書ファイル１９を出力してもよい。
【００３４】
［３．クラス間の論理演算（ブール演算）を記載する論理演算ファイル］
ここで、クラス間の論理演算（ブール演算）を記載する論理演算ファイル１８について詳述する。
【００３５】
［３−１．クラス間のブール演算によるプロパティの合成］
まず、クラス間のブール演算によるプロパティの合成について説明する。本実施の形態においては、上位・下位クラスの概念によるプロパティの継承およびCase of等による個々のプロパティの輸入（部分継承と呼んでもよい）の代わりに、クラス間のブール演算を用いて新しいクラスを定義し、継承されるプロパティ以外のプロパティを輸入する。
【００３６】
数学的なクラスについては、“Thomas Jeck, "Set Theory", Springer Verlag 1997”によれば、以下のようにクラス間のブール演算が与えられる。すなわち、Ｃ1がクラス１を表し、φ1（ｘ）がクラス１が満たすべきプロパティの条件を表すとするとき、クラス間の積（インターセクション）、和（ユニオン）、差（サブトラクション）は、それぞれ下記に示す式１〜式３、
【数１】
2007087216.tif 000003
により定義されている。
【００３７】
ここで、クラス１のプロパティ条件が、
【数２】
2007087216.tif 000004
として表され、同様にクラス２のプロパティ条件が、
【数３】
2007087216.tif 000005
のように、式１を書き換えることができる。
【００３８】
すなわち、クラス１とクラス２の論理積とは、クラス１の持つプロパティとクラス２の持つプロパティの全てを持つクラスを意味する。故に、クラス間のブール積演算により他のクラスの持つプロパティを全て輸入することができる。
【００３９】
複数個のクラスの論理積の連結については、プロパティが夫々独立であれば、
【数４】
2007087216.tif 000006
であるから、この演算を他のクラス、即ち、クラス２、クラス３、クラス４と順次繰り返すことにより、任意個のクラスのプロパティを併せ持つクラスをブール演算により生成することが可能となる。
【００４０】
ブール演算式による他クラスのプロパティの導入は、クラス間の単純な積のみにより論理式が構成される場合には等価なサブクラスの概念に置換することも可能であるが、両者は常に等価ではない。即ち、ブール演算式による記述には差演算を含むことができるが、差演算の結果生成されるクラスは常に何れかのクラスのサブクラスとなるわけではない。
【００４１】
なお、ブール演算はブーリアン演算とも呼ばれるが、クラスがインスタンス、即ちそのメンバーを明らかに持つ場合には、クラスは集合と等価と考えられ、所謂、集合演算と考えられる。しかしながら、ここに記載のクラス間のブール演算では、特に演算後のクラスの持つプロパティ条件に着目するものであり、データベースで広く用いられているSQL言語の基礎とする関係代数におけるメンバー（タプル）の集合積、集合和、集合差の定式化と混同してはならない。何故なら、関係データベースにおいては、基本的に集合演算は、同じプロパティを持つテーブル間のメンバー（タプル）の共通集合、和集合、差集合を求めるに過ぎない。また、唯一異なるプロパティを持つテーブル間の演算であるJoin演算は、一般に直積として表されるが、厳密には２つのテーブルの持つプロパティの集合の順序対（ペア）であり、２つのテーブルＴａ，Ｔｂに対してその順番を変えたJoinの結果である<Ｔａ，Ｔｂ>と、<Ｔｂ，Ｔａ>は異なる型のテーブルを生成する。
【００４２】
一方、クラス間集合演算では、論理積により生成される新しいクラスにおいては、Ｃ1∩Ｃ2とＣ2∩Ｃ1は一般に等しい。なぜなら、両者は、同じプロパティの組を持つからである。
【００４３】
なお、集合演算については、下記の関係式が成り立つ。即ち、論理差は、式３により各プロパティの否定（補集合）として表現すると、論理積に置き換えられるから、“□”を論理積または論理和とし、Ｃiをクラスとすると、
【数５】
2007087216.tif 000007
が成り立つ。
【００４４】
また、論理積と論理和の間には、分配法則が成り立つ。
【数６】
2007087216.tif 000008
【００４５】
新しいクラスは、既存辞書の１つまたは複数のクラスの（オブジェクト指向データモデリングにおける）下位クラスとして定義することも可能であるが、オブジェクト指向におけるクラス間のプロパティの継承の概念とは独立に、輸入するプロパティを提供する１つまたは複数のクラスを被演算子とするブール演算式を新しいクラスの属性として記録した全く新しい概念に基づくクラスとして、クラスツリーのルートの直下に設けるか、或いは、既存の基準辞書中のクラス（以下、「基準クラス」と呼ぶ）とは別なカテゴリーに属する「アプリケーション・クラス」として設けることも可能である。いずれの場合も、実際に新しいクラスに他クラスより導入されるプロパティは、新しいクラスに属性として記録されたブール演算式を評価する時点において決定され、オブジェクト指向におけるクラス間の単純継承・多重継承を利用した直接的なプロパティの継承関係とは異なる。
【００４６】
すなわち、データ辞書において全てのクラス間の継承関係を記述することや個々のプロパティの輸入情報を予め記述することは必要不可欠の条件ではなく、実際のコンテンツの作成を行うクラスについて、そのインスタンスを入力する際にプロパティの全仕様が明確になっていればよい。従って、実際にそのデータ辞書に基づくデータを作成する際、あるいは実際のデータ入力用のテンプレートを作成する際に、辞書中のクラスに記載されたブール演算式を評価して、該既存辞書中の演算式の参照するクラスから導入すべきプロパティを決定しその情報を収集してデータの作成・入力に必要な全ての情報が結合されたデータ入力形式に変換して表示、保存し、ユーザのプロパティ値の入力用に提供すればよい。但し、ブール代数あるいは論理式を記述するための構造、一般にプログラム言語には、∧、∨、¬等の論理記号は提供されない（簡単にキーボードから入力できない）ため、簡便に論理式を情報構造として直接表すためには、上記の記号を積（＊）、和（＋）、符号（−）等に置換して文字列として記録する必要がある。
【００４７】
なお、上述したようなクラス間のブール演算に基づくプロパティの輸入、すなわち新しいクラスの直接の上位クラスより継承されるプロパティ以外については、必要に応じて、ISO13584に定義されるCase ofを用いた個別のプロパティの輸入形式に変換してファイルに出力する。これにより、ISO13584に準拠する外部システムとの辞書の互換性を確保する機能を提供することができる。ISO13584においては、基本的に単純継承であり、親クラスは１つしか存在しない。あるクラスＣ１で親クラスＣ２以外のクラスＣ３のプロパティを必要とする場合は、Ｃ１を予めＣ３のCase ofとして宣言しなければならない。従って、本発明に従って記載されたクラス間の論理演算よりISO13584に準拠する辞書を作成する場合には、具体的には、上位クラスからの継承によらないプロパティは全て、Case ofを用いて輸入されたものとして扱う。
【００４８】
［３−２．集合演算の記録］
集合演算を記憶する方法には、大きく分けて２つの方式がある。１つは、上述した式６および式７を利用して、クラスの論理積と論理和に分解し、これをあるルールに従って、再構成する方法（保存方式１）である。即ち、
【数７】
2007087216.tif 000009
により形式化されるように、まず論理積により相互に結合されたクラスを構成成分毎にリストに纏め（式６中では、（）で括られるｊ番目の論理積式の固まりにはｍ個のクラスが論理積により結合されている）、その結合されたクラスの塊を項とする論理和を列挙する方式である。式６中ではｊを与え、それらを１つの単位としてその個数分（ｎ個）を論理和のリストで示すにより積と和からなるブール代数式を一定の形式で記録することが可能になる。
【００４９】
もう１つの方法（保存方式２）は、図８に示すようなクラス間の論理演算を上位ノードとし、クラスを葉とするようなツリー状に演算を記録する方式である。図８に示す論理演算ツリーは、
【数８】
2007087216.tif 000010
に等しい。
【００５０】
通常辞書に記載された全てのクラスにコンテンツデータ（インスタンス）を入力する訳ではない。従って、前述の２つの方式によるクラス間の論理式により記録する方法は、従来のクラス間のプロパティの継承関係や輸入関係を予め記述する方法に比べて、クラス間のプロパティの継承関係や輸入関係を予め記載した詳細な辞書を作成しておく手間と時間を省き、継承の記述や個々のプロパティの輸入に関する詳細な規則や方法をユーザが把握する必要がなくなると共に、データ辞書中のプロパティの輸入に関する記述量を削減することが可能になる。
【００５１】
ここで、図９は保存方式１によるクラス間の論理演算ファイル１８の記述例を示したものである。すなわち、式８に記載の制約を満たす形で、図８相当のクラスＣ１、Ｃ２、Ｃ３、Ｃ４間の論理関係が記載されている。ここでは、Ｃ３とＣ３の積はＣ３であることに注意する。論理演算式評価部１２で行う処理は、式９により与えられる直接的なクラス間の演算式ツリーの情報を式８の形式に変換することである。これは、式６−１および式７の関係式を用いて式を変形することにより得ることができる。
【００５２】
また、図１０は保存方式２によるクラス間の論理演算ファイル１８の記述例を示したものである。図８相当のクラスＣ１、Ｃ２、Ｃ３、Ｃ４間の論理関係が、クラス間の演算子のツリーを表現するデータとして分解され直接的に記載されている。ファイル中“＃”と数字で示されるものは式の項あるいはリスト中の文番号であるが、例えば＃１で示される式は、更に＃２と＃３の積になっており、＃２は＃４と＃５の和、また＃３は＃５と＃６の積になっている。このように、式の右辺に含まれる文番号（もしくは項番号）をたどることにより、結局クラス間の演算子のツリーのある項から下を全てたどることができる。
【００５３】
［４．論理式エディタ部１５における論理演算ファイル１８の編集］
ここで、論理式エディタ部１５における論理演算ファイル１８の編集について詳述する。前述したように、論理式エディタ部１５は、クラス間の論理演算ファイル１８をテキストとして、あるいはGUI（Graphical User Interface）を利用して、積演算による新しいクラスの生成および派生プロパティと新しい識別子（BSU（Basic Semantic Unit））の生成を行う。
【００５４】
図１１は、クラス間のブール演算を指示するためのGUIの実装例を示している。２１は、クラス間の積演算および和演算を支持するためのボタンの例であり、２２は、クラス図の例である。図１２は、例えば、演算の結果を一方の演算子の下位クラスとして作成するためのGUIの実施例である。図１２中、まず、Inter（積演算）ボタン２１ａを選択しておいて、タイヤクラスを選択し、次に、セダンクラスを選択することにより、タイヤクラスからセダンクラスへの矢印がクラス図中に描かれる。実際にセダンクラスの下に演算後のクラスを生成する場合には、Create（生成）ボタン２１ｂを選択して決定する。図１２中では、ボタンの色と、矢印の色が対応しているが、この他、文字の色を対応させたり、同じ色のマークを表示したり、あるいは図１３に示すように被演算子となるクラスを太文字や斜線、修飾をつけるなどして明示することができる。勿論この中で、例えば下線等を用いて、あるいは図１４に示すように異なるマーク等を表示することにより、実際にサブクラスを生成するクラス（輸入先）とそうではないクラスを明示的に区別して示しても良い。
【００５５】
図１５は、図１２を指示方式の１例とした場合に、セダンとタイヤのクラス間の積演算を行い、その結果をセダンクラスの下に作成するように指示した場合の結果を示す実施例である。図１５中セダンクラスの下には、「セダン＆タイヤ」というクラスが自動的に作成されている。勿論自動的に作成されるクラスの名称は、「セダンandタイヤ」でも良いし、「セダン＊タイヤ」でもよい。またこの名称は、作成者が入力して設定もしくは変更可能なようにGUIを用意してもよい。
【００５６】
図１６は、何れか一方のクラスの下ではなく、前述したように、通常のクラスとは別に「アプリケーション・クラス」として、合成クラスをルートの下に直接作成する場合の実施例を示している。勿論、ユーザが被演算子クラスの下に作るか、ルートの下に作るかを演算実施の都度あるいは事前に選択できるようにしてもよい。
【００５７】
また、図１７は、中間クラスをルートの下に作成する場合の実施例である。中間クラスは、既存辞書の１つまたは複数のクラスから全部または一部のプロパティのみを集めて生成したクラスである。中間クラスの作成ボタン（MidCls）２１ｃの選択により、まず中間クラスが既存のクラスとは独立に作成される。このクラスをプロパティを合成するためのパレットとして用いる。例えば、図１８に示すようなGUI構成であれば、あるクラスを選択すると、そのクラスに属するプロパティリストが示されるから、このプロパティリストの中から、輸入するプロパティを選択すればよい。この輸入は、PLIB規格の場合は通常のCase ofと呼ぶ方法で親クラス外から個別にプロパティを導入することができる。勿論、多重継承が許されている場合には、この中間クラスへ複数の親クラスから全プロパティを輸入しても良い。ここに、中間クラス生成手段の機能が実行される。
【００５８】
図１９は、演算結果に従った結合後の状態を表示する際の実施例である。図１９に示す例では、演算後の結果をデータベースあるいはファイル中に保存するためのボタンとは別に、仮評価のボタン（Test）２１ｄを設けている。このTestボタン２１ｄをCreateボタン２１ｂの代わりに用いることにより、図２０に示すように、同じ識別子を持つプロパティが被演算子に含まれている場合には、合成クラス上で、それらのプロパティが衝突していることを示すマークを表示する。例えば、図２０中では、セダン（クラスBSU TOPAS_C1）にある「製造者」というプロパティＡとタイヤ（クラスBSU TOPAS_C2）にある「製造者」というプロパティＢが同じ“TOPAS_P1”というBSUを所有し衝突している状態をプロパティの背景色を変えることにより示している。この２つのプロパティは全く同一の定義であるが、勿論、それぞれどちらの被演算子クラスにあったものかを、存在クラス名や存在クラスのBSU（図２０のプロパティリストでは、Ｘの列）あるいは、クラス毎に背景色を変えることにより明示しても良い。
【００５９】
図２１は、衝突が検出されたプロパティについて、プロパティＢのプロパティの定義を変更した実施例である。即ち、プロパティの定義を「タイヤの製造者」に限定し、その定義クラスをタイヤ（TOPAS_C2）に変更し、新たなプロパティBSUとして“TOPAS_P8”を入力している。この新しいBSUは、システムが衝突のないよう自動発生してもよい。また、プロパティBSUを変更すると、親プロパティ（スーパープロパティ）がプロパティの定義の変更前のプロパティBSUの値に自動的に設定されるようにすることができる。
【００６０】
ここで、図２２は図２１に対応する派生プロパティと親プロパティ（スーパープロパティ）の関係の実施例である。派生プロパティは、SuperPropertyというフィールド３１を持ち、ここに親プロパティのBSUが記入されることにより、両者が関係付けられる。図２２に示す３２は、プロパティの定義クラスを示すフィールドである。
【００６１】
すなわち、新しいプロパティと元のプロパティ、或いはここでそれらをマッピング等により直接等価関係で結び、その情報をデータベース中あるいはファイル中に記録する代わりに、それらのプロパティの上位概念に相当する親プロパティ（スーパープロパティ）を定義するとともに、その親プロパティ（スーパープロパティ）と共役プロパティとの間を、共役プロパティを親プロパティ（スーパープロパティ）を特殊化した派生プロパティとして定義して、共に記録保存する。これにより、親プロパティ（スーパープロパティ）の名称と識別子をベースにして、派生プロパティ相互を同じプロパティとして扱う機能と、個々の元々のプロパティの名称と識別子をベースにして異なるプロパティとして扱う機能の両方の機能の同時実現を可能にするものである。
【００６２】
図２３は、衝突が検出されたプロパティについて、プロパティＢのプロパティの定義を変更し、プロパティＡも同時に変更した実施例である。すなわち、１プロパティの定義を「セダンの製造者」に限定し、その定義クラスをセダン（TOPAS_C1）に変更し、新たなプロパティBSUとして“TOPAS_P9”を入力している。また、衝突している他のプロパティを「タイヤの製造者」に限定し、その定義クラスをタイヤ（TOPAS_C2）に変更し、新たなプロパティBSUとして“TOPAS_P8”を入力している。なお、元々のプロパティは、“TOPAS_P1”として「セダン＆タイヤクラス」に残っているので積演算の前後でプロパティの関係式は成り立っている。
【００６３】
ここで、図２４は図２３に対応する派生プロパティと親プロパティ（スーパープロパティ）の関係の実施例である。図２３では２つのプロパティが派生プロパティとして生成されている。つまり、新しいプロパティの識別子（プロパティBSU）は、元のプロパティの特殊化（Specialization）として生成され、元のプロパティとの派生関係が基本的に図９もしくは図１０に示す方法により保存される。
【００６４】
このように一のプロパティの継承ないし輸入により生じた複数の同一の識別子を持つプロパティの識別に関して、その衝突の可能性を自動的あるいは半自動的に検出しGUI上でユーザに視覚的に区別して提供することにより、プロパティの派生をユーザが確認することを求め、プロパティの派生による新たな識別子を自動的ないし半自動的に設定し、元プロパティと派生プロパティの関係を記録し、派生プロパティ相互を同じプロパティとして扱うことができる。また、個々の元々のプロパティの名称と識別子をベースにして異なるプロパティとして扱うこともできる。ISO13584規格の場合には、２つのプロパティの異同は、下記の識別子を連結した式の差異により決定することが可能である。即ち、
情報サプライア識別子．クラス識別子．プロパティ識別子      ・・・  （式１０）
である。
【００６５】
しかしながら、上記中のクラス識別子とは、プロパティの元々定義されたクラスの識別子であり、本発明に説明する実際にプロパティを輸出したクラスの識別子や、実際に輸入したクラスの識別子とは異なる。
【００６６】
このように本実施の形態によれば、論理演算ファイルに記載されているクラス間の論理演算により既存のクラスから新しいクラスに導入されるプロパティを決定し、決定されたプロパティを階層型辞書データモデルに置換して所定形式の階層型辞書ファイルとして出力する。これにより、実際に全てのプロパティを継承やCase ofで輸入せずとも、そのクラス間の関係のみを演算子を用いて記述し、実際にインスタンスを作成する、つまりプロパティに従って実際のデータ値を入力するクラスのみ完全な階層型辞書ファイルに変換すればよいので、従来のクラス間のプロパティの継承関係や輸入関係を予め記述する方法に比べて、クラス間のプロパティの継承関係や輸入関係を予め記載した詳細な辞書を作成しておく手間と時間を省き、継承の記述や個々のプロパティの輸入に関する詳細な規則や方法をユーザが把握する必要がなくなると共に、辞書中のプロパティの輸入に関する記述量を削減することが可能になる。すなわち、辞書ファイルを簡略化すると共に辞書作成時の合成に要する計算時間を短縮することができる。
【００６７】
なお、図２５は２つのクラス間の積集合演算ではなく、３つのクラス間の積集合演算により新しいクラスを生成する際のGUIの実施例である。図２６はそれに対する結果の例である。勿論、図１６に示したように、ルートクラスの下に直接演算後のクラスを作成しても良いことは言うまでもない。
【００６８】
また、勿論このようにして作成したクラス間の集合演算ツリーは、いつでも実際の継承やCase of（部分継承）関係に変換して出力することが可能であることは言うまでもない。
【００６９】
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。なお、前述した第１の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００７０】
第１の実施の形態では、衝突が検出されたプロパティについて、そのプロパティの上位概念に相当するスーパー・プロパティを定義するようにしたが、本実施の形態においては、同じ識別子を持つ複数のプロパティが既存辞書の既存クラスに存在しそのプロパティの実際の値の取る範囲が、構造上もしくは意味上もしくは実際の値域の分析もしくは外部から与えられた情報により、元々の定義におけるプロパティの値域より制限ないし制約されていると考えられる場合に、それらの既存クラスより輸入するプロパティに別な識別子を自動的にあるいはユーザの指定により与えて相互に区別可能にしたものである。
【００７１】
図２７は、本実施の形態の階層構造の例を示す説明図である。図２７においては、実線四角はクラスを表し、破線楕円はそのクラスで定義されているプロパティ群を表す。また、網掛けの破線楕円は、上位クラスから継承したプロパティに対して下位クラスでつけられた制約条件を表す。クラスやプロパティは、その名称のほかに識別子を持っているものとする。識別子は、クラスやプロパティが少なくとも階層構造内で一意であることを保障するものである。なお、本発明が対象としている階層型データベースにISO13584／IEC61360がある。これらの場合には、クラスやプロパティの識別子は世界で唯一のBSU（Basic Semantic Unit）コードが使われている。
【００７２】
図２７においては、例えば、プロパティ「P001：製造者名」の識別子は「P001」、名称は「製造者名」である。
【００７３】
クラス間の関係は、例えば、クラス「C010：輸送用製品」はクラス「C001：製品」の下位クラスであり、「C001：製品」で定義されているプロパティ「P001：製造者名」「P002：製品名」を継承する。これらのプロパティは、「C010：輸送用製品」の下位クラス「C011：自動車」にも継承される。「C011：自動車」には自クラスで定義したプロパティ「P011：排気量」「P012：適合タイヤサイズ」「P013：車両の高さ」が存在するため、クラス「C011：自動車」で利用可能なプロパティは、継承したものを合わせたP001、P002、P011、P012、P013の５つとなる。
【００７４】
さて、クラス「C012：自動二輪」の下位クラスには、「C013：大型自動二輪」「C014：普通自動二輪」「C015：小型普通自動二輪」の３つのクラスが存在する。この３つのクラスでは、「C011：自動車」から継承したプロパティ「P011：排気量」について、制約条件が与えられている。通常では、制約条件が異なっていても、同じ識別子のまま取り扱う場合が多いが、本実施の形態においては、階層構造のデータベースへの入力時に、制約条件があるものに関しては、自動的に階層構造内で重複しない別の識別子（派生識別子）を割り当てる。派生識別子を割り当てる対象範囲（クラス）やタイミングは、個別にユーザが指定してもよい。
【００７５】
本実施の形態においては、３つのクラスで与えられているすべての制約条件付きプロパティに対して、派生識別子を与えるものとする。図２７にもあるように、プロパティ「P011：排気量」は、クラス「C013：大型自動二輪」では新しい派生識別子P011Xを割り当てられた「P011X：排気量」に、クラス「C014：普通自動二輪」では新しい派生識別子P011Yを割り当てられた「P011Y：排気量」に、クラス「C015：小型自動二輪」では新しい派生識別子P011Zを割り当てられた「P011Z：排気量」として扱われる。それぞれ、制約がついたため、派生識別子が割り当てられたが、本来は「P011：排気量」として扱われるべきものであり、例えば、クラス「C011：自動車」以下のクラスに対して、P011＝1500ccという条件で検索を行った場合、検索結果としては、図２８の例のように、クラス「C013：大型自動二輪」のコンテンツテーブルから、“P011X"＝1500（cc）である二行目のコンテンツａが、クラス「C018：普通自動車」のコンテンツテーブルから、“Ｐ011"=1500（cc）である一行目のコンテンツｂが選ばれる。図２８の検索結果表の一番左の列は、検索結果がもともと所属していたクラスを表す。
【００７６】
図２９は、元の識別子と派生識別子の関係をデータベース内（あるいはファイル内）に記述した例である。この関係をデータベース（あるいはファイル）から参照して、検索時に同じプロパティとして扱うことが可能となる。また、同様に、図２９の関係を使って、「C011：自動車」から派生識別子“P011X"=1500（cc）の条件で探しても、図２８の検索結果を得ることができてもよい。
【００７７】
図３０は、クラス「C012：自動二輪」における検索条件設定画面の表示例である。「P011：排気量」は定義されているクラスではそのままであるが、下位クラスにおいては、条件が設定されているため別の派生識別子が与えられている。これらの情報を、「C012：自動二輪」の検索画面のプロパティ表示において、一緒に表示してやることにより、識別子が異なっていても同じものとして検索することが、より明確になる。
【００７８】
図３０では、例えば、派生プロパティも検索対象として扱うかどうか選択式になっており、チェックボタンＢ１のON／OFFにより切り替える。また、「見る」ボタンＢ２を押すことにより、別ウィンドウが開き、派生プロパティの情報を見ることができる。
【００７９】
なお、この例では、派生プロパティも検索対象とするかどうかを一括で選択しているが、個々の派生プロパティについて指定してもよい。また、検索条件設定画面でなく、別の画面であっても、その派生プロパティを持つ（あるいは派生プロパティ）が表示されている画面において、ポップアップやバルーンなどの方法で仲間のプロパティを表示することができればよい。
【００８０】
［第３の実施の形態］
次に、本発明の第３の実施の形態について説明する。なお、前述した第１の実施の形態または第２の実施の形態と同じ部分は同じ符号で示し説明も省略する。
【００８１】
図３１は、本実施の形態の階層構造の例を示す説明図である。図３１においては、実線四角はクラスを表し、破線楕円はそのクラスで定義されているプロパティ群を表す。クラスやプロパティは、その名称のほかに識別子を持っているとする。識別子は、クラスやプロパティが少なくとも階層構造内で一意であることを保障するものである。
【００８２】
ここで、図３２は分類「C011：自動車」のコンテンツテーブル例、図３３は分類「C091：タイヤ」のコンテンツテーブル例である。コンテンツテーブルとは、各分類において、その分類で利用可能な属性に対して、その属性値をあてはめた製品データ行から成っている。コンテンツテーブルは、リレーショナルデータベースのテーブルの構造と同様であり、テーブル間での演算も可能である。
【００８３】
図３４は、図３２および図３３のコンテンツテーブル間で結合演算を行った結果の例である。すなわち、図３４は、図３２のコンテンツテーブルをT01、図３３のコンテンツテーブルをT02とした場合、
select * from T01, T02 where T01.P012=T01.P092 （SQL文）
の結果である。
【００８４】
通常のリレーショナルデータベースにおいて、スキーマの列名は、そのテーブルの中だけで閉じており、他のテーブルのスキーマに同じ列名があったとしても、名称が同じというだけでは、テーブル間でのスキーマ列の同等性は保障されていない。スキーマの列は、名称以外には、単位を含むデータ型等の情報を持っているだけである。本発明における階層型データベースにおいては、スキーマの列に相当する属性には、名称やデータ型のほか、属性を世界で一意に表すコード、定義、定義出典、注記など多くの情報が定義されている。属性は一意に識別されるため、異なるテーブル間でも、この属性のコードが同一であれば全く同じ属性であることが保障されている。すなわち、演算を行って得られた結果について、スキーマの列名が重複している場合、一方あるいは双方の列名を変更し、重複をなくしてテーブルとすることができる。
【００８５】
しかしながら、階層型データベースにおいては、演算を行って得られた結果の属性が重複している場合、ただ属性名称（あるいは属性の識別子）を変更しただけでは以下のような問題が生じる。
１.もともと同一だった属性であったことが保障されなくなる。
２．階層構造のクラスに所属するコンテンツテーブルとするためには属性名称の変更ではなく、新たな属性として階層構造上に定義する必要がある。
３．結果コンテンツテーブルに必要な属性を全て持っているクラスにコンテンツテーブルをおかなければならない。
以下において、これらを解決するための手段を記述する。
【００８６】
（手段１）
手段１としては、演算を行ったコンテンツテーブルが所属するクラスの中のうち１つのクラスの下位クラスとして新たにクラスを設ける。重複した属性については、親クラス以外のクラスのテーブルから出現した属性を新規属性として、新たに設けたクラスで定義する。
【００８７】
図３１〜図３４の例の場合、演算結果テーブルを保存するためのクラス「C100：販売自動車」を、「C010：自動車」の下位クラスとして設ける。さらに、「C100：販売自動車」に「C091：タイヤ」からタイヤ固有の属性、「P091：外径」を輸入する。また、新たに、「P001K：製造者名」「P002L：製品名」というプロパティを定義する。演算結果は、新規クラス「C100：販売自動車」に図３５に示すように格納される。新規クラスで定義した新規属性は、元の属性から派生したものであることを示すために、例えば、図３５のようにGUI上でその情報を示す。図３５は派生プロパティと元のプロパティの背景色を同じにして表現した例である。また、派生プロパティに識別子付近にカーソルを置くと、ポップアップで元プロパティと他の派生プロパティの情報を図のように表示することもできる。
【００８８】
また、図３６に示すように、この場合の関係をデータベース（あるいはファイル）に情報として保持するようにする。プロパティの重複による派生であるため、出自が重要となるため、情報には出自である派生元クラスの情報も必要となる。
【００８９】
このように、関係は少し異なるが、派生したプロパティと元のプロパティに関する取り扱いは、前述した図２９などと同様に考えることができる。
【００９０】
図３７は、ISO13584などでデータ交換フォーマットとしてPart21フォーマットを利用して、EXPRESSで派生関係を持たせた（記述した）例である。＃100で始まる行は、元プロパティ「P001：製造者名」を、＃200で始まる行は派生したプロパティ「P001K：製造者名」を表している。両者を＃300で始まる行で結び付け、さらに‘duplication'で派生関係が演算結果後の重複によるものであることを示す。
【００９１】
なお、#300で始まる行で表されているプロパティ間の関係については、別ファイル等で補足的に付加することもできる。
【００９２】
（手段２）
手段２としては、演算元の両方のクラスとは全く別の位置に新規のクラスを作り、重複が生じたプロパティ両方に新規に派生識別子を与える方法も考えられる。
【００９３】
図３８は手段２を用いて階層を拡張した例である。この場合は、プロパティ「P001K：製造者名」「P001M：製造者名」「P002L：製品名」「P002N：製品名」の４つのプロパティが新規クラスで派生プロパティとして定義され、その他のプロパティに関しては、演算元のクラスより輸入（部分継承）される。図３９は、この場合の関係を保存したデータベース（あるいはファイル）である。
【図面の簡単な説明】
【００９４】
【図１】本実施の形態の前提となる階層型辞書の構成の一例を示す説明図である。
【図２】単純木を用いたＰＬＩＢ規格の階層型辞書の構成の一例を示す説明図である。
【図３】クラスに関係する辞書修正ルールの一例を示す説明図である。
【図４】属性に関係する辞書修正ルールの一例を示す説明図である。
【図５】本発明の第１の実施の形態に係る階層型辞書作成装置を含むシステムのシステム構築例を示す模式図である。
【図６】サーバのモジュール構成図である。
【図７】サーバの概略構成を示すブロック図である。
【図８】論理演算子ツリーの一例を示す説明図である。
【図９】保存方式１によるクラス間の論理演算ファイルの記述例を示す説明図である。
【図１０】保存方式２によるクラス間の論理演算ファイルの記述例を示す説明図である。
【図１１】クラス間のブール演算を指示するためのGUIの実装例を示す正面図である。
【図１２】演算の結果を一方の演算子の下位クラスとして作成するためのGUIの実施例を示す正面図である。
【図１３】被演算子となるクラスの明示例を示す正面図である。
【図１４】被演算子となるクラスの別の明示例を示す正面図である。
【図１５】クラス間の積演算結果の実施例を示す正面図である。
【図１６】合成クラスをルートの下に作成する場合の実施例を示す正面図である。
【図１７】中間クラスをルートの下に作成する場合の実施例を示す正面図である。
【図１８】クラス情報及びプロパティリストを含むGUIの実装例を示す正面図である。
【図１９】演算結果に従った結合後の状態を表示する際の実施例を示す正面図である。
【図２０】テスト合成結果の表示例を示す正面図である。
【図２１】テスト実施後の派生プロパティの作成例を示す正面図である。
【図２２】図２１に対応する派生プロパティと親プロパティ（スーパープロパティ）の関係の実施例を示す説明図である。
【図２３】衝突が検出されたプロパティについて、プロパティＢのプロパティの定義を変更し、プロパティＡも同時に変更した実施例を示す正面図である。
【図２４】図２３に対応する派生プロパティと親プロパティ（スーパープロパティ）の関係の実施例を示す説明図である。
【図２５】３つのクラス間の積集合演算により新しいクラスを生成する際のGUIの実施例を示す正面図である。
【図２６】３つのクラス間の積演算結果の実施例を示す正面図である。
【図２７】本発明の第２の実施の形態に係る階層構造の例を示す説明図である。
【図２８】各クラスのコンテンツテーブルおよび検索結果の例を示す説明図である。
【図２９】元の識別子と派生識別子の関係の記述例を示す説明図である。
【図３０】クラス「C012：自動二輪」における検索条件設定画面の表示例を示す説明図である。
【図３１】本発明の第３の実施の形態に係る階層構造の例を示す説明図である。
【図３２】分類「C011：自動車」のコンテンツテーブル例を示す説明図である。
【図３３】分類「C091：タイヤ」のコンテンツテーブル例を示す説明図である。
【図３４】図３２および図３３のコンテンツテーブル間で結合演算を行った結果の例を示す説明図である。
【図３５】演算を行ったコンテンツテーブルが所属するクラスの中のうち１つのクラスの下位クラスとして新たにクラスを設ける例を示す説明図である。
【図３６】派生プロパティの情報を示す説明図である。
【図３７】Part21フォーマットを利用してEXPRESSで派生関係を記述した例を示す説明図である。
【図３８】演算元の両方のクラスとは全く別の位置に新規のクラスを作り、重複が生じたプロパティ両方に新規に派生識別子を与える例を示す説明図である。
【図３９】派生プロパティの情報を示す説明図である。
【符号の説明】
【００９５】
１      階層型辞書作成装置
１２    演算ファイル評価手段
１３，１４    辞書ファイル出力手段
１５    演算ファイル編集手段
１８    論理演算ファイル
１９    階層型辞書ファイル
【図１】
2007087216.tif 000011
【図２】
2007087216.tif 000012
【図３】
2007087216.tif 000013
【図４】
2007087216.tif 000014
【図５】
2007087216.tif 000015
【図６】
2007087216.tif 000016
【図７】
2007087216.tif 000017
【図８】
2007087216.tif 000018
【図９】
2007087216.tif 000019
【図１０】
2007087216.tif 000020
【図１１】
2007087216.tif 000021
【図１２】
2007087216.tif 000022
【図１３】
2007087216.tif 000023
【図１４】
2007087216.tif 000024
【図１５】
2007087216.tif 000025
【図１６】
2007087216.tif 000026
【図１７】
2007087216.tif 000027
【図１８】
2007087216.tif 000028
【図１９】
2007087216.tif 000029
【図２０】
2007087216.tif 000030
【図２１】
2007087216.tif 000031
【図２２】
2007087216.tif 000032
【図２３】
2007087216.tif 000033
【図２４】
2007087216.tif 000034
【図２５】
2007087216.tif 000035
【図２６】
2007087216.tif 000036
【図２７】
2007087216.tif 000037
【図２８】
2007087216.tif 000038
【図２９】
2007087216.tif 000039
【図３０】
2007087216.tif 000040
【図３１】
2007087216.tif 000041
【図３２】
2007087216.tif 000042
【図３３】
2007087216.tif 000043
【図３４】
2007087216.tif 000044
【図３５】
2007087216.tif 000045
【図３６】
2007087216.tif 000046
【図３７】
2007087216.tif 000047
【図３８】
2007087216.tif 000048
【図３９】
2007087216.tif 000049