(57)【特許請求の範囲】
【請求項１】
時間の経過に伴って逐次生成されるデータストリームに対するクエリを実行するノード装置から出力可能な情報の種類を識別する情報種と、前記情報種の情報が有する属性を表す属性情報と、を含む構成情報を記憶する構成情報記憶部と、
前記クエリの種類を識別するクエリ種と、前記クエリ種のクエリの演算式と、前記演算式で用いられる情報の属性を表す入力属性情報と、前記演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶するクエリ定義情報記憶部と、
前記クエリ定義情報記憶部に記憶されたクエリ定義情報のうち、その入力属性情報が、前記構成情報記憶部に記憶された構成情報の属性情報に含まれるものがある場合に、該クエリ定義情報が示す演算式の入力として該構成情報が示す情報種の情報を適用したクエリにより得られることが予測される情報の新たな情報種と、該新たな情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、を含む前記構成情報を生成し、生成した構成情報を前記構成情報記憶部に登録する構成情報予測部と、
前記構成情報記憶部に記憶されている前記構成情報が示す情報種の一覧を、前記ノード装置に実行させるためのクエリが入力されるクライアント装置に対して送信する構成情報送信部と、
を備えた管理装置。
【請求項２】
前記クエリ定義情報記憶部は、前記演算式において複数の情報種の情報が用いられているクエリに関して、前記複数の情報種のそれぞれにおいて用いられる属性をそれぞれ表す複数の前記入力属性情報を含む前記クエリ定義情報を記憶し、
前記構成情報予測部は、前記クエリ定義情報記憶部に記憶されたクエリ定義情報に複数の前記入力属性情報が含まれるとき、前記複数の入力属性情報のそれぞれを前記属性情報に含む複数の構成情報が前記構成情報記憶部に記憶されている場合に、該クエリ定義情報が示す演算式の入力として、該複数の構成情報がそれぞれ示す複数の情報種の情報を適用したクエリにより得られることが予測される新たな情報種について、前記構成情報を生成することを特徴とする請求項１に記載の管理装置。
【請求項３】
前記構成情報予測部は、所定のタイミング毎に、前記構成情報記憶部および前記クエリ定義情報記憶部に基づく前記新たな情報種を予測する処理を行うことを特徴とする請求項１または請求項２に記載の管理装置。
【請求項４】
請求項１から請求項３のいずれか１項に記載の管理装置と、前記クライアント装置と、前記ノード装置とを備えたデータストリーム処理システムであって、
前記管理装置において、
前記構成情報記憶部は、前記構成情報に、前記情報種の情報を出力可能なノード装置を識別するノード情報と、前記情報種の情報を得るための前記クエリとをさらに含めて記憶し、
前記構成情報送信部は、前記構成情報の内容を照会する情報を前記クライアント装置または前記ノード装置から受信すると、照会された情報を照会元の装置に対して送信し、
前記クライアント装置は、
前記管理装置に記憶された前記構成情報が示す情報種の一覧を照会する情報を前記管理装置に送信することにより、前記情報種の一覧を取得する情報種一覧取得部と、
前記情報種一覧取得部によって取得された前記情報種の一覧を出力するとともに、前記情報種の一覧に含まれる情報種を用いて入力されるクエリを取得するクエリ入力部と、
前記クエリ入力部に入力されたクエリにおいて用いられる情報種を出力可能なノード装置を照会する情報を前記管理装置に送信することにより、該当するノード情報を取得し、取得したノード情報が示すノード装置に対して該クエリを送信するクエリ送信部と、
前記ノード装置から前記クエリの処理結果を受信することにより出力するクエリ処理結果出力部と、
を有し、
前記ノード装置は、
前記クライアント装置からクエリを受信すると、該クエリにおいて用いられている情報種の情報を得るためのクエリを照会する情報を前記管理装置に送信することにより、該当するクエリを取得し、取得したクエリを実行して得られる情報を用いて、前記クライアント装置から受信したクエリを実行するクエリ実行部と、
前記クライアント装置から受信されたクエリの処理結果を、前記クライアント装置に送信するクエリ処理結果送信部と、
を有するデータストリーム処理システム。
【請求項５】
前記クライアント装置は、前記クエリ入力部に入力されたクエリに関する前記クエリ定義情報の登録を要求する情報を前記管理装置に送信するクエリ定義情報登録要求部をさらに有し、
前記ノード装置は、前記クライアント装置から受信したクエリの実行によって得られた情報の新たな情報種に関する前記構成情報の登録を要求する情報を前記管理装置に送信する構成情報登録要求部をさらに有し、
前記管理装置は、
前記クエリ定義情報の登録を要求する情報の受信に応じて、前記クライアント装置において入力されたクエリに関する新たな前記クエリ定義情報を前記クエリ定義情報記憶部に登録するクエリ定義情報登録部と、
前記構成情報の登録を要求する情報の受信に応じて、前記クライアント装置において入力されたクエリの実行によって得られた情報の新たな情報種に関する前記構成情報を前記構成情報記憶部に登録する構成情報登録部と、
をさらに有することを特徴とする請求項４に記載のデータストリーム処理システム。
【請求項６】
前記クライアント装置の前記クエリ送信部は、前記クエリ入力部に入力されたクエリにおいて複数の情報種の情報が用いられているとき、いずれかの情報種を出力可能なノード装置に該クエリを送信し、
前記ノード装置の前記クエリ実行部は、他の装置からクエリを受信すると、受信したクエリにおいて用いられている各情報種の情報について、該情報種を出力可能なノード装置のノード情報、および、該情報種を得るためのクエリを、それぞれ前記管理装置に照会することにより取得し、前記各情報種の情報のうち、自装置で出力可能なものについてはそのクエリを自装置で実行することにより該情報を取得するとともに、他のノード装置で出力可能なものについては該他のノード装置に該クエリを送信することによりその処理結果を該情報として取得し、取得した各情報種の情報を用いて、前記他の装置から受信したクエリを実行し、
前記ノード装置のクエリ処理結果送信部は、前記クエリ実行部による処理結果を、前記クエリ実行部によって受信されたクエリの送信元の前記他の装置に送信することを特徴とする請求項４または請求項５に記載のデータストリーム処理システム。
【請求項７】
コンピュータ装置が、
時間の経過に伴って逐次生成されるデータストリームに対するクエリによって得られる情報の種類を識別する情報種と、前記情報種の情報が有する属性を表す属性情報と、を含む構成情報を記憶しておき、
前記クエリの種類を識別するクエリ種と、前記クエリ種のクエリの演算式と、前記演算式で用いられる情報の属性を表す入力属性情報と、前記演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶しておき、
前記クエリ定義情報のうち、その入力属性情報が、前記構成情報の属性情報に含まれるものがある場合に、該クエリ定義情報が示す演算式の入力として該構成情報が示す情報種の情報を適用したクエリにより得られることが予測される情報の新たな情報種と、該新たな情報種が有する属性として該クエリ定義情報に含まれる出力属性情報と、を含む前記構成情報を生成し、生成した構成情報を追加して記憶し、
記憶している前記構成情報が示す情報種の一覧を、前記データストリームに対するクエリが入力される際に使用可能な情報種として提示する、データストリーム処理方法。
【請求項８】
提示した前記情報種の一覧に含まれる情報種を用いて入力されたクエリに関する前記クエリ定義情報を追加して記憶し、
前記入力されたクエリの実行によって得られた情報の新たな情報種に関する前記構成情報を追加して記憶し、
追加したものを含む前記クエリ定義情報および追加したものを含む前記構成情報を用いて、前記新たな情報種を予測する処理を前記コンピュータ装置がさらに行うことを特徴とする請求項７に記載のデータストリーム処理方法。
【請求項９】
時間の経過に伴って逐次生成されるデータストリームに対するクエリを実行するノード装置から出力可能な情報の種類を識別する情報種と、前記情報種の情報が有する属性を表す属性情報と、を含む構成情報を記憶した構成情報記憶部と、前記クエリの種類を識別するクエリ種と、前記クエリ種のクエリの演算式と、前記演算式で用いられる情報の属性を表す入力属性情報と、前記演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶したクエリ定義情報記憶部と、を用いて、
前記クエリ定義情報記憶部に記憶されたクエリ定義情報のうち、その入力属性情報が、前記構成情報記憶部に記憶された構成情報の属性情報に含まれるものがある場合に、該クエリ定義情報が示す演算式の入力として該構成情報が示す情報種の情報を適用したクエリにより得られることが予測される情報の新たな情報種と、該新たな情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、を含む前記構成情報を生成し、生成した構成情報を前記構成情報記憶部に登録する構成情報予測ステップと、
前記構成情報記憶部に記憶されている前記構成情報が示す情報種の一覧を、前記ノード装置に実行させるためのクエリが入力されるクライアント装置に対して送信する構成情報送信ステップと、をコンピュータ装置に実行させるコンピュータ・プログラム。
【請求項１０】
前記構成情報送信ステップで送信した前記構成情報が示す情報種の一覧に含まれる情報種を用いて前記クライアント装置において入力されたクエリに関する前記クエリ定義情報を前記クエリ定義情報記憶部に登録するクエリ定義情報登録ステップと、
前記クライアント装置において入力されたクエリの実行によって得られた情報の新たな情報種に関する前記構成情報を前記構成情報記憶部に登録する構成情報登録ステップと、
をさらに前記コンピュータ装置に実行させ、
前記構成情報予測ステップにおいて、追加されたものを含む前記クエリ定義情報記憶部および追加されたものを含む前記構成情報記憶部を用いて、前記新たな情報種を予測する処理をさらに行うことを特徴とする請求項９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時間の経過に伴って逐次生成されるデータであるデータストリームを処理するデータストリーム処理システムに関する。
【背景技術】
【０００２】
時間の経過に伴って逐次生成される大量のイベントデータであるデータストリームをリアルタイムに処理する技術として、データストリーム処理システム（ＤＳＭＳ；Data Stream Management System）が知られている。データストリーム処理システムは、リアルタイムに流れ続ける一過性のデータを、データベースに格納・蓄積することなく、あらかじめ登録されたクエリに基づいて逐次処理するとともに、その処理結果を逐次出力する。
【０００３】
典型的なデータストリーム処理システムは、複数のノード装置を含む。各ノード装置には、互いに異なる情報の種類（情報種）のデータストリームが入力される。各ノード装置は、あらかじめ登録されたクエリに基づいて、入力されたデータストリームに対する処理を逐次行い、その処理結果を他のノード装置へ逐次出力する。このようなデータストリーム処理システムは、複数のデータストリームを、複数のノード装置によって分散して処理するとともに、その処理結果を統合することにより、ユーザにより要求された情報を出力する。
【０００４】
このようなデータストリーム処理システムにおいて、ユーザは、所望の情報を取得するための適切なクエリを入力する必要がある。このような適切なクエリを入力するには、各ノード装置に入力されるデータストリームの種類（情報種）やノード装置の構成等を把握している必要があり、ユーザにとって容易ではない。そのため、ユーザによるクエリの入力を支援するデータストリーム処理システムがある（例えば、特許文献１参照）。
【０００５】
この特許文献１に記載されたデータストリーム処理システムでは、管理装置は、ある情報種のデータストリームに対するクエリと、クエリ処理結果の情報種と、そのようなクエリ処理結果を出力可能なノード装置とを対応付けて記憶している。そして、このデータストリーム処理システムにおいて、クライアント装置は、管理装置に記憶されている情報種を取得してユーザに提示する。これにより、ユーザは、既存のクエリ処理結果の情報種を用いた新たなクエリを入力することができる。そして、クライアント装置は、入力されたクエリにおいて用いられている情報種を処理結果として出力可能なノード装置を管理装置に照会し、そのノード装置にクエリを送信する。クエリを受信したノード装置は、そのクエリで用いられている情報種の情報を取得する。そして、ノード装置は、取得した情報種の情報を用いて、クライアント装置から受信したクエリを処理する。そして、管理装置は、この新たなクエリと、その処理結果の情報種と、このクエリ処理結果を出力したノード装置とを対応付けた情報を、追加して記憶する。このようにして、このデータストリーム処理装置は、クエリ処理結果の情報種に関する情報を蓄積していくことにより、クエリの入力において用いることができる情報種をユーザに提示してクエリの入力を支援する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１７５４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載されたものは、実行済みのクエリ処理結果の情報種を提示するため、システムにおいて充分な数のクエリが実行されるまでは、豊富な知識情報を提示できないという問題があった。また、特許文献１に記載されたものは、実行済みのクエリ処理結果の情報種を提示するだけでは、ユーザにとって容易に想到できないような様々な情報種を用いたクエリの入力支援には充分でない場合があった。
【０００８】
本発明は、上述の課題を解決するためになされたもので、ユーザによるクエリの入力を支援するためのより有効でより豊富な情報を提示することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の管理装置は、時間の経過に伴って逐次生成されるデータストリームに対するクエリを実行するノード装置から出力可能な情報の種類を識別する情報種と、前記情報種の情報が有する属性を表す属性情報と、を含む構成情報を記憶する構成情報記憶部と、前記クエリの種類を識別するクエリ種と、前記クエリ種のクエリの演算式と、前記演算式で用いられる情報の属性を表す入力属性情報と、前記演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶するクエリ定義情報記憶部と、前記クエリ定義情報記憶部に記憶されたクエリ定義情報のうち、その入力属性情報が、前記構成情報記憶部に記憶された構成情報の属性情報に含まれるものがある場合に、該クエリ定義情報が示す演算式の入力として該構成情報が示す情報種の情報を適用したクエリにより得られることが予測される情報の新たな情報種と、該新たな情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、を含む前記構成情報を生成し、生成した構成情報を前記構成情報記憶部に登録する構成情報予測部と、前記構成情報記憶部に記憶されている前記構成情報が示す情報種の一覧を、前記ノード装置に実行させるためのクエリが入力されるクライアント装置に対して送信する構成情報送信部と、を備える。
【００１０】
また、本発明のデータストリーム処理システムは、前記管理装置と、前記クライアント装置と、前記ノード装置とを備えたデータストリーム処理システムであって、前記管理装置において、前記構成情報記憶部は、前記構成情報に、前記情報種の情報を出力可能なノード装置を識別するノード情報と、前記情報種の情報を得るための前記クエリとをさらに含めて記憶し、前記構成情報送信部は、前記構成情報の内容を照会する情報を前記クライアント装置または前記ノード装置から受信すると、照会された情報を照会元の装置に対して送信し、前記クライアント装置は、前記管理装置に記憶された前記構成情報が示す情報種の一覧を照会する情報を前記管理装置に送信することにより、前記情報種の一覧を取得する情報種一覧取得部と、前記情報種一覧取得部によって取得された前記情報種の一覧を出力するとともに、前記情報種の一覧に含まれる情報種を用いて入力されるクエリを取得するクエリ入力部と、前記クエリ入力部に入力されたクエリにおいて用いられる情報種を出力可能なノード装置を照会する情報を前記管理装置に送信することにより、該当するノード情報を取得し、取得したノード情報が示すノード装置に対して該クエリを送信するクエリ送信部と、前記ノード装置から前記クエリの処理結果を受信することにより出力するクエリ処理結果出力部と、を有し、前記ノード装置は、前記クライアント装置からクエリを受信すると、該クエリにおいて用いられている情報種の情報を得るためのクエリを照会する情報を前記管理装置に送信することにより、該当するクエリを取得し、取得したクエリを実行して得られる情報を用いて、前記クライアント装置から受信したクエリを実行するクエリ実行部と、前記クライアント装置から受信されたクエリの処理結果を、前記クライアント装置に送信するクエリ処理結果送信部と、を有する。
【００１１】
また、本発明のデータストリーム処理方法は、コンピュータ装置が、時間の経過に伴って逐次生成されるデータストリームに対するクエリによって得られる情報の種類を識別する情報種と、前記情報種の情報が有する属性を表す属性情報と、を含む構成情報を記憶しておき、前記クエリの種類を識別するクエリ種と、前記クエリ種のクエリの演算式と、前記演算式で用いられる情報の属性を表す入力属性情報と、前記演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶しておき、前記クエリ定義情報のうち、その入力属性情報が、前記構成情報の属性情報に含まれるものがある場合に、該クエリ定義情報が示す演算式の入力として該構成情報が示す情報種の情報を適用したクエリにより得られることが予測される情報の新たな情報種と、該新たな情報種が有する属性として該クエリ定義情報に含まれる出力属性情報と、を含む前記構成情報を生成し、生成した構成情報を追加して記憶し、記憶している前記構成情報が示す情報種の一覧を、前記データストリームに対するクエリが入力される際に使用可能な情報種として提示する。
【００１２】
また、本発明のコンピュータ・プログラムは、時間の経過に伴って逐次生成されるデータストリームに対するクエリを実行するノード装置から出力可能な情報の種類を識別する情報種と、前記情報種の情報が有する属性を表す属性情報と、を含む構成情報を記憶した構成情報記憶部と、前記クエリの種類を識別するクエリ種と、前記クエリ種のクエリの演算式と、前記演算式で用いられる情報の属性を表す入力属性情報と、前記演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶したクエリ定義情報記憶部と、を用いて、前記クエリ定義情報記憶部に記憶されたクエリ定義情報のうち、その入力属性情報が、前記構成情報記憶部に記憶された構成情報の属性情報に含まれるものがある場合に、該クエリ定義情報が示す演算式の入力として該構成情報が示す情報種の情報を適用したクエリにより得られることが予測される情報の新たな情報種と、該新たな情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、を含む前記構成情報を生成し、生成した構成情報を前記構成情報記憶部に登録する構成情報予測ステップと、前記構成情報記憶部に記憶されている前記構成情報が示す情報種の一覧を、前記ノード装置に実行させるためのクエリが入力されるクライアント装置に対して送信する構成情報送信ステップと、をコンピュータ装置に実行させる。
【発明の効果】
【００１３】
本発明は、ユーザによるクエリの入力を支援するためのより有効でより豊富な情報を提示することができる技術を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態としてのデータストリーム処理システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態としてのデータストリーム処理システムを構成する各装置の機能ブロック図である。
【図３】本発明の第１の実施の形態における構成情報記憶部に記憶される情報の一例を示す図である。
【図４】本発明の第１の実施の形態におけるクエリ定義情報記憶部に記憶される情報の一例を示す図である。
【図５】本発明の第１の実施の形態としてのデータストリーム処理システムのクエリ入力からクエリ実行までの動作を説明するシーケンス図である。
【図６】本発明の第１の実施の形態としての管理装置の構成情報予測動作を説明するフローチャートである。
【図７】本発明の第２の実施の形態としてのデータストリーム処理システムの構成を示すブロック図である。
【図８】本発明の第２の実施の形態としてのデータストリーム処理システムを構成する各装置の機能ブロック図である。
【図９】本発明の第２の実施の形態としてのデータストリーム処理システムにおける初期の構成情報登録動作を説明するシーケンス図である。
【図１０】本発明の第２の実施の形態としてのデータストリーム処理システムのクエリ入力からクエリ実行までの動作を説明するシーケンス図である。
【図１１】本発明の第２の実施の形態としてのデータストリーム処理システムのクエリ実行動作を説明するシーケンス図である。
【図１２】本発明の第２の実施の形態としてのデータストリーム処理システムのクエリ定義情報登録動作を説明するフローチャートである。
【図１３】本発明の第２の実施の形態としてのデータストリーム処理システムの構成情報登録動作を説明するフローチャートである。
【図１４】（ａ）〜（ｄ）は、本発明の第２の実施の形態において、クエリが実行される度に構成情報記憶部に追加される構成情報の一例を示す図である。
【図１５】（ａ）〜（ｃ）は、本発明の第２の実施の形態において、クエリが入力される度にクエリ定義情報記憶部に追加されるクエリ定義情報の一例を示す図である。
【図１６】（ａ）〜（ｂ）は、本発明の第２の実施の形態において、構成情報予測部により予測された構成情報の一例を示す図である。
【図１７】本発明の管理装置の最小構成例を示す機能ブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１６】
（第１の実施の形態）
本発明の第１の実施の形態としてのデータストリーム処理システム１の構成を図１に示す。図１において、データストリーム処理システム１は、管理装置１０と、クライアント装置２０と、ノード装置３０ａ〜３０ｃ（以降、総称してノード装置３０ともいう）を含む。
【００１７】
管理装置１０は、データストリーム処理システム１において行われるデータストリーム処理に関する各種管理情報を記憶するとともに、その照会に対する応答等の管理動作を行う装置である。例えば、管理装置１０は、ネットワークを介して他の装置から各種管理情報の照会を受け付けるウェブサービスを提供する装置であってもよい。
【００１８】
ノード装置３０は、データストリームに対してリアルタイムに任意のクエリを実行可能な装置である。各ノード装置３０には、データストリーム処理システム１の外部のデータストリーム出力装置９０ａ〜９０ｃ（以降、総称してデータストリーム出力装置９０とも記載する）から、それぞれデータストリームが入力される。データストリーム出力装置９０は、１つ以上の属性を有するタプルを、時間の経過に伴って逐次生成して出力する。例えば、データストリームは、変動する株価データ、各種センサにより継続的に取得される測定値データ、車両等の移動体の位置データ等を表すものであってもよい。また、このようなデータストリームの情報の種類を、以降、情報種というものとする。なお、各装置３０に入力されるデータストリームの情報種は、互いに異なるものであってもよいし、少なくとも一部が同一のものであってもよい。また、各ノード装置３０に入力されるデータストリームの情報種およびその属性は、あらかじめ設定されているものとする。本実施の形態では、ノード装置３０ａに情報種ａのデータストリームが入力され、ノード装置３０ｂに情報種ｂのデータストリームが入力され、ノード装置３０ｃに情報種ｃのデータストリームが入力されるものとして説明を行う。
【００１９】
クライアント装置２０は、ノード装置３０に入力されるデータストリームに対する任意のクエリを入力する装置である。ここで、クエリとは、例えば、ＣＱＬ（Continuous Query Language）に従って記載された処理であってもよい。また、クエリは、データストリームに対する問い合わせに適用可能なその他の問い合わせ言語に従って記載された処理であってもよい。また、このようなクエリにおいて入力として用いられる情報は、データストリームであってもよいし、他のクエリにより出力される情報であってもよい。また、このようなクエリから出力される情報は、データストリームであってもよいし、データストリームの処理において生成される中間的な情報であってもよい。このようなクエリによって出力される情報も、１つ以上の属性を有するタプルからなる。また、このようなクエリによって出力される情報の種類も、情報種というものとする。
【００２０】
また、管理装置１０、クライアント装置２０およびノード装置３０は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。なお、図１において、１つの管理装置１０、１つのクライアント装置２０および３つのノード装置３０を示したが、本発明のデータストリーム処理システムが備える各装置の数を限定するものではない。
【００２１】
次に、データストリーム処理システム１を構成する各装置の機能ブロックを図２に示す。図２において、管理装置１０は、構成情報記憶部１１と、クエリ定義情報記憶部１２と、構成情報予測部１３と、構成情報送信部１４とを備える。また、クライアント装置２０は、情報種一覧取得部２１と、クエリ入力部２２と、クエリ送信部２３と、クエリ処理結果出力部２４とを備える。また、ノード装置３０は、クエリ実行部３１と、クエリ処理結果送信部３２とを備える。ここで、管理装置１０およびノード装置３０は、ＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、ＲＯＭ（Read Only Memory）と、ハードディスク等の記憶装置と、ネットワークインタフェースとを備えたコンピュータ装置によって構成されている。クライアント装置２０は、ＣＰＵと、ＲＡＭと、ＲＯＭと、ハードディスク等の記憶装置と、ネットワークインタフェースと、入力装置と、表示装置とを備えたコンピュータ装置によって構成されている。また、構成情報記憶部１１およびクエリ定義情報記憶部１２は、記憶装置によって構成される。また、構成情報予測部１３は、ＲＯＭまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをＲＡＭに読み込んで実行するＣＰＵによって構成される。また、構成情報送信部１４は、ネットワークインタフェースと、ＲＯＭまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをＲＡＭに読み込んで実行するＣＰＵとによって構成される。また、情報種一覧取得部２１、クエリ送信部２３およびクエリ処理結果出力部２４は、ネットワークインタフェースと、ＲＯＭまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをＲＡＭに読み込んで実行するＣＰＵとによって構成される。また、クエリ入力部２２は、入力装置と、表示装置と、ＲＯＭまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをＲＡＭに読み込んで実行するＣＰＵとによって構成される。また、クエリ実行部３１およびクエリ処理結果送信部３２は、ネットワークインタフェースと、ＲＯＭまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをＲＡＭに読み込んで実行するＣＰＵとによって構成される。なお、各装置の各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【００２２】
まず、管理装置１０の各機能ブロックについて説明する。
【００２３】
構成情報記憶部１１は、クエリによって得られる情報の種類を識別する情報種と、その情報種の情報が有する属性を表す属性情報と、その情報種の情報を出力可能なノード装置３０を表すノード情報と、その情報種の情報を得るためのクエリと、を含む構成情報を記憶する。構成情報記憶部１１に記憶される構成情報の一例を図３に示す。図３において、各行は、構成情報を示す。例えば、１行目の構成情報によれば、情報種ａの情報が有する属性は、α、β、γである。この場合、情報種ａの情報は、属性αの値、属性βの値、および、属性γの値を含むタプルからなる。また、情報種ａの情報を出力可能なノード装置３０は、ノード装置３０ａである。また、情報種ａの情報は、情報種ａのデータストリームをそのまま出力するクエリ（そのようなクエリを単にクエリａとも記載する）によって得られる。また、４行目の構成情報によれば、情報種ｄの情報は、βおよびζの属性を有している。また、情報種ｄの情報は、ノード装置３０ａによって出力可能である。また、情報種ｄの情報は、情報種ａの情報に対してＦ（ｘ）で表される演算式を適用したクエリＦ（ａ）により得られる。
【００２４】
クエリ定義情報記憶部１２は、クエリの種類を識別するクエリ種と、クエリの演算式と、その演算式で用いられる情報の属性を表す入力属性情報と、その演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶する。クエリ定義情報記憶部１２に記憶されるクエリ定義情報の一例を図４に示す。図４において、各行は、クエリ定義情報を示す。例えば、１行目のクエリ定義情報によれば、クエリ種Ｆのクエリの演算式は、Ｆ（ｘ）で表され、その入力属性情報はαおよびβであり、出力属性情報はβおよびζである。つまり、クエリ種Ｆのクエリは、属性αおよびβを少なくとも有する情報に対して、属性αおよびβを用いた演算を行うことにより、属性βおよびζを有する情報を出力するものである。例えば、クエリ種Ｆのクエリは、属性αおよびβを有する情報に対して、αの値が所定範囲に含まれるものにおけるβの平均値、および、該当するデータのカウント数を求める演算を行うものであってもよい。この場合、このクエリ種Ｆから出力される情報は、βおよびζ（カウント数）を有することになる。
【００２５】
構成情報予測部１３は、構成情報記憶部１１およびクエリ定義情報記憶部１２にそれぞれ記憶された情報に基づいて、新たな構成情報の予測処理を行う。具体的には、構成情報予測部１３は、クエリ定義情報記憶部１２に記憶されたクエリ定義情報のうち、その入力属性情報が、構成情報記憶部１１に記憶された構成情報の属性情報に含まれるものがあるか否かを判断する。そして、属性情報に入力属性情報を含む構成情報がある場合、構成情報予測部１３は、その入力属性情報を有するクエリ定義情報が示す演算式の入力に、その構成情報が示す情報種の情報を適用したクエリにより得られることが予測される新たな情報種に関する構成情報を生成する。ここで、構成情報予測部１３は、新たな構成情報として、新たな情報種と、新たな情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、予測したクエリと、該構成情報に含まれるノード情報とを含む構成情報を生成すればよい。そして、構成情報予測部１３は、生成した構成情報を構成情報記憶部１１に登録する。
【００２６】
構成情報送信部１４は、構成情報記憶部１１に記憶された構成情報が示す情報種の一覧を、クライアント装置２０に対して送信する。このとき、構成情報送信部１４は、情報種の一覧に、その情報種の情報が有する属性情報を含めてもよい。
【００２７】
また、構成情報送信部１４は、指定された情報種の情報を出力可能なノード装置３０を照会する情報をクライアント装置２０から受信する。また、構成情報送信部１４は、構成情報記憶部１１を参照することにより、照会された情報種を出力可能なノード装置３０を識別するノード情報を、照会元のクライアント装置２０に対して送信する。
【００２８】
また、構成情報送信部１４は、指定された情報種を得るためのクエリを照会する情報をノード装置３０から受信する。また、構成情報送信部１４は、構成情報記憶部１１を参照することにより、照会された情報種を得るためのクエリを、照会元のノード装置３０に対して送信する。
【００２９】
次に、クライアント装置２０の各機能ブロックについて説明する。
【００３０】
情報種一覧取得部２１は、管理装置１０に照会することにより、構成情報記憶部１１に登録済みの構成情報が示す情報種の一覧を取得する。
【００３１】
クエリ入力部２２は、情報種の一覧を表示装置等に出力することにより、一覧に含まれる情報種を用いて入力されるクエリを、入力装置を介して取得する。その他、クエリ入力部２２は、表示した一覧に含まれる情報種を用いずに新たに入力されるクエリを取得してもよい。
【００３２】
クエリ送信部２３は、入力されたクエリにおいて用いられる情報の情報種を出力可能なノード装置３０に対して、このクエリを送信する。ここで、クエリにおいて用いられる情報の情報種について説明する。例えば、「情報種ａのデータストリームから、属性αの値が所定範囲のものを抽出する」というクエリであれば、このクエリにおいて用いられる情報の情報種はａである。また、このとき、クエリ送信部２３は、送信先となるノード装置３０を決定するため、入力されたクエリにおいて用いられる情報の情報種を特定し、特定した情報種の情報を出力可能なノード装置３０を照会する情報を、管理装置１０に対して送信すればよい。
【００３３】
クエリ処理結果出力部２４は、入力されたクエリの送信先のノード装置３０から、その処理結果を受信することにより出力する。
【００３４】
次に、ノード装置３０の各機能ブロックについて説明する。
【００３５】
クエリ実行部３１は、クライアント装置２０からクエリを受信すると、受信したクエリを実行する。このとき、クエリ実行部３１は、受信したクエリにおいて用いられる情報の情報種を得るためのクエリを照会する情報を、管理装置１０に対して送信する。そして、クエリ実行部３１は、そのような情報の情報種を得るためのクエリを管理装置１０から取得し、取得したクエリを実行して得られる情報を用いて、クライアント装置２０から受信したクエリを実行する。
【００３６】
クエリ処理結果送信部３２は、クエリ実行部３１により実行されたクエリの処理結果を、クライアント装置２０に送信する。
【００３７】
以上のように構成されたデータストリーム処理システム１の動作について、図面を参照して説明する。なお、管理装置１０の構成情報記憶部１１およびクエリ定義情報記憶部１２には、図３および図４に一例を示したような情報が既に記憶されているものとする。
【００３８】
まず、データストリーム処理システム１のクエリ実行動作を図５に示す。
【００３９】
図５において、まず、クライアント装置２０の情報種一覧取得部２１は、管理装置１０に対して、情報種の一覧を要求する情報を送信する（ステップＳ１）。
【００４０】
次に、管理装置１０の構成情報送信部１４は、構成情報記憶部１１に記憶されている構成情報が示す情報種一覧を、クライアント装置２０に送信する（ステップＳ２）。また、前述のように、構成情報送信部１４は、このような情報種一覧に、各情報種の情報が有する属性情報を含めてもよい。例えば、構成情報記憶部１１に図３に示した構成情報が記憶されていれば、構成情報送信部１４は、「情報種ａ（属性α、β、γ）」、「情報種ｂ（属性α、β、δ）」、「情報種ｃ（属性α、ε）」、「情報種ｄ（属性β、ζ）」の一覧を送信してもよい。
【００４１】
次に、クライアント装置２０のクエリ入力部２２は、ステップＳ２で取得された情報種の一覧を、表示装置等に出力する（ステップＳ３）。
【００４２】
次に、クエリ入力部２２は、出力した一覧に含まれる情報種を用いて入力されるクエリを、入力装置を介して取得する（ステップＳ４）。例えば、情報種ｄを用いたクエリが入力されたものとする。
【００４３】
次に、クエリ送信部２３は、入力されたクエリにおいて用いられている情報種を特定し、特定した情報種の情報を出力可能なノード装置３０を照会する情報を、管理装置１０に対して送信する（ステップＳ５）。例えば、クエリ送信部２３は、情報種ｄの情報を出力可能なノード装置３０を照会する情報を、管理装置１０に対して送信すればよい。
【００４４】
次に、管理装置１０の構成情報送信部１４は、ステップＳ５で照会された情報種を出力可能なノード装置３０を構成情報記憶部１１より取得し、そのノード情報をクライアント装置２０に送信する（ステップＳ６）。例えば、構成情報送信部１４は、情報種ｄの情報を出力可能なノード装置３０ａを表すノード情報を、クライアント装置２０に対して送信する。
【００４５】
次に、クライアント装置２０のクエリ送信部２３は、ステップＳ６で受信したノード情報が示すノード装置３０へ、ステップＳ４で入力されたクエリを送信する（ステップＳ７）。例えば、クエリ送信部２３は、情報種ｄの情報を出力可能なノード装置３０ａに対して、入力されたクエリを送信する。
【００４６】
次に、ノード装置３０のクエリ実行部３１は、受信したクエリで用いられる情報種を得るためのクエリを照会する情報を、管理装置１０に対して送信する（ステップＳ８）。
【００４７】
管理装置１０の構成情報送信部１４は、ステップＳ８で照会された情報種を得るためのクエリをクエリ定義情報記憶部１２より取得し、そのクエリを照会元のノード装置３０に対して送信する（ステップＳ９）。例えば、情報種ｄを得るためのクエリを照会する情報をノード装置３０ａから受信した場合、構成情報送信部１４は、クエリＦ（ａ）を、ノード装置３０ａに対して送信する。
【００４８】
次に、ノード装置３０のクエリ実行部３１は、ステップＳ９で管理装置１０から取得したクエリを実行して得られる情報種を用いて、ステップＳ７でクライアント装置２０から受信したクエリを実行する（ステップＳ１０）。
【００４９】
次に、クエリ処理結果送信部３２は、ステップＳ１０の処理結果を、クライアント装置２０に対して送信する（ステップＳ１１）。
【００５０】
次に、クライアント装置２０のクエリ処理結果出力部２４は、受信した処理結果を出力する（ステップＳ１２）。
【００５１】
以上で、データストリーム処理システム１は、クエリ実行動作を終了する。
【００５２】
次に、データストリーム処理システム１の構成情報予測動作を図６に示す。
【００５３】
図６では、管理装置１０の構成情報予測部１３は、クエリ定義情報記憶部１２に記憶された各クエリ定義情報について、以下のステップＳ２１〜Ｓ２６の処理を行う。
【００５４】
ここでは、まず、構成情報予測部１３は、このクエリ定義情報の入力属性情報を含む属性情報を有する情報種の構成情報を、構成情報記憶部１１から検索する（ステップＳ２１）。例えば、構成情報予測部１３は、クエリ種Ｆの入力属性情報「α、β」を含む属性情報を有する構成情報を、構成情報記憶部１１から検索し、情報種ａおよび情報種ｂの構成情報を得る。
【００５５】
ここで、そのような情報種の構成情報がなければ（ステップＳ２２でＮｏ）、構成情報予測部１３は、このクエリ定義情報についての処理を終了する。
【００５６】
一方、そのような構成情報がある場合（ステップＳ２２でＹｅｓ）、構成情報予測部１３は、得られた各構成情報について、以下のステップＳ２３〜Ｓ２６の処理を行う。例えば、構成情報予測部１３は、情報種ａおよび情報種ｂの各構成情報について、以下の処理を行う。
【００５７】
ここでは、構成情報予測部１３は、この構成情報が示す情報種の情報を、このクエリ定義情報の演算式に適用したクエリを生成する（ステップＳ２３）。例えば、構成情報予測部１３は、このクエリ定義情報の演算式Ｆ（ｘ）に、この情報種ａを適用したクエリＦ（ａ）を生成する。
【００５８】
ここで、生成したクエリによって得られる情報種に関する構成情報が、既に登録されている場合（ステップＳ２４でＹｅｓ）、構成情報予測部１３は、この構成情報に関する処理を終了する。例えば、クエリＦ（ａ）によって得られる情報種ｄの構成情報は既に登録されているので、構成情報予測部１３は、この構成情報に関する処理を終了する。
【００５９】
一方、生成したクエリによって得られる情報種に関する構成情報が、未だ登録されていない場合（ステップＳ２４でＮｏ）、構成情報予測部１３は、このクエリによって得られる新たな情報種の構成情報を生成する（ステップＳ２５）。例えば、情報種ｂについてステップＳ２３が実行されることによりクエリＦ（ｂ）が生成されたとする。この場合、クエリＦ（ｂ）から得られる情報種に関する構成情報は、未登録である。そこで、構成情報予測部１３は、このクエリＦ（ｂ）によって得られる情報の種類を表す新たな情報種（例えば、情報種ｅ）を新規に生成する。また、構成情報予測部１３は、情報種ｅの情報が有する属性情報として、このクエリ定義情報の出力属性情報（β、ζ）を得る。また、構成情報予測部１３は、情報種ｅの情報を出力可能なノード装置３０として、このクエリＦ（ｂ）で用いられている情報種ｂを出力可能なノード装置３０ｂを得る。そして、構成情報予測部１３は、情報種ｅと、ノード装置３０ｂと、クエリＦ（ｂ）と、属性情報（β、ζ）とを対応付けた構成情報を生成すればよい。
【００６０】
次に、構成情報予測部１３は、生成した構成情報を、構成情報記憶部１１に登録する（ステップＳ２６）。
【００６１】
以上で、データストリーム処理システム１は、構成情報予測動作を終了する。
【００６２】
このような構成情報予測動作後に、データストリーム処理システム１が、図５に示したクエリ入力から実行までの動作を行うと、クライアント装置２０において提示可能な情報種が増加していることになる。
【００６３】
次に、本発明の第１の実施の形態の効果について述べる。
【００６４】
本発明の第１の実施の形態としてのデータストリーム処理システムは、ユーザによるクエリの入力を支援するためのより有効でより豊富な情報を提示することができる。
【００６５】
その理由は、構成情報記憶部が、クエリによって得られる情報の情報種について、その情報種が有する属性情報を記憶しておき、クエリ定義情報記憶部が、クエリについてその入力となる属性情報と、出力となる属性情報とを記憶しておき、構成情報予測部が、クエリ定義情報の入力属性情報をその属性情報に含む構成情報がある場合に、そのクエリ定義情報の演算式に、その構成情報が示す情報種を適用したクエリにより得られる新たな情報種を予測するからである。このように、本実施の形態としてのデータストリーム処理システムは、既存のクエリの演算式に既存の情報種を適用して新たなクエリを予測する際に、その属性情報も考慮している。このように予測される新規のクエリは、単に既存のクエリの演算式に既存の情報種を適用して生成されるクエリに比べて、より実行可能性が高く、かつ、より有効性の高いものとなる。そして、本発明の第１の実施の形態としてのデータストリーム処理システムは、このように予測されたクエリにより得られる情報種も含む情報種の一覧を、クライアント装置において提示する。これにより、本発明の第１の実施の形態としてのデータストリーム処理システムは、既存のクエリに基づいて、実行可能性の高い未知のクエリを予測し、そのように予測したクエリによって得られることが予測される情報種をユーザに提示することができる。その結果、本実施の形態としてのデータストリーム処理システムは、ユーザによるクエリの入力に際して、クエリで用いることが可能な情報種として、実行済みの情報種からだけではユーザにとって容易に想到できないような情報種を含む、より多様な情報種を提示することになる。
【００６６】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００６７】
本発明の第２の実施の形態としてのデータストリーム処理システム４の構成を、図７に示す。図７において、データストリーム処理システム４は、管理装置４０と、クライアント装置５０と、ノード装置６０ａ〜６０ｃ（以降、総称してノード装置６０ともいう）を含む。本実施形態では、ノード装置６０ａに情報種ａのデータストリームが入力され、ノード装置６０ｂに情報種ｂのデータストリームが入力され、ノード装置６０ｃに情報種ｃのデータストリームが入力されるものとして説明を行う。また、管理装置４０、クライアント装置５０およびノード装置６０は、本発明の第１の実施の形態における各装置と同様に、ネットワークを介して互いに通信可能に接続されている。なお、図７に示した各装置の数は、本発明のデータストリーム処理システムが備える各装置の数を限定するものではない。
【００６８】
次に、データストリーム処理システム４を構成する各装置の機能ブロックを図８に示す。図８において、管理装置４０は、本発明の第１の実施の形態としての管理装置１０に対して、クエリ定義情報記憶部１２に替えてクエリ定義情報記憶部４２と、構成情報予測部１３に替えて構成情報予測部４３と、構成情報送信部１４に替えて構成情報送信部４４とを備え、さらに、構成情報登録部４５と、クエリ定義情報登録部４６とを備える点が異なる。また、クライアント装置５０は、本発明の第１の実施の形態としてのクライアント装置２０に対して、クエリ送信部２３に替えてクエリ送信部５３を備え、さらに、クエリ定義情報登録要求部５５を備える点が異なる。また、ノード装置６０は、本発明の第１の実施の形態としてのノード装置３０に対して、クエリ実行部３１に替えてクエリ実行部６１と、クエリ処理結果送信部３２に替えてクエリ処理結果送信部６２とを備え、さらに、構成情報登録要求部６３を備える点が異なる。また、構成情報登録部４５と、クエリ定義情報登録部４６と、クエリ定義情報登録要求部５５と、構成情報登録要求部６３とは、それぞれ、ネットワークインタフェースと、ＲＯＭまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをＲＡＭに読み込んで実行するＣＰＵとによって構成される。なお、各装置の各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【００６９】
まず、管理装置４０の各機能ブロックについて説明する。
【００７０】
クエリ定義情報記憶部４２は、本発明の第１の実施の形態のクエリ定義情報記憶部１２と同様に、クエリ定義情報を記憶する。ただし、クエリ定義情報記憶部４２に記憶されるクエリ定義情報は、１つ以上の入力属性情報を含む点が、本発明の第１の実施の形態におけるクエリ定義情報に対して異なる。具体的には、ｎ（ｎは１以上の整数）種類の情報種が入力として用いられるクエリに関するクエリ定義情報は、クエリにおいて利用されている１つ目の情報種の属性を入力属性情報１として含み、２つ目の情報種の属性を入力属性情報２として含み、ｎ個目の情報種の属性を入力属性情報ｎとして含む。
【００７１】
構成情報予測部４３は、本発明の第１の実施の形態の構成情報予測部１３と同様の予測処理を実行する。ただし、クエリ定義情報記憶部４２に記憶されたクエリ定義情報のうち、複数の入力属性情報が含まれるものについては、それぞれの入力属性情報について、その入力属性情報を属性情報にそれぞれ含む複数の構成情報が構成情報記憶部１１に記憶されているか否かを検索する。そして、そのような複数の構成情報が検索された場合に、構成情報予測部４３は、該クエリ定義情報が示す演算式の入力として、検索された複数の構成情報がそれぞれ示す情報種の情報を適用したクエリにより得られることが予測される新たな情報種に関する構成情報を生成する。
【００７２】
また、構成情報予測部４３は、新たな情報種の予測処理を所定のタイミング毎に繰り返し実行する。
【００７３】
構成情報送信部４４は、指定された情報種を出力可能なノード装置６０を照会する情報を、クライアント装置５０からだけでなく、ノード装置６０からも受信する点が、本発明の第１の実施の形態としての構成情報送信部１４に対して異なる。ノード装置６０からそのような情報を受信した場合、構成情報送信部４４は、照会された情報種の情報を出力可能なノード装置６０のノード情報を、照会元のノード装置６０に送信する。
【００７４】
構成情報登録部４５は、外部から構成情報の登録を要求する情報（構成情報登録要求）を受信すると、新たな構成情報を構成情報記憶部１１に登録する。具体的には、構成情報登録部４５は、ノード装置６０から、実行済みのクエリを表す情報を含む構成情報登録要求を受信する。そして、構成情報登録部４５は、構成情報登録要求に含まれるクエリによって得られる情報の種類を識別する情報種を新たに生成する。そして、構成情報登録部４５は、新たな情報種の属性情報として、そのクエリの種類を識別するクエリ種のクエリ定義情報に含まれる出力属性情報を、クエリ定義情報記憶部４２から取得する。そして、構成情報登録部４５は、新たな情報種の情報を出力可能なノード装置６０として、構成情報登録要求の送信元のノード装置６０を得る。このようにして、構成情報登録部４５は、新たな情報種と、その情報種を出力可能なノード装置６０のノード情報と、その情報種を得るためのクエリと、新たな情報種の属性情報とを含む構成情報を、新たに構成情報記憶部１１に登録する。
【００７５】
クエリ定義情報登録部４６は、外部からクエリ定義情報の登録を要求する情報（クエリ定義情報登録要求）を受信すると、新たなクエリ定義情報をクエリ定義情報記憶部４２に登録する。具体的には、クエリ定義情報登録部４６は、入力されたクエリを表す情報を含むクエリ定義情報登録要求を受信する。そして、クエリ定義情報登録部４６は、クエリ定義情報登録要求に含まれるクエリを解析することにより、その演算式を得る。また、クエリ定義情報登録部４６は、この演算式が、既にクエリ定義情報記憶部４２に記憶されたものでなければ、この演算式で表されるクエリの種別を識別する新たなクエリ種を生成する。また、クエリ定義情報登録部４６は、演算式で用いられている属性（入力属性情報）を得る。また、クエリ定義情報登録部４６は、演算式で用いられている入力属性情報および演算子の種類に基づいて、出力される情報の属性（出力属性情報）を得る。このようにして、クエリ定義情報登録部４６は、新たなクエリ種と、演算式と、入力属性情報と、出力属性情報とを対応付けたクエリ定義情報を、クエリ定義情報記憶部４２に登録する。
【００７６】
例えば、クエリ定義情報登録要求にクエリＦ（ａ）が含まれる場合を想定する。また、情報種ａは、属性α、β、γを有するものとする。このとき、演算式Ｆ（ｘ）において、情報種ａが有する属性α、β、γのうち、αおよびβが用いられていたとする。また、演算式Ｆ（ｘ）において、所定時間単位のβの最大値を求める演算子と、所定時間単位のデータのカウント数を求める演算子が用いられていたとする。この場合、クエリ定義情報登録部４６は、クエリ種Ｆと、演算子Ｆ（ｘ）と、入力属性情報（α、β）と、出力属性情報（β、ζ）とを対応付けたクエリ定義情報を、クエリ定義情報記憶部４２に登録すればよい。
【００７７】
次に、クライアント装置５０の各機能ブロックについて説明する。
【００７８】
クエリ送信部５３は、クエリ入力部２２に入力されたクエリにおいて複数の情報種の情報が用いられているとき、いずれかの情報種の情報を出力可能なノード装置６０に対して、入力されたクエリを送信する。このとき、クエリ送信部５３は、入力されたクエリにおいて用いられているいずれかの情報種を特定し、特定した情報種の情報を出力可能なノード装置６０を照会する情報を管理装置４０に送信すればよい。
【００７９】
クエリ定義情報登録要求部５５は、クエリ入力部２２に入力されたクエリを表す情報を含むクエリ定義情報登録要求を、管理装置４０に対して送信する。
【００８０】
次に、ノード装置６０の各機能ブロックについて説明する。
【００８１】
クエリ実行部６１は、他の装置からクエリを受信すると、受信したクエリにおいて用いられている各情報種の情報について、それぞれを出力可能なノード装置６０を照会する情報、および、それぞれを得るためのクエリを照会する情報を、管理装置４０に送信する。そして、クエリ実行部６１は、各情報種の情報のうち、自装置で出力可能なものに関するクエリを実行することにより、その情報種の情報を取得する。また、クエリ実行部６１は、自装置で出力可能でない情報種を得るためのクエリを、該情報種の情報を出力可能な他のノード装置６０に対して送信することにより、その処理結果を取得する。このようにして、クエリ実行部６１は、他の装置から受信したクエリにおいて用いられている各情報種の情報を取得する。そして、クエリ実行部６１は、各情報種の情報を用いて、前述の他の装置から受信したクエリを実行する。
【００８２】
クエリ処理結果送信部６２は、クエリ実行部６１によって実行されたクエリの処理結果を、クエリ実行部６１によって受信されたクエリの送信元の装置に送信する。
【００８３】
構成情報登録要求部６３は、クエリ実行部６１によって実行されたクエリを表す情報を含む構成情報登録要求を、管理装置４０に送信する。
【００８４】
また、構成情報登録要求部６３は、データストリーム出力装置９０から自装置に入力されるデータストリームに関する構成情報の登録を要求する構成情報登録要求を、管理装置４０に送信するようにしてもよい。
【００８５】
以上のように構成されたデータストリーム処理システム４の動作について、図面を参照して説明する。
【００８６】
まず、データストリーム処理システム４の初期の構成情報登録動作を、図９に示す。なお、データストリーム処理システム４は、ノード装置６０が初めて管理装置４０に接続されたときや、ノード装置６０に入力されるデータストリームの種類が変更されたときに、以下の動作を実行するものとする。
【００８７】
図９では、まず、ノード装置６０の構成情報登録要求部６３は、自装置に入力されるデータストリームの情報種および属性情報を得る（ステップＳ３１）。
【００８８】
次に、構成情報登録要求部６３は、ステップＳ３１で取得した情報種および属性情報を含む構成情報登録要求を、管理装置４０に対して送信する（ステップＳ３２）。
【００８９】
次に、構成情報登録要求を受信した管理装置４０の構成情報登録部４５は、新たな構成情報を登録する（ステップＳ３３）。具体的には、構成情報登録部４５は、構成情報登録要求に含まれる情報種と、属性情報と、入力される情報をそのまま出力するクエリと、構成情報登録要求の送信元のノード装置６０のノード情報とを含む構成情報を、構成情報記憶部１１に登録すればよい。
【００９０】
以上で、データストリーム処理システム４は、初期の構成情報登録動作を終了する。
【００９１】
次に、データストリーム処理システム４のクエリ入力から実行までの動作を、図１０に示す。
【００９２】
図１０では、まず、クライアント装置５０は、ステップＳ１〜Ｓ４まで本発明の第１の実施の形態におけるクライアント装置２０と同様に動作して、入力されたクエリを得る。
【００９３】
次に、クエリ定義情報登録要求部５５は、ステップＳ４で得られたクエリを、クエリ定義情報登録要求に含めて、管理装置４０に対して送信する（ステップＳ４１）。
【００９４】
次に、管理装置４０のクエリ定義情報登録部４６は、受信したクエリ定義情報登録要求に応じて、新たなクエリ定義情報をクエリ定義情報記憶部４２に登録する（ステップＳ４２）。このステップの詳細については後述する。
【００９５】
次に、クエリ送信部５３は、入力されたクエリにおいて用いられているいずれかの情報種を特定する。そして、クエリ送信部５３は、特定した情報種の情報を出力可能なノード装置６０を照会する情報を、管理装置４０に対して送信する（ステップＳ４３）。
【００９６】
次に、データストリーム処理システム４は、ステップＳ６〜Ｓ７まで、本発明の第１の実施の形態と同様に動作する。すなわち、管理装置４０の構成情報送信部４４は、ステップＳ４３で照会された情報種を出力可能なノード装置６０のノード情報を、クライアント装置５０に送信する。そして、クライアント装置５０のクエリ送信部５３は、そのノード情報が示すノード装置６０へ、ステップＳ４で入力されたクエリを送信する。
【００９７】
次に、ノード装置６０のクエリ実行部６１は、ステップＳ７で受信されたクエリにおいて用いられている各情報種に関する情報を管理装置４０に照会しながら、ステップＳ７で受信されたクエリを実行する（ステップＳ４４）。このステップの詳細については後述する。
【００９８】
次に、データストリーム処理システム４は、ステップＳ１１〜Ｓ１２まで、本発明の第１の実施の形態と同様に動作する。すなわち、ノード装置６０のクエリ処理結果送信部６２は、ステップＳ４４の処理結果を、ステップＳ７において受信されたクエリの送信元のクライアント装置５０に対して送信する。そして、クライアント装置５０のクエリ処理結果出力部２４は、処理結果を出力する。
【００９９】
次に、ノード装置６０の構成情報登録要求部６３は、ステップＳ４４で実行したクエリの処理結果の情報種の構成情報登録要求を、管理装置４０に送信する（ステップＳ４５）。具体的には、構成情報登録要求部６３は、ステップＳ４４で実行したクエリを構成情報登録要求に含めて、管理装置４０に送信する
管理装置４０の構成情報登録部４５は、受信した構成情報登録要求に応じて、新たな構成情報を構成情報記憶部１１に登録する（ステップＳ４６）。このステップの詳細については後述する。
【０１００】
次に、ステップＳ４４におけるクエリ実行動作の詳細を、図１１に示す。このクエリ実行動作は、上述のステップＳ４４において実行される他、以下に説明するステップＳ５５におけるクエリ実行動作や、ステップＳ５６における動作によりクエリを受信する他のノード装置６０において、再帰的に実行される。
【０１０１】
図１１では、まず、ノード装置６０のクエリ実行部６１は、他の装置からクエリを受信する（ステップＳ５０）。ここで、他の装置とは、クライアント装置５０、管理装置４０、または、他のノード装置６０である。
【０１０２】
次に、クエリ実行部６１は、受信したクエリで用いられる各情報種について、以下のステップＳ５１〜ステップＳ５７の処理を行う。
【０１０３】
ここでは、まず、クエリ実行部６１は、この情報種の情報を出力可能なノード装置６０を問い合わせる情報を、管理装置４０に対して送信する（ステップＳ５１）。
【０１０４】
次に、管理装置４０の構成情報送信部４４は、ステップＳ５１で照会された情報種を出力可能なノード装置６０のノード情報を、要求元のノード装置６０に対して送信する（ステップＳ５２）。
【０１０５】
次に、ノード装置６０のクエリ実行部６１は、この情報種を得るためのクエリを問い合わせる情報を、管理装置４０に対して送信する（ステップＳ５３）。
【０１０６】
次に、管理装置４０の構成情報送信部４４は、ステップＳ５３で照会された情報種を得るためのクエリを、要求元のノード装置６０に対して送信する（ステップＳ５４）。
【０１０７】
次に、ノード装置６０のクエリ実行部６１は、ステップＳ５２で受信したノード情報が自装置を示していれば、ステップＳ５４で受信したクエリを実行することにより、この情報種の情報を得る（ステップＳ５５）。ここで、クエリ実行部６１は、ステップＳ５４で受信したクエリで用いられる情報種が、自装置に入力されるデータストリームの情報種のみであれば、そのデータストリームに対して、ステップＳ５４で受信したクエリが示す処理を適用することにより、この情報種の情報を得る。また、クエリ実行部６１は、ステップＳ５４で受信したクエリにおいて複数の情報種が用いられている場合や、自装置に入力されるデータストリーム以外の情報種が用いられている場合は、ステップＳ５５において、ステップＳ５１からの処理を再帰的に実行すればよい。
【０１０８】
一方、クエリ実行部６１は、ステップＳ５２で受信したノード情報が他のノード装置６０を示していれば、ステップＳ５４で受信したクエリを、該他のノード装置６０に対して送信する（ステップＳ５６）。
【０１０９】
前述のように、このステップ５６で送信されたクエリを受信した他のノード装置６０では、ステップＳ５０〜ステップＳ５９に示したクエリ実行動作が行われる。そして、他のノード装置６０は、ステップＳ５６で受信したクエリの処理結果を、このノード装置６０に送信する（ステップＳ５７）。
【０１１０】
次に、このノード装置６０のクエリ実行部６１は、ステップＳ５１〜Ｓ５７を各情報種について実行することにより得られた各情報を用いて、ステップＳ５０で受信したクエリを実行する（ステップＳ５８）。
【０１１１】
次に、クエリ処理結果送信部６２は、ステップＳ５８における処理結果を、ステップＳ５０におけるクエリの送信元の装置に対して送信する（ステップＳ５９）。
【０１１２】
以上で、データストリーム処理システム４は、クエリ実行動作を終了する。
【０１１３】
次に、図１０のステップＳ４２におけるクエリ定義情報登録動作の詳細を、図１２に示す。
【０１１４】
ここでは、まず、管理装置４０のクエリ定義情報登録部４６は、クライアント装置５０からクエリ定義情報登録要求を受信する（ステップＳ６１）。
【０１１５】
次に、クエリ定義情報登録部４６は、受信したクエリ定義情報登録要求に含まれるクエリを解析することにより、その演算式を得る（ステップＳ６２）。
【０１１６】
次に、クエリ定義情報登録部４６は、この演算式を含むクエリ定義情報が、既にクエリ定義情報記憶部４２に登録されたものであるか否かを判断する（ステップＳ６３）。
【０１１７】
ここで、既に登録されていれば、管理装置４０は、クエリ定義情報登録動作を終了する。
【０１１８】
一方、未だ登録されていなければ、クエリ定義情報登録部４６は、この演算式で表されるクエリの種類を識別する新たなクエリ種を生成する（ステップＳ６４）。
【０１１９】
次に、クエリ定義情報登録部４６は、この演算式で用いられている属性（入力属性情報）を得る（ステップＳ６５）。
【０１２０】
次に、クエリ定義情報登録部４６は、この演算式で用いられている属性および演算子の種類に基づいて、出力される情報の属性（出力属性情報）を得る（ステップＳ６６）。
【０１２１】
次に、クエリ定義情報登録部４６は、ステップＳ６４で生成した新たなクエリ種と、ステップＳ６２で得られた演算式と、ステップＳ６５で得られた入力属性情報と、ステップＳ６６で得られた出力属性情報とを含むクエリ定義情報を、クエリ定義情報記憶部４２に登録する（ステップＳ６７）。
【０１２２】
以上で、管理装置４０は、クエリ定義情報登録動作を終了する。
【０１２３】
次に、図１０のステップＳ４６における構成情報登録動作の詳細を図１３に示す。
【０１２４】
ここでは、まず、構成情報登録部４５は、ノード装置６０から構成情報登録要求を受信する（ステップＳ７１）。
【０１２５】
次に構成情報登録部４５は、受信した構成情報登録要求に含まれるクエリによって得られる情報種に関する構成情報が、既に構成情報記憶部１１に登録されているか否かを判断する（ステップＳ７２）。
【０１２６】
ここで、既にそのような構成情報が登録されている場合、管理装置４０は、構成情報登録動作を終了する。
【０１２７】
一方、未だそのような構成情報が登録されていない場合、構成情報登録部４５は、新たな情報の種類を識別する情報種を生成する（ステップＳ７３）。
【０１２８】
次に、構成情報登録部４５は、その構成情報登録要求に含まれるクエリのクエリ定義情報を、クエリ定義情報記憶部４２から取得する。そして、構成情報登録部４５は、取得したクエリ定義情報に含まれる出力属性情報を、新たに生成した情報種の属性情報とする（ステップＳ７４）。
【０１２９】
次に、構成情報登録部４５は、ステップＳ７１で受信した構成情報登録要求の送信元のノード装置６０を識別するノード情報を得る（ステップＳ７５）。構成情報登録部４５は、このようにして得たノード情報を、新たに生成した情報種の情報を出力可能なノード情報とする。
【０１３０】
次に、構成情報登録部４５は、ステップＳ７３で生成した情報種と、ステップＳ７４で得られた属性情報と、ステップＳ７５で得られたノード情報と、この構成情報登録要求に含まれていたクエリとを対応付けた構成情報を、構成情報記憶部１１に新たに登録する（ステップＳ７６）。
【０１３１】
以上で、管理装置４０は、構成情報登録動作を終了する。
【０１３２】
次に、データストリーム処理システム４の構成情報予測動作について説明する。構成情報予測部４３は、所定のタイミング毎に、図６に示した本発明の第１の実施の形態における構成情報予測動作と同様の動作を実行する。ただし、本実施の形態における構成情報予測部４３は、ステップＳ２１において、クエリ定義情報に含まれる１つ以上の入力属性情報のそれぞれについて、その入力属性情報を属性情報に含む構成情報があるか否かを検索する。また、本実施の形態としての構成情報予測部４３は、ステップＳ２３〜Ｓ２６の動作を、ステップＳ２１で検索された各構成情報のうち該クエリ定義情報の演算式の入力として適用可能な全ての組み合わせについて実行する。
【０１３３】
例えば、構成情報予測部４３は、入力属性情報１および入力属性情報２を含むクエリ定義情報について、入力属性情報１を属性情報に含む構成情報Ａおよび構成情報Ｂを検索し、入力属性情報２を属性情報に含む構成情報Ｃを検索したとする。この場合、構成情報予測部４３は、このクエリ定義情報が示す演算式の入力として、構成情報Ａおよび構成情報Ｃを適用するケースと、構成情報Ｂおよび構成情報Ｃを適用するケースとについて、それぞれステップＳ２３〜Ｓ２６の動作を実行すればよい。また、所定のタイミングとは、例えば、あらかじめ定められた時間間隔毎であってもよい。あるいは、所定のタイミングとは、構成情報またはクエリ定義情報が新たに登録されたタイミングであってもよい。
【０１３４】
次に、データストリーム処理システム４の動作の具体例について説明する。
【０１３５】
なお、以下の説明において、管理装置４０の構成情報記憶部１１およびクエリ定義情報記憶部４２は、初期状態では何も登録されていないものとする。
【０１３６】
また、ノード装置６０ａには、情報種ａのデータストリームが入力され、その属性はα、β、γであると設定されているものとする。
【０１３７】
また、ノード装置６０ｂには、情報種ｂのデータストリームが入力され、その属性はα、β、δであると設定されているものとする。
【０１３８】
また、ノード装置６０ｃには、情報種ｃのデータストリームが入力され、その属性はα、εであると設定されているものとする。
【０１３９】
＜初期の構成情報の登録動作＞
まず、ノード装置６０ａの構成情報登録要求部６３は、管理装置４０に接続されると、自装置から出力可能な情報種ａについて、その属性情報であるα、β、γを含む構成情報登録要求を管理装置４０に対して送信する。そして、管理装置４０の構成情報登録部４５は、情報種「ａ」、ノード情報「３０ａ」、クエリ「ａ（情報種ａをそのまま出力するクエリを表す）」、属性情報「α、β、γ」を含む構成情報を、構成情報記憶部１１に登録する。
【０１４０】
同様にして、ノード装置６０ｂおよび６０ｃは、それぞれ情報種ｂおよび情報種ｃの構成情報登録要求を送信する。そして、構成情報登録部４５は、情報種「ｂ」、ノード情報「３０ｂ」、クエリ「ｂ（情報種ｂをそのまま出力するクエリを表す）」、属性情報「α、β、δ」を含む構成情報を、構成情報記憶部１１に登録する。また、構成情報登録部４５は、情報種「ｃ」、ノード情報「３０ｃ」、クエリ「ｃ（情報種ｃをそのまま出力するクエリを表す）」、属性情報「α、ε」を含む構成情報を、構成情報記憶部１１に登録する。
【０１４１】
このようにして得られた構成情報記憶部１１に記憶される情報は、図１４（ａ）に示す通りとなる。
【０１４２】
＜クエリＦ（ａ）の入力実行動作＞
ここで、情報種ａのデータストリームに対する単純な問い合わせＦ（ａ）が入力される場合の動作の具体例を説明する。
【０１４３】
まず、クライアント装置５０において、情報種一覧取得部２１は、情報種の一覧を管理装置４０に照会する。そして、クエリ入力部２２は、情報種の一覧を表示する。このとき、構成情報記憶部１１には、図１４（ａ）に示した情報が記憶されているので、クエリ入力部２２は、情報種ａ、ｂ、ｃの一覧を表示する。
【０１４４】
ここで、クエリ入力部２２には、表示した情報種のうち情報種ａを利用したクエリＦ（ａ）が入力されたとする。また、Ｆ（ａ）は、情報種ａを構成する属性α、β、γのうち、αおよびβを用いた問い合わせであるものものとする。なお、クエリ入力部２２は、問い合わせ言語を直接記載するエディタや、ＧＵＩ（Graphical User Interface）を用いて問い合わせ言語を生成するエディタ等を提供してもよい。
【０１４５】
次に、クエリ定義情報登録要求部５５は、このクエリＦ（ａ）を含めたクエリ定義情報登録要求を、管理装置４０に送信する。
【０１４６】
次に、管理装置４０のクエリ定義情報登録部４６は、クエリ定義情報登録要求に含まれるＦ（ａ）を解析し、Ｆ（ｘ）の演算式を得る。そして、この演算式Ｆ（ｘ）を含むクエリ定義情報が未だ登録されていないので、クエリ定義情報登録部４６は、新しいクエリの種類を識別するクエリ種「Ｆ」を生成する。そして、クエリ定義情報登録部４６は、Ｆ（ｘ）で利用されている入力属性情報として「α、β」を得る。また、クエリ定義情報登録部４６は、α、βを用いた演算子の種別に基づいて、出力属性を得る。ここでは、クエリ定義情報登録部４６は、出力属性β、ζを得たものとする。そして、クエリ定義情報登録部４６は、新しいクエリ種「Ｆ」、演算式「Ｆ（ｘ）」、入力属性情報１「α、β」、出力属性情報「β、ζ」を対応付けたクエリ定義情報を、クエリ定義情報記憶部４２に登録する。
【０１４７】
このようにして得られたクエリ定義情報記憶部４２に記憶される情報は、図１５（ａ）に示す通りとなる。
【０１４８】
次に、クライアント装置５０のクエリ送信部５３は、入力されたクエリＦ（ａ）で用いられる情報種ａを出力可能なノード装置６０を管理装置４０に問い合わせる。そして、クエリ送信部５３は、ノード装置６０ａを示すノード情報を得る。そこで、クエリ送信部５３は、入力されたクエリＦ（ａ）を、ノード装置６０ａに対して送信する。
【０１４９】
ノード装置６０ａのクエリ実行部６１は、受信したクエリＦ（ａ）で用いられる情報種ａについて、出力可能なノード装置６０およびクエリを、管理装置４０に問い合わせる。そして、クエリ実行部６１は、情報種ａを出力可能なノード装置６０が自装置であることを示すノード情報を得る。また、クエリ実行部６１は、情報種ａを得るための「入力される情報種ａのデータストリームをそのまま出力する」ことを表すクエリを得る。なお、クエリ実行部６１は、このように、受信したクエリにおいて、自装置に入力されるデータストリームの情報種がそのまま用いられている場合には、管理装置４０にそのクエリを問い合わせる処理を省略してもよい。
【０１５０】
次に、クエリ実行部６１は、自装置に入力される情報種ａのデータストリームに対して、クエリＦ（ａ）を実行する。
【０１５１】
そして、クエリ処理結果送信部６２は、クエリＦ（ａ）の処理結果を、クライアント装置５０に送信する。
【０１５２】
次に、クライアント装置５０のクエリ処理結果出力部２４は、受信した処理結果を出力する。
【０１５３】
さらに、構成情報登録要求部６３は、クエリ実行部６１によって実行されたクエリＦ（ａ）を含む構成情報登録要求を、管理装置４０に送信する。これにより、管理装置４０の構成情報登録部４５は、新たな情報種「m」、ノード情報「３０ａ」、クエリ「Ｆ（ａ）」、属性情報「β、ζ」を含む構成情報を、構成情報記憶部１１に登録する。このとき、構成情報登録部４５は、情報種「ｍ」の属性情報を、図１５（ａ）に示したクエリ種Ｆのクエリ定義情報の出力属性情報を参照することにより取得可能である。
【０１５４】
このようにして得られた構成情報記憶部１１に記憶される情報は、図１４（ｂ）に示す通りとなる。
【０１５５】
＜クエリＧ（ｂ）の入力実行動作＞
次に、情報種ｂのデータストリームに対する単純な問い合わせＧ（ｂ）が入力される場合の動作の具体例を説明する。
【０１５６】
まず、クライアント装置５０において、情報種一覧取得部２１が情報種の一覧を管理装置４０に照会することにより、クエリ入力部２２は、情報種の一覧を表示装置に表示する。このとき、構成情報記憶部１１には、図１４（ｂ）に示した情報が記憶されているので、クエリ入力部２２は、情報種ａ、ｂ、ｃ、ｍの一覧を表示する。
【０１５７】
ここで、クエリ入力部２２には、表示した情報種のうち情報種ｂを利用したクエリＧ（ｂ）が入力されたものとする。また、Ｇ（ｂ）は、情報種ｂを構成する属性α、β、δのうち、αおよびδを用いた問い合わせであるものものとする。
【０１５８】
次に、クエリ定義情報登録要求部５５は、このクエリＧ（ｂ）を含めたクエリ定義情報登録要求を、管理装置４０に送信する。
【０１５９】
次に、管理装置４０のクエリ定義情報登録部４６は、クエリ定義情報登録要求に含まれるＧ（ｂ）を解析し、Ｇ（ｘ）の演算式を得る。そして、この演算式Ｇ（ｘ）を含むクエリ定義情報が未だ登録されていないので、クエリ定義情報登録部４６は、新しいクエリの種類を識別するクエリ種「Ｇ」を生成する。そして、クエリ定義情報登録部４６は、Ｇ（ｘ）で利用されている入力属性情報として「α、δ」を得る。また、クエリ定義情報登録部４６は、Ｇ（ｂ）において用いられる入力属性情報「α、δ」および演算子の種別に基づいて、出力属性情報を得る。ここでは、クエリ定義情報登録部４６は、出力属性情報「δ、ζ、η」を得たものとする。そして、クエリ定義情報登録部４６は、新しいクエリ種「Ｇ」、演算式「Ｇ（ｘ）」、入力属性情報「α、δ」、出力属性情報「δ、ζ、η」を対応付けたクエリ定義情報を、クエリ定義情報記憶部４２に登録する。
【０１６０】
このようにして得られたクエリ定義情報記憶部４２に記憶される情報は、図１５（ｂ）に示す通りとなる。
【０１６１】
次に、クライアント装置５０のクエリ送信部５３は、入力されたクエリＧ（ｂ）で用いられる情報種ｂを出力可能なノード装置６０を管理装置４０に問い合わせることにより、ノード装置６０ｂを示すノード情報を得る。そこで、クエリ送信部５３は、入力されたクエリＦ（ｂ）を、ノード装置６０ｂに対して送信する。
【０１６２】
ノード装置６０ｂのクエリ実行部６１は、前述のＦ（ａ）を受信したノード装置６０ａのクエリ実行部６１と同様に動作することにより、自装置に入力される情報種ｂのデータストリームに対して、クエリＧ（ｂ）を実行する。
【０１６３】
そして、ノード装置６０ｂのクエリ処理結果送信部６２は、クエリＧ（ｂ）の処理結果を、クライアント装置５０に送信する。
【０１６４】
次に、クライアント装置５０のクエリ処理結果出力部２４は、受信した処理結果を出力する。
【０１６５】
さらに、ノード装置６０ｂの構成情報登録要求部６３は、クエリ実行部６１によって実行されたクエリＧ（ｂ）を含む構成情報登録要求を、管理装置４０に送信する。これにより、管理装置４０の構成情報登録部４５は、新たな情報種「ｎ」、ノード情報「３０ｂ」、クエリ「Ｇ（ｂ）」、属性情報「δ、ζ、η」を含む構成情報を、構成情報記憶部１１に登録する。このとき、構成情報登録部４５は、情報種「ｎ」の属性情報を、図１５（ｂ）に示したクエリ種Ｇの出力属性情報を参照することにより取得可能である。
【０１６６】
このようにして得られた構成情報記憶部１１に記憶される情報は、図１４（ｃ）に示す通りとなる。
【０１６７】
なお、これらのＦ（ａ）やＧ（ｂ）のような単純な問い合わせにより得られる情報種の構成情報やクエリ定義情報について、構成情報記憶部１１およびクエリ定義情報記憶部４２は、データストリーム処理システム４の管理者により事前に登録されたものを記憶しておいてもよい。
【０１６８】
＜クエリＨ（ｃ，ｍ）の入力実行動作＞
次に、他のクエリから得られた情報種も利用した問い合わせＨ（ｃ，ｍ）が入力される場合の動作を説明する。
【０１６９】
まず、クライアント装置５０において、クエリ入力部２２は、情報種一覧を表示する。このとき、構成情報記憶部１１には、図１４（ｃ）に示した情報が記憶されているので、クエリ入力部２２は、情報種ａ、ｂ、ｃ、ｍ、ｎの一覧を表示する。
【０１７０】
ここで、クエリ入力部２２には、表示した情報種のうち情報種ｃおよびｍを利用したクエリＨ（ｃ，ｍ）が入力されたものとする。Ｈ（ｃ，ｍ）は、情報種ｃを構成する属性αおよびεと、情報種ｍを構成するβおよびζを用いた問い合わせであるものものとする。
【０１７１】
次に、クエリ定義情報登録要求部５５は、このクエリＨ（ｃ，ｍ）を含めたクエリ定義情報登録要求を、管理装置４０に送信する。
【０１７２】
次に、管理装置４０のクエリ定義情報登録部４６は、クエリ定義情報登録要求に含まれるＨ（ｃ，ｍ）を解析し、Ｈ（ｘ，ｙ）の演算式を得る。そして、この演算式Ｈ（ｘ，ｙ）を含むクエリ定義情報が未だ登録されていないので、クエリ定義情報登録部４６は、新しいクエリの種類を識別するクエリ種「Ｈ」を生成する。そして、クエリ定義情報登録部４６は、Ｈ（ｘ，ｙ）で利用されている入力属性情報１として「α、ε」、入力属性情報２として「β、ζ」を得る。また、クエリ定義情報登録部４６は、Ｈ（ｃ，ｍ）において用いられる演算子の種別に基づいて、出力属性情報を得る。ここでは、クエリ定義情報登録部４６は、出力属性ζ、ιを得たものとする。そして、クエリ定義情報登録部４６は、新しいクエリ種「Ｈ」、演算式「Ｈ（ｘ，ｙ）」、入力属性情報１「α、ε」、入力属性情報２「β、ζ」、出力属性情報「ζ、ι」を対応付けたクエリ定義情報を、クエリ定義情報記憶部４２に登録する。
【０１７３】
このようにして得られたクエリ定義情報記憶部４２に記憶される情報は、図１５（ｃ）に示す通りとなる。
【０１７４】
次に、クライアント装置５０のクエリ送信部５３は、入力されたクエリＨ（ｃ，ｍ）で用いられる情報種ｃ，ｍのうち、任意に選択した情報種ｃを出力可能なノード装置６０を管理装置４０に問い合わせる。そして、クエリ送信部５３は、そのようなノード装置６０として、ノード装置６０ｃを示すノード情報を得る。そこで、クエリ送信部５３は、入力されたクエリＨ（ｃ，ｍ）を、ノード装置６０ｃに対して送信する。
【０１７５】
ノード装置６０ｃのクエリ実行部６１は、受信したクエリＨ（ｃ，ｍ）で利用されている情報種ｃおよびｍについて、それぞれ出力可能なノード装置６０およびクエリを、管理装置４０に問い合わせる。その結果、ノード装置６０ｃのクエリ実行部６１は、入力される情報種ｃのデータストリームをそのまま適用することにより、情報種ｃの情報を得る。また、ノード装置６０ｃのクエリ実行部６１は、情報種ｍを出力可能なノードはノード装置６０ａであり、情報種ｍを得るためのクエリとしてＦ（ａ）を得る。そこで、ノード装置６０ｃのクエリ実行部６１は、ノード装置６０ａに対して、クエリＦ（ａ）を送信する。
【０１７６】
クエリＦ（ａ）を受信したノード装置６０ａのクエリ実行部６１は、前述と同様に動作することによりクエリＦ（ａ）を実行する。そして、ノード装置６０ａのクエリ処理結果送信部６２は、クエリＦ（ａ）の送信元であるノード装置６０ｃに、クエリＦ（ａ）の処理結果を送信する。
【０１７７】
ノード装置６０ｃのクエリ実行部６１は、このようにして得た情報種ａおよび情報種ｍを用いて、Ｈ（ｃ，ｍ）を実行する。
【０１７８】
そして、ノード装置６０ｃのクエリ処理結果送信部６２は、クエリＨ（ｃ，ｍ）の送信元であるクライアント装置５０に、Ｈ（ｃ，ｍ）の処理結果を送信する。
【０１７９】
次に、クライアント装置５０のクエリ処理結果出力部２４は、受信した処理結果を出力する。
【０１８０】
さらに、ノード装置６０ｃの構成情報登録要求部６３は、クエリ実行部６１によって実行されたクエリＨ（ｃ，ｍ）を含む構成情報登録要求を、管理装置４０に送信する。これにより、管理装置４０の構成情報登録部４５は、新たな情報種「ｏ」、ノード情報「３０ｃ」、クエリ「Ｈ（ｃ，ｍ）」、属性情報「ζ、ι」を含む構成情報を、構成情報記憶部１１に登録する。このとき、構成情報登録部４５は、情報種「ｏ」の属性情報を、図１５（ｃ）に示したクエリ種Ｈの出力属性情報を参照することにより取得可能である。
【０１８１】
このようにして得られた構成情報記憶部１１に記憶される情報は、図１４（ｄ）に示す通りとなる。
【０１８２】
＜構成情報予測動作＞
次に、図１４（ｄ）に示す構成情報記憶部１１および図１５（ｃ）に示すクエリ定義情報記憶部４２を用いて行われる構成情報予測動作の具体例を説明する。
【０１８３】
まず、構成情報予測部４３は、クエリ定義情報記憶部４２に記憶された各クエリ定義情報について、順に予測動作を行う。
【０１８４】
＜＜クエリ種Ｆについての予測動作＞＞
まず、構成情報予測部４３は、クエリ種Ｆの入力属性情報「α、β」を得る。
【０１８５】
次に、構成情報予測部４３は、属性αおよびβを属性情報に含む構成情報を、構成情報記憶部１１から検索する。そして、構成情報予測部４３は、属性αおよびβを含む属性情報を有する情報種ａ（属性情報α、β、γ）および情報種ｂ（属性情報α、β、δ）を得る。
【０１８６】
そこで、構成情報予測部４３は、まず、情報種ａをクエリ種Ｆの演算式Ｆ（ｘ）に適用し、Ｆ（ａ）を生成する。しかし、Ｆ（ａ）に関する構成情報は既に登録されているので、構成情報予測部４３は、Ｆ（ａ）に関する新たな登録を実行しない。
【０１８７】
次に、構成情報予測部４３は、情報種ｂをクエリ種Ｆの演算式Ｆ（ｘ）に適用し、Ｆ（ｂ）を生成する。Ｆ（ｂ）に関する構成情報は未だ登録されていないので、構成情報予測部４３は、Ｆ（ｂ）に関する新たな構成情報を生成する。具体的には、構成情報予測部４３は、Ｆ（ｂ）により得られることが予測される新たな情報の種類を識別する情報種ｐを生成する。また、構成情報予測部４３は、情報種ｐを出力可能なノード装置６０として、Ｆ（ｂ）において用いられる情報種ｂを出力可能なノード装置６０ｂを得る。また、構成情報予測部４３は、Ｆ（ｂ）の属性情報として、クエリ種Ｆの出力属性情報を適用し、「β、ζ」を得る。そこで、構成情報予測部４３は、情報種ｐ、クエリＦ（ｂ）、ノード装置６０ｂ、属性情報「β、ζ」を対応付けた新たな構成情報を、構成情報記憶部１１に登録する。
【０１８８】
このようにして得られた構成情報記憶部１１に記憶される情報は、図１６（ａ）に示す通りとなる。
【０１８９】
＜＜クエリ種Ｇについての予測動作＞＞
次に、構成情報予測部４３は、クエリ種Ｇの入力属性情報「α、δ」を得る。
【０１９０】
次に、構成情報予測部４３は、属性αおよびδを属性情報に含む構成情報を、構成情報記憶部１１から検索する。そして、構成情報予測部４３は、情報種ｂ（属性情報α、β、δ）を得る。
【０１９１】
そこで、構成情報予測部４３は、情報種ｂをクエリ種Ｇの演算式Ｇ（ｘ）に適用し、Ｇ（ｂ）を生成する。しかし、Ｇ（ｂ）に関する構成情報は既に登録されているので、構成情報予測部４３は、Ｇ（ｂ）に関する新たな登録を実行しない。
【０１９２】
＜＜クエリ種Ｈについての予測動作＞＞
まず、構成情報予測部４３は、クエリ種Ｈの入力属性情報１「α、ε」および入力属性情報２「β、ζ」を得る。
【０１９３】
次に、構成情報予測部４３は、入力属性情報１「α、ε」を属性情報に含む構成情報として、情報種ｃ（属性情報α、ε）を検索する。また、構成情報予測部４３は、入力属性情報２「β、ζ」を属性情報に含む構成情報として、情報種ｍ（属性情報β、ζ）および情報種ｐ（属性情報β、ζ）を得る。
【０１９４】
そこで、構成情報予測部４３は、まず、情報種ｃおよび情報種ｍをクエリ種Ｈの演算式Ｈ（ｘ，ｙ）に適用し、Ｈ（ｃ，ｍ）を生成する。しかし、Ｈ（ｃ，ｍ）に関する構成情報は既に登録されているので、構成情報予測部４３は、Ｈ（ｃ，ｍ）に関する新たな登録を実行しない。
【０１９５】
次に、構成情報予測部４３は、情報種ｃおよび情報種ｐをクエリ種Ｈの演算式Ｈ（ｘ，ｙ）に適用し、Ｈ（ｃ，ｐ）を生成する。Ｈ（ｃ，ｐ）に関する構成情報は未だ登録されていないので、構成情報予測部４３は、Ｈ（ｃ，ｐ）に関する新たな構成情報を生成する。具体的には、構成情報予測部４３は、Ｈ（ｃ，ｐ）により得られることが予測される新たな情報の種類を識別する情報種ｑを生成する。また、構成情報予測部４３は、新たな情報種ｑを出力可能なノード装置６０として、Ｈ（ｃ，ｐ）において用いられる情報種ｃを出力可能なノード装置６０ｃを得る。また、構成情報予測部４３は、Ｈ（ｃ，ｐ）の属性情報として、クエリ種Ｈの出力属性情報を参照することにより、「ζ、ι」を得る。そこで、構成情報予測部４３は、情報種ｑ、クエリＨ（ｃ，ｐ）、ノード装置６０ｃ、属性情報「ζ、ι」を対応付けた新たな構成情報を、構成情報記憶部１１に登録する。
【０１９６】
このような予測動作により得られた構成情報記憶部１１に記憶される情報は、図１６（ｂ）に示す通りとなる。図１６（ｂ）において、情報種ａ〜ｃ、ｍ〜ｏの情報種に関する構成情報は、実行済みのクエリから得られる情報種に関する構成情報である。また、構成情報ｐ、ｑは、構成情報予測部４３によって予測された情報種の構成情報である。
【０１９７】
以上で、データストリーム処理システム４の動作の具体例の説明を終了する。
【０１９８】
次に、本発明の第２の実施の形態の効果について述べる。
【０１９９】
本発明の第２の実施の形態としてのデータストリーム処理システムは、ユーザによるクエリの入力を支援するため、さらに有効でさらに豊富な情報を提示することができる。
【０２００】
その理由は、管理装置のクエリ定義情報登録部が、入力されたクエリに関するクエリ定義情報を、その入力属性および出力属性とともにクエリ定義情報記憶部に追加していき、構成情報登録部が、実行済みのクエリにより得られる情報種の構成情報を、その属性情報とともに構成情報記憶部に追加していき、構成情報予測部が、追加されていくクエリ定義情報および構成情報に基づいて、新たな情報種を予測してその構成情報を構成情報記憶部に追加していく予測処理を、所定のタイミング毎に実行するからである。
【０２０１】
その結果、本実施の形態としてのデータストリーム処理システムは、多様な情報種のデータストリームがそれぞれ入力される多数のノード装置を含む大規模な構成となった場合にも、クエリの実行数が少ないノード装置に入力されるデータストリームを利用した情報種を予測してクライアント装置に提示することができる。その結果、本発明の第２の実施の形態としてのデータストリーム処理システムは、さらに多様な情報種の情報を利用したクエリをより容易に入力させることが可能となる。
【０２０２】
次に、本発明の最小構成について説明する。図１７は、本発明の最小構成例としての管理装置１００を示す機能ブロック図である。図１７において、管理装置１００は、構成情報記憶部１０１と、クエリ定義情報記憶部１０２と、構成情報予測部１０３と、構成情報送信部１０４とを備える。ここで、管理装置１００は、ＣＰＵと、ＲＡＭと、ＲＯＭと、ハードディスク等の記憶装置と、ネットワークインタフェースとを備えたコンピュータ装置によって構成されている。また、構成情報記憶部１０１およびクエリ定義情報記憶部１０２は、記憶装置によって構成される。また、構成情報予測部１０３は、ＲＯＭまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをＲＡＭに読み込んで実行するＣＰＵによって構成される。また、構成情報送信部１０４は、ネットワークインタフェースと、ＲＯＭまたは記憶装置に記憶されたコンピュータ・プログラムモジュールおよびデータをＲＡＭに読み込んで実行するＣＰＵとによって構成される。なお、各機能ブロックを構成するハードウェア構成は、上述の構成に限定されない。
【０２０３】
構成情報記憶部１０１は、ノード装置から出力可能な情報の種類を識別する情報種と、この情報種の情報が有する属性を表す属性情報と、を含む構成情報を記憶する。ノード装置は、時間の経過に伴って逐次生成されるデータストリームに対するクエリを実行する装置である。
【０２０４】
クエリ定義情報記憶部１２は、クエリの種類を識別するクエリ種と、このクエリ種のクエリの演算式と、この演算式で用いられる情報の属性を表す入力属性情報と、この演算式により出力される情報の属性を表す出力属性情報と、を含むクエリ定義情報を記憶する。
【０２０５】
構成情報予測部１０３は、構成情報記憶部１０１とクエリ定義情報記憶部１０２とを用いて新たな構成情報を予測する。具体的には、構成情報予測部１０３は、クエリ定義情報記憶部１０２に記憶されたクエリ定義情報のうち、その入力属性情報が、構成情報記憶部１０１に記憶された構成情報の属性情報に含まれるものがあるか否かを判断する。そのようなクエリ定義情報および構成情報があると判断した場合、構成情報予測部１０３は、該クエリ定義情報が示す演算式の入力として該構成情報が示す情報種の情報を適用したクエリにより得られることが予測される情報の新たな情報種と、該情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、を含む構成情報を生成する。そして、構成情報予測部１０３は、生成した構成情報を、構成情報記憶部１０１に登録する。
【０２０６】
構成情報送信部１０４は、構成情報記憶部１０１に記憶されている構成情報が示す情報種の一覧を、クライアント装置に対して送信する。クライアント装置は、前述のノード装置に実行させるためのクエリが入力される装置である。
【０２０７】
以上のように構成された管理装置１００は、図６に示した本発明の第１の実施の形態における管理装置１０の構成情報予測動作と同様に動作する。ただし、ステップＳ２５において、構成情報予測部１０３は、新たな情報種と、新たな情報種の情報が有する属性として該クエリ定義情報に含まれる出力属性情報と、を少なくとも含む構成情報を生成すればよい。そして、管理装置１００は、このようにして予測した構成情報を含む構成情報記憶部１０１に記憶された情報種の一覧を、クエリが入力される装置であるクライアント装置に対して送信する。
【０２０８】
このように、本発明の最小構成例としての管理装置は、ユーザによるクエリの入力を支援するため、より有効かつより豊富な情報を提示することができる。
【０２０９】
その理由は、既知のクエリによって得られる情報の情報種について、その情報種が有する属性情報を記憶しておくとともに、既知のクエリの演算式についてその入力属性情報および出力属性情報を記憶しておき、構成情報予測部が、既知のクエリの演算式の入力属性情報を、その属性情報に含む既知の情報種がある場合に、該当するクエリの演算式の入力に、該当する情報種を適用して得られる新たな情報種を予測するからである。このように、属性情報を考慮して予測された新たな情報種は、有効性の高いものとなる。そして、構成情報送信部が、予測した情報種を含む情報種の一覧を、クライアント装置に送信するからである。これにより、そのような予測されたものを含む情報種の一覧を受信するクライアント装置において、新たなクエリの入力において使用可能な情報種として提示される情報は、より豊富でより有効なものとなる。
【０２１０】
なお、上述した本発明の各実施の形態において、管理装置、クライアント装置およびノード装置は、それぞれ異なるコンピュータ装置によって構成されるものとして説明した。これに限らず、各実施の形態における各装置は、少なくとも２つが同一のコンピュータ装置によって構成されていてもよい。
【０２１１】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した管理装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【０２１２】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０２１３】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【符号の説明】
【０２１４】
１、４    データストリーム処理システム
１００、１０、４０    管理装置
１０１、１１    構成情報記憶部
１０２、１２、４２    クエリ定義情報記憶部
１０３、１３、４３    構成情報予測部
１０４、１４、４４    構成情報送信部
４５  構成情報登録部
４６  クエリ定義情報登録部
２０、５０    クライアント装置
２１    情報種一覧取得部
２２    クエリ入力部
２３、５３    クエリ送信部
２４    クエリ処理結果出力部
５５  クエリ定義情報登録要求部
３０、６０    ノード装置
３１、６１    クエリ実行部
３２、６２    クエリ処理結果送信部
６３  構成情報登録要求部
９０  データストリーム出力装置
【図１】
0005874915.tif 000002
【図２】
0005874915.tif 000003
【図３】
0005874915.tif 000004
【図４】
0005874915.tif 000005
【図５】
0005874915.tif 000006
【図６】
0005874915.tif 000007
【図７】
0005874915.tif 000008
【図８】
0005874915.tif 000009
【図９】
0005874915.tif 000010
【図１０】
0005874915.tif 000011
【図１１】
0005874915.tif 000012
【図１２】
0005874915.tif 000013
【図１３】
0005874915.tif 000014
【図１４】
0005874915.tif 000015
【図１５】
0005874915.tif 000016
【図１６】
0005874915.tif 000017
【図１７】
0005874915.tif 000018