JP5225022B2 - Xmlデータ検索方法及び装置及びプログラム - Google Patents

Xmlデータ検索方法及び装置及びプログラム Download PDF

Info

Publication number
JP5225022B2
JP5225022B2 JP2008278883A JP2008278883A JP5225022B2 JP 5225022 B2 JP5225022 B2 JP 5225022B2 JP 2008278883 A JP2008278883 A JP 2008278883A JP 2008278883 A JP2008278883 A JP 2008278883A JP 5225022 B2 JP5225022 B2 JP 5225022B2
Authority
JP
Japan
Prior art keywords
node
path
search
information
xml data
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
JP2008278883A
Other languages
English (en)
Other versions
JP2010108192A (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 JP2008278883A priority Critical patent/JP5225022B2/ja
Publication of JP2010108192A publication Critical patent/JP2010108192A/ja
Application granted granted Critical
Publication of JP5225022B2 publication Critical patent/JP5225022B2/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)

Description

本発明は、XMLデータ検索方法及び装置及びプログラムに係り、特に、構造化データである多数のXMLデータを蓄積・検索するデータベース/インデクスの分野で、蓄積したXMLデータの要約した構造情報を用いることで、検索実行時の処理を効率化することで、検索を高速に行うXMLデータ検索方法及び装置及びプログラムに関する。
XMLとはマークアップ言語の一つで、XMLで記述されたデータは構造化され、構造に意味を持ったデータである。図17は、XMLデータとその構造を示した図である。XMLデータを構成する要素を識別するために使われるマークを「タグ」と呼び、タグに挟まれた間に値(テキスト)を記述する。タグは入れ子にすることができる。
したがって、XMLデータは木構造で表すことができ、各節を「ノード」と呼ぶ。特に、根のノードを「ルート要素」("book")、値(記述内容)を「テキストノード」("宇宙の不思議")、タグ中に記述されたものを「属性」("no=1")と呼ぶ。
各ノードは、"/"の後ろにルート要素からのタグを"/"で繋げた「パス」で指定する。例えば、本のタイトルを対象としたい場合、パスを「/book/title」と指定する。
XMLデータに対して効率的な検索を実現しようとした場合、構造から記述内容を高速に取り出すことが可能でなければならない。一般的には、XMLデータの構造と記述内容を記録したインデクス(構造インデクス)を予め構築しておく。構造インデクスの構築は様々な方法が存在するが、多くの場合、XMLデータの持つ全てのパスと、該パスに指定される記述内容を関係付けるインデクスが構築される(例えば、特許文献1参照)。
特開2006−228155号公報
XMLデータの検索の検索クエリには、パスとその値の制約が検索条件として指定される。例えば、XPath(XMLデータ中の特定の要素を指し示す記述方法)では、以下のような記述がなされる。
/book/chapter[title='惑星とは']
これは、[/book/chapter/title]パスの値(テキスト)が「惑星とは」と記述されている[/book/chapter]を指している。
単純な検索手法としては、各XMLデータのルート要素から順次子ノードを辿っていき、検索条件に合ったノード群を探し出す方法があるが、大きなデータや多数のデータ群の場合や、パスが深いところを指している場合などには、走査に時間がかかってしまう。
そこで、前述の特許文献1に示すような、処理に必要なノード群だけを直接取り出し、それらの親子/先祖子孫関係を判定することで、効率的な検索が行われる。ノード間の親子/先祖子孫関係の判定は、XMLデータの柔軟性から、1つのXMLデータ中に同一パスが繰り返し出現したり(図17の「/book/chapter」)、同一タグが再帰的に出現したり(図13の「title」)といった複雑な構造があり得るため、必要なものである。しかし実際には、1つのデータ中に1度しか出現しないパス・タグも多く、そのようなパスについても同等に処理を行うのは非効率である。
本発明は、上記の点に鑑みなされたもので、複数回出現していないパスを対象とした検索をより効率的に行うことが可能なXMLデータ検索方法及び装置及びプログラムを提供することを目的とする。
図1は、本発明の原理を説明するための図である。
本発明(請求項1)は、構造化データであるXML文書群の検索を行うXMLデータ検索方法であって、
XMLデータの構造と記述内容を管理するノード管理手段と、該XMLデータの持つ全てのパスと該パスに指定されるノードを関係付けるインデクスを構築し、保持するパスインデクス手段と、入力された検索クエリに含まれる検索パス及び検索キーワードに基づいて検索を行う検索手段と、を有する装置において、
ノード管理手段が、
取得したXML文書毎に文書IDを付与し、該XMLデータの各節である各ノードにノードIDを付与し、パスを特定し、該ノード間の親子・先祖子孫関係をノード情報としてノード情報記憶手段に格納するノード関係構築ステップ(ステップ1)を行い、
パスインデクス手段が、
ノード管理手段からパス、文書ID、ノード情報を取得し、XMLデータの持つ全てのパスと、該パスに指定されるノードを関係付けるノード関係情報を生成し、該パスが同一データで既出のパスである場合には、該パスに複数出現している旨の複数出現パス情報を付与し、パスインデクス記憶手段に格納するパスインデクス作成ステップ(ステップ2)を行い、
検索手段が、
検索パスに基づいて問い合わせ木を作成し、同一パスで複数出現しない問い合わせノード群を統合し、問い合わせノードを葉とし、親子・先祖子孫関係を示す関係判定ノードからなる実行木を生成する実行木作成ステップ(ステップ3)と、
問い合わせノードに基づいて、パスインデクス記憶手段と、ノード情報記憶手段からノード関係情報及びノード情報を取得するノード情報取得ステップ(ステップ4)と、
同一の文書IDを参照して、前記関係判定ノードの先祖となる問い合わせノードが複数出現パス情報が付与されたパスである場合には、当該先祖となる問い合わせノードの前記ノード情報による親子・先祖子孫関係を判定し、適切な組み合わせを選択し、該問い合わせノードが複数出現パス情報が付与されたパスでない場合は同一データのものを組み合わせる関係判定ステップ(ステップ5)と、を行う。
また、本発明(請求項2)は、関係判定ステップ(ステップ5)において、
XMLデータの木構造におけるキストノード及び属性の値に対するインデクスを値インデクス記憶手段に保持しておき、
検索クエリに含まれる同一の検索パスに複数の制約があり、該検索パスが単一出現であれば、値インデクス記憶手段を参照して、該制約を満たすテキストノードを選択する。
図2は、本発明の原理構成図である。
本発明(請求項3)は、構造化データであるXML文書群の検索を行うXMLデータ検索装置であって、
取得したXML文書毎に文書IDを付与し、該XMLデータの各節である各ノードにノードIDを付与し、パスを特定し、該ノード間の親子・先祖子孫関係をノード情報としてノード情報記憶手段121に格納するノード管理手段120と、
ノード管理手段120からパス、文書ID、ノード情報を取得し、XMLデータの持つ全てのパスと、該パスに指定されるノードを関係付けるノード関係情報を生成し、該パスが同一データで既出のパスである場合には、該パスに複数出現している旨の複数出現パス情報を付与し、パスインデクス記憶手段111に格納するパスインデクス手段110と、
入力された検索クエリに含まれる検索パス及び検索キーワードに基づいて検索を行う検索手段140と、を有し、
検索手段140は、
検索パスに基づいて問い合わせ木を作成し、同一パスで複数出現しない問い合わせノード群を統合し、問い合わせノードを葉とし、親子・先祖子孫関係を示す関係判定ノードからなる実行木を生成する実行木作成手段141と、
問い合わせノードに基づいて、パスインデクス手段110のパスインデクス記憶手段111と、ノード管理手段120のノード情報記憶手段121からノード関係情報及びノード情報を取得するノード情報取得手段142と、
同一の文書IDを参照して、前記関係判定ノードの先祖となる問い合わせノードが複数出現パス情報が付与されたパスである場合には、当該先祖となる問い合わせノードの前記ノード情報による親子・先祖子孫関係を判定し、適切な組み合わせを選択し、該問い合わせノードが複数出現パス情報が付与されたパスでない場合は同一データのものを組み合わせる関係判定手段143と、を有する。
また、本発明(請求項4)は、関係判定手段143は、
XMLデータの木構造におけるテキストノード及び属性の値に対するインデクスを値インデクス記憶手段に保持しておき、検索クエリに含まれる同一の検索パスに複数の制約があり、該検索パスが単一出現であれば、値インデクス記憶手段を参照して、該制約を満たすテキストノードを選択する
手段を含む。
本発明(請求項5)は、請求項3または、4に記載のXMLデータ検索装置を構成する各手段としてコンピュータを機能させるためのXMLデータ検索プログラムである。
上記のように本発明によれば、XMLの木構造の親または先祖子孫関係となるノードが単一出現する場合には、同一データのものを組み合わせることで、検索を高速化することができる。
また、検索パスに制約条件がある場合に、テキストノード及び属性の値に対するインデクスの走査を一度に行うことができる。
以下、図面と共に本発明の実施の形態を説明する。
図3は、本発明の一実施の形態における検索装置の構成を示す。
同図に示す検索装置100は、XMLの構造をパス単位で管理するパスインデクス部110と、XMLの各ノード間のXML構造における関係を把握するノード管理部120と、各ノードの値のインデクスを構築・管理する値インデクス部130と、検索を実行する検索部140と、を有する。パスインデクス部110とノード管理部120が、前述の背景技術で説明した構造インデクスに相当する。
パスインデクス部110は、XMLデータの持つ全てのパスと、当該パスに指定されるノードを関連付けるインデクスを構築し、パスインデクス記憶部111に保持する。構築の際には、パスが同一データ中で複数回出現したかについてもチェックし、パスインデックスと共に出現回数もパスインデクス記憶部111に格納する。
ノード管理部120は、各ノード間のXMLデータの構造上の関係を管理する。一般的には、構造上の関係を管理するために、XMLデータの各ノードにIDを付与し、ノード間の関係(先祖子孫関係など)をノード情報としてノード情報記憶部121に格納する。当該ノード情報としては、「範囲ラベル」がある。具体的な「範囲ラベル」の例としては、例えば特許文献1の技術を用いることができる。
値インデクス部130は、テキストノード及び属性の値に対するインデクス(B−Tree、ハッシュ、等)を構築し、値インデクス記憶部131で管理する。検索するだけであれば不要のものであるが、高速検索を実現するためには必要となる。
検索部140は、要求された検索クエリに含まれる検索パス及び検索キーワードに基づいて以下の手順を行う。
手順1.検索パスにマッチするノード(群)へのノード関係情報をパスインデクス部110から取得し、同時に、各パスが単一出現かどうかの情報も取得する。
手順2.上記のノード(群)に関するノード情報をノード管理部120から取得する。
(a)制約がある場合は、値インデックス部130から該当するノード(群)のみを選択する。この際、同一検索パスに対し、複数の制約がある場合は、パスが単一出現であれば、一度に走査できる場合がある。 "惑星とは"を制約の例とした場合、値(テキストノード)が"惑星とは"と完全一致しているという制約を持った「/book/chapter/title ノード群」であり、また、制約は「1以上 AND 2以下」と複数となることもある。
手順3.親子/先祖子孫関係の判定を行う。ノード管理部120のノード記憶部121を参照して、親/先祖となるノード群が、単一出現か複数出現かにより処理を以下に分岐させる。
(a)複数出現ありの場合、親子/先祖子孫関係を判定し、適切な組み合わせのものを選択する(従来処理);
(b)単一出現の場合、同一データのものを組み合わせる;
という処理を行う。
すなわち、親/先祖候補のノード群が、複数出現する場合は従来通りの処理を行うが、単一出現の場合は、同一データに出現したかどうかを判定するだけ(上記3.(b))でよく、より高速な検索を実現できる。また同時に、複数の制約がある場合に、値インデクス部130の値インデクス記憶部131の走査を一度に行うことができ、高速化できる場合もある。
以下に具体的な例を示す。図14のデータに対し、
Figure 0005225022
というXPathを処理する場合、以下の手順で行う(XPathでは属性は
Figure 0005225022
をつけて表現する)
手順1.「/book/chapter」に相当するノード(3つ)を取得する。
手順2.
Figure 0005225022
で値が1以上のノード(3つ)を取得する。
手順3.
Figure 0005225022
で値が2以下のノード(2つ)を取得する。
手順4.上記の手順1のノードで、手順2と手順3の双方を子孫ノードに持つものを選択する。
これは、「/book/chapter」が複数回出現しており、候補となるノードも複数であるため、従来の処理手順である。
これに対し、
/book[date/text()>='2008/01/01' and date/text()<='2008/12/31']
というXPathを処理する場合は、以下のような手順で行う(テキストノードは"text()"と表現する)。
手順1.「/book」に相当するノード(1つ)を取得する。
手順2.「/book/date」で値(テキストノード)が'2008/01/01'から'2008/12/31'のノード(1つ)を取得する。
手順3.手順1のノードで、手順2と同一データのものを選択する。
「/book/date/text()」が単一出現であるため、前述の例では、2回の手順となっていた制約付きノード取得が、手順2の1回で済んでおり、「/book」が単一出現であるため、手順3のノード選択も同一データかどうかのみの判定となっている。
同一データかどうかのみの判定でよい理由は、単一出現の場合、パスで親子/先祖子孫関係が自明であるため、省略できるからである。上記の例では、「/book/date/text()」が1つしかないのであれば、同一文書の「/book」の子孫でしかありえない。
本発明の実施例として、前述の特許文献1の手法をベースに改良した例を説明する。
本実施例における検索装置は、図3に示すように、パスインデクス部110、ノード管理部120、値インデクス部130からなる。
パスインデクス部110は、特許文献1の「要約情報」を管理するモジュールで、パスと、該パスに対応する各データのノードへの関係をパスインデクス記憶部111で保持し、加えて、単一出現かどうかの情報も保持する。
ノード管理部120は、図4に示すようなテーブルで各ノードの情報を管理する。図4に示すノード情報は、文書ID,preorder値、postorder値、タグ、値(value)からなる。なお、ノード情報は、図4に示すテーブル構成に限定されるものではなく、木構造の中で検索対象となるノードを特定する機能を持ち、先祖子孫関係を判定可能なものであればよい。以下では、「範囲ラベル」として、図5に示すように、ノード毎に2値(preorder値、postorder値)で表され、親ノードが子ノードを含むように付与する。これにより、任意のノード間で親子/先祖子孫関係を判定可能となる。
値インデクス部130は、テキストノード及び属性の値に対するインデクス(B-Tree、ハッシュ等)を構築・管理する。少なくともパスとその値の制限を条件に、検索が可能な形とする。例えば、パスと値の両方をキーに全てを対象としたインデクスを1つ作成してもよいし、パス毎に別々のインデクス(値がキーとなる)を作成してもよい。
検索部140は、検索クエリを受け取り、指定された検索パス及び検索キーワードにマッチするノードを、パスインデクス部110、ノード管理部120、値インデクス部130に問い合わせて特定し、当該ノードを検索結果として返却する。
以下に、XML文書の「格納フェイズ」、「検索フェイズ」からなる動作を説明する。
<格納フェイズ>
当該格納フェイズでは、与えられたXML文書群から、各種インデクスを作成する。
XML文書群に対し、パスインデクス部110、ノード管理部120、値インデクス部130のそれぞれが処理を行う。
図6は、本発明の一実施例の全体フローを示す。
ステップ110) XML文書記憶装置10からXML文書を読み出す。
ステップ120) 読み出したXML文書毎に文書IDを付与する。
ステップ130) ノード管理装置120において、以下の処理を行う。ノード管理装置120の動作を図7に示す。
ノード管理装置120は、文書からノードを取り出し(ステップ131)、パスを特定し、パスインデックス部110に伝える(ステップ132)。次に、各ノード毎にノード間の関係(先祖子孫関係など)を表すノードID(範囲ラベル)を付与して(ステップ133)、ノード情報記憶部121に文書ID,ノードID等を格納する(ステップ134)。当該処理を全ノードについて繰り返す。
ステップ140)パスインデクス部110において、以下の処理を行う。パスインデクス部110の動作を図8に示す。
パスインデクス部110は、ノード管理部120からパス、文書ID、ノード情報を受け取る(ステップ141)。ノード管理部120から受け取ったパスは同一データで既出のパスであるかをパスインデクス記憶部111を参照して判定し(ステップ142)、既出のパスでない場合は(ステップ142、No)、全データで既出のパスかを判定する(ステップ143)。既出のパスでない場合は(ステップ143、No),当該パスをパスインデクス記憶部111に新規登録する(ステップ144)。同一データで既出のパスである場合は(ステップ142、Yes)、当該パスに複数出現(multi)情報("true")を付与する(ステップ146)。さらに、図10に示すように、要約情報のパスとそれに相当するノード関係を保持する(ステップ145)。また、ステップ143において全データで既出のパスである場合(ステップ143、Yes)も、当該パスとノード情報の関連を保持する(ステップ145)。
なお、上記のステップ142において、既出のパスであるか否かを判定する際に、パスインデクス記憶部111の「multi」欄が"false"か"true"のいずれであるかにより判定する方法以外に、パス毎の出現回数を管理することも可能である。
図11に、インデクス記憶部111のストロングデータガイドの例を示す。ストロングデータガイドは、XML文書群の出現したパスを抽出してまとめたもので、パスの出現数や順序などは省略した要約情報である。図11のストロングデータガイドに上記のmulti情報を付与した例を図12に示す。
<検索フェイズ>
図13は、本発明の一実施例の検索フェイズのフローを示す。
ステップ201) 検索部140は、図14に示すような問い合わせ木を作成する。
ステップ202) 同一パスで複数出現していない問い合わせノード群を統合する。
ステップ203) 問い合わせノードを葉とし、先祖子孫関係を示す関係判定ノードを作成することにより、問い合わせ木に対する実行木を作成する。
ステップ204) 問い合わせノードを選択する。
ステップ205) パスインデクス部110、ノード管理部120から該当するノード情報(群)を取得する。
ステップ206) 値インデクス部130に問い合わせ値の制約を満たすものだけに絞り込む。
ステップ207) 全ての問い合わせノード分、ステップ204以降の処理を繰り返す。
ステップ208) 関係判定ノードを選択する。
ステップ209) 先祖となる問い合わせノードが複数出現しているかを判定し、出現している場合には、ステップ210に移行し、出現していない場合はステップ211に移行する。
ステップ210) ノード管理部120から取得したノード群情報(範囲ラベル)による構造ジョインにより、親子/先祖子孫関係を判定し、ステップ212に移行する。
ステップ211) ステップ209において、先祖となる問い合わせノードが単数の場合は文書IDのみのマッチングを行う。
ステップ212) 全ての関係判定ノードに対して上記のステップ208以降の処理を繰り返す。
ステップ213) 結果を組み立て、返却する。
以下に、具体的な例として、図16のデータに対し、
Figure 0005225022
という2つのXPathにより検索を行った場合を、図13のフローに沿って説明する。
XPathの問い合わせ木は、木で表現でき、図14のようになる(ステップ201)。同図において、二重線で囲まれている楕円のノードが、問い合わせノードを表している。同図(B)の例の場合、「/book/date/text()」の2つのノードが単一出現であることが図12からわかるため統合できる(ステップ202)。統合を行うことで、値インデクス部130に対する問い合わせ・絞込み処理が1回で行うことができる。
次に、実行木を作成する(ステップ203)。図15に示すように、問い合わせノードを葉とし、先祖子孫関係を示す関係判定ノードを作成していく(ステップ204)。
次に、実行木に沿って、各処理を行っていく。まずは、葉ノードである問い合わせノードに対応するノード情報(範囲ラベル)をノード管理部120から取得する(ステップ205)。文書IDを"001"、範囲ラベルを図5に示す例とした場合、対応するノードは、図16に示すようになる。
取得したノード情報群に対し、図16(A)の場合は、従来通り範囲ラベルによる構造ジョインを行って関係判定を行う(ステップ208、ステップ209,ステップ210)。ここで、「構造ジョイン」とは、直接親子関係だけでなく先祖子孫関係に対し、判別の組み合わせを選択することを指す。図16(B)の場合は、文書ID(この場合は"001"の合致)により判定を行う(ステップ208,ステップ209、ステップ211)。
最終的に得たノード情報から検索結果を組み立てて返却する(ステップ213)。
なお、上記の実施の形態及び実施例における検索装置の構成要素の動作をプログラムとして構築し、検索装置として利用されるコンピュータにインストールする、または、ネットワークを介して流通させることが可能である。
また、構築されたプログラムをハードディスクや、フレキシブルディスク・CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
なお、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
本発明は、XMLデータ処理に適用可能である。
本発明の原理を説明するための図である。 本発明の原理構成図である。 本発明の一実施の形態における検索装置の構成図である。 本発明の一実施例のノード情報をテーブル格納した例である。 本発明の一実施例の範囲ラベルの例である。 本発明の一実施例の格納フェイズの全体フローである。 本発明の一実施例のノード管理部のフロー(格納フェイズ)である。 本発明の一実施例のパスインデクス部のフロー(格納フェイズ)である。 本発明の一実施例のパスインデクス記憶部に要約情報(ストリングデータガイド)をmulti情報も含めテーブル格納した例である。 本発明の一実施例の要約情報とノード情報の関連を示す図である。 ストロングデータガイド例である。 本発明の一実施例の複数出現情報を付与したストロングデータガイドの例である。 本発明の一実施例の検索フェイズのフローである。 本発明の一実施例の問い合わせ木の例である。 本発明の一実施例の実行木の例である。 本発明の一実施例の実行例である。 XMLデータとその構造の例である。
符号の説明
10 XMLデータ記憶装置
100 検索装置
110 パスインデクス手段、パスインデクス部
111 パスインデクス記憶手段、パスインデクス記憶部
120 ノード管理手段、ノード管理部
121 ノード情報記憶手段、ノード情報記憶部
130 値インデクス部
131 値インデクス記憶部
140 検索手段、検索部
141 実行木作成手段
142 ノード情報取得手段
143 関係判定手段

Claims (5)

  1. 構造化データであるXML文書群の検索を行うXMLデータ検索方法であって、
    XMLデータの構造と記述内容を管理するノード管理手段と、該XMLデータの持つ全てのパスと、該パスに指定されるノードを関係付けるインデクスを構築し、保持するパスインデクス手段と、入力された検索クエリに含まれる検索パス及び検索キーワードに基づいて検索を行う検索手段と、を有する装置において、
    前記ノード管理手段が、取得した前記XML文書毎に文書IDを付与し、該XMLデータの各節である各ノードにノードIDを付与し、パスを特定し、該ノード間の親子・先祖子孫関係をノード情報としてノード情報記憶手段に格納するノード関係構築ステップを行い
    前記パスインデクス手段が、前記ノード管理手段から前記パス、前記文書ID、前記ノード情報を取得し、前記XMLデータの持つ全てのパスと、該パスに指定されるノードを関係付けるノード関係情報を生成し、該パスが同一データで既出のパスである場合には、該パスに複数出現している旨の複数出現パス情報を付与し、パスインデクス記憶手段に格納するパスインデクス作成ステップを行い、
    前記検索手段が、
    前記検索パスに基づいて問い合わせ木を作成し、同一パスで複数出現しない問い合わせノード群を統合し、問い合わせノードを葉とし、親子・先祖子孫関係を示す関係判定ノードからなる実行木を生成する実行木作成ステップと、
    前記問い合わせノードに基づいて、前記パスインデクス記憶手段と、前記ノード情報記憶手段から前記ノード関係情報及び前記ノード情報を取得するノード情報取得ステップと、
    同一の文書IDを参照して、前記関係判定ノードの先祖となる問い合わせノードが複数出現パス情報が付与されたパスである場合には、当該先祖となる問い合わせノードの前記ノード情報による親子・先祖子孫関係を判定し、適切な組み合わせを選択し、該問い合わせノードが複数出現パス情報が付与されたパスでない場合は同一データのものを組み合わせる関係判定ステップと、
    を行うことを特徴とするXMLデータ検索方法。
  2. 前記関係判定ステップにおいて、
    前記XMLデータの木構造におけるテキストノード及び属性の値に対するインデクスを値インデクス記憶手段に保持しておき、
    前記検索クエリに含まれる同一の検索パスに複数の制約があり、該検索パスが単一出現であれば、前記値インデクス記憶手段を参照して、該制約を満たすテキストノードを選択する
    請求項1記載のXMLデータ検索方法。
  3. 構造化データであるXML文書群の検索を行うXMLデータ検索装置であって、
    取得した前記XML文書毎に文書IDを付与し、該XMLデータの各節である各ノードにノードIDを付与し、パスを特定し、該ノード間の親子・先祖子孫関係をノード情報としてノード情報記憶手段に格納するノード管理手段と、
    前記ノード管理手段から前記パス、前記文書ID、前記ノード情報を取得し、前記XMLデータの持つ全てのパスと、該パスに指定されるノードを関係付けるノード関係情報を生成し、該パスが同一データで既出のパスである場合には、該パスに複数出現している旨の複数出現パス情報を付与し、パスインデクス記憶手段に格納するパスインデクス手段と、
    入力された検索クエリに含まれる検索パス及び検索キーワードに基づいて検索を行う検索手段と、を有し、
    前記検索手段は、
    前記検索パスに基づいて問い合わせ木を作成し、同一パスで複数出現しない問い合わせノード群を統合し、問い合わせノードを葉とし、親子・先祖子孫関係を示す関係判定ノードからなる実行木を生成する実行木作成手段と、
    前記問い合わせノードに基づいて、前記パスインデクス手段の前記パスインデクス記憶手段と、前記ノード管理手段の前記ノード情報記憶手段から前記ノード関係情報及び前記ノード情報を取得するノード情報取得手段と、
    同一の文書IDを参照して、前記関係判定ノードの先祖となる問い合わせノードが複数出現パス情報が付与されたパスである場合には、当該先祖となる問い合わせノードの前記ノード情報による親子・先祖子孫関係を判定し、適切な組み合わせを選択し、該問い合わせノードが複数出現パス情報が付与されたパスでない場合は同一データのものを組み合わせる関係判定手段と、
    を有することを特徴とするXMLデータ検索装置。
  4. 前記実行木作成手段は、
    前記XMLデータの木構造におけるテキストノード及び属性の値に対するインデクスを値インデクス記憶手段に保持しておき、前記検索クエリに含まれる同一の検索パスに複数の制約があり、該検索パスが単一出現であれば、前記値インデクス記憶手段を参照して、該制約を満たすテキストノードを選択する
    手段を含む
    請求項3記載のXMLデータ検索装置。
  5. 請求項3または、4に記載のXMLデータ検索装置を構成する各手段としてコンピュータを機能させるためのXMLデータ検索プログラム。
JP2008278883A 2008-10-29 2008-10-29 Xmlデータ検索方法及び装置及びプログラム Expired - Fee Related JP5225022B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008278883A JP5225022B2 (ja) 2008-10-29 2008-10-29 Xmlデータ検索方法及び装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008278883A JP5225022B2 (ja) 2008-10-29 2008-10-29 Xmlデータ検索方法及び装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2010108192A JP2010108192A (ja) 2010-05-13
JP5225022B2 true JP5225022B2 (ja) 2013-07-03

Family

ID=42297592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008278883A Expired - Fee Related JP5225022B2 (ja) 2008-10-29 2008-10-29 Xmlデータ検索方法及び装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5225022B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4562130B2 (ja) * 2005-02-21 2010-10-13 日本電信電話株式会社 Xmlデータ処理装置、xmlデータ処理方法、xmlデータ処理プログラムおよびxmlデータ処理プログラムを記録した記憶媒体
JP4374014B2 (ja) * 2006-11-21 2009-12-02 株式会社日立製作所 インデクス生成装置及びそのプログラム
JP4839195B2 (ja) * 2006-12-12 2011-12-21 日本電信電話株式会社 Xml文書の適合度の算出方法およびそのプログラムと、情報処理装置
JP4445509B2 (ja) * 2007-03-20 2010-04-07 株式会社東芝 構造化文書検索システム及びプログラム

Also Published As

Publication number Publication date
JP2010108192A (ja) 2010-05-13

Similar Documents

Publication Publication Date Title
US8868620B2 (en) Techniques for composing data queries
US7139746B2 (en) Extended markup language (XML) indexing method for processing regular path expression queries in a relational database and a data structure thereof
US8346813B2 (en) Using node identifiers in materialized XML views and indexes to directly navigate to and within XML fragments
US8001106B2 (en) Systems and methods for tokenizing and interpreting uniform resource locators
US8566343B2 (en) Searching backward to speed up query
US9659001B2 (en) Query evaluation using ancestor information
US20090019015A1 (en) Mathematical expression structured language object search system and search method
KR101254544B1 (ko) 배열의 생성방법 및 이를 실행하는 컴퓨터 프로그램을 수록한 기록 매체
US8082492B2 (en) Structured-document management apparatus, search apparatus, storage method, search method and program
JP4247135B2 (ja) 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法
JP2006185408A (ja) データベース構築装置及びデータベース検索装置及びデータベース装置
JP4247108B2 (ja) 構造化文書検索方法、構造化文書検索装置、及びプログラム
Sanz et al. Fragment-based approximate retrieval in highly heterogeneous XML collections
US8171040B2 (en) Method and system for navigation of a data structure
JP4010058B2 (ja) 文書関連付け装置、文書閲覧装置、文書関連付けプログラムを記録したコンピュータ読み取り可能な記録媒体及び文書閲覧プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5225022B2 (ja) Xmlデータ検索方法及び装置及びプログラム
JP4649339B2 (ja) XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体
JP2010267081A (ja) 情報検索方法及び装置及びプログラム
JP5112117B2 (ja) 協調的分類装置及びプログラム
KR100775852B1 (ko) 응용 프로그램의 자원 검색 시스템 및 방법
Madria et al. Efficient processing of XPath queries using indexes
Marin-Castro et al. VR-Tree: A novel tree-based approach for modeling Web Query Interfaces
JP4334450B2 (ja) 構造化文書検索装置及び構造化文書検索方法
Pandian et al. Annotation for Query Result Records based on Domain-Specific Ontology
Chen et al. Efficient processing of XPath queries using indexes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130107

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130312

R150 Certificate of patent or registration of utility model

Ref document number: 5225022

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

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