(57)【特許請求の範囲】
【請求項１】
検索式によって指定された要素を構造化文書から抽出する構造化文書検索装置であって、
前記構造化文書を解析する構造化文書解析部と、
検索式を入力して解析する検索式解析部と、
構造情報を入力して解析する構造情報解析部と、
検索オートマトン管理部とを含み、
前記検索オートマトン管理部は、
前記検索式解析部が解析した前記検索式の解析結果と前記構造情報解析部が解析した前記構造情報とから、前記構造情報から状態遷移を中断するための中断情報を当該状態遷移に付加した検索オートマトンを作成し、
前記検索式の解析結果に基づいて前記検索オートマトンを状態遷移し、
前記中断条件が満たされた場合には前記検索オートマトンから該当する状態遷移を削除し、
前記解析結果のイベントが要素の開始を示すイベントである場合において、当該要素とその子要素とに係る前記状態遷移が削除されている場合は、当該削除されている状態遷移を復元し、
前記検索オートマトン内に有効な状態遷移がなくなった場合には、前記構造化文書解析部に解析の中断を指示し検索を終了することを特徴とする構造化文書検索装置。
【請求項２】
構造情報解析部は、記憶装置を備え、入力された前記構造情報の解析結果を前記記憶装置に蓄積し、
前記検索オートマトン管理部は、前記検索式解析部から渡された検索式に従って、前記記憶装置から、蓄積された前記構造情報の解析結果を取得することを特徴とする請求項１に記載の構造化文書検索装置。
【請求項３】
前記構造情報が、要素の最大出現回数および要素の出現順序のいずれかまたは両方を含み、
前記検索オートマトン管理部は、前記要素の最大出現回数の情報および要素の出現順序の情報のいずれかまたは両方から前記中断条件を生成することを特徴とする請求項１または請求項２記載の構造化文書検索装置。
【請求項４】
前記構造化文書がＸＭＬ文書であることを特徴とする
請求項１から請求項３のうちのいずれか１項に記載の構造化文書検索装置。
【請求項５】
前記検索式がＸパスであることを特徴とする
請求項１から請求項４のうちのいずれか１項に記載の構造化文書検索装置。
【請求項６】
前記構造情報がＸＭＬスキーマであることを特徴とする
請求項１から請求項５のうちのいずれか１項に記載の構造化文書検索装置。
【請求項７】
検索式によって指定された要素を構造化文書から抽出する構造化文書検索方法であって、
検索式を入力して解析し、
構造情報を入力して解析し、
検索式の解析結果と構造情報の解析結果とから、前記構造情報の解析結果から状態遷移を中断するための中断条件を当該状態遷移に付加した検索オートマトンを作成し、
前記検索式の解析結果に基づいて前記検索オートマトンを状態遷移し、
前記中断条件が満たされた場合には前記検索オートマトンから該当する状態遷移を削除し、
前記解析結果のイベントが要素の開始を示すイベントである場合において、当該要素とその子要素とに係る前記状態遷移が削除されている場合は、当該削除されている状態遷移を復元し、
有効な状態遷移がなくなった場合には、前記構造化文書の解析を中断し検索を終了する
ことを特徴とする構造化文書検索方法。
【請求項８】
前記構造情報を蓄積しておき、入力された前記検索式から必要な構造情報を決定し使用することを特徴とする
請求項７記載の構造化文書検索方法。
【請求項９】
検索式によって指定された要素を構造化文書から抽出する構造化文書検索プログラムであって、
コンピュータに、
検索式を入力して解析するステップと、
検索式の解析結果と構造情報の解析結果とから、前記構造情報から状態遷移を中断するための中断条件を当該状態遷移に付加した検索オートマトンを作成するステップと、
前記検索式の解析結果に基づいて前記検索オートマトンを状態遷移するステップと、
前記中断条件が満たされた場合には前記検索オートマトンから該当する状態遷移を削除するステップと、
前記解析結果のイベントが要素の開始を示すイベントである場合において、当該要素とその子要素とに係る前記状態遷移が削除されている場合は、当該削除されている状態遷移を復元するステップと、
有効な状態遷移がなくなった場合に前記構造化文書の解析を中断し、検索を終了するステップとを実行させる
ことを特徴とする構造化文書検索プログラム。
【請求項１０】
コンピュータに、
入力された前記構造情報を解析して、前記検索オートマトンの作成に使用するステップを実行させる請求項９記載の構造化文書検索プログラム。
【請求項１１】
コンピュータに、
前記構造情報を蓄積するステップと、
入力された前記検索式から必要な構造情報を決定し、蓄積された前記構造情報から取得するステップと
を実行させる請求項９記載の構造化文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書検索装置、構造化文書検索方法および構造化文書検索用プログラムに関し、特に、検索式を用いて構造化文書の特定要素を検索抽出する構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラムに関する。
【背景技術】
【０００２】
構造化文書としてのＸＭＬ文書内の特定の要素を抽出するための検索式としてＸパス（ＸＭＬ  Ｐａｔｈ  Ｌａｎｇｕａｇｅ：ＸＰａｔｈ）が利用されている。ＸＰａｔｈは標準化団体Ｗ３Ｃ（ＷＷＷコンソーシアム）によって規格化されその仕様が、文献１（「エックスエムエル  パス  ランゲージ（エックスパス）“ＸＭＬ  Ｐａｔｈ  Ｌａｎｇｕａｇｅ”」、［ｏｎｌｉｎｅ］、［２００４年１２月２２日検索］、インターネット、＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｐａｔｈ＞）に記載されている。
ＸＰａｔｈではＸＭＬの要素を“／”で区切って列記し構造中の特定の要素を指定する。従来、ＸＭＬ文書中からＸＰａｔｈで指定された要素を検索する際に、一旦ＸＭＬ文書を記憶域にＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）形式に展開した後、検索を行っていた。しかし、ＸＭＬ文書をＤＯＭ形式に展開する処理は負荷が大きく、また大きな記憶域を必要とするため、ＸＰａｔｈの検索は負荷の重い処理であった。
その問題を解決するために、ＸＭＬ文書をＤＯＭに展開することなく、ＳＡＸ（Ｓｉｍｐｌｅ  ＡＰＩ  ｆｏｒ  ＸＭＬ）パーサを利用して逐次的に解析することでＸＰａｔｈに合致する要素を抽出するための技術が特開２００３−３２３４２９号公報や文献２（マフォメット  アルティネル（Ｍｅｈｍｅｔ  Ａｌｔｉｎｅｌ）、ミカエル  フランクリン（Ｍｉｃｈａｅｌ  Ｆｒａｎｋｌｉｎ）著、エフィシエント  フィルタリング  オブ  エックスエムエル  ドキュメンツ  フォー  セレクティブ  デセミネイション  オブ  インフォーメイション（Ｅｆｆｉｃｉｅｎｔ  Ｆｉｌｔｅｒｉｎｇ  ｏｆ  ＸＭＬ  Ｄｏｃｕｍｅｎｔｓ  ｆｏｒ  Ｓｅｌｅｃｔｉｖｅ  Ｄｉｓｓｅｍｉｎａｔｉｏｎ  ｏｆ  Ｉｎｆｏｒｍａｔｉｏｎ）、ヴェリー  ラージ  データ  ベース  エンドーメント（Ｖｅｒｙ  Ｌａｒｇｅ  Ｄａｔａ  Ｂａｓｅ  Ｅｎｄｏｗｍｅｎｔ）出版、２０００年、ｐｐ．５３−６４）に記載されている。
そのような構造化文書検索装置８００は、図１１に示すように、構造化文書解析部８１０と、検索式解析部８２０と、検索オートマトン管理部８４０と、記憶装置８５０とから構成されている。
図１２は、図１１に示された構造化文書検索装置８００の動作を示すフローチャートである。検索式解析部８２０に検索式が入力されると検索式の解析が行われ、解析結果が検索オートマトン管理部８４０に渡される（ステップＳ１１０）。検索オートマトン管理部８４０は、検索式の解析結果を受け取ると、検索オートマトン８５１を作成し記憶装置８５０に記録する（ステップＳ８３０）。図１３は作成される検索オートマトン８５１の例である。図１４に示す検索式の例であるＸＰａｔｈ式５１０が入力された場合、検索オートマトン８５１が作成される。検索オートマトン８５１には４つの状態９１１、９１２、９１３、９１４が含まれ、状態９１４は終了状態である。また各状態間の状態遷移９２１、９２２、９２３も含み、状態遷移に必要なイベントが記載されている。
続いて、構造化文書（例えば、受信したメッセージにおけるＸＭＬ文書）が構造化文書解析部８１０に入力されると（ステップＳ１４０）、構造化文書解析部８１０は構造化文書を逐次解析し、解析結果を検索オートマトン管理部８４０に渡す（ステップＳ１５０）。構造化文書の解析は部分（例えば、要素）ごとに行われ、そのたびに検索オートマトン管理部８４０に渡される。
検索オートマトン管理部８４０は、構造化文書の解析結果が渡されると、検索オートマトン処理（ステップＳ８７０）を行う。図１５は、ステップＳ８７０で行われる処理を示すフローチャートである。検索オートマトン管理部８４０は、渡された解析結果のイベントが状態遷移の対象となる要素に関するものか否か調べ、状態遷移の対象でない場合には検索オートマトンの処理を終了する（ステップＳｌ７１）。
続いて、解析結果のイベントの種類が要素の開始を示すイベントか、要素の終了を示すイベントかを判断し（ステップＳ１７２）、要素の終了を示すイベントである場合には、オートマトン１５１の状態を遷移前の状態に逆向きに遷移し、状態を記憶装置１５０に記録する（ステップＳ１７８）。ステップＳ１７２の結果、要素の開始を示すイベントである場合には、検索オートマトン８５１に従って状態を遷移し、現在の状態を記憶装置８５０に記録する（ステップＳ１７３）。状態遷移の結果、検索オートマトン８５１の状態が終了状態に達した場合には（ステップＳ１７４）、検索式に合致したと判断し、結果を出力する（ステップＳ１７５）。
構造化文書全体の処理が終了するまでステップＳ１５０からステップＳ８７０の処理を繰り返す（ステップＳ１６０）。
従来の構造化文書検索システムの問題点は、検索式にマッチする要素を過不足なく得るためには、構造化文書を最後まで検索する必要があるということである。その理由は、従来システムでは、目的とする要素が偏りなく存在する文書を主な対象としているので、構造化文書中のどこに目的とする要素が存在するかの情報を保持していないためである。例えば、通信文中の識別情報の抽出など、抽出すべき要素は構造化文書中の前半に出現することが分かっている場合には無駄な解析処理がシステムの実行性能を低下させる主因にもなり得る。
そこで、本発明は、構造化文書検索システムにおいて、構造化文書の必要な個所を解析するだけで検索式にマッチする要素を過不足なく得ることを可能にし、処理効率を向上させることができるようにすることを目的とする。
【発明の開示】
【０００３】
本発明による構造化文書検索装置は、構造化文書を逐次的に解析する構造化文書解析手段（例えば、構造化文書解析部１１０、ＳＡＸパーサ４１０）と、構造情報を解析し、目的とする要素がそれ以上現れないことを確認した段階で、構造化文書の解析を中断する構造情報解析手段（例えば、構造化文書解析部１１０、ＳＡＸパーサ４１０、検索オートマトン管理部１４０、２４０）とを備えたことを特徴とする。構造情報とは、構造化文書を構成する要素に関して、要素間の包含関係を含み、要素の出現順序と出願回数の制約（回数そのものまたは回数に関する範囲）のいずれかまたは両方を含む情報である。
また、本発明による構造化文書検索装置は、検索式（例えば、ＸＰａｔｈ式：ＸＭＬ  Ｐａｔｈ  Ｌａｎｇｕａｇｅ式）によって指定された要素を構造化文書（例えばＸＭＬ文書）から抽出する構造化文書検索装置（例えば、構造化文書処理装置１００、２００、ＸＰａｔｈ検索装置４００）であって、構造情報から抽出すべき要素がそれ以上出現しなくなる中断条件を作成し（例えば、ステップＳ１３０）、構造化文書解析部（例えば、構造化文書解析部１１０、ＳＡＸパーサ４１０）により構造化文書を逐次的に解析し（例えば、ステップＳ１５０）、検索処理部（例えば、検索オートマトン管理部１４０、２４０）により検索式に合致する要素を検索し、すべての中断条件を満たした場合には構造化文書の解析を中断し、検索を終了する（例えば、ステップＳ１８０）ことを特徴とする。
上述した構成とすることで、構造化文書を最後まで解析することなく検索式によって指定された要素を過不足なく抽出することが可能になる。
また、検索式で指定された要素が出現しなくなる条件を検索オートマトンに付加し、条件が満たされた場合に解析を終了することによって、構造化文書を最後まで解析することなく、検索式で指定された要素を過不足なく検索できる。
また、検索式で指定された要素が出現しなくなる条件を検索オートマトンに付加し、条件が満たされた場合に解析を終了することによって、構造化文書を最後まで解析することなく、検索式で指定された要素が出現しないことを判断できる。
【図面の簡単な説明】
【０００４】
図１は、本発明の第１の実施の形態における構造化文書検索装置の構成例を示すブロック図である。
図２は、本発明の第１の実施の形態における構造化文書検索装置の動作を示すフローチャートである。
図３は、本発明の第１の実施の形態における検索オートマトン処理の動作を示すフローチャートである。
図４は、本発明の第２の実施の形態における構造化文書検索装置の構成例を示すブロック図である。
図５は、構造化文書検索を実行させるための構造化文書検索プログラムを含む構成の例を示すブロック図である。
図６は、本発明の実施例のＸＰａｔｈ検索装置を示すブロック図である。
図７は、ＸＭＬ  Ｓｃｈｅｍａの例を示す説明図である。
図８は、本発明の実施例における検索オートマトンの例を示す説明図である。
図９は、ＸＭＬ文書の例を示す説明図である。
図１０は、ＳＡＸパーサから生成されるイベント列の例を示す説明図である。
図１１は、従来の構造化文書検索装置の例を示すブロック図である。
図１２は、従来の構造化文書検索装置の動作を示すフローチャートである。
図１３は、従来の構造化文書検索装置における検索オートマトンの例を示すブロック図である。
図１４は、ＸＰａｔｈ式の例を示す説明図である。
図１５は、従来の構造化文書検索装置における検索オートマトン処理の動作を示すフローチャートである。
【発明を実施するための最良の形態】
【０００５】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
図１は本発明の第１の実施の形態における構造化文書検索装置１００の構成例を示すブロック図である。図１に示すように、構造化文書検索装置１００は、構造化文書解析部１１０と、検索式解析部１２０と、構造情報解析部１３０と、検索オートマトン管理部１４０と、記憶装置１５０とを含む。
構造化文書解析部１１０は、例えば入力機器やネットワークインタフェースなどの入力装置や、ＲＡＭやハードディスクなどの記憶装置から入力された構造化文書を解析し、解析結果を逐次的に検索処理部である検索オートマトン管理部１４０に渡す。検索式解析部１２０は、入力装置や記憶装置から入力された検索式を解析する機能を有する。検索式解析部１２０は入力された検索式を解析し、解析結果を検索オートマトン管理部１４０に渡す。構造情報解析部１３０は、入力装置や記憶装置から入力された構造情報を解析する機能を有する。構造情報解析部１３０は、入力された構造情報を解析し、解析結果を検索オートマトン管理部１４０に渡す。検索オートマトン管理部１４０は、検索オートマトン１５１を作成する機能と、検索オートマトン状態遷移機能とを有する。
検索オートマトン管理部１４０は、検索式解析部１２０から渡される検索式の解析結果、および構造情報解析部１３０から渡される構造情報の解析結果を元に検索オートマトン１５１を作成し、記憶装置１５０に記録する。作成した検索オートマトン１５１には構造情報解析部１３０から得た構造情報を元に、各状態遷移を発生させる要素が出現しなくなる条件を中断条件として記録する。
中断条件の好適な例として、要素の最大出現回数の情報を利用できる。また、要素の出現順序の情報も利用できる。要素の出現順序が構造情報に記載されている場合には、状態遷移を発生させる要素の最後の出現よりも後にのみ出現する要素が出現したときに、状態遷移を発生させる要素はそれ以上発生しないと判断できるので、要素の出現順序の情報を中断条件として利用できる。構造化文書が、好適な例であるＸＭＬの場合には、構造情報の好適な例としてＸＭＬスキーマ（ＸＭＬ  Ｓｃｈｅｍａ）を利用できる。またＤＴＤ（Ｄｏｃｕｍｅｎｔ  Ｔｙｐｅ  Ｄｅｆｉｎｉｔｉｏｎ）も利用できる。また、ＲＥＬＡＸ  ＮＧも利用できる。例えば、ＸＭＬ  Ｓｃｈｅｍａの場合には、中断条件は、ｍａｘＯｃｃｕｒとして記載される要素の最大出現数が利用でき、またｓｅｑｕｅｎｃｅで記載される要素の出現順序も利用できる。
また、検索オートマトン管理部１４０は、構造化文書解析部１１０から得た構造化文書の逐次解析結果にもとづいて、記憶装置１５０に記録されている検索オートマトン１５１の状態を遷移させる。また、検索オートマトン１５１に付加した中断条件にマッチした状態遷移を検索オートマトン１５１から削除する。状態遷移を削除した結果、検索オートマトン１５１から有効な状態遷移がなくなったときには、引き続き解析を行っても検索式にマッチする要素は出現しないと判断し、構造化文書解析部１１０に解析の終了を指示する。さらに、検索オートマトン１５１が終了状態に達した場合には、検索式にマッチしたと判断し結果を出力する。
記憶装置１５０は、例えばＲＡＭなどの記憶媒体によって構成され、検索オートマトン１５１等の各種の情報が記憶される。
次に、図１のブロック図と図２のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。図２は、構造化文書検索装置１００が実行する構造化文書検索の例を示すフローチャートである。
検索式が入力されると、検索式解析部１２０は、検索式の解析を行い、解析結果を検索オートマトン管理部１４０に渡す（ステップＳ１１０）。検索式の好適な例として、ＸＰａｔｈを利用できる。また、ＸＰｏｉｎｔｅｒ（ＸＭＬ  Ｐｏｉｎｔｅｒ）も利用できる。
次に、構造情報が入力されると、構造情報解析部１３０は、構造情報を解析し、解析結果を検索オートマトン管理部１４０に渡す（ステップＳ１２０）。なお、ステップＳ１１０とステップＳ１２０の実行順序は入れ替え可能である。検索式の解析結果と構造情報の検索結果を受け取ると、検索オートマトン管理部１４０は、検索オートマトン１５１を作成し、記憶装置１５０に記録する（ステップＳ１３０）。
続いて、構造化文書が構造化文書解析部１１０に入力されると（ステップＳ１４０）、構造化文書解析部１１０は、構造化文書を逐次解析し、解析結果を検索オートマトン管理部１４０に渡す（ステップＳ１５０）。構造化文書解析部１１０は、構造化文書の解析を部分ごとに行い、解析を行うたびに、検索オートマトン管理部１４０に解析結果を渡す。
例えば、構造化文書が、好適な例であるＸＭＬの場合には、タグ毎に解析が行われることが望ましい。このような解析結果の渡し方として、例えばＳＡＸ形式が利用できる。また、ＳｔＡＸなどのＰｕｌｌ型解析も利用できる。
なお、ＳＡＸ形式はイベントベースのＸＭＬ解析のための標準インターフェイスとして開発されたものであり、インターネット＜ｈｔｔｐ：／／ｊａｖａ．ｓｕｎ．ｃｏｍ／ｊ２ｓｅ／１．４／ｊａ／ｄｏｃｓ／ｊａ／ａｐｉ／ｏｒｇ／ｘｍｌ／ｓａｘ／ｐａｃｋａｇｅ−ｓｕｍｍａｒｙ．ｈｔｍｌ＞に実装マニュアルが掲載されている。また、ＳｔＡＸはＸＭＬを文書順に必要な部分のみ読み出して解析するためのインターフェイスであり、インターネット＜ｈｔｔｐ：／／ｊｃｐ．ｏｒｇ／ｅｎ／ｊｓｒ／ｄｅｔａｉｌ？ｉｄ＝１７３＞に仕様要求が記載されている。
構造化文書の解析結果が渡されると、検索オートマトン管理部１４０は、検索オートマトン処理（ステップＳ１７０）を行う。図３は、ステップＳ１７０で行われる処理を示すフローチャートである。検索オートマトン管理部１４０は、渡された解析結果のイベントが状態遷移の対象となる要素に関するものか否か調べ、状態遷移の対象でない場合はステップＳ１７６以降の処理へ移る（ステップＳ１７１）。続いて、解析結果のイベントの種類が要素の開始を示すイベントか、要素の終了を示すイベントかを判断し（ステップＳ１７２）、要素の終了を示すイベントである場合には、オートマトン１５１の状態を遷移前の状態に逆向きに遷移し、状態を記憶装置１５０に記録する（ステップＳ１７８）。
ステップＳ１７２の処理の結果、要素の開始を示すイベントである場合は、検索オートマトン１５１に従い状態を遷移し、次の状態遷移が削除されている場合は復元し、現在の状態を記憶装置１５０に記録する（ステップＳ１７３）。状態遷移の結果、検索オートマトン１５１の状態が終了状態に達した場合には（ステップＳ１７４）、検索式にマッチしたと判断し、結果を出力する（ステップＳ１７５）。続いて、中断条件が満たされた場合には（ステップＳ１７６）、中断条件にマッチした状態遷移を検索オートマトン１５１から削除し、記憶装置１５０に記録する（ステップＳ１７７）。
検索オートマトン処理が終了すると、検索オートマトン管理部１４０は、検索オートマトン１５１に有効な状態遷移が残っているか確認する（ステップＳ１８０）。有効な状態遷移が残っている場合には、引き続きステップＳ１５０からステップＳ１８０の処理を繰り返す。有効な状態遷移がない場合には、構造化文書解析部１１０に解析の終了を指示して検索を終了する。
次に、本実施の形態の効果について説明する。本実施の形態では、構造情報解析部１３０により構造情報から中断条件を取得し、検索オートマトン管理部１４０は、中断条件が満たされた場合には該当する状態遷移を削除し、有効な状態遷移がなくなった場合には解析の終了を指示するように構成されている。その結果、構造化文書の解析処理を削減することができ、検索処理の負荷を軽減することができる。
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
図４は本発明の第２の実施の形態における構造化文書検索装置２００の構成例を示すブロック図である。なお、図４において、図１に示した構造化文書検索装置１００における構成要素と同様の構成要素については、同一の符号を付与してその詳細な説明を省略する。
図４に示すように、構造化文書検索装置２００は、構造化文書解析部１１０と、検索式解析部１２０と、構造情報解析部２３０と、検索オートマトン管理部２４０と、記憶装置２５０とを含む。
構造情報解析部２３０は、第１の実施の形態における構造情報解析部１３０と同様、入力された構造情報を解析する機能を有する。構造情報解析部１３０は、入力された構造情報を解析するが、記憶装置２５０に解析結果を構造情報２５２として記録する。
検索オートマトン管理部２４０は、第１の実施の形態における検索オートマトン管理部１４０と同様の機能を有するが、必要な構造情報を、記憶装置２５０に記録された構造情報２５２から取得する部分が異なる。記憶装置２５０は、第１の実施の形態における記憶装置１５０が記録する情報に加えて、構造情報２５２を記録する。
このように構成された第２の実施の形態の構造化文書検索装置２００は、第１の実施の形態における構造化文書検索装置１００と同様に動作する。すなわち、検索式が入力されると、検索式解析部１２０は、検索式の解析を行い、解析結果を検索オートマトン管理部２４０に渡す（図２におけるステップＳ１１０参照）。構造情報が入力されると、構造情報解析部２３０は、構造情報を解析し、解析結果を検索オートマトン管理部２４０に渡す（ステップＳ１２０）。ただし、本実施の形態では、構造情報解析部２３０は、構造情報を記憶装置２５０にも渡す。検索式の解析結果を受け取ると、検索オートマトン管理部２４０は、検索オートマトン１５１を作成し、記憶装置２５０に記録する（ステップＳ１３０）。ただし、本実施の形態では、検索オートマトン管理部２４０は、記憶装置２５０から構造情報の検索結果を入力する。構造化文書が構造化文書解析部１１０に入力されると（ステップＳ１４０）、構造化文書解析部１１０は、構造化文書を解析し、解析結果を検索オートマトン管理部２４０に渡す（ステップＳ１５０）。構造化文書の解析結果が渡されると、検索オートマトン管理部１４０は、第１の実施の形態の場合と同様に、検索オートマトン処理（ステップＳ１７０）を行う。
第２の実施の形態では、構造情報２５２を記憶装置２５０に記録する構成にしたので、検索式の入力のたびに構造情報を入力する必要がなく、記憶装置２５０に蓄積した構造情報２５２を再利用することができる。
なお、上述した各実施の形態では特に言及していないが、構造化文書検索装置１００，２００での各種制御処理は、構造化文書検索処理を実行させるための構造化文書検索プログラム３２０（図５参照）に従って実行されている。
図５は、上述した構造化文書検索処理を実行させるための構造化文書検索プログラム３２０と、構造化文書処理プログラム３２０に従って動作するデータ処理装置３３０とを含むブロック図である。なお、図５には、入出力部３１０と記憶装置１５０も記載されている。
データ処理装置３３０は、中央処理装置（ＣＰＵ）を内蔵し、第１および第２の実施の形態における構造化文書検索装置１００，２００において、各種の制御処理を実行する部分（構造化文書解析部１１０、検索式解析部１２０、構造情報解析部１３０，２３０および検索オートマトン管理部１４０，２４０）をまとめて示す制御手段である。構造化文書処理プログラム３２０は、データ処理装置３３０に上述した各種の制御処理を実行させるための制御プログラムであり、例えばデータ処理装置３３０に搭載されている。
データ処理装置３３０は、構造化文書検索プログラム３２０に従って、記憶装置１５０への情報の書き込みや記憶装置１５０からの情報の読み出しを行うほか、第１および第２の実施の形態における各種の制御を実行する。
【実施例】
【０００６】
次に、本発明の具体的実施例について説明する。図６は、本実施例の構造化文書検索装置を示すブロック図である。本実施例の構造化文書検索装置は、検索式ＸＭＬ  Ｐａｔｈ言語（ＸＰａｔｈ）によって記述された特定の要素をＸＭＬ文書から抽出するＸＰａｔｈ検索装置４００である。
図６に示すように、ＸＰａｔｈ検索装置４００は、構造化文書解析部としてのＳＡＸパーサ４１０、検索式解析部としてのＸＰａｔｈ解析部４２０、および構造情報解析部としてのＸＭＬ  Ｓｃｈｅｍａ解析部４３０を備えている。
ここでは、例えばキーボード（図示せず）から検索式として図１４に示すＸＰａｔｈ式５１０が入力されたとする。ＸＰａｔｈ式５１０がＸＰａｔｈ解析部４２０に入力されると、解析結果が検索オートマトン管理部１４０に渡される。また、この例では、例えばハードディスク（図示せず）から構造情報として図７に示すＸＭＬ  Ｓｃｈｅｍａ５２０が入力されたとする。ＸＭＬ  Ｓｃｈｅｍａ５２０には「ａタグは１度しか出現しない、ａタグの中にはｂ、ｄの順にタグがある、ｂタグの中にはｃタグは１度しか出現しない」という情報が記載されている。ＸＭＬ  Ｓｃｈｅｍａ５２０がＸＭＬ  Ｓｃｈｅｍａ解析部４３０に入力されると、ＸＭＬ  Ｓｃｈｅｍａ解析部４３０による解析結果が検索オートマトン管理部１４０に渡される。
ＸＰａｔｈ式５１０の解析結果と構造情報５２０の解析結果を受け取った検索オートマトン管理部１４０は、図８に示す検索オートマトン６００を作成する。検索オートマトン６００は、状態６１１〜６１４の４つの状態を持ち、各状態間の状態遷移６２１〜６２３を持つ。なお、状態６１４は終了状態である。ここで、状態遷移６２１〜６２３に中断条件が記載されていることが、本発明の特徴である。中断条件には、一例として、構造情報５２０の解析結果にもとづく状態遷移の発生する最大数ｍａｘ（１）（状態遷移６２１、６２３）、状態遷移要素の次の要素ｎｅｘｔ（ｄ）（状態遷移６２２）が記載されている。
さらに、この例では、例えばネットワークインタフェースから図９に示すＸＭＬ文書５３０がＳＡＸパーサ４１０に入力されたとする。図１０はＸＭＬ文書５３０をＳＡＸパーサ４１０により最後まで解析した場合に発生するイベントを示している。ＳＡＸパーサ４１０から検索オートマトン管理部１４０にイベント７０１から７０３が渡されると、はじめ状態６１１の検索オートマトン６００は、状態６１２、状態６１３、状態６１４と順に遷移し１回目の結果を出力する。このとき、状態遷移６２１と６２３は最大出現回数の中断条件が合致するため削除される。次いで、イベント７０４、７０５により状態６１２に戻る。さらに、イベント７０６により状態６１３に遷移するが、このとき状態遷移６２３の中断条件はステップＳ１７３の処理に従い初期値に戻され、状態遷移が復元される。さらにイベント７０７により２回目の結果を出力する。このとき残っている状態遷移は状態遷移６２２のみである。イベント７０８，７０９により状態６１２に戻り、イベント７１０によって次要素の中断条件が満たされるため状態遷移６２２も削除される。これによって検索オートマトン６００内に有効な状態遷移がすべてなくなるため、ＳＡＸパーサ４１０に中断を指示し、検索を終了する。
このように動作することにより、イベント７１０以降の処理を行う必要がなく、検索の負荷を軽減することができる。
上述した構成とすることで、構造化文書を最後まで解析することなく検索式によって指定された要素を過不足なく抽出することが可能になる。
また、検索式で指定された要素が出現しなくなる条件を検索オートマトンに付加し、条件が満たされた場合に解析を終了することによって、構造化文書を最後まで解析することなく、検索式で指定された要素を過不足なく検索できる。
また、検索式で指定された要素が出現しなくなる条件を検索オートマトンに付加し、条件が満たされた場合に解析を終了することによって、構造化文書を最後まで解析することなく、検索式で指定された要素が出現しないことを判断できる。
【産業上の利用可能性】
【０００７】
本発明によれば、ＸＭＬ文書から特定の情報を抽出する用途に適用できる。また、本発明によれば、例えば、通信路上を流れるＸＭＬ文書から特定の要素を抽出してルーティングを行うルータに適用できる。さらに、経路制御、ログの採取、アクセス制御、メッセージ変換など様々な制御を通信経路上で行う通信中継装置といった用途に適用できる。また、検索装置に到着したＸＭＬ文書等の構造化文書から抽出した要素に応じて処理モジュールを決定する処理装置として適用することも可能である。
【図１】
0004978894.tif 000002
【図２】
0004978894.tif 000003
【図３】
0004978894.tif 000004
【図４】
0004978894.tif 000005
【図５】
0004978894.tif 000006
【図６】
0004978894.tif 000007
【図７】
0004978894.tif 000008
【図８】
0004978894.tif 000009
【図９】
0004978894.tif 000010
【図１０】
0004978894.tif 000011
【図１１】
0004978894.tif 000012
【図１２】
0004978894.tif 000013
【図１３】
0004978894.tif 000014
【図１４】
0004978894.tif 000015
【図１５】
0004978894.tif 000016