JP2015022370A - 照合方法および照合プログラム - Google Patents

照合方法および照合プログラム Download PDF

Info

Publication number
JP2015022370A
JP2015022370A JP2013147955A JP2013147955A JP2015022370A JP 2015022370 A JP2015022370 A JP 2015022370A JP 2013147955 A JP2013147955 A JP 2013147955A JP 2013147955 A JP2013147955 A JP 2013147955A JP 2015022370 A JP2015022370 A JP 2015022370A
Authority
JP
Japan
Prior art keywords
window
event
condition
time
collation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013147955A
Other languages
English (en)
Other versions
JP6107495B2 (ja
Inventor
多湖 真一郎
Shinichiro Tako
真一郎 多湖
孝 河東
Takashi Kato
孝 河東
稲越 宏弥
Hiroya Inakoshi
宏弥 稲越
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 JP2013147955A priority Critical patent/JP6107495B2/ja
Priority to US14/307,740 priority patent/US9589020B2/en
Publication of JP2015022370A publication Critical patent/JP2015022370A/ja
Application granted granted Critical
Publication of JP6107495B2 publication Critical patent/JP6107495B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】クエリと照合データとのマッチングを高速に行うこと。【解決手段】照合装置100は、クエリ141に定義されたウィンドウ幅条件よりも大きいウィンドウを、照合データ142に対して設定し、クエリ141に定義されたウィンドウのイベント条件を満たすウィンドウを、仮ウィンドウとして設定する。そして、照合装置100は、各仮ウィンドウの組みについて、インターバル条件をチェックし、インターバル条件を満たす仮ウィンドウの組みに含まれるイベントを照合結果として出力する。【選択図】図1

Description

本発明は、照合方法等に関する。
規則性を持つ複数のイベントによる事象を分析、検知し、リアクションすることで、ビジネス活動を効率化していくことが重要である。イベントの検知に関し、従来技術では、クエリを定義し、クエリと照合データとをマッチングすることで、所定の規則性を持つイベントの組みを照合データから検出する。クエリは、イベントを一意に識別するイベント条件と、イベント条件間の間隔を示すインターバル条件とによって定義される。
図29は、従来技術を説明するためのクエリの一例を示す図(1)である。クエリ10は、クーポンを発行してから3日以内に商品を購入した事象を検出するクエリの一例である。図29に示す例では、クエリ10は、ノード11,12を有し、ノード11はイベント条件「クーポン発行」を示し、ノード12は、イベント条件「商品購入」を示す。また、ノード11,12間のインターバル条件は「0−3日」となる。
図30は、従来技術を説明するための照合データの一例を示す図(1)である。図30の照合データ20は、イベントが発生した日付と、該当するイベントとが対応付けられる。図30の横軸は、日付を表す。例えば、図30に示す例では、日付「1/2、1/5、1/12」に、イベント「クーポン発行」が発生した旨が示される。
従来技術により、クエリ10と照合データ20とをマッチングすると、日付「1/5」のイベント「クーポン発行」と、日付「1/6」のイベント「商品購入」との組みがヒットする。また、イベント「クーポン発行」とイベント「商品購入」との間隔が「0」であり、インターバル条件「0−3日」を満たすためである。このため、従来技術は、日付「1/5」のイベント「クーポン発行」と、日付「1/6」のイベント「商品購入」との組みを検出結果として出力する。
続いて、ウィンドウ型直列パターンのクエリについて説明する。ウィンドウ型直列パターンのクエリは、イベントの出現順序を規定しないウィンドウを直列に接続したものである。図31は、ウィンドウ型直列パターンのクエリの一例を示す図である。図31に示すクエリ30は、ウィンドウ31およびウィンドウ32が定義され、ウィンドウ31およびウィンドウ32が直列に接続される。ウィンドウ31とウィンドウ32との間隔は、インターバル条件「5−8分」が設定されている。
ウィンドウ31は、イベント条件31a,31b,31cを有する。イベント条件31aは、イベント「商品を手に取る」が出現するという条件である。イベント条件31bは、イベント「店員が声をかける」が出現するという条件である。イベント条件31bは、「タイムセールを行う」が出現するという条件である。
ウィンドウ31のウィンドウ幅条件は、4分である。このため、ある開始時刻から4分後までの時間帯に、イベント条件31a,31b,31cを満たすイベントが出現する場合には、ウィンドウ31の条件を満たすことになる。
ウィンドウ32は、イベント条件32a,32bを有する。イベント条件32aは、イベント「商品を購入する」が出現するという条件である。イベント条件32bは、イベント「店員が値下げする」が出現するという条件である。
ウィンドウ32のウィンドウ幅条件は、3分である。このため、ある開始時刻から3分後までの時間帯に、イベント条件32a,32bを満たすイベントが出現する場合には、ウィンドウ32の条件を満たすことになる。
従来技術は、照合データ上に、ウィンドウを設定し、ウィンドウをずらしながら、ウィンドウ31,32の条件を満たすイベントの組みを照合データから検出する。そして、従来技術は、ウィンドウ31の条件を満たす時間帯と、ウィンドウ32の条件を満たす時間帯との間隔が、インターバル条件を満たす場合に、ウィンドウ31、32に含まれる照合データのイベントの組みを、クエリの検索結果として出力する。
図32は、従来技術の手法の一例を示す図である。ここでは、図31に示したクエリ30の条件を満たす照合データ40上のイベントの組みを検出する場合について説明する。図31の照合データ40は、イベントが発生した時刻と、該当するイベントを対応付ける。照合データ40の横軸は時刻を示す。また便宜上、照合データ40では、イベント「商品を手に取る」を「A」、「店員が声をかける」を「B」、「タイムセールを行う」を「C」、「商品を購入する」を「D」、「店員が値下げする」を「E」と表す。
従来技術は、照合データ40上に、クエリ30のウィンドウ31の条件に対応するウィンドウ50と、ウィンドウ32の条件に対応するウィンドウ60を設定する。従来技術は、ウィンドウ50,60を1単位時間ずつずらしながら、クエリ30のウィンドウ31,32の条件を満たすか否かを判定する。
ウィンドウ50の開始時刻がそれぞれ1,2,7,8,9となった時点で、クエリ30のウィンドウ31の条件を満たす。ウィンドウ50の開始時刻が1,2,7,8,9となった時点のウィンドウをそれぞれ、50a,50b,50c,50d,50eと表記する。また、ウィンドウ60の開始時刻が13,14,17,18となった時点で、クエリ30のウィンドウ32の条件を満たす。ウィンドウ60の開始時刻が13、14,17,18となった時点のウィンドウをそれぞれ、60a,60b,60c,60dと表記する。
従来技術は、ウィンドウ50a〜50eと、ウィンドウ60a〜60との組み合わせについてそれぞれクエリ30のインターバル条件を満たすか否かを判定し、インターバル条件を満たすウィンドウの組みに含まれるイベントを検出する。検出されたイベントの組みは、クエリ30の条件を満たす。図32に示す例では、ウィンドウ50a,60aの組み、ウィンドウ50b,60bの組みがクエリ30の条件を満たす。また、ウィンドウ50c,60cの組み、ウィンドウ50d,60cの組み、ウィンドウ50d,60dの組み、ウィンドウ50e,60dの組みがクエリ30の条件を満たす。
特開2004−46601号公報 特開2009−134689号公報 特開2010−108073号公報 特開2013−8329号公報
しかしながら、上述した従来技術では、クエリと照合データとのマッチングを高速に行うことができないという問題がある。
例えば、従来技術では、クエリのウィンドウの条件を満たすウィンドウの数が多くなり、これによって、各ウィンドウの組み合わせの量も大きくなる。そして、従来技術では、各組み合わせについて、クエリのインターバル条件を満たすか否かを判定するため、マッチングを高速に行うことができない。
1つの側面では、クエリと照合データとのマッチングを高速に行うことができる照合方法および照合プログラムを提供することを目的とする。
第1の案では、コンピュータが、クエリに基づいて、ウィンドウ幅条件よりも大きいウィンドウ幅の第2ウィンドウを、イベントとイベントの出現時刻とを対応付けた照合データに設定する。また、コンピュータが、第2ウィンドウに含まれる照合データのイベントおよび各第2ウィンドウのインターバルが、第1ウィンドウのイベント条件およびインターバル条件を満たすか否かを判定する。
本発明の1実施形態によれば、クエリと照合データとのマッチングを高速に行うことができるという効果を奏する。
図1は、本実施例1に係る照合装置の構成を示す機能ブロック図である。 図2は、本実施例1に係るクエリのデータ構造の一例を示す図である。 図3は、本実施例1に係る照合データのデータ構造の一例を示す図である。 図4は、照合データのデータイメージを示す図である。 図5は、本実施例1に係る仮ウィンドウ構築処理の処理手順を示すフローチャートである。 図6は、本実施例1に係る仮ウィンドウ構築処理を説明するための図(1)である。 図7は、本実施例1に係る仮ウィンドウ構築処理を説明するための図(2)である。 図8は、本実施例1に係る仮ウィンドウ構築処理を説明するための図(3)である。 図9は、本実施例1に係る仮ウィンドウ構築処理を説明するための図(4)である。 図10は、本実施例1に係る仮ウィンドウ構築処理の処理結果の一例を示す図である。 図11は、本実施例1に係る照合装置の処理手順を示すフローチャートである。 図12は、本実施例2に係る照合装置の構成を示す機能ブロック図である。 図13は、本実施例2に係るウィンドウ処理部の処理の一例を説明するための図である。 図14は、本実施例2に係る仮ウィンドウ構築処理の処理手順を示すフローチャートである。 図15は、本実施例2に係る仮ウィンドウ構築処理を説明するための図(1)である。 図16は、本実施例2に係る仮ウィンドウ構築処理を説明するための図(2)である。 図17は、本実施例2に係る仮ウィンドウ構築処理を説明するための図(3)である。 図18は、最小インターバル条件を説明するための図である。 図19は、最大インターバル条件を説明するための図である。 図20は、インターバル条件判定処理の処理手順を示すフローチャート(1)である。 図21は、インターバル条件判定処理の処理手順を示すフローチャート(2)である。 図22は、本実施例2に係るインターバル条件判定処理を説明するための図(1)である。 図23は、本実施例2に係るインターバル条件判定処理を説明するための図(2)である。 図24は、本実施例2に係るインターバル条件判定処理を説明するための図(3)である。 図25は、本実施例2に係るインターバル条件判定処理を説明するための図(4)である。 図26は、組み合わせ展開の結果の一例を示す図である。 図27は、本実施例2に係る照合装置の処理手順を示すフローチャートである。 図28は、照合プログラムを実行するコンピュータの一例を示す図である。 図29は、従来技術を説明するためのクエリの一例を示す図(1)である。 図30は、従来技術を説明するための照合データの一例を示す図(1)である。 図31は、ウィンドウ型直列パターンのクエリの一例を示す図である。 図32は、従来技術の手法の一例を示す図である。
以下に、本願の開示する照合方法および照合プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例1に係る照合装置の構成の一例について説明する。図1は、本実施例1に係る照合装置の構成を示す機能ブロック図である。図1に示すように、この照合装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
通信部110は、ネットワークを介して他の外部装置と通信を実行する処理部である。通信部110は、通信装置に対応する。
入力部120は、照合装置100に入力するための入力装置である。例えば、入力部120は、キーボードやマウス、タッチパネル等に対応する。
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶モニタやタッチパネル等に対応する。
記憶部140は、クエリ141および照合データ142を有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子などの記憶装置に対応する。
クエリ141は、ウィンドウ型直列パターンのクエリである。ウィンドウ型直列パターンのクエリは、イベントの出現順序を規定しないウィンドウを直列に接続したものである。図2は、本実施例1に係るクエリのデータ構造の一例を示す図である。図2に示すように、クエリ141は、ウィンドウ141a,141bが定義され、ウィンドウ141aおよびウィンドウ141bが直列に接続される。ウィンドウ141aとウィンドウ141bとのインターバル条件を「5−8分」とする。
ウィンドウ141aは、イベント「A」が出現するというイベント条件と、イベント「B」が出現するというイベント条件と、イベント「C」が出現するというイベント条件とを含む。また、ウィンドウ141aのウィンドウ幅条件は、4分である。このため、ある開始時刻から4分後までの時間帯に、順不同で、イベントA,B,Cが出現する場合には、ウィンドウ141aの条件を満たすことになる。
ウィンドウ141bは、イベント「D」が出現するというイベント条件と、イベント「E」が出現するというイベント条件とを含む。また、ウィンドウ141bのウィンドウ幅条件は、3分である。このため、ある開始時刻から3分後までの時間帯に、順不同で、イベントD,Eが出現する場合には、ウィンドウ141bの条件を満たすことになる。
照合データ142は、クエリ141の照合対象となる情報であり、イベントの出現時刻の情報を含む。図3は、本実施例1に係る照合データのデータ構造の一例を示す図である。図3に示すように、照合データ142は、時刻と、顧客IDと、場所と、イベントとをそれぞれ対応付ける。時刻は、イベントが出現した時刻を示す情報である。顧客IDは、イベントに関連する顧客を一意に識別する情報である。場所は、イベントが出現した場所を一意に識別する情報である。イベントは、イベントの種別を示す。例えば、図3の時刻「0」分において、場所「3F」でイベント「A」が出現し、顧客ID「432」の顧客に関連する旨のレコードが登録される。
なお、図3の照合データ142のデータイメージは、図4に示すものとなる。図4は、照合データのデータイメージを示す図である。後述する説明では、図4に示すようなデータイメージを利用して、適宜説明を行う。図4の横軸は時刻に対応する。図4において、例えば、時刻「0」において、イベント「A」が出現している。
図1の説明に戻る。制御部150は、ウィンドウ処理部151および照合部152を有する。制御部150は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部150は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。
ウィンドウ処理部151は、クエリ141を参照し、クエリ141のウィンドウのウィンドウ幅条件よりも大きい幅のウィンドウを、照合データ142上に設定する処理部である。例えば、ウィンドウ処理部151は、式(1)に基づく時間幅のウィンドウを、照合データ142に設定する。ウィンドウ処理部151は、照合データ142上に設定したウィンドウが、クエリ141のウィンドウのイベント条件を満たす場合には、設定したウィンドウを仮ウィンドウとする。
ウィンドウ処理部151が、仮ウィンドウを構築する処理手順について説明する。図5は、本実施例1に係る仮ウィンドウ構築処理の処理手順を示すフローチャートである。図5に示すように、ウィンドウ処理部151は、照合データ142の時間を各ウィンドウ幅条件の長さで分割し、分割領域に対して時刻順に番号を付与する(ステップS101)。
ウィンドウ処理部151は、連続する2つの分割領域から最後の時刻を除いた期間を、ウィンドウに対する予備ウィンドウに設定する(ステップS102)。ウィンドウ処理部151は、1つのイベントを検知し(ステップS103)、ウィンドウのイベント条件で振り分ける(ステップS104)。
ウィンドウ処理部151は、イベントの時刻をウィンドウ幅条件で割った値を分割領域番号とし、分割領域番号に一致する予備ウィンドウにイベントを追加する(ステップS105)。ただし、ステップS105において、ウィンドウ処理部151は、ステップS102で取り除いた最後の時刻と、イベントの時刻が一致する場合には、イベントを追加しない。
ウィンドウ処理部151は、予備ウィンドウがウィンドウのイベント条件を満たすか否かを判定する(ステップS106)。ウィンドウ処理部151は、予備ウィンドウがウィンドウのイベント条件を満たさない場合には(ステップS106,No)、ステップS108に移行する。
一方、ウィンドウ処理部151は、予備ウィンドウがウィンドウのイベント条件を満たす場合には(ステップS106,Yes)、予備ウィンドウを仮ウィンドウに設定する(ステップS107)。
ウィンドウ処理部151は、処理を終了する場合には(ステップS108,Yes)、ウィンドウを設定する処理を終了する。一方、ウィンドウ処理部151は、処理を終了しない場合には(ステップS108,No)、ステップS103に移行する。
ここで、図2に示したクエリ141と、図4に示した照合データ142とを例にして、ウィンドウ処理部151が実行する仮ウィンドウ構築処理について説明する。図6〜図9は、本実施例1に係る仮ウィンドウ構築処理を説明するための図である。
図6について、ウィンドウ処理部151は、クエリ141のウィンドウ141aのウィンドウ幅条件「4」によって照合データ142の時間を分割し、分割領域70a,70b,70c,70d,70eを設定する。ウィンドウ処理部151は、分割領域70a〜70eに対して、分割領域番号0〜4をそれぞれ設定する。ウィンドウ処理部151は、クエリ141のウィンドウ141bのウィンドウ幅条件「3」によって照合データ142の時間を分割し、分割領域80a,80b,80c,80d,80e,80f,80gを設定する。ウィンドウ処理部151は、分割領域80a〜80gに対して、分割領域番号0〜6をそれぞれ設定する(ステップS10)。
ウィンドウ処理部151は、連続する分割領域から、最後の時刻を除いた期間を予備ウィンドウに設定する。ウィンドウ処理部151は、分割領域70a,70bについて、最後の時刻「7」を除いた期間を予備ウィンドウ71として設定する。ウィンドウ処理部151は、分割領域80a,80bについて、最後の時刻「5」を除いた期間を予備ウィンドウ81として設定する(ステップS11)。
ウィンドウ処理部151は、他の連続する分割領域についても、上記ステップS11と同様の処理を実行し、予備ウィンドウ72,73,74,75および予備ウィンドウ82,83,84,85,86,87を設定する(ステップS12)。
ウィンドウ処理部151は、予備ウィンドウを設定した後に、照合データ142に対してイベントの走査を開始する。以下の説明では、時刻Xにおいて、イベントYを検知することを、イベント(X,Y)を検知すると適宜表記する。また、予備ウィンドウ71〜75は、図2のクエリ141のウィンドウ141aに定義されたイベント条件A,B,Cに対応するイベントA,B,Cが追加された場合に、イベント条件を満たすことになる。予備ウィンドウ81〜87は、クエリ141のウィンドウ141bに定義されたイベント条件D,Eに対応するイベントD,Eが追加された場合に、イベント条件を満たすことになる。
ウィンドウ処理部151は、イベント(0,A)を検知する。イベントAの時刻が「0」であり、ウィンドウ幅条件が「4」であるため、分割領域番号は「0÷4=0」となる。分割領域番号と同一の番号が割り当てられた分割領域を含む予備ウィンドウ71に、イベントAを追加する。なお、予備ウィンドウ71は、クエリ141のウィンドウ141aのイベント条件を満たしていない(ステップS13)。ステップS13に示す処理は、図5のステップS105、S106に示した処理に対応する。以下の処理についても同様である。
図7の説明に移行する。ウィンドウ処理部151は、イベント(1,B)、(2,A)を検知する。イベント(1,B)、(2,A)に対する分割領域番号は「0」となる。このため、ウィンドウ処理部151は、予備ウィンドウ71にイベントA,Bを登録する。なお、予備ウィンドウ71は、クエリ141のウィンドウ141aのイベント条件を満たしていない(ステップS14)。
ウィンドウ処理部151は、イベント(4,B)、(4,C)、(5,C)を検知する。イベント(4,B)、(4,C)、(5,C)に対する分割領域番号は「1」となる。ウィンドウ処理部151は、分割領域番号「1」に対応する予備ウィンドウ71、72にイベントB,C,Cを登録する。ウィンドウ処理部151は、予備ウィンドウ71が、クエリ141のウィンドウ141aのイベント条件を満たすので、予備ウィンドウ71を仮ウィンドウに登録する。なお、予備ウィンドウ72は、クエリ141のウィンドウ141aのイベント条件を満たしていない(ステップS15)。
ウィンドウ処理部151は、イベント(9,B)、(10,A)、(10,C)を検知する。イベント(9,B)、(10,A)、(10,C)に対する分割領域番号は「2」となる。ウィンドウ処理部151は、分割領域番号「2」に対応する予備ウィンドウ72,73にイベントB,A,Cを登録する。ウィンドウ処理部151は、ウィンドウ72,73が、クエリ141のウィンドウ141aのイベント条件を満たすので、予備ウィンドウ72,73を仮ウィンドウに登録する(ステップS16)。
ウィンドウ処理部151は、イベント(11,A)、(11,B)を検知する。イベント(11,A)、(11,B)に対する分割領域番号は「2」となる。また、イベント(11,A)、(11,B)は、分割領域70cの最後の時刻である。このため、ウィンドウ処理部151は、仮ウィンドウ73にのみ、イベントA,Bを追加する(ステップS17)。
図8の説明に移行する。ウィンドウ処理部151は、イベント(12,A)を検知する。イベント(12,A)に対する分割領域番号は「3」となる。ウィンドウ処理部151は、分割領域番号「3」に対応する仮ウィンドウ73および予備ウィンドウ74に、イベントAを追加する。予備ウィンドウ74は、クエリ141のウィンドウ141aのイベント条件を満たしていない(ステップS18)。
ウィンドウ処理部151は、イベント(14,B)を検知する。イベント(14,B)に対する分割領域番号は「3」となる。ウィンドウ処理部151は、分割領域番号「3」に対応する仮ウィンドウ73および予備ウィンドウ74に、イベントBを追加する。予備ウィンドウ74は、クエリ141のウィンドウ141aのイベント条件を満たしていない(ステップS19)。
ウィンドウ処理部151は、イベント(14,D)を検知する。イベント(14,D)に対する分割領域番号は「3」となる。ウィンドウ処理部151は、イベント(14,D)が、分割領域80eで最後の時刻であるため、予備ウィンドウ85にのみ、イベントDを追加する。ウィンドウ85は、クエリ141のウィンドウ141bのイベント条件を満たしていない(ステップS20)。
ウィンドウ処理部151は、イベント(15,E)を検知する。イベント(15,E)に対する分割領域番号は「3」となる。ウィンドウ処理部151は、分割領域番号「3」に対応する予備ウィンドウ85,86に、イベントEを追加する。ウィンドウ処理部151は、予備ウィンドウ85が、クエリ141のウィンドウ141bのイベント条件を満たすので、予備ウィンドウ85を仮ウィンドウ85に登録する。予備ウィンドウ86は、クエリ141のウィンドウ141bのイベント条件を満たしていない(ステップS21)。
図9の説明に移行する。ウィンドウ処理部151は、イベント(17,C)を検知する。イベント(17,C)に対する分割領域番号は「3」となる。ウィンドウ処理部151は、分割領域番号「3」に対応する予備ウィンドウ74,75に、イベントCを追加する。ウィンドウ処理部151は、予備ウィンドウ74が、クエリ141のウィンドウ141bのイベント条件を満たすので、予備ウィンドウ74を仮ウィンドウ74に登録する。予備ウィンドウ75は、クエリ141のウィンドウ141bのイベント条件を満たしていない(ステップS22)。
ウィンドウ処理部151は、イベント(17,E)を検知する。イベント(17,E)に対する分割領域番号は「5」となる。ウィンドウ処理部151は、イベント(17,E)が、分割領域80fの最後の時刻であるため、予備ウィンドウ86にのみ、イベントEを登録する。予備ウィンドウ86は、クエリ141のウィンドウ141bのイベント条件を満たしていない(ステップS23)。
ウィンドウ処理部151は、イベント(18,E)を検知する。イベント(18,E)に対する分割領域番号は「6」となる。ウィンドウ処理部151は、分割領域番号「6」に対応する予備ウィンドウ86,87に、イベントEを追加する。予備ウィンドウ86,86は、クエリ141のウィンドウ141bのイベント条件を満たしていない(ステップS24)。
ウィンドウ処理部151は、イベント(19,D)を検知する。イベント(19,D)に対する分割領域番号は「6」となる。ウィンドウ処理部151は、分割領域番号「6」に対応する予備ウィンドウ86,87に、イベントDを追加する。ウィンドウ処理部151は、予備ウィンドウ86,87が、クエリ141のウィンドウ141bのイベント条件を満たすので、予備ウィンドウ86,87を仮ウィンドウに登録する(ステップS25)。
図6〜図9に説明したように、ウィンドウ処理部151が、処理を実行すると、仮ウィンドウ71,72,73,74と、仮ウィンドウ85,86,87が登録される。図10は、本実施例1に係る仮ウィンドウ構築処理の処理結果の一例を示す図である。ウィンドウ処理部151は、処理結果を、照合部152に出力する。
照合部152は、ウィンドウ処理部151の処理結果を基にして、クエリ141の条件を満たすイベントの組み合わせを検出する処理部である。ウィンドウ処理部151の処理結果を図10に示すものであるとすると、照合部152は、仮ウィンドウ71〜74と、仮ウィンドウ85〜87との組み合わせについて、クエリ141のインターバル条件「5−8分」を満たす仮ウィンドウの組み合わせを判定する。
クエリ141のインターバル条件「5−8分」を満たす仮ウィンドウの組み合わせは、仮ウィンドウ71と仮ウィンドウ85との組み、仮ウィンドウ72と仮ウィンドウ86との組み、仮ウィンドウ72と仮ウィンドウ87との組みとなる。
このため、照合部152は、仮ウィンドウ71,85の組みに含まれるイベントの種別と時刻との組みを、照合結果として出力する。また、照合部152は、仮ウィンドウ72,86の組みに含まれるイベントの種別と時刻との組みを、照合結果として出力する。また、照合部152は、仮ウィンドウ72,87の組みに含まれるイベントの種別と時刻との組みを、照合結果として出力する。
次に、本実施例1に係る照合装置100の処理手順について説明する。図11は、本実施例1に係る照合装置の処理手順を示すフローチャートである。図11に示すように、照合装置100は、仮ウィンドウ構築処理を実行する(ステップS201)。このステップS201に示す仮ウィンドウ構築処理は、図5に示した処理手順に対応する処理である。
照合装置100は、インターバル条件をチェックし、インターバル条件を満たす仮ウィンドウの組みとリンクを出力する(ステップS202)。照合装置100は、組み合わせ展開を実行する(ステップS203)。例えば、ステップS203において、照合装置100は、インターバル条件を満たす仮ウィンドウの組みに含まれるイベントの組みを出力する。
なお、ここでは説明を省略するが、照合装置100は、インターバル条件を満たす仮ウィンドウに含まれるイベントの組み合わせ展開を行う。照合装置100は、各イベントの組み合わせにおいて、クエリ141の全ての条件を満たすか否かをチェックし、クエリ141の全ての条件を満たしていれば、かかるイベントの組み合わせを出力する。組み合わせ展開に関する詳しい説明は、実施例2において説明する。
次に、本実施例1に係る照合装置100の効果について説明する。照合装置100は、クエリ141に定義されたウィンドウ幅条件よりも大きいウィンドウを、照合データ142に対して設定し、クエリ141に定義されたウィンドウのイベント条件を満たすウィンドウを、仮ウィンドウとして設定する。そして、照合装置100は、各仮ウィンドウの組みについて、インターバル条件をチェックし、インターバル条件を満たす仮ウィンドウの組みに含まれるイベントを照合結果として出力する。本実施例1に係る照合装置100によれば、従来技術と比較して、インターバル条件のチェック対象となるウィンドウの組み合わせを削減することができ、これにより、クエリと照合データとのマッチングを高速に行うことができる。なお、本実施例1では、クエリに2つのウィンドウが定義された最も基礎となる例にて説明したが、クエリに3つ以上のウィンドウが定義された場合にも適用可能である。
次に、本実施例2に係る照合装置の構成の一例について説明する。図12は、本実施例2に係る照合装置の構成を示す機能ブロック図である。図12に示すように、この照合装置200は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部250とを有する。通信部110、入力部120、表示部130、記憶部140に関する説明は、実施例1に示した通信部110、入力部120、表示部130、記憶部140に関する説明と同様であるため、同一の符号を付してここでは説明を省略する。
制御部250は、ウィンドウ処理部251および照合部252を有する。制御部250は、例えば、ASICや、FPGAなどの集積装置に対応する。また、制御部250は、例えば、CPUやMPU等の電子回路に対応する。
ウィンドウ処理部251は、クエリ141を参照し、クエリ141のウィンドウのウィンドウ幅条件よりも大きい幅の仮ウィンドウを、順次設定する処理部である。図13は、本実施例2に係るウィンドウ処理部の処理の一例を説明するための図である。図13では一例として、ウィンドウ幅条件を「4」として説明を行う。
ウィンドウ処理部251は、クエリ141のウィンドウ幅条件以上の値を「w」の値に設定する。ウィンドウ処理部251は、ウィンドウの開始時刻から「2×w」過ぎてから、初めに出現するイベントを特定する。ウィンドウ処理部251は、初めに出現するイベントよりも、「w−1」時間前の時刻から次のイベントが出現する時刻を、次の仮ウィンドウの開始時刻として、順次仮ウィンドウを構築していく。
ここでは一例として、Wの値を「4」として、ウィンドウ処理部251の説明を行う。図13に示すように、ウィンドウ処理部251は、ウィンドウ260の開始時刻「0」から「2×w」過ぎてから、初めに出現するイベント(9,B)を特定する。ウィンドウ処理部251は、特定したイベント(9,B)よりも、「w−1=3」時間前の時刻「6」から次のイベントが出現する時刻「9」を、次のウィンドウ261の開始時刻として特定する。
ここで、ウィンドウ処理部251が仮ウィンドウを構築する処理手順について説明する。図14は、本実施例2に係る仮ウィンドウ構築処理の処理手順を示すフローチャートである。図14に示すように、ウィンドウ処理部251は、1つのイベントを検知し(ステップS301)、イベントを該当する仮ウィンドウに追加する(ステップS302)。
ウィンドウ処理部251は、仮ウィンドウが存在しない場合には(ステップS303,No)、ステップS312に移行する。
一方、ウィンドウ処理部251は、仮ウィンドウが存在する場合には(ステップS303,Yes)、イベントの時刻から最新の仮ウィンドウの開始時刻を減算した値が、「2w−1」以上であるか否かを判定する(ステップS304)。ウィンドウ処理部251は、イベントの時刻から最新の仮ウィンドウの開始時刻を減算した値が、「2w−1」以上でない場合には(ステップS304,No)、ステップS309に移行する。
ウィンドウ処理部251は、イベントの時刻から最新の仮ウィンドウの開始時刻を減算した値が、「2w−1」以上の場合には(ステップS304,Yes)、最新の仮ウィンドウが全てのイベント条件を満たすか否かを判定する(ステップS305)。ウィンドウ処理部251は、最新の仮ウィンドウが全てのイベント条件を満たさない場合には(ステップS305,No)、ステップS311に移行する。
ウィンドウ処理部251は、最新の仮ウィンドウが全てのイベント条件を満たす場合には(ステップS305,Yes)、ステップS307に移行する。ウィンドウ処理部251は、最新の仮ウィンドウ内に「イベントの時刻−w+1」の時刻以降にイベントがあるか否かを判定する(ステップS306)。ウィンドウ処理部251は、最新の仮ウィンドウ内に「イベントの時刻−w+1」の時刻以降にイベントがない場合には(ステップS306,No)、ステップS309に移行する。
ウィンドウ処理部251は、最新の仮ウィンドウ内に「イベントの時刻−w+1」の時刻以降にイベントが有る場合には(ステップS306,Yes)、ステップS307に移行する。ウィンドウ処理部251は、最新の仮ウィンドウに含まれるイベントから「イベントの時刻−w+1」の時刻から初めのイベントを取り出す(ステップS307)。
ウィンドウ処理部251は、仮ウィンドウを新しく生成し、取り出したイベントの時刻を新しく生成した仮ウィンドウの開始時刻とし、開始時刻以降のイベントを新しい仮ウィンドウに追加する(ステップS308)。ウィンドウ処理部251は、イベント時刻をウィンドウの終了時刻とし、イベントを仮ウィンドウに追加する(ステップS309)。
ウィンドウ処理部251は、処理を終了する場合には(ステップS310,Yes)、仮ウィンドウ構築処理を終了する。一方、ウィンドウ処理部251は、処理を終了しない場合には(ステップS310,No)、ステップS301に移行する。
ところで、ステップS311において、ウィンドウ処理部251は、最新の仮ウィンドウを削除する(ステップS311)。ウィンドウ処理部251は、仮ウィンドウを新しく生成し、イベントの時刻を新しい仮ウィンドウの開始時刻に設定し(ステップS312)、ステップS309に移行する。
ここで、図2に示したクエリ141と、図4に示した照合データ142を例にして、ウィンドウ処理部251が実行する仮ウィンドウ構築処理について説明する。図15〜図17は、本実施例2に係る仮ウィンドウ構築処理を説明するための図である。図15〜図17の説明では、イベントA〜Cに対するウィンドウのwの値を「4」とし、イベントD,Eに対するウィンドウのwの値を「3」として説明を行う。
図15について説明する。ウィンドウ処理部251は、イベント(0,A)を検知する。ウィンドウ処理部251は、仮ウィンドウ260を生成する。ウィンドウ処理部251は、イベントAを、仮ウィンドウ260に追加する(ステップS30)。
ウィンドウ処理部251は、イベント(1,B)を検知する。ウィンドウ処理部251は、仮ウィンドウ260の終了時刻を、イベント(1,B)の時刻「1」に設定する。ウィンドウ処理部251は、イベントBを、仮ウィンドウ260に追加する(ステップS31)。
ウィンドウ処理部251は、イベント(2,A)、(4,B)、(4,C)、(5,C)を検知する。ウィンドウ処理部251は、仮ウィンドウ260の終了時刻をイベント(5,C)の時刻「5」に設定する。ウィンドウ処理部251は、各イベントA,B,C,Cを、仮ウィンドウ260に追加する(ステップS32)。
ウィンドウ処理部251は、イベント(9,B)を検知する。イベント(9,B)のイベント時刻「9」から最新の仮ウィンドウ260の開始時刻「0」を減算した値が、「2w−1=7」の値よりも大きくなる。また、最新の仮ウィンドウ260は、全てのイベント条件を満たす。また、「イベント(9,B)のイベント時刻「9」−w+1」=「9−4+1=6」以降に、最新の仮ウィンドウ260のイベントが存在しない。このため、ウィンドウ処理部251は、新しい仮ウィンドウ261を生成し、仮ウィンドウ261の開始時刻および終了時刻を「9」に設定する(ステップS33)。
ウィンドウ処理部251は、イベント(10,A)、(10,C)、(11,A)、(11,B)、(12,A)、(14,B)を検知する。ウィンドウ処理部251は、各イベントA,C,A,B,A,Bを、最新の仮ウィンドウ261に設定する。ウィンドウ処理部251は、仮ウィンドウの終了時刻を「14」に設定する(ステップS34)。
ウィンドウ処理部251は、イベント(14,D)を検知する。ウィンドウ処理部251は、ウィンドウ270を生成する。ウィンドウ処理部251は、イベントDを、仮ウィンドウ270に追加する(ステップS35)。
ウィンドウ処理部251は、イベント(15,E)を検知する。ウィンドウ処理部251は、イベントEを仮ウィンドウ270に追加する(ステップS36)。
ウィンドウ処理部251は、イベント(17,C)を検知する。イベント(17,C)のイベント時刻「17」から最新の仮ウィンドウ261の開始時刻「9」を減算した値が、「2×2−1=7」の値よりも大きくなる。最新の仮ウィンドウ261は、全てのイベント条件を満たす。また、「イベント(17,C)のイベント時刻「17」−w+1=17−4+1=14」以降に、最新の仮ウィンドウ261のイベント(14,B)が存在する。このため、ウィンドウ処理部251は、新しい仮ウィンドウ262を生成し、仮ウィンドウ262の開始時刻をイベント(14,B)の開始時刻「14」に設定する。また、ウィンドウ処理部251は、イベント(17,C)を、仮ウィンドウ262に追加し、イベント(17,C)の時刻「17」を、仮ウィンドウ262の終了時刻に設定する(ステップS37)。
図17の説明に移行する。ウィンドウ処理部251は、イベント(17,E)、(18,E)を検知する。ウィンドウ処理部251は、イベントE,Eを仮ウィンドウ270に追加する(ステップS38)。
ウィンドウ処理部251は、イベント(19,D)を検知する。イベント(19,D)のイベント時刻「19」から最新の仮ウィンドウ270の開始時刻「14」を減算した値が、「2×3−1=5」の値よりも大きくなる。最新の仮ウィンドウ270は、全てのイベント条件を満たす。また、「イベント(19,D)のイベント時刻「19」−w+1=17−3+1=15」以降に、最新の仮ウィンドウ261のイベント(17,E)が存在する。このため、ウィンドウ処理部251は、新しい仮ウィンドウ271を生成し、仮ウィンドウ271の開始時刻をイベント(17,E)の開始時刻に設定する。また、ウィンドウ処理部251は、イベント(18,E)、(19,D)を、仮ウィンドウ271に追加し、イベント(19,D)の時刻「19」を、仮ウィンドウ271の終了時刻に設定する(ステップS39)。
ウィンドウ処理部251は、時刻21以降のイベントの検知を試みるが、イベントは存在しない。このため、最新の仮ウィンドウ262は、全てのイベント条件を満たさない。ウィンドウ処理部251は、仮ウィンドウ262を削除する(ステップS40)。
ウィンドウ処理部251は、上記図15〜図17に示す処理を実行することで、仮ウィンドウ260,261および仮ウィンドウ270,271を構築する。ウィンドウ処理部251は、構築した仮ウィンドウの情報を、照合部252に出力する。
図12の説明に戻る。照合部252は、ウィンドウ処理部251によって構築された仮ウィンドウと、クエリ141とを基にして、クエリ141の条件を満たすイベントの組みを照合データ142から検出する処理部である。
照合部252は、各仮ウィンドウの組みが、クエリ141のインターバル条件を満たすか否かを確認する場合に、仮ウィンドウの組みの終了時刻と開始時刻と時間間隔を利用する代わりに、仮ウィンドウ内のイベントの時刻を考慮して行う。以下の説明では、仮ウィンドウの組みについて、先行する仮ウィンドウを先行ウィンドウと表記し、後続する仮ウィンドウを後続ウィンドウと表記する。
照合部252は、先行ウィンドウと後続ウィンドウとの関係が「最小インターバル条件」および「最大インターバル条件」を満たす場合に、先行ウィンドウと後続ウィンドウとの組みを出力する。
まず、最小インターバル条件について説明する。照合部252は、先行ウィンドウと後続ウィンドウとの「最小間隔」が、インターバル条件の最小値より大となる場合に、「最小インターバル条件」を満たすと判定する。図18は、最小インターバル条件を説明するための図である。
図18について、先行ウィンドウをウィンドウ280とし、後続ウィンドウをウィンドウ290とする。照合部252は、先行ウィンドウ280に含まれるイベントのうち、イベント条件を満たす最初のイベントの組みの中で一番遅いイベントの時刻を、第1基準時刻として特定する。そうすると、第1基準時刻は「10」となる。
照合部252は、後続ウィンドウ290に含まれるイベントのうち、イベント条件を満たす最後のイベントの組みの中で一番早いイベントの時刻を、第2基準時刻として特定する。そうすると、第2基準時刻は「14」となる。
照合部252は、第1基準時刻と第2基準時刻との間隔を最小間隔として算出する。図18に示す例では、最小間隔は「4」となり、インターバル条件の最小値「4」以下である。このため、照合部252は、仮ウィンドウ280,290の組みについて、最小インターバルの条件を満たさないと判定する。なお、仮に、第1基準時刻が「9」より早い時刻であれば、最小インターバル条件を満たすことになる。
続いて、最大インターバル条件について説明する。照合部252は、先行ウィンドウと後続ウィンドウとの「最大間隔」が、インターバル条件の最大値と、先行ウィンドウ幅条件と、後続ウィンドウ幅条件を加算した値以下となっている場合に、「最大インターバル条件」を満たすと判定する。図19は、最大インターバル条件を説明するための図である。
図19について、先行ウィンドウをウィンドウ281とし、後続ウィンドウをウィンドウ291とする。照合部252は、先行ウィンドウ281に含まれるイベントのうち、イベント条件を満たす最後のイベントの組みの中で一番早いイベントの時刻を、第3基準時刻として特定する。そうすると、第3基準時刻は「2」となる。
照合部252は、後続ウィンドウ291に含まれる最初のイベントの組みの中で一番遅いイベントの時刻を、第4基準時刻として特定する。そうすると、第4基準時刻は「19」となる。
照合部252は、第3基準時刻と第4基準時刻との間隔を最大間隔として算出する。図19に示す例では、最大間隔は「17」となる。一方、インターバル条件の最大値「8」と、先行ウィンドウ幅「4」と、後続ウィンドウ幅「3」を加算した値は「15」となる。このため、照合部252は、仮ウィンドウ281,291の組みについて、最大インターバル条件を満たさないと判定する。なお、仮に、第3基準時刻が「5」より遅い時刻であれば、最大インターバル条件を満たすことになる。
ここで、照合部252がインターバル条件を判定する処理手順について説明する。図20および図21は、インターバル条件判定処理の処理手順を示すフローチャートである。図20に示すように、照合部252は、クエリ141の先行するウィンドウ条件に対応する先頭の仮ウィンドウを取り出し、先行ウィンドウに設定する(ステップS401)。
照合部252は、クエリ141の後続ウィンドウ条件に対応する先頭の仮ウィンドウを取り出して後続ウィンドウに設定し、さらに、ベース後続ウィンドウに設定する(ステップS402)。
照合部252は、先行ウィンドウと後続ウィンドウについて、インターバル条件をチェックする(ステップS403)。照合部252は、最小インターバル条件を満たさない場合には(ステップS404,No)、図21のステップS407に移行する。
一方、照合部252は、最小インターバル条件を満たす場合には(ステップS404,Yes)、最大インターバル条件を満たすか否かを判定する(ステップS405)。照合部252は、最大インターバル条件を満たさない場合には(ステップS405,No)、図21のステップS411に移行する。
一方、照合部252は、最大インターバル条件を満たす場合には(ステップS405,Yes)、ステップS406に移行する。照合部252は、該当する先行ウィンドウと後続ウィンドウとの組みを出力していなければ出力し、先行ウィンドウと後続ウィンドウとのリンクを出力し(ステップS406)、図20のステップS408に移行する。
図21の説明に移行する。照合部252は、後続ウィンドウの次のウィンドウをベース後続ウィンドウに設定する(ステップS407)。照合部252は、後続ウィンドウの次の仮ウィンドウが存在する場合には(ステップS408,Yes)、後続ウィンドウの次の仮ウィンドウを取り出し、後続ウィンドウに設定し(ステップS409)、図20のステップS403に移行する。
一方、照合部252は、後続ウィンドウの次の仮ウィンドウが存在しない場合には(ステップS408,No)、先行ウィンドウの次の仮ウィンドウが存在するか否かを判定する(ステップS410)。照合部252は、先行ウィンドウの次の仮ウィンドウが存在しない場合には(ステップS410,No)、処理を終了する。
一方、照合部252は、先行ウィンドウの次の仮ウィンドウが存在する場合には(ステップS410,Yes)、先行ウィンドウの次の仮ウィンドウを取り出し、先行ウィンドウに設定する(ステップS411)。
照合部252は、ベース後続ウィンドウがNULLである場合には(ステップS412,Yes)、処理を終了する。照合部252は、ベース後続ウィンドウがNULLでない場合には(ステップS412,No)、ベース後続ウィンドウを後続ウィンドウに設定し(ステップS413)、図20のステップS403に移行する。
ここで、図17に示した仮ウィンドウの構築結果と、図2に示したクエリ141とを例にして、照合部252が実行するインターバル条件判定処理について説明する。図22〜図25は、本実施例2に係るインターバル条件判定処理を説明するための図である。
図22について説明する。照合部252は、クエリ141の先行するウィンドウ141aの条件に対応する先頭の仮ウィンドウ260を先行ウィンドウに設定する。照合部252は、クエリ141の後続ウィンドウ141bの条件に対応する後続の仮ウィンドウ270を、後続ウィンドウに設定する。また、後続ウィンドウ270を、ベース後続ウィンドウに設定する(ステップS50)。
照合部252は、先行ウィンドウ260と後続ウィンドウ270について、最小インターバル条件を満たすか否かを判定する。先行ウィンドウ260の第1基準時刻は、イベント(4,C)の「4」となる。後続ウィンドウ270の第2基準時刻は、イベント(14,D)の「14」となる。照合部252は、最小間隔が「10」となり、インターバル条件の最小値「4」よりも大となるため、先行ウィンドウ260と後続ウィンドウ270とは、最小インターバル条件を満たすと判定する(ステップS51)。
照合部252は、先行ウィンドウ260と後続ウィンドウ270について、最大インターバル条件を満たすか否かを判定する。先行ウィンドウ260の第3基準時刻は、イベント(2,A)の「2」となる。後続ウィンドウ270の第4基準時刻は、イベント(15,E)の「15」となる。ここで、最大間隔が「13」となり、インターバル条件の最大値「8」と、先行ウィンドウ幅条件「4」と、後続ウィンドウ幅条件「3」を加算した値「15」以下となる。このため、照合部252は、先行ウィンドウ260と後続ウィンドウ270とが、最大インターバル条件を満たすと判定する(ステップS52)。
先行ウィンドウ260および後続ウィンドウ270が最小インターバル条件および最大インターバル条件を満たす。このため、照合部252は、先行ウィンドウ260および後続ウィンドウ270の組みを出力し、リンクを出力する(ステップS53)。
図23の説明に移行する。照合部252は、後続ウィンドウ270の次の仮ウィンドウ271を後続ウィンドウに設定する(ステップS54)。
照合部252は、先行ウィンドウ260と後続ウィンドウ271とについて、最小インターバル条件を満たすか否かを判定する。先行ウィンドウ260の第1基準時刻は、イベント(4,C)の「4」となる。後続ウィンドウ271の第2基準時刻は、イベント(18,E)の「18」となる。照合部252は、最小間隔が「14」となり、インターバル条件の最小値「4」よりも大となるため、先行ウィンドウ260と後続ウィンドウ271とは、最小インターバル条件を満たすと判定する(ステップS55)。
照合部252は、先行ウィンドウ260と後続ウィンドウ271について、最大インターバル条件を満たすか否かを判定する。先行ウィンドウ260の第3基準時刻は、イベント(2,A)の「2」となる。後続ウィンドウ260の第4基準時刻は、イベント(19,D)の「19」となる。ここで、最大間隔が「17」となり、インターバル条件の最大値「8」と、先行ウィンドウ幅条件「4」と、後続ウィンドウ幅条件「3」を加算した値「15」よりも大となる。このため、照合部252は、先行ウィンドウ260と後続ウィンドウ271とが、最大インターバル条件を満たさないと判定する(ステップS56)。
図24の説明に移行する。照合部252は、先行ウィンドウ260の次の仮ウィンドウ261を先行ウィンドウに設定する。照合部252は、後続ウィンドウ270をベース後続ウィンドウに設定する(ステップS57)。
照合部252は、先行ウィンドウ261と後続ウィンドウ270とについて、最小インターバル条件を満たすか否かを判定する。先行ウィンドウ261の第1基準時刻は、イベント(10,A)の「10」となる。後続ウィンドウ270の第2基準時刻は、イベント(14,D)の「14」となる。照合部252は、最小間隔が「4」となり、インターバル条件の最小値「4」以下となるため、先行ウィンドウ261と後続ウィンドウ270とは、最小インターバル条件を満たさないと判定する。なお、先行ウィンドウ261とベース後続ウィンドウ270とが、最小インターバル条件を満たさない場合には、先行ウィンドウ261と仮ウィンドウ271とも最小インターバル条件を満たさない(ステップS58)。
照合部252は、後続ウィンドウ270の次の仮ウィンドウ271を後続ウィンドウおよびベース後続ウィンドウに設定する(ステップS59)。
照合部252は、先行ウィンドウ261と後続ウィンドウ271について、最小インターバル条件を満たすか否かを判定する。先行ウィンドウ261の第1基準時刻は、イベント(10,A)の「10」となる。後続ウィンドウ271の第2基準時刻は、イベント(18,E)の「18」となる。照合部252は、最小間隔が「8」となり、インターバル条件の最小値「4」よりも大となるため、先行ウィンドウ261と後続ウィンドウ271とは、最小インターバル条件を満たすと判定する(ステップS60)。
図25の説明に移行する。照合部252は、先行ウィンドウ261と後続ウィンドウ271について、最大インターバル条件を満たすか否かを判定する。先行ウィンドウ261の第3基準時刻は、イベント(10,C)の「10」となる。後続ウィンドウ271の第4基準時刻は、イベント(19,D)の「19」となる。ここで、最大間隔が「9」となり、インターバル条件の最大値「8」と、先行ウィンドウ幅条件「4」と、後続ウィンドウ幅条件「3」を加算した値「15」以下となる。このため、照合部252は、先行ウィンドウ261と後続ウィンドウ271とが、最大インターバル条件を満たすと判定する(ステップS61)。
先行ウィンドウ261および後続ウィンドウ271が最小インターバル条件および最大インターバル条件を満たす。このため、照合部252は、先行ウィンドウ261および後続ウィンドウ271の組みを出力し、リンクを出力する(ステップS62)。
照合部252は、先行ウィンドウ261の次の仮ウィンドウが存在しないため、インターバル条件判定処理を終了する。照合部252は、図22〜図25の処理を実行することで、先行ウィンドウ260と後続ウィンドウ270との組みと、先行ウィンドウ261と後続ウィンドウ271との組みを出力する。
照合部252は、各仮ウィンドウについてインターバル条件判定処理を実行した後に、組み合わせ展開を行い、クエリ141の条件を満たすイベントの組みを判定する。図26は、組み合わせ展開の結果の一例を示す図である。
図26において、イベント群300は、先行ウィンドウ260と後続ウィンドウ270との組み合わせ展開の結果である。イベント群400は、先行ウィンドウ261と後続ウィンドウ271の組み合わせ展開の結果である。照合部252は、イベント群300,400について、クエリ141の条件を満たすイベントの組みを特定する。
イベント群300において、イベント306,309の組みが、クエリ141の条件を満たす。イベント群400において、イベント401〜404,406〜409,411〜414の組みが、クエリ141の条件を満たす。このため、照合部252は、イベント306,309,イベント401〜404,406〜409,411〜414の組みを、クエリ141の照合結果として出力する。
次に、本実施例2に係る照合装置200の処理手順について説明する。図27は、本実施例2に係る照合装置の処理手順を示すフローチャートである。図27に示すように、照合装置100は、仮ウィンドウ構築処理を実行する(ステップS501)。ステップS501に示す仮ウィンドウ構築処理は、図14に示した処理手順に対応する処理である。
照合装置200は、インターバル条件をチェックし、インターバル条件を満たす仮ウィンドウの組みとリンクを出力する(ステップS502)。ステップ502に示す処理は、図20及び図21に示した処理手順に対応する処理である。照合装置200は、組み合わせ展開を実行し、クエリ141の条件を満たすイベントの組みを出力する(ステップS503)。
次に、本実施例2に係る照合装置200の効果について説明する。照合装置200は、クエリ141のウィンドウ幅条件以上の値を「w」の値に設定し、ウィンドウの開始時刻から「2×w」過ぎてから、初めに出現するイベント特定する。そして、照合装置200は、初めに出現するイベントよりも、「w−1」時間前の時刻から次のイベントが出現する時刻を、次の仮ウィンドウの開始時刻として、順次仮ウィンドウを構築し、クエリ141の条件を満たすか否かを判定する。このため、照合装置200によれば、インターバル条件のチェック対象となるウィンドウの組み合わせを削減することができ、これにより、クエリと照合データとのマッチングを高速に行うことができる。
また、照合装置200は、先行ウィンドウおよび後続ウィンドウに含まれるイベントの時刻を基にして、クエリ141のインターバル条件が満たされるか否かを判定する。具体的に、照合装置200は、先行ウィンドウに含まれるイベントのうち、イベント条件を満たす最初のイベントの組みの中で一番遅いイベントの時刻を、第1基準時刻として特定する。照合装置200は、後続ウィンドウに含まれるイベントのうち、イベント条件を満たす最後のイベントの組みの中で一番早いイベントの時刻を、第2基準時刻として特定する。そして、照合装置200は、第1基準時刻および第2基準時刻のインターバルと、最小インターバル条件とを基にして、最小インターバル条件を満たすか否かを判定する。
更に、照合装置200は、先行ウィンドウに含まれるイベントのうち、イベント条件を満たす最後のイベントの組みの中で一番早いイベントの時刻を、第3基準時刻として特定する。照合装置200は、後続ウィンドウに含まれる最初のイベントの組みの中で一番遅いイベントの時刻を、第4基準時刻として特定する。照合装置200は、第3基準時刻および第4基準時刻のインターバルと、最大インターバル条件、先行ウィンドウの幅、および後続ウィンドウの幅を基にして、最大インターバル条件を満たすか否かを判定する。
そして、照合装置200は、最小インターバル条件を満たし、かつ、最大インターバル条件を満たす場合に、先行ウィンドウと後続ウィンドウとが、クエリ141のインターバル条件を満たすと判定する。このため、クエリ141の解となり得るイベントの組みを含んだウィンドウの組みをより正確に特定することができる。
次に、上記の実施例に示した照合装置と同様の機能を実現する照合プログラムを実行するコンピュータの一例を説明する。図28は、照合プログラムを実行するコンピュータの一例を示す図である。
図28に示すように、コンピュータ500は、各種演算処理を実行するCPU501と、ユーザからのデータの入力を受け付ける入力装置502と、ディスプレイ503を有する。また、コンピュータ500は、記憶媒体からプログラム等を読取る読み取り装置504と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置505とを有する。また、コンピュータ500は、各種情報を一時記憶するRAM506と、ハードディスク装置507を有する。そして、各装置501〜507は、バス508に接続される。
ハードディスク装置507は、ウィンドウ処理プログラム507a、照合プログラム507bを有する。CPU501は、各プログラム507a,507bを読み出してRAM506に展開する。
ウィンドウ処理プログラム507aは、ウィンドウ処理プロセス506aとして機能する。照合プログラム507bは、照合プロセス506bとして機能する。
例えば、ウィンドウ処理プロセス506aは、ウィンドウ処理部151,251に対応する。照合プロセス506bは、照合部152,252に対応する。
なお、各プログラム507a,507bについては、必ずしも最初からハードディスク装置507に記憶させておかなくてもよい。例えば、コンピュータ500に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ500がこれらから各プログラム507a,507bを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが実行する照合方法であって、
第1ウィンドウにイベント条件が対応付けられ、前記第1ウィンドウに所定のウィンドウ幅条件が設定され、複数の前記第1ウィンドウが所定のインターバル条件によって直列に接続されたクエリに基づいて、前記ウィンドウ幅条件よりも大きいウィンドウ幅の第2ウィンドウを、イベントと前記イベントの出現時刻とを対応付けた照合データに設定し、
前記第2ウィンドウに含まれる前記照合データのイベントおよび各第2ウィンドウのインターバルが、前記第1ウィンドウのイベント条件および前記インターバル条件を満たすか否かを判定する
各処理を実行することを特徴とする照合方法。
(付記2)前記第2ウィンドウを前記照合データに設定する処理は、前記第2ウィンドウの開始時刻を起点として、前記第2ウィンドウの幅を2倍した時刻よりも後に出現する初めのイベントの時刻から、前記第2ウィンドウの幅だけ前の時刻に戻り、戻った時刻の次の時刻より後に出現する初めのイベントの時刻を開始時刻とする次の第2ウィンドウを設定することを特徴とする付記1に記載の照合方法。
(付記3)前記インターバル条件は最小インターバル条件を含み、前記判定する処理は、先行の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最初のイベントの組みの中で一番遅いイベントの第1時刻と、後続の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最後のイベントの組みの中で一番早いイベントの第2時刻とを特定し、前記第1時刻と前記第2時刻とのインターバルと、前記最小インターバル条件とを基にして、先行の第2ウィンドウと後続の第2ウィンドウとが、前記インターバル条件を満たすか否かを判定することを特徴とする付記2に記載の照合方法。
(付記4)前記インターバル条件は最大インターバル条件を含み、前記判定する処理は、先行の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最後のイベントの組みの中で一番早いイベントの第3時刻と、後続の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最初のイベントの組みの中で一番遅いイベントの第4時刻とを特定し、前記第3時刻と前記第4時刻とのインターバルと、前記最大インターバル条件と、先行の第2ウィンドウの幅と、後続の第2ウィンドウの幅とを基にして、先行の第2ウィンドウと後続の第2ウィンドウとが、前記インターバル条件を満たすか否かを判定することを特徴とする付記2に記載の照合方法。
(付記5)コンピュータに、
第1ウィンドウにイベント条件が対応付けられ、前記第1ウィンドウに所定のウィンドウ幅条件が設定され、複数の前記第1ウィンドウが所定のインターバル条件によって直列に接続されたクエリに基づいて、前記ウィンドウ幅条件よりも大きいウィンドウ幅の第2ウィンドウを、イベントと前記イベントの出現時刻とを対応付けた照合データに設定し、
前記第2ウィンドウに含まれる前記照合データのイベントおよび各第2ウィンドウのインターバルが、前記第1ウィンドウのイベント条件および前記インターバル条件を満たすか否かを判定する
各処理を実行させる照合プログラム。
(付記6)前記第2ウィンドウを前記照合データに設定する処理は、前記第2ウィンドウの開始時刻を起点として、前記第2ウィンドウの幅を2倍した時刻よりも後に出現する初めのイベントの時刻から、前記第2ウィンドウの幅だけ前の時刻に戻り、戻った時刻の次の時刻より後に出現する初めのイベントの時刻を開始時刻とする次の第2ウィンドウを設定することを特徴とする付記5に記載の照合プログラム。
(付記7)前記インターバル条件は最小インターバル条件を含み、前記判定する処理は、先行の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最初のイベントの組みの中で一番遅いイベントの第1時刻と、後続の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最後のイベントの組みの中で一番早いイベントの第2時刻とを特定し、前記第1時刻と前記第2時刻とのインターバルと、前記最小インターバル条件とを基にして、先行の第2ウィンドウと後続の第2ウィンドウとが、前記インターバル条件を満たすか否かを判定することを特徴とする付記6に記載の照合プログラム。
(付記8)前記インターバル条件は最大インターバル条件を含み、前記判定する処理は、先行の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最後のイベントの組みの中で一番早いイベントの第3時刻と、後続の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最初のイベントの組みの中で一番遅いイベントの第4時刻とを特定し、前記第3時刻と前記第4時刻とのインターバルと、前記最大インターバル条件と、先行の第2ウィンドウの幅と、後続の第2ウィンドウの幅とを基にして、先行の第2ウィンドウと後続の第2ウィンドウとが、前記インターバル条件を満たすか否かを判定することを特徴とする付記6に記載の照合プログラム。
100 照合装置
141 クエリ
142 照合データ
151,251 ウィンドウ処理部
152,252 照合部

Claims (5)

  1. コンピュータが実行する照合方法であって、
    第1ウィンドウにイベント条件が対応付けられ、前記第1ウィンドウに所定のウィンドウ幅条件が設定され、複数の前記第1ウィンドウが所定のインターバル条件によって直列に接続されたクエリに基づいて、前記ウィンドウ幅条件よりも大きいウィンドウ幅の第2ウィンドウを、イベントと前記イベントの出現時刻とを対応付けた照合データに設定し、
    前記第2ウィンドウに含まれる前記照合データのイベントおよび各第2ウィンドウのインターバルが、前記第1ウィンドウのイベント条件および前記インターバル条件を満たすか否かを判定する
    各処理を実行することを特徴とする照合方法。
  2. 前記第2ウィンドウを前記照合データに設定する処理は、前記第2ウィンドウの開始時刻を起点として、前記第2ウィンドウの幅を2倍した時刻よりも後に出現する初めのイベントの時刻から、前記第2ウィンドウの幅だけ前の時刻に戻り、戻った時刻の次の時刻より後に出現する初めのイベントの時刻を開始時刻とする次の第2ウィンドウを設定することを特徴とする請求項1に記載の照合方法。
  3. 前記インターバル条件は最小インターバル条件を含み、前記判定する処理は、先行の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最初のイベントの組みの中で一番遅いイベントの第1時刻と、後続の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最後のイベントの組みの中で一番早いイベントの第2時刻とを特定し、前記第1時刻と前記第2時刻とのインターバルと、前記最小インターバル条件とを基にして、先行の第2ウィンドウと後続の第2ウィンドウとが、前記インターバル条件を満たすか否かを判定することを特徴とする請求項2に記載の照合方法。
  4. 前記インターバル条件は最大インターバル条件を含み、前記判定する処理は、先行の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最後のイベントの組みの中で一番早いイベントの第3時刻と、後続の第2ウィンドウに含まれるイベントのうち、前記イベント条件を満たす最初のイベントの組みの中で一番遅いイベントの第4時刻とを特定し、前記第3時刻と前記第4時刻とのインターバルと、前記最大インターバル条件と、先行の第2ウィンドウの幅と、後続の第2ウィンドウの幅とを基にして、先行の第2ウィンドウと後続の第2ウィンドウとが、前記インターバル条件を満たすか否かを判定することを特徴とする請求項2に記載の照合方法。
  5. コンピュータに、
    第1ウィンドウにイベント条件が対応付けられ、前記第1ウィンドウに所定のウィンドウ幅条件が設定され、複数の前記第1ウィンドウが所定のインターバル条件によって直列に接続されたクエリに基づいて、前記ウィンドウ幅条件よりも大きいウィンドウ幅の第2ウィンドウを、イベントと前記イベントの出現時刻とを対応付けた照合データに設定し、
    前記第2ウィンドウに含まれる前記照合データのイベントおよび各第2ウィンドウのインターバルが、前記第1ウィンドウのイベント条件および前記インターバル条件を満たすか否かを判定する
    各処理を実行させる照合プログラム。
JP2013147955A 2013-07-16 2013-07-16 照合方法および照合プログラム Expired - Fee Related JP6107495B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013147955A JP6107495B2 (ja) 2013-07-16 2013-07-16 照合方法および照合プログラム
US14/307,740 US9589020B2 (en) 2013-07-16 2014-06-18 Matching method and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013147955A JP6107495B2 (ja) 2013-07-16 2013-07-16 照合方法および照合プログラム

Publications (2)

Publication Number Publication Date
JP2015022370A true JP2015022370A (ja) 2015-02-02
JP6107495B2 JP6107495B2 (ja) 2017-04-05

Family

ID=52344464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013147955A Expired - Fee Related JP6107495B2 (ja) 2013-07-16 2013-07-16 照合方法および照合プログラム

Country Status (2)

Country Link
US (1) US9589020B2 (ja)
JP (1) JP6107495B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017004437A (ja) * 2015-06-15 2017-01-05 日本電信電話株式会社 パターン検出装置、パターン検出方法およびパターン検出プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190296933A1 (en) * 2018-03-20 2019-09-26 Microsoft Technology Licensing, Llc Controlling Devices Based on Sequence Prediction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003141158A (ja) * 2001-11-06 2003-05-16 Fujitsu Ltd 順序を考慮したパターンを用いた検索装置および方法
JP2003308333A (ja) * 2002-04-16 2003-10-31 Fujitsu Ltd 繰り返しを含む順序パターンを用いた検索装置および方法
JP2006155404A (ja) * 2004-11-30 2006-06-15 Toshiba Corp 時間情報抽出装置、時間情報抽出方法、及び時間情報抽出プログラム
WO2013069078A1 (ja) * 2011-11-07 2013-05-16 株式会社 日立製作所 時系列データ処理装置、時系列データ処理方法、及び時系列データ処理プログラムを格納したコンピュータ読み取り可能な記録媒体

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004046601A (ja) 2002-07-12 2004-02-12 Fujitsu Ltd 複雑な順序パターンを抽出するデータ処理装置および方法
NO20031586L (no) * 2003-04-08 2004-10-11 Favourite Systems As Vindussystem for datainnretning
JP2006330912A (ja) * 2005-05-24 2006-12-07 Toshiba Corp 情報処理装置およびプログラム
JP5377897B2 (ja) 2007-10-29 2013-12-25 株式会社日立製作所 ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム
US8335782B2 (en) 2007-10-29 2012-12-18 Hitachi, Ltd. Ranking query processing method for stream data and stream data processing system having ranking query processing mechanism
JP5337447B2 (ja) 2008-10-28 2013-11-06 株式会社日立製作所 ストリームデータ処理方法、及びシステム
US8180801B2 (en) * 2009-07-16 2012-05-15 Sap Ag Unified window support for event stream data management
JP5640910B2 (ja) 2011-06-27 2014-12-17 富士通株式会社 照合装置および照合プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003141158A (ja) * 2001-11-06 2003-05-16 Fujitsu Ltd 順序を考慮したパターンを用いた検索装置および方法
JP2003308333A (ja) * 2002-04-16 2003-10-31 Fujitsu Ltd 繰り返しを含む順序パターンを用いた検索装置および方法
JP2006155404A (ja) * 2004-11-30 2006-06-15 Toshiba Corp 時間情報抽出装置、時間情報抽出方法、及び時間情報抽出プログラム
WO2013069078A1 (ja) * 2011-11-07 2013-05-16 株式会社 日立製作所 時系列データ処理装置、時系列データ処理方法、及び時系列データ処理プログラムを格納したコンピュータ読み取り可能な記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017004437A (ja) * 2015-06-15 2017-01-05 日本電信電話株式会社 パターン検出装置、パターン検出方法およびパターン検出プログラム

Also Published As

Publication number Publication date
US9589020B2 (en) 2017-03-07
US20150026191A1 (en) 2015-01-22
JP6107495B2 (ja) 2017-04-05

Similar Documents

Publication Publication Date Title
EP3816916A1 (en) Method and device for storing merchant authentication data into blockchain, and method and device for obtaining merchant authentication data from blockchain
US8219548B2 (en) Data processing method and data analysis apparatus
JP5701403B2 (ja) 監視計算機及び方法
JP2017091329A (ja) データベース分析装置およびデータベース分析方法
JP6242930B2 (ja) センサデータ管理装置、センサデータ管理方法およびプログラム
US20180357582A1 (en) Business Management System
JP6107495B2 (ja) 照合方法および照合プログラム
US20150081263A1 (en) Production simulation apparatus and production simulation method
JP5982513B2 (ja) 監視計算機及び方法
JP6497267B2 (ja) テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置
JP6723893B2 (ja) データ統合装置およびデータ統合方法
JP2016514326A (ja) コンピューターシステムアクティビティのトレースタイムラインを解析するための方法およびシステム
US11138173B2 (en) Table relation analysis assisting apparatus and table relation analysis assisting method
JP2017207854A (ja) 顧客管理システム、及び、顧客管理方法
US11328024B2 (en) Data analysis device and data analysis method
CN109558064A (zh) 一种电子发票数据链的同步方法、装置、介质及电子设备
JP5217870B2 (ja) プログラム性能測定装置、方法、プログラム、プログラム記録媒体
JP7131106B2 (ja) トランザクション管理装置、トランザクション管理方法及びプログラム
JP2018028776A (ja) ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム
JP6578685B2 (ja) 関係推定方法、関係推定プログラムおよび情報処理装置
JP6702425B2 (ja) 集計プログラム、集計装置、及び集計方法
JP2016095639A (ja) データベース装置、データ管理方法、及びプログラム
JP6107494B2 (ja) 照合装置、照合方法および照合プログラム
WO2021210100A1 (ja) パターン抽出装置、パターン抽出方法及びプログラム
JP6189232B2 (ja) プログラム情報生成システム、その方法、プログラム、およびプログラム情報表示システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R150 Certificate of patent or registration of utility model

Ref document number: 6107495

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees