(57)【特許請求の範囲】
【請求項１】
文書の改訂を支援するために、コンピュータを、
改訂前または改訂中の文書を木構造で表現したデータとして読み込む手段と、
読み込んだ木構造データを記憶する手段と、
新たな改訂を指示したときに改訂のバージョンを一意に表す改訂ＩＤを生成する手段と、
記憶された木構造データの中のノードを指定して改訂する箇所と改訂の種別を指定する手段と、
指定したノードのデータを文章として編集する手段と、
編集した結果を当該ノードに記憶すると同時に編集前のノードのデータを当該ノードの内部に残す手段と、
前記編集した結果を記憶したノードに、前記改訂ＩＤと前記改訂の種別を付与する手段と、
特定の改訂ＩＤを指定して、該当する改訂ＩＤを持つ編集結果のノードのデータを削除すると共に、前記ノード内部に残した編集前のノードのデータを復帰することによって、編集結果の改訂が廃案されたものとして取り消す手段と、
特定の改訂ＩＤを指定して、該当する改訂ＩＤを持つ編集結果のノードから改訂ＩＤと前記改訂の種別、及び前記ノード内部に残した編集前のノードのデータを削除することによって、編集結果の改訂が成立したものとして反映させる手段と、
前記操作の結果変更された木構造データ全体を文書として保存する手段と、
として機能させるための文書改訂支援プログラム。
【請求項２】
請求項１に記載のプログラムにおいて、前記付与する手段が、
前記改訂ＩＤと改訂種別を表す属性の一対のデータを、改訂の順番に並べたリストとして付与することを特徴とする、
文書改訂支援プログラム。
【請求項３】
請求項１または２に記載のプログラムにおいて、更に、特定の改訂を指定して、前記改訂の内容及び前記改訂ＩＤと改訂種別を表す属性を用いて当該改訂箇所を明示した文書、または改訂を完全に反映した文書を生成する手段を有することを特徴とする、
文書改訂支援プログラム。
【請求項４】
請求項１、２または３に記載のプログラムにおいて、更に、特定の改訂を指定して、前記改訂ＩＤと改訂種別を表す属性及び前記保存された文書を用いて当該改訂箇所の改訂前後を対照する表、または前記改訂の内容を叙述した文書を生成する手段を有することを特徴とする、
文書改訂支援プログラム。
【請求項５】
文書の改訂を支援するために、コンピュータを、
改訂前または改訂中の文書を木構造で表現したデータとして読み込む手段と、
読み込んだ木構造データを記憶する手段と、
新たな改訂を指示したときに改訂のバージョンを一意に表す改訂ＩＤを生成する手段と、
記憶された木構造データの中のノードを指定して改訂する箇所と改訂の種別を指定する手段と、
指定したノードのデータを文章として編集する手段と、
編集した結果を当該ノードに記憶すると同時に編集前のノードのデータを当該ノードの内部に残す手段と、
前記編集した結果を記憶したノードに、前記改訂ＩＤと前記改訂の種別を付与する手段と、
特定の改訂ＩＤを指定して、該当する改訂ＩＤを持つ編集結果のノードのデータを削除すると共に、前記ノード内部に残した編集前のノードのデータを復帰することによって、編集結果の改訂が廃案されたものとして取り消す手段と、
特定の改訂ＩＤを指定して、該当する改訂ＩＤを持つ編集結果のノードから改訂ＩＤと前記改訂の種別、及び前記ノード内部に残した編集前のノードのデータを削除することによって、編集結果の改訂が成立したものとして反映させる手段と、
前記操作の結果変更された木構造データ全体を文書として保存する手段と、
として機能させるための文書改訂支援プログラムを記録したコンピュータ読み取り可能媒体。
【請求項６】
請求項５に記載の媒体において、前記付与する手段が、
前記改訂ＩＤと改訂種別を表す属性の一対のデータを、改訂の順番に並べたリストとして付与することを特徴とする、
文書改訂支援プログラムを記録したコンピュータ読み取り可能媒体。
【請求項７】
請求項５または６に記載の媒体において、更に、特定の改訂を指定して、前記改訂の内容及び前記改訂ＩＤと改訂種別を表す属性を用いて当該改訂箇所を明示した文書、または改訂を完全に反映した文書を生成する手段を有することを特徴とする、
文書改訂支援プログラムを記録したコンピュータ読み取り可能媒体。
【請求項８】
請求項５、６または７に記載のプログラムにおいて、更に、特定の改訂を指定して、前記改訂ＩＤと改訂種別を表す属性及び前記保存された文書を用いて当該改訂箇所の改訂前後を対照する表、または前記改訂の内容を叙述した文書を生成する手段を有することを特徴とする、
文書改訂支援プログラムを記録したコンピュータ読み取り可能媒体。
【請求項９】
文書の改訂を支援する装置であって、
改訂前または改訂中の文書を木構造で表現したデータとして読み込む手段と、
読み込んだ木構造データを記憶する手段と、
新たな改訂を指示したときに改訂のバージョンを一意に表す改訂ＩＤを生成する手段と、
記憶された木構造データの中のノードを指定して改訂する箇所と改訂の種別を指定する手段と、
指定したノードのデータを文章として編集する手段と、
編集した結果を当該ノードに記憶すると同時に編集前のノードのデータを当該ノードの内部に残す手段と、
前記編集した結果を記憶したノードに、前記改訂ＩＤと前記改訂の種別を付与する手段と、
特定の改訂ＩＤを指定して、該当する改訂ＩＤを持つ編集結果のノードのデータを削除すると共に、前記ノード内部に残した編集前のノードのデータを復帰することによって、編集結果の改訂が廃案されたものとして取り消す手段と、
特定の改訂ＩＤを指定して、該当する改訂ＩＤを持つ編集結果のノードから改訂ＩＤと前記改訂の種別、及び前記ノード内部に残した編集前のノードのデータを削除することによって、編集結果の改訂が成立したものとして反映させる手段と、
前記操作の結果変更された木構造データ全体を文書として保存する手段と、
からなる文書改訂支援装置。
【請求項１０】
請求項9に記載の装置において、前記付与する手段が、
前記改訂ＩＤと改訂種別を表す属性の一対のデータを、改訂の順番に並べたリストとして付与することを特徴とする、
文書改訂支援装置。
【請求項１１】
請求項９または１０に記載の装置において、更に、特定の改訂を指定して、前記改訂の内容及び前記改訂ＩＤと改訂種別を表す属性を用いて当該改訂箇所を明示した文書、または改訂を完全に反映した文書を生成する手段を有することを特徴とする、
文書改訂支援装置。
【請求項１２】
請求項９、１０または１１に記載の装置において、更に、特定の改訂を指定して、前記改訂ＩＤと改訂種別を表す属性及び前記保存された文書を用いて当該改訂箇所の改訂前後を対照する表、または前記改訂の内容を叙述した文書を生成する手段を有することを特徴とする、
文書改訂支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、文書の改訂作業を支援するシステムに関する。
【０００２】
【従来の技術】
従来、文書の改訂作業において、改訂の履歴を残して後に利用したいという要求があった。従来は、紙の文書に書き込んで改訂の履歴を残したり、改訂された文書の世代毎のコピーを残したり、ワードプロセッサのファイル機能で改訂の世代毎の文書ファイルを残す等で行っていた。更に進んだ方法としては、電子ファイルの変更毎に、もとの文書と改訂された文書の差分を残す技術もあった。現在特に普及しているものとしては、マイクロソフト社のワードにおける履歴機能と履歴保存時のフォーマットがある。
【０００３】
【発明が解決しようとする課題】
しかしながら、このような従来の技術は、紙の文書を用いる場合には、管理そのものが難しいと共に、保管場所を必要とする等の欠点があり、ワードプロセッサ等の電子ファイルを利用する場合でも、文書の改訂の履歴を管理するとはいっても、単に改訂の世代を適当な時刻において記録して、その間の比較をしたり、世代をさかのぼって元に戻したり、世代を下って変更のやり直しをしたりすることを実現するだけで、例えば、法律や条例の改訂の作業や、法律文書、特許文書、業界規則文書、金融商品取り扱い文書、各種マニュアル、仕様書、説明書、業務規定書、社内規定文書など改訂の履歴を厳密に管理したいという要求には不十分であった。即ちこの要求には従来不可能であった以下のような機能を実現する必要がある。
１．記録した履歴から、特定時点における改訂内容を説明する「改訂文」を自動的に生成すること。
２．複数の複雑に関係しあった改訂の内から特定のものを選択的にキャンセルすること。
３．ある文書に関する同時並行的な複数の改訂作業を実現すること。
４．複数の改訂を独立して管理し、それらの改訂内容を選択的に元の文書に反映すること。
５．改訂前後の新旧の対照表を自動的に作成すること。
６．文書中の任意の改訂内容を閲覧すること。
【０００４】
これらの機能は、特に法律の改正、条例の改正等の作業において必要欠くべからざるものであって、従来の技術では多大な労力と時間がかかり、作業担当者の負担が重く、間違いが起こりがちなことが問題であった。
【０００５】
【課題を解決するための手段】
本発明による文書改訂支援システムは、このような従来技術の欠点を解決することを目的とするもので、文書をＸＭＬ形式で保存し、その文書中にすべての編集履歴を保存する手段を提供すると共に、その様なＸＭＬ文書の処理システムを提供してこの目的を達成する。
【０００６】
より詳細に言えば、文書を保存するために定めたＸＭＬのスキーマ（ＤＴＤ）において、更に編集履歴を保存するための属性及び要素を追加することによって、当該文書の編集履歴を、その順序を含めて細大余さず記録保存する手段を提供する。即ちＸＭＬ文書の構造単位（例えばノード）で差分を参照・管理する手段を提供する。更にそのＸＭＬ文書の、記録保存された履歴データを用いて、特定時点における改訂内容を説明する「改訂文」を自動的に生成すること、複数の複雑に関係しあった改訂の内から特定のものを選択的にキャンセルすること、ある文書に関する同時並行的な複数の改訂作業を実現すること、複数の改訂を独立して管理し、それらの改訂内容を選択的に元の文書に反映すること、改訂前後の新旧の対照表を自動的に作成すること、文書中の任意の改訂内容を閲覧するシステムを実現する。
【０００７】
【発明の実施の形態】
本発明による文書改訂支援システムは、前述のような改訂の履歴を厳密に管理しなければならない各種文書の改訂作業を支援することが出来るが、その中でも特に形式が厳密に定められ、複雑な改訂作業を必要とする法律及び条例などの改正の支援に有用である。
【０００８】
法律及び条例などの改正作業においては、文書を改正した内容及び順序を詳細に履歴として残し、その記録した履歴から、特定時点における改正内容を簡潔に説明する「改正文（改正法乃至改正条例）」を生成し、さらにその改正前後の新旧の対照表を作成する必要がある。また、必要に応じて文書中の任意の改正内容を閲覧することも必要である。
【０００９】
そして、それらの文書に基づいた改正の可否に応じて、複数の複雑に関係しあった改正の内から特定のものを選択的にキャンセル（廃案処理）したり、選択的に元の文書に反映（溶け込まし処理）することが必要である。
【００１０】
この作業のフローを図１に示す。図中（１１）は、改正対象の元の条例であり、これを改正作業（１２）を介して改正案（１３）を作る。これら元の条例と改正案との関係を、一部改正条例（１４）として表現すると共に、新旧対照表（１５）を作成し、議会等の決定機関における審議を経て、成立ならば、改正条例（１６）として公布し、廃案ならば、元の条例（１１）に戻す作業をする。新たな改正条例（１６）は、次期の改正（１７）において元の条例となる。
【００１１】
しかも、これらの改正作業は、図２に示すように、一つの文書に関して同時並行的に複数の改正作業がなされる場合があるので、その様な場合にも相互の矛盾なく上記機能を実現しなければならない。
【００１２】
これらの要件を実現するために、本願発明の文書改訂支援システムは、改訂対象の文書をＸＭＬ形式で、編章節目、条項号などに対応した複数のノードから成る木構造で表現したデータをコンピュータの記憶装置内に構成し、それらの木構造データのノードに当る要素に対して、その改正毎に、一意の改正ＩＤと改正の種別を表わす属性を組のリスト構造として与えると共に、改正前の原文を当該要素内に保存し、これらの情報を用いて当該要素の改正作業を操作するシステムを提供する。
【００１３】
以下この情報の構造とその操作システムの実施例を条例の改正作業を例として説明する。
【００１４】
【実施例】
以下、例規（条例規則）を対象とした改正文・新旧対照表・公布文生成処理のシステムにおける実施例を示す。このシステムでは、例規または例規部分構造に対する廃案処理、溶け込まし処理の自動化を実現するために、例規ＸＭＬ（条例規則の文書を編章節目、条項号などに対応した複数のノードから成る木構造で表現するＸＭＬデータ）を読み込み、表示し改正箇所のノードを選択して改正を行う。改正を行う（バージョン）毎に、その改正箇所を一意に識別可能な改正ＩＤが与えられる。このとき、一度割り当てられた改正ＩＤは決して変更しないものとする。
【００１５】
前記改正を行うときに、同時にどのような改正を行うかを示す改正種別(後述)をキーボードでの文字入力などにより指定し、改正ＩＤと改正種別ごとに決められた改正情報(後述)を前記改正箇所のノード下にＸＭＬノードとして保存する。また、この改正ＩＤを指定して保存された改正情報にもとづき廃案・溶け込まし処理を行う。この処理には指定された改正ＩＤ以降の溶け込まし処理、指定された改正ＩＤ以前の廃案処理を含む。
前記改正を行う処理においては改正ＩＤと組になる情報として以下のような改正種別を、例規ＸＭＬ文書の改正箇所のノードに対して付加する。
（１）revise属性
改正箇所に改正情報を付加するために、改正箇所のＸＭＬ要素の属性に改正ＩＤと改正種別を保存する。この属性の内容は、文書に対する編集を表す改正ＩＤ(バージョン情報)と、各要素について行われた改正の種別をあらわす改正種別の組のリストである。例えば要素Xに対して２度の改正A及びBが行われた場合のリストの書式は次の通りである。
<要素X revise="改正A added 改正B erased">
ここにおいて、要素Xは、例規文書の要素である「編」「章」「節」「目」「条」「項」「号」等を表し、(改正A added)、(改正B erased)は、それぞれの改正の改正ＩＤと改正種別の組を表わし、その出現順序は改正の順序を表わす。これは例規文書の場合であるが、通常の文書の「章」「節」「段落」などの一般的な文書要素であってもよく、以下の例示において、<要素X>...</要素X> 等の表示は、適宜<章>... </章>、<条>...</条>、<段落>...</段落> 等のように読み替えることができる。この様に表現することによって、文書中の要素に対して複数の改正をその順番を含めて表現することが可能となった。
【００１６】
改正種別には以下のものを定義する。
（ａ）removed：要素の削除を意味する。
（ｂ）erased：要素の削るを意味。番号の繰り上げが発生する。
（ｃ）added：要素の追加を意味する。番号の繰り下げが発生する。
（ｄ）partial：一部改正（字句改正）を意味する。
（ｅ）overall：全部改正を意味。オリジナルの文書を退避する。
（ｆ）revival：削除されていた要素の全部改正を行う(overallとほぼ同意)。
（ｇ）collapsed：編章節目、条に対して有効。章名や条名の削除を意味する。
（ｈ）divided：編、章、節、款、目、条の分割を意味する。
【００１７】
以下にこれらの改正種別のそれぞれについて文書中のＸＭＬ要素に付加される改正情報の内容と適用（溶け込まし処理）、キャンセル（廃案処理）の処理方法を示す。
（ａ）removed
要素Xが「削除」されたことを表す。要素の「削除」は、文書中からその要素が除去されることを表すのではなく、要素Xの内容が文書中で無効になることをあらわす。これは例えば、条文の番号を残して、その内容を『削除』と表記する場合に該当する。（下向き矢印の前は改正前のＸＭＬノードであり、矢印の後は改正後に改正情報を付加された状態のＸＭＬノードを表す。以下同じ。）
<要素X removed="no">
<要素Y>...</要素Y>
</要素X>
↓
<要素X removed="yes" revise="改正A removed">
<要素Y>...</要素Y>
</要素X>
文書中で無効か否かを表すフラグはremoved属性値である。
【００１８】
これは削除されることのある要素がremoved属性を持つことを表す。
削除の変更（改正A）が適用（apply）されたときは、revise属性から "改正A removed" を削除し、更にrevise属性値が "" となった場合、revise属性を要素Xから除去して以下のようにする。
0004737914.tif 000002
このようにしてremoved属性がyesとなり、文書中、この要素が無効となる。
【００１９】
一方、削除の変更（改正A）がキャンセルされた場合、同様にrevise属性中から "改正A removed" を除去し、removed属性値をnoにする。
このように改正ＩＤを指定して、全ての属性において同様に、その改正の適用または廃案処理を一括して行うことができる。
（ｂ）erased
要素Xを「削る」ことを表す。要素の「削る」は、文書中からその要素が除去されることを表す。これは例えば、条文の番号も含めて、その内容を除去する場合に該当する。この時は「削られた」条文以下の番号の繰り上げが生ずるが、この処理については後述する。
0004737914.tif 000003
削るを行った改正Aが適用（apply）されたとき、要素Xを文書中から完全に除去し、以下のようにする。
0004737914.tif 000004
削るを行った改正Aがキャンセルされた場合、revise属性中から "改正A erased" を除去し、更にrevise属性値が "" となった場合、revise属性を要素Xから除去する。
（ｃ）added
要素Xが追加されたことを表す。この時は「追加された」条文以下の番号の繰り下げが生ずるが、この処理については後述する。
0004737914.tif 000005
追加を行った改正Aが適用（apply）されたとき、要素Xのrevise属性中から "改正A added" を除去し、更にrevise属性値が "" となった場合、revise属性を要素Xから除去して以下のようにする。
0004737914.tif 000006
一方、追加を行った改正Aをキャンセルするとき、要素Xを文書中から完全に除去する。
（ｄ）partial
ＸＭＬ文書内のPCDATA（テキスト）と文字装飾タグなどが混在する要素に対して、一部字句の改正を行うことを表す。以下は「本日は晴天ですね。」を「本日も晴天ですね。」に字句改正を行った場合を例示する。
0004737914.tif 000007
字句改正では挿入された文字列はinsタグ、削除された文字列はdelタグで表現する。またそれぞれ改正Aを表すrevise_id属性を持たせる。
【００２０】
字句改正を行った改正Aが適用（apply）された場合、revise属性中から "改正A partial" を削除する。さらに、revise id属性値が "改正A" であるdelタグを削除し、同じくrevise id属性値が "改正A" であるinsタグの子供を、そのinsタグの前に挿入し、最後にそのinsタグを削除する。
<要素X revise="改正A partial">
本日も<em>晴天</em>ですね。
</要素X>
字句改正を行った改正Aをキャンセルする場合も同様に、revise属性中から "改正A partial" を削除する。さらに、revise id属性値が "改正A" であるinsタグを削除し、同じくrevise id属性値が "改正A" であるdelタグの子供を、そのdelタグの前に挿入し、最後にそのdelタグを削除する。
（ｅ）overall
要素を、全部改正することを表す。以前の内容を保存するために、partialのように以前の内容との差を保存するのではなく、以前の内容全てをoriginal要素に保存する。original要素のrevise id属性に改正IDを保存する。以下は、要素Ｚの全文を要素ＺＺ（ここでは「あああああ」という文字列）に改正する場合を例示する。
<要素X>
<要素Z>...</要素Z>
</要素X>
↓
<要素X revise="改正A overall">
<要素ZZ>あああああ</要素ZZ>
<original revise id="改正A">
<要素X>
<要素Z>...</要素Z>
</要素X>
</original>
</要素X>
全部改正を適用（apply）するとき、要素Xのrevise属性中の "改正A overall" を除去し、更にrevise属性値が "" となった場合、revise属性を要素Xから除去し、またoriginal要素を除去して以下のようにする。
<要素X>
<要素ZZ>あああああ</要素ZZ>
</要素X>
一方、全部改正をキャンセルするときは、要素Xをoriginal要素中のものと置き換える。
（ｆ）revival
削除（removed="yes"）されている要素、つまり文書中で無効になっている要素を再生する。基本的にoverallと同じ処理であるが、削除されている要素に対してのみ有効とする。これは、条例の改正で削除が一旦決定された後に、何らかの理由でもとの条文が復活させられる場合に該当する。
（ｇ）collapsed
同種の要素X1と要素X2が連続している場合、要素X2による区分を削ることを表す。これは、編、章、節、目、条等に対して、それらを削除する場合に該当する。
<要素X1>
<要素Z1>...</要素Z1>
</要素X1>
<要素X2>
<要素Z2>...</要素Z2>
</要素X2>
↓
<要素X1>
<要素Z1>...</要素Z1>
</要素X1>
<要素X2 revise="改正A collapsed">
<要素Z2>...</要素Z2>
</要素X2>
要素X2の区分を削る改正Aが適用（apply）されたとき、要素X2の子供を兄に相当する要素X1の子供の末尾に追加移動し、要素X2を文書中から除去して、以下のようにする。
<要素X1>
<要素Z1>...</要素Z1>
<要素Z2>...</要素Z2>
</要素X1>
要素X2の区分を削る改正Aがキャンセルされると、要素X2のrevise属性から "改正A collapsed" を除去し、更にrevise属性値が "" となった場合、revise属性を要素X2から除去する。
（ｈ）divided
要素の区分を追加し、要素の子供を分割することを表す。これはcollapsedと逆の操作で、編、章、節、目、条等を追加する場合に該当する。
<要素X1>
<要素Z1>...</要素Z1>
<要素Z2>...</要素Z2>
</要素X1>
↓
<要素X1>
<要素Z1>...</要素Z1>
</要素X1>
<要素X2 revise="改正A divided">
<要素Z2>...</要素Z2>
</要素X2>
区分を追加する改正が適用（apply）されたときは、要素X2のrevise属性から "改正A divided" を除去する。
【００２１】
一方、区分を追加する改正をキャンセルするときは、要素X2の子供を、兄に相当する要素X1の子供の末尾に追加移動し、要素X2を文書中から除去する。
（２）num属性
これは条文の番号を表す属性であって、x.y.z 形式で表し、ここでxを深さ0、yを深さ1、zを深さ2の枝番号とする。即ち "2.2.2" は深さ2の番号、"3.3" は深さ１の番号、"1" は深さ0の番号となる。番号の入力及び変更は自動的に行い、矛盾（番号の重複、空き）が発生しないようにする。番号つき要素Zの追加は、追加位置を指定するダイアログを用いて、ある番号つき要素Xを指定し、その次に挿入する。枝番号を設定する際は、要素Xの番号の深さに対して＋１となる枝番号を設定することを可能とする。この例示のような場合（条規文書の番号付け）においては、深さ１以上の枝番号は2から始まるものとする（1は設定されない）。即ち、要素Xの枝番号が "5" であれば、要素Zの枝番号は "5.2" となり、要素Xの枝番号が "4.2" であれば、要素Zの枝番号は "4.2.2" となる。
（３）preset属性
番号の繰り上げ及び繰り下げに対応する処理用の属性であって、文書に対する編集を表す改正ＩＤ（バージョン）と、その改正ＩＤにおける要素の番号の組のリストで表す。
【００２２】
改正において、繰上げ繰り下げが発生したとき、番号を管理しているnum属性値を直接変更するのではなく、ある改正で、どの番号に変更されたのかをrevise属性同様、改正毎にその順番を含めて管理するものである。
【００２３】
番号（num属性）をもつ要素、かつ、他の要素の追加や削るによって番号の繰上げ、繰り下げが行われる要素にpreset属性を加える。
例えば、
0004737914.tif 000008
に対し、改正Aで要素X1の後に新たな要素X11が加えられた場合次のようにする。
（なお、// 以下の文章は操作を解りよくするためのコメントである。）
0004737914.tif 000009
さらに同じ改正Aで要素X2が削られた場合、以下のようにする。
0004737914.tif 000010
要素X3はここで4から3に戻ったので、番号が改正前の番号と同じであるためpreset属性を除去する。
【００２４】
一方、要素X2が次の改正Bで削られた場合は、以下のようにする。
0004737914.tif 000011
改正Aが適用された場合、preset属性中に改正Aを含む要素は、その値をnum属性の値に変更し、revise属性から "改正A 番号" を除去する。上記例示の場合は以下のようになる。
0004737914.tif 000012
一方、改正Bが廃案された場合、"改正B 番号" をpreset属性から除去する。
この場合、上記例示の要素X3は以下のようになる。
0004737914.tif 000013
このようにして編章節目、条項号などの番号つき要素に対して、削る、加える操作が行われたときに番号の繰り上げ及び繰り下げ処理を行うことができる。
【００２５】
ただし枝番号として条項を追加する場合、繰上げ繰り下げが発生しない場合がある。
例えば、1条、2条とあったときに1.2条を追加する場合、繰り下げは発生しない。このとき1.2条にはnum属性に "1.2" を設定し、preset属性は付加しない。また、1条、1.2条、1.3条、2条とあったとき、1.3条を削った場合、繰上げは発生しない。
【００２６】
また、現行改正Aで追加された条項などの要素については、現行改正及び他の箇所で繰上げ、繰下げが発生したとき、preset属性の操作を行わず、num属性値を直接操作する。例えば、１条、２条の間に新たに２条を追加した場合、
<条 num="1">...</条>
<条 num="2" revise="改正A added">...</条>
<条 num="2" preset="改正A 3">...</条>
となるが、ここでさらに1条を削った場合、以下のようにする。
<条 num="1" revise="改正A erased">...</条>
<条 num="1" revise="改正A added">...</条>     // num属性を変更
<条 num="2">...</条>                          // 改正A以前と同じ番号
これは、現行改正で追加された要素については、「改正前の番号」が存在しないため、保存の必要がないのでpreset属性を用いる必要がないためである。
【００２７】
以上に説明した様な改正ＩＤ及び属性を組で用いるデータ構造によって、複数の改正を独立させ、個々の改正内容を選択的に文書に反映させることが可能となった。
【００２８】
次に複数の一部改正が同時に進行する場合（ａ）と、一部改正と当該一部改正の一部改正が進行する場合（ｂ）を例に挙げて説明する。
0004737914.tif 000014
という条文を例に考える。
（ａ）複数の一部改正作業が同時に進行する場合
例えば、改正作業が、次のようなものであるとする。
１．１つめの条文は、２月１４日施行の一部改正内容を反映する。
２．２つめの条文は，３月３１日施行の一部改正内容を反映する。
ここで２月１０日現在、以下の構造がデータ中にあるものとする。
0004737914.tif 000015
そこで、revise="r20020214"であるような要素についてのみ、改正文作成実行すると、「第1条の「甲」を「乙」に改める。」が作成される。
【００２９】
２月１４日の施行時に以下の溶け込まし処理を実行。
revise="r20020214"であるような要素について、溶け込まし実行すると、
0004737914.tif 000016
となる、次にrevised="r20020331"であるような要素についてのみ，改正文作成実行すると、「第1条の「動物」を「哺乳類」に改める。」が作成される。
【００３０】
そして３月３１日の施行時に以下の溶け込まし処理を実行する。即ち、
revise="r20020331"であるような要素について、溶け込まし処理を実行すると、
0004737914.tif 000017
となる。
（ｂ）一部改正と一部改正の一部改正作業が進行する場合
現在のデータを次の通りとする。
0004737914.tif 000018
これに対して、
0004737914.tif 000019
となるような、編集を行う。
これは、２月１４日の以前に施行するような一部改正の一部改正を行うのが適当とされている。そこで２月１０日とする。
ここで、revise="r20020210"であるような要素についてのみ、改正文作成を実行すると、「第1条の「乙」を「丙」に改める。」が作成される。
【００３１】
この改正文は，一部改正の一部改正として正しい内容である。
２月１０日施行時の溶け込まし処理後は、以下のようなデータとなる。
0004737914.tif 000020
ここで改正文作成を実行すると、「第1条の「甲」を「丙」に改める。」が作成される。
【００３２】
この改正文も、一部改正として正しい内容である。
次に２月１４日の施行時に以下の溶け込まし処理が実行される。即ち、
revise="r20020214"であるような要素について、溶け込まし処理を実行した結果。
0004737914.tif 000021
となる。
【００３３】
このようなデータ構造を用いる文書改訂支援システムは、図３に示すようなコンピュータシステムのハードウエア資源とソフトウエアとの協働によって具体的に実現されている。図において、（３０）は本発明による文書改訂支援装置であって、改訂対象文書を入力する手段（３１）と、入力された改訂対象文書やその後の処理途中のデータを記憶する記憶装置（３２）と、入力された改訂対象文書を、複数のノードから成る木構造で表現したデータに変換する手段と（３３）と、変換された木構造データを記憶する手段（３２）と、記憶された木構造データのノードを指定して改訂を指示する手段（３１）と、指示された改訂バージョンを一意に表す改訂ＩＤと、そのノードに対する改訂の種別を表わす属性を、組のリスト構造を有する改訂データとして生成し、当該ノード内に記憶させる手段（３４）と、当該改訂ＩＤ毎に改訂直前の文書を当該ノード内に保存する手段（３５）と、特定の改訂ＩＤを指定して、前記ノード内の文書データ及び属性データを用いて当該改訂を表す文書や当該改訂箇所の新旧対照表（３６）を生成する手段（３７）と、特定の改訂ＩＤを指定して、前記改訂ＩＤ、属性を削除すると共に、保存した文書を復帰することによって、当該改訂をキャンセルしたり、特定の改訂ＩＤを指定して、前記改訂ＩＤ、属性及び保存した文書を削除すると共に、当該属性で表される改訂を原文に反映させる手段（３８）と、等からなる。
【００３４】
これらの構成要素の内、入力及び指示手段（３１）は、キーボード、スキャナ、音声入力装置、マウス等の入出力装置でよく、記憶装置（３２）は半導体メモリー装置、ハードディスク装置等の記憶装置でよく、変換手段（３３）、生成手段（３４、３７）、保存手段（３５）、キャンセル及び反映手段（３８）等は、ＣＰＵ、種々のソフトウエアモジュール等（ファームウエアを含む）で構成されることが望ましい。なお、これらの構成要素は、単一のコンピュータシステムに実現される他、ネットワーク上に分散した、ハードウエア上に実現することもできる。例えば、記憶手段（３２）をネットワーク上のデータベース・サーバーとし、その上にＸＭＬ文書を蓄積して、ネットワークでつながったクライアント・マシン上にその他の入出力手段、処理手段（３２を除く構成）を実現してもよい。
【００３５】
【発明の効果】
以上のような文書改訂支援システムを実現することによって、従来不可能であった、以下の機能を実現した。
１．記録した履歴から、特定時点における改訂内容を説明する「改訂文」を自動的に生成すること。
２．複数の複雑に関係しあった改訂の内から特定のものを選択的にキャンセルすること。
３．ある文書に関する同時並行的な複数の改訂作業を実現すること。
４．複数の改訂を独立して管理し、それらの改訂内容を選択的に元の文書に反映すること。
５．改訂前後の新旧の対照表を自動的に作成すること。
６．文書中の任意の改訂内容を閲覧すること。
【００３６】
これによって、例えば、法律や条例の改訂の作業や、法律文書、特許文書、各種マニュアル、仕様書、説明書など改訂の履歴を厳密に管理したいという要求、また、書籍の出版等において、編集作業の履歴管理をより厳密に行いたいという要求を満たすことができる。
【図面の簡単な説明】
【図１】  文書改訂作業の１例を示すフロー図。
【図２】  図１の文書改訂作業の同時並行的進行を示すフロー図。
【図３】  本発明による文書改訂支援システムのブロック図。
【図１】
0004737914.tif 000022
【図２】
0004737914.tif 000023
【図３】
0004737914.tif 000024