(57)【要約】【課題】共有されている構造化文書を構成する要素が編集により更新されるとき、当該要素の更新が共有元で行われるか共有先で行われるかに応じて当該要素と共有関係にある要素に更新結果を反映するか否かを決定する構造化文書処理装置及び構造化文書処理プログラムを提供する。【解決手段】構造化文書処理装置１は、一の構造化文書の選択された要素の内容を編集する共有元要素編集手段１０４及び共有先要素編集手段１０６と、編集された要素が、他の構造化文書の要素を参照する共有先の要素又は参照される共有元の要素のいずれであるか判別する共有要素判別手段１０３と、共有要素判別手段１０３に共有元の要素であると判別されたとき、編集前と編集後の要素の差分情報を生成する差分情報生成手段１０５と、共有先の要素の内容に差分情報を適用する差分情報適用手段１０７とを有する。【選択図】図２
2012069054.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
複数の要素から構成される複数の構造化文書が存在するとき、当該複数の構造化文書の一の構造化文書において参照する他の構造化文書の要素を共有先要素とし、前記他の構造化文書において前記一の構造化文書に参照される要素を共有元要素として、当該共有先要素と当該共有元要素との対応関係を管理する構造化文書管理手段と、
前記一又は他の構造化文書から選択された要素の内容に変更を加えて編集する編集手段と、
前記編集手段によって編集された要素が、共有先要素又は共有元要素のいずれであるか判別する共有要素判別手段と、
前記編集手段によって編集された要素が前記共有要素判別手段に共有元要素であると判別されたとき、前記編集手段によって編集された要素の編集前と編集後の内容から差分情報を生成する差分情報生成手段と、
前記編集手段により編集された要素を共有元要素として参照する共有先要素の内容に前記差分情報生成手段が生成した前記差分情報を適用する差分適用手段として機能させるための構造化文書処理プログラム。
【請求項２】
前記構造化文書管理手段は、前記編集手段によって編集された要素が前記共有要素判別手段に共有先要素であると判別されたとき、前記編集手段によって編集された要素と当該編集手段によって編集された要素が参照する共有元要素との対応関係を保持し、当該編集手段によって編集された要素に新たな版情報を付与する請求項１に記載の構造化文書処理プログラム。
【請求項３】
複数の要素から構成される複数の構造化文書が存在するとき、一の構造化文書において参照する他の構造化文書の要素を共有先要素とし、前記他の構造化文書において前記一の構造化文書に参照される要素を共有元要素として、当該共有先要素と当該共有元要素との対応関係を管理する構造化文書管理手段と、
前記一又は他の構造化文書から選択された要素の内容に変更を加えて編集する編集手段と、
前記編集手段によって編集された要素が、共有先要素又は共有元要素のいずれであるか判別する共有要素判別手段と、
前記編集手段によって編集された要素が前記共有要素判別手段に共有元要素であると判別されたとき、前記編集手段によって編集された要素の編集前と編集後の内容から差分情報を生成する差分情報生成手段と、
前記編集手段により編集された要素を共有元要素として参照する共有先要素の内容に前記差分情報生成手段が生成した前記差分情報を適用する差分適用手段とを有する構造化文書処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構造化文書処理装置及び構造化文書処理プログラムに関する。
【背景技術】
【０００２】
構造化言語によって記述される構造化文書を管理するシステムにおいて、準拠する論理構造定義の異なる文書間でそれらの文書を構成する文書要素を共有する技術が提案されている。
【０００３】
これに関連する技術として、特許文献１には、文書を構成する要素のうち参照される側である参照元の文書要素と参照する側である参照先の要素との共有参照関係を管理し、かつ、その共有参照関係と対応付けて参照元の要素に含まれる部分文書を参照先の要素が用いられる文書の論理構造定義に沿う構造に変換して、参照先の要素が用いられる文書へ組み込みを行う構造化文書を管理する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３５３３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、共有されている構造化文書を構成する要素の内容が編集により更新されるとき、当該要素の更新が共有元で行われるか共有先で行われるかに応じて当該要素と共有関係にある要素に更新内容を反映するか否かを決定する構造化文書処理装置及び構造化文書処理プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
［１］コンピュータを、複数の要素から構成される複数の構造化文書が存在するとき、当該複数の構造化文書の一の構造化文書において参照する他の構造化文書の要素を共有先要素とし、前記他の構造化文書において前記一の構造化文書に参照される要素を共有元要素として、当該共有先要素と当該共有元要素との対応関係を管理する構造化文書管理手段と、前記一又は他の構造化文書から選択された要素の内容に変更を加えて編集する編集手段と、前記編集手段によって編集された要素が、共有先要素又は共有元要素のいずれであるか判別する共有要素判別手段と、前記編集手段によって編集された要素が前記共有要素判別手段に共有元要素であると判別されたとき、前記編集手段によって編集された要素の編集前と編集後の内容から差分情報を生成する差分情報生成手段と、前記編集手段により編集された要素を共有元要素として参照する共有先要素の内容に前記差分情報生成手段が生成した前記差分情報を適用する差分適用手段として機能させるための構造化文書処理プログラム。
【０００７】
［２］前記構造化文書管理手段は、前記編集手段によって編集された要素が前記共有要素判別手段に共有先要素であると判別されたとき、前記編集手段によって編集された要素と当該編集手段によって編集された要素が参照する共有元要素との対応関係を保持し、当該編集手段によって編集された要素に新たな版情報を付与する前記［１］に記載の構造化文書処理プログラム。
【０００８】
［３］複数の要素から構成される複数の構造化文書が存在するとき、一の構造化文書において参照する他の構造化文書の要素を共有先要素とし、前記他の構造化文書において前記一の構造化文書に参照される要素を共有元要素として、当該共有先要素と当該共有元要素との対応関係を管理する構造化文書管理手段と、前記一又は他の構造化文書から選択された要素の内容に変更を加えて編集する編集手段と、前記編集手段によって編集された要素が、共有先要素又は共有元要素のいずれであるか判別する共有要素判別手段と、前記編集手段によって編集された要素が前記共有要素判別手段に共有元要素であると判別されたとき、前記編集手段によって編集された要素の編集前と編集後の内容から差分情報を生成する差分情報生成手段と、前記編集手段により編集された要素を共有元要素として参照する共有先要素の内容に前記差分情報生成手段が生成した前記差分情報を適用する差分適用手段とを有する構造化文書処理装置。
【発明の効果】
【０００９】
請求項１又は３に係る発明によれば、共有されている構造化文書を構成する要素の内容が編集により更新されるとき、当該要素の編集が共有元要素として行われるか共有先要素として行われるかを判別し、共有元要素であると判別されたとき、当該要素と共有関係にある要素に更新内容を反映することができる。
【００１０】
請求項２に係る発明によれば、共有先要素が編集により更新されるとき、編集された当該共有先要素と参照する共有元要素との対応関係を保持しつつ、編集された共有先要素に新たな版情報を付することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の構造化文書処理システムの構成例を示す概略図である。
【図２】図２は、構造化文書処理装置の構成例を示すブロック図である。
【図３】図３（ａ）及び（ｂ）は、構造化文書データベースサーバに格納される共有元要素の構成の一例を示す概略図である。
【図４】図４（ａ）及び（ｂ）は、構造化文書データベースサーバに格納される共有先文書の構成の一例を示す概略図である。
【図５】図５（ａ）〜（ｃ）は、関連付け後の共有先文書の構成の一例を示す概略図である。
【図６】図６は、構造化文書処理装置１の動作例を示すフローチャートである。
【図７】図７（ａ）〜（ｃ）は、共有先要素編集後の共有先文書テーブルの構成の一例を示す概略図である。
【図８】図８は、構造化文書処理装置１の動作例を示すフローチャートである。
【図９】図９（ａ）〜（ｃ）は、共有元要素編集後の共有先文書テーブルの構成の一例を示す概略図である。
【図１０】図１０（ａ）〜（ｃ）は、差分情報適用後の共有先文書の構成の一例を示す概略図である。
【図１１】図１１は、構造化文書処理装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
（構造化文書処理システムの構成）
図１は、本発明の構造化文書処理システムの構成例を示す概略図である。
【００１３】
この構造化文書処理システム５は、構造化文書処理装置１と、構造化文書データベースサーバ２と、端末３とをネットワーク４によって互いに通信可能に接続することで構成される。
【００１４】
構造化文書処理装置１は、構造化文書データベースサーバ２に格納される構造化文書及び構造化文書に含まれる文書を構成する要素を管理するサーバ装置であって、情報を処理するための機能を有するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の電子部品を備える。
【００１５】
ここで、「構造化文書」とは、例えば、ＳＧＭＬ（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等の構造化言語によって記述される文書であり、上述した要素を節として木構造等で表される文書をいう。また、「要素」は、構造化文書を意味を成す単位に分割し、それらを単数又は複数含むものをいう。
【００１６】
構造化文書データベースサーバ２は、構造化文書２０Ａと、構造化文書２０Ａ及び構造化文書２０Ａに含まれる要素を管理する構造化文書管理テーブル２０Ｂとを格納する。構造化文書管理テーブル２０Ｂは、要素それぞれの内容、要素間の親子の関係（要素中に他の要素が木構造の下位要素として含まれる関係）及び要素間の共有又は被共有の関係等を示す情報を含む。
【００１７】
端末３は、キーボード、マウス、タッチパッド等の操作に応じて操作信号を発する操作部３０と、液晶ディスプレイ等の画像を表示する表示部３１と、ＣＰＵや記憶部等の電子部品を有する本体部３２とを備える。端末３は、構造化文書処理装置１に利用者の操作部３０に対する操作に応じて要求を送信し、その要求に対する応答を受信して、受信した内容を本体部３２で処理し、処理結果を表示部３１に表示する。なお、端末３は、例えば、パーソナルコンピュータであり、その他にＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話機等を用いることもできる。また、端末３は、同図では１台を図示するが、複数台でもよい。
【００１８】
ネットワーク４は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信網であり、有線、無線は問わない。
【００１９】
図２は、構造化文書処理装置１の構成例を示すブロック図である。
【００２０】
構造化文書処理装置１は、ＣＰＵ等から構成され、各部を制御するとともに、各種のプログラムを実行する制御部１０と、ＨＤＤやフラッシュメモリ等の記憶媒体から構成され情報を記憶する記憶部１１と、ネットワーク４を介して外部と通信するNIC（ネットワークインターフェースカード）等の通信部１２とを備える。
【００２１】
制御部１０は、後述する構造化文書処理プログラム１１０を実行することで、文書作成手段１００、構造化文書管理手段１０１は、要素共有実行手段１０２、共有要素判別手段１０３、共有元要素編集手段１０４、差分情報生成手段１０５、共有先要素編集手段１０６及び差分情報適用手段１０７等として機能する。
【００２２】
文書作成手段１００は、端末３の要求に応じて新規な構造化文書を作成する。
【００２３】
構造化文書管理手段１０１は、文書作成手段１００が作成した構造化文書に対応するテーブルを作成し、構造化文書データベースサーバ２の構造化文書２０Ａ及び構造化文書管理テーブル２０Ｂに書き込む。具体的には、構造化文書管理テーブル２０Ｂに要素間の共有又は被共有の対応関係を管理する。
【００２４】
要素共有実行手段１０２は、文書作成手段１００が作成した構造化文書に他の構造化文書の要素を参照する旨が指示されている場合、参照する共有先の要素（以下、「共有先要素」という。）の親要素を作成した構造化文書から読み出し、参照される共有元の要素（以下、「共有元要素」という。）を構造化文書管理テーブル２０Ｂから読み出し、共有先要素の親要素と共有元要素との関連付けを構造化文書データベースサーバ２の構造化文書管理テーブル２０Ｂに書き込むことで共有を実行する。
【００２５】
共有要素判別手段１０３は、端末３の要求に応じて利用者が選択し、編集の対象とする要素が共有元要素であるか、共有先要素であるかを構造化文書データベースサーバ２の構造化文書管理テーブル２０Ｂを参照して判別する。
【００２６】
共有元要素編集手段１０４は、共有元要素を編集し、編集前の要素と関連付けて編集した要素を構造化文書管理テーブル２０Ｂに新たに書き加える。
【００２７】
差分情報生成手段１０５は、編集前の共有元要素と編集後の共有元要素とを比較して、これらの差分を解析して差分情報を生成し、差分情報を構造化文書データベースサーバ２に入力する。差分情報は、要素の追加、削除、文字データの変更等の編集操作を示すテーブルである。
【００２８】
共有先要素編集手段１０６は、共有先要素を編集し、編集前の要素と関連付けて編集した要素を構造化文書管理テーブル２０Ｂに新たに書き加える。
【００２９】
差分情報適用手段１０７は、共有先要素の参照する共有元要素が共有元要素編集手段１０４によって編集されると、差分情報生成手段１０５が作成した差分情報を共有先要素に適用する。
【００３０】
記憶部１１は、制御部１０を上述した各手段１００〜１０７として動作させる構造化文書処理プログラム１１０等を記憶する。
【００３１】
図３（ａ）及び（ｂ）は、構造化文書データベースサーバ２に格納される情報の構成の一例を示す概略図であり、図３（ａ）は構造化文書２０Ａに含まれる要素、図３（ｂ）は構造化文書管理テーブル２０Ｂのうち図３（ａ）に示す要素に対応するテーブルである。なお、ここで示すテーブルは説明のため、構造化文書の構造と共有との情報を示す記載内容となっているが、各要素の属性の内容を示すテーブルの内容は省略している。例えば、要素id「ｘ０００２」は「システム構成図」という要素名「title」の属性を有し、要素id「ｘ０００３」は「path=”system.png”」という要素名「filebody」の属性を有している。
【００３２】
共有元要素２００ａは、構造化文書２０Ａの要素のうち他の文書から参照される共有元となる要素であって、図３（ａ）に示すように、例えば、ＸＭＬ等の構造化言語により記述される。一例として、要素ｉｄが「ｘ０００１」で要素名が図を示す「ｆｉｇ」である要素と、要素ｉｄが「ｘ０００２」で要素名が図のタイトルを示す「ｔｉｔｌｅ」である要素と、要素ｉｄが「ｘ０００３」で要素名が図の画像データを示す「ｆｉｌｅｂｏｄｙ」である要素とを有する。要素ｉｄが「ｘ０００２」の要素（以下、説明を簡単にするため『要素「ｘ０００２」』という。）と要素「ｘ０００３」は、要素「ｘ０００１」を親要素とする。
【００３３】
要素「ｘ０００２」には、タイトルとして「システム構成図」が登録されており、要素「ｘ０００３」には、画像データとして「ｓｙｓｔｅｍ．ｐｎｇ」が登録されている。
【００３４】
この共有元要素２００ａに対し、例えば、ＸＭＬ等に対する表現方法を定義するスタイルシートを適用することで、「システム構成図」というタイトルが付記された画像データ「ｓｙｓｔｅｍ．ｐｎｇ」が表示されるＨＴＭＬ等の文書が生成される。
【００３５】
共有元要素テーブル２００ｂは、構造化文書管理テーブル２０Ｂに含まれる行のうち共有元要素２００ａに対応する行を含んだテーブルであり、共有元要素２００ａの属性を管理する情報である。
【００３６】
共有元要素テーブル２００ｂは、図３（ｂ）に示すように、要素を識別する識別子を示す要素ｉｄ欄２５０と、要素の名称を示す要素名欄２５１と、編集によって更新される要素の版情報を示すバージョン欄２５２と、対象とする要素の親要素の識別子を示す親要素ｉｄ欄２５３と、同一の親要素を有する他の要素との関係において記述される順序を示す順序欄２５４と、要素の共有の状態を示す共有欄２５５とを有する。
【００３７】
図３（ａ）に示す例において、要素「ｘ０００２」及び要素「ｘ０００３」は要素「ｘ０００１」に含まれているため、要素「ｘ０００２」及び要素「ｘ０００３」の親要素ｉｄ欄２５３は双方とも「ｘ０００１」となる。また、要素「ｘ０００２」、要素「ｘ０００３」の順で記載されるため順序欄はそれぞれ「１」、「２」となる。
【００３８】
共有欄２５５は、要素が共有元であれば「１」を、共有先であれば「２」を、共有されていなければ「（空）」と示されるものとし、共有元要素２００ａは説明の後の段階で共有元となるが、現段階では共有されていないため「（空）」である。なお、子要素は親要素の共有欄２５５の設定に従うが、複数の親要素が存在する場合には構造化文書として参照された親要素の設定に従うこととなる。
【００３９】
（構造化文書処理システムの動作）
以下に、構造化文書処理システム５の動作を図１〜図１１を参照しつつ、（１）構造化文書処理システムの基本動作、（２）共有実行動作、（３）共有先要素編集動作及び（４）共有元要素編集動作に分けて説明する。
【００４０】
（１）構造化文書処理システムの基本動作
まず、利用者は、構造化文書を作成するために端末３の操作部３０を操作する。端末３の本体部３２は、操作部３０の発する操作信号に応じて構造化文書処理装置１と通信して構造化文書の作成を要求する。一例として、利用者は、共有元要素２００ａを参照する構造化文書を作成する。
【００４１】
構造化文書処理装置１の文書作成手段１００は、端末３の要求を受け付けて構造化文書作成のための画面を表示するための情報を端末３に送信する。
【００４２】
端末３は、構造化文書処理装置１から画面を表示するための情報を受信し、本体部３２にて処理して表示部３１に構造化文書を作成するための画面を表示する。利用者は、表示部３１の画面を参照しながら構造化文書を作成するために操作部３０を操作する。端末３は操作部３０の操作に応じて操作信号を出力し、構造化文書処理装置１に送信する。構造化文書処理装置１の文書作成手段１００は、操作信号を受信すると、操作信号に基づいて構造化文書を作成し、作成した文書を構造化文書データベースサーバ２に格納する。
【００４３】
以下に、構造化文書処理装置１の文書作成手段１００で作成された構造化文書の例として、既存の要素（共有元要素２００ａ）を参照する文書を説明する。
【００４４】
図４（ａ）及び（ｂ）は、構造化文書データベースサーバ２に格納される情報の構成の一例を示す概略図であり、図４（ａ）は新たに作成された構造化文書、図４（ｂ）は構造化文書管理テーブル２０Ｂのうち図４（ａ）に示す文書に対応するテーブルである。
【００４５】
共有先文書２１０Ａは、構造化文書処理装置１の文書作成手段１００によって新たに作成された構造化文書であって、図４（ａ）に示すように、要素ｉｄが「ｂ０００１」で要素名が文書を示す「ｂｏｏｋ」である要素と、要素ｉｄが「ｃ０００１」で要素名がチャプターを示す「ｃｈａｐｔｅｒ」である要素と、要素ｉｄが「ｃ０００２」で要素名がタイトルを示す「ｔｉｔｌｅ」である要素と、要素ｉｄが「ｃ０００３」で要素名が段落を示す「ｐａｒａ」である要素と、要素ｉｄが「ｒ０００１」で要素名が参照する要素を示す「ｒｅｆ」である要素とを有する。
【００４６】
要素「ｃ０００２」は、タイトルとして「システム構成」が入力されており、要素「ｃ０００３」は、段落の内容として「本システムの構成図を＜ｒｅｆ  ｉｄ＝”ｒ０００１”  ｒｅｆｉｄ＝”ｘ０００１”／＞に示す」が入力されている。
【００４７】
共有先文書テーブル２１０Ｂは、図４（ｂ）に示すように、共有元要素テーブル２００ｂと同様の項目欄２５０〜２５５を有し、共有先文書に含まれる要素の属性等が示される情報である。
【００４８】
図４（ａ）に示す例において、要素「ｒ０００１」は要素「ｃ０００３」に含まれているため、要素「ｒ０００１」の親要素ｉｄ欄２５３は「ｃ０００３」であり、要素「ｃ０００２」及び要素「ｃ０００３」は要素「ｃ０００１」に含まれているため、要素「ｃ０００２」及び要素「ｃ０００３」の親要素ｉｄ欄２５３は双方とも「ｃ０００１」となる。また、同様に要素「ｃ０００１」の親要素ｉｄ欄２５３は「ｂ０００１」となる。
【００４９】
また、要素「ｃ０００１」内では、要素「ｃ０００２」、要素「ｃ０００３」がこの順で記載されるため順序欄はそれぞれ「１」、「２」となる。
【００５０】
（２）共有実行動作
次に、作成された共有先文書２１０Ａに対して、共有元要素２００ａを参照するため、要素共有実行手段１０２により要素間の共有が実行される。
【００５１】
図６は、構造化文書処理装置１の動作例を示すフローチャートである。
【００５２】
まず、要素共有実行手段１０２は、共有先文書２１０Ａ中の他の文書の要素を参照する要素、つまり、図５（ａ）に示す要素ｉｄ「ｘ０００１」の親要素に該当する「ｃ０００１」を選択する（Ｓ１）。
【００５３】
次に、要素共有実行手段１０２は、要素ｉｄ「ｘ０００１」が参照する要素、つまり共有元要素テーブル２００ｂを読み出す（Ｓ２）。
【００５４】
次に、要素共有実行手段１０２は、関連付けを実行し（Ｓ３）、図５に説明する関連付け後の共有先文書テーブル２１１Ｂを得る。
【００５５】
図５（ａ）〜（ｃ）は、関連付け後の共有先文書の内容を示す概略図であり、図５（ａ）は共有先文書の内容、図５（ｂ）は図５（ａ）の共有先文書に対応する共有先文書テーブル２１１Ｂの構成の一例を示す概略図、図５（ｃ）は図５（ａ）に示す文書と図３（ａ）に示す共有元要素２００ａとの関係図である。
【００５６】
共有先文書テーブル２１１Ｂは、図５（ｂ）に示すように、図４（ｂ）に示す共有先文書テーブル２１０Ｂに参照する図３（ｂ）に示す共有元要素テーブル２１１ｂの要素「ｘ０００１」を追加して得られる。共有元要素テーブル２１１ｂは、共有先文書テーブル２１０Ｂの要素「ｃ０００１」に共有元要素テーブル２００ｂを関連付けることで生成される。
【００５７】
すなわち、共有元要素テーブル２１１ｂは、要素「ｘ０００１」の親要素ｉｄ欄２５３は共有先の親要素である要素「ｃ０００１」に設定されて、追加される。要素「ｘ０００１」の共有欄２５５は、共有元であることを示す「１」に設定される。また、要素「ｘ０００１」は、子要素「ｃ０００３」に続いて記述されるため、要素「ｘ０００１」の順序欄２５４は「３」に設定される。
【００５８】
以上の構成を概略的に示すと、図５（ｃ）に示すように、共有先文書２１１Ａ中のチャプターを示す要素「ｃ０００１」中において共有元要素２００ａを参照するよう紐付けられている構成となる。
【００５９】
次に、要素共有実行手段１０２は、関連付けされた共有先文書テーブル２１１Ｂを構造化文書データベースサーバ２に保存する（Ｓ４）。
【００６０】
（３）共有先要素編集動作
次に、利用者の操作に基づいて文書作成手段１００により共有先文書２１１Ａの共有先要素「ｘ０００１」が編集される場合の動作を説明する。なお、編集対象となる要素が共有元であるか、共有先であるかは、特定の構造化文書の編集対象が選択された際に、共有要素判別手段１０３によって構造化文書管理テーブル２０Ｂの編集対象に該当する行の共有欄２５５および選択された編集対象の親要素を参照して判別される。つまり、複数の構造化文書が存在し、１つの構造化文書Ａが他の構造化文書Ｂの一部の要素を共有しているとき、例えば構造化文書Ａとして共有している要素（共有元要素）を編集するのか、構造化文書Ｂとして共有されている要素（共有先要素）を編集するのか、を共有要素判別手段１０３で判別するのである。以下、編集対象が共有要素判別手段１０３によって共有先要素であると判断された場合において説明する。
【００６１】
図８は、構造化文書処理装置１の動作例を示すフローチャートである。
【００６２】
まず、共有先要素編集手段１０６は、利用者の操作に基づいて編集対象である共有先要素「ｘ０００１」の親要素である「ｃ０００１」を選択する（Ｓ１１）。また、共有先要素編集手段１０６は、編集対象である共有先要素「ｘ０００１」（図３）を読み出す（Ｓ１２）。
【００６３】
次に、共有先要素編集手段１０６は、利用者の端末３に対する操作に基づいて、参照される共有元要素２００ａを編集して共有先要素の編集結果を生成する（Ｓ１３）。編集結果の内容の一例を以下に説明する。
【００６４】
図７（ａ）〜（ｃ）は、共有先要素編集後の共有先文書の内容の一例を示す概略図であり、図７（ａ）は共有先要素編集結果、図７（ｂ）は図７（ａ）に示す共有先要素編集結果に対応する共有先要素テーブル、図７（ｃ）は共有先文書、共有元要素及び共有先要素編集結果の関係図である。
【００６５】
共有先要素編集手段１０６は、共有元要素２００ａを編集して、図７（ａ）に示すように、参照される共有元要素２００ａのタイトルを示す「ｘ０００２」の内容を「システム構成図」から「システム構成図（概要）」に変更した共有先要素編集結果２１２ａを得る。
【００６６】
また、図７（ｂ）に示すように、上記した編集内容に伴い、共有先要素編集結果２１２ａに対応する共有先文書テーブル２１２Ｂの共有先要素テーブル２１２ｂは、編集されたことを示すために要素ｉｄ欄２５０に新たな名称が付されて、共有を実施した要素の起点である「ｘ０００１」とその子要素である「ｘ０００２」及び「ｘ０００３」に対応した「ｘ０００１Ａ」、「ｘ０００２Ａ」及び「ｘ０００３Ａ」が付される。
【００６７】
次に、共有先要素編集手段１０６は、共有先要素編集結果２１２ａを共有元要素２００ａの親要素「ｃ０００１」に関連付け、「ｘ０００２Ａ」及び「ｘ０００３Ａ」の親要素を「ｘ０００１Ａ」とし（Ｓ１４）、共有先要素編集結果２１２ａを構造化文書データベースサーバ２に保存する（Ｓ１５）。
【００６８】
共有先要素編集手段１０６は、上記ステップＳ１４の共有先要素編集結果２１２ａの関連付けの動作として、図７（ｂ）に示すように、まず、共有先文書テーブル２１１Ｂ（図５）に共有先要素テーブル２１２ｂを加えて、共有先文書テーブル２１２Ｂとする。次に、共有先要素編集手段１０６は、共有先要素テーブル２１２ｂの親要素ｉｄ欄２５３及び順序欄２５４を共有元要素テーブル２１１ｂ（図５）と同様の内容に設定するとともに、要素「ｘ０００１Ａ」の共有欄２５５を、共有先を示す「２」に設定する。
【００６９】
以上の動作により生成された構成を概略的に示すと、図７（ｃ）に示すように、共有先文書２１２Ｂ中のチャプターを示す要素ｉｄ「ｃ０００１」中において共有元要素２００ａを参照するよう紐付けられているとともに、編集結果である共有先要素編集結果２１２ａが共有元要素２００ａに関連付けられている構成となる。
【００７０】
（４）共有元要素編集動作
（４−１）差分解析動作
次に、利用者の操作に基づいて文書作成手段１００により共有元要素２００ａが編集される場合の動作を説明する。なお、共有先文書２１１Ａを作成及び編集した利用者と異なる利用者によって共有元要素２００ａが編集される場合であっても以下に説明する動作と同様に動作する。ただし、共有元要素２００ａに編集権限の制限等が設定されている場合は、その権限を有する者が共有元要素２００ａを編集する場合とする。
【００７１】
また、先述したように、編集対象となる要素が共有元であるか、共有先であるかは、特定の構造化文書の編集対象が選択された際に共有要素判別手段１０３によって各テーブルの共有欄２５５および選択された編集対象の親要素を参照することで判別される。ここで説明する例では、共有元要素２００ａの要素であり、要素id「ｘ０００１」、親要素id「（空）」の構造化文書として要素「ｘ０００３」を編集するものである。要素id「ｘ０００１」は図７（ｂ）で示されるように親要素id「ｃ０００１」から共有されている状態であると判別できる。以下、編集対象が共有元要素であると判断された場合において説明する。
【００７２】
図１１は、構造化文書処理装置１の動作例を示すフローチャートである。
【００７３】
まず、共有元要素編集手段１０４は、利用者の端末３に対する操作に基づいて、共有元要素２００ａを選択する（Ｓ２１）。
【００７４】
次に、共有元要素編集手段１０４は、利用者の端末３に対する操作に基づいて、共有元要素２００ａの内容を編集する（Ｓ２２）。
【００７５】
図９（ａ）〜（ｃ）は、共有元要素編集後の共有先文書の内容の一例を示す概略図であり、図９（ａ）は共有元要素、図９（ｂ）は図９（ａ）に示す共有元要素に対応する共有元要素テーブル、図９（ｃ）は共有先文書、編集後の共有元要素及び差分情報の関係図である。
【００７６】
共有元要素２０１ａは、共有元要素２００ａを共有元要素編集手段１０４によって編集されたものであり、図９（ａ）に示すように、画像データを示す要素「ｘ０００３」の内容が「ｓｙｓｔｅｍ．ｐｎｇ」から「ｓｙｓｔｅｍ＿ｖｅｒ２．ｐｎｇ」に変更されたものである。つまり、要素中の画像データが他の画像データに変更されている。
【００７７】
次に、この共有元要素２０１ａについて、共有元要素編集手段１０４は、共有元要素２０１ａを共有元要素２００ａに関連付け、編集結果を構造化文書データベースサーバ２に保存する（Ｓ２３）。
【００７８】
共有元要素編集手段１０４は、上記ステップＳ２３の関連付けの動作として、図９（ｂ）に示すように、まず、共有先文書テーブル２１２Ｂ（図７）に要素id「ｘ０００３」の親要素であり、共有を実施した起点である要素id「ｘ０００１」を含む構造の共有元要素テーブル２０１ｂを加えることで共有先文書テーブル２１３Ｂとする。次に、共有元要素テーブル２０１ｂの親要素ｉｄ欄２５３、順序欄２５４及び共有欄２５５を共有元要素テーブル２１１ｂ（図５）と同様の内容に設定するとともに、そのバージョン欄２５２を「２」と設定する。
【００７９】
次に、差分情報生成手段１０５は、共有元要素２００ａと編集後の共有元要素２０１ａとを比較し、差分を解析して、画像データを示す要素「ｘ０００３」の属性の内容が「ｓｙｓｔｅｍ．ｐｎｇ」から「ｓｙｓｔｅｍ＿ｖｅｒ２．ｐｎｇ」へ変更された旨を差分情報２０１ｃとして生成し、保存する（Ｓ２４）。
【００８０】
また、差分情報２０１ｃは、要素内の属性の変更以外に、例えば、要素内の属性の追加及び削除、要素の追加、削除及び移動、並びに要素直下の文字情報の追加、削除及び変更等の情報を含んでもよい。
【００８１】
以上の動作により生成された構成を概略的に示すと、図９（ｃ）に示すように、共有先文書２１３Ｂ中のチャプターを示す要素ｉｄ「ｃ０００１」中において共有元要素２００ａを参照するよう紐付けられているとともに、編集結果である共有先要素編集結果２１２ａが共有元要素２００ａに関連付けられ、共有元要素２００ａにバージョンが「２」である共有元要素２０１ａが差分情報２０１ｃとともに関連付けられている構成となる。
【００８２】
（４−２）差分適用動作
次に、差分情報適用手段１０７は、共有元要素テーブル２０１ｂの親要素ｉｄ欄２５３に共有先文書テーブル２１３Ｂの要素があるか否か確認し（Ｓ２５）、要素「ｘ０００１」のように要素「ｃ０００１」を親要素に持つ場合（Ｓ２５；Ｙｅｓ）であって、その親要素「ｃ０００１」の編集結果、つまり共有先要素編集結果２１２ａがある場合（Ｓ２６；Ｙｅｓ）、共有先要素編集結果２１２ａを取得し（Ｓ２７）、差分情報２０１ｃを適用してバージョンが「２」である共有先要素編集結果２１４ａを生成して、共有先文書テーブル２１３Ｂ（図９）に共有先要素テーブル２１４ｂを加えて共有先文書テーブル２１４Ｂとし、構造化文書データベースサーバ２に保存する（Ｓ２８）。
【００８３】
図１０（ａ）〜（ｃ）は、差分情報適用後の共有先文書の内容の一例を示す概略図であり、図１０（ａ）は差分適用後の共有先要素、図１０（ｂ）は図１０（ａ）に示す共有先要素を含む共有先文書テーブル、図１０（ｃ）は共有先文書、差分情報及び差分適用後の共有先要素の関係図である。
【００８４】
共有先要素編集結果２１４ａは、差分情報適用手段１０７によって共有先要素編集結果２１２ａに対して差分情報２０１ｃを適用したものであり、画像データを示す要素「ｘ０００３」の内容が「ｓｙｓｔｅｍ．ｐｎｇ」から「ｓｙｓｔｅｍ＿ｖｅｒ２．ｐｎｇ」へ変更された旨が適用され、図１０（ａ）に示すように、要素「ｘ０００３Ａ」の内容が「ｓｙｓｔｅｍ．ｐｎｇ」から「ｓｙｓｔｅｍ＿ｖｅｒ２．ｐｎｇ」へ変更されている。
【００８５】
なお、差分情報２０１ｃは、要素「ｘ０００３」の内容を変更したものであったが、例えば、要素「ｘ０００２」を変更するものである場合は、共有先要素編集結果２１４ａにおいては要素「ｘ０００２Ａ」が利用者によって既に編集済みであり、共有欄２５５が「空」となっているため、適用されない。
【００８６】
次に、差分情報適用手段１０７は、図１０（ｂ）に示すように、共有先要素テーブル２１４ｂの親要素ｉｄ欄２５３、順序欄２５４及び共有欄２５５共有先要素編集結果２１２ａと同様の内容に設定し、親要素「ｃ０００１」に関連付けを更新して共有先文書テーブル２１４Ｂを構造化文書データベースサーバ２に保存する（Ｓ１９）。
【００８７】
また、ステップＳ１６において、共有先要素編集結果がない場合は（Ｓ１６；Ｎｏ）、共有先の親要素への関連付けのみ更新して保存する（Ｓ１９）。
【００８８】
また、ステップＳ１５において、共有先の親要素がない場合は（Ｓ１５；Ｎｏ）、差分適用動作を終了する。
【００８９】
以上の動作によって生成された構成を概略的に示すと、図１０（ｃ）に示すように、共有先文書２１４Ｂ中のチャプターを示す要素ｉｄ「ｃ０００１」中において共有元要素２０１ａを参照するよう紐付けられているとともに、編集結果である共有先要素編集結果２１４ａが共有元要素２０１ａに関連付けられている構成となる。また、共有元要素２００ａと差分情報２０１ｃは、共有元要素２０１ａに紐付けられ、共有先要素編集結果２１２ａは、共有先要素編集結果２１４ａに紐付けられる。
【００９０】
［変形例］
なお、差分情報２０１ｃの適用の方法は、上記した要素内の属性の変更に対するものの他、要素内の属性の追加及び削除、要素の追加、削除及び移動、並びに要素直下の文字情報の追加、削除及び変更等の差分情報の内容ごとに様々に定義してもよい。一例として以下に説明する方法を用いる。
【００９１】
差分情報２０１ｃの内容が要素内の属性の追加の場合、属性を追加した共有元要素を参照する共有先要素を適用対象から探す。共有先要素が見つからなければ差分を適用しない。共有先要素が見つかり、かつその共有先要素内に追加した属性がない場合は追加する。
【００９２】
差分情報２０１ｃの内容が要素内の属性の削除の場合、属性を追加した共有元要素を参照する共有先要素を適用対象から探す。共有先要素が見つからなければ差分を適用しない。共有先要素が見つかり、その共有先要素内に削除した属性と同内容の属性があり、かつ属性値が同じであった場合は削除する。
【００９３】
差分情報２０１ｃの内容が要素の追加の場合、共有元要素に追加した要素の親要素を、適用対象である共有先文書から探す。共有先文書から親要素が見つからなければ差分を適用しない。親要素が存在した場合、追加した要素と同じ親要素を持つ共有先要素で、順序欄２５４が若い要素(以下、「兄要素」という。)のうち、追加した要素に内容が最も近い要素を適用対象から探す。兄要素から内容が近いものが見つかった場合、その直後に差分として要素を追加する。兄要素が見つからない場合、追加した要素と同じ親要素を持つ要素で、順序欄２５４が後の要素(以下、「弟要素」という。)のうち、追加した要素に最も近い要素を適用対象から探す。弟要素が見つかった場合、その直前に差分として要素を追加する。兄要素も弟要素も見つからない場合、親要素の子の最後に差分として要素を追加する。
【００９４】
差分情報２０１ｃの内容が要素の削除の場合、共有元から削除した要素を、適用対象である共有先文書から探す。要素が見つからなければ差分を適用しない。要素が存在した場合、適用対象から該当する要素を削除する。
【００９５】
差分情報２０１ｃの内容が要素の移動の場合、共有元において移動した要素の移動先の親要素を、適用対象である共有先文書から探す。親要素が見つからなければ差分を適用しない。親要素が存在した場合、移動した要素の兄要素のうち、追加した要素に内容が最も近い要素を適用対象から探す。兄要素が見つかった場合、その直後に要素を移動する。兄要素が見つからない場合、弟要素のうち、追加した要素に最も近い要素を適用対象から探す。弟要素が見つかった場合、その直前に要素を移動する。兄要素も弟要素も見つからない場合、親要素の子の最後に要素を移動する。
【００９６】
差分情報２０１ｃの内容が要素直下の文字情報の追加の場合、共有元において文字データを追加した要素を、適用対象である共有先文書から探す。要素が見つからなければ差分を適用しない。要素が見つかり、かつその要素が文字情報を持たない場合は文字データを追加する。
【００９７】
差分情報２０１ｃの内容が要素直下の文字情報の削除の場合、共有元において文字情報を削除した要素を、適用対象である共有先文書から探す。要素が見つからなければ差分を適用しない。要素が見つかり、かつその要素が文字情報を持ち、かつその文字情報が同じである場合は文字情報を削除する。
【００９８】
差分情報２０１ｃの内容が要素直下の文字情報の変更の場合、共有元の文字情報を変更した要素を、適用対象である共有先文書から探す。要素が見つからなければ差分を適用しない。要素が見つかり、かつその要素が文字情報を持ち、かつその変更前の文字情報が同じであった場合は文字情報を変更する。
【００９９】
［他の実施の形態］
なお、本発明は、上記実施の形態に限定されず、本発明の要旨を逸脱しない範囲で種々な変形が可能である。
【０１００】
また、上記構造化文書処理プログラム１１０をＣＤ−ＲＯＭ等の記憶媒体に格納して提供することも可能であり、インターネット等のネットワークに接続されているサーバ装置等から装置内の記憶部にダウンロードしてもよい。また、文書作成手段１００、要素共有実行手段１０２、共有要素判別手段１０３、共有元要素編集手段１０４、差分情報生成手段１０５、共有先要素編集手段１０６及び差分情報適用手段１０７の一部又は全部をＡＳＩＣ等のハードウェアによって実現してもよい。なお、上記実施の形態の動作説明で示した各ステップは、順序の変更、ステップの省略、追加が可能である。
【符号の説明】
【０１０１】
１…構造化文書処理装置、２…構造化文書データベースサーバ、３…端末、４…ネットワーク、５…構造化文書処理システム、１０…制御部、１１…記憶部、１２…通信部、２０Ａ…構造化文書管理テーブル、２０Ｂ…構造化文書、３０…操作部、３１…表示部、３２…本体部、１００…文書作成手段、１０２…要素共有実行手段、１０３…共有要素判別手段、１０４…共有元要素編集手段、１０５…差分情報生成手段、１０６…共有先要素編集手段、１０７…差分情報適用手段、１１０…構造化文書処理プログラム、２００ａ…共有元要素テーブル、２００ｂ…共有元要素、２０１ａ…共有元要素テーブル、２０１ｂ…共有元要素、２０１ｃ…差分情報、２１０Ａ…共有先文書テーブル、２１０Ｂ…共有先文書、２１１Ａ…共有先文書テーブル、２１１Ｂ…共有先文書、２１１ａ…共有元要素テーブル、２１２Ａ…共有先文書テーブル、２１２Ｂ…共有先文書、２１２ａ…共有先要素テーブル、２１２ｂ…共有先要素編集結果、２１３Ａ…共有先文書テーブル、２１３Ｂ…共有先文書、２１４Ａ…共有先文書テーブル、２１４Ｂ…共有先文書、２１４ａ…共有先要素テーブル、２１４ｂ…共有先要素編集結果
【図１】
2012069054.tif 000003
【図２】
2012069054.tif 000004
【図３】
2012069054.tif 000005
【図４】
2012069054.tif 000006
【図５】
2012069054.tif 000007
【図６】
2012069054.tif 000008
【図７】
2012069054.tif 000009
【図８】
2012069054.tif 000010
【図９】
2012069054.tif 000011
【図１０】
2012069054.tif 000012
【図１１】
2012069054.tif 000013