JP2003308333A - 繰り返しを含む順序パターンを用いた検索装置および方法 - Google Patents
繰り返しを含む順序パターンを用いた検索装置および方法Info
- Publication number
- JP2003308333A JP2003308333A JP2002112959A JP2002112959A JP2003308333A JP 2003308333 A JP2003308333 A JP 2003308333A JP 2002112959 A JP2002112959 A JP 2002112959A JP 2002112959 A JP2002112959 A JP 2002112959A JP 2003308333 A JP2003308333 A JP 2003308333A
- Authority
- JP
- Japan
- Prior art keywords
- records
- search
- record
- combination
- state transition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (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)
Abstract
り返しを含むパターンを効率良く検索する。 【解決手段】 パターン変換部114は、検索パターン
112をイベント定義121、順序関係122、および
制約123に分解し、順序関係122を決定性有限オー
トマトン(DFA)125に変換する。イベント変換部
113は、データ111の各レコードとイベント定義1
21をイベント記号に変換する。検索処理部115は、
各レコードによるDFA125上での状態遷移が可能か
どうかを調べ、遷移先と履歴情報を状態遷移集合126
に登録する処理を繰り返して、検索パターン112に対
応するパターンを求め、検索結果116として出力す
る。
Description
象として、各データが持つ順序に基づいて繰り返しを含
むパターンを検索する装置および方法に関する。
しパターンを扱うために従来から利用されてきた技術と
して、文字列の出現順序に対する正規表現によるパター
ンマッチングが挙げられる。そこで、このパターンマッ
チングの特徴および利用分野について述べる。
順序に着目して、正規表現によるパターンマッチングが
利用されてきた。まず、文字列検索とパターンマッチン
グの相違について明確にしておく。文字列探索とは、
「文章中からパターンabcを探せ」のように、探索す
べきパターンが完全に確定しているものを言う。一方、
パターンマッチングとは、不確定のパターンを探す操作
のことで、パターン照合とも呼ばれる。パターンマッチ
ングでは、パターンを指定するのに正規表現が用いられ
る。
|b)*aのパターンマッチングの例を示している。こ
こで、(a|b)*は、aまたはbが0回以上繰り返し
出現することを意味している。文字列探索とパターンマ
ッチングは、一見似たように見えるが、異なるカテゴリ
に属する問題で、それぞれに対して別のアルゴリズムを
適用しなければならない。
するには、有限オートマトン(finite automaton)を利
用する。正規表現をオートマトンに変換するには、2段
階のアプローチをとる。まず、正規表現を非決定性有限
オートマトン(non-deterministic finite automaton,
NFA)に変換する。正規表現からNFAへの変換は容
易である。NFA単体でパターンマッチングを行うこと
も可能であるが、得られたNFAを等価である決定性有
限オートマトン(deterministic finite automaton,D
FA)に変換し、DFAを使ってパターンマッチングを
行う方法が多く用いられる。
に、ある状態において入力が決まれば遷移先が1つだけ
に定まるが、NFAでは、非決定性という言葉が示すよ
うに、ある状態において入力に対する遷移先が複数存在
する場合がある。
応するNFAを示している。このNFAにaaaという
文字列を与えた場合を考える。1文字目のaを入力する
と、開始状態0から1に遷移する。2文字目もaである
が、状態1には、文字aに対する遷移先として、状態1
と状態2の2種類の状態がある。結論から言えば、2文
字目のaでは状態1から状態1へと遷移し、3文字目の
aでは状態2に遷移するのが正解なのであるが、2文字
目のaを読み込んだ時点では、どちらへ進めばよいかは
わからない。
ックを利用し、とりあえずどちらかの状態に遷移して処
理を進め、失敗したらもう1つの状態に遷移するという
処理が必要となる。しかし、バックトラックを用いる
と、後戻りのための処理時間がかかる。
Aをそのまま使うのではなく、NFAをさらにDFAに
変換してから、パターンマッチング処理を行う。DFA
の場合には、NFAと違って、状態と入力が決まれば遷
移先が必ず1つだけに決まるので、NFAのようなバッ
クトラックは必要がなく、処理を高速に実行することが
可能になる。
ようなDFAに変換される。ここでは、aという文字に
対してその遷移先は1つだけとなり、NFAに見られた
ような曖昧さはない。したがって、バックトラックは必
要なくなるわけである。もちろん、あらかじめNFAを
DFAに変換するのに時間がかかるが、大量のデータに
対してパターンマッチングを行う場合、バックトラック
がないDFAの高速性により、全体としては十分に処理
が高速化される。
な連結(concatenation)、選択(union)、および繰り
返し(閉包:closure)の3つの基本操作(演算子)に
よって、再帰的に定義される。これらの操作の間には、
普通の数式と同様に、優先順位があり、最も強く結合す
るのが繰り返し“*”であり、次に強く結合するのが連
結であり、最後が選択“|”という順番になる。ただ
し、文字や記号を括弧で囲むことによって、優先順位を
変えることもできる。
た従来の検索処理には、次のような問題がある。文字列
における正規表現と、それによるパターンマッチング
は、あらゆるクラスの文字列に対する検索方法を提供す
る一般的なフレームワークである。しかし、順序を持つ
データは、以下の(1)〜(3)に示すように、データ
の特性が文字列データとは異なるため、正規表現とその
パターンマッチングを適用することができない。 (1)文字列においては、等間隔で隣あった文字しか存
在しないが、順序を持つデータの場合には、ある位置に
複数のイベントが存在する場合がある。例えば、同じ日
に複数回の買い物を行った場合がそれにあたり、「顧客
10001は、3月21日に牛乳とパンの2つの商品を
購入」といった表現が必要となる。しかし、文字列で
は、同じ位置に2つの文字が出現することがないので、
正規表現では同時に発現するイベントを表現できない。 (2)文字列では、値と記号(リテラル)とが等しい。
つまり、文字列として“A”が与えられたとき、“A”
は値でもあり、記号としてのAでもある。しかし、複数
の属性からなるデータでは、「商品としてPCを購入
し、かつ、TVを購入した顧客を‘顧客グループA’と
呼ぶ」というように、複数フィールドの条件の組み合わ
せを1つの記号として扱う必要がある。このような複数
フィールドの条件の組み合わせを、正規表現で表すこと
はできない。 (3)順序を持つデータの場合、「PCを購入してから
TVを購入するまでの日数が3ヵ月以内」というよう
に、順序に間隔の概念が必要となる。しかし、文字列の
正規表現では、間隔を指定することはできない。
技術として、出願人による先願の特願2001−340
817(「順序を考慮したパターンを用いた検索装置お
よび方法」)がある。この先願において処理の対象とな
るデータは、複数のフィールド(属性)を持つレコード
の集合からなるデータである。各レコードは決まった数
のフィールドを持ち、あるレコードのみが異なった数の
フィールドを持つことはないものとする。さらに、デー
タ中には、順序を持ったフィールドが1つ以上含まれて
いるものとする。
といった順序関係をあらかじめ持っているフィールド
か、顧客ID(顧客識別子)フィールドのように、デー
タを並び替えることで順序が生じるものである。また、
日付フィールドと時刻フィールドをあわせて1つの順序
フィールドと考えることができるように、複数のフィー
ルドを複合して順序を持たせる場合もある。
パターンを検索する際に、イベント定義とイベント間定
義によりパターンが指定される。イベント定義とは、1
つあるいは複数のフィールドについて指定した条件に、
一意な名前を付けたものである。1つのフィールドにつ
いて条件を指定する場合は、例えば、「商品としてPC
を購入した顧客を‘顧客グループA’と呼ぶ」というよ
うに定義できる。また、複数のフィールドについて条件
を指定する場合には、例えば、「商品としてPCを購入
し、かつ、CAMERAを購入した顧客を‘顧客グルー
プA’と呼ぶ」というように、複数フィールドの条件の
組み合わせを1つの記号(リテラル)として扱う。
のフィールドについて条件を満たしたレコードに関する
ラベルであると定義する。さらに、正規表現におけるワ
イルドカードのように、何にでもマッチするような条件
を指定することも可能とする。
つ、CAMERAを購入した顧客を‘顧客グループA’
と呼ぶ」で定義されるイベント定義の例を示している。
既に説明したように、複数フィールドの条件の組み合わ
せを文字列の正規表現で表すことは不可能である。
を利用して、イベントとイベントの間にまたがる関係を
記述するものである。イベント間定義においては、同じ
順序に複数のイベントが存在する場合や、順序の間隔が
一定でない場合(任意の間隔で順序が記述される場合)
も考慮される。
入し、かつ、CAMERAを購入した顧客を‘A’と呼
び、商品としてTVを購入し、かつ、VTRを購入した
顧客を‘B’と呼ぶことにすると、「‘A’から‘B’
までの間隔が3来店以内」というようなイベント間定義
が考えられる。また、「‘A’から‘B’までの間隔が
3日以内(‘A’の日付フィールドと‘B’の日付フィ
ールドの差が3日以内)」といった定義も考えられる。
ベントとイベントにまたがる制約を記述することができ
る。例えば、「‘A’における価格が‘B’における価
格よりも大きい」といった定義が可能である。さらに、
イベント定義がどのようなパターンにもマッチするワイ
ルドカードで指定されている場合でも、イベント間定義
によって条件を指定することが可能である。
る。この例においては、イベント‘A’とイベント
‘B’の間隔が3日以内であり、イベント‘A’とイベ
ント‘C’の間隔が5日以内であることが定義されてい
る。
する‘.’を利用してa..bと表記するのは、あくま
でもリテラル‘a’の3文字後に‘b’が出現するとい
う意味であり、1つ以上のフィールドについて条件が指
定されたイベント定義とは異なる。
るということは、検索すべきマッチングパターンがグラ
フ構造で表現されることを意味する。図17の例でも、
イベント定義1とイベント定義2の間にイベント間の制
約が存在し、イベント定義1とイベント定義3の間にイ
ベント間の制約が存在する。
義によりパターンを指定することで、順序を持つレコー
ド群を対象としたパターン指定検索が実現できる。しか
し、パターンに繰り返し指定が含まれていると、検索処
理でバックトラックが必要になる場合がある。以下で
は、図18に示す多次元データ(複数フィールドのデー
タ)を例に用いてこの問題について説明する。
ド識別子であり、各レコードは、購入日、商品、および
価格の3つのフィールドを有するものとする。また、購
入日により順序が定義されており、連続な購入日とは、
カレンダーの通りではなく、次の来店日を意味するもの
と仮定する。検索パターン(イベントパターン)は、例
えば、以下のように与えられる。 イベント定義 Event1:商品=B Event2:商品=C 順序 (Event1+)−Event2 イベント間定義 Event2.購入日<=Event1.購入日+2日 このイベントパターンにおいて、順序は、Event1
が1回以上連続した後に続いてEvent2が発生する
ことを表し、イベント間定義は、Event1の購入日
からEvent2の購入日までの間隔が2日以内である
ことを表している。上述した先願の検索処理では、この
イベントパターンから図19のような問い合わせパター
ンが生成され、データへのポインタDPと問い合わせパ
ターンへのポインタPPの2つを用いて処理が進められ
る。
P=1のときEvent1(商品=B)の1回以上の繰
り返しを指し、PP=2のときEvent2(商品=
C)を指すものとする。この場合、Event1とEv
ent2のうちEvent2の方が出現順序が後である
から、イベント間定義は、PP=2の位置に付加してお
く。
/13、PP=1と設定され、初めに、DP=2001
/01/13のデータについて、PP=1のイベント定
義である商品=Bのパターンに合致するものがあるかど
うかを調べる。この場合、R1のレコードが合致するの
で、ポインタDPがインクリメントされてDP=200
1/01/15となる。PPに関しては、Event1
の繰り返しが続く場合と、Event2の商品=Cでマ
ッチングする場合の両方が発生し得る。このように、2
つ以上の分岐が発生する場合には、選択して実行した1
つの分岐先が失敗すれば、他の分岐先を調べるためのバ
ックトラックが必要となる。
かを調べるには、DP=2001/01/15のデータ
についてPP=1のイベント定義のパターンが合致する
かどうかを調べる。この場合、R5のレコードがPP=
1の条件に合致するので、DP=2001/01/16
となるが、PPについては再びEvent1の繰り返し
を調べるか、Event2を調べるかの分岐が発生す
る。
調べるとして、DP=2001/01/16のデータを
見るとR8のレコードが合致する。すなわち、Even
t1−Event1−Event1のように3回のマッ
チングに成功する。しかし、DP=2001/01/2
0においては、Event1にもEvent2にも合致
するデータが存在していないのでマッチングは成功せ
ず、前の分岐にもどって処理をやり直す必要がある。
ートのような順序を持つ多次元データにおいては、同一
時刻に多数の商品が購買されることが多く、検索処理で
バックトラックが発生すると処理の効率が著しく低下す
る。このため、順序を持つデータをバックトラックなし
で検索する方法が望まれる。
としてイベントの繰り返しを含むパターンを効率良く検
索する装置および方法を提供することである。
置の原理図である。図1の検索装置は、入力手段10
1、変換手段102、検索手段103、および出力手段
104を備え、複数の属性からなるレコードの集合10
5からレコードの組み合わせを検索する。
が特定の値をとることをそれぞれ定義する複数のイベン
トと、属性値の順序に基づいて定義された複数のイベン
トの間の順序関係とを用いて指定された、イベントの繰
り返しを含む検索パターンを入力する。変換手段102
は、検索パターンから順序関係を抽出して、決定性有限
オートマトンに変換する。
から同じ順序にある1つ以上のレコードを読み込み、読
み込まれたレコードにより決定性有限オートマトン上で
状態遷移が可能かどうかを調べ、可能な状態遷移の遷移
先と状態遷移を可能にするレコードを示す付加情報とを
状態遷移集合106に登録する処理を繰り返し、決定性
有限オートマトンの終了状態が遷移先として状態遷移集
合106に登録されたとき、終了状態に到達した状態遷
移の付加情報から検索パターンに対応するレコードの組
み合わせを求める。そして、出力手段104は、得られ
たレコードの組み合わせを検索結果として出力する。
のイベントとイベント間の順序関係により決められる検
索パターンとして、あるイベントの繰り返しを含むよう
な検索パターンを指定することができる。入力された検
索パターンは変換手段102に渡され、変換手段102
により、順序関係の情報が決定性有限オートマトンに変
換される。
を検索対象データとして、同じ順序にある1つ以上のレ
コードを一まとまりとして読み込み、それらのレコード
の各々について、決定性有限オートマトン上で定義され
た状態遷移を起こすイベントに対応するかどうかを調べ
る。そして、あるレコードがそのようなイベントに対応
すれば、その場合の遷移先の状態と付加情報(レコード
の識別情報等)とを状態遷移集合106に登録する。
定性有限オートマトンの開始状態が登録されており、新
たに遷移先の状態が登録されることで、状態遷移集合1
06は複数の状態を保持することになる。
読み込みと、状態遷移集合106に登録された状態から
次の状態への遷移が可能かどうかの判定と、状態遷移集
合106の更新とを繰り返し、決定性有限オートマトン
の終了状態が遷移先として登録されると、開始状態から
終了状態までに至る状態遷移の付加情報から、その状態
遷移を起こしたレコードの組み合わせを特定する。そし
て、出力手段104は、このレコードの組み合わせを検
索パターンに対応する検索結果として出力する。
可能性を調べる際に、遷移先を状態遷移集合106とし
て管理することで、複数のレコードによる可能な遷移先
をすべて登録することができる。したがって、イベント
の繰り返しによる分岐が発生する場合でも、複数の枝の
遷移先を同時に登録しながら効率良く検索処理を進める
ことができ、バックトラックを防止することが可能とな
る。
の制約が含まれている場合は、変換手段102は、その
制約を検索パターンから抽出して検索手段103に渡
し、検索手段103は、状態遷移を可能にするレコード
が制約を満たすかどうかを調べる。これにより、順序関
係と制約の両方を満たすレコードの組み合わせを求める
ことができる。
る図10の入力装置133に対応し、図1の変換手段1
02は、例えば、後述する図2のパターン変換部114
に対応し、図1の検索手段103および出力手段104
は、例えば、図2の検索処理部115に対応する。
明の実施の形態を詳細に説明する。図2は、本実施形態
の検索装置の構成図である。図2の検索装置は、イベン
ト変換部113、パターン変換部114、および検索処
理部115を備え、順序を持つ多次元データ111を検
索対象として、繰り返しを含む検索パターン112に合
致するデータの組み合わせを検索する。
タ111の各レコードがどのイベントに対応するのかを
認識するために設けられ、レコードをイベント記号に変
換する。
パターン112をイベント定義121、順序関係12
2、および順序関係以外のイベント間制約123に分解
し、イベント定義121をイベント変換部113に出力
し、制約123を検索処理部115に出力する。
ト定義121をイベント記号に変換する。この場合、イ
ベント記号としては、正規表現における‘.’のよう
に、何にでもマッチする記号も使用可能とする。制約1
23としては、例えば、イベント間の間隔に関する条件
や、イベント間であるフィールドの値が同じ/異なると
いう条件を設定することが可能である。
122を非決定性有限オートマトン(NFA)124に
変換した後、決定性有限オートマトン(DFA)125
に変換して、検索処理部115に出力する。このような
変換を行う理由は、状態を持つ決定性有限オートマトン
を利用して検索処理を進めることによりバックトラック
を防止することができるからである。
3により変換されたデータを読み込み、DFA125を
利用してデータがイベント定義121に合致するかどう
かを調べて、検索結果116を出力する。ここで、順序
を持つ多次元データ111は、従来の決定性有限オート
マトンでは想定していない検索対象であるため、決定性
有限オートマトンを以下のように拡張する。 (1)あるデータの値が複数のイベントに合致する場合
や同じ順序にある複数のレコードが複数のイベントに合
致する場合があるため、状態遷移の遷移先は複数存在し
状態遷移集合となる。また、遷移するだけでなく、イベ
ント間の関係を調べることができるように、状態遷移集
合にはマッチしたレコードの情報を状態遷移の履歴情報
として付加する。 (2)与えられたレコードが状態遷移可能かどうかに加
えて、そのレコードがイベント間の制約123を満たす
かどうかも調べる。 (3)一度のデータスキャンで状態遷移を完了するため
に、遷移可能かどうかを調べる際に、毎回、開始状態を
状態遷移集合に加え、開始状態からの遷移についても調
べる。
フローチャートである。まず、ユーザは、データ111
を入力し(ステップS1)、検索パターン112を指定
する(ステップS2)。
パターン112を解析してイベント定義部分を抽出し、
イベント変換部113は、抽出されたイベント定義12
1とデータ111をイベント記号に変換する(ステップ
S3)。また、パターン変換部114は、検索パターン
112のうち順序関係を表す部分をDFA125に変換
し(ステップS4)、それ以外のイベント間の関係を制
約123として抽出する(ステップS5)。
で、それがイベント定義121に合致するかどうかを調
べる(ステップS6)。このとき、順序を持つデータに
対して状態遷移を適用するために、従来の状態遷移の仕
組みを付加情報を持つ状態遷移集合に拡張する。そし
て、データがイベント定義121に合致する場合には、
DFA125上で遷移を行って順序関係122の条件を
満たすかどうかを調べ、その条件を満たす場合には、さ
らに、制約123を満たすかどうかを調べる。
読み込み、遷移処理、および制約123の判定を繰り返
すことにより、指定された検索パターン112に合致す
るデータの組み合わせを検索し、検索結果116を出力
する(ステップS7)。
序関係122をDFA125に変換するアルゴリズムに
ついて説明する。この変換は、例えば、以下の文献1で
紹介されている変換理論を用いて容易に実現することが
できる。 文献1:A. V. Aho, J. D. Ullman 共著、土居範久訳、
「コンパイラ」、培風館、pp.84−91、1986 検索パターンとしては、前述した以下のようなパターン
を用い、便宜上、Event1およびEvent2をそ
れぞれaおよびbと表すことにする。 イベント定義 Event1:商品=B Event2:商品=C 順序 (Event1+)−Event2 イベント間定義 Event2.購入日<=Event1.購入日+2日 この場合、Event1とEvent2の順序関係は、
正規表現‘a+b’に置き換えられる。この正規表現か
らは、文献1の87ページに記載されたアルゴリズム
3.2によりNFAを機械的に構成することができる。
以下では、記号‘ε’は何があっても遷移する「ε遷
移」を表すものとする。
り返されるということから、‘aa*’に等価となる。
ここで、‘a*’はaが0回以上繰り返されることを意
味する。そこで、‘a+b’は‘aa*b’へと等価に
変換できる。次に、‘aa*b’を分解してa、a*、
およびbのそれぞれについて状態遷移を定義し、最後に
それらを合併することでNFAを構成することができ
る。
それぞれ以下のように定義することができる。 state0→a→state3 state2→b→state1 ここで、state0およびstate1は、それぞれ
開始状態および終了状態を表している。
状態遷移を定義することができる。図4では、stat
e4からaによってstate4へと遷移している。こ
の状態遷移は、図5に示すように、state4からa
によって新しい状態(state5)に遷移し、sta
te5からε遷移でstate4に遷移することと等価
である。そこで、a*の状態遷移を図5のように構成
し、aおよびbの状態遷移とε遷移で結合することで、
図6に示すようなNFAが得られる。このNFAが表す
状態遷移を書き下すと以下のようになる。 ==== NFA ==== state0:(a.3) state1:(end) state2:(b.1) state3:(ε.4) state4:(ε.2)(a.5) state5:(ε.4) このNFAでは、state4からaによってstat
e2とstate5の両方へと遷移可能であり、遷移先
が一意に決定されないことが明らかである。
1の84ページに記載されたアルゴリズム3.1により
機械的に実施することができる。このアルゴリズムによ
り上述のNFAは以下のようなDFAに変換される。 ==== DFA ==== dfa0:a→1 dfa1:b→3 a→2 dfa2:b→3 a→2 dfa3:(end) DFAの状態(dfa0〜dfa3)とNFAの状態
(state0〜state5)の対応関係は、以下の
通りである。 dfa0 = NFA{state0} dfa1 = NFA{state2,state3,
state4} dfa2 = NFA{state2,state4,
state5} dfa3 = NFA{state1} dfa0は開始状態であり、これはstate0からな
る。dfa0からはaによってdfa1に遷移する。d
fa1はstate2、state3、およびstat
e4からなり、dfa1からはbによってdfa3に遷
移し、aによってdfa2に遷移する。また、dfa3
は終了状態である。このように、DFAでは、各状態か
らa、bによって一意にしか遷移していないことが分か
る。
処理のフローチャートである。検索処理部115は、ま
ず、初期化処理を行って、状態遷移集合を開始状態であ
る{dfa0}に設定し、先頭の順序(開始位置)にあ
るレコード(またはレコード群)を処理対象とする(ス
テップS11)。
態遷移集合に登録されている状態から、読み込まれたレ
コードにより遷移可能かどうかを調べる(ステップS1
2)。このとき、同じ順序にある複数のレコードはまと
めて扱う。例えば、図18に示したように2001/0
1/15の日付に3つのレコードがあれば、それらのレ
コードについて状態遷移集合からDFA125上で遷移
可能かどうかを調べる。
に、そのレコードが制約123の条件を満たしているか
どうかを調べ(ステップS13)、制約123を満たす
場合に新しい遷移先を状態遷移集合に追加する(ステッ
プS14)。また、状態遷移集合に登録されている状態
のうち遷移可能でないものについては、状態遷移集合か
ら削除する。ただし、dfa0は削除せずに残してお
き、毎回、開始状態からの遷移について調べることにす
る。これにより、検索対象のデータを一度スキャンする
だけですべての遷移処理を行うことが可能となる。
ったかどうかを判定し(ステップS15)、終了状態に
なっていなければ、データの末尾(最後の順序)に到達
したかどうかを判定する(ステップS17)。また、終
了状態になっていれば、結果を登録して(ステップS1
6)、ステップS17の判定を行う。
順序のレコードを処理対象としてステップS12以降の
処理を繰り返す。そして、ステップS17においてデー
タの末尾に到達すれば処理を終了する。
義とイベント間定義によって指定された順序パターンに
ついて、正規表現的な検索処理を効率良く行うことがで
きる。
繰り返しでは、あるイベントが連続して発生することを
想定しているが、実際には、イベントが連続していなく
ても繰り返し発生するような検索パターンを指定したい
場合もある。このような検索パターンについても、イベ
ントが連続して発生する場合と同様の表現を用いて指定
することで、これまで述べてきた検索処理を適用するこ
とができる。
も繰り返し発生することを、‘(Event1.*)
+’と表すことにする。この場合、Event1の後の
‘.’は何にでもマッチするので、‘.’が0個以上出
現することにより、Event1が連続する場合と連続
しなくても繰り返し発生する場合のすべてを網羅するこ
とができる。
に合致する記号として扱うことで、‘.’を含む順序関
係から、前述したアルゴリズムによりNFAおよびDF
Aを構成することができる。この場合、イベント変換部
113は、‘.’をANYに合致するイベント記号に変
換し、検索処理部115は、ANYにはどのようなレコ
ードでもマッチするものとして検索処理を行う。
した検索パターンが指定された場合の検索処理について
説明する。検索装置は、まず、指定された検索パターン
を、Event1が商品=Bを表し、Event2が商
品=Cを表すことを識別できるように登録しておく。こ
れにより、読み込まれたレコードがどのようなイベント
(またはイベント群)に合致しているかを判断すること
ができる。順序を持つ多次元データを検索対象とする場
合、文字列のパターンマッチングとは異なり、あらかじ
めデータのドメイン(アルファベットなら26文字)を
知ることは一般的にはできない。
の順序関係を表すDFAを生成し、開始位置=2001
/01/13、初期状態遷移集合={dfa0}とし
て、検索処理を開始する。この場合、イベント間の制約
はEvent2.購入日<=Event1.購入日+2
日であるので、終了状態のdfa3に到達しない限り制
約について調べる必要はない。
コードが処理対象となり、R1についてはEvent1
に合致し、R2についてはEvent2に合致すること
が分かる。一方、DFA上においては、{dfa0}か
らaすなわちEvent1によって{dfa1}に遷移
可能であることが分かる。そこで、dfa0→a→df
a1の遷移における遷移先dfa1と、履歴情報(付加
情報)としてのレコード識別子(RID)およびイベン
ト識別子を状態遷移集合に登録する。これにより、状態
遷移集合は以下のようになる。 dfa0 dfa1:レコードR1 イベントa なお、この例ではレコードとイベントを履歴情報として
登録しているが、該当するレコードとイベントが一意に
識別できるのであれば、他の情報を登録しても構わな
い。遷移を見つけたら制約について調べることになって
いるが、a単独ではイベント間の制約を調べる必要がな
いので、この処理をスキップする。
める。これにより、R4、R5、およびR6の3つのレ
コードが処理対象となり、R5がEvent1に合致
し、R6がEvent2に合致する。状態遷移集合{d
fa0,dfa1}からの遷移を調べると、dfa0に
ついては、R5によりdfa0→a→dfa1と遷移可
能である。また、dfa1については、R5によりdf
a1→a→dfa2と遷移可能であり、R6によりdf
a1→b→dfa3と遷移可能である。
2、およびdfa3について、履歴情報を付加して一時
的に状態遷移集合に登録する。このとき、新たな遷移先
がない状態(元の集合に含まれていた状態)は状態遷移
集合から削除するが、dfa0については必ず残してお
く。これにより、状態遷移集合は以下のようになる。 dfa0 dfa1:レコードR5 イベントa dfa2:レコードR1 イベントa レコードR5
イベントa dfa3:レコードR1 イベントa レコードR6
イベントb ここで、制約が評価可能なdfa3に到達したイベント
aおよびbについて、制約が満たされるかどうかを調べ
る。この場合、R1の購入日=2001/01/13で
あり、R6の購入日=2001/01/16である。し
たがって、R5の購入日とR6の購入日の間には3日の
間隔があり、上述の制約を満たさないので、dfa3を
状態遷移集合から削除する。これにより、状態遷移集合
は以下のようになる。 dfa0 dfa1:レコードR5 イベントa dfa2:レコードR1 イベントa レコードR5
イベントa 次に、順序を2001/01/16に進める。これによ
り、R7、R8、およびR9の3つのレコードが処理対
象となり、R8がEvent1に合致し、R9がEve
nt2に合致する。このとき、状態遷移集合{dfa
0,dfa1,dfa2}からは、R8およびR9によ
り以下のような遷移が可能である。 dfa0→a→dfa1(R8) dfa1→a→dfa2(R8) dfa1→b→dfa3(R9) dfa2→b→dfa3(R9) そこで、これらの遷移先について、履歴情報を付加して
状態遷移集合に一時的に登録する。このとき、dfa0
以外で元の集合に含まれていた状態は、状態遷移集合か
ら削除する。これにより、状態遷移集合は以下のように
なる。 dfa0 dfa1:レコードR8 イベントa dfa2:レコードR5 イベントa レコードR8 イベントa dfa3:レコードR5 イベントa レコードR9 イベントb (1) dfa3:レコードR1 イベントa レコードR5 イベントa (2) レコードR9 イベントb ここで、制約が評価可能なdfa3に到達した遷移
(1)および(2)について、制約が満たされるかどう
かを調べる。(1)については、R5の購入日=200
1/01/15であり、R9の購入日=2001/01
/16であるから、制約を満たしている。したがって、
(1)を検索結果として登録し、状態遷移集合から削除
する。
1/01/13であり、R9の購入日=2001/01
/16であるから、これらの購入日の間には3日の間隔
があり、制約を満たさない。したがって、(2)を状態
遷移集合から削除する。これにより、状態遷移集合は以
下のようになる。 dfa0 dfa1:レコードR8 イベントa dfa2:レコードR5 イベントa レコードR8
イベントa 最後に、開始位置を2001/01/20に進める。こ
れにより、R10、R11、およびR12の3つのレコ
ードが処理対象となるが、イベント定義に合致するもの
がないため、状態遷移集合{dfa0,dfa1,df
a2}から遷移することができない。したがって、状態
遷移集合からdfa1およびdfa2を削除する。
了したので処理を終了する。こうして、以下のような順
序パターンが検索結果として出力される。 レコードR5 イベントa レコードR9 イベントb 次に、本実施形態の検索装置の付加的な機能について説
明する。検索処理部115は、通常、データの末尾まで
検索してから結果を出力するが、データが巨大な場合に
は、結果が返ってくるまでのレスポンスが遅くなる。そ
こで、検索パターンに合致するパターンが見つかるたび
に、そのパターンを構成するレコード群を出力すること
も可能とする。これにより、データが巨大な場合におい
ても結果出力までのレスポンスを向上させることができ
る。
グの指定方法としては、様々なものが考えられる。正規
表現におけるパターンマッチングでは、与えられた文字
列パターンにマッチする最も長い文字列を返す「最長マ
ッチ」が基本である。しかし、Perl(Practical Ex
traction and Report Language)処理系では、与えられ
た文字パターンにマッチする最も短い文字列を返す「最
短マッチ」を指定することができる。
チングにおいては、正規表現で用いられるマッチング指
定を含む以下のようなマッチング指定が可能である。同
時に複数のパターンマッチングが指定された場合は、検
索処理部115は、該当するパターンを列挙して出力す
る。 (1)最長マッチ:与えられた検索パターンにマッチす
るパターンの中でイベント間の間隔が最長のものを返
す。 (2)最短マッチ:与えられた検索パターンにマッチす
るパターンの中でイベント間の間隔が最短のものを返
す。 (3)最初マッチ:与えられた検索パターンにマッチす
る最初のパターンを返す。 (4)全部マッチ:与えられた検索パターンにマッチす
るすべてのパターンを返す。 (5)データの末尾から逆向きの最長マッチ:与えられ
た検索パターンに逆向きにマッチするパターンの中でイ
ベント間の間隔が最長のものを返す。 (6)データの末尾から逆向きの最短マッチ:与えられ
た検索パターンに逆向きにマッチするパターンの中でイ
ベント間の間隔が最短のものを返す。
果の出力フォーマットをユーザが指定することも可能で
ある。この場合、検索処理部115は、検索されたパタ
ーンに含まれるレコード群の情報を、指定されたフォー
マットにコンパイルして出力する。
Vを購入したことを表す検索パターンに対して、“顧客
ID,PCの購入日,TVの購入日,PCとTVの購入
日の間隔(TVの購入日−PCの購入日)”のように、
特定のフィールドの値を用いた演算をユーザが指定す
る。検索処理部115は、与えられたデータの中から対
応するパターンを発見し、そのパターンからPCとTV
の購入日を抽出して出力するとともに、PCとTVの購
入日の間隔を計算して出力する。
ンを対象として、レコード群の集約演算(aggregate fu
nction)を実行し、演算結果を出力することも可能であ
る。集約演算としては、最小値(MIN)、最大値(M
AX)、平均(AVG)、総和(SUM)といった一般
的な関数が用いられる。これらの集約演算を処理する際
には、1つ1つのパターンを発見したら、それらをバッ
ファに保存しておき、処理の区切りがついたところで、
保存されたパターンすべてを対象として演算を実行す
る。
Vを購入したことを表す検索パターンに対して、“顧客
ID,PCの購入日,TVの購入日,AVG(PCとT
Vの価格)”のように指定することができる。
ーンが見つからない場合には、なんらかの形でユーザに
その旨を通知する必要がある。例えば、マッチするパタ
ーンがないことを示すレコードをあらかじめ用意してお
き、検索結果としてNULLが出力された場合にそのレ
コードを用いてメッセージを画面上に表示することで、
ユーザにこれを通知することができる。
の集合がデータとして与えられた際に、レコードのグル
ープバイ(グループ化)を行って、処理を高速化するこ
ともできる。このとき、どのフィールドでグループ化
し、各グループのレコード群をどのフィールドで整列
(ソート)するかを指定して、あらかじめレコードを並
べ替えておく。グループ化に用いるフィールドとして
は、複数のフィールドを指定することができる。
して、顧客IDフィールドでグループ化し、各グループ
のレコードを購入日フィールドで整列するものとする。
この場合、グループ化と整列により、検索対象データは
図9のように並べ替えられる。顧客IDが110001
001の顧客は、2001/01/13に1回目の来店
を行い、商品AとNの2点を購入した。また、同じ顧客
が2001/01/28に2回目の来店を行い、別の商
品Bを購入している。
とすることで、検索処理部115は、各グループについ
て整列されたレコードを順番に取り出すだけで、マッチ
ングを行うことができる。したがって、データがメモリ
上に乗り切らない場合でも処理を高速に行うことができ
る。
は、簡単のため、Event1とEvent2の2つの
イベントのみが用いられている。また、イベント定義と
イベント間定義においては1つの条件のみが用いられて
いる。しかし、実際には、検索パターンをより多くの数
のイベントによって指定することが可能であり、イベン
ト定義およびイベント間定義においても、より多くの条
件を指定することが可能である。
10に示すような情報処理装置(コンピュータ)を用い
て構成される。図10の情報処理装置は、CPU(中央
処理装置)131、メモリ132、入力装置133、出
力装置134、外部記憶装置135、媒体駆動装置13
6、およびネットワーク接続装置137を備え、それら
はバス138により互いに接続されている。
nly memory)、RAM(randomaccess memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU131は、メモリ132を利用してプログラムを
実行することにより、必要な処理を行う。
パターン変換部114、および検索処理部115は、プ
ログラムとしてメモリ132に格納され、図2の制約1
23、DFA125、および状態遷移集合126の情報
は、データとしてメモリ132に格納される。検索処理
部115は、処理対象のデータを外部記憶装置135か
らメモリ132上に読み込み、制約123およびDFA
125を参照しながら状態遷移集合126を更新する処
理を繰り返す。
ポインティングデバイス、タッチパネル等であり、ユー
ザからの指示や情報の入力に用いられる。出力装置13
4は、例えば、ディスプレイ、プリンタ、スピーカ等で
あり、ユーザへの問い合わせや検索結果の出力に用いら
れる。
スク装置、光ディスク装置、光磁気ディスク装置、テー
プ装置等である。情報処理装置は、この外部記憶装置1
35に、上述のプログラムとデータを保存しておき、必
要に応じて、それらをメモリ132にロードして使用す
る。
9を駆動し、その記録内容にアクセスする。可搬記録媒
体139としては、メモリカード、フレキシブルディス
ク、CD−ROM(compact disk read only memory
)、光ディスク、光磁気ディスク等、任意のコンピュ
ータ読み取り可能な記録媒体が用いられる。ユーザは、
この可搬記録媒体139に上述のプログラムとデータを
格納しておき、必要に応じて、それらをメモリ132に
ロードして使用する。
(local area network)やインターネット等の任意の通
信ネットワークに接続され、通信に伴うデータ変換を行
う。情報処理装置は、上述のプログラムとデータをネッ
トワーク接続装置137を介して他の装置から受け取
り、必要に応じて、それらをメモリ132にロードして
使用する。
ラムとデータを供給することのできるコンピュータ読み
取り可能な記録媒体を示している。可搬記録媒体139
やサーバ140のデータベース141に保存されたプロ
グラムとデータは、メモリ132にロードされる。この
とき、サーバ140は、プログラムとデータを搬送する
搬送信号を生成し、ネットワーク上の任意の伝送媒体を
介して情報処理装置に送信する。そして、CPU131
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。 (付記1) 複数の属性からなるレコードの集合からレ
コードの組み合わせを検索する検索装置であって、レコ
ード内の所定属性が特定の値をとることをそれぞれ定義
する複数のイベントと、属性値の順序に基づいて定義さ
れた該複数のイベントの間の順序関係とを用いて指定さ
れた、イベントの繰り返しを含む検索パターンを入力す
る入力手段と、前記検索パターンから前記順序関係を抽
出して、決定性有限オートマトンに変換する変換手段
と、前記レコードの集合から同じ順序にある1つ以上の
レコードを読み込み、読み込まれたレコードにより前記
決定性有限オートマトン上で状態遷移が可能かどうかを
調べ、可能な状態遷移の遷移先と状態遷移を可能にする
レコードを示す付加情報とを状態遷移集合に登録する処
理を繰り返し、該決定性有限オートマトンの終了状態が
遷移先として該状態遷移集合に登録されたとき、該終了
状態に到達した状態遷移の付加情報から前記検索パター
ンに対応するレコードの組み合わせを求める検索手段
と、得られたレコードの組み合わせを検索結果として出
力する出力手段とを備えることを特徴とする検索装置。 (付記2) 複数の属性からなるレコードの集合からレ
コードの組み合わせを検索するコンピュータのためのプ
ログラムであって、レコード内の所定属性が特定の値を
とることをそれぞれ定義する複数のイベントと、属性値
の順序に基づいて定義された該複数のイベントの間の順
序関係とを用いて指定された、イベントの繰り返しを含
む検索パターンから、該順序関係を抽出して決定性有限
オートマトンに変換し、前記レコードの集合から同じ順
序にある1つ以上のレコードをメモリ上に読み込み、読
み込まれたレコードにより前記決定性有限オートマトン
上で状態遷移が可能かどうかを調べ、可能な状態遷移の
遷移先と状態遷移を可能にするレコードを示す付加情報
とを状態遷移集合に登録する処理を繰り返し、前記決定
性有限オートマトンの終了状態が遷移先として前記状態
遷移集合に登録されたとき、該終了状態に到達した状態
遷移の付加情報から前記検索パターンに対応するレコー
ドの組み合わせを求め、得られたレコードの組み合わせ
を検索結果として出力する処理を前記コンピュータに実
行させることを特徴とするプログラム。 (付記3) 前記検索パターンから前記順序関係以外の
イベント間の制約を抽出し、前記状態遷移を可能にする
レコードが該制約を満たすかどうかを調べる処理を、前
記コンピュータにさらに実行させることを特徴とする付
記2記載のプログラム。 (付記4) 前記コンピュータは、前記検索パターンと
して、連続して発生しないイベントの繰り返しを含む検
索パターンを指定することを特徴とする付記2記載のプ
ログラム。 (付記5) 前記コンピュータは、前記検索パターンに
対応するレコードの組み合わせが見つかるたびに、見つ
かったレコードの組み合わせを出力することを特徴とす
る付記2記載のプログラム。 (付記6) 前記コンピュータは、前記検索パターンに
対応するレコードの組み合わせを求める処理において、
前記検索パターンにマッチするレコードの組み合わせの
中でイベント間の間隔が最長の組み合わせを返す最長マ
ッチと、該検索パターンにマッチするレコードの組み合
わせの中でイベント間の間隔が最短の組み合わせを返す
最短マッチと、該検索パターンにマッチする最初のレコ
ードの組み合わせを返す最初マッチと、該検索パターン
にマッチするすべてのレコードの組み合わせを返す全部
マッチのうちの1つの方法でパターンマッチングを行う
ことを特徴とする付記2記載のプログラム。 (付記7) 前記コンピュータは、前記検索パターンに
対応するレコードの組み合わせの情報を、指定されたフ
ォーマットにコンパイルして出力することを特徴とする
付記2記載のプログラム。 (付記8) 前記検索パターンに対応するレコードの組
み合わせに関する集約演算を行って演算結果を出力する
処理を、前記コンピュータにさらに実行させることを特
徴とする付記2記載のプログラム。 (付記9) 前記コンピュータは、指定された属性の値
に基づいて前記レコードの集合を整列し、整列したレコ
ードの集合を検索することを特徴とする付記2記載のプ
ログラム。 (付記10) 前記コンピュータは、指定された属性の
値に基づいて前記レコードの集合をグループ化し、各グ
ループ内のレコードを整列することを特徴とする付記9
記載のプログラム。 (付記11) 複数の属性からなるレコードの集合から
レコードの組み合わせを検索するコンピュータのための
プログラムを記録した記録媒体であって、該プログラム
は、レコード内の所定属性が特定の値をとることをそれ
ぞれ定義する複数のイベントと、属性値の順序に基づい
て定義された該複数のイベントの間の順序関係とを用い
て指定された、イベントの繰り返しを含む検索パターン
から、該順序関係を抽出して決定性有限オートマトンに
変換し、前記レコードの集合から同じ順序にある1つ以
上のレコードをメモリ上に読み込み、読み込まれたレコ
ードにより前記決定性有限オートマトン上で状態遷移が
可能かどうかを調べ、可能な状態遷移の遷移先と状態遷
移を可能にするレコードを示す付加情報とを状態遷移集
合に登録する処理を繰り返し、前記決定性有限オートマ
トンの終了状態が遷移先として前記状態遷移集合に登録
されたとき、該終了状態に到達した状態遷移の付加情報
から前記検索パターンに対応するレコードの組み合わせ
を求め、得られたレコードの組み合わせを検索結果とし
て出力する処理を前記コンピュータに実行させることを
特徴とするコンピュータ読み取り可能な記録媒体。 (付記12) 複数の属性からなるレコードの集合から
レコードの組み合わせを検索するコンピュータにプログ
ラムを搬送する搬送信号であって、該プログラムは、レ
コード内の所定属性が特定の値をとることをそれぞれ定
義する複数のイベントと、属性値の順序に基づいて定義
された該複数のイベントの間の順序関係とを用いて指定
された、イベントの繰り返しを含む検索パターンから、
該順序関係を抽出して決定性有限オートマトンに変換
し、前記レコードの集合から同じ順序にある1つ以上の
レコードをメモリ上に読み込み、読み込まれたレコード
により前記決定性有限オートマトン上で状態遷移が可能
かどうかを調べ、可能な状態遷移の遷移先と状態遷移を
可能にするレコードを示す付加情報とを状態遷移集合に
登録する処理を繰り返し、前記決定性有限オートマトン
の終了状態が遷移先として前記状態遷移集合に登録され
たとき、該終了状態に到達した状態遷移の付加情報から
前記検索パターンに対応するレコードの組み合わせを求
め、得られたレコードの組み合わせを検索結果として出
力する処理を前記コンピュータに実行させることを特徴
とする搬送信号。 (付記13) 複数の属性からなるレコードの集合から
レコードの組み合わせを検索する検索方法であって、コ
ンピュータが、レコード内の所定属性が特定の値をとる
ことをそれぞれ定義する複数のイベントと、属性値の順
序に基づいて定義された該複数のイベントの間の順序関
係とを用いて指定された、イベントの繰り返しを含む検
索パターンから、該順序関係を抽出して決定性有限オー
トマトンに変換し、前記コンピュータが、前記レコード
の集合から同じ順序にある1つ以上のレコードをメモリ
上に読み込み、読み込まれたレコードにより前記決定性
有限オートマトン上で状態遷移が可能かどうかを調べ、
可能な状態遷移の遷移先と状態遷移を可能にするレコー
ドを示す付加情報とを状態遷移集合に登録する処理を繰
り返し、前記コンピュータが、前記決定性有限オートマ
トンの終了状態が遷移先として前記状態遷移集合に登録
されたとき、該終了状態に到達した状態遷移の付加情報
から前記検索パターンに対応するレコードの組み合わせ
を求め、前記コンピュータが、得られたレコードの組み
合わせを検索結果として出力することを特徴とする検索
方法。
象としてイベントの繰り返しを含むパターンを効率良く
検索することができる。データについては一度のスキャ
ンのみで検索可能であるため、コンピュータの主記憶ス
ペースが限られている場合においても高速な検索処理を
行うことができる。また、本発明は、パターンの定義を
変えるだけで様々な種類の検索に対応することができ、
実用的に極めて有用である。
である。
Claims (10)
- 【請求項1】 複数の属性からなるレコードの集合から
レコードの組み合わせを検索する検索装置であって、 レコード内の所定属性が特定の値をとることをそれぞれ
定義する複数のイベントと、属性値の順序に基づいて定
義された該複数のイベントの間の順序関係とを用いて指
定された、イベントの繰り返しを含む検索パターンを入
力する入力手段と、 前記検索パターンから前記順序関係を抽出して、決定性
有限オートマトンに変換する変換手段と、 前記レコードの集合から同じ順序にある1つ以上のレコ
ードを読み込み、読み込まれたレコードにより前記決定
性有限オートマトン上で状態遷移が可能かどうかを調
べ、可能な状態遷移の遷移先と状態遷移を可能にするレ
コードを示す付加情報とを状態遷移集合に登録する処理
を繰り返し、該決定性有限オートマトンの終了状態が遷
移先として該状態遷移集合に登録されたとき、該終了状
態に到達した状態遷移の付加情報から前記検索パターン
に対応するレコードの組み合わせを求める検索手段と、 得られたレコードの組み合わせを検索結果として出力す
る出力手段とを備えることを特徴とする検索装置。 - 【請求項2】 複数の属性からなるレコードの集合から
レコードの組み合わせを検索するコンピュータのための
プログラムであって、 レコード内の所定属性が特定の値をとることをそれぞれ
定義する複数のイベントと、属性値の順序に基づいて定
義された該複数のイベントの間の順序関係とを用いて指
定された、イベントの繰り返しを含む検索パターンか
ら、該順序関係を抽出して決定性有限オートマトンに変
換し、 前記レコードの集合から同じ順序にある1つ以上のレコ
ードをメモリ上に読み込み、読み込まれたレコードによ
り前記決定性有限オートマトン上で状態遷移が可能かど
うかを調べ、可能な状態遷移の遷移先と状態遷移を可能
にするレコードを示す付加情報とを状態遷移集合に登録
する処理を繰り返し、 前記決定性有限オートマトンの終了状態が遷移先として
前記状態遷移集合に登録されたとき、該終了状態に到達
した状態遷移の付加情報から前記検索パターンに対応す
るレコードの組み合わせを求め、 得られたレコードの組み合わせを検索結果として出力す
る処理を前記コンピュータに実行させることを特徴とす
るプログラム。 - 【請求項3】 前記検索パターンから前記順序関係以外
のイベント間の制約を抽出し、前記状態遷移を可能にす
るレコードが該制約を満たすかどうかを調べる処理を、
前記コンピュータにさらに実行させることを特徴とする
請求項2記載のプログラム。 - 【請求項4】 前記コンピュータは、前記検索パターン
として、連続して発生しないイベントの繰り返しを含む
検索パターンを指定することを特徴とする請求項2記載
のプログラム。 - 【請求項5】 前記コンピュータは、前記検索パターン
に対応するレコードの組み合わせが見つかるたびに、見
つかったレコードの組み合わせを出力することを特徴と
する請求項2記載のプログラム。 - 【請求項6】 前記コンピュータは、前記検索パターン
に対応するレコードの組み合わせを求める処理におい
て、前記検索パターンにマッチするレコードの組み合わ
せの中でイベント間の間隔が最長の組み合わせを返す最
長マッチと、該検索パターンにマッチするレコードの組
み合わせの中でイベント間の間隔が最短の組み合わせを
返す最短マッチと、該検索パターンにマッチする最初の
レコードの組み合わせを返す最初マッチと、該検索パタ
ーンにマッチするすべてのレコードの組み合わせを返す
全部マッチのうちの1つの方法でパターンマッチングを
行うことを特徴とする請求項2記載のプログラム。 - 【請求項7】 前記検索パターンに対応するレコードの
組み合わせに関する集約演算を行って演算結果を出力す
る処理を、前記コンピュータにさらに実行させることを
特徴とする請求項2記載のプログラム。 - 【請求項8】 前記コンピュータは、指定された属性の
値に基づいて前記レコードの集合を整列し、整列したレ
コードの集合を検索することを特徴とする請求項2記載
のプログラム。 - 【請求項9】 前記コンピュータは、指定された属性の
値に基づいて前記レコードの集合をグループ化し、各グ
ループ内のレコードを整列することを特徴とする請求項
8記載のプログラム。 - 【請求項10】 複数の属性からなるレコードの集合か
らレコードの組み合わせを検索する検索方法であって、 コンピュータが、レコード内の所定属性が特定の値をと
ることをそれぞれ定義する複数のイベントと、属性値の
順序に基づいて定義された該複数のイベントの間の順序
関係とを用いて指定された、イベントの繰り返しを含む
検索パターンから、該順序関係を抽出して決定性有限オ
ートマトンに変換し、 前記コンピュータが、前記レコードの集合から同じ順序
にある1つ以上のレコードをメモリ上に読み込み、読み
込まれたレコードにより前記決定性有限オートマトン上
で状態遷移が可能かどうかを調べ、可能な状態遷移の遷
移先と状態遷移を可能にするレコードを示す付加情報と
を状態遷移集合に登録する処理を繰り返し、 前記コンピュータが、前記決定性有限オートマトンの終
了状態が遷移先として前記状態遷移集合に登録されたと
き、該終了状態に到達した状態遷移の付加情報から前記
検索パターンに対応するレコードの組み合わせを求め、 前記コンピュータが、得られたレコードの組み合わせを
検索結果として出力することを特徴とする検索方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002112959A JP4047053B2 (ja) | 2002-04-16 | 2002-04-16 | 繰り返しを含む順序パターンを用いた検索装置および方法 |
US10/383,064 US6912526B2 (en) | 2002-04-16 | 2003-03-07 | Search apparatus and method using order pattern including repeating pattern |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002112959A JP4047053B2 (ja) | 2002-04-16 | 2002-04-16 | 繰り返しを含む順序パターンを用いた検索装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003308333A true JP2003308333A (ja) | 2003-10-31 |
JP4047053B2 JP4047053B2 (ja) | 2008-02-13 |
Family
ID=28786691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002112959A Expired - Fee Related JP4047053B2 (ja) | 2002-04-16 | 2002-04-16 | 繰り返しを含む順序パターンを用いた検索装置および方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6912526B2 (ja) |
JP (1) | JP4047053B2 (ja) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007535766A (ja) * | 2004-04-28 | 2007-12-06 | ボゴーク,サミュエル | アミノ酸の複雑なパターンを同定するためのシステム及び方法 |
WO2008084594A1 (ja) * | 2007-01-12 | 2008-07-17 | Nec Corporation | パターンマッチング装置及び方法 |
WO2008129635A1 (ja) * | 2007-04-12 | 2008-10-30 | Fujitsu Limited | 性能障害要因分析プログラムおよび性能障害要因分析装置 |
JP2008546054A (ja) * | 2005-05-20 | 2008-12-18 | マイクロソフト コーポレーション | イベントストリームからのイベントパターンの認識 |
JP2009093599A (ja) * | 2007-10-12 | 2009-04-30 | Nec Corp | 文字列照合回路 |
JP2012048605A (ja) * | 2010-08-30 | 2012-03-08 | Fujitsu Ltd | ストリームデータ処理装置,方法,およびプログラム |
US8296331B2 (en) | 2007-07-18 | 2012-10-23 | Microsoft Corporation | Implementation of stream algebra over class instances |
JP2012238217A (ja) * | 2011-05-12 | 2012-12-06 | Fujitsu Ltd | 照合装置および照合プログラム |
JP2013168045A (ja) * | 2012-02-16 | 2013-08-29 | Nippon Telegr & Teleph Corp <Ntt> | イベントログの検索方法、その装置及びプログラム |
JP2014095993A (ja) * | 2012-11-08 | 2014-05-22 | Mitsubishi Electric Corp | 情報処理装置及び情報処理方法及びプログラム |
JP2015022370A (ja) * | 2013-07-16 | 2015-02-02 | 富士通株式会社 | 照合方法および照合プログラム |
US9158816B2 (en) | 2009-10-21 | 2015-10-13 | Microsoft Technology Licensing, Llc | Event processing with XML query based on reusable XML query template |
US9229986B2 (en) | 2008-10-07 | 2016-01-05 | Microsoft Technology Licensing, Llc | Recursive processing in streaming queries |
JP2020057362A (ja) * | 2018-10-02 | 2020-04-09 | 大学共同利用機関法人情報・システム研究機構 | 情報処理装置、情報処理回路、情報処理システム及び情報処理方法 |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774144B2 (en) * | 2001-10-26 | 2010-08-10 | Samuel Bogoch | System and method for identifying complex patterns of amino acids |
US7046848B1 (en) * | 2001-08-22 | 2006-05-16 | Olcott Peter L | Method and system for recognizing machine generated character glyphs and icons in graphic images |
US7305391B2 (en) * | 2003-02-07 | 2007-12-04 | Safenet, Inc. | System and method for determining the start of a match of a regular expression |
US7366352B2 (en) * | 2003-03-20 | 2008-04-29 | International Business Machines Corporation | Method and apparatus for performing fast closest match in pattern recognition |
US7227994B2 (en) * | 2003-03-20 | 2007-06-05 | International Business Machines Corporation | Method and apparatus for imbedded pattern recognition using dual alternating pointers |
US7949732B1 (en) | 2003-05-12 | 2011-05-24 | Sourcefire, Inc. | Systems and methods for determining characteristics of a network and enforcing policy |
US8494781B2 (en) | 2003-06-06 | 2013-07-23 | Samuel Bogoch | Systems and methods for identifying replikin scaffolds and uses of said replikin scaffolds |
US20050044171A1 (en) * | 2003-08-21 | 2005-02-24 | 3M Innovative Properties Company | Centralized management of packaging data having modular remote device control architecture |
US9254315B2 (en) * | 2004-04-28 | 2016-02-09 | Samuel Bogoch | Systems and methods for identifying replikin scaffolds and uses of said replikin scaffolds |
US7539681B2 (en) * | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
US8392590B2 (en) * | 2004-09-10 | 2013-03-05 | Cavium, Inc. | Deterministic finite automata (DFA) processing |
US8301788B2 (en) * | 2004-09-10 | 2012-10-30 | Cavium, Inc. | Deterministic finite automata (DFA) instruction |
US8560475B2 (en) | 2004-09-10 | 2013-10-15 | Cavium, Inc. | Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process |
KR100792307B1 (ko) | 2005-06-23 | 2008-01-07 | 장민석 | 최빈 검색 경로 패턴 추출 시스템 |
US7487150B2 (en) * | 2005-07-02 | 2009-02-03 | International Business Machines Corporation | Method for matching pattern-based data |
US7733803B2 (en) * | 2005-11-14 | 2010-06-08 | Sourcefire, Inc. | Systems and methods for modifying network map attributes |
US8046833B2 (en) * | 2005-11-14 | 2011-10-25 | Sourcefire, Inc. | Intrusion event correlation with network discovery information |
KR20090016671A (ko) * | 2006-05-30 | 2009-02-17 | 사무엘 보고치 | 레플리킨 펩티드 및 이의 용도 |
US20080071783A1 (en) * | 2006-07-03 | 2008-03-20 | Benjamin Langmead | System, Apparatus, And Methods For Pattern Matching |
US7948988B2 (en) * | 2006-07-27 | 2011-05-24 | Sourcefire, Inc. | Device, system and method for analysis of fragments in a fragment train |
US7701945B2 (en) * | 2006-08-10 | 2010-04-20 | Sourcefire, Inc. | Device, system and method for analysis of segments in a transmission control protocol (TCP) session |
US20080196102A1 (en) * | 2006-10-06 | 2008-08-14 | Sourcefire, Inc. | Device, system and method for use of micro-policies in intrusion detection/prevention |
US8069352B2 (en) * | 2007-02-28 | 2011-11-29 | Sourcefire, Inc. | Device, system and method for timestamp analysis of segments in a transmission control protocol (TCP) session |
WO2008134057A1 (en) | 2007-04-30 | 2008-11-06 | Sourcefire, Inc. | Real-time awareness for a computer network |
EP2167122A2 (en) * | 2007-05-30 | 2010-03-31 | Samuel Bogoch | Synthetic replikin peptides against pathogenic infection of invertebrates in aquaculture |
US8819217B2 (en) * | 2007-11-01 | 2014-08-26 | Cavium, Inc. | Intelligent graph walking |
US7949683B2 (en) | 2007-11-27 | 2011-05-24 | Cavium Networks, Inc. | Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph |
US8180803B2 (en) * | 2007-11-27 | 2012-05-15 | Cavium, Inc. | Deterministic finite automata (DFA) graph compression |
US9858053B2 (en) | 2008-02-08 | 2018-01-02 | Reservoir Labs, Inc. | Methods and apparatus for data transfer optimization |
US8930926B2 (en) * | 2008-02-08 | 2015-01-06 | Reservoir Labs, Inc. | System, methods and apparatus for program optimization for multi-threaded processor architectures |
US8661422B2 (en) * | 2008-02-08 | 2014-02-25 | Reservoir Labs, Inc. | Methods and apparatus for local memory compaction |
US8474043B2 (en) | 2008-04-17 | 2013-06-25 | Sourcefire, Inc. | Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing |
US20090269367A1 (en) * | 2008-04-23 | 2009-10-29 | Samuel Bogoch | Methods and compounds for mitigating pathogenic outbreaks using replikin count cycles |
JP5224953B2 (ja) * | 2008-07-17 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、情報処理方法およびプログラム |
US20100144589A1 (en) * | 2008-08-08 | 2010-06-10 | Samuel Bogoch | Methods of predicting cancer lethality using replikin counts |
WO2010033622A2 (en) * | 2008-09-17 | 2010-03-25 | Reservoir Labs, Inc. | Methods and apparatus for joint parallelism and locality optimization in source code compilation |
WO2010045089A1 (en) | 2008-10-08 | 2010-04-22 | Sourcefire, Inc. | Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system |
US8473523B2 (en) | 2008-10-31 | 2013-06-25 | Cavium, Inc. | Deterministic finite automata graph traversal with nodal bit mapping |
US9233148B2 (en) * | 2009-01-09 | 2016-01-12 | Samuel Bogoch | Replikin-based compounds for prevention and treatment of influenza and methods of differentiating infectivity and lethality in influenza |
US8688619B1 (en) | 2009-03-09 | 2014-04-01 | Reservoir Labs | Systems, methods and apparatus for distributed decision processing |
US9185020B2 (en) * | 2009-04-30 | 2015-11-10 | Reservoir Labs, Inc. | System, apparatus and methods to implement high-speed network analyzers |
US9747358B2 (en) * | 2009-09-22 | 2017-08-29 | Sap Se | Pattern analysis for a multi-dimensional analytical system |
CN102096848B (zh) * | 2009-12-09 | 2015-11-25 | Sap欧洲公司 | 用于在对流事件的查询模式匹配期间进行快速响应的调度 |
WO2011130510A1 (en) | 2010-04-16 | 2011-10-20 | Sourcefire, Inc. | System and method for near-real time network attack detection, and system and method for unified detection via detection routing |
US8892483B1 (en) | 2010-06-01 | 2014-11-18 | Reservoir Labs, Inc. | Systems and methods for planning a solution to a dynamically changing problem |
US8433790B2 (en) | 2010-06-11 | 2013-04-30 | Sourcefire, Inc. | System and method for assigning network blocks to sensors |
US8671182B2 (en) | 2010-06-22 | 2014-03-11 | Sourcefire, Inc. | System and method for resolving operating system or service identity conflicts |
US8914601B1 (en) | 2010-10-18 | 2014-12-16 | Reservoir Labs, Inc. | Systems and methods for a fast interconnect table |
US9134976B1 (en) | 2010-12-13 | 2015-09-15 | Reservoir Labs, Inc. | Cross-format analysis of software systems |
US8601034B2 (en) | 2011-03-11 | 2013-12-03 | Sourcefire, Inc. | System and method for real time data awareness |
JP5640910B2 (ja) * | 2011-06-27 | 2014-12-17 | 富士通株式会社 | 照合装置および照合プログラム |
US9489180B1 (en) | 2011-11-18 | 2016-11-08 | Reservoir Labs, Inc. | Methods and apparatus for joint scheduling and layout optimization to enable multi-level vectorization |
US9203805B2 (en) * | 2011-11-23 | 2015-12-01 | Cavium, Inc. | Reverse NFA generation and processing |
US9830133B1 (en) | 2011-12-12 | 2017-11-28 | Significs And Elements, Llc | Methods and apparatus for automatic communication optimizations in a compiler based on a polyhedral representation |
US9116947B2 (en) * | 2012-03-15 | 2015-08-25 | Hewlett-Packard Development Company, L.P. | Data-record pattern searching |
US20130282648A1 (en) * | 2012-04-18 | 2013-10-24 | International Business Machines Corporation | Deterministic finite automaton minimization |
US9798588B1 (en) | 2012-04-25 | 2017-10-24 | Significs And Elements, Llc | Efficient packet forwarding using cyber-security aware policies |
US10936569B1 (en) | 2012-05-18 | 2021-03-02 | Reservoir Labs, Inc. | Efficient and scalable computations with sparse tensors |
US9684865B1 (en) | 2012-06-05 | 2017-06-20 | Significs And Elements, Llc | System and method for configuration of an ensemble solver |
US20140215090A1 (en) * | 2013-01-31 | 2014-07-31 | Lsi Corporation | Dfa sub-scans |
JP6107494B2 (ja) * | 2013-07-16 | 2017-04-05 | 富士通株式会社 | 照合装置、照合方法および照合プログラム |
US9563399B2 (en) | 2013-08-30 | 2017-02-07 | Cavium, Inc. | Generating a non-deterministic finite automata (NFA) graph for regular expression patterns with advanced features |
US10242125B2 (en) * | 2013-12-05 | 2019-03-26 | Entit Software Llc | Regular expression matching |
US9602532B2 (en) | 2014-01-31 | 2017-03-21 | Cavium, Inc. | Method and apparatus for optimizing finite automata processing |
US9904630B2 (en) | 2014-01-31 | 2018-02-27 | Cavium, Inc. | Finite automata processing based on a top of stack (TOS) memory |
US10110558B2 (en) | 2014-04-14 | 2018-10-23 | Cavium, Inc. | Processing of finite automata based on memory hierarchy |
US10002326B2 (en) | 2014-04-14 | 2018-06-19 | Cavium, Inc. | Compilation of finite automata based on memory hierarchy |
JP6737117B2 (ja) * | 2016-10-07 | 2020-08-05 | 富士通株式会社 | 符号化データ検索プログラム、符号化データ検索方法および符号化データ検索装置 |
US11782983B1 (en) * | 2020-11-27 | 2023-10-10 | Amazon Technologies, Inc. | Expanded character encoding to enhance regular expression filter capabilities |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5510981A (en) * | 1993-10-28 | 1996-04-23 | International Business Machines Corporation | Language translation apparatus and method using context-based translation models |
JP3231673B2 (ja) * | 1996-11-21 | 2001-11-26 | シャープ株式会社 | 文字,文字列検索方法及び該方法に用いる記録媒体 |
WO2004002044A2 (en) * | 2002-02-01 | 2003-12-31 | John Fairweather | A system for exchanging binary data |
US20030149562A1 (en) * | 2002-02-07 | 2003-08-07 | Markus Walther | Context-aware linear time tokenizer |
-
2002
- 2002-04-16 JP JP2002112959A patent/JP4047053B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-07 US US10/383,064 patent/US6912526B2/en not_active Expired - Lifetime
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007535766A (ja) * | 2004-04-28 | 2007-12-06 | ボゴーク,サミュエル | アミノ酸の複雑なパターンを同定するためのシステム及び方法 |
JP2008546054A (ja) * | 2005-05-20 | 2008-12-18 | マイクロソフト コーポレーション | イベントストリームからのイベントパターンの認識 |
US8626688B2 (en) | 2007-01-12 | 2014-01-07 | Nec Corporation | Pattern matching device and method using non-deterministic finite automaton |
WO2008084594A1 (ja) * | 2007-01-12 | 2008-07-17 | Nec Corporation | パターンマッチング装置及び方法 |
JP5120263B2 (ja) * | 2007-01-12 | 2013-01-16 | 日本電気株式会社 | パターンマッチング装置及び方法 |
WO2008129635A1 (ja) * | 2007-04-12 | 2008-10-30 | Fujitsu Limited | 性能障害要因分析プログラムおよび性能障害要因分析装置 |
JP5299272B2 (ja) * | 2007-04-12 | 2013-09-25 | 富士通株式会社 | 分析プログラムおよび分析装置 |
US8296331B2 (en) | 2007-07-18 | 2012-10-23 | Microsoft Corporation | Implementation of stream algebra over class instances |
US8775482B2 (en) | 2007-07-18 | 2014-07-08 | Microsoft Corporation | Implementation of stream algebra over class instances |
JP2009093599A (ja) * | 2007-10-12 | 2009-04-30 | Nec Corp | 文字列照合回路 |
US9229986B2 (en) | 2008-10-07 | 2016-01-05 | Microsoft Technology Licensing, Llc | Recursive processing in streaming queries |
US9158816B2 (en) | 2009-10-21 | 2015-10-13 | Microsoft Technology Licensing, Llc | Event processing with XML query based on reusable XML query template |
US9348868B2 (en) | 2009-10-21 | 2016-05-24 | Microsoft Technology Licensing, Llc | Event processing with XML query based on reusable XML query template |
JP2012048605A (ja) * | 2010-08-30 | 2012-03-08 | Fujitsu Ltd | ストリームデータ処理装置,方法,およびプログラム |
JP2012238217A (ja) * | 2011-05-12 | 2012-12-06 | Fujitsu Ltd | 照合装置および照合プログラム |
JP2013168045A (ja) * | 2012-02-16 | 2013-08-29 | Nippon Telegr & Teleph Corp <Ntt> | イベントログの検索方法、その装置及びプログラム |
JP2014095993A (ja) * | 2012-11-08 | 2014-05-22 | Mitsubishi Electric Corp | 情報処理装置及び情報処理方法及びプログラム |
JP2015022370A (ja) * | 2013-07-16 | 2015-02-02 | 富士通株式会社 | 照合方法および照合プログラム |
JP2020057362A (ja) * | 2018-10-02 | 2020-04-09 | 大学共同利用機関法人情報・システム研究機構 | 情報処理装置、情報処理回路、情報処理システム及び情報処理方法 |
JP7383273B2 (ja) | 2018-10-02 | 2023-11-20 | 大学共同利用機関法人情報・システム研究機構 | 情報処理装置、情報処理回路、情報処理システム及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4047053B2 (ja) | 2008-02-13 |
US6912526B2 (en) | 2005-06-28 |
US20030195874A1 (en) | 2003-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003308333A (ja) | 繰り返しを含む順序パターンを用いた検索装置および方法 | |
Gagie et al. | Wheeler graphs: A framework for BWT-based data structures | |
KR100638695B1 (ko) | 구조화 문서의 데이터를 검색하는 장치 및 방법 | |
CN108509637A (zh) | 数据表关联查询方法及装置 | |
CN109815238B (zh) | 用严格平衡二叉树实现数据库的动态添加方法及装置 | |
US20060259508A1 (en) | Method and apparatus for detecting semantic elements using a push down automaton | |
US6990487B2 (en) | Searching apparatus and searching method using pattern of which sequence is considered | |
JPH07230481A (ja) | ネット情報抽出方法および装置 | |
JPH11110413A (ja) | データベース検索結果を生成するための方法および装置 | |
CN105843882A (zh) | 一种信息匹配方法及装置 | |
CN108563736A (zh) | 基于数据特征查询数据的方法及装置 | |
US6718317B1 (en) | Methods for identifying partial periodic patterns and corresponding event subsequences in an event sequence | |
CN100419746C (zh) | 信息检索方法 | |
Takagi et al. | Linear-size CDAWG: New repetition-aware indexing and grammar compression | |
JP2007122398A (ja) | フラグメントの同一性判定方法およびコンピュータプログラム | |
Manzini | XBWT tricks | |
CN103793522B (zh) | 快速特征码扫描 | |
JP2003242179A (ja) | 文字列照合方法、これを用いた文書処理装置及びプログラム | |
CN108197470A (zh) | 快速特征码扫描 | |
JP2004110327A (ja) | 時系列相関抽出装置 | |
Borsotti et al. | From ambiguous regular expressions to deterministic parsing automata | |
CN112115125B (zh) | 数据库访问对象名称解析方法、装置及电子设备 | |
JPH07210569A (ja) | 情報検索方法および情報検索装置 | |
US9177252B2 (en) | Incremental DFA compilation with single rule granularity | |
JP2002202973A (ja) | 構造化文書管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070828 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071022 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071120 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071121 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101130 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4047053 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101130 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121130 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131130 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |