Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4374014B2 - インデクス生成装置及びそのプログラム - Google Patents
[go: Go Back, main page]

JP4374014B2 - インデクス生成装置及びそのプログラム - Google Patents

インデクス生成装置及びそのプログラム Download PDF

Info

Publication number
JP4374014B2
JP4374014B2 JP2006314008A JP2006314008A JP4374014B2 JP 4374014 B2 JP4374014 B2 JP 4374014B2 JP 2006314008 A JP2006314008 A JP 2006314008A JP 2006314008 A JP2006314008 A JP 2006314008A JP 4374014 B2 JP4374014 B2 JP 4374014B2
Authority
JP
Japan
Prior art keywords
index
path
document
program
generation
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.)
Expired - Fee Related
Application number
JP2006314008A
Other languages
English (en)
Other versions
JP2008129842A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006314008A priority Critical patent/JP4374014B2/ja
Priority to US11/689,562 priority patent/US7711726B2/en
Publication of JP2008129842A publication Critical patent/JP2008129842A/ja
Application granted granted Critical
Publication of JP4374014B2 publication Critical patent/JP4374014B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、複数の構造化文書を格納する構造化文書データベースを対象として、与えられた任意の条件を満たす構造化文書を検索するためのインデクスを生成するインデクス生成方法、インデクス生成装置及びそのプログラムに関する。
近年、XML(Extensible Markup Language)で記述された文書(以降、XML文書)に代表される、論理構造を有する構造化文書が普及している。一般に、このような構造化文書は、ディスク装置に配置されたデータベースに蓄積される。
まず、構造化文書の代表例としてXML文書について説明し、用語を定義する。XML文書を記述するXMLとは、タグ(例えば、「<価格>」や「</価格>」)と呼ばれる特定の文字列を、元となるテキストに埋め込んでいく記述法である。タグには開始タグ(例えば、「<価格>」)と終了タグ(例えば、「</価格>」)がある。タグは要素名を記号で囲い込んだ表記であり、開始タグと終了タグは対応して用いられる。例えば、開始タグ「<価格>」と終了タグ「</価格>」は対応しており、その要素名は「価格」である。
また、XML文書は、タグによって階層的な構造を持つこともできる。
さらに、XML文書は、開始タグと終了タグの間に要素と呼ばれるデータをもつ(例えば、「<価格>100</価格>」における要素は「100」)。このような記述を行うことで、XML文書は単体でデータとその意味を定義できる。
また、XMLでは、タグに属性を付加することもできる。属性とは属性名と値のペアである。例えば、「<価格 単位=“円”>100</価格>」における属性名は「単位」であり、値は「円」である。
論理構造を有する構造化文書は、XML文書以外にも存在する。例えば、代表的な構造化文書に、SGML(Standard Generalized Markup Language)がある。SGMLでは、構造化文書内の要素名やデータ型といった論理構造に関する情報である構造定義(DTD:Document Type Definition)を必要とする。一方、XMLは構造定義が必須ではない点が特徴である。
このため、XMLを蓄積するデータベース(以降、XML_DB)は、蓄積する構造化文書の構造定義がない状態でも使用できることが求められる。
また、リレーショナルデータベースにおける検索の検索条件を表現する構文としてSQLがあるように、XML_DBにおける構造指定検索の検索条件を表現する構文としてXPath(‘http://www.w3.org/TR/xpath’参照)や、Xquery(‘http://www.w3.org/TR/xquery’参照)があり、W3C(World Wide Web Consortium)で標準化が進められている。
XML_DB上に蓄積した多数の構造化文書を利用するために、従来、前記の構文(XPath又はXquery)を用いて、ユーザが指定する検索条件に合致した文書あるいは要素名、要素、属性名、値などを検索する構造化文書検索システムが多く開発されている。このようなXML_DBに対する構造化文書検索システムでは、要素名を指定した検索(以降、構造指定検索)を高速で行うために、要素名を意識したインデクスを作ることが一般的である。
ここで、データベースにおけるインデクスは、一般にインデクスを作成する対象を、データベース管理者が指定して生成する。しかし、蓄積するXML文書の論理構造を記述する構造定義がないXML_DBにおいては、どのような論理構造を持つXML文書が蓄積されるのかを知ることはできない。
すなわち、XML_DBに蓄積されるXML文書が、どんな要素で、どんなデータ型の要素を含んでいるのか事前に知ることができないため、どの要素にどのデータ型でインデクスを生成するかということをデータベース管理者が予め指定することは難しい。
前記のように、XML_DBにおいてはデータベース管理者が、生成するインデクスを事前に指定することは難しい。そのため、例えば、XML_DBに蓄積された全XML文書に含まれる要素名・属性名に対するインデクス(以降、構造インデクス)を生成し、構造インデクス中のすべての要素名・属性名に対応したインデクスを漏れなく生成することを前提として、各要素や値によって生成するインデクスのデータ型を決定する方法(以降、フルオートインデクス方式)が、特許文献1に開示されている。
また、インデクスのデータ型をデータベース管理者が指定せずに済む別の方法として、要素名や属性名を識別することが可能な全文検索インデクスを生成する方法(以降、構造指定対応全文検索インデクス方式)が、特許文献2に開示されている。
特開2006−18584号公報(請求項1) 特開平10−240752号公報(段落0023〜0028、図3)
特許文献1に開示されたフルオートインデクス方式では、蓄積された全XML文書に含まれる要素名・属性名に対する構造インデクスを生成するので、任意の要素名を指定した構造指定検索時に、指定した要素名に対するインデクスを使用しての検索実行が可能であるため、検索レスポンス性能が高い。例えば、「/書籍情報/雑誌/価格=100」のような構造指定検索を実行する場合、「/書籍情報/雑誌/価格」に対するインデクスを使用して検索を実行することができる。
しかし、構造指定検索における構造への条件は、単一の構造への指定をする場合だけではない。例えば、XML_DBの構造指定検索の検索条件を表現するXPathでは、descendant軸を用いた指定によって、すべての要素名の中から条件を満たす要素名を複数指定することができる。例えば、「//価格」と言う表記は、「/書籍情報/雑誌/価格」だけではなく、「/書籍情報/中古/雑誌/価格」、「/書籍情報/新古/雑誌/価格」もまとめて指定できると規定されている。
前記のXPathのdescendant軸による複数の要素名を指定した構造指定検索(以降、複数構造指定検索)による検索処理においては、フルオートインデクス方式では要素名ごとに存在するインデクスを用いて検索処理を実行する。このため、インデクスごとに生成された検索結果のマージ処理等が必要となり、検索レスポンス性能が低下するという問題点がある。
これに対し、特許文献2に開示された構造指定対応全文検索インデクス方式では、指定された要素名に関わらず、常にXML文書全体に対する1つのインデクスを用いるため、インデクスごとに生成される検索結果のマージ処理は必要なく、複数構造指定検索であっても、任意の要素名を指定した構造指定検索と同等の検索レスポンスが実現できる。
しかし、構造指定対応全文検索インデクス方式では、指定された要素名に関わらず、常にXML文書全体に対するインデクスを用いるため、指定した要素名以外のデータも処理対象となる。したがって、任意の要素名を指定した構造指定検索の検索レスポンス性能が低いため、複数構造指定検索でもそれと同程度の検索レスポンス性能しか期待できない。
すなわち、複数構造指定検索の場合、フルオートインデクス方式で生成したインデクスによる検索処理や、構造指定対応全文検索インデクス方式で生成したインデクスによる検索処理では、検索レスポンス性能が上がらないという問題点がある。
前記の問題点を解決するためには、単純には、フルオートインデクス方式の考え方に基づいて、全要素名に対して要素名ごとのインデクスをすべて生成する方法論を用いて検索結果をマージする必要のある複数のインデクスをまとめたインデクス(以降、まとめインデクス)を予め生成し、このまとめインデクスを使用して検索する方法が考えられる。
しかし、全要素名に対して要素名ごとのインデクスをすべて生成する方法論を用いて、予めインデクスを生成しようとした場合、すべての構造の組合せに対してインデクスを生成することになり、生成するインデクスの数が膨大になる。このため、インデクスとして管理する情報が膨大となる。また、構造化文書を登録し、インデクスを更新するためにかかる時間も膨大となる。
したがって本発明が解決しようとする課題は、文書構造を有する構造化文書に対して、複数構造指定検索を行うための必要最小限のまとめインデクスを抽出する手段を提供することである。
前記の課題を解決するためになされた本発明は、文書構造を有する構造化文書を格納し、当該構造化文書を検索するためのインデクスを生成するコンピュータにおけるインデクス生成方法であって、このコンピュータが、構造化文書を解析して文書構造を抽出するステップと、抽出した文書構造を正規化することで、階層構造を持った複数の要素から構成される構造インデクスを生成するステップと、生成した構造インデクスにおける各要素の出現数を抽出するステップと、抽出した出現数と所定の第1の閾値とを比較することで、構造インデクスに基づいてインデクスを生成する要素を抽出するステップとを含んで実行することを特徴としている。
なお、本発明の他の態様は、後記する実施形態の中で詳しく説明する。
本発明によれば、構造化文書検索におけるインデクス生成の判断に関して、文書構造をまとめた構造インデクスを作成し、この構造インデクスに含まれる要素のうち、出現頻度の高い要素に対してのみインデクスを抽出することで、必要最小限のインデクスを生成することができ、このインデクスを用いることで複数構造指定検索の検索レスポンス性能を改善することができる。
[第1実施形態]
以下に、本発明の第1実施形態として、複数の要素名から構成される構造化文書に対して、必要最小限のまとめインデクスを生成することにより、インデクスにより複数構造指定検索の検索レスポンス性能を改善するインデクス生成装置について説明する。
本実施形態は、階層関係は異なるものの、要素名が同一である末端の枝が、多く存在する要素名(例えば、後記する図3及び図4に示したXML文書中の要素名「価格」などに該当する。要素名「価格」は、階層関係を考慮すれば「/書籍情報/雑誌/価格」、「/書籍情報/中古/書籍/価格」、そして「/書籍情報/新古/雑誌/価格」が2箇所の3種類、4つのパス名が当てはまる。)について、この要素名に対応するパス名をまとめたインデクスを生成するものである。
(インデクス生成装置)
図1は、本実施形態のインデクス生成装置の構成例を示す図面である。図1に示すように、本実施形態のインデクス生成装置は、処理の結果を表示する表示装置1010と、登録対象文書が入力されるリムーバブルメディアのインタフェースや、登録処置の命令を入力するキーボード、マウス等で具現される入力装置1020と、後記する各プログラムを実行するCPU(Central Processing Unit)1030と、RAM(Random Access Memory)等で具現される主記憶装置1040と、ハードディスクドライブ等で具現される2次記憶装置1050とをバス1060を介して接続して構成され、一般的なコンピュータを用いて具現される。
インデクス生成装置の主記憶装置1040には、インデクス生成装置全体を管理するソフトウェアであるシステム制御プログラム1070と、構造化文書登録処理を実行する登録制御プログラム1080とが展開され、各プログラムが使用する一時記憶領域である作業領域1090が確保されている。
さらに、登録制御プログラム1080は、主記憶装置1040に展開された構造化文書登録プログラム1100、文書構造抽出プログラム1110、構造索引生成プログラム1120、要素出現数管理プログラム1130、索引定義生成プログラム1140、及び値索引生成プログラム1150の各プログラムをサブルーチンとして適宜呼び出す。
なお、本実施形態において、構造索引及び構造インデクスとは、XPathなどで表現される各構造と、構造ごとのインデクスの対応関係を示す情報を表す。この詳細については後記する。また、値索引及び値インデクスとは、構造毎に存在するB−treeやn−gramなどのデータベースで通常使われるインデクスの集合を表す。
ここで、登録制御プログラム1080が呼び出す各プログラムの概要を説明する。
まず、構造化文書登録プログラム1100は、登録処理対象の構造化文書を取得し、文書識別番号を割り当て、格納する処理部を具現するプログラムである。
また、文書構造抽出プログラム1110は、登録対象の構造化文書を入力とし、入力された文書のテキストデータの先頭から任意の文字列をマッチングすることで任意の文字列の存在を判定(以降、テキストスキャン)し、タグを検知することで構造化文書の論理構造を解析し、構造化文書の構造解析木を生成する処理部を具現するプログラムである。
また、構造索引生成プログラム1120は、構造解析木を入力として、それを正規化して同一の階層構造を持つ枝を1つにまとめ、既に構造インデクスがあれば、正規化した構造解析木にあり、かつ、構造インデクスにない枝を構造インデクスに追加し、あるいは構造インデクスがなければ正規化した構造解析木を構造インデクスとして格納する処理部を具現するプログラムである。
また、要素出現数管理プログラム1130は、この構造インデクスにおいてパスに該当する要素を取得し、出現位置として格納するとともに、その総数を出現数として格納する処理をパスごとに実行する処理部を具現するプログラムである。
また、索引定義生成プログラム1140は、パスごとに、その出現数と閾値を比較し、出現数が閾値を超えたパスは、このパスの全要素名をまとめた、まとめインデクスの定義として格納する処理部を具現するプログラムである。
さらに、値索引生成プログラム1150は、このまとめインデクスの定義に基づき、まとめインデクスを生成する処理部を具現するプログラムである。
コンピュータをインデクス生成装置として機能させるために主記憶装置1040に展開された各プログラムは、CD−ROM等の記録媒体に記録されており、これらがハードディスクドライブ等の2次記憶装置1050に格納された後、主記憶装置1040に展開されて実行されるものとする。
なお、各プログラムを記録する媒体は、CD−ROM以外にも、フラッシュメモリ等のリムーバブルメディアを用いることもでき、図示しない外部のサーバ装置等からネットワークを介して伝送された各プログラムを主記憶装置1040に展開して実行する構成としてもよい。
次に、2次記憶装置1050には、パス出現位置管理情報1160と、値インデクス定義管理情報1170と、閾値管理情報1180と、文書番号管理情報1190と、要素番号管理情報1200と、構造インデクス1210とが確保されている。
また、値インデクス格納領域1220と、登録文書格納領域1230が確保されている。
さらに、登録対象文書1240を格納する領域が確保されている。
なお、本実施形態ではこれらの格納領域を、2次記憶装置1050に確保したが、主記憶装置1040や他の外部に設置された記憶装置に確保する構成としてもよい。また、2次記憶装置1050に格納された各情報の詳しい説明は後記する。また、閾値を入力及び参照する表示画面を作成し、データベース管理者が所定の閾値を入力する構成としてもよい。
(インデクス生成装置における処理)
次に、前記の構成を有するインデクス生成装置において実行される処理について説明する。
まず、インデクス生成装置が起動すると、システム制御プログラム1070が、2次記憶装置1050から主記憶装置1040に読み込まれる。そして、入力装置1020から登録対象文書1240を読み込み、2次記憶装置1050の所定の領域に格納する。
次に、入力装置1020から入力される処理開始命令により、システム制御プログラム1070は、登録制御プログラム1080を2次記憶装置1050から主記憶装置1040に読み込んで起動し、構造化文書登録処理を開始する。
ここで、図2は登録制御プログラム1080における構造化文書登録処理を示すPAD(Problem Analysis Diagram)の例である。図2に示したPADを参照しつつ、構造化文書登録処理の手順を説明する(適宜、図1参照)。
はじめに、登録制御プログラム1080は、2次記憶装置1050に格納されているすべての登録対象文書1240について、ステップS10020からステップS10090までに示す一連の登録対象文書格納処理を繰り返し実行する(ステップS10010)。
以下、登録対象文書格納処理について説明する。
まず、登録制御プログラム1080は、構造化文書登録プログラム1100を起動し、処理中の登録対象文書に識別番号を割り当て、インデクス生成装置に格納する(ステップS10020)。なお、構造化文書登録プログラム1100の詳細な処理内容は後記する(図5参照)。
そして、文書構造抽出プログラム1110を起動し、処理中の登録対象文書の論理構造を解析し、登録対象文書の構造解析木を生成する(ステップS10030)。なお、文書構造抽出プログラム1110の詳細な処理内容は後記する(図6参照)。
次に、登録制御プログラム1080は、構造索引生成プログラム1120を起動し、構造解析木を入力として、構造インデクス1210とパス出現位置管理情報1160を更新する(ステップS10040)。なお、構造索引生成プログラム1120の詳細な処理内容は後記する(図9参照)。また、構造インデクス1210とパス出現位置管理情報1160の詳細な説明は後記する。
そして、登録制御プログラム1080は、ステップS10040において構造インデクス1210が更新されたか否かを判定する(ステップS10050)。ここで、構造インデクス1210が更新されている場合は(ステップS10050において‘Yes’)、構造インデクス1210においてステップS10040にて更新された全要素について、ステップS10070からステップS10090までに示す一連の値インデクス定義作成処理を繰り返し実行する(ステップS10060)。以下、ステップS10070からステップS10090までの処理を説明する。
まず、登録制御プログラム1080は、要素出現数管理プログラム1130を起動し、処理対象要素の出現位置と出現数とを取得して、パス出現位置管理情報1160を更新する(ステップS10070)。なお、要素出現数管理プログラム1130の詳細な処理内容は後記する(図12参照)。
次に、ステップS10070において取得した処理対象要素の出現数が、閾値管理情報1180に格納された所定の閾値より大きいか否かを判定し(ステップS10080)、大きい場合は(ステップS10080で‘Yes’)、索引定義生成プログラム1140を起動し、値インデクス定義管理情報1170を更新する(ステップS10090)。なお、索引定義生成プログラム1140の詳細な処理内容(図14参照)、及び値インデクス定義管理情報1170の詳細な説明は後記する。
次に、ステップS10010における、全登録対象文書についてのインデクス生成装置への構造化文書登録処理を終了すると、登録制御プログラム1080は、値索引生成プログラム1150を起動し、値インデクス定義管理情報1170に基づき、値インデクスを生成し、値インデクス格納領域1220に格納し(ステップS10100)、構造化文書登録処理は終了する。なお、値索引生成プログラム1150の詳細な処理内容は後記する(図16参照)。
次に、図2に示した登録制御プログラム1080の各手順において実行される各プログラムの詳細な処理内容について説明する。
(構造化文書登録プログラム)
構造化文書登録プログラム1100は、登録制御プログラム1080から起動され、2次記憶装置1050に格納されている登録対象文書1240の1つを処理対象とし、指定された処理対象である構造化文書を、登録文書格納領域1230に格納する構造化文書格納実施処理を実行する。
指定される処理対象である構造化文書の例を、図3及び図4を用いて説明する。
処理対象である構造化文書は、論理構造を持ち、論理構造は階層的に挿入されたタグで表現されている。図3及び図4に示した構造化文書であるXML文書の論理構造における最上位の要素名は「書籍情報」である。図3に示したXML文書では要素名「書籍情報」2010の下層に要素名「雑誌」2020、要素名「中古」2030、要素名「新古」2040の3つの要素名が存在する。さらに、要素名「雑誌」2020の下層には要素名「価格」2050があり、その要素は「560円」である。要素名「新古」2040の下には要素名「雑誌」2060があり、その下層には要素名「価格」2070(その要素は「360円」)と要素名「価格」2080(その要素は「390円」)の2つがある。
一方、図4に示したXML文書では要素名「書籍情報」7010の下層に要素名「雑誌」7020、要素名「中古」7030の2つの要素が存在する。要素名「雑誌」7020の下には要素名「価格」7040(その要素は「780円」)がある。図4の例では、要素名「書籍情報」7010の下層に、要素名「新古」はない。
次に、構造化文書登録プログラム1100における構造化文書格納実施処理を、図5に示すPADを用いて説明する(適宜、図1参照)。
まず、構造化文書登録プログラム1100は、登録制御プログラム1080から指定された2次記憶装置1050に格納されている登録対象文書1240(例えば、図3に示したXML文書)を、作業領域1090に読み込む(ステップS11010)。
次に、構造化文書登録プログラム1100は、2次記憶装置1050に格納されている文書番号管理情報1190を作業領域1090に読み込み、処理中の登録対象文書1240に割り当てた文書番号として対応付ける(ステップS11020)。
ここで、文書番号管理情報1190は、インデクス生成装置において一意の値(例えば、整数からなる)である。読み込んだ値は、以降、処理中の登録対象文書1240に割り当てた文書番号として使用される。
次に、ステップS11020において文書番号を割り当てた登録対象文書1240を、2次記憶装置1050上の登録文書格納領域1230に格納すると共に、作業領域1090上の文書番号管理情報1190から読み込んだ値を、インデクス生成装置において新たな一意の値に更新し、2次記憶装置1050上に文書番号管理情報1190として格納し(ステップS11030)、構造化文書格納実施処理を終了する。
なお、新たな一意の値としては、例えば、元の値が整数であれば、その整数に1を加えた値である。また、登録対象文書1240が複数ある場合は、登録対象文書1240ごとに、前記の構造化文書格納実施処理を実行する。
(文書構造抽出プログラム)
文書構造抽出プログラム1110は、登録制御プログラム1080から起動され、登録対象文書に対する論理構造解析処理を実行する。文書構造抽出プログラム1110における論理構造解析処理を、図6に示すPADを用いて説明する(適宜、図1参照)。
まず、文書構造抽出プログラム1110は、作業領域1090に構造化文書登録プログラム1100が読み込んだ文書番号を割り当てた登録対象文書を、先頭からテキストスキャンし、最上位の要素を表す開始タグを検出し、作業領域1090に検出した要素の要素名をルートノードの要素名とした構造解析木を生成する(ステップS12010)。
このとき、構造解析木のルートノードを、現在の処理ノードとする。また、登録対象文書の最上位の要素を現す開始タグの位置をテキストスキャンの現在位置とする。
ここで、図3に示したXML文書から生成された構造解析木を示す図7と、図4に示したXML文書から生成された構造解析木を示す図8とを用いて、構造解析木について説明する。図7及び図8に示すように、構造解析木は、丸で表現された要素と直線で表現された枝からなる。
前記のように、図7は、図3に示したXML文書から生成した構造解析木を表す。最上位要素は要素名「書籍情報」3010であることを表している。ここで、「/書籍情報」のような要素名とスラッシュを組み合わせた論理構造を表す表記をパス名と呼ぶ。パス名の最左端のスラッシュは、そのスラッシュの右側の要素名がルートノードの要素名であることを表す。それ以外のスラッシュは、スラッシュの左側の要素名を持つ要素の下層に、スラッシュの右側の要素名の要素が存在することを表す。
パス名「/書籍情報」3010から枝で結ばれた要素名「雑誌」3020、要素名「中古」3030、要素名「新古」3040が、「/書籍情報」の下位構造であることを表している。すなわち、それぞれパス名「/書籍情報/雑誌」3020、パス名「/書籍情報/中古」3030、パス名「/書籍情報/新古」3040と表記できる。
この構造解析木は、さらに、パス名「/書籍情報/雑誌/価格」3050、パス名「/書籍情報/中古/書籍」3060、パス名「/書籍情報/中古/書籍/価格」3070、パス名「/書籍情報/新古/雑誌」3080、パス名「/書籍情報/新古/雑誌/価格」3090、パス名「/書籍情報/新古/雑誌/価格」3100を有する。
また、前記のように、図8は、図4に示したXML文書から生成した構造解析木を表す。最上位要素は要素名「書籍情報」8010であることを表している。
以下、それぞれ、パス名「/書籍情報/雑誌」8020、パス名「/書籍情報/雑誌/価格」8030、パス名「/書籍情報/中古」8040、パス名「/書籍情報/中古/雑誌」8050、パス名「/書籍情報/中古/雑誌/価格」8060の要素を有している。
図6に戻って、文書構造抽出プログラム1110は、登録対象文書について最上位の要素を表す終了タグを検出するまで、ステップS12030からステップS12070までの一連のタグ検出処理を繰り返す(ステップS12020)。
以下、ステップS12030からステップS12070までのタグ検出処理を説明する。
まず、文書構造抽出プログラム1110は、次のタグを検出するまで登録対象文書をテキストスキャンし、タグを検出した位置を現在位置に設定する(ステップS12030)。そして、ステップS12030において検出したタグの種類を判定する(ステップS12040)。
ここで、検出したタグが、開始タグであれば、構造解析木の現在の処理ノードの下位に枝を伸ばし、検出した開始タグの要素名と同じ要素名を持つ要素を生成すると共に、現在の処理ノードを、新たに生成した要素にする(ステップS12050)。
また、検出したタグが、最上位以外の終了タグであれば、現在の処理ノードを構造解析木の現在の処理ノードの上位の要素にする(ステップS12060)。
さらに、検出したタグが、最上位の終了タグであれば、タグ検出処理を終了し(ステップS12070)、構造解析木の生成は完成し、文書構造抽出プログラム1110の論理構造解析処理は終了する。
(構造索引生成プログラム)
構造索引生成プログラム1120は、登録制御プログラム1080から起動され、構造インデクス作成処理を実施する。構造索引生成プログラム1120における構造インデクス作成処理を、図9に示すPADを用いて説明する(適宜、図1参照)。
まず、構造索引生成プログラム1120は、2次記憶装置1050上に、既に構造インデクス1210があるか否かを判定する(ステップS13010)。
ここで、2次記憶装置1050上に構造インデクス1210がある場合、2次記憶装置1050上にある構造インデクス1210を作業領域1090に読み込む(ステップS13020)。
一方、2次記憶装置1050上に構造インデクスがない場合、文書構造抽出プログラム1110が生成した構造解析木の最上位の要素の要素名を、最上位の要素名とした構造インデクス1210を新たに作業領域1090に生成する(ステップS13030)。
次に、構造索引生成プログラム1120は、文書構造抽出プログラム1110が生成した構造解析木が持つ要素名を、枝で結ばれた階層関係に基づき再帰的に調査し、全要素のパス名を抽出する(ステップS13040)。
そして、ステップS13040で抽出した全要素のパス名について、ステップS13060及びステップS13070の構造インデクス更新処理を繰り返す(ステップS13050)。以下、構造インデクス更新処理について説明する。
まず、構造索引生成プログラム1120は、処理中のパス名について、それを満たすパス名が構造インデクス1210に存在するか否かを判定する(ステップS13060)。ここで、存在しない場合は、2次記憶装置1050上の要素番号管理情報1200を作業領域1090に要素番号として読み込み、ステップS13060で判定に使用したパス名を満たす新たな要素を、要素番号を割り振った上で構造インデクス1210に追加し、構造インデクス1210を更新するとともに、要素番号管理情報1200を更新して2次記憶装置1050上に格納する(ステップS13070)。
なお、要素番号管理情報1200は、インデクス生成装置において一意の値である。
そして、全要素のパス名についての構造インデクス更新処理が終了すると、構造インデクス1210に基づいて後記するパス出現位置管理情報1160を作成して、構造インデクス1210と併せて2次記憶装置1050に格納し(ステップS13080)、構造インデクス作成処理は終了する。
ここで、図10を用いて構造インデクスについて説明する。図10は、図7に示した構造解析木から、ステップS13050からステップS13070の処理によって生成した構造インデクスの例である。
図7に示した構造解析木は、パス名で正規化されるため、パス名「/書籍情報/新古/雑誌/価格」の要素は、図10のように1つの要素4010にまとめられたことがわかる。
そして、次の処理として、図10に示した構造インデクスを読み込み、図8に示した構造解析木で更新すると、図11の構造インデクスとなる。この処理により、図10に示した構造インデクスと比べて、図11に示した構造インデクスでは、パス名「/書籍情報/中古/雑誌/価格」の要素9010が新たに追加されたことがわかる。
(要素出現数管理プログラム)
要素出現数管理プログラム1130は、登録制御プログラム1080から起動され、要素出現数管理処理を実施する。要素出現数管理プログラム1130における要素出現数管理処理を、図12に示すPADを用いて説明する(適宜、図1参照)。
まず、要素出現数管理プログラム1130は、2次記憶装置1050上の構造インデクス1210を、作業領域1090に読み込む(ステップS14010)。
次に、読み込んだ構造インデクス1210から、すべての末端要素名を抽出する(ステップS14012)。なお、末端要素名とは、構造インデクス1210に含まれる全要素の中で、より下層に要素を持たない要素の要素名である。
そして、2次記憶装置1050上のパス出現位置管理情報1160を作業領域1090に読み込む(ステップS14015)。
ここで、図13は、図10に示した構造インデクスが生成された際に、同じ生成処理内で生成されたパス出現位置管理情報1160を示すテーブルである。図13を用いてパス出現位置管理情報1160について説明する(適宜、図10参照)。
図13において、パス条件5010は、XPathの表記法で記述された条件であり、例えば、パス条件「//価格」とは、すべての要素の子孫にある要素名が「価格」である要素を表し、図10に示した構造インデクスにおいて、このパス条件を満たす要素は、パス名「/書籍情報/雑誌/価格」4020、パス名「/書籍情報/中古/書籍/価格」4030、パス名「/書籍情報/新古/雑誌/価格」4010であるため、出現位置5020の項目に、それぞれの要素の要素番号を示す「2,5,10」が入力されていることがわかる。
また、出現数5030の項目には、同一レコードのパス条件5010を満たす、構造インデクスの要素の数が入力され、前記の例では「3」が入力さていることがわかる。
次に、要素出現数管理プログラム1130は、ステップS14012で抽出したすべての末端要素名について、ステップS14030からステップS14050までの末端要素追加処理を繰り返す(ステップS14020)。以下、末端要素追加処理について説明する。
まず、要素出現数管理プログラム1130は、処理中の末端要素名と同一の末端要素を持つパスすべてを満たすパス条件を生成する(ステップS14030)。
次に、ステップS14030で生成したパス条件5010と同一のパス条件を持つレコードが、2次記憶装置1050上のパス出現位置管理情報1160に存在するか否かを判定する(ステップS14040)。ここで、存在しなければ、ステップS14030で生成したパス条件を、パス出現位置管理情報1160に、新たなレコードのパス条件として追加する(ステップS14050)。
次に、要素出現数管理プログラム1130は、全末端要素名について、末端要素追加処理が終了すると、パス出現位置管理情報1160から、すべてのパス条件5010を抽出する(ステップS14060)。
そして、ステップS14060で抽出したすべてのパス条件5010について、後記するステップS14080の要素出現数更新処理を繰り返す(ステップS14070)。
このステップS14080における要素出現数更新処理では、2次記憶装置1050上の構造インデクス1210から、処理中のパス条件5010を満たす要素の要素番号を抽出し、処理中のパス条件5010に対応する出現位置5020として、パス出現位置管理情報1160に格納する。また、処理中のパス条件5010を満たす要素の数を出現数5030としてパス出現位置管理情報1160に格納する。
そして、要素出現数管理プログラム1130は、パス出現位置管理情報1160を2次記憶装置1050に格納し(ステップS14090)、要素出現数管理処理を終了する。
(索引定義生成プログラム)
索引定義生成プログラム1140は、登録制御プログラム1080から起動され、値インデクス定義生成処理を実施する。索引定義生成プログラム1140における値インデクス定義生成処理を、図14に示すPADを用いて説明する(適宜、図1参照)。
まず、索引定義生成プログラム1140は、2次記憶装置1050上のパス出現位置管理情報1160(図13参照)を作業領域1090に読み込む(ステップS15010)。次に、パス出現位置管理情報1160から、すべてのパス条件5010を抽出する(ステップS15020)。
次に、索引定義生成プログラム1140は、2次記憶装置1050上の閾値管理情報1180を作業領域1090に、値インデクス生成実施閾値として読み込む(ステップS15025)。そして、2次記憶装置1050上の値インデクス定義管理情報1170を、作業領域1090に読み込む(ステップS15027)。
ここで、図15は、値インデクス定義管理情報1170を示すテーブルである。図15を用いて、値インデクス定義管理情報1170について説明する。
図15に示した値インデクス定義管理情報1170において、インデキシング対象パス6010は、まとめインデクスを作成する際にインデキシングの対象となる1つ以上の要素のパス名を表す項目である。
また、作成状況6020は、このインデクス生成装置において、現在の作成状況に対応するまとめインデクスのステータスが、「作成済み」であるか否かを表す。
なお、本実施形態ではフルオートインデクス方式を前提としているため、インデキシング対象パス6010が単一のパス名からなるインデクスは、すべて作成することとしている。
次に、索引定義生成プログラム1140は、ステップS15020で抽出したすべてのパス条件5010について、ステップS15040からステップS15070までの値インデクス作成判断処理を繰り返す(ステップS15030)。以下、この値インデクス作成判断処理について説明する。
まず、処理中のパス条件5010に対応する出現数5030と値インデクス生成実施閾値を比較し、出現数5030の方が大きいか否かを判定する(ステップS15040)。ここで、出現数5030の方が大きい場合は、処理中のパス条件5010に対応する出現位置5020の要素番号を持つ要素を表すパス名を生成し、複数の要素番号がある場合、その数だけのパス名群を生成する(ステップS15050)。なお、パス名はパス名に対応する要素に割り振られた要素番号順に並べ替える。
次に、索引定義生成プログラム1140は、ステップS15050で生成したパス名又はパス名群と完全に等しいインデキシング対象パス6010が、値インデクス定義管理情報1170に存在するか否かを判定する(ステップS15060)。ここで、存在しない場合は、ステップS15050で生成したパス名又はパス名群を、インデキシング対象パス6010として、値インデクス定義管理情報1170に追加し、作成状況6020を「未作成」に変更する(ステップS15070)。
なお、ステップS15060における、ステップS15050で生成したパス名又はパス名群と、値インデクス定義管理情報1170のインデキシング対象パス6010との存否の判定は完全一致ではなく、インデキシング対象パス6010が、ステップS15050で生成したパス名又はパス名群の一部と一致するか否かの判定であってもよい。このとき、インデキシング対象パス6010がステップS15050で生成したパス名又はパス名群の一部と一致する場合、当該インデキシング対象パス6010をステップS15050で生成したパス名又はパス名群で更新する。
そして、すべてのパス条件5010について値インデクス作成判断処理が終了すると、索引定義生成プログラム1140は、値インデクス定義管理情報1170を2次記憶装置1050に格納して(ステップS15080)、値インデクス定義生成処理は終了する。
(値索引生成プログラム)
値索引生成プログラム1150は、登録制御プログラム1080から起動され、値インデクス生成制御処理を実施する。値索引生成プログラム1150における値インデクス生成制御処理を、図16に示すPADを用いて説明する(適宜、図1,図15参照)。
まず、値索引生成プログラム1150は、2次記憶装置1050上の値インデクス定義管理情報1170を作業領域1090に読み込む(ステップS16010)。そして、読み込んだ値インデクス定義管理情報1170から、すべてのインデキシング対象パス6010を抽出する(ステップS16020)。
次に、値索引生成プログラム1150は、ステップS16020で抽出したすべてのインデキシング対象パス6010について、値インデクス作成実施処理を繰り返す(ステップS16030)。以下に値インデクス作成実施処理を説明する。
まず、値索引生成プログラム1150は、処理中のインデキシング対象パス6010で指定されたパスすべての値に対してインデクスを生成し、生成したインデクスは、2次記憶装置1050上の値インデクス格納領域1220に格納する(ステップS16040)。次に、処理中のインデキシング対象パス6010に対応する値インデクス定義管理情報1170の作成状況6020を「作成済み」にする(ステップS16050)。
そして、すべてのインデキシング対象パス6010について、値インデクス作成実施処理が終了すると、値インデクス定義管理情報1170を2次記憶装置1050に格納する(ステップS16060)し、値インデクス生成制御処理は終了する。
以上、説明した構造化文書登録プログラム1100、文書構造抽出プログラム1110、構造索引生成プログラム1120、要素出現数管理プログラム1130、索引定義生成プログラム1140、値索引生成プログラム1150を適宜呼び出すことで、登録制御プログラム1080は、構造化文書登録処理を実行する。
以上説明した本実施形態に係る構造化文書登録処理は、例えば、パス条件「//価格」と言う複数構造指定を満たす要素が、パス名「/書籍情報/雑誌/価格」の要素、パス名「/書籍情報/中古/書籍/価格」の要素、パス名「/書籍情報/中古/雑誌/価格」の要素、パス名「/書籍情報/新古/雑誌/価格」の要素のように複数存在する際に効果を発揮する。
すなわち、前記の例において、仮に、要素ごとのインデクスしかない場合にはパス名「/書籍情報/雑誌/価格」のインデクス、パス名「/書籍情報/中古/書籍/価格」のインデクス、パス名「/書籍情報/中古/雑誌/価格」のインデクス、パス名「/書籍情報/新古/雑誌/価格」のインデクス、といった4つのインデクスでそれぞれ検索を実施し、その結果をマージする必要がある。この場合は4回の検索と3回のマージが必要である。
一方、パス名「/書籍情報/中古/書籍/価格」の要素、パス名「/書籍情報/中古/雑誌/価格」の要素、パス名「/書籍情報/新古/雑誌/価格」の要素をまとめてインデキシングした、パス条件「//価格」に対するインデクス(まとめインデクス)を用いて検索する場合であればマージは必要ない。また、この場合、検索は1回実行するだけでよい。
このように、同一構造名の要素が増えてきた際に、パス条件を満たすパス名を持つ要素を見つけ出し、グルーピングし、まとめインデクスを生成することにより、複数構造指定検索時にまとめインデクスを利用が可能となる。まとめインデクスの利用により、複数のインデクスによる検索結果をマージするなどの余分な処理を省くことで、検索処理にかかる時間を短縮することが可能となる。
[第2実施形態]
前記した第1実施形態においては、自動的にインデクスを生成する方式を説明したが、データベース管理者に対して、生成するインデクスに関する情報を通知する方式であってもよい。通知した後に、データベース管理者の確認を行った上で自動的に生成する方式であってもよい。又は、データベース管理者が後で手動にて生成する方式であってもよい。
以下、複数の要素から構成される構造化文書に対して、必要最小限のまとめインデクスを生成することにより、インデクスにより複数構造指定検索の検索レスポンス性能を改善する、インデクス生成装置において、さらに、登録された構造化文書から構造インデクスを生成し、要素の出現数を蓄積し、値インデクス定義を作り、作成した値インデクス定義に基づく情報をユーザに通知する機能を持つインデクス生成装置を、第2実施形態として説明する。
(インデクス生成装置)
ここで、図17は、本実施形態におけるインデクス生成装置の構成例を示す図面である。
図17に示した本実施形態のインデクス生成装置は、図1に示した第1実施形態のインデクス生成装置から、主記憶装置1040上の登録制御プログラム1080a及び索引生成確認プログラム17010を変更した点で異なっている。また、本実施形態のインデクス生成装置において、第1実施形態と同様の構成要素については、同じ参照符号を付してその説明は省略する。
(インデクス生成装置における処理手順)
以下、第1実施形態のインデクス生成装置の構造化文書登録処理からの変更点のみを説明する。
まず、本実施形態のインデクス生成装置が起動すると、システム制御プログラム1070が、2次記憶装置1050から主記憶装置1040に読み込まれる。そして、入力装置1020から登録対象文書1240を読み込み、2次記憶装置1050の所定の領域に格納する。
次に、入力装置1020から入力される処理開始命令により、システム制御プログラム1070は、登録制御プログラム1080aを2次記憶装置1050から主記憶装置1040に読み込んで起動し、本実施形態の値インデクス生成確認を伴う構造化文書登録処理を開始する。
ここで、図18は、本実施形態の値インデクス生成確認を伴う構造化文書登録処理の流れを示すPAD(Problem Analysis Diagram)の例である。図18に示したPADを参照しつつ、本実施形態の構造化文書登録処理の手順を説明する(適宜、図17参照)。なお、本実施形態の値インデクス生成確認を伴う構造化文書登録処理は、図2に示した第1実施形態の構造化文書登録処理と比べて、ステップS19010のみが異なっている。
本実施形態の構造化文書登録処理は、ステップS19010で、登録制御プログラム1080aが索引生成確認プログラム17010を起動し、値インデクス定義管理情報1170に基づき、データベース管理者に値インデクスの生成の要否を確認したうえで値インデクスを生成し、値インデクス格納領域1220に格納して終了する。
(索引生成確認プログラム)
次に、ステップS19010で起動される索引生成確認プログラム17010について詳しく説明する。
索引生成確認プログラム17010は、登録制御プログラム1080aから起動され、確認式値インデクス生成制御処理を実施する。索引生成確認プログラム17010における確認式値インデクス生成制御処理を、図19に示すPADを用いて説明する(適宜、図17参照)。
確認式値インデクス生成制御処理は、図16で説明した第1実施形態の値インデクス生成制御処理と、ステップS16030a及びステップS20010が異なる。
索引生成確認プログラム17010は、図16で説明した値インデクス生成制御処理と同様に、ステップS16010及びステップS16020を実行し、ステップS16020で、値インデクス定義管理情報1170(図15参照)から抽出したすべてのインデキシング対象パス6010について、値インデクス作成確認処理を繰り返す(ステップS16030a)。
この値インデクス作成確認処理において、処理中のインデキシング対象パス6010についてのインデクスを生成するか否かを判断する情報を取得する(ステップS20010)。ここで、索引生成確認プログラム17010は、後記する値インデクス生成確認画面を作成して表示装置1010に表示し、この値インデクス生成確認画面を見たデータベース管理者の入力装置1020からの入力に従って、インデクスを生成するか否かを判断する情報を取得する。
ここで、図20は、ステップS20010において、索引生成確認プログラム17010が作成する値インデクス生成確認画面の例である。
図20に示した値インデクス生成確認画面は、処理中の値インデクス定義管理情報1170に基づいて作成され、インデキシング対象パス18010、作成状況18020及び回答18030の項目を含んで構成される。以下、各項目について説明する。
インデキシング対象パス18010は、値インデクス定義管理情報1170に対応して、インデクス生成の対象となるパス名を表している。インデキシング対象パス18010に複数のパス名が書かれている場合、まとめインデクスを生成可能であることを示している。
作成状況18020は、「作成済み」又は「未作成」の値を持ち、値インデクス定義管理情報1170に対応して、当該作成状況18020に対応するインデキシング対象パス18010に対するインデクスが生成されていれば「作成済み」に、作成されていなければ「未作成」になる。
回答18030は、対応する作成状況18020が「未作成」の場合にのみ表示され、対応するインデキシング対象パス18010に対するインデクスを生成するか否か選択するラジオボタンと、ラジオボタンで選択された情報を送信する場合にマウス等で選択する決定ボタン18040とを含んでいる。
値インデクス生成確認画面において、データベース管理者が決定ボタン18040を選択することで、ステップS20010は終了し、回答18030のラジオボタンで「生成する」が選択されていれば、インデクスを生成することを示す情報を取得して、索引生成確認プログラム17010は、処理中のインデキシング対象パス6010で指定されたパスすべての値に対してインデクスを生成し、この生成したインデクスを、値インデクス格納領域1220に格納し(ステップS16040)、値インデクス定義管理情報1170の処理中のインデキシング対象パス6010に対応する作成状況6020を「作成済み」にする(ステップS16050)。
そして、すべてのインデキシング対象パス6010について、値インデクス作成確認処理が終了すると、索引生成確認プログラム17010は、作業領域1090上の値インデクス定義管理情報1170を2次記憶装置1050に格納して(ステップS16060)、確認式値インデクス生成制御処理が終了する。
以上が、本実施形態における登録処理で、第1実施形態の処理と異なる処理の内容である。
このように、同一構造名の要素が増えてきた際に、条件を満たすパスを見つけ出し、グルーピングしてデータベース管理者に提示し、データベース管理者の指示により、データベース管理者の意図を踏まえたうえで、複数構造指定検索が行われた際に1つのまとめインデクスを利用して、複数のインデクスによる検索結果をマージしたり、指定以外の要素のデータを呼び出すなどの余分な処理を省くことが可能となり、その結果、検索処理にかかる時間を短縮することが可能となる。
本実施形態では、まとめインデクスの生成状況をデータベース管理者に通知した後に、データベース管理者にインデクス作成の可否を確認し、インデクスを生成するとの命令を受けた場合には生成する方式を説明したが、まとめインデクスの生成状況をデータベース管理者に通知するだけの構成としてもよい。
この場合、データベース管理者が後で手動にてインデクスを生成する方式となる。
また、構造化文書の登録処理時にデータベース管理者への通知を出力するのではなく、データベース管理者から問い合わせがあった際に出力する方式としてもよい。
[第3実施形態]
第1実施形態においては、末端要素のみに着目してまとめインデクスを生成する方式を例に説明した。また、第1実施形態においては単一の要素名をインデキシング対象とする方式を例に説明した。
しかしながら、パス条件「//雑誌/価格」の要素が「700円」である、と言った階層構造を意識した複数構造指定検索のように、パス条件「//価格」等の末端要素だけに着目して生成したまとめインデクスが使用できない場合もあり、そこで、末端要素以外の要素や複数の要素名の階層的な組み合わせ(例えば、パス条件「//雑誌/価格」などのように、階層構造を意識した複数の要素名からなるパス条件)を対象としたまとめインデクスを生成しておき、それを利用するインデクス生成装置を考える。
以下、複数の要素から構成される構造化文書に対して、必要最小限のまとめインデクスを生成することにより、インデクスにより複数構造指定検索の検索レスポンス性能を改善する、インデクス生成装置において、さらに、登録された構造化文書から構造インデクスを生成し、階層構造を意識した、複数の要素名の組み合わせからなるパス名の出現数を蓄積し、インデクス定義を生成する機能を持つインデクス生成装置を、第3実施形態として説明する。
(インデクス生成装置)
ここで、図21は、本実施形態におけるインデクス生成装置の構成例を示す図面である。
図21に示した本実施形態のインデクス生成装置は、図1に示した第1実施形態のインデクス生成装置から、主記憶装置1040上の要素出現数管理プログラム1130b及びパス出現位置管理情報1160bを変更した点で異なっている。また、本実施形態のインデクス生成装置において、第1実施形態と同様の構成要素については、同じ参照符号を付してその説明は省略する。
(インデクス生成装置における処理手順)
以下、第1実施形態のインデクス生成装置の構造化文書登録処理からの変更点を説明する。本実施形態のインデクス生成装置における処理手順は、図2に示した第1実施形態の構造化文書登録処理と、ステップS10070における要素出現数管理プログラム1130の実行内容のみが異なる。
そこで、本実施形態の要素出現数管理プログラム1130bの処理手順についてのみ説明する。
(要素出現数管理プログラム)
要素出現数管理プログラム1130bは、登録制御プログラム1080から起動され、パス出現数管理処理を実施する。要素出現数管理プログラム1130bにおけるパス出現数管理処理を、図22に示すPADを用いて説明する。
本実施形態のパス出現数管理処理は、図12で説明した第1実施形態の要素出現数管理プログラム1130の要素出現数管理処理と、ステップS14012b、ステップS14020b、及びステップS14030bが異なる。
まず、要素出現数管理プログラム1130bは、構造インデクス1210からすべての階層構造を意識した要素名の組み合わせを抽出し(ステップS14012b)、2次記憶装置1050上のパス出現位置管理情報1160bを作業領域1090に読み込む(ステップS14015)。
次に、要素出現数管理プログラム1130bは、ステップS14012bで抽出したすべての階層構造を意識した要素名の組み合わせについて、パス追加処理を繰り返す(ステップS14020b)。以下、ステップS14030bからステップS14050までのパス追加処理について説明する。
まず、要素出現数管理プログラム1130bは、処理中の要素名の組み合わせと同一の要素名の組み合わせを持つパスすべてを満たすパス条件を生成する(ステップS14030b)。
ここで、本実施形態のパス出現数管理処理により生成されるパス出現位置管理情報1160bの例を、図23に示す。図13に示した第1実施形態の末端要素のみを扱ったパス出現位置管理情報1160と比べ、パス条件5010bに、単一の要素名だけでなく、構造を意識した複数の要素名からなる項目があることがわかる。また、図23に示したパス出現位置管理情報1160bでは、パス条件「//価格」23010の出現位置5020に含まれる要素「2,5,10」が、パス条件「//雑誌/価格」23020及びパス条件「//書籍/価格」23030の出現位置5020の要素にも含まれていることがわかる。
このよう生成されたパス出現位置管理情報1160bにより、図14に示した索引定義生成プログラム1140が実行する値インデクス定義生成処理において、パス条件「//雑誌/価格」23020の要素の出現数5030が、値インデクス生成実施閾値よりも大きくなれば、「//雑誌/価格」23020に含まれる要素群に対してインデクスを生成する。
以降、要素出現数管理プログラム1130bは、図12で説明した第1実施形態の要素出現数管理プログラム1130の要素出現数管理処理と同様の手順を実行する(ステップS14040ないしステップS14090)。
以上が、本実施形態における登録処理で、第1実施形態の処理と異なる処理の内容である。
このように、同一構造名の要素が増えてきた際に、パス条件を満たすパス名を持つ要素を見つけ出してグルーピングし、まとめインデクスを生成することにより、階層を意識した複数構造指定検索時に、まとめインデクスを利用することが可能となる。また、このようなまとめインデクスの利用により、複数のインデクスによる検索結果をマージするなどの余分な処理を省くことで、検索処理にかかる時間を短縮することが可能となる。
[第4実施形態]
第1実施形態ないし第3実施形態のインデクス生成装置は、フルオートインデクス方式を前提としており、構造インデクス1210の各末端要素に対するインデクスを必ず生成することを説明した。
ここで、各末端要素を実際に持つ登録文書が多く、インデクスがなければ検索時間を要する要素にだけインデクスを生成する機能を有することにしてもよい。
例えば、テキストスキャンで登録文書を直接検索することで、パス条件「/新古/雑誌/価格」に対しての検索を0.01秒で終えられる場合には、パス条件「/新古/雑誌/価格」に対するインデクスは生成しなくともよいと考えられる。
以下、複数の要素から構成される構造化文書に対して、インデクスにより複数構造指定検索の検索レスポンス性能を改善するために、必要最小限のまとめインデクスを生成するインデクス生成装置において、さらに、全登録文書内での当該要素の実際の出現数を蓄積し、出現数が多い要素にのみ、インデクスを生成することと判断する機能を有するインデクス生成装置を、第4実施形態として説明する。
ここで、図24は、本実施形態におけるインデクス生成装置の構成例を示す図面である。図24に示したインデクス生成装置は、図21に示した第3実施形態のインデクス生成装置から、主記憶装置1040上の要素出現数管理プログラム1130c及び索引定義生成プログラム1140cと、2次記憶装置1050上の閾値管理情報1180cを変更した点で異なっている。また、本実施形態のインデクス生成装置において、第1実施形態及び第3実施形態と同様の構成要素については、同じ参照符号を付してその説明は省略する。
(インデクス生成装置における処理手順)
本実施形態のインデクス生成装置における処理手順は、図2に示した第1実施形態の構造化文書登録処理と、ステップS10070における要素出現数管理プログラム1130の実行内容及びステップS10090における索引定義生成プログラム1140の実行内容のみが異なる。そこで、本実施形態の要素出現数管理プログラム1130c及び索引定義生成プログラム1140cの処理手順についてのみ説明する。
(要素出現数管理プログラム)
要素出現数管理プログラム1130cは、登録制御プログラム1080から起動され、構造出現数を考慮したパス出現数管理処理を実施する。要素出現数管理プログラム1130cにおけるパス出現数管理処理を、図25に示すPADを用いて説明する。本実施形態の構造出現数を考慮したパス出現数管理処理は、図22で説明した第3実施形態のパス出現数管理処理と、ステップS14080cが異なる。
まず、要素出現数管理プログラム1130cは、構造インデクス1210からすべての要素を抽出し(ステップS14012b)、2次記憶装置1050上のパス出現位置管理情報1160b(図23参照)を作業領域1090に読み込む(ステップS14015)。
次に、要素出現数管理プログラム1130cは、ステップS14012bで抽出したすべての階層構造を意識した要素名の組み合わせについて、ステップS14030bないしステップS14050のパス追加処理を繰り返す(ステップS14020b)。
まず、要素出現数管理プログラム1130cは、処理中の要素名の組み合わせと同一の要素名の組み合わせを持つパスすべてを満たすパス条件を生成する(ステップS14030b)。
次に、ステップS14030bで生成したパス条件5010と同一のパス条件を持つレコードが、2次記憶装置1050上のパス出現位置管理情報1160bに存在するか否かを判定する(ステップS14040)。ここで、存在しなければ、ステップS14030bで生成したパス条件を、パス出現位置管理情報1160bに、新たなレコードのパス条件として追加する(ステップS14050)。
そして、パス追加処理で更新されたパス出現位置管理情報1160bからすべてのパス条件を抽出し(ステップS14060)、すべてのパス条件に対して、ステップS14080cの処理を繰り返す(ステップS14070)。
ステップS14080cにおいて、要素出現数管理プログラム1130cは、2次記憶装置1050上の構造インデクス1210から、処理中のパス条件5010bを満たす要素の要素番号を抽出し、処理中のパス条件5010bに対応する出現位置5020として、パス出現位置管理情報1160bに格納する。また、処理中のパス条件5010bを満たす要素の数を出現数5030としてパス出現位置管理情報1160bに格納する。
さらに、全登録文書の中で処理中のパス条件5010bを満たす構造の出現数を計数して、「全登録文書中での構造出現数」25010としてパス出現位置管理情報1160bに格納する。
ここで、ステップS14080cを実行後における本実施形態のパス出現位置管理情報1160bの例を、図26に示す。図26に示したパス出現位置管理情報1160bは、図23に示した第3実施形態のパス出現位置管理情報1160bに、パス条件5010bの項目が「/雑誌/価格」23040、「/中古/書籍/価格」23050、及び「/新古/書籍/価格」23060であるレコードが追加されていることがわかる。
これらのレコードは、ステップS14080cにおいて、要素出現数管理プログラム1130cが、全登録文書の中で処理中のパス条件5010bを満たす構造の出現数を計数して、「全登録文書中での構造出現数」25010として格納することで、登録されたものである。
そして、要素出現数管理プログラム1130cは、パス出現位置管理情報1160bを2次記憶装置1050に格納して(ステップS14090)、構造出現数を考慮したパス出現数管理処理を終了する。
(索引定義生成プログラム)
索引定義生成プログラム1140cは、登録制御プログラム1080から起動され、構造出現数を考慮した値インデクス定義生成処理を実施する。索引定義生成プログラム1140cにおける構造出現数を考慮した値インデクス定義生成処理の流れを、図27に示すPADを用いて説明する。本実施形態の構造出現数を考慮した値インデクス定義生成処理は、図14で説明した第1実施形態の値インデクス定義生成処理と比べて、ステップS15025が、ステップS15025cに置き換わっていることが異なり、さらにステップS15030とステップS5040との間にステップS27010を新たに有することが異なる。
なお、本実施形態において閾値管理情報1180cは、パス出現数の閾値である値インデクス生成実施閾値と併せて、構造出現数の閾値である構造出現数閾値を含んでいる。
まず、索引定義生成プログラム1140cは、2次記憶装置1050上のパス出現位置管理情報1160b(図23参照)を作業領域1090に読み込み(ステップS15010)、パス出現位置管理情報1160bに含まれるすべてのパス条件5010を抽出する(ステップS15020)。
次に、2次記憶装置1050上の閾値管理情報1180を作業領域1090に、構造出現数閾値及び値インデクス生成実施閾値として読み込み(ステップS15025c)、値インデクス定義管理情報1170を、作業領域1090に読み込む(ステップS15027)。
次に、索引定義生成プログラム1140は、ステップS15020で抽出したすべてのパス条件5010bについて、ステップS27010からステップS15070までの値インデクス作成判断処理を繰り返す(ステップS15030)。
そして、この値インデクス作成判断処理において、索引定義生成プログラム1140は、処理中のパス条件5010bに対応する全登録文書中での構造出現数25010(図26参照)が構造出現数閾値より大きいか否かを判定し(ステップS27010)、ここで、構造出現数閾値より大きい場合は、すでに説明したステップS15040以降の手順を実行して、構造出現数を考慮した値インデクス定義生成処理が終了する。
以上が、本実施形態における登録処理中で、第3実施形態の処理と異なる処理の内容である。
以上、説明した本実施形態のインデクス生成装置は、値インデクスを生成していないパスに対して検索を実施する際は、登録文書格納領域1230内の登録文書をテキストスキャンする。
このように、各末端要素を実際に持つ登録文書が多い場合に、出現数が多い要素にだけインデクスを生成することで、必要最小限のインデクスを生成することが可能となり、その結果、インデクスの更新・メンテナンスにかかる時間を短縮することが可能となる。
[第5実施形態]
第1実施形態ないし第4実施形態においては、構造インデクス1210における要素の出現数又は登録文書格納領域中の文書における構造の出現数に基づき、インデクスの生成の可否を判断することを説明した。
前記のようなインデクス生成装置は、新たなインデクスを生成したことにより不要となったインデクスを削除する機能を有することもでき、削除を自動的に実施することなく、削除すると判定したことを示す情報をデータベース管理者に通知する機能を有することもできる。
以下、複数の要素から構成される構造化文書に対して、必要最小限のまとめインデクスを生成することにより、インデクスにより複数構造指定検索の検索レスポンス性能を改善するインデクス生成装置において、さらに、インデキシング対象の重複の割合が閾値よりも高いインデクスが存在する場合、インデクスを重複する一方を削除する機能を持つインデクス生成装置を、第5実施形態として説明する。
(インデクス生成装置)
ここで、図28は、本実施形態におけるインデクス生成装置の構成例を示す図面である。図28に示したインデクス生成装置は、図24に示した第4実施形態のインデクス生成装置から、主記憶装置1040上の索引定義生成プログラム1140d及び値索引生成プログラム1150dを変更した点で異なっている。また、本実施形態のインデクス生成装置において、第4実施形態と同様の構成要素については、同じ参照符号を付してその説明は省略する。
以下、第4実施形態からの変更点のみを説明する。
(索引定義生成プログラム)
索引定義生成プログラム1140dは、登録制御プログラム1080から起動され、構造出現数を考慮した削除あり値インデクス定義生成処理を実施する。索引定義生成プログラム1140dにおける構造出現数を考慮した削除あり値インデクス定義生成処理を、図29に示すPADを用いて説明する。
本実施形態のパス出現数管理処理は、図27で説明した第4実施形態の構造出現数を考慮した値インデクス定義生成処理のステップS15070の後に、ステップS30010ないしステップS30040を含んで実行される。なお、図29に示したPADにおいて、図27に示したPADのステップS15010ないしステップS15027は省略している。
以下、ステップS30010以降の処理についてのみ説明する。
ステップS15070までの手順により値インデクス定義管理情報1170(図15参照)を更新すると、索引定義生成プログラム1140dは、値インデクス定義管理情報1170のインデキシング対象パス6010について、値インデクス削除定義作成処理を繰り返し実行する(ステップS30010)。以下、値インデクス削除定義作成処理について説明する。
まず、索引定義生成プログラム1140dは、パス出現位置管理情報1160b(図26参照)から処理中のインデキシング対象パス6010に含まれる各パス名に対応する全登録文書中での構造出現数25010を取得する(ステップS30020)。
次に、ステップS30020で取得した各パス名の構造出現数を合計し、処理中のインデキシング対象パス6010の合計の構造出現数を算出すると共に、各パス名の構造出現数と合計の構造出現数を比較し、合計の構造出現数に対する割合が規定値以上であるパス名があるか否かを判定する(ステップS30030)。
ステップS30030の判定において、規定値以上の割合のパスがある場合は、値インデクス定義管理情報1170において、パス名の構造出現数が合計の構造出現数に対して規定の割合よりも大きいパス名をインデキシング対象パス6010としているインデクス定義があれば、それに対応する作成状況6020の項目を「未削除」にする。
そして、索引定義生成プログラム1140dは、作業領域1090上の値インデクス定義管理情報1170を2次記憶装置1050に格納して(ステップS15080)、値インデクス定義生成処理を終了する。
(値索引生成プログラム)
値索引生成プログラム1150dは、登録制御プログラム1080から起動され、値インデクス更新制御処理を実施する。値索引生成プログラム1150dにおける値インデクス更新制御処理を、図30に示すPADを用いて説明する。本実施形態の値インデクス更新制御処理は、図16で説明した第1実施形態の値インデクス生成制御処理と比べ、ステップS31010ないしステップS31030の処理を有する点で異なっている。
はじめに、値索引生成プログラム1150dは、2次記憶装置1050上の値インデクス定義管理情報1170を作業領域1090に読み込み(ステップS16010)、すべてのインデキシング対象パス6010を抽出する(ステップS16020)。
そして、ステップS16020で抽出したすべてのインデキシング対象パス6010について、値インデクス更新実施処理を繰り返す(ステップS16030)。以下に値インデクス更新実施処理を説明する。
まず、値索引生成プログラム1150dは、値インデクス定義管理情報1170を参照して処理中のインデキシング対象パス6010に対応する作成状況6020が「未作成」又は「未削除」であるかを判定する(ステップS31010)。ここで、作成状況6020が「未作成」の場合、処理中のインデキシング対象パス6010で指定されたパスすべての値に対してインデクスを生成し、生成したインデクスは、2次記憶装置1050上の値インデクス格納領域1220に格納し(ステップS16040)、処理中のインデキシング対象パス6010に対応する値インデクス定義管理情報1170の作成状況6020を「作成済み」にする(ステップS16050)。
一方、ステップS31010の判定において、「未削除」の場合、処理中のインデキシング対象パス6010で指定されたパス名の要素に対して生成されたまとめインデクスを、値インデクス格納領域1220から削除し(ステップS31020)、処理中のインデキシング対象パス6010に対応する作成状況6020を「削除済み」にする(ステップS31030)。
そして、すべてのインデキシング対象パス6010について値インデクス更新実施処理が終了すると、値索引生成プログラム1150dは、作業領域1090上の値インデクス定義管理情報1170を2次記憶装置1050に格納して(ステップS16060)、値インデクス更新制御処理を終了する。
以上が、本実施形態における登録処理中で、第4実施形態の処理と異なる処理の内容である。
以上、説明した本実施形態のインデクス生成装置は、値インデクスが削除済みであるパス名に対して検索を実施する際は、このパス名を包含し、かつ、このパス名の構造出現数に最も近い構造出現数をもつインデキシング対象パス6010に対するインデクスを利用し、得られた検索結果からこのパス名の要素以外の要素を排除することにより、検索を可能とする。
前記のように、まとめインデクスを作ったことにより不要になったインデクスを削除することで、必要最低限のインデクスのみを生成することが可能となり、その結果、インデクスの更新・メンテナンスにかかる時間を短縮することが可能となる。
本実施形態は、第1実施形態に、階層構造を意識した複数の要素名からなるパス名を対象としたまとめインデクスを生成する第3実施形態の機能と、各末端要素を実際に持つ登録文書が多い場合にだけインデクスを生成する第4実施形態の機能を追加したインデクス生成装置に、さらに新たなインデクスを生成したことにより不要となったインデクスを削除する機能を追加したインデクス生成装置である。
すなわち、複数の要素から構成される構造化文書に対して、必要最小限のまとめインデクスを生成することにより、インデクスにより複数構造指定検索の検索レスポンス性能を改善するインデクス生成装置において、さらに、登録された構造化文書から構造インデクスを生成し、階層構造を意識した、複数の要素名の組み合わせからなるパスの出現数を蓄積し、インデクス定義を生成する機能と、全登録文書内での当該要素の実際の出現数を蓄積し、出現数が多い要素にだけインデクスを生成することとするインデクス定義を生成する機能と、インデキシング対象の重複の割合が閾値よりも高いインデクスが存在する場合、重複するインデクスの一方を削除する機能を持つインデクス生成装置である。
これらの機能をもつインデクス生成装置は、登録された構造化文書から抽出した各構造の出現数と、登録された構造化文書から生成した構造インデクス1210に基づき蓄積した要素の出現数とを利用することで、初期においては各パス名に対するインデクスをもたず、登録文書格納領域1230に格納した構造化文書を直接テキストスキャンして検索し、運用することにより生じる登録文書数の増加に伴い、必要最低限のインデクス定義を随時作成するインデクス生成装置として利用可能となる。
以上、本発明の実施形態を説明したが、本発明は前記の実施形態に限定されることなく様々に変形して実施可能である。例えば、第2実施形態に第3実施形態、第4実施形態、第5実施形態の機能を追加することで、データベース管理者に対して、生成するインデクスに関する情報を通知する方式とすることもでき、通知した後に、データベース管理者の確認を行った上で自動的にインデクスを生成する方式とすることもできる。又は、データベース管理者が後で手動にてインデクスを生成する方式としてもよい。
また、第4実施形態、第5実施形態で説明した機能は、第1実施形態にそれぞれ単独で組み合わせてもよい。また、それぞれのインデクス生成装置は、生成したインデクス定義に基づきインデクを自動的に作るのではなく、第2実施形態、第5実施形態で説明したように、データベース管理者に対して、生成するインデクスに関する情報を通知する方式であってもよい。
また、生成するインデクスに関する情報を通知した後に、データベース管理者の確認を行った上で自動的に生成する方式であってもよい。又は、データベース管理者が後で手動にて生成する方式であってもよい。
また、前記の実施形態では構造化文書としてXML文書を取り扱う例を示したが、本発明にはXML文書以外の構造化文書を適用することも可能である。
従って、本発明は前記の実施形態に限定されることなく、特許請求の範囲に記載された技術的思想により定められるものである。
第1実施形態のインデクス生成装置の概略構成を示す図面である。 登録制御プログラムの処理を示すPADである。 XML形式で記述された構造化文書の例を示す図面である。 XML形式で記述された構造化文書の別の例を示す図面である。 構造化文書登録プログラムの処理を示すPADである。 文書構造抽出プログラムの処理を示すPADである。 図3の構造化文書から生成した構造解析木を示す図面である。 図4の構造化文書から生成した構造解析木を示す図面である。 構造索引生成プログラムの処理を示すPADである。 図7の構造解析木から生成した構造インデクスを示す図面である。 図10の構造インデクスを元に、図8の構造解析木の情報を加え、更新した構造インデクスを示す図面である。 要素出現数管理プログラムの処理を示すPADである。 パス出現位置管理情報の例を示す図面である。 索引定義生成プログラムの処理を示すPADである。 値インデクス定義管理情報の例を示す図面である。 値索引生成プログラムの処理を示すPADである。 第2実施形態のインデクス生成装置の概略構成を示す図面である。 登録制御プログラムの処理内を示すPADである。 索引生成確認プログラムの処理を示すPADである。 値インデクス生成確認画面の例を示す図面である。 第3実施形態のインデクス生成装置の概略構成を示す図面である。 要素出現数管理プログラムの処理を示すPADである。 パス出現位置管理情報の例を示す図面である。 第4実施形態のインデクス生成装置の概略構成を示す図面である。 要素出現数管理プログラムの処理を示すPADである。 パス出現位置管理情報の例を示す図面である。 索引定義生成プログラムの処理を示すPADである。 第5実施形態のインデクス生成装置の概略構成を示す図面である。 索引定義生成プログラムの処理を示すPADである。 値索引生成プログラムの処理を示すPADである。
符号の説明
1010 表示装置
1020 入力装置
1030 CPU
1040 主記憶装置
1050 2次記憶装置
1080 登録制御プログラム
1100 構造化文書登録プログラム
1110 文書構造抽出プログラム
1120 構造索引生成プログラム
1130 要素出現数管理プログラム
1140 索引定義生成プログラム
1150 値索引生成プログラム
1160 パス出現位置管理情報
1170 値インデクス定義管理情報
1180 閾値管理情報
1190 文書番号管理情報
1200 要素番号管理情報
1210 構造インデクス
1220 値インデクス格納領域
1230 登録文書格納領域

Claims (6)

  1. 文書構造を有する構造化文書に対するインデクスを生成するインデクス生成装置であって、
    前記構造化文書を取得して、前記インデクス生成装置の記憶装置に格納する構造化文書登録部と、
    前記格納した構造化文書を解析して文書構造を抽出する文書構造抽出処理部と、
    前記抽出した文書構造を正規化して、階層構造を持った複数の要素から構成される構造インデクスを生成する構造索引生成処理部と、
    前記構造インデクスの末端の要素を対象として前記生成した構造インデクスにおける各要素の出現数を抽出する要素出現数管理処理部と、
    前記抽出した出現数と所定の第1の閾値とを比較し、前記抽出した出現数の方が大きい場合は、前記構造インデクスに含まれる当該出現数に係る要素を取得する索引定義生成処理部と、
    前記取得した要素の前記構造インデクスにおけるパスをインデクスとして生成する値索引生成処理部とを備えること、
    を特徴とするインデクス生成装置。
  2. 文書構造を有する構造化文書に対するインデクスを生成するインデクス生成装置であって、
    前記構造化文書を取得して、前記インデクス生成装置の記憶装置に格納する構造化文書登録部と、
    前記格納した構造化文書を解析して文書構造を抽出する文書構造抽出処理部と、
    前記抽出した文書構造を正規化して、階層構造を持った複数の要素から構成される構造インデクスを生成する構造索引生成処理部と、
    前記生成した構造インデクスにおける各要素の出現数を抽出する要素出現数管理処理部と、
    前記抽出した出現数と所定の第1の閾値とを比較し、前記抽出した出現数の方が大きい場合は、前記構造インデクスに含まれる当該出現数に係る要素を取得する索引定義生成処理部と、
    前記取得した要素の前記構造インデクスにおけるパスをインデクスとして生成する値索引生成処理部とを備えること、
    を特徴とするインデクス生成装置。
  3. 前記値索引生成処理部は、
    前記抽出した要素を含んだ表示画面を出力し、前記インデクスの生成を命令する情報を取得した場合にのみ、前記抽出した要素の前記構造インデクスにおけるパスをインデクスとして生成すること、
    を特徴とする請求項1又は請求項2に記載のインデクス生成装置。
  4. 前記要素出現数管理処理部は、
    前記構造インデクスにおいて階層構造を構成する複数の要素からなる要素集合の前記構造化文書における出現数をさらに抽出し、
    前記索引定義生成処理部は、
    前記抽出した要素集合の出現数と所定の第2の閾値とを比較し、
    前記抽出した要素集合の出現数の方が大きい場合は、
    前記値索引生成処理部は、
    前記抽出した要素集合の前記構造インデクスにおけるパスをインデクスとしてさらに生成すること、
    を特徴とする請求項1又は請求項2に記載のインデクス生成装置。
  5. 前記索引定義生成処理部は、
    処理中のインデキシング対象パスに包含される各パス名が、前記インデクス生成装置に格納された全ての構造化文書において出現する出現数を取得し、
    前記取得した出現数の合計に対する、前記各パス名が処理中の構造化文書において出現する出現数の割合と、所定の第3の閾値とを比較し、
    前記割合の方が大きい場合は、
    前記インデキシング対象パスに包含される当該割合に係るパス名を抽出し、
    前記値索引生成処理部は、
    前記抽出したパス名に対応するパスを、インデクスとして生成しないこと、
    を特徴とする請求項4に記載のインデクス生成装置。
  6. 文書構造を有する構造化文書に対するインデクスを生成するコンピュータを機能させるためのプログラムであって、
    前記コンピュータを、
    請求項1ないし請求項5のいずれか1項に記載の前記インデクス生成装置の各処理部として機能させるためのプログラム。
JP2006314008A 2006-11-21 2006-11-21 インデクス生成装置及びそのプログラム Expired - Fee Related JP4374014B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006314008A JP4374014B2 (ja) 2006-11-21 2006-11-21 インデクス生成装置及びそのプログラム
US11/689,562 US7711726B2 (en) 2006-11-21 2007-03-22 Method, system and program for creating an index

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006314008A JP4374014B2 (ja) 2006-11-21 2006-11-21 インデクス生成装置及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2008129842A JP2008129842A (ja) 2008-06-05
JP4374014B2 true JP4374014B2 (ja) 2009-12-02

Family

ID=39418122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006314008A Expired - Fee Related JP4374014B2 (ja) 2006-11-21 2006-11-21 インデクス生成装置及びそのプログラム

Country Status (2)

Country Link
US (1) US7711726B2 (ja)
JP (1) JP4374014B2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275052B2 (en) 2005-01-19 2016-03-01 Amazon Technologies, Inc. Providing annotations of a digital work
US8352449B1 (en) 2006-03-29 2013-01-08 Amazon Technologies, Inc. Reader device content indexing
US9672533B1 (en) 2006-09-29 2017-06-06 Amazon Technologies, Inc. Acquisition of an item based on a catalog presentation of items
US8725565B1 (en) 2006-09-29 2014-05-13 Amazon Technologies, Inc. Expedited acquisition of a digital item following a sample presentation of the item
JP4860416B2 (ja) * 2006-09-29 2012-01-25 株式会社ジャストシステム 文書検索装置、文書検索方法および文書検索プログラム
US7865817B2 (en) 2006-12-29 2011-01-04 Amazon Technologies, Inc. Invariant referencing in digital works
US8024400B2 (en) 2007-09-26 2011-09-20 Oomble, Inc. Method and system for transferring content from the web to mobile devices
US7751807B2 (en) 2007-02-12 2010-07-06 Oomble, Inc. Method and system for a hosted mobile management service architecture
US9665529B1 (en) 2007-03-29 2017-05-30 Amazon Technologies, Inc. Relative progress and event indicators
US7716224B2 (en) 2007-03-29 2010-05-11 Amazon Technologies, Inc. Search and indexing on a user device
US7921309B1 (en) 2007-05-21 2011-04-05 Amazon Technologies Systems and methods for determining and managing the power remaining in a handheld electronic device
US20090037408A1 (en) * 2007-08-04 2009-02-05 James Neil Rodgers Essence based search engine
US7844633B2 (en) * 2007-09-13 2010-11-30 International Business Machines Corporation System and method for storage, management and automatic indexing of structured documents
US8145674B2 (en) * 2007-11-26 2012-03-27 International Business Machines Corporation Structure based storage, query, update and transfer of tree-based documents
US8176084B2 (en) * 2007-11-26 2012-05-08 International Business Machines Corporation Structure based storage, query, update and transfer of tree-based documents
US8423889B1 (en) 2008-06-05 2013-04-16 Amazon Technologies, Inc. Device specific presentation control for electronic book reader devices
US8160811B2 (en) * 2008-06-26 2012-04-17 Toyota Motor Engineering & Manufacturing North America, Inc. Method and system to estimate driving risk based on a hierarchical index of driving
JP5225022B2 (ja) * 2008-10-29 2013-07-03 日本電信電話株式会社 Xmlデータ検索方法及び装置及びプログラム
NO20085365A (no) * 2008-12-22 2010-04-19 Fast Search & Transfer As Invertert indeks for kontekstuell søk
US9087032B1 (en) 2009-01-26 2015-07-21 Amazon Technologies, Inc. Aggregation of highlights
US8378979B2 (en) * 2009-01-27 2013-02-19 Amazon Technologies, Inc. Electronic device with haptic feedback
US8832584B1 (en) 2009-03-31 2014-09-09 Amazon Technologies, Inc. Questions on highlighted passages
JP5191441B2 (ja) * 2009-05-14 2013-05-08 日本電信電話株式会社 インデクス構築方法及び装置及び情報検索方法及び装置及びプログラム
US8692763B1 (en) 2009-09-28 2014-04-08 John T. Kim Last screen rendering for electronic book reader
JP2011123598A (ja) * 2009-12-09 2011-06-23 Canon Inc 原稿判別装置、原稿判別方法及びプログラム
US9141727B2 (en) * 2010-05-14 2015-09-22 Nec Corporation Information search device, information search method, computer program, and data structure
US9495322B1 (en) 2010-09-21 2016-11-15 Amazon Technologies, Inc. Cover display
US9158741B1 (en) 2011-10-28 2015-10-13 Amazon Technologies, Inc. Indicators for navigating digital works
JP6046477B2 (ja) * 2012-12-14 2016-12-14 株式会社日立システムズ 検索システム
US10311095B2 (en) * 2014-01-17 2019-06-04 Renée BUNNELL Method and system for qualitatively and quantitatively analyzing experiences for recommendation profiles
JP6805885B2 (ja) * 2017-02-28 2020-12-23 富士通株式会社 情報処理装置、アクセス制御方法、及びアクセス制御プログラム
US11132367B1 (en) 2017-06-06 2021-09-28 Amazon Technologies, Inc. Automatic creation of indexes for database tables
US11048756B2 (en) * 2019-01-31 2021-06-29 EMC IP Holding Company LLC Inserting datasets into database systems utilizing hierarchical value lists

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3887867B2 (ja) 1997-02-26 2007-02-28 株式会社日立製作所 構造化文書の登録方法
JPH10293790A (ja) 1997-04-17 1998-11-04 Toshiba Corp 電力設備作業管理装置
JP2001167087A (ja) * 1999-12-14 2001-06-22 Fujitsu Ltd 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法
JP4661512B2 (ja) 2004-11-05 2011-03-30 株式会社日立製作所 遠隔メンテナンスシステム,モニタリングセンター計算機及びメンテナンス指示方法
JP2006215986A (ja) 2005-02-07 2006-08-17 Ricoh Co Ltd 電子マニュアル作成装置、電子マニュアル作成方法および電子マニュアル作成プログラム

Also Published As

Publication number Publication date
US20080120280A1 (en) 2008-05-22
JP2008129842A (ja) 2008-06-05
US7711726B2 (en) 2010-05-04

Similar Documents

Publication Publication Date Title
JP4374014B2 (ja) インデクス生成装置及びそのプログラム
JP3842577B2 (ja) 構造化文書検索方法および構造化文書検索装置およびプログラム
US8356045B2 (en) Method to identify common structures in formatted text documents
US5752021A (en) Document database management apparatus capable of conversion between retrieval formulae for different schemata
JP4189416B2 (ja) 構造化文書管理システム及びプログラム
Shigarov Table understanding: Problem overview
JP4247135B2 (ja) 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法
JP4247108B2 (ja) 構造化文書検索方法、構造化文書検索装置、及びプログラム
JP2008171181A (ja) 構造化データ検索装置
US7337187B2 (en) XML document classifying method for storage system
JP2000276487A (ja) 事例蓄積・検索装置、並びに事例蓄積方法および事例検索方法、並びに事例蓄積プログラムを記録したコンピュータで読取可能な記録媒体および事例検索プログラムを記録したコンピュータで読取可能な記録媒体
JP3832693B2 (ja) 構造化文書検索表示方法及び装置
JP4146479B2 (ja) 構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラム
JP3914081B2 (ja) アクセス権限設定方法および構造化文書管理システム
JP4309818B2 (ja) 構造化文書管理装置、検索装置、記憶方法、検索方法及びプログラム
JP3632643B2 (ja) 構造化文書管理装置
US20090164424A1 (en) Object-Oriented Twig Query Evaluation
JP3842576B2 (ja) 構造化文書編集方法及び構造化文書編集システム
JP2002312383A (ja) 文書検索装置、文書検索システム、文書検索方法、並びにプログラム
JP3842572B2 (ja) 構造化文書管理方法および構造化文書管理装置およびプログラム
JP3709890B2 (ja) 文字列検索装置
JP3842574B2 (ja) 情報抽出方法および構造化文書管理装置およびプログラム
JP2004126640A (ja) 文書構造検索方法、文書構造検索装置および文書構造検索プログラム
JP2004118543A (ja) 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム
JP3933407B2 (ja) 文書処理装置、文書処理方法および文書処理プログラムが格納された記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090616

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090619

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

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

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees