(57)【要約】  不特定多数の発信源から得られるイベントを入力とする複合イベント処理において、逐次処理でイベント間の矛盾を解消することができるイベント処理装置を提供する。イベント処理装置５０は、所定の条件によって互いに対応付けられたイベントデータの集合を所定の保持期限まで記憶するイベントデータ記憶手段５１と、新規に入力されたイベントデータが所定の条件を満たす場合に当該イベントデータを新規イベントデータとして集合に含めるイベント評価手段５２と、新規イベントデータが、集合に含まれる他のイベントデータとの間で共通する属性に対する各々の属性値の間に競合が生じる競合データである場合に、当該競合データを集合から除外するイベント競合解消手段５３とを備える。
2014061190.tif 000002
【特許請求の範囲】
【請求項１】
所定の条件によって互いに対応付けられたイベントデータの集合を所定の保持期限まで記憶するイベントデータ記憶手段と、
新規に入力されたイベントデータが前記所定の条件を満たす場合に当該イベントデータを新規イベントデータとして前記集合に含めるイベント評価手段と、
前記新規イベントデータが、前記集合に含まれる他のイベントデータとの間で共通する属性に対する各々の属性値の間に競合が生じる競合データである場合に、当該競合データを前記集合から除外するイベント競合解消手段とを備えた
ことを特徴とするイベント処理装置。
【請求項２】
所定の条件に対応付けられたイベントデータの保持期限を、新規に入力されたイベントデータの保持期限に合わせて更新するイベント保持期限更新手段を備えた
請求項１に記載のイベント処理装置。
【請求項３】
イベント競合解消手段は、所定の条件によって互いに対応付けられたイベントデータ間で、共通する属性の値が異なる競合データか否かを判断する際に、特定の属性については競合データか否かを判断する対象から除外する
請求項１または請求項２に記載のイベント処理装置。
【請求項４】
イベントデータの集合を解析した解析結果である複合イベントを出力する結果出力手段を備え、
イベント評価手段は、所定の条件によって前記複合イベントを生成するか否かを判断して、当該複合イベントを生成し、
前記結果出力手段は、生成された複合イベントを出力する
請求項１から請求項３のうちのいずれか１項に記載のイベント処理装置。
【請求項５】
一の属性または属性値から導き出される他の属性および属性値との関係を規定した概念辞書を記憶するルール記憶手段を備え、
イベント評価手段は、新規イベントデータに含まれる属性または属性値に基づいて前記概念辞書から他の属性及び属性値を展開し、
イベント競合解消手段は、展開された属性及び属性値を用いて新規イベントデータが競合データか否かを判断する
請求項１から請求項４のうちのいずれか１項に記載のイベント処理装置。
【請求項６】
所定の条件によって互いに対応付けられたイベントデータの集合を所定の保持期限まで記憶し、
新規に入力されたイベントデータが前記所定の条件を満たす場合に当該イベントデータを新規イベントデータとして前記集合に含め、
前記新規イベントデータが、前記集合に含まれる他のイベントデータとの間で共通する属性に対する各々の属性値の間に競合が生じる競合データである場合に、当該競合データを前記集合から除外する
ことを特徴とするイベント処理方法。
【請求項７】
所定の条件に対応付けられたイベントデータの保持期限を、新規に入力されたイベントデータの保持期限に合わせて更新する
請求項６に記載のイベント処理方法。
【請求項８】
コンピュータに、
所定の条件によって互いに対応付けられたイベントデータの集合を所定の保持期限まで記憶するイベントデータ記憶処理、
新規に入力されたイベントデータが前記所定の条件を満たす場合に当該イベントデータを新規イベントデータとして前記集合に含めるイベント評価処理、および、
前記新規イベントデータが、前記集合に含まれる他のイベントデータとの間で共通する属性に対する各々の属性値の間に競合が生じる競合データである場合に、当該競合データを前記集合から除外するイベント競合解消処理
を実行させるためのイベント処理プログラム。
【請求項９】
コンピュータに、
所定の条件に対応付けられたイベントデータの保持期限を、新規に入力されたイベントデータの保持期限に合わせて更新するイベント保持期限更新処理を実行させる
請求項８に記載のイベント処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はイベント処理装置、イベント処理方法、およびイベント処理プログラムに関する。
【背景技術】
【０００２】
ビッグデータをビジネスに有効活用する方法が世界的に注目されている。ビッグデータは、様々な種類のデータを意味する。様々な種類のデータの中でも、温度などセンサ類のデータや監視カメラ映像の認識結果、Ｔｗｉｔｔｅｒ（登録商標）に代表されるソーシャルメディアのテキストデータといった、常時大量に発信されるデータが注目されている。
そのため、それら常時大量に発信されるデータを、リアルタイムに解析する複合イベント処理（以下、ＣＥＰ（Ｃｏｍｐｌｅｘ  Ｅｖｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ）と称することがある）技術に対する期待が高まっている。【０００３】
ＣＥＰは、単一情報源から発信される個々のデータをそれぞれ独立に処理する技術ではなく、連続した、または異なる情報源から得た非連続な複数のデータを逐次処理で対応付けながら評価することにより、所望のイベントの発生をリアルタイムに検知する技術である。【０００４】
例えば、あるセキュリティサービスを提供するシステムがＣＥＰによって実現される。そのシステムは、ある施設において来客用入口ゲートで入場カードのセンサがある特定の人数の入場を検知した時刻に、同施設内であるサービスの整理券発行総数が入場者数またはそれ以上をカウントした場合、不正入場者の警告を発するというシステムである。【０００５】
ＣＥＰを実装したシステムには、Ｏｒａｃｌｅ（登録商標）  ＣＥＰ（非特許文献１参照）やＩＢＭのＩｎｆｏＳｐｈｅｒｅ（登録商標） Ｓｔｒｅａｍｓ（非特許文献２参照）といった製品のほか、Ｅｓｐｅｒなどのオープンソースソフトウェア（非特許文献３参照）がある。【０００６】
現状のＣＥＰは、複数の関連しうるイベントを対応付けて評価するために、予め対象とするイベントの発信源（対応付け元と同一の発信源を含む）を定めておき、それをルールに記述している。入力されたイベントのうち、用意されたいずれかのルールで参照されるイベントは、参照されたルールにおいてそのイベントに関する全ての評価が終了するまでメモリに保持される。【０００７】
しかし、情報の発信源がソーシャルメディアのメッセージ発信者のような場合、共通または関連するイベントについての情報の発信者を限定できないため、予め対応付けるイベントの発信源（発信者）を指定することが難しい。そうした不特定多数の発信源（メッセージ発信者など）の情報同士を対応付けると、発信情報相互の内容に矛盾を生じる可能性がある。【０００８】
例えば、ある発信者が「人物Ａと日時Ｔ１に場所Ｐで会議をする」という情報を発信し、別の発信者が「人物Ａと日時Ｔ２に場所Ｐで会議をする」という情報を発信した場合、イベントの種類（会議）、対象（人物Ａ）、場所（Ｐ）が共通しているイベントを対応付けるルールがあると、この２つのイベントは、関連イベントとして扱われる。【０００９】
しかし、日時Ｔ１と日時Ｔ２が大きく異なる場合は、別の会議である可能性が高い。よってこの場合、双方を関連イベントとして扱う処理は、多くの場合不適切と思われる。ＣＥＰは、この例において、日時Ｔ１と日時Ｔ２の矛盾の検知や解消ができない。【００１０】
特許文献１では、ニュースやブログなどのテキストから多数のビジネス情報を抽出し、企業間の競合激化や協力強化といったビジネス関連のイベントを自動検出する方法を開示している。その方法では、同じビジネス関係の組合せの２企業に関する多数のビジネス情報を、競合、協力、買収などの関係タイプごとに集計し、各関係タイプのスコアの大小によってある時点での企業間の関係やその強さを判定している。【００１１】
また、特許文献１に記載されている方法では、複数のビジネス情報間の、同じビジネス関係の企業の組合せの中に複数の関係タイプが発生し、どちらが買収したのかなどを示す向きが各関係タイプで異なるといった矛盾が生じた場合、その矛盾を関係の強さを表すスコアに反映する。例えば、複数のビジネス情報間に矛盾がある場合、スコアは小さくなる。このような手法を用いることで、特許文献１に記載された方法では、検出するビジネスイベントの信頼度を調節する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特許第４７９５４１７号公報
【非特許文献】
【００１３】
【非特許文献１】"Oracle Complex Event Processing"、［online］、日本オラクル、［平成 24年 9月 26日検索］、インターネット〈 URL：http://www.oracle.com/technetwork/jp/middleware/complex-event-processing/index.html〉
【非特許文献２】"InfoSphere Streams"、［online］、日本IBM、［平成 24年 9月 26日検索］、インターネット〈 URL：http://www-06.ibm.com/software/jp/data/infosphere/streams/〉
【非特許文献３】"Esper - Complex Event Processing"、［online］、EsperTech、［平成 24年 9月 26日検索］、インターネット〈 URL：http://esper.codehaus.org/〉
【発明の概要】
【発明が解決しようとする課題】
【００１４】
図１０に示された複合イベント処理装置（以下、ＣＥＰ装置という。）は、イベントを組み合わせて評価する際、イベントの属性間の矛盾を検知し解消する手段を備えていない。また、特許文献１に記載の矛盾解消方法は、ＣＥＰのような逐次処理に適用されることが想定されていない。【００１５】
特許文献１に記載されている矛盾解消方法は、評価対象の全てのイベントがデータベースに予め記録されていることを前提としている。そして、その矛盾解消方法は、全イベントに対してビジネス関係の存在の信頼度を示す照合スコアの計算をすることで、ビジネス関係のマイニングを行う。【００１６】
そのため、特許文献１に記載された方法を、次々と新たなイベントが入力されてくるＣＥＰシステムに適用することは困難である。従って、ＣＥＰを実装している他のシステムでの処理と同じように、逐次処理でイベント間の矛盾を解消する方法が必要である。【００１７】
そこで、本発明は、不特定多数の発信源から得られるイベントを入力とする複合イベント処理において、逐次処理でイベント間の矛盾を解消することができるイベント処理装置、イベント処理方法およびイベント処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明によるイベント処理装置は、所定の条件によって互いに対応付けられたイベントデータの集合を所定の保持期限まで記憶するイベントデータ記憶手段と、新規に入力されたイベントデータが所定の条件を満たす場合に当該イベントデータを新規イベントデータとして集合に含めるイベント評価手段と、新規イベントデータが、集合に含まれる他のイベントデータとの間で共通する属性に対する各々の属性値の間に競合が生じる競合データである場合に、当該競合データを集合から除外するイベント競合解消手段とを備えたことを特徴とする。【００１９】
本発明によるイベント処理方法は、所定の条件によって互いに対応付けられたイベントデータの集合を所定の保持期限まで記憶し、新規に入力されたイベントデータが所定の条件を満たす場合に当該イベントデータを新規イベントデータとして集合に含め、新規イベントデータが、集合に含まれる他のイベントデータとの間で共通する属性に対する各々の属性値の間に競合が生じる競合データである場合に、当該競合データを集合から除外することを特徴とする。【００２０】
本発明によるイベント処理プログラムは、コンピュータに、所定の条件によって互いに対応付けられたイベントデータの集合を所定の保持期限まで記憶するイベントデータ記憶処理、新規に入力されたイベントデータが所定の条件を満たす場合に当該イベントデータを新規イベントデータとして集合に含めるイベント評価処理、および、新規イベントデータが、集合に含まれる他のイベントデータとの間で共通する属性に対する各々の属性値の間に競合が生じる競合データである場合に、当該競合データを集合から除外するイベント競合解消処理を実行させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、不特定多数の発信源から得られるイベントを入力とする複合イベント処理において、逐次処理でイベント間の矛盾を解消することができる。
【図面の簡単な説明】
【００２２】
【図１】第１の実施形態におけるイベント処理装置の構成例を示すブロック図である。
【図２】イベント処理装置の動作を示すフローチャートである。
【図３】イベント処理装置に入力されるイベントの例を示す説明図である。
【図４】イベント処理装置で用いられるルールの一例を示す状態遷移図である。
【図５】イベント処理装置で用いられる概念辞書の一例を示す説明図である。
【図６】イベント処理装置から出力される複合イベントの一例を示す説明図である。
【図７】イベント処理装置のハードウェア構成例を示す説明図である。
【図８】第２の実施形態におけるイベント処理装置の構成例を示すブロック図である。
【図９】イベント処理装置の概要を示すブロック図である。
【図１０】一般的な複合イベント処理装置全体に共通した構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
実施形態１．
以下、本発明の第１の実施形態を図面を参照して説明する。図１は、本発明による第１の実施形態におけるイベント処理装置の構成例を示すブロック図である。図１に示すイベント処理装置１０は、イベント受信手段１と、ルール記憶手段２と、イベント評価手段３と、イベント記憶手段４と、結果出力手段５と、イベント競合解消手段６とを備えている。
【００２４】
イベント受信手段１は、外部の発信源から発信されるイベントを受信する機能を有する。
【００２５】
ルール記憶手段２は、イベント受信手段１が受信したイベントを評価するためのルール全体を記憶する機能を有する。イベントを評価するためのルール全体には、イベントをグループ化するためのルールと、グループを出力する条件が含まれる。
【００２６】
なお、ルール記憶手段２は、後述する概念辞書を記憶しても良い。
【００２７】
イベント評価手段３は、イベント受信手段１が受信した１つ以上のイベントが、ルール記憶手段２に記憶されたルールに従うか否かを判定する（以下、照合するという）機能を有する。また、受信した１つ以上のイベントがルールに従う場合（以下、適合するという）、イベント評価手段３は、そのイベントを特定のイベントの集合に含める機能を有する。
【００２８】
イベント記憶手段４は、ルール記憶手段２に記憶されたルールに適合するイベントをイベント受信手段１が受信した場合に、そのイベントを所定の期限まで記憶する機能を有する。なお、イベント記憶手段４は、ルールに適合しないイベントも記憶しても良い。
【００２９】
ルール記憶手段２に記憶されたルール全体に記載された終了状態に至るまでの全ての条件を満たすとイベント評価手段３が判定した場合に、結果出力手段５は、特定の複合イベントを出力する機能を有する。なお、複合イベントは、イベント処理装置１０が解析ルールに基づいて解析した、イベントの集合の解析結果である。
【００３０】
イベント競合解消手段６は、イベント評価手段３が複数のイベントを組み合わせて照合した結果、照合されたイベントの間に属性値が異なる（以下、競合するという）属性が含まれているか否か検知する機能を有する。なお、属性値は、イベントの各属性を示す値である。
【００３１】
また、照合されたイベントの間に競合が生じる属性が含まれていることを検知した場合、イベント競合解消手段６は、受信した１つ以上のイベントを、特定のイベントの集合から除外する機能を有する。
【００３２】
イベント競合解消手段６は、同じ発信源から受信した複数のイベント間で、同じ属性の属性値が異なる場合、後に受信した新しい方の属性値を採用するという機能を有していても良い。
【００３３】
また、イベント競合解消手段６は、異なる発信源から受信した複数のイベント間で、同じ属性の属性値が異なる場合、先にイベント記憶手段４に記憶されていた方のイベントに含まれる属性値を採用するという機能を有していても良い。
【００３４】
これらの機能を有することにより、イベント競合解消手段６は、同じ属性の属性値が異なるために矛盾や対立を生じている情報を解消することができる。
【００３５】
以下、本発明の動作を、図２を参照して説明する。図２は、本発明によるイベント処理装置の動作を示すフローチャートである。
【００３６】
まず、イベント処理装置１０のイベント受信手段１は、新規イベントを受信する（ステップＳ１)。イベント受信手段１は、受信した新規イベントを、イベント評価手段３へ入力する。
【００３７】
イベント評価手段３は、ルール記憶手段２の中に、受信した新規イベントに適合し、過去のイベントにも適合しているルールを含むルール全体が存在するか確認する（ステップＳ２）。
【００３８】
ルール記憶手段２の中に、受信したイベントに適合し、過去のイベントにも適合しているルールを含むルール全体が存在しなかった場合（ステップＳ２のＮｏ）、イベント評価手段３は、受信したイベントを基に、新規のイベントの集合を作成する（ステップＳ１１）。
【００３９】
ルール記憶手段２の中に、受信したイベントに適合し、過去のイベントにも適合しているルールを含むルール全体が存在した場合（ステップＳ２のＹｅｓ）、イベント評価手段３は、イベント記憶手段４に記憶されている過去のイベントの中から、ステップＳ２で特定したルール全体に関連するイベントを特定する。このとき、イベント評価手段３は、複数の過去イベントを特定してもよい。
【００４０】
イベント評価手段３が過去イベントを特定した後、イベント競合解消手段６は、特定された過去イベントと新規に入力されたイベントとの間で、共通する各属性の値である属性値を比較する（ステップＳ３）。このとき、イベント競合解消手段６は、発信者を特定するための属性などの、これらのイベント自体の内容ではない特定の属性を比較する対象から除く。
【００４１】
属性値を比較することにより、イベント競合解消手段６は、競合する属性値が存在するか確認する（ステップＳ４）。
【００４２】
特定された過去イベントと新規に入力されたイベントとの間で競合する属性値が存在していた場合（ステップＳ４のＹｅｓ）、イベント競合解消手段６は、競合する属性値を持つイベントを不採用とし、ステップＳ２で特定されたルール全体に関連したイベントの集合から除外する（ステップＳ６）。このとき、イベントの集合は、元の状態のままとなる。
【００４３】
なお、除外されたイベントは、受信された時刻から一定時間後までは、イベント処理装置１０のメモリ内に保持される。
【００４４】
特定された過去イベントと新規に入力されたイベントとの間で競合する属性値が存在していなかった場合（ステップＳ４のＮｏ）、イベント評価手段３は、その受信したイベントを、ステップＳ２で特定したルール全体に関連した、イベントの集合に含める（ステップＳ５）。
【００４５】
受信したイベントを、特定したルール全体に関連したイベントの集合に含めた後、イベント評価手段３は、受信したイベントを含んだイベントの集合が、ステップＳ２で特定したルール全体内に記載された、終了状態に至るまでの全ての条件を満たすか確認する（ステップＳ７）。
【００４６】
終了状態に至るまでの全ての条件が満たされる場合（ステップＳ７のＹｅｓ）、イベント評価手段３は、ステップＳ２で特定したルール全体の中のルールごとに定義された解析ルールに基づいて複合イベントを生成する。結果出力手段５は、生成された複合イベントを、そのイベントの集合の解析結果として出力する（ステップＳ８）。
【００４７】
終了状態に至るまでの全ての条件が満たされなかった場合（ステップＳ７のＮｏ）、イベントの集合は、受信したイベントを含んだ状態のままとなる。
【００４８】
１つの受信したイベントと１つの過去イベントとの間で属性値を比較した後、イベント評価手段３は、ステップＳ２で特定したルール全体の中のルールに適合する過去イベントのうち、イベント競合解消手段６によってまだ属性値が比較されていないものが無いか確認する（ステップＳ９）。
【００４９】
属性値が比較されていない過去イベントが存在した場合（ステップＳ９のＹｅｓ）、イベント競合解消手段６は、受信したイベントと、その過去イベントとの間で、再度属性値を比較する（ステップＳ３）。
【００５０】
属性値が比較されていない過去イベントが存在しなかった場合（ステップＳ９のＮｏ）、イベント評価手段３は、受信したイベントが、いずれかのイベントの集合の中に含まれているか確認する（ステップＳ１０）。
【００５１】
受信したイベントがイベントの集合の中に含まれていなかった場合（ステップＳ１０のＮｏ）、イベント評価手段３は、受信したイベントを基に、新規のイベントの集合を作成する（ステップＳ１１）。
【００５２】
受信したイベントがイベントの集合の中に含まれていた場合（ステップＳ１０のＹｅｓ）、または新規のイベントの集合を作成した後（ステップＳ１１）、イベント評価手段３は、まだ評価していないイベントが無いか確認する（ステップＳ１２）。
【００５３】
まだ評価していないイベントが存在する場合（ステップＳ１２のＹｅｓ）、イベント受信手段１は、次のイベントを受信する（ステップＳ１）。まだ評価していないイベントが存在しない場合（ステップＳ１２のＮｏ）、イベント処理装置１０は、処理を終了する。
【００５４】
次に、本発明であるイベント処理装置１０によって処理される具体的なイベントの例を、図３を参照して説明する。
【００５５】
図３は、各イベントを表す元のデータとイベント受信手段１が実際に受信するイベントｅ１〜ｅ５の例を示す説明図である。例えば、「＠ｆｏｏ」という名前で識別される情報発信者が「明日、Ａ社へデモンストレーション（以下、デモという。）に行く。」というメッセージをソーシャルメディアに発信したとする。
【００５６】
発信されたメッセージからイベントを生成するためには、イベント収集装置（図示せず）を用いる。イベント収集装置は、この発信されたメッセージを元データとして、イベントｅ１を生成する。その後イベント受信手段１は、イベントｅ１を受信する。
【００５７】
同様に、イベント収集装置は、「＠ｂａｒ」や「＠ｂａｚ」といった名前で識別される情報発信者から発信される１つ以上のメッセージを、イベントｅ２〜ｅ５に変換する。メッセージがイベントに変換された後、イベント受信手段１は、その変換されたイベントを受信する。
【００５８】
なお、本例では、イベント収集装置がメッセージからイベントを生成しているが、例えば、イベント受信手段１が、メッセージからイベントを生成しても良い。
【００５９】
各イベントは、発信者、発信日時、イベントのタイプ、イベント日付、イベント場所といった属性と、それぞれの属性値を含む。特に、イベントのタイプは、イベントを分類する際の基準となる情報である。
【００６０】
続いて、イベントを評価する際に適用されるルール全体の具体例を、図４を参照して説明する。
【００６１】
図４は、ルール全体の中の関連するイベントの対応付けをするためのルールと特定のイベントの集合の成立条件の一例を示す状態遷移図である。図４の状態遷移図は、特定のイベントの集合の生成から終了に至るまでの各状態を示している。
【００６２】
サブルール１は、イベント受信手段１が受信したイベントが、少なくともイベントのタイプ、イベント日付、イベント場所、人数という４つの属性を含み、かつ、イベントのタイプの属性値が「集団行動」であるか否かを判定する。
【００６３】
なお、イベントのタイプ以外の属性の属性値は、イベント日付がＤ１、イベント場所がＰ１、人数がＸなどの、各属性の値域に応じた任意の値であれば良く、また値が無くとも良いものとする。
【００６４】
イベント受信手段１が受信したイベントがサブルール１に適合する場合、イベント評価手段３は、初期状態Ｑ０である特定のイベントの集合の状態を、状態Ｑ１に遷移させる。
【００６５】
サブルール３は、特定のイベントの集合の属性値Ｘが５以上であるか否かを判定する。特定のイベントの集合がサブルール３に従う場合、イベント評価手段３は、状態Ｑ１に遷移したそのイベントの集合の状態を、直ちに終了状態Ｑ２に遷移する。
【００６６】
終了状態Ｑ２に遷移した時点で、特定のイベントの集合は、イベント評価手段３が特定したルールにより定義された成立条件を満たしたことになる。終了状態Ｑ２に達した際には、人数の値Ｘが５以上となるために必要とされた、全てのイベントの組が出力されるデータとなる。
【００６７】
サブルール２は、イベント受信手段１が受信したイベントが、イベントのタイプ、イベント日付、イベント場所、人数という４つの属性を含み、それぞれの値が「集団行動」、Ｄ２、Ｐ２、Ｙであり、且つＤ２はＤ１に等しく、Ｐ２はＰ１に等しいか否かを判定する。
【００６８】
イベント受信手段１が受信したイベントがサブルール２に適合する場合、イベント評価手段３は、状態Ｑ１に遷移した特定のイベントの集合に対し、人数の値Ｘに「ｍａｘ（Ｘ，Ｙ，ｓｕｍ（ｄｉｓｔｉｎｃｔ（［発信者］）））」で算出される値を記録する。
【００６９】
サブルール２の中の人数の値Ｘを算出する式「ｍａｘ（Ｘ，Ｙ，ｓｕｍ（ｄｉｓｔｉｎｃｔ（［発信者］）））」において、「［発信者］」は、属性「発信者」の値を表すものとする。また、「ｄｉｓｔｉｎｃｔ（Ｘ）」は、重複するＸを取り除く関数とする。また、「ｓｕｍ（Ｘ）」は、Ｘの合計数を与える関数とする。また、「ｍａｘ（Ｘ，Ｙ，Ｚ，・・・）」は、Ｘ，Ｙ，Ｚ，・・・のうち、最大の数値を与える関数とする。
【００７０】
そのように各関数が設定された上で、人数の値Ｘを算出する式は、記憶されていた直前の属性「人数」の値Ｘ、新たに受信されたイベントの人数の値Ｙ、記憶されていたこのルールの要件を満たす全てのイベントの属性「発信者」の数の合計のうち、最大の値を返す。
【００７１】
なおＤ１とＤ２、およびＰ１とＰ２を比較する際に、属性の一方に値が無い場合、属性に値が有る方のイベントの属性の値を、無い方のイベントの属性の値に代入するものとする。双方のイベントの属性に値が無ければ、双方のイベントの属性の値は、等しいとする。
【００７２】
特定のイベントの集合の状態がＱ１のときに、イベント受信手段１がイベントをさらに受信した場合、イベント評価手段３は、再びサブルール３に従って属性値Ｘを評価する。属性値Ｘが５以上であれば、イベント評価手段３は、特定のイベントの集合の状態を終了状態Ｑ２に遷移させる。
【００７３】
特定のイベントの集合の状態がＱ１である間、サブルール１に適合するイベントは、所定の期限まで全てイベント記憶手段４に記憶される。特定したルールの各条件と過去イベントとをイベント評価手段３が照合する時に、イベント記憶手段４に記憶されたイベントは参照される。
【００７４】
イベント評価手段３は、図３に示すような一連のイベント、および図４に示すようなルール全体のうち、現在の状態で必要なイベントと必要な処理に基づき、イベント間の属性や属性値に対する比較評価、および属性や属性値に対する更新を行う。
【００７５】
図４に示すルール全体の中のルールに従うと、イベント受信手段１が同じ「集団行動」のタイプのイベントを複数受信した場合、イベント評価手段３は、状態Ｑ１のサブルール２に従って、イベント日付とイベント場所の、それぞれの値を比較する。受信した複数のイベントのイベント日付の値が共に同一で、受信した複数のイベントのイベント場所の値も共に同一であった場合に、イベント競合解消手段６は、イベント間の競合検知と解消を行う。
【００７６】
図３に示すイベントｅ１〜ｅ５は、これらの属性のほかに発信者、発信日時、発信場所、イベント対象の属性を含む可能性がある。なお、図３において、人数を表す属性は、イベントのタイプを表す属性のサブ属性として記述されている。また、イベントｅ３において、イベント時間を表す属性は、イベント日付を表す属性のサブ属性として記述されている。サブ属性は、属性の更に付加的な情報を示す属性である。
【００７７】
以下、図２に示すフローチャートのステップを、図３に示す処理されるイベントと、図４に示すイベント評価時に適用されるルール全体の具体例を用いて、さらに詳細に説明する。
【００７８】
今、ルール記憶手段２には、図４に示す、サブルール１、サブルール２、サブルール３から成るルール全体のみが記憶されているとする。イベント受信手段１がイベントｅ１を受信すると（ステップＳ１）、イベント評価手段３は、ルール記憶手段２に記憶されたルール全体のうち、イベントｅ１に適合し、既に過去のイベントにも適合しているルールを含むルール全体が存在するか確認する（ステップＳ２）。
【００７９】
もしそのようなルール全体が無ければ（ステップＳ２のＮｏ）、イベント評価手段３は、新たに図４に示すルール全体に関連した、初期状態Ｑ０のイベントの集合Ａを作成する（ステップＳ１１）。
【００８０】
図４に示すルール全体に関連したイベントの集合Ａが初期状態Ｑ０である時、イベント評価手段３は、サブルール１に従って、受信したイベントｅ１がイベントのタイプ、イベント日付、イベント場所、人数の各属性を含むか確認する。図３に示すイベントｅ１を参照すると、イベントｅ１は、サブルール１の条件を満たすために必要な属性を全て含む。
【００８１】
このとき、例えば図５に示すような概念辞書を参照することにより、イベント評価手段３が、イベントに含まれる、直接ルールに合致しない属性や属性値を比較しても良い。図５に示す概念辞書は、ある属性の属性値から導き出される他の属性および属性値との関係を規定した辞書である。
【００８２】
例えば、イベントｅ１は、「イベント場所」の属性値を持たないが、「イベント対象」の属性値を持つ。イベントｅ１のイベント対象の属性値は、「Ａ社」である。この「Ａ社」は、図５に示す概念辞書から、属性「イベント場所」と属性値「（Ｎ３５，Ｅ１３９）」に展開される。
【００８３】
また、同じく図５に示す概念辞書から、イベントｅ１のタイプの値「デモ」は属性「タイプ」と属性値「集団行動」に展開される。タイプの値が「集団行動」（または「デモ」）であることから、イベントｅ１は、図４に示すサブルール１に適合する。よって、イベント評価手段３は、イベントｅ１から成るイベントの集合Ａの状態を、状態Ｑ１へ遷移させる。
【００８４】
イベントｅ１に対する処理が終了した後、次のイベントが存在するため（ステップＳ１２のＹｅｓ）、イベント受信手段１は、イベントｅ２を受信する。
【００８５】
続いて、イベント受信手段１がイベントｅ２を受信すると（ステップＳ１）、イベント評価手段３は、イベントｅ２がタイプ、イベント日付、イベント場所、人数の各属性を持つことを確認する。
【００８６】
また、図５に示す概念辞書を参照することで、イベント評価手段３は、イベントｅ１と同様に、イベントｅ２のタイプの値が「集団行動」（または「デモ」）であることを確認する。以上により、イベント評価手段３は、イベントｅ２がサブルール１に適合することを確認する。
【００８７】
イベントｅ２がサブルール１に適合することを確認した上で、イベント評価手段３は、図４に示すサブルール２に従って、イベント記憶手段４に記憶されていたイベントｅ１と、新規の受信イベントｅ２との間で各属性値を比較する。
【００８８】
イベントｅ１の「イベント日付」が「２０１２−０７−３１」を値に持つことに対し、イベントｅ２の「イベント日付」も同様に同じ日付を値として持つため、イベント評価手段３は、イベントｅ１とイベントｅ２のイベント日付の値が等しいと判断する。
【００８９】
同様に、イベント評価手段３は、属性「イベント場所」の比較を行う。イベントｅ２の属性「イベント対象」は、属性値「Ａ社」を持つ。イベントｅ１と同様に図５に示す概念辞書を参照すると、「Ａ社」は、属性「イベント場所」と属性値「（Ｎ３５，Ｅ１３９）」に展開される。
【００９０】
よって、イベントｅ１のイベント場所がイベント対象の値「Ａ社」の緯度と経度で表される位置「（Ｎ３５，Ｅ１３９）」を値に持つことに対し、イベントｅ２のイベント場所も同様に同じ位置を値として持つため、イベント評価手段３は、イベントｅ１とイベントｅ２のイベント場所の値が等しいと判断する。
【００９１】
以上から、イベントｅ２は、図４に示すサブルール２の条件を全て満たす（ステップＳ２のＹｅｓ）。よって、イベントｅ２に適合し、過去イベントにも適合しているルールを含むルール全体はルール記憶手段２の中に存在する。
【００９２】
ここで、一般的なＣＥＰであれば、ただちにサブルール２の属性値更新（代入）操作「人数Ｘ＝ｍａｘ（Ｘ，Ｙ，ｓｕｍ（ｄｉｓｔｉｎｃｔ（［発信者］）））」を実行する。これに対し、本発明の第１の実施形態のイベント処理装置は、ここでイベント競合解消手段６によるイベント間の競合検知と解消を行う（ステップＳ３）。
【００９３】
イベントｅ１とイベントｅ２は、既に評価されたタイプ、イベント日付、イベント場所、人数の他に、イベント対象、発信者、発信日時の属性を持つ。発信者と発信日時は、いずれも発信者に関するメタ情報である。イベント競合解消手段６は、これらのメタ情報を競合検知および解消の対象外とする。なお、この対象外とする属性については、予め定めておけばよい。
【００９４】
まだ評価をしていない属性である「イベント対象」について、イベントｅ１とイベントｅ２が同じ値を持つため、イベント競合解消手段６は、イベントｅ１とイベントｅ２との間に競合が無いと判断する（ステップＳ４のＮｏ）。判断後、イベント競合解消手段６は、その結果をイベント評価手段３に返す。
【００９５】
イベント競合解消手段６により「競合が無い」と判断された処理結果を受けたイベント評価手段３は、イベントの集合Ａの中に受信したイベントｅ２を含める（ステップＳ５）。その後、イベント評価手段３は、イベントの集合Ａの属性「人数」の属性値を更新する。
【００９６】
イベントｅ１およびイベントｅ２において、「人数」の値は無い。両イベントの発信者は、それぞれ「＠ｆｏｏ」と「＠ｂａｒ」であるため、「ｓｕｍ（ｄｉｓｔｉｎｃｔ（［発信者］））」の値は「２」となる。よって、状態Ｑ１でのイベントの集合Ａの人数Ｘの値は、最大値の「２」となる（ステップＳ７のＮｏ）。
【００９７】
この段階で、イベントの集合Ａは、サブルール３の「人数の値Ｘが５以上」という複合イベントの出力条件を満たしていない。また、イベントｅ２とまだ属性値が比較されていないイベントの集合は存在しない。また、イベントｅ２はイベントの集合Ａに含まれているので、イベント受信手段１は、次のイベントを受信する。
【００９８】
次に、イベント受信手段１は、イベントｅ３を受信する（ステップＳ１）。イベント評価手段３は、イベントｅ３がタイプ、イベント日付、イベント場所、人数の各属性を持つことを確認する。また、イベント評価手段３は、イベントｅ３のタイプの値が「集団行動」であることを確認する。よって、イベント評価手段３は、イベントｅ３がサブルール１に適合することを確認する。
【００９９】
イベントｅ３がサブルール１に適合することを確認した上で、イベント評価手段３は、図４に示すサブルール２に従って、イベント記憶手段４に記憶されていたイベントｅ１と、新規の受信イベントｅ３との間で各属性値の比較を行う。
【０１００】
イベントｅ１のイベント日付が「２０１２−０７−３１」を値に持つことに対し、イベントｅ３のイベント日付も同様に同じ日付を値として持つため、イベント評価手段３は、イベントｅ１とイベントｅ３のイベント日付の値が等しいと判断する。
【０１０１】
同様に、イベント評価手段３は、属性「イベント場所」の比較を行う。イベントｅ３は、イベント対象の属性値「○○ビル」を持つ。図５に示す概念辞書を参照すると、「○○ビル」は、属性「イベント場所」と属性値「（Ｎ３５，Ｅ１３９）」に展開される。
【０１０２】
よって、イベントｅ１のイベント場所がイベント対象の値「Ａ社」の緯度と経度で表される位置「（Ｎ３５，Ｅ１３９）」を値に持つことに対し、イベントｅ３のイベント場所も、同じ位置を値として持つため、イベント評価手段３は、イベントｅ１とイベントｅ３のイベント場所の値が等しいと判断する。
【０１０３】
以上から、イベントｅ３は、図４に示すサブルール２の条件を全て満たしている（ステップＳ２のＹｅｓ）。よって、イベントｅ３に適合し、過去イベントにも適合しているルールを含むルール全体はルール記憶手段２の中に存在する。ここで、イベント競合解消手段６は、イベント間の競合検知と解消を行う（ステップＳ３）。
【０１０４】
イベントｅ１とイベントｅ３は、既に評価されたタイプ、イベント日付、イベント場所、人数の他に、発信者、発信日時の属性を持つ。発信者と発信日時は、いずれも発信者に関するメタ情報であるため、イベント競合解消手段６は、これらのメタ情報を競合検知および解消の対象外とする。
【０１０５】
よってこの段階で、イベント競合解消手段６が競合を検知する対象となる属性は無い。以上の結果から、イベント競合解消手段６は、イベントｅ１とイベントｅ３との間に競合が無いと判断する（ステップＳ４のＮｏ）。判断後、イベント競合解消手段６は、その結果をイベント評価手段３に返す。
【０１０６】
イベント競合解消手段６により「競合が無い」と判断された処理結果を受けたイベント評価手段３は、イベントの集合Ａの中に受信したイベントｅ３を含める（ステップＳ５）。その後、イベント評価手段３は、イベントの集合Ａの属性「人数」の属性値の更新操作を実行する。
【０１０７】
イベント記憶手段４に記憶されているイベントｅ１と新たに受信したイベントｅ３は同じ発信者により発信されているため、「ｓｕｍ（ｄｉｓｔｉｎｃｔ（［発信者］））」の値は「２」のままとなる。また、イベントｅ３の属性「人数」にも値は無い。このため、人数Ｘの値も「２」のままとなる（ステップＳ７のＮｏ）。
【０１０８】
この段階で、イベントの集合Ａは、サブルール３の「人数の値Ｘが５以上」という複合イベントの出力条件を満たしていない。また、イベントｅ３とまだ属性値が比較されていないイベントの集合は存在しない。また、イベントｅ３はイベントの集合Ａに含まれているので、イベント受信手段１は、次のイベントを受信する。
【０１０９】
次に、イベント受信手段１は、イベントｅ４を受信する（ステップＳ１）。イベント評価手段３は、イベントｅ４がタイプ、イベント日付、イベント場所、人数の各属性を持つことを確認する。また概念辞書から、イベント評価手段３は、イベントｅ１と同様に、イベントｅ４のタイプの値が「集団行動」（または「デモ」）であることを確認する。
【０１１０】
イベントｅ４がサブルール１に適合することを確認した上で、イベント評価手段３は、図４に示すサブルール２に従って、イベント記憶手段４に記憶されていたイベントｅ１と、新規の受信イベントｅ４との間で各属性値の比較を行う。
【０１１１】
イベントｅ１のイベント日付が「２０１２−０７−３１」を値に持つことに対し、イベントｅ４のイベント日付も同様に同じ日付を値として持つため、イベント評価手段３は、イベントｅ１とイベントｅ４のイベント日付の値が等しいと判断する。
【０１１２】
同様に、属性「イベント場所」の比較を行う。イベントｅ４は、イベント対象の属性値「Ｂ社」を持つ。図５に示す概念辞書を参照すると、「Ｂ社」は、属性「イベント場所」と属性値「（Ｎ３５，Ｅ１３９）」に展開される。
【０１１３】
よって、イベントｅ１のイベント場所がイベント対象の値「Ａ社」の緯度と経度で表される位置「（Ｎ３５，Ｅ１３９）」を値に持つことに対し、イベントｅ４のイベント場所も、同じ位置を値として持つため、イベント評価手段３は、イベントｅ１とイベントｅ４のイベント場所の値が等しいと判断する。
【０１１４】
以上から、イベントｅ４は、図４に示すサブルール２の条件を全て満たしている（ステップＳ２のＹｅｓ）。よって、イベントｅ４に適合し、過去イベントにも適合しているルールを含むルール全体はルール記憶手段２の中に存在する。ここで、イベント競合解消手段６は、イベント間の競合検知と解消を行う（ステップＳ３）。
【０１１５】
イベントｅ１とイベントｅ４は、既に評価されたタイプ、イベント日付、イベント場所、人数の他に、イベント対象、発信者、発信日時の属性を持つ。発信者と発信日時は、いずれも発信者に関するメタ情報であるため、イベント競合解消手段６は、これらのメタ情報を競合検知および解消の対象外とする。
【０１１６】
属性値を持つ属性のうち、未だ競合を検知していない属性「イベント対象」について、イベントｅ１およびイベントｅ２の値は「Ａ社」であるが、新規に受信されたイベントｅ４の値は「Ｂ社」であり、両者は互いに異なる。
【０１１７】
属性「イベント対象」の値が互いに異なることから（ステップＳ４のＹｅｓ）、イベント競合解消手段６は、イベントｅ４が、状態Ｑ１であるイベントの集合Ａ内の過去のイベントと対応付けができないと判断する。
【０１１８】
判断した結果、イベント競合解消手段６は、新規に受信したイベントｅ４を、状態Ｑ１であるイベントｅ１を含むイベントの集合Ａから除外する（ステップＳ６）。これにより、イベント評価手段３は、イベントの集合Ａの属性「人数」の属性値の更新操作を実行しない。
【０１１９】
イベントｅ４とまだ属性値が照合されていない、イベントの集合は存在しない。ここで、イベントｅ４は、まだどのイベントの集合にも含まれていない。
【０１２０】
除外されたイベントｅ４は、図４に示すサブルール１に適合する。よって、イベント競合解消手段６から「競合が存在する」という結果を受け取ったイベント評価手段３は、イベントｅ４を最初の受信イベントとし、図４に示すルール全体に関連した、状態Ｑ１の新たなイベントの集合Ｂを生成する（ステップＳ１１）。
【０１２１】
新規のイベントの集合が作成された後、イベント受信手段１は、次のイベントを受信する。
【０１２２】
次に、イベント受信手段１がイベントｅ５を受信すると（ステップＳ１）、イベント評価手段３は、イベントｅ５がタイプ、イベント日付、イベント場所、人数の各属性を持つことを確認する。  
【０１２３】
また、図５に示す概念辞書を参照することで、イベント評価手段３は、イベントｅ１と同様に、イベントｅ５のタイプの値が「集団行動」であることを確認する。以上により、イベント評価手段３は、イベントｅ５がサブルール１に適合することを確認する。
【０１２４】
イベントｅ５がサブルール１に適合することを確認した上で、イベント評価手段３は、図４に示すサブルール２に従って、イベント記憶手段４に記憶されていたイベントｅ１と、新規の受信イベントｅ５との間で各属性値の比較を行う。
【０１２５】
イベントｅ５は、発信場所の属性値「（Ｎ３５，Ｅ１３９）」と、発信日時の属性値「２０１２−０７−３１  Ｔ０７:４６:２２」、およびイベント対象の属性値「Ａ社」をそれぞれ持つ。イベントｅ１と同様に図５に示す概念辞書を参照すると、「（Ｎ３５，Ｅ１３９）」および「Ａ社」は、属性「イベント場所」と属性値「（Ｎ３５，Ｅ１３９）」に展開される。また「２０１２−０７−３１  Ｔ０７:４６:２２」は、属性「イベント日付」と属性値「２０１２−０７−３１」に展開される。
【０１２６】
イベントｅ１のイベント日付が「２０１２−０７−３１」を値に持つことに対し、イベントｅ５のイベント日付も同様に同じ日付を値として持つため、イベント評価手段３は、イベントｅ１とイベントｅ５のイベント日付の値が等しいと判断する。
【０１２７】
また、イベントｅ１のイベント場所がイベント対象の値「Ａ社」の緯度と経度で表される位置「（Ｎ３５，Ｅ１３９）」を値に持つことに対し、イベントｅ５のイベント場所も同様に同じ位置を値として持つため、イベント評価手段３は、イベントｅ１とイベントｅ５のイベント場所の値が等しいと判断する。
【０１２８】
以上から、イベントｅ５は、図４に示すサブルール２の条件を全て満たしている（ステップＳ２のＹｅｓ）。よって、イベントｅ５に適合し、過去イベントにも適合しているルールを含むルール全体は存在する。
【０１２９】
なお、この段階でイベント競合解消手段６がイベントｅ５との競合を検知する対象となるイベントの集合は、イベントの集合Ａとイベントの集合Ｂの２つである。よって、イベント競合解消手段６は、まずイベントｅ１を含むイベントの集合Ａとの競合検知と解消を行う（ステップＳ３）。
【０１３０】
イベントｅ１とイベントｅ５は、既に評価されたタイプ、イベント日付、イベント場所、人数の他に、イベント対象、発信者、発信日時の属性を持つ。また、発信者と発信日時、およびイベントｅ５のみが持つ発信場所は、いずれも発信者に関するメタ情報であるため、イベント競合解消手段６は、これらのメタ情報を競合検知および解消の対象外とする。
【０１３１】
まだ評価をしていない属性であるイベント対象について、イベントｅ１とイベントｅ５が同じ値を持つため、イベント競合解消手段６は、イベントｅ１とイベントｅ５との間に競合が無いと判断する（ステップＳ４のＮｏ）。判断後、イベント競合解消手段６は、その結果をイベント評価手段３に返す。
【０１３２】
イベント競合解消手段６により「競合が無い」と判断された処理結果を受けたイベント評価手段３は、イベントの集合Ａの中に受信したイベントｅ５を含める（ステップＳ５）。その後イベント評価手段３は、イベントの集合Ａの属性「人数」の属性値を更新する。
【０１３３】
イベントｅ５の属性「人数」の値は１１である。イベント記憶手段４に記憶されていたイベントの集合Ａの直前の属性「人数」の値０、新たに受信されたイベントｅ５の人数の値１１、イベント記憶手段４に記憶されていた、このルールに適合する全てのイベントの属性「発信者」の数の合計２のうち、最大の値は１１である。よって、人数Ｘの値は、イベントｅ５によって「２」から「１１」となる。
【０１３４】
この段階で、状態Ｑ１におけるイベントの集合Ａは、サブルール３の「人数の値Ｘが５以上」という複合イベントの出力条件を満たす（ステップＳ７のＹｅｓ）。これにより、イベント評価手段３は、イベントの集合Ａの状態を終了状態Ｑ２に遷移させる。
【０１３５】
終了状態Ｑ２に遷移させたことで、イベント評価手段３は、イベントの集合Ａに対し、この一連のルール全体の適用を終了する。その結果、図６に示すような複合イベントが、結果出力手段５より出力される（ステップＳ８）。図６は、イベント処理装置から出力される複合イベントの一例を示す説明図である。
【０１３６】
イベントｅ５とまだ属性値が比較されていないイベントの集合として、イベントの集合Ｂが存在する（ステップＳ９のＹｅｓ）。よって、イベント競合解消手段６は、再度イベント間の競合検知と解消を行う（ステップＳ３）。
【０１３７】
イベントｅ４とイベントｅ５は、既に評価されたタイプ、イベント日付、イベント場所、人数の他に、イベント対象、発信者、発信日時の属性を持つ。また、発信者と発信日時は、いずれも発信者に関するメタ情報であるため、イベント競合解消手段６は、これらのメタ情報を競合検知および解消の対象外とする。
【０１３８】
まだ評価をしていない属性であるイベント対象について、イベントｅ４の値は「Ｂ社」であるが、新規に受信されたイベントｅ５の値は「Ａ社」であり、両者は互いに異なる。
【０１３９】
属性「イベント対象」の値が互いに異なることから（ステップＳ４のＹｅｓ）、イベント競合解消手段６は、イベントｅ５が、状態Ｑ１であるイベントの集合Ｂ内の過去のイベントと対応付けができないと判断する。
【０１４０】
判断した結果、イベント競合解消手段６は、新規に受信したイベントｅ５を、状態Ｑ１であるイベントｅ４を含むイベントの集合Ｂから除外する（ステップＳ６）。これにより、イベント評価手段３は、イベントの集合Ｂの属性「人数」の属性値の更新操作を実行しない。
【０１４１】
この段階で、イベントｅ５とまだ属性値が比較されていないイベントの集合は存在しない。また、イベントｅ５は、イベントの集合Ａに含まれている。また、評価していないイベントは存在しないので、イベント処理装置１０は、処理を終了する。
【０１４２】
なお、出力される複合イベントは、図６に示すように１つの複合イベントとして統合されていても良いし、ルール全体における複合イベントの成立条件を満たすために要した全てのイベントの集合であっても良い。
【０１４３】
次に、本発明の実施形態１におけるイベント処理装置のハードウェア構成の具体例を説明する。図７は、本発明によるイベント処理装置のハードウェア構成例を示す説明図である。
【０１４４】
図７に示すイベント処理装置４０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４１と、主記憶部４２と、通信部４５と、補助記憶部４６とを少なくとも備えている。また、人が操作するための入力部４３や、人に処理結果または処理内容の経過を提示するための出力部４４をさらに備えていても良い。
【０１４５】
主記憶部４２は、データの作業領域やデータの一時退避領域として用いられる。主記憶部４２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメインメモリである。
【０１４６】
入力部４３は、データや処理命令を入力する機能を有する。入力部４３は、例えばキーボードやマウス等の入力デバイスである。
【０１４７】
出力部４４は、データを出力する機能を有する。出力部４４は、例えば液晶ディスプレイ装置等の表示装置、又はプリンタ等の印刷装置である。
【０１４８】
通信部４５は、有線または無線のネットワーク（情報通信ネットワーク）を介して、周辺機器との間でデータを入力および出力する機能を有する。
【０１４９】
補助記憶部４６は、ハードディスク装置やその他の記憶装置である。
【０１５０】
また、図７に示すように、イベント処理装置４０において、各構成要素は、システムバス４７を介して相互に接続されている。
【０１５１】
補助記憶部４６は、図１に示すイベント受信手段１、イベント評価手段３、結果出力手段５、及びイベント競合解消手段６をそれぞれ実現するためのプログラムを記憶している。
【０１５２】
さらに、補助記憶部４６は、ルール記憶手段２やイベント記憶手段４の記憶領域として利用される。ただし、ルール記憶手段２やイベント記憶手段４は、補助記憶部４６を用いず、主記憶部４２のみを用いても良い。
【０１５３】
イベント受信手段１は、入力部４３または通信部４５を通じて、イベントとして扱うデータを取得する。
【０１５４】
なお、イベント処理装置４０は、その内部に図１に示すような機能を実現するプログラムを組み込んだＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品からなる回路が実装されることで、ハードウェアにより実現されてもよい。
【０１５５】
また、図７に示すように、コンピュータのＣＰＵ４１が図１に示すような機能を提供するプログラムを実行することで、イベント処理装置４０は、ソフトウェアにより実現されてもよい。
【０１５６】
この場合、ＣＰＵ４１が補助記憶部４６に格納されているプログラムを、主記憶部４２にロードして実行し、イベント処理装置４０の動作を制御することにより、各機能がソフトウェアにより実現される。
【０１５７】
また、通信部４５は、周辺機器と接続されており、データの送受信を行う機能を有する。周辺機器の１つとして、外部記憶装置４８が、ネットワークを介して、イベント処理装置４０と接続されている。
【０１５８】
イベント受信手段１は、外部記憶装置４８に格納されたイベントを、ネットワークを介し、通信部４５に入力することにより取得してもよい。さらに、結果出力手段５が出力する複合イベントを含んだデータが、外部記憶装置４８に格納されてもよい。
【０１５９】
本実施形態のイベント処理装置を使用する場合、ユーザは、個別に入力されるイベント同士の内容の競合を、逐次処理で解消することができる。
【０１６０】
実施形態２．
次に、本発明の第２の実施形態を説明する。図８は、本発明による第２の実施形態におけるイベント処理装置３０の構成を示すブロック図である。イベント処理装置３０は、本発明の第１の実施形態に係るイベント処理装置１０にイベント保持期限更新手段７が追加されたものであり、その他の構成要素はイベント処理装置１０と共通である。
【０１６１】
イベント保持期限更新手段７は、受信した最新のイベントに適合したルールを含むルール全体によって対応付けられた、イベント記憶手段４に過去のイベントを保持する保持期限を、最新のイベントの保持期限に合わせて更新する。また、イベント保持期限更新手段７は、保持期限を過ぎたイベントを削除しても良い。
【０１６２】
例えば、受信したイベントの初期の保持期限を、その受信日時から６時間後の日時と、受信したイベントに記載されたイベント発生日時とのうち、より後の方の日時とする。図３に示すイベントの例では、イベントｅ１の保持期限は受信から６時間後の２０１２年７月３０日２１時１６分１９秒となる。
【０１６３】
その後、イベントｅ２が受信され、イベントｅ２がイベントｅ１と同じルールに適合したことで、イベント評価手段３により、イベントｅ２はイベントｅ１の関連イベントと判断される。その際、イベントｅ１の保持期限は、イベント保持期限更新手段７により、イベントｅ２と同じ保持期限である２０１２年７月３１日０２時３９分４０秒に更新される。
【０１６４】
イベントｅ３が受信された際には、同様にイベント保持期限更新手段７により、イベントｅ１とイベントｅ２の保持期限が、イベントｅ３に明記されているイベント発生日時と同じ、２０１２年７月３１日８時ちょうどに更新される。
【０１６５】
本発明の第２の実施形態に係るイベント処理装置３０は、第１の実施形態に係るイベント処理装置１０と同様に、図７に示すハードウェア構成により実現される。
【０１６６】
イベント処理装置１０には存在しない、イベント処理装置３０の構成要素であるイベント保持期限更新手段７は、他の手段と同じく、図７に示す補助記憶部４６にプログラムとして記憶される。ＣＰＵ４１が補助記憶部４６に格納されているプログラムを実行することで、イベント保持期限更新手段７は、ソフトウェアにより実現される。
【０１６７】
または、イベント保持期限更新手段７は、ＬＳＩ等のハードウェア部品からなる回路として実装されることで、ハードウェアによっても実現される。
【０１６８】
以上のように、イベント保持期限更新手段７をさらに備えたイベント処理装置３０を用いると、関連するイベントが継続的に受信されている間、イベントの保持期限は継続して更新される。そのため、古いイベントは、期限切れが原因で削除されることがない。よって、イベント処理装置３０は、過去の関連イベントが持つ情報を余さず利用できる。
【０１６９】
また、ルール全体のルールに適合したイベントであっても、後続の関連イベントの受信状況によって保持期限が更新されなければ、期限切れで削除される。このため、そのルール全体の終了状態に至るための関連イベントが長期間受信されない場合であっても、イベント記憶手段４の記憶容量は、不必要に圧迫されない。
【０１７０】
次に、本発明の概要を説明する。図９は、本発明によるイベント処理装置の概要を示すブロック図である。本発明によるイベント処理装置５０は、イベントデータ記憶手段５１（例えば、イベント記憶手段４）と、イベント評価手段５２（例えば、イベント評価手段３）と、イベント競合解消手段５３（例えば、イベント競合解消手段６）とを備えている。
【０１７１】
イベントデータ記憶手段５１は、所定の条件（例えば、サブルール１）によって互いに対応付けられたイベントデータの集合を所定の保持期限まで記憶する。
【０１７２】
イベント評価手段５２は、新規に入力されたイベントデータが所定の条件を満たす場合に当該イベントデータを新規イベントデータとして集合に含める。
【０１７３】
イベント競合解消手段５３は、新規イベントデータが、集合に含まれる他のイベントデータとの間で共通する属性に対する各々の属性値（例えば、サブルール１におけるイベント日付及びイベント場所以外の属性値）の間に競合が生じる競合データである場合に、当該競合データを集合から除外する。
【０１７４】
そのような構成により、個別に入力されるイベント同士の内容の競合が、このイベント処理装置５０によって、逐次処理で解消される。
【０１７５】
また、イベント処理装置５０は、所定の条件に対応付けられたイベントデータの保持期限を、新規に入力されたイベントデータの保持期限に合わせて更新するイベント保持期限更新手段を備えていても良い。
【０１７６】
また、イベント競合解消手段５３は、所定の条件によって互いに対応付けられたイベントデータ間で、共通する属性の値が異なる競合データか否かを判断する際に、特定の属性については競合データか否かを判断する対象から除外しても良い。
【０１７７】
また、イベント処理装置５０は、イベントデータの集合を解析した解析結果である複合イベントを出力する結果出力手段を備え、イベント評価手段５２は、所定の条件によって複合イベントを生成するか否かを判断して、当該複合イベントを生成し、結果出力手段は、生成された複合イベントを出力しても良い。
【０１７８】
また、イベント処理装置５０は、一の属性または属性値から導き出される他の属性および属性値との関係を規定した概念辞書を記憶するルール記憶手段を備え、イベント評価手段５２は、新規イベントデータに含まれる属性または属性値に基づいて概念辞書から他の属性及び属性値を展開し、イベント競合解消手段５３は、展開された属性及び属性値を用いて新規イベントデータが競合データか否かを判断しても良い。
【０１７９】
この出願は、２０１２年１０月１７日に出願された日本特許出願２０１２−２２９７９６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０１８０】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用の可能性】
【０１８１】
本発明は、互いに重複や矛盾を生じる内容を含みうる複数のイベントを表すデータが入力される複合イベント処理装置に好適に適用される。
【符号の説明】
【０１８２】
１  イベント受信手段
２  ルール記憶手段
３  イベント評価手段
４  イベント記憶手段
５  結果出力手段
６  イベント競合解消手段
７  イベント保持期限更新手段
１０  イベント処理装置
２０  複合イベント処理装置（ＣＥＰ処理装置）
３０  イベント処理装置
４０  イベント処理装置
４１  ＣＰＵ
４２  主記憶部
４３  入力部
４４  出力部
４５  通信部
４６  補助記憶部
４７  システムバス
４８  外部記憶装置
５０  イベント処理装置
５１  イベントデータ記憶手段
５２  イベント評価手段
５３  イベント競合解消手段
【図１】
2014061190.tif 000003
【図２】
2014061190.tif 000004
【図３】
2014061190.tif 000005
【図４】
2014061190.tif 000006
【図５】
2014061190.tif 000007
【図６】
2014061190.tif 000008
【図７】
2014061190.tif 000009
【図８】
2014061190.tif 000010
【図９】
2014061190.tif 000011
【図１０】
2014061190.tif 000012
【国際調査報告】
2014061190.tif 000013
2014061190.tif 000014
2014061190.tif 000015
2014061190.tif 000016