JP4332109B2 - XPath式処理方法、XPath式処理装置及びXPath式処理プログラム - Google Patents
XPath式処理方法、XPath式処理装置及びXPath式処理プログラム Download PDFInfo
- Publication number
- JP4332109B2 JP4332109B2 JP2004381892A JP2004381892A JP4332109B2 JP 4332109 B2 JP4332109 B2 JP 4332109B2 JP 2004381892 A JP2004381892 A JP 2004381892A JP 2004381892 A JP2004381892 A JP 2004381892A JP 4332109 B2 JP4332109 B2 JP 4332109B2
- Authority
- JP
- Japan
- Prior art keywords
- xpath
- xpath expression
- condition
- section
- search target
- 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.)
- Active
Links
Images
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 (8)
- 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行うXPath式処理方法であって、
XPath式の記憶及び構文解析を行うためのメモリと前記構文解析及び前記XPath式に従った検索を行うための中央演算処理装置を少なくとも備えた計算機が、
前記複数条件のXPath式の条件を検索対象ノードごとの条件集合にクラスタ化する手段と、
前記検索対象ノードごとに、当該ノードに対する条件集合からその条件集合の示す範囲を重複のない区間群に分割し、その重複のない区間群として分割される区間と、その区間に対応する前記条件とを関連付ける区間インデックスを構築する手段と、
前記検索対象ノードに対する前記区間インデックスを用いて前記検索対象ノードに関する条件を検索する手段と、
前記区間インデックスを用いて検索された条件に従い、XMLデータをフィルタリングする手段を備え、
前記XPath式の構文解析によって特定された前記XPath式に含まれる複数条件を検索対象ノードごとの条件集合にクラスタ化し、
クラスタ化された前記検索対象ノードごとの条件集合から前記区間インデックスを構築し、
検索対象ノードに含まれる前記区間インデックスを検索し、
前記区間インデックスを用いて検索された検索対象ノードに関する条件に従って、XMLデータをフィルタリングすること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1に記載のXPath式処理方法であって、
前記複数条件のXPath式の条件を検索対象ノードごとの条件集合にクラスタ化する手段が、XPath式において相対パスで表現されている検索対象ノードを絶対パスによる表現に変換し、
前記検索対象ノードの絶対パスを相互に比較することで検索対象ノードごとに条件をクラスタ化して条件集合を作成すること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1または請求項2に記載のXPath式処理方法であって、
前記区間インデックスを構築する手段が、前記クラスタ化された条件集合を元に既存の区間を分割し、
前記分割後の区間群に対して木構造を持つインデックスを構築すること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1ないし請求項3のいずれか1項に記載のXPath式処理方法であって、
前記検索対象ノードに対する前記区間インデックスを用いて前記検索対象ノードに関する条件を検索する手段が、構文解析によって得られた検索対象ノードに関連する値を検索対象ノードの区間インデックスに入力し、
前記入力された値に対応する区間に適合する条件を、前記区間インデックスを用いて検索すること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1ないし請求項4のいずれか1項に記載のXPath式処理方法であって、
前記区間インデックスを用いて条件を検索し、XMLデータをフィルタリングする手段が、前記検索対象ノードに対する前記区間インデックスを用いて前記検索対象ノードに関する条件を検索する手段による検索結果を用いて、XMLデータをフィルタリングすること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行う請求項1ないし請求項5のいずれか1項に記載のXPath式処理方法であって、
前記区間インデックスを用いて条件を検索し、XMLデータをフィルタリングする手段が、複数条件のXPath式を複数の単一条件のXPath式に展開して構文解析処理を行い、
前記構文解析処理の結果に対応して検索のための複数の非決定性有限オートマトンを構築し、
前記複数の非決定性有限オートマトンを1つの決定性有限オートマトンに統合し、
前記決定性有限オートマトンを用いてXMLデータをフィルタリングすること
を特徴とするXPath式処理方法。 - 複数条件のXPath式に従ってXMLデータをフィルタリングする処理を行うXPath式処理装置であって、
前記XPath式処理装置は、
XPath式の記憶及び構文解析を行うためのメモリと前記構文解析及び前記XPath式に従った検索を行うための中央演算処理装置を少なくとも備え、
前記複数条件のXPath式の条件を検索対象ノードごとの条件集合にクラスタ化するXPath式クラスタ化部と、
前記検索対象ノードごとに、当該ノードに対する条件集合からその条件集合の示す範囲を重複のない区間群に分割し、その重複のない区間群として分割される区間と、その区間に対応する前記条件とを関連付ける区間インデックスを構築する区間インデックス構築部と、
前記検索対象ノードに対する前記区間インデックスを用いて前記検索対象ノードに関する条件を検索する区間インデックス検索部と、
前記区間インデックスを用いて検索された条件に従い、XMLデータをフィルタリングする複数条件XPath式フィルタリング処理部と、
を備えることを特徴とするXPath式処理装置。 - 請求項1ないし請求項6のいずれか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 JP2006189951A (ja) | 2006-07-20 |
JP4332109B2 true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5067420B2 (ja) * | 2007-03-27 | 2012-11-07 | 富士通株式会社 | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
JP5347965B2 (ja) | 2007-09-07 | 2013-11-20 | 日本電気株式会社 | Xmlデータ処理システム、該システムに用いられるデータ処理方法及びxmlデータ処理制御プログラム |
JP2009295013A (ja) * | 2008-06-06 | 2009-12-17 | Hitachi Ltd | データベース管理方法、データベース管理装置およびプログラム |
-
2004
- 2004-12-28 JP JP2004381892A patent/JP4332109B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2006189951A (ja) | 2006-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279894B (zh) | 基于语义的查找、集成和提供评论信息的方法及搜索系统 | |
US7788262B1 (en) | Method and system for creating context based summary | |
WO2015172567A1 (zh) | 一种互联网信息搜索聚合呈现方法 | |
CN103914513A (zh) | 一种实体输入方法和装置 | |
CN101398858B (zh) | 一种基于本体学习的Web服务语义提取方法 | |
CN104281702A (zh) | 基于电力关键词分词的数据检索方法及装置 | |
KR101054824B1 (ko) | 키워드 시맨틱 네트워크 구성을 통한 특허정보 시각화 시스템 및 그 방법 | |
CN102110109A (zh) | 一种数字报专题的制作方法及系统 | |
CN104679783A (zh) | 一种网络搜索方法和装置 | |
JP2005063432A (ja) | マルチメディアオブジェクト検索装置およびマルチメディアオブジェクト検索方法 | |
CN104462268B (zh) | 一种html文档信息抽取表达式的方法及系统 | |
CN104462532A (zh) | 网页正文提取的方法和装置 | |
CN105005616A (zh) | 基于文本图片特征交互扩充的文本图解方法及系统 | |
CN103838792A (zh) | 一种网页主题确定的方法 | |
CN107451120B (zh) | 一种公开文本情报的内容冲突检测方法及系统 | |
JP2005135199A (ja) | オートマトン作成方法、および、xmlデータ検索方法、ならびに、xmlデータ検索装置、xmlデータ検索プログラム、および、xmlデータ検索プログラムの記録媒体 | |
JP3832693B2 (ja) | 構造化文書検索表示方法及び装置 | |
KR20040017824A (ko) | 웹 문서와 리스트정보의 패턴을 이용한 패턴예상분석에따른 정보검색시스템 | |
Tao et al. | Facilitating Twitter data analytics: Platform, language and functionality | |
CN112148938B (zh) | 一种跨域异构数据检索系统及检索方法 | |
EP2186018A1 (en) | System and method for instances registering based on history | |
JP4332109B2 (ja) | XPath式処理方法、XPath式処理装置及びXPath式処理プログラム | |
CN112597410A (zh) | 基于规则配置库对网页内容执行结构化提取的方法及装置 | |
CN108549727A (zh) | 基于网络爬虫以及大数据分析的用户获利信息推送方法 | |
CN116523041A (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 |