JP2003141158A - 順序を考慮したパターンを用いた検索装置および方法 - Google Patents

順序を考慮したパターンを用いた検索装置および方法

Info

Publication number
JP2003141158A
JP2003141158A JP2001340817A JP2001340817A JP2003141158A JP 2003141158 A JP2003141158 A JP 2003141158A JP 2001340817 A JP2001340817 A JP 2001340817A JP 2001340817 A JP2001340817 A JP 2001340817A JP 2003141158 A JP2003141158 A JP 2003141158A
Authority
JP
Japan
Prior art keywords
search
pattern
records
event
events
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.)
Pending
Application number
JP2001340817A
Other languages
English (en)
Inventor
Naoteru Akaboshi
直輝 赤星
Ririan Harada
リリアン 原田
Kazumi Kubota
和己 久保田
Riichiro Take
理一郎 武
Satoshi Ikuta
諭史 幾田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001340817A priority Critical patent/JP2003141158A/ja
Priority to US10/092,444 priority patent/US6990487B2/en
Publication of JP2003141158A publication Critical patent/JP2003141158A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 データ間の順序関係のための汎用的な表現を
用いて、順序に基づくデータのパターンを検索する。 【解決手段】 イベントA、B、Cは、それぞれ、レコ
ードの所定属性の値が特定の値をとる状態として定義さ
れ、各レコードの日付等の順序関係に基づいてイベント
間の順序関係が定義される。複数のイベント間の順序関
係により検索パターンが指定されると、検索対象のレコ
ードの集合から、そのパターンに対応するレコードの組
み合わせが検索される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、大量のデータを対
象として、各データが持つ順序に基づいたパターンを検
索する装置および方法に関する。
【0002】
【従来の技術】順序に基づいたデータを扱うために従来
から利用されてきた技術には、関係データベースや、文
字列の出現順序に対する正規表現によるパターンマッチ
ングがあり、株価のような時系列データに対しては、専
用のアプリケーションが用いられてきた。以下では、従
来の技術について、その特徴および利用分野について述
べる。 (1)関係データベース 大量のデータを格納するために、関係データベースが広
く利用されている。関係データベースでは、考案者であ
るE. F. Coddによる論文(1970年)に明記されている
ように、データ集合に順序の概念がない。ただし、日付
型や時間型といったデータ型が用意されていることや、
レコードを値にしたがって並び替える(ソーティング)
機能が提供されており、順序を持つデータを格納するの
に利用される。
【0003】このデータベースでは、データ型として日
付を扱うことはできるが、順序の概念がないため、時系
列のように順序を意識したデータのパターンを探し出す
問い合わせは、SQL(Structured Query Language)
ですべて処理することはできない。そこで、データベー
スと外部プログラムを組み合わせて処理を行っており、
順序を考慮したパターンを取り出す毎にプログラムが必
要となる。 (2)正規表現によるパターンマッチング 文字列検索の分野では、文字列が出現する順序に着目し
て、正規表現によるパターンマッチングが利用されてき
た。まず、文字列検索とパターンマッチングの相違につ
いて明確にしておく。文字列探索とは、「文章中からパ
ターンabcを探せ」のように、探索すべきパターンが
完全に確定しているものを言う。一方、パターンマッチ
ングとは、不確定のパターンを探す操作のことで、パタ
ーン照合とも呼ばれる。パターンマッチングでは、パタ
ーンを指定するのに正規表現が用いられる。
【0004】図30は、文字列データと正規表現a(a
|b)*aのパターンマッチングの例を示している。こ
こで、(a|b)*は、aまたはbが0回以上繰り返し
出現することを意味している。文字列探索とパターンマ
ッチングは、一見似たように見えるが、異なるカテゴリ
に属する問題で、それぞれに対して別のアルゴリズムを
適用しなければならない。
【0005】正規表現によるパターンマッチングを実現
するには、有限オートマトン(finite automaton)を利
用する。正規表現をオートマトンに変換するには、2段
階のアプローチをとる。まず、正規表現を非決定性有限
オートマトン(non-deterministic finite automaton,
NFA)に変換する。正規表現からNFAへの変換は容
易である。NFA単体でパターンマッチングを行うこと
も可能であるが、得られたNFAを等価である決定性有
限オートマトン(deterministicfinite automaton,D
FA)に変換し、DFAを使ってパターンマッチングを
行う方法が多く用いられる。
【0006】DFAでは、決定性という言葉が示すよう
に、ある状態において入力が決まれば遷移先が1つだけ
に定まるが、NFAでは、非決定性という言葉が示すよ
うに、ある状態において入力に対する遷移先が複数存在
する場合がある。
【0007】図31は、正規表現a(a|b)*aに対
応するNFAを示している。このNFAにaaaという
文字列を与えた場合を考える。1文字目のaを入力する
と、初期状態0から1に遷移する。2文字目もaである
が、状態1には、文字aに対する遷移先として、状態1
と状態2の2種類の状態がある。結論から言えば、2文
字目のaでは状態1から状態1へと遷移し、3文字目の
aでは状態2に遷移するのが正解なのであるが、2文字
目のaを読み込んだ時点では、どちらへ進めばよいかは
わからない。
【0008】この問題を解決するためには、バックトラ
ックを利用し、とりあえずどちらかの状態に遷移して処
理を進め、失敗したらもう1つの状態に遷移するという
処理が必要となる。しかし、バックトラックを用いる
と、後戻りのための処理時間がかかる。
【0009】そこで、正規表現を変換して得られたNF
Aをそのまま使うのではなく、NFAをさらにDFAに
変換してから、パターンマッチング処理を行う。DFA
の場合には、NFAと違って、状態と入力が決まれば遷
移先が必ず1つだけに決まるので、NFAのようなバッ
クトラックは必要がなく、処理を高速に実行することが
可能になる。
【0010】例えば、図31のNFAは、図32に示す
ようなDFAに変換される。もちろん、NFAをDFA
に変換するのに時間がかかるが、大量のデータに対して
パターンマッチングを行う場合、バックトラックがない
DFAの高速性により、全体としては十分に処理が高速
化される。
【0011】ところで、正規表現は、図33に示すよう
な連結(concatenation)、選択(union)、および繰り
返し(閉包:closure)の3つの基本操作(演算子)に
よって、再帰的に定義される。これらの操作の間には、
普通の数式と同様に、優先順位があり、最も強く結合す
るのが繰り返し“*”であり、次に強く結合するのが連
結であり、最後が選択“|”という順番になる。ただ
し、文字や記号を括弧で囲むことによって、優先順位を
変えることもできる。
【0012】POSIX(Portable Operating System
Interfacefor UNIX(登録商標))1003.2では、B
asic Regular Expression(BRE)とExtended Regula
r Expression(ERE)の2種類の正規表現が定められ
ている。BREを使用するUNIX(登録商標)上のソ
フトウェア・ユーティリティには、ed、ex、vi、
more、sed、grep等があり、EREを使用す
るソフトウェア・ユーティリティには、awkや、−E
オプション指定時のgrepがある。 (3)時系列アプリケーション 順序を持つデータに対しては、株価の相場予想や、デー
タマイニングにおけるシーケンシャルパターンのよう
に、専用のアプリケーションを用いて処理が行われる場
合がある。専用のアプリケーションを利用すれば、時系
列のパターン検索を高速に処理することが可能である
が、専用のアプリケーションは、汎用的なさまざまな問
い合わせにおいて必ず利用できるとは限らない。
【0013】
【発明が解決しようとする課題】ところで、上述した従
来の検索処理には、次のような問題がある。文字列にお
ける正規表現と、それによるパターンマッチングは、あ
らゆるクラスの文字列に対する検索方法を提供する一般
的なフレームワークである。しかし、順序を持つデータ
は、以下の(1)〜(3)に示すように、データの特性
が文字列データとは異なるため、正規表現とそのパター
ンマッチングを適用することができない。 (1)文字列においては、等間隔で隣あった文字しか存
在しないが、順序を持つデータの場合には、ある位置に
複数のイベントが存在する場合がある。例えば、同じ日
に複数回の買い物を行った場合がそれにあたり、「顧客
10001は、3月21日に牛乳とパンの2つの商品を
購入」といった表現が必要となる。しかし、文字列で
は、同じ位置に2つの文字が出現することがないので、
正規表現では同時に発現するイベントを表現できない。 (2)文字列では、値と記号(リテラル)とが等しい。
つまり、文字列として“A”が与えられたとき、“A”
は値でもあり、記号としてのAでもある。しかし、複数
の属性からなるデータでは、「200円以上のパンを購
入した顧客を‘顧客グループA’と呼ぶ」というよう
に、複数フィールド(この場合、商品と価格)の条件の
組み合わせを1つの記号として扱う必要がある。このよ
うな複数フィールドの条件の組み合わせを、正規表現で
表すことはできない。 (3)順序を持ったデータの場合、「パンを購入してか
ら2日以内にチーズを購入」というように、順序に間隔
の概念が必要となる。しかし、文字列の正規表現では、
間隔を指定することはできない。
【0014】図34は、順序を持つデータの例として、
小売業売上データを示している。この例では、顧客毎に
商品を購入した日付が順序にあたる。3月21日(03
/21)に、顧客10001は、牛乳とパンを同時に購
入しているが、同時に出現する事象を正規表現で記述す
ることはできない。また、小売店の売上データでは、休
業日にあたる3月22日のデータは存在しないが、文字
列では特定の順位の文字が存在しないという状況はあり
得ない。さらに、ある商品を購入して次の来店までの間
隔が3日以内であるといったように、順序間にまたがる
関係を考慮した記述は、正規表現では困難である。
【0015】以上説明したように、順序を持つレコード
群の中から、順序を考慮したパターンを一般的に指定す
ることは、従来の正規表現とオートマトン理論では不可
能である。
【0016】また、関係データベースでは、上述したよ
うに、順序関係については限定された形でしかサポート
されていない。したがって、順序を持つデータから、指
定したパターンを発見しようとする場合、データベース
と外部プログラムの組み合わせで処理する必要がある。
しかし、問い合わせ毎にプログラムを作成する方法で
は、正規表現によるパターンマッチングのように、指定
するパターンを変更するだけでパターンマッチングを実
行することはできない。
【0017】さらに、株価の予測のように、順序を持っ
たデータを解析するために、専用のアプリケーションを
用いる方法も考えられる。専用のアプリケーションは、
ある目的のためにデータを準備すれば特定の結果を返す
ので、その目的に限れば、高速な処理を行うことが可能
である。しかし、専用のアプリケーションでは、専用で
あるがゆえに、正規表現によるパターンマッチングのよ
うに幅広い問題に対処することは困難である。
【0018】本発明の課題は、データ間の順序関係のた
めの汎用的な表現を用いて、順序に基づくデータのパタ
ーンを検索する装置および方法を提供することである。
【0019】
【課題を解決するための手段】図1は、本発明の検索装
置の原理図である。図1の検索装置は、指定手段10
1、検索手段102、および出力手段103を備え、複
数の属性からなるレコードの集合104からレコードの
組み合わせを検索する。
【0020】指定手段101は、レコード内の所定属性
が特定の値をとることをそれぞれ定義する複数のイベン
トと、属性値の順序に基づいて定義されたそれらのイベ
ントの間の順序関係とを用いて、検索パターン(イベン
トパターン)105を指定する。検索手段102は、レ
コードの集合104から、指定された検索パターン10
5に対応するレコードの組み合わせを検索し、出力手段
103は、検索結果を出力する。
【0021】イベントは、レコード内の所定属性が特定
の値をとる状態として定義され、複数のイベントの間の
順序関係は、それらのイベントに対応するレコードの間
において、1つ以上の属性の値の順序関係に基づいて定
義される。ユーザは、指定手段101を用いて、これら
のイベントとイベント間の順序関係により決められる検
索パターン105を指定する。指定手段101は、検索
パターン105を検索手段102に渡し、検索手段10
2は、受け取った検索パターン105を解釈して、検索
パターン105に対応するレコードの組み合わせを抽出
する。そして、出力手段103は、抽出されたレコード
等の情報を検索結果として出力する。
【0022】このような検索装置によれば、2つ以上の
イベントが同じ順序に存在する場合や、複数のイベント
の順序関係が任意の間隔で記述される場合を含めて、様
々な検索パターンを容易に指定することが可能となり、
順序を考慮した汎用的なデータ検索が実現される。
【0023】図1の指定手段101は、例えば、後述す
る図28の入力装置153に対応し、図1の検索手段1
02および出力手段103は、例えば、後述する図4の
検索処理部113に対応する。
【0024】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。処理の対象とするデ
ータは、図34に示したような、複数のフィールド(属
性)を持つレコードの集合からなるデータである。各レ
コードは決まった数のフィールドを持ち、あるレコード
のみが異なった数のフィールドを持つことはないものと
する。さらに、データ中には、順序を持ったフィールド
が1つ以上含まれているものとする。
【0025】順序を持ったフィールドとは、日付や時刻
といった順序関係をあらかじめ持っているフィールド
か、顧客ID(顧客識別子)フィールドのように、デー
タを並び替えることで順序が生じるものである。また、
日付フィールドと時刻フィールドをあわせて1つの順序
フィールドと考えることができるように、複数のフィー
ルドを複合して順序を持たせる場合もある。
【0026】このような対象データの中から順序を持つ
パターンを検索する際に、イベント定義とイベント間定
義による汎用的なパターン指定を行い、指定されたパタ
ーンを解釈して検索を実行する、汎用的な処理系を用い
る。
【0027】イベント定義とは、1つあるいは複数のフ
ィールドについて指定した条件に、一意な名前を付けた
ものである。1つのフィールドについて条件を指定する
場合は、例えば、「商品としてPCを購入した顧客を
‘顧客グループA’と呼ぶ」というように定義できる。
また、複数のフィールドについて条件を指定する場合に
は、例えば、「商品=PCで価格=25万円の商品を購
入した顧客を‘顧客グループA’と呼ぶ」というよう
に、複数フィールドの条件の組み合わせを1つの記号
(リテラル)として扱う。
【0028】つまり、イベントとは、1つあるいは複数
のフィールドについて条件を満たしたレコードに関する
ラベルであると定義する。さらに、正規表現におけるワ
イルドカードのように、何にでもマッチするような条件
を指定することも可能とする。
【0029】図2は、「商品=PCで価格=25万円の
商品を購入した顧客を‘顧客グループA’と呼ぶ」で定
義されるイベント定義の例を示している。既に説明した
ように、複数フィールドの条件の組み合わせを文字列の
正規表現で表すことは不可能である。
【0030】次に、イベント間定義とは、イベント定義
を利用して、イベントとイベントの間にまたがる関係を
記述するものである。イベント間定義においては、同じ
順序に複数のイベントが存在する場合や、順序の間隔が
一定でない場合(任意の間隔で順序が記述される場合)
も考慮される。
【0031】具体的な例としては、25万円のPCを購
入した顧客のイベントを‘A’と呼び、10万円のTV
を購入した顧客のイベントを‘B’と呼ぶことにする
と、「‘A’から‘B’までの間隔が3来店以内」とい
うようなイベント間定義が考えられる。また、「‘A’
から‘B’までの間隔が3日以内(‘A’の日付フィー
ルドと‘B’の日付フィールドの差が3日以内)」とい
った定義も考えられる。
【0032】また、順序を持つフィールド以外でも、イ
ベントとイベントにまたがる制約を記述することができ
る。例えば、「‘A’における価格が‘B’における価
格よりも大きい」といった定義が可能である。さらに、
イベント定義がどのようなパターンにもマッチするワイ
ルドカードで指定されている場合でも、イベント間定義
によって条件を指定することが可能である。
【0033】図3は、イベント間定義の例を示してい
る。この例においては、イベント‘A’とイベント
‘B’の間隔が3日以内であり、イベント‘B’とイベ
ント‘C’の間隔が2日以内であり、イベント‘A’と
イベント‘C’の間隔が5日以内であることが定義され
ている。
【0034】正規表現において、すべての文字にマッチ
する‘.’を利用してa..bと表記するのは、あくま
でもリテラル‘a’の3文字後に‘b’が出現するとい
う意味であり、1つ以上のフィールドについて条件が指
定されたイベント定義とは異なる。
【0035】また、任意のイベント間の関係が定義でき
るということは、検索すべきマッチングパターンがグラ
フ構造で表現されることを意味する。図3の例でも、イ
ベント定義1とイベント定義2の間と、イベント定義2
とイベント定義3の間と、イベント定義1とイベント定
義3の間に、それぞれイベント間定義が存在する。
【0036】本発明で扱われる順序パターンは、このよ
うなグラフ構造を持ち得ることや、イベント定義とイベ
ント間定義の組み合わせによって指定されるという点
で、正規表現におけるパターンとは明確に異なる。イベ
ント定義とイベント間定義を用いれば、従来の正規表現
では記述が不可能な検索パターンを指定することが可能
となる。
【0037】本実施形態の検索装置は、このようなイベ
ント定義とイベント間定義によって与えられる順序に基
づいたパターンを汎用的に指定し、それを解釈して実行
する。順序に基づいたパターンを解釈する際には、イン
タープリタのように実行時に動的に解釈する方法と、コ
ンパイラのように実行前にパターンを計算機で実行可能
な命令に置き換えてしまう方法とがある。
【0038】図4は、本実施形態の検索装置の基本構成
を示している。図4の検索装置は、検索対象となるデー
タ111と、イベント定義とイベント間定義によって指
定された検索パターン112と、検索パターン112を
解釈して検索を実行する検索処理部113とからなり、
検索処理部113は、検索結果114を出力する。検索
パターン112の定義を変えるだけで、様々な種類の検
索に対応することができる。
【0039】図5は、検索処理部113による全体処理
のフローチャートである。検索処理部113は、まず、
データ111(ステップS1)と検索パターン112
(ステップS2)を入力として受け取る。そして、検索
パターン112を解釈して(ステップS3)、指定され
たパターンを検索し(ステップS4)、検索結果114
を出力する(ステップS5)。以下では、検索パターン
112をイベントパターンと呼ぶことにする。
【0040】図6は、図5のステップS4において検索
処理部113が保持しているデータ構造を示している。
検索処理部113は、データを指すポインタP1と、イ
ベント定義とイベント間定義を指すポインタP2を備え
る。通常の文字列データとは違って、例えば、同じ日に
発生したデータは同じ順序を持つ。したがって、ポイン
タP1が指すデータは、1つのレコードとは限らず、複
数のレコードである場合もある。
【0041】イベント定義については、先に出現するイ
ベントから順番に並べて記述され、イベント間定義につ
いては、1つのイベント間定義に含まれるイベントのう
ち最も最後のイベントの欄に記述される。
【0042】図7は、図5のステップS4における検索
処理のフローチャートである。検索処理部113は、ま
ず、ポインタP1に対応するデータを読み込み(ステッ
プS11)、ポインタP1が最後を指しているかどうか
を調べる(ステップS12)。ポインタP1が最後を指
していなければ、そのデータがポインタP2に対応する
イベント定義を満たすかどうかを調べる(ステップS1
3)。そして、そのデータがイベント定義を満たしてい
なければ、ポインタP1に1を加算して(ステップS1
7)、ステップS11以降の処理を繰り返す。
【0043】データがイベント定義を満たしている場合
には、さらに、そのデータがP2に対応するイベント間
定義を満たすかどうかを調べる(ステップS14)。デ
ータがイベント間定義を満たしていなければ、ステップ
S17以降の処理を繰り返す。
【0044】データがイベント定義を満たしている場合
には、次に、ポインタP2が最後を指しているかどうか
を調べる(ステップS15)。そして、ポインタP2が
最後を指していなければ、P2に1を加算して(ステッ
プS18)、ステップS17以降の処理を繰り返す。
【0045】ポインタP2が最後を指していれば、すべ
てのイベント定義およびイベント間定義を満たすデータ
の組み合わせが見つかったことになるので、それらのデ
ータを検索結果として登録し(ステップS16)、ステ
ップS17以降の処理を繰り返す。
【0046】そして、ステップS12においてポインタ
P1が最後を指していれば、すべてのデータについての
検索処理が終了したことになるので、登録された検索結
果を出力する。ステップS16において、検索結果を登
録する代わりに、直ちに出力することも可能である。ま
た、図7に示したフローチャートは検索処理の一例に過
ぎず、検索処理には任意のパターンマッチング方法を用
いることができる。
【0047】次に、図8から図21までを参照しなが
ら、検索装置の付加的な機能について説明する。検索装
置は、多数のファイルに記録された複数の入力データ
(ログ)をまとめることにより、検索対象である複数の
属性からなる入力データを生成することができる。例え
ば、関係データベースの結合(JOIN)演算や、外部
プログラムを利用することで、複数のファイル(デー
タ)から検索対象データを生成する。
【0048】図8に示すテーブルと図9に示すテーブル
から検索対象データを生成する場合、検索装置は、これ
らの2つのテーブルに対して図10のようなSQL文を
適用し、結合演算処理(Join Operation)を実行する。
これにより、図34に示したようなデータが生成され
る。この場合、2つのテーブルには、それぞれ異なるフ
ィールドが含まれているが、これらを結合することによ
り、両方のテーブルのフィールドを含むテーブルが生成
される。
【0049】また、複数の属性からなるレコードの集合
に関して、各属性を整数化等の処理によって圧縮するこ
とで、検索対象データを生成することも可能である。例
えば、図34における顧客IDを4バイト整数化により
整数化した後、2ビットに圧縮すると、次のようにな
る。
【0050】 圧縮された顧客IDを用いれば、図34のデータは図1
1のように書き換えられる。圧縮されたデータは、出力
時に元の文字列に戻して表示すればよいので、内部的に
は2ビットのままで処理することが可能である。これに
より、処理に必要となるメモリ量を削減することがで
き、処理が高速化される。
【0051】また、検索対象である複数の属性からなる
レコードの集合に関して、発見すべきパターンで不要な
レコードを使わないことで、必要となるメモリ量を削減
し、入出力のコストを減らすことができる。つまり、発
見すべきパターンとして必要のないレコードについて
は、始めから処理の対象にしない。例えば、以下のよう
なイベントパターンが定義されているとする。
【0052】イベント定義 イベント1:商品=牛乳 イベント2:商品=パン イベント間定義 イベント1.日付=イベント2.日付 この例では、同じ日に牛乳とパンが購入されたイベント
パターンが指定されており、牛乳とパン以外の商品につ
いてのデータは必要がないことがわかる。したがって、
データをファイルから読み込む際に、商品のフィールド
が牛乳とパン以外の必要のないレコードについては、メ
モリに読み込まないようにする。
【0053】図12は、このようなレコードの削減処理
を示している。ファイル121に記録されたデータは、
一旦読み込みバッファ122に入力され、データから不
要なレコードが削除される。そして、必要なレコードの
みが、検索対象データとしてメモリ123上に読み込ま
れ、検索処理が行われる。これにより、メモリ量を削減
することができるとともに、処理の高速化も期待でき
る。
【0054】ところで、商品に大分類と小分類の2種類
のクラス階層がある場合のように、データが階層構造を
持っている場合、階層に基づいた値の書き換えを行うこ
とで、階層を意識した処理が可能となる。以下に、商品
の階層に基づく値の書き換えの例を示す。
【0055】 大分類 大分類コード 小分類 小分類コード 大分類コード+小分類コード 生鮮 10000 キュウリ 1 10001 生鮮 10000 白菜 2 10002 魚介 20000 アジ 1 20001 魚介 20000 カレイ 2 20002 精肉 30000 牛 1 30001 この例では、大分類に5桁のコード(10000,20
000,...)を割り当て、小分類に4桁のコード
(0001〜9999)を割り当て、大分類コードと小
分類コードを足すことで、全体として商品を一意に識別
可能なコードを割り当てている。このようにして値を書
き換えれば、処理の途中で、コードに基づいてそれがど
の分類項目に対応するかが容易に判定でき、ある特定の
分類項目のみを検索対象とすることが容易になる。
【0056】例えば、イベント定義で、20000<=
商品コード<=29999と指定すれば、それは魚介類
という分類を指定したことになる。また、イベント定義
で、商品コード=10002のように、大分類と小分類
の両方で指定すれば、特定の商品を指定することが可能
である。
【0057】次に、検索処理におけるパターンマッチン
グの指定方法について説明する。正規表現におけるパタ
ーンマッチングでは、与えられた文字列パターンにマッ
チする最も長い文字列を返す「最長マッチ」が基本であ
る。しかし、Perl(Practical Extraction and Rep
ort Language)処理系では、与えられた文字パターンに
マッチする最も短い文字列を返す「最短マッチ」を指定
することができる。
【0058】本実施形態の順序に基づいたパターンマッ
チングにおいては、正規表現で用いられるマッチング指
定に加えて、さらに別のマッチング指定が可能である。
これらのマッチング指定について、図13の検索対象デ
ータを用いて説明する。説明のため、図13のデータに
は、各レコードを一意に識別するためのレコード番号が
付加されている。イベントパターンとしては、以下のよ
うなパターンを用いることにする。
【0059】イベント定義 イベント1:商品=牛乳 イベント2:商品=パン イベント間定義 イベント1.日付<イベント2.日付 ここで、“イベント1.日付<イベント2.日付”とい
う条件は、イベント1の日付がイベント2の日付より前
であることを表している。まず、与えられたイベントパ
ターンにマッチする最初のパターンを返す「最初マッ
チ」においては、レコード番号1と4のレコードが抽出
される。
【0060】これらのレコードは、出現する最初の牛乳
レコードと、そのレコードより日付が後のレコードの中
で最初に出現したパンのレコードである。この場合、抽
出されたパターンは、レコード番号の組み合わせを用い
て、(1,4)のように表される。
【0061】次に、与えられたイベントパターンにマッ
チするパターンの中で間隔が最短のものを返す「最短マ
ッチ」においても、レコード番号(1,4)が抽出され
る。図13のデータにおいては、イベントパターンにマ
ッチするレコードの組み合わせのうち、レコード1とレ
コード4の間で間隔が最も短くなるからである。
【0062】また、データの先頭から「最短マッチ」を
繰り返すことによって、イベントパターンにマッチする
複数のレコードの組み合わせを抽出することも可能であ
る。この場合、検索対象データから、1回の最短マッチ
によりイベントパターンにマッチした部分を取り除き、
残りのデータを新たな検索対象として最短マッチを適用
する処理が、繰り返される。
【0063】次に、与えられたイベントパターンにマッ
チするパターンの中で間隔が最長のものを返す「最長マ
ッチ」では、レコード番号(1,7)が抽出される。図
13のデータにおいては、イベントパターンにマッチす
るレコードの組み合わせのうち、レコード1とレコード
7の間で間隔が最も長くなるからである。
【0064】また、与えられたイベントパターンにマッ
チするすべてのパターンを返す「全部マッチ」では、レ
コード番号(1,4)、(1,7)、および(3,7)
という3つの組み合わせが抽出される。
【0065】さらに、データの先頭からの順方向のマッ
チングだけでなく、データの末尾からの逆方向のマッチ
ングを指定することもできる。このようなマッチング指
定を説明するため、上述のイベントパターンのイベント
間定義を変更した、以下のようなイベントパターンを用
いることにする。
【0066】イベント定義 イベント1:商品=牛乳 イベント2:商品=パン イベント間定義 イベント1.日付>イベント2.日付 まず、「データの末尾から逆向きの最初マッチ」では、
与えられたイベントパターンに逆向きにマッチする最初
のパターンが返される。図13のデータでは、レコード
番号(6,4)がこれに該当する。
【0067】次に、「データの末尾から逆向きの最短マ
ッチ」では、与えられたイベントパターンに逆向きにマ
ッチするパターンの中で間隔が最短のものが返される。
図13のデータでは、レコード番号(3,2)がこれに
該当する。同様に、「データの末尾から逆向きの最長マ
ッチ」では、与えられたイベントパターンに逆向きにマ
ッチするパターンの中で間隔が最長のものが返される。
図13のデータでは、レコード番号(6,2)がこれに
該当する。
【0068】このように、イベントパターンを用いれ
ば、様々なマッチング指定が可能であり、これらの指定
方法を目的に合わせて使い分けることができる。検索装
置がグラフィック・ユーザ・インタフェース(GUI)
を備えている場合、ユーザは、GUIを用いてイベント
パターンを指定することができる。この場合、イベント
定義とイベント間定義の2つをそれぞれGUIで指定す
ればよい。
【0069】図14は、このようなGUIの画面例を示
している。イベント定義のボックス131にはイベント
名が入力され、ボックス132にはイベントの条件が入
力される。そして、ユーザがOKボタン133をクリッ
クすると、イベント定義の指定が完了する。ここでは、
商品としてPCを購入したイベントが‘A’と定義され
ている。同様にして、商品としてTVを購入したイベン
トは‘B’と定義される。
【0070】また、イベント間定義のボックス134お
よび136には、定義されたイベント名が入力され、ボ
ックス135には、ボックス134および136に入力
されたイベント間の関係が入力される。そして、ユーザ
がOKボタン137をクリックすると、イベント間定義
の指定が完了する。ここでは、イベントAとイベントB
の間の関係について、イベントAの後でイベントBが起
こるという条件が指定されている。これ以外にも、例え
ば、2つのイベントの間隔が所定日数以内であるといっ
た指定が可能である。
【0071】また、イベントパターンは、正規表現の拡
張によって指定することもできる。正規表現では、複数
イベントの同時発生とイベント間の間隔の記述がサポー
トされていないが、これらの記述を追加することによっ
て、順序を考慮したイベントパターンが指定できる。例
えば、同時発生を‘=’で表現するとすれば、イベント
A:“商品=PC,価格=10万円”とイベントB:
“商品=TV,価格=5万円”が同時に発生すること
を、以下のように表現することができる。
【0072】イベントパターン: イベント定義 イベントA:商品=PC,価格=10万円 イベントB:商品=TV,価格=5万円 イベント間定義 イベントA.日付=イベントB.日付 また、イベントAとイベントBが同時に発生した後で、
イベントC:“商品=VTR,価格=3万円”が発生す
るパターンについては、以下のように記述することがで
きる。
【0073】イベントパターン: イベント定義 イベントA:商品=PC,価格=10万円 イベントB:商品=TV,価格=5万円 イベントC:商品=VTR,価格=3万円 イベント間定義 イベントA.日付=イベントB.日付 < イベント
C.日付 このように、同時発生と間隔の記述を導入することで、
正規表現では表すことのできないイベントパターンを容
易に指定することができる。
【0074】前述したように、検索処理部が与えられた
イベントパターンを解釈して処理を行うとき、インター
プリタのように動的に解釈する方法と、コンパイラのよ
うにパターンを計算機で実行可能な命令に置き換えてし
まう方法とがある。検索処理部は、与えられたデータ中
からイベントパターンにマッチするパターンを発見する
と、発見したパターンについてあらかじめ決められた情
報を出力する。例えば、図34のデータについて、以下
のような問い合わせを行った場合を説明する。
【0075】イベントパターン: イベント定義 イベントA:商品=牛乳 イベントB:商品=パン イベント間定義 イベントA.日付=イベントB.日付 検索装置がパターンを発見する度に、発見されたパター
ンを構成するレコード群の情報をそのまま出力する場
合、以下の2つのレコードの情報が出力される。
【0076】 10001 03/21 牛乳 189 (イベントA
に対応するレコード) 10001 03/21 パン 300 (イベントB
に対応するレコード) また、発見されたパターンの出力フォーマットをユーザ
が指定可能にすることもできる。この場合、発見された
パターンを構成するレコード群の情報が、指定されたフ
ォーマットにコンパイルされて出力される。例えば、上
記の問い合わせにおいて、出力の形式を、 イベントA.商品,イベントB.商品 と指定すれば、牛乳,パンのような検索結果が出力され
る。さらに、“イベントB.日付−イベントA.日付”
のように、特定のフィールドの値を用いた演算を指定す
ることも可能である。この場合、発見されたパターンに
含まれるレコードの指定されたフィールドの値に関し
て、指定された演算の結果が出力される。
【0077】また、パターンをすべて発見した後に、レ
コード群の集約演算(aggregate function)を実行する
ことも可能である。集約演算としては、最小値(MI
N)、最大値(MAX)、平均(AVG)、総和(SU
M)といった一般的な関数が用いられる。これらの集約
演算を処理する際には、1つ1つのパターンを発見した
ら、それらをバッファに保存しておき、処理の区切りが
ついたところで、保存されたパターンすべてを対象とし
て演算を実行する。例えば、上記の問い合わせに対し
て、ユーザは、AVG(イベントB.日付−イベント
A.日付)のような集約演算を指定することができる。
【0078】イベントパターンにマッチするパターンが
見つからない場合には、なんらかの形でユーザにその旨
を通知する必要がある。例えば、マッチするパターンが
ないことを示すレコードをあらかじめ用意しておき、そ
れを用いてメッセージを画面上に表示することで、ユー
ザにこれを通知することができる。図34のデータの場
合、以下の問い合わせを行うと、マッチするパターンは
存在しない。
【0079】イベントパターン: イベント定義 イベントA:商品=牛乳 イベントB:商品=パン イベント間定義 イベントA.日付<イベントB.日付 複数のフィールドからなるレコードの集合がデータとし
て与えられた際に、レコードのグループバイ(グループ
化)を行って、処理を高速化することもできる。このと
き、どのフィールドでグループ化し、各グループのレコ
ード群をどのフィールドで整列(ソート)するかを指定
して、あらかじめレコードを並べ替えておく。グループ
化に用いるフィールドとしては、複数のフィールドを指
定することができる。
【0080】例えば、図15のようなデータを検索対象
として、顧客IDフィールドでグループ化し、各グルー
プのレコードを購入日で整列するものとする。この場
合、グループ化と整列により、検索対象データは図16
のように並べ替えられる。顧客IDが11000100
1の顧客は、2001/01/13に1回目の来店を行
い、商品AとNの2点を購入した。また、同じ顧客が2
001/01/28に2回目の来店を行い、別の商品B
を購入している。こうして、並べ替えられたデータを対
象として、イベントパターンが指定される。
【0081】イベントパターンのイベント定義とは、前
述したように、あるフィールドがどのような値を取るか
を1つあるいは複数のフィールドについて定義し、それ
らの条件全体に1つの名前を付けたものである。また、
イベント間定義とは、複数のイベントにまたがる制約の
ことである。
【0082】図16のデータにおいて、図17に示すよ
うに、商品のフィールドが“A”であるレコードをEv
ent1と定義し、商品のフィールドが“B”であるレ
コードをEvent2と定義したとする。さらに、Ev
ent1とEvent2について、Event1とEv
ent2が発生した日(購入日)の間隔が30日以内で
あり、Event1の価格とEvent2の価格が等し
いと指定すると、図18に示すようなイベントパターン
が得られる。
【0083】この例では、データがグループ化して整列
されているので、検索処理部は、各グループについて整
列されたデータを順番に取り出すだけで、マッチングを
行うことができる。もし、グループ化と整列が行われて
おらず、データがメモリ上に乗り切らない場合には、何
度もデータを読み込む必要が生じるため、処理の効率が
悪くなる。したがって、グループ化と整列による高速化
のメリットは明らかである。
【0084】上述の例では、データをグループ化して、
各グループ内で整列を行っているが、検索対象データ全
体を1つのグループとみなした場合も、同様にして、デ
ータを順序に従って整列することで、処理を高速化でき
る。図19は、ある店舗の売上データを日付順に整列し
た例を示している。このようにデータ全体を日付順に整
列することで、m個のデータ項目からn個のイベントを
検索する処理が、O(mn)のオーダからO(m+n)
のオーダに効率化される。
【0085】また、インデクスを用いれば、データのグ
ループ化と整列を行うことなく、同等の高速化を達成す
ることができる。この方法では、レコードの集合は、グ
ループ軸と順序軸でインデクス付けして処理され、レコ
ードへのアクセスをグループ毎に順番に行うことができ
る。
【0086】図20は、このようなインデクスによるデ
ータアクセスを示している。この例では、グループ情報
保持部141と複数のインデクス142を介して、デー
タ143がアクセスされる。グループ情報保持部141
は、複数のグループに対応する複数の顧客識別子(CI
D1〜CID4)と、各顧客識別子に対応するインデク
ス142へのポインタを保持している。また、各インデ
クス142は、複数の日付データと各日付データに対応
するレコードへのポインタを保持している。検索処理部
は、グループ情報保持部141とインデクス142を用
いることで、グループ毎に日付順にレコードにアクセス
することができる。
【0087】また、データ全体を1つのグループとみな
した場合でも、インデクスを利用すれば、整列を行うこ
となく、同等の高速化を達成することができる。この場
合、図20のグループ情報保持部141が不要となるた
め、図21のような構成が用いられる。検索処理部は、
インデクス142を用いることで、日付順にレコードに
アクセスすることができる。
【0088】次に、図22から図27までを参照しなが
ら、検索処理の具体例として、例1、例2、および例3
について説明する。図22は、検索対象となる売上デー
タを示している。図22において、各レコードは、RI
D(レコード識別子)、顧客ID、購入日、商品、およ
び価格の5つのフィールドからなる。データは、顧客I
Dフィールドでグループ化され、さらに、グループ内で
のレコードの順序は、購入日フィールドに従って並び替
えられているものとする。
【0089】図22では、スペースの都合上、顧客ID
が110001001のグループに関するレコードのみ
が示されている。また、以下では、主として、このグル
ープに関する処理についてのみ説明するが、実際には、
他の顧客IDのグループについても同様の処理が行われ
る。(例1)以下のように指定されるイベントパターン
を考える。
【0090】イベントパターン: イベント定義 Event1:商品=A Event2:価格<=838 イベント間定義 Event2:Event1から3日以内 (Event2.購入日<=Event1.購入日+3
日) このような問い合わせが与えられると、検索処理部は、
問い合わせを解釈して、図23に示すようなパターン構
造(問い合わせパターン)を内部的に生成する。パター
ンマッチングの実行には、様々な実現方法が考えられる
が、図6に示したポインタP2を利用することが可能で
ある。処理の開始時には、このポインタが問い合わせパ
ターンの先頭を指すように、初期化しておく。
【0091】パターンマッチングは、グループ毎に行わ
れる。検索処理部は、各グループについて、レコードを
先頭から順番に取り出し、あらかじめ解釈しておいたイ
ベント定義にマッチするかどうかを調べていく。レコー
ドがイベント定義にマッチすれば、さらに、レコードが
イベント間定義にマッチするかどうかを調べる。レコー
ドがイベント間定義にマッチすれば、ポインタP2を1
つ進める。
【0092】図23の問い合わせパターンでは、図22
の先頭のレコードR1が、ポインタP2が指しているE
vent1のイベント定義にマッチする。そこで、次
に、イベント間定義の条件が満たされるかどうかがチェ
ックされる。ところが、Event1についてはイベン
ト間定義が定義されていないため、レコードR1はイベ
ント定義がマッチしただけで、Event1とマッチし
たことになる。したがって、図24に示すように、ポイ
ンタP2はEvent2を指すように変更される。
【0093】次に、レコードR2が読み込まれ、レコー
ドR2がEvent2のイベント定義である“価格<=
838”を満たすかどうかがチェックされる。しかし、
R2の価格は1800円で、Event2のイベント定
義を満たさないので、次のレコードR3の処理に移る。
R3の価格は838円なので、Event2のイベント
定義についての条件が満たされる。そこで、R3がEv
ent2のイベント間定義を満たすかどうかがチェック
される。
【0094】この場合、イベント間定義は、Event
2すなわちR3が生起したのがEvent1から3日以
内であるという条件を表す。R3とR1の間隔は15日
であるので、イベント間定義の条件を満たしていない。
また、レコードは購入日の早い順に並んでいるため、R
3以降のレコードについては、Event1を満たして
いるレコードR1との間隔が15日以上になることがわ
かる。したがって、現時点でEvent2のイベント間
定義を満たすレコードが存在しないことがわかるので、
このグループの処理は中止される。
【0095】このようにして、各グループのデータにつ
いてマッチング処理が行われ、問い合わせパターンのす
べての条件が満たされた場合に、マッチングが成功す
る。上述した例では、顧客IDが110001001の
グループでは、問い合わせパターンにマッチするパター
ンがデータ中に存在しない。そこで、「指定されたパタ
ーンは存在しない」という結果が出力される。(例2)
以下のように指定されるイベントパターンを考える。マ
ッチング方法としては、最初マッチと全部マッチの2通
りを指定するものとする。
【0096】イベントパターン: イベント定義 Event1:商品=A Event2:価格<=838 イベント間定義 Event2:Event1から3来店以内 (Event2.順序<=Event1.順序+3) この例のイベント定義は、例1のものと同じである。し
かし、イベント間定義としては、例1で用いた制約に代
わって、Event2がEvent1から3来店以内で
あるという制約が用いられる。この場合、各レコードに
は、購入日フィールドの順番に従って、1から始まる数
字が順序番号として付加され、図22の検索対象データ
は、図25に示すような内部形式に変換される。
【0097】図25において、レコードR1とR2に
は、同じ順序1が割り当てられている。この順序は、顧
客IDが110001001の顧客が最初に来店した日
を意味している。同様に、レコードR3とR4に順序2
が割り当てられており、2回目の来店を意味している。
以下、レコードR5、R6、R7には、それぞれ順序
3、4、5が割り当てられており、それぞれ3回目、4
回目、5回目の来店を意味している。なお、ここで示し
た順序は論理的な概念であり、図25のような順序フィ
ールドを物理的に設けるかどうかは、システムの実装に
依存する。
【0098】検索時には、例1と同様に、問い合わせを
解釈して、図26に示すような問い合わせパターンが内
部的に生成される。まず、例1と同様に、最初のレコー
ドR1が、Event1のイベント定義にマッチし、ポ
インタP2は、Event2を指すように変更される。
【0099】次に、レコードR2が読み込まれるが、R
2の価格は838円より高価であるため、次のレコード
R3が、Event2のイベント定義を満たすかどうか
がチェックされる。R3の価格はEvent2のイベン
ト定義を満たしているので、次に、R3がEvent2
のイベント間定義を満たすかどうかがチェックされる。
【0100】この例では、イベント間定義は、Even
t2が生起したのがEvent1から3来店以内である
という条件を表す。言い換えれば、Event2の順序
は、Event1すなわちR1の順序である1に3を足
して得られる4以下であるという条件である。R3の順
序は4以下の2であり、R1の次の来店に対応するの
で、イベント間定義の制約を満たしている。
【0101】R3まで検索した時点で、Event1と
Event2からなるパターン指定を満足しているの
で、マッチした最初のパターンとして(R1,R3)が
出力される。次に、R3と同じ来店日のレコードである
R4についても、Event1をR1とした場合に、E
vent2の条件を満たしているかどうかがチェックさ
れる。その結果、R4についても、Event2のイベ
ント定義とイベント間定義の双方が満たされていること
がわかり、パターン(R1,R4)が出力される。
【0102】2つのパターン(R1,R3)と(R1,
R4)は、まったく同じ来店日で問い合わせパターンを
満たすものであり、どちらかが先であるとは言えない。
このように、同じ位置(日付や時刻)に複数のデータが
存在する場合には、従来の正規表現のデータと異なり、
答えも複数存在する場合がある。
【0103】次のレコードR5は、R3、R4と同じ来
店日ではないので、最初マッチが指定された場合には、
ここで処理が中止される。これに対して、全部マッチが
指定された場合には、R5以降のレコードの処理が同様
に続けられる。その結果、(R1,R3)、(R1,R
4)に加えて、(R1,R6)も検索結果のパターンと
して出力される。R6の価格は581円で838円より
低く、また順序は4であるため、(R1,R6)のパタ
ーンの間隔は3来店となる。したがって、(R1,R
6)は与えられたパターン指定を満たしている。
【0104】検索結果を(Event1.RID,Ev
ent2.RID)のように表すことにすると、最初マ
ッチおよび全部マッチの場合の出力は、それぞれ、以下
のようになる。
【0105】 最初マッチ:(R1,R3),(R1,R4) 全部マッチ:(R1,R3),(R1,R4),(R
1,R6) (例3)以下のように指定されるイベントパターンを考
える。マッチング方法としては、最初マッチと全部マッ
チの2通りを指定するものとする。
【0106】イベントパターン: イベント定義 Event1:商品=A Event2:ANY(ワイルドカードの意味) イベント間定義 Event2:Event1から3来店以内AND E
vent1の価格以下 (Event2.順序<=Event1.順序+3AN
D Event2.価格<=Event1.価格) この例のイベント定義は、例1および例2のものとは異
なり、Event2はワイルドカードとして何にでもマ
ッチできると定義されている。イベント間定義におい
て、例2で用いたEvent1とEvent2が3来店
以内という制約に加えて、Event2の価格がEve
nt1の価格と同じかそれより低いという制約が与えら
れている。例2の場合と同様に、各レコードには、購入
日フィールドの順番に従って、1から始まる数字が順序
番号として付加され、図25の内部形式が検索対象デー
タとして用いられる。
【0107】検索時には、例1および例2と同様に、問
い合わせを解釈して、図27に示すような問い合わせパ
ターンが内部的に生成される。まず、最初のレコードR
1が、Event1のイベント定義にマッチし、ポイン
タP2は、Event2を指すように変更される。
【0108】次に、レコードR2が読み込まれるが、E
vent2のイベント定義は、ワイルドカードであり、
何にでもマッチする。そこで、Event2のイベント
間定義が満たされるかどうかがチェックされる。イベン
ト間定義は、Event2が生起したのがEvent1
から3来店以内であるという条件と、価格についての条
件である。R2は、Event1から3来店以内という
1番目の条件は満たしているが、R2の価格はR1の価
格より高価であるため2番目の条件が成立しない。
【0109】次に、レコードR3が読み込まれる。R3
についても、Event2のイベント定義は無条件に満
たしている。そこで、R3がEvent2のイベント間
定義を満たすかどうかがチェックされる。R3の順序は
4以下の2であり、R1の次の来店である。また、R3
の価格838円はEvent1の価格よりも低い。した
がって、2つの条件の両方を満たしているので、イベン
ト間定義の制約は満たされる。
【0110】R3まで検索した時点で、Event1と
Event2からなるパターン指定を満足しているの
で、マッチした最初のパターンとして(R1,R3)が
出力される。次に、レコードR4についても、Even
t2の条件を満たしているかどうかがチェックされ、イ
ベント定義とイベント間定義の双方が満たされているこ
とがわかるので、パターン(R1,R4)が出力され
る。
【0111】次のレコードR5は、R3、R4と同じ来
店日ではないので、最初マッチが指定された場合には、
ここで処理が中止される。これに対して、全部マッチが
指定された場合には、R5以降のレコードの処理が同様
に続けられる。その結果、(R1,R3)、(R1,R
4)に加えて、(R1,R6)も検索結果のパターンと
して出力される。R6の順序は4であるため、(R1,
R6)のパターンの間隔は3来店となる。さらに、R6
の価格は581円でR1の価格838円より低いので、
(R1,R6)は与えられたパターン指定を満たしてい
る。こうして、最初マッチおよび全部マッチの場合の出
力は、それぞれ、以下のようになる。
【0112】 最初マッチ:(R1,R3),(R1,R4) 全部マッチ:(R1,R3),(R1,R4),(R
1,R6) 以上説明した3つの例のイベントパターンでは、簡単の
ため、Event1とEvent2の2つのイベントの
みが用いられている。また、イベント定義とイベント間
定義としては、1つあるいは2つの条件のみが用いられ
ている。しかし、実際には、イベントパターンをより多
くの数のイベントによって指定することが可能であり、
イベント定義およびイベント間定義においても、より多
くの条件を指定することが可能である。
【0113】ところで、図4の検索装置は、例えば、図
28に示すような情報処理装置(コンピュータ)を用い
て構成される。図28の情報処理装置は、CPU(中央
処理装置)151、メモリ152、入力装置153、出
力装置154、外部記憶装置155、媒体駆動装置15
6、およびネットワーク接続装置157を備え、それら
はバス158により互いに接続されている。
【0114】メモリ152は、例えば、ROM(read o
nly memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
CPU151は、メモリ152を利用してプログラムを
実行することにより、必要な処理を行う。図4の検索処
理部113は、メモリ152に格納されたプログラムに
対応する。
【0115】入力装置153は、例えば、キーボード、
ポインティングデバイス、タッチパネル等であり、ユー
ザからの指示や情報の入力に用いられる。出力装置15
4は、例えば、ディスプレイ、プリンタ、スピーカ等で
あり、ユーザへの問い合わせや検索結果の出力に用いら
れる。
【0116】外部記憶装置155は、例えば、磁気ディ
スク装置、光ディスク装置、光磁気ディスク装置、テー
プ装置等である。情報処理装置は、この外部記憶装置1
55に、上述のプログラムとデータを保存しておき、必
要に応じて、それらをメモリ152にロードして使用す
る。
【0117】媒体駆動装置156は、可搬記録媒体15
9を駆動し、その記録内容にアクセスする。可搬記録媒
体159としては、メモリカード、フレキシブルディス
ク、CD−ROM(compact disk read only memory
)、光ディスク、光磁気ディスク等、任意のコンピュ
ータ読み取り可能な記録媒体が用いられる。ユーザは、
この可搬記録媒体159に上述のプログラムとデータを
格納しておき、必要に応じて、それらをメモリ152に
ロードして使用する。
【0118】ネットワーク接続装置157は、LAN
(local area network)やインターネット等の任意の通
信ネットワークに接続され、通信に伴うデータ変換を行
う。情報処理装置は、上述のプログラムとデータをネッ
トワーク接続装置157を介して他の装置から受け取
り、必要に応じて、それらをメモリ152にロードして
使用する。
【0119】図29は、図28の情報処理装置にプログ
ラムとデータを供給することのできるコンピュータ読み
取り可能な記録媒体を示している。可搬記録媒体159
やサーバ160のデータベース161に保存されたプロ
グラムとデータは、メモリ152にロードされる。この
とき、サーバ160は、プログラムとデータを搬送する
搬送信号を生成し、ネットワーク上の任意の伝送媒体を
介して情報処理装置に送信する。そして、CPU151
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。 (付記1) 複数の属性からなるレコードの集合からレ
コードの組み合わせを検索する検索装置であって、レコ
ード内の所定属性が特定の値をとることをそれぞれ定義
する複数のイベントと、属性値の順序に基づいて定義さ
れた該複数のイベントの間の順序関係とを用いて、検索
パターンを指定する指定手段と、前記レコードの集合か
ら、指定された検索パターンに対応するレコードの組み
合わせを検索する検索手段と、検索結果を出力する出力
手段とを備えることを特徴とする検索装置。 (付記2) 前記指定手段は、2つ以上のイベントが同
じ順序に存在するような検索パターンを指定することを
特徴とする付記1記載の検索装置。 (付記3) 前記指定手段は、前記複数のイベントの順
序関係を任意の間隔で記述した検索パターンを指定する
ことを特徴とする付記1記載の検索装置。 (付記4) 第1の属性を含むレコードの集合と第2の
属性を含むレコードの集合をまとめて、該第1および第
2の属性を含むレコードの集合を生成する手段をさらに
備え、前記検索手段は、生成されたレコードの集合を検
索することを特徴とする付記1記載の検索装置。 (付記5) 前記複数の属性のうち少なくとも1つの値
のデータを圧縮することで、前記レコードの集合のデー
タを圧縮する手段をさらに備え、前記検索手段は、圧縮
されたデータを検索することを特徴とする付記1記載の
検索装置。 (付記6) 前記検索パターンに基づき、前記レコード
の集合から不要なレコードを削除する手段をさらに備
え、前記検索手段は、残されたレコードの集合を検索す
ることを特徴とする付記1記載の検索装置。 (付記7) 前記複数の属性のうち階層構造を持つ属性
に関して、階層に基づいて属性値を書き換える手段をさ
らに備え、前記検索手段は、書き換えられたレコードの
集合を検索することを特徴とする付記1記載の検索装
置。 (付記8) 前記指定手段は、前記検索パターンとレコ
ードの組み合わせのパターンマッチングの方法として、
該検索パターンにマッチするイベントの組み合わせの中
でイベント間の間隔が最長の組み合わせを返す最長マッ
チと、該検索パターンにマッチするイベントの組み合わ
せの中でイベント間の間隔が最短の組み合わせを返す最
短マッチと、該最短マッチの繰り返しと、該検索パター
ンにマッチするすべてのイベントの組み合わせを返す全
部マッチと、該検索パターンに逆向きにマッチするイベ
ントの組み合わせの中で間隔が最長の組み合わせを返す
逆向きの最長マッチと、該検索パターンに逆向きにマッ
チするイベントの組み合わせの中で間隔が最短の組み合
わせを返す逆向きの最短マッチのうちの1つの方法を指
定し、前記検索手段は、指定された方法でパターンマッ
チングを行うことを特徴とする付記1記載の検索装置。 (付記9) 前記指定手段は、前記複数のイベントと順
序関係を定義するためのグラフィック・ユーザ・インタ
フェースを含むことを特徴とする付記1記載の検索装
置。 (付記10) 前記出力手段は、前記検索パターンに対
応するレコードの組み合わせの情報を出力することを特
徴とする付記1記載の検索装置。 (付記11) 前記指定手段は、前記検索結果のフォー
マットを指定し、前記出力手段は、前記検索パターンに
対応するレコードの組み合わせの情報を、指定されたフ
ォーマットにコンパイルして出力することを特徴とする
付記1記載の検索装置。 (付記12) 前記出力手段は、前記検索パターンに対
応するレコードの組み合わせに関する集約演算を行っ
て、演算結果を出力することを特徴とする付記1記載の
検索装置。 (付記13) 前記指定手段は、レコードの整列に用い
る属性を指定し、前記検索手段は、指定された属性の値
に基づいて前記レコードの集合を整列し、整列したレコ
ードの集合を検索することを特徴とする付記1記載の検
索装置。 (付記14) 前記指定手段は、レコードのグループ化
に用いる属性を指定し、前記検索手段は、指定された属
性の値に基づいて前記レコードの集合をグループ化し、
各グループ内のレコードを整列することを特徴とする付
記13記載の検索装置。 (付記15) 前記レコードの集合を前記属性値の順序
に従ってアクセスするためのインデクス手段をさらに備
えることを特徴とする付記1記載の検索装置。 (付記16) 前記レコードの集合を所定の属性値に基
づいてグループ毎にアクセスするためのグループ情報保
持手段をさらに備えることを特徴とする付記15記載の
検索装置。 (付記17) 複数の属性からなるレコードの集合から
レコードの組み合わせを検索するコンピュータのための
プログラムであって、レコード内の所定属性が特定の値
をとることをそれぞれ定義する複数のイベントと、属性
値の順序に基づいて定義された該複数のイベントの間の
順序関係とを用いて、検索パターンを指定し、前記レコ
ードの集合から、指定された検索パターンに対応するレ
コードの組み合わせを検索し、検索結果を出力する処理
を前記コンピュータに実行させることを特徴とするプロ
グラム。 (付記18) 複数の属性からなるレコードの集合から
レコードの組み合わせを検索するコンピュータのための
プログラムを記録した記録媒体であって、該プログラム
は、レコード内の所定属性が特定の値をとることをそれ
ぞれ定義する複数のイベントと、属性値の順序に基づい
て定義された該複数のイベントの間の順序関係とを用い
て、検索パターンを指定し、前記レコードの集合から、
指定された検索パターンに対応するレコードの組み合わ
せを検索し、検索結果を出力する処理を前記コンピュー
タに実行させることを特徴とするコンピュータ読み取り
可能な記録媒体。 (付記19) 複数の属性からなるレコードの集合から
レコードの組み合わせを検索するコンピュータにプログ
ラムを搬送する搬送信号であって、該プログラムは、レ
コード内の所定属性が特定の値をとることをそれぞれ定
義する複数のイベントと、属性値の順序に基づいて定義
された該複数のイベントの間の順序関係とを用いて、検
索パターンを指定し、前記レコードの集合から、指定さ
れた検索パターンに対応するレコードの組み合わせを検
索し、検索結果を出力する処理を前記コンピュータに実
行させることを特徴とする搬送信号。 (付記20) 複数の属性からなるレコードの集合から
レコードの組み合わせを検索する検索方法であって、レ
コード内の所定属性が特定の値をとることをそれぞれ定
義する複数のイベントと、属性値の順序に基づいて定義
された該複数のイベントの間の順序関係とを用いて指定
された、検索パターンをコンピュータに入力し、前記コ
ンピュータが、前記レコードの集合から、指定された検
索パターンに対応するレコードの組み合わせを検索し、
前記コンピュータが、検索結果を出力することを特徴と
する検索方法。
【0120】
【発明の効果】本発明によれば、データ間の順序を考慮
したパターンを容易に指定して、指定されたパターンを
検索することが可能になる。また、本発明は、パターン
の定義を変えるだけで様々な種類の検索に対応すること
ができ、実用的に極めて有用である。
【図面の簡単な説明】
【図1】本発明の検索装置の原理図である。
【図2】イベント定義を示す図である。
【図3】イベント間定義を示す図である。
【図4】検索装置の構成図である。
【図5】全体処理のフローチャートである。
【図6】検索時のデータ構造を示す図である。
【図7】検索処理のフローチャートである。
【図8】第1のテーブルを示す図である。
【図9】第2のテーブルを示す図である。
【図10】SQL文を示す図である。
【図11】圧縮されたデータを示す図である。
【図12】レコードの削減処理を示す図である。
【図13】第1の検索対象データを示す図である。
【図14】GUIの画面を示す図である。
【図15】第2の検索対象データを示す図である。
【図16】並べ替えられたデータを示す図である。
【図17】イベント定義に対応するレコードを示す図で
ある。
【図18】イベントパターンに対応するレコードを示す
図である。
【図19】整列されたデータを示す図である。
【図20】第1のインデクスを示す図である。
【図21】第2のインデクスを示す図である。
【図22】第3の検索対象データを示す図である。
【図23】第1の問い合わせパターンを示す図である。
【図24】ポインタの移動を示す図である。
【図25】検索対象データの内部形式を示す図である。
【図26】第2の問い合わせパターンを示す図である。
【図27】第3の問い合わせパターンを示す図である。
【図28】情報処理装置の構成図である。
【図29】記録媒体を示す図である。
【図30】正規表現によるパターンマッチングを示す図
である。
【図31】NFAを示す図である。
【図32】DFAを示す図である。
【図33】正規表現の演算子を示す図である。
【図34】小売業売上データを示す図である。
【符号の説明】
101 指定手段 102 検索手段 103 出力手段 104 レコードの集合 105、112 検索パターン 111 データ 113 検索処理部 114 結果 121 ファイル 122 読み込みバッファ 123 メモリ 131、132、134、135、136 ボックス 133、137 OKボタン 141 グループ情報保持部 142 インデクス 143 データ 151 CPU 152 メモリ 153 入力装置 154 出力装置 155 外部記憶装置 156 媒体駆動装置 157 ネットワーク接続装置 158 バス 159 可搬記録媒体 160 サーバ 161 データベース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 久保田 和己 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 武 理一郎 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 (72)発明者 幾田 諭史 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B075 ND18 NK46 NR12 PP03

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 複数の属性からなるレコードの集合から
    レコードの組み合わせを検索する検索装置であって、 レコード内の所定属性が特定の値をとることをそれぞれ
    定義する複数のイベントと、属性値の順序に基づいて定
    義された該複数のイベントの間の順序関係とを用いて、
    検索パターンを指定する指定手段と、 前記レコードの集合から、指定された検索パターンに対
    応するレコードの組み合わせを検索する検索手段と、 検索結果を出力する出力手段とを備えることを特徴とす
    る検索装置。
  2. 【請求項2】 前記指定手段は、2つ以上のイベントが
    同じ順序に存在するような検索パターンを指定すること
    を特徴とする請求項1記載の検索装置。
  3. 【請求項3】 前記指定手段は、前記複数のイベントの
    順序関係を任意の間隔で記述した検索パターンを指定す
    ることを特徴とする請求項1記載の検索装置。
  4. 【請求項4】 前記複数の属性のうち少なくとも1つの
    値のデータを圧縮することで、前記レコードの集合のデ
    ータを圧縮する手段をさらに備え、前記検索手段は、圧
    縮されたデータを検索することを特徴とする請求項1記
    載の検索装置。
  5. 【請求項5】 前記指定手段は、前記検索パターンとレ
    コードの組み合わせのパターンマッチングの方法とし
    て、該検索パターンにマッチするイベントの組み合わせ
    の中でイベント間の間隔が最長の組み合わせを返す最長
    マッチと、該検索パターンにマッチするイベントの組み
    合わせの中でイベント間の間隔が最短の組み合わせを返
    す最短マッチと、該最短マッチの繰り返しと、該検索パ
    ターンにマッチするすべてのイベントの組み合わせを返
    す全部マッチと、該検索パターンに逆向きにマッチする
    イベントの組み合わせの中で間隔が最長の組み合わせを
    返す逆向きの最長マッチと、該検索パターンに逆向きに
    マッチするイベントの組み合わせの中で間隔が最短の組
    み合わせを返す逆向きの最短マッチのうちの1つの方法
    を指定し、前記検索手段は、指定された方法でパターン
    マッチングを行うことを特徴とする請求項1記載の検索
    装置。
  6. 【請求項6】 前記出力手段は、前記検索パターンに対
    応するレコードの組み合わせに関する集約演算を行っ
    て、演算結果を出力することを特徴とする請求項1記載
    の検索装置。
  7. 【請求項7】 前記指定手段は、レコードの整列に用い
    る属性を指定し、前記検索手段は、指定された属性の値
    に基づいて前記レコードの集合を整列し、整列したレコ
    ードの集合を検索することを特徴とする請求項1記載の
    検索装置。
  8. 【請求項8】 前記レコードの集合を前記属性値の順序
    に従ってアクセスするためのインデクス手段をさらに備
    えることを特徴とする請求項1記載の検索装置。
  9. 【請求項9】 複数の属性からなるレコードの集合から
    レコードの組み合わせを検索するコンピュータのための
    プログラムであって、 レコード内の所定属性が特定の値をとることをそれぞれ
    定義する複数のイベントと、属性値の順序に基づいて定
    義された該複数のイベントの間の順序関係とを用いて、
    検索パターンを指定し、 前記レコードの集合から、指定された検索パターンに対
    応するレコードの組み合わせを検索し、 検索結果を出力する処理を前記コンピュータに実行させ
    ることを特徴とするプログラム。
  10. 【請求項10】 複数の属性からなるレコードの集合か
    らレコードの組み合わせを検索する検索方法であって、 レコード内の所定属性が特定の値をとることをそれぞれ
    定義する複数のイベントと、属性値の順序に基づいて定
    義された該複数のイベントの間の順序関係とを用いて指
    定された、検索パターンをコンピュータに入力し、 前記コンピュータが、前記レコードの集合から、指定さ
    れた検索パターンに対応するレコードの組み合わせを検
    索し、 前記コンピュータが、検索結果を出力することを特徴と
    する検索方法。
JP2001340817A 2001-11-06 2001-11-06 順序を考慮したパターンを用いた検索装置および方法 Pending JP2003141158A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001340817A JP2003141158A (ja) 2001-11-06 2001-11-06 順序を考慮したパターンを用いた検索装置および方法
US10/092,444 US6990487B2 (en) 2001-11-06 2002-03-08 Searching apparatus and searching method using pattern of which sequence is considered

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001340817A JP2003141158A (ja) 2001-11-06 2001-11-06 順序を考慮したパターンを用いた検索装置および方法

Publications (1)

Publication Number Publication Date
JP2003141158A true JP2003141158A (ja) 2003-05-16

Family

ID=19154962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001340817A Pending JP2003141158A (ja) 2001-11-06 2001-11-06 順序を考慮したパターンを用いた検索装置および方法

Country Status (2)

Country Link
US (1) US6990487B2 (ja)
JP (1) JP2003141158A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007323546A (ja) * 2006-06-05 2007-12-13 Fujitsu Ltd 検索処理方法及び装置
JP2014531647A (ja) * 2011-09-09 2014-11-27 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 基準ベースラインに基づき、イベントシーケンス中の時間的位置に従ってイベントを評価するシステム及び方法
JP2015022370A (ja) * 2013-07-16 2015-02-02 富士通株式会社 照合方法および照合プログラム
JP2015022369A (ja) * 2013-07-16 2015-02-02 富士通株式会社 照合装置、照合方法および照合プログラム

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305391B2 (en) * 2003-02-07 2007-12-04 Safenet, Inc. System and method for determining the start of a match of a regular expression
US20060265357A1 (en) * 2005-04-26 2006-11-23 Potts Matthew P Method of efficiently parsing a file for a plurality of strings
US7958164B2 (en) 2006-02-16 2011-06-07 Microsoft Corporation Visual design of annotated regular expression
US7860881B2 (en) * 2006-03-09 2010-12-28 Microsoft Corporation Data parsing with annotated patterns
US8019754B2 (en) * 2006-04-03 2011-09-13 Needlebot Incorporated Method of searching text to find relevant content
US7945572B2 (en) * 2007-03-21 2011-05-17 The Johns Hopkins University Pattern discovery through reversing time flow
US8275773B2 (en) * 2007-03-30 2012-09-25 Stuart Donnelly Method of searching text to find relevant content
US8271476B2 (en) * 2007-03-30 2012-09-18 Stuart Donnelly Method of searching text to find user community changes of interest and drug side effect upsurges, and presenting advertisements to users
JP5476208B2 (ja) * 2010-05-12 2014-04-23 インターナショナル・ビジネス・マシーンズ・コーポレーション リクエスト処理システム、方法及びプログラム
US9032537B2 (en) * 2011-01-31 2015-05-12 AEMEA Inc. Secure active element machine
US10268843B2 (en) 2011-12-06 2019-04-23 AEMEA Inc. Non-deterministic secure active element machine
US9116947B2 (en) * 2012-03-15 2015-08-25 Hewlett-Packard Development Company, L.P. Data-record pattern searching
CN105446966B (zh) * 2014-05-30 2019-01-18 国际商业机器公司 生成关系数据转换为rdf格式数据的映射规则的方法和装置
CN116483644B (zh) * 2023-06-25 2023-08-25 北京云枢创新软件技术有限公司 用于芯片验证测试回归的日志搜索方法、电子设备和介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440730A (en) * 1990-08-09 1995-08-08 Bell Communications Research, Inc. Time index access structure for temporal databases having concurrent multiple versions
US5204958A (en) * 1991-06-27 1993-04-20 Digital Equipment Corporation System and method for efficiently indexing and storing a large database with high data insertion frequency
US5628008A (en) * 1994-06-15 1997-05-06 Fuji Xerox Co., Ltd. Structured document search formula generation assisting system
US5797008A (en) * 1996-08-09 1998-08-18 Digital Equipment Corporation Memory storing an integrated index of database records
US6742003B2 (en) * 2001-04-30 2004-05-25 Microsoft Corporation Apparatus and accompanying methods for visualizing clusters of data and hierarchical cluster classifications
US6268849B1 (en) * 1998-06-30 2001-07-31 United Video Properties, Inc. Internet television program guide system with embedded real-time data
US6601061B1 (en) * 1999-06-18 2003-07-29 Surfwax, Inc. Scalable information search and retrieval including use of special purpose searching resources

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007323546A (ja) * 2006-06-05 2007-12-13 Fujitsu Ltd 検索処理方法及び装置
JP2014531647A (ja) * 2011-09-09 2014-11-27 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 基準ベースラインに基づき、イベントシーケンス中の時間的位置に従ってイベントを評価するシステム及び方法
US9646155B2 (en) 2011-09-09 2017-05-09 Hewlett Packard Enterprise Development Lp Systems and methods for evaluation of events based on a reference baseline according to temporal position in a sequence of events
JP2015022370A (ja) * 2013-07-16 2015-02-02 富士通株式会社 照合方法および照合プログラム
JP2015022369A (ja) * 2013-07-16 2015-02-02 富士通株式会社 照合装置、照合方法および照合プログラム

Also Published As

Publication number Publication date
US20030093416A1 (en) 2003-05-15
US6990487B2 (en) 2006-01-24

Similar Documents

Publication Publication Date Title
JP4047053B2 (ja) 繰り返しを含む順序パターンを用いた検索装置および方法
US6163774A (en) Method and apparatus for simplified and flexible selection of aggregate and cross product levels for a data warehouse
US6662189B2 (en) Method of performing data mining tasks for generating decision tree and apparatus therefor
US5303367A (en) Computer driven systems and methods for managing data which use two generic data elements and a single ordered file
JP2003141158A (ja) 順序を考慮したパターンを用いた検索装置および方法
US7865495B1 (en) Word deletion for searches
US7805440B2 (en) System and method for simplifying and manipulating k-partite graphs
US6226634B1 (en) Association rule generation and group-by processing system
US9501474B2 (en) Enhanced use of tags when storing relationship information of enterprise objects
JP2001167087A (ja) 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法
US20040015486A1 (en) System and method for storing and retrieving data
US20020120620A1 (en) Method and system for composing a query for a database and traversing the database
WO2000008632A1 (en) Method for determining actionable patterns in a database
JP3452531B2 (ja) データ・マイニングする方法およびシステム
Rozsnyai et al. Large-scale distributed storage system for business provenance
JP2008269643A (ja) データベース・システムでデータを編成し、問合せを処理する方法、およびそのような方法を実施するためのデータベース・システムおよびソフトウェア製品
Hung et al. RDF aggregate queries and views
US20160364426A1 (en) Maintenance of tags assigned to artifacts
KR100296500B1 (ko) 지능형 인터넷 쇼핑몰 상품비교검색엔진
JP2004110327A (ja) 時系列相関抽出装置
US8423523B2 (en) Apparatus and method for utilizing context to resolve ambiguous queries
US8504552B2 (en) Query based paging through a collection of values
JPH06124308A (ja) 情報整理処理装置
JP5238105B2 (ja) プログラム、及びデータ抽出方法
JP2002202973A (ja) 構造化文書管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040524

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070904