JPH04278634A - 木生成システム及び方法 - Google Patents
木生成システム及び方法Info
- Publication number
- JPH04278634A JPH04278634A JP3055543A JP5554391A JPH04278634A JP H04278634 A JPH04278634 A JP H04278634A JP 3055543 A JP3055543 A JP 3055543A JP 5554391 A JP5554391 A JP 5554391A JP H04278634 A JPH04278634 A JP H04278634A
- Authority
- JP
- Japan
- Prior art keywords
- node
- tree
- memory
- type
- column
- 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
Links
- 238000000034 method Methods 0.000 title claims description 59
- 230000001502 supplementing effect Effects 0.000 claims 1
- 230000002194 synthesizing effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 25
- 230000015572 biosynthetic process Effects 0.000 description 10
- 238000003786 synthesis reaction Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 239000000470 constituent Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013523 data management Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000002910 structure generation Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
【産業上の利用分野】本発明は、レイアウト理解のため
のモデル等を表わす木または木の集合に対応するデータ
構造をメモリ上に生成するシステム及び方法に関する。 【0001】 【従来の技術】最近、オフィスなどで文書をコンピュー
タによって管理・検索する電子ファイリングシステムが
利用可能になってきた。しかし、現在のシステムは、各
文書を単に絵として蓄えているに過ぎず、情報を蓄積す
る体系としては、従来の紙をベースにしたファイリング
となんら変わらない。より高度なファイリングシステム
を構築するためには、文書画像から文書の内容を抽出す
ることが必要である。 【0002】システムに全文データベースとしての機能
を求めるのであれば、全文書内容のコード化が必要であ
るし、そうでない場合でも、タイトル、掲載誌名、キー
ワードなどの検索のためのコード情報の入力は必要不可
欠である。そして、印刷文字OCRが、このコード化作
業を支援するツールとして期待されている。しかしなが
ら、OCRによって文書画像自体から検索のための情報
を抽出するためには、まず必要な情報が印刷されている
位置を知らなければならない。また、電子ファイリング
システムの利用形態はアプリケーションに応じて様々で
あり、文書のある一部分(例えば、論文のアブストラク
ト)のみコード化したいといった要求も存在する。しか
し、こういった認識すべき位置の指定をオペレータが行
っていたのでは、文書入力の効率化は期待できない。し
たがって、コンピュータによって文書画像を解析し、そ
のレイアウトを自動的に理解する技術が必要になる。レ
イアウト理解の過程は、文書画像を文字、イラスト、写
真、表、グラフなどの領域に分割する処理、さらに各領
域の構造を解析する処理等で構成されるが、電子ファイ
リングにおいては、文字列、線分、その他の領域といっ
た大雑把な分割の後で、文字列に対してタイトル、著者
名、本文などの解釈を与える処理が重要である。 【0003】一般に、文書画像の構成要素の間には、部
分ー全体の関係に基づく階層構造が存在する。例えば、
文書はページの集まりで構成され、各ページはタイトル
、著者名、本文で構成され、さらに本文は幾つかのカラ
ムで構成される、といった具合である。この階層構造は
、節点がタイトル等の文書画像構成要素の1つに対応し
、葉が文字列に対応するような木によって表現される。 【0004】そこで、例えばA.Dengel and
G.Barth, ”High Level Doc
ument Analysis Guided by
Geometric Aspects,” Int.
Journalof Pattern Recogni
tion and Artificial Intel
ligence, 2, 4, pp.641−655
, 1988に開示されているように、ユーザがレイア
ウトに関する知識として木構造のモデルを与え、システ
ムがそれを基に解析を行う方式が提案されている。 【0005】ところで、木に対応するデータ構造をメモ
リ上に生成する方法として、ユーザが読解可能な何らか
の形で木を記述し、システムがその記述結果を解釈して
メモリ上にデータ構造を生成することが、ユーザの負担
の少なさの点で有利であり、一般的な方法である。その
ような例として、G. Nagy,S. Seth,
”Hierachical Representati
on of Optically Scanned D
ocuments”, Proc.7th ICPR(
Montreal),347−349, 1984は、
ユーザが木の骨組とその中の各ノードに与える属性を記
述するための属性文法を提案する。しかしながら、これ
は1種のプログラミングを強いるものであるから、エン
ドユーザがモデルを記述するのには不向きである。 【0006】一般に、文書の種類に応じて多種多様なレ
イアウトが存在するため、すべてのレイアウトに対して
モデルをあらかじめ用意しておくことは不可能であり、
モデルの記述・変更はエンドユーザが行う必要がある。 したがって、モデルを容易に記述・変更できることが、
レイアウト理解を行う文書画像解析システムの重要な要
件である。しかもこの記述の容易さという条件は、ユー
ザが様々なレイアウトに対応できるような十分な表現能
力を保ちつつ達成されなければならない。上記属性文法
にしたがう木の記述は、このような条件を満足できない
点で問題がある。 【0007】レイアウトモデルに限らず、ユーザが読解
可能な形で木を記述するためには、木を表わす図をディ
スプレイ上で編集するグラフィックスエディタを用いる
ことが一般的である。しかし、グラフィックスエディタ
を利用できる計算機は限定される。また、グラフィック
スエディタは、木の骨組、つまりノードの階層関係及び
同じノードに接続する子ノード同士の順序関係を記述す
るのには適しているが、個々のノードに与える属性を記
述するのには適していない。 【0008】特開平2ー59818号公報で開示される
木構造図作成システムは、プログラムモジュールの木構
造図を作成するためのものであるが、グラフィックス機
能をサポートしない端末からでも、木構造図を作成する
ための情報の入力を可能にする。モジュール間の呼び出
し関係はメインプログラムをルートとする木構造になる
から、この作成システムをは1種の木生成システムであ
る。このシステムにおいて、ユーザは、テキストエディ
タを使って、モジュール間の呼出し関係の情報を記述す
る。図1は、木構造図情報の記述例を示す。テキストに
おいて、木の枝分れは、IF、THEN、ELSE等の
キーワードで表示される。システムは、それらキーワー
ドを含んだテキストを解釈して、図2に示すような木構
造図を作成する。なお、図1及び図2は上記公報に掲載
されている図面である。 【0009】しかし、木の枝分れ毎に特殊なキーワード
を割り当てるのであるから、キーワードの意味を理解し
、その使い方に習熟しなければならない。このような記
述方法は、プログラム開発者にはなじみ深いものである
が、エンドユーザに最適とはいえない。キーボードに慣
れていないエンドユーザはキーワードの入力に時間がか
かるし、スペルミスや文法エラーをおかす可能性もある
。また、この記述方法にしたがって、多くの階層からな
る複雑な木を表現したならば、表現結果は複雑なものと
なり、表現結果から、木の全体的な階層構造を把握する
のが困難になる。 【0010】さらに、以上の記述方式に共通する問題点
は、これらの方式では1個の具体的な木を表現すること
しかできない、つまり、木の集合を表現できないという
ことである。アプリケーションによっては、木の集合を
表現できた方が望ましい場合がある。論文第1ページの
レイアウトを例にとって考えてみると、タイトルや著者
といった構成要素は必ず存在するが、脚注はそうではな
い。また、ある論文ではカラムが1ページに2つあるの
が普通であるとしても、最終ページには1つしかないこ
ともある。従来は、そのような変動に対応するために、
脚注のノードのある木とない木、あるいはカラムのノー
ドを1つ含む木と2つある木を別個に記述しなければな
らず、ユーザにとってレイアウトモデルを作成する負担
は重かった。 【0011】 【発明が解決しようとする課題】したがって、本発明の
目的は、ユーザが木を簡単に記述することができ、その
記述結果に基づいて該木を表わすデータ構造をメモリ上
に生成することのできるシステム及び方法を提供するこ
とにある。 【0012】本発明の他の目的は、木の記述結果からユ
ーザが生成される木を容易に把握することができ、その
記述結果に基づいて該木を表わすデータ構造をメモリ上
に生成することのできるシステム及び方法を提供するこ
とにある。 【0013】本発明のさらに他の目的は、ユーザがテキ
ストエディタを使って木を記述することができ、その記
述結果に基づいて該木を表わすデータ構造をメモリ上に
生成することのできるシステム及び方法を提供すること
にある。 【0014】本発明のさらに他の目的は、ユーザが木の
集合を記述することができ、その記述結果に基づいてメ
モリ上で該木の集合を表わすデータ構造をメモリ上に生
成することのできるシステム及び方法を提供することに
ある。 【0015】 【課題を解決するための手段】上記課題を解決するため
に、本発明による、メモリ上に木または木の集合を表わ
すデータ構造を生成するシステムは、1以上の欄を持ち
、木または木の集合に含まれ得るノードの種類ごとに当
該種類に与えられた属性が上記欄に記述されてなる表を
解釈して、上記種類ごとに、上記メモリ上に当該種類の
ための領域を確保し、該領域に当該種類に与えられた属
性のデータをセットするとともに、領域間の連結関係を
表わすポインタデータを生成する手段を含む。 【0016】このシステムを使うなら、木または木の集
合を記述するために、ユーザは、エディタを使ってノー
ドの種類毎にそれに与える属性を表に書き下すだけでよ
い。エディタにはテキストエディタを用いることができ
る。 【0017】上記表で、ノードの種類ごとにその種類の
木または木の集合における深さを記述する欄を設けるな
らば、上記表解釈手段は、上記表における、ノードの種
類の属性を記述する行の配列順序と、各種類に割り当て
られた深さに基づいて、種類間の階層関係及び同じノー
ドの下に連結するノードの種類間の順序関係を判断し、
その判断に基づいてポインタデータを生成することがで
きる。 【0018】上記表には、ノードの種類の名前を記述す
る欄を設けることが可能である。また、上記表には、ノ
ードの種類毎にその種類に属するノードの数を記述する
欄を設けることも可能である。その場合、上記表解釈手
段は、数のデータを属性データとして扱い、当該種類に
割り当てられたメモリ領域にそれをセットする。 【0019】作成された表を外部記憶装置に蓄積してお
き、モジュール化することも可能である。表の作成を容
易にするために、メインの表の記述の足りない箇所の有
無を判断し、そのような箇所があるならば、サブの表と
メインの表を合成して1つの完全な表を作成する手段が
用意される。 【0020】 【実施例】[ハードウェアの構成]図3は、本発明の1
実施例のハードウェアの構成を示す。この木生成システ
ムは、キーボード等の入力装置1と、CRTディスプレ
イ等の表示装置2と、磁気ディスクや光ディスク等を記
憶媒体に使う外部記憶装置3と、表を編集及び表示する
表編集表示装置4と、この表編集表示装置4により編集
された表のデータを外部記憶装置3に保存して管理する
表管理装置5と、複数の表を合成して1つの表を作成す
る表合成装置6と、表を解釈して、ノードまたはノード
の種類ごとに、メモリ20上に領域を確保し、該領域に
当該ノードまたはノードの種類に与えられた属性のデー
タをセットするとともに、領域間の連結関係を表わすポ
インタデータを生成する表解釈装置7と、この表解釈装
置7が生成した木構造に関するデータを保存及び管理す
る木構造管理装置8と、これら各装置を統括制御する制
御装置9とから構成されている。具体的には、テキスト
エディタ10が表集表示装置4と表管理装置5を合わせ
て実現する。上記装置4乃至8は、専用のハードウェア
で構成することも可能であるけれども、図3の例では、
メモリ20にロードされるソフトウェアモジュールの形
で実現されている。 【0021】[表の入力]a.概要 図4に示すような、AからJまでの11種類のノードが
それぞれ1つずつ含まれてなる木の記述を例にとって説
明する。本発明によれば、ユーザは、テキストエディタ
10を使って、図5に示す表を入力装置1から入力しさ
えすればよい。表には、ノードまたはノードの種類の名
前を記述する1つの欄と属性を記述する複数の欄が設け
られており、そこにユーザが必要な情報を書込めるよう
になっている。所望の表を簡便に作成するためには、項
目名以外は空白の表を外部記憶装置3に保存しておき、
それを取り出して編集するとよい。完成した表は、外部
記憶装置3に保存される。 【0022】木の骨組は、図5に示す表の上で次のよう
にして表わされる。まず、表には、深さ(レベル)を記
述するレベル欄が設けられる。例えば、木の最上部に位
置するAについては、レベル欄に数字0を記入し、Aの
子供であるB,C,D,Eについては、レベル欄に数字
1を記入する、といった具合である。 【0023】次に、親子間の連結情報について述べると
、親に連結する(直接または間接の)子孫の行を、当該
親の行と、それより下に最初に現れる、当該親以上のレ
ベルにあるノードの行との間の行を使ってすべて書きき
ってしまうことで、それら子孫が当該親に直接または間
接的に連結することを表わす。当該親のレベル以上のノ
ードがそれ以降に全くないときは、当該親の行より下の
すべての行が、子孫の記述に使われる。 【0024】さらに、親を同じくする子同士の中で順序
関係があるときは、それを表の中での行の上下関係に反
映させることにする。例えば、レベル1のノードに関し
て順序関係が存在し、それに対応して図4では便宜上左
からB,C,D,Eの順に並んでいるとする。(その順
序は、実際にはノードに対応する実体の物理的位置の上
下方向の順序に対応するものかもしれないことに注意さ
れたい。) このとき、図5に示す表において、それ
らに対応する行は、上からB,C,D,Eの順で並ぶ。 【0025】以上の規則に従えば、木に含まれるノード
(またはノードの種類)の階層関係及び親を同じくする
ノード(またはノードの種類)同士の順序関係が、表の
中での行の上下関係とレベルの欄だけを使ってすべて表
現できる。したがって、上記規則を踏まえて図5に示す
表を解釈すると、まず表の1番上にある行の名前の欄に
Aが記述されていることから、Aが木の最も上にあるこ
とがわかる。また、レベル欄に1が記入された行のノー
ド名の欄を調べることによって、Aの子供はB,C,D
,Eであり、かつそれらの行の上下関係から、それらの
間に順序関係があるとするなら、その順序はB,C,D
,Eの順であることがわかる。 【0026】さらに、レベル1であるDとEの行に挟ま
れた、レベル2の行に対応するFとGが、Dの子供であ
る。そして、Gの行に続くレベル3の行に対応するJが
、Gの子供である。表の最後部には、レベル1のEの行
に続いてレベル2のH,Iの行が続く。よって、H,I
はEの子供であるとわかる。後述する表解釈装置7は、
このような解釈を行ってポインタデータを生成する。 【0027】図5に示す表において、属性を記す欄の中
には、ノードの数を記す欄がある。その欄はさらに最小
値を記す欄と最大値を記す欄からなる。ある種類に属す
るノードの数をその種類の行を使って記述してもよいけ
れども、ここでは子ノードの数をその親の行に記述する
ことにする。(なお、ルートノードの数は1つであるこ
とを前提にしている。)そのような規則の下で記述した
図5に示す表の、例えばAの行を見ると、最小値と最大
値がともに1であるから、この表が表現する木には、ノ
ードAの子供として、種類B,C,D,Eに属するノー
ドが1つずつ存在することが示されている。結局、図5
の表は、1つの木を表現している。 【0028】もし、Gの行において、最小値を1、最大
値を2と記述したなら、その表は、種類Jのノードを1
つだけ含む木と2つ含む木(図6参照)をそのメンバー
とする集合に対応付けられていることを意味する。しか
し、そのような表を変換して作られるデータ構造は、種
類Jに対応するメモリ上の領域を1つしか含まないこと
に注意されたい。種類Gに割り当てられた領域に、その
属性データとしてその子ノード(J)の最小値と最大値
がセットされるだけである。 【0029】なお、Jのような葉が何らかの下位要素を
持ち、しかもその数が不定であることを示す必要がある
ならば、その葉の行の最小値と最大値の欄に適当な数を
記入する。後述するレイアウトモデルの例では、葉の下
位要素は文字列に対応する。 【0030】本実施例では、表合成装置6が設けられて
いる。この装置6は、外部記憶装置3から取り出した表
について、その表が他の表と組み合わされるべきもので
あるかを判断し、判断結果が肯定的であるならば、組み
合わす相手の表を探し、それらの表を合成する。これを
使うと、他の表の記述を援用することが許されるので、
複雑な木を定義したい時に、その木の一部を定義した表
が外部記憶装置3に保存されている場合には、その表を
モジュールとして活用してもよい。例えば、図4に示す
木のうち、Dをルートとするサブツリーが、図7に示す
表(サブの表)の形で定義され、外部記憶装置3に保存
されているとする。このとき、図4の木を定義するため
に、ユーザは、図5よりも簡単な、図8に示す表(メイ
ンの表)を作成するだけでよい。そこでは、Dが別の表
で定義されたサブツリーのルートであることを表示する
ために、Dの行は、レベル欄と名前欄を除いて空白であ
る。例えば、外部記憶装置3から図8に示す表が取り出
されると、表合成装置6は、外部記憶装置3に保存され
ている表の中から図7の表を探し、これらを合成して図
4に示す表を作成する。この表合成装置6の動作の詳細
は、後で説明する。 【0031】b.具体例 以下、表を使った木構造の表現の具体例として、文書画
像のレイアウトモデルの記述方法を述べる。ここで、文
書画像の構成要素として文字列から構成されるもののみ
に対象を絞ると、ある要素を構成する直接の下位要素間
には常に順序関係が成立している(実際、人間はこの順
序に従ってテキストを読んでいる)。この順序は、それ
ら下位要素間の紙面上での位置関係によって決まるもの
で、縦並びなら上から下、横並びなら左から右の順番に
なる。例えば、米国特許の公報では、1つのページの本
文はその下位の構成要素として2つの欄を含み、それら
は横並びである。そこで、表の上で連続した2つの構成
要素に関し、それらが階層を異にするのか、つまり上位
と下位の関係にあるのか、それとも同じ階層に属するの
かを区別できれば、同じレベルにある構成要素に関して
は、この順序にそって構成要素名を並べることにより、
木構造をなす紙面の構成要素を1次元のシーケンスとし
て表現することができる。この区別の方法としては、例
えば階層のレベル(深さ)を示す数字を、各構成要素に
与えてやればよい。このような記述方法の工夫によって
、レイアウトモデルを、行方向に構成要素が並び、列方
向には各構成要素の属性が記述された表として表現する
ことができる。 【0032】例えば、天野他、マルチメディア文書入力
のための文書画像認識システム:DRS、情報処理学会
マルチメディア通信と分散処理研究会48ー6、199
1年1月、で開示されたレイアウト解析システムについ
て、上述の方針にそってモデルに記述されるべき情報を
整理してみると、次のようになる。(なお、以下では文
書画像構成要素を単に要素と呼ぶことにする。そして、
便宜上文字列も要素であると考えることにする。しかし
、文字列のための領域はメモリ上で確保されない。)【
0033】1) 直接の下位要素の数に関する制限(
最少値と最大値)。 2) 下位要素が複数あるときに、それらの並び方(
縦並びか横並びか)。 3) その要素の存在はそのモデルにおいてマンダト
リー(必須)か否か。 4) その要素の左右または上下にフィールドセパレ
ータ(他の要素との区切りになる程に大きな白画素の領
域や水平または垂直の線分)があるか。 5) 文字列を構成する字種(数字、アルファベット
、漢字)。 6) 後で文字の認識を行うか。 7) 認識後、(例えば住所、姓名等について)後処
理をかけるか。 【0034】1)および2)のような下位要素の集合に
関する属性は、それらの1つ上位レベルの要素の属性と
して、その上位要素の行の中で記述することができる。 3)以下の属性は、その要素自体の持つ属性として、そ
の要素の行の中で記述することができる。 【0035】以下では、1)から4)の情報の記述方法
について説明するが、5)以降の情報についても属性を
記述する欄を追加することにより、容易に記述すること
ができる。モデルを記述する表の例を図9に示す。表の
各欄は、次のような意味を持つ。 【0036】1)ネスト 階層レベルを表す番号である。一の表の中で、木の最上
位に位置する要素を0として、番号が大きいほど深い(
最上位要素から離れた)要素であることを示している。 【0037】2)要素名 要素の名前を示す文字列である。その要素が他の要素か
ら参照されていなければ、空白にしておいてもよい。 【0038】3)必在 ある要素が紙面に必ず存在するか否かを示す。Yは必在
することを、Nはそうでないことを意味する。 【0039】4)構成 要素の構成方法を示す。4つの項目からなり、そのすべ
てが空白の場合は、その要素が別の表によって定義され
ていることを意味する。 【0040】4−1)並び 直接の下位要素の配列方向を表わす。Vで縦並び、Hで
横並びを表す。ピッチ等の情報を記述するように拡張す
ることも可能である。 【0041】4−2,3)最小 最大同じ下位要素が
繰り返し登場し得る場合、その登場回数の最小値と最大
値を指定する。繰り返しが無い場合は、両方とも1を指
定する。 【0042】4−4)下位要素名 その要素が包含する直接の下位要素の名前を指定する。 下位要素が文字列になる場合は、予約語Ch_Stri
ngを指定する。空白の場合は、子供の要素がすぐ次の
行から定義されていることを意味する。 【0043】5)F.S. その構成要素の周囲でフィールドセパレータが存在する
位置を示す。例えば、LW(Left White),
LB(Left Black), RW(Right
White),RB(Right Black),AW
(AboveWhite),AB(Above Bla
ck), BW(Below White),BB(B
elow Black),空白(フィールド・セパレー
タ無し)等を記述する。 【0044】実際に、図10のような論文フロント・ペ
ージのレイアウトを記述した表を図11に示す。図11
に示す表から、Paperという名の要素はTitle
、Author、及びBodyがそれぞれ1つずつ縦に
並んでできたものだということがわかる。 Title
は、文字列が縦に最大三個まで並んでできるものであり
、Authorは、文字列が縦に最大二個まで並んでで
きるものであることがわかる。また、Bodyは、無名
の要素(カラムに相当する)が二つ横に並んでできたも
のである。その無名の要素は、縦方向に最大50個まで
の文字列が並んでできるものである。AuthorとB
odyの間には水平線分によるフィールド・セパレータ
がある。図12に示すように、要素Bodyの構造を別
の表で定義することもできる。 【0045】[データ構造の生成]上記論文フロントペ
ージのレイアウトモデルを記述した表に基づいて、木ま
たは木の集合を表わすデータ構造がメモリ上にどのよう
に生成されるかを説明する。 【0046】a.表の合成 上述のように、表の中には他の表から記述を補わなけれ
ばならないものがあるので、メモリ上でのデータ構造の
作成に先立って、表合成装置6が必要な前処理を実行す
る。表合成装置6は、以下のような動作を行う。 【0047】1)入力された表(メインの表)の行を上
から順に調べ、下位要素名の欄が空白であるにもかかわ
らず、次の行のネスト番号が自分のネスト番号以下にな
っているもの(あるいは表が終わってしまっているもの
)を探す。 【0048】2)そのような行(以下、空白行と呼ぶ)
が発見された場合は、各欄の項目名がメインの表と一致
し、かつ先頭行の要素名の欄の内容が空白行と同じであ
る表(サブの表)を外部記憶装置3から見つけだし、サ
ブの表の先頭行の記述で空白行の足りない記述を補うと
ともに、サブの表の2行目以降を空白行の下に挿入する
。 その際、挿入される行のネスト番号の欄には、サブの表
で付いていたネスト番号とメインの表における該空白行
のネスト番号の和が記入される。 【0049】3)以上の処理をメインの表の終わりまで
繰り返し、また新たに挿入された部分についても同様の
処理を実行する。 【0050】結果として、表合成装置6は、空白行がな
ければ入力された表をそのまま出力し、空白行があれば
合成されてできた新しい表を出力する。この新しい表は
、外部記憶装置3に保存してよい。 【0051】b.データ構造の生成 表合成装置6から出力された表は、表解釈装置装置7に
入力される。表解釈装置7は、現在処理中の行は表の上
から数えて何行目かを表わす大域変数 intLin
e を用意し、初期値を Line = 1(1行目
を意味する) に設定する。しかる後、以下に疑似コー
ドを示すプログラムGenTreeを再帰的にコールし
、ルートから下にむかって木を成長させていく。 【0052】 GenTree(ノードへのポインタ Pare
ntNode) {
/* 局
所変数の表現 */
int Nest;
ノードへのポインタ C
urrentNode ;
if (Lineが1なら) {
ルートのノードを作り、属性をセットする。
CurrentNode = ルー
トノードのアドレス } el
se {
ノー
ドを作り、属性をセットする。
CurrentNode = ノードの
アドレス P
arentNodeに対してCurrentNodeを
子ノードとしてポインタで結ぶ }
Nest =
Lineがしめす行のネスト番号
do while (表が続いており
かつ Line+1の行のネスト番号 > Nes
t) { Lineをインクリメント
ca
ll GenTree(CurrentNode);
}
}
【0
053】このプログラムを図11に示す表に適用すると
、次のようして木が成長する。 1)まず、Line=1でGenTree(NULL)
がコールされる。Lineが1だから、木のルートノー
ド(Paper)がメモリ上に作られる(図13)。こ
こでは、木の集合に含まれ得るノードに対応してメモリ
上に確保された領域のこともノードと呼んでいるので、
注意されたい。Paper の属性データは、Pape
rのために確保されたメモリ領域(Paperノード)
にセットされる。要素の名前は、ユーザが木構造を記述
するときに個々のノードを区別する点にその第1の存在
意義があるから、アプリケーションによっては、その要
素のためのメモリ領域にセットされなくてもよい。 【0054】最初のコールでは、変数Nestに0がセ
ットされる。次の行のネスト番号は1だから、繰り返し
の条件が成立し、Lineが2にインクリメントされた
後、GenTreeが再帰的にコールされる。 【0055】2)GenTreeは、二度目はLine
=2の状態でコールされるので、表の2行目に対して作
用する。メモリ上に子供(Title)のための領域が
作られ、親(Paper)の領域とポインタで結ばれる
(図14)。具体的には、図18に示すように、メモリ
上のPaperノードの中または外に、子供のノードへ
のポインタデータを記憶する配列30がメモリ上に作ら
れ、その中にTitleノードへのアドレスデータがセ
ットされる。配列30にセットされるアドレスデータは
、メモリのアドレスそのものでもよいけれども、図19
に示すような、別の配列40に関するインデックスであ
ってもよい。後者の方法に従うときは、配列40にアド
レスが格納されることになる。これによれば、メモリ上
に生成された木構造を一旦外部記憶装置3にファイルの
形で格納し、再度メモリにロードするときに、アドレス
データの書換を配列40にて集中的に行えばよいので、
便利である。このように、ポインタデータの管理は様々
な態様で行うことができる。 【0056】この二回目のコールでは、変数Nestに
は1がセットされる。次の行のネスト番号も1であるか
ら、繰り返しの条件は成立せず、ただちに呼び出し側に
リターンする。 【0057】3)最初に呼び出されたGenTreeの
ループの中で3行目に対してGenTreeがコールさ
れ、2)と同様にしてAuthorに対応するノードが
メモリ上に作られる。 AuthorがPaperの子供であることを示すため
に、メモリ上のPaperノードとAuthorノード
はポインタで結ばれる。(図15) 【0058】4)同様に、4度目のGenTreeコー
ルによって4行目が処理され、Bodyに対応するノー
ドがメモリ上に作られる。BodyがPaperの子供
であることを示すために、メモリ上のPaperノード
とBodyノードはポインタで結ばれる。この場合は繰
り返しの条件が成立し、さらにGenTreeがコール
される(図16)。 【0059】5)5度目にコールされたGenTree
の処理では、引数で与えられる親ノードがBodyに対
応するノードになっている。新しくメモリ上に作られた
ノード(名前無し)はBodyノードとポインタで結ば
れ、この無名の要素がBodyの子供であることを示す
(図17)。なお、親を同じくする子供の順序関係の情
報の代表的な管理方法としては、次のようなものがある
。1つは、図18または図19に示すように、メモリ上
での親ノードから子ノードへのポインタデータを記憶す
る配列の中でのインデックスの順番に対応させる方法で
ある。もう1つは、図20に示すように、親ノードが先
頭の子供のノードへのポインタデータを持ち、順序関係
において相前後する子供同士の間では、前の子供のノー
ドが後の子供のノードへのポインタデータを持ち、最後
の子供のノードが親ノードへのポインタデータを持つと
いう方法である。何れも、当業者には公知の方法である
ので、その詳しい実現方法の説明は省略する。 【0060】以上のようにして生成された木構造に関す
るデータは、外部記憶装置3にファイルの形で保存され
る。そうすることによって、ファイルから再度メモリに
ロードすれば、メモリ上で木構造を直ちに回復すること
ができる。しかし、各ノードに新しく割り当てられたメ
モリ領域のアドレスに基づくポインタデータの更新は必
要である。 【0061】実施例によれば、木または木の集合を表わ
すデータ構造をメモリ上に生成するために、ユーザはノ
ードの種類の属性を記述した行を順番に並べた表を作成
しさえすればよい。木をいくつかに分け、複数の表を使
ってモデルを記述することも可能である。この実施例の
記述方式は、次のような利点を持っている。 【0062】1) メモリ上の各ノードにセットされ
る属性情報を記述するのが容易である。アプリケーショ
ンによっては、木の骨組みだけでなく、メモリ上のノー
ドが持つさまざまな属性情報も記述しなければならない
。例えば、レイアウトモデルでは、各ノードが、フィー
ルドセパレータの有無や認識・後処理の指定など、さま
ざまな属性を含んでいる。実施例では、表の中に属性ご
とに欄を設けてあり、1つの行を埋めることで、1のノ
ードにセットされる属性情報を簡単に記述することがで
きる。これに対し、特開平2ー59818号公報の方式
でそのような記述を可能とするには、複雑な文法を導入
せざるを得ない。 【0063】2) 表を用いて木を記述するので、記
述結果が理解しやすい。まず、表に記入された属性の値
同士を比較、対照することは容易である。さらに、名前
欄におけるノードの名前の配列と、ネスト欄に示された
各ノードの木の中での深さとによって、木を構成するノ
ードの階層関係及び同じノードに接続する子ノード同士
の順序関係が表現されるようにしたので、木の骨組も簡
単に把握できる。 【0064】また、レイアウトモデルを記述する場合、
同じ要素が複数個集まって上位要素を構成するという繰
り返しの情報を文法によって記述するなら、再帰的な記
述が必要になり、記述結果は予備知識のないユーザには
わかりにくいものになってしまう。これに対し、上記方
式にしたがえば、下位要素間の関係を上位要素の属性と
して表現することにより、繰り返しを簡単に記述できる
。 【0065】3) 木を表で表現し蓄積することによ
り、モジュール化を促進できる。レイアウトモデルを例
にとって説明すると、通常、新たに入力したい文書のモ
デルが既存のものと全く異なっていることはまれであり
、むしろ部分的には既存のモデルのどれかと類似してい
ることが多い。当然、ユーザとしては既存のモデルの使
える部分を修正したり組み合わせたりすることによって
新しいモデルを作りたいと思うだろう。そのような場合
、実施例によれば、ユーザは、まず外部記憶装置3に蓄
積されている表の中から似たレイアウトモデルを表わし
ているものを探せばよい。探す作業は、表示装置2に表
を表示して行ってもよいし、プリンタ(図示せず)で表
を印刷して行ってもよい。いずれにせよ、1)で述べた
ような理由で、表からレイアウトモデルの骨格及び各構
成要素の属性を把握することは簡単であるから、表を比
較する作業は容易である。必要に応じて、ノード名と属
性の項目名をキーとする検索する機能を付加してもよい
し、そのような機能は当業者なら簡単に実現できる。似
た表が見つかったなら、その表を入力したい文書のレイ
アウトにあわせて修正し、それを木構造生成装置7で木
構造データに変換するだけで、所望の木構造データを得
ることができる。あるいは、2つ以上の表の使える部分
だけを貼り合わせる編集を行って、新しい表を作ること
も可能である。 【0066】4) テキストエディタを使って、木を
記述できる。個々のノードの名前及び属性は、表の上で
一次元的に上から下に記述すればよいので、木構造を扱
う専用エディタは必要ない。さらに、表の各欄の意味さ
え説明されていれば、ユーザが木構造記述のためにキー
ボードで入力する情報は必要最小限ですむ。また、2)
で述べた蓄積されたデータの修正作業を簡単に行うこと
ができる。専用のエディタが必要になるような記述方式
の場合、そのような作業は比較的困難である。また、似
た表を探す機能を実現することも困難である。 【0067】5) 木の集合を表現できる。既に述べ
たように、従来の方式では、1個の具体的な木の構造を
表現することしかできない。レイアウトモデルに基づく
レイアウト解析において、構成要素の数の変動に対応す
るには、木の集合を記述する必要があるけれども、従来
技術では個々の木の記述しかサポートできず、不十分で
ある。これに対し、実施例の方式では、1の種類のノー
ドが必須かどうかを示す属性や、子ノードの数に関する
情報を表す属性をサポートしており、これらによって、
1つの木を記述することに加えて、特定のクラスに属す
る(例えば論文フロントページのレイアイウト構造を表
している)木の集合をまとめて記述することが可能とな
っている。このように、実施例の方式は、先行技術に比
べて非常に強力な表現能力を持っている。 【0068】[変形例]上記実施例の説明に関連して既
に示唆したものの他に、例えば以下に示すような実施態
様が可能である。まず、表のレベル欄またはネスト欄で
は、要はノードまたはノードの種類の木の中での深さの
違いが区別できればよいので、そこには数字以外の記号
を記述することも可能である。 【0069】また、既存の表を利用する場合、表の合成
を経ることなしに、それぞれが1の表に対応する複数の
データ構造から1つのデータ構造を生成することも可能
である。その場合、木構造生成装置7は、メインの表か
らメモリ上にメインツリーを生成し、それにサブツリー
を付加することになる。 【0070】また、本発明は、レイアウト理解の分野以
外にも広く適用可能である。一般に、予め知識を与えて
おくアプリケーションでは、知識データは木構造の形態
をとることが多い。本発明は、そのような知識の入力作
業に広く適用できる。レイアウトモデルを記述する場合
には、木構造の集合を表現する要請に応えて、表の中に
ノードの数を記述する欄を設けたが、個々の木を記述し
分けることしか要請されないアプリケーションでは、そ
のような欄を設ける必要はない。 【0071】 【発明の効果】本発明により、次のような効果が得られ
る。 (a)ユーザが木を簡単に記述することができ、その記
述結果に基づいて当該木を表わすデータ構造をメモリ上
に生成することができる。 【0072】(b)木の記述結果からユーザが生成され
る木構造を容易に把握することができ、その記述結果に
基づいて当該木を表わすデータ構造をメモリ上に生成す
ることができる。 【0073】(c)ユーザがテキストエディタを使って
木を記述することができ、その記述結果に基づいて当該
木を表わすデータ構造をメモリ上に生成することができ
る。 【0074】(d)ユーザが木の集合を記述することが
でき、その記述結果に基づいて当該木の集合を表わす1
つのデータ構造をメモリ上に生成することができる。 【0075】
のモデル等を表わす木または木の集合に対応するデータ
構造をメモリ上に生成するシステム及び方法に関する。 【0001】 【従来の技術】最近、オフィスなどで文書をコンピュー
タによって管理・検索する電子ファイリングシステムが
利用可能になってきた。しかし、現在のシステムは、各
文書を単に絵として蓄えているに過ぎず、情報を蓄積す
る体系としては、従来の紙をベースにしたファイリング
となんら変わらない。より高度なファイリングシステム
を構築するためには、文書画像から文書の内容を抽出す
ることが必要である。 【0002】システムに全文データベースとしての機能
を求めるのであれば、全文書内容のコード化が必要であ
るし、そうでない場合でも、タイトル、掲載誌名、キー
ワードなどの検索のためのコード情報の入力は必要不可
欠である。そして、印刷文字OCRが、このコード化作
業を支援するツールとして期待されている。しかしなが
ら、OCRによって文書画像自体から検索のための情報
を抽出するためには、まず必要な情報が印刷されている
位置を知らなければならない。また、電子ファイリング
システムの利用形態はアプリケーションに応じて様々で
あり、文書のある一部分(例えば、論文のアブストラク
ト)のみコード化したいといった要求も存在する。しか
し、こういった認識すべき位置の指定をオペレータが行
っていたのでは、文書入力の効率化は期待できない。し
たがって、コンピュータによって文書画像を解析し、そ
のレイアウトを自動的に理解する技術が必要になる。レ
イアウト理解の過程は、文書画像を文字、イラスト、写
真、表、グラフなどの領域に分割する処理、さらに各領
域の構造を解析する処理等で構成されるが、電子ファイ
リングにおいては、文字列、線分、その他の領域といっ
た大雑把な分割の後で、文字列に対してタイトル、著者
名、本文などの解釈を与える処理が重要である。 【0003】一般に、文書画像の構成要素の間には、部
分ー全体の関係に基づく階層構造が存在する。例えば、
文書はページの集まりで構成され、各ページはタイトル
、著者名、本文で構成され、さらに本文は幾つかのカラ
ムで構成される、といった具合である。この階層構造は
、節点がタイトル等の文書画像構成要素の1つに対応し
、葉が文字列に対応するような木によって表現される。 【0004】そこで、例えばA.Dengel and
G.Barth, ”High Level Doc
ument Analysis Guided by
Geometric Aspects,” Int.
Journalof Pattern Recogni
tion and Artificial Intel
ligence, 2, 4, pp.641−655
, 1988に開示されているように、ユーザがレイア
ウトに関する知識として木構造のモデルを与え、システ
ムがそれを基に解析を行う方式が提案されている。 【0005】ところで、木に対応するデータ構造をメモ
リ上に生成する方法として、ユーザが読解可能な何らか
の形で木を記述し、システムがその記述結果を解釈して
メモリ上にデータ構造を生成することが、ユーザの負担
の少なさの点で有利であり、一般的な方法である。その
ような例として、G. Nagy,S. Seth,
”Hierachical Representati
on of Optically Scanned D
ocuments”, Proc.7th ICPR(
Montreal),347−349, 1984は、
ユーザが木の骨組とその中の各ノードに与える属性を記
述するための属性文法を提案する。しかしながら、これ
は1種のプログラミングを強いるものであるから、エン
ドユーザがモデルを記述するのには不向きである。 【0006】一般に、文書の種類に応じて多種多様なレ
イアウトが存在するため、すべてのレイアウトに対して
モデルをあらかじめ用意しておくことは不可能であり、
モデルの記述・変更はエンドユーザが行う必要がある。 したがって、モデルを容易に記述・変更できることが、
レイアウト理解を行う文書画像解析システムの重要な要
件である。しかもこの記述の容易さという条件は、ユー
ザが様々なレイアウトに対応できるような十分な表現能
力を保ちつつ達成されなければならない。上記属性文法
にしたがう木の記述は、このような条件を満足できない
点で問題がある。 【0007】レイアウトモデルに限らず、ユーザが読解
可能な形で木を記述するためには、木を表わす図をディ
スプレイ上で編集するグラフィックスエディタを用いる
ことが一般的である。しかし、グラフィックスエディタ
を利用できる計算機は限定される。また、グラフィック
スエディタは、木の骨組、つまりノードの階層関係及び
同じノードに接続する子ノード同士の順序関係を記述す
るのには適しているが、個々のノードに与える属性を記
述するのには適していない。 【0008】特開平2ー59818号公報で開示される
木構造図作成システムは、プログラムモジュールの木構
造図を作成するためのものであるが、グラフィックス機
能をサポートしない端末からでも、木構造図を作成する
ための情報の入力を可能にする。モジュール間の呼び出
し関係はメインプログラムをルートとする木構造になる
から、この作成システムをは1種の木生成システムであ
る。このシステムにおいて、ユーザは、テキストエディ
タを使って、モジュール間の呼出し関係の情報を記述す
る。図1は、木構造図情報の記述例を示す。テキストに
おいて、木の枝分れは、IF、THEN、ELSE等の
キーワードで表示される。システムは、それらキーワー
ドを含んだテキストを解釈して、図2に示すような木構
造図を作成する。なお、図1及び図2は上記公報に掲載
されている図面である。 【0009】しかし、木の枝分れ毎に特殊なキーワード
を割り当てるのであるから、キーワードの意味を理解し
、その使い方に習熟しなければならない。このような記
述方法は、プログラム開発者にはなじみ深いものである
が、エンドユーザに最適とはいえない。キーボードに慣
れていないエンドユーザはキーワードの入力に時間がか
かるし、スペルミスや文法エラーをおかす可能性もある
。また、この記述方法にしたがって、多くの階層からな
る複雑な木を表現したならば、表現結果は複雑なものと
なり、表現結果から、木の全体的な階層構造を把握する
のが困難になる。 【0010】さらに、以上の記述方式に共通する問題点
は、これらの方式では1個の具体的な木を表現すること
しかできない、つまり、木の集合を表現できないという
ことである。アプリケーションによっては、木の集合を
表現できた方が望ましい場合がある。論文第1ページの
レイアウトを例にとって考えてみると、タイトルや著者
といった構成要素は必ず存在するが、脚注はそうではな
い。また、ある論文ではカラムが1ページに2つあるの
が普通であるとしても、最終ページには1つしかないこ
ともある。従来は、そのような変動に対応するために、
脚注のノードのある木とない木、あるいはカラムのノー
ドを1つ含む木と2つある木を別個に記述しなければな
らず、ユーザにとってレイアウトモデルを作成する負担
は重かった。 【0011】 【発明が解決しようとする課題】したがって、本発明の
目的は、ユーザが木を簡単に記述することができ、その
記述結果に基づいて該木を表わすデータ構造をメモリ上
に生成することのできるシステム及び方法を提供するこ
とにある。 【0012】本発明の他の目的は、木の記述結果からユ
ーザが生成される木を容易に把握することができ、その
記述結果に基づいて該木を表わすデータ構造をメモリ上
に生成することのできるシステム及び方法を提供するこ
とにある。 【0013】本発明のさらに他の目的は、ユーザがテキ
ストエディタを使って木を記述することができ、その記
述結果に基づいて該木を表わすデータ構造をメモリ上に
生成することのできるシステム及び方法を提供すること
にある。 【0014】本発明のさらに他の目的は、ユーザが木の
集合を記述することができ、その記述結果に基づいてメ
モリ上で該木の集合を表わすデータ構造をメモリ上に生
成することのできるシステム及び方法を提供することに
ある。 【0015】 【課題を解決するための手段】上記課題を解決するため
に、本発明による、メモリ上に木または木の集合を表わ
すデータ構造を生成するシステムは、1以上の欄を持ち
、木または木の集合に含まれ得るノードの種類ごとに当
該種類に与えられた属性が上記欄に記述されてなる表を
解釈して、上記種類ごとに、上記メモリ上に当該種類の
ための領域を確保し、該領域に当該種類に与えられた属
性のデータをセットするとともに、領域間の連結関係を
表わすポインタデータを生成する手段を含む。 【0016】このシステムを使うなら、木または木の集
合を記述するために、ユーザは、エディタを使ってノー
ドの種類毎にそれに与える属性を表に書き下すだけでよ
い。エディタにはテキストエディタを用いることができ
る。 【0017】上記表で、ノードの種類ごとにその種類の
木または木の集合における深さを記述する欄を設けるな
らば、上記表解釈手段は、上記表における、ノードの種
類の属性を記述する行の配列順序と、各種類に割り当て
られた深さに基づいて、種類間の階層関係及び同じノー
ドの下に連結するノードの種類間の順序関係を判断し、
その判断に基づいてポインタデータを生成することがで
きる。 【0018】上記表には、ノードの種類の名前を記述す
る欄を設けることが可能である。また、上記表には、ノ
ードの種類毎にその種類に属するノードの数を記述する
欄を設けることも可能である。その場合、上記表解釈手
段は、数のデータを属性データとして扱い、当該種類に
割り当てられたメモリ領域にそれをセットする。 【0019】作成された表を外部記憶装置に蓄積してお
き、モジュール化することも可能である。表の作成を容
易にするために、メインの表の記述の足りない箇所の有
無を判断し、そのような箇所があるならば、サブの表と
メインの表を合成して1つの完全な表を作成する手段が
用意される。 【0020】 【実施例】[ハードウェアの構成]図3は、本発明の1
実施例のハードウェアの構成を示す。この木生成システ
ムは、キーボード等の入力装置1と、CRTディスプレ
イ等の表示装置2と、磁気ディスクや光ディスク等を記
憶媒体に使う外部記憶装置3と、表を編集及び表示する
表編集表示装置4と、この表編集表示装置4により編集
された表のデータを外部記憶装置3に保存して管理する
表管理装置5と、複数の表を合成して1つの表を作成す
る表合成装置6と、表を解釈して、ノードまたはノード
の種類ごとに、メモリ20上に領域を確保し、該領域に
当該ノードまたはノードの種類に与えられた属性のデー
タをセットするとともに、領域間の連結関係を表わすポ
インタデータを生成する表解釈装置7と、この表解釈装
置7が生成した木構造に関するデータを保存及び管理す
る木構造管理装置8と、これら各装置を統括制御する制
御装置9とから構成されている。具体的には、テキスト
エディタ10が表集表示装置4と表管理装置5を合わせ
て実現する。上記装置4乃至8は、専用のハードウェア
で構成することも可能であるけれども、図3の例では、
メモリ20にロードされるソフトウェアモジュールの形
で実現されている。 【0021】[表の入力]a.概要 図4に示すような、AからJまでの11種類のノードが
それぞれ1つずつ含まれてなる木の記述を例にとって説
明する。本発明によれば、ユーザは、テキストエディタ
10を使って、図5に示す表を入力装置1から入力しさ
えすればよい。表には、ノードまたはノードの種類の名
前を記述する1つの欄と属性を記述する複数の欄が設け
られており、そこにユーザが必要な情報を書込めるよう
になっている。所望の表を簡便に作成するためには、項
目名以外は空白の表を外部記憶装置3に保存しておき、
それを取り出して編集するとよい。完成した表は、外部
記憶装置3に保存される。 【0022】木の骨組は、図5に示す表の上で次のよう
にして表わされる。まず、表には、深さ(レベル)を記
述するレベル欄が設けられる。例えば、木の最上部に位
置するAについては、レベル欄に数字0を記入し、Aの
子供であるB,C,D,Eについては、レベル欄に数字
1を記入する、といった具合である。 【0023】次に、親子間の連結情報について述べると
、親に連結する(直接または間接の)子孫の行を、当該
親の行と、それより下に最初に現れる、当該親以上のレ
ベルにあるノードの行との間の行を使ってすべて書きき
ってしまうことで、それら子孫が当該親に直接または間
接的に連結することを表わす。当該親のレベル以上のノ
ードがそれ以降に全くないときは、当該親の行より下の
すべての行が、子孫の記述に使われる。 【0024】さらに、親を同じくする子同士の中で順序
関係があるときは、それを表の中での行の上下関係に反
映させることにする。例えば、レベル1のノードに関し
て順序関係が存在し、それに対応して図4では便宜上左
からB,C,D,Eの順に並んでいるとする。(その順
序は、実際にはノードに対応する実体の物理的位置の上
下方向の順序に対応するものかもしれないことに注意さ
れたい。) このとき、図5に示す表において、それ
らに対応する行は、上からB,C,D,Eの順で並ぶ。 【0025】以上の規則に従えば、木に含まれるノード
(またはノードの種類)の階層関係及び親を同じくする
ノード(またはノードの種類)同士の順序関係が、表の
中での行の上下関係とレベルの欄だけを使ってすべて表
現できる。したがって、上記規則を踏まえて図5に示す
表を解釈すると、まず表の1番上にある行の名前の欄に
Aが記述されていることから、Aが木の最も上にあるこ
とがわかる。また、レベル欄に1が記入された行のノー
ド名の欄を調べることによって、Aの子供はB,C,D
,Eであり、かつそれらの行の上下関係から、それらの
間に順序関係があるとするなら、その順序はB,C,D
,Eの順であることがわかる。 【0026】さらに、レベル1であるDとEの行に挟ま
れた、レベル2の行に対応するFとGが、Dの子供であ
る。そして、Gの行に続くレベル3の行に対応するJが
、Gの子供である。表の最後部には、レベル1のEの行
に続いてレベル2のH,Iの行が続く。よって、H,I
はEの子供であるとわかる。後述する表解釈装置7は、
このような解釈を行ってポインタデータを生成する。 【0027】図5に示す表において、属性を記す欄の中
には、ノードの数を記す欄がある。その欄はさらに最小
値を記す欄と最大値を記す欄からなる。ある種類に属す
るノードの数をその種類の行を使って記述してもよいけ
れども、ここでは子ノードの数をその親の行に記述する
ことにする。(なお、ルートノードの数は1つであるこ
とを前提にしている。)そのような規則の下で記述した
図5に示す表の、例えばAの行を見ると、最小値と最大
値がともに1であるから、この表が表現する木には、ノ
ードAの子供として、種類B,C,D,Eに属するノー
ドが1つずつ存在することが示されている。結局、図5
の表は、1つの木を表現している。 【0028】もし、Gの行において、最小値を1、最大
値を2と記述したなら、その表は、種類Jのノードを1
つだけ含む木と2つ含む木(図6参照)をそのメンバー
とする集合に対応付けられていることを意味する。しか
し、そのような表を変換して作られるデータ構造は、種
類Jに対応するメモリ上の領域を1つしか含まないこと
に注意されたい。種類Gに割り当てられた領域に、その
属性データとしてその子ノード(J)の最小値と最大値
がセットされるだけである。 【0029】なお、Jのような葉が何らかの下位要素を
持ち、しかもその数が不定であることを示す必要がある
ならば、その葉の行の最小値と最大値の欄に適当な数を
記入する。後述するレイアウトモデルの例では、葉の下
位要素は文字列に対応する。 【0030】本実施例では、表合成装置6が設けられて
いる。この装置6は、外部記憶装置3から取り出した表
について、その表が他の表と組み合わされるべきもので
あるかを判断し、判断結果が肯定的であるならば、組み
合わす相手の表を探し、それらの表を合成する。これを
使うと、他の表の記述を援用することが許されるので、
複雑な木を定義したい時に、その木の一部を定義した表
が外部記憶装置3に保存されている場合には、その表を
モジュールとして活用してもよい。例えば、図4に示す
木のうち、Dをルートとするサブツリーが、図7に示す
表(サブの表)の形で定義され、外部記憶装置3に保存
されているとする。このとき、図4の木を定義するため
に、ユーザは、図5よりも簡単な、図8に示す表(メイ
ンの表)を作成するだけでよい。そこでは、Dが別の表
で定義されたサブツリーのルートであることを表示する
ために、Dの行は、レベル欄と名前欄を除いて空白であ
る。例えば、外部記憶装置3から図8に示す表が取り出
されると、表合成装置6は、外部記憶装置3に保存され
ている表の中から図7の表を探し、これらを合成して図
4に示す表を作成する。この表合成装置6の動作の詳細
は、後で説明する。 【0031】b.具体例 以下、表を使った木構造の表現の具体例として、文書画
像のレイアウトモデルの記述方法を述べる。ここで、文
書画像の構成要素として文字列から構成されるもののみ
に対象を絞ると、ある要素を構成する直接の下位要素間
には常に順序関係が成立している(実際、人間はこの順
序に従ってテキストを読んでいる)。この順序は、それ
ら下位要素間の紙面上での位置関係によって決まるもの
で、縦並びなら上から下、横並びなら左から右の順番に
なる。例えば、米国特許の公報では、1つのページの本
文はその下位の構成要素として2つの欄を含み、それら
は横並びである。そこで、表の上で連続した2つの構成
要素に関し、それらが階層を異にするのか、つまり上位
と下位の関係にあるのか、それとも同じ階層に属するの
かを区別できれば、同じレベルにある構成要素に関して
は、この順序にそって構成要素名を並べることにより、
木構造をなす紙面の構成要素を1次元のシーケンスとし
て表現することができる。この区別の方法としては、例
えば階層のレベル(深さ)を示す数字を、各構成要素に
与えてやればよい。このような記述方法の工夫によって
、レイアウトモデルを、行方向に構成要素が並び、列方
向には各構成要素の属性が記述された表として表現する
ことができる。 【0032】例えば、天野他、マルチメディア文書入力
のための文書画像認識システム:DRS、情報処理学会
マルチメディア通信と分散処理研究会48ー6、199
1年1月、で開示されたレイアウト解析システムについ
て、上述の方針にそってモデルに記述されるべき情報を
整理してみると、次のようになる。(なお、以下では文
書画像構成要素を単に要素と呼ぶことにする。そして、
便宜上文字列も要素であると考えることにする。しかし
、文字列のための領域はメモリ上で確保されない。)【
0033】1) 直接の下位要素の数に関する制限(
最少値と最大値)。 2) 下位要素が複数あるときに、それらの並び方(
縦並びか横並びか)。 3) その要素の存在はそのモデルにおいてマンダト
リー(必須)か否か。 4) その要素の左右または上下にフィールドセパレ
ータ(他の要素との区切りになる程に大きな白画素の領
域や水平または垂直の線分)があるか。 5) 文字列を構成する字種(数字、アルファベット
、漢字)。 6) 後で文字の認識を行うか。 7) 認識後、(例えば住所、姓名等について)後処
理をかけるか。 【0034】1)および2)のような下位要素の集合に
関する属性は、それらの1つ上位レベルの要素の属性と
して、その上位要素の行の中で記述することができる。 3)以下の属性は、その要素自体の持つ属性として、そ
の要素の行の中で記述することができる。 【0035】以下では、1)から4)の情報の記述方法
について説明するが、5)以降の情報についても属性を
記述する欄を追加することにより、容易に記述すること
ができる。モデルを記述する表の例を図9に示す。表の
各欄は、次のような意味を持つ。 【0036】1)ネスト 階層レベルを表す番号である。一の表の中で、木の最上
位に位置する要素を0として、番号が大きいほど深い(
最上位要素から離れた)要素であることを示している。 【0037】2)要素名 要素の名前を示す文字列である。その要素が他の要素か
ら参照されていなければ、空白にしておいてもよい。 【0038】3)必在 ある要素が紙面に必ず存在するか否かを示す。Yは必在
することを、Nはそうでないことを意味する。 【0039】4)構成 要素の構成方法を示す。4つの項目からなり、そのすべ
てが空白の場合は、その要素が別の表によって定義され
ていることを意味する。 【0040】4−1)並び 直接の下位要素の配列方向を表わす。Vで縦並び、Hで
横並びを表す。ピッチ等の情報を記述するように拡張す
ることも可能である。 【0041】4−2,3)最小 最大同じ下位要素が
繰り返し登場し得る場合、その登場回数の最小値と最大
値を指定する。繰り返しが無い場合は、両方とも1を指
定する。 【0042】4−4)下位要素名 その要素が包含する直接の下位要素の名前を指定する。 下位要素が文字列になる場合は、予約語Ch_Stri
ngを指定する。空白の場合は、子供の要素がすぐ次の
行から定義されていることを意味する。 【0043】5)F.S. その構成要素の周囲でフィールドセパレータが存在する
位置を示す。例えば、LW(Left White),
LB(Left Black), RW(Right
White),RB(Right Black),AW
(AboveWhite),AB(Above Bla
ck), BW(Below White),BB(B
elow Black),空白(フィールド・セパレー
タ無し)等を記述する。 【0044】実際に、図10のような論文フロント・ペ
ージのレイアウトを記述した表を図11に示す。図11
に示す表から、Paperという名の要素はTitle
、Author、及びBodyがそれぞれ1つずつ縦に
並んでできたものだということがわかる。 Title
は、文字列が縦に最大三個まで並んでできるものであり
、Authorは、文字列が縦に最大二個まで並んでで
きるものであることがわかる。また、Bodyは、無名
の要素(カラムに相当する)が二つ横に並んでできたも
のである。その無名の要素は、縦方向に最大50個まで
の文字列が並んでできるものである。AuthorとB
odyの間には水平線分によるフィールド・セパレータ
がある。図12に示すように、要素Bodyの構造を別
の表で定義することもできる。 【0045】[データ構造の生成]上記論文フロントペ
ージのレイアウトモデルを記述した表に基づいて、木ま
たは木の集合を表わすデータ構造がメモリ上にどのよう
に生成されるかを説明する。 【0046】a.表の合成 上述のように、表の中には他の表から記述を補わなけれ
ばならないものがあるので、メモリ上でのデータ構造の
作成に先立って、表合成装置6が必要な前処理を実行す
る。表合成装置6は、以下のような動作を行う。 【0047】1)入力された表(メインの表)の行を上
から順に調べ、下位要素名の欄が空白であるにもかかわ
らず、次の行のネスト番号が自分のネスト番号以下にな
っているもの(あるいは表が終わってしまっているもの
)を探す。 【0048】2)そのような行(以下、空白行と呼ぶ)
が発見された場合は、各欄の項目名がメインの表と一致
し、かつ先頭行の要素名の欄の内容が空白行と同じであ
る表(サブの表)を外部記憶装置3から見つけだし、サ
ブの表の先頭行の記述で空白行の足りない記述を補うと
ともに、サブの表の2行目以降を空白行の下に挿入する
。 その際、挿入される行のネスト番号の欄には、サブの表
で付いていたネスト番号とメインの表における該空白行
のネスト番号の和が記入される。 【0049】3)以上の処理をメインの表の終わりまで
繰り返し、また新たに挿入された部分についても同様の
処理を実行する。 【0050】結果として、表合成装置6は、空白行がな
ければ入力された表をそのまま出力し、空白行があれば
合成されてできた新しい表を出力する。この新しい表は
、外部記憶装置3に保存してよい。 【0051】b.データ構造の生成 表合成装置6から出力された表は、表解釈装置装置7に
入力される。表解釈装置7は、現在処理中の行は表の上
から数えて何行目かを表わす大域変数 intLin
e を用意し、初期値を Line = 1(1行目
を意味する) に設定する。しかる後、以下に疑似コー
ドを示すプログラムGenTreeを再帰的にコールし
、ルートから下にむかって木を成長させていく。 【0052】 GenTree(ノードへのポインタ Pare
ntNode) {
/* 局
所変数の表現 */
int Nest;
ノードへのポインタ C
urrentNode ;
if (Lineが1なら) {
ルートのノードを作り、属性をセットする。
CurrentNode = ルー
トノードのアドレス } el
se {
ノー
ドを作り、属性をセットする。
CurrentNode = ノードの
アドレス P
arentNodeに対してCurrentNodeを
子ノードとしてポインタで結ぶ }
Nest =
Lineがしめす行のネスト番号
do while (表が続いており
かつ Line+1の行のネスト番号 > Nes
t) { Lineをインクリメント
ca
ll GenTree(CurrentNode);
}
}
【0
053】このプログラムを図11に示す表に適用すると
、次のようして木が成長する。 1)まず、Line=1でGenTree(NULL)
がコールされる。Lineが1だから、木のルートノー
ド(Paper)がメモリ上に作られる(図13)。こ
こでは、木の集合に含まれ得るノードに対応してメモリ
上に確保された領域のこともノードと呼んでいるので、
注意されたい。Paper の属性データは、Pape
rのために確保されたメモリ領域(Paperノード)
にセットされる。要素の名前は、ユーザが木構造を記述
するときに個々のノードを区別する点にその第1の存在
意義があるから、アプリケーションによっては、その要
素のためのメモリ領域にセットされなくてもよい。 【0054】最初のコールでは、変数Nestに0がセ
ットされる。次の行のネスト番号は1だから、繰り返し
の条件が成立し、Lineが2にインクリメントされた
後、GenTreeが再帰的にコールされる。 【0055】2)GenTreeは、二度目はLine
=2の状態でコールされるので、表の2行目に対して作
用する。メモリ上に子供(Title)のための領域が
作られ、親(Paper)の領域とポインタで結ばれる
(図14)。具体的には、図18に示すように、メモリ
上のPaperノードの中または外に、子供のノードへ
のポインタデータを記憶する配列30がメモリ上に作ら
れ、その中にTitleノードへのアドレスデータがセ
ットされる。配列30にセットされるアドレスデータは
、メモリのアドレスそのものでもよいけれども、図19
に示すような、別の配列40に関するインデックスであ
ってもよい。後者の方法に従うときは、配列40にアド
レスが格納されることになる。これによれば、メモリ上
に生成された木構造を一旦外部記憶装置3にファイルの
形で格納し、再度メモリにロードするときに、アドレス
データの書換を配列40にて集中的に行えばよいので、
便利である。このように、ポインタデータの管理は様々
な態様で行うことができる。 【0056】この二回目のコールでは、変数Nestに
は1がセットされる。次の行のネスト番号も1であるか
ら、繰り返しの条件は成立せず、ただちに呼び出し側に
リターンする。 【0057】3)最初に呼び出されたGenTreeの
ループの中で3行目に対してGenTreeがコールさ
れ、2)と同様にしてAuthorに対応するノードが
メモリ上に作られる。 AuthorがPaperの子供であることを示すため
に、メモリ上のPaperノードとAuthorノード
はポインタで結ばれる。(図15) 【0058】4)同様に、4度目のGenTreeコー
ルによって4行目が処理され、Bodyに対応するノー
ドがメモリ上に作られる。BodyがPaperの子供
であることを示すために、メモリ上のPaperノード
とBodyノードはポインタで結ばれる。この場合は繰
り返しの条件が成立し、さらにGenTreeがコール
される(図16)。 【0059】5)5度目にコールされたGenTree
の処理では、引数で与えられる親ノードがBodyに対
応するノードになっている。新しくメモリ上に作られた
ノード(名前無し)はBodyノードとポインタで結ば
れ、この無名の要素がBodyの子供であることを示す
(図17)。なお、親を同じくする子供の順序関係の情
報の代表的な管理方法としては、次のようなものがある
。1つは、図18または図19に示すように、メモリ上
での親ノードから子ノードへのポインタデータを記憶す
る配列の中でのインデックスの順番に対応させる方法で
ある。もう1つは、図20に示すように、親ノードが先
頭の子供のノードへのポインタデータを持ち、順序関係
において相前後する子供同士の間では、前の子供のノー
ドが後の子供のノードへのポインタデータを持ち、最後
の子供のノードが親ノードへのポインタデータを持つと
いう方法である。何れも、当業者には公知の方法である
ので、その詳しい実現方法の説明は省略する。 【0060】以上のようにして生成された木構造に関す
るデータは、外部記憶装置3にファイルの形で保存され
る。そうすることによって、ファイルから再度メモリに
ロードすれば、メモリ上で木構造を直ちに回復すること
ができる。しかし、各ノードに新しく割り当てられたメ
モリ領域のアドレスに基づくポインタデータの更新は必
要である。 【0061】実施例によれば、木または木の集合を表わ
すデータ構造をメモリ上に生成するために、ユーザはノ
ードの種類の属性を記述した行を順番に並べた表を作成
しさえすればよい。木をいくつかに分け、複数の表を使
ってモデルを記述することも可能である。この実施例の
記述方式は、次のような利点を持っている。 【0062】1) メモリ上の各ノードにセットされ
る属性情報を記述するのが容易である。アプリケーショ
ンによっては、木の骨組みだけでなく、メモリ上のノー
ドが持つさまざまな属性情報も記述しなければならない
。例えば、レイアウトモデルでは、各ノードが、フィー
ルドセパレータの有無や認識・後処理の指定など、さま
ざまな属性を含んでいる。実施例では、表の中に属性ご
とに欄を設けてあり、1つの行を埋めることで、1のノ
ードにセットされる属性情報を簡単に記述することがで
きる。これに対し、特開平2ー59818号公報の方式
でそのような記述を可能とするには、複雑な文法を導入
せざるを得ない。 【0063】2) 表を用いて木を記述するので、記
述結果が理解しやすい。まず、表に記入された属性の値
同士を比較、対照することは容易である。さらに、名前
欄におけるノードの名前の配列と、ネスト欄に示された
各ノードの木の中での深さとによって、木を構成するノ
ードの階層関係及び同じノードに接続する子ノード同士
の順序関係が表現されるようにしたので、木の骨組も簡
単に把握できる。 【0064】また、レイアウトモデルを記述する場合、
同じ要素が複数個集まって上位要素を構成するという繰
り返しの情報を文法によって記述するなら、再帰的な記
述が必要になり、記述結果は予備知識のないユーザには
わかりにくいものになってしまう。これに対し、上記方
式にしたがえば、下位要素間の関係を上位要素の属性と
して表現することにより、繰り返しを簡単に記述できる
。 【0065】3) 木を表で表現し蓄積することによ
り、モジュール化を促進できる。レイアウトモデルを例
にとって説明すると、通常、新たに入力したい文書のモ
デルが既存のものと全く異なっていることはまれであり
、むしろ部分的には既存のモデルのどれかと類似してい
ることが多い。当然、ユーザとしては既存のモデルの使
える部分を修正したり組み合わせたりすることによって
新しいモデルを作りたいと思うだろう。そのような場合
、実施例によれば、ユーザは、まず外部記憶装置3に蓄
積されている表の中から似たレイアウトモデルを表わし
ているものを探せばよい。探す作業は、表示装置2に表
を表示して行ってもよいし、プリンタ(図示せず)で表
を印刷して行ってもよい。いずれにせよ、1)で述べた
ような理由で、表からレイアウトモデルの骨格及び各構
成要素の属性を把握することは簡単であるから、表を比
較する作業は容易である。必要に応じて、ノード名と属
性の項目名をキーとする検索する機能を付加してもよい
し、そのような機能は当業者なら簡単に実現できる。似
た表が見つかったなら、その表を入力したい文書のレイ
アウトにあわせて修正し、それを木構造生成装置7で木
構造データに変換するだけで、所望の木構造データを得
ることができる。あるいは、2つ以上の表の使える部分
だけを貼り合わせる編集を行って、新しい表を作ること
も可能である。 【0066】4) テキストエディタを使って、木を
記述できる。個々のノードの名前及び属性は、表の上で
一次元的に上から下に記述すればよいので、木構造を扱
う専用エディタは必要ない。さらに、表の各欄の意味さ
え説明されていれば、ユーザが木構造記述のためにキー
ボードで入力する情報は必要最小限ですむ。また、2)
で述べた蓄積されたデータの修正作業を簡単に行うこと
ができる。専用のエディタが必要になるような記述方式
の場合、そのような作業は比較的困難である。また、似
た表を探す機能を実現することも困難である。 【0067】5) 木の集合を表現できる。既に述べ
たように、従来の方式では、1個の具体的な木の構造を
表現することしかできない。レイアウトモデルに基づく
レイアウト解析において、構成要素の数の変動に対応す
るには、木の集合を記述する必要があるけれども、従来
技術では個々の木の記述しかサポートできず、不十分で
ある。これに対し、実施例の方式では、1の種類のノー
ドが必須かどうかを示す属性や、子ノードの数に関する
情報を表す属性をサポートしており、これらによって、
1つの木を記述することに加えて、特定のクラスに属す
る(例えば論文フロントページのレイアイウト構造を表
している)木の集合をまとめて記述することが可能とな
っている。このように、実施例の方式は、先行技術に比
べて非常に強力な表現能力を持っている。 【0068】[変形例]上記実施例の説明に関連して既
に示唆したものの他に、例えば以下に示すような実施態
様が可能である。まず、表のレベル欄またはネスト欄で
は、要はノードまたはノードの種類の木の中での深さの
違いが区別できればよいので、そこには数字以外の記号
を記述することも可能である。 【0069】また、既存の表を利用する場合、表の合成
を経ることなしに、それぞれが1の表に対応する複数の
データ構造から1つのデータ構造を生成することも可能
である。その場合、木構造生成装置7は、メインの表か
らメモリ上にメインツリーを生成し、それにサブツリー
を付加することになる。 【0070】また、本発明は、レイアウト理解の分野以
外にも広く適用可能である。一般に、予め知識を与えて
おくアプリケーションでは、知識データは木構造の形態
をとることが多い。本発明は、そのような知識の入力作
業に広く適用できる。レイアウトモデルを記述する場合
には、木構造の集合を表現する要請に応えて、表の中に
ノードの数を記述する欄を設けたが、個々の木を記述し
分けることしか要請されないアプリケーションでは、そ
のような欄を設ける必要はない。 【0071】 【発明の効果】本発明により、次のような効果が得られ
る。 (a)ユーザが木を簡単に記述することができ、その記
述結果に基づいて当該木を表わすデータ構造をメモリ上
に生成することができる。 【0072】(b)木の記述結果からユーザが生成され
る木構造を容易に把握することができ、その記述結果に
基づいて当該木を表わすデータ構造をメモリ上に生成す
ることができる。 【0073】(c)ユーザがテキストエディタを使って
木を記述することができ、その記述結果に基づいて当該
木を表わすデータ構造をメモリ上に生成することができ
る。 【0074】(d)ユーザが木の集合を記述することが
でき、その記述結果に基づいて当該木の集合を表わす1
つのデータ構造をメモリ上に生成することができる。 【0075】
【図1】従来技術による、木構造の記述例を示す図であ
る。
る。
【図2】従来技術による、木構造図の出力結果を示す図
である。
である。
【図3】本発明の木生成システムの1例の概要を示す図
である。
である。
【図4】木の1例を概略的に示す図である。
【図5】図4に示した木を記述する表を示す図である。
【図6】木の他の例を概略的に示す図である。
【図7】サブの木を記述する表を示す図である。
【図8】メインの木を記述する表を示す図である。
【図9】レイアウトモデルを記述する表を示す図である
。
。
【図10】論文フロントページの例を示す図である。
【図11】図10に示した論文フロントページのレイア
ウトモデルを記述する表を示す図である。
ウトモデルを記述する表を示す図である。
【図12】図10に示した論文フロントページのレイア
ウトモデルを記述する2つの表を示す図である。
ウトモデルを記述する2つの表を示す図である。
【図13】図11の表からデータ構造が生成される過程
の説明図である。
の説明図である。
【図14】図11の表からデータ構造が生成される過程
の説明図である。
の説明図である。
【図15】図11の表からデータ構造が生成される過程
の説明図である。
の説明図である。
【図16】図11の表からデータ構造が生成される過程
の説明図である。
の説明図である。
【図17】図11の表からデータ構造が生成される過程
の説明図である。
の説明図である。
【図18】ポインタデータの管理の1例を示す図である
。
。
【図19】ポインタデータの管理の他の例を示す図であ
る。
る。
【図20】ポインタデータの管理のさらに別の例を示す
図である。
図である。
7 表解釈装置、 10 テキストエディタ、
20 メモリ
20 メモリ
Claims (32)
- 【請求項1】メモリ上に木に対応するデータ構造を生成
するシステムであって、1以上の欄を持ち、上記木に含
まれるノードごとにそのノードに与えられた属性が上記
欄に記述されてなる表を解釈して、上記ノードごとに、
上記メモリ上に当該ノードのための領域を確保し、該領
域に当該ノードに与えられた属性のデータをセットする
とともに、領域間の連結関係を表わすポインタデータを
生成する手段を含むシステム。 - 【請求項2】メモリ上に木または木の集合に対応するデ
ータ構造を生成するシステムであって、1以上の欄を持
ち、上記木または木の集合に含まれ得るノードの種類ご
とにその種類に与えられた属性が上記欄に記述されてな
る表を解釈して、上記種類ごとに、上記メモリ上に当該
種類のための領域を確保し、該領域に当該種類に与えら
れた属性のデータをセットするとともに、領域間の連結
関係を表わすポインタデータを生成する手段を含むシス
テム。 - 【請求項3】メモリ上に木に対応するデータ構造を生成
するシステムであって、(a)データを入力するための
手段と、(b)木に含まれるノードごとにそのノードに
与える属性を記述するための表を表示する手段と、(c
)上記手段(a)から受け取ったデータに基づいて、上
記表を編集する手段と、(d)編集された表を解釈して
、そこに含まれるノードごとに、上記メモリ上に当該ノ
ードのための領域を確保し、該領域に当該ノードに与え
られた属性のデータをセットするとともに、領域間の連
結関係を表わすポインタデータを生成する手段を含むシ
ステム。 - 【請求項4】メモリ上に木または木の集合に対応するデ
ータ構造を生成するシステムであって、(a)データを
入力するための手段と、(b)木または木の集合に含ま
れ得るノードの種類ごとにその種類に与える属性を記述
するための表を表示する手段と、(c)上記手段(a)
から受け取ったデータに基づいて、上記表を編集する手
段と、(d)編集された表を解釈して、そこに含まれる
ノードの種類ごとに、上記メモリ上に当該種類のための
領域を確保し、該領域に当該種類に与えられた属性のデ
ータをセットするとともに、領域間の連結関係を表わす
ポインタデータを生成する手段を含むシステム。 - 【請求項5】(e)外部記憶手段と、(f)上記表編集
手段によって編集された表のデータを上記外部記憶手段
に保存及び管理するための手段と、(g)上記表解釈手
段によって生成されたデータを上記外部記憶手段に保存
及び管理するための手段をさらに含む請求項3又は4記
載のシステム。 - 【請求項6】(h)欄の項目名が一致する複数の表を合
成して1つの表を生成する手段をさらに含む請求項3乃
至5記載のシステム。 - 【請求項7】上記表には、ノードごとに当該ノードの木
の中での深さを記述する欄が設けられている、請求項1
又は3記載のシステム。 - 【請求項8】上記表解釈手段は、上記表における、ノー
ドに与えた属性を記述する行の配列順序と、ノードに割
り当てられた深さに基づいて、ノード間の階層関係及び
同じノードのすぐ下に連結するノード同士の間での順序
関係を判断する、請求項7記載のシステム。 - 【請求項9】上記表には、ノードの種類ごとに当該種類
の木または木の集合における深さを記述する欄が設けら
れている、請求項2又は4記載のシステム。 - 【請求項10】上記表解釈手段は、上記表における、ノ
ードの種類に与えた属性を記述する行の配列順序と、種
類に割り当てられた深さに基づいて、種類間の階層関係
及び同じノードのすぐ下に連結するノードの種類間の順
序関係を判断する、請求項9記載のシステム。 - 【請求項11】上記表には、ノードの種類ごとにその種
類に属するノードの数を記述する欄が設けられている、
請求項2又は4記載のシステム。 - 【請求項12】上記ノードの数を記述する欄は、最大値
を記述する欄と最小値を記述する欄からなる、請求項1
1記載のシステム。 - 【請求項13】親である種類の行には、その子である種
類のノードの数が記述される、請求項11記載のシステ
ム。 - 【請求項14】上記表には、ノードの種類ごとにその種
類のノードが上記集合のメンバーであるすべての木で必
在するか否かを記述する欄が設けられている請求項2又
は4記載のシステム。 - 【請求項15】上記表編集手段はテキストエディタであ
る請求項3又は4記載のシステム。 - 【請求項16】メモリと外部記憶装置を具備するコンピ
ュータシステムにおいて、上記メモリ上に木に対応する
データ構造を生成する方法であって、(a)1以上の欄
を持ち、上記木に含まれるノードごとにそのノードに与
えられた属性が上記欄に記述されてなる表を上記外部記
憶装置から取り出し、(b)上記取り出された表を解釈
して、上記ノードごとに、上記メモリ上に当該ノードの
ための領域を確保し、該領域に当該ノードに与えられた
属性のデータをセットするとともに、領域間の連結関係
を表わすポインタデータを生成するステップを含む方法
。 - 【請求項17】メモリと外部記憶装置を具備するコンピ
ュータシステムにおいて、上記メモリ上に木または木の
集合に対応するデータ構造を生成する方法であって、(
a)1以上の欄を持ち、上記木または木の集合に含まれ
得るノードの種類ごとにその種類に与えられた属性が上
記欄に記述されてなる表を上記外部記憶装置から取り出
し、(b)上記取り出された表を解釈して、上記種類ご
とに、上記メモリ上に当該種類のための領域を確保し、
該領域に当該種類に与えられた属性のデータをセットす
るとともに、領域間の連結関係を表わすポインタデータ
を生成するステップを含む方法。 - 【請求項18】入力手段とメモリを具備するコンピュー
タシステムにおいて、上記メモリ上に木に対応するデー
タ構造を生成する方法であって、(a)木に含まれるノ
ードごとに当該ノードに与える属性を記述するための表
を表示し、(b)上記入力手段から受け取ったデータに
基づいて、上記表を編集し、(c)編集された表を解釈
して、そこに含まれるノードごとに、上記メモリ上に当
該ノードのための領域を確保し、該領域に当該ノードに
与えられた属性のデータをセットするとともに、領域間
の連結関係を表わすポインタデータを生成するステップ
を含む方法。 - 【請求項19】入力手段とメモリを具備するコンピュー
タシステムにおいて、上記メモリ上に木または木の集合
に対応するデータ構造を生成する方法であって、(a)
木または木の集合に含まれ得るノードの種類ごとに当該
種類に与える属性を記述するための表を表示し、(b)
上記入力手段から受け取ったデータに基づいて、上記表
を編集し、(c)編集された表を解釈して、そこに含ま
れるノードの種類ごとに、上記メモリ上に当該種類のた
めの領域を確保し、該領域に当該種類に与えられた属性
のデータをセットするとともに、領域間の連結関係を表
わすポインタデータを生成するステップを含む方法。 - 【請求項20】上記表には、ノードごとに当該ノードの
木の中での深さを記述する欄が設けられている、請求項
16又は18記載の方法。 - 【請求項21】上記表解釈ステップでは、上記表におけ
る、ノードに与えた属性を記述する行の配列順序と、ノ
ードに割り当てられた深さに基づいて、ノード間の階層
関係及び同じノードのすぐ下に連結するノード同士の間
での順序関係を判断する、請求項20記載の方法。 - 【請求項22】上記表には、ノードの種類ごとに当該種
類の木または木の集合における深さを記述する欄が設け
られている、請求項17又は19記載の方法。 - 【請求項23】上記表解釈ステップでは、上記表におけ
る、ノードの種類に与えた属性を記述する行の配列順序
と、種類に割り当てられた深さに基づいて、種類間の階
層関係及び同じノードのすぐ下に連結するノードの種類
間の順序関係を判断し、その判断に基づいてポインタデ
ータを生成する、請求項17記載の方法。 - 【請求項24】上記表には、ノードの種類ごとにその種
類に属するノードの数を記述する欄が設けられている、
請求項17又は19記載の方法。 - 【請求項25】上記ノードの数を記述する欄は、最大値
を記述する欄と最小値を記述する欄からなる、請求項2
4記載の方法。 - 【請求項26】親である種類の行には、その子である種
類のノードの数の情報が記述される、請求項24記載の
方法。 - 【請求項27】上記表には、ノードの種類ごとにその種
類のノードが上記木の集合のメンバーであるすべての木
の中で必在するか否かを記述する欄が設けられている請
求項17又は19記載の方法。 - 【請求項28】上記表解釈ステップに先立って、表の中
の記述の足りない箇所の有無を判断し、そのような箇所
があれば、当該表と他の表を合成して1つの表を作成す
ることによって、足りない記述を補うステップを含む、
請求項16乃至19記載の方法。 - 【請求項29】メモリ上に木に対応するデータ構造を生
成するシステムであって、1以上の欄を持ち、実体ごと
にその属性が上記欄に記述されてなる表を解釈して、上
記実体ごとに、上記メモリ上に当該実体のための領域を
確保し、該領域に当該実体の属性のデータをセットする
とともに、領域間の連結関係を表わすポインタデータを
生成する手段を含むシステム。 - 【請求項30】上記実体は、文書画像の構成要素である
、請求項29記載のシステム。 - 【請求項31】メモリ上に木に対応するデータ構造を生
成する方法であって、1以上の欄を持ち、実体ごとにそ
の属性が上記欄に記述されてなる表を編集し、上記表を
解釈して、上記実体ごとに、上記メモリ上に当該実体の
ための領域を確保し、該領域に当該実体の属性データを
セットするとともに、領域間の連結関係を表わすポイン
タデータを生成するステップを含む方法。 - 【請求項32】上記実体は、文書画像の構成要素である
、請求項31記載の方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3055543A JPH087674B2 (ja) | 1991-02-28 | 1991-02-28 | 木生成システム及び方法 |
EP19920301578 EP0501753A3 (en) | 1991-02-28 | 1992-02-25 | System for and method of generating a data structure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3055543A JPH087674B2 (ja) | 1991-02-28 | 1991-02-28 | 木生成システム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04278634A true JPH04278634A (ja) | 1992-10-05 |
JPH087674B2 JPH087674B2 (ja) | 1996-01-29 |
Family
ID=13001630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3055543A Expired - Lifetime JPH087674B2 (ja) | 1991-02-28 | 1991-02-28 | 木生成システム及び方法 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0501753A3 (ja) |
JP (1) | JPH087674B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600826A (en) * | 1993-03-31 | 1997-02-04 | Fuji Xerox Co., Ltd. | Structured data processor for converting between sequential and tree structured data |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW367447B (en) * | 1994-12-21 | 1999-08-21 | Canon Kk | Block selection review and editing system |
US5991756A (en) * | 1997-11-03 | 1999-11-23 | Yahoo, Inc. | Information retrieval from hierarchical compound documents |
JP3277906B2 (ja) * | 1998-12-18 | 2002-04-22 | 日本電気株式会社 | 階層構造作成方法及び装置 |
US7120622B2 (en) * | 2002-06-10 | 2006-10-10 | Xerox Corporation | Authoring tools, including content-driven treetables, for fluid text |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6214265A (ja) * | 1985-07-12 | 1987-01-22 | Hitachi Ltd | 木構造図作成システム |
JPH01155436A (ja) * | 1987-12-11 | 1989-06-19 | Kobe Steel Ltd | 構造化プログラム作成装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6254328A (ja) * | 1985-09-02 | 1987-03-10 | Nec Corp | ツリ−構造作成編集装置 |
-
1991
- 1991-02-28 JP JP3055543A patent/JPH087674B2/ja not_active Expired - Lifetime
-
1992
- 1992-02-25 EP EP19920301578 patent/EP0501753A3/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6214265A (ja) * | 1985-07-12 | 1987-01-22 | Hitachi Ltd | 木構造図作成システム |
JPH01155436A (ja) * | 1987-12-11 | 1989-06-19 | Kobe Steel Ltd | 構造化プログラム作成装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600826A (en) * | 1993-03-31 | 1997-02-04 | Fuji Xerox Co., Ltd. | Structured data processor for converting between sequential and tree structured data |
Also Published As
Publication number | Publication date |
---|---|
JPH087674B2 (ja) | 1996-01-29 |
EP0501753A3 (en) | 1993-12-01 |
EP0501753A2 (en) | 1992-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6003033A (en) | System and method for describing and creating a user defined arbitrary data structure corresponding to a tree in a computer memory | |
JP4657432B2 (ja) | 階層構造の構造化文書を変換する装置 | |
US5181162A (en) | Document management and production system | |
Khoshafian et al. | Multimedia and imaging databases | |
JP4307501B2 (ja) | 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定 | |
US7350142B2 (en) | Method and system for creating a table version of a document | |
CA2669479C (en) | Generating end-user presentations from structured data | |
Furuta et al. | Interactively editing structured documents | |
US7149967B2 (en) | Method and system for creating a table version of a document | |
US9430455B2 (en) | Methods and systems for intelligent form-filling and electronic document generation | |
JP3940491B2 (ja) | 文書処理装置および文書処理方法 | |
US7143344B2 (en) | Transformation stylesheet editor | |
EP0753819A1 (en) | System and method for accessing cobol data with a cobol compatible structured query language | |
JPH0452856A (ja) | 文書処理装置 | |
JP2004234354A (ja) | 構造パターン候補を生成する方法、システムおよびプログラム | |
Brooks | A two-view document editor with user-definable document structure | |
JPH04278634A (ja) | 木生成システム及び方法 | |
JPH08106464A (ja) | 文書生成装置 | |
US20130031085A1 (en) | Docbase management system and implenting method thereof | |
JP3445910B2 (ja) | 文書要約合成装置 | |
JPH0727532B2 (ja) | 情報検索方法及びシステム | |
JP3843574B2 (ja) | 文書変換規則生成装置、文書変換規則生成方法及び文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
CN111797056B (zh) | 一种矢量化家谱书生成方法及*** | |
Škrbić et al. | Bibliographic records editor in XML native environment | |
JP2011070529A (ja) | 文書処理装置 |