JPH10143507A - Sgml文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体 - Google Patents

Sgml文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体

Info

Publication number
JPH10143507A
JPH10143507A JP9239170A JP23917097A JPH10143507A JP H10143507 A JPH10143507 A JP H10143507A JP 9239170 A JP9239170 A JP 9239170A JP 23917097 A JP23917097 A JP 23917097A JP H10143507 A JPH10143507 A JP H10143507A
Authority
JP
Japan
Prior art keywords
document
sgml
editing
partial
type definition
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.)
Granted
Application number
JP9239170A
Other languages
English (en)
Other versions
JP3831085B2 (ja
Inventor
Yoshio Nakao
由雄 仲尾
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/ja
Publication of JPH10143507A publication Critical patent/JPH10143507A/ja
Application granted granted Critical
Publication of JP3831085B2 publication Critical patent/JP3831085B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】SGML文書を格納・管理するSGML文書管
理装置に関し,共同執筆等の際に部分編集の独立性を高
め,さらに,構造変化を含む改訂履歴を装置依存性の少
ない形式により管理する。 【解決手段】SGML文書の部分編集の要求により,S
GML文書アクセス装置30は,文書本体のDTDの拡張
内容モデルをもとに,DTDの整合性を保持するための
制約(追加・削除予約)を付加した部分編集用DTDを
生成する。SGML文書編集装置10は, 部分編集用DT
Dと文書の対象部分を得て,部分編集用DTDの制約に
従って編集を行う。編集後,SGML文書編集装置10
は, 部分編集用DTDを用いて編集対象部分のみのSG
MLパージングを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は,マニュアル等の大
規模なSGML(Standard Generali
zed Markup Language)文書群の共
同執筆・編集,改訂管理などのために用いられるSGM
L文書管理装置に関するものである。
【0002】近年,文書の電子化が進み,大量の文書を
蓄積して再利用することで文書作成のコストを大幅に引
き下げることが可能になってきた。また,一方で,技術
の高度化に伴うマニュアル類のボリュームの増加と多様
化,インターネットに代表される新たな文書流通メディ
アの出現もあいまって,流通・作成・管理すべき文書の
量が爆発的に増加している。必然的に,一度作成した電
子化文書を再利用して,新たな文書として発信していき
たいという要請が強まっている。SGMLは,このよう
な要請に応じて登場し,広く使われ始めた文書形式であ
る。
【0003】SGML形式は装置依存性が低く,電子デ
ータとしての交換が容易で,また,文書の体裁の切替え
や文書内容の部分的な再利用などが容易であり,同じ内
容の文書を様々な形式で用いることができるという特徴
を持つ。
【0004】このため,現在は,マニュアルなどの技術
文書の作成管理や計算機支援印刷や電子出版における利
用が最も進んでいるが,その他ネットワークによるコミ
ュニケーションや,商取引,電子図書館などのデータベ
ースなど,大規模で寿命の長い文書を扱う分野で広く使
われ出している。例えば,近年爆発的な勢いで拡大して
いるインターネットにおいて使われているHTML文書
も,SGML形式の一種であり,電子図書館における図
書や目録などの蓄積・管理もSGML形式によって試み
られている。
【0005】このようにSGML形式の文書が広く,そ
して大規模に使われるようになってきたため,SGML
文書を管理する装置の必要性が高まっている。SGML
文書は,大規模で長い寿命を持つことでその特徴が生か
されるという性質をもつことから,これを管理する装置
は,SGML文書の作成・蓄積・再利用のライフサイク
ルを支援する装置でなければならない。また,SGML
文書はその構造が文書型定義(DTD:Documen
t Type Definition)中の定義に適合
していなくてはならないので,SGML文書管理装置に
は文書構造の整合性の管理機構も必要である。
【0006】本発明は,このようなSGML文書管理装
置において,文書構造の整合性の管理および文書構造の
改訂履歴管理のための機構に特徴をもつものである。
【0007】
【従来の技術】
(1)文書の共同編集における文書全体の整合を維持す
る技術 大量の文書の作成には,既存文書の再利用と多人数で共
同執筆・編集を行なえる環境が必要である。SGML文
書の管理装置としては,文書全体としての整合性を保ち
つつ,文書の部分部分を独立して編集可能とする機構が
必要となる。
【0008】個別の作業が正しく行なわれても,並行し
て進んでいた別の作業の影響で整合がとれなくなること
がある。こうなると,作業結果を破棄して改めて更新し
なおすか,整合のとれなかった部分を修正しない限り,
元の文書には反映できないため(不整合のまま作業結果
を反映すると他のSGMLアプリケーションで使用でき
なくなる),作業効率が阻害される。
【0009】このような事態を避けるために,従来の構
造化文書管理装置では,文書の共同編集作業の場合,文
書のある部分について,別の作業者に更新させないよう
に読み出しのみ可(read−only)にする等によ
りチェックアウトし,作業終了後にチェックインしてr
ead−onlyを解除するというようなチェックアウ
ト/チェックイン機構を用意して対処してきた。この場
合,一般に,作業者が更新可能なのはチェックアウトし
た部分に含まれる内容だけである。
【0010】従来のSGML文書管理装置においても基
本的機構は同様であり,文書要素の単位でチェックアウ
ト/チェックイン機構を用い,チェックアウトした文書
要素の下位構造部分だけを更新可能とし,チェックイン
の際に文書全体のDTDとの適合性を検査(これをSG
MLパージングという)することで文書の整合性を維持
していた。
【0011】(2)SGML文書のパージングを効率的
に行う技術 部分的に更新したSGML文書がDTDに適合している
かを検査(SGMLパージング)するためには,基本的
には,更新部分以外の文書要素も含めて文書全体にどの
ような文書要素が配置されているかを調べなくてはなら
ない。すなわち,ルート文書要素から各文書要素を順次
DTDと対応付けていく必要がある。このとき,SGM
L文書を文書要素単位で格納して前述のチェックアウト
/チェックイン機構で部分編集を行う文書管理装置で
は,編集要素以外の部分の文書要素のタグ(GI:Ge
neric Identifier;総称識別子)情報
を,文書を格納しているデータベースから取り出す必要
がある。なお,総称識別子(GI)とは,文書要素のタ
イプを示す名前であり,DTDは,この配置の仕方を階
層ごとに内容モデル(content model)で
定義する。
【0012】これを単純に行うと,少なくとも編集しよ
うとしている文書要素から文書のルートにいたるパスに
含まれる文書要素およびそれらより前に出現している文
書要素(文書中で先行する文書要素)のタグを取り出し
て照合を行う必要があり,文書を格納しているデータベ
ースへのアクセスコストが大きくなる。そこで,従来の
技術では,文書構造を文書内容とは別に格納したり,各
々の文書要素にその先行文書要素のタグ列を対応付けて
格納するなどの工夫により,SGMLパージングのコス
ト軽減を図っているものもある。
【0013】(3)SGML文書の改訂履歴管理技術 SGML文書の改訂履歴の管理についてみると,SGM
Lのような構造化文書を管理する技術は未成熟であり,
構造の変化を改訂履歴として保持する技術は確立されて
いない。一般的には,文書要素レベルで細かく改訂履歴
を管理する方法においても,改訂前の文書要素や改訂に
よる差分を個別に保持するだけで,文書要素の配置の変
化などの構造の履歴は保持していない。また,文書要素
個別の履歴としては保持できない構造変化の履歴も管理
するものとして,例えば特開平6−250895号公報
に示されているような「構造化データベースシステム」
があるが,装置に依存した内部表現形式によるものしか
存在せず,履歴情報付きでSGML文書を自由に流通で
きるものとはなっていない。
【0014】
【発明が解決しようとする課題】本発明が解決しようと
する問題点は,以下の2点である。 1)文書更新上の制約が不要に大きいという問題 共同編集において個々の作業の独立性を高めつつ文書全
体の整合性を保つことが必要であるが,従来の技術では
文書全体の整合性を保つことを優先していて,個々の作
業の独立性が低くなっている。
【0015】従来の技術では,チェックアウトした文書
要素の内容,すなわちその文書要素の下部構造と記述さ
れている情報内容のみを編集可能としている。このた
め,チェックアウトした文書要素のタイプを表すタグの
変更やそれ自体の分割や削除などは禁止されている。本
質的に同時編集が不可能なのはDTD上で依存関係にあ
る部分であり,DTDによってはタグの変更や要素の分
割・削除などは他の編集とは独立して行える場合がある
ので,このような制約は必要以上に大きいものといえ
る。
【0016】このような事情により,例えば,章のレベ
ルで分担して執筆中にその章の分割が必要になった場
合,いったん編集を打ち切って1つ上位の文書要素レベ
ルから編集をやり直す必要が生じる。作業途中でこのよ
うな中断がおきると,執筆者の思考の流れを阻害するだ
けでなく,上位文書要素レベルがその時点で更新不能で
あったり,分散環境で実行している場合には,その時点
では文書本体へ物理的にアクセス不能であった,などの
理由で作業を進められなくなる事態があり得,作業の進
行の妨げとなる。
【0017】章の分割のような編集にうまく対応できな
いのは,チェックアウトする要素と周辺の要素との依存
関係に応じて,部分編集に適切な制約を施す機構がない
ためである。
【0018】つまり,章の分割のような編集を可能にす
るためには,編集前の文書構造におけるチェックアウト
する要素に関する依存関係を把握し,この依存関係に沿
って編集に制約をかける必要がある。
【0019】SGML文書は木構造であり,深さの異な
る文書要素は親子関係にない限り依存しないが,同じ文
書要素インスタンスを親とする姉妹文書要素インスタン
スは文書型定義によっては依存しあう場合がある。この
ため,編集の整合性を保証するには,姉妹関係の依存性
を予め把握しておかなければならない。例えば,DTD
でいくつ出現してもよいように定義されている文書要素
を編集する場合,その要素を同じタイプの要素に分割す
ることや,削除することは可能であるが,必ず1つだけ
出現しなくてはならないように定義されている要素につ
いてはこのような編集を行うことはできない。
【0020】また,連続して1つ以上出現しなくてはな
らない文書要素を削除できるかどうかは,そのタグをも
つ要素が実際の文書にいくつあって,そのうちで別の作
業により削除されるかもしれない要素(他で編集中の要
素)がいくつあるのかを把握しないと判定できない。例
えば, <!ELEMENT PART (SECT)+ > <!--PART は1つ以上のSECT
からなる--> <PART id=p1> <SECT id=s1>最初の章</SECT> <SECT id=s2>次の章</SECT> </PART> という文書構造の例では,id=sl,id=s2の文
書要素のいずれか1つのみ削除可能である。
【0021】このような制約はDTDだけでなく,並行
して実行されている別の編集の結果にも依存するので,
従来の技術のように,SGML文書全体の文書型定義を
そのまま編集の制約として用いて,更新結果をとりこん
だ文書の形式を検査(SGMLパージング)するだけで
は取り扱うことができない。すなわち,SGMLパージ
ングでは,別の編集制約機構を用意するか,部分編集用
に別のDTDを用意することが必要となる。
【0022】本発明は,この点に関して,文書全体の文
書型定義に編集前の実際の文書構造とその編集状況によ
る制約を加味した,文書の部分に対する部分構造の文書
型定義を自動生成して,解決を図るものである。
【0023】2)文書の構造変化の履歴が不十分である
という問題 もう一つの問題点は,SGML文書の構造の変化の履歴
が十分に保持されないことである。従来の一般的な履歴
管理は,個々の文書要素の遷移として個別に保持してい
るため,単独の文書要素には記述することのできない移
動・交換などの構造変化の履歴を正確に格納できない。
【0024】例えば,文書要素の分割は,文書要素内の
一部削除と新文書要素の追加として,また,文書要素の
交換は,2組の削除と追加との操作として解釈するか,
あるいは,更新前と更新後の変化から推定して処理して
いるのが現状である。このため,結果の文書としては正
しく処理したものと等価であるが,分割・交換などの更
新履歴の信頼性が低くなっている。
【0025】このような構造変化の履歴も管理する装置
(例えば特開平6−250895号公報)もあるが,管
理されている情報は装置に依存するものであるため,S
GML文書を履歴情報付きで自由に流通できるものとは
なっていない。
【0026】本発明は,上記の2つの問題を解決し,共
同執筆・編集の効率化と改訂履歴の機能向上を実現する
と同時に,その実現のために付加する文書管理情報を共
通にして,管理情報の格納効率をあげつつ,また,管理
すべき情報の種類を減らすことで管理効率をも向上させ
ることを目的とする。
【0027】
【課題を解決するための手段】本発明は,上記課題を解
決するため,SGML(Standard Gener
alized Markup Language)文書
を格納し,共同執筆・編集・利用を支援し,改訂などの
履歴を管理するSGML文書管理装置において,例えば
以下の機構を持つことを主要な特徴とする。
【0028】 SGML文書を文書要素単位で格納
し,文書要素それぞれに,文書型定義中の文書要素宣言
の内容モデル(content model)に対して
それに適合している子文書要素のインスタンス識別子を
付与した拡張内容モデルを対応付けて管理する機構 SGML文書の編集中の部分に対応する部分編集用
文書型定義を一時的に生成することにより,該当部分の
み独立にSGMLパージング可能とする機構 上位文書要素および前後の文書要素を編集可能にし
たままで,部分編集用文書型定義に違反しない範囲にお
いて,編集中の最上位の文書要素の削除とタグ(総称識
別子)の変更およびその前後に新たな文書要素を追加す
ることを可能にする機構 文書要素の複写・移動(交換)・追加・削除の履歴
を保持する機構 保持した履歴情報を装置に依存しない形式で出力す
る機構 図1は,以上の機構を実現する本発明のブロック構成図
である。
【0029】図1において,SGML文書管理装置1
は,SGML文書編集装置10,SGML文書交換装置
20,SGML文書アクセス装置30,SGML文書の
データベース40,SGMLパーサ50,50’からな
る。
【0030】本発明がサーバ・クライアント・システム
上で実現される場合には,SGML文書編集装置10お
よびSGML文書交換装置20はクライアント側に備え
られ,SGML文書アクセス装置30,データベース4
0,SGMLパーサ50はサーバ側に備えられる。さら
にクライアント側にSGMLパーサ50’が備えられて
いてもよい。
【0031】SGML文書編集装置10は,SGML文
書の編集対象部分をSGML文書アクセス装置30を通
じて取得し,編集を行う手段である。SGML文書編集
装置10は,SGML文書アクセス装置30で生成され
た部分編集用DTDを元に,SGMLパーサ50’を呼
び出すことにより編集結果の整合性を検査する部分編集
用DTD整合性検査手段11と,文書要素の内容および
拡張内容モデルの変更を記憶し,編集対象部分の内容・
構造の変更履歴を生成する履歴作成手段12を持つ。
【0032】SGML文書交換装置20は,外部のSG
ML文書または履歴付きSGML文書の入力・出力を行
う手段である。これには,本装置内で用いる標準的な拡
張モデル付きSGML文書形式と履歴情報のないSGM
L文書形式あるいは履歴情報を分離した履歴つきSGM
L文書形式との相互変換を行う機能がある。
【0033】SGML文書アクセス装置30は,クライ
アントの要求に従い,データベース40に格納されたS
GML文書の部分または全体の入出力や,部分編集用D
TDの作成,SGML文書の版数管理や文書の退避・復
元などを行うものである。
【0034】SGML文書アクセス装置30は,標準的
な拡張モデル付きSGML文書形式とデータベース40
の内部形式との相互変換を行う文書形式変換手段31,
部分編集用DTDを生成する部分編集用DTD作成手段
32,SGMLパーサ50を呼び出すことにより,入力
されたSGML文書の整合性を検査する文書形式整合性
検査手段33,文書内容や拡張内容モデルの履歴情報を
整理する履歴管理手段34を持つ。
【0035】SGMLパーサ50,50’は,その他の
装置の補助としてDTDとSGML文書本体との対応付
けを行うものである。クライアントのSGMLパーサ5
0’はサーバのSGMLパーサ50と機能的には同じも
ので,サーバ・クライアントが別の計算機である場合,
特にオフライン状態のクライアントで編集中に整合検査
などを行う時にはサーバと物理的に別の装置が利用され
る。
【0036】以上の各処理手段を計算機によって実現す
るためのプログラムは,計算機が読み取り可能な可搬媒
体メモリ,半導体メモリ,ハードディスクなどの適当な
記憶媒体に格納することができる。
【0037】
【発明の実施の形態】以下,本発明の実施の形態を説明
する。図2は,本発明におけるデータの基本構造を示す
図である。図中の実線の矢印は識別子による対応関係を
示している。本発明のデータ構成は,文書全体の情報と
文書要素単位の情報に大別される。
【0038】図2(A)に示す文書全体の情報には,文
書を操作・管理するためのシステム情報や,文書の論理
的な性質を記述するためのプロフィール情報,文書履歴
情報などがある。
【0039】図2(B)に示す文書要素単位の情報に
は,文書単位で格納されたそれぞれの情報を関係づけて
文書構造を表現する識別子情報,各々の文書要素がSG
MLとしての情報(属性・タグ・下位情報),要素別の
履歴情報,要素単位にアクセス制御などを行うためのシ
ステム管理情報などがある。
【0040】文書は,文書要素毎にデータベース40に
格納され,インスタンス識別子を付与されて管理され
る。インスタンス識別子は,論理的には,(ある版数
の)文書を識別する文書識別子,文書内の文書要素を特
定するための要素識別子の2つから構成される。
【0041】文書識別子は,ある文書のある(独立し
た)版に対して一意に割り当てられたものである。要素
識別子は,ある文書における実際の文書要素(インスタ
ンス)に対して一意に割り当てられたもので,SGML
文書における文書内のID参照の機能に対応が可能なも
のである。
【0042】また,改訂された各要素には改訂前の要素
(列)がインスタンス識別子と改訂番号によって対応付
けられている。改訂番号は,ある文書のある版としての
改訂作業に対して一意に与えられた改訂の順序も表現し
た識別値で,具体的にはチェックインの際にシステムが
付与するものである。
【0043】格納された要素は,インスタンス識別子を
介してリンクされ,SGML文書構造を形成する。SG
ML文書構造を示すリンクは,DTD中の内容モデルと
対応付けて拡張内容モデルとして格納され,構造の改訂
履歴管理や部分編集の独立性の判定にも利用されてい
る。拡張内容モデルは,内容モデルに,実際のSGML
文書の要素との対応関係(インスタンス識別子)とその
要素の削除可能性指示子(削除可能数)を付与したもの
である。
【0044】まず,図3および図4を用いて,本装置に
よるSGML文書の格納の例を説明する。図3および図
4では,図2に示した格納情報のうち構造に関わる部分
などの主要部分のみを示している。図3に示すSGML
文書の原文書は,SGML文書交換装置20によって内
部表現へ変換され,SGML文書アクセス装置30を通
じて,図4のような構成のデータとしてデータベース4
0に格納される。
【0045】図3に示すSGML文書において,「<
>」は,タグを表す。このSGML文書の原文書は,2
つの章(SECT)からなり,第1の章には2つの節
(P),次の章(SECT)には1つの節(P)を持つ
構造になっている。
【0046】図5は,前記の拡張内容モデルの構成を本
明細書で表現する形式に従ってバッカス記法(BNF)
で示した図である。ただし,このBNFでは,表現が煩
雑になることを避けるため,各構成単位の間の空白要素
の有無は示していない。
【0047】なお,内容モデルにANYや#PCDAT
Aを含んでいて実際の文書にさらなる下部構造が表れる
場合には,その下部構造単位での格納・管理,下部構造
を無視した格納・管理など,下部構造の管理レベルを選
択することができる。つまり,強調語句などは管理単位
とせず,文や段落などの上位要素のレベルまでを単位と
して格納・管理することも可能である。
【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(|)で連結されたモデル群の要素となっ
ている場合には,それらのタグを変更することも可能で
ある。本発明では,これについても後述の部分編集用D
TDに該当するモデル群の制約を反映することで,可能
な限り編集対象部分の最上位要素のタグの変更を可能に
している。
【0058】(2)部分編集用DTD生成 図6は,部分編集用DTDの生成の例を説明する図であ
る。SGML文書全体は,DOCという型の文書で,D
OCはいくつかの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文書(全体)のD
TDが, <!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)「T
ITLEがある場合」は,既にTITLEが存在するた
めに追加不能である。
【0064】図7(A)では,編集部分であるPがTI
TLEと隣接しないので,生成される部分編集用DTD
は, <!ELEMENT EDITDOC (P*)> となる。したがって,部分編集ではTITLEを追加す
ることができないが,Pを任意の数とすることができ
る。
【0065】図7(B)では,編集部分であるPがTI
TLEと隣接するので,生成される部分編集用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の編集に加えてAUT
HORとPを追加することができる。
【0070】さらに,図8(B)に示すTITLE編集
中の別のPの編集においては,AUTHORは追加予約
済みであるので,生成される部分編集用DTDは, <!ELEMENT EDITDOC (P+)> となり,部分編集ではPの数を1以上の任意の数とする
ことができるだけである。
【0071】図9は,異なる編集作業による要素の削除
の競合を抑止するための削除予約の例を説明する図であ
る。SGML文書(全体)のDTDが, <!ELEMENT DOC(SECT+> <!ELEMENT SECT(P+)> であるとする。出現数に下限のある可変個要素(SGM
L文書では,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では,クライアントのSG
ML文書編集装置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の処理(図1
2)へ進み,予約候補要素リストが空でなければステッ
プS7以降の処理を繰り返す。
【0084】ステップS13では,ステップS3の処理
の判定結果(選択予約不成功)により,選択不能理由を
ユーザに通知して,処理を終了する。図12のステップ
S14では,削除要素リストが空であるかどうかを判定
する。削除要素リストが空でない場合にはステップS1
5の処理へ進み,削除要素リストが空である場合にはス
テップ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では,指定要素(列)の親
要素(列)を一時ロック(選択予約)する。ステップS
36では,部分編集用内容モデルおよび追加・削除候補
要素リスト作成処理を行う。
【0093】ステップS37では,クライアントに選択
予約成功を通知する。ステップS38では,クライアン
トに追加・削除予約候補リストを提供する。その後,図
14のステップS41の処理へ進む。
【0094】ステップS39では,指定要素(列)の一
時ロックを解除する。ステップS40では,クライアン
トに処理失敗とその理由を通知し,処理を終了する。
【0095】図14のステップS41では,次の要求が
何であるかを判定する。次の要求が追加削除予約であれ
ばステップS42の処理へ進み,次の要求がチェックア
ウトであれば,ステップS43の処理へ進み,次の要求
が選択予約解除(要求終了)であればステップS55の
処理へ進む。
【0096】ステップS42では,追加・削除予約リス
トに追加し,ステップS41の処理へ戻る。ステップS
43では,削除予約リストが空であるかどうかを判定
し,削除予約リストが空でなければステップS44の処
理へ進み,削除予約リストが空であればステップS47
の処理へ進む。
【0097】ステップS44では,削除予約リストの先
頭要素をポップする。ステップS45では,ポップした
要素に対応する部分編集用内容モデルの要素の出現標識
を,'+' を'*' に変更する。
【0098】ステップS46では,ポップした要素に対
応する親要素の拡張内容モデル中の削除可能モデルの削
除可能数から編集対象の要素の数を引き,その後,ステ
ップS43の処理へ戻る。
【0099】ステップS47では,追加予約リストを追
加要素番号でソートする。ステップS48では,要素番
号が負の要素を部分編集用内容モデルの先頭に追加す
る。
【0100】ステップS49では,要素番号が正の要素
を部分編集用内容モデルの末尾に追加する。ステップS
50では,追加予約リスト中の要素を追加予約する。
【0101】ステップS51では,編集対象をチェック
アウトし,選択予約のための一時ロックを解除する。ス
テップS52では,部分編集用の文書型名を生成し,部
分編集用内容モデルとあわせて編集部分の最上位要素の
要素宣言を作成する。
【0102】ステップS53では,作成した要素宣言に
全体のDTD中の宣言を加え部分編集用DTDを生成す
る。ステップS54では,クライアントに部分編集用D
TDと編集データを提供し,処理を終了する。
【0103】ステップS55では,一時ロックを解除
し,処理を終了する。図15および図16は,図13の
ステップS36に示す,拡張内容モデルを利用した部分
編集用内容モデルおよび追加・削除候補要素リスト作成
処理のフローチャートである。
【0104】図15のステップS61では,照合要素列
からなる拡張内容モデルの部分を取り出す。ステップS
62では,閉じていない(閉じ括弧‘)’の足りない)
要素群があるかどうかを判定する。閉じていない要素群
がある場合にはステップ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では,部分拡張内容モデル
内の削除可能モデル群について先頭要素だけを残し,さ
らに,先頭の+<削除可能数> を取り除く。ステップS7
2では,部分拡張内容モデルからインスタンス識別子を
取り除く。これにより,部分編集用内容モデルが完成す
る。
【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は,強
制的に同期チェックインモードとなる。この場合,SG
ML文書アクセス装置30は,両方の編集結果が正しい
場合に限りチェックインを受理する。SGML文書アク
セス装置30で付与された特別の属性を変更しなけれ
ば,一般のSGMLエディタなどを用いて編集しても,
構造の改訂履歴を作成することが可能である。ただし,
上に述べた別の文書の文書要素の取り込みや,リンクな
どの機能は利用できない。また,複写などが意図通りに
解釈されない場合もあり得る。
【0128】(3)改訂履歴の作成例 図17は改訂履歴の作成例を説明する図である。まず,
図17(A)に示す編集前のSGML文書本体より点線
で囲まれた部分をSGML文書アクセス装置30を通じ
て取り出し,文書識別子(doc),要素識別子(i
d),改訂番号(ver),親要素の識別子(pid)
を属性として付与してSGML文書編集装置10に渡
す。
【0129】この例では,SGML文書編集装置10に
よる編集操作によって,要素識別子p2の要素をコピー
し,要素識別子plの要素を要素識別子s2へ移動する
編集を行っている。ここで,要素識別子p2をコピーし
た要素については,仮の要素識別子new1が付与さ
れ,コピー元の要素を表すcopyof属性と変更モー
ドを示すcopystat(ここでは独立モード)の属
性がSGML文書編集装置10によって設定される。
【0130】編集結果は,SGML文書アクセス装置3
0を通じて取り込まれ,図17(B)に示す編集後の文
書本体がデータベースに格納される。ここで,更新され
た部分には,更新後の要素が作成され,更新前の要素へ
のリンクが改訂番号などによって設定されている。
【0131】(4)改訂履歴の出力方法 本発明では,改訂履歴をSGML文書とともに出力する
手段を持つ。改訂履歴もSGML文書形式で出力され
る。改訂履歴は,基本的には改訂の差分を列挙したもの
である。改訂前の文書も独立に出力してその間の遷移
(対応)関係を加えることもできる。
【0132】出力形式には,元のDTDに履歴情報部分
の宣言を加えて生成した履歴付きSGML文書のDTD
を用いる形式と,履歴文書をハブとして元のSGML文
書を埋め込んだ形式の2種類がある。後者はさらに,改
訂履歴を差分情報として列挙してSGML文書本体の要
素との対応を記述する形式と,改訂前のSGML文書群
も出力してそれらの要素の間の遷移関係を記述する形式
とがある。いずれの形式でも,履歴情報として出力され
る内容は,図2に示した履歴情報と同一である。
【0133】履歴情報付きSGML文書において,履歴
情報とSGML文書本体との対応付けは,SGMLのI
D参照機能を使って行われる。このために,通常はSG
ML文書本体の各文書要素にインスタンス識別子に相当
する属性を埋め込む。なお,例えばISO規格として知
られているHyTime(ISO10744)のロケー
ションラダーの機能を利用して,元のSGML文書のD
TDに手を加えることなく実現することも可能である。
このような出力が可能なのは,本発明におけるインスタ
ンス識別子などの構成がSGMLのID参照やHyTi
meのリンク機能との親和性が高いからである。
【0134】要素識別子は,SGML文書本体の要素の
識別子の属性として,文書識別子は,SGML文書本体
を履歴文書と別の文書とした場合のSGML文書エンテ
ィティの識別子として,改訂番号は履歴情報部分の要素
の識別子属性として利用される。
【0135】(5)履歴付きSGML文書の出力 図18および図19は,SGML文書本体に要素識別子
などの情報を埋め込む場合の履歴付きSGML文書のD
TDの例を示す図である。ここで,他の文書の要素を取
り込んでいる部分などについては,履歴付きSGML文
書における要素識別子・改訂番号として本装置で管理し
ているものに文書識別子を加えたものが用いられる。
【0136】SGML文書本体に要素識別子などを埋め
込めない場合には,SGML文書本体を外部エンティテ
ィとして定義し,ESDdocの部分にHyTimeの
pathlocを使ったロケーションラダーによってS
GML文書本体の要素に要素識別子などの属性を対応付
けるなどの手段によって,同様の情報をSGML文書と
して表現できる。
【0137】図20ないし図27は,SGML文書編集
装置10の文書編集処理のフローチャートである。特に
図20および図21は,全体の処理の流れを示してい
る。図20のステップS91では,サーバから,あるい
はローカルファイルから編集対象の文書部分木を獲得す
る。ここで,依存関係にある文書編集装置も同時に起動
される。
【0138】ステップS92では,ユーザの要求または
別の文書編集装置からのメッセージ(同期要求)を待
つ。ステップS93では,同期要求かどうかを判定し,
同期要求であればステップS107の処理へ進み,同期
要求でなければステップS94の処理へ進む。
【0139】ステップS94では,ユーザの要求を判定
し,ユーザの要求が構造編集要求であればステップS9
5の処理へ進み,ユーザの要求が内容編集要求であれば
ステップS96の処理へ進み,ユーザの要求が終了また
はチェックイン要求であればステップS98の処理へ進
む。
【0140】ステップS95では,後述する構造編集処
理を行う。ステップS96では,編集可能要素かどうか
を判定し,編集可能要素であればステップS97の処理
へ進み,編集可能要素でなければステップS92の処理
へ戻る。
【0141】ステップS97では,内容編集を行う。ス
テップS98では,別の文書編集装置と依存関係がある
かどうかを判定し,依存関係がある場合にはステップS
99の処理へ進み,依存関係がない場合にはステップS
104の処理へ進む。
【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の処理へ進む。図2
1のステップS109では,処理予約がされているかど
うかを判定し,処理予約がされている場合にはステップ
S113の処理へ進み,処理予約がされていない場合に
はステップS110の処理へ進む。
【0149】ステップS110では,同期処理予約とし
て,要求元の識別子を記憶し,他からの処理の受け付け
を停止する。ステップS111では,依存関係にある他
の文書編集装置に要求元の識別子と同期要求とを転送し
依存関係にある文書編集装置の識別子リストを得る。
【0150】ステップS112では,文書編集装置の識
別子リストに自身の識別子を加え,要求送信元に返す。
ステップS113では,要求送信元に空の文書編集装置
識別子リストを返す。なお,要求送信元では,識別子が
予約と異なる場合にはエラー処理を行うことになる。
【0151】ステップS114では,別の文書編集装置
(同期予約主)からのメッセージ(同期要求)を待つ。
その後,ステップS107の処理へ戻る。図22は,図
20におけるステップS95の構造編集処理のフローチ
ャートである。
【0152】ステップS121では,ユーザの要求が何
であるかを判定し,新規作成要求の場合にはステップS
122の処理へ進み,張り付け(ペースト)要求の場合
にはステップ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の処理へ進
み,変更モードが独立モードの場合にはステップS15
2の処理へ進む。
【0164】ステップS144では,仮の要素識別子を
生成する。ステップS145では,レジスタの要素のコ
ピーを作り,生成した要素識別子を設定する。
【0165】ステップS146では,コピー要素のコピ
ー元属性(copyof)と変更モード属性(copy
stat)に,レジスタ要素のインスタンス識別子と変
更モードとをそれぞれ設定する。
【0166】ステップS147では,コピーした要素の
コピー要素リスト属性(copied.to)と,リン
ク要素リスト属性(linked.with),派生要
素リスト属性(derivations)をクリアす
る。
【0167】ステップS148では,レジスタ要素以下
の文書部分木に含まれるレジスタ要素以外の要素に対し
て仮の要素識別子を生成し,元の要素識別子との対応を
要素対応表属性(linktbl)に格納する。
【0168】ステップS149では,変更モードを判定
し,変更モードがリンクモードの場合にはステップS1
50の処理へ進み,変更モードが共有モードの場合には
ステップS151の処理へ進む。
【0169】ステップS150では,レジスタ要素のリ
ンク要素リスト属性(linked.with)の末尾
にコピーした要素の(仮)インスタンス識別子を追加
し,ステップS153の処理へ進む。
【0170】ステップS151では,レジスタ要素のコ
ピー要素リスト属性(copied.to)の末尾にコ
ピーした要素の(仮)インスタンス識別子を追加し,ス
テップS153の処理へ進む。
【0171】ステップS152では,レジスタの要素以
下の文書部分木を深さ優先に訪れ,行きがけ順にコピー
する。すなわち,全ての要素識別子は,仮の識別子を生
成して置き換え,コピー元属性には元要素のインスタン
ス識別子を設定し,変更モード属性は独立モードとす
る。それぞれのコピー元の要素の派生要素リスト属性
(derivations)に生成したコピー要素のイ
ンスタンス識別子を加える。ただし,部分木内で閉じて
いる共有・リンク関係については,部分木内のリンクに
付け替える。
【0172】ステップS153では,張り付ける要素を
処理中の部分木に追加し,処理を終了する。ステップS
154では,レジスタの要素は処理中の文書とは別の文
書であるかどうかを判定する。レジスタの要素が別の文
書である場合にはステップS142の処理へ進み,レジ
スタの要素が別の文書でない場合にはステップS155
(図24)の処理へ進む。
【0173】図24のステップS155では,レジスタ
の要素以下の部分木を削除リストから取り除き,張り付
ける要素とする。ステップS156では,張り付ける要
素は新規要素であるかどうかを判定する。張り付ける要
素が新規要素である場合にはステップS163の処理へ
進み,張り付ける要素が新規要素でない場合にはステッ
プS157の処理へ進む。
【0174】ステップS157では,レジスタ要素の元
の親要素の削除要素属性(deletions)からレ
ジスタ要素の識別子(文書識別子と要素識別子)を取り
除く。
【0175】ステップS158では,取り除けたかどう
かを判定し,レジスタ要素の識別子が取り除けた場合に
はステップS159の処理を行い,レジスタ要素の識別
子が取り除けない場合にはステップS160の処理へ進
む。
【0176】ステップS159では,レジスタ要素の元
の親要素の移出要素属性(exports)の末尾にレ
ジスタ要素の識別子(文書識別子と要素識別子)を追加
する。
【0177】ステップS160では,張り付け先の親要
素の削除要素属性(deletions)からレジスタ
要素の識別子(文書識別子と要素識別子)を取り除く。
ステップS161では,取り除けたかどう判定し,レジ
スタ要素の識別子が取り除けた場合にはステップS16
3の処理へ進み,レジスタ要素の識別子が取り除けない
場合にはステップS162の処理へ進む。
【0178】ステップS162では,張り付け先の親要
素の移入要素属性(imports)の末尾にレジスタ
要素の識別子(文書識別子と要素識別子)を追加する。
ステップS163では,レジスタの要素種別を複写要素
に変更する。その後,ステップS153の処理へ進む。
【0179】図25は,図22におけるステップS13
3とステップS136の要素削除処理のフローチャート
である。ステップS171では,削除する要素は新規要
素かどうかを判定する。削除する要素が新規要素である
場合にはステップS175の処理へ進み,削除する要素
が新規要素でない場合にはステップS172の処理へ進
む。
【0180】ステップS172では,削除要素の元の親
要素の移入要素属性(imports)から削除要素の
識別子(文書識別子と要素識別子)を取り除く。ステッ
プS173では,削除要素の識別子が取り除けたかどう
かを判定し,取り除けた場合にはステップS174の処
理へ進み,取り除けなかった場合にはステップS175
の処理へ進む。
【0181】ステップS174では,削除要素の元の親
要素の削除要素属性(deletions)の末尾に削
除要素の識別子(文書識別子と要素識別子)を追加す
る。ステップS175では,削除要素以下の文書の部分
木を削除リストにつなぎ,処理を終了する。
【0182】図26は,図20におけるステップS10
5のチェックイン処理のフローチャートである。ステッ
プS181では,SGMLパーサで編集結果が部分編集
用DTDに適合しているかどうかを検証する。
【0183】ステップS182では,同期要求による処
理かどうかを判定する。同期要求による処理の場合には
ステップS183の処理へ進み,同期要求によらない処
理の場合にはステップS187の処理へ進む。
【0184】ステップS183では,処理中の文書はD
TDに適合しているかどうかを判定し,適合していない
場合にはステップS184の処理へ進み,適合している
場合にはステップS185の処理へ進む。
【0185】ステップS184では,文書が不完全であ
ることを要求元に通知し,処理を終了する。ステップS
185では,要求元の識別子と編集結果をサーバに送信
し,(同期)チェックインする。
【0186】ステップS186では,チェックイン結果
を要求元に通知し,処理を終了する。ステップS187
では,処理中の文書または同期チェックインする文書は
DTDに適合しているかどうかを判定する。DTDに適
合している場合にはステップS188の処理へ進み,D
TDに適合していない場合にはステップS192の処理
へ進む。
【0187】ステップS188では,削除リストの先頭
の文書要素を削除要素として取り出す。ステップS18
9では,処理中の文書の識別子と編集結果をサーバに送
信し,チェックインする。
【0188】ステップS190では,チェックインが成
功したかどうかを判定し,チェックインが成功である場
合にはステップS194の処理へ進み,チェックインが
不成功の場合にはステップS191の処理へ進む。
【0189】ステップS191では,チェックイン失敗
とその理由をユーザに示し,ステップS194の処理へ
進む。ステップS192では,処理中の文書識別子と同
期チェックインの解除を通知する。
【0190】ステップS193では,不完全な文書の部
分をユーザに示す。ステップS194では,依存関係に
ある文書装置に同期予約解除を通知し,処理を終了す
る。
【0191】図27は,図20におけるステップS10
6の終了処理のフローチャートである。ステップS20
1では,処理中の文書の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に違反しない範
囲において,編集中の最上位の文書要素の削除とタグの
変更およびその前後に新たな文書要素を追加することが
可能であるので,担当する章を分割する場合などにSG
ML文書全体を管理している装置にアクセスし直す必要
が減少する。
【0205】また,部分編集文書は,生成された部分編
集用DTDで独立に整合検査が可能であるため,一旦編
集対象部分を取り出した後はチェックインまで,SGM
L文書全体を管理している装置にアクセスすることなく
編集を進めることが可能である。
【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パーサ

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 SGML形式の文書に対する共同執筆・
    編集・利用を支援するSGML文書管理装置において,
    SGML文書に対する部分構造の変更を伴うことがある
    部分編集要求に対し,編集前の実際の文書構造とその編
    集状況による制約を文書全体の文書型定義に加味した部
    分構造の文書型定義を自動生成する手段と,前記生成さ
    れた部分構造の文書型定義に従って文書の整合性が維持
    できる範囲内で文書の部分編集を行う手段とを備えるこ
    とを特徴とするSGML文書管理装置。
  2. 【請求項2】 請求項1記載のSGML文書管理装置に
    おいて,前記編集状況による制約は,編集対象部分の前
    後に対する文書要素の追加可能性または文書要素の削除
    可能性に関する制約であることを特徴とするSGML文
    書管理装置。
  3. 【請求項3】 SGML文書を格納するデータベースに
    対するアクセス手段を持つサーバ装置と,SGML文書
    の編集対象部分を前記サーバ装置から取得しSGML文
    書を編集する1または複数のクライアント装置とからな
    るSGML文書管理装置において,前記クライアント装
    置は,SGML文書の編集対象部分を選択する手段と,
    編集対象部分に対する文書要素の追加または削除を予約
    する手段と,前記編集対象部分の選択および追加予約ま
    たは削除予約に基づいて,前記サーバ装置から編集対象
    となる文書のデータと部分編集用文書型定義とを獲得す
    る手段と,獲得した文書のデータを編集する手段と,前
    記部分編集用文書型定義をもとに編集結果の整合性を検
    査する手段とを備え,前記サーバ装置は,前記クライア
    ント装置からの編集対象部分の選択,および追加予約ま
    たは削除予約の要求に対して,文書全体の文書型定義か
    ら編集対象部分に対する文書要素の追加または削除の可
    能性を解析し,文書要素の追加または削除を含む部分編
    集に対しても文書全体の整合性が保たれる部分編集用文
    書型定義を生成する手段と,編集対象となる文書のデー
    タを前記データベースから抽出し,そのデータと前記生
    成した部分編集用文書型定義とを前記クライアント装置
    へ通知する手段とを備えることを特徴とするSGML文
    書管理装置。
  4. 【請求項4】 SGML形式の文書に対する共同執筆・
    編集・利用を支援するSGML文書管理装置においてS
    GML文書を格納するデータベースに対するアクセス手
    段を提供するサーバ装置であって,SGML文書に対す
    るアクセスを要求する装置からの編集対象部分の選択,
    および追加予約または削除予約の要求に対して,文書全
    体の文書型定義から編集対象部分に対する文書要素の追
    加または削除の可能性を解析し,文書要素の追加または
    削除を含む部分編集に対しても文書全体の整合性が保た
    れる部分編集用文書型定義を生成する手段と,編集対象
    となる文書のデータを前記データベースから抽出し,そ
    のデータと前記生成した部分編集用文書型定義とを前記
    アクセスを要求する装置へ通知する手段とを備えること
    を特徴とするSGML文書管理装置のサーバ装置。
  5. 【請求項5】 SGML形式の文書に対する共同執筆・
    編集・利用を支援するSGML文書管理装置においてS
    GML文書を格納するデータベースに対するアクセス手
    段を提供する装置からSGML文書の編集対象部分を取
    得し,そのSGML文書を編集するクライアント装置で
    あって,SGML文書の編集対象部分を選択する手段
    と,編集対象部分に対する文書要素の追加または削除を
    予約する手段と,前記編集対象部分の選択および追加予
    約または削除予約に基づいて,前記SGML文書を格納
    するデータベースに対するアクセス手段を提供する装置
    から編集対象となる文書のデータと部分編集用文書型定
    義とを獲得する手段と,獲得した文書のデータを編集す
    る手段と,前記部分編集用文書型定義をもとに編集結果
    の整合性を検査する手段とを備えることを特徴とするS
    GML文書管理装置のクライアント装置。
  6. 【請求項6】 SGML形式の文書に対する共同執筆・
    編集・利用を支援するSGML文書管理装置において,
    文書要素の複写,移動,交換,追加または削除の履歴情
    報をSGML文書形式で保持する手段と,保持した履歴
    情報を装置に依存しない形式で出力する手段とを備える
    ことを特徴とするSGML文書管理装置。
  7. 【請求項7】 請求項6記載のSGML文書管理装置に
    おいて,前記SGML文書形式は,元の文書型定義に履
    歴情報部分の宣言を加えて生成した履歴付きSGML文
    書の文書型定義を用いる形式であることを特徴とするS
    GML文書管理装置。
  8. 【請求項8】 請求項6記載のSGML文書管理装置に
    おいて,前記SGML文書形式は,履歴情報の文書の骨
    組みに元のSGML文書を埋め込んだ形式であり,改定
    履歴を差分情報として列挙してSGML文書本体の要素
    との対応を記述する形式であることを特徴とするSGM
    L文書管理装置。
  9. 【請求項9】 請求項6記載のSGML文書管理装置に
    おいて,前記SGML文書形式は,履歴情報の文書の骨
    組みに元のSGML文書を埋め込んだ形式であり,改定
    前と改定後の要素間の遷移関係を記述する形式であるこ
    とを特徴とするSGML文書管理装置。
  10. 【請求項10】 SGML形式の文書に対する共同執筆
    ・編集・利用を支援するSGML文書管理装置におい
    て,SGML文書を文書要素単位で格納し,それぞれに
    文書型定義中の文書要素宣言の内容モデルに対しそれに
    適合している子文書要素のインスタンス識別子を付与し
    た拡張内容モデルと対応付けて管理する手段と,前記S
    GML文書の編集中の部分に対応する部分編集用文書型
    定義を一時的に生成し,該当部分のみ独立に文書型定義
    に適合しているかを検査可能とする手段と,編集対象に
    おける上位文書要素および前後の文書要素を編集可能に
    したままで,前記部分編集用文書型定義に違反しない範
    囲において,編集中の最上位の文書要素の削除と総称識
    別子の変更およびその前後に新たな文書要素を追加する
    ことを可能にする手段とを備えることを特徴とするSG
    ML文書管理装置。
  11. 【請求項11】 請求項10記載のSGML文書管理装
    置において,文書要素の複写,移動,交換,追加または
    削除の履歴情報をSGML文書形式で保持する手段と,
    保持した履歴情報を装置に依存しない形式で出力する手
    段とを備えることを特徴とするSGML文書管理装置。
  12. 【請求項12】 請求項11記載のSGML文書管理装
    置において,外部のSGML文書または履歴付きSGM
    L文書の入出力を行い,前記拡張内容モデル付きのSG
    ML文書形式と履歴情報のないSGML文書形式または
    履歴情報を分離した履歴付きSGML文書形式との相互
    変換を行う手段を備えることを特徴とするSGML文書
    管理装置。
  13. 【請求項13】 SGML形式の文書に対する共同執筆
    ・編集・利用を支援するSGML文書管理装置で用いる
    プログラムを格納したプログラム記憶媒体であって,S
    GML文書に対する部分構造の変更を伴うことがある部
    分編集要求に対し,編集前の実際の文書構造とその編集
    状況による制約を文書全体の文書型定義に加味した部分
    構造の文書型定義を自動生成する処理と,前記生成され
    た部分構造の文書型定義に従って文書の整合性が維持で
    きる範囲内で文書の部分編集を行う処理とを計算機に実
    行させるプログラムを格納したことを特徴とするSGM
    L文書管理装置のプログラム記憶媒体。
  14. 【請求項14】 SGML形式の文書に対する共同執筆
    ・編集・利用を支援するSGML文書管理装置において
    SGML文書を格納するデータベースに対するアクセス
    手段を提供するサーバ装置で用いるプログラムを格納し
    たプログラム記憶媒体であって,SGML文書に対する
    アクセスを要求する装置からの編集対象部分の選択,お
    よび追加予約または削除予約の要求に対して,文書全体
    の文書型定義から編集対象部分に対する文書要素の追加
    または削除の可能性を解析し,文書要素の追加または削
    除を含む部分編集に対しても文書全体の整合性が保たれ
    る部分編集用文書型定義を生成する処理と,編集対象と
    なる文書のデータを前記データベースから抽出し,その
    データと前記生成した部分編集用文書型定義とを前記ア
    クセスを要求する装置へ通知する処理とを備える計算機
    に実行させるプログラムを格納したことを特徴とするS
    GML文書管理装置におけるサーバ装置のプログラム記
    憶媒体。
  15. 【請求項15】 SGML形式の文書に対する共同執筆
    ・編集・利用を支援するSGML文書管理装置において
    SGML文書を格納するデータベースに対するアクセス
    手段を提供する装置からSGML文書の編集対象部分を
    取得し,そのSGML文書を編集するクライアント装置
    で用いるプログラムを格納したプログラム記憶媒体であ
    って,SGML文書の編集対象部分を選択する処理と,
    編集対象部分に対する文書要素の追加または削除を予約
    する処理と,前記編集対象部分の選択および追加予約ま
    たは削除予約に基づいて,前記SGML文書を格納する
    データベースに対するアクセス手段を提供する装置から
    編集対象となる文書のデータと部分編集用文書型定義と
    を獲得する処理と,獲得した文書のデータを編集する処
    理と,前記部分編集用文書型定義をもとに編集結果の整
    合性を検査する処理とを,計算機に実行させるプログラ
    ムを格納したことを特徴とするSGML文書管理装置に
    おけるクライアント装置のプログラム記憶媒体。
  16. 【請求項16】 SGML形式の文書に対する共同執筆
    ・編集・利用を支援するSGML文書管理装置で用いる
    プログラムを格納したプログラム記憶媒体であって,文
    書要素の複写,移動,交換,追加または削除の履歴情報
    をSGML文書形式で保持する処理と,保持した履歴情
    報を装置に依存しない形式で出力する処理とを,計算機
    に実行させるプログラムを格納したことを特徴とするS
    GML文書管理装置のプログラム記憶媒体。
  17. 【請求項17】 SGML形式の文書に対する共同執筆
    ・編集・利用を支援するSGML文書管理装置で用いる
    プログラムを格納したプログラム記憶媒体であって,S
    GML文書を文書要素単位で格納し,それぞれに文書型
    定義中の文書要素宣言の内容モデルに対しそれに適合し
    ている子文書要素のインスタンス識別子を付与した拡張
    内容モデルと対応付けて管理する処理と,前記SGML
    文書の編集中の部分に対応する部分編集用文書型定義を
    一時的に生成し,該当部分のみ独立に文書型定義に適合
    しているかを検査可能とする処理と,編集対象における
    上位文書要素および前後の文書要素を編集可能にしたま
    まで,前記部分編集用文書型定義に違反しない範囲にお
    いて,編集中の最上位の文書要素の削除と総称識別子の
    変更およびその前後に新たな文書要素を追加することを
    可能にする処理とを,計算機に実行させるプログラムを
    格納したことを特徴とするSGML文書管理装置のプロ
    グラム記憶媒体。
JP23917097A 1996-09-11 1997-09-04 文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体 Expired - Fee Related JP3831085B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23917097A JP3831085B2 (ja) 1996-09-11 1997-09-04 文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP24025096 1996-09-11
JP8-240250 1996-09-11
JP23917097A JP3831085B2 (ja) 1996-09-11 1997-09-04 文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体

Publications (2)

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

Family

ID=26534118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23917097A Expired - Fee Related JP3831085B2 (ja) 1996-09-11 1997-09-04 文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体

Country Status (1)

Country Link
JP (1) JP3831085B2 (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000231506A (ja) * 1999-02-12 2000-08-22 Nec Corp 木構造データ編集システムにおける木構造差分出力方法及び装置
JP2001067342A (ja) * 1999-08-25 2001-03-16 Fujitsu Ltd 文書処理装置及び記憶媒体
JP2001125959A (ja) * 1999-10-25 2001-05-11 Industrial Bank Of Japan Ltd 電子取引システムおよび電子取引方法
JP2001256102A (ja) * 2000-03-10 2001-09-21 Nec Corp 格納データ修正システムおよびそのプログラム記録媒体
JP2002342142A (ja) * 2001-05-21 2002-11-29 Toshiba Corp 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム
JP2003248679A (ja) * 2002-02-22 2003-09-05 Toshiba Corp 構造化文書編集システム、構造化文書編集方法及びプログラム
WO2005109241A1 (ja) * 2004-05-11 2005-11-17 Atl Systems, Inc. データ構造、構造化データ管理システム及び構造化データ管理方法並びに構造化データ管理プログラム
US7120863B1 (en) 1999-11-15 2006-10-10 International Business Machines Corporation Method, system, and program for interfacing with elements in a document
WO2007034858A1 (ja) * 2005-09-22 2007-03-29 Justsystems Corporation データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
JP2007164630A (ja) * 2005-12-15 2007-06-28 Canon Inc 情報処理装置及びその制御方法、プログラム、記憶媒体
JP2007535028A (ja) * 2004-03-04 2007-11-29 マスソフト・エンジニアリング・アンド・エデユケーシヨン・インコーポレーテツド 技術計算のトレーサビリティを自動的に可能にする方法
JP2009516236A (ja) * 2005-10-07 2009-04-16 インターナショナル・ビジネス・マシーンズ・コーポレーション ソースを、コピーされたテキストにリンクさせるための方法、システム、装置、及び媒体
US7559019B2 (en) 2003-05-19 2009-07-07 Hitachi, Ltd. Document structure inspection method and apparatus
JP2009533727A (ja) * 2006-04-07 2009-09-17 パラメトリク・テクノロジー・コーポレーシヨン 文書の系図を維持するシステムと方法
JP2012164101A (ja) * 2011-02-07 2012-08-30 Nec Access Technica Ltd マニュアル作成情報管理装置、方法及びプログラム
JP2014093001A (ja) * 2012-11-05 2014-05-19 Fuji Xerox Co Ltd 文書管理装置及び文書管理プログラム

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000231506A (ja) * 1999-02-12 2000-08-22 Nec Corp 木構造データ編集システムにおける木構造差分出力方法及び装置
JP2001067342A (ja) * 1999-08-25 2001-03-16 Fujitsu Ltd 文書処理装置及び記憶媒体
JP2001125959A (ja) * 1999-10-25 2001-05-11 Industrial Bank Of Japan Ltd 電子取引システムおよび電子取引方法
US7120863B1 (en) 1999-11-15 2006-10-10 International Business Machines Corporation Method, system, and program for interfacing with elements in a document
JP2001256102A (ja) * 2000-03-10 2001-09-21 Nec Corp 格納データ修正システムおよびそのプログラム記録媒体
JP2002342142A (ja) * 2001-05-21 2002-11-29 Toshiba Corp 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム
JP2003248679A (ja) * 2002-02-22 2003-09-05 Toshiba Corp 構造化文書編集システム、構造化文書編集方法及びプログラム
US7559019B2 (en) 2003-05-19 2009-07-07 Hitachi, Ltd. Document structure inspection method and apparatus
JP2007535028A (ja) * 2004-03-04 2007-11-29 マスソフト・エンジニアリング・アンド・エデユケーシヨン・インコーポレーテツド 技術計算のトレーサビリティを自動的に可能にする方法
WO2005109241A1 (ja) * 2004-05-11 2005-11-17 Atl Systems, Inc. データ構造、構造化データ管理システム及び構造化データ管理方法並びに構造化データ管理プログラム
WO2007034858A1 (ja) * 2005-09-22 2007-03-29 Justsystems Corporation データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
JPWO2007034858A1 (ja) * 2005-09-22 2009-03-26 株式会社ジャストシステム データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
JP2009516236A (ja) * 2005-10-07 2009-04-16 インターナショナル・ビジネス・マシーンズ・コーポレーション ソースを、コピーされたテキストにリンクさせるための方法、システム、装置、及び媒体
US8332747B2 (en) 2005-10-07 2012-12-11 International Business Machines Corporation Method and systems for linking sources to copied text
US9292366B2 (en) 2005-10-07 2016-03-22 International Business Machines Corporation Linking sources to copied text
US10133708B2 (en) 2005-10-07 2018-11-20 International Business Machines Corporation Linking sources to copied text
US10796074B2 (en) 2005-10-07 2020-10-06 International Business Machines Corporation Linking sources to copied text
JP2007164630A (ja) * 2005-12-15 2007-06-28 Canon Inc 情報処理装置及びその制御方法、プログラム、記憶媒体
JP2009533727A (ja) * 2006-04-07 2009-09-17 パラメトリク・テクノロジー・コーポレーシヨン 文書の系図を維持するシステムと方法
JP2012164101A (ja) * 2011-02-07 2012-08-30 Nec Access Technica Ltd マニュアル作成情報管理装置、方法及びプログラム
JP2014093001A (ja) * 2012-11-05 2014-05-19 Fuji Xerox Co Ltd 文書管理装置及び文書管理プログラム

Also Published As

Publication number Publication date
JP3831085B2 (ja) 2006-10-11

Similar Documents

Publication Publication Date Title
US6061697A (en) SGML type document managing apparatus and managing method
JP3692764B2 (ja) 構造化文書登録方法、検索方法、およびそれに用いられる可搬型媒体
JP4141556B2 (ja) 構造化文書管理方法及びその実施装置並びにその処理プログラムを記録した媒体
JP3887867B2 (ja) 構造化文書の登録方法
JP4656868B2 (ja) 構造化文書作成装置
AU2006200047B2 (en) Data store for software application documents
US7197510B2 (en) Method, system and program for generating structure pattern candidates
US7290205B2 (en) System and method for management of document cross-reference links
US7752224B2 (en) Programmability for XML data store for documents
US7373595B2 (en) System and method for validating an XML document and reporting schema violations
US20060277452A1 (en) Structuring data for presentation documents
CA2416876C (en) Method of and software for recordal and validation of changes to markup language files
JP3831085B2 (ja) 文書管理装置,サーバ装置,クライアント装置およびそれらのプログラム記憶媒体
US7617444B2 (en) File formats, methods, and computer program products for representing workbooks
KR101311123B1 (ko) 문서의 xml 데이터 저장소에 대한 프로그램가능성
US20080126407A1 (en) System-data-architecture management system, system-data-architecture management process, and computer-readable medium storing system-data-architecture management program
JPH0830620A (ja) 構造検索装置
Lindholm A 3-way merging algorithm for synchronizing ordered trees—
JP5172073B2 (ja) 編集システム、サーバ及びプログラム
JP6011790B2 (ja) ファイル管理装置およびコンピュータプログラム
Komvoteas XML Diff and patch tool
EP2174238A2 (en) Representation of multiple markup language files in one file for the production of new markup language files

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