JP4649339B2 - XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体 - Google Patents

XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体 Download PDF

Info

Publication number
JP4649339B2
JP4649339B2 JP2006012202A JP2006012202A JP4649339B2 JP 4649339 B2 JP4649339 B2 JP 4649339B2 JP 2006012202 A JP2006012202 A JP 2006012202A JP 2006012202 A JP2006012202 A JP 2006012202A JP 4649339 B2 JP4649339 B2 JP 4649339B2
Authority
JP
Japan
Prior art keywords
xml
data
summary information
node
information
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.)
Expired - Fee Related
Application number
JP2006012202A
Other languages
English (en)
Other versions
JP2007193642A (ja
Inventor
毅晴 江田
真 鬼塚
雅司 山室
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006012202A priority Critical patent/JP4649339B2/ja
Publication of JP2007193642A publication Critical patent/JP2007193642A/ja
Application granted granted Critical
Publication of JP4649339B2 publication Critical patent/JP4649339B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体に関する。
XML(eXtensible Markup Language)データベースとは、XMLデータを格納し、効率よく検索、更新もできるソフトウェアプログラムである。その際、XMLデータベース内のXMLデータにアクセスするために、XPath(XML Path Language)やXQuery(XML Query)による検索機能を持つことが望まれる。
図20は、XMLデータの一例を示す。XMLとは、「<」と「>」とに挟まれた開始タグと、「</」と「>」とにはさまれた終了タグの入れ子構造からなるマークアップ言語であり、W3Cによって標準化されている。このタグの入れ子構造は、重なりをゆるさない。
図21のXML木とは、図20のXMLデータからモデル化された木(ツリー構造)である。具体的には、XML木は、XMLタグの入れ子構造を親子関係とし、タグの名前をノードの名前とし、タグの登場順を子ノードの順序とする。これにより、XMLデータベースはラベル付き順序木でモデル化される(図21参照)。XML木中のノードをXMLノードと呼ぶことにする。XMLノード集合は、XMLデータに登場した順序によって全順序集合となる。つまり、XML木は順序木である。このXMLノードの順序を、文書順と呼ぶ。
DOM(Document Object Model)木、および、SAX(Simple API for XML)イベントは、共にXMLデータをプログラミング言語で扱うためのAPI(Application Program Interface)であり、標準化されている。まず、DOM木は、XML木をモデルとした、XMLデータを木ナビゲーション関数群によって扱うためのプログラミングAPIである。DOM木はモデルではなく、実際のメモリ内に展開した木構造を指すため、XML木という言葉とは区別して利用する。
一方、図22に示すSAXは、XMLデータをイベントの列として処理するためのAPIである。SAXも事実上XMLを処理するための標準となっている。SAXではXMLデータ中の各情報はSAXイベントと呼ばれる。なお、図22は、図20のXMLデータをSAXイベントシーケンスとして示した例を示す。xml宣言は省略してある。XMLの属性は、開始イベントに付与されている。SAXイベントは、例えば、開始イベント、終了イベント、および、テキストノードイベントが挙げられる。開始イベント(属性がある場合は属性を持つ)は、start(Book)のように記述される。終了イベントは、end(Book)のように記述される。テキストノードは、text(“This is a text node.”)のように記述される。
XML問合せ言語は、大量のXMLデータを効率よく検索するために、DOM木に対してではなく、モデル化されたXML木に対する、柔軟な検索を可能とする。標準の問合せ言語であるXPathおよびXQueryがW3Cから提案されている。なお、XML木の保持方法あるいは、格納構造には特に指定がなく、実装依存である。
XPathとは、XML木の位置特定言語とみなすことができ、XQueryの基本となるサブセットになっている。その他の様々なXMLの仕様でもXPathは利用されている(XLink(XML Linking Language)、XSLT(XML Stylesheet Language Transformations)等)。つまり、XPathはXML仕様において非常に重要なXML木の位置指定言語である。
図23は、XPathによる検索式の例を示す。XPath問合せでは、オペレーティングシステム等で利用されるファイルシステムのパス表現と同じような簡易表現が可能である。XPath問合せの簡易表現では、「A/B」をAがBの親とするノードの親子関係とし、「C//D」をCがDの先祖とするノードの先祖子孫関係とするように表現する。XPathは、分岐を含む場合(図23参照)、または、分岐を含まないシングルパスの場合(図24参照)に分類される。図24(1)は、多段に渡るXPath式を示している。
図25は、XPath式の問合せを問合せ木として示す。図25において、丸で囲まれたノードは、丸の中に書かれた名前でマッチする要素の名前を指定する。ノード間の一重線は親子関係を表し(図示省略)、二重線は先祖子孫関係を表す。ノードのうち二重丸で囲まれたノードはアウトプットノードであり、問合せを処理した後に返す部分木の根ノードを表す。ダブルクオートで囲まれたテキスト値は、テキストノードに対する条件である。問合せ木によって指定される条件を満たすアウトプットノードを返すことがXPath式を評価することにあたる。
なお、XMLデータをラベル付き順序木であるXML木と捉え、XPathによる検索をラベル付き順序木中の探索によって実現しようとすると、木構造の全てを探索する必要がある。XMLデータが大きなときには、木構造の全探索は非常に処理量が多く、処理が低速になってしまう。
そこで、XMLデータに直接アクセスする代わりに、XMLデータのストロングデータガイドを活用する方式が提案されている(非特許文献1、および、非特許文献2参照)。まず、ストロングデータガイド、および、ストロングデータガイドからXMLノードを参照するためのデータガイド索引を、XMLデータからあらかじめ作成しておく。データガイドノードは、ストロングデータガイド中のノードである。データガイド索引は、各データガイドノードに対応するXMLノードが、文書順に取得できるような索引である。そして、検索するXPath式が入力されたときに、そのXPath式とストロングデータガイドとを照合することにより、高速なXPathの検索処理を実現する。
江田毅晴、鬼塚真、山室雅司、"XMLデータの要約情報を用いた高速なXPath処理方法。In Proc. DEWS2005,2005."、[online]、[平成18年1月4日検索]、インターネット<URL:http://www.digitalcity.gr.jp/satoh/DEWS2005/procs/papers/6B-o4.pdf> Takeharu Eda,Makoto Onizuka、and Masashi Yamamuro著、"Processing XPath Queries with XML Summaries"、In Proc.CIKM,2005.
なお、XMLデータのストロングデータガイドは、XMLデータを示す要約情報の一例であり、データガイド索引は、索引情報の一例である。XMLデータなどの木構造を対象として効率的にアクセスするための要約情報は、様々なものが利用可能である。例えば、図26に示すタグ情報は、同じ名称となるXMLノードが複数存在するときに、それらのXMLノードを1つの集合にまとめるような要約情報であり、タグ索引は、タグ情報からXMLノードにアクセスするための索引である。
なお、要約情報は、それぞれ利点欠点があり、XMLデータに高速にアクセスできる最適な要約情報を選択することで、アクセス量を大きく低減できる。しかし、従来は、XMLデータの要約情報そのものは、様々なものが提案されているが、それらのうち、最適なものを選択する手法は、提案されていなかった。そのため、最適でない要約情報が使用されることもあり、充分な高速化がなされていなかった。
そこで、本発明は、前記した問題を解決し、XMLデータにアクセスするための最適な要約情報を選択することを主な目的とする。
本発明は、XPath式で記述された問合せの入力を受け付けて、その問合せに適合するXMLデータにアクセスするXPath処理装置であって、前記XPath処理装置は、記憶手段と、要約情報作成手段と、問合せ解析手段と、アクセス選択手段とを有しており、前記記憶手段には、前記問合せの検索対象であるXMLデータがXMLデータベースとして格納されており、前記要約情報作成手段は、前記XMLデータベースを構成する複数のXMLノードをもとに、そのXMLノードへアクセスするためのXMLアクセス用データを2つ以上作成して記憶手段に格納し、前記作成されるXMLアクセス用データは、要約情報と統計情報と索引情報とから構成されるデータ構造であり、前記作成されるXMLアクセス用データのうちの第1XMLアクセス用データとして、前記XMLノードに対応するデータガイドノードをツリー状に構成するストロングデータガイドを、前記第1XMLアクセス用データの要約情報とし、前記データガイドノードごとに対応するXMLノードの個数を示すカウンタ値を、前記第1XMLアクセス用データの統計情報とし、前記データガイドノードごとに対応するXMLノードの位置特定用データであるデータガイド索引を、前記第1XMLアクセス用データの索引情報とし、前記作成されるXMLアクセス用データのうちの第2XMLアクセス用データとして、前記XMLノードのタグ名ごとにタグ要素とするタグ情報を、前記第2XMLアクセス用データの要約情報とし、前記タグ要素ごとに対応するXMLノードの個数を示すカウンタ値を、前記第2XMLアクセス用データの統計情報とし、前記タグ要素ごとに対応するXMLノードをXMLデータ中におけるXMLノードの出現順に取得させるタグ索引を、前記第2XMLアクセス用データの索引情報とし、前記問合せ解析手段は、前記複数のXMLアクセス用データそれぞれについて、その要約情報ごとに、その要約情報に対応するXMLノードが前記問合せで入力されたXPath式に適合するか否かを照合することにより、前記XMLデータの前記要約情報に対して問合せの検索処理を行い、その検索処理にマッチする前記要約情報に対応する前記統計情報のカウンタ値を抽出し、前記アクセス選択手段は、抽出した前記カウンタ値小さくなるほど高評価とする評価関数により評価し、高評価となる前記カウンタ値となるXMLアクセス用データの索引情報を、前記XMLデータへのアクセスのために選択すること、を特徴とする。
さらに、本発明は、前記XPath処理装置が実行するXPath処理方法であり、前記XPath処理方法をコンピュータに実行させるためのXPath処理プログラムであり、前記XPath処理プログラムを格納した記憶媒体である。
これにより、XPath等の木構造指定言語を用いてXMLデータを検索するXMLデータベースシステムにおいて、XMLデータにアクセスするための最適な要約情報を選択することで、XMLデータのアクセス処理を低減することができる。
本発明は、前記要約情報作成手段が、前記データガイド索引を作成するときに、前記XMLノードの位置特定用データとして、前記XMLのノードに前置順と後置順との順序関係を保存したラベルである範囲ラベルを作成することを特徴とする。
これにより、高速なXMLデータのアクセス処理によって、短期間に問合せの結果を取得することができる。さらに、範囲ラベルを用いた高速なXMLノードの親子及び先祖子孫判定により、短期間に問合せの結果を取得することができる。
本発明は、前記要約情報作成手段が、前記XMLデータのSAXイベントシーケンスを用いてSAXイベントごとにイベントに対応する情報が前記要約情報中に存在するか判定し、存在しない場合が、前記要約情報を追加し、さらに前記統計情報を計算し、前記要約情報の対応する部分に追加しながら、SAXイベントシーケンスを最後まで処理することにより、前記XMLデータに対する一回の走査で前記要約情報およびその統計情報を生成することを特徴とする。
これにより、要約情報を高速に作成することができる。
本発明では、XMLデータにアクセスするための最適な要約情報を選択することで、XMLデータのアクセス処理を低減することができる。
まず、本発明と既存技術とを比較することにより、本発明の顕著な効果を主張する。図1に既存技術と本発明の提案技術の比較図を示す。既存手法では、要約情報を処理した後、固定したアクセス方法(要約情報)で、XMLデータを読み込んでいた(図1(a)参照)。提案技術では、統計情報付き要約情報を処理した後に、計算した統計情報をもとに、複数あるアクセス方法の中から最適なアクセス方法を選択する(図1(b)参照)。これにより、従来発生していた、ディスクの複数箇所にまたがるアクセスや、マージのコストを下げることが出来、高速なXPath処理を実現可能にする。
以下、第1実施形態を説明する。図2のXPath処理装置は、演算処理を行う際に用いられる記憶手段としてのメモリと、前記演算処理を行う演算処理装置と、データを入出力するためのインタフェースとを少なくとも備えるコンピュータとして構成される。なお、メモリは、RAM(Random Access Memory)などにより構成される。演算処理は、CPU(Central Processing Unit)によって構成される演算処理装置が、メモリ上のプログラムを実行することで、実現される。
利用者は、XPath検索式を用いて、プログラミングAPIあるいは対話型インタフェースプログラム等からデータベースに検索を行う。XPath式は、問合せ解析手段14にてパーズされ、「XPath式→問合せ木→(構造部、値部)→中間問合せ木」の順に変換される。
ディスク管理手段22は、二次記憶装置28に格納されたXMLデータヘのアクセス手段を提供する。なお、XMLデータヘのアクセス手段とは、XMLノードの位置特定処理である。さらに、XMLノードへのアクセスは、位置特定されたXMLノードに関するデータ(属性情報などのテキスト)の読み取り(リード)処理や書き込み(ライト)処理を含めてもよい。イベントシーケンス手段24は、データガイドのアクセスを仲介する。結果生成手段26は、XPathの問合せの結果(結果ノードの指定する部分木)を生成する。
XMLデータ入力手段10は、XMLデータを二次記憶装置28に入力する。なお、XMLデータ入力手段10は、要約情報作成手段12と並行して動くことができる。
要約情報作成手段12は、XMLデータ入力手段10に入力されたXMLデータから要約情報を作成する。具体的には、要約情報作成手段12は、XMLデータのSAXイベントから、XMLデータの木構造部の要約情報を作成し、その要約情報の索引情報および統計情報を計算する。要約情報は、索引情報および統計情報と関連づけられる。なお、SAXイベントの詳細は、文献「David Megginson、“Simple API for XML(SAX)”、[online]、[平成18年1月4日検索]、インターネット<URL:http://sax.sourceforge.net/>」に記載されている。
XMLデータの要約情報は、XMLデータのテキスト値および属性値を除いた部分からなるXML木の木構造部を用いて構築される。XML木そのままの木構造ではデータサイズと同等の大きさになってしまうので、共通のパスを共有化して構築する。これにより、コンパクトかつ正確にXMLデータの構造の情報を保持できる。
XMLデータの要約情報は、例えば、ストロングデータガイド、および、タグ情報が挙げられる。ストロングデータガイドの作成方法は、例えば、文献「Roy Goldman and Jennifer Widom著、DataGuides:Enabling Query Formulation and Optimization in Semistructured Databases、In Proc. VLDB,1997.」に記述されている。図3は、図21に示すXML木のストロングデータガイドを示す。図10(詳細は後記)は、木構造データのイベントシーケンス全般に対して、要約情報の一例であるストロングデータガイドを効率よく作成する一例を示す。ストロングデータガイドの活用により、XPathを処理する際のアクセス量(後記する構造ジョイン回数およびディスクI/O)を削減することができる。
要約情報の索引情報は、XMLデータの木構造から作成され、例えば、ストロングデータガイドにおけるデータガイド索引、および、タグ情報におけるタグ索引が挙げられる。
要約情報の統計情報は、ストロングデータガイドにおけるデータガイド統計情報、および、タグ情報におけるタグ統計情報が挙げられる。図4のデータガイド統計情報は、データガイドノードに、XMLデータ中の対応するXMLノードの個数を保持する。図5のタグ統計情報は、各タグに示すXMLノードについてXMLデータ中での登場回数を保持する。
図2の問合せ解析手段14は、利用者のXPathによる検索問合せ(図24参照)を解析し、要約情報に対してXPath処理をする(図17参照、詳細は後記)。具体的には、問合せ解析手段14は、検索問合せを字句解析および構文解析し、問合せの内部表現である問合せ木(図25)を生成する。続いて、問合せ解析手段14は、問合せ木を構造部と値部に分離し、中間問合せ木を生成する。
問合せ処理手段16は、中間要約木列作成手段18、および、アクセス選択手段20を含む。そして、問合せ処理手段16は、中間要約木列作成手段18による中間木実体化処理、および、値部のフィルタリング処理の実行順序を、二次記憶装置28に格納されたXMLデータの統計情報等を用いて決定する。さらに、問合せ処理手段16は、実行プランを、二次記憶装置28に格納されたXMLデータおよびその要約情報を用いて実行する。
中間要約木列作成手段18は、XMLデータの統計情報付き要約情報から、XPathの問合せ処理においてマッチするXMLデータの要約情報中の中間要約木列(アウトプットノード列とも呼ばれる)、および、その中間要約木列の統計情報を計算する。なお、XPathの問合せ処理は、既存手法をそのまま活用することにより、実現される。
XPathの問合せ処理は、例えば、文献「Yanlei Diao,Mehmet Altinel,Michael J.Franklin,Hao Zhang, and Peter Fischer著、Path Sharing and Predicate Evaluation for High-Performance XML Filtering、Technical report, EECS,University of California,Berkeley and IBM Almaden Research Center,San Jose,2002.」に記載されている。XPathの問合せ処理は、例えば、文献「Todd J.Green,Ashish Gupta,Gerome Miklau,Makoto Onizuka, and Dan Suciu著、Processing XML Streams with Deteministic Automata and Stream Indexes、In Proc. ICDT,2003.」に記載されている。XPathの問合せ処理は、例えば、文献「Feng Peng and Sudarshan S.Chawathe著、XPath Queries on Streaming Data、In Proc. SIGMOD,2003.」に記載されている。
また、中間要約木列の統計情報は、XMLデータの統計情報を利用して、計算される。さらに、同時にアウトプットノードが保持しているカウントを合計して、アウトプットノードの統計情報とする。統計情報の作成例を図6(a)に、作成方法を図18(詳細は後記)にそれぞれ示す。
アクセス選択手段20は、中間要約木の統計情報を用いて、二次記憶装置28に格納されたXMLデータヘの最適な要約情報を選択する。なお、統計情報は、最適なディスクアクセス方法の選択、つまり、XMLデータの検索処理という全体の処理時間の総和が高速になるような選択に使用される。つまり、統計情報を作成する処理の増加よりも、最適な索引を選択することによりアクセス処理の減少に関する効果が大きい。
アクセス選択手段20は、様々な評価関数を用いて、アクセス量が少なくなる要約情報を選択できる。例えば、アクセス選択手段20は、XPath式に適合する要約情報のノード数が少なくなるほど高評価とする評価関数を用いてもよい。また、アクセス選択手段20は、XPath式に適合する要約情報のノードについて、そのノードに対応するXMLノードの中で、XPath式に適合するXMLノードの割合が高くなるほど高評価とする評価関数を用いてもよい。さらに、アクセス選択手段20は、例えば評価関数の評価値の重み付け平均などを行うことで、複数の評価関数を併せて用いてもよい。
図19(詳細は後記)は、2つの索引情報(データガイド索引、タグ索引)のいずれかを選択する方法を示す。図19において、中間要約木列の統計情報は、取り出すXMLノードの個数を示している。アクセス選択手段20は、タグ統計情報によって得られるアウトプットノードタグのXMLノードの個数から、中間要約木列の統計情報を引いたものが、kより小さい場合は、要約情報としてタグ情報を選択する。そうでない場合は、データガイド索引を選択する。この定数kは、システム依存でありかつ事前学習によって求めることも可能である。
以下、第2実施形態を説明する。第2実施形態は、索引情報に範囲ラベルを活用することを特徴とする。
図9は、範囲ラベルを用い、関係データベースを用いてデータ格納を行った場合において、本発明の利用される形態を示したものである。基本的には、第1実施形態と同じであるが、データベースのアクセスがRDBMS(Relational DataBase Management System)が提供するプログラミングAPIになっている点が違う。
要約情報作成手段12は、要約情報および統計情報を作成すると同時に、要約情報に範囲ラベルを付与する手段である。範囲ラベル付け手法および構造ジョインアルゴリズムは、併せて使用される(文献「Shurug Al-Khalifa,H.V.Jagadish,Nick Koudas,Jignesh M.Patel,Divesh Srivastava, and Yuqing Wu著、Structual Joins:A Primitive for Efficient XML Query Pattern Matching、In Proc. ICDE,2002.」)。これにより、木構造の全探索を回避することができ、検索処理が高速化される。
図7に示す範囲ラベル付け手法とは、XML木中のノードに前置順と後置順の順序関係を保存したラベルを付与することにより、XML木内のノード間の先祖子孫関係および親子関係をラベルの比較のみで判定可能にする処理である。なお、図7では、前置順、後置順に加えてルートノードからの深さも付与してある。更新操作に備え、ノード間に間隔を空けて数えている。これにより、データベースヘの先祖子孫および親子関係を指定した問合せを処理する際に、コストのかかる親子関係のリンクナヴィゲーションを回避することが可能となる。
図7は、図21のXML木に範囲ラベルを付与する一例である。図7では、任意の節点v=(ai,bj),w=(ak,bl)の間に、ai<akかつbj>blの関係が成り立つときのみuは2wの先祖となっている。この性質を利用すると、XPathによる、//Book//personのような問合せを評価する際に、大量のXMLデータの節点の親子関係リンクを辿らなくても節点間の先祖子孫関係が分かるので、Bookという名前を持つ節点集合とpersonという名前を持つ節点集合をB+tree等の高速な索引を用いて集め、判定条件を用いて先祖子孫関係を持つもののみをとりだすことによって問合せの結果を得ることができる。
この際の、Bookノードリストとpersonノードリストとのジョインオペレーションは構造ジョインと呼ばれ、既存のRDBMSで実装されているアルゴリズムは最適でないことが分かっており、高速な構造ジョインアルゴリズムが提案されている(文献「Shurug Al-Khalifa,H.V.Jagadish,Nick Koudas,Jignesh M.Patel,Divesh Srivastava, and Yuqing Wu著、Structual Joins:A Primitive for Efficient XML Query Pattern Matching、In Proc. ICDE,2002.」)。ノードのラベルに深さも付与することによって、親子関係も判定可能になるため、親子関係を指定する問合せも処理可能である。
なお、構造ジョインアルゴリズムは、XPathのパスの長さが長くなる場合には効率的ではない。例えば、図25において、線の箇所では、前記構造ジョインを行い、問合せを処理する。図24(1)に対応する図25の問合せ木の場合は、3回の構造ジョインを実行する必要がある。この3回に及ぶ構造ジョインはデータが大規模な場合非常にコストが高い。
図14(詳細は後記)は、範囲ラベルを付与した統計情報付きストロングデータガイドをSAXイベントからワンパスで構築する手順を示す。全体の流れは第1実施形態と同様であるが、範囲ラベルを同時に付与している点および、キューをストロングデータガイド中の各ノードに保持しキュー操作を伴う点が違う。以下、図14の処理の概要を示す。
ストロングデータガイドをXMLデータのワンパスで構築し統計情報を計算するのと同時に、範囲ラベルを各ノードに付与する。今、ストロングデータガイド中のノードをcで表し、cが持つキューを、Qcで表す。Qcには次の操作が実行できる。
1.enq(left,right):Qcの最後に(left,right)の範囲ラベルを追加する。
2.enqL(left):Qcの最後に(left,NULL)の範囲ラベルを追加する。
3.enqR(right):Qc中の範囲ラベルの中で、最後にrightがNULLである範囲ラベルのNULLをrightと入れ替える。
範囲ラベルをXMLデータの各ノードに付与するには、SAXイベントに対し、範囲ラベルの前置順、後置順用の内部カウンタを用意し、開始終了イベント、属性、およびテキストノードが現れるたびに、それぞれ内部カウンタの値をプラスしながら、イベントの時点でのカウンタの値をそのイベントに対応するXML木中のノードの範囲ラベルとして付与すればよい。ストロングデータガイドを構築すると同時に範囲ラベルを付与するには、各ノードに対して、範囲ラベルが確定した時点で、ストロングデータガイド中でパスが一致するノードのキューに範囲ラベルを付与する。
以下、本発明の方式が、従来の方式に比べ、アクセス量を削減できることを具体的に示す。
以下、2種類の索引情報(データガイド索引およびタグ索引)のいずれかを選択して、XMLデータにアクセスするケースを説明する。例えば、図20のXMLデータに対して、//authors//personという問合せを処理することを考える。図20のXMLデータは、図21のように木構造表現できる。
まず、データガイド索引を活用する場合を説明する。ストロングデータガイドは図3のようになる。このストロングデータガイドを利用して今、図8のような、データガイド索引を構築したとする。データガイド索引は、データガイドの各データガイドノードに対応するXMLノードが、文書順に取得できるような索引である。
まずストロングデータガイドに対してXPath処理を行うことにより、図6(b)の二つの実体中間木のアウトプットノードを返す。これらを文書順で返すために、マージ処理を行って、図6(c)が結果として返される。ここで行った処理は、以下のようになる。
1.1回のデータガイド処理
2.2回のDG索引からの、XMLノードヘのアクセス
3.XMLノード列のマージ処理
以上説明したデータガイド索引では、ストロングデータガイドを処理した後、ディスクから実際のノードを読み取る際に、複数箇所にマッチしたノードの識別子を頼りに読み込んだ場合に、複数のディスク位置からノードを読む必要があり、さらにそれらのノードを結果出力のためにマージする必要があるため、効率が悪い場合があった。
次に、タグ索引を活用する場合を説明する。図26は、図20のXMLデータに対して、構築したタグ索引である。タグ索引とは、タグ名に対応するXMLノードが文書順に取得できるような索引である。その場合には、XPathのアウトプットノードであるpersonタグで、タグ索引を検索することによって、図6(c)のノードを得ることができる。
この後、データガイド処理を行い、タグ索引検索の結果が、データガイド処理の結果にマッチするかフィルタ処理を行うことによって、図6(c)の正しい結果を得ることができる(今回は、タグ索引検索の結果すべてが、データガイド処理の結果にマッチする)。この方法では、以下の処理によって、データガイド索引と同等の結果を得ることができる。
1.1回のタグ索引からの、XMLノードヘのアクセス
2.1回のデータガイド処理
3.1回のXMLノード列へのフィルタ処理
処理コストに着目して、データガイド索引とタグ索引とを比較する。マージ処理のほうがフィルタ処理よりもコストが高く、また、索引アクセスもデータガイド索引が2回なのに対して、タグ索引は1回であるため、フィルタ処理のほうがマージ処理よりも高速になる。本実施形態の提案方式では、アクセス量に着目して要約情報の索引情報を選択することにより、最適な索引情報であるタグ索引を選択する。しかし、既存技術(非特許文献2)では、最適ではないデータガイド索引をそのまま選択してしまうことにより、処理が遅くなってしまう。
以上説明した各実施形態は、XMLデータに対して、統計情報を付与したXMLデータの要約情報を生成する手段および統計情報付与装置と、その統計情報の付与された要約情報を用いて、最適なXMLデータに対する索引を選択し高速なXPath処理を可能とする手段および処理装置である。
各実施形態は、XMLデータベースにおいて、XPathによる問合せ処理を高速化する要約情報技術に関する。特に、XPath式が要約情報中で複数箇所にマッチした場合に、あらかじめ要約情報に統計情報を付与しておくことにより、最適なデータアクセス方法を選択する技術に関する。
XPathの探索において、探索木(図21のXML木)の共通部分をまとめたストロングデータガイド(図3)を利用するときに、アクセス方法を複数用意し最適と思われるアクセス方法を利用するのが主旨である。最適判断のために、データガイド統計情報やタグ統計情報を用いる。
以上説明した本発明は、以下のようにその趣旨を逸脱しない範囲で広く変形実施することができる。
各実施形態の構成は、コンピュータで使用可能なソフトウェアとして実施できる。プログラムは、ハードディスク、CD−ROM、光記憶装置または磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。
以下、各フローチャートを説明する。なお、フローチャートおよびその説明において、以下の記号を用いる。「:」は、初期化処理を示し、「A:B」は、変数Aの値をBとして初期化することを意味する。「|」または「;」は、命令文と命令文との区切りを示し、「A:3|B:2」は、変数Aの値を3として初期化した後に、変数Bの値を2として初期化することを意味する。
図10は、ストロングデータガイドとXMLデータの統計情報をSAXイベントからワンパスで構築する方法を示すフローチャートである。
要約情報作成手段12は、初期化処理として、「XMLデータパース開始|{s_i},(1≦i≦n):SAXイベント|n:SAXイベントの個数|SD:ストロングデータガイドを初期化|TagStat:統計情報を初期化|c:現在DGノード|c:SDのルートノード」を実行する(S101)。要約情報作成手段12は、ループ変数iを1からnまで変化させつつ、ループ処理を行う(S102、S103、S105)。要約情報作成手段12は、s_iの型に応じた処理(処理A)を呼び出す(S104)。要約情報作成手段12は、SDを出力する(S106)。
図11は、図10における処理Aを示すフローチャートである。
要約情報作成手段12は、分岐条件「s_iが開始イベント」を満たすか否か判定し(S201)、満たす場合(S201,Yes)はS210を実行し、満たさない場合(S201,No)はS202を実行する。要約情報作成手段12は、分岐条件「s_iが終了イベント」を満たすか否か判定し(S202)、満たす場合(S202,Yes)はS203を実行し、満たさない場合(S202,No)は、呼び出し元に戻る。要約情報作成手段12は、cをcの親DGノードに移動する(S203)。
要約情報作成手段12は、初期化処理として、「TAG:開始タグ名」を実行する(S210)。要約情報作成手段12は、DGノード処理|(処理DG)を呼び出す(S211)。要約情報作成手段12は、タグ統計惰報のTAGの値に1追加する(S212)。要約情報作成手段12は、分岐条件「s_iが属性を持つ」を満たすか否か判定し(S213)、満たす場合(S213,Yes)はS214を実行し、満たさない場合(S213,No)は呼び出し元に戻る。要約情報作成手段12は、属性DG子ノード追加処理(処理A')を呼び出す(S214)。
図12は、図11における処理DGを示すフローチャートである。
要約情報作成手段12は、分岐条件「cにTAGを前とする子DGノードが存在」を満たすか否か判定し(S301)、満たす場合(S301,Yes)はS303を実行し、満たさない場合(S301,No)はS302を実行する。要約情報作成手段12は、cにTAGを名前とする子DGノードを追加する(S302)。要約情報作成手段12は、cをTAG名の子DGノードに移動する(S303)。要約情報作成手段12は、cのカウンタを1追加する(S304)。
図13は、図11における処理A’を示すフローチャートである。
要約情報作成手段12は、初期化処理として、「{a_i},(1≦i≦m):属性名|m:属性の個数」を実行する(S401)。要約情報作成手段12は、ループ変数iを1からmまで変化させつつ、ループ処理を行う(S402、S403、S407)。要約情報作成手段12は、分岐条件「Cに@a_iを名前とする子DGノードが存在」を満たすか否か判定し(S404)、満たす場合(S404,Yes)はS406を実行し、満たさない場合(S404,No)はS405を実行する。要約情報作成手段12は、@a_iを名前とする子DGノードをcに追加する(S405)。要約情報作成手段12は、@a_i子ノードのカウンタを1追加する(S406)。
図14は、範囲ラベルを付与した統計情報付きストロングデータガイドをSAXイベントからワンパスで構築する方法を示すフローチャートである。
要約情報作成手段12は、初期化処理として、「XMLデータパース開始|{s_i},(1≦i≦n):SAXイベント|n:SAXイベントの個数|left=1;right=1|l,r:ローカル変数,範囲ラベルのためのカウンタ|ISD:各ノードに範囲ラベルを格納可能なデータ構造としてストロングデータガイドを初期化|c:ISD中の現在DGノードcを、SDのルートノードに設定|Q_c:cノードが持つ範囲ラベルを格納するキュー」を実行する(S501)。要約情報作成手段12は、ループ変数iを1からnまで変化させつつ、ループ処理を行う(S502、S503、S505)。要約情報作成手段12は、s_iの型に応じてストロングデータガイドを構築し、範囲ラベルを付与する(処理B)を呼び出す(S504)。要約情報作成手段12は、ISDを出力する(S506)。
図15は、図14における処理Bを示すフローチャートである。
要約情報作成手段12は、分岐条件「s_iが開始イベント」を満たすか否か判定し(S601)、満たす場合(S601,Yes)はS602を実行し、満たさない場合(S601,No)はS603を実行する。要約情報作成手段12は、初期化処理として、「l=left++」を実行する(S602)。要約情報作成手段12は、分岐条件「s_iが終了イベント」を満たすか否か判定し(S603)、満たす場合(S603,Yes)はS604を実行し、満たさない場合(S603,No)はS606を実行する。要約情報作成手段12は、enqR(right++)を呼び出す(S604)。要約情報作成手段12は、cをcの親DGノードに移動する(S605)。
要約情報作成手段12は、分岐条件「s_iがテキストノードイベント」を満たすか否か判定し(S606)、満たす場合(S606,Yes)はS607を実行し、満たさない場合(S606,No)は呼び出し元に戻る。要約情報作成手段12は、初期化処理として、「l=left++|r=right++」を実行する(S607)。要約情報作成手段12は、テキストノードの範囲ラベルを(l,r)で設定し、二次記憶装置28に格納する(S608)。
要約情報作成手段12は、初期化処理として、「TAG:開始タグ名」を実行する(S610)。要約情報作成手段12は、DGノード処理(処理DG)を呼び出す(S611)。要約情報作成手段12は、タグ統計情報のTAGの値に1追加する(S612)。要約情報作成手段12は、分岐条件「s_iが属性を持つ」を満たすか否か判定し(S613)、満たす場合(S613,Yes)はS614を実行し、満たさない場合(S613,No)はS615を実行する。要約情報作成手段12は、属性子ノード追加処理(処理B')を呼び出す(S614)。要約情報作成手段12は、enqL(l)を呼び出す(S615)。
図16は、図15における処理B’を示すフローチャートである。
要約情報作成手段12は、初期化処理として、「{a_i},(1≦i≦m):属性名|m:属性の個数」を実行する(S701)。要約情報作成手段12は、ループ変数iを1からmまで変化させつつ、ループ処理を行う(S702、S703、S709)。要約情報作成手段12は、初期化処理として、「l',r':ローカル変数」を実行する(S704)。
要約情報作成手段12は、分岐条件「l'=left++|r'=right++|cに@a_iを名前とする子DGノードが存在」を満たすか否か判定し(S705)、満たす場合(S705,Yes)はS707を実行し、満たさない場合(S705,No)はS706を実行する。要約情報作成手段12は、@a_iを名前とする子DGノードをcに追加する(S706)。要約情報作成手段12は、@a_i子DGノードに対してenq(l',r')を行う(S707)。要約情報作成手段12は、@a_i子DGノードのカウンタを1追加する(S708)。
図17は、XPath最適化処理を示すフローチャートである。
アクセス選択手段20は、構造部のそれぞれのシングルパスに対して、データガイド処理を行い、アウトプットノード列を取得し、アウトプットノード列の統計情報を取得する(処理C)を呼び出す(S801)。アクセス選択手段20は、アウトプットノード列の統計情報を利用して最適なアクセス手段を選択する(処理D)を呼び出す(S802)。アクセス選択手段20は、最適なアクセス手段を用いて結果ノードを取得する(S803)。
図18は、図17における処理C(生成したXMLデータの要約情報に対してXPath処理を行い、アウトプットノード列を得、アウトプットノード列の統計情報の計算)を示すフローチャートである。
アクセス選択手段20は、初期化処理として、「ISD:XMLデータの要約情報|Q:XPathによる問合せ」を実行する(S901)。アクセス選択手段20は、ISDをXMLデータとみなし,既存手法によりQによるXPath処理を実行し、その結果として、アウトプットノード列と,それぞれのノードの統計情報を返す(S902)。アクセス選択手段20は、アウトプットノード列のカウンタを加えてアウトプットノード列の統計情報とする(S903)。
図19は、図17における処理D(アウトプットノード列の統計情報を利用して、最適なアクセス手段を選択する方法)を示すフローチャートである。
アクセス選択手段20は、初期化処理として、「C_o:アウトプットノード列のカウンタ|TAG:問い合わせのアウトプットノードタグ|k:事前学習あるいは、ユーザの指定により得られる環境依存の判定計数」を実行する(S1001)。アクセス選択手段20は、初期化処理として、「C_tag:タグ統計情報から得たTAGのカウンタ」を実行する(S1002)。
アクセス選択手段20は、分岐条件「C_tag - C_oがkより小さい」を満たすか否か判定し(S1003)、満たす場合(S1003,Yes)はS1010を実行し、満たさない場合(S1003,No)はS1004を実行する。アクセス選択手段20は、アクセスメソッドとして、DG(データガイド)索引を選択する(S1004)。アクセス選択手段20は、アクセスメソッドとして、タグ索引を選択する(S1010)。アクセス選択手段20は、選択したアクセスメソッドを返す(S1005)。
本発明の一実施形態に関する既存技術と提案技術の比較を示す説明図である。 本発明の第1実施形態に関するXPath式処理装置を示す構成図である。 本発明の一実施形態に関する図21のXML木から構築したストロングデータガイドの例を示すグラフである。 本発明の一実施形態に関する図21のXML木から構築した統計情報付きストロングデータガイド(DG統計情報)の例を示すグラフである。 本発明の一実施形態に関する図21のタグ統計情報の例を示す説明図である。 本発明の一実施形態に関する統計情報の作成例を示す説明図である。 本発明の一実施形態に関する図21の木構造の各ノードに、範囲ラベルおよび根からの深さを付与した例を示すグラフである。 本発明の一実施形態に関する図21のXML木に、DG索引を構築した例を示す説明図である。 本発明の第2実施形態に関するXPath式処理装置を示す構成図である。 本発明の第1実施形態に関するストロングデータガイドとXMLデータの統計情報をSAXイベントからワンパスで構築する方法を示すフローチャートである。 本発明の第1実施形態に関する図10における処理Aを示すフローチャートである。 本発明の第1実施形態に関する図11における処理DGを示すフローチャートである。 本発明の第1実施形態に関する図11における処理A’を示すフローチャートである。 本発明の第2実施形態に関する範囲ラベルを付与した統計情報付きストロングデータガイドをSAXイベントからワンパスで構築する方法を示すフローチャートである。 本発明の第2実施形態に関する図14における処理Bを示すフローチャートである。 本発明の第2実施形態に関する図15における処理B’を示すフローチャートである。 本発明の一実施形態に関するXPath最適化処理を示すフローチャートである。 本発明の一実施形態に関する図17における処理C(生成したXMLデータの要約情報に対してXPath処理を行い、アウトプットノード列を得、アウトプットノード列の統計情報の計算)を示すフローチャートである。 本発明の一実施形態に関する図17における処理D(アウトプットノード列の統計情報を利用して、最適なアクセス手段を選択する方法)を示すフローチャートである。 本発明の一実施形態に関するXMLデータの具体例を示す説明図である。 本発明の一実施形態に関する図20のXMLデータの木構造(XML木)を示すグラフである。 本発明の一実施形態に関する図20のXMLデータから生成したSAXイベントシーケンスを示す説明図である。 本発明の一実施形態に関する図20に対するXPathによる問合せの具体例(分岐を含む場合)を示す説明図である。 本発明の一実施形態に関する図20に対するXPathによる問合せの具体例(シングルパスのみの場合)を示す説明図である。 本発明の一実施形態に関する図24のXPathによる問合せの問合せ木を示すグラフである。 本発明の一実施形態に関する図21のXML木に、タグ索引を構築した例を示す説明図である。
符号の説明
10 XMLデータ入力手段
12 要約情報作成手段
14 問合せ解析手段
16 問合せ処理手段
18 中間要約木列作成手段
20 アクセス選択手段
22 ディスク管理手段
24 イベントシーケンス手段
26 結果生成手段
28 二次記憶装置

Claims (6)

  1. XPath式で記述された問合せの入力を受け付けて、その問合せに適合するXMLデータにアクセスするXPath処理装置であって、
    前記XPath処理装置は、記憶手段と、要約情報作成手段と、問合せ解析手段と、アクセス選択手段とを有しており、
    前記記憶手段には、前記問合せの検索対象であるXMLデータがXMLデータベースとして格納されており、
    前記要約情報作成手段は、前記XMLデータベースを構成する複数のXMLノードをもとに、そのXMLノードへアクセスするためのXMLアクセス用データを2つ以上作成して記憶手段に格納し、
    前記作成されるXMLアクセス用データは、要約情報と統計情報と索引情報とから構成されるデータ構造であり、
    前記作成されるXMLアクセス用データのうちの第1XMLアクセス用データとして、
    前記XMLノードに対応するデータガイドノードをツリー状に構成するストロングデータガイドを、前記第1XMLアクセス用データの要約情報とし、
    前記データガイドノードごとに対応するXMLノードの個数を示すカウンタ値を、前記第1XMLアクセス用データの統計情報とし、
    前記データガイドノードごとに対応するXMLノードの位置特定用データであるデータガイド索引を、前記第1XMLアクセス用データの索引情報とし、
    前記作成されるXMLアクセス用データのうちの第2XMLアクセス用データとして、
    前記XMLノードのタグ名ごとにタグ要素とするタグ情報を、前記第2XMLアクセス用データの要約情報とし、
    前記タグ要素ごとに対応するXMLノードの個数を示すカウンタ値を、前記第2XMLアクセス用データの統計情報とし、
    前記タグ要素ごとに対応するXMLノードをXMLデータ中におけるXMLノードの出現順に取得させるタグ索引を、前記第2XMLアクセス用データの索引情報とし、
    前記問合せ解析手段は、前記複数のXMLアクセス用データそれぞれについて、その要約情報ごとに、その要約情報に対応するXMLノードが前記問合せで入力されたXPath式に適合するか否かを照合することにより、前記XMLデータの前記要約情報に対して問合せの検索処理を行い、その検索処理にマッチする前記要約情報に対応する前記統計情報のカウンタ値を抽出し、
    前記アクセス選択手段は、抽出した前記カウンタ値小さくなるほど高評価とする評価関数により評価し、高評価となる前記カウンタ値となるXMLアクセス用データの索引情報を、前記XMLデータへのアクセスのために選択すること、
    を特徴とするXPath処理装置。
  2. 前記要約情報作成手段は、前記データガイド索引を作成するときに、前記XMLノードの位置特定用データとして、前記XMLのノードに前置順と後置順との順序関係を保存したラベルである範囲ラベルを作成することを特徴とする
    請求項1に記載のXPath処理装置。
  3. 前記要約情報作成手段は、
    前記XMLデータのSAXイベントシーケンスを用いてSAXイベントごとにイベントに対応する情報が前記要約情報中に存在するか判定し、
    存在しない場合は、前記要約情報を追加し、さらに前記統計情報を計算し、前記要約情報の対応する部分に追加しながら、SAXイベントシーケンスを最後まで処理することにより、
    前記XMLデータに対する一回の走査で前記要約情報およびその統計情報を生成すること
    を特徴とする請求項1または請求項2に記載のXPath処理装置。
  4. XPath式で記述された問合せの入力を受け付けて、その問合せに適合するXMLデータにアクセスするXPath処理装置によるXPath処理方法であって、
    前記XPath処理装置は、記憶手段と、要約情報作成手段と、問合せ解析手段と、アクセス選択手段とを有しており、
    前記記憶手段には、前記問合せの検索対象であるXMLデータがXMLデータベースとして格納されており、
    前記要約情報作成手段は、前記XMLデータベースを構成する複数のXMLノードをもとに、そのXMLノードへアクセスするためのXMLアクセス用データを2つ以上作成して記憶手段に格納し、
    前記作成されるXMLアクセス用データは、要約情報と統計情報と索引情報とから構成されるデータ構造であり、
    前記作成されるXMLアクセス用データのうちの第1XMLアクセス用データとして、
    前記XMLノードに対応するデータガイドノードをツリー状に構成するストロングデータガイドを、前記第1XMLアクセス用データの要約情報とし、
    前記データガイドノードごとに対応するXMLノードの個数を示すカウンタ値を、前記第1XMLアクセス用データの統計情報とし、
    前記データガイドノードごとに対応するXMLノードの位置特定用データであるデータガイド索引を、前記第1XMLアクセス用データの索引情報とし、
    前記作成されるXMLアクセス用データのうちの第2XMLアクセス用データとして、
    前記XMLノードのタグ名ごとにタグ要素とするタグ情報を、前記第2XMLアクセス用データの要約情報とし、
    前記タグ要素ごとに対応するXMLノードの個数を示すカウンタ値を、前記第2XMLアクセス用データの統計情報とし、
    前記タグ要素ごとに対応するXMLノードをXMLデータ中におけるXMLノードの出現順に取得させるタグ索引を、前記第2XMLアクセス用データの索引情報とし、
    前記問合せ解析手段は、前記複数のXMLアクセス用データそれぞれについて、その要約情報ごとに、その要約情報に対応するXMLノードが前記問合せで入力されたXPath式に適合するか否かを照合することにより、前記XMLデータの前記要約情報に対して問合せの検索処理を行い、その検索処理にマッチする前記要約情報に対応する前記統計情報のカウンタ値を抽出し、
    前記アクセス選択手段は、抽出した前記カウンタ値小さくなるほど高評価とする評価関数により評価し、高評価となる前記カウンタ値となるXMLアクセス用データの索引情報を、前記XMLデータへのアクセスのために選択すること、
    を特徴とするXPath処理方法
  5. 請求項4に記載のXPath処理方法をコンピュータである前記XPath処理装置に実行させるためのXPath処理プログラム。
  6. 請求項5に記載のXPath処理プログラムを記録した、コンピュータ読み取り可能な記憶媒体。
JP2006012202A 2006-01-20 2006-01-20 XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体 Expired - Fee Related JP4649339B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006012202A JP4649339B2 (ja) 2006-01-20 2006-01-20 XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006012202A JP4649339B2 (ja) 2006-01-20 2006-01-20 XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体

Publications (2)

Publication Number Publication Date
JP2007193642A JP2007193642A (ja) 2007-08-02
JP4649339B2 true JP4649339B2 (ja) 2011-03-09

Family

ID=38449288

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006012202A Expired - Fee Related JP4649339B2 (ja) 2006-01-20 2006-01-20 XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体

Country Status (1)

Country Link
JP (1) JP4649339B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013038519A1 (ja) * 2011-09-14 2013-03-21 株式会社マイニングブラウニー ウェブページ解析装置およびウェブページ解析用プログラム
JP5695586B2 (ja) * 2012-02-24 2015-04-08 株式会社日立製作所 Xml文書検索装置及びプログラム
CN109657121A (zh) * 2018-12-09 2019-04-19 佛山市金穗数据服务有限公司 一种基于网络爬虫的Web页面信息采集方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034618A (ja) * 1999-07-16 2001-02-09 Fujitsu Ltd Xmlデータ検索処理方法および検索処理システム
JP2005209193A (ja) * 2004-01-20 2005-08-04 Microsoft Corp ドキュメントインデックスのための低頻度ワードインデックス

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160557A (ja) * 1993-12-13 1995-06-23 Hitachi Ltd データベースアクセス処理方法
JP2682448B2 (ja) * 1994-05-23 1997-11-26 日本電気株式会社 索引検索方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001034618A (ja) * 1999-07-16 2001-02-09 Fujitsu Ltd Xmlデータ検索処理方法および検索処理システム
JP2005209193A (ja) * 2004-01-20 2005-08-04 Microsoft Corp ドキュメントインデックスのための低頻度ワードインデックス

Also Published As

Publication number Publication date
JP2007193642A (ja) 2007-08-02

Similar Documents

Publication Publication Date Title
US8892599B2 (en) Apparatus and method for securing preliminary information about database fragments for utilization in mapreduce processing
US8935267B2 (en) Apparatus and method for executing different query language queries on tree structured data using pre-computed indices of selective document paths
JP5121146B2 (ja) 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法
Polyzotis et al. Selectivity estimation for XML twigs
Tahraoui et al. A survey on tree matching and XML retrieval
JPWO2009063925A1 (ja) 文書管理・検索システムおよび文書の管理・検索方法
US20060161525A1 (en) Method and system for supporting structured aggregation operations on semi-structured data
JP2008171181A (ja) 構造化データ検索装置
US9378301B2 (en) Apparatus, method, and computer program product for searching structured document
KR100899616B1 (ko) 관계형 데이터베이스를 이용한 메타데이터 관리 방법 및시스템
US20130297657A1 (en) Apparatus and Method for Forming and Using a Tree Structured Database with Top-Down Trees and Bottom-Up Indices
JP4649339B2 (ja) XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体
JP5385919B2 (ja) データ構造のナビゲーションのための方法、システム、およびコンピュータ・プログラム(データ構造のナビゲーションのための方法およびシステム)
US20090307187A1 (en) Tree automata based methods for obtaining answers to queries of semi-structured data stored in a database environment
US8312030B2 (en) Efficient evaluation of XQuery and XPath full text extension
Ogden et al. AT-GIS: highly parallel spatial query processing with associative transducers
Droop et al. Embedding Xpath Queries into SPARQL Queries.
JP5695586B2 (ja) Xml文書検索装置及びプログラム
Huang et al. Prefiltering techniques for efficient XML document processing
Leela et al. Schema-conscious XML indexing
Droop et al. Bringing the XML and semantic web worlds closer: transforming XML into RDF and embedding XPath into SPARQL
JP2008140157A (ja) 構造化文書処理装置
Hatano et al. Extraction of partial XML documents using IR-based structure and contents analysis
Marin-Castro et al. VR-Tree: A novel tree-based approach for modeling Web Query Interfaces
Zhang Query processing and optimization in native XML databases

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100903

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: 20101207

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: 20101213

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

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees