(57)【特許請求の範囲】
【請求項１】
木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とする構造化文書処理装置において、
文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段と、
ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段と、
ある文書型の制約に従う文書について、文書中に出現する要素に対する処理方法を定義した処理規則を保持する処理規則保持手段と、
処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、指定された処理規則を前記処理規則保持手段から検索する処理規則検索手段と、
前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索する適用可能文書型検索手段と、
前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索する変換規則検索手段と、
前記変換規則検索手段で検索された変換規則に基づいて、前記適用可能文書型の要素と前記処理対象文書型の要素との間の対応関係を特定し、前記処理規則検索手段で検索された処理規則において処理対象として指定されている要素を、対応関係にある要素に置き換えることにより、前記処理対象文書型に適用可能な処理規則を生成する処理規則生成手段と、
を有することを特徴とする構造化文書処理装置。
【請求項２】
木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とする構造化文書処理装置において、
文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段と、
変換元の要素が満たすべき他の要素との関係を指定する文脈条件が指定されており、ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段と、
ある文書型の制約に従う文書について、文書中に出現する要素に対する処理方法を定義した処理規則を保持する処理規則保持手段と、
処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、指定された処理規則を前記処理規則保持手段から検索する処理規則検索手段と、
前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索する適用可能文書型検索手段と、
前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索する変換規則検索手段と、
前記適用可能文書型に基づいて、文書型のルート要素から前記処理規則検索手段で検索された処理規則において処理対象として指定されている要素に至るまでに存在する全ての要素の並びを示すパス情報を取得し、取得した前記パス情報に含まれる要素を前記処理対象文書型中の対応関係にある要素に置き換えることで、前記処理対象文書型中の各要素の出現位置の条件を示す文脈条件を特定し、前記処理対象文書型中の各要素に対して、前記変換規則検索手段で検索された変換規則における文脈条件に応じた処置方法を指定した処理規則を生成することで、前記処理対象文書型に適用可能な処理規則を生成する処理規則生成手段と、
を有することを特徴とする構造化文書処理装置。
【請求項３】
木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とする構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段、
ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段、
ある文書型の制約に従う文書について、文書中に出現する要素に対する処理方法を定義した処理規則を保持する処理規則保持手段、
処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、指定された処理規則を前記処理規則保持手段から検索する処理規則検索手段、
前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索する適用可能文書型検索手段、
前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索する変換規則検索手段、
前記変換規則検索手段で検索された変換規則に基づいて、前記適用可能文書型の要素と前記処理対象文書型の要素との間の対応関係を特定し、前記処理規則検索手段で検索された処理規則において処理対象として指定されている要素を、対応関係にある要素に置き換えることにより、前記処理対象文書型に適用可能な処理規則を生成する処理規則生成手段、
として機能させることを特徴とする構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とする構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段、
変換元の要素が満たすべき他の要素との関係を指定する文脈条件が指定されており、ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段、
ある文書型の制約に従う文書について、文書中に出現する要素に対する処理方法を定義した処理規則を保持する処理規則保持手段、
処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、指定された処理規則を前記処理規則保持手段から検索する処理規則検索手段、
前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索する適用可能文書型検索手段、
前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索する変換規則検索手段、
前記適用可能文書型に基づいて、文書型のルート要素から前記処理規則検索手段で検索された処理規則において処理対象として指定されている要素に至るまでに存在する全ての要素の並びを示すパス情報を取得し、取得した前記パス情報に含まれる要素を前記処理対象文書型中の対応関係にある要素に置き換えることで、前記処理対象文書型中の各要素の出現位置の条件を示す文脈条件を特定し、前記処理対象文書型中の各要素に対して、前記変換規則検索手段で検索された変換規則における文脈条件に応じた処置方法を指定した処理規則を生成することで、前記処理対象文書型に適用可能な処理規則を生成する処理規則生成手段、
として機能させることを特徴とする構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項５】
木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とした処理を行う構造化文書処理方法において、
文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段と、ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段と、ある文書型の制約に従う文書について、文書中に出現する要素に対する処理方法を定義した処理規則を保持する処理規則保持手段とが予め設けられており、
処理規則検索手段が、処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、指定された処理規則を前記処理規則保持手段から検索し、
適用可能文書型検索手段が、前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索し、
変換規則検索手段が、前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索し、
処理規則生成手段が、前記変換規則検索手段で検索された変換規則に基づいて、前記適用可能文書型の要素と前記処理対象文書型の要素との間の対応関係を特定し、前記処理規則検索手段で検索された処理規則において処理対象として指定されている要素を、対応関係にある要素に置き換えることにより、前記処理対象文書型に適用可能な処理規則を生成する、
ことを特徴とする構造化文書処理方法。
【請求項６】
木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とした処理を行う構造化文書処理方法において、
文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段と、変換元の要素が満たすべき他の要素との関係を指定する文脈条件が指定されており、ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段と、ある文書型の制約に従う文書について、文書中に出現する要素に対する処理方法を定義した処理規則を保持する処理規則保持手段とが予め設けられており、
処理規則検索手段が、処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、指定された処理規則を前記処理規則保持手段から検索し、
適用可能文書型検索手段が、前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索し、
変換規則検索手段が、前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索し、
処理規則生成手段が、前記適用可能文書型に基づいて、文書型のルート要素から前記処理規則検索手段で検索された処理規則において処理対象として指定されている要素に至るまでに存在する全ての要素の並びを示すパス情報を取得し、取得した前記パス情報に含まれる要素を前記処理対象文書型中の対応関係にある要素に置き換えることで、前記処理対象文書型中の各要素の出現位置の条件を示す文脈条件を特定し、前記処理対象文書型中の各要素に対して、前記変換規則検索手段で検索された変換規則における文脈条件に応じた処置方法を指定した処理規則を生成することで、前記処理対象文書型に適用可能な処理規則を生成する、
ことを特徴とする構造化文書処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は構造化文書処理装置、構造化文書処理方法及び構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特に特定の文書型に沿って作成された処理規則を、別の文書型に従った文書にも適用できるように変換する構造化文書処理装置、構造化文書処理方法及びそのような処理をコンピュータに行わせるための構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
構造化文書とは、文書の章や段落などの論理的な構成要素に対応して、文書データを木構造に階層化した論理構造を持つ文書である。構造化文書としては、例えばＳＧＭＬ(Standard Generalized Markup Language; ISO8879) がある。このＳＧＭＬは、構造化文書に関する国際規格である。
【０００３】
図２０は、構造化文書の例を示す図である。図２０のように、構造化文書は、文書の論理的な構成要素に対応して、木構造で表現できる。四角で囲んだ枠がそれぞれ文書の構成要素を示しており、木構造の葉の部分には、その構成要素が含むテキストがある。
【０００４】
一般に、構造化文書は、その文書中に出現可能な構成要素の種類、各構成要素の出現順序、構成要素間の包含関係などを規定する規則にしたがって作成される。この規則を文書型と呼ぶ。
【０００５】
図２１は、図２０で示した構造化文書の文書型を示す図である。図中、四角の枠で囲ったものは、文書型の要素を表し、要素間を結ぶ枝には、下位の要素の文書における出現形態を規定する生成規則が記述されている。生成規則の意味は、次の通りである。
「ＳＥＱ」：下位の要素が左から右の順で出現する。
「ＲＥＰ」：下位の要素が1 回以上繰り返し出現する。
「ＣＨＯ」：下位の要素のいずれか１つが出現する。
「ＯＰＴ」：下位の要素が出現してもしなくてもよい。
【０００６】
例えば図２１において、最上位の構成要素は「報告書」である。最上位の構成要素は、文書全体を表す。「報告書」は、その下位に、「前付け」「本体」「後付け」という構成要素を持つ。「報告書」の下位の構成要素に対する生成規則「SEQ 」によって、下位の各構成要素は文書中に「前付け」「本体」「後付け」という順番で出現しなければならないことが規定される。「前付け」の下位の構成要素である「日付」には、生成規則「OPT 」が指定されており、「日付」は出現してもしなくてもよいことを示している。「本体」の下位の構成要素は「章」であり、生成規則「REP 」によって、文書中で「章」が「本体」の下位に１回以上繰り返し出現して良いと言うことを規定している。「章内容」の下位の構成要素は「段落」と「節」である。ただし、生成規則「CHO 」は、下位の構成要素のうちいずれか一つだけが文書中に現われて良いということを規定している。すなわち、文書中で、「章内容」の下位には、「段落」の１回以上の繰り返しか、または、「節」の１回以上の繰り返しか、どちらか一方しか出現できない。
【０００７】
このような文書型にしたがった構造化文書を作成することより、構造化文書の要素の１つ１つに対して特定の処理を実行するようなアプリケーションを作成することが出来るようになる。例えば、文書のフォーマット処理では、「章見出し」という要素に対して、「段落」という要素内のテキストよりも大きなフォントを使用して割り付けたり、「リスト」という要素に対して、「リスト」内の各項目の先頭に丸印や数字を付けて割り付けたり、といった処理を定義することができる。
【０００８】
フォーマット処理の規則を定義するための言語として、例えば国際規格であるＤＳＳＳＬ(Document Style and Semantics Specification Language; ISO/IEC 10179)がある。ＤＳＳＳＬでは、文書型の要素に対する処理は、要素構築規則(element-construction-rule) によって定義される。要素構築規則は、基本的には、要素名もしくは制限付きの要素名と、構築表現(construct-expression)の組からなる。制限付きの要素名とは、ある要素名に対して、その親の要素名、さらにその親の要素名、などを付け加えたものである。構築表現によって、その要素をどのようにフォーマットするかを指示する。
【０００９】
図２２は、ＤＳＳＳＬによるフォーマット処理の規則の一部を示す図である。図２２に示した規則の１行目は、この規則が、(SECT1 HEAD)という制限付き要素名に対する処理であることを示している。すなわち、「HEAD」という要素に対して、その親の要素が「SECT1 」であるときに、図２２の２行目以下に示す構築表現が実行される。２行目では、この要素「HEAD」に対して、「paragraph 」というスタイルを適用することが指定されている。３行目および４行目で、使用するフォントが指定され、５行目から８行目で、行間や、この要素の前後の間隔、インデントの開始位置が指定されている。９行目および１０行目は、この要素「HEAD」に対して、「score 」というスタイル（文字に下線を引く）を適用することが指定されている。１１行目では、この要素の下位の要素に対して、他の箇所で指定されている規則を適用して処理を続行することが指定されている。
【００１０】
このようにして、フォーマット規則を定義することができる。
また、ある文書型の文書を、別の文書型の文書へ変換したい場合がある。例えば、今まで利用していた文書型が、業務の進展に伴って、必要な構造を定義できていないとわかったとき、その文書型を改訂して新たな文書型を作成する。このとき、以前の文書型に沿って作成していた文書群を、改訂後の文書型の文書に変換する必要が生じる。
【００１１】
文書の交換性を高めるために、ＳＧＭＬ文書に関して、各業界で標準の文書型を定めている場合が多い。このような業界標準の文書型に沿って文書を作成することも可能である。ただし、業界標準の文書型は多くの場合、様々な企業や団体からの要求を満たす必要があるため、１つの文書型に多くの要素を詰め込んで定義する傾向がある。したがって、利用者ごとに必要な要素とそうでない要素が混在しており、文書作成には不便である。そこで、このような場合、各利用者が文書作成の環境に適した文書型を定義して、その文書型の文書を業界標準の文書型の文書に変換する。その際、定義された文書型と業界標準の文書型の間で文書を変換するための規則を定義する。
【００１２】
ある文書型の文書を別の文書型の文書に変換する処理の規則を定義するための言語として、例えばOmniMark(Omnimark Technologies Corporationの商標) がある。前述のＤＳＳＳＬでも、文書変換処理の規則を記述することができる。
【００１３】
図２３は、OmniMarkによる文書の変換規則の例を示す図である。図２３に示した変換規則の１行目で、変換の種類を指定している。３行目から４行目では、文書の各要素に対する処理を開始する前に行なうべき処理を指定している。４行目の指定によって、文書の先頭にＳＧＭＬの文書型宣言が挿入される。６行目以下で、文書の各要素に対応する変換処理が指定される。６行目から７行目では、「Ａ」という要素を「Ｂ」という要素に変換し、「Ａ」の内容を「Ｂ」の内容とするように指定されている。以下同様に、９行目から１０行目、１２行目から１３行目、１５行目から１６行目、１８行目から１９行目、２１行目から２２行目で、それぞれ、「doctitle」、「sect1 」、「sect2 」、「head」、「para」という要素に対応して、指定された要素とその内容を出力するように指定される。２４行目から２５行目では、上記の各要素に対応するどの規則も当てはまらないときに、何も出力しないことが指定されている。
【００１４】
このように、文書型に基づいて、文書中に出現する要素ごとにフォーマットや変換などの処理方法を定義したものを処理規則と呼ぶ。文書型に基づいて処理規則を定義することにより、その文書型に従う全ての文書に対して、同一の処理を一括して実行することが可能になる。
【００１５】
ところが、処理規則は文書型に沿って定義されるため、ある文書型に沿って定義された処理規則を異なる文書型に従う文書群に対して適用することはできない。その結果、複数の文書型の文書に対して処理を行ないたい時でも、各個別の文書型ごとに処理規則を定義しなければならないという問題がある。
【００１６】
例えば、複数の異なる文書型の文書を同一のフォーマットで表示あるいは印刷できるようにするためには、異なる文書型ごとに、フォーマット処理の結果が同じになるように処理規則を定義しなければならない。また、複数の異なる文書型の文書を、一つの文書型の文書に変換するためには、異なる文書型ごとに、変換先の文書型の文書への変換規則を定義しなければならない。
【００１７】
処理規則を個別の文書型ごとに定義するためには、個々の文書型に対する知識が要求される。特に、多数の文書型の文書を扱う環境では、全ての文書型に関する十分な知識を習得するまでには、非常に時間がかかる。その上で、各文書型ごとに適切な処理規則を定義しなければなず、非常に手間のかかる作業である。
【００１８】
この問題を解決する方法の１つとして、特開平８−３１４９３３号公報「構造化文書の処理装置」に示されている方法がある。特開平８−３１４９３３号公報では、多くの文書型に共通する構造を使って定義した共通文書型と呼ばれる文書型を用意し、個別の文書型の各要素と共通文書型の各要素の対応表を用意する。そして、文書作成時には、個別の文書型に共通文書型の要素を組み込んだ拡張個別文書型と呼ばれる文書型を生成し、この拡張個別文書型に沿って文書を作成する。また、共通文書型に拡張個別文書型を組み込んだ拡張共通文書型を生成し、前記の共通文書型と個別の文書型の要素の対応表に基づいて、拡張個別文書型に沿った文書を、拡張共通文書型に沿った文書に変換する。
【００１９】
これにより、拡張共通文書型に対して１つだけ処理規則を設定すれば、全ての文書を拡張共通文書型に従うように変換することによって、その処理規則を全ての文書に適用することができる。このため、個別の文書型ごとに処理規則を設定する必要がなくなり、処理規則の作成効率が向上する。
【００２０】
【発明が解決しようとする課題】
しかし、特開平８−３１４９３３号公報に示された方法では、処理規則を適用するために、個別の文書型の文書を拡張共通文書型の文書に変換する必要がある。ある文書型の文書を別の文書型の文書に変換する処理には一定の時間がかかるので、大量の文書を一括して処理するときには、その時間が問題となる。
【００２１】
本発明はこのような点に鑑みてなされたものであり、複数の異なる文書型の文書の大量一括処理を効率良く行うことができる構造化文書処理装置及び構造化文書処理方法を提供することを目的とする。
【００２２】
また、本発明の他の目的は、複数の異なる文書型の文書の大量一括処理を、効率的にコンピュータに行わせることができる構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することである。
【００２３】
【課題を解決するための手段】
第１の発明では上記課題を解決するために、木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とする構造化文書処理装置において、文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段と、ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段と、ある文書型の制約に従う文書について、文書中に出現する要素に対する処理方法を定義した処理規則を保持する処理規則保持手段と、処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、指定された処理規則を前記処理規則保持手段から検索する処理規則検索手段と、前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索する適用可能文書型検索手段と、前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索する変換規則検索手段と、前記処理規則検索手段で検索された処理規則、前記変換規則検索手段で検索された変換規則、及び前記適用可能文書型から、前記処理対象文書型に適用可能な処理規則を生成する処理規則生成手段と、を有することを特徴とする構造化文書処理装置が提供される。
【００２４】
このような構造化文書処理装置によれば、処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、処理規則検索手段により、指定された処理規則が処理規則保持手段から検索される。すると、適用可能文書型検索手段により、処理規則検索手段で検索された処理規則が適用できる適用可能文書型が、文書型保持手段から検索される。次に、変換規則検索手段により、処理対象文書型と適用可能文書型との間に定義される変換規則が、変換規則保持手段から検索される。そして、処理規則生成手段により、処理規則検索手段で検索された処理規則、変換規則検索手段で検索された変換規則、及び適用可能文書型から、処理対象文書型に適用可能な処理規則が生成される。
【００２５】
また、第２の発明では、木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とする構造化文書処理装置において、文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段と、ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段と、処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する変換規則の指定とを含む処理規則生成指令が入力されると、指定された変換規則を前記変換規則保持手段から検索する処理規則検索手段と、前記処理規則検索手段で検索された変換規則が適用できる適用可能文書型を、前記文書型保持手段から検索する適用可能文書型検索手段と、前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索する変換規則検索手段と、前記処理規則検索手段で検索された変換規則、前記変換規則検索手段で検索された変換規則、及び前記適用可能文書型から、前記処理対象文書型に適用可能な処理規則を生成する処理規則生成手段と、を有することを特徴とする構造化文書処理装置が提供される。
【００２６】
このような構造化文書処理装置によれば、処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する変換規則の指定とを含む処理規則生成指令が入力されると、処理規則検索手段により、指定された変換規則が変換規則保持手段から検索される。すると、適用可能文書型検索手段により、処理規則検索手段で検索された変換規則が適用できる適用可能文書型が、文書型保持手段から検索される。次に、変換規則検索手段により、処理対象文書型と適用可能文書型との間に定義される変換規則が、変換規則保持手段から検索される。そして、処理規則生成手段により、処理規則検索手段で検索された処理規則、変換規則検索手段で検索された変換規則、及び適用可能文書型から、処理対象文書型に適用可能な処理規則が生成される。
【００２７】
また、第３の発明では、木構造に階層化されてなる論理構造を持つ構造化文書を処理対象とする構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段、ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段、ある文書型の制約に従う文書について、文書中に出現する要素に対する処理方法を定義した処理規則を保持する処理規則保持手段、処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する処理規則の指定とを含む処理規則生成指令が入力されると、指定された処理規則を前記処理規則保持手段から検索する処理規則検索手段、前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索する適用可能文書型検索手段、前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索する変換規則検索手段、前記処理規則検索手段で検索された処理規則、前記変換規則検索手段で検索された変換規則、及び前記適用可能文書型から、前記処理対象文書型に適用可能な処理規則を生成する処理規則生成手段、としてコンピュータを機能させることを特徴とする構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００２８】
この記録媒体に記録された構造化文書処理プログラムをコンピュータに実行させれば、上記第１の発明に係る構造化文書処理装置に必要な機能がコンピュータによって構築される。
【００２９】
また、第４の発明では、構造に階層化されてなる論理構造を持つ構造化文書を処理対象とする構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体において、文書の取り得る論理構造を規定した構文規則である文書型を保持する文書型保持手段、ある文書型の制約に従う文書を、別の文書型の制約に従う文書に変換するための変換規則を保持する変換規則保持手段、処理対象となる文書の構造を規定した処理対象文書型の指定と、処理対象となる文書に適用する変換規則の指定とを含む処理規則生成指令が入力されると、指定された変換規則を前記変換規則保持手段から検索する処理規則検索手段、前記処理規則検索手段で検索された処理規則が適用できる適用可能文書型を、前記文書型保持手段から検索する適用可能文書型検索手段、前記処理対象文書型と前記適用可能文書型との間に定義される変換規則を、前記変換規則保持手段から検索する変換規則検索手段、前記処理規則検索手段で検索された変換規則、前記変換規則検索手段で検索された変換規則、及び前記適用可能文書型から、前記処理対象文書型に適用可能な処理規則を生成する処理規則生成手段、としてコンピュータを機能させることを特徴とする構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００３０】
この記録媒体に記録された構造化文書処理プログラムをコンピュータに実行させれば、上記第２の発明に係る構造化文書処理装置に必要な機能がコンピュータによって構築される。
【００３１】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の第１の実施の形態の構成を示す図である。本発明の構造化文書処理装置は、文書型保持手段１、変換規則保持手段２、処理規則保持手段３、入力手段４、処理規則検索手段５、適用可能文書型検索手段６、変換規則検索手段７、及び処理規則生成手段８から構成されている。
【００３２】
文書型保持手段１は、文書型の名前と文書型とを組にして、それらの組を保持、管理する。
変換規則保持手段２は、変換元となる文書型の名前、変換先となる文書型の名前、及び変換規則を組にして、それらの組を保持、管理する。
【００３３】
処理規則保持手段３は、処理規則の名前と、処理規則を適用できる文書型の名前と、処理規則とを組にして、それらの組を保持、管理する。
入力手段４は、処理規則生成指令として、処理規則を適用したい文書型の名前と、処理規則の名前とを入力するための機能を有する。ユーザは、この入力手段４を用いて、任意の処理規則と文書型とを指定した処理規則生成指令を入力することができる。
【００３４】
処理規則検索手段５は、入力手段４で入力された処理規則の名前をキーとして、処理規則保持手段３から処理規則を検索する。そして、検出された処理規則の名前、その処理規則を適用できる文書型の名前、及び処理規則の組を取り出す。
【００３５】
適用可能文書型検索手段６は、処理規則検索手段５で取り出された処理規則に関する情報を受け取り、検出された処理規則が適用可能な文書型の名前をキーとして、文書型保持手段１から該当する文書型を取り出す。
【００３６】
変換規則検索手段７は、入力手段４で入力された文書型の名前と、適用可能文書型検索手段６で取り出された文書型の名前とをキーとして、一方の文書型が変換元となり、他方の文書型が変換先となるような変換規則を、変換規則保持手段２から検索して取り出す。
【００３７】
処理規則生成手段８は、処理規則検索手段５で取り出された処理規則と、適用可能文書型検索手段６で取り出された文書型と、変換規則検索手段７で取り出された変換規則とに基づいて、入力手段４で入力された文書型の名前によって特定される文書型に適用可能な処理規則を生成する。また、処理規則生成手段８は、生成した処理規則を処理規則保持手段３に格納する。
【００３８】
なお、変換規則検索手段７で取り出された変換規則は、処理規則検索手段５で取り出された処理規則を処理対象の文書型の処理規則に変換できるように拡張する必要がある。以下に、変換規則保持手段２に保持される変換規則、その変換規則を拡張した場合の拡張変換規則、および処理規則保持手段３に保持される処理規則の構造について説明する。
【００３９】
図２は、変換規則保持手段に保持される変換規則の構造を示す図である。変換規則は、複数の文書型非依存規則または対応規則の繰り返しで構成される。文書型非依存規則は、文書型の情報を参照しない規則であり、例えば、変換規則内で使用される変数や手続きを定義したものがこれに相当する。対応規則は、文書型の情報を参照する規則であり、変換元の要素、文脈条件、および変換先要素の組で構成される。文脈条件は、変換元の要素が満たすべき他の要素との関係を指定する条件であり、修飾子を論理積および論理和を使って結合したものである。１つの修飾子は、変換元の要素と、他の１つの要素との関係を指定する。なお、「＝＝」は等しい関係にあることを示し、「！＝」は異なる関係にあることを示す。
【００４０】
対応規則は、変換元の要素が文脈条件を満たすときのみ、変換先の要素に変換することを指定するものである。例えば、次の対応規則
Ａ, 親＝＝Ｂ OR （親＝＝ CＡＮＤ祖父＝＝ D）, Ｘ
は、要素Ａの親が要素Ｂであるか、または、要素Ａの親が要素Ｃで、かつ、要素Ａの祖父（すなわち親の親）が要素Ｄであるときのみ、要素Ａが要素Ｘに変換されることを表す。なお、ここでは関係として「親」「祖父」という語を使っているが、ある文書型において、ある要素と別の要素との間に成立する関係を表現する方法はいくらでもあるので、関係の表現は上記のものに制限されないことをことわっておく。
【００４１】
処理規則を生成する際には、このような変換規則が拡張される。以後、拡張された変換規則を拡張変換規則と呼ぶ。拡張変換規則の構造は以下の通りである。
図３は、拡張変換規則の構造を示す図である。この拡張変換規則の図２に示した変換則に対する相違点は、拡張変換規則における対応規則は、元の変換規則の対応規則に、変換先の要素の文脈条件を付加した構造になっていることである。
【００４２】
図４は、処理規則保持手段に保持される処理規則の構造を示す図である。処理規則は、複数の文書型非依存規則または要素規則の繰り返しで構成される。文書型非依存規則は、文書型の情報を参照しない規則であり、例えば、フォーマット処理規則においては、印刷するページのサイズや標準のフォントの指定など、文書型ごとに変更する必要のない規則が文書型非依存規則に相当する。要素規則は、文書型の情報を参照する規則であり、要素、文脈条件、処理命令の組で構成される。文脈条件および修飾子は、変換規則の構造の説明で述べた通りである。
【００４３】
要素規則は、要素が文脈条件を満たすときのみ、処理命令を実行することを指定するものである。例えば、次の要素規則
Ａ, 親＝＝Ｂ OR （親＝＝ CＡＮＤ祖父＝＝ D）, Ｘ
は、要素Ａの親が要素Ｂであるか、または、要素Ａの親が要素Ｃで、かつ、要素Ａの祖父（すなわち親の親）が要素Ｄであるときのみ、要素Ａに対して処理命令Ｘが実行されることを表す。変換規則と同様に、関係の表現は上記のものに制限されない。
【００４４】
次に、以上のような構成の構造化文書処理装置における処理規則の生成手順を説明する。
図５は、第１の実施の形態における処理の流れを示すフローチャートである。
【００４５】
まず、ユーザが入力手段４を用い、処理規則を生成したい文書型の名前を指定する（ステップＳ１）。次に、ユーザが入力手段４を用い、元となる処理規則の名前を指定する（ステップＳ２）。すると、処理規則検索手段５は、ステップＳ２で指定された処理規則を、処理規則保持手段３から検索して取り出す（ステップＳ３）。適用可能文書型検索手段６は、ステップＳ３で取り出された処理規則から、その処理規則を適用できる文書型の名前を特定し、文書型保持手段１から適用可能文書型を検索して取り出す（ステップＳ４）。変換規則検索手段７は、ステップＳ４で取り出された適用可能文書型と、ステップＳ１において指定された文書型との間に規定される変換規則を、変換規則保持手段２から検索して取り出す（ステップＳ５）。処理規則生成手段８は、ステップＳ３で取り出された処理規則と、ステップＳ４で取り出された適用可能文書型と、ステップＳ５において取り出された変換規則とを参照して、ステップＳ１で指定された文書型に適用可能な処理規則を生成する（ステップＳ６）。続いて処理規則生成手段８は、ステップＳ６で生成された処理規則を、処理規則保持手段３に格納する（ステップＳ７）。
【００４６】
次に、図５のフローチャートのステップＳ６にあたる処理規則の生成の処理について、順を追って説明する。
図６は、処理規則の生成処理の流れを示すフローチャートである。なお、この処理はすべて処理規則生成手段８が行う。
【００４７】
まず図５のステップＳ５で取り出された変換規則を、処理規則の生成に必要な情報が得られるように拡張する（ステップＳ１１）。この処理の詳細については、後述する。
【００４８】
次に、処理規則から要素規則を１つ取り出す（ステップＳ１２）。ステップＳ１２で取り出された要素規則の、要素と文脈条件に適合する対応規則を、拡張変換規則から検索して取り出す（ステップＳ１３）。ステップＳ１３で検索された対応規則が複数あるかどうかチェックし（ステップＳ１４）、複数の対応規則に適合する場合は、要素規則を適合する対応規則の数だけ分割する（ステップＳ１５）。ステップＳ１３で取り出された対応規則の変換先を特定し（ステップＳ１６）、要素規則に含まれる要素と文脈条件を、変換先の要素と文脈条件に置き換える（ステップＳ１７）。処理規則中で全ての要素規則について上述の処理が終了したかどうかをチェックし、処理が終っていない要素規則があればステップＳ１２へ戻り、全ての要素規則について処理が終っていれば、処理規則の生成の処理を終了する（ステップＳ１８）。
【００４９】
次に、図６のフローチャートのステップＳ１１にあたる、変換規則の拡張の処理について、順を追って説明する。
図７は、変換規則の拡張処理の流れを示すフローチャートである。この処理もすべて処理規則生成手段８が行う。
【００５０】
まず図５のステップＳ４で取り出された適用可能文書型を読み込む（ステップＳ２１）。次に、ステップＳ５で取り出された変換規則から、対応規則を一つ取り出す（ステップＳ２２）。取り出された対応規則が、適用可能文書型のルート要素に対する規則であるかどうかをチェックする（ステップＳ２３）。ルート要素に対する規則である場合には、その対応規則については拡張を行なわず、ステップＳ２２へ戻る。ステップＳ２２で取り出された対応規則が、ルート要素以外の要素に対する規則である場合、対応規則の文脈条件の拡張を行なう（ステップＳ２４）。次に、ステップＳ２４で拡張した文脈条件と、適用可能文書型に基づいて、対応規則の変換先の拡張を行う（ステップＳ２５）。ステップＳ２４およびステップＳ２５の処理の詳細については、後述する。最後に、全ての対応規則について処理が終了したかどうかをチェックし、処理が終っていない対応規則があればステップＳ２２へ戻り、全ての対応規則について処理が終っていれば、変換規則の拡張の処理を終了する（ステップＳ２６）。
【００５１】
次に、図７のフローチャートのステップＳ２４にあたる、対応規則の文脈条件の拡張処理について、順を追って説明する。
図８は、対応規則の文脈条件の拡張処理の流れを示すフローチャートである。この処理もすべて処理規則生成手段８が行う。
【００５２】
まず図７のステップＳ２２で取り出された対応規則から、変換元の要素を取り出す（ステップＳ３１）。次に、ステップＳ２１で読み込まれた適用可能文書型を参照して、変換元の要素のパスを特定する（ステップＳ３２）。
【００５３】
ここで、パスとは、文書型のルート要素から、変換元の要素に至るまでに存在する全ての要素（ルート要素を含む）の並びである。例えば、変換元の要素をＸとし、その親要素がＢ、Ｂの親要素がルート要素Ａであれば、要素Ｘに対するパスは（ＡＢ）となる。また、変換元の要素をＸとし、その親要素がＢ、Ｂの親要素がＢまたはルート要素Ａであれば、要素Ｘに対応するパスは（ＡＢ＋）とする。
【００５４】
ここで「Ｂ＋」は、Ｂの１回以上の繰り返しを表す。すなわち、ルート要素Ａから変換元の要素Ｘに至るまでに存在する要素の並びとして、（ＡＢ）、（ＡＢＢ）、（ＡＢＢ…Ｂ）がありうるが、これらを（ＡＢ＋）と表記して、１つのパスとみなす。
【００５５】
次に、変換元の要素に対応するパスが１つであるか複数であるかをチェックし、パスが１つしかない場合にはステップＳ３５へ進み、パスが複数存在する場合にはステップＳ３４へ進む（ステップＳ３３）。ステップＳ３３で、変換元の要素に対応するパスが複数あると判断された場合には、対応するパスの数だけ対応規則を分割する（ステップＳ３４）。次に、変換元の要素に対応するパスを、等価な文脈条件に変換し（ステップＳ３５）、ステップＳ３５で生成された文脈条件を、対応規則に付加する（ステップＳ３６）。ここで、もし、対応規則に予め文脈条件が指定されていた場合は、ステップＳ３５で生成された文脈条件を、予め指定されていた文脈条件との論理積として付加する。ステップＳ３４で対応規則が分割された場合を考慮して、全ての対応規則について処理が終了したかどうかチェックし（ステップＳ３７）、分割された対応規則に対する処理が終了していなければ、ステップＳ３５に戻る。ステップＳ３３でパスが１つしかなかった場合、もしくは分割された対応規則に対する処理が全て終了した場合には、対応規則の文脈条件の拡張処理が終了する。
【００５６】
次に、図７のフローチャートのステップＳ２５にあたる、対応規則の変換先の拡張の処理について、順を追って説明する。
図９は、対応規則の変換先の拡張処理の流れを示すフローチャートである。この処理もすべて処理規則生成手段８が行う。
【００５７】
まず図８に示した対応規則の文脈条件の拡張処理によって、対応規則が分割されたかどうかをチェックする（ステップＳ４１）。もし対応規則が分割されていたら、対応規則を１つ取り出し（ステップＳ４２）、分割されていなければ、そのままステップＳ４３に進み、図８に示した対応規則の文脈条件の拡張の処理によって付加された文脈条件から、要素を１つ取り出す（ステップＳ４３）。次に、図５のステップＳ５で取り出された変換規則から、ステップＳ４３で取り出された要素に適合する対応規則を検索する（ステップＳ４４）。ステップＳ４４で検索された対応規則から、変換先の要素を特定する（ステップＳ４５）。
【００５８】
文脈条件に含まれる全ての要素について処理が終了したかどうかをチェックし（ステップＳ４６）、処理が終っていない要素があればステップＳ４３へ戻り、全ての要素について処理が終っていれば、文脈条件中の要素を、ステップＳ４５で特定された変換先の要素に置き換えた条件を新たに生成する（ステップＳ４７）。このとき、ステップＳ４５で特定された変換先が複数存在する場合は、変換先のそれぞれの要素に置き換えた文脈条件の論理和を生成する。ステップＳ４７で生成された文脈条件を、変換先に付加する（ステップＳ４８）。次に、全ての対応規則について処理が終了したかどうかをチェックする（ステップＳ４９）。対応規則が分割されていないか、もしくは、分割された対応規則の全てについて処理が終了していれば、対応規則の変換先の拡張の処理を終了する。対応規則が分割されていて、まだ処理の終了していない対応規則があれば、ステップＳ４２へ戻る。
【００５９】
ここで、図１の構成図、および図５〜図９のフローチャートに沿って、本発明の第１の実施の形態における、処理規則の生成の処理がどのように行われるか、具体的な例を挙げて説明する。以下に、文書型保持手段１に保持されている文書型の例を示す。
【００６０】
図１０は、処理対象文書型として用いられる文書型の例を示す図である。図１０に示す文書型は「Ｂ」という名前を持つ。以後これを「文書型Ｂ」と呼ぶ。
図１１は、適用可能文書型として用いられる文書型の例を示す図である。図１１に示す文書型は「Ａ」という名前を持つ。以後これを「文書型Ａ」と呼ぶ。
【００６１】
図１２は、処理規則保持手段に保持される処理規則の例を示す図である。図１２に示す処理規則は、「文書型Ａ」の文書の表題（図１１の要素「doctitle」）、章と節の見出し（図１１の要素「head」）、段落（図１１の要素「para」）などの要素をフォーマットして、オンライン表示または印刷するためのフォーマット規則として定義されている。ただし、図１２では、文書型非依存規則は除いて、要素規則の並びのみを示している。以後、図１２に示す処理規則を「フォーマット規則Ａ」と呼ぶ。
【００６２】
図１３は、変換規則保持手段に保持される変換規則の例を示す図である。図１３に示す変換規則は、「文書型Ａ」の文書を「文書型Ｂ」の文書に変換するための規則である。ただし、図１３では、文書型非依存規則を除いて、対応規則の並びのみを示している。以後、図１３に示す変換規則を「変換規則ＡＢ」と呼ぶ。
【００６３】
まずユーザが入力手段４により、「文書型Ｂ」を指定する（図５のステップＳ１）。次にユーザは、入力手段4 により、「フォーマット規則Ａ」を指定する（図５のステップＳ２）。処理規則検索手段５は、処理規則保持手段３から、「フォーマット規則Ａ」を検索して取り出す（図５のステップＳ３）。適用可能文書型検索手段６は、取り出された「フォーマット規則Ａ」を参照して、この処理規則が適用可能な文書型が、「文書型Ａ」であることを検知し、文書型保持手段１から「文書型Ａ」を取り出す（図５のステップＳ４）。次に、変換規則検索手段７は、適用可能文書型検索手段６で取り出された「文書型Ａ」と、入力手段４で指定された「文書型Ｂ」との間で規定される変換規則を、変換規則保持手段２から検索し、「変換規則ＡＢ」を取り出す（図５のステップＳ５）。処理規則生成手段８は、「文書型Ａ」、「フォーマット規則Ａ」、および「変換規則ＡＢ」を入力として、「文書型Ｂ」に適用可能な処理規則を生成する（図５のステップＳ６）。
【００６４】
処理規則の生成の処理においては、まず、「変換規則ＡＢ」に対して、変換規則の拡張の処理を行なう（図６のステップＳ１１）。
変換規則の拡張の処理においては、まず、適用可能文書型である「文書型Ａ」を読み込む（図７のステップＳ２１）。次に、「変換規則ＡＢ」から対応規則を１つ取り出す（図７のステップＳ２２）。対応規則を取り出す順序は任意であるが、本実施の形態では、図１３に示す対応規則の番号順に処理するものとする。そこで、「変換規則ＡＢ」から、まず対応規則番号が「１」の対応規則を取り出す。
【００６５】
取り出された対応規則がルート要素に対する規則であるかどうかをチェックすると（図７のステップＳ２３）、変換元要素「Ａ」は、「文書型Ａ」のルート要素である。そこで図７のステップＳ２２に戻って、対応規則番号が「２」の対応規則を取り出す。取り出された対応規則が、ルート要素に対する対応規則であるかどうかチェックすると（図７のステップＳ２３）、変換元要素「doctitle」はルート要素ではない。そこで、対応規則の文脈条件の拡張処理を行なう（図７のステップＳ２４）。
【００６６】
対応規則の文脈条件の拡張処理においては、まず、対応規則番号が「２」である対応規則から、変換元要素「doctitle」を取り出す（図８のステップＳ３１）。次に、適用可能文書型である「文書型Ａ」を参照して、要素「doctitle」のパスを特定する（図８のステップＳ３２）。要素「doctitle」のパスがひとつであるかどうかチェックすると（図８のステップＳ３３）、「文書型Ａ」から、要素「doctitle」は親としてルート要素「Ａ」を持つことがわかる。すなわち、パスが１つであるので、ステップＳ３５に進む。要素「doctitle」のパスである要素「Ａ」を文脈条件に変換すると、「親＝＝Ａ」である（図８のステップＳ３５）。そこで、番号が「２」の対応規則に、文脈条件「親＝＝Ａ」を追加する（図８のステップＳ３６）。対応規則は分割されていないので、処理を終了する（図８のステップＳ３７）。
【００６７】
図７のフローチャートに戻り、次に、対応規則の変換先の拡張を行なう（図７のステップＳ２５）。
対応規則の変換先の拡張処理においては、まず、対応規則の文脈条件の拡張処理において、対応規則が分割されたどうかをチェックする（図９のステップＳ４１）。対応規則は分割されていないので、対応規則番号が「２」の対応規則の文脈条件「親＝＝Ａ」から要素を１つ取り出す（図９のステップＳ４３）。この場合、要素は「Ａ」１つだけである。次に、取り出した要素「Ａ」が適合する対応規則を、「変換規則ＡＢ」から検索し、図１３の対応規則番号が「１」である対応規則を得る（図９のステップＳ４４）。対応規則番号が「１」である対応規則の変換先要素として要素「Ｂ」を特定し（図９のステップＳ４５）、文脈条件中の全ての要素について処理が終了したかどうかチェックすると（図９のステップＳ４６）、今、要素「Ａ」の処理が終って、文脈条件中に他に要素はない。
【００６８】
文脈条件「親＝＝Ａ」に含まれる要素「Ａ」を、変換先要素「Ｂ」で置換した条件である「親＝＝Ｂ」を生成し（図９のステップＳ４７）、生成した条件を変換先の文脈条件として付加する（図９のステップＳ４８）。対応規則は分割されていないので、全ての対応規則について処理が終了したと判断され（図９のステップＳ４９）、対応規則の変換先の拡張処理を終了する。
【００６９】
図７のフローチャートに戻り、「変換規則ＡＢ」の全ての対応規則について処理が終了したかどうかをチェックする（図７のステップＳ２６）。対応規則番号が「２」の対応規則までの処理しか終っていないので、ステップＳ２２に戻って、他の対応規則（対応規則番号「３」〜「６」）に対する処理を上記と同様に行なう。
【００７０】
ここで、処理の終っていない対応規則のうち、図１３に示す対応規則番号「５」の対応規則の拡張処理について詳細に述べる。
「変換規則ＡＢ」から対応規則番号「５」の対応規則を取り出し（図７のステップＳ２２）、その対応規則がルート要素に対する規則であるかどうかをチェックすると（図７のステップＳ２３）、変換元要素「head」は、「文書型Ａ」のルート要素ではない。そこで、対応規則の文脈条件の拡張処理を行なう（図７のステップＳ２４）。
【００７１】
対応規則の文脈条件の拡張処理においては、まず、対応規則番号「５」の対応規則から、変換元要素「head」を取り出す（図８のステップＳ３１）。次に、適用可能文書型である「文書型Ａ」を参照して、要素「head」のパスを特定する（図８のステップＳ３２）。要素「head」のパスがひとつであるかどうかチェックすると（図８のステップＳ３３）、「文書型Ａ」から、要素「head」はパスとして、(A sect1) と(A sect1 sect2) の2 つを持つことがわかる。パスが複数あるので、ステップＳ３４に進み、対応規則番号「５」の対応規則を、２つの対応規則に分割する。分割された対応規則の番号を「５−１」、「５−２」とする。要素「head」のパスの１つである(A sect1) を文脈条件に変換すると、「親＝＝ sect1ＡＮＤ祖父＝＝Ａ」である（図８のステップＳ３５）。そこで、対応規則番号「５−１」の対応規則に文脈条件「親＝＝ sect1ＡＮＤ祖父＝＝Ａ」を付加する（図８のステップＳ３６）。次に、全ての対応規則について処理が終了したかどうかチェックし（図８のステップＳ３７）、対応規則番号「５−２」の対応規則が残っているので、ステップＳ３５に戻って処理を続ける。要素「head」のもう１つのパスである(A sect1 sect2) を文脈条件に変換すると、「親＝＝ sect2ＡＮＤ祖父＝＝ sect1ＡＮＤ曽祖父＝＝Ａ」である（図８のステップＳ３５）。そこで、対応規則番号「５−２」の対応規則に文脈条件「親＝＝ sect2ＡＮＤ祖父＝＝ sect1ＡＮＤ曽祖父＝＝Ａ」を付加する（図８のステップＳ３６）。全ての対応規則について処理が終了したかどうかチェックし、処理を終了する。
【００７２】
図７のフローチャートに戻り、次に、対応規則の変換先の拡張を行なう（図７のステップＳ２５）。
対応規則の変換先の拡張の処理においては、まず、対応規則が分割されていることを検出し（図９のステップＳ４１）、対応規則番号が「５−１」の対応規則を取り出す（図９のステップＳ４２）。取り出された対応規則の文脈条件「親＝＝ sect1ＡＮＤ祖父＝＝Ａ」から要素「sect1 」を取り出す（図９のステップＳ４３）。次に、取り出した要素「sect1 」が適合する対応規則を、「変換規則ＡＢ」から検索し、図１３の対応規則番号が「３」の対応規則を得る（図９のステップＳ４４）。取得した対応規則の変換先要素として要素「sect」を特定する（図９のステップＳ４５）。文脈条件中の全ての要素について処理が終了したかどうかチェックすると（図９のステップＳ４６）、今、要素「Ａ」の処理が終っていないので、ステップＳ４３に戻る。対応規則番号「５−１」の対応規則の文脈条件「親＝＝ sect1ＡＮＤ祖父＝＝Ａ」から要素「Ａ」を取り出す（図９のステップＳ４３）。さらに、取りした要素「Ａ」が適合する対応規則を、「変換規則ＡＢ」から検索し、図１３の対応規則番号が「１」の対応規則を得る（図９のステップＳ４４）。取得した対応規則の変換先要素として要素「Ｂ」を特定し（図９のステップＳ４５）、文脈条件中の全ての要素について処理が終了したかどうかチェックすると（図９のステップＳ４６）、今、要素「Ａ」の処理が終って、文脈条件中に他に要素はない。
【００７３】
文脈条件「親＝＝ sect1ＡＮＤ祖父＝＝Ａ」に含まれる要素「sect1 」と「Ａ」を、変換先要素「sect」と「Ｂ」で置換した条件である「親＝＝ sect ＡＮＤ祖父＝＝Ｂ」を生成し（図９のステップＳ４７）、生成した条件を変換先の文脈条件として付加する（図９のステップＳ４８）。これで、全ての対応規則について処理が終了したかどうかチェックし、分割された対応規則の１つである対応規則番号が「５−２」の対応規則がまだ処理されていないので、ステップＳ４２へ戻る。
【００７４】
対応規則番号が「５−２」の対応規則について同様の処理を行なって、変換先に文脈条件「親＝＝ sect ＡＮＤ祖父＝＝ sect ＡＮＤ曽祖父＝＝Ｂ」を付加する。
【００７５】
全ての対応規則に対する処理を終了すると、変換規則の拡張の処理を終了する。
図１４は、拡張変換規則の例を示す図である。この拡張変換規則は、図１３に示した「変換規則ＡＢ」に対して、変換規則の拡張の処理を行なって生成されたものである。この拡張変換規則を、「拡張変換規則ＡＢ」と呼ぶこととする。なお、対応規則の文脈条件の拡張処理の際に対応規則が分割される場合があるため、図１４の拡張変換規則では対応規則の数が増加している。
【００７６】
次に図６のフローチャートに戻り、処理規則の生成の処理を続ける。ステップＳ１１で拡張変換規則が生成された後、「フォーマット規則Ａ」から要素規則を１つ取り出す（図６のステップＳ１２）。要素規則を取り出す順序は任意であるが、本実施の形態では、図１２に示す要素規則の番号順に処理するものとする。そこで、「フォーマット規則Ａ」から、まず要素規則番号が「１」の要素規則を取り出す。
【００７７】
ステップＳ１２で取り出された要素規則の要素と文脈条件に適合する対応規則を、拡張変換規則から検索して取り出す（図６のステップＳ１３）。図１４から、要素規則番号が「１」の要素規則の要素「Ａ」に対して、対応規則番号が「１」の対応規則が適合することが分かる。適合する対応規則が複数存在するかどうかをチェックすると（図６のステップＳ１４）、適合する対応規則は、対応規則番号が「１」の対応規則だけである。ステップＳ１３で取り出された対応規則の変換先を特定すると（図６のステップＳ１６）、要素「Ｂ」がある。そこで、要素規則番号が「１」の要素規則に含まれる要素「Ａ」を、変換先の要素「Ｂ」に置き換える（図６のステップＳ１７）。処理規則中で全ての要素規則について上述の処理が終了したかどうかをチェックすると（図６のステップＳ１８）、処理が終っていない要素規則があるので、ステップＳ１２へ戻り、他の要素規則（要素規則番号が「２」〜「７」）に対する処理を上記と同様に行なう。
【００７８】
ここで、処理の終っていない要素規則のうち、図１２に示す要素規則番号が「５」の要素規則の処理について詳細に述べる。
「フォーマット規則Ａ」から要素規則番号が「５」の要素規則を取り出す（図６のステップＳ１２）。ステップＳ１２で取り出された要素規則の要素「head」と文脈条件「親＝＝ sect1」に適合する対応規則を、拡張変換規則から検索して取り出す（図６のステップＳ１３）。図１４から、要素規則番号が「５」の要素規則の要素「head」と文脈条件「親＝＝ sect1」に対して、対応規則番号が「５」の対応規則が適合することが分かる。適合する対応規則が複数存在するかどうかをチェックすると（図６のステップＳ１４）、適合する対応規則は、対応規則番号が「５」の対応規則だけである。ステップＳ１３で取り出された対応規則の変換先を特定すると（図６のステップＳ１６）、要素「title 」と文脈条件「親＝＝ sect ＡＮＤ祖父＝＝Ｂ」がある。そこで、要素規則番号が「５」の要素規則に含まれる要素「head」を、変換先の要素「title 」に置き換え、その要素規則に含まれる文脈条件「親＝＝ sect1」を、変換先の文脈条件「親＝＝ sect ＡＮＤ祖父＝＝Ｂ」に置き換える（図６のステップＳ１７）。
全ての要素規則について処理が終了したら、処理規則の生成の処理を終了する。
【００７９】
図５のフローチャートに戻り、生成された処理規則を「フォーマット規則Ｂ」として処理規則保持手段３に格納する（図５のステップＳ７）。
図１５は、生成された「フォーマット規則Ｂ」の要素規則を示す図である。図１０に示すとおり、「文書型Ｂ」では、「sect」、「title 」などの要素が複数の文脈に出現するが、図１５に示す「フォーマット規則Ｂ」では、それぞれの文脈に応じて適切な処理命令を実行できるように要素規則が生成されている。なお、図１５には示していないが、「フォーマット規則Ｂ」の文書型非依存規則は、「フォーマット規則Ａ」の文書型非依存規則と同一である。文書型非依存規則は、処理を適用する文書型の違いに影響されないので、変更する必要がない。
【００８０】
以上説明したように、本発明に基づく構造化文書処理装置は、１つの文書型に対して設定された処理規則を、別の文書型に対して適用可能な処理規則に変換することができるため、処理規則を個別の文書型ごとに定義する必要がなく、処理規則の作成効率が向上する。
【００８１】
また、特開平８−３１４９３３号公報に示されている技術のように、各文書を共通文書型に適合した文書に変換する必要がないため、大量の文書を一括して処理するときの処理時間の削減効果が非常に高い。
【００８２】
次に、本発明に基づく構造化文書処理装置の第２の実施の形態について説明する。第２の実施の形態は、変換規則を処理規則の１つとして取り扱うことで、文書を変換するための処理規則を作成するものである。
【００８３】
図１６は、第２の実施の形態の構成を示す図である。本発明に基づく構造化文書処理装置の第２の実施の形態は、文書型保持手段１１、変換規則保持手段１２、処理規則保持手段１３、入力手段１４、処理規則検索手段１５、適用可能文書型検索手段１６、変換規則検索手段１７、および処理規則生成手段１８から構成されている。なお、第２の実施の形態における処理規則検索手段１５、処理規則生成手段１８以外の構成要素は、図１に示した第１の実施の形態の同名の構成要素と同じであるため、詳しい説明を省略する。処理規則検索手段１５と処理規則生成手段１８とは、第１の実施の形態の同名の構成要素が有している機能に加え、以下のような機能を更に有している。
【００８４】
処理規則検索手段１５は、入力手段１４で入力された処理規則が、処理規則保持手段１３内の処理規則を示しているのか、あるいは変換規則保持手段１２内の変換規則を示しているのかを判別する。その結果、入力されたのが変換規則である場合、変換規則保持手段１２から変換規則を検索して取り出す。
【００８５】
処理規則生成手段１８は、処理規則検索手段１５が変換規則を取り出した場合には、処理規則検索手段１５で取り出された処理規則と、適用可能文書型検索手段１６で取り出された文書型と、変換規則検索手段２で取り出された変換規則とに基づいて、入力手段１４で入力された文書型の名前によって特定される文書型に適用可能な処理規則を生成する。また、処理規則生成手段１８は、生成した処理規則が変換規則である場合、生成した変換規則を変換規則保持手段１２に格納する。
【００８６】
また、第２の実施の形態における処理規則の生成の手順は、第１の実施の形態における処理の手順と同じである。すなわち、図５〜図９に示した手順とほぼ同じである。但し、図５のステップＳ３における処理規則検索処理では、入力手段１４で入力された処理規則が、処理規則保持手段１３内の処理規則を示しているのか、あるいは変換規則保持手段１２内の変換規則を示しているのかの判断が行われる。入力されたのが処理規則であれば、以後第１の実施の形態と同様の処理を行うが、変換規則である場合には、変換規則保持手段１２から、変換規則を検索して取り出す。
【００８７】
ここで、図１６の構成図、および図５〜図９のフローチャートに沿って、第２の実施の形態における、処理規則の生成の処理がどのように行われるか、具体的な例を挙げて説明する。
【００８８】
ここで、図１０と図１１とに示した文書型「Ｂ」、「文書型Ａ」に加えて、以下のような文書型が文書型保持手段１１に保持されているものとする。
図１７は、文書型の例を示す図である。図１７に示す文書型は「Ｘ」という名前を持つ。以後これを「文書型Ｘ」と呼ぶ。
【００８９】
また、図１３に示した「変換規則ＡＢ」に加えて、以下のような変換規則が変換規則保持手段１２に保持されているものとする。なお、図１３に示す変換規則は、「文書型Ａ」の文書を、「文書型Ｂ」の文書に変換するための規則である。ただし、図１３では、文書型非依存規則を除いて、対応規則の並びのみを示している。
【００９０】
図１８は、変換規則の例を示す図である。図１８に示す変換規則は、「文書型Ａ」の文書を、「文書型Ｘ」の文書に変換するための規則である。ただし、図１８では、文書型非依存規則を除いて、対応規則の並びのみを示している。以後、図１８に示す変換規則を「変換規則ＡＸ」と呼ぶ。
【００９１】
ユーザが、まず入力手段１４により「文書型Ｂ」を指定する（図５のステップＳ１）。次に入力手段１４で「変換規則ＡＸ」を指定する（図５のステップＳ１）。処理規則検索手段１５は、変換規則保持手段１２から、「変換規則ＡＸ」を検索して取り出す（図５のステップＳ３）。適用可能文書型検索手段１６は、取り出された「変換規則ＡＸ」を参照して、この変換規則が適用可能な文書型が、「文書型Ａ」であることを検知し、文書型保持手段１１から「文書型Ａ」を取り出す（図５のステップＳ４）。次に、変換規則検索手段１７は、適用可能文書型検索手段１６で取り出された「文書型Ａ」と、入力手段１４で指定された「文書型Ｂ」との間で規定される変換規則を、変換規則保持手段１２から検索し、「変換規則ＡＢ」を取り出す（図５のステップＳ５）。処理規則生成手段１８は、「文書型Ａ」、「変換規則ＡＸ」、および「変換規則ＡＢ」を入力として、「文書型Ｂ」に適用可能な「変換規則ＢＸ」を生成する（図５のステップＳ６）。  処理規則の生成の処理においては、まず、「変換規則ＡＢ」に対して、変換規則の拡張の処理を行なう（図６のステップＳ１１）。
【００９２】
「変換規則ＡＢ」の拡張の処理は、第１の実施の形態で具体的に説明したので、ここでは省略する。図１３に示した変換規則ＡＢを拡張した変換規則は、図１４に示すとおりである。
【００９３】
以後の説明において、「変換規則ＡＸ」を処理規則として利用するという観点から、「変換規則ＡＸ」の対応規則を要素規則と呼ぶ。それに応じて、各要素規則に振られる番号（図１８中では、対応規則番号）も、要素規則番号と呼ぶこととする。
【００９４】
ステップＳ１１で拡張変換規則が生成された後、「変換規則ＡＸ」から要素規則を１つ取り出す（図６のステップＳ１２）。
要素規則を取り出す順序は任意であるが、本実施の形態では、図１８に示す要素規則の番号順に処理するものとする。そこで、「変換規則ＡＸ」から、まず要素規則番号が「１」の要素規則を取り出す。
【００９５】
ステップＳ１２で取り出された要素規則の要素と文脈条件に適合する対応規則を、拡張変換規則から検索して取り出す（図６のステップＳ１３）。取り出された要素規則の要素「Ａ」に対して、対応規則番号が「１」の対応規則が適合することが、図１４から分かる。適合する対応規則が複数存在するかどうかをチェックすると（図６のステップＳ１４）、適合する対応規則は、対応規則番号が「１」の対応規則だけである。ステップＳ１３で取り出された対応規則の変換先を特定すると（図６のステップＳ１６）、要素「Ｂ」がある。そこで、要素規則番号が「１」の要素規則に含まれる要素「Ａ」（図１８を参照）を、変換先の要素「Ｂ」に置き換える（図６のステップＳ１７）。処理規則中で全ての要素規則について上述の処理が終了したかどうかをチェックすると（図６のステップＳ１８）、処理が終っていない要素規則があるので、ステップＳ１２へ戻り、他の要素規則（要素規則番号「２」〜「７」）に対する処理を上記と同様に行なう。
【００９６】
ここで、処理の終っていない要素規則のうち、図１８に示す要素規則番号が「４」の要素規則の処理について詳細に述べる。
「変換規則ＡＸ」から要素規則番号が「４」の要素規則を取り出す（図６のステップＳ１２）。ステップＳ１２で取り出された要素規則の要素「head」と文脈条件「親＝＝ sect1」に適合する対応規則を、拡張変換規則（図１４を参照）から検索して取り出す（図６のステップＳ１３）。要素規則番号が「４」の要素規則の要素「head」と文脈条件「親＝＝ sect1」に対して、対応規則番号が「５」の対応規則が適合することが、図１４から分かる。適合する対応規則が複数存在するかどうかをチェックすると（図６のステップＳ１４）、適合する対応規則は対応規則番号が「５」の対応規則だけである。ステップＳ１３で取り出された対応規則の変換先を特定すると（図６のステップＳ１６）、要素「title 」と文脈条件「親＝＝ sect ＡＮＤ祖父＝＝Ｂ」がある。そこで、要素番号が「４」の要素規則に含まれる要素「head」を、変換先の要素「title 」に置き換え、その要素規則に含まれる文脈条件「親＝＝ sect1」を、変換先の文脈条件「親＝＝ sect ＡＮＤ祖父＝＝Ｂ」に置き換える（図６のステップＳ１７）。
【００９７】
全ての要素規則について処理が終了したら、処理規則の生成の処理を終了する。
図５のフローチャートに戻り、生成された処理規則を「変換規則ＢＸ」として変換規則保持手段１２に保存する（図５のステップＳ７）。
【００９８】
図１９は、生成された「変換規則ＢＸ」の対応規則を示す図である。図１０に示すとおり、「文書型Ｂ」では、「sect」、「title 」などの要素が複数の文脈に出現するが、それぞれの文脈に応じて適切な要素に変換できるように、対応規則が生成されている。なお、図１９には示していないが、「変換規則ＢＸ」の文書型非依存規則は、「変換規則ＡＸ」の文書型非依存規則と同一である。文書型非依存規則は、処理を適用する文書型の違いに影響されないので、変更する必要がない。
【００９９】
このようにして、処理規則として変換規則が指定された場合には、変換規則保持手段１２より必要な変換規則を検索するようにしたため、文書の変換を行うための処理規則を別に処理規則保持手段１３に格納しておく必要がなくなる。ここで、文書に対する処理として文書の変換しか行わないのであれば、処理規則保持手段１３は不要となる。
【０１００】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、構造化文書処理装置が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場を流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Only Memory) やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【０１０１】
【発明の効果】
以上説明したように第１の発明に係る構造化文書処理装置では、ある文書型に対して設定された処理規則を、別の文書型に対して適用可能な処理規則に変換することができるため、処理規則を個別の文書型ごとに定義する必要がなく、処理規則の作成効率が向上する。
【０１０２】
また、第２の発明に係る構造化文書処理装置では、ある文書型に対して設定された変換規則を、別の文書型に対して適用可能な変換規則に変換することができるため、変換規則を個別の文書型ごとに定義する必要がなく、文書構造の変換を目的とした処理規則の作成効率が向上する。
【０１０３】
また、第３の発明に係る構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体では、記録された構造化文書処理プログラムをコンピュータに実行させれば、ある文書型に対して設定された処理規則を、別の文書型に対して適用可能な処理規則に変換する処理をコンピュータに行わせることができるため、処理規則を個別の文書型ごとに定義する必要がなく、処理規則の効率的な作成をコンピュータで行うことができる。
【０１０４】
また、第４の発明に係る構造化文書処理プログラムを記録したコンピュータ読み取り可能な記録媒体では、記録された構造化文書処理プログラムをコンピュータに実行させれば、ある文書型に対して設定された変換規則を、別の文書型に対して適用可能な変換規則に変換する処理をコンピュータに行わせることができるため、変換規則を個別の文書型ごとに定義する必要がなく、文書構造の変換を目的とした処理規則の効率的な作成をコンピュータで行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態の構成を示す図である。
【図２】変換規則保持手段に保持される変換規則の構造を示す図である。
【図３】拡張変換規則の構造を示す図である。
【図４】処理規則保持手段に保持される処理規則の構造を示す図である。
【図５】第１の実施の形態における処理の流れを示すフローチャートである。
【図６】処理規則の生成処理の流れを示すフローチャートである。
【図７】変換規則の拡張処理の流れを示すフローチャートである。
【図８】対応規則の文脈条件の拡張処理の流れを示すフローチャートである。
【図９】対応規則の変換先の拡張処理の流れを示すフローチャートである。
【図１０】処理対象文書型として用いられる文書型の例を示す図である。
【図１１】適用可能文書型として用いられる文書型の例を示す図である。
【図１２】処理規則保持手段に保持される処理規則の例を示す図である。
【図１３】変換規則保持手段に保持される変換規則の例を示す図である。
【図１４】拡張変換規則の例を示す図である。
【図１５】生成された「フォーマット規則Ｂ」の要素規則を示す図である。
【図１６】第２の実施の形態の構成を示す図である。
【図１７】文書型の例を示す図である。
【図１８】変換規則の例を示す図である。
【図１９】生成された「変換規則ＢＸ」の対応規則を示す図である。
【図２０】構造化文書の例を示す図である。
【図２１】図２０で示した構造化文書の文書型を示す図である。
【図２２】ＤＳＳＳＬによるフォーマット処理の規則の一部を示す図である。
【図２３】  OmniMarkによる文書の変換規則の例を示す図である。
【符号の説明】
１  文書型保持手段
２  変換規則保持手段
３  処理規則保持手段
４  入力手段
５  処理規則検索手段
６  適用可能文書型検索手段
７  変換規則検索手段
８  処理規則生成手段
【図１】
0003804243.tif 000002
【図２】
0003804243.tif 000003
【図３】
0003804243.tif 000004
【図４】
0003804243.tif 000005
【図５】
0003804243.tif 000006
【図６】
0003804243.tif 000007
【図７】
0003804243.tif 000008
【図８】
0003804243.tif 000009
【図９】
0003804243.tif 000010
【図１０】
0003804243.tif 000011
【図１１】
0003804243.tif 000012
【図１２】
0003804243.tif 000013
【図１３】
0003804243.tif 000014
【図１４】
0003804243.tif 000015
【図１５】
0003804243.tif 000016
【図１６】
0003804243.tif 000017
【図１７】
0003804243.tif 000018
【図１８】
0003804243.tif 000019
【図１９】
0003804243.tif 000020
【図２０】
0003804243.tif 000021
【図２１】
0003804243.tif 000022
【図２２】
0003804243.tif 000023
【図２３】
0003804243.tif 000024