JP2000348038A - 半構造データベースのためのデータ格納装置および方法 - Google Patents
半構造データベースのためのデータ格納装置および方法Info
- Publication number
- JP2000348038A JP2000348038A JP11154783A JP15478399A JP2000348038A JP 2000348038 A JP2000348038 A JP 2000348038A JP 11154783 A JP11154783 A JP 11154783A JP 15478399 A JP15478399 A JP 15478399A JP 2000348038 A JP2000348038 A JP 2000348038A
- Authority
- JP
- Japan
- Prior art keywords
- data
- subtree
- node
- information
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 半構造データベースにおいて、大規模なデー
タの検索を効率化することが課題である。 【解決手段】 指定手段1は、木構造データにおいて、
検索対象となる可能性のある部分木の構造を、エッジの
ラベル等を用いて指定する。抽出手段2は、木構造デー
タを走査して、指定された構造に適合する1つ以上の部
分木の情報を抽出し、格納手段3は、抽出された部分木
に含まれるノード、エッジ等の情報を、部分木毎にまと
めて物理的な記憶領域に格納する。
タの検索を効率化することが課題である。 【解決手段】 指定手段1は、木構造データにおいて、
検索対象となる可能性のある部分木の構造を、エッジの
ラベル等を用いて指定する。抽出手段2は、木構造デー
タを走査して、指定された構造に適合する1つ以上の部
分木の情報を抽出し、格納手段3は、抽出された部分木
に含まれるノード、エッジ等の情報を、部分木毎にまと
めて物理的な記憶領域に格納する。
Description
【0001】
【発明の属する技術分野】本発明は、半構造データベー
スを構成するために用いられるデータ格納装置およびそ
の方法に関する。
スを構成するために用いられるデータ格納装置およびそ
の方法に関する。
【0002】
【従来の技術】従来のリレーショナルデータベースやオ
ブジェクト指向データベース等においては、あらかじめ
データ構造を定義するスキーマとスキーマに従うデータ
の集まりとが管理される。
ブジェクト指向データベース等においては、あらかじめ
データ構造を定義するスキーマとスキーマに従うデータ
の集まりとが管理される。
【0003】例えば、リレーショナルデータベースを用
いて蔵書目録等を作るときは、書籍のスキーマを作る際
に、著者、書籍名、出版社等の属性を定義する。しか
し、著者の人数は事前に決定できないため、通常は著者
の人数の上限を仮定して、スキーマではその上限の人数
までの繰り返しを定義する。このため、上限を超える数
の著者により執筆された書籍が出現した場合には、その
情報を格納することができない。
いて蔵書目録等を作るときは、書籍のスキーマを作る際
に、著者、書籍名、出版社等の属性を定義する。しか
し、著者の人数は事前に決定できないため、通常は著者
の人数の上限を仮定して、スキーマではその上限の人数
までの繰り返しを定義する。このため、上限を超える数
の著者により執筆された書籍が出現した場合には、その
情報を格納することができない。
【0004】これに対して、オブジェクト指向データベ
ースでは、スキーマにより任意数の繰り返しを記述でき
るので、このような問題は解決できる。しかし、あらか
じめ想定していた属性と全く異なるものを格納する必要
があるときには、やはり対応することができない。例え
ば、蔵書目録のスキーマに著者の所属組織の属性が定義
されていない場合、研究レポートの研究機関の名前等を
格納することができない。
ースでは、スキーマにより任意数の繰り返しを記述でき
るので、このような問題は解決できる。しかし、あらか
じめ想定していた属性と全く異なるものを格納する必要
があるときには、やはり対応することができない。例え
ば、蔵書目録のスキーマに著者の所属組織の属性が定義
されていない場合、研究レポートの研究機関の名前等を
格納することができない。
【0005】このように、リレーショナルデータベース
やオブジェクト指向データベースを利用できる分野は、
あらかじめ業務の分析ができ、扱うデータの構造を限定
できるような分野である。したがって、外部から新規の
構造のデータを収集して格納する用途には、これらのデ
ータベースは適していない。例えば、小説等を想定した
蔵書目録のスキーマでは、研究レポートのような文献が
飛び込んできた場合に、著者の人数や所属組織等の属性
を格納できずに困ることになる。
やオブジェクト指向データベースを利用できる分野は、
あらかじめ業務の分析ができ、扱うデータの構造を限定
できるような分野である。したがって、外部から新規の
構造のデータを収集して格納する用途には、これらのデ
ータベースは適していない。例えば、小説等を想定した
蔵書目録のスキーマでは、研究レポートのような文献が
飛び込んできた場合に、著者の人数や所属組織等の属性
を格納できずに困ることになる。
【0006】これに対して、半構造(semi-structured
)データベースでは、リレーショナルデータベースや
オブジェクト指向データベースとは異なり、データ構造
を規定するスキーマがなく、データの中に構造情報が一
緒に管理される。このため、半構造データベースは、あ
らかじめ想定していない新規の構造を持つ未知データ
を、通信ネットワークや外部のソースから収集して格納
していくことが可能である。
)データベースでは、リレーショナルデータベースや
オブジェクト指向データベースとは異なり、データ構造
を規定するスキーマがなく、データの中に構造情報が一
緒に管理される。このため、半構造データベースは、あ
らかじめ想定していない新規の構造を持つ未知データ
を、通信ネットワークや外部のソースから収集して格納
していくことが可能である。
【0007】近年のネットワークの発達により、様々な
業務分野で外部から新規の構造のデータを収集して管理
するシステムが必要になっている。これらの分野におい
ては、新規の構造のデータを格納するために半構造デー
タベースが利用されるようになるだろうと期待される。
業務分野で外部から新規の構造のデータを収集して管理
するシステムが必要になっている。これらの分野におい
ては、新規の構造のデータを格納するために半構造デー
タベースが利用されるようになるだろうと期待される。
【0008】最近では、半構造データベースが、特に、
XML(extensible markup language)等で記述された
構造化文書のデータベース化に利用できるとして注目を
集めている。XMLは、電子商取引等で使われるデータ
構造で、その需要は急激に増加しており、これを取り扱
うデータベースやそのデータベースを核としたインフラ
ストラクチャが望まれている。すでに、半構造データベ
ースに格納されることを前提にしたXMLデータに関す
る問い合わせ言語が、W3C(The World WideWeb Cons
ortium )により提案されている。
XML(extensible markup language)等で記述された
構造化文書のデータベース化に利用できるとして注目を
集めている。XMLは、電子商取引等で使われるデータ
構造で、その需要は急激に増加しており、これを取り扱
うデータベースやそのデータベースを核としたインフラ
ストラクチャが望まれている。すでに、半構造データベ
ースに格納されることを前提にしたXMLデータに関す
る問い合わせ言語が、W3C(The World WideWeb Cons
ortium )により提案されている。
【0009】そこで、半構造データベースにおけるデー
タモデルと格納形式について説明する。半構造データベ
ースはスキーマを持たず、データの中に構造情報を持っ
ている。半構造データベースとして提案されているシス
テムはいくつかあるが、そのデータモデルは、おおむね
図37に示すようなものである。
タモデルと格納形式について説明する。半構造データベ
ースはスキーマを持たず、データの中に構造情報を持っ
ている。半構造データベースとして提案されているシス
テムはいくつかあるが、そのデータモデルは、おおむね
図37に示すようなものである。
【0010】図37のデータモデルは、ノードとエッジ
(リンク)からなる木構造で表現され、複数の論文に関
するデータを表している。エッジにはデータの属性を表
現するラベルが付けられ、末端のノードには値が格納さ
れる。ラベル“paper”、“id”、“titl
e”、“author”、“name”、“posit
ion”、“page”、“firstpage”、お
よび“lastpage”は、それぞれ、論文、論文I
D(識別子)、タイトル、著者、著者名、著者の所属組
織、ページ情報、最初のページ、および最後のページを
表している。
(リンク)からなる木構造で表現され、複数の論文に関
するデータを表している。エッジにはデータの属性を表
現するラベルが付けられ、末端のノードには値が格納さ
れる。ラベル“paper”、“id”、“titl
e”、“author”、“name”、“posit
ion”、“page”、“firstpage”、お
よび“lastpage”は、それぞれ、論文、論文I
D(識別子)、タイトル、著者、著者名、著者の所属組
織、ページ情報、最初のページ、および最後のページを
表している。
【0011】このような木構造モデルを表現するため
に、半構造データベースでは、エッジ情報とノード情報
が分離して記憶装置上に格納される。エッジは、その両
端のノードのノードIDとエッジのラベルからなるテー
ブル形式で格納され、ノードは、ノードIDとノードの
値を納めたレコードからなるテーブル形式で格納され
る。このようなデータモデルと格納形式により、半構造
データベースでは、外部から取得した新規の構造のデー
タを自由に追加することが可能である。
に、半構造データベースでは、エッジ情報とノード情報
が分離して記憶装置上に格納される。エッジは、その両
端のノードのノードIDとエッジのラベルからなるテー
ブル形式で格納され、ノードは、ノードIDとノードの
値を納めたレコードからなるテーブル形式で格納され
る。このようなデータモデルと格納形式により、半構造
データベースでは、外部から取得した新規の構造のデー
タを自由に追加することが可能である。
【0012】また、半構造データベースでは、一般的
に、以下のようなインデックスを用いてデータ検索の高
速化が図られている。 (1)値インデックス 値からノードIDを求める値インデックスを使って、検
索条件の値や範囲から、それに適合するノードIDを検
索することができる。 (2)構造(パス)インデックス パスからノードIDを求める構造インデックスを使っ
て、検索条件のパスからノードIDを検索することがで
きる。パスは木構造モデルの枝を指定する情報であり、
通常、1つ以上のエッジのラベルを用いて表される。図
37のデータモデルの場合は、例えば、“/paper
/author/name”というパスと2つのノード
ID“3”、“6”の対応関係が構造インデックスに登
録され、このパスからノードID“3”、“6”を検索
できる。 (3)エッジインデックス エッジの両端のノードのノードIDに対するエッジイン
デックスを使って、ノードIDからそのノードに隣接す
るエッジを求めることができる。これにより、エッジを
辿る(トラバースする)処理が高速化される。
に、以下のようなインデックスを用いてデータ検索の高
速化が図られている。 (1)値インデックス 値からノードIDを求める値インデックスを使って、検
索条件の値や範囲から、それに適合するノードIDを検
索することができる。 (2)構造(パス)インデックス パスからノードIDを求める構造インデックスを使っ
て、検索条件のパスからノードIDを検索することがで
きる。パスは木構造モデルの枝を指定する情報であり、
通常、1つ以上のエッジのラベルを用いて表される。図
37のデータモデルの場合は、例えば、“/paper
/author/name”というパスと2つのノード
ID“3”、“6”の対応関係が構造インデックスに登
録され、このパスからノードID“3”、“6”を検索
できる。 (3)エッジインデックス エッジの両端のノードのノードIDに対するエッジイン
デックスを使って、ノードIDからそのノードに隣接す
るエッジを求めることができる。これにより、エッジを
辿る(トラバースする)処理が高速化される。
【0013】
【発明が解決しようとする課題】しかしながら、上述し
た従来の半構造データベースに大規模なデータを格納し
てデータ検索を行う場合、以下の理由により、十分な性
能が得られない可能性がある。 (1)検索対象の部分木に含まれるデータが物理記憶領
域に分散する。
た従来の半構造データベースに大規模なデータを格納し
てデータ検索を行う場合、以下の理由により、十分な性
能が得られない可能性がある。 (1)検索対象の部分木に含まれるデータが物理記憶領
域に分散する。
【0014】ノードおよびエッジの各テーブル内ではレ
コードの並び順に特に制限がないので、図37の“pa
per”以下の部分木のような単一の部分木に属するノ
ードやエッジが、物理記憶領域に分散して格納される可
能性がある。このため、この部分木を検索する際に記憶
装置へのアクセスに膨大な時間を要し、検索対象を1つ
のレコードとして格納できるリレーショナルデータベー
スに比べて不利となる。 (2)検索対象の部分木内のトラバースが必要である。
コードの並び順に特に制限がないので、図37の“pa
per”以下の部分木のような単一の部分木に属するノ
ードやエッジが、物理記憶領域に分散して格納される可
能性がある。このため、この部分木を検索する際に記憶
装置へのアクセスに膨大な時間を要し、検索対象を1つ
のレコードとして格納できるリレーショナルデータベー
スに比べて不利となる。 (2)検索対象の部分木内のトラバースが必要である。
【0015】例えば、著者名が“金政泰彦”でタイトル
が“xxxx”の“paper”というような検索の場
合、木構造モデルではエッジを辿る処理、すなわち、部
分木内のトラバースが必要になる。エッジインデックス
を用いてトラバースを高速化したとしても、検索対象を
1つのレコードとして格納できるリレーショナルデータ
ベースに比べて不利となる。 (3)構造インデックスは必ずしも効果的ではない。
が“xxxx”の“paper”というような検索の場
合、木構造モデルではエッジを辿る処理、すなわち、部
分木内のトラバースが必要になる。エッジインデックス
を用いてトラバースを高速化したとしても、検索対象を
1つのレコードとして格納できるリレーショナルデータ
ベースに比べて不利となる。 (3)構造インデックスは必ずしも効果的ではない。
【0016】構造インデックスは、データの構造(パ
ス)が多種なわりには同じ構造のデータの数が少ないと
きに、効果の大きな技術である。これに対して、同じ構
造のデータが大量にある場合は、絞り込みがきかず、効
果が小さい。
ス)が多種なわりには同じ構造のデータの数が少ないと
きに、効果の大きな技術である。これに対して、同じ構
造のデータが大量にある場合は、絞り込みがきかず、効
果が小さい。
【0017】本発明の課題は、半構造データベースにお
いて、大規模なデータの検索を効率化するデータ格納装
置およびその方法を提供することである。
いて、大規模なデータの検索を効率化するデータ格納装
置およびその方法を提供することである。
【0018】
【課題を解決するための手段】図1は、本発明のデータ
格納装置の原理図である。図1のデータ格納装置は、指
定手段1、抽出手段2、および格納手段3を備える。
格納装置の原理図である。図1のデータ格納装置は、指
定手段1、抽出手段2、および格納手段3を備える。
【0019】指定手段1は、木構造データにおいて、検
索対象となる可能性のある部分木の構造を指定し、抽出
手段2は、その木構造データから、指定された構造に適
合する部分木を抽出する。そして、格納手段3は、抽出
された部分木の情報をまとめて格納する。
索対象となる可能性のある部分木の構造を指定し、抽出
手段2は、その木構造データから、指定された構造に適
合する部分木を抽出する。そして、格納手段3は、抽出
された部分木の情報をまとめて格納する。
【0020】検索対象となる可能性のある部分木の構造
とは、木構造データ内でデータ検索の対象となることが
予想されるような部分木を定義する情報である。指定手
段1は、例えば、特定のラベルを指定情報として入力す
ることで、そのラベルを持つエッジの下に接続された部
分木を指定することができる。このような指定情報は、
例えば、ユーザが入力したり、システムが自動的に生成
して入力したりする。
とは、木構造データ内でデータ検索の対象となることが
予想されるような部分木を定義する情報である。指定手
段1は、例えば、特定のラベルを指定情報として入力す
ることで、そのラベルを持つエッジの下に接続された部
分木を指定することができる。このような指定情報は、
例えば、ユーザが入力したり、システムが自動的に生成
して入力したりする。
【0021】抽出手段2は、木構造データを走査して、
指定された構造に適合する1つ以上の部分木の情報を抽
出し、格納手段3は、抽出された部分木に含まれるノー
ド、エッジ等の情報をまとめて格納する。このとき、格
納手段3は、例えば、1つの部分木の情報を物理的に近
接した連続領域にまとめて格納する。したがって、複数
の部分木が抽出された場合には、部分木毎に情報がまと
められて格納される。
指定された構造に適合する1つ以上の部分木の情報を抽
出し、格納手段3は、抽出された部分木に含まれるノー
ド、エッジ等の情報をまとめて格納する。このとき、格
納手段3は、例えば、1つの部分木の情報を物理的に近
接した連続領域にまとめて格納する。したがって、複数
の部分木が抽出された場合には、部分木毎に情報がまと
められて格納される。
【0022】このようなデータ格納装置によれば、指定
された構造の部分木の情報が分散することなくまとめて
格納されるため、その部分木を検索対象としてデータ検
索が行われたとき、必要な情報に効率良くアクセスする
ことができる。したがって、大規模な半構造データベー
スにおいても、データ検索が効率化される。
された構造の部分木の情報が分散することなくまとめて
格納されるため、その部分木を検索対象としてデータ検
索が行われたとき、必要な情報に効率良くアクセスする
ことができる。したがって、大規模な半構造データベー
スにおいても、データ検索が効率化される。
【0023】また、指定手段1は、検索対象となる可能
性のある部分木内の1つ以上のパスを個別に指定して、
それらのパスにより構成される構造を指定することもで
きる。この場合、抽出手段2は、木構造データから、指
定されたパスの末端にあるノードを抽出し、格納手段3
は、抽出されたノードの情報をまとめて格納する。
性のある部分木内の1つ以上のパスを個別に指定して、
それらのパスにより構成される構造を指定することもで
きる。この場合、抽出手段2は、木構造データから、指
定されたパスの末端にあるノードを抽出し、格納手段3
は、抽出されたノードの情報をまとめて格納する。
【0024】このようなデータ格納装置によれば、1つ
以上のパス上に格納された情報が分散することなくまと
めて格納されるため、それらの情報を検索対象としてデ
ータ検索が行われたとき、必要な情報に効率良くアクセ
スすることができる。
以上のパス上に格納された情報が分散することなくまと
めて格納されるため、それらの情報を検索対象としてデ
ータ検索が行われたとき、必要な情報に効率良くアクセ
スすることができる。
【0025】例えば、図1の指定手段1は、後述する図
35の入力装置23に対応し、図1の抽出手段2は、図
35のCPU(中央処理装置)21とメモリ22に対応
する。また、図1の格納手段3は、例えば、図35のメ
モリ22、外部記憶装置25、または可搬記録媒体2
9、あるいは、後述する図36のデータベース30に対
応する。
35の入力装置23に対応し、図1の抽出手段2は、図
35のCPU(中央処理装置)21とメモリ22に対応
する。また、図1の格納手段3は、例えば、図35のメ
モリ22、外部記憶装置25、または可搬記録媒体2
9、あるいは、後述する図36のデータベース30に対
応する。
【0026】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。本実施形態のデータ
格納装置では、半構造データベースの中に存在している
複数の類似の構造を指定して、データアクセスを効率化
するような格納形式を採用する。これにより、リレーシ
ョナルデータベースやオブジェクト指向データベースに
おけるスキーマに基づく最適化と同等の効果が得られ
る。また、既存のリレーショナルデータベースやオブジ
ェクト指向データベースを補助的に用いることで、半構
造データベースにおけるデータ検索が高速化される。
明の実施の形態を詳細に説明する。本実施形態のデータ
格納装置では、半構造データベースの中に存在している
複数の類似の構造を指定して、データアクセスを効率化
するような格納形式を採用する。これにより、リレーシ
ョナルデータベースやオブジェクト指向データベースに
おけるスキーマに基づく最適化と同等の効果が得られ
る。また、既存のリレーショナルデータベースやオブジ
ェクト指向データベースを補助的に用いることで、半構
造データベースにおけるデータ検索が高速化される。
【0027】まず、木構造モデルの部分木のクラスタリ
ングを行って、木構造モデルをノード毎に分割してデー
タベースに格納することで、検索を高速化することを考
える。データを格納する際に、検索対象となることが予
想される部分木をあらかじめ指定して、その部分木内の
情報を物理的に近接する格納領域(近傍領域)にまとめ
て格納することで、検索を高速化することができる。
ングを行って、木構造モデルをノード毎に分割してデー
タベースに格納することで、検索を高速化することを考
える。データを格納する際に、検索対象となることが予
想される部分木をあらかじめ指定して、その部分木内の
情報を物理的に近接する格納領域(近傍領域)にまとめ
て格納することで、検索を高速化することができる。
【0028】例えば、図37の木構造モデルにおいて、
“paper”以下の部分木を検索対象として指定し、
データベースの更新時に、その部分木内の情報をノード
およびエッジの各テーブル内でなるべく連続領域に配置
する。これにより、図2のようなノードテーブルと図3
のようなエッジテーブルが得られる。リレーショナルデ
ータベースの場合は、ノードテーブルとエッジテーブル
がそれぞれ異なるリレーションとして実装される。
“paper”以下の部分木を検索対象として指定し、
データベースの更新時に、その部分木内の情報をノード
およびエッジの各テーブル内でなるべく連続領域に配置
する。これにより、図2のようなノードテーブルと図3
のようなエッジテーブルが得られる。リレーショナルデ
ータベースの場合は、ノードテーブルとエッジテーブル
がそれぞれ異なるリレーションとして実装される。
【0029】図2において、“ID”はノードIDを表
し、“VALUE”はそのノードの値を表す。ここで
は、ノード“1”、“2”、“3”、“4”、“6”、
“7”、“8”、および“9”に対して、それぞれ、値
“12”、“○○に関する研究”、“金政泰彦”、“富
士通研究所”、“久保田和己”、“富士通研究所”、
“58”、および“63”が格納されている。
し、“VALUE”はそのノードの値を表す。ここで
は、ノード“1”、“2”、“3”、“4”、“6”、
“7”、“8”、および“9”に対して、それぞれ、値
“12”、“○○に関する研究”、“金政泰彦”、“富
士通研究所”、“久保田和己”、“富士通研究所”、
“58”、および“63”が格納されている。
【0030】また、図3において、“LABEL”はエ
ッジのラベルを表し、“ID”はそのエッジの両端のノ
ードのノードIDを表す。ここでは、指定された部分木
内の12個のエッジのラベルと、各エッジの両端のノー
ドのノードIDが格納されている。これらのテーブルを
用いれば、1つの“paper”に属する様々な属性デ
ータを、1回のアクセスで記憶装置から主記憶に読み出
すことが可能になる。
ッジのラベルを表し、“ID”はそのエッジの両端のノ
ードのノードIDを表す。ここでは、指定された部分木
内の12個のエッジのラベルと、各エッジの両端のノー
ドのノードIDが格納されている。これらのテーブルを
用いれば、1つの“paper”に属する様々な属性デ
ータを、1回のアクセスで記憶装置から主記憶に読み出
すことが可能になる。
【0031】このように、検索対象となる可能性のある
部分木のノードやエッジを記録媒体の物理的な近傍領域
にまとめて格納することにより、記録媒体アクセスの頻
度が減少し、検索の高速化が図られる。
部分木のノードやエッジを記録媒体の物理的な近傍領域
にまとめて格納することにより、記録媒体アクセスの頻
度が減少し、検索の高速化が図られる。
【0032】次に、部分木をレコード化して、検索を高
速化することを考える。部分木の一部の情報を1つのレ
コードとして集めることにより、部分木内のトラバース
を軽減して、検索をさらに高速化することができる。部
分木のレコード化は、次のようにして行われる。
速化することを考える。部分木の一部の情報を1つのレ
コードとして集めることにより、部分木内のトラバース
を軽減して、検索をさらに高速化することができる。部
分木のレコード化は、次のようにして行われる。
【0033】まず、部分木に選択規則を作用させること
で、レコードを生成する。選択規則は、部分木内の1つ
以上のパスを個別に数え上げて指定する指定情報であ
り、部分木内のパス群を外延的に記述している。この選
択規則は、ユーザまたは外部のシステムから与えられる
か、またはシステムにより自動的に生成される。
で、レコードを生成する。選択規則は、部分木内の1つ
以上のパスを個別に数え上げて指定する指定情報であ
り、部分木内のパス群を外延的に記述している。この選
択規則は、ユーザまたは外部のシステムから与えられる
か、またはシステムにより自動的に生成される。
【0034】例えば、図4の部分木T1は、ノード“n
1”、“n2”、“n3”、“n4”、“n5”、およ
び“n6”と、エッジ“e1”、“e2”、“e3”、
“e4”、“e5”、および“e6”からなっている。
1”、“n2”、“n3”、“n4”、“n5”、およ
び“n6”と、エッジ“e1”、“e2”、“e3”、
“e4”、“e5”、および“e6”からなっている。
【0035】部分木T1に属するパスは、{e1/e
2,e1/e2,e1/e2,e3,e4/e5,e
6}の6つである。このうち、5つのパスの末端のノー
ド“n1”、“n2”、“n3”、“n4”、および
“n6”には、それぞれ、値“abc”、“xyz”、
“ijk”、“100”、および“300”が格納され
ている。
2,e1/e2,e1/e2,e3,e4/e5,e
6}の6つである。このうち、5つのパスの末端のノー
ド“n1”、“n2”、“n3”、“n4”、および
“n6”には、それぞれ、値“abc”、“xyz”、
“ijk”、“100”、および“300”が格納され
ている。
【0036】ここで、パス“e1/e2”を出現順に2
つ選択し、パス“e3”および“e6”を出現順に1つ
ずつ選択して、それらの4つのパスを1つのレコードに
まとめることを意味する選択規則{e1/e2,e1/
e2,e3,e6}を適用する。この場合、パス“e4
/e5”は選択されない。
つ選択し、パス“e3”および“e6”を出現順に1つ
ずつ選択して、それらの4つのパスを1つのレコードに
まとめることを意味する選択規則{e1/e2,e1/
e2,e3,e6}を適用する。この場合、パス“e4
/e5”は選択されない。
【0037】この選択規則により生成されたレコードr
1は、選択されたパスに対応する4つのフィールドf
1、f2、f3、およびf4を含む。そして、これらの
フィールドには、それぞれ、値“abc”、“xy
z”、“100”、および“300”が格納される。こ
のように、各フィールドには、対応するパスにより指定
されるノードの値が格納される。
1は、選択されたパスに対応する4つのフィールドf
1、f2、f3、およびf4を含む。そして、これらの
フィールドには、それぞれ、値“abc”、“xy
z”、“100”、および“300”が格納される。こ
のように、各フィールドには、対応するパスにより指定
されるノードの値が格納される。
【0038】また、図5の部分木T2は、ノード“n
7”、“n8”、“n9”、“n10”、および“n1
1”と、エッジ“e1”、“e2”、“e3”、“e
4”、“e5”、“e6”、および“e7”からなって
いる。部分木T2に属するパスは、{e1/e2,e
3,e4/e5,e6,e7}の5つである。このう
ち、3つのパスの末端のノード“n7”、“n8”、お
よび“n10”には、それぞれ、値“lmn”、“40
0”、および“500”が格納されている。
7”、“n8”、“n9”、“n10”、および“n1
1”と、エッジ“e1”、“e2”、“e3”、“e
4”、“e5”、“e6”、および“e7”からなって
いる。部分木T2に属するパスは、{e1/e2,e
3,e4/e5,e6,e7}の5つである。このう
ち、3つのパスの末端のノード“n7”、“n8”、お
よび“n10”には、それぞれ、値“lmn”、“40
0”、および“500”が格納されている。
【0039】部分木T2に、上述の選択規則{e1/e
2,e1/e2,e3,e6}を適用すると、レコード
r2が生成される。この場合、フィールドf1、f2、
f3、およびf4には、それぞれ、値“lmn”、“N
ULL”、“400”、および“500”が格納され
る。フィールドf2の“NULL”は、選択規則の2番
目のパス“e1/e2”に対応するパスが部分木T2に
存在しないことを表している。
2,e1/e2,e3,e6}を適用すると、レコード
r2が生成される。この場合、フィールドf1、f2、
f3、およびf4には、それぞれ、値“lmn”、“N
ULL”、“400”、および“500”が格納され
る。フィールドf2の“NULL”は、選択規則の2番
目のパス“e1/e2”に対応するパスが部分木T2に
存在しないことを表している。
【0040】次に、生成されたレコードへのポインタを
部分木に付加する。このとき、部分木のルートに新たな
エッジ“er”を付加し、このエッジ“er”の先に新
たなノードを生成して、そのノードにレコードへのポイ
ンタを格納する。これにより、部分木のルートとレコー
ドがエッジ“er”を介して結合される。そして、レコ
ードに集められたパス群に含まれるエッジとノードを部
分木から削除し、レコードには、新たに生成されたノー
ドへのポインタを格納する。
部分木に付加する。このとき、部分木のルートに新たな
エッジ“er”を付加し、このエッジ“er”の先に新
たなノードを生成して、そのノードにレコードへのポイ
ンタを格納する。これにより、部分木のルートとレコー
ドがエッジ“er”を介して結合される。そして、レコ
ードに集められたパス群に含まれるエッジとノードを部
分木から削除し、レコードには、新たに生成されたノー
ドへのポインタを格納する。
【0041】図4および図5のデータにこのような操作
を施すと、図6のようなデータ表現が得られる。図6に
おいては、修正された部分木T1′およびT2′と、選
択規則{e1/e2,e1/e2,e3,e6}と、レ
コードr1およびr2とにより、データ表現が最適化さ
れている。
を施すと、図6のようなデータ表現が得られる。図6に
おいては、修正された部分木T1′およびT2′と、選
択規則{e1/e2,e1/e2,e3,e6}と、レ
コードr1およびr2とにより、データ表現が最適化さ
れている。
【0042】部分木T1′のルートにはエッジ“er”
を介してノード“n12”が付加され、このノードには
レコードr1へのポインタ“p−r1”が格納される。
また、レコードr1のフィールドf0には、ノード“n
12”へのポインタ“p−n12”が格納される。
を介してノード“n12”が付加され、このノードには
レコードr1へのポインタ“p−r1”が格納される。
また、レコードr1のフィールドf0には、ノード“n
12”へのポインタ“p−n12”が格納される。
【0043】部分木T2′のルートにはエッジ“er”
を介してノード“n13”が付加され、このノードには
レコードr2へのポインタ“p−r2”が格納される。
また、レコードr2のフィールドf0には、ノード“n
13”へのポインタ“p−n13”が格納される。
を介してノード“n13”が付加され、このノードには
レコードr2へのポインタ“p−r2”が格納される。
また、レコードr2のフィールドf0には、ノード“n
13”へのポインタ“p−n13”が格納される。
【0044】図7は、このようにして最適化された部分
木を繋ぎ合わせた全体木のデータ表現を示している。一
般には、複数の選択規則を用いて部分木の構造を定義す
ることにより、様々な部分木をレコード化することがで
きる。ここでは、2つの選択規則S1={s1,s2,
s3}、S2={s4,s5,s6,s7}を用いて、
それぞれ異なる部分木群に対応するレコード群R1、R
2を生成している。
木を繋ぎ合わせた全体木のデータ表現を示している。一
般には、複数の選択規則を用いて部分木の構造を定義す
ることにより、様々な部分木をレコード化することがで
きる。ここでは、2つの選択規則S1={s1,s2,
s3}、S2={s4,s5,s6,s7}を用いて、
それぞれ異なる部分木群に対応するレコード群R1、R
2を生成している。
【0045】修正された全体木に格納されたポインタp
−r1,p−r2,...,p−rnは、それぞれ、レ
コード群R1のレコードr1,r2,...,rnを指
し、ポインタp−r(n+1),p−r(n+
2),...,p−rmは、それぞれ、レコード群R2
のレコードr(n+1),r(n+2),...,rm
を指している。
−r1,p−r2,...,p−rnは、それぞれ、レ
コード群R1のレコードr1,r2,...,rnを指
し、ポインタp−r(n+1),p−r(n+
2),...,p−rmは、それぞれ、レコード群R2
のレコードr(n+1),r(n+2),...,rm
を指している。
【0046】リレーショナルデータベースとのアナロジ
ーでとらえれば、選択規則がスキーマに対応し、レコー
ド群がリレーションに対応し、レコードがタプルに対応
する。また、修正された全体木にレコードへのポインタ
が存在している点が、リレーショナルデータベースとは
異なっている。
ーでとらえれば、選択規則がスキーマに対応し、レコー
ド群がリレーションに対応し、レコードがタプルに対応
する。また、修正された全体木にレコードへのポインタ
が存在している点が、リレーショナルデータベースとは
異なっている。
【0047】このような修正された全体木のノードとエ
ッジをテーブル形式で格納すると、図8のようなデータ
ベースが得られる。図8では、ノードテーブルおよびエ
ッジテーブルが、修正された全体木の情報に対応し、選
択規則S1、S2とレコード群R1、R2に対応する2
つのレコードテーブルが、全体木から削除された情報に
対応する。
ッジをテーブル形式で格納すると、図8のようなデータ
ベースが得られる。図8では、ノードテーブルおよびエ
ッジテーブルが、修正された全体木の情報に対応し、選
択規則S1、S2とレコード群R1、R2に対応する2
つのレコードテーブルが、全体木から削除された情報に
対応する。
【0048】リレーショナルデータベースの場合は、こ
れらのテーブルがそれぞれ異なるリレーションとして実
装され、選択規則は部分木内のパス群の指定情報として
保存される。こうしてレコード化された部分木に関して
も、レコード用のインデックス等を用いて検索の高速化
を図ることが可能である。
れらのテーブルがそれぞれ異なるリレーションとして実
装され、選択規則は部分木内のパス群の指定情報として
保存される。こうしてレコード化された部分木に関して
も、レコード用のインデックス等を用いて検索の高速化
を図ることが可能である。
【0049】次に、このようにして格納されたデータを
検索する手順について説明する。例えば、図37のよう
な木構造モデルにおいて、選択規則を{/paper/
id/,/paper/title/,/paper/
author/name/}として、部分木をレコード
化する。
検索する手順について説明する。例えば、図37のよう
な木構造モデルにおいて、選択規則を{/paper/
id/,/paper/title/,/paper/
author/name/}として、部分木をレコード
化する。
【0050】これにより、各論文の論文ID、タイト
ル、および第1著者名の情報が全体木から削除されて、
それらの値が、それぞれ、レコードのフィールドf1、
f2、およびf3に格納される。第1著者の所属組織、
第2著者以降の著者名および所属組織、ページ情報等は
全体木に残される。
ル、および第1著者名の情報が全体木から削除されて、
それらの値が、それぞれ、レコードのフィールドf1、
f2、およびf3に格納される。第1著者の所属組織、
第2著者以降の著者名および所属組織、ページ情報等は
全体木に残される。
【0051】こうして生成された最適化データベースに
おいて、タイトルが“xxxx”で著者名が“yyy
y”の論文をデータ検索装置が検索する場合の手順は、
以下のようになる。 [P1]まず、データ検索装置は、図9に示すように、
部分木のレコード群において、f2(title)およ
びf3(name)のインデックスを順に使って、与え
られた検索条件“f2:xxxx AND f3:yy
yy”を満たすレコードを検索する。そして、得られた
レコードを結果A1として保持する。また、タイトルに
対する検索条件“f2:xxxx”のみを用いて絞り込
みを行い、得られたレコードを中間結果B1として保持
する。 [P2]次に、図10に示すように、全体木においてパ
ス“/paper/author/name/”を用い
て第2著者以降の著者名を検索し、著者名に対する検索
条件“yyyy”を満たすノード“6”を求める。そし
て、そのノードからエッジを辿ってその部分木に含まれ
るエッジ“er”を求め、そのエッジの先のノード“1
4”に格納されたレコードへのポインタ“p−ri”を
取り出す。このような処理を繰り返して、得られたポイ
ンタの集合{p−ri,p−rj,...}を中間結果
B2として保持する。 [P3]次に、中間結果B1と中間結果B2をジョイン
して、中間結果B2の各ポインタが指すレコードを中間
結果B1から抽出し、得られたレコードを結果A2とし
て保持する。 [P4]結果A1は、タイトルが“xxxx”で第1著
者名が“yyyy”の論文のレコードに対応し、結果A
2は、タイトルが“xxxx”で第2著者以降の著者名
が“yyyy”の論文のレコードに対応する。そこで、
結果A1と結果A2のユニオン(和集合)を求めて、検
索結果とする。
おいて、タイトルが“xxxx”で著者名が“yyy
y”の論文をデータ検索装置が検索する場合の手順は、
以下のようになる。 [P1]まず、データ検索装置は、図9に示すように、
部分木のレコード群において、f2(title)およ
びf3(name)のインデックスを順に使って、与え
られた検索条件“f2:xxxx AND f3:yy
yy”を満たすレコードを検索する。そして、得られた
レコードを結果A1として保持する。また、タイトルに
対する検索条件“f2:xxxx”のみを用いて絞り込
みを行い、得られたレコードを中間結果B1として保持
する。 [P2]次に、図10に示すように、全体木においてパ
ス“/paper/author/name/”を用い
て第2著者以降の著者名を検索し、著者名に対する検索
条件“yyyy”を満たすノード“6”を求める。そし
て、そのノードからエッジを辿ってその部分木に含まれ
るエッジ“er”を求め、そのエッジの先のノード“1
4”に格納されたレコードへのポインタ“p−ri”を
取り出す。このような処理を繰り返して、得られたポイ
ンタの集合{p−ri,p−rj,...}を中間結果
B2として保持する。 [P3]次に、中間結果B1と中間結果B2をジョイン
して、中間結果B2の各ポインタが指すレコードを中間
結果B1から抽出し、得られたレコードを結果A2とし
て保持する。 [P4]結果A1は、タイトルが“xxxx”で第1著
者名が“yyyy”の論文のレコードに対応し、結果A
2は、タイトルが“xxxx”で第2著者以降の著者名
が“yyyy”の論文のレコードに対応する。そこで、
結果A1と結果A2のユニオン(和集合)を求めて、検
索結果とする。
【0052】これらのレコードのフィールドf1の論文
IDを用いれば、論文のテキストや添付図等の情報を得
ることができる。また、ページ情報等の全体木に残って
いる属性データを求める場合は、レコードのフィールド
f0のポインタを用いて、全体木に残された部分木を辿
ればよい。
IDを用いれば、論文のテキストや添付図等の情報を得
ることができる。また、ページ情報等の全体木に残って
いる属性データを求める場合は、レコードのフィールド
f0のポインタを用いて、全体木に残された部分木を辿
ればよい。
【0053】この検索方法の特徴は、[P1]のレコー
ド群の検索にあり、レコード化された部分木を用いるこ
とで、部分木内のトラバースを抑制することができる。
したがって、検索対象のレコード化率を上げれば、検索
速度をリレーショナルデータベースに近づけることが可
能である。また、[P1]と[P2]の処理を並列に行
えば、検索速度はさらに向上する。
ド群の検索にあり、レコード化された部分木を用いるこ
とで、部分木内のトラバースを抑制することができる。
したがって、検索対象のレコード化率を上げれば、検索
速度をリレーショナルデータベースに近づけることが可
能である。また、[P1]と[P2]の処理を並列に行
えば、検索速度はさらに向上する。
【0054】次に、上述した部分木のクラスタリングと
選択的レコード化の処理について、より詳細に説明す
る。まず、図37の部分木のクラスタリングにおいて、
図2のノードテーブルと図3のエッジテーブルをリレー
ショナルデータベースのテーブルとして格納する場合を
考える。この場合、データベースへのアクセスには、S
QL(structured query language )等のインタフェー
スが用いられる。ここでは、高速化のため、図3のエッ
ジテーブルを図11、12、13に示す3つのテーブル
に分割して格納し、さらに、図14のパステーブルを追
加している。これらのテーブルは、それぞれ、リレーシ
ョナルデータベースの異なるリレーションとして実装さ
れる。
選択的レコード化の処理について、より詳細に説明す
る。まず、図37の部分木のクラスタリングにおいて、
図2のノードテーブルと図3のエッジテーブルをリレー
ショナルデータベースのテーブルとして格納する場合を
考える。この場合、データベースへのアクセスには、S
QL(structured query language )等のインタフェー
スが用いられる。ここでは、高速化のため、図3のエッ
ジテーブルを図11、12、13に示す3つのテーブル
に分割して格納し、さらに、図14のパステーブルを追
加している。これらのテーブルは、それぞれ、リレーシ
ョナルデータベースの異なるリレーションとして実装さ
れる。
【0055】図11のラベルテーブルは、ラベルID
(LABELID)とラベル(LABEL)の対応関係
を格納し、図12の親ノードテーブルは、ノードID
(ID)、そのノードの親ノードのノードID(PAR
ENT)、およびそれらのノードを結ぶエッジのラベル
のラベルID(LABELID)の対応関係を格納す
る。
(LABELID)とラベル(LABEL)の対応関係
を格納し、図12の親ノードテーブルは、ノードID
(ID)、そのノードの親ノードのノードID(PAR
ENT)、およびそれらのノードを結ぶエッジのラベル
のラベルID(LABELID)の対応関係を格納す
る。
【0056】また、図13の子ノードテーブルは、ノー
ドID(ID)、そのノードの子ノードのノードID
(CHILD)、およびそれらのノードを結ぶエッジの
ラベルのラベルID(LABELID)の対応関係を格
納し、図14のパステーブルは、ノードID(ID)と
ルートノードからそのノードに至るパス(PATH)の
対応関係を格納する。
ドID(ID)、そのノードの子ノードのノードID
(CHILD)、およびそれらのノードを結ぶエッジの
ラベルのラベルID(LABELID)の対応関係を格
納し、図14のパステーブルは、ノードID(ID)と
ルートノードからそのノードに至るパス(PATH)の
対応関係を格納する。
【0057】ノードテーブルは、値インデックスとして
用いることができ、親ノードテーブルと子ノードテーブ
ルは、エッジインデックスとして用いることができ、パ
ステーブルは、構造インデックスとして用いることがで
きる。
用いることができ、親ノードテーブルと子ノードテーブ
ルは、エッジインデックスとして用いることができ、パ
ステーブルは、構造インデックスとして用いることがで
きる。
【0058】これらのテーブルで用いられる属性データ
のデータ型と長さは、例えば、図15に示すようにな
る。図15において、データ型“NUMBER”は数を
表し、データ型“VARCHAR2”は可変長文字列を
表す。また、図2のノードテーブルと図11のラベルテ
ーブルは、それぞれ、深さ優先(depth-first traversa
l )アルゴリズムによりクラスタリングされている。
のデータ型と長さは、例えば、図15に示すようにな
る。図15において、データ型“NUMBER”は数を
表し、データ型“VARCHAR2”は可変長文字列を
表す。また、図2のノードテーブルと図11のラベルテ
ーブルは、それぞれ、深さ優先(depth-first traversa
l )アルゴリズムによりクラスタリングされている。
【0059】明示的に検索対象の部分木を指定しないで
クラスタリングを行う場合は、全体木に対してクラスタ
リングのアルゴリズムを指定することにより、階層的に
部分木がクラスタリングされる。したがって、図37に
示されていない他の論文の部分木についても、同様のク
ラスタリングが行われ、その結果が各テーブルに追加さ
れる。このようなクラスタリングによれば、木構造モデ
ルの各階層において、1つの部分木に属するノードやエ
ッジの情報が近傍領域にまとめて格納され、検索が高速
化される。
クラスタリングを行う場合は、全体木に対してクラスタ
リングのアルゴリズムを指定することにより、階層的に
部分木がクラスタリングされる。したがって、図37に
示されていない他の論文の部分木についても、同様のク
ラスタリングが行われ、その結果が各テーブルに追加さ
れる。このようなクラスタリングによれば、木構造モデ
ルの各階層において、1つの部分木に属するノードやエ
ッジの情報が近傍領域にまとめて格納され、検索が高速
化される。
【0060】図16は、このようなクラスタリングに基
づくデータ格納処理のフローチャートである。データ格
納装置は、まず、ルートノードを現在ノードとしてセッ
トし(ステップST1)、現在ノードをデータベースに
格納する(ステップST2)。
づくデータ格納処理のフローチャートである。データ格
納装置は、まず、ルートノードを現在ノードとしてセッ
トし(ステップST1)、現在ノードをデータベースに
格納する(ステップST2)。
【0061】次に、現在ノードが終端ノードか否かをチ
ェックする(ステップST3)。終端ノードとは、図3
7のノード“3”等のように、それより下にエッジが存
在しないノードを意味する。現在ノードが終端ノードで
なければ、まだトラバースされていないエッジの1つを
選択し、現在エッジとしてセットする(ステップST
7)。そして、現在エッジを下方向にトラバースして、
子ノードを現在ノードにセットし(ステップST8)、
ステップST2以降の処理を繰り返す。ステップST2
では、現在ノードと現在エッジがデータベースに格納さ
れる。
ェックする(ステップST3)。終端ノードとは、図3
7のノード“3”等のように、それより下にエッジが存
在しないノードを意味する。現在ノードが終端ノードで
なければ、まだトラバースされていないエッジの1つを
選択し、現在エッジとしてセットする(ステップST
7)。そして、現在エッジを下方向にトラバースして、
子ノードを現在ノードにセットし(ステップST8)、
ステップST2以降の処理を繰り返す。ステップST2
では、現在ノードと現在エッジがデータベースに格納さ
れる。
【0062】ステップST3において、現在ノードが終
端ノードであれば、現在エッジを上方向にトラバースし
て、親ノードを現在ノードにセットする(ステップST
4)。そして、現在ノードのすべてのエッジについて、
下方向のトラバースが終了したか否かをチェックし(ス
テップST5)、トラバースされていないエッジがあれ
ば、ステップST2以降の処理を繰り返す。
端ノードであれば、現在エッジを上方向にトラバースし
て、親ノードを現在ノードにセットする(ステップST
4)。そして、現在ノードのすべてのエッジについて、
下方向のトラバースが終了したか否かをチェックし(ス
テップST5)、トラバースされていないエッジがあれ
ば、ステップST2以降の処理を繰り返す。
【0063】ステップST5において、すべてのエッジ
が下方向にトラバースされていれば、現在ノードがルー
トノードか否かをチェックする(ステップST6)。現
在ノードがルートノードでなければ、ステップST4以
降の処理を繰り返し、現在ノードがルートノードであれ
ば、処理を終了する。
が下方向にトラバースされていれば、現在ノードがルー
トノードか否かをチェックする(ステップST6)。現
在ノードがルートノードでなければ、ステップST4以
降の処理を繰り返し、現在ノードがルートノードであれ
ば、処理を終了する。
【0064】図17は、図16のステップST2におけ
る現在ノードと現在エッジの格納処理のフローチャート
である。データ格納装置は、まず、現在ノードをノード
テーブルに追加する(ステップST11)。次に、現在
エッジが選択されていれば、そのラベルが新規のラベル
か否かをチェックする(ステップST12)。ここで、
ラベルテーブルに存在しないラベルは、新規のラベルと
みなされる。
る現在ノードと現在エッジの格納処理のフローチャート
である。データ格納装置は、まず、現在ノードをノード
テーブルに追加する(ステップST11)。次に、現在
エッジが選択されていれば、そのラベルが新規のラベル
か否かをチェックする(ステップST12)。ここで、
ラベルテーブルに存在しないラベルは、新規のラベルと
みなされる。
【0065】現在エッジのラベルが新規のラベルでなけ
れば、現在ノードに関する情報を親ノードテーブルに追
加し(ステップST13)、現在ノードのパスをパステ
ーブルに追加して(ステップST14)、図16の処理
に復帰する。また、ステップST12において、現在エ
ッジのラベルが新規のラベルであれば、そのラベルをラ
ベルテーブルに追加して(ステップST15)、ステッ
プST13以降の処理を行う。
れば、現在ノードに関する情報を親ノードテーブルに追
加し(ステップST13)、現在ノードのパスをパステ
ーブルに追加して(ステップST14)、図16の処理
に復帰する。また、ステップST12において、現在エ
ッジのラベルが新規のラベルであれば、そのラベルをラ
ベルテーブルに追加して(ステップST15)、ステッ
プST13以降の処理を行う。
【0066】また、図18は、図16のステップST8
における下方向のトラバース処理のフローチャートであ
る。データ格納装置は、まず、現在エッジに関する情報
を子ノードテーブルに追加する(ステップST21)。
そして、現在エッジの先の子ノードを現在ノードにセッ
トして(ステップST22)、図16の処理に復帰す
る。
における下方向のトラバース処理のフローチャートであ
る。データ格納装置は、まず、現在エッジに関する情報
を子ノードテーブルに追加する(ステップST21)。
そして、現在エッジの先の子ノードを現在ノードにセッ
トして(ステップST22)、図16の処理に復帰す
る。
【0067】このようなデータ格納処理により、半構造
データベースの木構造モデルがリレーショナルデータベ
ースに格納される。ラベルテーブル、親ノードテーブ
ル、および子ノードテーブルの代わりに、図3のような
エッジテーブルを用いる場合も同様である。また、リレ
ーショナルデータベースの代わりにオブジェクト指向デ
ータベースを利用する場合は、各テーブルのレコードに
対応するオブジェクトを生成して、オブジェクト指向デ
ータベースに格納すればよい。
データベースの木構造モデルがリレーショナルデータベ
ースに格納される。ラベルテーブル、親ノードテーブ
ル、および子ノードテーブルの代わりに、図3のような
エッジテーブルを用いる場合も同様である。また、リレ
ーショナルデータベースの代わりにオブジェクト指向デ
ータベースを利用する場合は、各テーブルのレコードに
対応するオブジェクトを生成して、オブジェクト指向デ
ータベースに格納すればよい。
【0068】また、ノードテーブル、ラベルテーブル、
親ノードテーブル、子ノードテーブル、およびパステー
ブルをリレーショナルデータベースに格納する代わり
に、直接、ページ管理機構上に実装することも可能であ
る。ページとは、あらかじめ決められた固定長の格納領
域(ブロック)に格納された情報に対応する。ページ管
理機構上に実装する場合、5つのテーブルのそれぞれに
対応するページが用意される。
親ノードテーブル、子ノードテーブル、およびパステー
ブルをリレーショナルデータベースに格納する代わり
に、直接、ページ管理機構上に実装することも可能であ
る。ページとは、あらかじめ決められた固定長の格納領
域(ブロック)に格納された情報に対応する。ページ管
理機構上に実装する場合、5つのテーブルのそれぞれに
対応するページが用意される。
【0069】この場合のデータ格納処理は、基本的に図
16と同様であるが、ステップST2における現在ノー
ドと現在エッジの格納処理は、図19に示すようにな
る。データ格納装置は、まず、現在ノードをノードのペ
ージに追加し(ステップST31)。現在エッジのラベ
ルが新規のラベルか否かをチェックする(ステップST
32)。
16と同様であるが、ステップST2における現在ノー
ドと現在エッジの格納処理は、図19に示すようにな
る。データ格納装置は、まず、現在ノードをノードのペ
ージに追加し(ステップST31)。現在エッジのラベ
ルが新規のラベルか否かをチェックする(ステップST
32)。
【0070】現在エッジのラベルが新規のラベルでなけ
れば、現在ノードに関する情報を親ノードのページに追
加し(ステップST33)、現在ノードのパスをパスの
ページに追加して(ステップST34)、図16の処理
に復帰する。また、ステップST32において、現在エ
ッジのラベルが新規のラベルであれば、そのラベルをラ
ベルのページに追加して(ステップST35)、ステッ
プST33以降の処理を行う。
れば、現在ノードに関する情報を親ノードのページに追
加し(ステップST33)、現在ノードのパスをパスの
ページに追加して(ステップST34)、図16の処理
に復帰する。また、ステップST32において、現在エ
ッジのラベルが新規のラベルであれば、そのラベルをラ
ベルのページに追加して(ステップST35)、ステッ
プST33以降の処理を行う。
【0071】ステップST31、ST33、ST34、
およびST35において、格納領域が不足する場合は、
データ格納装置は、新たなページを確保する。また、情
報を追加する毎に、アクセスのためのインデックスを更
新する。
およびST35において、格納領域が不足する場合は、
データ格納装置は、新たなページを確保する。また、情
報を追加する毎に、アクセスのためのインデックスを更
新する。
【0072】また、図16のステップST8における下
方向のトラバース処理は、図20に示すようになる。デ
ータ格納装置は、まず、現在エッジに関する情報を子ノ
ードのページに追加し、インデックスを更新する(ステ
ップST41)。このとき、格納領域が不足する場合
は、新たなページを確保する。そして、現在エッジの先
の子ノードを現在ノードにセットして(ステップST4
2)、図16の処理に復帰する。
方向のトラバース処理は、図20に示すようになる。デ
ータ格納装置は、まず、現在エッジに関する情報を子ノ
ードのページに追加し、インデックスを更新する(ステ
ップST41)。このとき、格納領域が不足する場合
は、新たなページを確保する。そして、現在エッジの先
の子ノードを現在ノードにセットして(ステップST4
2)、図16の処理に復帰する。
【0073】ところで、リレーショナルデータベースに
は、複数のテーブルを共通属性でクラスタリングする機
能を持つものがある。このクラスタリング機能を利用し
て、ノードテーブル、親ノードテーブル、および子ノー
ドテーブルをノードIDでクラスタリングすることがで
きる。この場合のデータ格納処理は、図16、17、1
8の処理と同様である。このようなクラスタリングによ
り、記憶装置アクセスをさらに削減することができる。
は、複数のテーブルを共通属性でクラスタリングする機
能を持つものがある。このクラスタリング機能を利用し
て、ノードテーブル、親ノードテーブル、および子ノー
ドテーブルをノードIDでクラスタリングすることがで
きる。この場合のデータ格納処理は、図16、17、1
8の処理と同様である。このようなクラスタリングによ
り、記憶装置アクセスをさらに削減することができる。
【0074】また、共通属性によるクラスタリングをペ
ージ管理機構上で実現する場合は、ノードテーブル、親
ノードテーブル、および子ノードテーブルに対応する共
通のページと、ラベルテーブルおよびパステーブルのそ
れぞれに対応するページが用意される。
ージ管理機構上で実現する場合は、ノードテーブル、親
ノードテーブル、および子ノードテーブルに対応する共
通のページと、ラベルテーブルおよびパステーブルのそ
れぞれに対応するページが用意される。
【0075】この場合のデータ格納処理は、基本的に図
16と同様であるが、ステップST2における現在ノー
ドと現在エッジの格納処理は、図21に示すようにな
る。図21のステップST51〜ST55の処理は、基
本的に図19のステップST31〜ST35と同様であ
る。ただし、ステップST51、ST53、およびST
54においては、ノードテーブル、親ノードテーブル、
および子ノードテーブルに対応する共通のページに情報
が追加される。
16と同様であるが、ステップST2における現在ノー
ドと現在エッジの格納処理は、図21に示すようにな
る。図21のステップST51〜ST55の処理は、基
本的に図19のステップST31〜ST35と同様であ
る。ただし、ステップST51、ST53、およびST
54においては、ノードテーブル、親ノードテーブル、
および子ノードテーブルに対応する共通のページに情報
が追加される。
【0076】また、図16のステップST8における下
方向のトラバース処理は、図22に示すようになる。図
22のステップST61、ST62の処理は、基本的に
図20のステップST41、ST42と同様である。た
だし、ステップST61においては、ノードテーブル、
親ノードテーブル、および子ノードテーブルに対応する
共通のページが新たに作成され、そのページに情報が追
加される。
方向のトラバース処理は、図22に示すようになる。図
22のステップST61、ST62の処理は、基本的に
図20のステップST41、ST42と同様である。た
だし、ステップST61においては、ノードテーブル、
親ノードテーブル、および子ノードテーブルに対応する
共通のページが新たに作成され、そのページに情報が追
加される。
【0077】次に、部分木内のパス群を記述する選択規
則を用いて、部分木の選択的レコード化を行う場合を考
える。例えば、図23のような木構造のデータモデルが
与えられたとき、検索対象として“paper”以下の
部分木を指定し、その部分木に選択規則を作用させて、
全体木を最適化する。
則を用いて、部分木の選択的レコード化を行う場合を考
える。例えば、図23のような木構造のデータモデルが
与えられたとき、検索対象として“paper”以下の
部分木を指定し、その部分木に選択規則を作用させて、
全体木を最適化する。
【0078】図23において、ラベル“pos.”、
“first.”、および“last.”は、それぞ
れ、“position”、“firstpage”、
および“lastpage”と等価であるものとする。
また、選択規則としては、s={id,title,a
uthor/name,author/positio
n,author/name,author/posi
tion}が用いられる。
“first.”、および“last.”は、それぞ
れ、“position”、“firstpage”、
および“lastpage”と等価であるものとする。
また、選択規則としては、s={id,title,a
uthor/name,author/positio
n,author/name,author/posi
tion}が用いられる。
【0079】このとき、選択規則sにより最適化された
全体木とレコード群は、図24のようになる。ここで
は、選択規則sにより、2つの論文の部分木に対応する
2つのレコードr1およびr2が生成され、レコードテ
ーブルに格納されている。また、全体木において、ラベ
ル“s”を有するエッジの先のノードには、生成された
レコードのIDがそのレコードへのポインタとして格納
されている。ノード“29”は、レコードr1のID
“1”を格納し、ノード“30”は、レコードr2のI
D“2”を格納する。
全体木とレコード群は、図24のようになる。ここで
は、選択規則sにより、2つの論文の部分木に対応する
2つのレコードr1およびr2が生成され、レコードテ
ーブルに格納されている。また、全体木において、ラベ
ル“s”を有するエッジの先のノードには、生成された
レコードのIDがそのレコードへのポインタとして格納
されている。ノード“29”は、レコードr1のID
“1”を格納し、ノード“30”は、レコードr2のI
D“2”を格納する。
【0080】また、レコードテーブルのレコードr1お
よびr2の先頭のフィールドfidには、レコードID
が格納され、2番目のフィールドf0には、全体木の対
応するノードのノードIDがポインタとして格納され
る。3番目以降のフィールドf1〜f6は、選択規則s
の6つのパスに対応し、それぞれ、対応するパスの末端
のノードの値を格納している。
よびr2の先頭のフィールドfidには、レコードID
が格納され、2番目のフィールドf0には、全体木の対
応するノードのノードIDがポインタとして格納され
る。3番目以降のフィールドf1〜f6は、選択規則s
の6つのパスに対応し、それぞれ、対応するパスの末端
のノードの値を格納している。
【0081】例えば、レコードr1のフィールドf1、
f2、f3、f4、f5、およびf6には、それぞれ、
値“id1”、“xxxx”、“name1”、“po
s1”、“name2”、および“pos2”が格納さ
れている。
f2、f3、f4、f5、およびf6には、それぞれ、
値“id1”、“xxxx”、“name1”、“po
s1”、“name2”、および“pos2”が格納さ
れている。
【0082】図24のデータ構造をリレーショナルデー
タベースに格納する場合は、全体木に対応して図25か
ら図29までに示すような5つのテーブルが生成され
る。図25はノードテーブルを表し、図26はラベルテ
ーブルを表し、図27は親ノードテーブルを表し、図2
8は子ノードテーブルを表し、図29はパステーブルを
表す。これらの5つのテーブルと図24のレコードテー
ブルとを合わせて、合計6つのテーブルが格納される。
タベースに格納する場合は、全体木に対応して図25か
ら図29までに示すような5つのテーブルが生成され
る。図25はノードテーブルを表し、図26はラベルテ
ーブルを表し、図27は親ノードテーブルを表し、図2
8は子ノードテーブルを表し、図29はパステーブルを
表す。これらの5つのテーブルと図24のレコードテー
ブルとを合わせて、合計6つのテーブルが格納される。
【0083】このように、検索対象の部分木に選択規則
を適用してレコード化を行う場合も、深さ優先アルゴリ
ズムのような適当なアルゴリズムを用いてクラスタリン
グを行うことができる。この場合のデータ格納処理は、
基本的に図16と同様であるが、ステップST2におけ
る現在ノードと現在エッジの格納処理は、図30に示す
ようになる。
を適用してレコード化を行う場合も、深さ優先アルゴリ
ズムのような適当なアルゴリズムを用いてクラスタリン
グを行うことができる。この場合のデータ格納処理は、
基本的に図16と同様であるが、ステップST2におけ
る現在ノードと現在エッジの格納処理は、図30に示す
ようになる。
【0084】データ格納装置は、まず、現在ノードが選
択規則を満たすか否かをチェックする(ステップST7
1)。現在ノードが選択規則を満たさなければ、現在ノ
ードをノードテーブルに追加する(ステップST7
2)。次に、現在エッジが選択されていれば、そのラベ
ルが新規のラベルか否かをチェックする(ステップST
73)。
択規則を満たすか否かをチェックする(ステップST7
1)。現在ノードが選択規則を満たさなければ、現在ノ
ードをノードテーブルに追加する(ステップST7
2)。次に、現在エッジが選択されていれば、そのラベ
ルが新規のラベルか否かをチェックする(ステップST
73)。
【0085】現在エッジのラベルが新規のラベルでなけ
れば、現在ノードを親ノードテーブルに追加し、現在ノ
ードのパスをパステーブルに追加して(ステップST7
4)、現在エッジが指定された部分木の先頭に対応する
か否かをチェックする(ステップST75)。そして、
現在エッジが部分木の先頭に対応しなければ、図16の
処理に復帰する。
れば、現在ノードを親ノードテーブルに追加し、現在ノ
ードのパスをパステーブルに追加して(ステップST7
4)、現在エッジが指定された部分木の先頭に対応する
か否かをチェックする(ステップST75)。そして、
現在エッジが部分木の先頭に対応しなければ、図16の
処理に復帰する。
【0086】また、ステップST71において、現在ノ
ードが選択規則を満たせば、現在ノードの値をレコード
の対応するフィールドに格納し(ステップST76)、
ステップST73以降の処理を行う。
ードが選択規則を満たせば、現在ノードの値をレコード
の対応するフィールドに格納し(ステップST76)、
ステップST73以降の処理を行う。
【0087】また、ステップST73において、現在エ
ッジのラベルが新規のラベルであれば、そのラベルをラ
ベルテーブルに追加して(ステップST77)、ステッ
プST74以降の処理を行う。
ッジのラベルが新規のラベルであれば、そのラベルをラ
ベルテーブルに追加して(ステップST77)、ステッ
プST74以降の処理を行う。
【0088】また、ステップST75において、現在エ
ッジが部分木の先頭に対応していれば、その部分木の情
報を格納するレコードを生成し、各フィールドに“NU
LL”を格納して、レコードを初期化する(ステップS
T78)。次に、現在ノードとレコードの間のエッジを
生成し、そのエッジのラベルが新規のラベルか否かをチ
ェックする(ステップST79)。
ッジが部分木の先頭に対応していれば、その部分木の情
報を格納するレコードを生成し、各フィールドに“NU
LL”を格納して、レコードを初期化する(ステップS
T78)。次に、現在ノードとレコードの間のエッジを
生成し、そのエッジのラベルが新規のラベルか否かをチ
ェックする(ステップST79)。
【0089】生成されたエッジのラベルが新規のラベル
でなければ、そのエッジを親ノードテーブルと子ノード
テーブルに追加し(ステップST80)、図16の処理
に復帰する。生成されたエッジのラベルが新規のラベル
であれば、そのエッジのラベルをラベルテーブルに追加
し(ステップST81)、ステップST80以降の処理
を行う。
でなければ、そのエッジを親ノードテーブルと子ノード
テーブルに追加し(ステップST80)、図16の処理
に復帰する。生成されたエッジのラベルが新規のラベル
であれば、そのエッジのラベルをラベルテーブルに追加
し(ステップST81)、ステップST80以降の処理
を行う。
【0090】例えば、図23において、現在ノードがノ
ード“12”であり、現在エッジが“paper”であ
る場合、現在エッジは指定された部分木の先頭に対応す
ることになる。そこで、図24に示すように、この部分
木に対応するレコードr1が生成される(ステップST
78)。また、ノード“12”とレコードr1の間のエ
ッジ“s”が生成され、このエッジの情報が図27の親
ノードテーブルと図28の子ノードテーブルに追加され
る(ステップST80)。
ード“12”であり、現在エッジが“paper”であ
る場合、現在エッジは指定された部分木の先頭に対応す
ることになる。そこで、図24に示すように、この部分
木に対応するレコードr1が生成される(ステップST
78)。また、ノード“12”とレコードr1の間のエ
ッジ“s”が生成され、このエッジの情報が図27の親
ノードテーブルと図28の子ノードテーブルに追加され
る(ステップST80)。
【0091】図24ではラベル“s”を持つ2つのエッ
ジが生成されているが、最初のエッジ“s”が生成され
たときに、ラベル“s”がラベルテーブルに追加され
(ステップST81)、2番目のエッジ“s”が生成さ
れたときは、ラベルの追加は行われない。
ジが生成されているが、最初のエッジ“s”が生成され
たときに、ラベル“s”がラベルテーブルに追加され
(ステップST81)、2番目のエッジ“s”が生成さ
れたときは、ラベルの追加は行われない。
【0092】また、図23において、現在ノードがノー
ド“1”であり、現在エッジが“id”である場合、ノ
ード“1”は、選択規則sに含まれる最初のパス“i
d”に対応するため、選択規則sを満たしていることが
分かる。そこで、このノードの値“id1”が、図24
のレコードr1のフィールドf1に格納される(ステッ
プST76)。ノード“2”、“3”、“4”、
“6”、“7”の値についても、同様にしてレコードr
1に格納される。
ド“1”であり、現在エッジが“id”である場合、ノ
ード“1”は、選択規則sに含まれる最初のパス“i
d”に対応するため、選択規則sを満たしていることが
分かる。そこで、このノードの値“id1”が、図24
のレコードr1のフィールドf1に格納される(ステッ
プST76)。ノード“2”、“3”、“4”、
“6”、“7”の値についても、同様にしてレコードr
1に格納される。
【0093】また、図16のステップST8における下
方向トラバース処理は、図18と同様であるが、現在エ
ッジがレコードへのエッジである場合は、そのレコード
のレコードIDを格納するノードが現在ノードにセット
される。
方向トラバース処理は、図18と同様であるが、現在エ
ッジがレコードへのエッジである場合は、そのレコード
のレコードIDを格納するノードが現在ノードにセット
される。
【0094】例えば、図24において、現在エッジがノ
ード“12”とノード“29”の間のエッジ“s”であ
る場合、ノード“29”が新たな現在ノードとなる。こ
のとき、図30のステップST72においては、ノード
“29”に対応するレコードr1のID“1”が図25
のノードテーブルに格納される。現在エッジがノード
“27”とノード“30”の間のエッジ“s”である場
合も、同様にして、レコードr2のID“2”がノード
テーブルに格納される。
ード“12”とノード“29”の間のエッジ“s”であ
る場合、ノード“29”が新たな現在ノードとなる。こ
のとき、図30のステップST72においては、ノード
“29”に対応するレコードr1のID“1”が図25
のノードテーブルに格納される。現在エッジがノード
“27”とノード“30”の間のエッジ“s”である場
合も、同様にして、レコードr2のID“2”がノード
テーブルに格納される。
【0095】また、これらのテーブルをリレーショナル
データベースに格納する代わりに、直接、ページ管理機
構上に実装することも可能である。この場合のデータ格
納処理も、基本的に図16と同様であるが、ステップS
T2における現在ノードと現在エッジの格納処理は、図
31に示すようになる。
データベースに格納する代わりに、直接、ページ管理機
構上に実装することも可能である。この場合のデータ格
納処理も、基本的に図16と同様であるが、ステップS
T2における現在ノードと現在エッジの格納処理は、図
31に示すようになる。
【0096】データ格納装置は、まず、現在ノードが選
択規則を満たすか否かをチェックする(ステップST9
1)。現在ノードが選択規則を満たさなければ、現在ノ
ードをノードのページに追加する(ステップST9
2)。次に、現在エッジが選択されていれば、そのラベ
ルが新規のラベルか否かをチェックする(ステップST
93)。
択規則を満たすか否かをチェックする(ステップST9
1)。現在ノードが選択規則を満たさなければ、現在ノ
ードをノードのページに追加する(ステップST9
2)。次に、現在エッジが選択されていれば、そのラベ
ルが新規のラベルか否かをチェックする(ステップST
93)。
【0097】現在エッジのラベルが新規のラベルでなけ
れば、現在ノードを親ノードのページに追加し、現在ノ
ードのパスをパスのページに追加して(ステップST9
4)、現在エッジが指定された部分木の先頭に対応する
か否かをチェックする(ステップST95)。そして、
現在エッジが部分木の先頭に対応しなければ、図16の
処理に復帰する。
れば、現在ノードを親ノードのページに追加し、現在ノ
ードのパスをパスのページに追加して(ステップST9
4)、現在エッジが指定された部分木の先頭に対応する
か否かをチェックする(ステップST95)。そして、
現在エッジが部分木の先頭に対応しなければ、図16の
処理に復帰する。
【0098】また、ステップST91において、現在ノ
ードが選択規則を満たせば、現在ノードの値をレコード
の対応するフィールドに格納し(ステップST96)、
ステップST93以降の処理を行う。
ードが選択規則を満たせば、現在ノードの値をレコード
の対応するフィールドに格納し(ステップST96)、
ステップST93以降の処理を行う。
【0099】また、ステップST93において、現在エ
ッジのラベルが新規のラベルであれば、そのラベルをラ
ベルのページに追加して(ステップST97)、ステッ
プST94以降の処理を行う。
ッジのラベルが新規のラベルであれば、そのラベルをラ
ベルのページに追加して(ステップST97)、ステッ
プST94以降の処理を行う。
【0100】また、ステップST95において、現在エ
ッジが部分木の先頭に対応していれば、その部分木の情
報を格納するレコードを生成し、そのレコードを初期化
する(ステップST98)。次に、現在ノードとレコー
ドの間のエッジを生成し、そのエッジのラベルが新規の
ラベルか否かをチェックする(ステップST99)。
ッジが部分木の先頭に対応していれば、その部分木の情
報を格納するレコードを生成し、そのレコードを初期化
する(ステップST98)。次に、現在ノードとレコー
ドの間のエッジを生成し、そのエッジのラベルが新規の
ラベルか否かをチェックする(ステップST99)。
【0101】生成されたエッジのラベルが新規のラベル
でなければ、そのエッジを親ノードのページと子ノード
のページに追加し(ステップST100)、図16の処
理に復帰する。生成されたエッジのラベルが新規のラベ
ルであれば、そのエッジのラベルをラベルのページに追
加し(ステップST101)、ステップST100以降
の処理を行う。
でなければ、そのエッジを親ノードのページと子ノード
のページに追加し(ステップST100)、図16の処
理に復帰する。生成されたエッジのラベルが新規のラベ
ルであれば、そのエッジのラベルをラベルのページに追
加し(ステップST101)、ステップST100以降
の処理を行う。
【0102】ステップST92、ST94、ST97、
ST100、およびST101において、格納領域が不
足する場合は、データ格納装置は、新たなページを確保
する。また、情報を追加する毎に、アクセスのためのイ
ンデックスを更新する。
ST100、およびST101において、格納領域が不
足する場合は、データ格納装置は、新たなページを確保
する。また、情報を追加する毎に、アクセスのためのイ
ンデックスを更新する。
【0103】また、図16のステップST8における下
方向トラバース処理は、図20と同様であるが、現在エ
ッジがレコードへのエッジである場合は、そのレコード
のレコードIDを格納するノードが現在ノードにセット
される。
方向トラバース処理は、図20と同様であるが、現在エ
ッジがレコードへのエッジである場合は、そのレコード
のレコードIDを格納するノードが現在ノードにセット
される。
【0104】また、前述したように、リレーショナルデ
ータベースにおいて、複数のテーブルを共通属性でクラ
スタリングする機能を利用して、ノードテーブル、親ノ
ードテーブル、および子ノードテーブルをノードIDで
クラスタリングしてもよい。さらに、共通属性によるク
ラスタリングをページ管理機構上で実現することも可能
である。
ータベースにおいて、複数のテーブルを共通属性でクラ
スタリングする機能を利用して、ノードテーブル、親ノ
ードテーブル、および子ノードテーブルをノードIDで
クラスタリングしてもよい。さらに、共通属性によるク
ラスタリングをページ管理機構上で実現することも可能
である。
【0105】次に、本実施形態のデータ格納方法を、X
MLで記述された構造化文書に適用した例について説明
する。図32は、XML文書のデータの例を示してい
る。図32において、例えば、最も外側のタグ<pap
er>と</paper>の間には、1つの論文に関す
る情報が記述されている。また、その内側のタグ<id
>と</id>の間には、その論文のIDが記述され、
タグ<title>と</title>の間には、その
論文のタイトルが記述されている。一般には、多数の論
文がデータベースに登録されるため、各論文について同
様のXMLデータが作成される。
MLで記述された構造化文書に適用した例について説明
する。図32は、XML文書のデータの例を示してい
る。図32において、例えば、最も外側のタグ<pap
er>と</paper>の間には、1つの論文に関す
る情報が記述されている。また、その内側のタグ<id
>と</id>の間には、その論文のIDが記述され、
タグ<title>と</title>の間には、その
論文のタイトルが記述されている。一般には、多数の論
文がデータベースに登録されるため、各論文について同
様のXMLデータが作成される。
【0106】このように、XMLデータでは、複数のタ
グの包含関係が階層的なデータ構造を表しており、対応
する2つのタグの間のデータを階層的な部分木とみなせ
ば、XMLデータを木構造データに置き換えることがで
きる。例えば、図32のXMLデータを木構造で表す
と、図37に示したデータが得られる。ここでは、タグ
の名称をエッジのラベルとして用いており、ルートノー
ド“13”には、図32の論文以外の論文の部分木も接
続されている。
グの包含関係が階層的なデータ構造を表しており、対応
する2つのタグの間のデータを階層的な部分木とみなせ
ば、XMLデータを木構造データに置き換えることがで
きる。例えば、図32のXMLデータを木構造で表す
と、図37に示したデータが得られる。ここでは、タグ
の名称をエッジのラベルとして用いており、ルートノー
ド“13”には、図32の論文以外の論文の部分木も接
続されている。
【0107】このようにして、XMLデータを木構造デ
ータとみなすことにより、検索対象となる可能性のある
部分木の構造を指定したり、その部分木内のパス群を指
定したりすることができ、XMLデータをリレーショナ
ルデータベースに格納したり、ページに格納したりする
ことができる。図37の木構造データの格納処理および
クラスタリング方法については、上述した通りである。
ータとみなすことにより、検索対象となる可能性のある
部分木の構造を指定したり、その部分木内のパス群を指
定したりすることができ、XMLデータをリレーショナ
ルデータベースに格納したり、ページに格納したりする
ことができる。図37の木構造データの格納処理および
クラスタリング方法については、上述した通りである。
【0108】図32のXMLデータを図2、図11〜図
14のようなテーブル形式でリレーショナルデータベー
スに格納した場合、テーブルへのアクセスはSQL等を
用いて行われる。例えば、‘著者名が“○△◇☆”であ
る論文のタイトルをselectせよ’という問い合わ
せを行う場合のSQL文は、図33に示すようになる。
14のようなテーブル形式でリレーショナルデータベー
スに格納した場合、テーブルへのアクセスはSQL等を
用いて行われる。例えば、‘著者名が“○△◇☆”であ
る論文のタイトルをselectせよ’という問い合わ
せを行う場合のSQL文は、図33に示すようになる。
【0109】さらに、XMLデータを選択的にレコード
化する場合、データ格納装置は、対話的に選択規則を生
成する。このとき、文書型定義(document type defini
tion,DTD)やXMLデータを解析して、図34のよ
うなダイアログ画面をディスプレイに表示する。文書型
定義は、XML文書のタグ構造を定義するスキーマに対
応し、これを解析することで、木構造データにおけるパ
スを抽出することができる。
化する場合、データ格納装置は、対話的に選択規則を生
成する。このとき、文書型定義(document type defini
tion,DTD)やXMLデータを解析して、図34のよ
うなダイアログ画面をディスプレイに表示する。文書型
定義は、XML文書のタグ構造を定義するスキーマに対
応し、これを解析することで、木構造データにおけるパ
スを抽出することができる。
【0110】図34において、ユーザは、ボックス11
に選択規則の名称を入力し、ボックス12に適当なエッ
ジのラベルを入力すると、そのラベルを持つエッジ以下
の部分木がレコード化の対象として指定される。そし
て、その部分木に含まれるすべてのパスが、自動的にボ
ックス13内に表示される。
に選択規則の名称を入力し、ボックス12に適当なエッ
ジのラベルを入力すると、そのラベルを持つエッジ以下
の部分木がレコード化の対象として指定される。そし
て、その部分木に含まれるすべてのパスが、自動的にボ
ックス13内に表示される。
【0111】次に、ユーザが表示されたパスのうち所望
のものを選択すると、選択されたパスが選択規則として
登録される。このような処理を対話的に繰り返すことに
より、複数の選択規則を生成することができる。そし
て、データ格納装置は、図7に示したように、生成され
た選択規則毎にレコード化を行い、レコードテーブルを
生成する。
のものを選択すると、選択されたパスが選択規則として
登録される。このような処理を対話的に繰り返すことに
より、複数の選択規則を生成することができる。そし
て、データ格納装置は、図7に示したように、生成され
た選択規則毎にレコード化を行い、レコードテーブルを
生成する。
【0112】また、データ格納装置は、XMLデータ以
外にも、任意のSGML(standardgeneralized markup
language)で記述された構造化文書を、同様にして格
納することができる。例えば、HTML(hypertext ma
rkup language )データの場合も、同様にして、タグ構
造が木構造に置き換えられる。
外にも、任意のSGML(standardgeneralized markup
language)で記述された構造化文書を、同様にして格
納することができる。例えば、HTML(hypertext ma
rkup language )データの場合も、同様にして、タグ構
造が木構造に置き換えられる。
【0113】ところで、本実施形態のデータ格納装置
は、図35に示すような情報処理装置(コンピュータ)
を用いて構成することができる。図35の情報処理装置
は、CPU(中央処理装置)21、メモリ22、入力装
置23、出力装置24、外部記憶装置25、媒体駆動装
置26、およびネットワーク接続装置27を備え、それ
らはバス28により互いに接続されている。
は、図35に示すような情報処理装置(コンピュータ)
を用いて構成することができる。図35の情報処理装置
は、CPU(中央処理装置)21、メモリ22、入力装
置23、出力装置24、外部記憶装置25、媒体駆動装
置26、およびネットワーク接続装置27を備え、それ
らはバス28により互いに接続されている。
【0114】メモリ22は、例えば、ROM(read onl
y memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU21は、メモリ22を利用してプログラムを実行
することにより、必要な処理を行う。
y memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU21は、メモリ22を利用してプログラムを実行
することにより、必要な処理を行う。
【0115】入力装置23は、例えば、キーボード、ポ
インティングデバイス、タッチパネル等であり、ユーザ
からの指示や情報の入力に用いられる。出力装置24
は、例えば、ディスプレイ、プリンタ、スピーカ等であ
り、ユーザへのメッセージや処理結果の出力に用いられ
る。
インティングデバイス、タッチパネル等であり、ユーザ
からの指示や情報の入力に用いられる。出力装置24
は、例えば、ディスプレイ、プリンタ、スピーカ等であ
り、ユーザへのメッセージや処理結果の出力に用いられ
る。
【0116】外部記憶装置25は、例えば、磁気ディス
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置等であり、上述した様々なテーブル等
を格納するデータベースとして用いられる。また、情報
処理装置は、この外部記憶装置25に、上述のプログラ
ムとデータを保存しておき、必要に応じて、それらをメ
モリ22にロードして使用することができる。
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置等であり、上述した様々なテーブル等
を格納するデータベースとして用いられる。また、情報
処理装置は、この外部記憶装置25に、上述のプログラ
ムとデータを保存しておき、必要に応じて、それらをメ
モリ22にロードして使用することができる。
【0117】媒体駆動装置26は、可搬記録媒体29を
駆動し、その記録内容にアクセスする。可搬記録媒体2
9としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体が用いられる。ユーザは、この可搬記録
媒体29に上述のプログラムとデータを格納しておき、
必要に応じて、それらをメモリ22にロードして使用す
ることができる。
駆動し、その記録内容にアクセスする。可搬記録媒体2
9としては、メモリカード、フロッピーディスク、CD
−ROM(compact disk read only memory )、光ディ
スク、光磁気ディスク等、任意のコンピュータ読み取り
可能な記録媒体が用いられる。ユーザは、この可搬記録
媒体29に上述のプログラムとデータを格納しておき、
必要に応じて、それらをメモリ22にロードして使用す
ることができる。
【0118】ネットワーク接続装置27は、任意のネッ
トワーク(回線)を介して外部の装置と通信し、通信に
伴うデータ変換を行う。情報処理装置は、必要に応じ
て、ネットワーク接続装置27を介して上述のプログラ
ムとデータを外部の装置から受け取り、それらをメモリ
22にロードして使用することができる。
トワーク(回線)を介して外部の装置と通信し、通信に
伴うデータ変換を行う。情報処理装置は、必要に応じ
て、ネットワーク接続装置27を介して上述のプログラ
ムとデータを外部の装置から受け取り、それらをメモリ
22にロードして使用することができる。
【0119】図36は、図35の情報処理装置にプログ
ラムとデータを供給することのできるコンピュータ読み
取り可能な記録媒体を示している。可搬記録媒体29や
外部のデータベース30に保存されたプログラムとデー
タは、メモリ22にロードされる。そして、CPU21
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。
ラムとデータを供給することのできるコンピュータ読み
取り可能な記録媒体を示している。可搬記録媒体29や
外部のデータベース30に保存されたプログラムとデー
タは、メモリ22にロードされる。そして、CPU21
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。
【0120】
【発明の効果】本発明によれば、半構造データベース等
において、木構造データの部分木を対象とするデータ検
索が行われたとき、その部分木のデータをまとめて読み
出すことができ、検索が高速化される。また、部分木の
データの一部をレコード化することにより、検索がさら
に高速化される。
において、木構造データの部分木を対象とするデータ検
索が行われたとき、その部分木のデータをまとめて読み
出すことができ、検索が高速化される。また、部分木の
データの一部をレコード化することにより、検索がさら
に高速化される。
【図1】本発明のデータ格納装置の原理図である。
【図2】第1のノードテーブルを示す図である。
【図3】エッジテーブルを示す図である。
【図4】第1の部分木のレコード化を示す図である。
【図5】第2の部分木のレコード化を示す図である。
【図6】最適化された部分木を示す図である。
【図7】第1の最適化された全体木を示す図である。
【図8】全体木の格納形式を示す図である。
【図9】第1のデータ検索を示す図である。
【図10】第2のデータ検索を示す図である。
【図11】第1のラベルテーブルを示す図である。
【図12】第1の親ノードテーブルを示す図である。
【図13】第1の子ノードテーブルを示す図である。
【図14】第1のパステーブルを示す図である。
【図15】各属性のデータ型と長さを示す図である。
【図16】データ格納処理のフローチャートである。
【図17】第1のノード/エッジ格納処理のフローチャ
ートである。
ートである。
【図18】第1の下方向トラバース処理のフローチャー
トである。
トである。
【図19】第2のノード/エッジ格納処理のフローチャ
ートである。
ートである。
【図20】第2の下方向トラバース処理のフローチャー
トである。
トである。
【図21】第3のノード/エッジ格納処理のフローチャ
ートである。
ートである。
【図22】第3の下方向トラバース処理のフローチャー
トである。
トである。
【図23】2つの論文に関する木構造データを示す図で
ある。
ある。
【図24】第2の最適化された全体木を示す図である。
【図25】第2のノードテーブルを示す図である。
【図26】第2のラベルテーブルを示す図である。
【図27】第2の親ノードテーブルを示す図である。
【図28】第2の子ノードテーブルを示す図である。
【図29】第2のパステーブルを示す図である。
【図30】第4のノード/エッジ格納処理のフローチャ
ートである。
ートである。
【図31】第5のノード/エッジ格納処理のフローチャ
ートである。
ートである。
【図32】XMLデータを示す図である。
【図33】SQL文を示す図である。
【図34】ダイアログ画面を示す図である。
【図35】情報処理装置の構成図である。
【図36】記録媒体を示す図である。
【図37】複数の論文に関する木構造データを示す図で
ある。
ある。
1 指定手段 2 抽出手段 3 格納手段 11、12、13 ボックス 21 CPU 22 メモリ 23 入力装置 24 出力装置 25 外部記憶装置 26 媒体駆動装置 27 ネットワーク接続装置 28 バス 29 可搬記録媒体 30 データベース
フロントページの続き (72)発明者 久保田 和己 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 野口 泰生 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B075 NK04 NK44 NK46 NR06 QT06 QT10 5B082 BA09 GA02
Claims (14)
- 【請求項1】 木構造データにおいて、検索対象となる
可能性のある部分木の構造を指定する指定手段と、 前記木構造データから、指定された構造に適合する部分
木を抽出する抽出手段と、 抽出された部分木の情報をまとめて格納する格納手段と
を備えることを特徴とするデータ格納装置。 - 【請求項2】 前記指定手段は、前記検索対象となる可
能性のある部分木内の1つ以上のパスを個別に指定し、
前記抽出手段は、前記木構造データから、指定されたパ
スの末端にあるノードを抽出し、前記格納手段は、抽出
されたノードの情報をまとめて格納することを特徴とす
る請求項1記載のデータ格納装置。 - 【請求項3】 木構造データをノードとエッジに分離し
て格納するデータ格納装置であって、 前記木構造データにおいて、検索対象となる可能性のあ
る部分木の構造を指定する指定手段と、 前記木構造データから、指定された構造に適合する部分
木を抽出する抽出手段と、 抽出された部分木のノードの情報をまとめて格納するノ
ード格納手段と、 抽出された部分木のエッジの情報をまとめて格納するエ
ッジ格納手段とを備えることを特徴とするデータ格納装
置。 - 【請求項4】 前記ノード格納手段の格納領域は、リレ
ーショナルデータベースの1つのリレーションとして実
装され、前記エッジ格納手段の格納領域は、該リレーシ
ョナルデータベースの1つ以上のリレーションとして実
装されることを特徴とする請求項3記載のデータ格納装
置。 - 【請求項5】 前記指定手段は、タグで構造化された文
書データを前記木構造データとみなし、該文書データ内
の2つのタグの間の情報を部分木とみなして、前記検索
対象となる可能性のある部分木の構造を指定することを
特徴とする請求項3記載のデータ格納装置。 - 【請求項6】 前記検索対象となる可能性のある部分木
の一部の情報をレコードとして格納するレコード格納手
段をさらに備え、前記指定手段は、前記検索対象となる
可能性のある部分木内の1つ以上のパスをパス群として
指定し、前記抽出手段は、前記木構造データから、指定
されたパスの末端にあるノードを抽出し、前記レコード
格納手段は、抽出されたノードの情報をレコードとして
まとめて格納し、前記エッジ格納手段は、該レコード格
納手段内のレコードに対応するパスを構成するエッジの
情報の格納を省略することを特徴とする請求項3記載の
データ格納装置。 - 【請求項7】 前記レコード格納手段の格納領域は、リ
レーショナルデータベースの1つのリレーションとして
実装されることを特徴とする請求項6記載のデータ格納
装置。 - 【請求項8】 前記ノード格納手段の格納領域は、リレ
ーショナルデータベースの1つのリレーションとして実
装され、前記エッジ格納手段の格納領域は、該リレーシ
ョナルデータベースの1つ以上のリレーションとして実
装され、前記レコード格納手段の格納領域は、該リレー
ショナルデータベースの1つのリレーションとして実装
されることを特徴とする請求項6記載のデータ格納装
置。 - 【請求項9】 前記指定手段が複数のパス群を指定した
とき、該複数のパス群の指定情報を格納する指定情報格
納手段をさらに備え、前記レコード格納手段は、前記複
数のパス群のそれぞれに対応するレコードを格納するこ
とを特徴とする請求項6記載のデータ格納装置。 - 【請求項10】 前記指定手段は、タグで構造化された
文書データを前記木構造データとみなし、該文書データ
内の2つのタグの間の情報を部分木とみなして、前記検
索対象となる可能性のある部分木内の前記パス群を指定
することを特徴とする請求項6記載のデータ格納装置。 - 【請求項11】 木構造データの各階層から部分木を抽
出する抽出手段と、 抽出された部分木の情報をまとめて格納する格納手段と
を備えることを特徴とするデータ格納装置。 - 【請求項12】 コンピュータのためのプログラムを記
録した記録媒体であって、 木構造データにおいて、検索対象となる可能性のある部
分木の構造を指定するステップと、 前記木構造データから、指定された構造に適合する部分
木を抽出するステップと、 抽出された部分木の情報をまとめて格納するステップと
を含む処理を前記コンピュータに実行させるためのプロ
グラムを記録したコンピュータ読み取り可能な記録媒
体。 - 【請求項13】 コンピュータのための木構造データを
記録した記録媒体であって、 前記木構造データにおいて、前記コンピュータが検索対
象とする可能性のある部分木の構造が指定されたとき、
指定された構造に適合する部分木の情報を、該コンピュ
ータがアクセスできるようにまとめて記録したことを特
徴とするコンピュータ読み取り可能な記録媒体。 - 【請求項14】 木構造データにおいて、検索対象とな
る可能性のある部分木の構造を指定し、 前記木構造データから、指定された構造に適合する部分
木を抽出し、 抽出された部分木の情報をまとめて格納することを特徴
とするデータ格納方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11154783A JP2000348038A (ja) | 1999-06-02 | 1999-06-02 | 半構造データベースのためのデータ格納装置および方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11154783A JP2000348038A (ja) | 1999-06-02 | 1999-06-02 | 半構造データベースのためのデータ格納装置および方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000348038A true JP2000348038A (ja) | 2000-12-15 |
Family
ID=15591810
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11154783A Withdrawn JP2000348038A (ja) | 1999-06-02 | 1999-06-02 | 半構造データベースのためのデータ格納装置および方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000348038A (ja) |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002183182A (ja) * | 2000-12-19 | 2002-06-28 | Toshiba Corp | ドキュメント流用方法、意思決定支援システム及びドキュメント管理システム |
| JP2003030227A (ja) * | 2001-07-18 | 2003-01-31 | Hitachi Ltd | データマイニングにおける前処理方法及び前処理システム |
| JP2003271668A (ja) * | 2002-03-15 | 2003-09-26 | Toshiba Corp | 構造化データ管理プログラム及び方法並びに装置 |
| WO2006038498A1 (ja) * | 2004-10-01 | 2006-04-13 | Turbo Data Laboratories Inc. | 配列の生成方法、及び、配列生成プログラム |
| US7069505B2 (en) | 2001-11-21 | 2006-06-27 | Nec Corporation | Document management system, method thereof, and program thereof |
| WO2006080268A1 (ja) * | 2005-01-25 | 2006-08-03 | Turbo Data Laboratories Inc. | ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム |
| WO2007020850A1 (ja) * | 2005-08-12 | 2007-02-22 | Turbo Data Laboratories Inc. | 情報処理方法、情報処理装置および情報処理プログラム |
| JP2010129001A (ja) * | 2008-11-28 | 2010-06-10 | Internatl Business Mach Corp <Ibm> | 情報処理装置、データベース・システム、情報処理方法、およびプログラム |
| JP2013008295A (ja) * | 2011-06-27 | 2013-01-10 | Nippon Telegr & Teleph Corp <Ntt> | 情報記録装置、情報記録方法およびプログラム |
| JP2013016112A (ja) * | 2011-07-06 | 2013-01-24 | Nippon Telegr & Teleph Corp <Ntt> | チャンク生成装置、チャンク読み取り装置、チャンク生成方法及びプログラム |
| US8554780B2 (en) | 2010-03-31 | 2013-10-08 | Fujitsu Limited | Search apparatus and search method |
| JP2019194882A (ja) * | 2014-02-19 | 2019-11-07 | スノーフレーク インク. | ファーストクラスデータベース要素としての半構造データの実装 |
-
1999
- 1999-06-02 JP JP11154783A patent/JP2000348038A/ja not_active Withdrawn
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002183182A (ja) * | 2000-12-19 | 2002-06-28 | Toshiba Corp | ドキュメント流用方法、意思決定支援システム及びドキュメント管理システム |
| JP2003030227A (ja) * | 2001-07-18 | 2003-01-31 | Hitachi Ltd | データマイニングにおける前処理方法及び前処理システム |
| US7069505B2 (en) | 2001-11-21 | 2006-06-27 | Nec Corporation | Document management system, method thereof, and program thereof |
| JP2003271668A (ja) * | 2002-03-15 | 2003-09-26 | Toshiba Corp | 構造化データ管理プログラム及び方法並びに装置 |
| WO2006038498A1 (ja) * | 2004-10-01 | 2006-04-13 | Turbo Data Laboratories Inc. | 配列の生成方法、及び、配列生成プログラム |
| JP4712718B2 (ja) * | 2004-10-01 | 2011-06-29 | 株式会社ターボデータラボラトリー | 配列の生成方法、及び、配列生成プログラム |
| US7937399B2 (en) | 2005-01-25 | 2011-05-03 | Turbo Data Laboratories, Inc. | Method, information processing apparatus, and program of searching for, aggregating and sorting trees |
| WO2006080268A1 (ja) * | 2005-01-25 | 2006-08-03 | Turbo Data Laboratories Inc. | ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム |
| JPWO2006080268A1 (ja) * | 2005-01-25 | 2008-08-07 | 株式会社ターボデータラボラトリー | ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム |
| JP4653157B2 (ja) * | 2005-01-25 | 2011-03-16 | 株式会社ターボデータラボラトリー | ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム |
| JP4886693B2 (ja) * | 2005-08-12 | 2012-02-29 | 株式会社ターボデータラボラトリー | 情報処理方法、情報処理装置および情報処理プログラム |
| WO2007020850A1 (ja) * | 2005-08-12 | 2007-02-22 | Turbo Data Laboratories Inc. | 情報処理方法、情報処理装置および情報処理プログラム |
| JP2010129001A (ja) * | 2008-11-28 | 2010-06-10 | Internatl Business Mach Corp <Ibm> | 情報処理装置、データベース・システム、情報処理方法、およびプログラム |
| US8554780B2 (en) | 2010-03-31 | 2013-10-08 | Fujitsu Limited | Search apparatus and search method |
| JP2013008295A (ja) * | 2011-06-27 | 2013-01-10 | Nippon Telegr & Teleph Corp <Ntt> | 情報記録装置、情報記録方法およびプログラム |
| JP2013016112A (ja) * | 2011-07-06 | 2013-01-24 | Nippon Telegr & Teleph Corp <Ntt> | チャンク生成装置、チャンク読み取り装置、チャンク生成方法及びプログラム |
| JP2019194882A (ja) * | 2014-02-19 | 2019-11-07 | スノーフレーク インク. | ファーストクラスデータベース要素としての半構造データの実装 |
| JP7130600B2 (ja) | 2014-02-19 | 2022-09-05 | スノーフレーク インク. | ファーストクラスデータベース要素としての半構造データの実装 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7386567B2 (en) | Techniques for changing XML content in a relational database | |
| US7353222B2 (en) | System and method for the storage, indexing and retrieval of XML documents using relational databases | |
| US7581170B2 (en) | Visual and interactive wrapper generation, automated information extraction from Web pages, and translation into XML | |
| US6510425B1 (en) | Document search method for registering documents, generating a structure index with elements having position of occurrence in documents represented by meta-nodes | |
| US7293018B2 (en) | Apparatus, method, and program for retrieving structured documents | |
| JP3842573B2 (ja) | 構造化文書検索方法、構造化文書管理装置及びプログラム | |
| CN112000725B (zh) | 一种面向多源异构资源的本体融合前处理方法 | |
| US8065308B2 (en) | Encoding semi-structured data for efficient search and browsing | |
| JP3492247B2 (ja) | Xmlデータ検索システム | |
| WO2002031625A2 (en) | A system and method of translating a universal query language to sql | |
| JPH10240752A (ja) | 構造化文書の登録方法,検索方法、およびそれに用いられる可搬型媒体 | |
| JP2000348038A (ja) | 半構造データベースのためのデータ格納装置および方法 | |
| JP4247135B2 (ja) | 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法 | |
| US20050131926A1 (en) | Method of hybrid searching for extensible markup language (XML) documents | |
| JP2006053724A (ja) | Xmlデータ管理方法 | |
| Alghamdi et al. | Semantic-based Structural and Content indexing for the efficient retrieval of queries over large XML data repositories | |
| US6282509B1 (en) | Thesaurus retrieval and synthesis system | |
| CN100498771C (zh) | 用于管理结构化文件的系统和方法 | |
| US20090307187A1 (en) | Tree automata based methods for obtaining answers to queries of semi-structured data stored in a database environment | |
| JP3632643B2 (ja) | 構造化文書管理装置 | |
| Yu et al. | Metadata management system: design and implementation | |
| JP2000003366A (ja) | 文書登録方法と文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体 | |
| US7487439B1 (en) | Method and apparatus for converting between data sets and XML documents | |
| Rizzolo | ToXin, an indexing scheme for XML data | |
| JP3842574B2 (ja) | 情報抽出方法および構造化文書管理装置およびプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060905 |