(57)【要約】【課題】障害解決フローを適切に生成する。【解決手段】情報処理装置１は、記録対象の動作および状態に関する複数の対応履歴３０にそれぞれ含まれる複数のイベントそれぞれを、動作および状態に分類する。情報処理装置１は、複数の対応履歴３０に含まれる複数のイベント内容に基づく統合処理により、グラフ情報２３を生成する。情報処理装置１は、統合処理により統合されたイベントであって状態に分類されたイベントを通る、該生成したグラフ情報２３に含まれる経路それぞれが、複数の対応履歴３０の部分経路に含まれるか否かを検証することにより、統合処理の妥当性を判定する。【選択図】図１
2019117442.tif 000002
【特許請求の範囲】
【請求項１】
記録対象の動作および状態に関する複数の時系列イベント情報にそれぞれ含まれる複数のイベントそれぞれを、動作および状態に分類し、
前記複数の時系列イベント情報に含まれる複数のイベント内容に基づく統合処理により、有向グラフを生成し、
前記統合処理により統合されたイベントであって前記状態に分類されたイベントを通る、該生成した有向グラフに含まれる経路それぞれが、前記複数の時系列イベント情報の部分経路に含まれるか否かを検証することにより、統合処理の妥当性を判定する
処理をコンピュータが実行することを特徴とするグラフ生成方法。
【請求項２】
前記判定により妥当でないと判定されたイベントを、直前の動作に関するイベントを追記したイベントに修正して、再度、前記統合処理により、前記有向グラフを生成する
ことを特徴とする請求項１に記載のグラフ生成方法。
【請求項３】
前記統合処理の妥当性を判定する処理は、前記状態に分類されたイベントおよび前記有向グラフを構成するイベントノードの入次数および出次数に基づいて、前記有向グラフに含まれる、検証対象のイベントを絞り込み）、前記検証対象のイベントと前後のイベントとをつなぐ経路それぞれが、前記複数の時系列イベント情報の部分経路に含まれるか否かを検証する
ことを特徴とする請求項１に記載のグラフ生成方法。
【請求項４】
記録対象の動作および状態に関する複数の時系列イベント情報にそれぞれ含まれる複数のイベントそれぞれを、動作および状態に分類する分類部と、
前記複数の時系列イベント情報に含まれる複数のイベント内容に基づく統合処理により、有向グラフを生成する生成部と、
前記統合処理により統合されたイベントであって前記状態に分類されたイベントを通る、前記生成部によって生成された有向グラフに含まれる経路それぞれが、前記複数の時系列イベント情報の部分経路に含まれるか否かを検証することにより、統合処理の妥当性を判定する検証部と、
を有することを特徴とする情報処理装置。
【請求項５】
記録対象の動作および状態に関する複数の時系列イベント情報にそれぞれ含まれる複数のイベントそれぞれを、動作および状態に分類し、
前記複数の時系列イベント情報に含まれる複数のイベント内容に基づく統合処理により、有向グラフを生成し、
前記統合処理により統合されたイベントであって前記状態に分類されたイベントを通る、該生成した有向グラフに含まれる経路それぞれが、前記複数の時系列イベント情報の部分経路に含まれるか否かを検証することにより、統合処理の妥当性を判定する
処理をコンピュータに実行させることを特徴とするグラフ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフ生成方法などに関する。
【背景技術】
【０００２】
作業手順書や機器解説書、故障診断システムデータ等に用いられるワークフロー、グラフ等のフローデータを作成するための方法が開示されている（例えば、特許文献１〜４等を参照）。かかる方法の一例では、データ集合に含まれる２項関係データの第２項データを子ノードとして関連付ける。そして、位置データを参照して、２項関係データの第２項データを部分木のルートとして、親の２項関係データの第２項データと同一のデータを第１項データとして持つ子の２項関係データをデータ集合から逐次検索する。そして、子の２項関係データが第２項データを持つときには、その第２項データを探索子ノードとして逐次関連付けて部分木を生成する。
【０００３】
また、作成したフローデータの処理手順が、適切な流れを有しているかを判断するシステムが開示されている（例えば、特許文献２等を参照）。かかるシステムでは、処理手順データ中の判断アクションによって流れを分割し、開始から終了までの流れを部分グラフデータとして抽出する。これと協働して、抽出しようとしている部分グラフデータが、事象独立であるか否かを判断する。業務フローデータを構成する全ての部分グラフデータが、事象独立である場合には、当該業務フローデータの流れは妥当であると判断し、これを判断結果として出力する。業務フローデータを構成するいずれかの部分グラフデータが事象独立でない場合には、当該業務フローデータの流れは妥当でないと判断し、これを判断結果として出力する。
【０００４】
また、ユーザ側で発生した障害を電話の対応により解決する障害対応業務がある。かかる業務では、電話のオペレータが、サポートセンターが用意したＦＡＱ（Frequently  Asked  Questions）を検索して、障害の解決を図る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２４６８７９号公報
【特許文献２】特開２００９−０５３８６３号公報
【特許文献３】特開２０１０−１９１７０９号公報
【特許文献４】特開２００９−１３４６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、障害対応業務において、対応履歴から障害解決フローを適切に生成することが難しいという問題がある。すなわち、対応履歴には、例えば、オペレータとユーザとのやりとりや途中の処理結果等が記述されている場合があり、予め定められた粒度で対応の遷移が記述されているわけではない。したがって、対応履歴から障害解決フローを適切に生成することが難しい。
【０００７】
また、作業手順書等に用いられるフローデータを作成するための方法では、データ集合から２項関係データを逐次検索し、部分木を生成し、ワークフローを作成する。しかしながら、データ集合に含まれる２項関係データの粒度が異なると、ワークフローを適切に作成することが難しい。
【０００８】
また、作成したフローデータの処理手順が、適切な流れを有しているかを判断するシステムでは、フローデータ中の判断アクションによって流れを分割し、流れごとの部分グラフデータを抽出し、部分グラフデータが適切な流れを有しているかを判断する。しかしながら、作成したフローデータに含まれる処理の粒度が異なると、当該フローデータの処理手順が適切な流れを有しているかの判断は、適切に行えない。したがって、かかるシステムであっても、作成したフローデータを適切に作成することが難しい。
【０００９】
１つの側面では、障害解決フローを適切に生成することを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、グラフ生成方法は、記録対象の動作および状態に関する複数の時系列イベント情報にそれぞれ含まれる複数のイベントそれぞれを、動作および状態に分類し、前記複数の時系列イベント情報に含まれる複数のイベント内容に基づく統合処理により、有向グラフを生成し、前記統合処理により統合されたイベントであって前記状態に分類されたイベントを通る、該生成した有向グラフに含まれる経路それぞれが、前記複数の時系列イベント情報の部分経路に含まれるか否かを検証することにより、統合処理の妥当性を判定する、処理をコンピュータが実行する。
【発明の効果】
【００１１】
１つの態様によれば、障害解決フローを適切に生成することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例に係る情報処理装置の機能構成の一例を示す図である。
【図２】図２は、対応履歴の一例を示す図である。
【図３】図３は、実施例に係るイベント情報の一例を示す図である。
【図４】図４は、実施例に係るイベント遷移情報の一例を示す図である。
【図５】図５は、実施例に係るグラフ情報の一例を示す図である。
【図６】図６は、実施例に係る部分経路情報の一例を示す図である。
【図７】図７は、実施例に係るイベント統合処理の一例を示す図である。
【図８】図８は、実施例に係るイベント検証処理の一例を示す図である。
【図９】図９は、実施例に係るイベント修正処理の一例を示す図である。
【図１０】図１０は、実施例に係るグラフ情報（修正）の一例を示す図である。
【図１１】図１１は、実施例に係るイベント修正処理結果のグラフの一例を示す図である。
【図１２】図１２は、実施例に係るイベント抽出処理のフローチャートの一例を示す図である。
【図１３】図１３は、実施例に係るイベント遷移情報生成処理のフローチャートの一例を示す図である。
【図１４】図１４は、実施例に係るイベント統合処理のフローチャートの一例を示す図である。
【図１５】図１５は、実施例に係る検証対象イベント検出処理のフローチャートの一例を示す図である。
【図１６】図１６は、実施例に係るイベント検証処理のフローチャートの一例を示す図である。
【図１７】図１７は、実施例に係るイベント修正処理のフローチャートの一例を示す図である。
【図１８】図１８は、グラフ生成プログラムを実行するコンピュータの一例を示す図である。
【図１９】図１９は、対応フロー生成の参考例を示す図である。
【発明を実施するための形態】
【００１３】
グラフ生成方法、情報処理装置およびグラフ生成プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例】
【００１４】
［対応フロー生成の参考例］
まず、ユーザ側で発生した障害を電話の対応により解決する障害対応業務において、対応履歴に対する対応フロー（障害解決フロー）を生成する参考例を、図１９を参照して説明する。図１９は、対応フロー生成の参考例を示す図である。図１９に示すように、対応履歴として、「サイトにアクセスできない」という障害記事に対する２つの対応記事ａ，ｂが示されている。対応記事ａには、「インターネット一時ファイルを削除」、「ブラウザをリセット」、「証明書を更新」、「解決したためクローズ」のイベント列が対応順に記述されている。対応記事ｂには、「ブラウザ履歴を削除」、「ブラウザをリセット」、「グループポリシーを更新」、「解決したためクローズ」のイベント列が対応順に記述されている。
【００１５】
情報処理装置は、対応履歴ａ，ｂを入力して、入力した対応履歴ａ，ｂのそれぞれのイベント列を重ね合わせて有向グラフを生成する。すなわち、情報処理装置は、複数の対応履歴のそれぞれのイベント列の同じイベントを統合して、複数の対応履歴に対する有向グラフを生成する。ここでは、「ブラウザをリセット」のイベントが、対応履歴ａ，ｂのそれぞれのイベント列の同じイベントである。情報処理装置は、「ブラウザをリセット」のイベントを統合して、対応履歴ａ，ｂに対する有向グラフを生成する。そして、情報処理装置は、１つのノードから複数のノードに遷移している箇所を分岐箇所とし、分岐ノードを追加して、対応履歴ａ，ｂに対する対応フローを生成する。
【００１６】
しかしながら、ユーザ側で発生した障害を電話の対応により解決する障害対応業務において、対応履歴のイベントの遷移は、オペレータによって、必ずしも同じ粒度で記述されるわけではない。したがって、イベントの内容が表面的に一致することで、統合すべきでないイベントが統合されてしまう状況が生じてしまう。これにより、複数の対応履歴から障害解決フローを適切に生成することが難しい。
【００１７】
そこで、以降では、対応履歴に含まれるイベントの内容の粒度が異なっていても、適切に対応フローを生成するグラフ生成方法について説明する。
［情報処理装置の構成］
図１は、実施例に係る情報処理装置の機能構成の一例を示す図である。図１に示すように、情報処理装置１は、制御部１０および記憶部２０を有する。
【００１８】
制御部１０は、ＣＰＵ（Central  Processing  Unit）などの電子回路に対応する。そして、制御部１０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１０は、イベント抽出部１１、イベント遷移情報生成部１２、イベント統合部１３、検証対象イベント検出部１４、イベント検証部１５およびイベント修正部１６を有する。なお、イベント抽出部１１は、分類部の一例である。イベント統合部１３は、生成部の一例である。検証対象イベント検出部１４およびイベント検証部１５は、検証部の一例である。
【００１９】
記憶部２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部２０は、イベント情報２１、イベント遷移情報２２、グラフ情報２３、部分経路情報２４およびグラフ情報（修正）２５を有する。
【００２０】
イベント情報２１は、対応履歴３０の対応記事から抽出されるイベント群の情報である。なお、イベント情報２１は、後述するイベント抽出部１１によって生成される。
【００２１】
ここで、対応履歴３０とは、ユーザ側が発生した障害案件ごとに、オペレータがユーザを案内した対応手順を記憶した情報のことをいう。なお、対応履歴３０は、時系列イベント情報の一例である。対応履歴３０の一例を、図２を参照して説明する。図２は、対応履歴の一例を示す図である。図２に示すように、対応履歴３０は、対応履歴ＩＤ、障害記事および対応記事を対応付けた情報である。対応履歴ＩＤは、各案件の対応履歴を識別するＩＤ（IDentifier）である。障害記事は、障害の大まかな内容を示す。対応記事は、障害記事に示された障害に対して、オペレータが案内した処理またはユーザが実施した処理を順番に記述した情報である。
【００２２】
一例として、対応履歴ＩＤが「００２」である場合に、障害記事として「サイトにアクセスできない」、対応記事として「初期パスワードでのログインを試す→ログイン失敗  パスワードリセットを選択→パスワードリセット画面が出る  パスワードを後でリセット」を記憶している。なお、対応記事の中の矢印（→）について、矢印前が前提となる動作（行為）、矢印後が行為をした結果の状態を示す。
【００２３】
ここで、イベント情報２１の一例を、図３を参照して説明する。図３は、実施例に係るイベント情報の一例を示す図である。図３に示すように、イベント情報２１は、対応履歴ＩＤ、発生順序、属性およびイベント名を対応付けた情報である。対応履歴ＩＤは、各案件の対応履歴を識別するＩＤである。発生順序は、対応履歴３０の対応記事内でのイベントの発生順序を示す。属性は、イベントの属性を示す。属性には、例えば、「行為（動作）」や行為をした結果を示す「状態」が挙げられる。イベント名は、イベント（処理）の処理名を示す。
【００２４】
一例として、対応履歴ＩＤが「００１」である場合に、発生順序として「４」、属性として「行為」、イベント名として「アカウント名を再入力してログインを試す」を記憶している。発生順序として「５」、属性として「状態」、イベント名として「ログイン失敗」を記憶している。
【００２５】
図１に戻って、イベント遷移情報２２は、対応履歴３０の対応記事に出現する、遷移するイベントを表す（順序が隣接する）２つのイベントの組み合わせを記録する情報である。なお、イベント遷移情報２２は、後述するイベント遷移情報生成部１２によって生成される。
【００２６】
ここで、イベント遷移情報２２の一例を、図４を参照して説明する。図４は、実施例に係るイベント遷移情報の一例を示す図である。図４に示すように、イベント遷移情報２２は、遷移前イベント名、遷移後イベント名および遷移頻度を対応付けた情報である。遷移前イベント名は、順序が隣接する２つのイベントのうち先に発生するイベントの名称である。遷移後イベント名は、順序が隣接する２つのイベントのうち後に発生するイベントの名称である。遷移頻度は、前イベント名と後イベント名の組み合わせが出現する回数を示す。
【００２７】
一例として、遷移前イベント名が「初期パスワードでのログインを試す」である場合に、遷移後イベント名として「ログイン失敗」、遷移頻度として「１」を記憶している。
【００２８】
図１に戻って、グラフ情報２３は、複数の対応履歴３０の重ね合わせによって生成されるグラフのノードおよびその接続を記録する情報である。なお、グラフ情報２３は、後述するイベント統合部１３によって生成される。
【００２９】
ここで、グラフ情報２３の一例を、図５を参照して説明する。図５は、実施例に係るグラフ情報の一例を示す図である。図５に示すように、グラフ情報２３は、属性、イベント名、入次数、出次数、前イベント名、後イベント名、検証対象および修正対象を対応付けた情報である。属性は、ノードに対応するイベントの属性を示す。属性は、イベント情報２１内の属性に対応する。イベント名は、イベント（処理）の処理名を示す。イベント名は、イベント情報２１内のイベント名に対応する。入次数は、重ね合わせたグラフにおいて、イベント名に対応するノードに入る（遷移する）エッジの本数である。出次数は、重ね合わせたグラフにおいて、イベント名に対応するノードから出る（遷移する）エッジの本数である。前イベント名は、遷移元のノードに対応するイベント名である。前イベント名に含まれるイベントの数は、入次数に一致する。後イベント名は、遷移先のノードに対応するイベント名である。後イベント名に含まれるイベントの数は、出次数に一致する。検証対象は、後述するイベント検証部１５によって検証の対象となるイベントの有無を示す。検証対象には、検証の対象となるイベントが有る場合には「○」、無い場合には「  」が示される。検証対象は、後述する検証対象イベント検出部１４によって記録される。修正対象は、修正を行うイベントの有無を示す。修正対象には、修正を行うイベントが有る場合には「○」、無い場合には「  」が示される。修正対象は、後述するイベント修正部１６によって記録される。
【００３０】
図１に戻って、部分経路情報２４は、グラフの中の部分経路を記録する情報である。なお、部分経路情報２４は、後述するイベント検証部１５によって生成される。
【００３１】
ここで、部分経路情報２４の一例を、図６を参照して説明する。図６は、実施例に係る部分経路情報の一例を示す図である。図６に示すように、部分経路情報２４は、検証対象イベント、部分経路および対応履歴ＩＤを対応付けた情報である。検証対象イベントは、検証の対象となるイベントである。部分経路は、検証対象イベントと、当該イベントの前後のイベントとを繋げたイベント列を示す。対応履歴ＩＤは、部分経路が含まれる対応履歴が存在する場合に部分経路が含まれる対応履歴のＩＤである。
【００３２】
一例として、検証対象イベントが「ログイン失敗」である場合に、部分経路として「初期パスワードでのログイン→ログイン失敗→パスワードリセットを選択」、対応履歴として「００２」を記憶している。検証対象イベントが「ログイン失敗」である場合に、部分経路として「初期パスワードでのログイン→ログイン失敗→心当たりのパスワードでログイン」、対応履歴として「  」を記憶している。これは、部分経路が含まれる対応履歴が存在しないことを示している。
【００３３】
グラフ情報（修正）２５は、グラフ情報２３を修正した結果のグラフ情報である。なお、グラフ情報（修正）２５は、後述するイベント修正部１６によって修正される。グラフ情報（修正）２５の一例は、後述する。
【００３４】
イベント抽出部１１は、同じ障害に対する複数の対応記事からそれぞれイベントを抽出する。例えば、イベント抽出部１１は、グラフ生成対象の障害記事の内容を受け取り、障害記事と一致する対応履歴３０を検索する。そして、イベント抽出部１１は、検索した複数の対応履歴３０からそれぞれの対応記事を抽出する。イベント抽出部１１は、それぞれの対応記事ごとに、対応記事を解析して、対応記事から対応手順を構成する処理および処理結果をイベントとして抽出する。加えて、イベント抽出部１１は、対応記事から処理および処理結果の発生順序を抽出する。そして、イベント抽出部１１は、抽出したイベントおよび抽出した発生順序を用いて、イベント情報２１を生成する。
【００３５】
イベント遷移情報生成部１２は、イベント情報２１からイベント遷移情報２２を生成する。例えば、イベント遷移情報生成部１２は、イベント情報２１に含まれる対応履歴ＩＤごとに、以下の処理を行う。イベント遷移情報生成部１２は、対応履歴ＩＤに対応する対応記事について、発生順序が連続する２つのイベントの組み合わせを抽出する。イベント遷移情報生成部１２は、抽出した組み合わせがイベント遷移情報２２に存在しない場合には、イベント遷移情報２２の行を追加し、遷移前イベント名欄に、組み合わせのうち前に処理されるイベント名を書き込む。イベント遷移情報生成部１２は、イベント遷移情報２２の遷移後イベント名欄に、組み合わせのうち後に処理されるイベント名を書き込む。イベント遷移情報生成部１２は、組み合わせの出現回数が１回あったことを示す「１」を遷移頻度欄に書き込む。イベント遷移情報生成部１２は、抽出した組み合わせがイベント遷移情報２２に存在する場合には、存在する行の遷移頻度欄の値を１加える。イベント遷移情報生成部１２は、該当する対応履歴ＩＤの処理が終了するまで、イベント遷移情報生成処理を繰り返す。
【００３６】
イベント統合部１３は、イベント遷移情報２２に基づいて、表記が共通するイベントは統合して１つのノードとし、イベント間の遷移をアークとした有向グラフを生成するために、グラフ情報２３を生成する。なお、イベント統合部１３の詳細な処理は、後述する。
【００３７】
検証対象イベント検出部１４は、イベントの属性および有向グラフにおけるノードの次数に基づいて、検証対象となるノードに対応するイベントを検出する。例えば、検証対象イベント検出部１４は、グラフ情報２３に記録されているイベント名欄のイベントを１つずつ選択する。検証対象イベント検出部１４は、グラフ情報２３から、選択したイベントの属性、入次数および出次数をそれぞれ取得する。検証対象イベント検出部１４は、属性が行為をした結果を示す「状態」、且つ、入次数と出次数がいずれも２以上である場合には、選択したイベントを検証対象として検出する。これは、「状態」のイベントに複数のアークが入力し、このイベントから複数のアークが出力する場合には、対応履歴３０の対応記事に含まれない経路が存在する場合があるからである。また、「状態」のイベントは、前提となる複数の「行為」が違っていてもそれぞれの「行為」の結果を示す「状態」が同じであれば、複数のアークを入力することがある、この「状態」のイベントの後のイベントが複数存在すると、対応履歴３０に含まれない経路が存在してしまう場合がある。かかる経路が存在すると、適切な対応フローを生成できない。そこで、検証対象イベント検出部１４は、かかる検証対象となる「状態」のイベントを検出する。
【００３８】
イベント検証部１５は、検証対象のイベントについて、前後のイベントとの部分経路が対応履歴３０における対応記事の中のイベント遷移に含まれるかどうかを検証する。
【００３９】
例えば、イベント検証部１５は、検証対象のイベントに対して、当該イベントおよび当該イベントの前後のイベントを組み合わせた部分経路を生成する。一例として、イベント検証部１５は、検証対象イベント検出部１４によって検出された検証対象のイベントを１つずつ選択する。イベント検証部１５は、グラフ情報２３から、選択した検証対象のイベントに対する前イベントおよび後イベントを取得する。イベント検証部１５は、前イベント、検証対象のイベント、後イベントを順につないだ３つのイベントからなる部分経路を生成する。イベント検証部１５は、検証対象のイベントおよび生成した部分経路を部分経路情報２４に書き込む。イベント検証部１５は、選択した検証対象のイベントに対する、前後のイベントとの全ての組み合わせについて、部分経路の生成処理を行う。
【００４０】
また、イベント検証部１５は、生成された部分経路が対応履歴３０内の対応記事中に存在するか否かを検証し、存在しないと検証した場合には、検証対象のイベントを修正対象のイベントとする。一例として、イベント検証部１５は、部分経路情報２４から部分経路を１つずつ選択する。イベント検証部１５は、イベント情報２１から対象の対応履歴ＩＤに対する複数の対応記事（イベント群）を取得する。イベント検証部１５は、複数の対応記事ごとに、各対応記事に含まれる全てのイベントをつないだ経路に、選択した部分経路が含まれているか否かを判定する。イベント検証部１５は、いずれかの対応記事に、選択した部分経路が含まれていると判定した場合には、部分経路が含まれていた対応記事に対する対応履歴ＩＤを部分経路情報２４に書き込む。そして、イベント検証部１５は、選択中の検証対象のイベントの全ての部分経路に対して対応履歴ＩＤが書き込まれているか否かを判定する。イベント検証部１５は、全ての部分経路に対して対応履歴ＩＤが書き込まれていると判定した場合には、選択中の検証対象のイベントを修正対象のイベントとしない。これは、全ての部分経路が対象の対応履歴３０の対応記事に含まれているからである。イベント検証部１５は、いずれかの部分経路に対して対応履歴ＩＤが書き込まれていないと判定した場合には、選択中の検証対象のイベントを修正対象のイベントとする。これは、いずれかの部分経路が対象の対応履歴３０の対応記事に含まれていないからである。
【００４１】
イベント修正部１６は、修正対象のイベントを、直前の行為に関するイベントを追加したイベントに修正する。例えば、イベント修正部１６は、イベント検証部１５によって検証された結果の修正対象のイベントを１つずつ選択する。イベント修正部１６は、イベント情報２１を参照して、選択した修正対象のイベントの１つ前のイベントを取得する。イベント修正部１６は、選択したイベントのイベント名を、当該イベント名の１つ前のイベント名を追記したイベント名に修正する。イベント修正部１６は、イベント情報２１に対して、選択したイベントを修正したイベントに修正する。そして、イベント修正部１６は、全ての修正対象のイベントに対してイベント修正処理を完了すると、修正したイベント情報２１に対して、イベント遷移情報生成処理を実行して、イベント遷移情報２２を再生成する。そして、イベント修正部１６は、再生成したイベント遷移情報２２に対して、イベント統合処理を実行してグラフ情報２３を再生成してグラフ情報（修正）２５を生成する。そして、イベント修正部１６は、グラフ情報（修正）２５からグラフ４０を出力する。
【００４２】
次に、対応履歴３０からグラフ４０を生成する処理を、図７〜図１１を参照して説明する。
【００４３】
［イベント統合処理の一例］
図７は、実施例に係るイベント統合処理の一例を示す図である。図７左に示すように、対応履歴３０には、障害記事が「サイトにログインできない」である場合の複数の対応記事００１，００２，００３，００４が含まれている。対応記事００１は、対応履歴ＩＤが「００１」の対応記事である。対応記事００２は、対応履歴ＩＤが「００２」の対応記事である。対応記事００３は、対応履歴ＩＤが「００３」の対応記事である。対応記事００４は、対応履歴ＩＤが「００４」の対応記事である。
【００４４】
イベント抽出部１１は、同じ障害記事に対する複数の対応記事００１，００２，００３，００４からそれぞれイベントを抽出して、対応履歴ＩＤ、抽出したイベント、発生順序および属性を加えたイベント情報２１（図３参照）を生成する。属性の一例として、「ログイン失敗」は、対応記事００１内の「アカウント名を再入力してログインを試す」や「心当たりのパスワードでのログインを試す」、対応記事００２内の「初期パスワードでのログインを試す」の行為をした結果であるので、属性として「状態」が記録される。そして、イベント遷移情報生成部１２は、イベント情報２１を参照して、対応履歴ＩＤごとに、発生順序が連続する２つのイベント名の組み合わせを抽出する。イベント遷移情報生成部１２は、組み合わせがイベント遷移情報２２に存在しない場合には、組み合わせのイベント名を追加し、遷移頻度を「１」に設定する。イベント遷移情報生成部１２は、組み合わせがイベント遷移情報２２に存在する場合には、存在する行の遷移頻度を１加える。このようにして、イベント遷移情報生成部１２は、イベント遷移情報２２（図４参照）を生成する。
【００４５】
そして、イベント統合部１３は、イベント遷移情報２２に基づいて、表記が共通するイベントは統合して１つのノードとしたグラフ情報２３を生成し、イベント間の遷移をアークとした有向グラフを生成する。図７右に示すように、イベント統合部１３は、イベント遷移情報２２に基づいて、グラフ情報２３（図５参照）を生成し、図７左に示す対応履歴３０に対する有向グラフを生成する。ここでは、「ログイン失敗」のイベントの表記が共通するので、統合されている。また、「パスワードリセット画面が出る」のイベントの表記が共通するので、統合されている。
【００４６】
［イベント検証処理の一例］
図８は、実施例に係るイベント検証処理の一例を示す図である。図８左上には、図７右に示した有向グラフの中の統合されたイベント「ログイン失敗」および当該イベントの前後のイベントが示されている。図８左下には、図７右に示した有向グラフの中の統合されたイベント「パスワードリセット画面が出る」および前後のイベントが示されている。
【００４７】
検証対象イベント検出部１４は、グラフ情報２３に記録されているイベント名について、属性が行為をした結果を示す「状態」、且つ、入次数と出次数がいずれも２以上である場合には、このイベントを検証対象として検出する。ここでは、イベント名が「ログイン失敗」である場合には、属性が「状態」、入次数が「３」、出次数が「２」であるので、検証対象のイベントとして検出される。また、イベント名が「パスワードリセット画面が出る」である場合には、属性が「状態」、入次数が「２」、出次数が「２」であるので、検証対象のイベントとして検出される。
【００４８】
そして、イベント検証部１５は、グラフ情報２３から、検証対象のイベントに対する前イベントおよび後イベントを取得し、前イベント、検証対象のイベント、後イベントを順につないだ部分経路を生成し、部分経路情報２４に書き込む。この結果、イベント検証部１５は、部分経路情報２４について、検証対象のイベントに対する部分経路（図６の検証対象イベントおよび部分経路を参照）を生成する。ここでは、検証対象のイベントが「ログイン失敗」である場合には、図８右上のような部分経路が生成される。検証対象のイベントが「パスワードリセット画面が出る」である場合には、図８右下のような部分経路が生成される。
【００４９】
そして、イベント検証部１５は、検証対象イベントに対して、部分経路を１つずつ選択し、選択した部分経路がいずれかの対応記事に含まれているか否かを判定する。
【００５０】
ここでは、検証対象のイベント「ログイン失敗」に対して「初期パスワードでのログイン→ログイン失敗→パスワードリセットを選択」の部分経路は、対応記事００２に含まれている。「アカウント名を再入力してログイン→ログイン失敗→心当たりのパスワードでのログイン」の部分経路は、対応記事００１に含まれている。「心当たりのパスワードでログイン→ログイン失敗→パスワードリセットを選択」の部分経路は、対応記事００１に含まれている。ところが、「初期パスワードでのログイン→ログイン失敗→心当たりのパスワードでのログイン」の部分経路は、対応履歴３０内のいずれの対応記事にも含まれていない。「アカウント名を再入力してログイン→ログイン失敗→パスワードリセットを選択」の部分経路は、いずれの対応記事にも含まれていない。
【００５１】
そして、イベント検証部１５は、検証対象のイベントに対する全ての部分経路の中で、対応記事中に含まれない部分経路がある場合には、当該検証対象のイベントを修正対象のイベントとする。ここでは、検証対象のイベントが「ログイン失敗」である場合には、このイベントに対する全ての部分経路の中で対応記事中に含まれない部分経路がある。すなわち、「初期パスワードでのログイン→ログイン失敗→心当たりのパスワードでのログイン」、「アカウント名を再入力してログイン→ログイン失敗→パスワードリセットを選択」は、対応記事中に含まれない部分経路である。したがって、イベント検証部１５は、「ログイン失敗」の検証対象のイベントを修正対象のイベントとする。
【００５２】
また、検証対象のイベント「パスワードリセット画面が出る」に対して「パスワードリセットを選択→パスワードリセット画面が出る→パスワードリセットを実施」の部分経路は、対応記事００１に含まれている。「パスワードリセットを選択→パスワードリセット画面が出る→パスワードを後でリセット」の部分経路は、対応記事００２に含まれている。「アカウント名設定を実施→パスワードリセット画面が出る→パスワードリセットを実施」の部分経路は、対応記事００３に含まれている。「アカウント名設定を実施→パスワードリセット画面が出る→パスワードを後でリセット」の部分経路は、対応記事００４に含まれている。すなわち、検証対象のイベント「パスワードリセット画面が出る」に対して全ての部分経路がいずれかの対応記事に含まれている。
【００５３】
そして、イベント検証部１５は、検証対象のイベントに対する全ての部分経路の中で、対応記事中に含まれない部分経路がある場合には、当該検証対象のイベントを修正対象のイベントとする。ここでは、検証対象のイベントが「パスワードリセット画面が出る」である場合には、このイベントに対する全ての部分経路の中で、対応記事中に含まれない部分経路がない。したがって、イベント検証部１５は、「パスワードリセット画面が出る」の検証対象のイベントを修正対象のイベントとしない。
【００５４】
［イベント修正処理の一例］
図９は、実施例に係るイベント修正処理の一例を示す図である。図９に示すように、修正対象のイベント「ログイン失敗」を含む対応記事００１，００２の修正版が示されている。なお、図９では、修正対象のイベントを含む対応記事を修正する場合としたが、修正対象のイベントを含むイベント情報２１を修正する場合であっても良い。
【００５５】
イベント修正部１６は、イベント検証部１５によって検証された結果の修正対象のイベントを選択する。ここでは、修正対象のイベントとして「ログイン失敗」が選択される。そして、イベント修正部１６は、選択した修正対象のイベントの１つ前のイベントを取得し、選択した修正対象のイベントのイベント名を、当該イベント名の１つ前のイベント名を追記したイベント名に修正する。ここでは、対応記事００１では、イベント修正部１６は、修正対象のイベント「ログイン失敗」の１つ前のイベント「アカウント名を再入力してログインを試す」を取得する。そして、イベント修正部１６は、修正対象のイベント「ログイン失敗」を「アカウント名を再入力してログインを試す→ログイン失敗」に修正する。イベント修正部１６は、修正対象のイベント「ログイン失敗」の１つ前のイベント「心当たりのパスワードでのログインを試す」を取得する。そして、イベント修正部１６は、修正対象のイベント「ログイン失敗」を「心当たりのパスワードでのログインを試す→ログイン失敗」に修正する。また、対応記事００２では、イベント修正部１６は、修正対象のイベント「ログイン失敗」の１つ前のイベント「初期パスワードでのログインを試す」を取得する。そして、イベント修正部１６は、修正対象のイベント「ログイン失敗」を「初期パスワードでのログインを試す→ログイン失敗」に修正する。
【００５６】
この後、イベント修正部１６は、修正した対応記事に対して、イベント抽出処理を実行してイベント情報２１を再生成する。そして、イベント修正部１６は、修正したイベント情報２１に対して、イベント遷移情報生成処理を実行して、イベント遷移情報２２を再生成する。そして、イベント修正部１６は、再生成したイベント遷移情報２２に対して、イベント統合処理を実行してグラフ情報２３を再生成してグラフ情報（修正）２５を生成する。
【００５７】
ここで、グラフ情報（修正）２５の一例を、図１０を参照して説明する。図１０は、実施例に係るグラフ情報（修正）の一例を示す図である。図１０に示すように、イベント修正部１６によって再生成されたグラフ情報（修正）２５が表されている。
【００５８】
グラフ情報（修正）２５には、修正対象のイベント「ログイン失敗」が１つ前のイベントを追記したイベントに修正されている。一例として、符号ａ１には、イベント名として「初期パスワードでのログインを試す→ログイン失敗」が記述されている。このイベント名の属性は、「行為→状態」である。そして、このイベント名に対する入次数、出次数は、共に「１」である。別の例として、符号ａ２には、イベント名として「アカウント名を再入力してログインを試す→ログイン失敗」が記述されている。このイベント名の属性は、「行為→状態」である。そして、このイベント名に対する入次数、出次数は、共に「１」である。さらに、別の例として、符号ａ３には、イベント名として「心当たりのパスワードでのログインを試す→ログイン失敗」が記述されている。このイベント名の属性は、「行為→状態」である。そして、このイベント名に対する入次数、出次数は、共に「１」である。
【００５９】
図９に戻って、イベント修正部１６は、グラフ情報（修正）２５からグラフ４０を出力する。ここで、グラフ４０の一例を、図１１を参照して説明する。図１１は、実施例に係るイベント修正処理結果のグラフの一例を示す図である。図１１に示すように、図１０で示したグラフ情報（修正）２５から出力されたグラフ４０が表されている。
【００６０】
グラフ４０には、修正対象のイベント「ログイン失敗」に対応するノードが１つ前のイベントを追記したイベントノードに修正されている。一例として、符号ｂ１には、ノードに対応するイベント名として「初期パスワードでのログインを試す→ログイン失敗」が記述されている。符号ｂ１のノードに対応するイベント名は、グラフ情報（修正）２５の符号ａ１に対応する。別の例として、符号ｂ２には、ノードに対応するイベント名として「アカウント名を再入力してログインを試す→ログイン失敗」が記述されている。符号ｂ２のノードに対応するイベント名は、グラフ情報（修正）２５の符号ａ２に対応する。さらに、別の例として、符号ｂ３には、ノードに対応するイベント名として「心当たりのパスワードでのログインを試す→ログイン失敗」が記述されている。符号ｂ３のノードに対応するイベント名は、グラフ情報（修正）２５の符号ａ３に対応する。
【００６１】
これにより、イベント修正部１６は、対応履歴３０に含まれるイベントの内容の粒度が対応履歴３０ごとに異なっていても、適切なグラフ４０を生成することができる。
【００６２】
次に、実施例に係るグラフ生成処理のフローチャートの一例を、図１２〜図１７を参照して説明する。
【００６３】
［イベント抽出処理のフローチャート］
図１２は、実施例に係るイベント抽出処理のフローチャートの一例を示す図である。
【００６４】
図１２に示すように、イベント抽出部１１は、障害記事の内容を受け付けると（ステップＳ１１）、受け付けた障害記事の内容と一致する内容の障害記事を含む複数の対応履歴３０を検索する（ステップＳ１２）。そして、イベント抽出部１１は、検索された複数の対応履歴３０から、１つの対応履歴３０（対応履歴ＩＤ）を選択する（ステップＳ１３）。
【００６５】
そして、イベント抽出部１１は、選択した対応履歴ＩＤの対応履歴３０から対応記事を読み込む（ステップＳ１４）。そして、イベント抽出部１１は、対応記事を解析し、イベントに分割する（ステップＳ１５）。そして、イベント抽出部１１は、分割したイベントの内容を解析し、イベント名と属性を抽出する（ステップＳ１６）。
【００６６】
そして、イベント抽出部１１は、発生順序の最初としてイベント名「Ｓｔａｒｔ」を追加し、発生順序の最後としてイベント名「Ｅｎｄ」を追加する（ステップＳ１７，ステップＳ１８）。そして、イベント抽出部１１は、対応履歴ＩＤ、発生順序、属性、イベント名をイベント情報２１に記録する（ステップＳ１９）。
【００６７】
そして、イベント抽出部１１は、すべての対応履歴ＩＤを選択したか否かを判定する（ステップＳ２０）。すべての対応履歴ＩＤを選択していないと判定した場合には（ステップＳ２０；Ｎｏ）、イベント抽出部１１は、次の対応履歴ＩＤを選択すべく、ステップＳ１３に移行する。
【００６８】
一方、すべての対応履歴ＩＤを選択したと判定した場合には（ステップＳ２０；Ｙｅｓ）、イベント抽出部１１は、イベント抽出処理を終了する。
【００６９】
［イベント遷移情報生成処理のフローチャート］
図１３は、実施例に係るイベント遷移情報生成処理のフローチャートの一例を示す図である。なお、イベント遷移情報生成部１２は、イベント抽出部１１によって生成されたイベント情報２１を受け付けたものとする。
【００７０】
図１３に示すように、イベント遷移情報生成部１２は、イベント情報２１に含まれる対応履歴ＩＤを１つ選択する（ステップＳ３１）。イベント遷移情報生成部１２は、変数ｉに「１」を設定する（ステップＳ３２）。なお、変数ｉは、発生順序のインデックスとして用いられる。
【００７１】
そして、イベント遷移情報生成部１２は、発生順序が変数ｉのイベント名および発生順序が変数ｉ＋１のイベント名をイベント情報２１から読み込み、それぞれ前イベント名、後イベント名とする（ステップＳ３３）。そして、イベント遷移情報生成部１２は、前イベント名と後イベント名の組み合わせがイベント遷移情報２２に存在するか否かを判定する（ステップＳ３４）。
【００７２】
前イベント名と後イベント名の組み合わせがイベント遷移情報２２に存在すると判定した場合には（ステップＳ３４；Ｙｅｓ）、イベント遷移情報生成部１２は、この組み合わせが存在する行の遷移頻度の値に「１」を加えた値を書き込む（ステップＳ３５）。そして、イベント遷移情報生成部１２は、ステップＳ３７に移行する。
【００７３】
一方、前イベント名と後イベント名の組み合わせがイベント遷移情報２２に存在しないと判定した場合には（ステップＳ３４；Ｎｏ）、イベント遷移情報生成部１２は、イベント遷移情報２２の行を追加する。イベント遷移情報生成部１２は、「遷移前イベント名」欄および「遷移後イベント名」欄にそれぞれ該当するイベント名を書き込み、「遷移頻度」欄に「１」を書き込む（ステップＳ３６）。すなわち、イベント遷移情報生成部１２は、「遷移前イベント名」欄に組み合わせ内の前イベント名を書き込み、「遷移後イベント名」欄に組み合わせ内の後イベント名を書き込み、「遷移頻度」欄に「１」を書き込む。そして、イベント遷移情報生成部１２は、ステップＳ３７に移行する。
【００７４】
ステップＳ３７において、イベント遷移情報生成部１２は、発生順序ｉ＋１のイベント名が「Ｅｎｄ」であるか否かを判定する（ステップＳ３７）。発生順序ｉ＋１のイベント名が「Ｅｎｄ」でないと判定した場合には（ステップＳ３７；Ｎｏ）、イベント遷移情報生成部１２は、変数ｉを「１」加算する（ステップＳ３８）。そして、イベント遷移情報生成部１２は、次の発生順序の処理をすべく、ステップＳ３３に移行する。
【００７５】
一方、発生順序ｉ＋１のイベント名が「Ｅｎｄ」であると判定した場合には（ステップＳ３７；Ｙｅｓ）、イベント遷移情報生成部１２は、すべての対応履歴ＩＤを選択したか否かを判定する（ステップＳ３９）。すべての対応履歴ＩＤを選択していないと判定した場合には（ステップＳ３９；Ｎｏ）、イベント遷移情報生成部１２は、次の対応履歴ＩＤを選択すべく、ステップＳ３１に移行する。
【００７６】
一方、すべての対応履歴ＩＤを選択したと判定した場合には（ステップＳ３９；Ｙｅｓ）、イベント遷移情報生成部１２は、イベント遷移情報生成処理を終了する。
【００７７】
［イベント統合処理のフローチャート］
図１４は、実施例に係るイベント統合処理のフローチャートの一例を示す図である。なお、イベント統合部１３は、イベント遷移情報生成部１２によって生成されたイベント遷移情報２２を受け付けたものとする。
【００７８】
図１４に示すように、イベント統合部１３は、イベント遷移情報２２からレコードを１件取得し、遷移前イベント名と遷移後イベント名を取得する（ステップＳ４１）。イベント統合部１３は、グラフ情報２３の「イベント名」欄に遷移前イベント名を含むレコードが存在するか否かを判定する（ステップＳ４２）。
【００７９】
グラフ情報２３の「イベント名」欄に遷移前イベント名を含むレコードが存在しないと判定した場合には（ステップＳ４２；Ｎｏ）、イベント統合部１３は、グラフ情報２３の行を追加し、「イベント名」欄に遷移前イベント名を書き込む（ステップＳ４３）。そして、イベント統合部１３は、遷移前イベント名に対応する属性を、イベント情報２１を検索して取得し、取得した属性を「属性」欄に書き込む(ステップＳ４４）。そして、イベント統合部１３は、「出次数」欄に「１」を書き込み、遷移後イベント名を「後イベント名」欄に書き込む（ステップＳ４５）。そして、イベント統合部１３は、遷移後イベント名が「イベント名」欄に含まれるかを判定すべく、ステップＳ４８に移行する。
【００８０】
一方、グラフ情報２３の「イベント名」欄に遷移前イベント名を含むレコードが存在すると判定した場合には（ステップＳ４２；Ｙｅｓ）、イベント統合部１３は、該当レコードの「後イベント名」欄に遷移後イベント名が含まれるか否かを判定する（ステップＳ４６）。
【００８１】
該当レコードの「後イベント名」欄に遷移後イベント名が含まれないと判定した場合には（ステップＳ４６；Ｎｏ）、イベント統合部１３は、「出次数」欄を１加えた値に更新し、遷移後イベント名を「後イベント」欄に追記する（ステップＳ４７）。すなわち、イベント統合部１３は、現レコードの「イベント名」欄に記述されたイベントを統合して１つのノードとする。そして、イベント統合部１３は、遷移後イベント名が「イベント名」欄に含まれるかを判定すべく、ステップＳ４８に移行する。
【００８２】
一方、該当レコードの「後イベント名」欄に遷移後イベント名が含まれると判定した場合には（ステップＳ４６；Ｙｅｓ）、イベント統合部１３は、遷移後イベント名が「イベント名」欄に含まれるかを判定すべく、ステップＳ４８に移行する。
【００８３】
ステップＳ４８において、イベント統合部１３は、グラフ情報２３の「イベント名」欄に遷移後イベント名を含むレコードが存在するか否かを判定する（ステップＳ４８）。
【００８４】
グラフ情報２３の「イベント名」欄に遷移後イベント名を含むレコードが存在しないと判定した場合には（ステップＳ４８；Ｎｏ）、イベント統合部１３は、グラフ情報２３の行を追加し、「イベント名」欄に遷移後イベント名を書き込む（ステップＳ４９）。そして、イベント統合部１３は、遷移後イベント名に対応する属性を、イベント情報２１を検索して取得し、取得した属性を「属性」欄に書き込む(ステップＳ５０）。そして、イベント統合部１３は、「入次数」欄に「１」を書き込み、遷移前イベント名を「前イベント名」欄に書き込む（ステップＳ５１）。そして、イベント統合部１３は、すべてのレコードを取得したかを判定すべく、ステップＳ５４に移行する。
【００８５】
一方、グラフ情報２３の「イベント名」欄に遷移後イベント名を含むレコードが存在すると判定した場合には（ステップＳ４８；Ｙｅｓ）、イベント統合部１３は、該当レコードの「前イベント名」欄に遷移前イベント名が含まれるか否かを判定する（ステップＳ５２）。
【００８６】
該当レコードの「前イベント名」欄に遷移前イベント名が含まれないと判定した場合には（ステップＳ５２；Ｎｏ）、イベント統合部１３は、「入次数」欄を１加えた値に更新し、遷移前イベント名を「前イベント」欄に追記する（ステップＳ５３）。すなわち、イベント統合部１３は、現レコードの「イベント名」欄に記述されたイベントを統合して１つのノードとする。そして、イベント統合部１３は、すべてのレコードを取得したかを判定すべく、ステップＳ５４に移行する。
【００８７】
一方、該当レコードの「前イベント名」欄に遷移前イベント名が含まれると判定した場合には（ステップＳ５２；Ｙｅｓ）、イベント統合部１３は、すべてのレコードを取得したかを判定すべく、ステップＳ５４に移行する。
【００８８】
ステップＳ５４において、イベント統合部１３は、イベント遷移情報２２からすべてのレコードを取得したか否かを判定する（ステップＳ５４）。イベント遷移情報２２からすべてのレコードを取得していないと判定した場合には（ステップＳ５４；Ｎｏ）、イベント統合部１３は、次のレコードを取得すべく、ステップＳ４１に移行する。
【００８９】
一方、イベント遷移情報２２からすべてのレコードを取得したと判定した場合には（ステップＳ５４；Ｙｅｓ）、イベント統合部１３は、イベント統合処理を終了する。
【００９０】
［検証対象イベント検出処理のフローチャート］
図１５は、実施例に係る検証対象イベント検出処理のフローチャートの一例を示す図である。なお、検証対象イベント検出部１４は、イベント統合部１３によって生成されたグラフ情報２３を受け付けたものとする。
【００９１】
図１５に示すように、検証対象イベント検出部１４は、グラフ情報２３に記録されているイベントを１つ選択する（ステップＳ６１）。検証対象イベント検出部１４は、選択したイベントの「属性」、「入次数」、「出次数」をそれぞれ取得する（ステップＳ６２）。
【００９２】
そして、検証対象イベント検出部１４は、取得した属性は「状態」であるか否かを判定する（ステップＳ６３）。取得した属性は「状態」でないと判定した場合には（ステップＳ６３；Ｎｏ）、検証対象イベント検出部１４は、検証対象のイベントでないと判断し、ステップＳ６６に移行する。
【００９３】
一方、取得した属性は「状態」であると判定した場合には（ステップＳ６３；Ｙｅｓ）、検証対象イベント検出部１４は、入次数と出次数がいずれも２以上であるか否かを判定する（ステップＳ６４）。入次数と出次数のいずれかまたはどちらも２以上でないと判定した場合には（ステップＳ６４；Ｎｏ）、検証対象イベント検出部１４は、検証対象のイベントでないと判断し、ステップＳ６６に移行する。
【００９４】
一方、入次数と出次数がいずれも２以上であると判定した場合には（ステップＳ６４；Ｙｅｓ）、検証対象イベント検出部１４は、選択したイベントを検証対象とする（ステップＳ６５）。そして、検証対象イベント検出部１４は、グラフ情報２３に記録されているすべてのイベントを選択したか否かを判定する（ステップＳ６６）。グラフ情報２３に記録されているすべてのイベントを選択していないと判定した場合には（ステップＳ６６；Ｎｏ）、検証対象イベント検出部１４は、次のイベントを選択すべく、ステップＳ６１に移行する。
【００９５】
一方、グラフ情報２３に記録されているすべてのイベントを選択したと判定した場合には（ステップＳ６６；Ｙｅｓ）、検証対象イベント検出部１４は、検証対象イベント検出処理を終了する。
【００９６】
［イベント検証処理のフローチャート］
図１６は、実施例に係るイベント検証処理のフローチャートの一例を示す図である。なお、イベント検証部１５は、検証対象イベント検出部１４によって検出された検証対象のイベントを受け付けたものとする。
【００９７】
図１６に示すように、イベント検証部１５は、検証対象のイベントを１件選択する（ステップＳ７１）。イベント検証部１５は、選択したイベントについて、グラフ情報２３から前イベント名と後イベント名を読み込む（ステップＳ７２）。前イベント名には、２以上のイベントが含まれる。後イベント名には２以上のイベントが含まれる。検証対象のイベントについての入次数および出次数は、いずれも２以上であるからである。
【００９８】
そして、イベント検証部１５は、前イベント名と後イベント名からそれぞれ１つのイベント名を選択する（ステップＳ７３）。イベント検証部１５は、選択した前イベント名と選択した後イベント名は同じであるか否かを判定する（ステップＳ７４）。同じであると判定した場合には（ステップＳ７４；Ｙｅｓ）、イベント検証部１５は、ステップＳ７７に移行する。
【００９９】
同じでないと判定した場合には（ステップＳ７４；Ｎｏ）、イベント検証部１５は、前イベント名、検証対象のイベント名、後イベント名を順につないだ３つのイベントからなる部分経路を生成する（ステップＳ７５）。イベント検証部１５は、検証対象のイベント名と、生成した部分経路を部分経路情報２４に書き込む（ステップＳ７６）。そして、イベント検証部１５は、ステップＳ７７に移行する。
【０１００】
ステップＳ７７において、イベント検証部１５は、前イベント名と後イベント名のすべての組み合わせを選択したか否かを判定する（ステップＳ７７）。前イベント名と後イベント名のすべての組み合わせを選択していないと判定した場合には（ステップＳ７７；Ｎｏ）、イベント検証部１５は、次の組み合わせを選択すべく、ステップＳ７３に移行する。
【０１０１】
一方、前イベント名と後イベント名のすべての組み合わせを選択したと判定した場合には（ステップＳ７７；Ｙｅｓ）、イベント検証部１５は、部分経路情報２４から部分経路を１つ選択する（ステップＳ７８）。イベント検証部１５は、イベント情報２１から対応履歴ＩＤを１つ選択し、ＳｔａｒｔからＥｎｄまでのすべてのイベントをつないだ経路を生成する（ステップＳ７９）。
【０１０２】
イベント検証部１５は、選択した部分経路が、生成した経路に含まれているか否かを判定する（ステップＳ８０）。選択した部分経路が、生成した経路に含まれていないと判定した場合には（ステップＳ８０；Ｎｏ）、イベント検証部１５は、ステップＳ８２に移行する。一方、選択した部分経路が、生成した経路に含まれていると判定した場合には（ステップＳ８０；Ｙｅｓ）、イベント検証部１５は、対応履歴ＩＤを部分経路情報２４に書き込む（ステップＳ８１）。そして、イベント検証部１５は、ステップＳ８２に移行する。
【０１０３】
ステップＳ８２において、イベント検証部１５は、すべての対応履歴ＩＤを選択したか否かを判定する（ステップＳ８２）。すべての対応履歴ＩＤを選択していないと判定した場合には（ステップＳ８２；Ｎｏ）、イベント検証部１５は、次の対応履歴ＩＤを選択すべく、ステップＳ７９に移行する。
【０１０４】
一方、すべての対応履歴ＩＤを選択したと判定した場合には（ステップＳ８２；Ｙｅｓ）、イベント検証部１５は、部分経路情報２４からすべての部分経路を選択したか否かを判定する（ステップＳ８３）。すべての部分経路を選択していないと判定した場合には（ステップＳ８３；Ｎｏ）、イベント検証部１５は、次の部分経路を選択すべく、ステップＳ７８に移行する。
【０１０５】
一方、すべての部分経路を選択したと判定した場合には（ステップＳ８３；Ｙｅｓ）、イベント検証部１５は、部分経路情報２４を参照し、すべての部分経路に対して対応履歴ＩＤが書き込まれているか否かを判定する（ステップＳ８４）。すべての部分経路に対して対応履歴ＩＤが書き込まれていると判定した場合には（ステップＳ８４；Ｙｅｓ）、イベント検証部１５は、ステップＳ８６に移行する。
【０１０６】
一方、すべての部分経路に対して対応履歴ＩＤが書き込まれていないと判定した場合には（ステップＳ８４；Ｎｏ）、イベント検証部１５は、選択中の検証対象のイベントを修正対象のイベントとする（ステップＳ８５）。そして、イベント検証部１５は、ステップＳ８６に移行する。
【０１０７】
ステップＳ８６において、イベント検証部１５は、すべての検証対象のイベントを選択したか否かを判定する（ステップＳ８６）。すべての検証対象のイベントを選択していないと判定した場合には（ステップＳ８６；Ｎｏ）、イベント検証部１５は、次の検証対象のイベントを選択すべく、ステップＳ７１に移行する。
【０１０８】
一方、すべての検証対象のイベントを選択したと判定した場合には（ステップＳ８６；Ｙｅｓ）、イベント検証部１５は、イベント検証処理を終了する。
【０１０９】
［イベント修正処理のフローチャート］
図１７は、実施例に係るイベント修正処理のフローチャートの一例を示す図である。なお、イベント修正部１６は、イベント検証部１５によって検証された修正対象のイベントを受け付けたものとする。
【０１１０】
図１７に示すように、イベント修正部１６は、修正対象のイベントを１つ選択する（ステップＳ９１）。イベント修正部１６は、選択した修正対象のイベントに一致するイベントをイベント情報２１から検索する（ステップＳ９２）。イベント修正部１６は、検索したイベント情報２１のイベントを１つ選択する（ステップＳ９３）。
【０１１１】
そして、イベント修正部１６は、イベント情報２１を参照して、選択したイベントに対して、発生順序が１つ前となるイベントのイベント名（前イベント名）を取得する（ステップＳ９４）。イベント修正部１６は、選択したイベントのイベント名を「前イベント名→イベント名」という表記に修正してイベント情報２１を修正する（ステップＳ９５）。
【０１１２】
そして、イベント修正部１６は、イベント情報２１から検索したすべてのイベントを選択したか否かを判定する（ステップＳ９６）。すべてのイベントを選択していないと判定した場合には（ステップＳ９６；Ｎｏ）、イベント修正部１６は、次のイベントを選択すべく、ステップＳ９３に移行する。
【０１１３】
一方、すべてのイベントを選択したと判定した場合には（ステップＳ９６；Ｙｅｓ）、イベント修正部１６は、すべての修正対象のイベントを選択したか否かを判定する（ステップＳ９７）。すべての修正対象のイベントを選択していないと判定した場合には（ステップＳ９７；Ｎｏ）、イベント修正部１６は、次の修正対象のイベントを選択すべく、ステップＳ９１に移行する。
【０１１４】
一方、すべての修正対象のイベントを選択していたと判定した場合には（ステップＳ９７；Ｙｅｓ）、イベント修正部１６は、修正したイベント情報２１に対して、イベント遷移情報生成処理を実行して、イベント遷移情報２２を再生成する（ステップＳ９８）。そして、イベント修正部１６は、再生成したイベント遷移情報２２に対して、グラフ生成処理を実行してグラフ情報２３を再生成する（ステップＳ９９）。そして、イベント修正部１６は、イベント修正処理を終了する。
【０１１５】
［実施例の効果］
このようにして、情報処理装置１は、記録対象の動作および状態に関する複数の時系列イベント情報にそれぞれ含まれる複数のイベントそれぞれを、動作および状態に分類する。情報処理装置１は、複数の時系列イベント情報に含まれる複数のイベント内容に基づく統合処理により、有向グラフを生成する。そして、情報処理装置１は、統合処理により統合されたイベントであって状態に分類されたイベントを通る、該生成した有向グラフに含まれる経路それぞれが、複数の時系列イベント情報の部分経路に含まれるか否かを検証することにより統合処理の妥当性を判定する。かかる構成によれば、情報処理装置１は、統合されたイベントについて、生成された有向グラフに含まれる経路および複数の時系列イベント情報の部分経路を用いて統合処理の妥当性を判定することで、複数の時系列イベント情報の記録における粒度の違いを検証できる。この結果、情報処理装置１は、複数の時系列イベント情報の記録における粒度が違っていても、有向グラフの生成に適していない粒度であっても、適切に有向グラフを生成することが可能となる。すなわち、情報処理装置１は、複数の時系列イベント情報の記録における粒度が、有向グラフの生成に適していない粒度であっても、適切に有向グラフを生成することが可能となる。
【０１１６】
また、情報処理装置１は、妥当でないと判定されたイベントを、直前の動作に関するイベントを追記したイベントに修正して、再度、統合処理により、有向グラフを生成する。かかる構成によれば、情報処理装置１は、状態に関するイベントを直前の動作に関するイベントを追加したイベントに修正することで、記載内容が表面的に一致することで統合すべきでなかったイベントを修正することができる。この結果、情報処理装置１は、粒度を合わせた有向グラフを適切に生成することができる。
【０１１７】
また、情報処理装置１は、状態に分類されたイベントおよび有向グラフを構成するイベントノードの入次数および出次数に基づいて、有向グラフに含まれる、検証対象のイベントを絞り込む。そして、情報処理装置１は、検証対象のイベントと前後のイベントとをつなぐ経路それぞれが、複数の時系列イベント情報の部分経路に含まれるか否かを検証する。かかる構成によれば、統合処理の妥当性を検証する対象箇所を容易に絞り込むことができる。
【０１１８】
［その他］
なお、情報処理装置１は、既知のパーソナルコンピュータ、ワークステーションなどの装置に、上記した制御部１０および記憶部２０などの各機能を搭載することによって実現することができる。
【０１１９】
また、上記実施例では、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、イベント抽出部１１およびイベント遷移情報生成部１２を統合集計しても良い。イベント検証部１５を、検証対象のイベントに対する前後のイベントとの全ての部分経路を生成する処理部と、検証対象のイベントに対する全ての部分経路に基づいて修正対象のイベントを検出する処理部とに分散しても良い。記憶部２０を情報処理装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【０１２０】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した情報処理装置１と同様の機能を実現する評価プログラムを実行するコンピュータの一例を説明する。図１８は、グラフ生成プログラムを実行するコンピュータの一例を示す図である。
【０１２１】
図１８に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ（Hard  Disk  Drive）２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【０１２２】
ドライブ装置２１３は、例えばリムーバブルディスク２１１用の装置である。ＨＤＤ２０５は、グラフ生成プログラム２０５ａおよびグラフ生成関連情報２０５ｂを記憶する。
【０１２３】
ＣＰＵ２０３は、グラフ生成プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置１の各機能部に対応する。グラフ生成関連情報２０５ｂは、イベント情報２１、イベント遷移情報２２、グラフ情報２３、部分経路情報２４およびグラフ情報（修正）２５に対応する。そして、例えばリムーバブルディスク２１１が、グラフ生成プログラム２０５ａなどの各情報を記憶する。
【０１２４】
なお、グラフ生成プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、ＤＶＤ（Digital  Versatile  Disk）、光磁気ディスク、ＩＣ（Integrate  Circuit）カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからグラフ生成プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【０１２５】
１  情報処理装置
１０  制御部
１１  イベント抽出部
１２  イベント遷移情報生成部
１３  イベント統合部
１４  検証対象イベント検出部
１５  イベント検証部
１６  イベント修正部
２０  記憶部
２１  イベント情報
２２  イベント遷移情報
２３  グラフ情報
２４  部分経路情報
２５  グラフ情報（修正）
３０  対応履歴
４０  グラフ
【図１】
2019117442.tif 000003
【図２】
2019117442.tif 000004
【図３】
2019117442.tif 000005
【図４】
2019117442.tif 000006
【図５】
2019117442.tif 000007
【図６】
2019117442.tif 000008
【図７】
2019117442.tif 000009
【図８】
2019117442.tif 000010
【図９】
2019117442.tif 000011
【図１０】
2019117442.tif 000012
【図１１】
2019117442.tif 000013
【図１２】
2019117442.tif 000014
【図１３】
2019117442.tif 000015
【図１４】
2019117442.tif 000016
【図１５】
2019117442.tif 000017
【図１６】
2019117442.tif 000018
【図１７】
2019117442.tif 000019
【図１８】
2019117442.tif 000020
【図１９】
2019117442.tif 000021