(57)【要約】【課題】構造化文書の修正履歴を容易にかつ少ないデータ量で管理する。【解決手段】コンピュータが、元となる構造化文書である本体文書を受け付けて前記本体文書を所定の構造化文書記憶部に記憶し、前記本体文書に対する修正内容を示す構造化文書である修正文書を時系列的に前記構造化文書記憶部に記憶する。そして、前記本体文書に対するある時点までの修正内容を反映させた構造化文書である合成文書の生成要求を受け付け、前記構造化文書記憶部に記憶されている前記本体文書および前記本体文書に対する前記ある時点までの修正内容を示す前記修正文書に基づいて、前記本体文書に対して前記修正文書によって示される修正内容を時系列に従い適用して前記合成文書を生成する。【選択図】  図３
2006185366.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いて構造化文書の修正履歴を管理する方法であって、
前記コンピュータが、
元となる構造化文書である本体文書を受け付けて前記本体文書を所定の構造化文書記憶部に記憶し、
前記本体文書に対する修正内容を示す構造化文書である修正文書を時系列的に前記構造化文書記憶部に記憶し、
前記本体文書に対するある時点までの修正内容を反映させた構造化文書である合成文書の生成要求を受け付け、
前記構造化文書記憶部に記憶されている前記本体文書および前記本体文書に対する前記ある時点までの修正内容を示す前記修正文書に基づいて、前記本体文書に対して前記修正文書によって示される修正内容を時系列に従い適用して前記合成文書を生成すること、
を特徴とする構造化文書管理方法。
【請求項２】
請求項１に記載の構造化文書管理方法であって、
前記コンピュータは、
前記合成文書を生成する際に、前記修正文書に含まれるタグが前記本体文書に含まれていない場合は、前記修正文書における前記タグ及び前記タグにより囲まれた文書を前記本体文書に追加することを特徴とする構造化文書管理方法。
【請求項３】
請求項１に記載の構造化文書管理方法であって、
前記コンピュータは、
前記合成文書を生成する際に、前記修正文書に含まれるタグが前記本体文書に含まれており、前記修正文書において前記タグにより囲まれた文書が存在する場合は、前記本体文書における前記タグにより囲まれた文書を前記修正文書における前記タグにより囲まれた文書に変更することを特徴とする構造化文書管理方法。
【請求項４】
請求項１に記載の構造化文書管理方法であって、
前記コンピュータは、
前記合成文書を生成する際に、前記修正文書に含まれるタグが前記本体文書に含まれており、前記修正文書において前記タグにより囲まれた文書が存在しない場合は、前記本体文書における前記タグ及び前記タグにより囲まれた文書を削除することを特徴とする構造化文書管理方法。
【請求項５】
コンピュータに、
構造化文書を受け付けて前記構造化文書を所定の構造化文書記憶部に記憶する手段と、
前記構造化文書に対する修正内容を示す構造化文書である修正文書を時系列的に前記構造化文書記憶部に記憶する手段と、
前記構造化文書に対するある時点までの修正内容を反映させた構造化文書である合成文書の生成要求を受け付ける手段と、
前記構造化文書記憶部に記憶されている前記構造化文書および前記構造化文書に対する前記ある時点までの修正内容を示す前記修正文書に基づいて、前記構造化文書に対して前記修正文書によって示される修正内容を前記修正文書の時系列に従い適用して前記合成文書を生成する手段と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書の修正履歴を管理する構造化文書管理方法およびプログラムに関する。
【背景技術】
【０００２】
現在、コンピュータでのデータ操作の容易性等により、様々な文書がＸＭＬ等の構造化文書を用いて作成されている。そして、法律文書や各種マニュアルのように、その修正履歴の管理が重要な文書を構造化文書で作成する場合、構造化文書における修正履歴の管理が必要となる。そこで、特許文献１や特許文献２に示すような構造化文書における修正履歴の管理方法が提案されている。特許文献１に示される方法においては、修正前の構造化文書そのもの（本体文書）に対して直接修正を行い、修正前後の構造化文書を比較した差分情報を対照表として保持することにより、修正履歴の管理を行っている。また、特許文献２に示される方法においては、本体文書を修正する際に修正履歴情報を本体文書のタグ属性に持たせることにより、修正履歴の管理を行っている。
【特許文献１】特開２００３−２５６２４９号公報
【特許文献２】特開２００４−１２６９０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前述の特許文献１に示す方法では、構造化文書を修正するたびに対照表が発生し、構造化文書の修正履歴を管理するためには、構造化文書とは別に対照表の履歴を管理しなければならず、管理が複雑となる。また、前述の特許文献２に示す方法では、本体文書のタグ属性に履歴情報を保持することにより本体文書自体が複雑になってしまう。そのため、本来の本体文書の情報を表すデータ量に比べてデータ量が増大してしまうという問題があった。
【０００４】
本発明は上記課題を鑑みてなされたものであり、構造化文書の修正履歴を容易にかつ少ないデータ量で管理することが可能な構造化文書管理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の構造化文書管理方法は、コンピュータを用いて構造化文書の修正履歴を管理する方法であって、前記コンピュータが、元となる構造化文書である本体文書を受け付けて前記本体文書を所定の構造化文書記憶部に記憶し、前記本体文書に対する修正内容を示す構造化文書である修正文書を時系列的に前記構造化文書記憶部に記憶する。そして、前記コンピュータが、前記本体文書に対するある時点までの修正内容を反映させた構造化文書である合成文書の生成要求を受け付け、前記構造化文書記憶部に記憶されている前記本体文書および前記本体文書に対する前記ある時点までの修正内容を示す前記修正文書に基づいて、前記本体文書に対して前記修正文書によって示される修正内容を時系列に従い適用して前記合成文書を生成することとする。
【発明の効果】
【０００６】
構造化文書の修正履歴を容易にかつ少ないデータ量で管理することが可能な構造化文書管理方法及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【０００７】
＝＝全体構成＝＝
図１は、本発明の一実施形態である文書管理システムの構成を示す図である。文書管理システムは、文書管理サーバ１およびクライアント装置２を含んで構成されており、文書管理サーバ１およびクライアント装置２は、ＬＡＮ（Local Area Network）やインターネット等のネットワーク２を介して通信可能に接続されている。文書管理サーバ１は、ＰＣサーバやワークステーション等の情報処理装置であり、クライアント装置２は、パーソナルコンピュータ等の情報処理装置である。
【０００８】
本システムにおいて、文書管理サーバ１は、クライアント装置２からＸＭＬ（eXtensible Markup Language）等の構造化文書を受け付け、その修正履歴を管理する。
【０００９】
＝＝ハードウェア構成＝＝
図２は、文書管理サーバ１のハードウェア構成を示す図である。文書管理サーバ１は、ＣＰＵ１０、メモリ１１、記憶装置１２、及び通信インタフェース１３を備えており、夫々がバス１４により接続されている。ＣＰＵ１０は、メモリ１１に記憶されているプログラムを実行することにより、文書管理サーバ１を制御する。メモリ１１は、ＲＡＭ（Random Access Memory）等の記憶媒体であり、ＣＰＵ１０が使用するデータの一時的な記憶領域として用いられる。記憶装置１２は、ハードディスクドライブ等の記憶媒体であり、プログラムや各種データが記憶される。なお、記憶装置１２は、必ずしも文書管理サーバ１に内蔵されている必要はなく、文書管理サーバ１の外部に設けられおり、ケーブルやネットワークにより文書管理サーバ１と通信可能に接続されているものとしてもよい。通信インタフェース１３は、ネットワーク３を介してクライアント装置２とデータの送受信を行うためのインタフェースである。
【００１０】
＝＝機能構成＝＝
図３は、文書管理サーバ１の機能構成を示す図である。文書管理サーバ１は、文書登録部２１、構造化文書データベース（構造化文書記憶部）２２、及び修正文書自動合成部２３を備えている。文書登録部２１及び修正文書自動合成部２３は、ＣＰＵ１０がメモリ１１に記憶されているプログラムを実行することにより実現されるものであり、構造化文書データベース２２は、記憶装置１２上に構成されているものである。
【００１１】
文書登録部２１は、クライアント装置３から入力される構造化文書３１を受け付け、当該構造化文書３１を構造化文書データベース２２に記憶する。この構造化文書３１には、元となる構造化文書である本体文書と、本体文書に対する修正内容を示す構造化文書である修正文書とがある。
【００１２】
図４に、本体文書の例を、図５及び図６に修正文書の例を示す。ここで、修正文書３１Ｂは、本体文書３１Ａに対する修正内容を示すものであり、修正文書３１Ｃは、さらにその後の修正内容を示すものである。
【００１３】
まず、本体文書３１Ａの構造について説明する。タグ“<document-id>”には、本体文書３１Ａの文書番号「A001」が設定されている。そして、タグ“<main-document>”に囲まれた範囲に、本体文書３１Ａの内容を示す文書が設定されている。
【００１４】
つぎに、修正文書３１Ｂ，３１Ｃの構造について説明する。タグ“<document-id>”には、修正文書３１Ｂ，３１Ｃの文書番号「B001」および「B002」が設定されている。そして、タグ“<correct-document>”に囲まれた範囲に、本体文書３１Ａに対する修正内容を示す文書が設定されている。ここで、タグ“<correct-id>”には、当該修正文書３１Ｂ，３１に対応する本体文書３１Ａの文書番号「A001」が設定されている。このように、構造化文書データベース２２においては、タグ“<correct-id>”により本体文書３１Ａと修正文書３１Ｂ，３１Ｃとが対応付けられている。
【００１５】
そして、例えば、修正文書３１Ｂにおけるタグ“<outline>”で囲まれた文書には「概要Ｂ」と設定されている。これは、本体文書３１Ａのタグ“<outline>”で囲まれた文書である「概要Ａ」を「概要Ｂ」に変更することを示すものである。また、例えば、修正文書３１Ｂにおけるタグ“<explanation num=”3”>”は、本体文書３１Ａに含まれていない。このように本体文書３１Ａに含まれていないタグは、本体文書３１Ａに対して追加されるものである。また、例えば、修正文書３１Ｃにおけるタグ“<explanation num=”1”>”は、当該タグに囲まれた文書が存在しない。このような、文書が存在しないタグを空タグといい、空タグは本体文書３１Ａにおける当該タグおよび当該タグで囲まれた文書の削除を示すものである。なお、タグ“<correct-document>”に囲まれた範囲に存在するタグのことを、修正タグと称する。
【００１６】
また、文書登録部２１は、構造化文書３１を構造化文書データベース２２に格納する際に、日時情報を付与して格納する。これにより、本体文書に対する修正内容を示す修正文書が時系列的に構造化文書データベース２２に格納される。本システムの利用者は、クライアント装置３を用いて、構造化文書データベース２２に格納された構造化文書３１を参照することにより、本体文書３１Ａに対する修正履歴を確認することができる。なお、時系列的に格納する方法としては、日時情報を付与することに限られず、例えば、昇順に付与されるシリアル番号等を修正文書３１Ｂ，３１Ｃに付与して構造化文書データベース２２に格納することとしてもよい。
【００１７】
修正文書自動合成部２３は、構造化文書データベース２２に記憶されている本体文書に対するある時点までの修正内容を反映させた構造化文書である合成済み構造化文書（合成文書）の生成要求を受け付ける。そして、修正文書自動合成部２３は、構造化文書データベース２２に記憶されている本体文書および本体文書に対するある時点までの修正内容を示す修正文書に基づいて、本体文書に対して修正文書によって示される修正内容を時系列に従い適用して合成済み構造化文書を生成し、クライアント装置３に出力する。
【００１８】
＝＝構造化文書自動合成処理＝＝
図７は、修正文書自動合成部２３が実行する合成済み構造化文書を生成する処理である構造化文書自動合成処理のフローチャートを示す図である。なお、以下の処理（Ｓ７０１〜Ｓ７１２）における動作主体は修正文書自動合成部２３である。まず、本体文書に対してある時点（日時Ａ）までの修正内容を反映させた合成済み構造化文書を生成する要求である合成要求を受け付ける（Ｓ７０１）。この合成要求には、本体文書の文書番号および日時Ａを示す情報が含まれている。そして、合成要求に含まれる文書番号によって示される本体文書を構造化文書データベース２２から抽出し（Ｓ７０２）、当該本体文書に対応する修正文書のうち修正日時が最も古いものを構造化文書データベース２２から抽出する（Ｓ７０３）。
【００１９】
続いて、抽出した修正文書に含まれる修正タグを取得し（Ｓ７０４）、当該修正タグと同一のタグ（修正対象タグ）が本体文書に存在するかどうか検索する（Ｓ７０５）。本体文書に修正対象タグが存在しない場合（Ｓ７０６：Ｎｏ）、修正文書に含まれる修正タグ及び修正タグに囲まれた文書を本体文書に追加する（Ｓ７０７）。本体文書に修正対象タグが存在する場合（Ｓ７０６：Ｙｅｓ）、修正文書に含まれる修正タグが空タグであるかどうか確認する（Ｓ７０８）。修正タグが空タグでない場合（Ｓ７０８：Ｎｏ）、本体文書の修正対象タグに囲まれた文書を修正文書の修正タグに囲まれた文書に変更する（Ｓ７０９）。修正タグが空タグである場合（Ｓ７０８：Ｙｅｓ）、本体文書の修正対象タグ及び当該修正対象タグに囲まれた文書を削除する（Ｓ７１０）。
【００２０】
ある修正タグに対する処理（Ｓ７０４〜Ｓ７１０）が終了すると、修正文書内に別の修正タグが存在するかどうか確認する（Ｓ７１１）。修正文書内に別の修正タグが存在する場合は（Ｓ７１１：Ｎｏ）、修正タグの取得及び修正内容の反映処理（Ｓ７０４〜Ｓ７１０）を繰り返し実行する。そして、ある修正文書に含まれる全ての修正タグに対する処理が完了すると（Ｓ７１１：Ｙｅｓ）、当該修正文書の次に修正日時が古い修正文書を取得し（Ｓ７０３）、前述の処理（Ｓ７０４〜Ｓ７１１）を実行する。この一連の処理（Ｓ７０３〜Ｓ７１２）は、日時Ａまでの修正文書の分だけ繰り返し実行される。
【００２１】
なお、Ｓ７０７，Ｓ７０９，Ｓ７１０における追加、変更、及び削除は本体文書に対してこれらの処理を行って合成済み構造化文書を得るためのものであり、構造化文書データベース２２に記憶されている本体文書自体がこれらの処理によって更新されるわけではない。
【００２２】
先に示した図４の本体文書３１Ａに対して、図５の修正文書３１Ｂ及び図６の修正文書３１Ｃの修正内容を反映させた合成済み構造化文書を生成する処理を、図７のフローチャートに沿って説明する。なお、合成要求で指定された文書番号は「A001」であり、文書番号「A001」の本体文書に対する日時Ａまでの修正文書が時系列順に修正文書３１Ｂ、修正文書３１Ｃであることとする。また、当該処理における動作主体は、前述した通り修正文自動合成部２３である。
【００２３】
まず、文書番号「A001」の日時Ａまでの合成要求を受け付ける（Ｓ７０１）。そして、文書番号「A001」の本体文書３１Ａを抽出し（Ｓ７０２）、当該本体文書３１Ａに対する最も古い修正文書３１Ｂを抽出する（Ｓ７０３）。そして、修正文書３１Ｂに含まれる修正タグ“<outline>”を取得し（Ｓ７０４）、修正対象タグ“<outline>”が本体文書３１Ａに存在するかどうか検索する（Ｓ７０５）。本体文書３１Ａに修正対象タグ“<outline>”が存在し（Ｓ７０６：Ｙｅｓ）、修正文書３１Ｂにおける修正タグ“<outline>”が空タグでないため（Ｓ７０８：Ｎｏ）、本体文書３１Ａの修正対象タグ“<outline>”に囲まれた文書「概要Ａ」を修正文書３１Ｂの修正タグ“<outline>”に囲まれた文書「概要Ｂ」に変更する（Ｓ７０９）。
【００２４】
修正文書３１Ｂには、さらに修正タグが存在するため（Ｓ７１１：Ｎｏ）、次の修正タグ“<explanation num=”3”>”を取得し、修正対象タグ“<explanation num=”3”>”が本体文書３１Ａに存在するかどうか検索する（Ｓ７０５）。本体文書３１Ａに修正対象タグ“<explanation num=”3”>”が存在しないため（Ｓ７０６：Ｎｏ）、修正文書３１Ｂにおける当該修正タグ及び当該修正タグに囲まれた文書である“<explanation num=”3”>説明３</explanation>”を本体文書３１Ａに追加する（Ｓ７０７）。ここまでの処理により、図８に示す合成済み構造化文書３２Ａが得られる。この合成済み構造化文書３２Ａは、本体文書３１Ａに修正文書３１Ｂによって示される修正内容を適用したものである。
【００２５】
続いて、修正文書３１Ｂには他に修正タグが存在せず（Ｓ７１１：Ｙｅｓ）、修正文書３１Ｂの後に日時Ａまでの修正文書３１Ｃが存在するため（Ｓ７１２：Ｙｅｓ）、当該修正文書３１Ｃを取得する（Ｓ７０３）。そして、抽出した修正文書３１Ｃに含まれる修正タグ“<explanation num=”1”>”を取得し（Ｓ７０４）、修正対象タグ“<explanation num=”1”>”が本体文書３１Ａに存在するかどうか検索する（Ｓ７０５）。本体文書３１Ａに修正対象タグ“<explanation num=”1”>”が存在し（Ｓ７０６：Ｙｅｓ）、修正文書３１Ｃにおける修正タグ“<explanation num=”1”>”が空タグであるため（Ｓ７０８：Ｙｅｓ）、本体文書３１Ａにおける当該修正対象タグ及び当該修正対象タグに囲まれた文書である“<explanation num=”1”>説明１</explanation>”を削除する（Ｓ７１０）。ここまでの処理により、図９に示す合成済み構造化文書３２Ｂが得られる。この合成済み構造化文書３２Ｂは、本体文書３１Ａに修正文書３１Ｂ及び修正文書３１Ｃによって示される修正内容を適用したものである。
【００２６】
そして、修正文書３１Ｃには他に修正タグが存在せず（Ｓ７１１：Ｙｅｓ）、修正文書３１Ｃの後に日時Ａまでの修正文書が存在しないため（Ｓ７１２：Ｎｏ）、当該処理が終了する。これにより、文書番号「A001」の本体文書３１Ａに対して日時Ａまでの修正を反映させた合成済み構造化文書３２Ｂを得ることができる。
【００２７】
以上、本実施形態の文書管理システムについて説明した。前述したように、本システムにおいては、本体文書に対する修正を行う場合、本体文書自体は修正せずに、修正内容を示す情報で構成される修正文書を時系列的に構造化文書データベース２２に記憶する。そして、本体文書および修正文書に基づいて、本体文書に対して所望の時点までの修正を反映させた合成済み構造化文書を得ることができる。このような本体文書と修正文書とを用いることにより、構造化文書とは別の対照表の管理が不要であり、構造化文書の修正履歴を容易に管理することができる。また、本体文書自体は修正しないため、本体文書に履歴情報を保持するためのタグを付与する場合よりも少ないデータ量で構造化文書の修正履歴を管理することができる。
【００２８】
また、本システムにおいては、修正文書における修正タグが本体文書に含まれていない場合には、修正文書における当該修正タグ及び当該修正タグにより囲まれた文書を本体文書に追加する。これにより、本体文書に文書を追加するための特別な機能タグを設ける必要がなく、修正文書の作成が容易となる。つまり、本体文書に文書を追加する場合における修正履歴の管理が容易となる。
【００２９】
また、本システムにおいては、修正文書に含まれる修正タグが本体文書に含まれており、修正文書において当該修正タグにより囲まれた文書が存在する場合は、本体文書における修正対象タグにより囲まれた文書を修正文書における当該修正タグにより囲まれた文書に変更する。これにより、本体文書の文書を変更するための特別な機能タグを設ける必要がなく、修正文書の作成が容易となる。つまり、本体文書の文書を変更する場合における修正履歴の管理が容易となる。
【００３０】
また、本システムにおいては、修正文書に含まれる修正タグが本体文書に含まれており、修正文書において当該修正タグにより囲まれた文書が存在しない場合は、本体文書における修正対象タグ及び当該修正対象タグにより囲まれた文書を削除する。これにより、本体文書において文書を削除するための特別な機能タグを設ける必要がなく、修正文書の作成が容易となる。つまり、本体文書における文書を削除する場合における修正履歴の管理が容易となる。
【００３１】
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【００３２】
例えば、本実施形態においては、文書管理サーバ１はクライアント装置３から構造化文書３１の入力や合成要求を受け付けることとしたが、文書管理サーバ１がキーボード等の入力装置を備えており、その入力装置の操作により構造化文書３１の入力や合成要求を受け付けることとしてもよい。また、文書管理サーバ１は、複数のコンピュータを用いて構成されていることとしてもよい。例えば、構造化文書データベース２２は文書管理サーバ１とは別のデータベースサーバに構築されており、文書登録部２１及び修正文書自動合成部２３は、ネットワークを介して構造化文書データベース２２にアクセスすることとしてもよい。
【図面の簡単な説明】
【００３３】
【図１】本実施形態の構造化文書管理システムの全体構成を示す図である。
【図２】文書管理サーバのハードウェア構成を示す図である。
【図３】文書管理の機能構成を示す図である。
【図４】本実施形態における本体文書の例を示す図である。
【図５】本実施形態における修正文書（修正文書１）の例を示す図である。
【図６】本実施形態における修正文書（修正文書２）の例を示す図である。
【図７】構造化文書自動合成処理のフローチャートを示す図である。
【図８】本実施形態における本体文書に修正文書１の修正を適用した合成済み構造化文書（合成済み構造化文書１）を示す図である。
【図９】本実施形態における合成済み構造化文書１に更に修正文書２の修正を適用した合成済み構造化文書（合成済み構造化文書２）を示す図である。
【符号の説明】
【００３４】
１    文書管理サーバ                ２    クライアント装置
３    ネットワーク                  １０  ＣＰＵ
１１  メモリ                        １２  記憶装置
１３  通信インタフェース            １４  バス
２１  文書登録部                    ２２  構造化文書データベース
２３  修正文書自動合成部
３１，３１Ａ，３１Ｂ，３１Ｃ  構造化文書（本体文書／修正文書）
３２，３２Ａ，３２Ｂ  合成済み構造化文書
【図１】
2006185366.tif 000003
【図２】
2006185366.tif 000004
【図３】
2006185366.tif 000005
【図４】
2006185366.tif 000006
【図５】
2006185366.tif 000007
【図６】
2006185366.tif 000008
【図７】
2006185366.tif 000009
【図８】
2006185366.tif 000010
【図９】
2006185366.tif 000011