JPH09171510A - 構造化データ処理装置 - Google Patents

構造化データ処理装置

Info

Publication number
JPH09171510A
JPH09171510A JP8297425A JP29742596A JPH09171510A JP H09171510 A JPH09171510 A JP H09171510A JP 8297425 A JP8297425 A JP 8297425A JP 29742596 A JP29742596 A JP 29742596A JP H09171510 A JPH09171510 A JP H09171510A
Authority
JP
Japan
Prior art keywords
document
logical unit
information
selection
stream
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
JP8297425A
Other languages
English (en)
Other versions
JP3783301B2 (ja
Inventor
Koichi Hayashi
浩一 林
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP29742596A priority Critical patent/JP3783301B2/ja
Priority to EP97101549A priority patent/EP0837400A3/en
Publication of JPH09171510A publication Critical patent/JPH09171510A/ja
Application granted granted Critical
Publication of JP3783301B2 publication Critical patent/JP3783301B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 執筆者に編集上の制約を与えずに文書を自由
に編集させても、過去の文書の復元や過去には存在して
いない文書の作成等を可能にして、共同執筆を支障無く
実現させる。 【解決手段】 構造化データ処理を構造化文書データに
適用した文書処理装置では、論理単位保持手段2に木構
造を成している構造化文書の内容の一部分である内容部
又は下位階層の構造との関連位置を表すアンカーの少な
くともいずれか一方を含む論理単位を保持させ、論理単
位グループ保持手段3に構造化文書を構成する木構造の
同じ階層に位置する論理単位から成るストリームを保持
させる。そして、文書編集手段5によって文書構造を編
集すると、論理単位グループ生成手段6が当該文書編集
に対応するストリームを新たに生成し、参照関連付手段
7が新たに生成されたストリームと所定のアンカーを関
連付ける。この結果、新たに生成されたストリームは既
存の構造化文書中に組み入れられ、文書編集に応じた構
造化文書が作成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文書データ等と言
ったグラフ構造を成す構造化データを作成、編集、保存
等する処理装置及び方法に関し、特に、執筆者にデータ
編集上の制約を与えずに自由に編集することを許して
も、過去の構造化データの復元や共同執筆を支障無く行
うことのできる構造化データ処理装置及び方法に関す
る。
【0002】
【従来の技術】一般に、ファイル等といった文書情報の
まとまりに更新が繰り返された場合に、特定の条件に合
致する過去の状態の文書を取り出すことを保証する技術
はバージョン管理と呼ばれ、過去の文書の状態はバージ
ョンと呼ばれる。このようなバージョン管理は過去の状
態の文書を復元できるという効用に加え、複数の担当者
による共同執筆作業を支援できる等の効用がある。
【0003】ここで、従来では、バージョン管理はファ
イル等の情報のまとまりを単位にして行われており、フ
ァイルを共同編集するときには、複数の担当者が同じフ
ァイルを同時には編集できないように制限する等の管理
が行われていた。しかしながら、非常にサイズの大きな
文書を執筆する場合や、複数の担当者で文書を執筆する
場合には、章や節等といった部分単位で文書を編集する
方が便利である。そこで、文書を構造化して部分毎のバ
ージョンを管理して、各担当者で分担を決めて執筆する
ように取り決めたり、同一の部分を複数の担当者で同時
に編集できないように制限を加えることによって、複数
の担当者による共同執筆をが可能にした発明がなされて
いる。
【0004】従来における構造化した文書のバージョン
管理を、図84〜図89を参照して更に詳しく説明す
る。文書の構造は順序付きの木構造として表現され、章
や節等といった部分単位を表すノードが親子関係を示す
リンクを用いて構造化され、この木構造の末端に内容
(章や節等といった部分単位のデータ内容)を含んだノ
ードが接続される。すなわち、図84に示す文書構造の
例では、ノードAを文書ルートとすると、ノードBは
章、ノードC及びDが節に該当し、末端のノード
(u)、(v)、(x)がテキスト等のデータ内容を含
む内容部となる。なお、章や節等といった部分単位は文
書全体としての構造によって定義されているので、文書
の全体構造が変化してしまうとバージョン管理の単位が
安定しなくなってしまう。そこで、このような従来にお
ける文書構造のバージョン管理では、文書の全体構造を
固定し、内容部についてバージョン管理行っている。
【0005】そして、新たな内容部を作成して既存の内
容部と入れ替えるといった編集処理を行う場合には、図
85に示すように、新たな内容部(y)を既存の内容部
(x)と入れ替えるとともに、古い内容部(x)は元の
位置に対応付けて記憶管理する。これによって、当該文
書の過去の状態(すなわち、編集前の状態)を復元する
ときには、古い内容部(x)を新しい内容部(y)と再
び入れ替えるだけで、所期の目的を達成することができ
る。
【0006】このようなバージョン管理では、上記した
理由から文書の全体構造を変更した場合には、これを管
理することができず、上記のように古い内容部を新しい
内容部と入れ替えるだけでは過去のバージョンを復元を
することはできない。例えば、図85に示した元の文書
に対して、図86に示すように新たな部分単位の内容部
(z)を追加して対応する新たな部分構造(ノード)E
を文書構造に挿入した場合、図87に示すように内容部
分(x)に係る部分構造(ノード)Dを削除した場合、
図88に示すように部分構造(ノード)Cと部分構造
(ノード)Dとの順序を入れ替えた場合、図89に示す
ように内容部分(x)に係る部分構造(ノード)Dの位
置を移動させた場合等においては、文書の全体構造が変
更されるため、内容部を入れ換えるだけでは過去の状態
の文書を復元をすることはできない。
【0007】なお、特開平6−35914号公報には、
図85に示したような内容部のバージョン管理を利用し
て、同一の文書に対する共同執筆を支援する文書作成シ
ステムが記載されている。この文書作成システムでは、
複数の執筆担当者によって同じノードの内容部を編集し
たときに、それぞれの担当者が編集した内容部に対応さ
せてバージョンノードを作成し、それぞれの内容部をバ
ージョンノードとの対応付けで管理する。更に、それぞ
れのバージョンノードにはアクセス権を設定しておき、
執筆担当者が文書構造中の内容部を編集する際には、バ
ージョンノードに基づいて、その担当者に適合するアク
セス権が設定されている内容部を提示してその編集を可
能にしている。
【0008】また、特開平7−44563号公報や特開
平6−131343号公報には、文書の構造をノードと
リンクからなる木構造で表現し、文書内の互いに内容が
異なる複数の部分について論理構造関係が同一の場合に
は、ノードを多重化することによりこれら部分の論理構
造を複合して1つの複合文書構造として保持し、更に、
それぞれの部分構造を区別するための属性を多重化した
ノードに付与しておくことにより、複数の木構造の中か
ら必要な文書構造に対応する木構造を選択することがで
きる多重文書処理システムが記載されている。この多重
文書処理システムによれば、文書構造を全体構造と内容
に単純に分割するよりも柔軟に表現することができ、更
に、必要に応じて複数の木構造の中から必要な文書構造
に対応する木構造を選択することができる。
【0009】ここで、バージョン管理技術は、文書デー
タの編集以外にも、ソフトウェア開発、CADデータベー
スなど様々な分野で利用されている技術であり、一般の
バージョン管理技術においても、それぞれの部品(すな
わち、部分データ)がバージョンを持った複雑なデータ
の全体構造についてのバージョン管理は重要な課題であ
る。 このようなバージョン管理に関する従来技術としては、
例えば、下記のような種々な技術が知られている。
【0010】複雑な構造を持つCADデータベースのバ
ージョン管理技術について網羅的に記述した"R.Katz, '
Toward a Unified Framework for Version Modeling in
Engineering Databases', ACM Computing Surveys, vo
l.22, no.4, 1990"では、上述した全体構造のバージョ
ンをコンフィギュレーションと呼んで、部品のバージョ
ンとは別に管理する技術が示されている。この文献の中
には様々なバージョン管理技術が示されているが、いず
れもバージョン管理の目的は過去の状態を復元すること
である。そのための方法として、導出木を用いる方法と
レイヤを用いる方法が示している。導出木を用いる方法
は、変更の履歴としてどのバージョンのものからどのバ
ージョンが派生したかという関係で導出木(derivation
tree)を管理し、その中から一つの状態を選択するこ
とによって、過去の状態を復元する。このように導出木
を利用して、一つ前の状態からの差分だけを記録するこ
とによって、バージョン管理の実現に必要な記憶容量を
軽減させることができる。なお、"Sten Minor & Boris
Magnusson, 'A Model for Semi-(a)Synchronous Colla
borative Editing, proceedings of ECSCW '93, pp. 21
9-231, 1993"では、導出木による全体構造のバージョン
管理を文書編集に応用した例を示している。
【0011】レイヤによる方法では、変更を行ったとき
に、生成された部品や更新された部品をレイヤというま
とまりとして保持し、適切にレイヤを重ね合わせること
で過去に存在していた状態を表現できるようにする。重
ね合わされた複数のレイヤ中に同じ部品のバージョンが
含まれているときには、後から重ねたレイヤの部品を選
択することによって、必要な時点での全体構造の状態を
構成する部品のバージョンが選ばれる。 なお、"Goldst
ein, 'Layered Networks as a Tool for Software Deve
lopment', proceedings of 7th International Confere
nce on Artificial Intelligence, pp. 913-919, 1981"
では、レイヤを用いた方法をソフトウェアのバージョン
管理に利用した例を示している。
【0012】また、オブジェクト指向データベースのバ
ージョン管理について記述した"Cellary, 'Consistency
of Versions in Object-Oriented Databases', procee
dings of International VLDB Conference, pp. 432-44
1, 1990"では、特定の全体構造に属する部品にバージョ
ン名を対応づけることによって、指定したバージョンの
全体構造の復元を容易にする手法を示している。 また、ハイパーテキストのバージョン管理について記述
した"Osterbye, 'Structural and Cognitive Problems
in Providing Version Control for Hypertext', Proce
edings of ACM Conference on Hypertext (ECHT'92), p
p33-42, 1992."では、ハイパーテキストに含まれる個々
のノードのバージョンから、作成日時などの条件で適切
なものを選択することによって、コンフィギュレーショ
ンを構成する手法を示している。
【0013】
【発明が解決しようとする課題】上記のように、従来の
バージョン管理にあっては、文書の全体構造を固定化し
ておけば過去の文書のバージョンを復元することが可能
であるが、実際の文書の編集においては、図86〜図8
9に示したように文書の全体構造の変更も内容部の変更
に伴って行われる場合が珍しくはない。また、実際の文
書執筆の過程においては、下記に示す例(1)〜(3)
のように、編集がなされた文書に対して、編集前の文書
を復元させる必要が生ずる場合が多々ある。
【0014】(1)特定の日時における文書の取り出し 例えば、既に削除してしまった過去に書いた文書を取り
出すために、日時を指定して、過去の時点で編集してい
た文書のバージョンを復元させる。 (2)特定の目的で使用した文書の取り出し 例えば、中間報告等、これまでの執筆過程で一時的にま
とめて配布した文書のバージョンを復元させる。 (3)特定の人に更新された文書の取り出し 例えば、複数の担当者で執筆がなされているときに内容
をチェックするために、特定の人による更新が行われる
前のバージョンや、行われた後のバージョンを復元させ
る。
【0015】また、過去に存在したバージョンを復元す
ることの必要性の他に、過去に存在しなかった文書の構
造を取り出すことが必要になることがある。一般に仕事
がどのように進行するかは予め決められないことが多
く、進行に伴って予測していなかった様々な要求が現れ
るからである。そのため、あらかじめ担当者とマージの
手順をきちんと決めて文書の執筆を進めても、途中でう
まくゆかなることが多い。要求を満たすためには、それ
までに作ってきた文書を当初想定していなかった状況に
合わせて再構成する必要が生ずる。例えば、複数人で一
つの調査報告書を書いているときに、現在執筆中の最新
報告書の章立てではなく過去に別の目的で作った報告書
の章立てに、他のメンバーの書いた最新の情報を取り入
れて文書を作る必要が生じた場合、取り出されなければ
ならない文書構造は、過去に存在したものではなく新し
い目的のために過去の部品から合成したものになる。
【0016】しかしながら、従来のバージョン管理にあ
っては、文書の全体構造を固定化しておくことを前提と
して過去の文書の復元が可能となるものであるため、上
記のような実際の文書処理作業に即した復元処理を行う
ことができなかった。なお、内容部及び文書の全体構造
の変更を自由に行った場合であっても、文書の全体構造
と内容部との両方のバージョンを指定するようにすれ
ば、過去の文書構造を復元を実現することが可能である
が、このためには、利用者は文書の全体構造の変更過程
の全容を把握しておかなければならないため、利用者に
非常に困難且つ煩雑な作業を強いることになって実用的
ではない。
【0017】更に言えば、実際の文書執筆の過程では、
自分の担当している内容部の変更の影響が他の内容部の
変更につながることも多いので、自分の担当範囲以外の
内容部についても一貫して変更できる方が望ましい。す
なわち、他の担当者によって編集中の内容部を同時に編
集することや、他の担当者に断りなく文書の全体構造を
変更することも、実際の文書執筆の過程では必要となる
ことがある。このように各担当者が自由に編集等を行っ
た場合にあっても、各担当者毎の過去の文書を復元でき
れば支障はないが、従来のバージョン管理にあっては、
文書の全体構造を固定化しておくことを前提として過去
の文書の復元が可能となるものであるため、各担当者
は、常に編集上の制約を守らなければならず、執筆作業
を煩わしいものにしていた。
【0018】なお、上記した多重文書処理システム(特
開平7−44563号公報、特開平6−131343号
公報)にあっては、ノードに付与された属性を指定する
ことにより担当者毎の過去の文書を復元することも可能
であるが、いずれのノードをどのように多重化し、ま
た、これらのノードをどのような区別の仕方をするかに
ついては、全て利用者に任されているため、利用者は極
めて煩雑な操作を強いられることとなる。更に言えば、
共同執筆や或る時点でのバージョンの復元に当該多重文
書処理システムを利用することを考えると、複数の担当
者が作成した部分的に内容が異なる複数の文書を管理す
る能力を持っているが、実際に共同執筆や必要なバージ
ョンの復元を可能にするためには、ノードの多重化のタ
イミングやそのときに与える属性について煩雑な取り決
めが必要になる。したがって、実際の利用に際しては極
めて煩雑な操作や知識が必要とされ、当該多重文書処理
システムは実質的にはバージョンの復元や共同執筆を支
援するための手段とは言えなかった。
【0019】また、従来のバージョン管理技術は、本質
的に過去に存在していた構造の中から必要なものを選択
する技術であるため、利用者の指示にしたがって当初想
定していなかった新しい状況に応じた適切な構造を取り
出すことはできなかった。例えば、導出木を用いる方法
では、取り出せる構造は導出木のノードとして表される
過去の状態だけであり、また、"Cellary"の方法では、
過去に存在したバージョンに名前を付けるので過去に存
在した構造しか取り出せない。 また、レイヤによる方法は、レイヤの順序を変えること
で過去になかった構造も作り出せるが、取り出したい構
造が取り出せるか、また、取り出すためにどのようにレ
イヤの順序を決めればよいのかを知ることができない。
したがって、新しい状況に対応するための適切な構造を
利用者が指示して取り出すことはできない。また、"Ost
erbye"の方法も、適切な条件を与えれば必要な構造を取
り出せる可能性を示しているが、実際にどのような条件
を与えればよいのかは示していない。したがって、新し
い状況に対応するための適切な構造を利用者が指示して
取り出すことはできない。
【0020】本発明は、上記従来の事情に鑑みなされた
もので、文書データ等のグラフ構造をなす構造化データ
について、利用者に自由に編集をさせても、過去のデー
タ構造の復元や新しい状況に合わせた適切なデータ構造
の作成を可能ならしめることを目的とする。更に具体的
に言えば、本発明は、執筆者に編集上の制約を与えずに
文書を自由に編集させても、過去の文書の復元や共同執
筆を支障無く実現させることを目的とする。また、本発
明は、文書の全体構造が変更された場合にあっても、必
要な過去の文書バージョンを支障無く復元できる構造化
文書を構成することを目的とする。また、本発明は、利
用者による簡易な指定操作によって、適切な過去の文書
バージョンを復元させることを目的とする。また、本発
明は、利用者による簡易な指定操作によって、過去に作
ってきた文書を元にして、当初想定していなかった新し
い状況に合わせた適切な文書を作り出すことを目的とす
る。
【0021】
【課題を解決するための手段】本発明の構造化データ処
理装置では、ノード保持手段にグラフ構造を成している
構造化データのノード情報を保持し、リンク保持手段に
構造化データのノード間の関連情報を表すリンク情報を
保持し、リンク間関係保持手段に同一のノードを始点と
する複数のリンクの内の同一の編集処理に係るリンクを
集合として保持するとともに各集合中の含まれるリンク
間の位置関係情報を保持している。そして、編集対象と
なる構造化データは、リンク関係保持手段に保持された
リンク集合中のいずれか1つの集合を特定することによ
り、ノード保持手段及びリンク保持手段に保持された情
報に基づいて特定されてカレント構造管理管理手段で管
理されており、この特定された構造化データを編集手段
により編集処理を行う。そして、編集処理によりリンク
に変更が加えられたときには、登録手段が変更されたリ
ンクを含むリンク集合を生成してリンク間関係保持手段
に保持させる。
【0022】なお、前記編集手段はノードを追加する処
理も行い、また、前記登録手段は追加されたノードをノ
ード保持手段に保持させる処理も行う。また、編集処理
に係る情報として選択属性を編集処理により変更された
リンク集合に付与する選択属性対応付け手段を更に備え
ており、特に選択属性としてバージョン情報を付与する
ときには、選択属性対応付け手段は編集処理に係る構造
化データ中の他のリンクに対してもバージョン情報を付
与する。
【0023】また、本発明の構造化データ処理装置で
は、条件入力手段から構造化データを再構成させるため
の選択条件を入力すると、リンク集合選択手段が入力さ
れた選択条件に対応する選択属性が付与されているリン
ク情報をリンク間関係保持手段から選択し、データ構成
手段が選択されたリンク集合に基づいて構造化データを
再構成する。なお、リンク集合選択手段は、入力された
選択条件に対応するリンク集合が複数存在する場合に
は、利用者情報を優先させる、日時情報を優先させる、
バージョン情報を優先させる等といった、予め設定され
た選択規則に従っていずれか1つのリンク集合を選択
し、データ構成手段は当該リンク集合に基づいて構造化
データを再構成する。
【0024】ここで、本発明を木構造を成している構造
化文書データの処理に適用した場合には、本発明は下記
のような文書処理装置又は文書処理方法として実現され
る。なお、以下の記載において、論理単位はノードとリ
ンクとの少なくともいずれか一方を含むデータ構造中の
単位(部分データ)に該当する。
【0025】本発明の文書処理装置では、論理単位保持
手段に木構造を成している構造化文書の内容の一部分で
ある内容単位又は直下の階層の構造との関連位置を表す
参照単位の少なくともいずれか一方を論理単位として保
持させ、論理単位グループ保持手段に構造化文書を構成
する木構造において兄弟の関係にある全ての論理単位か
ら成る論理単位のグループ(集合)を保持させる。な
お、参照単位は、該参照単位の直下に位置する少なくと
も1つの論理単位グループの集合を表すものであり、参
照単位で示された論理単位グループによって文書全体が
構成される。また、兄弟の関係とは、同じ論理単位
(親)を直上にもつ論理単位同士の関係をいう。
【0026】更に、本文書処理装置では、文書編集手段
によって文書構造を編集すると、論理単位グループ生成
手段が当該文書編集に対応する論理単位グループを新た
に生成し、参照関連付手段が新たに生成された論理単位
グループと所定の参照単位を関連付ける。この結果、新
たに生成された論理単位グループは既存の構造化文書中
に組み入れられ、文書編集に応じた構造化文書が作成さ
れる。また、新たに生成された論理単位グループは、対
応する編集前の論理単位グループを同一の集合に追加さ
れて構造化文書中に組み入れられ、これら論理単位グル
ープは同じ階層の集合にまとまられて論理単位グループ
保持手段に保持される。
【0027】また、本発明の文書処理装置では、更に、
選択情報対応付け手段によって論理単位グループと該論
理単位グループを選択するための選択情報とを対応付
け、条件指定手段によって文書構造を構成するために前
記選択情報を含む選択条件を指定すると、選択情報対応
付け手段によって対応付けられている選択情報に基づい
て、論理単位グループ選択手段が論理単位グループ保持
手段に保持されている論理単位グループを選択する。そ
して、文書構成手段が論理単位グループ選択手段により
選択された論理単位グループに基づいて文書を構成す
る。
【0028】この選択情報としては、例えば、文書のバ
ージョン情報、文書の更新日時、文書の利用者情報等が
用いられ、これら選択情報が選択情報対応付け手段によ
って論理単位グループ保持手段に保持されている論理単
位グループに対応付けられる。したがって、選択情報に
基づいて構成された文書は指定された文書のバージョン
情報、文書の更新日時、文書の利用者情報等に応じたも
のであり、過去の文書バージョンがこれら選択情報に基
づいて復元される。
【0029】また、本発明の文書処理装置では、更に、
選択情報対応付け手段により論理単位グループに対応付
けられる選択情報を、バージョン情報、更新日時情報、
利用者情報とし、条件指定手段により指定される選択条
件は文書のバージョンと日時情報と利用者情報を含むも
のとする、そして、論理単位グループ選択手段に備えら
れた検索手段によって、条件指定手段により指定された
バージョン情報に一致する論理単位グループに対応付け
られた更新日時情報以降で、指定された日時情報以前の
更新日時情報と対応付けられ、且つ、指定された利用者
情報に一致する論理単位グループを検索し、更に、論理
単位グループ選択手段に備えられた選択手段によって、
検索手段による検索結果で複数の論理単位グループが存
在した場合には、いずれか1つの論理単位グループを選
択する。そして、この選択された論理単位グループを表
示手段が表示し、利用者に対応し且つ指定された日時を
基準とした最新のバージョンの文書が検索されて表示さ
れる。
【0030】また、本発明の文書処理方法では、構造化
文書の内容の一部分である内容単位又は下位階層の構造
を表す参照単位の中から編集対象を指定し、この指定し
た内容単位又は参照単位を編集すると、編集に対応し
て、構造化文書を構成する木構造において兄弟の関係に
ある全ての内容単位あるいは参照単位から成る論理単位
グループが生成される。そして、新たに生成された論理
単位グループを選択するための選択情報が入力される
と、入力された選択情報と新たに生成された論理単位グ
ループとを関連付け、該論理単位グループを前記指定し
た内容単位あるいは参照単位を含む論理単位グループの
集合に追加する。したがって、新たに生成された論理単
位グループは既存の構造化文書中に組み入れられ、文書
編集に応じた構造化文書が作成される。
【0031】また、本発明の文書処理方法では、文書の
内容の一部分である内容単位と下位階層の構造を表す参
照単位を有する構造化文書を選択するための選択条件を
入力すると、構造化文書を構成する木構造において兄弟
の関係にある全ての内容単位又は参照単位からなる論理
単位グループの中から、入力された選択条件と論理単位
グループに対応付けられている選択情報とに基づいて論
理単位グループが選択され、選択された論理単位グルー
プより文書が構成されて表示される。したがって、バー
ジョン情報、更新日時情報、利用者情報等といった選択
情報を含む選択条件を入力することによって、当該選択
情報に対応する文書が構成されて表示される。
【0032】すなわち、本発明によれば、文書の全体構
造と部分構造について区別なく適用できるバージョン管
理を可能にし、文書の内容及び構造に自由に変更を加え
ても、必要なバージョンの文書を取り出すことが可能と
なっている。換言すれば、本発明では、文書の構造を、
全体構造と部分構造のバージョンを同等に管理できるデ
ータ構造として、文書データとしては文書の構成要素の
全てのバージョンを含んだものとして、この中から適切
な抽出条件によって抽出した部分構造を組み合わせて文
書全体を構成する。
【0033】また、本発明によれば、共同執筆におい
て、それぞれの担当者が与えた条件に適合するバージョ
ンの文書を一貫して編集することが可能化し、各担当者
が混乱することなく編集処理を行うことが可能になる。
すなわち、本発明では、バージョン指定情報と、利用者
指定情報と、日時指定情報とを組み合わせて、共同執筆
者が編集の対象とするべきバージョンを取り出すための
条件を定義してあり、各担当者の執筆作業の際に、対象
としている文書部分にこれらの情報を関連付けておくこ
とにより、文書を自由に編集しても、これら情報に基づ
いて文書を構成することにより各執筆者にとって編集す
べきバージョンの文書が復元される。
【0034】
【発明の実施の形態】本発明の一実施例に係る文書処理
装置及び方法を説明するに当たって、まず、本実施例に
おける構造化文書の構成及びバージョン管理を図3〜図
8を参照して説明する。なお、本実施例においては、請
求項に記載した、木構造を成している構造化文書の一部
分である内容単位は内容部として、構造化文書の下層の
構造部分との関連位置を示す参照単位はアンカーとし
て、実現され、更に、これら内容部とアンカーとの少な
くともいずれか一方を論理単位とし、木構造の同じ階層
に位置する論理単位から成る論理単位グループはストリ
ームとして、論理単位グループを選択するための選択情
報はストリーム属性として実現される。
【0035】本実施例では、ストリームに基づく木構造
の構造化文書を利用しており、ストリーム単位でバージ
ョンの管理を行うことにより文書の全体構造と部分構造
を統一的に扱えるようにして、文書の全体構造と内容部
とのバージョンを同等の方式によって管理することを可
能にしている。すなわち、本実施例では、文書内容の変
更、文書内容や文書の部分構造の挿入、文書内容や文書
の部分構造の削除、文書内容や文書の部分構造の順序の
変更、文書内容や文書の部分構造の移動、等といった一
般的な文書構造の編集に係る基本操作と、適切な内容部
やストリームの生成の操作を組み合わせることによっ
て、任意の文書構造の生成、変更、復元等が可能になっ
ている。
【0036】図3に示す文書構造の例では、ノードAを
文書ルートのアンカーとすると、例えば、アンカーB及
び内容部(u)を含むストリームaが章、アンカーC及
びDを含むストリームbが節、内容部(v)と(x)を
含むそれぞれのストリームc、dが項に該当することと
なる。そして、新たな内容部を作成して既存の内容部と
入れ替えるといった編集処理を行う場合には、例えば図
4〜図8に示すようなストリーム単位での処理を行って
文書の内容部及び全体構造を変更する。
【0037】まず、図3に示した元の文書に対して内容
部を変更する場合には、図4に示すように、新たな内容
部(y)を含むストリームd2を作り、既存の内容部
(x)を含むストリームd1と新たなストリームd2と
を入れ替えるとともに、古いストリームd1と新しいス
トリームd2とをアンカーDが参照する集合として記憶
管理する。
【0038】また、図3に示した元の文書に対して新た
な部分構造を挿入する場合には、図5に示すように、ア
ンカーC及びDを含む既存のストリームb1に対して更
にアンカーEを含む新たなストリームb2を作るととも
に、内容部(z)を含んだ新たなストリームeを作り、
新たなストリームb2を既存のストリームb1と入れ替
えるとともに、新たなストリームb2の各アンカーC、
D、Eによってそれぞれストリームc、d、eを参照さ
せる。なお、この場合にあっても、同一のアンカーBで
参照される同じ階層のストリームb1、b2はアンカー
Bが参照する集合として記憶管理する。
【0039】また、図3に示した元の文書に対して既存
の部分構造Dを削除する場合には、図6に示すように、
アンカーC及びDを含む既存のストリームb1に対して
アンカーDを削除した新たなストリームb3を作り、既
存のストリームb1と新たなストリームd3とを入れ替
えるとともに、古いストリームb1と新しいストリーム
b3とをアンカーBが参照する集合として記憶管理す
る。また、新たなストリームb3のアンカーCでストリ
ームcを参照させるとともに、ストリームdを古いスト
リームb1のアンカーDによって参照されるストリーム
として記憶管理する。
【0040】また、図3に示した元の文書に対して部分
構造C、Dの順序を入れ替える場合には、図7に示すよ
うに、アンカーC及びDを含む既存のストリームb1に
対してアンカーCとDの順序を入れ替えた新たなストリ
ームb4を作り、既存のストリームb1と新たなストリ
ームd4とを入れ替えるとともに、古いストリームb1
と新しいストリームb4とをアンカーBが参照する集合
として記憶管理する。
【0041】また、図3に示した元の文書に対して部分
構造Dを移動させる場合には、図8に示すように、アン
カーC及びDを含む既存のストリームb1に対してアン
カーDを削除した新たなストリームb3を作り、既存の
ストリームb1と新たなストリームd3とを入れ替える
とともに、内容部(u)及びアンカーBを含む既存のス
トリームa1に対して更にアンカーDを含ませた新たな
ストリームa2を作り、既存のストリームa1と新たな
ストリームa2とを入れ替え、アンカーDにはそのまま
ストリームdを参照させる。なお、この場合にあって
も、同一のアンカーAで参照される全てのストリームa
1、a2はアンカーAが参照する集合として記憶管理
し、同一のアンカーBで参照される全てのストリームb
1、b3はアンカーBが参照する集合として記憶管理す
る。
【0042】上記のように、編集処理されたストリーム
は編集前のストリームと同一の集合として記憶され、こ
れら集合化されたストリームは同一のアンカーによって
参照される。したがって、後述するように、アンカーで
示される集合の内から所定の条件に適合するストリーム
を選択し、これらストリームによって文書を構成するこ
とにより、編集処理によって文書の全体構成を変更した
場合にあっても、編集前の過去の文書を復元することが
できる。
【0043】このような文書処理を実行する本実施例の
文書処理装置は、図1に示す構成を有している。半導体
メモリや磁気記憶装置等から構成されたメモリ1には、
論理単位保持手段2、論理単位グループ保持手段3、選
択情報対応付け手段4が構成されており、これら手段2
〜4によって構造化文書に関する情報を記憶管理する。
論理単位保持手段2はアンカー又は内容部の少なくとも
いずれか一方を含む論理単位を保持し、論理単位グルー
プ保持手段3は論理単位から成るストリームを保持す
る。
【0044】選択情報対応付け手段4は、論理単位グル
ープ保持手段3に保持されているストリームとストリー
ムを選択するためのストリーム属性とを対応付けてお
り、これによって、ストリーム属性を指定することによ
り、論理単位グループ保持手段3から対応するストリー
ムを選択することが可能となっている。したがって、構
造化文書は図2に示すように各ストリーム毎にストリー
ム属性を対応付けたデータ構造としてメモリ1に格納さ
れており、本実施例における以下の説明では、これらス
トリームとストリーム属性との組をストリームセットと
して定義する。また、ストリームセットは、同一のアン
カーで参照され且つ文書構造中の同じ階層に位置するス
トリームとストリーム属性との組を複数個包含する場合
もあり、この場合にはストリームセットは複数のストリ
ームを包含した集合となる。また、文書構造の最上位の
ノードはルートアンカーであり、このルートアンカーか
ら下位のストリームセットへ、当該ストリームセットに
含まれているアンカーから更に下位のストリームセット
へといったように、これらストリームセットはアンカー
による参照によって木構造化されている。
【0045】文書編集手段5は、キーボードやマウス等
といった入力手段からの利用者による指示に基づいて、
メモリ1に保持されている構造化文書に編集処理を施
し、図4〜図8に示したような内容部や部分構造(スト
リーム)に対する変更処理を行う。論理単位グループ生
成手段6は、文書編集手段5によって編集処理がなされ
たことに基づいて対応する新たなストリームを生成する
処理を行い、例えば図4に示したように、内容部(x)
を内容部(y)に変更した場合には、内容部(y)を含
む新たなストリームd2を生成する。
【0046】参照関連付け手段7は論理単位グループ生
成手段6によって新たに生成されたストリームを編集対
象となった元のストリームと同一の集合に追加して論理
単位グループ保持手段3に保持させる処理を行い、例え
ば図4に示したように、既存のストリームd1に対して
新たなストリームd2が生成された場合には、当該スト
リームd2をストリームd1と同じ集合(ストリームセ
ット)に追加する。
【0047】条件指定手段8は、利用者が操作するキー
ボードやマウス等の入力手段を有し、ストリーム属性を
含む選択条件が入力されるとこれを論理単位グループ選
択手段9へ出力する。なお、本実施例では文書のバージ
ョン情報、文書の更新日時情報、文書の利用者情報等が
ストリーム属性として設定され、このようなストリーム
属性を含む選択条件が論理単位グループ選択手段9に入
力される。論理単位グループ選択手段9は、条件指定手
段8から入力された選択条件に基づいて論理単位グルー
プ保持手段3から選択条件に適合するストリーム選択す
る処理を行い、この選択処理を行うために検索手段10
と選択手段11とを有している。
【0048】検索手段10は論理単位グループ保持手段
3に保持されているストリーム中に選択条件に適合する
ストリームが存在するか否かを検索処理し、選択手段1
1はこの検索によって適合するストリームが存在すると
きには当該ストリームを選択する処理を行う。例えば、
選択条件として文書のバージョンと日時情報と利用者情
報が指定された場合、検索手段10によって、バージョ
ン情報に対応する更新日時情報以降で、指定された日時
情報以前の更新日時情報と対応付けられ、且つ、指定さ
れた利用者情報に一致するストリームを検索し、更に、
選択手段11によって、この選択条件に適合するストリ
ームを選択する。なお、選択手段11は検索手段10に
よる検索によって、上記のように選択条件に含まれる全
ての属性に適合するストリームが存在しない場合には、
この属性の内からバージョン情報に一致するストリーム
を選択する。
【0049】文書構成手段12は論理単位グループ選択
手段9によって選択されたストリームに基づいて文書を
構成する処理を行い、文書構造表示手段13は文書構成
手段12によって構成された文書をディスプレイ14に
表示させる処理を行う。未表示情報表示手段15は、文
書構造表示手段13によって文書の構成部分として表示
されていない未表示のストリームをマーカとしてディス
プレイ14に表示させる処理を行う。すなわち、論理単
位グループ選択手段9によって選択されたストリームを
含むストリームセットが他のストリームを含んでいる場
合には、当該他のストリームを後述(図17)するよう
にマーカ化した候補として、文書構成手段12によって
構成された文書とともにディスプレイ14に表示する。
【0050】論理単位グループ指定手段16は、キーボ
ードやマウス等の入力手段を有し、利用者からの入力に
基づいて未表情報表示手段15によって表示されたマー
カを指定する処理を行う。論理単位グループ再選択手段
17は、論理単位グループ指定手段16によってマーカ
を指定したことに基づいて、論理単位グループ選択手段
9に、当該指定されたマーカに対応するストリームと論
理単位グループ選択手段9で既に選択されているストリ
ームとを入れ替える処理を行わせる。すなわち、ディス
プレイ14に或るストリームの内容部(テキスト)が文
書の構成部分として表示されている場合、マーカを選択
することによって、他のストリームの内容部(テキス
ト)が入れ替えて表示される。また、入れ替えられたス
トリーム間でアンカーの数や位置等といったアンカーに
係る構成が異なる場合には、表示されている文書の全体
構成も変更される。
【0051】ここで、上記した論理単位グループ選択手
段9が行う選択条件に基づくストリームの選択処理を図
9を参照して更に詳しく説明する。なお、図9に示す例
では、各ストリームの属性として、”Usui”、”S
ato”、”Tani”といった利用者名からなる利用
者情報と、更新日時情報と、バージョン情報とが対応付
けられており、入力される選択条件には、文書を参照し
て処理を行うための基準日時(基準日時情報)と、基準
となるバージョン情報(基準バージョン情報)と、利用
者情報と、が含まれている。また、縦軸の日時に沿って
利用者情報毎のストリーム(1)〜(5)を示してあ
る。
【0052】この例では、利用者の”Usui”さんが
参照日時として図中に点線で示した時点で実際に文書を
参照する場合を考える。まず、選択条件として何も指定
しない場合には、参照日時を基準として最新のストリー
ム(5)が選択される。また、”本人”(すなわち、”
Usui”)とした利用者情報のみを指定した場合に
は、ストリーム属性が”Usui”である最新のストリ
ーム(1)が選択される。また、”Sato”とした利
用者情報のみを指定した場合には、ストリーム属性が”
Sato”である最新のストリーム(5)が選択され
る。また、図中に示す基準日時のみを指定した場合に
は、ストリーム属性の更新日時が基準日時までの最新の
ストリーム(4)が選択される。
【0053】また、基準日時として図示された日時を指
定し、且つ、利用者情報として”Sato”を指定した
場合には、ストリーム属性が”Sato”で且つ更新日
時が基準日時までで最新のストリーム(3)が選択され
る。また、図示された基準バージョンのみを指定した場
合には、基準バージョン以降の最新のバージョン(5)
が選択される。また、図示された基準バージョンと基準
日時として図示された日時を指定した場合には、基準バ
ージョン以降で、基準日時までで最新のストリーム
(4)が選択される。
【0054】また、図示された基準バージョンと基準日
時として”最初”を指定した場合には、基準バージョン
以降で、最初のストリーム(2)が選択される。また、
図示された基準バージョンと、利用者情報として”本
人”を指定した場合には、基準バージョン以降にはスト
リーム属性が”Usui”であるストリームがないた
め、基準バージョンのストリーム(2)が選択される。
このように、ストリーム属性に基づいて、条件指定手段
8から指定された選択条件に適合するストリームが選択
され、当該ストリームに基づいて文書構成手段12によ
って文書が構成される。
【0055】次に、上記構成の文書処理装置によって実
施される文書編集処理の概要を図10〜図36に示す具
体例を用いて説明する。なお、以下の説明によって、上
記した各構成手段による機能も更に明確化されることと
なる。この具体例では、図10に示す編集課程によって
SatoさんとTaniさんが「発明説明書」という名
前の文書を共同で執筆している。なお、個々の編集作業
の開始から終了までをセッションと称し、開始は文書編
集ツールで文書を開くことによって行われ、終了は文書
を閉じることによって行われる。
【0056】図10では、横軸に時間をとり、1〜7の
各セッションは担当者”Sato”、”Tani”に対
応する水平方向の線分で示される。また、各線分の後端
の黒い三角形は文書の保存が行われた時点を示してお
り、また、保存のマークからの垂直方向の線でバージョ
ンの名前を定義したことを示してある。例えば、セッシ
ョン4では、1995年1月4日に文書を保存し、この
際に「中間報告」という名前のバージョンを定義してい
ることを示している。なお、この具体例では、それぞれ
のセッションは、時間が重ならないようにしているが、
これは説明を無用に複雑にしないためであり、本発明は
セッションの時間が重なっても何らの支障を生じるもの
ではない。
【0057】利用者Satoさんが新しく文書「発明説
明書」を作成して保存するセッション1について、図1
1〜図15を参照して説明する。まず、図11に示すよ
うに、1995年1月1日の15:00に、Satoさ
んが文書編集手段5の文書エディタを起動すると、ディ
スプレイ14に図に示す対話ツールが表示されて新規文
書名の入力を利用者に促す。これに対して、Satoさ
んが文書ルート名として「発明説明書」を入力し、設定
完了を指示する「ok」ボタンをクリックすると、文書
の抽出を開始するルートアンカーの名前が設定される。
なお、このルートアンカーは文書を構成するストリーム
セットを参照するものである。
【0058】次いで、図12に示すように、文書エディ
タが抽出した文書構造をディスプレイ14に表示する。
この文書構造の表示は、アンカーの位置を示す白い三角
形のマーカと、アンカー名と、アンカーの参照するスト
リームの内容部とを表示することにより行われる。な
お、アンカーの位置を示すマーカのインデントの深さ
は、文書構造中におけるストリームの階層の深さを示し
ており、下層のストリームを参照するアンカーになる
程、マーカの表示される位置は図中の右方向となる。
【0059】すなわち、「発明説明書」という名称のル
ートアンカーで参照されるストリームに未だ内容部(テ
キスト内容)が未だ含まれていないときには、図12
(1)に示すように、ルートアンカー名称「発明説明
書」が表示され、当該ルートアンカーが参照する空のス
トリームが図中に点線で示す領域として表示される。そ
して、Satoさんが編集作業を行って、ルートアンカ
ーが参照するストリームに内容部(u)としてテキスト
を記述すると、このテキスト内容が図12(2)に示す
ように上記の領域内に表示される。この編集の結果、論
理単位グループ生成手段6によって、図13に示すよう
に、新しく作成された内容部(u)だけからなるストリ
ームaが生成され、このストリームaがルートアンカー
Aによって参照された文書構造が構成される。
【0060】次いで、編集処理を終了して、1995年
1月1日の20:00に、Satoさんが図12に示す
文書エディタの「save」ボタンをクリックし、文書
を保存する指示を入力すると、ディスプレイ14には図
14に示す対話ツールが表示されて保存時の指定を促
す。これに対して、この例では、Satoさんは何も設
定することなく、「ok」ボタンをクリックして作成し
た文書の保存処理を指示する。なお、この対話ツールに
は文書ルートとしてルートアンカー名「発明説明書」は
表示されている。
【0061】この保存処理の結果、メモリ1には、図1
5に示す文書構造が格納される。すなわち、この文書構
造には、ルートアンカーA、ルートアンカーAで参照さ
れるストリームセットa、ストリームセットに含まれる
ストリームa1、ストリームa1に含まれる内容部
(u)が新しく生成され、ストリームa1にはストリー
ム属性として、編集した利用者の情報である”Sat
o”、データを保存(更新)した日時である「199
5.1.1 20:00」が選択情報対応付け手段4に
よって対応付けられる。
【0062】次に、図10に示したセッション2におい
ては、Satoさんが自分がセッション1で作成した文
書「発明説明書」に編集を加え、編集結果をメモリ1に
保存する。まず、図16(1)に示すようにディスプレ
イ14には文書フォルダが表示されており、1995年
1月2日の15:00に、Satoさんが文書フォルダ
の「発明説明書」アイコンをダブルクリックして選択す
ると、文書編集手段5の文書エディタが起動される。こ
の結果、ディスプレイ14には図16(2)に示す抽出
条件設定ツールが表示され、抽出条件の設定を促す。こ
れに対して、Satoさんが条件指定手段8から利用者
情報として本人を表す変数「%本人」を入力し、設定完
了を指示する「ok」ボタンをクリックすると、編集処
理が開始される。なお、「%本人」「%最初」等の
「%」記号は、文書抽出を開始する時に、システムが値
を計算して設定する変数であることを示している。
【0063】上記の設定は、本人が更新した最新の構成
部分(ストリーム)を含む文書を抽出して編集対象とす
ることを示しており、図17(1)に示すように、文書
エディタが文書エディタは、セッション1で保存したと
きの文書構造をメモリ1から抽出してディスプレイ14
に表示する。次いで、Satoさんが文書の編集作業と
して、図17(1)に示すようにルートアンカーである
「発明説明書」が参照するストリームに、アンカーとし
て「請求項」を追加し、更に、アンカー「請求項」が参
照するストリームに内容部(v)としてテキストを記述
すると、このテキスト内容が図17(2)に示すように
アンカー「請求項」が参照する領域内に表示される。
【0064】この編集の結果、図18に示すように、論
理単位グループ生成手段6によって、ルートアンカーA
によって参照されて内容部(u)とアンカーBとを含む
新たなストリームa2が生成されるとともに、アンカー
Bによって参照されて内容部(v)を含む新たなストリ
ームb1が生成される。なお、図17に示すように、文
書エディタ中には未表示情報表示手段15によって候補
マーカMaが表示され、アンカーAが参照するストリー
ムセットにはディスプレイ表示されているストリームの
他に、他のストリームが候補として存在することを示し
ている。この場合、アンカーAが参照するストリームの
候補にはa1とa2とがあり、一方のストリームについ
てディスプレイ表示されているときには、他方のストリ
ームはマーカMaによってディスプレイ表示される。
【0065】次いで、編集処理を終了して、1995年
1月2日の20:00に、Satoさんが図17に示す
文書エディタの「save」ボタンをクリックし、文書
を保存する指示を入力すると、ディスプレイ14には図
14に示したと同様な対話ツールが表示されて保存時の
指定を促す。これに対して、Satoさんがセッション
1のときと同様にして文書の保存処理を指示すると、メ
モリ1には、図19に示す文書構造が格納される。
【0066】すなわち、この文書構造には、ルートアン
カーA、ルートアンカーAで参照されるストリームセッ
トa、ストリームセットaに含まれるストリームa1及
びa2、アンカーBによって参照されるストリームセッ
トb、ストリームセットbに含まれるストリームb1、
が含まれ、更に、ストリームa1には利用者情報の”S
ato”、データ保存(更新)日時情報の「1995.
1.1 20:00」といったストリーム属性、ストリ
ームa2には利用者情報の”Sato”、データ保存
(更新)日時情報の「1995.1.2 20:00」
といったストリーム属性、ストリームb1には利用者情
報の”Sato”、データ保存(更新)日時情報の「1
995.1.2 20:00」といったストリーム属
性、が選択情報対応付け手段4によって対応付けられ
る。
【0067】次に、図10に示したセッション3におい
ては、Satoさんが自分がセッション2で編集した文
書「発明説明書」に更に編集を加え、編集結果をメモリ
1に保存する。まず、1995年1月3日の15:00
に、セッション2と同様にしてSatoさんが文書「発
明説明書」の編集を開始すると、文書エディタはセッシ
ョン2で保存したときの文書構造をメモリ1から抽出し
て図20(1)に示すようにディスプレイ14に表示す
る。
【0068】これに対して、Satoさんが、文書の編
集作業として、図20(1)に示すように請求項の欄に
項目2を追加すると、論理単位グループ生成手段6が請
求項のアンカーBが参照するストリームとして、項目1
のアンカーCと項目2のアンカーDを含むストリームを
作成する。そして、図20(2)に示すように、この項
目2にテキストを記述すると、このテキストからなる内
容部(x)がアンカーDによって参照される新たなスト
リームとして論理単位グループ生成手段6によって生成
される。
【0069】したがって、文書エディタ内には図21に
示すように、ルートアンカーAによって参照されて内容
部(u)とアンカーBとを含むストリームa2と、アン
カーBによって参照されてアンカーCとDとを含むスト
リームb2と、アンカーCによって参照されて内容部
(v)を含むストリームc1と、アンカーDによって参
照されて内容部(x)を含むストリームd1と、が生成
される。なお、上記の編集処理によってアンカーBが参
照するストリームが複数の候補となるので、図20に示
すように、これらストリームb1、b2の内の未表示の
ストリームを示すマーカMbがディスプレイ表示され
る。
【0070】次いで、編集処理を終了して、1995年
1月3日の20:00に、Satoさんがセッション2
と同様にして文書を保存する指示を入力すると、メモリ
1には図22に示す文書構造が格納される。すなわち、
この文書構造には、図19に示した構造に対して、スト
リームセットbにアンカーCとDを含むストリームb2
が追加され、更に、アンカーCで参照されるストリーム
セットc、ストリームセットcに含まれる内容部(v)
を有したストリームc1、アンカーDで参照されるスト
リームセットd、ストリームセットdに含まれる内容部
(x)を有したストリームd1、が追加される。更に、
この文書構造の新たに追加されたストリームb2、c
1、d1に対しては、利用者情報の”Sato”、デー
タ保存(更新)日時情報の「1995.1.320:0
0」といったストリーム属性が選択情報対応付け手段4
によってそれぞれ対応付けられる。
【0071】次に、図10に示したセッション4におい
ては、Satoさんが作成した文書「発明説明書」にT
aniさんが編集を加え、その編集結果を「中間報告」
バージョンとして保存する。まず、1995年1月4日
の10:00にTaniさんがセッション2と同様にし
て編集を開始すると、図23に示すように抽出条件設定
ツールがディスプレイ14に表示される。これに対し
て、Taniさんは設定条件として何も指定せずに「o
k」ボタンをクリックして、図24に示すような文書エ
ディタをディスプレイ表示させて編集を実行する。な
お、このように何も条件を設定せずに編集を開始する
と、利用者に関わらず最新の文書がメモリ1から抽出さ
れて編集対象となる。また、ここで、Taniさんはこ
れまでに、文書の更新を行っていないので、Satoさ
んのように利用者条件として条件指定手段8から「%本
人」を指示すると、文書として何も抽出されないことに
なる。
【0072】図24に示すように、文書エディタはセッ
ション3で保存したときの文書構造を抽出してディスプ
レイ表示しており、Taniさんが編集作業として、図
に示すように請求項のアンカーBが参照するストリーム
として、項目1と項目2の間に項目1.5を追加する。
この編集の結果、図25に示すように、論理単位グルー
プ生成手段6によって、アンカーBによって参照されて
アンカーC、D、Eを含む新たなストリームb3、アン
カーEによって参照される項目1.5の内容部(z)を
含む新たなストリームe1が生成される。
【0073】次いで、編集処理を終了して、1995年
1月4日の15:00に、Taniさんが文書エディタ
の「save」ボタンをクリックし、文書を保存する指
示を入力すると、ディスプレイ14には図26に示す対
話ツールが表示されて保存時の指定を促す。これに対し
て、Taniさんはバージョン情報として「中間報告」
を設定して、「ok」ボタンをクリックして作成した文
書の保存処理を指示する。
【0074】この保存処理の結果、メモリ1には、図2
7に示す文書構造が格納される。すなわち、図22に示
したセッション3での文書構造に対して、アンカーBで
参照されるストリームセットbにアンカーC、D、Eを
含む新たなストリームb3が追加され、更に、アンカー
Eによって参照されるストリームセットe、及び、スト
リームセットeに含まれる新たなストリームe1、が追
加される。なお、この編集処理によって生成されたスト
リームb3、e1には、ストリーム属性として、編集し
た利用者の情報である”Tani”、データを保存(更
新)した日時である「1995.1.4 15:0
0」、バージョン情報である「中間報告」が選択情報対
応付け手段4によって対応付けられる。また、この編集
処理に関わったストリームa2、c1、d1のストリー
ム属性にも、選択情報対応付け手段4によってバージョ
ン情報の「中間報告」が追加して対応付けられる。
【0075】次に、図10に示したセッション5におい
ては、Satoさんが自分が編集した文書「発明説明
書」に更に編集を加え、編集結果を保存する。なお、こ
の編集開始時にはセッション4でTaniさんによる変
更が加えられているが、抽出条件の設定により、自分が
編集して保存した状態の文書について編集を再開する。
すなわち、セッション2と同様にして1995年1月4
日の15:00に文書エディタ起動する。そしてこの際
に、条件指定手段8から入力する抽出条件設定ツールの
指定を「%本人」とすることによって、論理単位グルー
プ選択手段9は請求項のアンカーBが参照するストリー
ムとして、Taniさんが作成したb3ではなく、Sa
toさんの作成したb2を選択し、セッション3でSa
toさんが保存した状態の文書構造を図28(1)に示
すように文書エディタで表示する。
【0076】なお、この場合の候補マーカMbは反転表
示され、これによって、請求項のアンカーBが現在参照
しているストリームの候補により新しいストリームがあ
ることを示す。そして、Satoさんが編集作業とし
て、図28(2)に示すように、項目2の内容部(x)
を内容部(y)に書き換えると、図29に示すように、
論理単位グループ生成手段6が項目2ののアンカーDが
参照するストリームとして、内容部(x)を内容部
(y)に書き換えたストリームd2を新たに生成する。
【0077】次いで、1995年1月4日の20:00
にSatoさんがセッション1と同様にして文書を保存
すると、メモリ1には図30に示す文書構造が格納され
る。すなわち、図27に示したセッション4での文書構
造に対して、アンカーDで参照されるストリームセット
dに内容部(y)を含む新たなストリームd2が追加さ
れ、更に、このストリームd2にはストリーム属性とし
て、編集した利用者の情報である”Sato”、データ
を保存(更新)した日時である「1995.1.4 2
0:00」、が選択情報対応付け手段4によって対応付
けられる。
【0078】次に、図10に示したセッション6におい
ては、Taniさんが自分が編集を加えて保存した文書
「発明説明書」の「中間報告」バージョンと、その後、
自分以外の執筆者によって加えられた編集の結果を参照
する。1995年1月5日の10:00に、Taniさ
んが文書「発明説明書」の編集を開始し、セッション2
と同様にして、文書フォルダのアイコンを選択してダブ
ルクリックすることで、文書エディタを起動する。この
時、図31(1)に示す抽出条件設定ツールによって、
文書の抽出条件の設定が促され、これに対して、Tan
iさんがバージョン情報として「中間報告」、利用者情
報として「%本人」を指定する。この指定によって「中
間報告」として指定したバージョンに、Taniさんに
より更新された構成要素(ストリーム)から成る文書が
メモリ1から抽出されて編集対象となる。
【0079】すなわち、論理単位グループ選択手段9が
条件指定手段8から入力された条件に従って、「中間報
告」を属性に含むストリームを検索し、Taniさんの
作成した最新のストリームを選択する。ここで、Tan
iさんがセッション4でバージョンを設定後、Sato
さんは編集を行っているが、Taniさんは編集を行っ
ていないため、項目2のアンカーDが参照するストリー
ムとして、Satoさんの作成した最新のストリームd
2ではなく、「中間報告」を設定した時点でのストリー
ムd1が選択される。この結果、図32(1)に示すよ
うに、文書エディタにはTaniさんがセッション4で
保存した「中間報告」の文書構造(図24)が表示され
る。なお、項目2のアンカーDに対応する候補マーカM
dは反転表示されて、Satoさんによって作成された
より新しいストリームの候補があることを示している。
【0080】ここで、文書エディタの「filter」
ボタンをクリックすることによって、抽出条件設定ツー
ルを再び呼び出すことができ、この呼び出したツールで
条件を変更すると、新しい条件で文書構造が再抽出され
る。したがって、Taniさんが図31(2)に示すよ
うに、抽出条件として「%本人」を除いた指定を行う
と、この指定によって、より新しいストリームが利用者
の区別なく選択される。この結果、項目2のアンカーD
が参照するストリームとして、Satoさんが作成した
最新のストリームd2が選択され、図32(2)に示す
文書が文書エディタに表示される。
【0081】したがって、図31(1)に示した最初の
条件の指定では、エディタ内には図33(1)に示す文
書構造が取り出され、図31(2)に示した条件の変更
後は、図33(2)に示す文書構造が取り出される。す
なわち、図33(1)に示す文書構造ではアンカーDが
内容部(x)を含むストリームd1を参照するが、図3
3(2)に示す文書構造ではアンカーDが内容部(y)
を含むストリームd2を参照する。なお、セッション6
ではTaniさんは編集を終了するが、文書は保存せ
ず、メモリ1に格納される文書構造は図30に示した構
造のままである。
【0082】次に、図10に示したセッション7におい
ては、Satoさんが自分が編集を行ってきた文書「発
明説明書」について、自分以外の執筆者による編集の結
果を反映させたものを「最終報告」バージョンとして保
存する。セッション7では、1995年1月5日の1
5:00に、Satoさんがセッション2と同様にして
文書エディタを起動させ、文書「発明説明書」の編集を
開始する。
【0083】文書エディタは、図34に示すように、セ
ッション5でSatoさんが保存したときの文書構造を
メモリ1から抽出してディスプレイ表示する。この文書
エディタには請求項のアンカーBが参照するストリーム
に、未選択のより新しい候補があることが候補マーカM
bによって示されている。この候補マーカMbをクリッ
クすると、候補のストリームb1、b2、b3がメニュ
ウKとして表示され、このメニュウKから論理単位グル
ープ指定手段16でストリームを選択すると、論理単位
グループ再選択手段17によって選択されたストリーム
が現在参照中のストリームと置き換えられ、更に、置き
換えられたストリームより下位の構造は抽出条件に従っ
て再構成される。
【0084】したがって、Satoさんが候補メニュウ
Kから最新のストリームb3を選択することによって、
セッション5で作成したと同じ文書を編集対象とでき
る。このセッション7の編集処理では、文書エディタ内
で、図29に示したセッション5での文書構造が図33
(2)に示した構造に変更される。そして、1995年
1月5日の20:00に、Satoさんが文書を保存す
る指示を行うと、図35に示す対話ツールがディスプレ
イ表示されて、保存時の条件設定を促す。これに対し
て、Satoさんがバージョン情報として「最終報告」
を指定して保存を行うと、メモリ1には図36に示すよ
うに編集処理が加えられた文書構造が格納される。すな
わち、図30に示したセッション5での文書構造に対し
て、保存処理時に参照していたストリームa2、b3、
c1、d2、e1の属性に、選択情報対応付け手段4に
よってバージョン情報の「最終報告」が追加して対応付
けられる。
【0085】次に、文書をメモリ1から抽出してディス
プレイ14に表示する処理を図37〜図40に示すフロ
ーチャートを参照して更に詳しく説明する。図37に示
すように、まず、利用者による条件指定手段8からの指
示に従って論理単位グループ選択手段9がメモリ1から
ルートアンカーを選択し(ステップS1)、引き続い
て、指定されたルートアンカーの下位の階層に位置する
構造をメモリ1から抽出して文書をディスプレイ14に
表示する処理を行う(ステップS2)。
【0086】このステップS2での下位構造抽出表示処
理は図38に示す手順でなされる。まず、文書構成手段
12が抽出中の文書構造にルートアンカーを組み入れ
(ステップS11)、文書構造表示手段13がこのルー
トアンカー名を表示した文書エディタをディスプレイ1
4の画面に表示する(ステップS12)。次いで、ルー
トアンカーが参照しているストリームセットを論理単位
グループ選択手段9がメモリ1から選択し(ステップS
13)、このストリームセットから、利用者によって条
件指定手段8から指示された条件に適合する属性のスト
リームを選択する(ステップS14)。
【0087】次いで、選択されたストリームを文書構成
手段12が抽出中の文書構造に組み入れ(ステップS1
5)、文書構造表示手段13がこのストリーム(内容
部)をディスプレイ14の画面に表示されている文書エ
ディタ中に表示する(ステップS16)。次いで、未表
示情報表示手段15が選択されたストリームが上記のス
トリームセット内の唯一のストリームかを判断し(ステ
ップS17)、ストリームセット内に他のストリームが
無いときには処理を終了する。なお、ストリームに含ま
れるアンカーが下位の階層のストリームセットを参照し
ている場合には、これらストリームセット及びストリー
ムについて上記と同様な選択表示処理が繰り返し行われ
る。
【0088】一方、選択されたストリームの他にストリ
ームセット内に他のストリームが存在する場合には、未
表示情報表示手段15が当該他のストリームは選択した
ストリームより新しいストリームであるかをそのストリ
ーム属性から判断し(ステップS18)、より新しいス
トリームである場合には当該ストリームを表す候補マー
クをディスプレイ14上の文書エディタ中に反転表示す
る一方(ステップS19)、新しいストリームでない場
合には当該ストリームを表す候補マークをディスプレイ
14上の文書エディタ中に非反転で表示する(ステップ
S20)。
【0089】ここで、上記のストリーム表示処理(ステ
ップS16)を更に詳しく説明すると、当該処理は図3
9に示す手順で実行される。まず、選択されたストリー
ムが空のストリームであるかを判断し(ステップS3
1)、内容部やアンカーといった論理単位を含まない空
のストリームである場合にはそのまま処理を終了する。
一方、ストリームに論理単位が含まれている場合には、
これら論理単位の内の未処理のものを1つ選択し(ステ
ップS32)、当該選択した論理単位がアンカーである
かを判断する(ステップS33)。
【0090】この判断の結果、アンカーである場合には
図38に示した下位構造抽出表示処理を行ってアンカー
で参照されている下位構造の表示を行う一方(ステップ
S34)、内容部である場合には当該内容部を表示処理
する(ステップS35)。そして、選択されたストリー
ム中の全ての論理単位について上記の処理が終了したか
を判断し(ステップS36)、終了していない場合には
ステップS32以降の処理を繰り返し行い、終了してい
る場合には当該ストリーム表示処理を終了する。
【0091】また、上記のストリーム選択処理(ステッ
プS14)を更に詳しく説明すると、当該処理は図40
に示す手順で実行される。まず、ストリームセット中の
全てのストリームを候補リストにし(ステップS4
1)、条件指定手段8から入力された条件にバージョン
情報の指定があるかを判断する(ステップS42)。こ
の判断の結果、バージョン指定がある場合には、候補リ
スト中のストリムから条件に適合する属性を有したスト
リームを探し、このストリームを一旦基準ストリームと
して設定する(ステップS43)。
【0092】次いで、条件指定手段8から入力された条
件に基準日時情報の指定があるかを判断し(ステップS
44)、日時指定がある場合には、指定された日時より
新しい日時が属性に設定されているストリームを候補リ
ストから削除する(ステップS45)。すなわち、利用
者が処理対象としている日時以降に編集処理されたスト
リームを除外する。次いで、条件指定手段8から入力さ
れた条件に利用者情報の指定があるかを判断し(ステッ
プS46)、利用者の指定がある場合には、指定された
利用者情報が属性に設定されていないストリームを候補
リストから削除する(ステップS47)。すなわち、利
用者が処理対象としている自己の編集に係るストリーム
以外を除外する。
【0093】次いで、基準ストリームが選択されている
かを判断し(ステップS48)、選択されている場合に
は、基準ストリームよりも古いストリームを候補リスト
から削除し(ステップS49)、候補リストが空となっ
ていないことを確認して(ステップS50)、基準スト
リームを条件指定手段8から入力された条件に適合する
ストリームとして選択する(ステップS54)。一方、
上記の判断の結果、候補リスト中に基準ストリームが残
存していない場合には、候補リストが空となってしまっ
ているかを判断し(ステップS52)、空となっている
場合には、いずれのストリームの選択されないことを示
すために、空のストリームを選択されたストリームとす
る(ステップS53)。
【0094】また、上記の判断において、基準ストリー
ムが選択されておらず、候補リストは基準ストリームが
空ではない場合(ステップS52)又は候補リストから
基準ストリームより古いストリームを削除しても空では
ない場合(ステップS50)には、候補リスト中の最新
のストリームを選択されたストリームとする(ステップ
S54)。したがって、ストリーム属性に基づいて、条
件指定手段8から入力された条件に適合するストリーム
が選択される。
【0095】次に、利用者が文書エディタ中に表示され
た候補マーカMa、Mb、・・・を選択することによっ
て、ストリームを置き換えた文書をメモリ1から抽出し
てディスプレイ14に表示する処理を、図41に示すフ
ローチャートを参照して更に詳しく説明する。まず、論
理単位グループ指示手段16によって利用者が候補マー
カを指示すると、未表示情報表示手段15が指示された
ストリームが属するストリームセットをメモリ1に格納
されている文書構造から選択し(ステップS61)、選
択したストリームセット中の各ストリームを候補メニュ
Kとして文書エディタ中に表示する(ステップS6
2)。
【0096】そして、利用者が論理単位グループ指示手
段16によって指示して、候補メニュK中の現在選択表
示されているストリームとは別のストリームを選択した
かを判断し(ステップS63)、別のストリームを選択
した場合には、現在文書エディタで表示しているストリ
ームの下位階層の構造を論理単位グループ再選択手段1
7が破棄し(ステップS64)、更に、再選択されたス
トリームを破棄したストリームと入れ替える(ステップ
S65)。そして、この入れ替えられたストリームから
成る文書を文書構成手段12が構成し、当該文書を表示
手段13が文書エディタ中の表示し直して処理を終了す
る(ステップS66)。
【0097】次に、編集処理した文書をメモリ1に保存
する処理を図42に示すフローチャートを参照して更に
詳しく説明する。まず、文書編集手段5によって文書エ
ディタで編集した文書構造のルートアンカーがメモリ1
に格納されている文書構造中のルートアンカーリストに
含まれているかを判断する(ステップS71)。この結
果、ルートアンカーリストにない場合には、編集された
文書は全く新規な文書であるので、当該文書構造のルー
トアンカーを参照関連付手段7がルートアンカーリスト
に追加する(ステップS72)。
【0098】次いで、文書エディタで生成された内容部
を参照関連付手段7が所定のストリームに関連付け(ス
テップS73)、生成されたストリームを集めて(ステ
ップS74)、以下の処理が未だなされていないストリ
ームを選択する(ステップS75)。次いで、未処理の
ストリームが対応するストリームセットをメモリ1に格
納されている文書構造中から探し(ステップS76)、
対応するストリームセットがある場合には(ステップS
77)、当該ストリームセットに未処理のストリームを
追加する(ステップS79)。一方、対応するストリー
ムセットがない場合には、新たなストリームセットを文
書構造中の追加して(ステップS78)、当該ストリー
ムセットに未処理のストリームを追加する(ステップS
79)。
【0099】そして、ストリームセットに追加したスト
リームに対して、日時や利用者といった属性を選択情報
対応付け手段4が設定する(ステップS80)。上記の
一連の処理は、生成された全てのストリームについて繰
り返し行われ(ステップS81)、この後に、ストリー
ム属性としてのバージョン情報の設定処理が行われる。
すなわち、編集保存処理においてバージョン情報の設定
がなされているかを判断し(ステップS82)、設定が
なされている場合には、メモリ1に格納されている文書
構造中の全てのストリームを集めて(ステップS8
3)、以下の処理を行っていない未処理のストリームを
順次選択する(ステップS84)。
【0100】そして、選択したストリームが属するスト
リームセットを文書構造中から探し(ステップS8
5)、当該ストリームセット中の選択したストリームの
属性にバージョン情報を追加する(ステップS86)。
そして、上記ステップS84以降の処理を全てのストリ
ームについて終了したところで、文書保存処理を終了す
る(ステップS87)。したがって、編集処理で生成さ
れたストリームを保存するに際して、当該ストリームは
編集前のストリームと同一のストリームセットに追加さ
れ、また、保存処理に際して設定された属性がストリー
ムに対応付けられる。
【0101】なお、上記の実施例で採用したアルゴリズ
ムは、ルートアンカーから順にアンカーに出会ったとき
に、参照しているストリームセットから選択条件に適合
するストリームの選択を逐次行って文書を生成するもの
であるが、これ以外にも、文書構造に含まれるストリー
ムセットの全てから選択条件に適合する全てのストリー
ムを選択した後で、これら選択したストリームを組み立
てて文書を生成するようにしてもよい。また、上記の実
施例では、文書エディタの起動時に抽出条件を必ず指定
しておくようにしているが、特に指示のないときには、
前回の指定と同じにする、或いは、デフォルトの条件に
するようにしてもよい。この場合、複数の担当者で自分
の編集を一貫して行えることを最も重視するならば、デ
フォルトの条件は利用者指定を「%本人」にしておけば
よい。また、最新の文書の編集を行えることを最も重視
するならば、デフォルトの条件は何も指定しないように
すればよい。
【0102】また、上記の実施例では編集処理に際して
文書構造中に新しいバージョンを追加するようにした
が、参照処理を行っただけでも、新しいバージョンを追
加するようにしてもよい。このようにすれば、参照処理
を行った時点での文書構造を取り出すことが可能にな
る。
【0103】また、上記の本実施例におけるストリーム
の選択手順ではバージョンを指定した日時よりも基準日
時が新しいことを前提としているが、基準日時とバージ
ョン日時が逆転した場合には以下のような方法を採るこ
とにより支障なくストリームを選択処理することができ
る。 (1)基準日時よりもバージョンの指定を優先する。 (2)バージョンを指定した日時よりも前の基準日時を
指定できないようにする。なお、ストリーム属性ではバ
ージョンを指定した日時は記録されないため、このため
には、バージョンを指定した日時を記録する手段が必要
である。
【0104】また、上記の実施例ではバージョンを指定
した場合にストリーム属性にバージョン情報を追加する
ようにしたが、この代わりに、新しいストリームとして
追加するようにしてもよい。また、バージョンの指定
は、利用者が明示的に行っているが、例えば、プリント
時等に自動的にバージョンを記録してもよい。また、上
記の実施例では、「請求項」等のアンカー名はアンカー
を含むストリームに対応付けて管理されている。したが
って、アンカーの名前が変更されることによっても、新
しいストリームが生成されるが、この他にもストリーム
とは独立にアンカー名を管理したり、参照しているスト
リームの名前として管理するようにしてもかまわない。
【0105】また、上記の実施例では論理単位グループ
としてストリームという単位で文書の構造を表現するモ
デルを採用したが、本発明はこの文書構造の表現方法に
限定されるものではなく、従来技術で示したようなノー
ドとリンクからなる木構造による文書構造に本発明を適
用することもできる。なお、ノードとリンクによる文書
構造においては、本発明の論理単位グループに対応する
のは1つのノードを起点とするリンク集合である。要
は、本発明は、このリンク集合やストリームといった単
位をバージョン管理の対象として、編集処理毎に複製、
保存、属性設定等を適切に行う手段を与えていることに
特徴がある。
【0106】例えば、従来技術である特開平6−359
14号公報に記載された発明を拡張して本発明の機能を
提供するためには、次のようにすればよい。末端ではな
いノードについて下位ノードへのリンク列をノードの内
容として扱うことにし、そのノードに対応するバージョ
ンノードのそれぞれが、異なるリンク列を持つようにす
る。このように拡張すると、下位ノードを本発明におけ
る参照単位、下位ノードへのリンク列を論理単位グルー
プとして扱えるようになる。
【0107】更に言えば、本発明では、従来例として説
明した多重文書処理システム(特開平7−44563号
公報、特開平6−131343号公報)に示されている
データ構造を文書構造として採用することも可能であ
り、当該データ構造において本発明の論理単位グループ
に対応するものは、ノードが保持する子ノードポインタ
の集合となる。なお、当該多重文書処理システムではノ
ードを多重化する手段を提供しているが、これに加え
て、本発明は編集時に子ノードポインタ集合を多重化す
る手段を有している。すなわち、本発明では、編集を行
った際にノードを多重化するだけでなく、その子ノード
ポインタの集合を複製、保存、属性設定を行う手段を有
している。具体的には、文書の更新が生じたときに、自
動的に子ノードポインタ集合を複製して管理するととも
に、その属性値として日時、利用者、バージョン名を指
定できるようにしている。このような処理を利用者が手
作業で行うのであれば、編集作業が極めて複雑なものと
なることはいうまでもなく、本発明の本質は、この複雑
な処理を計算機によって自動的且つ適切に実行すること
によって、複数の担当者による執筆作業における負担を
大幅に軽減することにある。
【0108】また、上記の実施例では、文書構造を内容
部のテキスト表示と一緒に表示する例を示したが、図4
3、44に示すように、テキスト内容を表示せずに構造
だけを表示するようにしてもよい。すなわち、図43で
は、アンカーを矩形、ストリームを矢印として表示して
おり、他のストリームの候補があるかどうかは、ストリ
ームを示す矢印を候補の数だけ表示することで示され
る。また、図44では、ストリームを参照するアンカー
の木構造として表示しており、ストリームに他の候補が
あるかどうかは、アンカーを示す図形の右肩に候補の数
だけ影をつけることで示される。
【0109】次に、本発明に係る構造化データ処理装置
の一実施例を説明する。なお、上記した文書処理装置と
比較すると、内容単位はノード、参照単位はリンク、論
理単位グループは同一の編集処理に係る(すなわち、兄
弟の関係にある)リンクの集合に該当する。また、本実
施例についての以下の説明では、過去に存在していなか
った構造を生成する例も示す。
【0110】ここで、まず、本実施例が処理の対象とし
ている構造化データのバリエーションについて説明して
おく。図45〜図47には、ノード、リンク、リンク間
関係、文書内容、属性マッピング、選択属性についての
データ保持方法のバリエーションを示してあり、ノード
とリンクからなる従来技術のデータ構造と本質的に異な
る点は、同じノードを始点とする複数のリンク間関係を
保持し、それぞれに属性情報をマッピングすることによ
って、リンク間関係を管理することにある。いずれのバ
リエーションにおいても、これらの構造を表現するため
に必要な情報が管理されていることが本発明の構成上重
要な要件である。
【0111】図45は、リンク間関係の実現方法のバリ
エーションを示している。同図(a)に示す構造はノー
ドの記述中にそれを始点とする複数のリンク間関係を保
持する構成であり、この構造では、リンク間関係は共通
の始点ノードを規定する必要がないので、終点ノードへ
の参照ポインタのリストとして実現できる。なお、本実
施例では後述するように、編集対象としてカレント構造
管理手段21に保持されるカレント構造を表現するため
にこの構成を採用している。また、同図(b)に示す構
造はリンク間関係が始点ノードと終点ノードへの参照ポ
インタのリストとして表現されており、同図(c)に示
す構造は共通の始点ノードを持つリンク間関係の集合を
リンク間関係セットとして保持し、そこから始点ノード
を参照するようになっている。なお、本実施例では後述
するように、ハイパー構造管理手段20に保持されるハ
イパー構造を表現するために、同図(c)に示す構成を
採用している。
【0112】図46は、属性マッピングの実現方法のバ
リエーションを示している。同図(a)に示す構造で
は、リンク間関係の記述が後述する選択属性を含んでい
る。また、同図(b)に示す構造ではリンク間関係セッ
トが各リンク間関係に選択属性をマッピングしており、
同図(c)に示す構造では属性値の管理手段が選択属性
をリンク間関係にマッピングしている。なお、本実施例
では、同図(a)に示す構造を採用している。図47
は、ノードによる文書内容の保持方法のバリエーション
を示している。同図(a)に示す構造はノード中に内容
を記述する構成であり、同図(b)に示す構造はリンク
間関係の記述が内容を記述する構成であり、同図(c)
に示す構造は文書内容の管理手段で管理されている内容
を参照する構成である。なお、本実施例では同図(b)
の構成を採用している。
【0113】次いで、図48には本実施例に係る構造化
データ処理装置の構成を示してあり、本装置によって上
記構成の構造化データを処理する。構造化データ処理装
置には、ハイパー構造管理手段20、カレント構造管理
手段21、編集手段22、登録指示手段23、登録手段
24、履歴管理手段25、履歴表示手段26、抽出手段
27、抽出指示手段28、ルート選択手段29が備えら
れている。
【0114】ハイパー構造管理手段20はグラフ構造を
成している構造化データをメモリに保持して管理してお
り、この構造化データはノード、リンク、リンク間関
係、選択属性、属性マッピングによって構成されてい
る。ノードは構造化データを構成する最小単位であり、
文書データを構造化した本実施例では、ノードは文書内
容であるテキスト情報を保持している。なお、ノードを
リンクで結合した木構造が、文書を表すカレント構造で
ある。リンクは二つのノード間の結合関係を表す単位で
あり、リンクは始点となるノードと終点となるノードの
組として定義される。なお、本実施例では、リンクはリ
ンク間関係を記述する”LinkList”の記述に含まれる。
また、このハイパー構造管理手段20は、請求項に言う
ノード保持手段、リンク保持手段及びリンク関係保持手
段を構成している。
【0115】リンク間関係は同じノードを始点とするリ
ンクの集合に対する関係を記述しており、この集合に含
まれるリンクのリストと各リンクの位置を規定する。な
お、本実施例では、リンク集合は順序を規定されてい
る。選択属性は上記実施例の選択情報に対応した情報で
あり、同じノードを始点とする一つ以上のリンク間関係
の中からリンク間関係を選択するための属性情報であ
る。なお、本実施例では、作成日時、作成者名、バージ
ョン名のリストを、選択属性として用いている。属性マ
ッピングは選択属性をリンク間関係に関連付ける記述で
あり、本実施例では、リンク間関係を記述する”LinkLi
st”が属性情報を保持する。
【0116】カレント構造管理手段21はノード、リン
ク、リンク間関係から成る木構造(グラフ構造の一種)
で表現されるドキュメント構造データをメモリに保持し
て管理しており、このドキュメント構造が編集処理の対
象となる。なお、本実施例では、リンク間関係およびリ
ンクの記述はノードを記述する”Node”の記述中に含ま
れる。編集手段22は、ユーザの指示に従ってドキュメ
ント構造に含まれるノード、リンク、リンク間関係につ
いての生成、更新、削除等といった編集処理を行い、候
補表示手段30、候補指示手段31、交換手段32を有
している。候補表示手段30は同じノードを始点とする
リンク間関係をディスプレイ画面に表示する手段であ
り、本実施例では、ユーザが選択したノードを始点とす
るリンク間関係を表示する。候補指示手段31は、ユー
ザの指示に従って候補表示手段30によって表示された
リンク間関係の中からいずれか一つ選択する手段であ
る。交換手段32は、選択されているリンク間関係をユ
ーザに指示されたリンク間関係に変更する手段である。
【0117】登録指示手段23はカレント構造管理手段
21に保持されているドキュメント構造をハイパー構造
管理手段20に登録させるための指示を、ユーザから受
け取る手段であり、登録手段24は当該指示に従ってド
キュメント構造をハイパー構造に登録する。なお、登録
はカレント構造中のノード、リンク間関係をハイパー構
造中に格納し、適切な属性情報マッピングを行うことで
ある。履歴管理手段25はカレント構造の登録履歴を管
理する手段であり、カレント構造管理手段21に保持さ
れているドキュメント構造をハイパー構造管理手段20
に登録させる毎に登録履歴を記録して管理する。なお、
本実施例では、登録日時、登録者名、登録時に設定した
バージョン名の組をセッションとして記録する。履歴表
示手段26は履歴管理手段25で管理されているセッシ
ョンの情報をディスプレイ画面に一覧として表示する手
段である。
【0118】抽出手段27は、ユーザからの指示に従っ
て選択されたリンク間関係を用いてハイパー構造管理手
段20からドキュメント構造を抽出し、当該ドキュメン
ト構造をカレント構造管理手段21へ保持させる手段で
あり、検索手段33と選択手段34とを有している。検
索手段33は、同じノードを始点とするリンク間関係の
中から、ユーザから指示された検索条件を満たすリンク
間関係を検索する手段であり、選択手段34は、検索し
たリンク間関係の中から、ユーザから指示された選択規
則に従って1つのリンク間関係を選択する手段である。
【0119】抽出指示手段28はユーザから抽出条件の
指示を受け取る手段であり、検索条件指示手段35と選
択規則指示手段36とを有している。なお、本実施例で
は、抽出条件としては選択条件と選択規則の二つが指示
可能である。検索条件指示手段35はユーザから選択条
件(すなわち、検索条件)の指示を受け取る手段であ
り、本実施例では、選択条件は日時、バージョン名、執
筆者名を含んでいる。選択規則指示手段36はユーザか
ら選択規則の指示を受け取る手段であり、本実施例で
は、選択規則はユーザ優先、日時優先、バージョン名優
先のいずれかである。
【0120】ルート選択手段29は、カレント構造のル
ートとなるノードをハイパー構造管理手段20に保持さ
れているハイパー構造中から選択する手段であり、本実
施例では、ルートノードを起点としてリンク間関係を順
次選択することで、カレント構造管理手段21に保持さ
れるカレント構造を生成している。なお、上記した各機
能手段20〜36は、本実施例ではプロセッサが所定の
制御プログラムを実行することにより構成されている。
【0121】ここで、上記した抽出指示手段28、履歴
表示手段26、編集手段22は、ユーザに対して情報を
提示し或いはユーザが指示や情報等を入力するためのイ
ンタフェース画面を表示出力する機能を有している。抽
出指示手段28は図49に示すようなディスプレイ画面
を表示出力し、この画面には次のような各機能部が設定
されている。ルートノード名入力部40はハイパー構造
管理手段20から抽出する文書データのルートとなるノ
ード名を入力するためのエリアであり、検索条件入力部
41は選択条件を入力するためのエリアである。この検
索条件入力部41には上記した選択条件を入力するため
に、現在使用しているユーザの名前を入力するためのエ
リアであるユーザ名部42、抽出したい文書データの状
態があった日時を入力するためのエリアである日時部4
3及び44、抽出したい文書のバージョン名を入力する
ためのエリアであるバージョン名部45が設けられてい
る。
【0122】選択規則入力部46はユーザが選択規則の
いずれかを指定するエリアであり、ユーザ優先(USE
R)を選択すると選択手段34が選択条件を満たすもの
から指定されたユーザに一致するものを優先的に選択す
る処理を行い、日時優先(DATE)を選択すると選択
手段34が選択条件を満たすものから指定日時を基準と
して生成日時が最も新しいものを優先的に選択する処理
を行い、バージョン名優先(VERSION)を選択す
ると選択手段34が選択条件を満たすものから指定され
たバージョン名を含むものを優先的に選択する処理を行
う。また、執筆者選択部47はユーザが選択条件の一部
としてユーザ以外の執筆者を選択することができるエリ
アである。
【0123】また、操作ボタン部48には”extra
ct”ボタンと”history”ボタンとが設けられ
ている。”extract”ボタンを選択すると、指示
されたルートノードを始点として選択条件と選択規則に
基づいて文書データをハイパー構造管理手段20から抽
出する処理が開始され、これと同時に履歴管理手段25
が起動される。また、”history”ボタンを選択
すると、履歴表示手段26が起動されて、それまでに行
われた文書の登録履歴が画面に表示される。図50に
は、履歴表示手段26が画面表示する登録履歴の例を示
してあり、一覧表示された各履歴(すなわち、各行)に
一回の登録処理に関する情報として、日時、ユーザ名、
バージョン名が表示される。
【0124】編集手段22は図51に示すようなディス
プレイ画面を表示出力し、この画面には上記の”ext
ract”ボタンの選択によって生成されて表示出力さ
れる。この画面には、文書構造編集ウィンドウ50、文
書内容編集ウィンドウ51、候補選択ウィンドウ52、
編集ボタン53、抽出条件表示部54が設けられてい
る。文書構造編集ウィンドウ50は抽出手段27によっ
て抽出された文書データの構造を表示し、ユーザはポイ
ンティングデバイスによって文書構造に含まれるノード
を選択することができる。
【0125】文書内容編集ウィンドウ51は、文書構造
編集ウィンドウ50で選択されたノードの内容を表示
し、ユーザは表示しているテキスト内容を編集すること
によって、選択されたノードの内容を更新することがで
きる。候補選択ウィンドウ52は選択したノードを始点
とするリンクリストの候補を表示し、現在選択されてい
るリンクリストを反転して示す。このウインドウ52に
おいて、ユーザはポインティングデバイスによって、他
のリンクリストを選択して現在選択しているものと入れ
換えることができる。
【0126】編集ボタン53には次の各ボタンが設けら
れており、ユーザはこれらボタンを用いて文書の編集と
保存を行わせることができる。”add child”
ボタンを選択すると現在選択されているノードの子ノー
ドが生成され、”add brother”ボタンを選
択すると現在選択しているノードの兄弟ノードが生成さ
れ、”move down”ボタンを選択すると現在選
択しているノードが同じレベルでより後に移動され、”
move up”ボタンを選択すると現在選択している
ノードが同じレベルでより前に移動され、”move
left”ボタンを選択すると現在選択しているノード
のレベルが一段上げられ、”moveright”ボタ
ンを選択すると現在選択しているノードのレベルが一段
下げられ、”move node”ボタンを選択すると
現在選択しているノードが削除され、”save”ボタ
ンを選択するとカレント構造管理手段21が保持してい
るドキュメントがハイパー構造管理手段20が保持して
いるハイパー構造中に保存され、”close”ボタン
を選択すると全体のウィンドウを閉じられて編集処理が
完了する。また、抽出条件表示部54にはカレント構造
を抽出するための条件として指定された選択条件および
選択規則が表示される。
【0127】次に、本実施例に係る構造化データの処理
を、図52に示す例を用いてより具体的に説明する。ま
ず、図52には、3名の執筆者、Peter、David、Wicky
による文書の編集活動の履歴を示してあり、図中の横軸
は時間の経過を、縦軸は担当者を示している。また、同
図中の(a)〜(e)は、その縦軸の位置に対応する執
筆者によって、横軸の位置に対応する日時において、ハ
イパー構造管理手段20へ保存(登録)された文書デー
タの構造を示している。なお、図53は、編集の履歴を
従来技術である導出木によって示したものであり、図中
の矢印は導出関係を表しており、導出関係とは始点に位
置する文書構造から終点に位置する文書構造が作られた
ことを意味する。このような導出関係は、導出木とよば
れる各時点での文書の状態をノードとする木構造を構成
する。
【0128】図52では文書構造の木構造はインデント
されたテキストによって示しており、図54では(a)
〜(c)の表している木構造を表現したデータ構造を示
している。図55〜図57は、(a)〜(c)の文書構
造の保存が行われたときのハイパー構造の状態を示して
いる。この例は、 ”WriteAtWill”という製品のマニュ
アルをPeter、David、Wickyの3人で執筆している例で
ある。以下順を追って作業の経緯を説明する。
【0129】まず、(Aug 1)において、 Peter
が”WriteAtWill”のマニュアルを書き始め、この最初
の状態である文書データ(a)を”PC version”という
名前で保存した。次いで、(Aug 2)に、DOSと
WINとの2つのOS用の記述が必要になったので、文
書データ(a)の章立てをDOSとWINとに分けた文
書データ(b)を作成し、名前を付けずに保存した。そ
の後、2つの異なるマニュアルをそれぞれ別の担当者で
執筆することが決まり、それぞれDavidとWickyとに担当
が割り当てられた。そして、(Aug 3)に、David
が文書データ(a)の中からDOS用の記述を取り出し
て加筆した文書データ(c)を作成し、”DOS versio
n”という名前で保存した。更に、(Aug 4)に、W
ickyが文書データ(b)の中からWIN用の記述を取り
出して加筆した文書データ(e)を作成し、”WIN vers
ion”という名前で保存した。そして、(Aug 5)
に、Davidが文書データ(c)にさらに加筆した文書デ
ータ(d)を作成し、名前を付けずに保存した。
【0130】このような場合において、本実施例では過
去に存在していなかった文書データを生成することがで
きる。すなわち、本発明は、従来技術のように過去に存
在していた文書のバージョンが復元できるだけでなく、
存在していなかった文書の構造を取り出せる。図58の
文書データ(g)及び(f)は、図53に示した導出木
上にはない文書データである。この文書データ(g)の
構造は、Wickyの(Aug 4)の構造の内の”INTRO”
以下の部分をDavidが(Aug 3)に加筆したものに
置き換えて得られる構造である。すなわち、文書データ
(g)は、Wickyにとっては自分の書いた部分はそのま
まにして、他の執筆者の書いた最新の情報を反映させた
ものである。また、文書データ(f)は、Peterが(A
ug 2)に定義した全体の枠組みの中に、他の執筆者
の書いた最新の情報を組み込んだものである。したがっ
て、本発明では、このような過去に存在せず、また、予
定もしていなかった新しい文書構造を、過去に作られた
文書の部分を利用して簡単に取り出すことが可能となっ
ている。
【0131】ここで、(Aug 6)の時点で文書を編
集するときの選択条件と抽出結果のバリエーションを示
す図59〜図74を参照して、文書抽出の処理をより具
体的に説明する。図59には履歴表示手段26で表示さ
れる(Aug 6)以前に行われた文書保存の履歴を示
してあり、図60にはDavidによって指定された選択条
件を示してある。図60に示す画面上において、ルート
ノード名入力部40にはルートノードの名前としてマニ
ュアルのタイトルである”WAW Manual”が入力指定さ
れ、ユーザ名入力部42にはユーザの名前として”Davi
d”が入力指定され、日時入力部43にはいつまでに作
成された内容を探索するかを示す日時の情報として日
付”Aug/06/96”及び時間”19:03”が入力指定され、バ
ージョン名入力部45には検索を開始する起点となるバ
ージョンを示すバージョン名として”DOS version”が
入力指定されている。
【0132】なお、ユーザ以外のどの執筆者が作成した
内容を探索するかを指定する執筆者選択部47には、こ
の例では、誰も指定していないのでユーザであるDavid
が作成した文書内容が検索される。また、この例では、
選択規則入力部46で”USER”が選択されており、自分
で作成した内容を優先して選択することが指示されてい
る。
【0133】図61には、図60に示した条件によって
ハイパー構造管理部20から文書データを抽出した結果
を示してある。なお、この例では、図52に示した文書
データ(d)が抽出されている。また、図60に示した
条件を変更して、図62に示すように日時入力部43の
条件を”Aug/03/96”に指定すると、(Aug 3)ま
でで最新の内容を反映した文書データの抽出が指示され
る。この結果、図63に示すような文書構造がハイパー
構造管理部20から抽出されて画面表示される。なお、
この抽出された文書データは、この例では、図52に示
した文書データ(c)である。
【0134】また、図60に示した条件を変更して、図
64に示すようにユーザ入力部42の指定を”Wicky”
とし、バージョン名入力部45の指定をバージョン名”
WIN version”とすると、図65に示すような文書構造
がハイパー構造管理部20から抽出されて画面表示され
る。なお、この抽出された文書データは、この例では、
図52に示した文書データ(e)である。また、図64
に示した条件を変更して、図66に示すように選択規則
入力部46の指定を”DATE”にし、さらに、執筆者選択
部47の指定を他の執筆者としてDavidとWickyを加える
ように指定すると、図67に示すような文書構造がハイ
パー構造管理部20から抽出されて画面表示される。な
お、この抽出された文書データは、この例では、図58
に示した文書データ(g)であり、図52に示した導出
木の中には存在しない、従来技術では選択できなかった
データ構造が抽出されている。
【0135】また、図68に示すようにユーザ名入力部
42の指定を”Peter”にし、さらにバージョン名入力
41の指定を”PC version”に変更すると、図69に示
すような文書構造がハイパー構造管理部20から抽出さ
れて画面表示される。なお、この抽出された文書データ
は、この例では、図52に示した文書データ(b)であ
る。また、図68に示した条件を変更して、図70に示
すように選択規則入力部46の指定を”VERSION”とす
ると、図71に示すような文書構造がハイパー構造管理
部20から抽出されて画面表示される。なお、この抽出
された文書データは、この例では、図52に示した文書
データ(a)である。
【0136】また、図68に示した条件を変更して、図
72に示すように、執筆者選択部47の指定を他の執筆
者としてDavidとWickyを加えるように指定すると、図7
3に示すような文書構造がハイパー構造管理部20から
抽出されて画面表示される。なお、この抽出された文書
データは、この例では、図58に示した文書データ
(g)であり、図52に示した導出木の中には存在しな
い、従来技術では選択できなかったデータ構造が抽出さ
れている。ここで、図73に示す画面では、さらに最上
位のレベルで入れ換え可能なリンクリストの候補が候補
選択ウインドウ52に表示され、また、現状の選択状況
が反転表示されている。この例では、4つの選択肢の中
からWickyの作成した、”Win version”のバージョン名
のリンクリストが選択されていることを反転表示で示し
ている。
【0137】また、図74には、図73において選択肢
として示されているリンクリストから過去にPeterが作
成したものを選択し、現状のものと入れ換える指示を行
った状態を示してある。この結果、図58における文書
データ(f)の構造が抽出され、図52に示した導出木
の中には存在しない、従来技術では選択できなかったデ
ータ構造が抽出される。
【0138】次に、本実施例のデータ構造とアルゴリズ
ムについて説明する。本実施例は”Windows95”(登録商
標)上で、”Java”(登録商標)言語によって実現されて
いる。”Java”はオブジェクト指向言語であり、オブジ
ェクトと呼ばれるデータ構造と、そのオブジェクトが受
け付け実行するメソッドと呼ばれる手続きを、クラスの
定義として記述する。以下に示すプログラムリストは、
本実施例を実現しているJavaプログラムから主要な部分
を抜粋、簡略化したものであり、このプログラムリスト
を参照しながらデータ構造とアルゴリズムを説明する。
なお、データ構造は図75に示す。
【0139】 (1)リンク間関係記述の集合”LinkListHolder”のクラス定義 「 1」 public class LinkListHolder extends Object{ // LinkListHolderは、同じノードを始点に持つリンクリストの集合を管理す るオブジェクト。 /* データ構造の定義 */「 2」 Node sourceNode; //始点となるノード「 3」 Vector linkListSet; //リンクリストの集合 /* メソッドregisterLinksの定義 */「 4」 void registerLinks(Node node,String user, Date date, String vers ion) { //指定されたノードを始点とするリンクリストをリンクリストセットに登録 (追加)するメソッド
【0140】「 5」 int index = -1; //リンクリストセット中の同じリンクリストの番号を格納する変数「 6」 LinkList linkList; //リンクリストセット中の同じリンクリストを格納する変数「 7」 for (int i=0; i<linkListSet.size();i++) { //リンクリストセットに登録されている中から同じリンクリストを探す「 8」 linkList = (LinkList)(linkListSet.elementAt(i));「 9」 if (linkList.isLinksFor(node)) {「 10」 index = i;「 11」 break;「 12」 }「 13」 }「 14」 if (index >= 0) { //同じリンクリストが見つかったとき
【0141】「 15」 if (version.length() == 0) { //バージョン名が指定されたかをチェック「 16」 } else {「 17」 linkList.addVersion(version); //見つかったリンクセットにバージョン名を追加「 18」 }「 19」 }else { //同じリンクリストが見つからないとき「 20」 linkList = new LinkList(node,user,date,version); //nodeのもつリンクリストにユーザ名、日時、バージョン名を対応付けたリン クリストを生成
【0142】「 21」 addLinkList(linkList); //新たに生成したリンクリストを追加する。「 22」 }「 23」 } /* メソッドselectLinksの定義 */「 24」 Vector selectLinks(String user, Vector authors,Date date,String version,int rule) { //抽出条件を満たすリンクのリストから指定された規則(rule)にしたがって 一つを選択するメソッド。LinkListSetは登録日時の新しい順に並ぶように登録し ているので、最初に見つかったものが最も新しいリンクリストになる。「 25」 int userindex = -1; //ユーザ名が合致する最初のリンクリストの番号を格納する変数
【0143】「 26」 int dateindex = -1; //日時の条件が合致する最初のリンクリストの番号を格納する変数「 27」 int versionindex = -1; //バージョン名が合致する最初のリンクリストの番号を格納する変数「 28」 for (int i=0; i<linkListSet.size(); i++) { //リンクリストセット中のすべてのリンクリストを探索「 29」 LinkList linkList = (LinkList)linkListSet.elementAt(i);「 30」 if (linkList.satisfies(authors,date,version)) { //執筆者、日時、バージョン名に関する条件を満たすものについて以下を実行
【0144】「 31」 if (dateindex < 0) { // まだ日時の条件を満たすものがみつかっていなければ「 32」 dateindex = i; // このリンクリストを最新のものとする「 33」 }「 34」 if (linkList.regUser.equals(user)) { // ユーザ名に合致するものがあれば「 35」 if (userindex < 0) { // まだユーザ名に合致するものがみつかっていなければ
【0145】「 36」 userindex = i; // このリンクリストを最新のものとする「 37」 }「 38」 }「 39」 if (linkList.hasVersion(version)) { // バージョン名が合致するものがあれば「 40」 if (versionindex < 0) { // バージョン名が合致するものが見つかっていなければ
【0146】「 41」 versionindex = i; // このリンクリストを最新のものとする「 42」 }「 43」 }「 44」 }「 45」 }
【0147】「 46」 int index = -1; // 選択するリンクリストの番号を格納する変数「 47」 if (rule == DATE) { // 選択規則が日時最新のとき「 48」 index = dateindex; // 日時が最新のものを選択「 49」 } else if (rule == USER) { // 選択規則がユーザ名優先のとき「 50」 if (userindex < 0) { // ユーザ名に合致するものがなければ
【0148】「 51」 index = dateindex; // 最新のものを選択「 52」 } else { // ユーザ名に合致するものがあれば「 53」 index = userindex; // ユーザ名に合致する最新のものを選択する「 54」 }「 55」 } else if (rule == VERSION) { // 選択規則がバージョン名優先のとき
【0149】「 56」 index = versionindex; // バージョン名が合致する最新のものを選択する「 57」 } 「 58」 if (index < 0) { // もし選択されたものがなければ、「 59」 return new Vector(); // 空のリストを返す「 60」 } else {
【0150】「 61」 return ((LinkList)linkListSet.elementAt(index)).links; // 選択されたリンクリストを返す「 62」 }「 63」 }「 64」 }
【0151】 (2)ノード記述Nodeのクラス定義 「 65」 public class Node extends Object { // ノードを記述するオブジェクト /* データ構造 */「 66」 String contents; // ノードの保持するテキスト内容「 67」 Vector links; // ノードを始点とするリンクのリスト「 68」 Long nodeID; // ノードの識別子。この値が一致するノードを同一のノードと見なす。「 69」 }
【0152】 (3)リンク間関係記述LinkListのクラス定義 「 70」 public class LinkList extends Object { // 同じノードを始点とするリンクのリストを表すオブジェクト /* データ構造の定義 */「 71」 String sourceNodeContents; // ソースノードの内容「 72」 Vector links; // 終点ノードのリスト「 73」 Date regDate; // 作成日時「 74」 String regUser; // 作成者「 75」 Vector versions; // バージョン名のリスト
【0153】 /* メソッドisLinksForの定義 */「 76」 public boolean isLinksFor(Node node) { // 指定されたノードのリンクリストに一致するかを調べるメソッド。「 77」 if (!sourceNodeContents.equals(node.contents)) return false; // ソースノードと内容が違えば一致していない「 78」 if (links.size() != node.links.size()) return false; // リンクリストの長さが違えば一致しない「 79」 boolean equal = true; // 一致しないものが一つでもあるかどうかを調べる「 80」 for (int i=0; i < links.size(); i++) {
【0154】「 81」 equal = ((Node)links.elementAt(i)).equals((Node)node.li nks.elementAt(i));「 82」 if (!equal) break;「 83」 }「 84」 return equal;「 85」 }
【0155】 /* メソッドsatisfiesの定義 */「 86」 blic boolean satisfies(Vector authors, Date date, String version) { // 条件を満たすかどうかを調べるメソッド「 87」 if (regDate.after(date)) { // 登録日時が指定された日時よりも後であれば満たさない「 88」 return false;「 89」 }
【0156】「 90」 for (int i=0; i<versions.size(); i++) { // 指定されたバージョン名を含んでいれば満たす「 91」 if (((String)versions.elementAt(i)).equals(version)) {「 92」 return true;「 93」 }「 94」 }「 95」 for (int i = 0; i < authors.size(); i++) { // 指定された執筆者を含んでいれば満たす。
【0157】「 96」 String au = (String)authors.elementAt(i);「 97」 if (regUser.equals(au)) {「 98」 return true;「 99」 }「 100」 }「 101」 return false;「 102」 }「 103」 }
【0158】 (4)ハイパー構造管理手段HyperStructureManagerのクラス定義 「 104」 public class HyperStructureManager extends Object { // ノードとリンクからなる全体構造を管理するオブジェクト /* データ構造の定義 */「 105」 Vector linkListHolderSet; // 含まれるリンクリストの集合「 106」 Vector regVersions; // 登録されているバージョン名のリスト「 107」 Vector regAuthors; // 登録されている著者名のリスト「 108」 Vector sessionHistory; // 実行された登録操作の履歴
【0159】 /* メソッドsaveDocumentの定義 */「 109」 void saveDocument(Node root, String user, Date date, String ve rsion) { // ルートノードによって代表されるカレント構造を登録するメソッド「 110」 if (root == null) {「 111」 } else if (regVersionsHas(version)) { // 既にバージョン名が登録されていればなにもしない。「 112」 } else {「 113」 if (version.length() > 0) { // バージョン名が指定されていれば「 114」 regVersions.addElement(version); // 指示されたバージョン名を登録する「 115」 }
【0160】「 116」 saveTree(root,user,date,version); // ルートノードからトラバースできる構造をハイパー構造に登録する「 117」 sessionHistory.addElement(new Session(user, date, vers ion)); // 登録操作の履歴を追加「 118」 }「 119」 }
【0161】 /* メソッドsaveTreeの定義 */「 120」 void saveTree(Node node, String user, Date date, String versio n) { // 指示されたノードからトラバースできる構造をハイパー構造に登録する メソッド「 121」 int index = -1; // ハイパー構造からノードを始点とするリンクリストホルダーを探す「 122」 for(int i=0; i<linkListHolderSet.size();i++) {「 123」 if (((LinkListHolder)linkListHolderSet.elementAt(i)).s ourceNode.equals(node)) {「 124」 index = i;「 125」 break;
【0162】「 126」 }「 127」 }「 128」 LinkListHolder llholder; // 指示されたノードを始点とするリンクリストホルダーを格納する変数「 129」 if(index < 0) { // リンクリストホルダーが見つからなければ「 130」 llholder = new LinkListHolder(node); // 新しいリンクリストホルダーを生成して選択する
【0163】「 131」 linkListHolderSet.addElement(llholder); // 生成したリンクリストホルダーを追加する「 132」 } else {「 133」 llholder = (LinkListHolder)linkListHolderSet.elementAt (index); // 見つかればそのリンクリストホルダーを選択する。「 134」 }「 135」 llholder.registerLinks(node,user,date,version); // リンクリストホルダーに指示されたノードのリンクリストを追加する
【0164】「 136」 for (int i = 0; i < node.links.size(); i++) { 「 137」 saveTree((Node)node.links.elementAt(i),user,date,versi on); // 指示されたノードのリンクの終点のノードについてsaveTreeメソッドを 再帰的に呼び出す「 138」 }「 139」 }
【0165】 /* メソッドextractDocumentの定義 */「 140」 void extractDocument(Node root, String user, Vector authors, D ate date, String version, int rule) { // ルートノードとして指定されたノードを起点にして文書を表すカレント 構造を抽出するメソッド「 141」 LinkListHolder linkListHolder = linkListHolderFor(root); // ルートノードを始点とするリンクリストホルダーを選択する「 142」 root.contents = linkListHolder.sourceNode.contents; // ルートノードの内容としてリンクリストホルダーの内容を読み込む「 143」 Date sesdate = sessionDateOf(version); // バージョン名が登録された日時を取り出す「 144」 if (sesdate != null) {「 145」 if (date.before(sesdate)) { // 指定された日時がバージョン名の登録日よりも以前かどうかを調べる
【0166】「 146」 } else {「 147」 extractTree(root, user, authors, date, version, ru le); // 登録日以降の指定日のときにルートノードを起点として構造を抽出する「 148」 }「 149」 }「 150」 }
【0167】 /* メソッドextractTreeの定義 */「 151」 void extractTree(Node node, String user, Vector authors, Date date, String version, int rule) { // 指定されたノードを起点として構造を抽出するメソッド「 152」 LinkListHolder llholder = linkListHolderFor(node); // 指定されたノードを始点とするリンクリストホルダーを選択する「 153」 Vector links = llholder.selectLinks(user, authors, date, v ersion, rule); // リンクリストホルダーの中から抽出条件を満たすリンクを選択する「 154」 node.links = new Vector(); // ノードのリンクリストを初期化「 155」 Node nd = null;
【0168】「 156」 for (int i=0; i < links.size(); i++) { // 選択されたリンクリストの各リンクについて以下を実行「 157」 nd = ((Node)links.elementAt(i)).copy(); // リンクの終点ノードをコピーして新しいノードを生成する「 158」 node.addNode(nd); // 生成したノードを指定されたノードのリンクリストに追加する「 159」 extractTree(nd, user, authors, date, version, rule); // 生成したノードを起点にしてextractTreeを再帰的に実行する 「 160」 }「 161」 }
【0169】また、図75には、本実施例の主要な構成
要素のデータ構造を示してある。同図(a)に示すカレ
ント構造は、本実施例では、編集対象の文書を表現する
データ構造であり、このカレント構造をノード記述”No
de”からなる木構造の形で表現している。この”Node”
のデータ構造は上記したリストの65行目から68行目
までが対応するオブジェクトの定義であり、次の記述を
含んでいる。”contents”は文書内容を有しており、本
実施例では文字列である。”links”は1つ以上の”Nod
e”への参照のリストを有しており、このリストはこ
の”Node”を始点とするリンクの集合と順序関係を定め
るリンク間関係記述である。”nodeID”はノードの識別
子を有しており、この値によってノードが同一であるか
どうかが判断される。
【0170】図75(b)に示すハイパー構造は、ハイ
パー構造管理手段20で保持管理される構造化データで
あり、本実施例では、このハイパー構造を”LinkLis
t”、”LinkListHolder”によって構造化された”Nod
e”のネットワーク構造の形で表現している。文書デー
タの構造は、”Node”の”links”による他の”Node”
への参照を用いて構成されるが、ハイパー構造中では”
LinkList”と”LinkListHolder”からの参照によって構
成される。このハイパー構造は次の記述を含んでい
る。”LinkList”は、同じノードを始点とするリンクの
集合とその間の関係を記述するリンク間関係記述であ
り、さらに、このリンク間関係記述に対応づける選択属
性も管理する。なお、上記したリストの70行目から7
5行目までが対応するオブジェクトの定義である。
【0171】また、”sourceNodeContents”はリンクの
始点となるノードの文書内容を有しており、”links”
はリンクの終点となるNodeへの参照のリストを有してい
る。また、”regDate”は選択属性である作成日時を有
し、”regUser”は選択属性である作成者名を有し、”v
ersions”は選択属性であるバージョン名のリストを有
している。”LinkListHolder”は、同じNodeを始点とす
るLinkListの集合を保持しており、上記したリストの1
行目から3行目までが対応するオブジェクトの定義であ
る。また、”sourceNode”は始点となるNodeを参照
し、”linkListSet”は同じNodeを始点とするLinkList
の集合を有している。
【0172】ハイパー構造管理手段20が保持管理する
データ構造は、図75(c)に示してあり、本実施例で
は、ハイパー構造管理手段は”HyperStructureManage
r”というオブジェクトとして実現されている。”Hyper
StructureManager”は以下の情報を管理しており、上記
したリストの65行目から68行目までが対応するオブ
ジェクトの定義である。”LinkListHolderSet”は”Lin
kListHolder”の集合を有し、”regVersions”はカレン
ト構造の登録時に登録されたすべてのバージョン名のリ
ストを有し、”regAuthors”はこの構造を編集できる執
筆者の名前のリストを有し、”sessionHistory”はこの
構造に対して行った文書登録操作の履歴情報を有してい
る。
【0173】次に、上記したリストを参照して本実施例
のアルゴリズムを説明する。”HyperStructureManage
r”のメソッドは、上記リストの140行目から150
目に対応する”extractDocument”、151行目から1
61行目に対応する”extractTree”、109行目から
119行目に対応する”saveDocument”、120行目か
ら138行目に対応する”saveTree”を有している。”
extractDocument”はルートとして指示されたノードを
起点にして、カレント構造管理手段21に保持するカレ
ント構造をハイパー構造管理手段20に保持されたハイ
パー構造から抽出する処理を行う。この抽出処理では、
ルートから開始して、下位に位置するノードについて下
位構造を順次抽出するメソッド”extractTree”を呼び
出すことによって木構造を抽出する。
【0174】また、”extractTree”は、指定されたノ
ードを起点としてデータ構造を抽出する処理を行い、指
定されたノードを始点とするリンクリストホルダーから
抽出条件を満たすリンクリストを選択し、その内容を持
つノードを生成し、さらにその参照先のノードについ
て”extractTree”を再帰的に実行する。”saveDocumen
t”は、ルートノードによって代表されるカレント構造
をハイパー構造に登録する処理を行い、ルートノードが
参照する下位のノードについて、下位構造を登録するメ
ソッド”saveTree”を呼び出すことによって、木構造全
体を登録する。”saveTree”は、指定されたノードの下
位構造をハイパー構造に登録する処理を行い、指定され
たノードを始点とするリンクリストホルダーにノードが
保持するリンクリストに一致するものがなければ、リン
クリストを追加し、さらにその下位ノードについて”sa
veTree”を再帰的に実行する。
【0175】次に、”LinkListHolder”のメソッドは、
上記リストの4行目から23行目に対応する”register
Links”、24行目から64行目に対応する”selectLin
ks”を有している。”registerLinks”は、指定された
カレント構造中のノードが持つリンクのリストを追加す
る処理を行い、追加対象のリンクリストと一致するもの
がすでに登録されているかを調べ、登録されていなけれ
ば、新しいリンクリストとして追加する。なお、すでに
登録されていて、かつ、バージョン名が指定されている
ときには、バージョン名の設定を行う。”selectLink
s”は、保持しているリンクリストの中から選択条件を
満たすリンクリストをすべて検索し、その中から選択規
則に従ってリンクリストを1つ選択する処理を行う。
【0176】次に、”LinkList”のメソッドは、上記し
たリストの76行目から85行目に対応する”isLinksF
or”と、86行目から103行目に対応する”satisfie
s”を有している。”isLinksFor”は、カレント構造中
のノードの持つリンクのリストと一致するかどうかを判
断する処理を行い、ノードの文書内容と順序も含めたリ
ンクの集合が一致するときに”True”を返す。”satisf
ies”は、選択条件を満たすかどうかを判断する処理を
行い、指定された日時を含んでそれ以前に作成されたも
ので、指定されたバージョン名を含んでいるか、また
は、指定された執筆者によって作成されたものであれ
ば”True”を返す。
【0177】上記のアルゴリズムにより、抽出指示手段
28から指定された選択条件及び選択規則に従って、該
当する文書構造が抽出手段27によってハイパー構造管
理手段20から抽出され、抽出された文書構造が編集手
段22による編集処理の対象としてカレント管理手段2
1に保持される。また、編集処理がなされた文書構造は
登録手段24によってハイパー構造管理手段20へ登録
され、この登録処理に際して履歴情報が履歴管理手段2
5によって登録される。
【0178】次に、本発明の構造化データ処理装置を図
形の編集に適用した他の一実施例を説明する。なお、本
実施例の構成、データ構造、アルゴリズムは、本質的に
上記した構造化データ処理装置の実施例と同じであるの
で、重複する説明は割愛する。図76には、図形の編集
過程の一例を示してあり、横軸に日時を、縦軸に執筆者
名を示し、図中の(a)(b)(c)で示す図形が、縦
軸の位置に対応する執筆者による編集結果として横軸の
位置に対応する日時にハイパー構造管理手段20に保存
されたことを示している。また、この例では、(Aug
1)にPeterが(a)に示す図形を作成し、保存し
た。そして、(Aug 2)にDavidが(b)に示すよ
うに、(a)に含まれる図形要素である文字列”蓄積
部”の部分をデータベースの概念図を含むように変更
し、保存した。さらに、(Aug 3)にPeterが
(c)に示すように、(a)に新しい図形要素である文
字列”計算部”を加えて保存した。
【0179】図77には、上記の(a)(b)(c)そ
れぞれのデータ構造を示してあり、上記した実施例と異
なる点は、文書内容として図形要素を持ち、リンク間関
係が図形要素中の参照位置として二次元位置を規定して
いることである。それぞれの図(a)(b)(c)で、
(1)はデータの論理的な構造を図示したものであり、
(2)は文書内容であると同時にリンク間の関係を記述
するために使われている図形要素との関係を含めて図示
したものである。また、図78の(a)には、ハイパー
楮管理手段20に保持されるハイパー構造中のデータ構
造を示してある。また、同図の(b)には選択条件を示
してあり、当該選択条件を指示することによって、図7
9の(a)(b)(c)に示す図形がカレント構造とし
て抽出されてカレント構造管理手段21に保持される。
なお、ここに示す抽出されたデータ構造は、PeterとDav
idの両者の編集の最新状態を取り込んだものであり、過
去には存在しなかった構造である。
【0180】次に、本発明の構造化データ処理装置をハ
イパーテキストの検索に適用した更に他の一実施例を説
明する。なお、本実施例では、編集ではなく、検索履歴
として生成される木構造を処理の対象にする点が異なる
が、本質的なデータ構造やアルゴリズムは上記した実施
例と同じである。
【0181】図80には、ある調査のために、Peterが
(Aug 1)に行ったネットワーク検索の一例を示し
てある。すなわち、まず、http://AAA.htmlというアド
レスのページを開いて、そこから関連するページBBBへ
のアンカーを選択してジャンプした。この結果、http:/
/BBB.htmlというアドレスのページが開き、さらに、そ
こから関連するページDDDへのアンカーを選択してジャ
ンプした。この結果、http://DDD.htmlというアドレス
のページが開き、さらに、そこから前のページに戻る指
示をした。この結果、http://BBB.htmlというアドレス
のページが開き、さらに、そこから関連するページEEE
へのアンカーを選択してジャンプし、その結果として、
http://EEE.htmlというアドレスのページが開いた。
【0182】図81には、同じ目的の調査のために、Da
vidが(Aug 2)に行ったネットワーク検索の一例
を示してある。すなわち、まず、http://AAA.htmlとい
うアドレスのページを開いて、そこから関連するページ
BBBへのアンカーを選択してジャンプした。この結果、h
ttp://DDD.htmlというアドレスのページが開き、さら
に、そこから前のページに戻る指示をした。この結果、
http://BBB.htmlというアドレスのページが開き、さら
に、そこから関連するページCCCへのアンカーを選択し
てジャンプした。この結果、http://CCC.htmlというア
ドレスのページが開き、 さらに、そこから関連するペ
ージFFFへのアンカーを選択してジャンプした。この結
果、http://FFF.htmlというアドレスのページが開き、
さらに、そこから前のページに戻る指示をした。この結
果、http://CCC.htmlというアドレスのページが開き、
さらに、そこから関連するページGGGへのアンカーを選
択してジャンプし、この結果として、http://GGG.html
というアドレスのページが開いた。
【0183】図82の(a)(b)には、上記したそれ
ぞれの検索の履歴を木構造として表現してある。検索を
開始したノードをルートにして、検索に利用したリンク
だけを選択することによって、検索したデータ空間を表
す木構造が生成される。なお、ハイパーテキストの検索
履歴からこのような木構造を得るアルゴリズムとして
は、特開平6−259312号公報に記載されている従
来技術を採用している。なお、同図の(c)には、検索
の履歴の構造をカレント構造として、ハイパー構造に登
録した結果を示してある。なお、本実施例では、ハイパ
ー構造は、WWWなどの分散したネットワーク構造の複数
の部分構造を組み合わせて得られるものである。ハイパ
ー構造は、検索を実行するクライアントのための情報と
して、ローカルに保持されるようにしてもよいし、ネッ
トワークを維持している無数のサーバに分散して保持さ
れるようにしてもよい。
【0184】図83の(a)には、ハイパー構造管理手
段20からカレント構造を抽出するために指定した選択
条件を示してあり、同図の(b)には、抽出されたカレ
ント構造を示してある。この抽出されたカレント構造
は、PeterとDavidの行った調査をマージした調査全体の
検索空間を表わす過去に存在しなかった構造である。
【0185】なお、本発明は、上記した実施例以外に、
例えば、部品のバージョンと全体構造のバージョンの両
方を管理し、柔軟に組み合わせることに意味のあるよう
な様々なアプリケーションに適用することもできる。ま
た、本発明を適用することによって、それぞれの視点で
書かれた新しい情報を制約なく反映させることができ、
また、過去の情報構造の断片を生かして新しい状況に合
わせた構造を生成することができる。例えば、分散した
環境での電子メールや電子掲示板での意見交換に適用す
ることによって、過去の議論の復元や、過去の議論の断
片から新しい情報の構造を構築することができる。
【0186】また、書いた人がお互いを知らないほど多
数の文書を管理するシステムに適用することによって、
コメントや修正によって直接文面を修正しても支障が起
こらず、さらに、新しい文書を合成する機能を持つ文書
データベースを実現することができる。また、電子メー
ルなどの流れの構造や組織の構造などの管理に本発明を
適用することによって、過去の仕事の依頼の流れの復元
や、それを用いた業務の分析や設計を行う機能を実現す
ることができる。また、担当者が複数いるときばかりで
なく、一人で文書を編集するシステムに適用した場合で
も、当初想定していなかった目的のために、それまでに
作ってきた文書から適切な部分を抜き出して必要な文書
に再構成する機能を実現することができる。
【0187】
【発明の効果】以上説明したように、本発明に係る構造
化データ処理装置によると、ノード及びリンクから構成
されたグラフ構造の構造化データについて、リンク間関
係保持手段に同一のノードを始点とする複数のリンクの
内の同一の編集処理に係るリンクを集合として保持させ
るとともに各集合中に含まれるリンク間の位置関係情報
を保持させるようにしたため、文書データ等のグラフ構
造をなす構造化データについて、利用者に自由に編集を
させても、過去のデータ構造の復元や新しい状況に合わ
せた適切なデータ構造の作成を実現することができる。
また、本発明は、利用者による簡易な指定操作によっ
て、過去に作ってきたデータを元にして、当初想定して
いなかった新しい状況に合わせた適切な構造化データを
作り出すことを実現することができる。
【0188】特に、本発明に係る文書処理装置及び方法
によると、論理単位を含む論理単位グループに階層構造
によって文書構造を構成し、編集処理に際しては新たな
論理単位グループを生成して元の論理単位グループと同
一の集合として保持するようにしたため、文書の全体構
造を編集によって変更した場合にあっても、編集前の構
造で文書を復元させることができる。したがって、執筆
者に編集上の制約を与えずに文書を自由に編集させても
過去の文書を支障無く復元することができ、共同執筆を
支障無く実現させることができる。また、本発明に係る
文書処理装置及び方法によると、各論理単位グループに
選択情報を対応付けるようにしたため、利用者が選択情
報を含む選択条件を指定するといった簡易な操作によっ
て、適合する過去の文書バージョンを復元させることが
でき、任意のバージョンの文書について参照や編集処理
を容易に行うことができる。
【図面の簡単な説明】
【図1】 本発明の一実施例に係る文書処理装置の構成
図である。
【図2】 ストリームセットの構成を示す概念図であ
る。
【図3】 文書構造の一例を示す概念図である。
【図4】 内容部が変更された文書構造の一例を示す概
念図である。
【図5】 部分構造が挿入された文書構造の一例を示す
概念図である。
【図6】 部分構造が削除された文書構造の一例を示す
概念図である。
【図7】 部分構造の順所が入れ替えられた文書構造の
一例を示す概念図である。
【図8】 部分構造が移動された文書構造の一例を示す
概念図である。
【図9】 ストリーム選択の原理を説明する概念図であ
る。
【図10】 文書の編集セッションの一例を示す図であ
る。
【図11】 セッション1において起動された文書エデ
ィタを示す図である。
【図12】 セッション1において編集作業中の文書エ
ディタを示す図である。
【図13】 セッション1において生成された文書構造
の一例を示す図である。
【図14】 セッション1において保存処理のツールを
示す図である。
【図15】 セッション1においてメモリに格納された
文書構造の一例を示す図である。
【図16】 セッション2において文書フォルダ及び抽
出条件設定ツールを示す図である。
【図17】 セッション2において編集作業中の文書エ
ディタを示す図である。
【図18】 セッション2において生成された文書構造
の一例を示す図である。
【図19】 セッション2においてメモリに格納された
文書構造の一例を示す図である。
【図20】 セッション3において編集作業中の文書エ
ディタを示す図である。
【図21】 セッション3において生成された文書構造
の一例を示す図である。
【図22】 セッション3においてメモリに格納された
文書構造の一例を示す図である。
【図23】 セッション4において起動された抽出条件
設定ツールを示す図である。
【図24】 セッション4において編集作業中の文書エ
ディタを示す図である。
【図25】 セッション4において生成された文書構造
の一例を示す図である。
【図26】 セッション4において保存処理のツールを
示す図である。
【図27】 セッション4においてメモリに格納された
文書構造の一例を示す図である。
【図28】 セッション5において編集作業中の文書エ
ディタを示す図である。
【図29】 セッション5において生成された文書構造
の一例を示す図である。
【図30】 セッション5においてメモリに格納された
文書構造の一例を示す図である。
【図31】 セッション6において起動された抽出条件
設定ツールを示す図である。
【図32】 セッション6において参照作業中の文書エ
ディタを示す図である。
【図33】 セッション6において生成された文書構造
の一例を示す図である。
【図34】 セッション7において編集作業中の文書エ
ディタを示す図である。
【図35】 セッション7において保存処理のツールを
示す図である。
【図36】 セッション7においてメモリに格納された
文書構造の一例を示す図である。
【図37】 文書抽出表示処理の手順の一例を示すフロ
ーチャートである。
【図38】 下位構造抽出表示処理の手順の一例を示す
フローチャートである。
【図39】 ストリーム表示処理の手順の一例を示すフ
ローチャートである。
【図40】 ストリーム選択処理の手順の一例を示すフ
ローチャートである。
【図41】 文書再選択表示処理の手順の一例を示すフ
ローチャートである。
【図42】 文書保存処理の手順の一例を示すフローチ
ャートである。
【図43】 文書構造の表示形態の他の一例を示す図で
ある。
【図44】 文書構造の表示形態の更に他の一例を示す
図である。
【図45】 本発明の構造化データ処理に係るデータ構
造のバリエーションを示す概念図である。
【図46】 本発明の構造化データ処理に係るデータ構
造のバリエーションを示す概念図である。
【図47】 本発明の構造化データ処理に係るデータ構
造のバリエーションを示す概念図である。
【図48】 本発明に係る構造化データ処理装置の一実
施例を示す構成図である。
【図49】 抽出指示手段の画面表示の一例を示す図で
ある。
【図50】 履歴表示手段の画面表示の一例を示す図で
ある。
【図51】 編集手段の画面表示の一例を示す図であ
る。
【図52】 編集履歴の一例を示す図である。
【図53】 導出木構造の一例を示す図である。
【図54】 編集中の文書データ構造の一例を示す図で
ある。
【図55】 ハイパー構造のデータ構造の一例を示す図
である。
【図56】 ハイパー構造のデータ構造の一例を示す図
である。
【図57】 ハイパー構造のデータ構造の一例を示す図
である。
【図58】 新たに生成される文書データの一例を示す
図である。
【図59】 履歴表示手段の画面表示の一例を示す図で
ある。
【図60】 抽出指示手段の画面表示の一例を示す図で
ある。
【図61】 編集手段の画面表示の一例を示す図であ
る。
【図62】 抽出指示手段の画面表示の一例を示す図で
ある。
【図63】 編集手段の画面表示の一例を示す図であ
る。
【図64】 抽出指示手段の画面表示の一例を示す図で
ある。
【図65】 編集手段の画面表示の一例を示す図であ
る。
【図66】 抽出指示手段の画面表示の一例を示す図で
ある。
【図67】 編集手段の画面表示の一例を示す図であ
る。
【図68】 抽出指示手段の画面表示の一例を示す図で
ある。
【図69】 編集手段の画面表示の一例を示す図であ
る。
【図70】 抽出指示手段の画面表示の一例を示す図で
ある。
【図71】 編集手段の画面表示の一例を示す図であ
る。
【図72】 抽出指示手段の画面表示の一例を示す図で
ある。
【図73】 編集手段の画面表示の一例を示す図であ
る。
【図74】 編集手段の画面表示の一例を示す図であ
る。
【図75】 カレント構造及びハイパー構造のデータ構
造の一例を示す図である。
【図76】 本発明の他の一実施例に係る図形の編集過
程を示す図である。
【図77】 図形編集によるデータ構造の一例を示す図
である。
【図78】 ハイパー構造のデータ構造の一例を示す図
である。
【図79】 抽出された図形データ構造の一例を示す図
である。
【図80】 本発明の更に他の一実施例に係るハイパー
テキストの編集過程の一例を示す図である。
【図81】 本発明の更に他の一実施例に係るハイパー
テキストの編集過程の他の一例を示す図である。
【図82】 ハイパーテキストの履歴の一例を示す図で
ある。
【図83】 ハイパーテキストの抽出処理を説明する図
である。
【図84】 従来例に係る文書構造を示す概念図であ
る。
【図85】 内容部が変更された従来例の文書構造を示
す概念図である。
【図86】 部分構造が挿入された従来例の文書構造を
示す概念図である。
【図87】 部分構造が削除された従来例の文書構造を
示す概念図である。
【図88】 部分構造の順所が入れ替えられた従来例の
文書構造を示す概念図である。
【図89】 部分構造が移動された従来例の文書構造を
示す概念図である。
【符号の説明】
1・・・メモリ、 2・・・論理単位保持手段、3・・
・論理単位グループ保持手段、 4・・・選択情報対応
付け手段、5・・・文書編集手段、 6・・・論理単位
グループ生成手段、7・・・参照関連付手段、 8・・
・条件指定手段、9・・・論理単位グループ選択手段、
12・・・文書構成手段、13・・・文書構造表示手
段、 14・・・ディスプレイ、15・・・未表示情報
表示手段、 16・・・論理単位グループ指定手段、1
7・・・論理単位グループ再選択手段、 20・・・ハ
イパー構造管理手段、21・・・カレント構造管理手
段、 22・・・編集手段、24・・・登録手段、 2
5・・・履歴管理手段、 27・・・抽出手段、28・
・・抽出指示手段、 33・・・検索手段、 34・・
・選択手段、35・・・検索条件指示手段、 36・・
・選択規則指示手段、

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 グラフ構造を成している構造化データの
    ノード情報を保持するノード保持手段と、 構造化データのノード間の関連情報を表すリンク情報を
    保持するリンク保持手段と、 同一のノードを始点とする複数のリンクの内の同一の編
    集処理に係るリンクを集合として保持するとともに各集
    合中の含まれるリンク間の位置関係情報を保持するリン
    ク間関係保持手段と、 リンク関係保持手段に保持されたリンク集合中のいずれ
    か1つの集合を特定することによりノード保持手段及び
    リンク保持手段に保持された情報に基づいて編集対象と
    なる構造化データを特定するカレント構造管理手段と、 カレント構造管理手段により特定された構造化データを
    編集する編集手段と、 編集処理により変更されたリンクを含むリンク集合を生
    成してリンク間関係保持手段に保持させる登録手段と、 を備えたことを特徴とする構造化データ処理装置。
  2. 【請求項2】前記編集手段はノードを追加する処理も行
    い、また、前記登録手段は追加されたノードをノード保
    持手段に保持させる処理も行うことを特徴とする請求項
    1に記載の構造化データ処理装置。
  3. 【請求項3】編集処理に係る情報として選択属性を編集
    処理により変更されたリンク集合に付与する選択属性対
    応付け手段を、更に備えたことを特徴とする請求項1又
    は請求項2に記載の構造化データ処理装置。
  4. 【請求項4】選択属性はバージョン情報であり、選択属
    性対応付け手段は編集処理に係る構造化データ中の他の
    リンクに対してもバージョン情報を付与することを特徴
    とする請求項3に記載の構造化データ処理装置。
  5. 【請求項5】構造化データを再構成させるための選択条
    件を入力する条件指定手段と、 入力された選択条件に対応する選択属性が付与されてい
    るリンク情報をリンク間関係保持手段から選択するリン
    ク集合選択手段と、 選択されたリンク集合に基づいて構造化データを再構成
    するデータ構成手段と、 を更に備えたことを特徴とする請求項3又は請求項4に
    記載の構造化データ処理装置。
  6. 【請求項6】リンク集合選択手段は、入力された選択条
    件に対応するリンク集合が複数存在する場合には、予め
    設定された選択規則に従っていずれか1つのリンク集合
    を選択し、 データ構成手段は当該リンク集合に基づいて構造化デー
    タを再構成する、ことを特徴とする請求項5に記載の構
    造化データ処理装置。
  7. 【請求項7】選択規則は特定の利用者情報が付与されて
    いるリンク集合を優先的に選択するものである、ことを
    特徴とする請求項6に記載の構造化データ処理装置。
  8. 【請求項8】選択規則は最新の日時情報が付与されてい
    るリンク集合を優先的に選択するものである、ことを特
    徴とする請求項6に記載の構造化データ処理装置。
  9. 【請求項9】選択規則は特定のバージョン情報が付与さ
    れているリンク集合を優先的に選択するものである、こ
    とを特徴とする請求項6に記載の構造化データ処理装
    置。
  10. 【請求項10】リンク間関係保持手段に保持されている
    各リンク集合を識別するための情報を表示出力する表示
    出力手段と、 選択されたリンク集合に基づいてデータ構成手段により
    再構成された構造化データを表示出力するデータ出力手
    段と、 を更に備えたことを特徴とする請求項5に記載の構造化
    データ処理装置。
  11. 【請求項11】選択属性対応付け手段によりリンク集合
    に選択属性が付与される毎に選択属性の内容を履歴情報
    として保持する履歴保持手段と、 保持された履歴情報の一覧を表示出力する履歴表示手段
    と、 を更に備えたことを特徴とする請求項3に記載の構造化
    データ処理装置。
  12. 【請求項12】木構造を成している構造化文書の内容の
    一部分である内容単位又は直下の階層の構造との関連位
    置を表す参照単位の少なくともいずれか一方を論理単位
    として保持する論理単位保持手段と、 構造化文書を構成する木構造において兄弟の関係にある
    全ての論理単位から成る論理単位グループを保持する論
    理単位グループ保持手段と、を備え、 前記参照単位は、該参照単位の直下に位置する少なくと
    も1つの論理単位グループの集合を表すものであり、更
    に、 文書構造を編集する文書編集手段と、 該文書編集手段によって文書が編集されたことに基づい
    て、対応する論理単位グループを新たに生成する論理単
    位グループ生成手段と、 前記論理単位グループ生成手段により生成された論理単
    位グループと所定の参照単位を関連付ける参照関連付手
    段と、 を備えたことを特徴とする文書処理装置。
  13. 【請求項13】 前記参照関連付手段は、前記論理単位
    グループ生成手段によって生成された論理単位グループ
    を、編集前の論理単位グループと同一の集合に追加する
    ことを特徴とする請求項12に記載の文書処理装置。
  14. 【請求項14】 木構造を成している構造化文書の内容
    の一部分である内容単位及び直下の階層の構造を表す参
    照単位を保持する論理単位保持手段と、 構造化文書を構成する木構造において兄弟の関係にある
    全ての内容単位あるいは参照単位からなる論理単位グル
    ープを保持する論理単位グループ保持手段と、を備え、 前記参照単位は、該参照単位の直下に位置する少なくと
    も1つの論理単位グループの集合を表すものであり、更
    に、 前記論理単位グループと該論理単位グループを選択する
    ための選択情報とを対応付ける選択情報対応付け手段
    と、 文書構造を構成するために前記選択情報を含む選択条件
    を指定する条件指定手段と、 前記条件指定手段によって指定された選択条件と前記選
    択情報対応付け手段によって対応付けられている選択情
    報に基づいて、前記論理単位グループ保持手段に保持さ
    れている論理単位グループを選択する論理単位グループ
    選択手段と、 前記論理単位グループ選択手段により選択された論理単
    位グループに基づいて文書を構成する文書構成手段と、
    を備えたことを特徴とする文書処理装置。
  15. 【請求項15】 前記選択情報対応付け手段は、選択情
    報として文書のバージョン情報を前記論理単位グループ
    保持手段に保持された論理単位グループに対応付けるこ
    とを特徴とする請求項14に記載の文書処理装置。
  16. 【請求項16】 前記選択情報対応付け手段は、選択情
    報として文書の更新日時情報を前記論理単位グループ保
    持手段に保持された論理単位グループに対応付けること
    を特徴とする請求項14に記載の文書処理装置。
  17. 【請求項17】 前記選択情報対応付け手段は、選択情
    報として文書の利用者情報を前記論理単位グループ保持
    手段に保持された論理単位グループに対応付けることを
    特徴とする請求項14に記載の文書処理装置。
  18. 【請求項18】 前記選択情報対応付け手段により前記
    論理単位グループに対応付けられる選択情報は、バージ
    ョン情報、更新日時情報、利用者情報であり、 前記条件指定手段により指定される選択条件は文書のバ
    ージョンと日時情報と利用者情報を含むものであり、 前記論理単位グループ選択手段は、前記条件指定手段に
    より指定されたバージョン情報に対応する更新日時情報
    以降で、指定された日時情報以前の更新日時情報と対応
    付けられ、且つ、指定された利用者情報に一致する論理
    単位グループを検索する検索手段と、該検索手段による
    検索の結果、複数の論理単位グループが存在した場合に
    いずれか1つの該論理単位グループを選択する選択手段
    と、を有し、 前記論理単位グループ選択手段により選択された論理単
    位グループから構成された文書構造を表示する表示手段
    を有することを特徴とする請求項14に記載の文書処理
    装置。
  19. 【請求項19】 前記選択手段は、前記検索手段による
    検索の結果、論理単位グループが存在しなかった場合
    に、指定されたバージョン情報に一致する論理単位グル
    ープを選択することを特徴とする請求項18に記載の文
    書処理装置。
  20. 【請求項20】 構造化文書の内容の一部分である内容
    単位又は直下の階層の構造を表す参照単位の中から編集
    対象を指定するステップと、 指定した内容単位又は参照単位を編集するステップと、 該編集に対応して、構造化文書を構成する木構造におい
    て兄弟の関係にある全ての内容単位あるいは参照単位か
    ら成る論理単位グループを生成するステップと、を含
    み、 前記参照単位は、該参照単位の直下に位置する一つ以上
    の論理単位グループの集合を表すものであり、更に、 該論理単位グループを選択するための選択情報を入力す
    るステップと、 入力された選択情報と新たに生成された論理単位グルー
    プを関連付けるステップと、 該論理単位グループを前記指定した内容単位あるいは参
    照単位を含む論理単位グループの集合に追加するステッ
    プと、を含むことを特徴とする文書処理方法。
  21. 【請求項21】 文書の内容の一部分である内容単位と
    直下の階層の構造を表す参照単位を有する構造化文書を
    選択するための選択条件を入力するステップと、 前記構造化文書を構成する木構造において兄弟の関係に
    ある全ての内容単位又は参照単位からなる論理単位グル
    ープの中から、入力された選択条件と論理単位グループ
    に対応付けられている選択情報とに基づいて論理単位グ
    ループを選択するステップと、を含み、 前記参照単位は、該参照単位の直下に位置する少なくと
    も一つの論理単位グループの集合を表すものであり、更
    に、 選択された論理単位グループより文書を構成するステッ
    プと、 構成された文書を表示するステップと、を含むことを特
    徴とする文書処理方法。
JP29742596A 1995-10-19 1996-10-18 構造化データ処理装置 Expired - Fee Related JP3783301B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP29742596A JP3783301B2 (ja) 1995-10-19 1996-10-18 構造化データ処理装置
EP97101549A EP0837400A3 (en) 1996-10-18 1997-01-31 Structured data and document processing apparatus and method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7-296154 1995-10-19
JP29615495 1995-10-19
JP29742596A JP3783301B2 (ja) 1995-10-19 1996-10-18 構造化データ処理装置

Publications (2)

Publication Number Publication Date
JPH09171510A true JPH09171510A (ja) 1997-06-30
JP3783301B2 JP3783301B2 (ja) 2006-06-07

Family

ID=26560552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29742596A Expired - Fee Related JP3783301B2 (ja) 1995-10-19 1996-10-18 構造化データ処理装置

Country Status (1)

Country Link
JP (1) JP3783301B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134225A (ja) * 1997-08-28 1999-05-21 Fuji Xerox Co Ltd 情報処理装置
JP2005535042A (ja) * 2002-08-02 2005-11-17 エスアーペー アクチエンゲゼルシャフト クライアント・サーバ通信におけるインクリメントデータを処理する方法およびコンピュータシステム
JP2009211176A (ja) * 2008-02-29 2009-09-17 Canon Inc 情報処理装置、情報処理方法、及び、情報処理プログラム
JP2014056455A (ja) * 2012-09-13 2014-03-27 Konica Minolta Inc 操作制御方法及び操作制御プログラム並びに操作制御装置
US8825696B2 (en) 2009-03-19 2014-09-02 Fujitsu Limited Computer readable storage medium recording database search program, database search device, and database search method
JP2015185101A (ja) * 2014-03-26 2015-10-22 トッパン・フォームズ株式会社 文書ファイル管理システム及び文書ファイル管理方法
JP2015185118A (ja) * 2014-03-26 2015-10-22 トッパン・フォームズ株式会社 文書ファイル管理システム及び文書ファイル管理方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134225A (ja) * 1997-08-28 1999-05-21 Fuji Xerox Co Ltd 情報処理装置
JP2005535042A (ja) * 2002-08-02 2005-11-17 エスアーペー アクチエンゲゼルシャフト クライアント・サーバ通信におけるインクリメントデータを処理する方法およびコンピュータシステム
JP4763286B2 (ja) * 2002-08-02 2011-08-31 エスアーペー アーゲー クライアント・サーバ通信におけるインクリメントデータを処理する方法およびコンピュータシステム
JP2009211176A (ja) * 2008-02-29 2009-09-17 Canon Inc 情報処理装置、情報処理方法、及び、情報処理プログラム
US8825696B2 (en) 2009-03-19 2014-09-02 Fujitsu Limited Computer readable storage medium recording database search program, database search device, and database search method
JP2014056455A (ja) * 2012-09-13 2014-03-27 Konica Minolta Inc 操作制御方法及び操作制御プログラム並びに操作制御装置
JP2015185101A (ja) * 2014-03-26 2015-10-22 トッパン・フォームズ株式会社 文書ファイル管理システム及び文書ファイル管理方法
JP2015185118A (ja) * 2014-03-26 2015-10-22 トッパン・フォームズ株式会社 文書ファイル管理システム及び文書ファイル管理方法

Also Published As

Publication number Publication date
JP3783301B2 (ja) 2006-06-07

Similar Documents

Publication Publication Date Title
Schwabe et al. Systematic hypermedia application design with OOHDM
JP3123025B2 (ja) データ処理システムにおける切貼りフィルタ
JP4141556B2 (ja) 構造化文書管理方法及びその実施装置並びにその処理プログラムを記録した媒体
US20020178184A1 (en) Software system for biological storytelling
US5999182A (en) Computational architecture for reasoning involving extensible graphical representations
US7627583B2 (en) Methods, apparatus and computer programs for visualization and management of data organisation within a data processing system
US20070198952A1 (en) Methods and systems for authoring of a compound document following a hierarchical structure
US20080040690A1 (en) Directory Management Program, Object Display Program, Directory Management Method, And Directory Management Apparatus
JPH11143754A (ja) バージョン情報・構成情報表示方法および装置およびバージョン情報・構成情報表示プログラムを記録したコンピュータ読み取り可能な記録媒体
Creech et al. Using hypertext in selecting reusable software components
JPH1031660A (ja) 情報処理装置
JP3783301B2 (ja) 構造化データ処理装置
US7313761B1 (en) Tree-style hierarchical control with graphical depiction of non-hierarchical interrelationships
JPH05225185A (ja) 文書処理装置
Zhu 5SGraph: A modeling tool for digital libraries
EP1367503A1 (en) Method for displaying and modifying a relational database schema
EP0770963A2 (en) Structured data and document processing apparatus and method
US7359914B2 (en) Reference manager
JPH09282218A (ja) Html文書本型整形方法及びその装置
GB2369460A (en) Knowledge based project management system
EP0837400A2 (en) Structured data and document processing apparatus and method
JP2001134424A (ja) システムパラメタ作成方法、システムパラメタ作成装置、システムパラメタ作成プログラムを記録したコンピュータ読み取り可能な記録媒体及びシステムパラメタ作成データを格納したコンピュータ読み取り可能な記録媒体
JP3557622B2 (ja) データ構造表示装置およびデータ構造表示方法
Xu Improving the usability of an integrated decision support system for design decision making
Costabile et al. Iconit: an environment for design and prototyping of iconic interfaces

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060306

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees