(57)【特許請求の範囲】
【請求項１】
データ群を記憶するデータベースにアクセス可能であり、前記データベースに対する要求元からのデータ取得要求に応じたデータを前記データベースから取得して前記要求元に返すデータ取得装置であって、
プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、
前記プロセッサは、
前記要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、前記データ取得要求の種類と、前記データ取得要求の時系列順を規定する取得タイミングと、を学習する学習処理と、
前記一連のデータ取得要求以降の第１データ取得要求に先立って、前記学習処理による学習結果に基づいて、前記要求元から取得され得るデータ取得要求である第１の次回推定データ取得要求の種類および取得タイミングを特定する特定処理と、
前記特定処理によって種類が特定された第１の次回推定データ取得要求に該当するデータを、前記データベースから取得する事前取得処理と、
前記第１データ取得要求が受信された場合、前記第１データ取得要求に含まれる種類と、前記特定処理によって特定された前記第１の次回推定データ取得要求の種類と、が一致するか否かを判断する判断処理と、
前記判断処理によって一致すると判断された場合、前記事前取得処理による事前取得結果を、前記特定処理によって特定された前記第１の次回推定データ取得要求の取得タイミングで前記要求元に送信する送信処理と、
を実行することを特徴とするデータ取得装置。
【請求項２】
請求項１に記載のデータ取得装置であって、
前記学習処理では、前記プロセッサは、前記要求元からの過去の一連のデータ取得要求について、前記要求元から前記一連のデータ取得要求の各々のデータ取得要求がその時系列順で前記要求元から選択される確率を算出し、
前記特定処理では、前記プロセッサは、前記第１の次回推定データ取得要求の種類を前記学習処理によって算出された確率に基づいて特定する、
ことを特徴とするデータ取得装置。
【請求項３】
請求項２に記載のデータ取得装置であって、
前記特定処理では、前記プロセッサは、前記第１の次回推定データ取得要求が複数存在する場合、最も確率が高い確率を有する第１の次回推定データ取得要求の種類および取得タイミングを特定することを特徴とするデータ取得装置。
【請求項４】
請求項３に記載のデータ取得装置であって、
前記特定処理では、前記プロセッサは、前記判断処理によって不一致と判断された場合、選択されなかった第１の次回推定データ取得要求の種類および取得タイミングを特定し、
前記判断処理では、前記プロセッサは、前記第１データ取得要求に含まれる種類と、前記選択されなかった第１の次回推定データ取得要求の種類と、が一致するか否かを判断し、
前記特定処理では、前記プロセッサは、前記第１データ取得要求に含まれる種類と、前記選択されなかった第１の次回推定データ取得要求の種類と、が一致すると判断された場合、前記学習結果に基づいて、前記第１データ取得要求の次に前記要求元から取得され得るデータ取得要求である第２の次回推定データ取得要求の種類および取得タイミングを特定することを特徴とするデータ取得装置。
【請求項５】
請求項１に記載のデータ取得装置であって、
前記学習処理では、前記プロセッサは、前記要求元からの過去の一連のデータ取得要求の各々について、１つ前のデータ取得要求からの経過時間に基づいて、前記取得タイミングを学習する、
ことを特徴とするデータ取得装置。
【請求項６】
請求項１に記載のデータ取得装置であって、
前記プロセッサは、
前記第１の次回推定データ取得要求の取得タイミングが、前記第１の次回推定データ取得要求に該当するデータの所定の形式への変換に要するデータ変換時間の経過時以降となるように、前記事前取得処理の起動タイミングを設定する設定処理を実行し、
前記事前取得処理では、前記プロセッサは、前記設定処理によって設定された起動タイミングで、前記第１の次回推定データ取得要求に該当するデータを前記データベースから取得する、
ことを特徴とするデータ取得装置。
【請求項７】
請求項１に記載のデータ取得装置であって、
前記要求元は、利用者の識別情報によって特定されることを特徴とするデータ取得装置。
【請求項８】
請求項１に記載のデータ取得装置であって、
前記要求元は、前記要求元で前記データ取得要求を発行するアプリケーションの識別情報によって特定されることを特徴とするデータ取得装置。
【請求項９】
請求項１に記載のデータ取得装置であって、
前記事前取得処理では、前記プロセッサは、前記第１データ取得要求の次の第２データ取得要求に先立って前記要求元から取得され得るデータ取得要求である第２の次回推定データ取得要求に該当するデータが、前記第１データ取得要求に該当するデータと重複する場合、前記第２の次回推定データ取得要求に該当するデータのうち前記第１データ取得要求に該当するデータと重複しないデータを前記データベースから取得して、前記第１データ取得要求に該当するデータと重複するデータとマージする、
ことを特徴とするデータ取得装置。
【請求項１０】
請求項６に記載のデータ取得装置であって、
前記設定処理では、前記プロセッサは、複数の前記要求元の各々からの前記第１の次回推定データ取得要求に該当するデータを前記データベースから取得する前記事前取得処理の時間帯が重複する場合、重複する時間帯の数が前記要求元の数よりも少なくなるように、前記複数の要求元の前記事前取得処理の前記起動タイミングを調整する、
ことを特徴とするデータ取得装置。
【請求項１１】
データ群を記憶するデータベースにアクセス可能であり、前記データベースに対する要求元からのデータ取得要求に応じたデータを前記データベースから取得して前記要求元に返すデータ取得装置によるデータ取得方法であって、
前記データ取得装置は、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、
前記プロセッサは、
前記要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、前記データ取得要求の種類と、前記データ取得要求の時系列順を規定する取得タイミングと、を学習する学習処理と、
前記一連のデータ取得要求以降の第１データ取得要求に先立って、前記学習処理による学習結果に基づいて、前記要求元から取得され得るデータ取得要求である第１の次回推定データ取得要求の種類および取得タイミングを特定する特定処理と、
前記特定処理によって種類が特定された第１の次回推定データ取得要求に該当するデータを、前記データベースから取得する事前取得処理と、
前記第１データ取得要求が受信された場合、前記第１データ取得要求に含まれる種類と、前記特定処理によって特定された前記第１の次回推定データ取得要求の種類と、が一致するか否かを判断する判断処理と、
前記判断処理によって一致すると判断された場合、前記事前取得処理による事前取得結果を、前記特定処理によって特定された前記第１の次回推定データ取得要求の取得タイミングで前記要求元に送信する送信処理と、
を実行することを特徴とするデータ取得方法。
【請求項１２】
データ群を記憶するデータベースにアクセス可能であり、前記データベースに対する要求元からのデータ取得要求に応じたデータを前記データベースから取得して前記要求元に返すデータ取得装置で実行されるデータ取得プログラムであって、
前記データ取得プログラムを実行するプロセッサに、
前記要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、前記データ取得要求の種類と、前記データ取得要求の時系列順を規定する取得タイミングと、を学習する学習処理と、
前記一連のデータ取得要求以降の第１データ取得要求に先立って、前記学習処理による学習結果に基づいて、前記要求元から取得され得るデータ取得要求である第１の次回推定データ取得要求の種類および取得タイミングを特定する特定処理と、
前記特定処理によって種類が特定された第１の次回推定データ取得要求に該当するデータを、前記データベースから取得する事前取得処理と、
前記第１データ取得要求が受信された場合、前記第１データ取得要求に含まれる種類と、前記特定処理によって特定された前記第１の次回推定データ取得要求の種類と、が一致するか否かを判断する判断処理と、
前記判断処理によって一致すると判断された場合、前記事前取得処理による事前取得結果を、前記特定処理によって特定された前記第１の次回推定データ取得要求の取得タイミングで前記要求元に送信する送信処理と、
を実行させることを特徴とするデータ取得プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを取得するデータ取得装置、データ取得方法、およびデータ取得プログラムに関する。
【背景技術】
【０００２】
Ｃｏｍｍｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｍｏｄｅｌ（ＣＩＭ）は、基幹系統Ｅｎｅｒｇｙ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ（ＥＭＳ）における電力設備（電力系統を構成する発電所、変電所、送電線など）を運用するシステムにおいて、標準情報モデルおよびシステム内／アプリケーションデータ交換を規定したモデルである。ＣＩＭで電力系統の情報を共通化することで、電力系統の監視・制御・分析用アプリケーション間におけるデータ交換が容易になる。これにより、アプリケーション間の接続性およびシステムの拡張性を高めることができる。【０００３】
たとえば、関係データベース形式（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ（ＲＤＢ）形式）で管理している電力ネットワークモデルデータベース（以下、電力ＮＷモデルＤＢ）がある。電力ＮＷモデルＤＢは、基幹系統ＥＭＳにおける電力設備の情報を格納する。たとえば、ユーザ操作または業務処理において、電力ＮＷモデルＤＢから、位置情報が「地点Ａ」で、その他属性が「高圧の設備」である属性の組を満たす情報が取得される。電力ＮＷモデルＤＢを活用した業務ではデータ取得要求に対して素早く応答することが求められるが、データ取得要求の度にＲＤＢ形式からＥｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）形式へのデータ変換処理が行われるため、素早く応答することが困難となる。【０００４】
データ取得要求に対して素早く応答するための技術として、例えば、下記特許文献１がある。特許文献１のキャッシュ方法は、クライアントからの検索要求データがキャッシュデータベース上に存在しない時、マスタデータベースは検索結果レコードを分散キャッシュデータベースに返し、参照ビットマップテーブル上の該当ビットをＯＮにする。以後同じレコードの検索要求があった場合、特許文献１のキャッシュ方法は、分散キャッシュデータベース上のデータを返す。マスタデータベースを更新した場合には、特許文献１のキャッシュ方法は、参照ビットがＯＮになっている分散キャッシュデータベースに対してのみデータを更新する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２０３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のキャッシュ方法でキャッシュされるデータは、電力系統で電力設備を運用するシステムでのユーザ操作または業務処理において、その時必要とされるデータとは限られない。したがって、特許文献１のキャッシュ方法は、必ずしもデータ応答の改善にはつながらない。【０００７】
本発明は、要求に応じて取得するデータの応答遅延の抑制を図ることを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の一側面となるデータ取得装置、データ取得方法、およびデータ取得プログラムは、データ群を記憶するデータベースにアクセス可能であり、前記データベースに対する要求元からのデータ取得要求に応じたデータを前記データベースから取得して前記要求元に返すデータ取得装置、データ取得方法、およびデータ取得プログラムであって、プログラムを実行するプロセッサと、前記プログラムを記憶する記憶デバイスと、を有し、前記プロセッサは、前記要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、前記データ取得要求の種類と、前記データ取得要求の時系列順を規定する取得タイミングと、を学習する学習処理と、前記一連のデータ取得要求以降の第１データ取得要求に先立って、前記学習処理による学習結果に基づいて、前記要求元から取得され得るデータ取得要求である第１の次回推定データ取得要求の種類および取得タイミングを特定する特定処理と、前記特定処理によって種類が特定された第１の次回推定データ取得要求に該当するデータを、前記データベースから取得する事前取得処理と、前記第１データ取得要求が受信された場合、前記第１データ取得要求に含まれる種類と、前記特定処理によって特定された前記第１の次回推定データ取得要求の種類と、が一致するか否かを判断する判断処理と、前記判断処理によって一致すると判断された場合、前記事前取得処理による事前取得結果を、前記特定処理によって特定された前記第１の次回推定データ取得要求の取得タイミングで前記要求元に送信する送信処理と、を実行することを特徴とする。
【発明の効果】
【０００９】
本発明の代表的な実施の形態によれば、要求に応じて取得するデータの応答遅延の抑制を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかるデータ事前取得例を示す説明図である。
【図２】図２は、データ取得システムのシステム構成例を示す説明図である。
【図３】図３は、コンピュータのハードウェア構成例を示すブロック図である。
【図４】図４は、電力ＮＷモデルＤＢの記憶内容例を示す説明図である。
【図５】図５は、取得パターンの一例を示す説明図である。
【図６】図６は、データ取得履歴蓄積テーブルの記憶内容例を示す説明図である。
【図７】図７は、データ取得推定テーブルの記憶内容例を示す説明図である。
【図８】図８は、ステップ情報管理テーブルの記憶内容例を示す説明図である。
【図９】図９は、事前取得情報管理テーブルの記憶内容例を示す説明図である。
【図１０】図１０は、起動タイミング管理テーブルの記憶内容例を示す説明図である。
【図１１】図１１は、データ取得装置の機能的構成例を示すブロック図である。
【図１２】図１２は、学習結果テーブルの一例を示す説明図である。
【図１３】図１３は、学習部による学習処理手順例を示すフローチャートである。
【図１４】図１４は、図１３に示した学習処理（ステップＳ１３０３）の詳細な処理手順例を示すフローチャートである。
【図１５】図１５は、図１４に示した集計処理（ステップＳ１４０９）の詳細な処理手順例を示すフローチャートである。
【図１６】図１６は、図１５に示した選択確率算出処理（ステップＳ１５１０）の詳細な処理手順例を示すフローチャートである。
【図１７】図１７は、図１４に示した代表値算出処理（ステップＳ１４１０）の詳細な処理手順例を示すフローチャートである。
【図１８】図１８は、図１３に示したデータ取得推定テーブル更新処理（ステップＳ１３０４）の詳細な処理手順例を示すフローチャートである。
【図１９】図１９は、データ取得装置によるデータ取得処理の詳細な処理手順例１を示すフローチャートである。
【図２０】図２０は、データ取得装置によるデータ取得処理の詳細な処理手順例２を示すフローチャートである。
【図２１】図２１は、取得パターン列の乗換例を示す説明図である。
【図２２】図２２は、図１９および図２０に示したデータ取得・履歴蓄積処理（ステップＳ１９０６、Ｓ２００６）の詳細な処理手順例を示すフローチャートである。
【図２３】図２３は、データ事前取得処理の詳細な処理手順例を示すフローチャートである。
【図２４】図２４は、実施例２にかかるデータ取得履歴蓄積テーブルの記憶内容例を示す説明図である。
【図２５】図２５は、第２データ取得推定テーブルの記憶内容例を示す説明図である。
【図２６】図２６は、実施例２にかかるデータ取得装置によるデータ取得処理の詳細な処理手順例１を示すフローチャートである。
【図２７】図２７は、実施例３にかかるデータ事前取得例を示す説明図である。
【図２８】図２８は、実施例３にかかるデータ事前取得処理の詳細な処理手順例を示すフローチャートである。
【図２９】図２９は、実施例４にかかる起動タイミングの調整例を示す説明図である。
【図３０】図３０は、起動タイミングの調整処理手順例を示すフローチャートである。
【発明を実施するための形態】
【実施例１】
【００１１】
＜データ事前取得例＞
図１は、実施例１にかかるデータ事前取得例を示す説明図である。データ取得システム１００は、端末１０１と、アプリケーション１０２と、データ取得機能１０３と、電力ＮＷモデルＤＢ１０４と、を有する。端末１０１は、アプリケーション１０２を介してデータ取得機能１０３にデータ取得要求を送信し、データ取得要求に該当するデータを、アプリケーション１０２およびデータ取得機能１０３を介して電力ＮＷモデルＤＢ１０４から取得する。端末１０１は、たとえば、電力設備（電力系統を構成する発電所、変電所）に設けられ、通信網を介してデータ取得機能１０３を有するサーバ（データ取得装置）に通信可能に接続される。【００１２】
アプリケーション１０２は、端末１０１とデータ取得機能１０３との間のインタフェースである。アプリケーション１０２は、端末１０１、または、データ取得装置に実装される。アプリケーション１０２は、対応する電力設備により異なるが、いずれのアプリケーション１０２も電力ＮＷモデルＤＢ１０４からデータを取得するソフトウェアである。【００１３】
データ取得機能１０３は、データアクセス機能１３１と、パターン学習機能１３２と、事前取得機能１３３と、を有する。データアクセス機能１３１は、端末１０１からのデータ取得要求に該当するデータを電力ＮＷモデルＤＢ１０４から取得して、要求元のアプリケーション１０２に返す。具体的には、たとえば、データアクセス機能１３１は、電力ＮＷモデルＤＢ１０４から、データ取得要求に該当する複数の属性のテーブルのエントリを取得して、１つのＸＭＬデータに変換し、変換したＸＭＬデータを要求元のアプリケーション１０２に返す。【００１４】
パターン学習機能１３２は、端末１０１から入力された一連のデータ取得要求のパターンを学習する。たとえば、作業員Ａは、「円（３ｋｍ）」、「円錐」、「円柱」というデータ取得範囲を含む一連のデータ取得要求を端末１０１から送信する。したがって、パターン学習機能１３２は、作業員Ａの場合、「円（３ｋｍ）」→「円錐」→「円柱」の順にデータ取得範囲を選択することを学習する。【００１５】
事前取得機能１３３は、端末１０１からデータ取得要求が受信された場合、当該端末１０１のユーザが次に選択するであろうデータ取得範囲をパターン学習機能１３２の学習結果から特定し、データアクセス機能１３１を制御して、特定したデータ取得範囲内のデータをデータ取得要求の前に取得する。【００１６】
電力ＮＷモデルＤＢ１０４は、電力ＮＷモデルであるＣＩＭを格納するデータベースである。電力ＮＷモデルは、電力設備のノードとし、電線をリンクとするネットワークモデルである。電力ＮＷモデルは、たとえば、２次元の位置情報と、ノードが有する電圧と、で表現される３次元モデルである。電力ＮＷモデルＤＢ１０４は、系統（高圧または低圧）、設備種（発電所、変電所など）、エリア、位置といった属性ごとにテーブルを有する。これにより、データアクセス機能１３１は、データ取得要求に含まれる属性ごとにテーブルから該当するエントリを取得して、１つのＸＭＬデータに変換する。なお、このＸＭＬデータへの変換処理には時間がかかり、レスポンス性能の低下の原因となる。【００１７】
ここで、（１）作業員Ａがパターン入力したとする。具体的には、たとえば、作業員Ａは、データ取得範囲が直径３ｋｍの円である１回目のデータ取得要求を端末１０１から送信し、つぎに、データ取得範囲が円錐である２回目のデータ取得要求を端末１０１から送信し、つぎに、データ取得範囲が円柱である３回目のデータ取得要求を端末１０１から送信したとする。【００１８】
（２）データアクセス機能１３１は、（１）データ取得要求を受け付ける都度、電力ＮＷモデルＤＢ１０４にアクセスして複数の属性のテーブルのエントリを取得して１つのＸＭＬデータにマージする。そして、データアクセス機能１３１は、ＸＭＬデータを端末１０１に返す。【００１９】
（３）パターン学習機能１３２は、作業員Ａが選択した「円（３ｋｍ）」→「円錐」→「円柱」の順のデータ取得範囲を学習する。【００２０】
（４）この後、一旦作業員Ａは、ログアウトし、別の機会に再度端末１０１にログインしたとする。そして、作業員Ａは、データ取得範囲が直径３ｋｍの円である１回目のデータ取得要求を端末１０１から送信したとする。この場合、上記（２）、（３）に示したように、１回目のデータ取得要求について、データアクセスおよびパターン学習が実行されるが、事前取得機能１３３は、これまでの作業員Ａについての学習結果から、データ取得範囲が『直径３ｋｍの円』の次に選択されるデータ取得範囲は、『円錐』であると特定し、特定したデータ取得範囲『円錐』を含む取得式を作成し、データアクセス機能１３１に渡して先読み指示する。これにより、データアクセス機能１３１は、２回目のデータ取得要求の到来前に、電力ＮＷモデルＤＢ１０４から、特定したデータ取得範囲『円錐』に含まれるデータを取得してＸＭＬデータに変換することができる。これにより、作業員Ａは、２回目のデータ取得要求をしてからその応答を受信するまでの間、データ取得処理に要する時間分待機することなく、即時応答を得ることができる。【００２１】
このように、データ取得システム１００は、どのようなデータ取得要求が到来するかを予測して該当するデータを先読みするため、応答性能の向上を図ることができる。また、先読み対象となるデータを予測することにより、先読みによる処理負荷の低減を図ることができる。【００２２】
＜システム構成例＞
図２は、データ取得システム１００のシステム構成例を示す説明図である。データ取得システム１００は、サーバであるデータ取得装置２００と、端末１０１と、が通信網２０１を介して通信可能に接続された構成である。データ取得装置２００は、電力ＮＷモデルＤＢ１０４を有する。ただし、電力ＮＷモデルＤＢ１０４は、通信網２０１を介してデータ取得装置２００からアクセス可能な他のサーバが有してもよい。【００２３】
＜ハードウェア構成例＞
図３は、コンピュータのハードウェア構成例を示すブロック図である。コンピュータは、たとえば、図２に示したデータ取得装置２００および端末１０１である。コンピュータ３００は、プロセッサ３０１と、記憶デバイス３０２と、入力デバイス３０３と、出力デバイス３０４と、通信インターフェース（通信ＩＦ３０５）と、を有する。プロセッサ３０１、記憶デバイス３０２、入力デバイス３０３、出力デバイス３０４、および通信ＩＦ３０５は、バス３０６により接続される。プロセッサ３０１は、コンピュータ３００を制御する。記憶デバイス３０２は、プロセッサ３０１の作業エリアとなる。また、記憶デバイス３０２は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス３０２としては、たとえば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フラッシュメモリがある。入力デバイス３０３は、データを入力する。入力デバイス３０３としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス３０４は、データを出力する。出力デバイス３０４としては、たとえば、ディスプレイ、プリンタがある。通信ＩＦ３０５は、通信網２０１と接続し、データを送受信する。【００２４】
＜電力ＮＷモデルＤＢ１０４＞
図４は、電力ＮＷモデルＤＢ１０４の記憶内容例を示す説明図である。電力ＮＷモデルＤＢ１０４は、上述したように、電力ＮＷモデルであるＣＩＭを格納するデータベースであり、電力ＮＷモデルは、電力設備のノードとし、電線をリンクとするネットワークモデルである。電力ＮＷモデルＤＢ１０４は、上述した記憶デバイス３０２により実現される。電力ＮＷモデルＤＢ１０４は、具体的には、たとえば、属性（系統、設備種、エリア、位置情報、…）ごとにノードＩＤを対応付けたテーブルの集合であるが、ここでは、説明上、電力ＮＷモデルを構成するノードＮおよびリンクＬが有する情報に着目して説明する。【００２５】
ノードＮは、ノードＩＤ４０１で特定され、系統４０２、設備種４０３、エリア４０４、位置情報４０５、電気特性情報４０６、接続リンクＩＤ４０７を持つ。ノードＩＤ４０１は、電力設備を示すノードＮを一意に特定する識別情報である。系統４０２は、ノードＮの系統を示す識別情報である。系統４０２とは、たとえば、高圧系統か低圧系統化を示す情報である。設備種４０３は、ノードＮの設備の種類を示す情報である。設備種４０３には、たとえば、変圧器や鉄塔がある。【００２６】
エリア４０４は、ノードＮが所属する領域を示す情報である。エリア４０４は、たとえば、市区町村範囲で規定される。位置情報４０５は、ＸＹ平面で張られたノードＮの位置を示す情報である。位置情報４０５は、たとえば、緯度（Ｙ軸方向の値）および経度（Ｘ軸方向の値）で規定される。電気特性情報４０６は、ノードＮのＺ軸方向の値として利用される。電気特性情報４０６は、たとえば、ノードＮにおける電圧値である。接続リンクＩＤ４０７は、接続リンクＬを一意に特定する識別情報である。接続リンクＬとは、ノードＮに接続されるリンクＬである。リンクＬとは、ノードＮである電力設備に接続される電線である。【００２７】
リンクＬは、リンクＩＤ４１１、リンク長４１２により特定される。リンクＩＤ４１１は、リンクＬを一意に特定する識別情報である。リンク長４１２は、リンクＬである電線の長さを示す情報である。【００２８】
＜取得パターン例＞
図５は、取得パターンの一例を示す説明図である。取得パターンは、電力ＮＷモデルの取得範囲を示す。作業者は、端末１０１を操作して取得パターンを選択し、選択した取得パターンを含むデータ取得要求をデータ取得装置２００に送信する。図５では、例として、５種類の取得パターンについて説明する。【００２９】
取得パターンＰ１は、円形状の取得パターンである。取得パターンＰ１は、たとえば、地点Ａを中心とした直径Ｄ［ｋｍ］範囲の円内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、ノードＮである地点Ａの位置情報、円の指定、直径Ｄ、電気特性情報（電圧値）、設備種を端末１０１に与えることにより、端末１０１は、取得パターンＰ１を生成して、データ取得要求を送信することになる。【００３０】
取得パターンＰ２は、円錐状の取得パターンである。取得パターンＰ２は、たとえば、高さが電圧（Ｂ１−Ｂ２）で、底面の円が地点Ａを中心とした直径Ｄ［ｋｍ］範囲の円で構成される円錐内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、地点Ａの位置情報、円錐の指定、直径Ｄ、電気特性情報（電圧値の範囲）、設備種を端末１０１に与えることにより、端末１０１は、取得パターンＰ２を生成して、データ取得要求を送信することになる。【００３１】
取得パターンＰ３は、円柱状の取得パターンである。取得パターンＰ３は、たとえば、高さが電圧Ｂで、底面の円が地点Ａを中心とした直径Ｄ［ｋｍ］範囲の円で構成される円柱内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、地点Ａの位置情報、円柱の指定、直径Ｄ、電気特性情報（電圧値の範囲）、設備種を端末１０１に与えることにより、端末１０１は、取得パターンＰ３を生成して、データ取得要求を送信することになる。【００３２】
取得パターンＰ４は、円錐台状の取得パターンである。取得パターンＰ４は、たとえば、地点Ａからｎホップの範囲である円錐台内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、地点Ａの位置情報、円錐台の指定、ホップ数、電気特性情報（電圧値）、設備種を端末１０１に与えることにより、端末１０１は、取得パターンＰ２を生成して、データ取得要求を送信することになる。ホップ数とは、地点Ａを出発地点としてリンクＬから辿ることができるノード数である。【００３３】
取得パターンＰ５は、球状の取得パターンである。取得パターンＰ５は、たとえば、電圧値がＢである地点Ａからｎホップの範囲である球内の系統に含まれるノード群に関するデータを取得するための取得パターンである。利用者が、たとえば、地点Ａの位置情報、円錐台の指定、ホップ数、電気特性情報（電圧値）、設備種を端末１０１に与えることにより、端末１０１は、取得パターンＰ２を生成して、データ取得要求を送信することになる。ホップ数とは、地点Ａを出発地点としてリンクから辿ることができるノード数である。【００３４】
なお、上記取得パターンＰ１〜Ｐ５は、一例である。また、地点Ａからの範囲指定は、距離およびホップ数のいずれでもよい。また、取得パターンの形状は、取得パターンＰ１〜Ｐ５の形状に限られない。なお、取得パターンは、端末１０１で生成されてもよく、アプリケーション１０２で生成されてもよい。【００３５】
＜データ取得履歴蓄積テーブル＞
図６は、データ取得履歴蓄積テーブル６００の記憶内容例を示す説明図である。なお、以降のデータベースまたはテーブルの説明において、ＡＡフィールドｂｂｂ（ＡＡはフィールド名、ｂｂｂは符号）の値を、ＡＡｂｂｂと表記する場合がある。たとえば、ログＩＤフィールド６０１の値を、ログＩＤ６０１と表記する。【００３６】
データ取得履歴蓄積テーブル６００は、データ取得装置２００が更新するテーブルである。データ取得履歴蓄積テーブル６００は、データ取得装置２００が、作業者からのデータ取得要求により、電力ＮＷモデルＤＢ１０４からのデータ取得に関する履歴を蓄積するテーブルである。【００３７】
データ取得履歴蓄積テーブル６００は、ログＩＤフィールド６０１と、ユーザＩＤフィールド６０２と、セッションＩＤフィールド６０３と、データ取得要求時刻フィールド６０４と、データ処理時間フィールド６０５と、パターン形状フィールド６０６と、属性値フィールド６０７と、を有する。同一行における各フィールド６０１〜６０７の値により、データ取得履歴情報を示すエントリが構成される。【００３８】
ログＩＤフィールド６０１は、ログＩＤを格納する記憶領域である。ログＩＤ６０１は、データ取得履歴情報を示すエントリを一意に特定する識別情報である。データ取得履歴情報は、ある作業者の１回のデータ取得に対応する。ユーザＩＤフィールド６０２は、ユーザＩＤを格納する領域である。ユーザＩＤ６０２は、ユーザである作業者を一意に特定する識別情報である。ユーザＩＤ（パスワードが含まれていてもよい）６０２は、事前登録により作業者に付与される。ユーザＩＤ６０２がデータ取得装置２００（データ取得機能１０３またはアプリケーション１０２）に認証されることで、利用者は、データ取得装置２００にログインすることができ、データ取得装置２００を利用することができる。【００３９】
セッションＩＤフィールド６０３は、セッションＩＤを格納する記憶領域である。セッションＩＤ６０３は、セッションを一意に特定する識別情報である。ここで、セッションとは、作業者がデータ取得装置２００にログインしてからログアウトするまでの状態をいう。すなわち、セッションの期間中は、作業者は、何度もデータ取得要求を端末１０１から送信することができる。【００４０】
データ取得要求時刻フィールド６０４は、データ取得要求時刻を格納する記憶領域である。データ取得要求時刻６０４は、データ取得要求があった時刻である。具体的には、たとえば、端末１０１からのデータ取得要求の送信時刻でもよく、データ取得装置２００におけるデータ取得要求の受信時刻でもよい。図６のタイムチャートの時刻ｔ１が、あるユーザのログイン後の１回目のデータ取得要求Ｒ１におけるデータ取得要求時刻６０４であり、時刻ｔ２が、あるユーザの２回目のデータ取得要求Ｒ２におけるデータ取得要求時刻６０４である。【００４１】
データ処理時間フィールド６０５は、データ処理時間を格納する記憶領域である。データ処理時間６０５とは、データアクセス機能１３１がデータ取得要求により電力ＮＷモデルＤＢ１０４にアクセスしてから、該当するデータを読み出して、ＸＭＬデータへの変換が完了して出力するまでの時間（データ変換時間）である。図６のタイムチャートの時間ＴＰ１が、あるユーザのログイン後の１回目のデータ取得要求Ｒ１におけるデータ取得要求時刻６０４（ｔ１）からＸＭＬデータの出力までのデータ処理時間６０５であり、時間ＴＰ２が、あるユーザの２回目のデータ取得要求Ｒ２におけるデータ取得要求時刻６０４（ｔ２）からＸＭＬデータの出力までのデータ処理時間６０５である。【００４２】
パターン形状フィールド６０６は、パターン形状を格納する記憶領域である。パターン形状６０６は、たとえば、図５に示した図形を示す識別情報である。属性値フィールド６０７は、属性値を格納する記憶領域である。属性値６０７は、電気特性情報４０６である電圧と、パターン形状６０６の基準となる地点（図５でいう地点Ａ）と、取得範囲と、を含む。取得範囲は、パターン形状６０６により包含されるＸＹ平面の範囲である。たとえば、パターン形状６０６が円であれば、円の直径Ｄである。すなわち、パターン形状６０６により、取得パターンの形状が決まり、属性値６０７により、取得パターンの範囲が決まる。【００４３】
＜データ取得推定テーブル＞
図７は、データ取得推定テーブルの記憶内容例を示す説明図である。データ取得推定テーブル７００は、データ取得装置２００が更新するテーブルである。データ取得履歴蓄積テーブル６００は、データ取得装置２００が、作業者からのデータ取得要求があった場合に、次のデータ取得要求の前に、当該次のデータ取得要求によるデータ取得を推定するためのテーブルである。【００４４】
データ取得推定テーブル７００は、ステップ番号フィールド７０１と、ユーザＩＤフィールド６０２と、パターン形状フィールド６０６と、代表属性値フィールド７０２と、次回取得タイミング配列フィールド７０３と、を有する。同一行の各フィールドの値により、次の取得パターンを推定するためのデータ取得推定情報を示すエントリが構成される。【００４５】
ステップ番号フィールド７０１は、ステップ番号を格納する記憶領域である。ステップ番号７０１は、データ取得要求を一意に特定する識別情報である。代表属性値フィールド７０２は、代表属性値７０２を格納する記憶領域である。代表属性値７０２とは、属性値６０７を代表する値であり、たとえば、統計的な属性値である。統計的な属性値とは、属性値６０７の平均値、最小値、最大値、または、中央値である。代表属性値７０２は、代表電圧および代表取得範囲を含む。代表電圧は、統計的な電圧値であり、たとえば、電圧値の平均値、最小値、最大値、または、中央値である。代表取得範囲は、統計的な取得範囲であり、たとえば、取得範囲（たとえば、パターン形状６０６が円であれば、円の直径Ｄ）の平均値、最小値、最大値、または、中央値である。【００４６】
なお、図６のデータ取得履歴蓄積テーブル６００における属性値６０７は、電圧、地点、取得範囲を含むが、代表属性値７０２は、地点を含まない。初回の事前取得する場合は、データ取得履歴蓄積テーブルに蓄積されている対象ユーザの最新の取得履歴に含まれる位置情報を用いられる。また、２回目以降は、直前のデータ取得要求で指定された位置情報が用いられる。【００４７】
次回取得タイミング配列フィールド７０３は、０個以上の次回取得タイミング配列を格納する記憶領域である。次回取得タイミング配列７０３は、次に到来すると推定されるデータ取得要求である次回推定データ取得要求を示すステップ番号７０１と、当該次回推定データ取得要求による代表取得時間（単位は、たとえば、分）と、選択確率と、からなる配列データである。たとえば、次回取得タイミング配列７０３が［Ｕ００３］［１］［７０］である場合、先頭の［Ｕ００３］がステップ番号７０１であり、中央の［１］が代表取得時間であり、末尾の［７０］が選択確率である。なお、次回取得タイミング配列フィールド７０３には、１以上の次回取得タイミング配列７０３が記憶されるが、最後のデータ取得要求については、次回推定データ取得要求が存在しないため、「ＮＵＬＬ」となる。【００４８】
代表取得時間とは、取得時間の代表値である。取得時間とは、ある取得要求におけるデータ取得要求時刻６０４（たとえば、ｔ１）から次回推定データ取得要求が受信されるまで、すなわち、次回推定データ取得要求におけるデータ取得要求時刻６０４（たとえば、ｔ２）までの時間（たとえば、Ｔａ２）である。ただし、各セッションにおいて、ログイン時においては、ログインの時刻ｔ０から１回目のデータ取得要求時刻６０４（ｔ１）までの時間を取得時間Ｔａ１とする。また、最後のデータ取得要求については、次のデータ取得要求が存在しないため、取得時間も存在しない。たとえば、最後のデータ取得要求がデータ取得要求Ｒ２である場合、次回推定データ取得要求Ｒ３は存在しないため、取得時間Ｔａ３も存在しない。また、取得時間の代表値とは、統計的な取得時間であり、たとえば、取得時間の平均値、最小値、最大値または中央値である。【００４９】
選択確率とは、次回推定データ取得要求で指定されるであろう取得パターン（パターン形状６０６および代表属性値７０２の組み合わせ）が、ユーザによって次回選択される確率である。たとえば、ステップ番号７０１が「Ｕ００１」のエントリにおける次回取得タイミング配列７０３は、｛［Ｕ００３］［１］［７０］，［Ｕ００４］［１］［３０］｝の２つである。先頭の次回取得タイミング配列７０３｛［Ｕ００３］［１］［７０］｝は、ステップ番号７０１である［Ｕ００３］のデータ取得要求がログイン（パターン形状６０６および代表属性値７０２が「ＮＵＬＬ」）から［１］の時間経過時に、［７０］％の確率で選択されることを意味する。また、末尾の次回取得タイミング配列７０３｛［Ｕ００４］［１］［３０］｝は、ステップ番号７０１である［Ｕ００４］のデータ取得要求がログイン（パターン形状６０６および代表属性値７０２が「ＮＵＬＬ」）から［１］の時間経過時に、［３０］％の確率で選択されることを意味する。【００５０】
同様に、ステップ番号７０１が「Ｕ００３」のエントリにおける次回取得タイミング配列７０３は、｛［Ｕ００８］［５］［９０］，［Ｕ０１０］［７］［１０］｝の２つである。先頭の次回取得タイミング配列７０３｛［Ｕ００８］［５］［９０］｝は、ステップ番号７０１である［Ｕ００８］のデータ取得要求が、ステップ番号７０１である「Ｕ００３」のデータ取得要求から［５］の時間経過時に、［９０］％の確率で選択されることを意味する。また、末尾の次回取得タイミング配列７０３｛［Ｕ０１０］［７］［１０］｝は、ステップ番号７０１である［Ｕ０１０］のデータ取得要求が、ステップ番号７０１である「Ｕ００３」のデータ取得要求から［７］の時間経過時に、［１０］％の確率で選択されることを意味する。【００５１】
なお、パターン形状６０６および代表属性値６０７が「ＮＵＬＬ」のエントリは、ユーザがデータ取得装置２００とのセッション開始時に初めて参照するエントリである。また、次回取得タイミング配列７０３が「ＮＵＬＬ」のエントリは、次のデータ取得要求（ステップ番号７０１）が存在しないことを示すエントリである。【００５２】
＜ステップ情報管理テーブル＞
図８は、ステップ情報管理テーブルの記憶内容例を示す説明図である。ステップ情報管理テーブル８００は、データ取得装置２００が更新するテーブルである。ステップ情報管理テーブル８００は、ユーザごとのデータ取得要求を示すステップ番号７０１を管理するテーブルである。【００５３】
ステップ情報管理テーブル８００は、ユーザＩＤフィールド６０２と、ステップ番号フィールド７０１と、前ステップ番号フィールド８０１と、を有する。同一行の各フィールドの値により、ステップ管理情報を示すエントリが構成される。【００５４】
前ステップ番号フィールド８０１は、前ステップ番号８０１を格納する記憶領域である。前ステップ番号８０１とは、ステップ番号７０１に対応するデータ取得要求の１つ前のデータ取得要求を示すステップ番号７０１である。【００５５】
＜事前取得情報管理テーブル＞
図９は、事前取得情報管理テーブルの記憶内容例を示す説明図である。事前取得情報管理テーブル９００は、データ取得装置２００が事前取得処理（図２２で後述）で更新するテーブルである。事前取得情報管理テーブル９００は、ユーザごとに事前取得したデータを管理するテーブルである。事前取得情報管理テーブル９００は、ユーザＩＤフィールド６０２と、パターン形状フィールド６０６と、属性値フィールド６０７と、事前取得データフィールド９０１と、を有する。同一行の各フィールドの値により、事前取得情報を示すエントリが構成される。【００５６】
事前取得データフィールド９０１は、事前取得データを格納する記憶領域である。事前取得データ９０１は、データアクセス機能１３１が電力ＮＷモデルＤＢ１０４にアクセスして事前取得したデータであり、ユーザＩＤ６０２で特定される作業者が指定するであろう取得パターン（同一エントリのパターン形状６０６および属性値６０７の組み合わせ）に含まれるデータである。【００５７】
＜起動タイミング管理テーブル＞
図１０は、起動タイミング管理テーブルの記憶内容例を示す説明図である。起動タイミング管理テーブル１０００は、データ取得装置２００が更新するテーブルである。起動タイミング管理テーブル１０００は、ユーザごとに起動タイミングを管理するテーブルである。起動タイミング管理テーブル１０００は、ユーザＩＤフィールド６０２と、起動タイミングフィールド１００１と、を有する。同一行の各フィールドの値により、起動タイミング情報を示すエントリが構成される。【００５８】
起動タイミングフィールド１００１は、起動タイミングを格納する記憶領域である。セッションが終了すると、そのユーザＩＤ６０２の起動タイミングフィールド１００１の値は消去される。起動タイミング１００１は、データアクセス機能１３１に電力ＮＷモデルＤＢ１０４からデータを取得させるために事前取得機能１３３を起動するタイミングである。具体的には、たとえば、データ取得推定テーブル７００において、該当するステップ番号７０１のエントリの次回取得タイミング配列７０３のうち、選択確率が最高となる次回取得タイミング配列７０３の代表取得時間が起動タイミング１００１に適用される。【００５９】
たとえば、図１０のタイムチャートに示したように、ステップ番号７０１が「Ｕ００１」のエントリには、２つの次回取得タイミング配列７０３｛［Ｕ００３］［１］［７０］，［Ｕ００４］［１］［３０］｝がある。最高選択確率は、先頭の次回取得タイミング配列７０３｛［Ｕ００３］［１］［７０］｝の［７０］であるため、先頭の次回取得タイミング配列７０３｛［Ｕ００３］［１］［７０］｝の代表取得時間［１］が起動タイミング１００１に適用される。具体的には、たとえば、ログイン時からの代表取得時間［１］の経過時から、同一ユーザＩＤ６０２でかつ同一パターン形状６０６におけるデータ処理時間６０５の平均値分遡った時点が、ステップ番号７０１であるＵ００３に対応するデータ取得要求による事前取得処理の起動タイミング１００１となる。【００６０】
また、ステップ番号７０１が「Ｕ００３」のエントリには、２つの次回取得タイミング配列７０３｛［Ｕ００８］［５］［９０］，［Ｕ０１０］［７］［１０］｝がある。最高選択確率は、先頭の次回取得タイミング配列７０３｛［Ｕ００８］［５］［９０］｝の［９０］であるため、先頭の次回取得タイミング配列７０３｛［Ｕ００８］［５］［９０］｝の代表取得時間［５］が起動タイミング１００１に適用される。具体的には、たとえば、ステップ番号７０１である「Ｕ００３」に対応するデータ取得要求によってＸＭＬデータが出力された時刻からの代表取得時間［５］の経過時から、同一ユーザＩＤ６０２でかつ同一パターン形状６０６におけるデータ処理時間６０５の平均値分遡った時点が、ステップ番号７０１であるＵ００８に対応するデータ取得要求による事前取得処理の起動タイミング１００１となる。【００６１】
図６〜図９に示したテーブル６００，７００，８００，９００は、具体的には、たとえば、図３に示した記憶デバイス３０２により実現される。【００６２】
＜データ取得装置２００の機能的構成例＞
図１１は、データ取得装置２００の機能的構成例を示すブロック図である。データ取得装置２００は、受信部１１０１と、変換部１１０２と、送信部１１０３と、学習部１１０４と、特定部１１０５と、事前取得部１１０６と、設定部１１０７と、を有する。受信部１１０１〜設定部１１０７は、具体的には、たとえば、図３に示した記憶デバイス３０２に記憶されたプログラムをプロセッサ３０１に実行させることにより、または、通信ＩＦ３０５により、実現される機能である。【００６３】
受信部１１０１は、端末１０１からデータ取得要求を受信する。変換部１１０２は、電力ＮＷモデルＤＢ１０４にアクセスして、受信部１１０１によって受信されたデータ取得要求に該当するデータ（属性が異なる複数のデータ）を電力ＮＷモデルＤＢ１０４から取得して、異なる形式のデータ（ＸＭＬデータ）に変換する。変換部１１０２は、上述したデータアクセス機能１３１に相当する。送信部１１０３は、変換部１１０２で得られたＸＭＬデータを、要求元、すなわち、データ取得要求の送信元である端末１０１に送信する。【００６４】
学習部１１０４は、要求元から受信された一連のデータ取得要求の各々のデータ取得要求について、データ取得要求の種類と、データ取得要求の時系列順を規定する取得タイミングと、を学習する。学習部１１０４は、上述したパターン学習機能１３２に対応する。要求元とは、作業者がデータ取得装置２００へのログインに使用した端末１０１である。データ取得要求の種類とは、たとえば、取得パターン（パターン形状６０６と属性値６０７の組み合わせ）である。取得タイミングとは、たとえば、データ取得要求時刻６０４である。学習部１１０４は、この他、データ取得要求に含まれるユーザＩＤ６０２やセッションＩＤ６０３を特定する。また、学習部１１０４は、変換部１１０２からのＸＭＬデータの出力完了の通知を受けて、データ処理時間６０５を計測する。これにより、学習部１１０４は、データ取得要求ごとに、データ取得履歴蓄積テーブル６００にエントリを登録する。【００６５】
また、学習部１１０４は、データ取得履歴蓄積テーブル６００に登録したエントリを用いて、データ取得推定テーブル７００のエントリを生成して登録する。具体的には、学習部１１０４は、学習結果テーブルを用いて学習結果を生成する。【００６６】
図１２は、学習結果テーブルの一例を示す説明図である。学習結果テーブル１２００は、ユーザＩＤ６０２ごとに生成される。学習結果テーブル１２００は、取得パターンＩＤ列フィールド１２０１と、選択回数フィールド１２０２と、選択確率フィールド１２０３と、代表取得時間フィールド１２０４と、代表属性値フィールド７０２と、を有する。【００６７】
取得パターンＩＤ列フィールド１２０１は、取得パターンＩＤ列を格納する記憶領域である。取得パターンＩＤ列１２０１は、時系列な取得パターンを特定するＩＤ列である。たとえば、「Ｐ１」は、１回のデータ取得要求では取得パターンＰ１が選択されてセッションが終了したことを示す取得パターンＩＤ列１２０１である。また、「Ｐ１−Ｐ１−Ｐ２」は、１回のデータ取得要求では取得パターンＰ１、２回目のデータ取得要求では取得パターンＰ１、３回目のデータ取得要求では、取得パターンＰ２が選択されてセッションが終了したことを示す取得パターンＩＤ列１２０１である。【００６８】
選択回数フィールド１２０２は、選択回数を格納する記憶領域である。選択回数１２０２は、その取得パターンＩＤ列１２０１でセッションが終了した回数、すなわち、取得パターンＩＤ列１２０１を選択した回数である。【００６９】
選択確率フィールド１２０３は、選択確率を格納する記憶領域である。選択確率１２０３は、その取得パターンＩＤ列１２０１が選択される確率である。学習部１１０４は、先頭から１つ前までの一連の取得パターンＩＤが共通する取得パターンＩＤ列１２０１を用いて選択確率１２０３を算出する。ただし、取得パターンＩＤ列１２０１が１個の取得パターンＩＤのみからなる場合、先頭から１つ前までの一連の取得パターンＩＤは存在しないため、選択確率１２０３の分母は、取得パターンＩＤ列１２０１「Ｐ１」〜「Ｐ５」の選択回数１２０２の総和となり、分子は、取得パターンＩＤ列１２０１「Ｐ１」〜「Ｐ５」のうち対象となる取得パターンＩＤ列１２０１の選択回数１２０２である。【００７０】
たとえば、取得パターンＩＤ列１２０１「Ｐ１」の選択確率１２０３は、７／１０（７０％）、取得パターンＩＤ列１２０１「Ｐ２」の選択確率１２０３は、３／１０（３０％）、取得パターンＩＤ列１２０１「Ｐ３」〜「Ｐ５」の選択確率１２０３は、それぞれ、０／１０（０％）となる。【００７１】
ＩＤ数が２以上の取得パターンＩＤ列１２０１については、たとえば、ＩＤ数が３個の場合、取得パターンＩＤ列１２０１は、１２５通り存在する。学習部１１０４は、このうち、先頭（１回目）から１つ前（２回目）までの取得パターンＩＤが共通する取得パターンＩＤ列１２０１でグルーピングし、各グループ内で選択確率１２０３を算出する。たとえば、「Ｐ１−Ｐ１−Ｐ１」、「Ｐ１−Ｐ１−Ｐ２」、「Ｐ１−Ｐ１−Ｐ３」、「Ｐ１−Ｐ１−Ｐ４」、「Ｐ１−Ｐ１−Ｐ５」は、先頭（１回目）から１つ前（２回目）までの取得パターンＩＤが「Ｐ１−Ｐ１」で共通する。この場合、選択確率１２０３の分母は、取得パターンＩＤ列１２０１「Ｐ１−Ｐ１−Ｐ１」〜「Ｐ１−Ｐ１−Ｐ５」の選択回数１２０２の総和となり、分子は、取得パターンＩＤ列１２０１「Ｐ１−Ｐ１−Ｐ１」〜「Ｐ１−Ｐ１−Ｐ５」のうち対象となる取得パターンＩＤ列１２０１の選択回数１２０２である。【００７２】
たとえば、取得パターンＩＤ列１２０１「Ｐ１−Ｐ１−Ｐ１」の選択確率１２０３は、４／１０（４０％）、取得パターンＩＤ列１２０１「Ｐ１−Ｐ１−Ｐ２」の選択確率１２０３は、６／１０（６０％）、取得パターンＩＤ列１２０１「Ｐ１−Ｐ１−Ｐ３」〜「Ｐ１−Ｐ１−Ｐ５」の選択確率１２０３は、それぞれ、０／１０（０％）となる。【００７３】
代表取得時間フィールド１２０４は、代表取得時間を格納する記憶領域である。代表取得時間１２０４については、学習部１１０４は、データ取得履歴蓄積テーブル６００を参照して、各取得パターンＩＤ列１２０１について、末尾の取得パターンＩＤに対応するデータ取得要求のデータ取得要求時刻６０４から、その１つ前の取得パターンＩＤに対応するデータ取得要求のデータ取得要求時刻６０４を引いた時間を、取得時間として算出する。そして、学習部１１０４は、たとえば、算出した各取得時間の平均値を代表取得時間１２０４として算出する。【００７４】
たとえば、取得パターンＩＤ列１２０１が「Ｐ１−Ｐ２−Ｐ３」である場合、学習部１１０４は、そのユーザのセッションＩＤ６０３ごとに、取得パターンのパターン形状６０６が「Ｐ１」→「Ｐ２」→「Ｐ３」で終了となるエントリを、データ取得履歴蓄積テーブル６００から特定する。そして、学習部１１０４は、末尾の取得パターンＩＤ「Ｐ３」がパターン形状６０６として登録されているエントリのデータ取得要求時刻６０４と、その１つ前の取得パターンＩＤ「Ｐ２」がパターン形状６０６として登録されているエントリのデータ取得要求時刻６０４と、を取得して、取得時間を算出する。学習部１１０４は、この取得時間の算出処理を、取得パターンＩＤ列１２０１が「Ｐ１−Ｐ２−Ｐ３」であるセッションごとに実行し、算出した取得時間の平均値を求めて、取得パターンＩＤ列１２０１「Ｐ１−Ｐ２−Ｐ３」の代表取得時間１２０４とする。【００７５】
なお、ＩＤ数が１個の取得パターンＩＤ列１２０１については、１つ前の取得パターンＩＤが存在しないため、１つ前の取得パターンＩＤに対応するデータ取得要求のデータ取得要求時刻６０４の代わりにログイン時刻が適用される。【００７６】
代表属性値７０２は、代表電圧と代表取得範囲との組み合わせである。代表属性値７０２は、たとえば、各取得パターンＩＤ列１２０１において、末尾の取得パターンＩＤが示す取得パターンを選択した場合における、電圧値および取得範囲のそれぞれの平均値である。【００７７】
たとえば、取得パターンＩＤ列１２０１が「Ｐ１−Ｐ２−Ｐ３」である場合、学習部１１０４は、そのユーザのセッションＩＤ６０３ごとに、取得パターンのパターン形状６０６が「Ｐ１」→「Ｐ２」→「Ｐ３」で終了となるエントリを、データ取得履歴蓄積テーブル６００から特定する。そして、学習部１１０４は、末尾の取得パターンＩＤ「Ｐ３」がパターン形状６０６として登録されているエントリの属性値６０７（地点を除く）を取得する。学習部１１０４は、この属性値６０７（地点を除く）の取得処理を、取得パターンＩＤ列１２０１が「Ｐ１−Ｐ２−Ｐ３」であるセッションごとに実行し、取得した属性値６０７（地点を除く）の平均値を求めて、取得パターンＩＤ列１２０１「Ｐ１−Ｐ２−Ｐ３」の代表属性値７０２とする。選択確率１２０３、代表取得時間１２０４および代表属性値７０２は、データ取得推定テーブル７００のエントリ登録に用いられる。【００７８】
図１１に戻り、特定部１１０５は、一連のデータ取得要求とは異なる他の一連のデータ取得要求について第１データ取得要求が要求元から受信された場合、学習部１１０４の学習処理による学習結果に基づいて、第１データ取得要求の次に要求元から取得され得る次回推定データ取得要求の種類および取得タイミングを特定する。特定部１１０５は、上述した事前取得機能１３３に対応する。【００７９】
特定部１１０５は、学習結果、具体的には、データ取得推定テーブル７００の次回取得タイミング配列７０３から、次回推定データ取得要求のステップ番号７０１を選択確率１２０３で特定する。そして、特定部１１０５は、次回推定データ取得要求の種類として、次回推定データ取得要求のステップ番号７０１のエントリに対応するパターン形状６０６および代表属性値７０２をデータ取得推定テーブル７００から特定する。また、特定部１１０５は、次回推定データ取得要求の取得タイミングとして、第１データ取得要求のデータ取得要求時刻６０４から、代表取得時間１２０４の経過時となる次回推定データ取得要求時刻６０４を特定する。【００８０】
事前取得部１１０６は、特定部１１０５の特定処理によって種類が特定された次回推定データ取得要求に該当するデータを、次回推定データ取得要求の取得タイミング前に電力ＮＷモデルＤＢ１０４から取得する。事前取得部１１０６は、上述した事前取得機能１３３に対応する。具体的には、たとえば、事前取得部１１０６は、変換部１１０２を制御して、第２データ取得要求の取得タイミング前に電力ＮＷモデルＤＢ１０４からデータを取得する。【００８１】
設定部１１０７は、次回推定データ取得要求の取得タイミングが、当該データの所定の形式（たとえば、ＸＭＬ形式）への変換に要するデータ処理時間６０５の経過時以降となるように、事前取得処理の起動タイミング１００１を設定する。具体的には、たとえば、設定部１１０７は、図１０のタイムチャートで説明したように、代表取得時間１２０４の経過時から、同一ユーザＩＤ６０２でかつ同一パターン形状６０６におけるデータ処理時間６０５の平均値分遡った時点を起動タイミング１００１として設定する。これにより、事前取得部１１０６は、起動タイミング１００１で事前取得処理を実行することができる。【００８２】
判断部１１０８は、第１データ取得要求の次に実際に第２データ取得要求が受信された場合、第２データ取得要求に含まれる種類と、特定処理によって特定された次回推定データ取得要求の種類と、が一致するか否かを判断する。一致する場合、事前取得部１１０６は、事前取得結果を送信部１１０３に送る。不一致の場合、変換部１１０２は、電力ＮＷモデルＤＢ１０４から、受信部１１０１によって受信された第２データ取得要求に該当するデータを取得してＸＭＬデータに変換し、送信部１１０３に送る。また、不一致の場合、特定部１１０５は、データ取得推定テーブル７００の次回取得タイミング配列７０３から、前回選択されなかった次回推定データ取得要求のステップ番号７０１を選択確率１２０３で特定することになる。【００８３】
＜学習処理＞
図１３は、学習部１１０４による学習処理手順例を示すフローチャートである。学習部１１０４は、学習タイミングを待ち受ける（ステップＳ１３０１：Ｎｏ）。学習タイミングとは、たとえば、ユーザにより指定された不定期なタイミング、または、日次、週次、月次などの定期的なタイミングである。学習タイミングである場合（ステップＳ１３０１：Ｙｅｓ）、学習部１１０４は、データ取得履歴蓄積テーブル６００から対象エントリ群を取得する（ステップＳ１３０２）。対象エントリ群とは、学習対象エントリ群とは、学習対象となるエントリ群であり、データ取得履歴蓄積テーブル６００の全エントリでもよく、データ取得履歴蓄積テーブル６００のあるフィールドの値の範囲であらかじめ制限されたエントリ群でもよい。【００８４】
そして、学習部１１０４は、学習処理を実行する（ステップＳ１３０３）。学習処理（ステップＳ１３０３）の詳細については、図１４で後述する。このあと、学習部１１０４は、データ取得推定テーブル更新処理を実行する（ステップＳ１３０４）。データ取得推定テーブル更新処理（ステップＳ１３０４）の詳細については、図１８で後述する。これにより、学習部１１０４は、一連の処理を終了する。【００８５】
＜学習処理（ステップＳ１３０３）＞
図１４は、図１３に示した学習処理（ステップＳ１３０３）の詳細な処理手順例を示すフローチャートである。学習部１１０４は、データ取得履歴蓄積テーブル６００から取得した学習対象エントリ群について、未選択のユーザＩＤ６０２があるか否かを判断する（ステップＳ１４０１）。未選択のユーザＩＤ６０２がある場合（ステップＳ１４０１：Ｙｅｓ）、学習部１１０４は、未選択のユーザＩＤ６０２を選択して、当該選択ユーザＩＤ６０２のエントリ群を学習対象エントリ群から選択する（ステップＳ１４０２）。学習部１１０４は、選択ユーザＩＤ６０２のエントリ群について、未選択のセッションＩＤ６０３があるか否かを判断する（ステップＳ１４０３）。未選択のセッションＩＤ６０３がある場合（ステップＳ１４０３：Ｙｅｓ）、学習部１１０４は、当該選択ユーザＩＤ６０２のエントリ群から、未選択セッションＩＤ６０３を選択して、当該選択セッションＩＤ６０３のエントリ群を選択する（ステップＳ１４０４）。【００８６】
学習部１１０４は、ステップＳ１４０４で選択された当該選択セッションＩＤ６０３のエントリ群のうち未選択のエントリがあるか否かを判断する（ステップＳ１４０５）。未選択のエントリがある場合（ステップＳ１４０５：Ｙｅｓ）、学習部１１０４は、当該選択セッションＩＤ６０３のエントリ群から、未選択かつデータ取得要求時刻６０４が最古のエントリを選択する（ステップＳ１４０６）。そして、学習部１１０４は、ステップＳ１４０６の選択エントリから、取得パターンＩＤ（パターン形状６０６）、データ取得要求時刻６０４、および属性値６０７を特定し、取得パターン配列の最後尾に追加する（ステップＳ１４０７）。そして、ステップＳ１４０５に戻る。ステップＳ１４０５〜Ｓ１４０７のループにより、選択セッションＩＤ６０３のエントリごとに、取得パターン配列が生成される。【００８７】
ステップＳ１４０５において、未選択エントリがない場合（ステップＳ１４０５：Ｎｏ）、学習部１１０４は、最終的に生成された、選択ユーザＩＤ６０２で、かつ、選択セッションＩＤ６０３の取得パターン配列を記憶デバイス３０２に保存し（ステップＳ１４０８）、ステップＳ１４０３に戻る。【００８８】
ステップＳ１４０３において、選択ユーザＩＤ６０２について未選択セッションＩＤ６０３がない場合（ステップＳ１４０３：Ｎｏ）、学習部１１０４は、集計処理（ステップＳ１４０９）および代表値算出処理（ステップＳ１４１０）を実行する。集計処理（ステップＳ１４０９）および代表値算出処理（ステップＳ１４１０）の詳細については、それぞれ、図１６、図１７で後述する。代表値算出処理（ステップＳ１４１０）のあと、ステップＳ１４０１に戻る。【００８９】
ステップＳ１４０１において、未選択のユーザＩＤ６０２がない場合（ステップＳ１４０１：Ｎｏ）、学習部１１０４は学習処理（ステップＳ１３０３）を終了し、データ取得推定テーブル更新処理（ステップＳ１３０４）に移行する。【００９０】
＜集計処理（ステップＳ１４０９）＞
図１５は、図１４に示した集計処理（ステップＳ１４０９）の詳細な処理手順例を示すフローチャートである。集計処理（ステップＳ１４０９）は、学習結果テーブル１２００において、選択回数１２０２を集計したり、代表取得時間１２０４の算出元となる取得時間を算出する処理である。【００９１】
学習部１１０４は、ステップＳ１４０７で生成された取得パターン配列群について、未選択セッションＩＤ６０３があるか否かを判断する（ステップＳ１５０１）。未選択セッションＩＤ６０３がある場合（ステップＳ１５０１：Ｙｅｓ）、学習部１１０４は、未選択セッションＩＤ６０３を選択し、その取得パターン配列を選択する（ステップＳ１５０２）。そして、学習部１１０４は、選択取得パターン配列に含まれている一連の取得パターンＩＤ（以下、取得パターンＩＤ列１２０１）を特定する（ステップＳ１５０３）。【００９２】
学習部１１０４は、学習結果テーブル１２００において、特定した取得パターンＩＤ列１２０１の選択回数１２０２に１加算する（ステップＳ１５０４）。【００９３】
つぎに、学習部１１０４は、変数ｉをｉ＝１とする（ステップＳ１５０５）。学習部１１０４は、選択取得パターン配列に、先頭からｉ番目までの取得パターンＩＤ列１２０１が存在するか否かを判断する（ステップＳ１５０６）。存在する場合（ステップＳ１５０６：Ｙｅｓ）、学習部１１０４は、選択取得パターン配列のｉ番目のデータ取得要求時刻６０４から（ｉ‐１）番目のデータ取得要求時刻６０４を減算して、（ｉ−１）回目のデータ取得からｉ回目のデータ取得までの取得時間を算出する（ステップＳ１５０７）。【００９４】
学習部１１０４は、選択取得パターン配列のｉ番目のデータ取得要求時刻６０４に、ステップＳ１５０７で算出した取得時間を保存する（ステップＳ１５０８）。そして、学習部１１０４は、ｉをインクリメントし（ステップＳ１５０９）、ステップＳ１５０６に戻る。【００９５】
ステップＳ１５０６において、選択取得パターン配列に、先頭からｉ番目までの取得パターンＩＤ列１２０１が存在しない場合（ステップＳ１５０６：Ｎｏ）、ステップＳ１５０１に戻る。ステップＳ１５０１において、取得パターン配列群について、未選択セッションＩＤ６０３がない場合（ステップＳ１５０１：Ｎｏ）、学習部１１０４は、選択確率算出処理を実行して（ステップＳ１５１０）、代表値算出処理（ステップＳ１４１０）に移行する。【００９６】
＜選択確率算出処理＞
図１６は、図１５に示した選択確率算出処理（ステップＳ１５１０）の詳細な処理手順例を示すフローチャートである。学習部１１０４は、ｉの初期値をｉ＝１に設定する（ステップＳ１６０１）。ｉは、学習結果テーブル１２００で規定した取得パターンＩＤ列１２０１に含まれるＩＤ数を示す変数である。【００９７】
学習部１１０４は、ＩＤ数がｉ個の取得パターンＩＤ列１２０１があるか否かを判断する（ステップＳ１６０２）。ｉ個の取得パターンＩＤ列１２０１がある場合とは、選択回数１２０２が１以上あるｉ個の取得パターンＩＤ列１２０１が存在する場合をいう。【００９８】
ｉ個の取得パターンＩＤ列１２０１がある場合（ステップＳ１６０２：Ｙｅｓ）、ＩＤ数ｉ個の取得パターンＩＤ列１２０１群を、先頭から（ｉ−１）番目までの取得パターンＩＤが共通する取得パターンＩＤ列１２０１にグループ分けをする（ステップＳ１６０３）。たとえば、ＩＤ数がｉ＝３個の場合、取得パターンＩＤ列１２０１「Ｐ１−Ｐ１−Ｐ１」と「Ｐ１−Ｐ１−Ｐ２」は、先頭から２番目（ｉ−１番目）までの「Ｐ１−Ｐ１」が共通するため、同一グループにグループ分けされる。一方、取得パターンＩＤ列１２０１「Ｐ１−Ｐ１−Ｐ１」と「Ｐ１−Ｐ３−Ｐ２」は、先頭から２番目（ｉ−１番目）までの取得パターンＩＤが「Ｐ１−Ｐ１」と「Ｐ１−Ｐ３」であるため、異なるグループにグループ分けされる。なお、ＩＤ数がｉ＝１個の場合、先頭から（ｉ−１）番目までの取得パターンＩＤが存在しないため、「Ｐ１」〜「Ｐ５」は、同一グループにグループ分けされる。【００９９】
学習部１１０４は、未選択グループがあるか否かを判断する（ステップＳ１６０４）。未選択グループがある場合（ステップＳ１６０４：Ｙｅｓ）、学習部１１０４は、未選択グループを１つ選択する（ステップＳ１６０５）。そして、学習部１１０４は、選択グループ内のＩＤ数ｉ個の各取得パターンＩＤ列１２０１の選択確率１２０３を算出し、学習結果テーブル１２００に保存する（ステップＳ１６０６）。そして、ステップＳ１６０４に戻る。【０１００】
ステップＳ１６０４において、未選択グループがない場合（ステップＳ１６０４：Ｎｏ）、学習部１１０４は、ｉをインクリメントし（ステップＳ１６０７）、ステップＳ１６０２に戻る。ステップＳ１６０２において、ＩＤ数がｉ個の取得パターンＩＤ列１２０１がない場合（ステップＳ１６０２：Ｎｏ）、学習部１１０４は、選択確率算出処理（ステップＳ１５１０）を終了して、代表値算出処理（ステップＳ１４１０）に移行する。【０１０１】
＜代表値算出処理（ステップＳ１４１０）＞
図１７は、図１４に示した代表値算出処理（ステップＳ１４１０）の詳細な処理手順例を示すフローチャートである。代表値算出処理（ステップＳ１４１０）では、学習部１１０４は、代表取得時間１２０４と代表属性値７０２を算出する。【０１０２】
学習部１１０４は、変数ｉをｉ＝１に設定する（ステップＳ１７０１）。学習部１１０４は、全セッションＩＤ６０３の取得パターン配列を対象に、先頭からｉ番目までの取得パターンＩＤ列１２０１があるか否かを判断する（ステップＳ１７０２）。【０１０３】
先頭からｉ番目までの取得パターンＩＤ列１２０１がある場合（ステップＳ１７０２：Ｙｅｓ）、学習部１１０４は、該当する取得パターンＩＤ列１２０１を選択する（ステップＳ１７０３）。たとえば、「Ｐ１−Ｐ２−Ｐ３」という取得パターンＩＤ列１２０１を含む取得パターン配列がある場合、ｉ＝１であれば、「Ｐ１−Ｐ２−Ｐ３」から取得パターンＩＤ列１２０１として「Ｐ１」が選択され、ｉ＝２であれば、「Ｐ１−Ｐ２−Ｐ３」から取得パターンＩＤ列１２０１として「Ｐ１−Ｐ２」が選択され、ｉ＝３であれば、「Ｐ１−Ｐ２−Ｐ３」から取得パターンＩＤ列１２０１として「Ｐ１−Ｐ２−Ｐ３」が選択される。【０１０４】
学習部１１０４は、同一の選択取得パターンＩＤ列１２０１でグループ分けする（ステップＳ１７０４）。そして、学習部１１０４は、未選択グループがあるか否かを判断する（ステップＳ１７０５）。未選択グループがある場合（ステップＳ：Ｙｅｓ）、学習部１１０４は、未選択グループを１つ選択する（ステップＳ１７０６）。【０１０５】
そして、学習部１１０４は、選択グループ内の選択取得パターンＩＤ列１２０１から、（ｉ‐１）回目のデータ取得からｉ回目のデータ取得までの各取得時間を特定し、特定した取得時間から、代表取得時間１２０４を算出する（ステップＳ１７０７）。同様に、学習部１１０４は、選択グループ内の選択取得パターンＩＤ列１２０１から、ｉ回目の各属性値６０７を特定し、特定した各属性値６０７から、代表属性値６０７を算出する（ステップＳ１７０８）。そして、ステップＳ１７０５に戻る。【０１０６】
ステップＳ１７０５において、未選択グループがない場合（ステップＳ１７０５：Ｎｏ）、ｉをインクリメント（ｉ＝ｉ＋１）として（ステップＳ１７０９）、ステップＳ１７０２に戻る。ステップＳ１７０２において、先頭からｉ番目までの取得パターンＩＤ列１２０１がない場合（ステップＳ１７０２：Ｎｏ）、学習部１１０４は、代表値算出処理（ステップＳ１６１０）を終了し、ステップＳ１４０１に戻り、ユーザＩＤ６０２を変更する。【０１０７】
＜データ取得推定テーブル更新処理（ステップＳ１３０４）＞
図１８は、図１３に示したデータ取得推定テーブル更新処理（ステップＳ１３０４）の詳細な処理手順例を示すフローチャートである。データ取得推定テーブル更新処理（ステップＳ１３０４）は、図７に示したデータ取得推定テーブル７００を更新する処理である。【０１０８】
学習部１１０４は、未選択のユーザＩＤ６０２があるか否かを判断する（ステップＳ１８０１）。未選択のユーザＩＤ６０２がある場合（ステップＳ１８０１：Ｙｅｓ）、学習部１１０４は、未選択のユーザＩＤ６０２の学習結果テーブル１２００を選択する（ステップＳ１８０２）。つぎに、学習部１１０４は、変数ｉ＝０に設定する（ステップＳ１８０３）。変数ｉは、取得パターンＩＤの時系列順を示すとともに、ステップ番号７０１の時系列順にも対応する。学習部１１０４は、初期ステップ番号７０１を採番し、登録対象ステップ番号７０１に設定する（ステップＳ１８０４）。たとえば、図７に示したように、選択ユーザＩＤ６０２が「Ａ０００１」の場合、初期ステップ番号７０１として「Ｕ００１」が採番される。【０１０９】
学習部１１０４は、ステップＳ１８０２で選択した学習結果テーブル１２００において、選択回数１２０２が１回以上で、かつ、ＩＤ数が（ｉ＋１）の取得パターンＩＤ列１２０１が存在するか否かを判断する（ステップＳ１８０５）。存在する場合（ステップＳ１８０５：Ｎｏ）、学習部１１０４は、選択回数１２０２が１回以上であり、かつ、ＩＤ数が（ｉ＋１）個の取得パターンＩＤ列１２０１の各々に対し次回ステップ番号７０１を採番し、次回取得タイミング配列７０３を生成する（ステップＳ１８０６）。【０１１０】
具体的には、たとえば、ｉ＝０とすると、ステップＳ１８０５に該当するＩＤ数が１個の取得パターンＩＤ列１２０１は、「Ｐ１」（選択回数１２０２は７回、選択確率１２０３は７０％、代表取得時間１２０４は「１」）と「Ｐ２」（選択回数１２０２は３回、選択確率１２０３は３０％、代表取得時間１２０４は「１」）である。学習部１１０４は、「Ｐ１」と「Ｐ２」のそれぞれに、次回ステップ番号７０１｛Ｕ００３，Ｕ００４｝を採番して、次回取得タイミング配列７０３として、｛［Ｕ００３］［１］［７０］，［Ｕ００４］［１］［３０］｝を生成する。【０１１１】
このあと、学習部１１０４は、ｉ＝０であるか否かを判断する（ステップＳ１８０７）。ｉ＝０である場合（ステップＳ１８０７：Ｙｅｓ）、学習部１１０４は、ステップＳ１８０４で採番された初期ステップ番号７０１（登録対象ステップ番号７０１）、選択ユーザＩＤ６０２、取得パターンＩＤ（ＮＵＬＬ）、代表属性値７０２（ＮＵＬＬ）、およびステップＳ１８０６で生成した次回取得タイミング配列７０３からなるエントリを、データ取得推定テーブル７００に登録する（ステップＳ１８０８）。そして、ステップＳ１８１０に移行する。【０１１２】
一方、ステップＳ１８０７において、ｉ＝０でない場合（ステップＳ１８０７：Ｎｏ）、１つ前のループのステップＳ１８１０で設定された登録対象ステップ番号７０１、選択ユーザＩＤ６０２、ステップＳ１８０５で存在が確認された取得パターンＩＤ列１２０１におけるｉ番目の取得パターンＩＤ、ステップＳ１８０５で存在が確認された取得パターンＩＤ列１２０１におけるｉ番目の代表属性値７０２、およびステップＳ１８０６で生成した次回取得タイミング配列７０３からなるエントリを、データ取得推定テーブル７００に登録する（ステップＳ１８０９）。そして、そして、ステップＳ１８１０に移行する。【０１１３】
なお、取得パターンＩＤ列１２０１におけるｉ番目の取得パターンＩＤは、取得パターンＩＤ列１２０１の末尾の取得パターンＩＤとなる。ステップＳ１８０５で存在が確認された取得パターンＩＤ列１２０１におけるｉ番目の代表属性値７０２については、学習部１１０４は、当該取得パターンＩＤ列１２０１を含む取得パターン配列から取得する。【０１１４】
ステップＳ１８１０では、学習部１１０４は、ステップＳ１８０６で採番された次回ステップ番号７０１を登録対象ステップ番号７０１に設定する（ステップＳ１８１０）。そして、学習部１１０４は、ｉをインクリメントし（ステップＳ１８１１）、ステップＳ１８０５に戻る。ステップＳ１８０５において、ステップＳ１８０２で選択した学習結果テーブル１２００において、選択回数１２０２が１回以上で、かつ、ＩＤ数が（ｉ＋１）の取得パターンＩＤ列１２０１が存在しない場合（ステップＳ１８０５：Ｎｏ）、ステップＳ１８１２に移行する。【０１１５】
ステップＳ１８１２では、学習部１１０４は、１つ前のループのステップＳ１８１０で設定された登録対象ステップ番号７０１、選択ユーザＩＤ６０２、１つ前のループのステップＳ１８０５で存在が確認された取得パターンＩＤ列１２０１におけるｉ番目の取得パターンＩＤ、１つ前のループのステップＳ１８０５で存在が確認された取得パターンＩＤ列１２０１におけるｉ番目の代表属性値７０２、および次回取得タイミング配列７０３（ＮＵＬＬ）からなるエントリを、データ取得推定テーブル７００に登録する（ステップＳ１８０９）。そして、ステップＳ１８０１に移行する。【０１１６】
ステップＳ１８０１において、未選択のユーザＩＤ６０２がない場合、学習部１１０４は、データ取得推定テーブル更新処理（ステップＳ１３０４）を終了する。【０１１７】
＜データ取得処理＞
図１９は、データ取得装置２００によるデータ取得処理の詳細な処理手順例１を示すフローチャートである。まず、データ取得装置２００は、端末１０１のログイン検出を待ち受ける（ステップＳ１９０１：Ｎｏ）。ログインが検出された場合（ステップＳ１９０１：Ｙｅｓ）、データ取得装置２００は、端末１０１からのユーザＩＤ６０２を取得し、セッションＩＤ６０３を新規発行する（ステップＳ１９０２）。このあと、データ取得装置２００は、ステップＳ１９０２での取得ユーザＩＤ６０２のエントリが、データ取得推定テーブル７００に存在するか否かを判断する（ステップＳ１９０３）。【０１１８】
ステップＳ１９０３において、ステップＳ１９０２での取得ユーザＩＤ６０２のエントリが、データ取得推定テーブル７００に存在する場合（ステップＳ１９０３：Ｙｅｓ）、データの事前取得が可能となる。この場合、データ取得装置２００は、取得パターンＩＤと代表属性値６０７がＮＵＬＬで取得ユーザＩＤ６０２と一致するエントリを、データ取得推定テーブル７００から取得する（ステップＳ１９０４）。そして、データ取得装置２００は、事前取得処理（図２３）の起動タイミング１００１を設定する（ステップＳ１９０５）。【０１１９】
具体的には、たとえば、データ取得装置２００は、ステップＳ１９０４で取得したエントリにおける次回取得タイミング配列フィールド７０３から、最高選択確率を含む次回取得タイミング配列７０３のステップ番号７０１を特定し、当該特定したステップ番号７０１のエントリに対応する取得パターン（パターン形状６０６および代表属性値７０２）をデータ取得推定テーブル７００から特定する。データ取得装置２００は、特定した取得パターンについて起動タイミング１００１を設定する。設定した起動タイミング１００１は、図１０の起動タイミング管理テーブル１０００でユーザＩＤ６０２ごとに管理される。事前取得処理（図２３）の起動タイミング１００１の設定の詳細については、図１０のタイミングチャートで説明したので省略する。【０１２０】
そして、データ取得装置２００は、ステップ情報を図８に示したステップ情報管理テーブル８００に格納する（ステップＳ１９０６）。ここで、ステップ情報とは、取得ユーザＩＤ６０２、ステップ番号７０１（ステップＳ１９０４での取得エントリの次回取得タイミング配列７０３での最高選択確率のステップ番号７０１）、および、前ステップ番号８０１（ステップＳ１９０４での取得エントリのステップ番号７０１）である。【０１２１】
そして、データ取得装置２００は、ログイン端末１０１からデータ取得要求が受信されたか否かを判断する（ステップＳ１９０７）。ログイン端末１０１からデータ取得要求が受信された場合（ステップＳ１９０７：Ｙｅｓ）、図２０のステップＳ２００１に移行する。【０１２２】
一方、ログイン端末１０１からデータ取得要求が受信されていない場合（ステップＳ１９０７：Ｎｏ）、データ取得装置２００は、ログイン端末１０１のログアウトが検出された否かを判断する（ステップＳ１９０８）。ログイン端末１０１のログアウトが検出されていない場合（ステップＳ１９０８：Ｎｏ）、ステップＳ１９０７に戻る。一方、ログイン端末１０１のログアウトが検出された場合（ステップＳ１９０８：Ｙｅｓ）、データ取得装置２００はデータ取得処理を終了する。【０１２３】
このように、取得ユーザＩＤ６０２のエントリがデータ取得推定テーブル７００に存在するため、ログイン端末１０１からデータ取得要求を受信した場合に、データ取得装置２００は、事前取得情報管理テーブル９００のエントリを確認することができる（図２０）。【０１２４】
また、ステップＳ１９０３において、ステップＳ１９０２での取得ユーザＩＤ６０２のエントリが、データ取得推定テーブル７００に存在しない場合（ステップＳ１９０３：Ｎｏ）、データ取得装置２００は、ログイン端末１０１からデータ取得要求が受信されたか否かを判断する（ステップＳ１９０９）。受信された場合（ステップＳ１９０９：Ｙｅｓ）、データ取得装置２００は、データ取得・履歴蓄積処理を実行して（ステップＳ１９１０）、ステップＳ１９１１に移行する。データ取得・履歴蓄積処理（ステップＳ１９１０）の詳細は図２１で後述する。受信されていない場合（ステップＳ１９０９：Ｎｏ）、ステップＳ１９１１に移行する。【０１２５】
ステップＳ１９１１において、データ取得装置２００は、ログイン端末１０１のログアウトが検出された否かを判断する（ステップＳ１９１１）。ログアウトが検出されていない場合（ステップＳ１９１１：Ｎｏ）、ステップＳ１９０９に戻り、ログアウトが検出された場合（ステップＳ１９１１：Ｙｅｓ）、データ取得装置２００はデータ取得処理を終了する。【０１２６】
このように、取得ユーザＩＤ６０２のエントリがデータ取得推定テーブル７００に存在しないため、ログイン端末１０１からデータ取得要求を受信した場合に、当該要求に従って、データ取得装置２００は、データ取得・履歴蓄積処理（ステップＳ１９１０）を実行することができる（図２２）。【０１２７】
図２０は、データ取得装置２００によるデータ取得処理の詳細な処理手順例２を示すフローチャートである。図１９のステップＳ１９０６のあと、データ取得装置２００は、図９に示した事前取得情報管理テーブル９００に、ステップＳ１９０７で受信したデータ取得要求に含まれるユーザＩＤ６０２および取得パターン（パターン形状６０６および属性値６０７）に該当するエントリがあるか否かを判断する（ステップＳ２００１）。換言すれば、データ取得装置２００は、ステップＳ１９０５およびＳ１９０６で起動タイミング１００１を設定した取得パターンと、ステップＳ１９０７で受信したデータ取得要求に含まれる取得パターンと、が一致するか否かを判断することになる。【０１２８】
エントリがある場合（ステップＳ２００１：Ｙｅｓ）、ステップＳ１９０５で起動タイミング１００１が設定された事前取得処理が実行されたことを意味する。したがって、データ取得装置２００は、該当する事前取得データ９０１を、事前取得情報管理テーブル９００から取得して、ログイン端末１０１に送信する（ステップＳ２００２）。【０１２９】
データ取得装置２００は、データ取得履歴情報（ユーザＩＤ６０２、セッションＩＤ６０３、データ取得要求時刻６０４、データ処理時間６０５、パターン形状６０６、属性値６０７）を、データ取得履歴蓄積テーブル６００に登録する（ステップＳ２００３）。データ取得履歴情報のうち、ユーザＩＤ６０２は、ステップＳ１９０２で取得され、かつ、ステップＳ１９０７のデータ取得要求に含まれるユーザＩＤ６０２である。データ取得履歴情報のうち、セッションＩＤ６０３は、ステップＳ１９０２で発行されたセッションＩＤ６０３である。データ取得履歴情報のうち、データ取得要求時刻６０４は、ステップＳ１９０７のデータ取得要求の時刻である。データ取得履歴情報のうち、データ処理時間６０５は、データ取得要求時刻６０４からデータ取得、すなわち、ＸＭＬデータの出力が完了するまでの時間である。データ取得履歴情報のうち、パターン形状６０６および属性値６０７は、ステップＳ１９０７のデータ取得要求に含まれるパターン形状６０６および属性値６０７である。【０１３０】
データ取得装置２００は、ステップＳ１９０５、Ｓ１９０６と同様、事前取得処理（図２３）の次回起動タイミング１００１を設定し（ステップＳ２００４）、ステップ情報をステップ情報管理テーブル８００に格納する（ステップＳ２００５）。設定した起動タイミング１００１は、図１０の起動タイミング管理テーブル１０００でユーザＩＤ６０２ごとに管理される。また、ステップＳ２００５では、データ取得装置２００は、取得ユーザＩＤ６０２のエントリにおいて、ステップ番号７０１を、当該ステップ番号７０１の取得エントリの次回取得タイミング配列７０３での最高選択確率のステップ番号７０１に更新し、前ステップ番号８０１を、当該更新前のステップ番号７０１に更新する。そして、図１９のステップＳ１９０７に戻る。【０１３１】
一方、ステップＳ２００１において、事前取得情報管理テーブル９００にエントリがない場合（ステップＳ２００１：Ｎｏ）とは、ステップＳ１９０７で受信されたデータ取得要求において、最高選択確率１２０３の取得パターンではない他の取得パターンが選択されたことを意味する。この場合（ステップＳ２００１：Ｎｏ）、データ取得装置２００は、データ取得・履歴蓄積処理を実行する（ステップＳ２００６）。データ取得・履歴蓄積処理（ステップＳ２００６）は、ステップＳ１９１０と同一処理である。【０１３２】
データ取得装置２００は、ステップ情報管理テーブル８００から取得ユーザＩＤ６０２のエントリにおける前ステップ番号８０１を取得する（ステップＳ２００７）。そして、データ取得装置２００は、ステップＳ２００７で取得した前ステップ番号８０１に対応する次回取得タイミング配列７０３が、Ｓ１９０４で取得されたエントリに存在するか否かを判断する（ステップＳ２００８）。【０１３３】
存在しない場合（ステップＳ２００８：Ｎｏ）、図１９のステップＳ１９０７に戻り、データ取得装置２００は、データ取得要求を待ち受ける。一方、存在する場合（ステップＳ２００８：Ｙｅｓ）、データ取得装置２００は、ステップＳ２００７で取得した前ステップ番号８０１に対応する次回取得タイミング配列７０３を１つ取得する（ステップＳ２００９）。そして、データ取得装置２００は、データ取得推定テーブル７００において、ステップＳ２００９で取得した次回取得タイミング配列７０３内の移行先ステップ番号７０１のエントリに、取得要求された取得パターンがあるか否かを判断する（ステップＳ２０１０）。【０１３４】
取得パターンがない場合（ステップＳ２０１０：Ｎｏ）、図１９のステップＳ１９０７に戻り、データ取得装置２００は、データ取得要求を待ち受ける。一方、取得パターンがある場合（ステップＳ２０１０：Ｙｅｓ）、当該取得パターンは、データ取得・履歴蓄積処理（ステップＳ２００６）で登録されたエントリに対応する。したがって、データ取得装置２００は、当該パターン形状６０６の次に取得されるデータについて事前取得すべく、ステップ情報管理テーブル８００のステップ番号７０１を、ステップＳ２０１０の移行先ステップ番号７０１に更新し（ステップＳ２０１１）、更新後の移行先ステップ番号７０１を用いて、事前取得処理（図２３）の次回起動タイミング１００１を設定する（ステップＳ２０１２）。そして、ステップＳ１９０７に移行する。これにより、最高選択確率の取得パターンではない他の取得パターンについて事前取得処理の次回起動タイミング１００１が設定されることになる。【０１３５】
換言すれば、最高選択確率の取得パターンではない他の取得パターンの取得パターン列に乗り換えられたことになる。このように、事前取得のために推定した取得パターンと実際にデータ取得要求された取得パターンとが異なる場合であっても、次回取得タイミング配列７０３に存在すれば、以降のデータ取得要求を推定してデータの事前取得を継続することができる。【０１３６】
＜取得パターン列の乗換例＞
図２１は、取得パターン列の乗換例を示す説明図である。図２１は、図７に示したユーザＩＤ：Ａ００１の次回取得タイミング配列７０３内のステップ番号７０１のツリー構造（ステップ番号７０１をノードとし、ステップ場号７０１の遷移をリンクとする）である。リンクに付随する数字は、選択確率である。【０１３７】
最上位ノードであるステップ番号［Ｕ００１］は、ユーザＩＤ：Ａ００１のユーザのログイン時のステップ番号７０１である。当該ユーザは、７０％の確率でステップ［Ｕ００３］の取得パターンを選択し、３０％の確率でステップ［Ｕ００４］の取得パターンを選択する。【０１３８】
データ取得装置２００は、図１９のステップＳ１９０４で図７の１行目のエントリをデータ取得推定テーブル７００から取得し、ステップＳ１９０５で、最高選択確率（７０％）であるステップ番号［Ｕ００３］の取得パターンについて、事前取得処理の起動タイミング１００１を設定する。また、データ取得装置２００は、ステップＳ１９０６において、ステップ情報管理テーブル８００に、ステップ番号７０１として、選択したステップ番号［Ｕ００３］を格納し、前ステップ番号８０１として、当該選択前のステップ番号［Ｕ００１］を格納する。【０１３９】
そして、データ取得装置２００は、ステップＳ２００１で、実際に受信したデータ取得要求内の取得パターンがステップ［Ｕ００３］の取得パターンに一致するか否かを判断する。一致する場合（ステップＳ２００１：Ｙｅｓ）、データ取得装置２００は、ステップＳ１９０５において起動タイミング１００１で事前取得したステップ［Ｕ００３］の取得パターンに該当するデータをユーザＩＤ：Ａ００１のユーザの端末１０１に送信する（ステップＳ２００２）。【０１４０】
一方、ステップＳ２００１で不一致と判断された場合（ステップＳ２００１：Ｎｏ）、当該ユーザが要求したデータは、ステップＳ１９０５において起動タイミング１００１で事前取得したステップ［Ｕ００３］の取得パターンに該当するデータではないことを意味する。したがって、データ取得装置２００は、当該実際のデータ取得要求に該当するデータを電力ＮＷモデルＤＢ１０４から取得し、履歴を蓄積する（ステップＳ２００６）。これにより、予測が外れた場合でも、過去のデータとして蓄積し、学習することで、以降の予測精度（選択確率１２０３）の向上を図ることができる。【０１４１】
このあと、データ取得装置２００は、ステップＳ２００７において、ステップ情報管理テーブル８００から取得ユーザＩＤ６０２の前ステップ番号８０１として、［Ｕ００１］を取得する。そして、データ取得装置２００は、ステップＳ２００８において、取得した前ステップ番号［Ｕ００１］に対応する次回取得タイミング配列７０３がデータ取得推定テーブル７００にあるか否かを判断する。【０１４２】
この場合、前回選択されなかった選択確率３０％のステップ番号［Ｕ００３］の次回取得タイミング配列７０３が存在するため（ステップＳ２００８：Ｙｅｓ）、データ取得装置２００は、当該次回取得タイミング配列７０３である｛［Ｕ００４］［１］［３０］｝から、ステップ番号［Ｕ００４］を選択する（ステップＳ２００９）。この選択されたステップ番号［Ｕ００４］が「移行先ステップ番号７０１」である。【０１４３】
そして、データ取得装置２００は、データ取得推定テーブル７００において、次回取得タイミング配列７０３である｛［Ｕ００４］［１］［３０］｝内の移行先ステップ番号［Ｕ００４］のエントリに、ステップＳ１９０７で実際にデータ取得要求がされた取得パターンが存在するか否かを判断する（ステップＳ２０１０）。存在する場合（ステップＳ２０１０：Ｙｅｓ）、ステップＳ２００５でデータ取得要求された取得パターンと、ステップ番号［Ｕ００４］の取得パターンとが一致することを意味する。したがって、データ取得装置２００は、ステップ情報管理テーブル８００の当該ユーザＩＤ：Ａ００１のエントリにおいて、ステップ番号７０１を、ステップ番号［Ｕ００３］から移行先ステップ番号［Ｕ００４］に更新する。【０１４４】
これにより、データ取得装置２００は、ステップ番号［Ｕ００４］の次回取得タイミング配列７０３での最高選択確率（６５％）のステップ番号７０１（［Ｕ０１１］）に対応するエントリに対する取得パターンについて、事前取得処理の起動タイミング１００１を設定する（ステップＳ２０１２）。これにより、データ取得装置２００は、実際に受信したデータ取得要求に応じて、事前取得すべき［Ｕ００１］→［Ｕ００３］のルートから、［Ｕ００１］→［Ｕ００４］のルートに乗り換えることができる。このように、ユーザの実際のデータ取得要求に追従して事前取得処理を実行するため、事前取得すべき取得パターンの予測が外れた場合であって、当該乗換により、事前取得を継続することができる。【０１４５】
＜データ取得・履歴蓄積処理＞
図２２は、図１９および図２０に示したデータ取得・履歴蓄積処理（ステップＳ１９１０、Ｓ２００６、Ｓ２６１１）の詳細な処理手順例を示すフローチャートである。データ取得・履歴蓄積処理（ステップＳ１９１０、Ｓ２００６、Ｓ２６１１）は、データ取得要求で選択された取得パターン（パターン形状６０６および属性値６０７の組み合わせ）に該当するデータを取得し、かつ、その履歴をデータ取得履歴蓄積テーブル６００に蓄積する処理である。【０１４６】
データ取得装置２００は、電力ＮＷモデルＤＢ１０４にデータ取得要求を送信し、当該データ取得要求時刻６０４を取得する（ステップＳ２２０１）。データ取得装置２００は、電力ＮＷモデルＤＢ１０４から、データ取得要求の取得パターン（パターン形状６０６および属性値６０７）に該当するデータを取得し（ステップＳ２２０２）、ＸＭＬデータに変換する（ステップＳ２２０３）。データ取得装置２００は、データ取得要求時刻６０４からステップＳ２２０３のＸＭＬデータの出力までの時間をデータ処理時間６０５として算出する（ステップＳ２２０４）。【０１４７】
データ取得装置２００は、変換したＸＭＬデータをログイン端末１０１に送信する（ステップＳ２２０５）。そして、データ取得装置２００は、データ取得履歴情報（ユーザＩＤ６０２、セッションＩＤ６０３、データ取得要求時刻６０４、データ処理時間６０５、パターン形状６０６、属性値６０７）をデータ取得履歴蓄積テーブル６００に登録する（ステップＳ２２０６）。これにより、一連の処理が終了する。【０１４８】
＜データ事前取得処理＞
図２３は、データ事前取得処理の詳細な処理手順例を示すフローチャートである。データ事前取得処理は、ステップＳ１９０５、Ｓ２００４およびＳ２０１２で設定された起動タイミング１００１で起動されて、処理を開始する。【０１４９】
データ取得装置２００は、起動タイミング１００１になるまで待ち受ける（ステップＳ２３０１：Ｎｏ）。データ取得装置２００は、ステップＳ１９０２の取得ユーザＩＤ６０２のエントリにおけるステップ番号７０１を、ステップ情報管理テーブル８００から取得する（ステップＳ２３０２）。データ取得装置２００は、取得ステップ番号７０１のエントリにおけるパターン形状６０６および代表属性値７０２を、データ取得推定テーブル７００から取得する（ステップＳ２３０３）。【０１５０】
データ取得装置２００は、パターン形状６０６および代表属性値７０２を充足するデータを、電力ＮＷモデルＤＢ１０４から取得する（ステップＳ２３０４）。そして、データ取得装置２００は、取得したデータをＸＭＬデータに変換して、事前取得データ９０１とする（ステップＳ２３０５）。データ取得装置２００は、事前取得情報（ユーザＩＤ６０２、パターン形状６０６、属性値６０７、事前取得データ９０１）を事前取得情報管理テーブル９００に登録する（ステップＳ２３０６）。【０１５１】
このあと、データ取得装置２００は、事前取得データ９０１が処理される、すなわち、ステップＳ２００２において事前取得情報管理テーブル９００から読み出されて、ログイン端末１０１に送信されるのを待ち受ける（ステップＳ２３０７：Ｎｏ）。事前取得データ９０１が処理された場合（ステップＳ２３０７：Ｙｅｓ）、データ取得装置２００は、当該エントリを事前取得情報管理テーブル９００から削除する（ステップＳ２３０８）。これにより、一連の処理が終了する。なお、セッションが終了した場合、データ取得装置２００は、当該ユーザＩＤ６０２のエントリを事前取得情報管理テーブル９００から削除してもよい。【０１５２】
実施例１によれば、その時必要とされるデータを先読みするため、データ取得要求がされた場合に、要求元の端末１０１に即時応答することができる。また、特に、ＸＭＬデータへの変換といったデータ取得に時間がかかる場合に有用である。
【実施例２】
【０１５３】
実施例２は、データ取得履歴情報を蓄積していない新規ユーザが必要とするデータを推定して、必要なタイミングでデータを事前に取得する例である。具体的には、たとえば、データ取得装置２００が、新規ユーザが業務で使用するアプリケーション１０２のＩＤごとに取得パターンを学習することで、新規ユーザがデータ取得要求を送信した時、アプリケーションＩＤごとの学習結果を基にして新規ユーザが必要とするデータを推定して必要なタイミングでデータを事前取得する。すなわち、新規ユーザの傾向がわからないため、データ取得装置２００は、使用するアプリケーション１０２により傾向を推定して、事前取得する。これにより、新規ユーザに対するデータ応答の高速化を図る。なお、ここでは実施例１の処理をベースとして説明するため、差異のある箇所に着目して説明する。【０１５４】
＜データ取得履歴蓄積テーブル６００＞
図２４は、実施例２にかかるデータ取得履歴蓄積テーブル６００の記憶内容例を示す説明図である。データ取得履歴蓄積テーブル６００は、実施例１のデータ取得履歴蓄積テーブル６００にアプリケーションＩＤフィールド２４０１が追加されたテーブルである。アプリケーションＩＤフィールド２４０１は、アプリケーションＩＤを格納する記憶領域である。アプリケーションＩＤ２４０１は、アプリケーション１０２を一意に特定する識別情報である。【０１５５】
＜第２データ取得推定テーブル＞
図２５は、第２データ取得推定テーブルの記憶内容例を示す説明図である。実施例２では、実施例１のデータ取得推定テーブル７００を「第１データ取得推定テーブル７００」と称す。第２データ取得推定テーブル２５００は、第１データ取得推定テーブル７００のユーザＩＤフィールド６０２を、アプリケーションＩＤフィールド２４０１に置き換えたテーブルである。【０１５６】
＜データ取得処理＞
図２６は、実施例２にかかるデータ取得装置２００によるデータ取得処理の詳細な処理手順例１を示すフローチャートである。まず、データ取得装置２００は、端末１０１のログイン検出を待ち受ける（ステップＳ２６０１：Ｎｏ）。ログインが検出された場合（ステップＳ２６０１：Ｙｅｓ）、データ取得装置２００は、端末１０１からのユーザＩＤ６０２および利用しているアプリケーションＩＤ２４０１を取得し、セッションＩＤ６０３を新規発行する（ステップＳ２６０２）。【０１５７】
このあと、データ取得装置２００は、ステップＳ２６０２での取得ユーザＩＤ６０２のエントリが、第１データ取得推定テーブル７００に存在するか否かを判断する（ステップＳ２６０３）。存在しない場合（ステップＳ２６０３：Ｎｏ）、取得ユーザＩＤ６０２についてデータの事前取得ができず、ステップＳ２６０４に移行する。存在する場合（ステップＳ２６０３：Ｙｅｓ）、ステップＳ２６０５に移行する。【０１５８】
ステップＳ２６０４において、データ取得装置２００は、取得アプリケーションＩＤ２４０１のエントリが第２データ取得推定テーブル２５００に存在するか否かを判断する（ステップＳ２６０４）。【０１５９】
ステップＳ２６０３またはＳ２６０４において、ステップＳ２６０２での取得ユーザＩＤ６０２またはアプリケーションＩＤ２４０１のエントリが、第１データ取得推定テーブル７００または第２データ取得推定テーブル２５００に存在する場合（ステップＳ２６０３：Ｙｅｓ、Ｓ２６０４：Ｙｅｓ）、データの事前取得が可能となる。この場合、データ取得装置２００は、取得パターンＩＤと代表属性値７０２がＮＵＬＬで取得ＩＤ（ステップＳ２６０３：Ｙｅｓの場合はユーザＩＤ６０２、ステップＳ２６０４：Ｙｅｓの場合は、アプリケーションＩＤ２４０１）と一致するエントリを、データ取得推定テーブル７００（ユーザＩＤ６０２の場合は、第１データ取得推定テーブル７００、アプリケーションＩＤ２４０１の場合は、第２データ取得推定テーブル２５００）から取得する（ステップＳ２６０５）。【０１６０】
そして、データ取得装置２００は、事前取得処理（図２３）の起動タイミング１００１を設定する（ステップＳ２６０６）。設定した起動タイミング１００１は、図１０の起動タイミング管理テーブル１０００でユーザＩＤ６０２ごとに管理される。事前取得処理（図２３）の起動タイミング１００１の設定の詳細については、図１０のタイミングチャートで説明したので省略する。【０１６１】
そして、データ取得装置２００は、ステップ情報を図８に示したステップ情報管理テーブル８００に格納する（ステップＳ２６０７）。ここで、ステップ情報とは、取得ユーザＩＤ６０２、ステップ番号７０１（ステップＳ２６０５での取得エントリの次回取得タイミング配列７０３での最高選択確率のステップ番号７０１）、および、前ステップ番号８０１（ステップＳ２６０５での取得エントリのステップ番号７０１）である。【０１６２】
そして、データ取得装置２００は、ログイン端末１０１からデータ取得要求が受信されたか否かを判断する（ステップＳ２６０８）。ログイン端末１０１からデータ取得要求が受信された場合（ステップＳ２６０８：Ｙｅｓ）、図２０のステップＳ２００１に移行する。【０１６３】
一方、ログイン端末１０１からデータ取得要求が受信されていない場合（ステップＳ２６０８：Ｎｏ）、データ取得装置２００は、ログイン端末１０１のログアウトが検出された否かを判断する（ステップＳ２６０９）。ログイン端末１０１のログアウトが検出されていない場合（ステップＳ２６０９：Ｎｏ）、ステップＳ２６０８に戻る。一方、ログイン端末１０１のログアウトが検出された場合（ステップＳ２６０９：Ｙｅｓ）、データ取得装置２００はデータ取得処理を終了する。【０１６４】
このように、取得ユーザＩＤ６０２が第１データ取得推定テーブル７００に、または、取得アプリケーションＩＤ２４０１が第２データ取得推定テーブル２５００に存在するため、ログイン端末１０１からデータ取得要求を受信した場合に、データ取得装置２００は、事前取得情報管理テーブル９００のエントリを確認することができる（図２０）。【０１６５】
また、ステップＳ２６０４において、取得アプリケーションＩＤ２４０１のエントリが存在しない場合（ステップＳ２６０４：Ｎｏ）、データ取得装置２００は、ログイン端末１０１からデータ取得要求が受信したか否かを判断する（ステップＳ２６１０）。受信されていない場合（ステップＳ２６１０：Ｎｏ）、ステップＳ２６１２に移行する。受信された場合（ステップＳ２６１０：Ｙｅｓ）、データ取得装置２００は、データ取得・履歴蓄積処理を実行して（ステップＳ２６１１）、ステップＳ２６１２に移行する。データ取得・履歴蓄積処理（ステップＳ２６１１）は、図２２に示したデータ取得・履歴蓄積処理（ステップＳ１９１０）において、データ取得履歴情報として、アプリケーションＩＤ２４０１も登録する点を除いて他は同一処理である。【０１６６】
このあと、データ取得装置２００は、ログイン端末１０１のログアウトが検出されたか否かを判断する（ステップＳ２６１２）。ログアウトが検出されていない場合（ステップＳ２６１２：Ｎｏ）、ステップＳ２６１０に戻り、ログアウトが検出された場合（ステップＳ２６１２：Ｙｅｓ）、データ取得装置２００はデータ取得処理を終了する。【０１６７】
このように、取得ユーザＩＤ６０２が第１データ取得推定テーブル７００に、および、取得アプリケーションＩＤ２４０１が第２データ取得推定テーブル２５００に存在しないため、ログイン端末１０１からデータ取得要求を受信した場合に、当該要求に従って、データ取得装置２００は、データ取得・履歴蓄積処理（ステップＳ２６１１）を実行することができる（図２２）。【０１６８】
このように、実施例２では、傾向がわからない新規ユーザについても、データ取得装置２００は、使用するアプリケーション１０２により傾向を推定して、事前取得することで、新規ユーザに対するデータ応答の高速化を図ることができる。なお、実施例２では、アプリケーションＩＤ２４０１およびアプリケーションＩＤフィールド２４０１を用いて説明したが、アプリケーション１０２の機能ＩＤおよび機能ＩＤフィールドや、ユーザが所属する組織ＩＤおよび組織ＩＤフィールドに置き換えてもよい。
【実施例３】
【０１６９】
実施例３は、実施例１において、事前取得するデータに取得済みのデータがある場合に重複箇所を除いたデータを事前に取得する例（差分取得）である。次ステップにおいて事前取得するデータに取得済みのデータがある場合、前ステップのデータとの重複箇所を除いてデータを事前取得すれば、電力ＮＷモデルＤＢ１０４から取得したデータの変換処理を削減でき、データ応答の高速化が可能となる。なお、ここでは実施例１の処理をベースとして説明するため、差異のある箇所に着目して説明する。【０１７０】
図２７は、実施例３にかかるデータ事前取得例を示す説明図である。たとえば、ユーザが、１回目のデータ取得要求において、直径３ｋｍの円の取得パターンを選択してデータを取得したとする。２回目のデータ取得要求において、同一位置で、直径５ｋｍの円の取得パターンを選択した場合、データ取得装置２００は、直径５ｋｍの円の取得パターンから、１回目の直径３ｋｍの円の取得パターンを除いた範囲（この場合、ドーナツ形状となる）について、電力ＮＷモデルＤＢ１０４からデータ取得する。そして、データ取得装置２００は、１回目の取得データ（ＸＭＬデータ）と今回（２回目）のＸＭＬデータとをマージして、端末１０１に返す。また、３回目のデータ取得要求において、同一位置で、直径７ｋｍの円の取得パターンを選択した場合、データ取得装置２００は、直径７ｋｍの円の取得パターンから、２回目の直径５ｋｍの円の取得パターンを除いた範囲（この場合も、ドーナツ形状となる）について、電力ＮＷモデルＤＢ１０４からデータ取得する。そして、データ取得装置２００は、２回目のマージ後の取得データ（ＸＭＬデータ）と今回（３回目）のＸＭＬデータとをマージして、端末１０１に返す。【０１７１】
＜データ事前取得処理＞
図２８は、実施例３にかかるデータ事前取得処理の詳細な処理手順例を示すフローチャートである。データ事前取得処理は、ステップＳ１９０５、Ｓ２００４およびＳ２０１２で設定された起動タイミング１００１で起動されて、処理を開始する。【０１７２】
データ取得装置２００は、起動タイミング１００１になるまで待ち受ける（ステップＳ２８０１：Ｎｏ）。データ取得装置２００は、ステップＳ１９０２の取得ユーザＩＤ６０２のエントリにおけるステップ番号７０１および前ステップ番号８０１を、ステップ情報管理テーブル８００から取得する（ステップＳ２８０２）。データ取得装置２００は、取得ステップ番号７０１のエントリにおけるパターン形状６０６および代表属性値７０２（取得パターン）と、取得した前ステップ番号８０１のエントリにおけるパターン形状６０６および代表属性値７０２（前回取得パターン）とを、データ取得推定テーブル７００から取得する（ステップＳ２８０３）。【０１７３】
データ取得装置２００は、取得パターンと前回取得パターンとが重複するか否かを判断する（ステップＳ２８０４）。重複しない場合（ステップＳ２８０４：Ｎｏ）、データ取得装置２００は、パターン形状６０６および代表属性値７０２を充足するデータを、電力ＮＷモデルＤＢ１０４から取得する（ステップＳ２８０５）。そして、データ取得装置２００は、取得したデータをＸＭＬデータに変換して、事前取得データ９０１とする（ステップＳ２８０６）。データ取得装置２００は、事前取得情報（ユーザＩＤ６０２、パターン形状６０６、属性値６０７、事前取得データ９０１）を事前取得情報管理テーブル９００に登録する（ステップＳ２８０７）。【０１７４】
一方、ステップＳ２８０４において、重複すると判定された場合（ステップＳ２８０４：Ｙｅｓ）、データ取得装置２００は、取得パターンから前回取得パターンを引いた差分取得パターンを用いて差分取得する条件式を生成する（ステップＳ２８０８）。データ取得装置２００は、差分条件式を充足するデータを、電力ＮＷモデルＤＢ１０４から取得する（ステップＳ２８０９）。そして、データ取得装置２００は、取得したデータをＸＭＬデータに変換して、前回取得したＸＭＬデータとマージして事前取得データ９０１とする（ステップＳ２８１０）。データ取得装置２００は、事前取得情報（ユーザＩＤ６０２、パターン形状６０６、属性値６０７、事前取得データ９０１）を事前取得情報管理テーブル９００に登録する（ステップＳ２８１１）。【０１７５】
これにより、一連の処理が終了する。なお、セッションが終了した場合、データ取得装置２００は、当該ユーザＩＤ６０２のエントリを事前取得情報管理テーブル９００から削除してもよい。【０１７６】
実施例３によれば、重複部分のデータ変換が不要となり、要求元の端末１０１に即時応答することができる。
【実施例４】
【０１７７】
実施例４は、複数のユーザのデータ処理時間６０５が重複した場合の起動タイミング１００１の調整例である。複数のデータ処理時間６０５が重複した場合、データ取得装置２００は、そのデータ処理時間６０５の重複数が、調整前の重複数未満となるように、複数の起動タイミング１００１（データ処理時間６０５の開始時刻）を調整する。これにより、調整前に比べて、事前取得処理の負荷を低減することができる。【０１７８】
図２９は、実施例４にかかる起動タイミング１００１の調整例を示す説明図である。（Ａ）は、調整前の状態、（Ｂ）は調整後の状態を示す。図２８の例では、多重度（１以上の整数）を２とする。多重度とは、重複を許容する平均データ処理時間の最大個数であり、ユーザの重複数−１以下、換言すれば、平均データ処理時間の重複数−１以下となる。ここで、ｄｐａ〜ｄｐｄは、４人のユーザの各々の平均データ処理時間（図１０のタイムチャートを参照）であり、ｔａ〜ｔｄは、その起動タイミング１００１である。なお、起動タイミング１００１であるｔａ，ｔｂは同一時刻（たとえば、１０時２１分）である（異なる時刻でもよい）。（Ａ）では、期間ｏｌｔにおいて、平均データ処理時間ｄｐａ〜ｄｐｄが重複する。【０１７９】
多重度が２であるため、データ取得装置２００は、平均データ処理時間の重複数が２以下となるように、各平均データ処理時間を調整する。（Ｂ）に示したように、データ取得装置２００は、平均データ処理時間ｄｐａ，ｄｐｂを固定したままとし、平均データ処理時間ｄｐｃ，ｄｐｄを平均データ処理時間ｄｐａ，ｄｐｂと重複しないようにシフトする。【０１８０】
また、このシフト量は、シフト前の起動タイミング１００１との差が小さくなるように調整してもよい。具体的には、たとえば、シフト対象となる平均データ処理時間の終了時刻の次の時刻が、シフト対象外の平均データ処理時間の起動タイミング１００１となるようにしてもよく、また、シフト対象外となる平均データ処理時間の終了時刻の次の時刻が、シフト対象の平均データ処理時間の起動タイミング１００１となるようにしてもよい。これにより、データ取得装置２００の処理負荷を低減しつつ、起動タイミング１００１のずれを最小限に抑制することができる。【０１８１】
なお、多重度は２であるため、この場合、当該４人のユーザ以外の他のユーザの平均データ処理時間と重複しなければ、データ取得装置２００は、多重度が１（すなわち重複しない）となるように調整してもよい。このように、データ取得装置２００が起動タイミング１００１のずれよりもデータ取得装置２００の処理負荷を重要視するように設定されている場合は、多重度がより低くなるように調整してもよい。【０１８２】
なお、実施例４では、平均データ処理時間の重複を検出することにより、起動タイミング１００１を調整する例について説明したが、起動タイミング１００１の重複を検出することにより、起動タイミング１００１を調整することとしてもよい。この場合、平均データ処理時間の算出が、重複した起動タイミング１００１に限定されるため、調整処理の簡素化を図ることができる。【０１８３】
＜調整処理手順例＞
図３０は、起動タイミング１００１の調整処理手順例を示すフローチャートである。当該フローチャートは、たとえば、最新の起動タイミング１００１が設定されたタイミングで実行される。まず、データ取得装置２００は、設定済みで、かつ、また到来していない複数の起動タイミング１００１に対応するユーザＩＤ６０２の各々について、データ取得推定テーブル７００からパターン形状６０６を取得する（ステップＳ３００１）。【０１８４】
つぎに、データ取得装置２００は、データ取得履歴蓄積テーブル６００を参照して、ステップＳ３００１で取得したパターン形状６０６におけるデータ処理時間６０５を取得し、当該ユーザについて、取得したパターン形状６０６における平均データ処理時間を、ユーザＩＤ６０２ごとに算出する（ステップＳ３００２）。【０１８５】
そして、データ取得装置２００は、各ユーザＩＤ６０２の起動タイミング１００１からの平均データ処理時間が重複するか否かを判断する（ステップＳ３００３）。ここでは、平均データ処理時間の重複数が多重度以下であれば、データ取得装置２００は、重複しないと判断し（ステップＳ３００３：Ｎｏ）、多重度を超えていれば、データ取得装置２００は、重複すると判断する（ステップＳ３００３：Ｙｅｓ）。【０１８６】
重複しない場合（ステップＳ３００３：Ｎｏ）、データ取得装置２００は、起動タイミング１００１の調整処理を終了する。一方、重複する場合（ステップＳ３００３：Ｙｅｓ）、データ取得装置２００は、多重度に基づいて、各起動タイミング１００１を調整し、調整した起動タイミング１００１について起動タイミング管理テーブル１０００を更新する（ステップＳ３００４）。これにより、データ取得装置２００は、起動タイミング１００１の調整処理を終了する。【０１８７】
このように、上述したデータ取得装置２００によれば、ユーザが要求するであろうデータ取得要求を推定して、当該データ取得要求に該当するデータを事前に取得することにより、データ取得要求があった場合に即座にデータをユーザに提供することができる。したがって、要求に応じて取得するデータの応答遅延の抑制を図ることができる。【０１８８】
また、ユーザが要求するであろうデータ取得要求が複数種類存在する場合、過去のデータ取得要求の学習結果から、ユーザが選択するであろうデータ取得要求ごとの選択確率１２０３を求めておくことで、データ事前取得の推定精度の向上を図ることができる。【０１８９】
また、選択確率１２０３に応じて選択されたデータ取得要求とは異なるデータ取得要求が実際に受信された場合も、データ取得装置２００は、取得パターン列の乗換をすることで、データの事前取得を継続的に実行することができる。また、当該異なるデータ取得要求を学習することにより、これ以降、データ事前取得の推定精度の向上を図ることができる。【０１９０】
また、要求元は、ユーザ（作業者）を特定する端末であるため、ユーザに固有な取得パターンを学習することができる。また、要求元は、複数のユーザが利用するアプリケーション１０２でもよい。これにより、アプリケーション１０２に固有な取得パターンを学習することができる。また、これにより、新規ユーザであっても、利用するアプリケーション１０２が特定されることで、データを事前取得することが可能となる。【０１９１】
また、一連のデータ取得要求の取得パターンが重複する場合、重複箇所を除いて事前取得することにより、事前取得処理の高速化を図ることができる。【０１９２】
複数のユーザのデータ処理時間の時間帯が重複する場合、多重度に応じてユーザ数未満となるように重複数を調整することにより、データ取得装置２００の負荷低減を図ることができる。【０１９３】
また、上述した実施例１〜４では、電力設備をノードとした電力ＮＷモデルの例に挙げて説明したが、他のデータにも適用することができる。たとえば、小売り企業の売り上げ分析を目的に店舗別のデータを取得したい場合、ノードを店舗とし、属性を月当りの売上、月当たりの客数、最も売上額の多い顧客の年齢層、店舗位置にすればよい。これにより、たとえば、分類されたデータに対して、６０歳代の顧客が最も多く、売上が１，０００万円以上で、客数が１，０００人以下の店舗のデータを取得して分析するといった利用方法が可能になる。また、続けて、５０歳代、４０歳代というように属性を変えて分析を進める場合、取得パターンのステップが推定可能である。【０１９４】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。【０１９５】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。【０１９６】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の記録媒体に格納することができる。【０１９７】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【図１】
0006591080.tif 000002
【図２】
0006591080.tif 000003
【図３】
0006591080.tif 000004
【図４】
0006591080.tif 000005
【図５】
0006591080.tif 000006
【図６】
0006591080.tif 000007
【図７】
0006591080.tif 000008
【図８】
0006591080.tif 000009
【図９】
0006591080.tif 000010
【図１０】
0006591080.tif 000011
【図１１】
0006591080.tif 000012
【図１２】
0006591080.tif 000013
【図１３】
0006591080.tif 000014
【図１４】
0006591080.tif 000015
【図１５】
0006591080.tif 000016
【図１６】
0006591080.tif 000017
【図１７】
0006591080.tif 000018
【図１８】
0006591080.tif 000019
【図１９】
0006591080.tif 000020
【図２０】
0006591080.tif 000021
【図２１】
0006591080.tif 000022
【図２２】
0006591080.tif 000023
【図２３】
0006591080.tif 000024
【図２４】
0006591080.tif 000025
【図２５】
0006591080.tif 000026
【図２６】
0006591080.tif 000027
【図２７】
0006591080.tif 000028
【図２８】
0006591080.tif 000029
【図２９】
0006591080.tif 000030
【図３０】
0006591080.tif 000031