(57)【特許請求の範囲】
【請求項１】
文書内容を含み構成される文書構成要素と該文書構成要素の間を関係づける階層構造を有する文書を管理しまた処理する構造化文書処理装置において、前記階層構造を構成するノードのうち前記階層構造の同じ階層レベルに位置するノードをノードグループとし、該ノードグループに含まれるノードの前記階層構造における順序を記憶するノードグループ管理手段と、前記ノードと前記文書構成要素と該各ノード内における該文書構成要素の順序を記憶する内容管理手段と、前記ノードグループの前記階層構造における階層関係を記憶する論理スタイル管理手段を備えていることを特徴とする構造化文書処理装置。
【請求項２】
前記ノードグループ管理手段は、各々のノードの識別子に対応づけて、該ノードを含むノードグループの識別子と、該ノードの前記階層構造における順序を少なくとも保持することを特徴とする請求項１に記載の構造化文書処理装置。
【請求項３】
前記内容管理手段は、各々の前記文書構成要素に対応づけて、該文書構成要素を含むノードの識別子と、該文書構成要素の前記論理階層構造における順序を少なくとも保持することを特徴とする請求項１または２に記載の構造化文書処理装置。
【請求項４】
前記論理スタイル管理手段に記憶されているノードグループの前記階層構造における階層関係と前記ノードグループ管理手段に記憶されている各々のノードグループ内でのノードの前記階層構造における順序と前記内容管理手段に記憶されている前記文書構成要素と前記文書構成要素が属するノードと該ノードにおける前記文書構成要素の順序から前記階層構造を作成する論理構造生成部を有することを特徴とする請求項１ないし３のいずれか１項に記載の構造化文書処理装置。
【請求項５】
前記論理スタイル管理手段に記憶されているノードグループの階層関係を変更する変更手段を備え、前記論理構造生成部はノードグループの階層関係の変更に応じて前記階層構造を変更することを特徴とする請求項４に記載の構造化文書処理装置。
【請求項６】
文書内容を含み構成される文書構成要素と該文書構成要素の間を関係づける階層構造を有する文書に対して処理を行なう構造化文書処理方法において、前記階層構造を構成するノードのうち前記階層構造の同じ階層レベルに位置するノードをノードグループとし、該ノードグループに含まれるノードの前記階層構造における順序を記憶するとともに、前記ノードと前記文書構成要素と該各ノード内における該文書構成要素の順序をさらに記憶し、これをもとに前記階層構造内の前記文書構成要素の配置位置を決定し、作成された階層構造に前記文書構成要素を配置し、また前記ノードグループの前記階層構造における階層関係を記憶し、記憶している前記ノードグループの階層関係から前記階層構造におけるノードグループの階層関係を決定するステップと、記憶している各々の前記ノードグループの階層関係から同一階層に含まれるノードグループの前記階層構造における配置順序を決定するステップとを再帰的に実行し、前記ノードグループの配置順序と前記ノードグループに含まれるノードの順序から構造化文書の階層構造を作成することを特徴とする構造化文書処理方法。
【請求項７】
文書内容を含み構成される文書構成要素と、該文書構成要素の間を関係づける階層構造を有する文書を蓄積するデータベースシステムにおいて、前記階層構造を構成するノードのうち前記階層構造の同じ階層レベルに位置するノードをノードグループとし該ノードグループに含まれるノードの前記階層構造における順序を記憶するノードグループ管理手段と、前記ノードグループの前記階層構造における順序を記憶する論理スタイル管理手段と、前記文書構成要素と前記文書構成要素が属するノードと前記ノードにおける前記文書構成要素の順序を記憶する内容管理手段を備えていることを特徴とするデータベースシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ上で作成、編集される論理構造を持つ構造化文書を管理し処理する構造化文書処理装置およびデータベースシステム、さらにそのような構造化文書を処理する構造化文書処理方法に関するものである。
【０００２】
【従来の技術】
従来から、コンピュータ上で文書を作成、編集するために様々な文書処理システムが開発されてきた。なかでも、構造化文書処理システムは、文書に章や節といった論理的な構造を設けることによって、例えば、第２章をレベルを下げて第１章中の一つの節にするといった、文書の構造を単位とした編集を可能とし、さらには、例えば、章ごとに新たなページを割り付けるといった章や節単位でのレイアウト処理などを可能とした。
【０００３】
ところで、文書作成時には、その作成する内容を共有する複数の文書が存在する場合がある。例えば、ある製品の開発過程において技術報告書と機能仕様書とは、目的も形式も異なるが、その一部分を共有することは希ではない。また、技術報告書や論文等の長大な文書を作成する場合には、たとえ最終的な完成形がただ一つであったとしても、その作成の過程においては、複数のパートを別々に作成したのちに合成したり、別々に作成されたパートのさらに部分を交換したり、章立てを変更したりといった試行錯誤を行ないながら徐々に完成形に近づけていく過程が存在する。その過程のそれぞれの局面においては、あたかも文書の内容の一部を共有した複数の文書を作成しているのと同様であると考えることができる。
【０００４】
このような、部分を共有した複数の文書を作成していく過程を支援する機能を持った構造化文書処理システムとして、例えば、特開平５−２２５１８５号公報に記載されている文書処理装置がある。この装置においては、システム内に異なる文書ごとに別々の論理構造を持ち、内容部については共有することにより文書内容の共有を図っている。
【０００５】
しかしながら、このシステムにおいては、複数の文書の論理構造をそれぞれ独立した木構造としているために、ある文書内の論理構造の変更は、他の文書に影響を与えることができない。例えば、文書Ａ、文書Ｂともに、「パソコン版」と「ワークステーション版」の節を含む「入力手段」の章を持つ場合に、文書Ａに対して論理構造上「メインフレーム版」の節を加えたときに、文書Ｂ内の「入力手段」の章についても「メインフレーム版」の節が存在することが望まれる。このような修正を行なう場合、ユーザが自ら文書Ｂに対しても文書Ａに対して行なったのと全く同じ作業を行なって、「メインフレーム版」の節を挿入する必要がある。このような重複した作業は、誤りを生じやすく、煩雑であり、ユーザに多大な負担を与える。すなわち、このシステムでは内容の共有のみを実現し論理構造の共有は行なうことができない。
【０００６】
また別のシステムとして、特開平７−４４５６３号公報に記載されているシステムが存在する。このシステムにおいては、論理構造中の内容が相違するノードを多重化することにより、内容の同一の部分を共有化した複数の文書についての編集を実現している。このシステムによれば、共有する部分における重複した作業をなくし、上述の煩雑さを避けることができる。
【０００７】
しかしながら、このシステムにおいて共有できる場合は、その上位の論理構造上も一致する場合に限られている。例えば、「入力手段」の章の下に「パソコン版」の節を持つ文書と、「パソコン版」の章の下に「入力手段」の節を持つ文書とは、それぞれの節に含まれる内容が同じであっても共有するすることができない。章のレベルで異なっているために多重化する必要があり、章のレベルのノードを多重化したためにそれ以下のレベルでの共有が不可能となるからである。すなわち、このシステムでは内容部を含めた論理構造のサブツリーのみについて共有し、上位の構造が一致しない内容については共有することができない。このような問題は、上述の特開平５−２２５１８５号公報に記載されているシステムにおいては生じない。上位の構造がどのようなものであっても任意の内容の共有が可能であるからである。
【０００８】
以上のように従来の技術においては、論理構造の共有の機構と内容の共有の機構が独立していないために、論理構造の共有と内容の共有とを同時に実現することはできない。
【０００９】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、論理構造と内容部ともに複数文書間で共有でき、関連する複数の文書の作成、編集を、効果的にかつ効率的に行なうことができる構造化文書処理装置および構造化文書処理方法、データベースシステムを提供することを目的とするものである。
【００１０】
【課題を解決するための手段】
請求項１に記載の発明は、文書内容を含み構成される文書構成要素と該文書構成要素の間を関係づける階層構造を有する文書を管理しまた処理する構造化文書処理装置において、前記階層構造を構成するノードのうち前記階層構造の同じ階層レベルに位置するノードをノードグループとし、該ノードグループに含まれるノードの前記階層構造における順序を記憶するノードグループ管理手段と、前記ノードと前記文書構成要素と該各ノード内における該文書構成要素の順序を記憶する内容管理手段と、前記ノードグループの前記階層構造における階層関係を記憶する論理スタイル管理手段を備えていることを特徴とするものである。
【００１１】
請求項２に記載の発明は、請求項１に記載の構造化文書処理装置において、前記ノードグループ管理手段は、各々のノードの識別子に対応づけて、該ノードを含むノードグループの識別子と、該ノードの前記階層構造における順序を少なくとも保持することを特徴とするものである。
【００１２】
請求項３に記載の発明は、請求項１または２に記載の構造化文書処理装置において、前記内容管理手段は、各々の前記文書構成要素に対応づけて、該文書構成要素を含むノードの識別子と、該文書構成要素の前記論理階層構造における順序を少なくとも保持することを特徴とするものである。
【００１３】
請求項４に記載の発明は、請求項１ないし３のいずれか１項に記載の構造化文書処理装置において、前記論理スタイル管理手段に記憶されているノードグループの前記階層構造における階層関係と前記ノードグループ管理手段に記憶されている各々のノードグループ内でのノードの前記階層構造における順序と前記内容管理手段に記憶されている前記文書構成要素と前記文書構成要素が属するノードと該ノードにおける前記文書構成要素の順序から前記階層構造を作成する論理構造生成部を有することを特徴とするものである。
【００１４】
請求項５に記載の発明は、請求項４に記載の構造化文書処理装置において、前記論理スタイル管理手段に記憶されているノードグループの階層関係を変更する変更手段を備え、前記論理構造生成部はノードグループの階層関係の変更に応じて前記階層構造を変更することを特徴とするものである。
【００１５】
請求項６に記載の発明は、文書内容を含み構成される文書構成要素と該文書構成要素の間を関係づける階層構造を有する文書に対して処理を行なう構造化文書処理方法において、前記階層構造を構成するノードのうち前記階層構造の同じ階層レベルに位置するノードをノードグループとし、該ノードグループに含まれるノードの前記階層構造における順序を記憶するとともに、前記ノードと前記文書構成要素と該各ノード内における該文書構成要素の順序をさらに記憶し、これをもとに前記階層構造内の前記文書構成要素の配置位置を決定し、作成された階層構造に前記文書構成要素を配置し、また前記ノードグループの前記階層構造における階層関係を記憶し、記憶している前記ノードグループの階層関係から前記階層構造におけるノードグループの階層関係を決定するステップと、記憶している各々の前記ノードグループの階層関係から同一階層に含まれるノードグループの前記階層構造における配置順序を決定するステップとを再帰的に実行し、前記ノードグループの配置順序と前記ノードグループに含まれるノードの順序から構造化文書の階層構造を作成することを特徴とするものである。
【００１６】
請求項７に記載の発明は、文書内容を含み構成される文書構成要素と、該文書構成要素の間を関係づける階層構造を有する文書を蓄積するデータベースシステムにおいて、前記階層構造を構成するノードのうち前記階層構造の同じ階層レベルに位置するノードをノードグループとし該ノードグループに含まれるノードの前記階層構造における順序を記憶するノードグループ管理手段と、前記ノードグループの前記階層構造における順序を記憶する論理スタイル管理手段と、前記文書構成要素と前記文書構成要素が属するノードと前記ノードにおける前記文書構成要素の順序を記憶する内容管理手段を備えていることを特徴とするものである。
【００１９】
【発明の実施の形態】
図１は、本発明の構造化文書処理装置の実施の一形態を示すブロック図である。図中、１はノードグループ編集部、２はノードグループ管理部、３は論理スタイル編集部、４は論理スタイル管理部、５は内容編集部、６は内容管理部、７は論理構造生成部、８は文書割付表示部である。ノードグループ編集部１は、ノードグループおよびノードの作成、編集を行なう。また、ノードグループ管理部２は、ノードグループ編集部１で作成されたノードおよびノードグループの管理を行なう。ここで、ノードグループは、論理構造において同じ階層に含まれるノードをまとめたものである。あるノードグループに属する各ノードは、それぞれの順序が記憶され、管理される。
【００２０】
論理スタイル編集部３は、論理スタイルの作成、編集を行なう。また、論理スタイル管理部４は、論理スタイルの管理を行なう。論理スタイルは、文書の論理構造を示しており、ノードグループの階層関係によって管理される。
【００２１】
内容編集部５は、内容の作成、編集を行なう。また、内容管理部６は、内容の管理を行なう。各内容は、複数のノードと関係づけることができ、その内容が含まれるノードにおいて順序づけられている。
【００２２】
論理構造生成部７は、ノードグループ管理部２によって管理されているノードグループおよびノードと、論理スタイル管理部４によって管理されている論理スタイルと、内容管理部６によって管理されている内容に基づいて、文書の論理構造を生成する。文書割付表示部８は、論理構造生成部７によって生成された文書構造に基づいて文書を表示する。
【００２３】
本発明の構造化文書処理装置の実施の一形態における動作および本発明の構造化文書処理方法の一例について概略を説明する。ユーザは、次の３つの作業を通じてノードグループ管理部２、論理スタイル管理部４、内容管理部６が各々管理するデータ構造を作成、編集する。
（１）ノードグループ編集部１によるノードグループおよびノードの作成、編集
（２）論理スタイル編集部３による論理スタイルの作成、編集
（３）内容編集部５による内容の作成、編集
作成、編集された結果は、それぞれノードグループ管理部２、論理スタイル管理部４、内容管理部６において保持、管理される。
【００２４】
文書の論理構造を生成するにあたり、ユーザは、論理構造生成部７に対して論理スタイル指定する。論理構造生成部７は、論理スタイル管理部４に管理されている論理スタイルのうちの指定された論理スタイル、およびノードグループ管理部２に管理されているノードおよびノードグループ、内容管理部６に管理されている内容の各データに基づいて論理構造を生成する。内容編集部５は、論理構造生成部７によって生成された文書の論理構造を表示し、ユーザは、表示された論理構造上で文書の内容の作成、削除、移動、複写等の編集を行なう。作成、編集された文書の内容は内容管理部６において保持、管理される。また、論理構造生成部７で生成された論理構造に従った文書を文書割付表示部８において割り付け、表示することによって、ユーザは所望の文書を得ることができる。
【００２５】
以下、本発明の構造化文書処理装置の実施の一形態における動作および本発明の構造化文書処理方法の一例について具体例を用いながらさらに詳細に説明する。図２は、作成する文書の版面とその文書構造の一例の説明図である。以下の説明では、具体例として、ユーザは図２（Ａ）に示すような版面の文書Ａを作成するものとする。この文書Ａは、「１  入力手段」の章の下に「１．１  パソコン版」、「１．２  ワークステーション版」の２つの節が設けられ、各節に内容の文章が記述されている。このような構造を木構造として示したものが図２（Ｂ）である。ユーザは、文書Ａの構造として図２（Ｂ）に示すような文書構造を考えているであろう。文書Ａの作成にあたっては、図２（Ｂ）に示すような文書構造を作成し、内容の入力を行なう。
【００２６】
まず、ノードグループ編集部１によるノードグループおよびノードの作成、編集の動作の一例について説明する。ノードグループ編集部１は、ユーザの指示あるいはシステムによる自動生成によってノードグループおよびノードのデータを生成する。生成したノードグループおよびノードは、ノードグループ管理部２において保持、管理される。また、ノードグループ管理部２において保持、管理されているノードグループおよびノードのデータは、ノードグループ編集部１によってユーザに対して提示され、ユーザによる編集を行なうことができる。
【００２７】
図３は、本発明の実施の一形態におけるノードおよびノードグループの入力の具体例の説明図である。ユーザは、図３に示すノードおよびノードグループ編集ウィンドウを用いて、ノードとノードグループを入力する。ノードおよびノードグループ編集ウィンドウは、ノードグループ編集部１に属する。ノードは、論理構造生成部７によって生成される文書の論理オブジェクトとして文書の章や節の単位となる。ノードグループは、ノードの順序集合である。
【００２８】
図３において、ハッチングを施した欄がノードグループ名を入力する領域であり、その下に続く欄がノード名を入力する領域である。図３では、ユーザは、ノードグループ「機能分類」を作成し、それに属するノードとして「入力手段」が入力されている。さらに、ノードグループ「版」を作成し、それに属するノードとしての２つを入力している。ノードとして「パソコン版」、「ワークステーション版」を入力する。＾は入力カーソルを示しており、ノード名として「ワーク」まで入力した時点を示している。図中、下部にはいくつかのボタンが表示されており、ノードグループの追加及び削除、ノードの追加及び削除が可能である。図３においてはノード名の入力中であるので、ノードの追加が選択された状態となっている。
【００２９】
図４は、本発明の実施の一形態における論理スタイルの入力の具体例の説明図である。論理スタイル編集部３はユーザの指示によって論理スタイルのデータを生成し、論理スタイル管理部４において保持、管理される。このようなユーザの指示や、保持、管理される論理スタイルのデータの表示は、例えば、図４に示すような論理スタイル編集ウィンドウを用いて行なうことができる。
【００３０】
文書の論理スタイルを作成する際には、まず、見出し段階を指定する。ノードグループから文書Ａの作成に必要なものを選び、論理構造上、上位に位置するノードを含むノードグループから順に指定し、ノードグループの列を作成し、それを見出し段階とする。見出し階層は、論理構造生成部７によって論理構造が作成されるときに文書の論理構造の階層関係となる。図４において、「機能分類」と「版」の２つのノードグループを「機能分類」を先頭にした列として指定している。このようなノードグループの列に対して名前を付けることができる。図４では論理スタイル名称の領域でこの名前を指定する。ここでは、「機能分類」、「版」の２つのノードグループの列に対して、「文書Ａスタイル」と名付けて登録している。
【００３１】
図５は、本発明の実施の一形態における内容の入力の具体例の説明図である。内容編集部５は、ユーザの指示に従って内容のデータの生成、編集を行ない、内容管理部６で保持、管理する。この内容のデータの生成、編集は、例えば、図５に示すような内容編集ウィンドウを用いることができる。
【００３２】
内容編集ウィンドウにおいて、ユーザは登録されている論理スタイルから、１つを選択する。図５では、「文書Ａスタイル」が選択されている。論理スタイルを選択すると、選択された論理スタイル名が論理構造生成部７に送られる。論理構造生成部７は、指定された論理スタイルに従って、ノードグループ単位でそれぞれのノードが配置された文書の論理構造を生成する。生成した文書の論理構造は、ウィンドウの下部に表示される。ユーザは、生成された論理構造に従って内容を作成していくことができる。図５において、内容編集ウィンドウの点線で囲まれた論理オブジェクトが論理構造上のノードであり、実線で囲まれた各段落が作成された内容である。内容として、図や表であっても問題ない。
【００３３】
このようにして、ノードグループ編集部１、論理スタイル編集部３、内容編集部５によって、ノードグループおよびノード、内容の各データが生成される。図６は、本発明の実施の一形態における処理の具体例で作成された文書のデータ構造の一例の説明図である。ノードグループとしては、図６（Ａ）に示すように、図３に示すノードおよびノードグループ編集ウィンドウにおいて入力された「機能分類」、「版」が登録されている。また、ノードとしては、図６（Ｂ）に示すように、「入力手段」、「パソコン版」、「ワークステーション版」が、それぞれ属するノードグループのＩＤおよびノードグループ内の順序とともに登録されている。ノード「入力手段」はノードグループ「機能分類」に属しており、ノードグループ「機能分類」中の順序は１番である。ノード「パソコン版」、「ワークステーション版」はともにノードグループ「版」に属しており、それぞれの順序は１番、２番である。この図６（Ａ），（Ｂ）に示す表は、ノードグループ管理部２によって管理される。
【００３４】
内容管理部６は、図６（Ｃ）に示すような表を管理する。内容編集部５によって生成、編集された内容は、その内容が属するノードと、そのノードに含まれる内容間の順序関係がわかるように保持される。図６（Ｃ）では、各ノードについて、内容が含まれていればその内容の順序数が保持されている。例えば、「標準入力から文字列として入力を受け付ける。」という内容は、ノード「入力手段」、「パソコン版」、「赤田」に含まれ、それぞれのノードにおける順序は１，１，１である。
【００３５】
論理スタイル管理部４は、図６（Ｄ）に示すように、論理スタイル名と見出し階層を対にして管理する。図６（Ｄ）では、論理スタイル名「文書Ａスタイル」は、ノードグループ「機能分類」の下位にノードグループ「版」が展開されることを示している。
【００３６】
ノードやノードグループは、ユーザが直接指定することなく、システムが自動生成したり、あらかじめデフォルトデータを用意しておくことが可能であり、ノードあるいはノードグループ、論理スタイルを、ユーザが直接指定することなく生成することができる。図６では、ノードグループ「執筆者」は、システムがあらかじめ用意しておいたノードグループの例である。また、ノード「赤田」は、文書Ａの執筆者のユーザＩＤからシステムが、自動生成したものの例である。
【００３７】
内容編集部５は、新しく内容を作成するだけでなく、内容に対する変更、削除、複写、移動の各編集も可能である。図７は、内容編集部５における内容の作成、編集の処理の一例を示すフローチャートである。例えば、図５に示すような論理構造上に配置される内容に変更があった場合、図７に示すような処理によって内容管理データの登録、更新が行なわれる。まず、Ｓ１１において、文書根をすでに選んだ論理オブジェクトとする。Ｓ１２において、まだ選ばれていない論理構造中の論理オブジェクト（ただし、内容論理オブジェクトは除く）が存在するか否かを判定し、存在する場合には、Ｓ１３において、内容論理オブジェクトを除く論理構造中の論理オブジェクトから、親論理オブジェクトがすでに選ばれた論理オブジェクトであって、自身はまだ選ばれていない論理オブジェクトを１つを選ぶ。
【００３８】
Ｓ１４で変数ｎを１にセットした後、Ｓ１５において、選ばれた論理オブジェクトの子孫の論理オブジェクトとして配置されているすべての内容のうち、まだ選ばれてないものが存在するか否かを判定する。存在する場合には、Ｓ１６において、選ばれた論理オブジェクトの子孫の論理オブジェクトとして配置されているすべての内容のうち、まだ選ばれていない内容を論理構造上の順序に従って順に１つ選ぶ。選ばれた内容は、選ばれた論理オブジェクトに属しており、Ｓ１８において論理オブジェクト内の順序としてｎを登録する。Ｓ１８において変数ｎを１増加させ、Ｓ１５へ戻る。このようにして、選ばれた論理オブジェクトの子孫の論理オブジェクトとして配置されているすべての内容について、順序数を付与することができる。
【００３９】
Ｓ１５において、選ばれた論理オブジェクトの子孫の論理オブジェクトとして配置されている内容がすべて選択された場合には、次の論理オブジェクトについての処理を行なうべく、Ｓ１２へ戻る。内容論理オブジェクトを除くすべての論理オブジェクトについて、処理が終了した時点でこの処理は終了する。このようにして、例えば、内容が追加されたり削除された場合でも、新たな順序が付与されて、各論理オブジェクトにおける順序が保たれる。そのため、各ノードにおける内容の順序は保たれ、生成された文書において矛盾が生じないようになっている。
【００４０】
次に、論理構造生成部７において行なわれる、ノードグループ管理部２、論理スタイル管理部４、内容管理部６に保持されている各論理構造データから文書の論理構造を生成し、文書を生成する処理について説明する。この処理は、次の４つの処理によって実現される。
Ａ）  論理スタイル管理部に管理されている論理スタイルからユーザが１つ指定する。
Ｂ）  指定された論理スタイルに従ってノードを配置して文書の論理構造を生成する。
Ｃ）  Ｂ）で生成された論理構造に内容を配置する。
Ｄ）  文書を表示する。
例えば、図６に示した各データをもとに、ユーザによって指定された論理スタイルを用いて図２（Ｂ）に示すような文書の論理構造を作成し、文書割付表示部８で文書の論理構造に内容を割り付けて図２（Ａ）に示すような文書を作成して表示する。上述の内容編集部５においてユーザに提示される文書の論理構造も、表示形態は違うが、同様の処理によって行なわれる。
【００４１】
図８は、論理構造生成部における文書の論理構造の生成処理の一例を示すフローチャートである。まずＳ２１において、文書根だけからなる論理構造を作成し、カレントポジションを根とする。Ｓ２２において、論理スタイル中の見出し階層に使用していないノードグループが残っているか否かを判定し、残っている場合には、Ｓ２３において、論理スタイル中の見出し階層の上位から順にノードグループを選ぶ。
【００４２】
Ｓ２４において、選ばれているノードグループに属するノード以外のノードであって、論理構造中の論理オブジェクトとしてリーフの位置のもの、すなわち下位のオブジェクトを持たないものが存在するか否かを判定する。存在する場合には、Ｓ２５において、選ばれているノードグループに属するノード以外の論理構造中の論理オブジェクトであって、現在リーフの位置のものを１つ選び、カレントポジションとする。
【００４３】
Ｓ２６において、ノードグループ内にまだ選んでいないノードがあるか否かを判定し、まだ選んでいないノードがある場合には、Ｓ２７において、そのうちで最上位のノードを選ぶ。Ｓ２８において、選ばれたノードをカレントポジションの末子の論理オブジェクトとして木構造上に配置する。このときカレントポジションがリーフであればその長子になる。Ｓ２６〜Ｓ２８の処理によって、選択されているノードグループに含まれるノードがカレントポジションの下位に配置されることになる。このようにして、下位のオブジェクトを持たないノードについて、ノードグループ内のノードを展開した後、Ｓ２４に戻り、ノードの展開を行なうべき他のノードを選択して展開を行なう。
【００４４】
１つのノードグループについて展開が終了すると、Ｓ２２へ戻り、見出し階層の次のノードグループについて、同様に展開を行なう。このとき、前のノードグループについて展開された木構造をもとに展開を行なうので、見出し階層の上下の関係が生成されることになる。すべての見出し階層のノードグループについて展開を行なえば、指定された論理スタイル名に対応する文書の論理構造が生成される。
【００４５】
上述の具体例では、Ｓ２１で論理根のみの論理構造を作成し、論理根をカレントポジションとする。そして、ノードグループ「機能分類」を選択し、論理根の下位にノードグループ「機能分類」に含まれるノード「入力手段」を展開する。その後、次のノードグループ「版」を選択し、ノード「入力手段」の下位にノードグループ「版」に含まれるノード「パソコン版」、「ワークステーション版」を展開する。これにより、図２（Ｂ）において文書根と見出しからなる文書の論理構造が生成される。
【００４６】
図９は、文書割付表示部８における内容の配置の処理の一例を示すフローチャートである。文書割付表示部８は、論理構造生成部７で生成された木構造の各ノードの属する内容をその木構造のリーフとして付加していく。その時、以下の条件を満たす。
（１）あるノードに属する内容は、そのノード以下のサブツリー内のいずれかのノードに対してリーフとして配置される。
（２）サブツリー内に配置される内容の、そのサブツリー内での登場順序は、内容管理部に管理されている情報に従う。
（３）条件（１）、（２）は、再起的にすべてのノードに対して働く。
内容がリーフとして配置されていないノードのみから成るサブツリーを削除する。
【００４７】
図９において、まず、Ｓ３１において、内容管理部６が管理する全ての内容を論理構造の文書根の子として配置し、Ｓ３２において、文書根をすでに選んだ論理オブジェクトとする。
【００４８】
Ｓ３３において、まだ選ばれていない論理オブジェクト（ただし、内容オブジェクトは除く）が存在するか否かを判定し、存在する場合にはＳ３４において、内容オブジェクトを除く論理構造中の論理オブジェクトから、親論理オブジェクトがすでに選ばれた論理オブジェクトであって、自身はまだ選ばれていない論理オブジェクトを１つを選ぶ。
【００４９】
Ｓ３５において、選ばれた論理オブジェクトの親論理オブジェクトに対して子として配置されている内容のうち、まだ選ばれていないものが存在するか否かを判定する。存在する場合には、Ｓ３６において、選ばれた論理オブジェクトの親論理オブジェクトに対して子として配置されている内容のうち、まだ選ばれていない内容を１つ選ぶ。Ｓ３７において、もし、選ばれた内容の選ばれた論理オブジェクトに対応するノードのノード内順序が指定されている、すなわち、選ばれた内容が、選ばれたノードに属する場合には、Ｓ３８において、選ばれた内容の配置を親論理オブジェクトの子から、選ばれた論理オブジェクトの子に変更する。そして、Ｓ３９において、選ばれた論理オブジェクトの子である内容を対応するノードのノード内順序のデータに従ってソートする。このＳ３５〜Ｓ３９の処理によって、内容が１つ下の階層に分化される。
【００５０】
このようにして、Ｓ３４で選択された論理オブジェクトについて、選択された論理オブジェクトに含まれるべき内容がＳ３５〜Ｓ３９において分化されてゆき、最終的に内容が最下層のリーフとなるように木構造が変化する。これにより、内容の配置された文書構造が生成されたことになる。なお、使用されない内容は文書根に接続されたままであるので、これらは削除すればよい。あるいは、見出し階層に含まれるノードグループのいずれかのノードに含まれる内容のみを最初に文書根の下位に配置するように構成してもよい。
【００５１】
具体的には、図２（Ｂ）に示す文書構造のうち、文書根と見出しの階層のみからなる文書構造が生成された後、まず、内容が文書根に配置される。この例では、２つの内容が文書根に配置される。このうち、ノード「入力手段」に含まれる内容がノード「入力手段」の子に変更される。ここでは２つの内容とも、ノード「入力手段」の子となる。次にノード「パソコン版」に含まれる内容「標準入力から・・・」がノード「パソコン版」の子に変更され、内容「マウスによる・・・」がノード「ワークステーション版」の子に変更される。これによって、各内容が割り付けられ、図２に示すような文書構造が生成される。その後、別途与えられるレイアウト情報などを用いてレイアウトすることによって、図２（Ａ）に示すような文書が生成され、表示される。
【００５２】
図１０は、本発明の実施の一形態における処理の具体例で作成する文書の別の例の説明図である。いま、図６に示すような各データがノードグループ管理部２、論理スタイル管理部４、内容管理部６に保持されている状態から、図１０（Ａ）に示すような文書Ｂを作成しようとする。この文書Ｂは、図２（Ａ）に示した文書Ａと内容は同じであり、章立てのみが異なる。本発明では、このような文書の作成は非常に簡単である。
【００５３】
図１１は、本発明の実施の一形態における論理スタイルの入力の別の具体例の説明図である。まず、見出し階層の異なる「文書Ｂスタイル」を登録する。ここで、見出し階層は、「版」→「機能分類」である。このような論理スタイルの登録後、ユーザは論理構造生成部７に対して「文書Ｂスタイル」を選択するだけで、図１０（Ｂ）に示す文書構造が作成され、図１０（Ａ）に示すような文書が生成され、表示される。このように、内容の変更を行なわずに、構造の異なる文書の作成や、構造の変更を容易に行なうことができる。
【００５４】
また、内容編集部５において、文書Ａの内容を変更したとする。すると、文書Ｂにおいても、文書Ａと同じ内容を参照して文書が生成されるので、文書Ａにおける内容の変更をそのまま文書Ｂに反映することができる。このように、論理構造の異なる文書間で内容を共有し、内容の変更を他の文書にも反映させることが可能である。
【００５５】
さらに、例えば、図３に示したノードの入力の際に、ノードグループ「機能分類」に含まれるノードとして「入力手段」のほかに「出力手段」を登録しておくと、「入力手段」の章と「出力手段」の章がともに「パソコン版」「ワークステーション版」という節を持つ。このとき、ノードグループ「版」に含まれるノードとして例えば「メインフレーム版」を追加するだけで、両方の章に「メインフレーム版」の節を追加することができる。これにより、文書を編集する際に、従来の構造化文書編集装置では不可能であった、木構造上、同じサブツリーに属さない部分の統一的な編集を可能とすることができる。
【００５６】
このように、既存の内容を用いて異なる構造の文書を容易に作成することができる。例えば、図６に示す各データをデータベース化しておけば、既存の文書の「部品」を用いて簡単に文書を作成することができるようになる。データベース化する際には、ノードグループ管理部２、論理スタイル管理部４、内容管理部６のそれぞれをデータベースとしたり、あるいはこの内の２つを１つのデータベースにしたり、さらには図６に示す全データを１つのデータベースとしてもよい。例えば、１つのデータベースに統合した場合、そのデータベースの管理部は、ノードグループ管理部２、論理スタイル管理部４、内容管理部６の機能を合わせ持つことになる。
【００５７】
なお、上述の説明では、文書の論理構造は図２（Ｂ）に示すような文書の見かけ上の構造であるものとして説明した。実際に計算機において実現する場合には、例えばＯＤＡやＳＧＭＬといった計算機上での文書の論理構造を示すための表現形式を用いてもよい。装置内での表現形式は任意であって、大まかには互いに変換可能である。したがって、装置内のデータすべてについてこれらの表現形式に従う必要はなく、例えば生成して出力する文書のみ、これらの表示形式を用いるように構成してもよい。
【００５８】
【発明の効果】
以上の説明から明らかなように、本発明によれば、論理構造と内容部ともに複数文書間で共有することが可能となり、関連する複数の文書の作成および編集を、効果的にかつ効率的に行なうことができる。また、それらの文書の内容の更新、維持管理の負荷を軽減することができる。さらに、論理スタイルを変更することにより、文書の論理構造を直接編集することなく、文書の論理構造を変換することができる。それにより、文書の論理構造の変換が、大幅に効率化される。
【００５９】
また、文書を編集する際に、従来の構造化文書編集装置では不可能であった、木構造上、同じサブツリーに属さない部分の統一的な編集が可能となったので、構造化文書の編集効率を向上することができるという効果がある。
【図面の簡単な説明】
【図１】本発明の構造化文書処理装置の実施の一形態を示すブロック図である。
【図２】作成する文書の版面とその文書構造の一例の説明図である。
【図３】本発明の実施の一形態におけるノードおよびノードグループの入力の具体例の説明図である。
【図４】本発明の実施の一形態における論理スタイルの入力の具体例の説明図である。
【図５】本発明の実施の一形態における内容の入力の具体例の説明図である。
【図６】本発明の実施の一形態における処理の具体例で作成された文書のデータ構造の一例の説明図である。
【図７】内容編集部における内容の作成、編集の処理の一例を示すフローチャートである。
【図８】論理構造生成部における文書の論理構造の生成処理の一例を示すフローチャートである。
【図９】文書割付表示部における内容の配置の処理の一例を示すフローチャートである。
【図１０】本発明の実施の一形態における処理の具体例で作成する文書の別の例の説明図である。
【図１１】本発明の実施の一形態における論理スタイルの入力の別の具体例の説明図である。
【符号の説明】
１…ノードグループ編集部、２…ノードグループ管理部、３…論理スタイル編集部、４…論理スタイル管理部、５…内容編集部、６…内容管理部、７…論理構造生成部、８…文書割付表示部。
【図１】
0003601183.tif 000002
【図２】
0003601183.tif 000003
【図３】
0003601183.tif 000004
【図４】
0003601183.tif 000005
【図５】
0003601183.tif 000006
【図６】
0003601183.tif 000007
【図７】
0003601183.tif 000008
【図８】
0003601183.tif 000009
【図９】
0003601183.tif 000010
【図１０】
0003601183.tif 000011
【図１１】
0003601183.tif 000012