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

構造データ処理装置

Info

Publication number
JP2964831B2
JP2964831B2 JP5096676A JP9667693A JP2964831B2 JP 2964831 B2 JP2964831 B2 JP 2964831B2 JP 5096676 A JP5096676 A JP 5096676A JP 9667693 A JP9667693 A JP 9667693A JP 2964831 B2 JP2964831 B2 JP 2964831B2
Authority
JP
Japan
Prior art keywords
data
depth
structural
component
input
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.)
Expired - Fee Related
Application number
JP5096676A
Other languages
English (en)
Other versions
JPH06290086A (ja
Inventor
俊明 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP5096676A priority Critical patent/JP2964831B2/ja
Priority to US08/219,894 priority patent/US5600826A/en
Publication of JPH06290086A publication Critical patent/JPH06290086A/ja
Application granted granted Critical
Publication of JP2964831B2 publication Critical patent/JP2964831B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、木構造をなす構造デー
タを処理する構造データ処理装置に関するものである。
【0002】
【従来の技術】木構造をなす構造データの表現方法の一
つとして、構成要素を深さ優先の順序に並べ、構成要素
の構造上の位置情報を数値列で表現することが行なわれ
ている。一般に広く知られている方法としては、同じ深
さ、すなわち、兄弟関係を数値で表現し、この数値を各
深さ毎に設けて数値列の形で表現する方式が知られてい
る。この数値列中の各数値が、各深さにおける順位を表
現することになる。この表現方式では、深さの大きな構
成要素の位置情報は、数値列中の数値の個数が多いこと
になる。具体的な例は、ISO8613ODA(Ope
n Document Architecture)で
示された「オブジェクト識別子」である。
【0003】図11は、従来の構造データの表現方式の
説明図である。図11(B)には、木構造のデータの一
例を示しており、木構造の構成要素を「○」で示してい
る。この木構造では、根レベルの構成要素の下層には、
3つの子供レベルとなる構成要素が存在し、子供レベル
の左端の構成要素の下層には、孫レベルの2つの構成要
素が、子供レベルの右端の構成要素の下層には、孫レベ
ルの3つの構成要素が存在している。このような、木構
造のデータを表現する方法として、例えば、図11
(A)に示すような、シーケンシャルデータで表現する
ことができる。この例では、シーケンシャルデータ内の
「[」と「]」で囲まれたデータが構成要素を表す。
「[」と「]」で囲まれたデータのうちの最初の「/」
で区切られた数値列は、構造上の位置情報であり、次の
「@」は構造データ内の構成要素に付帯する識別子など
の属性情報を表す。最後の文字列は構成要素の名前であ
り、ない場合もある。この構成要素を表すデータは、固
定長データであっても、可変長データであってもよい。
【0004】構造上の位置情報である数値列は、各数値
が深さごとの位置情報を表している。このとき、数値列
は前から順に根からの深さを表している。例えば、1番
目の数値は根の深さ、2番目の数値は根の子どもの深さ
を表している。つまり、数値列の数値の個数は深さを表
している。ここで順序は0番から始まるものとする。ま
た、この数値列の各数値は兄弟の構成要素の順序を表し
ている。このようにして、位置情報から構造上の位置を
決定する。例えば、図11(A)に示したシーケンシャ
ルデータのうち、「[0/2/1@孫1]」の位置情報
を示す数値列「0/2/1」は、根レベルの0番目の構
成要素「根0」の下層、すなわち、子供レベルの2番目
の構成要素「子供2」のさらに下層、すなわち、孫レベ
ルの1番目の位置に構成要素「孫1」が位置することを
表している。
【0005】このように、図11(B)に示した木構造
のデータを、図11(A)に示すような、見かけ上、シ
ーケンシャルのデータとして扱うことにより、木構造の
構造データを直接扱えない外部装置を利用することが可
能となる。例えば、特開平4−84342号公報に記載
されているように、木構造のデータを扱えない、通常の
データ管理システムを利用して、木構造のデータを格納
することができるようになる。
【0006】図10は、従来の構造データ処理装置のブ
ロック図である。図中、1は構造データ処理装置、2は
データ入力手段、3は構造データ加工手段、4は編集手
段、5は検索手段、6は表示手段、7は入力手段、8は
データ出力手段、10は外部装置である。構造データ処
理装置1は、データ入力手段2、構造データ加工手段
3、表示手段6、入力手段7、データ出力手段8を有す
る。図11(A)に示したようなシーケンシャルデータ
を、データ格納装置やデータ転送装置などの外部装置1
0から構造データとして入力し、図11(B)に示した
ような木構造の構造データとして加工処理し、図11
(A)に示したようなシーケンシャルデータとして出力
する。こうして、見かけ上、シーケンシャルデータによ
り入出力を行なうことにより、構造データを直接扱えな
い外部装置も利用可能となる。
【0007】データ入力手段2は、図11(A)に示す
ようなシーケンシャルデータを外部装置10から入力
し、図11(B)に示すような木構造の構造データに変
換して構造データ加工手段3に出力する。同様に、デー
タ出力手段8は、構造データ加工手段3から図11
(B)に示すような構造データを入力し、図11(A)
に示すようなシーケンシャルデータに変換して外部装置
10に出力する。
【0008】構造データ加工手段3は、編集手段4や、
検索手段5、その他構造データの処理手段等を有し、表
示手段6への情報の表示および入力手段7からの入力デ
ータの処理なども行なう。
【0009】構造データ処理装置1の動作は大きく3つ
に分けることができる。それは、データの入力、加工、
出力である。次にこの3つの動作を順に説明する。
【0010】データ入力動作は、例えばデータ転送装置
やデータ格納装置など、構造データをそのままでは扱え
ない外部装置10から、深さ優先の順に並べられている
構造データの構成要素をシーケンシャルデータとしてデ
ータ入力手段2に入力する。可変長の数値列で表された
データ内の位置情報から、構造上の位置を一意に決定
し、その後入力されたデータ、例えば、図11(A)の
「@」以降のデータから構造データの構成要素を生成
し、その構成要素を先の構造データ内の位置に組み込
む。
【0011】データの加工は、入出力以外の構造データ
各種団3に組み込まれているあらゆる手段を利用して、
編集、印刷などを行なう。目的に合わせて適宜、手段を
追加して、特殊な加工処理も実現可能である。例えば、
編集は、表示手段6に表示された対象データを入力手段
7で選択して、移動,削除,コピーなどを、編集手段4
によって行なう。編集には、構造データに対する構造操
作と構造データの内容に対する内容操作とがある。構造
の編集には構造編集手段を、構成要素の内容の編集には
内容編集手段を適宜用意することになる。例えば、構造
内の構成要素を検索するためには、検索手段5が必要と
なる。
【0012】データの出力動作は、データ転送装置やデ
ータ格納装置など構造データを、そのままでは扱えない
外部装置10へシーケンシャルデータとして出力する。
つまり、データ出力手段8によって、まずデータ内の位
置情報を可変長の数値列に変換して構成要素に付与す
る。そして、構造データの構成要素を深さ優先の順に出
力可能なシーケンシャルデータに変換して外部装置10
へ出力する。
【0013】深さ優先の順に構成要素を出力する手順
は、一般的に知られている。まず、木構造の根となる構
成要素の位置情報を、0が1つからなる数値列とする。
根の位置情報および属性情報を出力したら、子供が存在
するときは、子供の位置情報を作成し、出力する。さら
に子供があるときは再帰的に繰り返す。子供の位置情報
は、先の構成要素より1つ深さが深いので、まず位置情
報に値0の数値を追加する。子供が複数のときは、追加
した最後の数値を増加し、0から順に数値を割り振る。
例えば、構成要素「0/2」の子供は「0/2/0」
「0/2/1」という具合である。
【0014】上述のような位置情報が付帯する構成要素
の構造上の深さに依存した可変長データを用いた場合、
数値の個数のデータもしくは数値列の区切りを示すため
のデータが必要となる。さらに、構造上の深さに依存し
てデータ量が大きくなるという欠点がある。この不利益
は、転送、比較、格納など、あらゆるデータ処理につき
まとう問題である。一般に装置内部での処理に比べて、
外部とのデータ転送は処理時間がかかる。さらに、デー
タ転送の処理時間は、データ量にほぼ比例する。そのた
め、転送するデータ量が大きくなると、転送時間がかか
ることになる。また、データ量が大きいと、占有するメ
モリを多く必要とする。すると、一度に処理できる情報
量が少なくなる。さらに、情報量に比べて、データ量が
大きくなるので、データ格納装置に多くの情報を格納で
きない。データ保存のために高価で大容量のデータ格納
装置を用意しなければならない等、種々の問題がある。
【0015】ここで、簡単な例でデータ量を考察してみ
る。例えば、根を深さ0として、深さ10の二分木の構
造を表現することを考える。便宜上、数値1つを1バイ
ト、終端も1バイトとする。根の位置情報に必要なデー
タ量は終端と合わせてたかだか2バイトである。末端、
すなわち、深さ10の構成要素の位置情報は、数値が1
1個となり、終端と合わせて12バイト必要となる。ま
た、末端の構造要素の個数は、210=1024=1キロ
個であるから、末端の構成要素全部に必要な容量は12
バイト×1キロ個=12キロバイトである。同様にし
て、他の深さの構成要素に必要な位置情報を総計する
と、深さ10の二分木では2キロ個の構成要素の構造を
表現するために、22キロバイト必要となる。
【0016】同様にして、深さ20の二分木では、2メ
ガ個の構成要素の構造を表現するために、42メガバイ
ト必要となる。すべての構成要素の位置情報は、先頭の
数値が0であるので、省略することが可能である。それ
でも、深さ10の二分木で20キロバイト、深さ20の
二分木で40メガバイトが必要となる。
【0017】実際には、数値1つを1バイトで表現して
いたのでは、255個の兄弟しか表現できない。これ
は、階層データベースのように同じ形式の大容量のデー
タを扱う場合には、大きな制限となってしまう。数値1
つを2バイトにすると、深さ10の二分木では40キロ
バイト、深さ20の二分木で80メガバイトも必要とな
る。
【0018】近年のデータ圧縮技術では、データ圧縮率
は2分の1から最大で10分の1程度である。このデー
タ圧縮技術を用いたとしても、深さ10の二分木では4
キロバイト、深さ20の二分木で8メガバイトも必要と
なる。なお、このようなデータ圧縮/展開装置を組み込
む場合には、システム全体としてコストがかかるという
問題もある。
【0019】
【発明が解決しようとする課題】本発明は、上述した状
況を鑑みてなされたもので、外部装置との入出力を行な
う際に用いるシーケンシャルデータのデータ量を減少さ
せることのできる構造データ処理装置を提供することを
目的とするものである。
【0020】
【課題を解決するための手段】本発明は、請求項1に記
載の発明においては、木構造をなす構造データを処理す
る構造データ処理装置において、構造データのノードと
なる構成要素が構造上の深さ情報を数値データとして有
し、深さ優先の順序に並べられたシーケンシャルデータ
が入力され木構造のデータに変換するデータ入力手段
と、データ入力手段により変換の際に入力されたシーケ
ンシャルデータの構成要素の構造上の深さ情報が示す数
値に基づいて該構成要素の親となる構成要素を探索し構
造位置を決定する構造位置決定手段を有することを特徴
とするものである。
【0021】また、請求項2に記載の発明においては、
木構造をなす構造データを処理する構造データ処理装置
において、木構造のデータに基づき深さ優先の順序で構
成要素をたどって該構成要素ごとに構造上の位置情報と
して数値の深さ情報を持たせてシーケンシャルデータを
生成し該シーケンシャルデータを出力するデータ出力手
段を有することを特徴とするものである。
【0022】
【作用】本発明によれば、請求項1において、入力され
るシーケンシャルデータは、深さ優先の順で並べられて
おり、位置情報として、木構造の根、すなわち、深さ優
先の順で先頭の構成要素からの深さ情報を数値データと
して有している。データ入力手段において木構造のデー
タに変換する際に、構造位置決定手段により、入力され
たシーケンシャルデータの構造上の深さ情報が示す数値
に基づいて、その構成要素の親となる構成要素を探索
し、木構造の構造位置が決定される。このとき、同じ深
さの構成要素の位置は、深さ毎の構成要素の並び順から
構造位置を決定することができる。
【0023】また、請求項2において、データ出力手段
により、木構造構造データから構造の深さ情報を得て、
これに基づき深さ優先の順序で構成要素をたどって、構
成要素ごとに、構造上の位置情報として数値の深さ情報
を有するシーケンシャルデータを作成し、出力される。
【0024】これにより、外部装置との入出力に用いら
れるシーケンシャルデータは、数値の深さ情報を有して
いるだけでよいので、転送および格納時のデータ量を減
少させることができる。
【0025】
【実施例】図1は、本発明の構造データ処理装置の一実
施例を示すブロック図である。図中、図10と同様の部
分には同じ符号を付して説明を省略する。9は構造位置
決定手段である。データ入力手段2は、深さ優先の順序
に並べられ、構造上の深さ情報を有するシーケンシャル
データが入力される。入力されたシーケンシャルデータ
から得られた深さ情報と、生成途中の構造の深さの情報
を基に、構造位置決定手段9を用いて構造上の位置を決
め、木構造の構造データを生成する。また、データ出力
手段8は、木構造の構造データから、構造上の深さ情報
を有し、深さ優先の順序に並べられたシーケンシャルデ
ータを生成し、出力する。
【0026】図2は、本発明で用いる構造データの表現
方式の一例の説明図である。図2(A)には、シーケン
シャルデータを示しており、また、図2(B)には木構
造のデータの一例を示している。木構造は、図11と同
様である。図2では、深さ情報を数値で表している。こ
こでは、便宜上、深さが深くなるごとに増す数値として
扱う。しかし、その必要はなく、深さを比較できるデー
タであればよい。また、例えば深さに対する値の増加率
や、文字列、配列といったデータ型などの値の表現形等
は、どのようであってもよい。図2(A)に示したシー
ケンシャルデータでは、「[」と「]」で囲まれたデー
タが構成要素を表し、「[」と「]」で囲まれたデータ
のうちの最初の数値が深さ情報、次の「@」は構成要素
の属性情報を表している。最後の文字列は構成要素の名
前であり、ない場合もある。
【0027】図2に示した例では、深さ情報として、根
レベルに数値0を、子供レベルに数値1を、孫レベルに
数値2を用いている。根となる要素は、深さ優先の順序
に並べたとき、最初に並べられ、深さ情報「0」、属性
情報「@」、名前「根」により構成される。また、深さ
優先の順序で並べるとき、同じ深さの要素は一定の順序
で出現するように並べられる。例えば、最も左に位置す
る要素から出現するとすれば、根の要素の次には、子供
レベルの最も左に位置する要素が並べられる。その次に
は、もしあれば、その孫レベル以降の要素が順に並べら
れる。図2に示した例では、子供レベルの最左端の要素
の下の2つの孫レベルの要素が並べられる。孫レベル以
降の要素がなくなると、次の子供レベルの要素、すなわ
ち、図2(B)の中央の子供レベルの要素が並べられ
る。さらに、図2(B)に示した要素のうち、子供レベ
ルの名前「子供2」が付されている要素が並べられ、そ
の孫レベルの要素が続く。
【0028】図1のデータ入力手段2には、図2(A)
に示したような構造を有するシーケンシャルデータが入
力され、深さ優先順に並んでいる構成要素を図2(B)
に示すような木構造の構造データに変換する。また、デ
ータ出力手段8は、図2(B)に示したような木構造の
構造データを、深さ優先順にたどり、図2(A)に示し
たようなシーケンシャルデータを出力する。ここで、出
力する位置情報は深さ情報だけである。
【0029】このようなシーケンシャルデータを用いる
ことにより、実際にどのくらいデータ量が小さくなるか
を、前述の二分木の例で考察してみる。本発明で用いる
シーケンシャルデータでは、構成要素ごとに構造上の位
置情報として深さ情報を持たせるだけである。前述の二
分木の例では、深さ情報に数値データとして4バイトを
要したとしても、深さ10の二分木で8キロバイト、深
さ20の二分木で16メガバイトで済む。実際には、深
さ情報は1バイトで十分であるので、深さ10の二分木
では2キロバイト、深さ20の二分木で2メガバイトで
済む。従来のシーケンシャルデータと比べて、深さ10
の二分木においてデータ量は20分の1、深さ20では
40分の1のデータ量となる。従来の構造データ処理装
置において、近年のデータ圧縮技術を持ってしても、深
さ10の二分木では4キロバイト、深さ20の二分木で
8メガバイトも必要であったことを考えると、本発明の
方式はデータ圧縮装置を組み込んだ従来装置よりも、デ
ータ容量の点、処理コストの点で優れていることが分か
る。もちろん、本発明の構造データ処理装置または外部
装置にデータ圧縮/展開装置を組み込むことは可能であ
る。その場合には、さらにデータ容量の点で有利にな
り、データ転送を高速に行なえることは明白である。
【0030】図1に戻り、構造データ加工手段3は、構
造データの加工処理を行なう。この構造データ加工手段
3には、編集手段4や検索手段5等、加工処理に必要な
手段がある。例えば、構造データが構造化文書であれ
ば、自動割り付けを実現するために、割り付け手段を有
する構成とすることもできる。このように、構造データ
の加工に必要な手段が複数あってもよい。構造データの
加工に必要な手段の数や構成に、特に制限はない。同様
にして、従来のデータを利用するために、従来のデータ
入力手段やデータ出力手段を有していてもよい。
【0031】一般に、ODAに代表される構造化文書中
には、深さ優先順(論理順序)に構成要素(論理オブジ
ェクト)が並んでいる。従って、構造データ加工手段3
に構造化文書の編集/加工/印刷/表示などに必要な手
段を追加して、処理対象である構造データをODAに代
表される構造化文書の文書データとすると、本発明の構
造データ処理装置1を構造化文書処理装置として用いる
ことができる。また、対象とするデータを幾何図形の構
造データとし、3次元の座標を持つ幾何図形データを処
理する幾何図形処理手段や3次元データ表示手段を構造
データ加工手段3に加えると、本発明の構造データ処理
装置1をCADシステムとして用いることが可能とな
る。
【0032】構造位置決定手段9は、構成要素に附属の
深さ情報だけでなく、構成要素の順序をも利用して構造
上の位置を決定する。この順序は、構成要素が物理的に
並んでいる必要はなく、かつ、入力順序が深さ優先順で
なくともよい。しかし、この場合には、何らかの手段
で、構成要素の深さ優先で並べたときの順序と、深さが
比較できる必要がある。例えば、構成要素に深さ優先で
並べたときの順序を表すデータを持たせるように構成し
てもよいし、また、別に深さ優先順のインデックス情報
を作成してもよい。なお、深さ情報を持つ構成要素が深
さ優先順に並んでいない場合は、すべてのデータを入力
してから、深さ優先順に並べ変え、並べ変えられたデー
タをデータ入力手段の入力データとする。以下の説明で
は、データの入力順序を深さ優先順序とし、深さ情報を
構成要素の付帯情報として有するものとする。
【0033】本発明の構造データ処理装置の一実施例の
動作を説明する。構造データ加工処理は、入力手段7に
よって利用者の命令を受け取り、編集手段4や検索手段
5および図示しない印刷手段等によって、利用者の所望
する処理を行なう。構造データ加工処理を始めとするデ
ータ入出力処理以外の処理は、構造化文書処理やCAD
等に代表される一般的な構造データの処理であるので、
ここでは割愛する。
【0034】図3は、データ入力処理の一例を説明する
ためのフローチャート、図4は、親を捜す処理の部分を
説明するためのフローチャートである。利用者が入力手
段7によってデータ入力処理を指定したり、入力データ
が外部から送られてきた場合などに、データ入力処理が
開始される。深さ優先順にシーケンシャルデータを入力
しながら、構造データを生成する。
【0035】図3のS21において、初期化処理を行な
う。このステップでは、まず、データ入力処理に必要な
前処理を行ない、データ入力の準備をした後、木構造の
根である構成要素を1つ入力し、変数PARENTに代
入する。変数PARENTは、次に入力された構成要素
の構造上の親の候補であり、かつ、構造上の位置がいち
ばん深いものを表す。実際には最後に構造に組み込まれ
た構成要素である。
【0036】S22において、構成要素の存在を確認す
る。シーケンシャルデータの構成要素がなくなった場合
には後処理を行ない、データ入力処理を終了する。まだ
存在する場合は、S23以降の構成要素の入力、構造の
組立て処理を行なう。
【0037】S23において、構成要素の入力処理を行
なう。入力処理は、深さ優先順序で構成要素が並んでい
るデータ中から、次の構成要素の開始から終端までのデ
ータを入力して、構成要素を再現する。例えば、図2に
示した例では、図2(A)のシーケンシャルデータの
「[」から「]」までを1つの構成要素として入力し、
深さ情報、属性情報「@」を利用して、図2(B)に示
した「○」に相当する構成要素を生成する。
【0038】S24において、構造位置決定手段9によ
り、親を捜す処理を行なう。変数PARENTに代入さ
れている構成要素は、S23で入力した構成要素の親の
候補である。親であるかどうかは、入力した構成要素の
深さ情報を利用して判別する。判別方法は、変数PAR
ENTの構成要素の深さが、入力した構成要素の深さよ
り浅いかどうか調べればよい。図4のS26において、
この判別を行なう。変数PARENTの構成要素の深さ
のほうが浅ければ、変数PARENTの構成要素が親と
なる。変数PARENTの構成要素の深さが、入力した
構成要素に比べて同じもしくは深い場合は、S27にお
いて、現在変数PARENTに代入されている構成要素
の親を、新たな親の候補として、あらためて変数PAR
ENTに代入し、S28において、新たに変数PARE
NTに代入された構成要素の存在を確認した後、S26
からの動作を繰り返す。
【0039】S25において、構成要素の挿入を行な
う。すなわち、S24において見つかった親に対して、
入力した構成要素をいちばん最後の子供として、木構造
に接続する。変数PARENTに入力した構成要素を代
入して、次の構成要素の親の候補とする。以上の処理に
より、1つの構成要素についての入力処理が終了する。
S22へ戻り、次の構成要素に関する処理を、入力すべ
き構成要素がなくなるまで繰り返す。
【0040】図5は、構造上の位置の決定方法の説明図
である。図中、「○」に「*」印は既に確定している構
成要素を、「◎」印は既に確定している構成要素のうち
の親の候補となり得る構成要素を、「○」印は入力した
構成要素の候補となり得る位置を示している。この図
は、図3のS24、すなわち、図4に示した親の位置の
決定方法を図示している。深さ優先順で入力する場合、
必ず親となる構成要素が先に入力され、構造上の位置が
確定している。図中の最後に入力された構成要素が変数
PARENTに代入されている。すでに入力された構成
要素は根から構造化されている。
【0041】いま、変数PARENTの構成要素の深さ
をNとすると、入力される構成要素の深さは深さ1から
N+1までが候補となり得る。図中の「◎」が親の候補
となり、「○」が入力された構成要素の位置の候補とな
る。このとき、深さ情報を利用して、親の候補である変
数PARENTの構成要素から、深い順に親であるか否
かを調べる。そして、変数PARENTの構成要素の深
さが入力された構成要素の深さよりも浅くなったときの
変数PARENTを親とすればよい。親が見つかれば、
入力された構成要素をその親の子供として、木構造に挿
入すればよい。こうして、構成要素の位置を確定でき
る。入力した構成要素の深さが、1からN+1までにな
いときはエラーとなる。
【0042】図6は、データ入力処理の別の例を説明す
るためのフローチャート、図7は、別の例における親を
捜す処理の部分を説明するためのフローチャートであ
る。この例では、各深さごとに最後に入力した構成要素
に対して、深さをキーとした構成要素のインデックスを
用意する。入力された構成要素の深さ情報に基づきイン
デックスを参照することにより、直接、位置を決定する
ことができる。この例の場合は、順に親を変えながら比
較する必要がないので、処理速度を向上することができ
る。図6および図7では、配列INDEX[]を用意
し、深さごとの最後の構成要素を保存する。ただし、最
大の深さ分のインデックス領域を用意する必要がある。
【0043】図6のS31において、初期化処理を行な
う。このステップでは、図3のS21で行なった初期化
処理に加え、配列INDEX[]の深さ0に根を代入す
る。S32において、構成要素の存在を確認し、S33
において、構成要素を入力する。
【0044】S34において、構造位置決定手段によ
り、親を探す処理を行なう。図7のS36において、新
たに入力した構成要素の深さが、変数PARENTの構
成要素、すなわち、最後に入力した構成要素の深さ+1
を越えないことを検査する。通常、越えることはありえ
ない。入力した構成要素の親は、配列INDEX[入力
した構成要素の深さ−1]である。すなわち、入力した
構成要素の深さ情報から、親の構成要素が即座にわか
る。S37において、配列INDEX[入力した構成要
素の深さ−1]を参照し、変数PARENTに代入す
る。S38において、親が存在することを確認し、親を
捜す処理を終了する。
【0045】S35において、入力した構成要素を木構
造に挿入するとともに、変数PARENTと配列IND
EX[入力した構成要素の深さ]に、只今入力した構成
要素を代入する。以上の処理により、1つの構成要素に
ついての処理が終了する。S32へ戻り、構成要素がな
くなるまで繰り返す。
【0046】図8は、データ出力処理の一例を説明する
ためのフローチャート、図9は、構成要素の出力処理の
部分を説明するためのフローチャートである。利用者が
入力手段7によってデータ出力処理を指定したり、構造
データ加工処理が終了した場合などにより、データ出力
処理が開始される。
【0047】S41において、初期化処理を行なう。こ
のステップでは、変数DEPTHを0とするとともに、
根を取り出す。そして、S42において、構成要素の出
力処理を行なう。
【0048】図9のS43において、図2(B)に示し
たような木構造の構成要素のデータを、図2(A)に示
したようなシーケンシャルデータの構成要素のデータに
変換する。そして、S44において、構成要素のデータ
に変数DEPTHの内容、すなわち、構成上の深さ情報
を付加して出力する。
【0049】S45からS48の処理は、S44で出力
した構成要素の子供の構成要素に関する処理を行なう。
S45において、子供の存在を確認する。もし子供が存
在しなければ、このレベルでの子供の出力処理を終了す
る。子供が存在する場合には、S46において、変数D
EPTHに1を加える。そして、S47において、構成
要素の出力処理、すなわち、図9に示した処理を再帰的
に呼び出し、1つの子供の構成要素に対する出力処理を
行なう。このとき、孫やそれ以下のレベルの構成要素に
ついても、再帰的に構成要素の出力処理が呼び出されて
出力される。孫の構成要素がなくなった時点で、再帰的
に呼び出した構成要素の出力処理から戻るので、S48
において、変数DEPTHから1を減じ、親のレベルへ
戻り、S45乃至S48の処理を繰り返すことにより、
すべての子供の構成要素についての出力処理を行なう。
【0050】最終的に、根の子供の構成要素の出力処理
が終了すると、S42の処理が終了する。最後に後処理
を行ない、データ出力処理を終わる。
【0051】本発明の構造データ処理装置の一実施例の
具体例を説明する。一般に、本発明の構造データ処理装
置は、計算機(コンピュータシステム)によって実現す
ることができる。
【0052】データ入力手段2は、計算機の入力装置
と、装置を制御しデータを入力し、構造データを生成す
るソフトウェアおよびそのソフトウェアを実行するCP
Uで構成することができる。計算機外部に接続されたデ
ータ入力装置から入力されるシーケンシャルデータを、
構造データの構成要素に変換する。作成された構成要素
を組み上げて、構造データとして構造データ加工手段3
へ出力する。
【0053】データ出力手段8は、計算機のデータ出力
装置と、装置を制御し構造データの構成要素を出力する
ソフトウェアおよびそのソフトウェアを実行するCPU
で構成することができる。構成要素を計算機外部に出力
可能なデータに変換し、データ出力装置を制御してシー
ケンシャルデータを出力する。
【0054】データ入力手段2にデータを入力したり、
データ出力手段8が出力したデータを受け取る外部装置
10としては、例えば、データ通信機器を外部装置と
し、通信機器との接続装置を入力/出力と情報を交換す
ることができる。同様にして、磁気ディスク装置などの
データ格納装置を外部装置とすると、データを格納、保
存しておくことができる。外部装置は、1つに限らず、
一度に複数の装置を接続することが可能である。この場
合、各装置に共通のデータ入力手段2及びデータ出力手
段8を有する構成としてもよいし、複数のデータ入力手
段2と複数のデータ出力手段8を備える構成としてもよ
い。また、入出力が同じ外部装置に接続される必要はな
く、データ入力手段2にデータを入力する外部装置と、
データ出力手段8からデータを受け取る外部装置は別で
あってもよい。例えば、入力専用のデータ通信装置と、
出力専用のデータ通信装置を接続し、定形のデータ加工
処理を構造データ加工手段3で行ない、自動的に定形処
理を行なう構造データ自動定形処理装置などを構成する
ことも可能である。
【0055】構造位置決定手段9は、構成要素を操作す
るソフトウェア及びそのソフトウェアを実行するCPU
から構成することができる。もしくはハードウェアで構
成することも可能である。構成要素から深さ情報を取得
し、親の候補の構成要素の深さと比較し、構成要素の構
造上の位置を特定する。
【0056】入力手段7は、キーボードや、マウス、タ
ッチパネルなどポインティングデバイス等の入力装置で
構成することができ、利用者の指示をシステムに与え
る。表示手段6は、CRT、液晶などのディスプレイ装
置で構成することができる。また、スピーカなどの音声
発生装置を含んでいてもよい。
【0057】例えば、本発明の構造データ処理装置を利
用して、構造化文書編集装置を構成することができる。
このとき、処理対象である構造データは、構造化文書で
ある。外部装置としては、磁気ディスク装置などのデー
タ格納装置や通信装置を用いることができる。構造デー
タ加工手段3としては、文書印刷手段や、文書内容編集
手段を備え、それらを制御するソフトウェアおよび自動
レイアウト処理プログラムなどで構成すればよい。
【0058】表示手段6に表示された編集用のメニュー
やコマンドを、入力手段7から入力する。その中の保存
コマンドを実行すると、構造化文書の構造データをデー
タ出力手段8に渡す。データ出力手段8では、前述の動
作に基づき、構造化文書の構成要素を出力可能なデータ
に展開し、深さ情報を付与して、シーケンシャルデータ
として、外部装置10である磁気ディスク装置に書き込
む。反対に、読み出しコマンドを実行すると、データ入
力手段2を通して、磁気ディスク装置に保存されたシー
ケンシャルな構造化文書のデータを構成要素ごとに取り
出し、深さ情報を基に構造を組み立てる。
【0059】さらには、構造化文書の部分構造や構成要
素を外部通信装置を介して、他の構造化文書編集装置と
通信しながら編集することにより、同時編集などを支援
することができる。
【0060】前述のように、構造データとして図形デー
タを扱い、CADシステムなどに応用することも可能で
ある。このとき、外部装置として、図面を印刷するため
に、プロッタなどの印刷装置などを加えることができ
る。
【0061】
【発明の効果】以上の説明から明らかなように、本発明
によれば、従来の構造データ処理装置に比べて、データ
量が十分小さい構造データにより入出力を行なうことが
できるので、入出力処理時間を大幅に減らし、計算機シ
ステム全体の処理時間を少なくすることができる。ま
た、データ量が少ないので、占有する記憶領域が少なく
て済み、例えば、小規模なシステムでも実現可能になる
とともに、高価で容量の大きなデータ格納装置でなくて
も、多くの情報を保存できる。従来と同等のシステム構
成であれば、余ったメモリをインデックス、キャッシュ
などに利用できるため、高速なデータ参照を期待するこ
とができる。また、クラスタリングなどデータの局所性
を利用する場合も有利である。データを参照する場合に
も、少ない領域を検索するだけで済むので、高速に検索
を行なうことができる、という効果がある。
【図面の簡単な説明】
【図1】 本発明の構造データ処理装置の一実施例を示
すブロック図である。
【図2】 本発明で用いる構造データの表現方式の一例
の説明図である。
【図3】 データ入力処理の一例を説明するためのフロ
ーチャートである。
【図4】 親を捜す処理の部分を説明するためのフロー
チャートである。
【図5】 構造上の位置の決定方法の説明図である。
【図6】 データ入力処理の別の例を説明するためのフ
ローチャートである。
【図7】 別の例における親を捜す処理の部分を説明す
るためのフローチャートである。
【図8】 データ出力処理の一例を説明するためのフロ
ーチャートである。
【図9】 構成要素の出力処理の部分を説明するための
フローチャートである。
【図10】 従来の構造データ処理装置のブロック図で
ある。
【図11】 従来の構造データの表現方式の説明図であ
る。
【符号の説明】
1 構造データ処理装置、2 データ入力手段、3 構
造データ加工手段、4編集手段、5 検索手段、6 表
示手段、7 入力手段、8 データ出力手段、9 構造
位置決定手段、10 外部装置。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 木構造をなす構造データを処理する構造
    データ処理装置において、構造データのノードとなる構
    成要素が構造上の深さ情報を数値データとして有し、深
    さ優先の順序に並べられたシーケンシャルデータが入力
    され木構造のデータに変換するデータ入力手段と、デー
    タ入力手段により変換の際に入力されたシーケンシャル
    データの構成要素の構造上の深さ情報が示す数値に基づ
    いて該構成要素の親となる構成要素を探索し構造位置を
    決定する構造位置決定手段を有することを特徴とする構
    造データ処理装置。
  2. 【請求項2】 木構造をなす構造データを処理する構造
    データ処理装置において、木構造のデータに基づき深さ
    優先の順序で構成要素をたどって該構成要素ごとに構造
    上の位置情報として数値の深さ情報を持たせてシーケン
    シャルデータを生成し該シーケンシャルデータを出力す
    るデータ出力手段を有することを特徴とする構造データ
    処理装置。
JP5096676A 1993-03-31 1993-03-31 構造データ処理装置 Expired - Fee Related JP2964831B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5096676A JP2964831B2 (ja) 1993-03-31 1993-03-31 構造データ処理装置
US08/219,894 US5600826A (en) 1993-03-31 1994-03-30 Structured data processor for converting between sequential and tree structured data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5096676A JP2964831B2 (ja) 1993-03-31 1993-03-31 構造データ処理装置

Publications (2)

Publication Number Publication Date
JPH06290086A JPH06290086A (ja) 1994-10-18
JP2964831B2 true JP2964831B2 (ja) 1999-10-18

Family

ID=14171406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5096676A Expired - Fee Related JP2964831B2 (ja) 1993-03-31 1993-03-31 構造データ処理装置

Country Status (2)

Country Link
US (1) US5600826A (ja)
JP (1) JP2964831B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778371A (en) * 1994-09-13 1998-07-07 Kabushiki Kaisha Toshiba Code string processing system and method using intervals
JPH08255155A (ja) * 1995-03-16 1996-10-01 Fuji Xerox Co Ltd 全文登録語検索装置および方法
JP3549608B2 (ja) * 1995-04-04 2004-08-04 富士通株式会社 識別子による階層構造データの構造判定方法および装置
US7284187B1 (en) * 1997-05-30 2007-10-16 Aol Llc, A Delaware Limited Liability Company Encapsulated document and format system
US6012057A (en) * 1997-07-30 2000-01-04 Quarterdeck Corporation High speed data searching for information in a computer system
US6029170A (en) * 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
DE19817617C1 (de) * 1998-04-21 1999-09-09 Deutsche Telekom Mobil Verfahren zur Konvertierung baumstrukturierter Daten
US6484190B1 (en) * 1998-07-01 2002-11-19 International Business Machines Corporation Subset search tree integrated graphical interface
US6557040B1 (en) * 1999-07-26 2003-04-29 Microsoft Corporation Providing for the omission of root information from depth-related requests according to standard request/response protocols
US6941317B1 (en) 1999-09-14 2005-09-06 Eragen Biosciences, Inc. Graphical user interface for display and analysis of biological sequence data
AU2002228834A1 (en) * 2000-12-01 2002-06-11 Sri International Data relationship model
US7593923B1 (en) * 2004-06-29 2009-09-22 Unisys Corporation Functional operations for accessing and/or building interlocking trees datastores to enable their use with applications software
US20060190343A1 (en) * 2005-02-24 2006-08-24 Word Of Mouth Marketing, Inc. Method of marketing memberships in a consumer group
US7600030B2 (en) * 2005-08-31 2009-10-06 Microsoft Corporation Compounding of HTTP authoring protocol
US8010850B2 (en) 2005-08-31 2011-08-30 Microsoft Corporation Client extended error handling
US9933978B2 (en) * 2010-12-16 2018-04-03 International Business Machines Corporation Method and system for processing data
WO2014038057A1 (ja) * 2012-09-07 2014-03-13 株式会社日立製作所 計算機システム、データ管理方法及びプログラムを格納する記録媒体
JP6162553B2 (ja) * 2013-09-11 2017-07-12 株式会社 ディー・エヌ・エー 画像処理装置及び画像処理プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230048A (en) * 1986-09-03 1993-07-20 Wang Laboratories, Inc. Data processing system with tree and list data structure
US5321606A (en) * 1987-05-19 1994-06-14 Hitachi, Ltd. Data transforming method using externally provided transformation rules
JPH0650489B2 (ja) * 1988-02-05 1994-06-29 日本電気株式会社 Asn.1情報データ化方式
JPH02135549A (ja) * 1988-11-16 1990-05-24 Hitachi Ltd フアイル一覧表の表示方法
JPH02281372A (ja) * 1989-04-24 1990-11-19 Sharp Corp 機械翻訳装置における挿入副詞句処理方法
JPH0484342A (ja) * 1990-07-27 1992-03-17 Nec Corp 木構造データのファイル格納方式
US5295261A (en) * 1990-07-27 1994-03-15 Pacific Bell Corporation Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure
US5303367A (en) * 1990-12-04 1994-04-12 Applied Technical Systems, Inc. Computer driven systems and methods for managing data which use two generic data elements and a single ordered file
JPH087674B2 (ja) * 1991-02-28 1996-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 木生成システム及び方法
US5506985A (en) * 1991-10-17 1996-04-09 Ricoh Company, Ltd. Method and apparatus for format conversion of a hierarchically structured page description language document
US5530957A (en) * 1992-08-07 1996-06-25 At&T Corp. Storing trees in navigable form

Also Published As

Publication number Publication date
US5600826A (en) 1997-02-04
JPH06290086A (ja) 1994-10-18

Similar Documents

Publication Publication Date Title
JP2964831B2 (ja) 構造データ処理装置
JP4657432B2 (ja) 階層構造の構造化文書を変換する装置
US5150308A (en) Parameter and rule creation and modification mechanism for use by a procedure for synthesis of logic circuit designs
JP2003067185A (ja) アプリケーション編集装置、データ処理方法及びプログラム
WO2007020850A1 (ja) 情報処理方法、情報処理装置および情報処理プログラム
JP2788850B2 (ja) 最適メニュー問い合わせ方式及び階層的メニュー問い合わせによる構造データの編集方式
JP2000076119A (ja) メモリ内に配置されるノ―ド―リンクデ―タ部分の制御方法
CA2256281A1 (en) Virtual navigation
CA2275391C (en) File processing method, data processing device, and storage medium
JP2008134688A (ja) 記号列検索方法、プログラムおよび装置ならびにそのトライの生成方法、プログラムおよび装置
JP3788956B2 (ja) 構造化文書表示方法、構造化文書表示装置及びプログラム
JP5428316B2 (ja) 識別子短縮表示プログラム,識別子短縮表示装置および識別子短縮表示方法
JP3348833B2 (ja) 動画像合成装置
JP3529658B2 (ja) トライ構造の文字列検索方法、装置、および文字列検索プログラムを記録した記録媒体
JP4319827B2 (ja) 文書検索プログラム
JP3511724B2 (ja) 文書検索方法
JP3843574B2 (ja) 文書変換規則生成装置、文書変換規則生成方法及び文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体
Wiseman et al. Rainbow—a multi‐purpose CAD system
JPH04278634A (ja) 木生成システム及び方法
US20040199376A1 (en) Method and apparatus for compiling two-level morphology rules
JP2002056041A (ja) ハードウェア記述言語階層情報反映方法
JP2959606B2 (ja) 論理接続データ格納方法
JP4118212B2 (ja) 通信ネットワークを介したボードゲームシステム
Kyratzoglou Computer aided design for Petri Nets
JP2982725B2 (ja) プログラム自動生成装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070813

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees