(57)【要約】【課題】データ群から有効なデータを抽出するルールを生成すること。【解決手段】情報処理装置１０１は、複合ルール１２１に基づいて、複合条件からデータ種別各々に属するイベントに関する条件を抽出する。具体的には、例えば、情報処理装置１０１は、複合条件から、トラックイベントｅｔに対して、「速度が６０［ｋｍ／時］未満」という条件を抽出するとともに、天気予報イベントｅｓに対して、「天候が雨」という条件を抽出する。そして、情報処理装置１０１は、抽出した条件を満たす複合ルールの適用対象となるイベントをイベント群１２０から抽出する抽出ルール１２２を生成する。具体的には、例えば、情報処理装置１０１は、イベント群１２０から、「速度が６０［ｋｍ／時］未満」という条件を満たすトラックイベントｅｔを抽出するとともに、「天候が雨」という条件を満たす天気予報イベントｅｓを抽出する抽出ルール１２２を生成する。【選択図】図１
2015219725.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数のイベントデータ種別各々に属するイベントデータに関する条件を組み合わせた複合条件と前記複合条件を満たす際の所定の動作とを規定した複合ルールから、前記複合条件から前記イベントデータ種別各々に属するイベントデータに関する条件を抽出することにより、抽出した前記条件を満たす前記複合ルールの適用対象となるイベントデータをイベントデータ群から抽出する抽出ルールを生成する、
処理を実行させることを特徴とするルール生成プログラム。
【請求項２】
前記コンピュータに、
生成した前記抽出ルールを前記イベントデータ群に適用することにより、前記イベントデータ群から前記複合ルールの適用対象となるイベントデータを抽出する、
処理を実行させることを特徴とする請求項１に記載のルール生成プログラム。
【請求項３】
前記コンピュータに、
前記イベントデータ群に含まれる前記イベントデータ種別各々に属するイベントデータの数に基づいて、前記抽出ルールを生成し、
生成した当該抽出ルールを前記イベントデータ群に適用することにより、前記イベントデータ群から前記複合ルールの適用対象となるイベントデータを抽出する、
処理を実行させることを特徴とする請求項２に記載のルール生成プログラム。
【請求項４】
前記コンピュータが前記複合ルールを複数有し、
前記コンピュータに、
複数の複合ルールから、前記複数の複合ルールの各々の複合条件に共通するイベントデータ種別に属するイベントデータに関する条件を抽出し、
前記共通するイベントデータ種別に属するイベントデータに関する条件を抽出した後、前記イベントデータ群に、前記共通するイベントデータ種別に属するイベントデータに関する条件を満たすイベントデータがなければ、前記イベントデータ群を破棄する、
処理を実行させることを特徴とする請求項２または３に記載のルール生成プログラム。
【請求項５】
前記コンピュータに、
特定のイベントデータ種別に対応する所定の閾値と、前記複合ルールとに基づいて、前記特定のイベントデータ種別に属するイベントデータを抽出した数と前記所定の閾値との比較結果に基づいた特定のデータがあることを含む条件と前記複合ルールに含まれる前記特定のイベントデータ種別とは異なるイベントデータ種別に属するイベントデータに関する条件とを組み合わせた複合条件と、当該複合条件を満たす際に前記比較結果に対応する動作とを規定した新たな複合ルールを生成し、
前記抽出ルールを前記イベントデータ群に適用した際に、前記イベントデータ群から前記特定のイベントデータ種別に属するイベントデータを抽出した数と前記所定の閾値との比較結果に基づいて前記特定のデータを生成し、
前記イベントデータ群から前記抽出ルールを適用して抽出したイベントデータと、前記特定のデータとを、前記新たな複合ルールの適用対象に設定する、
処理を実行させることを特徴とする請求項２〜４のいずれか一つに記載のルール生成プログラム。
【請求項６】
前記コンピュータに、
前記抽出ルールを前記イベントデータ群に適用した際に、前記イベントデータ群から前記特定のイベントデータ種別に属するイベントデータを抽出した数が前記所定の閾値より大きい場合、前記イベントデータ群のうちの前記特定のイベントデータ種別に属するイベントデータを破棄し、
前記イベントデータ群から前記抽出ルールを適用して抽出したイベントデータのうちの破棄していないイベントデータと、前記特定のデータとを、前記新たな複合ルールの適用対象に設定する、
処理を実行させることを特徴とする請求項５に記載のルール生成プログラム。
【請求項７】
複数のイベントデータ種別各々に属するイベントデータに関する条件を組み合わせた複合条件と前記複合条件を満たす際の所定の動作とを規定した複合ルールから、前記複合条件から前記イベントデータ種別各々に属するイベントデータに関する条件を抽出することにより、抽出した前記条件を満たす前記複合ルールの適用対象となるイベントデータをイベントデータ群から抽出する抽出ルールを生成する制御部を、
有することを特徴とする情報処理装置。
【請求項８】
コンピュータが、
複数のイベントデータ種別各々に属するイベントデータに関する条件を組み合わせた複合条件と前記複合条件を満たす際の所定の動作とを規定した複合ルールから、前記複合条件から前記イベントデータ種別各々に属するイベントデータに関する条件を抽出することにより、抽出した前記条件を満たす前記複合ルールの適用対象となるイベントデータをイベントデータ群から抽出する抽出ルールを生成する、
処理を実行することを特徴とするルール生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルール生成プログラム、情報処理装置、およびルール生成方法に関する。
【背景技術】
【０００２】
従来、何らかの事象が発生したことを示すデータであるイベントを大量に受け付けて、受け付けたイベントを相互に関連付けて分析する複合イベント処理（ＣＥＰ：Ｃｏｍｐｌｅｘ  Ｅｖｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ）と呼ばれる技術がある。複合イベント処理では、大量のデータを効率的に処理するために、データ群から有効なデータを抽出する工程と、抽出したデータに対して複合イベント処理を実行する工程とを分ける場合がある。関連する先行技術として、例えば、閾値ルールデータベースに格納された複数の閾値ルールから一つの閾値ルールを選択し、ネットワーク事象記録が選択した閾値ルールを侵害するか否かを決定するものがある。また、コンポーネント間の関連情報を含むシステムの構成情報と各コンポーネントから出力される障害情報を含むシステムの履歴情報とに基づいて候補イベントを特定し、候補イベントを提示し、提示した候補イベントに基づいて検出ルールを生成する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００１−５１６１０７号公報
【特許文献２】国際公開第２０１０／２４１３３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、データ群から有効なデータを抽出するルールを作成するのに手間がかかる。具体的には、例えば、ルール作成者は、データ群を分析するルールとの整合性を取りつつ、データ群から有効なデータを抽出するルールを作成することになるため、ルール作成者の手間がかかる。
【０００５】
１つの側面では、本発明は、データ群から有効なデータを抽出するルールを生成できるルール生成プログラム、情報処理装置、およびルール生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、複数のイベントデータ種別各々に属するイベントデータに関する条件を組み合わせた複合条件と複合条件を満たす際の所定の動作とを規定した複合ルールから、複合条件からイベントデータ種別各々に属するイベントデータに関する条件を抽出することにより、抽出した条件を満たす複合ルールの適用対象となるイベントデータをイベントデータ群から抽出する抽出ルールを生成するルール生成プログラム、情報処理装置、およびルール生成方法が提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、データ群から有効なデータを抽出するルールを生成できるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、情報処理装置１０１の動作例を示す説明図である。
【図２】図２は、交通イベント情報収集・検知システム２００の一例を示す説明図である。
【図３】図３は、サーバ２０１のハードウェア構成例を示すブロック図である。
【図４】図４は、サーバ２０１の機能構成例を示すブロック図である。
【図５】図５は、フィルタエンジン用ルールの生成例を示す説明図である。
【図６】図６は、フィルタエンジン用ルールの生成例における具体例を示す説明図である。
【図７】図７は、未使用のイベントタイプを全て破棄する条件の生成例を示す説明図である。
【図８】図８は、単位時間当たりのイベント入力数によるフィルタエンジン用ルール変更の一例を示す説明図である。
【図９】図９は、単位時間当たりのイベント入力数によるフィルタエンジン用ルール変更の一例における具体例を示す説明図である。
【図１０】図１０は、全ルール共通条件の設定の一例を示す説明図である。
【図１１】図１１は、全ルール共通条件の設定の一例における具体例を示す説明図である。
【図１２】図１２は、特殊イベントの発行の一例を示す説明図である。
【図１３】図１３は、特殊イベントの設定の一例における具体例を示す説明図である。
【図１４】図１４は、特殊イベントの設定の他の例を示す説明図である。
【図１５】図１５は、特殊イベントの設定の他の例における具体例を示す説明図である。
【図１６】図１６は、特殊回復イベントの設定の一例を示す説明図である。
【図１７】図１７は、イベント入力前処理手順の一例を示すフローチャートである。
【図１８】図１８は、ＣＥＰエンジン用ルール複数受付時のフィルタエンジン用ルール生成処理手順の一例を示すフローチャートである。
【図１９】図１９は、特殊イベントおよび特殊回復イベント用のＣＥＰエンジン用ルール生成処理手順の一例を示すフローチャートである。
【図２０】図２０は、イベント入力時処理手順の一例を示すフローチャート（その１）である。
【図２１】図２１は、イベント入力時処理手順の一例を示すフローチャート（その２）である。
【図２２】図２２は、イベント入力時処理手順の一例を示すフローチャート（その３）である。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、開示のルール生成プログラム、情報処理装置、およびルール生成方法の実施の形態を詳細に説明する。
【００１０】
図１は、情報処理装置１０１の動作例を示す説明図である。情報処理装置１０１は、ルールを生成するコンピュータである。具体的には、情報処理装置１０１は、イベントデータ群１２０からイベントデータを抽出する抽出ルール１２２を生成する。
【００１１】
ここで、イベントデータ群は、複数のイベントデータ種別各々に属するイベントデータの集合である。イベントデータ種別は、イベントデータの種類や種目を区別したものである。イベントデータとは、何らかの事象が発生したことを示すデータである。例えば、１つのイベントデータには、複数のイベントデータ種別のうちのいずれのイベントデータ種別に属するかを示す情報と、０個以上の属性に対する属性値を有する。具体的には、ある観測地点を乗用車が６０［ｋｍ／時］で通行したという事象を示すイベントデータは、イベントデータ種別が乗用車イベントであり、速度という属性の属性値が６０［ｋｍ／時］というデータとなる。また、イベントデータ群は、複数のイベントデータ種別として複数のキーがあり、複数のキーの各々のキーと、各々のキーに対する値とを組とするデータの集合でもよい。以下の説明では、説明の簡略化のため、「イベントデータ」を、単に、「イベント」と呼称する。また、「イベントデータ群」を、単に、「イベント群」と呼称する。また、「イベントデータ種別」を、「イベントタイプ」と呼称する。
【００１２】
図１には、複合イベント処理を行う複合イベント処理システム１１０を示す。複合イベント処理システム１１０は、イベント群１２０からイベントを抽出する抽出装置１１１と、抽出装置１１１が抽出したイベントを組み合わせて分析を行う分析装置１１２とを含む。抽出装置１１１と分析装置１１２とは同一の装置であってもよい。さらに、情報処理装置１０１と抽出装置１１１とが同一の装置であってもよいし、情報処理装置１０１と分析装置１１２とが同一の装置であってもよい。
【００１３】
ここで、複合イベント処理システム１１０の設計者は、抽出装置１１１が利用する抽出ルール１２２と、分析装置１１２が利用する複合ルール１２１とを用意することになる。複合ルール１２１は、複数のイベントタイプ各々に属するイベントに関する条件を組み合わせた複合条件と前述の複合条件を満たす際の所定の動作とを規定する。ここで、条件とは、１つのイベントタイプに属するイベントの属性値を用いた論理式である。また、条件は、１つのイベントタイプに属するイベントがあるか否か、というイベントそのものの論理式でもよい。複合条件は、２つ以上のイベントタイプに属するイベントの属性値を用いた論理式、またはイベントそのものの論理式である。複合ルールは、例えば、ＥＰＬ（Ｅｖｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ  Ｌａｎｇｕａｇｅ）によって表現される。複合イベント処理システム１１０の設計者は、複合ルールと整合性を取りつつ、抽出ルールを作成することになるため、ルールの開発コストが高くなる。
【００１４】
また、抽出ルールが正しく作成されるか否かは、複合イベント処理システム１１０の設計者のルール作成スキルに依存し、作成された抽出ルールが有効なイベントだけを抽出する抽出ルールとならず、適切な抽出が行われない恐れもある。適切な抽出が行われず、例えば、作成された抽出ルールが分析に用いるべき有効なイベントに加えて本来破棄すべきイベントを含んで抽出してしまっている場合、分析装置１１２にかかる負荷が増大する。また、作成された抽出ルールが、分析に用いるべき有効なイベントを破棄してしまっている場合、分析装置１１２が行う分析結果の精度が悪くなる。
【００１５】
そこで、情報処理装置１０１は、複数のイベントタイプの各イベントタイプの条件を組み合わせた複合条件を含む複合ルールから各イベントタイプ条件を抽出して、各イベントタイプの条件を満たすデータを抽出する抽出ルールを生成する。これにより、情報処理装置１０１は、抽出ルールを自動生成して、複合イベント処理システム１１０の設計者のルール作成作業の負荷を削減することができる。
【００１６】
図１に示す複合イベント処理システム１１０は、ある観測地点においてトラックが通行したという事象を示すトラックイベントｅｔと、ある観測地点における天気予報が変化したという事象を示す天気予報イベントｅｓとを、イベント群１２０として受け付ける。また、複合イベント処理システム１１０の設計者が作成した複合ルール１２１の複合条件は、トラックイベントの速度が６０［ｋｍ／時］未満、かつ、天気予報イベントの天候が雨であるという条件である。また、複合ルール１２１の動作は、渋滞発生可能性有を通知することである。
【００１７】
情報処理装置１０１は、複合ルール１２１に基づいて、複合条件から各々のイベントに対応して各々のデータ種別のイベントに関する条件を抽出する。具体的には、例えば、情報処理装置１０１は、複合条件から、トラックイベントｅｔに対して、「速度が６０［ｋｍ／時］未満」という条件を抽出するとともに、天気予報イベントｅｓに対して、「天候が雨」という条件を抽出する。
【００１８】
そして、情報処理装置１０１は、抽出した条件を満たす複合ルールの適用対象となるイベントをイベント群１２０から抽出する抽出ルールを生成する。具体的には、例えば、情報処理装置１０１は、イベント群１２０から、「速度が６０［ｋｍ／時］未満」という条件を満たすトラックイベントｅｔを抽出するとともに、「天候が雨」という条件を満たす天気予報イベントｅｓを抽出する抽出ルール１２２を生成する。
【００１９】
次に、複合イベント処理システム１１０を、交通イベント情報収集・検知システム２００に適用した例について、図２を用いて説明する。
【００２０】
図２は、交通イベント情報収集・検知システム２００の一例を示す説明図である。交通イベント情報収集・検知システム２００は、複合イベント処理サーバ２０１と、信号機・交通標識制御サーバ２０２と、信号機２０３とを含む。複合イベント処理サーバ２０１は、図１に示した情報処理装置１０１に相当する。
【００２１】
複合イベント処理サーバ２０１は、観測地点における乗用車の状況を示す乗用車イベントｅｃ、観測地点におけるトラックの状況を示すトラックイベントｅｔ、観測地点における天気予報の状況を示す天気予報イベントｅｓ、という大量のイベントを受け付ける。そして、複合イベント処理サーバ２０１は、イベントをフィルタリングし、相互に関連付けて分析する。複合イベント処理サーバ２０１は、分析した結果から、信号機・交通標識制御サーバ２０２が動作した方がよい事柄を、レコメンドとして、信号機・交通標識制御サーバ２０２に送信する。信号機・交通標識制御サーバ２０２は、レコメンドに応じて信号機２０３や交通標識を制御する。
【００２２】
以下、説明の簡略化のため、複合イベント処理サーバを、「サーバ」と称する。また、以下の記載や図面において、乗用車イベントを「ＣａｒＥｖｅｎｔ」と記載することがある。同様に、トラックイベントを「ＴｒａｃｋＥｖｅｎｔ」と記載することがある。同様に、天気予報イベントを「ＳｅｎｓｏｒＥｖｅｎｔ」と記載することがある。
【００２３】
サーバ２０１は、大量のイベントを処理するために、イベントのフィルタリングを行うフィルタエンジン２１１と、フィルタリングされたイベントを相互に関連付けて分析するＣＥＰエンジン２１２とを有する。フィルタエンジン２１１と、ＣＥＰエンジン２１２とは、プロセスである。これにより、サーバ２０１は、ＣＥＰエンジン２１２の適用対象となるイベントの数を減らすことができる。交通イベント情報収集・検知システム２００の設計者は、フィルタエンジン２１１用のルールである「フィルタエンジン用ルール」と、ＣＥＰエンジン２１２用のルールである「ＣＥＰエンジン用ルール」を用意する。フィルタエンジン用ルールは、図１で示した抽出ルール１２２に相当する。また、ＣＥＰエンジン用ルールは、図１で示した複合ルール１２１に相当する。
【００２４】
しかしながら、図１に記載した問題点以外に、以下の３つの問題点がある。第１の問題点は、入力されるイベントの変化により、当初設定したフィルタエンジン用ルールの最適性が劣化する場合があることである。
【００２５】
例えば、フィルタエンジン用ルール設定時は、トラックイベントｅｔを有効イベントとし、乗用車イベントｅｃを破棄していたとする。しかし、時間の経過とともに、乗用車イベントｅｃを有効イベントとし、トラックイベントｅｔを破棄した方がよい状況がある。このような状況の例として、フィルタエンジン用ルール設定時は、観測地点において、大規模な土地開発が行われていたため、トラックの通行量が多く重大原因となっていたため、トラックイベントを有効イベントとしていた。しかし、時間の経過とともに、観測地点において、土地開発が終了すると、トラックの通行量が減少し、代わりに乗用車の通行量が増加する、という状況である。ここで、トラックイベントｅｔと乗用車イベントｅｃとの両方を、ＣＥＰエンジンで評価しようとすると、ＣＥＰエンジンの負荷が増大するため、複合イベント処理を行う装置の運用コストが高くなってしまう。
【００２６】
第２の問題点は、ＣＥＰエンジン用ルールが不成立となるイベントを、フィルタエンジン用ルールで検出した場合でも、全イベントを破棄することができず、複合イベント処理を行う装置の負荷を軽減することができないことである。
【００２７】
第３の問題点は、フィルタエンジン用ルールにヒットするイベントが増加すると、ＣＥＰエンジンの処理負荷が増大し、複合イベント処理を行う装置の処理性能が低下することである。
【００２８】
そこで、サーバ２０１は、第１の問題点について、フィルタエンジン用ルールを動的に変更することにより解決する。フィルタリング用ルールを動的に変更する例については、図８、図９で後述する。
【００２９】
また、サーバ２０１は、第２の問題点について、ＣＥＰエンジン用ルールが複数ある場合に、全てのＣＥＰエンジン用ルールに共通する条件を設定し、共通する条件が満たされない際に全イベントを破棄することにより解決する。全てのＣＥＰエンジン用ルールに共通する条件を設定し、共通する条件が満たされない際に全イベントを破棄する例については、図１０、図１１で後述する。
【００３０】
また、サーバ２０１は、第３の問題点について、あるイベントタイプの単位時間当たりのフィルタリング率を下回った際に、該当のイベントタイプに属するイベントを破棄して、特殊イベントを発行することにより解決する。あるイベントタイプの単位時間当たりのフィルタリング率を下回った際に、該当のイベントタイプに属するイベントを破棄して、特殊イベントを発行する例については、図１２〜図１６で後述する。次に、サーバ２０１のハードウェア構成について、図３を用いて説明する。
【００３１】
図３は、サーバ２０１のハードウェア構成例を示すブロック図である。図３において、サーバ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、を含む。また、サーバ２０１は、ディスクドライブ３０４およびディスク３０５と、通信インターフェース３０６と、を含む。また、ＣＰＵ３０１〜通信インターフェース３０６はバス３０７によってそれぞれ接続される。
【００３２】
ＣＰＵ３０１は、サーバ２０１の全体の制御を司る演算処理装置である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００３３】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０４には、例えば、磁気ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ３０４が磁気ディスクドライブである場合、ディスク３０５には、磁気ディスクを採用することができる。また、ディスクドライブ３０４がソリッドステートドライブである場合、ディスク３０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３４】
通信インターフェース３０６は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース３０６は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース３０６には、例えば、モデムやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどを採用することができる。
【００３５】
また、交通イベント情報収集・検知システム２００の管理者が、サーバ２０１を直接操作する場合、サーバ２０１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
【００３６】
（サーバ２０１の機能構成例）
図４は、サーバ２０１の機能構成例を示すブロック図である。サーバ２０１は、フィルタエンジン用ルール生成部４０１と、抽出部４０２と、破棄部４０３と、ＣＥＰエンジン用ルール生成部４０４と、特殊イベント生成部４０５と、分析部４０６と、を含む。ここで、抽出部４０２は、フィルタエンジン２１１に相当する。また、分析部４０６は、ＣＥＰエンジン２１２に相当する。
【００３７】
制御部となるフィルタエンジン用ルール生成部４０１〜分析部４０６は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、フィルタエンジン用ルール生成部４０１〜分析部４０６の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などである。また、各部の処理結果は、ＣＰＵ３０１が有するレジスタや、ＲＡＭ３０３等に記憶される。
【００３８】
また、サーバ２０１は、受け付けたイベント群４１１と、交通イベント情報収集・検知システム２００の設計者が作成したＣＥＰエンジン用ルール４１２とにアクセス可能である。ＣＥＰエンジン用ルール４１２は、複数のイベントタイプ各々に属するイベントに関する条件を組み合わせた複合条件と複合条件を満たす際の所定の動作とを規定したデータである。イベント群４１１と、ＣＥＰエンジン用ルール４１２とは、ＲＡＭ３０３、ディスク３０５といった記憶装置に格納される。
【００３９】
フィルタエンジン用ルール生成部４０１は、ＣＥＰエンジン用ルール４１２に基づいて、複合条件からイベントタイプ各々に対応してイベントタイプ各々に属するイベントに関する条件を抽出する。そして、フィルタエンジン用ルール生成部４０１は、抽出した条件を満たすＣＥＰエンジン用ルール４１２の適用対象となるイベントをイベント群４１１から抽出するフィルタエンジン用ルールを生成する。具体的なフィルタエンジン用ルールの生成例については、図５〜図７に示す。
【００４０】
抽出部４０２は、フィルタエンジン用ルール生成部４０１が生成したフィルタエンジン用ルールをイベント群４１１に適用することにより、イベント群４１１からＣＥＰエンジン用ルール４１２の適用対象となるイベントを抽出する。
【００４１】
また、フィルタエンジン用ルール生成部４０１は、イベントタイプ各々に属するイベントの数に基づいて、複数のイベントタイプのうちのいずれかのイベントタイプに属するイベントを抽出するフィルタエンジン用ルールを生成してもよい。そして、抽出部４０２は、フィルタエンジン用ルール生成部４０１が生成したフィルタエンジン用ルールをイベント群４１１に適用してもよい。イベントタイプ各々に属するイベントの数は、イベントタイプごとのイベントの数であり、例えば、トラックイベントｅｔの個数、乗用車イベントｅｃの個数、天気予報イベントｅｓの個数である。例えば、抽出部４０２は、イベントタイプに属するイベントの数が最大となるイベントタイプに属するイベントを抽出するフィルタエンジン用ルールをイベント群４１１に適用する。また、抽出部４０２は、イベントタイプに属するイベントの数が最大となるイベントタイプ、または２番目に大きいイベントタイプに属するイベントを抽出するフィルタエンジン用ルールをイベント群４１１に適用してもよい。
【００４２】
破棄部４０３は、複数のＣＥＰエンジン用ルールから、複数のＣＥＰエンジン用ルールの各々の複合条件に共通するイベントタイプに属するイベントに関する条件を抽出する。そして、破棄部４０３は、共通するイベントタイプに属するイベントに関する条件を抽出した後、イベント群４１１に共通するイベントタイプに属するイベントに関する条件を満たすイベントがなければ、イベント群４１１を破棄する。具体的なイベント群４１１の破棄の例については、図８、図９に示す。
【００４３】
ＣＥＰエンジン用ルール生成部４０４は、特定のイベントタイプに対応する所定の閾値と、ＣＥＰエンジン用ルール４１２に基づいて、新たなＣＥＰエンジン用ルールを生成する。ここで、新たなＣＥＰエンジン用ルールに規定された複合条件は、特定のデータがあることを含む条件とＣＥＰエンジン用ルール４１２に含まれる特定のイベントタイプとは異なるイベントタイプに属するイベントに関する条件とを組み合わせた条件である。特定のデータとは、特定のイベントタイプに属するイベントデータを抽出した数と所定の閾値との比較結果に基づいたデータである。ここで、本実施の形態では、特定のイベントとして、複合イベント処理サーバ２０１が予め規定したイベントタイプに属する特殊イベントと特殊回復イベントとを用いる。
【００４４】
特殊イベントは、フィルタリング用ルールを適用して特定のイベントタイプに属するイベントを抽出した数が所定の閾値を超えた際に発行されるイベントである。また、特殊回復イベントは、特殊イベントが発行された後、フィルタリング用ルールを適用して特定のイベントタイプに属するイベントを抽出した数が所定の閾値を下回った際に発行される。特殊イベントと特殊回復イベントとについては、図１２〜図１６で後述する。
【００４５】
例えば、ＣＥＰエンジン用ルール４１２の複合条件が、「トラックイベントの平均速度が５０ｋｍ／時未満、かつ、天気予報が雨」であり、動作が、「「渋滞発生可能性有」をレコメンドする」ことであるとする。また、特定のイベントタイプが、トラックイベントであり、所定の閾値が５０［％］であるとする。特定のイベントタイプと、所定の閾値とは特殊イベント用コンフィグに設定される。特殊イベント用コンフィグの一例は、図１２で後述する。このとき、ＣＥＰエンジン用ルール生成部４０４は、「特殊イベントがあり、かつ、天気予報が雨」という複合条件と、「「緊急：渋滞発生可能性有」をレコメンドする」という動作とを規定した新たなＣＥＰエンジン用ルールを生成する。
【００４６】
特殊イベント生成部４０５は、フィルタエンジン用ルールをイベント群４１１に適用した際に、フィルタエンジン用ルールを適用してイベントを抽出した数と所定の閾値との比較結果に基づいて特定のデータを生成する。例えば、特殊イベント生成部４０５は、フィルタリング用ルールを適用してイベントを抽出した数が所定の閾値を超えた場合に、特殊イベントを生成する。また、例えば、特殊イベント生成部４０５は、特殊イベントを生成した後に、フィルタリング用ルールを適用してイベントを抽出した数が所定の閾値未満となった場合に、特殊回復イベントを生成する。
【００４７】
また、特殊イベント生成部４０５は、フィルタエンジン用ルールをイベント群４１１に適用した際に、イベントを抽出した数が所定の閾値より大きい場合、イベント群４１１のうちの特定のイベントタイプに属するイベントデータを破棄してもよい。
【００４８】
分析部４０６は、抽出部４０２が抽出したイベントに対して、ＣＥＰエンジン用ルール４１２を適用することにより、イベント群４１１に対する分析を行う。また、分析部４０６は、抽出部４０２が抽出したイベントと、特殊イベント生成部４０５が生成した特殊イベントや特殊回復イベントとを、ＣＥＰエンジン用ルール生成部４０４が生成した新たなＣＥＰエンジン用ルールの適用対象に設定してもよい。また、特殊イベント生成部４０５がイベント群４１１のうちの特定のイベントタイプに属するイベントデータを破棄したとする。この場合、分析部４０６は、抽出部４０２が抽出したイベントのうちの破棄していないイベントと、特殊イベントや特殊回復イベントとを、新たなＣＥＰエンジン用ルールの適用対象に設定してもよい。具体的には、サーバ２０１の制御プロセスは、まず、新たなＣＥＰエンジン用ルールを適用するようにＣＥＰエンジン２１２に通知する。そして、フィルタエンジン２１１は、抽出部４０２が抽出したイベントのうちの破棄していないイベントと、特殊イベントや特殊回復イベントとを、ＣＥＰエンジン２１２に出力することにより、新たなＣＥＰエンジン用ルールの適用対象に設定することになる。
【００４９】
図５は、フィルタエンジン用ルールの生成例を示す説明図である。サーバ２０１は、設計者が設定したＣＥＰエンジン用ルールを構文解析し、フィルタエンジン用ルールを生成する。次に、サーバ２０１は、ＣＥＰエンジン用ルールの解析結果より、ＣＥＰエンジン用ルールで使用されるイベントタイプを抽出する。そして、サーバ２０１は、抽出したイベントタイプから、イベントタイプに対応して抽出するイベントの条件と、未使用のイベントタイプを破棄する条件とを含むフィルタエンジン用ルールを生成する。
【００５０】
図５で示すＣＥＰエンジン用ルールｒｃ＿Ａ１は、ＣＥＰエンジン用条件が「トラックイベントの平均速度が５０ｋｍ／時未満、かつ、天気予報が雨」であり、ＣＥＰエンジン用アクションが「「渋滞発生可能性有」をレコメンドする」ことである。次に、サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ１から、使用イベントタイプとして、トラックイベントと天気予報イベントとを抽出する。そして、サーバ２０１は、抽出したイベントタイプから、フィルタエンジン用ルールｒｆ＿Ａ１を生成する。フィルタエンジン用ルールｒｆ＿Ａ１は、トラックイベントのうち、平均速度が５０ｋｍ／時未満であるイベントを抽出し、天気予報イベントのうち、雨であるイベントを抽出することを規定するルールである。また、フィルタエンジン用ルールｒｆ＿Ａ１は、未使用である乗用車イベントを全て破棄することを含む。
【００５１】
イベントが入力された際には、フィルタエンジン２１１は、フィルタエンジン用ルールｒｆ＿Ａ１を適用して、イベントを抽出する。具体的には、フィルタエンジン２１１は、トラックイベントｅｔのうち、平均速度が５０ｋｍ／時未満であるイベントを抽出し、天気予報イベントｅｓのうち、雨であるイベントを抽出し、乗用車イベントｅｃを全て破棄する。ＣＥＰエンジン２１２は、フィルタエンジン２１１が抽出したイベントに対して、ＣＥＰエンジン用ルールｒｃ＿Ａ１を適用して、ＣＥＰエンジン用条件を満たすか判定し、満たす場合に、ＣＥＰエンジン用アクションの実行を決定する。図５の例では、例えば、サーバ２０１は、「渋滞発生可能性有」を信号機・道路標識制御サーバ２０２にレコメンドする。信号機・道路標識制御サーバは、信号機２０３や道路標識を制御して、渋滞を解消することを図る。
【００５２】
図６は、フィルタエンジン用ルールの生成例における具体例を示す説明図である。図６では、図５で示した例の具体例を示す。ＣＥＰエンジン用ルールｒｃ＿Ａ１は、ＥＰＬ記述では、図６で示すコードｅｐｌ＿Ａ１となる。サーバ２０１は、コードｅｐｌ＿Ａ１から、使用イベントタイプとして、トラックイベントと、天気予報イベントとを抽出する。抽出した結果が、図６で示すリストｌ＿Ａ１である。
【００５３】
そして、サーバ２０１は、サーバ２０１に入力されるイベントタイプの種類と比較して、未使用であるイベントタイプを特定する。サーバ２０１に入力されるイベントタイプの種類は事前に設定されてあるものである。図６の例では、イベントタイプ定義ｅ＿ｄｅｆが、入力されるイベントタイプの種類を示す。具体的には、イベントタイプ定義ｅ＿ｄｅｆは、入力されるイベントタイプの種類として、トラックイベントと、天気予報イベントと、乗用車イベントとがあることを示す。サーバ２０１は、イベントタイプ定義ｅ＿ｄｅｆと、リストｌ＿Ａ１とを比較して、未使用のイベントタイプとして、乗用車イベントを特定する。
【００５４】
また、サーバ２０１は、コードｅｐｌ＿Ａ１のｗｈｅｒｅ句から、イベントタイプごとに条件を抽出する。具体的には、サーバ２０１は、コードｅｐｌ＿Ａ１のｗｈｅｒｅ句から、トラックイベントの条件として「ＴｒａｃｋＥｖｅｎｔ．ｓｐｅｅｄ＜５０」を抽出するとともに、天気予報イベントとして「ＳｅｎｓｏｒＥｖｅｎｔ．Ｒａｉｎ＝‘ｔｒｕｅ’」を抽出する。条件を抽出した結果が、図６で示す条件抽出結果ｃｏ＿Ａ１である。
【００５５】
サーバ２０１は、条件抽出結果ｃｏ＿Ａ１と、特定した未使用のイベントタイプとから、フィルタエンジン用ルールｒｆ＿Ａ１を生成する。フィルタエンジン用ルールｒｆ＿Ａ１は、ＩＦ−ＴＨＥＮ型ルール記述では、図６で示すコードｉｆｔ＿Ａ１となる。コードｉｆｔ＿Ａ１は、トラックイベントと天気予報イベントとについては、条件抽出結果ｃｏ＿Ａ１が示す条件を規定する。また、コードｉｆｔ＿Ａ１は、未使用のイベントタイプである乗用車イベントについては、ｓｐｅｅｄが取り得ない範囲として、０未満を指定することにより、乗用車イベント全てを破棄する条件を規定する。次に、図７を用いて、ＩＦ−ＴＨＥＮ型ルールにおける、未使用のイベントタイプを全て破棄する条件の生成例を示す。
【００５６】
図７は、未使用のイベントタイプを全て破棄する条件の生成例を示す説明図である。未使用のイベントタイプを全て破棄する条件の第１の例として、サーバ２０１は、ＩＦ−ＴＨＥＮ型ルールとして、イベントタイプ定義より、イベントタイプの属性値が取り得ない範囲を指定する条件を規定するルールを生成する。例えば、サーバ２０１は、乗用車イベントのｓｐｅｅｄのデータタイプが符号ありのｉｎｔ型で定義されており、ｓｐｅｅｄが０未満の値を取ることがないため、０未満を指定することにより、乗用車イベント全てを破棄する条件を規定する。生成した結果が、図７で示すコードｉｆｔ＿Ｃａｒ１である。ｓｐｅｅｄが０未満の値を取ることがないという情報は、例えば、初期設定として、交通イベント情報収集・検知システム２００の管理者によって設定される。
【００５７】
また、イベントタイプの属性の型が取りうる範囲全てを属性値が取りうる場合もあり得る。このような場合における未使用のイベントタイプを全て破棄する条件の第２の例として、イベントタイプに破棄条件用の属性を用意し、破棄条件用の属性値を指定することで、未使用のイベントタイプを全て破棄する条件を生成してもよい。
【００５８】
具体的には、例えば、サーバ２０１は、交通イベント情報収集・検知システム２００の管理者によって設定された、破棄条件設定用コンフィグを記憶する。破棄条件設定用コンフィグは、ＥｖｅｎｔＴｙｐｅ、ＰｒｏｐｅｒｔｙＮａｍｅ、Ｔｙｐｅ、ＤｅｓｔｒｏｙＶａｌｕｅという設定項目を有する。ＥｖｅｎｔＴｙｐｅは、破棄対象となるイベントタイプが設定される。ＰｒｏｐｅｒｔｙＮａｍｅは、破棄条件となる属性が設定される。Ｔｙｐｅは破棄条件となる属性の型が設定される。ＤｅｓｔｒｏｙＶａｌｕｅは、破棄する際の破棄条件となる属性の値が設定される。例えば、図７に示す、破棄条件設定用コンフィグｃｏｎｆ＿ｄは、ＣａｒＥｖｅｎｔのｓｔａｔｕｓ属性が０である場合に、該当のＣａｒＥｖｅｎｔを破棄することが設定されている。そして、サーバ２０１は、破棄条件設定用コンフィグｃｏｎｆ＿ｄを参照して、乗用車イベント全てを破棄する条件を規定するフィルタエンジン用ルールを生成する。
【００５９】
生成した結果が、図７で示すコードｉｆｔ＿Ｃａｒ２である。ここで、全ての乗用車イベントのｓｔａｔｕｓ属性は、０以外で入力されるものとする。したがって、ｓｔａｔｕｓ属性が０となる乗用車イベントは存在しないため、コードｉｆｔ＿Ｃａｒ２を用いることにより、サーバ２０１は、全ての乗用車イベントを破棄することができる。
【００６０】
次に、図２に示した、第１の問題点を解決する、単位時間当たりのイベント入力数に応じて、フィルタエンジン用ルールを変更する例を、図８、図９を用いて説明する。
【００６１】
図８は、単位時間当たりのイベント入力数によるフィルタエンジン用ルール変更の一例を示す説明図である。サーバ２０１は、図５で説明した機能に加えて、単位時間当たりのイベント入力数に応じて、フィルタエンジン用ルールを変更する。具体的には、サーバ２０１は、交通イベント情報収集・検知システム２００の管理者によって設定された、動的変更用コンフィグを参照して、フィルタエンジン用ルールを変更する。
【００６２】
動的変更用コンフィグは、ＥｖｅｎｔＴｙｐｅ１、ＥｖｅｎｔＴｙｐｅ２、ＴｉｍｅＵｎｉｔという設定項目を有する。ＥｖｅｎｔＴｙｐｅ１は、フィルタエンジン用ルールの変更対象のイベントタイプであり、デフォルトで使用する第１のイベントタイプが設定される。ＥｖｅｎｔＴｙｐｅ２は、フィルタエンジン用ルールの変更対象のイベントタイプであり、入力数が第１のイベントタイプの入力数を上回った際に使用する第２のイベントタイプである。ＴｉｍｅＵｎｉｔは、イベント入力数の単位時間が格納される。
【００６３】
例えば、図８に示す動的変更用コンフィグｃｏｎｆ＿ｃは、第１のイベントタイプがトラックイベントであり、第２のイベントタイプが乗用車イベントであり、イベント入力数の単位時間が３６００秒であることを示す。以下、動的変更用コンフィグがある場合、「「動的変更条件」が設定された」と表現する。ここで、動的変更条件が成立したとは、第１のイベントタイプまたは第２のイベントタイプのうちの現在使用していないイベントタイプのイベントの単位時間当たりの入力数が、現在使用中のイベントタイプに属するイベントの入力数を上回った場合である。
【００６４】
動的変更条件が設定された場合、サーバ２０１は、第１のイベントタイプの条件を規定するフィルタエンジン用ルールと、第２のイベントタイプの条件を規定するフィルタエンジン用ルールとを生成する。図８で示すＣＥＰエンジン用ルールｒｃ＿Ａ２は、ＣＥＰエンジン用ルールｒｃ＿Ａ１とほぼ同内容である。ＣＥＰエンジン用ルールｒｃ＿Ａ１と異なる点は、ＣＥＰエンジン用ルールｒｃ＿Ａ２のＣＥＰエンジン用条件が「トラックイベント、または、乗用車イベントの平均速度が５０ｋｍ／時未満、かつ、天気予報が雨」であることである。また、図８で示す動的変更用コンフィグｃｏｎｆ＿ｃは、第１のイベントタイプがトラックイベントであり、第２のイベントタイプが乗用車イベントであるとする。
【００６５】
サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ２と、動的変更用コンフィグｃｏｎｆ＿ｃとを参照して、第１のイベントタイプに対する条件を規定するフィルタエンジン用ルールを生成する。生成した結果が、図８で示すｒｆ＿Ａ２＿１である。フィルタエンジン用ルールｒｆ＿Ａ２＿１は、トラックイベントのうち、平均速度が５０ｋｍ／時未満であるイベントを抽出し、天気予報イベントのうち、雨であるイベントを抽出することを規定するルールである。具体的には、サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ２のうちの、動的変更用コンフィグｃｏｎｆ＿ｃの第１のイベントタイプに設定されたトラックイベントが含まれる条件を抽出して、フィルタエンジン用ルールｒｆ＿Ａ２＿１を生成する。そして、イベントが入力された際には、フィルタエンジン２１１は、フィルタエンジン用ルールｒｆ＿Ａ２＿１を適用して、トラックイベントと天気予報イベントとを抽出する。
【００６６】
また、サーバ２０１は、イベントが入力されるたびに、入力されたイベントが属するイベントタイプごとに入力数をカウントする。そして、サーバ２０１は、単位時間当たりのトラックイベントの入力数より乗用車イベントの入力数が大きい場合、動的変更条件が成立したとして、乗用車イベントタイプに対する条件を規定するフィルタエンジン用ルールを生成する。次に、サーバ２０１は、適用するルールを生成したルールに変更する。
【００６７】
生成した結果が、図８で示すｒｆ＿Ａ２＿２である。フィルタエンジン用ルールｒｆ＿Ａ２＿２は、乗用車イベントのうち、平均速度が５０ｋｍ／時未満であるイベントを抽出し、天気予報イベントのうち、雨であるイベントを抽出することを規定するルールである。具体的に、サーバ２０１は、フィルタエンジン用ルールｒｆ＿Ａ２＿１のトラックイベントを、動的変更用コンフィグｃｏｎｆ＿ｃの第２のイベントタイプに設定された乗用車イベントと入れ替えることにより、フィルタエンジン用ルールｒｆ＿Ａ２＿２を生成する。そして、イベントが入力された際には、フィルタエンジン２１１は、フィルタエンジン用ルールｒｆ＿Ａ２＿２を適用して、乗用車イベントと天気予報イベントとを抽出する。
【００６８】
図９は、単位時間当たりのイベント入力数によるフィルタエンジン用ルール変更の一例における具体例を示す説明図である。図９では、図８で示した例の具体例を示す。ＣＥＰエンジン用ルールｒｃ＿Ａ２は、ＥＰＬ記述では、図９で示すコードｅｐｌ＿Ａ２となる。サーバ２０１は、動的変更用コンフィグｃｏｎｆ＿ｃを参照して、コードｅｐｌ＿Ａ２から、使用イベントタイプとして、トラックイベントと、乗用車イベントと、天気予報イベントとを抽出する。抽出した結果が、図９で示すリストｌ＿Ａ２である。具体的に、サーバ２０１は、コードｅｐｌ＿Ａ２から、第２のイベントタイプに設定された乗用車イベントを除いたイベントタイプを抽出する。図６と同様に、サーバ２０１は、イベントタイプ定義ｅ＿ｄｅｆと、リストｌ＿Ａ２とを比較して、未使用のイベントタイプとして、乗用車イベントを特定する。
【００６９】
また、サーバ２０１は、動的変更用コンフィグｃｏｎｆ＿ｃを参照して、コードｅｐｌ＿Ａ２のｗｈｅｒｅ句から、イベントタイプごとに条件を抽出する。具体的には、サーバ２０１は、コードｅｐｌ＿Ａ２のｗｈｅｒｅ句から、第２のイベントタイプに設定された乗用車イベントの条件を除いたイベントの条件を抽出する。条件を抽出した結果が、図９で示す条件抽出結果ｃｏ＿Ａ２である。
【００７０】
サーバ２０１は、条件抽出結果ｃｏ＿Ａ２と、特定した未使用のイベントタイプとから、フィルタエンジン用ルールｒｆ＿Ａ２＿１を生成する。フィルタエンジン用ルールｒｆ＿Ａ２＿１は、ＩＦ−ＴＨＥＮ型ルール記述では、図９で示すコードｉｆｔ＿Ａ２＿１となる。
【００７１】
また、図９では図示していないが、サーバ２０１は、単位時間当たりのトラックイベントの入力数より乗用車イベントの入力数が大きい場合、コードｅｐｌ＿Ａ２から、第２のイベントタイプに設定された乗用車イベントの条件を抽出する。そして、サーバ２０１は、動的変更用コンフィグｃｏｎｆ＿ｃを参照して、フィルタエンジン用ルールｒｆ＿Ａ２＿１のトラックイベントを、乗用車イベントと入れ替えることにより、フィルタエンジン用ルールｒｆ＿Ａ２＿２を生成する。フィルタエンジン用ルールｒｆ＿Ａ２＿２は、ＩＦ−ＴＨＥＮ型ルール記述では、図９で示すコードｉｆｔ＿Ａ２＿２となる。
【００７２】
次に、ＣＥＰエンジン用ルールが複数ある場合に、全てのＣＥＰエンジン用ルールに共通する条件を設定し、共通する条件が満たされない際に全イベントを破棄する例を、図１０、図１１を用いて説明する。全てのＣＥＰエンジン用ルールに共通する条件を、「全ルール共通条件」と呼称する。
【００７３】
図１０は、全ルール共通条件の設定の一例を示す説明図である。サーバ２０１は、図５と図８とで説明した機能に加えて、ＣＥＰエンジン用ルールが複数ある場合に、全てのＣＥＰエンジン用ルールに共通する全ルール共通条件を設定する。
【００７４】
例えば、図１０の例では、ＣＥＰエンジン２１２には、設計者が設定した、ＣＥＰエンジン用ルールｒｃ＿Ａ１と、ＣＥＰエンジン用ルールｒｃ＿Ｂ１という２つのＣＥＰエンジン用ルールが設定されている。ＣＥＰエンジン用ルールｒｃ＿Ａ１の内容は、図５で示したＣＥＰエンジン用ルールｒｃ＿Ａ１と同一である。ＣＥＰエンジン用ルールｒｃ＿Ｂ１は、ＣＥＰエンジン用条件が「乗用車イベントの平均速度が５０ｋｍ／時未満、かつ、天気予報が雨」であり、ＣＥＰエンジン用アクションが「「渋滞発生可能性有」をレコメンド」することである。
【００７５】
サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ１と、ＣＥＰエンジン用ルールｒｃ＿Ｂ１との解析結果から、「天気予報が雨」であることがＣＥＰエンジン用ルールｒｃ＿Ａ１、ｒｃ＿Ｂ１に共通する成立条件であることを特定する。特定した際に、サーバ２０１は、全ルール共通条件を、天気予報が雨に設定する。そして、サーバ２０１は、イベントが入力されてきた際に、全ルール共通条件である、「天気予報が雨」が満たされるかを判断し、満たされない場合、全入力イベントを破棄する。破棄したイベントは、フィルタエンジン２１１、ＣＥＰエンジン２１２には送られない。
【００７６】
図１１は、全ルール共通条件の設定の一例における具体例を示す説明図である。図１１では、図１０で示した例の具体例を示す。ＣＥＰエンジン用ルールｒｃ＿Ａ１は、ＥＰＬ記述では、図１１で示すコードｅｐｌ＿Ａ１となる。また、ＣＥＰエンジン用ルールｒｃ＿Ｂ１は、ＥＰＬ記述では、図１１で示すコードｅｐｌ＿Ｂ１となる。
【００７７】
サーバ２０１は、コードｅｐｌ＿Ａ１のｗｈｅｒｅ句から、イベントタイプごとに条件を抽出する。条件を抽出した結果が、図１１で示す条件抽出結果ｃｏ＿Ａ１である。また、サーバ２０１は、コードｅｐｌ＿Ｂ１のｗｈｅｒｅ句から、イベントタイプごとに条件を抽出する。条件を抽出した結果が、図１１で示す条件抽出結果ｃｏ＿Ｂ１である。また、そして、サーバ２０１は、条件抽出結果ｃｏ＿Ａ１と、条件抽出結果ｃｏ＿Ｂ１とから、共通の成立条件が「ＳｅｎｓｏｒＥｖｅｎｔ．Ｒａｉｎ＝‘ｔｒｕｅ’」であることを特定する。共通の成立条件を特定した後、サーバ２０１は、全ルール共通条件を、「ＳｅｎｓｏｒＥｖｅｎｔ．Ｒａｉｎ＝‘ｔｒｕｅ’」に設定する。
【００７８】
次に、あるイベントタイプの単位時間当たりのフィルタリング率が閾値を下回った際に、該当のイベントタイプとなるイベントを破棄して特殊イベントを発行する例を、図１２〜図１５を用いて説明する。また、特殊イベントを発行した後、あるイベントタイプの単位時間当たりのフィルタリング率が閾値以上となった際に特殊回復イベントを発行する例を、図１６を用いて説明する。
【００７９】
特殊イベントと特殊回復イベントとは、フィルタリング用ルールを適用して特定のイベントタイプに属するイベントを抽出した数と所定の閾値との比較結果に基づいたイベントである。具体的には、フィルタエンジン２１１は、フィルタリング用ルールを適用して特定のイベントタイプに属するイベントを抽出した数が所定の閾値を超えた際に特殊イベントを発行する。また、フィルタエンジン２１１は、特殊イベントを発行した後、フィルタリング用ルールを適用して特定のイベントタイプに属するイベントを抽出した数が所定の閾値を下回った際に特殊回復イベントを発行する。
【００８０】
図１２は、特殊イベントの発行の一例を示す説明図である。サーバ２０１は、図５と図８と図１０とで説明した機能に加えて、特定のイベントタイプの単位時間当たりのフィルタリング率が閾値より下回った際に、特定のイベントタイプに属するイベントを破棄して、特殊イベントを発行する。ここで、フィルタリング率は、フィルタエンジン用ルールを適用したイベント群の数に対するイベントを残した数でもよいし、イベントを削除した数でもよい。本実施の形態では、フィルタリング率は、イベントを削除した数とする。すなわち、フィルタリング率が閾値より下回る場合とは、イベントを削除した数が少なく、ＣＥＰエンジン２１２の負荷が増大することを意味する。具体的には、サーバ２０１は、交通イベント情報収集・検知システム２００の管理者によって設定された、特殊イベント用コンフィグに設定されたフィルタリング率閾値を下回った際に、該当のイベントタイプに属するイベントを破棄して、特殊イベントを発行する。
【００８１】
例えば、図１２の例では、ＣＥＰエンジン２１２には、設計者が設定した、ＣＥＰエンジン用ルールｒｃ＿Ａ１が設定されている。ＣＥＰエンジン用ルールｒｃ＿Ａ１の内容は、図５で示したＣＥＰエンジン用ルールｒｃ＿Ａ１と同一である。また、フィルタエンジン２１１には、ＣＥＰエンジン用ルールｒｃ＿Ａ１から生成されたフィルタエンジン用ルールｒｆ＿Ａ１が設定されている。フィルタエンジン用ルールｒｆ＿Ａ１の内容は、図５で示したフィルタエンジン用ルールｒｆ＿Ａ１と同一である。
【００８２】
特殊イベント用コンフィグは、ＥｖｅｎｔＴｙｐｅ、ＦｉｌｔｅｒＴｈｒｅｓｈｏｌｄ、ＥｍｅｒｇｅｎｃｙＡｄｄｒという設定項目を有する。ＥｖｅｎｔＴｙｐｅは、対象となるイベントタイプである。ＦｉｌｔｅｒＴｈｒｅｓｈｏｌｄは、対象となるイベントタイプの単位時間当たりのフィルタリング率閾値である。ＥｍｅｒｇｅｎｃｙＡｄｄｒは、対象となるイベントタイプに属するイベントが、ＦｉｌｔｅｒＴｈｒｅｓｈｏｌｄに設定された閾値を下回った際に、レコメンドを通知する緊急用宛先である。
【００８３】
例えば、図１２に示す特殊イベント用コンフィグｃｏｎｆ＿Ｓ１は、フィルタリング率閾値がｎ［％］であり、トラックイベントのフィルタリング率がｎ［％］を下回った際にレコメンドを宛先「ｘｘｘ」に通知することを示す。
【００８４】
特殊イベント用コンフィグがある場合、サーバ２０１は、設計者が設定したＣＥＰエンジン用ルールから、特殊イベント用のＣＥＰエンジン用ルールを生成する。図１２で示す特殊イベント用のＣＥＰエンジン用ルールｒｃ＿Ｓ１は、ＣＥＰエンジン用条件が「特殊イベント、かつ、天気予報が雨」であり、ＣＥＰエンジン用アクションが「「緊急：渋滞発生可能性有」をレコメンド」することである。
【００８５】
具体的には、まず、サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ１のＣＥＰエンジン用条件のうちの、特殊イベント用コンフィグｃｏｎｆ＿Ｓ１に設定されたトラックイベントに対応する箇所を、特殊イベントに置き換えたものを生成する。すなわち、サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ１をコピーしたＣＥＰエンジン用ルールについて、「トラックイベントの平均速度が５０ｋｍ／時未満、かつ、天気予報が雨」を、「特殊イベント、かつ、天気予報が雨」に置き換える。そして、サーバ２０１は、コピーしたＣＥＰエンジン用ルールについて、ＣＥＰエンジン用アクションのレコメンド内容に、「緊急：」を付与する。生成したＣＥＰエンジン用ルールが、図１２に示すＣＥＰエンジン用ルールｒｃ＿Ｓ１である。
【００８６】
そして、閾値の監視対象となるトラックイベントの単位時間当たりのフィルタリング率が、特殊イベント用コンフィグｃｏｎｆ＿Ｓ１に設定されたｎ［％］を下回ったとする。このとき、サーバ２０１は、トラックイベントを全て破棄して、特殊イベントｅｓｐを生成し、ＣＥＰエンジン２１２に送信する。
【００８７】
特殊イベントｅｓｐを受け付けたＣＥＰエンジン２１２は、ＣＥＰエンジン用ルールｒｃ＿Ｓ１を適用して、緊急用宛先「ｘｘｘ」に「緊急：渋滞発生可能性有」をレコメンドする。
【００８８】
図１３は、特殊イベントの設定の一例における具体例を示す説明図である。図１３では、図１２で示した例の具体例を示す。ＣＥＰエンジン用ルールｒｃ＿Ａ１は、ＥＰＬ記述では、図１３で示すコードｅｐｌ＿Ａ１となる。
【００８９】
サーバ２０１は、コードｅｐｌ＿Ａ１のｗｈｅｒｅ句から、イベントタイプごとに条件を抽出する。条件を抽出した結果が、図１３で示す条件抽出結果ｃｏ＿Ａ１である。次に、サーバ２０１は、特殊イベント用コンフィグｃｏｎｆ＿Ｓ１を参照して、条件抽出結果ｃｏ＿Ａ１の条件から、ＣＥＰエンジン用ルールｒｃ＿Ｓ１を生成する。ＣＥＰエンジン用ルールｒｃ＿Ｓ１は、ＥＰＬ記述では、図１３で示すコードｅｐｌ＿Ｓ１となる。
【００９０】
次に、図１４〜図１６を用いて、複合イベント処理システムを、株取引システムに適用した例を用いて、特殊イベントの設定の他の例を示す。
【００９１】
図１４は、特殊イベントの設定の他の例を示す説明図である。株取引システム１４００は、複数のイベントとして、株価イベントｅｓｔと、為替イベントｅｅｘとを受け付けて、サーバ２０１からのレコメンドを証券会社のサーバ１４０１に発行するシステムである。以下の説明と、図１４〜図１６では、株価イベントを「ＳｔｏｃｋＥｖｅｎｔ」と記述し、為替イベントを「ｅｘｃｈａｎｇｅＥｖｅｎｔ」と記述する場合がある。
【００９２】
サーバ２０１は、設計者が設定したＣＥＰエンジン用ルールを構文解析し、フィルタエンジン用ルールを生成する。次に、サーバ２０１は、ＣＥＰエンジン用ルールの解析結果より、ＣＥＰエンジン用ルールで使用されるイベントタイプを抽出する。そして、サーバ２０１は、抽出したイベントタイプから、イベントタイプに対応して抽出するイベントの条件と、未使用のイベントタイプを破棄する条件とを含むフィルタエンジン用ルールを生成する。
【００９３】
図１４に示すＣＥＰエンジン用ルールｒｃ＿Ａ３は、ＣＥＰエンジン用条件が「Ａ社の株価が２９００円未満、かつ、１ドル９８円未満」であり、ＣＥＰエンジン用アクションが「「Ａ社買い」をレコメンド」することである。また、図１４に示すフィルタエンジン用ルールｒｆ＿Ａ３は、株価イベントｅｓｔのうち、Ａ社であり、かつ、２９００円未満であるイベントを抽出し、為替イベントｅｅｘのうち、１ドル９８円未満であるイベントを抽出することを規定するルールである。
【００９４】
図１４に示す特殊イベント用コンフィグｃｏｎｆ＿Ｓ２は、図１２で説明した特殊イベント用コンフィグに加えて、ＥｍｅｒｇｅｎｃｙＡｃｔｉｏｎ１を有する。ＥｍｅｒｇｅｎｃｙＡｃｔｉｏｎ１は、ＦｉｌｔｅｒＴｈｒｅｓｈｏｌｄに設定された閾値を下回った際に行う、特殊イベント発生時の動作である。
【００９５】
例えば、特殊イベント用コンフィグｃｏｎｆ＿Ｓ２は、フィルタリング率閾値がｎ［％］であり、株価イベントｅｓｔのフィルタリング率がｎ［％］を下回ると「緊急：出来高異常」というレコメンドを宛先「ｘｘｘ」に通知することを示す。
【００９６】
特殊イベント用コンフィグがある場合、サーバ２０１は、設計者が設定したＣＥＰエンジン用ルールから、特殊イベント用のＣＥＰエンジン用ルールを生成する。図１４で示す特殊イベント用のＣＥＰエンジン用ルールｒｃ＿Ｓ２は、ＣＥＰエンジン用条件が「特殊イベント、かつ、１ドル９８円未満」であり、ＣＥＰエンジン用アクションが「「緊急：出来高異常」をレコメンド」することである。
【００９７】
具体的には、まず、サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ３のＣＥＰエンジン用条件のうちの、特殊イベント用コンフィグｃｏｎｆ＿Ｓ２に設定された株価イベントｅｓｔに対応する箇所を、特殊イベントｅｓｐに置き換えたものを生成する。すなわち、サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ３をコピーしたＣＥＰエンジン用ルールについて、「Ａ社の株価が２９００未満、かつ、１ドル９８円未満」を、「特殊イベント、かつ、１ドル９８円未満」に置き換える。そして、サーバ２０１は、コピーしたＣＥＰエンジン用ルールについて、ＣＥＰエンジン用アクションのレコメンド内容を、特殊イベント用コンフィグｃｏｎｆ＿Ｓ２に設定されたアクションに置き換える。すなわち、サーバ２０１は、ＣＥＰエンジン用ルールｒｃ＿Ａ３をコピーしたＣＥＰエンジン用アクションについて、「Ａ社買い」を、「緊急：出来高異常」に置き換える。生成したＣＥＰエンジン用ルールが、図１４に示すＣＥＰエンジン用ルールｒｃ＿Ｓ２である。
【００９８】
閾値の監視対象となる株価イベントの単位時間当たりのフィルタリング率が、特殊イベント用コンフィグｃｏｎｆ＿Ｓ２に設定されたｎ［％］を下回ったとする。このとき、サーバ２０１は、株価イベントｅｓｔを全て破棄して、特殊イベントｅｓｐを生成し、ＣＥＰエンジン２１２に送信する。
【００９９】
特殊イベントｅｓｐを受け付けたＣＥＰエンジン２１２は、ＣＥＰエンジン用ルールｒｃ＿Ｓ２を適用して、緊急用宛先「ｘｘｘ」に「緊急：出来高異常」をレコメンドする。このように、株取引システム１４００は、想定以上のＡ社売りが発生したことを検出することができる。
【０１００】
図１５は、特殊イベントの設定の他の例における具体例を示す説明図である。図１５に示す株取引システム１４００は、特殊イベントｅｓｐが発生した際に、「Ａ社買い」レコメンドを停止する。
【０１０１】
図１５に示す特殊イベント用コンフィグｃｏｎｆ＿Ｓ３は、図１４で説明した特殊イベント用コンフィグｃｏｎｆ＿Ｓ２に加えて、ＥｍｅｒｇｅｎｃｙＡｃｔｉｏｎ２を有する。ＥｍｅｒｇｅｎｃｙＡｃｔｉｏｎ２は、ＦｉｌｔｅｒＴｈｒｅｓｈｏｌｄに設定された閾値を下回った際に行う、特殊イベント発生時の動作である。
【０１０２】
例えば、特殊イベント用コンフィグｃｏｎｆ＿Ｓ３は、特殊イベント用コンフィグｃｏｎｆ＿Ｓ２が示す事柄に加えて、ＦｉｌｔｅｒＴｈｒｅｓｈｏｌｄに設定された閾値を下回った際に、「Ａ社買い」レコメンドを停止することを示す。
【０１０３】
特殊イベントｅｓｐを受け付けたＣＥＰエンジン２１２は、ＣＥＰエンジン用ルールｒｃ＿Ｓ２を適用して、緊急用宛先「ｘｘｘ」に「緊急：出来高異常」をレコメンドする。さらに、ＣＥＰエンジン２１２は、フィルタリング率が正常に戻ったとしても、「Ａ社買い」レコメンドを停止する。このように、株取引システム１４００は、想定以上のＡ社売りが発生したことを検出して、フィルタリング率が正常に戻ったとしても、この日のマーケットは異常であるため、取引を見合わせることができる。
【０１０４】
図１６は、特殊回復イベントの設定の一例を示す説明図である。図１６に示す株取引システム１４００は、特殊イベントｅｓｐが発生した後、フィルタリング率が正常に戻った際に、「Ａ社買い」レコメンドを再開する。
【０１０５】
図１６に示す特殊イベント用コンフィグｃｏｎｆ＿Ｓ４は、図１５で説明した特殊イベント用コンフィグｃｏｎｆ＿Ｓ３に加えて、ＥｍｅｒｇｅｎｃｙＲｅｓｔｏｒｅＡｃｔｉｏｎ１を有する。ＥｍｅｒｇｅｎｃｙＲｅｓｔｏｒｅＡｃｔｉｏｎ１は、ＦｉｌｔｅｒＴｈｒｅｓｈｏｌｄに設定された閾値を一旦下回った後、閾値以上となった際に行う、特殊回復イベント発生時の動作である。
【０１０６】
例えば、特殊イベント用コンフィグｃｏｎｆ＿Ｓ４は、特殊イベント用コンフィグｃｏｎｆ＿Ｓ３が示す事柄に加えて、ＦｉｌｔｅｒＴｈｒｅｓｈｏｌｄに設定された閾値を下回った後、閾値以上となった際に、「Ａ社買い」レコメンドを再開することを示す。
【０１０７】
特殊イベント用コンフィグがあり、かつ特殊回復イベント発生時の動作が設定された場合、サーバ２０１は、設計者が設定したＣＥＰエンジン用ルールから、特殊回復イベント用のＣＥＰエンジン用ルールを生成する。図１６で示す特殊イベント用のＣＥＰエンジン用ルールｒｃ＿Ｓ３は、ＣＥＰエンジン用条件が「特殊回復イベント、かつ、１ドル９８円未満」であり、ＣＥＰエンジン用アクションが「「緊急：出来高異常回復」をレコメンドする」ことである。
【０１０８】
閾値の監視対象となる株価イベントの単位時間当たりのフィルタリング率が、特殊イベント用コンフィグｃｏｎｆ＿Ｓ４に設定されたｎ［％］を下回った後、閾値以上になったとする。このとき、サーバ２０１は、株価イベントｅｓｔの破棄を解除し、特殊回復イベントｅｓｒを生成し、ＣＥＰエンジン２１２に送信する。
【０１０９】
特殊回復イベントｅｓｒを受け付けたＣＥＰエンジン２１２は、ＣＥＰエンジン用ルールｒｃ＿Ｓ３を適用して、「緊急：出来高異常回復」レコメンドを発行するとともに、「Ａ社買い」レコメンドを再開する。このように、株取引システム１４００は、想定以上のＡ社売りが発生した後、マーケットが正常に戻ったとみなして、取引を再開することができる。
【０１１０】
次に、図１７〜図２２を用いて、サーバ２０１が実行するイベント入力前処理と、イベント入力時処理とのフローチャートを説明する。ここで、イベント入力前処理は、サーバ２０１内の制御プロセスが実行する。また、イベント入力時処理は、フィルタエンジン２１１とＣＥＰエンジン２１２とが協働して実行する。
【０１１１】
図１７は、イベント入力前処理手順の一例を示すフローチャートである。イベント入力前処理は、イベントが入力される前に行う処理である。制御プロセスは、ＣＥＰエンジン用ルールを受け付ける（ステップＳ１７０１）。次に、制御プロセスは、空のフィルタエンジン用ルールを生成する（ステップＳ１７０２）。そして、制御プロセスは、受け付けたＣＥＰエンジン用ルールを構文解析する（ステップＳ１７０３）。次に、制御プロセスは、ＣＥＰエンジン２１２で使用されるイベントタイプのリストを生成する（ステップＳ１７０４）。
【０１１２】
そして、制御プロセスは、受け付けたＣＥＰエンジン用ルールが複数か否かを判断する（ステップＳ１７０５）。受け付けたＣＥＰエンジン用ルールが複数である場合（ステップＳ１７０５：Ｙｅｓ）、制御プロセスは、ＣＥＰエンジン用ルール複数受付時のフィルタエンジン用ルール生成処理を実行する（ステップＳ１７０６）。ＣＥＰエンジン用ルール複数受付時のフィルタエンジン用ルール生成処理は、図１８で後述する。
【０１１３】
一方、受け付けたＣＥＰエンジン用ルールが１つである場合（ステップＳ１７０５：Ｎｏ）、制御プロセスは、受け付けたルールに含まれるイベントタイプごとに、イベントタイプに対する条件を抽出して、抽出した条件をフィルタエンジン用ルールに追加する（ステップＳ１７０７）。
【０１１４】
ステップＳ１７０６またはステップＳ１７０７の処理終了後、制御プロセスは、ＣＥＰエンジンで未使用のイベントタイプが存在するか否かを判断する（ステップＳ１７０８）。ＣＥＰエンジンで未使用のイベントタイプが存在する場合（ステップＳ１７０８：Ｙｅｓ）、制御プロセスは、未使用のイベントタイプのうちの未選択のイベントタイプを選択する（ステップＳ１７０９）。次に、制御プロセスは、選択したイベントタイプに属するイベントを破棄する条件を生成する（ステップＳ１７１０）。具体的な条件の生成方法は、図７で説明したとおりである。
【０１１５】
そして、制御プロセスは、イベントを破棄する条件を、フィルタエンジン用ルールに追加する（ステップＳ１７１１）。次に、制御プロセスは、未使用のイベントタイプを全て選択したか否かを判断する（ステップＳ１７１２）。まだ選択していないイベントタイプがある場合（ステップＳ１７１２：Ｎｏ）、制御プロセスは、ステップＳ１７０９の処理に移行する。
【０１１６】
未使用のイベントタイプを全て選択した場合（ステップＳ１７１２：Ｙｅｓ）、または、ＣＥＰエンジンで未使用のイベントタイプが存在しない場合（ステップＳ１７０８：Ｎｏ）、制御プロセスは、特殊イベントおよび特殊回復イベント用のＣＥＰエンジン用ルール生成処理を実行する（ステップＳ１７１３）。特殊イベントおよび特殊回復イベント用のＣＥＰエンジン用ルール生成処理の詳細は、図１９で後述する。ステップＳ１７１３の処理終了後、制御プロセスは、イベント入力前処理を終了する。イベント入力前処理を実行することにより、サーバ２０１は、交通イベント情報収集・検知システム２００の設計者により設定されたＣＥＰエンジン用ルールに対応したフィルタエンジン用ルールを生成することができる。
【０１１７】
図１８は、ＣＥＰエンジン用ルール複数受付時のフィルタエンジン用ルール生成処理手順の一例を示すフローチャートである。ＣＥＰエンジン用ルール複数受付時のフィルタエンジン用ルール生成処理は、ＣＥＰエンジン用ルールを複数受け付けた場合のフィルタエンジン用ルールを生成する処理である。
【０１１８】
制御プロセスは、全てのＣＥＰエンジン用ルールで共通する成立条件が存在するか否かを判断する（ステップＳ１８０１）。全てのＣＥＰエンジン用ルールで共通する成立条件が存在する場合（ステップＳ１８０１：Ｙｅｓ）、制御プロセスは、全てのＣＥＰエンジン用ルールで共通する成立条件を全ルール共通条件に設定する（ステップＳ１８０２）。
【０１１９】
ステップＳ１８０２の処理終了後、または、全てのＣＥＰエンジン用ルールで共通する成立条件が存在しない場合（ステップＳ１８０１：Ｎｏ）、制御プロセスは、複数のＣＥＰエンジン用ルールのうちの未選択のルールを選択する（ステップＳ１８０３）。そして、制御プロセスは、選択したルールに含まれるイベントタイプのうちの未選択のイベントタイプを選択する（ステップＳ１８０４）。
【０１２０】
次に、制御プロセスは、選択したイベントタイプが全ルール共通条件に含まれるイベントタイプか否かを判断する（ステップＳ１８０５）。選択したイベントタイプが全ルール共通条件に含まれるイベントタイプでない場合（ステップＳ１８０５：Ｎｏ）、制御プロセスは、続けて、選択したイベントタイプに対する条件がフィルタエンジン用ルール内に既にあるか否かを判断する（ステップＳ１８０６）。選択したイベントタイプに対する条件がフィルタエンジン用ルール内にない場合（ステップＳ１８０６：Ｎｏ）、制御プロセスは、選択したイベントタイプに対する条件を、フィルタエンジン用ルールに追加する（ステップＳ１８０７）。
【０１２１】
ステップＳ１８０７の処理終了後、または選択したイベントタイプが全ルール共通条件に含まれるイベントタイプであるか、フィルタエンジン用ルール内に既にある場合（ステップＳ１８０５：Ｙｅｓ、ステップＳ１８０６：Ｙｅｓ）、制御プロセスは、選択したルールに含まれるイベントタイプを全て選択したか否かを判断する（ステップＳ１８０８）。ここで、ステップＳ１８０６：Ｙｅｓとなる場合、ＣＥＰエンジン用ルールに問題があることを示すため、制御プロセスは、選択したイベントタイプを出力してもよい。
【０１２２】
まだ選択していないイベントタイプがある場合（ステップＳ１８０８：Ｎｏ）、制御プロセスは、ステップＳ１８０４の処理に移行する。一方、選択したルールに含まれるイベントタイプを全て選択した場合（ステップＳ１８０８：Ｙｅｓ）、制御プロセスは、続けて、複数のＣＥＰエンジン用ルールを全て選択したか否かを判断する（ステップＳ１８０９）。まだ選択していないＣＥＰエンジン用ルールがある場合（ステップＳ１８０９：Ｎｏ）、制御プロセスは、ステップＳ１８０３の処理に移行する。一方、複数のＣＥＰエンジン用ルールを全て選択した場合（ステップＳ１８０９：Ｙｅｓ）、制御プロセスは、ＣＥＰエンジン用ルール複数受付時のフィルタエンジン用ルール生成処理を終了する。これにより、制御プロセスは、交通イベント情報収集・検知システム２００の設計者により設定された複数のＣＥＰエンジン用ルールに対応したフィルタエンジン用ルールを生成することができる。
【０１２３】
図１９は、特殊イベントおよび特殊回復イベント用のＣＥＰエンジン用ルール生成処理手順の一例を示すフローチャートである。特殊イベントおよび特殊回復イベント用のＣＥＰエンジン用ルール生成処理は、イベント入力前に行われる処理である。
【０１２４】
制御プロセスは、特殊イベント用コンフィグが設定されており、かつ特殊イベント発生時の動作が規定されているか否かを判断する（ステップＳ１９０１）。特殊イベント発生時の動作が規定されている場合（ステップＳ１９０１：Ｙｅｓ）、制御プロセスは、特殊イベント用のＣＥＰエンジン用ルールを生成する（ステップＳ１９０２）。
【０１２５】
ステップＳ１９０２の処理終了後、または、特殊イベント用コンフィグが設定されていないか、特殊イベント発生時の動作が規定されていない場合（ステップＳ１９０１：Ｎｏ）、制御プロセスは、ステップＳ１９０３の処理に移行する。制御プロセスは、特殊イベント用コンフィグが設定されており、かつ特殊回復イベント発生時の動作が規定されているか否かを判断する（ステップＳ１９０３）。特殊回復イベント発生時の動作が規定されている場合（ステップＳ１９０３：Ｙｅｓ）、制御プロセスは、特殊回復イベント用のＣＥＰエンジン用ルールを生成する（ステップＳ１９０４）。
【０１２６】
ステップＳ１９０４の処理終了後、または、特殊イベント用コンフィグが設定されていないか、特殊回復イベント発生時の動作が規定されていない場合（ステップＳ１９０３：Ｎｏ）、制御プロセスは、特殊イベントおよび特殊回復イベント用のＣＥＰエンジン用ルール生成処理を終了する。特殊イベントおよび特殊回復イベント用のＣＥＰエンジン用ルール生成処理を実行することにより、制御プロセスは、特殊イベントおよび特殊回復イベント用のＣＥＰエンジン用ルールを生成することができる。
【０１２７】
図２０は、イベント入力時処理手順の一例を示すフローチャート（その１）である。また、図２１は、イベント入力時処理手順の一例を示すフローチャート（その２）である。また、図２２は、イベント入力時処理手順の一例を示すフローチャート（その３）である。イベント入力時処理は、イベント入力時に行う処理である。フィルタエンジン２１１は、入力イベントを、入力イベントが属するイベントタイプごとにカウントする（ステップＳ２００１）。次に、フィルタエンジン２１１は、全ルール共通条件が設定されており、かつ全ルール共通条件が成立しなかったか否かを判断する（ステップＳ２００２）。全ルール共通条件が成立しなかった場合（ステップＳ２００２：Ｙｅｓ）、フィルタエンジン２１１は、全入力イベントを破棄する（ステップＳ２００３）。
【０１２８】
ステップＳ２００３の処理終了後、または、全ルール共通条件が設定されていないか、全ルール共通条件が成立した場合（ステップＳ２００２：Ｎｏ）、フィルタエンジン２１１は、フィルタエンジン用ルールを適用して入力イベントに対してフィルタリングする（ステップＳ２００４）。次に、フィルタエンジン２１１は、動的変更条件が設定されており、かつ動的変更条件が成立したか否かを判断する（ステップＳ２００５）。動的変更条件が成立した場合（ステップＳ２００５：Ｙｅｓ）、フィルタエンジン２１１は、成立した動的変更条件に対応するフィルタエンジン用ルールを生成する（ステップＳ２００６）。
【０１２９】
ステップＳ２００６の処理終了後、または、動的変更条件が設定されていないか、動的変更条件が成立していない場合（ステップＳ２００５：Ｎｏ）、フィルタエンジン２１１は、フィルタリング率閾値が設定されており、かつ、フィルタリング率がフィルタリング率閾値を下回ったか否かを判断する（ステップＳ２１０１）。フィルタリング率がフィルタリング率閾値を下回った場合（ステップＳ２１０１：Ｙｅｓ）、フィルタエンジン２１１は、フィルタリング率閾値に対応するイベントタイプに属するイベントを破棄する（ステップＳ２１０２）。次に、フィルタエンジン２１１は、特殊イベントを生成する（ステップＳ２１０３）。そして、フィルタエンジン２１１は、生成した特殊イベントをＣＥＰエンジン２１２に送信する（ステップＳ２１０４）。
【０１３０】
特殊イベントを受け付けたＣＥＰエンジン２１２は、緊急用宛先が設定されているか否かを判断する（ステップＳ２１０５）。緊急用宛先が設定されている場合（ステップＳ２１０５：Ｙｅｓ）、ＣＥＰエンジン２１２は、緊急用宛先に、特殊イベントに応じてレコメンドする（ステップＳ２１０６）。一方、緊急用宛先が設定されていない場合（ステップＳ２１０５：Ｎｏ）、ＣＥＰエンジン２１２は、通常の宛先に、特殊イベントに応じてレコメンドする（ステップＳ２１０７）。
【０１３１】
ステップＳ２１０６、またはステップＳ２１０７の処理終了後、ＣＥＰエンジン２１２は、特殊イベント発生時の動作が規定されているか否かを判断する（ステップＳ２１０８）。特殊イベント発生時の動作が規定されている場合（ステップＳ２１０８：Ｙｅｓ）、ＣＥＰエンジン２１２は、特殊イベント発生時の動作を実行する（ステップＳ２１０９）。一方、特殊イベント発生時の動作が規定されていない場合（ステップＳ２１０８：Ｎｏ）、ＣＥＰエンジン２１２は、フィルタエンジン２１１からイベントを待ち受ける。
【０１３２】
フィルタリング率閾値が設定されていないか、フィルタリング率がフィルタリング率閾値以上である場合（ステップＳ２１０１：Ｎｏ）、または、ステップＳ２１０９の処理終了後、フィルタエンジン２１１は、図２２に示すステップＳ２２０１の処理を実行する。
【０１３３】
フィルタエンジン２１１は、フィルタリング率閾値が設定されており、かつ、前回のフィルタリング率がフィルタリング率閾値を下回った状態となっており、フィルタリング率がフィルタリング率閾値以上か否かを判断する（ステップＳ２２０１）。フィルタリング率がフィルタリング率閾値以上である場合（ステップＳ２２０１：Ｙｅｓ）、フィルタエンジン２１１は、フィルタリング率閾値に対応するイベントタイプに属するイベントの破棄を解除する（ステップＳ２２０２）。
【０１３４】
次に、フィルタエンジン２１１は、特殊回復イベントを生成する（ステップＳ２２０３）。そして、フィルタエンジン２１１は、生成した特殊回復イベントをＣＥＰエンジン２１２に送信する（ステップＳ２２０４）。
【０１３５】
特殊回復イベントを受け付けたＣＥＰエンジン２１２は、緊急用宛先が設定されているか否かを判断する（ステップＳ２２０５）。緊急用宛先が設定されている場合（ステップＳ２２０５：Ｙｅｓ）、ＣＥＰエンジン２１２は、緊急用宛先に、特殊回復イベントに応じてレコメンドする（ステップＳ２２０６）。一方、緊急用宛先が設定されていない場合（ステップＳ２２０５：Ｎｏ）、ＣＥＰエンジン２１２は、通常の宛先に、特殊回復イベントに応じてレコメンドする（ステップＳ２２０７）。
【０１３６】
ステップＳ２２０６、または、ステップＳ２２０７の処理終了後、ＣＥＰエンジン２１２は、特殊回復イベント発生時の動作が規定されているか否かを判断する（ステップＳ２２０８）。特殊回復イベント発生時の動作が規定されている場合（ステップＳ２２０８：Ｙｅｓ）、ＣＥＰエンジン２１２は、特殊回復イベント発生時の動作を実行する（ステップＳ２２０９）。ステップＳ２２０９の処理終了後、または、特殊回復イベント発生時の動作が規定されていない場合（ステップＳ２２０８：Ｎｏ）、ＣＥＰエンジン２１２は、フィルタエンジン２１１からイベントを待ち受ける。
【０１３７】
フィルタリング率閾値が設定されていない、または、前回のフィルタリング率がフィルタリング率閾値を下回った状態でない、または、フィルタリング率がフィルタリング率閾値未満である場合（ステップＳ２２０１：Ｎｏ）、フィルタエンジン２１１は、ステップＳ２２１０の処理に移行する。また、ステップＳ２２０４の処理後、フィルタエンジン２１１は、ステップＳ２２１０の処理に移行する。フィルタエンジン２１１は、フィルタリングして残ったイベントをＣＥＰエンジン２１２に送信する（ステップＳ２２１０）。イベント入力時処理を実行することにより、サーバ２０１は、ＣＥＰエンジン用ルールと、フィルタエンジン用ルール、特殊イベント用のＣＥＰエンジン用ルール、特殊回復イベント用のＣＥＰエンジン用ルールを用いてイベント群を処理することができる。
【０１３８】
以上説明したように、サーバ２０１によれば、ＣＥＰエンジン用ルールから各イベントタイプ条件を抽出して、各イベントタイプの条件を満たすデータを抽出するフィルタエンジン用ルールを生成する。これにより、サーバ２０１は、フィルタエンジン用ルールを自動生成して、交通イベント情報収集・検知システム２００の設計者のルール作成作業の負荷を削減することができる。また、作成されるフィルタエンジン用ルールは、イベント群から有効なイベントだけを抽出するため、ＣＥＰエンジン２１２にかかる負荷を抑制するとともに、ＣＥＰエンジン２１２の分析結果の精度の劣化を抑制することができる。また、サーバ２０１は、低コストで、大量のイベントというビックデータ処理を可能にすることができる。
【０１３９】
また、サーバ２０１によれば、生成したフィルタエンジン用ルールをイベント群に適用することにより、群からＣＥＰエンジン用ルールの適用対象となるデータを抽出してもよい。これにより、ＣＥＰエンジン用ルールが変更されるたびに、フィルタエンジン用ルールを更新するという作業が自動で行われることになり、交通イベント情報収集・検知システム２００の管理者の手間を減らすことができる。
【０１４０】
また、サーバ２０１によれば、各々のイベントタイプに属するデータの数に基づいて、フィルタエンジン用ルールをイベント群に適用してもよい。これにより、サーバ２０１は、入力されたイベント群のイベントタイプの変化に対応することができ、フィルタエンジン用ルールの最適性を保つことができる。
【０１４１】
また、サーバ２０１によれば、イベント群が、複数のＣＥＰエンジン用ルールに共通するイベントタイプに属するイベントに関する条件を満たさない場合、イベント群を破棄してもよい。これにより、サーバ２０１は、イベント群を削除した際には、ＣＥＰエンジン２１２の負荷を軽減することができる。さらに、サーバ２０１によれば、フィルタエンジン用ルールを適用する前に、複数のＣＥＰエンジン用ルールに共通するイベントタイプのイベントに関する条件を満たさないことを判断してもよい。これにより、サーバ２０１は、イベント群を削除した際には、フィルタエンジン２１１にかかる負荷を軽減することができる。
【０１４２】
また、サーバ２０１によれば、特殊イベントがあることを含む条件と、条件を満たす際に特殊イベントが表す比較結果に対応する動作を規定したＣＥＰエンジン用ルールを生成する。そして、サーバ２０１は、フィルタエンジン用ルールを適用してイベントを抽出した数と所定の閾値との比較結果に基づいて、特殊イベントを生成してもよい。比較結果を表すデータの通知を、例えば、管理者が受けることにより、管理者は、フィルタエンジンが正常に機能していることや、フィルタリング率が低下しており、ＣＥＰエンジン２１２にかかる負荷が増加していることを検知することができる。
【０１４３】
また、サーバ２０１によれば、フィルタエンジン用ルールを適用してイベントを抽出した数が所定の閾値より大きい場合、イベント群を破棄するとともに、データを抽出した数が所定の閾値より大きいことを表すデータを生成してもよい。これにより、サーバ２０１は、フィルタリング率が低下しており、ＣＥＰエンジン２１２の負荷が増加した際に、フィルタリング率が低下したことを外部に通知することができるとともに、ＣＥＰエンジン２１２にかかる負荷を抑制することができる。
【０１４４】
なお、本実施の形態で説明したルール生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ルール生成プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ルール生成プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１４５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１４６】
（付記１）コンピュータに、
複数のイベントデータ種別各々に属するイベントデータに関する条件を組み合わせた複合条件と前記複合条件を満たす際の所定の動作とを規定した複合ルールから、前記複合条件から前記イベントデータ種別各々に属するイベントデータに関する条件を抽出することにより、抽出した前記条件を満たす前記複合ルールの適用対象となるイベントデータをイベントデータ群から抽出する抽出ルールを生成する、
処理を実行させることを特徴とするルール生成プログラム。
【０１４７】
（付記２）前記コンピュータに、
生成した前記抽出ルールを前記イベントデータ群に適用することにより、前記イベントデータ群から前記複合ルールの適用対象となるイベントデータを抽出する、
処理を実行させることを特徴とする付記１に記載のルール生成プログラム。
【０１４８】
（付記３）前記コンピュータに、
前記イベントデータ群に含まれる前記イベントデータ種別各々に属するイベントデータの数に基づいて、前記抽出ルールを生成し、
生成した当該抽出ルールを前記イベントデータ群に適用することにより、前記イベントデータ群から前記複合ルールの適用対象となるイベントデータを抽出する、
処理を実行させることを特徴とする付記２に記載のルール生成プログラム。
【０１４９】
（付記４）前記コンピュータが前記複合ルールを複数有し、
前記コンピュータに、
複数の複合ルールから、前記複数の複合ルールの各々の複合条件に共通するイベントデータ種別に属するイベントデータに関する条件を抽出し、
前記共通するイベントデータ種別に属するイベントデータに関する条件を抽出した後、前記イベントデータ群に、前記共通するイベントデータ種別に属するイベントデータに関する条件を満たすイベントデータがなければ、前記イベントデータ群を破棄する、
処理を実行させることを特徴とする付記２または３に記載のルール生成プログラム。
【０１５０】
（付記５）前記コンピュータに、
特定のイベントデータ種別に対応する所定の閾値と、前記複合ルールとに基づいて、前記特定のイベントデータ種別に属するイベントデータを抽出した数と前記所定の閾値との比較結果に基づいた特定のデータがあることを含む条件と前記複合ルールに含まれる前記特定のイベントデータ種別とは異なるイベントデータ種別に属するイベントデータに関する条件とを組み合わせた複合条件と、当該複合条件を満たす際に前記比較結果に対応する動作とを規定した新たな複合ルールを生成し、
前記抽出ルールを前記イベントデータ群に適用した際に、前記イベントデータ群から前記特定のイベントデータ種別に属するイベントデータを抽出した数と前記所定の閾値との比較結果に基づいて前記特定のデータを生成し、
前記イベントデータ群から前記抽出ルールを適用して抽出したイベントデータと、前記特定のデータとを、前記新たな複合ルールの適用対象に設定する、
処理を実行させることを特徴とする付記２〜４のいずれか一つに記載のルール生成プログラム。
【０１５１】
（付記６）前記コンピュータに、
前記抽出ルールを前記イベントデータ群に適用した際に、前記イベントデータ群から前記特定のイベントデータ種別に属するイベントデータを抽出した数が前記所定の閾値より大きい場合、前記イベントデータ群のうちの前記特定のイベントデータ種別に属するイベントデータを破棄し、
前記イベントデータ群から前記抽出ルールを適用して抽出したイベントデータのうちの破棄していないイベントデータと、前記特定のデータとを、前記新たな複合ルールの適用対象に設定する、
処理を実行させることを特徴とする付記５に記載のルール生成プログラム。
【０１５２】
（付記７）複数のイベントデータ種別各々に属するイベントデータに関する条件を組み合わせた複合条件と前記複合条件を満たす際の所定の動作とを規定した複合ルールから、前記複合条件から前記イベントデータ種別各々に属するイベントデータに関する条件を抽出することにより、抽出した前記条件を満たす前記複合ルールの適用対象となるイベントデータをイベントデータ群から抽出する抽出ルールを生成する制御部を、
有することを特徴とする情報処理装置。
【０１５３】
（付記８）コンピュータが、
複数のイベントデータ種別各々に属するイベントデータに関する条件を組み合わせた複合条件と前記複合条件を満たす際の所定の動作とを規定した複合ルールから、前記複合条件から前記イベントデータ種別各々に属するイベントデータに関する条件を抽出することにより、抽出した前記条件を満たす前記複合ルールの適用対象となるイベントデータをイベントデータ群から抽出する抽出ルールを生成する、
処理を実行することを特徴とするルール生成方法。
【符号の説明】
【０１５４】
１０１  情報処理装置
１１０  複合イベント処理システム
２００  交通イベント情報収集・検知システム
２０１  サーバ
４０１  フィルタエンジン用ルール生成部
４０２  抽出部
４０３  破棄部
４０４  ＣＥＰエンジン用ルール生成部
４０５  特殊イベント生成部
４０６  分析部
【図１】
2015219725.tif 000003
【図２】
2015219725.tif 000004
【図３】
2015219725.tif 000005
【図４】
2015219725.tif 000006
【図５】
2015219725.tif 000007
【図６】
2015219725.tif 000008
【図７】
2015219725.tif 000009
【図８】
2015219725.tif 000010
【図９】
2015219725.tif 000011
【図１０】
2015219725.tif 000012
【図１１】
2015219725.tif 000013
【図１２】
2015219725.tif 000014
【図１３】
2015219725.tif 000015
【図１４】
2015219725.tif 000016
【図１５】
2015219725.tif 000017
【図１６】
2015219725.tif 000018
【図１７】
2015219725.tif 000019
【図１８】
2015219725.tif 000020
【図１９】
2015219725.tif 000021
【図２０】
2015219725.tif 000022
【図２１】
2015219725.tif 000023
【図２２】
2015219725.tif 000024