JPS63193228A - 文字列マツチング装置 - Google Patents

文字列マツチング装置

Info

Publication number
JPS63193228A
JPS63193228A JP62024752A JP2475287A JPS63193228A JP S63193228 A JPS63193228 A JP S63193228A JP 62024752 A JP62024752 A JP 62024752A JP 2475287 A JP2475287 A JP 2475287A JP S63193228 A JPS63193228 A JP S63193228A
Authority
JP
Japan
Prior art keywords
pattern
character string
character
address
index
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
JP62024752A
Other languages
English (en)
Other versions
JPH0542030B2 (ja
Inventor
Shigeki Shibayama
柴山 茂樹
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP62024752A priority Critical patent/JPS63193228A/ja
Publication of JPS63193228A publication Critical patent/JPS63193228A/ja
Publication of JPH0542030B2 publication Critical patent/JPH0542030B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 1む、文字列を検索する文字列マツチング装置に関する
1 (従来の技術) 、 1文ず列に対するキーパターンのマツチングは、−
゛ml子計算機の非数値処理、特に文献等の検索におい
ては必要不可欠な処理である。文字列に対するキーパタ
ーンのマツチングとは、あるキーパターンとしての文字
列が他の文字列の中に含まれているかいないかを判定す
るものであり、完全一致を条件とする選択処理とは異な
る。例えばeofflというキーパターンを含む文字列
は、computer、 welcoIIIe、 Io
comOtlon等である。*を可変長のドントケア文
字、つまり、0個以上の任意の文字数の文字列にマツチ
ングする特殊な文字と考えると、上記のCOWというパ
ターンを含む文字列の検索は、*comi:との一致を
検索するという問題になる。また、文字列に対する前方
や後方における一致を検索するには、可変長ドントケア
文字を検索対象パターンの前や後ろに付加してマツチン
グを行なえば良い。例えばcom*をキーパターンとし
て与えると上記の例のcomputerはマツチするが
、welcomeる  Pa5t  Pattern 
 Matching  in  Strings  (
SIAMJournal of Computing、
 Vol、6. No、2 June 1977)やM
orris他によるA Linear Pattern
 Matchingして知られている。ハードウェアに
よる実現では1task1n他(ACM Transa
ction on DatabascSystems、
 Vol、8. No、l、 March 1983)
によるパタニン・マツチャが提案されている。
しかしながら、Morris他によるアルゴリズムは、
パターン、文字列が共にランダム・アクセス可能な記憶
媒体上に記憶されている場合には効率が良いが、文字列
がシーケンシャルな2次記憶媒体に格納されているとき
には適用できない。このため、マツチング処理は、一旦
1時記憶媒体上に文字列を移してから行なわなくてはな
らず、効率の良い処理を行なうことができなかった。
また、Knuth他によるアルゴリズムによれば、文字
列がシーケンシャルな記憶媒体に入っているときにも適
用できるが、ソフトウェアによる処理では十分な実行速
度を得るのが難しい。特に2次記憶に文字列が入ってお
り、それを読出している時間に処理を並列的に進めるこ
とができない。
さらに、Haskin他の提案したハードウェアによる
パターンマツチングは、入力文字列を受理するかどうか
でマツチングのf11定を行なうオートマド−は高いが
必ずしも現実的、かつ効率的な実現方式と1.は言い難
かった。
(発明が解決しようとする問題点) は、特に人容金でシーケンシャルな記憶媒体上に ゛あ
る文字列に対するパターンのマツチングをソフトウェア
で実行するのが不可能であるか、または可能であるとし
ても、その処理速度は不十分なものであった。また、上
記のパターンマツチングをハードウェアで実行させるに
は、可変長ドントケア文字を扱うために大量のハードウ
ェアを必要とする上、効率的な処理か行なえないという
欠点を存していた。
本発明は、上記の問題点を解決するためになされたもの
で、その目的とするところは、少ないハードウェアで、
シーケンシャルな記憶媒体からの読出しと並列的に処理
を行なうことができ、高速で効率の良いマツチング処理
が可能な文字列マツチング装置を提供することにある。
[発明の構成] 比較した結果、不一致が検出されたときに、比較を再開
する文字を効率良く決定するため、以下のようなパター
ンリワインドインデックス記憶手段とパターンアドバン
スインデックス記憶手段と制御部とを備えている。
即ち、パターンリワインドインデックス記憶手段は、前
記比較器での比較結果が不一致であった場合にパターン
文字列のどこまで戻って比較を再開するかを指定するパ
ターンリワインドインデックスを前記パターン文字列の
各文字毎に記憶する。
また、パターンアドバンスインデックス記憶手段は、前
記比較器での比較結果が不一致であった場合に前記文字
列バッファの読出しアドレスを歩進させるかどうかを示
すパターンアドバンスインデックスを前記パターン文字
列の各文字毎に記憶する。
さらに制御部は、前記比較器における比較結果が一致し
た場合には前記文字列バッファ、パターン記憶手段手段
及び前記両インデックス記憶手段の各読出しアドレスを
それぞれ歩進させ、前記比−ンアドバンスインデックス
に基づいて前記文字列バッファの読出しアドレスの歩進
/維持を決定する。
−”(作用) 検索キーとなるべきパターン文字列は、予めパターン記
憶手段に書込まれる。パターン文字列の各文字に対応し
たパターンリワンドインデックスとパターンアドバンス
インデックスは、予め各々のインデックス記憶手段に書
込まれる。人力文字列が文字列バッファにシーケンシャ
ルに人力されると、同時にマツチング処理が行われる。
入力文字列とパターン文字列とを1文字ずつ順次比較器
で比較して、比較結果が一致である場合には次の文字の
対の比較が行われる。パターンの最後の文字までの文字
のミスマツチが起こらず、比較が成功すれば、パターン
がこの文字列を含んでいることが制御部により検出され
マツチングが成功する。
マツチングの途中で不一致が検出されたら、制御部はそ
の文字の位置に対応するパターンリワイ較結果が明らか
な文字については重復して比較を行なわないようにする
ことにより効率の良い比較が行われる。
また、制御部はマツチングが失敗したときにパターンア
ドバンスインデックスに基づいて、入力文字列の読出し
アドレスを必要であれば歩進する。
この歩進は、ミスマツチを起こした文字と次に比較が再
開される文字とが同一であることが分っているときに行
われる。この場合には、入力文字列を更新させないとミ
スマツチが当然に起こってしまうからである。これによ
り、さらに効率の良いマツチングが行われる。
(実施例) 以下、図面を参照して本発明の実施例について詳細に説
明する。
第1図に本発明の第1の実施例の構成を示す。
文字列バッファ1は、外部の図示しないディスク装置な
どの2次記憶装置からシーケンシャルに送られてくる人
力文字列データを一時格納するバッ二2;− る。パターンメモリ3は、マツチングの対象となるパタ
ーンとして与えられるパターン文字列を格納する。パタ
ーンアドレスカウンタ4は、パターンメモリ3に格納さ
れたパターン文字列の読み出し用のアドレスを生成しパ
ターンメモリ3に与える。パターンリワインドインデッ
クス(以下rPRIJと呼ぶ)メモリ5には、次のよう
なPRI(戻り文字数)が格納されている。即ちPRI
は、パターンと入力文字列とが不一致になった時に現在
のパターンメモリ3のアドレス(パターンアドレスカウ
ンタ4に保持されている。)から相対的に何文字分だけ
前に戻ってパターンマツチングを再開したら良いかを示
す文字数であり、パターン文字列の各文字に対応して格
納されている。パターンアドバンスインデックス(以下
rPA IJと呼ぶ)メモリ6は、やはりパターン文字
列のある文字でマツチングが失敗したときに、入力文字
列の読出しアドレスを歩進させても良いか、そのままに
しておくかを、rlJ、rOJで表示した歩進可否情報
(PAI)をパターン文字−一される。つまり上記2つ
のインデックスメモリ5゜6からのデータは、パターン
文字列の各文字の位置に対応して読み出されるので、読
出しアドレス−は同一であり、共通のカウンタを用いる
ことができる。
加算器8は、現在のパターン文字列の読み出しアドレス
からPRIを加算してパターン文字列の新しい読出しア
ドレスを作り出すための加算を行なう為のものである。
加算器9は、現在のインデックスメモリ5,6のアドレ
スにPRIを加算してミスマツチの際にインデックスメ
モリ5.6の新しい読出しアドレスを計算するために用
いられる。比較器10はパターンと文字列の現在対象と
なっている文字を一文字比較するものである。制御部1
1は上述の装置を制御する。出力バッファ12は、マツ
チした文字列が出力として必要であれば、マツチングの
途中の文字列の先頭部分を格納するのに用いる。出力バ
ッファ12のを効データアドレスを保持するのが出力バ
ッファカウンタ13である。出力が文字列そのものでは
なく、助字列と、パターンメモリ3に格納されたキーと
なるパターン文字列とを比較器10で比較して、その結
果が一致であれば制御部11の制御によって入力文字列
及びパターン文字列の各続出し文字列を歩進させ、不一
致である場合にはパターン文字列の比較再開文字と、入
力文字列の比較再開文字とをPRI及びFAIに基づい
て与えるようにしたものである。
例えばパターン文字列としてabcabd、入力文字列
としてababcabcdabcabdacが与えられ
たとすると、このabcabdに対する各インデックス
は、第2図のような値になる。つまり、パターン文字列
には、その先頭から続く文字列abと同一の文字列が4
文字口及び5文字口に含まれているので、これに続く6
文字口の文字dには、先頭から続く文字列abの次の文
字c (3文字口)のアドレスを指定する−3というP
RIが格納され゛る。その他のPRIとしては、先頭の
文字aのアドレスを示す値が設定される。
また、パターン文字列の先頭から続く文字列ab行する
。図中Sは1文字のマツチが成功(5access )
 L、たことを示し、Fは失敗(Failure ) 
したことを示す。1回目は最初の文字aのマツチが成功
するので、インデックスメモリカウンタ7とパターンア
ドレスカウンタ4とバッファアドレスカウンタ2とは制
御部11によりカウントアツプされ、次のbの文字が比
較される。
bもマツチするので、同様にカウントアツプが行われ、
3番目の文字の比較に移る。3番目の文字でミスマツチ
が起こるので、この時にPRIメモリ5が読み出され、
3番目の文字に対応するPRI r−2Jが得られる。
この−2と現在のパターンアドレスカウンタ4の値とは
加算され、新しいパターンアドレスとしてパターンアド
レスカウンタ4にロードされる。インデックスメモリカ
ウンタ7も、現在のインデックスアドレスとPRIとが
加算された値を新しいアドレスとして内部にロードする
。制御部11は、PAIメモリ6の3番目の文字に対応
するPAIが0(歩進ボッ回目のマツチング処理の開始
の時には、パターンアドレスカウンタ4は、パターンメ
モリ3の中の最初の文字のaを指しており、インデック
スメモリカウンタ7も最初のaの文字に対応したインデ
ックスを指していることになる。つまり、ここからの動
作は文字列の3番目の文字とパターン文字列の1番目の
文字からマツチを見ていくことになる。続けて比較を行
なっていくと、abcabと3〜7番目まではマツチす
るが8番目の文字でミスマツチが起こる。この時はパタ
ーン文字列の6番目の文字(d)のところでミスマツチ
が起こったので、対応するPRrは−3となり、FAI
は0(歩進不可)である。従って、パターンアドレスカ
ウンタは3文字分戻され、3文字口のCを指す。インデ
ックスメモリカウンタも対応した場所を指す。つまり、
パターンの3番目の文字から比較を再開すれば良い。
3回目の処理では、比較を進めて行くと9番口の文字列
のdの文字でミスマツチが起こる。この回目の処理では
マツチが全文字にわたって成功するので、このマツチは
成功する。
第4図に文字のマツチが成功したときと失敗したときの
タイミングチャートを示す。マツチか成功しているとき
には、各カウンタにはインクリメントの為のカウントア
ツプパルスが1;す師部11より与えられる。これに対
し、マツチが失敗したときには、インデックスメモリカ
ウンタ7により読み出されているPRIによって求めら
れる新たなアドレスが制御部11より与えられるロード
パルスに従ってパターンアドレスカウンタ2及びインデ
ックスメモリカウンタ7にロードされる。バッファアド
レスカウンタ2のカウントアツプパルスはFAIが1の
ときのみカウントアツプされる。
第5図に第2の実施例を示す。第1の実施例においては
、PRIメモリ5、PAIメモリ6が独立のメモリであ
るとして説明したが、FAIメモリ6は1  bitの
情報を持てば良いので、この2つのメモリは同一のメモ
リのフィールドを割当てて用いることができる。また、
第1の実施例では、PRIメモリ5には、パターンアド
レスカウンタ4とインデックスメモリカランタフの相対
位置を格納していた。従って、ミスマツチ時に両方のカ
ウンタの更新に独立した加算器が必要であったが、ンタ
7にはこの値を直接ロードするようにした。
この時、パターンメモリ3に格納されているパターン文
字列の先頭アドレスAoと、この先頭の文字についての
PRIとの差を相対ペースレジスタ22に予め書き込ん
でおくことにより、パターンアドレスカウンタ4にロー
ドする値を、上記相対ペースレジスタ22に格納された
値とPRI部の内容を加算することで正しく計算できる
つまり、第2の実施例では、第1の実施例のPRIメモ
リ5とPAJメモリ6を同一のパターンインデックスメ
モリ21とし、PRIを同メモリの絶対アドレスとする
ことで加算器9を省き、パターンアドレスカウンタ4の
更新値を計算するために相対ペースレジスタ22を加算
器8に接続したものである。その他の部分の動作は第1
の実施例と同じである。第2の実施例ではPRI部にパ
ターンインデックスメモリ21の絶対アドレスを格納す
るとしたが、その代わりにパターンメモリ3のパターン
の入っている絶対アドレスを格納す、るようにすること
もできる。この場合はPRI部;の出力が直接パターン
アドレスカウンタ4に人の値とPRI部の加算されたも
のになる。この場合の相対ペースレジスタ2の値は先の
場合の符号を変えた値となる。
次に第3の実施例につき説明する。第1、第2の実施例
ではインデックスメモリ21をパターンメモリ3と分け
て置く例を示したが、PRI。
FAIをパターンメモリ3に格納されたパターン文字列
の各文字に対応させた付帯情報としてのインデックスと
すれば、第7図に示すようにパターン文字列と、PRI
と、FAIとを一つのパターン/インデックスメモリ3
1にまとめて格納することもできる。このパターン/イ
ンデックスメモリ31は、第8図に示すように、1つの
レコードが文字部とPRI部とPAI部とで構成される
ことになる。文字の比較は文字部のデータのみを比較器
10(、こ送ることて行ない、ミスマツチ時の次の比較
文字の選択はリワインドインデックス部のデータで行な
い、バッファアドレスカウンタ2を進めるかどうかはア
ドバンスインデックス部のデータを制御部に送りゲート
回路の信号とすること、ドレスを保持するパターン/イ
ンデックスメモリ1アドレスレジスタ32を持つだけで
次の文字を指・′定できる。例えば5番地のdの下でマ
ツチか失敗、I H1゜ −したりすするとPRIが2なので次の比較は2番地の
Cの文字から始めれば良い。
[発明の効果コ 以上説明したように、本発明によれば、簡単なハードウ
ェア構成で、2次記憶等に格納された大量の文字列に対
して、キーとなるパターン文字列をソフトウェアで行な
う場合に比べて極めて高速にサーチすることが可能にな
る。
また、例えばこの装置を2次記憶装置側に付属させる装
置とすれば、ホストとなる計算器の負荷を増やすことな
くデータの読出し時間内にパターン・マツチ処理を完了
させる事が可能になる。
【図面の簡単な説明】
第1図〜第4図は本発明の第1の実施例を示す図で、第
1図は装置の構成を示す図、第2図はパターン文字とP
RIとFAIとを各文字毎に対応して示す図、第3図は
文字列の例のパターンのマ“図で、第5図は装置の構成
を示す図、第6図はパターン文字とPRIとFAIとを
各文字毎に対応はパターン/インデックスメモリの内容
を示す図1・・・文字列バッファ、2・・・バッファア
ドレスカウンタ、3・・・パターンメモリ、4・・パタ
ーンアドレスカウンタ、5・・・パターンリワインドイ
ンデ。 クスメモリ、6・・・パターンアドバンスインデックス
メモリ、7・・・インデックスメモリカウンタ、8.9
・・・加算器、10・・・比較器、11・・・制御部、
12・・・出力バッファ、13・・・出)Jバッファカ
ウンタ、21・・・パターンインデックスメモリ、。 22・・・相対ペースレジスタ、31・・・パターン/
インデックスメモリ、32・・・パターン/インデック
スメモリアドレスレジスタ。 出願人 工業技術院長 飯塚 幸三 人力文字列番号   +  2 3 4 5 6 7 
8 91011  +213115+617第3図 第5図

Claims (2)

    【特許請求の範囲】
  1. (1)入力文字列を格納する文字列バッファと、この文
    字列バッファに読出しアドレスを与えるバッファアドレ
    ス設定手段と、検索キーとなるパターン文字列を保持す
    るパターン記憶手段と、このパターン記憶手段に読出し
    アドレスを与えるパターンアドレス設定手段と、前記文
    字列バッファ及び前記パターン記憶手段からそれぞれ読
    出された文字を比較する比較器と、この比較器での比較
    結果が不一致であった場合のパターン文字列の比較を再
    開する位置を指定するパターンリワインドインデックス
    を前記パターン文字列の各文字毎に記憶したパターンリ
    ワインドインデックス記憶手段と、前記比較器での比較
    結果が不一致であった場合の前記文字列バッファの読出
    しアドレスの歩進可否を示すパターンアドバンスインデ
    ックスを前記パターン文字列の各文字毎に記憶したパタ
    ーンアドバンスインデックス記憶手段と、これら両イン
    デックス記憶手段に読出しアドレスを与えるインデック
    スアドレス設定手段と、前記比較器における比較結果が
    一致である場合には前記バッファアドレス設定手段、パ
    ターンアドレス設定手段及び前記インデックスアドレス
    設定手段に格納された各アドレスをそれぞれ歩進させ、
    前記比較器での比較結果が不一致である場合には前記パ
    ターンリワインドインデックスに応じて別記パターンア
    ドレス設定手段及び前記インデックスアドレス設定手段
    に格納された各アドレスを後退させるとともに前記パタ
    ーンアドバンスインデックスに基づいて前記バッファア
    ドレス設定手段に格納されたアドレスの歩進/維持を決
    定する制御部とを具備したことを特徴とする文字列マッ
    チング装置。
  2. (2)パターンリワインドインデックス記憶手段は、前
    記パターン文字列の先頭から続く1文字以上の文字列と
    同一文字列が当該パターン文字列に含まれている場合に
    、前記先頭から続く文字列の次の文字のアドレスを、前
    記同一文字列に続く文字に対応する位置に記憶させたも
    のであり、前記パターンアドバンスインデックス記憶手
    段は、前記先頭から続く文字列の先頭と前記同一文字列
    の先頭とに対応させて前記バッファアドレスを歩進させ
    る情報が格納されているものであることを特徴とする特
    許請求の範囲第1項記載の文字列マッチング装置。
JP62024752A 1987-02-06 1987-02-06 文字列マツチング装置 Granted JPS63193228A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62024752A JPS63193228A (ja) 1987-02-06 1987-02-06 文字列マツチング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62024752A JPS63193228A (ja) 1987-02-06 1987-02-06 文字列マツチング装置

Publications (2)

Publication Number Publication Date
JPS63193228A true JPS63193228A (ja) 1988-08-10
JPH0542030B2 JPH0542030B2 (ja) 1993-06-25

Family

ID=12146873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62024752A Granted JPS63193228A (ja) 1987-02-06 1987-02-06 文字列マツチング装置

Country Status (1)

Country Link
JP (1) JPS63193228A (ja)

Also Published As

Publication number Publication date
JPH0542030B2 (ja) 1993-06-25

Similar Documents

Publication Publication Date Title
US4053871A (en) Method and system for the iterative and simultaneous comparison of data with a group of reference data items
US4945474A (en) Method for restoring a database after I/O error employing write-ahead logging protocols
US5499367A (en) System for database integrity with multiple logs assigned to client subsets
US4677550A (en) Method of compacting and searching a data index
EP0483424A1 (en) Key hashing in data processors
EP0433269A2 (en) Volume verification method and apparatus
US5398335A (en) Virtually updating data records by assigning the update fractional addresses to maintain an ordinal relationship without renumbering original records
CN116340430A (zh) 一种数据同步校验方法及相关设备
EP0575066A2 (en) Error handling in a state-free system
US7756818B1 (en) Database table recovery system
JPS60105039A (ja) 文字列照合方式
JPS63273961A (ja) 複数バ−ジヨン管理システム
US6978354B1 (en) Method for creating a virtual data copy of a volume being restored
JPS63193228A (ja) 文字列マツチング装置
JPS6365544A (ja) デ−タ削除方式
JP2925042B2 (ja) 情報リンク生成方法
US3271745A (en) Register search and detection system
JP2828354B2 (ja) データベース管理装置
JP2871755B2 (ja) ダイナミック・ハッシュにおけるスプリット制御方法
JP3111498B2 (ja) レコード検索方法及びデータ処理装置
JPS63150745A (ja) 複数パ−ジヨン管理システム
JPH01224831A (ja) 文字列検索装置
Long et al. A leaner, more efficient, available copy protocol
JPH04101272A (ja) データエレメント検索方法
JPH0833812B2 (ja) ソート処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term