JP4320022B2 - XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体 - Google Patents
XPath式処理装置、XPath式処理方法、XPath式処理プログラムおよびそのプログラムを記憶した記憶媒体 Download PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
さらに、キーワードインデックスを作成すべき個々のXPath式や、登録済みの個人プロファイルから削除すべきキーワードインデックスを予め指定しておけば、個人プロファイルの追加や削除、および、入力されるXMLデータからのキーワードの抽出処理を簡略化できるので、迅速に文字列の一致処理を実行することが可能となる。
前記個人プロファイルとして入力されたXPath式の構造を解析し、前記XPath式から、前記XPath式に含まれるテキスト値を指定した述語を含む条件を抽出する問い合わせパースモジュールと、前記テキスト値に基づいて、前記XMLデータに対するキーワードの適合判定を行うための関数であるキーワードインデックスを作成するキーワードインデックス作成手段と、前記条件ごとに前記個人プロファイルを分割して生成されるシングルXPath式を識別する情報であるXPath式識別情報と、前記個人プロファイルに含まれるXPath式識別情報間の論理演算子と、前記キーワードインデックスとを関連付けて記憶するプロファイル管理部と、前記個人プロファイルを前記プロファイル管理部に追加する命令である追加命令が入力されたときに、前記問い合わせパースモジュールで抽出された条件に基づいて、前記キーワードインデックス作成手段で作成されたキーワードインデックスまたは前記プロファイル管理部に記憶されているキーワードインデックスに、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を追加するキーワードインデックス追加手段と、前記個人プロファイルを前記プロファイル管理部から削除する命令である削除命令が入力されたときに、前記問い合わせパースモジュールで抽出された条件に基づいて、前記プロファイル管理部に記憶されているキーワードインデックスから、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を削除するキーワードインデックス削除手段と、入力されたXMLデータの構造を解析し、解析結果としての情報である構造情報を抽出するXMLパースモジュールと、前記XMLパースモジュールで抽出された構造情報のうち、テキスト値タグに対応したキーワードインデックスに基づいて、前記テキスト値タグで指定されるテキスト値に対応するXPath式識別情報を特定し、特定されたXPath式識別情報と前記XPath式識別情報間の論理演算子とに基づいて、前記個人プロファイルの適合判定を行うデータ抽出モジュールと、前記データ抽出モジュールで適合判定された個人プロファイルに基づいて、前記入力されたXMLデータを、予め定められた形式のXMLデータへ変換するデータ変換モジュールとを備えることを特徴とする。
これにより、キーワードインデックスを用いて、複数キーワードのマッチングを行うために、XMLデータにおけるテキスト値をバックトラックする必要がないので、従来よりも計算量を抑えることができる。その結果、ユーザから登録されるXPath式の増加や、キーワードを指定した述語数の増加に関わらず、XPath式処理における文字列の述語処理を高速化することが可能である。
前記キーワードインデックスを追加あるいは削除するタグを指定するためのタグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得するステップと、前記取得された構造情報から抽出されたパスに対応するキーワードインデックスが、前記プロファイル管理部に記憶されているか否かを判別する判別ステップと、前記判別ステップで前記キーワードインデックスが前記プロファイル管理部に記憶されていないと判別された場合に、前記抽出されたパスに対応するキーワードインデックスを作成するステップと、前記判別ステップで前記キーワードインデックスが前記プロファイル管理部に記憶されていると判別された場合に、前記抽出されたパスに対応するキーワードインデックスを削除するステップとをさらに含んで実行することを特徴とする。
図1は、XPath式処理方法が適用されるフィルタエンジンの概要を示す図である。
フィルタエンジン(XPath式処理装置)10は、図示しない情報提供者からユーザへ提供される所定の情報を示すXMLデータを、ユーザの望む情報の検索条件である個人プロファイルとして入力されたXPath式に基づいて、ユーザごとに予め定められた形式のXMLデータに変換する処理を実行するものである。ここで、XMLは、インターネットの標準としてW3C(World Wide Web Consortium)により勧告されたメタ言語である。なお、メタ言語とは、言語を作る言語という意味である。XMLデータは、XMLによって作られた言語を用いて作成された文書やデータである。XMLデータには、タグがある。タグは、XMLデータにおいて、要素の位置を明示し、属性を収納するために記述される文字列のことである。タグには、本文タグ、テキスト値タグ、タイトルタグ等の種類がある。
情報提供者が提供するXMLデータを受け取る個々のユーザは、個人プロファイルをXML問い合わせという形式でフィルタエンジン10に予め登録する。
フィルタエンジン10は、登録されている個人プロファイルに応じて、送られてくるニュースソース等のXMLデータをフィルタ・変換し、フィルタされたXMLデータを個々のユーザに配信する。
図2は、本発明の第1実施形態に係るフィルタエンジンの一例を示す機能ブロック図である。フィルタエンジン10は、図2に示すように、XMLパースモジュール11と、問い合わせパースモジュール12と、データ抽出モジュール13と、データ変換モジュール14と、プロファイル管理部15と、キーワードインデックス管理モジュール16とを備える。
XMLパースモジュール11は、入力されたXMLデータを先頭から順次シーケンシャルに読み込みつつ、その構造を解析し、解析結果としての情報である構造情報を抽出するものである。つまり、XMLパースモジュール11は、入力されたXMLデータをパースし、XMLのタグを検出するごとにアドインされた各種ハンドラ(プログラム)を起動することにより、内部形式XMLデータ(SAX(Simple API for XML)イベント)に変換する。なお、パースとは、XMLデータを読み込んで、XMLのタグで指定された文書要素や属性等を解析する解析処理である。入力されたXMLデータは、テキスト形式で記述されているが、パースの過程で、内部形式で記述されたXMLデータ(内部形式XMLデータ)に変換される。この内部形式XMLデータ(抽出された構造情報)は、データ抽出モジュール13ヘ出力される。
問い合わせパースモジュール12は、個人プロファイルとして入力されたXPath式の構造を解析し、解析結果としての情報である構造情報に基づいて、XPath式から、XPath式に含まれるテキスト値を指定した述語を含む条件を抽出するものである。つまり、問い合わせパースモジュール12は、入力された個人プロファイルをパースする。また、問い合わせパースモジュール12は、1つの条件ごとにXPath式(個人プロファイル)を分割し、この分割したXPath式(以下、シングルXPath式という)を生成する。なお、以下では、問い合わせパースモジュール12は、XPath式から、XPath式に含まれるテキスト値を指定した述語を抽出し、この抽出した述語ごとに個人プロファイルを分割するものとして説明する。
/item/title[contains(text(), "ABC")]
において、テキスト値を指定した述語が存在するか否かを判定し、テキスト値を指定した述語が存在する場合に、述語が指定されているタグを受け付け、受け付けたタグとその指定されたテキスト値をキーワードインデックス管理モジュール16に出力する。ここで、「テキスト値を指定した述語」とは、“=”,“contains()”,“starts−with()”等の文字列に関する演算子を用いた式を指す。つまり、例示したXPath式においては、“contains()”のことである。
また、問い合わせパースモジュール12は、入力されたXPath式の構造情報をプロファイル管理部15へ格納する。
データ抽出モジュール13は、問い合わせパースモジュール12から入力されるシングルXPath式ごとに、識別する情報であるXPathID(XPath式識別情報)を付与し、プロファイル管理部15に格納する。このデータ抽出モジュール13は、図3に示すように、後記するプロファイル管理部15のメモリ上で、シングルXPath式ごとに、NFA(非決定性オートマトン)を生成し、生成された複数のNFAを1つのノードに結合することにより結合NFAを生成し、この結合NFAとXMLデータの入力とに応じて、DFA(決定性オートマトン)を順次生成および更新する。
データ変換モジュール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は、プロファイル管理部の記憶構造の一例を示す説明図である。
条件ID411は、ユーザから指定された検索条件の識別情報を示す項目である。条件IDは、例えば、「1」、「2」、「3」等の数字、あるいは、文字および記号で示される。
XPathIDの集合412は、ユーザから指定された検索条件に用いられたXPath式を分割したシングルXPathの識別情報(XPathID)を示す項目である。XPathIDは、例えば、「1」、「2」、「3」等の数字、あるいは、文字および記号で示される。
XPathID間の論理演算子413は、ユーザから指定された検索条件に用いられた論理演算子を示す項目である。論理演算子は、例えば、「XXX」、「YYY」、「ZZZ」等の文字、あるいは、数字および記号で示される。ここで、図示された「XXX」、「YYY」、「ZZZ」を、例えば、それぞれ、「OR(論理和)」、「論理演算子なし」、「AND(論理積)」としてもよい。
XPathID431は、問い合わせパースモジュール12で分割されたシングルXPathに対してデータ抽出モジュール13で付与されたXPathIDを示す項目である。シングルXPath432は、XPathIDを付与されたシングル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に格納する。
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は、個人プロファイルの追加命令があり、かつ、キーワードインデックスが存在しない場合には、タグ名を受け付け、受け付けたタグ名を対象として、キーワードインデックスを作成し、作成したキーワードインデックスへの問い合わせパースモジュール12で抽出された述語で指定されるテキスト値の追加命令をキーワードインデックス追加手段162に出力する。
また、キーワードインデックス作成手段161は、個人プロファイルの削除命令があり、かつ、キーワードインデックスが存在する場合には、問い合わせパースモジュール12で抽出された述語で指定されるテキスト値の削除命令をキーワードインデックス削除手段163に出力する。
テキスト値511は、キーワードインデックスが「Index1」であるテキスト値タグに指定されたテキスト値を示す項目である。
XPathID512は、キーワードインデックスが「Index1」であるテキスト値タグを含むシングルXPathに付与されているXPathIDを示す項目である。
さらに、Index3用テーブル550は、図5(c)に示すように、項目として、テキスト値551と、XPathID552とを備えている。
Index2用テーブル530およびIndex3用テーブル550は、キーワードインデックスが「Index2」または「Index3」である点を除いて、Index1用テーブル510と同様なので、説明を省略する。
これらIndex1用テーブル510と、Index2用テーブル530と、Index3用テーブル530とは、固定的なものではなく、追加命令によって2行目が追加されたり、削除命令によって1行目が削除されたりするものである。これらテーブルを特に区別することなく指す場合には、「キーワードインデックス」と呼ぶ場合もある。
<<キーワードインデックス追加手段>>
キーワードインデックス追加手段162は、個人プロファイルをプロファイル管理部15に追加する命令である追加命令が入力されたときに、問い合わせパースモジュール12で抽出された述語に基づいて、キーワードインデックス作成手段161で作成されたキーワードインデックスまたはプロファイル管理部15に記憶されているキーワードインデックスに、述語で指定されるテキスト値と、XPathIDとの組を追加するものである。
具体的には、キーワードインデックス追加手段162は、キーワードインデックス作成手段161から追加命令を取得した場合に、テキスト値とXPathIDとの組を、キーワードインデックスに追加する。
キーワードインデックス削除手段163は、個人プロファイルをプロファイル管理部15から削除する命令である削除命令が入力されたときに、問い合わせパースモジュール12で抽出された述語に基づいて、プロファイル管理部15に記憶されているキーワードインデックスから、述語で指定されるテキスト値と、XPathIDとの組を削除するものである。具体的には、キーワードインデックス削除手段163は、キーワードインデックス作成手段161から削除命令を取得した場合に、テキスト値とXPathIDとの組を、キーワードインデックスから削除する。
また、キーワードインデックス削除手段163は、テキスト値とXPathIDとの組が削除されたキーワードインデックスに、まだ他にテキスト値が存在するか否かを判別し、テキスト値が存在しない場合に、当該キーワードインデックスを削除する。なお、テキスト値が存在する場合には、当該キーワードインデックスを削除しない。
<個人プロファイルの追加>
図2に示したフィルタエンジン10の動作について図6を参照(適宜図2参照)して説明する。図6は、図2に示したフィルタエンジンによる個人プロファイルの追加を示すフローチャートである。
フィルタエンジン10は、問い合わせパースモジュール12によって、個人プロファイルとして、XPath式を読み込み、構造を解析し、解析結果として構造情報を得る(ステップS1)。そして、フィルタエンジン10は、問い合わせパースモジュール12によって、XPath式において、テキスト値を指定した述語が存在するか否かを判定する(ステップS2:述語抽出ステップ)。
例えば、以下に示すXPath式の場合には、問い合わせパースモジュール12は、/item/titleと"ABC"とをキーワードインデックス管理モジュール16に出力する。
/item/title[contains(text(), "ABC")]
図2に示したフィルタエンジン10の動作について図7を参照(適宜図2参照)して説明する。図7は、図2に示したフィルタエンジンによるXMLデータの抽出を示すフローチャートである。
フィルタエンジン10は、XMLパースモジュール11によって、XMLデータを先頭から読み込み、構造情報を順次抽出し(ステップS11)、それをデータ抽出モジュール13へ送信する。そして、フィルタエンジン10は、ステップS11で構造情報等が抽出される度に、データ抽出モジュール13によって、その構造情報を受け付け、受け付けた構造情報がXMLデータの終端であるか否かを判定する(ステップS12)。
図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に出力する。
[フィルタエンジンの構成]
図9は、本発明の第2実施形態に係るフィルタエンジンの一例を示す機能ブロック図である。フィルタエンジン10Aは、図9に示すように、形態素解析モジュール20を備える点を除いて、図2に示したフィルタエンジン10と同様の構成なので、同一の構成には同一の符号を付して説明を省略する。
例えば、形態素解析モジュール20は、テキスト値“ABC株式会社”が入力されると、テキスト値“ABC株式会社”を、“ABC”、“株式”、“会社”という3つの単語に区切る。そして、形態素解析モジュール20は、区切った単語の間に、単語区切り文字を挿入してから連結し、連結されたテキスト値の先頭および末尾に単語区切り文字を挿入する。これにより、単語区切り付きテキスト値が生成される。ここで、単語区切り文字は、任意の文字あるいは記号や数字である。
なお、当然ながら、形態素解析モジュール20に入力されるテキストは文章でもよい。例えば、形態素解析モジュール20は、テキスト値“4月よりABC株式会社 XYZサービス開始”から、単語区切り付きテキスト値“¥tab4¥tab月¥tabより¥tabABC¥tab株式¥tab会社¥tabXYZ¥tabサービス¥tab開始¥tab”を生成することもできる。
なお、形態素解析モジュール20は、CPUがHDDに格納された所定のプログラムをRAMに展開して実行することにより実現されるものであり、図示は省略するが形態素解析用の辞書を有している。
したがって、キーワードインデックス作成手段161は、個人プロファイルの追加命令があり、かつ、キーワードインデックスが存在する場合には、テキスト値を形態素解析モジュール20に出力し、形態素解析モジュール20から単語区切り付きテキスト値を取得してから、追加命令をキーワードインデックス追加手段162に出力する。
また、キーワードインデックス作成手段161は、個人プロファイルの追加命令があり、かつ、キーワードインデックスが存在しない場合には、テキスト値を形態素解析モジュール20に出力し、形態素解析モジュール20から単語区切り付きテキスト値を取得してから、キーワードインデックスを作成し、追加命令をキーワードインデックス追加手段162に出力する。
また、キーワードインデックス作成手段161は、個人プロファイルの削除命令があり、かつ、キーワードインデックスが存在する場合には、テキスト値を形態素解析モジュール20に出力し、形態素解析モジュール20から単語区切り付きテキスト値を取得してから、削除命令をキーワードインデックス削除手段163に出力する。
また、キーワードインデックス削除手段163は、プロファイル管理部15に記憶されているキーワードインデックスから、単語区切り付きテキスト値と、XPath式識別情報との組を削除する。
また、データ抽出モジュール13は、XMLパースモジュール11で抽出された構造情報で指定されるテキスト値を形態素解析モジュール20に出力し、形態素解析モジュール20から単語区切り付きテキスト値を取得してから、プロファイル管理部15に記憶されている、対応したキーワードインデックスに基づいて、単語区切り付きテキスト値に対応するXPathIDを特定する。
<個人プロファイルの追加>
図9に示したフィルタエンジン10Aの動作について図10を参照(適宜図9参照)して説明する。図10は、図9に示したフィルタエンジンによる個人プロファイルの追加を示すフローチャートである。フィルタエンジン10Aが実行するステップS31〜ステップS33の各処理は、図6のフローチャートに示したステップS1〜ステップS3の各処理と同一なので説明を省略する。
図9に示したフィルタエンジン10Aの動作について図11を参照(適宜図9参照)して説明する。図11は、図9に示したフィルタエンジンによるXMLデータの抽出を示すフローチャートである。フィルタエンジン10Aが実行するステップS41〜ステップS45の各処理は、図7のフローチャートに示したステップS11〜ステップS15の各処理と同一なので説明を省略する。
図9に示したフィルタエンジン10Aの動作について図12を参照(適宜図9参照)して説明する。図12は、図9に示したフィルタエンジンによる個人プロファイルの削除を示すフローチャートである。フィルタエンジン10Aが実行するステップS51〜ステップS53の各処理は、図8のフローチャートに示したステップS21〜ステップS23の各処理と同一なので説明を省略する。
[フィルタエンジンの構成]
図13は、本発明の第3実施形態に係るフィルタエンジンの一例を示す機能ブロック図である。フィルタエンジン10Bは、図13に示すように、インデックス指定パースモジュール30を備える点を除いて、図9に示したフィルタエンジン10Aと同様の構成なので、同一の構成には同一の符号を付して説明を省略する。
また、インデックス指定パースモジュール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に記憶されているか否かを判別する。
図13に示したフィルタエンジン10Bの動作について図15を参照(適宜図13参照)して説明する。図15は、図13に示したフィルタエンジンによる個人プロファイルの追加を示すフローチャートである。ここでは、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式が入力されている、すなわち、キーワードインデックスが作成済みであるものとする。
図13に示したフィルタエンジン10Bの動作について図16を参照(適宜図13参照)して説明する。図16は、図13に示したフィルタエンジンによるXMLデータの抽出を示すフローチャートである。ここでは、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式が入力されている、すなわち、キーワードインデックスが作成済みであるものとする。フィルタエンジン10Bが実行するステップS81〜ステップS89の各処理は、図11のフローチャートに示したステップS41〜ステップS49の各処理と同様なので説明を省略する。異なる点は以下の通りである。すなわち、ステップS85の判定処理の結果、テキスト値タグ(XMLパースモジュール11で受け付けたXMLデータの構造情報)に関するキーワードインデックスが存在しない場合(ステップS85:No)、フィルタエンジン10Bは、ステップS90に進む。
図13に示したフィルタエンジン10Bの動作について図17を参照(適宜図13参照)して説明する。図17は、図13に示したフィルタエンジンによる個人プロファイルの削除を示すフローチャートである。ここでは、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式が入力されている、すなわち、キーワードインデックスが作成済みであるものとする。
図13に示したフィルタエンジン10Bの動作について図18を参照(適宜図13参照)して説明する。図18は、図13に示したフィルタエンジンによるタグ指定の削除を示すフローチャートである。
フィルタエンジン10Bは、インデックス指定パースモジュール30によって、タグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得する(ステップS111)。そして、フィルタエンジン10Bは、インデックス指定パースモジュール30によって、構造情報から抽出されたパスに対応するキーワードインデックスが存在するか否かを判別する(ステップS112)。
11 XMLパースモジュール
12 問い合わせパースモジュール
13 データ抽出モジュール
14 データ変換モジュール
15 プロファイル管理部
16 キーワードインデックス管理モジュール
161 キーワードインデックス作成手段
162 キーワードインデックス追加手段
163 キーワードインデックス削除手段
20 形態素解析モジュール
30 インデックス指定パースモジュール
Claims (8)
- 情報提供者からユーザへ提供される所定の情報を示す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式識別情報を特定することを特徴とする請求項1に記載のXPath式処理装置。 - 前記キーワードインデックスを追加あるいは削除するタグを指定するためのタグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得し、前記構造情報から抽出されたパスに対応するキーワードインデックスが、前記プロファイル管理部に記憶されているか否かを判別するインデックス指定パースモジュールをさらに備え、
前記キーワードインデックス作成手段は、前記キーワードインデックスを前記プロファイル管理部に追加する命令が入力されたときに、前記インデックス指定パースモジュールで前記キーワードインデックスが前記プロファイル管理部に記憶されていないと判別された場合に、前記抽出されたパスに対応するキーワードインデックスを作成し、
前記キーワードインデックス削除手段は、前記キーワードインデックスを前記プロファイル管理部から削除する命令が入力されたときに、前記インデックス指定パースモジュールで前記キーワードインデックスが前記プロファイル管理部に記憶されていると判別された場合に、前記抽出されたパスに対応するキーワードインデックスを削除することを特徴とする請求項1または請求項2に記載のXPath式処理装置。 - 情報提供者からユーザへ提供される所定の情報を示すXMLデータを、前記ユーザの望む情報の検索条件である個人プロファイルとして入力されたXPath式に基づいて、前記ユーザごとに予め定められた形式のXMLデータに変換する処理を実行するXPath式処理装置のXPath式処理方法であって、
前記XPath式処理装置は、
前記個人プロファイルとして入力されたXPath式の構造を解析し、前記XPath式から、前記XPath式に含まれるテキスト値を指定した述語を含む条件を抽出する述語抽出ステップと、
前記テキスト値に基づいて、前記XMLデータに対するキーワードの適合判定を行うための関数であるキーワードインデックスを作成する作成ステップと、
前記条件ごとに前記個人プロファイルを分割して生成されるシングルXPath式を識別する情報であるXPath式識別情報と、前記個人プロファイルに含まれるXPath式識別情報間の論理演算子と、前記キーワードインデックスとを関連付けて記憶するプロファイル管理部に、前記個人プロファイルを追加する命令である追加命令が入力されたときに、前記抽出された条件に基づいて、前記作成されたキーワードインデックスまたは前記プロファイル管理部に記憶されているキーワードインデックスに、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を追加する追加ステップと、
前記個人プロファイルを前記プロファイル管理部から削除する命令である削除命令が入力されたときに、前記抽出された条件に基づいて、前記プロファイル管理部に記憶されているキーワードインデックスから、前記条件で指定されるテキスト値と、前記XPath式識別情報との組を削除する削除ステップと、
入力されたXMLデータの構造を解析し、解析結果としての情報である構造情報を抽出する構造情報抽出ステップと、
前記抽出された構造情報のうち、テキスト値タグに対応したキーワードインデックスに基づいて、前記テキスト値タグで指定されるテキスト値に対応するXPath式識別情報を特定する識別情報特定ステップと、
前記特定されたXPath式識別情報と前記XPath式識別情報間の論理演算子とに基づいて、前記XMLパースモジュールで抽出された構造情報に対する前記個人プロファイルの適合判定を行う適合判定ステップとを含んで実行することを特徴とするXPath式処理方法。 - 前記XPath式処理装置は、
前記個人プロファイルとして入力されたXPath式に含まれるテキスト値を単語に区切って、単語区切り付きテキスト値を生成する生成ステップをさらに含んで実行し、
前記追加ステップは、前記プロファイル管理部に記憶されているキーワードインデックスに、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を追加し、
前記削除ステップは、前記プロファイル管理部に記憶されているキーワードインデックスから、前記単語区切り付きテキスト値と、前記XPath式識別情報との組を削除し、
前記識別情報特定ステップは、前記プロファイル管理部に記憶されているキーワードインデックスに基づいて、前記単語区切り付きテキスト値に対応するXPath式識別情報を特定することを特徴とする請求項4に記載のXPath式処理方法。 - 前記XPath式処理装置は、
前記キーワードインデックスを追加あるいは削除するタグを指定するためのタグ指定用XPath式の構造を解析し、解析結果としての構造情報を取得するステップと、
前記取得された構造情報から抽出されたパスに対応するキーワードインデックスが、前記プロファイル管理部に記憶されているか否かを判別する判別ステップと、
前記判別ステップで前記キーワードインデックスが前記プロファイル管理部に記憶されていないと判別された場合に、前記抽出されたパスに対応するキーワードインデックスを作成するステップと、
前記判別ステップで前記キーワードインデックスが前記プロファイル管理部に記憶されていると判別された場合に、前記抽出されたパスに対応するキーワードインデックスを削除するステップとをさらに含んで実行することを特徴とする請求項4または請求項5に記載のXPath式処理方法。 - 請求項4乃至請求項6のいずれか一項に記載のXPath式処理方法をコンピュータに実行させることを特徴とするXPath式処理プログラム。
- 請求項7に記載のXPath式処理プログラムが記録されたことを特徴とする記録媒体。
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) |
-
2006
- 2006-03-17 JP JP2006074501A patent/JP4320022B2/ja active Active
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 |