(57)【要約】データベースの構造を変更することなく、様々な種類の関連データの追加が容易なデータベース装置などを提供する。見出ノード（Ｔノード）と、関連ノード（Ａノート）とが関連付けられ、関連付けられたＴノードとＡノードとの間には、関連性役割Ｒが定義される。さらに、ＴノードおよびＡノードそれぞれには、識別子（ＩＤ）と、その属性（ノードタイプ）と、名称（ノード名）とが付される。このような構成を採るデータは、互いに関連付けられたそれぞれ１つのＡノードおよびＴノードのＩＤと、これらの間に定義された関係性役割Ｒとをそれぞれ含むエントリから構成される関係・役割テーブル（ＡＲテーブル）と、ＡノードおよびＴノードのＩＤ、属性および名称とをそれぞれ含む識別子テーブル（ＩＤテーブル）に記憶され、検索の用に供される。
2004097679.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の関連ノードと、１つ以上の見出ノードとを関連付けてデータベースとするデータベース装置であって、前記関連ノードそれぞれは、１つ以上の前記見出ノードと関連付けられ、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対しては、これらの間の関連を示す関連属性が定義され、
関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを作成する第１のエントリ作成手段と、
前記作成された第１のエントリ１つ以上を記憶する第１のデータベースと
を有するデータベース装置。
【請求項２】
前記関連付けられた関連ノードと見出ノードとの間に定義される関連属性は、これらの間に定義される役割を示す
請求の範囲第１項に記載のデータベース装置。
【請求項３】
前記見出ノードそれぞれに対しては、この見出ノードの内容を示す見出内容が定義され、
前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれ含む第２のエントリを作成する第２のエントリ作成手段と、
前記作成された第２のエントリ１つ以上を記憶する第２のデータベースと
をさらに有する請求の範囲第１項に記載のデータベース装置。
【請求項４】
見出内容は、見出ノードの名称を含む
請求の範囲第３項に記載のデータベース装置。
【請求項５】
前記関連ノードそれぞれに対しては、この関連ノードの属性を示す関連ノード属性が定義され、
前記関連ノードのいずれかを示す識別子と、この関連ノードの関連ノード属性とを含む第３のエントリを作成する第３のエントリ作成手段と、
前記作成された第３のエントリ１つ以上を記憶する第３のデータベースと
をさらに有する請求の範囲第３項に記載のデータベース装置。
【請求項６】
見出ノードそれぞれには、この見出ノードの属性を示す見出属性がさらに定義され、
前記第２のエントリ作成手段は、見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容および見出属性とを、それぞれ含む第２のエントリを作成する
請求の範囲第１項に記載のデータベース装置。
【請求項７】
見出ノードは、１つ以上の関連ノードと関連付けられ、見出ノードが、複数の関連ノードと関連付けられたときには、これら複数の関連ノードは、これらに関連付けられた見出ノードを介して互いに関連付けられ、
前記第２のデータベースは、これらの関連ノードと関連付けられた複数の見出ノードの識別子と見出内容とを、これらの見出ノードの識別子を含む複数の第２のエントリの集合として記憶する
請求の範囲第３項に記載のデータベース装置。
【請求項８】
見出ノードは、１つ以上の関連ノードと関連付けられ、見出ノードが、複数の関連ノードと関連付けられたときには、これら複数の関連ノードは、これらに関連付けられた見出ノードを介して互いに関連付けられ、
前記第２のデータベースは、これらの関連ノードと関連付けられた複数の見出ノードの識別子と見出内容と見出属性とを、これらの見出ノードの識別子を含む複数の第２のエントリの集合として記憶する
請求の範囲第６項に記載のデータベース装置。
【請求項９】
見出ノードは、１つ以上の関連ノードと関連付けられ、見出ノードが、複数の関連ノードと関連付けられたときには、これら複数の関連ノードは、これらに関連付けられた見出ノードを介して互いに関連付けられ、
前記第１のデータベースは、これらの関連ノードと、これらの関連ノードと関連付けられた複数の見出ノードとの関連を、これらの関連ノードの識別子を含む複数の第１のエントリの集合として記憶する
請求の範囲第１項に記載のデータベース装置。
【請求項１０】
２つ以上の関連ノード間に共通の関連性があるときに、新たな関連ノードが設けられ、前記新たな関連ノードと前記関連ノード間に新たな見出ノードが設けられ、
前記新たな見出ノードと前記関連ノードとの関係によって定められる第１の関連属性と、前記新たな見出ノードと前記新たな関連ノードとの関係によって定められる第２の関連属性とが定められ、
前記第１のエントリ作成手段は、前記関連ノードのいずれかを示す識別子と、前記新たな見出ノードのいずれかを示す識別子と、前記第１の関連属性とを含む第１のエントリ１つ以上を作成し、前記新たな関連ノードのいずれかを示す識別子と、前記新たな見出ノードのいずれかを示す識別子と、前記第２の関連属性とを含む第１のエントリ１つ以上を作成し、
前記第１のデータベースは、前記作成された第１のエントリを記憶する
請求の範囲第５項に記載のデータベース装置。
【請求項１１】
前記新たな見出ノードには、この見出ノードの内容を示す見出内容と、この見出ノードの属性を示す見出属性とが定義され、
前記第２のエントリ作成手段は、前記新たな見出ノード識別子と、前記見出内容と、前記見出属性とを含む第２のエントリ１つ以上を作成し、
前記第２のデータベースは、前記作成された第２のエントリを記憶する
請求の範囲第１０項に記載の装置。
【請求項１２】
前記第３のエントリ作成手段は、前記関連ノードのいずれかを示す識別子と、その関連属性とを含む第３のエントリ１つ以上を作成し、
前記第３のデータベースは、前記作成された第３のエントリを記憶する
請求の範囲第１１項に記載の装置。
【請求項１３】
１つ以上の関連ノードと、１つ以上の見出ノードとを関連付けてデータベースを作成するデータベース作成方法であって、前記関連ノードそれぞれは、１つ以上の前記見出ノードと関連付けられ、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対しては、これらの間の関連を示す関連属性が定義され、
関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを作成する第１のエントリ作成ステップと、
前記作成された第１のエントリ１つ以上を、第１のデータベースに記憶する第１のエントリ記憶ステップと
を有するデータベース作成方法。
【請求項１４】
前記見出ノードそれぞれに対しては、この見出ノードの内容を示す見出内容が定義され、
前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれ含む第２のエントリを作成する第２のエントリ作成ステップと、
前記作成された第２のエントリ１つ以上を、第２のデータベースに記憶する第２のエントリ記憶ステップと
をさらに有する請求の範囲第１３項に記載のデータベース作成方法。
【請求項１５】
１つ以上の関連ノードと、１つ以上の見出ノードとを関連付けてデータベースを作成するプログラムであって、前記関連ノードそれぞれは、１つ以上の前記見出ノードと関連付けられ、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対しては、これらの間の関連を示す関連属性が定義され、
関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを作成する第１のエントリ作成ステップと、
前記作成された第１のエントリ１つ以上を、第１のデータベースに記憶する第１のエントリ記憶ステップと
をコンピュータに実行させるプログラム。
【請求項１６】
前記見出ノードそれぞれに対しては、この見出ノードの内容を示す見出内容が定義され、
前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれ含む第２のエントリを作成する第２のエントリ作成ステップと、
前記作成された第２のエントリ１つ以上を、第２のデータベースに記憶する第２のエントリ記憶ステップと
をさらにコンピュータに実行させる請求の範囲第１５項に記載のプログラム。
【請求項１７】
１つ以上の関連ノードと、関連ノードそれぞれに関連付けられた１つ以上の見出ノードと、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対して定義される関連属性とを記憶する第１のデータベースであって、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを１つ以上、記憶する第１のデータベースと、
前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれこの見出ノードのデータとして含む第２のエントリを１つ以上、記憶する第２のデータベースと
を検索するデータベース検索装置であって、
１つ以上の任意の見出内容および１つ以上の任意の関連属性を示す第１の条件データと、検索の目的とされる見出ノードの第２の関連属性を１つ以上、示す第２の条件データとを含む検索条件を受け入れる検索条件受入手段と、
前記受け入れられた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する検索手段と
を有するデータベース検索装置。
【請求項１８】
前記検索手段は、
（ａ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容であり、かつ、前記のいずれかを含む第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、
（ｂ）前記第１のデータベースを検索し、前記見出ノード識別子集合に属する見出ノード識別子のいずれかと、前記第１の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる関連ノードの識別子を含む関連ノード識別子集合を作成する処理と、
（ｃ）前記第１のデータベースを検索し、前記関連ノード識別子集合に属する識別子のいずれかと、前記第２の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる見出ノードの識別子の見出ノード識別子集合を作成する処理と、
（ｄ）前記第２のデータベースを検索し、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する処理と
を行う
請求の範囲第１７項に記載のデータベース検索装置。
【請求項１９】
前記（ｄ）の処理により得られる検索結果は、見出ノードの見出内容を含み、
（ｅ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容または前記検索結果に含まれ、かつ、前記見出内容のいずれかを含む第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、
前記（ｂ）〜（ｄ）の処理と
を、複数回、繰り返し、
最後の（ｄ）の処理において、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する
請求の範囲第１８項に記載のデータベース検索装置。
【請求項２０】
見出ノードそれぞれには、この見出ノードの属性を示す見出属性がさらに定義され、
前記第２のデータベースは、前記識別子と、前記見出内容と、前記見出属性とを、それぞれ含む第２のエントリを記憶し、
前記検索条件受入手段は、前記第１の条件データと、前記第２の条件データと、前記見出属性を示す第３の条件データとを含む検索条件を受け入れ、
前記検索手段は、前記受け入れた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する
請求の範囲第１９項に記載のデータベース検索装置。
【請求項２１】
前記検索手段は、
（ｆ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容であり、かつ、前記第２のエントリに含まれる見出内容と、前記第３の条件データが示す見出属性であり、かつ、前記第２のエントリに含まれる見出属性とを含む、第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、
（ｂ）前記第１のデータベースを検索し、前記見出ノード識別子集合に属する見出ノード識別子のいずれかと、前記第１の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる関連ノードの識別子を含む関連ノード識別子集合を作成する処理と、
（ｃ）前記第１のデータベースを検索し、前記関連ノード識別子集合に属する識別子のいずれかと、前記第２の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる見出ノードの識別子の見出ノード識別子集合を作成する処理と、
（ｄ）前記第２のデータベースを検索し、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する処理と
を行う
請求の範囲第１７項に記載のデータベース検索装置。
【請求項２２】
前記（ｄ）の処理により得られる検索結果は、見出ノードの見出内容および見出属性を含み、
（ｇ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容または前記検索結果に含まれる見出内容であり、かつ、前記第２のエントリに含まれる見出内容と、前記第３の条件データが示す見出属性または前記検索結果に含まれる見出属性であり、かつ、前記第２のエントリに含まれる見出属性とを含む、第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、
前記（ｂ）〜（ｄ）の処理と
を、複数回、繰り返し、
最後の（ｄ）の処理において、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する
請求の範囲第２１項に記載のデータベース検索装置。
【請求項２３】
前記関連ノードのいずれかを示す識別子と、この関連ノードの属性とをそれぞれ含むエントリを１つ以上記憶する第３のデータベースをさらに検索するデータベース検索装置であって、
前記検索条件受入手段は、前記関連ノードの属性を示す第４の条件データをさらに含む検索条件を受け入れ、
前記検索手段は、前記受け入れられた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースと前記第３のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する
請求の範囲第１７項に記載のデータベース検索装置。
【請求項２４】
前記第３のデータベースに記憶されたエントリの内、前記受け入れられた検索条件に含まれる第４の条件データが示す関連ノードの属性を含むエントリに含まれる関連ノードの識別子の集合を作成する識別子集合作成手段を
さらに有し、
前記検索手段は、前記作成された関連ノードの識別子の集合を用いて、前記検索の目的とされる見出ノードのデータを検索する
請求の範囲第２３項に記載のデータベース検索装置。
【請求項２５】
１つ以上の関連ノードと、関連ノードそれぞれに関連付けられた１つ以上の見出ノードと、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対して定義される関連属性とを記憶する第１のデータベースであって、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを１つ以上、記憶する第１のデータベースと、
前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれこの見出ノードのデータとして含む第２のエントリを１つ以上、記憶する第２のデータベースと
を検索するデータベース検索方法であって、
１つ以上の任意の見出内容および１つ以上の任意の関連属性を示す第１の条件データと、検索の目的とされる見出ノードの第２の関連属性を１つ以上、示す第２の条件データとを含む検索条件を受け入れる検索条件受入ステップと、
前記受け入れられた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する検索ステップと
を有するデータベース検索方法。
【請求項２６】
見出ノードそれぞれには、この見出ノードの属性を示す見出属性がさらに定義され、
前記第２のデータベースは、前記識別子と、前記見出内容と、前記見出属性とを、それぞれ含む第２のエントリを記憶し、
前記検索条件受入ステップは、前記第１の条件データと、前記第２の条件データと、前記見出属性を示す第３の条件データとを含む検索条件を受け入れ、
前記検索ステップは、前記受け入れた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する
請求の範囲第２５項に記載のデータベース検索方法。
【請求項２７】
１つ以上の関連ノードと、関連ノードそれぞれに関連付けられた１つ以上の見出ノードと、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対して定義される関連属性とを記憶する第１のデータベースであって、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを１つ以上、記憶する第１のデータベースと、
前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれこの見出ノードのデータとして含む第２のエントリを１つ以上、記憶する第２のデータベースと
を検索するプログラムであって、
１つ以上の任意の見出内容および１つ以上の任意の関連属性を示す第１の条件データと、検索の目的とされる見出ノードの第２の関連属性を１つ以上、示す第２の条件データとを含む検索条件を受け入れる検索条件受入ステップと、
前記受け入れられた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する検索ステップと
をコンピュータに実行させるプログラム。
【請求項２８】
見出ノードそれぞれには、この見出ノードの属性を示す見出属性がさらに定義され、
前記第２のデータベースは、前記識別子と、前記見出内容と、前記見出属性とを、それぞれ含む第２のエントリを記憶し、
前記検索条件受入ステップは、前記第１の条件データと、前記第２の条件データと、前記見出属性を示す第３の条件データとを含む検索条件を受け入れ、
前記検索ステップは、前記受け入れた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する
請求の範囲第２７項に記載のプログラム。
【請求項２９】
前記検索ステップは、
（ａ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容であり、かつ、前記のいずれかを含む第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、
（ｂ）前記第１のデータベースを検索し、前記見出ノード識別子集合に属する見出ノード識別子のいずれかと、前記第１の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる関連ノードの識別子を含む関連ノード識別子集合を作成する処理と、
（ｃ）前記第１のデータベースを検索し、前記関連ノード識別子集合に属する識別子のいずれかと、前記第２の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる見出ノードの識別子の見出ノード識別子集合を作成する処理と、
（ｄ）前記第２のデータベースを検索し、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する処理と
を行う
請求の範囲第２７項に記載のプログラム。
【発明の詳細な説明】
【技術分野】        本発明は、データを記憶する方法及び記憶するデータ構造に関する。
より詳細には、相互に関連性を持った一連のデータを記憶する方法及び記憶するデータ構造に関する。
【背景技術】        関連するデータを記憶し、記憶されたこのようなデータを検索するために、リレーショナル・データベースと呼ばれる装置が用いられている。
また、例えば、非特許文献１および特許文献１，２は、関連するデータを記憶する方法、および、記憶されたこのようなデータを検索する方法を開示する。
しかしながら、リレーショナル・データベースにおいて、完成されたデータベースの構造（スキーマ）を変更することは、容易ではない。
また、非特許文献１および特許文献１，２に開示されている方法では、データの記述内容が複雑になり、また、データの表記・格納方法が一意的ではない。
【非特許文献１】        Ｔｈｅ  Ａｓｓｏｃｉａｔｉｖｅ  Ｍｏｄｅｌ  ｏｆ  Ｄａｔａ  Ｗｈｉｔｅ  Ｐａｐｅｒ（Ｌａｚｙ  Ｓｏｆｔｗａｒｅ，Ｓｅｐｔｅｍｂｅｒ  ２０００）
【特許文献１】        特開２００１−２０９６４７号公報
【特許文献２】        国際公開公報ＷＯ  ００／２９９８０
【発明の開示】
【発明が解決しようとする課題】        本発明は、上述のような背景からなされたものであり、データベースの構造を変更することなく、様々な種類の関連データの追加が容易なデータベース装置、このようなデータベースを検索するデータベース検索装置およびこれらの方法を提供することを目的とする。
また、本発明は、データの記述が簡単で、データの表記および格納方法が一意的なデータベース装置、このようなデータベースを検索するデータベース検索装置およびこれらの方法を提供することを目的とする。
【課題を解決するための手段】        上記目的を達成するために、本発明にかかるデータベース装置は、１つ以上の関連ノードと、１つ以上の見出ノードとを関連付けてデータベースとするデータベース装置であって、前記関連ノードそれぞれは、１つ以上の前記見出ノードと関連付けられ、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対しては、これらの間の関連を示す関連属性が定義され、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを作成する第１のエントリ作成手段と、前記作成された第１のエントリ１つ以上を記憶する第１のデータベースとを有する。
好適には、前記関連付けられた関連ノードと見出ノードとの間に定義される関連属性は、これらの間に定義される役割を示す。
好適には、前記見出ノードそれぞれに対しては、この見出ノードの内容を示す見出内容が定義され、前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれ含む第２のエントリを作成する第２のエントリ作成手段と、前記作成された第２のエントリ１つ以上を記憶する第２のデータベースとをさらに有する。
好適には、見出内容は、見出ノードの名称を含む。
好適には、前記関連ノードそれぞれに対しては、この関連ノードの属性を示す関連ノード属性が定義され、前記関連ノードのいずれかを示す識別子と、この関連ノードの関連ノード属性とを含む第３のエントリを作成する第３のエントリ作成手段と、前記作成された第３のエントリ１つ以上を記憶する第３のデータベースとをさらに有する。
好適には、見出ノードそれぞれには、この見出ノードの属性を示す見出属性がさらに定義され、前記第２のエントリ作成手段は、見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容および見出属性とを、それぞれ含む第２のエントリを作成する。
好適には、見出ノードは、１つ以上の関連ノードと関連付けられ、見出ノードが、複数の関連ノードと関連付けられたときには、これら複数の関連ノードは、これらに関連付けられた見出ノードを介して互いに関連付けられ、前記第２のデータベースは、これらの関連ノードと関連付けられた複数の見出ノードの識別子と見出内容とを、これらの見出ノードの識別子を含む複数の第２のエントリの集合として記憶する。
好適には、見出ノードは、１つ以上の関連ノードと関連付けられ、見出ノードが、複数の関連ノードと関連付けられたときには、これら複数の関連ノードは、これらに関連付けられた見出ノードを介して互いに関連付けられ、前記第２のデータベースは、これらの関連ノードと関連付けられた複数の見出ノードの識別子と見出内容と見出属性とを、これらの見出ノードの識別子を含む複数の第２のエントリの集合として記憶する。
好適には、見出ノードは、１つ以上の関連ノードと関連付けられ、見出ノードが、複数の関連ノードと関連付けられたときには、これら複数の関連ノードは、これらに関連付けられた見出ノードを介して互いに関連付けられ、前記第１のデータベースは、これらの関連ノードと、これらの関連ノードと関連付けられた複数の見出ノードとの関連を、これらの関連ノードの識別子を含む複数の第１のエントリの集合として記憶する。
好適には、２つ以上の関連ノード間に共通の関連性があるときに、新たな関連ノードが設けられ、前記新たな関連ノードと前記関連ノード間に新たな見出ノードが設けられ、前記新たな見出ノードと前記関連ノードとの関係によって定められる第１の関連属性と、前記新たな見出ノードと前記新たな関連ノードとの関係によって定められる第２の関連属性とが定められ、前記第１のエントリ作成手段は、前記関連ノードのいずれかを示す識別子と、前記新たな見出ノードのいずれかを示す識別子と、前記第１の関連属性とを含む第１のエントリ１つ以上を作成し、前記新たな関連ノードのいずれかを示す識別子と、前記新たな見出ノードのいずれかを示す識別子と、前記第２の関連属性とを含む第１のエントリ１つ以上を作成し、前記第１のデータベースは、前記作成された第１のエントリを記憶する。
好適には、前記新たな見出ノードには、この見出ノードの内容を示す見出内容と、この見出ノードの属性を示す見出属性とが定義され、前記第２のエントリ作成手段は、前記新たな見出ノード識別子と、前記見出内容と、前記見出属性とを含む第２のエントリ１つ以上を作成し、前記第２のデータベースは、前記作成された第２のエントリを記憶する。
好適には、前記第３のエントリ作成手段は、前記関連ノードのいずれかを示す識別子と、その関連属性とを含む第３のエントリ１つ以上を作成し、前記第３のデータベースは、前記作成された第３のエントリを記憶する。
また、本発明にかかるデータベース作成方法は、１つ以上の関連ノードと、１つ以上の見出ノードとを関連付けてデータベースを作成するデータベース作成方法であって、前記関連ノードそれぞれは、１つ以上の前記見出ノードと関連付けられ、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対しては、これらの間の関連を示す関連属性が定義され、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを作成する第１のエントリ作成ステップと、前記作成された第１のエントリ１つ以上を、第１のデータベースに記憶する第１のエントリ記憶ステップとを有する。
また、本発明にかかる第１のプログラムは、１つ以上の関連ノードと、１つ以上の見出ノードとを関連付けてデータベースを作成するプログラムであって、前記関連ノードそれぞれは、１つ以上の前記見出ノードと関連付けられ、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対しては、これらの間の関連を示す関連属性が定義され、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを作成する第１のエントリ作成ステップと、前記作成された第１のエントリ１つ以上を、第１のデータベースに記憶する第１のエントリ記憶ステップとをコンピュータに実行させる。
また、本発明にかかるデータベース検索装置は、１つ以上の関連ノードと、関連ノードそれぞれに関連付けられた１つ以上の見出ノードと、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対して定義される関連属性とを記憶する第１のデータベースであって、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを１つ以上、記憶する第１のデータベースと、前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれこの見出ノードのデータとして含む第２のエントリを１つ以上、記憶する第２のデータベースとを検索するデータベース検索装置であって、１つ以上の任意の見出内容および１つ以上の任意の関連属性を示す第１の条件データと、検索の目的とされる見出ノードの第２の関連属性を１つ以上、示す第２の条件データとを含む検索条件を受け入れる検索条件受入手段と、前記受け入れられた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する検索手段とを有する。
好適には、前記検索手段は、（ａ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容であり、かつ、前記のいずれかを含む第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、（ｂ）前記第１のデータベースを検索し、前記見出ノード識別子集合に属する見出ノード識別子のいずれかと、前記第１の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる関連ノードの識別子を含む関連ノード識別子集合を作成する処理と、（ｃ）前記第１のデータベースを検索し、前記関連ノード識別子集合に属する識別子のいずれかと、前記第２の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる見出ノードの識別子の見出ノード識別子集合を作成する処理と、（ｄ）前記第２のデータベースを検索し、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する処理とを行う。
好適には、前記（ｄ）の処理により得られる検索結果は、見出ノードの見出内容を含み、（ｅ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容または前記検索結果に含まれ、かつ、前記見出内容のいずれかを含む第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、前記（ｂ）〜（ｄ）の処理とを、複数回、繰り返し、最後の（ｄ）の処理において、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する。
好適には、見出ノードそれぞれには、この見出ノードの属性を示す見出属性がさらに定義され、前記第２のデータベースは、前記識別子と、前記見出内容と、前記見出属性とを、それぞれ含む第２のエントリを記憶し、前記検索条件受入手段は、前記第１の条件データと、前記第２の条件データと、前記見出属性を示す第３の条件データとを含む検索条件を受け入れ、前記検索手段は、前記受け入れた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する。
好適には、前記検索手段は、（ｆ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容であり、かつ、前記第２のエントリに含まれる見出内容と、前記第３の条件データが示す見出属性であり、かつ、前記第２のエントリに含まれる見出属性とを含む第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、（ｂ）前記第１のデータベースを検索し、前記見出ノード識別子集合に属する見出ノード識別子のいずれかと、前記第１の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる関連ノードの識別子を含む関連ノード識別子集合を作成する処理と、（ｃ）前記第１のデータベースを検索し、前記関連ノード識別子集合に属する識別子のいずれかと、前記第２の条件データが示す関連属性のいずれかとを含む第１のエントリに含まれる見出ノードの識別子の見出ノード識別子集合を作成する処理と、（ｄ）前記第２のデータベースを検索し、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する処理とを行う。
好適には、前記（ｄ）の処理により得られる検索結果は、見出ノードの見出内容および見出属性を含み、（ｇ）前記第２のデータベースを検索し、前記第１の条件データが示す見出内容または前記検索結果に含まれる見出内容であり、かつ、前記第２のエントリに含まれる見出内容と、前記第３の条件データが示す見出属性または前記検索結果に含まれる見出属性であり、かつ、前記第２のエントリに含まれる見出属性とを含む第２のエントリに含まれる見出ノードの識別子を含む見出ノード識別子集合を作成する処理と、前記（ｂ）〜（ｄ）の処理とを、複数回、繰り返し、最後の（ｄ）の処理において、前記見出ノード識別子集合に属する識別子を含む第２のエントリに含まれるデータに基づいて、前記検索の目的とされる見出ノードの検索結果を作成する。
好適には、前記関連ノードのいずれかを示す識別子と、この関連ノードの属性とをそれぞれ含むエントリを１つ以上記憶する第３のデータベースをさらに検索するデータベース検索装置であって、前記検索条件受入手段は、前記関連ノードの属性を示す第４の条件データをさらに含む検索条件を受け入れ、前記検索手段は、前記受け入れられた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースと前記第３のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する。
好適には、前記第３のデータベースに記憶されたエントリの内、前記受け入れられた検索条件に含まれる第４の条件データが示す関連ノードの属性を含むエントリに含まれる関連ノードの識別子の集合を作成する識別子集合作成手段をさらに有し、前記検索手段は、前記作成された関連ノードの識別子の集合を用いて、前記検索の目的とされる見出ノードのデータを検索する。
また、本発明にかかるデータベース検索方法は、１つ以上の関連ノードと、関連ノードそれぞれに関連付けられた１つ以上の見出ノードと、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対して定義される関連属性とを記憶する第１のデータベースであって、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを１つ以上、記憶する第１のデータベースと、前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれこの見出ノードのデータとして含む第２のエントリを１つ以上、記憶する第２のデータベースとを検索するデータベース検索方法であって、１つ以上の任意の見出内容および１つ以上の任意の関連属性を示す第１の条件データと、検索の目的とされる見出ノードの第２の関連属性を１つ以上、示す第２の条件データとを含む検索条件を受け入れる検索条件受入ステップと、前記受け入れられた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する検索ステップとを有する。
また、本発明にかかる第２のプログラムは、１つ以上の関連ノードと、関連ノードそれぞれに関連付けられた１つ以上の見出ノードと、前記関連付けられた前記関連ノードと前記見出ノードとの間それぞれに対して定義される関連属性とを記憶する第１のデータベースであって、関連ノードのいずれかを示す識別子と、この関連ノードに関連付けられた見出ノードを示す識別子と、これら関連ノードと見出ノードとの間に対して定義された関連属性とを、それぞれ含む第１のエントリを１つ以上、記憶する第１のデータベースと、前記見出ノードのいずれかを示す識別子と、この見出ノードに対して定義された見出内容とを、それぞれこの見出ノードのデータとして含む第２のエントリを１つ以上、記憶する第２のデータベースとを検索するプログラムであって、１つ以上の任意の見出内容および１つ以上の任意の関連属性を示す第１の条件データと、検索の目的とされる見出ノードの第２の関連属性を１つ以上、示す第２の条件データとを含む検索条件を受け入れる検索条件受入ステップと、前記受け入れられた検索条件に基づいて、前記第１のデータベースと前記第２のデータベースとを検索し、前記検索の目的とされる見出ノードのデータを検索する検索ステップとをコンピュータに実行させる。
【発明の効果】        本発明によれば、データベースの構造を変更することなく、様々な種類の関連データの追加が容易なデータベース装置、このようなデータベースを検索するデータベース検索装置およびこれらの方法が得られる。
また、本発明によれば、データの記述が簡単で、データの表記および格納方法が一意的なデータベース装置、このようなデータベースを検索するデータベース検索装置およびこれらの方法が得られる。
【図面の簡単な説明】        図１は、本発明において関連性ネットワーク型データを変換する際のデータモデルを示す図である。
図２は、記憶の対象となる一連の関連性を有するｎ個のデータを、図１に示したデータモデルに従って変換したデータ構造を示す図である。
図３は、関連ノード間の関連性を表現する方法の一例を示す図である。
図４は、第１及び第２の例のデータをノード群及び各ノード間の関連を示すエッジ群を用いて表現した関連性ネットワーク型データの構造を示す図である。
図５は、本発明の好適実施例に関するブロック図である。
図６は、本発明にかかるデータベースシステム（ＤＢシステム）の構成を例示する図である。
図７は、図６に示したＤＢ装置およびＰＣのハードウエア構成を例示する図である。
図８は、図３（ａ）に例示したデータの関連を書き換えて示す図である。
図９は、図８に示したデータ構造を一般化して示す図である。
図１０は、図３（ｂ），図４に示したデータの関係を、一般化して示す図である。
図１１は、図９に示した構造を採るデータを記憶するために用いられる関連性役割（ＡＲ（Ａｓｓｏｃｉａｔｉｏｎ  Ｒｏｌｅ））テーブルを示す図である。
図１２は、図９に示した構造を採るデータを記憶するために用いられるＴノード用識別子（ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ））テーブルを示す図である。
図１３は、図９に示した構造を採るデータを記憶するために用いられるＡノード用識別子（ＩＤ）テーブルを示す図である。
図１４は、図６，図７に示したＤＢ装置におけるデータ検索方法を例示する図である。
図１５は、図６，図７に示したＤＢ装置における検索の全体的な処理（Ｓ２０）を示す第１のフローチャートである。
図１６は、図１５に示した検索フィルタに基づく関連ノードの選択処理（Ｓ２２）を示すフローチャートである。
図１７は、図１５，図１６に示したノードＩＤおよびノード名取得処理（Ｓ２４）を示すフローチャートである。
図１８は、図６，図７に示したＤＢ装置において実行されるＤＢプログラム２の構成を示す図である。
図１９は、図６，図７に示したＤＢ装置（ＤＢプログラム；図１８）に対して入力されるデータと、これに含まれるデータの検索に含まれる検索条件とを例示する図である。
図２０は、ＡＲエントリ作成部（図１８）およびＡＲＤＢ管理部により作成され、ＡＲＤＢに記憶されるＡＲテーブルを例示する図である。
図２１は、ＩＤエントリ作成部（図１８）およびＩＤＤＢ管理部により作成され、ＩＤＤＢに記憶されるＴノード用のＩＤテーブルを例示する図である。
図２２は、ＩＤエントリ作成部（図１８）およびＩＤＤＢ管理部により作成されるＡノードについてのＩＤテーブルを例示する図である。
図２３は、第２のＤＢシステムの構成を例示する図である。
【発明を実施するための最良の形態】        ［本発明がなされるに至った経緯］
本発明の理解を助けるために、まず、本発明がなされるに至った経緯を説明する。
様々な要素を含むデータを、効率的に収集し、それらのデータを記憶することが行われている。
記憶されたデータから、必要に応じてデータを読み出しこれらのデータを正確に再現することが望まれている。
一般に、直積集合Ａ×Ｂの部分集合Ｒ⊆Ａ×Ｂにおいて、順序対（ａ，ｂ）∈Ｒに対して、ａＲｂと表記すると、これは「ａはｂと関係Ｒを有する」ことを意味する。
簡単なデータの一例として、「作家シェークスピアは戯曲ハムレットを書いた。」を例にとる。
これらのデータは２項関係にあるので、「作家シェークスピア」＝ａ、Ｒ＝作者−作品、ｂ＝「戯曲ハムレット」と置くことにより、「作家シェークスピアは戯曲ハムレットを書いた。」なるデータが、「ａＲｂ」と表記される。
これらのデータは、データベースに記憶する際に、「ａ」、「Ｒ」及び「ｂ」として記憶され、データを読み出す場合にも一意に再現できる。
しかし、データの構成要素数が増えた場合は、すなわち２項関係ではなくｎ項関係になる場合には、これら関連性をもつ一連のデータはハイパーグラフ構造として表現され、処理は簡単ではない。
このため、一般にはｎ項関係を２項関係に分割して、それらの組合せとして表現し、データベースに記憶する手法がとられる。
第１の例として「作家シェークスピアは戯曲ハムレットを英国で１６００年頃書いた。」を例にとって説明する。
この例は４項関係を表したものであるが、２項関係に展開すると、４Ｃ２＝６であるので表１に示すように６つの２項関係の組合せとして表現される。
2004097679.tif 000003
すなわち、ｎが大きくなると、ｎ項関係を表現するためにｎＣ２なる数の２項関係の表現が必要となってしまう。
さらに、第２の例として「作家シェークスピアは戯曲十二夜を１６００年頃書いた。」を例として取り２項関係の組合せで表現すると、３項関係すなわちｎ＝３であるので、３Ｃ２＝３となり、表２に示すようになる。
2004097679.tif 000004
2004097679.tif 000005
ここで、第１の例の情報と第２の例の情報とが同じデータベースに記憶されている場合、「作家シェークスピア」−「作者−創作年代」−「１６００年頃」からなる同一の２項関係が記憶されるという問題が起こる。
また、上記第１及び第２の例として示された２項関係のうち、どれを組み合わせて元の情報を再現すればよいか判断できないという問題も生じる。
これらは２項関係毎に識別子を付ければ解消される問題であるが、データ構造や処理が煩雑になるという欠点がある。
２項以上のデータ構成要素を有するデータを記憶する方法としては、リレーショナル・データベースによる記憶方法が知られている。
これは、データ項目名（データ属性）が列に割り当てられたテーブルを定義・作成し、具体的なデータをテーブルの行に順次入力していくものである。
「作家シェークスピアは戯曲ハムレットを英国で１６００年頃書いた。」を例にとって説明する。
データ項目名としては、▲１▼「誰が」、▲２▼「何を」、▲３▼「何時」、▲４▼「どこで」、▲５▼「何故」、▲６▼「どのように」を指定することができる。
そしてこれらのデータ項目に対応して、▲１▼「作家シェークスピア」、▲２▼「戯曲ハムレット」、▲３▼「１６００年頃」、▲４▼「英国」、▲５▼「（ブランク）」、▲６▼「書いた」のデータを記憶することができる。
しかしながら、この方法では、次のような問題が生じる。
（１）データ項目名を、取得したデータに合わせて、後から追加することが簡単にはできない。定型の構成要素からなるデータの場合には、問題にはならないが、様々な構成要素を含むデータを入力する場合には、構成要素が増加するたびに、データ項目名を追加するためのスキーマの変更が必要となる。スキーマの変更はオンラインでデータの入力時には一般に困難である。
（２）後から追加することが簡単にはできないために、最初のデータベース構築時に、最大限のデータ項目数を挙げて、スキーマを構築することが考えられる。しかし入力する可能性の低いデータに対しても、データ項目としてスキーマを構築することは、メモリの使用効率が低くならざるを得ない。
このような問題を解決するために、従来の関係データモデルに代わるモデルとして、英国「Ｌａｚｙ  Ｓｏｆｔｗａｒｅ」社による「Ａｓｓｏｃｉａｔｉｖｅ  Ｍｏｄｅｌ  ｏｆ  Ｄａｔａ（データ関連モデル）」法によるデータ記憶方法が提案されている。
このデータモデルでは情報を事物と事物間の関連性と見なし、この関連性を「Ｓｏｕｒｃｅ−Ｖｅｒｂ−Ｔａｒｇｅｔ」構文で表現している。
これによれば、上記のリレーショナル・データベースによる記憶方法で生じる問題の幾つかは解消される。
しかし、複雑なデータ関係を取扱う場合には、データ間の関係の表現方法が、複雑となり直感的でないこと、及び２分木的な形式を用いてｎ項関係を表現するため表現が一意に定まらず、データベースにデータを記憶する際に、作業者の任意にデータの構造を変えることができるために、データをデータベースから読取り再現する場合に、正確に入力情報を再現できない場合が発生するという問題がある。
上記のように、従来、相互に関係のある複数のデータを記憶する方法としては、リレーショナル・データベースが知られていた。
これは、記憶しようとするデータ項目を予め定めておき、データ項目に該当するデータを記憶するものである。
データの関係が見易いという利点はあるもの、一旦構成されたデータベースのデータ項目を追加すること、すなわち、一旦構成されたデータベースの構造（スキーマ）を変更することは簡単ではない。
また後から追加したデータ項目に対応するデータは、従前から記憶されているデータに対して、空白エリアが生じメモリの使用効率が悪くなるという問題が生じている。
これに対して、Ｌａｚｙ  Ｓｏｆｔｗａｒｅ社が提唱しているデータ関連モデルでは、データ項目数を追加する場合の困難さ、及びメモリの使用効率の低下といった問題は解決されるものの、データの記述内容が複雑になりデータ構造を見ても直感的ではなく、データの表記・記憶方法が一意的でないといった別の問題が生じる。
本発明では、見出ノード群と各ノード間の関連性を示すエッジ群から構成される関連性ネットワーク型データに対して、関連性（エッジ）を新たに関連ノード（以下、本願明細書では「Ａノード」と呼ぶ。）とし、当該Ａノードと関連性のある見出ノード（以下、本願明細書では「Ｔノード」と呼ぶ。）がその関連において果たす役割（以下、本願明細書では「関連性役割」と呼ぶ。）を属性とするエッジから成るデータモデルを定義する（図１）。
このモデルに従って変換されたデータ構造から、１つのＡノードとＴノード、及びその間の関連性役割を基本構成要素として抽出し、これらを表３に示すようにリレーショナル・データベースにおいて定義される関連性役割テーブル（以下、本願明細書では「ＡＲテーブル」と呼ぶ。）の行（レコード）に対応付け、リレーショナル・データベース管理システムにより記憶・管理する方法を実現する。
2004097679.tif 000006
これにより、あるデータ（見出ノード）に関する新たな属性情報を別の関連性データとして定義し、それに対応するＡノード、Ｔノード及びノード間のエッジの組合せ（すなわち、本発明のデータモデルにおける基本構成要素）を用いてＡＲテーブルの行に対応付けられるデータとして表現すれば、既存のテーブル構造（データベース・スキーマ）を変更することなく新たな属性情報の追加が可能となる。
さらに、Ａノード及びＴノードにそれぞれ一意に同定できる識別子を付与し、各識別子に対して、ノードの属性型を表わすノードタイプと、属性値すなわちノードの具体的な内容を表わすノード名を有する識別子テーブル（以下、本願明細書では「ＩＤテーブル」と呼ぶ。）を定義する（表５）。
これらのデータを、上記ＡＲテーブルと同様に、リレーショナル・データベース管理システムにより記憶・管理する。
また、あるＡノードにより示される関連性のもつ意味を具体的に記述するデータとして１つのＴノードを新しく設け、これら２つのノードを「具象化」という予め定義された関連性役割で関連付ける。
当該Ｔノードと、別のＡノードに関して同様に新しく設けられたＴノードとの間での関連性を定義・記述することにより、元の２つのＡノードにより示される関連性の間に存在する関係を表現することができる。
Ａノードのもつ意味を記述するために特に導入された関連性役割「具象化」により関連付けられるＴノードは、上記のＡＲテーブルにより記憶・管理できる。
これらＩＤテーブル及びＡＲテーブルを用いて各ノードを管理することにより、ＡノードとＴノードの関連性だけでなく、ＡノードとＡノードの関連性についても表記可能となるデータの表現方法を実現する。
一般に、一つの共通の関連性を有するｎ個のデータからなるデータ集合について、２項関係で表現すると、ｎＣ２個のデータの組が必要となるが、本願発明によれば、ｎ個のデータの組でよい。
言い換えると一つの共通の関連性を有するｎ個の要素を持つデータ集合について（図２、（ａ））、これらのデータをデータベースに記憶する場合に、当該データ集合に共通するノード（Ａノード）を新たに１つ設け、次に各要素毎にその関連性役割を定義する（図２、（ｂ））。
これにより、「Ａノード」、「Ｔノード」及び「関連性役割」を一組のデータとして定義すれば、本願発明のデータ構造は構築できる（表４）。
2004097679.tif 000007
図２（ｂ）及び表４で使用されている「Ａ１」はＡノードに付与された識別子であり、別の識別子「Ｔ１」〜「Ｔｎ」が付与された一群のデータ（Ｔノード）が何等かの共通の関連性を有していることを示すものである。
Ａノードに付与された識別子が異なれば、それらの一連のデータは別の意味で何等かの共通の関連性を有していることになる。
さらに、識別子が付与されたＡノード及びＴノードに対して、表５に示すようにノードタイプとノード名をデータ属性としてもつＩＤテーブルを作成する。
2004097679.tif 000008
また、ＴノードＴ１とＴ２がＡノードＡ１により関連付けられ、ＴノードＴ１とＴ３がＡノードＡ２により関連付けられる関連性ネットワーク型データに対し（図３、（ａ））、ＡノードＡ１が示す関連性の意味を具体的に記述するＴノード（識別子Ｔ１１）を新たに設け、「具象化」という予め定義された関連性役割でＡ１と関連付ける。
同様に、ＡノードＡ２と新たなＴノードＴ１２を関連性役割「具象化」で関連付け、これら２つのＴノードＴ１１とＴ１２との間にある関連性を、ＡノードＡ１１を用いて定義する（図３、（ｂ））。
これにより、元の２つのＡノードＡ１とＡ２の間の関係が、表６に示すようなＡＲテーブルを使って表現できる。
2004097679.tif 000009
［データ記憶方法・データ構造］
以下、本発明におけるデータ記憶方法およびデータ構造を説明する。
具体例として、「作家シェークスピアは戯曲ハムレットを英国で１６００年頃書いた。」を第１のデータとして説明する。
これらの情報は、▲１▼「作家シェークスピア」、▲２▼「戯曲ハムレット」、▲３▼「１６００年頃」、▲４▼「英国」の要素をもつ４項関係を表したものである。
２項関係に分割してデータの関係を表現すると、４Ｃ２＝６であるので以下の表７に示す様に６個の組合せとして表現される。
2004097679.tif 000010
本願発明に従って、これらの情報を変換する。先ず第１番目のデータについて変換する。
見出ノード１にある「作家シェークスピア」は、この情報において「作者」であることを示しているので、「作家」と「シェークスピア」とに分けて、「シェークスピア」をＴノード、「作者」を関連性役割とする。また、後述するように、「作家」をＴノードのノードタイプとする。
また関連性を示すエッジ「作者−作品」については、上記の一連の情報が同じグループであることを示すために「ハムレット著作について」としてＡノードを設ける。
「ハムレット著作について」のデータは、一連の情報が同じグループであることを示すために用いるので、他のグループの情報との識別ができるものであれば、他の表現でもかまわない。
「Ａノード」−「Ｔノード」−「関連性役割」の構造で記述すると、表８に示すようになる。
2004097679.tif 000011
同様に見出ノード２にある「戯曲ハムレット」は、この情報において「作品」であることから、変換すると表９のようになる。
また、「戯曲」をＴノードのノードタイプとする。
2004097679.tif 000012
次に、第２番目のデータについて同様に変換すると、表１０のようになる。
2004097679.tif 000013
2004097679.tif 000014
ここで、「ハムレット著作について」「シェークスピア」「作者」の情報は、冗長なデータなので省略することができる。以下同様に全てのデータについて変換し、冗長なデータを削除すると表１１のようになる。
2004097679.tif 000015
従って、一つの共通の関連性を有する４個のデータからなるデータ集合について、２項関係で表現すると、４Ｃ２＝６であるので６個のデータの組が必要となるが、本願発明によれば、４個のデータ組でよいことが分かる。
言い換えると、４個の要素を持つデータ集合について、これらのデータをデータベースに記憶する場合に、当該データ集合に共通するノード（Ａノード）を新たに１つ設け、次に要素毎にその関連性役割を定義し、「Ａノード」、「Ｔノード」及び「関連性役割」を一組のデータとして定義すれば、本願発明のデータ構造は構築できる。
ここで、Ａノード「ハムレット著作について」に識別子「Ａ１」を付与する。ノード識別子「Ａ１」を共通にもつこれらのデータは、一つのグループに属することが分かる。
さらに、４つのＴノード「シェークスピア」、「ハムレット」、「１６００年頃」、「英国」に対して識別子「Ｔ１１」〜「Ｔ１４」をそれぞれ付与する。
これにより、第１の例から作成されるＡＲテーブルは表１２のようになる。
2004097679.tif 000016
また、「ハムレット著作について」を示すＡノード（識別子Ａ１）のノードタイプを「著作関連情報」とし、識別子Ｔ１１〜Ｔ１４が付与されたＴノードのノードタイプをそれぞれ「作家」、「戯曲」、「年代」、「国」とすることにより、表１３に示すようなＩＤテーブルが作成される。
2004097679.tif 000017
2004097679.tif 000018
さらに、第２のデータとして「戯曲ハムレットを原作とする日本語翻訳版が２００３年２月に○○出版社から出版された。」の情報を例にとる。
これらの情報を本願発明に従ってデータを構成すると次のようになる。ここで一連の情報要素に共通するＡノードは「ハムレット日本語訳について」とし、識別子「Ａ２」を付与すると表１４のようになる。
2004097679.tif 000019
原作であるハムレットには既に識別子「Ｔ１２」が付けられているので、翻訳版ハムレットに「Ｔ２２」、出版日及び出版社に対してそれぞれ識別子「Ｔ２３」、「Ｔ２４」を付与すると、第２のデータに対するＡＲテーブルは表１５のようになる。
2004097679.tif 000020
また、表１６に示すＩＤテーブルが作成される。
2004097679.tif 000021
これら第１及び第２のデータ、さらに同様のデータ変換処理が施された他のデータも同じデータベースに記憶されるので、最終的に表１７及び表１８に示すようなＡＲテーブル及びＩＤテーブルが得られる。
2004097679.tif 000022
2004097679.tif 000023
2004097679.tif 000024
さらに、図４に示すように、識別子がＡ１及びＡ２であるＡノードにより示される関連性のもつ意味を具体的に記述するためのＴノードを設け、それぞれに識別子「Ｔ３１」及び「Ｔ３２」を付与し、ノードＡ１及びノードＡ２と関連性役割「具象化」で関連付ける。
これら２つの新たなＴノードのノードタイプを「著作情報」とし、ノード名としてはそれぞれ「ハムレット著作について」及び「ハムレット日本語訳について」とする。
ノードＴ３１とノードＴ３２との関連性を示すＡノードを、識別子Ａ３としてさらに新しく設け、ノードタイプを「原作−翻訳情報」とする。
また、ここでの関連においてノードＴ３１及びノードＴ３２が果たす役割をそれぞれ「原作情報」、「翻訳情報」とする。以上の処理から、表１９に示したＡＲテーブル及び表２０に示したＩＤテーブルが追加される。
2004097679.tif 000025
2004097679.tif 000026
上記の第１及び第２のデータを、リレーショナル・データベースに直接記憶するためには、データ項目名として、新たに翻訳版としての「ハムレット」あるいは「○○出版社」などに対応する項目（データ属性）を追加する必要がある。これはデータベースのテーブル構造を変更することになるので簡単ではない。
本発明では、例に示した様に既存のＡＲテーブルに対し行を追加することにより、異なるデータ属性を有する情報を複数の組として記憶することが可能である。
また、第１及び第２のデータを、Ａノード、Ｔノード及び各ノード間の関連を示すエッジを用いて表現すると図４のようになる。
本発明では、こうした複雑な構造をもつデータを容易に表現するための方法とリレーショナル・データベースへの記憶・管理方法を提供している。
次に本願発明のデータベースから所望のデータを検索する場合について説明する。
以下に、ユーザが「作家シェークスピアの書いた戯曲ハムレットの日本語訳の出版社を知りたい」場合を例にとって説明する。
図５にそのフローチャートを示す。以下に図５のフローチャートの説明をする。
１１０：ユーザは検索条件を「作家」である「シェークスピア」の「戯曲」として入力する。
１２０：検索条件に合致する複数組のデータを収集する。
１３０：複数組検出された情報の中から、「戯曲」に対応する情報を順次表示する。
１４０：ユーザはこれらの中から所望の戯曲名、すなわち「ハムレット」を選択する。
１５０：「ハムレット」及び「翻訳版」を新たな条件として、データを検索する。
１６０：検索条件に合致する複数組データを収集する。
１７０：検出された複数組の中から「出版社」及び「出版日」に関するデータを順次表示する。
１８０：ユーザは所望の出版社を選択する。
以下、詳細に説明する。
ユーザは検索条件として、Ｔノードのノード名が「シェークスピア」であり、関連性役割が「作家」であることを入力し情報を検索する。
データベースの中でＡＲテーブルを参照し、関連性役割が「作家」であるＴノードの識別子を検出し、続いて、ＩＤテーブルに記憶されているノード名属性を参照し、「シェークスピア」をノード名とするＴノードに対応するＡノード識別子が複数組検出される。
複数組検出されたＡノード識別子をもつ情報の中から、別の検索条件、つまり関連性役割が「戯曲」となっているＴノード識別子がＡＲテーブルより選出される。
この識別子に基づいて、ＩＤテーブルから対応する戯曲に関する情報が順次表示される。
すなわち「ハムレット」、「じゃじゃ馬ならし」、「ベニスの商人」、「真夏の夜の夢」、「リア王」などの戯曲名が順次表示される。ユーザはこれらの中から所望の戯曲名、すなわち「ハムレット」を選択する。
引き続き、選択された「ハムレット」の識別子「Ｔ１２」をキーとして、ＴノードＩＤに「ハムレット」の識別子を含み、かつ、関連性役割が「翻訳版」であるＡノード識別子をＡＲテーブルから検索する。
これにより、検索条件を満足するＡノード識別子により関連付けられた複数組の情報が検出される。
検出された複数組の情報から、関連性役割として「出版社」及び「出版日」をもつＴノードのノード名を、順次、ＩＤテーブルを参照しながら表示する。
ユーザはその中から所望の出版社、すなわち最近「２００３年２月」に戯曲ハムレットの翻訳版を出版した「○○出版社」を選択することができる。
以上、図５に示した例は、検索例の一例として説明したものである。
つまり検索条件が多くなると、データベースの検索は、図５に示されているように２回に限定されるものではなく、所望の条件に応じて任意回数繰り返し行われることは言うまでもない。
また、ここで示した具体例においては、関連性役割として単一の属性が割り当てられているが、これに限定されるものではない。
すなわち、関連性役割に複数の属性をもたせることも可能である。上記の例では、関連性役割「戯曲」に対して「悲劇」、「喜劇」、「ロマンス劇」、「史劇」等のジャンルを追加して指定することにより、さらに詳細な関連性役割を定義することができる。
［本発明にかかるデータ記憶方法・データ構造の特徴］
以上説明したように、本発明にかかるデータ記憶方法およびデータ構造によると、現在、広く一般に用いられているリレーショナル・データベースのテーブル形式を用いて、３項以上の関係、一般にｎ項の相互に関連性をもった一連のデータの関係を表すハイパーグラフの構造を保持したまま、データを記憶及び管理することができる。
また、関連性ネットワーク型データをリレーショナル・データベースのテーブルに直接マッピングする方法では、３項以上の関係、一般にｎ項関係を表すデータを効率よく記憶・管理できないという問題が解決される。
また、既にデータベースに記憶されているデータに対して、属性情報を追加するなどの変更を行うにはリレーショナル・データベースのテーブル設計の変更が必要となり、柔軟性に欠けるとともに膨大な労力がかかるという問題が解決される。
さらに、同一のデータベース・スキーマの枠組みで、データに付与された識別子と関連性役割を用いて一連の関連性のもつ意味を記述することができる。
［データベース装置］
以下、本発明にかかるデータベース装置を説明する。
図６は、本発明にかかるデータベースシステム（ＤＢシステム）１の構成を例示する図である。
図６に示すように、本発明にかかる第１のＤＢシステム１は、データベース装置（ＤＢ装置）１２が、必要に応じて、ＬＡＮ、ＷＡＮおよびインターネットなどのネットワーク１００を介して、データ入力および検索のためなどに用いられるコンピュータ（ＰＣ）１０２と接続されて構成される。
なお、以下の説明においては、図４，図５および表７〜表２０を参照して上述した本発明にかかるデータ記憶方法およびデータ構造の説明においてと、一部、用語が異なることがあるが、これらの説明の間で対応する用語は、実質的に同じである。
また、ＤＢシステム１の説明については、以下の用語が、上述した本発明にかかるデータ記憶方法およびデータ構造の説明における用語よりも優先される。
［ハードウエア構成］
図７は、図６に示したＤＢ装置１２およびＰＣ１０２のハードウエア構成を例示する図である。
図７に示すように、ＤＢ装置１２およびＰＣ１０２は、ＣＰＵ１２２、メモリ１２４およびこれらの周辺回路などを含む本体１２０、表示装置およびキーボードなどを含む入出力装置１２６、ＣＤ装置およびＨＤＤ装置などの記録装置１２８から構成される。
また、さらに、ＤＢ装置１２およびＰＣ１０２（以下、通信を行う構成部分を通信ノードと総称することがある）が、ネットワーク１００に接続されるときには、ネットワーク１００を介した他の通信ノードとの間の通信を行う通信装置１３２が付加されることがある。
つまり、ＤＢ装置１２およびＰＣ１０２は、他の通信ノードとの間で通信を行う機能を有しうるコンピュータとしての構成部分を含む。
［データ構造］
ＤＢ装置１２においては、上述した本発明にかかるデータ記憶方法およびデータ構造（図４，図５および表７〜表２０）を応用したデータの記憶および記憶されたデータの検索が行われる。
まず、本発明にかかるＤＢ装置１２の詳細を説明する前に、その理解を助けるために、ＤＢ装置１２におけるデータ構造およびデータ検索について説明する。
図８は、図３（ａ）に例示したデータの関連を書き換えて示す図である。
図８に示すように、ＤＢ装置１２においては、上述の本発明にかかるデータ記憶方法およびデータ構造においてと同様に、見出ノード（Ｔｏｐｉｃ  Ｎｏｄｅ；以下、Ｔノードと記す）が、１つ以上の関連ノード（Ａｓｓｏｃｉａｔｉｏｎ  Ｎｏｄｅ；以下、Ａノードと記す）と関連付けられ、関連付けられたＴノードとＡノードとの間には、関連属性Ｒが定義される。
なお、関連属性Ｒは、ＴノードとＡノードとの関連について定義されうるどのような属性でもよいが、以下、説明の具体化および明確化のために、上述の本発明にかかるデータ記憶方法およびデータ構造の説明においてと同様に、関連属性Ｒが、関連性役割Ｒである場合を具体例とする。
図３（ａ）に示したデータの関係は、書き換えにより、図８に示すように表される。
図８に示すＡノードＡ１〜Ａｎの内、ＡノードＡ１と、ＡノードＡ１に関連するＴノードＴ１−１〜Ｔ１−３，Ｔ２−１とは、エッジで結ばれている。
同様に、ＡノードＡ２に関連するＴノードＴ２−１，Ｔ２−２，Ｔｎ−１と、ＡノードＡ２とはエッジで結ばれている。
また、ＡノードＡｎについても同様であって、ＡノードＡｎに関連するＴノードＴｎ−１〜Ｔｎ−４とＡノードＡｎとはエッジで結ばれている。
つまり、図８には、ＴノードＴ２−１が、ＡノードＡ１，Ａ２の両方に関連性を有し、ＴノードＴｎ−１は、ＡノードＡ２，Ａｎの両方に関連性を有することが示されている。
図９は、図８に示したデータ構造を一般化して示す図である。
図８において、ＴノードＴ１−１から、ＡノードＡ１、ＴノードＴ２−１、ＡノードＡ２およびＴノードＴｎ−１を経て、ＡノードＡｎに至るようにエッジをたどると、図９において、上から下の方向に伸びるパスが得られる。
なお、図９には、
（１）ＴノードＴ１−１〜Ｔ１−ｍ１，Ｔ２−１が、ＡノードＡ１に関連付けられ、ＴノードＴ１−１〜Ｔ１−ｍ１，Ｔ２−１とＡノードＡ１との間の関連（エッジ）には、関連性役割Ｒ１−１〜Ｒ１−ｍ１，Ｒ１−０が定義され、
（２）ＴノードＴ２−１〜Ｔ２−ｍ２および図９において省略されたＴノードが、ＡノードＡ２に関連付けられ、ＴノードＴ２−１〜Ｔ２−ｍ２とＡノードＡ２との間の関連には、関連性役割Ｒ２−１〜Ｒ２−ｍ２が定義され、
（３）以下、同様に、図９において省略されているＴノードとＡノードとが関連付けられ、これらの間に関連性役割Ｒが定義され、
（４）ＴノードＴｎ−１〜Ｔｎ−ｍｎおよび図９において省略されたＴノードが、ＡノードＡｎに関連付けられ、ＴノードＴｎ−１〜Ｔｎ−ｍｎとＡノードＡｎとの間の関連には，、関連性役割Ｒｎ−１〜Ｒｎ−ｍｎ（ｍ１〜ｍｎ，ｎは整数）が定義され
ている場合が具体例として示されている。
つまり、ＤＢ装置１２においては、Ｔノードそれぞれが、１つ以上のＡノードと関連付けられ、また、Ａノードそれぞれが、１つ以上のＴノードと関連付けられることにより、Ａノードを介して複数のＴノードが関連付けられ、また、Ｔノードを介して複数のＡノードが関連付けられうる。
ＤＢ装置１２においては、図９に示すように関連付けられたＡノードとＴノードのとの組み合わせが、複数、記憶されうる。
図１０は、図３（ｂ），図４に示したデータの関係を、一般化して示す図である。
図３（ｂ），図４に示したデータの関係は、図１０に示すように一般化して表されうる。
図１０において、ＡノードＡ１に関連するＴノードＴ１−１〜Ｔ１−３（，Ｔ３−１）とＡノードＡ１とはエッジで結ばれ、ＡノードＡ２に関連するＴノードＴ２−１〜Ｔ２−３（，Ｔ３−２）とＡノードＡ２とはエッジで結ばれ、ＡノードＡｎとＴノードＴｎ−１〜Ｔｎ−３，Ｔ２−３（，Ｔ３−ｎ）とはエッジで結ばれている。
ＴノードＴ２−３は、ＡノードＡ２，Ａｎの両方とエッジで結ばれており、このことは、ＴノードＴ２−３が、ＡノードＡ２，Ａｎの両方に関連することを示している。
ここで、ＡノードＡ１，Ａ２，Ａｎにより関連付けられる一連の情報が、共通の関連性を有するときには、新たな関連ノードＡ３が定義されうる。
例えば、ＡノードＡ１が、ハムレットの原作に関する情報であり、ＡノードＡ２が、ハムレットの翻訳に関する情報であり、ＡノードＡｎが、ハムレットの公演に関する情報であるときには、これらのＡノードＡ１，Ａ２，Ａｎにより示される関連情報は、ハムレットに関する情報としての共通性を有する。
そこで、ＡノードＡ１，Ａ２，Ａｎにより関連付けられる情報が、共通性を有することを示すために、新たな関連ノードＡ３が定義され、データベースに格納される。
また、図１０中に破線で囲って示すように、ＡノードＡ１およびＴノードＴ１−１〜Ｔ１−３により示される一連の情報を具体的に記述するために、新たなＴノードＴ３−１が定義され、データベースに格納される。
さらに、同様に、ＡノードＡ２，Ａｎの関連を具体的に記述する新たなＴノードＴ３−２，Ｔ３−ｎが定義され、データベースに格納される。
例えば、ＴノードＴ３−１には、見出しの内容として「ハムレット著作について」、ＴノードＴ３−２には、見出しの内容として「ハムレット日本語訳について」、ＴノードＴ３−ｎには、見出し内容として「ハムレット公演について」などのデータが定義され、データベースに格納される。
さらに、新たなＡノードＡ３と、Ｔノード３−１〜Ｔ３−ｎそれぞれとの間に、関連性役割Ｒが定義され、データベースに格納される。
例えば、新たなＡノードＡ３とＴノードＴ３−１との間に、関連性役割Ｒとして「原作情報」が定義され、新たなＡノードＡ３とＴノードＴ３−２との間に、関連性役割Ｒとして「翻訳情報」が定義され、新たなＡノードＡ３とＴノードＴ３−ｎとの間に、関連性役割Ｒとして「公演情報」などのデータが定義され、データベースに格納される。
同様に、例えば、ＡノードＡ１，Ａ２，ＡｎとＴノードＴ３−１，Ｔ３−２，Ｔ３−ｎとの間には、「具象化」という予めシステムにより定義された関連性役割Ｒが定義される。
図１１は、図９に示した構造を採るデータを記憶するために用いられる関連性役割（ＡＲ（Ａｓｓｏｃｉａｔｉｏｎ  Ｒｏｌｅ））テーブルを示す図である。
図１２は、図９に示した構造を採るデータを記憶するために用いられるＴノード用識別子（ＩＤ（Ｉｄｅｎｔｉｆｉｅｒ））テーブルを示す図である。
図１３は、図９に示した構造を採るデータを記憶するために用いられるＡノード用識別子（ＩＤ）テーブルを示す図である。
ＤＢ装置１２において、図９に示した構造により関連付けられたＡノードおよびＴノードと、Ｔノードのデータは、図１１に示すＡＲテーブル（第１のデータベース）、および、図１２に示すＩＤテーブル（第２のデータベース）を用いて記憶される。
図１１に示すＡＲテーブルのエントリそれぞれは、ある１つのＡノードと、このＡノードに関連付けられた１つのＴノードと、これら関連付けられたＡノードとＴノードとの間に定義される関連性役割（Ｒ）を示し、あるＡノードの識別子（ＩＤ）と、このＡノードに関連付けられたＴノードの識別子と、これら関連付けられたＡノードとＴノードとの間に定義された関連性役割（Ｒ）を含む。
つまり、ＡＲテーブルのエントリそれぞれは、図９に示したいずれかのエッジの一端にあるＡノードの識別子と、このエッジの他端にあるＴノードの識別子と、このエッジに対して定義される関連性役割とを含む。
このようなエントリを、図９に示した全てのエッジ（Ｔ１−１〜Ａ１の間のエッジ〜Ｔｎ−ｍｎ〜Ａｎ間のエッジ）について作成し、ＡＲテーブルに記憶することにより、図９に示したＡノードとＴノードとの関連は、図１１に示すＡＲテーブル（第１のデータベース）に記憶される。
また、Ｔノードそれぞれは、内容（Ｔノードの名称、Ｔノード自体のデータおよびＴノードにより参照されるデータなど）を有し、さらに、Ｔノードそれぞれには、ＡＲテーブルの各エントリに記憶される識別子（ＩＤ）の他に、このＴノードの属性（ノードタイプ（ＮＴ）；見出属性）が定義される（以下、Ｔノードが、その内容として、その名称（ノード名（Ｎ））のみを有する場合を具体例とする。）。
図１２に示すＴノード用のＩＤテーブルのエントリそれぞれは、図９に示したいずれかのＴノードの識別子（ＩＤ）と、このＴノードに対して定義された属性（ノードタイプ（ＮＴ））と、このＴノードの名称（ノード名（Ｎ））とを含む。
このようなエントリを、図９に示した全てのＴノードＴ１−１〜Ｔｎ−ｍｎについて作成し、Ｔノード用のＩＤテーブルに記憶することにより、図９に示した全てのＴノードについてのデータが記憶される。
図１３に示すＡノード用のＩＤテーブルのエントリそれぞれは、図９に示したいずれかのＡノードの識別子（ＩＤ）と、このＡノードに対して定義された属性（ノードタイプ（ＮＴ’））と、このＡノードの名称（ノード名（Ｎ’））とを含む。
このようなエントリを、図９に示した全てのＡノードＡ１〜Ａｎについて作成し、Ａノード用のＩＤテーブルに記憶することにより、図９に示した全てのＡノードについてのデータが記憶される。
なお、図９に示したＡノードとＴノードとの関連、ＡノードのデータおよびＴノードのデータを記憶するためには、テーブル形式以外に、同様な形式が採られうるが、以下の説明においては、ＡＲテーブルおよびＩＤテーブルを用いる場合が具体例とされる。
なお、ＤＢ装置１２の用途、構成あるいは処理内容によっては、図１１に示すように、ＡＲテーブルにおいて、各エントリは、Ｔノードの識別子（ＩＤ）の代わりに、Ｔノードの内容（ノード名（Ｎ））を含んでもよい。
また、同様に、ＡＲテーブルにおいて、各エントリは、Ｔノードの内容を、さらに含んでもよい。
［データ検索］
図１４は、図６，図７に示したＤＢ装置１２におけるデータ検索方法を例示する図である。
ここでは、図１４に示すように、あるＡノードに、ＴノードＴ１〜Ｔｎおよび検索結果（出力）とされるべきＴノードＴｒｅｔ（Ｔ  ｒｅｔｕｒｎ）が関連付けられ、ＡノードとＴノードＴ１〜Ｔｎ，Ｔｒｅｔとの間に、関連性役割Ｒ１〜Ｒｎ，Ｒｒｅｔが定義され、ＴノードＴ１〜Ｔｎ，Ｔｒｅｔが、ノード名Ｎ１〜Ｎｎ，Ｎｒｅｔを有する場合を具体例とする。
ＤＢ装置１２においては、検索結果として得たいＴノードに対して定義される関連性役割Ｒｒｅｔ（第２の条件データ）と、検索のために用いられ得るＡノードの属性（ノードタイプＮＴ；図１４においてＡＮＴ１，ＡＮＴ２）と、検索のために用いられ得るＴノードの関連性役割Ｒとノード名Ｎの１つ以上の組み合わせ（第１の条件データ）とが検索条件として用いられる。
この検索条件は、図１４に示すように、例えば、（Ｒｒｅｔ，（ＡＮＴ１，ＡＮＴ２，．．．），Ｆｉｌｔｅｒ），Ｆｉｌｔｅｒ＝（（Ｒ１，Ｎ１），（Ｒ２，Ｎ２），．．．，（Ｒｎ，Ｎｎ））と表記される。
なお、この検索条件は、後述するように、さらにＴノードの属性ＮＴ（第３の条件データ）を含みうる。
上記検索条件の内、Ｆｉｌｔｅｒに含まれるＴノードの関連性役割Ｒとノード名Ｎの１つ以上の組み合わせ（Ｒ１，Ｎ１），（Ｒ２，Ｎ２），．．．，（Ｒｎ，Ｎｎ）それぞれは、検索のためのフィルタとして用いられるので、以下、検索フィルタとも記載される。
また、上記検索条件の内、Ａノードの属性（ＡＮＴ１，ＡＮＴ２，．．．）は、省略されうる。
図１５は、図６，図７に示したＤＢ装置１２における検索の全体的な処理（Ｓ２０）を示す第１のフローチャートである。
図１５に示すように、ステップ２００（Ｓ２００）において、ＤＢ装置１２は、例えば、ＰＣ１０２（図６）あるいはＤＢ装置１２の入出力装置１２６に対する検索者の操作に応じて、図１４に例示した検索条件を受け入れる。
ステップ２２（Ｓ２２）において、図１６を参照して後述する検索フィルタに基づく関連ノードの選択を行う。
ステップ２４（Ｓ２４）において、図１７を参照して後述するノードＩＤおよびノード名の取得を行う。
ステップ２０２（Ｓ２０２）において、ＤＢ装置１２は、Ｓ２４の処理により検索結果として得られたＴノードＴｒｅｔの識別子（ノードＩＤ）およびノード名（Ｎｒｅｔ）から、検索者に対して返す応答を作成する。
この応答としては、ノード名Ｎｒｅｔのみ、ノードＴｒｅｔにより参照される様々なデータ、あるいは、ノードＴｒｅｔ自体を示すデータなど、様々なデータを例示されうる。
ステップ２０４（Ｓ２０４）において、ＤＢ装置１２は、検索者による問い合わせが終了したか否かを判断する。
ＤＢ装置１２は、検索者による問い合わせが終了した場合には処理を終了し、これ以外のときにはＳ２００の処理に戻る。
図１６は、図１５に示した検索フィルタに基づく関連ノードの選択処理（Ｓ２２）を示すフローチャートである。
図１６に示すように、図１５に示したＳ２００の処理において、ＤＢ装置１２は、検索条件（Ｒｒｅｔ，（ＡＮＴ１，ＡＮＴ２，．．．），Ｆｉｌｔｅｒ），Ｆｉｌｔｅｒ＝（（Ｒ１，Ｎ１），（Ｒ２，Ｎ２），．．．，（Ｒｎ，Ｎｎ））を受け入れると、ステップ２２０（Ｓ２２０）において、処理のために用いられる関連ノードリストを初期化する。
この関連ノードリストには、ＡＲテーブル（図１１）から得られたＡノードのうち、検索条件中のＡノードの属性（ノードタイプ；ＡＮＴ１，ＡＮＴ２，．．．）のいずれかを、その属性（ノードタイプＮＴ）として含むＡノードの識別子が記憶される。
なお、検索条件において、Ａノードの属性が省略された（（ＡＮＴ１，ＡＮＴ２，．．．）＝ｎｕｌｌ）ときには、Ｓ２２０の処理において、ＡＲテーブル（図１１）から得られたＡノードの全ての識別子が記憶される。
ステップ２２２（Ｓ２２２）において、ＤＢ装置１２は、全ての検索フィルタ（Ｒｉ，Ｎｉ）について処理を行ったか否かを判断する。
ＤＢ装置１２は、全ての処理について処理を行ったときにはＳ２４（図１５，図１７）の処理に進み、これ以外のときには、まだ処理の対象とされていないいずれかの検索フィルタ（Ｒｉ，Ｎｉ）を、次の処理対象としてＳ２２４の処理に進む。
ステップ２２４（Ｓ２２４）において、ＤＢ装置１２は、Ｔノード用のＩＤテーブル（図１２）を検索し、検索フィルタ（Ｒｉ，Ｎｉ）のノード名Ｎｉを含むエントリの全てを探し出し、探し出されたエントリに含まれるＴノードの識別子の集合（ノードＩＤ集合Ｔ）を作成する（Ｔ＝｛Ｔｉ｜ノード名＝Ｎｉｉｎ  ＩＤテーブル｝）。
なお、検索条件にＴノードの属性（ノードタイプ；ＮＴ）が含まれ、検索フィルタが（Ｒｉ，Ｎｉ，ＮＴｉ）と表されるときには、ＤＢ装置１２は、Ｓ２２４の処理において、ＩＤテーブルから、検索フィルタ（Ｒｉ，Ｎｉ，ＮＴｉ）のノード名ＮｉおよびノードタイプＮＴｉを含むエントリを探し出し、探し出されたエントリに含まれるＴノードの識別子の集合をノードＩＤ集合Ｔとすればよい。
ステップ２２６（Ｓ２２６）において、ＤＢ装置１２は、Ｓ２２４の処理により得られたノードＩＤ集合Ｔが空集合であるか否かを判断する。
ＤＢ装置１２は、ノードＩＤ集合Ｔが空集合であるときには検索処理を終了するための処理（検索が失敗した旨を検索者に表示するなど）を行い、検索処理を終了し、これ以外のときにはＳ２２８の処理に進む。
ステップ２２８（Ｓ２２８）において、ＤＢ装置１２は、ＡＲテーブル（図１１）を検索し、関連ノードリストＡを更新する。
つまり、ＤＢ装置１２は、ＡＲテーブルから、検索フィルタ（Ｒｉ，Ｎｉ）の関連性役割Ｒｉと、Ｓ２２４の処理により得られたノードＩＤ集合Ｔに含まれるいずれかのＴノードの識別子を含むエントリの全てを探し出し、探し出されたエントリに含まれるＡノードの識別子を、関連ノードリストＡに格納する（Ａ＝｛Ａｊ｜役割Ｒｉ，Ｔノードの識別子Ｔｉ（ａｌｌ  ｉ），Ａノード識別子∈Ａ  ｉｎ  ＡＲテーブル｝）。
ステップ２３０（Ｓ２３０）において、ＤＢ装置１２は、Ｓ２２８の処理により得られた関連ノードリストＡが空集合であるか否かを判断する。
ＤＢ装置１２は、関連ノードリストＡが空集合であるときには検索処理を終了するための処理を行い、検索処理を終了し、これ以外のときにはＳ２３２の処理に進む。
ステップ２３２（Ｓ２３２）において、ＤＢ装置１２は、検索条件に含まれる処理されていない検索フィルタを読み込み、Ｓ２２２の処理に戻る。
図１７は、図１５，図１６に示したノードＩＤおよびノード名取得処理（Ｓ２４）を示すフローチャートである。
図１７に示すように、検索フィルタに基づく関連ノードの選択処理（Ｓ２２）が終了すると、ステップ２４０（Ｓ２４０）において、ＤＢ装置１２は、ＡＲテーブル（図１１）を検索し、Ｔノード識別子集合Ｔを作成する。
つまり、ＤＢ装置１２は、ＡＲテーブルから、検索条件に含まれる関連性役割Ｒｒｅｔと、Ｓ２２（Ｓ２２８）の処理により得られた関連ノードリストＡに含まれるいずれかのＡノードの識別子とを含むエントリの全てを探し出し、探し出されたエントリに含まれるＴノードの識別子の集合（Ｔノード識別子集合Ｔ）を作成する（Ｔ＝｛Ｔｍ｜役割＝Ｒｒｅｔ，Ａノードの識別子∈Ａ  ｉｎ  ＡＲテーブル｝）。
ステップ２４２（Ｓ２４２）において、ＤＢ装置１２は、Ｓ２４０の処理により得られたＴノード識別子集合Ｔが空集合であるか否かを判断する。
ＤＢ装置１２は、Ｔノード識別子集合Ｔが空集合であるときには終了処理を行って検索処理を終了し、これ以外のときにはＳ２４４の処理に進む。
ステップ２４４（Ｓ２４４）において、ＤＢ装置１２は、Ｔノード用のＩＤテーブル（図１２）を検索し、ノードＩＤとノード名の組の集合Ｐを作成する。
つまり、ＤＢ装置１２は、ＩＤテーブルから、Ｓ２４０の処理により作成されたＴノード識別子集合Ｔに含まれるＴノードの識別子Ｔｍのいずれかを含むエントリの全てを探し出し、このエントリに含まれるノード名Ｎｍと、Ｔノードの識別子Ｔｍとの組の集合Ｐを作成する（Ｐ＝｛（Ｔｍ，Ｎｍ）｜Ｔノードの識別子＝Ｔｍ（ａｌｌ  ｍ）  ｉｎ  ＩＤテーブル｝）。
ステップ２４６（Ｓ２４６）において、ＤＢ装置１２は、Ｓ２４４の処理により得られたＴノード識別子とＴノード名との組の集合Ｐが空集合であるか否かを判断する。
ＤＢ装置１２は、Ｔノード識別子とＴノード名との組の集合Ｐが空集合であるときには終了処理を行って検索処理を終了し、これ以外のときにはＳ２０２の処理に進む。
この集合Ｐは、図１５に示したＳ２０２の処理において、検索者への応答を作成するために用いられる。
［ＤＢプログラム２］
図１８は、図６，図７に示したＤＢ装置１２において実行されるＤＢプログラム２の構成を示す図である。
なお、図１８においては、図示の明確化のために、データの流れを示す線は、適宜、省略されている。
図１８に示すように、ＤＢプログラム２は、ＤＢ管理部２０、ＤＢ部２４およびＤＢ検索部２６から構成される。
ＤＢ管理部２０は、管理操作受入部２００、ＡＲエントリ作成部２０２、ＩＤエントリ作成部２０４、ＡＲデータベース管理部（ＡＲＤＢ管理部）２０６およびＩＤデータベース管理部（ＩＤＤＢ管理部）２０８から構成される。
ＤＢ部２４は、ＡＲデータベース（ＡＲＤＢ）２４０、Ｔノード用のＩＤデータベース（ＩＤＤＢ）２４２およびＡノード用のＩＤＤＢ２４４から構成される。
ＤＢ検索部２６は、検索操作受入部２６０、検索条件作成部２６２、検索制御部２６４、ＡＲデータベース検索部（ＡＲＤＢ検索部）２６６およびＩＤデータベース検索部（ＩＤＤＢ検索部）２６８から構成される。
ＤＢプログラム２は、例えば、記録媒体１３０（図７）を介してＤＢ装置１２に供給され、メモリ１２４にロードされて実行される。
ＤＢプログラム２は、これらの構成部分により、図９〜図１７を参照して説明したＡＲデータベース（図１１）およびＩＤデータベース（図１２，図１３）の作成、および、これらのデータベースを用いたデータの検索（図１４〜図１７）を行う。
ＤＢ部２４において、ＡＲＤＢ２４０は、図１１に示したＡＲテーブルを記憶する。
ＩＤＤＢ２４２は、図１２に示したＴノード用のＩＤテーブルを記憶する。
ＩＤＤＢ２４４は、図１３に示したＡノード用のＩＤテーブルを記憶する。
また、図１８には、図１２，図１３に示したＴノード用のＩＤテーブルおよびＡノード用のＩＤテーブルが、それぞれＩＤＤＢ２４２，２４４に記憶される場合が具体例とされているが、Ｔノード用のＩＤテーブルと、Ａノード用のＩＤテーブルとは、同じデータベースに記憶されてもよい。
また、Ｔノード用のＩＤテーブルと、Ａノード用のＩＤテーブルとは、必ずしも分けて作成されなくともよく、１つのデータベース内に一体に作成されてもよい。
ＤＢ管理部２０において、管理操作受入部２００は、ＡＲテーブルおよびＩＤテーブルに記憶されたデータを管理し、あるいは、変更するための操作を、入出力装置１２６（図７）から、あるいは、ネットワーク１００を介してＰＣ１０２（図６）から受け入れ、ＡＲＤＢ管理部２０６およびＩＤＤＢ管理部２０８に対して出力する。
また、管理操作受入部２００は、ＡノードおよびＴノード、ＡノードとＴノードとの関連付け、ＡノードとＴノードとの間（エッジ）に定義される関連性役割Ｒ、ＡノードおよびＴノードに付される識別子（ＩＤ）、Ｔノードに付されるノード名（Ｎ）、および、Ｔノードに定義される属性（図９）を指定するユーザの操作を受け入れ、ＡＲエントリ作成部２０２およびＩＤエントリ作成部２０４に対して出力する。
例えば、管理操作受入部２００は、Ａノード、Ｔノードおよびこれらの間の関係などを、図１４に示したように表示するユーザインターフェース（ＵＩ）画像を、入出力装置１２６に表示し、このＵＩ画像に対するユーザの操作を受け入れて、これらの指定を受け入れる。
ＡＲエントリ作成部２０２は、管理操作受入部２００から入力されるユーザの指定に従って、図１１に示したＡＲテーブルのエントリを作成し、ＡＲＤＢ管理部２０６に対して出力する。
ＡＲＤＢ管理部２０６は、ＡＲエントリ作成部２０２から入力されるＡＲテーブルのエントリを、ＡＲＤＢ２４０に記憶されているＡＲテーブルに追加する。
また、ＡＲＤＢ管理部２０６は、管理操作受入部２００から入力されるユーザの操作に従って、ＡＲＤＢ２４０に記憶されているＡＲテーブルの内容を変更する。
また、ＡＲＤＢ管理部２０６は、ＡＲＤＢ検索部２６６の検索に応じて、ＡＲＤＢ２４０に記憶されたＡＲテーブルのエントリを探しだし、ＡＲＤＢ検索部２６６に対して出力する。
ＩＤエントリ作成部２０４は、管理操作受入部２００から入力される検索者の指定に従って、図１２，図１３に示したＴノード用およびＡノード用のＩＤテーブルのエントリを作成し、ＩＤＤＢ管理部２０８に対して出力する。
ＩＤＤＢ管理部２０８は、ＩＤエントリ作成部２０４から入力されるＴノード用のＩＤテーブルのエントリを、ＩＤＤＢ２４２に記憶されているＴノード用のＩＤテーブルに追加する。
また、ＩＤＤＢ管理部２０８は、ＩＤエントリ作成部２０４から入力されるＡノード用のＩＤテーブルのエントリを、ＩＤＤＢ２４４に記憶されているＡノード用のＩＤテーブルに追加する。
また、ＩＤＤＢ管理部２０８は、管理操作受入部２００から入力されるユーザの操作に従って、ＩＤＤＢ２４２，２４４に記憶されているＩＤテーブルの内容を変更する。
また、ＩＤＤＢ管理部２０８は、ＩＤＤＢ検索部２６８の検索に応じて、ＩＤＤＢ２４２，２４４に記憶されたＩＤテーブルのエントリを探し出し、ＩＤＤＢ検索部２６８に対して出力する。
ＤＢ検索部２６において、検索操作受入部２６０は、図１４〜図１７に示した検索処理に用いられる検索条件（図１４、さらに任意のＴノードの属性（ノードタイプ（ＮＴ））が含まれることがある）を指定するための検索者の操作を、入出力装置１２６（図７）から、あるいは、ネットワーク１００を介してＰＣ１０２（図６）から受け入れる。
検索操作受入部２６０は、受け入れた操作を、検索条件作成部２６２に対して出力する。
検索条件作成部２６２は、例えば、検索操作受入部２６０が、自然言語による質問文の形式で検索条件を受け入れるときには、この質問文を構文解析して単語を取り出す。
次に、検索条件作成部２６２は、ＡＲＤＢ検索部２６６、ＩＤＤＢ検索部２６８、ＡＲＤＢ管理部２０６およびＩＤＤＢ管理部２０８を介してＡＲＤＢ２４０およびＩＤＤＢ２４２，２４４に記憶されたＡＲテーブルおよびＩＤテーブルを検索して、検索条件として用いられ得る単語を抽出する。
さらに、検索条件作成部２６２は、抽出された単語を、質問文の構造に沿って組み合わせ、図１４に示した形式の検索条件（Ｒｒｅｔ，（ＡＮＴ１，ＡＮＴ２，．．．），（（Ｒ１，Ｎ１），（Ｒ２，Ｎ２），．．．，（Ｒｎ，Ｎｎ）））を導出し、検索制御部２６４に対して出力する。
なお、検索者が、図１４に示した形式（Ｒｒｅｔ，（ＡＮＴ１，ＡＮＴ２，．．．），（（Ｒ１，Ｎ１），（Ｒ２，Ｎ２），．．．，（Ｒｎ，Ｎｎ）））で検索条件を、直接、指定するときには、検索条件作成部２６２は省略され得る。
また、検索条件作成部２６２は、検索者による検索条件（Ｒｒｅｔ，（ＡＮＴ１，ＡＮＴ２，．．．），（（Ｒ１，Ｎ１），（Ｒ２，Ｎ２），．．．，（Ｒｎ，Ｎｎ）））の導出を補助するためのツールであってもよい。
検索制御部２６４は、検索条件作成部２６２（検索操作受入部２６０）から入力される検索条件（Ｒｒｅｔ，（ＡＮＴ１，ＡＮＴ２，．．．），（（Ｒ１，Ｎ１），（Ｒ２，Ｎ２），．．．，（Ｒｎ，Ｎｎ）））に従って、ＡＲＤＢ検索部２６６およびＩＤＤＢ検索部２６８を制御し、図１５〜図１７に示したように、ＡＲＤＢ管理部２０６およびＩＤＤＢ管理部２０８を介したＡＲＤＢ２４０（ＡＲテーブル；図１１）およびＩＤＤＢ２４２，２４４（ＩＤテーブル；図１２，図１３）の検索を行わせる。
また、検索制御部２６４は、検索条件に従った検索により検索結果（集合Ｐ；図１７）が得られたときには、この検索結果に基づいて応答を作成し、入出力装置１２６（図７）に表示し、あるいは、ネットワーク１００（図６）を介してＰＣ１０２の入出力装置１２６に表示し、検索者に示す。
ＡＲＤＢ検索部２６６は、検索制御部２６４の制御に従って、ＡＲＤＢ管理部２０６を介してＡＲＤＢ２４０（ＡＲテーブル；図１１）を検索し、検索結果を検索制御部２６４に返す。
ＩＤＤＢ検索部２６８は、検索制御部２６４の制御に従って、ＩＤＤＢ管理部２０８を介してＩＤＤＢ２４２，２４４（ＩＤテーブル；図１２，図１３）を検索し、検索結果を検索制御部２６４に返す。
［全体動作］
以下、図６，図７に示したＤＢ装置１２（ＤＢプログラム２；図１８）の全体的な動作を、具体例を挙げて説明する。
［ＡＲテーブルおよびＩＤテーブルの作成］
まず、ＤＢプログラム２のＤＢ管理部２０によるＡＲテーブルおよびＩＤテーブルの作成処理を説明する。
図１９は、図６，図７に示したＤＢ装置１２（ＤＢプログラム２；図１８）に対して入力されるデータと、これに含まれるデータの検索に含まれる検索条件とを例示する図である。
例えば、ＤＢプログラム２の管理操作受入部２００に対して、図１９に示すように関連付けられたデータが入力される。
図１９に示すデータには、以下のように関連付けられたＡノードとＴノードとが含まれ、Ｔノードにはそれぞれノード名が付されている（ただし、Ａノードの属性（ノードタイプ（ＮＴ））およびノード名、Ｔノードの属性（ノードタイプ（ＮＴ））は、以下の（１）〜（８）および図１９において省略）。
（１）「ＡノードＡ１」と「ＴノードＴ１１」とが関連付けられ、これらの間に「作者」という関連性役割Ｒが定義され、「ＴノードＴ１１」には、「シェークスピア（同名の別人）」というノード名が付されている。
（２）「ＡノードＡ９」と「ＴノードＴ９２，Ｔ４１」とが関連付けられ、これらの間に「作品」および「作者」という関連性役割Ｒが定義され、「ＴノードＴ９２，Ｔ４２」には、「ベニスの商人」および「シェークスピア」というノード名が付されている。
（３）「ＡノードＡ４」と「Ｔノード４１，Ｔ４２」とが関連付けられ、これらの間に「作者」および「作品」という関連性役割Ｒが定義され、「ＴノードＴ４２」には、「ハムレット」というノード名が付されている。
（４）「ＡノードＡ１３」と「ＴノードＴ４２」とが関連付けられ、これらの間に「脚本」という関連性役割Ｒが定義されている。
（５）「ＡノードＡ１９」と「ＴノードＴ４２」とが関連付けられ、これらの間に「原作」という関連性役割Ｒが定義されている。
（６）「ＡノードＡ１０」と「ＴノードＴ４２」とが関連付けられ、これらの間に「原作」という関連性役割Ｒが定義されている。
（７）「ＡノードＡ１０」と「ＴノードＴ１０３，Ｔ１０１」とが関連付けられ、これらの間に「出版」および「翻訳版」という関連性役割Ｒが定義され、「ＴノードＴ１０３」には、「○○出版」というノード名が付されている。
（８）「ＡノードＡ１９」と「ＴノードＴ１９１」とが関連付けられ、これらの間に「翻訳版」という関連性役割Ｒが定義されている。
管理操作受入部２００は、入力されたデータを受け入れ、ＡＲエントリ作成部２０２およびＩＤエントリ作成部２０４に対して出力する。
ＡＲエントリ作成部２０２は、図１９に示したデータから、ＡＲテーブルの各エントリを作成し、ＡＲＤＢ管理部２０６に対して出力する。
図２０は、ＡＲエントリ作成部２０２（図１８）およびＡＲＤＢ管理部２０６により作成され、ＡＲＤＢ２４０に記憶されるＡＲテーブルを例示する図である。
なお、以下の図において、ｎｕｌｌは、属性（ノードタイプ）・名称（ノード名）がないことを示す。
ＡＲＤＢ管理部２０６は、ＡＲエントリ作成部２０２から入力されたＡＲテーブルのエントリを、ＡＲＤＢ２４０に記憶されているＡＲテーブルに、順次、追加する。
ＡＲエントリ作成部２０２およびＡＲＤＢ管理部２０６による処理の結果、図１９に示したデータから、図２０に示すようなＡＲテーブルが作成され、ＡＲＤＢ２４０に記憶される。
図２１は、ＩＤエントリ作成部２０４（図１８）およびＩＤＤＢ管理部２０８により作成され、ＩＤＤＢ２４２に記憶されるＴノード用のＩＤテーブルを例示する図である。
ＩＤエントリ作成部２０４は、図１９に示したデータから、Ｔノード用のＩＤテーブルの各エントリを作成し、ＩＤＤＢ管理部２０８に対して出力する。
ＩＤＤＢ管理部２０８は、ＩＤエントリ作成部２０４から入力されたＴノード用のＩＤテーブルのエントリを、ＩＤＤＢ２４２に記憶されているＩＤテーブルに、順次、追加する。
ＩＤエントリ作成部２０４およびＩＤＤＢ管理部２０８による処理の結果、図１９に示したデータから、図２１に示すようなＴノード用のＩＤテーブルが作成され、ＩＤＤＢ２４２に記憶される。
図２２は、ＩＤエントリ作成部２０４（図１８）およびＩＤＤＢ管理部２０８により作成されるＡノードについてのＩＤテーブルを例示する図である。
また、ＩＤエントリ作成部２０４は、図１９に示したデータから、Ａノード用のＩＤテーブルの各エントリを作成し、ＩＤＤＢ管理部２０８に対して出力する。
ＩＤＤＢ管理部２０８は、ＩＤエントリ作成部２０４から入力されたＩＤテーブルのエントリを、ＩＤＤＢ２４４に記憶されているＡノード用のＩＤテーブルに、順次、追加する。
ＩＤエントリ作成部２０４およびＩＤＤＢ管理部２０８による処理の結果、図１９に示したデータから、図２２に示すようなＡノード用のＩＤテーブルが作成され、ＩＤＤＢ２４４に記憶される。
［データの検索］
例えば、検索者が、ＤＢ装置１２の入出力装置１２６（図７）に対して、「作家シェークスピアを作者とする作品のうち、戯曲ハムレットを原作とする翻訳版を出版している出版社名は？」と、検索条件を質問文の形式で入力すると、検索条件作成部２６２は、この質問文を分析し、図１９に示すように、この質問文を、前半部分と後半部分の２つに分割する。
検索条件作成部２６２は、質問文の前半部分「作家シェークスピアを作者とする作品のうち、」について、「作品」に関するデータを探すということから、検索結果とされるべきＴノードＴｒｅｔの関連性役割Ｒｒｅｔを「作品」とする。
また、検索条件作成部２６２は、前半部分の「シェークスピアを作者とする」の部分から、検索フィルタ（Ｒ１＝「作者」，Ｎ１＝「シェークスピア」）を作成する。
さらに、検索条件作成部２６２は、ＴノードＴｒｅｔの関連性役割（Ｒｒｅｔ＝「作品」）と、検索フィルタ（Ｒ１＝「作者」，Ｎ１＝「シェークスピア」）とから、質問文の前半に対応する検索条件（Ｒｒｅｔ，（ＡＮＴ１），（（Ｒ１，Ｎ１）））＝（作品，（ｎｕｌｌ），（（作者，シェークスピア）））を作成する。
また、検索条件作成部２６２は、後半部分「戯曲ハムレットを原作とする翻訳版を出版している出版社名は？」について、「出版している出版社」に関する情報を検索することから、検索結果とされるべきＴノードＴｒｅｔの関連性役割Ｒｒｅｔを「出版」とする。
また、検索条件作成部２６２は、後半部分に含まれる「ハムレット」を「原作」とするという条件から、第１の検索フィルタ（Ｒ１＝「原作」，Ｎ１＝「ハムレット」）を作成し、さらに、後半部分に含まれる「翻訳版」から、第２の検索フィルタ（Ｒ２＝「翻訳版」，Ｎ２＝「ｎｕｌｌ（指定なし）」）を作成する。
さらに、検索条件作成部２６２は、関連性役割（Ｒｒｅｔ＝「出版」）と、第１の検索フィルタ（Ｒ１＝「原作」，Ｎ１＝「ハムレット」）および第２の検索フィルタ（Ｒ２＝「翻訳版」，Ｎ２＝「ｎｕｌｌ」）とから、質問文の後半に対応する検索条件（Ｒｒｅｔ，（ＡＮＴ１），（（Ｒ１，Ｎ１），（Ｒ２，Ｎ２）））＝（出版，（ｎｕｌｌ），（（原作，ハムレット），（翻訳版，ｎｕｌｌ）））を作成する。
検索制御部２６４は、検索条件作成部２６２が作成した検索条件に基づいて、以下に示すように、ＡＲＤＢ検索部２６６およびＩＤＤＢ検索部２６８を介してＡＲＤＢ２４０（ＡＲテーブル；図２０）およびＩＤＤＢ２４２（Ｔノード用ＩＤテーブル；図２１）を検索し、検索結果を得る。
まず、質問文の前半部分から得られた検索条件から、
（１）検索制御部２６４は、ＩＤＤＢ２４２（図１８）に記憶されたＴノードのＩＤテーブルを参照し、ノード名が「シェークスピア」であるＴノードの識別子（ＩＤ）を全て探し出し、この処理の結果として、Ｔ１１，Ｔ３１，Ｔ４１，Ｔ５１，Ｔ８１（図２１）を得る。
（２）検索制御部２６４は、ＡＲＤＢ２４０に記憶されたＡＲテーブル（図２０）を参照し、役割が「作者」であり、Ｔノード識別子が（１）の処理により得られたＴノードの識別子と一致するＡノード識別子を全て探し出し、この処理の結果として、Ａ１，Ａ４，Ａ９を得る。
（３）検索制御部２６４は、ＡＲテーブルを参照し、（２）の処理により得られたＡノード識別子のうち、関係性役割Ｒが「作品」であるＡノードに対応するＴノードの識別子（ＩＤ；一般には複数個）を探し出し、この処理の結果として、Ｔ４２，Ｔ９２を得る。
（４）検索制御部２６４は、ＩＤテーブルを参照し、識別子が（３）の処理により得られたＴノード識別子に対応するノード名を、そのＴノードの識別子（ＩＤ）とともに、検索結果とする。
つまり、検索制御部２６４は、（１）〜（４）の処理により、質問文の前半部分から得られた検索条件（作品，（ｎｕｌｌ），（（作者，シェークスピア）））に基づく検索を行い、検索結果（Ｔ４２，ハムレット），（Ｔ９２，ベニスの商人）を得る。
次に、質問文の後半部分から得られた検索条件、および、前半部分に対応する検索結果から、
（５）検索制御部２６４は、質問文の前半部分に対応する検索結果（Ｔ４２，ハムレット），（Ｔ９２，ベニスの商人）の内、ノード名が、第１の検索フィルタ（原作，ハムレット）と対応する（Ｔ４２，ハムレット）を選択し、そのノード識別子（ＩＤ）Ｔ４２を得る
（６）検索制御部２６４は、ＡＲテーブルを参照し、役割が「原作」であり、Ｔノード識別子が、（５）の処理により得られたノード識別子（ＩＤ）と一致するＡノードの識別子を全て探し出し、この結果としてＡ１０，Ａ１９を得る。
（７）検索制御部２６４は、ＡＲテーブルを参照し、（６）の処理により得られたＡノード識別子のうち、役割が「翻訳版」であるものを全て探し出し、この結果として、Ａ１０，Ａ１９を得る。
（８）検索制御部２６４は、ＡＲテーブルを参照し、（７）の処理により得られたＡノード識別子のうち、役割が「出版」であるＡノードに対応するＴノード識別子を探し出し、この結果としてＴ１０３を得る（複数の出版社から翻訳版が出されている場合には、複数のＴノード識別子が得られる）。
（９）検索制御部２６４は、ＩＤテーブルを参照し、ノードＩＤが（８）で得られたＴノード識別子に対応するノード名を、そのノード識別子とともに、検索結果（Ｔ１０３，○○出版）とする。
つまり、検索制御部２６４は、（５）〜（９）の処理により、質問文の後半部分から得られた検索条件（出版，（ｎｕｌｌ），（（原作，ハムレット），（翻訳版，ｎｕｌｌ）））に基づく検索を行い、検索結果（Ｔ０１３，○○出版）を得る。
（１０）検索制御部２６４は、検索結果を、入出力装置１２６（図７）などに表示し、検索者に示す。
図２３は、第２のＤＢシステム３の構成を例示する図である。
図２３に示すように、第２のＤＢシステム３は、ＤＢ装置１２と、ＤＢ装置１２と同様なハードウエア（図７）上で、ＤＢプログラム２のＤＢ管理部２０およびＤＢ部２４を実行するＤＢ装置３０と、ＤＢ装置１２と同様なハードウエア上で、ＤＢプログラム２のＤＢ検索部２６を実行する検索装置３２とが、ネットワーク１００を介して接続されて構成される。
このように、ＤＢプログラム２は、必ずしも１つのコンピュータ上で実行されなくともよく、ネットワークを介して接続された複数のコンピュータに分散され、実行されてもよい。
【産業上の利用可能性】本発明は、データベースおよびデータ検索のために利用可能である。
【図１】
2004097679.tif 000027
【図２】
2004097679.tif 000028
【図３】
2004097679.tif 000029
【図４】
2004097679.tif 000030
【図５】
2004097679.tif 000031
【図６】
2004097679.tif 000032
【図７】
2004097679.tif 000033
【図８】
2004097679.tif 000034
【図９】
2004097679.tif 000035
【図１０】
2004097679.tif 000036
【図１１】
2004097679.tif 000037
【図１２】
2004097679.tif 000038
【図１３】
2004097679.tif 000039
【図１４】
2004097679.tif 000040
【図１５】
2004097679.tif 000041
【図１６】
2004097679.tif 000042
【図１７】
2004097679.tif 000043
【図１８】
2004097679.tif 000044
【図１９】
2004097679.tif 000045
【図２０】
2004097679.tif 000046
【図２１】
2004097679.tif 000047
【図２２】
2004097679.tif 000048
【図２３】
2004097679.tif 000049
【国際調査報告】
2004097679.tif 000050
2004097679.tif 000051
2004097679.tif 000052
2004097679.tif 000053