JP4320022B2 - XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体 - Google Patents

XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体 Download PDF

Info

Publication number
JP4320022B2
JP4320022B2 JP2006074501A JP2006074501A JP4320022B2 JP 4320022 B2 JP4320022 B2 JP 4320022B2 JP 2006074501 A JP2006074501 A JP 2006074501A JP 2006074501 A JP2006074501 A JP 2006074501A JP 4320022 B2 JP4320022 B2 JP 4320022B2
Authority
JP
Japan
Prior art keywords
keyword index
xpath
text value
xpath expression
management unit
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
Application number
JP2006074501A
Other languages
English (en)
Other versions
JP2007249773A (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 JP2006074501A priority Critical patent/JP4320022B2/ja
Publication of JP2007249773A publication Critical patent/JP2007249773A/ja
Application granted granted Critical
Publication of JP4320022B2 publication Critical patent/JP4320022B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、XPath式の処理に関するXPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体に関する。
XML(Extensible Markup Language)は、データの意味や構造を記述するためのマークアップ言語であり、ネットワークに接続されたコンピュータ同士でのデータの送受信に標準的に使用されている。例えば、XMLは、NewsML(ニューズエムエル)等をはじめとして広い分野で使われている。NewsMLは、ニュース記事やそれに関連した画像、動画、音声等の情報を、ウェブサイト、携帯電話、テレビ(テレビのデータ放送)等さまざまな端末装置に送ることができるニュース配信フォーマットである。
XPath(XML Path Language)式は、例えば、ニュース等を提供する情報提供者から提供されるストリームデータ等のXMLデータ(以下、単にXMLデータという)における特定の部分を指し示す言語である。XPath式によれば、XMLデータにアンカ等が埋め込まれていなくともXMLデータの任意の位置を指し示すことができる。そのため、XPath式は、XMLデータに対するクエリや変換等において重要な役割を果たしている。
XMLデータと、そのXMLデータの特定部分を指定するXPath式とを入力としたときに、XMLデータ中の指定された特定の部分を抽出する(フィルタ処理する)技術が注目を集めている。例えば、NewsMLの受け側(ユーザ)は、フィルタエンジンにXPath式(検索条件)を予め登録しておくことで、膨大な情報の中から必要な情報を得ることができる。
従来、フィルタエンジンが、XPath式を用いて、入力されたXMLデータをフィルタ処理する際に、XPath式から導出されたオートマトン(Automaton)を用いるXPath式処理方法が知られている(例えば、特許文献1、非特許文献1および非特許文献2参照)。これらの従来のXPath式処理方法は、XPath式に対する処理の高速化や、メモリ使用量の削減等を目的とした方法である。
特開2003−323429号公報(段落0028〜0034、図2) T. J. Green et al,"Processing XML Streams with Deterministic Automata",ICDT 2003,LNCS2572,Springer-verlag,p.173-189 Y・Diao et al,"YFilter:Efficient and Scalable Filtering of XML Documents",Proceedings of 18th International Conference of Data Engineering,IEEE,2002,p.341-342
しかしながら、従来のフィルタエンジンでは、XPath式における述語の処理のうち、文字列の一致(完全一致や部分一致等)処理に関して、単純な文字列一致処理を実行する場合に、ユーザによって登録されるXPath式の個数が増加したり、ユーザによって指定されるキーワードの個数が増加したりすると、処理速度が低下するという問題があった。
さらに、従来のフィルタエンジンでは、ユーザによって指定されるキーワードと、XMLデータのテキスト値とを単純にマッチングさせた場合に、XMLデータのテキスト値を正しく適合判定することができないことがあった。つまり、キーワードで指定される記事の抽出精度が低いという問題があった。例えば、従来のフィルタエンジンで、検索条件(XPath式)として、「XMLデータの本文タグに“cde株式会社”を含む記事」という内容を登録しておいた場合、XMLデータから、不必要な記事である「本文タグに“abcde株式会社”を含む記事」も抽出され、ユーザへ通知されることとなる。つまり、ユーザは、必要とする「本文タグに“cde株式会社”を含む記事」のみを取得することができない。
そこで、本発明では、前記した問題を解決し、XPath式における述語の処理のうち、文字列の一致処理を迅速に実行できるXPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体を提供することを目的とする。
また、本発明では、XPath式における述語の処理のうち、文字列の一致処理の精度を高めることのできるXPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体を提供することを他の目的とする。
前記課題を解決するために、本願発明者は種々検討を行った結果、以下の知見を見出した。すなわち、本発明では、提供されたXMLデータに対するキーワードの適合判定を行うための関数であるキーワードインデックスを導入することとした。このキーワードインデックスは、ユーザの個人プロファイルに基づいてXPath式に含まれるテキスト値に対して作成される。そして、本発明では、提供されたXMLデータから、XPath式の述語で指定された要素(タグ)を抽出し、対応するキーワードインデックを用いるので、複数キーワードのマッチングを行うために、XMLデータにおけるテキスト値をバックトラックする必要がなくなる。そのため、従来よりも計算量を抑えることができる。その結果、ユーザから登録されるXPath式の増加や、キーワードを指定した述語数の増加に関わらず、XPath式処理における文字列の述語処理を高速化することが可能である。また、本発明では、文字列の一致処理に利用されるユーザの個人プロファイルに関して、個人プロファイルがキーワードを指定した述語別に分類された個々のXPath式を識別する識別情報と、述語間の論理演算子と、キーワードインデックスとを関連付けて記憶することとした。これにより、ユーザによって指定されるキーワードの個数が増加したとしても処理速度の低下を抑制することが可能となる。
また、XMLデータおよびXPath式から抽出されたタグにおけるテキスト値を加工して、キーワードの単純な前方一致や後方一致等の部分一致を防止することができれば、キーワードの適合判定精度を高めることが可能となる。
さらに、キーワードインデックスを作成すべき個々のXPath式や、登録済みの個人プロファイルから削除すべきキーワードインデックスを予め指定しておけば、個人プロファイルの追加や削除、および、入力されるXMLデータからのキーワードの抽出処理を簡略化できるので、迅速に文字列の一致処理を実行することが可能となる。
そこで、請求項1に記載のXPath式処理装置は、情報提供者からユーザへ提供される所定の情報を示すXMLデータを、前記ユーザの望む情報の検索条件である個人プロファイルとして入力されたXPath式に基づいて、前記ユーザごとに予め定められた形式のXMLデータに変換する処理を実行するXPath式処理装置であって、
前記個人プロファイルとして入力されたXPath式の構造を解析し、前記XPath式から、前記XPath式に含まれるテキスト値を指定した述語を含む条件を抽出する問い合わせパースモジュールと、前記テキスト値に基づいて、前記XMLデータに対するキーワードの適合判定を行うための関数であるキーワードインデックスを作成するキーワードインデックス作成手段と、前記条件ごとに前記個人プロファイルを分割して生成されるシングルXPath式を識別する情報であるXPath式識別情報と、前記個人プロファイルに含まれるXPath式識別情報間の論理演算子と、前記キーワードインデックスとを関連付けて記憶するプロファイル管理部と、前記個人プロファイルを前記プロファイル管理部に追加する命令である追加命令が入力されたときに、前記問い合わせパースモジュールで抽出された条件に基づいて、前記キーワードインデックス作成手段で作成されたキーワードインデックスまたは前記プロファイル管理部に記憶されているキーワードインデックスに、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を追加するキーワードインデックス追加手段と、前記個人プロファイルを前記プロファイル管理部から削除する命令である削除命令が入力されたときに、前記問い合わせパースモジュールで抽出された条件に基づいて、前記プロファイル管理部に記憶されているキーワードインデックスから、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を削除するキーワードインデックス削除手段と、入力されたXMLデータの構造を解析し、解析結果としての情報である構造情報を抽出するXMLパースモジュールと、前記XMLパースモジュールで抽出された構造情報のうち、テキスト値タグに対応したキーワードインデックスに基づいて、前記テキスト値タグで指定されるテキスト値に対応するXPath式識別情報を特定し、特定されたXPath式識別情報と前記XPath式識別情報間の論理演算子とに基づいて、前記個人プロファイルの適合判定を行うデータ抽出モジュールと、前記データ抽出モジュールで適合判定された個人プロファイルに基づいて、前記入力されたXMLデータを、予め定められた形式のXMLデータへ変換するデータ変換モジュールとを備えることを特徴とする。
かかる構成によれば、XPath式処理装置は、プロファイル管理部に、キーワードインデックスと共に、個人プロファイルのXPath式の条件で指定されるテキスト値と、XPath式識別情報との組とを記憶しておく。なお、シングルXPath式を生成するために個人プロファイルを分割する条件には、述語を含んでいる。そして、XPath式処理装置は、データ抽出モジュールによって、入力されるXMLデータの構造情報のテキスト値タグで指定されるテキスト値に対応するXPath式識別情報を特定し、XPath式識別情報間の論理演算子に基づいて、個人プロファイルの適合判定を行う。このとき、データ抽出モジュールは、キーワードインデックスによって、XPath式識別情報を特定する。なお、データ抽出モジュールは、キーワードを含む記事(部分XMLデータ)を抽出する。
これにより、キーワードインデックスを用いて、複数キーワードのマッチングを行うために、XMLデータにおけるテキスト値をバックトラックする必要がないので、従来よりも計算量を抑えることができる。その結果、ユーザから登録されるXPath式の増加や、キーワードを指定した述語数の増加に関わらず、XPath式処理における文字列の述語処理を高速化することが可能である。
また、請求項2に記載のXPath式処理装置は、請求項1に記載のXPath式処理装置において、前記個人プロファイルとして入力されたXPath式に含まれるテキスト値を単語に区切って、単語区切り付きテキスト値を生成する形態素解析モジュールをさらに備え、前記キーワードインデックス追加手段は、前記プロファイル管理部に記憶されているキーワードインデックスに、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を追加し、前記キーワードインデックス削除手段は、前記プロファイル管理部に記憶されているキーワードインデックスから、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を削除し、前記データ抽出モジュールは、前記プロファイル管理部に記憶されているキーワードインデックスに基づいて、前記単語区切り付きテキスト値に対応するXPath式識別情報を特定することを特徴とする。
かかる構成によれば、XPath式処理装置は、形態素解析モジュールによって、個人プロファイルとして入力されたXPath式に含まれるテキスト値を単語に区切って、単語区切り付きテキスト値を生成する。ここで、形態素とは、これ以上に細かくすると意味がなくなってしまう最小の文字列をいい、形態素解析とは、予め作成された辞書を用いてテキスト値を形態素のレベルまで分解して解析することである。そして、形態素解析モジュールは、形態素解析をすることによって意味が考慮されたテキスト値にさらに単語区切りを付与する。ここで、単語区切りは、XPath式に含まれるテキスト値の前後にも付与されることが好ましい。このように入力されたテキスト値が加工されることにより、キーワードの単純な前方一致や後方一致等の誤った部分一致を防止することができる。その結果、キーワードの適合判定精度を高めることが可能となる。
また、請求項3に記載のXPath式処理装置は、請求項1または請求項2に記載のXPath式処理装置において、前記キーワードインデックスを追加あるいは削除するタグを指定するためのタグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得し、前記構造情報から抽出されたパスに対応するキーワードインデックスが、前記プロファイル管理部に記憶されているか否かを判別するインデックス指定パースモジュールをさらに備え、前記キーワードインデックス作成手段は、前記キーワードインデックスを前記プロファイル管理部に追加する命令が入力されたときに、前記インデックス指定パースモジュールで前記キーワードインデックスが前記プロファイル管理部に記憶されていないと判別された場合に、前記抽出されたパスに対応するキーワードインデックスを作成し、前記キーワードインデックス削除手段は、前記キーワードインデックスを前記プロファイル管理部から削除する命令が入力されたときに、前記インデックス指定パースモジュールで前記キーワードインデックスが前記プロファイル管理部に記憶されていると判別された場合に、前記抽出されたパスに対応するキーワードインデックスを削除することを特徴とする。
かかる構成によれば、XPath式処理装置は、インデックス指定パースモジュールによって、入力されたタグ指定用XPath式に関するキーワードインデックスが、プロファイル管理部に記憶されているか否かを判別する。そして、XPath式処理装置は、インデックス指定パースモジュールの判別結果に基づいて、キーワードインデックスの削除、または、作成および追加を実行する。したがって、XPath式処理装置は、個人プロファイルのXPath式において、キーワードインデックスを適用する箇所や、テキスト値を加工してキーワードインデックスを適用する箇所を指定することができる。その結果、入力されたXMLデータの抽出処理を高速化することができる。
また、前記課題を解決するため、請求項4に記載のXPath式処理方法は、情報提供者からユーザへ提供される所定の情報を示すXMLデータを、前記ユーザの望む情報の検索条件である個人プロファイルとして入力されたXPath式に基づいて、前記ユーザごとに予め定められた形式のXMLデータに変換する処理を実行するXPath式処理装置のXPath式処理方法であって、前記XPath式処理装置は、前記個人プロファイルとして入力されたXPath式の構造を解析し、前記XPath式から、前記XPath式に含まれるテキスト値を指定した述語を含む条件を抽出する述語抽出ステップと、前記テキスト値に基づいて、前記XMLデータに対するキーワードの適合判定を行うための関数であるキーワードインデックスを作成する作成ステップと、前記条件ごとに前記個人プロファイルを分割して生成されるシングルXPath式を識別する情報であるXPath式識別情報と、前記個人プロファイルに含まれるXPath式識別情報間の論理演算子と、前記キーワードインデックスとを関連付けて記憶するプロファイル管理部に、前記個人プロファイルを追加する命令である追加命令が入力されたときに、前記抽出された条件に基づいて、前記作成されたキーワードインデックスまたは前記プロファイル管理部に記憶されているキーワードインデックスに、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を追加する追加ステップと、前記個人プロファイルを前記プロファイル管理部から削除する命令である削除命令が入力されたときに、前記抽出された条件に基づいて、前記プロファイル管理部に記憶されているキーワードインデックスから、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を削除する削除ステップと、入力されたXMLデータの構造を解析し、解析結果としての情報である構造情報を抽出する構造情報抽出ステップと、前記抽出された構造情報のうち、テキスト値タグに対応したキーワードインデックスに基づいて、前記テキスト値タグで指定されるテキスト値に対応するXPath式識別情報を特定する識別情報特定ステップと、前記特定されたXPath式識別情報と前記XPath式識別情報間の論理演算子とに基づいて、前記XMLパースモジュールで抽出された構造情報に対する前記個人プロファイルの適合判定を行う適合判定ステップとを含んで実行することを特徴とする。
かかる手順によれば、XPath式処理装置は、構造情報抽出ステップで、入力されるXMLデータの構造情報からテキスト値タグを抽出する。そして、XPath式処理装置は、識別情報特定ステップで、プロファイル管理部に記憶された、キーワードインデックスと、個人プロファイルのXPath式の条件で指定されるテキスト値と、XPath式識別情報との組とに基づいて、抽出されたテキスト値タグで指定されるテキスト値に対応するXPath式識別情報を特定する。これにより、キーワードインデックスを用いて、複数キーワードのマッチングを行うために、XMLデータにおけるテキスト値をバックトラックする必要がないので、従来よりも計算量を抑えることができる。
また、請求項5に記載のXPath式処理方法は、請求項4に記載のXPath式処理方法において、前記XPath式処理装置は、前記個人プロファイルとして入力されたXPath式に含まれるテキスト値を単語に区切って、単語区切り付きテキスト値を生成する生成ステップをさらに含んで実行し、前記追加ステップは、前記プロファイル管理部に記憶されているキーワードインデックスに、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を追加し、前記削除ステップは、前記プロファイル管理部に記憶されているキーワードインデックスから、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を削除し、前記識別情報特定ステップは、前記プロファイル管理部に記憶されているキーワードインデックスに基づいて、前記単語区切り付きテキスト値に対応するXPath式識別情報を特定することを特徴とする。
かかる手順によれば、XPath式処理装置は、生成ステップで、個人プロファイルとして入力されたXPath式に含まれるテキスト値を単語に区切って、単語区切り付きテキスト値を生成する。ここで、単語区切りは、XPath式に含まれるテキスト値の前後にも付与されることが好ましい。このように入力されたテキスト値が加工されることにより、キーワードの単純な前方一致や後方一致等の誤った部分一致を防止することができる。
また、請求項6に記載のXPath式処理方法は、請求項4または請求項5に記載のXPath式処理方法において、前記XPath式処理装置は、
前記キーワードインデックスを追加あるいは削除するタグを指定するためのタグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得するステップと、前記取得された構造情報から抽出されたパスに対応するキーワードインデックスが、前記プロファイル管理部に記憶されているか否かを判別する判別ステップと、前記判別ステップで前記キーワードインデックスが前記プロファイル管理部に記憶されていないと判別された場合に、前記抽出されたパスに対応するキーワードインデックスを作成するステップと、前記判別ステップで前記キーワードインデックスが前記プロファイル管理部に記憶されていると判別された場合に、前記抽出されたパスに対応するキーワードインデックスを削除するステップとをさらに含んで実行することを特徴とする。
かかる手順によれば、XPath式処理装置は、判別ステップで、入力されたタグ指定用XPath式に関するキーワードインデックスが、プロファイル管理部に記憶されているか否かを判別し、判別結果に基づいて、キーワードインデックスの削除、または、作成および追加を実行する。したがって、XPath式処理装置は、個人プロファイルのXPath式において、キーワードインデックスを適用する箇所や、テキスト値を加工してキーワードインデックスを適用する箇所を指定することができる。
また、請求項7に記載のXPath式処理プログラムは、請求項4乃至請求項6のいずれか一項に記載のXPath式処理方法をコンピュータに実行させることを特徴とする。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
また、請求項8に記載の記録媒体は、請求項7に記載のXPath式処理プログラムが記録されたことを特徴とする。このように構成されることにより、この記録媒体を装着されたコンピュータは、この記録媒体に記録されたプログラムに基づいた各機能を実現することができる。
本発明によれば、XPath式における述語の処理のうち、文字列の一致処理を迅速に実行することができる。また、本発明によれば、XPath式における述語の処理のうち、文字列の一致処理の精度を高めることができる。
以下、図面を参照して本発明のXPath式処理装置およびXPath式処理方法を実施するための最良の形態(以下「実施形態」という)について、第1実施形態ないし第3実施形態に分けて詳細に説明する。
(第1実施形態)
図1は、XPath式処理方法が適用されるフィルタエンジンの概要を示す図である。
フィルタエンジン(XPath式処理装置)10は、図示しない情報提供者からユーザへ提供される所定の情報を示すXMLデータを、ユーザの望む情報の検索条件である個人プロファイルとして入力されたXPath式に基づいて、ユーザごとに予め定められた形式のXMLデータに変換する処理を実行するものである。ここで、XMLは、インターネットの標準としてW3C(World Wide Web Consortium)により勧告されたメタ言語である。なお、メタ言語とは、言語を作る言語という意味である。XMLデータは、XMLによって作られた言語を用いて作成された文書やデータである。XMLデータには、タグがある。タグは、XMLデータにおいて、要素の位置を明示し、属性を収納するために記述される文字列のことである。タグには、本文タグ、テキスト値タグ、タイトルタグ等の種類がある。
情報提供者によりXML形式にしたがって生成されたXMLデータは、XPath式処理方法を実行するフィルタエンジン10にイントラネット等のネットワークを経由して送信される。
情報提供者が提供するXMLデータを受け取る個々のユーザは、個人プロファイルをXML問い合わせという形式でフィルタエンジン10に予め登録する。
フィルタエンジン10は、登録されている個人プロファイルに応じて、送られてくるニュースソース等のXMLデータをフィルタ・変換し、フィルタされたXMLデータを個々のユーザに配信する。
ニュースソース等のXMLデータの具体例としては、NewsMLがある。NewsMLは前記のとおり、XMLをベースにした新しいニュース配信フォーマットであり、ニュース記事、画像、動画、音声等のさまざまなニュース素材が自由に組み合わされた情報を、ウェブサイトや携帯電話等さまざまな機器を対象に送ることができる。また、NewsMLは、ニュース記事、画像、動画、音声等のさまざまなニュース素材を構造化して一元管理するのに適している。
[フィルタエンジンの内部構成]
図2は、本発明の第1実施形態に係るフィルタエンジンの一例を示す機能ブロック図である。フィルタエンジン10は、図2に示すように、XMLパースモジュール11と、問い合わせパースモジュール12と、データ抽出モジュール13と、データ変換モジュール14と、プロファイル管理部15と、キーワードインデックス管理モジュール16とを備える。
このフィルタエンジン10は、CPU(Central Processing Unit)およびRAM(Random Access Memory)から構成される主制御装置、ハードディスク等から構成される外部記憶装置、通信を行うためのNIC(Network Interface Card)を有するコンピュータと、ルータ(Router)とを含んで構成される。なお、プロファイル管理部15は、例えば、外部記憶装置に格納される。
<XMLパースモジュール>
XMLパースモジュール11は、入力されたXMLデータを先頭から順次シーケンシャルに読み込みつつ、その構造を解析し、解析結果としての情報である構造情報を抽出するものである。つまり、XMLパースモジュール11は、入力されたXMLデータをパースし、XMLのタグを検出するごとにアドインされた各種ハンドラ(プログラム)を起動することにより、内部形式XMLデータ(SAX(Simple API for XML)イベント)に変換する。なお、パースとは、XMLデータを読み込んで、XMLのタグで指定された文書要素や属性等を解析する解析処理である。入力されたXMLデータは、テキスト形式で記述されているが、パースの過程で、内部形式で記述されたXMLデータ(内部形式XMLデータ)に変換される。この内部形式XMLデータ(抽出された構造情報)は、データ抽出モジュール13ヘ出力される。
<問い合わせパースモジュール12>
問い合わせパースモジュール12は、個人プロファイルとして入力されたXPath式の構造を解析し、解析結果としての情報である構造情報に基づいて、XPath式から、XPath式に含まれるテキスト値を指定した述語を含む条件を抽出するものである。つまり、問い合わせパースモジュール12は、入力された個人プロファイルをパースする。また、問い合わせパースモジュール12は、1つの条件ごとにXPath式(個人プロファイル)を分割し、この分割したXPath式(以下、シングルXPath式という)を生成する。なお、以下では、問い合わせパースモジュール12は、XPath式から、XPath式に含まれるテキスト値を指定した述語を抽出し、この抽出した述語ごとに個人プロファイルを分割するものとして説明する。
具体的には、問い合わせパースモジュール12は、入力されたXPath式、例えば、
/item/title[contains(text(), "ABC")]
において、テキスト値を指定した述語が存在するか否かを判定し、テキスト値を指定した述語が存在する場合に、述語が指定されているタグを受け付け、受け付けたタグとその指定されたテキスト値をキーワードインデックス管理モジュール16に出力する。ここで、「テキスト値を指定した述語」とは、“=”,“contains()”,“starts−with()”等の文字列に関する演算子を用いた式を指す。つまり、例示したXPath式においては、“contains()”のことである。
また、問い合わせパースモジュール12は、入力されたXPath式の構造情報をプロファイル管理部15へ格納する。
また、問い合わせパースモジュール12は、分割したシングルXPath式を、データ抽出モジュール13、プロファイル管理部15およびキーワードインデックス管理モジュール16へ出力する。なお、XPath式は、XMLデータから所定のデータを抽出するためにXMLデータの特定の部分を指し示す言語である。このXPath式を利用すれば、XMLデータ中にアンカ等が埋め込まれていなくとも、データ中の任意の位置を指し示すことができる。また、問い合わせパースモジュール12は、キーワードに関する述語に関わらず全てのXPath式を処理対象とする。
<データ抽出モジュール>
データ抽出モジュール13は、問い合わせパースモジュール12から入力されるシングルXPath式ごとに、識別する情報であるXPathID(XPath式識別情報)を付与し、プロファイル管理部15に格納する。このデータ抽出モジュール13は、図3に示すように、後記するプロファイル管理部15のメモリ上で、シングルXPath式ごとに、NFA(非決定性オートマトン)を生成し、生成された複数のNFAを1つのノードに結合することにより結合NFAを生成し、この結合NFAとXMLデータの入力とに応じて、DFA(決定性オートマトン)を順次生成および更新する。
また、データ抽出モジュール13は、プロファイル管理部15に格納されたDFAを用いて、XMLパースモジュール11から入力されたXMLデータをフィルタして、一部のXMLデータ(部分XML)を抽出し、データ変換モジュール14に出力する。具体的には、データ抽出モジュール13は、XMLデータの構造情報と、プロファイル管理部15に格納されているXPath式の構造情報とを照合する。この照合方法としては、公知の方法(非特許文献1,2または特許文献1参照)を用いることができる。そして、データ抽出モジュール13は、XMLパースモジュール11で抽出された構造情報であるテキスト値タグで指定されるテキスト値に対応した関数である後記するキーワードインデックスに基づいて、当該テキスト値に対応するXPathIDを特定し、特定されたXPathIDとXPathID間の論理演算子とに基づいて、個人プロファイルの適合判定を行う。
このデータ抽出モジュール13は、特定したXPathIDをプロファイル管理部15のメモリに一次記憶する。そして、データ抽出モジュール13は、入力されたXMLデータの終端タグを検出したときに、プロファイル管理部15のメモリに一次記憶されたXPathIDを評価する。ここで、評価とは、一次記憶されたXPathIDの中から、個人プロファイルに合致するXPathIDを見つけ出すことである。
<データ変換モジュール>
データ変換モジュール14は、データ抽出モジュール13で個人プロファイルの適合判定が行われた入力XMLデータを、ユーザの希望する形式のXMLデータ(フィルタされたXMLデータ)へ変換する。なお、フィルタされたXMLデータは、内部形式XMLデータである。また、ユーザの希望する形式のXMLデータへ変換方法は、本発明において特に限定されるものではない。ここで、ユーザの希望する形式は、予め定められている。
<プロファイル管理部>
プロファイル管理部15は、例えば、HDD(Hard Disk Drive)と、RAM(Random Access Memory)とを備える。この場合に、RAMは、演算処理等に利用されると共に、外部から取得した情報等を記憶し、HDDは、各種データベース、所定のプログラム、処理結果等を格納する。
プロファイル管理部15は、前記したデータ抽出モジュール13が、オートマトンの生成、および生成したオートマトンを用いたフィルタ処理を実行するために利用するメモリを有している。
また、プロファイル管理部15は、XPath式の構造情報を格納するためのメモリを有している。
また、プロファイル管理部15は、問い合わせパースモジュール12で抽出された条件(テキスト値を指定した述語等)ごとに、XPathIDと、個人プロファイルに含まれるXPathID間の論理演算子と、キーワードインデックスとを関連付けて記憶するものである。このために、プロファイル管理部15には、複数のデータベースが格納されている。例えば、プロファイル管理部15は、図4に示すように、第1テーブル410と、第2テーブル430と、第3テーブル450とを備えている。図4は、プロファイル管理部の記憶構造の一例を示す説明図である。
第1テーブル410は、図4(a)に示すように、項目として、条件ID411と、XPathIDの集合412と、XPathID間の論理演算子413とを備えている。
条件ID411は、ユーザから指定された検索条件の識別情報を示す項目である。条件IDは、例えば、「1」、「2」、「3」等の数字、あるいは、文字および記号で示される。
XPathIDの集合412は、ユーザから指定された検索条件に用いられたXPath式を分割したシングルXPathの識別情報(XPathID)を示す項目である。XPathIDは、例えば、「1」、「2」、「3」等の数字、あるいは、文字および記号で示される。
XPathID間の論理演算子413は、ユーザから指定された検索条件に用いられた論理演算子を示す項目である。論理演算子は、例えば、「XXX」、「YYY」、「ZZZ」等の文字、あるいは、数字および記号で示される。ここで、図示された「XXX」、「YYY」、「ZZZ」を、例えば、それぞれ、「OR(論理和)」、「論理演算子なし」、「AND(論理積)」としてもよい。
第2テーブル430は、図4(b)に示すように、項目として、XPathID431と、シングルXPath432とを備えている。
XPathID431は、問い合わせパースモジュール12で分割されたシングルXPathに対してデータ抽出モジュール13で付与されたXPathIDを示す項目である。シングルXPath432は、XPathIDを付与されたシングルXPathを示す項目である。
前記した第1テーブル410および第2テーブル430は、以下のようにして作成される。例えば、ユーザが条件を入力すると、フィルタエンジン10は、次のような検索条件を含むXPath式を生成する。
/item/[contains(title/text(), "ABC") or contains(body/text(), "XYZ")]
そして、フィルタエンジン10は、この検索条件に、条件ID「1」を付与し、シングルXPathに分解する。
/item/title[contains(text(), "ABC")]
/item/body[contains(text(), "XYZ")]
そして、各々にXPathIDとして、「1」および「2」を付与して、第1テーブル410と、第2テーブル430に格納する。最後に、論理演算子「or」に相当する「XXX」を第1テーブル410に格納する。
第3テーブル450は、図4(c)に示すように、項目として、XPath式451と、キーワードインデックス452とを備えている。
XPath式451は、シングルXPathに含まれるテキスト値タグを含む項目である。テキスト値タグは、例えば、「title」、「body」、「date」等を含み、どのタグ名の後に続くタグであるのかを示す情報も含んでいる。
キーワードインデックス452は、XPath式451に格納されるテキスト値タグに対応するインデックスを示す項目である。キーワードインデックスは、例えば、「Index1」、「Index2」、「Index3」等である。
なお、第3テーブル450は、個人プロファイルの登録とは別に予め作成されることもある。
<キーワードインデックス管理モジュール>
キーワードインデックス管理モジュール16は、図2に示すように、キーワードインデックス作成手段161と、キーワードインデックス追加手段162と、キーワードインデックス削除手段163とを備えている。
<<キーワードインデックス作成手段>>
キーワードインデックス作成手段161は、問い合わせパースモジュール12で抽出された述語で指定されるテキスト値に基づいて、XMLデータに対するキーワードの適合判定を行うための関数であるキーワードインデックスを作成するものである。
また、キーワードインデックス作成手段161は、問い合わせパースモジュール12から問い合わせがあった場合に、キーワードインデックスがプロファイル管理部15に既に登録されているか(キーワードインデックスが存在するか)否かを判定する。
キーワードインデックス作成手段161は、個人プロファイルの追加命令があり、かつ、キーワードインデックスが存在する場合には、追加命令をキーワードインデックス追加手段162に出力する。
キーワードインデックス作成手段161は、個人プロファイルの追加命令があり、かつ、キーワードインデックスが存在しない場合には、タグ名を受け付け、受け付けたタグ名を対象として、キーワードインデックスを作成し、作成したキーワードインデックスへの問い合わせパースモジュール12で抽出された述語で指定されるテキスト値の追加命令をキーワードインデックス追加手段162に出力する。
また、キーワードインデックス作成手段161は、個人プロファイルの削除命令があり、かつ、キーワードインデックスが存在する場合には、問い合わせパースモジュール12で抽出された述語で指定されるテキスト値の削除命令をキーワードインデックス削除手段163に出力する。
キーワードインデックス作成手段161は、プロファイル管理部15に、例えば、図5に示すように、Index1用テーブル510と、Index2用テーブル530と、Index3用テーブル550とを作成する。なお、これらのテーブルは、キーワードインデックスを視覚化したものに相当する。
Index1用テーブル510は、図5(a)に示すように、項目として、テキスト値511と、XPathID512とを備えている。
テキスト値511は、キーワードインデックスが「Index1」であるテキスト値タグに指定されたテキスト値を示す項目である。
XPathID512は、キーワードインデックスが「Index1」であるテキスト値タグを含むシングルXPathに付与されているXPathIDを示す項目である。
また、Index2用テーブル530は、図5(b)に示すように、項目として、テキスト値531と、XPathID532とを備えている。
さらに、Index3用テーブル550は、図5(c)に示すように、項目として、テキスト値551と、XPathID552とを備えている。
Index2用テーブル530およびIndex3用テーブル550は、キーワードインデックスが「Index2」または「Index3」である点を除いて、Index1用テーブル510と同様なので、説明を省略する。
これらIndex1用テーブル510と、Index2用テーブル530と、Index3用テーブル530とは、固定的なものではなく、追加命令によって2行目が追加されたり、削除命令によって1行目が削除されたりするものである。これらテーブルを特に区別することなく指す場合には、「キーワードインデックス」と呼ぶ場合もある。
また、図5(d)に示す評価用テーブル570は、プロファイル管理部15のメモリに格納されるものである。この評価用テーブル570は、前記したデータ抽出モジュール13(図2参照)によって、作成されるものである。評価用テーブル570は、図5(d)に示すように、項目として、XPathID571と、一次判定用フラグ572とを備えている。XPathID571は、以下の処理の結果として格納される情報を示す項目である。すなわち、データ抽出モジュール13は、入力されたXMLデータの構造情報からテキスト値を抽出した場合に、図5(a)に示すキーワードインデックス(Index1用テーブル510)へ、そのテキスト値を入力する。そのテキスト値に“ABC”が含まれていれば、XPathIDとして「1」および「3」を特定する。そして、データ抽出モジュール13は、特定したXPathIDを、XPathID571の項目に格納する。そして、格納されたときに、一次判定用フラグ572に「○」が格納される。この一次判定用フラグ572は、XPathIDがメモリに一次記憶されたことを示す項目であり、格納されたことを示す情報は、記号のほかに、「0」、「1」等の数字または文字を用いてもよい。
図2に戻って、キーワードインデックス管理モジュール16の説明を続ける。
<<キーワードインデックス追加手段>>
キーワードインデックス追加手段162は、個人プロファイルをプロファイル管理部15に追加する命令である追加命令が入力されたときに、問い合わせパースモジュール12で抽出された述語に基づいて、キーワードインデックス作成手段161で作成されたキーワードインデックスまたはプロファイル管理部15に記憶されているキーワードインデックスに、述語で指定されるテキスト値と、XPathIDとの組を追加するものである。
具体的には、キーワードインデックス追加手段162は、キーワードインデックス作成手段161から追加命令を取得した場合に、テキスト値とXPathIDとの組を、キーワードインデックスに追加する。
<<キーワードインデックス削除手段>>
キーワードインデックス削除手段163は、個人プロファイルをプロファイル管理部15から削除する命令である削除命令が入力されたときに、問い合わせパースモジュール12で抽出された述語に基づいて、プロファイル管理部15に記憶されているキーワードインデックスから、述語で指定されるテキスト値と、XPathIDとの組を削除するものである。具体的には、キーワードインデックス削除手段163は、キーワードインデックス作成手段161から削除命令を取得した場合に、テキスト値とXPathIDとの組を、キーワードインデックスから削除する。
また、キーワードインデックス削除手段163は、テキスト値とXPathIDとの組が削除されたキーワードインデックスに、まだ他にテキスト値が存在するか否かを判別し、テキスト値が存在しない場合に、当該キーワードインデックスを削除する。なお、テキスト値が存在する場合には、当該キーワードインデックスを削除しない。
なお、前記した各モジュール11〜14,16は、CPUがHDDに格納された所定のプログラムをRAMに展開して実行することにより実現されるものである。
[フィルタエンジンの動作]
<個人プロファイルの追加>
図2に示したフィルタエンジン10の動作について図6を参照(適宜図2参照)して説明する。図6は、図2に示したフィルタエンジンによる個人プロファイルの追加を示すフローチャートである。
フィルタエンジン10は、問い合わせパースモジュール12によって、個人プロファイルとして、XPath式を読み込み、構造を解析し、解析結果として構造情報を得る(ステップS1)。そして、フィルタエンジン10は、問い合わせパースモジュール12によって、XPath式において、テキスト値を指定した述語が存在するか否かを判定する(ステップS2:述語抽出ステップ)。
テキスト値を指定した述語が存在する場合、すなわち、述語を抽出できた場合(ステップS2:Yes)、フィルタエンジン10は、問い合わせパースモジュール12によって、述語が指定されているタグを受け付け、受け付けたタグとその指定されたテキスト値をキーワードインデックス管理モジュール16に出力する。
例えば、以下に示すXPath式の場合には、問い合わせパースモジュール12は、/item/titleと"ABC"とをキーワードインデックス管理モジュール16に出力する。
/item/title[contains(text(), "ABC")]
キーワードインデックス管理モジュール16は、キーワードインデックス作成手段161によって、キーワードインデックスが存在するか否かを判定する(ステップS3)。キーワードインデックスが存在する場合(ステップS3:Yes)、キーワードインデックス管理モジュール16は、キーワードインデックス追加手段162によって、テキスト値とXPathIDとの組を、キーワードインデックスに追加する(ステップS4)。ステップS4に続いて、フィルタエンジン10は、問い合わせパースモジュール12によって、個人プロファイルの構造情報をプロファイル管理部15へ格納し(ステップS5)、処理を終了する。
一方、キーワードインデックスが存在しない場合(ステップS3:No)、キーワードインデックス管理モジュール16は、キーワードインデックス作成手段161によって、タグ名を受け付け、受け付けたタグ名を対象として、キーワードインデックスを作成し(ステップS6)、ステップS4に進む。また、構造を解析したXPath式において、テキスト値を指定した述語が存在しない場合、すなわち、述語を抽出できない場合(ステップS2:No)、フィルタエンジン10は、ステップS5に進む。
<XMLデータの抽出>
図2に示したフィルタエンジン10の動作について図7を参照(適宜図2参照)して説明する。図7は、図2に示したフィルタエンジンによるXMLデータの抽出を示すフローチャートである。
フィルタエンジン10は、XMLパースモジュール11によって、XMLデータを先頭から読み込み、構造情報を順次抽出し(ステップS11)、それをデータ抽出モジュール13へ送信する。そして、フィルタエンジン10は、ステップS11で構造情報等が抽出される度に、データ抽出モジュール13によって、その構造情報を受け付け、受け付けた構造情報がXMLデータの終端であるか否かを判定する(ステップS12)。
受け付けた構造情報がXMLデータの終端ではない場合(ステップS12:No)、フィルタエンジン10は、データ抽出モジュール13によって、DFA等のオートマトン制御等のパス処理を行う(ステップS13)。そして、データ抽出モジュール13は、受け付けた構造情報がテキスト値タグであるか否かを判定する(ステップS14)。受け付けた構造情報がテキスト値タグではない場合(ステップS14:No)、データ抽出モジュール13は、ステップS11に戻る。一方、受け付けた構造情報がテキスト値タグである場合(ステップS14:Yes)、データ抽出モジュール13は、そのテキスト値タグ(受け付けたXMLデータの構造情報)に関するキーワードインデックスがプロファイル管理部15に存在するか否かを判別する(ステップS15)。
キーワードインデックスが存在しない場合(ステップS15:No)、そのテキスト値(XMLデータの構造情報)に対応するXPath式が存在しないので、フィルタエンジン10は、ステップS11に戻る。一方、キーワードインデックスが存在する場合(ステップS15:Yes)、そのテキスト値(XMLデータの構造情報)に対応するXPath式(シングルXPath)が存在するので、データ抽出モジュール13は、そのテキスト値(XMLデータの構造情報)を、当該キーワードインデックスに入力し、対応するXPathIDを特定する(ステップS16)。そして、データ抽出モジュール13は、特定したXPathIDをプロファイル管理部15のメモリに一次的に保存し(ステップS17)、ステップS11に戻る。
ステップS12において、受け付けた構造情報がXMLデータの終端である場合(ステップS12:Yes)、フィルタエンジン10は、データ抽出モジュール13によって、プロファイル管理部15に一次格納されたXPathIDを評価し(ステップS18)、処理を終了する。
この評価により、一次記憶されたXPathIDの中から、ユーザの指定する検索条件(登録された個人プロファイル)に合致するXPathIDが見つけ出される。そして、データ抽出モジュール13は、XPathIDに基づく抽出結果(部分XMLデータ)を、データ変換モジュール14へ出力し、データ変換モジュール14は、抽出結果をユーザの希望する形式へ変換し、変換結果であるフィルタされたXMLデータを出力する。
<個人プロファイルの削除>
図2に示したフィルタエンジン10の動作について図8を参照(適宜図2参照)して説明する。図8は、図6に示したフィルタエンジンによる個人プロファイルの削除を示すフローチャートである。
フィルタエンジン10は、問い合わせパースモジュール12によって、個人プロファイルとして、XPath式を受け取る。具体的には、例えば、次のようなXPath式を受け取る。
/item/title[contains(text(), "ABC")]
そして、問い合わせパースモジュール12は、受け取ったXPath式の構造を解析し、解析結果として構造情報を得る(ステップS21)。そして、フィルタエンジン10は、問い合わせパースモジュール12によって、XPath式において、テキスト値を指定した述語が存在するか否かを判定する(ステップS22:述語抽出ステップ)。テキスト値を指定した述語が存在する場合、すなわち、述語を抽出できた場合(ステップS22:Yes)、フィルタエンジン10は、問い合わせパースモジュール12によって、述語が指定されている「titleタグ」を受け付け、受け付けた「titleタグ」をキーワードインデックス管理モジュール16に出力する。
キーワードインデックス管理モジュール16は、キーワードインデックス作成手段161によって、キーワードインデックスが存在するか否かを判定する(ステップS23)。キーワードインデックスが存在する場合(ステップS23:Yes)、キーワードインデックス管理モジュール16は、キーワードインデックス削除手段163によって、テキスト値とXPathIDとの組を、キーワードインデックスから削除する(ステップS24)。
次に、キーワードインデックス管理モジュール16は、キーワードインデックス削除手段163によって、当該キーワードインデックスにテキスト値が存在するか否かを判別する(ステップS25)。当該キーワードインデックスにテキスト値が存在する場合(ステップS25:Yes)、問い合わせパースモジュール12は、解析したXPath式の構造情報を、プロファイル管理部15から削除し(ステップS26)、処理を終了する。
ステップS25において、キーワードインデックスにテキスト値が存在しない場合(ステップS25:No)、キーワードインデックス管理モジュール16は、キーワードインデックス削除手段163によって、当該キーワードインデックスを削除し(ステップS27)、ステップS26に進む。
ステップS22およびステップS23において、テキスト値を指定した述語が存在しない場合、すなわち、述語を抽出できない場合(ステップS22:No)、または、キーワードインデックスが存在しない場合(ステップS23:No)、フィルタエンジン10は、ステップS26に進む。
なお、フィルタエンジン10は、一般的なコンピュータに、前記した各ステップを実行させるXPath処理プログラムを実行することで実現することもできる。これらのプログラムは、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
第1実施形態によれば、フィルタエンジン10は、キーワードインデックスを用いて、複数キーワードのマッチングを行うことができる。そのため、XMLデータにおけるテキスト値をバックトラックする必要がないので、従来よりも計算量を抑えることができる。その結果、ユーザから登録されるXPath式の増加や、キーワードを指定した述語数の増加に関わらず、XPath式処理における文字列の述語処理を高速化することが可能である。
(第2実施形態)
[フィルタエンジンの構成]
図9は、本発明の第2実施形態に係るフィルタエンジンの一例を示す機能ブロック図である。フィルタエンジン10Aは、図9に示すように、形態素解析モジュール20を備える点を除いて、図2に示したフィルタエンジン10と同様の構成なので、同一の構成には同一の符号を付して説明を省略する。
形態素解析モジュール20は、個人プロファイルとして入力されたXPath式に含まれるテキスト値を単語に区切って、単語区切り付きテキスト値を生成するものである。このため、形態素解析モジュール20は、入力されたテキストを形態素解析する。
例えば、形態素解析モジュール20は、テキスト値“ABC株式会社”が入力されると、テキスト値“ABC株式会社”を、“ABC”、“株式”、“会社”という3つの単語に区切る。そして、形態素解析モジュール20は、区切った単語の間に、単語区切り文字を挿入してから連結し、連結されたテキスト値の先頭および末尾に単語区切り文字を挿入する。これにより、単語区切り付きテキスト値が生成される。ここで、単語区切り文字は、任意の文字あるいは記号や数字である。
例えば、単語区切り文字を「¥tab」とした場合には、形態素解析モジュール20は、テキスト値“ABC株式会社”から、単語区切り付きテキスト値“¥tabABC¥tab株式¥tab会社¥tab”を生成することとなる。
なお、当然ながら、形態素解析モジュール20に入力されるテキストは文章でもよい。例えば、形態素解析モジュール20は、テキスト値“4月よりABC株式会社 XYZサービス開始”から、単語区切り付きテキスト値“¥tab4¥tab月¥tabより¥tabABC¥tab株式¥tab会社¥tabXYZ¥tabサービス¥tab開始¥tab”を生成することもできる。
なお、形態素解析モジュール20は、CPUがHDDに格納された所定のプログラムをRAMに展開して実行することにより実現されるものであり、図示は省略するが形態素解析用の辞書を有している。
フィルタエンジン10AのうちXMLパースモジュール11とデータ変換モジュール14とを除く各部は、入力されたXPath式に含まれるテキスト値そのものではなく、単語区切りつきテキスト値を処理対象とすることとなる。
したがって、キーワードインデックス作成手段161は、個人プロファイルの追加命令があり、かつ、キーワードインデックスが存在する場合には、テキスト値を形態素解析モジュール20に出力し、形態素解析モジュール20から単語区切り付きテキスト値を取得してから、追加命令をキーワードインデックス追加手段162に出力する。
また、キーワードインデックス作成手段161は、個人プロファイルの追加命令があり、かつ、キーワードインデックスが存在しない場合には、テキスト値を形態素解析モジュール20に出力し、形態素解析モジュール20から単語区切り付きテキスト値を取得してから、キーワードインデックスを作成し、追加命令をキーワードインデックス追加手段162に出力する。
また、キーワードインデックス作成手段161は、個人プロファイルの削除命令があり、かつ、キーワードインデックスが存在する場合には、テキスト値を形態素解析モジュール20に出力し、形態素解析モジュール20から単語区切り付きテキスト値を取得してから、削除命令をキーワードインデックス削除手段163に出力する。
また、キーワードインデックス追加手段162は、プロファイル管理部15に記憶されているキーワードインデックスに、単語区切り付きテキスト値と、XPathIDとの組を追加する。
また、キーワードインデックス削除手段163は、プロファイル管理部15に記憶されているキーワードインデックスから、単語区切り付きテキスト値と、XPath式識別情報との組を削除する。
また、データ抽出モジュール13は、XMLパースモジュール11で抽出された構造情報で指定されるテキスト値を形態素解析モジュール20に出力し、形態素解析モジュール20から単語区切り付きテキスト値を取得してから、プロファイル管理部15に記憶されている、対応したキーワードインデックスに基づいて、単語区切り付きテキスト値に対応するXPathIDを特定する。
[フィルタエンジンの動作]
<個人プロファイルの追加>
図9に示したフィルタエンジン10Aの動作について図10を参照(適宜図9参照)して説明する。図10は、図9に示したフィルタエンジンによる個人プロファイルの追加を示すフローチャートである。フィルタエンジン10Aが実行するステップS31〜ステップS33の各処理は、図6のフローチャートに示したステップS1〜ステップS3の各処理と同一なので説明を省略する。
ステップS33の判定処理の結果、キーワードインデックスが存在する場合(ステップS33:Yes)、フィルタエンジン10Aのキーワードインデックス管理モジュール16は、キーワードインデックス作成手段161によって、テキスト値を形態素解析モジュール20に出力する。そして、形態素解析モジュール20は、入力されたテキスト値を単語に区切って、単語区切り付きテキスト値を生成し(ステップS34)、キーワードインデックス作成手段161に出力する。
次に、フィルタエンジン10Aのキーワードインデックス管理モジュール16は、キーワードインデックス追加手段162によって、単語区切り付きテキスト値とXPathIDとの組を、キーワードインデックスに追加する(ステップS35)。ステップS35に続いて、フィルタエンジン10Aは、問い合わせパースモジュール12によって、個人プロファイルの構造情報をプロファイル管理部15へ格納し(ステップS36)、処理を終了する。
一方、キーワードインデックスが存在しない場合(ステップS33:No)、フィルタエンジン10Aのキーワードインデックス管理モジュール16は、キーワードインデックス作成手段161によって、タグ名を受け付け、受け付けたタグ名を対象として、キーワードインデックスを作成し(ステップS37)、ステップS34に進む。また、構造を解析したXPath式において、テキスト値を指定した述語が抽出できない場合(ステップS32:No)、フィルタエンジン10Aは、ステップS36に進む。
<XMLデータの抽出>
図9に示したフィルタエンジン10Aの動作について図11を参照(適宜図9参照)して説明する。図11は、図9に示したフィルタエンジンによるXMLデータの抽出を示すフローチャートである。フィルタエンジン10Aが実行するステップS41〜ステップS45の各処理は、図7のフローチャートに示したステップS11〜ステップS15の各処理と同一なので説明を省略する。
ステップS45において、フィルタエンジン10Aは、データ抽出モジュール13によって、XMLパースモジュール11で受け付けたXMLデータの構造情報(テキスト値タグ)に関するキーワードインデックスが存在しないと判定した場合(ステップS45:No)、ステップS41に戻る。
一方、キーワードインデックスが存在する場合(ステップS45:Yes)、データ抽出モジュール13は、テキスト値を形態素解析モジュール20に出力する。そして、形態素解析モジュール20は、入力されたテキスト値を単語に区切って、単語区切り付きテキスト値を生成し(ステップS46)、データ抽出モジュール13に出力する。
次に、フィルタエンジン10Aは、データ抽出モジュール13によって、単語区切り付きテキスト値を当該キーワードインデックスに入力し、対応するXPathIDを特定する(ステップS47)。続いて、フィルタエンジン10Aが実行するステップS48およびステップS49の各処理は、図7のフローチャートに示したステップS17およびステップS18の各処理と同一なので説明を省略する。
<個人プロファイルの削除>
図9に示したフィルタエンジン10Aの動作について図12を参照(適宜図9参照)して説明する。図12は、図9に示したフィルタエンジンによる個人プロファイルの削除を示すフローチャートである。フィルタエンジン10Aが実行するステップS51〜ステップS53の各処理は、図8のフローチャートに示したステップS21〜ステップS23の各処理と同一なので説明を省略する。
ステップS53の判定処理の結果、キーワードインデックスが存在する場合(ステップS53:Yes)、フィルタエンジン10Aのキーワードインデックス管理モジュール16は、キーワードインデックス作成手段161によって、テキスト値を形態素解析モジュール20に出力する。そして、形態素解析モジュール20は、入力されたテキスト値を単語に区切って、単語区切り付きテキスト値を生成し(ステップS54)、キーワードインデックス作成手段161に出力する。
次に、フィルタエンジン10Aのキーワードインデックス管理モジュール16は、キーワードインデックス削除手段163によって、単語区切り付きテキスト値とXPathIDとの組を、キーワードインデックスから削除する(ステップS55)。
続いて、フィルタエンジン10Aが実行するステップS56〜ステップS58の各処理は、図8のフローチャートに示したステップS25〜ステップS27の各処理と同一なので説明を省略する。なお、ステップS52およびステップS53において、テキスト値を指定した述語が存在しない場合(ステップS52:No)、または、キーワードインデックスが存在しない場合(ステップS53:No)、フィルタエンジン10Aは、ステップS57に進む。
第2実施形態によれば、フィルタエンジン10Aは、形態素解析モジュール20によって、個人プロファイルとして入力されたXPath式から、意味が考慮された単語区切り付きテキスト値を生成する。したがって、キーワードの単純な前方一致や後方一致等の誤った部分一致を防止することができる。その結果、キーワードの適合判定精度を高めることが可能となる。
(第3実施形態)
[フィルタエンジンの構成]
図13は、本発明の第3実施形態に係るフィルタエンジンの一例を示す機能ブロック図である。フィルタエンジン10Bは、図13に示すように、インデックス指定パースモジュール30を備える点を除いて、図9に示したフィルタエンジン10Aと同様の構成なので、同一の構成には同一の符号を付して説明を省略する。
インデックス指定パースモジュール30は、キーワードインデックスを追加あるいは削除するタグを指定するためのタグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得し、その構造情報から抽出されたパスに対応するキーワードインデックスが、プロファイル管理部15に記憶されているか否かを判別するものである。判定結果は、キーワードインデックス管理モジュール16に出力される。なお、インデックス指定パースモジュール30は、XPath式を処理対象とする。
インデックス指定パースモジュール30が、キーワードインデックスは、プロファイル管理部15に記憶されていないと判別した場合には、キーワードインデックス作成手段161は、その抽出されたパスに対応するキーワードインデックスを作成する。
また、インデックス指定パースモジュール30が、キーワードインデックスは、プロファイル管理部15に記憶されていると判別した場合には、キーワードインデックス削除手段163は、その抽出されたパスに対応するキーワードインデックスを削除する。
また、データ抽出モジュール13は、キーワードインデックスが存在しない場合にも、受け付けたXMLデータの構造情報と、プロファイル管理部15の格納情報(例えば、第2テーブル430(図4参照)等)を参照して、テキスト値タグを指定した全キーワードを照合することにより、XPathIDを特定する。
[フィルタエンジンの動作]
<タグ指定の追加>
図13に示したフィルタエンジン10Bの動作について図14を参照(適宜図13参照)して説明する。図14は、図13に示したフィルタエンジンによるタグ指定の追加を示すフローチャートである。
フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得する(ステップS61)。そして、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、構造情報から抽出されたパスに対応するキーワードインデックスが存在するか否かを判別する(ステップS62)。つまり、インデックス指定パースモジュール30は、該当するキーワードインデックスがプロファイル管理部15に記憶されているか否かを判別する。
キーワードインデックスが存在する場合(ステップS62:Yes)、フィルタエンジン10Bは、処理を終了する。一方、キーワードインデックスが存在しない場合(ステップS62:No)、フィルタエンジン10Bは、キーワードインデックス作成手段161によって、キーワードインデックスを作成する(ステップS63)。そして、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、構造を解析したXPath式をプロファイル管理部15に格納し(ステップS64)、処理を終了する。
なお、キーワードインデックスを作成するためのXPath式がプロファイル管理部15に予め格納されている場合、ステップS61において、インデックス指定パースモジュール30は、そのXPath式を読み込み、その構造を解析し、構造情報を取得するようにしてもよい。
<個人プロファイルの追加>
図13に示したフィルタエンジン10Bの動作について図15を参照(適宜図13参照)して説明する。図15は、図13に示したフィルタエンジンによる個人プロファイルの追加を示すフローチャートである。ここでは、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式が入力されている、すなわち、キーワードインデックスが作成済みであるものとする。
フィルタエンジン10Bが実行するステップS71〜ステップS76の各処理は、図10のフローチャートに示したステップS31〜ステップS36の各処理と同様なので説明を省略する。異なる点は以下の通りである。すなわち、ステップS73の判定処理の結果、テキスト値を指定した述語に関するキーワードインデックスが存在しない場合(ステップS73:No)、フィルタエンジン10Bは、ステップS76に進む。つまり、この場合には、フィルタエンジン10Bは、キーワードインデックスを作成することなく、問い合わせパースモジュール12によって、解析したXPath式の構造情報をプロファイル管理部15に格納し(ステップS76)、処理を終了する。
<XMLデータの抽出>
図13に示したフィルタエンジン10Bの動作について図16を参照(適宜図13参照)して説明する。図16は、図13に示したフィルタエンジンによるXMLデータの抽出を示すフローチャートである。ここでは、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式が入力されている、すなわち、キーワードインデックスが作成済みであるものとする。フィルタエンジン10Bが実行するステップS81〜ステップS89の各処理は、図11のフローチャートに示したステップS41〜ステップS49の各処理と同様なので説明を省略する。異なる点は以下の通りである。すなわち、ステップS85の判定処理の結果、テキスト値タグ(XMLパースモジュール11で受け付けたXMLデータの構造情報)に関するキーワードインデックスが存在しない場合(ステップS85:No)、フィルタエンジン10Bは、ステップS90に進む。
ステップS90において、フィルタエンジン10Bは、データ抽出モジュール13によって、テキスト値(受け付けたXMLデータの構造情報)と、プロファイル管理部15に格納してあるキーワードのうち、そのテキスト値タグを指定した全キーワードとを照合する。そして、フィルタエンジン10Bは、データ抽出モジュール13によって、該当する各キーワードを指定したXPathIDを特定し(ステップS91)、ステップS88に進む。
<個人プロファイルの削除>
図13に示したフィルタエンジン10Bの動作について図17を参照(適宜図13参照)して説明する。図17は、図13に示したフィルタエンジンによる個人プロファイルの削除を示すフローチャートである。ここでは、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式が入力されている、すなわち、キーワードインデックスが作成済みであるものとする。
フィルタエンジン10Bが実行するステップS101〜ステップS106の各処理は、図12のフローチャートに示したステップS51〜ステップS57の各処理と同様なので説明を省略する。ただし、ステップS56に相当する判定処理はない。つまり、フィルタエンジン10Bは、問い合わせパースモジュール12によって、テキスト値とXPathIDとの組が削除されたキーワードインデックスにテキスト値が存在するか否かを判定することなく、解析したXPath式の構造情報を、プロファイル管理部15から削除する(ステップS106)。
<タグ指定の削除>
図13に示したフィルタエンジン10Bの動作について図18を参照(適宜図13参照)して説明する。図18は、図13に示したフィルタエンジンによるタグ指定の削除を示すフローチャートである。
フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得する(ステップS111)。そして、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、構造情報から抽出されたパスに対応するキーワードインデックスが存在するか否かを判別する(ステップS112)。
キーワードインデックスが存在しない場合(ステップS112:No)、フィルタエンジン10Bは、処理を終了する。一方、キーワードインデックスが存在する場合(ステップS112:Yes)、フィルタエンジン10Bは、キーワードインデックス削除手段163によって、キーワードインデックスを削除する(ステップS113)。そして、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、構造を解析したXPath式をプロファイル管理部15から削除し(ステップS114)、処理を終了する。
なお、キーワードインデックスを削除するためのXPath式がプロファイル管理部15に予め格納されている場合、ステップS111において、インデックス指定パースモジュール30は、そのXPath式を読み込み、その構造を解析し、構造情報を取得するようにしてもよい。
また、インデックス指定パースモジュール30に、形態素解析をするか否かを示す情報を入力し、その情報に基づいて、形態素解析モジュール20の動作を制御するように構成してもよい。また、インデックス指定パースモジュール30から、キーワードインデックス作成手段161の動作を制御するための情報を入力するように構成してもよい。さらに、インデックス指定パースモジュール30から、予め作成されたキーワードインデックスを入力してプロファイル管理部15に登録するように構成してもよい。
第3実施形態によれば、フィルタエンジン10Bは、インデックス指定パースモジュール30を備えているので、個人プロファイルのXPath式において、キーワードインデックスを適用する箇所や、テキスト値を加工してキーワードインデックスを適用する箇所を指定することができる。その結果、入力されたXMLデータの抽出処理を形態素解析などの加工を伴わず実行できることから高速化することができる。
以上、本発明の各実施形態について説明したが、本発明はこれらに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、XMLデータとして例示したNewsMLは一例であり、XMLデータがNewsMLに限定されることはない。例えば、XMLデータがNITF(News Industry Text Format)データ等でもよい。
また、フィルタエンジン10を構成する装置は、1台に限定されることはなく、複数の装置に機能を分散配置してもよい。例えば、フィルタ処理を実行する装置(XMLパースモジュール11、データ抽出モジュール13、および、データ変換モジュール14)と、問い合わせパースモジュール12、プロファイル管理部15、キーワードインデックス管理モジュール16等を、別々の装置として構成してもよい。これにより、各装置への負荷が分散され、高速な処理が実現可能となる。
XPath式処理方法を実行するフィルタエンジンの説明図である。 第1実施形態に係るフィルタエンジンの構成例を示す機能ブロック図である。 図2に示したプロファイル管理部のメモリ上で構成されるオートマトンのデータの一例を示す説明図である。 図2に示したプロファイル管理部に記憶されたデータベースの一例を示す説明図である。 図2に示したプロファイル管理部に記憶されたデータベースの一例を示す説明図である。 図2に示したフィルタエンジンによる個人プロファイルの追加処理を示すフローチャートである。 図2に示したフィルタエンジンによるXMLデータの抽出処理を示すフローチャートである。 図2に示したフィルタエンジンによる個人プロファイルの削除処理を示すフローチャートである。 第2実施形態に係るフィルタエンジンの構成例を示す機能ブロック図である。 図9に示したフィルタエンジンによる個人プロファイルの追加処理を示すフローチャートである。 図9に示したフィルタエンジンによるXMLデータの抽出処理を示すフローチャートである。 図9に示したフィルタエンジンによる個人プロファイルの削除処理を示すフローチャートである。 第3実施形態に係るフィルタエンジンの構成例を示す機能ブロック図である。 図13に示したフィルタエンジンによるタグ指定の追加処理を示すフローチャートである。 図13に示したフィルタエンジンによる個人プロファイルの追加処理を示すフローチャートである。 図13に示したフィルタエンジンによるXMLデータの抽出処理を示すフローチャートである。 図13に示したフィルタエンジンによる個人プロファイルの削除処理を示すフローチャートである。 図13に示したフィルタエンジンによるタグ指定の削除処理を示すフローチャートである。
符号の説明
10(10A,10B) フィルタエンジン
11 XMLパースモジュール
12 問い合わせパースモジュール
13 データ抽出モジュール
14 データ変換モジュール
15 プロファイル管理部
16 キーワードインデックス管理モジュール
161 キーワードインデックス作成手段
162 キーワードインデックス追加手段
163 キーワードインデックス削除手段
20 形態素解析モジュール
30 インデックス指定パースモジュール

Claims (8)

  1. 情報提供者からユーザへ提供される所定の情報を示すXMLデータを、前記ユーザの望む情報の検索条件である個人プロファイルとして入力されたXPath式に基づいて、前記ユーザごとに予め定められた形式のXMLデータに変換する処理を実行するXPath式処理装置であって、
    前記個人プロファイルとして入力されたXPath式の構造を解析し、前記XPath式から、前記XPath式に含まれるテキスト値を指定した述語を含む条件を抽出する問い合わせパースモジュールと、
    前記テキスト値に基づいて、前記XMLデータに対するキーワードの適合判定を行うための関数であるキーワードインデックスを作成するキーワードインデックス作成手段と、
    前記条件ごとに前記個人プロファイルを分割して生成されるシングルXPath式を識別する情報であるXPath式識別情報と、前記個人プロファイルに含まれるXPath式識別情報間の論理演算子と、前記キーワードインデックスとを関連付けて記憶するプロファイル管理部と、
    前記個人プロファイルを前記プロファイル管理部に追加する命令である追加命令が入力されたときに、前記問い合わせパースモジュールで抽出された条件に基づいて、前記キーワードインデックス作成手段で作成されたキーワードインデックスまたは前記プロファイル管理部に記憶されているキーワードインデックスに、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を追加するキーワードインデックス追加手段と、
    前記個人プロファイルを前記プロファイル管理部から削除する命令である削除命令が入力されたときに、前記問い合わせパースモジュールで抽出された条件に基づいて、前記プロファイル管理部に記憶されているキーワードインデックスから、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を削除するキーワードインデックス削除手段と、
    入力されたXMLデータの構造を解析し、解析結果としての情報である構造情報を抽出するXMLパースモジュールと、
    前記XMLパースモジュールで抽出された構造情報のうち、テキスト値タグに対応したキーワードインデックスに基づいて、前記テキスト値タグで指定されるテキスト値に対応するXPath式識別情報を特定し、特定されたXPath式識別情報と前記XPath式識別情報間の論理演算子とに基づいて、前記個人プロファイルの適合判定を行うデータ抽出モジュールと、
    前記データ抽出モジュールで適合判定された個人プロファイルに基づいて、前記入力されたXMLデータを、予め定められた形式のXMLデータへ変換するデータ変換モジュールと、
    を備えることを特徴とするXPath式処理装置。
  2. 前記個人プロファイルとして入力されたXPath式に含まれるテキスト値を単語に区切って、単語区切り付きテキスト値を生成する形態素解析モジュールをさらに備え、
    前記キーワードインデックス追加手段は、前記プロファイル管理部に記憶されているキーワードインデックスに、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を追加し、
    前記キーワードインデックス削除手段は、前記プロファイル管理部に記憶されているキーワードインデックスから、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を削除し、
    前記データ抽出モジュールは、前記プロファイル管理部に記憶されているキーワードインデックスに基づいて、前記単語区切り付きテキスト値に対応するXPath式識別情報を特定することを特徴とする請求項1に記載のXPath式処理装置。
  3. 前記キーワードインデックスを追加あるいは削除するタグを指定するためのタグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得し、前記構造情報から抽出されたパスに対応するキーワードインデックスが、前記プロファイル管理部に記憶されているか否かを判別するインデックス指定パースモジュールをさらに備え、
    前記キーワードインデックス作成手段は、前記キーワードインデックスを前記プロファイル管理部に追加する命令が入力されたときに、前記インデックス指定パースモジュールで前記キーワードインデックスが前記プロファイル管理部に記憶されていないと判別された場合に、前記抽出されたパスに対応するキーワードインデックスを作成し、
    前記キーワードインデックス削除手段は、前記キーワードインデックスを前記プロファイル管理部から削除する命令が入力されたときに、前記インデックス指定パースモジュールで前記キーワードインデックスが前記プロファイル管理部に記憶されていると判別された場合に、前記抽出されたパスに対応するキーワードインデックスを削除することを特徴とする請求項1または請求項2に記載のXPath式処理装置。
  4. 情報提供者からユーザへ提供される所定の情報を示すXMLデータを、前記ユーザの望む情報の検索条件である個人プロファイルとして入力されたXPath式に基づいて、前記ユーザごとに予め定められた形式のXMLデータに変換する処理を実行するXPath式処理装置のXPath式処理方法であって、
    前記XPath式処理装置は、
    前記個人プロファイルとして入力されたXPath式の構造を解析し、前記XPath式から、前記XPath式に含まれるテキスト値を指定した述語を含む条件を抽出する述語抽出ステップと、
    前記テキスト値に基づいて、前記XMLデータに対するキーワードの適合判定を行うための関数であるキーワードインデックスを作成する作成ステップと、
    前記条件ごとに前記個人プロファイルを分割して生成されるシングルXPath式を識別する情報であるXPath式識別情報と、前記個人プロファイルに含まれるXPath式識別情報間の論理演算子と、前記キーワードインデックスとを関連付けて記憶するプロファイル管理部に、前記個人プロファイルを追加する命令である追加命令が入力されたときに、前記抽出された条件に基づいて、前記作成されたキーワードインデックスまたは前記プロファイル管理部に記憶されているキーワードインデックスに、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を追加する追加ステップと、
    前記個人プロファイルを前記プロファイル管理部から削除する命令である削除命令が入力されたときに、前記抽出された条件に基づいて、前記プロファイル管理部に記憶されているキーワードインデックスから、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を削除する削除ステップと、
    入力されたXMLデータの構造を解析し、解析結果としての情報である構造情報を抽出する構造情報抽出ステップと、
    前記抽出された構造情報のうち、テキスト値タグに対応したキーワードインデックスに基づいて、前記テキスト値タグで指定されるテキスト値に対応するXPath式識別情報を特定する識別情報特定ステップと、
    前記特定されたXPath式識別情報と前記XPath式識別情報間の論理演算子とに基づいて、前記XMLパースモジュールで抽出された構造情報に対する前記個人プロファイルの適合判定を行う適合判定ステップとを含んで実行することを特徴とするXPath式処理方法。
  5. 前記XPath式処理装置は、
    前記個人プロファイルとして入力されたXPath式に含まれるテキスト値を単語に区切って、単語区切り付きテキスト値を生成する生成ステップをさらに含んで実行し、
    前記追加ステップは、前記プロファイル管理部に記憶されているキーワードインデックスに、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を追加し、
    前記削除ステップは、前記プロファイル管理部に記憶されているキーワードインデックスから、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を削除し、
    前記識別情報特定ステップは、前記プロファイル管理部に記憶されているキーワードインデックスに基づいて、前記単語区切り付きテキスト値に対応するXPath式識別情報を特定することを特徴とする請求項4に記載のXPath式処理方法。
  6. 前記XPath式処理装置は、
    前記キーワードインデックスを追加あるいは削除するタグを指定するためのタグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得するステップと、
    前記取得された構造情報から抽出されたパスに対応するキーワードインデックスが、前記プロファイル管理部に記憶されているか否かを判別する判別ステップと、
    前記判別ステップで前記キーワードインデックスが前記プロファイル管理部に記憶されていないと判別された場合に、前記抽出されたパスに対応するキーワードインデックスを作成するステップと、
    前記判別ステップで前記キーワードインデックスが前記プロファイル管理部に記憶されていると判別された場合に、前記抽出されたパスに対応するキーワードインデックスを削除するステップとをさらに含んで実行することを特徴とする請求項4または請求項5に記載のXPath式処理方法。
  7. 請求項4乃至請求項6のいずれか一項に記載のXPath式処理方法をコンピュータに実行させることを特徴とするXPath式処理プログラム。
  8. 請求項7に記載のXPath式処理プログラムが記録されたことを特徴とする記録媒体。
JP2006074501A 2006-03-17 2006-03-17 XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体 Active JP4320022B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006074501A JP4320022B2 (ja) 2006-03-17 2006-03-17 XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006074501A JP4320022B2 (ja) 2006-03-17 2006-03-17 XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体

Publications (2)

Publication Number Publication Date
JP2007249773A JP2007249773A (ja) 2007-09-27
JP4320022B2 true JP4320022B2 (ja) 2009-08-26

Family

ID=38593971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006074501A Active JP4320022B2 (ja) 2006-03-17 2006-03-17 XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体

Country Status (1)

Country Link
JP (1) JP4320022B2 (ja)

Also Published As

Publication number Publication date
JP2007249773A (ja) 2007-09-27

Similar Documents

Publication Publication Date Title
EP1396799B1 (en) Content management system
US7293018B2 (en) Apparatus, method, and program for retrieving structured documents
US7293017B2 (en) Presentation-level content filtering for a search result
US7490078B2 (en) Stream data processing system and method for avoiding duplication of data process
US7107517B1 (en) Method for processing links and device for the same
JP4445509B2 (ja) 構造化文書検索システム及びプログラム
US8335779B2 (en) Method and apparatus for gathering, categorizing and parameterizing data
US20090112903A1 (en) Ontology data import/export method and apparatus
WO2006036487A2 (en) System and method for management of data repositories
JP3845046B2 (ja) 文書管理方法および文書管理装置
KR20090023613A (ko) 다차원 검색 시스템, 다차원 검색을 수행하는 컴퓨터 구현 방법 및 컴퓨터 실행가능 시스템
JP2011100403A (ja) 情報処理装置、情報抽出方法、プログラム及び情報処理システム
US20050050086A1 (en) Apparatus and method for multimedia object retrieval
JP2007011998A (ja) XPath式処理方法、XPath式処理装置、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体、ならびに、オートマトン
US20110270862A1 (en) Information processing apparatus and information processing method
JP4320022B2 (ja) XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体
KR100941971B1 (ko) 멀티미디어 검색을 위한 질의 표현 장치 및 방법
JP5426533B2 (ja) マルチメディアコンテンツを検索する方法及び装置
KR100933269B1 (ko) 색상 키워드를 이용한 검색 방법 및 시스템
KR102157336B1 (ko) 데이터베이스 관리시스템에서 json 데이터 저장 및 검색 방법
JP7272540B2 (ja) 情報提供システム、情報提供方法、及びデータ構造
JP2000322167A (ja) データ管理システムおよびデータ属性表示方法
JP4550876B2 (ja) 構造化文書検索システム及びプログラム
JP2008046850A (ja) 文書種類判別装置及び文書種類判別プログラム
KR20240012702A (ko) 정보분석을 지능화하는 협업 플랫폼 시스템

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090514

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

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

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

Free format text: PAYMENT UNTIL: 20120605

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4320022

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140605

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