JP2006189951A - XPath式処理方法、XPath式処理装置及びXPath式処理プログラム - Google Patents
XPath式処理方法、XPath式処理装置及びXPath式処理プログラム Download PDFInfo
- Publication number
- JP2006189951A JP2006189951A JP2004381892A JP2004381892A JP2006189951A JP 2006189951 A JP2006189951 A JP 2006189951A JP 2004381892 A JP2004381892 A JP 2004381892A JP 2004381892 A JP2004381892 A JP 2004381892A JP 2006189951 A JP2006189951 A JP 2006189951A
- Authority
- JP
- Japan
- Prior art keywords
- xpath expression
- xpath
- conditions
- search target
- target node
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】 入力された複数条件を含むXPath式をXPath式クラスタ化部30で絶対パスごとに条件をクラスタ化し、これに基づいて区間インデックス構築部40でXPath式のノードに含まれる形で複数条件を高速に検索するための木構造データを用いた区間インデックスを構築する。区間インデックス構築部40によって構築された前記の区間インデックスを、区間インデックス検索部50が検索する。そして、区間インデックス検索部50の検索機能を利用して複数条件XPath式フィルタリング処理部60が入力されたXMLデータからXPath式の指定に従って、高速にフィルタ済みXMLデータを出力する。
【選択図】 図1
Description
まず、最初に本発明にかかる基本的な実施形態について説明する。
図1は、本発明の第1の実施形態の構成を説明する図である。XPath式処理装置1は、XPath式登録部10、XPath式格納部20、XPath式クラスタ化部30、区間インデックス構築部40、区間インデックス検索部50及び複数条件XPath式フィルタリング処理部60を少なくとも含む計算機である。
また、XPath式処理装置1は、図示しないCPU(Central Processing Unit)及び図示しないメモリを少なくとも含み、図示しないハードディスク装置を含むことが望ましい。
これより、XPath式処理装置1がXPath式を処理してXMLデータをフィルタリングするまでの動作について説明する。まず、本実施形態の基本となるXMLの基本的なフィルタリング処理について説明した後に、図1に示した構成に対応して、各構成要素の動作を説明する。
まず、XMLのデータの例を以下に示す。この例は、文献用のXMLのデータであり、bib(文献)タグの下にbook(書籍)タグがあり、その下に、title(書名)タグ、author(著者)タグ、publication(発行年)タグ及びprice(価格)タグがある構成になっている。
<book>
<title>Effective XML&XPath</title>
<author>Bob</author>
<publication>1999</publication>
<price>2100</price>
</book>
<book>
<title>詳解 XPath式</title>
<author>佐藤</author>
<author>鈴木</author>
<publication>2000</publication>
<price>3000</price>
</book>
</bib>
<title>Effective XML</title>
<author>Bob</author>
<publication>1999</publication>
<price>2100</price>
</book>
図2は、SAXフィルタとユーザアプリケーションとの関係を示す図である。SAXの構文解析では、XMLデータを解析するときに木を構成しない。その代わりに、コールバック関数を用いる手法をとっている。図2に示されているSAXフィルタ側にXMLデータが入力されると、上から順に読み込まれる。最初にbib(XMLデータの中では<bib>)が認識されると、SAXフィルタはユーザアプリケーション上にあるstartElement関数を呼び出す。この際、startElement関数の引数にはbibを入れておく(startElement(bib)という形をとる)ことで、ユーザアプリケーション側ではbibという情報を取得することができる。このように、SAXフィルタがユーザアプリケーション側を呼び出すことをコールバックと呼ぶ。表2にコールバック関数を示す。
/bib/book[contains(title/text(),'XML')][publication>=1999 and publication<=
2000] ・・・(式2)
オートマトンとは、状態遷移図に対応する処理を行うような仮想的な計算機のモデルであり、初期状態、受理状態の集合、その仮想的な計算機の内部状態として取りうる状態の集合、状態遷移の集合及びその仮想的な計算機(オートマトン)のその時点での内部状態を用いて表現されたものと考えることができる。
図5は、XPath式クラスタ化部30における処理を説明する図である。適宜、図4の例も参照しつつ、クラスタ化の処理について説明する。
S2:/bib/book/publication
R2:publication>=1999, publication<=2002, publication>=2000, publication<=2003, publication<=2004
F70:/bib/type/bookとpublicationを解析し、/で接続してパスを作成する。
F80:/bib/typeとpublication/bookを解析し、/で接続してパスを作成する。
F90:/bibとtype/book/publicationを解析し、/で接続してパスを作成する。
F101://book[1999<=publication and publication<=2002]
に対しては、//bookとpublicationを解析し、/で接続してパスを作成する。
その結果、絶対パスとして、//book/publicationを取得する。
F102:./bib//book[1999<=publication and publication<=2002]
に対しては、/bib//bookとpublicationを解析し、/で接続してパスを作成する。
その結果、絶対パスとして、/bib//book/publicationを取得する。
F103:/*/*/*[1999<=publication and publication<=2002]
に対しては、/*/*/*とpublicationを解析し、/で接続してパスを作成する。
その結果、絶対パスとして、/*/*/*/publicationを取得する。
F104:/*/*[1999<=*/publication and */publication<=2002]
に対しては、/*/*と*/publicationを解析し、/で接続してパスを作成する。
その結果、絶対パスとして、/*/*/*/publicationを取得する。
F105:/*//book[1999<=publication and publication<=2002]
に対しては、/*//bookとpublicationを解析し、/で接続してパスを作成する。
その結果、絶対パスとして、/*//book/publicationを取得する。
F106:/*/*//book[1999<=publication and publication<=2002]
に対しては、/*/*//bookとpublicationを解析し、/で接続してパスを作成する。
その結果、絶対パスとして、/*/*//book/publicationを取得する。
図7及び図8は区間インデックスを説明するための図である。図7は、図4に示したF40からF60までのXPath式を例にとって、区間インデックスとの対応関係を説明する図である。図7に示した例では、検索対象ノードがpublicationであった場合の区間インデックスを上側に記載し、対応するNFAの一部を下側に示している。なお、下側に記載したA40からA60の3つのNFAは図4に記載したA40からA60と同一である。
[-∞,1999), [1999,2000), [2000,2001), [2001,2002), [2002,2003), [2003,2004), [2004,+∞]
但し、[a,b)は、a以上b未満を示している。図7の中央部の破線矢印はpublicationの値がある区間に含まれるときに、どのNFAの条件を満たしているかを表している。例えば、publicationのテキストノードの値が2001である場合には、[2001,2002)に含まれることになり、その区間と対応する条件は、以下のようになる。
1999<publication, publication<=2002, 2000<=publication, publication<=2003, 2001<= publication, publication<=2004
なお、図7においては、該当する区間から破線の矢印が、対応するNFAの中の条件(を満たしたノード)へと結ばれている。(図7の破線の矢印は一部省略されている。)
このように、図7の上側に示されている2分木(区間インデックス)を用いると、publicationのテキストノードがどの区間に含まれるかを1回で検索することが可能になる。
[-∞,2000), [2000,2000], (2000,3000), [3000,+∞]
但し、(a,b)はaより大きく、b未満を表し、[c,d]はc以上d以下を表す。また、publicationの例と同様に、F40の条件を満たす区間は[2000,2000], (2000,3000), [3000,+∞]であり、F50の条件を満たす区間は[-∞,2000), [2000,2000]であり、F60を満たす区間は[3000,+∞]であることを1回で検索できる。
図11は区間インデックス検索部50における処理を説明する図である。この処理では、前記の区間インデックス構築部40が構築した区間インデックスを検索する。まず、区間インデックス検索部50に検索対象ノードと検索値としての区間が入力される(S310)。そして、検索対象ノードの絶対パスから検索対象ノードを特定して、特定された検索対象ノードに対する区間インデックスへ前記の検索値すなわち区間が入力される(S320)。その値に対して、区間インデックスの検索の結果からマッチした条件のリストを返し(S330)、処理を終了する。この条件のリストの出力は、後記する複数条件XPath式フィルタリング処理部60に入力される。
図12は、複数条件XPath式フィルタリング処理部60の処理を説明する図である。ここで説明する処理は、基本的にXMLデータの構造を示す文法であるスキーマを持たない前提で複数条件XPath式に対応するための処理である。
F110://book[publication<2000]
F120:/bib//book[publication<2000]
<book>
<title>Effective XML&Xpath</title>
<author>Bob</author>
<publication>1999</publication>
<price>2100</price>
</book>
</bib>
10 XPath式登録部
20 XPath式格納部
30 XPath式クラスタ化部
40 区間インデックス構築部
50 区間インデックス検索部
60 複数条件XPath式フィルタリング処理部
Claims (9)
- 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行うXPath式処理方法であって、
XPath式の記憶及び構文解析を行うためのメモリと前記構文解析及び前記XPath式に従った検索を行うための中央演算処理装置を少なくとも備えた計算機が、
前記複数条件のXPath式の条件を検索対象ノードごとの条件集合にクラスタ化する手段と、
前記検索対象ノードごとに当該ノードに対する条件集合から指定された区間に応じてノードを検索するための区間インデックスを構築する手段と、
前記検索対象ノードに対する前記区間インデックスを用いて前記検索対象ノードに関する条件を検索する手段と、
前記区間インデックスを用いて条件を一括処理してXMLデータをフィルタリングする手段を備え、
前記XPath式の構文解析によって特定された前記XPath式に含まれる複数条件を検索対象ノードごとの条件集合にクラスタ化し、
クラスタ化された前記検索対象ノードごとの条件集合から前記区間インデックスを構築し、
検索対象ノードに含まれる前記区間インデックスを検索し、
前記区間インデックスを用いてXPath式の条件を一括処理してXMLデータをフィルタリングすること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1に記載のXPath式処理方法であって、
前記複数条件のXPath式の条件を検索対象ノードごとの条件集合にクラスタ化する手段が、XPath式において相対パスで表現されている検索対象ノードを絶対パスによる表現に変換し、
前記検索対象ノードの絶対パスを相互に比較することで検索対象ノードごとに条件をクラスタ化して条件集合を作成すること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1に記載のXPath式処理方法であって、
前記複数条件のXPath式の条件を検索対象ノードごとの条件集合にクラスタ化する手段が、XPath式において相対パスで表現されている検索対象ノードを絶対パスによる表現に変換し、
前記絶対パスと入力されるXMLデータの対応を調べて、前記絶対パスに含まれるワイルドカード表現を前記XMLデータに対して対応が取れるようにマッチングさせて展開することにより、前記絶対パスによる表現を展開パスによる表現に変換し、
前記検索対象ノードの前記展開パスを比較する事で検索対象ノードごとに条件集合にクラスタ化すること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1ないし請求項3のいずれか1項に記載のXPath式処理方法であって、
前記区間インデックスを構築する手段が、前記クラスタ化された条件集合を元に既存の区間を分割し、
前記分割後の区間群に対して木構造を持つインデックスを構築すること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1ないし請求項4のいずれか1項に記載のXPath式処理方法であって、
前記検索対象ノードに対する前記区間インデックスを用いて前記検索対象ノードに関する条件を検索する手段が、構文解析によって得られた検索対象ノードに関連する値を検索対象ノードの区間インデックスに入力し、
検索対象ノードに対応する複数の条件を一括して検索すること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1ないし請求項5のいずれか1項に記載のXPath式処理方法であって、
前記区間インデックスを用いて条件を一括処理してXMLデータをフィルタリングする手段が、前記検索対象ノードに対する前記区間インデックスを用いて前記検索対象ノードに関する条件を検索する手段による検索結果を用いて、XMLデータをフィルタリングすること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1ないし請求項6のいずれか1項に記載のXPath式処理方法であって、
前記区間インデックスを用いて条件を一括処理してXMLデータをフィルタリングする手段が、複数条件のXPath式を複数の単一条件のXPath式に展開して構文解析処理を行い、
前記構文解析処理の結果に対応して検索のための複数の非決定性有限オートマトンを構築し、
前記複数の非決定性有限オートマトンを1つの決定性有限オートマトンに統合し、
前記決定性有限オートマトンを用いてXMLデータをフィルタリングすること
を特徴とするXPath式処理方法。 - 請求項1ないし請求項7のいずれか1項に記載のXPath式処理方法を、少なくともメモリと中央演算処理装置を備えた計算機を用いて実現することを特徴とするXPath式処理装置。
- 請求項1ないし請求項7のいずれか1項に記載のXPath式処理方法を、少なくともメモリと中央演算処理装置を備えた計算機に実行させることを特徴とするXPath式処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004381892A JP4332109B2 (ja) | 2004-12-28 | 2004-12-28 | XPath式処理方法、XPath式処理装置及びXPath式処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004381892A JP4332109B2 (ja) | 2004-12-28 | 2004-12-28 | XPath式処理方法、XPath式処理装置及びXPath式処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006189951A true JP2006189951A (ja) | 2006-07-20 |
JP4332109B2 JP4332109B2 (ja) | 2009-09-16 |
Family
ID=36797114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004381892A Active JP4332109B2 (ja) | 2004-12-28 | 2004-12-28 | XPath式処理方法、XPath式処理装置及びXPath式処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4332109B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008117454A1 (ja) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
JP2009295013A (ja) * | 2008-06-06 | 2009-12-17 | Hitachi Ltd | データベース管理方法、データベース管理装置およびプログラム |
US8549009B2 (en) | 2007-09-07 | 2013-10-01 | Nec Corporation | XML data processing system, data processing method and XML data processing control program used for the system |
-
2004
- 2004-12-28 JP JP2004381892A patent/JP4332109B2/ja active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008117454A1 (ja) * | 2007-03-27 | 2008-10-02 | Fujitsu Limited | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
JPWO2008117454A1 (ja) * | 2007-03-27 | 2010-07-08 | 富士通株式会社 | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
US8190632B2 (en) | 2007-03-27 | 2012-05-29 | Fujitsu Limited | Computer product, information retrieving apparatus, and information retrieving method |
JP5067420B2 (ja) * | 2007-03-27 | 2012-11-07 | 富士通株式会社 | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
US8549009B2 (en) | 2007-09-07 | 2013-10-01 | Nec Corporation | XML data processing system, data processing method and XML data processing control program used for the system |
JP2009295013A (ja) * | 2008-06-06 | 2009-12-17 | Hitachi Ltd | データベース管理方法、データベース管理装置およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP4332109B2 (ja) | 2009-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7788262B1 (en) | Method and system for creating context based summary | |
CN102279894B (zh) | 基于语义的查找、集成和提供评论信息的方法及搜索系统 | |
CN103914513B (zh) | 一种实体输入方法和装置 | |
CN104679783B (zh) | 一种网络搜索方法和装置 | |
CN101398858B (zh) | 一种基于本体学习的Web服务语义提取方法 | |
CN104281702A (zh) | 基于电力关键词分词的数据检索方法及装置 | |
KR101054824B1 (ko) | 키워드 시맨틱 네트워크 구성을 통한 특허정보 시각화 시스템 및 그 방법 | |
CN107451120B (zh) | 一种公开文本情报的内容冲突检测方法及系统 | |
CN104462268B (zh) | 一种html文档信息抽取表达式的方法及系统 | |
CN107679035A (zh) | 一种信息意图检测方法、装置、设备和存储介质 | |
CN103207917A (zh) | 标注多媒体内容的方法、生成推荐内容的方法及系统 | |
CN105005616A (zh) | 基于文本图片特征交互扩充的文本图解方法及系统 | |
CN104462532A (zh) | 网页正文提取的方法和装置 | |
RU2568276C2 (ru) | Способ извлечения полезного контента из установочных файлов мобильных приложений для дальнейшей машинной обработки данных, в частности поиска | |
CN103838792A (zh) | 一种网页主题确定的方法 | |
JP2005135199A (ja) | オートマトン作成方法、および、xmlデータ検索方法、ならびに、xmlデータ検索装置、xmlデータ検索プログラム、および、xmlデータ検索プログラムの記録媒体 | |
Tao et al. | Facilitating Twitter data analytics: Platform, language and functionality | |
CN112464591B (zh) | 一种多端口嵌套模型连接分析方法及介质 | |
JP4332109B2 (ja) | XPath式処理方法、XPath式処理装置及びXPath式処理プログラム | |
CN112148938B (zh) | 一种跨域异构数据检索系统及检索方法 | |
JP4519028B2 (ja) | XPath式処理装置 | |
CN116523041A (zh) | 装备领域知识图谱构建方法、检索方法、系统及电子设备 | |
Zhang et al. | Construction of a cloud scenario knowledge graph for cloud service market | |
CN113407678A (zh) | 知识图谱构建方法、装置和设备 | |
CN109923538A (zh) | 文本检索装置、文本检索方法以及计算机程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090331 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20090414 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090417 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090515 |
|
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: 20090616 |
|
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: 20090619 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4332109 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: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140626 Year of fee payment: 5 |
|
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 |