(57)【要約】【課題】文書の修正箇所を、修正者の意図および組版校正作業に効率的な形で表示可能な、書籍掲載文書の差異検出表示システムおよびプログラムを提供する。【解決手段】モニタ２２と、修正前文書データ記憶手段２７と、修正後文書データ記憶手段２８と、修正前の文書データと修正後の文書データとを比較し、文書の所定範囲における差異の有無を検出し、且つ差異があった所定範囲中の全体の文字数に対して差異があった文字数の割合である変更率を算出する差異検出手段３１と、検出された変更率が閾値未満であれば所定範囲の変更、閾値以上であれば所定範囲の追加または削除として差異内容を判定する差異内容判定手段３４と、検出された修正箇所および判定された差異内容を記憶する結果記憶手段２９と、結果記憶手段２９に記憶された修正箇所および差異内容をモニタ２２に表示可能なデータとして作成する差異表示作成手段３０を具備する。【選択図】図１
2011090524.tif 000002
【特許請求の範囲】
【請求項１】
モニタと、
書籍掲載文書と同じ内容の文書データを記憶する修正前文書データ記憶手段と、
該修正前文書データ記憶手段に記憶されている文書データの内容を修正した場合に、修正された文書データを修正後文書データとして記憶する修正後文書データ記憶手段と、
前記修正前文書データ記憶手段に記憶されている修正前の文書データと、前記修正後文書データ記憶手段に記憶されている修正後の文書データとを比較し、文書の所定範囲における差異の有無を検出し、且つ差異があった所定範囲中の全体の文字数に対して差異があった文字数の割合である変更率を算出する差異検出手段と、
差異検出手段によって検出された変更率が、予め定めた所定の閾値未満であれば所定範囲の変更、閾値以上であれば所定範囲の追加または削除として差異内容を判定する差異内容判定手段と、
前記差異検出手段によって検出された修正箇所および前記差異内容判定手段によって判定された差異内容を記憶する結果記憶手段と、
該結果記憶手段に記憶された修正箇所および差異内容を前記モニタに表示可能なデータとして作成する差異表示作成手段を具備することを特徴とする書籍掲載文書の差異検出表示システム。
【請求項２】
前記差異内容判定手段における変更率の値を変更可能に設けられていることを特徴とする請求項１記載の書籍掲載文書の差異検出表示システム。
【請求項３】
前記文書の所定範囲として段落および表で構成された文書を含むことを特徴とする請求項１または請求項２記載の書籍掲載文書の差異検出表示システム。
【請求項４】
前記差異表示作成手段は、修正前文書データおよび修正後文書データ内に表が存在する場合、表を構成する行を分離した状態に変換して差異表示データを作成することを特徴とする請求項１〜請求項３のうちのいずれか１項記載の書籍掲載文書の差異検出表示システム。
【請求項５】
比較対象となる文書データが階層構造化されたものである場合、
前記差異検出手段は、
文書データの中の文章段落、表、表の行、および表のセルの中の文字列の比較では文字の差異に基づいて変更率を算出し、文字以外の属性要素については差異があっても変更率の算出には算入しないようにすることを特徴とする請求項１〜請求項４のうちのいずれか１項記載の書籍掲載文書の差異検出表示システム。
【請求項６】
モニタと、
書籍掲載文書と同じ内容の文書データを記憶する修正前文書データ記憶手段と、
修正前文書データ記憶手段に記憶されている文書データの内容を修正した場合に、修正された文書データを修正後文書データとして記憶する修正後文書データ記憶手段とを具備するコンピュータに読み取り可能に設けられたプログラムであって、
前記修正前文書データ記憶手段に記憶されている修正前の文書データと、前記修正後文書データ記憶手段に記憶されている修正後の文書データとを比較し、文書の所定範囲における差異の有無を検出し、且つ差異があった所定範囲中の全体の文字数に対して差異があった文字数の割合である変更率を算出する機能と、
算出された変更率が、予め定めた所定の閾値未満であれば所定範囲の変更、閾値以上であれば所定範囲の追加または削除として差異内容を判定する機能と、
検出された修正箇所および判定された差異内容を記憶する機能と、
記憶された修正箇所および差異内容を前記モニタに表示可能なデータとして作成する機能とを実現させるようにコンピュータを動作させることを特徴とする書籍掲載文書の差異検出表示プログラム。
【請求項７】
前記変更率の値を変更可能に設けられていることを特徴とする請求項６記載の書籍掲載文書の差異検出表示プログラム。
【請求項８】
前記文書の所定範囲として段落および表で構成された文書を含むことを特徴とする請求項６または請求項７記載の書籍掲載文書の差異検出表示プログラム。
【請求項９】
修正前文書データおよび修正後文書データ内に表が存在する場合、表を構成する行を分離した状態に変換して差異表示データを作成することを特徴とする請求項６〜請求項８のうちのいずれか１項記載の書籍掲載文書の差異検出表示プログラム。
【請求項１０】
比較対象となる文書データが階層構造化されたものである場合、
文書データの中の文章段落、表、表の行、および表のセルの中の文字列の比較では文字の差異に基づいて変更率を算出し、文字以外の属性要素については差異があっても変更率の算出には算入しないように機能することを特徴とする請求項６〜請求項９のうちのいずれか１項記載の書籍掲載文書の差異検出表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワープロソフトや組版装置に接続されたシステムによって作成された書籍掲載文書の差異を検出して表示させるシステムおよびプログラムに関する。
【背景技術】
【０００２】
書籍の出版においては、印刷する文章等を書籍の体裁に整えるため、電子的に組版を行う組版装置が広く用いられている（例えば、特許文献１）。
以下、組版装置を用いた従来の印刷手順の概略を説明する。
組版装置によって組版が完了すると、組版された内容を印刷する。この印刷物（ゲラ）を見ながら執筆者や校正作業者が校正を行う。校正の結果、変更箇所がある場合には、執筆者や校正作業者は赤字で印刷物に変更内容を記入する。その後、組版装置の操作者は、赤字で記入された印刷物を見て組版装置に変更内容を入力する。
そして、このような校正は数回行われ、校正した内容が最終的に印刷物として印刷される。
【０００３】
また、近年のパソコンの普及により、執筆者もパソコンにインストールされているワープロソフトを使用して原稿を執筆することが一般的になってきている。
書籍の改訂の際には、組版装置で生成された組版データをワープロソフトデータ（本明細書および特許請求の範囲では単にワープロデータと称する場合がある）に変換することにより、執筆者はワープロソフトで修正することが可能になる。
電子的に作成されたワープロデータを電子的に比較し、「どこがどのように変更されたか」ということを執筆直後、あるいは組版を行う前に知ることができれば、飛躍的な効率化が図れる。
【０００４】
上述の電子的な比較に関して、従来の文書比較ソフトでは、段落すなわち文の先頭から改行までを１つのデータの固まりとみなし、一箇所でも差異があれば、段落全体が異なると判定する方法が一般的であり、文書中の助詞や助動詞、箇条書き段落の項番号等が変更されただけでも、段落全体が削除後、追加されたかのように表示されてしまう。
また、文書中に表が含まれていた場合、仮に表の大きさを変更した場合、表全体が削除後、追加されたかの様に表示されてしまう。
これは、表部分のデータは、表内の段落および文字と、表の大きさおよび罫線等の情報を記憶するデータとに分かれるのが一般的であり、従来の文書比較ソフトでは後者の差異を検出していることに起因する。
このように、訂正箇所が、執筆者の意図と異なる形で表示され、かつ差異の範囲が広くなる傾向がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−５８６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、従来は印刷物を見て校正する方式が一般的であったが、この方式では大量の紙を使わざるをえないので、資源保護・環境保護の観点からして好ましくないという課題がある。また、印刷物を使った校正では、熟練した校正作業者でないと校正しづらく、容易に校正が行えないという課題もある。さらに、印刷物に校正内容を手書きで記入していたので、記入する人の字が汚い場合などは校正内容を判別することが困難になると言う課題もある。
【０００７】
なお、図１０に、修正前文書と修正後文書に対して、従来の文書比較ソフトでどのように表示されるかと、修正者が意図する表示内容を示す。
このように、複数段落からなる文書の差異を調べ、新旧対照形式にて表示する際は、段落が追加されたのか、削除されたのか、変更されたのかを識別することが重要となる。変更された段落は、変更前と変更後を同列に表示する必要があるからである。
例えば、複数段落からなる文書において句読点等の訂正を行うような、全段落に軽微な変更があった場合は、従来の文書比較ソフトでは全ての段落が削除後、追加されたように表示されてしまう。このような場合は、執筆者の意図もしくは組版工程での修正作業においては、変更であるほうが望ましい。
このため、従来の文書比較ソフトでは、比較結果が執筆者の意図と異なる形で表示され、修正箇所の確認には使用できないという課題がある。
【０００８】
仮に、文書の比較結果が、執筆者の意図した修正内容に近い表示内容であれば、その表示結果を従来の赤字修正指示の代わりに利用できることが可能となる。
その後の組版装置での訂正作業の範囲、および訂正箇所の校正作業の範囲が特定され、飛躍的な効率化が図れるものと考えられる。
【０００９】
すなわち、本発明は上記課題を解決すべくなされ、その目的とするところは、文書の修正箇所を、修正者の意図および組版校正作業に効率的な形で表示可能な、書籍掲載文書の差異検出表示システムおよびプログラムを提供することにある。 
【課題を解決するための手段】
【００１０】
本発明にかかる書籍掲載文書の差異検出表示システムによれば、モニタと、書籍掲載文書と同じ内容の文書データを記憶する修正前文書データ記憶手段と、該修正前文書データ記憶手段に記憶されている文書データの内容を修正した場合に、修正された文書データを修正後文書データとして記憶する修正後文書データ記憶手段と、前記修正前文書データ記憶手段に記憶されている修正前の文書データと、前記修正後文書データ記憶手段に記憶されている修正後の文書データとを比較し、文書の所定範囲における差異の有無を検出し、且つ差異があった所定範囲中の全体の文字数に対して差異があった文字数の割合である変更率を算出する差異検出手段と、差異検出手段によって検出された変更率が、予め定めた所定の閾値未満であれば所定範囲の変更、閾値以上であれば所定範囲の追加または削除として差異内容を判定する差異内容判定手段と、前記差異検出手段によって検出された修正箇所および前記差異内容判定手段によって判定された差異内容を記憶する結果記憶手段と、該結果記憶手段に記憶された修正箇所および差異内容を前記モニタに表示可能なデータとして作成する差異表示作成手段を具備することを特徴としている。
この構成を採用することで、差異内容判定手段によって、文書の所定範囲が、追加または削除されたか、変更されたか、修正無しであるかのいずれかに決定できる。このため、修正された文書データの差異が、修正者の意図に近い形で表示可能であり、修正箇所の確認が容易且つ迅速に行える。
また、組版装置での訂正作業の範囲がわかりやすく表示されるので、飛躍的な効率化が図れ、かつ、修正（校正）内容が正しいかどうかの確認が容易且つ迅速に行える。
なお、文書データとは、書籍に掲載される文書のデータのことであり、特定のデータ形式の文書に限定するものではない。
【００１１】
また、前記差異内容判定手段における変更率の値を変更可能に設けられていることを特徴としてもよい。
これによれば、例えば、１段落が箇条書きのように比較的短い文字で構成されている場合、変更率の値が高いと、別段落として認識されてしまうが、低い変更率の値を指定することで、追加、削除、変更の判定を操作することが可能である。
また、段落中の修正が広範囲であることが事前に分かっている場合、低い変更率の値を指定することで、追加、削除、変更の判定を操作することが可能である。
したがって、文書の修正度合いを考慮して差異を比較、表示させることが可能であり、修正箇所の確認が容易且つ迅速に行える。
【００１２】
さらに、前記文書の所定範囲として段落および表で構成された文書を含むことを特徴としてもよい。
これによれば、例えば、表の大きさ等の属性値のみを変更した場合、表に含まれる文字の並びが、指定した変更率以上一致していれば、その表は変更されたものとして認識し、表示する。
したがって、表の大きさや罫線等、属性の値を変更した場合でも、修正した属性のみを変更箇所として表示することが可能であり、修正箇所の確認が容易且つ迅速に行える。
【００１３】
なお、前記差異表示作成手段は、修正前文書データおよび修正後文書データ内に表が存在する場合、表を構成する行を分離した状態に変換して差異表示データを作成することを特徴としてもよい。
この構成によれば、表内の行やセル単位での変更箇所や変更内容がわかりやすくなる。
【００１４】
また、比較対象となる文書データが階層構造化されたものである場合、前記差異検出手段は、文書データの中の文章段落、表、表の行、および表のセルの中の文字列の比較では文字の差異に基づいて変更率を算出し、文字以外の属性要素については差異があっても変更率の算出には算入しないようにすることを特徴としてもよい。
この構成によれば、例えばＸＭＬ等の構造化された文書では、文字サイズが指定されていた場合、<font size=”8pt”>・・該当文字・・</font>のようにタグで表現される。このとき、タグの部分の変更を変更率の算出には含めないようにし、文字の部分のみの変更率を算出することができる。このため、文字の修正箇所がわかりやすくなり、且つ文字の修正箇所と属性要素の修正箇所とを分離して検出し、表示させることが可能となる。
【発明の効果】
【００１５】
本発明にかかる書籍掲載文書の差異検出表示システムおよびプログラムによれば、文書の修正箇所を、修正者の意図に近い形で確認することが可能になり、組版作業、校正作業を容易に行うことができる。
【図面の簡単な説明】
【００１６】
【図１】書籍掲載文書の差異検出表示システムの構成を示すブロック図である。
【図２】エディットグラフの説明図である。
【図３】文書を比較する差分アルゴリズムの説明図である。
【図４】エディットグラフ上の移動経路から変更箇所を判定する場合の説明図である。
【図５】階層化した文書データに対して差分アルゴリズムを適用する場合の説明図である。
【図６】文字列の変更率を取り入れて文書データの変更判定をする場合の説明図である。
【図７】比較要素の組み合わせを確定することで差異箇所を特定する場合の説明図である。
【図８】比較結果の表示データの概略例を示した図である。
【図９】比較結果の表示データの具体例を示した図である。
【図１０】従来の文書比較ソフトでの比較結果の表示例を示す説明図である。
【発明を実施するための形態】
【００１７】
（全体構成）
以下、本発明の好適な実施の形態を添付図面を用いて説明する。
本発明は、図１に示すような全体構成であり、本実施形態の差異検出表示システムＡは、通常のパーソナルコンピュータ、またはワークステーション等のコンピュータＢによって構成される。
なお、本実施形態では、文書データの一例として、ワープロデータについての差異検出表示について説明する。
【００１８】
このようなコンピュータＢは、ＣＰＵおよびメモリを含み、ソフトウェアプログラムを実行することによって各制御を行うことが可能な制御部２０と、キーボードおよびマウス等のポインティングデバイスから構成され、操作者が制御部２０に対して、情報を入力する入力手段２１と、液晶ディスプレイやＣＲＴ等の制御部２０からの信号に応じて情報を表示可能なモニタ２２と、ソフトウェアプログラムや各種データを記憶する記憶手段２３とを備えている。記憶手段２３の記憶媒体は、主にハードディスク等が挙げられる（以下、記憶手段２３をハードディスク２３と称する場合がある）。
【００１９】
また、コンピュータＢは、データ通信の可能なＬＡＮカード、またはＬＡＮポート等の通信手段２４により、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のネットワークＮを介して他のコンピュータＣや電子機器等と通信可能に接続されている。
そこで、このＬＡＮのシステム利用者が、他のコンピュータＣのキーボードおよびマウス等の入力手段２５より情報を入力し、入力された情報をコンピュータＣの通信手段１９を介してコンピュータＢへ送信し、この情報をコンピュータＢで処理させ、コンピュータＢでの処理結果を他のコンピュータＣのモニタ２６に表示させるような制御も可能となる。
【００２０】
コンピュータＢのハードディスク２３には、差異検出表示プログラムＰ１が記憶されている。
差異検出表示プログラムＰ１がハードディスク２３から読み出され、制御部２０によって実行されることにより、本発明の書籍掲載文書の変更率を考慮した電子的な差異検出表示システムＡを構成する各手段（機能）が実現される。
ここで、差異検出表示プログラムＰ１によって、実現される機能として、修正前のワープロデータと修正後のワープロデータとを比較して差異を検出し、且つ差異があった範囲の変更率を算出する差異検出手段３１と、検出された差異検出箇所を予め設定された変更率の閾値に基づいて追加・削除または変更のいずれかに判定する差異内容判定手段３４と、修正箇所および差異内容をモニタ２２に表示可能なデータとして作成する差異表示作成手段３２がある。さらに、差異検出表示プログラムＰ１によって、実現される機能としては、変更率の値を変更する変更率変更手段３３がある。
【００２１】
また、本実施形態における変更率とは、比較対象文書における所定範囲（例えば段落）において、所定範囲中に含まれる全文字数に対し、どの程度の文字数が修正されていれば所定範囲全体が追加または削除であると判定するかどうかの判定基準となる値である。具体的には、所定範囲における全文字数に対して変更された文字数の割合である。
例えば、予め変更率の閾値を７０％と設定しておき、１００文字の段落に対し、差異検出を行ったとする。この段落中５０文字が修正されていると検出された場合、変更率は５０％である。この場合、５０％の変更率は閾値（７０％）未満であるから、この１００文字の段落の差異は「変更」であると判定される。さらに１００文字中７５文字が修正されている場合には、７５％の変更率は閾値（７０％）以上であるからこの段落の差異は「追加」または「削除」であると判断される。
【００２２】
また、コンピュータＢのハードディクス３３は、修正前ワープロデータＦ１を記憶する修正前ワープロデータ記憶手段２７（特許請求の範囲でいう修正前文書データ記憶手段）、修正後ワープロデータＦ２を記憶する修正後ワープロデータ記憶手段２８（特許請求の範囲でいう修正後文書データ記憶手段）、差異検出手段３１によって検出された差異箇所を記憶するとともに差異内容判定手段３４によって判定された差異箇所が追加・削除または変更のいずれかであるかの差異内容を記憶する結果記憶手段２９、差異表示作成手段３２によって作成された表示データを記憶する差異表示データ記憶手段３０を実装する。
また、ハードディスク３３には、変更率の閾値が記憶される変更率閾値記憶手段３５が構成されている。
【００２３】
差異表示データ記憶手段３０に記憶された差異表示データは、２つのワープロデータの差異を比較としてモニタ２２、あるいはネットワークＮを介して他のコンピュータＣのモニタ３６に表示される。
【００２４】
なお、コンピュータＢにはワープロソフト（ワープロ機能を有するソフトウェア）が搭載され、コンピュータＢの入力手段２１が操作されることによって、修正前ワープロデータ記憶手段２７に記憶されている修正前ワープロデータＦ１を修正することもできる。
しかし、本実施形態では、コンピュータＢは組版装置（図示せず）と通信可能に接続された印刷会社内のコンピュータを想定しているので、コンピュータＢでワープロデータを修正するのではなく、修正後ワープロデータＦ２を修正者から記憶媒体やネットワークを介して受け取って修正後ワープロデータ記憶手段２８に記憶させるようにする。
【００２５】
（差異検出手段）
差異検出手段３１は、修正前ワープロデータＦ１と修正後ワープロデータＦ２の差異箇所を検出する手段として、２つのワープロデータの差分を求めている。本実施形態では、この差分を求める方式として、公知のアルゴリズムであるＯ（ＮＰ）方式を採用している。
【００２６】
Ｏ（ＮＰ）方式は、文書の比較を２つの文書の最長共通部分と最少編集距離を求める問題であると捉え、エディットグラフと呼ばれるグラフを用いて２つの文書を比較し、その差分を差異箇所として検出する。
エディットグラフは、比較する文書の要素をそれぞれＸ軸（縦軸）、およびＹ軸（横軸）に配置し、各要素から縦方向、または横方向に直線を延ばして格子状に形成したグラフである。エディットグラフは、その左上が原点座標（０，０）であり、位置座標（Ｘ，Ｙ）の下方向をＸ軸の正方向、右方向をＹ軸の正方向とする。
【００２７】
Ｏ（ＮＰ）方式は、原点（０，０）からグラフのＸ軸、Ｙ軸に配置した要素の比較を開始し、現在の座標（Ｘ，Ｙ）に対してＸ軸とＹ軸を＋１した座標（Ｘ＋１，Ｙ＋１）、つまり現在の座標から右斜め下にあたる座標の要素を比較する。ただし、現在座標がＸ座標の最大値（Ｍ）の座標（Ｍ，Ｙ）、あるいはＹ座標の最大値（Ｎ）の座標（Ｘ，Ｎ）まで移動した場合、右斜め下にあたる座標は存在しないため、Ｙ軸のみ移動した座標（Ｍ，Ｙ＋１）、またはＸ軸のみ移動した座標（Ｘ＋１，Ｎ）を比較の対象とする。
比較対象である座標の要素が一致する場合、現在の座標（Ｘ，Ｙ）を比較した座標（Ｘ＋１，Ｙ＋１）へ移動し、比較対象である座標の要素が一致しなければ、現在の座標（Ｘ，Ｙ）をＸ軸方向に＋１した座標（Ｘ＋１，Ｙ）とＹ軸方向に＋１した座標（Ｘ，Ｙ＋１）の双方に分けて移動する。
【００２８】
また、比較座標の要素が一致した場合、現在座標（０，０）は座標（Ｘ＋１，Ｙ＋１）に移動した後、さらに次の座標（Ｘ＋２，Ｙ＋２）を続けて比較する。したがって、現在座標は要素が一致している間、対角線上を連続移動することになる。
【００２９】
上記の動作は、Ｘ軸の最大値（Ｍ）とＹ軸の最大値（Ｎ）が交わる座標（Ｍ，Ｎ）に到達するまで繰り返し実行する。そして、エディットグラフ上の原点（０，０）から最大座標（Ｍ，Ｎ）まで移動した経路が、２つの文書の最長共通部分と最小編集距離にあたり、この移動経路を解析することで、比較文書の差異の有無と差異箇所の検出が可能となる。
【００３０】
次に、エディットグラフを用いた文書比較の例を図３に基づいて説明する。
まず最初に、差異検出手段３１は、文字列Ａの「あいうえ」をＸ軸上に配置し、文字列Ｂの「あうえお」をＹ軸に配置したエディットグラフを作成する。
差異検出手段３１は、原点座標（０，０）から対角線上に＋１移動した座標（１，１）の文字を比較する。比較座標（１，１）に該当する文字は、Ｘ軸が「あ」であり、Ｙ軸が「あ」であるため、差異検出手段３１は比較した要素を「一致」と判定し、現在座標を比較した座標（１，１）へ移動する。
【００３１】
比較要素が一致したので、引き続き座標（１，１）から対角線上に＋１移動した座標（２，２）の文字を比較する。比較座標（２，２）に該当する文字はＸ軸が「い」であり、Ｙ軸が「う」であるため、差異検出手段３１は比較した要素を「不一致」と判定し、現在座標をＸ軸に＋１した座標（２，１）とＹ軸に＋１した座標（１，２）の双方へ移動する。
【００３２】
座標（１，２）に移動した現在座標は、対角線上に＋１移動した座標（２，３）の文字を比較する。比較座標（２，３）に該当する文字はＸ軸が「い」、Ｙ軸が「え」であるため、差異検出手段３１は比較した要素を「不一致」と判定し、現在座標からＸ軸に＋１した座標（２，２）とＹ軸に＋１した座標（１，３）の双方へ移動する。
【００３３】
次に、座標（２，１）に移動した現在座標は、対角線上に＋１移動した座標（３，２）の文字を比較する。比較座標（３，２）に該当する文字はＸ軸が「う」であり、Ｙ軸が「う」であるため、差異検出手段３１は比較した要素を「一致」と判定し、現在座標を比較座標（３，２）へ移動する。そして、引き続き座標（３，２）から対角線上に＋１移動した座標（４，３）の文字を比較する。比較座標（４，３）に該当する文字はＸ軸が「え」、Ｙ軸が「え」であるため、差異箇所検出手段３１は比較した要素を「一致」と判定し、現在座標を比較座標（４，３）へ移動する。
【００３４】
比較座標が一致したので、引き続き座標（４，３）から対角線上に＋１移動した座標（５，４）の文字を比較しようとするが、Ｘ軸の最大値は４であるため、それ以上の座標を参照することはできない。そのため、Ｙ軸のみを＋１した座標（４，４）の文字を比較する。比較座標（４，４）に該当する文字はＸ軸が「え」、Ｙ軸が「お」であるため、差異検出手段３１は比較した要素を「不一致」と判定し、現在座標（４，３）からＸ軸に＋１した座標（５，３）とＹ軸に＋１した座標（４，４）の双方へ移動する。ただし、先程と同様にＸ軸の最大値は４であるため、結果として現在座標は、Ｙ軸に＋１した座標（４，４）のみに移動する。
【００３５】
こうして、現在座標がエディットグラフのＸ軸の最大値とＹ軸の最大値である座標（４，４）に到達したため、エディットグラフ上の座標移動は終了する。そして、エディットグラフ上の原点（０，０）から最大座標（４，４）までの移動経路が、文字列Ａと文字列Ｂの最長共通部分と最少編集距離に該当する。
【００３６】
（差異検出方法）
差異検出手段３１は、エディットグラフ上の移動経路を解析することで、比較した文書の差異の有無と差異箇所の検出を実現する。
【００３７】
（差異の有無）
差異の有無は、エディットグラフ上の移動経路とエディットグラフの対角線を比較することで判定する。移動経路がエディットグラフの対角線と一致する場合は、比較対象が「一致」することを意味し、エディットグラフの対角線と一致しない場合は、比較対象が「不一致」であることを意味する。
【００３８】
（差異箇所の検出）
差異箇所は、エディットグラフ上の座標間の移動経路から検出する。エディットグラフの座標間をＸ軸、またはＹ軸に沿って移動する経路が差異箇所であり、この経路を通過して到達する座標のＸ軸、Ｙ軸の要素が「追加」、または「削除」されたことを意味する。また、エディットグラフの座標間を対角線上（斜め）に移動する経路は一致箇所であり、この経路を通過して到達する座標のＸ軸、Ｙ軸の要素が「同じ」ことを意味する。
なお、追加または削除の判定は、Ｘ軸、Ｙ軸のどちらかを文書（軸）を基準にするかによって異なり、Ｘ軸を基準とした場合は、Ｘ軸に沿って移動した経路を「削除」、Ｙ軸に沿って移動した経路を「追加」と判定し、Ｙ軸を基準とした場合は、Ｘ軸に沿って移動した経路を「追加」、Ｙ軸に沿って移動した経路を「削除」と判定する。
【００３９】
ただし、移動経路がＸ軸、あるいはＹ軸に沿って移動した後、移動した軸とは逆方向の軸に同じ移動量分だけ移動した場合は、その区間を追加、または削除とは判定せずに「変更」と判定する。この変更判定を用いることで、差異箇所を見やすい形で表示することが可能となる。
【００４０】
以下、実際の差異内容の判定方法を図４の例に基づいて説明する。
まず、差異検出手段３１は、原点（０，０）からエディットグラフ上の移動経路に従って座標（１，１）に移動する。この座標間の移動は対角線上を移動するため、差異検出手段３１は、文字列Ａの「あ」と文字列Ｂの「あ」を「一致」と判定する。
【００４１】
続いて、座標（１，２）に移動するが、この座標間の移動はＹ軸に沿って移動しているため、差異検出手段３１は、文字列Ａの「い」と文字列Ｂの「あ」を「追加」、あるいは「削除」と判定する。そして、次の座標（２，３）への移動は、対角線上であるため、文字列Ａの「い」と文字列Ｂの「い」を「一致」と判定する。
【００４２】
さらに座標（２，３）は座標（３，３）へ移動し、そこから座標（３，４）へ移動する。この間の移動経路をそのまま解釈すると、文字列Ａの「う」と文字列Ｂの「え」は、それぞれを「追加」、または「削除」と判定するが、座標（２，３）からＸ軸に＋１移動した後、続いてＹ軸に＋１移動しているため、前述の変更判定の条件に合致している。そのため、文字列Ａの「う」と文字列Ｂの「え」は「変更」と判定する。
【００４３】
（階層化した文書データへの比較アルゴリズムの適用）
階層化したデータ構造を持つ文書データを比較する場合は、各階層のデータに対してＯ（ＮＰ）方式の比較アルゴリズムを適用し、階層単位に文書データの差異を検出する。
【００４４】
以下、図５の例を用いて階層化した文書データの比較方法を説明する。
修正前ワープロデータは、１〜３のノンブルを持つページを３ページ有しており、１ページ目は１〜３までの３つの段落を配置している。そして、１ページ目の段落１には「ああああ」、段落２には「いいい」、段落３には「うううう」の文字列が記述されている。
また、修正後ワープロデータも１〜３のノンブルを持つページを３ページ有しており、１ページ目はＡ〜Ｄまでの４つの段落を配置している。そして、１ページ目の段落Ａには「ああああ」、段落Ｂには「おお」、段落Ｃには「いいい」、段落Ｄには「うううう」の文字列が記述されている。
【００４５】
この修正前ワープロデータと修正後ワープロデータを比較するため、差異検出手段３１は、修正前ワープロデータのページと修正後ワープロデータのページをＸ軸とＹ軸に配置したファイル比較用のエディットグラフを作成する。この例では、修正前ワープロデータのページをエディットグラフのＸ軸に配置し、修正後ワープロデータのページをエディットグラフのＹ軸に配置する。
【００４６】
差異検出手段３１は、このファイル比較用エディットグラフに基づいて、座標（１，１）の比較を開始するが、この座標（１，１）は、修正前ワープロデータの１ページ目と修正後ワープロデータの１ページ目に該当するため、差異の判定には該当するページの比較が必要となる。
そこで、差異検出手段３１は、新たにページ比較用のエディットグラフを作成し、Ｘ軸には修正前ワープロデータの１ページ目の段落１〜３を配置し、Ｙ軸には修正後ワープロデータの１ページ目の段落Ａ〜Ｄを配置する。
【００４７】
差異検出手段３１は、このページ比較用エディットグラフに基づいて、座標（１，１）の比較を開始するが、この座標（１，１）は、修正前ワープロデータの１ページ目の段落１と修正後ワープロデータの１ページ目の段落Ａに該当するため、差異を判定するには該当する段落の比較が必要となる。
そのため、差異検出手段３１は、今度は段落比較用のエディットグラフを作成し、Ｘ軸には修正前ワープロデータの１ページ目の段落１にあたる文字列「ああああ」を配置し、Ｙ軸には修正後ワープロデータの１ページ目の段落Ａにあたる文字列「ああああ」を配置する。
【００４８】
差異検出手段３１は、この段落比較用のエディットグラフに基づいて段落１と段落Ａを比較したが、段落比較用エディットグラフ上の移動経路からは差異が検出されなかったので、段落１と段落Ａを「一致」と判定し、その判定結果を結果記憶手段２９に記憶する。
【００４９】
ページ比較用のエディットグラフに戻った差異検出手段３１は、結果記憶手段２９に記憶された段落１と段落Ａの比較結果が「一致」であるため、現在座標（０，０）を座標（１，１）へ移動し、続けて次の座標（２，２）を比較する。座標（２，２）は、修正前ワープロデータの１ページ目の段落２と修正後ワープロデータの１ページ目の段落Ｂに該当するため、差異検出手段３１は、再び、段落比較用のエディットグラフを作成し、Ｘ軸に修正前ワープロデータの１ページ目の段落２にあたる文字列「いいい」を配置し、Ｙ軸に修正後ワープロデータの１ページ目の段落Ｂにあたる文字列「おお」を配置する。
【００５０】
差異検出手段３１が、この比較用エディットグラフに基づいて段落２と段落Ｂを比較すると、段落比較用エディットグラフ上の移動経路から差異が検出されたため、段落２と段落Ｂを「不一致」と判定し、その判定結果を結果記憶手段２９に記憶する。
【００５１】
再び、ページ比較用エディットグラフに戻った差異検出手段３１は、結果記憶手段２９に記憶された段落２と段落Ｂの比較結果に従ってページ比較用エディットグラフの座標を移動する。
【００５２】
このような動作を繰り返すことで、最終的に修正前ワープロデータの１ページ目と修正後ワープロデータの１ページ目の比較結果が、ページ比較用エディットグラフ上に移動経路として出現する。
この移動経路を解析すると差異が検出されるため、差異検出手段３１は、修正前ワープロデータの１ページ目と修正後ワープロデータの１ページ目を「不一致」と判定し、その判定結果を結果記憶手段２９に記憶する。
【００５３】
ファイル比較用のエディットグラフに戻った差異検出手段３１は、結果記憶手段２９に記憶されたページ比較の結果が「不一致」であるため、現在座標（０，０）を座標（１，０）と座標（０，１）へそれぞれ移動する。
そして、差異検出手段３１は、移動した座標（０，１）と座標（１，０）は、次の座標（２，１）と座標（１，２）を比較するため、それぞれの座標に該当するページ比較用エディットグラフを作成し、前述した比較と同様な処理を繰り返し実行する。
【００５４】
以上のように、階層構造を持つ文書データを比較する場合は、それぞれの階層に対応したエディットグラフを作成し、その階層の差異判定は下層の比較結果に委ねられることになる。また、文書データの階層構造が多重化するほど、エディットグラフを用いた比較処理が繰り返し実行されることとなる。
【００５５】
（変更率に基づいた文書データの比較）
差異検出手段３１は、エディットグラフ上で移動した軸とは逆方向の軸に同じ移動量だけ移動した経路を「変更」と判定する。しかし、階層化したデータ構造を持つ文書データの比較では、満足する比較結果が得られない場合が生じる。
例えば、それぞれ一致する文字が存在しない２つの段落をこの判定方法で比較すると、エディットグラフの移動経路によっては「変更」と判定してしまう場合が発生する。一致箇所が無ければ、「追加」または「削除」と判定することが、より人間の判断に近いものであり、差異箇所の表示データも見やすい形で表示できる。
【００５６】
このため、階層化した文書データの比較では、特定の要素を比較する場合、エディットグラフ上の移動経路に基づいた変更判定を行わず、差異内容判定手段３４によって、下層要素の文字の変更率に基づいて変更判定を行う。
【００５７】
変更率は、所定範囲（本実施形態では、文章段落、表、表の行、表のセル等）の中で「差異があった要素（文字）数／比較要素（文字）の最大値」から差異検出手段３１が算出する。
差異内容判定手段３４は、この算出された変更率と変更率記憶手段３５にあらかじめ記憶されている閾値とを比較して修正内容の判定を行う。差異内容判定手段３４は、文字列の変更率が閾値以上であれば「追加または削除」と判定し、文字列の変更率が閾値未満であれば「変更」と判定する。
【００５８】
なお、本実施形態では階層構造化された文書データを比較する場合、「文章段落」、「表」、「表の行」、「表のセル」の比較では変更率を用いた変更判定（差異内容判定手段による判定）を適用し、それ以外の要素の比較では移動経路に基づいた変更判定（差異検出手段による判定）を適用する。
【００５９】
また、変更判定の基準となる変更率記憶手段３５に記憶した閾値は、操作者によって０〜１００％までの範囲で任意の数値に変更することが可能であり、差異検出表示プログラムＰ１の実行にあたり、変更率変更手段３３によって閾値を変更する。これにより、操作者が望む変更率に従った文書比較が可能となる。
【００６０】
以下、図６の例を用いて、変更率に基づいた修正内容の判定の方法を説明する。
修正前ページは、１〜４までの４つの段落を有しており、段落１は「ああああ」、段落２は「いいい」、段落３は「ううう」、段落４は「ええええ」が記述されている。
また、修正後ページは、Ａ〜Ｄまでの４つの段落を有しており、段落Ａは「あああか」、段落Ｂは「いいきき」、段落Ｃは「ううう」、段落Ｄは「えけけけ」が記述されている。
【００６１】
変更率変更手段３３で変更率記憶手段３５の閾値を０％に設定すると、差異内容判定手段３４は、文字列の変更率が０％の文章段落を「一致」と判定し、それ以上の文章段落を全て「追加または削除」と判定する。この場合、差異内容判定手段３４は、変更率が０％の段落３の「ううう」と段落Ｃの「ううう」を同じ段落とし、それ以外の閾値に満たない文章段落は全てを追加、あるいは削除された段落とする。
【００６２】
変更率変更手段３３で変更率記憶手段３５の閾値を５０％に設定すると、差異内容判定手段３４は、変更率が０％の文章段落を「一致」、変更率が５０％未満の文章段落を「変更」、変更率が５０％以上の文章段落を「追加または削除」と判定する。この場合、差異内容判定手段３４は、変更率が０％の段落３の「ううう」と段落Ｃの「ううう」を同じ段落とし、変更率が２５％の段落１の「ああああ」と段落Ａの「あああか」を変更された段落とし、それ以外の閾値に満たない文章段落は全て追加、あるいは削除された段落とする。
【００６３】
変更率変更手段３３で変更率記憶手段３５の閾値を７０％に設定すると、差異内容判定手段３４は、変更率が０％の文章段落を「一致」、変更率が７０％未満の文章段落を「変更」、変更率が７０％以上の文章段落を「追加または削除」と判定する。この場合、差異内容判定手段３１は、変更率が０％の段落３の「ううう」と段落Ｃの「ううう」を同じ段落とし、変更率が２５％の段落１の「ああああ」と段落Ａの「あああか」、変更率が５０％の段落２の「いいいい」と段落Ｂの「いいきき」を共に変更された段落とし、変更率が２５％の段落４の「ええええ」と段落Ｄの「えけけけ」を追加、あるいは削除された段落とする。
【００６４】
変更率変更手段３３で変更率記憶手段３５の閾値を１００％に設定すると、差異箇所検出手段３１は、文字列の変更率が０％の文章段落を「一致」と判定し、変更率が１００％未満の文章段落を全て「変更」と判定する。この場合、差異箇所検出手段３１は、変更率が１００％の段落３の「ううう」と段落Ｃの「ううう」を同じ段落とし、変更率が２５％の段落１の「ああああ」と段落Ａの「あああか」、変更率が５０％の段落２の「いいいい」と段落Ｂの「いいきき」、変更率が７５％の段落４の「ええええ」と段落Ｄの「えけけけ」を変更された段落とする。
なお、「変更」と判定された箇所は「一致」と判定された箇所と同様にエディットグラフの対角線上を斜めに移動する。
【００６５】
（差異箇所の特定）
差異検出手段３１は、文書の比較結果として差異箇所を表示するため、文書中の差異箇所を特定する必要がある。このため、差異検出手段３１は、ページを構成する上位階層からワープロデータを比較し、その階層を構成する要素の組み合わせを確定してから順次下位階層の比較を実行する。
【００６６】
以下、図７の例に基づいて差異箇所の特定方法を説明する。
修正前ページは、１〜４までの４つの段落を有しており、段落１は「あいうえ」、段落２は「かかか」、段落３は「さしす」、段落４は「たちつて」の文字列が記述されている。
また、変更後ページは、Ａ〜Ｃまでの３つの段落を有しており、段落Ａは「あいえ」、段落Ｂは「さしす」、段落Ｃは「たつちて」の文字列が記述されている。
【００６７】
差異検出手段３１は、修正前ページと修正後ページのページを比較するため、ページ比較用のエディットグラフを作成し、Ｘ軸に変更前ページの段落１〜４を配置し、Ｙ軸に変更後ページの段落Ａ〜Ｃを配置する。そして、ページ比較用エディットグラフに基づいて、座標（１，１）を比較するが、この座標の差異を判定するためには、座標（１，１）の要素である段落１と段落Ａの比較が必要となる。そこで、差異箇所検出手段３１は、Ｘ軸に段落１の文字列「あいうえ」、Ｙ軸に段落Ａの文字列「あいえ」を配置した段落比較用のエディットグラフを作成して、それぞれの段落を比較する。
【００６８】
段落１と段落Ａを比較した結果、エディットグラフ上の移動経路より差異が検出されたが、文字列の変更率は２５％であり、変更率記憶手段４３に記憶された閾値の５０％を下回るため、差異箇所検出手段３１は、段落１と段落Ａの比較結果を「変更」として結果記憶手段２９に記憶する。
【００６９】
ページ比較用エディットグラフに戻った差異検出手段３１は、結果記憶手段２９に記憶した比較結果に基づき、座標（１，１）を「変更」と判定し、現在座標（０，０）を座標（１，１）へ移動する。
【００７０】
このような動作を繰り返し実行することで、ページ比較用エディットグラフ上にページの比較結果にあたる移動経路が出現する。この移動経路を差異検出手段３１が解析することで、修正前ページと修正後ページの段落の組み合わせが確定し、結果として段落レベルの差異箇所が特定される。
【００７１】
差異検出手段３１は、こうして確定した段落の組み合わせに従って段落の比較を実行する。
１番目の組み合わせとなる段落１と段落Ａを比較するため、差異箇所検出手段３１は、Ｘ軸に段落１の文字列「あいうえ」、Ｙ軸に段落Ａの文字列「あいえ」を配置した段落比較用エディットグラフを作成して段落を比較する。この比較結果から検出された段落比較用エディットグラフ上の移動経路を差異箇所検出手段３１が解析することで、段落１と段落Ａの文字の組み合わせが確定し、結果として文字レベルでの差異箇所が特定される。この例では、変更前にあたる文字「う」が削除された文字として結果記憶手段２９に記憶する。
【００７２】
２番目の組み合わせは、変更後に該当する段落が無いので、差異箇所検出手段３１は、段落比較を実行せず、この段落を削除された段落として、結果記憶手段２９に記憶する。
【００７３】
３番目の組み合わせとなる段落１と段落Ａを比較するため、差異検出手段３１は、Ｘ軸に段落３の文字列「さしす」、Ｙ軸に段落Ｂの文字列「さしす」を配置した段落比較用エディットグラフを作成して段落を比較する。この比較結果から検出された段落比較用エディットグラフ上の移動経路を解析すると全ての文字が一致しているので、修正前の段落３と修正後の段落Ｂは変更がない段落として、結果記憶手段２９に記憶する。
【００７４】
４番目の組み合わせとなる段落４と段落Ｃを比較するため、差異検出手段３１は、Ｘ軸に段落４の文字列「たちつて」、Ｙ軸に段落Ｃの文字列「たつちて」を配置した段落比較用エディットグラフを作成して段落を比較する。この比較結果から検出された段落比較用エディットグラフ上の移動経路を解析すると修正前の文字「ち」と修正後の文字「つ」、変更前の文字「つ」と変更後の文字「ち」のそれぞれがＹ軸に＋１移動した直後にＸ軸に＋１移動しているため、変更された文字として、結果記憶手段２９に記憶する。
【００７５】
このように、上位階層の要素を比較した後、比較要素の組み合わせを確定し、その組み合わせ結果に基づいて順次下位階層を比較することで、階層毎の差異箇所が特定され、差異箇所の特定と表示が可能となる。
【００７６】
（比較結果の表示）
比較結果の表示の概略を図８に示す。
制御部２０の差異表示作成手段３２は、結果記憶手段２９に記憶されている差異箇所および差異内容に基づいて差異表示データを作成する。
具体的には、差異表示作成手段３２は、修正前ワープロデータと修正後ワープロデータとを同じページ内で並べた上で、差異箇所と差異内容が明示されるような表示データを作成する。
【００７７】
差異表示作成手段３２は、差異箇所については、差異が無い他の箇所とは異なる色を付したり、他の箇所と異なるフォントを使用したり、下線を引いたりすることにより、差異箇所であることを明確になるように表示させる。図では差異箇所に下線を引いた例を示している。
【００７８】
差異表示作成手段３２は、差異内容が「変更」の場合には、修正前の行と修正後の行とが同じ行に位置するように表示データを作成する。また差異内容が「追加」の場合には、修正前の該当する位置に該当する行数分だけ隙間をあけ、そのあけた隙間と同じ位置に修正後の行を配置する。さらに、差異内容が「削除」の場合には、修正後の該当する位置の行を該当する行数分だけあける。
図８では、矢印の中に変更、追加、削除の別を記載しているが、後述するように実際にはこのような矢印や変更、追加、削除の別を記載はしないで表示させる。
【００７９】
さらに具体的な比較結果の表示データについて、図９を用いて説明する。
差異表示作成手段３２は、結果記憶手段２９に記憶された比較結果および差異内容に基づいて表示データを作成する。
【００８０】
ここで例示する比較の結果は、差異のある修正前のページと修正後のページを並べた新旧対照形式で表示し、段落、または表の行単位に揃えて表示する。
【００８１】
また、差異表示作成手段３２は、差異箇所を特定できるよう表示データを作成する。
差異が検出された段落、または表の文字は文字色を黒色で表示し、差異のない段落、または表の文字は文字色を灰色で表示する。また、実際に追加、削除、変更された箇所の文字は文字色をオレンジ色で表示する。
さらに、判定された差異内容に基づき、文字の追加、削除によって、修正前ページの段落と修正後ページの段落の文字数に差が生じる箇所は、文字列中に「□」を追加することで、できるだけ修正前ページの段落と修正後ページの段落に文字ずれが起きないようにする。なお、このようにシステムによって追加した文字は、文字色を緑色で表示する。
【００８２】
差異表示作成手段３２は、文字とは異なり、表示画面上では表現できない情報に差異がある場合、この箇所の背景色を水色で表示する。該当箇所が文章段落であれば文字の背景色、表であればセルの背景色、図形や画像であればそれぞれの枠の背景色を水色で表示する。なお、追加された表のセル、図形、または画像の枠はセルや枠の背景色をオレンジ色で表示する。
【００８３】
また、差異表示作成手段３２は、表示画面上では表現できない差異を検出した箇所の背景色を水色に色付けする以外に詳細な差異の情報を別途表示可能とする。この詳細な差異情報の表示は、新旧対照表の左枠にある「＋」、または「−」マークによって表示を切り替え、「＋」マークを選択すると画面上で表示できない差異が存在する段落、または表の行の下段に詳細な差異内容を表示し、「−」マークを選択すると表示している詳細な差異内容を非表示にする。
【００８４】
なお、表示データは、差異表示作成手段３２によってデータ変換される場合、表示可能なデータ形式としてＨＴＭＬ形式などを採用するとよい。
また、差異が検出された箇所の色付けは、上述した例に限られるわけではない。
【００８５】
また、ワープロデータとは、特定のワープロソフトのデータに限定するものではなくても良い。
なお、文書データとしては、ＸＭＬ等のマークアップ言語等で記載された構造化された文書を対象としても良い。さらに、１段落毎に改行を付加されたテキストデータであってもよい。ただしテキストデータの場合は、表部分の表現は限定されたものとなる。
【符号の説明】
【００８６】
１９  通信手段
２０  制御部
２１  入力手段
２２  モニタ
２３  記憶手段（ハードディスク）
２４  通信手段
２５  入力手段
２６  モニタ
２７  修正前ワープロデータ記憶手段
２８  修正後ワープロデータ記憶手段
２９  結果記憶手段
３０  差異表示データ記憶手段
３１  差異検出手段
３２  差異表示作成手段
３３  変更率変更手段
３５  変更率記憶手段
Ａ  差異検出表示システム
Ｂ  コンピュータ
Ｃ  コンピュータ
Ｎ  ネットワーク
Ｆ１  修正前ワープロデータ
Ｆ２  修正後ワープロデータ
Ｐ１  差異検出表示プログラム
【図１】
2011090524.tif 000003
【図２】
2011090524.tif 000004
【図３】
2011090524.tif 000005
【図４】
2011090524.tif 000006
【図５】
2011090524.tif 000007
【図６】
2011090524.tif 000008
【図７】
2011090524.tif 000009
【図８】
2011090524.tif 000010
【図９】
2011090524.tif 000011
【図１０】
2011090524.tif 000012