(57)【要約】  挙動インデックス１０３は、ログデータに含まれるイベントの発生経緯を複数ノードの連結で示し、２つ以上の後方のノードに連結する分岐ノード、２つ以上の前方のノードから連結される統合ノードが含まれ、正規表現変換部１０４がクライアント２００からイベントの出現順序が示された検索条件を入力した際に、検索オートマトン保持部１０５が検索条件に従って状態遷移表１０６を生成し、ノード種別判定部１０８が挙動インデックス１０３の各ノードのノード種別を判定しながら、状態評価部１１１が各ノードを解析して各ノードの状態を判断し、状態の遷移パターンが状態遷移表１０６に合致するか否かを判定し、分岐ノードに対しては、分岐ノードから分岐する分岐経路ごとに各ノードを解析し、統合ノードに対しては、統合ノードに合流する上流経路ごとに各ノードを解析する。
2010097945.tif 000002
【特許請求の範囲】
【請求項１】
イベントの発生経緯の履歴を複数ノードの連結で表すイベント履歴情報であって、２つ以上の後方のノードに連結する分岐ノード及び２つ以上の前方のノードから連結される統合ノードの少なくともいずれかが含まれるイベント履歴情報を記憶する情報記憶部と、
前記イベント履歴情報の各ノードを前方のノードから順にノードの連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが分岐ノード及び統合ノードのいずれかに該当するか否かを判定し、解析対象のノードが分岐ノードである場合には、分岐ノードから分岐する分岐経路ごとに分岐経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが統合ノードである場合には、統合ノードに合流する上流経路ごとに上流経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、前記イベント履歴情報からイベント発生順序のパターンを１つ以上抽出する情報解析部とを有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、更に、
抽出対象イベントと抽出対象イベントの出現順序が示される抽出条件を入力する抽出条件入力部を有し、
前記情報解析部は、
抽出したイベント発生順序のパターンが、前記抽出条件に示されている抽出対象イベントの出現順序に合致する否かを判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報記憶部は、
複数のイベント履歴情報を記憶しており、
前記情報解析部は、
イベント履歴情報ごとにイベント発生順序のパターンを抽出し、前記抽出条件に示されている抽出対象イベントの出現順序に合致しているイベント発生順序のパターンが含まれているイベント履歴情報を抽出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記情報記憶部は、
複数のイベント履歴情報を複数のカテゴリーに分類して記憶し、更に、異なるカテゴリーに属する関連する２つ以上のイベント履歴情報同士を対応付けて記憶し、
前記情報解析部は、
特定のカテゴリーに属するイベント履歴情報の各ノードを解析し、解析中の前記特定のカテゴリーのイベント履歴情報が他カテゴリーのイベント履歴情報に対応付けられている場合に、前記特定のカテゴリーのイベント履歴情報に対応付けられている他カテゴリーのイベント履歴情報を抽出し、抽出した他カテゴリーのイベント履歴情報のノードを解析し、２つ以上のカテゴリーに属する２つ以上のイベント履歴情報のノードの組み合わせに基づきイベント発生順序のパターンを１つ以上抽出することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記情報記憶部は、
異なるカテゴリーに属する関連する２つ以上のイベント履歴情報同士をノード単位で対応付けて記憶し、
前記情報解析部は、
前記特定のカテゴリーに属するイベント履歴情報の各ノードを解析し、解析中のノードが他カテゴリーのイベント履歴情報内のノードに対応付けられている場合に、解析中のノードに対応付けられているノードを抽出し、抽出したノードを解析することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記情報解析部は、
抽出した他カテゴリーのイベント履歴情報が更に別のカテゴリーのイベント履歴情報に対応付けられている場合に、当該別のカテゴリーのイベント履歴情報を抽出し、抽出した別のカテゴリーのイベント履歴情報のノードを解析し、３つ以上のカテゴリーに属する３つ以上のイベント履歴情報のノードの組み合わせに基づきイベント発生順序のパターンを１つ以上抽出することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記情報記憶部は、
異なるカテゴリーに属する関連する２つ以上のイベント履歴情報同士をノード単位で対応付けて記憶し、
前記情報解析部は、
抽出した他カテゴリーのイベント履歴情報のノードを解析し、解析中のノードが別のカテゴリーのイベント履歴情報内のノードに対応付けられている場合に、解析中のノードに対応付けられているノードを抽出し、抽出したノードを解析することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記情報解析部は、
前記イベント履歴情報に分岐ノードが含まれている場合は、未解析の分岐経路の中から解析対象とする分岐経路を選択し、選択した分岐経路に含まれる各ノードを前方のノードから順に連結順序に従って解析し、選択した分岐経路に含まれる各ノードの解析が終了した後に、新たな解析対象の分岐経路を選択することを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記情報解析部は、
前記イベント履歴情報に統合ノードが含まれている場合は、未解析の上流経路の中から解析対象とする上流経路を選択し、選択した上流経路に含まれる各ノードを前方のノードから順に連結順序に従って解析し、選択した上流経路に含まれる各ノードの解析が終了した後に、新たな解析対象の上流経路を選択することを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
前記情報解析部は、
統合ノードの全ての上流経路の解析が完了した後に、統合ノードの後方の各ノードの解析を開始することを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記情報解析部は、
統合ノードの全ての上流経路の解析を行った結果、統合ノードが複数種類のイベントを表していることが判明した際に、統合ノードの後方の各ノードの解析を統合ノードが表すイベントの種類数分繰り返すことを特徴とする請求項９に記載の情報処理装置。
【請求項１２】
コンピュータが、
イベントの発生経緯の履歴を複数ノードの連結で表すイベント履歴情報であって、２つ以上の後方のノードに連結する分岐ノード及び２つ以上の前方のノードから連結される統合ノードの少なくともいずれかが含まれるイベント履歴情報を所定の記憶装置から取得し、
前記コンピュータが、
前記イベント履歴情報の各ノードを前方のノードから順にノードの連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが分岐ノード及び統合ノードのいずれかに該当するか否かを判定し、解析対象のノードが分岐ノードである場合には、分岐ノードから分岐する分岐経路ごとに分岐経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが統合ノードである場合には、統合ノードに合流する上流経路ごとに上流経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、前記イベント履歴情報からイベント発生順序のパターンを１つ以上抽出することを特徴とする情報処理方法。
【請求項１３】
イベントの発生経緯の履歴を複数ノードの連結で表すイベント履歴情報であって、２つ以上の後方のノードに連結する分岐ノード及び２つ以上の前方のノードから連結される統合ノードの少なくともいずれかが含まれるイベント履歴情報を所定の記憶装置から取得する情報取得処理と、
前記イベント履歴情報の各ノードを前方のノードから順にノードの連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが分岐ノード及び統合ノードのいずれかに該当するか否かを判定し、解析対象のノードが分岐ノードである場合には、分岐ノードから分岐する分岐経路ごとに分岐経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが統合ノードである場合には、統合ノードに合流する上流経路ごとに上流経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、前記イベント履歴情報からイベント発生順序のパターンを１つ以上抽出する情報解析処理とをコンピュータに実行させること特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログに含まれる順序情報に基づいてイベント等の出現パターンを指定して効率よくかつ高速に検索する方式に関するものである。
【背景技術】
【０００２】
情報セキュリティ、ネットワーク監視、設備管理などの分野を中心に収集蓄積されたログデータから情報漏えい、不正アクセス、機器故障などの履歴を監視し情報、ネットワーク、設備の管理を高度化しようとする動きが進んでいる。
そのためには監視対象の履歴データを収集し、一定期間内においてその対象がどのようなふるまいをしたかを追跡する必要がある。
履歴データには監視対象識別ＩＤ、タイムスタンプ、イベントなどの動作情報が記録されている。
しかし、これらの情報の構造は発生順序を管理する手段を持たないため一定期間にわたって監視対象を追記するなどの要求に対しては不向きである。【０００３】
このような課題に対して、たとえば文書検索においては文字列の出現パターンを正規表現で表した検索条件式をこれと等価な検索オートマトンに変換し、生成された状態遷移表から検索する技術がある。
また、グラフ構造で表されるデータ構造について部分グラフを指定してこれを検索する技術がある。
また、これらを融合したものとして階層構造文書であるＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書についてタグを取り出してタグの出現パターンを検索オートマトンとして検索することを可能にする技術がある（たとえば、特許文献１）。
【特許文献１】特開２００４−１２６９３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＸＭＬなどの文書構造ではタグは必ず開始と終了があり、完全な階層構造を持つものであるため、上記の方法が有効であるが、履歴データでは分岐したあとその情報の終端位置は可変であるため、上記の方法では、非効率的になるという課題がある。
さらに、検索条件式自体が複雑になり、これらをもとに、高速に検索することはきわめて困難であるという課題がある。【０００５】
本発明は、このような課題を解決することを主な目的の一つとしており、イベントの発生経緯の履歴を複数ノードの連結で表す情報において経路の分岐又は経路の統合が発生した場合に、効率的かつ包括的にイベントの発生経緯を解析することが可能な仕組みを実現することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理装置は、
イベントの発生経緯の履歴を複数ノードの連結で表すイベント履歴情報であって、２つ以上の後方のノードに連結する分岐ノード及び２つ以上の前方のノードから連結される統合ノードの少なくともいずれかが含まれるイベント履歴情報を記憶する情報記憶部と、
前記イベント履歴情報の各ノードを前方のノードから順にノードの連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが分岐ノード及び統合ノードのいずれかに該当するか否かを判定し、解析対象のノードが分岐ノードである場合には、分岐ノードから分岐する分岐経路ごとに分岐経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが統合ノードである場合には、統合ノードに合流する上流経路ごとに上流経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、前記イベント履歴情報からイベント発生順序のパターンを１つ以上抽出する情報解析部とを有することを特徴とする。【０００７】
前記情報処理装置は、更に、
抽出対象イベントと抽出対象イベントの出現順序が示される抽出条件を入力する抽出条件入力部を有し、
前記情報解析部は、
抽出したイベント発生順序のパターンが、前記抽出条件に示されている抽出対象イベントの出現順序に合致する否かを判定することを特徴とする。【０００８】
前記情報記憶部は、
複数のイベント履歴情報を記憶しており、
前記情報解析部は、
イベント履歴情報ごとにイベント発生順序のパターンを抽出し、前記抽出条件に示されている抽出対象イベントの出現順序に合致しているイベント発生順序のパターンが含まれているイベント履歴情報を抽出することを特徴とする。【０００９】
前記情報記憶部は、
複数のイベント履歴情報を複数のカテゴリーに分類して記憶し、更に、異なるカテゴリーに属する関連する２つ以上のイベント履歴情報同士を対応付けて記憶し、
前記情報解析部は、
特定のカテゴリーに属するイベント履歴情報の各ノードを解析し、解析中の前記特定のカテゴリーのイベント履歴情報が他カテゴリーのイベント履歴情報に対応付けられている場合に、前記特定のカテゴリーのイベント履歴情報に対応付けられている他カテゴリーのイベント履歴情報を抽出し、抽出した他カテゴリーのイベント履歴情報のノードを解析し、２つ以上のカテゴリーに属する２つ以上のイベント履歴情報のノードの組み合わせに基づきイベント発生順序のパターンを１つ以上抽出することを特徴とする。【００１０】
前記情報記憶部は、
異なるカテゴリーに属する関連する２つ以上のイベント履歴情報同士をノード単位で対応付けて記憶し、
前記情報解析部は、
前記特定のカテゴリーに属するイベント履歴情報の各ノードを解析し、解析中のノードが他カテゴリーのイベント履歴情報内のノードに対応付けられている場合に、解析中のノードに対応付けられているノードを抽出し、抽出したノードを解析することを特徴とする。【００１１】
前記情報解析部は、
抽出した他カテゴリーのイベント履歴情報が更に別のカテゴリーのイベント履歴情報に対応付けられている場合に、当該別のカテゴリーのイベント履歴情報を抽出し、抽出した別のカテゴリーのイベント履歴情報のノードを解析し、３つ以上のカテゴリーに属する３つ以上のイベント履歴情報のノードの組み合わせに基づきイベント発生順序のパターンを１つ以上抽出することを特徴とする。【００１２】
前記情報記憶部は、
異なるカテゴリーに属する関連する２つ以上のイベント履歴情報同士をノード単位で対応付けて記憶し、
前記情報解析部は、
抽出した他カテゴリーのイベント履歴情報のノードを解析し、解析中のノードが別のカテゴリーのイベント履歴情報内のノードに対応付けられている場合に、解析中のノードに対応付けられているノードを抽出し、抽出したノードを解析することを特徴とする。【００１３】
前記情報解析部は、
前記イベント履歴情報に分岐ノードが含まれている場合は、未解析の分岐経路の中から解析対象とする分岐経路を選択し、選択した分岐経路に含まれる各ノードを前方のノードから順に連結順序に従って解析し、選択した分岐経路に含まれる各ノードの解析が終了した後に、新たな解析対象の分岐経路を選択することを特徴とする。【００１４】
前記情報解析部は、
前記イベント履歴情報に統合ノードが含まれている場合は、未解析の上流経路の中から解析対象とする上流経路を選択し、選択した上流経路に含まれる各ノードを前方のノードから順に連結順序に従って解析し、選択した上流経路に含まれる各ノードの解析が終了した後に、新たな解析対象の上流経路を選択することを特徴とする。【００１５】
前記情報解析部は、
統合ノードの全ての上流経路の解析が完了した後に、統合ノードの後方の各ノードの解析を開始することを特徴とする。【００１６】
前記情報解析部は、
統合ノードの全ての上流経路の解析を行った結果、統合ノードが複数種類のイベントを表していることが判明した際に、統合ノードの後方の各ノードの解析を統合ノードが表すイベントの種類数分繰り返すことを特徴とする。【００１７】
本発明に係る情報処理方法は、
コンピュータが、
イベントの発生経緯の履歴を複数ノードの連結で表すイベント履歴情報であって、２つ以上の後方のノードに連結する分岐ノード及び２つ以上の前方のノードから連結される統合ノードの少なくともいずれかが含まれるイベント履歴情報を所定の記憶装置から取得し、
前記コンピュータが、
前記イベント履歴情報の各ノードを前方のノードから順にノードの連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが分岐ノード及び統合ノードのいずれかに該当するか否かを判定し、解析対象のノードが分岐ノードである場合には、分岐ノードから分岐する分岐経路ごとに分岐経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが統合ノードである場合には、統合ノードに合流する上流経路ごとに上流経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、前記イベント履歴情報からイベント発生順序のパターンを１つ以上抽出することを特徴とする。【００１８】
本発明に係るプログラムは、
イベントの発生経緯の履歴を複数ノードの連結で表すイベント履歴情報であって、２つ以上の後方のノードに連結する分岐ノード及び２つ以上の前方のノードから連結される統合ノードの少なくともいずれかが含まれるイベント履歴情報を所定の記憶装置から取得する情報取得処理と、
前記イベント履歴情報の各ノードを前方のノードから順にノードの連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが分岐ノード及び統合ノードのいずれかに該当するか否かを判定し、解析対象のノードが分岐ノードである場合には、分岐ノードから分岐する分岐経路ごとに分岐経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、解析対象のノードが統合ノードである場合には、統合ノードに合流する上流経路ごとに上流経路に含まれる各ノードを連結順序に従って解析して各ノードが表すイベントを識別し、前記イベント履歴情報からイベント発生順序のパターンを１つ以上抽出する情報解析処理とをコンピュータに実行させること特徴とする。
【発明の効果】
【００１９】
本発明によれば、イベント履歴情報において経路の分岐又は経路の統合が発生した場合に、分岐経路ごとに分岐経路に含まれる各ノードを解析し、また、上流経路ごとに上流経路に含まれる各ノードを解析するため、効率的かつ包括的にイベントの発生経緯を解析することができる。
【発明を実施するための最良の形態】
【００２０】
実施の形態１．
本実施の形態及び以降の実施の形態では、イベントの発生による状態の変化（挙動）をグラフ構造をもつデータモデルとして管理されているデータ構造において、イベントＩＤと対象ＩＤの出現パターンから生成される検索条件式から等価な検索オートマトンに変換し、このオートマトンが生成する状態遷移表を用いて受理状態かどうかを判断して該当する対象かどうかを判断することにより、従来困難であった挙動の検索において複雑な検索条件式に基づく検索を可能にする仕組みを説明する。
また、挙動において分岐が発生した場合には重複した検索を行うことなく、効率よく検索することができる仕組みを説明する。
さらに、たとえば製造工程の過程で部品が製品に組み込まれることで別の視点で追跡する必要がある場合においては異なる視点での関係を管理することにより、視点を切り替えた追跡を可能にする仕組みを説明する。【００２１】
以下、本発明を図面に示した実施の形態を説明するが、本発明は図面に示した実施の形態に限定されるものではない。また本発明の実施の説明としては、いくつかのログを例として説明を行うが、本発明は履歴全般において適用することが可能である。【００２２】
図１に本実施の形態に係わる検索装置１００の構成図を示す。
なお、検索装置１００は、情報処理装置の例である。【００２３】
ログを収集する対象は特に限定しないが、たとえばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワークに接続されているすべての機器によって収集されたログ１０１を特定のマシン上に集積できるものとする。
図１では、ログ１０１は１つとしているが、複数あってもかまわない。
収集されたログ１０１に対して、挙動データ生成部１０２が、対象の挙動（ふるまい）を追跡するために適したグラフ構造を持つ挙動インデックス１０３を生成し、情報記憶部１１７が挙動インデックス１０３を記憶する。情報記憶部１１７は、例えば、検索装置１００内のメモリまたは外部記憶装置である。
挙動インデックス１０３は、詳細は後述するが、イベントの発生経緯の履歴を複数ノードの連結で表す情報である。挙動インデックス１０３には、一般に、２つ以上の後方のノードに連結する分岐ノード及び２つ以上の前方のノードから連結される統合ノードの少なくともいずれかが含まれる。【００２４】
また、検索実行ユーザはクライアント２００から検索条件式を入力する。
検索条件式は、それが正規表現に一意に変換可能なものであればどのような表現形式であってもかまわない。検索条件式は、抽出対象のイベント（抽出対象イベント）と抽出対象のイベントの出現順序が示される条件式である。検索条件式は、抽出条件の例である。
入力された検索条件式は正規表現変換部１０４によって正規表現形式に変換される。
正規表現変換部１０４は、抽出条件入力部の例である。
また、正規表現変換部１０４によって正規表現形式に変換された検索条件式は、検索オートマトン保持部１０５によって検索オートマトンに変換され、状態遷移表１０６が生成され、状態遷移表１０６が検索装置１００内の所定の記憶領域に記憶される。【００２５】
検索時は、挙動情報抽出部１０７が挙動インデックス１０３のデータを読み込み、評価部１１０で取得した挙動によって遷移する状態を取得し、検索条件式に該当するイベントの発生順序のパターンが挙動インデックス１０３の中に存在したかどうかを判定し、判定結果を検索結果記憶部１１３に記憶させる。
クライアント２００は、検索結果記憶部１１３に問い合わせることにより検索結果を利用することが可能である。【００２６】
本実施の形態及び以降の実施の形態で説明する部分一致検索法式において使用される各方式について、入退室など人間の行動ログから行動パターンを検索する場合を例として具体的に説明する。
正規表現に変換可能な形式で入力された行動パターンを表す検索条件式を正規表現変換部１０４は正規表現形式に変換する。
たとえば、門Ａから入って門Ｂから出た人を検索するための検索条件式の場合は、当該検索条件式は、メタキャラクタと挙動を表す文字から構成される「（入室）（門Ａ）．＊（退室）（門Ｂ）」などのような正規表現形式に変換される。【００２７】
検索オートマトン保持部１０５は、入力された正規表現検索条件式と等価な検索オートマトンに変換し、状態遷移表１０６を生成する。
状態遷移表とは、挙動情報の入力に対して状態から状態への遷移を記述した表である。【００２８】
評価部１１０は、状態評価部１１１および関係解析部１１２を含む。
状態評価部１１１は、生成された状態遷移表１０６を参照し、挙動インデックス１０３から挙動情報抽出部１０７によって抽出され、ノード種別判定部１０８から出力されたノードの情報（挙動情報）を順番に入力し、各ノードの状態を取得する。
そして、状態評価部１１１は、各ノードの状態をノード種別判定部１０８に応答する。
また、状態評価部１１１は、挙動インデックス１０３の各ノードの状態から導出される挙動インデックス１０３におけるイベントの発生順序のパターンが、検索条件式から生成された状態遷移表１０６の状態遷移のパターンに合致するか否かを判断し、イベントの発生順序のパターンが状態遷移表１０６の状態遷移のパターンに合致する場合に受理状態となる。
また、状態評価部１１１は、受理状態を取得すると現在探索中の挙動情報内に、指定した検索条件式に該当するものが存在したことを表す情報として該当する追跡対象（インスタンス）およびどの挙動で受理状態になったかを示すヒット位置を検索結果記憶部１１３に記憶させる。
また、関係解析部１１２では、検索条件式に指定されている行動パターンを検索する際に、人、機器、ファイルなどにまたがって検索する必要がある場合に、検索の範囲を切り替えながら検索することを可能にする。
なお、関係解析部１１２の詳細は、実施の形態４において説明する。【００２９】
ノード種別判定部１０８は、挙動情報抽出部１０７から抽出した挙動に対して分岐する挙動（分岐ノード）であるか、または統合する挙動（統合ノード）であるかを判定する。
挙動が分岐するとは、たとえばファイルを複製したことによって内容が継承され、異なるＩＤを持つものが複数生成されるような場合のことである。
統合とは、たとえば製造ラインで異なるＩＤを持つ原料が配合されて異なる１つのＩＤに統合されるような場合のことである。【００３０】
統合分岐ノード処理部１０９では、ノード種別判定部１０８のノード判定結果に従い、それが統合ノードあるいは分岐ノードである場合にノードの挙動ＩＤやノードの状態を記憶または呼び出し処理を行う。【００３１】
ここからは、さらに個々の機能について詳細に説明する。
そのためにまず検索装置１００において検索対象としている、挙動インデックス１０３のデータ構造について簡単に説明する。【００３２】
図２は、検索対象となる挙動インデックス１０３のデータ管理の構造を示したものである。
メイン２０１とは、挙動インデックス自体を表す親の構造体であり、挙動インデックス１０３を識別する。
クラス２０２は、この挙動インデックス１０３に存在するカテゴリを表すものであり、たとえばユーザ、場所、ファイル、機器などが該当する。
インスタンス２０３は、クラス２０２に属する実体を表すものであり、ユーザクラスであればインスタンスとは個人を一意に識別することが可能なユーザＩＤのようなものである。
挙動２０４とは、個々のインスタンスの実際の振る舞いを表すものであり、たとえば「入室後の状態」「退室後の状態」などである。
挙動インデックス１０３における各挙動２０４を、以降、挙動ノード又は単にノードとも呼ぶ。
また、挙動インデックス１０３における矢印２０５は挙動間の前後関係を表すものであり、「入室前の状態」と「入室後の状態」は「入室」というイベント２０５によって関係付けられていることになる。
本実施の形態では、個々のイベント情報は後ろ側の挙動ノードの構造体情報に格納される。【００３３】
挙動インデックス１０３の挙動ノードは、それぞれ、挙動構造体（図１０）に対応付けられている。
詳細は後述するが、挙動構造体には、挙動ノードのイベントの情報が含まれている。
上記の例であれば、「入室後の状態」という挙動ノードの挙動構造体には、「入室」というイベントが示されている。このように、各挙動ノードからはイベントが導かれる。
各挙動ノードが表すイベントは、ログ１０１のログデータに含まれているイベントである。
そして、挙動インデックス１０３における各挙動ノードの連結関係、各挙動ノードの挙動構造体に示されるイベントの情報から、ログ１０１のログデータに示されるイベントの発生経緯の履歴が導かれる。
このように、挙動インデックス１０３及び挙動構造体は、複数ノードの連結でログデータにおけるイベントの発生経緯を表すものであり、イベント履歴情報に相当する。【００３４】
図３は、挙動インデックスにおける最も単純な前後関係を表したものであり、あるクラスのあるインスタンスにおいて発生した挙動が発生した順番で単純に関係付けて管理されている。
図３に示すように、前方のノードが１つで、後方のノードが１つの挙動ノードを通常ノードとよぶ。【００３５】
図４は、階層構造をもつ関係を示す。
インスタンスＡ４０１は、ある挙動４０４の次のイベント４０８によってインスタンスＡ４０１以外の２つのインスタンス（インスタンスＢ４０２およびインスタンスＣ４０３）を生成している。
このような関係を階層関係とよび、後方のノードが２つ以上である挙動４０４を分岐ノードとよぶ。
また、イベント４０８は、分岐イベントとよぶ。
また、分岐ノードから分岐している経路（図４では、ノード４０５及びそれ以降のノードが連結している経路、ノード４０６及びそれ以降のノードが連結している経路、ノード４０７及びそれ以降のノードが連結している経路の３つ経路）を分岐経路とよぶ。【００３６】
図５は、図４と同様階層関係であるが、統合する場合の階層関係を示す。
インスタンスＡ５０１の挙動５０４、およびインスタンスＢ５０２の挙動５０５はイベント５０７によってインスタンスＣ５０３に統合されている。
このような、前方のノードが２つ以上である挙動５０６を統合ノードとよぶ。
また、イベント５０７は統合イベントとよぶ。
また、統合ノード５０６に合流する経路（図５では、ノード５０４からノード５０６への経路、ノード５０５からノード５０６への経路の２経路）を上流経路とよぶ。【００３７】
図６は、クラス間の関係を示す。
挙動インデックス１０３で管理する関係は一般にインスタンスの単位で管理される。
また、階層関係を持つ場合には異なるインスタンス間での関係が管理される。
これに加えて人、物、機器などを関係付けるためにクラス間での関係を管理する。
ユーザクラス６０１に属するユーザＡは挙動６０３を発生させたイベント６０５でファイルクラス６０２に属するファイルＩの挙動６０４と関係付けられる。
この関係によりユーザクラスからファイルクラスに検索対象範囲を切り替えることが可能になる。
クラスをまたがる検索対象範囲の切り替えについては、実施の形態４で説明する。【００３８】
次に、挙動インデックス１０３における各データの構造について述べる。【００３９】
図７は、メイン２０１のメイン構造体７００を示し、メイン構造体７００は、挙動インデックスが管理するクラス数７０１およびクラス構造体へのポインタを管理するクラス構造体ポインタリスト７０２をもつ。
クラス構造体ポインタリスト７０２をたどることにより、メイン構造体７００からすべてのクラスを検索することが可能である。【００４０】
図８は、挙動インデックス１０３におけるクラス２０２のクラス構造体８００を示す。
クラス構造体８００は、クラスを一意に識別するためのクラスＩＤ８０１、このクラスが管理するインスタンス２０３の個数を管理する、管理しているインスタンス数８０２、およびこのクラスに属するインスタンスの構造体へのポインタを管理するインスタンス構造体ポインタリスト８０３をもつ。
インスタンス構造体ポインタリスト８０３をたどることによりこのクラスに属するすべてのインスタンスを検索することが可能である。【００４１】
図９は、挙動インデックス１０３におけるインスタンス２０３のインスタンス構造体９００を示す。
インスタンス構造体９００では、インスタンスを一意に識別するインスタンスＩＤ９０１、このインスタンスが属するクラス２０２へのポインタを管理するクラス構造体へのポインタ９０２、このインスタンスに属する挙動数を管理する、管理している挙動数９０３、およびこのインスタンスに属する挙動構造体へのポインタを管理する挙動構造体ポインタリスト９０４を管理している。
挙動構造体ポインタリスト９０４をたどることにより、このインスタンスに属するすべての挙動を検索することが可能である。【００４２】
図１０には、挙動インデックス１０３における挙動２０４の挙動構造体１０００を示す。
挙動構造体１０００は、挙動を一意に識別する挙動ＩＤ１００１、この挙動が属するインスタンスへのポインタを管理するインスタンス構造体へのポインタ１００２、この挙動を発生させたイベントを示す一意に識別可能なイベントＩＤ１００３をもつ。
また、追跡のために必要な挙動間の関係を管理するためのデータとして、１つ後の挙動数１００４、１つ後の挙動ＩＤ配列１００５、１つ前の挙動数１００６、１つ前の挙動ＩＤ配列１００７を管理する。
また、検索範囲を切り替えるためのクラス間の関係を管理するためのデータとして、この挙動と関係するクラスの個数を管理する関連クラス数１００８およびそのクラスＩＤを管理するための関連クラスＩＤ１００９をもつ。
このデータ構造により関係があるすべての挙動について任意の挙動から任意の挙動まで検索可能である。【００４３】
なお、図７〜図１０に示した各構造体は、挙動インデックス１０３に対応付けられて情報記憶部１１７又は他の記憶領域に記憶されている。【００４４】
本実施の形態に係る検索装置１００では、まず、正規表現変換部１０４がクライアント２００からイベントの出現順序が示された検索条件を入力し、検索オートマトン保持部１０５が検索条件式に従って状態遷移表１０６を生成する。
そして、挙動情報抽出部１０７が、挙動インデックス１０３から解析対象のインスタンスから順次、挙動ノードを連結順序に従って抽出し、ノード種別判定部１０８が挙動情報抽出部１０７から抽出された解析対象の挙動ノードが通常ノード、分岐ノード、統合ノードのいずれであるかを判別する。
また、状態評価部１１１が、各挙動ノードを解析して各挙動ノードの状態（つまり、各挙動ノードが表象しているイベント）を判断し、状態の遷移パターンが状態遷移表１０６に合致するか否かを判定する。【００４５】
通常ノードが続いている間は、状態評価部１１１は、挙動ノードの連結順序に従って各挙動ノードの解析を行う。【００４６】
ノード種別判定部１０８が分岐ノードを識別した場合は、挙動情報抽出部１０７が分岐ノードから分岐する分岐経路ごとに分岐経路に含まれる各ノードを連結順序に従って抽出し、状態評価部１１１が分岐経路ごとに分岐経路に含まれる各ノードを解析して各ノードの状態を判断する。
より具体的には、統合分岐ノード処理部１０９が分岐ノード及び分岐経路の各々の情報を分岐統合位置記憶部１１４、分岐統合状態記憶部１１５に登録し、状態評価部１１１による解析が行われていない分岐経路の中から解析対象とする分岐経路を選択し、挙動情報抽出部１０７が、統合分岐ノード処理部１０９により選択された分岐経路に含まれる各ノードを前方のノードから順に連結順序に従って抽出する。統合分岐ノード処理部１０９は、選択した分岐経路に含まれる各ノードに対する状態評価部１１１の解析が終了した後に、新たな解析対象の分岐経路を選択する。【００４７】
また、ノード種別判定部１０８が統合ノードを識別した場合は、挙動情報抽出部１０７が統合ノードに合流する上流経路ごとに上流経路に含まれる各ノードを連結順序に従って抽出し、状態評価部１１１が上流経路ごとに上流経路に含まれる各ノードを解析して各ノードの状態を判断する。
より具体的には、統合分岐ノード処理部１０９が統合ノード及び合流経路の各々の情報を分岐統合位置記憶部１１４、分岐統合状態記憶部１１５に登録し、状態評価部１１１による解析が行われていない上流経路の中から解析対象とする上流経路を選択し、挙動情報抽出部１０７が、統合分岐ノード処理部１０９により選択された上流経路に含まれる各ノードを前方のノードから順に連結順序に従って抽出する。統合分岐ノード処理部１０９は、選択した上流経路に含まれる各ノードに対する状態評価部１１１の解析が終了した後に、新たな解析対象の上流経路を選択する。
また、挙動情報抽出部１０７は、統合ノードの全ての上流経路の解析が完了した後に、統合ノードの後方の各ノードの抽出を開始する。【００４８】
このように、挙動情報抽出部１０７、ノード種別判定部１０８、統合分岐ノード処理部１０９及び評価部１１０は、協働して、挙動インデックス１０３に含まれる各ノードの解析を行っており、挙動情報抽出部１０７、ノード種別判定部１０８、統合分岐ノード処理部１０９及び評価部１１０は、情報解析部として機能する。
なお、分岐ノードに対する処理の詳細は実施の形態２で説明し、統合ノードに対する処理の詳細は実施の形態３で説明する。【００４９】
図１１は、実施の形態１で説明する人の行動パターンを検索する場合の検索条件式１１０１、検索条件式から生成される状態遷移図１１０２、および検索対象となる挙動インデックス１１０３の例を示す。
状態遷移図１１０２は、状態遷移表１０６と等価な情報であり、以下、説明の簡明のため、状態遷移表の代わりに状態遷移図を用いて説明する場合がある。
挙動インデックス１１０３において、検索対象クラスはユーザであり、ユーザクラスに属するユーザ数は３名である。
ユーザは複製されることも統合されることもないので、分岐ノードまたは統合ノードは持たない。
この例で検索条件式１１０１に合致するイベント発生順序のパターンが存在するユーザインスタンスはユーザＣのみである。【００５０】
図１２は、図１１における人の行動パターン検索の処理をフローに表したものである。
ただし、すでに状態遷移表１０６は生成されているものとする。【００５１】
ステップ１２０１では、挙動情報抽出部１０７が、まず検索対象の挙動インデックス１１０３から検索対象であるユーザクラスのインスタンスを取得する。
挙動情報抽出部１０７は、例えば、クライアント２００からユーザクラスのインスタンスを取得することを指示され、クライアント２００からの指示に従って、ユーザクラスのインスタンスを取得する。【００５２】
次に、ステップ１２０２において、挙動情報抽出部１０７は、取得したユーザインスタンスの検索開始点となる挙動ノードを、取得したユーザインスタンスのインスタンス構造体９００（図９）の挙動構造体ポインタリスト９０４から抽出する。【００５３】
次に、ステップ１２０３において、ノード種別判定部１０８が、挙動情報抽出部１０７から抽出された挙動ノードの種別（通常ノード、分岐ノード、統合ノード）を判別するとともに、抽出した挙動ノードの情報（たとえば、挙動構造体１０００（図１０）のイベントＩＤ１００３）を状態評価部１１１に入力する。
ノード種別判定部１０８は、１つ前のノードの数が１つで１つ後のノードの数が１つであれば通常ノードと判定し、１つ後のノードの数が２つ以上であれば分岐ノードと判定し、１つ前のノードの数が２つ以上であれば統合ノードと判定する。
ノード種別判定部１０８は、挙動情報抽出部１０７から抽出された挙動ノードの挙動構造体１０００（図１０）の１つ前の挙動数１００６の項目を参照して、１つ前の挙動ノードの数を判断し、１つ後の挙動数１００４の項目を参照して、１つ後の挙動ノードの数を判断する。
本実施の形態で説明する挙動インデックス１１０３では、通常ノードのみなので、分岐ノードに対する処理、統合ノードに対する処理は行われない。分岐ノードに対する処理は実施の形態２で説明し、統合ノードに対する処理は実施の形態３で説明する。【００５４】
ステップ１２０４では、状態評価部１１１が、ノード種別判定部１０８から入力した情報により、遷移後の状態を取得する。
たとえば、状態評価部１１１がノード種別判定部１０８から図１１の挙動インデックス１１０３のユーザＡの２つ目の挙動（挙動ＩＤ：２）のイベントＩＤを入力した場合は、状態評価部１１１は入力したイベントＩＤから「扉１入室」というイベントを識別することができ、当該挙動（挙動ＩＤ：２）の状態が「扉１入室後の状態」と判断する。【００５５】
次に、状態評価部１１１は、ステップ１２０５において、ステップ１２０４で取得した状態が受理状態かどうかを判断し、受理状態であれば（ステップ１２０５でＹＥＳ）、ステップ１２０６で該当ユーザのＩＤを記憶領域に記憶させ、次のユーザの検索処理にうつる。このとき状態遷移はリセットする。
受理状態でない場合（ステップ１２０５でＮＯ）は、挙動情報抽出部１０７が、ステップ１２０７で現在検索中のユーザについて終端挙動まで検索したかどうかを判断し、次の挙動が存在する場合（ステップ１２０７でＮＯ）は、ステップ１２０２に戻り次の挙動を取得して検索処理を続行する。
一方、ステップ１２０７で終端挙動まで検索した場合は、ステップ１２０８で、挙動情報抽出部１０７が、次の検索対象インスタンスであるユーザが存在するかどうかを判断し、ユーザが存在しない場合は終了し、異なるユーザが存在する場合は状態遷移をリセットし、ステップ１２０１に戻り新しいユーザを取得して検索処理を開始する。【００５６】
図１３は、図１１の実施の形態１における人の行動パターン検索で挙動の動きによって状態がどのように遷移していくかを表したものである。
ノード内の文字は状態遷移図１１０２における状態を表す。
ユーザＡ１３０１は、検索開始の状態「ｓ」から「扉１入室」により状態「ｐ２」に遷移し、「ログイン」では状態は「ｐ２」のままで、「扉２退室」では退室のみに対して「ｐ３」に遷移する。
ユーザＢ１３０２は、開始状態「ｓ」から「扉１入室」で状態「ｐ２」に遷移し、「ログイン」「ログアウト」では状態は「ｐ２」のままで、「扉３退室」では退室のみに対して「ｐ３」に遷移する。
ユーザＣ１３０３は、開始状態「ｓ」から「扉１入室」で状態「ｐ２」に遷移、「ログイン」では状態は「ｐ２」のまま、「扉１退室」で受理状態に遷移する。
したがって、実施の形態１の図１１における行動パターン検索の例ではユーザＣ１３０３のみが検索条件式に該当する。【００５７】
実施の形態２．
本実施の形態では、分岐ノードをもつ挙動インデックス１０３の検索に適用した例を説明する。検索装置１００の構成図は実施の形態１と同様に図１である。【００５８】
図１４は、この実施の形態２で説明するファイルの操作パターンをする場合の検索条件式１４０１、状態遷移図１４０２および挙動インデックス１４０３の一つの例を示す。
検索対象はファイルであり、ファイルクラスに属するインスタンスの数は「ファイルＡ」、「ファイルＢ」、「ファイルＣ」の３つとしている。
ファイルは、コピーイベントなどにより複製されるため分岐ノードを持つ点が特徴であり、統合分岐ノード処理部１０９が分岐処理を行う。
検索条件式１４０１では、コピーをした後印刷されたファイルを検索することが示されている。
図１４の挙動インデックス１４０３において、検索条件式１４０１に合致するイベント発生順序のパターンが存在するファイルインスタンスはファイルＢのみである。【００５９】
図１５は、図１４におけるファイルの操作パターン検索の処理をフローに表したものである。
ただし、すでに状態遷移表１０６は生成されているものとする。
また、分岐ノード以外のノードに対する検索処理は実施の形態１と同様であるため、ここでは分岐ノードに関する処理についてのみ説明する。【００６０】
ステップ１５０１では、ノード種別判定部１０８が、取得した挙動の挙動構造体１０００（図１０）がもつ１つ後の挙動数１００４を参照し、２個以上存在する場合は現在処理中の挙動が分岐ノードであると判断する。
分岐ノードである場合は、ステップ１５０２で、統合分岐ノード処理部１０９が、分岐ノードの挙動構造体１０００の一時変数に必要な情報を格納し、ステップ１５０３で、統合分岐ノード処理部１０９が、この挙動情報構造体１０００へのポインタを分岐ノードスタック（図１７）に格納し、挙動情報抽出部１０７が次の挙動の検索処理にうつる。【００６１】
図１６は、解析対象の挙動ノードが分岐ノードである場合に、挙動構造体の一時変数に追加される情報を示す。【００６２】
状態１６０１は、この分岐ノードのもつ情報を状態評価部１１１に入力した際に状態評価部１１１から得られた応答である遷移状態を格納する。
例えば、図１４の挙動インデックス１４０３におけるファイルＢの２つ目の挙動ノード（挙動ＩＤ：６）であれば、統合分岐ノード処理部１０９は、「ファイルＢの保存後の状態」という応答を状態評価部１１１から取得し、この「ファイルＢの保存後の状態」を状態１６０１に格納する。【００６３】
残りの未処理挙動数１６０２は、状態評価部１１１がノードの解析を行っていない未解析の分岐経路の数を管理する項目である。
分岐経路の解析が終了する度に、残りの未処理挙動数１６０２の数が減っていく。【００６４】
直近に処理したインデックス１６０３は、次に解析を行う分岐経路を管理する項目である。
より具体的には、直近に処理したインデックス１６０３は、挙動構造体１０００内の「１つ後の挙動ＩＤ配列１００５」に示される挙動ＩＤの配列における序列（何番目のインデックスか）に基づいて、次に解析を行う挙動ノードを特定する。
たとえば、分岐ノードの１つ後の挙動ノードの数が２つである場合は、これら２つの挙動ノードのＩＤは、「１つ後の挙動ＩＤ配列１００５」の０番目のインデックスと１番目のインデックスに格納されている。図１４の挙動インデックス１４０３のファイルＢの分岐ノード（挙動ＩＤ：６）の例だと、「１つ後の挙動ＩＤ配列１００５」の０番目のインデックスにＩＤ：７が格納され、１番目のインデックスにＩＤ：９が格納されている。
そして、「１つ後の挙動ＩＤ配列１００５」の０番目のインデックスにＩＤが格納されている挙動ノード（図１４の例だと、ＩＤ：７のノード）に対する解析の際に、直近に処理したインデックス１６０３の値が「０」（０番目のインデックス）になる。
そして、０番目のインデックスにＩＤが格納されている挙動ノードから連鎖する分岐経路の各ノードの解析が終了すると、分岐ノードに戻るが、このときに、直近に処理したインデックス１６０３の値を参照し、０番目のインデックスの挙動ノードに対する処理が終了していると判断することができ、次に解析の対象とする挙動ノードが１番目のインデックスにＩＤが格納されている挙動ノード（図１４の例だと、ＩＤ：９のノード）であると判断することができる。【００６５】
なお、図１６に示す一時変数は生成時は初期化されており、再度分岐ノードに戻ることがなくなった際には初期化される。【００６６】
図１７はスタックのイメージ図である。
スタックには分岐ノードと判定された挙動構造体へのポインタを格納する。
ここでは、汎用的に利用されるポインタリストを使い格納する。
ポインタリストには最後尾１７０２に新しいポインタを追加する関数、先頭１７０１のポインタを取り出す関数、最後尾のポインタを取り出す関数、先頭から何番目かを指定して取り出す関数が用意されているものとする。
分岐ノード用のスタックとして用いる場合には、追加時には常に最後尾に追加し、取り出す場合も常に最後尾から取り出すことになる。【００６７】
次に、分岐ノードに戻って検索する場合の検索方式について説明する。
図１８は、ある分岐経路に対する解析を終了した後に分岐ノードに戻って異なる分岐経路について検索する処理のフロー図である。【００６８】
ステップ１８０１において、統合分岐ノード処理部１０９は、スタックとして使用しているポインタリストを参照し分岐ノードである挙動構造体へのポインタが存在するどうかを確認する。このポインタは、図１５のステップ１５０３で接続したポインタである。
存在しなければ現在処理中のインスタンスについての検索処理は終了する。
存在する場合は、ステップ１８０２において、統合分岐ノード処理部１０９が、分岐ノードである挙動情報の構造体へのポインタをスタックから取得する。【００６９】
次に、ステップ１８０３において、統合分岐ノード処理部１０９が、分岐ノードである挙動ノードの挙動構造体１０００に格納されている一時変数から直近に処理したインデックス１６０３（図１６）をインクリメントし、１つ後の挙動ＩＤ配列１００５から、インクリメント後のインデックス番号に対応するＩＤを次の検索対象の挙動ノードのＩＤとして取得する。
このとき、統合分岐ノード処理部１０９は、残りの未処理挙動数１６０２を参照し、この分岐ノードに対して未処理の挙動ノードがなく、検索すべき分岐経路が存在しない場合（ステップ１８０３でＹＥＳ）は、一時変数を初期化し、スタックからこの分岐ノードへのポインタを削除する（ステップ１８０９）。【００７０】
次に、ステップ１８０４では、状態評価部１１１が、分岐ノードの状態を取得し、次のステップ１８０５で、挙動情報抽出部１０７が、分岐ノードの１つ後の挙動の挙動構造体を取得する。
次に、ステップ１８０６において、ノード種別判定部１０８が、挙動情報抽出部１０７から抽出された挙動ノードの種別（通常ノード、分岐ノード、統合ノード）を判別するとともに、抽出した挙動ノードの情報（たとえば、挙動構造体１０００（図１０）のイベントＩＤ１００３）を状態評価部１１１に入力する。
そして、状態評価部１１１は、ステップ１８０７において、取得した挙動の情報を入力しながら分岐ノード以降の分岐経路の各ノードの解析を継続する。
ノード種別判定部１０８が、分岐ノードを抽出した場合は、図１５に示した処理が行われる。また、統合ノードを抽出した場合は実施の形態３に示す処理が行われる。
ステップ１８０８において、挙動情報抽出部１０７が、終端のノードであることを確認すると、再度ステップ１８０１でスタックを参照する。スタックに分岐ノードが存在する限り同様の検索処理を繰り返す。
また、ステップ１８０８で終端でない場合は、ステップ１８０５に戻り、挙動情報抽出部１０７が、次の挙動の共同構造体を抽出する。【００７１】
図１９は、図１４のファイルの検索例を用いてそれぞれの挙動における状態の遷移を示す。
検索条件式として指定したファイル操作パターンに該当するインスタンスは受理状態を示すファイルＢのみである。【００７２】
図２０は、分岐ノードを持つ挙動インデックス２０００の例を示し、図２１は、挙動インデックス２０００に対して図１４で指定した検索条件式１４０１を用いて検索した場合の分岐ノードスタック２０１０の変化と分岐ノードで認識する次の挙動ＩＤ２０１１の変化を示す。
なお、図２１の次の挙動ＩＤ２０１１は、説明のために設けた項目であり、検索装置１００内で次の挙動ＩＤ２０１１という項目を直接管理している必要はない。
検索装置１００では、図１６に示す「残りの未処理挙動数１６０２」の情報と、「直近に処理したインデックス１６０３」の情報と、図１０に示す「１つ後の挙動ＩＤ配列１００５」の情報から、図２１の「次の挙動ＩＤ２０１１」に相当する内容を導出することができる。【００７３】
図２０及び図２１において、ステップ２００１で、分岐ノードを識別するとスタック（図１７）に挙動ＩＤ＝１の挙動構造体へのポインタを格納する。
この時点では、この分岐ノードに対して検索対象となる次の挙動ＩＤ２０１１はＩＤ＝２および３である。
ステップ２００２では、次の挙動ＩＤ＝２は削除されるが、まだ挙動ＩＤ＝３が残っているためスタックから分岐ノードの挙動構造体へのポインタを削除することはしない。
ステップ２００２までの処理が完了するとスタック（図１７）を参照し、分岐ノードである挙動ＩＤ＝１を取得する。
挙動ＩＤ＝１に格納されている次の挙動ＩＤ２０１１はＩＤ＝３のみであるのでステップ２００３にすすむ。
そのとき、次の挙動ＩＤ＝３は削除され、この時点で次の挙動ＩＤ２０１１が存在しないため、スタックから挙動ＩＤ＝１の分岐ノードの挙動構造体へのポインタを削除する。【００７４】
ステップ２００４まで処理がすすむと再度分岐ノードを検出し、挙動ＩＤ＝４を分岐ノードとし、この分岐ノードの挙動構造体へのポインタスタックに格納し、この分岐ノードの次の挙動ＩＤ２０１１としてはＩＤ＝５および７を格納する。
ステップ２００５にすすむ際に、分岐ノードの次の挙動ＩＤ＝５は削除されるが、７が残っているため分岐ノードの共同構造体へのポインタをスタックから削除することはせず、検索を実行する。
終端ステップ２００６の処理を終了するとスタックを参照し、分岐ノードである挙動ＩＤ＝４を取得する。
次の挙動２０１１がＩＤ＝７であるためステップ２００７へすすむ。
このとき挙動ＩＤ＝４の次の挙動ＩＤが存在しなくなるため、スタックから挙動ＩＤ＝４を削除する。
終端ステップ２００８の処理を終了するとスタックを参照するが、このとき分岐ノードは存在しないため、すべての処理を終了する。【００７５】
このように、本実施の形態によれば、挙動インデックスに分岐ノードが含まれている場合にも、全分岐経路のノードを抽出してノードの解析を行うため、挙動インデックスに含まれているイベント発生順序の全てのパターンを網羅することができ、検索条件式に合致するパターンを効率的に抽出することができる。【００７６】
実施の形態３．
本実施の形態では、統合ノードをもつ挙動インデックス１０３の検索に適用した例を説明する。検索装置１００の構成図は実施の形態１と同様に図１である。【００７７】
製造工程ログでは、実施の形態２で説明した分岐とともに原料の配合工程などによる挙動の統合が見られる。
図２２は、製造工程ログを例にした検索条件式２１０１、状態遷移図２１０２および挙動インデックス２１０３を示す。
挙動２１０５は、複数の挙動が統合する統合ノードである。
またルート挙動２１０４は個々の追跡経路における先頭挙動である。
この例で指定した検索条件式２１０１に合致するイベント発生順序のパターンが存在する原材料インスタンスは原料Ｂである。【００７８】
図２３は、統合ノードを含む挙動インデックスに対する検索方式のフロー図である。
なお、統合ノード以外のノードに対する検索処理は実施の形態１及び実施の形態２と同様であるため、ここでは統合ノードに関する処理についてのみ説明する。【００７９】
ステップ２２０１では、ノード種別判定部１０８が、統合ノードかどうかを判定する。
統合ノードかどうかの判定は、挙動構造体における１つ前の挙動数１００６が２以上の場合に統合ノードと判断する。
統合ノードである場合は、ステップ２２０２で、統合分岐ノード処理部１０９が、統合ノードの挙動構造体１０００の一時変数に統合ノードの状態を記憶し、ステップ２２０３で統合ノード用スタックに統合ノードである挙動構造体へのポインタを格納する。一時変数は図１６に示す通りであり、スタックも図１７に示す通りである。【００８０】
ステップ２２０４において、挙動情報抽出部１０７が、これまで辿ってきたルートと異なるルートの挙動を取得する。
たとえば、図２２の挙動インデックス２１０３において、ＩＤ＝５の挙動、ＩＤ＝６の挙動の順に処理した後に、ノード種別判定部１０８がＩＤ＝９の挙動２１０５を統合ノードと判定した場合に、挙動情報抽出部１０７は、異なるルートの挙動であるＩＤ＝７の挙動２１０４を取得する。【００８１】
次に、ステップ２２０５において、挙動情報抽出部１０７が、個々の親挙動から統合ノードまでを走査し、状態評価部１１１が統合ノードまでの各挙動の状態を取得するとともに統合ノードでの状態を取得し、また、統合分岐ノード処理部１０９が、状態評価部１１１により取得された統合ノードの状態がそれまでに取得された状態と異なる状態であれば、統合ノードの一時変数に格納する。
たとえば、図２２の挙動インデックス２１０３において、ＩＤ＝７の挙動、ＩＤ＝８の挙動を経てＩＤ＝９の挙動に至った際に、このときに状態評価部１１１により取得されたＩＤ＝９の挙動の状態（２回目の状態）が、ＩＤ＝５の挙動、ＩＤ＝６の挙動を経て取得されたＩＤ＝９の挙動（１回目の状態）と異なっている場合に、統合分岐ノード処理部１０９は、２回目の状態を一時変数に格納する。
なお、１回目の状態は、ステップ２２０２で一時変数に格納されている。【００８２】
次に、挙動情報抽出部１０７は、ステップ２２０６において、更に別のルートがあるか否かを判断し、更に別のルートがある場合は、更にそのルートでの統合ノードまでの検索を実行し、存在しない場合は統合ノード以降（統合ノードの後方のノード）の検索を実行する。
統合ノード以降の検索は、状態評価部１１１が、統合ノードが一時変数に格納している状態の個数と同じ回数だけ終端まで各ノードの状態を解析し、検索条件式に該当するかどうかを判断する。【００８３】
図２４は、製造ログの挙動インデックス２３００の例を示し、図２５は、製造ログの挙動インデックス２３００を検索した場合の一時変数に格納された状態と統合ノードスタックの変化を表す。
本例は原料Ａ、Ｂ、Ｃ、Ｄ、Ｅから製品を製造する工程であり、検索条件式は図２２の２１０１と同じである。
挙動２３０１および挙動２３０２がこの挙動インデックスにおける統合ノードである。
なお、ノード内の数値は挙動を識別する挙動ＩＤである。【００８４】
図２４の原料Ａで経路２３０６に沿って検索することにより統合ノード２３０１を検出し、統合ノード２３０１の挙動構造体へのポインタを統合ノードスタックに格納する。
また、検索の結果統合ノードで得られた状態ｐ０を統合ノードの一時変数に格納する。
統合ノード２３０１に対して挙動ＩＤ＝１と異なるルートの挙動として挙動ＩＤ＝３を取得し、経路２３０７に沿って統合ノードまで検索し状態ｐ０を取得する。
この状態は経路２３０６に沿って検索して取得した状態と同じであるため、状態変数には格納しない。【００８５】
次に、統合ノード２３０１以降の経路２３０８に沿って次の統合ノード２３０２まで検索する。
このとき統合ノードの一時変数に格納されている状態はｐ０のみであるため、統合ノードの一時変数から状態ｐ０を削除するとともに、統合ノードスタックから統合ノードである挙動ＩＤ＝５を削除する。
経路２３０８に沿って統合ノード２３０２まで検索した結果取得した状態はｐ１であるため、統合スタックに統合ノード２３０２である挙動ＩＤ＝９を格納し、同時に統合ノード２３０２の一時変数に取得した状態ｐ１を格納する。【００８６】
統合ノード２３０２に対してルート挙動２３０５を取得する。
次に、挙動２３０５から経路２３０９に沿って統合ノード２３０２まで検索し、統合ノード２３０２で取得した状態ｐ２を統合ノードの一時変数に格納する。ここでは、統合ノード２３０２の２回目の状態ｐ２が、１回目の状態ｐ１と異なっている例を示している。
この時点で統合ノード２３０２の一時変数には２つの状態ｐ１、ｐ２が格納されている。【００８７】
統合ノードまでの検索は終了したので統合ノード２３０２以降の経路２３１０に沿って終端まで検索を実行する。
統合ノード２３０２の状態変数に格納された状態はｐ１、ｐ２の２種類あるため経路２３１０は統合ノード２３０２を始点として２回同じ経路を検索しなければならない。
１回目の検索では状態ｐ１による検索を実行するとともに一時変数からｐ１を削除する。
２回目の検索では状態ｐ２からの検索を実行するとともに、状態変数ｐ２を削除する。
統合ノード２３０２の状態変数はすべて削除されたため、統合ノードをスタックから削除する。
スタックを参照して統合ノードが存在しないことを確認し、検索を終了する。【００８８】
このように、本実施の形態によれば、挙動インデックスに統合ノードが含まれている場合にも、全上流経路のノードを抽出してノードの解析を行うため、挙動インデックスに含まれているイベント発生順序の全てのパターンを網羅することができ、検索条件式に合致するパターンを効率的に抽出することができる。【００８９】
また、本実施の形態によれば、たとえば製造工程の過程で部品が製品に組み込まれることで別の視点で追跡する必要がある場合においては異なる視点での関係を管理することにより、視点を切り替えた追跡が可能となる。【００９０】
実施の形態４．
本実施の形態では、特定のクラス（カテゴリー）に属する挙動インデックス（イベント履歴情報）を他のクラスの挙動インデックスに対応付け、あるクラスの挙動インデックスのノードを解析している際に、解析中の挙動インデックスが他クラスの挙動インデックスに対応付けられている場合に、対応付けられている他クラスの挙動インデックスを抽出し、抽出した他クラスの挙動インデックスのノードを解析し、２つ以上のクラスに属する２つ以上の挙動インデックスのノードの組み合わせに基づきイベント発生順序のパターンを１つ以上抽出し、検索条件式との照合を行う例を説明する。【００９１】
図２６は、本実施の形態に係る検索装置１００の構成例を示す。
図２６では、クラス間関係定義ファイル１１６が追加されている点が図１との違いである。
また、本実施の形態では、関係解析部１１２の動作が加わる。
関係解析部１１２は、検索条件式として指定された行動パターンに従って、人、機器、ファイルなどにまたがって検索する必要がある場合に、クラス間関係定義ファイル１１６の情報をもとに検索の範囲を切り替えながら検索することを可能にする。【００９２】
つまり、実施の形態１〜３においては同一クラス内での検索のみを対象としていたが、実施の形態４では異なるクラス間での関係構造を用いた検索方式について説明する。
図２７は、実施の形態４に係わる検索条件式２４０１、状態遷移図２４０２、挙動インデックス２４０３である。【００９３】
図２７において、検索条件式２４０１は、コピーされた後、印刷され、複写機１で複写をされたファイルクラスに属するインスタンスを検索するための検索条件式である。
挙動インデックス２４０３は、ファイルクラス２４０４、ユーザクラス２４０５、機器クラス２４０６を持つ。
ファイルクラス２４０４には３つのファイルインスタンス、ユーザクラス２４０５には２つのユーザインスタンス、機器クラス２４０６には２つの機器インスタンスが存在する。
なお、四角内数字１〜２４は挙動ＩＤを示す。【００９４】
検索条件式２４０１の追跡対象クラスはファイルクラス２４０４であるため、挙動情報抽出部１０７がファイルクラスに属するインスタンスの始点挙動から発生順に挙動を取得し、ノード種別判定部１０８がノード種別を判定し、状態評価部１１１に各ノードの情報を順次入力する。
ファイルクラスのインスタンスの挙動にはコピーイベントと印刷イベントが記録されているが、複写イベントについては記録がない。
したがって、ファイルクラスの範囲での検索では検索条件式２４０１に該当するインスタンスを取得することはできない。
そこで、印刷イベント発生後の複写イベントについては、関係解析部１１２が、クラス間関係定義ファイル１１６のクラス間関係定義を使って検索対象となるクラスをファイルクラス２４０４からユーザクラス２４０５に切り替えて検索する。【００９５】
図２７をもとにクラス間関係を使った検索における状態評価部１１１への入力情報抽出手順を述べる。
まず、クライアント２００がクラス間関係定義ファイル１１６で検索条件式ＩＤごとに検索範囲クラスの切り替えを定義する。
図２８に示すクラス間関係定義ファイル１１６の定義例２５０１は、図２７の検索条件式２４０１と対応づけて定義するものであり、印刷イベントは、ファイルクラスからユーザクラスに検索範囲を切り替えることが定義されている。【００９６】
関係解析部１１２は、定義例２５０１から挙動の印刷イベントを判断すると現在検索中のクラスがファイルクラスである場合はユーザクラスに視点を切り替え、挙動情報抽出部１０７は切り替え後のユーザクラスの挙動を挙動インデックスから抽出する。
また、関係解析部１１２による検索範囲の切り替え時に、ファイルクラスの挙動構造体はクラス間関係スタックに記憶され、切り替え後の検索が終端まで終了すれば、再度スタックから検索クラスを切り替えた時点の挙動を読み込みクラスを切り替えることなく検索を続行する。【００９７】
たとえば図２７において、状態評価部１１１がファイルクラス２４０４を対象とした検索で印刷イベント２４０７を識別するとその時点で、関係解析部１１２がクラス間関係定義ファイル１１６の定義に基づき、検索対象クラスをユーザクラス２４０５に切り替え、挙動情報抽出部１０７がユーザクラスのユーザＡインスタンスの挙動、ユーザＢインスタンスの挙動をノードの連結順序に従って抽出し、状態評価部１１１は、ユーザＡのＩＤ＝１１の挙動を得た際、またはユーザＢのＩＤ＝１５の挙動を得た際に、ユーザクラス２４０５の挙動をファイルクラス２４０４の挙動に連結することができる。【００９８】
また、インスタンス構造体９００に、他クラスで関連するインスタンスのＩＤを管理する項目（以下、「他クラス関連インスタンスＩＤ」と表記する）を設ければ、特定のインスタンスから他クラスの特定のインスタンスに検索範囲を切り替えることができる。
たとえば、図２７の挙動インデックス２４０３において、ファイルＩＩＩインスタンスのインスタンス構造体の他クラス関連インスタンスＩＤにユーザＢインスタンスのインスタンスＩＤが格納されていれば、ファイルＩＩＩからユーザＢに検索範囲を切り替えることができる。
更に、挙動構造体１０００に、他クラスで関連する挙動のＩＤを管理する項目（以下、「他クラス関連挙動ＩＤ」と表記する）を設ければ、特定の挙動から他クラスの特定の挙動に検索範囲を切り替えることができる。
たとえば、図２７の挙動インデックス２４０３において、ファイルＩＩＩインスタンスのＩＤ＝７の挙動の挙動構造体の他クラス関連挙動ＩＤにユーザＢインスタンスの挙動ＩＤ＝１５が格納されていれば、矢印２４０８に示されるように、ファイルＩＩＩのＩＤ＝７の挙動からユーザＢのＩＤ＝１５の挙動に検索範囲を切り替えることができる。【００９９】
ユーザＢでは挙動１５の後に発生するイベントが複写イベントであり、この複写イベントは複写機１で処理されたものであれば、検索条件式２４０１は受理状態となる。
仮に検索対象クラスをユーザクラスに切り替えて検索した後、終端まで受理状態にならない場合は、挙動情報抽出部１０７は、クラス間関係スタックから記憶した挙動８を取得し、再度８からファイルクラス２４０４内での検索を実行する。
このとき、クラス間関係スタックから挙動ＩＤ＝８は削除される。【０１００】
本例では、２つのクラスを切り替えた例について説明したが切り替え可能なクラス数には制限はなく、いずれもクラス間関係定義ファイル１１６に定義されていれば可能である。このため、３つ以上のクラスの間で検索範囲を切り替えることも可能である。
つまり、検索範囲をファイルクラスからユーザクラスに切り替え、更に、ユーザクラスから機器クラスに切り替えることも可能である。
また検索のクラス範囲を切り替える場合は検索範囲が膨大になるため、切り替えから一定時間内、あるいは一定挙動数内などで制限を加えることによって範囲を絞ることが可能である。【０１０１】
ここで、以上の実施の形態１〜４で説明した内容をまとめると以下のようになる。【０１０２】
実施の形態１〜４では、履歴データ（ログ）の前後関係を管理し対象ごとの動作（イベント）を発生順に追跡するためのデータ構造を有する履歴追跡型データをイベントの発生パターンに基づいて検索する部分一致検索システムを説明した。
より具体的には、部分一致検索システムが、
動作と対象のＩＤから構成された検索条件式を記憶して構文解析し、入力された検索条件式と等価な検索オートマトンであって、検索条件式から状態遷移表を生成し、入力された状態とＩＤから遷移状態テーブルを使用して次に遷移するノードの状態を取得し、すべてのノードに関する状態取得を終了した場合において、前記状態遷移が前記検索条件式に適合することを示す対象のＩＤを出力するためのノード種別判定部、分岐ノード処理部、統合ノード処理部、評価判定部、関係解析部を含むことを説明した。【０１０３】
また、実施の形態１〜４で説明した部分一致検索システムは、状態遷移表を使用し、入力に対して得られた状態からそれが受理状態かどうかを判断し、受理状態の場合はそのノードのＩＤを記憶領域に記憶させ、すべてのノードの検索を終了した時点で受理状態を認識した数とヒット位置を返すことを説明した。【０１０４】
また、実施の形態１〜４では、走査したノードの種別を、１つ前のノード数および１つ後のノード数がそれぞれ１の場合に「通常ノード」、１つ前が１、１つ後が２以上の場合を「分岐ノード」、１つ前が２以上、１つ後が１の場合を「統合ノード」に分類し判断する、部分一致検索システムを説明した。【０１０５】
また、実施の形態１〜４で説明した部分一致検索システムでは、ノード種別判定部が、解析中のノードを「分岐ノード」と判定した場合において、分岐ノードにおける１つ後のすべてのノードの情報と前記分岐ノードでの状態をノード情報数分記憶領域に記憶し、分岐ノードより後方の処理については記憶領域から最も最近に保存した分岐ノード情報と状態を記憶領域から取り出し当該ノードから状態遷移を取得することを説明した。【０１０６】
また、実施の形態１〜４で説明した部分一致検索システムでは、ノード種別判定部が、解析中のノードを「統合ノード」と判定した場合において、統合ノードのすべての親ノードを取得し、前記親ノードから統合ノードまでを前記状態遷移表から遷移状態を取得し、親ノード個数分記憶し、異なる状態数に関して統合ノード以降の判定をすることを説明した。【０１０７】
また、実施の形態１〜４で説明した部分一致検索システムでは、関係解析部が事前に定義したクラス間の関係定義を読み込み、検索対象クラスを検索中に切り替えながら検索することを説明した。【０１０８】
最後に、実施の形態１〜４に示した検索装置１００のハードウェア構成例について説明する。
図２９は、実施の形態１〜４に示す検索装置１００のハードウェア資源の一例を示す図である。
なお、図２９の構成は、あくまでも検索装置１００のハードウェア構成の一例を示すものであり、検索装置１００のハードウェア構成は図２９に記載の構成に限らず、他の構成であってもよい。【０１０９】
図２９において、検索装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。【０１１０】
通信ボード９１５は、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されていても構わない。【０１１１】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。【０１１２】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。【０１１３】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
検索装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。【０１１４】
上記プログラム群９２３には、実施の形態１〜４の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。【０１１５】
ファイル群９２４には、実施の形態１〜４の説明において、「〜の解析」、「〜の判断」、「〜の判別」、「〜の比較」、「〜の評価」、「〜の抽出」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜４で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。【０１１６】
また、実施の形態１〜４の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１〜４の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１〜４の「〜部」の手順や方法をコンピュータに実行させるものである。【０１１７】
このように、実施の形態１〜４に示す検索装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【図面の簡単な説明】
【０１１８】
【図１】実施の形態１に係わる検索装置の構成例を示した図。
【図２】実施の形態１に係わるデータ構造の例を示した図。
【図３】実施の形態１に係わる順序関係構造を示した図。
【図４】実施の形態１に係わる階層関係構造を示した図。
【図５】実施の形態１に係わる階層関係構造を示した図。
【図６】実施の形態１に係わるクラス間関係構造を示した図。
【図７】実施の形態１に係わる挙動インデックスメイン構造体を示した図。
【図８】実施の形態１に係わるクラス構造体を示した図。
【図９】実施の形態１に係わるインスタンス構造体を示した図。
【図１０】実施の形態１に係わる挙動構造体を示した図。
【図１１】実施の形態１に係わる検索オートマトンおよび挙動インデックスを示した図。
【図１２】実施の形態１の処理フロー図。
【図１３】実施の形態１における状態遷移図。
【図１４】実施の形態２に係わる検索オートマトンおよび挙動インデックスを示した図。
【図１５】実施の形態２に係わる分岐ノード処理フロー図。
【図１６】実施の形態２に係わる分岐ノード状態管理変数。
【図１７】実施の形態２に係わる分岐ノード用スタック。
【図１８】実施の形態２に係わる分岐ノード以降処理フロー図。
【図１９】実施の形態２に係わる状態遷移図。
【図２０】実施の形態２に係わる分岐ノードを含む挙動インデックスを示した図。
【図２１】実施の形態２に係わるスタックおよび状態管理変数の変化を示した図。
【図２２】実施の形態３に係わる検索オートマトンおよび挙動インデックスを示した図。
【図２３】実施の形態３に係わる統合ノード処理フロー図。
【図２４】実施の形態３に係わる統合ノードを含む挙動インデックスを示した図。
【図２５】実施の形態３に係わるスタックおよび状態管理変数の変化を示した図。
【図２６】実施の形態４に係わる検索装置の構成例を示した図。
【図２７】実施の形態４に係わる検索オートマトンおよび挙動インデックスを示した図。
【図２８】実施の形態４に係わる検索対象クラス切り替えの定義ファイルを示した図。
【図２９】実施の形態１〜４に係わる検索装置のハードウェア構成例を示した図。
【符号の説明】
【０１１９】
１００  検索装置、１０１  ログ、１０２  挙動データ生成部、１０３  挙動インデックス、１０４  正規表現変換部、１０５  検索オートマトン保持部、１０６  状態遷移表、１０７  挙動情報抽出部、１０８  ノード種別判定部、１０９  統合分岐ノード処理部、１１０  評価部、１１１  状態評価部、１１２  関係解析部、１１３  検索結果記憶部、１１４  分岐統合位置記憶部、１１５  分岐統合状態記憶部、１１６  クラス間関係定義ファイル、１１７  情報記憶部、２００  クライアント。
【図１】
2010097945.tif 000003
【図２】
2010097945.tif 000004
【図３】
2010097945.tif 000005
【図４】
2010097945.tif 000006
【図５】
2010097945.tif 000007
【図６】
2010097945.tif 000008
【図７】
2010097945.tif 000009
【図８】
2010097945.tif 000010
【図９】
2010097945.tif 000011
【図１０】
2010097945.tif 000012
【図１１】
2010097945.tif 000013
【図１２】
2010097945.tif 000014
【図１３】
2010097945.tif 000015
【図１４】
2010097945.tif 000016
【図１５】
2010097945.tif 000017
【図１６】
2010097945.tif 000018
【図１７】
2010097945.tif 000019
【図１８】
2010097945.tif 000020
【図１９】
2010097945.tif 000021
【図２０】
2010097945.tif 000022
【図２１】
2010097945.tif 000023
【図２２】
2010097945.tif 000024
【図２３】
2010097945.tif 000025
【図２４】
2010097945.tif 000026
【図２５】
2010097945.tif 000027
【図２６】
2010097945.tif 000028
【図２７】
2010097945.tif 000029
【図２８】
2010097945.tif 000030
【図２９】
2010097945.tif 000031
【国際調査報告】
2010097945.tif 000032
2010097945.tif 000033
2010097945.tif 000034
2010097945.tif 000035