(57)【特許請求の範囲】
【請求項１】
文書記述言語を用いて記述された構造化文書に対して削除、挿入、または変更などの編集を施す処理装置と、該編集前後の構造化文書を格納する記憶装置を備えた構造化文書処理システムにおいて、
前記処理装置により前記編集前後の両構造化文書を比較し、両構造化文書の一致しない文字列を差分として抽出する構造化文書差分抽出方法であって、
前記処理装置は、
前記記憶装置から編集前後の構造化文書を読み出す文書読込みステップと、
前記読込みステップで取得された両構造化文書の論理的な構造を、あらかじめ設定された比較基準に基づいて解析する構造解析ステップと、
前記構造解析ステップの結果に従い、前記比較基準を満たすように両構造化文書間の差分を抽出する差分抽出ステップ
を実行することを特徴とする構造化文書差分抽出方法。
【請求項２】
請求項１記載の構造化文書差分抽出方法において、
前記比較基準を論理構造を示すタグと、該タグに対して適用する基準の種類とを対応付けたテーブルとすることを特徴とする構造化文書差分抽出方法。
【請求項３】
請求項２記載の構造化文書差分抽出方法において、
前記比較基準における、タグに対して適用する基準の種類として、
（１）タグ自身が一致したときのみその中身を比較するタグ、
（２）比較する際、そのタグの中身の差異を無視するタグ、
（３）論理的な意味として同じタグの組、
（４）中身を比較しないタグの組、
の４つの基準の種類が定義されていることを特徴とする構造化文書差分抽出方法。
【請求項４】
請求項１乃至請求項３のいずれかの請求項記載の構造化文書差分抽出方法において、
前記処理装置は、
前記構造解析ステップの結果として前記編集前後の両構造化文書の構造を表す文書木を作成し、
まず該文書木のノード単位で両構造化文書間の差分の抽出を行い、
次に一致しなかったノード同士に対して、文字単位で差分を抽出する
ことを特徴とする構造化文書差分抽出方法。
【請求項５】
前記処理装置は、
請求項４記載の構造化文書差分抽出方法において、
前記構造解析ステップの結果として前記編集前後の両構造化文書の構造を表す文書木を作成する際に、前記比較基準におうじて、文書木のノードの割当て方法を変える
ことを特徴とする構造化文書差分抽出方法。
【請求項６】
文書記述言語を用いて記述された構造化文書に対して削除、挿入、または変更などの編集を施す処理装置と、該編集前後の構造化文書を格納する記憶装置を備えた構造化文書処理システムにおいて、
前記処理装置により前記編集前後の両構造化文書を比較し、両構造化文書の一致しない文字列を差分として抽出する構造化文書差分抽出装置であって、
前記処理装置は、
前記記憶装置から編集前後の構造化文書を読み出す文書読込み手段と、
前記読込み手段で取得された両構造化文書の論理的な構造を、あらかじめ設定された比較基準に基づいて解析する構造解析手段と、
前記構造解析手段の結果に従い、前記比較基準を満たすように両構造化文書間の差分を抽出する差分抽出手段
を有することを特徴とする構造化文書差分抽出装置。
【請求項７】
請求項６記載の構造化文書差分抽出装置において、
前記比較基準を論理構造を示すタグと、該タグに対して適用する基準の種類とを対応付けたテーブルとすることを特徴とする構造化文書差分抽出装置。
【請求項８】
請求項２記載の構造化文書差分抽出装置において、
前記比較基準における、タグに対して適用する基準の種類として、
（１）タグ自身が一致したときのみその中身を比較するタグ、
（２）比較する際、そのタグの中身の差異を無視するタグ、
（３）論理的な意味として同じタグの組、
（４）中身を比較しないタグの組、
の４つの基準の種類が定義されていることを特徴とする構造化文書差分抽出装置。
【請求項９】
請求項６乃至請求項８のいずれかの請求項記載の構造化文書差分抽出装置において、
前記構造解析手段は、前記編集前後の両構造化文書の構造を表す文書木を作成し、
前記差分抽出手段は、まず該文書木のノード単位で両構造化文書間の差分の抽出を行い、次に一致しなかったノード同士に対して、文字単位で差分を抽出する
ことを特徴とする構造化文書差分抽出装置。
【請求項１０】
請求項９記載の構造化文書差分抽出装置において、
前記構造解析手段は、前記編集前後の両構造化文書の構造を表す文書木を作成する際に、前記比較基準におうじて、文書木のノードの割当て方法を変更する
ことを特徴とする構造化文書差分抽出装置。
【請求項１１】
複数の要素と該要素の構造情報を含む構造化文書を入力する入力装置と、該入力された構造化文書を格納する記憶装置と、該記憶装置から前記構造化文書を読み出して処理する処理装置とを備えた構造化文書処理システムにおいて、
前記処理装置は、
前記入力装置により入力され、前記記憶装置に格納された第１の構造化文書と第２の構造化文書を前記記憶装置から読み出す読み出しステップと、
前記第１および第２の構造化文書に含まれる前記構造及び前記要素を比較して一致する構造および要素を判定する比較ステップと、
一致しなかったものを差分として抽出する抽出ステップとを実行し、
前記比較ステップでは、比較する構造の少なくともいずれかが比較対象除外構造として定義されていた場合、構造およびその要素が同じでも、その要素が一致しないと判定する
ことを特徴とする構造化文書差分抽出方法。
【請求項１２】
複数の要素と該要素の構造情報を含む構造化文書を入力する入力装置と、該入力された構造化文書を格納する記憶装置と、該記憶装置から前記構造化文書を読み出して処理する処理装置とを備えた構造化文書処理システムにおいて、
前記入力装置により入力され、前記記憶装置に格納された第１の構造化文書と第２の構造化文書を前記記憶装置から読み出す読み出しステップと、
前記処理装置は、
前記第１および第２の構造化文書に含まれる前記構造及び前記要素を比較して一致する構造および要素を判定する比較ステップと、
一致しなかったものを差分として抽出する抽出ステップとを実行し、
前記比較ステップでは、比較する構造がともに同一の構造を表すグループとして予め定義されていた場合、構造が異なっていても要素が同じであれば、その要素が一致すると判定する
ことを特徴とする構造化文書差分抽出方法。
【請求項１３】
複数の要素と該要素の構造情報を含む構造化文書を入力する入力装置と、該入力された構造化文書を格納する記憶装置と、該記憶装置から前記構造化文書を読み出して処理する処理装置とを備えた構造化文書処理システムにおいて、
前記処理装置は、
前記入力装置により入力され、前記記憶装置に格納された第１の構造化文書と第２の構造化文書を前記記憶装置から読み出す読み出しステップと、
前記第１および第２の構造化文書に含まれる前記構造及び前記要素を比較して一致する構造および要素を判定する比較ステップと、
一致しなかったものを差分として抽出する抽出ステップとを実行し、
前記比較ステップでは、比較する構造がともに比較対象から外すペアとして予め定義されている場合、要素が同じであっても、構造およびその要素が一致しないと判定する
ことを特徴とする構造化文書差分抽出方法。
【請求項１４】
複数の要素と該要素の構造情報を含む構造化文書を入力する入力装置と、該入力された構造化文書を格納する記憶装置と、該記憶装置から前記構造化文書を読み出して処理する処理装置とを備えた構造化文書処理システムにおいて、
前記処理装置は、
前記入力装置により入力され、前記記憶装置に格納された第１の構造化文書と第２の構造化文書を前記記憶装置から読み出す読み出しステップと、
前記第１および第２の構造化文書に含まれる前記構造及び前記要素を比較して一致する構造および要素を判定する比較ステップと、
一致しなかったものを差分として抽出する抽出ステップとを実行し、
前記比較ステップでは、比較する構造がともに内容を無視する構造として予め定義されていた場合、構造が同じであれば要素が異なっていてもその要素が一致すると判定する
ことを特徴とする構造化文書差分抽出方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、電子ファイルとして記憶されている構造化文書間の差分文字列を抽出することができるワープロ等の文書処理装置における構造化文書差分文字列抽出方法及び装置に関する。
【０００２】
【従来の技術】
構造化文書とは、文書の論理的な構造の情報、例えば”文書中のこの部分は章である”、”この部分はタイトルである”といった情報が埋め込まれた文書のことである。
また、文書間の差分抽出とは、文書を構成する段落、行、文字等の要素を単位に、これらの要素がもっともよく一致する組合せを検出し、一致しない要素を差分として抽出することである。例えば、差分抽出の対象とする二つの文書を「ＡＢＣＤＥＦＧ」と「ＡＣＤＡＥＦＨ」とした場合、要素をＡ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈとして二つの文書を要素単位で比較した時、もっともよく一致する組合せとして”ＡＣＤＥＦが対応する”と検出し、また差分として”Ｂが削除”、”ＡがＤの後に挿入”、”ＧがＨに変更”と抽出することである。
従来の差分抽出方式には、特開平２−２５５９６４号公報などがあり、句読点、行、単語、文字などを単位に比較を行っている。この方式を構造化文書に適用すると、文書中に埋め込まれた論理的な構造を表す文字列も、文書中の他の文字列と同様に比較を行う。
【０００３】
【発明が解決しようとする課題】
しかしながら、構造化文書を通常の文書と同様の手段で差分抽出した場合、結果が文書の論理構造と合わず文書編集者にとって適切でない場合がある。次に例を示し説明する。
【０００４】
（例１）
差分抽出において文書の論理構造が合わないもの同士を対応付けてしまい、文書編集者にとって適切でない抽出結果となる場合を、図３の構造化文書を例にとり説明する。
図３の構造化文書はＳＧＭＬ（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述されたもので、＜Ａ＞と＜／Ａ＞で挟まれた文字列が、論理構造Ａに属していることを意味する。すなわち、図３（ａ）の＜氏名＞と＜／氏名＞で挟まれた文字列“平成太郎”が、論理構造“氏名”に属する。
また、この論理構造を表すマークのことをタグと呼び、＜Ａ＞と＜／Ａ＞はそれぞれ開始タグ、終了タグと呼ぶ。
従来の手法により、図３の（ａ），（ｂ）二つの構造化文書の差分文字列を抽出した結果を図４に示す。
図４（ｂ）は、図３（ａ）の構造化文書を基準として図３（ｂ）の構造化文書との差分を取った場合の差分文字列の抽出結果であり、図４（ａ）は、図３（ｂ）の構造化文書を基準として図３（ａ）の構造化文書との差分を取った場合の差分文字列の抽出結果である。
図４を見ると、＜氏名＞の“平成”と＜発信日＞の“平成”が差分として抽出されていない。これは、“平成”同士が一致し、対応付けられてしまったことによる。しかし、この論理構造の合わない“平成”の対応付けは、文書編集者にとって意味がないことは明らかである。
【０００５】
（例２）
文書の構造の挿入が起きたために、差分抽出において文書の構造にまたがって文字列を対応付けてしまい、文書編集者にとって適切でない抽出結果となる場合を、図５の構造化文書を例にとり説明する。図５は、（ａ）の第１章の前に、章を一つ挿入したものが（ｂ）となっている。
従来の手法により、図５の（ａ），（ｂ）二つの構造化文書の差分文字列を抽出した例を図６示す。
図６は図４の場合と同様であり、図６（ｂ）が図５（ａ）を基準として図５（ｂ）との差分を取った場合の差分文字列の抽出結果であり、図６（ａ）が図５（ｂ）を基準として図５（ａ）との差分を取った場合の差分文字列の抽出結果である。
図６を見ると、（ａ）の第１章は（ｂ）の第２章と同じであるにもかかわらず、（ａ）の第１章が、（ｂ）の第１章と第２章にまたがって対応している。これも、文書編集者に対しては適切でない。
ここで、図５（ａ）における「構造化文書」と同じ文字列が図５（ｂ）には２度現われているため、図６（ｂ）では、最初の「構造化文書」は一致とされ、２度目の「構造化文書」は不一致とされ、差分として抽出される。このことは、以下の差分抽出において共通した取扱いである。
【０００６】
（例３）
文書の論理的な意味は同じであるのに、論理構造を表すマークが異なるためその中身同士が対応付けられず、文書編集者にとって適切でない抽出結果となる場合を、図７の構造化文書を例にとり説明する。
図７では、文書の論理的な意味は項目であるのに、最初に出てくる項目だけ＜初項目＞というタグを付けている。
従来の手法により、図７の（ａ），（ｂ）二つの構造化文書の差分文字列を抽出した例を図８示す。
図８は図４の場合と同様であり、図８（ｂ）が図７（ａ）を基準として図７（ｂ）との差分を取った場合の差分文字列の抽出結果であり、図８（ａ）が図７（ｂ）を基準として図７（ａ）との差分を取った場合の差分文字列の抽出結果である。
図８を見ると、＜初項目＞同士が対応付けられ、その中身の文字列が比較されていることが分かる。文書編集者にとっては＜初項目＞と＜項目＞の論理的な意味は等しく、タグの中身を優先して対応させるべきである。
そこで、構造化文書間の差分を抽出する場合、構造化文書の論理的な意味や構造を考慮した比較が必要となるが、従来の方式では、論理的な構造を表す文字列も文書中の他の文字列と同様に比較を行うため、実現できなかった。
【０００７】
本発明の目的は、構造化文書の論理的な意味や構造を考慮し、文書編集者の感覚に合った適切な構造化文書の差分を抽出することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明は、
記憶装置と処理装置を備え、前記記憶装置に削除、挿入、または変更などの編集を実施する前後の構造化文書を記憶し、前記処理装置により前記編集前後の両構造化文書の一致しない文字列を差分として抽出する構造化文書差分抽出方法において、
構造化文書を文書編集して前記記憶装置に記憶し、前記記憶装置から読み出した編集前後の各構造化文書の論理構造を、編集前後の各構造化文書の論理構造に対して設定された比較基準に基づき構造化文書解析し、該構造化文書解析の結果に従い、前記比較基準を満たすよう構造化文書間の差分を抽出するようにしている。
前記比較基準を、論理構造を示すタグと該タグに対する基準の種類からなるテーブルとするようにしている。
さらに、前記比較基準におけるタグに対する基準の種類として、
（１）タグ自身が一致したときのみその中身を比較するタグ、
（２）比較する際、そのタグの中身の差異を無視するタグ、
（３）論理的な意味として同じタグの組、
（４）中身を比較しないタグの組、
の４つの基準の種類を定義しておくようにしている。
さらに、前記構造化文書解析により文書の構造を表わす文書木を作成し、該文書木のノード単位で構造化文書間の差分の抽出を行ない、一致しなかったノード同士に対して文字単位で差分を抽出するようにしている。
さらに、前記構造化文書解析によって文書の構造を表す文書木を作成する際に、前記比較基準に応じて、文書木のノードの割り当て方法を変えるようにしている。
また、記憶装置と処理装置を備え、前記記憶装置に削除、挿入、または変更などの編集を実施する前後の構造化文書を記憶し、前記処理装置により前記編集前後の両構造化文書の一致しない文字列を差分として抽出する構造化文書差分抽出装置において、
前記処理装置は、構造化文書を編集して前記記憶装置に記憶する文書編集手段と、前記記憶装置から読み出した編集前後の各構造化文書の論理構造を、編集前後の各構造化文書の論理構造に対して設定された比較基準に基づき構造化文書解析する構造化文書解析手段と、該構造化文書解析の結果に従い、前記比較基準を満たすよう構造化文書間の差分を抽出する構造化文書差分抽出手段を備えるようにしている。
前記比較基準を、論理構造を示すタグと該タグに対する基準の種類からなるテーブルとするようにしている。
さらに、前記比較基準におけるタグに対する基準の種類として、
（１）タグ自身が一致したときのみその中身を比較するタグ、
（２）比較する際、そのタグの中身の差異を無視するタグ、
（３）論理的な意味として同じタグの組、
（４）中身を比較しないタグの組、
の４つの基準の種類を定義しておくようにしている。
さらに、前記構造化文書解析手段は文書の構造を表わす文書木を作成し、前記構造化文書差分抽出手段は作成された文書木のノード単位で構造化文書間の差分の抽出を行ない、一致しなかったノード同士に対して文字単位で差分を抽出するようにしている。
さらに、前記構造化文書解析手段は文書の構造を表す文書木を作成する際に、前記比較基準に応じて、文書木のノードの割り当てを変更するようにしている。
【０００９】
【作用】
上記手段により、本発明においては、構造化文書を編集し、編集された構造化文書の論理構造を構造化文書解析装置で解析し、その構造に応じて差分抽出の際の比較基準を設け、比較基準を満たすように差分文字列を抽出するので、論理構造に応じた、編集者の感覚に合う差分が抽出される。
また、文書木のノード単位で差分抽出を行い、一致しなかったノード同士を文字単位で差分を抽出することで、構造にまたがった差分も抽出されない。
【００１０】
【実施例】
以下、本発明の実施例を説明する。
本実施例の構成を図１に示す。
図１において、１０１はＣＰＵ、１０２は端末装置、１０３は文書を記憶するための記憶装置であり、ＣＰＵ１０１には、文書の編集を行う文書編集プログラム１０４と、構造化文書を木構造に変換する構造化文書解析プログラム１０５と、構造化文書間の一致しない部分を差分として抽出する構造化文書差分抽出プログラム１０６と、差分抽出での比較基準を格納する比較基準テーブル１０７が設定されている。
本実施例は、構造化文書としてＳＧＭＬ文書を例にとる。ＳＧＭＬは、マーク付けされた構造化文書としてＩＳＯの世界標準として定められた文書記述言語のことである。また、ＳＧＭＬ文書はＤＴＤ（文書型定義）によって、その論理構造が予め定義される。
【００１１】
本実施例の具体的な処理手順を、図２のフローチャートを用いて説明する。
手順２０１：
文書編集プログラム１０４で、構造化文書の編集を行う。
手順２０２：
比較対象であるＳＧＭＬ文書のＤＴＤに対応した、比較基準テーブル１０７を読み込む。
対応する比較基準テーブルが存在しない場合、テーブルの作成及び登録を行う。
この比較基準テーブルは、次の４つの比較基準に該当するタグのテーブルである。
（１）恒等タグ：タグ自身が一致したときのみ、その中身（開始タグと終了タグの間に挾まれる文字）を比較するタグである。
（２）無視タグ：比較する際、そのタグの中身の差異を無視するタグである。
（３）同等タグ：論理的な意味として同じタグの組である。
（４）比較禁止タグ：中身を比較しないタグの組である。
【００１２】
手順２０３：
差分抽出プログラム１０６が呼び出されたら、比較基準テーブル１０７を参照しながら、構造化文書を構造化文書解析プログラム１０５によって解析し、文書木を作成する。
このとき、文書木の各ノードに割り当てる要素は次のルールを用いて行う。
（ルール１）：タグは１つのノードに割り当てる。
（ルール２）：開始タグと終了タグの間に挟まれた文字列は、開始タグの子ノードに割り当てる。
（ルール３）：終了タグは、開始タグの子ノードに割り当てる。
（ルール４）：恒等タグで挟まれた文字列は、開始タグ、終了タグを含めて１つのノードに割り当てる。
（ルール５）：無視タグおよび無視タグで挟まれた文字列は、ノードに割り当てない。
（ルール６）：同等タグは、同じタグ名に変換して、ノードに割り当てる。
【００１３】
手順２０４：
文書木のノードを単位に差分抽出を行う。このとき、比較するタグ同士が比較禁止タグであれば、そのノード以下（子ノード）は比較しない。
手順２０５：
一致しなかったノードのみ、今度は文字単位で差分抽出を行う。ただし、恒等タグのノードはノードの先頭文字であるタグが一致した場合のみ、文字単位の比較を行う。手順２０４で比較しなかった無視タグもこの段階で比較を行う。
手順２０６：
端末装置１０２に差分結果の表示を行う。
【００１４】
（処理例１）
実施例の具体的な処理例として、恒等タグをもつ場合を図３の文書例で説明する。
手順２０１：
文書編集プログラム１０４で、構造化文書の編集を行う。図３の（ａ）から図３の（ｂ）を編集したとする。
手順２０２：
比較対象であるＳＧＭＬ文書のＤＴＤに対応した比較基準テーブル１０７を読み込む。
対応する比較基準テーブルが存在しない場合、テーブルの作成及び登録を行う。
図３からは、例えば図９のような比較基準テーブルを作成する。すなわち、
＜氏名＞および＜発信日＞を恒等タグとして定義し、タグ同士が一致しない限り、文字列同士を対応させないという意味を持つ。
【００１５】
手順２０３：
差分抽出プログラム１０６が呼び出されたら、比較基準テーブル１０７を参照しながら、構造化文書を構造化文書解析プログラム１０５によって解析し、文書木を作成する。
実施例で説明したルールを適用すると、図３の文書（ａ），（ｂ）から、図９の比較基準テーブルを参照することにより、図１０の文書木（ａ），（ｂ）ができる。
図１０中の１００１、１００２は、（ルール４）によって、タグと中身の文字列が合わせて１つのノードに割り当てられている。
【００１６】
手順２０４：
文書木のノードを単位に差分抽出を行う。
ノードを単位に比較を行うため、恒等タグである＜氏名＞および＜発信日＞は、タグと中身の文字列が両者とも一致しない限り、対応付けられることはない。
この場合、タグが一致しないため、タグおよびその中身が差分として抽出される。
手順２０５：
一致しなかったノードのみ、今度は文字単位で差分抽出を行う。ただし、恒等タグのノードはノードの先頭文字であるタグが一致した場合のみ、文字単位の比較を行う。
【００１７】
手順２０６：
端末装置１０２に差分結果の表示を行う。
図３の文書（ａ）との文書（ｂ）の差分抽出を行った結果例を図１１に示す。
図１１（ｂ）は、図３（ａ）の構造化文書を基準として図３（ｂ）の構造化文書との差分を取った場合の差分文字列の抽出結果であり、図１１（ａ）は、図３（ｂ）の構造化文書を基準として図３（ａ）の構造化文書との差分を取った場合の差分文字列の抽出結果である。
図１１（ｂ）では、ノード１００１とノード１００２におけるタグ〈記号〉とタグ〈発信日〉が一致しないので、ノード１００２全体の「〈発信日〉平成６年１１月二十日〈／発信日〉が差分として抽出され、また、図３（ａ）には図３（ｂ）における「お元気ですか」の記載が無いため、「お元気ですか」が差分として抽出される。
【００１８】
以上の手順により差分抽出を行うと、タグが一致しないと中身を比較しても意味のないものを恒等タグとして登録しておけば、文書の論理構造が合わないもの同士を対応付けることがなくなり、編集者に対して、より適切な差分抽出結果を提示することが出来る。
【００１９】
（処理例２）
実施例の具体的な処理例の２番目として、恒等タグおよび無視タグをもつ場合、および構造のずれが起きている場合を図５の文書例で説明する。
手順２０１：
文書編集プログラム１０４で、構造化文書の編集を行う。図５の（ａ）から図５の（ｂ）を編集したとする。
【００２０】
手順２０２：
比較対象であるＳＧＭＬ文書のＤＴＤに対応した、比較基準テーブル１０７を読み込む。
対応する比較基準テーブルが存在しない場合、テーブルの作成及び登録を行う。
図５の例では、例えば、図１２のような比較基準テーブルを作成する。すなわち、＜著者名＞を恒等タグとして定義する。この場合、前述したように、タグ同士が一致した場合のみ、文字列同士を比較する。また、＜章番号＞を無視タグとして定義する。この場合、章番号の違いは無視する（差分抽出に影響を与えない）。
【００２１】
手順２０３：
差分抽出プログラム１０６が呼び出されたら、比較基準テーブル１０７を参照しながら、ＳＧＭＬ文書を構造化文書解析プログラム１０５によって解析し、文書木を作成する。
実施例で説明したルールを適用すると、図５の文書（ａ），（ｂ）から、図１２の比較基準テーブルを参照することにより、図１３の文書木（ａ），（ｂ）ができる。無視タグである＜章番号＞は、（ルール５）によって、ノードとして割り当てられていない。
【００２２】
手順２０４：
文書木のノードを単位に差分抽出を行う。
無視タグはノードとして存在しないため、比較されず、全体の差分抽出に影響を与えることはない。
手順２０５：
一致しなかったノードのみ、今度は文字列単位で差分抽出を行う。手順２０４で比較しなかった無視タグおよびその中身もこの段階で比較を行う。
【００２３】
手順２０６：
端末装置１０２に差分結果の表示を行う。
図５の文書（ａ）との文書（ｂ）の差分抽出を行った結果例を図１４に示す。
図１４（ｂ）は、図５（ａ）の構造化文書を基準として図５（ｂ）の構造化文書との差分を取った場合の差分文字列の抽出結果であり、図１４（ａ）は、図５（ｂ）の構造化文書を基準として図５（ａ）の構造化文書との差分を取った場合の差分文字列の抽出結果である。
図５（ａ）の構造化文書を基準として図５（ｂ）の構造化文書との差分を取り、図１４（ｂ）の差分文字列の抽出結果を得た場合について説明すると、
手順２０４における文書木のノードを単位にした差分抽出では、図１３（ａ）、（ｂ）において、〈論文〉，〈／論文〉と、〈著者名〉平成太郎〈／著者名〉と、〈章〉構造化文書の差分抽出方式〈／章〉は一致と判断され、図１４（ｂ）では一致部分として表示されている。
次に、手順２０５では、手順２０４で〈章〉構造化文書の差分抽出方式〈／章〉は一致と判断されているので、この一致部分に係る〈章番号〉，〈／章番号〉は一致と判断され、「第２章」は「第１章」とは一致しないので差分として抽出され、図１４（ｂ）のように表示される。
また、手順２０４において、図１３（ｂ）の〈章〉構造化文書とは？〈／章〉は不一致と判断されるので、この〈章〉構造化文書とは？〈／章〉と、この不一致部分に係る〈章番号〉第１章〈／章番号〉は差分として抽出され、図１４（ｂ）のように表示される。
【００２４】
以上の手順により差分抽出を行うと、まず文書木のノード単位、すなわち構造単位で比較を行っているため、例えば、ノード１３０１と１３０２はこの時点で対応付けられる。よって、図６のような構造にまたがった対応付けは起こらないことが分かる。また、文書木のノード単位の比較では、無視タグの比較を行わないため、無視タグの中身の差異が全体の差分抽出に影響を与えないことが分かる。
【００２５】
（処理例３）
実施例の具体的な処理例の３番目として、恒等タグおよび同等タグをもつ場合を図７の文書例で説明する。
手順２０１：
文書編集プログラム１０４で、構造化文書の編集を行う。図７の（ａ）から図７の（ｂ）を編集したとする。
【００２６】
手順２０２：
比較対象であるＳＧＭＬ文書のＤＴＤに対応した、比較基準テーブル１０７を読み込む。
対応する比較基準テーブルが存在しない場合、テーブルの作成及び登録を行う。
図７の例では、例えば、図１５のような比較基準テーブルを作成する。すなわち、＜著者名＞を恒等タグとして定義する。この場合、タグ同士が一致しない限り、文字列同士を対応させない。また、＜項目＞と＜初項目＞を同等タグと定義する。この場合、＜項目＞と＜初項目＞は同じ論理構造とされる。
【００２７】
手順２０３：
差分抽出プログラム１０６が呼び出されたら、比較基準テーブル１０７を参照しながら、ＳＧＭＬ文書を構造化文書解析プログラム１０５によって解析し、文書木を作成する。
実施例で説明したルールを適用すると、図７の文書（ａ），（ｂ）から、図１５の比較基準テーブルを参照することにより、図１６の文書木（ａ），（ｂ）ができる。
図１６中の１６０１、１６０２、１６０３は（ルール６）によって、同じタグ名に変換されている。
【００２８】
手順２０４：
文書木のノードを単位に差分抽出を行う。同等タグは同じタグ名になっているため差分として抽出されない。
手順２０５：
一致しなかったノードのみ、今度は文字単位で差分抽出を行う。
【００２９】
手順２０６：
端末装置１０２に差分結果の表示を行う。
図７の文書（ａ）と（ｂ）の差分抽出を行った例を図１７に示す。
図１７（ｂ）は、図７（ａ）の構造化文書を基準として図７（ｂ）の構造化文書との差分を取った場合の差分文字列の抽出結果であり、図１７（ａ）は、図７（ｂ）の構造化文書を基準として図７（ａ）の構造化文書との差分を取った場合の差分文字列の抽出結果である。
図７（ａ）の構造化文書を基準として図７（ｂ）の構造化文書との差分を取り、図１７（ｂ）の差分文字列の抽出結果を得た場合について説明すると、
手順２０４における文書木のノードを単位にした差分抽出では、図１６（ａ）、（ｂ）において、〈論文〉，〈／論文〉と、〈著者名〉平成太郎〈／著者名〉と、〈項目〉構造化文書の差分抽出方式〈／項目〉は一致と判断され、図１７（ｂ）では一致部分として表示されている。
次に、手順２０５では、手順２０４で〈項目〉構造化文書とは？〈／項目〉は不一致と判断されているので、この不一致部分について文字単位で差分抽出を行ない、〈項目〉構造化文書とは？〈／項目〉は差分として抽出され、図１７（ｂ）のように表示される。
【００３０】
以上の手順により差分抽出を行うと、タグ名が違っても、文書の論理構造が同じもの同士は、対応付けられることが分かる。
【００３１】
（処理例４）
実施例の具体的な処理例の４番目として、比較禁止タグをもつ場合を図１８の文書例で説明する。
手順２０１：
文書編集プログラム１０４で、構造化文書の編集を行う。図１８の（ａ）から図１８の（ｂ）を編集したとする。
【００３２】
手順２０２：
比較対象であるＳＧＭＬ文書のＤＴＤに対応した、比較基準テーブル１０７を読み込む。
対応する比較基準テーブルが存在しない場合、テーブルの作成及び登録を行う。
図１８の例では、例えば、図１９のような比較基準テーブルを作成する。すなわち、＜差出人＞と＜受取人＞とは比較禁止タグとする。この場合、＜差出人＞と＜受取人＞は中身を比較しない。
【００３３】
手順２０３：
差分抽出プログラム１０６が呼び出されたら、比較基準テーブル１０７を参照しながら、ＳＧＭＬ文書を構造化文書解析プログラム１０５によって解析し、文書木を作成する。
実施例で説明したルールを適用すると、図１８の文書（ａ），（ｂ）から、図１９の比較基準テーブルを参照することにより、図２０の文書木（ａ），（ｂ）ができる。
【００３４】
手順２０４：
文書木のノードを単位に差分抽出を行う。＜差出人＞と＜受取人＞は比較するタグ同士が比較禁止タグなので、そのノード以下（子ノード）は比較しない。
手順２０５：
一致しなかったノードのみ、今度は文字単位で差分抽出を行う。
【００３５】
手順２０６：
端末装置１０２に差分結果の表示を行う。
図１８の文書（ａ）と（ｂ）の差分抽出を行った例を図２１に示す。
図２１（ｂ）は、図１８（ａ）の構造化文書を基準として図１８（ｂ）の構造化文書との差分を取った場合の差分文字列の抽出結果であり、図２１（ａ）は、図１８（ｂ）の構造化文書を基準として図１８（ａ）の構造化文書との差分を取った場合の差分文字列の抽出結果である。
図１８（ａ）の構造化文書を基準として図１８（ｂ）の構造化文書との差分を取り、図２１（ｂ）の差分文字列の抽出結果を得た場合について説明すると、
手順２０４における文書木のノードを単位にした差分抽出では、図１８（ａ）、（ｂ）において、〈メモ〉，〈／メモ〉は一致と判断され、〈受取人〉，〈／受取人〉とその中身である〈所属〉○○銀行〈／所属〉〈氏名〉平成太郎〈／氏名〉は、〈差出人〉と〈受取人〉とが比較禁止タグであるので差分とされ、〈本文〉こんにちは。お元気ですか？〈／本文〉は不一致と判断される。
次に、手順２０５では、手順２０４で〈本文〉こんにちは。お元気ですか？〈／本文〉は不一致と判断されているので、この不一致部分について文字単位で差分抽出を行ない、「お元気ですか？」が差分として抽出される。
この結果、図２１（ｂ）のように表示される。
【００３６】
以上の手順により差分抽出を行うと、中身を比較しないタグ同士を比較禁止タグとして登録しておけば、そのノード以下（子ノード）は比較されず、＜差出人＞と＜受取人＞の中身の所属や名前が対応付けられることがなく、編集者に対して、より適切な差分抽出結果を提示することが出来る。
【００３７】
【発明の効果】
構造化文書の論理構造に応じた比較基準を定義し、これを満たすよう差分を抽出することで、論理構造の意味に応じた、編集者の感覚に合う差分が抽出され、また、構造を表す文書木のノード単位で差分抽出を行い、一致しなかったノード同士を文字単位で差分を抽出することで、構造にまたがった差分も抽出されないため、編集者は論理構造にあった差分を把握することが出来、構造化文書の編集の効率があがる。
【図面の簡単な説明】
【図１】本発明の実施例の構成を示す図である。
【図２】本発明の実施例の処理手順を示す図である。
【図３】構造化文書の第一の例を示す図である。
【図４】構造化文書の第一の例を従来の方式で差分抽出した結果例を示す図である。
【図５】構造化文書の第二の例を示す図である。
【図６】構造化文書の第二の例を従来の方式で差分抽出した結果例を示す図である。
【図７】構造化文書の第三の例を示す図である。
【図８】構造化文書の第三の例を従来の方式で差分抽出した結果例を示す図である。
【図９】構造化文書の第一の例に対する比較基準テーブルの例を示す図である。
【図１０】構造化文書の第一の例から図９の比較基準テーブルに基づき作成した文書木を示す図である。
【図１１】構造化文書の第一の例を図９の比較基準テーブルに基づき差分抽出した結果例を示す図である。
【図１２】構造化文書の第二の例に対する比較基準テーブルの例を示す図である。
【図１３】構造化文書の第二の例から図１２の比較基準テーブルに基づき作成した文書木を示す図である。
【図１４】構造化文書の第二の例を図１２の比較基準テーブルに基づき差分抽出した結果例を示す図である。
【図１５】構造化文書の第三の例に対する比較基準テーブルの例を示す図である。
【図１６】構造化文書の第三の例から図１５の比較基準テーブルに基づき作成した文書木を示す図である。
【図１７】構造化文書の第三の例を図１５の比較基準テーブルに基づき差分抽出した結果例を示す図である。
【図１８】構造化文書の第四の例を示す図である。
【図１９】構造化文書の第四の例に対する比較基準テーブルの例を示す図である。
【図２０】構造化文書の第四の例から図１９の比較基準テーブルに基づき作成した文書木を示す図である。
【図２１】構造化文書の第四の例を図１９の比較基準テーブルに基づき差分抽出した結果例を示す図である。
【符号の説明】
１０１  ＣＰＵ
１０２  端末装置
１０３  記憶装置
１０４  文書編集プログラム
１０５  構造化文書解析プログラム
１０６  構造化文書差分抽出プログラム
１０７  比較基準テーブル
【図１】
0003724847.tif 000002
【図２】
0003724847.tif 000003
【図３】
0003724847.tif 000004
【図４】
0003724847.tif 000005
【図５】
0003724847.tif 000006
【図６】
0003724847.tif 000007
【図７】
0003724847.tif 000008
【図８】
0003724847.tif 000009
【図９】
0003724847.tif 000010
【図１０】
0003724847.tif 000011
【図１１】
0003724847.tif 000012
【図１２】
0003724847.tif 000013
【図１３】
0003724847.tif 000014
【図１４】
0003724847.tif 000015
【図１５】
0003724847.tif 000016
【図１６】
0003724847.tif 000017
【図１７】
0003724847.tif 000018
【図１８】
0003724847.tif 000019
【図１９】
0003724847.tif 000020
【図２０】
0003724847.tif 000021
【図２１】
0003724847.tif 000022