JPH07210570A - 有向グラフ編集処理装置 - Google Patents

有向グラフ編集処理装置

Info

Publication number
JPH07210570A
JPH07210570A JP6023055A JP2305594A JPH07210570A JP H07210570 A JPH07210570 A JP H07210570A JP 6023055 A JP6023055 A JP 6023055A JP 2305594 A JP2305594 A JP 2305594A JP H07210570 A JPH07210570 A JP H07210570A
Authority
JP
Japan
Prior art keywords
data
edge
directed graph
clause
editing
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
Application number
JP6023055A
Other languages
English (en)
Other versions
JP3346014B2 (ja
Inventor
Shoichi Tateno
昌一 舘野
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 JP02305594A priority Critical patent/JP3346014B2/ja
Publication of JPH07210570A publication Critical patent/JPH07210570A/ja
Application granted granted Critical
Publication of JP3346014B2 publication Critical patent/JP3346014B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】少ないデータ量で有向グラフを表現し、有向グ
ラフに対する編集処理を行う有向グラフ編集処理装置を
提供する。 【構成】初参照辺を記録し、前記初参照辺の次に子辺を
記録し、兄弟辺がある場合に前記子辺以下の記録が終了
した後に当該兄弟辺を記録する辺直列形式のレコードデ
ータを形成し記憶する記憶手段と、編集対象の有向グラ
フの辺データと前記記憶手段に記憶されたレコードデー
タの各辺データとを順次に探索して比較し、編集対象の
有向グラフの辺データの内、一致する辺までの辺データ
および残りの辺データを分離して、当該辺データのレコ
ードデータに対する編集操作を行う第1編集処理手段
と、編集操作が行なわれたレコードデータの位置までお
よび当該位置以降の各々の辺データのレコードデータに
対して、各々の参照の値を更新する編集処理を行う第2
編集処理手段とを備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、有向グラフ編集処理装
置に関し、特に、有向グラフにより木構造のデータ構造
を表現して各種のデータ処理に利用する場合に、メモリ
スペースを効率よく利用して少ないデータ量で有向グラ
フを表現し、当該有向グラフに対する編集処理を行う有
向グラフ編集処理装置に関するものである。
【0002】
【従来の技術】有向グラフは、これを要素として、木構
造,ネットワーク構造をそのままの形状で表現できるた
め、最近のデータ処理においてデータを表わすデータ構
造として多く利用されるようなっている。例えば、デー
タベースを構成する場合に、木構造のデータ構造を作成
して階層的な検索処理に利用される。また、ネットワー
ク表現により、関係する関連データまでも検索が可能に
なる。
【0003】従来、有向グラフを計算機上で表現して扱
うため、一般に用いられている有向グラフの表示方法で
は、まず、節をそれぞれに特定し、辺が指す節をポイン
タにより表現して、ある節から発する各辺を当該節にお
いて、その指示先の節を示すポインタの集合として表現
している。このような表現方法によれば、有向グラフで
構成されるネットワークのデータ表現で、辺を表現する
場合、まず、節の位置をそれぞれに特定し、1つの節か
ら発する辺を記録し、次に、この辺と同じ節から発する
直後の辺である兄弟辺を順次に記録する。このようなデ
ータ表現の形態においては、各辺のデータが、明示的に
参照先の節のポインタを表現するものとなっており、こ
の場合、ポインタ数は辺数に等しくなる。
【0004】図14および図15は、従来における有向
グラフによるネットワーク構造の表現方法を説明する図
である。図14に有向グラフを用いたネットワークの節
と辺の関係を図式的に示し、図15にはその有向グラフ
を表現しているデータ要素の集合のテーブルを示してい
る。図14において、1〜10の数字を付加した丸印は
それぞれの節を示し、その節と節との間を結ぶ矢印が、
それぞれの有向グラフの辺を示している。節には有向グ
ラフの属性から、開始節,中間節,終了節の種類があ
る。図14においては、開始節81は破線の丸印で表記
し、終了節82,83は2重線の丸印で表記している。
矢印で表記されている各辺は、指示先の節の番号をポイ
ンタとして持ち、また、ラベルを持つ。ここでは、各々
の辺に持つラベルは、各辺を示す矢印の線分部分の近傍
に表記している。
【0005】これらの各々の辺データを表現するデータ
構造としては、例えば、図15に示すようなテーブル形
式の各々のレコードデータ(エントリ)の集合で表現さ
れるものが利用される。個々の辺を表現するレコードデ
ータを格納するデータテーブル90には、節番号を格納
する節番号フィールド91,当該節が終了節であるか否
かを示す終了節フラグを格納する終了節フラグフィール
ド92,当該節から発する辺数を格納する辺数フィール
ド93,各辺のラベルを格納するラベルフィールド9
4,および当該辺の指示先である節を示すポインタを格
納するポインタフィールド95から構成されている。図
15に示すテーブルにおいて、ポインタフィールド95
に格納されているポインタの数は、ここで表現されてい
る有向グラフの辺の数に等しい。
【0006】図14に示す有向グラフにおいて、各々の
節から発する各辺で、順次に暗黙に記録順序が決まるも
のを括弧でくくり、その各要素で明示的にポインタが必
要になる部分に→印を付けて示すと、次のようになる。
すなわち、ここでは10個の節があり、その間を結ぶ1
5個の辺がある有向グラフを例とする。その表記では、
辺を発しない節は除かれるので、9個の節と、この節か
ら発する15個の辺とで表現される。それぞれに指示先
の節の番号で表現すると、節:{→2,→3,→
4},節:{→5},節:{→5,→6},節:
{→7},節:{→8,→6},節:{→10},節
:{→6,→9},節:{→10},節:{→6,
→10}となる。なお、この表記では、各節から発する
辺には順序があるものとし、図14においては上が先に
なるものとしている。
【0007】ところで、有向グラフを開始節から順に辿
った時に、ある節を最初に指す辺を単に「初参照辺」と
呼ぶことにし、初参照辺以外の辺を「再参照辺」と呼ぶ
ことにすると、全ての辺は、初参照辺または再参照辺の
いずれかである。また、初参照辺は、それが指す節に1
対1に対応し、そのような節は有向グラフ全体で開始節
を除く全ての節となる。図14に示す有向グラフにおい
て、開始節81から出発して、各節における初参照辺と
再参照辺とを、上述のような規則の順序で各辺を順序付
けると、辺84,辺85,辺86と順序付けることがで
き、この順序で各辺のデータを順次にテーブル形式のデ
ータ構造にまとめると、図15に示すようなテーブルが
構成できる。
【0008】
【発明が解決しようとする課題】ところで、上述のよう
なデータ表現形式のテーブル(図15)により、有向グ
ラフのネットワーク(図14)を表現する場合、明らか
に、各々の辺数に等しい数だけのポインタが必要とな
り、この数のポインタデータを格納する領域が必要とな
る。したがって、大規模な有向グラフのネットワークを
表現する場合には、その多くの辺数に応じて、格納すベ
き必要なポインタの数が多くなる。また、ポインタ数が
多くなると、更にその個々のポインタを表わすアドレス
幅が広げなければならず、これらのデータを表現するた
めのデータ量が非常に大きくなる。
【0009】したがって、大規模な有向グラフのネット
ワークを表現する場合、多くの辺数に応じて、多くのポ
インタを格納するためのデータ領域が非常に大きくな
り、このような有向グラフを扱うデータ処理において
は、多くのポインタにかかるデータ処理のために、その
データ格納領域に関し、また、そのデータ処理速度に関
して、多くのデータ量の故に多大な負荷を強いられるこ
とになる。
【0010】本発明の上記のような課題を解決するため
のなされたものであり、本発明の目的は、有向グラフに
より木構造のデータ構造を表現して各種のデータ処理に
利用する場合に、メモリスペースを効率よく利用して少
ないデータ量で有向グラフを表現し、更に、当該有向グ
ラフに対する編集処理を行うことができる有向グラフ編
集処理装置を提供することにある。
【0011】
【課題を解決するための手段】上述のような目的を達成
するため、本発明の有向グラフ編集処理装置は、第1の
特徴として、ある節を最初に指示する辺である初参照
辺,対象とする辺が指示する節から発する最初の辺であ
る子辺,および対象とする辺と同一の節から発して隣接
する辺である兄弟辺により構成される構造の有向グラフ
を、各辺データを所定の順序に従ってテーブルに1次元
的に記録して形成し、当該テーブルに形成された有向グ
ラフの各辺データに対する編集処理を行う有向グラフ編
集処理装置であって、初参照辺を記録し、前記初参照辺
の次に子辺を記録し、兄弟辺がある場合に前記子辺以下
の記録が終了した後に当該兄弟辺を記録する辺直列形式
のレコードデータを形成し、初参照辺,子辺,および兄
弟辺の各辺データを順次にレコードデータとしてテーブ
ルに記憶する記憶手段(30)と、編集を行う対象の有
向グラフが入力された時、入力された編集対象の有向グ
ラフの辺データと前記記憶手段に記憶されたレコードデ
ータの各辺データとを順次に探索して比較し、編集対象
の有向グラフの辺データの内、一致する辺までの辺デー
タおよび残りの辺データを分離して、当該辺データのレ
コードデータに対する編集操作を行う第1編集処理手段
(37)と、テーブルに対するレコードデータの編集操
作を行った後、編集操作が行なわれたレコードデータの
位置までおよび当該位置以降の各々の辺データのレコー
ドデータに対して、各々の参照の値を更新する編集処理
を行う第2編集処理手段(38)とを備えたことを特徴
とする。
【0012】また、本発明の有向グラフ編集処理装置
は、第2の特徴として、辺直列形式のレコードデータに
おける各辺データは、初参照辺であるか否かを指示する
初参照フラグと、辺のラベルデータと、この辺を発する
節が終了節であるか否かを指示する終了フラグと、子辺
の有無を指示する子フラグと、兄弟辺の有無を指示する
兄弟フラグとから構成されることを特徴とする。
【0013】本発明の有向グラフ編集処理装置は、第3
の特徴として、単語群を表現する木表現の有向グラフが
辺直列形式のレコードデータで保存されており、新たな
単語の登録の編集処理を行う場合、前記第1編集処理手
段は、登録しようとする単語をa12…anとすると
き、この単語の各要素a1,a2,…,anを前記レコー
ドデータの各辺データから順次に探索した結果、a1
らaiまでは等しいラベルの辺データが存在し、ai+1
ラベルの比較に失敗した時、その位置にai+1からan
での辺データのレコードデータを挿入する編集を行い、
前記第2編集処理手段は、a1からaiまでの辺データお
よびai+1以降の辺データを弟とする辺データの弟参照
の値を更新する編集処理を行うことを特徴とする。
【0014】更に、また、本発明の有向グラフ編集処理
装置は、第4の特徴として、単語群を表現する木表現の
有向グラフが辺直列形式のレコードデータで保存されて
おり、既に登録されている単語の削除の編集処理を行う
場合、前記第1編集処理手段は、削除しようとする単語
をd12…dnとするとき、その単語の各要素d1
2,…,dnを前記レコードデータの各辺データから順
次に探索して成功した場合、探索で得られた各々の辺デ
ータのうち、dnの辺データの終了フラグを削除し、dn
の辺データに子フラグがあれば、この後何もせずに編集
を終了とし、dnの辺データに子フラグがなければ、j
を1から(n−1)まで変化させて、djの辺データで
終了フラグのある最大のjをjmaxとし、更に、kを
jmaxからnまで変化させて、dkの辺データに兄弟
フラグがある最大のkをkmaxとし、kmaxから1
を引いた値をiとするとき、di+1の辺データからdn
辺データまでを削除して編集を終了とし、前記第2編集
処理手段は、d1からdiまでの辺データおよびdi+1
降の辺データを弟とする辺データの弟参照の値を更新す
る編集処理を行うことを特徴とする。
【0015】
【作用】本発明の有向グラフ編集処理装置においては、
ある節を最初に指示する辺である初参照辺,対象とする
辺が指示する節から発する最初の辺である子辺,および
対象とする辺と同一の節から発して隣接する辺である兄
弟辺により構成される構造の有向グラフを、各辺データ
を所定の順序に従ってテーブルに1次元的に記録して形
成する。そして、当該テーブルに形成された有向グラフ
の各辺データに対する編集処理を行う。
【0016】このため、有向グラフ編集処理装置には、
記憶手段(30)と、第1編集処理手段(37)と、第
2編集処理手段(38)とが備えられる。
【0017】記憶手段(30)は、上記のような構造で
形成した有向グラフに対して、初参照辺を記録し、前記
初参照辺の次に子辺を記録し、兄弟辺がある場合に前記
子辺以下の記録が終了した後に当該兄弟辺を記録する辺
直列形式のレコードデータを形成し、初参照辺,子辺,
および兄弟辺の各辺データを順次にレコードデータとし
てテーブルに記憶して、当該有向グラフを格納してい
る。
【0018】この有向グラフの各辺データに対する編集
処理を行うため、第1編集処理手段(37)は、編集を
行う対象の有向グラフが入力された時、入力された編集
対象の有向グラフの辺データと前記記憶手段に記憶され
たレコードデータの各辺データとを順次に探索して比較
し、編集対象の有向グラフの辺データの内、一致する辺
までの辺データおよび残りの辺データを分離して、当該
辺データのレコードデータに対する編集操作を行う。こ
れに伴い、第2編集処理手段(38)が、テーブルに対
するレコードデータの編集操作を行った後、編集操作が
行なわれたレコードデータの位置までおよび当該位置以
降の各々の辺データのレコードデータに対して、各々の
参照の値を更新する編集処理を行う。
【0019】また、ここでの有向グラフを形成している
辺直列形式のレコードデータにおける各辺データは、初
参照辺であるか否かを指示する初参照フラグと、辺のラ
ベルデータと、この辺を発する節が終了節であるか否か
を指示する終了フラグと、子辺の有無を指示する子フラ
グと、兄弟辺の有無を指示する兄弟フラグとから構成さ
れており、有向グラフの探索を行う場合、これらのフラ
グの参照により、有向グラフの辺および節を高速に辿
り、有向グラフに対する編集処理を行うことができる。
【0020】このため、単語群を表現する木表現の有向
グラフが辺直列形式のレコードデータで保存されてお
り、新たな単語の登録の編集処理を行う場合には、第1
編集処理手段は、登録しようとする単語をa12…an
とするとき、この単語の各要素a1,a2,…,anを前
記レコードデータの各辺データから順次に探索した結
果、a1からaiまでは等しいラベルの辺データが存在
し、ai+1のラベルの比較に失敗した時、その位置にa
i+1からanまでの辺データのレコードデータを挿入する
編集を行う。これに伴い、第2編集処理手段は、a1
らaiまでの辺データおよびai+1以降の辺データを弟と
する辺データの弟参照の値を更新する編集処理を行う。
【0021】また、単語群を表現する木表現の有向グラ
フが辺直列形式のレコードデータで保存されており、既
に登録されている単語の削除の編集処理を行う場合、第
1編集処理手段は、削除しようとする単語をd12…d
nとするとき、その単語の各要素d1,d2,…,dnを前
記レコードデータの各辺データから順次に探索して成功
した場合、探索で得られた各々の辺データのうち、dn
の辺データの終了フラグを削除し、dnの辺データに子
フラグがあれば、この後何もせずに編集を終了とする。
nの辺データに子フラグがなければ、jを1から(n
−1)まで変化させて、djの辺データで終了フラグの
ある最大のjをjmaxとし、更に、kをjmaxから
nまで変化させて、dkの辺データに兄弟フラグがある
最大のkをkmaxとし、kmaxから1を引いた値を
iとするとき、di+1の辺データからdnの辺データまで
を削除して編集を終了とする。そして、これに伴い、第
2編集処理手段は、d1からdiまでの辺データおよびd
i+1以降の辺データを弟とする辺データの弟参照の値を
更新する編集処理を行う。
【0022】これによれば、この有向グラフを形成し、
有向グラフの特徴を利用して行うデータ処理では、フラ
グデータのみのテーブルからのフラグデータの読み出
し,フラグの判定の処理により、有向グラフにかかるデ
ータ処理が実行できるので、高速な処理が可能となる。
また、有向グラフの編集を行う場合にも、編集対象とな
る部分的な有向グラフの辺データにかかるレコードデー
タに対する編集処理を行えば良いので、処理を高速化で
きる。
【0023】
【実施例】以下、本発明の実施例を図面を用いて具体的
に説明する。図1および図2は、本発明にかかる有向グ
ラフのデータ構造により表現された木構造の有向グラフ
を説明する図である。図1に有向グラフを用いた木構造
の節と辺の関係を図式的に示し、図2にはその有向グラ
フを表現している辺直列表現のデータ構造による有向グ
ラフテーブルを示している。図1において、丸印はそれ
ぞれの節を示し、その節と節との間を結ぶ矢印が、有向
グラフの辺を示している。節には有向グラフの属性か
ら、開始節,中間節,終了節の種類がある。図1におい
て、開始節11は破線の丸印で表記し、終了節12は2
重線の丸印で表記している。矢印で表記されている各辺
は必ず次の節を指示しているので、各辺のアドレスとし
て当該各辺が指示している節の番号を用いる。各節の番
号は、丸印の中に表示している。また、各辺がそれぞれ
に持つラベルは、各辺を示す矢印の線分部分の近傍に表
記している。
【0024】図2に示すように、これらの各辺データを
表現するデータ構造では、有向グラフテーブル20にお
いて、辺直列表現によるテーブル形式データとして、各
辺データが各々のレコードデータ(エントリデータ)で
表現される。個々の辺を表現するレコードデータを格納
す有向グラフテーブル20は、辺番号を格納するアドレ
スフィールド21,ラベルを格納するラベルフィールド
22,初参照辺であるか否かを示すfirstpフラグを格納
するfirstpフラグフィールド23,子辺を有するか否か
を示すsonpフラグを格納するsonpフラグフィールド2
4,兄弟辺を有するか否かを示すbrotherpフラグを格納
するbrotherpフラグフィールド25,当該辺による指示
先の節が終了節であるか否かを指すfinalpフラグを格納
するfinalpフラグフィールド26,および当該辺の兄弟
辺の辺番号アドレスをその相対アドレスと共に格納する
兄弟アドレスフィールド27から構成される。
【0025】ここでの有向グラフテーブル20において
用いられる各フラグについて、その意味付けを説明して
おくと、firstpフラグは、初参照辺であるか否かを示す
フラグである。sonpフラグは、子辺の有無を示すフラグ
である。brotherpフラグは、兄弟辺の有無を示すフラグ
である。finalpフラグは、初参照辺(firstp=“1”)
のときに存在し、指示先が終了節であるか否かを指すフ
ラグとなっている。なお、兄弟アドレスはこれらのフラ
グと共に設けられるが、当該辺が兄弟辺を持つ場合(br
otherp=“1”)のときに存在し、当該辺の兄弟辺の辺
番号のアドレスと共に、兄弟辺の辺データの相対アドレ
スを指示する。
【0026】この有向グラフテーブル20では、有向グ
ラフが含むポインタ数を減らすことにより、有向グラフ
を効率よく表現し、当該有向グラフ表現をデータ処理で
利用する場合の負荷を軽減させるものとなる。このた
め、有向グラフテーブル20においては、辺直列表現に
よるテーブル形式データとして各辺データを記録する。
すなわち、ある辺のデータをレコードデータ(エント
リ)として記録すると、暗黙に次のエントリのデータ位
置には初参照辺の子辺(対象としている辺の指示する節
から発する最初の辺)のデータを記録する。もし、記録
する辺が再参照辺であり、その子辺が既に記録済みにな
っている場合、当該子辺へのポインタを記録することに
なる。なお、木構造の有向グラフでは、そのような場合
は生じない。このため、有向グラフテーブル20はポイ
ンタフィールドを設けていない。
【0027】このように、暗黙に順次に子辺を記録して
いくので、兄弟辺がある場合には、明示的に兄弟辺があ
ることを記録しておくフラグが必要となる。このフラグ
の有無により、ある辺をレコードデータ(エントリ)と
して記録した後、その辺から子辺へのポインタを必要と
する場合(すなわち、子辺が既に記録済となっている場
合)は、その直後には何を記録しても良い自由度ができ
るので、有向グラフテーブル20では、このエントリ位
置に、兄弟辺を(あれば)記録する。
【0028】更に、本発明の実施例にかかる有向グラフ
テーブル20のデータ構造について詳細に説明する。こ
の辺直列表現によるテーブルでは、有向グラフを効率的
に表現するため、また、どのような形の有向グラフにも
対応させるため、次のようなフラグを用意して、辺と子
辺とを単位として記録する。すなわち、各辺データのエ
ントリには、初参照辺か再参照辺かのどちらかであるか
を示すフラグ(firstpフラグ)と、初参照辺では、更に子
辺の有無を示すフラグ(sonsフラグ)を用意する。更に、
兄弟辺の有無を示すフラグ(brotherpフラグ)を用意す
る。
【0029】ここでの有向グラフテーブル20では、辺
と子辺を単位として記録する。有向グラフにより構成す
る木構造において、開始節(1箇所)を除く全ての節
は、それを指す初参照辺が1対1に対応する(以下ここ
での初参照辺と節との組を適宜に「辺節」と呼ぶことに
する)が、辺を発しない節(子辺を持たない節)は不規
則に存在する。そこで、初参照辺に子辺の持つ情報を合
せて持たせることにすると、節の情報は不要となる。辺
を発しない節が単独で持たなければならない情報は終了
節か否かを示す情報のみである。
【0030】次に、図2に示すように構成された有向グ
ラフテーブル20から、図1に示すうような構造の有向
グラフを作成する場合のアルゴリズムについて説明す
る。この場合のアルゴリズムは、次のようなステップ
(A)〜(E)の処理を繰り返して行うことにより、辺
直列表現のレコードデータの有向グラフテーブル20に
よる表現から対応する有向グラフの生成が可能となる。
【0031】なお、この有向グラフの生成処理では、初
期設定データとして、スタックbrothers={}とし、開始
節を指す(仮想的な)辺を辺0とし、辺0は初参照辺(fir
stp=“1”)とする。 (A) 開始節を作成する。 (B) i=1とする。 (C) 辺がなければ、終了。 (C−1) 辺(i-1)が初参照辺(firstp=“1”)で、
子辺がある(sonp=“1”)場合には、子辺として、辺i
を生成する。brotherp=“1”なら、iをスタックbrot
hersにプッシュする。 (C−2) 辺(i-1)が初参照辺(firstp=“1”)で、
子辺がない(sonp=“0”)場合には、スタックbrothers
をポップした値jを得て、辺jの兄弟辺として、辺iを
作成する。そして、brotherp=“1”なら、iをスタッ
クbrothersにプッシュする。 (C−3) 辺(i-1)が再参照辺(firstp=“0”)の場
合、スタックbrothersをポップした値jを得て、辺jの
兄弟辺として、辺iを作成する。そして、brotherp=
“1”なら、iをスタックbrothersにプッシュする。 (D) i=i+1とする。 (E) そのまま(C)に戻る。
【0032】図3は、本発明の一実施例にかかる有向グ
ラフ編集処理装置の要部の構成を示すブロック図であ
る。図3において、30は有向グラフテーブル、31は
入力装置、32はデータ処理装置、33は記憶装置、3
4は出力装置、35は有向グラフ生成処理部、36は文
字列解析処理部、37は第1編集処理部、38は第2編
集処理部である。記憶装置33には、解析する対象に応
じて、ラベルデータなどが設定された有向グラフを表現
する有向グラフテーブル30が予じめ作成されて備えら
れている。データ処理装置32における有向グラフ生成
処理部35は、有向グラフテーブル30のデータを利用
して、有向グラフを作成し、また、文字列解析処理部3
6は、有向グラフテーブル30のデータを利用して、文
字列の解析処理を行う。解析対象となる文字列は、入力
装置31から入力され、解析された結果の出力は出力装
置34から出力される。
【0033】第1編集処理部37は、有向グラフテーブ
ル30の有向グラフの各辺データに対する編集処理を行
うため、編集を行う対象の有向グラフが入力された時、
入力された編集対象の有向グラフの辺データと有向グラ
フテーブル30に記憶されたレコードデータの各辺デー
タとを順次に探索して比較し、編集対象の有向グラフの
辺データの内、一致する辺までの辺データおよび残りの
辺データを分離して、当該辺データのレコードデータに
対する編集操作を行う。また、これに伴い、第2編集処
理部38は、テーブルに対するレコードデータの編集操
作を行った後、編集操作が行なわれたレコードデータの
位置までの各々の辺データのレコードデータに対して、
各々の参照の値を更新する編集処理を行う。
【0034】図4は、有向グラフ生成処理部35が行う
有向グラフ作成処理の処理フローを示すフローチャート
である。図4を参照して、ここでの有向グラフ作成処理
を説明する。処理を開始すると、まず、ステップ40に
おいて、スタックbrothersを空リストにする。次に、ス
テップ41において、開始節を作成し、これを辺節0と
する。次に、ステップ42において、制御変数i=1と
する。次に、ステップ43に進み、辺節(i-1)の子辺と
して、辺節iを作成する。次に、ステップ44におい
て、有向グラフテーブルからフラグデータを参照し、br
otherp=“1”ならば、後に兄弟辺を作成するために、
制御変数iの値をスタックbrothersにプッシュする。次
に、ステップ45において、制御変数iをインクリメン
トして、次のステップ46において、辺iの辺データが
あるか否かを判定する。辺データがなければ、処理を終
了とする。
【0035】ステップ46の判定処理において、辺iの
辺データが存在する場合、ステップ47に進む。ステッ
プ47においては、辺データから、辺節(i-1)が初参照
辺(firstp=“1”)であるか否かを判定する。初参照辺
である場合には、次にステップ48に進み、更に辺デー
タから辺節(i-1)に子辺(sonp=“1”)があるか否かを
判定し、子辺がない場合には、ステップ49に進む。
【0036】ステップ48の判定処理において、辺節(i
-1)に子辺がある(sonp=“1”)ことが判定できると、
ステップ43に戻り、ステップ43における子辺の作成
処理から、次の処理を続行する。また、ステップ47で
辺節(i-1)が初参照辺(firstp=“1”)でないと判定さ
れた場合に、および、ステップ48で辺節(i-1)に子辺
(sonp=“1”)があると判定されない場合に、ステップ
49に進んで、兄弟辺を作成する処理を行う。この処理
では、ステップ49で、スタックbrothersをポップした
値jを得て、次のステップ50において、辺節jの兄弟
辺として、辺節iを作成する。そして、次のステップ4
4に戻り、ステップ44から処理を繰り返し行う。
【0037】このように、この処理においては、有向グ
ラフテーブルのレコードデータ(エントリ)の辺データ
から、子辺が存在する場合には順次に子辺を作成して行
き、その間、兄弟辺がある場合、兄弟辺の存在する位置
をスタックbrothersにプッシュしておく。子辺の存在が
なくなると、次にスタックbrothersにプッシュしておい
た兄弟辺の存在する位置で、兄弟辺を作成する。この処
理を繰り返し行い、有向グラフを作成する。
【0038】この処理により、例えば、図2に示す有向
グラフテーブル20のフラグデータから図1に示すよう
な有向グラフ10が作成される。有向グラフ10では、
図1に示すように、節番号0の開始節から始まり、その
上側の初参照辺の辺を辿り、それから順次にその子辺が
作成され、子辺がなくなると、兄弟辺が存在する位置ま
で戻り、兄弟辺を作成する。この作成順序は、有向フラ
グテーブル20の辺データの記録順序と対応しており、
辺番号を示すアドレスがそのまま節番号となっている。
【0039】このように作成された有向グラフ10は、
例えば、前述の図14の有向グラフの説明と同様な表現
法に従い、各々の節および当該節から発する各辺で、暗
黙に記録順序が決まるものを括弧でくくり、その各要素
で明示的にポインタが必要になる部分に→印を付けて示
すと、次のように表現されるが、特に、木構造ではポイ
ンタが必要となる部分はない。すなわち、有向グラフ1
0の例では、全ての辺データは暗黙に記録順序が決まる
ので、一つの括弧でくくることができる。兄弟辺がある
ことを記録する部分には下線を付けて表現すると、
,2,,5,,7,,10,11
12,13,14}となる。
【0040】図5は、文字列解析処理部36が行う入力
記号列解析処理の処理フローを示すフローチャートであ
る。図5を参照して、ここでの入力記号列解析処理を説
明する。この入力記号列解析処理は、例えば、図1に示
すような有向グラフにより形成されている木構造を参照
して、その木構造を辿り、入力された入力記号の文字列
の受理また拒絶の判定を行う処理であるが、ここでは、
図1のような有向グラフの形態を利用するのでなく、図
2に示すような有向グラフテーブル20のデータをその
まま利用して入力記号列解析処理を行う。
【0041】処理を開始すると、まず、ステップ51に
おいて、入力された文字列の最初の文字を現在の入力記
号とする。次に、ステップ52において、辺1を現在の
辺とする。次に、ステップ53に進み、現在の入力記号
と現在の辺のラベルが一致するか否かを判定する。一致
する場合には、次に、ステップ54において、子辺を次
の辺とする。次に、ステップ55において、次の入力記
号があるか否かを判定する。次の入力記号がある場合に
は、次のステップ56に進み、次の入力記号を現在の入
力記号とする。次にステップ57において、次の辺を現
在の辺として、ステップ53に戻り、ステップ53から
処理を繰り返し行う。
【0042】また、ステップ53の判定処理において、
現在の入力記号と現在の辺のラベルが一致しない場合
は、兄弟辺に対して、同様なラベルの一致の判定を行う
ため、ステップ58に進み、兄弟辺があるか否かを判定
する。兄弟辺がある場合には、ステップ59に進み、兄
弟辺を現在の辺として、ステップ53に戻り、ステップ
53から処理を繰り返し行う。ステップ58で兄弟辺が
ない場合には、有向グラフを辿れないので、失敗終了と
なる。
【0043】このようにして、ステップ53〜ステップ
57までの処理を繰り返し行い、また、ステップ58お
よびステップ59の処理を含めて、ステップ53〜ステ
ップ57までの処理を繰り返し行う。そして、ステップ
55の判定処理において、次の入力記号がなくなったこ
とが判定できると、次に、ステップ60に進み、この入
力記号列解析処理の最終的な判定処理を行う。すなわ
ち、現在の辺が指示する節が終了節であれば、入力記号
は受理できるので、ステップ60において、現在の辺は
finalp=“1”であるか否かを判定する。この結果、現
在の辺がfinalp=“1”であれば、成功終了とし、そう
でなければ、失敗終了とする。
【0044】このような入力記号列の判定処理は、入力
された文字列の入力記号に対して有向グラフの各辺のラ
ベルの一致を判定して、有向グラフの木構造の各辺を辿
る処理である。この処理において、有向グラフの木構造
の各辺を辿る場合、図2に示すような有向グラフテーブ
ルの辺データを順次に読み出し、辺データにおける各々
のフラグの判定を行い、入力記号の文字列の判定を行
う。なお、この判定処理では、子辺を辿り、そのラベル
が不一致の場合に、兄弟辺を辿ることになるが、有向グ
ラフテーブルにおいて兄弟辺に辿りつけることは、有向
グラフと対応する辺直列形式のレコードデータのデータ
構造による有向グラフテーブルの等価性から明らかであ
る。また、有向グラフの辺の順序が決定的でない場合、
つまり、同一の節から同じラベルを持つ辺が複数存在す
る場合には、子辺から先の辿り方において、成功および
失敗の区別をし、失敗の場合には、ラベルの比較が失敗
した時と同様に、兄弟辺を辿ることになる。
【0045】次に、このような有向グラフテーブルの各
々の辺データを用いるアクセス法について、現在の節の
状態および入力記号がない場合に対しても対応可能なよ
うにしたアルゴリズムをまとめておくと、次のようなア
ルゴリズムにより有向グラフを辿ることができる。ただ
し、この処理は開始節が終了節となっていない場合の処
理であり、入力記号の文字列が取り込まれて処理が行な
われる。 (1) 初期設定;i=0 (2) 辺1を現在の辺とする。 (3) 現在の入力記号と現在の辺のラベルを比較す
る。 (3−1) 一致すれば、子辺を次の辺とする。 (3−2) 一致しない場合、 (3−2−1) 兄弟辺があれば、兄弟辺を次の辺とす
る。 (3−2−2) 兄弟辺がなければ、失敗終了とする。 (4) 次の入力記号がなくなり、finalp=“1”なら
成功終了、finalp=“0”なら失敗終了。 (5) 次の入力記号を現在の入力記号とする。次の辺
を現在の辺とする。 (6) そのまま(3)に戻る。 このようなアルゴリズムにより、入力記号の各々の文字
列に対応して、有向グラフのネットワークの各辺を辿る
ことができる。
【0046】ところで、前述のような有向グラフテーブ
ルの辺データにより、有向グラフを辿る処理を行う場合
において、初参照辺で兄弟辺が存在することを示すbrot
herpフラグがセットされている場合には、子辺の次に兄
弟辺を辿ることになるが、その参照速度を向上させるた
めに、ここでは、その実体がどこにあるかを示す兄弟ア
ドレスを各々の辺データのレコードデータを保持してい
る(兄弟アドレスフィールド27)。この兄弟アドレス
の参照により、高速に有向グラフを探索することができ
る。
【0047】次に、このような文字列解析処理部36が
行う入力記号解析処理を一部に用いて、有向グラフテー
ブル30に対する編集処理を行う場合の処理例について
説明する。この編集処理は、第1編集処理部37が行う
第1段階の編集処理と、第2編集処理部38が行う第2
段階の編集処理により、その編集処理が実行される。
【0048】有向グラフテーブル30における有向グラ
フの各辺データに対する編集処理を行うため、新規に登
録する単語や、削除する単語などの編集対象となる単語
(入力文字列)が与えられると、第1編集処理部37
は、文字列解析処理部36を制御して、編集を行う対象
の有向グラフ(編集対象の文字列)に対して、入力され
た編集対象の有向グラフの辺データと有向グラフテーブ
ル30に記憶されたレコードデータの各辺データとを順
次に探索して比較する。そして、編集対象の有向グラフ
の辺データの内、一致する辺までの辺データおよび残り
の辺データを分離して、当該辺データのレコードデータ
に対する編集操作を行う。
【0049】また、これに伴い、第2編集処理部38
は、テーブルに対するレコードデータの編集操作を行っ
た後に、編集操作が行なわれたレコードデータの位置ま
での各々の辺データのレコードデータに対して、各々の
参照の値を更新する編集処理を行う。
【0050】次に、この有向グラフテーブルの編集処理
に関し、更に具体的に、登録処理および削除処理の編集
処理について説明する。図6は有向グラフテーブルに対
する単語登録による辺節の挿入の処理フローを示すフロ
ーチャートであり、図7および図8は単語登録の処理に
かかる動作を説明する有向グラフの模式図である。これ
らの有向グラフに対する処理は、実際的には有向グラフ
テーブルにおける辺直列形式のレコードデータに対する
データ処理の操作で行なわれる。また、図9は有向グラ
フテーブルに対する単語削除による辺節の削除の処理フ
ローを示すフローチャートであり、図10および図11
は単語削除の処理にかかる動作を説明する有向グラフの
模式図である。
【0051】まず、図6,図7,および図8を参照し
て、有向グラフテーブルに対する単語登録にかかる辺節
の挿入の処理を説明する。図7および図8の有向グラフ
は、木構造を表現している有向グラフの一部分を示して
おり、特に、登録する単語の文字列にかかる部分のみを
示している。図7および図8において、矢印は有向グラ
フの辺を示し、丸印は節を示し、また、上下にある点線
部分は、図示部分の他に辺や節が存在することを示して
いる。辺のラベルとして、単語を形成する文字列の各文
字要素を割り付けている。これらの有向グラフは、前述
のように、辺直列形式のレコードデータとして形成され
ており、この有向グラフに対する操作は、辺直列形式の
レコードデータに対する操作として実行される。
【0052】辺直列形式のレコードデータでは、前述し
たように、辺とそれが指す節を一組にしたものを辺節と
呼び、この辺節を辺データとしてテーブル形式のレコー
ドデータで記録している。木構造を構成する有向グラフ
の各辺節(辺データ)が保持するものは、子辺があるか
どうかを示す子フラグ(sonp)、弟辺があるかどうかを
示す兄弟フラグ(brotherp)、兄弟辺がある場合にその
辺番号アドレスを示すアドレス(brother address)、終
了節であるかどうかを示す終了フラグ(finalp)、当該辺
のラベル(label)などである。辺直列形式のレコードデ
ータでは、各々の辺データに対して、子辺がある場合
は、その直後に保存される(図1および図2の説明参
照)。
【0053】図6に示すフローチャートに従って、図7
および図8を参照し、ここでの単語登録による辺節の挿
入の処理を説明する。有向グラフテーブルに対する単語
の登録処理では、登録する単語a12…anの文字列が
入力され、単語登録の処理が開始されると、まず、ステ
ップ61において、有向グラフテーブルに対して、登録
する単語a12…anの各文字要素a1,a2,…,an
順次に探索する。この有向グラフテーブルの探索の結
果、次に、ステップ62において、文字列a12…ai
までの探索に成功し、次の文字要素ai+1のラベル比較
に失敗した場合、そのときの辺データの位置(辺番号の
アドレス)をpとして保持する。次に、ステップ63に
おいて、辺直列形式のレコードデータの位置pに、辺節
(ai+1)から辺節(an)までの辺データを挿入する。
すなわち、登録する単語の文字列の一致した文字要素列
12…aiの部分を除いた残りの文字要素列ai+1
i+2…anに対応する各々の辺節(辺データ)を作成し
て、ラベル比較に失敗した位置の辺節に連結(挿入)す
る。そして、次に、ステップ64において、有向グラフ
テーブルに新たに挿入した辺データに対応して、既存の
辺データの辺直列形式のレコードデータに対する各フラ
グおよび参照用の兄弟アドレスなどの整合性をとるため
の処理を行う。すなわち、この処理は、辺節(a1)か
ら辺節(ai)までの辺データと、辺節(ai+1)以降の
辺データを弟とする弟参照の値を挿入により増加した分
だけ増やす処理により行う。
【0054】つまり、この単語登録の処理は、図7に示
すように、有向グラフの辺のラベル比較を、登録単語の
最初の文字要素a1からラベル比較を始めて、比較に成
功すると、次に文字要素a2のラベル比較を行い、比較
に成功すると、更に次の文字要素a3のラベル比較を行
うというように、これらのラベル比較を順次に続ける探
索を行い、文字要素aiのラベル比較を行い成功して、
次に、文字要素ai+1のラベル比較に失敗したとする
と、この時の辺直列形式のレコードデータの辺データの
格納位置(辺番号アドレス)をpとして保持する。な
お、図7に示す有向グラフ65では、文字要素a1
2,…,aiの辺節まで順次に探索し、★で示す辺節の
位置で失敗した直後の様子を示している。
【0055】次に、有向グラフテーブルにおいて、この
失敗した辺節(辺データ)を格納している辺直列形式の
レコードデータの格納位置pを求めて、この位置から、
登録する単語の文字列において、その文字列が一致して
いない部分の文字要素の各辺節(辺データ)を挿入す
る。すなわち、図8に示すように、有向グラフのデータ
構造では、既存の有向グラフ66に対して、新たに登録
する単語のかかる辺節のサブ有向グラフ67を連結して
接続することになるが、その場合、接続位置の辺節の兄
弟辺として文字要素ai+1の辺節を接続し、それ以降の
文字要素の列はその子辺として、文字要素ai+2から文
字要素anまでの辺節を連結(挿入)する。
【0056】この場合の辺節の接続は、辺直列形式のレ
コードデータのデータ構造では、辺節(ai)の辺デー
タの次の位置に、辺節(ai+1)から辺節(an)までの
辺データを挿入することになる。このため、図8に示す
ように、有向グラフ66における挿入位置として、辺直
列形式のレコードデ−タに対応して、有向グラフ66の
各々の辺を探索してきた探索パスの辺を境として、それ
以降の辺節の後半部分68を分離し、有向グラフの辺節
を前半部分(66)と後半部分68との2つの分割す
る。そして、分割したその間にサブ有向グラフ67を挿
入する。サブ有向グラフ67は登録単語の文字要素列a
12…anの辺節のうち、登録されていない文字要素列
i+1…anの辺節からなる有向グラフである。新たな単
語登録にかかる辺節の挿入処理では、ここでの前半部分
(66),挿入部分(67),後半部分(68)の順に
メモリ−上に保存して、更新した有向グラフテーブルを
形成する。また、ここでの辺節のレコードデータの挿入
に伴い、辺節(a1)から辺節(ai)の弟参照の値(辺
番号のアドレス)を、辺節(ai+1)から辺節(an)の
分だけ増加させる。
【0057】次に、図9,図10,および図11を参照
して、有向グラフテーブルに対する単語削除にかかる辺
節の削除処理を説明する。図10および図11の有向グ
ラフは、前述の単語登録の処理の場合と同様に、木構造
を表現している有向グラフの一部分を示しており、ここ
でも削除する単語の文字列にかかる部分のみを示してい
る。既に単語が登録されている有向グラフテーブルか
ら、既登録単語を削除する処理では、有向グラフテーブ
ルから削除対象の単語を探索し、探索が成功した場合
に、削除対象の既登録の単語にかかる有向グラフの辺節
の状態に応じて、その削除処理を行う。
【0058】図9に示すフローチャートに従って、図1
0および図11を参照し、ここでの単語削除の処理を具
体的に説明する。有向グラフテーブルに対する単語の削
除処理では、削除する単語d12…dnの文字列が入力
され、単語削除の処理が開始されると、まず、ステップ
71において、有向グラフテーブルに対して、削除する
単語d12…dnの各文字要素d1,d2,…,dnを順次
に探索し、この探索処理に成功すると、次からの削除処
理を行う。なお、ここでの削除する単語の探索に成功し
ないと、当該有向グラフテーブルには、削除対象の単語
が既に登録されていないことなので削除処理は行えな
い。
【0059】削除対象の単語に対して、有向グラフテー
ブルの探索に成功すると、次に、ステップ72におい
て、辺節(dn)の辺データにおける終了フラグ(final
p)を“0”とする。次に、ステップ73に進み、辺節
(dn)に子辺があるか否かを判定する。この処理は、
辺節(dn)の辺データにsonpフラグがある(“1”で
ある)か否かを判定することにより行う。辺節(dn
に子辺がある場合は、これで削除処理を終了する。すな
わち、この場合、ここで削除する単語の文字要素列d1
2…dnの辺節は、全て他の既登録単語の一部として使
われ、他の既登録単語を登録された状態とするために必
要な辺節となっている。このため、探索に成功した文字
要素列d12…dnの辺節は、どの辺節の削除も行なわ
ない。ステップ72の処理により、削除する単語の文字
列の最後の文字要素の辺節(dn)の終了フラグ(final
p)が“0”されているので、文字要素dnで終了する単
語は、登録状態から削除されたことになる。
【0060】また、ステップ73の判定処理で、辺節
(dn)に子辺がないと判定された場合は、次のステッ
プ74からの処理により、削除する単語の文字要素列d
12…dnの各々の辺節において、全て他の既登録単語
の一部の辺節として使われ、他の既登録単語を登録状態
とするために必要な辺節となっている部分の辺節を除い
て、その他の部分の辺節を削除する処理を行う。
【0061】このため、次のステップ74においては、
jを1から(n−1)まで変化させて、各々の辺節(d
j)の中で、辺データの終了フラグが“1”である最大
のjをjmaxとする。次に、ステップ75において、
kをjmaxからnまで変化させて、辺節(dk)の中
で、dk辺データに兄弟フラグがある最大のkをkma
xとし、kmaxから1を引いた値をiとする。次に、
ステップ76において、辺直列形式のレコードデータに
対して、辺節(di+1)から辺節(dn)までの辺データ
を削除する。
【0062】すなわち、削除する単語の文字要素列d1
2…dn-1の各々の辺節に対し、1つ手前の終了フラグ
のある辺節までの間で、かつ、その間で兄弟辺のある辺
節の内で、最も最終の文字要素dn-1に近い辺節の位置
iを求めて、その辺節以降の辺節を削除する。つまり、
削除する単語の文字要素列d12…dn-1の探索パス
で、1つ前の終了フラグのある辺節までの間で最後に枝
分かれている部分を判別し、その枝の部分の辺節(辺デ
ータ)のみを削除する処理を行う。枝の部分がない場合
は、1つ前の終了フラグのある辺節の以降は不要となる
ので、これらを削除する。そして、次に、ステップ77
において、有向グラフテーブルから削除した辺データに
対応して、既存の辺データの直列形式のレコードデータ
としての整合性をとるための処理を行う。この処理は、
辺節(d1)から辺節(di)までの辺データと、辺節
(di+1)以降の辺データを弟とする弟参照の値を削除
により減少した分だけ減らす処理により行う。
【0063】つまり、この単語削除にかかる辺節の削除
の処理では、図10に示すように、有向グラフの辺のラ
ベル比較を、削除する単語の最初の文字要素d1からラ
ベル比較を始めて、比較に成功すると、次に文字要素d
2のラベル比較を行い、比較に成功すると、更に次の文
字要素d3のラベル比較を行うというように、これらの
ラベル比較を順次に続ける探索を行い、最終の文字要素
nのラベル比較に成功して探索が完了した場合に、こ
こでの削除処理を行う。
【0064】このような探索により得られた辺節のう
ち、最終の辺節(dn)の終了フラグを“0”として終
了節であることを解除し、辺節(dn)に子辺となる辺
節があれば、その後は何もせず処理を終了する。子辺と
なる辺節がなければ、最終の辺節(dn)から1つの手
前の終了節までの間で、直近の兄弟辺のある辺節まで逆
方向に辺節を辿り、これを判別して、その以降の各々の
辺節を削除することになる。このため、ここでの処理に
おいては、jを1から(n−1)まで変化させ、その間
の辺節(dj)の中で終了フラグが“1”であるような
最大のjをjmaxとし、更に、kをjmaxからnま
で変化させて、辺節(dk)に兄弟辺がある最大のkを
kmaxとし、このkmaxから1を引いた値をi(i
=kmax−1)とする。図10に示す有向グラフ10
0では、このようにして求められた辺節の位置iを★で
示している。この★で示す辺節の位置iの以降の辺節が
削除される。
【0065】この場合の辺節の削除は、辺直列形式のレ
コードデータのデータ構造では、辺節(di)の辺デー
タの次の位置の辺節(di+1)から辺節(dn)までの辺
データを削除することになるので、図11に示すよう
に、有向グラフ101から削除する位置iで、削除する
辺節のサブ有向グラフ102を分離する。この処理にお
いても、辺直列形式のレコードデ−タに対応して、有向
グラフ101で探索した辺から削除する辺節のサブ有向
グラフ102が除かれるので、有向グラフ101の辺節
は、削除された部分を境として、それ以降の辺節の後半
部分103が分離され、前半部分(101)と後半部分
103との2つの分割される。ここでのサブ有向グラフ
102は、削除対象の単語の文字要素列d12…dn
辺節のうち、削除される文字要素列di+1…dnの辺節か
らなる有向グラフである。単語の削除では、ここでの前
半部分(101)と後半部分(103)を、この順にメ
モリ−上に保存して再構成し、更新した有向グラフテー
ブルとする。この辺節のレコードデータの削除に伴い、
辺節(d1)から辺節(di)の弟参照の値(辺番号のア
ドレス)を、辺節(di+1)から辺節(dn)の分だけ減
少させる。
【0066】次に、このように有向グラフの編集処理の
具体例として、先に例示した図1および図2の有向グラ
フに対し、削除処理を行った場合を説明する。図12お
よび図13に示す有向グラフは、先に例示した図1およ
び図2の有向グラフに対して辺節の削除処理を行った場
合の状態の変化を示している。図12に示すように、有
向グラフ121から、ラベルAの辺節とラベルBの辺節
からなるサブ有向グラフ122が削除された場合、その
削除に対応して、有向グラフテーブルの辺直列形式のレ
コードデータでは、図13に示すように、有向グラフテ
ーブル131から辺データ132が削除される。これに
伴い、削除された辺データ132の位置以降の各々の辺
データの辺番号アドレスが繰りあがり、更に、兄弟アド
レスフィールドの参照用の兄弟アドレスの参照の値が、
その分だけが繰りあがる。
【0067】すなわち、図13の示す有向グラフテーブ
ル131の辺番号アドレスは、辺データ132の削除処
理により、2つのレコードデータが削除されたので、辺
データ132より後の辺データは、図2に示す有向グラ
フテーブル20との比較から明らかなように、辺番号ア
ドレスが減らされ、それに伴い、更に、兄弟アドレスフ
ィールドの参照用の兄弟アドレスの参照の値が、その分
だけが減らされる。
【0068】また、図12および図13にそれぞれ示し
た有向グラフ121および有向グラフテーブル131か
ら、逆に、図1および図2にそれぞれ示した有向グラフ
10および有向グラフテーブル20を見ると、その場合
には、単語の登録にかかる有向グラフの辺節の挿入処理
が行なわれた状態変化を示している図となっている。す
なわち、登録する単語に対して、その文字要素列の辺節
の挿入位置(辺データ132の位置)が判定され、辺直
列形式のレコードデータの該当位置に、挿入する辺節に
対応する辺データが挿入される。この場合、レコードデ
ータの挿入に伴い、辺番号アドレスが増され、更に、兄
弟アドレスフィールドの参照用の兄弟アドレスの参照の
値が、その分だけが増されることになる。
【0069】
【発明の効果】以上に説明したように、本発明によれ
ば、有向グラフにより木構造のデータ構造を表現して各
種のデータ処理に利用する場合に、メモリスペースを効
率よく利用して少ないデータ量で有向グラフを表現で
き、更に、当該有向グラフに対する編集処理を行うこと
ができる有向グラフ編集処理装置が提供できる。また、
有向グラフを形成し、有向グラフの特徴を利用して行う
データ処理では、フラグデータのみのテーブルからのフ
ラグデータの読み出し,フラグの判定の処理により、有
向グラフにかかるデータ処理が実行できるので、高速な
処理が可能となる。また、有向グラフの編集を行う場合
にも、編集対象となる部分的な有向グラフの辺データに
かかるレコードデータに対する編集処理を行えば良いの
で、処理を高速化できる。
【図面の簡単な説明】
【図1】 図1は有向グラフを用いた木構造の節と辺の
関係を示す図、
【図2】 図2は図1の有向グラフを表現している辺直
列表現によるデータ構造の有向グラフテーブルを示す
図、
【図3】 図3は本発明の一実施例にかかる有向グラフ
編集処理装置の要部の構成を示すブロック図、
【図4】 図4は有向グラフ生成処理部が行う有向グラ
フ作成処理の処理フローを示すフローチャート、
【図5】 図5は文字列解析処理部が行う入力記号列解
析処理の処理フローを示すフローチャート、
【図6】 図6は有向グラフテーブルに対する単語登録
による辺節の挿入の処理フローを示すフローチャート、
【図7】 図7は単語登録の処理にかかる動作を説明す
る有向グラフの第1の模式図、
【図8】 図8は単語登録の処理にかかる動作を説明す
る有向グラフの第2の模式図、
【図9】 図9は有向グラフテーブルに対する単語削除
による辺節の削除の処理フローを示すフローチャート、
【図10】 図10は単語削除の処理にかかる動作を説
明する有向グラフの第3の模式図、
【図11】 図11は単語削除の処理にかかる動作を説
明する有向グラフの第4の模式図、
【図12】 図12は図1の有向グラフに対して辺節の
削除処理を行った場合の状態の変化を示す有向グラフの
説明図、
【図13】 図13は図12に対応して有向グラフに対
して辺節の削除処理を行った場合の状態の変化を示す有
向グラフテーブルの説明図、
【図14】 図14は従来の表現方法による有向グラフ
を用いたネットワークの節と辺の関係を図式的に示す
図、
【図15】 図15は従来の表現方法による有向グラフ
を用いてネットワークを表現しているデータ要素の集合
のテーブルを示す図である。
【符号の説明】
10…有向グラフ、11…開始節、12…終了節、20
…有向グラフテーブル、21…辺番号フィールド、22
…ラベルフィールド、23…firstpフラグフィールド、
24…sonpフラグフィールド、25…brotherpフラグフ
ィールド、26…finalpフラグフィールド、27…兄弟
アドレスフィールド、30…有向グラフテーブル、31
…入力装置、32…データ処理装置、33…記憶装置、
34…出力装置、35…有向グラフ生成処理部、36…
文字列解析処理部、37…第1編集処理部、38…第2
編集処理部、65…有向グラフ、66…有向グラフ、6
7…サブ有向グラフ、68…後半部分、80…有向グラ
フのネットワーク表現、81…開始節、82…終了節、
83…終了節、84,85,86…辺、90…データテ
ーブル、91…節番号フィール、92…終了節フラグフ
ィールド、93…辺数フィールド、94…ラベルフィー
ルド、95…ポインタフィールド、100…有向グラ
フ、101…有向グラフ、102…サブ有向グラフ、1
03…後半部分、121…有向グラフ、122…サブ有
向グラフ、131…有向グラフテーブル、132…辺デ
ータ。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 ある節を最初に指示する辺である初参照
    辺,対象とする辺が指示する節から発する最初の辺であ
    る子辺,および対象とする辺と同一の節から発して隣接
    する辺である兄弟辺により構成される構造の有向グラフ
    を、各辺データを所定の順序に従ってテーブルに1次元
    的に記録して形成し、当該テーブルに形成された有向グ
    ラフの各辺データに対する編集処理を行う有向グラフ編
    集処理装置であって、 初参照辺を記録し、前記初参照辺の次に子辺を記録し、
    兄弟辺がある場合に前記子辺以下の記録が終了した後に
    当該兄弟辺を記録する辺直列形式のレコードデータを形
    成し、初参照辺,子辺,および兄弟辺の各辺データを順
    次にレコードデータとしてテーブルに記憶する記憶手段
    と、 編集を行う対象の有向グラフが入力された時、入力され
    た編集対象の有向グラフの辺データと前記記憶手段に記
    憶されたレコードデータの各辺データとを順次に探索し
    て比較し、編集対象の有向グラフの辺データの内、一致
    する辺までの辺データおよび残りの辺データを分離し
    て、当該辺データのレコードデータに対する編集操作を
    行う第1編集処理手段と、 テーブルに対するレコードデータの編集操作を行った
    後、編集操作が行なわれたレコードデータの位置までお
    よび当該位置以降の各々の辺データのレコードデータに
    対して、各々の参照の値を更新する編集処理を行う第2
    編集処理手段とを備えたことを特徴とする有向グラフ編
    集処理装置。
  2. 【請求項2】 辺直列形式のレコードデータにおける
    各辺データは、初参照辺であるか否かを指示する初参照
    フラグと、辺のラベルデータと、この辺を発する節が終
    了節であるか否かを指示する終了フラグと、子辺の有無
    を指示する子フラグと、兄弟辺の有無を指示する兄弟フ
    ラグとから構成されることを特徴とする請求項1に記載
    の有向グラフ編集処理装置。
  3. 【請求項3】 請求項2に記載の有向グラフ編集処理装
    置において、単語群を表現する木表現の有向グラフが辺
    直列形式のレコードデータで保存されており、新たな単
    語の登録の編集処理を行う場合、 前記第1編集処理手段は、登録しようとする単語をa1
    2…anとするとき、この単語の各要素a1,a2,…,
    nを前記レコードデータの各辺データから順次に探索
    した結果、a1からaiまでは等しいラベルの辺データが
    存在し、ai+1のラベルの比較に失敗した時、その位置
    にai+1からanまでの辺データのレコードデータを挿入
    する編集を行い、 前記第2編集処理手段は、a1からaiまでの辺データお
    よびai+1以降の辺データを弟とする辺データの弟参照
    の値を更新する編集処理を行うことを特徴とする有向グ
    ラフ編集処理装置。
  4. 【請求項4】 請求項2に記載の有向グラフ編集処理装
    置において、単語群を表現する木表現の有向グラフが辺
    直列形式のレコードデータで保存されており、既に登録
    されている単語の削除の編集処理を行う場合、 前記第1編集処理手段は、削除しようとする単語をd1
    2…dnとするとき、その単語の各要素d1,d2,…,
    nを前記レコードデータの各辺データから順次に探索
    して成功した場合、探索で得られた各々の辺データのう
    ち、 dnの辺データの終了フラグを削除し、 dnの辺データに子フラグがあれば、この後何もせずに
    編集を終了とし、 dnの辺データに子フラグがなければ、 jを1から(n−1)まで変化させて、djの辺データ
    で終了フラグのある最大のjをjmaxとし、更に、k
    をjmaxからnまで変化させて、dkの辺データに兄
    弟フラグがある最大のkをkmaxとし、kmaxから
    1を引いた値をiとするとき、 di+1の辺データからdnの辺データまでを削除して編集
    を終了とし、 前記第2編集処理手段は、d1からdiまでの辺データお
    よびdi+1以降の辺デー楽を弟とする辺データの弟参照
    の値を更新する編集処理を行うことを特徴とする有向グ
    ラフ編集処理装置。
JP02305594A 1994-01-25 1994-01-25 有向グラフ編集処理装置 Expired - Fee Related JP3346014B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02305594A JP3346014B2 (ja) 1994-01-25 1994-01-25 有向グラフ編集処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02305594A JP3346014B2 (ja) 1994-01-25 1994-01-25 有向グラフ編集処理装置

Publications (2)

Publication Number Publication Date
JPH07210570A true JPH07210570A (ja) 1995-08-11
JP3346014B2 JP3346014B2 (ja) 2002-11-18

Family

ID=12099765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02305594A Expired - Fee Related JP3346014B2 (ja) 1994-01-25 1994-01-25 有向グラフ編集処理装置

Country Status (1)

Country Link
JP (1) JP3346014B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016152500A (ja) * 2015-02-17 2016-08-22 日本電信電話株式会社 名前特定装置、名前特定方法、及びプログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02148173A (ja) * 1988-11-30 1990-06-07 Fuji Xerox Co Ltd 木構造図作成システム
JPH02202620A (ja) * 1989-02-01 1990-08-10 Fuji Xerox Co Ltd 木構造図作成編集システム
JPH02272622A (ja) * 1989-04-14 1990-11-07 Fuji Xerox Co Ltd データ表示制御装置
JPH04107789A (ja) * 1990-08-29 1992-04-09 Ricoh Co Ltd 有向グラフの表示方法及び装置
JPH0520124A (ja) * 1991-07-10 1993-01-29 Toshiba Corp 有向グラフの変換装置
JPH05307476A (ja) * 1992-04-30 1993-11-19 Nippon Steel Corp 木構造表示編集装置
JPH06162088A (ja) * 1992-11-25 1994-06-10 Fuji Xerox Co Ltd 有向グラフ生成方法および装置
JPH0773202A (ja) * 1993-09-03 1995-03-17 Fuji Xerox Co Ltd 有向グラフ再構成方法
JPH07152919A (ja) * 1993-09-24 1995-06-16 At & T Corp クラスタ採用グラフ

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02148173A (ja) * 1988-11-30 1990-06-07 Fuji Xerox Co Ltd 木構造図作成システム
JPH02202620A (ja) * 1989-02-01 1990-08-10 Fuji Xerox Co Ltd 木構造図作成編集システム
JPH02272622A (ja) * 1989-04-14 1990-11-07 Fuji Xerox Co Ltd データ表示制御装置
JPH04107789A (ja) * 1990-08-29 1992-04-09 Ricoh Co Ltd 有向グラフの表示方法及び装置
JPH0520124A (ja) * 1991-07-10 1993-01-29 Toshiba Corp 有向グラフの変換装置
JPH05307476A (ja) * 1992-04-30 1993-11-19 Nippon Steel Corp 木構造表示編集装置
JPH06162088A (ja) * 1992-11-25 1994-06-10 Fuji Xerox Co Ltd 有向グラフ生成方法および装置
JPH0773202A (ja) * 1993-09-03 1995-03-17 Fuji Xerox Co Ltd 有向グラフ再構成方法
JPH07152919A (ja) * 1993-09-24 1995-06-16 At & T Corp クラスタ採用グラフ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016152500A (ja) * 2015-02-17 2016-08-22 日本電信電話株式会社 名前特定装置、名前特定方法、及びプログラム
WO2016133066A1 (ja) * 2015-02-17 2016-08-25 日本電信電話株式会社 名前特定装置、名前特定方法、及び記録媒体
US10608981B2 (en) 2015-02-17 2020-03-31 Nippon Telegraph And Telephone Corporation Name identification device, name identification method, and recording medium

Also Published As

Publication number Publication date
JP3346014B2 (ja) 2002-11-18

Similar Documents

Publication Publication Date Title
US5493678A (en) Method in a structure editor
JP3028738B2 (ja) 文書共通論理情報編集装置
JP3346014B2 (ja) 有向グラフ編集処理装置
JP2795110B2 (ja) 有向グラフ作成装置
JP2002202973A (ja) 構造化文書管理装置
JPH0528088A (ja) ハードウエア構成情報の自動作成方法
JPH0561758A (ja) 情報リンク装置
JP3395362B2 (ja) 文書処理装置
JPH1021066A (ja) プログラム自動生成方法
JP3555542B2 (ja) グループ番号設定装置およびグループ番号設定方法
JPH0581102A (ja) テーブル管理方式
JP3722854B2 (ja) データ編集装置
JPH056272A (ja) ソフトウエア設計装置
JP2001134596A (ja) 構造化文書管理装置および構造化文書検索方法
JP2004164223A (ja) N文字インデックス作成プログラムおよびn文字インデックス検索プログラム
JP2838972B2 (ja) 自動索引作成装置
JPH11242627A (ja) データアクセス方法およびプログラムを記録した媒体
JPH07160559A (ja) 退避媒体マージシステム
JPH1011338A (ja) リレーショナル・データベース・システム,該システムへのデータ格納・読み出し方法,およびそのためのプログラムを記録した記録媒体
JPH0750480B2 (ja) 文章データ編集装置
JP2002073943A (ja) イベント遷移パターン分類方法及び装置及びイベント遷移パターン分類プログラムを格納した記憶媒体
JP3780772B2 (ja) データベースの索引創成装置
JPH0644237A (ja) 文書整形装置
JPH05143304A (ja) 整合性検査方式
JP2002149702A (ja) 木構造情報検索方法および装置

Legal Events

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

Free format text: PAYMENT UNTIL: 20070906

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080906

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090906

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100906

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110906

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120906

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120906

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130906

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees