JP2006018584A - 構造化文書管理システム、値索引生成方法及びプログラム - Google Patents

構造化文書管理システム、値索引生成方法及びプログラム Download PDF

Info

Publication number
JP2006018584A
JP2006018584A JP2004195684A JP2004195684A JP2006018584A JP 2006018584 A JP2006018584 A JP 2006018584A JP 2004195684 A JP2004195684 A JP 2004195684A JP 2004195684 A JP2004195684 A JP 2004195684A JP 2006018584 A JP2006018584 A JP 2006018584A
Authority
JP
Japan
Prior art keywords
value
index
structural element
structured document
type
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.)
Pending
Application number
JP2004195684A
Other languages
English (en)
Inventor
Katsuhiko Nonomura
克彦 野々村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004195684A priority Critical patent/JP2006018584A/ja
Publication of JP2006018584A publication Critical patent/JP2006018584A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】スキーマが定義されていない複数の構造化文書に対し、高速な検索を行うために適切な値索引を生成することができる構造化文書管理システムを提供する。
【解決手段】構造化文書記憶部22は複数の構造化文書を記憶し、構造情報記憶部21はそれらから抽出された構造情報に含まれる構造要素を統合して記憶する。値索引生成処理部3では、構造要素ごとに、当該構造要素の値と当該値が含まれる構造化文書及びその構造要素を特定する位置情報を保持する値索引において前記保持する情報をいかに配置するかを示す索引タイプを、前記値の特徴により決定し、構造要素ごとに、前記索引タイプ決定手段により決定された索引タイプが示す配置がなされた前記値索引を生成する。この生成において、ユーザによる指定が不要もしくは軽減され、非固定的な部分にも適用でき、検索要求の分析が不要となる。
【選択図】 図1

Description

本発明は、複数の構造化文書を管理する構造化文書管理システム、値索引生成方法及びプログラムに関する。
現在、IT(情報技術)の進化により、膨大な量の情報を容易に入手することができるようになっている。しかしその反面、必要な情報が大量のデータに埋没するという弊害も生じてきており、十分に活用できない場合がある。情報が大量に存在していても、それをうまく活用できなければ意味がない。
このような情報には、一つの書式に統一された情報もあれば、全く書式のない自由書式の情報も数多く存在する。これらの情報を統一的に扱うための中核技術として期待されている技術がXML(Extensible Markup Language)である。XMLは、柔軟な拡張性と連携性を備えた標準のドキュメント記述言語であり、主要ベンダーからのサポートも約束されている。
XMLにより記述された文書を代表とする構造化文書は、次の特徴を持つ。
・階層的な構造を持つ。
・同じ名前の構造要素が発生する位置は一定ではない。入れ子が発生する可能性がある。
・スキーマ定義が必須ではない。
また、格納されたデータを取り出す手段として、問合せ言語がある。RDBの世界ではSQL(Structured Query Language)があるように、XMLでは、XQuery(XML Query Language)が策定されている。XQueryは、XMLデータをデータベースのように扱うための言語である。XQueryによれば、構造要素の値に関する条件や階層構造に関する条件に合致するデータ集合の取り出しができる。また、パスの正規表現により、『「文書」タグの子孫のどこかに存在する「コメント」タグ』といった曖昧な階層構造に関する条件も利用することができる。
さて、XMLデータベースなどを扱う構造化文書管理システムでは、検索を高速に実行できることが要請されるが、これに応えるための一つの手段として索引を作成することが一般的に行われる。構造化文書管理システムに対し索引を作成する従来技術としては例えば以下のような方法がある。
特許文献1では、ユーザが1個以上の構造要素に対し予め索引の種類を指示することで、その構造要素の値の特徴に応じて高速に検索可能な索引(特化した)索引を作成する技術が開示されている。検索時に一括して参照される可能性の高い構造要素に対し、まとめて索引管理をすることで、一括参照される検索処理を高速化する効果がある。
特許文献2では、スキーマに従い、固定的な部分には特化した索引を、非固定的な部分には全文検索用の索引を作成する技術が開示されている。これによれば、固定的な部分には特化した索引を設定できる効果がある。
特許文献3では、検索条件として高頻度で使用される構造要素に対し索引を作成する技術が開示されている。これによれば、高速検索に必要な索引を最小限に抑える効果がある。
特開2000−3366公報 特開2003−323427公報 特開2003−228570公報
異なる文書構造の構造化文書を大量に扱う構造化文書管理システムを考えると以下の状況が発生する。
・様々な構造をもった文書が存在するため、スキーマの定義が困難である。
・同じ名前の構造要素が様々な位置に発生するため、索引設定を行うユーザが索引の設定を直接指示することが困難である。
・様々な構造をもった文書が存在するため、実行されそうな検索要求の事前分析が困難である。
しかし、上記状況において特許文献1,2には次のような問題点がある。
予めスキーマを定義する、もしくはユーザが作成すべき索引の種類を構造要素に対し指示する必要がある。また、構造化文書内の非固定的な部分についても、共通の特徴の値を持った構造要素が存在し得る。例えば、「type」属性は様々な位置の構造要素の属性となり得るが、限られた種類の値から構成されることが多い。特許文献2ではその特徴に特化した索引の利用ができない。
また、特許文献3には、実行されそうな検索要求の事前分析を必要とするか、もしくは事前分析をしないならば、実際に検索要求を何度も実行するまで、特化した索引を作成できないという問題点がある。
本発明は、上記事情を考慮してなされたもので、複数の構造化文書に対する値索引を生成するにあたって、ユーザによる指定を不要とし、非固定的な部分にも適用でき、検索要求の分析を不要とする構造化文書管理システム、値索引生成方法及びプログラムを提供することを目的とする。
本発明に係る構造化文書管理システムは、複数の構造化文書を記憶する第1の記憶手段と、前記構造化文書から複数の構造要素を含む構造情報を抽出する抽出手段と、前記複数の構造化文書から抽出された前記構造情報に含まれる前記構造要素を統合して記憶する第2の記憶手段と、前記構造要素ごとに、当該構造要素の値と当該値が含まれる構造化文書及びその構造要素を特定する位置情報を保持する値索引において前記保持する情報をいかに配置するかを示す索引タイプを、前記値の特徴により決定する索引タイプ決定手段と、前記構造要素ごとに、前記索引タイプ決定手段により決定された索引タイプが示す配置がなされた前記値索引を生成する値索引生成手段とを備えたことを特徴とする。
本発明によれば、構造化文書内のタグや属性の値のデータタイプに特化した値索引を、1つの構造要素もしくは類似の構造要素群に対し作成できるため、検索処理時に検索条件に最適な値索引を適用することで、より高速な検索が可能となる。
また、本発明によれば、予めスキーマを定義することなく、構造化文書内の構造要素の値の特徴に特化した値索引を生成することができる。
また、本発明によれば、スキーマ定義がなければ、特化した値索引を一度作成した後に値の特徴が変わる可能性がある。例えば、データタイプの傾向が変わる可能性がある。しかし、そのような状況下においても、順序付けられた方向に対し値索引を追加するとともに、検索処理時に検索条件に適用可能な値索引を選択することにより、既に作成していた値索引を流用することが可能となる。
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムとしても成立し、該プログラムを記録したコンピュータ読み取り可能な記録媒体としても成立する。
本発明によれば、スキーマが定義されていない複数の構造化文書に対し、高速な検索を行うために適切な値索引を生成することができる。この生成において、ユーザによる指定が不要もしくは軽減され、非固定的な部分にも適用でき、検索要求の分析が不要となる。
以下、図面を参照しながら本発明の実施形態について説明する。
図1及び図2に、本発明の一実施形態に係る構造化文書管理システムの構成例を示す。なお、図1では、検索処理部4を省略し、図2では、格納処理部1及び値索引生成処理部3を省略している。
図1及び図2に示す通り、本実施形態の構造化文書管理システムは、対象となった構造化文書100に関する情報を構造化文書データベース(構造化文書DB)2に格納するための処理を行う格納処理部1、複数の構造化文書に関する情報を記憶するための構造化文書DB2、値索引(特化値索引)を生成するための処理を行う値索引生成処理部3、検索のための処理を行う検索処理部4を備えている。
格納処理部1は、構造化文書100から構造を抽出するための処理を行う構造抽出部11と、構造化文書100を構造化文書DB2に格納するための処理を行う文書格納部12を含む。文書格納部12は、索引追加処理を行うための処理を行う索引追加部121を含んでもよい。
構造化文書DB2は、構造情報を記憶する構造情報記憶部21と、構造化文書100を記憶する構造化文書記憶部22と、値索引(特化値索引)の設定を記憶する値索引設定記憶部23と、値索引を記憶する値索引記憶部24を含み、値索引記憶部24は、特化値索引を記憶する特化値索引記憶部241と、汎用値索引を記憶する汎用値索引記憶部242を含む。
値索引生成処理部3は、索引タイプを抽出する索引タイプ抽出部31と、値索引を設定する値索引設定部32を含む。索引タイプ抽出部31は、索引をマージする索引マージ部311を含んでもよい。
検索処理部4は、与えられた問合せデータ101に対して構文解析を行う問合せ構文解析部41と、問合せに必要な構造を抽出する問合せ構造抽出部42と、抽出された構造を利用して問合せを実行して結果データ102を生成する問合せ実行部43を含む。
次に、本構造化文書管理システムの各部の概要を説明する。
本システムに構造化文書100が入力されると、まず、構造抽出部11が、該構造化文書をもとに例えばDOM(Document Object Model)のようなオブジェクトツリーを作成して、該構造化文書の持つ構造を抽出し、この抽出結果を構造情報として構造情報記憶部21に格納する。次に、文書格納部12は、入力された構造化文書を構造化文書記憶部22に格納する。また、文書格納部12は、必要に応じて、入力された構造化文書内に値情報があれば(索引追加部121により)値索引設定記憶部23の情報に従い索引化して値索引記憶部24に格納する。
図3に、構造化文書の一例を示す。また、図4に、図3の構造化文書から抽出された構造情報の一例(この例ではツリー)を示す。図4の構造情報では、パス「/文書」の「文書」タグに対応した構造要素が“TID1”、パス「/文書/@id」の「id」属性に対応した構造要素が“TID2”、パス「/文書/年」の「年」タグに対応した構造要素が“TID3”、…、とそれぞれ構造要素識別情報(TID)が割り当てられる。なお、@が付されたものは属性を示し、そうでないものはタグを示すものとする。ただし、構造情報では、同一パスの構造要素は1つに縮約するものとする。例えば、図3の構造化文書では、パス「/文書/著者一覧/名前」の「名前」タグは2つ含まれるが、図4の構造情報では、これらは1つに縮約されて、TID8という1つのTIDが割り当てられている。なお、構造が異なる複数の構造化文書については、構造情報の重ね合わせにより、全ての構造化文書を包含する汎化した構造パターンを形成する。
値索引生成処理部3は、タグや属性の特徴に応じて高速に検索可能な値索引(以下、特化した値索引または特化値索引とも記す)の生成を行う。すなわち、詳しくは後述するが、値索引生成処理部3は、構造要素ごとに、当該構造要素の値と当該値が含まれる構造化文書及びその構造要素を特定する位置情報を保持する値索引において該保持する情報をいかに配置するかを示す索引タイプを、該値の特徴により決定し、該構造要素ごとに、決定された該索引タイプが示す配置がなされた値索引を生成する。この値索引生成処理部3による値索引生成処理は、ある程度の数の構造化文書が蓄積された後、自動的に、若しくはユーザの指示により、実行するのが望ましい。値索引生成処理が開示されると、まず、索引タイプ抽出部31は、構造情報記憶部21に記憶されている構造情報や構造化文書記憶部22に記憶されている構造化文書を利用して、データタイプ情報とテンポラリ辞書を作成し、該データタイプ情報とテンポラリ辞書をもとにして、タグや属性に特化した特化値索引の索引設定情報を抽出する。次に、値索引設定部32は、抽出された索引設定情報の全てを、若しくは抽出された索引設定情報を一旦ユーザに対し提示し、ユーザの選択した索引設定情報を、値索引設定記憶部23に格納するとともに、該索引設定情報に従って構造化文書記憶部22に記憶されている構造化文書内の値情報を索引化して特化値索引記憶部241に格納する。
検索処理部4では、問合せデータ101が与えられると、まず、問合せ構文解析部41が、該問合せデータを構文解析する。この構文解析の結果は、例えば、問合せグラフとして表現される。問合せ構造抽出部42は、構文解析結果から、問合せ処理に必要となる構造を抽出する。問合せ実行部43は、抽出された構造を利用して、構造化文書記憶部22、値索引設定記憶部23、値索引記憶部24にアクセスして、問合せデータに合致する結果データ102を生成する。
次に、値索引(特化値索引)に関して説明する。
値索引は、値を含む辞書情報と、辞書情報に含まれる各値がどの文書のどの構造要素に存在するかを示す情報を含む位置情報(例えば、文書IDと構造要素IDの対)とから構成される。
当該構造要素の値と、当該値が含まれる構造化文書及びその構造要素を特定する位置情報とを保持するにあたって、これら保持する情報をいかに配置するかについては、様々な形態がある。これら保持する情報をいかに配置するかを示すものが、索引タイプである。
辞書情報の保持方法としては、値をリスト状に保持する方法や、ツリー状に保持する方法がある。ツリー状の例として、数値のような固定長データや、文字列長が小さい値におさまる場合には、B+木が適用できる。文字列長が小さい値におさまらない場合には、例えば、値単位ではなく、文字単位でツリー状に保持するトライやパトリシアツリーなどが適用できる。
位置情報の保持方法としては、辞書情報と同一のページに保持する方法や、辞書情報とは別のページに保持する方法がある。
なお、ページとはブロックとも呼ばれており、ディスク(2次記憶装置)と主記憶との間のデータのやりとりの単位(固定長サイズ)である。
図5に、特化値索引の保持方法の一例を示す。図5は、値をリスト状に保持し、値と同一のページに当該値に対応する位置情報(文書ID,構造要素ID)を保持する方法である。なお、同じ値に対して、複数の相異なる位置情報が存在する場合には、当該値に係る1つの列に該当する複数の位置情報を保持してもよいし、1つの列は1対の値及び位置情報のみを含むものとして、位置情報の数だけ列を設けるようにしてもよい。
図6に、特化値索引の保持方法の他の例を示す。図6は、値をリスト状に保持し、値とは別のページに位置情報を保持する(値と同じページには、位置情報が保持されているページを示す情報(例えば、ページID)を保持する)方法である。
図7に、特化値索引の保持方法のさらに他の例を示す。図7は、文字列長が小さい値におさまる場合(この例では、最大文字列長が5の場合)のB+木で、値と同じページに位置情報を保持する方法である。図7の変形例として、値とは別のページに位置情報を保持する(例えば、図7において、位置情報の代わりにページIDを保持する)方法もある。また、中間ノードからも位置情報を持つ方法もある。
なお、B+木については、例えば、文献“リレーショナルデータベース入門[新訂版]−データモデル・SQL・管理システム−, 増永良文著, サイエンス社”に詳しく開示されている(特に、同文献の第203頁の図7.12、第206頁の図7.13(f)、第208頁の図15,16等参照)。
これらの保持方法には、値の持つ特徴に依って有利・不利がある。例えば、ツリー状に保持すると、サーチコストを小さくできるが、ツリーを構成するノード間のリンク情報を多く保持する必要がある。一方、リスト状に保持すると、サーチコストが大きくなる反面、リンク情報が少ないのでページ内の情報量を増やすことができる。
本実施形態では、値の特徴により索引タイプを決定し、決定された索引タイプが示す配置がなされた値索引を生成するものである。これによって、それぞれのタグや属性の値に適するタイプの値索引(特化値索引)を作成することができ、高速な検索処理を実現することができる。
なお、特化値索引とは別に、全てのタグや属性の値を保持する汎用的な索引(汎用値索引記憶部242内の汎用値索引)を利用するようにしてもよい。このようにすることで、最低限の検索処理を保証することができる。例えば、Nグラム方式に代表される全文検索用の索引により、ほとんどのタグや属性について検索条件として利用される包含関係について高速な検索が可能である。大小比較の高速検索も保証したい場合は、例えば、全文検索用の索引(汎用値索引)に加えて、数値だけの値すべてをB+木で保持することで、汎用的な索引として利用するとよい。
次に、値の特徴と好ましい特化値索引の構造に関して説明する。
構造化文書の数が大量になると、タグや属性の値は、図8に示すように、異なる値の数がいくつ存在するかを表す値の種類(横軸)と、同じ値がどの程度重複しているかを表す重複数(縦軸)とにより、主に、ケースA〜Cの3つのケースに分類することができる。
(ケースA)値の種類が少なく、かつ、重複数の最大値が大きいケース
例えば、「年」タグの値は「1999」「2000」「2001」「2002」「2003」「2004」のように6種類しか存在しないと、どの値に対しても重複数が大きい値となる。
(ケースB)値の種類が多く、かつ、重複数の最大値が大きいケース
値の種類が多くても、同じ値の発生に大きな偏りがあると、重複数の高い値が存在する。例えば、「キーワード」タグの値は、発生頻度の高い値や低い値をもつことが多い。
(ケースC)値の種類が多く、かつ、重複数の最大値が小さいケース
値の種類が多く、同じ値の発生頻度が均等である場合は、どの値の重複数も小さい。例えば、「名前」タグの値は、ほとんど異なった値が発生する。
ここで、ケース毎に、高速検索を実現するための索引情報の保持方法の違いが生じる。
(ケースA)辞書情報のサイズが限られているので、リスト状の保持方法でページ当たりの情報量を増やすことができる。また、位置情報のサイズは大きいので、位置情報を辞書情報とは別のページで保持することにより、ページ当たりの情報量を増やすことができる(図6参照)。
(ケースB)辞書情報のサイズが大きいので、ツリー状に保持すると辞書サーチコストを少なくできる。また、位置情報のサイズは大きいので、ケースAと同様に、位置情報を辞書情報とは別のページで保持するのが好ましい(図7参照(ただし位置情報は別ページになる))。
(ケースC)辞書情報のサイズが大きいので、ケースBと同様に、ツリー状に保持するのが好ましい。また、位置情報のサイズは限られているので、位置情報は辞書情報とまとめて保持することにより、ページ内の空き領域を節約することができる(図7参照)。
次に、値の特徴が変化する場合について説明する。
構造化文書を追加するうちに値の特徴が途中で変わる場合が想定される。このような場合に、ケースA〜Cについて変化の有無を考えると、「ケースAからケースB」または「ケースCからケースB」の方向への変化はあるが、その他の方向への変化はない。これは、ケースAとケースBは重複数の最大値が大きい場合であり、この値が小さくなることはなく、また、ケースBとケースCは値の種類が多い場合であり、この値が少なくなることはないからである。
同様の考え方は、数値、文字列などのデータケースにも適用できる。例えば、数値だけを含む「数値」、アルファベットと数値とを含む「英数字」(ただし、「数値」に該当するものは除く)、英数字だけでなく日本語を含む「日本語」(ただし、「数値」又は「英数字」に該当するものは除く)の3つのデータケースについて考えると、図9に示すように「数値→英数字→日本語」という順序づけで変化の方向性を定義することができる。
本実施形態は、このように順序づけられた索引候補から、タグや属性の値を包含する最も特化した索引を、該当するタグや属性に対し割り当てることで、値の特徴の変化に対応することができる。
ここで、ある特化値索引を作成し、この後、構造化文書を追加するうちに値の特徴が変わり、新規に特化値索引を作成した後における索引登録方法について幾つかの例を示す。
なお、以降ではケースA,B,Cに特化した値索引を対応付けたものを索引タイプA,B,Cと呼ぶ。
(1)値の特徴で特化値索引を特定可能な場合は、該当する特化値索引に登録するものとする。
例えば、データタイプ別に特化値索引を作成する時、例えば数値の特化値索引の作成後に英数字の特化値索引を作成した後において、数値「123」については数値の特化値索引に登録し、英数字「e34」については英数字の特化値索引に登録する。
(2)元の特化値索引に値が存在し、かつ、辞書情報と位置情報が分離されている場合は、元の特化値索引に登録するものとする。
例えば、索引タイプAの特化値索引に対して索引タイプBの特化値索引を新規作成した場合で、前者に値が存在する場合は(なお、索引タイプAの特化値索引は辞書情報と位置情報が分離されている)、元の索引タイプAの特化値索引に登録する。
(3)辞書情報と位置情報が分離されていない場合には、追加する値の位置情報の数によって決定するものとする。追加する値の位置情報の数がN個未満ならば、元の特化値索引に登録するものとし、追加する値の位置情報の数がN個以上ならば、新規作成した特化値索引に登録するものとする。
例えば、(辞書情報と位置情報が分離されていない)索引タイプCの特化値索引に対し索引タイプBの特化値索引を新規作成した場合で、希少頻度の値は元の索引タイプCの特化値索引に登録し、高頻度の値は新規作成した索引タイプBの特化値索引に登録する。
上記の3つの例の他にも種々の登録方法が考えられる。
(4)索引タイプAの特化値索引に索引タイプBの特化値索引を新規作成した後は、いずれの特化値索引に登録してもよいものとする。
(5)索引タイプCの特化値索引に対し索引タイプBの特化値索引を新規作成した後は、すべて新規作成した索引タイプBの特化値索引に登録するものとする。
次に、値索引生成処理部3による値索引生成処理について詳細に説明する。
値索引生成処理は、データタイプ情報とテンポラリ辞書を作成する処理(第1の処理)と、索引タイプ割り当ての処理(第2の処理)を含む。
図10に、第1の処理の手順の一例を示す。また、図11に、この第1の処理の手順に続いて行われる第2の処理の手順の一例を示す。
まず、索引タイプ抽出部31は、構造情報記憶部21に記憶されている全構造情報について、図10に示す手順を行って、データタイプ情報とテンポラリ辞書を作成する。
なお、図10の手順は、例えばパス(TID)又は複数のパス(TID)をマージしたグループごとに行われる。
ここで、図3及び図4の例を用いて、パス「/文書/年」の「年」タグについて図10の手順を行う場合を想定して説明する。
図12に、データタイプ情報の構造の一例を示す。この例では、データタイプ情報は、構造要素識別情報(TID)、値の種類、要素数、データタイプ、文字列長総和、文字列長二乗和、テンポラリ辞書IDを含む。なお、文字列長総和及び文字列長二乗和は、必ずしも含まなくてよい。
図13に、テンポラリ辞書の構造の一例を示す。この例では、テンポラリ辞書は、値、カウンタを含む。なお、テンポラリ辞書は例えばパス(TID)又は複数のパス(TID)をマージしたグループごとに設けられ、各テンポラリ辞書にはテンポラリ辞書IDが付与される。
まず、構造化文書記憶部22に格納されている構造化文書群から対象となっている値(例えば、パス「/文書/年」の値(例えば、“2004”))を一つ取得し(ステップS1)、データタイプ情報の「要素数」を1つインクリメントする(ステップS2)。
次に、ステップS1で得た値(例えば、“2004”)がテンポラリ辞書に存在すれば(ステップS3のYes)、テンポラリ辞書中の当該値と等しい「値」を持つ列の「カウンタ」を1つインクリメントする(ステップS4)。反対に、ステップS1で得た値がテンポラリ辞書に存在しなければ(ステップS3のNo)、データタイプ情報の「値の種類」を1つインクリメントし(ステップS5)、テンポラリ辞書に当該値と同じ「値」を持つ列を新規に追加し(ステップS6)、この追加した列の「カウンタ」を1に設定する(ステップS7)。
ステップS4またはステップS7の次に、データタイプ情報の「値の種類」が予め設定されている上限値未満であり(ステップS8のYes)、かつ、構造化文書記憶部22に格納されている構造化文書群で対象となっている値のうちまだ取得していないものがある(ステップS9のYes)場合には、ステップS1に戻って、上記処理を繰り返す。
ステップS4またはステップS7の次に、データタイプ情報の「値の種類」が予め設定されている上限値を越えた場合(ステップS8のNo)、または構造化文書記憶部22に格納されている構造化文書群で対象となっている値のすべてについて処理を終えた場合(例えば、すべてのパス「/文書/年」の値について処理を終えた場合)(ステップS9のNo)には、この手順を終了する。
以上により、対象となったパスの値の特徴が得られたことになる。
例えば、パス「/文書/年」の値の特徴が、図10の手順終了時における図12のデータタイプ情報の内容及び図13のテンポラリ辞書の内容として得られる。
図10の処理が終了すると、索引タイプ抽出部31は、続いて、図14に示す索引タイプの割り当て基準に従い図11に示す索引タイプ割り当て処理を行う。
ここで、Xt1,Yt1,Zt1はそれぞれ図10の処理で得られたデータタイプ情報の「要素数」,「値の種類」、テンポラリ辞書の「カウンタ」と比較するための予め定められた基準値とする。
まず、「要素数」がパラメータXt1未満であれば(ステップS11のNo)、索引タイプを割り当てずに、この手順を終了する。すなわち、この場合には、特化値索引をまだ作成しないことになる。
「要素数」がパラメータXt1以上であり(ステップS11のYes)、かつ、「値の種類」がYt1以下であれば(ステップS12のYes)、索引タイプAを割り当てる。
「要素数」がパラメータXt1以上であり(ステップS11のYes)、かつ、「値の種類」がYt1を越えており(ステップS12のNo)、かつ、Zt1以上の値を持つ「カウンタ」が存在すれば(ステップS13のYes)、索引タイプBを割り当てる。
「要素数」がパラメータXt1以上であり(ステップS11のYes)、かつ、「値の種類」がYt1を越えており(ステップS12のNo)、かつ、Zt1以上の値を持つ「カウンタ」が存在しなければ(ステップS13のNo)、索引タイプCを割り当てる。
上記索引タイプの割り当てをまとめると次のようになる。ただし、いずれも「要素数」がパラメータXt1以上であることを条件とする。
(条件1)「値の種類」がパラメータYt1以下であるならば、索引タイプAを割り当てる。
(条件2)「値の種類」がパラメータYt1より多く、かつ、「カウンタ」でパラメータZt1以上となる値が1個でも存在するならば、索引タイプBを割り当てる。
(条件3)その他の場合は、索引タイプCを割り当てる。
例えば、Xt1=500、Yt1=100、Zt1=50とすると、図12に示すパス「/文書/年」の場合は、(条件1)を満たすので、索引タイプAが割り当てられる。
なお、図14の索引タイプの割り当て基準は一例であり、この他にも、例えば図15に示す基準など、種々のものが考えられる。
なお、値索引設定部32にて得られた索引タイプをユーザに対して提示する場合には、例えば、図16に示す特化値索引生成候補一覧画面を表示する。この場合、ユーザは、例えば、一覧の中から所望の項目を、例えば左側のチェックボックスをチェックすることによって選択し、生成ボタンを押す。そして、ユーザにより選択された項目に対応する値索引のみについて、設定・生成を行う。この結果、ユーザは、実際に必要なだけ特化した値索引を容易に設定・生成させることができる。なお、図16の一覧画面例では、パス又は複数のパスをまとめたものと、これに割り当てられた索引タイプとを表示しているが、複数のパスをまとめて表現せずに、個々のパスを提示するようにしてもよい。例えば、図16の「/文書直下と/文書/本文以下のコメントタグの名前属性」を、「/文書/コメント/@名前」(図4のTID10)、「/文書/本文/章/コメント/@名前」(図4のTID14)、「/文書/本文/章/節/コメント/@名前」(図4のTID17)のように個別に提示してもよい。
次に、値索引のマージについて説明する。
複数のタグや属性の値が同様の特徴をもっている場合には、特化値索引を共通管理すると、同じ名前のタグ群や属性群に対する検索処理時に索引アクセス数を削減でき有効である。
図17に、辞書情報を共通管理し、位置情報をTID別に保持する例を示す。
なお、特化値索引の作成後に値の特徴に変化がないことが保証されるのであれば、位置情報も共通管理するようにしてもよい。
図18に、特化値索引の共通管理のために索引タイプ抽出部31の索引マージ部311により行われる索引マージ処理の手順の一例を示す。
この処理は、図10,11の処理が行われた後に、行うことができる。
なお、ここでは、ステップS211がない場合いついて説明し、後でステップS211について言及する。
また、図4に示す構造情報を具体例として説明する。
まず、図4に示す構造情報と図10,11の処理で得られた索引タイプ情報を用いて、類似の構造をもち、かつ、同一の索引タイプであるパス群を求める(ステップS21)。
類似の構造の判断基準の例としては、例えば、「パスの末端要素の名前が同じであること。ただし、タグであるか属性であるかは区別しない。」など種々の基準が考えられる。
ここでは、一例として、末端要素の名前が「名前」である構造要素について考えると、5種類のパス「/文書/著者一覧/名前」(TID8)、「文書/コメント/@名前」(TID20)、「文書/本文/章/@名前」(TID10)、「文書/本文/章/節/@名前」(TID14)、「文書/整形/@名前」(TID17)が存在する。それぞれの索引タイプが順に「C」、「A」、「A」、「A」、「A」であるとすると、後者の4種類のパス「文書/コメント/@名前」(TID20)、「文書/本文/章/@名前」(TID10)、「文書/本文/章/節/@名前」(TID14)、「文書/整形/@名前」(TID17)が獲得される。
次に、これら獲得された4種類のパスについて、図19に示すテンポラリ辞書を作成しながら、図20に示すマージ判定用情報を作成する。
ステップS21の次に、各TIDについて、パスに対応する値群をテンポラリ辞書に追加するとともに、マージ判定用情報においてテンポラリ辞書内の値を含むことを示すフラグを設定する(ステップS22〜S24)。図20の例では、「∨」部分が、テンポラリ辞書内の値を含むフラグが設定されていることを意味している。
続いて、各値ごとに、発生頻度を求める(ステップS25)。
例えば、値ID3の「田中健太郎」は、TID10、TID14、TID17の3つのTIDについて発生しているので、発生頻度は3となる。
その後、発生頻度の高い値を選別する(ステップS26)。
選別基準として例えば「発生頻度がパスの種類の半分以上」を考えると、値ID3、値ID4、値ID5の3つが得られる。
そして、各TIDごとに、得られた値のうち前記フラグが設定されているものの割合を図21に示すように求め(ステップS27)、高い値をもつTIDをマージ対象のパスとする(ステップS28)。
例えば、割合が50%以上を高い値と考えると、3つのパス「文書/本文/章/@名前」(TID10)、「文書/本文/章/節/@名前」(TID14)、「文書/整形/@名前」(TID17)が獲得される。
なお、値索引設定部32にて得られた索引タイプをユーザに対して提示する場合には、前述と同様、図16に示す特化値索引生成候補一覧画面(複数のパスを簡潔にまとめた表現で表示可能な画面)を表示するようにしてもよいし、単純に複数のパス群と索引タイプを表示するようにしてもよい。前述と同様に、ユーザは、例えば、一覧の中から所望の項目を選択し、生成ボタンを押すことで、特化した値索引を実際に必要なだけ設定、生成させることができる。
ところで、上述した索引マージ処理は、索引タイプAのように値の種類が少ない場合には計算コストはそれほど大きくならないが、索引タイプBのように値の種類が多い場合にはかなり大きくなることが予想される。そこで、図18の手順例において、ステップ21の次に、ステップ21で求めたパス群から、類似のテンポラリ辞書からなるパス群を求めて、パス群を絞り込む処理(ステップS211)を行っておくことで、後の処理を効率化することも可能である。類似のテンポラリ辞書の判断基準の例としては、例えば、「値の種類が同じ」などの基準がある。また、索引タイプ抽出部31にて、データタイプ情報を求める際に、図12に例示するように、値の長さの和や2乗和も求めておくことで、上記判断基準に値の長さの平均値や分散値を利用することも考えられる。
次に、索引追加処理について説明する。
格納される構造化文書がスキーマレスの場合、特化した値索引を設定、生成した後で、これまでの特徴とは異なった値が追加される可能性がある。
図22に、値の変化に対応し、これまで利用してきた特化値索引を流用するために、文書格納部12により行われる索引追加処理の手順の一例を示す。
ここでは、一例として、図16に示したパス全てについて特化値索引を作成した後、100件の構造化文書が追加された場合を想定する。このときの索引設定情報の一例を図23に、特化値索引管理情報の一例を図24にそれぞれ示す。
ここで、Xt2,Yt2,Zt2はそれぞれ索引設定情報の「要素カウンタ」,「値の種類(新規)」、「要素カウンタ」/「値の種類(新規)」(“値の種類(新規)”の値を“要素カウンタ”の値で除して得た値)と比較するための予め定められた基準値とする。
図22において、格納される値の構造要素について特化値索引が作成されている場合、索引設定情報の要素カウンタの値を1つインクリメントする(ステップS31)。
次に、格納される値が特化値索引の辞書情報に存在しない場合(ステップS32のYes)、索引設定情報の「値の種類(新規)」を1つインクリメントする(ステップS33)。なお、存在する場合(ステップS32のNo)には、ステップS33はスキップする。
次に、要素カウンタがパラメータXt2で割り切れる場合(ステップS34のYes)、次の条件を満たすかどうかをチェックし(ステップS35〜S38)、全ての条件を満たすときに、索引タイプBの追加を行う。
(条件1)索引タイプが索引タイプAであり(ステップS35のYes)、かつ、値の種類(新規)が急激に増えている(ステップS36のYes)条件
上記条件のうち後者の一例は、「値の種類(新規)がパラメータYt2以上」という条件である。
(条件2)索引タイプが索引タイプCであり(ステップS35のNo And ステップS37のYes)、かつ、値の種類(新規)がほとんど増えていない(ステップS38のYes)条件
上記条件のうち後者の一例は、「値の種類(新規)/要素カウンタがZt2以下」という条件である。
なお、要素カウンタがパラメータXt2で割り切れない場合(ステップS34のNo)、または割り切れる場合(ステップS34のYes)であっても全ての条件を満たさないときは、索引タイプの追加を行わないことになる。
ここで、具体例として、図23について、Xt2=100、Yt2=10、Zt2=0.2として考える。まず、Xt2=100で割り切れるパスは、TID5、TID3、TID18、TID8、TID10である。
TID5は、索引タイプAの特化値索引を作成しているが、作成後に値の種類が多く増えていることが分かる。(条件1)により、値の特徴に変化があると考えられるので、パス「/文書/会社名」(TID5)について、索引タイプBの特化値索引を追加する。
一方、TID3は、索引タイプAの特化値索引を作成しており、作成後にも値の種類がほとんど増えてなく、値の特徴に変化がないといえるため、索引を追加する必要はない。
TID18は、索引タイプCの特化値索引を作成しているが、作成後に値の種類がほとんど増えていないので、重複数が高い値が発生していると考えられる。(条件2)により、値の特徴に変化があると考えられるので、パス「/文書/キーワード」(TID18)について、索引タイプBの特化値索引を追加する。
一方、TID8は、索引タイプCの特化値索引を作成しており、作成後にも値の種類が多く増えているので、値の特徴に変化がないといえるため、索引を追加する必要はない。
最後に、TID10は、他のTID14、TID17とマージした索引タイプAの特化値索引を作成している。しかし、作成後に値の種類が多く増えているため、他のTID14,TID17との共通性は低くなっていると考えられる。(条件1)を満たすので、TID10だけ索引タイプBの特化値索引を追加する。
索引追加後の索引設定情報の一例を図25に、特化値索引管理情報の一例を図26にそれぞれ示す。索引IDが11、12、13の3つの特化値索引が追加され、索引設定情報の「追加索引ID」部分のTID5、TID18、TID10にそれぞれ割り当てられていることが分かる。
次に、検索処理について説明する。
図27に、問合せデータの一例を示す。
XMLでは、XQuery(XML Query Language)という問合せ言語がある。図27の例は、XQueryに基づいた問合せ記述方法に則したものである。
図27の問合せデータは、『「db1」という名前の構造化文書データベースの階層木の中に「文書群」という構造要素がある。その「文書群」の直下に存在し、構造化文書内のどこかに存在する「名前」属性の値が「田中健太郎」と等しい「文書」の一覧を求めよ。』という条件になっている。
まず、検索処理部4の問合せ構文解析部41により、与えられた問合せデータに対して構文解析を行い、次いで、構造抽出部42により、該構文解析結果と構造情報記憶部21に記憶された構造情報をもとに、問合せに必要な構造を抽出する。これらの処理は、従来の技術を利用して構わない。
本具体例の場合、「名前」属性に該当するパス一覧であるTID10、TID14、TID17、TID20が抽出される。
次に、実行部43により、問合せを実行する。
図28に、問合せ実行部43により行われる索引サーチ処理の手順の一例を示す。
図28において、問合せ実行部43は、ターゲットパスに対応する特化値索引群を取得する(ステップS41)。
特化値索引群が適用可能であり(ステップS42のYes)、かつ、特化索引群を限定可能であれば(ステップS43のYes)、特化値索引群から一部の索引を選択し(ステップS44)、選択した索引群を適用してサーチする(ステップS45)。
特化値索引群が適用可能であり(ステップS42のYes)、かつ、特化索引群を限定可能でなければ(ステップS43のNo)、特化値索引群すべてを適用してサーチする(ステップS46)。
特化値索引群が適用可能でなく(ステップS42のNo)、かつ、汎用値索引が適用可能であれば(ステップS47のYes)、汎用値索引群を適用してサーチする(ステップS48)。
特化値索引群が適用可能でなく(ステップS42のNo)、かつ、汎用値索引が適用可能でなければ(ステップS48のNo)、索引群を適用せずにサーチする(ステップS49)。
本具体例において、TID10については、索引ID6で索引タイプAの特化値索引と索引ID13で索引タイプCの特化値索引が、TID14とTID17については索引ID6で索引タイプAの特化値索引が、TID20については索引ID7で索引タイプAの特化値索引が、適用できることが分かり、各パスについて特化した特化値索引を用いて問合せを実行する。
なお、上記例では、TID10についてID6とID3の2つの索引をサーチする必要があるが、「数値→英数字」のようにデータタイプレベルの値の特徴の変化に伴う索引追加の場合には、問合せデータ中の検索条件で利用されている値のデータタイプでもって、サーチする索引を絞り込むことができる場合がある。例えば、検索条件に数値が利用されているならば、数値に該当する索引だけをサーチすればよい。
本実施形態によれば、以下の各点のような効果を得ることができる。
まず、1点目として、タグや属性の値に特化した索引が存在する場合、その特化した索引を用いることで、汎用的な索引を用いるより高速に条件を満たす構造要素を特定できる点である。
次に、2点目として、末端要素の名前が「名前」のように同じパスの値について、共通の特徴をもったパスをまとめて索引管理することで、まとめない場合と比べ、索引アクセス数が減少する点である。その結果、高速な検索処理を実現することができる。例えば、上記した例の場合、まとめない場合にはTID10、TID14、TID17の各辞書にアクセスする必要があるが、まとめると1つの辞書にアクセスすればよい。
さらに、3点目として、索引タイプAから索引タイプBへ、もしくは索引タイプCから索引タイプBへ、という方向で索引を追加することで、一度特化値索引を作成した後、値の特徴が変化したとしても、特化値索引を作り直すことなく、これまで存在していた特化値索引を利用することが可能な点である。
なお、以上の各機能は、ソフトウェアとして記述し適当な機構をもったコンピュータに処理させても実現可能である。
また、本実施形態は、コンピュータに所定の手順を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるためのプログラムとして実施することもできる。加えて該プログラムを記録したコンピュータ読取り可能な記録媒体として実施することもできる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明の一実施形態に係る構造化文書管理システムの(一部分の)構成例を示す図。 同構造化文書管理システムの他の検索処理手段の(他の部分の)構成例を示す図。 XMLで記述された構造化文書の一例を示す図。 構造情報の一例を示す図。 特化値索引の一例を示す図。 特化値索引の他の例を示す図。 特化値索引のさらに他の例を示す図。 値の種類と重複数に基づく分類の例を示す図。 データタイプに関する分類の例を示す図。 データタイプ情報とテンポラリ辞書を作成する処理の手順の一例を示すフローチャート。 索引タイプ割り当ての処理の手順の一例を示すフローチャート。 データタイプ情報の一例を示す図。 テンポラリ辞書の一例を示す図。 索引タイプ分類基準の一例を示す図。 索引タイプ分類基準の他の例を示す図。 特化値索引生成候補一覧画面の一例を示す図。 マージされた特化値索引の一例を示す図。 索引マージ処理の手順の一例を示すフローチャート。 パスの末端要素の名前が「名前」である構造要素について索引マージ処理で使うテンポラリ辞書の一例を示す図。 パスの末端要素の名前が「名前」である構造要素について索引マージ処理で使うマージ判定用情報の一例を示す図。 図20のマージ判定用情報の具体例に対する割合算出結果の一例を示す図。 索引追加処理の手順の一例を示すフローチャート。 値索引設定情報の一例を示す図。 特化値索引管理情報の一例を示す図。 索引追加後の値索引設定情報の一例を示す図。 索引追加後の特化値索引管理情報の一例を示す図。 索引サーチ処理の手順の一例を示すフローチャート。 問合せデータの一例を示す図。
符号の説明
1…格納処理部、11…構造抽出部、12…文書格納部、121…索引追加部、2…構造化文書データベース、21…構造情報記憶部、22…構造化文書記憶部、23…値索引設定記憶部、24…値索引記憶部、241…特化値索引記憶部、242…汎用値索引記憶部、3…値索引生成処理部、31…索引タイプ抽出部、311…索引マージ部、32…値索引設定部、4…検索処理部、41…問合せ構文解析部、42…問合せ構造抽出部、43…問合せ実行部。

Claims (9)

  1. 複数の構造化文書を記憶する第1の記憶手段と、
    前記構造化文書から複数の構造要素を含む構造情報を抽出する抽出手段と、
    前記複数の構造化文書から抽出された前記構造情報に含まれる前記構造要素を統合して記憶する第2の記憶手段と、
    前記構造要素ごとに、当該構造要素の値と当該値が含まれる構造化文書及びその構造要素を特定する位置情報を保持する値索引において前記保持する情報をいかに配置するかを示す索引タイプを、前記値の特徴により決定する索引タイプ決定手段と、
    前記構造要素ごとに、前記索引タイプ決定手段により決定された索引タイプが示す配置がなされた前記値索引を生成する値索引生成手段とを備えたことを特徴とする構造化文書管理システム。
  2. 前記値の特徴は、前記構造要素に該当する値の持つデータタイプ、前記構造要素に該当する値の種類、又は前記構造要素に該当する値の重複数のうちの少なくとも一つを含むものであることを特徴とする請求項1に記載の構造化文書管理システム。
  3. 前記索引タイプ決定手段は、前記索引タイプとして、前記値索引に登録されている複数種類の値をリスト状に保持し且つ前記位置情報を前記値とは別のページに保持する配置を示す索引タイプ、前記値索引に登録されている複数種類の値をツリー状に保持し且つ前記位置情報を前記値とは別のページに保持する配置を示す索引タイプ、又は前記値索引に登録されている複数種類の値をツリー状に保持し且つ前記位置情報を前記値と同一のページに保持する配置を示す索引タイプの少なくとも一つを選択し得るものであることを特徴とする請求項1に記載の構造化文書管理システム。
  4. 前記構造化文書管理システムは、前記索引タイプ決定手段により索引タイプを選択された前記構造要素をユーザに提示し、ユーザから前記値索引を生成すべきものの選択指示を入力する入力手段を更に備え、
    前記値索引生成手段は、前記入力手段により入力された選択指示に対応する値索引のみを生成することを特徴とする請求項1に記載の構造化文書管理システム。
  5. 前記値索引生成手段は、前記索引タイプ決定手段により索引タイプを選択された前記構造要素の全てについて、前記値索引を生成することを特徴とする請求項1に記載の構造化文書管理システム。
  6. ある構造要素に対応する第1の値索引が生成された後で、前記第1の記憶手段に新たに構造化文書が記憶されたことによって、当該構造要素の値の特徴が、第1の値索引の生成時における当該構造要素の値の特徴と比べて変化があった場合に、予め順序づけられた値索引の種類のうちで、当該第1の値索引の種類の次に順序づけられている種類を持つ第2の値索引を生成し、第1の値索引と第2の値索引とを兼ね備えるようにしたことを特徴とする請求項1に記載の構造化文書管理システム。
  7. 前記索引タイプ決定手段は、一つの構造要素ごとに又は特定の基準でまとめられた複数の構造要素からなる構造要素群ごとに、前記索引タイプを、前記複数の構造化文書に含まれる値のうち当該一つの構造要素の値の特徴又は当該構造要素群に含まれる構造要素の値の特徴により決定し、
    前記値索引生成手段は、前記一つの構造要素又は前記構造要素群ごとに、前記索引タイプ決定手段により決定された索引タイプが示す配置がなされた前記値索引を生成することを特徴とする請求項1に記載の構造化文書管理システム。
  8. 複数の構造化文書を第1の記憶手段に記憶する第1の記憶ステップと、
    前記構造化文書から複数の構造要素を含む構造情報を抽出する抽出ステップと、
    前記複数の構造化文書から抽出された前記構造情報に含まれる前記構造要素を統合して第2の記憶手段に記憶する第2の記憶ステップと、
    前記構造要素ごとに、当該構造要素の値と当該値が含まれる構造化文書及びその構造要素を特定する位置情報を保持する値索引において前記保持する情報をいかに配置するかを示す索引タイプを、前記値の特徴により決定する決定ステップと、
    前記構造要素ごとに、前記索引タイプ決定手段により決定された索引タイプが示す配置がなされた前記値索引を生成する生成ステップとを有することを特徴とする値索引生成方法。
  9. 構造化文書管理システムとしてコンピュータを機能させるためのプログラムにおいて、
    前記プログラムは、
    複数の構造化文書を第1の記憶手段に記憶する第1の記憶ステップと、
    前記構造化文書から複数の構造要素を含む構造情報を抽出する抽出ステップと、
    前記複数の構造化文書から抽出された前記構造情報に含まれる前記構造要素を統合して第2の記憶手段に記憶する第2の記憶ステップと、
    前記構造要素ごとに、当該構造要素の値と当該値が含まれる構造化文書及びその構造要素を特定する位置情報を保持する値索引において前記保持する情報をいかに配置するかを示す索引タイプを、前記値の特徴により決定する決定ステップと、
    前記構造要素ごとに、前記索引タイプ決定手段により決定された索引タイプが示す配置がなされた前記値索引を生成する生成ステップとをコンピュータに実行させることを特徴とするプログラム。
JP2004195684A 2004-07-01 2004-07-01 構造化文書管理システム、値索引生成方法及びプログラム Pending JP2006018584A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004195684A JP2006018584A (ja) 2004-07-01 2004-07-01 構造化文書管理システム、値索引生成方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004195684A JP2006018584A (ja) 2004-07-01 2004-07-01 構造化文書管理システム、値索引生成方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2006018584A true JP2006018584A (ja) 2006-01-19

Family

ID=35792800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004195684A Pending JP2006018584A (ja) 2004-07-01 2004-07-01 構造化文書管理システム、値索引生成方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2006018584A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917500B2 (en) 2007-03-20 2011-03-29 Kabushiki Kaisha Toshiba System for and method of searching structured documents using indexes
CN101661481B (zh) * 2008-08-29 2012-09-26 国际商业机器公司 存储xml数据的方法、执行xml查询的方法及其装置
JP2015108982A (ja) * 2013-12-05 2015-06-11 富士ゼロックス株式会社 情報処理装置及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917500B2 (en) 2007-03-20 2011-03-29 Kabushiki Kaisha Toshiba System for and method of searching structured documents using indexes
CN101661481B (zh) * 2008-08-29 2012-09-26 国际商业机器公司 存储xml数据的方法、执行xml查询的方法及其装置
JP2015108982A (ja) * 2013-12-05 2015-06-11 富士ゼロックス株式会社 情報処理装置及びプログラム

Similar Documents

Publication Publication Date Title
JP3842577B2 (ja) 構造化文書検索方法および構造化文書検索装置およびプログラム
JP3754253B2 (ja) 構造化文書検索方法、構造化文書検索装置及び構造化文書検索システム
JP4947245B2 (ja) 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造
JP5376163B2 (ja) 文書管理・検索システムおよび文書の管理・検索方法
JP4314221B2 (ja) 構造化文書記憶装置、構造化文書検索装置、構造化文書システム、方法およびプログラム
JP4681544B2 (ja) 配列の生成方法、情報処理装置、及び、プログラム
JP4398988B2 (ja) 構造化文書を管理する装置、方法およびプログラム
US7822788B2 (en) Method, apparatus, and computer program product for searching structured document
JP2008052662A (ja) 構造化文書管理システム及びプログラム
JP2007226452A (ja) 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法
WO2015010509A1 (zh) 一种基于一维线性空间实现Trie树的词典检索方法
JP4247135B2 (ja) 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法
JP2006185408A (ja) データベース構築装置及びデータベース検索装置及びデータベース装置
JP5927886B2 (ja) クエリシステム及びコンピュータプログラム
JP4247108B2 (ja) 構造化文書検索方法、構造化文書検索装置、及びプログラム
JP5844824B2 (ja) Sparqlクエリ最適化方法
JP2000020537A (ja) テキスト検索装置及びテキスト検索プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4309818B2 (ja) 構造化文書管理装置、検索装置、記憶方法、検索方法及びプログラム
JP3632643B2 (ja) 構造化文書管理装置
JP2006018584A (ja) 構造化文書管理システム、値索引生成方法及びプログラム
JP3842572B2 (ja) 構造化文書管理方法および構造化文書管理装置およびプログラム
JP3842574B2 (ja) 情報抽出方法および構造化文書管理装置およびプログラム
JP2004118543A (ja) 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム
JP5439606B1 (ja) 構造化文書管理装置、方法およびプログラム
JP4703705B2 (ja) 構造化データ検索プログラム及び構造化データ検索装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090106