(57)【特許請求の範囲】
【請求項１】
論理構造を持つ構造化文書を編集処理する文書処理装置とともに利用される構造化文書の文書部品管理装置において、
登録要求された文書若しくは文書の一部を、１以上の文書部品を含む処理対象として前記文書処理装置から受け付ける文書部品受付手段と、
前記文書部品受付手段が受け付けた処理対象を１以上保持する文書部品保持手段と、
前記文書部品保持手段が保持する処理対象を解析し、該処理対象に含まれる文書部品の論理構造を特定する論理構造特定手段と、
前記論理構造特定手段が特定した論理構造に基づいて前記処理対象の論理構造を構成する処理対象体を先頭から順次確認し、該処理対象体の論理内容情報から文書部品の先頭となる処理対象体が確認される毎に、該処理対象体から得られる論理階層情報および文書部品の開始位置情報を記憶手段に保管するとともに、該処理対象体の論理内容情報に対応する論理情報を該処理対象体の論理構造上子孫となる内容部から得て前記論理階層情報および文書部品の開始位置情報に追加して前記記憶手段に保管し、文書部品の先頭となる処理対象体が確認された際に前記記憶手段に論理階層情報が保管されている場合には、前記記憶手段に保管されている論理階層情報が示す論理階層が該文書部品の先頭となる処理対象体が確認された論理階層と同じ若しくは小さいことを条件に、前記記憶手段に保管されている論理階層情報および該論理階層情報とともに保管されている論理情報および文書部品の開始位置情報を取り出し、該論理情報および文書部品の開始位置情報および直前に確認された内容部から得られた文書部品の終了位置情報を含む文書部品のインデックス情報を生成し、処理対象体の確認が完了しても前記記憶手段に論理階層情報が保管されている場合にも、前記記憶手段に保管されている論理階層情報および該論理階層情報とともに保管されている論理情報および文書部品の開始位置情報を取り出し、該論理情報および文書部品の開始位置情報および直前に確認された内容部から得られた文書部品の終了位置情報を含む文書部品のインデックス情報を生成するインデックス生成手段と、
前記インデックス生成手段により生成されたインデックスを１以上保持するインデックス保持手段と
を具備することを特徴とする文書部品管理装置。
【請求項２】
前記文書部品のキーワードを設定するキーワード設定手段と、
前記キーワード設定手段により設定されたキーワードを前記文書部品と対応させて保持するキーワード保持手段と、
前記文書部品が複数組み合わされて文書とされた場合に、該文書部品毎のキーワードを合成して１のキーワード集合に変換するキーワード変換手段と
を更に具備することを特徴とする請求項１記載の文書部品管理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、構造化文書を編集処理する文書処理装置に関し、詳しくは文書処理装置とともに利用される文書部品管理装置に関する。
【０００２】
【従来の技術】
論理構造を持つ構造化文書の代表的なものとして、ＯＤＡ（Office Document Architecture ISO8613-2）で規定された文書がある。この文書は共通論理構造、共通割付け構造、特定論理構造、特定割付け構造の４つの構造から構成されており、論理構造は章・節・段落といった文書の構成部品の組み合わせで構成されている。ここで、ＯＤＡの文書構造を図３１に、文書処理モデルを図３２に示す。図３２の文書処理モデルによれば、文書の構造は内容の表示処理が不必要な場合、共通論理構造と特定論理構造でよい。文書の特定論理構造は共通論理構造に従った形式となる。したがって、文書処理装置で文書を保存する際に特定論理構造を保存すると、その保存の構造は共通論理構造に則った形式となる。
【０００３】
【発明が解決しようとする課題】
既存のネットワークシステムに接続されたファイルサーバや、ＵＮＩＸファイルシステムなどでは、文書のそのものを１単位としてとらえて文書の保管を行っている。このため、これらのファイルシステムと組み合わされた文書処理装置では、文書の内容や構造といった文書内部の構造で検索などを行うことは不可能であった。したがって、「ある表枠のある文書」というような検索条件を指定して、目的の文書を見つけ出すということはできなかった。また、文書の内部構造を不完全なまま保存することができないという不便さがあった。
【０００４】
なお、記憶装置に保存されている文書やデータの検索に関する技術として、例えば、文書を分類による階層とインデックスにより管理するようにした文書保管検索システムが特開昭６０−１２９８７３号公報に、また、文書内に設定された検索項目でも検索できるようにした文書作成装置が特開昭６１−１００８３４号公報に、さらには多面的なデータ検索を容易にした文書管理装置が特開平２−９６２６８号公報にそれぞれ提案されている。しかし、これらの文書処理装置についても、文書内部の構造での検索については考慮されておらず、上述した課題を解決するに至っていない。
【０００５】
一方、文書処理装置と大規模な保存管理装置（以下、データベースという）の組み合わせは、例えば次のような場面で用いられることが多い。
【０００６】
（１）一つの文書形式をひな型とし、文書を構成するグラフ、表データ、図などをデータベースで参照して、多数の文書を作成する場合。
【０００７】
（２）グラフ、表データ、図などの文書部品を用途に応じて様々な組み合わせで用い、多数の文書を作成する場合。
【０００８】
（３）コピー・ペースト機能を利用して文書を作成する場合。
【０００９】
（４）様々な観点からの検索の要求を満たすため、文書部品をデータベースに登録するときにキーワードを設定する場合。
【００１０】
しかしながら、上記の使用形態においては、データベースに文書部品を登録する都度、キーワードを設定しなければならず、また、複数のひな型から取り出した文書部品を組み合わせて作成した文書では、キーワードの組み合わせを管理する必要があった。さらに、キーワードの設定は文書の作成者ではなく登録作業者に依存しているため、同種の内容に対して同じキーワードが設定されている保障がなく、データベースの品質が低下するという問題点があった。
【００１１】
さらに、従来の文書処理装置とデータベースを組み合わせたシステムでは、外部のデータベースからの参照文書部品を、さらに外部のデータベースに登録する際に、参照状態のまま登録していたが、参照状態のまま登録すると、同一あるいは異サーバのデータベース間での参照のネストが生じるため、参照関係がわかりにくくなるという問題点があった。また、ネストの途中のデータベースが稼動していなかったりした場合など、参照の更新などにより文書部品の内容に不整合が生じるという問題点があった。
【００１２】
この発明は、文書の内部構造による検索を可能とし、かつ文書部品として文書の内部構造のみを保存できるようにした構造化文書の文書部品管理装置を提供することを目的とする。
【００１３】
また、この発明は、文書部品作成時における文書部品個別のキーワード設定、及び文書部品を組み合わせた場合の適切なキーワード設定を可能とし、かつ個々の文書のキーワード設定の管理を不要とした構造化文書の文書部品管理装置を提供することを目的とする。
【００１４】
さらに、この発明は、参照の多層化による関係の複雑さを解消するとともに、更新のタイミングによる内容の不整合を防ぐことができる構造化文書の文書部品管理装置を提供することを目的とする。
【００１５】
【課題を解決するための手段】
上述した目的を達成するため、請求項１の発明は、論理構造を持つ構造化文書を編集処理する文書処理装置とともに利用される構造化文書の文書部品管理装置において、登録要求された文書若しくは文書の一部を、１以上の文書部品を含む処理対象として前記文書処理装置から受け付ける文書部品受付手段と、前記文書部品受付手段が受け付けた処理対象を１以上保持する文書部品保持手段と、前記文書部品保持手段が保持する処理対象を解析し、該処理対象に含まれる文書部品の論理構造を特定する論理構造特定手段と、前記論理構造特定手段が特定した論理構造に基づいて前記処理対象の論理構造を構成する処理対象体を先頭から順次確認し、該処理対象体の論理内容情報から文書部品の先頭となる処理対象体が確認される毎に、該処理対象体から得られる論理階層情報および文書部品の開始位置情報を記憶手段に保管するとともに、該処理対象体の論理内容情報に対応する論理情報を該処理対象体の論理構造上子孫となる内容部から得て前記論理階層情報および文書部品の開始位置情報に追加して前記記憶手段に保管し、文書部品の先頭となる処理対象体が確認された際に前記記憶手段に論理階層情報が保管されている場合には、前記記憶手段に保管されている論理階層情報が示す論理階層が該文書部品の先頭となる処理対象体が確認された論理階層と同じ若しくは小さいことを条件に、前記記憶手段に保管されている論理階層情報および該論理階層情報とともに保管されている論理情報および文書部品の開始位置情報を取り出し、該論理情報および文書部品の開始位置情報および直前に確認された内容部から得られた文書部品の終了位置情報を含む文書部品のインデックス情報を生成し、処理対象体の確認が完了しても前記記憶手段に論理階層情報が保管されている場合にも、前記記憶手段に保管されている論理階層情報および該論理階層情報とともに保管されている論理情報および文書部品の開始位置情報を取り出し、該論理情報および文書部品の開始位置情報および直前に確認された内容部から得られた文書部品の終了位置情報を含む文書部品のインデックス情報を生成するインデックス生成手段と、前記インデックス生成手段により生成されたインデックスを１以上保持するインデックス保持手段とを具備することを特徴とする。
【００１６】
また、請求項２の発明は、請求項１の発明において、前記文書部品のキーワードを設定するキーワード設定手段と、前記キーワード設定手段により設定されたキーワードを前記文書部品と対応させて保持するキーワード保持手段と、前記文書部品が複数組み合わされて文書とされた場合に、該文書部品毎のキーワードを合成して１のキーワード集合に変換するキーワード変換手段とを更に具備することを特徴とする。
【００１８】
【作用】
第１の発明に係わる構造化文書の文書部品管理装置によれば、ユーザが指定した文書あるいは文書部品（以下、文書部品と総称する）を解析して、文書部品を構成する論理構造をすべて特定し、その構造情報および物理的な位置情報をインデックス内に保管するようにしているので、文書の内部構造を文書としては不完全な形式で保存することができる。また、インデックス内部に文書構造が保持されているため、文書の内部構造を条件とした検索ができる。
【００１９】
第２の発明に係わる構造化文書の文書部品管理装置によれば、文書部品単位に属性としてキーワードを設定し、また文書部品単位にキーワードを対応させて保持するようにしたので、文書部品作成時に文書部品個別にキーワードを設定することができる。また、文書部品を組み合わせて用いても、適切なキーワードが自動的に設定される。また、キーワードの設定が登録作業者に依存しなくなるため、データベースの品質を向上させることができる。さらに、登録管理者が文書作成者と異なる場合に、個々の文書のキーワード設定の管理を行わなくてすむ。
【００２１】
【実施例】
以下、この発明に係わる構造化文書の文書部品管理装置（この実施例では、単に文書部品管理装置と呼ぶ）の実施例１〜３と、その応用例である実施例４を図面を参照しながら説明する。
【００２２】
実施例１
図１は、実施例１における文書部品管理装置の機能的な構成を示すブロック図である。
【００２３】
この文書部品管理装置１０は、処理内容とともに文書の少なくとも一部を処理対象として受け付けて論理的構造を持つ構造化文書を編集処理する文書処理装置とともに利用される文書部品管理装置であって、登録要求とともに処理対象を文書部品として文書処理装置から受け付ける文書部品受付手段１１と、前記受け付けた文書部品を解析して論理構造を特定する論理構造特定手段１２と、前記文書部品を１以上保持するスタックからなる文書部品保持手段１３と、前記特定した論理構造のインデックスを生成するインデックス生成手段１４と、前記生成されたインデックスを１以上保持するインデックス保持手段１５とから構成されている。
【００２４】
図２は、図１に示した文書部品管理装置１０を実現するためのハードウェア構成を示したもので、文書処理装置としての機能を具えた例えばワークステーションやパソコンなどのブロック図を示している。
【００２５】
図において、表示装置１は、ＣＲＴなどのディスプレイ画面を具え、画面上にデータやリストなどを表示する。表示装置１での表示は表示制御部２により制御されている。
【００２６】
キーボード３は、コマンドや文字列などのデータ入力用の入力装置であり、画面上で指示選択を行うためのマウス４が接続されている。キーボード３やマウス４から入力された各種のデータや指示は、キーボード／マウス制御部５を通じてＣＰＵ９に送られる。
【００２７】
ディスク装置６は、磁気ディスクなどの２次記憶装置で構成され、文書データをファイル形式で格納している。また、文書部品の論理構造を保持するインデックスもディスク装置６に格納されている。ディスク装置６でのデータの入出力はディスク装置制御部７で制御されている。
【００２８】
主記憶装置８は、ＲＡＭなどのメモリ装置で構成されるバッファ記憶であり、各種の制御プログラム、キーボード３及びマウス４から入力された各種のデータや指示などを一時的に記憶する。
【００２９】
ＣＰＵ（中央処理装置）９は、システム全体の制御を行うと共に、前記キーボード／マウス制御部５から出力される各種の命令に基づいて所定のデータに対する演算処理を行う回路であり、所定の制御プログラムに従って前述の文書部品管理装置１０の機能を実現している。
【００３０】
上記文書部品管理装置１０で使用する共通論理構造を図３〜図５に示す。図３の見出しの論理構造、図４の本文中の枠の論理構造、並びに図５の入れ子枠の論理構造は、図３１の共通論理構造に対応している。文書データはこれらの論理構造と凡例に示すルールに従って作成されることになる。
【００３１】
次に、上述した文書部品管理装置１０において、文書部品の解析とインデックス登録の処理の流れを図６〜図９のフローチャートを参照しながら説明する。また、当該説明に際して、具体的な文書若しくは文書部品の例として、図１１を適宜参照する。図１１は、文書部品の論理構造とインデックスとの関係を示したもので、同図上部に示した文書に、同図下部に示した特定論理構造が対応しているものである。
【００３２】
最初に、上記処理の全体的な流れを図６のフローチャートを用いて説明する。文書部品管理装置１０は、ユーザからの文書部品登録要求を受付け（ステップ１０１）、登録要求されたのは文書そのものであるか、文書部品であるかを判断する（ステップ１０２）。登録要求されたものが文書そのものである場合には、後に文書に付随する文書概要部の処理が必要となるため、「文書名」、「ページ数」、文書が開始される物理位置などの情報をスタックに保管する（ステップ１０３）。文書が開始される物理位置とは、当該文書をファイル形式で格納しているディスク装置６のアドレスである。ステップ１０３の処理を終えるか、登録要求されたものが文書部品であった場合には、文書部品構造の解析とインデックスの構築を行う（ステップ１０４）。なお、ステップ１０４の処理の流れは、図７のフローチャートで示されるものでである。
【００３３】
ステップ１０４の処理、つまり、図７に示す処理では、まず、処理対象となる対象体の種別と論理階層の確認を行う（ステップ２０１）。処理対象となる対象体とは、当初は、登録要求に応じて特定される対象体であり、登録要求されたものが文書そのものである場合には文書論理根の直下の対象体であり、登録要求されたものが文書部品である場合には当該文書部品の先頭の対象体である。例えば、図１１に示した文書そのものが登録要求された場合には、オブジェクト識別子が３の文書論理根の直下に位置する、オブジェクト識別子が３０の対象体が処理対象となる対象体として特定される。また、図１１に示した文書の「１．１節」が登録要求された文書部品であれば、オブジェクト識別子が３０２の対象体が処理対象となる対象体として特定される。なお、処理対象となる対象体は、この後の処理で別の対象体となるが、この処理の順序は、文書の流れに沿うもので、例えば、図１１の上部に示した文書では、上から下に向かう順序となる。この処理の順序の具体例については、以下に、都度、説明を行う。
【００３４】
処理対象となる対象体の種別と論理階層の確認を行った結果、まずは、処理対象となる対象体があるか否かを判断する（ステップ２０２）。処理対象となる対象体があるときは、続いて、スタックの最後に「章・節」の情報が保管されているかどうかを判断する（ステップ２０３）。「章・節」の情報については後述するが、最初にステップ２０３の処理を実行する際には、「章・節」の情報が保管されていることはないため、ここでは、「章・節」の情報が保管されていない場合を説明する。
スタックの最後に「章・節」の情報が保管されていない場合には、処理対象となる対象体の種別を判断する（ステップ２０７）。対象体の種別が複合論理対象体であるときは、文書部品論理対象体の処理を行う（ステップ２１０）。文書部品論理対象体の処理は、図８のフローチャートで示した処理である。
【００３５】
この処理では、最初に、処理対象となる対象体の種別、論理階層、開始の物理位置をスタックに保管する（ステップ３０１）。対象体の種別は、ステップ３０１の処理が、ステップ２１０の処理の一部であることから、複合論理対象体であり、論理階層は、当該文書の文書論理根をルートとした場合の論理階層を示したものである。また、開始の物理位置は、当該対象体（処理対象となる対象体）のディスク装置６内でのアドレスである。
続いて、処理対象となる対象体の論理内容が「枠」または「章・節」のどちらであるかを判断する（ステップ３０２）。複合論理対象体の論理内容としては、「枠」や「章・節」以外にも「見出し」や「枠本体」等が存在するが、図３乃至５に示したように、文書の論理構造では、「見出し」を論理内容とする複合論理対象体は、「章・節」を論理内容とする複合論理対象体の直下に位置し、「枠本体」を論理内容とする複合論理対象体は、「枠」を論理内容とする複合論理対象体の直下に位置するため、ステップ３０２の処理を行う際には、論理内容が「枠」または「章・節」のどちらかになるためである。
処理対象の対象体の論理内容が「章・節」であるときは、その下（論理階層が深い）に位置する論理内容が「見出し文字段落」の基本論理対象体の直下の内容部をスタックの最後の情報に追加する（ステップ３０３）。このため、当該処理においては、処理対象となる対象体は、論理内容が「見出し文字段落」の基本論理対象体の直下の内容部まで、文書の流れに沿って進められることとなる。例えば、ステップ３０２の処理で、図１１に示すオブジェクト識別子が３０の複合論理対象体を処理したとすると、その論理内容が「章・節」であるため、その下に位置する「見出し文字段落」を論理内容とする基本論理対象体（オブジェクト識別子３００１）の直下の内容部（オブジェクト識別子３００１０）の処理を行うためには、処理対象となる対象体を、オブジェクト識別子が３００、３０００、３００００、３００１、３００１０の各対象体の順に変更することとなる。
【００３６】
一方、ステップ３０２で処理した複合論理対象体の論理内容が「枠」であるときは、枠構造の処理を行う（ステップ３０４）。枠構造の処理は、図９のフローチャートで示した流れとなる。この処理では、最初に、次に処理対象となる対象体の論理内容が「枠本体」または「枠外テキスト域」のどちらであるかを判断する（ステップ４０１）。この判断は、文書の論理構造が図４に示すように、論理内容が「枠」の複合論理対象体の直下には、論理内容が「枠本体」または「枠外テキスト域」のいずれかの複合論理対象体が位置することに基づくものである。
そして、処理対象となる対象体の論理内容が「枠外テキスト域」であるときは、次の対象体の論理内容が「枠外テキスト域段落」または「枠見出し」のどちらであるかを判断する（ステップ４０２）。この判断も、同様に、図４に示す文書の論理構造に基づくものである。処理対象となる対象体の論理内容が「枠見出し」であるときは、その直下に位置する論理内容が「枠見出し文字段落」の基本論理対象体の内容部をスタックの最後の情報に追加し（ステップ４０３）、処理対象となる対象体の論理内容が「枠外テキスト域段落」であるときは、論理内容が「枠外テキスト域段落」である基本論理対象体の内容部の処理を行う（ステップ４０５）。基本論理対象体の内容部の処理は、処理対象となる対象体を変更するだけの処理で、スタックへの情報の保管を行うわけではない。また、ステップ４０１で処理対象となる対象体の論理内容が「枠本体」であると判断されたときは、当該対象体の直下にある基本論理対象体の内容部の処理を行う（ステップ４０４）。
【００３７】
ステップ４０３、４０４、４０５のいずれかの処理を行うと、続いて、次の処理対象となる対象体の種別と論理階層の確認を行い（ステップ４０６）、当該対象体があるかどうかを判断する（ステップ４０７）。処理対象となる対象体があるときは、スタックに保管されている論理階層と、処理対象となる対象体の論理階層の大きさを比較する（ステップ４０８）。比較の結果、処理対象となる対象体の論理階層が大きい場合には、枠構造が終了していないため、ステップ４０１に戻り、枠構造が終了するまで処理を上記処理を繰り返す。この判断は、スタックに保管されている論理階層は、ステップ３０１で保管された論理内容が「枠」の複合論理対象体であるため、それよりも処理対象となる対象体の論理階層が大きい場合には、当該対象体が、ステップ３０１で保管された論理内容が「枠」の複合論理対象体の下に位置することを理由に行われるものである。
また、ステップ４０８での比較の結果、処理対象となる対象体の論理階層が同じか小さい場合やステップ４０７での確認で処理対象となる対象体が無かった場合には、枠構造が終了したことを意味しているため、スタックの最後に保管してある枠構造に関する情報を取り出し（ステップ４０９）、取り出した枠構造に関する情報に、最後に処理を行った対象体の物理位置を付加し、インデックスに追加する（ステップ４１０）。インデックスに追加する枠構造に関する情報とは、ステップ３０１でスタックに保管を行った情報であり、このとき、インデックスには、部品種別が枠構造である旨を示す情報と枠種を示す情報を併せて追加する。また、インデックスに追加する情報には、論理内容が「枠見出し文字段落」の基本論理対象体が含まれていた場合は、ステップ４０３でスタックに保管した情報を含むこととなる。また、最後に処理を行った対象体とは、ステップ４０３、４０４、４０５のいずれかの処理で対象となった対象体であり、その物理位置とは、当該対象体のディスク装置６内でのアドレスである。
【００３８】
ここで、図７に示すフローチャートの説明に戻る。ステップ２０７の判断で、処理対象となる対象体の種別が複合論理対象体であった場合には上述した処理を行うが、処理対象となる対象体の種別が基本論理対象体であるときは、基本論理対象体の処理（ステップ２０８）、その内容部の処理（ステップ２０９）を行い、ステップ２０１の処理に戻る。このステップ２０７とステップ２０９で行う処理は、処理対象となる対象体を変更するだけの処理で、スタックへの情報の保管を行うわけではない。
【００３９】
さて、ステップ２０１の処理に戻ると、再び、処理対象となる対象体の種別と論理階層の確認を行い（ステップ２０１）、対象体があるかどうかを判断する（ステップ２０２）。ここで、対象体があるときは、スタックの最後に「章・節」の情報が保管されているかどうかを判断し（ステップ２０３）、保管されていない場合には、上述した処理と同様の処理を行う。
一方、スタックの最後に「章・節」の情報が保管されている場合には、スタックに保管されている論理階層と、処理対象となる対象体の論理階層の大きさを比較する（ステップ２０４）。上述したように、スタックに保管される情報は、ステップ１０３の処理における「文書名」、「ページ数」、文書が開始される物理位置などの情報、ステップ３０１の処理における対象体の種別、論理階層、開始の物理位置、ステップ３０３の処理における論理内容が「見出し文字段落」の基本論理対象体の直下の内容部、ステップ４０３の処理における論理内容が「枠見出し文字段落」の基本論理対象体の内容部であるが、ステップ３０１で情報を保管した複合論理対象体の論理内容が「枠」であった場合には、当該情報はステップ４０９の処理で取り出されているため、スタックの最後に論理内容が「見出し文字段落」の基本論理対象体の直下の内容部が保管されていれば、併せて論理内容が「章・節」の複合論理対象体の種別、論理階層、開始の物理位置が保管されている。また、ステップ１０３の処理における「文書名」、「ページ数」、文書が開始される物理位置などの情報以外が保管されている点に着目しても当該判断は可能である。
【００４０】
続いて、処理対象となる対象体の論理階層が、スタックに保管されている論理階層よりも大きい場合には、スタックに保管されている論理内容が「章・節」の複合論理対象体を先頭とする「章・節」の処理が終了していないと判断されるため、ステップ２０７の処理に進み、上述した処理と同様の処理を行う。このような状態が発生するのは、文書の構造上、「章・節」の中に「章・節」を含むことができるためである。
【００４１】
また、処理対象となる対象体の論理階層が、スタックに保管されている論理階層よりも小さいか同じである場合、スタックに保管されている論理内容が「章・節」の複合論理対象体を先頭とする「章・節」の処理が終了したことを意味しているため、スタックの最後に保管してある見出し構造に関する情報を取り出し（ステップ２０５）、取り出した見出し構造に関する情報に、最後に処理を行った対象体の物理位置を付加してインデックスに追加する（ステップ２０６）。ステップ２０５で取り出す見出し構造に関する情報は、見出し構造を構成する部分の情報で、例えば、図１１に示すオブジェクト識別子が３００の対象体を先頭とする構造の情報であり、ステップ３０１の処理でスタックに保管した対象体の種別、論理階層、開始の物理位置に、ステップ３０３の処理で保管した論理内容が「見出し文字段落」の基本論理対象体の直下の内容部を加えたものである。ステップ３０１の処理でスタックに保管した対象体の開始の物理位置は、論理内容が「章・節」である複合論理対象体の開始の物理位置であり、文書の構造上、論理内容が「見出し」の複合論理対象体の開始の物理位置でもあるため、見出し構造に関する情報とすることができる。このとき、インデックスには、部品種別が見出し構造である旨を示す情報を併せて追加する。ステップ２０６でインデックスに追加する最後に処理を行った対象体の物理位置は、ステップ２０９、ステップ３０３、ステップ４０３、４０４、４０５のいずれかの処理で対象となった対象体のディスク装置６内でのアドレスである。
【００４２】
また、このような処理を繰り返し、ステップ２０２で対象体がないと判断された場合には、スタックに情報が保管されているかどうかを判断する（ステップ２１１）。これは、文書または文書部品を構成する全ての対象体に対する処理が終了しても、階層の異なる見出し構造が存在した場合や、枠構造で文書部品が終了する場合、さらに登録要求された文書部品が文書そのものである場合に、スタックに内容が残っている場合があるからである。ステップ２１１でスタックに情報が保管されている場合は、スタックの最上段にある情報を取り出し、最後に処理を行った対象体の物理位置を付加してインデックスに追加する（ステップ２１２）。このとき、スタックに残っている可能性のある内容は、ステップ１０３の処理における「文書名」、「ページ数」、文書が開始される物理位置などの情報、ステップ３０１の処理における対象体の種別、論理階層、開始の物理位置にステップ３０３の処理における論理内容が「見出し文字段落」の基本論理対象体の直下の内容部が追加されたものである（上述したように、ステップ４０３の処理における論理内容が「枠見出し文字段落」の基本論理対象体の内容部はステップ４０９の処理で取り出されているため）。このため、スタックの最後に論理内容が「見出し文字段落」の基本論理対象体の直下の内容部が保管されていれば、部品種別が見出し構造である旨を示す情報をインデックスに追加し、スタックの最後に「文書名」等が保管されていれば、部品種別が文書である旨を示す情報をインデックスに追加する。この後、再びステップ２１１に戻り、スタックに残っている内容が無くなるまでループを繰り返す。ステップ２１２でインデックスに追加する最後に処理を行った対象体の物理位置は、ステップ２０９、ステップ３０３、ステップ４０３、４０４、４０５のいずれかの処理で対象となった対象体のディスク装置６内でのアドレスである。
【００４３】
上述した解析と登録処理により、文書部品の論理情報と物理的な位置情報がインデックスに保管される。インデックスの構造を図１０に示す。図１０（ａ）はインデックスレコードのフォーマット例を、同図（ｂ）は部品情報の内容例を、同図（ｃ）は部品種別による固有情報の具体例をそれぞれ示している。インデックスはユーザが保管を行った文書部品一単位を１レコードとして保持している。文書部品の論理構造は単一の構造ではなく、その内部に複数の文書部品が包含されていたり、また入れ子の構造になっていることがあるため、インデックスは可変長とし、不確定な文書部品の要素数に対応可能にする。
【００４４】
文書部品の論理構造図とインデックスとの関係を図１１に示す。例えば、左上に示したような文書について考えてみると、その特定論理構造は下図のようになる。本例のような論理構造を持つ文書の場合、インデックス内部には、文書全体に関する情報、見出し構造に関する情報、枠構造に関する情報、見出し構造に関する情報、の４つの構造に関する情報が保管される。各情報の内容は次のようになる。ただし、［ ］内の数字は論理構造図の番号に対応している。
１、文書全体に関する情報文書概要の先頭の物理位置から［３０２２０］で示される内容部が終了する物理位置、および文書概要中に記述されている文書全体の情報。
２、見出し構造に関する情報［３０］で示される「章・節」構造対象体の先頭の物理位置から［３０２２０］で示される内容部が終了する物理位置、および「見出し文字段落」直下の内容部［３００１０］の情報。
３、枠構造に関する情報［３０１］で示される「枠」構造対象体の先頭の物理位置から［３０１００］で示される内容部が終了する物理位置等の情報。
４、見出し構造に関する情報［３０２］で示される「章・節」構造対象体の先頭の物理位置から［３０２２０］で示される内容部が終了する物理位置、および「見出し文字段落」直下の内容部［３０２１０］の情報。
【００４５】
このように、実際の文書ファイルを恒常的な２次記憶装置に格納し、インデックスに対してアクセスを行うことにより、実際の文書ファイルを取り出すことなく、文書の内部構造を条件とした検索が容易となり、また、多量の文書群の中から特定の構造を高速に検索することが可能となる。
【００４６】
実施例２
図１２は、実施例２における文書部品管理装置の機能的な構成を示すブロック図である。文書部品管理装置２１の基本構成は図１と同じであり、これにデータベース２２、キーワード選択ユーザインターフェース２３、キーワード属性付加手段２４、文書部品保持手段（文書内部表現Ａ）２５、文書部品保持手段（文書内部表現Ｂ）２６、コピー・ペースト手段２７、キーワード集合合成手段２８、文書内部表現変換手段２９が付加されている。なお、この図では説明の都合上、文書部品管理装置２１と他のブロックを区別して表しているが、実際には、２４〜２９で示されるブロックは文書部品管理装置２１内に含まれている。
【００４７】
キーワード選択ユーザインターフェース２３は、キーボード、マウス、ディスプレイなどにより構成されている。ここでは、ユーザからの指示や、文書部品の登録要求などを受け付けるとともに、文書部品のキーワードなど必要な情報を可視化して表示する。
【００４８】
キーワード属性付加手段２４は、登録要求のあった文書部品に、属性としてキーワードを設定する。なお、このキーワードは複数設定可能であり、以後の説明ではキーワード集合という。
【００４９】
文書部品保持手段２５は、文書を文書部品管理装置の中に表現するための形式（文書内部表現Ａ）を持つ記憶装置であり、各文書部品毎に
Ａ−１）文書部品の内容記述
Ａ−２）文書部品固有の属性
Ａ−３）文書部品に与えられたキーワード集合
の形式を持っている。
【００５０】
文書部品保持手段２５は、文書をデータベース２２の中に表現するための形式（文書内部表現Ｂ）を持つ記憶装置であり、次の形式からなる。
【００５１】
Ｂ−１）文書内部表現Ａによる文書の表現
Ｂ−２）Ｂ−１）から自動的に合成されたキーワード集合（各部品に設定されたキーワード集合の集合和）
コピー・ペースト手段２７は、ユーザにより選択された領域を指定された位置に挿入するためのコピー・ペースト処理を行う手段であり、ここでは、上記Ａ−３）の属性のコピーも行うように構成されている。
【００５２】
キーワード集合合成手段２８は、文書部品単位に設定されたキーワード集合を、文書全体のキーワード集合として合成する。
【００５３】
文書内部表現変換手段２９は、文書のデータベース登録時に文書内部表現Ａからキーワード集合を合成し、文書内部表現Ｂに変更する。また、読み込み時には、文書内部表現Ｂを文書内部表現Ａに変更する。
【００５４】
なお、データベース上での検索のためのキーワード集合としては、上記Ｂ−２）を用いる。
【００５５】
次に、上述した文書部品管理装置において、キーワード集合を合成する処理の流れを図１３のフローチャートを用いて説明する。
【００５６】
まず、文書部品保持手段２５において、文書内部表現Ａをオープンし（ステップ５０１）、キーワード集合Ｓを空集合に初期化する（ステップ５０２）。続いて、すべての文書部品を一つに読み込んだかどうかを判断し（ステップ５０３）、読み込んでないときは、文書部品を一つ読み込む（ステップ５０４）。次に、読み込んだ文書部品から、Ａ−３）のキーワード集合を取り出し（ステップ５０５）、取り出したキーワード集合とＳの和集合でＳを更新する（ステップ５０６）。そして、ＳをＢ−２）として文書の内部表現Ｂを生成して（ステップ５０６）、ステップ５０３に戻り、すべての文書部品を一つ読み込むまでループを繰り返す。  図１４は、グラフや表データを具えた文書に対して、上記処理を実行したときの例を示している。グラフや表データは、文書部品毎に文書内部表現Ａの形式でキーワード集合などが設定される。さらに、これらの文書部品単位に設定されたキーワード集合は文書全体のキーワード集合として合成される。文書内部表現Ｂでは、文書内部表現Ａによる文書と、前記文書全体のキーワード集合という形式になり、この形式でデータベースに登録されることになる。
【００５７】
すなわち、実施例２の文書部品管理装置によれば、グラフ、表データ、図などの文書部品（またはそのひな型）作成時に、文書部品毎にキーワードが設定できるうえ、グラフ、表データ、図などを様々な組み合わせで用いても、適切なキーワードが自動的に設定される。また、運用で文書部品のひな型にキーワードをつけて使用することができる。さらに、キーワードの設定が登録作業者に依存しなくなるため、データベースの品質が向上する。加えて、データベース管理者が文書作成者と異なる場合に、個々の文書のキーワード設定の管理を行わなくてすむという利点がある。
【００５８】
実施例３
図１５は、実施例３における文書部品管理装置の機能的な構成を示すブロック図である。文書部品管理装置３１の基本構成は図１と同じであり、これに参照判断手段３２、例外処理手段３３が付加されている。なお、この図では説明の都合上、文書部品管理装置３１と他のブロックを区別して表しているが、実際には、３２と３３で示されるブロックは文書部品管理装置３１内に含まれている。
【００５９】
参照判断手段３２は、文書部品管理装置３１で受け付けた文書部品に参照があるか否かを判断し、この結果を例外処理手段３３に通知する。
【００６０】
例外処理手段３３は、前記参照判断手段３２により参照があると判断された場合に、例外処理を行う。
【００６１】
図１６は、上記参照判断手段３２と例外処理手段３３の機能を説明するための説明図である。参照文書部品は、その内部に参照情報（参照元の場所、登録名、登録日時等）を持っている。データベースＡから文書部品を参照し、データベースＢに登録する時、参照判断手段３２は前記文書部品が参照文書部品であるかどうかをチェックする。このとき、参照文書部品であるときは、そのままの状態で登録を許可せず、「参照を解除して登録する」か「登録を中止する」かをユーザに選択させる。「登録する」が選択された場合、例外処理手段３３は参照情報を削除した文書部品をデータベースＢに登録する。また、「登録を中止する」が選択された場合は、登録処理を中止する。
【００６２】
次に、参照文書部品を登録する場合の処理の流れを図１７のフローチャートにより説明する。
【００６３】
まず、文書部品が外部からの参照物かどうかをチェックし（ステップ６０１）、参照文書部品かどうかを判断する（ステップ６０２）。ここで、参照文書部品であるときは、登録中止とするか、参照解除して登録するかの判断をユーザに促し（ステップ６０３）、ユーザが「参照解除して登録する」を選択したかどうかを判断する（ステップ６０４）。ここで、Ｎｏであるときは、登録処理を中止する（ステップ６０５）。また、Ｙｅｓであるときは、参照先から部品の実体をコピーし、参照情報を削除した（ステップ６０６）後、該当するデータベースに登録する（ステップ６０７）。
【００６４】
実施例３の文書部品管理装置によれば、文書部品の登録時に、参照を解除（参照部品は実体として取り込む）して登録するか登録を中止するかをユーザに選択させて、文書部品管理データベース内に参照文書部品を持つことがないようにしたので、参照の多層化による関係の複雑さが解消され、更新のタイミングによる内容の不整合を防ぐことができる。
【００６５】
実施例４
先に述べたように、既存のネットワークシステムに接続されたファイルサーバや、一般的なＵＮＩＸファイルシステムなどでは、文書そのものを１単位としてとらえて文書の保管を行っているので、枠や見出しのみというような文書内部の構造（文書部品）により保存や取り出しを行うことは不可能であった。したがって、文書部品の単独での保存／取り出しができるようになれば、多数の利用者による共用が可能となり、文書作成をより効率良く行うことができるようになる。この実施例では、正しい文書としての体裁を整えていない文書部品についても、コピー／ペースト等の手段を用いてサーバに単独で保存／取り出しが行えるようにした例について説明する。
【００６６】
図１８は、実施例４における文書部品管理システム４０の機能的な構成を示すブロック図である。このシステムは、文書エディタ４１、コピーバッファ４２、保存アプリケーションシステム４３、サーバ装置４４により構成されている。
【００６７】
文書エディタ４１は、入力、フォーマット、レイアウト及び修正などの文書の作成／編集に必要な機能を制御している。文書エディタはマウス／キーボード、ディスプレイなどのユーザインターフェースと接続され、マウス／キーボードにより発生するイベントを解釈し、その結果に応じて所定のコマンドを実行する。入力イベントは、キーボードのキーの押下げや、マウスに付属するボタンの押下げ／解放などにより発生する。
【００６８】
コピーバッファ４２は、ユーザにより選択された文書の一部の特定論理構造を一時的に保存するバッファ記憶である。
【００６９】
保存アプリケーションシステム４３は、保存アプリケーションによってコピーバッファ４２やサーバ装置４４へのデータの保存、取り出しを制御する。
【００７０】
サーバ装置４４は、論理構造を有する文書データや前記コピーバッファ４２に一時的に保存されていた特定論理構造を保管する。
【００７１】
上記システムで使用する共通論理構造は、図３〜図５に示したものと同じである。これらの構造に基づいた文書エディタ４１において、エディタの利用者は文書中のある特定の構造を選択し、「コピー」キーの押下げ等の手段により、文書の一部の特定論理構造のみをコピーバッファ４２に保存する。このとき、文書エディタ４１は、保存するものがどのような文書部品であるかの情報を付加する。図１９は、コピーバッファ内に格納されるデータ形式を模式的に示したものである。図において、内容識別番号５１には、内容データが枠構造であるとか、章・節構造であるというような情報が格納されている。この内容識別番号５１とプロセスＩＤ５２で共通部分が構成される。個別情報５３には、内容データのコピー範囲に関する情報が任意のバイトストリームで記述されている。内容データ５４には、ユーザにより選択された範囲の論理構造に関する情報が任意のバイトストリームで記述されている。
【００７２】
ユーザはコピーバッファにある文書部品をサーバ装置に保管しようとするウィンドウ上において、「ペースト」キーの押下げ等の手段により保存アプリケーションに対して通知を発行する。通知を受けた保存アプリケーションは、コピーバッファに保存されている文書部品を取り出し、それに付加されている部品の情報をもとに解析を行い、インデックスに登録する。そして、一時的に保存されていたコピーバッファ上の文書部品を改めてサーバ装置に保管する。
【００７３】
図２０は、ＷＹＳＩＷＹＧウィンドウ（文書を印刷イメージに近い状態で表示したウィンドウ）により表示されたコピー元の文書例を示している。図２０の文書において、ユーザがカーソルを使用して枠を選択したとすると、選択された領域の白黒が反転し、図２１に示すような状態となる。このときの論理構造を模式図で表すと図２２のようになる。図中、斜線の部分が選択されている領域（この例では枠）を表している。このとき、コピーバッファに格納されるデータを図２３に示す。このように、枠や見出し、あるいは単一の段落などの共通論理構造に定義されている構造が選択されている場合には、共通論理構造で定義される構造がコピーバッファに格納される。
【００７４】
図２４は、図２０の文書から章・節を選択したときの状態を示している。ここでは、ユーザが見出しウィンドウ上でカーソルを使用して２．１節の見出し構造を選択した例を示している。このときの論理構造を図２５に、コピーバッファに格納されるデータを図２６に示す。
【００７５】
サーバ装置に保管される文書部品は特定論理構造で定義されている構造単体で構成されているとは限らないので、文書部品の内部を解析し、登録が行われる文書部品の構造をすべて特定し、その構造情報及び物理的な位置情報をインデックス内に保管する。登録が行われた文書部品は文書としての構造は保持せず、図１９で示したコピーバッファ中の「内容データ」そのままの形式で保存される。
【００７６】
次に、文書部品の保存を行うときの処理の流れを図２７のフローチャートにより説明する。
【００７７】
まず、文書エディタ上でのコピー操作により選択された文書の一部の特定論理構造のデータをコピーバッファに格納し（ステップ７０１）、保存アプリケーションシステムに対してペーストのイベント発生したかどうかを判断する（ステップ７０２）。ここで、ペーストのイベント発生したときは、コピーバッファ内の内容識別情報を取り出し（ステップ７０３）、保存が可能な文書部品であるかどうかを判断する（ステップ７０４）。保存が可能でなければ処理を終了し、保存可能であるならば、データの付加情報をユーザから受け取る（ステップ７０５）。ここでは、名称やキーワード等の付加情報があれば、それを保存データに付加する。そして、コピーバッファ内の内容データと内容識別番号をサーバ装置に保管する（ステップ７０６）。
【００７８】
「Ｃｏｐｙ／Ｐａｓｔｅキー」により文書部品を保管したときの例を図２８に示す。ユーザが文書エディタ上のウィンドウで枠を選択し、Ｃｏｐｙキーを押下すると、文書部品はコピーバッファに一時的に保存される。ここで、保存アプリケーションのウィンドウを開いてＰａｓｔｅキーを押下して保存アプリケーションへのイベントを通知すると、文書部品はサーバ装置に保管される。
【００７９】
したがって、インデックスに登録されている文書部品のデータを、保存アプリケーションにより文書エディタのコピーバッファにそのまま記述することにより、登録時と逆の手順で登録された文書部品を文書エディタ内にそのまま取り込むことが可能となる。すなわち、ユーザは保存アプリケーションのウィンドウ上において、リストされている文書部品の項目中から目的とする文書部品を選択し、「コピー」キー等を押下することにより、文書エディタのコピーバッファにその内容を記述し、文書エディタ上でのペースト処理により保存アプリケーションで保存されていた文書部品の内容を取り込むことができる。
【００８０】
次に、文書部品の取り出しを行うときの処理の流れを図２９のフローチャートにより説明する。
【００８１】
まず、保存アプリケーションのウィンドウ上でコピーイベントの発生を受け付け（ステップ８０１）、サーバ装置から該当する文書部品の内容識別情報と内容データを取り出す（ステップ８０２）。そして、取り出した情報を文書エディタのコピーバッファに書き込む（ステップ８０３）。
【００８２】
「Ｐａｓｔｅキー」により文書部品を取り出したときの例を図３０に示す。ユーザが保存アプリケーションのウィンドウ上で枠を選択し、Ｃｏｐｙキーを押下することにより、保存アプリケーションへの取り出しイベントが通知される。文書エディタのコピーバッファには、保存アプリケーションで保存していた文書部品のデータが記入される。ここで、文書エディタのウィンドウを開き、ペースト処理により文書部品を文書内に取り込む。
【００８３】
このとき、登録されている文書部品には割り付け構造が保存されていないため、取り込み先の文書エディタの割付け構造に従った割付け処理が実行されることになり、取り込み先に合わせた柔軟な割付け処理が可能となる。
【００８４】
実施例４のシステムによれば、正しい文書としての体裁を整えていない枠や見出しなどの文書部品を、単独で保存／取り出しすることができる。このため、サーバ装置内で統一的に管理されている文書部品を多数の利用者によって共用することが可能となり、従来に比べて文書作成をより効率良く行うことができる。
【００８５】
【発明の効果】
以上説明したように、第１の発明に係わる構造化文書の文書部品管理装置によれば、ユーザが指定した文書あるいは文書部品を解析して、文書部品を構成する論理構造をすべて特定し、その構造情報および物理的な位置情報をインデックス内に保管するようにしたため、文書の内部構造を文書としては不完全な形式で保存することができる。また、インデックス内部に文書構造が保持されているため、文書の内部構造を条件とした検索を行うことができる。
【００８６】
また、第２の発明に係わる構造化文書の文書部品管理装置によれば、文書部品単位に属性としてキーワード集合を設定し、また文書部品単位にキーワード集合を対応させて保持するようにしたので、文書部品作成時に文書部品個別にキーワード集合を設定することができるうえ、文書部品を組み合わせて用いても、適切なキーワード集合を自動的に設定することができる。また、キーワードの設定が登録作業者に依存しなくなるため、データベースの品質を向上させることができる。さらに、登録管理者が文書作成者と異なる場合に、個々の文書のキーワード設定の管理を行わなくてすむという利点がある。
【図面の簡単な説明】
【図１】実施例１における文書部品管理装置の機能的な構成を示すブロック図。
【図２】図１に示した文書部品管理装置を実現するためのハードウェア構成を示した図。
【図３】文書部品管理装置で使用する共通論理構造（見出しの論理構造）を示す図。
【図４】文書部品管理装置で使用する共通論理構造（本文中の枠の論理構造）を示す図。
【図５】文書部品管理装置で使用する共通論理構造（入れ子枠の論理構造）を示す図。
【図６】文書部品の解析とインデックス登録の処理の流れを示すフローチャート。
【図７】文書部品構造の解析とインデックスの構築処理の流れを示すフローチャート。
【図８】文書部品論理対象体の処理の流れを示すフローチャート。
【図９】枠構造の処理の流れを示すフローチャート。
【図１０】インデックスの構造を示す図。
【図１１】文書部品の論理構造図とインデックスとの関係を示す図。
【図１２】実施例２における文書部品管理装置の機能的な構成を示すブロック図。
【図１３】キーワード集合を合成する処理の流れを示すフローチャート。
【図１４】実際の文書に対してキーワード集合の合成処理を実行したときの例を示す図。
【図１５】実施例３における文書部品管理装置の機能的な構成を示すブロック図。
【図１６】参照判断手段と例外処理手段の機能を説明する図。
【図１７】参照文書部品を登録する場合の処理の流れを示すフローチャート。
【図１８】実施例４における文書部品管理システムの機能的な構成を示すブロック図。
【図１９】コピーバッファ内に格納されるデータ形式を模式的に示した図。
【図２０】ＷＹＳＩＷＹＧウィンドウにより表示されたコピー元の文書例を示す図。
【図２１】領域が選択されたときの表示状態を示す図。
【図２２】領域が選択されたときの論理構造を示す模式図。
【図２３】コピーバッファに格納されるデータを示す図。
【図２４】文書から章・節を選択したときの表示状態を示す図。
【図２５】章・節が選択されたときの論理構造を示す図。
【図２６】コピーバッファに格納されるデータを示す図。
【図２７】文書部品の保存を行うときの処理の流れを示すフローチャート。
【図２８】「Ｃｏｐｙ／Ｐａｓｔｅキー」により文書部品を保管したときの例を示す図。
【図２９】文書部品の取り出しを行うときの処理の流れを示すフローチャート。
【図３０】「Ｐａｓｔｅキー」により文書部品を取り出したときの例を示す図。
【図３１】ＯＤＡの文書構造を示す図。
【図３２】文書処理モデルを示す図。
【符号の説明】
１０…文書部品管理装置、１１…文書部品受付手段、１２…論理構造特定手段、１３…文書部品保持手段、１４…インデックス生成手段、１５…インデックス保持手段、２４…キーワード属性付加手段、２８…キーワード集合合成手段、３２…参照判断手段、３３…例外処理手段
【図１】
0003659595.tif 000002
【図２】
0003659595.tif 000003
【図３】
0003659595.tif 000004
【図４】
0003659595.tif 000005
【図５】
0003659595.tif 000006
【図６】
0003659595.tif 000007
【図７】
0003659595.tif 000008
【図８】
0003659595.tif 000009
【図９】
0003659595.tif 000010
【図１０】
0003659595.tif 000011
【図１１】
0003659595.tif 000012
【図１２】
0003659595.tif 000013
【図１３】
0003659595.tif 000014
【図１４】
0003659595.tif 000015
【図１５】
0003659595.tif 000016
【図１６】
0003659595.tif 000017
【図１７】
0003659595.tif 000018
【図１８】
0003659595.tif 000019
【図１９】
0003659595.tif 000020
【図２０】
0003659595.tif 000021
【図２１】
0003659595.tif 000022
【図２２】
0003659595.tif 000023
【図２３】
0003659595.tif 000024
【図２４】
0003659595.tif 000025
【図２５】
0003659595.tif 000026
【図２６】
0003659595.tif 000027
【図２７】
0003659595.tif 000028
【図２８】
0003659595.tif 000029
【図２９】
0003659595.tif 000030
【図３０】
0003659595.tif 000031
【図３１】
0003659595.tif 000032
【図３２】
0003659595.tif 000033