JP3965798B2 - データ処理装置、文書処理装置、データ処理プログラムを記録したコンピュータ読み取り可能な記録媒体、文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体、データ処理方法、および文書処理方法 - Google Patents
データ処理装置、文書処理装置、データ処理プログラムを記録したコンピュータ読み取り可能な記録媒体、文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体、データ処理方法、および文書処理方法 Download PDFInfo
- Publication number
- JP3965798B2 JP3965798B2 JP25342798A JP25342798A JP3965798B2 JP 3965798 B2 JP3965798 B2 JP 3965798B2 JP 25342798 A JP25342798 A JP 25342798A JP 25342798 A JP25342798 A JP 25342798A JP 3965798 B2 JP3965798 B2 JP 3965798B2
- Authority
- JP
- Japan
- Prior art keywords
- document
- ordered tree
- automaton
- processing
- node
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は有向順序木で表現された情報に対する処理を行うデータ処理装置および構造化文書を対象とする文書処理装置に関し、特に大量の情報に対して処理を行うデータ処理装置および大量の構造化文書から必要な部分構造を検索して処理する文書処理装置に関する。
【0002】
【従来の技術】
オフィスなどで利用される文書の再利用に関する利便性を向上させるために、文書を電子的に管理することが広く行われている。さらに、章、節、段落、図表などの文書要素レベルでの再利用を可能とするために、文書要素と要素間の論理的な関係(論理構造)を伴う文書(構造化文書)による文書管理が先進的なユーザによって行われている。なお、以下単に「文書」といった場合には、すべて構造化文書を指すものとする。
【0003】
図68は、構造化文書の第1の例を示す図である。図68に示す文書91の矩形は文書要素を表わし、矩形中の文字列は文書要素の名前を表わす。各文書要素には、「001 」〜「012 」の識別子が付与されている。この図に示すように、構造化文書の論理構造は有向順序木として表現される。また、文書要素に接続された楕円は、文書要素に対応する内容を表わす。
【0004】
なお、図68では、文書要素には名前のみが対応付けられているが、名前以外にもさまざまな属性を対応付けることが広く行われている。構造化文書フォーマットの標準としては、SGML(Standard Genera1ized Markup Language)とXML(eXtensible Markup Language) が広く知られている。SGMLは1986年にISO(International Standard Organization)の標準として規定され、現在に至るまで主に出版分野における電子文書フォーマットとして利用されてきた。いっぽうXML は、インターネット上の構造化文書フォーマットの標準としてSGMLの一部の機能を継承しつつインターネット文書フォーマットの実質的な標準であるHTML(Hyper Text Markup Language)による運用の知見を取り入れて、1997年の2月にW3C(World Wide Web Consortium)の勧告として制定された。W3C は、インターネット関連の標準を制定するための国際的な非営利団体である。
【0005】
XML 文書は、図68の文書のように有向順序木で表現される論理構造を持つ。HTML文書も有向順序木で表現される論理構造を備えているが、HTMLは文書の表示処理を主眼において設計されているため、表示処理では不要な要素名や要素間の関係を利用できないように、文書構造に対してあらかじめ制限が加えられている。いっぽう、XML 文書では、論理構造が有向順序木で表現されていればよく、要素名や要素間の関係に関する制限を文書作成者自身が定義できる。とはいえ、文書作成者が好き勝手に要素名を決めてしまっては、文書を利用するシステムが文書要素を誤った用途に用いることにもなりかねない。このため、W3C では、XMLの拡張として、XML 文書の要素名の意味を文書処理システムが一意に特定するための機構の標準化活動を進めている。この標準化が達成されれば、インターネット上の構造化文書を文書要素単位で再利用するためのインフラが整うことになる。以上のことから、インターネット上に存在する大量かつ多様な構造をもつ構造化文書から、文書利用者が必要とする文書要素を検索する必要性が増大することは明らかである。
【0006】
ここで、構造化文書を対象とした検索処理について説明する。例えば、検索対象となる構造化文書として、図68に示した文書91以外に以下のような文書を想定する。
【0007】
図69は、構造化文書の第2の例を示す図である。図69の文書92は、図68の文書91と類似した内容を、別の構造で表したものである。この文書92は、根となる識別子「001 」の文書要素の子供の要素として、他の全ての文書要素が接続されている。
【0008】
図68の文書91と図69の文書92から、参考文献エントリに対応する文書要素(以下、エントリ要素)を検索する処理を考える。なお、参考文献エントリとは、図68の"1.momma."や"1.numata..." に対応する文書要素、及び図69の" [1 ]門馬...." や" [2]沼田...." に対応する文書要素を指すものとする。
【0009】
文書91と文書92のエントリ要素を比較すると、さまざまな相違点が見出される。たとえば、文書91のエントリ要素の名前は"ITEM"であるのに対して文書92のエントリ要素の名前は"PARA"である。また、文書91のエントリ要素はリストを意味するLIST要素でまとめられているのに対し文書92のエントリ要素は文書全体を意味するDOC 要素の直下に位置している。
【0010】
このようにインターネット上の構造化文書の論理構造では、同一の用途で用いられるべき文書内容が、多様な構造で表現されるようになる。
構造化文書を対象とした検索では、文書要素の名前、属性や文書要素に対応付けられた内容に関する条件だけでなく、文書要素間の接続関係も検索条件に利用することにより、再現率を維持したまま適合率を向上させることができる。例えば特開平7−225770号公報記載のデータ検索装置では、検索対象となる構造化文書の文書要素間の祖孫関係に関する索引をあらかじめ作成しておくことにより、文書要素間の接続関係を利用した高速な検索を可能としている。
【0011】
【発明が解決しようとする課題】
しかし、上述の技術は、検索対象の文書構造の類似度が高い場合には大きな効果を発揮するが、前述の文書91と文書92のように、文書構造上の類似度の比較的低い文書を一括して検索する場合には、文書要素間の祖孫関係に関する条件を利用するのが困難となる。たとえば、文書91と文書92のエントリ要素を一括して検索する場合、両者のエントリ要素に共通する祖孫関係は、エントリ要素が文書全体を意味するDOC 要素の子孫であるという関係のみである。上記の技術によりこれらの文書を同時に検索するには、DOC 要素の子孫として特定のエントリ要素が存在するという検索条件を入力しなければならない。この場合、DOC 要素は文書全体を表しているに過ぎないため、文書要素間の接続関係を利用せずに検索した場合と同様の検索結果しか得ることができず、適合率の向上が図れない。
【0012】
しかも、過去に一度参照した文書の検索を行う場合、利用者がその文書の構造を詳細に記憶していることは少ない。そのため、文書要素間の接続関係を用いた検索を行う場合においても、曖昧な記憶に基づいて検索条件が入力される。従来の技術では、検索条件において指定された構造に適合した場合にのみ検出されるため、曖昧な記憶に基づいた検索条件では利用者が探している文書が検出されない可能性がある。
【0013】
したがって、利用者が文書を閲覧した際に同等の文書と認識される範囲内の一定の処理を施すことで検索条件に適合するような文書であれば、その文書が検出できるような文書検索処理を行えることが望まれている。
【0014】
ところで、有向順序木で表現されるのは構造化文書だけではない。オブジェクト指向プログラミングにおけるプログラムの関係も有向順序木で表現することができる。従って、有向順序木で表現される各種情報においても同様に、一定の処理を行うことで検索条件に適合する論理構造を、処理対象となる情報の中から抽出できることが望まれる。
【0015】
本発明はこのような点に鑑みてなされたものであり、有向序木で表現された情報に対してあいまいな検索条件が入力されても、検索条件に合致する部分構造を抽出することができるデータ処理装置を提供することを目的とする。
【0016】
また、本発明の第2の目的は、構造化文書に一定の処理を施すことにより、利用者により指定された論理構造に合致する部分構造が生成される場合には、その合致した部分構造を抽出することができる文書処理装置を提供することである。
【0017】
また、本発明の第3の目的は、有向順序木で表現された情報に一定の処理を施すことにより、利用者により指定された論理構造に合致する部分構造が生成される場合には、その合致した部分構造を抽出するような処理をコンピュータに行わせることができるデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することである。
【0018】
また、本発明の第4の目的は、構造化文書に一定の処理を施すことにより、利用者により指定された論理構造に合致する部分構造が生成される場合には、その合致した部分構造を抽出するような処理をコンピュータに行わせることができる文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することである。
【0019】
【課題を解決するための手段】
本発明では上記課題を解決するために、有向順序木で表現された情報に対する処理を行うデータ処理装置において、複数のノードと該ノード間の接続関係とを有向順序木で表現した処理対象情報を格納する情報格納手段と、有向順序木を構成するノードの内容に関する条件を示す述語と、該述語の条件を満たすノード間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位のノードの置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象情報の有向順序木に対し、該パターン指定で示される接続関係における上位ノードの直下の処理対象のノードを、該処理対象のノードの直下のノード列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出するマッチング手段と、を有することを特徴とするデータ処理装置が提供される。
【0020】
このようなデータ処理装置によれば、有向順序木を構成するノードの内容に関する条件を示す述語と、該述語の条件を満たすノード間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位のノードの置き換えを許容することが示されている場合は、マッチング手段により、情報格納手段に格納された処理対象情報の有向順序木に対し、該パターン指定で示される接続関係における上位ノードの直下の処理対象のノードを、該処理対象のノードの直下のノード列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、均質化有向順序木内の検索条件に適合する有向順序木の抽出処理が行われる。
【0023】
また、上記課題を解決するために、有向順序木で表現された構造化文書に対する処理を行う文書処理装置において、複数の文書要素と該文書要素間の接続関係とを有向順序木で表現した処理対象構造化文書を格納する情報格納手段と、有向順序木を構成する文書要素の内容に関する条件を示す述語と、該述語の条件を満たす文書要素間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位の文書要素の置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象情報の有向順序木に対し、該パターン指定で示される接続関係における上位文書要素の直下の処理対象の文書要素を、該処理対象の文書要素の直下の文書要素列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出するマッチング手段と、前記マッチング手段が抽出した有向順序木を論理構造とする構造化文書に対して既定の処理を実行する文書処理手段と、を有することを特徴とする文書処理装置が提供される。
【0024】
このような文書処理装置によれば、有向順序木を構成する文書要素の内容に関する条件を示す述語と、該述語の条件を満たす文書要素間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位の文書要素の置き換えを許容することが示されている場合は、マッチング手段により、情報格納手段に格納された処理対象構造化文書の有向順序木に対し、該パターン指定で示される接続関係における上位文書要素の直下の処理対象の文書要素を、該処理対象の文書要素の直下の文書要素列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、均質化有向順序木内の検索条件に適合する有向順序木の抽出処理が行われる。すると、文書処理手段により、マッチング手段が抽出した有向順序木を論理構造とする構造化文書に対して既定の処理が行われる。
【0027】
また、上記課題を解決するために、有向順序木で表現された情報に対する処理を行うデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、複数のノードと該ノード間の接続関係とを有向順序木で表現した処理対象情報を格納する情報格納手段、有向順序木を構成するノードの内容に関する条件を示す述語と、該述語の条件を満たすノード間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位のノードの置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象情報の有向順序木に対し、該パターン指定で示される接続関係における上位ノードの直下の処理対象のノードを、該処理対象のノードの直下のノード列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出するマッチング手段、としてコンピュータを機能させることを特徴とするデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【0028】
このような記録媒体に記録されたデータ処理プログラムをコンピュータに実行させれば、有向順序木を構成するノードの内容に関する条件を示す述語と、該述語の条件を満たすノード間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位のノードの置き換えを許容することが示されている場合は、情報格納手段に格納された処理対象情報の有向順序木に対し、該パターン指定で示される接続関係における上位ノードの直下の処理対象のノードを、該処理対象のノードの直下のノード列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、均質化有向順序木内の検索条件に適合する有向順序木を抽出するような処理機能がコンピュータ上に構築される。
【0029】
また、上記課題を解決するために、有向順序木で表現された構造化文書に対する処理を行う文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、複数の文書要素と該文書要素間の接続関係とを有向順序木で表現した処理対象構造化文書を格納する情報格納手段、有向順序木を構成する文書要素の内容に関する条件を示す述語と、該述語の条件を満たす文書要素間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位の文書要素の置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象構造化文書の有向順序木に対し、該パターン指定で示される接続関係における上位文書要素の直下の処理対象の文書要素を、該処理対象の文書要素の直下の文書要素列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出するマッチング手段、前記マッチング手段が抽出した有向順序木を論理構造とする構造化文書に対して既定の処理を実行する文書処理手段、としてコンピュータを機能させることを特徴とする文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【0030】
このような記録媒体に記録された文書処理プログラムをコンピュータに実行させれば、有向順序木を構成する文書要素の内容に関する条件を示す述語と、該述語の条件を満たす文書要素間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位の文書要素の置き換えを許容することが示されている場合は、情報格納手段に格納された処理対象構造化文書の有向順序木に対し、該パターン指定で示される接続関係における上位文書要素の直下の処理対象の文書要素を、該処理対象の文書要素の直下の文書要素列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、均質化有向順序木内の検索条件に適合する有向順序木が抽出され、文書処理手段により、マッチング手段が抽出した有向順序木を論理構造とする構造化文書に対して既定の処理を実行するような処理機能がコンピュータ上に構築される。
【0031】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の原理構成図である。本発明のデータ処理装置は、情報格納手段1とマッチング手段2とからなる。
【0032】
情報格納手段1は、有向順序木で表現された処理対象情報1aを格納する。
マッチング手段2は、有向順序木を構成するノードの内容及びノード間の接続関係に関する条件を記述した検索条件3が入力されると、情報格納手段1に格納された処理対象情報1aの有向順序木の中間ノードを削除し、中間ノードのあった位置に中間ノード直下のノード列を配置する操作を行った結果得られる均質化有向順序木を生成する。この均質化有向順序木は複数生成される。そして、生成された均質化有向順序木を処理対象として、均質化有向順序木内の検索条件に適合する有向順序木4を抽出する。
【0033】
このようなデータ処理装置によれば、検索条件3によって指定したノード間の接続関係が曖昧であっても、処理対象情報1aの中間ノードを削除し、その下位のノード列を削除した中間ノードのあった位置に配置することで検索条件に適合する構造が生成できれば、その構造を示す有向順序木が抽出される。したがって、曖昧な記憶に基づいて検索条件を定義しても、利用者の意図した構造の情報を処理対象情報1a内から抽出可能となる。
【0034】
ところで、有向順序木で表現される情報の主なものとして構造化文書がある。構造化文書に対して本発明に係るデータ処理を行えば、文書構造を検索条件に用いて、比較的類似度の低い構造化文書群に対する検索処理を有効に行うことができる。そこで、このような文書検索を行うことができる文書処理装置を、第1の実施の形態として以下に説明する。
【0035】
図2は、文書処理システムの構成を示すブロック図である。文書処理システムは、文書処理装置10と入出力装置20とからなる。文書処理装置10は、文書保持部11、検索条件保持部12、階層オートマトン生成部13、マッチング部14、及び文書処理部15で構成される。
【0036】
文書保持部11は、処理対象の構造化文書を保持する。検索条件保持部12は、検索条件を保持する。本実施の形態における検索条件は、有向順序グラフとして表現される。階層オートマトン生成部13は、入出力装置20を介した利用者30からの検索指令によって、検索条件保持部12中の検索条件を入力として階層オートマトンを生成する。生成した階層オートマトンは、マッチング部14に入力される。マッチング部14は、階層オートマトンと文書保持部11中の構造化文書を入力として、論理構造のマッチング処理を行う。マッチングの結果として得られる文書要素セット(文書要素の集合)の集合は、文書処理部15に出力される。文書処理部15は、文書要素セットの集合を入力として、文書の自動生成や表示、印刷などの文書処理を実行し、入出力装置20を介して処理結果を利用者30に提供する。
【0037】
入出力装置20は、キーボードやマウスなどの入力装置と、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)などの表示装置、及びプリンタなどの出力装置からなる。利用者30が入出力装置20から指示を入力すると、その指示は文書処置装置に入力される。また、文書処置装置の処置結果が表示装置の画面を通じて文書の利用者30に通知される。あるいは、処理結果が出力装置を介して紙に印刷される。
【0038】
なお、図2の構成と図1に示した原理図との対応関係は次のとおりである。すなわち、図1の情報格納手段1は、文書保持部11に対応する。マッチング手段2は、マッチング部14に対応する。
【0039】
図2のような構成のシステムにおいて以下のような処理が行われる。
図3は、文書処理装置の処理手順を示すフローチャートである。以下の処理をステップ番号に沿って説明する(後述する他のフローチャートにおいても同様)。なお、この処理は、利用者30によって検索指令が入力された際に開始される。検索指令には、検索条件保持部12内のどの検索条件によって検索を行うのかが指定されている。
[S1]階層オートマトン生成部13が、利用者30によって指定された検索条件を検索条件保持部12から抽出し、その検索条件に基づいて階層オートマトンを生成する。
[S2]マッチング部14が、文書保持部11中の構造化文書と、階層オートマトン生成部13が生成した階層オートマトンとのマッチングを行う。
[S3]文書処理部15が、マッチング結果の文書要素の集合を対象とした文書処理を行う。
【0040】
次に、図3の各ステップの処理内容を、具体例を交えながら詳細に説明する。この例では、文書保持部11内に、図68に示した文書91に加えて、以下のような文書が保持されているものとする。
【0041】
図4は、構造化文書の第3の例を示す図である。この文書93は、図68の文書91と同様の内容を有しているが、論理構造が異なる。文書91では、参考文献エントリの並びを意味するLIST要素(識別子「007 」)が参考文献全体を意味するSECT要素(識別子「005 」)直下の子供として表現されている。いっぽう、文書93では、参考文献エントリの並びを意味する要素は存在せず、参考文献エントリはエントリ数が1のLISTリスト要素(識別子「007 」「008 」)として表現されている。
【0042】
なお、以下の説明では、文書要素を指示するときに論理構造上の文書要素間の接続関係を用いることがある。たとえば、「図68の文書91の識別子「002 」の文書要素の長子」とは、「図68の文書91の識別子が「002 」である文書要素の先頭の子供要素」、すなわち識別子が「003 」の文書要素を意味するものとする。また、「図68の文書91の識別子が「002 」である文書要素の弟要素」とは「図68の文書の識別子「002 」の文書要素と親要素を共有する要素で、識別子「002 」の文書要素より後に出現する要素のうち最初に出現する要素」すなわち識別子が「005 」の文書要素を意味するものとする。
【0043】
また、検索条件保持部12には、以下のような検索条件が保持されているものとする。
図5は、検索条件の例を示す図である。この検索条件40は、破線で示された矩形(検索条件ノード)からなる有向順序グラフとして表現される。この検索条件40は、図68の文書91と図4の文書93に含まれている参考文献エントリを一括して得るための検索条件である。
【0044】
図中実線で示した矩形は、文書要素を引数とする述語41,43,45,47である。この例では、文書要素に対応づけられたテキスト内容がマッチすべきパターン、及び論理演算子が矩形中に示されている。たとえば、述語43に示す「" 参考文献"or"References" 」という記述は、「" 参考文献" または「References" という文字列を含むテキスト内容に対応づけられた文書要素が引数に与えられた場合、真を返す」という条件を意味する。また、述語45に示す「" [(数字)*]"or"(数字)*." 」という記述は、「" [1]、[2]、・・・" または" 1.、2.、・・・" という文字列を含むテキスト内容に対応づけられた文書要素が引数に与えられた場合、真を返す」という条件を意味する。
【0045】
述語に対応する文書要素の下部構造に関する条件を設定するために、パターン指定42,44,46を述語の直下に記述することができる。パターン指定42,44,46は、直上の述語に対応する文書要素直下の文書要素列のパターンを指定する。図5では、パターン指定は楕円で表現されている。図5におけるパターン指定42,44,46中の文字列はパターンの種類を意味する。たとえば、"SEQ" は、直下の文書要素列が図で示された順序(左側が上位)で出現することを意味する。また、"OPTREP"は、直下の文書要素が0回以上任意の回数出現することを意味する。
【0046】
図5に示したとおり、パターン指定の直下には述語またはパターン指定の列が出現する。検索条件では、パターン指定と述語の関係を階層的に記述できることから、検索条件を階層的なパターン指定と見なすことができる。さらに図5では用いられていないが、直下の文書要素列のいずれか1つが一度だけ出現することを意味する"CHO" をパターン指定中の文字列("SEQ"および"OPTREP") に追加すれば、検索条件によって、前述の述語からなる任意の階層的な正規表現を表現することが可能となる。
【0047】
また、パターン指定には特別な記号"+r"を追加することができる。"+r"は、パターン指定直下の文書要素列を決定する処理において、処理対象の文書要素をその文書要素直下の文書要素列と置き換えて処理を進めてもよいこと意味する。たとえば、処理対象の文書要素が図68のLIST要素(識別子「007 」)であった場合、LIST要素と2つのITEM要素(識別子「008 」、「009 」)からなる要素列を置き換えて処理を進めることができる。もちろん、LIST要素をそのまま用いて処理を進めることもできる。
【0048】
以上のような文書及び検索条件が保持されている状態で、利用者が図5に示した検索条件40に適合する構造を有する文書を検索する場合を考える。その場合、まず階層オートマトン生成部13により階層オートマトンが生成される。以下に、図5の検索条件40から生成される階層オートマトンを示す。
【0049】
図6は、階層オートマトンの第1の例を示す図である。この階層オートマトン100は、4つのオートマトン110,120,130,140から構成されている。これらのオートマトンの最上位に位置するオートマトン110を、根オートマトンと呼ぶ。
【0050】
オートマトン110,120,130,140の中で、○で示されているのが状態である。状態には、それぞれ「11」、「12」、「21」、「22」、「23」、「31」、「32」、「33」、「41」、「42」、「43」、「44」の識別子が割り振られている。そのうち、始点のない矢印で指される状態「11」、「21」、「31」、「41」が初期状態である。また、◎で示されている状態「12」、「23」、「33」、「44」が受理状態である。さらに、矢印で示されているのが状態遷移であり、状態遷移には、それぞれ「1a」、「2a」、「2b」、「3a」、「3b」、「4a」、「4b」、「4c」、「4d」、「4e」の識別子が割り振られている。状態遷移は、矢印の前の状態で所定の条件を満たす入力があれば、先の状態へ移ることを意味する。
【0051】
オートマトンの状態遷移には、中央に矩形が記されているものと、矩形の記されていないものとがある。前者は述語を伴う検索条件ノードに対応する状態遷移を意味し、後者は述語を伴わない検索条件ノードに対応する状態遷移を意味する。また、矩形の記述は、状態遷移と文書要素とを対応付けるための条件である。この条件の意味は、検索条件ノードの記述の意味と同一である。図中のオートマトン130,140には、右上に"+r"が記されている。この記号は、オートマトン上で文書要素と直下の文書要素列との置き換えが許されることを意味する。
【0052】
状態遷移からオートマトンへの参照(オートマトン間の矢印)は、マッチング部14の処理において状態遷移がマッチング対象の構造化文書の文書要素とマッチしたときに、マッチした文書要素を頂点とする部分木のマッチングに用いるオートマトンへの参照を意味する。部分木のマッチングの結果、参照したオートマトンにおいて受理状態に達すれば、参照した矢印の元に位置する状態遷移の先の状態へ移る。
【0053】
オートマトン140には、「ε」のラベルが付与された状態遷移がある。これはε遷移であり、空列を読んで次の状態へ移ることを示している。すなわち、入力が無くても次の状態へ遷移できることを意味する。
【0054】
以下に、階層オートマトン生成部13の処理の詳細を説明する。
図7は、階層オートマトン生成処理部が行う処理を示すフローチャートである。この処理は、すべて階層オートマトン生成部13が行う。
[S11]検索条件の根ノードを引数にして、根オートマトン生成処理を呼び出す。根オートマトン生成処理の結果、変数Tに出力された階層オートマトンが返される。この処理の詳細は、図8に示す。
[S12]変数Tに出力された階層オートマトンをマッチング部14へ出力し、処理を終了する。
【0055】
図8は、根オートマトン生成処理手順を示すフローチャートである。この処理は、全て階層オートマトン生成部13が行う処理である。この処理の入力は、検索条件の根ノードであり、出力は変数Tに対して出力されたオートマトンである。
[S21]初期状態と受理状態とを1つずつ有するオートマトンを生成し、変数Tに格納する。
[S22]検索条件の根ノードに保持されている条件を伴う状態遷移を生成する。そして、生成した状態遷移の開始端をステップS21で格納したオートマトンの初期状態とし、生成した状態遷移の終了端をステップS21で格納したオートマトンの受理状態とする。
[S23]検索条件の根ノードを含む検索条件ノードと状態遷移を引数にして、オートマトン生成処理を呼び出す。この処理の詳細は、図9に示す。
【0056】
図9は、オートマトン生成処理手順を示すフローチャートの前半である。この処理は、すべて階層オートマトン生成部13が行う。この処理の入力は検索条件ノードと状態遷移であり、出力は変数Tへ出力されるオートマトンである。
[S31]検索条件ノードに対応するオートマトンが、変数Tに含まれるか否かを判断する。含まれる場合は処理をステップS32に進め、含まれない場合は処理をステップS33に進める。
[S32]入力の状態遷移から検索条件ノードに対応するオートマトンへの参照を生成し、処理を終了する。
[S33]オートマトンを生成し、入力の状態遷移から生成したオートマトンへの参照を生成する。
[S34]入力の検索条件ノードのパターン指定に"+r"が設定されているか否かを判断する。"+r"が設定されていれば処理をステップS35に進め、設定されていなければ処理をステップS36に進める。
[S35]生成したオートマトンに"+r"を設定する。
[S36]生成したオートマトン上に、初期状態と受理状態を生成する。
[S37]検索条件ノードのパターン指定の種類を判断する。パターン指定が"SEQ" なら処理をステップS38に進め、パターン指定が"CHO" なら処理をステップS39に進め、パターン指定が"OPTREP"なら処理をステップS40に進める。
【0057】
図10は、オートマトン生成処理手順を示すフローチャートの後半である。
[S38]生成したオートマトンを引数にしてSEQ パターン指定生成処理を呼び出す。その後、処理をステップS41に進める。SEQ パターン指定生成処理の詳細は、図11、図12において説明する。
[S39]生成したオートマトンを引数にしてCHO パターン指定生成処理を呼び出す。その後、処理をステップS41に進める。CHO パターン指定生成処理の詳細は、図13において説明する。
[S40]生成したオートマトンを引数にしてOPTREPパターン指定生成処理を呼び出す。その後、処理をステップS41に進める。OPTREPパターン指定生成処理の詳細は、図14において説明する。
[S41]ステップS38〜S40の各処理の返り値のオートマトンを変数Tに格納する。
【0058】
図11は、SEQ パターン生成処理手順を示すフローチャートの前半である。この処理は、全て階層オートマトン生成部13が行う処理である。この処理の入力はオートマトンと検索条件ノードであり、出力はオートマトンである。
[S51]SEQ パターン指定直下のすべての検索条件ノードを処理したか否かを判断する。すべての検索条件ノードを処理したのであれば、処理をステップS61に進め、そうでなければ処理をステップS52に進める。
[S52]SEQ パターン指定直下の未処理の検索条件ノードのうち、先頭の検索条件ノードを処理対象とする。
[S53]処理対象の検索条件ノードの位置を判断する。先頭の検索条件ノードであれば処理をステップS54に進め、末尾の検索条件ノードであれば処理をステップS55に進め、それらのいずれでもない検索条件ノードであれば処理をステップS56に進める。
[S54]状態を1つ生成する。そして、初期状態を開始端とし、このステップで生成した状態を終了端とした状態遷移を生成する。その後、処理をステップS57に進める。
[S55]直前に作成された状態を開始端とし、受理状態を終了端とする状態遷移を生成する。その後、処理をステップS57に進める。
[S56]状態を1つ生成する。そして、直前に生成された状態を開始端として、このステップで生成された状態を終了端とする状態遷移を生成する。
[S57]処理対象の検索条件ノードに述語が含まれているか否かを判断する。述語が含まれている場合には処理をステップS58に進め、そうでない場合には処理をステップS59に進める。
[S58]直前に生成された状態遷移に、処理対象の検索条件ノードの述語を対応付ける。
【0059】
図12は、SEQ パターン生成処理手順を示すフローチャートの後半である。
[S59]処理対象の検索条件ノードにパターン指定が含まれるか否かを判断する。パターン指定が含まれる場合には処理をステップS60に進め、そうでない場合には処理をステップS51に進める。
[S60]処理対象の検索条件ノードと直前に生成された状態遷移とを引数として、オートマトン生成処理(図9、図10に示す)を呼び出す。その後、処理をステップS51に進める。
[S61(図11に示す)]オートマトンを出力し、処理を終了する。
【0060】
図13は、CHO パターン生成処理手順を示すフローチャートである。この処理は、すべて階層オートマトン生成部13が行う。この処理の入力はオートマトンと検索条件ノードであり、出力はオートマトンである。
[S71]CHO パターン指定直下のすべての検索条件ノードを処理したか否かを判断する。すべての検索条件ノードを処理していれば処理をステップS78に進め、そうでなければ処理をステップS72に進める。
[S72]CHO パターン指定直下の未処理の検索条件ノードのうち、先頭の検索条件ノードを処理対象とする。
[S73]初期状態を開始端とし、受理状態を終了端とする状態遷移を生成する。
[S74]処理対象の検索条件ノードに述語が含まれているか否かを判断する。述語が含まれている場合には処理をステップS75に進め、述語が含まれていない場合には処理をステップS76に進める。
[S75]直前に生成された状態遷移に処理対象の検索条件ノードの述語を対応付ける。
[S76]処理対象の検索条件ノードにパターン指定が含まれるか否かを判断する。パターン指定が含まれる場合には処理をステップS77に進め、パターン指定が含まれない場合には処理をステップS71に進める。
[S77]処理対象の検索条件ノードと、直前に生成された状態遷移とを引数としてオートマトン生成処理(図9、図10に示す)を呼び出す。その後、処理をステップS71に進める。
[S78]オートマトンを出力し、処理を終了する。
【0061】
図14は、OPTREPパターン生成処理手順を示すフローチャートである。この処理は、すべて階層オートマトン生成部13が行う。この処理の入力はオートマトンと検索条件ノードであり、出力はオートマトンである。
[S81]オートマトン上に2つの状態(第1の状態、第2の状態)を生成する。
[S82]初期状態を開始端として第1の状態を終了端とするε遷移、初期状態を開始端として受理状態を終了端とするε遷移、第2の状態を開始端として第1の状態を終了端とするε遷移、及び第2の状態を開始端として受理状態を終了端とするε遷移を生成する。
[S83]第1の状態を開始端として第2の状態を終了端とする状態遷移を生成する。
[S84]処理対象の検索条件ノードに述語が含まれるか否かを判断する。述語が含まれる場合には処理をステップS85に進め、述語が含まれない場合には処理をステップS86に進める。
[S85]ステップS83で生成された状態遷移に、処理対象の検索条件ノードの述語を対応付ける。
[S86]処理対象の検索条件ノードにパターン指定が含まれるか否かを判断する。パターン指定が含まれる場合には処理をステップS87に進め、パターン指定が含まれない場合には処理をステップS88に進める。
[S87]処理対象の検索条件ノードと、ステップS83で生成された状態遷移とを引数としてオートマトン生成処理(図9、図10に示す)を呼び出す。
[S88]オートマトンを出力する。
【0062】
このような処理を階層オートマトン生成部13が実行することにより、図5に示す検索条件40から図6に示す階層オートマトン100が生成される。生成された階層オートマトン100は、マッチング部14に渡される。
【0063】
次に、マッチング部14が行う処理の詳細を説明する。
図15は、マッチング部の処理手順を示すフローチャートである。この処理は、すべてマッチング部14によって行われる。また、この処理の入力は階層オートマトンと構造化文書であり、出力は入力の構造化文書の文書要素セット(文書要素の集合)の集合である。なお、マッチング部14では、以下の処理で利用される変数Vを保持する。変数Vには、任意の数の文書要素セットが保持されるものとする。また、以下のステップS103の処理で利用されているスタックは、文書要素と状態との組を要素とする。
[S101]処理対象の文書要素を構造化文書の根文書要素とする。
[S102]階層オートマトンの根オートマトンの初期状態、処置対象の文書要素、空の文書要素セット、及び空のスタックを引数にしてオートマトンマッチング処理を呼び出す。この処理の詳細は、図16に示す。
[S103]構造化文書の論理構造を前から順に走査した場合に、処理対象の文書要素の次の文書要素が存在するか否かを判断する。次の文書要素が存在する場合には処理をステップS104に進め、存在しない場合には処理をステップS105に進める。なお、論理構造上の文書要素の順番とは、親子の文書要素間では親の方が先の順である。兄弟の文書要素間では兄の方が先の順である。さらに、弟の文書要素は、兄の文書要素の子孫にあたる文書要素の最後尾の文書要素の次になる。文書要素の識別子は、論理構造上の順番にしたがって振られている。
[S104]処理対象の文書要素の次の文書要素を処理対象とする。
[S105]変数Vの値である文書要素セットを出力する。
【0064】
図16は、オートマトンマッチング処理手順を示す第1のフローチャートである。この処理は、すべてマッチング部14が行う。また、この処理の入力は階層オートマトン中のオートマトンの状態、構造化文書の文書要素、文書要素セット、及びスタックであり、出力は変数Vに書き込まれる。なお、入力の文書要素としてNULL(空の値)を設定することも可能である。
[S111]入力の文書要素がスタックの先頭の文書要素であるか否かを判断する。先頭の文書要素であれば処理をステップS112に進め、そうでない場合は処理をステップS116に進める。
[S112]入力の状態とスタック先頭の状態を引数にした到達可能状態特定処理の返り値である状態の集合にスタック先頭の状態が含まれるか否かを判断する。含まれる場合は処理をステップS113に進め、そうでない場合は処理を終了する。なお、到達可能状態特定処理の詳細は、図19に示す。
[S113]スタック先頭の文書要素と状態の組をpop し、入力の状態をpop した状態と置き換える。
[S114]スタックが空であるか否かを判定する。スタックが空の場合は処理をステップS115へ、そうでない場合は処理をステップS116へ進める。
[S115]変数Vに入力の文書要素セットを書き出す。
[S116]入力の状態を引数にしてマッチング可能状態遷移特定処理を起動した結果の返り値の状態遷移を変数Xに格納する。マッチング可能状態遷移特定処理の詳細は、図22に示す。
[S117]変数Xのすべての状態遷移が処理済みか否かを判断する。すべての状態遷移が処理済の場合は処理を終了し、そうでない場合は処理をステップS118に進める。
【0065】
図17は、オートマトンマッチング処理手順を示す第2のフローチャートである。
[S118]変数Xの未処理の状態遷移の1つを処理対象とする。
[S119]処理対象の状態遷移と入力の文書要素を引数として文書要素マッチング処理を呼び出し、返り値が真か否かを判断する。戻り値が真なら処理をステップS120に進め、偽なら処理をS127に進める。なお、文書要素マッチング処理の詳細は、図24に示す。
[S120]入力の文書要素セットのコピーを作成し、文書要素セットのコピーに入力の文書要素を追加する。
[S121]入力の文書要素を引数にして次要素特定処理を起動した結果の返り値が入力の文書要素の長子であるか否かを判定する。長子である場合は処理をステップS122に進め、そうでない場合は処理をステップS126に進める。なお、次要素特定処理の詳細は、図25に示す。
[S122]処理対象の状態遷移がオートマトンを参照しているか否か判定する。オートマトンを参照している場合は処理をステップS123へ進め、そうでない場合は処理をステップS126へ進める。
[S123]スタックのコピーを生成する。
[S124]スタックのコピーに、処理対象の状態遷移の終了端の状態と、入力の文書要素を引数とした弟要素特定処理の返り値との組をpushする。
【0066】
図18は、オートマトンマッチング処理手順を示す第3のフローチャートである。
[S125]処理対象の状態遷移が参照するオートマトンの初期状態を引数として到達可能状態特定処理を呼び出した場合の返り値の状態ごとに、入力の文書要素の長子、返り値の状態、ステップS120で作成した文書要素セットのコピー、及びステップS124で作成したスタックのコピーを入力としてオートマトンマッチング処理を呼び出し、処理をステップS127に進める。
[S126]処理対象の状態遷移の終了端の状態を引数として到達可能状態特定処理を呼び出した場合の返り値の状態ごとに、入力の文書要素を引数として弟要素特定処理を起動した結果の返り値、返り値の状態、ステップS120で作成した文書要素セットのコピー、及び入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。
[S127]処理対象の状態遷移が属するオートマトンに"+r"が記されているか否か判定する。"+r"が記されている場合は処理をステップS128へ進め、そうでない場合は処理をステップS117に進める。
[S128]入力の文書要素を引数にして次要素特定処理を起動した結果の返り値が入力の文書要素の長子であるか否か判定する。入力の文書要素の長子である場合は処理をステップS129に、そうでない場合は処理をステップS117に進める。
[S129]入力の状態、入力の文書要素の長子の文書要素、入力の文書要素セットのコピー、及び入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。その後、処理をステップS117に進める。
【0067】
次に、ステップS112で行われる到達可能状態特定処理の手順を説明する。
図19は、到達可能状態特定処理の手順を示すフローチャートである。この処理は、すべてマッチング部14で行われる。また、この処理の入力は階層オートマトン中のオートマトンの状態の組(第1の状態と第2の状態)であり、出力は階層オートマトン中のオートマトンの状態の集合である。本処理および本処理で呼び出される処理では、任意の数の状態を保持する共通の変数Yを保持する。
[S131]入力の第1の状態と第2の状態とを引数にして状態チェック処理を呼び出す。状態チェック処理の詳細は、図20に示す。
[S132]変数Yを出力する。
【0068】
図20は、状態チェック処理のフローチャートの前半である。この処理は、すべてマッチング部14で行われる。また、この処理の入力はオートマトンの状態の組(第1の状態と第2の状態)であり、出力は変数Yに反映される。
[S141]入力の第1の状態が変数Yに含まれているか否か判定する。変数Yに含まれている場合には処理を終了し、含まれていない場合には処理をステップS142に進める。
[S142]入力の第1の状態を変数Yに追加する。
[S143]入力の第1の状態と第2の状態が同一であるか否か判定する。これらが同一である場合は処理を終了し、そうでない場合は処理をステップS144に進める。
[S144]入力の第1の状態を開始端とするすべての状態遷移を処理したか否か判定する。未処理の状態遷移がある場合は処理をステップS145へ進め、すべての状態遷移が処理済みの場合は処理を終了する。
[S145]未処理の状態遷移を1つ選択し、処理対象とする。
[S146]処理対象の状態遷移がε遷移の場合は処理をステップS147へ進め、述語を伴う状態遷移の場合は処理をステップS144に進め、いずれでもない場合は処理をステップS148へ進める。
[S147]処理対象の状態遷移の終了端の状態と第2の状態とを引数にして状態チェック処理を呼び出し、処理をステップS149に進める。
[S148]処理対象の状態遷移が参照するオートマトンの初期状態を引数にして状態チェック処理を呼び出し、処理をステップS149に進める。
【0069】
図21は、状態チェック処理のフローチャートの後半である。
[S149]入力の第1の状態が受理状態である場合には処理をステップS150に進め、そうでない場合は処理をステップS144に進める。
[S150]第1の状態を含むオートマトンを参照している状態遷移の終了端の状態と第2の状態とを引数にして状態チェック処理を呼び出す。その後、処理をステップS144に進める。
【0070】
図22は、マッチング可能状態遷移特定処理の手順を示すフローチャートである。この処理は、すべてマッチング部14が行う。また、この処理の入力はオートマトンの状態の組(第1の状態と第2の状態)であり、出力は状態遷移の集合である。この処理およびこの処理から呼び出される処理では、任意の数の状態を保持する共通の変数Zと、任意の数の状態遷移を保持する共通の状態Wを保持する。
[S161]入力の第1の状態と第2の状態を引数にして状態遷移チェック処理を呼び出す。状態遷移チェック処理の詳細は、図23に示す。
[S162]変数Wを出力する。
【0071】
図23は、状態遷移チェック処理の手順を示すフローチャートである。この処理は、すべてマッチング部14が行う。また、この処理の入力はオートマトンの状態であり、出力は変数Zおよび変数Wに反映される。
[S171]入力の第1の状態が変数Zに含まれているか否か判定する。変数Zに含まれている場合は処理を終了し、含まれていない場合には処理をステップS172に進める。
[S172]入力の第1の状態を変数Zに追加する。
[S173]入力の第1の状態と第2の状態が同一であるか否か判定する。同一である場合は処理を終了し、そうでない場合は処理をステップS174に進める。
[S174]入力の第1の状態を開始端とするすべての状態遷移を処理したか否か判定し、処理済みの場合は処理を終了し、そうでない場合は処理をステップS175へ進める。
[S175]未処理の状態遷移を1つ選択し、処理対象とする。
[S176]処理対象の状態遷移の種別を判別する。状態遷移がε遷移の場合は処理をステップS177へ進め、条件を伴う状態遷移の場合は処理をステップS179へ進め、いずれでもない場合は処理をステップS178へ進める。
[S177]処理対象の状態遷移の終了端の状態と第2の状態を引数にして状態遷移チェック処理を呼び出し、処理をステップS180に進める。
[S178]処理対象の状態遷移が参照するオートマトンの初期状態と第1の状態を引数にして状態遷移チェック処理を呼び出し、処理をステップS180に進める。
[S179]処理対象の状態遷移を変数Wに追加し、処理をステップS180に進める。
[S180]入力の第1の状態が受理状態であるか否かを判断し、受理状態の場合には処理をステップS181に進め、そうでない場合は処理をステップS174に進める。
[S181]第1の状態を含むオートマトンを参照している状態遷移の終了端の状態と第2の状態を引数にして状態遷移チェック処理を呼び出す。その後、処理をステップS174に進める。
【0072】
なお、到達可能状態特定処理およびマッチング可能状態遷移特定処理はマッチング部に入力される構造化文書とは無関係に実行できるので、これらの処理をあらかじめ一度だけ実行して処理結果を保持し、オートマトンマッチング処理では保持されている処理結果を適宜利用することにより、同一の引数に対する到達可能状態特定処理およびマッチング可能状態遷移特定処理を繰り返し実行することによるオーバヘッドを未然に防ぐように構成することも可能である。
【0073】
図24は、文書要素マッチング処理の手順を示すフローチャートである。この処理は、すべてマッチング部14が行う。また、この処理の入力は文書要素と状態遷移であり、出力は真偽値である。
[S191]文書要素に対応付けられた文書内容の文字列が、状態遷移に対応付けられた文字列パターンにマッチするか否かを判断する。文字列パターンにマッチする場合は処理をステップS192へ進め、そうでない場合は処理をステップS193に進める。
[S192]真を返し、処理を終了する。
[S193]偽を返し、処理を終了する。
【0074】
なお、本実施の形態では、状態遷移に対応付けられる条件として文書内容の文字列パターンのみが利用可能と想定したが、状態遷移に対応付けられる条件は、文書要素を入力として真偽値を返す述語であればどのようなものでも構わない。このような条件には、文書要素の名称の完全一致・部分一致・パターンマッチ、文書要素の属性値の完全一致・部分一致・パターンマッチ、属性値の範囲指定、属性値と他の状態遷移にマッチした文書要素の属性値との同値関係・大小関係、および、これらの条件を論理結合子で結合したものが含まれる。
【0075】
図25は、次要素特定処理の手順を示すフローチャートである。この処理は、すべてマッチング部14が行う。また、本処理の入力は構造化文書中の文書要素であり、出力は入力の文書要素と同一の構造化文書中の文書要素である。
[S201]入力の文書要素に子供がいるか否か判定する。子供がいる場合は処理をステップS202へ進め、子供がいない場合は処理をS203へ進める。
[S202]入力の文書要素の長子を出力し、処理を終了する。
[S203]入力の文書要素を引数にして弟要素特定処理を呼び出す。弟要素特定処理の詳細は、図26に示す。
[S204]弟処理特定処理の返り値を出力し、処理を終了する。
【0076】
図26は、弟要素特定処理の手順を示すフローチャートである。この処理は、すべてマッチング部14が行う。また、この処理の入力は構造化文書中の文書要素であり、出力は入力の文書要素と同一の構造化文書中の文書要素である。
[S211]入力の文書要素に弟がいるか否か判定する。弟がいる場合は処理をステップS212へ進め、弟がいない場合は処理をステップS213へ進める。
[S212]入力の文書要素の弟要素を出力し、処理を終了する。
[S213]入力の文書要素に親がいるか否か判定する。親がいる場合は処理をステップS214へ進め、親がいない場合は処理をステップS216へ進める。
[S214]入力の文書要素の親要素を引数にして弟要素特定処理を呼び出す。
[S215]ステップS214で呼び出した弟要素特定処理の返り値を出力し、処理を終了する。
[S216]空(NULL値)を出力し、処理を終了する。
【0077】
以上の処理をマッチング部が行うことにより、文書保持部11に格納されている文書の中で、階層オートマトン生成部13が生成した階層オートマトンに適合する文書を抽出することができる。たとえば、図6の階層オートマトン100を入力とするオートマトンマッチング処理では、図68の文書91と図4の文書93のどちらを入力の文書としても、参考文献エントリに対応する文書要素を得ることができる。以下に、図68の文書91と図4の文書93を対象としたオートマトンマッチング処理の呼び出し関係について説明する。
【0078】
図68の文書91に対する処理では、図6の識別子「1 a」の状態遷移と識別子「005 」の文書要素がマッチングする場合にのみ参考文献エントリが得られる。識別子「1 a」の状態遷移の開始端の状態である識別子「11」の状態と識別子「005 」の文書要素との組を入力とするオートマトンマッチング処理、および、この処理から直接または間接的に呼び出されるオートマトンマッチング処理の呼び出し関係を以下に示す。
【0079】
図27は、図68に示した文書における呼び出し関係を示す第1の図である。また、図28は、図68に示した文書における呼び出し関係を示す第2の図である。
【0080】
図27、図28のノード201〜215はオートマトンマッチング処理を意味し、ノード間の実線の矢印は処理の間の直接的な呼び出し関係、ノード間の破線は処理の間の間接的な呼び出し関係を意味する。また、○印は文書要素セットを変数Vに書き込めることを意味し、×印は文書要素セットを変数Vに書き込めないことを意味する。ノード中の4つ組は、入力の状態の識別子、入力の文書要素の識別子、入力の文書要素セット、及び入力のスタックを意味する。
【0081】
オートマトンマッチング処理を実行した場合の呼び出し関係は一般には有向木となるが、オートマトンマッチング処理起動の履歴を内部的に保持し、この履歴を利用して同一の引数に対する処理呼び出しをただ一1度に抑えることができる。図27、図28の有向グラフは、同一の引数に対する処理呼び出しをただ一度に抑えた場合の呼び出し関係を表現している。
【0082】
図27、図28では、ノード204の処理が実行されるオートマトン(図6のオートマトン130)に記号"+r"が設定されているためノード205の処理が呼び出される。この呼び出しにより、識別子「007 」の文書要素を読み飛ばし、識別子「008 」の文書要素や識別子「009 」の文書要素を対象としたオートマトンマッチング処理を呼び出すことを可能としている。この結果、識別子「008 」の文書要素と識別子「009 」の文書要素を参考文献エントリとして得ることができる。
【0083】
図4の文書93に対する処理でも、図6の状態遷移1aと識別子「005 」の文書要素がマッチングする場合にのみ参考文献が得られる。状態遷移1aの開始端の状態である識別子「11」の状態と識別子「005 」の文書要素の組を入力とするオートマトンマッチング処理、および、この処理から直接または間接的に呼び出されるオートマトンマッチング処理の呼び出し関係を以下に示す。
【0084】
図29は、図4に示した文書における呼び出し関係を示す第1の図である。また、図30は、図4に示した文書における呼び出し関係を示す第2の図である。図29、図30の表記方法は図27、図28と同一であり、各ノード301〜319がオートマトンマッチング処理を示している。
【0085】
図29、図30では、図27、図28と同様、ノード304の処理からノード305の処理を呼び出すことによって識別子「007 」の文書要素を読み飛ばすことが可能となっている。さらに、ノード306〜309の処理からノード310〜ノード313の処理を呼び出すことによって識別子「009 」の文書要素を読み飛ばすことを可能としている。この結果、識別子「008 」の文書要素と識別子「010 」の文書要素を参考文献エントリとして得ることができる。
【0086】
図31は、図6の階層オートマトンと図68の文書をマッチング部に入力した結果得られる文書要素セットを示す図である。また、図32は、図6の階層オートマトンと図4の文書をマッチング部に入力した結果得られる文書要素セットを示す図である。なお、本実施の形態で示した処理の流れでは、同一の文書要素セットが複数出力されることがあるが、簡単にするため図31、図32では同一の文書要素セットを1つだけ示している。
【0087】
次に、文書処理部15の処理について説明する。
本実施の形態における文書処理部15は、マッチング部14で得られた文書要素セットごとに、処理対象の文書の論理構造を縮退した結果得られる構造化文書から可視化データを生成し、入出力装置20のCRTディスプレイに出力するものとする。
【0088】
図33は、図68の構造化文書を処理対象としたときにCRTディスプレイに表示される画面を示す図である。この画面410は、部分構造表示部411と適合内容表示部412とがある。部分構造表示部411には、マッチング部14で得られた文書要素セットに含まれる文書要素の構造が表示されている。また、適合内容表示部412には、部分構造表示部411に表示された文書要素の内容が表示されている。
【0089】
図34は、図4の構造化文書を処理対象としたときにCRTディスプレイに表示される画面を示す図である。なお、図68の文書91と図4の文書93とは論理構造が異なるだけで文書の内容は同じであるため、この画面420の部分構造表示部421と適合内容表示部422との表示内容は、図33の画面410の表示内容と同じである。
【0090】
以上で、第1の実施の形態における文書処理装置の処理は終了する。
なお、第1の実施の形態で用いた検索条件ノードおよび階層オートマトンでは、パターン指定やオートマトンに記号"+r"を明示的に表示する表記法を採用したが、他の表記方法を採用してもよい。すなわち、パターン指定直下の文書要素列を決定する処理において、処理対象の文書要素をその文書要素直下の文書要素列と置き換えて処理を進めることができるパターン指定やオートマトンを、他のパターン指定等と区別できればよい。たとえば、上記の例で記号"+r"を伴わないパターン指定やオートマトンに記号"-r"を設定し、記号"+r"を伴うパターン指定やオートマトンには記号を設定しない表記法を採用することもできる。この場合でも、第1の実施の形態で示した処理の流れにおいて記号"+r"を扱う処理を適切に変更することにより、同一の処理の流れを実現することが容易に可能である。
【0091】
また、第1の実施の形態のオートマトン生成処理(図9、図10に示す)の流れでは、SEQ パターン指定、CHO パターン指定、またはOPTREPパターン指定に対応するオートマトンが生成される。しかし、オートマトン生成処理を以下のように実現することで、正規表現に対応するオートマトンを生成することも可能である。その例を、第1の実施の形態に関する応用例として以下に説明する。
【0092】
図35は、第1の実施の形態に関する応用例のオートマトン生成処理手順を示すフローチャートである。この処理は、すべて階層オートマトン生成部13が行う。
[S301]検索条件ノードに対応するオートマトンが変数Tに含まれる場合には処理をステップS302へ進め、そうでない場合は処理をステップS303へ進める。
[S302]入力の状態遷移から、検索条件ノードに対応するオートマトンへの参照を生成し、処理を終了する。
[S303]オートマトンを生成し、入力の状態遷移からオートマトンへの参照を生成する。
[S304]入力の検索条件ノードのパターン指定に"+r"が設定されているか否か判定し、設定されている場合には処理をステップS305へ進め、そうでない場合には処理をステップS306へ進める。
[S305]生成したオートマトンに"+r"を設定する。
[S306]オートマトンに初期状態と受理状態を1つずつ生成する。
[S307]検索条件ノードの正規表現とオートマトンを引数にして属性変換文法評価処理を呼び出す。この処理の詳細は、図36に示す。
[S308]ステップS307で生成されたオートマトンを変数Tに出力する。
【0093】
図36は、属性変換文法評価処理の手順を示すフローチャートである。この処理は、すべて階層オートマトン生成部13で行われる。また、この処理の入力は正規表現とオートマトンであり、出力はオートマトンである。
[S311]「プログラミング言語処理系」(佐々政孝著、岩波書店)65ページ図3.5記載の属性変換文法で入力の正規表現を解析し、構文木を構成する。
[S312]構文木の根を処理対象とする。
[S313]処理対象に対応する生成規則を上記属性変換文法から特定し、特定した生成規則に対応する操作を行う。
[S314]ステップS313で特定された生成規則が生成規則(2) であり、かつ、ステップS313で状態遷移に対応付けられた述語と同一の検索条件ノードに正規表現が含まれる場合には処理をステップS315へ進め、そうでない場合には処理をステップS316へ進める。
[S315]ステップS313で生成された状態遷移と、ステップS313で状態遷移に対応付けられた述語と同一の検索条件ノードに含まれる正規表現を引数にして、図35のオートマトン生成処理を呼び出す。
[S316]構文木を前順に走査したときに処理対象の次に走査される記号が存在すれば処理をステップS317へ進め、そうでなければステップS318に進む。
[S317]ステップS316の記号を処理対象とし、処理をステップS313に進める。
[S318]オートマトンを出力し、処理を終了する。
【0094】
このようなオートマトン生成処理を用いることで、検索条件ノードのパターン指定として任意の正規表現を用いることができる。ただし、この場合の検索条件ノードには常に述語が含まれる。
【0095】
さらに、図36に示した属性変換文法評価処理を以下のように実現することにより、検索条件ノードのパターン指定として任意の正規表現を用いることができるだけでなく、検索条件中に述語を含まない検索条件ノードを用いることが可能となる。
【0096】
図37は、属性変換文法評価処理の変形例を示す図である。この処理は、図36の処理に代えて行われ、すべての処理が階層オートマトン生成部13で行われる。また、この処理の入力は正規表現とオートマトンであり、出力はオートマトンである。
[S321]「プログラミング言語処理系」(佐々政孝著、岩波書店)65ページ図3.5記載の属性変換文法で入力の正規表現を解析し、構文木を構成する。
[S322]構文木の根を処理対象とする。
[S323]処理対象に対応する生成規則を上記属性変換文法から特定し、特定した生成規則に対応する操作を行う。
[S324]ステップS323で状態遷移に対応付けられた検索条件ノードに正規表現が含まれる場合には処理をステップS325へ進め、そうでない場合には処理をステップS326へ進める。
[S325]ステップS323で生成された状態遷移と、ステップS323で状態遷移に対応付けられた述語と同一の検索条件ノードに含まれる正規表現を引数にして、図35のオートマトン生成処理を呼び出す。
[S326]構文木を前順に走査したときに処理対象の次に走査される記号が存在するか否かを判断する。存在すれば処理をステップS327へ進め、そうでなければ処理をステップS328に進める。
[S327]ステップS326の記号を処理対象とし、処理をステップS323に進める。
[S328]オートマトンを出力し、処理を終了する。
【0097】
次に、第2の実施の形態について説明する。第2の実施の形態における処理対象の構造化文書は、図69の構造化文書である。第1の実施の形態で示した文書処理装置に図5の検索条件と図69の文書92を入力しても、識別子「002 」の文書要素が検索条件ノード中の述語にマッチしないために参考文献エントリを得ることができない。
【0098】
そこで、図69の文書92に対しても所望の結果を得るため、本実施の形態の文書処理装置では、検索条件のパターン指定に"+p"を設定することができるようにする。"+p"は、このパターン指定と文書要素とのマッチング中に、マッチング対象の文書要素を読み飛ばしてもよいことを意味する。
【0099】
第2の実施の形態で用いる検索条件を以下に示す。
図38は、"+p"を用いて検索条件の例を示す図である。この検索条件50は、図5の検索条件40のパターン指定42に記号"+p"を追加し、パターン指定44およびパターン指定46から記号"+r"を取り除いたものであり、文書要素を引数とする述語51,53,55,57と、パターン指定52,54,56とで表されている。
【0100】
"+p"の追加により、述語53にマッチする文書要素の前に出現する文書要素群、述語53にマッチする文書要素とパターン指定54にマッチする文書要素列の間の文書要素群、及びパターン指定54にマッチする文書要素列の後に出現する文書要素群を読み飛ばしてマッチングを行うことが可能となる。具体的には、図69の文書に対する処理では識別子が「002 」、「003 」、「007 」、「008 」の文書要素を読み飛ばして所望の文書要素を得ることができる。
【0101】
第2の実施の形態に係る文書処理装置を実現するための構成要素は、第1の実施の形態と同様である。そのため、図2に示した構成を用いて第2の実施の形態を説明する。第2の実施の形態では、"+p"を含む検索条件を処理するため、本実施の形態の文書処理装置では、第1の実施の形態の文書処理装置のオートマトン生成処理とオートマトンマッチング処理に以下の変更を施した処理が実行される。
【0102】
図39は、第2の実施の形態におけるオートマトン生成処理の手順を示すフローチャートである。これは、第1の実施の形態の図9、図10の処理に代えて階層オートマトン生成部13で行われる。
[S401]検索条件ノードに対応するオートマトンが変数Tに含まれるか否かを判断する。変数Tに含まれる場合は処理をステップS402へ進め、そうでない場合は処理をステップS403へ進める。
[S402]入力の状態遷移から、検索条件ノードに対応するオートマトンへの参照を生成し、処理を終了する。
[S403]オートマトンを生成し、入力の状態遷移からオートマトンへの参照を生成する。
[S404]入力の検索条件ノードのパターン指定に"+p"が設定されているか否か判定し、設定されている場合には処理をステップS405へ進め、そうでない場合には処理をステップS406へ進める。
[S405]生成したオートマトンに"+p"を設定する。
[S406]オートマトン上に初期状態と受理状態を生成する。
[S407]検索条件ノードのパターン指定の種別を判別する。パターン指定が"SEQ" なら処理をステップS408へ進め、"CHO" なら処理をステップS409へ進め、"OPTREP"なら処理をステップS410へ進める。
[S408]オートマトンを引数にしてSEQ パターン指定生成処理を呼び出す。その後、処理をステップS411に進める。なお、SEQ パターン指定生成処理の詳細は、図11、図12に示した処理と同様である。
[S409]オートマトンを引数にしてCHO パターン指定生成処理を呼び出す。その後、処理をステップS411に進める。なお、CHO パターン指定生成処理の詳細は、図13に示した処理と同様である。
[S410]オートマトンを引数にしてOPTREPパターン指定生成処理を呼び出す。その後、処理をステップS411に進める。なお、OPTREPパターン指定生成処理の詳細は、図14に示した処理と同様である。
[S411]各生成処理の返り値のオートマトンを変数Tに格納する。
【0103】
図38の検索条件50を第2の実施の形態のオートマトン生成処理に入力した結果出力される階層オートマトンを以下に示す。
図40は、第2の実施の形態の文書処理装置により生成された階層オートマトンを示す図である。階層オートマトン500は、4つのオートマトン510,520,530,540からなる。各オートマトン510,520,530,540の状態と、状態遷移とには、図6の例と同様の識別子が割り振られている。
【0104】
この階層オートマトン500は、オートマトン520の右上に"P" が設定されている。この記号は、オートマトン上でマッチング対象の文書要素を読み飛ばしてもよいことを意味する。
【0105】
第2の実施の形態におけるオートマトンマッチング処理は、以下のように変更される。
図41は、第2の実施の形態におけるオートマトンマッチング処理の手順を示すフローチャートの前半である。この処理は、第1の実施の形態の図16〜図18の処理に代えて行われる。
[S421]入力の文書要素がスタック先頭の文書要素であるか否かを判断する。スタック先頭の文書要素であれば処理をステップS422へ進め、そうでない場合は処理をステップS426に進める。
[S422]入力の状態とスタック先頭の状態を引数にした到達可能状態特定処理の返り値である状態の集合に、スタック先頭の状態が含まれるか否かを判断する。スタック先頭の状態が含まれる場合は処理をステップS423に進め、そうでない場合は処理を終了する。
[S423]スタック先頭の文書要素と状態の組をpop し、入力の状態をpop した状態と置き換える。
[S424]スタックが空であるか否かを判定し、空の場合は処理をステップS425へ進め、そうでない場合は処理をステップS426へ進める。
[S425]変数Vに入力の文書要素セットを書き出す。
[S426]入力の状態を引数にしてマッチング可能状態遷移特定処理を起動した結果の返り値の状態遷移を変数Xに格納する。マッチング可能状態遷移特定処理の詳細は、図22に示す通りである。
[S427]変数Xのすべての状態遷移が処理済みの場合は処理を終了し、そうでない場合は処理をステップS428に進める。
[S428]変数Xの未処理の状態遷移の1つを処理対象とする。
[S429]処理対象の状態遷移と入力の文書要素を引数として文書要素マッチング処理を呼び出し、返り値の値を判断する。返り値が真なら処理をステップS430に進め、返り値が偽なら処理をステップS437に進める。なお、文書要素マッチング処理の詳細は、図24に示す通りである。
[S430]入力の文書要素セットのコピーを作成し、文書要素セットのコピーに入力の文書要素を追加する。
【0106】
図42は、第2の実施の形態におけるオートマトンマッチング処理の手順を示すフローチャートの後半である。
[S431]入力の文書要素を引数にして次要素特定処理を起動した結果の返り値が入力の文書要素の長子であるか否かを判定する。長子である場合は処理をステップS432に進め、そうでない場合は処理をステップS436に進める。なお、次要素特定処理の詳細は、図25に示す通りである。
[S432]処理対象の状態遷移がオートマトンを参照しているか否か判定し、参照している場合は処理をステップS433へ進め、そうでない場合は処理をステップS436へ進める。
[S433]スタックのコピーを作成する。
[S434]スタックのコピーに、処理対象の状態遷移の終了端の状態と、入力の文書要素を引数とした弟要素特定処理の返り値の組をpushする。
[S435]処理対象の状態遷移が参照するオートマトンの初期状態を引数として到達可能状態特定処理を呼び出した場合の返り値の状態ごとに、入力の文書要素の長子と、返り値の状態と、ステップS430で作成した文書要素セットのコピーと、ステップS434で作成したスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。その後、処理をステップS437に進める。
[S436]処理対象の状態遷移の終了端の状態を引数として到達可能状態特定処理を呼び出した場合の返り値の状態ごとに、入力の文書要素を引数として弟要素特定処理を起動した結果の返り値と、返り値の状態と、ステップS430で作成した文書要素セットのコピーと、入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。
[S437]処理対象の状態遷移が属するオートマトンに"+p"が記されているか否か判定し、記されている場合は処理をステップS438へ進め、そうでない場合は処理をステップS427に進める。
[S438]入力の状態、入力の文書要素を弟要素特定処理に入力した場合の返り値の文書要素、入力の文書要素セットのコピー、入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。その後、処理をステップS427に進める。
【0107】
第2の実施の形態のマッチング部14に図69の構造化文書と図40の階層オートマトンを入力したときのオートマトンマッチング処理の呼び出し関係を以下に示す。
【0108】
図43は、第2の実施の形態におけるオートマッチング処理の呼び出し関係を示す第1の図である。また、図44は、第2の実施の形態におけるオートマッチング処理の呼び出し関係を示す第2の図である。図43、図44の表記法は図27、図28の表記法と同一であり、ノード601〜614はオートマトンマッチング処理を意味する。なお、簡単のため、図43、図44では文書要素セット(001,004,005,006) の出力に至る呼び出し関係のみを示し、文書要素セット(001,004) および文書要素セット(001,004,005) の出力に至る呼び出し関係は省略してある。
【0109】
図43、図44では、ノード602の処理が実行されるオートマトン(図40のオートマトン520)に記号"+p"が設定されているため、ノード603の処理およびノード604の処理が呼び出される。この呼び出しにより、識別子が「002 」の文書要素および識別子が「003 」の文書要素を読み飛ばし、識別子が「004 」、「005 」、「006 」の文書要素を対象としたオートマトンマッチング処理を呼び出すことを可能としている。さらに、ノード611の処理が実行されているオートマトン(図40のオートマトン520)に記号"+p"が設定されているため、ノード612の処理およびノード614の処理が呼び出される。この呼び出しにより、識別子が「007 」の文書要素と「008 」の文書要素を読み飛ばすことができる。この結果、識別子が「005 」の文書要素と「006 」の文書要素を参考文献エントリとして得ることができる。
【0110】
図45は、図69の構造化文書と図38の検索条件を第2の実施の形態の文書処理装置に入力した結果得られるマッチング部の出力を示す図である。このように、第2の実施の形態によれば、図69のような文書の中からも、図38の検索条件に適合する構造を抽出することができる。
また、第1の実施の形態の応用例(図35に示す)と同様の変更を、第2の実施の形態に対して行うこともできる。そのような、第2の実施の形態に対する応用例を以下に示す。
【0111】
図46は、第2の実施の形態の応用例に係るオートマトン生成処理のフローチャートである。これは、図39の処理に代えて階層オートマトン生成部13で行われる処理である。
[S501]検索条件ノードに対応するオートマトンが変数Tに含まれるか否かを判断する。変数Tに含まれる場合には処理をステップS502へ進め、そうでない場合は処理をステップS503へ進める。
[S502]入力の状態遷移から、検索条件ノードに対応するオートマトンへの参照を生成し、処理を終了する。
[S503]オートマトンを生成し、入力の状態遷移からオートマトンへの参照を生成する。
[S504]入力の検索条件ノードのパターン指定に"+p"が設定されているか否か判定する。"+p"が設定されている場合には処理をステップS505へ進め、そうでない場合には処理をステップS506へ進める。
[S505]生成したオートマトンに"+p"を設定する。
[S506]オートマトンに初期状態と受理状態を1つずつ生成する。
[S507]検索条件ノードの正規表現とオートマトンを引数にして属性変換文法評価処理を呼び出す。
[S508]ステップS507で生成されたオートマトンを変数Tに出力し、処理を終了する。
【0112】
このようにして、第1の実施の形態の応用例と同様の変更を、第2の実施の形態に対して行うことができる。
次に、第3の実施の形態について説明する。第3の実施の形態は、第1の実施の形態の機能と、第2の実施の形態の機能とを併せ持った文書処理装置である。
【0113】
第3の実施の形態において処理対象として想定している構造化文書は、次のような文書である。
図47は、構造化文書の第4の例を示す図である。第1の実施の形態で示した文書処理装置に図5の検索条件40と図47の文書94を入力しても、識別子「007 」のPARA要素が検索条件ノード中の述語にマッチしないために参考文献エントリを得ることができない。また、第2の実施の形態で示した文書処理装置に図5の検索条件40と図47の文書94を入力しても、識別子「008 」のLIST要素が検索条件ノード中の述語にマッチしないために参考文献エントリを得ることができない。
【0114】
そこで、図47の文書94に対しても所望の結果を得るため、第3の実施の形態の文書処理装置では、検索条件のパターン指定に"+r"と"+p"の両方を設定することができるようにする。
【0115】
図48は、"+r"と"+p"とを用いた検索条件を示す図である。図48の検索条件60は、図5の検索条件40のパターン指定42に記号"+p"を追加したものであり、文書要素を引数とする述語61,63,65,67と、パターン指定62,64,66とで表されている。この追加により、述語63にマッチする文書要素の前に出現する文書要素群、述語63にマッチする文書要素とパターン指定64にマッチする文書要素列の間の文書要素群、及びパターン指定64にマッチする文書要素列の後に出現する文書要素群を読み飛ばしてマッチングを行うことが可能となる。具体的には、図47の文書94に対する処理では識別子「007 」「009 」の文書要素を読み飛ばして所望の文書要素を得ることができる。
【0116】
ここで、"+r"と"+p"を含む検索条件を処理するため、第3の実施の形態の文書処理装置では、第1の実施の形態の文書処理装置のオートマトン生成処理とオートマトンマッチング処理に以下の変更を施した処理が実行される。なお、第3の実施の形態に係る文書処理装置に必要な構成要素は、第1の実施の形態と同様であるため、図2に示した構成を用いて第3の実施の形態を説明する。
【0117】
図49は、第3の実施の形態におけるオートマトン生成処理手順を示すフローチャートである。この処理は、第1の実施の形態のオートマトン生成処理(図9、図10に示す)に代えて行われる処理であり、すべて階層オートマトン生成部13で行われる。
[S601]検索条件ノードに対応するオートマトンが変数Tに含まれるか否かを判断し、変数Tに含まれる場合は処理をステップS602へ進め、そうでない場合は処理をステップS603へ進める。
[S602]入力の状態遷移から、検索条件ノードに対応するオートマトンへの参照を生成し、処理を終了する。
[S603]オートマトンを生成し、入力の状態遷移からオートマトンへの参照を生成する。
[S604]入力の検索条件ノードのパターン指定に"+r"が設定されているか否か判定し、設定されている場合には処理をステップS605へ進め、そうでない場合には処理をステップS606へ進める。
[S605]生成したオートマトンに"+r"を設定する。
[S606]入力の検索条件ノードのパターン指定に"+p"が設定されているか否か判定し、設定されている場合には処理をステップS607へ進め、そうでない場合には処理をステップS608へ進める。
[S607]生成したオートマトンに"+p"を設定する。
[S608]オートマトン上に初期状態と受理状態を生成する。
[S609]検索条件ノードのパターン指定の種別を判別する。パターン指定が"SEQ" なら処理をステップS610へ進め、"CHO" なら処理をステップS611へ進め、"OPTREP"なら処理をステップS612へ進める。
[S610]オートマトンを引数にしてSEQ パターン指定生成処理を呼び出す。その後、処理をステップS613に進める。なお、SEQ パターン指定生成処理の詳細は、図11、図12に示した処理と同様である。
[S611]オートマトンを引数にしてCHO パターン指定生成処理を呼び出す。その後、処理をステップS613に進める。なお、CHO パターン指定生成処理の詳細は、図13に示した処理と同様である。
[S612]オートマトンを引数にしてOPTREPパターン指定生成処理を呼び出す。なお、OPTREPパターン指定生成処理の詳細は、図14に示した処理と同様である。
[S613]各生成処理の返り値のオートマトンを変数Tに格納する。
【0118】
このようにして、"+r"と"+p"との両方を使用した検索条件に対する階層オートマトンが生成される。
図50は、第3の実施の形態の文書処理装置により生成された階層オートマトンを示す図である。これは、図48の検索条件を第3の実施の形態のオートマトン生成処理に入力した結果出力される階層オートマトン700である。この階層オートマトン700は、4つのオートマトン710,720,730,740で構成される。オートマトン720には"+p"の記号が付与されており、オートマトン730,740には"+r"の記号が付与されている。
【0119】
このような階層オートマトン700を用いてオートマトンマッチング処理が行われる。オートマトンマッチング処理は以下のように変更される。
図51は、第3の実施の形態におけるオートマトンマッチング処理の手順を示すフローチャートの前半である。この処理は、第1の実施の形態のオートマトンマッチング処理(図16〜図18)に代えて、マッチング部14によって行われる処理である。
[S621]入力の文書要素がスタック先頭の文書要素であるか否かを判断する。スタック先頭の文書要素であれば処理をステップS622へ進め、そうでない場合は処理をステップS626に進める。
[S622]入力の状態とスタック先頭の状態を引数にした到達可能状態特定処理の返り値である状態の集合に、スタック先頭の状態が含まれるか否かを判断する。含まれる場合は処理をステップS623に進め、そうでない場合は処理を終了する。なお、到達可能状態特定処理の詳細は、図19に示す通りである。
[S623]スタック先頭の文書要素と状態の組をpop し、入力の状態をpop した状態と置き換える。
[S624]スタックが空であるか否かを判定し、空の場合は処理をステップS625へ進め、そうでない場合は処理をステップS626へ進める。
[S625]変数Vに入力の文書要素セットを書き出す。
[S626]入力の状態を引数にしてマッチング可能状態遷移特定処理を起動した結果の返り値の状態遷移を変数Xに格納する。マッチング可能状態遷移特定処理の詳細は、図22に示す通りである。
[S627]変数Xのすべての状態遷移が処理済みであるか否かを判断し、処理済みの場合は処理を終了し、そうでない場合は処理をステップS628に進める。
[S827]変数Xの未処理の状態遷移の1つを処理対象とする。
[S629]処理対象の状態遷移と入力の文書要素を引数として文書要素マッチング処理を呼び出し、返り値を判断する。返り値が真なら処理をステップS630に進め、偽なら処理をステップS637に進める。なお、文書要素マッチング処理の詳細は、図24に示す通りである。
[S630]入力の文書要素セットのコピーを作成し、文書要素セットのコピーに入力の文書要素を追加する。
【0120】
図52は、第3の実施の形態におけるオートマトンマッチング処理の手順を示すフローチャートの後半である。
[S631]入力の文書要素を引数にして次要素特定処理を起動した結果の返り値が入力の文書要素の長子であるか否かを判定する。返り値が長子である場合は処理をステップS632に進め、そうでない場合は処理をステップS636に進める。なお、次要素特定処理の詳細は、図25に示す通りである。
[S632]処理対象の状態遷移がオートマトンを参照しているか否か判定し、参照している場合は処理をステップS633へ進め、そうでない場合は処理をステップS636へ進める。
[S633]スタックのコピーを作成する。
[S634]スタックのコピーに、処理対象の状態遷移の終了端の状態と、入力の文書要素を引数とした弟要素特定処理の返り値の組をpushする。
[S635]処理対象の状態遷移が参照するオートマトンの初期状態を引数として到達可能状態特定処理を呼び出した場合の返り値の状態ごとに、入力の文書要素の長子と、返り値の状態と、ステップS630で作成した文書要素セットのコピーと、ステップS634で作成したスタックのコピーとを入力としてオートマトンマッチング処理を呼び出し、処理をステップS637に進める。
[S636]処理対象の状態遷移の終了端の状態を引数として到達可能状態特定処理を呼び出した場合の返り値の状態ごとに、入力の文書要素を引数として弟要素特定処理を起動した結果の返り値と、返り値の状態と、ステップS630で作成した文書要素セットのコピーと、入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。
[S637]処理対象の状態遷移が属するオートマトンに"+r"が記されているか否か判定し、記されている場合は処理をステップS638へ進め、そうでない場合は処理をステップS640に進める。
[S638]入力の文書要素を引数にして次要素特定処理を起動した結果の返り値が入力の文書要素の長子であるか否か判定し、長子である場合は処理をステップS639に、そうでない場合は処理をステップS640に進める。
[S639]入力の状態、入力の文書要素の長子の文書要素、入力の文書要素セットのコピー、入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。
[S640]処理対象の状態遷移が属するオートマトンに"+p"が記されているか否か判定し、記されている場合はステップS641へ進め、そうでない場合は処理をS627に進める。
[S641]入力の状態、入力の文書要素を弟要素特定処理に入力した場合の返り値の文書要素、入力の文書要素セットのコピー、入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。その後、処理をステップS627に進める。
【0121】
以下に、第3の実施の形態のマッチング部14に図47の文書94と図50の階層オートマトン700を入力したときの、オートマトンマッチング処理の呼び出し関係を示す。
【0122】
図53は、第3の実施の形態におけるオートマトンマッチング処理の呼び出し関係を示す第1の図である。また、図54は、第3の実施の形態におけるオートマッチング処理の呼び出し関係を示す第2の図である。図53、図43の表記法は図27、図28の表記法と同一であり、ノード801〜813はオートマトンマッチング処理を意味する。なお、簡単のため、図53、図54では、オートマトンマッチング処理に4つ組(11,005,NULL,NULL)が入力された時点からの呼び出し関係のみを示す。さらに、文書要素セット(005,006,009,010) の出力に至る呼び出し関係のみを示し、文書要素セット(005,006) および文書要素セット(005,006,009) の出力に至る呼び出し関係は省略してある。
【0123】
図53、図54では、ノード802の処理が実行されるオートマトン(図50のオートマトン720)に記号"+p"が設定されているため、識別子「007 」の文書要素を読み飛ばしてノード803の処理を呼び出すことができる。また、ノード805の処理が実行されるオートマトン(図50のオートマトン730)に記号"+r が設定されているため、識別子「008 」の文書要素を読み飛ばしてノード806の処理を呼び出すことができる。さらに、ノード811の処理が実行されるオートマトン(図50のオートマトン720)に記号"+p"が設定されているため、識別子「011 」の文書要素を読み飛ばしてノード812の処理を呼び出し、結果的に識別子「009 」の文書要素と識別子「010 」の文書要素を参考文献エントリとして得ることができる。
【0124】
図55は、第4の実施の形態におけるマッチング部の出力例を示す図である。これは、図47の構造化文書と図48の検索条件を本実施例の文書処理装置に入力した結果得られるマッチング部の出力結果である。
【0125】
このように、第1の実施の形態の機能と第2の実施の形態の機能とを兼ね備えることで、様々な構造化文書の中から、利用者の意図に合った部分構造をマッチング処理により検出することができる。
【0126】
ところで、第1の実施の形態において説明した応用例(図35に示す)と同様の応用を、第3の実施の形態に対して行うこともできる。その場合図35に示したオートマトン生成処理は以下のように変更される。
【0127】
図56は、第3の実施の形態のオートマトン生成処理に関する応用例を示すフローチャートである。この処理は、図49の処理に代えて階層オートマトン生成部13で行われる処理である。
[S701]検索条件ノードに対応するオートマトンが変数Tに含まれるか否かを判断し、変数Tに含まれる場合には処理をステップS702へ進め、そうでない場合は処理をステップS703へ進める。
[S702]入力の状態遷移から、検索条件ノードに対応するオートマトンへの参照を生成し、処理を終了する。
[S703]オートマトンを生成し、入力の状態遷移からオートマトンへの参照を生成する。
[S704]入力の検索条件ノードのパターン指定に"+r"が設定されているか否か判定し、設定されている場合には処理をステップS705へ進め、そうでない場合には処理をステップS706へ進める。
[S705]生成したオートマトンに"+r"を設定する。
[S706]入力の検索条件ノードのパターン指定に"+p"が設定されているか否か判定し、設定されている場合には処理をステップS707へ進め、そうでない場合には処理をステップS708へ進める。
[S707]生成したオートマトンに"+p"を設定する。
[S708]オートマトンに初期状態と受理状態を1つずつ生成する。
[S709]検索条件ノードの正規表現とオートマトンを引数にして属性変換文法評価処理を呼び出す。
[S710]ステップS707で生成されたオートマトンを、変数Tに出力する。
【0128】
次に、第4の実施の形態について説明する。第4の実施の形態は、要素に対して属性が与えられている場合に、その属性を、該当する要素の子孫に対して継承させながらマッチングを行うものである。
【0129】
第4の実施の形態では、以下のような構造化文書を処理対象として想定している。
図57は、構造化文書の第5の例を示す図である。この文書95の一部の文書要素には、名前だけでなく属性も設定されている。たとえば識別子「003 」の文書要素では、要素名として"LIST"が設定されているだけでなく、属性として"ALIGN="C"" が設定されている。本実施例では、文書要素の属性ALIGN はその文書要素を頂点とする部分木に対応する文書内容を表示するときの配置を規定するものとする。そして、属性値"C" は、文書内容がセンタリングされて表示されることを意味するものとする。
【0130】
図57の構造化文書から参考文献エントリを得るための検索条件を以下に示す。
図58は、第4の実施の形態に用いる検索条件を示す図である。この検索条件70は、文書要素を引数とする述語71,73,75,77と、パターン指定72,74,76とで表されている。検索条件70の述語73,75,77には、"CONTENT" と"ATTR"という2種類の条件が示されている。"CONTENT" は文書要素の内容に関する条件を意味し、"ATTR"は文書要素の属性に関する条件を意味する。たとえば図58の検索条件の述語73に示されている条件は「" 参考文献" または"References"を内容に含み、属性ALIGN の値が"C" である文書要素」となる。
【0131】
図59は、属性を指定した検索条件から生成される階層オートマトンを示す図である。この階層オートマトン800は、4つのオートマトン810,820,830,840からなる。
【0132】
なお、第4の実施の形態の文書処理装置の装置構成および処理の流れは、基本的には第3の実施の形態で示したものと同一である。ただし、図48に示した検索条件を処理できるようにするため、図51、図52のオートマトンマッチング処理は次のように変更される。
【0133】
図60は、第4の実施の形態のオートマトンマッチング処理手順を示す第1のフローチャートである。
[S801]入力の文書要素がスタック先頭の文書要素であるか否かを判断し、スタック先頭の文書要素である場合は処理をステップS802へ進め、そうでない場合は処理をステップS806に進める。
[S802]入力の状態とスタック先頭の状態を引数にした到達可能状態特定処理の返り値である状態の集合に、スタック先頭の状態が含まれるか否かを判断する。スタック先頭の状態が含まれる場合は処理をステップS803に進め、そうでない場合は処理を終了する。
[S803]スタック先頭の文書要素と状態の組をpop し、入力の状態をpop した状態と置き換える。
[S804]スタックが空であるか否かを判定し、空の場合は処理をステップS805へ進め、そうでない場合は処理をステップS806へ進める。
[S805]変数Vに入力の文書要素セットを書き出す。
[S806]入力の状態を引数にしてマッチング可能状態遷移特定処理を起動した結果の返り値の状態遷移を変数Xに格納する。なお、マッチング可能状態遷移特定処理の詳細は、図22に示す通りである。
[S807]変数Xのすべての状態遷移が処理済みか否かを判断し、処理済みの場合は処理を終了し、そうでない場合は処理をステップS808に進める。
[S808]変数Xの未処理の状態遷移の1つを処理対象とする。
[S809]処理対象の状態遷移と入力の文書要素を引数として文書要素マッチング処理を呼び出し、返り値が真なら処理をステップS810に進め、偽なら処理をステップS817に進める。文書要素マッチング処理の詳細は、図63に示す。
【0134】
図61は、第4の実施の形態のオートマトンマッチング処理手順を示す第2のフローチャートである。
[S810]入力の文書要素セットのコピーを作成し、文書要素セットのコピーに入力の文書要素を追加する。
[S811]入力の文書要素を引数にして次要素特定処理を起動した結果の返り値が入力の文書要素の長子であるか否かを判定し、長子である場合は処理をステップS812に進め、そうでない場合は処理をステップS816に進める。
[S812]処理対象の状態遷移がオートマトンを参照しているか否か判定し、参照している場合は処理をステップS813へ進め、そうでない場合は処理をステップS816へ進める。
[S813]スタックのコピーを作成する。
[S814]スタックのコピーに、処理対象の状態遷移の終了端の状態と、入力の文書要素を引数とした弟要素特定処理の返り値の組をpushする。
[S815]処理対象の状態遷移が参照するオートマトンの初期状態を引数として到達可能状態特定処理を呼び出した場合の返り値の状態ごとに、入力の文書要素の長子と、返り値の状態と、ステップS810で作成した文書要素セットのコピーと、ステップS814で作成したスタックのコピーを入力としてオートマトンマッチング処理を呼び出し、処理をステップS817に進める。
[S816]処理対象の状態遷移の終了端の状態を引数として到達可能状態特定処理を呼び出した場合の返り値の状態ごとに、入力の文書要素を引数として弟要素特定処理を起動した結果の返り値と、返り値の状態と、ステップS810で作成した文書要素セットのコピーと、入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。
[S817]処理対象の状態遷移が属するオートマトンに"+r"が記されているか否か判定し、記されている場合は処理をステップS818へ進め、そうでない場合は処理を終了する。
[S818]入力の文書要素を引数にして次要素特定処理を起動した結果の返り値が入力の文書要素の長子であるか否か判定し、長子である場合は処理をステップS819に進め、そうでない場合は処理をステップS821に進める。
[S819]入力の文書要素に設定されている属性を入力の文書要素の子供の文書要素に設定する。
【0135】
図62は、第4の実施の形態のオートマトンマッチング処理手順を示す第3のフローチャートである。
[S820]入力の状態、入力の文書要素の長子の文書要素、入力の文書要素セットのコピー、入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。
[S821]処理対象の状態遷移が属するオートマトンに"+p"が記されているか否か判定し、記されている場合は処理をステップS822へ進め、そうでない場合は処理をステップS807に進める。
[S822]入力の状態、入力の文書要素を弟要素特定処理に入力した場合の返り値の文書要素、入力の文書要素セットのコピー、入力のスタックのコピーを入力としてオートマトンマッチング処理を呼び出す。その後、処理をステップS807に進める。
【0136】
図60〜図62の処理の流れは、図51、図52の処理の流れにステップS819の処理が追加されたものである。また、図24の文書要素マッチング処理は以下のように変更される。
【0137】
図63は、第4の実施の形態における文書要素マッチング処理の手順を示すフローチャートである。この処理は、すべてマッチング部14によって行われる。
[S831]文書要素に対応付けられた文書内容の文字列が、状態遷移に対応付けられた述語のCONTENT エントリの文字列パターンにマッチするか否かを判断する。マッチする場合は処理をステップS832へ進め、そうでない場合は処理をステップS834に進める。
[S832]状態遷移に対応付けられた属性の名前と値の組が、文書要素に対応付けられた述語のATTRエントリの属性の名前と値の組の中に存在するか否かを判断する。存在する場合は処理をステップS833へ進め、そうでない場合は処理をステップS834に進める。
[S833]真を返し、処理を終了する。
[S834]偽を返し、処理を終了する。
【0138】
ここで、第4の実施の形態のマッチング部14に図57に示す文書95と図59に示す階層オートマトン800とを入力した際の、オートマトンマッチング処理の呼び出し関係を以下に示す。
【0139】
図64は、第4の実施の形態による呼び出し関係を示す図である。図64の表記法は図27、図28などの表記法と同一であり、ノード901〜905はオートマトンマッチング処理を意味する。なお、図64では、本実施の形態の文書処理装置の特徴的な処理の流れを説明するのに必要な呼び出し関係のみを示している。
【0140】
図64では、第3の実施の形態と同様、ノード902の処理が実行されるオートマトン(図59のオートマトン820)に記号"+p"が設定されているため、識別子「003 」の文書要素から識別子「009 」の文書要素を読み飛ばし、識別子「010 」文書要素を処理対象とすることができる(ノード903の処理)。ここで、第3の実施の形態の文書処理装置では、識別子「001 」の文書要素をマッチングの対象にするか、識別子「010 」の文書要素を読み飛ばして識別子「011 」の文書要素をマッチング対象にすることしかできなかった。そのため、識別子「3a」の状態遷移の条件を満足する文書要素を得ることはできない。
【0141】
しかし、第4の実施の形態の文書処理装置では、識別子「010 」の文書要素の属性を識別子「011 」の文書要素に追加して得られる文書要素をマッチングの対象とすることができる(ノード904の処理)。したがって、識別子「011 」の文書要素を識別子「3a」の状態遷移とマッチさせ、識別子「012 」の文書要素以降を対象とした処理を続けることができる。そして、結果的に、識別子「013 」の文書要素と識別子「014 」の文書要素とを参考文献エントリとして得ることができる。
【0142】
次に、第5の実施の形態について説明する。第5の実施の形態は、検索条件に適合した構造の内容を、別の内容に置き換えて出力するようにしたものである。
構造化文書を対象とした処理では、処理対象の文書の部分構造を検索するだけでなく、検索された部分構造の文書要素の名前や属性を変換することにより、文書作成時に想定された用途以外の用途に利用することが行われている。この処理に対応するため、第5の実施の形態の文書処理装置では、第3の実施の形態の文書処理装置の入力となる検索条件の述語に、述語にマッチした文書要素に設定すべき名前や属性を対応付けておく。このような検索条件の例を以下に示す。
【0143】
図65は、第5の実施の形態に用いる検索条件を示す図である。この検索条件80は、文書要素を引数とする述語81,84,86,88と、パターン指定82,83,85,87とで表されている。図65の述語に対応する矩形には、記号" →" に続いて文字列が記載されている。これは、述語にマッチした文書要素の名前を" →" に続く文字列に置き換えることを意味する。
【0144】
第5の実施の形態における文書処理装置の装置構成および処理の流れは、第3の実施の形態における装置構成および処理の流れと基本的に同一である。唯一の差異は、図51に示したオートマトンマッチング処理のステップS630が、以下のように変更される点である。
[S630a]入力の文書要素セットのコピーを作成し、入力の状態遷移に対応する検索条件ノードに設定された名前や属性を入力の文書要素のコピーに設定して、このコピーを文書要素セットのコピーに追加する。
【0145】
第5の実施の形態における文書処理装置に図65の検索条件と図69の構造化文書を入力した場合のオートマトンマッチング処理の呼び出し関係を、以下に示す。
【0146】
図66は、第5の実施の形態による呼び出し関係を示す図である。図66の表記法は図27、図28などの表記法と同一であり、ノード1001〜1008はオートマトンマッチング処理を意味する。図66の呼び出し関係は図43、図44の呼び出し関係と基本的に同一であるが、処理呼び出し時の第3引数の文書要素セットには、文書要素識別子と文書要素に設定された要素名が記号"-" で接続されたものが記されている。たとえば、ノード1002の処理の第3引数である「001-" 参考文献" 」は、「文書要素セットがマッチング部から出力されるときには、識別子「001 」である文書要素(DOC 要素)の名前を" 参考文献" に変更して出力すること」を意味する。
【0147】
また、本実施の形態における文書処理装置に図65の検索条件と図69の構造化文書を入力した結果得られる文書要素セット(001,004,005,006) についてディスプレイに表示されるイメージの例を以下に示す。
【0148】
図67は、第5の実施の形態によって表示される画面を示す図である。この画面430は図33と同様に、部分構造表示部431と適合内容表示部432とで構成されている。そして、部分構造表示部431の表示内容は、要素名が置き換えられた状態で表示されている。
【0149】
なお、第5の実施の形態の文書処理装置の処理の流れは、第3の実施の形態における文書処理装置との差異を示すことによって説明した。しかし、他の実施例における文書処理装置に対しても、上記の説明で示した変更と同様の変更を施すことで、図65の検索条件を処理することが可能となる。
【0150】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、データ処理装置及び文書処理装置が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述しておく。そして、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場に流通させる場合には、CD−ROM(Compact Disk Read Only Memory) やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【0151】
【発明の効果】
以上説明したように本発明の第1のデータ処理装置では、有向順序木の中間ノードを削除し、中間ノードのあった位置に中間ノード直下のノード列を配置する操作を行った結果得られる均質化有向順序木を処理対象として、検索条件に対する適合構造の抽出を行うようにしたため、論理構造が異なる多数の情報に対する検索を行う際においても、ノード間の接続関係を利用した検索条件を利用できる。
【0152】
また、本発明の第2のデータ処理装置では、有向順序木中のいずれかのノードを頂点とする部分木を削除する操作を行った結果得られる均質化有向順序木を処理対象として、検索条件に対する適合構造の抽出を行うようにしたため、論理構造が異なる多数の情報に対する検索を行う際においても、ノード間の接続関係を利用した検索条件を利用できる。
【0153】
また、本発明の第1の文書処理装置では、有向順序木の中間ノードを削除し、中間ノードのあった位置に中間ノード直下のノード列を配置する操作を行った結果得られる均質化有向順序木を処理対象として、検索条件に対する適合構造の抽出を行うようにしたため、論理構造が異なる多数の構造化文書に対する検索を行う際においても、文書要素間の接続関係を利用した検索条件を利用できる。
【0154】
また、本発明の第2の文書処理装置では、有向順序木中のいずれかのノードを頂点とする部分木を削除する操作を行った結果得られる均質化有向順序木を処理対象として、検索条件に対する適合構造の抽出を行うようにしたため、論理構造が異なる多数の構造化文書に対する検索を行う際においても、文書要素間の接続関係を利用した検索条件を利用できる。
【0155】
また、本発明の第1のデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体では、有向順序木の中間ノードを削除し、中間ノードのあった位置に中間ノード直下のノード列を配置する操作を行った結果得られる均質化有向順序木を処理対象として、検索条件に対する適合構造の抽出を行うような処理をコンピュータに行わせることができるため、ノード間の接続関係を利用した検索条件を利用して論理構造が異なる多数の情報に対する検索を行う機能を、コンピュータ上に構築することができる。
【0156】
また、本発明の第2のデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体では、有向順序木中のいずれかのノードを頂点とする部分木を削除する操作を行った結果得られる均質化有向順序木を処理対象として、検索条件に対する適合構造の抽出を行うような処理をコンピュータに行わせることができるため、ノード間の接続関係を利用した検索条件を利用して論理構造が異なる多数の情報に対する検索を行う機能を、コンピュータ上に構築することができる。
【0157】
また、本発明の第1の文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体では、有向順序木の中間ノードを削除し、中間ノードのあった位置に中間ノード直下のノード列を配置する操作を行った結果得られる均質化有向順序木を処理対象として、検索条件に対する適合構造の抽出を行うような処理をコンピュータに行わせることができるため、ノード間の接続関係を利用した検索条件を利用して論理構造が異なる多数の構造化文書に対する検索を行う機能を、コンピュータ上に構築することができる。
【0158】
また、本発明の第2の文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体では、有向順序木中のいずれかのノードを頂点とする部分木を削除する操作を行った結果得られる均質化有向順序木を処理対象として、検索条件に対する適合構造の抽出を行うような処理をコンピュータに行わせることができるため、ノード間の接続関係を利用した検索条件を利用して論理構造が異なる多数の構造化文書に対する検索を行う機能を、コンピュータ上に構築することができる。
【図面の簡単な説明】
【図1】 本発明の原理構成図である。
【図2】 文書処理システムの構成を示すブロック図である。
【図3】 文書処理装置の処理手順を示すフローチャートである。
【図4】 構造化文書の第3の例を示す図である。
【図5】 検索条件の例を示す図である。
【図6】 階層オートマトンの第1の例を示す図である。
【図7】 階層オートマトン生成処理部が行う処理を示すフローチャートである。
【図8】 根オートマトン生成処理手順を示すフローチャートである。
【図9】 オートマトン生成処理手順を示すフローチャートの前半である。
【図10】 オートマトン生成処理手順を示すフローチャートの後半である。
【図11】 SEQ パターン生成処理手順を示すフローチャートの前半である。
【図12】 SEQ パターン生成処理手順を示すフローチャートの後半である。
【図13】 CHO パターン生成処理手順を示すフローチャートである。
【図14】 OPTREPパターン生成処理手順を示すフローチャートである。
【図15】 マッチング部の処理手順を示すフローチャートである。
【図16】 オートマトンマッチング処理手順を示す第1のフローチャートである。
【図17】 オートマトンマッチング処理手順を示す第2のフローチャートである。
【図18】 オートマトンマッチング処理手順を示す第3のフローチャートである。
【図19】 到達可能状態特定処理の手順を示すフローチャートである。
【図20】 状態チェック処理のフローチャートの前半である。
【図21】 状態チェック処理のフローチャートの後半である。
【図22】 マッチング可能状態遷移特定処理の手順を示すフローチャートである。
【図23】 状態遷移チェック処理の手順を示すフローチャートである。
【図24】 文書要素マッチング処理の手順を示すフローチャートである。
【図25】 次要素特定処理の手順を示すフローチャートである。
【図26】 弟要素特定処理の手順を示すフローチャートである。
【図27】 図68に示した文書における呼び出し関係を示す第1の図である。
【図28】 図68に示した文書における呼び出し関係を示す第2の図である。
【図29】 図4に示した文書における呼び出し関係を示す第1の図である。
【図30】 図4に示した文書における呼び出し関係を示す第2の図である。
【図31】 図6の階層オートマトンと図68の文書をマッチング部に入力した結果得られる文書要素セットを示す図である。
【図32】 図6の階層オートマトンと図4の文書をマッチング部に入力した結果得られる文書要素セットを示す図である。
【図33】 図68の構造化文書を処理対象としたときにCRTディスプレイに表示される画面を示す図である。
【図34】 図4の構造化文書を処理対象としたときにCRTディスプレイに表示される画面を示す図である。
【図35】 第1の実施の形態に関する応用例のオートマトン生成処理手順を示すフローチャートである。
【図36】 属性変換文法評価処理の手順を示すフローチャートである。
【図37】 属性変換文法評価処理の変形例を示す図である。
【図38】 "+p"を用いて検索条件の例を示す図である。
【図39】 第2の実施の形態におけるオートマトン生成処理の手順を示すフローチャートである。
【図40】 第2の実施の形態の文書処理装置により生成された階層オートマトンを示す図である。
【図41】 第2の実施の形態におけるオートマトンマッチング処理の手順を示すフローチャートの前半である。
【図42】 第2の実施の形態におけるオートマトンマッチング処理の手順を示すフローチャートの後半である。
【図43】 第2の実施の形態におけるオートマッチング処理の呼び出し関係を示す第1の図である。
【図44】 第2の実施の形態におけるオートマッチング処理の呼び出し関係を示す第2の図である。
【図45】 図69の構造化文書と図38の検索条件を第2の実施の形態の文書処理装置に入力した結果得られるマッチング部の出力を示す図である。
【図46】 第2の実施の形態の応用例に係るオートマトン生成処理のフローチャートである。
【図47】 構造化文書の第4の例を示す図である。
【図48】 "+r"と"+p"とを用いた検索条件を示す図である。
【図49】 第3の実施の形態におけるオートマトン生成処理手順を示すフローチャートである。
【図50】 第3の実施の形態の文書処理装置により生成された階層オートマトンを示す図である。
【図51】 第3の実施の形態におけるオートマトンマッチング処理の手順を示すフローチャートの前半である。
【図52】 第3の実施の形態におけるオートマトンマッチング処理の手順を示すフローチャートの後半である。
【図53】 第3の実施の形態におけるオートマッチング処理の呼び出し関係を示す第1の図である。
【図54】 第3の実施の形態におけるオートマッチング処理の呼び出し関係を示す第2の図である。
【図55】 第4の実施の形態におけるマッチング部の出力例を示す図である。
【図56】 第3の実施の形態のオートマトン生成処理に関する応用例を示すフローチャートである。
【図57】 構造化文書の第5の例を示す図である。
【図58】 第4の実施の形態に用いる検索条件を示す図である。
【図59】 属性を指定した検索条件から生成される階層オートマトンを示す図である。
【図60】 第4の実施の形態のオートマトンマッチング処理手順を示す第1のフローチャートである。
【図61】 第4の実施の形態のオートマトンマッチング処理手順を示す第2のフローチャートである。
【図62】 第4の実施の形態のオートマトンマッチング処理手順を示す第3のフローチャートである。
【図63】 第4の実施の形態における文書要素マッチング処理の手順を示すフローチャートである。
【図64】 第4の実施の形態による呼び出し関係を示す図である。
【図65】 第5の実施の形態に用いる検索条件を示す図である。
【図66】 第5の実施の形態による呼び出し関係を示す図である。
【図67】 第5の実施の形態によって表示される画面を示す図である。
【図68】 構造化文書の第1の例を示す図である。
【図69】 構造化文書の第2の例を示す図である。
【符号の説明】
1 情報格納手段
2 マッチング手段
3 検索条件
4 有向順序木
Claims (9)
- 有向順序木で表現された情報に対する処理を行うデータ処理装置において、
複数のノードと該ノード間の接続関係とを有向順序木で表現した処理対象情報を格納する情報格納手段と、
有向順序木を構成するノードの内容に関する条件を示す述語と、該述語の条件を満たすノード間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位のノードの置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象情報の有向順序木に対し、該パターン指定で示される接続関係における上位ノードの直下の処理対象のノードを、該処理対象のノードの直下のノード列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出するマッチング手段と、
を有することを特徴とするデータ処理装置。 - 前記マッチング手段は、前記検索条件のいずれかのパターン指定において接続関係における下位のノードの読み飛ばしを許容することが示されている場合は、前記処理対象情報の有向順序木に対し、該パターン指定で示される接続関係の上位ノードの直下の処理対象のノードを頂点とする部分木の一部を読み飛ばした結果得られる均質化有向順序木を処理対象とすることを特徴とする請求項1記載のデータ処理装置。
- 前記マッチング手段は、ノードの属性の指定を含む前記検索条件が入力された場合には、前記処理対象のノードに定義されている属性を、該処理対象のノードから置換されたノード列の属性とみなして、前記均質化有向順序木内の前記検索条件に適合する有向順序木の出力を行うことを特徴とする請求項1記載のデータ処理装置。
- 前記マッチング手段は、ノード属性の変換規則を含む前記検索条件が入力された場合には、前記検索条件に適合する有向順序木の各ノードに定義されている属性を対応する変換規則に従って変換した結果得られる有向順序木を出力することを特徴とする請求項1記載のデータ処理装置。
- 有向順序木で表現された構造化文書に対する処理を行う文書処理装置において、
複数の文書要素と該文書要素間の接続関係とを有向順序木で表現した処理対象構造化文書を格納する情報格納手段と、
有向順序木を構成する文書要素の内容に関する条件を示す述語と、該述語の条件を満たす文書要素間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位の文書要素の置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象構造化文書の有向順序木に対し、該パターン指定で示される接続関係における上位文書要素の直下の処理対象の文書要素を、該処理対象の文書要素の直下の文書要素列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出するマッチング手段と、
前記マッチング手段が抽出した有向順序木を論理構造とする構造化文書に対して既定の処理を実行する文書処理手段と、
を有することを特徴とする文書処理装置。 - 有向順序木で表現された情報に対する処理を行うデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
複数のノードと該ノード間の接続関係とを有向順序木で表現した処理対象情報を格納する情報格納手段、
有向順序木を構成するノードの内容に関する条件を示す述語と、該述語の条件を満たすノード間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位のノードの置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象情報 の有向順序木に対し、該パターン指定で示される接続関係における上位ノードの直下の処理対象のノードを、該処理対象のノードの直下のノード列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出するマッチング手段、
としてコンピュータを機能させることを特徴とするデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - 有向順序木で表現された構造化文書に対する処理を行う文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
複数の文書要素と該文書要素間の接続関係とを有向順序木で表現した処理対象構造化文書を格納する情報格納手段、
有向順序木を構成する文書要素の内容に関する条件を示す述語と、該述語の条件を満たす文書要素間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位の文書要素の置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象構造化文書の有向順序木に対し、該パターン指定で示される接続関係における上位文書要素の直下の処理対象の文書要素を、該処理対象の文書要素の直下の文書要素列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出するマッチング手段、
前記マッチング手段が抽出した有向順序木を論理構造とする構造化文書に対して既定の処理を実行する文書処理手段、
としてコンピュータを機能させることを特徴とする文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体。 - 有向順序木で表現された情報に対する処理を行うためのデータ処理方法において、
情報格納手段が、複数のノードと該ノード間の接続関係とを有向順序木で表現した処理対象情報を格納し、
マッチング手段が、有向順序木を構成するノードの内容に関する条件を示す述語と、該述語の条件を満たすノード間の接続関係に関する条件を記述したパターン指定とを含む検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位のノードの置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象情報の有向順序木に対し、該パターン指定で示される接続関係における上位ノードの直下の処理対象のノードを、該処理対象のノードの直下のノード列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出する、
ことを特徴とするデータ処理方法。 - 有向順序木で表現された情報に対する処理を行うための文書処理方法において、
情報格納手段が、複数の文書要素と該文書要素間の接続関係とを有向順序木で表現した処理対象構造化文書を格納し、
マッチング手段が、有向順序木を構成する文書要素の内容に関する条件を示す述語と、該述語の条件を満たす文書要素間の接続関係に関する条件を記述した検索条件が入力され、該検索条件のいずれかのパターン指定において接続関係における下位の文書要素の置き換えを許容することが示されている場合は、前記情報格納手段に格納された前記処理対象構造化文書の有向順序木に対し、該パターン指定で示される接続関係における上位文書要素の直下の処理対象の文書要素を、該処理対象の文書要素の直下の文書要素列に置換する操作を行った結果得られる均質化有向順序木を処理対象として、前記均質化有向順序木内の前記検索条件に適合する有向順序木を抽出し、
文書処理手段が、前記マッチング手段が抽出した有向順序木を論理構造とする構造化文書に対して既定の処理を実行する、
ことを特徴とする文書処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25342798A JP3965798B2 (ja) | 1998-09-08 | 1998-09-08 | データ処理装置、文書処理装置、データ処理プログラムを記録したコンピュータ読み取り可能な記録媒体、文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体、データ処理方法、および文書処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25342798A JP3965798B2 (ja) | 1998-09-08 | 1998-09-08 | データ処理装置、文書処理装置、データ処理プログラムを記録したコンピュータ読み取り可能な記録媒体、文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体、データ処理方法、および文書処理方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2000090091A JP2000090091A (ja) | 2000-03-31 |
JP2000090091A5 JP2000090091A5 (ja) | 2005-01-13 |
JP3965798B2 true JP3965798B2 (ja) | 2007-08-29 |
Family
ID=17251254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25342798A Expired - Fee Related JP3965798B2 (ja) | 1998-09-08 | 1998-09-08 | データ処理装置、文書処理装置、データ処理プログラムを記録したコンピュータ読み取り可能な記録媒体、文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体、データ処理方法、および文書処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3965798B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4592171B2 (ja) * | 2000-10-20 | 2010-12-01 | シャープ株式会社 | 検索情報生成装置 |
JP3842577B2 (ja) | 2001-03-30 | 2006-11-08 | 株式会社東芝 | 構造化文書検索方法および構造化文書検索装置およびプログラム |
JP4365162B2 (ja) | 2003-08-20 | 2009-11-18 | 富士通株式会社 | 構造化文書のデータを検索する装置および方法 |
JP4726046B2 (ja) * | 2005-04-22 | 2011-07-20 | 三菱電機株式会社 | 文字列検索装置及びコンピュータプログラム及び文字列検索方法 |
WO2008117454A1 (ja) | 2007-03-27 | 2008-10-02 | Fujitsu Limited | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
JP5431261B2 (ja) * | 2010-07-23 | 2014-03-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報管理システム、方法及びプログラム |
-
1998
- 1998-09-08 JP JP25342798A patent/JP3965798B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000090091A (ja) | 2000-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220342932A1 (en) | Tool to build and store a data model and queries for a graph database | |
US6182062B1 (en) | Knowledge based information retrieval system | |
JP3692764B2 (ja) | 構造化文書登録方法、検索方法、およびそれに用いられる可搬型媒体 | |
US7293018B2 (en) | Apparatus, method, and program for retrieving structured documents | |
US9542622B2 (en) | Framework for data extraction by examples | |
JP3887867B2 (ja) | 構造化文書の登録方法 | |
JP4716709B2 (ja) | 構造化文書処理装置、構造化文書処理方法、及びプログラム | |
US7707139B2 (en) | Method and apparatus for searching and displaying structured document | |
CN1815477B (zh) | 用于提供基于标记语言的限定词的方法和系统 | |
US8171052B2 (en) | Information search system, method and program | |
EP1072985B1 (en) | Automatic wrapper grammar generation | |
JP4860416B2 (ja) | 文書検索装置、文書検索方法および文書検索プログラム | |
JPH1078959A (ja) | エッジデータ構造を統一する方法 | |
CN116955674B (zh) | 一种通过LLM生成图数据库语句的方法及web装置 | |
CN107870915B (zh) | 对搜索结果的指示 | |
CN111198852A (zh) | 微服务架构下知识图谱驱动的元数据关系推理方法 | |
JP2008090404A (ja) | 文書検索装置、文書検索方法および文書検索プログラム | |
JP3965798B2 (ja) | データ処理装置、文書処理装置、データ処理プログラムを記録したコンピュータ読み取り可能な記録媒体、文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体、データ処理方法、および文書処理方法 | |
Myllymaki et al. | Robust web data extraction with xml path expressions | |
Liu et al. | An XML-enabled data extraction toolkit for web sources | |
JP3914081B2 (ja) | アクセス権限設定方法および構造化文書管理システム | |
Hartmann et al. | On the notion of an XML key | |
CN115328353B (zh) | 一种生成iconfont资源的方法、装置以及介质 | |
Carme et al. | The lixto project: Exploring new frontiers of web data extraction | |
JP2002297662A (ja) | 構造化文書編集方法および構造化文書編集装置および端末装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040218 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070220 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070418 |
|
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: 20070508 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070521 |
|
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: 20110608 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120608 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130608 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130608 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140608 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |