(57)【特許請求の範囲】
【請求項１】
文書の論理的な構成要素に対応して文書データを木構造に階層化した論理構造を持つ文書である構造化文書の、該構造化文書中に出現可能な構成要素の種類を示す要素型と要素型の各々について該要素型および該要素型の構成要素の下位の構成要素の前記構造化文書における出現形態を規定する構造生成子の組みである該要素型の内容モデルとを含む、文書型について、変換元の前記文書型である変換元文書型を保持する変換元文書型保持手段と、
変換先の前記文書型である変換先文書型を保持する変換先文書型保持手段と、
前記要素型と前記構造生成子とから生成し得る複数の構造パターンの２つ組である複数の構造パターン対応条件それぞれに対応付けて、構造パターン対応条件を別の構造パターン対応条件の論理式へ展開するための展開規則、もしくは構造パターン対応条件に対する真偽値のいずれか一方を保持する展開規則保持手段と、
前記変換元文書型保持手段に保持されている変換元文書型から、前記要素型および前記内容モデルの情報を取り出す変換元文書型アクセス手段と、
前記変換先文書型保持手段に保持されている変換先文書型から、前記要素型および前記内容モデルの情報を取り出す変換先文書型アクセス手段と、
前記変換元文書型アクセス手段が取り出した前記要素型もしくは内容モデルと、前記変換先文書型アクセス手段が取り出した前記要素型もしくは内容モデルとから生成される構造パターン対応条件を、前記展開規則保持手段内の対応する展開規則に従って展開すると共に、前記展開規則保持手段内の真偽値に基づいて各構造パターン対応条件に真偽値を設定し、真偽値が真である構造パターン対応条件により作成可能な変換規則を生成する展開規則処理手段と、
を有することを特徴とする文書変換規則生成装置。
【請求項２】
前記展開規則処理手段において生成された複数の変換規則の候補を保持する変換規則候補保持手段と、
前記変換規則候補保持手段において保持された変換規則の候補に対して順位付けを行う変換規則順位付け手段と、
をさらに有することを特徴とする請求項１記載の文書変換規則生成装置。
【請求項３】
前記変換規則順位付け手段によって順位付けられた変換規則を、順位にしたがって出力する出力手段をさらに有することを特徴とする請求項２記載の文書変換規則生成装置。
【請求項４】
前記変換規則順位付け手段は、変換先文書型に含まれる各要素型に対応する変換元文書型の要素型の数が少なくなるような変換規則ほど、高い順位付けとすることを特徴とする請求項２記載の文書変換規則生成装置。
【請求項５】
前記展開規則処理手段において展開しようとする前記構造パターン対応条件を順次記憶する、構造パターン対応条件記憶手段をさらに有し、
前記展開規則処理手段は、前記構造パターン対応条件を展開する際に、前記構造パターン対応条件記憶手段に同一の構造パターン対応条件が既に記憶されているかどうかをチェックし、既に記憶されている場合には、展開処置を行わないことを特徴とする請求項１記載の文書変換規則生成装置。
【請求項６】
文書の論理的な構成要素に対応して文書データを木構造に階層化した論理構造を持つ文書である構造化文書の、該構造化文書中に出現可能な構成要素の種類を示す要素型と要素型の各々について該要素型および該要素型の構成要素の下位の構成要素の前記構造化文書における出現形態を規定する構造生成子の組みである該要素型の内容モデルとを含む、文書型について、変換元の前記文書型である変換元文書型を保持する変換元文書型保持手段、
変換先の前記文書型である変換先文書型を保持する変換先文書型保持手段、
前記要素型と前記構造生成子とから生成し得る複数の構造パターンの２つ組である複数の構造パターン対応条件それぞれに対応付けて、構造パターン対応条件を別の構造パターン対応条件の論理式へ展開するための展開規則、もしくは構造パターン対応条件に対する真偽値のいずれか一方を保持する展開規則保持手段、
前記変換元文書型保持手段に保持されている変換元文書型から、前記要素型および前記内容モデルの情報を取り出す変換元文書型アクセス手段、
前記変換先文書型保持手段に保持されている変換先文書型から、前記要素型および前記内容モデルの情報を取り出す変換先文書型アクセス手段、
前記変換元文書型アクセス手段が取り出した前記要素型もしくは内容モデルと、前記変換先文書型アクセス手段が取り出した前記要素型もしくは内容モデルとから生成される構造パターン対応条件を、前記展開規則保持手段内の対応する展開規則に従って展開すると共に、前記展開規則保持手段内の真偽値に基づいて各構造パターン対応条件に真偽値を設定し、真偽値が真である構造パターン対応条件により作成可能な変換規則を生成する展開規則処理手段、
としてコンピュータを機能させることを特徴とする文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
変換元文書型保持手段が、文書の論理的な構成要素に対応して文書データを木構造に階層化した論理構造を持つ文書である構造化文書の、該構造化文書中に出現可能な構成要素の種類を示す要素型と要素型の各々について該要素型および該要素型の構成要素の下位の構成要素の前記構造化文書における出現形態を規定する構造生成子の組みである該要素型の内容モデルとを含む、文書型について、変換元の前記文書型である変換元文書型を保持し、
変換先文書型保持手段が、変換先の前記文書型である変換先文書型を保持し、
展開規則保持手段が、前記要素型と前記構造生成子とから生成し得る複数の構造パターンの２つ組である複数の構造パターン対応条件それぞれに対応付けて、構造パターン対応条件を別の構造パターン対応条件の論理式へ展開するための展開規則、もしくは構造パターン対応条件に対する真偽値のいずれか一方を保持し、
変換元文書型アクセス手段が、前記変換元文書型保持手段に保持されている変換元文書型から、前記要素型および前記内容モデルの情報を取り出し、
変換先文書型アクセス手段が、前記変換先文書型保持手段に保持されている変換先文書型から、前記要素型および前記内容モデルの情報を取り出し、
展開規則処理手段が、前記変換元文書型アクセス手段が取り出した前記要素型もしくは内容モデルと、前記変換先文書型アクセス手段が取り出した前記要素型もしくは内容モデルとから生成される構造パターン対応条件を、前記展開規則保持手段内の対応する展開規則に従って展開すると共に、前記展開規則保持手段内の真偽値に基づいて各構造パターン対応条件に真偽値を設定し、真偽値が真である構造パターン対応条件により作成可能な変換規則を生成する、
ことを特徴とする文書変換規則生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は文書変換規則生成装置、文書変換規則生成方法及び文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特にある文書型に沿って作成された構造化文書を、別の文書型に沿った文書に変換するための変換規則を生成する文書変換規則生成装置、文書変換規則生成方法及びそのような処理をコンピュータに行わせるための文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
構造化文書とは、文書の章や段落などの論理的な構成要素に対応して、文書データを木構造に階層化した論理構造を持つ文書である。構造化文書としては、例えばＳＧＭＬ(Standard Generalized Markup Language; IS08879) がある。このＳＧＭＬは、構造化文書に関する国際規格である。
【０００３】
図２９は、構造化文書の表現の一例を示す図である。図２９のように、構造化文書は、文書の論理的な構成要素に対応して、木構造で表現できる。四角で囲んだ枠がそれぞれ文書の構成要素を示しており、木構造の葉の部分には、その構成要素が含むテキストがある。
【０００４】
一般に、構造化文書は、その文書中に出現可能な構成要素の種類、各構成要素の出現順序、構成要素間の包含関係などを規定する規則に従って作成される。この規則を文書型と呼ぶ。
【０００５】
図３０は、図２９で示した構造化文書の文書型を示す図である。図中、四角の枠で囲ったものは、文書型に含まれる要素型を表し、要素間を結ぶ枝には、下位の要素の文書における出現形態を規定する構造生成子が記述されている。生成規則の意味は、次の通りである。
「ＳＥＱ」：下位の要素が左から右の順で出現する。
「ＲＥＰ」：下位の要素が１回以上繰り返し出現する。
「ＣＨＯ」：下位の要素のいずれか１つが出現する。
「ＯＰＴ」：下位の要素が出現してもしなくてもよい。
「ＯＰＴＲＥＰ」：下位の要素が０回以上繰り返し出現する。
【０００６】
例えば図３０において、最上位の要素型（ルート要素型）は「報告書」である。「報告書」は、その下位に、「前付け」「本体」「後付け」という要素型を持つ。「報告書」の下位の要素型に対する構造生成子「SEQ 」によって、「報告書」の下位の各要素は文書中にこの順番で出現しなければならないことが規定される。
【０００７】
「前付け」の下位の要素型である「日付」には、構造生成子「OPT 」が指定されており、「日付」は出現してもしなくてもよいことを示している。「本体」の下位の要素型は「章」であり、構造生成子「REP 」によって、文書中で「章」が「本体」の下位に１回以上繰り返し出現してよいと言うことを規定している。「章内容」の下位の要素型は「段落」と「節」である。ただし、構造生成子「CHO 」は、下位の構成要素のうちいずれか１つだけが文書中に現われてよいということを規定している。すなわち、文書中で、「章内容」の下位には、「段落」の１回以上の繰り返しか、または、「節」の１回以上の繰り返しか、どちらか一方しか出現できない。
【０００８】
図３０に示した文書型の定義をＳＧＭＬで表現すると次のようになる。
図３１は、文書型のＳＧＭＬによる表現形式を示す図である。図３０に示した構造生成子とＳＧＭＬにおける構造生成子の対応は、以下の通りである。
「!ELEMENT」：続く文字列が要素型の定義であることを示す。
「＃PCDATA」：要素の内容が文字列であることを示す。
「，」：要素が記述された順に出現する。(SEQ)
「｜」：要素のいずれか１つが出現する。(CHO)
「＊」：要素が０回以上繰り返し出現する。(OPTREP)
「＋」：要素が１回以上繰り返し出現する。(OPT)
「？」：要素が高々１回出現する。(OPT)
ここで、各要素型の構造を規定するための要素型と構造生成子の組を、その要素型の内容モデルと呼ぶ。すなわち、「報告書」という要素型の内容モデルは、ＳＧＭＬの表現を借りれば、図３１に示すように「（前付け，本体，後付け）」で表現され、「前付け」という要素型の内容モデルは、「（表題，著者，日付？，概要）」で表現される。
【０００９】
さて、構造化文書の処理においては、ある文書型に従う文書を、別の文書型に従う文書に変換する処理が非常に重要である。
例えば、今まで利用していた文書型が、業務の進展に伴って、必要な構造を定義できていないとわかったとき、その文書型を改訂して新たな文書型を作成する。このとき、以前の文書型に沿って作成していた文書群を、改訂後の文書型の文書に変換する必要が生じる。
【００１０】
また、文書の交換性を高めるために、ＳＧＭＬ文書に関して、各業界で標準の文書型を定めている場合が多く、そのような標準の文書型の文書が必要になる場合がある。ところが、業界標準の文書型は多くの場合、様々な企業や団体からの要求を満たす必要があるため、１つの文書型に多くの要素を詰め込んで定義する傾向がある。したがって、利用者ごとに必要な要素とそうでない要素が混在しており、個別の業務に関する文書の作成には不便である。また、業界標準の文書型をそのまま利用して文書を作成しようとしたとき、文書作成者の所属する組織に特有の情報を、業界標準の文書型では表現できない場合がある。これらの理由から、各利用者が文書作成の環境に適した文書型を独自に定義する場合がほとんどであり、そのような独自の文書型の文書を業界標準の文書型の文書に変換する必要が生じる。
【００１１】
そこで、上記のように構造化文書の変換を行う際には、個々の文書ごとに変換のためのプログラムを作成するのではなく、変換前の文書が従っている文書型と、変換後の文書が従うべき文書型との間で、要素型間の対応に基づく変換規則を作成することが広く行われている。文書型どうしの間で変換規則を作成し、この変換規則に基づいて変換処理を行うことによって、ある文書型に従う大量の文書群を、別の文書型に従う文書へと一括して変換することが可能になる。
【００１２】
前述のように、文書型の改訂に伴って文書変換を行う場合、および、業界標準の文書型と各利用者が定義した文書型の間で文書変換を行う場合は、変換の際に要素の出現順序が変更されることは望ましくない。また、変換元の文書に存在した文字内容が、変換後の文書から失われることがあってはいけない。
【００１３】
しかしながら、従来の文書変換規則の作成方法では、上述の要求を満たすには、要素の出現順序を考慮して注意深く変換規則を記述する必要があり作業が煩雑化するという問題があった。また、従来の文書変換規則の作成方法では、作成された変換規則に沿って文書変換が実行されたとき、変換元の文書の文字内容が変換後の文書に全て反映されることを保証できないという問題があった。
【００１４】
これに対し、特開平８−１７１５６５号公報に記載の「文書構造変換装置」では、変換元の文書構造の要素を変換先の文書構造の要素に置き換えるための変換規則が示された変換テーブルを予め用意しておく。そして、その変換テーブルの規則に沿って、入力された文書の各要素を変換することで、入力された文書の文字内容が変換後の文書に全て反映されることを保証している。さらに、変換処理の際には、要素の出現順に沿って変換対象となる要素を選択することで、変換元の要素の出現順を保ったまま文書構造を変換している。そのため、要素の出現順序について考慮せずに文書構造の変換規則を記述しても、要素の出現順序の変わらない文書構造の変換ができることになる。
【００１５】
【発明が解決しようとする課題】
しかし、特開平８−１７１５６５号公報に記載の文書構造変換装置では、変換規則を人手により作成する必要がある。文書型どうしの間で変換規則を作成するためには、変換元の文書型と変換先の文書型の両方について、文書型に含まれる要素型とその意味を把握し、２つの文書型の間で意味的に同じとみなせる要素型を探してその対応を記述しなければならない。この作業は、規則の記述者にとっては相変わらず大きな負担となっている。
【００１６】
本発明はこのような点に鑑みてなされたものであり、２つの文書型が与えられたときに、文書型どうしの間で規定しうる変換規則の自動生成が可能な文書型変換装置及び文書変換規則生成方法を提供することを目的とする。
【００１７】
また、本発明の他の目的は、２つの文書型が与えられたときに、文書型どうしの間で規定しうる変換規則の自動生成をコンピュータに行わせるための文書型変換プログラムを記録したコンピュータ読み取り可能な記録媒体を提供することである。
【００１８】
【課題を解決するための手段】
本発明では上記課題を解決するために、文書の論理的な構成要素に対応して文書データを木構造に階層化した論理構造を持つ文書である構造化文書の、該構造化文書中に出現可能な構成要素の種類を示す要素型と要素型の各々について該要素型および該要素型の構成要素の下位の構成要素の前記構造化文書における出現形態を規定する構造生成子の組みである該要素型の内容モデルとを含む、文書型について、変換元の前記文書型である変換元文書型を保持する変換元文書型保持手段と、変換先の前記文書型である変換先文書型を保持する変換先文書型保持手段と、前記要素型と前記構造生成子とから生成し得る複数の構造パターンの２つ組である複数の構造パターン対応条件それぞれに対応付けて、構造パターン対応条件を別の構造パターン対応条件の論理式へ展開するための展開規則、もしくは構造パターン対応条件に対する真偽値のいずれか一方を保持する展開規則保持手段と、前記変換元文書型保持手段に保持されている変換元文書型から、前記要素型および前記内容モデルの情報を取り出す変換元文書型アクセス手段と、前記変換先文書型保持手段に保持されている変換先文書型から、前記要素型および前記内容モデルの情報を取り出す変換先文書型アクセス手段と、前記変換元文書型アクセス手段が取り出した前記要素型もしくは内容モデルと、前記変換先文書型アクセス手段が取り出した前記要素型もしくは内容モデルとから生成される構造パターン対応条件を、前記展開規則保持手段内の対応する展開規則に従って展開すると共に、前記展開規則保持手段内の真偽値に基づいて各構造パターン対応条件に真偽値を設定し、真偽値が真である構造パターン対応条件により作成可能な変換規則を生成する展開規則処理手段と、を有することを特徴とする文書変換規則生成装置が提供される。
【００１９】
このような文書型変換規則生成装置によれば、変換元文書型と変換先文書型との要素型及び内容モデルが変換元文書型アクセス手段と変換先文書型アクセス手段により取り出され、構造パターン対応条件が得られる。すると、展開規則処理手段により、構造パターン対応条件が、展開規則保持手段に保持されている展開規則により展開されるとともに、真偽値が設定される。そして、真偽値が真である構造パターン対応条件により作成可能な変換規則が生成される。
【００２０】
また、上記課題を解決するために、文書の論理的な構成要素に対応して文書データを木構造に階層化した論理構造を持つ文書である構造化文書の、該構造化文書中に出現可能な構成要素の種類を示す要素型と要素型の各々について該要素型および該要素型の構成要素の下位の構成要素の前記構造化文書における出現形態を規定する構造生成子の組みである該要素型の内容モデルとを含む、文書型について、変換元の前記文書型である変換元文書型を保持する変換元文書型保持手段、変換先の前記文書型である変換先文書型を保持する変換先文書型保持手段、前記要素型と前記構造生成子とから生成し得る複数の構造パターンの２つ組である複数の構造パターン対応条件それぞれに対応付けて、構造パターン対応条件を別の構造パターン対応条件の論理式へ展開するための展開規則、もしくは構造パターン対応条件に対する真偽値のいずれか一方を保持する展開規則保持手段、前記変換元文書型保持手段に保持されている変換元文書型から、前記要素型および前記内容モデルの情報を取り出す変換元文書型アクセス手段、前記変換先文書型保持手段に保持されている変換先文書型から、前記要素型および前記内容モデルの情報を取り出す変換先文書型アクセス手段、前記変換元文書型アクセス手段が取り出した前記要素型もしくは内容モデルと、前記変換先文書型アクセス手段が取り出した前記要素型もしくは内容モデルとから生成される構造パターン対応条件を、前記展開規則保持手段内の対応する展開規則に従って展開すると共に、前記展開規則保持手段内の真偽値に基づいて各構造パターン対応条件に真偽値を設定し、真偽値が真である構造パターン対応条件により作成可能な変換規則を生成する展開規則処理手段、としてコンピュータを機能させることを特徴とする文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００２１】
この記録媒体に記録された文書変換規則生成プログラムをコンピュータで実行すれば、上記本発明の文書変換規則生成装置をコンピュータによって実現することができる。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の第１の実施の形態における原理構成を示す図である。本発明に基づく文書変換規則生成装置の第１の実施の形態は、入力手段１、変換元文書型保持手段２、変換先文書型保持手段３、変換元文書型アクセス手段４、変換先文書型アクセス手段５、展開規則保持手段６、展開規則処理手段７、変換規則候補保持手段８、変換規則順位付け手段９、及び出力手段１０から構成されている。
【００２３】
入力手段１は、変換の対象となる２つの文書型を入力するための機能を有している。ユーザは、この入力手段１を用いて、任意の文書型を入力できる。
変換元文書型保持手段２は、変換元の文書型が含む要素型とその内容モデルの定義を保持する。
【００２４】
変換先文書型保持手段３は、変換先の文書型が含む要素型とその内容モデルの定義を保持する。
変換元文書型アクセス手段４は、変換元文書型保持手段２に保持される要素型とその内容モデルの定義から、必要な要素型もしくはその内容モデルを取り出し、展開規則処理手段７に提供する。
【００２５】
変換先文書型アクセス手段５は、変換先文書型保持手段３に保持される要素型とその内容モデルの定義から、必要な要素型もしくはその内容モデルを取り出し、展開規則処理手段７に提供する。
【００２６】
展開規則保持手段６は、要素型と構造生成子から生成される構造パターンの２つ組（これを構造パターン対応条件と呼ぶ）に対して、展開の方法を記述した展開規則もしくは真偽値を保持する。なお、構造パターンと展開規則との詳細は後述する。
【００２７】
展開規則処理手段７は、変換元文書型アクセス手段４から、変換元文書型の要素型もしくは内容モデルを受け取り、変換先文書型アクセス手段５から、変換先文書型の要素型もしくは内容モデルを受け取り、構造パターン対応条件を生成する。構造パターン対応条件を生成したら、生成された構造パターン対応条件に合致する展開規則を展開規則保持手段６から取り出し、取り出された展開規則に従って処理を実行し、変換規則の候補を生成する。
【００２８】
変換規則候補保持手段８は、展開規則処理手段７において生成された複数の変換規則の候補を保持する。
変換規則順位付け手段９は、変換規則候補保持手段８に保持された複数の変換規則の候補に対して、与えられた基準に従って変換規則に順位付けを行う。
【００２９】
出力手段１０は、変換規則順位付け手段９にて順位付けされた変換規則の候補を、順位の高いものからオンラインの画面上に表示するか、もしくは、ファイルとして出力する。
【００３０】
ここで、構造パターンについて説明する。構造パターンとは、要素型と構造生成子から生成しうるパターンを表したものである。
図２は、構造パターンの例を示す図である。この実施の形態では、図２に示すように７種類の構造パターンが用いられている。
【００３１】
構造パターン「Ｔ」は、終端要素型を示す。構造パターン「Ｎ」は、中間要素型を示す。構造パターン「Ｘ？」は、構造パターンＸがあってもなくてもよいことを示す。構造パターン「Ｘ＋」は、構造パターンＸが１回以上繰り返すこと示す。構造パターン「Ｘ＊」は、構造パターンＸの０回以上の繰り返しを示す。構造パターン（Ｘ１，... Ｘｎ）は、ｎ個の構造パターンＸ１，... Ｘｎがこの順序で出現することを示す。構造パターン（Ｘ１｜... ｜Ｘｎ）は、ｎ個の構造パターンＸ１，... Ｘｎのどれか１つだけが出現することを示す。
【００３２】
ここで、終端要素型とは、要素型の内容として要素型を含まないものを表す。中間要素型とは、要素型の内容として要素型を含むものを表す。例えば、「段落」という要素型の内容として文字列しか許されない場合は、「段落」は終端要素型である。また、「章」という要素型が内容として「節」「見出し」などの要素型を含むとすると、「章」は中間要素型である。なお、図２では、構造生成子はＳＧＭＬに沿った表現を用いている。
【００３３】
任意の文書型の、要素型およびその内容モデルは、図２に示した７種類の構造パターンのいずれかに一致する。
構造パターン対応条件は、２つの構造パターンが対応しうるかどうかを表現するもので、構造パターンＸとＹの対応条件を、［Ｘ，Ｙ］で表現する。
【００３４】
展開規則は、ひとつの構造パターン対応条件が与えられたときに、これを別の構造パターン対応条件もしくは構造パターン対応条件の論理式に展開するか、真偽値を与えるかを決定する規則を記述したものである。
【００３５】
図３は、展開規則保持手段６に保持される展開規則の例を示す図である。図３において、各行は構造パターン対応条件の第１項を、各列は構造パターン対応条件の第２項を表す。ある構造パターン対応条件が与えられたとき、その第１項が当てはまる行、第２項が当てはまる列の内容が、その構造パターン対応条件の展開先となる。以後の説明では、例えば第２行目の第Ｃ列の内容を「（２，Ｃ）の内容」などと表記する。図３において、「＃Ｎ」は、中間要素型Ｎの内容モデルを表す。内容モデルは、図３に示した構造パターンのいずれかに一致するので、「＃Ｎ」も構造パターンの別の表現とみなしてよい。なお、図３の中の「∧」は論理積を示し、「∨」は論理和を示している。
【００３６】
構造パターン対応条件の展開先としては、論理式の場合と真偽値の場合とがある。図３の例では、（１，Ａ）の内容が真偽値の「ＴＲＵＥ」である。また、（５，Ａ）、（６，Ａ）、（７，Ａ）、の内容が真偽値の「ＦＡＬＳＥ」である。
【００３７】
なお、図３において、（７，Ｆ）の内容は、構造パターン対応条件の第１項（Ｘ１，... ，Ｘｎ）における要素数ｎ、および第２項（Ｙ１，... ，Ｙｍ）における要素数ｍに依存して展開先の条件が変化する。このときの展開先の計算方法を、以下に説明する。
【００３８】
図４は、展開先を計算するためのアルゴリズムを説明するフローチャートである。なお、この処理を実行するのは、展開規則処理手段７である。
ここで、例えば、構造パターン対応条件が［（Ｘ１，Ｘ２），（Ｙ１，Ｙ２，Ｙ３）］の場合（図３でｎ＝２、ｍ＝３の場合）に、条件がどのように展開されるか、図４に示したフローチャートに沿って説明する。
【００３９】
まず、ｎとｍのうち小さい方を変数ｚに設定する（ステップＳ１０１）。ｎ＝２、ｍ＝３の場合、z ＝２である。次に、変数ｉに１をセットする（ステップＳ１０２）。（Ｘ１，..，Ｘｎ）をｉ個に分割し、それぞれをＸ（１），... ，Ｘ（ｉ）とする。この例では、ｉ＝１およびｎ＝２より、Ｘ（１）＝（Ｘ１，Ｘ２）がセットされる（ステップＳ１０３）。（Ｙ１，... ，Ｙｍ）からｉ個の要素を選択し、それぞれをＹ（１），..，Ｙ（ｉ）とする。この例では、ｉ＝１より、（Ｙ１，Ｙ２，Ｙ３）から１個選択して、まずＹ（１）＝Ｙ１がセットされる（ステップＳ１０４）。変数ｊに１をセットする（ステップＳ１０５）。構造パターン対応条件［Ｘ（ｊ），Ｙ（ｊ）］を生成する。この例では、構造パターン対応条件［Ｘ（１），Ｙ（１）］すなわち［（Ｘ１，Ｘ２），Ｙ１］が生成される（ステップＳ１０６）。ｊ＝ｉかどうかを判断し、正しければステップＳ１１１へ、そうでなければステップＳ１０８へ進む（ステップＳ１０７）。ここでは、ｊ＝ｉ＝１なので、ステップＳ１１１へ進む。（Ｙ１，... ，Ｙｍ）からｉ個選択する組み合わせが他にあるかどうかを判断する（Ｓ１１１）。ここでは、（Ｙ１，Ｙ２，Ｙ３）から別の１個を選択し、Ｙ（１）＝Ｙ２をセットする（ステップＳ１１２）。変数ｊに１をセットし（ステップＳ１０５）、構造パターン対応条件［Ｘ（１），Ｙ（１）］すなわち［（Ｘ１，Ｘ２），Ｙ２］が生成される（ステップＳ１０６）。同様に、Ｙ（１）＝Ｙ３をセットし、構造パターン対応条件［（Ｘ１，Ｘ２），Ｙ３］が生成される。
【００４０】
（Ｙ１，Ｙ２，Ｙ３）から１個選択する組合せは他にないので、ステップＳ１１３で条件の論理和を計算し、［（Ｘ１，Ｘ２），Ｙ１］∨［（Ｘ１，Ｘ２），Ｙ２］∨［（Ｘ１，Ｘ２），Ｙ３］を得る（ステップＳ１１３）。（Ｘ１，Ｘ２）を１個に分割する方法は他にないので（ステップＳ１１４）、条件の論理和を計算する（ステップＳ１１５）。この時点では、他に論理和を計算する対象がないので、ステップＳ１１６に進み、ｉ＝２をセットする（ステップＳ１１７）。ｉ＝２、ｚ＝２なので、ｉ＞ｚではない（ステップＳ１１８）。そこでステップＳ１０３に戻る。
【００４１】
ｉ＝２およびｎ＝２より、Ｘ（１）＝Ｘ１、Ｘ（２）＝Ｘ２がセットされる（ステップＳ１０３）。ｉ＝２より、（Ｙ１，Ｙ２，Ｙ３）から２個選択して、まずＹ（１）＝Ｙ１、Ｙ（２）＝Ｙ２がセットされる（ステップＳ１０４）。変数ｊに１をセットする（ステップＳ１０５）。構造パターン対応条件［Ｘ（１），Ｙ（１）］すなわち［Ｘ１，Ｙ１］が生成される（ステップＳ１０６）。ステップＳ１０７で、ｊ≠ｉなので、ステップＳ１０８へ進む。変数ｊに２をセットし（ステップＳ１０９）、構造パターン対応条件［Ｘ（２），Ｙ（２）］すなわち［Ｘ２，Ｙ２］が生成される（ステップＳ１０９）。条件の論理積を計算し、［Ｘ１，Ｙ１］∧［Ｘ２，Ｙ２］を得る（ステップＳ１１０）。ｊ＝ｉ＝２なので、ステップＳ１１１へ進む。
【００４２】
（Ｙ１，Ｙ２，Ｙ３）から別の２個を選択し、Ｙ（１）＝Ｙ１、Ｙ（２）＝Ｙ３をセットする（ステップＳ１１２）。変数ｊに１をセットし（ステップＳ１０５）、構造パターン対応条件［Ｘ（１），Ｙ（１）］すなわち［Ｘ１，Ｙ１］が生成される（ステップＳ１０６）。ステップＳ１０７で、ｊ≠ｉなので、ステップＳ１０８へ進む。変数ｊに２をセットし（ステップＳ１０９）、構造パターン対応条件［Ｘ（２），Ｙ（２）］すなわち［Ｘ２，Ｙ３］が生成される（ステップＳ１０９）。条件の論理積を計算し、［Ｘ１，Ｙ１］∧［Ｘ２，Ｙ３］を得る（ステップＳ１１０）。ｊ＝ｉ＝２なので、ステップＳ１１１へ進む。
【００４３】
（Ｙ１，Ｙ２，Ｙ３）から別の２個を選択し、Ｙ（１）＝Ｙ２、Ｙ（２）＝Ｙ３をセットする（ステップＳ１１２）。変数ｊに１をセットし（ステップＳ１０５）、構造パターン対応条件［Ｘ（１），Ｙ（１）］すなわち［Ｘ１，Ｙ２］が生成される（ステップＳ１０６）。ステップＳ１０７で、ｊ≠ｉなので、ステップＳ１０８へ進む。変数ｊに２をセットし（ステップＳ１０９）、構造パターン対応条件［Ｘ（２），Ｙ（２）］すなわち［Ｘ２，Ｙ３］が生成される（ステップＳ１０９）。条件の論理積を計算し、［Ｘ１，Ｙ２］∧［Ｘ２，Ｙ３］を得る（ステップＳ１１０）。ｊ＝ｉ＝２なので、ステップＳ１１１へ進む。
【００４４】
（Ｙ１，Ｙ２，Ｙ３）から２個を選択する組合せは他にないので、ステップＳ１１３で条件の論理和を計算し、（［Ｘ１，Ｙ１］∧［Ｘ２，Ｙ２］）∨（［Ｘ１，Ｙ１∧［Ｘ２，Ｙ３］）∨（［Ｘ１，Ｙ２］∧［Ｘ２，Ｙ３］）を得る（ステップＳ１１３）。（Ｘ１，Ｘ２）を２個に分割する方法は他にないので（ステップＳ１１４）、条件の論理和を計算し（ステップＳ１１５）し、［（Ｘ１，Ｘ２），Ｙ１］∨［（Ｘ１，Ｘ２），Ｙ２］∨［（Ｘ１，Ｘ２），Ｙ３］∨（［Ｘ１，Ｙ１］∧［Ｘ２，Ｙ２］）∨（［Ｘ１，Ｙ１］∧［Ｘ２，Ｙ３］）∨（［Ｘ１，Ｙ２］∧［Ｘ２，Ｙ３］）を得る。変数ｉに３をセットする（ステップＳ１１７）。ｉ＝３、ｚ＝２なので、ｉ＞ｚであり（ステップＳ１１８）、処理を終了する。最終的に、展開先として、［（Ｘ１，Ｘ２），Ｙ１］∨［（Ｘ１，Ｘ２），Ｙ２］∨［（Ｘ１，Ｘ２），Ｙ３］∨（［Ｘ１，Ｙ１］∧［Ｘ２，Ｙ２］）∨（［Ｘ１，Ｙ１］∧［Ｘ２，Ｙ３］）∨（［Ｘ１，Ｙ２］∧［Ｘ２，Ｙ３］）を得る。
【００４５】
次に、本発明に基づく文書変換規則生成装置の第１の実施の形態における変換規則の生成の処理の手順を、具体的な例に沿って説明する。
図５は、変換元文書型の例を示す図である。図６は、変換先文書型の例を示す図である。これらは、それぞれ変換元の文書型の要素型とその内容モデルの定義、変換先の文書型の要素型とその内容モデルの定義を示している。
【００４６】
図５および図６では、文書型はともにＳＧＭＬに沿った表現で示してある。
以下、本発明の第１の実施の形態では図５に示した文書型の文書を、図６に示した文書型の文書に変換するための変換規則を生成するものとする。また、展開規則保持手段６には、図３に示す展開規則が保持されているものとする。
【００４７】
図７は、本発明の第１の実施の形態における変換規則の生成手順の流れを示すフローチャートである。
まず、ユーザから、入力手段１により図５に示した文書型（ここでは「文書型Ａ」と呼ぶ）が変換元文書型として入力され、変換元文書型保持手段２に保持される（図７のステップＳ２１）。次に、ユーザから、入力手段１により、図６に示した文書型（ここでは文書型Ｄと呼ぶ）が変換先文書型として入力される。入力された文書型は、変換先文書型保持手段３に保持される（ステップＳ２２）。
【００４８】
次に、変換元文書型アクセス手段４により、変換元文書型のルートの要素型として「Ａ」が取り出される。（ステップＳ２３）。また、変換先文書型アクセス手段５により、変換先文書型のルートの要素型として「Ｄ」が取り出される（ステップＳ２４）。
【００４９】
展開規則処理手段７は、ステップＳ２３において変換元文書型アクセス手段４が取り出したルート要素型「Ａ」、およびステップＳ２４において変換先文書型アクセス手段５が取り出したルート要素型「Ｄ」から、初期の構造パターン対応条件［Ａ，Ｄ］を生成する。さらに、展開規則保持手段６に保持された展開規則から、生成された構造パターン対応条件に合致する展開規則を取り出し、構造パターン対応条件の論理木を生成する（ステップＳ２５）。この処理の詳細については後述する。
【００５０】
次に、展開規則処理手段７は、ステップＳ２５で生成された構造パターン対応条件の論理木から、１つ以上の変換規則の候補を生成し、変換規則候補保持手段８に保持する（ステップＳ２６）。この処理の詳細については後述する。
【００５１】
変換規則順位付け手段９は、ステップＳ２６で展開規則処理手段７によって生成され、変換規則候補保持手段８に保持された１つ以上の変換規則の候補を、与えられた基準に従って順位付ける（ステップＳ２７）。どのような基準に従って順位付けを行うかは後述する。
【００５２】
最後に、出力手段１０は、ステップＳ２７で順位付けられた１つ以上の変換規則の候補を、順位の高い順にオンラインの画面上に表示するか、もしくはファイルに出力する（ステップＳ２８）。
【００５３】
次に、図７のフローチャートのステップＳ２５にあたる構造パターン対応条件論理木の生成の処理について、順を追って説明する。
構造パターン対応条件論理木は、各ノードに対して真偽値（TRUEもしくはFALSE ）を割り当てた木であり、ノードの種類として条件ノードとＡＮＤノードの２種類を持つ。
【００５４】
条件ノードにはひとつの構造パターン対応条件が対応する。条件ノードの真偽値は、対応する構造パターン対応条件が変換規則の候補を生成しうるかどうかを表している。すなわち、条件ノードの真偽値がTRUEであれば、そのノードに対応する構造パターン対応条件に基づいて変換規則の候補が生成可能である。この条件ノードは、対応する構造パターン対応条件に合致する展開規則が存在するとき、その展開先の論理式のＯＲ条件を構成する各項を子ノードとして持つ。
【００５５】
ＡＮＤノードは、複数の構造パターン対応条件の論理積を表現するための特別なノードであり、その真偽値は、ＡＮＤノードの全ての子ノードの真偽値の論理積である。このＡＮＤノードは、論理積を構成する複数の構造パターン対応条件を子ノードとして持つ。
【００５６】
図８は、論理木の構造の例を示す図である。この例は、構造パターン対応条件が［（Ｘ１｜... ｜Ｘｎ），（Ｙ１，... ，Ｙｍ）］の形式であるとき、図３に示した展開規則の（４，Ｆ）の内容から構成された論理木である。
【００５７】
図９は、第１の実施の形態における構造パターン対応条件論理木の生成処理の手順を示すフローチャートである。
まず、展開規則処理手段７は、図７のステップＳ２３で取り出された要素型「Ａ」とステップＳ２４で取り出された要素型「Ｄ」とを要素とする構造パターン対応条件［Ａ，Ｄ］のノードを生成する（ステップＳ３１）。この構造パターン対応条件に合致する展開規則を、展開規則保持手段６から取り出し、規則に沿って条件を展開する（ステップＳ３２）。次に、ステップＳ３２で取り出された展開規則の展開先を調べる（ステップＳ３３）。展開先が、単一の構造パターン対応条件もしくは構造パターン対応条件の論理式であればステップＳ３４へ進む。展開先が真偽値であれば、ステップＳ３１で生成された条件ノードに、得られた真偽値を設定する（ステップＳ４７）。
【００５８】
ここで図５および図６に示した文書型の例では、図３より（２，Ｂ）の規則が合致することがわかり、［Ａ，Ｄ］は［＃Ａ，＃Ｄ］へ展開される。（２，Ｂ）の規則の展開先は論理式であるのでステップＳ３４へ進む。
【００５９】
次に、図９のステップＳ３４以下の処理について、順を追って説明する。
まず論理式から項を１つ取り出す（ステップＳ３４）。今、項は［＃Ａ，＃Ｄ］のみである。次に、項が積項であるかどうかがチェックされる（ステップＳ３５）。
【００６０】
ここで、「積項」とは、構造パターン対応条件Ｘ１、Ｘ２、... Ｘｎがあるとき、「Ｘ１∧... ∧Ｘｎ」の形で表現される条件である。
ステップＳ３５でチェックされた項が積項であればステップＳ３６へ進む。今、項は［＃Ａ，＃Ｄ］のみなので、積項ではないと判断され、ステップＳ４１へ進む。項の中に内容モデルが含まれるかどうかをチェックする（ステップＳ４１）。内容モデルがあれば、変換元文書型アクセス手段４もしくは変換先文書型アクセス手段５により内容モデルを取り出して展開する（ステップＳ４２）。ステップＳ３４で取り出された項は、要素型Ａおよび要素型Ｄの内容モデル（すなわち＃Ａおよび＃Ｄ）を含むので（ステップＳ４１）、変換元文書型アクセス手段４および変換先文書型アクセス手段５により、要素型Ａの内容モデル「（Ｂ，Ｃ）」および要素型Ｄの内容モデル「（Ｅ，（Ｆ｜Ｇ））」を取り出す。
【００６１】
次に、構造パターン対応条件論理木の生成の処理を再帰的に実行する（ステップＳ４３）。ステップＳ４３で、構造パターン対応条件［（Ｂ，Ｃ），（Ｅ，（Ｆ｜Ｇ））］に対して、論理木を生成する。図９に示すフローチャートの先頭に戻って、条件ノードを生成し（ステップＳ３１）、合致する展開規則を取り出し、規則に沿って条件を展開する（ステップＳ３２）。図３より（７，Ｆ）の規則が合致することがわかり、条件は図４に示すアルゴリズムに従って、［（Ｂ，Ｃ），Ｅ］∨［（Ｂ，Ｃ），（Ｆ｜Ｇ）］∨（［Ｂ，Ｅ］∧［Ｃ，（Ｆ｜Ｇ）］）へ展開される。（７，Ｆ）の規則の展開先を調べると（ステップＳ３３）、展開先は論理式となる。したがってステップＳ３４へ進む。
【００６２】
展開先の論理式から項を１つ取り出す（ステップＳ３４）。ここで最初の項として、［（Ｂ，Ｃ），Ｅ］を取り出す。この項は積項ではないので、ステップＳ３５からステップＳ４１へ進む。要素型Ｂ、Ｃ、Ｅは終端要素型なので、内容モデルを含まない。したがって、ステップＳ４１からステップＳ４３へ進む。ここで再び構造パターン対応条件［（Ｂ，Ｃ），Ｅ］に対して、ステップＳ４３で論理木が生成される。
【００６３】
再度図９のステップＳ３１から処理を開始する。構造パターン対応条件［（Ｂ，Ｃ），Ｅ］に対応する条件ノードが生成される（ステップＳ３１）。条件に合致する展開規則を取り出し、規則に沿って条件を展開する（ステップＳ３２）。図３より（７，Ａ）の規則が合致することがわかり、展開先を調べると、真偽値「FALSE 」である。したがってステップＳ４７へ進み、［（Ｂ，Ｃ），Ｅ］の条件ノードにFALSE を設定し、論理木の生成を終了する。
【００６４】
ステップＳ４３から処理が戻り、全ての項について処理が終了したかどうかをチェックし（ステップＳ４４）、次の項［（Ｂ，Ｃ），（Ｆ｜Ｇ）］を取り出す（ステップＳ３４）。
【００６５】
以下同様に、論理木の生成の処理を再帰的に呼び出す。次の項［Ｂ，Ｅ］∧［Ｃ，（Ｆ｜Ｇ）］は積項であるので、ステップＳ３５からステップＳ３６へ進み、ＡＮＤノードを生成する（ステップＳ３６）。積項から１つの項［Ｂ，Ｅ］を取り出し（ステップＳ３７）、ステップＳ３８で論理木を生成する。次の項［Ｃ，（Ｆ｜Ｇ）］についても同様に論理木を生成する。ステップＳ３８で、構造パターン対応条件論理木の生成の処理が終了すると、積項を構成する各項の全てについて処理が終了したかどうかをチェックし、処理の行われていない項があれば、ステップＳ３７へ戻る。全ての項について処理が終了したら、ステップＳ３６で生成されたＡＮＤノードに真偽値を設定する（ステップＳ４０）。その際、ステップＳ３８においてＡＮＤノードの下位のノードのそれぞれに真偽値が設定されているので、下位のノードの真偽値の論理演算を行ってＡＮＤノードに設定する。論理演算は、ＡＮＤノードの全ての子ノードの真偽値の論理積である。この例では、ＡＮＤノードにTRUEが設定される。
【００６６】
ステップＳ４４で全ての項について処理が終了したかどうかをチェックし、処理の行われていない項があれば、ステップＳ３４へ戻る。全ての項について処理が終了したら、下位ノードに設定されている真偽値の論理演算を行う（ステップＳ４５）。論理演算としては、下位ノードの真偽値のＯＲ条件をとる。すなわち、下位ノードの中に真偽値が「TRUE」のノードが１つでも存在すれば、演算結果は「TRUE」となる。演算結果をステップＳ３１で生成した条件ノードの真偽値として設定する（ステップＳ４６）。
【００６７】
以上の処理で、全ての条件ノードに対して真偽値が設定されると、結果は以下のような木構造で表現することができる。
図１０は、構造パターン対応条件の論理木の例を示す図である。この例では、ルートのノードに「TRUE」が設定されているため、文書型「Ａ」から文書型「Ｄ」への変換規則の候補が生成可能である。このような論理木に基づいて、変換規則候補が生成される。
【００６８】
次に、図７のフローチャートのステップＳ２６で変換規則の候補を生成する処理について図５および図６に示した文書型の例を用いて説明する。
図１１は、本発明の第１の実施の形態における変換規則候補生成の処理の手順を示すフローチャートである。
【００６９】
まず図７のフローチャートのステップＳ２５で生成された構造パターン対応条件の論理木（図１０に示す）から、真偽値がFALSE であるノードを全てカットする（図１１のステップＳ５１）。
【００７０】
図１２は、真偽値がFALSE であるノードがカットされた論理木を示す図である。これは、図１０に示す論理木の真偽値がFALSE であるノードをカットしたものである。
【００７１】
次に、ステップＳ５１で生成された論理木を、積和形式に変換する（ステップＳ５２）。ここで、論理木の積和形式は、どのＡＮＤノードの下位にもＯＲ条件が出現しない形式である。例えば、図１２に示した論理木では、ＡＮＤノード１０１の下位の条件ノード１０２の子ノードである条件ノード１０３と条件ノード１０４がＯＲ条件で接続されているので、図１２に示した論理木は積和形式ではない。積和形式でない論理木を積和形式に変換する処理は、一般の論理式を積和形式に変換する処理と同様である。すなわち、２値変数ｘ，ｙ，ｚに対してｘ∧（ｙ∨ｚ）＝（ｘ∧ｙ）∨（ｘ∧ｚ）のような演算と同様に処理できる。
【００７２】
図１３は、図１２に示した論理木を積和形式に変換した論理木を示す図である。
最後に、ステップＳ５２で生成された積和形式の論理木をＯＲの部分で分割する（ステップＳ５３）。分割された論理木の１つ１つが変換規則の候補に対応する。
【００７３】
図１４は、図１３に示した論理木をＯＲの部分で分割してできた論理木の集合を示した図である。左側の論理木は、ノード２０１〜２０６で構成されている。右側の論理木は、ノード２１１〜２１６で構成されている。
【００７４】
展開規則処理手段７は、ステップＳ５３で生成された複数の論理木を変換規則の候補として変換規則候補保持手段８に保存する（ステップＳ５４）。
次に、図１１のフローチャートのステップＳ５４にあたる変換規則の候補の保存の処理について、順を追って説明する。
【００７５】
図１５は、本発明の第１の実施の形態における変換規則の候補の保存の処理の手順を示すフローチャートである。
まず、図１１のステップＳ５３で分割された論理木の１つを取り出す（ステップＳ６１）。ここでは、図１４の左側の論理木を取り出すものとする。
【００７６】
次に、図１４の左側の論理木からリーフノード２０４を取り出す（ステップＳ６２）。リーフノードは常に変換元の要素型を第１項とし、変換先の要素型を第２項とする構造パターン対応条件のノードであるので、それぞれの要素型を変換規則候補保持手段８に記録する（ステップＳ６３）。ここでは、リーフノード２０４の構造パターン対応条件に含まれる要素型ＢおよびＥを記録する。次に、親ノードをたどって（ステップＳ６４）、もし親ノードが存在すれば（ステップＳ６５）、ステップＳ６６へ進み、そのノードの構造パターン対応条件に要素型が含まれるかどうかをチェックする（ステップＳ６６）。今、ノード２０４の親ノードをたどると、ＡＮＤノード２０３が存在することが確認される。もし要素型が含まれれば、その要素型を変換規則候補保持手段８に記録し（ステップＳ６７）、なければ何も記録せずにステップＳ６４に戻る。今、ＡＮＤノードは要素型を含まないので、ステップＳ６６からステップＳ６４へ戻る。さらに親ノードをたどると（ステップＳ６４）、ノード２０２が存在するが（ステップＳ６５）、要素型を含まないので、ステップＳ６６からステップＳ６４へ戻る。
【００７７】
さらに親ノードをたどると（ステップＳ６４）、ノード２０１が存在する（ステップＳ６５）。ノード２０１には要素型ＡとＤが存在するので、ステップＳ６３で要素型を記録する。ノード２０１には親ノードが存在しないので、ステップＳ６４、ステップＳ６５を経てステップＳ６８へ進み、全てのリーフノードについて処理したかどうかを調べる。図１４の左側の論理木にはリーフノード２０６が存在するので、ステップＳ６２へ戻って、同様に処理を行う。
【００７８】
リーフノード２０６に対する処理が終了すると、これ以上リーフノードが存在しないので、ステップＳ６８からステップＳ６９へ進み、ここまでに記録された要素型の対応を変換規則の候補として、変換規則候補保持手段８に保存する。
【００７９】
ステップＳ７０から、図１４の右側の論理木に対応する変換規則の候補を保存するために、ステップＳ６１へ戻って同様に処理を行う。
図１４に示した２つの論理木に対する処理が終了すると、２つの変換規則の候補が変換規則候補保持手段８に保存される。
【００８０】
図１６は、変換規則候補保持手段に保存される変換規則の候補の例を示す図である。図１６に示した変換規則は、変換元の文書型の要素型のパスと、変換先の文書型の要素型のパスとの対応によって示されている。
【００８１】
ここで、パスとは、文書型のルート要素型から、終端要素型に至るまでに存在する全ての要素型（ルート要素型を含む）の並びである。例えば、終端要素型をＸとし、その親の要素型がＢ、Ｂの親の要素型がルート要素型Ａであれば、要素型Ｘに対するパスは（Ａ  Ｂ  Ｘ）となる。
【００８２】
また、ルート要素型がＡ、Ａの内容モデルが（Ｂ，Ｃ）、要素型Ｃの内容モデルが（Ｄ｜Ｃ）、要素型Ｄが終端要素型であるとき、ルート要素型Ａから要素型Ｃを介して要素型Ｄに至るパスは、（Ａ  Ｃ  Ｄ）、（Ａ  Ｃ  Ｃ  Ｄ）、（ＡＣ  Ｃ  Ｃ  Ｄ）、... 、のようにバリエーションが無限に存在する。このような場合、（Ａ  Ｃ＋  Ｄ）でこれらのバリエーションを一括して表現する。ここでＣ＋は、パス上で要素型C が１回以上繰り返すことを表す。
【００８３】
このように要素型間の対応をパスの対応として規定することによって、変換元の同一の要素型が異なるパスに存在する場合には、それぞれ変換先の要素型の異なる要素型へ対応させることが可能になる。
【００８４】
次に、図７のフローチャートのステップＳ２７で変換規則の順位付けを行う処理について図５および図６に示した文書型の例を用いて説明する。
第１の実施の形態においては、変換規則に順位を付けるための基準として、変換先の文書型に含まれる１つの終端要素型と対応付けられる、変換元の文書型に含まれる終端要素型の種類の数を基準とする。すなわち、変換元の終端要素型Ａが変換先の終端要素型Ｘに対応付けられ、変換元の終端要素型Ｂも終端要素型Ｘに対応付けられるとき、終端要素型Ｘに対応付けられる変換元の終端要素型は２種類となる。このような対応付けでは、変換元の文書型でＡとＢという要素型の区別が存在したものが、変換によって区別がなくなることになる。これは変換の結果としてあまり望ましくないので、この場合には変換規則としての順位を下げるようにする。本実施の形態では、変換先のそれぞれの終端要素型に対し、変換元の終端要素型が何種類対応付けられているかを数え上げ、これらの積が小さいほど順位が上になるようにする。
【００８５】
ここで、図５および図６に示した文書型の間に生成された図１６に示した変換規則の候補に数値をスコアとして設定した結果を以下に示す。
図１７は、順位付けのためのスコアを計算した変換規則の候補を示す図である。図１７に示すように、２つの候補の順位は同等である。したがって、図５および図６に示した文書型の例では、２つの変換規則の候補は同等に利用可能であると判断できる。なお、変換規則の候補の優先順位に差異が生じる場合については、第２の実施例にて説明する。
【００８６】
以上説明したように、本発明に基づく文書変換規則生成装置は、ある文書型に沿って作成された構造化文書を別の文書型に沿った文書に変換するための変換規則の複数の候補を、人手を介することなく自動生成することができるため、変換規則の作成効率が向上する。また、複数の変換規則の候補に順位付けすることが出来るため、ユーザは必要に応じて最適な変換規則を容易に得ることができる。
【００８７】
次に、本発明に基づく文書変換規則生成装置の第２の実施の形態について説明する。第２の実施の形態は、要素型が再帰的に定義されている場合でも、変換規則の候補が生成できるようにしたものである。
【００８８】
図１８は、本発明に基づく文書変換規則生成装置の第２の実施の形態における原理構成を示す図である。本発明に基づく文書変換規則生成装置の第２の実施の形態は、入力手段１１、変換元文書型保持手段１２、変換先文書型保持手段１３、変換元文書型アクセス手段１４、変換先文書型アクセス手段１５、展開規則保持手段１６、展開規則処理手段１７、変換規則候補保持手段１８、変換規則順位付け手段１９、出力手段２０、及び構造パターン対応条件記憶手段２１から構成されている。第２の実施の形態における構造パターン対応条件記憶手段２１、展開規則処理手段１７以外の構成要素は、図１に示した第１の実施の形態における同名の構成要素と同じ機能を有しているため、説明を省略する。
【００８９】
構造パターン対応条件記憶手段２１は、展開規則処理手段１７が展開した構造パターン対応条件を順次記憶し、記憶された構造パターン対応条件に対応する論理木の生成の処理が終了すると同時に、最も最近に記憶された構造パターン対応条件を記憶手段から破棄する。すなわち、構造パターン対応条件記憶手段２１は、構造パターン対応条件のスタックとして作用する。
【００９０】
展開規則処理手段１７は、第１の実施の形態における展開規則処理手段７が有している機能に加え、次のような機能を有している。すなわち、構造パターン対応条件を展開した後、構造パターン対応条件記憶手段２１に問合せを行い、展開した構造パターン対応条件と同一のものが既にあれば、それ以上の展開を中止する。
【００９１】
次に、本発明に基づく文書変換規則生成装置の第２の実施の形態における変換規則の生成の処理の手順を、具体的な例に沿って説明する。
図１９は、変換元の文書型の例を示す図である。図２０は、変換先の文書型の例を示す図である。図１９および図２０は、第２の実施の形態における変換規則の生成手順を説明するための具体的な例として、それぞれ変換元の文書型の要素型とその内容モデルの定義、変換先の文書型の要素型とその内容モデルの定義を示した図である。図１９および図２０では、文書型をＳＧＭＬに沿った表現で示してある。図１９において、変換元の文書型doc は、要素型sectが、内容モデルとして自分自身を含む再帰的な定義になっている。
【００９２】
以下、本発明の第２の実施の形態では、図１９に示した文書型の文書を、図２０に示した文書型の文書に変換するための変換規則を生成するものとする。また、展開規則保持手段１６には、図３に示す展開規則が保持されているものとする。
【００９３】
第２の実施の形態における、変換規則の生成の処理手順の中核部分は、図７に示した第１の実施の形態における処理手順と同一であるので、詳しい説明を省略する。
【００９４】
次に、本発明の第２の実施の形態において、図７のフローチャートのステップＳ２５にあたる構造パターン対応条件論理木の生成の処理について、具体的な例に沿って説明する。
【００９５】
図２１は、本発明の第２の実施の形態における構造パターン対応条件論理木の生成の処理の手順を示すフローチャートである。図２１に示すフローチャートは、図９に示した本発明の第１の実施の形態における構造パターン対応条件論理木の生成の処理の手順とほぼ同一である。そこで、図９に示したフローチャートと同一の処理工程に対しては同一のステップ番号を付すものとし、図９において新たに付加された工程にだけ新しいステップ番号を付す。すなわち、図２１において、ステップＳ８１、ステップＳ８２、ステップＳ８３、およびステップＳ８４の４つの工程が新たに付加されている。
【００９６】
第２の実施の形態における構造パターン対応条件論理木の生成は、まず、展開規則処理手段１７が、図７のステップＳ２３で取り出された要素型とステップＳ２４で取り出された要素型を要素とする構造パターン対応条件のノードを生成する（ステップＳ３１）。次に、対象となる構造パターン対応条件が、構造パターン対応条件記憶手段２１に既に記憶されているかどうかをチェックする（ステップＳ８１）。対象となる構造パターン対応条件が、構造パターン対応条件記憶手段２１に既に記憶されている場合には、ステップＳ８４へ進み、ステップＳ３１で生成された条件ノードの真偽値をTRUEとして設定する（ステップＳ８４）。ステップＳ８１で、対象となる構造パターン対応条件が構造パターン対応条件記憶手段２１に記憶されていない場合には、新たな構造パターン対応条件として構造パターン対応条件記憶手段２１に記憶する（ステップＳ８２）。
【００９７】
ステップＳ８２以後のステップＳ３２からステップＳ４７に至る処理は、第１の実施の形態において説明した処理手順と同一であるので、詳しい説明を省略する。
【００９８】
第２の実施の形態においては、ステップＳ４６もしくはステップＳ４７において、条件ノードに真偽値を設定したら、構造パターン対応条件記憶手段２１に記憶されている最新の構造パターン対応条件を破棄する（ステップＳ８３）。
【００９９】
このように、対象となる構造パターン対応条件が構造パターン対応条件記憶手段１１に既に記憶されているかどうかをチェックすることによって、要素型が再帰的に定義されている文書型の場合でも、論理木を生成する処理が停止することが保証される。
【０１００】
図２２は、図１９および図２０に示した文書型について、図２１に示した処理手順に従って生成された構造パターン対応条件論理木を示す図である。なお、図２２において、△で示した部分は、共通する部分木をまとめて表記するために導入した記号である。また、各ノードの真偽値は、図２２においてFALSE と記したもの以外は全てTRUEであるとする。
【０１０１】
図２２において、ノード３０２は、ノード３０１と同じ構造パターン対応条件が出現したために展開が停止したノードである。
本発明の第２の実施の形態において、図７のフローチャートのステップＳ２６で変換規則の候補を生成する処理については、図１１に示した、本発明の第１の実施の形態における変換規則の候補の生成の処理手順と同じである。したがって、ここでは詳しい説明を省略する。ただし、図１１のフローチャートのステップＳ５４にあたる変換規則の候補の保存の処理については、本発明の第１の実施の形態における処理とは手順が異なるので、次に説明する。
【０１０２】
図２３は、本発明の第２の実施の形態における変換規則の候補の保存の処理の手順を示すフローチャートである。
まず、図１１のフローチャートのステップＳ５３で分割された論理木の１つを取り出す（ステップＳ２０１）。ここでは次のような論理木を取り出したと仮定して、以後の処理の手順を説明する。
【０１０３】
図２４は、ステップＳ２０１で取り出される論理木の例を示す図である。図２４に示す論理木は、図２２に示す論理木を、図１１に示すフローチャートのステップＳ５１からステップＳ５３に従って、積和形式に変換し、ＯＲ演算子の部分で分割して生成した論理木の集合中の１つである。
【０１０４】
図２４に示した論理木から、リーフノード４０１を取り出す（ステップＳ２０２）。リーフノード４０１が再帰的な条件であるかどうかチェックする（ステップＳ２０３）。リーフノード４０１は再帰的な条件ではないので、構造パターン対応条件に含まれる要素型doctitleおよびtitle を記録する（ステップＳ２１０）。ステップＳ２１２、ステップＳ２１３、ステップＳ２１４で順次親ノードをたどって、構造パターン対応条件に出現する要素型を記録する。これにより、リーフノード４０１に対応して、変換元のパス(doc doctitle)と変換先のパス(doc２ title) の対応が決定される。
【０１０５】
同様に、リーフノード４０３およびリーフノード４０５について、親ノードを順次たどって、構造パターン対応条件に出現する要素型を記録する。これにより、変換元のパス(doc sect title)と変換先のパス(doc２ section head)、および変換元のパス(doc sect p)と変換先のパス(doc２ section para)の対応が決定される。図２５は、再帰的な条件が出現するまでの処理で生成される変換元のパスと変換先のパスの対応を示す図である。
【０１０６】
次に、ステップＳ２０２でリーフノード４０４を取り出す。リーフノード４０４は、条件ノード４０２と同じ構造パターン対応条件である。すなわち、リーフノード４０４は再帰的な条件である。したがって、ステップＳ２０３からステップＳ２０４へ進む。リーフノード４０４の構造パターン対応条件の第１項である要素型sectを記録する（ステップＳ２０４）。リーフノード４０４から親ノードをたどって、構造パターン対応条件の第１項に要素型が出現するまで、ステップＳ２０５とステップＳ２０６の処理を繰り返す。
【０１０７】
条件ノード４０２に到達した時点で、構造パターン対応条件の第１項に要素型sectを含むので、ステップＳ２０７へ進む。リーフノード４０４の構造パターン対応条件の第１項の要素型と同じかどうかをチェックする（ステップＳ２０７）。今、要素型sectは、リーフノード４０４の構造パターン対応条件の第１項と同じなので、ステップＳ２０９へ進む。
【０１０８】
ステップＳ２０９で、条件ノード４０２からリーフノード４０４へ至る要素型のパス(sect sect) を記録する。次に、図２５に示した変換元のパスの中で、要素型sectが再帰的に出現しうるので、sectをステップＳ２０９で記録したパス(sect sect) の再帰的表現である(sect+) で置換する（ステップＳ２１６）。その結果、再帰的表現を含んだ変換規則の候補が生成される。図２６は、再帰的表現を含む変換規則の候補を示す図である。
【０１０９】
次に、生成された変換規則の候補を変換規則候補保持手段８に保存する（ステップＳ２１７）。
図２２に示した論理木を積和形式に変換し、ＯＲ演算子の部分で分割してできた他の全ての論理木について、同様に処理を行う（ステップＳ２１８）。
【０１１０】
以上で、図１９に示した文書型を変換元とし、図２０に示した文書型を変換先とする、変換規則の候補の生成の処理が終了する。
次に、生成された変換規則の候補を順位付けする処理については、本発明の第１の実施の形態において説明した手順と同様に行う。
【０１１１】
図２７は、図１９に示す文書型を変換元とし、図２０に示す文書型を変換先とした変換規則の全ての候補を示す図である。また、図２８は、図２７に示した変換規則の各候補にスコアを付与したものを示す図である。図２８より、候補番号１０および１１が最もスコアが低いので、優先順位が高くなることがわかる。
【０１１２】
このように、本発明における第２の実施の形態では、要素型が再帰的に定義されている場合でも、変換規則の候補が生成できる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、文書変換規則生成装置が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場を流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Oｎly Memory)やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【０１１３】
【発明の効果】
以上説明したように本発明に係る文書変換規則生成装置では、構造パターン対応条件の展開規則と真偽値とを予め設定しておき、その展開規則に従って変換元文書型と変換先文書型とから得られる構造パターン対応条件を展開するとともに、それらに真偽値を設定し、真偽値が真である構造パターン対応条件が生成可能な変換規則を作成するようにしたため、ある文書型に沿って作成された構造化文書を別の文書型に沿った文書に変換するための変換規則を、人手を介することなく自動生成することができ、変換規則の作成効率が向上する。
【０１１４】
また、本発明にかかる文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体では、格納されたプログラムをコンピュータに実行させれば、構造パターン対応条件の展開規則と真偽値とを予め設定しておき、その展開規則に従って変換元文書型と変換先文書型とから得られる構造パターン対応条件を展開するとともに、それらに真偽値を設定し、真偽値が真である構造パターン対応条件が生成可能な変換規則を作成するような処理をコンピュータに行わせることが可能となる。その結果、コンピュータを用いて、ある文書型に沿って作成された構造化文書を別の文書型に沿った文書に変換するための変換規則を、人手を介することなく自動生成することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態における原理構成を示す図である。
【図２】構造パターンの例を示す図である。
【図３】展開規則保持手段に保持される展開規則の例を示す図である。
【図４】展開先を計算するためのアルゴリズムを説明するフローチャートである。
【図５】変換元文書型の例を示す図である。
【図６】変換先文書型の例を示す図である。
【図７】本発明の第１の実施の形態における変換規則の生成手順の流れを示すフローチャートである。
【図８】論理木の構造の例を示す図である。
【図９】第１の実施の形態における構造パターン対応条件論理木の生成処理の手順を示すフローチャートである。
【図１０】構造パターン対応条件の論理木の例を示す図である。
【図１１】本発明の第１の実施の形態における変換規則候補生成の処理の手順を示すフローチャートである。
【図１２】真偽値がFALSE であるノードがカットされた論理木を示す図である。
【図１３】図１２に示した論理木を積和形式に変換した論理木を示す図である。
【図１４】図１３に示した論理木をＯＲの部分で分割してできた論理木の集合を示した図である。
【図１５】本発明の第１の実施の形態における変換規則の候補の保存の処理の手順を示すフローチャートである。
【図１６】変換規則候補保持手段に保存される変換規則の候補の例を示す図である。
【図１７】順位付けのためのスコアを計算した変換規則の候補を示す図である。
【図１８】本発明に基づく文書変換規則生成装置の第２の実施の形態における原理構成を示す図である。
【図１９】変換元の文書型の例を示す図である。
【図２０】変換先の文書型の例を示す図である。
【図２１】本発明の第２の実施の形態における構造パターン対応条件論理木の生成の処理の手順を示すフローチャートである。
【図２２】図１９および図２０に示した文書型について、図２１に示した処理手順に従って生成された構造パターン対応条件論理木を示す図である。
【図２３】本発明の第２の実施の形態における変換規則の候補の保存の処理の手順を示すフローチャートである。
【図２４】ステップＳ２０１で取り出される論理木の例を示す図である。
【図２５】再帰的な条件が出現するまでの処理で生成される変換元のパスと変換先のパスの対応を示す図である。
【図２６】再帰的表現を含む変換規則の候補を示す図である。
【図２７】図１９に示す文書型を変換元とし、図２０に示す文書型を変換先とした変換規則の全ての候補を示す図である。
【図２８】図２７に示した変換規則の各候補にスコアを付与したものを示す図である。
【図２９】構造化文書の表現の一例を示す図である。
【図３０】図２９で示した構造化文書の文書型を示す図である。
【図３１】文書型のＳＧＭＬによる表現形式を示す図である。
【符号の説明】
１  入力手段
２  変換元文書型保持手段
３  変換先文書型保持手段
４  変換元文書型アクセス手段
５  変換先文書型アクセス手段
６  展開規則保持手段
７  展開規則処理手段
８  変換規則候補保持手段
９  変換規則順位付け手段
１０  出力手段
【図１】
0003843574.tif 000002
【図２】
0003843574.tif 000003
【図３】
0003843574.tif 000004
【図４】
0003843574.tif 000005
【図５】
0003843574.tif 000006
【図６】
0003843574.tif 000007
【図７】
0003843574.tif 000008
【図８】
0003843574.tif 000009
【図９】
0003843574.tif 000010
【図１０】
0003843574.tif 000011
【図１１】
0003843574.tif 000012
【図１２】
0003843574.tif 000013
【図１３】
0003843574.tif 000014
【図１４】
0003843574.tif 000015
【図１５】
0003843574.tif 000016
【図１６】
0003843574.tif 000017
【図１７】
0003843574.tif 000018
【図１８】
0003843574.tif 000019
【図１９】
0003843574.tif 000020
【図２０】
0003843574.tif 000021
【図２１】
0003843574.tif 000022
【図２２】
0003843574.tif 000023
【図２３】
0003843574.tif 000024
【図２４】
0003843574.tif 000025
【図２５】
0003843574.tif 000026
【図２６】
0003843574.tif 000027
【図２７】
0003843574.tif 000028
【図２８】
0003843574.tif 000029
【図２９】
0003843574.tif 000030
【図３０】
0003843574.tif 000031
【図３１】
0003843574.tif 000032