JP3673189B2 - 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム - Google Patents
書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム Download PDFInfo
- Publication number
- JP3673189B2 JP3673189B2 JP2001151604A JP2001151604A JP3673189B2 JP 3673189 B2 JP3673189 B2 JP 3673189B2 JP 2001151604 A JP2001151604 A JP 2001151604A JP 2001151604 A JP2001151604 A JP 2001151604A JP 3673189 B2 JP3673189 B2 JP 3673189B2
- Authority
- JP
- Japan
- Prior art keywords
- monitoring area
- document
- structured document
- area
- writing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、異なる文書構造の複数の構造化文書を記憶する記憶手段に記憶されている構造化文書に対する複数のユーザからの書き込み要求を制御するための書き込み制御方法およびそれを用いた装置に関する。
【0002】
【従来の技術】
近年、情報処理技術の発展に伴い、処理する文書データも、テキストデータといった単なる文字の羅列である文書データだけでなく、HTML(Hypertext Markup Language),XML(Extensible Markup Language)などの文書を構成する構成要素が既定されている文書データを扱うようになってきた。
【0003】
特許明細書や、週報など、文書の種類によっては、その書式が予め定められて、1つの書式に統一されているのが一般的である。1つの書式に統一された文書もあれば、全く書式のない自由書式の文書も数多く存在する。このような様々な種類の書式の文書をXMLなどで記述された構造化文書として格納・管理することは、今後ますます需要が増すと考えられる。
【0004】
一方、1つの文書データに対して複数のユーザが同一の文書データを取り出し、編集を行ない、書き込みを行なう場合がある。このとき、複数のユーザの行なった編集が、お互いの編集内容に対して、矛盾が生じていない場合はすべての書き込み要求を許可すべきであり、矛盾が生じている場合は、書き込み要求を不許可すべきである。
【0005】
複数の書き込みにより内容に矛盾が生じることを「衝突(コンフリクト)」と呼ぶ。複数のユーザの編集内容に対して、編集による「衝突」の判定を行なうには、同一文書データの各構成要素の依存関係から、ある構成要素を書き換えたことによる影響がどの構成要素まで広がるかを調べる必要がある。そして、複数の書き込み要求と、これら要求のそれぞれに応じて書き込みを行うことにより影響を及ぼす範囲とを調べる。もし、影響を及ぼす範囲に重なる部分(差集合)が存在するならば、それは、複数の書き込みによる「衝突」が起きる可能性を意味する。また、重なる部分(差集合)が存在しなければ、それは、複数の書き込みによる「衝突」が起きる可能性が無いことを意味する。
【0006】
このような、データの書き込みによる影響を及ぼすデータの範囲(データ群)を、「依存範囲」と呼ぶことにする。原理的には、この依存範囲にあるデータ群単位に、複数ユーザからの書き込み要求を制御して、文書データの書き換えにより矛盾が生じないように(衝突が生じないように)監視することにより、1つの同じ依存範囲にあるデータに対し、例えば、書き込みを行っている最中に他の書き込み要求が合った場合には、それを不許可にするといった制御を行えばよいことになる。
【0007】
異なる文書構造の複数の構造化文書を記憶する記憶手段に対し、複数のユーザがアクセスして、1つの構造化文書に対し複数のユーザが書き換えを行うような環境においては、複数のユーザによる書き込みにより衝突が発生しないように、上記のような文書データを監視する必要がある。従って、構造化文書を対象にした、複数のユーザからの書き込みを制御する手法は、上記のような環境においては、必要不可欠である。
【0008】
データベースは、複数のユーザからアクセスされることを前提としているので、複数のユーザからの書き込みを制御する手段は不可欠であった。
【0009】
従来のリレーショナルデータベースでは、
・第一正規形
・第二正規形
・第三正規形
・第四正規形
・ボイス−コッド正規形
を満たすリレーションの設計が行なわれているという仮定のもと、複数ユーザによる書き込み要求の制御は、1つのタプル単位にトランザクション管理を行なうことで、同じタプルに対する複数の書き込みを防ぐようになっている。すなわち、例えば、あるタプルに対し書き込みを行っている最中に、他の書き込み要求による書き込みが行われないように制御を行っている。
【0010】
このタプルに含まれるデータ群と、上記依存範囲とが同じであれば、リレーショナルデータベースは同じタプルへの書き込みをトランザクション管理のもと防ぐことができるので、「衝突」が起きる可能性はない。
【0011】
しかし、同じリレーション内の複数のタプル間に上記依存範囲がある場合は、リレーショナルデータベースは、タプルを越えた単位でのトランザクション管理を行なわないため、「衝突」が生じる可能性がある。
【0012】
このように、従来のリレーショナルデータベースでは、文書データの書き換えにより矛盾が生じないように(衝突が生じないように)監視する監視領域が、リレーショナルデータベースを構築する際に予め設定されたタプル単位に固定的に設定されて、同じタプルに対する複数の書き込み要求を制御していた。
【0013】
複数のユーザの書き込み要求を制御するシステムの他の例として、CVS(Concurrent Versions System)がある。
【0014】
CVSではテキストデータの文書を対象にし、各文書データに対して「行」を書き込み単位と決めうちにしており、かつ、同じ行は、依存範囲にあるとして、行をそのまま、文書データの書き換えにより矛盾が生じないように(衝突が生じないように)監視するための監視領域として予め固定的に設定されている。そのため、同じ行に、互いに独立した内容が混在していたとしても、CVSは、それらが同じ行に存在するために、依存関係があるものと判定する。そして、複数の書き込み要求が同じ行へ行なわれた場合は、たとえ、書き込み内容が互いに独立であったとしても、CVSは、それらを「衝突」とみなす。
【0015】
CVSでは、衝突が起きた場合は、衝突が起きた書き込み要求をすべて受け入れ、衝突が起きた旨を示すマークを文書データ中に書き込む。ユーザは、そのマークを見て衝突が起きた旨を知り、再び複数の書き込み内容を見て新たに書き込み要求を行なうようになっていた。
【0016】
このように、従来からある、文書データへの書き込みを制御するシステムでは、タプルや行など、予め固定的に定めた範囲のデータ群単位に、文書データの書き換えにより、その内容に矛盾が生じないように(衝突が生じないように)監視するようになっていた。
【0017】
監視領域が固定的に設定されていると、次のような問題点が生じる。
【0018】
例えば、タプル単位に監視領域が固定的に設定されている上記リレーショナルデータベースの場合を例にとり、図29を参照して具体的に説明する。
【0019】
図29(a)に示すような住所録がリレーショナルデータベースに格納されているとする。図29(a)に示すように、監視領域の1つのタプルには、「名前」「住所」「自宅電話番号」という3のデータが含まれている。よって、例えば、ある1つのタプルの「住所」への書き込み最中に、同じタプル中の「名前」「住所」「自宅電話番号」のいずれかへの書き込み要求が発生しても、その要求は拒否される。
【0020】
このとき、タプル単位に設定されている監視領域を「名前」と「住所」、「名前」と「自宅電話番号」というように、2つに分割する場合には、まず、図29(b)に示すように、リレーションを設計しなおして、この新たなリレーションに対して、図29(c)に示すようにデータを入力し直す。
【0021】
このように、あるリレーションにおける監視領域の変更を行なう場合、再び、リレーションの設計をやりなおし、新しく設計したリレーションに再度データを追加する作業が必要となる。
【0022】
また、図29(a)において、「田中太郎」と「田中花子」が結婚しており、必ず同じ家に住んでいるので、「田中太郎」と「田中花子」の属する2つのタプルを1つの監視領域に変更したい場合(すなわち、上記リレーショナルデータベースで、同じリレーション内のデータで、一部の複数のタプルについては、それを1つの監視領域に変更する場合)、上記同様、1つの監視領域にすべきタプルを1つのタプルに変更するよう、リレーションを変更し直さなければならない。
【0023】
次に、CVSについてだが、CVSでは文書データの行単位に監視領域が設定されている。そのため、依存範囲にあるデータ群は、まとめて1行で記述しなければならない。
【0024】
例えば、図30(a)に示すような「住所録」情報をCVSで管理していたとする。
【0025】
これも、先ほどと同様に「田中太郎」、「田中花子」を1つの監視領域として監視したい場合、これら2人のデータを、一行にまとめる必要があるので、図30(b)に示すように変更する。
【0026】
しかし、これでは各「行」によってフォーマットが変わってしまうため、非常に読み辛いものとなる。また、フォーマットが変わると、この文書データに対して計算機処理を行なっていた場合、処理内容を全面的に書き直す必要がでてくる。
【0027】
【発明が解決しようとする課題】
このように、従来からある、文書データへの書き込みを制御するシステムでは、タプルや行など、予め固定的に定めた範囲のデータ群単位に、文書データの書き換えにより、その内容に矛盾が生じないように(衝突が生じないように)監視するようになっていた。
【0028】
このような従来の手法では、構造化文書に対しては容易に適用することはできない。すなわち、文書構造が異なれば、それに応じて、データの書き込みによる影響を及ぼすデータの範囲(依存範囲)も異なるため、単純に、タプル単位、行単位と全ての文書構造に対し、統一的にしかも固定的に監視領域を設定することができないからである。
【0029】
そこで、本発明は、上記問題点に鑑み、異なる文書構造の複数の構造化文書のそれぞれに対する複数のユーザからの書き込み要求を、各構造化文書のそれぞれの文書構造に応じて効率よく、しかも柔軟に制御することができる書き込み制御方法およびそれを用いた構造化文書管理装置および構造化文書編集装置を提供することを目的とする。
【0030】
【課題を解決するための手段】
本発明は、異なる文書構造の複数の構造化文書を記憶する記憶手段に記憶されている構造化文書に対する複数のユーザからの書き込み要求を制御するためのものであって、前記異なる文書構造のそれぞれについて、その文書構造の構成要素で特定される領域単位に前記複数のユーザからの書き込みを制御するための監視領域を設定し、この監視領域の設定された文書構造を持つ前記構造化文書中の前記監視領域毎に、前記複数のユーザからの書き込みを制御することを特徴とする。
【0031】
本発明によれば、異なる文書構造の複数の構造化文書のそれぞれに対する複数のユーザからの書き込み要求を、各構造化文書のそれぞれの文書構造に応じて効率よく、しかも柔軟に制御することができる。すなわち、文書構造毎に、その文書構造毎に適した監視領域を設定することができるので、複数のユーザからの書き込み要求を制御する際に衝突を回避するための適切な監視領域を、異なる文書構造のそれぞれに対し容易に変更可能に設定できる。
【0032】
好ましくは、前記文書構造の構成要素の依存関係に基づき、少なくとも1つの構成要素からなる領域単位に前記監視領域を設定する。
【0033】
例えば、1つの構造化文書に会社名を記述する構成要素と、会社の電話番号を記述する構成要素とがあり、それらがそれぞれ別個の監視領域に設定されているとする。この場合、当該構造化文書に対し、複数のユーザからの書き込みがあり、監視領域単位に、後述する書き込み制御を行った結果、会社名を記述する構成要素の書き換えは許可され、会社の電話番号を記述する構成要素への書き換えは拒否されたとする。すると、両者の内容に矛盾が生じてしまう。しかし、互いに依存関係のある複数の構成要素単位に監視領域を設定することにより、書き換え制御の結果、書き換えられた構造化文書中に、上記のような意味的な矛盾が生じることを回避できる。
【0034】
また、前記監視領域の設定された文書構造を持つ前記構造化文書の前記構成要素に前記監視領域である旨の属性情報を付与することで、前記構造化文書中に前記監視領域を設定することにより、各構造化文書に対し、容易に変更可能なように監視領域の設定(指定)が行える。
【0035】
また、前記異なる文書構造のそれぞれについて、前記監視領域として指定された構成要素名と、その構造化文書の持つ文書構造の識別情報との対応関係を記憶しておき、この記憶した対応関係に基づき、前記監視領域の設定された文書構造を持つ前記構造化文書中に前記監視領域を設定することにより、同じ文書構造を持つ大量の構造化文書に対し、容易に監視領域を設定することができる。
【0036】
また、前記監視領域内のデータが最後に書き換えられたときの時刻を該監視領域のデータのバーション番号として用い、該監視領域に対する書き込みは、どのバージョン番号のデータに対する書き込みであるかに基づき前記複数のユーザからの書き込みを制御することにより、1つの監視領域に対し、複数のユーザからの書き込み要求があった場合に、書き込みを許可するか否かを容易に判断することができる。
【0037】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。
【0038】
図1は、本実施形態に係る文書データ管理システムの要部の構成例を概略的に示したもので、大きく分けて、複数の文書データを記憶し、管理するサーバとしての領域指定済み文書データ管理装置(以下、簡単に文書データ管理装置と呼ぶ)1と、この文書データ管理装置1に適宜接続して、この文書データ管理装置1から読み出された領域指定済み文書データに対し編集等を行う例えば、PDAや携帯電話、パーソナルコンピュータ等のクライアントとしての端末装置2から構成されている。
【0039】
なお、文書データ管理装置1が構造化文書管理装置に対応し、端末装置2が構造化文書編集装置に対応する。
【0040】
文書データ管理装置1は、領域指定済み文書データ生成部11と、領域指定済み文書データ記憶部12と、監視領域指定変更部13と、文書データ書き込み部14と文書データ読み出し部15と、時刻管理部16と、対応テーブル記憶部17とから構成されている。
【0041】
端末装置2は、少なくとも書き込み要求生成部21と、差分文書生成部22と、文書データ編集部23を有している。
【0042】
図1の文書データ管理システムの処理対象の文書データは、文書構造を有する構造化文書である。構造化文書には、例えば、SGMLやXMLなどで記述されたものがある。SGML(Standard Generalized Markup Language)とは、ISO(国際標準化機構)で定められた規格である。XML(eXtensible Markup Language)とは、W3C(World Wide Web Consortium)にて定められた規格である。それぞれ文書を構造化することを可能とする構造化文書規約である。
【0043】
以下、構造化文書として、XMLにて記述された文書を例に説明を進める。すなわち、ここでは、XMLで記述された構造化文書を処理対象とする文書データ管理システムについて説明するが、以下に説明する本発明の要旨は、XML以外の記述言語で記述された構造化文書にも適用可能である。
【0044】
領域指定済み文書データ生成部11は、構造化文書の文書データとその文書構造の種類を識別するための識別情報と、監視領域指定データ(後述)とが入力されると、これらを基に領域指定済み文書データ(後述)を生成する。文書データに監視領域指定データを入力して領域指定済み文書データを生成すると、その際に用いた当該監視領域指定データは、その文書データの文書構造の種類に対応させて、対応テーブル17に登録する。後に、領域指定済み文書データ生成部11に、この対応テーブル17に既に監視領域指定データの登録されている文書構造の文書データが入力されてきたときは、対応テーブル17に登録されている監視領域指定データを用いて、領域指定済み文書データを生成する。
【0045】
すなわち、文書構造が複数あれば、そのそれぞれに対応する文書データ1つのみに対し、監視領域指定データを入力すれば、同じ文書構造の他の文書データについてもわざわざ監視領域指定データを入力する必要なく、(単に文書構造の識別情報を指定するだけで)領域指定済み文書データを生成することができる。
【0046】
領域指定済み文書データ生成部11で生成された領域指定済み文書データは、領域指定済み文書データ記憶部12に記憶される。
【0047】
図1の文書データ管理システムでは、異なる文書構造の複数の構造化文書を処理対象としている。従って、これら複数の構造化文書は、それぞれ、その構造化文書に対応する文書構造の種類にて分類されて、領域指定済み文書データ記憶部12に記憶するようになっている。
【0048】
図10は、領域指定済み文書データ記憶部12での文書データの記憶例を模式的に示したもので、文書構造の識別情報(例えば、「住所録」、「スケジュール」など)と、各文書構造の識別情報に対応する文書データのファイルとをテーブル状に関連付けて記憶している。
【0049】
文書データ読み出し部15は、端末装置2からの要求に応じて、領域指定文書データ記憶部12から領域指定済み文書データを読み出す。
【0050】
監視領域指定変更部13は、すでに監視領域が指定されている文書構造と、その文書構造を持ち、すでに領域指定済み文書データ記憶部12に記憶されている領域指定済み文書データとに対して、監視領域の指定を変更するためのものである。
【0051】
時刻管理部16は、文書データ書き込み部14と領域指定済み文書データ生成部11とに最終書き込み時刻(後述)を提供するためのものである。
【0052】
端末装置2の文書データ編集部23は、文書データ管理装置1から読み出された領域指定済み文書データを編集するためのものである。
【0053】
差分文書生成部22は、編集前と編集後の領域指定済み文書データを監視領域単位に比較して、その差分を抽出し、差分文書(後述)を生成する。
【0054】
書き込み要求生成部21は、上記生成された差分文書に基づき、文書データ管理装置1に対する書き込み要求を生成する。
【0055】
文書管理装置1の文書データ書き込み部14は、端末装置2から送信されてきた書き込み要求を受け付けて、この書き込み要求と、時刻管理部16から提供された時刻データとを基に、領域指定済み文書データ記憶部12に書き込みを行うためのものである。
【0056】
図2は、領域指定文書データ生成部11の構成例を示したもので、文書データ入力部111と、監視領域指定部112と、監視領域指定データ入力部113と、最終書き込み時刻データ入力部114と、書き込み部115とから構成されている。以下、図2と、図11に示すフローチャートを参照して、領域指定文書データ生成部11の構成と、処理動作について説明する。
【0057】
領域指定済み文書データは、例えばXMLといった複数の構成要素から構成された文書構造を有する構造化文書と、少なくとも1つの構成要素からなる監視領域を指定する領域指定データから生成されるものである。
【0058】
監視領域とは、1つの文書構造の少なくとも1つの構成要素毎に設定され得るものである。本実施形態では、文書構造の有する複数の構成要素のうち、少なくとも1つの構成要素からなるデータ範囲毎に監視領域を設定するようになっている。監視領域は、(後述するような)複数のユーザからの書き込みに対する制御を行うためのデータの範囲である。
【0059】
例えば、1つの構造化文書に会社名を記述する構成要素と、会社の電話番号を記述する構成要素とがあり、それらがそれぞれ別個の監視領域に設定されているとする。この場合、当該構造化文書に対し、複数のユーザからの書き込みがあり、監視領域単位に、後述する書き込み制御を行った結果、会社名を記述する構成要素の書き換えは許可され、会社の電話番号を記述する構成要素への書き換えは拒否されたとする。すると、両者の内容に矛盾が生じてしまう。このように、文書構造の持つ複数の構成要素のうち、そのうちの少なくとも1つの構成要素の値を書き換えることにより、書き換えられていない他の構成要素の値に矛盾を生じるような関係にある(これを依存関係と呼ぶ)上記複数の構成要素群からなるデータ範囲を監視領域と設定し、この監視領域単位に、(後述するような)複数のユーザからの書き込みに対する制御を行うことにより、上記のような内容的な矛盾が生じる衝突を容易に回避することができるという効果がある。
【0060】
書き込み制御とは、ここでは、例えば、複数のユーザが、それぞれ、ある同じ構造化文書の同じ監視領域の同じバージョンのデータに対し書き込みを行う場合に、この複数のユーザのそれぞれからの書き込み要求のうち、最も早い時刻に届いたものだけを実行し、それ以外は拒否するといった、監視領域単位の制御である。
【0061】
具体的には、監視領域単位に、その監視領域のデータの上記バーション番号に対応する、その監視領域に対し最後に書き込みを行ったときの時刻(最終書き込み時刻)を記録しておき、それと、今回書き込みを行うために用いた書き換え前の当該監視領域に書き込まれていた最終書き込み時刻とを比較し、前者の時刻の方が新しいときには、今回の書き込みを拒否するようになっている。
【0062】
さらに、上記文書構造毎に設定した監視領域は、後述するように、容易に変更可能である。
【0063】
XML文書は、構造化文書として標準的な文書形式である。XMLは、ノードと呼ばれる構成要素を、木構造状に構成することにより、構造化文書を形成している。
【0064】
たとえば、「住所録」情報をXMLで表したもの(文書データ)を以下に示す。
【0065】
上記文書データは、「住所録」という構成要素(ノード)の子要素に複数の「メンバ」という子要素があり、さらに、各「メンバ」要素は、「名前」、「メール」、「勤務先」という子要素から構成された文書構造を持つ。各構成要素は、その要素名を表したタグ(<要素名>)で囲まれてなる。
【0066】
例えば、上記「住所録」情報という文書データの持つ上記したような文書構造の識別情報を「住所録」とする。
【0067】
ここで、XMLについて簡単に説明する。
【0068】
XMLは、文書の構造の表現にタグが用いられる。タグには、開始タグと終了タグがあり、文書構造情報の構成要素を開始タグと終了タグで囲むことにより、文書中の文字列(テキスト)区切りと、そのテキストが構造上どの構成要素に属するのかを明確に記述することができる。
【0069】
ここで開始タグとは要素名を記号「<」、「>」で閉じたものであり、終了タグとは要素名を記号「</」と「>」で閉じたものである。タグに続く構成要素の内容が、テキスト(文字列)または子供の構成要素の繰り返しである。また開始タグには「<要素名 属性=“属性値”>」などのように属性情報を設定することができる。また、例えば、「<メール></メール>」のように要素の値としてのテキストを含まない構成要素は、簡易記法として「<メール/>」のように表わすこともできる。
【0070】
ここでは、「住所録」タグの子要素の1つである「メンバ」ノード以下にある構成要素群からなるデータの範囲を指定するために、「住所録/メンバ」と表し、さらに、「メンバ」の子要素である「名前」ノード以下にある構成要素群からなるデータの範囲を指定するために「住所録/メンバ/名前」と表す。このような構造化文書中の特定のエリア(データの範囲)を指定するもの(「住所録/メンバ」、「住所録/メンバ/名前」)をパスと呼ぶ。
【0071】
さて、上記「住所録」情報の文書データに対して、例えば、監視領域を、「メンバ」という構成要素単位、すなわち、「メンバ」という構成要素以下に存在する構成要素群からなるデータ範囲毎に設定する場合を考える。例えば、監視領域指定データのフォーマットを、「監視領域=(監視領域へのパス)」とすると、この場合の監視領域指定データは、「監視領域=住所録/メンバ」となる。
【0072】
上記「住所録」情報のような文書データを、文書データ管理装置1に新たに格納しようとする場合を例にとり説明する。
【0073】
文書データ入力部11には、上記「住所録」情報のような文書データと、その文書データの文書構造の識別情報(例えば、この場合、「住所録」)が入力する(図11のステップS1)。入力された文書データと、その文書データの文書構造の識別情報は、監視領域指定部112へ渡される。
【0074】
このとき、監視領域指定部112は、対応テーブル17を参照して、対応テーブル17に、当該入力された文書構造の識別情報に対応する監視領域指定データが登録されていないときのみ、ユーザに対し、所定のメッセージを表示するなどして、監視領域指定データの入力を促す(図11のステップS2)。この場合、ユーザは、監視領域指定データ入力部113に、例えば、「監視領域=住所録/メンバ」なる監視領域指定データを入力すればよい(図11のステップS3)。監視領域指定データ入力部113に入力された監視領域指定データは、監視領域指定部112へ渡される。
【0075】
監視領域指定部112は、受け取った監視領域指定データ(「監視領域=住所録/メンバ」)を、図8に示したように、対応テーブル17に、当該領域指定済み文書データの文書構造の識別情報(例えば、「住所録」)に対応させて登録する(図11のステップS4)。
【0076】
一方、図11のステップS2で、対応テーブル17に、当該入力された文書構造の識別情報に対応する監視領域指定データが登録されているときは(監視領域指定データを新たにユーザに入力してもらう必要ない)、対応テーブル17から当該入力された文書構造の識別情報に対応する監視領域指定データを読み出す。そして、ステップS3,ステップS4をスキップし、ステップS5へ進む。
【0077】
次に、図11のステップS5で、監視領域指定部112は、文書データ入力部11から入力した、まだ監視領域の設定されていない文書データと、監視領域指定データ入力部113から入力した監視領域指定データ(あるいは、対応テーブル17から読み出した監視領域指定データ)とから領域指定済み文書データを生成する(図11のステップS5)。
【0078】
例えば、「監視領域=住所録/メンバ」なる監視領域指定データと、上記「住所録」情報の文書データとから、図6に示すような領域指定済み文書データが生成される。
【0079】
図6の2行目、7行目に示しように、領域指定済み文書データでは、監視領域指定データにて監視領域として指定された構成要素であることを表すための情報を、その構成要素の属性情報として追加している。すなわち、監視領域として指定された構成要素(要素名「メンバ」なる構成要素)の開始タグには、属性情報「監視領域=”true”」が設定されている。
【0080】
最終書き込み時刻データ入力部114からは、時刻管理部16から提供される時刻データが上記最終書き込み時刻データとして入力する。書き込み部115は、上記生成された領域指定済み文書データの各監視領域に、領域指定済み文書データ記憶部12に書き込む時刻である、上記最終書き込み時刻を記録する(図11のステップS6)。
【0081】
例えば、図6に示したような領域指定済み文書データの場合、監視領域は「メンバ」という構成要素単位に指定されている。また、図6に示した領域指定済み文書データを領域指定済み文書データ記憶部12に格納するときに、最終書き込み時刻データとして受け取った時刻データが、例えば、「2001/3/3 10:23」であったとする。このとき、書き込み部115では、図6に示した領域指定済み文書データの監視領域として指定された構成要素の開始タグに、例えば、図7の2行目、6行目に示すように、属性情報として「最終書き込み時刻=”2001/3/3 10:23”」をさらに設定する。
【0082】
書き込み部115は、最終的に、監視領域として設定した構成要素毎に、監視領域であることを指定するための属性情報と、最終書き込み時刻を示した属性情報とが設定された図7に示したような領域指定済み文書データのファイル(例えば、ファイル名「住所録A」とする)を、図1の領域指定済み文書データ記憶部12に、図10に示したように格納する(図11のステップS7)。
【0083】
以上は、1つの文書構造の1つの文書データのファイルについての説明であるが、実際には、複数の異なる文書構造の文書データが存在し、その各文書構造毎に、上記したように、監視領域を設定する(領域指定済み文書データを生成して、それを対応テーブル17に登録する)ことになる。
【0084】
そして、1つのある文書構造のある1つの文書データに対し上記したように、監視領域を設定することにより、対応テーブル17には、図8に示したように、文書構造の識別情報と、それに対応する監視領域指定データとが登録されるので、以後、この対応テーブル17を参照することにより、これと同じ文書構造の他の文書データにも同じ構成要素に監視領域を設定(指定)することができる。
【0085】
例えば、上記「住所録」情報の文書データとは異なる文書構造の文書データとして、図9に示すような構造化文書があるとする。
【0086】
図9の構造化文書は、「スケジュール」情報の文書データであり、「スケジュール」という構成要素(ノード)の子要素に複数の「Item」という子要素があり、さらに、各「Item」要素は、「Date」、「Time」、「Subject」、「Place」、「Body」という子要素から構成された文書構造を持つ。
【0087】
例えば、図9の「スケジュール」情報の文書データの持つ上記したような文書構造の識別情報を「スケジュール」とする。
【0088】
「住所録」情報の文書データの場合と同様にして、図9に示したような文書データの文書構造に対し、監視領域を、例えば、「Item」という構成要素毎に設定する場合を考える。この場合の監視領域指定データは、「監視領域=スケジュール/Item」となる。
【0089】
図11に従って、図9の構造化文書を文書データ管理装置1に新たに格納した場合、対応テーブル17には、図8に示すように、文書構造の識別情報「スケジュール」と、監視領域指定データ「監視領域=スケジュール/Item」とが登録される。また、領域指定済み文書データ記憶部12に図9に示した文書データのファイル(例えば、ファイル名「スケジュールA」)が図10に示したように格納される。
【0090】
図28は、領域指定済み文書データ生成部11の他の構成例であって、文書構造認識部116が監視領域指定部112に接続されている点が、図2の構成と異なる。
【0091】
文書構造認識部116は、パーサ(Parser)を持ち、これにより、入力する文書データの文書構造を認識するためのものでる。文書構造認識部116は、異なる文書構造のそれぞれについてのDTD(Documen Type Definition:文書型定義)を予め記憶しておく。この各DTDは、その文書構造の識別情報に対応付けて記憶されている。
【0092】
文書データ入力部111から新たな文書データが入力されると、この文書構造認識部116にて、その入力した文書データに対応する文書構造はどれであるかを、パーサが予め記憶したDTDを1つずつ用いて、入力した文書データの文書構造にマッチするDTDの識別情報を求めるようになっている。従って、この文書構造認識部116があれば、文書構造の識別情報の入力は必要ない。
【0093】
その後の処理動作は、図11と同様である。
【0094】
次に、端末装置2について説明する。
【0095】
端末装置2からの要求に応じて、文書データ読み出し部15により領域指定済み文書データ記憶部12から読み出された図2に示したような領域指定済み文書データは、文書データ編集部23で、閲覧、編集される。
【0096】
差分文書生成部22は、編集前と編集後の領域指定済み文書データを監視領域単位に比較して、その差分を抽出し、差分文書(後述)を生成するものである。
【0097】
図3は、差分文書生成部22の構成例を示したもので、領域指定済み文書データ入力部221、222と、領域抽出部223と、領域比較部224とから構成されている。
【0098】
領域指定済み文書データ入力部221には、編集前の領域指定済み文書データが入力し、領域指定済み文書データ入力部221には、文書データ編集部23で編集された後の領域指定済み文書データが入力する。
【0099】
領域抽出部223は、上記編集前の領域指定済み文書データと編集後の領域指定済み文書データとのそれぞれから、対応する監視領域を抽出する。
【0100】
領域比較部224は、編集前と編集後の領域指定済み文書データのそれぞれから抽出された対応する2つの監視領域を比較し、差分を生成し、差分文書(後述)を生成する。
【0101】
書き込み要求生成部21は、差分文書を入力し、差分文書(後述)が示している領域と、書き込み内容を抽出し、それらを含む書き込み要求を生成するようになっている。
【0102】
次に、文書データ管理装置1の説明に戻る。
【0103】
図4は、文書データ管理装置1の文書データ書き込み部14の構成例を示したもので、最終書き込み時刻記録部141と、領域書き込み部142と、領域検出部143と、書き込み要求受信部144とから構成されている。
【0104】
書き込み要求受信部144は、端末装置2から送られてきた書き込み要求を受信し、受信した書き込み要求に含まれている、領域指定済み文書データ中の書き込み対象の監視領域はどれであるかを示す情報(書き込み対象領域情報)と、実際に書き込む内容を示した情報(書き込み内容情報)とを取り出す。
【0105】
領域検出部143は、領域指定済み文書データ記憶部12に記憶されている領域指定済み文書データから、書き込み対象領域情報を基に、書き込み対象領域を検出する。
【0106】
領域書き込み部142は、領域指定済み文書データから検出された書き込み対象領域(書き込み対象の監視領域)に対して、受信した書き込み要求に含まれていた書き込み内容情報に基づき書き込みを行なう。
【0107】
最終書き込み時刻記録部141は、領域書き込み部142で書き込みを行った監視領域に、その書き込みを行った時刻を「最終書き込み時刻」という属性情報の属性値として記録する。
【0108】
図5は、監視領域指定変更部13の構成例を示したもので、監視領域指定変更要求受信部131と、監視領域指定削除部133と、監視領域指定作成部134とから構成されている。
【0109】
監視領域指定変更要求受信部131は、ユーザからの監視領域指定変更要求を受信する。
【0110】
監視領域指定削除部133は、監視領域指定変更要求に含まれる、どの文書構造について、監視領域をどの構成要素からどの構成要素へ変更するかを指定した情報を基に、領域指定済み文書データ記憶部12に記憶されている当該指定された文書構造の領域指定済み文書データ中の現在の監視領域の現在の監視領域の指定を削除するためのものである。
【0111】
監視領域指定作成部134は、監視領域指定変更要求に含まれる、どの文書構造について、監視領域をどの構成要素からどの構成要素へ変更するかを指定した情報を基に、監視領域指定データを作成し、この作成された監視領域指定データで、対応テーブル17の当該文書構造の識別情報に対応する監視領域指定データを書き換える。そして、領域指定済み文書データ記憶部12に記憶されている当該指定された文書構造の領域指定済み文書データ中に新たな監視領域として指定された構成要素の開始タグに属性情報「監視領域=”true”」を書き込み、当該構成要素を監視領域として設定する
次に、ユーザが端末装置2を文書データ管理装置2に接続して、端末装置2にて、文書データ管理装置2に記憶されている領域指定済み文書データを閲覧、編集を行なう場合の説明を行なう。
【0112】
文書データ管理装置1の文書データ読み出し部15が、端末装置2からの読み出し要求を受け取ると、当該要求に含まれている領域指定済み文書データの識別情報(例えば、ここでは、ファイル名であるとする)に対応する領域指定済み文書データを領域指定済み文書データ記憶部12から読み出し、それを当該端末装置2へ出力する。
【0113】
端末装置2では、当該領域指定済み文書データを、差分文書生成部22に編集前の領域指定済み文書データとして入力するとともに、文書データ編集部23へ入力する。
【0114】
その後、ユーザは、文書データ編集部23を用いて、当該領域指定済み文書データの閲覧、編集を行なうことができる。
【0115】
一般に、編集には、当該領域指定済み文書データの一部を書き換えたり、削除したり、新た追加作成するなどの場合がある。
【0116】
差分文書生成部22は、このような編集の結果得られた領域指定済み文書データと、編集前の領域指定済み文書データとを監視領域単位に比較して、どのような種類の編集をどの箇所にどのように行われたかを示した差分文書を作成する。
【0117】
編集の種類は、ここでは、例えば、「追加」、「書き換え」、「削除」の3種類があるとする。
【0118】
ユーザが文書データ編集部23を用いて、例えば、図7の領域指定済み文書データ中、8行目の「鈴木花子」を「小川花子」に書き換えたとする。その結果、差分文書生成部22で生成される差分文書は、図13のようになる。
【0119】
図13の差分文書において、1行目から2行目には、編集の種類として「書き換え」と記述され、3行目から8行目には、編集前の当該監視領域のデータがそのまま対象領域として記述され、9行目〜14行目には、どのように書き換えられたかを示すために、編集後の当該監視領域のデータがそのまま記述されている。すなわち、図13の差分文書からも、編集前には「鈴木花子」であったところが(5行目)、編集後には「小川花子」に書き換えられた(11行目)ことがわかる。
【0120】
また、ユーザが文書データ編集部23を用いて、例えば、図7の領域指定済み文書データ中、例えば、最後の11行目と12行目との間に、以下に示すような「メンバ」要素を1人分追加するようなデータを書き込む編集を行ったとする。追加の場合、必ず末尾に追加するように予め定めておくことが望ましい。
【0121】
その結果、差分文書生成部22で生成される差分文書は、図14のようになる。
【0122】
図14の差分文書において、1行目から2行目には、編集の種類として「追加」と記述され、3行目から8行目には、どのようなデータが追加されたかを示すために、追加された1つの監視領域のデータが記述されている。
【0123】
また、ユーザが文書データ編集部23を用いて、例えば、図7の領域指定済み文書データ中、7行目〜11行目の1人分の「メンバ」要素を削除する編集を行ったとする。その結果、差分文書生成部22で生成される差分文書は、図15のようになる。
【0124】
図15の差分文書において、1行目から2行目には、編集の種類として「削除」と記述され、3行目から8行目には、編集により削除された当該監視領域のデータがそのまま対象領域として記述されている。
【0125】
図12に示したフローチャートを参照して、図3の差分文書生成部22の処理動作について説明する。
【0126】
ユーザが文書データ編集部23を用いて、例えば、図7の領域指定済み文書データ中、8行目の「鈴木花子」を「小川花子」に書き換える編集を行ったとする。
【0127】
差分文書生成部22の領域指定済み文書データ入力部221には、図7の編集前の領域指定済み文書データが入力し、領域指定済み文書データ入力部222には、編集後の領域指定済み文書データが入力する(図12のステップS11)。
【0128】
領域抽出部223は、入力された編集前と編集後の領域指定済み文書データを読み込み、これら2つの領域指定済み文書データのそれぞれから、対応する監視領域を(例えば、並んでいる順番に)1つずつ抽出する(図12のステップS12)。
【0129】
編集前と編集後の領域指定済み文書データのそれぞれから対応する監視領域を1つ抽出したら、それらの比較を行う(図12のステップS14)。
【0130】
対応する2つの監視領域のデータを比較して、例えば、編集後の領域指定済み文書データ中の当該監視領域中のデータの一部が、編集前の領域指定済み文書データ中の当該監視領域中のデータと異なるときには、編集の種類が「書き換え」であると判断し、ステップS17へ進む。
【0131】
また、編集後の領域指定済み文書データ中に、編集前の領域指定済み文書データ中の当該監視領域に対応する監視領域が存在しないときは、編集の種類が「削除」であると判断し、ステップS16へ進む。
【0132】
また、編集前の領域指定済み文書データ中に、編集後の領域指定済み文書データ中の当該監視領域に対応する監視領域が存在しないときは、編集の種類が「追加」であると判断し、ステップS15へ進む。
【0133】
ステップS15では、編集の種類が「追加」である、図14に示したような差分文書の生成を行う。
【0134】
ステップS16では、編集の種類が「削除」である、図15に示したような差分文書の生成を行う。
【0135】
ステップS17では、編集の種類が「書き換え」である、図13に示したような差分文書の生成を行う。
【0136】
ところで、図1の文書データ管理システムで取り扱う文書データの構成要素に、閲覧のみで書き換え、削除などの編集を拒否するような属性情報を設定する事も可能である。例えば、図7の3行目にある「名前」要素のデータについては閲覧のみであるという属性を設定したい場合には、「閲覧のみ=“true”」という属性情報を「名前」要素の開始タグに書き込み、下記のように記述することにする。
【0137】
「<名前 閲覧のみ=“true”>山田太郎</名前>」
図12のステップS17において、編集後の領域指定済み文書データ中の比較対象として抽出された監視領域のデータに、上記「閲覧のみ=“true”」という属性情報付きの構成要素が含まれているときは、当該監視領域から、そのような構成要素を削除して、編集後の編集後の領域指定済み文書データ中の比較対象として抽出された監視領域のデータとする。
【0138】
上記比較を、編集後、編集前の領域指定済み文書データ中の全監視領域に対して行なった後(ステップS13)、生成された全ての差分文書を書き込み要求生成部21へ出力して、処理を終了する(ステップS19)。
【0139】
なお、差分文書には、処理対象の領域指定済み文書データの識別情報として、例えば、ファイル名が含まれていてもよい。
【0140】
次に、端末装置2の書き込み要求生成部21は、入力された差分文書を基に、書き込み要求を生成する。書き込み要求には、領域指定済み文書データの識別情報として、例えば、ファイル名と、当該領域指定済み文書データ中の書き込み対象の監視領域はどれであるかを示す情報(書き込み対象領域情報)と、実際に書き込む内容を示した情報(書き込み内容情報)とが含まれている。
【0141】
差分文書に記述された編集の種類が「追加」の場合は、書き込み対象領域情報が「空」、書き込み内容情報が、当該差分文書中の「変更内容」の欄に記述されたデータとなるような書き込み要求を生成する。
【0142】
差分文書に記述された編集の種類が「削除」の場合は、書き込み対象領域情報が、差分文書中の「対象領域」の欄に記述された監視領域となり、書き込み内容情報が「空」の書き込み要求を生成する。
【0143】
差分文書に記述された編集の種類が「書き換え」の場合は、書き込み対象領域情報が、差分文書中の「対象領域」の欄に記述された監視領域となり、書き込み内容情報が、差分文書の変更内容の欄に記述されたデータとなるような書き込み要求を生成する。例えば、図13に示した差分文書を基に生成される書き込み要求は、例えば、図16に示すようなものとなる。
【0144】
端末装置2の書き込み要求生成部21生成された、例えば、図16に示すような書き込み要求は、文書データ管理装置1に送信される。
【0145】
文書データ管理装置1の文書データ書き込み部14は、例えば図16に示したような書き込み要求を受信すると動作を開始する。
【0146】
次に、図17に示すフローチャートを参照して、図4の文書データ書き込み部14の処理動作について説明する。
【0147】
図16に示したような書き込み要求は、文書データ書き込み部14の書き込み要求受信部144にて受信される(ステップS21)。
【0148】
受信した書き込み要求から、書き込み対象領域情報、書き込み内容情報を取り出す(ステップS22)。
【0149】
ステップS23において、書き込み対象領域情報が空の場合(すなわち、編集の種類が追加であり、監視領域を追加する書き込みを行うような書き込み要求の場合)、ステップS24へ進み、領域書き込み部142は、領域指定済み文書データ記憶部12に格納されている指定された領域指定済み文書データに対し、当該書き込み要求に含まれている書き込み内容情報を用いて、新規に監視領域を作成する書き込みを行う(ステップS24)。そして、最終書き込み時刻記録部141は、この新たに書き込まれた新規の監視領域の開始タグに、属性情報として最終書き込み時刻を記録する(ステップS30)。
【0150】
例えば、図7に示した領域指定済み文書データに対し、端末装置2において、「鈴木花子」を「小川花子」に書き換えた場合、図13に示したような差分文書が生成され、さらに、図16に示したような書き込み要求が生成されるが、この書き込み要求を文書データ書き込み部14が受信した場合には、上記のような処理を経て、図18に示すように、領域指定済み文書データ記憶部12に格納されている図7に示した当該領域指定済み文書データが書き換えられる。この場合、図18の8行目にある「名前」要素の値が「小川花子」に書き換えられている。また、このような書き込みを行った時刻が「2001/3/3 12:21」であったので、図18の7行目にある「メンバ」要素には、属性情報として、最終書き込み時刻=“2001/3/3 12:21”が書き込まれている。
【0151】
さて、図17のステップS23において、書き込み対象領域情報が空でない場合には、ステップS25へ進む。
【0152】
ステップS25では、領域指定済み文書データ検出部143は、領域指定済み文書データ記憶部12に格納されている指定された領域指定済み文書データ中から、書き込み対象領域情報にて指定された監視領域を検出する。この検出は、単純に、書き込み対象領域情報中の各構成要素の値と、領域指定済み文書データ記憶部12に格納されている指定された領域指定済み文書データ中の各監視領域中の各構成要素の値とのマッチングにより、当該指定された監視領域を検出すればよい。
【0153】
領域指定済み文書データ記憶部12に格納されている指定された領域指定済み文書データ中から、当該指定された監視領域の検出が成功したときには、ステップS26へ進み、失敗したときには、そこで処理を終了する。
【0154】
ステップS26では、領域書き込み部142は、まず、書き込み内容情報中の監視領域の属性情報である最終書き込み時刻と、上記検出された書き込み対象領域の監視領域の属性情報である最終書き込み時刻とを比較して、衝突の判定を行う。
【0155】
書き込み対象領域の最終書き込み時刻の方が、書き込み内容情報中の監視領域の最終書き込み時刻より新しいときは、領域指定済み文書データ記憶部12から今回編集のために当該領域指定済み文書データを読み出した後に、他のユーザから同じ領域指定済み文書データ中の同じ監視領域への書き込みがあったことになるので、衝突があると判定できる。従って、今回の書き込み要求は拒否され、そのまま処理を終了する。
【0156】
一方、書き込み対象領域の最終書き込み時刻の方が、書き込み内容情報中の監視領域の最終書き込み時刻より古いか、あるいは双方とも同じ時刻であるときは、今回の書き込み要求を許可しても衝突は起こらないので、ステップS27へ進み処理を続行する。
【0157】
ステップS27では、書き込み内容情報が空である場合(すなわち、編集の種類が削除であり、監視領域を削除するか書き込みを行うような書き込み要求の場合)、ステップS29へ進み、そうでない場合(すなわち、編集の種類が書き換えであり、監視領域の一部のデータを書き換える書き込みを行うような書き込み要求の場合)、ステップS28へ進む。
【0158】
ステップS28では、領域書き込み部142は、領域指定済み文書データ記憶部12に格納されている指定された領域指定済み文書データのステップS25で検出された書き込み対象領域に対し、当該書き込み要求に含まれている書き込み内容情報を用いて、書き込みを行う。そして、最終書き込み時刻記録部141は、この書き換えられた監視領域の開始タグの属性情報である最終書き込み時刻の値を、そのときに時刻管理部16から提供された時刻データを用いて書き換える(ステップS30)。
【0159】
ステップS29では、領域書き込み部142は、領域指定済み文書データ記憶部12に格納されている指定された領域指定済み文書データのステップS25で検出された書き込み対象領域を削除する。
【0160】
最後に、文書構造毎に設定した監視領域を変更する監視領域変更部13の処理動作について、図19に示すフローチャートを参照して説明する。例えば、図7に示した領域指定済み文書データの文書構造に設定されている監視領域を現在の「メンバ」という構成要素単位から、「名前」、「メール」、「勤務先」という構成要素単位に設定し直す場合を例にとり説明する。
【0161】
監視領域指定変更要求受信部131にて、ユーザからの監視領域指定変更要求を受信する(ステップS41)。この監視領域指定変更要求には、文書構造の識別情報(この場合、「住所録」と、監視領域をどの構成要素からどの構成要素へ変更するかを指定した情報(この場合、「住所録/メンバ」から「住所録/メンバ/名前」と「住所録/メンバ/メール」と「住所録/メンバ/勤務先」への変更を指定する情報)とが含まれている。
【0162】
監視領域指定削除132は、監視領域指定変更要求に含まれる文書構造の識別情報を基に、領域指定済み文書データ記憶部12に記憶されている当該指定された文書構造を持つ全ての領域指定済み文書データ中の現在の監視領域の指定を削除する。すなわち、監視領域と指定する属性情報「監視領域=”true”」を削除する(ステップS42)。
【0163】
例えば、図7に示した領域指定済み文書データの場合、図25に示すように、「メンバ」という構成要素から属性情報「監視領域=”true”」を全て削除する。
【0164】
監視領域指定作成部134は、監視領域指定変更要求に含まれる、監視領域をどの構成要素からどの構成要素へ変更するかを指定した情報を基に、監視領域指定データを作成し(ステップS43)、この作成された監視領域指定データで、対応テーブル17の当該文書構造の識別情報に対応する監視領域指定データを書き換える(ステップS44)。そして、領域指定済み文書データ記憶部12に記憶されている当該指定された文書構造の領域指定済み文書データ中に新たな監視領域として指定された構成要素の開始タグに属性情報「監視領域=”true”」を書き込み、当該構成要素を監視領域として設定する(ステップS45)。
【0165】
例えば、ここで、作成される監視領域指定データは、「監視領域=住所録/メンバ/名前」と「監視領域=住所録/メンバ/メール」と「監視領域=住所録/メンバ/勤務先」となる。また、対応テーブル17の文書構造の識別情報が「住所録」の欄には、図26に示すように、上記3つの監視領域指定データが登録される。また、図25に示すように、属性情報「監視領域=”true”」が全て削除された当該文書構造を持つ文書データのそれぞれには、上記3つの監視領域指定データを用いて、図27に示すように、「名前」タグ、「メール」タグ、「勤務先」タグのそれぞれに属性情報「監視領域=”true”」を書き込む。
【0166】
なお、上記実施形態では、ユーザからの監視領域指定変更要求には、文書構造の識別情報(例えば、「住所録」)と、監視領域をどの構成要素からどの構成要素へ変更するかを指定した情報(例えば、「住所録/メンバ」から「住所録/メンバ/名前」と「住所録/メンバ/メール」と「住所録/メンバ/勤務先」への変更を指定する情報)とが含まれていて、監視領域指定作成部134は、上記監視領域指定変更要求に含まれる、監視領域をどの構成要素からどの構成要素へ変更するかを指定した情報を基に監視領域指定データ(例えば、「監視領域=住所録/メンバ/名前」と「監視領域=住所録/メンバ/メール」)を作成する場合を説明したが、この場合に限らず、例えば、ユーザからの監視領域指定変更要求には、文書構造の識別情報と、新たな監視領域指定データそのもの(例えば、上記の場合、「監視領域=住所録/メンバ/名前」と「監視領域=住所録/メンバ/メール」)が含まれていてもよい。この場合、監視領域指定作成部134は、監視領域指定データを作成する必要がなく、受け取った新たな監視領域指定データを対応テーブル17へ登録するとともに、この受け取った新たな監視領域指定データを基に、属性情報「監視領域=”true”」を削除した領域指定済み文書データに対し、新たな監視領域を設定し直せばよい。
【0167】
(複数の書き込み要求が合った場合の文書データ書き込み部の処理の具体的な説明)
例えば、2人のユーザA、Bが図7に示したような同じ領域指定済み文書データを読み出し、それぞれの端末装置2で編集を行ったとする。
【0168】
ユーザAは、図7の5行目の「太陽通信」を「太陽通信 株式会社」に書き換える編集を行ったとする。この場合の書き込み要求を図20に示す。
【0169】
一方、ユーザBは、図7の4行目の「yamada@taiyo−tusin.com」を「yamada@taiyo−communicate.com」に書き換え、9行目の「hanako@kanagawa−gass.co.jp」を「hanako@yokohama−gass.co.jp」に書き換え、さらに、10行目の「神奈川ガス」を「ヨコハマガス」に書き換える編集を行ったとする。2つの監視領域にまたがった編集をおこなったことになる。この場合の書き込み要求は、図21に示すように、書き込みを行う各監視領域毎に全部で2つある。
【0170】
ユーザAからの上記編集を行った結果を領域指定済み文書データ記憶部12に反映させるための書き込み要求が、「2001/3/3 11:10」に届き、ユーザBからの上記編集を行った結果を領域指定済み文書データ記憶部12に反映させるための書き込み要求が、「2001/3/3 12:10」に届いたとする。すなわち、ユーザAからの書き込み要求がユーザBからの書き込み要求より早い時刻に届いたとする。
【0171】
ユーザAからの書き込み要求に含まれる、書き込み内容情報中の監視領域の属性情報である最終書き込み時刻は、図20の8行目にあるように、「2001/3/3 10:23」である。一方、図17のステップS25で書き込み対象領域として検出された、領域指定済み文書データ記憶部12に格納されている指定された領域指定済み文書データ中の書き込み対象領域情報にて指定された監視領域の属性情報である最終書き込み時刻は、図7の2行目にあるように、「2001/3/3 10:23」であるので、双方は同じ時刻である。従って、ユーザAからの図20に示すような書き込み要求が実行されて、領域指定済み文書データ記憶部12に記憶されている図7に示した領域指定済み文書データは、図22に示すように書き換えられる。図22において、書き換えを行った監視領域の属性情報である最終書き込み時刻の値が、「2001/3/3 11:10」に書き換えられている。
【0172】
領域指定済み文書データ記憶部12に、図22に示した領域指定済み文書データが格納されている状態で、ユーザBからの書き込み要求が届く。ユーザBからの書き込み要求は、図21(a)、(b)に示すように、2つあり、それぞれに含まれる、書き込み内容情報中の監視領域の属性情報である最終書き込み時刻は、図21(a)、(b)のそれぞれの8行目にあるように、「2001/3/3
10:23」と同じである。
【0173】
図21(a)の書き込み要求は、図22の2行目から6行目の監視領域に対する書き換え要求であり(すなわち、図22の2行目から6行目の監視領域が書き換え対象領域)、図21(b)の書き換え要求は、図22の7行目から11行目の監視領域(すなわち、図22の7行目から11行目の監視領域が書き換え対象領域)に対する書き換え要求である。
【0174】
図21(a)の書き込み要求に含まれる、書き込み内容情報中の監視領域の属性情報である最終書き込み時刻は、図20の8行目にあるように、「2001/3/3 10:23」である。一方、図17のステップS25で検出された書き込み対象領域の属性情報である最終書き込み時刻は、図22の2行目にあるように、「2001/3/3 11:10」であるので、図17のステップS26において、衝突と判定できるので、図21(a)の書き込み要求は拒否される。
【0175】
一方、図21(b)の書き込み要求は実行される。
【0176】
上記の例では、ユーザA,Bの「山田太郎」に関するデータ書き込み要求は、ユーザAは「勤務先」という構成要素に対して、ユーザBは「メール」という構成要素に対して行うものであった。互いに、異なる要素に対して書き込み要求を行なっているため、もし、監視領域の指定がなかったら、ユーザA、Bの書き込み要求が衝突(コンフリクト)を起こしていることは、検出できない。
【0177】
監視領域内の各構成要素は、互いに依存関係がある。また、そのようになるように監視領域を設定している。そのため、同じ最終書き込み時刻を持つ監視領域への書き込み要求が複数きた場合は、複数の書き込み要求内の内容に矛盾がある可能性がある。そのため、同じ最終書き込み時刻を持つ監視領域に対する複数の書き込み要求は、一番早い時刻に来たものだけを許可にし、残りの書き込み要求を不許可にしなければならない。
【0178】
(図12のステップS17における処理の説明:文書データの編集が制限される端末装置Y)
例えば、図23に示すような「社員住所録」情報の領域指定済み文書データを例にとり説明する。図23に示す文書データは、「住所録」という構成要素(ノード)の子要素に複数の「メンバ」という子要素があり、さらに、各「メンバ」要素は、「名前」、「メール」、「会社」という子要素から構成され、さらに、「会社」という構成要素は「会社名」と「部署名」という子要素から構成される文書構造を持つ。この文書構造の識別情報を「社員住所録」とする。
【0179】
監視領域は、「名前」、「メール」「会社」という構成要素毎に設定されている。
【0180】
さて、2つの異なる端末装置X、Yがあるとする。
【0181】
端末装置Xは、「名前」、「アドレス」、「会社名」、「部署名」なる構成要素すべてが閲覧、編集可能である。端末装置Yは、「名前」、「アドレス」、「会社名」なる構成要素が閲覧、編集可能で、「部署名」なる構成要素は、閲覧のみで編集はできないとする。
【0182】
端末装置Yに、このような制限を与えるために、例えば、端末装置Yでは、当該文書構造に対応する閲覧のみで編集はできない構成要素名を指定した情報(「閲覧のみの構成要素:(文書構造の識別情報:構成要素)」)を予め記憶しておくことが望ましい。例えば、上記の例では、例えば、文書データ編集部23には、「閲覧のみの構成要素:(社員住所録:部署名)」というデータが予め記憶されている。
【0183】
そして、端末装置Yにて図23に示した文書データ3を読み出したときに、文書データ編集装置23にて閲覧、編集する前に、端末装置Yが、「部署名」という構成要素に、閲覧のみであり、編集はできないことを意味する属性情報「閲覧のみ=“true”」を書き込む。
【0184】
端末装置X,Yの両方を用いる環境において、「社員住所録」情報中のある人物が会社を変えたため、「会社名」という構成要素の値を変更する場合を考える。このとき、端末装置Yからは、端末装置Yが、構成要素「部署名」に対して、編集できないために、構成要素「部署名」の値を変更することはできない。
【0185】
しかし、端末装置Yで構成要素「会社名」の値を書き換える編集を行った後に、端末装置Xで、書き換えた後の当該文書データを閲覧した場合、構成要素「会社名」の値は変更されているにも関わらず、構成要素「部署名」の値には、古い値が残るという不具合が生じる。これでは、誤解を招きやすい。
【0186】
よって、端末装置Yから、書き込み要求行なう場合は、不正確なデータを残すよりは、不正確なデータを削除するようが良い。
【0187】
監視領域の各要素は、お互いに依存している要素であり、監視領域内の構成要素が1つ変更されると、それに追随して他の要素も変更される可能性がある。
【0188】
しかし、同じ監視領域内で閲覧しかできない構成要素に対しては、上記した端末装置Yのように、端末装置の制限により、構成要素が編集できない可能性がある。そのため、閲覧しかできない構成要素は、矛盾のあるデータを残しておくよりは、削除する方が好ましい。
【0189】
よって、差分文書生成部22の領域比較部224は、監視領域内の比較を行ない、ある一部の構成要素が変更されており、しかも同じ監視領域中に「閲覧のみ」の属性情報がついている構成要素がある場合は、その構成要素を削除する差分文書を生成することにする。
【0190】
例えば、図23に示した文書データに対して、端末装置Yにて、4行目の「yamada@taiyo−tusin.com」を「yamada@nihon−tusin.com」に書き換え、6行目の「太陽通信」を「日本通信」に書き換える編集を行ったとする。
【0191】
この場合、構成要素「メール」の監視領域と構成要素「会社」の監視領域の2つの監視領域に対する編集であるので、2つの差分文書が生成されるが、後者の構成要素「会社」の監視領域についての差分文書(図24参照)では、構成要素「部署名」には属性情報「閲覧のみ=“true”」が与えられているため、差分文書中の、変更内容の項目には、「部署名」タグが存在しない(図24参照)。これは、上記の理由から、図12のステップS17で差分文書を生成する際に削除されてしまうからである。
【0192】
その結果、図24に示した差分文書から生成される書き込み要求が実行された結果、領域指定済み文書データ記憶部12に記憶されている図23の文書データが書き換えられ、図23の6行目の構成要素「会社名」の値は「日本通信」となり、その下の7行目の構成要素「部署名」は削除される。
【0193】
以上説明したように、上記実施形態によれば、異なる文書構造のそれぞれについて、各文書構造の構成要素の依存関係に基づき、少なくとも1つの構成要素からなる領域単位に、複数のユーザからの書き込みを制御するための監視領域を設定し、この監視領域の設定された文書構造を持つ構造化文書中の前記監視領域毎に、前記複数のユーザからの書き込みを制御することにより、異なる文書構造の複数の構造化文書のそれぞれに対する複数のユーザからの書き込み要求を、各構造化文書のそれぞれの文書構造に応じて効率よく、しかも柔軟に制御することができる。
【0194】
また、システム稼働中に、監視領域を変更する場合は、監視領域指定変更部23により、システムを停止することなく、領域指定済み文書データの監視領域を変更することができる。
【0195】
なお、上記実施形態では、監視領域を文書構造の有する複数の構成要素のうち、少なくとも1つの構成要素からなるデータ範囲(部分文書)毎に設定する場合について説明したが、さらに、1つの文書構造中に、それぞれ別個の監視領域として指定されている複数の監視領域を併合して、1つの監視領域として設定することも可能である。例えば、この場合、上記実施形態の説明同様にして監視領域を設定するデータ範囲を指定したら、各監視領域に識別子を付与し、その際、1つの監視領域として併合すべき(とユーザにより別途指定された)複数の監視領域には同じ識別子を付与する。そして、監視領域の識別子が同じものは1つの監視領域として、上記実施形態の説明同様に書き込みの制御を行えばよい。
【0196】
例えば、図29(a)と同様の「住所録」情報をXMLで記述した次のような様な文書データを例にとり具体的に説明する。
【0197】
上記文書データに対し、監視領域を、「メンバ」という構成要素単位、すなわち、「メンバ」という構成要素以下に存在する構成要素群からなるデータ範囲毎に設定し、さらに、上から1つ目と2つ目の「メンバ」要素からなる監視領域を1つの監視領域として併合する場合を考える。そして、各「メンバ」要素の開始タグに監視領域であることを表すための属性情報として、「監視領域=“識別子”を設定する。すなわち、属性値として、その監視領域の識別子を与えるものとする。その結果、監視領域指定部112は、上記文書データから、以下に示すような領域指定済み文書データを生成する。
【0198】
このような識別子をもつ監視領域を設定することにより、よりきめ細やかに監視領域を設定することができるので、例えば、図29(a)に示したような、「田中太郎」と「田中花子」が結婚しており、必ず同じ家に住んでいるので、「田中太郎」と「田中花子」の属する2つのタプルを1つの監視領域に変更したい場合にも対処可能となる。
【0199】
さらに、1つの監視領域として監視したい構成要素を個別に指定することによっても監視領域の設定は可能である。この場合、同じ監視領域となる複数の構成要素のそれぞれに同じ監視領域の識別子を付与する。
【0200】
例えば、上記領域指定済み文書データの場合、「田中太郎」と「田中花子」が結婚し、同じ家に住んでいても、電話番号は、一方は自宅電話番号を希望するかもしれないし、他方は、携帯電話番号を希望するかもしれない。このように、識別子「A」の付与された2つの「メンバ」要素のそれぞれの子要素である2つの「電話番号」要素は、「住所」要素とは依存関係がない場合もある。そこで、識別子「A」の付与された2つの「メンバ」要素のそれぞれの子要素である「電話番号」要素は、識別子「A」の監視領域とは別個の監視領域として設定すればよい。すなわち、この場合、2つの「自宅電話番号」要素のそれぞれに監視領域の識別子として、「C」、「D」をそれぞれ付与し、下記のような領域指定済み文書データが生成されることになる。
【0201】
このように、書き込み制御のための監視領域を文書構造構成要素単位に設定することにより(すなわち、少なくとも1つの構成要素からなるデータ範囲(部分文書)毎に設定したり、また、複数の監視領域を1つの監視領域に併合したり、さらに、構成要素毎に個別に監視領域を設定したりすることにより)、依存関係のある構成要素からなる監視領域をきめ細やかに柔軟に(可変的)設定することができる。従って、このようにきめ細やかに設定された監視領域単位に書き込み制御を行うことにより、文書データの書き込みにより、その内容に矛盾が生じること(衝突が生じること)を完全に防ぐことができる。
【0202】
また、上記実施形態では、文書構造中に監視領域を設定するために、属性情報として付与するものであったが、この場合に限らず、タグを用いて監視領域の範囲を指定することもできる。すなわち、監視領域の範囲を指定するためのタグ(例えば、「監視領域」タグ)で、下記に示すように、監視領域とするデータ範囲(部分文書)を囲えばよい。そして、上記同様、各監視領域に識別子を与え、1つの監視領域として監視したい部分文書や構成要素には同じ識別子を与えるようにしてもよい。なお、この場合、監視領域の識別子を、「監視領域」要素の属性情報としてもたせるようにすることもできる。例えば、下記の記述例では、属性情報「id=“監視領域の識別子”」を各監視領域の開始タグに記述されている。
【0203】
また、本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、半導体メモリなどの記録媒体に格納して頒布することもできる。すなわち、領域指定済み文書データ管理装置1の領域指定済み文書データ記憶部12,対応テーブル17以外の各構成部、端末装置2の各構成部は、コンピュータに実行させることのできるプログラムとして実現可能である。
【0204】
また、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題(の少なくとも1つ)が解決でき、発明の効果の欄で述べられている効果(のなくとも1つ)が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0205】
【発明の効果】
以上説明したように、本発明によれば、異なる文書構造の複数の構造化文書を対象にし、1つの構造化文書に対する複数のユーザからの書き込み要求を、各構造化文書のそれぞれの文書構造に応じて効率よく、しかも柔軟に制御することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係る文書データ管理システムの要部の構成例を概略的に示した図。
【図2】領域指定済み文書データ管理装置の領域指定文書データ生成部の構成例を示した図。
【図3】端末装置の差分文書生成部の構成例を示した図。
【図4】領域指定済み文書データ管理装置の文書データ書き込み部の構成例を示した図。
【図5】領域指定済み文書データ管理装置の監視領域指定変更部の構成例を示した図。
【図6】領域指定済み文書データ指定済み文書データの一例を示した図。
【図7】監視領域に最終書き込み時刻が記録されて、領域指定済み文書データ記憶部に格納される領域指定済み文書データの一例を示した図。
【図8】対応テーブルの文書構造の識別情報と領域指定済み文書データとの記憶例を示した図。
【図9】文書構造の異なる構造化文書の他の例を示した図。
【図10】領域指定済み文書データ記憶部の文書データの記憶例を模式的に示した図。
【図11】領域指定文書データ生成部の処理動作を説明するためのフローチャート。
【図12】図3の差分文書生成部の処理動作について説明するためのフローチャート。
【図13】編集の種類が「書き換え」の場合の差分文書の一例を示した図。
【図14】編集の種類が「追加」の場合の差分文書の一例を示した図。
【図15】変種の種類が「削除」の場合の差分文書の一例を示した図。
【図16】図13に示した差分文書を基に生成される書き込み要求の一例を示した図。
【図17】図4の文書データ書き込み部の処理動作について説明するためのフローチャート。
【図18】図16に示したような書き込み要求を実行して、領域指定済み文書データ記憶部に格納されている図7に示した当該領域指定済み文書データが書き換えられた状態を示した図。
【図19】領域指定済み文書データ管理装置の監視領域変更部の処理動作について説明するためのフローチャート。
【図20】書き込み要求の他の例を示した図。
【図21】書き込み要求のさらに他の例を示した図で、2つの監視領域についての書き込み要求を示した図。
【図22】図20に示すような書き込み要求が実行されて、領域指定済み文書データ記憶部に記憶されている図7に示した領域指定済み文書データが書き換えられた状態を示した図。
【図23】「社員住所録」情報の領域指定済み文書データを示した図。
【図24】閲覧のみで編集が不可能な構成要素を削除するための差分文書の一例を示した図。
【図25】監視領域を変更する処理動作を説明するための図で、図7に示した領域指定済み文書データに指定されていた「メンバ」という構成要素から属性情報「監視領域=”true”」を全て削除した状態を示した図。
【図26】監視領域を変更する処理動作を説明するための図で、対応テーブルに新たな監視領域指定データを登録した状態を示した図。
【図27】監視領域を変更する処理動作を説明するための図で、新たな監視領域の指定された領域指定済み文書データを示した図。
【図28】領域指定済み文書データ生成部の他の構成例を示した図。
【図29】従来例を説明するための図で、リレーショナルデータベースの場合を例にとり、監視領域が固定的に設定されている場合の問題点について説明するための図。
【図30】従来例を説明するための図で、CVSの場合を例にとり、監視領域が固定的に設定されている場合の問題点について説明するための図。
【符号の説明】
1…領域指定済み文書データ管理装置(構造化文書管理装置)
2…端末装置(構造化文書編集装置)
11…領域指定済み文書データ生成部
12…領域指定済み文書データ記憶部
13…監視領域指定変更部
14…文書データ書き込み部
15…文書データ読み出し部
16…時刻管理部
21…書き込み要求生成部
22…差分文書生成部
23…文書データ編集部
Claims (16)
- 入力された構造化文書に対し、当該構造化文書の文書構造の種類に対応して、複数のユーザからの書き込みを制御するための監視領域として指定されている当該文書構造中の構成要素に前記監視領域である旨の属性情報を付与することで、前記監視領域を設定し、
前記監視領域の設定された構造化文書を記憶手段に記憶し、
前記記憶手段に記憶された各構造化文書中の前記監視領域毎に、前記複数のユーザからの書き込みを制御することを特徴とする書き込み制御方法。 - 前記文書構造の種類別に、前記文書構造の構成要素の依存関係に基づき、少なくとも1つの構成要素からなる領域単位に前記監視領域が指定されていることを特徴とする請求項1記載の書き込み制御方法。
- 文書構造の種類別に、その文書構造中の構成要素で特定される領域単位に前記監視領域を示した監視領域指定データを入力し、
前記入力された構造化文書に対し、当該構造化文書の文書構造の種類に対応して前記監視領域指定データにより指定された構成要素に前記監視領域である旨の属性情報を付与することで、前記監視領域を設定することを特徴とする請求項1記載の書き込み制御方法。 - 文書構造の種類と、当該種類に対応して指定されている前記監視領域としての構成要素名との対応関係を記憶しておき、この記憶した対応関係に基づき、前記入力された構造化文書に前記監視領域を設定することを特徴とする請求項1記載の書き込み制御方法。
- 前記監視領域内のデータが最後に書き換えられたときの時刻を該監視領域のデータのバーション番号として用い、該監視領域に対する書き込みは、どのバージョン番号のデータに対する書き込みであるかに基づき前記複数のユーザからの書き込みを制御することを特徴とする請求項1記載の書き込み制御方法。
- 構造化文書を入力する入力手段と、
入力された構造化文書に対し、当該構造化文書の文書構造の種類に対応して、複数のユーザからの書き込みを制御するための監視領域として指定されている当該文書構造中の構成要素に前記監視領域である旨の属性情報を付与することで、前記監視領域を設定する設定手段と、
前記監視領域の設定された構造化文書を記憶する記憶手段と、
前記記憶手段に記憶された各構造化文書中の前記監視領域毎に、前記複数のユーザからの書き込みを制御する制御手段と、
を具備したことを特徴とする構造化文書管理装置。 - 前記文書構造の種類別に、前記文書構造の構成要素の依存関係に基づき、少なくとも1つの構成要素からなる領域単位に前記監視領域が指定されていることを特徴とする請求項6記載の構造化文書管理装置。
- 文書構造の種類別に、その文書構造の構成要素で特定される領域単位に前記監視領域を示した監視領域指定データを入力する入力手段をさらに具備し、
前記設定手段は、前記入力された構造化文書に対し、当該構造化文書の文書構造の種類に対応して前記監視領域指定データにより指定された構成要素に、前記監視領域である旨の属性情報を付与することで、前記監視領域を設定することを特徴とする請求項6記載の構造化文書管理装置。 - 前記設定手段は、文書構造の種類と、当該種類に対応して指定されている前記監視領域 としての構成要素名との対応関係を記憶しておき、この記憶した対応関係に基づき、前記入力された構造化文書に対し前記監視領域を設定することを特徴とする請求項6記載の構造化文書管理装置。
- 前記制御手段は、前記監視領域内のデータが最後に書き換えられたときの時刻を該監視領域のデータのバーション番号として用い、該監視領域に対する書き込みは、どのバージョン番号のデータに対する書き込みであるかに基づき前記複数のユーザからの書き込みを制御することを特徴とする請求項6記載の構造化文書管理装置。
- 入力された構造化文書に対し、当該構造化文書の文書構造の種類に対応して、複数のユーザからの書き込みを制御するための監視領域として指定されている当該文書構造中の構成要素に前記監視領域である旨の属性情報を付与することで、前記監視領域を設定し、前記監視領域の設定された構造化文書を記憶手段に記憶し、前記記憶手段に記憶された各構造化文書中の前記監視領域毎に、前記複数のユーザからの書き込みを制御する構造化文書管理装置から前記構造化文書を読み出して編集を行ない、その結果を基に前記構造化文書管理装置へ前記構造化文書に対する書き込みを要求する構造化文書編集装置であって、
編集前と編集後の前記構造化文書を前記監視領域毎に比較して、編集のなされた監視領域と、変更内容を検出する検出手段と、
前記監視領域毎に前記変更内容に基づき前記構造化文書に対し書き込みを行うための前記構造化文書管理装置への書き込み要求を生成する生成手段と、
を具備したことを特徴とする構造化文書編集装置。 - 前記検出手段は、前記監視領域毎に、書き換え、削除、追加などの編集の種類を検出することを特徴とする請求項11記載の構造化文書編集装置。
- 前記検出手段で、書き換えの行われた監視領域が検出されたとき、その監視領域中の書き換えられた一部の構成要素と依存関係にある該監視領域中の書き換えられなかった構成要素の削除を前記変更内容に追加することを特徴とする請求項11記載の構造化文書編集装置。
- 前記削除する構成要素は、編集不可と予め定められた構成要素であることを特徴とする請求項13記載の構造化文書編集装置。
- 記憶手段を備えたコンピュータに、
入力された構造化文書に対し、当該構造化文書の文書構造の種類に対応して、複数のユーザからの書き込みを制御するための監視領域として指定されている当該文書構造中の構成要素に前記監視領域である旨の属性情報を付与することで、前記監視領域を設定する処理と、
前記監視領域の設定された構造化文書を前記記憶手段に記憶する処理と、
前記記憶手段に記憶された各構造化文書中の前記監視領域毎に、前記複数のユーザからの書き込みを制御する処理と、
を実行させるためのプログラム。 - 入力された構造化文書に対し、当該構造化文書の文書構造の種類に対応して、複数のユーザからの書き込みを制御するための監視領域として指定されている当該文書構造中の構成要素に前記監視領域である旨の属性情報を付与することで、前記監視領域を設定し、前記監視領域の設定された構造化文書を記憶手段に記憶し、前記記憶手段に記憶された各構造化文書中の前記監視領域毎に、前記複数のユーザからの書き込みを制御する構造化文書管理装置から前記構造化文書を読み出して編集を行ない、その結果を基に前記構造化文書管理装置へ前記構造化文書に対する書き込みを要求するための処理をコンピュータに実行させるためのプログラムであって、
編集前と編集後の前記構造化文書を前記監視領域毎に比較して、編集のなされた監視領域と、変更内容とを検出する処理と、
前記検出された監視領域毎に前記変更内容に基づき前記構造化文書に対し書き込みを行うための前記構造化文書管理装置への書き込み要求を生成する処理と、
を前記コンピュータに実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001151604A JP3673189B2 (ja) | 2001-05-21 | 2001-05-21 | 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム |
US10/151,138 US7152201B2 (en) | 2001-05-21 | 2002-05-21 | Write control method, structured document management apparatus, structured document edit apparatus, and program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001151604A JP3673189B2 (ja) | 2001-05-21 | 2001-05-21 | 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002342142A JP2002342142A (ja) | 2002-11-29 |
JP3673189B2 true JP3673189B2 (ja) | 2005-07-20 |
Family
ID=18996415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001151604A Expired - Lifetime JP3673189B2 (ja) | 2001-05-21 | 2001-05-21 | 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7152201B2 (ja) |
JP (1) | JP3673189B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4257150B2 (ja) * | 2003-05-16 | 2009-04-22 | 沖電気工業株式会社 | 印刷文書の改ざん検出装置および改ざん検出方法 |
KR100521033B1 (ko) * | 2003-05-21 | 2005-10-11 | 엘지전자 주식회사 | 메시지 릴레이 전송 방법 |
US7167166B1 (en) * | 2003-08-01 | 2007-01-23 | Accenture Global Services Gmbh | Method and system for processing observation charts |
CA2451253A1 (en) * | 2003-11-27 | 2005-05-27 | Ibm Canada Limited - Ibm Canada Limitee | Method for competitive peer programming |
US20060004885A1 (en) * | 2004-06-30 | 2006-01-05 | Oracle International Corporation | Multiple writer support in an OLAP environment |
US20090217152A1 (en) * | 2004-08-02 | 2009-08-27 | Clairvoyance Corporation | Document processing and management approach for assigning an event to an action in a markup language environment |
JP2007058622A (ja) * | 2005-08-25 | 2007-03-08 | Konica Minolta Business Technologies Inc | 文書管理装置及び文書管理方法 |
CN101430643B (zh) * | 2007-11-05 | 2012-06-27 | 国际商业机器公司 | 提供项目开发环境的方法和装置,以及项目开发*** |
JP4833326B2 (ja) * | 2009-09-28 | 2011-12-07 | 株式会社三菱東京Ufj銀行 | コード編集用プログラム及びコード編集装置 |
JP6136694B2 (ja) * | 2013-07-19 | 2017-05-31 | 富士通株式会社 | データ管理プログラム、データ管理装置およびデータ管理方法 |
JP7044967B2 (ja) | 2017-07-21 | 2022-03-31 | 富士通株式会社 | 格納制御プログラム、格納制御装置及び格納制御方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5220657A (en) * | 1987-12-02 | 1993-06-15 | Xerox Corporation | Updating local copy of shared data in a collaborative system |
JP2725219B2 (ja) * | 1991-02-05 | 1998-03-11 | 富士通株式会社 | 木構造文書処理装置 |
US5446842A (en) * | 1993-02-26 | 1995-08-29 | Taligent, Inc. | Object-oriented collaboration system |
JPH0736890A (ja) * | 1993-07-20 | 1995-02-07 | Canon Inc | 文書処理装置及びその方法 |
US5890177A (en) * | 1996-04-24 | 1999-03-30 | International Business Machines Corporation | Method and apparatus for consolidating edits made by multiple editors working on multiple document copies |
US6061697A (en) | 1996-09-11 | 2000-05-09 | Fujitsu Limited | SGML type document managing apparatus and managing method |
JP3831085B2 (ja) * | 1996-09-11 | 2006-10-11 | 富士通株式会社 | 文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体 |
JPH1196159A (ja) * | 1997-09-22 | 1999-04-09 | Matsushita Electric Ind Co Ltd | ハイパーテキスト編集装置 |
US6240413B1 (en) * | 1997-12-22 | 2001-05-29 | Sun Microsystems, Inc. | Fine-grained consistency mechanism for optimistic concurrency control using lock groups |
-
2001
- 2001-05-21 JP JP2001151604A patent/JP3673189B2/ja not_active Expired - Lifetime
-
2002
- 2002-05-21 US US10/151,138 patent/US7152201B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US7152201B2 (en) | 2006-12-19 |
US20040019879A1 (en) | 2004-01-29 |
JP2002342142A (ja) | 2002-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7228498B2 (en) | Structured document transformation apparatus for managing document information transfers between a server and a client | |
JP2996197B2 (ja) | 文書共有管理方法 | |
JP3466857B2 (ja) | 辞書更新方法および辞書更新システム | |
JP3460597B2 (ja) | 複合文書管理システム及び複合文書の構造管理方法ならびに複合文書構造管理プログラムを格納した記録媒体 | |
US20060036587A1 (en) | Method and system to convert paper documents to electronic documents and manage the electronic documents | |
US20070283288A1 (en) | Document management system having bookmarking functionality | |
JP2001282594A (ja) | 企業業務統合化システム、複数のデータ・ソースを統合化する方法 | |
JP2007102814A (ja) | ファイルを定義し管理する方法 | |
JP3673189B2 (ja) | 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム | |
US20040107423A1 (en) | Web server, Web server having function of Java servlet, and computer readable medium | |
JPH11328218A (ja) | コンテンツ属性情報正規化方法、情報収集・サービス提供システム、属性情報設定装置並びにプログラム格納記録媒体 | |
JP3233058B2 (ja) | 文書管理システム | |
JP5063877B2 (ja) | 情報処理装置およびコンピュータプログラム | |
US20020019822A1 (en) | Database management system, method and program | |
JP3890785B2 (ja) | 文書更新通知装置及び記憶媒体 | |
JPH10254886A (ja) | 検索システムにおける検索結果コンテンツへの付加的情報の付加及び検索システム | |
US7231598B1 (en) | User interface for editing documents containing markup language | |
JP3842576B2 (ja) | 構造化文書編集方法及び構造化文書編集システム | |
JP6011790B2 (ja) | ファイル管理装置およびコンピュータプログラム | |
US20050160101A1 (en) | Method and apparatus using dynamic SQL for item create, retrieve, update delete operations in a content management application | |
JPH11282882A (ja) | 文書管理方法 | |
JP3364743B2 (ja) | 手続管理システム | |
JP2003288365A (ja) | 付加情報管理方法及び付加情報管理システム | |
JP2002182956A (ja) | 文書管理方法および装置 | |
JP3842575B2 (ja) | 構造化文書検索方法、構造化文書管理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050314 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050419 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050421 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3673189 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080428 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |