JP3831085B2 - Document management device, server device, client device and their program storage medium - Google Patents

Document management device, server device, client device and their program storage medium Download PDF

Info

Publication number
JP3831085B2
JP3831085B2 JP23917097A JP23917097A JP3831085B2 JP 3831085 B2 JP3831085 B2 JP 3831085B2 JP 23917097 A JP23917097 A JP 23917097A JP 23917097 A JP23917097 A JP 23917097A JP 3831085 B2 JP3831085 B2 JP 3831085B2
Authority
JP
Japan
Prior art keywords
document
editing
type definition
edited
partial
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 - Fee Related
Application number
JP23917097A
Other languages
Japanese (ja)
Other versions
JPH10143507A (en
Inventor
由雄 仲尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP23917097A priority Critical patent/JP3831085B2/en
Publication of JPH10143507A publication Critical patent/JPH10143507A/en
Application granted granted Critical
Publication of JP3831085B2 publication Critical patent/JP3831085B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は,ニュアル等の大規模なSGML(Standard Generalized Markup Language)文書群の共同執筆・編集,改訂管理などのために用いられる文書管理装置に関するものである。
【0002】
近年,文書の電子化が進み,大量の文書を蓄積して再利用することで文書作成のコストを大幅に引き下げることが可能になってきた。また,一方で,技術の高度化に伴うマニュアル類のボリュームの増加と多様化,インターネットに代表される新たな文書流通メディアの出現もあいまって,流通・作成・管理すべき文書の量が爆発的に増加している。必然的に,一度作成した電子化文書を再利用して,新たな文書として発信していきたいという要請が強まっている。SGMLは,このような要請に応じて登場し,広く使われ始めた文書形式である。
【0003】
SGML形式は装置依存性が低く,電子データとしての交換が容易で,また,文書の体裁の切替えや文書内容の部分的な再利用などが容易であり,同じ内容の文書を様々な形式で用いることができるという特徴を持つ。
【0004】
このため,現在は,マニュアルなどの技術文書の作成管理や計算機支援印刷や電子出版における利用が最も進んでいるが,その他ネットワークによるコミュニケーションや,商取引,電子図書館などのデータベースなど,大規模で寿命の長い文書を扱う分野で広く使われ出している。例えば,近年爆発的な勢いで拡大しているインターネットにおいて使われているHTML文書も,SGML形式の一種であり,電子図書館における図書や目録などの蓄積・管理もSGML形式によって試みられている。
【0005】
このようにSGML形式の文書が広く,そして大規模に使われるようになってきたため,SGML文書を管理する装置の必要性が高まっている。SGML文書は,大規模で長い寿命を持つことでその特徴が生かされるという性質をもつことから,これを管理する装置は,SGML文書の作成・蓄積・再利用のライフサイクルを支援する装置でなければならない。また,SGML文書はその構造が文書型定義(DTD:Document Type Definition)中の定義に適合していなくてはならないので,SGML文書管理装置には文書構造の整合性の管理機構も必要である。
【0006】
本発明は,このようなSGML文書管理装置において,文書構造の整合性の管理および文書構造の改訂履歴管理のための機構に特徴をもつものである。
【0007】
【従来の技術】
(1)文書の共同編集における文書全体の整合を維持する技術
大量の文書の作成には,既存文書の再利用と多人数で共同執筆・編集を行なえる環境が必要である。SGML文書の管理装置としては,文書全体としての整合性を保ちつつ,文書の部分部分を独立して編集可能とする機構が必要となる。
【0008】
個別の作業が正しく行なわれても,並行して進んでいた別の作業の影響で整合がとれなくなることがある。こうなると,作業結果を破棄して改めて更新しなおすか,整合のとれなかった部分を修正しない限り,元の文書には反映できないため(不整合のまま作業結果を反映すると他のSGMLアプリケーションで使用できなくなる),作業効率が阻害される。
【0009】
このような事態を避けるために,従来の構造化文書管理装置では,文書の共同編集作業の場合,文書のある部分について,別の作業者に更新させないように読み出しのみ可(read−only)にする等によりチェックアウトし,作業終了後にチェックインしてread−onlyを解除するというようなチェックアウト/チェックイン機構を用意して対処してきた。この場合,一般に,作業者が更新可能なのはチェックアウトした部分に含まれる内容だけである。
【0010】
従来のSGML文書管理装置においても基本的機構は同様であり,文書要素の単位でチェックアウト/チェックイン機構を用い,チェックアウトした文書要素の下位構造部分だけを更新可能とし,チェックインの際に文書全体のDTDとの適合性を検査(これをSGMLパージングという)することで文書の整合性を維持していた。
【0011】
(2)SGML文書のパージングを効率的に行う技術
部分的に更新したSGML文書がDTDに適合しているかを検査(SGMLパージング)するためには,基本的には,更新部分以外の文書要素も含めて文書全体にどのような文書要素が配置されているかを調べなくてはならない。すなわち,ルート文書要素から各文書要素を順次DTDと対応付けていく必要がある。このとき,SGML文書を文書要素単位で格納して前述のチェックアウト/チェックイン機構で部分編集を行う文書管理装置では,編集要素以外の部分の文書要素のタグ(GI:Generic Identifier;総称識別子)情報を,文書を格納しているデータベースから取り出す必要がある。なお,総称識別子(GI)とは,文書要素のタイプを示す名前であり,DTDは,この配置の仕方を階層ごとに内容モデル(content model)で定義する。
【0012】
これを単純に行うと,少なくとも編集しようとしている文書要素から文書のルートにいたるパスに含まれる文書要素およびそれらより前に出現している文書要素(文書中で先行する文書要素)のタグを取り出して照合を行う必要があり,文書を格納しているデータベースへのアクセスコストが大きくなる。そこで,従来の技術では,文書構造を文書内容とは別に格納したり,各々の文書要素にその先行文書要素のタグ列を対応付けて格納するなどの工夫により,SGMLパージングのコスト軽減を図っているものもある。
【0013】
(3)SGML文書の改訂履歴管理技術
SGML文書の改訂履歴の管理についてみると,SGMLのような構造化文書を管理する技術は未成熟であり,構造の変化を改訂履歴として保持する技術は確立されていない。一般的には,文書要素レベルで細かく改訂履歴を管理する方法においても,改訂前の文書要素や改訂による差分を個別に保持するだけで,文書要素の配置の変化などの構造の履歴は保持していない。また,文書要素個別の履歴としては保持できない構造変化の履歴も管理するものとして,例えば特開平6−250895号公報に示されているような「構造化データベースシステム」があるが,装置に依存した内部表現形式によるものしか存在せず,履歴情報付きでSGML文書を自由に流通できるものとはなっていない。
【0014】
【発明が解決しようとする課題】
本発明が解決しようとする問題点は,以下の2点である。
1)文書更新上の制約が不要に大きいという問題
共同編集において個々の作業の独立性を高めつつ文書全体の整合性を保つことが必要であるが,従来の技術では文書全体の整合性を保つことを優先していて,個々の作業の独立性が低くなっている。
【0015】
従来の技術では,チェックアウトした文書要素の内容,すなわちその文書要素の下部構造と記述されている情報内容のみを編集可能としている。このため,チェックアウトした文書要素のタイプを表すタグの変更やそれ自体の分割や削除などは禁止されている。本質的に同時編集が不可能なのはDTD上で依存関係にある部分であり,DTDによってはタグの変更や要素の分割・削除などは他の編集とは独立して行える場合があるので,このような制約は必要以上に大きいものといえる。
【0016】
このような事情により,例えば,章のレベルで分担して執筆中にその章の分割が必要になった場合,いったん編集を打ち切って1つ上位の文書要素レベルから編集をやり直す必要が生じる。作業途中でこのような中断がおきると,執筆者の思考の流れを阻害するだけでなく,上位文書要素レベルがその時点で更新不能であったり,分散環境で実行している場合には,その時点では文書本体へ物理的にアクセス不能であった,などの理由で作業を進められなくなる事態があり得,作業の進行の妨げとなる。
【0017】
章の分割のような編集にうまく対応できないのは,チェックアウトする要素と周辺の要素との依存関係に応じて,部分編集に適切な制約を施す機構がないためである。
【0018】
つまり,章の分割のような編集を可能にするためには,編集前の文書構造におけるチェックアウトする要素に関する依存関係を把握し,この依存関係に沿って編集に制約をかける必要がある。
【0019】
SGML文書は木構造であり,深さの異なる文書要素は親子関係にない限り依存しないが,同じ文書要素インスタンスを親とする姉妹文書要素インスタンスは文書型定義によっては依存しあう場合がある。このため,編集の整合性を保証するには,姉妹関係の依存性を予め把握しておかなければならない。例えば,DTDでいくつ出現してもよいように定義されている文書要素を編集する場合,その要素を同じタイプの要素に分割することや,削除することは可能であるが,必ず1つだけ出現しなくてはならないように定義されている要素についてはこのような編集を行うことはできない。
【0020】
また,連続して1つ以上出現しなくてはならない文書要素を削除できるかどうかは,そのタグをもつ要素が実際の文書にいくつあって,そのうちで別の作業により削除されるかもしれない要素(他で編集中の要素)がいくつあるのかを把握しないと判定できない。例えば,

Figure 0003831085
という文書構造の例では,id=sl,id=s2の文書要素のいずれか1つのみ削除可能である。
【0021】
このような制約はDTDだけでなく,並行して実行されている別の編集の結果にも依存するので,従来の技術のように,SGML文書全体の文書型定義をそのまま編集の制約として用いて,更新結果をとりこんだ文書の形式を検査(SGMLパージング)するだけでは取り扱うことができない。すなわち,SGMLパージングでは,別の編集制約機構を用意するか,部分編集用に別のDTDを用意することが必要となる。
【0022】
本発明は,この点に関して,文書全体の文書型定義に編集前の実際の文書構造とその編集状況による制約を加味した,文書の部分に対する部分構造の文書型定義を自動生成して,解決を図るものである。
【0023】
2)文書の構造変化の履歴が不十分であるという問題
もう一つの問題点は,SGML文書の構造の変化の履歴が十分に保持されないことである。従来の一般的な履歴管理は,個々の文書要素の遷移として個別に保持しているため,単独の文書要素には記述することのできない移動・交換などの構造変化の履歴を正確に格納できない。
【0024】
例えば,文書要素の分割は,文書要素内の一部削除と新文書要素の追加として,また,文書要素の交換は,2組の削除と追加との操作として解釈するか,あるいは,更新前と更新後の変化から推定して処理しているのが現状である。このため,結果の文書としては正しく処理したものと等価であるが,分割・交換などの更新履歴の信頼性が低くなっている。
【0025】
このような構造変化の履歴も管理する装置(例えば特開平6−250895号公報)もあるが,管理されている情報は装置に依存するものであるため,SGML文書を履歴情報付きで自由に流通できるものとはなっていない。
【0026】
本発明は,上記の2つの問題を解決し,共同執筆・編集の効率化と改訂履歴の機能向上を実現すると同時に,その実現のために付加する文書管理情報を共通にして,管理情報の格納効率をあげつつ,また,管理すべき情報の種類を減らすことで管理効率をも向上させることを目的とする。
【0027】
【課題を解決するための手段】
本発明は,上記課題を解決するため,SGML(Standard Generalized Markup Language)文書を格納し,共同執筆・編集・利用を支援し,改訂などの履歴を管理する文書管理装置において,例えば以下の機構を持つことを主要な特徴とする
【0028】
▲1▼ SGML文書を文書要素単位で格納し,文書要素それぞれに,文書型定義中の文書要素宣言の内容モデル(content model)に対してそれに適合している子文書要素のインスタンス識別子を付与した拡張内容モデルを対応付けて管理する機構
▲2▼ SGML文書の編集中の部分に対応する部分編集用文書型定義を一時的に生成することにより,該当部分のみ独立にSGMLパージング可能とする機構
▲3▼ 上位文書要素および前後の文書要素を編集可能にしたままで,部分編集用文書型定義に違反しない範囲において,編集中の最上位の文書要素の削除とタグ(総称識別子)の変更およびその前後に新たな文書要素を追加することを可能にする機構
▲4▼ 文書要素の複写・移動(交換)・追加・削除の履歴を保持する機構
▲5▼ 保持した履歴情報を装置に依存しない形式で出力する機構
図1は,以上の機構を実現する本発明のブロック構成図である。
【0029】
図1において,SGML文書管理装置1は,SGML文書編集装置10,SGML文書交換装置20,SGML文書アクセス装置30,SGML文書のデータベース40,SGMLパーサ50,50’からなる。
【0030】
本発明がサーバ・クライアント・システム上で実現される場合には,SGML文書編集装置10およびSGML文書交換装置20はクライアント側に備えられ,SGML文書アクセス装置30,データベース40,SGMLパーサ50はサーバ側に備えられる。さらにクライアント側にSGMLパーサ50’が備えられていてもよい。
【0031】
SGML文書編集装置10は,SGML文書の編集対象部分をSGML文書アクセス装置30を通じて取得し,編集を行う手段である。SGML文書編集装置10は,SGML文書アクセス装置30で生成された部分編集用DTDを元に,SGMLパーサ50’を呼び出すことにより編集結果の整合性を検査する部分編集用DTD整合性検査手段11と,文書要素の内容および拡張内容モデルの変更を記憶し,編集対象部分の内容・構造の変更履歴を生成する履歴作成手段12を持つ。
【0032】
SGML文書交換装置20は,外部のSGML文書または履歴付きSGML文書の入力・出力を行う手段である。これには,本装置内で用いる標準的な拡張モデル付きSGML文書形式と履歴情報のないSGML文書形式あるいは履歴情報を分離した履歴つきSGML文書形式との相互変換を行う機能がある。
【0033】
SGML文書アクセス装置30は,クライアントの要求に従い,データベース40に格納されたSGML文書の部分または全体の入出力や,部分編集用DTDの作成,SGML文書の版数管理や文書の退避・復元などを行うものである。
【0034】
SGML文書アクセス装置30は,標準的な拡張モデル付きSGML文書形式とデータベース40の内部形式との相互変換を行う文書形式変換手段31,部分編集用DTDを生成する部分編集用DTD作成手段32,SGMLパーサ50を呼び出すことにより,入力されたSGML文書の整合性を検査する文書形式整合性検査手段33,文書内容や拡張内容モデルの履歴情報を整理する履歴管理手段34を持つ。
【0035】
SGMLパーサ50,50’は,その他の装置の補助としてDTDとSGML文書本体との対応付けを行うものである。クライアントのSGMLパーサ50’はサーバのSGMLパーサ50と機能的には同じもので,サーバ・クライアントが別の計算機である場合,特にオフライン状態のクライアントで編集中に整合検査などを行う時にはサーバと物理的に別の装置が利用される。
【0036】
以上の各処理手段を計算機によって実現するためのプログラムは,計算機が読み取り可能な可搬媒体メモリ,半導体メモリ,ハードディスクなどの適当な記憶媒体に格納することができる。
【0037】
【発明の実施の形態】
以下,本発明の実施の形態を説明する。
図2は,本発明におけるデータの基本構造を示す図である。図中の実線の矢印は識別子による対応関係を示している。本発明のデータ構成は,文書全体の情報と文書要素単位の情報に大別される。
【0038】
図2(A)に示す文書全体の情報には,文書を操作・管理するためのシステム情報や,文書の論理的な性質を記述するためのプロフィール情報,文書履歴情報などがある。
【0039】
図2(B)に示す文書要素単位の情報には,文書単位で格納されたそれぞれの情報を関係づけて文書構造を表現する識別子情報,各々の文書要素がSGMLとしての情報(属性・タグ・下位情報),要素別の履歴情報,要素単位にアクセス制御などを行うためのシステム管理情報などがある。
【0040】
文書は,文書要素毎にデータベース40に格納され,インスタンス識別子を付与されて管理される。インスタンス識別子は,論理的には,(ある版数の)文書を識別する文書識別子,文書内の文書要素を特定するための要素識別子の2つから構成される。
【0041】
文書識別子は,ある文書のある(独立した)版に対して一意に割り当てられたものである。
要素識別子は,ある文書における実際の文書要素(インスタンス)に対して一意に割り当てられたもので,SGML文書における文書内のID参照の機能に対応が可能なものである。
【0042】
また,改訂された各要素には改訂前の要素(列)がインスタンス識別子と改訂番号によって対応付けられている。改訂番号は,ある文書のある版としての改訂作業に対して一意に与えられた改訂の順序も表現した識別値で,具体的にはチェックインの際にシステムが付与するものである。
【0043】
格納された要素は,インスタンス識別子を介してリンクされ,SGML文書構造を形成する。SGML文書構造を示すリンクは,DTD中の内容モデルと対応付けて拡張内容モデルとして格納され,構造の改訂履歴管理や部分編集の独立性の判定にも利用されている。拡張内容モデルは,内容モデルに,実際のSGML文書の要素との対応関係(インスタンス識別子)とその要素の削除可能性指示子(削除可能数)を付与したものである。
【0044】
まず,図3および図4を用いて,本装置によるSGML文書の格納の例を説明する。図3および図4では,図2に示した格納情報のうち構造に関わる部分などの主要部分のみを示している。図3に示すSGML文書の原文書は,SGML文書交換装置20によって内部表現へ変換され,SGML文書アクセス装置30を通じて,図4のような構成のデータとしてデータベース40に格納される。
【0045】
図3に示すSGML文書において,「< >」は,タグを表す。このSGML文書の原文書は,2つの章(SECT)からなり,第1の章には2つの節(P),次の章(SECT)には1つの節(P)を持つ構造になっている。
【0046】
図5は,前記の拡張内容モデルの構成を本明細書で表現する形式に従ってバッカス記法(BNF)で示した図である。ただし,このBNFでは,表現が煩雑になることを避けるため,各構成単位の間の空白要素の有無は示していない。
【0047】
なお,内容モデルにANYや#PCDATAを含んでいて実際の文書にさらなる下部構造が表れる場合には,その下部構造単位での格納・管理,下部構造を無視した格納・管理など,下部構造の管理レベルを選択することができる。つまり,強調語句などは管理単位とせず,文や段落などの上位要素のレベルまでを単位として格納・管理することも可能である。
【0048】
また,他文書中のある改訂状態の要素(部分木)を取り込むことも可能である。取り込みのモードとして,元の要素も変更する共有モードと元の要素には変更を加えない独立モード,変更自体を許さないリンクモードがある。
【0049】
共有モード・リンクモードの時には,リンク用の特別な文書要素を介して,取り込み先から取り込んだ要素の実体へ対応付けられる。リンク用の文書要素には,取り込む部分木の最上位要素のインスタンス議別子と改訂番号および下位要素の要素識別子の対応表などが共有情報として格納され,下位情報は記述されない。要素識別子の対応表は,取り込んだ文書内の別の部分からのID参照を実現するために使用されるものである。独立モードの時には,取り込む部分内の各要素はコピーされ,履歴情報で元の要素と対応付けられる。
【0050】
〔1〕部分編集用DTD
本発明では,文書の要素あるいは親要素が共通の連続する文書列を対象に編集することができる。この際,編集中の部分の整合性を独立して検査(SGMLパージング)できるようにするために,SGML文書アクセス装置30は,拡張内容モデルを利用して生成した部分編集用のDTDを,SGML文書編集装置10へ渡すようにしている。
【0051】
部分編集用DTDは,部分編集用に生成した一次的な文書型名のDTDであり,全文書用のDTD中の宣言に,生成した文書型名の宣言をルート文書要素の宜言として追加したものである。ルート文書要素の宣言は,編集対象部分の最上位の文書要素の並びに対応する内容モデルの部分を取り出したものを基本にして,追加予約(後述)に対応した前後の要素の追加可能性と削除予約(後述)に対応した要素の削除可能性の情報を出現標識などの形で反映したものである。
【0052】
なお,出現標識としては,「*,?,+」などがあり,「*」は要素が任意数出現することを示し,「?」は要素が1つのみ出現するか省略され得ること,すなわち要素が0個か1個であることを示し,「+」は要素が1以上出現することを示す。
【0053】
図5は,拡張内容モデルの構成例を示す図である。
拡張内容モデルは,拡張モデル群またはそれと添加要素,除外要素を含み,拡張モデル群は,拡張モデル列または削除可能モデル群を含む。削除可能モデル群は,削除可能数,タグもしくはモデル列,出現標識,拡張モデル列を含む。拡張モデル列は,拡張モデル要素を含む。拡張モデル要素は,拡張モデル群または拡張要素である。拡張要素は,タグまたはタグと出現標識に,インスタンス識別子を付与したものである。
【0054】
この拡張内容モデルは,部分編集用DTDを生成する上で必須ではないが,編集部分の最上位要素に関する制約を求める処理を高速に行うために利用される。すなわち,拡張内容モデルを保持することで,編集部分の制約を求める処理の編集前の文書要素と内容モデルとを対応付ける部分が,拡張内容モデルを参照するだけで行えるようになる。
【0055】
(1)部分編集の独立性を確保する手段
本発明では,SGML文書の共同執筆などにおいて,並行して進む部分編集作業の競合を避けるために,編集対象要素のチェックアウト/チェックインをべースにした排他制御を行う。これは,編集対象要素のチェックアウト機構と,出現数に制約のある可変個要素(内容モデル中で出現標識が付与された要素)に関して削除予約・追加予約機構を用意して実現する。可変個要素と添付要素は,SGML文書の同一レベルに(すなわち,ある文書要素の下位に並んで)出現している他の文書要素とは独立に追加・削除が可能な場合がある。
【0056】
本発明は,追加・削除の可能性を予め解析し,追加・削除が可能な場合について,編集要素の前後に可変個要素または添付要素を挿入することと,編集要素自体が可変個要素か添付要素である場合の分割と削除の操作を可能にする。削除予約・追加予約は,これに関する処理の競合を防ぐものである。
【0057】
また,編集の対象部分の最上位の文書要素(列)がOR(|)で連結されたモデル群の要素となっている場合には,それらのタグを変更することも可能である。本発明では,これについても後述の部分編集用DTDに該当するモデル群の制約を反映することで,可能な限り編集対象部分の最上位要素のタグの変更を可能にしている。
【0058】
(2)部分編集用DTD生成
図6は,部分編集用DTDの生成の例を説明する図である。
SGML文書全体は,DOCという型の文書で,DOCはいくつかのSECT(章)からなり,またそれぞれのSECTはいくつかのP(パラグラフ)からなっている。ここで,SGML文書アクセス装置30は,ユーザからの指示に応じて編集対象(1番目のSECT中の2番目のP)を取り出して,元のDTDおよび文書本体による編集の制約を織り込んだ部分編集用DTDを生成して,文書本体と部分編集用DTDをSGML文書編集装置10へと渡す。
【0059】
SGML文書(全体)のDTDが,
<!ELEMENT DOC(SECT+)>
<!ELEMENT SECT(P+)>
であるとき,SGML文書アクセス装置30によって生成される部分編集用DTDは,
<!ELEMENT EDITDOC(P*)>
である。部分編集用DTDは,一時的なEDITDOCという文書型名をもち,編集対象の要素を削除したり,別のP(パラグラフ)というタグの要素を追加してもよいという制約を表現している。「*」は,Pの数は任意であることを示す出現標識である。Pの数が任意でよいのは,元のDTDにおいて,編集対象として抜き出す部分が「P+」(+は要素が1以上出現することを表す)となっており,既にPが1つ存在して整合性が保証されているからである。
【0060】
(3)文書要素の追加・削除・タグの変更
次に,編集の対象部分の最上位レべルの文書要素の追加・削除・タグ変更の例を図7〜図10を用いて説明する。図中のDTDは構造に関わる部分のみを示す。
【0061】
図7は,編集対象としてチェックアウトする要素の前後に別の要素を追加可能かどうかを判定する例を説明する図である。
編集対象部分の最上位レべルで追加可能な要素は,可変個要素あるいは添付要素である。このような要素は,それが出現可能な位置の隣の要素を編集する場合にDTDに違反することなく追加することができる。
【0062】
図7において,SGML文書(全体)のDTDが,
<!ELEMENT DOC(SECT+)>
<!ELEMENT SECT(TITLE?,P+)>
であるとする。図7(A)は,文書に未だTITLE(題名)がなく,追加が可能なTITLEに隣接しないPを編集部分とする場合,図7(B)は,TITLEがなく,追加が可能なTITLEに隣接するPを編集部分とする場合,図7(C)は文書に既にTITLEがある場合の例である。
【0063】
ここで,TITLEが追加可能となるのは,TITLEが編集対象の文書にまだない状況で,かつTITLEが追加可能な位置に隣接する(この場合は先頭の)Pを編集対象とする場合である。図7(B)の「TITLEがない場合(その2)」がこれに当たる。図7(A)の「TITLEがない場合(その1)」では,編集対象のPがTITLEが追加可能な位置の隣にないのでTITLEは追加不能であり,図7(C)「TITLEがある場合」は,既にTITLEが存在するために追加不能である。
【0064】
図7(A)では,編集部分であるPがTITLEと隣接しないので,生成される部分編集用DTDは,
<!ELEMENT EDITDOC (P*)>
となる。したがって,部分編集ではTITLEを追加することができないが,Pを任意の数とすることができる。
【0065】
図7(B)では,編集部分であるPがTITLEと隣接するので,生成される部分編集用DTDは,
<!ELEMENT EDITDOC (TITLE?,P*)>
となり,部分編集ではTITLEを追加することもでき,Pを任意の数とすることもできる。
【0066】
図7(C)では,TITLEが既に生成されているので,生成される部分編集用DTDは,
<!ELEMENT EDITDOC (P*)>
となり,部分編集ではTITLEを追加することができない。
【0067】
図8は,異なる編集作業による要素の追加の競合を抑止するための追加予約の例を説明する図である。
SGML文書(全体)のDTDが,
<!ELEMENT DOC(SECT+)>
<!ELEMENT SECT(TITLE?, AUTHOR?, P+)>
であるとする。出現数に上限のある要素(SGML文書では,OPT出現標識’?’のついた1つのみ出現するか省略され得る要素)では,その要素が編集前に存在しない場合に限り追加処理が可能である。このような要素を追加可能な状態で編集するには,前後にある要素をチェックアウトすると共に追加予約を発行する。追加予約された要素は,別の作業によっては追加不能となる。
【0068】
図8(A)に示す初期状態では,SGML文書のSECT(章)の中にまだAUTHOR(著者名)がないので,TITLE(題名)およびそれに後続するP(パラグラフ)のいずれの編集でもAUTHORが追加可能である。ここで,TITLEを編集(チェックアウト)するときAUTHORの追加予約を行うと,図8(B)に示すTITLE編集中にはAUTHORが追加予約され,後続のPの編集においてはPの編集のみ可能となる。
【0069】
すなわち,図8(A)に示す初期状態において,TITLEを編集するときに,AUTHORの追加予約も行う場合に,生成される部分編集用DTDは,
<!ELEMENT EDITDOC (TITLE, AUTHOR?, P*)>
となり,部分編集ではTITLEの編集に加えてAUTHORとPを追加することができる。
【0070】
さらに,図8(B)に示すTITLE編集中の別のPの編集においては,AUTHORは追加予約済みであるので,生成される部分編集用DTDは,
<!ELEMENT EDITDOC (P+)>
となり,部分編集ではPの数を1以上の任意の数とすることができるだけである。
【0071】
図9は,異なる編集作業による要素の削除の競合を抑止するための削除予約の例を説明する図である。
SGML文書(全体)のDTDが,
<!ELEMENT DOC(SECT+>
<!ELEMENT SECT(P+)>
であるとする。出現数に下限のある可変個要素(SGML文書では,PLUS出現標識’+’のついた1つ以上出現する要素)では,その要素が編集前に2つ以上存在している場合に限り削除処理が可能である。このような要素を削除可能な状態で編集する場合,編集対象の要素をチェックアウトすると共に削除予約を発行する。削除予約は,既に削除予約された要素を除いた同種の要素の出現数が2以上である場合にだけ受理される。
【0072】
図9(A)に示す初期状態では,1番目のSECT(章)には2つのP(パラグラフ)があるので,いずれか1つは削除可能である。2番目のPを削除予約してチェックアウトすると,生成される部分編集用DTDは,
<!ELEMENT EDITDOC (P*)>
となり,部分編集ではパラグラフを削除可能要素として取り出すことが可能となる。
【0073】
このように,1番目のSECTの中の2番目のPを削除可能な状態でチェックアウトすると,図9(B)に示すその編集中には,2番目のPが削除予約されているため1番目のPの編集では削除不可となる。したがって,1番目のSECT中の1番目のPの部分編集で生成される部分編集用DTDは,
<!ELEMENT EDITDOC (P+)>
となり,Pを削除することはできない。
【0074】
以上の追加・削除予約は,通常チェックアウト時にSGML文書編集装置10からSGML文書アクセス装置30に対して発行されるが,編集途中で追加発行も可能である。
【0075】
図10は,編集対象の最上位レべルの要素のタグを変更する例を説明する図である。
SGML文書(全体)のDTDが,
<!ELEMENT DOC(SECT+)>
<!ELEMENT SECT(P|LIST)+>
<!ELEMENT LIST(ITEM+)>
であり,編集対象部分の最上位の文書要素がOR(|)で連結された内容モデル群と対応しているため,タグを変更してLIST構造の内容へ置き換えることが可能である。
【0076】
この場合に生成される部分編集用DTDは,
<!ELEMENT EDITDOC(P |LIST)*>
<!ELEMENT LIST(ITEM+)>
となり,PをLISTに変更することが可能となる。
【0077】
図11および図12は,クライアントが文書の編集部分を獲得するための処理のフローチャートである。
図11のステップS1では,クライアントのSGML文書編集装置10は,ユーザに対し編集対象要素の選択を促す。
【0078】
ステップS2では,選択された編集対象の選択予約を発行する。
ステップS3では,選択予約が成功かどうかを判定し,選択予約が成功した場合にはステップS4の処理へ進み,選択予約が成功しなかった場合にはステップS13の処理へ進む。
【0079】
ステップS4では,追加・削除予約候補要素のリストを獲得する。追加・削除予約候補要素リストとは,編集対象部分およびその周辺にある追加・削除可能な要素のリストであり,後述(図15,図16)の処理に従ってサーバ側で作成されるものである。
【0080】
ステップS5では,予約候補要素リストが空であるかどうかを判定する。リストが空でない場合にはステップS6の処理へ進み,リストが空の場合にはステップS14の処理(図12)へ進む。
【0081】
ステップS6では,追加・削除予約要素リストを空にする。
ステップS7では,追加・削除候補要素を表示してユーザに選択を促す。
ステップS8では,選択要素が何であるかを判定する。選択要素が追加要素である場合にはステップS9の処理へ進み,選択要素が削除要素である場合にはステップS10の処理へ進み,選択要素が選択終了であればステップS14の処理(図12)へ進む。
【0082】
ステップS9では,選択要素を追加予約リストに追加し,ステップS11の処理へ進む。
ステップS10では,選択要素を削除予約リストに追加する。
【0083】
ステップS11では,選択要素を追加・削除候補リストから削除する。
ステップS12では,予約候補要素リストが空であるかどうかを判定する。予約候補要素リストが空であればステップS14の処理(図12)へ進み,予約候補要素リストが空でなければステップS7以降の処理を繰り返す。
【0084】
ステップS13では,ステップS3の処理の判定結果(選択予約不成功)により,選択不能理由をユーザに通知して,処理を終了する。
図12のステップS14では,削除要素リストが空であるかどうかを判定する。削除要素リストが空でない場合にはステップS15の処理へ進み,削除要素リストが空である場合にはステップS19の処理へ進む。
【0085】
ステップS15では,削除要素リストの先頭要素をポップする。
ステップS16では,ポップした要素の削除予約を発行する。
ステップS17では,削除予約が成功したかどうかを判定し,予約が成功であればステップS14の処理へ戻り,予約が成功でなければステップS18の処理へ進む。
【0086】
ステップS18では,削除予約失敗をユーザに通知する。
ステップS19では,追加要素リストが空であるかどうかを判定する。追加要素リストが空でない場合にはステップS20の処理へ進み,追加要素リストが空である場合にはステップS24の処理へ進む。
【0087】
ステップS20では,追加要素リストの先頭要素をポップする。
ステップS21では,ポップした要素の追加予約を発行する。
ステップS22では,追加予約が成功したかどうかを判定し,予約が成功であればステップS19の処理へ戻り,予約が成功でなければステップS23の処理へ進む。
【0088】
ステップS23では,追加予約失敗をユーザに通知する。
ステップS24では,編集データのチェックアウトと部分編集用DTDの獲得を行う。
【0089】
ステップS25では,選択予約の解除を行い,処理を終了する。
図13および図14は,サーバが要求に応じて部分編集用DTDと編集データを提供する処理のフローチャートである。
【0090】
図13のステップS31では,SGML文書アクセス装置30は,編集対象要素の選択予約を受け付ける。
ステップS32では,指定要素(列)は予約されているかどうかを判定する。予約されている場合にはステップS40の処理へ進み,予約されていない場合にはステップS33の処理へ進む。
【0091】
ステップS33では,指定要素(列)を一時ロック(選択予約)する。
ステップS34では,指定要素(列)の親要素(列)が予約されているかどうかを判定する。予約されている場合にはステップS39の処理へ進み,予約されていない場合にはステップS35の処理へ進む。
【0092】
ステップS35では,指定要素(列)の親要素(列)を一時ロック(選択予約)する。
ステップS36では,部分編集用内容モデルおよび追加・削除候補要素リスト作成処理を行う。
【0093】
ステップS37では,クライアントに選択予約成功を通知する。
ステップS38では,クライアントに追加・削除予約候補リストを提供する。その後,図14のステップS41の処理へ進む。
【0094】
ステップS39では,指定要素(列)の一時ロックを解除する。
ステップS40では,クライアントに処理失敗とその理由を通知し,処理を終了する。
【0095】
図14のステップS41では,次の要求が何であるかを判定する。次の要求が追加削除予約であればステップS42の処理へ進み,次の要求がチェックアウトであれば,ステップS43の処理へ進み,次の要求が選択予約解除(要求終了)であればステップS55の処理へ進む。
【0096】
ステップS42では,追加・削除予約リストに追加し,ステップS41の処理へ戻る。
ステップS43では,削除予約リストが空であるかどうかを判定し,削除予約リストが空でなければステップS44の処理へ進み,削除予約リストが空であればステップS47の処理へ進む。
【0097】
ステップS44では,削除予約リストの先頭要素をポップする。
ステップS45では,ポップした要素に対応する部分編集用内容モデルの要素の出現標識を,'+' を'*' に変更する。
【0098】
ステップS46では,ポップした要素に対応する親要素の拡張内容モデル中の削除可能モデルの削除可能数から編集対象の要素の数を引き,その後,ステップS43の処理へ戻る。
【0099】
ステップS47では,追加予約リストを追加要素番号でソートする。
ステップS48では,要素番号が負の要素を部分編集用内容モデルの先頭に追加する。
【0100】
ステップS49では,要素番号が正の要素を部分編集用内容モデルの末尾に追加する。
ステップS50では,追加予約リスト中の要素を追加予約する。
【0101】
ステップS51では,編集対象をチェックアウトし,選択予約のための一時ロックを解除する。
ステップS52では,部分編集用の文書型名を生成し,部分編集用内容モデルとあわせて編集部分の最上位要素の要素宣言を作成する。
【0102】
ステップS53では,作成した要素宣言に全体のDTD中の宣言を加え部分編集用DTDを生成する。
ステップS54では,クライアントに部分編集用DTDと編集データを提供し,処理を終了する。
【0103】
ステップS55では,一時ロックを解除し,処理を終了する。
図15および図16は,図13のステップS36に示す,拡張内容モデルを利用した部分編集用内容モデルおよび追加・削除候補要素リスト作成処理のフローチャートである。
【0104】
図15のステップS61では,照合要素列からなる拡張内容モデルの部分を取り出す。
ステップS62では,閉じていない(閉じ括弧‘)’の足りない)要素群があるかどうかを判定する。閉じていない要素群がある場合にはステップS63の処理へ進み,閉じていない要素群がない場合にはステップS67の処理へ進む。
【0105】
ステップS63では,最後の要素(群)は削除可能モデル群の要素かどうかを判定する。最後の要素(群)が削除可能モデル群の要素である場合にはステップS64の処理へ進み,最後の要素(群)が削除可能モデル群の要素でない場合にはステップS66の処理へ進む。
【0106】
なお,拡張内容モデルの削除可能モデル群は,元のSGMLの内容モデルで「'*'(REP)(0個以上出現可能を示す)」, 「'+'(PLUS) (1つ以上出現可能を示す)」の出現標識が付与された部分に対応する。削除可能モデル群の先頭要素は,元の内容モデルに削除可能数を付与したもので,2番目以降の要素は,それに対応する実際の文書要素の拡張モデル(インスタンス識別子付きのモデル)である。
【0107】
ステップS64では,最後の削除可能モデル中の要素数と削除可能数とを比較する。削除可能数が要素数以上の場合にはステップS65の処理へ進み,その他の場合にはステップS66の処理へ進む。なお,任意個繰り返し可能な場合(出現標識('*'(REP)の場合)は,常に判定結果が「その他」となるように削除可能数(例えば−1)を設定しておく。
【0108】
ステップS65では,削除可能モデル群を削除予約候補要素群として削除予約候補リストに加える。
ステップS66では,末尾に')' を補う。
【0109】
ステップS67では,先頭の要素(群)が削除可能モデル群の要素かどうかを判定する。先頭の要素(群)が削除可能モデル群の要素である場合にはステップS68の処理へ進み,先頭の要素(群)が削除可能モデル群の要素でない場合にはステップS71の処理へ進む。
【0110】
ステップS68では,最初の削除可能モデル中の要素数と削除可能数とを比較する。削除可能数が要素数以上の場合にはステップS69の処理へ進み,その他の場合にはステップS70の処理へ進む。なお,任意個繰り返し可能な場合(出現標識('*'(REP)の場合)は,常に判定結果が「その他」となるように削除可能数(例えば−1)を設定しておく。
【0111】
ステップS69では,削除可能モデル群を削除予約候補要素群として削除予約候補リストに加える。
ステップS70では,取り出した拡張内容モデルの先頭に削除可能モデルの先頭要素と'(' を加える。
【0112】
ステップS71では,部分拡張内容モデル内の削除可能モデル群について先頭要素だけを残し,さらに,先頭の+<削除可能数> を取り除く。
ステップS72では,部分拡張内容モデルからインスタンス識別子を取り除く。これにより,部分編集用内容モデルが完成する。
【0113】
図16のステップS73では,指定要素列の1つ前の要素を取り出す。先頭要素が要素列の区切りの場合には,その1つ上のレベルで要素(モデル群)を取り出す。
【0114】
ステップS74では,要素番号に0を代入する。
ステップS75では,取り出した要素(モデル群)が何かを判定する。取り出した要素(モデル群)がインスタンス識別子を含まない省略可能モデルまたは削除可能モデルであればステップS76の処理へ進み,その他(そのレベルでそれ以上の要素がない場合を含む)であればステップS79の処理へ進む。
【0115】
ステップS76では,要素番号から1を引く。
ステップS77では,取り出した要素と要素番号の組を追加候補要素(群)として追加候補要素リストに追加する。
【0116】
ステップS78では,1つ前の要素を取り出す。その後,ステップS75へ戻り,同様に処理を繰り返す。
ステップS79では,要素番号に0を代入する。
【0117】
ステップS80では,指定要素列の1つ後ろの要素を取り出す。最終要素が要素列の区切りの場合には,その1つ上のレベルで要素(モデル群)を取り出す。
ステップS81では,取り出した要素(モデル群)が何かを判定する。取り出した要素(モデル群)がインスタンス識別子を含まない省略可能モデルまたは削除可能モデルであればステップS82の処理へ進み,その他(そのレベルでそれ以上の要素がない場合を含む)であれば処理を終了する。
【0118】
ステップS82では,要素番号から1を引く。
ステップS83では,取り出した要素と要素番号の組を追加候補要素(群)として追加候補要素リストに追加する。
【0119】
ステップS84では,1つ後ろの要素を取り出す。その後,ステップS61の判定を繰り返す。
〔2〕改訂履歴情報
(1)改訂履歴の格納方法
前出の図5に示す拡張内容モデルは,ある文書要素の下位の要素の並びを完全に表現しているので,その遷移の情報を文書要素に対応付けて管理することで,ある時点におけるある文書構造上の位置にいずれの内容があったのかという履歴情報とすることができる。この情報に文書要素の直接の上位文書要素が何であったのかという履歴を加えれば,文書の構造がどのように変化したかを完全に追跡できる。
【0120】
すなわち,上位要素から見て下位要素の構成がどのように変化してきたかは拡張内容モデルの改訂履歴のみを参照すれば掌握でき,下位要素がどこから移動してきたかを追跡するためには,改訂前の上位要素の拡張内容モデルの(該当する改訂レベルの)改訂履歴を取り出して,その下位要素がいずれの位置にあったかを調べればよい。
【0121】
このことを利用して,本発明では,次のように履歴情報を格納し管理する。
履歴情報には,前出の図2に示すように文書単位に管理されるものと文書要素単位に管理されるものとがある。文書単位に管理される履歴情報には,改訂日時,改訂者,改訂部分のシステムが自動的に設定する情報と,改訂名やコメントなどユーザが自由に入力できる情報があり,文書のライフサイクルにおける全改訂を順序列として識別する改訂番号を付与して管理されている。改訂文書単位に管理される履歴情報は,その改訂に関するマスターデータであり,要素単位の履歴を高めるために,各文書要素に対応付けてコピーを格納することもできる。
【0122】
文書要素単位で管理される履歴情報には,親要素の改訂履歴,拡張内容モデルの改訂履歴,文書内容の改訂履歴,タグ・属性の改訂履歴,およびコメントからなる。これらの情報は,基本的には改訂前の該当する文書要素へのリンクに改訂番号とコメントと削除・移入・移出された子文書要素の情報を付与した形で保持される。
【0123】
再利用される可能性のない改訂前の要素に関する履歴情報は,差分の形に直してスペース効率や履歴の検索効率を高めることもできる。差分で格納する場合には,改訂番号,コメント,改訂前の親要素の識別子,改訂前の拡張内容モデルとの差分,改訂前の文書内容との差分,タグ・属性の改訂前との差分を1単位とする列として格納する。
【0124】
(2)文書構造の改訂履歴の作成手法
文書構造の改訂履歴は,基本的には,SGML文書アクセス装置30において,チェックインの時点で拡張内容モデルの差分を求めることにより作成される。この差分を正確に求めるために,SGML文書アクセス装置30は,SGML文書編集装置10へ差分を求める手がかりとなる情報を文書要素のSGML属性の形式で渡す。この情報は,その要素および親要素の文書識別子・要素識別子および改訂番号である。このうち,文書識別子・改訂番号は別の文書や改訂レベルとの間で文書要素を共有・交換する際に用いられるもので,通常の編集時には要素識別子だけが利用される。
【0125】
専用のSGML文書編集装置10の操作は,文書要素の移動・交換・追加・削除などの構造の変更と,文書要素内のデータの変更,文書要素の属性の変更に大別されている。このうち構造の変更操作が行われた場合には,SGML文書編集装置10は,削除された子の識別子,移出・移入された子文書要素の識別子とその移動先・元の親要素の識別子を,文書要素の属性に加える。また,要素の追加や複写が発生した場合には,追加・複写された要素に対して仮の要素識別子を設定する。
【0126】
専用のSGML文書編集装置10では,ある文書の部分として別の文書の要素(部分木)を取り込むこともできる。この場合,取り込まれた他の文書の親要素の拡張内容モデルのインスタンス識別子は,文書識別子と要素識別子の組になる。また,取り込まれた要素の編集に関する変更モードの省略値が別に付与される。変更モードは,取り込まれた要素に対する変更を元の要素へも及ぼすかどうかを区別するものである。これには,元の要素も変更する共有モードと元の要素には変更を加えない独立モード,変更自体を許さないリンクモードがある。共有モードの時には,チェックアウト時に取り込まれた要素に対応する別の文書の部分も同時にチェックアウトされる。
【0127】
なお,同一の文書の部分かどうかに関わらず,別々にチェックアウトした編集部分の間で文書要素を交換した場合には,SGML文書編集装置10は,強制的に同期チェックインモードとなる。この場合,SGML文書アクセス装置30は,両方の編集結果が正しい場合に限りチェックインを受理する。SGML文書アクセス装置30で付与された特別の属性を変更しなければ,一般のSGMLエディタなどを用いて編集しても,構造の改訂履歴を作成することが可能である。ただし,上に述べた別の文書の文書要素の取り込みや,リンクなどの機能は利用できない。また,複写などが意図通りに解釈されない場合もあり得る。
【0128】
(3)改訂履歴の作成例
図17は改訂履歴の作成例を説明する図である。まず,図17(A)に示す編集前のSGML文書本体より点線で囲まれた部分をSGML文書アクセス装置30を通じて取り出し,文書識別子(doc),要素識別子(id),改訂番号(ver),親要素の識別子(pid)を属性として付与してSGML文書編集装置10に渡す。
【0129】
この例では,SGML文書編集装置10による編集操作によって,要素識別子p2の要素をコピーし,要素識別子plの要素を要素識別子s2へ移動する編集を行っている。ここで,要素識別子p2をコピーした要素については,仮の要素識別子new1が付与され,コピー元の要素を表すcopyof属性と変更モードを示すcopystat(ここでは独立モード)の属性がSGML文書編集装置10によって設定される。
【0130】
編集結果は,SGML文書アクセス装置30を通じて取り込まれ,図17(B)に示す編集後の文書本体がデータベースに格納される。ここで,更新された部分には,更新後の要素が作成され,更新前の要素へのリンクが改訂番号などによって設定されている。
【0131】
(4)改訂履歴の出力方法
本発明では,改訂履歴をSGML文書とともに出力する手段を持つ。改訂履歴もSGML文書形式で出力される。改訂履歴は,基本的には改訂の差分を列挙したものである。改訂前の文書も独立に出力してその間の遷移(対応)関係を加えることもできる。
【0132】
出力形式には,元のDTDに履歴情報部分の宣言を加えて生成した履歴付きSGML文書のDTDを用いる形式と,履歴文書をハブとして元のSGML文書を埋め込んだ形式の2種類がある。後者はさらに,改訂履歴を差分情報として列挙してSGML文書本体の要素との対応を記述する形式と,改訂前のSGML文書群も出力してそれらの要素の間の遷移関係を記述する形式とがある。いずれの形式でも,履歴情報として出力される内容は,図2に示した履歴情報と同一である。
【0133】
履歴情報付きSGML文書において,履歴情報とSGML文書本体との対応付けは,SGMLのID参照機能を使って行われる。このために,通常はSGML文書本体の各文書要素にインスタンス識別子に相当する属性を埋め込む。なお,例えばISO規格として知られているHyTime(ISO10744)のロケーションラダーの機能を利用して,元のSGML文書のDTDに手を加えることなく実現することも可能である。このような出力が可能なのは,本発明におけるインスタンス識別子などの構成がSGMLのID参照やHyTimeのリンク機能との親和性が高いからである。
【0134】
要素識別子は,SGML文書本体の要素の識別子の属性として,文書識別子は,SGML文書本体を履歴文書と別の文書とした場合のSGML文書エンティティの識別子として,改訂番号は履歴情報部分の要素の識別子属性として利用される。
【0135】
(5)履歴付きSGML文書の出力
図18および図19は,SGML文書本体に要素識別子などの情報を埋め込む場合の履歴付きSGML文書のDTDの例を示す図である。ここで,他の文書の要素を取り込んでいる部分などについては,履歴付きSGML文書における要素識別子・改訂番号として本装置で管理しているものに文書識別子を加えたものが用いられる。
【0136】
SGML文書本体に要素識別子などを埋め込めない場合には,SGML文書本体を外部エンティティとして定義し,ESDdocの部分にHyTimeのpathlocを使ったロケーションラダーによってSGML文書本体の要素に要素識別子などの属性を対応付けるなどの手段によって,同様の情報をSGML文書として表現できる。
【0137】
図20ないし図27は,SGML文書編集装置10の文書編集処理のフローチャートである。特に図20および図21は,全体の処理の流れを示している。
図20のステップS91では,サーバから,あるいはローカルファイルから編集対象の文書部分木を獲得する。ここで,依存関係にある文書編集装置も同時に起動される。
【0138】
ステップS92では,ユーザの要求または別の文書編集装置からのメッセージ(同期要求)を待つ。
ステップS93では,同期要求かどうかを判定し,同期要求であればステップS107の処理へ進み,同期要求でなければステップS94の処理へ進む。
【0139】
ステップS94では,ユーザの要求を判定し,ユーザの要求が構造編集要求であればステップS95の処理へ進み,ユーザの要求が内容編集要求であればステップS96の処理へ進み,ユーザの要求が終了またはチェックイン要求であればステップS98の処理へ進む。
【0140】
ステップS95では,後述する構造編集処理を行う。
ステップS96では,編集可能要素かどうかを判定し,編集可能要素であればステップS97の処理へ進み,編集可能要素でなければステップS92の処理へ戻る。
【0141】
ステップS97では,内容編集を行う。
ステップS98では,別の文書編集装置と依存関係があるかどうかを判定し,依存関係がある場合にはステップS99の処理へ進み,依存関係がない場合にはステップS104の処理へ進む。
【0142】
ステップS99では,直接の依存関係にある文書編集装置に通知して依存関係にある全ての文書編集装置の識別子リストを獲得する。なお,重複するものは取り除く。
【0143】
ステップS100では,依存関係にあるものを表示して全てに対して処理を行うことを確認する。
ステップS101では,処理するかどうかを判定する。処理する場合にはステップS102の処理へ進み,処理しない場合にはステップS103の処理へ進む。
【0144】
ステップS102では,依存関係にある装置に処理実行を要求し,ステップS104の処理へ進む。
ステップS103では,予約解除を行い,ステップS92の処理へ戻る。
【0145】
ステップS104では,要求が何であるかを判定し,要求がチェックイン要求の場合にはステップS105の処理へ進み,要求が終了要求の場合には,ステップS106の処理へ進む。
【0146】
ステップS105では,後述するチェックイン処理を行い,ステップS92の処理へ戻る。
ステップS106では,後述する終了処理を行う。
【0147】
ステップS107では,同期要求が何であるかを判定し,同期要求が終了またはチェックイン要求の場合にはステップS108の処理へ進み,同期要求が依存関係獲得要求(兼同期処理予約)の場合にはステップS109(図21)の処理へ進む。
【0148】
ステップS108では,予約解除またはエラー処理を行い,ステップS104の処理へ進む。
図21のステップS109では,処理予約がされているかどうかを判定し,処理予約がされている場合にはステップS113の処理へ進み,処理予約がされていない場合にはステップS110の処理へ進む。
【0149】
ステップS110では,同期処理予約として,要求元の識別子を記憶し,他からの処理の受け付けを停止する。
ステップS111では,依存関係にある他の文書編集装置に要求元の識別子と同期要求とを転送し依存関係にある文書編集装置の識別子リストを得る。
【0150】
ステップS112では,文書編集装置の識別子リストに自身の識別子を加え,要求送信元に返す。
ステップS113では,要求送信元に空の文書編集装置識別子リストを返す。なお,要求送信元では,識別子が予約と異なる場合にはエラー処理を行うことになる。
【0151】
ステップS114では,別の文書編集装置(同期予約主)からのメッセージ(同期要求)を待つ。その後,ステップS107の処理へ戻る。
図22は,図20におけるステップS95の構造編集処理のフローチャートである。
【0152】
ステップS121では,ユーザの要求が何であるかを判定し,新規作成要求の場合にはステップS122の処理へ進み,張り付け(ペースト)要求の場合にはステップS127の処理へ進み,複写(コピー)/切り取り(カット)要求の場合にはステップS131の処理へ進み,削除要求の場合にはステップS135の処理へ進む。
【0153】
ステップS122では,新規要素を作成する位置は編集可能領域かどうかを判定し,編集可能領域であればステップS123の処理へ進み,編集可能領域でなければ処理を終了する。
【0154】
ステップS123では,ユーザに要素種別の指定を促す。
ステップS124では,仮の要素識別子を生成し,新規要素を作成する。
ステップS125では,親要素の文書識別子と要素識別子を新規要素の属性(doc,pid)に設定する。
【0155】
ステップS126では,新規作成した要素を処理中の文書木に追加し,処理を終了する。
ステップS127では,張り付ける位置は編集可能領域かどうかを判定し,編集可能領域であればステップS128の処理へ進み,編集可能領域でなければ処理を終了する。
【0156】
ステップS128では,張り付ける要素が登録されたレジスタがあるかどうかを判定し,登録されたレジスタがある場合にはステップS129の処理へ進み,登録れたレジスタがない場合には処理を終了する。
【0157】
ステップS129では,張り付け元のレジスタの選択を促す。
ステップS130では,後述する張り付け処理を行い,処理を終了する。
ステップS131では,切り取り要求か複写要求かを判定し,切り取り要求であればステップS132の処理へ進み,複写要求であればステップS134の処理へ進む。
【0158】
ステップS132では,切り取る位置は編集可能領域かどうかを判定し,編集可能領域であればステップS133の処理へ進み,編集可能領域でなければ処理を終了する。
【0159】
ステップS133では,後述する要素削除処理を行う。すなわち,指定された要素を削除リストにつなぎ,指定された要素の親要素の要素削除情報を更新する。
【0160】
ステップS134では,指定要素と親要素の識別子,複写/切り取りの種別をレジスタに登録する。その後,処理を終了する。
ステップS135では,削除する位置は編集可能領域かどうかを判定し,編集可能領域であればステップS136の処理へ進み,編集可能領域でなければ処理を終了する。
【0161】
ステップS136では,後述する要素削除処理を行う。
図23および図24は,図22におけるステップS130の張り付け処理のフローチャートである。
【0162】
図23のステップS141では,レジスタの要素種別を判定し,要素種別が複写の場合にはステップS142の処理へ進み,要素種別が切り取りの場合にはステップS154の処理へ進む。
【0163】
ステップS142では,複写する要素の変更モードの選択をユーザに促す。
ステップS143では,変更モードを判定し,変更モードが共有モードまたはリンクモードの場合にはステップS144の処理へ進み,変更モードが独立モードの場合にはステップS152の処理へ進む。
【0164】
ステップS144では,仮の要素識別子を生成する。
ステップS145では,レジスタの要素のコピーを作り,生成した要素識別子を設定する。
【0165】
ステップS146では,コピー要素のコピー元属性(copyof)と変更モード属性(copystat)に,レジスタ要素のインスタンス識別子と変更モードとをそれぞれ設定する。
【0166】
ステップS147では,コピーした要素のコピー要素リスト属性(copied.to)と,リンク要素リスト属性(linked.with),派生要素リスト属性(derivations)をクリアする。
【0167】
ステップS148では,レジスタ要素以下の文書部分木に含まれるレジスタ要素以外の要素に対して仮の要素識別子を生成し,元の要素識別子との対応を要素対応表属性(linktbl)に格納する。
【0168】
ステップS149では,変更モードを判定し,変更モードがリンクモードの場合にはステップS150の処理へ進み,変更モードが共有モードの場合にはステップS151の処理へ進む。
【0169】
ステップS150では,レジスタ要素のリンク要素リスト属性(linked.with)の末尾にコピーした要素の(仮)インスタンス識別子を追加し,ステップS153の処理へ進む。
【0170】
ステップS151では,レジスタ要素のコピー要素リスト属性(copied.to)の末尾にコピーした要素の(仮)インスタンス識別子を追加し,ステップS153の処理へ進む。
【0171】
ステップS152では,レジスタの要素以下の文書部分木を深さ優先に訪れ,行きがけ順にコピーする。すなわち,全ての要素識別子は,仮の識別子を生成して置き換え,コピー元属性には元要素のインスタンス識別子を設定し,変更モード属性は独立モードとする。それぞれのコピー元の要素の派生要素リスト属性(derivations)に生成したコピー要素のインスタンス識別子を加える。ただし,部分木内で閉じている共有・リンク関係については,部分木内のリンクに付け替える。
【0172】
ステップS153では,張り付ける要素を処理中の部分木に追加し,処理を終了する。
ステップS154では,レジスタの要素は処理中の文書とは別の文書であるかどうかを判定する。レジスタの要素が別の文書である場合にはステップS142の処理へ進み,レジスタの要素が別の文書でない場合にはステップS155(図24)の処理へ進む。
【0173】
図24のステップS155では,レジスタの要素以下の部分木を削除リストから取り除き,張り付ける要素とする。
ステップS156では,張り付ける要素は新規要素であるかどうかを判定する。張り付ける要素が新規要素である場合にはステップS163の処理へ進み,張り付ける要素が新規要素でない場合にはステップS157の処理へ進む。
【0174】
ステップS157では,レジスタ要素の元の親要素の削除要素属性(deletions)からレジスタ要素の識別子(文書識別子と要素識別子)を取り除く。
【0175】
ステップS158では,取り除けたかどうかを判定し,レジスタ要素の識別子が取り除けた場合にはステップS159の処理を行い,レジスタ要素の識別子が取り除けない場合にはステップS160の処理へ進む。
【0176】
ステップS159では,レジスタ要素の元の親要素の移出要素属性(exports)の末尾にレジスタ要素の識別子(文書識別子と要素識別子)を追加する。
【0177】
ステップS160では,張り付け先の親要素の削除要素属性(deletions)からレジスタ要素の識別子(文書識別子と要素識別子)を取り除く。
ステップS161では,取り除けたかどう判定し,レジスタ要素の識別子が取り除けた場合にはステップS163の処理へ進み,レジスタ要素の識別子が取り除けない場合にはステップS162の処理へ進む。
【0178】
ステップS162では,張り付け先の親要素の移入要素属性(imports)の末尾にレジスタ要素の識別子(文書識別子と要素識別子)を追加する。
ステップS163では,レジスタの要素種別を複写要素に変更する。その後,ステップS153の処理へ進む。
【0179】
図25は,図22におけるステップS133とステップS136の要素削除処理のフローチャートである。
ステップS171では,削除する要素は新規要素かどうかを判定する。削除する要素が新規要素である場合にはステップS175の処理へ進み,削除する要素が新規要素でない場合にはステップS172の処理へ進む。
【0180】
ステップS172では,削除要素の元の親要素の移入要素属性(imports)から削除要素の識別子(文書識別子と要素識別子)を取り除く。
ステップS173では,削除要素の識別子が取り除けたかどうかを判定し,取り除けた場合にはステップS174の処理へ進み,取り除けなかった場合にはステップS175の処理へ進む。
【0181】
ステップS174では,削除要素の元の親要素の削除要素属性(deletions)の末尾に削除要素の識別子(文書識別子と要素識別子)を追加する。
ステップS175では,削除要素以下の文書の部分木を削除リストにつなぎ,処理を終了する。
【0182】
図26は,図20におけるステップS105のチェックイン処理のフローチャートである。
ステップS181では,SGMLパーサで編集結果が部分編集用DTDに適合しているかどうかを検証する。
【0183】
ステップS182では,同期要求による処理かどうかを判定する。同期要求による処理の場合にはステップS183の処理へ進み,同期要求によらない処理の場合にはステップS187の処理へ進む。
【0184】
ステップS183では,処理中の文書はDTDに適合しているかどうかを判定し,適合していない場合にはステップS184の処理へ進み,適合している場合にはステップS185の処理へ進む。
【0185】
ステップS184では,文書が不完全であることを要求元に通知し,処理を終了する。
ステップS185では,要求元の識別子と編集結果をサーバに送信し,(同期)チェックインする。
【0186】
ステップS186では,チェックイン結果を要求元に通知し,処理を終了する。
ステップS187では,処理中の文書または同期チェックインする文書はDTDに適合しているかどうかを判定する。DTDに適合している場合にはステップS188の処理へ進み,DTDに適合していない場合にはステップS192の処理へ進む。
【0187】
ステップS188では,削除リストの先頭の文書要素を削除要素として取り出す。
ステップS189では,処理中の文書の識別子と編集結果をサーバに送信し,チェックインする。
【0188】
ステップS190では,チェックインが成功したかどうかを判定し,チェックインが成功である場合にはステップS194の処理へ進み,チェックインが不成功の場合にはステップS191の処理へ進む。
【0189】
ステップS191では,チェックイン失敗とその理由をユーザに示し,ステップS194の処理へ進む。
ステップS192では,処理中の文書識別子と同期チェックインの解除を通知する。
【0190】
ステップS193では,不完全な文書の部分をユーザに示す。
ステップS194では,依存関係にある文書装置に同期予約解除を通知し,処理を終了する。
【0191】
図27は,図20におけるステップS106の終了処理のフローチャートである。
ステップS201では,処理中の文書のDTDと文書本体を(文書)ファイルに出力する。
【0192】
ステップS202では,文書ファイル名,レジスタの削除リストの内容を(管理)ファイルに出力する。
ステップS203では,同期要求による処理かどうかを判定する。同期要求による処理の場合にはステップS204の処理へ進み,同期要求によらない処理の場合にはステップS205の処理へ進む。
【0193】
ステップS204では,文書ファイル名を要求元へ通知し処理を終了する。
ステップS205では,依存関係にある文書ファイルのリストを(管理)ファイルに出力し,処理を終了する。
【0194】
以上の実施の形態による作用を,以下に説明する。
1)効率よく文書の取リ出しと格納ができる。
SGML文書を要素単位でデータベース(DB)に格納している場合,要素毎に取り出しのコストがかかるので,編集の際に取り出す要素数はなるべく少ないほうが望ましい。可変個要素に関する挿入・分割を判定するためには,内容モデルと実際のエレメントをルート文書要素からデプスファーストに対応付ける必要がある。
【0195】
正しいDTDには,モデル要素と実際の文書要素の対応に暖昧性がないので,すでに適合を確かめられたSGML文書なら,下位要素および後続要素に関するDTDとの適合検査は省略できる。この場合でも,少なくとも編集しようとしている文書要素から文書のルートにいたるパスに含まれる文書要素およびそれより前に出現している文書要素についての照合を行う必要がある。
【0196】
本発明によれば,内容モデルに下位要素のインスタンス識別子および可変要素のある時点における削除・挿入の可否の指標を加えた拡張内容モデルを作成し,各々の要素と対応付けて格納してあるので,直接の上位要素編集対象となる要素群(ただし,下位要素が既に編集中の場合は例外であり,その要素以下のレベルの要素も取り出されるが,編集対象とはならない)を取り出すだけでよく(正確には,これ以外に後述のアクセス制御と履歴管理のために直接の上位の要索に対応する情報も取り出す必要がある),アクセス効率が向上する。
【0197】
また,本発明ではSGML文書自体の情報の他に管理用として拡張内容モデルなどを格納するが,スペース効率の悪化は小さく抑えられている。文書要素単位に格納する場合に上位・下位の要素へのリンク情報は必須であり,実際の文書には出現していない可変個要素や例外要素部分を加えても,タグ情報が3倍に増える程度である。また,格納された文書要素のリンク付けに用いられるインスタンス識別子は,SGMLの文書内の参照のための属性値としても利用可能であり,このように利用するならスペース効率は向上できる。
【0198】
2)部分編集の自由度が向上する。
本発明のチェックアウト時の削除・追加予約の手段により,SGML文書を部分的に編集する際に,編集対象の最上位レベルでタグの変更や要素の分割・追加・削除など従来は不可能だった編集が可能になる。
【0199】
3)編集の独立性が高まる。
本発明では,部分編集用DTDによりSGML文書編集装置10だけで編集中の部分の整合チェックが可能である。このため,部分編集中にSGML文書を管理するサーバに全くアクセスする必要がなくなり,部分編集を例えばオフライン形態のパーソナル・コンピュータなどでも行えるようになるなど,編集の独立性が高まる。
【0200】
4)文書構造変化の履歴が保持できる。
拡張内容モデルと親要素の遷移を保持することで,文書要素レベルでの追加・削除・移動の履歴を追跡することが可能となる。
【0201】
5)SGML文書の更新履歴付きで流通が可能となる。
SGMLに準拠した形式で履歴情報についても出力する機構によって,履歴付きでSGML文書を異なる装置間で交換することが可能になる。
【0202】
6)DTD変更時などの安全性が向上する。
拡張内容モデルにより,DTDを復元することができるので,DTDの改訂や不慮の事故によりDTDが使用不能になっても,格納されたSGML文書を利用可能である。
【0203】
【発明の効果】
以上説明したように,本発明は以下の効果を奏する。
1)編集作業の独立性が高まり,作業効率が向上する。
【0204】
本発明では,上位文書要素および前後の文書要素を編集可能にしたままで,DTDに違反しない範囲において,編集中の最上位の文書要素の削除とタグの変更およびその前後に新たな文書要素を追加することが可能であるので,担当する章を分割する場合などにSGML文書全体を管理している装置にアクセスし直す必要が減少する。
【0205】
また,部分編集文書は,生成された部分編集用DTDで独立に整合検査が可能であるため,一旦編集対象部分を取り出した後はチェックインまで,SGML文書全体を管理している装置にアクセスすることなく編集を進めることが可能である。
【0206】
このような部分編集の独立性が確保されるので,SGML文書本体を管理するサーバのアクセスに伴う編集作業の停滞が少なくなり,また,オフラインの形態のコンピュータで編集も可能になるなど作業環境の選択範囲も広がり,共同編集における作業効率を向上させることができる。
【0207】
2)文書の再利用が容易になり文書作成・改訂の効率が向上する。
本発明では,文書の内容・構造の変化の履歴をとりつつ,また,他の文書や版の部分を別の文書に取り込んで作成管理することができる。これにより,異なる版が同時に流通している製品や,一部の機能のみ違う製品群のマニュアルの作成管理などにおいて,文書作成・改訂の効率を向上させることができる。
【図面の簡単な説明】
【図1】 本発明のブロック構成図である。
【図2】 データの基本構造および履歴情報との対応関係を示す図である。
【図3】 SGML文書の原文書の例を示す図である。
【図4】 SGML文書の格納例を示す図である。
【図5】 拡張内容モデルの構成例を示す図である。
【図6】 部分編集用DTDの生成の例を示す図である。
【図7】 追加可能な要素の判定の例を説明する図である。
【図8】 追加予約の例を説明する図である。
【図9】 削除予約の例を説明する図である。
【図10】 最上位要素のタグ変更の例を説明する図である。
【図11】 クライアントが文書の編集部分を獲得するための処理のフローチャート(1)である。
【図12】クライアントが文書の編集部分を獲得するための処理のフローチャート(2)である。
【図13】部分編集用DTDと編集データを提供する処理のフローチャート(1)である。
【図14】部分編集用DTDと編集データを提供する処理のフローチャート(2)である。
【図15】拡張内容モデルを利用した部分編集用内容モデルおよび追加・削除候補要素リストの作成処理のフローチャート(1)である。
【図16】拡張内容モデルを利用した部分編集用内容モデルおよび追加・削除候補要素リストの作成処理のフローチャート(2)である。
【図17】改訂履歴の作成の例を説明する図である。
【図18】履歴付きSGML文書のDTDの例(1)を示す図である。
【図19】履歴付きSGML文書のDTDの例(2)を示す図である。
【図20】 文書編集処理のフローチャート(1)である。
【図21】 文書編集処理のフローチャート(2)である。
【図22】構造編集処理のフローチャートである。
【図23】張り付け処理のフローチャート(1)である。
【図24】張り付け処理のフローチャート(2)である。
【図25】要素削除処理のフローチャートである。
【図26】チェックイン処理のフローチャートである。
【図27】終了処理のフローチャートである。
【符号の説明】
1 SGML文書管理装置
10 SGML文書編集装置
11 部分編集用DTD整合性検査手段
12 履歴作成手段
20 SGML文書交換装置
30 SGML文書アクセス装置
31 文書形式変換手段
32 部分編集用DTD作成手段
33 文書形式整合性検査手段
34 履歴管理手段
40 データベース
50,50’ SGMLパーサ[0001]
BACKGROUND OF THE INVENTION
  The present inventionMaUsed for joint writing, editing, revision management, etc. of large-scale SGML (Standard Generalized Markup Language) documentsSentenceThe present invention relates to a document management device.
[0002]
In recent years, digitization of documents has progressed, and it has become possible to greatly reduce the cost of document creation by accumulating and reusing a large amount of documents. On the other hand, the volume of documents to be distributed, created and managed is explosive due to the volume and diversification of manuals accompanying the advancement of technology and the emergence of new document distribution media such as the Internet. Has increased. Inevitably, there is an increasing demand to reuse electronic documents created once and send them as new documents. SGML is a document format that has appeared in response to such requests and has begun to be widely used.
[0003]
The SGML format has low device dependency, can be easily exchanged as electronic data, and can be easily changed in document format or partially reused. Documents with the same content can be used in various formats. It has the feature that it can.
[0004]
For this reason, it is currently the most advanced in the production and management of technical documents such as manuals, computer-aided printing, and electronic publishing. Widely used in the field of long documents. For example, an HTML document used on the Internet, which has been expanding at an explosive rate in recent years, is also a kind of SGML format, and attempts to store and manage books and catalogs in an electronic library are also made using the SGML format.
[0005]
As described above, since SGML format documents are widely used on a large scale, the need for an apparatus for managing SGML documents is increasing. Since SGML documents have the property that their characteristics are utilized by having a large scale and a long lifetime, the device that manages them must be a device that supports the life cycle of creation, storage, and reuse of SGML documents. I must. In addition, since the structure of the SGML document must conform to the definition in the document type definition (DTD), the SGML document management apparatus also needs a management mechanism for consistency of the document structure.
[0006]
The present invention is characterized by a mechanism for managing the consistency of the document structure and managing the revision history of the document structure in such an SGML document management apparatus.
[0007]
[Prior art]
(1) Technology for maintaining consistency of the entire document in collaborative editing of documents
In order to create a large number of documents, it is necessary to have an environment in which existing documents can be reused and a large number of people can jointly write and edit. An SGML document management device requires a mechanism that enables editing of partial portions of a document while maintaining consistency as a whole document.
[0008]
Even if individual tasks are performed correctly, there may be cases where alignment is not possible due to the influence of other tasks that have progressed in parallel. If this happens, it cannot be reflected in the original document unless the work result is discarded and updated again, or the unmatched part is corrected (if the work result is reflected inconsistently, it can be used in other SGML applications) Work efficiency is hindered.
[0009]
In order to avoid such a situation, in the conventional structured document management apparatus, in the case of collaborative editing of a document, only a part of the document can be read (read-only) so as not to be updated by another worker. For example, a check-out / check-in mechanism has been prepared in which a check-out is performed by, for example, checking out and releasing read-only after the work is completed. In this case, in general, only the contents contained in the checked-out part can be updated by the worker.
[0010]
In the conventional SGML document management apparatus, the basic mechanism is the same, and the checkout / checkin mechanism is used in units of document elements so that only the substructure portion of the checked out document element can be updated. The consistency of the document is maintained by checking the compatibility of the entire document with the DTD (this is called SGML parsing).
[0011]
(2) Technology for efficiently parsing SGML documents
In order to check whether a partially updated SGML document conforms to DTD (SGML parsing), basically, what kind of document elements are arranged in the entire document including document elements other than the updated part. I have to find out. That is, it is necessary to sequentially associate each document element with the DTD from the root document element. At this time, in a document management apparatus that stores SGML documents in units of document elements and performs partial editing using the check-out / check-in mechanism described above, a tag (GI: Generic Identifier) of a document element other than the editing element Information needs to be retrieved from the database storing the document. Note that the generic identifier (GI) is a name indicating the type of document element, and the DTD defines the arrangement method by a content model for each hierarchy.
[0012]
If this is done simply, at least the document elements included in the path from the document element to be edited to the root of the document and the tags of the document elements that appear before them (the document element that precedes the document) are extracted. This increases the cost of access to the database storing the documents. Therefore, in the prior art, the cost of SGML parsing is reduced by storing the document structure separately from the document content or by storing each document element in association with the tag string of the preceding document element. Some are.
[0013]
(3) SGML document revision history management technology
Regarding the management of revision history of SGML documents, the technology for managing structured documents such as SGML is immature, and the technology for holding the change of structure as revision history has not been established. In general, even in the method of managing revision history in detail at the document element level, the history of the structure such as changes in the arrangement of document elements is maintained only by individually maintaining the document elements before revision and differences due to revision. Not. Also, as a structure change history that cannot be maintained as individual document element history, there is a “structured database system” as disclosed in, for example, Japanese Patent Laid-Open No. 6-250895, but it depends on the device. There is only an internal representation format, and SGML documents with history information cannot be freely distributed.
[0014]
[Problems to be solved by the invention]
The problems to be solved by the present invention are the following two points.
1) Problem that restrictions on document update are unnecessarily large
In collaborative editing, it is necessary to maintain the consistency of the entire document while increasing the independence of individual tasks. However, in the conventional technology, priority is given to maintaining the consistency of the entire document, and the independence of individual tasks is Is low.
[0015]
In the conventional technique, only the contents of the checked out document element, that is, the information contents described as the substructure of the document element can be edited. For this reason, it is prohibited to change the tag indicating the type of the document element that has been checked out or to divide or delete the tag itself. Essentially simultaneous editing is impossible on DTD, and depending on DTD, tag change and element division / deletion may be done independently of other editing. These restrictions are more than necessary.
[0016]
For this reason, for example, when it becomes necessary to divide the chapter at the chapter level and to divide the chapter during writing, it is necessary to stop editing once and start editing again from the document element level one level higher. Such interruptions in the middle of work not only impede the flow of thoughts of the author, but if the higher document element level is not up-to-date at that time or is running in a distributed environment, There may be a situation in which the work cannot be performed because the document itself is physically inaccessible at the time, which hinders the progress of the work.
[0017]
The reason for not being able to cope with editing such as chapter division is that there is no mechanism for properly restricting partial editing according to the dependency between the elements to be checked out and surrounding elements.
[0018]
In other words, in order to enable editing such as chapter division, it is necessary to grasp the dependency relationship regarding the element to be checked out in the document structure before editing, and to restrict the editing along this dependency relationship.
[0019]
An SGML document has a tree structure, and document elements having different depths do not depend on each other unless they have a parent-child relationship. However, sister document element instances having the same document element instance as a parent may depend on each other depending on the document type definition. For this reason, in order to guarantee the consistency of editing, it is necessary to grasp the dependency of the sister relationship in advance. For example, when editing a document element that is defined so that it can appear as many times as possible in DTD, it is possible to divide the element into elements of the same type or delete them, but only one appears. You can't do this for elements that are defined as having to.
[0020]
In addition, whether or not a document element that must appear one or more consecutively can be deleted depends on how many elements with that tag exist in the actual document, and may be deleted by another task. It cannot be determined without knowing how many (elements are being edited elsewhere). For example,
Figure 0003831085
In the example of the document structure, only one of the document elements with id = sl and id = s2 can be deleted.
[0021]
Since such restrictions depend not only on DTD but also on the result of another editing executed in parallel, the document type definition of the entire SGML document is used as editing restrictions as it is in the prior art. , It cannot be handled simply by checking (SGML parsing) the format of the document incorporating the update result. That is, in SGML parsing, it is necessary to prepare another editing restriction mechanism or prepare another DTD for partial editing.
[0022]
The present invention solves this problem by automatically generating a document type definition of a partial structure for a part of a document in which the actual document structure before editing and the restrictions according to the editing status are added to the document type definition of the entire document. It is intended.
[0023]
2) The problem that the history of structural changes in the document is insufficient
Another problem is that the history of changes in the structure of the SGML document is not sufficiently maintained. Since conventional general history management is individually held as transitions of individual document elements, the history of structural changes such as movement and exchange that cannot be described in a single document element cannot be stored accurately.
[0024]
For example, the division of a document element can be interpreted as a partial deletion within a document element and the addition of a new document element, and the exchange of a document element can be interpreted as an operation of two sets of deletion and addition, or The current situation is that processing is performed by estimating from changes after the update. For this reason, the result document is equivalent to a correctly processed document, but the reliability of the update history such as division / exchange is low.
[0025]
There is also a device that manages the history of such structural changes (for example, Japanese Patent Laid-Open No. 6-250895), but since managed information depends on the device, SGML documents can be freely distributed with history information. It is not possible.
[0026]
The present invention solves the above two problems, realizes the efficiency of joint writing / editing and the function of revision history, and at the same time stores the management information by sharing the document management information added for the realization. The purpose is to improve the management efficiency by increasing the efficiency and reducing the types of information to be managed.
[0027]
[Means for Solving the Problems]
  In order to solve the above problems, the present inventionSGML (Standard Generalized Markup Language)A document management device that stores documents, supports collaborative writing, editing, and usage, and manages revision history, for example, has the following features:.
[0028]
(1) SGML documents are stored in units of document elements, and each document element is given an instance identifier of a child document element that conforms to the content model (content model) of the document element declaration in the document type definition. Mechanism for managing extended content models in association with each other
(2) Mechanism for enabling SGML parsing only for the corresponding part by temporarily generating a document type definition for partial editing corresponding to the part being edited in the SGML document
(3) The upper document element and the preceding and following document elements remain editable, and the uppermost document element being edited is deleted, the tag (generic identifier) is changed, and the document type definition for partial editing is not violated. A mechanism that allows new document elements to be added before and after
(4) A mechanism for maintaining a history of copying / moving (exchange) / adding / deleting document elements
(5) Mechanism to output the retained history information in a device-independent format
FIG. 1 is a block diagram of the present invention for realizing the above mechanism.
[0029]
In FIG. 1, the SGML document management apparatus 1 comprises an SGML document editing apparatus 10, an SGML document exchange apparatus 20, an SGML document access apparatus 30, an SGML document database 40, and SGML parsers 50 and 50 '.
[0030]
When the present invention is realized on a server / client system, the SGML document editing device 10 and the SGML document exchange device 20 are provided on the client side, and the SGML document access device 30, the database 40, and the SGML parser 50 are provided on the server side. Prepared for. Further, an SGML parser 50 'may be provided on the client side.
[0031]
The SGML document editing apparatus 10 is a means for acquiring and editing the SGML document editing target part through the SGML document access apparatus 30. The SGML document editing device 10 includes a partial editing DTD consistency checking unit 11 that checks the consistency of the editing result by calling the SGML parser 50 ′ based on the partial editing DTD generated by the SGML document access device 30. , Storing the contents of the document element and the change of the extended content model, and having a history creating means 12 for generating a change history of the contents / structure of the part to be edited.
[0032]
The SGML document exchange device 20 is means for inputting / outputting an external SGML document or a history-added SGML document. This has a function of performing a mutual conversion between a standard SGML document format with an extension model used in the apparatus and an SGML document format without history information or a history-added SGML document format.
[0033]
The SGML document access device 30 performs input / output of a part or the whole of the SGML document stored in the database 40, creation of a DTD for partial editing, version management of the SGML document, and saving / restoring of the document in accordance with a client request. Is what you do.
[0034]
The SGML document access device 30 includes a document format conversion unit 31 that performs mutual conversion between a standard SGML document format with an extended model and an internal format of the database 40, a partial editing DTD creation unit 32 that generates a partial editing DTD, and SGML. By invoking the parser 50, there is a document format consistency checking means 33 for checking the consistency of the input SGML document, and a history management means 34 for organizing the document contents and history information of the extended contents model.
[0035]
The SGML parsers 50 and 50 'associate the DTD with the SGML document body as an auxiliary to other devices. The SGML parser 50 ′ of the client is functionally the same as the SGML parser 50 of the server. When the server / client is a different computer, especially when performing a consistency check during editing on an offline client, the client SGML parser 50 ′ Another device is used.
[0036]
A program for realizing the above processing means by a computer can be stored in an appropriate storage medium such as a portable medium memory, a semiconductor memory, or a hard disk that can be read by the computer.
[0037]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below.
FIG. 2 is a diagram showing a basic structure of data in the present invention. A solid line arrow in the figure indicates a correspondence relationship by identifier. The data structure of the present invention is roughly divided into information on the entire document and information on a document element basis.
[0038]
2A includes system information for operating and managing the document, profile information for describing the logical properties of the document, document history information, and the like.
[0039]
The information for each document element shown in FIG. 2B includes identifier information for representing the document structure by associating each piece of information stored for each document, and information for each document element as SGML (attribute, tag, Subordinate information), history information for each element, and system management information for performing access control for each element.
[0040]
The document is stored in the database 40 for each document element, and is managed with an instance identifier. An instance identifier is logically composed of a document identifier for identifying a document (of a certain version) and an element identifier for specifying a document element in the document.
[0041]
A document identifier is uniquely assigned to a certain (independent) version of a document.
The element identifier is uniquely assigned to an actual document element (instance) in a certain document, and can correspond to the ID reference function in the document in the SGML document.
[0042]
Each revised element is associated with an element (column) before revision by an instance identifier and a revision number. The revision number is an identification value that also expresses the order of revisions uniquely given to revision work as a version of a document, and is specifically assigned by the system at check-in.
[0043]
Stored elements are linked through instance identifiers to form an SGML document structure. The link indicating the SGML document structure is stored as an extended content model in association with the content model in the DTD, and is also used for structure revision history management and determination of independence of partial editing. The extended content model is obtained by adding a correspondence relationship (instance identifier) with an element of an actual SGML document and a deletability indicator (deletable number) of the element to the content model.
[0044]
First, an example of storing an SGML document by this apparatus will be described with reference to FIGS. 3 and 4 show only main parts such as a part related to the structure in the stored information shown in FIG. The original document of the SGML document shown in FIG. 3 is converted into an internal representation by the SGML document exchange device 20 and stored in the database 40 as data having the configuration shown in FIG. 4 through the SGML document access device 30.
[0045]
In the SGML document shown in FIG. 3, “<>” represents a tag. The original document of this SGML document consists of two chapters (SECT), with the first chapter having two sections (P) and the next chapter (SECT) having one section (P). Yes.
[0046]
FIG. 5 is a diagram showing the structure of the extended content model in Bacchus notation (BNF) according to the format expressed in this specification. However, in this BNF, in order to avoid complicated expressions, the presence or absence of a blank element between each structural unit is not shown.
[0047]
If the content model contains ANY or #PCDATA, and the substructure appears in the actual document, the substructure management, such as storage / management in the substructure unit, storage / management ignoring the substructure, etc. The level can be selected. In other words, emphasized phrases and the like can be stored and managed as a unit up to the level of a higher element such as a sentence or paragraph, without being a management unit.
[0048]
It is also possible to import elements in a revised state (subtree) in other documents. As a capture mode, there are a shared mode in which the original element is also changed, an independent mode in which the original element is not changed, and a link mode in which the change itself is not allowed.
[0049]
In the shared mode / link mode, it is associated with the entity of the element fetched from the import destination via a special document element for linking. In the document element for linking, the instance identifier and revision number of the top element of the subtree to be fetched, the correspondence table of revision numbers and element identifiers of lower elements are stored as shared information, and lower information is not described. The element identifier correspondence table is used to realize ID reference from another part in the imported document. In the independent mode, each element in the captured part is copied and associated with the original element in the history information.
[0050]
[1] DTD for partial editing
According to the present invention, it is possible to edit a document string or a continuous document string having a common parent element. At this time, in order to be able to independently check the consistency of the part being edited (SGML parsing), the SGML document access apparatus 30 converts the DTD for partial editing generated using the extended content model into SGML. The data is transferred to the document editing apparatus 10.
[0051]
The DTD for partial editing is the primary document type name DTD generated for partial editing, and the declaration of the generated document type name is added to the declaration in the DTD for all documents as a good word for the root document element. Is. The declaration of the root document element is based on the content model part extracted from the top-level document element of the editing target part, and the possibility of adding and deleting elements before and after corresponding to the additional reservation (described later) It reflects information on the possibility of deletion of elements corresponding to reservations (described later) in the form of appearance indicators.
[0052]
Note that there are “*,?, +”, Etc. as appearance indicators, “*” indicates that an arbitrary number of elements appear, and “?” Indicates that only one element may appear or may be omitted. “0” indicates that one or more elements appear, and “+” indicates that one or more elements appear.
[0053]
FIG. 5 is a diagram illustrating a configuration example of the extended content model.
The extended content model includes an extended model group or its additive elements and excluded elements, and the extended model group includes an extended model string or a deleteable model group. The deleteable model group includes a deleteable number, a tag or model string, an appearance indicator, and an extended model string. The extended model column includes extended model elements. An extended model element is an extended model group or an extended element. An extension element is a tag or a tag and an appearance indicator with an instance identifier.
[0054]
This extended content model is not indispensable for generating the DTD for partial editing, but is used for performing a process for obtaining a constraint on the highest element of the edited portion at high speed. In other words, by holding the extended content model, the part that associates the document element before editing with the processing for obtaining the restriction of the editing portion and the content model can be performed simply by referring to the extended content model.
[0055]
(1) Means for ensuring the independence of partial editing
In the present invention, exclusive control based on check-out / check-in of elements to be edited is performed in order to avoid conflicts in partial editing work that proceeds in parallel in the joint writing of SGML documents. This is achieved by preparing a checkout mechanism for the element to be edited and a deletion reservation / addition reservation mechanism for variable elements (elements to which appearance indicators are assigned in the content model) with a limited number of appearances. In some cases, the variable element and the attached element can be added / deleted independently of other document elements appearing at the same level of the SGML document (that is, arranged below a certain document element).
[0056]
In the present invention, the possibility of addition / deletion is analyzed in advance, and when addition / deletion is possible, a variable element or attached element is inserted before and after the edit element, and the edit element itself is a variable element or attached. Allows splitting and deleting operations when they are elements. Deletion reservation / additional reservation prevent contention of processing related to this.
[0057]
Further, when the topmost document element (column) of the editing target portion is an element of a model group connected by OR (|), it is possible to change the tags. In the present invention, the restriction of the model group corresponding to the DTD for partial editing described later is also reflected, so that the tag of the highest element of the editing target portion can be changed as much as possible.
[0058]
(2) DTD generation for partial editing
FIG. 6 is a diagram for explaining an example of generation of the DTD for partial editing.
The entire SGML document is a document of type DOC, which consists of several SECTs (chapters) and each SECT consists of several Ps (paragraphs). Here, the SGML document access device 30 takes out the editing target (second P in the first SECT) in accordance with an instruction from the user, and performs partial editing incorporating the original DTD and the editing restrictions by the document body. DTD is generated, and the document body and the DTD for partial editing are transferred to the SGML document editing apparatus 10.
[0059]
The DTD of the SGML document (whole) is
<! ELEMENT DOC (SECT +)>
<! ELEMENT SECT (P +)>
The partial editing DTD generated by the SGML document access device 30 is
<! ELEMENT EDITDOC (P *)>
It is. The partial editing DTD has a temporary document type name of EDITDOC, and expresses a restriction that an element to be edited may be deleted or another tag element of P (paragraph) may be added. “*” Is an appearance indicator indicating that the number of P is arbitrary. The number of Ps may be arbitrary because, in the original DTD, the part to be extracted as the editing target is “P +” (+ indicates that one or more elements appear), and there is already one P. This is because consistency is guaranteed.
[0060]
(3) Adding / deleting document elements / changing tags
Next, an example of addition / deletion / tag change of the document element at the highest level of the editing target part will be described with reference to FIGS. DTD in the figure shows only the part related to the structure.
[0061]
FIG. 7 is a diagram illustrating an example of determining whether or not another element can be added before and after an element to be checked out as an editing target.
Elements that can be added at the top level of the part to be edited are variable elements or attached elements. Such elements can be added without violating the DTD when editing the element next to the position where it can appear.
[0062]
In FIG. 7, the DTD of the SGML document (entire) is
<! ELEMENT DOC (SECT +)>
<! ELEMENT SECT (TITLE?, P +)>
Suppose that FIG. 7A shows a case where the document does not yet have a TITLE (title) and an editing portion is a P that is not adjacent to a TITLE that can be added. FIG. 7B shows a TITLE that has no TITLE and can be added. When the adjacent P is used as the editing portion, FIG. 7C shows an example in which the document already has TITLE.
[0063]
Here, TITLE can be added in a situation where TITLE is not yet present in the document to be edited, and the P adjacent to the position where TITLE can be added (in this case, the first P) is to be edited. . This is the case of “No TITLE (No. 2)” in FIG. 7B. In “When there is no TITLE (No. 1)” in FIG. 7A, since the editing target P is not next to the position where TITLE can be added, TITLE cannot be added, and FIG. The “case” cannot be added because TITLE already exists.
[0064]
In FIG. 7A, since the editing portion P is not adjacent to TITLE, the generated partial editing DTD is:
<! ELEMENT EDITDOC (P *)>
It becomes. Therefore, TITLE cannot be added by partial editing, but P can be an arbitrary number.
[0065]
In FIG. 7B, since the editing part P is adjacent to TITLE, the generated partial editing DTD is:
<! ELEMENT EDITDOC (TITLE?, P *)>
Thus, TITLE can be added in partial editing, and P can be an arbitrary number.
[0066]
In FIG. 7C, since TITLE has already been generated, the generated partial editing DTD is:
<! ELEMENT EDITDOC (P *)>
Thus, TITLE cannot be added by partial editing.
[0067]
FIG. 8 is a diagram for explaining an example of an additional reservation for suppressing an element addition conflict caused by different editing operations.
The DTD of the SGML document (whole) is
<! ELEMENT DOC (SECT +)>
<! ELEMENT SECT (TITLE ?, AUTHOR ?, P +)>
Suppose that For elements with an upper limit on the number of appearances (in SGML documents, only one with the OPT appearance indicator '?' Appears or can be omitted), additional processing is possible only if that element does not exist before editing. is there. To edit such an element in a state where it can be added, check out the elements before and after and issue an additional reservation. Additional reserved elements cannot be added by other tasks.
[0068]
In the initial state shown in FIG. 8A, since there is no AUTHOR (author name) in the SECT (chapter) of the SGML document, AUTHOR is not changed in any of TITLE (title) and P (paragraph) following it. It can be added. Here, if AUTHOR is additionally reserved when editing (checking out) TITLE, AUTHOR is additionally reserved during TITLE editing shown in FIG. 8B, and only P can be edited in subsequent P editing. It becomes.
[0069]
That is, in the initial state shown in FIG. 8A, when the AUTHOR is additionally reserved when editing TITLE, the generated partial editing DTD is:
<! ELEMENT EDITDOC (TITLE, AUTHOR ?, P *)>
Thus, in partial editing, AUTHOR and P can be added in addition to TITLE editing.
[0070]
Further, in the editing of another P during the TITLE editing shown in FIG. 8B, since AUTHOR is additionally reserved, the generated partial editing DTD is:
<! ELEMENT EDITDOC (P +)>
Thus, in partial editing, the number of P can only be set to an arbitrary number of 1 or more.
[0071]
FIG. 9 is a diagram for explaining an example of deletion reservation for suppressing conflict of element deletion due to different editing operations.
The DTD of the SGML document (whole) is
<! ELEMENT DOC (SECT +>
<! ELEMENT SECT (P +)>
Suppose that For variable elements with a lower limit on the number of appearances (in SGML documents, one or more elements with a PLUS appearance indicator '+'), the deletion process is performed only when there are two or more elements before editing. Is possible. When editing such an element in a deleteable state, the element to be edited is checked out and a deletion reservation is issued. Deletion reservation is accepted only when the number of occurrences of the same kind of elements excluding elements already reserved for deletion is 2 or more.
[0072]
In the initial state shown in FIG. 9A, since the first SECT (chapter) has two P (paragraphs), any one can be deleted. When the second P is reserved for deletion and checked out, the generated partial editing DTD is
<! ELEMENT EDITDOC (P *)>
Thus, in partial editing, paragraphs can be extracted as deletable elements.
[0073]
In this way, when the second P in the first SECT is checked out in a state where it can be deleted, the second P is reserved for deletion during the editing shown in FIG. Deletion is impossible in the editing of the second P. Therefore, the DTD for partial editing generated by partial editing of the first P in the first SECT is
<! ELEMENT EDITDOC (P +)>
And P cannot be deleted.
[0074]
The above addition / deletion reservation is issued from the SGML document editing apparatus 10 to the SGML document access apparatus 30 at the normal checkout, but can be additionally issued during editing.
[0075]
FIG. 10 is a diagram illustrating an example of changing the tag of the element at the highest level to be edited.
The DTD of the SGML document (whole) is
<! ELEMENT DOC (SECT +)>
<! ELEMENT SECT (P | LIST) +>
<! ELEMENT LIST (ITEM +)>
Since the topmost document element of the part to be edited corresponds to the content model group connected by OR (|), the tag can be changed and replaced with the content of the LIST structure.
[0076]
The DTD for partial editing generated in this case is
<! ELEMENT EDITDOC (P | LIST) *>
<! ELEMENT LIST (ITEM +)>
Thus, P can be changed to LIST.
[0077]
FIG. 11 and FIG. 12 are flowcharts of processing for the client to acquire the edited portion of the document.
In step S1 of FIG. 11, the SGML document editing apparatus 10 of the client prompts the user to select an element to be edited.
[0078]
In step S2, a selection reservation for the selected editing object is issued.
In step S3, it is determined whether the selection reservation is successful. If the selection reservation is successful, the process proceeds to step S4. If the selection reservation is not successful, the process proceeds to step S13.
[0079]
In step S4, a list of addition / deletion reservation candidate elements is acquired. The addition / deletion reservation candidate element list is a list of elements that can be added / deleted in the edit target portion and its surroundings, and is created on the server side in accordance with the processing described later (FIGS. 15 and 16).
[0080]
In step S5, it is determined whether the reservation candidate element list is empty. If the list is not empty, the process proceeds to step S6. If the list is empty, the process proceeds to step S14 (FIG. 12).
[0081]
In step S6, the addition / deletion reservation element list is emptied.
In step S7, addition / deletion candidate elements are displayed to prompt the user to select.
In step S8, it is determined what the selected element is. If the selected element is an additional element, the process proceeds to step S9. If the selected element is a deleted element, the process proceeds to step S10. If the selected element has been selected, the process proceeds to step S14 (FIG. 12). Proceed to
[0082]
In step S9, the selected element is added to the additional reservation list, and the process proceeds to step S11.
In step S10, the selected element is added to the deletion reservation list.
[0083]
In step S11, the selected element is deleted from the addition / deletion candidate list.
In step S12, it is determined whether the reservation candidate element list is empty. If the reservation candidate element list is empty, the process proceeds to step S14 (FIG. 12). If the reservation candidate element list is not empty, the processes after step S7 are repeated.
[0084]
In step S13, the user is notified of the reason for non-selection based on the determination result (selection reservation unsuccessful) in step S3, and the process ends.
In step S14 of FIG. 12, it is determined whether or not the deletion element list is empty. If the deleted element list is not empty, the process proceeds to step S15. If the deleted element list is empty, the process proceeds to step S19.
[0085]
In step S15, the top element of the deletion element list is popped.
In step S16, a deletion reservation for the popped element is issued.
In step S17, it is determined whether the deletion reservation is successful. If the reservation is successful, the process returns to step S14. If the reservation is not successful, the process proceeds to step S18.
[0086]
In step S18, the user is notified of the deletion reservation failure.
In step S19, it is determined whether or not the additional element list is empty. If the additional element list is not empty, the process proceeds to step S20. If the additional element list is empty, the process proceeds to step S24.
[0087]
In step S20, the top element of the additional element list is popped.
In step S21, an additional reservation for the popped element is issued.
In step S22, it is determined whether the additional reservation is successful. If the reservation is successful, the process returns to step S19. If the reservation is not successful, the process proceeds to step S23.
[0088]
In step S23, the user is notified of the additional reservation failure.
In step S24, the edit data is checked out and the DTD for partial editing is acquired.
[0089]
In step S25, the selected reservation is canceled and the process ends.
13 and 14 are flowcharts of processing in which the server provides the partial editing DTD and the editing data in response to a request.
[0090]
In step S31 of FIG. 13, the SGML document access device 30 accepts a selection reservation for an element to be edited.
In step S32, it is determined whether or not the designated element (column) is reserved. If it is reserved, the process proceeds to step S40. If it is not reserved, the process proceeds to step S33.
[0091]
In step S33, the designated element (column) is temporarily locked (selection reserved).
In step S34, it is determined whether the parent element (column) of the designated element (column) is reserved. If it is reserved, the process proceeds to step S39. If it is not reserved, the process proceeds to step S35.
[0092]
In step S35, the parent element (column) of the designated element (column) is temporarily locked (selection reservation).
In step S36, a partial editing content model and an addition / deletion candidate element list creation process are performed.
[0093]
In step S37, the client is notified of the successful selection reservation.
In step S38, an addition / deletion reservation candidate list is provided to the client. Thereafter, the process proceeds to step S41 in FIG.
[0094]
In step S39, the temporary lock of the designated element (column) is released.
In step S40, the client is notified of the process failure and the reason, and the process ends.
[0095]
In step S41 of FIG. 14, it is determined what the next request is. If the next request is an additional deletion reservation, the process proceeds to step S42. If the next request is a check-out, the process proceeds to step S43. If the next request is a selective reservation cancellation (request end), step S55 is performed. Proceed to the process.
[0096]
In step S42, it adds to an addition / deletion reservation list, and returns to the process of step S41.
In step S43, it is determined whether or not the deletion reservation list is empty. If the deletion reservation list is not empty, the process proceeds to step S44. If the deletion reservation list is empty, the process proceeds to step S47.
[0097]
In step S44, the top element of the deletion reservation list is popped.
In step S45, the appearance indicator of the element of the partial editing content model corresponding to the popped element is changed from “+” to “*”.
[0098]
In step S46, the number of elements to be edited is subtracted from the number of deleteable models in the deleteable model in the extended content model of the parent element corresponding to the popped element, and then the process returns to step S43.
[0099]
In step S47, the additional reservation list is sorted by the additional element number.
In step S48, an element with a negative element number is added to the head of the partial editing content model.
[0100]
In step S49, an element having a positive element number is added to the end of the partial editing content model.
In step S50, an element in the additional reservation list is additionally reserved.
[0101]
In step S51, the edit target is checked out, and the temporary lock for selection reservation is released.
In step S52, a document type name for partial editing is generated, and an element declaration of the highest element of the editing portion is created together with the partial editing content model.
[0102]
In step S53, the partial DTD is generated by adding the declaration in the entire DTD to the created element declaration.
In step S54, the DTD for partial editing and editing data are provided to the client, and the process ends.
[0103]
In step S55, the temporary lock is released and the process ends.
15 and 16 are flowcharts of the partial editing content model and addition / deletion candidate element list creation processing using the extended content model shown in step S36 of FIG.
[0104]
In step S61 in FIG. 15, the portion of the extended content model composed of the collation element sequence is extracted.
In step S62, it is determined whether or not there is an element group that is not closed (the closing parenthesis “)” is missing). If there is an element group that is not closed, the process proceeds to step S63. If there is no element group that is not closed, the process proceeds to step S67.
[0105]
In step S63, it is determined whether the last element (group) is an element of the erasable model group. If the last element (group) is an element of the deletable model group, the process proceeds to step S64. If the last element (group) is not an element of the deletable model group, the process proceeds to step S66.
[0106]
It should be noted that the deleteable model group of the extended content model is the original SGML content model "'*' (REP) (indicates zero or more occurrences)", "'+' (PLUS) (one or more possible occurrences) This corresponds to the portion to which the appearance mark “is shown”. The first element of the deletable model group is obtained by adding the deletable number to the original content model, and the second and subsequent elements are the corresponding extended models (models with instance identifiers) of actual document elements.
[0107]
In step S64, the number of elements in the last deletable model is compared with the deletable number. If the number that can be deleted is greater than or equal to the number of elements, the process proceeds to step S65. Otherwise, the process proceeds to step S66. When any number can be repeated (appearance indicator ('*' (REP)), a deleteable number (for example, -1) is set so that the determination result is always "other").
[0108]
In step S65, the deleteable model group is added to the deletion reservation candidate list as a deletion reservation candidate element group.
In step S66, ')' is supplemented at the end.
[0109]
In step S67, it is determined whether or not the first element (group) is an element of the erasable model group. If the first element (group) is an element of the deletable model group, the process proceeds to step S68. If the first element (group) is not an element of the deletable model group, the process proceeds to step S71.
[0110]
In step S68, the number of elements in the first model that can be deleted is compared with the number that can be deleted. If the number that can be deleted is greater than or equal to the number of elements, the process proceeds to step S69, and otherwise, the process proceeds to step S70. When any number can be repeated (appearance indicator ('*' (REP)), a deleteable number (for example, -1) is set so that the determination result is always "other").
[0111]
In step S69, the deleteable model group is added to the deletion reservation candidate list as a deletion reservation candidate element group.
In step S70, the head element of the removable model and '(' are added to the head of the extracted extended content model.
[0112]
In step S71, only the top element is left for the group of models that can be deleted in the partial expanded content model, and the head + <number of deleteable> is removed.
In step S72, the instance identifier is removed from the partially expanded content model. This completes the partial editing content model.
[0113]
In step S73 of FIG. 16, the element immediately before the specified element string is extracted. If the first element is an element string delimiter, the element (model group) is taken out one level above.
[0114]
In step S74, 0 is substituted for the element number.
In step S75, it is determined what the extracted element (model group) is. If the extracted element (model group) is an omissible model or an erasable model that does not include an instance identifier, the process proceeds to step S76; otherwise (including the case where there are no more elements at that level), step S79 is performed. Proceed to the process.
[0115]
In step S76, 1 is subtracted from the element number.
In step S77, the combination of the extracted element and element number is added as an additional candidate element (group) to the additional candidate element list.
[0116]
In step S78, the previous element is extracted. Thereafter, the process returns to step S75 and the process is repeated in the same manner.
In step S79, 0 is substituted for the element number.
[0117]
In step S80, the element immediately after the specified element string is extracted. If the last element is an element string delimiter, the element (model group) is taken out one level above.
In step S81, it is determined what the extracted element (model group) is. If the extracted element (model group) is an omissible model or an erasable model that does not include an instance identifier, the process proceeds to step S82. If it is other (including the case where there are no more elements at that level), the process is performed. finish.
[0118]
In step S82, 1 is subtracted from the element number.
In step S83, the combination of the extracted element and element number is added as an additional candidate element (group) to the additional candidate element list.
[0119]
In step S84, the next element is extracted. Thereafter, the determination in step S61 is repeated.
[2] Revision history information
(1) Revision history storage method
Since the extended content model shown in FIG. 5 completely expresses the sequence of elements below a certain document element, it is possible to manage the transition information in association with the document element at a certain point in time. It is possible to use history information indicating which contents exist at a position on the document structure. If this information is added with a history of what was the direct document element of the document element, it is possible to completely track how the structure of the document has changed.
[0120]
In other words, how the structure of the lower element has changed as seen from the upper element can be grasped by referring only to the revision history of the extended content model, and in order to track where the lower element has moved, The revision history (of the relevant revision level) of the extended content model of the upper element may be taken out and the position of the lower element may be checked.
[0121]
Utilizing this fact, the present invention stores and manages history information as follows.
As shown in FIG. 2, the history information includes information managed in units of documents and information managed in units of document elements. The history information managed in document units includes information that is automatically set by the revision date, revision person, and revision system, and information that can be freely entered by the user, such as revision name and comment. Revision numbers that identify all revisions as a sequence are assigned and managed. The history information managed for each revised document is master data relating to the revision, and a copy can be stored in association with each document element in order to enhance the history of each element.
[0122]
The history information managed for each document element includes a revision history of the parent element, a revision history of the extended content model, a revision history of the document content, a revision history of the tag / attribute, and a comment. These pieces of information are basically stored in a form in which a revision number, a comment, and deleted / imported / exported child document element information are added to the link to the corresponding document element before the revision.
[0123]
The history information about the elements before revision that cannot be reused can be converted into a difference form to improve the space efficiency and the history retrieval efficiency. When storing as a difference, the revision number, comment, parent element identifier before revision, difference from the extended content model before revision, difference from the document content before revision, and difference between tag / attribute before revision Stored as a single column.
[0124]
(2) Document structure revision history creation method
The revision history of the document structure is basically created by obtaining the difference of the extended content model at the time of check-in in the SGML document access device 30. In order to accurately obtain the difference, the SGML document access device 30 passes information serving as a clue to obtain the difference to the SGML document editing device 10 in the form of the SGML attribute of the document element. This information is the document identifier / element identifier and revision number of the element and the parent element. Among these, the document identifier / revision number is used when sharing and exchanging document elements with another document or revision level, and only the element identifier is used during normal editing.
[0125]
The operation of the dedicated SGML document editing apparatus 10 is roughly divided into a structural change such as movement / exchange / addition / deletion of a document element, a change of data in the document element, and a change of attribute of the document element. When the structure change operation is performed, the SGML document editing apparatus 10 determines the identifier of the deleted child, the identifier of the exported / imported child document element, and the identifier of the destination / original parent element. , Added to the attributes of the document element. When an element is added or copied, a temporary element identifier is set for the added or copied element.
[0126]
In the dedicated SGML document editing apparatus 10, an element (partial tree) of another document can be taken in as a part of a certain document. In this case, the instance identifier of the extended content model of the parent element of another captured document is a pair of the document identifier and the element identifier. In addition, the default value of the change mode related to editing of the imported element is assigned separately. The change mode distinguishes whether changes to the imported element are also made to the original element. This includes a shared mode that changes the original element, an independent mode that does not change the original element, and a link mode that does not allow the change itself. In the shared mode, another document part corresponding to the element captured at the time of checkout is also checked out at the same time.
[0127]
Note that, when document elements are exchanged between separately checked-out editing parts regardless of whether they are parts of the same document, the SGML document editing apparatus 10 is forced to be in a synchronous check-in mode. In this case, the SGML document access device 30 accepts check-in only when both editing results are correct. If the special attribute assigned by the SGML document access device 30 is not changed, the revision history of the structure can be created even if editing is performed using a general SGML editor or the like. However, functions such as importing a document element of another document and linking described above cannot be used. In addition, there may be cases where copying or the like is not interpreted as intended.
[0128]
(3) Example of revision history creation
FIG. 17 is a diagram for explaining an example of creating a revision history. First, a portion surrounded by a dotted line is extracted from the SGML document body before editing shown in FIG. 17A through the SGML document access device 30, and the document identifier (doc), element identifier (id), revision number (ver), parent The element identifier (pid) is assigned as an attribute and passed to the SGML document editing apparatus 10.
[0129]
In this example, an edit operation by the SGML document editing apparatus 10 is performed to copy the element with the element identifier p2 and move the element with the element identifier pl to the element identifier s2. Here, for the element obtained by copying the element identifier p2, the temporary element identifier new1 is given, and the copyof attribute indicating the copy source element and the copystat attribute (in this case, the independent mode) indicating the change mode are set in the SGML document editing apparatus 10. Set by
[0130]
The editing result is taken in through the SGML document access device 30, and the edited document body shown in FIG. 17B is stored in the database. Here, an updated element is created in the updated part, and a link to the element before the update is set by a revision number or the like.
[0131]
(4) Revision history output method
The present invention has means for outputting the revision history together with the SGML document. The revision history is also output in the SGML document format. The revision history is basically a list of revision differences. It is also possible to output the document before the revision independently and add a transition (correspondence) relationship between them.
[0132]
There are two types of output formats: a format using the DTD of the SGML document with history generated by adding the history information part declaration to the original DTD, and a format in which the original SGML document is embedded using the history document as a hub. The latter further includes a format in which the revision history is listed as difference information to describe the correspondence with the elements of the SGML document body, and a format in which the SGML document group before the revision is output to describe the transition relationship between those elements. There is. In any format, the contents output as history information are the same as the history information shown in FIG.
[0133]
In the SGML document with history information, the history information and the SGML document body are associated with each other using the SGML ID reference function. For this purpose, an attribute corresponding to an instance identifier is normally embedded in each document element of the SGML document body. Note that, for example, the location ladder function of HyTime (ISO 10744), known as the ISO standard, can be used to implement the DTD of the original SGML document without any modification. Such an output is possible because the configuration of the instance identifier or the like in the present invention has high affinity with the SGML ID reference and the HyTime link function.
[0134]
The element identifier is an attribute of the element identifier of the SGML document body, the document identifier is an SGML document entity identifier when the SGML document body is a separate document from the history document, and the revision number is the element identifier of the history information part. Used as an attribute.
[0135]
(5) Output of SGML document with history
18 and 19 are diagrams showing examples of DTDs of history-added SGML documents when embedding information such as element identifiers in the SGML document body. Here, with respect to a part that incorporates an element of another document, an element identifier / revision number in the SGML document with history, which is managed by this apparatus, is added to the document identifier.
[0136]
If an element identifier or the like cannot be embedded in the SGML document body, the SGML document body is defined as an external entity, and an attribute such as an element identifier is associated with the element of the SGML document body by a location ladder using Hytime pathloc in the ESDdoc part. The same information can be expressed as an SGML document by such means.
[0137]
20 to 27 are flowcharts of the document editing process of the SGML document editing apparatus 10. 20 and 21 show the overall processing flow.
In step S91 in FIG. 20, the document subtree to be edited is acquired from the server or from a local file. Here, the document editing apparatus having the dependency relationship is also activated at the same time.
[0138]
In step S92, a user request or a message (synchronization request) from another document editing apparatus is awaited.
In step S93, it is determined whether the request is a synchronization request. If the request is a synchronization request, the process proceeds to step S107. If the request is not a synchronization request, the process proceeds to step S94.
[0139]
In step S94, the user's request is determined. If the user's request is a structure editing request, the process proceeds to step S95. If the user's request is a content editing request, the process proceeds to step S96, and the user's request ends. Alternatively, if it is a check-in request, the process proceeds to step S98.
[0140]
In step S95, a structure editing process described later is performed.
In step S96, it is determined whether or not the element is editable. If the element is editable, the process proceeds to step S97. If not, the process returns to step S92.
[0141]
In step S97, content editing is performed.
In step S98, it is determined whether there is a dependency relationship with another document editing apparatus. If there is a dependency relationship, the process proceeds to step S99, and if there is no dependency relationship, the process proceeds to step S104.
[0142]
In step S99, the document editing apparatus having a direct dependency relationship is notified to obtain an identifier list of all the document editing apparatuses having the dependency relationship. Remove duplicates.
[0143]
In step S100, it is confirmed that the dependency relations are displayed and processing is performed on all of them.
In step S101, it is determined whether or not to process. If so, the process proceeds to step S102. If not, the process proceeds to step S103.
[0144]
In step S102, the apparatus having the dependency relationship is requested to execute the process, and the process proceeds to step S104.
In step S103, the reservation is canceled and the process returns to step S92.
[0145]
In step S104, it is determined what the request is. If the request is a check-in request, the process proceeds to step S105. If the request is an end request, the process proceeds to step S106.
[0146]
In step S105, a check-in process described later is performed, and the process returns to step S92.
In step S106, an end process described later is performed.
[0147]
In step S107, it is determined what the synchronization request is. If the synchronization request is completed or is a check-in request, the process proceeds to step S108. If the synchronization request is a dependency acquisition request (also serving as a synchronization process reservation), The process proceeds to step S109 (FIG. 21).
[0148]
In step S108, reservation cancellation or error processing is performed, and the process proceeds to step S104.
In step S109 of FIG. 21, it is determined whether or not a process reservation has been made. If a process reservation has been made, the process proceeds to step S113. If no process reservation has been made, the process proceeds to step S110.
[0149]
In step S110, the identifier of the request source is stored as a synchronous process reservation, and the acceptance of processes from others is stopped.
In step S111, the identifier of the request source and the synchronization request are transferred to another document editing apparatus having a dependency relationship, and an identifier list of the document editing apparatuses having a dependency relationship is obtained.
[0150]
In step S112, the identifier of the document editing apparatus is added to the identifier list and returned to the request transmission source.
In step S113, an empty document editing apparatus identifier list is returned to the request transmission source. In the request transmission source, if the identifier is different from the reservation, error processing is performed.
[0151]
In step S114, a message (synchronization request) from another document editing apparatus (synchronization reservation owner) is awaited. Thereafter, the process returns to step S107.
FIG. 22 is a flowchart of the structure editing process in step S95 in FIG.
[0152]
In step S121, it is determined what the user request is. If the request is a new creation, the process proceeds to step S122. If the request is a paste (paste), the process proceeds to step S127. If it is a cut request, the process proceeds to step S131, and if it is a delete request, the process proceeds to step S135.
[0153]
In step S122, it is determined whether or not the position for creating a new element is an editable area. If it is an editable area, the process proceeds to step S123. If not, the process ends.
[0154]
In step S123, the user is prompted to specify an element type.
In step S124, a temporary element identifier is generated and a new element is created.
In step S125, the document identifier and element identifier of the parent element are set in the attributes (doc, pid) of the new element.
[0155]
In step S126, the newly created element is added to the document tree being processed, and the process ends.
In step S127, it is determined whether or not the pasting position is an editable area. If it is an editable area, the process proceeds to step S128. If not, the process ends.
[0156]
In step S128, it is determined whether there is a register in which an element to be pasted is registered. If there is a registered register, the process proceeds to step S129, and if there is no registered register, the process ends.
[0157]
In step S129, selection of a pasting source register is prompted.
In step S130, a pasting process described later is performed, and the process ends.
In step S131, it is determined whether the request is a cut request or a copy request. If the request is a cut request, the process proceeds to step S132. If the request is a copy request, the process proceeds to step S134.
[0158]
In step S132, it is determined whether or not the position to be cut is an editable area. If it is an editable area, the process proceeds to step S133. If not, the process ends.
[0159]
In step S133, an element deletion process described later is performed. That is, the specified element is connected to the deletion list, and the element deletion information of the parent element of the specified element is updated.
[0160]
In step S134, the identifier of the designated element and the parent element and the type of copying / cutting are registered in the register. Thereafter, the process is terminated.
In step S135, it is determined whether or not the position to be deleted is an editable area. If it is an editable area, the process proceeds to step S136. If not, the process ends.
[0161]
In step S136, an element deletion process described later is performed.
23 and 24 are flowcharts of the pasting process in step S130 in FIG.
[0162]
In step S141 in FIG. 23, the element type of the register is determined. If the element type is copy, the process proceeds to step S142. If the element type is cut, the process proceeds to step S154.
[0163]
In step S142, the user is prompted to select a change mode for the element to be copied.
In step S143, the change mode is determined. If the change mode is the shared mode or the link mode, the process proceeds to step S144. If the change mode is the independent mode, the process proceeds to step S152.
[0164]
In step S144, a temporary element identifier is generated.
In step S145, a copy of the register element is created and the generated element identifier is set.
[0165]
In step S146, the instance identifier and change mode of the register element are set in the copy source attribute (copyof) and change mode attribute (copystat) of the copy element, respectively.
[0166]
In step S147, the copy element list attribute (coupled.to), the link element list attribute (linked.with), and the derived element list attribute (derivations) of the copied element are cleared.
[0167]
In step S148, a temporary element identifier is generated for an element other than the register element included in the document subtree below the register element, and the correspondence with the original element identifier is stored in the element correspondence table attribute (linktbl).
[0168]
In step S149, the change mode is determined. If the change mode is the link mode, the process proceeds to step S150. If the change mode is the shared mode, the process proceeds to step S151.
[0169]
In step S150, the (provisional) instance identifier of the copied element is added to the end of the link element list attribute (linked.with) of the register element, and the process proceeds to step S153.
[0170]
In step S151, the (provisional) instance identifier of the copied element is added to the end of the copy element list attribute (copied.to) of the register element, and the process proceeds to step S153.
[0171]
In step S152, the document subtree below the register element is visited with depth priority, and copied in order of destination. That is, all the element identifiers are generated and replaced with temporary identifiers, the instance identifier of the original element is set as the copy source attribute, and the change mode attribute is set to the independent mode. The instance identifier of the generated copy element is added to the derived element list attribute (derivations) of each copy source element. However, shared / link relationships that are closed in the subtree are replaced with links in the subtree.
[0172]
In step S153, the element to be pasted is added to the subtree being processed, and the process ends.
In step S154, it is determined whether the register element is a document different from the document being processed. If the register element is another document, the process proceeds to step S142. If the register element is not another document, the process proceeds to step S155 (FIG. 24).
[0173]
In step S155 in FIG. 24, the subtree below the register element is removed from the deletion list and is pasted.
In step S156, it is determined whether the pasted element is a new element. If the pasted element is a new element, the process proceeds to step S163. If the pasted element is not a new element, the process proceeds to step S157.
[0174]
In step S157, the register element identifier (document identifier and element identifier) is removed from the deleted element attribute (deletions) of the original parent element of the register element.
[0175]
In step S158, it is determined whether or not the register element identifier has been removed. If the register element identifier has been removed, the process proceeds to step S159. If the register element identifier has not been removed, the process proceeds to step S160.
[0176]
In step S159, the register element identifier (document identifier and element identifier) is added to the end of the export element attribute (exports) of the original parent element of the register element.
[0177]
In step S160, the identifier (document identifier and element identifier) of the register element is removed from the deletion element attribute (deletions) of the parent element of the pasting destination.
In step S161, it is determined whether or not the register element identifier can be removed. If the register element identifier can be removed, the process proceeds to step S163. If the register element identifier cannot be removed, the process proceeds to step S162.
[0178]
In step S162, register element identifiers (document identifiers and element identifiers) are added to the end of the imported element attributes (imports) of the pasted parent element.
In step S163, the element type of the register is changed to a copy element. Thereafter, the process proceeds to step S153.
[0179]
FIG. 25 is a flowchart of the element deletion process in steps S133 and S136 in FIG.
In step S171, it is determined whether the element to be deleted is a new element. If the element to be deleted is a new element, the process proceeds to step S175. If the element to be deleted is not a new element, the process proceeds to step S172.
[0180]
In step S172, the identifier (document identifier and element identifier) of the deleted element is removed from the imported element attribute (imports) of the original parent element of the deleted element.
In step S173, it is determined whether or not the deleted element identifier has been removed. If it has been removed, the process proceeds to step S174. If not, the process proceeds to step S175.
[0181]
In step S174, the deleted element identifier (document identifier and element identifier) is added to the end of the deleted element attribute (deletions) of the original parent element of the deleted element.
In step S175, the subtree of the document below the deletion element is connected to the deletion list, and the process ends.
[0182]
FIG. 26 is a flowchart of the check-in process in step S105 in FIG.
In step S181, the SGML parser verifies whether the editing result is compatible with the partial editing DTD.
[0183]
In step S182, it is determined whether the process is a synchronization request. If the process is based on the synchronization request, the process proceeds to step S183. If the process is not based on the synchronization request, the process proceeds to step S187.
[0184]
In step S183, it is determined whether the document being processed conforms to the DTD. If it does not conform, the process proceeds to step S184, and if it conforms, the process proceeds to step S185.
[0185]
In step S184, the request source is notified that the document is incomplete, and the process ends.
In step S185, the request source identifier and the editing result are transmitted to the server and checked in (synchronously).
[0186]
In step S186, the requester is notified of the check-in result, and the process ends.
In step S187, it is determined whether the document being processed or the document to be synchronously checked in conforms to the DTD. If it conforms to DTD, the process proceeds to step S188, and if it does not conform to DTD, the process proceeds to step S192.
[0187]
In step S188, the first document element in the deletion list is extracted as a deletion element.
In step S189, the identifier of the document being processed and the editing result are transmitted to the server and checked in.
[0188]
In step S190, it is determined whether the check-in is successful. If the check-in is successful, the process proceeds to step S194. If the check-in is unsuccessful, the process proceeds to step S191.
[0189]
In step S191, the check-in failure and the reason are shown to the user, and the process proceeds to step S194.
In step S192, the document identifier being processed and the cancellation of synchronous check-in are notified.
[0190]
In step S193, the incomplete document portion is shown to the user.
In step S194, the document device having the dependency relationship is notified of the cancellation of the synchronous reservation, and the process is terminated.
[0191]
FIG. 27 is a flowchart of the end process of step S106 in FIG.
In step S201, the DTD and document body of the document being processed are output to a (document) file.
[0192]
In step S202, the document file name and the contents of the register deletion list are output to a (management) file.
In step S203, it is determined whether the process is a synchronization request. If the process is based on the synchronization request, the process proceeds to step S204. If the process is not based on the synchronization request, the process proceeds to step S205.
[0193]
In step S204, the request source is notified of the document file name, and the process ends.
In step S205, a list of document files having a dependency relationship is output to the (management) file, and the process ends.
[0194]
The effect | action by the above embodiment is demonstrated below.
1) Documents can be retrieved and stored efficiently.
When the SGML document is stored in the database (DB) in element units, the cost of extraction is required for each element. Therefore, it is desirable that the number of elements extracted in editing is as small as possible. In order to determine insertion / division for variable elements, it is necessary to associate the content model with the actual elements from the root document element to the depth first.
[0195]
The correct DTD has no ambiguity in the correspondence between the model element and the actual document element, so that the conformity check with the DTD regarding the lower element and the succeeding element can be omitted if the SGML document has already been verified. Even in this case, it is necessary to collate at least the document element included in the path from the document element to be edited to the document root and the document element appearing before that.
[0196]
According to the present invention, an extended content model is created by adding an instance identifier of a lower element and an index indicating whether or not a variable element can be deleted / inserted at a certain point in the content model, and is stored in association with each element. , It is only necessary to take out the group of elements that are directly subject to editing of the upper element (except when the lower element is already being edited and the elements below that element are also taken out, but are not subject to editing). (To be precise, in addition to this, it is necessary to take out information corresponding to a direct higher-level search for access control and history management described later), and access efficiency is improved.
[0197]
In the present invention, in addition to the information of the SGML document itself, an extended content model or the like is stored for management, but the deterioration of space efficiency is suppressed to a small extent. When storing in document element units, link information to upper and lower elements is indispensable, and even if variable elements and exception element parts that do not appear in the actual document are added, tag information increases three times. Degree. The instance identifier used for linking the stored document elements can also be used as an attribute value for reference in the SGML document, and space efficiency can be improved if used in this way.
[0198]
2) The degree of freedom for partial editing is improved.
When partially editing SGML documents by means of deletion / addition reservation at the time of check-out of the present invention, it has been impossible in the past to change tags or split / add / delete elements at the highest level to be edited. Editing becomes possible.
[0199]
3) Independence of editing increases.
In the present invention, it is possible to check the consistency of the part being edited only by the SGML document editing apparatus 10 using the DTD for partial editing. For this reason, it is not necessary to access the server for managing the SGML document during the partial editing, and the independence of the editing is enhanced, for example, the partial editing can be performed by an off-line personal computer or the like.
[0200]
4) A document structure change history can be maintained.
By retaining the transition of the extended content model and the parent element, it is possible to track the history of addition / deletion / movement at the document element level.
[0201]
5) Distribution is possible with an update history of SGML documents.
With a mechanism for outputting history information in a format compliant with SGML, SGML documents with history can be exchanged between different devices.
[0202]
6) Improved safety when changing DTD.
Since the DTD can be restored by the extended content model, the stored SGML document can be used even if the DTD becomes unusable due to revision of the DTD or an unexpected accident.
[0203]
【The invention's effect】
As described above, the present invention has the following effects.
1) Independence of editing work increases and work efficiency improves.
[0204]
In the present invention, the upper-level document element and the preceding and following document elements remain editable, and the top-level document element being edited, the tag change, and new document elements are added before and after editing within a range that does not violate DTD. Since it can be added, the need to re-access the device that manages the entire SGML document is reduced when the chapter in charge is divided.
[0205]
In addition, since the partial editing document can be independently checked for consistency with the generated partial editing DTD, once the part to be edited is extracted, the device that manages the entire SGML document is accessed until check-in. It is possible to proceed with editing without any problem.
[0206]
Since such independence of partial editing is ensured, the stagnation of editing work associated with the access of the server that manages the SGML document body is reduced, and editing can be performed with an offline computer. The range of selection can also be expanded, and work efficiency in collaborative editing can be improved.
[0207]
2) Reuse of documents is facilitated and the efficiency of document creation / revision is improved.
According to the present invention, while taking a history of changes in the content and structure of a document, it is possible to create and manage another document or edition part by importing it into another document. This makes it possible to improve the efficiency of document creation / revision, for example, in the creation and management of manuals for products in which different versions are distributed at the same time, or for product groups that differ only in some functions.
[Brief description of the drawings]
FIG. 1 is a block diagram of the present invention.
FIG. 2 is a diagram illustrating a correspondence relationship between a basic structure of data and history information.
FIG. 3 is a diagram illustrating an example of an original document of an SGML document.
FIG. 4 is a diagram illustrating a storage example of an SGML document.
FIG. 5 is a diagram illustrating a configuration example of an extended content model.
FIG. 6 is a diagram illustrating an example of generation of a DTD for partial editing.
FIG. 7 is a diagram illustrating an example of determination of elements that can be added.
FIG. 8 is a diagram illustrating an example of additional reservation.
FIG. 9 is a diagram illustrating an example of a deletion reservation.
FIG. 10 is a diagram illustrating an example of tag change of the highest element.
FIG. 11 is a flowchart (1) of a process for a client to acquire an edited part of a document.
FIG. 12 is a flowchart (2) of a process for a client to acquire an edited part of a document.
FIG. 13 is a flowchart (1) of a process for providing a partial editing DTD and editing data;
FIG. 14 is a flowchart (2) of a process for providing a partial editing DTD and editing data;
FIG. 15 is a flowchart (1) of a process for creating a partial editing content model and an addition / deletion candidate element list using an extended content model.
FIG. 16 is a flowchart (2) of a process for creating a partial editing content model and an addition / deletion candidate element list using an extended content model;
FIG. 17 is a diagram illustrating an example of creating a revision history.
FIG. 18 is a diagram illustrating an example (1) of DTD of a SGML document with history;
FIG. 19 is a diagram illustrating an example (2) of the DTD of the SGML document with history.
FIG. 20 is a flowchart (1) of a document editing process.
FIG. 21 is a flowchart (2) of the document editing process.
FIG. 22 is a flowchart of structure editing processing;
FIG. 23 is a flowchart (1) of pasting processing;
FIG. 24 is a flowchart (2) of the pasting process.
FIG. 25 is a flowchart of element deletion processing;
FIG. 26 is a flowchart of check-in processing.
FIG. 27 is a flowchart of an end process.
[Explanation of symbols]
1 SGML document management device
10 SGML document editing device
11 DTD consistency checking means for partial editing
12 History creation means
20 SGML document exchange device
30 SGML document access device
31 Document format conversion means
32 DTD creation means for partial editing
33 Document format consistency check means
34 History management means
40 database
50, 50 'SGML parser

Claims (12)

文書型定義によって文書の構造が定義される文書に対する共同執筆・編集・利用を支援する文書管理装置において,
前記文書に対する部分構造の変更を伴うことがある部分編集要求に対し,編集前の実際の文書構造に対して,少なくとも編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を文書全体の文書型定義に加味した,部分構造の文書型定義を自動生成する手段と,
前記生成された部分構造の文書型定義に従って,編集対象の文書が前記文書型定義において規定された編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を少なくとも満たす範囲内で文書の部分編集を行う手段とを備える
ことを特徴とする文書管理装置。
In a document management device that supports joint writing, editing, and use of documents whose document structure is defined by the document type definition ,
In response to a partial edit request that may involve a change in the partial structure of the document , it relates to the possibility of adding or deleting the document element at least before and after the part to be edited with respect to the actual document structure before editing. A means for automatically generating a substructure document type definition that incorporates constraints into the document type definition of the entire document;
In accordance with the document type definition of the generated partial structure, a range in which the document to be edited satisfies at least a restriction regarding the possibility of adding a document element or the possibility of deleting a document element before and after the part to be edited specified in the document type definition And a means for performing partial editing of the document.
文書型定義によって文書の構造が定義される文書を格納するデータベースに対するアクセス手段を持つサーバ装置と,前記文書の編集対象部分を前記サーバ装置から取得し前記文書を編集する1または複数のクライアント装置とからなる文書管理装置において,
前記クライアント装置は,
前記文書の編集対象部分を選択する手段と,
編集対象部分に対する文書要素の追加または削除を予約する手段と,
前記編集対象部分の選択および追加予約または削除予約に基づいて,前記サーバ装置から編集対象となる文書のデータと,少なくとも編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約の情報を含む部分編集用文書型定義とを獲得する手段と,
獲得した文書のデータを編集する手段と,
前記部分編集用文書型定義をもとに編集結果が前記部分編集用文書型定義において規定された編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を少なくとも満たすかどうかを検査する手段とを備え,
前記サーバ装置は,
前記クライアント装置からの編集対象部分の選択,および追加予約または削除予約の要求に対して,文書全体の文書型定義から編集対象部分に対する文書要素の追加または削除の可能性を解析し,編集前の実際の文書構造に対して,少なくとも編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を文書全体の文書型定義に加味した,部分編集用文書型定義を生成する手段と,
編集対象となる文書のデータを前記データベースから抽出し,そのデータと前記生成した部分編集用文書型定義とを前記クライアント装置へ通知する手段とを備える
ことを特徴とする文書管理装置。
A server device having access means for a database storing a document whose document structure is defined by a document type definition, and one or a plurality of client devices for obtaining the editing target portion of the document from the server device and editing the document In a document management device consisting of
The client device
Means for selecting an edit target portion of the document;
Means for reserving additions or deletions of document elements to the part to be edited;
Based on the selection of the edit target portion and the reservation for addition or deletion, the data of the document to be edited from the server device and the possibility of adding document elements or the possibility of deleting document elements at least before and after the edit target portion Means for obtaining a document type definition for partial editing including constraint information ;
Means for editing the data of the acquired document;
Whether the result of editing based on the document type definition for partial editing satisfies at least a restriction regarding the possibility of adding a document element or the possibility of deleting a document element before and after the part to be edited specified in the document type definition for partial editing Means for checking whether or not
The server device
In response to the selection of a part to be edited from the client device and a request for reservation for addition or deletion, the possibility of adding or deleting a document element to the part to be edited is analyzed from the document type definition of the entire document . Generates a document type definition for partial editing that adds to the document type definition of the entire document a restriction on the possibility of adding or deleting document elements at least before and after the part to be edited. Means,
A document management apparatus comprising: means for extracting data of a document to be edited from the database, and notifying the client apparatus of the data and the generated partial editing document type definition.
文書型定義によって文書の構造が定義される文書に対する共同執筆・編集・利用を支援する文書管理装置において前記文書を格納するデータベースに対するアクセス手段を提供するサーバ装置であって,
前記文書に対するアクセスを要求する装置からの編集対象部分の選択,および追加予約または削除予約の要求に対して,文書全体の文書型定義から編集対象部分に対する文書要素の追加または削除の可能性を解析し,編集前の実際の文書構造に対して,少なくとも編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を文書全体の文書型定義に加味した,部分編集用文書型定義を生成する手段と,
編集対象となる文書のデータを前記データベースから抽出し,そのデータと前記生成した部分編集用文書型定義とを前記アクセスを要求する装置へ通知する手段とを備える
ことを特徴とする文書管理装置のサーバ装置。
A server device that provides access means to a database storing the document in a document management device that supports joint writing, editing, and use of a document whose structure is defined by a document type definition ,
Analysis of the possibility of adding or deleting document elements to the editing target part from the document type definition of the entire document in response to selection of the editing target part from the device requesting access to the document and a request for additional reservation or deletion reservation A document for partial editing that takes into account the document type definition of the entire document, with respect to the actual document structure before editing, including at least restrictions on the possibility of adding or deleting document elements before and after the part to be edited A means of generating a type definition;
Means for extracting data of a document to be edited from the database, and notifying the data and the generated partial editing document type definition to the access requesting device. Server device.
文書型定義によって文書の構造が定義される文書に対する共同執筆・編集・利用を支援する文書管理装置において前記文書を格納するデータベースに対するアクセス手段を提供する装置から前記文書の編集対象部分を取得し,その文書を編集するクライアント装置であって,
前記文書の編集対象部分を選択する手段と,
編集対象部分に対する文書要素の追加または削除を予約する手段と,
前記編集対象部分の選択および追加予約または削除予約に基づいて,前記文書を格納するデータベースに対するアクセス手段を提供する装置から編集対象となる文書のデータと,少なくとも編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約の情報を含む部分編集用文書型定義とを獲得する手段と,
獲得した文書のデータを編集する手段と,
前記部分編集用文書型定義をもとに編集結果が前記部分編集用文書型定義において規定された編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を少なくとも満たすかどうかを検査する手段とを備える
ことを特徴とする文書管理装置のクライアント装置。
Obtaining an edit target portion of the document from an apparatus that provides an access means to a database storing the document in a document management apparatus that supports joint writing, editing, and use of the document whose structure is defined by the document type definition ; A client device for editing the document,
Means for selecting an edit target portion of the document;
Means for reserving additions or deletions of document elements to the part to be edited;
Based on the selection of the part to be edited and the reservation for addition or deletion, addition of document data to be edited from a device that provides an access means to the database storing the document, and addition of document elements at least before and after the part to be edited Means for obtaining a document type definition for partial editing , including information on constraints on possibilities or deleteability of document elements ;
Means for editing the data of the acquired document;
Whether the editing result based on the partial editing document type definition satisfies at least the restriction regarding the possibility of adding or deleting the document element before and after the editing target part specified in the partial editing document type definition the client device of the document management apparatus characterized by comprising: means for checking how.
請求項1から請求項4までのいずれか1項に記載の文書管理装置において,
文書要素の複写,移動,交換,追加または削除の履歴情報を前記文書の形式で保持する手段と,
保持した履歴情報を装置に依存しない形式で出力する手段とを備える
ことを特徴とする文書管理装置。
The document management apparatus according to any one of claims 1 to 4 , wherein:
Means for retaining history information of copying, moving, exchanging, adding or deleting document elements in the form of the document ;
Means for outputting the retained history information in a device-independent format.
請求項記載の文書管理装置において,
前記文書の形式は,元の文書型定義に履歴情報部分の宣言を加えて生成した履歴付きの前記文書の文書型定義を用いる形式である
ことを特徴とする文書管理装置。
The document management apparatus according to claim 5 , wherein
Format of the document, the document management apparatus which is a form of using a document type definition of the document with history generated by adding a declaration of the history information portion based on the document type definition.
請求項記載の文書管理装置において,
前記文書の形式は,履歴情報の文書の骨組みに元の前記文書を埋め込んだ形式であり,改定履歴を差分情報として列挙して前記文書本体の要素との対応を記述する形式である
ことを特徴とする文書管理装置。
The document management apparatus according to claim 5 , wherein
The format of the document is a format in which the original document is embedded in a document frame of history information, and a format in which revision history is listed as difference information and the correspondence with the elements of the document body is described. Document management device.
請求項記載の文書管理装置において,
前記文書の形式は,履歴情報の文書の骨組みに元の前記文書を埋め込んだ形式であり,改定前と改定後の要素間の遷移関係を記述する形式である
ことを特徴とする文書管理装置。
The document management apparatus according to claim 5 , wherein
The document format is a format in which the original document is embedded in a document frame of history information, and is a format that describes a transition relationship between elements before and after the revision.
文書型定義によって文書の構造が定義される文書に対する共同執筆・編集・利用を支援する文書管理装置を構成する計算機が実行するプログラムを格納した計算機読み取り可能なプログラム記憶媒体であって,
前記計算機を,
前記文書に対する部分構造の変更を伴うことがある部分編集要求に対し,編集前の実際の文書構造に対して,少なくとも編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を文書全体の文書型定義に加味した,部分構造の文書型定義を自動生成する手段と,
前記生成された部分構造の文書型定義に従って,編集対象の文書が前記文書型定義において規定された編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を少なくとも満たす範囲内で文書の部分編集を行う手段として,
機能させるためのプログラムを格納したことを特徴とする文書管理装置のプログラム記憶媒体。
A computer-readable program storage medium storing a program executed by a computer constituting a document management apparatus that supports joint writing, editing, and use of a document whose document structure is defined by a document type definition ,
Said computer
In response to a partial edit request that may involve a change in the partial structure of the document , it relates to the possibility of adding or deleting the document element at least before and after the part to be edited with respect to the actual document structure before editing. A means for automatically generating a substructure document type definition that incorporates constraints into the document type definition of the entire document;
In accordance with the document type definition of the generated partial structure, a range in which the document to be edited satisfies at least a restriction regarding the possibility of adding a document element or the possibility of deleting a document element before and after the part to be edited specified in the document type definition As a means of partial document editing in
A program storage medium for a document management apparatus, which stores a program for causing it to function .
文書型定義によって文書の構造が定義される文書に対する共同執筆・編集・利用を支援する文書管理装置において前記文書を格納するデータベースに対するアクセス手段を提供するサーバ装置を構成する計算機が実行するプログラムを格納した計算機読み取り可能なプログラム記憶媒体であって,
前記計算機を,
前記文書に対するアクセスを要求する装置からの編集対象部分の選択,および追加予約または削除予約の要求に対して,文書全体の文書型定義から編集対象部分に対する文書要素の追加または削除の可能性を解析し,編集前の実際の文書構造に対して,少なくとも編 集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を文書全体の文書型定義に加味した,部分編集用文書型定義を生成する手段と,
編集対象となる文書のデータを前記データベースから抽出し,そのデータと前記生成した部分編集用文書型定義とを前記アクセスを要求する装置へ通知する手段として,
機能させるためのプログラムを格納したことを特徴とする文書管理装置におけるサーバ装置のプログラム記憶媒体。
Stores a program executed by a computer constituting a server device that provides an access means to a database for storing a document in a document management device that supports joint writing, editing, and use of a document whose structure is defined by a document type definition Computer readable program storage medium,
Said computer
Analysis of the possibility of adding or deleting document elements to the edit target part from the document type definition of the entire document in response to selection of the edit target part from the device requesting access to the document and a request for reservation for addition or deletion and, with respect to the actual document structure before editing, obtained by adding additional possibility or remove the potential for constraint document entire document type definition document element of the document element for the front and rear of the at least edit target portion, the portion for editing A means of generating a document type definition;
As means for extracting data of a document to be edited from the database, and notifying the data and the generated partial editing document type definition to the device requesting access ,
A program storage medium of a server apparatus in a document management apparatus, characterized in that a program for causing it to function is stored.
文書型定義によって文書の構造が定義される文書に対する共同執筆・編集・利用を支援する文書管理装置において前記文書を格納するデータベースに対するアクセス手段を提供する装置から前記文書の編集対象部分を取得し,その文書を編集するクライアント装置を構成する計算機が実行するプログラムを格納した計算機読み取り可能なプログラム記憶媒体であって,
前記計算機を,
前記文書の編集対象部分を選択する手段と,
編集対象部分に対する文書要素の追加または削除を予約する手段と,
前記編集対象部分の選択および追加予約または削除予約に基づいて,前記文書を格納するデータベースに対するアクセス手段を提供する装置から編集対象となる文書のデータと,少なくとも編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約の情報を含む部分編集用文書型定義とを獲得する手段と,
獲得した文書のデータを編集する手段と,
前記部分編集用文書型定義をもとに編集結果が前記部分編集用文書型定義において規定された編集対象部分の前後に対する文書要素の追加可能性または文書要素の削除可能性に関する制約を少なくとも満たすかどうかを検査する手段として,
機能させるためのプログラムを格納したことを特徴とする文書管理装置におけるクライアント装置のプログラム記憶媒体。
Obtaining an edit target portion of the document from an apparatus that provides an access means to a database storing the document in a document management apparatus that supports joint writing, editing, and use of the document whose structure is defined by the document type definition ; A computer-readable program storage medium storing a program executed by a computer constituting a client device for editing the document,
Said computer
Means for selecting an edit target portion of the document;
Means for reserving additions or deletions of document elements to the part to be edited;
Based on the selection of the part to be edited and the reservation for addition or deletion, addition of document data to be edited from a device that provides an access means to the database storing the document, and addition of document elements at least before and after the part to be edited Means for obtaining a document type definition for partial editing , including information on constraints on possibilities or deleteability of document elements ;
Means for editing the data of the acquired document;
Whether the editing result based on the partial editing document type definition satisfies at least the restriction regarding the possibility of adding or deleting the document element before and after the editing target part specified in the partial editing document type definition As a means to check whether
A program storage medium of a client apparatus in a document management apparatus, characterized in that a program for functioning is stored.
請求項9記載の文書管理装置のプログラム記憶媒体であって,
さらに,前記計算機を,
文書要素の複写,移動,交換,追加または削除の履歴情報を前記文書の形式で保持する手段と,
保持した履歴情報を装置に依存しない形式で出力する手段として,
機能させるためのプログラムを格納したことを特徴とする文書管理装置のプログラム記憶媒体。
A program storage medium for a document management apparatus according to claim 9 ,
Furthermore, the computer is
Means for retaining history information of copying, moving, exchanging, adding or deleting document elements in the form of the document ;
As a means to output the retained history information in a device-independent format ,
A program storage medium for a document management apparatus, which stores a program for causing it to function .
JP23917097A 1996-09-11 1997-09-04 Document management device, server device, client device and their program storage medium Expired - Fee Related JP3831085B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23917097A JP3831085B2 (en) 1996-09-11 1997-09-04 Document management device, server device, client device and their program storage medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-240250 1996-09-11
JP24025096 1996-09-11
JP23917097A JP3831085B2 (en) 1996-09-11 1997-09-04 Document management device, server device, client device and their program storage medium

Publications (2)

Publication Number Publication Date
JPH10143507A JPH10143507A (en) 1998-05-29
JP3831085B2 true JP3831085B2 (en) 2006-10-11

Family

ID=26534118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23917097A Expired - Fee Related JP3831085B2 (en) 1996-09-11 1997-09-04 Document management device, server device, client device and their program storage medium

Country Status (1)

Country Link
JP (1) JP3831085B2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3390357B2 (en) * 1999-02-12 2003-03-24 日本電気株式会社 Tree structure difference output method and apparatus in tree structure data editing system
JP3892626B2 (en) * 1999-08-25 2007-03-14 富士通株式会社 Document processing apparatus and storage medium
JP2001125959A (en) * 1999-10-25 2001-05-11 Industrial Bank Of Japan Ltd Electronic transaction system and its method
US7120863B1 (en) 1999-11-15 2006-10-10 International Business Machines Corporation Method, system, and program for interfacing with elements in a document
JP3610866B2 (en) * 2000-03-10 2005-01-19 日本電気株式会社 Stored data correction system and program recording medium thereof
JP3673189B2 (en) * 2001-05-21 2005-07-20 株式会社東芝 Write control method, structured document management apparatus, structured document editing apparatus, and program
JP3725084B2 (en) * 2002-02-22 2005-12-07 株式会社東芝 Structured document editing system, structured document editing method and program
JP4676136B2 (en) 2003-05-19 2011-04-27 株式会社日立製作所 Document structure inspection method and apparatus
JP5009781B2 (en) * 2004-03-04 2012-08-22 マスソフト・エンジニアリング・アンド・エデユケーシヨン・インコーポレーテツド How to automatically enable traceability of technical calculations
WO2005109241A1 (en) * 2004-05-11 2005-11-17 Atl Systems, Inc. Data structure, structured data management system, structured data management method, and structured data management program
EP1927922A1 (en) * 2005-09-22 2008-06-04 JustSystems Corporation Data managing apparatus, data editing apparatus, data browsing apparatus, data managing method, data editing method, and data browsing method
JP5356821B2 (en) * 2005-10-07 2013-12-04 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, apparatus, and medium for linking source to copied text
JP4942144B2 (en) * 2005-12-15 2012-05-30 キヤノン株式会社 Information processing apparatus, control method therefor, program, and storage medium
WO2007117643A2 (en) * 2006-04-07 2007-10-18 Mathsoft Engineering & Education, Inc. System and method for maintaining the genealogy of documents
JP5413990B2 (en) * 2011-02-07 2014-02-12 Necアクセステクニカ株式会社 Manual creation information management device, method and program
JP5983323B2 (en) * 2012-11-05 2016-08-31 富士ゼロックス株式会社 Document management apparatus and document management program

Also Published As

Publication number Publication date
JPH10143507A (en) 1998-05-29

Similar Documents

Publication Publication Date Title
US6061697A (en) SGML type document managing apparatus and managing method
JP3692764B2 (en) Structured document registration method, search method, and portable medium used therefor
JP3831085B2 (en) Document management device, server device, client device and their program storage medium
JP4656868B2 (en) Structured document creation device
JP3887867B2 (en) How to register structured documents
JP4141556B2 (en) Structured document management method, apparatus for implementing the method, and medium storing the processing program
EP1679616B1 (en) Data binding in a word-processing application
US7373595B2 (en) System and method for validating an XML document and reporting schema violations
US7290205B2 (en) System and method for management of document cross-reference links
KR101213832B1 (en) Programmability for binding data
CA2416876C (en) Method of and software for recordal and validation of changes to markup language files
JP5060043B2 (en) Context-free document parts with alternative formats
US7752224B2 (en) Programmability for XML data store for documents
US5649218A (en) Document structure retrieval apparatus utilizing partial tag-restored structure
US20080126407A1 (en) System-data-architecture management system, system-data-architecture management process, and computer-readable medium storing system-data-architecture management program
US20080263101A1 (en) Data Processing Device and Data Processing Method
KR101311123B1 (en) Programmability for xml data store for documents
US7337187B2 (en) XML document classifying method for storage system
JP5172073B2 (en) Editing system, server and program
US20080005132A1 (en) Method and system for describing and storing bursting metadata in a content management system
Komvoteas XML Diff and patch tool
US20100185706A1 (en) Representation of multiple markup language files in one file for the production of new markup language files
JPH1027178A (en) Document data base managing device
JP2000331021A (en) Structurized document management system, its method and recording medium
Ignat et al. Supporting customised collaboration over shared document repositories

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040629

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040629

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060309

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: 20060711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060713

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100721

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100721

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110721

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees