(57)【特許請求の範囲】
【請求項１】
所定の構成単位を関係づけて構成した文書構造を処理する装置において、
構成単位が文書の論理的なまとまりである論理単位であって、論理単位間の参照関係を規定する参照単位によって論理単位を関連づけた文書構造を管理する文書管理手段と、
利用者の指示に従って論理単位中の参照単位を特定し、その参照する論理単位を選択する論理単位選択手段、および選択された論理単位を表示する論理単位表示手段を備えた論理単位の参照を行なう論理単位参照手段と、
論理単位の参照の履歴を、参照された論理単位と、その参照時に他の候補となっていた参照単位を関連づけた木構造として管理する履歴木構造管理手段を具備することを特徴とするネットワーク型文書処理装置。
【請求項２】
所定の構成単位を関係づけて構成した文書構造を処理する装
置において、
構成単位が文書の論理的なまとまりである論理単位であって、論理単位間の参照関係を規定する参照単位によって論理単位を関連づけた文書構造を管理する文書管理手段と、
文書構造から二次的に定義された木構造を管理する二次的木構造管理手段と、二次的木構造を文書構造あるいは、他の二次的木構造と関連づけて表示する二次的木構造表示手段と
を具備することを特徴とするネットワーク型文書処理装置。
【請求項３】
複数の二次的木構造に係わる状態の組合せを、論理単位あるいは参照関係の表示規則に対応づけ、
二次的木構造表示手段が、文書構造の表示において、表示規則を適用することによって、
複数の二次的木構造と文書構造を関連づけて表示することを特徴とする請求項２記載のネットワーク型文書処理装置。
【請求項４】
二次的木構造が、割り付け対象木構造、あるいは表示対象木構造、あるいは履歴木構造、あるいはそれらの任意の組合せであることを特徴とする請求項３記載の文書構造処理装置。
【請求項５】
構成単位が文書の論理的なまとまりである論理単位であって、論理単位間の参照関係を規定する参照単位によって論理単位を関連づけた文書構造を管理する文書管理手段と、  利用者の指示に従って論理単位中の参照単位を特定し、その参照する論理単位を選択する論理単位選択手段、および選択された論理単位を表示する論理単位表示手段を備えた論理単位の参照を行なう論理単位参照手段と、  論理単位の参照の履歴を、参照された論理単位と、その参照時に他の候補となっていた参照単位を関連づけた木構造として管理する履歴木構造管理手段を具備するネットワーク型文書処理装置による文書処理方法であって、利用者の指示に従って論理単位中の参照単位を特定し、その参照する論理単位を選択するステップ（Ｓ１１１０）と、
前記選択された論理単位を表示するステップ  （Ｓ１１１１）  と、
前記参照単位により履歴木を探索し、対応する履歴ノードがあるか否かを調べ、履歴ノードがないときに前記参照単位に対応する履歴ノードを新しく生成し、履歴ノードの対応参照単位の欄に選択された前記参照単位へのポインタを格納し、その参照単位の参照する論理単位中にある参照単位のリストを履歴ノードにおける候補参照単位のリストとして格納するステップ（Ｓ１２０，Ｓ１２１）と、
参照中のカレントの論理単位に対応する履歴ノードを選択し、選択した履歴ノードの候補参照単位から対応する参照単位を削除するするステップ（Ｓ１２３，Ｓ１２４）  と、
履歴ノードの子履歴ノードリストに、前記新しく生成した履歴ノードを加えるステップ（Ｓ１２５）と
を有することを特徴とする文書処理方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、二次的に定義される木構造を用いてネットワーク型文書の処理、出力を行なうネットワーク型文書処理装置および同装置による文書処理方法に関する。
【０００２】
【従来の技術】
文書構造として、文書の論理単位を参照関係によって関連づけたネットワーク構造を扱う文書編集装置に関わる従来技術には、ハイパーテキストと呼ばれる技術がある。
ハイパーテキスト技術は、例えば、
文献「Ｊａｋｏｂ  Ｎｉｅｌｓｅｎ，  Ｈｙｐｅｒｔｅｘｔ  ＆  Ｈｙｐｅｒｍｅｄｉａ，  ＨＢＪ出版局，  １９９１」
に示されている。
【０００３】
（ａ）  参照履歴に関する従来技術
上記のような従来の技術において、ハイパーテキストを探索しているときに、（１）  どのようにしてそのノードにたどりついたのか思い出せない。
（２）  少し前に見たノードにどのようにして戻れば良いのかわからない。
などの問題が生じることが指摘されてきた。これらの問題は迷子問題と総称されるものである。
これらの問題を解決するために参照履歴を保持し利用者に提示する装置が発明されるに至った。前記文献のｐ．２７ならびにＰ１２９−１３０に、２つの従来技術が記載されている。これらを簡単に説明する。
【０００４】
一つは参照したノードの名前を時間順にリストにして表示するものである。表示された名前をポインティングデバイスによって選択することにより、以前に参照したノードに戻ることができる。
【０００５】
二つめは、それまでに参照して、表示したノードの表示画像を時間順に並べて縮小表示するものである。この例でも縮小表示をポインティングデバイスによって選択することで、以前に参照したノードに戻ることができる。
【０００６】
このように、従来技術では履歴を時間順に並べて表示し、その表示から以前に参照したノードに戻る手段を提供することによって、上述の問題の解決を図っている。
ところが、なぜ以前に参照したノードに戻る必要があるのかを考察すると、従来技術は満足できる解決方法ではないことがわかる。すなわち、以前に参照したノードに戻る必要が生じるのは、それまでの探索の道筋の中で、選択しなかった別のノードの候補を調べ、場合によっては探索をやり直すためであることが多い。このような目的のために、以前に参照したノードに戻るのであれば、必要なのは、ノードにたどりつくまでの時間的な順序ではなく、どのような候補を選択してノードにたどりついたのかの、探索作業の経過である。
しかしながら、従来技術ではノードにたどりついた時間的な順序は示されるが、探索作業の経過は示されない。例えば、図４（ａ）〜１０（ａ）に示す探索によって、同各図の（ｃ）のような時間に沿った参照順序の表示が得られるが、探索作業の経過を表現するためには有用なリストではない。
【０００７】
（ｂ）  割り付け処理に関する従来技術
文書の論理単位を関連づけた文書構造を扱う文書処理装置においては、文書をハードコピーや画面上に表示するために、割り付け処理と呼ばれる処理が必要である。従来技術において、例えば図１８に示される木構造型の構造に対して、割り付け処理を行なうことによって図１９に示される割り付け結果を得ることができる。このような木構造型の論理構造は構造化文書と呼ばれる従来技術で扱われるものである。構造化文書においては、非常に高度な割り付け結果を得ることが可能である。
【０００８】
例えば、特開平３−１４７０５９号公報では、構造化文書の国際規格であるＯＤＡにおける割り付け処理技術を開示している。この従来技術においては、文書全体の割り付け結果を制御するためにＯＤＡが定めている、共通割り付け構造と呼ばれる文書の割り付けテンプレートの記述に沿った処理を行なう。共通割り付け構造は、繰り返しや選択などを含む非常に高度なテンプレートの記述が可能である。
【０００９】
さらに、文献「Ｍａｋｏｔｏ  Ｍｕｒａｔａ  ａｎｄ  Ｋｏｉｃｈｉ  Ｈａｙａｓｈｉ，  Ｆｏｒｍａｔｔｅｒ  Ｈｉｅｒａｒｃｈｙ  ｆｏｒ  Ｓｔｒｕｃｔｕｒｅｄ  Ｄｏｃｕｍｅｎｔｓ，  ＥＰ９２，  Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ，  １９９２」（特願平３−２００９８７号）に記載された従来技術は、部分割り付け処理と部分割り付けテンプレートを用いて、文書を割り付けるものである。この従来技術はそれ以前の技術で行なわれていた、一つの複雑なプログラムと複雑なテンプレートを用いて全体の文書を割り付けるのではなく、単純な小さなプログラムと単純で小さなテンプレートを階層的に組み合わせて割り付け処理を実現するものである。この手法でもＯＤＡの共通割り付け構造と同様の割り付け結果を得ることができる。
【００１０】
図１８の構造を持つ文書は、一例として図２０のように表現することができる。この図において論理単位が矢印で示されるストリームとして表される。ストリームは文字などの基本単位の並びであり、基本単位には参照単位が含まれる。矩形に囲まれた名前は参照単位を示しており、ストリームの特定の位置から他の論理単位であるストリームを参照する。このようにして、木構造型の論理構造は、階層化したストリームとして表現される。
【００１１】
部分割り付け手段はプログラムである。このプログラムを実行するものをフォーマッタと呼ぶ。フォーマッタは実行中のサブルーチン、または並列実行をするプロセス、またはオブジェクト指向言語におけるオブジェクト等の形態として実現される。
フォーマッタは一つのストリームを割り付ける役割を持つ。図２１に示すフォーマッタ階層構造を形成することで、部分的な割り付け結果を交換しながら全体の論理構造を割り付けることができる。
【００１２】
前記従来技術の割り付けアルゴリズムの概略を図４２に示す。これは、後述するように本実施例における一部分として採用されているものである。図２２、図２３によってその割り付け処理の一過程を示す。フォーマッタはそれぞれ、部分割り付けテンプレートを参照し、そこに記述されている規則に従って割り付け処理を行なう。
この例では、例えば次の規則を持つテンプレートを参照している。
フォーマッタ１は、
（１）ラベルの文字列を大きなフォントで中央揃えで流し込む。
（２）残った領域から上下左右のマージンを減じた領域を、ストリーム中の基本要素あるいは下位フォーマッタの割り付け結果を流し込む領域として確保する。
フォーマッタ２ならびに３は、
（１）ラベルの文字列を小さなフォントで左揃えで流し込む。
（２）残った領域から上下左右のマージンを減じた領域を、ストリーム中の基本要素あるいは下位フォーマッタの割り付け結果を流し込む領域として確保する。
【００１３】
ところで、計算機上で扱える文書の構造は木構造に限られるものではない。もっと一般的なネットワーク構造の論理構造を扱うことができる。ネットワーク構造は木構造と比較して、より自由な表現ができるが、扱いはより困難になる。
図２４にネットワーク構造の簡単な例を示す。この構造はループを形成しているので木構造ではない。この構造はディスプレイ上で図２５のように表示して、参照、編集を行なうことができる。しかしながら、従来の高度な割り付け処理は木構造を対象にしているため、このままで割り付け処理を適用することはできない。
【００１４】
そこで、文書構造を探索において、ループを検出したときにそれ以上の探索をやめることによって、ネットワーク構造中の部分木構造を抽出し、その構造に対して割り付け処理する手法が案出されるに至った。この手法は、例えば、特開昭６３−１６５９６８号公報、特開平４−１７１５７５号公報に開示されている。この手法によって図２４のネットワーク構造から得られる部分木構造は、例えば図２６に示すものとなる。この例は、深さ優先の探索手順で、既に探索されたかどうかでループを検出した結果である。探索手順とループの検出手法にはいくつかの種類があり、それらの変更によって、異なる部分木構造が得られる。いずれにしても、従来技術の手法では、探索を開始するノードを選択すれば、決められたメカニズムに従って一つの部分木構造が抽出される。
【００１５】
しかしながら、本来複数の木構造が抽出される可能性がある構造から、計算機が勝手にひとつの木構造を選択するために、必ずしも利用者が望む部分木構造が割り付けられるわけではなかった。
また、従来の構造化文書において実現されている割り付けテンプレートを用いた高度な割り付け処理の適用ができない。前もってどのような木構造が抽出されるかがわからないために、利用者が適切な割り付けテンプレートを定義しておくことができないからである。
【００１６】
（ｃ）  構造の表示に関する従来技術
文書の論理単位を相互に関連付けた文書構造を扱う装置では、文書構造および論理単位を表示・編集する手段が設けられている。非常に単純な場合を除き、一度に文書構造の持つすべての情報を表示・編集することはできない。そのため、ある着眼点で情報を整理して表示・編集する手段や、部分構造を表示・編集する手段が用いられる。
【００１７】
前者の手段には、例えば、ブラウザと呼ばれる装置があり、論理単位の参照関係を整理して表示する（例えば、特開平４−４０５５９号公報）。この装置を用いることにより、文書構造の全体像を理解しやすくなる。しかし、この装置においては、内容中のどの位置から参照が行われているかは表示できない。また、この装置でネットワーク構造を表示することは困難である。
【００１８】
後者の手段には、例えば、カード型のインタフェースを用いた装置がある。この装置では一つのウィンドウが一つの論理単位に対応し、内容と内容中に埋めこまれた参照単位を表示する。この装置では内容と参照単位の関係は明確に表せる。この装置にはネットワーク構造の表示が可能であるという長所もある。例えば、図４９（ａ）のようなネットワーク構造を図４９（ｂ）（ｃ）（ｄ）のように、カード型のインタフェイスを用いて自由に探索することができる。しかし、この方式では、一つのウィンドウに表示できる論理単位は一つだけで、参照関係は深さ１しか表現できない。このため、利用者が複雑なネットワーク構造の全体像を理解することは困難である。
【００１９】
このことから、内容と関連づけたまま、任意の深さで構造を表示できる手段が必要とされてきた。この一つとして、アウトラインエディタと呼ばれる装置が発明されている（特開平３−１４８７５４号公報）。例えば、図５０（ａ）のような構造を図５１に示すように、内容と関連づけたまま、任意の深さで構造を表示できる。（ａ）（ｂ）（ｃ）（ｄ）においてそれぞれ、参照単位を示すアイコンをポインティング・デバイスで選択し、図５０（ｂ）に示すようなメニューから「開く」「閉じる」を指示することで、任意の部分木構造を表示できる。さらに、「すべてを開く」を指示して、下位構造のすべてを表示することが簡便に行うことができる。論理単位の表示を行う矩形領域をそれぞれウィンドウであると考えると、アウトラインエディタではウィンドウの階層構造によって文書の部分構造を表示しているのである。
しかしながら、アウトラインエディタは文書の構造を木構造に限定しているため、そのままネットワーク構造に適用することはてをきない。例えば、ループがある場合に「すべてを開く」操作を実行できない。
【００２０】
【発明が解決しようとする課題】
従来、ネットワーク構造から二次的に単純な構造を生成し、ネットワーク構造の扱いを簡単にすることが行なわれていた。構造そのもの、あるいは、構造の生成方法、あるいは構造の管理方法が単純すぎたので、必要な情報の表現や、割り付け処理や、ウィンドウの適切な階層表示などが困難であった。
本発明はこの問題を解決するために、二次的な構造として木構造を適切に生成し、管理するネットワーク型文書処理装置を提供することを目的とする。
【００２１】
また、本発明は二次的な木構造を利用者に判り易く表示し、利用者によるネットワーク型文書の操作を簡便にすることができるネットワーク型文書処理装置を提供することを目的とする。
【００２２】
前述の参照履歴に関する従来技術の前記問題の解決には、どのような候補を選択してノードにたどりついたのかの、探索作業の経過を明らかにすることが重要である。しかしながら、従来技術ではノードにたどりついた時間的な順序は示されるが、探索作業の経過は示されない。
本発明はかかる問題点を解決し、探索作業の経過を表現することのできる文書処理装置を得ることを目的とする。これは、本発明によれば、参照の履歴を、深さ方向で参照順序を示し、幅方向でノード候補を示すような木構造として管理し、利用者に提示することによって達成される。
【００２３】
従来のネットワーク構造に対する割り付け処理技術においては、前述のように、本来複数の木構造が抽出される可能性がある構造から、計算機が勝手にひとつの木構造を選択するために、必ずしも利用者が望む部分木構造が割り付けられるわけではなく、また、従来の構造化文書において実現されている割り付けテンプレートを用いた高度な割り付け処理の適用ができなかった。
本発明はかかる問題点を解決し、ネットワーク構造の必要な部分を選択して割り付け処理することのできる文書処理装置を得ることを目的とする。これは、本発明によれば利用者からの指示によってネットワーク構造の構成要素から、木構造を生成する手段を設け、生成された木構造に対して割り付け処理を適用することによって、達成される。
【００２４】
ウィンドウの階層構造はデータの部分的な構造を反映し、かつ、その構造を用いて操作を可能にする二次的な構造の一つである。しかしながら、従来のウィンドウの階層構造を生成する手法は、木構造の表示を行うためのものであって、ネットワーク構造にとって適切なものではなかった。
本発明は、ネットワーク構造中の任意の部分木構造を表示するウィンドウ階層の生成・管理を行うことのできるネットワーク型文書処理装置を得ることを目的とする。
【００２５】
また、本発明は、複数の二次的木構造を明確に関連づけ、すべての構造を一元的に表現し、同時に表示することのできるネットワーク型文書処理装置を得ることを目的とする。
【００２６】
【課題を解決するための手段および作用】
本発明のネットワーク型文書処理装置は、ネットワーク構造から二次的な構造として木構造を定義し、その木構造を用いて処理を行なう。従来、ネットワーク構造から二次的に単純な構造を生成し、ネットワーク構造の扱いを簡単にすることは行なわれていたが、構造そのもの、あるいはその生成方法、あるいはその管理方法が単純すぎたために、必要な情報の表現や、割り付け処理や、ウィンドウの適切な階層表示などが困難であった。本発明によりこれらの問題点を解決できる。
【００２７】
本発明（請求項１）のネットワーク型文書処理装置は、文書構造を管理する文書管理手段（図１の１１、図２の２２）と論理単位の参照を行なう論理単位参照手段（図１の１２、図２の２４）と、論理単位の参照の履歴を、参照された論理単位と、その参照時に他の候補となっていた参照単位を関連づけた木構造として管理する履歴木構造管理手段（図１の１３、図２の２５）を備えている。文書構造は所定の構成単位を関係付けて構成されている。文書構造の構成単位は文書の論理的なまとまりである論理単位であり、構成単位の関係付けは論理単位間の参照関係を規定する参照単位によって行なわれる。論理単位参照手段は、利用者の指示に従って論理単位中の参照単位を特定し、その参照する論理単位を選択する論理単位選択手段（図２の２４１）と、選択された論理単位を表示する論理単位表示手段（図２の２４２）とからなっている。
なお、本明細書において、参照単位とは、論理単位から他の論理単位を参照するための指標となる論理単位の要素であり、論理単位は、例えば文書における章、段落など文書中の論理的なまとまりを表すものである。
【００２９】
従来の履歴のリストも二次的な構造の一つであるが、構造が単純すぎるために履歴の管理に必要な情報のすべてを表現することができなかった。本発明では履歴を木構造で表現することによって、作業の経過の履歴を表現することを可能にしたものである。
【００３４】
本発明（請求項２）のネットワーク型文書処理装置は、所定の構成単位を関係づけて構成した文書構造を処理する装置において、構成単位が文書の論理的なまとまりである論理単位であって、論理単位間の参照関係を規定する参照単位によって論理単位を関連づけた文書構造を管理する文書管理手段（図６０の６０１、図６１の６１２）と、文書構造から二次的に定義された木構造を管理する二次的木構造管理手段（図６０の６０３、図６１の６１５）と、二次的木構造を文書構造あるいは、他の二次的木構造と関連づけて表示する二次的木構造表示手段（図６０の６０２、図６１の６１６）とを具備する。本発明によれば、二次的木構造を文書構造や他の二次的木構造と関連づけて管理・表示するので、各木構造の状態を一元的に把握することが可能である。
【００３５】
本発明（請求項３）のネットワーク型文書処理装置は、前記発明（請求項２）において、複数の二次的木構造に係わる状態の組合せを、論理単位あるいは参照関係の表示規則に対応づけ、二次的木構造表示手段が、文書構造の表示において、表示規則を適用することによって、複数の二次的木構造と文書構造を関連づけて表示する。なお、二次的木構造としては、割り付け対象木構造（フォーマッタ木）、表示対象木構造（ウィンドウ木）、あるいは履歴木構造（ヒストリ木）、あるいはそれらの任意の組合せがある（請求項４）。
【００３６】
【実施例】
（第１の実施例）
第１の実施例によるネットワーク型文書処理装置の構成を図２に示す。
本実施例は、ネットワーク型文書において、利用者がネットワーク構造に沿って作業を進めて行くときに、ノードの参照の経過（履歴）を表す木構造を対話的に作成、表示するものである。その履歴を表す木構造をヒストリ木と呼ぶ。ヒストリ木はヒストリノードによって構成される。ネットワーク型文書のデータ構造から二次的な木構造を生成するために、本実施例では、構成単位が文書の論理的なまとまりである論理単位であって論理単位間の参照関係を規定する参照単位によって論理単位を関連づけた文書構造を用いる。その論理単位をフィールド、参照単位をアンカーと呼ぶ。さらに、論理単位を構成する文字などの基本単位をプリミティブと呼ぶ。プリミティブにはアンカーも含まれる。なお、このフィールドとアンカーによるデータ表現は本発明において本質的なものではない。ノードとリンクによるデータ表現でも構わない。
【００３７】
本実施例のネットワーク型文書編集装置は、図２に示すように文書構造を格納するハードディスクなどの文書格納部２１と、文書構造の管理を行う文書管理部２２と、装置外からの入力を扱うキーボードとマウスなど入力部２３と、装置外から入力された情報を元に、表示するべきフィールドを選択するフィールド参照部２４と、フィールド参照の履歴をヒストリ木として表現するため、参照に従って履歴ノードと候補ノードによる木構造を生成するなどの管理をするヒストリ木管理部２５と、ヒストリ木構造を表示したウィンドウを生成するヒストリ木表示生成部２６と、表示を行うディスプレイ装置など表示部２７とを備えている。
【００３８】
さらに、文書管理部２２は、アンカーを管理するアンカー管理部２２１と、フィールドを管理するフィールド管理部２２２からなる。
【００３９】
アンカー管理部２２１は、アンカーの情報を文書格納部２１に格納したり、取り出したり、更新するなどの管理を行なう。アンカーは図１４（ｂ）に示すにようなデータ構造を有しており、アンカーを識別するためのアンカー識別子１４４、アンカーを表示する時のラベル１４５、アンカーが参照するフィールドへのポインタ１４６からなっている。
フィールド管理部２２２は、フィールドの情報を文書格納部２１に格納したり、取り出したり、更新するなどの管理を行なう。フィールドは図１４（ａ）に示すようなデータ構造を有しており、フィールドを識別するためのフィールド識別子１４１、フィールドが規定する集合的関係の種類を表すフィールド・タイプ１４２、およびフィールドに含まれるプリミティブのリスト１４３からなっている。リスト中のプリミティブがアンカーであるときはアンカーへのポインタと内容データの基本要素のリストである。フィールドは例えばプリミティブの間の順序関係を保持することによって、文字列や章の並びを表現できる。このときには、フィールドタイプはストリームであり、従来技術で用いられるストリームと一致する。フィールドは順序のほかに、例えば二次元上の位置関係を保持できる。
【００４０】
フィールド参照部２４は、入力部２３からの指示で、アンカーあるいはアンカーが参照しているフィールドを選択するアンカー・フィールド選択部２４１と、選択されたフィールドを表示したウィンドウを生成するフィールド表示生成部２４２からなる。
【００４１】
図３は、本実施例の二次的に生成される木構造のデータ構造を示すもので、（ａ）はヒストリ・ノード、（ｂ）はヒストリ・ノードとアンカーの参照関係を示している。
ヒストリ・ノードのデータ構造は図３（ａ）に示すように、ヒストリ・ノードを識別するためのヒストリ・ノード識別子３１と、対応するアンカーへのポインタである対応アンカー３２と、対応アンカーが参照するフィールド中のアンカーのうち、過去に参照したものに対応する、ヒストリノードへのポインタのリストである子ヒストリ・ノード３３と、対応アンカーが参照するフィールド中のアンカーのうち、過去に参照しなかったものへのポインタのリストである候補アンカー３４からなっている。
アンカーならびにフィールドのデータ構造は前述の図１４（ｂ）と同じである。
【００４２】
本実施例は、図４（ａ）、図５（ａ）、図６（ａ）、図７（ａ）、図８（ａ）、図９（ａ）、および図１０（ａ）［以下、図４（ａ）〜図１０（ａ）と略記する］に例示されるカード型のインタフェイスによるネットワーク型の文書の探索作業における履歴の管理を行う点に特徴を持つ文書処理装置である。本実施例では、参照の履歴は木構造として表現され、図４（ｂ）〜図１０（ｂ）のように表示される。
【００４３】
図４（ａ）〜図１０（ａ）では、ディスプレイ内に表示されているウィンドウで、データを探索する様子を示している。即ち、
▲１▼  「発明の説明」という名前のノードのウィンドウを開き、「請求項」のアイコンを選択して（図４（ａ））、そのウィンドウを開く（図５（ａ））。
▲２▼  「請求項２」のアイコンを選択して（図５（ａ））、そのウィンドウを開く（図６（ａ））。
▲３▼  「請求項」「請求項２」のウィンドウを閉じ、「発明の説明」のウィンドウに戻る（図７（ａ））。
▲４▼  「実施例」のアイコンを選択して（図７（ａ））、ウィンドウを開く（図８（ａ））。
▲５▼  図１５  「実施例２」のアイコンを選択して（図８（ａ））、ウィンドウを開く（図９（ａ））。
▲６▼  「請求項２」のアイコンを選択して（図９（ａ））、ウィンドウを開く（図１０（ａ））。
【００４４】
図４（ａ）〜図１０（ａ）の各操作に対応する履歴情報の表示例として、図４（ｃ）〜図１０（ｃ）では、従来技術である参照履歴のリスト、図４（ｂ）〜図１０（ｂ）は、本実施例におけるヒストリ木の表示例を示した。
図４（ｂ）〜図１０（ｂ）の本実施例によるヒストリ木の表示例では参照されたフィールドに対応する矩形と参照関係を表す線分が太い線で描かれている。細い線で描かれるのは、参照が行われた時に提示されていた他の候補である。
これに対して、図４（ｃ）〜図１０（ｃ）の従来技術では参照履歴のリストが示されるだけで、参照が行われた時に提示されていた他の候補については何も表されていない。
このように、本実施例では従来の表示では表現できなかった、作業の経過を理解することができる。なお、本実施例では実際に参照されたものをより上の位置に表示するようにしているが、フィールド内での順序で上下を決めてもよい。
【００４５】
次に、本実施例の動作について図１１〜図１３に示すフローチャートにより説明する。
本実施例においては、フィールドを表示しているウィンドウ内で、アンカーを示すアイコンにマウスのカーソルを移動し、クリックすることによって対応するフィールドを参照する。たとえば、図４（ａ）においては、フィールドを表示しているウィンドウ４１内でアンカーを示すアイコン「請求項」４２をマウスでクリックすることによってそれに対応するフィールドを表示するウィンドウ５１（図５（ａ））を開く。このようにして４２のアンカーに対応して５２、５３、５４のアンカーからなるフィールドが参照される。
【００４６】
クリックしたところに対応するアンカーアイコンがないとき（例えば、図１０（ａ））には「閉じる」のメニュー（図示されていない）が選択できる。
さらに、ウィンドウ外でクリックすると「終了」のメニューが選択できる。
カーソルが入っているウィンドウに表示されているフィールドをカレントフィールドとする。
なお、一番初めのアンカーの選択だけは、ウィンドウからはできない。プログラムの起動時に利用者が指定する。
【００４７】
図１１はフィールド参照部２４の処理の内容を表すフィールド参照アルゴリズムのフローを示すものである。
【００４８】
（開始）
（ステップＳ１１１０）
利用者は、入力部２３によりカーソルを移動させて一つのアンカーアイコンを指示する。例えば、図４においてアンカーアイコン４２をクリックする。そうすると、アンカー・フィールド選択部２４１は、そのクリック信号と位置情報を基に、文書管理部２２におけるアンカー管理部２２１により管理されているアンカーの中から前記クリックされたアンカーを特定する。
【００４９】
（ステップＳ１１１１）
フィールド表示生成部２４２は、その特定されたアンカーに対応するフィールドのデータをフィールド管理部２２２から得て、フィールドを表示するウィンドウを生成し、それを表示部２７を介して表示する。
【００５０】
（ステップＳ１１１２）
ヒストリ木生成アルゴリズム（Ａ）（図１２）を呼び出す。後述するように、ヒストリ木管理部２５により参照したフィールドがヒストリ木の形で管理され、ヒストリ木表示アルゴリズム（図１３）により表示される。
【００５１】
（ステップＳ１１１３）
ステップＳ１１１１において生成された、フィールドを表示したウィンドウ内に、カーソルを移動する。
【００５２】
（ステップＳ１１１４）
カーソル位置が、フィールドを表示したウィンドウ内にあるかそのウィンドウ外にあるかを調べる。
【００５３】
［フィールドを表示したウィンドウ内にある場合］
フィールドを表示したウィンドウ内にカーソルがある場合は、マウスのクリック入力を待ち、以下のアンカー選択に関する処理を行なう。
（ステップＳ１１１５）
カーソルのあるウィンドウで表示されているフィールドをカレントフィールドとする。
【００５４】
（ステップＳ１１１６）
マウスがクリックされたか否かを判定し、クリックされていなかったときはステップＳ１１１４へ、クリックされたときはステップＳ１１１７へ移る。
【００５５】
（ステップＳ１１１７）
アンカー・フィールド選択部２４１は、クリックに対応するアンカーの選択処理を行なう。
（ステップＳ１１１８）
アンカーの選択に失敗したか否かを判定する。
【００５６】
（ステップＳ１１１９）
アンカーの選択に失敗しなかったとき、即ち、前記クリックがアンカーアイコン上でなされたときには、そのアンカーに対応するフィールドがすでに表示されているか否かを判定する。
フィールドが表示されていなかったときは、その表示とヒストリ木への登録を行なうために、ステップＳ１１１１へ移行する。
【００５７】
（ステップＳ１１２０）
フィールドが表示されていたときは、そのフィールドが表示されているウィンドウ内にカーソルを移動し、ステップＳ１１１４へ処理を移行する。
【００５８】
（ステップＳ１１３０）
ステップＳ１１１８において、アンカーの選択に失敗したと判定されたとき、即ち、カーソルがアンカーアイコン以外の位置にあるときにクリックがなされたときは、そのクリックがメニューの「閉じる」を選択したものであるか否かを判定する。
その判定の結果、メニューの「閉じる」の選択でなかったときには、次にクリック入力を待機するためステップＳ１１１４へ移る。
【００５９】
（ステップＳ１１３１）
その判定の結果「閉じる」が選択された場合にはウィンドウを閉じる処理を行なう。
【００６０】
［フィールドを表示したウィンドウ外］
（ステップＳ１１４０、Ｓ１１４１）
ステップＳ１１１４の判定の結果フィールドを表示したウィンドウ外の位置にカーソルがある場合に、マウスのクリックを監視し、クリックがあったときにはそれがメニュー終了の選択であるか否かを判定し、終了の選択であればフィールド参照処理を終了する。それ以外の場合には、ステップＳ１１１４へ処理を移行する。
【００６１】
図１２はヒストリ木管理部２５の処理の内容を表すヒストリ木アルゴリズムのフローを示すものである。新しいフィールドの表示がなされるとそれをヒストリ木に加える処理を行なう。
（Ａの開始）
（ステップＳ１２０）
図１１のステップＳ１１１１により表示されたフィールドに対応するアンカーにより、ヒストリ木を探索し、そのアンカーに対応するヒストリノードがあるか否かを調べる。ヒストリノードがあれば、フィールドはヒストリ木に既に加えらたものであるので、そのまま図１１のもとの処理の流れに戻る。ヒストリノードがなければ、以下のヒストリノードの作成と表示の処理を行う。
【００６２】
（ステップＳ１２１）
アンカーに対応するヒストリノードを新しく生成する。ヒストリノードは図３（ａ）に示すデータ構造を有する。一方、対象とするネットワーク型文書のデータ構造は本実施例ではフィールドが図１４（ａ）に、アンカーが図１４（ｂ）に示すとおりである。新しく作成するヒストリノードの「対応アンカー」の欄３２に、選択されたアンカーへのポインタを格納する。そのアンカーの参照フィールドによって指示されるネットワーク型文書のフィールド中にあるアンカーのリストをヒストリノードにおける候補アンカーのリスト３４として格納する。
たとえば、図４（ａ）が表示されている状態は図３（ｂ）のように表される。この状態でアンカーアイコン「請求項」４２が選択され、図５（ａ）のように、その「請求項」の参照するフィールドを表示するウィンドウ５１が新たに生成されたときには、ヒストリノードが作成され、図３（ｃ）に示す状態となる。新しく作成するヒストリノードＨ００２には、対応アンカー３２の欄にアンカー「請求項」Ａ００２へのポインタを格納し、ウィンドウ５１に前記新たに表示されたフィールドにある他のアンカー「請求項１」Ａ００５、「請求項２」Ａ００６、「請求項３」Ａ００７を候補アンカーリスト３４に格納する。
【００６３】
（ステップＳ１２２）
カレントフィールドに対応するヒストリノードを選択する。
【００６４】
（ステップＳ１２３）
選択に失敗したか否かを判定し、選択に失敗した場合には図１１の処理の流れに戻る。
【００６５】
（ステップＳ１２４、Ｓ１２５）
選択したヒストリノードの候補アンカーから、対応するアンカーを削除する。子ヒストリノードリストに、新しく生成したヒストリノードを加える。これにより、たとえば、図３（ｂ）のヒストリノードＨ００１の候補アンカーから、アンカーＡ００２が除かれ、新しく生成されたヒストリノードＨ００２が子ヒストリノードに加えられる（図３（ｃ））。
【００６６】
（ステップＳ１２６）
ルートのヒストリノードにヒストリ木表示アルゴリズム（Ｂ）を適用するためヒストリ木表示生成部２６へ処理を移す。
【００６７】
図１３はヒストリ木表示生成部２６の処理の内容を表すヒストリ木表示アルゴリズムのフローを示すものである。新しくヒストリノードが生成された後に更新されたヒストリ木の表示処理を行う。
（Ｂの開始）
（ステップＳ１３１）
まず、ルートのヒストリノードを表示する。
【００６８】
（ステップＳ１３２）
ヒストリノードの持つ子ヒストリノードのすべてに対して表示アルゴリズム（Ｂ）を適用する。再帰呼びだしによりすべてのヒストリノードを表示する。図７（ｂ）〜図１０（ｂ）において、太線の部分がヒストリノードに対応する表示である。
【００６９】
（ステップＳ１３３）
ヒストリノードの持つ候補アンカーを表示する。図７（ｂ）〜図１０（ｂ）において、細線の部分が候補アンカーに対応する表示である。
この表示を行った後に、図１１の処理の流れ（ステップ１２）へ戻る。
【００７０】
従来の履歴のリストも二次的な構造の一つであるが、構造が単純すぎるために履歴の管理に必要な情報のすべてを表現することができなかった。本実施例によれば、ネットワーク構造から二次的に生成した木構造で履歴を表現することによって、作業の経過の履歴を分かり易く表現することができる。
【００７１】
（二次的に定義される割り付け対象木構造の説明）
二次的に定義される割り付け対象木構造によるネットワーク型文書処理装置の構成例を図１６に示す。本装置は、ネットワーク型文書において、利用者からの指示によってネットワーク構造の構成要素から木構造を生成し、生成された木構造に対して割り付け処理を適用することによって、ネットワーク構造の必要な部分を選択して割り付け処理ができるようにしたものである。本装置では、フィールドとアンカーによるデータ表現を行う。このデータ表現は本発明において本質的なものではない。ノードとリンクによるデータ表現でも構わない。本実施例では前記従来技術で述べたフォーマッタの階層構造を用い部分割り付け処理を階層的に実行することで全体の割り付け処理を行う。フォッマッタは部分割り付け処理を行うプロセスのことである。本例ではフォーマッタの階層構造をフォーマッタ木と呼ぶ。
【００７２】
二次的に定義された割り付け対象木構造によるネットワーク型文書処理装置は、図１６に示すように文書構造を格納するハードディスクなどの文書格納部１６１と、文書構造の管理を行う文書管理部１６２と、装置外からの入力を扱う入力部１６３と、入力部１６３からの指示で、アンカーあるいはアンカーが参照しているフィールドを選択するアンカー・フィールド選択部１６４と、アンカー・フィールド選択手段で指示された、割り付け対象の木構造をフォーマッタ木として表現し、管理するフォッマッタ木管理部１６５と、フォーマッタ木を表示するウィンドウを生成するフォーマッタ木表示生成部１６６と、フォーマッタを実行し、割り付け結果を生成し、表示部１６８、または印刷部１６９に送るフォーマッタ実行制御部１６７と、表示を行うディスプレイ装置など表示部１６８と、割り付け結果をハードコピーに出力する印刷部１６９とからなっている。なお、文書格納部１６１、文書管理部１６２、入力部１６３、アンカー・フィールド選択部１６４、表示部１６８等は第１の実施例と共通するものである。
【００７３】
図１７は、本例のデータ構造を示すもので、（ａ）はフォーマッタ、（ｂ）はアンカー、（ｃ）はフォーマッタとアンカーの参照関係を示している。フォーマッタのデータ構造は図１７（ａ）に示すように、割り付けノードを識別するためのフォーマッタ識別子１７１と、対応するアンカーへのポインタである対応アンカー１７２と、子フォーマッタへのポインタのリスト１７３からなっている。
【００７４】
アンカーのデータ構造は図１７（ｂ）に示すように、アンカーを識別するためのアンカー識別子１７４、アンカーを表示する時のラベルであるアンカー・ラベル１７５、対応するフォーマッタへのポインタである対応フォーマッタ１７６、アンカーが参照するフィールドへのポインタである参照フィールド１７７からなっている。
【００７５】
次に、以上のように構成された本装置の動作を説明する。図２７の（ａ）〜（ｃ）は、図２８に示すネットワーク構造から木構造を指定する様子を示している。図２７の（ａ）〜（ｃ）のような木構造を表示するインタフェース上で、利用者がマウスによって割り付けの対象としたいアンカーアイコンを選択し、クリックすることにより、図２９（ａ）に示すメニューが表示される。このメニュー表示において「フォーマッタ生成」を選択することによって対応するアンカーが参照しているフィールドを割り付けるためのフォーマッタが生成され、太線で囲まれたアイコンとして表示される。細い線で表示された矩形領域は対応するフォーマッタのない状態のアンカーであるが、フォーマッタを生成する選択の候補を示している。選択メニューの「フォーマッタ破棄」を選択すると、起動していたフォーマッタを破棄する。なお、利用者が、アンカーアイコンを選択せずに、クリックすると図２９（ｂ）に示す選択メニューが表示され、その選択メニューの「印刷」を選択することにより、フォーマッタ木を形成している各フォーマッタによって割り付け処理を行い出力する。
【００７６】
図３０に示す木構造の選択結果として生成されたフォーマッタ木は図３１に示すようになる。このフォーマッタ木によって、全体の割り付け処理を行なった結果は図３２のようになる。図３３、図３４では図３０とは異なるフォーマッタ木の生成を行なった例を示すものである。
【００７７】
割り付け処理される構造は、ネットワーク構造の部分構造に限るものではない。図３５、図３６、図３７では、図３０と図３３の指定を同時に行なったときの様子を示す。この場合は重複している部分があるので、正確には部分構造ではない。
【００７８】
次に、図４１〜図４３に示すフローチャートにより説明する。
図４１はフォーマッタ木管理部１６５の処理内容を表すフォーマッタ木管理アルゴリズムのフローを示すものである。
処理対象のネットワーク型文書の構造が例えば図２７のように表示されているとする。
【００７９】
（開始）
（ステップＳ４１１０、Ｓ４１１１）
マウスのクリック入力を監視する。クリックがあれば、アンカー・フィールド選択部１６４はカーソル位置にあるアンカーを選択する処理を行う。例えば、利用者が、入力部１６３によりカーソルを移動させて割り付けの対象としたいアンカーアイコン２７２（図２７（ｂ））を選択し、クリックしたとすれば、アンカー・フィールド選択部１６４はカーソル位置のアンカーに関する情報をフォーマッタ木管理部１６５へ通知する。
【００８０】
（ステップＳ４１１２）
アンカーの選択に失敗したか否か即ちカーソル位置にはアンカーアイコンがなかった否かにより、アンカーの選択が成功したときにはステップＳ４１１３へ、失敗したときにはステップＳ４１１４へ移る。
【００８１】
（ステップＳ４１１３）
アンカーが選択された後、図２９（ａ）に示すメニューが表示され、利用者は「フォーマッタ生成」または「フォーマッタ破棄」を選択する。「フォーマッタ起動生成」が選択されたときにはステップＳ４１２０へ、「フォーマッタ破棄」が選択されたときにはステップＳ９０へ移る。
【００８２】
［フォーマッタ起動］
（ステップＳ４１２０）
前記選択されたアンカーに対応するフォーマッタがあるか否かを調べ、すでにフォーマッタがあれば生成する必要がないので、次のアンカーの選択を待機するためステップＳ４１１０へ戻り、なければステップＳ４１１４へ進む。
【００８３】
（ステップＳ４１２１）
アンカーに対応するフォーマッタを新たに生成する。フォーマッタは図１７（ａ）に示すデータ構造を有する。一方、対象とするネットワーク型文書のデータ構造は本実施例ではフィールドが図１４（ａ）に、アンカーが図１７（ｂ）に示すとおりである。新しく作成するフォーマッタの「対応アンカー」の欄１７２に、選択されたアンカーへのポインタを格納する。
【００８４】
（ステップＳ４１２２）
上位アンカーに対応するフォーマッタの下位に新しく生成したフォーマッタを配置する。即ち、上位アンカーに対応するフォーマッタの子フォーマッタのリスト１７３に新しく生成したフォーマッタへのポインタを加える。
【００８５】
（ステップＳ４１２３）
ルートフォーマッタに表示アルゴリズム（Ｂ）を適用して、再表示するために、フォーマッタ木表示生成部１６６に制御を移す。
【００８６】
［フォーマッタ停止］
（ステップＳ４１３０、Ｓ４１３１、Ｓ４１２３）
図２９（ａ）に示すメニューにおいて、「フォーマッタ破棄」が利用者により選択されたときには、前記アンカーに対応するフォーマッタがあるか否かを調べ、あれば対応するフォーマッタとその下位フォーマッタを全て削除する。そして、ステップＳ４１２３においてフォーマッタ木を再表示する。なければ、ステップＳ４１１０へ戻る。
【００８７】
（ステップＳ４１１４、Ｓ４１４０、Ｓ４１４７）
ステップＳ４１１２の判定において、カーソル位置にはアンカーアイコンがなかった場合には、図２９（ｂ）のメニューを表示し、利用者の選択を待ち、メニューの「印刷」が選択されたときには、フォーマッタ実行制御部１６７によりフォーマッタ木による割り付け処理を行い、割り付け結果を印刷部１６９に渡し、印刷出力する。前記メニューで「終了」が選択されたときには処理を終了する。
【００８８】
図４２はフォーマッタ実行制御部１６７の処理における部分割り付け処理アルゴリズムを示すフローチャートである。このアルゴリズムをルートフォーマッタから実行することによって、全フォーマッタ木による割り付け処理が行われる。また、このアルゴリズムは前記従来の割り付け処理技術において用いられているものと同じである。本実施例では、論理単位がフィールド、参照単位がアンカー、基本単位がプリミティブにそれぞれ対応する。
（ステップＳ４２００）
論理単位に含まれる全基本単位を割り付けたか否かを判定する。
【００８９】
（ステップＳ４２０１）
全基本単位の割り付けが終了していない場合には、割り付けられていない最初の要素を取り出す。
【００９０】
（ステップＳ４２０２）
基本単位は参照単位かを判定する。
【００９１】
（ステップＳ４２０３）
基本単位が参照単位であるときは、参照単位が参照している論理単位について部分割り付け処理を実行し（再帰呼び出し）、割り付け結果を受けとる。
【００９２】
（ステップＳ４２０４）
割り付け結果を矩形領域に流し込む。
【００９３】
（ステップＳ４２０５）
基本単位が参照単位でないときは、基本単位は文字等であるので、それらを矩形領域に流し込む。
【００９４】
（ステップＳ４２０６）
全部の基本単位の割り付けが終了したら、割り付けた結果を上位フォーマッタに渡す。
【００９５】
図４３はフォーマッタ木表示生成部１６６の処理内容を表すフォーマッタ木表示アルゴリズムのフローを示すものである。
【００９６】
（ステップＳ４３００）
フォーマッタが起動していることを示す図形内に、対応するアンカーのラベルを表示する。
【００９７】
（ステップＳ４３０１、Ｓ４３０２）
参照しているフィールド内のアンカーをすべて表示したかを調べ、表示していないアンカーがあるときは、表示していない最初のアンカーを選択する。参照しているフィールド内のアンカーをすべて表示したときは図４１のステップＳ４１２３へ戻る。
【００９８】
（ステップＳ４３０３、Ｓ４３０４、Ｓ４３０５）
選択されたアンカーに対応するフォーマッタを起動しているかを調べ、起動していれば、対応するフォーマッタについて、表示アルゴリズムを適用（再帰呼び出し）し、起動していなければフォーマッタが起動していないことを示す図形内に、アンカーのラベルを表示する。
【００９９】
本装置によれば、利用者からの指示によってネットワーク構造の構成要素から木構造を生成し、生成された木構造に対して割り付け処理を適用することによって、ネットワーク構造の必要な部分を選択して割り付け処理することができる。また、本実施例は二次的な構造としてフォーマッタの木構造を用いることによって、従来、利用者に制御できなかったネットワーク構造の割り付け処理の制御を可能にするものである。また、割り付け対象となる木構造を利用者が選択するので、適切な割り付けテンプレートも定義することができ、構造化文書における割り付け処理の適用も可能になる。
【０１００】
なお、木構造は制限されたネットワーク構造である。したがって、この発明は木構造に対しても適用できる。図３８では図１８に示す木構造の論理構造の全体を表示する装置を示す。この表示装置の上で、利用者が矩形領域を定義することで、部分木構造を定義できる。この部分木構造に対応する、図４０のフォーマッタの木とを用いることによって、図３９の割り付け結果を得ることができる。
【０１０１】
割り付け結果はハードコピーのみならず、ディスプレイ上にも表示できるものである。従来、ハードコピーへの印刷と、ディスプレイ上の表示を一致させるＷＹＳＩＷＹＧ方式があったが、この機能は文書全体の出力に限られていた。部分的な割り付け結果を、ハードコピーへの印刷と、ディスプレイ上の表示を一致させることによって、印刷される文書の必要な一部分のみをディスプレイ上で確認することが可能になる。必要な一部分とは、例えば、変更を行なったときの、変更箇所の周辺部分などのことである。
【０１０２】
（二次的に定義される表示対象木構造の説明）
二次的に定義される表示対象木構造によるネットワーク型文書処理装置の構成を図４５に示す。本実施例はネットワーク型文書において、任意の部分木構造をウィンドウの組合せによって、利用者に提示するとともに、その表示の状態を対話的に変更できる装置である。表示の状態は、ウィンドウ木としてデータ構造に関連づけて管理され、作業中断後に復元できるものである。  本実施例では、フィールドとアンカーによるデータ表現を行うが、このデータ表現は本発明において本質的なものではない。ノードとリンクによるデータ表現を採用してもよい。本実施例のネットワーク型文書編集装置は、図４５に示すように文書構造を格納するハードディスクなどの文書格納部４５１と、文書構造の管理を行うアンカー管理部４５２１およびフィールド管理部４５２２からなる文書管理部４５２と、装置外からの入力を扱うキーボードとマウスなどの入力部４５３と、入力部４５３からの指示でアンカーあるいはアンカーが参照しているフィールドを選択するアンカー・フィールド選択部４５４と、ウィンドウの階層構造をウィンドウ木として管理をするウィンドウ木管理部４５５と、フィールドを表示するウィンドウを生成するウィンドウ表示生成部４５６と、表示を行うディスプレイ装置など表示部４５７とを備えている。なお、文書格納部４５１、文書管理部４５２、入力部４５３、アンカー・フィールド選択部４５４、および表示部４５７は図２あるいは図１６の対応する部分と共通するものである。
【０１０３】
図４６は、本例のデータ構造を示すもので、（ａ）はウィンドウ、（ｂ）はアンカーのデータ構造を示している。なお、本実施例ではウィンドウ木のルートとなっているウィンドウをトップウィンドウ、それ以外のウィンドウをサブウィンドウと呼ぶことにする。ウィンドウのデータ構造は図４６（ａ）に示すように、ウィンドウを識別するためのウィンドウ識別子４６１と、対応するアンカーへのポインタである対応アンカー４６２と、トップウィンドウであるかサブウィンドウであるかのウィンドウの状態を示す表示状態４６３、ウィンドウの表示される領域を表す表示領域４６４、および子ウィンドウへのポインタのリスト４６５からなっている。表示状態の「ＴＯＰ」はトップウィンドウであることを示し、「ＳＵＢ」はサブウィンドウであることを示す。
【０１０４】
アンカーのデータ構造は図４６（ｂ）に示すように、アンカーを識別するためのアンカー識別子４６６、アンカーを表示する時のラベルであるアンカー・ラベル４６７、アンカーが参照するフィールドの表示に関する情報である表示情報４６８、アンカーが参照するフィールドへのポインタである参照フィールド４６９からなっている。
表示情報の「ＴＯＰ」はアンカーの参照するフィールドが、トップウィンドウ中で表示中であるかあるいは作業が中断する前には、トップウィンドウとして表示されていたことを示す。「ＳＵＢ」はアンカーの参照するフィールドがサブウィンドウ中で表示されているかあるいは作業が中断する前には、サブウィンドウとして表示されていたことを示す。「ＯＦＦ」はアンカーの参照するフィールドが表示されておらず、また、作業が中断する前も表示されていないことを示す。
【０１０５】
図４７はウィンドウ木とアンカーの参照関係を示している。これは図５３（ａ）の一部に対応する。「請求項１」のアンカーは表示されていないので表示状態はＯＦＦになっている。図４８は、図４７に示されるウィンドウの表示領域の値と図６３（ａ）の表示との関連を示している。
【０１０６】
本実施例は、ウィンドウの木構造を文書構造中のデータに反映させることによって、編集を再開するときに編集終了時のウィンドウ木が復元される機能を持つアウトラインエディタである。
図５３（ａ）に示す表示が行われている時には、ウィンドウ木は図５３（ｂ）のようになる。この状態は図５２に示すように、表示情報（ＴＯＰ，ＳＵＢ，ＯＦＦ）としてデータ構造中に反映される。状態を記していないものはＯＦＦであることを示している。
【０１０６】
マウスによってウィンドウ中のアンカーに対応するアイコンを選択し、クリックすることで図５３（ｃ）のメニューを開く。このメニューにおいて、「開く」を選択することで、サブウィンドウを開いてゆく。「閉じる」を選択することで、サブウィンドウを閉じてゆく。これらの操作によって、ＴＯＰ，ＳＵＢ，ＯＦＦの状態は変化する。なお、トップウィンドウを選択して「閉じる」を行うことですべてのウィンドウを閉じてプログラムを終了する。このときすべての表示状態はＯＦＦになる。「中断」を選択すると、ＴＯＰ，ＳＵＢ，ＯＦＦの状態を変更することなく、プログラムを終了する。
【０１０７】
編集を再開した時にデータ構造中の表示情報を参照することで、編集中断時のウィンドウ木の状態を復元することが可能になる。
トップウィンドウまたはサブウィンドウを開く時に、下位に「ＳＵＢ」の状態のアンカーがあれば、ひきつづきそのアンカーが参照するフィールドを表示するサブウィンドウを開く。
【０１０８】
本例では管理するウィンドウ木は一つである。また、各アンカーが一つの表示状態しかもたないので、同じアンカーあるいはフィールドを共有する状態を表現できない。複数のウィンドウ木やフィールドの共有の機能が必要ならば、図５４（ａ）に示すように表示ごとに状態を保持すればよい。この場合には図５３（ａ）に示す表示とともに図５４（ｂ）に示す表示が表現できる。
【０１０９】
なお、ＴＯＰの情報を書き出さなくても、部分的なウィンドウ階層の復元は可能である。図５５（ａ）に示すようにＳＵＢの情報のみが記述されている場合には、「発明の説明」をアクセスすると必ず、下位のウィンドウにＳＵＢが記述されている「請求項」と「実施例」に対応するフィールドを表示したウィンドウ木が生成される。図５５（ａ）の例では同図（ｂ）の表示になる。
【０１１０】
また、このメカニズムはウィンドウの階層構造によって部分木構造を表示するものであれば、アウトラインエディタ以外にも適用できる。例えば図５５（ｃ）に示すようにウィンドウ中に自由に配置されたサブウィンドウによる表示も、実施例に示した構成に簡単な変形を加えることで実現できる。この場合に必要な変形は、表示情報にウィンドウの領域情報を加えることである。
【０１１１】
次に、図５６〜図５７に示すフローチャートにより説明する。
図５６はウィンドウ木管理部４５５の処理内容を表すウィンドウ木管理アルゴリズムのフローを示すものである。
【０１１２】
（ステップＳ５６１１）
処理が開始すると、まず状態がＴＯＰのアンカーを選択する。
【０１１３】
（ステップＳ５６１２）
トップウィンドウを生成する。
【０１１４】
（ステップＳ５６１３）
生成したトップウィンドウ中で、選択しているアンカーが参照しているフィールドに対して図５７のフィールド表示アルゴリズム（Ａ）を適用し、フィールドを表示する。
【０１１５】
（ステップＳ５６１４）
利用者がマウスのクリックによるウィンドウの選択をすると、図５３（ｃ）に示すメニューが表示される。
【０１１６】
（ステップＳ５６１５）
メニューにより選択された項目に応じて、選択されたメニュー項目が「開く」のときは、ステップＳ５６３０へ、「閉じる」のときはステップＳ５６４０へ、「中断」のときはステップＳ５６５０へ進みそれぞれの処理を行う。
【０１１７】
（ステップＳ５６３０）
メニューの「開く」が選択された場合は、アンカーが選択されているか否かを調べる。アンカーが選択されていなかったときにはステップＳ５６１５へ戻る。
【０１１８】
（ステップＳ５６３１）
アンカーが選択されていたときには、アンカーの状態（表示情報４６８）をＳＵＢに設定する。
【０１１９】
（ステップＳ５６３２）
選択ウィンドウの中で、選択しているアンカーに対応するフィールドについてフィールド表示アルゴリズム（Ａ）の処理を呼び出し、再表示する。そして、次の選択の処理をするためステップＳ５６１５へ戻る。
【０１２０】
（ステップＳ５６４０）
メニューの「閉じる」が選択された場合は、選択ウィンドウとその下位にある全ウィンドウに対応するアンカーの状態をＯＦＦにする。
【０１２１】
（ステップＳ５６４１）
選択ウィンドウとその下位にある全サブウィンドウを破棄する。
【０１２２】
（ステップＳ５６４２）
トップウィンドウか否かを判定し、トップウィンドウであれば、全てのウィンドウがすでに破棄されているので、処理を終了する。
トップウィンドウでなければ、ステップＳ５６３２へ行き再表示をする。
【０１２３】
（ステップＳ５６５０）
選択されたメニューが「中断」であったときは、選択ウィンドウとその下位にある全サブウィンドウを破棄し、終了する。
【０１２４】
図５７はフィールド表示生成部４５６の処理内容を表すフィールド表示アルゴリズム（Ａ）のフローを示すものである。このアルゴリズムは、ウィンドウとフィールドが与えられると、ウィンドウ中にフィールドを表示する処理を行う。
（ステップＳ５７０）
与えられたフィールドのすべてのプリミティブを処理し終ったか否かを判定する、すべての処理が終了していれば、元のルーチンへ戻る。処理すべきプリミティブが残っていれば、以下のステップによりその処理を行う。
【０１２５】
（ステップと５７１）
処理が済んでいない最初のプリミティブを選択する。
【０１２６】
（ステップＳ５７２）
プリミティブはアンカーか否かを調べ、アンカーであればステップＳ５７３へ、アンカーでなければステップＳ５７８へ移る。
【０１２７】
（ステップＳ５７３）
アンカーの状態を図４６（ｂ）のアンカーのデータ構造における表示情報４６８により調べる。
【０１２８】
（ステップＳ５７４）
その表示情報の内容が「ＳＵＢ」のときには、サブウィンドウを生成し、与えられたウィンドウ内に配置する。
【０１２９】
（ステップＳ５７５）
生成したサブウィンドウ内でアンカーが参照するフィールドに表示アルゴリズム（Ａ）を適用表示する（再帰呼び出し）。
【０１３０】
（ステップＳ５７６）
ステップＳ５７３の判定でアンカーの表示情報４６８がＯＦＦであったときには、アンカーに対応するアイコンを生成する。
【０１３１】
（ステップＳ５７７）
与えられたサブウィンドウ内にアイコンを配置する。
（ステップＳ５７８）
ステップＳ５７３の判定で、プリミティブがアンカーでなかったときには、プリミティブを与えられたサブウィンドウ内に配置する。
【０１３２】
本装置によれば、ウィンドウ木管理部４５５は、表示対象木構造を文書構造中のデータに反映させるように管理するので、編集を再開するときに編集終了時のウィンドウ木を復元することができる。
【０１３３】
（第２の実施例）
一般に、ネットワーク構造は、自由な表現ができるが、もっと単純な構造、例えば、木構造よりも非常に扱いが難しくなる。そこで、ネットワーク構造から、扱いが容易な二次的な構造を生成し、その構造を用いることでネットワーク構造の操作を容易にする手法が有効である。本発明は、履歴の木構造（ヒストリ木）、表示対象となる木構造（ウィンドウ木）、割り付け対象となる木構造（フォーマッタ木）、などの二次的な構造を利用する発明であり、それぞれの例について詳述した。なお、これらはいずれも木構造であることから、本明細書では二次的木構造と総称する。これらの二次的木構造は相互に関連しているが、それぞれ異なる構造である。
【０１３４】
例えば、図２８に示される文書構造を以下の手順で参照すると、結果は図５８（ａ）に示すようになる。
（１）「発明の説明」を表示するウィンドウを開く。
（２）「請求項」を表示するサブウィンドウを「発明の説明」のウィンドウ内に開く。
（３）「実施例」を表示するサブウィンドウを「発明の説明」のウィンドウ内に開く。
（４）「請求項１」を表示するサブウィンドウを「請求項」のサブウィンドウ内に開く。
（５）「請求項２」を表示するウィンドウを開く。
（６）「従来の技術」を表示するウィンドウを開く。
さらに、次の手順で図５８（ｂ）の結果が得られる。
（７）「実施例」のサブウィンドウを閉じる
【０１３５】
このときの、ヒストリ木、ウィンドウ木、フォーマッタ木をはそれぞれ図５９（ａ）、（ｂ）、（ｃ）に示す。
ヒストリ木はネットワーク型文書のうち、利用者が参照した部分を表現するためのものである。ヒストリ木は利用者による参照の履歴を木構造で保持している。この木構造を図５９（ａ）のように表示することによって、それまでに行ったネットワーク構造中での作業の経緯を利用者に示すことができる。
【０１３６】
ウィンドウ木はネットワーク型文書のうち表示の対象となる部分を指定するためのものである。ネットワーク型文書構造の一部が、ウィンドウ木で表現される合成ウィンドウとして利用者に提示される。利用者はこの合成ウィンドウを介して、ネットワーク構造の編集を行う。なお、ウィンドウ木を図５９（ｂ）のように表示することによって、重ねて配置されている場合でも、必要なウィンドウにアクセスできる。
【０１３７】
フォーマッタ木は、ネットワーク型文書構造のうち、割り付け対象となる部分を指定するためのものである。フォーマッタの階層を使って、割り付け対象の木構造を指定することによって、テンプレートを用いた高度な割り付け処理ができる。図５９（ｃ）に示すフォーマッタ木は上述の参照手順に無関係に指定されている。指定のためにはデータ構造とフォーマッタ木とを関連づけて表示する装置が必要である。
【０１３８】
これらの二次的木構造に対する機能を組み合せることによって、より高度な機能の実現が可能になる。例えば、以下のように複合させて用いることが考えられる。
（１）…ヒストリ木とウィンドウ木を組み合せて用いることによって、画面上に開かれている多数のウィンドウの中から、特定の作業に関連したものを選択的に削除する、などの操作を行う。ヒストリ木は作業の経過を示すことができるからである。
（２）…ウィンドウ木とフォーマッタ木を組み合せて用いることによって、画面上に開かれているウィンドウが表示している情報を、割り付け処理して、出力する。
（３）…ヒストリ木とフォーマッタ木を組み合せて用いることによって、利用者が参照した情報を割り付け処理して、出力する。
【０１３９】
第４の実施例は、上述のような第１ないし第３の実施例で示した各二次的木構造を複合した例である。上述のような複合機能を実現するためは、それぞれの技術を単純に組み合せただけでは、十分ではない。
第１ないし第３の実施例の技術を単純に組み合せるだけでは、図５８に示したウィンドウに加えて、ウィンドウ木を表示するブラウザ、ヒストリ木を表示するブラウザ、フォーマッタ木を表示するブラウザ、が同一画面上に開くことになる。場合によっては、さらに、データ構造を表示するブラウザが開かれる。しかも、それぞれのブラウザに表示されている構造は、お互いに密接に関連している。例えば上述のステップのうち「開く」操作では、ウィンドウ木とヒストリ木の両方が更新される。一方、「閉じる」操作ではウィンドウ木のみが更新される。
【０１３９】
このように、それぞれの技術の単純な組み合せでは、
（１）構造間の関連が整理されていない。
（２）構造間の関連が利用者に提示できない。
（３）類似の構造を別々のウィンドウで表示する。
ために、利用者が複数の二次的木構造を関連づけて利用することは、非常に困難である。
【０１４０】
そこで第２の実施例では、複数の二次的木構造を明確に関連づけ、すべての構造を一元的に表現し、同時に表示する。複数の二次的木構造が、利用者には一つの構造として提示されるので、利用者の混乱を避けることができる。さらに、一元的な表現から各構造を抽出することによって、それぞれの構造を用いた機能、あるいは複合した機能を得ることが容易になる。また、複数の構造を同時に更新する手続きが容易になり、処理の効率化が図れる。
【０１４１】
第２の実施例では、フィールドとアンカーによるデータ表現を行う。このデータ表現は本発明において本質的なものではない。ノードとリンクによるデータ表現でも構わない。
【０１４２】
また、本実施例ではフォーマッタは割り付け処理を実行するプロセスとして実現する。この処理方式は本発明において本質的なものではない。割り付け対象となる部分を木構造のデータ構造で保持しておき、別の手段がそのデータ構造を参照しながら割り付け処理を行うことにしてもよい。この場合には、割り付け対象となる部分を示すデータ構造がフォーマッタ木に該当することになる。
【０１４３】
第２の実施例の構成を図６１に示す。本実施例のネットワーク型文書編集装置は、図６１に示すように文書構造を格納するハードディスクなどの文書格納部６１１と、アンカー管理部６１２１およびフィールド管理部６１２２からなる文書構造の管理を行う文書管理部６１２と、装置外からの入力を扱うキーボードとマウスなど入力部６１３と、入力部６１３からの指示でアンカーあるいはアンカーが参照しているフィールドを選択するアンカー・フィールド選択部６１４と、アンカー・フィールド選択手段で指示された割り付け対象の木構造をフォーマッタ木として管理するフォッマッタ木管理部６１５と、文書の一部もしくは全体を表示するウィンドウを生成する文書表示生成部６１６と、表示を行うディスプレイ装置など表示部１６７と、フォーマッタを実行し、割り付け結果を生成し、文書表示生成部６１６を介して表示部６１７、または印刷部６１９に送るフォーマッタ実行制御部６１８と、割り付け結果をハードコピーに出力する印刷部１６９とからなっている。なお、文書格納部６１１、文書管理部６１２、入力部６１３、アンカー・フィールド選択部６１４、表示部６１７等は図２、図１６、図４５の例と共通するものであり、フォーマッタ木管理部６１５、フォーマッタ実行制御部６１８および印刷部６１９は図１６の例と共通するものである。
【０１４４】
文書表示生成部６１６は、さらに文書構造表示生成部６１６１とフィールド表示生成部６１６２からなる。
文書構造表示生成部６１６１は、文書の構造を表示するウィンドウを生成するもので、従来技術におけるブラウザに相当する。本実施例ではアンカーアイコンの表示によって、複数の二次的木構造が文書構造に関連づけて表示される。
フィールド表示生成部６１６２は、フィールドを表示するウィンドウを生成するものである。本実施例では、フォーマッタ管理部６１５で管理されているフォーマッタを用いて、ウィンドウの生成とフィールドの表示を行う。
【０１４５】
図６２は、本実施例のデータ構造を示すもので、（ａ）はフォーマッタ、（ｂ）はウィンドウ、（ｃ）はアンカー、（ｄ）はフィールドの構造である。
【０１４６】
フォーマッタのデータ構造は図６２（ａ）に示すように、割り付けノードを識別するためのフォーマッタ識別子６２ａ１と、対応するアンカーへのポインタである対応アンカー６２ａ２と、対応するウィンドウへのポインタである対応ウィンドウ６２ａ３、および子フォーマッタへのポインタのリスト６２ａ４からなっている。
【０１４７】
ウィンドウのデータ構造は図６２（ｂ）に示すように、ウィンドウを識別するためのウィンドウ識別子６２ｂ１と、ウィンドウの表示される領域を表す表示領域６２ｂ２、上位ウィンドウへのポインタ６２ｂ３および子ウィンドウへのポインタのリスト６２ｂ４からなっている。
【０１４８】
アンカーのデータ構造は図６２（ｃ）に示すように、アンカーを識別するためのアンカー識別子６２ｃ１、アンカーを表示する時のラベルであるアンカー・ラベル６２ｃ２、およびアンカーが参照するフィールドへのポインタである参照フィールド６２ｃ３からなっている。
【０１４９】
フィールドのデータ構造は図６２（ｄ）に示すように、フィールドを識別するためにフィールド識別子６２ｄ１、フィールドが規定する集合的関係の種類を表すフィールド・タイプ６２ｄ２、対応するフォーマッタへのポインタである対応フォーマッタ６２ｄ３、およびフィールドに含まれるプリミティブのリスト６２ｄ４からなっている。
【０１５０】
図６３はフォーマッタ、アンカー、フィールド、ウィンドウの参照関係を示すものである。
この参照関係は、図６４、図６５に示す状態の一部に対応するものである。図６５において「発明の説明」アンカーが参照するフィールドを表示したウィンドウ６５１の中に、「請求項」アンカーが参照するフィールドを表示したウィンドウ６５２が開いていることを表現している。
【０１５１】
前述のように本実施例はヒストリ木、ウィンドウ木、フォーマッタ木、に対する操作を簡便にするために、全木構造を一元的に管理し、表示する装置である。図６４に図５８（ｂ）で示した操作を行ったときの、本実施例による表示例を示す。この表示は文書構造の一部、ヒストリ木、ウィンドウ木、フォーマッタ木を同時に表示している。アンカーを示すアイコンの種類によって各二次的木構造が提示される。この表示の説明に先立ち、本実施例における木構造の一元管理手法を説明する。
【０１５２】
本実施例では、フォーマッタ木に新しい役割をつけ加えることによって、ウィンドウ木とヒストリ木に関連づけている。
第２の実施例においては、フォーマッタ木は出力対象となる部分木構造を特定し、これを割りつけて出力するためのものであった。フォーマッタ木の各フォーマッタの役割は出力のための部分割り付け処理を行うことである。本実施例では、フォーマッタの役割として、ウィンドウ内の表示のための割りつけ処理を追加する。すなわち、フォーマッタにウィンドウ表示用と出力用の二種類の割りつけアルゴリズムを持たせる。フォーマッタがウィンドウ表示の割り付け処理を行うので、ウィンドウ表示の際には必ず対応するフォーマッタが生成されていることになる。
【０１５３】
上述のように定義したフォーマッタを用いると、ウィンドウを開くとき、フォーマッタが生成され、ウィンドウ表示用の割り付け処理が実行されることになる。ウィンドウが階層的に構成される時には、フォーマッタも階層的に生成され、割り付け処理を実行することになる。このことから、ウィンドウ木はフォーマッタ木として表現できる。
【０１５４】
ウィンドウを閉じてもフォーマッタは消えないことにする。すなわち、対応するウィンドウ木がなくなってもフォーマッタ木は残る。このようにすることで、ウィンドウ表示の履歴、すなわち、参照の履歴であるヒストリ木は、フォーマッタ木として表現できる。
【０１５５】
上記のように相互に関連づけられたヒストリ木、ウィンドウ木、フォーマッタ木をさらにデータ構造と関連づけるために、アンカーに対応するウィンドウとフォーマッタの状態の組み合わせを整理する。本実施例では、各状態をアンカーアイコンに表示することによって、複数の二次的木構造を表示する。
【０１５６】
アンカーに対応するフォーマッタとウィンドウの状態の組合せで、図６６に示すＳＬＥＥＰ，ＲＥＡＤＹ，ＳＵＢ，ＴＯＰの状態が定義される。これにＥＬＳＥＷＨＥＲＥの状態を加えたものをアンカー状態と呼ぶ。
（１）ＳＬＥＥＰ状態はアンカーに対応するフォーマッタは存在しないことを示す。
（２）ＲＥＡＤＹ状態はアンカーに対応するフォーマッタは存在するが、アンカーが参照するフィールドがウィンドウに表示されていないことを示す。
（３）ＴＯＰ状態はアンカーが参照するフィールドがトップのウィンドウ中に表示されていることを示す。
（４）ＳＵＢ状態はアンカーが参照するフィールドがサブウィンドウ中に表示されていることを示す。
（５）ＥＬＳＥＷＨＥＲＥ：  状態はアンカーが参照しているフィールドに対応するフォーマッタが、他のアンカーから生成されている。
【０１５７】
本実施例では、アンカーアイコンの表示を変化させることによってアンカー状態を示す。図６７はアンカー状態に対応するアンカーアイコンの一覧表を示すものである。
【０１５８】
本実施例では複数のアンカーが同じフィールドを参照することを許している。一方、フォーマッタはアンカーアイコンを選択して、ウィンドウを開くことで構築される。このことから、同一のフィールドに対応する複数のフォーマッタが定義される可能性がある。本実施例では簡単のためフィールドに対応するフォーマッタは一つであるという制限を設けた。このためＥＬＳＥＷＨＥＲＥ状態の表示が必要になった。なお、構成が多少複雑になるが、一つのフィールドに対して複数のフォーマッタを対応させることは難しいことではない。
【０１５９】
上述の５状態のアンカーから、図６８に示すように、特定の状態のものを選択することによって、フォーマッタ木、履歴の木、ウィンドウ木が得られる。
【０１６０】
図６４に前述の図５８（ｂ）で示した操作を行ったときの、本実施例による表示例を示す。
ウィンドウ木は、ＴＯＰとＳＵＢのアンカーによる構造である。
フォーマッタ木は、さらに、ＲＥＡＤＹのアンカーを加えた構造である。
ヒストリ木は、さらにＳＬＥＥＰとＥＬＳＥＷＨＥＲＥのアンカーを加えた構造である。これらのアンカーは参照の候補を示すことになる。
【０１６１】なお、図６５に示すように、アンカーアイコンをフィールドを表示するウィンドウ中でも用いることで、表示されている各木構造との関連を明確にすることもできる。
【０１６２】
本実施例では複数の木構造を理解しやすい形で利用者に表示する装置である。この機能に加えて、図６８の条件から必要な木構造を抽出し、抽出した木構造に対して、それぞれの特徴を用いた発明（第１〜第３の実施例）が併用される。
すなわち、
（１）文書構造への参照の履歴が木構造として保持され表示できる（第１の実施例）。
（２）ウィンドウ生成に用いられているフォーマッタ木に対して、割り付け処理を出力用のものに変更することによって、参照した部分の出力ができる（第２の実施例）。
（３）アンカー状態を保存することによって、編集を一時中断しても表示を復元できる（第３の実施例）。
【０１６３】
次に、本実施例における二次的木構造を表示する文書表示生成部６１６の動作について説明する。なお、他の部分の動作については、第１〜第３のいずれかの実施例においてすでに説明したとおりである。
【０１６４】
文書構造表示をするためにはアンカー状態に応じて処理を行なうので、そのための判別処理が必要である図６９はアンカー状態判別アルゴリズムを示すものである。
【０１６５】
（ステップＳ６９０）
アンカーの情報をアンカー管理部６１２から取得し、カレントアンカーとする。
【０１６６】
（ステップＳ６９１）
カレントアンカーの参照するフィールドには対応するフォーマッタがあるかどうかを調べる。これはカレントアンカーの参照フィールド６２ｃ３（図６２（ｃ））に示されるフィールドの対応フォーマッタ６２ｄ３（図６２（ｃ））を調べることによって行われる。
フォーマッタがなければＳＬＥＥＰであると判定する。
【０１６７】
（ステップＳ６９２）
ステップＳ６９１で得られたフォーマッタについて、対応するアンカー６２ａ２（図６２（ａ））がカレントアンカーに一致するか否かを調べる。カレントアンカーに一致しなければ、ＥＬＳＥＷＨＥＲＥであると判定する。
【０１６８】
（ステップＳ６９３）
ステップＳ６９１で得られたフォーマッタについて、対応するウィンドウがあるか否かを対応ウィンドウ６２ａ３（図６２（ａ））により調べ、対応ウィンドウがなければ、ＲＥＡＤＹであると判定する。
【０１６９】
（ステップＳ６９４）
ウィンドウはトップウィンドウか否かを上位ウィンドウ６２ｂ３（図６２（ｂ））により調べる。上位ウィンドウが指定されていればサブウィンドウ、指定されていなければトップウィンドウである。トップウィンドウでなければＳＵＢであると判定し、トップウィンドウであればＴＯＰであると判定する。
【０１７０】
図７０は文書構造表示生成部６１６１の処理を示す構造表示アルゴリズムである。
【０１７１】
［開始］
（ステップＳ７００）
ルートとなるアンカーに対して部分構造表示アルゴリズム（Ｂ）を適用する。［終了］
【０１７２】
図７１は部分構造表示アルゴリズムである。
（ステップＳ７１１）
アンカー状態の判別を図６９のアンカー状態判別アルゴリズム（Ａ）により行ない、ＥＬＳＥＷＨＥＲＥまたはＳＬＥＥＰであるときはステップＳ７１２へ、ＲＥＡＤＹ、ＴＯＰ、またはＳＵＢであるときはステップＳ７１３へ処理を進める。
【０１７３】
（ステップＳ７１２）
上記判定の結果アンカー状態がＥＬＳＥＷＨＥＲＥまたはＳＬＥＥＰであるときは対応するアンカーアイコンを表示する。
【０１７４】
（ステップＳ７１３）
上記判定の結果アンカー状態がＲＥＡＤＹ、ＴＯＰ、またはＳＵＢであるときは対応するアイコンを表示する。
【０１７５】
（ステップＳ７１４）
アンカーが参照しているフィールドにアンカーがあるか否を調べ、あれば次のステップＳ７１５へ行き、なければ元のルーチンへ戻る。
【０１７６】
（ステップＳ７１５）
フィールド中のすべてのアンカーについて部分構造表示アルゴリズム（Ｂ）を適用（再帰呼び出し）する。
【０１７７】
（ステップＳ７１６）
フィールド表示生成部６１６２により、フィールドを表す図形を生成し、表示部６１７により表示する。
【０１７８】
本実施例によれば、複数の二次的木構造、即ちヒストリ木、ウィンドウ木、フォーマッタ木等を明確に関連付け、図６４に示すように、すべての構造を一元的に表現し、同時に表示することができる。
【０１７９】
【発明の効果】
従来、ネットワーク構造から二次的に単純な二次的な構造を生成し、ネットワーク構造の扱いを簡単にすることは行なわれていたが、構造そのもの、あるいはその生成方法、あるいはその管理方法が単純すぎたのでために、必要な情報の表現や、割り付け処理や、ウィンドウの適切な階層表示などが困難であった。本発明によれ場、これらの問題点を解決できる。
【００１８０】
即ち、本発明によれば、ネットワーク構造から二次的な木構造を抽出し、その二次的な木構造を用いることによって、ネットワーク型文書の処理を簡便に行うことができ、また、定義された二次的木構造を利用者に表示することによって、利用者によるネットワーク型文書の操作を簡便にすることができる。
【０１８１】
また、本発明によれば、参照の履歴を、深さ方向に参照順序を、幅方向にノード候補を持つ木構造として管理し、利用者に提示するようにしたので、探索作業の経過を表現することのできる文書処理装置を得ることができる。
即ち、従来の履歴のリストも二次的な構造の一つであるが、構造が単純すぎるために履歴の管理に必要な情報のすべてを表現することができなかった。本発明によれば、ネットワーク構造から二次的に生成した木構造で履歴を表現することによって、作業の経過の履歴を分かり易く表現することができる。
【０１８２】
本発明によれば、利用者からの簡単な指示によってネットワーク構造の構成要素から、割り付け対象の木構造を生成する。割り付け対象の木構造は、二次的な木構造であるが、従来技術においてはその生成方法が単純すぎたため、利用者が必要な構造を得られなかった。従来技術においては利用者が選択したノードを起点として探索を開始しリーフあるいはループの検出によって停止することで割り付け対象の木構造を生成するが、利用者が必要とする割り付け対象を指定することができなかった。本発明によれば、利用者はこれまで計算機による勝手な解釈で抽出されてきた構造を提示することで、対話的に割り付けの対象の木構造を二次的な木構造として生成でき、それを利用した割り付け処理が容易となる。即ち、利用者からの指示によってネットワーク構造の構成要素から木構造を生成する手段を設け、生成された木構造に対して割り付け処理を適用することによって、ネットワーク構造の必要な部分を選択して割り付け処理することのできる文書処理装置を得ることができる。
【０１８３】
また、本発明によれば、ネットワーク構造中の任意の部分木構造を表示するウィンドウ階層の生成・管理を行うことができる。従って、従来木構造の編集にしか用いられなかったアウトラインエディタを、ネットワーク構造の編集に用いることが可能になる。
【０１８４】
また、本発明によれば、複数の二次的木構造を明確に関連づけ、すべての構造を一元的に表現し、同時に表示することのできるネットワーク型文書処理装置を得ることできる。これによって、上述の各二次的木構造による機能に加え、それらを組み合せてより一層の高度なネットワーク構造の操作を利用者に提供できる。
【図面の簡単な説明】
【図１】請求項１の発明に対応する構成を示す図
【図２】第１の実施例の構成を示すブロック図
【図３】第１の実施例の二次的に生成される木構造データのデータ構造を示すもので、（ａ）はヒストリ・ノード、（ｂ）と（ｃ）はヒストリ・ノードとアンカーの参照関係を示す図
【図４】カード型のインターフェイスによるネットワーク型の文書の探索機能における履歴の管理を説明するための図で、（ａ）はディスプレイ内に表示されているウィンドウの例で、図４（ａ）〜図１０（ａ）によりデータを探索する一連の経過を示し、（ｂ）は（ａ）のウィンドウに対応する本実施例によるヒストリ木の表示例を示し、（ｃ）は従来例による履歴リストの表示例である。
【図５】図４と同じく（ａ）はディスプレイ内に表示されているウィンドウの例、（ｂ）は（ａ）のウィンドウに対応する本実施例によるヒストリ木の表示例、（ｃ）は従来例による履歴リストの表示例
【図６】図４と同じく（ａ）はディスプレイ内に表示されているウィンドウの例、（ｂ）は（ａ）のウィンドウに対応する本実施例によるヒストリ木の表示例、（ｃ）は従来例による履歴リストの表示例
【図７】図４と同じく（ａ）はディスプレイ内に表示されているウィンドウの例、（ｂ）は（ａ）のウィンドウに対応する本実施例によるヒストリ木の表示例、（ｃ）は従来例による履歴リストの表示例
【図８】図４と同じく（ａ）はディスプレイ内に表示されているウィンドウの例、（ｂ）は（ａ）のウィンドウに対応する本実施例によるヒストリ木の表示例、（ｃ）は従来例による履歴リストの表示例
【図９】図４と同じく（ａ）はディスプレイ内に表示されているウィンドウの例、（ｂ）は（ａ）のウィンドウに対応する本実施例によるヒストリ木の表示例、（ｃ）は従来例による履歴リストの表示例
【図１０】図４と同じく（ａ）はディスプレイ内に表示されているウィンドウの例、（ｂ）は（ａ）のウィンドウに対応する本実施例によるヒストリ木の表示例、（ｃ）は従来例による履歴リストの表示例
【図１１】フィールド参照部２４の処理の内容を表すフィールド参照アルゴリズムのフロー図
【図１２】ヒストリ木管理部２５の処理の内容を表すヒストリ木アルゴリズムのフロー図
【図１３】ヒストリ木表示生成部２６の処理の内容を表すヒストリ木表示アルゴリズムのフロー図
【図１４】第１の実施例に用いるネットワーク型文書のデータ構造の例を示す図で、（ａ）はフィールドのデータ構造、（ｂ）はアンカーのデータ構造、（ｃ）はフィールドとアンカーの参照関係を示す図
【図１５】割り付け対象木構造を利用するネットワーク型文書処理装置の概略構成を示す図
【図１６】割り付け対象木構造を利用するネットワーク型文書処理装置の構成を示すブロック図
【図１７】（ａ）はフォーマッタ、（ｂ）はアンカー、（ｃ）はフォーマッタとアンカーの参照関係を示す図
【図１８】文書を表現する木構造の例を示す図
【図１９】図１８の木構造に対し従来技術により割り付け処理を行った結果を示す図
【図２０】図１８の構造を持つ文書の表現例を示す図
【図２１】フォーマッタの階層構成を示す図
【図２２】フォーマッタの階層構成を示し、図２３と共に割り付け処理の過程を説明するための図
【図２３】フォーマッタによって割り付けられる領域の階層構成を示し、図２２と共に割り付け処理の過程を説明するための図
【図２４】ネットワーク構造の簡単な例を示す図
【図２５】図２４のネットワーク構造の一部をディスプレイ上に表示した例を示す図
【図２６】従来技術によって図２４のネットワーク構造から得られる部分木構造の例を示す図
【図２７】（ａ）〜（ｃ）は、図２８に示すネットワーク構造から木構造を指定する様子を示す図。
【図２８】本実施例を説明するためのネットワーク構造の例を示す図
【図２９】（ａ）および（ｂ）は割り付け処理において用いる選択メニューの例を示す図
【図３０】ディスプレイ上に表示された木構造の参照の例を示す図（太線部分が選択部分である）
【図３１】図３０に示す木構造の選択によって生成されたフォーマッタ木を示す図
【図３２】図３１のフォーマッタ木によって、全体の割り付け処理を行なった結果を示す図
【図３３】木構造の他の参照例を示す図
【図３４】図３３の割り付け結果を示す図
【図３５】図３０と図３３の指定を同時に行なった参照例を示す図
【図３６】図３５の割り付けを行った結果を示す図
【図３７】図３５に示す木構造の選択によって生成されたフォーマッタ木を示す図
【図３８】図１８に示す木構造の論理構造の全体を表示し、利用者が矩形領域を指定して部分木構造を定義する例を示す図
【図３９】図３８の選択された部分木構造を割り付けた結果を示す図
【図４０】図３８の選択された矩形領域の木構造から生成されたフォーマッタ木を示す図
【図４１】フォーマッタ木管理部１６５の処理内容を表すフォーマッタ木管理アルゴリズムのフローを示す図
【図４２】フォーマッタ実行制御部１６７の処理における部分割り付け処理アルゴリズムのフローを示す図
【図４３】フォーマッタ木表示生成部１６６の処理内容を表すフォーマッタ木表示アルゴリズムのフローを示す図
【図４４】表示対象木構造を利用するネットワーク型文書処理装置の概略構成を示す図
【図４５】ウィンドウの組合せによる表示を行うネットワーク型文書処理装置の構成を示す図
【図４６】（ａ）はウィンドウ、（ｂ）はアンカーのデータ構造
【図４７】ウィンドウ木とアンカーの参照関係を示す図
【図４８】ウィンドウの表示領域の例を示す図
【図４９】従来のウィンドウを説明するための図で、（ａ）はネットワーク構造例、（ｂ）〜（ｃ）はカード型のウィンドウを示す
【図５０】従来の階層型ウィンドウの説明をするための図で、（ａ）はネットワーク構造の例、（ｂ）はノードを選択するためのメニュー
【図５１】図５０（ａ）のネットワーク構造の文書のウィンドウを階層的に表示して行く様子を示す図
【図５２】表示情報（ＴＯＰ、ＳＵＢ、ＯＦＦ）を含むネットワーク構造を示す図
【図５３】（ａ）は図５２の表示情報とその構造から得られるウィンドウを示し、（ｂ）はそれに対応するウィンドウ木を示し、（ｃ）はメニューを示す図
【図５４】複数のウィンドウ木やフィールドの共有がある場合であって、（ａ）は表示ごとに状態を保持していることを示し、（ｂ）はそのウィンドウ表示例を示す図。
【図５５】（ａ）はＳＵＢの情報のみが記述されたネットワーク構造、（ｂ）はそのウィンドウ表示、（ｃ）は領域の情報をも加えることにより表示領域が指定されたウィンドウ表示の例を示す図
【図５６】ウィンドウ木管理部４５５の処理内容を表すウィンドウ木管理アルゴリズムのフローを示す図
【図５７】フィールド表示生成部４５６の処理内容を表すフィールド表示アルゴリズム（Ａ）のフローを示す図
【図５８】（ａ）（ｂ）は図２８に示される文書構造をある手順で参照たときの結果の例を示す図
【図５９】図５８（ａ）の表示が得られているときの、各木構造を示す図で、（ａ）はヒストリ木、（ｂ）はウィンドウ木、（ｃ）はフォーマッタ木を示す図
【図６０】請求項２の発明に対応する構成を示す図
【図６１】第２の実施例の構成を示すブロック図
【図６２】第２実施例のデータ構造を示すもので、（ａ）はフォーマッタ、（ｂ）はウィンドウ、（ｃ）はアンカー、（ｄ）はフィールドの構造を示す図
【図６３】フォーマッタ、アンカー、ウィンドウの参照関係を示す図
【図６４】図５８（ｂ）で示した操作を行ったときの、第４の実施例による表示例を示す図
【図６５】アンカーアイコンをフィールドを表示するウィンドウ中にも用いることで、構造の表示との関連を明確にした表示例を示す図
【図６６】フォーマッタとウィンドウの状態の組合せによるアンカー状態の定義を示す図
【図６７】アンカー状態に対するアンカーアイコンを示す図
【図６８】アンカー状態と、その選択によって抽出表示される各木構造との関係を定義する図
【図６９】アンカー状態の判別を行う処理のフローを示す図
【図７０】文書構造表示生成部６１６１における構造表示処理のフロー示す図
【図７１】文書構造表示生成部６１６１における部分構造表示処理のフローを示す図
【符号の説明】
１１，１５１，４４１，６０１…文書管理手段、１２…論理単位参照手段、１３…履歴木構造管理手段、１５１…木構造割り付け手段、１５３…割り付け対象木構造管理手段、４４２…表示対象木構造管理手段、６０２…二次的木構造表示手段、６０３…二次的木構造管理手段、
２１，１６１，６１１…文書格納部、２２，１６２，６１２…文書管理部、２２１，１６２１，４５２１，６１２１，…アンカー管理部、２２２，１３２２，４５２２，６１２２…フィールド管理部、２３，１６３，４５４，６１３…入力部、２４…フィールド参照部、２４１，１６４，４５４，６１４…アンカー・フィールド選択部、２４２…フィールド表示生成部、２５…ヒストリ木管理部、２６…ヒストリ木表示生成部、２７，１６８，４５７，６１７…表示部、１６５，６１５…フォーマッタ木管理部、１６６…フォーマッタ木表示生成部、４５５…ウィンドウ木管理部、６１６…文書表示生成部、６１６１…文書構造表示生成部、４５６，６１６２…フィールド表示生成部、１６７，６１８…フォーマッタ実行制御部、１６９，６１９…印刷部。
【図１】
0003590974.tif 000002
【図２】
0003590974.tif 000003
【図３】
0003590974.tif 000004
【図４】
0003590974.tif 000005
【図５】
0003590974.tif 000006
【図６】
0003590974.tif 000007
【図７】
0003590974.tif 000008
【図８】
0003590974.tif 000009
【図９】
0003590974.tif 000010
【図１０】
0003590974.tif 000011
【図１１】
0003590974.tif 000012
【図１２】
0003590974.tif 000013
【図１３】
0003590974.tif 000014
【図１４】
0003590974.tif 000015
【図１５】
0003590974.tif 000016
【図１６】
0003590974.tif 000017
【図１７】
0003590974.tif 000018
【図１８】
0003590974.tif 000019
【図１９】
0003590974.tif 000020
【図２０】
0003590974.tif 000021
【図２１】
0003590974.tif 000022
【図２２】
0003590974.tif 000023
【図２３】
0003590974.tif 000024
【図２４】
0003590974.tif 000025
【図２５】
0003590974.tif 000026
【図２６】
0003590974.tif 000027
【図２７】
0003590974.tif 000028
【図２８】
0003590974.tif 000029
【図２９】
0003590974.tif 000030
【図３０】
0003590974.tif 000031
【図３１】
0003590974.tif 000032
【図３２】
0003590974.tif 000033
【図３３】
0003590974.tif 000034
【図３４】
0003590974.tif 000035
【図３５】
0003590974.tif 000036
【図３６】
0003590974.tif 000037
【図３７】
0003590974.tif 000038
【図３８】
0003590974.tif 000039
【図３９】
0003590974.tif 000040
【図４０】
0003590974.tif 000041
【図４１】
0003590974.tif 000042
【図４２】
0003590974.tif 000043
【図４３】
0003590974.tif 000044
【図４４】
0003590974.tif 000045
【図４５】
0003590974.tif 000046
【図４６】
0003590974.tif 000047
【図４７】
0003590974.tif 000048
【図４８】
0003590974.tif 000049
【図４９】
0003590974.tif 000050
【図５０】
0003590974.tif 000051
【図５１】
0003590974.tif 000052
【図５２】
0003590974.tif 000053
【図５３】
0003590974.tif 000054
【図５４】
0003590974.tif 000055
【図５５】
0003590974.tif 000056
【図５６】
0003590974.tif 000057
【図５７】
0003590974.tif 000058
【図５８】
0003590974.tif 000059
【図５９】
0003590974.tif 000060
【図６０】
0003590974.tif 000061
【図６１】
0003590974.tif 000062
【図６２】
0003590974.tif 000063
【図６３】
0003590974.tif 000064
【図６４】
0003590974.tif 000065
【図６５】
0003590974.tif 000066
【図６６】
0003590974.tif 000067
【図６７】
0003590974.tif 000068
【図６８】
0003590974.tif 000069
【図６９】
0003590974.tif 000070
【図７０】
0003590974.tif 000071
【図７１】
0003590974.tif 000072