(57)【要約】【課題】設定されているルールを適切なルールに変更することを可能にする。【解決手段】データ抽出プログラムは、設定されたルールに従って第１のデータ抽出を行うとともに、設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従って第２のデータ抽出を行い（Ｓ１３）、複数の派生ルールのうち、予め設定された条件に適合するデータの抽出状況を示す派生ルールが存在する場合に、該派生ルールの存在の通知を行う（Ｓ１４）処理をコンピュータに実行させる。【選択図】図１０Ａ
2014225155.tif 000002
【特許請求の範囲】
【請求項１】
複合イベント処理におけるデータ抽出プログラムであって、
設定されたルールに従って第１のデータ抽出を行うとともに、前記設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従って第２のデータ抽出を行い、
前記複数の派生ルールのうち、予め設定された条件に適合するデータの抽出状況を示す派生ルールが存在する場合に、該派生ルールの存在の通知を行う、
処理をコンピュータに実行させることを特徴とするデータ抽出プログラム。
【請求項２】
該通知する処理は、前記第１のデータ抽出に失敗する場合に、前記第２のデータ抽出によって、前記複数の派生ルールのうち、前記第２のデータ抽出に成功する派生ルールが存在する場合に、該派生ルールの存在の通知を行う
処理を実行させることを特徴とする請求項１に記載のデータ抽出プログラム。
【請求項３】
前記複数の派生ルールのうち、予め設定された第１の条件に適合する派生ルールが存在する場合に、当該派生ルールを正規のルールに追加する
処理を実行させることを特徴とする請求項１または請求項２に記載のデータ抽出プログラム。
【請求項４】
該追加する処理は、予め設定された第１の条件を満たす回数が所定の閾値よりも大きくなった場合に、前記派生ルールを正規のルールに追加する
処理を実行させることを特徴とする請求項３に記載のデータ抽出プログラム。
【請求項５】
該追加する処理は、予め設定された第１の条件を否定する条件を満たす回数が所定の閾値よりも大きくなった場合に、当該派生ルールを正規のルールに追加する
処理を実行させることを特徴とする請求項３に記載のデータ抽出プログラム。
【請求項６】
前記設定されたルールの一部の条件を変更することで自動生成した派生ルールが一部の条件の特定の閾値を変化させる派生ルールである場合、当該派生ルールの変更条件に沿った変更方向で、前記派生ルールから派生する派生ルールをさらに生成し、生成した派生ルールのうち、予め設定された第１の条件に適合する派生ルールが存在する場合に、当該派生ルールの存在の通知を行う
処理を実行させることを特徴とする請求項３から請求項５のいずれか１つに記載のデータ抽出プログラム。
【請求項７】
設定されたルールに従って第１のデータ抽出を行うとともに、前記設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従って第２のデータ抽出を行う抽出部と、
前記複数の派生ルールのうち、予め設定された条件に適合するデータの抽出状況を示す派生ルールが存在する場合に、該派生ルールの存在の通知を行う通知部とを有する
ことを特徴とするサーバ装置。
【請求項８】
コンピュータが、
設定されたルールに従って第１のデータ抽出を行うとともに、前記設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従って第２のデータ抽出を行い、
前記複数の派生ルールのうち、予め設定された条件に適合するデータの抽出状況を示す派生ルールが存在する場合に、該派生ルールの存在の通知を行う、
各処理を実行することを特徴とするデータ抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ抽出プログラムなどに関する。
【背景技術】
【０００２】
近年、様々な対象から刻々と収集されるデータを処理する技術として、複合イベント処理（ＣＥＰ：Complex  Event  Processing）が知られている。この複合イベント処理では、大量のデータから、予め設定された条件（ルール）に基づいてデータを抽出し、抽出されたデータに基づき分析が行われる。
【０００３】
ＣＥＰを利用した分析では、予め設定されたルールにより抽出されたデータを利用する。ここで、処理対象となるデータ（大量データ）は日々変化するのに対し、設定されたルールは設定時点の認識に基づくものである。このため、設定されているルールが妥当であるとは限らない。したがって、設定されているルールが妥当でない場合、より適切なルールに変更することが望ましい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５３１１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、設定されているルールを適切なルールに変更することが困難であるという問題がある。すなわち、そもそも設定されているルールが妥当であるか否かを、ルールにより抽出されたデータの件数や内容により直接判断することは困難である。また、ＣＥＰが対象とするデータは膨大であることから、直接データを参照してルールの妥当性を判断することは困難である。
【０００６】
１つの側面では、設定されているルールを適切なルールに変更することを可能にすること目的とする。
【課題を解決するための手段】
【０００７】
本願の開示するデータ抽出プログラムは、複合イベント処理におけるデータ抽出プログラムであって、設定されたルールに従って第１のデータ抽出を行うとともに、前記設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従って第２のデータ抽出を行い、前記複数の派生ルールのうち、予め設定された条件に適合するデータの抽出状況を示す派生ルールが存在する場合に、該派生ルールの存在の通知を行う、処理をコンピュータに実行させる。
【発明の効果】
【０００８】
本願の開示するデータ抽出プログラムの１つの態様によれば、設定されているルールを適切なルールに変更することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。
【図２】図２は、ルールテーブルのデータ構造の一例を示す図である。
【図３】図３は、最適化条件テーブルのデータ構造の一例を示す図である。
【図４】図４は、実施例１に係るＣＥＰシステムの具体的な処理の一例を示す図である。
【図５】図５は、実施例１に係るデータ抽出処理の手順を示すフローチャートである。
【図６】図６は、実施例２に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。
【図７】図７は、ルール内部テーブルのデータ構造の一例を示す図である。
【図８】図８は、実施例２に係るＣＥＰシステムの具体的な処理の一例を示す図である。
【図９】図９は、実施例２に係るＣＥＰシステムの具体的な処理の別の例を示す図である。
【図１０Ａ】図１０Ａは、実施例２に係るデータ抽出処理の手順を示すフローチャートである。
【図１０Ｂ】図１０Ｂは、実施例２に係るデータ抽出処理の手順を示すフローチャートである。
【図１１】図１１は、実施例３に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。
【図１２】図１２は、ルール内部テーブルのデータ構造の一例を示す図である。
【図１３】図１３は、実施例３に係るＣＥＰシステムの具体的な処理の一例を示す図である。
【図１４Ａ】図１４Ａは、実施例３に係るデータ抽出処理の手順を示すフローチャートである。
【図１４Ｂ】図１４Ｂは、実施例３に係るデータ抽出処理の手順を示すフローチャートである。
【図１５】図１５は、実施例４に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。
【図１６】図１６は、条件設定テーブルのデータ構造の一例を示す図である。
【図１７】図１７は、実施例４に係るＣＥＰシステムの具体的な処理の一例を示す図である。
【図１８Ａ】図１８Ａは、実施例４に係るデータ抽出処理の手順を示すフローチャートである。
【図１８Ｂ】図１８Ｂは、実施例４に係るデータ抽出処理の手順を示すフローチャートである。
【図１９】図１９は、データ抽出プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示するデータ抽出プログラム、サーバ装置およびデータ抽出方法の実施例を図面に基づいて詳細に説明する。なお、以下では、本願の開示するサーバ装置をＣＥＰシステムに適用する場合を説明する。また、ＣＥＰシステムを株式売買の予測に用いる場合を説明する。しかしながら、本願の開示するサーバ装置はこれに限定されるものではない。
【実施例１】
【００１１】
［実施例１に係るＣＥＰシステムの構成］
図１は、実施例１に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。図１に示すように、ＣＥＰシステム９は、サーバ装置１と通知先サーバ装置２とを有する。サーバ装置１は、複合イベント処理を行う物理サーバであり、例えば、データセンサや各企業に設けられたサーバコンピュータである。サーバ装置１には、様々な対象から収集されたデータが配信される。サーバ装置１は、予め設定されたルールに従って、様々な対象から受信した複数種類のデータをフィルタリング（抽出）する。そして、サーバ装置１は、抽出に失敗した場合に、予め設定されたルールの一部の条件を変更することで自動生成した複数のルール（（以降、「派生ルール」という）に従って、様々な対象から受信した複数種類のデータをフィルタリング（抽出）する。そして、サーバ装置１は、抽出に成功した派生ルールの存在を、通知先サーバ装置２へ通知する。
【００１２】
サーバ装置１は、通信制御Ｉ／Ｆ部１１，１２と、記憶部１３と、制御部１４とを有する。通信制御Ｉ／Ｆ部１１，１２は、ネットワークとの間の通信を制御するインタフェースである。通信制御Ｉ／Ｆ部１１は、様々な対象から配信されたデータを受信する。例えば、通信制御Ｉ／Ｆ部１１は、株価を含む情報を提供するサービスを行う業者のサーバから株価情報を受信する。通信制御Ｉ／Ｆ部１１は、為替を含む情報を提供するサービスを行う業者のサーバから為替情報を受信する。通信制御Ｉ／Ｆ部１１は、ガソリン価格を含む情報を提供するサービスを行う業者のサーバからガソリン価格情報を受信する。通信制御Ｉ／Ｆ部１２は、ルールに合致した場合、合致したルールに対応した内容を通知先サーバ２へ送信する。
【００１３】
記憶部１３は、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部１３は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）などのデータを書き換え可能な半導体メモリであっても良い。
【００１４】
記憶部１３は、各種情報を記憶する。例えば、記憶部１３は、制御部１４で実行されるＯＳ（Operating  System）や後述する抽出処理、最適化処理など各種処理を行うプログラムを記憶する。さらに、記憶部１３は、制御部１４で実行されるプログラムの実行に要する各種データを記憶する。例えば、記憶部１３は、ルールテーブル１３１と、最適化条件テーブル１３２とを記憶する。
【００１５】
ルールテーブル１３１は、フィルタリングのルールを格納したテーブルである。一例として、ルールテーブル１３１には、株式売買の予測を行うため、複数の条件からなるルールがユーザによって格納される。なお、ルールテーブル１３１のデータ構成については、後述する。
【００１６】
最適化条件テーブル１３２は、ルールテーブル１３１に格納されたルールに含まれる条件を最適化するために用いられる。なお、最適化条件テーブル１３２のデータ構成については、後述する。
【００１７】
制御部１４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。そして、制御部１４は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路の電子回路に対応する。または、制御部１４は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路に対応する。さらに、制御部１４は、生成部１４１と、抽出部１４２と、通知部１４３と、最適化部１４４とを有する。
【００１８】
生成部１４１は、予め設定されたルールの一部の条件を変更する派生ルールを生成する。例えば、生成部１４１は、予め設定されたルールについて構文解析を行い、ルールに含まれる複数の条件を分解する。そして、生成部１４１は、分解した複数の条件のうちいずれか１つの条件を否定する派生ルールを生成する。そして、生成部１４１は、生成した派生ルールをルールテーブル１３１に格納する。このとき、生成部１４１は、生成した派生ルールとともに、派生ルールに合致した場合にユーザに通知する通知内容をルールテーブル１３１に格納する。
【００１９】
一例として、予め設定されたルールが「条件Ａ  ａｎｄ  条件Ｂ  ａｎｄ  条件Ｃ」であるとする。生成部１４１は、予め設定されたルールを「条件Ａ」、「条件Ｂ」、「条件Ｃ」に分解する。そして、生成部１４１は、条件Ａについて、条件Ａを否定する派生ルール「（ｎｏｔ  条件Ａ）  ａｎｄ  条件Ｂ  ａｎｄ  条件Ｃ」を生成する。そして、生成部１４１は、派生ルールとともに、ユーザに通知する通知内容として、まだ満たされていない残りの条件「条件Ａ」をルールテーブル１３１に格納する。また、生成部１４１は、条件Ｂについて、条件Ｂを否定する派生ルール「条件Ａ  ａｎｄ  （ｎｏｔ  条件Ｂ）  ａｎｄ  条件Ｃ」を生成する。そして、生成部１４１は、派生ルールとともに、ユーザに通知する通知内容としてまだ満たされていない残りの条件「条件Ｂ」をルールテーブル１３１に格納する。また、生成部１４１は、条件Ｃについて、条件Ｃを否定する派生ルール「条件Ａ  ａｎｄ  条件Ｂ  ａｎｄ  （ｎｏｔ  条件Ｃ）」を生成する。そして、生成部１４１は、派生ルールとともに、ユーザに通知する通知内容としてまだ満たされていない残りの条件「条件Ｃ」をルールテーブル１３１に格納する。
【００２０】
ここで、ルールテーブル１３１のデータ構造について、図２を参照して説明する。図２は、ルールテーブルのデータ構造の一例を示す図である。図２に示すように、ルールテーブル１３１は、ルールＮｏ１３１ａ、銘柄１３１ｂ、株価１３１ｃ、為替終値１３１ｄ、ガソリン価格１３１ｅおよび通知内容１３１ｆを対応付けて記憶する。ルールＮｏ１３１ａは、ルールを一意に識別する識別番号である。銘柄１３１ｂは、ルールを適用する銘柄を示す。株価１３１ｃは、株価に関わる条件である。為替終値１３１ｄは、為替終値に関わる条件である。ガソリン価格１３１ｅは、ガソリン価格に関わる条件である。通知内容１３１ｆは、全ての条件に合致した場合にユーザに通知される内容である。
【００２１】
一例として、ルールＮｏ１３１ａが「１」である場合、銘柄１３１ｂとして「ａ社」、株価１３１ｃとして「３０００円以上」、為替終値１３１ｄとして「１ドル８０円以上」、ガソリン価格１３１ｅとして「１リットル１５０円以下」と記憶している。そして、通知内容１３１ｆとして、買うタイミングであることを示す「買い」と記憶している。別の例として、ルールＮｏ１３１ａが「２」である場合、銘柄１３１ｂとして「ａ社」、株価１３１ｃとして「３０００円以上でない」、為替終値１３１ｄとして「１ドル８０円以上」、ガソリン価格１３１ｅとして「１リットル１５０円以下」と記憶している。そして、通知内容１３１ｆとして、まだ満たされていない残りの条件「株価が３０００円以上」と記憶している。
【００２２】
図１に戻って、抽出部１４２は、ルールテーブル１３１に記憶された各ルールに従って、様々な対象から受信した複数種類のデータをフィルタリング（抽出）する。様々な対象とは、ここでは、株式売買に関係する対象を意味し、一例として、株価であったり、為替であったり、ガソリン価格であったりする。例えば、抽出部１４２は、ルールテーブル１３１に記憶されたルール毎に、ルールに含まれる複数の条件に基づき、受信した複数種類のデータをフィルタリングして全ての条件に合致するパターン検出を行う。そして、抽出部１４２は、全ての条件に合致したそれぞれのデータを抽出する。
【００２３】
通知部１４３は、予め設定されたルールでデータの抽出に失敗した場合に、複数の派生ルールのうち、データの抽出に成功する派生ルールが存在すれば、該派生ルールの存在を通知先サーバ装置２へ通知する。例えば、通知部１４３は、予め設定されたルールに含まれる条件の中でまだ満たされていない残りの条件を通知する。また、通知部１４３は、予め設定されたルールに関係するデータの現在値を通知する。これにより、通知部１４３は、残りの条件を否定する条件を含む派生ルールの存在を通知することができる。
【００２４】
最適化部１４４は、派生ルールに含まれる条件を最適化する。例えば、最適化部１４４は、受信されたデータが最適化条件テーブル１３２に記憶された最適化条件に合致する場合、最適化条件に対応する変更方向で条件値を変更する。ここで、最適化条件テーブル１３２のデータ構造について、図３を参照して説明する。図３は、最適化条件テーブルのデータ構造の一例を示す図である。図３に示すように、最適化条件テーブル１３２は、最適化条件を記憶する。一例として、最適化条件テーブル１３２には、最適化条として「本日の為替終値が前日の為替終値より安い」が記憶されている。この場合、最適化部１４４は、一例として、株価に係る条件の上限値を本日の株価終値に更新する。これにより、最適化部１４４は、変化する環境に応じて、動的に条件を更新することができる。
【００２５】
［ＣＥＰシステムの具体的な処理の一例］
図４は、実施例１に係るＣＥＰシステムの具体的な処理の一例を示す図である。図４に示すように、サーバ装置１には、株価、為替、ガソリン価格を含む情報を提供するサービスを行う業者のサーバから株価情報４１、為替情報４２およびガソリン価格情報４３がそれぞれ適宜配信される。図４の例では、株価情報４１、為替情報４２およびガソリン価格４３情報は、ＸＭＬ（Extensible  Markup  Language）形式のデータ構造とされている。図４の例の株価情報４１は、株価が２９００［円］であることを示す。図４の例の為替情報４２は、１００［円］であることを示す。図４の例のガソリン価格情報４３は、１６０［円］であることを示す。
【００２６】
サーバ装置１は、ＣＥＰエンジン３０が動作する。ＣＥＰエンジン３０は、制御部１４に含まれ、複合イベント処理を実現するソフトウェアである。複合イベント処理を実現するソフトウェアとしては、例えば、Ｅｓｐｅｒが挙げられる。
【００２７】
ここで、サーバ装置１には、予め利用者が設定したルールとして、「ａ社の株価が３０００円以下（条件Ａ）、かつ、為替が１ドル８０円以上（条件Ｂ）、かつ、ガソリン価格が１リットル１５０円以下（条件Ｃ）」が設定されている。このルールに合致した場合のアクションとして、「ａ社買い」をレコメンドすることが設定されている。さらに、予め利用者が設定したルールから生成された派生ルールとして、「ａ社の株価が３０００円以下（条件Ａ）、かつ、為替が１ドル８０円以上（条件Ｂ）、かつ、ガソリン価格が１リットル１５０円以下でない（ｎｏｔ  条件Ｃ）」が設定されている。
【００２８】
このようなサーバ装置１は、配信された株価情報４１、為替情報４２およびガソリン価格情報４３を受信する。ＣＥＰエンジン３０は、設定されたルールの複数の条件に基づき、受信した株価情報４１、為替情報４２およびガソリン価格情報４３をフィルタリングして全ての条件に合致するパターン検出を行う。そして、ＣＥＰエンジン３０は、合致した場合、合致したルールに対応付けられた内容を通知先サーバ装置２へレコメンドする。
【００２９】
図４の例では、サーバ装置１は、予め利用者が設定したルールの場合、条件Ａ、条件Ｂに合致するが、条件Ｃに合致しない。一方、サーバ装置１は、派生ルールの場合、条件Ａ、条件Ｂ、（ｎｏｔ  条件Ｃ）の全ての条件に合致する。そこで、サーバ装置１は、例えば、「ガソリン価格が１５０円以下になれば、買い条件が揃います。現在の株価は２９００円、為替は１００円、ガソリン価格は１６０円です。」を通知先サーバ装置２にレコメンドする。
【００３０】
これにより、サーバ装置１は、「ガソリン価格が１５０円以上」という条件を含む派生ルールの存在を顕在化することができる。この結果、通知先サーバ装置２では、レコメンドに応じて、現ルールの残りの条件を把握することができる。すなわち、通知先サーバ装置２では、利用者が、ガソリン価格の条件を満たしていないことを把握するとともに、現ルールの見直しを図ることができ、ひいては、株式売買の機会の損失を防止できる。
【００３１】
［データ抽出処理の手順］
次に、図５を参照して、データ抽出処理の手順を説明する。図５は、実施例１に係るデータ抽出処理の手順を示すフローチャートである。なお、予め設定されたルールが、ルールテーブル１３１に格納されている。予め設定されたルールは、一例として「条件Ａ  ａｎｄ  条件Ｂ  ａｎｄ  条件Ｃ」であるとする。また、最適化条件が最適化条件テーブル１３２に格納されている。最適化条件は、一例として「本日の終値が前日の終値より安い」であるとする。
【００３２】
まず、生成部１４１は、予め設定されたルールを構文解析により自動分解し、派生ルールを生成する（ステップＳ１１）。例えば、生成部１４１は、予め設定されたルールに含まれる複数の条件を分解する。そして、生成部１４１は、分解した複数の条件のうちいずれか１つの条件を否定する派生ルールを生成する。一例として、生成部１４１は、「（条件Ａ以外）  ａｎｄ  条件Ｂ  ａｎｄ  条件Ｃ」を派生ルールとして生成する。
【００３３】
その後、抽出部１４２は、通信制御Ｉ／Ｆ部１１を介してデータを受信する（ステップＳ１２）。そして、抽出部１４２は、予め設定されたルールの全ての条件が成立したか否かを判定する（ステップＳ１３）。予め設定されたルールの全ての条件が成立したと判定した場合（ステップＳ１３；Ｙｅｓ）、通知部１４３は、当該ルールに対応付けられたレコメンド（通知内容）を通知先サーバ２に送信する（ステップＳ１４）。一例として、通知部１４３は、「条件Ａ  ａｎｄ  条件Ｂ  ａｎｄ  条件Ｃで条件が揃いました」というレコメンドを送信する。そして、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【００３４】
一方、予め設定されたルールの全ての条件が成立しなかったと判定した場合（ステップＳ１３；Ｎｏ）、抽出部１４２は、ルールのうち、条件成立まであと１つか否かを判定する（ステップＳ１５）。例えば、抽出部１４２は、生成部１４１によって生成された派生ルールの全ての条件が成立したか否かを判定する。
【００３５】
条件成立まであと１つと判定した場合（ステップＳ１５；Ｙｅｓ）、通知部１４３は、派生ルールに対応付けられたレコメンド（通知内容）を通知先サーバ装置２に送信する（ステップＳ１６）。一例として、通知部１４３は、「あと条件Ｃが真になれば、条件が揃います」というレコメンドを送信する。そして、データ抽出処理は、ステップＳ１７に遷移する。
【００３６】
一方、条件成立まであと１つでないと判定した場合（ステップＳ１５；Ｎｏ）、抽出部１４２は、ステップＳ１７に移行する。
【００３７】
ステップＳ１７では、最適化部１４４は、最適化条件が成立したか否かを判定する（ステップＳ１７）。例えば、最適化部１４４は、受信されたデータが最適化条件テーブル１３２に記憶された最適化条件に合致するか否かを判定する。最適化条件が成立しなかったと判定した場合（ステップＳ１７；Ｎｏ）、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【００３８】
一方、最適化条件が成立したと判定した場合（ステップＳ１７；Ｙｅｓ）、最適化部１４４は、派生ルールを最適化条件で最適化する（ステップＳ１８）。一例として、最適化部１４４は、本日の終値が（Ａ´）が前日の終値より安いとすると、最適化条件が成立したと判定する。そして、最適化部１４４は、派生ルールを最適化条件の条件値Ａ´で最適化する。すなわち、派生ルールは、「（条件Ａ以上  ａｎｄ  条件Ａ´以下）  ａｎｄ  条件Ｂ  ａｎｄ  条件Ｃ」に最適化される。そして、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【００３９】
［実施例１の効果］
上記実施例１によれば、サーバ装置１は、予め設定されたルールに従ってデータ抽出を行うとともに、予め設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従ってデータ抽出を行う。そして、サーバ装置１は、予め設定されたルールでデータ抽出に失敗する場合に、複数の派生ルールのうち、データ抽出に成功する派生ルールが存在すれば、該派生ルールの存在の通知を行う。かかる構成によれば、サーバ装置１は、予め設定されたルールでデータ抽出に失敗した場合であっても、設定されたルールから自動的に生成した派生ルールの存在を健在化することが可能となり、予め設定されたルールの見直しに利用することができる。
【実施例２】
【００４０】
ところで、実施例１では、サーバ装置１は、設定されたルールの一部の条件を変更する派生ルールを自動生成し、設定されたルールでデータ抽出に失敗しても、データ抽出に成功する派生ルールが存在すれば、該派生ルールの存在を通知する場合を説明した。しかしながら、サーバ装置１は、これに限定されず、さらに、派生ルールを有効にするか否かの成功条件を予め設定し、設定された成功条件に適合する派生ルールが存在する場合に、当該ルールを有効なルールとして追加するようにしても良い。
【００４１】
そこで、実施例２では、サーバ装置１は、さらに、派生ルールを有効にするか否かの成功条件を予め設定し、設定された成功条件に適合する派生ルールが存在する場合に、当該ルールを有効なルールとして追加する場合について説明する。ここでいう有効なルールとは、例えば、株式売買のタイミングであることを示すレコメンドがされることになる正規なルールをいう。
【００４２】
［実施例２に係るＣＥＰシステムの構成］
図６は、実施例２に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。なお、図１に示すＣＥＰシステム９と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１と実施例２とが異なるところは、制御部１４に第１の追加部１４５を追加した点にある。実施例１と実施例２とが異なるところは、生成部１４１、最適化部１４４をそれぞれ生成部１４１Ａ、最適化部１４４Ａに変更した点にある。また、実施例１と実施例２とが異なるところは、記憶部１３にルール内部テーブル１３３を追加した点にある。
【００４３】
生成部１４１Ａは、予め設定されたルールの一部の条件を変更する派生ルールを生成する。例えば、生成部１４１Ａは、予め設定されたルールについて構文解析を行い、ルールに含まれる複数の条件を分解する。そして、生成部１４１Ａは、分解した複数の条件のうちいずれか１つの条件を否定する派生ルールを生成する。そして、生成部１４１Ａは、生成した派生ルールをルールテーブル１３１に格納する。このとき、生成部１４１Ａは、生成した派生ルールとともに、派生ルールに合致した場合にユーザに通知する通知内容をルールテーブル１３１に格納する。
【００４４】
また、生成部１４１Ａは、生成した派生ルールをルール内部テーブル１３３に格納する。
【００４５】
ルール内部テーブル１３３は、予め設定されたルールの一部の条件を変更することで自動生成された派生ルールを格納したテーブルである。ルール内部テーブル１３３は、さらに、派生ルールをルールとして有効にするか否かの成功条件を予め格納する。ここで、ルール内部テーブル１３３のデータ構造について、図７を参照して説明する。図７は、ルール内部テーブルのデータ構造の一例を示す図である。
【００４６】
図７に示すように、ルール内部テーブル１３３は、ルールＮｏ１３３ａ、銘柄１３３ｂ、株価１３３ｃ、為替終値１３３ｄ、ガソリン価格１３３ｅ、成功条件１３３ｆおよび成功回数１３３ｇを対応付けて記憶する。ルールＮｏ１３３ａは、ルールを一意に識別する識別番号である。銘柄１３３ｂは、ルールを適用する銘柄を示す。株価１３３ｃは、株価に関わる条件である。為替終値１３３ｄは、為替終値に関わる条件である。ガソリン価格１３３ｅは、ガソリン価格に関わる条件である。成功条件１３３ｆは、ルールＮｏ１３３ａが示すルールをルールとして有効にするか否かの成功条件である。成功回数１３３ｇは、成功条件を含む条件が成功した回数である。後述する第１の追加部１４５が、成功回数１３３ｇが示す回数が予め定められた閾値（以降、「成功回数閾値」という）以上となった場合に、ルールＮｏ１３３ａが示すルールをルールとして有効にする。なお、成功条件１３３ｆおよび成功回数１３３ｇは、例えば、予め利用者によって設定される。ルールＮｏ１３３ａ、銘柄１３３ｂ、株価１３３ｃ、為替終値１３３ｄおよびガソリン価格１３３ｅは、生成部１４１Ａによって格納される。
【００４７】
一例として、ルールＮｏ１３３ａが「１」である場合、銘柄１３３ｂとして「ａ社」、株価１３３ｃとして「３０００円以上、かつ、３１００円以下」、為替終値１３３ｄとして「１ドル８０円以上」と記憶している。そして、ガソリン価格１３３ｅとして「１リットル１５０円以下」、成功条件１３３ｆとして「株価終値−株価始値≧５００」、成功回数１３３ｇとして「０」と記憶している。
【００４８】
図６に戻って、第１の追加部１４５は、複数の派生ルールのうち、予め設定された成功条件を満たす派生ルールが存在する場合に、当該派生ルールを正規のルールに追加する。例えば、第１の追加部１４５は、ルール内部テーブル１３３に記憶された派生ルール毎に、派生ルールに含まれる複数の条件に基づき、受信した複数種類のデータをフィルタリング（抽出）する。第１の追加部１４５は、全ての条件に合致したそれぞれのデータを抽出する。また、第１の追加部１４５は、全ての条件に合致した派生ルールの成功条件１３３ｆを満たすか否かを判定する。第１の追加部１４５は、成功条件１３３ｆを満たすと判定した場合に、成功回数１３３ｇに１を加算する。そして、第１の追加部１４５は、成功回数１３３ｇが成功回数閾値以上か否かを判定し、成功回数１３３ｇが成功回数閾値以上である場合に、該当する派生ルールをルールテーブル１３１に追加する。すなわち、第１の追加部１４５は、成功条件の成功回数が予め設定された閾値に達した場合に、該当する派生ルールを有効なルールとして追加する。このとき、第１の追加部１４５は、ルールテーブル１３１の通知内容１３１ｆに、成功条件に対応するレコメンドの内容を設定する。一例として、成功条件に対応するレコメンドの内容は、株式売買の「買い」のタイミングを示す内容となる。
【００４９】
最適化部１４４Ａは、派生ルールを最適化する。
【００５０】
一例として、最適化部１４４Ａは、受信されたデータが最適化条件テーブル１３２に記憶された最適化条件に合致する場合、最適化条件に対応する変更方向で、ルールテーブル１３１の条件を更新する。また、最適化部１４４Ａは、受信されたデータが最適化条件テーブル１３２に記憶された最適化条件に合致する場合、最適化条件に対応する変更方向で、ルール内部テーブル１３３の条件を更新する。
【００５１】
別の例として、最適化部１４４Ａは、第１の追加部１４５によって派生ルールが正規のルールに追加された場合に、受信されたデータが最適化条件テーブル１３２に記憶された最適化条件に合致すれば、以下の処理を行う。すなわち、最適化部１４４Ａは、追加された派生ルールについて、最適化条件に対応する変更方向で条件を変更する。そして、最適化部１４４Ａは、追加された派生ルールから、変更した条件を含む新たな派生ルールを生成する。そして、最適化部１４４Ａは、生成した派生ルールをルール内部テーブル１３３に追加する。
【００５２】
［ＣＥＰシステムの具体的な処理の一例］
図８は、実施例２に係るＣＥＰシステムの具体的な処理の一例を示す図である。図８に示すように、サーバ装置１には、株価、為替、ガソリン価格を含む情報を提供するサービスを行う業者のサーバから株価情報４１、為替情報４２およびガソリン価格情報４３がそれぞれ適宜配信される。図８の例では、株価情報４１、為替情報４２およびガソリン価格４３情報は、ＸＭＬ（Extensible  Markup  Language）形式のデータ構造とされている。図８の例の株価情報４１は、株価が２９００［円］であることを示す。図８の例の為替情報４２は、１００［円］であることを示す。図８の例のガソリン価格情報４３は、１６０［円］であることを示す。
【００５３】
サーバ装置１は、ＣＥＰエンジン３０が動作する。ＣＥＰエンジン３０は、制御部１４に含まれ、複合イベント処理を実現するソフトウェアである。複合イベント処理を実現するソフトウェアとしては、例えば、Ｅｓｐｅｒが挙げられる。
【００５４】
サーバ装置１には、予め利用者が設定したルールとして、「ａ社の株価が３０００円以下、かつ、為替終値が１ドル８０円以上、かつ、ガソリン価格が１リットル１５０円以下」が設定されているとする。そして、予め利用者が設定したルールから生成された派生ルールが、ルール内部テーブル１３３に格納されている。例えば、ルールＮｏ１３３ａが「１」の派生ルールとして、「（ａ社の株価が３０００円以上、かつ、３１００円以下）、かつ、（為替終値が１ドル８０円以上）、かつ、（ガソリン価格が１リットル１５０円以下）」が設定されている。ルールＮｏ１３３ａが「２」の派生ルールとして、「（ａ社の株価が３０００円以下）、かつ、（為替終値が１ドル７０円以上、かつ、８０円以下）、かつ、（ガソリン価格が１リットル１５０円以下）」が設定されている。ルールＮｏ１３３ａが「３」の派生ルールとして、「（ａ社の株価が３０００円以下）、かつ、（為替終値が１ドル８０円以上）、かつ、（ガソリン価格が１リットル１５０円以上、かつ、１６０円以下）」が設定されている。そして、それぞれの派生ルールには、成功条件１３３ｆとして「株価終値−株価始値≧５００」が設定されている。
【００５５】
ここで、最適化条件テーブル１３２に、最適化条件として「本日の為替終値が前日の為替終値より安い」が設定されているとする。また、受信されたデータが最適化条件テーブル１３２に設定された最適化条件に合致する場合であるとする。すると、ＣＥＰエンジン３０は、最適化条件に対応する変更方向で条件値を更新する。図８の例では、ルールＮｏ１３３ａが「１」の派生ルールの株価が「３０００円以上、かつ、３１００円以下」に更新されている。
【００５６】
そして、ＣＥＰエンジン３０は、ルール内部テーブル１３３に記憶された派生ルール毎に、派生ルールに含まれる複数の条件でデータをフィルタリング（抽出）する。ＣＥＰエンジン３０は、全ての条件に合致したそれぞれのデータを抽出する。そして、ＣＥＰエンジン３０は、全ての条件に合致した派生ルールの成功条件１３３ｆを満たすか否かを判定する。ＣＥＰエンジン３０は、成功条件１３３ｆを満たすと判定した場合に、成功回数１３３ｇに１を加算する。そして、ＣＥＰエンジン３０は、成功回数１３３ｇが成功回数閾値以上か否かを判定し、成功回数１３３ｇが成功回数閾値以上である場合に、該当する派生ルールをルールテーブル１３１に追加する。
【００５７】
図８の例では、成功回数閾値が１００であるとする。すると、ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「３」の派生ルールの成功回数が１００回に達したので、当該派生ルールをルールテーブル１３１に追加する。ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「３」の派生ルールを有効なルールとしてルールテーブル１３１に追加する。このとき、ＣＥＰエンジン３０は、ルールテーブル１３１の通知内容に、成功条件に対応するレコメンド、例えば「買い」を設定する。
【００５８】
そして、ＣＥＰエンジン３０は、受信する株価情報４１、為替情報４２およびガソリン価格情報４３がルールテーブル１３１に設定されたルールの複数の条件に全て合致した場合、合致したルールに対応付けられた内容を通知先サーバ装置２へレコメンドする。例えば、ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「３」のルールの複数の条件に全て合致した場合、「ａ社の買い条件が揃いました。現在の株価は２９００円、為替は１００円、ガソリン価格は１６０円です。」を通信先サーバ装置２にレコメンドする。
【００５９】
これにより、サーバ装置１は、成功条件に合致する派生ルールを有効なルールとしてルールテーブル１３１に自動追加することができ、その後、ルールの複数の条件に全て合致すれば、ルールの存在を健在化することができる。この結果、通知先サーバ装置２では、利用者が、株式売買の機会の損失を防止できる。また、利用者は、現ルールの見直しを図ることができる。
【００６０】
［ＣＥＰシステムの具体的な処理の別の例］
図９は、実施例２に係るＣＥＰシステムの具体的な処理の別の例を示す図である。図９に示すように、サーバ装置１には、図８と同様に、株価情報４１、為替情報４２およびガソリン価格情報４３がそれぞれ適宜配信される。
【００６１】
サーバ装置１には、予め利用者が設定したルールから生成された派生ルールが、ルール内部テーブル１３３に格納されている。図８に示すルール内部テーブル１３３の派生ルールのうち、ルールＮｏ１３３ａが「１」、「２」の派生ルールが設定されている。そして、それぞれの派生ルールには、成功条件１３３ｆとして「株価終値−株価始値≧５００」が設定されている。また、最適化条件テーブル１３２に、最適化条件として「本日の為替終値が前日の為替終値より安い」が設定されているとする。
【００６２】
このような環境の下、ＣＥＰエンジン３０は、ルール内部テーブル１３３に記憶された派生ルール毎に、派生ルールに含まれる複数の条件でデータをフィルタリング（抽出）する。ＣＥＰエンジン３０は、全ての条件に合致したそれぞれのデータを抽出する。そして、ＣＥＰエンジン３０は、全ての条件に合致した派生ルールの成功条件１３３ｆを満たすか否かを判定する。ＣＥＰエンジン３０は、成功条件１３３ｆを満たすと判定した場合に、成功回数１３３ｇに１を加算する。そして、ＣＥＰエンジン３０は、成功回数１３３ｇが成功回数閾値以上か否かを判定し、成功回数１３３ｇが成功回数閾値以上である場合に、該当する派生ルールをルールテーブル１３１に追加する。
【００６３】
図９の例では、成功回数閾値が５０であるとする。すると、ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「２」の派生ルールの成功回数が５０回に達したので、当該派生ルールをルールテーブル１３１に追加する。ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「２」の派生ルールを有効なルールとしてルールテーブル１３１に追加する。
【００６４】
さらに、ＣＥＰエンジン３０は、受信されたデータが最適化条件テーブル１３２に設定された最適化条件に合致すれば、追加された派生ルールについて、最適化条件に対応する変更方向で条件を変更する。そして、ＣＥＰエンジン３０は、追加された派生ルールから、変更した条件を含む新たな派生ルールを生成し、ルール内部テーブル１３３に追加する。
【００６５】
図９の例では、ＣＥＰエンジン３０は、受信されたデータが最適化条件テーブル１３２に設定された最適化条件「本日の為替終値が前日の為替終値より安い」に合致する場合であるとする。すると、ＣＥＰエンジン３０は、例えば、追加されたルールＮｏ１３３ａが「２」の派生ルールの為替終値１３３ｄの条件を、「１ドル７０円以上、かつ、８０円以下」から「１ドル７５円以上、かつ、８０円以下」に変更する。そして、ＣＥＰエンジン３０は、追加されたルールＮｏ１３３ａが「２」の派生ルールから、変更した為替終値の条件を含む新たな派生ルールを生成し、ルール内部テーブル１３３に追加する。すなわち、ルールＮｏ１３３ａが「２．５」の派生ルールが新たに追加される。
【００６６】
これにより、サーバ装置１は、最適化条件に合致する場合、派生ルールを最適化条件に対応する変更方向で条件を変更する新たな派生ルールを生成するので、変化する環境に応じて、動的に派生ルールを追加することができる。
【００６７】
［データ抽出処理の手順］
次に、図１０Ａおよび図１０Ｂを参照して、データ抽出処理の手順を説明する。図１０Ａおよび図１０Ｂは、実施例２に係るデータ抽出処理の手順を示すフローチャートである。なお、Ｓ１１からＳ１８までは、実施例１に係るデータ抽出処理と同一の処理であるので、その処理の説明を簡略する。
【００６８】
まず、生成部１４１は、予め設定されたルールを構文解析により自動分解し、派生ルールを生成する（ステップＳ１１）。その後、抽出部１４２は、通信制御Ｉ／Ｆ部１１を介してデータを受信する（ステップＳ１２）。そして、抽出部１４２は、予め設定されたルールの全ての条件が成立したか否かを判定する（ステップＳ１３）。
【００６９】
予め設定されたルールの全ての条件が成立したと判定した場合（ステップＳ１３；Ｙｅｓ）、通知部１４３は、当該ルールに対応付けられたレコメンド（通知内容）を通知先サーバ２に送信する（ステップＳ１４）。そして、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【００７０】
一方、予め設定されたルールの全ての条件が成立しなかったと判定した場合（ステップＳ１３；Ｎｏ）、抽出部１４２は、ルールのうち、条件成立まであと１つか否かを判定する（ステップＳ１５）。例えば、抽出部１４２は、生成部１４１によって生成された派生ルールの全ての条件が成立したか否かを判定する。
【００７１】
条件成立まであと１つと判定した場合（ステップＳ１５；Ｙｅｓ）、通知部１４３は、派生ルールに対応付けられたレコメンド（通知内容）を通知先サーバ装置２に送信する（ステップＳ１６）。一方、条件成立まであと１つでないと判定した場合（ステップＳ１５；Ｎｏ）、抽出部１４２は、ステップＳ１７に移行する。
【００７２】
ステップＳ１７では、最適化部１４４は、最適化条件が成立したか否かを判定する（ステップＳ１７）。最適化条件が成立しなかったと判定した場合（ステップＳ１７；Ｎｏ）、データ抽出処理は、ステップＳ２１に遷移する。一方、最適化条件が成立したと判定した場合（ステップＳ１７；Ｙｅｓ）、最適化部１４４は、派生ルールを最適化条件で最適化する（ステップＳ１８）。
【００７３】
続いて、第１の追加部１４５は、派生ルールの成功条件１３３ｆを満たすか否かを判定する（ステップＳ２１）。例えば、第１の追加部１４５は、ルール内部テーブル１３３に記憶された派生ルールのうち、全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たす否かを判定する。
【００７４】
全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たさないと判定した場合（ステップＳ２１；Ｎｏ）、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。一方、全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たすと判定した場合（ステップＳ２１；Ｙｅｓ）、第１の追加部１４５は、成功回数１３３ｇに１を加算する（ステップＳ２２）。
【００７５】
そして、第１の追加部１４５は、成功回数１３３ｇが成功回数閾値以上であるか否かを判定する（ステップＳ２３）。成功回数１３３ｇが成功回数閾値以上でないと判定した場合（ステップＳ２３；Ｎｏ）、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【００７６】
一方、成功回数１３３ｇが成功回数閾値以上であると判定した場合（ステップＳ２３；Ｙｅｓ）、第１の追加部１４５は、成功回数閾値に達した派生ルールを、ルールテーブル１３１に追加する（ステップＳ２４）。すなわち、第１の追加部１４５は、成功条件の成功回数が予め設定された閾値に達した場合に、該当する派生ルールを有効なルールとしてルールテーブル１３１に追加する。そして、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【００７７】
［実施例２の効果］
上記実施例２によれば、サーバ装置１は、予め設定されたルールに従ってデータ抽出を行うとともに、予め設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従ってデータ抽出を行う。そして、サーバ装置１は、複数の派生ルールのうち、予め設定された成功条件に適合する派生ルールが存在する場合に、当該派生ルールを正規のルールとしてルールテーブル１３１に追加する。かかる構成によれば、サーバ装置１は、変化する環境に応じて、予め設定された成功条件に適合する派生ルールを、動的にルールテーブル１３１に追加することができる。
【００７８】
また、上記実施例２によれば、サーバ装置１は、複数の派生ルールのうち、成功条件に適合する派生ルールが存在する場合に、当該派生ルールの存在の通知を行う。かかる構成によれば、サーバ装置１は、成功条件に適合する派生ルールの存在を健在化することができる。この結果、通知先では、株式売買の機会の損失を防止できるとともに、現ルールの見直しを図ることができる。
【実施例３】
【００７９】
ところで、実施例１では、サーバ装置１は、設定されたルールの一部の条件を変更する派生ルールを自動生成し、設定されたルールでデータ抽出に失敗しても、データ抽出に成功する派生ルールが存在すれば、該派生ルールの存在を通知する場合を説明した。実施例２では、サーバ装置１は、さらに、複数の派生ルールのうち、予め設定された成功条件に適合する派生ルールが存在する場合に、当該派生ルールを正規のルールとしてルールテーブル１３１に追加する場合を説明した。しかしながら、サーバ装置１は、これに限定されず、さらに、成功条件を否定する条件に適合する派生ルールが存在する場合に、当該ルールを有効なルールとして追加するようにしても良い。
【００８０】
そこで、実施例３では、サーバ装置１は、さらに、成功条件を否定する条件に適合する派生ルールが存在する場合に、当該ルールを有効なルールとして追加する場合について説明する。ここでいう有効なルールとは、例えば、株式売買のタイミングであることを示すレコメンドがされることになる正規なルールをいう。
【００８１】
［実施例３に係るＣＥＰシステムの構成］
図１１は、実施例３に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。なお、図１および図６に示すＣＥＰシステム９と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１，２と実施例３とが異なるところは、制御部１４に第２の追加部１４６を追加した点にある。実施例１，２と実施例３とが異なるところは、ルール内部テーブル１３３をルール内部テーブル１３３Ｂに変更した点にある。
【００８２】
図７に示すルール内部テーブル１３３と図１２に示すルール内部テーブル１３３Ｂと同一のデータ構造については同一符号を示すことで、その重複する構造の説明については省略する。図７に示すルール内部テーブル１３３と図１２に示すルール内部テーブル１３３Ｂとが異なるところは、マイナス回数１３３ｈを追加した点にある。マイナス回数１３３ｈは、成功条件の結果がマイナスになった回数である。すなわち、マイナス回数１３３ｈは、成功条件を否定する条件が成功した回数である。後述する第２の追加部１４６が、マイナス回数１３３ｈが示す回数が予め定められた閾値（以降、「マイナス回数閾値」という）以上となった場合に、ルールＮｏ１３３ａが示すルールをルールとして有効にする。なお、マイナス回数１３３ｈは、例えば、予め利用者によって設定される。
【００８３】
一例として、ルールＮｏ１３３ａが「１」である場合、銘柄１３３ｂとして「ａ社」、株価１３３ｃとして「３０００円以上、かつ、３１００円以下」、為替終値１３３ｄとして「１ドル８０円以上」と記憶している。そして、ガソリン価格１３３ｅとして「１リットル１５０円以下」、成功条件１３３ｆとして「株価終値−株価始値≧５００」、成功回数１３３ｇとして「０」、マイナス回数１３３ｈとして「１００」と記憶している。
【００８４】
図１１に戻って、第２の追加部１４６は、複数の派生ルールのうち、予め設定された成功条件を否定する条件を満たす派生ルールが存在する場合に、当該派生ルールを正規のルールに追加する。例えば、第２の追加部１４６は、ルール内部テーブル１３３Ｂに記憶された派生ルール毎に、派生ルールに含まれる複数の条件に基づき、受信した複数種類のデータをフィルタリング（抽出）する。第２の追加部１４６は、全ての条件に合致したそれぞれのデータを抽出する。また、第２の追加部１４６は、全ての条件に合致した派生ルールの成功条件１３３ｆを満たすか否かを判定する。ここで、第２の追加部１４６は、成功条件１３３ｆを満たさないと判定した場合に、マイナス回数１３３ｈに１を加算する。すなわち、第２の追加部１４６は、成功条件１３３ｆの結果がマイナスになったと判断し、マイナス回数１３３ｈに１を加算する。そして、第２の追加部１４６は、マイナス回数１３３ｈがマイナス回数閾値以上か否かを判定し、マイナス回数１３３ｈがマイナス回数閾値以上である場合に、該当する派生ルールをルールテーブル１３１に追加する。すなわち、第２の追加部１４６は、成功条件を否定する条件のマイナス回数が予め設定された閾値に達した場合に、該当する派生ルールを有効なルールとして追加する。このとき、第２の追加部１４６は、ルールテーブル１３１の通知内容１３１ｆに、成功条件を否定する条件に対応するレコメンドの内容を設定する。一例として、成功条件に対応するレコメンドの内容が、「買い」のタイミングを示す内容である場合、成功条件を否定する条件に対応するレコメンドの内容は、「売り」のタイミングを示す内容となる。
【００８５】
［ＣＥＰシステムの具体的な処理の一例］
図１３は、実施例３に係るＣＥＰシステムの具体的な処理の一例を示す図である。図１３に示すように、サーバ装置１には、株価、為替、ガソリン価格を含む情報を提供するサービスを行う業者のサーバから株価情報４１、為替情報４２およびガソリン価格情報４３がそれぞれ適宜配信される。図１３の例では、株価情報４１、為替情報４２およびガソリン価格４３情報は、ＸＭＬ（Extensible  Markup  Language）形式のデータ構造とされている。図１３の例の株価情報４１は、株価が２９００［円］であることを示す。図１３の例の為替情報４２は、１００［円］であることを示す。図１３の例のガソリン価格情報４３は、１６０［円］であることを示す。
【００８６】
サーバ装置１は、ＣＥＰエンジン３０が動作する。ＣＥＰエンジン３０は、制御部１４に含まれ、複合イベント処理を実現するソフトウェアである。複合イベント処理を実現するソフトウェアとしては、例えば、Ｅｓｐｅｒが挙げられる。
【００８７】
サーバ装置１には、予め利用者が設定したルールとして、「ａ社の株価が３０００円以下、かつ、為替終値が１ドル８０円以上、かつ、ガソリン価格が１リットル１５０円以下」が設定されているとする。そして、予め利用者が設定したルールから生成された派生ルールが、ルール内部テーブル１３３に格納されている。例えば、ルールＮｏ１３３ａが「１」の派生ルールとして、「（ａ社の株価が３０００円以上、かつ、３１００円以下）、かつ、（為替終値が１ドル８０円以上）、かつ、（ガソリン価格が１リットル１５０円以下）」が設定されている。そして、派生ルールには、成功条件１３３ｆとして「株価終値−株価始値≧５００」が設定されている。
【００８８】
そして、ＣＥＰエンジン３０は、ルール内部テーブル１３３Ｂに記憶された派生ルール毎に、派生ルールに含まれる複数の条件でデータをフィルタリング（抽出）する。ＣＥＰエンジン３０は、全ての条件に合致したそれぞれのデータを抽出する。そして、ＣＥＰエンジン３０は、全ての条件に合致した派生ルールの成功条件１３３ｆを満たすか否かを判定する。ＣＥＰエンジン３０は、成功条件１３３ｆを満たさないと判定した場合に、マイナス回数１３３ｈに１を加算する。そして、ＣＥＰエンジン３０は、マイナス回数１３３ｈがマイナス回数閾値以上か否かを判定し、マイナス回数１３３ｈがマイナス回数閾値以上である場合に、該当する派生ルールをルールテーブル１３１に追加する。
【００８９】
図１３の例では、マイナス回数閾値が１００であるとする。すると、ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「１」の派生ルールのマイナス回数が１００回に達したので、当該派生ルールをルールテーブル１３１に追加する。ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「１」の派生ルールを有効なルールとしてルールテーブル１３１に追加する。このとき、ＣＥＰエンジン３０は、ルールテーブル１３１の通知内容に、成功条件を否定する条件に対応するレコメンド、例えば「売り」を設定する。
【００９０】
そして、ＣＥＰエンジン３０は、受信する株価情報４１、為替情報４２およびガソリン価格情報４３がルールテーブル１３１に設定されたルールの複数の条件に全て合致した場合、合致したルールに対応付けられた内容を通知先サーバ装置２へレコメンドする。例えば、ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「１」のルールの複数の条件に全て合致した場合、「ａ社の売り条件が揃いました。現在の株価は２９００円、為替は１００円、ガソリン価格は１６０円です。」を通信先サーバ装置２にレコメンドする。
【００９１】
これにより、サーバ装置１は、成功条件１３３ｆを否定する条件に合致する派生ルールを有効なルールとしてルールテーブル１３１に自動追加することができ、その後、ルールの複数の条件に全て合致すれば、ルールの存在を健在化することができる。この結果、通知先サーバ装置２では、利用者が、株式売買の機会の損失を防止できる。また、利用者は、現ルールの見直しを図ることができる。
【００９２】
［データ抽出処理の手順］
次に、図１４Ａおよび図１４Ｂを参照して、データ抽出処理の手順を説明する。図１４Ａおよび図１４Ｂは、実施例３に係るデータ抽出処理の手順を示すフローチャートである。なお、Ｓ１１からＳ１８までは、実施例１に係るデータ抽出処理と同一の処理であるので、その処理の説明を簡略する。
【００９３】
まず、生成部１４１は、予め設定されたルールを構文解析により自動分解し、派生ルールを生成する（ステップＳ１１）。その後、抽出部１４２は、通信制御Ｉ／Ｆ部１１を介してデータを受信する（ステップＳ１２）。そして、抽出部１４２は、予め設定されたルールの全ての条件が成立したか否かを判定する（ステップＳ１３）。
【００９４】
予め設定されたルールの全ての条件が成立したと判定した場合（ステップＳ１３；Ｙｅｓ）、通知部１４３は、当該ルールに対応付けられたレコメンド（通知内容）を通知先サーバ２に送信する（ステップＳ１４）。そして、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【００９５】
一方、予め設定されたルールの全ての条件が成立しなかったと判定した場合（ステップＳ１３；Ｎｏ）、抽出部１４２は、ルールのうち、条件成立まであと１つか否かを判定する（ステップＳ１５）。例えば、抽出部１４２は、生成部１４１によって生成された派生ルールの全ての条件が成立したか否かを判定する。
【００９６】
条件成立まであと１つと判定した場合（ステップＳ１５；Ｙｅｓ）、通知部１４３は、派生ルールに対応付けられたレコメンド（通知内容）を通知先サーバ装置２に送信する（ステップＳ１６）。一方、条件成立まであと１つでないと判定した場合（ステップＳ１５；Ｎｏ）、抽出部１４２は、ステップＳ１７に移行する。
【００９７】
ステップＳ１７では、最適化部１４４は、最適化条件が成立したか否かを判定する（ステップＳ１７）。最適化条件が成立しなかったと判定した場合（ステップＳ１７；Ｎｏ）、データ抽出処理は、ステップＳ２１に遷移する。一方、最適化条件が成立したと判定した場合（ステップＳ１７；Ｙｅｓ）、最適化部１４４は、派生ルールを最適化条件で最適化する（ステップＳ１８）。
【００９８】
続いて、第１の追加部１４５は、派生ルールの成功条件１３３ｆを満たすか否かを判定する（ステップＳ２１）。例えば、第１の追加部１４５は、ルール内部テーブル１３３Ｂに記憶された派生ルールのうち、全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たすか否かを判定する。
【００９９】
全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たすと判定した場合（ステップＳ２１；Ｙｅｓ）、第１の追加部１４５は、成功回数１３３ｇに１を加算する（ステップＳ２２）。そして、第１の追加部１４５は、成功回数１３３ｇが成功回数閾値以上であるか否かを判定する（ステップＳ２３）。成功回数１３３ｇが成功回数閾値以上でないと判定した場合（ステップＳ２３；Ｎｏ）、第１の追加部１４５は、ステップＳ２６に遷移する。
【０１００】
一方、成功回数１３３ｇが成功回数閾値以上であると判定した場合（ステップＳ２３；Ｙｅｓ）、第１の追加部１４５は、成功回数閾値に達した派生ルールを、ルールテーブル１３１に追加する（ステップＳ２４）。すなわち、第１の追加部１４５は、成功条件の成功回数が予め設定された閾値に達した場合に、該当する派生ルールを有効なルールとしてルールテーブル１３１に追加する。そして、第１の追加部１４５は、ステップＳ２６に遷移する。
【０１０１】
ステップＳ２１では、全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たさないと判定した場合（ステップＳ２１；Ｎｏ）、第２の追加部１４６は、マイナス回数１３３ｈに１を加算する（ステップＳ２５）。そして、第２の追加部１４６は、ステップＳ２６に遷移する。
【０１０２】
ステップＳ２６では、第２の追加部１４６は、マイナス回数１３３ｈがマイナス回数閾値以上であるか否かを判定する（ステップＳ２６）。マイナス回数１３３ｈがマイナス回数閾値以上でないと判定した場合（ステップＳ２６；Ｎｏ）、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【０１０３】
一方、マイナス回数１３３ｈがマイナス回数閾値以上であると判定した場合（ステップＳ２６；Ｙｅｓ）、第２の追加部１４６は、マイナス回数閾値に達した派生ルールを、ルールテーブル１３１に追加する（ステップＳ２７）。すなわち、第２の追加部１４６は、
成功条件の結果がマイナスになった回数が予め設定された閾値に達した場合に、該当する派生ルールを有効なルールとしてルールテーブル１３１に追加する。そして、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【０１０４】
［実施例３の効果］
上記実施例３によれば、サーバ装置１は、複数の派生ルールのうち、予め設定された成功条件を否定する条件を満たす回数が閾値を超えた場合に、当該派生ルールを正規のルールとしてルールテーブル１３１に追加する。かかる構成によれば、サーバ装置１は、変化する環境に応じて、予め設定された成功条件を否定する条件を満たす派生ルールを動的にルールテーブル１３１に追加することができる。
【実施例４】
【０１０５】
ところで、実施例１では、サーバ装置１は、設定されたルールの一部の条件を変更する派生ルールを自動生成し、設定されたルールでデータ抽出に失敗しても、データ抽出に成功する派生ルールが存在すれば、該派生ルールの存在を通知する場合を説明した。実施例２では、サーバ装置１は、さらに、複数の派生ルールのうち、予め設定された成功条件に適合する派生ルールが存在する場合に、当該派生ルールを正規のルールとしてルールテーブル１３１に追加する場合を説明した。実施例３では、サーバ装置１は、さらに、複数の派生ルールのうち、予め設定された成功条件を否定する条件に適合する派生ルールが存在する場合に、当該派生ルールを正規のルールとしてルールテーブル１３１に追加する場合を説明した。しかしながら、サーバ装置１は、これに限定されず、さらに、派生ルールからルールを派生させて、派生させたルールを用いて運用環境の方向性を検出するようにしても良い。
【０１０６】
そこで、実施例４では、サーバ装置１は、さらに、派生ルールからルールを派生させて、派生させたルールを用いて運用環境の方向性を検出する場合について説明する。ここでいう運用環境の方向性とは、例えば、ＣＥＰシステムを株式売買の予測に用いる場合、株価の方向性であったり、為替の方向性であったりする。
【０１０７】
［実施例４に係るＣＥＰシステムの構成］
図１５は、実施例４に係るサーバ装置を含むＣＥＰシステムの全体構成を示す図である。なお、図１、図６および図１１に示すＣＥＰシステム９と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１，２，３と実施例４とが異なるところは、制御部１４に検出部１４７を追加した点にある。また、実施例１，２，３と実施例４とが異なるところは、記憶部１３に条件設定テーブル１３４を追加した点にある。
【０１０８】
条件設定テーブル１３４は、派生ルール内の条件を設定するために用いられるテーブルである。ここで、条件設定テーブル１３４のデータ構造について、図１６を参照して説明する。図１６は、条件設定テーブルのデータ構造の一例を示す図である。図１６に示すように、条件設定テーブル１３４は、変更条件１３４ａおよび設定幅１３４ｂを対応付けて記憶する。変更条件１３４ａは、ルールの中で変更される条件の識別子である。設定幅１３４ｂは、変更条件１３４ａの条件値を変更させる設定幅を示す。変更条件１３４ａおよび設定幅１３４ｂは、利用者によって予め設定される。一例として、変更条件１３４ａが「株価」である場合、設定幅１３４ｂとして「５０」と記憶している。
【０１０９】
図１５に戻って、検出部１４７は、設定されたルールの一部の条件を変更することで自動生成した派生ルールが一部の条件の特定の条件値を変化させる派生ルールである場合、当該派生ルールの変更条件に沿った変更方向で、当該派生ルールから派生する派生ルールを生成する。例えば、検出部１４７は、ルール内部テーブル１３３Ｂから一部の条件の特定の条件値を変化させる派生ルールを抽出する。一例として、ルール内部テーブル１３３Ｂは、フラグが設定される列項目を有し、検出部１４７は、フラグがＯＮである派生ルールを特定の条件値を変化させる派生ルールとして抽出するようにすれば良い。そして、検出部１４７は、抽出した派生ルールに含まれる条件のうち、条件設定テーブル１３４の変更条件１３４ａが示す条件について、現在設定されている条件値から設定幅分増加させた新たな条件値を算出する。そして、検出部１４７は、抽出した派生ルールから、変更条件について、算出した条件値を上限値とする新たな派生ルールを生成する。また、検出部１４７は、変更条件１３４ａが示す条件について、現在設定されている条件値から設定幅分減少させた新たな条件値を算出する。そして、検出部１４７は、抽出した派生ルールから、変更条件について、算出した条件値を下限値とする新たな派生ルールを生成する。
【０１１０】
また、検出部１４７は、生成した新たな派生ルールをルール内部テーブル１３３Ｂに追加する。なお、検出部１４７による派生ルールの生成および追加は、例えば、システムの運用前に実行される。
【０１１１】
また、検出部１４７は、生成した新たな派生ルールのうち、成功条件を満たす派生ルールが存在する場合に、当該派生ルールを含むルール内部テーブル１３３Ｂの内容を通知先サーバ装置２に通知する。例えば、検出部１４７は、ルール内部テーブル１３３Ｂに記憶された新たな派生ルール毎に、派生ルールに含まれる複数の条件に基づき、受信した複数種類のデータをフィルタリング（抽出）する。検出部１４７は、全ての条件に合致したそれぞれのデータを抽出する。また、検出部１４７は、全ての条件に合致した派生ルールの成功条件１３３ｆを満たすか否かを判定する。検出部１４７は、成功条件１３３ｆを満たすと判定した場合に、成功回数１３３ｇに１を加算する。そして、検出部１４７は、成功回数１３３ｇが成功回数閾値以上か否かを判定し、成功回数１３３ｇが成功回数閾値以上である場合に、該当する派生ルールを含むルール内部テーブル１３３Ｂの内容を通知先サーバ装置２に通知する。すなわち、検出部１４７は、成功条件の成功回数が予め設定された閾値に達した時点で、ルール内部テーブル１３３Ｂの内容を通知先サーバ装置２に通知する。
【０１１２】
［ＣＥＰシステムの具体的な処理の一例］
図１７は、実施例４に係るＣＥＰシステムの具体的な処理の一例を示す図である。図１４に示すように、サーバ装置１には、株価、為替、ガソリン価格を含む情報を提供するサービスを行う業者のサーバから株価情報４１、為替情報４２およびガソリン価格情報４３がそれぞれ適宜配信される。図１７の例では、株価情報４１、為替情報４２およびガソリン価格４３情報は、ＸＭＬ（Extensible  Markup  Language）形式のデータ構造とされている。図１７の例の株価情報４１は、株価が２９００［円］であることを示す。図１７の例の為替情報４２は、１００［円］であることを示す。図１７の例のガソリン価格情報４３は、１６０［円］であることを示す。
【０１１３】
サーバ装置１は、ＣＥＰエンジン３０が動作する。ＣＥＰエンジン３０は、制御部１４に含まれ、複合イベント処理を実現するソフトウェアである。複合イベント処理を実現するソフトウェアとしては、例えば、Ｅｓｐｅｒが挙げられる。
【０１１４】
サーバ装置１には、予め利用者が設定したルールとして、「ａ社の株価が３０００円以下、かつ、為替終値が１ドル８０円以上、かつ、ガソリン価格が１リットル１５０円以下」が設定されているとする。そして、予め利用者が設定したルールから生成された派生ルールが、ルール内部テーブル１３３Ｂに格納されている。例えば、ルールＮｏ１３３ａが「１」の派生ルールとして、「（ａ社の株価が３０００円以上、かつ、３１００円以下）、かつ、（為替終値が１ドル８０円以上）、かつ、（ガソリン価格が１リットル１５０円以下）」が設定されている。この派生ルールが、一部の条件の特定の条件値を変化させる派生ルールであるとする。そして、この派生ルールには、成功条件１３３ｆとして「株価終値−株価始値≧５００」が設定されている。また、条件設定テーブル１３４に、変更条件１３４ａが「株価」である場合に、設定幅１３４ｂとして「５０」円が格納されている。
【０１１５】
そして、ＣＥＰエンジン３０は、システムの運用前に、一部の条件の特定の条件値を変化させるルールＮｏ１３３ａが「１」の派生ルールについて、当該派生ルールの変更条件に沿った変更方向で、当該派生ルールから派生する派生ルールを生成する。図１７の例では、ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「１」の派生ルールに含まれる条件のうち、条件設定テーブル１３４の変更条件１３４ａが示す「株価」の条件値について、新たな条件値を算出する。
【０１１６】
一例として、ＣＥＰエンジン３０は、「株価」の条件値「３０００」円から設定幅１３４ｂ「５０」円分増加させた新たな条件値「３０５０」円を算出する。そして、ＣＥＰエンジン３０は、「株価」について、算出した条件値「３０５０」円を上限値とする新たな派生ルールを生成する。すなわち、「株価」の条件が「（３０００円以上、かつ、３０５０円以下）」である、ルールＮｏ１３３ａが「１．１」の新たな派生ルールが生成される。
【０１１７】
別の例として、ＣＥＰエンジン３０は、「株価」の条件の条件値「３０００」円から設定幅１３４ｂ「５０」円分減少させた新たな条件値「２９５０」円を算出する。そして、ＣＥＰエンジン３０は、「株価」について、算出した条件値「２９５０」円を下限値とする新たな派生ルールを生成する。すなわち、「株価」の条件が「（２９５０円以上、かつ、３０００円以下）」である、ルールＮｏ１３３ａが「１．２」の新たな派生ルールが生成される。
【０１１８】
そして、ＣＥＰエンジン３０は、新たな派生ルールをルール内部テーブル１３３Ｂに追加する。図１７には、ルールＮｏ１３３ａが「１．１」および「１．２」の新たな派生ルールが追加されている。
【０１１９】
そして、ＣＥＰエンジン３０は、ルール内部テーブル１３３Ｂに記憶された新たな派生ルール毎に、派生ルールに含まれる複数の条件でデータをフィルタリング（抽出）する。ＣＥＰエンジン３０は、全ての条件に合致したそれぞれのデータを抽出する。そして、ＣＥＰエンジン３０は、全ての条件に合致した派生ルールの成功条件１３３ｆを満たすか否かを判定する。ＣＥＰエンジン３０は、成功条件１３３ｆを満たすと判定した場合に、成功回数１３３ｇに１を加算する。そして、ＣＥＰエンジン３０は、成功回数１３３ｇが成功回数閾値以上か否かを判定し、成功回数１３３ｇが成功回数閾値以上である場合に、現時点のルール内部テーブル１３３Ｂの内容を通知先サーバ装置２へ通知する。
【０１２０】
図１７の例では、成功回数閾値が５０であるとする。すると、ＣＥＰエンジン３０は、ルールＮｏ１３３ａが「１．１」の派生ルールの成功回数が５０回に達したので、当該派生ルールを含むルール内部テーブル１３３Ｂを通知先サーバ装置２へ通知する。
【０１２１】
これにより、サーバ装置１は、派生ルールから派生させた新たな派生ルールを用いて、運用環境の方向性を検出することができる。図１７の例では、サーバ装置１は、「株価」の条件が「３０００円以上、かつ、３０５０円以下」である派生ルールの成功回数が閾値に達したので、株価の方向性として上昇傾向にあることを検出することができる。この結果、通知先サーバ装置２では、利用者は、運用環境の方向性から現ルールの見直しを図ることができる。
【０１２２】
［データ抽出処理の手順］
次に、図１８Ａおよび図１８Ｂを参照して、データ抽出処理の手順を説明する。図１８Ａおよび図１８Ｂは、実施例４に係るデータ抽出処理の手順を示すフローチャートである。なお、Ｓ１１からＳ２７までは、実施例１に係るデータ抽出処理と同一の処理であるので、その処理の説明を簡略する。
【０１２３】
まず、システムの運用前に、検出部１４７は、ルール内部テーブル１３３Ｂに記憶された派生ルールのうち、一部の条件の特定の条件値を変化させる派生ルールについて、当該派生ルールから派生する派生ルールを生成する（ステップＳ３０）。例えば、検出部１４７は、ルール内部テーブル１３３Ｂから一部の条件の特定の条件値を変化させる派生ルールを抽出する。そして、検出部１４７は、抽出した派生ルールに含まれる条件のうち、条件設定テーブル１３４の変更条件１３４ａが示す条件について、条件値から設定幅分増減させた新たな条件値を算出する。そして、検出部１４７は、抽出した派生ルールから、変更条件について、増加させた条件値を上限値とする新たな派生ルールを生成する。検出部１４７は、抽出した派生ルールから、変更条件について、減少させた条件値を下限値とする新たな派生ルールを生成する。そして、検出部１４７は、生成した新たな派生ルールをルール内部テーブル１３３Ｂに追加する。
【０１２４】
続いて、生成部１４１Ａは、予め設定されたルールを構文解析により自動分解し、派生ルールを生成する（ステップＳ１１）。その後、抽出部１４２は、通信制御Ｉ／Ｆ部１１を介してデータを受信する（ステップＳ１２）。そして、抽出部１４２は、予め設定されたルールの全ての条件が成立したか否かを判定する（ステップＳ１３）。
【０１２５】
予め設定されたルールの全ての条件が成立したと判定した場合（ステップＳ１３；Ｙｅｓ）、通知部１４３は、当該ルールに対応付けられたレコメンド（通知内容）を通知先サーバ２に送信する（ステップＳ１４）。そして、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【０１２６】
一方、予め設定されたルールの全ての条件が成立しなかったと判定した場合（ステップＳ１３；Ｎｏ）、抽出部１４２は、ルールのうち、条件成立まであと１つか否かを判定する（ステップＳ１５）。例えば、抽出部１４２は、生成部１４１Ａによって生成された派生ルールの全ての条件が成立したか否かを判定する。
【０１２７】
条件成立まであと１つと判定した場合（ステップＳ１５；Ｙｅｓ）、通知部１４３は、派生ルールに対応付けられたレコメンド（通知内容）を通知先サーバ装置２に送信する（ステップＳ１６）。一方、条件成立まであと１つでないと判定した場合（ステップＳ１５；Ｎｏ）、抽出部１４２は、ステップＳ１７に移行する。
【０１２８】
ステップＳ１７では、最適化部１４４は、最適化条件が成立したか否かを判定する（ステップＳ１７）。最適化条件が成立しなかったと判定した場合（ステップＳ１７；Ｎｏ）、データ抽出処理は、ステップＳ２１に遷移する。一方、最適化条件が成立したと判定した場合（ステップＳ１７；Ｙｅｓ）、最適化部１４４は、派生ルールを最適化条件で最適化する（ステップＳ１８）。
【０１２９】
続いて、第１の追加部１４５は、派生ルールの成功条件１３３ｆを満たすか否かを判定する（ステップＳ２１）。例えば、第１の追加部１４５は、ルール内部テーブル１３３Ｂに記憶された派生ルールのうち、全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たすか否かを判定する。
【０１３０】
全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たすと判定した場合（ステップＳ２１；Ｙｅｓ）、第１の追加部１４５は、成功回数１３３ｇに１を加算する（ステップＳ２２）。そして、第１の追加部１４５は、成功回数１３３ｇが成功回数閾値以上であるか否かを判定する（ステップＳ２３）。なお、システムの運用前に生成された新たな派生ルールについては、ルールテーブル１３１への追加対象でないので、判定処理を実行しない。成功回数１３３ｇが成功回数閾値以上でないと判定した場合（ステップＳ２３；Ｎｏ）、第１の追加部１４５は、ステップＳ２６に遷移する。
【０１３１】
一方、成功回数１３３ｇが成功回数閾値以上であると判定した場合（ステップＳ２３；Ｙｅｓ）、第１の追加部１４５は、成功回数閾値に達した派生ルールを、ルールテーブル１３１に追加する（ステップＳ２４）。すなわち、第１の追加部１４５は、成功条件の成功回数が予め設定された閾値に達した場合に、該当する派生ルールを有効なルールとしてルールテーブル１３１に追加する。そして、第１の追加部１４５は、ステップＳ２６に遷移する。
【０１３２】
ステップＳ２１では、全ての条件に合致した派生ルールについて、成功条件１３３ｆを満たさないと判定した場合（ステップＳ２１；Ｎｏ）、第２の追加部１４６は、マイナス回数１３３ｈに１を加算する（ステップＳ２５）。そして、第２の追加部１４６は、ステップＳ２６に遷移する。
【０１３３】
ステップＳ２６では、第２の追加部１４６は、マイナス回数１３３ｈがマイナス回数閾値以上であるか否かを判定する（ステップＳ２６）。なお、システムの運用前に生成された新たな派生ルールについては、ルールテーブル１３１への追加対象でないので、判定処理を実行しない。マイナス回数１３３ｈがマイナス回数閾値以上でないと判定した場合（ステップＳ２６；Ｎｏ）、データ抽出処理は、次のデータを受信すべく、ステップＳ３１に遷移する。
【０１３４】
一方、マイナス回数１３３ｈがマイナス回数閾値以上であると判定した場合（ステップＳ２６；Ｙｅｓ）、第２の追加部１４６は、マイナス回数閾値に達した派生ルールを、ルールテーブル１３１に追加する（ステップＳ２７）。すなわち、第２の追加部１４６は、
成功条件の結果がマイナスになった回数が予め設定された閾値に達した場合に、該当する派生ルールを有効なルールとしてルールテーブル１３１に追加する。
【０１３５】
続いて、検出部１４７は、システムの運用前に生成された新たな派生ルールの成功回数１３３ｇが成功回数閾値に達したか否かを判定する（ステップＳ３１）。新たな派生ルールの成功回数１３３ｇが成功回数閾値に達しないと判定した場合（ステップＳ３１；Ｎｏ）、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【０１３６】
一方、新たな派生ルールの成功回数１３３ｇが成功回数閾値に達したと判定した場合（ステップＳ３１；Ｙｅｓ）、検出部１４７は、ルール内部テーブル１３３Ｂの内容を通知先サーバ装置２に通知する（ステップＳ３２）。そして、データ抽出処理は、次のデータを受信すべく、ステップＳ１２に遷移する。
【０１３７】
［実施例４の効果］
上記実施例４によれば、サーバ装置１は、予め設定されたルールの一部の条件を変更することで自動生成した派生ルールが一部の条件の特定の閾値を変化させる派生ルールである場合、当該派生ルールの変更条件に沿った変更方向で、新たな派生ルールを生成する。そして、サーバ装置１は、生成した新たな派生ルールのうち、成功条件に適合する派生ルールが存在する場合に、当該派生ルールの存在を通知先サーバ装置２へ通知する。かかる構成によれば、サーバ装置１は、派生ルールから派生させた新たな派生ルールを用いて、運用環境の方向性を検出することができる。この結果、通知先サーバ装置２では、利用者は、運用環境の方向性から現ルールの見直しを図ることができる。
【０１３８】
［プログラムなど］
なお、上記実施例では、ＣＥＰシステム９を株式売買の予測に用いる場合について説明した。しかしながら、ＣＥＰシステム９は、これに限定されず、ルールに基づいてデータを抽出し、抽出されたデータに基づいて分析するような対象に用いることができる。
【０１３９】
また、上記実施例では、条件、成功条件として、株価、為替終値、ガソリン価格を用いたが、これに限定されず、予測に用いられるものであれば、何でも良い。
【０１４０】
また、サーバ装置１は、既知のパーソナルコンピュータ、ワークステーションなどの情報処理装置に、上記した制御部１４および記憶部１３などの各機能を搭載することによって実現することができる。
【０１４１】
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、最適化部１４４Ａと第１の追加部１４５とを１個の部として統合しても良い。一方、最適化部１４４Ａを、ルールテーブル１３１の条件を最適化する第１の最適化部と、ルール内部テーブル１３３の条件を最適化する第２の最適化部とに分散しても良い。また、ルールテーブル１３１、最適化条件テーブル１３２およびルール内部テーブル１３３をサーバ装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１４２】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図６に示したサーバ装置１と同様の機能を実現するデータ抽出プログラムを実行するコンピュータの一例を説明する。図１９は、データ抽出プログラムを実行するコンピュータの一例を示す図である。
【０１４３】
図１９に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１４４】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、データ抽出プログラム２０５ａおよびデータ抽出関連情報２０５ｂを記憶する。
【０１４５】
ＣＰＵ２０３は、データ抽出プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、サーバ装置１の各機能部に対応する。データ抽出関連情報２０５ｂは、ルールテーブル１３１、最適化条件テーブル１３２およびルール内部テーブル１３３に対応する。そして、例えばリムーバブルディスク２１１が、データ抽出プログラム２０５ａなどの各情報を記憶する。
【０１４６】
なお、データ抽出プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからデータ抽出プログラム２０５ａを読み出して実行するようにしても良い。
【０１４７】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
【０１４８】
（付記１）複合イベント処理におけるデータ抽出プログラムであって、
設定されたルールに従って第１のデータ抽出を行うとともに、前記設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従って第２のデータ抽出を行い、
前記複数の派生ルールのうち、予め設定された条件に適合するデータの抽出状況を示す派生ルールが存在する場合に、該派生ルールの存在の通知を行う、
処理をコンピュータに実行させることを特徴とするデータ抽出プログラム。
【０１４９】
（付記２）該通知する処理は、前記第１のデータ抽出に失敗する場合に、前記第２のデータ抽出によって、前記複数の派生ルールのうち、前記第２のデータ抽出に成功する派生ルールが存在する場合に、該派生ルールの存在の通知を行う
処理を実行させることを特徴とする付記１に記載のデータ抽出プログラム。
【０１５０】
（付記３）前記複数の派生ルールのうち、予め設定された第１の条件に適合する派生ルールが存在する場合に、当該派生ルールを正規のルールに追加する
処理を実行させることを特徴とする付記１または付記２に記載のデータ抽出プログラム。
【０１５１】
（付記４）該追加する処理は、予め設定された第１の条件を満たす回数が所定の閾値よりも大きくなった場合に、前記派生ルールを正規のルールに追加する
処理を実行させることを特徴とする付記３に記載のデータ抽出プログラム。
【０１５２】
（付記５）該追加する処理は、さらに、予め設定された第２の条件に適合すれば、前記派生ルールを前記第２の条件に対応する変更方向で変更する新たな派生ルールを生成する
処理を実行させることを特徴とする付記４に記載のデータ抽出プログラム。
【０１５３】
（付記６）該追加する処理は、予め設定された第１の条件を否定する条件を満たす回数が所定の閾値よりも大きくなった場合に、当該派生ルールを正規のルールに追加する
処理を実行させることを特徴とする付記３に記載のデータ抽出プログラム。
【０１５４】
（付記７）前記設定されたルールの一部の条件を変更することで自動生成した派生ルールが一部の条件の特定の閾値を変化させる派生ルールである場合、当該派生ルールの変更条件に沿った変更方向で、前記派生ルールから派生する派生ルールをさらに生成し、生成した派生ルールのうち、予め設定された第１の条件に適合する派生ルールが存在する場合に、当該派生ルールの存在の通知を行う
処理を実行させることを特徴とする付記３から付記６のいずれか１つに記載のデータ抽出プログラム。
【０１５５】
（付記８）設定されたルールに従って第１のデータ抽出を行うとともに、前記設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従って第２のデータ抽出を行う抽出部と、
前記複数の派生ルールのうち、予め設定された条件に適合するデータの抽出状況を示す派生ルールが存在する場合に、該派生ルールの存在の通知を行う通知部とを有する
ことを特徴とするサーバ装置。
【０１５６】
（付記９）コンピュータが、
設定されたルールに従って第１のデータ抽出を行うとともに、前記設定されたルールの一部の条件を変更することで自動生成した複数の派生ルールに従って第２のデータ抽出を行い、
前記複数の派生ルールのうち、予め設定された条件に適合するデータの抽出状況を示す派生ルールが存在する場合に、該派生ルールの存在の通知を行う、
各処理を実行することを特徴とするデータ抽出方法。
【符号の説明】
【０１５７】
１  サーバ装置
２  通知先サーバ装置
９  ＣＥＰシステム
１１、１２  通信制御Ｉ／Ｆ部
１３  記憶部
１３１  ルールテーブル
１３２  最適化条件テーブル
１３３、１３３Ｂ  ルール内部テーブル
１３４  条件設定テーブル
１４  制御部
１４１、１４１Ａ  生成部
１４２  抽出部
１４３  通知部
１４４、１４４Ａ  最適化部
１４５  第１の追加部
１４６  第２の追加部
【図１】
2014225155.tif 000003
【図２】
2014225155.tif 000004
【図３】
2014225155.tif 000005
【図４】
2014225155.tif 000006
【図５】
2014225155.tif 000007
【図６】
2014225155.tif 000008
【図７】
2014225155.tif 000009
【図８】
2014225155.tif 000010
【図９】
2014225155.tif 000011
【図１０Ａ】
2014225155.tif 000012
【図１０Ｂ】
2014225155.tif 000013
【図１１】
2014225155.tif 000014
【図１２】
2014225155.tif 000015
【図１３】
2014225155.tif 000016
【図１４Ａ】
2014225155.tif 000017
【図１４Ｂ】
2014225155.tif 000018
【図１５】
2014225155.tif 000019
【図１６】
2014225155.tif 000020
【図１７】
2014225155.tif 000021
【図１８Ａ】
2014225155.tif 000022
【図１８Ｂ】
2014225155.tif 000023
【図１９】
2014225155.tif 000024