JP2880192B2 - 文字列検索方法及び装置 - Google Patents

文字列検索方法及び装置

Info

Publication number
JP2880192B2
JP2880192B2 JP1231567A JP23156789A JP2880192B2 JP 2880192 B2 JP2880192 B2 JP 2880192B2 JP 1231567 A JP1231567 A JP 1231567A JP 23156789 A JP23156789 A JP 23156789A JP 2880192 B2 JP2880192 B2 JP 2880192B2
Authority
JP
Japan
Prior art keywords
state
automaton
character
search
character string
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 - Lifetime
Application number
JP1231567A
Other languages
English (en)
Other versions
JPH0395672A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1231567A priority Critical patent/JP2880192B2/ja
Priority to EP90909360A priority patent/EP0437615B1/en
Priority to PCT/JP1990/000774 priority patent/WO1990016036A1/ja
Priority to DE69032712T priority patent/DE69032712T2/de
Priority to US07/555,483 priority patent/US5168533A/en
Publication of JPH0395672A publication Critical patent/JPH0395672A/ja
Priority to US07/843,162 priority patent/US5469354A/en
Priority to US07/914,334 priority patent/US5220625A/en
Priority to US07/985,795 priority patent/US5519857A/en
Priority to US08/031,700 priority patent/US5454105A/en
Priority to US08/031,625 priority patent/US5471610A/en
Priority to US08/444,842 priority patent/US5748953A/en
Priority to US08/839,407 priority patent/US6094647A/en
Application granted granted Critical
Publication of JP2880192B2 publication Critical patent/JP2880192B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報システム、特に情報検索システムにおけ
る検索方法に係り、被検索文字列中に複数の文字列集合
が存在するか否かを一括して判定するためのものであ
る。データベース、文書ファイリングシステム、および
ワードプロセッサなどにおける検索に利用され得るもの
である。
〔従来の技術〕
近年、文献情報や特許情報などの2次情報(書誌情
報)のみならず、1次情報(本文)をも含む大規模デー
タベース・サービスの重要性が増してきている。従来、
データベースの情報検索では、シソーラスに基づいて統
制されたキーワードや分類コード等の2次情報による検
索が行われてきている。しかし、この方法では数十件か
ら数百件までにしか絞り込めないため、検索者が最終段
階で直接本文を読んで内容を確認しなければならないと
いう効率上の問題がある。また、分類体系自体が年月と
共に変化するため、常にキーワードや分類コードを更新
しなければならないという問題も生じてくる。更に、キ
ーワード付け(インデキシングと言う)には時間がかか
るため新たな文書はバッチ処理によりかなりの量をまと
めて登録する。そのため、検索できる情報は常に一定期
間の送れを持つという問題がある。
これらの問題に対処する一つの方法として、検索者が
自由なキーワードに基づいて文書の本文を直接参照して
内容を検索できる全文検索システムが考えられている。
このような全文検索システムを実現するための文字列
検索装置がいくつか提案されている。その代表的な構成
を第19図に示し、まず、その内容について説明する。
文字列検索装置1において、検索制御手段101は、検
索装置全体の制御と、ホストコンピュータとの通信を行
う。すなわち、ホストコンピュータから送られてくる検
索要求201を受け付け、これを解析し、文字列照合手段2
00と複合条件判別手段103へ検索情報202として送出す
る。また、検索制御手段101は記憶装置制御手段104を制
御して、文字列記憶手段105に格納される文字列データ2
04を文字列照合手段200へ送りこむ。
文字列照合手段200は、入力文字データ204の中に検索
要求に合致するものがあるかどうかを調べ、もし該当す
るものがあれば、文字列を識別する情報205を複合条件
判別手段103へ出力する。複合条件判別手段103は該文字
列識別情報205に基づいて検索要求中に指示された相互
の位置関係などの複合条件が満足するか否かを調べる。
複合条件が満足する場合には、該当する文書へのポイン
タ情報や文書内容のテキストデータを検索結果206とし
てホストコンピュータへ返送する。
上述した文字列検索装置1の要となる文字列照合手段
200における文字列の照合方式としては、有限オートマ
トンを用いて複数の文字列を1回の走査で検索する方法
が知られている。その代表的な方式としては、以下に説
明する方法がある。
(エー.ブイ.エーホ アンド エム.ジェイ.コラ
ッシック:“エフィシェント ストリング マッチン
グ",コミュニケーションズ エー シー エム,第18
巻,第6号,1975年,A.V.Aho and M.J.Corasick:“Effic
ient String Matching",CACM,VOL.18,No.6,1975)。
本文献には2つの文字列照合方法が述べられている。
以下、各々について説明する。
まず、第1の方法(以後、従来方法1と呼ぶ)につい
て第2図を用いて説明する。同図は、文字列データの中
から、ユーザから与えられた検索ターム“インタフェー
ス”を検索するためのオートマトンの状態遷移図であ
る。ここで、円形はオートマトンの状態を、矢印は状態
遷移を表している。各矢印に付記された文字はこれに対
応した状態遷移が起きる入力文字を示す。本図では
“ン”以外および“イ”以外の文字といった否定を表わ
す場合は否定記号“”を付け「{“ン",“イ”}」
と表わしている。矢印403は状態遷移の始まる始点状態
を示している。各円形の内部に記された数値は、同状態
の状態番号を示す。二重円は“インタフェース”を照合
したことを示す終点の状態を表している。本方法の特徴
は入力される可能性のある全ての入力文字に対する状態
遷移をオートマトンで記述している点にある。このため
状態遷移の数が多くなるため、検索タームの数が多くな
るというオートマトンの作成時間が極めて長くなるとい
う問題がある。
以下、同図を用いて本方法の文字列照合動作について
説明する。オートマトンに文字が入力された場合、どの
状態において入力文字の照合を行なうべきかをトークン
に置くことにより明らかにする。すなわち、トークンと
は、オートマトン内で遷移する状態の位置を表わすマー
クである。まず、初期設定としてトークンを始点状態で
ある状態0に置く。この例の場合、入力文字が“イ”で
あるとトークンは状態1へ移動する。もし、ここで
“イ”以外の文字が入ってきた場合はトークンは状態0
に移動する。一方、トークンが状態1にあって入力文字
が“ン”ならば、トークンは状態2に移動する。“イ”
であれば状態1に移動する。“イ”および“ン”以外の
文字であれば状態0へ移動する。次にトークンが状態2
にある場合、入力文字が“タ”ならば、トークンは状態
3に移動する。ここで、もし、“イ”が入力されたとき
は、トークンは状態1へ移動する。更に、状態3にトー
クンがある場合、“フェース”が入力されると、トーク
ンは状態4→状態5→状態6→状態7と移動する。状態
7は2重円で記されており、ここでは“インタフェー
ス”という文字列が照合されたことになる。
本方法では入力される可能性のある全ての入力文字に
対する状態遷移をオートマトンに記述しているため、検
索タームが多くなると状態遷移の数が多くなりオートマ
トンの作成時間が極めて長くなるという問題がある。本
方法を実現するハードウェアについては、特開昭60-105
039、特開昭60-105040に開示されている。
次に、第2の方法(以後、従来方法2と呼ぶ)につい
て説明する。本方法は従来方法1と比べオートマトン作
成時間を短縮するための工夫がされている。従来方式2
では、従来方法1と比べオートマトンの作成時間は3分
の1と大幅に改善されており、詳細について特開昭63-3
11530に述られている。本方法を第3図と第4図を用い
て説明する。第3図は、第2図と同時に“インタフェー
ス”を照合する場合のオートマトンの状態遷移図を示し
たものである。初期設定として、トークンを始点状態で
ある状態0に置く。ここで、入力文字“イ”が入力され
たならばトークンが置かれている状態0で照合を行ない
状態1へ移動する。もし、状態0で“イ”以外の文字が
入ってきた場合はトークンは状態0に移動する。一方、
トークンが状態1にあって入力文字“ン”が入力された
ならばトークンは状態2に移動する。トークンが状態2
にあって“タ”が入力されたならばトークンは状態3に
移動する。ここでもしトークンが状態3にあって同オー
トマトンに記述されていない“フ”以外の文字、例えば
“イ”が入力されたときは、本方式では「フェイル」し
たと言い、第4図のフェイルテーブルを参照することに
なる。フェイルテーブルにはトークンが置かれている状
態番号に対して再照合すべきフェイル先の状態番号が格
納されている。この場合、現在の状態番号3に対応する
フェイル先の値0を得て状態0へトークンを移動する。
そして、ここで該入力文字“イ”について照合すること
によりトークンは状態1へ移動する。このような機能を
フェイル機能と呼んでいる。更に、続けて“ンタフェー
ス”という入力文字列が1文字づつが入ってきた場合、
トークンは状態2→状態3→状態4→状態5→状態6→
状態7と移動する。状態7は2重円で記されており、こ
こでは“インタフェース”という文字列が照合されたこ
とになる。
例えば、検索タームとして“インタフェース”が与え
られた場合、本文中にはユーザが指定した検索タームと
異なる表記(異表記)で記述されることもある。
本文には、“インタフェース”のように“ー”(長音
記号)の代わりに“−”(マイナス記号)を使用したり
(これを長音異表記と呼ぶ)、“インターフェース”の
ように“ー”を付加したり(これを長音の有無と呼
ぶ)、“インタフェイス”のように発音の表記の違いに
より“フェー”を“フェイ”と記述したりする(これを
発音異表記と呼ぶ)。
これらを全て検索するためには、これらの異表記を組
合せた“インタフェース",“インターフェース",“イン
タフェイス",“インターフェイス",“インタ−フェイ
ス",“インタフェ−ス",“インターフェ−ス",“インタ
−フェ−ス",“インタ−フェース”の9語を検索ターム
とする必要がある。
この場合の例について第5図と第6図を用いて説明す
る。第5図は、文字列データの中から、異表記を含む上
記9語を照合する場合のオートマトンの状態遷移図であ
る。検索タームの先頭から比較して遷移文字が異なる場
合は別状態に分岐する。
例えば、“インタフェース”と“インターフェース”
の検索タームの例では、検索タームの前方から比較する
と“インタ”までは同じであるが、その次の文字では
“フ”と“ー”で遷移文字が異なる。このため状態3か
ら遷移文字“フ”で状態22に遷移し、遷移文字“ー”で
状態4へ遷移するといった状態遷移の分岐が起こる。
すなわち、ある状態において遷移文字が異なる場合別
々の遷移先状態を割り付けているため木状のオートマト
ンになる。第6図はこのオートマトンに示されてない文
字が入力された場合の遷移先を示すフェイルテーブルの
説明図である。このように、異表記を含めて照合を行な
おうとすると、検索タームが多くなるため状態数が非常
に増加してしまうという問題が発生する。
また、文字列検索では検索タームにdon′t care文字
を使用することがある。検索タームに固定長のdon′t c
are文字を使用した例を第7図と第8図を用いて説明す
る。第7図は1文字の固定長のdon′t care文字“?"を
含む検索ターム“A?B"を検索する場合のオートマトンの
状態遷移図を表わしている。第8図はこのオートマトン
に示されてない文字が入力された場合の遷移先を示すフ
ェイルテーブルの説明図である。
この例では1バイトの文字コード(JISコードを用い
ている)の場合についてオートマトンを作成している。
“?"は任意の文字や記号との一致を許すことを意味する
文字記号である。従って、don′t care文字“?"による
遷移は本図の状態1を遷移元とする全ての文字コード00
〜FFによる遷移として表わされる。すなわち“A?B"は、
先頭が“A"で間に任意の1文字が入り、末尾が“B"であ
る文字列を検索するという指定になる。
このように簡単な検索条件でも固定長のdon′t care
文字が入るとオートマトンの状態数が非常に増加してし
まうという問題が発生する。
〔発明が解決しようとする課題〕
従来のオートマトンを用いた検索方式では、異表記の
場合、異表記を含む検索タームを全て列挙し、検索ター
ムに展開する。さらに、これらに基づいたオートマトン
を作成する。ここで作成されるオートマトンは木状に記
述されるため非常に多くのオートマトンの状態が必要と
なる。
また、don′t care文字指定検索を行なう場合も、do
n′t care文字の部分が許容する文字コードの全ての組
合せを列挙し、検索タームに展開する。これらに基づき
オートマトンを作成するため、異表記と同様に、非常に
多くのオートマトンの状態が必要となる。
このようにオートマトンの状態数の増加は、オートマ
トン作成時間の増加や、更にはオートマトンを格納する
ための状態遷移テーブルの容量が増加、すなわち、ハー
ドウェアの増大という問題を発生する。
本発明はオートマトンを用いた検索方式において、異
表記やdon′t care文字が指定された検索を行う場合も
オートマトンの遷移を網状にまとめて記述することによ
り、状態数を従来より低減し、オートマトンの作成時間
の短縮をはかると共に、状態遷移テーブルの容量が小さ
くて済むためコンパクトなハードウェアで実現可能な検
索方式を提供することを目的とする。
〔課題を解決するための手段〕
上記目的を達成するために、まず、異表記検索用オー
トマトンにおいて検索ターム中の異表記が存在する部分
文字列の先頭でオートマトンの遷移を分岐し、末尾で分
岐した遷移を集合させることにより状態数の低減を図っ
た。don′t care文字指定検索用オートマトンにおいて
も異表記検索と同様にdon′t care文字が許容する文字
群を異表記と見なし、don′t care文字でオートマトン
の遷移を分岐し、それらの遷移を1ヶ所の状態に集合さ
せることにより状態数の低減を図る。
これらによりオートマトンの作成時間が短く済み、状
態遷移テーブルの許容が小さくできるコンパクトな検索
装置を実現した。
〔作用〕
オートマトンの状態数増加という課題を解決する手段
として採用したオートマトンの作成方法について説明す
る。本方法は従来方法2と以下の点で異なる。すなわ
ち、従来方法2では「フェイル処理」を用いるため、フ
ェイル先状態を計算する必要性から木状に状態遷移を分
岐したオートマトンを作成しなければならないため、状
態数が多くなるのに対して、本方法では「フェイル処
理」が不要で、状態遷移の分岐を抑え、状態遷移をまと
めて遷移先状態を共有することができるため、状態数の
増加が抑えられている(以後、本方法を用いて作成した
オートマトンを集合遷移許容形オートマトンと呼ぶ)。
以下、状態遷移をまとめる方法について説明する。
第9図は本方法を用いて作成したオートマトンの状態
遷移である。
同図のオートマトンは第5図に示したオートマトンと
同様に、“インタフェース”と、その異表記である“イ
ンターフェース",“インタフェイス",“インターフェイ
ス",“インタ−フェイス",“インタフェ−ス",“インタ
ーフェ−ス",“インタ−フェ−ス",“インタ−フェー
ス”を含めた9語の検索タームについて検索するための
ものである。これらを、 (“イン”(“タ”(“ー”“−”)“タ”)(“フェ
イ”“フェ”(“ー”“−”))“ス”) −(式1) という複合語表現形式で表すことができる。ここで
(“ー”“−”)は“ー”と“−”が等価であることを
示しており、(“フェイ”“フェ”(“ー”“−”))
は“フェイ”“フェー”および“フェ−”が等価である
ことを示している。
この複合語表現形式を用いれば、( )内の部分文字
列は等価であるので部分文字列の末尾で遷移を同一遷移
先状態にまとめることが可能である。ただし、他の部分
文字列の遷移の中に含まれてしまう場合、例えば
(“タ”(“ー”“−”)“タ”)の場合は、次の遷移
文字の“フ”の遷移の遷移元状態が“タ”の遷移先状態
である状態3と“ター”および“タ−”の遷移先状態で
ある状態4であるので、これらの2ヶ所を遷移元状態と
する遷移に表わす。更に、これらの遷移の遷移先状態を
状態5とし、遷移にまとめる。
本方法を用いることによりオートマトンの状態数を第
5図のオートマトンに比べ約3分の1に減らすことがで
きる。
〔実施例〕
以下、上記作用を用いた本発明の実施例について説明
する。
異表記検索用のオートマトンについては第9図の集合
許容形オートマトンの状態遷移図を用いた場合の作用に
ついて説明する。以後、集合許容形オートマトンをオー
トマトンと略して説明を行なう。同図のオートマトンは
第5図に示したオートマトンと同様に“インタフェー
ス”の異表記である“インターフェース",“インタフェ
イス",“インターフェイス",“インタ−フェイス",“イ
ンタフェ−ス",“インターフェ−ス",“インタ−フェ−
ス",“インタ−フェース”を含む9語の検索タームを検
索するためのものである。
これらは上記手段を用いて作成したものであり、第5
図のオートマトンと比べ状態数を約3分の1と大幅に減
らすことができている。このオートマトンは上記のコン
カレントステートオートマトン方式により制御される。
以下、その内容を具体的に説明する。
次に、オートマトンの状態遷移制御方法について説明
する。本方法は「フェイル処理」を用いずに状態遷移を
制御しようとするものである。すなわち、「フェイル処
理」を行なう代わりに、複数のトークンを用いることに
よってオートマトンの状態遷移を表わそうとするもので
ある。
これまで述べてきたオートマトン方式では、オートマ
トンの状態遷移図は、初期状態を除いてアクティブな状
態、すなわち、照合途中を示す遷移状態(トークンが置
かれた状態)が唯1個だけという条件のもとに作成され
たものである。その結果、照合途中で入力文字との不一
致が生じた場合には、トークンの動きが不連続になるた
め「フェイル処理」を行なわなければならなくなる。
本方法においては、アクティブな状態が発生する度に
トークンを生成し、照合途中で不一致が生じた場合には
トークンを消滅させるという方法を採ることにより、フ
ェイル処理を不要にしている。従って、入力文字列によ
っては、状態遷移図上に複数のトークンが同時に存在す
ることにもなる。その意味で、本方法をコンカレントス
テートオートマトン方式とも呼ぶことにする。
本方法によれば、「フェイル処理」を用いずに済むた
め、オートマトン作成時においてもフェイル先状態の計
算が不要な文字列検索装置を実現することができる。
まず、始点状態におけるトークン生成方法について説
明する。始点状態では入力文字が入る度に照合を行な
う。遷移文字と照合した場合、新たなトークンを生成
し、このトークンを始点状態から遷移先状態へ移動させ
る。ただし、始点状態から始点状態への状態遷移の場合
には、トークンを生成しない。したがって、始点状態か
ら始点状態への遷移は無効となるため、この遷移を省略
することも可能である。
次に、例えば“インタフェイス”という文字列が1文
字づつ入力された場合についてオートマトンの動作を説
明する。
まず、“イ”が入力されると、始点状態での照合が一
致しトークンT1が生成され、状態1へ移動する。トーク
ンT1が状態1にきたところで“ン”が入力されると、ト
ークンT1は状態2に移動する。また、これと同時に始点
状態でも“ン”による照合が行なわれるが不一致なので
新たなトークンは生成されない。更に状態2では入力文
字“タ”が入力されると、トークンT1は状態3に移動す
る。また、同時に始点状態での照合が不一致なので新た
なトークンは生成されない。次に、続けて“フェ”が入
ってきた場合トークンT1は状態4→状態5→状態6と移
動する。またこの間、始点状態での照合が不一致なので
新たなトークンは生成されない。次に、“イ”が入力さ
れるとトークンT1は状態6から状態7へ移動する。ま
た、始点状態での照合は一致するので新たにトークンT2
が生成され、状態1へ移動する。次に、“ス”が入って
きた場合トークンT1は状態7から状態8へ移動する。ト
ークンT2は状態1での照合が不一致なためここで消滅す
る。また、始点状態での照合が不一致なので新たなトー
クンは生成されない。この時、トークンT1が状態8に達
すると、“インタフェイス”という文字列を検索したこ
とになる。
このように複数のトークンを用いて状態遷移を制御す
ることにより、オートマトンの状態数が約3分の1と少
なくて済む異表記許容検索を実現することができる。
固定長のdon′t care文字を検索タームに指定した固
定長don′t care文字指定検索の処理方法について説明
する。
オートマトンは第10図のものを用いる。本図は第7図
と同様に“A?B"を検索する場合のオートマトンであり、
集合遷移を採用した上記方法を用いることにより状態数
を約150分の1と少なく実現できている。
例えば、“AXB"という文字列が入力された場合の本方
法の動作について説明する。
まず、“A"が入力されると始点状態が照合が一致する
ためトークンT1が新たに生成され、状態1へと移動す
る。次に“X"が入力されると、トークンT1は状態1から
状態2に移動する。また、始点状態での照合が不一致な
ので新たなトークンは生成されない。次に“B"が入力さ
れると、トークンT1は状態2から状態3に移動する。同
時に、始点状態での照合が不一致なので新たなトークン
は生成されない。状態3は2重円で記されており、ここ
では“A?B"が検索されたことになる。
このように複数のトークンを用いて状態遷移を制御す
ることにより、異表記憾容検索と同様に、オートマトン
の状態数が約150分の1と少なくて済む固定長don′t ca
re文字指定検索を実現することができる。
上限距離、下限距離や上下限距離などの文字距離を指
定した距離指定検索の処理方法について述べる。
まず、上限指定の距離指定の実現方法を以下に説明す
る。ここでは“A"と“B"の距離が4文字以内の距離とい
う上限距離指定がされている場合を例にする。上限距離
指定は固定長don′t care文字で表すことができ、この
例では“A"と“B"の距離が4文字以内の距離という上限
距離指定の場合は、“AB",“A?B",“A??B",“A???B",
“A????B"の5つの検索タームで表すことができる。ま
た、これから固定長don′t care文字の場合と同様に第1
1図に示すオートマトンを作成することができる。
このオートマトンの場合も固定長don′t care文字の
場合と同様にトークンを制御することにより、上限指定
の距離指定検索を実現することができる。
次に、下限指定の距離指定の実現方法を以下に説明す
る。ここでは“A"と“B"の距離が2文字以上の距離とい
う下限距離指定がされた場合を例にする。下限距離指定
では上限距離が無限大となるためdon′t care文字で表
わすことができない。つまり、“A"と“B"の距離が2文
字以上の距離という下限距離指定の場合は、固定長do
n′t care文字で表わすと“A??B",“A???B",“A????B",
・・・となり検索ターム数が無限大になるためである。
この問題を解決する方法を第12図のオートマトンで説
明する。
まず、下限距離を固定長don′t care文字で表わした
検索タームでオートマトンを作成する。このオートマト
ンの作成方法は固定長don′t care文字の場合と同様で
ある。ここでは下限距離は2なので“A??B"を検索ター
ムとしてオートマトンを作成する。次に、下限距離だけ
遷移した状態(この例では状態3)を仮の始点とし、こ
の始点状態以降につながる状態についてオートマトンを
作成する。このオートマトンは、全ての入力文字に対し
て遷移を記述する従来方式1を用いて作成できる。この
ようにして、上限距離が無限大の場合でもオートマトン
を作成することができることになる。しかし、この方法
では従来方式1を部分的に適合するためオートマトン作
成時間が増大するという問題点がある。
オートマトンの動作は固定長don′t care文字の場合
と同様である。
次に、下限距離指定を用いた検索タームに可変長do
n′t care文字“*”を指定した検索の方法について説
明する。
可変長don′t care文字“*”は、下限距離に0を指
定した場合の距離指定を用いて実現することができる。
すなわち、“AB*CD"は“AB"と“CD"の距離が0文字以
上の距離という下限距離指定に置き換えることができ
る。この場合のオートマトンは第13図のようになる。こ
のように可変長don′t care文字を指定した検索も下限
距離指定と同様に実現することができる。
オートマトンの動作は固定長don′t care文字の場合
と同様である。
最後に、上下限指定の距離指定の実現方法を以下に説
明する。ここでは“A"と“B"の距離が2文字以上で、か
つ、4文字以下の距離という上下限距離指定を例にす
る。上下限距離指定は固定長don′t care文字で表すこ
とができ、この例の“A"と“B"の距離が2文字以上、4
文字以内の距離という場合には、“A?B",“A??B",“A??
?B",“A????B"の4つの検索タームで表すことができ、
これらから固定長don′t care文字の場合と同様に第14
図に示すオートマトンを作成することができる。
オートマトンの動作は固定長don′t care文字の場合
と同様である。
1文字誤りを許容した検索である1文字誤り許容検索
の処理方法について説明する。
検索タームに“ABCD"を指定した場合の例について説
明する。この例では検索タームとしては誤りなしの場合
として“ABCD"について、1文字削除として“ABC",“AB
D",“ACD",“BCD"について、1文字相違として“A?CD",
“AB?D",“ABC?"について、1文字挿入として“A?BCD",
“AB?CD",“ABC?D",“ABCD?"についてオートマトンを作
成する。これらを複合語表現形式にすると(“AB"
(“C"(“D?"“?D"“?")“?D")((“B"“A"(“?B"
“B?"“?"))“C"“A"(“B"“C"“BC"))“D"“AB
C")と表すことができる。これに基づいて固定長don′t
care文字の場合と同様に第15図に示すオートマトンを
作成することができる。
オートマトンの動作は固定長don′t care文字の場合
と同様である。
1文字入れ替わりを許容した検索である1文字入れ替
わり許容検索の処理方法について説明する。
検索タームに“ABCD"を指定した場合の例について説
明する。この例では検索タームとしては誤りなしの場合
として“ABCD"について、1文字入れ替わりとして“BAC
D",“ACBD",“ABDC"についてオートマトンを作成する。
これらを複合語表現形式にすると(“A"(“BC"“CB")
“BAC")“D"“ABDC")と表すことができる。これに基
づいて固定長don′t care文字の場合と同様に第16図に
示すオートマトンを作成することができる。
オートマトンの動作は固定長don′t care文字の場合
と同様である。
以上のように本発明によれば、少ない状態数で異表記
検索、固定長don′t care文字指定検索、文字距離指定
検長、可変長don′t care文字指定検索、1文字誤り許
容検索、1文字入れ替わり許容検索などの検索機能を実
現するオートマトンを作成することができる。したがっ
て、オートマトンの作成時間も短縮でき、状態遷移テー
ブルもコンパクトにできるためハードウェア量の少ない
文字列検索装置を実現することが可能となる。
以下、上記文字列検索方法を用いた文字列検索装置の
実施例について述べる。
本実施例の構成を第1図に示す。本実施例の構成は、
文字コードと状態番号を入力することにより次状態番号
を出力する状態遷移テーブル220と、状態番号を入力す
ることにより照合したか否かの照合結果IDを出力する照
合結果テーブル260、および、現状態番号や次状態番号
を格納するバッファ280とバッファ281などから成ってい
る。
本実施例を用いたオートマトンの状態遷移動作を下記
に説明する。第1図の稿字列記憶手段105から読み出さ
れた文字列301は1文字づつレジスタ211に格納される。
レジスタ211から出力される文字コード302は、本発明に
よるオートマトンの遷移表が格納されている状態遷移テ
ーブル220にアドレス情報として入力される。状態遷移
テーブル220では現在の状態番号305と文字コード302か
ら次に遷移すべき遷移先状態番号303を出力する。次状
態番号303はレジスタ250に格納された後、セレクタ262
及びマルチプレクサ260を経由しバッファ280またはバッ
ファ281のいずれか選択されている方に格納される。こ
のとき、セレクタ262では、初期状態番号(この例で
は、状態番号0)が格納されているレジスタ251と次状
態番号303をコンパレータ252で比較した結果、同じ値で
あればセレクタ262は次状態番号303を選択する。すなわ
ち、次状態番号303が初期状態番号0でない場合のみマ
ルチプレクサ260を経由しバッファ280またはバッファ28
1のいずれか選択されている方に格納される。バッファ2
80とバッファ281は、それぞれデータの読取り用と書込
み用の2面バッファとして用い、高速処理を実現してい
る。この2つのバッファは1つにまとめ回路規模を小さ
くすることも可能である。ただし、処理速度は低下する
ことになる。バッファ280及びバッファ281には初期値と
して始点状態番号を先頭アドレスに設定しておく。バッ
ファ280及びバッファ281に送られてきた次状態番号303
は始点状態の次のアドレスから格納する。現状態番号30
5はセレクタ261で選択されているバッファ280及びバッ
ファ281のいずれかから逐次読み出され、全て読み出し
たときに読出し終了信号307を発生する。マルチプレク
サ260とセレクタ261は同期しており、選択動作について
はマルチプレクサ260がバッファ280を選択しているとき
はセレクタ261はバッファ281を選択している。また、マ
ルチプレクサ260がバッファ281を選択しているときはセ
レクタ261はバッファ280を選択する。バッファ280及び
バッファ281の選択の切り替えは、セレクタ261が選択し
たバッファ280または281のいずれかの読出し終了信号30
7の発生のタイミングで行われる。状態遷移テーブル220
には第18図に示した状態遷移表を格納する。これは第9
図のオートマトンに対応したものである。レジスタ211
は通常は、レジスタ250と同期して文字列データを取り
込むが、読出し終了信号が発生するまで文字列データを
保持し、現状態番号が全て読み出されるまでの次の入力
を待つことになる。検索結果テーブル260には文字列の
終点となる終点状態に対応して各検索タームを識別する
ための所定のコードが格納されている。第9図のオート
マトンに対応した検索結果テーブル260の内容を第18図
に示す。検索ターム番号が0以外の内容のとき有効な検
索ターム番号が表している。すなわち、状態番号に対応
した検索ターム番号が0以外のとき照合結果として第1
図の複合条件判定手段103へ送られる。以上の動作が第
9図に示したオートマトンを実行する形で、入力文字列
を構成する各文字ごとに繰返し行われることにより検索
処理が実現される。
入力文字列が入力された場合、例えば、“インタフェ
イス”という文字列が入力された場合の本方式の照合動
作について説明する。
まず初期設定として、以下の処理を行なう。
状態遷移テーブル220には第17図に示した状態遷移表
を、また、検索結果テーブルには第18図の検索結果表を
格納する。これらのテーブルは、第9図のオートマトン
に対応したものである。
バッファ280及びバッファ281には初期値として始点状
態番号である0を先頭アドレスに格納する。レジスタ25
0、レジスタ251には初期状態番号である0を格納する。
マルチプレクサ260はバッファ281を選択し、セレクタ26
1はバッファ280を選択する。したがって、次状態番号30
3は始点状態番号である0となる。
次に、これらの初期設定に基づいた照合動作について
説明する。
まず、1文字目の“イ”がレジスタ211に格納され
る。すると、文字コード302と現状態番号305をアドレス
として状態遷移テーブル220より次状態番号1が読み出
され、レジスタ250に格納される。このとき現状態番号3
05は0となっている。
コンパレータ252はレジスタ251に格納されている初期
状態番号である0とレジスタ250に格納されている次状
態番号303である1を比較する。等しくないのでセレク
タ262は次状態番号303を選択する。このことは、状態0
から状態1に遷移文字“イ”による遷移が記述されてい
ることを示している。
状態1における検索結果テーブル260の検索ターム番
号は0であるので照合結果306は出力されない。このこ
とは、状態1に照合結果が格納されていないことを示し
ている。
マルチプレクサ260では、バッファ281が選択されてい
るので、バッファ281に次状態番号である1が、始点状
態番号に続く2つめの次状態番号として格納される。バ
ッファ280から全ての現状態番号が読み取られたので、
終了信号307が発生する。
これによりマルチプレクサ260はバッファ280を選択
し、セレクタ261はバッファ281を選択することになる。
すなわち、バッファ281内の2つの次状態番号が現状態
番号として、次の文字に対する遷移に用いられることに
なる。
これらの動作をオートマトンの状態遷移としてみる
と、まずバッファ280に格納されている現状態番号であ
る状態0において遷移文字“イ”が記述されているかの
照合が行なわれている。次に、遷移が記述されてなけれ
ば次の現状態番号の処理が行なわれ、遷移が記述されて
いる場合、バッファ281に次状態番号が格納され、同時
に照合結果が格納されているかを、照合結果テーブルの
次状態番号で示されるアドレスに有効なタームIDが格納
されているかチェックすることにより調べられている。
この場合では遷移が記述されているので、次状態番号で
ある状態1がバッファ281に格納されており、照合結果
テーブルを調べたところ結果は格納されていないため照
合結果は出力されない。
次に2文字目の“ン”がレジスタ211に読み込まれ
る。すると、文字コード302と現状態番号305をアドレス
とする状態遷移テーブル220より次状態番号である0が
出力され、レジスタ250に格納される。
コンパレータ252はレジスタ251に格納されている初期
状態番号である0とレジスタ250に格納されている次状
態番号である0を比較する。等しいのでセレクタ262で
は次状態番号303は選択されない。このため次状態番号3
03は、バッファ280に格納されない。このことは、状態
0には遷移文字“ン”による遷移が記述されていないこ
とを示している。
本方式ではこのように制御することにより、始点状態
から始点状態への遷移におけるトークンの生成を防いで
いる。
次に、バッファ281より第2の次状態番号1が読み出
され、文字コード302と次状態番号である1をアドレス
として状態遷移テーブル220より次状態番号2が出力さ
れ、レジスタ250に格納される。コンパレータ252はレジ
スタ251に格納されている初期状態番号である0とレジ
スタ250に格納されている次状態番号303である2を比較
する。等しくないのでセレクタ262は次状態番号303を選
択することになる。このことは、状態1から状態2に遷
移文字“ン”による遷移が記述されていることを示して
いる。
状態2における検索結果テーブル260の検索ターム番
号は0であるので照合結果306は出力されない。このこ
とは、状態2に照合結果が格納されていないことを示し
ている。
また、マルチプレクサ260では、バッファ280を選択し
ているので、バッファ280に次状態番号303である2が始
点状態番号に続く2つめの次状態番号として格納され
る。
バッファ281からは全ての現状態番号を読み取られた
ので、終了信号307が発生する。
これによりマルチプレクサ260はバッファ281を選択
し、セレクタ261はバッファ280を選択することになる。
すなわち、バッファ280内の2つの次状態番号が2つの
現状態番号として、次の文字に対する遷移に用いられる
ことになる。
これらの動作をオートマトンの状態遷移としてみる
と、まずバッファ281に格納されている現状態番号であ
る状態0において遷移文字“ン”が記述されているかの
照合を行なっている。この場合記述されてないので次の
現状態番号である状態1について同様に照合を行なう。
状態2への遷移が記述されているので、状態2は次状態
番号としてバッファ280に格納される。また、状態2に
は照合結果が格納されてないので、照合結果は出力され
ていない。
次に3文字目の“タ”も2文字目と同様の照合処理と
なるので説明を簡略する。まず、バッファ280に登録さ
れている。現状態番号である状態0における照合動作を
行なうこの場合記述されていないので次の現状態番号で
ある状態2について同様に照合を行なう。状態3への遷
移が記述されているので、状態3が次状態番号としてバ
ッファ280に格納される。また、状態3には照合結果が
格納されてないので、照合結果は出力されない。
次に4文字目の“フ”も3文字目と同様の照合処理と
なるので説明を簡略する。まず、バッファ281に登録さ
れている、現状態番号である状態0における照合動作を
行なう。この場合記述されてないので次の現状態番号で
ある状態3について同様に照合を行なう。状態4への遷
移が記述されているので、状態4が次状態番号としてバ
ッファ280に格納される。また、状態4には照合結果が
格納されてないので、照合結果は出力されない。
次に5文字目の“ェ”も4文字目と同様の照合処理と
なるので説明を簡略する。まず、バッファ280に登録さ
れている、現状態番号である状態0における照合動作を
行なう。この場合記述されてないので次の現状態番号で
ある状態4について同様に照合を行なう。状態5への遷
移が記述されているので、状態5が次状態番号としてバ
ッファ281に格納される。また、状態5には照合結果が
格納されてないので、照合結果は出力されない。
次に6文字目の“イ”がレジスタ211に読み込まれ
る。このステップではトークンが2つから3つに増加し
ているので詳細に説明する。
文字コード302と次状態番号である0をアドレスとす
る状態遷移テーブル220より次状態番号として1が出力
され、レジスタ250に格納される。コンパレータ252はレ
ジスタ251に格納されている初期状態番号である0とレ
ジスタ250に格納されている次状態番号である1を比較
する。この場合、等しくないのでセレクタ262は次状態
番号303を選択する。状態1における検索結果テーブル
の検索ターム番号は0であるので照合結果306は出力さ
れない。マルチプレクサ260では、バッファ280が選択さ
れているので、バッファ280に次状態番号である1が始
点状態番号に続く2つめの次状態番号として格納され
る。
次に、バッファ281より第2の次状態番号6が読み出
され、文字コード302と次状態番号である6をアドレス
とする状態遷移テーブル220より次状態番号として7が
出力され、レジスタ250に格納される。コンパレータ252
はレジスタ251に格納されている初期状態番号である0
とレジスタ250に格納されている次状態番号である7を
比較する。この場合、等しくないのでセレクタ262は次
状態番号を選択する。状態7における検索結果テーブル
の検索ターム番号は0であるので照合結果306は出力さ
れない。マルチプレクサ260では、バッファ280が選択さ
れているので、バッファ280に次状態番号である7が3
つめの次状態番号として格納される。バッファ281から
は全ての現状態番号が読み取られたので、終了信号307
が発生する。
これによりマルチプレクサ260はバッファ281を選択
し、セレクタ261はバッファ280を選択することになる。
すなわち、バッファ280内の3つの次状態番号が3つの
現状態番号として、次の文字に対する遷移に用いられる
ことになる。
次に7文字目の“ス”の照合処理に入るがレジスタ21
1に読み込まれる。すると、文字コード302と次状態番号
である0をアドレスとする状態遷移テーブル220より次
状態番号として0が出力され、レジスタ250に格納され
る。コンパレータ252はレジスタ251に格納されている初
期状態番号である0とレジスタ250に格納されている次
状態番号である0を比較する。この場合、等しいのでセ
レクタ262では次状態番号303が選択されない。このため
次状態番号は、バッファ281に格納されないことにな
る。
次に、バッファ281より第2の次状態番号である1が
読み出され、文字コード302と次状態番号である0をア
ドレスとする状態遷移テーブル220より次状態番号とし
て0が出力され、レジスタ250に格納される。コンパレ
ータ252はレジスタ251に格納されている初期状態番号で
ある0とレジスタ250に格納されている次状態番号であ
る0を比較する。この場合、等しいのでセレクタ262で
は次状態番号が選択されない。このため次状態番号は、
バッファ281に格納されないことになる。
本実施例では、このように制御することによりトーク
ンの消滅を実現している。
さらにバッファ281より第3の次状態番号である7が
読み出され、文字コード302と次状態番号である7をア
ドレスとする状態遷移テーブル220より次状態番号とし
て8が出力され、レジスタ250に格納される。コンパレ
ータ252はレジスタ251に格納されている初期状態番号で
ある0とレジスタ250に格納されている次状態番号であ
る8を比較する。この場合、等しくないのでセレクタ26
2では次状態番号303が選択される。
状態8における検索結果テーブル260の検索ターム番
号は1であるので検索ターム番号として1が処合結果30
6として出力される。マルチプレクサ260では、バッファ
281が選択されているので、バッファ281に次状態番号で
ある8が始点状態番号に続く2つめの次状態番号として
格納される。
バッファ280からは全ての現状態番号が読み取られた
ので、終了信号307が発生する。
これによりマルチプレクサ260はバッファ280を選択
し、セレクタ261はバッファ281を選択する。すなわち、
2つの次状態番号が2つの現状態番号として、次の文字
に対する遷移に用いられることを示している。
以上のように、トークンを制御することにより“イン
タフェイス”という文字列の検索を実現している。
本実施例によれば、このように複数のトークンを制御
することにより、「フェイル」という概念を必要としな
い文字列検索方式を実現できる。このため、オートマト
ン作成時間を短くすることができ、状態数を少なくでき
るため状態遷移テーブルをコンパクトにできるという利
点がある。
〔発明の効果〕
以上説明したように、本発明によれば、異表記を許容
した検索、検索タームに1文字のdon′t care文字や可
変長don′t care文字に指定した検索、上限指定、下限
指定、上下限指定の可能な文字距離演算を行った検索、
検索タームと1文字違った文字列を検索する1文字誤り
許容検索、および、検索タームと1文字入れ替わった文
字列を検索する1文字入れ替わり検索などの検索機能を
オートマトンの状態数が少なくできるためオートマトン
の作成時間が短くて済み、更に、状態遷移テーブルをコ
ンパクトにできるためハードウェア量の少ない文字列検
索装置を実現することができる。
【図面の簡単な説明】
第1図は本発明を用いた有限オートマトンによる文字列
検索回路の実施例の構成を示すブロック図、第2図,第
3図,第5図,第7図は従来の有限オートマトンによる
文字列検索原理を表した説明図、第4図,第6図,第8
図、はフェイルテーブルの説明図、第9図,第10図,第
11図,第12図,第13図,第14図,第15図,第16図、は本
発明を用いた有限オートマトンによる文字列検索方法の
原理を表した説明図、第17図は本発明を用いた状態遷移
テーブルの説明図を表した説明図、第18図は検索結果テ
ーブルの説明図、第19図は文字列検索機構の説明図を表
している。 101,201……検索制御手段、103……複合条件判定手段、
104……記憶装置制御手段、105……文字列記憶手段、20
0……文字列照合手段、220……状態遷移テーブル、230
……フェイル検出器、260……照合結果テーブル、303…
…次状態番号、305……現状態番号、403……初期状態を
示す矢印。
フロントページの続き (72)発明者 藤澤 浩道 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 藤縄 雅章 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 村上 正治 神奈川県小田原市国府津2880番地 株式 会社日立製作所小田原工場内 (72)発明者 増崎 秀文 神奈川県小田原市国府津2880番地 株式 会社日立製作所小田原工場内 (56)参考文献 特開 昭62−44878(JP,A) 特開 昭63−311530(JP,A) 特開 昭63−187334(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 17/30 JICST科学技術文献ファイル

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】コード表現された文字で構成される被検索
    文字列中に指定された検索対象文字列が存在するか否か
    を判定するオートマトンを用いた文字列検索方法におい
    て、 複数の着目状態の状態番号を保持し、上記状態番号に対
    応する状態について照合処理を行うことを特徴とする文
    字列検索方法。
  2. 【請求項2】特許請求の範囲第1項の文字列検索方法に
    おいて、 上記オートマトンとして1文字誤りを許容するオートマ
    トンを使用することを特徴とする文字列検索方法。
  3. 【請求項3】特許請求の範囲第1項の文字列検索方法に
    おいて、 上記オートマトンとして1文字入れ替わりを許容するオ
    ートマトンを使用することを特徴とする文字列検索方
    法。
  4. 【請求項4】特許請求の範囲第1項の文字列検索方法に
    おいて、 上記オートマトンとして近傍条件を判定するオートマト
    ンを使用することを特徴とする文字列検索方法。
  5. 【請求項5】特許請求の範囲第1項の文字列検索方法に
    おいて、 上記オートマトンとしてドントケア文字を許容するオー
    トマトンを使用することを特徴とする文字列検索方法。
  6. 【請求項6】コード表現された文字で構成される被検索
    文字列中に指定された検索対象文字列が存在するか否か
    を判定するオートマトンを用いた文字列検索装置におい
    て、 複数の着目状態の状態番号を格納する状態番号格納手段
    と、上記状態番号格納手段に格納された上記状態番号を
    参照し、上記参照した状態番号に対応する状態について
    照合処理を行う照合手段とを備えたことを特徴とする文
    字列検索装置。
JP1231567A 1989-06-14 1989-09-08 文字列検索方法及び装置 Expired - Lifetime JP2880192B2 (ja)

Priority Applications (12)

Application Number Priority Date Filing Date Title
JP1231567A JP2880192B2 (ja) 1989-09-08 1989-09-08 文字列検索方法及び装置
EP90909360A EP0437615B1 (en) 1989-06-14 1990-06-14 Hierarchical presearch-type document retrieval method, apparatus therefor, and magnetic disc device for this apparatus
PCT/JP1990/000774 WO1990016036A1 (en) 1989-06-14 1990-06-14 Hierarchical presearch-type document retrieval method, apparatus therefor, and magnetic disc device for this apparatus
DE69032712T DE69032712T2 (de) 1989-06-14 1990-06-14 Hierarchischer vorsuch-typ dokument suchverfahren, vorrichtung dazu, sowie eine magnetische plattenanordnung für diese vorrichtung
US07/555,483 US5168533A (en) 1989-06-14 1990-08-09 Hierarchical presearch type text search method and apparatus and magnetic disk unit used in the apparatus
US07/843,162 US5469354A (en) 1989-06-14 1992-02-28 Document data processing method and apparatus for document retrieval
US07/914,334 US5220625A (en) 1989-06-14 1992-07-17 Information search terminal and system
US07/985,795 US5519857A (en) 1989-06-14 1992-11-30 Hierarchical presearch type text search method and apparatus and magnetic disk unit used in the apparatus
US08/031,700 US5454105A (en) 1989-06-14 1993-03-15 Document information search method and system
US08/031,625 US5471610A (en) 1989-06-14 1993-03-15 Method for character string collation with filtering function and apparatus
US08/444,842 US5748953A (en) 1989-06-14 1995-05-18 Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols
US08/839,407 US6094647A (en) 1989-06-14 1997-04-11 Presearch type document search method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1231567A JP2880192B2 (ja) 1989-09-08 1989-09-08 文字列検索方法及び装置

Publications (2)

Publication Number Publication Date
JPH0395672A JPH0395672A (ja) 1991-04-22
JP2880192B2 true JP2880192B2 (ja) 1999-04-05

Family

ID=16925537

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1231567A Expired - Lifetime JP2880192B2 (ja) 1989-06-14 1989-09-08 文字列検索方法及び装置

Country Status (1)

Country Link
JP (1) JP2880192B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471610A (en) * 1989-06-14 1995-11-28 Hitachi, Ltd. Method for character string collation with filtering function and apparatus
US20110106814A1 (en) * 2008-10-14 2011-05-05 Yohei Okato Search device, search index creating device, and search system
JP5339236B2 (ja) * 2010-03-05 2013-11-13 独立行政法人 国立印刷局 要素列の近似的な照合又は検索及びその方法を実行するためのプログラムを格納した記録媒体
JP6404564B2 (ja) 2013-12-24 2018-10-10 株式会社東芝 デコーダ、デコード方法およびプログラム

Also Published As

Publication number Publication date
JPH0395672A (ja) 1991-04-22

Similar Documents

Publication Publication Date Title
JP2702927B2 (ja) 文字列検索装置
EP0378848A2 (en) Method for use of morphological information to cross reference keywords used for information retrieval
JP2986865B2 (ja) データ検索方法および装置
US6470334B1 (en) Document retrieval apparatus
JP2880192B2 (ja) 文字列検索方法及び装置
JPH06348757A (ja) 文書検索装置および方法
JPH1027183A (ja) データ登録方法および装置
JP2880199B2 (ja) 記号列検索方法および検索装置
JPH0561758A (ja) 情報リンク装置
JP2535629B2 (ja) 検索システムの入力文字列正規化方式
JPH07182333A (ja) 日本語処理装置
JP2825009B2 (ja) 記号列検索方法および装置
JP2002132789A (ja) 文書検索方法
JP3873305B2 (ja) 仮名漢字変換装置および仮名漢字変換方法
JPH0635971A (ja) 文書検索装置
JP3187671B2 (ja) 電子辞書表示装置
JPH02148174A (ja) Ocrによる住所データベース検索装置
JP2838972B2 (ja) 自動索引作成装置
JPH0816617A (ja) 文書検索方法及び装置
JPH04250568A (ja) レコード検索装置
JPH05313971A (ja) リレーショナル・データベースにおけるキーワード管理方式
JPH03127254A (ja) 単語検索装置
JPS61267828A (ja) 情報登録検索装置
JPS63254522A (ja) キ−ワ−ド抽出装置
JPH10269231A (ja) 日英混在文書における文書検索方法

Legal Events

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

Free format text: PAYMENT UNTIL: 20080129

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080129

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100129

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100129

Year of fee payment: 11