JP2007265248A - 構造化文書管理装置、構造化文書サブ管理装置、プログラムおよび構造化文書の管理方法 - Google Patents

構造化文書管理装置、構造化文書サブ管理装置、プログラムおよび構造化文書の管理方法 Download PDF

Info

Publication number
JP2007265248A
JP2007265248A JP2006091991A JP2006091991A JP2007265248A JP 2007265248 A JP2007265248 A JP 2007265248A JP 2006091991 A JP2006091991 A JP 2006091991A JP 2006091991 A JP2006091991 A JP 2006091991A JP 2007265248 A JP2007265248 A JP 2007265248A
Authority
JP
Japan
Prior art keywords
structured document
structure information
structured
query
sub
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.)
Granted
Application number
JP2006091991A
Other languages
English (en)
Other versions
JP4489047B2 (ja
Inventor
Yosuke Kuroda
洋介 黒田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006091991A priority Critical patent/JP4489047B2/ja
Publication of JP2007265248A publication Critical patent/JP2007265248A/ja
Application granted granted Critical
Publication of JP4489047B2 publication Critical patent/JP4489047B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データ転送や他の構造化文書サブ管理装置の結果待ちを極力少なくし、効率的な探索処理を行うことができる構造化文書管理装置、プログラムおよび構造化文書の管理方法を提供する。
【解決手段】構造化文書の特徴となる構造情報に着目して構造化文書を格納する構造化文書サブ管理装置を選択し、選択した構造化文書サブ管理装置に構造化文書を格納する。これにより、構造情報の制約条件が厳密になる程、探索時に無駄な処理を省くことが可能となるので、データ転送や他の構造化文書サブ管理装置の結果待ちを極力少なくすることで効率的な探索処理を行うことができる。
【選択図】 図5

Description

本発明は、構造化文書を複数の構造化文書サブ管理装置に分散して管理する構造化文書管理装置、構造化文書サブ管理装置、プログラムおよび構造化文書の管理方法に関する。
複数の計算機(コンピュータ)にデータを管理するデータベースにおいては、どのように各計算機に登録するデータを配置していくかにより、問合せ処理時の性能に大きく影響を与える。そのため、表形式のデータやオブジェクトデータを扱うデータベースであるリレーショナルデータベース及びオブジェクト指向データベースでは、従来から様々な配置手法について研究されている。例えば、表形式のデータを扱うリレーショナルデータベースにおける代表的な配置方法として以下のようなものが存在する。
(1)水平分割:ある基準に従って表形式のデータを行単位に分割して配置する。基準によって以下のような種類が存在する。
(ア)レンジ分割:ある連続値を持つ列について、値の範囲に基づいて行単位に分割する手法
(イ)ハッシュ分割:あるハッシュ関数に基づいて行単位に分割する手法
(ウ)リスト分割:離散値を持つ列について、列挙された値に基づいて行単位に分割する手法
(2)垂直分割:表形式のデータを列単位に幾つかのグループに分割して配置する手法。
ここで、リレーショナルデータベースにおけるレンジ分割の例を図17に示す。図17中の右側では、5つの列を持つ表データについて、列Aの値に範囲に従ってデータの配置先を決定している(水平分割)。このデータに対して「Aの値が2000以上でありBが1000以下のデータ一覧を取得する」といった問合せが来た場合、「Aの値が2000以上」の配置先は一意に判別できるため、参照するデータを絞り込むことが可能となり効率の良い問合せ処理が可能となる。
また、垂直分割の例を図17中の左側に挙げている。図17中の左側では、5つの列値を持つ表データについて列単位で複数のグループに分けて格納している。このデータに対して「Cの値が100以上のID一覧を取得する」といった問合せが来た場合、参照先をCのデータを持つ配置先のみに絞り込むことが可能となる。
一方、従来から扱われてきたリレーショナルデータ等に対してXML(Extensible Markup Language)形式の代表される構造化文書が近年急速に普及しつつある。XMLデータはデータの制約となるスキーマを持たなくてもよいため、XMLデータを管理するXMLデータベースでは様々な構造情報を持つXMLデータを管理することが可能である(特許文献1参照)。
XMLを扱うデータベースにおける分散構成時の分類方法については、いくつか提案されており、リレーショナルデータベースにおける垂直分割、水平分割を以下のような問合せ言語XPathを利用して実現しているものがある。
(1)水平分割:ある基準に従ってXML文書単位に分割して配置する。基準は、条件式を持つXPathによって表現される。
(2)垂直分割:XML文書を構成するノードを幾つかのグループに分割して配置する。グループは、XPathを利用した式により表現される。
図18は、XPathを利用することでXML文書における水平分割と垂直分割を実現している例を示したものである。
特開2000−348038号公報
ところが、図18に示した例は、従来から提案されていた分割方法をXML文書にそのまま適用したものであり、様々な構造情報を持つXMLデータ(構造化文書データ)を管理することに着目したものではない。
また、複数の計算機に大規模な構造化文書データを分散して格納した場合、計算結果のデータの転送コストや各計算機における部分構造への照合処理コストの増大が深刻なものとなる。つまり、ある問合せ処理を実施する場合、各計算機の計算結果を他の計算機に転送し、さらにその計算結果を利用して問合せ処理を継続する必要があるため、各計算機の結果待ちによる遅延やデータ転送による遅延が発生するという問題がある。
本発明は、上記に鑑みてなされたものであって、データ転送や他の構造化文書サブ管理装置の結果待ちを極力少なくし、効率的な探索処理を行うことができる構造化文書管理装置、プログラムおよび構造化文書の管理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、構造化文書を複数の構造化文書サブ管理装置に分散させて管理する構造化文書管理装置において、入力された前記構造化文書を構文解析する構造化文書構文解析手段と、この構造化文書構文解析手段の構文解析結果から構造情報を抽出する構造化文書構造抽出手段と、前記構造化文書管理装置で管理している全登録文書に対する構造情報を保持する構造情報格納部と、この構造情報格納部内の全登録文書に対する構造情報と前記構造化文書構造抽出手段で抽出された構造化文書の構造情報とを比較し、前記構造化文書サブ管理装置が有している装置固有の構造情報に対する構造類似度を計算する構造情報照合手段と、この構造情報照合手段における計算結果である構造類似度に基づいて、前記入力された構造化文書を格納する前記構造化文書サブ管理装置を決定する構造化文書配置先選択手段と、を備える。
また、本発明は、構造化文書管理装置からの指示に従って構造化文書を分散格納する構造化文書サブ管理装置において、装置固有の構造情報を保持する固有構造情報格納部と、この固有構造情報格納部内の装置固有の構造情報と前記構造化文書管理装置から送られた前記構造化文書の構造情報とを比較する固有構造情報照合手段と、この固有構造情報照合手段における照合結果に基づき、前記固有構造情報格納部内の装置固有の構造情報を更新する固有構造情報更新手段と、を備える。
また、本発明は、構造化文書を複数の構造化文書サブ管理装置に分散させて管理する構造化文書管理装置を制御するコンピュータを動作させるプログラムであって、入力された前記構造化文書を構文解析する構造化文書構文解析機能と、この構造化文書構文解析機能の構文解析結果から構造情報を抽出する構造化文書構造抽出機能と、構造情報格納部内に保持されていて前記構造化文書管理装置で管理している全登録文書に対する構造情報と前記構造化文書構造抽出機能で抽出された構造化文書の構造情報とを比較し、前記構造化文書サブ管理装置が有している装置固有の構造情報に対する構造類似度を計算する構造情報照合機能と、この構造情報照合機能における計算結果である構造類似度に基づいて、前記入力された構造化文書を格納する前記構造化文書サブ管理装置を決定する構造化文書配置先選択機能と、を前記コンピュータに実行させる。
また、本発明は、構造化文書管理装置からの指示に従って構造化文書を分散格納する構造化文書サブ管理装置を制御するコンピュータを動作させるプログラムであって、装置固有の構造情報を保持する固有構造情報格納部内の装置固有の構造情報と前記構造化文書管理装置から送られた前記構造化文書の構造情報とを比較する固有構造情報照合機能と、この固有構造情報照合機能における照合結果に基づき、前記固有構造情報格納部内の装置固有の構造情報を更新する固有構造情報更新機能と、を前記コンピュータに実行させる。
また、本発明は、構造化文書を複数の構造化文書サブ管理装置に分散格納して管理する構造化文書管理装置における構造化文書の管理方法であって、前記構造化文書を分散格納する際に、前記構造化文書の構造情報に着目して前記構造化文書を格納する前記構造化文書サブ管理装置を選択する。
本発明によれば、構造化文書の特徴となる構造情報に着目して構造化文書を格納する構造化文書サブ管理装置を選択し、選択した構造化文書サブ管理装置に構造化文書を格納することにより、構造情報の制約条件が厳密になる程、探索時に無駄な処理を省くことが可能となるので、データ転送や他の構造化文書サブ管理装置の結果待ちを極力少なくすることで効率的な探索処理を行うことができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる構造化文書管理装置、構造化文書サブ管理装置、プログラムおよび構造化文書の管理方法の最良な実施の形態を詳細に説明する。
本発明の実施の一形態を図1ないし図16に基づいて説明する。
[1.システムの構成]
図1は、本発明の実施の一形態にかかる分散構成の構造化文書管理システムのシステム構築例を示す模式図である。分散構成の構造化文書管理システムは、図1に示すように、構造化文書管理装置として機能するメインのサーバコンピュータ(以下、メインサーバという)1にLAN(Local Area Network)等のネットワーク2を介して構造化文書サブ管理装置として機能するサブのサーバコンピュータ(以下、サブサーバという)3が複数台接続されたシステムを想定する。メインサーバ1およびサブサーバ3は、一般的なパーソナルコンピュータ等である。
図2は、メインサーバ1およびサブサーバ3のモジュール構成図である。メインサーバ1およびサブサーバ3は、情報処理を行うCPU(Central Processing Unit)101、BIOSなどを記憶した読出し専用メモリであるROM(Read Only Memory)102、各種データを書換え可能に記憶するRAM(Random Access Memory)103、各種データベースとして機能するとともに各種のプログラムを格納するHDD(Hard Disk Drive)104、記憶媒体110を用いて情報を保管したり外部に情報を配布したり外部から情報を入手するためのCD−ROMドライブ等の媒体駆動装置105、ネットワーク2を介して外部の他のコンピュータと通信により情報を伝達するための通信制御装置106、処理経過や結果等を操作者に表示するCRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等の表示部107、並びに操作者がCPU101に命令や情報等を入力するためのキーボードやマウス等のポインティングデバイスである入力部108等から構成されており、これらの各部間で送受信されるデータをバスコントローラ109が調停して動作する。
このようなメインサーバ1およびサブサーバ3では、オペレータが電源を投入するとCPU101がROM102内のローダーというプログラムを起動させ、HDD104よりOS(Operating System)というコンピュータのハードウェアとソフトウェアとを管理するプログラムをRAM103に読み込み、このOSを起動させる。このようなOSは、オペレータの操作に応じてプログラムを起動したり、情報を読み込んだり、保存を行ったりする。OSのうち代表的なものとしては、Windows(登録商標)、UNIX(登録商標)等が知られている。これらのOS上で走る動作プログラムをアプリケーションプログラムと呼んでいる。なお、アプリケーションプログラムは、所定のOS上で動作するものに限らず、後述の各種処理の一部の実行をOSに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやOSなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
ここで、メインサーバ1は、アプリケーションプログラムとして、構造化文書メイン管理プログラムをHDD104に記憶している。この意味で、HDD104は、構造化文書メイン管理プログラムを記憶する記憶媒体として機能する。
一方、サブサーバ3は、アプリケーションプログラムとして、構造化文書サブ管理プログラムをHDD104に記憶している。この意味で、HDD104は、構造化文書サブ管理プログラムを記憶する記憶媒体として機能する。
また、一般的には、メインサーバ1およびサブサーバ3のHDD104にインストールされるアプリケーションプログラムは、CD−ROMやDVDなどの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク、半導体メモリ等の各種方式のメディア等の記憶媒体110に記録され、この記憶媒体110に記録された動作プログラムがHDD104にインストールされる。このため、CD−ROM等の光情報記録メディアやFD等の磁気メディア等の可搬性を有する記憶媒体110も、アプリケーションプログラムを記憶する記憶媒体となり得る。さらには、アプリケーションプログラムは、例えば通信制御装置106を介して外部から取り込まれ、HDD104にインストールされても良い。
メインサーバ1は、OS上で動作する構造化文書メイン管理プログラムが起動すると、この構造化文書メイン管理プログラムに従い、CPU101が各種の演算処理を実行して各部を集中的に制御する。一方、サブサーバ3は、OS上で動作する構造化文書サブ管理プログラムが起動すると、この構造化文書サブ管理プログラムに従い、CPU101が各種の演算処理を実行して各部を集中的に制御する。メインサーバ1およびサブサーバ3のCPU101が実行する各種の演算処理のうち、本実施の形態の特長的な処理について以下に説明する。
[2.構造化文書格納処理]
まず、構造化文書格納処理にかかる機能について、分散構成の構造化文書管理システムの機能構成を示すブロック図である図3を参照して説明する
メインサーバ1は、図3に示すように、構造化文書メイン管理プログラムに従うことにより、構造化文書構文解析部11と、構造化文書構造抽出部12と、グローバル構造化テンプレート照合部13と、各サブサーバ3の構造化文書データDB35に格納されている全ての構造化文書、すなわちメインサーバ1で管理している全ての構造化文書である全登録文書に対する構造情報であるグローバル構造化テンプレートを保持する構造情報格納部であるグローバル構造化テンプレートデータベース(グローバル構造化テンプレートDB)14と、構造化文書配置先選択部15と、グローバル構造化テンプレート更新部16と、ローカル構造化テンプレート取得部17とを備える。
一方、サブサーバ3は、図3に示すように、構造化文書サブ管理プログラムに従うことにより、ローカル構造化テンプレート照合部31と、ローカル構造化テンプレート更新部32と、装置固有の構造情報であるローカル構造化テンプレートを保持する固有構造情報格納部であるローカル構造化テンプレートデータベース(ローカル構造化テンプレートDB)33と、構造化文書格納部34と、構造化文書データデータベース(構造化文書データDB)35と、を備える。以下、各機能について説明する。
構造化文書構文解析部11は、構造化文書構文解析手段として機能するものであり、入力された構造化文書(XML文書)を構文解析する。構造化文書構造抽出部12は、構造化文書構造抽出手段として機能するものであり、構造化文書構文解析部11の構文解析結果から構造情報を抽出する。ここで、図4は構造化文書の1つであるXML文書のデータ例、図5は図4のXML文書を構文解析した結果である構造情報の一例である。図5に示す構造情報では、XML文書に現れる構造パスに対するその出現数の情報を構造情報として挙げている。
グローバル構造化テンプレート照合部13は、構造情報照合手段として機能するものであり、グローバル構造化テンプレートDB14内のグローバル構造化テンプレートと構造化文書構造抽出部12で抽出された構造化文書の構造情報とを比較し、各サブサーバ3のローカル構造化テンプレートDB33内のローカル構造化テンプレートに対する構造類似度を計算する。ここで、構造類似度とは、構造化テンプレート情報とXML文書(構造化文書)間の構造上の類似性を計算した尺度である。図6は、グローバル構造化テンプレートの構成例である。グローバル構造化テンプレートは、サブサーバA〜Bに登録されたXML文書の構造情報を解析し、XML文書に出現した構造パスに一意に割り当てられるIDとしてテンプレートID、実際の構造パス、出現パターン及び各テンプレートIDに対する各サブサーバ3の出現パターンを保持している。図7は、構造化テンプレートを木構造で表現したものである。
ここで、図8はグローバル構造化テンプレート照合部13における処理の流れを示すフローチャートである。図8に示すように、まず、グローバル構造化テンプレートが空か否かをチェックする(ステップS1)。
グローバル構造化テンプレートが空の場合には(ステップS1のYes)、各サブサーバ3のローカル構造化テンプレートに対する構造類似度Lissに0を代入して(ステップS2)、処理を終了する。一方、グローバル構造化テンプレートが空ではない場合には(ステップS1のNo)、構造化文書の構造情報とグローバル構造化テンプレートに共通して出現する構造タグの集合を取得する(ステップS3)。ここでは、構造タグをCn、Cnの集合をCnsとする。
続くステップS4では、Cnsの中から1つ構造タグCnを取り出す。そして、グローバル構造化テンプレートが保持している各サブサーバ3におけるCnに対する出現パターンを取り出す(ステップS5)。より詳細には、各サブサーバ3の出現パターンをLp、全てのサブサーバ3の出現パターン集合をLpsとする。さらに、構造化文書に関してもCnに対する出現パターンを取り出す。これをTpとする。
次いで、Lps内の各LpとTpからCnに対する各サブサーバ3のローカル構造化テンプレートに対する構造類似度を計算する(ステップS6)。この構造類似度をLiとし、全てのサブサーバ3の構造類似度の集合をLisとする。
構造類似度の計算はgetLi関数によって取得される。getLi関数では、ローカル構造化テンプレートのCnに対する出現パターンをチェックし、構造化文書を登録することにより出現パターンが変化するようであれば、その変化の度合いによって重みをつけて構造類似度を返却する。出現パターンは、一例として、“?”表現(0または1個文書内に出現)、“*”表現(0個以上文書内に出現)、n(n個文書内に出現)、p−q(p個以上q個以下の個数が文書内に出現)といったものが挙げられる。構造類似度は、例えばn個の出現パターンに対して、構造化文書の出現パターンがm(m!=n)であれば、構造化文書を登録した場合のローカル構造化テンプレートの出現パターンがm−nに変更されることに着目して計算される。m=nであれば構造類似度は0と計算される。
その後、Cnsをチェックして(ステップS7)、全てのCnが取り出されCnsが空の場合には(ステップS7のYes)、全てのCnに対するLisを加算し、各サブサーバ3のローカル構造化テンプレートに対するトータルの構造類似度Lissを取得する(ステップS8)。一方、Cnsが空でない場合には(ステップS7のNo)、ステップS4に戻り、Cnsから次のCnを取り出して、そのCnに対するLisの取得処理を繰り返す。
構造化文書配置先選択部15は、構造化文書配置先選択手段として機能するものであり、グローバル構造化テンプレート照合部13における照合結果及びその他の制約条件から、構造化文書を格納するサブサーバ3を決定する。
構造化文書を格納するサブサーバ3が決定すると、配置先として決定したサブサーバ3の固有構造情報照合手段として機能するローカル構造化テンプレート照合部31は、ローカル構造化テンプレートDB33内の構造化テンプレート情報とメインサーバ1から送られた構造化文書の構造情報とを比較する。
ローカル構造化テンプレート更新部32は、固有構造情報更新手段として機能するものであり、ローカル構造化テンプレート照合部31における照合結果に基づき、ローカル構造化テンプレートDB33内の構造化テンプレート情報を更新する。また、構造化文書格納部34は、構造化文書データDB35に構造化文書を格納する。図9は、ローカル構造化テンプレートの構成例である。ローカル構造化テンプレートは、サブサーバ3に登録されたXML文書の構造情報を解析してXML文書に出現した構造パスに一意に割り当てられるIDとしてテンプレートID、実際の構造パス、出現パターン、登録された全文書に対する出現数、ノードに格納された文字列の平均長を保持している。
ここで、図10はローカル構造化テンプレート更新部32における処理の流れを示すフローチャートである。まず、構造化文書の構造情報とローカル構造化テンプレートに出現する構造タグの和集合を取得する(ステップS11)。構造タグをUn、Unの集合をUnsとする。
次いで、Unsの中から1つ構造タグUnを取得し(ステップS12)、サブサーバ3のローカル構造化テンプレートからUnに対する出現パターンを取得する。さらに、構造化文書に関してもUnに対する出現パターンを取得する(ステップS13)。ここで、サブサーバ3の出現パターンをLp、構造化文書における出現パターンをTpとする。
続くステップS14では、Lpが空か否かをチェックする。Lpが空の場合には(ステップS14のYes)、AppendLp関数によってLpを作成して(ステップS15)、ステップS17に進む。AppendLp関数では、サブサーバ3への登録が1件目の場合は、Tpを出現パターンとし、それ以外は今まで0件パターンと考えて*の出現パターンとして作成する。
一方、Lpが空でない場合には(ステップS14のNo)、LpとTpからUpdateLp関数によってLpを更新する(ステップS16)。UpdateLp関数では、Tpが加わることによりLpの出現パターンが変化する場合は、Tpの出現パターンも満たす出現パターンに更新する。例えば、n個の出現パターンに対して、構造化文書の出現パターンがm(m!=n)であれば、出現パターンがm−nに変更される。
そして、ステップS17では、Unsをチェックする。全てのUnが取り出されUnsが空の場合には(ステップS17のYes)、全ての構造に対して更新が終了したとして処理を終了する。一方、Unsが空でない場合には(ステップS17のNo)、ステップS12に戻り、Unsから次のUnを取り出して、そのUnに対するLpの更新処理を繰り返す。
グローバル構造化テンプレート更新部16は、構造情報更新手段として機能するものであり、ローカル構造化テンプレートDB33の更新情報に基づき、グローバル構造化テンプレートDB14の構造情報を更新する。
また、ローカル構造化テンプレート取得部17は、固有構造情報取得手段として機能するものであり、全てのサブサーバ3のローカル構造化テンプレートDB33を取得し、グローバル構造化テンプレートDB14に格納する。
このような構成により、分散構成の構造化文書管理システムは、構造化文書(XML文書)の構造情報に着目して構造化文書データを格納するサブサーバ3を選択し、選択したサブサーバ3が有している構造化文書データDB35に構造化文書データを格納する処理を行う。これにより、各サブサーバ3内の構造条件を、単純に文書データを配置した場合と比較してより厳密な制約条件にすることを可能とする。
[3.構造化文書検索処理]
次に、構造化文書検索処理にかかる機能について、分散構成の構造化文書管理システムの機能構成を示すブロック図である図11を参照して説明する
メインサーバ1は、図11に示すように、構造化文書メイン管理プログラムに従うことにより、図3に示した機能に加えて、問合せ構文解析部41と、問合せ構造抽出部42と、問合せ構造照合部43と、問合せプラン生成部44と、問合せプラン最適化部45と、問合せ処理実行部46とを備える。
問合せ構文解析部41は、問合せ構文解析手段として機能するものであり、与えられた問合せクエリを構文解析する。問合せ構造抽出部42は、問合せ構造抽出手段として機能するものであり、問合せ構文解析部41の構文解析結果から問合せクエリ内の構造指定部分を抽出する。図12は、XMLの問合せ言語XQueryによる問合せクエリの一例である。
問合せ構造照合部43は、問合せ構造照合手段として機能するものであり、問合せ構造抽出部42で抽出した構造指定部分とグローバル構造化テンプレートDB14内のグローバル構造化テンプレートとを照合し、構造化テンプレートにおける構造指定部分のIDを獲得する。
問合せプラン生成部44は、問合せプラン生成手段として機能するものであり、構造情報の照合結果に基づいて問合せプランを生成する。図13は、問合せプラン生成部44における処理の流れを示すフローチャートである。図13に示すように、まず、問合せ構文解析部41における問合せ構文解析結果と問い合わせ構造照合部43における照合結果に基づいて順に解析を実施する(ステップS21)。
そして、今までの処理で出力変数を獲得したかをチェックし、出力変数を獲得した場合は(ステップS22のYes)、問合せプラン生成処理を終了する。
一方、出力変数を獲得していない場合は(ステップS22のNo)、未獲得の変数に対して関数オペレータによって取得可能か否かをチェックする(ステップS23)。
関数オペレータによって取得不可能な場合は(ステップS23のNo)、パス処理であるTraverseオペレータによって取得可能かをチェックする(ステップS24)。
Traverseオペレータによって取得不可能な場合は(ステップS24のNo)、比較処理であるJoinオペレータによって取得可能かをチェックする(ステップS25)。
Joinオペレータによって取得不可能な場合は(ステップS25のNo)、その他の処理を問合せプランに追加する(ステップS29)。
一方、いずれかのオペレータにより取得可能な場合(ステップS23のYes,ステップS24のYes,ステップS25のYes)、そのオペレータを問合せプランに追加する(ステップS26,ステップS27,ステップS28)。
続いて、追加したオペレータの結果を各サブサーバ3毎に変数を用意して格納した後(ステップS30)、各サブサーバ3毎の計算結果のマージが必要かをチェックする(ステップS31)。例えば、他の変数とJoinする場合や最終出力になる場合、マージする必要がある。
各サブサーバ3毎の計算結果のマージが必要ない場合には(ステップS31のNo)、ステップS21に戻り、構文解析結果、構造照合結果から次の解析処理に移る。
一方、各サブサーバ3毎の計算結果のマージが必要ない場合には(ステップS31のYes)、1つのサブサーバ3に他のサブサーバ3の計算結果を移動するShipオペレータを生成プランに追加した後(ステップS32)、各サブサーバ3毎の計算結果をマージするMergeオペレータを生成プランに追加する(ステップS33)。
次いで、ステップS33でマージした結果が次の処理に必要かをチェックする。例えば、他の変数とJoinする場合は、再度各サブサーバ3にマージした結果が必要となる。マージした結果が次の処理に必要ない場合には(ステップS34のNo)、ステップS21に戻り、構文解析結果、構造照合結果から次の解析処理に移る。一方、マージした結果が次の処理に必要な場合には(ステップS34のYes)、マージした結果の変数を再び各計算機に移動するためのShipオペレータを生成プランに追加して(ステップS35)、ステップS21に戻る。
図14は、図6に示したグローバル構造化テンプレートを持つデータベースに対して図12のクエリを問合せとして入力した場合における問合せプラン生成部44で生成される問合せプランである。図14では、サブサーバ3を計算機1,2,3としている。図14では、最初のオペレータとして、db("book")の処理、即ち各計算機に格納されているXML文書のルートを取得するRootFunctionオペレータを各計算機で格納し、その結果を各計算機毎の変数$r1、$r2、$r3に格納する[0]。
次に、/book/authors/author[1]を取得するために、Traverseオペレータを各計算機で実施する[1,2,3]。
次に、let $x := …を取得するため、[1,2,3]で取得した結果を計算機1に移動し、結果をマージして変数$xに格納する[4,5,6]。
次に、$xは全ての計算機で必要となるためShipオペレータにより各計算機に転送する[7,8]。
次に、/book/authors/author[2]を取得するため[0]の変数を利用してTraverseオペレータを各計算機で実施する[9,10,11]。
次に、[6]と[9,10,11]の結果を各計算機でJoinする[12,13,14]。
次に、author[2]から/book/subtitleに取得するためにTraverseオペレータで各計算機で実行する[15,16,17]。
次に、for $y in …を取得するために、[15,16,17]で取得した結果を計算機1に移動し、結果をマージして変数$yに格納する[18,19,20]。
最後に、出力として$yの値を<サブタイトル一覧>のタグ内に追加して返却する[21]。
問合せプラン最適化部45は、問合せプラン最適化手段として機能するものであり、作成した問合せプランに対して各サブサーバ3(計算機)のローカル構造テンプレート情報を利用して不要な処理を削除し最適化を実施する。図15は、問合せプラン最適化部45における処理の流れを示すフローチャートである。図15に示すように、まず、問合せプラン生成部44で生成された問合せプランのオペレータを逆順に解析し(ステップS41)、全てのオペレータの解析が終了した場合は(ステップS42のYes)、問合せプラン最適化部45における処理を終了する。
全てのオペレータの解析が終了していない場合は(ステップS42のNo)、オペレータがテンプレートIDを利用しているか否かをチェックする(ステップS43)。オペレータがテンプレートIDを利用していない場合は(ステップS43のNo)、ステップS41に戻り、次のオペレータを解析する。
オペレータがテンプレートIDを利用する場合は(ステップS43のYes)、グローバル構造化テンプレートから、オペレータを実行するサブサーバ3におけるテンプレートIDの出現パターンを取得し(ステップS44)、出現パターンから変数に格納するノードがサブサーバ3内に存在するか否かを解析し、オペレータの必要性を判定する(ステップS45)。例えば、author[2]といったauthorの番目を取得すると指定された場合、出現パターンが1以下である場合は指定されたノードが存在しないと判断する。指定されたノードが存在する場合は、オペレータが必要であると判断し(ステップS46のNo)、ステップS41に戻り、次のオペレータを解析する。
一方、指定されたノードが存在しない場合は、オペレータが不要であると判断し(ステップS46のYes)、変数を取得するオペレータを削除し(ステップS47)、削除した変数を使用しているオペレータを解析する(ステップS48)。
次いで、変数を削除したことによりオペレータが不要かをチェックし(ステップS49)、オペレータが不要な場合は(ステップS49のYes)、オペレータを削除した後(ステップS50)、ステップS48に戻り、次のオペレータを解析する。
オペレータが必要な場合は(ステップS49のNo)、オペレータの情報を変更する必要があるか否かをチェックする(ステップS51)。変更する必要がある場合には(ステップS51のYes)、オペレータの情報を変更した後(ステップS52)、最初のステップS41に戻り、次のオペレータを解析する。一方、変更する必要がない場合には(ステップS51のNo)、ステップS41に戻り、次のオペレータを解析する。
図16は、図14に示した生成プランを入力とした場合における問合せプラン最適化部45で生成される最適化生成プランである。図16では、サブサーバ3を計算機1,2,3としている。図16では、図14の生成プランを逆順に解析していく。最初に$yをチェックする。$yは出力として必要なため、そのまま残す。
次に、$y1、$y2、$y3をチェックする。ここで、$y2に関しては、図6のグローバル構造化テンプレートをチェックすると、計算機2では/book/subtitleが存在しないことが判明する。そのため、$y2は不要であるとして、[16]のオペレータを削除する。さらに、$y2を利用するオペレータとして[18,20]が存在するが、[18]は$y2が不要であるため削除する。[20]に関してはMergeの対象から$y2を削除する。
次に、$j1、$j2、$j3をチェックする。ここで、$j2に関しては[16]で利用される変数であるが、[16]が削除されているため不要と判断して[13]のオペレータを削除する。
次に、$t1、$t2、$t3をチェックする。ここで、$t2に関しては[13]で利用される変数であるが、[13]が削除されているため不要と判断して[10]のオペレータを削除する。また、$t3に関しては、図6のグローバル構造化テンプレートをチェックすると計算機3では/book/authorの出現パターンが1であり、/book/author[2]が存在しないことが判明する。そのため、$t3は不要であるとして[11]のオペレータを削除する。さらに、$t3を利用するオペレータとして[14]が存在するが、[14]は$t3が不要であるため削除する。これを繰り返して$j3を利用するオペレータとして[17]を削除、及び$y3を利用する[19]を削除する。[20]に関してはMergeの対象から$y3を削除した結果Merge対象が存在しなくなるため[20]も削除する。
次に、$xをチェックすると$xは[12]で必要なため残す。但し、[7,8]は計算機2,3に$xを移動しても何も処理されないため削除する。次に、$x1、$x2、$x3をチェックすると、これらは$xのために必要なので削除しない。最後に、$r1、$r2、$r3をチェックすると、これらは$x1、$x2、$x3のために必要なので削除しない。
以上で全ての変数をチェックした結果として、図16に示す最適化生成プランが生成される。
問合せ処理実行部46は、問合せ処理実行手段として機能するものであり、生成プランに従って各サブサーバ3の構造化文書データにアクセス、あるいはサブサーバ3間で計算データの交換を繰り返して処理を実施し、問合せクエリの出力に合致するデータを取得して出力する。
これにより、各サブサーバ3内の構造条件を、単純に文書データを配置した場合と比較してより厳密な制約条件にすることを可能とし、各サブサーバ3はその構造条件に基づいた最適化を行うことにより、データ転送や他のサブサーバ3の結果待ちを極力少なくすることで効率的な問合せ処理を実現することができる。
このように本実施の形態によれば、格納される構造化文書(XML文書)の構造情報に着目し、構造化文書(XML文書)の分散配置を実施することで効率的に探索することが可能となる。ここでは、あるサブサーバ3(計算機1)には<subtitle>の出現パターンが0の文書を配置し、別のサブサーバ3(計算機2)に<subtitle>の出現パターンが1の文書を配置することでDB全体では<subtitle>の出現パターンは0または1だとしても、各サブサーバ3内ではより制約条件が強化される。そのため、この場合ではサブサーバ3(計算機2)に格納されているXML文書のみ<subtitle>を探索すれば良い。
一般に、構造情報等を考慮に入れずに単純に各サブサーバ3に構造化文書を格納していくと、様々な構造を持つ文書を格納するため、格納された構造化文書全てに対して満たされる構造の制約(XML Schema、DTD、DataGuide等の形で表現可能な制約)は緩やかなものとなる。例えば、構造化文書の一例として図4に示したようなXML文書を格納していく場合、格納するXML文書の中にはタグ<subtitle>が存在しないXML文書等も含まれる場合が存在する。その場合、DB全体における構造情報として<subtitle>の出現パターンは0または1回出現するといった形で記憶される。このため、ある文書の<subtitle>の値を取得するといった問合せの場合、各XML文書に<subtitle>が存在するかしないかが不明であるため、全XML文書を探索する必要が存在する。
これに対し、本実施の形態によれば、もし<subtitle>の出現パターンが0に固定されていれば<subtitle>が存在しないことが構造情報から判別できるため全XML文書を探索する必要がない。このように、構造情報の制約条件が厳密になる程、探索時に無駄な処理を省くことが可能となる。
このように構造化文書の特徴となる構造情報を考慮した分散配置を行うことで、サブサーバ3(計算機)間のデータ転送や不要なデータに対する探索を削除し、問合せ処理の最適化を実現することが可能となる。
本発明の実施の一形態にかかる分散構成の構造化文書管理システムのシステム構築例を示す模式図である。 メインサーバおよびサブサーバのモジュール構成図である。 構造化文書格納処理にかかる分散構成の構造化文書管理システムの機能構成を示すブロック図である。 構造化文書の1つであるXML文書のデータ例を示す模式図である。 図4のXML文書を構文解析した結果である構造情報の一例を示す模式図である。 グローバル構造化テンプレートの構成例を示す模式図である。 構造化テンプレートを木構造で表現した模式図である。 グローバル構造化テンプレート照合部における処理の流れを示すフローチャートである。 ローカル構造化テンプレートの構成例を示す模式図である。 ローカル構造化テンプレート更新部における処理の流れを示すフローチャートである。 構造化文書検索処理にかかる分散構成の構造化文書管理システムの機能構成を示すブロック図である。 XMLの問合せ言語XQueryによる問合せクエリの一例を示す模式図である。 問合せプラン生成部における処理の流れを示すフローチャートである。 問合せプラン生成部で生成される問合せプランの一例を示す模式図である。 問合せプラン最適化部における処理の流れを示すフローチャートである。 問合せプラン最適化部で生成される最適化生成プランの一例を示す模式図である。 リレーショナルデータベースにおけるレンジ分割の例を示す模式図である。 XPathを利用することでXML文書における水平分割と垂直分割を実現している例を示す模式図である。
符号の説明
1 構造化文書管理装置
3 構造化文書サブ管理装置
11 構造化文書構文解析手段
12 構造化文書構造抽出手段
13 構造情報照合手段
14 構造情報格納部
15 構造化文書配置先選択手段
16 構造情報更新手段
17 固有構造情報取得手段
31 固有構造情報照合手段
32 固有構造情報更新手段
33 固有構造情報格納部
41 問合せ構文解析手段
42 問合せ構造抽出手段
43 問合せ構造照合手段
44 問合せプラン生成手段
45 問合せプラン最適化手段
46 問合せ処理実行手段

Claims (9)

  1. 構造化文書を複数の構造化文書サブ管理装置に分散させて管理する構造化文書管理装置において、
    入力された前記構造化文書を構文解析する構造化文書構文解析手段と、
    この構造化文書構文解析手段の構文解析結果から構造情報を抽出する構造化文書構造抽出手段と、
    前記構造化文書管理装置で管理している全登録文書に対する構造情報を保持する構造情報格納部と、
    この構造情報格納部内の全登録文書に対する構造情報と前記構造化文書構造抽出手段で抽出された構造化文書の構造情報とを比較し、前記構造化文書サブ管理装置が有している装置固有の構造情報に対する構造類似度を計算する構造情報照合手段と、
    この構造情報照合手段における計算結果である構造類似度に基づいて、前記入力された構造化文書を格納する前記構造化文書サブ管理装置を決定する構造化文書配置先選択手段と、
    を備えることを特徴とする構造化文書管理装置。
  2. 前記構造化文書構造抽出手段により抽出される構造情報は、前記構造化文書に現れる構造パスに対するその出現数の情報である、
    ことを特徴とする請求項1記載の構造化文書管理装置。
  3. 前記構造化文書サブ管理装置が有している前記装置固有の構造情報の更新情報に基づき、前記構造情報格納部内の全登録文書に対する構造情報を更新する構造情報更新手段を更に備える、
    ことを特徴とする請求項1または2記載の構造化文書管理装置。
  4. 全ての前記構造化文書サブ管理装置が有している前記装置固有の構造情報を取得して前記構造情報格納部に格納する固有構造情報取得手段を更に備える、
    ことを特徴とする請求項1ないし3のいずれか一記載の構造化文書管理装置。
  5. 与えられた問合せクエリを構文解析する問合せ構文解析手段と、
    この問合せ構文解析手段の構文解析結果から問合せクエリ内の構造指定部分を抽出する問合せ構造抽出手段と、
    この問合せ構造抽出手段で抽出した構造指定部分と前記全登録文書に対する構造情報とを照合し、前記全登録文書に対する構造情報における構造指定部分のIDを獲得する問合せ構造照合手段と、
    この問合せ構造照合手段の照合結果に基づいて問合せプランを生成する問合せプラン生成手段と、
    この問合せプラン生成手段で作成した問合せプランに対して前記各構造化文書サブ管理装置が有している前記装置固有の構造情報を利用して不要な処理を削除して最適化を実施する問合せプラン最適化手段と、
    この問合せプラン最適化手段により最適化された生成プランに従うことにより前記問合せクエリの出力に合致するデータを取得して出力する問合せ処理実行手段と、
    を備えることを特徴とする請求項1ないし4のいずれか一記載の構造化文書管理装置。
  6. 構造化文書管理装置からの指示に従って構造化文書を分散格納する構造化文書サブ管理装置において、
    装置固有の構造情報を保持する固有構造情報格納部と、
    この固有構造情報格納部内の装置固有の構造情報と前記構造化文書管理装置から送られた前記構造化文書の構造情報とを比較する固有構造情報照合手段と、
    この固有構造情報照合手段における照合結果に基づき、前記固有構造情報格納部内の装置固有の構造情報を更新する固有構造情報更新手段と、
    を備えることを特徴とする構造化文書サブ管理装置。
  7. 構造化文書を複数の構造化文書サブ管理装置に分散させて管理する構造化文書管理装置を制御するコンピュータを動作させるプログラムであって、
    入力された前記構造化文書を構文解析する構造化文書構文解析機能と、
    この構造化文書構文解析機能の構文解析結果から構造情報を抽出する構造化文書構造抽出機能と、
    構造情報格納部内に保持されていて前記構造化文書管理装置で管理している全登録文書に対する構造情報と前記構造化文書構造抽出機能で抽出された構造化文書の構造情報とを比較し、前記構造化文書サブ管理装置が有している装置固有の構造情報に対する構造類似度を計算する構造情報照合機能と、
    この構造情報照合機能における計算結果である構造類似度に基づいて、前記入力された構造化文書を格納する前記構造化文書サブ管理装置を決定する構造化文書配置先選択機能と、
    を前記コンピュータに実行させることを特徴とするプログラム。
  8. 構造化文書管理装置からの指示に従って構造化文書を分散格納する構造化文書サブ管理装置を制御するコンピュータを動作させるプログラムであって、
    装置固有の構造情報を保持する固有構造情報格納部内の装置固有の構造情報と前記構造化文書管理装置から送られた前記構造化文書の構造情報とを比較する固有構造情報照合機能と、
    この固有構造情報照合機能における照合結果に基づき、前記固有構造情報格納部内の装置固有の構造情報を更新する固有構造情報更新機能と、
    を前記コンピュータに実行させることを特徴とするプログラム。
  9. 構造化文書を複数の構造化文書サブ管理装置に分散格納して管理する構造化文書管理装置における構造化文書の管理方法であって、
    前記構造化文書を分散格納する際に、前記構造化文書の構造情報に着目して前記構造化文書を格納する前記構造化文書サブ管理装置を選択する、
    ことを特徴とする構造化文書の管理方法。
JP2006091991A 2006-03-29 2006-03-29 構造化文書管理装置、構造化文書管理システムおよびプログラム Active JP4489047B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006091991A JP4489047B2 (ja) 2006-03-29 2006-03-29 構造化文書管理装置、構造化文書管理システムおよびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006091991A JP4489047B2 (ja) 2006-03-29 2006-03-29 構造化文書管理装置、構造化文書管理システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2007265248A true JP2007265248A (ja) 2007-10-11
JP4489047B2 JP4489047B2 (ja) 2010-06-23

Family

ID=38638143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006091991A Active JP4489047B2 (ja) 2006-03-29 2006-03-29 構造化文書管理装置、構造化文書管理システムおよびプログラム

Country Status (1)

Country Link
JP (1) JP4489047B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211154A (ja) * 2008-02-29 2009-09-17 Toshiba Corp データベース処理装置、情報処理方法及びプログラム
JP2012093829A (ja) * 2010-10-25 2012-05-17 Toshiba Corp 検索装置、検索方法および検索プログラム
JP2013003695A (ja) * 2011-06-14 2013-01-07 Toshiba Corp 分散データベース検索装置、分散データベース検索方法、及びプログラム
CN107607203A (zh) * 2017-09-08 2018-01-19 武汉大学 基于结构相似度的显著性波段选择方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211154A (ja) * 2008-02-29 2009-09-17 Toshiba Corp データベース処理装置、情報処理方法及びプログラム
JP2012093829A (ja) * 2010-10-25 2012-05-17 Toshiba Corp 検索装置、検索方法および検索プログラム
US9047391B2 (en) 2010-10-25 2015-06-02 Kabushiki Kaisha Toshiba Searching apparatus, searching method, and computer program product
JP2013003695A (ja) * 2011-06-14 2013-01-07 Toshiba Corp 分散データベース検索装置、分散データベース検索方法、及びプログラム
CN107607203A (zh) * 2017-09-08 2018-01-19 武汉大学 基于结构相似度的显著性波段选择方法
CN107607203B (zh) * 2017-09-08 2019-08-06 武汉大学 基于结构相似度的显著性波段选择方法

Also Published As

Publication number Publication date
JP4489047B2 (ja) 2010-06-23

Similar Documents

Publication Publication Date Title
JP5121146B2 (ja) 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法
US7634498B2 (en) Indexing XML datatype content system and method
JP3842573B2 (ja) 構造化文書検索方法、構造化文書管理装置及びプログラム
JP5710851B2 (ja) 影響分析のためのシステムおよび方法
US7490078B2 (en) Stream data processing system and method for avoiding duplication of data process
JP2008052662A (ja) 構造化文書管理システム及びプログラム
JP2007034827A (ja) 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム
JP4343206B2 (ja) 構造化文書検索支援装置およびプログラム
US8595215B2 (en) Apparatus, method, and computer program product for processing query
JP4489047B2 (ja) 構造化文書管理装置、構造化文書管理システムおよびプログラム
US9378301B2 (en) Apparatus, method, and computer program product for searching structured document
JP5072871B2 (ja) 構造化文書検索システム、装置、及び方法
JP2006127235A (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP2003281149A (ja) アクセス権限設定方法および構造化文書管理システム
JP2008077285A (ja) Sql管理システムとsql管理方法およびプログラム
JP4649339B2 (ja) XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体
JP2008243075A (ja) 構造化文書管理装置及び方法
JP2002297601A (ja) 構造化文書管理方法および構造化文書管理装置およびプログラム
JP2011154602A (ja) 文字列管理装置、文字列登録方法、文字列検索方法および文字列管理プログラム
JP4393498B2 (ja) 構造化文書管理システム及びプログラム
JP5439606B1 (ja) 構造化文書管理装置、方法およびプログラム
JP3842574B2 (ja) 情報抽出方法および構造化文書管理装置およびプログラム
JP5296128B2 (ja) 構造化文書管理装置、方法およびプログラム
Jota et al. A physical design strategy on a nosql dbms
JP2008234429A (ja) 部分ライブラリ構築装置、プログラムおよび部分ライブラリ構築方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100330

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4489047

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350