(57)【要約】【課題】分析処理の中間段階で生成されるデータを効率よく保存して中間データを再利用することを目的とする。【解決手段】分析の中間段階で生成されたデータを保存しておき、保存したデータに対するフィードバック情報を定量化したものを評価値として受け付け、評価値が与えられなかった中間データについては優先的に削除する一方で、特に高い評価値を受け付けた中間データに対しては、類似するデータの分析処理を行い、比較対象となるデータの分析や派生的に想定される分析が高速に行えるように、バックグラウンド処理で中間データの自動管理を行う。【選択図】図１９
2011002911.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと記憶装置を備えた計算機で、素データを分析して分析結果を出力するデータ分析システムであって、
前記素データを格納する素データ格納部と、
前記素データを読み込んで分析を行い、当該分析の過程で中間データを生成して分析結果を出力する分析部と、
前記分析部が生成した中間データを格納する中間データ格納部と、
前記分析部が出力した分析結果に対する評価の値を受け付ける評価受付部と、を備え、
前記分析部は、
前記分析の際に前記中間データ格納部の中間データのうち利用可能な中間データを参照し、
前記評価受付部は、
前記評価の値に対応する前記中間データに前記評価の値を分配し、前記分配した評価の値が所定の条件を満たしたときに、当該評価の値に対応する前記中間データを削除することを特徴とするデータ分析システム。
【請求項２】
請求項１に記載のデータ分析システムであって、
前記分析部は、
分析内容を受け付けて、当該分析内容を前記記憶装置に記憶し、当該分析内容と過去の分析内容が類似するか否かを判定し、前記判定結果が類似する場合には、前記過去の分析内容と受け付けた分析内容から前記中間データ格納部の中間データを参照する新たな分析内容を生成し、当該新たな分析内容を実行することを特徴とするデータ分析システム。
【請求項３】
請求項１に記載のデータ分析システムであって、
前記分析結果を表示する表示部をさらに有し、
前記評価受付部は、
前記表示部の表示に対する評価の値を受け付けることを特徴とするデータ分析システム。
【請求項４】
請求項１に記載のデータ分析システムであって、
前記分析部は、
分析内容を受け付けて、当該分析内容を前記記憶装置に記憶し、当該分析内容で使用する中間データと過去の中間データが類似するか否かを判定し、前記判定結果が類似する場合には、前記過去の中間データから受け付けた分析内容で使用する中間データを前記中間データ格納部から参照して新たな中間データを生成し、当該新たな中間データで分析内容を実行することを特徴とするデータ分析システム。
【請求項５】
請求項１に記載のデータ分析システムであって、
前記評価の値は、
前記中間データの作成にかかった計算コスト、前記中間データのサイズ、前記記憶装置の残り容量の少なくともひとつを含むことを特徴とするデータ分析システム。
【請求項６】
請求項３に記載のデータ分析システムであって、
前記評価の値は、
前記表示部に表示した分析結果に対する閲覧情報であることを特徴とするデータ分析システム。
【請求項７】
プロセッサと記憶装置を備えた計算機で、素データを分析して分析結果を出力するデータ分析方法であって、
前記記憶装置に格納された素データを読み込むステップと、
前記読み込んだ素データから中間データを生成するステップと、
前記中間データを前記記憶装置に格納するステップと、
前記中間データから分析結果を演算するステップと、
前記分析結果を出力するステップと、
前記出力した分析結果に対する評価の値を受け付けるステップと、を含み、
前記中間データから分析結果を演算するステップは、
前記分析の際に前記中間データのうち利用可能な中間データを参照し、
前記出力した分析結果に対する評価の値を受け付けるステップは、
前記評価の値に対応する前記中間データに前記評価の値を分配し、前記分配した評価の値が所定の条件を満たしたときに、当該評価の値に対応する前記中間データを削除することを特徴とするデータ分析方法。
【請求項８】
請求項７に記載のデータ分析方法であって、
前記中間データから分析結果を演算するステップは、
分析内容を受け付けて、当該分析内容を前記記憶装置に記憶し、当該分析内容と過去の分析内容が類似するか否かを判定し、前記判定結果が類似する場合には、前記過去の分析内容と受け付けた分析内容から前記中間データを参照する新たな分析内容を生成し、当該新たな分析内容を実行することを特徴とするデータ分析方法。
【請求項９】
請求項７に記載のデータ分析方法であって、
前記分析結果を出力するステップは、
前記分析結果を前記計算機の表示部に表示し、
前記出力した分析結果に対する評価の値を受け付けるステップは、
前記表示部の表示に対する評価の値を受け付けることを特徴とするデータ分析方法。
【請求項１０】
請求項７に記載のデータ分析方法であって、
前記中間データから分析結果を演算するステップは、
分析内容を受け付けて、当該分析内容を前記記憶装置に記憶し、当該分析内容で使用する中間データと過去の中間データが類似するか否かを判定し、前記判定結果が類似する場合には、前記過去の中間データから受け付けた分析内容で使用する中間データを参照して新たな中間データを生成し、当該新たな中間データで分析内容を実行することを特徴とするデータ分析方法。
【請求項１１】
請求項７に記載のデータ分析方法であって、
前記評価の値は、
前記中間データの作成にかかった計算コスト、前記中間データのサイズ、前記記憶装置の残り容量の少なくともひとつを含むことを特徴とするデータ分析方法。
【請求項１２】
請求項９に記載のデータ分析方法であって、
前記評価の値は、
前記表示部に表示した分析結果に対する閲覧情報であることを特徴とするデータ分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列分散情報処理環境を用いた大規模データ分析とそのビジュアリゼーションを行う装置、及び方法に関する。
【背景技術】
【０００２】
高速で安価な計算処理環境が整えられたことによって、業務作業の効率化や設備の最適化に関する分析が一般的に行われるようになった。これらの処理では、大規模なログデータからパターンを発見・抽出して、仮説モデルを形成する発見的なプロセスが必要とされる。
【０００３】
このようなログデータからの大規模データ分析は、現時点においては完全に自動化はされておらず、特に初期のデータ関係性の模索（データの相互間関係）段階においては、データの相関性や時間的反復に関するパターンの発見において人間の関与を必要とする場合が多い。この際、分析の切り口の着眼点を発見するために、様々な手法で処理したデータを可視化して提示し、人間の直感的な理解を促進して、人間によるフィードバック作業を計算プロセスに取り込む分析環境が必要とされる。こういった環境においては、人間に負担をかけずに計算機側がサポートを行える操作性と、効率の良い計算リソースの利用を両立させることが重要となる。このようなデータ解析は、データマイニングとして知られており、例えば、特許文献１または非特許文献１が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２０４２８２号公報
【非特許文献】
【０００５】
【非特許文献１】並列データマイニングアーキテクチャ  松本 和宏ほか  電子情報通信学会技術研究報告. IEICE technical report. Data engineeringVol.97, No.417(19971202) pp. 33-38 社団法人電子情報通信学会
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来例では、データパターンの初期分析において大規模なデータが対象となる分析では、素データのサイズが大きくなると、データ抽出プロセスにも分析処理のプロセスにも大きな計算負荷と時間がかかるため、試行錯誤のためのインタラクティブ性は阻害され、パターンの発見にも多量の時間がかかる。
【０００７】
このようなデータ処理を繰り返す際に、幾つかの異なるデータ処理プロセスが、分析処理プロセスの一部を同じ条件や類似した条件で繰り返し実行することがある。この際には、各要素プロセスの中間出力結果を保持して再利用することによって、二回目以降の処理プロセスを高速化できる場合がある。
【０００８】
しかし、データの再利用は計算処理を削減する一方で、中間処理の結果をあまりにも多く保持しすぎると、大量の外部記憶領域を消費してしまい、ストレージ装置を使用する際のコストパフォーマンス面では効率が悪くなる。また、分析に供する素データには、ある特有の条件によってデータベースから絞り込まれたサブセットのみが用いられることが多い。この場合、考えうる中間データの組み合わせが爆発的に増加し、どの条件下の中間データを保持するかの判断が困難になる。
【０００９】
これらの理由から、再利用を想定した中間データの管理を行い、最適化することにはコストパフォーマンス面での問題が多く存在した。
【００１０】
そこで本発明は、上記問題点に鑑みてなされたもので、分析処理の中間段階で生成されるデータを効率よく保存して中間データを再利用することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、プロセッサと記憶装置を備えた計算機で、素データを分析して分析結果を出力するデータ分析システムであって、前記素データを格納する素データ格納部と、前記素データを読み込んで分析を行い、当該分析の過程で中間データを生成して分析結果を出力する分析部と、前記分析部が生成した中間データを格納する中間データ格納部と、前記分析部が出力した分析結果に対する評価の値を受け付ける評価受付部と、を備え、前記分析部は、前記分析の際に前記中間データ格納部の中間データのうち利用可能な中間データを参照し、前記評価受付部は、前記評価の値に対応する前記中間データに前記評価の値を分配し、前記分配した評価の値が所定の条件を満たしたときに、当該評価の値に対応する前記中間データを削除する。
【発明の効果】
【００１２】
したがって、本発明によれば、中間データを利用した高速な分析処理を実現できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態の分析システムの一例を示すブロック図である。
【図２】本発明の第１の実施形態の情報処理装置の構成を示すブロック図である。
【図３】本発明の第１の実施形態のデータ分析処理手順を示す模式図である。
【図４】本発明の第１の実施形態の分析課題の入力・可視化・評価の流れを示す全体的なフローチャートである。
【図５】本発明の第１の実施形態の分析のフローを記述するためのスクリプトのデータ構造を示す模式図である。
【図６】本発明の第１の実施形態の分析サーバＰＣの分析スケジューリングプログラムの処理の一例を示すフローチャートである。
【図７】本発明の第１の実施形態の入力データを管理するテーブル情報のデータ構造を示す。
【図８】本発明の第１の実施形態の分析サーバＰＣが実行する分析フローの合同性・類似性の検査の一例を示すフローチャートである。
【図９】本発明の第１の実施形態の子分析サーバＰＣで行われる分析処理の一例を示すフローチャート。
【図１０】本発明の第２の実施形態を示し、ＤＢが保持する時空間情報の一例を示す説明図である。
【図１１】本発明の第２の実施形態を示し、空間情報を管理する木構造の模式図である。
【図１２】本発明の第１の実施形態の分析サーバＰＣで稼動するスケジューラプログラムの中間データの評価値の再計算とデータ管理の一例を示すフローチャートである。
【図１３】本発明の第１の実施形態を示し、図１２の工程１３０４で分析サーバＰＣ２１が中間データの評価値の再計算を行う処理を示すフローチャートである。
【図１４】本発明の第２の実施形態の分析サーバＰＣで行われる中間データを生成するスクリプトを作成する処理の一例を示すフローチャートである。
【図１５】本発明の第２の実施形態の分析サーバＰＣで行われる中間データの評価値の再計算とデータ管理の一例を示すフローチャートである。
【図１６】本発明の第１の実施形態の中間データを再利用するスクリプトの作成処理の一例を示すフローチャートである。
【図１７Ａ】本発明の第１の実施形態の中間データを再利用したときのデータの木構造を示す模式図である。
【図１７Ｂ】本発明の第１の実施形態の中間データを再利用したときのデータの木構造を示す模式図である。
【図１８】本発明の第３の実施形態の分析サーバＰＣが実行する分析フローの合同性・類似性の検査の一例を示すフローチャートである。
【図１９】本発明の第１の実施形態の各情報処理装置で実行されるプログラムの関係を示すブロック図である。
【図２０】本発明の第２の実施形態を示し、各情報処理装置で実行されるプログラムの関係を示すブロック図である。
【図２１】本発明の第５の実施形態を示し、分析システムの一例を示すブロック図である。
【図２２】本発明の第５の実施形態を示し、分析結果の画面イメージである。
【図２３】本発明の第１の実施形態の分析フローの合同性・類似性を返すデータ構造の模式図。
【図２４】本発明の第１の実施形態のキャッシュＤＢが実行する分析フローの合同性・類似性の検査の一例を示すフローチャート。
【図２５】本発明の第１の実施形態の分析結果が可視化された画面の一例を示す画面イメージ。
【図２６Ａ】本発明の第１の実施形態の可視化モジュール（分析サーバＰＣ）の一例を示すブロック図である。
【図２６Ｂ】本発明の第１の実施形態の可視化モジュール（クライアントＰＣ）の一例を示すブロック図である。
【図２７】本発明の第３の実施形態のデータ分析処理をマージするために必要な情報を管理するためのデータ構造を示す。
【発明を実施するための形態】
【００１４】
以下に本発明を実現するための最適な実施の形態を挙げ、添付図面に基づいて説明する。
【００１５】
＜全体構成＞
図１は、本発明の第１の実施形態の分析システムの一例を示すブロック図である。
【００１６】
クライアントＰＣ２０１は、利用者２００のユーザインタフェースとして機能し、利用者２００からの入力を受付け、処理結果を画面に出力するための情報処理機器である。
【００１７】
このクライアントＰＣ２０１は、利用者２００からの入力を受け取るキーボードやマウスで構成されるインタフェース機器２０２と、利用者に対して結果の画像や文字列を出力するディスプレイ機器２０３と、利用者２００の表情や行動を撮影するカメラ機器２０４への入出力手段を有する。
【００１８】
分析サーバＰＣ２１０は、ネットワーク２０５を介してクライアントＰＣ２０１から送られてきた分析処理プロセスのメッセージを処理し、分析内容が該当するデータの範囲を抽出し、抽出したデータに情報処理を行った結果を再びクライアントＰＣ２０１に通知にするための情報処理機器である。
【００１９】
子分析サーバＰＣ２２１〜２２３は、分析サーバＰＣ２１０が行う情報処理内容からネットワーク２２０を介して部分問題（情報処理の一部）を受け取って処理するための情報処理機器である。図１においては子分析サーバとして３台の子分析サーバＰＣ２２１〜２２３が記述されているが、この子分析サーバの台数を増やすことによって計算処理能力を向上させることができる。
【００２０】
データベース（以下、ＤＢ）２３１〜２３３は、ネットワーク２３０を介して子分析サーバＰＣ２２１〜２２３と接続され、分析の対象となる大量の素データをストレージシステム内に保持し、後述する制約条件を含むリクエストに応じて、保持しているデータの一部を抽出して送信する情報処理機器である。また、キャッシュＤＢ２４１はネットワーク２２０を介して分析サーバＰＣ２１０と、子分析サーバＰＣ２２１〜２２３に接続され、分析サーバＰＣと子分析サーバＰＣ２２１〜２２３によって分析処理を行われた後のデータを一時的に保管する機能を実現する情報処理機器である。なお、素データは、分析を行うために予め収集したデータである。
【００２１】
＜情報処理機器の構成＞
クライアントＰＣ２０１、分析サーバＰＣ２１０、子分析サーバＰＣ２２１〜２２３、ＤＢ２３１〜２３３、キャッシュＤＢ２４１の各要素は、標準的な情報処理装置を用いて実装される。
【００２２】
図２は、このような標準的な情報処理装置３００を実現するための機構の例を示すブロック図である。情報処理装置３００は、中央演算処理装置３０５、主記憶３０６、外部記憶装置３０７と、外部に表示する画像を作成する映像出力部３０８、外部入出力インタフェース部３０９、ネットワークインタフェース部３１０の要素から構成される。
【００２３】
これらの各情報処理機器の実装は汎用の計算機として実装されている既存の各種に準じる。また、外部入出力インタフェースにはＵＳＢなど汎用の外部機器制御インタフェースを用いる。また、情報処理機器は互いにネットワークＩＦ３０９を介してメッセージを交換するが、このネットワークの実装には、ＴＣＰ／ＩＰなどの既存のメッセージ交換用プロトコルを利用する。
【００２４】
＜メッセージの流れとプロセス＞
図１９は、クライアントＰＣ２０１、分析サーバＰＣ２１０、子分析サーバＰＣ２２１〜２２３、ＤＢ２３１〜２３３、及びキャッシュＤＢ２４１の各情報処理装置上で実行されるプログラムと、各プログラム間で行われるメッセージの流れを示したものである。
【００２５】
クライアントＰＣ２０１では、分析処理入力プログラム２０１０、分析結果提示プログラム２０１１、評価結果入力プログラム２０１２、推奨分析処理提示プログラム２０１３が主記憶３０６上に読み込まれ、それぞれ非同期で中央演算処理装置３０５により実行され、外部入出力インターフェース３０９とネットワークインターフェース３１０でメッセージと入力を受付け、情報処理を行う。
【００２６】
分析サーバＰＣ２１０では、スケジューラプログラム２１０１、データ分析プログラム２１０２が主記憶３０６上に読み込まれ、それぞれ非同期で中央演算処理装置３０５により実行され、外部入出力インターフェース３０９とネットワークインターフェース３１０でメッセージと入力を受付け、情報処理を行う。
【００２７】
子分析サーバＰＣ２２１は、分析サーバＰＣ２１０のデータ分析プログラム２１０２からのメッセージを受信し、メッセージに指定された所定のデータ分析モジュール２２１１かデータ抽出プロセス２２１２を主記憶上に読み込み、中央演算処理装置３０５により情報処理を行う。この際、処理を行うことが可能な子分析サーバＰＣ２２１〜２２３が複数存在する場合には、データ分析プログラム２１０２は後述の手順に従いデータ分析処理内容の一部を子分析サーバＰＣ２２１〜２２３に割り当てて並列に実行させる。
【００２８】
ＤＢ２３１には、保存されている素データを外部記憶装置３０７から読み取って転送するデータ管理プログラム２３１１が主記憶３０６上に読み込まれ、外部入出力インターフェース３０９とネットワークインターフェース３１０でメッセージと入力を受付けて、必要データの抽出と転送処理を行う。
【００２９】
キャッシュＤＢ２４１には、保存されている内部データ（中間データ）を登録し、類似する中間データを検索するキャッシュデータ検索プログラム２４１１と、キャッシュデータを記憶装置から読み取り転送するキャッシュデータ管理プログラム２４１２が主記憶３０６上に読み込まれ、それぞれ非同期で中央演算処理装置３０５により実行され、外部入出力インターフェース３０９とネットワークインターフェース３１０でメッセージと入力を受付け、情報処理を行う。
【００３０】
以下、これらプログラムの連携処理と分析処理を行う過程を、記述する。
【００３１】
＜分析課題の記述形式（スクリプト）の定義＞
分析課題となるデータ分析は図３で描かれる木構造で示されるフロー（データ分析フロー）で表現される。このデータ分析フローを計算機（分析サーバＰＣ２１０）内部で保持するためのデータ構造６００を図５に示す。図５において、木構造はノード構造体６１０、６２０らのリストとして表現される。主記憶のメモリ領域にはノード構造体の全数を管理する数値として要素数６０１が記述される。データ分析ノードの構造体６１０は、作成時の優先度や保存状況を示す管理データ６１１、処理プロセスのＩＤ番号６１２、入力データ（子ノード）のＩＤ番号のリスト６１３、６１４、出力データ（親ノード）のＩＤ番号６１５、その他分析内容に応じた汎用パラメータを格納する領域６１６から構成される。処理プロセス番号６１２は処理内容のプログラムを外部記憶装置３０７の所定位置から呼び出すためのＩＤ番号である。
【００３２】
また６１３〜６１５のＩＤ番号は、（ａ）データ分析フロー内の別の構造体６２０などを指すローカルポインタ、（ｂ）参照するＤＢのデータベース番号（図３の４０１〜４０３）を示すＩＤ番号、（ｃ）キャッシュＤＢ２４１内の管理テーブルのＩＤ番号のいずれかまたは複数が記載されるデータ領域である。また汎用パラメータ６１６は、ＤＢからの絞り込み条件や、分析処理アルゴリズムの調整パラメータなどが記載される領域である。
【００３３】
＜分析課題の入力方法＞
分析サーバＰＣ２１０が実行するスケジューラプログラム２１０１は、クライアントＰＣ２０１から依頼されるデータ分析の課題を前述のデータ構造６００で受け取り、管理データ６１１に付加された優先度の数値に応じて順に実行する。本実施形態では、分析処理入力プログラム２０１０を通じて、クライアントＰＣ２０１で利用者２００が明示的に入力する分析手順のスクリプトに従って分析を行う。
【００３４】
図４は、利用者がクライアントＰＣ２０１の分析処理入力プログラム２０１０から、明示的にデータ分析の内容を入力して分析を実行する際の過程を示すフローチャートである。
【００３５】
工程５０１は、クライアントＰＣ２０１が処理フローのデータを定義する工程である。この工程では、クライアントＰＣ２０１が提供する情報入力プログラム（図示省略）のインタフェースを通じて、利用者２００が図３のグラフ構造を入力する。
【００３６】
この入力作業には、文字シンボルを用いて木構造とＩＤ番号を表現するＣＵＩや、図として表現・入力を行うＧＵＩとして入力する手法をとる。これらの入力手法に関しては、既存の情報分析機器において実装されているものを流用できる（この木構造データの入力手法は、Ｌｉｓｐ等の記述でみられる括弧式による定義や、ＧＵＩによるインタラクティブな接続手法があるが、ともに広く知られた計算機上の一般技法であり、本実施形態の新規性が含まれている部分ではないため手順の詳細は省略する）。
【００３７】
図３の例では、ＤＢ４０１〜４０３からデータ抽出モジュール４１１〜４１３によりデータを抽出し（４２１〜４２３）、データ４２１と４２２は処理プロセス４３１で処理を行ってデータ４３２を出力し、処理プロセス４４１では、データ４２３と４３２を処理してデータ４４２を処理し、クライアントＰＣ２０１に表示する（４５０）という木構造のデータ分析フローを示している。なお、処理の途中で生成されたデータ４２１〜４２３，４３２は中間データとなり、後述するようにキャッシュＤＢ２４１に保持される。
【００３８】
＜サーバへ送信＞
工程５０２では、上記で作成されたデータ分析フローの構造データを分析サーバＰＣ２１０に転送し、分析サーバＰＣ２１０で処理を行った結果を待つ間、このプロセスは待機状態に入る（工程５０３）。この間に実行される分析サーバＰＣ２１０の処理に関しては、図６のフローチャートを用いて後述する。
【００３９】
＜分析プロセスの終了＞
可視化モジュール（図３の４５０，図１９の２０１１）以外の全要素の分析処理が終わった場合には、分析サーバＰＣ２１０からクライアントＰＣ２０１へ分析結果が送られてくる。クライアントＰＣ２０１は、分析結果を受信し（５０４）、受信したデータを入力として、可視化モジュール（分析結果提示プログラム２０１１）を起動する。
【００４０】
＜可視化モジュールの構成＞
可視化モジュールを構成する実装の一例を、図２６Ａ、図２６Ｂに挙げる。可視化モジュールは、図２に示される汎用計算機器である分析サーバＰＣ２１０とクライアントＰＣ２０１上の分析結果提示プログラム２０１１として実現される。可視化モジュールは、分析サーバＰＣ２１０上に配置された分析結果提示プログラム２０１１であり、図２６Ａ、図２６Ｂで示すように、コンテンツＤＢ２７１０と、クライアントＰＣ２０１上に配置されたプログラムである表示ビューア２７２０という二つの部分によって構成される。
【００４１】
分析サーバＰＣ２１０の表示コンテンツＤＢ２７１０は、画像処理の内容を記述したスクリプトを蓄えたデータベースである。表示コンテンツＤＢ２７１０は、スクリプトの一つを指定する文字列またはＩＤ番号と、所定のフォーマットで蓄えられたデータを受け取り、検索プログラム部分２７１１によってスクリプトの文字列コード（２７０１〜２７０７）のデータベースから指定された当該コード２７０１を呼び出し、呼び出したソース文字列のコード２７０１と図２６Ｂのデータ構造体８０２を合わせてクライアントＰＣ２０１のお表示ビューア２７２０に送信する機能を持つ。以下、このスクリプト２７０１とデータ構造体８０２を合わせたものを、表示コンテンツと呼ぶ。
【００４２】
表示ビューア２７２０は、映像表示内容を記述するスクリプト部分（表示コンテンツ）２７０１、８０２と、そのスクリプトが示す手続きを解釈するインタプリタ部分（２７２２）、手続き結果をインタラクティブに実行した結果を画面上に表示する提示部分２７２１から構成される。インタプリタ部分２７２２は、スクリプトを順に実行し、スクリプトが指示する手法にしたがってデータ構造体８０２を読み込み、提示部分のプログラムを実行してディスプレイ機器２０３に画像情報として表示する。このような表示スクリプトの解釈と表示システムの一般的な実現例として、インターネットのブラウザにおけるＪａｖａ（登録商標）Ｓｃｒｉｐｔの動的な解釈機構などを利用して実現することができる。
【００４３】
＜可視化モジュールの実行＞
この可視化モジュールでは、静的な画像・インタラクティブに制御可能な表示コンテンツなどを生成し、クライアントＰＣにそのデータを転送する。クライアントＰＣのビューアは、このデータを画面上に提示し、待機、またはインタラクティブな入力を受付ける。
【００４４】
図２５は、可視化モジュールによる表示イメージの例を示したものである。地図２６０１上に重畳して各区分域を分析したデータの内容が図中２６０２のようなアイコンを伴った図として表現され、点の大きさと色によって分析結果のデータが表現される。また、この際、インタフェース機器２０２からの命令に併せて、地図の各部分をインタラクティブに拡大／縮小して表示する。
【００４５】
この表示と閲覧作業の終了時に、評価結果入力プログラム２０１２は、図２５の数値入力画面２６０３を利用者２００に提示し、分析結果に対する評価値の入力を促す（工程５０６、５０７）。評価値が入力された場合には、この値は分析サーバＰＣ２１０のスケジューラプログラム２１０１に送られ、キャッシュＤＢ２４１に保存された中間データの管理に用いられる（工程５０８）。この中間データの管理手順に関しては、図１２のフローチャートを用いて後述する。
【００４６】
＜分析処理サーバ＞
図６のフローチャートは、分析サーバＰＣ２１０の処理工程を示したものである。
【００４７】
分析サーバＰＣ２１０は、分析対象となる分析フローを登録するキューを主記憶３０６に保持している。以下、このキューを未実行キューと呼ぶ。初期状態においては、分析サーバＰＣ２１０は構造データと分析処理開始メッセージへの受付け状態で待機している（工程７０１）。メッセージを受信した際、メッセージが新規の分析フローである場合には工程７０３〜７１１の処理内容を実行し、メッセージが子分析サーバＰＣ２２１〜２２３からの部分分析終了の通知であった場合には、工程７１２〜７１９を実行する（工程７０２）。
【００４８】
＜新規分析フローの場合＞
工程７０１で受信したメッセージがクライアントＰＣ２０１からの新規分析フローの場合の挙動を、分析のルートがデータ構造対６１０で表現される木構造の分析であるとして、工程７０３〜７１１の工程を説明する。この木構造の親分析（処理プロセス番号６１２）のＩＤと共に、各入力データ６１３〜６１４をリストにした構造体データを作成する。以下ではこの構造体を、子ノードリストと呼ぶ（工程７０３）。
【００４９】
分析サーバＰＣ２１０は、各入力データ６１３〜６１４（子ノード）について、このノードがＤＢ２３１〜２３３を直接参照するデータ抽出プロセスであるかを確認する。その場合、子分析サーバＰＣ２２１〜２２３にデータの抽出処理を依頼する（工程７１２）。
【００５０】
データ抽出プロセス以外の場合には、分析サーバＰＣ２１０はその中の子ノードを一つずつ選び、相当する分析内容について、工程７０６〜７１０の処理を行う（工程７０５）。まず、分析サーバＰＣ２１０は、既にキャッシュＤＢ２４１に中間データが登録されているか否かの判定をキャッシュＤＢ２４７に依頼する。分析サーバＰＣ２１０は、このためにデータ構造６００から辿れる全データをリストにして、類似データの検索依頼のためのメッセージを作成し、キャッシュＤＢ２４１に転送する（工程７０６）。以下、このリストを部分分析フロー処理スクリプトと呼ぶキャッシュＤＢ２４１のキャッシュデータ検索プログラムは、分析サーバＰＣ２１０から送られてきた部分分析フロー処理スクリプトと、キャッシュデータ管理プログラムのテーブルに登録されたデータとの間での条件比較を行う。このキャッシュＤＢ２４１が行う条件比較の処理については、図８のフローチャートに従って行われる（後述）。条件比較が終わるとキャッシュＤＢ２４１からは、再利用可能性についての判断と登録番号がセットになったデータが送られてくる（工程７０７）。
【００５１】
再利用可能な該当データがキャッシュＤＢ２４１に既に存在する場合には、キャッシュＤＢ２４１から送られてきた中間データの保存位置を示す番号（登録番号）を、子ノードリストに書き込み、同時にこの子ノードの実行済みフラグをＯＮにする（工程７０８）。
【００５２】
再利用可能な該当データ（中間データ）がキャッシュＤＢ２４１に存在しなかった場合には、キャッシュＤＢ２４１から送られてきた中間データ保存位置を示す番号（未処理）を、子ノードリストに書き込み、同時にこの子ノードの実行済みフラグをＯＦＦにする（工程７０９）。この分析フローから、子ノードをルートとする部分木を抽出して、新たな分析フローを作成し、新規分析フローとして再帰的な登録（７０１）を呼び出し、スケジューラプログラム２１０１自身に対して行う。
【００５３】
＜部分分析終了の場合＞
工程７０１で受信したメッセージが、子分析サーバＰＣ２２１〜２２３からの部分分析終了の場合の処理を説明する。子分析サーバＰＣ２２１〜２２３から送られてくる情報には、キャッシュＤＢ２４１の中間データ保存位置を示す番号が示されている。未実行キューに登録されている全ての子ノードリストからこの番号を検索し、該当番号が子ノードに含まれている子ノードリストについて工程７２３〜７２７を行う（工程７２１、７２２）。
【００５４】
まず、分析サーバＰＣ２１０は、子ノードの実行済みフラグをＯＮにする（工程７２３）。次に、子ノードリストに含まれる全要素が、実行済みであるかどうかを調べる（工程７２４）。子ノードリストの全てが実行済みの場合、この親分析のＩＤが可視化モジュール２０１１であるか、データ分析モジュール２２１１であるかを判定する。親分析のＩＤがデータ分析モジュール２２１１の場合、分析サーバＰＣ２１０は、子分析サーバＰＣ２２１〜２２３にデータ分析モジュール２２１１のプログラムの実行を依頼する。一方、親分析のＩＤが可視化モジュール２０１１である場合には、キャッシュＤＢ２４１から分析結果のデータを読み込み、クライアントＰＣ２０１に可視化モジュール２０１１の実行を依頼する。
【００５５】
＜待機状態＞
以上の処理が終了した時点で、分析サーバＰＣ２１０は工程７２０で再びメッセージ待機状態に入り、次の受信を待つ。
【００５６】
＜同一性の判定＞
キャッシュＤＢ２４１に登録されている分析データ（中間データ）と、部分分析フロー処理スクリプトとの間の、合同または類似性を判断する一連のルーチンは、図８と図２４のフローチャートで示される。この判断処理は、図８に示す個別の分析フローについて再帰的に一致性をチェックする工程９００〜９０７の個別判定ルーチンと、図２４に示すキャッシュＤＢ２４１内の全中間データについて個別判定ルーチンを実施する全体のルーチンの二つによって構成されている。
【００５７】
全体のルーチンは、目的の分析フローと、キャッシュＤＢ２４１が保持する中間データに保存された分析フローを比較して、（ｉ）まったく同一の分析フローが存在した場合（合同）、（ｉｉ）類似分析フローであるがデータ絞り込み範囲のパラメータが異なっていた場合（類似）を判定し、（ｉ）、（ｉｉ）それぞれの中間データがあった場合には図２３の２４１０に示される構造体にデータを入れ、それらの構造体のリストを帰り値として返すものである。
【００５８】
また、個別判定のルーチンは、目的の分析フローと、中間データに保存された分析フローを比較して、木構造が類似している場合にはＴｒｕｅを返し、木構造が異なっている場合にはＦａｌｓｅを返す。また、木構造の各ノードのパラメータが不一致である場合には、そのノードでの差分情報をスタックに追加して返す。
【００５９】
図８の工程９０１では、分析サーバＰＣ２１０は、データ分析処理の該当ノードにある要素分析処理と、キャッシュＤＢ２４１のデータ分析処理の該当ノードにある要素分析処理のプログラムＩＤ番号を比較する。この比較結果が異なっていた場合には、類似している分析処理結果が発見できかったものとみなして再帰的な判定処理を打ち切り（図中、個別判定Ｎｏ）、としてＦａｌｓｅの値を帰り値として返す。
【００６０】
工程９０２ではデータ分析処理の該当ノードにある要素分析処理と、キャッシュＤＢ２４１のデータ分析処理の該当ノードにある要素分析処理の、汎用パラメータ６１６に格納された情報を比較する。この比較結果が異なっていた場合（図中、個別判定Ｎｏ）には、同一の分析処理結果は発見できかったものとみなしてＦａｌｓｅの値を帰り値として返す。
【００６１】
工程９０３では、データ分析処理の該当する要素分析処理ノードに子ノード（すなわち入力データ６１３〜６１４）が存在するかをチェックする。ただし、この要素分析処理が必要とする入力がＤＢを示すＩＤだけであった場合には、ＤＢのテーブルを示すＩＤ番号を調べ、異なっている場合にはＦａｌｓｅを返す。同一であった場合には、この要素分析処理については同様の処理を行っているとみなしＴｒｕｅを返す。
【００６２】
工程９０４〜９０６では、キャッシュＤＢ２４１のデータ分析処理の要素分析処理の子ノードを順に探索し（工程９０４）、この子ノードと、キャッシュＤＢ２４１のデータ分析処理の該当位置にある要素分析処理との同一性を確認するため、それらのデータに対して再帰的に同ルーチン９００を実行してチェックする（工程９０５）。この子ノードを再帰チェックした結果がＦａｌｓｅであった場合には、帰り値としてＦａｌｓｅを返す。全ての子ノードの結果について再帰処理が終わって一度もＦａｌｓｅが帰ってこなかった場合には、Ｔｒｕｅを返す。
【００６３】
以上の再帰フローをチェックした結果、結果が全ての子ノードに対して一致していた場合には、木構造のノードの基本形状が類似であったとみなされる。また、加えてスタックが空であった場合には合同であったとみなされる。
【００６４】
キャッシュＤＢ２４１における中間データの探索は、上記の個別判定ルーチンを繰り返すことで行われる。一方、キャッシュＤＢ２４１が課題となる分析フローを受け取った場合、図２４の処理を開始する（工程９２０）する。キャッシュＤＢ２４１内に登録されている中間データを選択し（工程９２１）、管理テーブル（その構造体は図７で示される）に保存されている作成スクリプト８０１との比較を上記の手法で行う（工程９２２）。
【００６５】
上記比較の結果、帰り値がＦａｌｓｅである場合には、データ間に類似性が無いため、次のデータを探索する（工程９２３）。一方、上記比較の結果、帰り値がＴｒｕｅである場合には、再帰フローの終了時のスタック状態を参照する（工程９２４）。保存されているデータと、検索対象の分析フローの処理が合同であった場合には、スタックには一切の情報が詰まれていない。この場合、中間データを完全に再利用することが出来るため、このキャッシュＤＢ２４１を指し示すポインタ情報（ＩＤ）を、合同分析データのＩＤ２４１０の構造体に記述し、リストに追加する（工程９２８）。
【００６６】
また、もしもキャッシュＤＢ２４１に保存されているデータが類似しているが異なったデータである場合には、その違いを示すデータがスタックに詰まれている。この場合、この類似データについては、各要素分析処理に関連付けられたデータ合成用のプログラム（後述）を用いて、データの不足分・改変分を補うことが出来るかどうかのチェックを行う（このチェック内容の手順は、図１６にしたがって後述する）（工程９２５）。図１６のフローチャートの帰り値から再利用可能か否か判定し（工程９２６）、不足分のデータを補うことで出力結果が作成できる場合には、不足するデータ部分の処理作成とデータの合成処理を、分析フロー処理スクリプトとして作成し、新たに分析サーバＰＣ２１０の処理として登録する（工程９２７）。
【００６７】
次に、キャッシュＤＢ２４１は、図２３の構造体２４２０を作成し、このキャッシュＤＢ２４１を指し示すポインタ情報（ＩＤ）を類似分析データのＩＤ２４２１に格納し、差分情報を２４２２に格納して、リストに追加する。（工程９２８）。キャッシュＤＢ２４１は、全てのチェックが終了したことを判定した場合（工程９２９）、中間データの検索結果をリストとして分析サーバＰＣ２１０に返す（工程９３０）。
【００６８】
＜子分析サーバの処理＞
分析サーバＰＣ２１０が依頼した各要素分析の処理は、子分析サーバＰＣ２２１〜２２３において実行される。
【００６９】
分析処理のモジュール２２１１には、データ抽出モジュールと、データ分析モジュールの二種類がある。データ抽出モジュールは図５の入力データ６１３としてＤＢのテーブルを示すＩＤを持ちパラメータ６１６の制約条件に従って必要なデータのみをＤＢから抽出する。分析サーバＰＣ２１０のデータ分析モジュール２１０２はＩＤ６１３〜６１４で示される他のモジュールの出力した中間データを入力として受け取り、パラメータ６１６の条件で分析処理を行う。
【００７０】
また、各データ分析モジュール２２１１には、キャッシュＤＢ２４１に蓄えられた中間出力結果（中間データ）を再利用して新規データの処理を行うため、合成演算処理と削減演算処理が別途用意される。この合成・削減処理の内容については後述する。
【００７１】
データ分析モジュール２２１１のプログラムには、情報処理において一般的に用いられる様々な計算処理が実装される。本実施形態ではこのデータ分析モジュール２２１１が行う処理の代表的な例として、時系列データの移動平均フィルタリング、データ要素毎の共分散行列、データ要素のクラスタリング、クラス間の距離関数などを求める分析手法のモジュールが実装されているものとする。
【００７２】
本実施形態では、これらの各データ分析モジュール２２１１は、グループ化されたデータと、処理パラメータを入力として受付ける。各データ分析モジュール２２１１はそれぞれ固有の入出力データの型と個数が定義されており、モジュール処理の実行前にはこの変数型の適合性をチェックするこの入出力のデータ型の例として、時系列データ、単位時刻毎にセグメント化された時系列データ、クラスタリングによって分けられた状態クラスなどがある。
【００７３】
これらのデータ分析モジュール２２１１のプログラムは、あらかじめ子分析サーバＰＣ２２１〜２２３内のＲＯＭ、またはストレージ領域（外部記憶装置３０７）にあらかじめ保持されている。データ分析モジュール２２１１のプログラムのインスタンスの生成するための情報は、要素分析プロセスを行う上記プログラムモジュールと、処理対象となるデータ、そしてそれらの接続関係を示す木構造によって表現することができる。
【００７４】
分析サーバＰＣ２１０から送られてきたデータ分析ノード構造体６１０に記載されたメッセージを受け取ると、子分析サーバＰＣ２２１〜２２３はこれらの要素分析プロセスのインスタンスを生成する。
【００７５】
この各プログラムモジュール（データ分析モジュール２２１１）の実行インスタンスでは、キャッシュＤＢ２４１のデータ保存先を示すＩＤ番号が、入力データと、出力データ、実行時のパラメータとして使用され、実行時のデータの入出力に用いられる。
【００７６】
図９のフローチャートは、子分析サーバＰＣ２２１〜２２３での分析処理インスタンスを実行する一連の手順を示したものである。
【００７７】
子分析サーバＰＣ２２１〜２２３では、スケジューラが分析サーバＰＣ２１０からの処理内容を待って待機している（工程１０００）。子分析サーバＰＣ２２１〜２２３が処理内容を受信した場合、データ分析ノード構造体６１０の処理プロセス番号６１２のプログラムをＲＯＭまたはストレージ領域から読み込み（工程１００１）、同時に入力データ６１３〜６１４をキャッシュＤＢ２４１２からそれぞれ読み込む。また、子分析サーバＰＣ２２１〜２２３から図７に示す入力データを管理するテーブル情報８００を同時に読み込む。
【００７８】
工程１００３では、子分析サーバＰＣ２２１〜２２３は読み込んだプログラムを読み込んだデータに適用して実行する。その計算結果をキャッシュＤＢ２４１２に保存する（工程１００４）。また、この処理にかかった時間を作成所要時間（差分）として図７に示すキャッシュＤＢ２４１の管理テーブル情報８００の作成所要時間（差分）８０３に入力し、入力データの所要時間として登録されていた作成所要時間（トータル）８０４の合計値に、このプロセスの所要時間を足したものを、作成所要時間（トータル）８０４に保存し、プロセスの終了を分析サーバＰＣ２１０に送信する。
【００７９】
＜データ分析プログラムの入力に対する結合・分離性について＞
本実施形態において特徴的な点の一つとして、既に計算が終わった出力データ（分析結果）が存在する場合に、入力データの増加・削減といった変動に対し、新規の入力データと既存の処理結果の間での結合（合成）または分離が可能であるかどうかを返す関数が存在し、合成・分離が可能である処理については、そのためのアルゴリズムも記述される。
【００８０】
入力データの結合が可能である場合とは、データ分析モジュール２２１１の出力結果ｇをもちいて、（１）式の関数ｆが定義できる場合を指す。
ｆ１（ｇ（ａ）＋ｇ（ｂ））  ＝  ｇ（ａ＋ｂ）  ………（１）
ただし、ｇは各データ分析モジュール２２１１のプログラムの処理を表す関数であり、入力セットａ、ｂの出力をｇ（ａ）、ｇ（ｂ）と記述する。関数ｆ１は処理結果ｇ（ａ）とｇ（ｂ）を入力として処理を実行する関数である。ａ＋ｂは入力セットａとｂの和集合とする。
【００８１】
データ分析モジュール２２１１のクラスは、結合可能性を返すメンバ関数と結合処理を行う関数へのインタフェースを持つ。このメンバ関数は、二つの入力データセットとそれぞれの出力結果がある場合に、２つの出力結果を処理することで、入力データセットを合成して処理した結果と同じ結果を返すことが出来る場合にはＴｒｕｅ、そうでないときにはＦａｌｓｅを返すスタティック関数である。前者の場合には、結合処理を行う関数ｆを実現するプログラムを定義する。
【００８２】
このようなデータの合成が可能な処理の簡単な例として、データの数と平均と分散を返す計算処理などをあげることができる。
【００８３】
一方、入力データの削減が可能である場合とは、データ分析モジュール２２１１の出力結果ｇを用いて、（２）式の関数ｆ２が定義できる場合を指す。
ｆ２（ｇ（ａ＋ｂ）、ａ）＝ｇ（ａ）
ただし、ｇは各データ分析モジュール２２１１のプログラムの処理を表す関数であり、入力セットａの出力をｇ（ａ）と記述し、ａ＋ｂはａとｂの和集合とする。このとき関数ｆ２は処理ｇ（ａ＋ｂ）の結果とその部分集合の範囲ａを入力として動作する関数をさす。
【００８４】
データ分析モジュール２２１１のクラスは、分解可能性を返すメンバ関数と、分解処理を行う関数へのインタフェースを持つ。この関数は、入力データセットとその出力結果がある場合に、入力データセットの部分集合を入力として処理した場合の出力結果を得ることが出来る場合には、Ｔｒｕｅ、そうでないときにはＦａｌｓｅを返すスタティック関数である。前者の場合には、分解処理を行う関数ｆが定義されている。
【００８５】
このような処理の例として、移動平均など、データ処理にローカルな局所性が保障されているフィルタ処理をあげることができる。
【００８６】
また、入力データの合成が可能である関数については、全体の出力結果を中間データとして保持するだけでなく、各部分集合のグループを個別に処理した各出力結果を中間データとして保持しておくことによって、グループ単位での削除を可能にすることが出来る。
【００８７】
＜データを合成・新規フローを作成するためのルーチン＞
また、各データ分析モジュール２２１１は、過去に出力した結果（中間データ）を再利用して、新規データの計算コストを省くことが出来るかどうかを判定するアルゴリズムを有する。このアルゴリズムを図１６に示す。
【００８８】
データ分析モジュール２２１１は、入力データｘを処理した中間データｇ（ｘ）が既にキャッシュＤＢ２４１に存在しており、今回の処理は入力データｙからｇ（ｙ）の処理を行うことが目的である。図１７Ａ、図１７Ｂは、この処理の結果としてできあがる新規の木構造データの模式図である。
【００８９】
図１６において、各入力データについて、既存の中間データの入力データｘと、目的の入力データｙの間の包含関係を調べるために、入力データｘと入力データｙの共通部分ｚ（積集合）を抽出する（工程１７０１，１７０２）。
【００９０】
入力データｘと入力データｙに共通部分ｚがない場合には、再利用不可能としてＦａｌｓｅを返す（工程１７０３、１７１２）。
【００９１】
一方、共通部分ｚがあり、入力データｙが共通部分ｚ以外のデータを含んでいる場合には（工程１７０４）、前述のメンバ関数を用いて当該モジュールに入力データの結合処理ｆ１が可能であるかどうかを問い合わせ、不可能な場合には、再利用不可能としてＦａｌｓｅを返す（工程１７０５、１７１２）。
【００９２】
このチェックの結果、入力データｙが共通部分ｚ以外の要素を含む場合には、入力データｘの作成を行った中間結果のデータフロー（スクリプト）をキャッシュＤＢ２４１に保存された構造体データの領域８０１からコピーする（工程１７０６）。
【００９３】
以下、説明のため、このデータｇ（ｘ）の導出処理を図１７Ａの１８１０で表現する。この対象データの抽出処理１８０２のパラメータを入力データｘから入力データｙ−共通部分ｚに（１８２２）に書き換えて、データｇ（ｙ−ｚ）を導出するフローに変換する（工程１７０７）。
【００９４】
入力データｘが共通部分ｚ以外の領域を包含している場合（工程１７０８）には、前述のメンバ関数を用いて当該モジュールに入力データの削減処理ｆ２が可能であるかどうかを問い合わせる。不可能な場合には、再利用不可能としてＦａｌｓｅを返す（工程１７０９、１７１２）。
【００９５】
入力データｘが共通部分ｚ以外の要素を含む場合には、データｇ（ｘ）からｆ２の処理を用いてｚ−ｘの領域に相当する要素を削減する処理（１８２６）を分析フローに記述する。また、これによってつくられるデータｇ（ｚ）と先の工程１７０７で作られた処理スクリプト１８２０をｆ１の合成処理１８２８によって連結し、新たな木構造を作成する。図１７Ｂで示すように、以上の工程で作成された中間データを使用した新たな木構造１８３０で、図１７Ａに示した既存の処理１８１０を置き換える。
【００９６】
＜ＤＢからのデータ抽出モジュール＞
図３で４１１〜４１３として描かれるデータ抽出モジュールは、ＤＢ２３１〜２３３（図３のＤＢ４０１〜４０３に対応）から入力パラメータで示される制約条件を満たしたデータを抽出して読み込む機能を有する。
【００９７】
このデータ抽出モジュール４１１〜４１３が受け取る制約条件パラメータの典型的な例は、ある時刻範囲、空間範囲、記述データ内容の条件文を持ち、該当する全データをＤＢから抜き出し、出力として列挙するプロセスである。この条件処理のプログラム記述方法と抽出の手順については、リレーショナルデータベース管理システム（ＲＤＢＭＳ）とＳＱＬなどの現存するデータ処理言語に準じた実装を用いることで実現可能である。
【００９８】
また、このＤＢ２３１〜２３３には、分析処理の補佐として用いる一般的情報データも同様に保有され、分析処理のアルゴリズムや可視化処理のアルゴリズムの必要に応じて、抽出・読み出しして利用される。この典型的な例として、各都道府県の警察交番の位置座標とボロノイ図を登録しておいて、別の個別データとの相関をとる分析処理アルゴリズムや、与えられた地域名に相当する地図画像の情報を引き出す可視化処理プログラム（分析結果提示プログラム２０１１）などがある。これらの、ＤＢ２３１〜２３３からの抽出における制約条件を示すためのスクリプト記述は、図５の構造体６１０のフォーマット内での管理データ６１１に定義されるものとする。
【００９９】
本実施形態では、ＤＢ２３１〜２３３の実現における基本構成は汎用の計算機を用いてＲＤＢＭＳのソフトウェアとして広く実装されているものに順ずるものとし、一般的特性については既知とする。
【０１００】
＜表示と評価＞
利用者２００は、分析結果の検討のため、クライアントＰＣ２０１を操作してこの表示結果を視聴、およびインタラクティブな操作を行う。
【０１０１】
クライアントＰＣ２０１で動作する分析処理入力プログラム２０１０は、この分析結果を視聴した後のユーザに対して、数値の入力画面を提示し、インタフェース機器２０２を介して数値を受け付ける。利用者２００は分析結果に対する有用度を数値として入力する（以下この値を評価値と呼ぶ）。この評価値を分析データの価値として利用するため、クライアントＰＣ２０１は、分析サーバＰＣ２１０のバックグラウンドで動作するスケジューラプログラム２１０１に、分析プロセスのＩＤと入力された評価値を転送する。
【０１０２】
＜評価スケジューラの起動＞
図１２は、分析サーバＰＣ２１０で稼動するスケジューラプログラム２１０１の処理過程を記述したフローチャートである。スケジューラプログラム２１０１は一定時刻毎にタイマからの起動を受け１３０２〜１３０９の工程を実行する（１３０１）。
【０１０３】
工程１３０２では、クライアントＰＣ２０１から、分析プロセスに対する評価値のデータが送られてきているかどうかチェックする。（１）前回の更新から測った時間が一定の値（これを単位減衰時間とよぶ）を超えている場合と、（２）評価値の更新メッセージが届いている場合には、１３０４〜１３０９の工程を実行する。そうでない場合には休止状態に戻る（工程１３０３）。
【０１０４】
工程１３０４では、図１３のフローチャートで示される工程（後述）に従い、新規評価値をキャッシュＤＢ２４１の各中間データの評価に再分配する。
【０１０５】
続く工程１３０５では、再配分した各中間データの値を一定量減衰させる。
【０１０６】
続く工程１３０６では、各中間データについて、更新された評価値が、下記の（３）式のＸ１で定められる閾値よりも低いかどうかのチェックを行い、評価値が閾値よりも低い場合には、キャッシュＤＢ２４１に対して中間データの削除メッセージを送信する（工程１３０７）。この削除メッセージが到着すると、キャッシュＤＢ２４１はストレージ（外部記憶装置３０７）から該当する中間データの情報を削除する。
Ｘ１  ＝  ｍ１＿ｓ×（Ｓ＿０−Ｓ＿ｃ）  −  ｍ１＿ｔ×（Ｔ＿ｃ）  ………（３）
ただし、Ｓ＿０はキャッシュＤＢ２４１のストレージの残り容量、Ｓ＿ｃは現在の中間データがキャッシュを占有しているデータサイズ、Ｔ＿ｃは中間データの作成にかかった計算コスト（作成所要時間）８０４の値とする。
【０１０７】
これらの処理が終了した後、スケジューラプログラム２１０１は休止状態に入る（工程１３０８）。
【０１０８】
上記処理により、クライアントＰＣ２０１から受け付けた評価値が閾値未満の中間データはキャッシュＤＢ２４１から削除され、キャッシュＤＢ２４１がストレージ（外部記憶装置３０７）に格納する中間データの量が過大になるのを抑制することができる。
【０１０９】
＜バックグラウンド起動の評価基準値＞
図１３は、上記図１２の工程１３０４で分析サーバＰＣ２１０のスケジューラプログラム２１０１が中間データの評価値の再計算を行う処理を示したものである。
【０１１０】
スケジューラプログラム２１０１は一定時間ごとにキャッシュＤＢ２４１の各中間データに対して評価値の再計算を行う。この際に、評価値のメッセージをクライアントＰＣ２０１から受け取っていた場合には、この最終的な分析データに対する評価値から、以下の手順に基づいて、各中間データに評価値を配分する。
【０１１１】
最終分析データの評価値ＥＤ＿ｐから、各中間データＤ＿ｉの評価値の配分追加量ＥＤ＿ｉを計算するために、最終分析データを呼び出し元として、以下の再帰呼び出しを行う。
【０１１２】
まず、スケジューラプログラム２１０１は、中間データ（または最終分析データ）Ｄ＿ｊの評価値ＥＤ＿ｊが得られたときには（工程１４０１）、分析サーバＰＣ２１０のテーブル情報８００の中間データの評価値８０７にこの評価値ＥＤ＿ｊを追加する。また、テーブル情報８００の作成スクリプト８０１に記載された作成スクリプト（図５の６１０で示される構造体）から、このデータＤ＿ｊを導くために直接用いられた入力データＤ＿ｉ（６１３、６１４）を探索し、それらの情報から、各入力データＤ＿ｉの評価値ＥＤ＿ｉを下記（４）式のように分割する（工程１４０２）。
ＥＤ＿ｉ＝ＥＤ＿ｊ×｛ＤＴ＿ｉ｝／｛ΣＤＴ＿ｎ｝＿｛ｎ  ｉｎ  ＤＪ｝  …（４）
但し、ＤＴ＿ｊは、各中間データの管理ログに記載されたデータＤ＿ｊを求めるための所要計算時間８０４である。
【０１１３】
この評価値ＥＤ＿ｉを、中間データのノードに渡し、再帰的に分割処理を実行する（工程１４０４）。全ての子ノードについて処理が終わった場合（工程１４０３）には、親ノードに帰る（工程１４０５）。
【０１１４】
以上の工程により、一定の時間、高い評価値を与えられる分析結果に再利用されなかった中間データは、キャッシュＤＢ２４１から削除される。この削除のタイミングは、後述の（６）で示されるように、データ容量の大きい中間データは早く削除されるようになり、また（７）式で示されるように、データ作成に時間のかかる中間データは多くの評価値を与えられるようになる。ただし、複数の分析に共通に使用されうる中間データについては、書き換えられた新規の分析プロセスに取り込まれ、新たに評価値を与えられるようになる。
【０１１５】
以上のように、本実施形態では、分析の中間段階で生成された中間データをキャッシュＤＢ２４１に保存しておき、保存したデータに対するフィードバック情報を評価値として分析サーバＰＣ２１０で受け付け、評価値が与えられなかった中間データについては優先的にキャッシュＤＢ２４１から削除する一方で、特に高い評価点数を受け付けた中間データに対しては、類似するデータの分析処理を行い、比較対象となるデータの分析や派生的に想定される分析が高速に行えるように、バックグラウンド処理で中間データの自動管理を行うことが可能となって、キャッシュＤＢ２４１で中間データを保存する領域が過大になるのを防ぎながらも中間データを利用した高速な分析処理を実現できる。
【０１１６】
＜第２実施形態＞
第２の実施形態として、前記第１実施形態における分析結果に対するユーザの評価値が高い場合に、その分析に類似した分析のデータを新しく自動で作成する機構を含んだ実装の例を挙げる。本第２実施形態は、前記第１実施形態に、先の分析に類似した分析のデータを新しく自動で作成する処理を加えたもので、その他の構成は前記第１実施形態と同様である。
図２０は、本実施形態でのデータの流れを記述したものである。先の第１の実施形態と同様に、サーバＰＣが実行するスケジューラプログラムは、クライアントＰＣから依頼されるデータ分析の課題をデータ構造で受け取り、付加された優先度に応じて順に実行する。
【０１１７】
前記第１の実施形態では、データ分析のスクリプトは利用者２００が分析処理入力プログラム２０１０を介して手動で作成したものを実行していた。本第２実施形態では、このデータ分析のスクリプトが二種類の経緯で作成される。
【０１１８】
一つは、先の第１実施形態と同様にクライアントＰＣ２０１で利用者２００が明示的に入力する分析手順のスクリプトに従って分析を行うものであり、分析処理入力プログラム２０１０を通じて行われる。もう一つは、分析サーバＰＣ２１０で動作するスケジューラプログラム２１０１が、高い評価を与えられた分析に関して、その分析スクリプトでの入力データのパラメータを変更した、類似の分析フローをスクリプトとして自動生成し、その計算を行うものである。
【０１１９】
まず、分析対象となる素データを保持するＤＢ２３１〜２３３に関し、本実施形態を第１の実施形態と比較した際の特徴的な差分機能について述べる。本第２実施形態の構成において特徴的な差分は、各データの間に距離関数を定義する機構が備わっている点と、小規模なサンプリングの分割セットがあらかじめ定義されており、データ分析モジュール２２１１がこの分割セットを単位として入力を受付ける点である。この分割セットは時空間データとして同一区分とみなされるデータを一まとめにまとめたグループである。このような分割の例としては、ある特定領域のある時間区分（特定の市町村、特定の１時間など）で発生したデータを１グループとして纏めたものなどの例がこれに相当する。分割セット毎にヘッダ領域が用意され、データのサイズや分割セットの特徴、セット間の関係を記述するためメタデータが記述される。
【０１２０】
図１０は、この要素データ間の距離関数とサンプリング用の分割セットを実現するデータ構造１１００の一例であり、本第２実施形態はこのデータ構造に基づいて構築されているものとする。本第２実施形態では、各要素データ１１１０について時間を指示するデータ（時間情報）１１０１と空間１１０２を指示するデータを最低一つ持っている。このようなデータ例として、商品販売情報、チケットの配布情報、ＧＰＳのような位置データの取得情報、各地に配置されたセンサ機器の受信情報や、エラーログの情報等をあげることが出来る。また、後述の距離関数を適切に定義してやることにより、この実施形態における位置を、地図上の物理的な位置に限定せず、データの区分関係図の中における位置や、ｗｅｂ上のアドレスなどを対象とした広義の概念に対して実施することもできる。
【０１２１】
ＤＢ２３１では、各要素データ１１１０は、空間と時間に基づいたグループデータ１１２０に分割された上で管理されている。本第２実施形態では、このグループの分類基準は、所属地域、時刻、端末保有者などによる多次元分類であるとする。これらのＤＢ２３１〜２３３のデータの実体はネットワーク上に配置されたストレージを管理する情報処理機器に保存されており、その保存位置への参照テーブル示したインデックスがストレージ（外部記憶装置３０７）に保存されている。このインデックスの内容は、時刻や位置によってグルーピングされた単位でストレージ上に管理されている。
【０１２２】
＜時空間データ間の距離関数＞
要素データ同士や要素データを束ねる図１０の各グループデータ１１２０の間では、距離が定義可能となっている。この距離は、データ同士の時間情報１１０１と空間情報１１０２に基づいて定義される。このような距離は、規定のルールに基づいて動的に作成する場合と、距離をテーブルとして保持されている場合、またはその組み合わせによって実現される。
【０１２３】
＜時間データに基づく距離の定義＞
時間（時刻）を基準としたグループ間の距離については、データに記載された時間の差を単純にとった距離だけではなく、同じ週の日付が近い距離として定義したものや、別の年の同じ日付のデータが近い値になるように定義されたものを作成し、それぞれの合成値を総合的な距離関数として用いる。
【０１２４】
この実現例として、本実施形態では、二つの時間の異なるデータがあった場合、時間に基づくデータ間距離の要素として、
１：時刻の差の二乗の逆数を取ったもの、
２：時刻について２４時間で割った余りの値の差を出し、その二乗の逆数を取ったもの、
３：時刻について一週間２４時間×７日＝１６８時間で割った余りの値の差を出し、その二乗の逆数を取ったもの、
といった三種類の値を線形和で合計した距離関数を登録する。
【０１２５】
また、空間を基準としたグループ間の距離については、地図上の単純なユークリッド距離や、一般交通手段による移動時間を用いた距離、互いに隣接した県の距離を１として数え上げる距離や、地方行政を木構造として保持したときの枝の数を距離として定義したものを用意する。
【０１２６】
＜空間データに基づく距離の定義＞
本第２実施形態での空間情報は、図１１に示すように、各グループが空間位置の属する地区行政区分（国１２０１、地方１２０２、県１２０３、市区町村１２０４）を階層とした木構造で纏められている。このことを前提にして、互いのグループを以下のように定義する。まず市区町村と市区町村のように、行政区分が同一のカテゴリに存在する場合には、データの算術平均で得られる位置同士の距離の値に定数をかけた値Ａをデータ間の距離とする。県と市区町村のように一段階異なったカテゴリに属する行政区分が、木構造の中で親子関係にある場合には、距離として定数Ｂを割り当てる。上記のルールで割り当てられなかったＸとＹの距離については、ＸとＺの距離＋ＺとＹの距離を最小にするＺを探し、そのときの値をＸ、Ｙの距離とする。
【０１２７】
＜保有者データに基づく距離の定義＞
また、クライアントＰＣ２０１の端末保有者についても、上記行政区分と同様に木構造で管理される分類区分（この例として、ビジネス端末を保有する法人主体の商売区分・チェーン店グループ・各店舗・各端末を木構造で保持したものや、個人端末を保有者の性別・年齢の分類を木構造で保持したものなどをあげることができる）が存在する場合には、同様のルールで距離を定義する。
【０１２８】
＜スケジューラプログラムに対する追加＞
次に、分析サーバＰＣ２１０のスケジューラプログラム２１０１に対して第１の実施形態からの変更点の内容を述べる。
【０１２９】
第１の実施形態の図１２で記述されたスケジューラプログラム２１０１の処理は、図１５で示されるスケジューラ処理に置き換えられる。工程１６０１から１６０７までの処理は、第１の実施形態の１３０１から１３０７までの処理と同一である。
【０１３０】
工程１６０６で削除データの検索後、本第２実施形態においては、工程１６０８で中間データに対する評価値が、（５）式で表される値Ｘ２より大きかった場合には、類似の分析フローの新規作成についての操作を行う（工程１６０９）。
Ｘ２＝ｍ２＿ｓ×（Ｓ＿０−Ｓ＿ｃ）−ｍ２＿ｔ×（Ｔ＿ｃ）−ｍ２＿ｐ×Ｐ＿ｃ
………（５）
ただし、Ｓ＿０はキャッシュＤＢ２４１のストレージ（外部記憶装置３０７）の残り容量、Ｓ＿ｃは現在の中間データがキャッシュを占有しているデータサイズ、Ｔ＿ｃは参照元となる分析での処理にかかった計算コスト８０４の値、Ｐ＿ｃは現在の分析サーバＰＣ２１０と子分析サーバＰＣ２２１〜２２３のＣＰＵ負荷の比率である。
【０１３１】
各中間データについて、更新された評価値が、上記値Ｘ２で定められる閾値よりも高かった場合には、該当する分析内容に類似した中間データの作成スクリプトを図１４に示すような後述する一連の工程に従って生成し、分析サーバＰＣ２１０のスケジューラプログラム２１０１の処理タスクに新規登録する（工程１６１０）。
【０１３２】
このスケジューラプログラム２１０１はクライアントＰＣ２０１からのデータ分析フローを受け取るものと同じプログラムであり、クライアントＰＣ２０１から送られてきた場合と同様に、中間データの作成を行って結果をキャッシュＤＢ２４１に保存する。
【０１３３】
＜類似中間データの作成＞
図１４は、上記図１５の工程１６１０での処理の詳細を示し、ある分析フローから生まれた評価の高い中間データに対し、類似するデータ分析フローのスクリプトを生成する工程を記した図である。
【０１３４】
工程１５０１では、スケジューラプログラム２１０１が模倣元の分析フローを構成する全木構造が保有するデータ抽出処理の中から、ランダムにあるデータ抽出処理を選択する。
【０１３５】
工程１５０２では、該当する処理のノードについて、抽出に用いられている制約のパラメータを変更する。この際、元分析での抽出データと新規分析での抽出データとの距離ｄが、正規分布に従った乱数となるように、まず、パラメータとしての距離ｄの値を決定する（工程１５０２）。その上で元分析での分析対象のセットと、距離ｄの関係にあるデータセットを検索する（工程１５０３）。この際に、素データと距離ｄの関係にあるデータセットの候補は、空間または時間など複数の分類軸について可能な組み合わせが多数存在する。工程１５０３で候補として選ばれた集合の中から一つの集合をランダムに選び出す（工程１５０４）。
【０１３６】
以上の処理により、評価の高い中間データと類似した分析処理のデータが、自動で作成される（工程１５０５）。
【０１３７】
上記第２実施形態によれば、分析サーバＰＣ２１０では先に行われた分析の結果に対して評価値（評価点数）を受け付けて、分析を構成している途中段階の複数の中間データに評価値を分配し、この評価値の多寡に応じて、中間データの削除、保存または派生データの作成を行う。この評価値の中間データへの分配には、データの作成にかかった時間と計算コスト、中間データのサイズとキャッシュＤＢ２４１で利用可能なディスク（ストレージ領域）の残り容量、閲覧または評価から経過した時間の、各要素を統合的に用いて行う。また、複数の分析結果において利用された中間データについては、評価値を累積的に蓄積して、データ管理基準として用いることが可能となる。
【０１３８】
＜第３実施形態＞
＜リコメンデーション＞
第３実施形態では、データの分析を依頼した利用者２００に対し、要望の分析と類似しており既に存在する中間データを利用して生成することが出来るデータ分析フローの例と、その分析にかかる計算時間（依頼されたデータの分析処理に比較して短縮される時間）をクライアントＰＣ２０１で提示する構成を前記第１実施形態に付加したもので、その他の構成は前記第１実施形態と同様である。利用者２００は、クライアントＰＣ２０１で推奨されたより効率的に得られるデータ分析フローの実行を希望する場合には、先のデータ分析よりも高い優先度を付けてスケジューラプログラム２１０１に送る。
【０１３９】
この第３実施形態は、第１の実施形態に対し、以下の変更を付け加えることで実施可能となる。
【０１４０】
図１８は、第１の実施形態における図８で示される工程を、本第３実施形態の目的に合わせて変更したものである。
【０１４１】
工程１９０１〜１９０６までの処理は、前記第１実施形態の図８に示した工程９０１〜９０６と同様の処理を行う。ただし工程１９０２において、分析サーバＰＣ２１０は比較結果が異なっていた場合には、Ｆａｌｓｅの値を帰り値として返すかわりに、同一ではないが類似している分析処理結果があったと判断して、その差分をスタックに保存登録する。この差分情報がスタックに詰まれる場合、工程１９０７において、図２７に示す構造体２８００を作成する。基分析の木構造の中から、類似部分と判断された部分を、この中間データと置換して残りの分析を行う場合のスクリプト（部分木を中間データと置換することで得られる）を領域２８０１に記載する。続いて、スタックに詰まれた差分の情報を２８０２に書き込む。また、該当する中間データを作成するのに要した時間（８０４に記載済み）と、中間データを読み込むのにかかる時間（データサイズとストレージ読み込み速度から計算）の、差を２８０３に書き込む。この内容をクライアントＰＣに送信し、差分情報２２０１と差分予想時間２２０２を利用者に提示する。利用者がこのデータの再利用を認める入力を行った場合には、２２０１で書かれたデータ処理を分析サーバＰＣ２１０に送る。
【０１４２】
以上の処理により、類似分析フローのリコメンデーションを利用者２００にフィードバックすることが出来るようになる。
【０１４３】
＜第４実施形態＞
第４実施形態では、利用者２００の行動に含まれる暗黙情報から評価値を作成して、データの削除と更新をする手法を前記第１実施形態の構成に付加した例について述べる。
【０１４４】
以下の作業は、第１の実施形態の図４に示した工程５０７において、利用者２００が明示的に評価数値を入力していた工程の代わりに、利用者２００の行動自体から情報を検出する機構を記述したものである。
【０１４５】
この工程は評価結果入力プログラム２０１２が実行する。この評価結果入力プログラム２０１２は、利用者２００がクライアントＰＣ２０１でビューアプログラムの視聴を行っている間の所作と、明示的に入力された評価値を取得し、分析サーバＰＣ２１０のスケジューラプログラム２１０１に送信する専用のプログラムである。
【０１４６】
評価結果入力プログラム２０１２は、利用者２００が分析結果に興味を抱いたかどうかの推定を、複数の評価手法を組み合わせて行う。本実施形態では、以下に挙げる四つの分析（評価基準１〜４）を行い、これらの全ての評価値の合計を、評価値として用いる。
【０１４７】
＜利用者による評価の明示的入力＞
評価基準１では、第１の実施形態と同様に、ユーザ自身が分析結果に対する満足度を数値として入力する。インターフェース機器（入力装置）２０２から入力された０〜１００数値を直接評価値Ｅ＿１とする。
【０１４８】
＜提示・観察時間の測定＞
評価基準２では、カメラ機器２０４の映像に基づいて、利用者２００の観察時間が長かった場合にはクライアントＰＣ２０１に提示している内容に興味を持っていた可能性が高いという仮定に基づき、分析データが提示されていた時間を基準にして評価を行う。分析結果を表示する分析結果提示プログラム２０１１の画面提示時間ＴＳと、利用者２００が行ったインタラクション操作の回数Ｉを用いて、次の（６）式に従って評価値Ｅ＿２を定める。
Ｅ＿２＝１／（１＋ｂ＿２１ｅｘｐ（ＴＳ））×ｐ１
＋１／（１＋ｂ＿２２ｅｘｐ（Ｉ））×ｐ２    ……（６）
但しｂ＿２１、ｂ＿２３は定数であり、ｐ１、ｐ２はｐ１＋ｐ２＝１００となる重み付けパラメータ（定数）である。
【０１４９】
＜発言回数の記録＞
評価基準３では、複数の利用者２００でデータを閲覧している場合に、利用者２００間の発言が多かった場合には提示内容に関する議論が活発に行われていた可能性が高いとみなし、この発声時間を元に評価を計算する。マイクに入った音声情報からの発声時間の総計ＴＶをカウントし、次の（７）式により評価値Ｅ＿３を定める。
Ｅ＿３  ＝１／（１＋ｂ＿３  ｅｘｐ（ＴＶ））×１００  ………（７）
但しｂ＿３は定数とする。
【０１５０】
＜視線の抽出＞
評価基準４では、カメラ機器２０４の映像から、クライアントＰＣ２０１における情報の提示時間に対して利用者２００の視線が画面上に向けられていた時間が長い場合には提示内容に興味を持っていた可能性が高いとみなし、この時間を基準に評価する。画面横に設置されたカメラ機器２０４の画像から顔領域を抽出し、視線が画面に向けられていた期間を計測する（ただし、動画画像から視線を計測する技術に関しては、多くの先行例が存在し、詳細な説明は割愛する）。
【０１５１】
画面上に利用者２００の視線が向けられていた期間の総計ＴＥをカウントし、以下の（８）式により評価値Ｅ＿４を定める。
Ｅ＿４＝１／（１＋ｂ＿４  ｅｘｐ（ＴＥ））×１００  ………（８）
但しｂ＿４は定数とする。
【０１５２】
＜評価の合計＞
評価基準１〜４で得た評価値Ｅ＿１〜Ｅ＿４に対して次の（９）式のように重み付け平均値を求め、データＤ＿ｐの評価値ＥＤ＿ｐとする。
ＥＤ＿ｐ  ＝  ￥ｓｉｇｍａ＿｛ｉ＝０｝＾４  ｍ＿ｉ  ×  Ｅ＿ｉ  ………（９）
この評価値ＥＤ＿ｐを、分析サーバＰＣ２１０のスケジューラプログラム２１０１に送信する。
【０１５３】
以上の処理により、利用者２００の分析データ観察時の行動から情報を抽出し、データの管理に用いることが出来る。
【０１５４】
＜第５実施形態＞
本第５実施形態は、ＷＷＷなどのネットワーク環境を用いて遠隔で複数の利用者２００が分析結果を視聴する場合に、分析結果に対する明示的評価、または暗黙の行動から分析内容の評価値（閲覧情報）を抽出し、抽出した評価値を用いて、第１の実施形態のような分析中間データの管理と前記第２実施形態のような新規分析データの作成を行う機構を追加したものである。
【０１５５】
本第５実施形態での構成を図２１に記載する。分析の結果の可視化データは利用者２００が閲覧するだけでなく、不特定多数の利用者、またはパスワード入力された登録メンバが閲覧できるようにｗｅｂネットワーク２２０２上に公開される。この実現のために、クライアントＰＣ２０１に送られる可視化モジュール２０１１と同様のデータを配信するために、ｗｅｂサーバ２２０１が配置され、ネットワークにつながっている複数の情報処理機器２２０３からのリクエストに応じて、ｗｅｂブラウザ上で分析結果を表示することのできる可視化プログラム２３００を配信する。
【０１５６】
この可視化プログラム２３００の画面例を図示したものが図２２である。これは、図２に示すような汎用計算機上で処理を実行して映像を提示するプログラムにより実装される。この画面表示とインタラクションの実装は現在ｗｅｂブラウザとその上で用いられる各技術を流用することにより実現できる。ここで２３０１は画面に分析結果を可視化して画面上に表示する領域であり、入力領域２３０２へのクリックにより、映像の視点や角度、拡大率などを変化させて表示できる。
【０１５７】
また、この分析結果に関して、テキストで意見交換する掲示板システム２３０３が同時に提示される。また、分析の可視化データのある座標位置に関連付けて脚注を書き込むシステム２３０４が同時に提示される。また、２３０５はこれらの分析データを視聴したあとでの評価を数値として記入する領域である。
【０１５８】
可視化プログラム２３００は、終了時に、ｗｅｂサーバ２２０１に閲覧時刻と処理ログを送信する。また、この分析に関しての評価アンケートを数値として２３０５に記述した場合、そのデータもｗｅｂサーバ２２０１に送られる。これらに対して入力されたデータは２２０１のサーバに送られて保管され、この情報は利用者の間で共有される。このようなｗｅｂ上のデータ管理システムは、既存の先行技術を使用することで実装可能である。
また、ｗｅｂサーバ２２０１は、これらの各閲覧者からの評価を受け取るプログラムである。
【０１５９】
前記第１の実施形態の図４の工程５０７において、利用者２００が明示的に入力する評価数値の代わりに、以下に挙げる四つの分析を行い、これらの全ての評価値の合計を、評価値として用いる。
【０１６０】
＜評価値平均＞
クライアントＰＣ２０１に入力された評価値の平均値Ｗ１を、次の（１０）式のＥ＿ｗ１のように正規化して評価値に変換する。
Ｅ＿ｗ１  ＝１／（１＋ｃ＿１  ｅｘｐ（Ｗ１））×１００  ………（１０）
＜ダウンロード回数＞
前記第５実施形態におけるＷｅｂサーバ２２０１から可視化プログラムがダウンロードされた回数Ｗ２をカウントし、この値をＷ２として、次の（１１）式のＥ＿ｗ２のように正規化して評価値に変換する。
Ｅ＿ｗ２  ＝１／（１＋ｃ＿２  ｅｘｐ（Ｗ２））×１００  ………（１１）
＜ページランク＞
Ｗｅｂ上のクローリングシステムを用い、一般のｗｅｂ情報の中から、Ｗｅｂサーバ２２０１の分析データへの接続ＵＲＬが記載されているページ数をカウントしてＷ３とする。（また、この際に各ページの推定アクセス数などが取得可能な場合には、その値を重み付け数としてカウントする）次の（１２）式のＥ＿ｗ３のように正規化して評価値に変換する。
Ｅ＿ｗ３  ＝１／（１＋ｃ＿３  ｅｘｐ（Ｗ３））×１００  ………（１２）
＜掲示板記述量＞
この掲示板システムに書き込まれた書き込みの文字数Ｗ４１と、書き込み回数Ｗ４２を評価量として用いる。次の（１３）式のＥ＿ｗ４のように正規化して評価値に変換する。Ｅ＿ｗ４  ＝１／（１＋ｃ＿４１  ｅｘｐ（Ｗ４１））×５０
＋１／（１＋ｃ＿４２  ｅｘｐ（Ｗ４２））×５０  ………（１３）
＜脚注記述量＞
この掲示板システムに書き込まれた回数Ｗ５を、評価量として用いる。次の（１４）式のＥ＿ｗ５のように正規化して評価値に変換する。
Ｅ＿ｗ５  ＝１／（１＋ｃ＿５  ｅｘｐ（Ｗ５））×１００  ………（１４）
＜合計表示時間＞
各表示について、ダウンロードされた時刻と、アプリケーションが終了された時刻の差を取り、視聴された表示時間を計算する。この表示時間の合計Ｗ６を、評価量として用い、次の（１５）式のＥ＿ｗ６のように正規化して評価値に変換する。
Ｅ＿ｗ６  ＝１／（１＋ｃ＿６  ｅｘｐ（Ｗ６））×１００  ………（１５）
＜評価の合計＞
上記評価基準１〜４に対して次の（１６）式のように重み付け平均値を求め、データＤ＿ｐの評価値ＥＤ＿ｐとする。
Ｅ＿ｗｐ  ＝  ￥ｓｉｇｍａ＿｛ｐ＝０｝＾７  ｍ＿ｉ  ×  Ｅ＿ｉ  ………（１６）
この評価値ＥＤ＿ｐを、分析サーバＰＣ２１０のスケジューラに送信する。
【０１６１】
以上のように、利用者２００からの評価値を受け付ける手法としては、利用者２００が数値データとして評価値を入れる方法のほか、分析結果の閲覧を行っていた時間、音声データや文章メモの書き込みから得られる議論の活発度や感情的な情報、閲覧者の表情を取得した画像からの情報などを変換したものを評価情報として適用することが出来る。
【０１６２】
＜実施形態６＞
＜パラメータの変更＞
前記第１実施形態または前記実施形態２においては、分析対象となるデータの選択作業について、新規分析データの対象とした。データ抽出モジュールの入力データの変動だけでなく、各分析処理モジュールでの入力パラメータの間に包含・部分集合の関係と、中間データの再利用が可能である場合には、それらのパラメータの変動についても、既存の出力データからの合成・分離を用いることで計算効率の向上が認められる場合がある。本実施形態では、そのようなパラメータの変動にともなう中間データの利用方法を実現するための実装方法について記述する。
【０１６３】
＜分析処理プログラムのパラメータに対する結合・分離性について＞
各データ分析モジュール２１０２について、入力データ以外のパラメータが変更された場合に、中間データが再利用可能であるかどうかを検査するため、分析実行時のパラメータの間に包含関係を構築し、パラメータＡとパラメータＢが同一でない場合には、パラメータＡとパラメータＢの包含関係を確認する。
【０１６４】
このようなパラメータの変更結果に伴う処理が可能な処理の典型的な例として、
（ｉ）時系列データの移動平均計算処理において移動平均の範囲を増加させる場合や、
（ｉｉ）フーリエ変換を行ってある特定の周波数帯のパワー比率を取る演算に対し、フーリエ変換の結果である全周波数成分を中間データとして保持している場合などを挙げることができる。
【０１６５】
パラメータの間に包含関係がある場合には、前記の入力データでの処理と同様に、該当する中間データの再利用を実現する合成処理（結合・削減処理）の方式がモジュールに実現されているかどうかを検査し、パラメータの合成が不可能な場合にはＦａｌｓｅを返す。
【０１６６】
ただし、パラメータの異なる分析処理を結合・削減する処理（第１の実施形態のｆ１、ｆ２と同様に）は以下のように定義する。
ｈ１（ｇ（Ａ、ｘ）、  ｇ（Ｂ、ｘ））  ＝  ｇ（Ａ＋Ｂ、ｘ）  ………（３’）
ｈ２（ｇ（Ａ＋Ｂ、ｘ）、  Ａ）  ＝  ｇ（Ａ、ｘ）            ………（４’）
ただし、ｇ（Ａ、ｘ）は、入力データｘとパラメータＡにたいする分析処理プログラムの処理を表す関数であり、Ａ、Ｂは条件式でありＡ＋ＢはＡとＢの和集合とする。ｈ１は、パラメータＡとパラメータＢを適用したｇ（Ａ、ｘ）、ｇ（Ｂ、ｘ）から、その二つを包含・合成するパラメータＡ＋Ｂの出力結果ｇ（Ａ＋Ｂ、ｘ）の出力結果を計算する関数である。また、ｈ２は、パラメータＡ＋Ｂの出力結果ｇ（Ａ＋Ｂ、ｘ）の出力結果と、Ａ＋Ｂの部分集合Ａを指定したとき、ｇ（Ａ＋Ｂ、ｘ）の出力結果を計算する関数である。
【０１６７】
これらの処理が実現可能なモジュールについては、第１の実施形態と同様に、分析フロー改変スクリプトを作ることにより、パラメータの変動に対しても中間データを使用することが出来るようになる。
【０１６８】
なお、上記各実施形態では、複数の計算機で各処理を実行する例を示したが、一つの計算機で上記各処理を実行しても良い。
【０１６９】
以上のように上記各実施形態によれば、分析の中間段階で生成されたデータを保存しておき、保存したデータに対するフィードバック情報を定量化したものを評価値として受け付け、評価値が所定の条件を満たした中間データについては優先的に削除する一方で、評価値が所定の条件を満たしていない中間データを保存することで、次回の分析の際には、中間データを再利用して分析を行うことが可能となって、中間データを保存する領域が過大になるのを防ぎながらも中間データを利用した高速な分析処理を実現できる。
【産業上の利用可能性】
【０１７０】
以上のように、本発明はデータの分析を行う計算機システムに適用することができ、特に、素データから分析を行うために中間データを生成する計算機システム及びプログラムに適用することができる。
【符号の説明】
【０１７１】
２０１  クライアントＰＣ
２１０  分析サーバＰＣ
２２１〜２２３  子分析サーバＰＣ
２３１〜２３３  ＤＢ
２４１  キャッシュＤＢ
【図１】
2011002911.tif 000003
【図２】
2011002911.tif 000004
【図３】
2011002911.tif 000005
【図４】
2011002911.tif 000006
【図５】
2011002911.tif 000007
【図６】
2011002911.tif 000008
【図７】
2011002911.tif 000009
【図８】
2011002911.tif 000010
【図９】
2011002911.tif 000011
【図１０】
2011002911.tif 000012
【図１１】
2011002911.tif 000013
【図１２】
2011002911.tif 000014
【図１３】
2011002911.tif 000015
【図１４】
2011002911.tif 000016
【図１５】
2011002911.tif 000017
【図１６】
2011002911.tif 000018
【図１７Ａ】
2011002911.tif 000019
【図１７Ｂ】
2011002911.tif 000020
【図１８】
2011002911.tif 000021
【図１９】
2011002911.tif 000022
【図２０】
2011002911.tif 000023
【図２１】
2011002911.tif 000024
【図２２】
2011002911.tif 000025
【図２３】
2011002911.tif 000026
【図２４】
2011002911.tif 000027
【図２５】
2011002911.tif 000028
【図２６Ａ】
2011002911.tif 000029
【図２６Ｂ】
2011002911.tif 000030
【図２７】
2011002911.tif 000031