(57)【要約】      （修正有）【課題】キャッシュメモリを更新する装置、プログラム及び方法を提供する。【解決手段】１又は複数のデータフロー指定を格納しデータフロー指定により指定されるデータフローの実行を制御するよう構成されるデータフローコントローラ１２と、データフローコントローラにより指定されたデータ処理ステップのセットの各々のメンバの処理動作の最近の実行により生成された出力データの蓄積を保持するよう構成されるキャッシュメモリ１６及びキャッシュメモリコントローラ１４とを有する。データフローコントローラは、データ処理ステップのセットの各々のメンバについて、データ処理ステップの処理動作が実行されると、生成された出力データをキャッシュメモリコントローラに直接提供する。キャッシュメモリコントローラは、データフローコントローラから生成された出力データを直接提供されると、保持された蓄積を更新する。【選択図】図１
2016194907.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数のデータフロー指定を格納し前記１又は複数のデータフロー指定により指定されるデータフローの実行を制御するよう構成されるデータフローコントローラであって、前記１又は複数のデータフロー指定は、リンクされたデータ処理ステップのシリーズを指定し、各々の処理ステップは、出力データを生成するために入力データとして提供されたデータに対して実行されるべき処理動作を指定し、各々のリンクは、前記シリーズの中の２つの処理ステップの間の連続する対の関係を定め、前記リンクは、前記連続する対のうちの前のメンバにより出力データが生成されると、前記前のメンバの前記の生成された出力データを後のメンバの入力データとして提供することにより、前記後のメンバの実行をトリガするよう前記データフローコントローラに指示する、データフローコントローラと、
キャッシュメモリ及びキャッシュメモリコントローラであって、前記キャッシュメモリコントローラは、前記キャッシュメモリに、前記データフローコントローラにより指定されたデータ処理ステップのセットの各々のメンバの処理動作の最近の実行により生成された出力データの蓄積を保持するよう構成される、キャッシュメモリ及びキャッシュメモリコントローラと、
を有し、
前記データフローコントローラは、データ処理ステップの前記セットの各々のメンバについて、前記データ処理ステップの処理動作が実行されると、前記生成された出力データを前記キャッシュメモリコントローラに直接提供するよう構成され、
前記キャッシュメモリコントローラは、前記データフローコントローラから前記生成された出力データを直接提供されると、前記の保持された蓄積を更新するよう構成される、
装置。
【請求項２】
前記保持された蓄積が更新される度に、前記キャッシュメモリコントローラは、前記の更新された蓄積に作用するために分析処理ルーチンをトリガするよう構成される、
請求項１に記載の装置。
【請求項３】
前記装置は、データベースを格納するよう構成されるデータストアを更に有し、
前記データフローコントローラは、データフロー指定毎に少なくとも１つのデータ処理ステップのうちの１つ又は各々の処理動作の実行により生成された出力データの、データベースへの書き込みを指示するよう構成される、
請求項１に記載の装置。
【請求項４】
データフロー指定毎の少なくとも１つのデータ処理ステップは、入力範囲を指定し、前記入力範囲は、前記データベースの中のデータの部分集合を定め、
前記データフローコントローラは、前記データ処理ステップのうちの１つの入力範囲に含まれる、前記データベースの中の、データを入力データとして提供し及び前記データ処理ステップのうちの前記１つの処理動作の実行をトリガすることにより、該データに関連するデータ変更イベントの通知に応答するよう構成される、
請求項３に記載の装置。
【請求項５】
前記データベースは、相互接続されたリソースを表すグラフデータベースであり、データグラフは、複数のトリプルとしてエンコードされ、各トリプルは、主語リソースの識別子である主語、目的語リソースの識別子又は直定数値である目的語、及び主語と目的語との間の命名された関係である述語の各々の値を有する、
請求項３に記載の装置。
【請求項６】
データ処理ステップにより指定される入力範囲は、前記述語の値範囲により及び／又は前記主語の値範囲により指定され、トリプルは、前記指定された述語値範囲に含まれる述語値及び／又は主語値範囲に含まれる主語値を有することにより、前記入力範囲に含まれると考えられる、
請求項５に記載の装置。
【請求項７】
前記データフロー指定は、データ処理ステップの各々について、入力範囲及び出力範囲を有し、データ処理ステップの連続する対の各々の間のリンクは、前記対の中の前のメンバの出力範囲の一部又は全部の前記対の中の後のメンバの入力範囲への包含により定められ、各々のデータ処理ステップは、前記データ処理ステップの入力範囲に含まれるデータを入力として提供されることによりトリガされると、前記データ処理ステップにより指定された処理動作を前記入力に対して実行することにより、前記データ処理ステップの出力範囲に含まれる出力データを生成するよう構成される、
請求項１に記載の装置。
【請求項８】
前記キャッシュメモリコントローラは、ユーザに、前記データ処理ステップのセットに含むべきデータ処理ステップを選択させるインタフェースを有する、
請求項１に記載の装置。
【請求項９】
前記インタフェースは、データグラフにより表されるリソースを指定することにより、前記ユーザにデータ処理ステップを選択させ、前記キャッシュメモリコントローラは、前記指定されたリソースを前記データフローコントローラに通知するよう構成され、前記データフローコントローラは、前記指定された入力範囲が、主語値が前記指定されたリソースの識別情報であるトリプルを含むデータ処理ステップを、前記キャッシュメモリコントローラに通知することにより、応答するよう構成される、
請求項８に記載の装置。
【請求項１０】
前記インタフェースは、リソースを指定することに加えて、前記ユーザに１又は複数の述語値範囲を指定させ、前記キャッシュメモリコントローラは、前記指定されたリソース及び前記１又は複数の述語値範囲を前記データフローコントローラに通知するよう構成され、前記データフローコントローラは、前記指定された入力範囲が、主語値が前記指定されたリソースの識別情報であり述語値が前記１又は複数の指定された述語値範囲に含まれるトリプルを含む処理ステップを、前記キャッシュメモリコントローラに通知することにより、応答するよう構成される、
請求項８に記載の装置。
【請求項１１】
前記キャッシュメモリコントローラは、前記キャッシュメモリに出力データの蓄積を格納するスキーマを構築するよう構成される、
請求項１に記載の装置。
【請求項１２】
前記キャッシュメモリコントローラは、各々の更新に続き分析プログラムに前記データの蓄積を出力するよう構成される、
請求項１に記載の装置。
【請求項１３】
前記キャッシュメモリコントローラは、前記セットの各々のメンバにより生成される出力データの最新バージョンのみを保持するよう構成される、
請求項１に記載の装置。
【請求項１４】
１又は複数のデータフロー指定を格納し、１又は各々のデータフロー指定により指定されるデータフローの実行を制御するステップであって、１又は各々のデータフロー指定は、リンクされたデータ処理ステップのシリーズを指定し、各々の処理ステップは、出力データを生成するために入力データとして提供されるデータに対して実行されるべき処理動作を指定し、各々のリンクは、該シリーズの中の２つの処理ステップの間の連続する対の関係を定め、リンクは、前記連続する対の前のメンバにより出力データが生成されると、前記前のメンバの生成された出力データを後のメンバの入力データとして提供することにより、前記後のメンバの実行をトリガするようデータフローコントローラに指示する、ステップと、
キャッシュメモリに、前記指定されたデータ処理ステップのセットの各々のメンバの処理動作の最近の実行により生成された出力データの蓄積を保持するステップと、
前記データ処理ステップのセットの各々のメンバについて、前記データ処理ステップの処理動作が実行されると、前記の実行により生成された出力データを得て、前記得られた出力データにより前記保持されている蓄積を更新するステップと、
を有する方法。
【請求項１５】
コンピューティング装置により実行されると前記コンピューティング装置に請求項１４に記載の方法を実行させるコンピュータプログラムを格納する非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ制御の分野であり、特に、キャッシュメモリ上の特定のデータアイテムの最新バージョンの保持に関連する。
【背景技術】
【０００２】
処理速度は現在のビッグデータ自体においてビジネスの成功への鍵を握るが、多くのシステムは、データ分析能力をバッチ処理として提供する。バッチ処理は、付加的アプローチと比較して不十分である場合が多い。したがって、分析されるデータは、古く又は有効でないことがある。
【０００３】
他のシステムでは、情報データアイテムを構造化する自然な方法は、このようなデータアイテムの集団的方法に必ずしも最適ではない。例えば、データアイテムは、複数のデータベーステーブルに又はネットワーク構造の中に広がっている。これは、テーブル入力形式のデータを期待する多くの分析ソフトウェアと互換性がない。
【０００４】
伝統的なビジネスプロセスモデルは、連続的な制御フロー又は命令型プログラミングにより実現される。近年、データフロープログラミングは、そのデータ処理を中心とする特性により、益々優勢になってきている。例えば、データフロープログラミングは、データの動きを強調し、その処理方法として接続のシリーズを定める。この種のプロセスフローは、元来、並列型であり分散的なので、ビッグデータ処理の課題に良好に応えることができる。
【０００５】
データフロープログラミング及びデータフローの実行と相互作用する分析プログラムにデータを提供する手段を提供することが望ましい。
【発明の概要】
【０００６】
実施形態は、１又は複数のデータフロー指定を格納し前記１又は複数のデータフロー指定により指定されるデータフローの実行を制御するよう構成されるデータフローコントローラであって、前記１又は複数のデータフロー指定は、リンクされたデータ処理ステップのシリーズを指定し、各々の処理ステップは、出力データを生成するために入力データとして提供されたデータに対して実行されるべき処理動作を指定し、各々のリンクは、前記シリーズの中の２つの処理ステップの間の連続する対の関係を定め、前記リンクは、前記連続する対のうちの前のメンバにより出力データが生成されると、前記前のメンバの前記の生成された出力データを後のメンバの入力データとして提供することにより、前記後のメンバの実行をトリガするよう前記データフローコントローラに指示する、データフローコントローラと、キャッシュメモリ及びキャッシュメモリコントローラであって、前記キャッシュメモリコントローラは、前記キャッシュメモリに、前記データフローコントローラにより指定されたデータ処理ステップのセットの各々のメンバの処理動作の最近の実行により生成された出力データの蓄積を保持するよう構成される、キャッシュメモリ及びキャッシュメモリコントローラと、を有し、前記データフローコントローラは、データ処理ステップの前記セットの各々のメンバについて、前記データ処理ステップの処理動作が実行されると、前記生成された出力データを前記キャッシュメモリコントローラに直接提供するよう構成され、前記キャッシュメモリコントローラは、前記データフローコントローラから前記生成された出力データを直接提供されると、前記の保持された蓄積を更新するよう構成される、装置を含む。
【０００７】
有利なことに、実施形態は、データレポートに従って、データ蓄積の形式で、データフローの中で実行されるべき１又は複数の処理ステップの最新バージョンを特徴付け、キャッシュメモリに保持させる。特に、これは、データストア自体の中の場所からの読み出しにより蓄積をコンパイルするのに望ましい。なぜなら、処理ステップにより生成されたデータをデータ記憶に書き込み、次に書き込みを警告され、及び蓄積のためにデータを抽出するためにリードアクセスを行うのに要する結合した時間は、極めて長く、蓄積を古くさせてしまうことがある。
【０００８】
用語「蓄積」は、複数の異なる処理ステップにより、場合によっては異なるデータフローから、出力されたデータが存在し、該データが一緒に保持されていることを示すために用いられる。蓄積は、時間点における複数のデータアイテムの状態を、他のパーティ／アプリケーション／プロセスに見える（アクセスできる）ようにするので、ビュー又はスナップショットとも考えられる。
【０００９】
実施形態は、データフローの処理中に、データストアからの既存のデータが処理され、データストアのための新しいデータが生成されたという事実を利用する。言い換えると、これらのデータはデータストアから読み出され又はそれに書き込まれるのを待っているので、それらは、それらがデータストア自体の中に存在する場合よりも、よりアクセスし易い。さらに、これらのデータが個々の処理ステップにより出力されると、データフローコントローラから直接にデータを得ることにより、データストア自体からの読み出しに比べて、生成と蓄積の更新との間が比較的短時間なので、データの有効性が拡張される。
【００１０】
さらに、実施形態は、データストアの中には現れない中間形式のデータにアクセスしても良い。例えば、データは、データストアから読み出され、処理ステップに入力として提供されても良い。該処理ステップの出力は、出力データがキャッシュメモリコントローラに直接提供されるデータ処理ステップセットのメンバであっても良い。しかしながら、出力データが生成される前に、データストアに書き戻される更に多くのデータ処理ステップが存在しても良い。したがって、データは、データストアから単に読み出すことにより、他のパーティ／アプリケーション／プロセスには利用可能でない中間形式である。
【００１１】
データフローコントローラ及び格納されたデータフロー指定（仕様、specification）は、データフローの実行を管理する手段を提供する。実際の処理動作自体は、プロセッサにより実行される。これは、データフローコントローラ自体により実行されているコードの結果であっても良く、又は装置の外部にある別個のコンポーネント又は素子により実行されているコードの結果であっても良い。データフローコントローラは、データフローについて定められた入力基準を満たすデータにおけるデータ変更イベントの通知に応答して、データフローを実行させるようトリガされても良い。
【００１２】
データフローコントローラは、少なくとも、処理ステップ（又はその実行を担うエンティティ）に入力データを提供することにより各々の処理ステップをトリガし、指定された処理動作の実行により生成された出力データを受信するよう構成される。受信した出力データは、次に、データフローの中の後の処理ステップ（又はその実行を担うエンティティ）に、入力データとして提供されても良い。
【００１３】
処理ステップの間のリンクは、ユーザにより明示的に定められ、データフローコントローラにより格納されても良い。代替で又は追加で、リンクは、１つの処理ステップの指定された入力データ及び別の処理ステップの指定された出力データに基づき、データフローコントローラにより導出されても良い。このような場合には、各々の処理ステップは、入力データが取り得る範囲と、処理動作とを指定しても良い。この情報から、データフローコントローラは、出力データが取り得る範囲を決定しても良い（又は出力データが取り得る範囲は、ユーザにより明示的に示されても良い）。処理ステップは、特定の入力データにおけるデータ変更イベントに応答して、それらの個々の処理動作を実行するよう構成される。したがって、処理ステップによる新しい出力データの生成は、別の処理ステップの実行をトリガするべきである。ここで、該出力データは、別の処理ステップについて指定された特定の入力データ（又は入力データ範囲）に含まれる。したがって、リンクは、ある処理ステップ（の全体又は部分）により生成され得る出力データの範囲が別の処理ステップにより受け入れられ得る入力データの範囲に含まれることにより決定されても良い。
【００１４】
キャッシュメモリコントローラは、処理ステップセットの中の各々の処理ステップからの出力データの少なくとも１つのバージョンを、及び任意で該セットの中の各々のデータ処理ステップの出力の識別子又はラベルも、格納するために十分なサイズを有する場所／アドレス（固定でも良く又は一時的でも良い）を設定すること、及び各々の処理ステップからの出力データの最新バージョンと共に設定した場所／アドレスを、データフローコントローラから取得されたとき、移植することにより、該セットからの出力データの蓄積を保持するよう構成される。各々のキャッシュメモリコントローラは、蓄積の一部又は全部に対するデータアクセス要求を受信し応答するようにも構成されても良い。キャッシュメモリコントローラは、蓄積器（アキュムレータ）又は蓄積（アキュムレーション）マネジャとも命名されても良い。
【００１５】
処理ステップ（特に該処理ステップが指定する処理動作）が実行されると、データフローコントローラは、出力データを得る。データフローコントローラは、出力データを、データストアに及び／又は実行されたステップにリンクされたデータ処理ステップに提供するよう構成される。さらに、実行された処理ステップがデータ処理ステップセットに含まれる場合、データフローコントローラは、出力データをキャッシュメモリコントローラに直接提供するよう構成される。この文の「直接」は、（場合によっては、データフローコントローラとキャッシュメモリコントローラとの間にある一時的バッファ以外の）他のメモリ又はデータストアを経由しないことを意味する。
【００１６】
キャッシュメモリコントローラにより保持される蓄積の更新は、出力データがデータフローコントローラから提供されるときはいつでも実行される。更新は、単に、提供された出力データを生成した処理ステップによるデータ出力の前のバージョンを上書きすることであっても良い。更新は、更新の前及び／又は後に、特定の蓄積のバージョンのレポジトリに、蓄積を追加することも有しても良い。
【００１７】
蓄積は、分析プログラム又はアプリケーションにより利用されても良い。例えば、次の通りである。
【００１８】
前記保持された蓄積が更新される度に、前記キャッシュメモリコントローラは、前記の更新された蓄積に作用するために分析処理ルーチンをトリガするよう構成される。
【００１９】
有利なことに、装置は、分析処理ルーチンに、該分析処理ルーチンが作用するデータの最新バージョンを、それらのデータがシステム実行時間に生成された後の非常に短時間のうちに、提供するメカニズムを提供する。分析処理ルーチンは、実行されると、結果を生成するために蓄積からのデータに対して論理演算を実行する処理命令のセットであると考えられる。分析処理ルーチンは、自身の結果を生成し、ユーザに出力しても良い。
【００２０】
データフローが作用するデータストアは、装置の外部にあっても良く、又は同じ装置のコンポーネントであっても良い。特に、前記装置は、データベースを格納するよう構成されるデータストアを更に有し、前記データフローコントローラは、データフロー指定毎に少なくとも１つのデータ処理ステップのうちの１つ又は各々の処理動作の実行により生成された出力データの、データベースへの書き込みを指示するよう構成される。
【００２１】
このような実施形態では、キャッシュメモリコントローラにより保持されるデータの蓄積は、データストア自体を監視することにより得られる蓄積の中のデータのビューよりも新しいビューを提供する。データベースは、任意の形式でエンコードされたグラフデータベースであっても良い。しかし、一例として、グラフデータベースは、複数のトリプルとしてエンコードされても良い。代替で、データベースは関係型データベースであっても良い。代替で、グラフデータベースは、それぞれがトリプルを含み追加データ値を含む複数のデータアイテムとしてエンコードされても良い。
【００２２】
出力データをデータベースに提供することに加え、データフロー指定毎の少なくとも１つのデータ処理ステップは、入力範囲を指定し、前記入力範囲は、前記データベースの中のデータの部分集合を定め、前記データフローコントローラは、前記データ処理ステップのうちの１つの入力範囲に含まれる、前記データベースの中の、関連するデータを入力データとして提供し及び前記データ処理ステップのうちの前記１つの処理動作の実行をトリガすることにより、該データに関連するデータ変更イベントの通知に応答するよう構成される。
【００２３】
データフローは、データストアの中の単一のデータ変更イベントによりトリガされる処理動作のシリーズである。あるデータベースエンティティの値が別のデータベースエンティティに依存し、更なるデータベースエンティティの値は、該あるデータベースエンティティに依存し、以下同様である場合、新しい値を生成する処理動作のフローは、単一のデータ変更イベントによりトリガされ得る。特定のデータ処理ステップをトリガするデータ変更イベント種類は、予め定められても良く、データ変更イベント種類の所定のセットからの一部又は全部であっても良い。
【００２４】
データ変更イベント種類の所定のセットの定義は、データ処理ステップをトリガする所定のセットの中のデータ変更イベント種類がデータ処理ステップにより実行され得るデータ変更も決定する限り、データ処理ステップの機能にも反映されても良い。
【００２５】
グラフデータでは、データ変更イベント種類は、以下の２つのサブセットにグループ化されても良い。
【００２６】
・局所的変換：データリソース（データグラフにより表されるリソース）の削除、生成、属性の変更。
【００２７】
・接続変換：データリンク（データグラフにより表されるリソース間の相互接続）の削除、生成、属性の変更。
【００２８】
限られた数の許容データ変換の定義は、データプロセッサの必要数を有意に減らし、微小のデータ処理ユニットの再利用を増大させ得る。さらに、簡易なインタフェースを通じて機械によるこのような機能の使用を単純化する。
【００２９】
データ変更イベント検出器は、装置に含まれ、データ処理ステップをトリガするデータ変更イベントについてデータベースを監視し、このようなデータ変更イベントが検出されるとデータフローコントローラに通知するよう構成されても良い。
【００３０】
データフローコントローラが作用するよう構成されるデータストアの一例として次のものがある。データベースは、ラベル付きリンクにより相互接続されるリソースを表すグラフデータベースである。各々のラベル付きリンクは、リソース対を接続し、ラベルは対の間の関係を示す。エンコードの観点で、データグラフは、複数のトリプルとしてエンコードされても良い。ここで、各トリプルは、主語リソースの識別子である主語、目的語リソースの識別子又は直定数値（リテラル値）である目的語、及び主語と目的語との間の命名された関係である述語のうちの各々の値を有する。
【００３１】
実施形態は、具体的には、データグラフをＲＤＦトリプル、つまりＲＤＦ標準に従うトリプルとしてエンコードしても良い。さらに、各々の処理ステップにおけるデータ入力は、出力データと同様に、１又は複数のトリプルの形式であっても良い。このように、出力データは、データベースに直ちに追加できる形式である。
【００３２】
トリプルが、データベースから読み出され、データベースに書き込まれ及びデータ処理ステップ間で交換されるデータの基本単位を表す実施形態では、データ処理ステップにより指定される入力範囲は、述語の値範囲により及び／又は主語の値範囲により指定され、トリプルは、指定された述語値範囲に含まれる述語値及び／又は主語値範囲に含まれる主語値を有することにより、入力範囲に含まれると考えられる。
【００３３】
例えば、処理ステップは、華氏（fahrenheit）の値を摂氏の値に変換するよう構成されても良い。したがって、該処理ステップの入力範囲は、「has_fahrenheit」述語値により指定されても良い。この値は、（範囲が固定値であるにもかかわらず）述語値の範囲に対応するが、入力データの範囲にも対応する。なぜなら、主語及び目的語の値は指定されないので、「has_fahrenheit」述語を有するトリプルにおける任意のデータ変更イベントが処理ステップをトリガするからである。追加で、特定のエンティティ又はエンティティのクラスの「has_fahrenheit」値のみに関心があっても良く、これは主語の値範囲により指定され得る。データ処理ステップをトリガするデータ変更イベントは、データベース自体を監視することにより検出されても良い。或いは、新しいデータが別の処理ステップにより出力されることであっても良い（問題となっている２つのデータ処理ステップは、データフローコントローラによりリンクされる）。
【００３４】
データフローをトリガし得るデータ変更イベント、つまりデータ処理ステップのうちの１つの入力範囲に含まれるデータベースの中のデータに関連するデータ変更イベントの特定の例としては次のものがある。データ変更イベントは、主語の指定された値範囲に含まれる述語及び／又は主語の指定された値範囲に含まれる主語を有するトリプルの中の新しい目的語値であり、関連するデータはトリプルである。新しい目的語値は、完全に新しいトリプルの結果であっても良く、又は既存の値の変更であっても良い。
【００３５】
データフローコントローラは、データフローを指定するために（又はデータフロー指定を格納するために）特定のスキーマを用いるよう構成されても良い。例えば、前記データフロー指定は、データ処理ステップの各々について、入力範囲及び出力範囲を有しても良く、データ処理ステップの連続する対の各々の間のリンクは、前記対の中の前のメンバの出力範囲の一部又は全部の前記対の中の後のメンバの入力範囲への包含により定められ、各々のデータ処理ステップは、前記データ処理ステップの入力範囲に含まれるデータを入力として提供されることによりトリガされると、前記データ処理ステップにより指定された処理動作を前記入力に対して実行することにより、前記データ処理ステップの出力範囲に含まれる出力データを生成するよう構成される。
【００３６】
有利なことに、この方法でデータ処理ステップを格納することは、指定された入力及び出力範囲に基づきステップ間のリンクを決定できるようにする。例えば、データ処理ステップは、他のデータ処理ステップへの明示的なリンクを有しないで指定できる。しかし、指定された入力及び出力範囲は、該リンクをデータフローコントローラ自身により表し又は決定させるために十分な情報を含み、したがって個々の指定されたステップからデータフローを構築させる。
【００３７】
装置の１つの機能は、複数のデータ処理ステップのうちの各々からの最新の出力を、キャッシュメモリ上の単一の蓄積（レポート／テーブル／データアイテム）に結合することである。これらの最新の出力は、次に、分析プログラムによりアクセスできる。個々の出力、つまり、蓄積に包含するための出力データが得られるデータ処理ステップの識別情報は、ユーザにより選択できる。理解されるべきことに、装置のユーザは人間のユーザであっても良く又はアプリケーションであっても良い。ここで、アプリケーションは、自動化プロセスを実行し又は人間のユーザの制御下にあっても良い。任意で、前記キャッシュメモリコントローラは、ユーザに、前記データ処理ステップのセットに含むべきデータ処理ステップを選択させるインタフェースを有する。
【００３８】
インタフェースは、データフロー指定の視覚的提示がユーザに提示されるグラフィカルユーザインタフェースであっても良い。代替で、インタフェースは、蓄積テンプレートを生成又は変更させる公表スキーマであっても良い（蓄積テンプレートは、データフローコントローラから出力データを提供されると移植される選択された処理ステップからの出力データのためのスペースホルダ又はスキーマである）。
【００３９】
例えば、多くの分析プログラムがデータ処理ステップの異なる組合せからの最新出力へのアクセスを要求する実施形態では、キャッシュメモリコントローラは、複数の蓄積を保持しても良い。
【００４０】
データ処理ステップを明示的に選択するのではなく、インタフェースは、ユーザに蓄積に含まれるべきデータの範囲を指定させ、キャッシュメモリコントローラは（データフローコントローラと協働して）、どのデータ処理ステップが該範囲に含まれる出力データを生成するかを決定するよう構成されても良い。決定されたデータ処理ステップは、所定のセットのメンバを形成する。
【００４１】
データフローコントローラがグラフデータベースに作用する実施形態において、データ処理ステップのセットの中でどれだけ多くのメンバが選択され得るかの特定の例は次の通りである。前記インタフェースは、前記データグラフにより表されるリソースを指定することにより、前記ユーザにデータ処理ステップを選択させ、前記キャッシュメモリコントローラは、前記指定されたリソースを前記データフローコントローラに通知するよう構成され、前記データフローコントローラは、前記指定された入力範囲が、主語値が前記指定されたリソースの識別情報であるトリプルを含むデータ処理ステップを、前記キャッシュメモリコントローラに通知することにより、応答するよう構成される。言い換えると、ユーザは、キャッシュメモリに（したがって容易に且つ迅速にアクセス可能な）、特定の主語リソースに関連する任意のトリプル（データベースに含まれる又は２つの処理ステップの間のリンクとしてのみ存在する）の最新バージョンを含むデータの蓄積を設定したいと望む。
【００４２】
さらに、前記インタフェースは、前記リソースを指定することに加えて、前記ユーザに１又は複数の述語値範囲を指定させ、前記キャッシュメモリコントローラは、前記指定されたリソース及び前記１又は複数の述語値範囲を前記データフローコントローラに通知するよう構成され、前記データフローコントローラは、前記指定された入力範囲が、主語値が前記指定されたリソースの識別情報であり述語値が前記１又は複数の指定された述語値範囲に含まれるトリプルを含む処理ステップを、前記キャッシュメモリコントローラに通知することにより、応答するよう構成されても良い。
【００４３】
このような例では、ユーザは、関心のある主語リソースの特定のプロパティのみを有する蓄積を仕立てることができる。これは、キャッシュメモリにある蓄積のために必要な空間を削減し、したがって装置の全体の動作コストを削減する。
【００４４】
任意で、前記キャッシュメモリコントローラは、前記キャッシュメモリに出力データの蓄積を格納するスキーマを構築するよう構成される。
【００４５】
このような実施形態は、データ処理ステップのセットからの出力を、一貫した方法で格納させる。スキーマは、クエリを実現するためにユーザに公表されても良い。代替で、（スキーマに従って構築された）蓄積全体は、更新の完了に続いて、キャッシュメモリコントローラにより分析処理ルーチンへ出力されても良い。キャッシュメモリコントローラは、スキーマがどのように構築されるかを定める処理ルールを格納しても良い。例えば、このような処理ルールは、ヘッダ及び１つのデータ行を有する簡易なテーブルであっても良い。ここで、ヘッダは、セットに含まれるデータ処理ステップの識別子であり、１つのデータ行の中の対応するエントリは、識別されたデータ処理ステップにより生成される出力データの最新バージョンのために予約される。
【００４６】
データの蓄積の更新はイベントによりトリガされ、イベントは、データフローコントローラがキャッシュメモリコントローラに、処理ステップのセットの中の処理ステップからの新しい出力データを提供することである。更新されると、蓄積の最新バージョンは、分析プログラムに利用可能にされる。分析プログラムは、必要に応じて及び必要なときに、蓄積に対する要求を発行しても良い。この利点は、分析プログラムが有効な（タイムリーな）データにアクセスすることである。代替又は追加で、前記キャッシュメモリコントローラは、各々の更新に続き分析プログラムに（スキーマの中の）前記データの蓄積を出力するよう構成される。
【００４７】
出力は、更新の後、出来るだけ早くであっても良い。したがって、分析プログラムは、利用可能になった後に、出来るだけ早く蓄積の最新バージョンを提供される。分析プログラムは、蓄積の更新バージョンが受信されるときはいつでも、分析処理ルーチンを実行するよう構成される。代替で、蓄積の更新バージョンは、分析処理ルーチンの次の実行に備えるために、単に格納されても良い。
【００４８】
キャッシュメモリ上の空間は貴重であり、アクセスされる可能性の低いデータにより占有されるべきではないので、キャッシュメモリコントローラは、セットの各々のメンバにより生成された出力データの最新バージョンのみを保持するよう構成される。
【００４９】
このような実施形態では、新しい出力データがデータフローコントローラにより提供されたときに常にキャッシュメモリコントローラにより実行される更新は、蓄積の非更新バージョンをレポジトリに出力することを有しても良い。ここで、レポジトリは、ハードディスクのような永久記憶ユニット上の記憶場所である。
【００５０】
別の態様の実施形態は、１又は複数のデータフロー指定を格納し、１又は各々のデータフロー指定により指定されるデータフローの実行を制御するステップであって、１又は各々のデータフロー指定は、リンクされたデータ処理ステップのシリーズを指定し、各々の処理ステップは、出力データを生成するために入力データとして提供されるデータに対して実行されるべき処理動作を指定し、各々のリンクは、該シリーズの中の２つの処理ステップの間の連続する対の関係を定め、リンクは、前記連続する対の前のメンバにより出力データが生成されると、前記前のメンバの生成された出力データを後のメンバの入力データとして提供することにより、前記後のメンバの実行をトリガするようデータフローコントローラに指示する、ステップと、キャッシュメモリに、前記指定されたデータ処理ステップのセットの各々のメンバの処理動作の最近の実行により生成された出力データの蓄積を保持するステップと、前記データ処理ステップのセットの各々のメンバについて、前記データ処理ステップの処理動作が実行されると、前記の実行により生成された出力データを得て、前記得られた出力データにより前記保持されている蓄積を更新するステップと、を有する方法を含む。
【００５１】
別の態様の実施形態は、コンピューティング装置により実行されると、該コンピューティング装置に本発明の実施形態として上述したコンピューティング装置として機能させるコンピュータプログラムを有する。
【００５２】
別の態様の実施形態は、コンピューティング装置により実行されると、該コンピューティング装置に本発明の実施形態として本願明細書に上述した又は他の箇所に定めた方法を実行させるコンピュータプログラムを有する。
【００５３】
さらに、本発明の実施形態は、複数の相互接続されたコンピューティング装置により実行されると、前記複数の相互接続されたコンピューティング装置に、本発明を具現化する方法を実行させるコンピュータプログラム又はコンピュータプログラムスーツを有する。
【００５４】
本発明の実施形態は、複数の相互接続されたコンピューティング装置により実行されると、前記複数の相互接続されたコンピューティング装置に、本発明の実施形態として本願明細書に上述した又は他の箇所に定めたコンピューティング装置として機能させるコンピュータプログラム又はコンピュータプログラムスーツを有する。
【００５５】
態様（ソフトウェア／方法／装置）が別個に議論されたが、１つの態様に関連して議論されたその特徴及び影響は、他の態様にも等しく適用できる。したがって、方法の特徴が議論される場合、装置の実施形態はその特徴を実行する又は適切な機能を提供するよう構成されるユニット又は装置を有すること、及びプログラムは該プログラムが実行されるコンピューティング装置に前記方法の特徴を実行させるものと解釈される。
【図面の簡単な説明】
【００５６】
本発明の好適な特徴は、単なる例として添付の図面を参照して以下に説明される。
【図１】一実施形態の概略図を示す。
【図２】方法のステップで注釈を付された一実施形態の装置の概略図である。
【図３】一実施形態のプロセスの特定の例を提供する。
【図４】一実施形態のデータフローコントローラの機能を示す。
【図５】一実施形態の例示的なハードウェア構成を示す。
【発明を実施するための形態】
【００５７】
図１は、一実施形態の概略図を示す。図１のシステム又は装置１０は、データフローコントローラ１２、キャッシュメモリコントローラ１４、及びキャッシュメモリを有する。データフローコントローラ１２の動作モードを強調するために、データ記憶装置１８も示される。しかしながら、データフローコントローラ１２が操作するデータベースは、装置１０により格納されてもされなくても良く、実際に、ＬＡＮ（Local  Area  Network）又はインターネットのようなネットワークを介してデータフローコントローラ１２によりアクセス可能な１又は複数のデータ記憶ユニットにより格納されても良い。
【００５８】
データフローコントローラ１２は、データベースの監視、及び指定されたイベントに応答してデータベースを変更するデータを生成するために指定されたデータ処理ステップの実行を担うエンティティである（ここで、便宜上データベースが用いられるが、実装においては格納されるデータの任意の単一のレポジトリ１４２又は複数のレポジトリであっても良い）。このような指定されたイベントは、データベースの中の監視されたデータ変更イベントであっても良く、データベースの外部のトリガイベントでもあり得る。指定がデータフローコントローラ１２に格納された１つのデータ処理イベントの実行は、別のイベントの実行をトリガしても良い。したがって、２つのデータ処理ステップがリンクされて格納される。リンクされたデータ処理ステップの任意のシリーズは、データフローである。
【００５９】
データフローコントローラ１２は、１又は複数のデータフロー指定を格納し、１又は各々のデータフロー指定により指定されるデータフローの実行を制御するよう構成される。１又は各々のデータフロー指定は、リンクされたデータ処理ステップのシリーズを指定する。各々の処理ステップは、出力データを生成するために入力データとして提供されるデータに対して実行されるべき処理動作を指定する。各々のリンクは、該シリーズの中の２つの処理ステップの間の連続する対の関係を定める。リンクは、前の（先行する）メンバにより出力データが生成されると、該前のメンバの生成された出力データを後の（後続の）メンバの入力データとして提供することにより、データフローコントローラ１２に、連続する対の後のメンバの実行をトリガするよう指示する。
【００６０】
データフローコントローラ１２は、データ処理ステップの指定を格納し、個々のステップの実行により生成された出力データの伝搬を制御するよう構成される。可能な出力データ宛先は、先行するデータ処理ステップ（つまり、データフローコントローラ１２の中の内部転送）、データベース（つまり、出力データは、データベースへ転送されるライトアクセス要求に含まれる）、及び／又はキャッシュメモリコントローラ１４を含む。図１の中のデータフローコントローラ１２とキャッシュメモリコントローラ１４との間の矢印は、データ処理ステップにより生成された出力データの、データフローコントローラ１２からキャッシュメモリコントローラ１４への転送を表す。
【００６１】
データフローコントローラ１２は、複数のデータフローの指定を格納しても良い。格納されたデータフローの幾つかは、共通のデータ処理ステップを有しても良い。
【００６２】
データフローコントローラ１２は、機能コンポーネントであり、したがって、メモリを用いて、及びデータフロー指定を格納するデータ記憶装置若しくはメモリ及びデータ記憶装置１８とデータを交換するネットワークＩ／Ｏハードウェアを利用して、プロセッサにより実行される処理命令セットとして実現されても良い。キャッシュメモリコントローラ１４は、データフローコントローラ１２の内部で動作する特定の機能コンポーネントであると考えられ、又は場合によっては別個の装置で一緒に動作する別個のコンポーネントとして実現され、したがってデータフローコントローラ１２は、データ処理ステップからキャッシュメモリコントローラ１４へ出力データを転送するためにネットワークＩ／Ｏハードウェアを利用しても良い。
【００６３】
キャッシュメモリコントローラ１４は、キャッシュメモリに、データフローコントローラ１２により指定されたデータ処理ステップのセットの各々のメンバの処理動作の最近の実行により生成された出力データの蓄積を維持するよう構成される。キャッシュメモリコントローラ１４は、予め選択された又は所定のセットデータ処理ステップから出力データを取得し、これらのステップの各々からの最新の出力データを、高速リードアクセスを可能にする場所にデータの蓄積として格納するよう構成される。キャッシュメモリコントローラ１４により出力データを取得すること、及び蓄積を更新するために該出力データを使用することは、個々のデータフローの中の先行するデータ処理ステップの実行及びデータ記憶装置１８への出力データの追加と並行して実行される。したがって、キャッシュメモリコントローラ１４は、特定のデータの最新バージョンが、生成された直後に、高速リードアクセスを実現する装置（キャッシュメモリ）から、アクセスできるようにする。さらに、キャッシュメモリコントローラ１４は、各々の更新の後に実行すべき蓄積を利用する１又は複数の分析処理ルーチンをトリガするよう構成されても良い。
【００６４】
データの蓄積は、単に、スキーマに従って格納された、分析プログラムにより単一のデータエンティティとしてアクセス可能な、１又は複数のデータ処理ステップからの出力データの最新バージョンである。
【００６５】
キャッシュメモリコントローラ１４は、機能コンポーネントであり、したがって、メモリを用いて、及び入来データ及び送出データをバッファリングするデータ記憶装置若しくはメモリ、及び必要なときにデータフローコントローラ１２とデータを交換するネットワークＩ／Ｏハードウェアを利用して、プロセッサにより実行される処理命令セットとして実現されても良い。キャッシュメモリコントローラ１４は、データフローコントローラ１２の特定の機能コンポーネントとして実現されても良い。キャッシュメモリコントローラ１４は、キャッシュメモリとデータ通信し、データの蓄積を格納する特定の機能のためにキャッシュメモリの中の空間を割り当てる権利を与えられる。キャッシュメモリコントローラ１４は、データ処理ステップセットの中のデータ処理ステップからの出力データの最新バージョンで蓄積を更新するために、キャッシュメモリへのデータライト命令／アクセスを行う権利も与えられる。
【００６６】
キャッシュメモリは、ハードウェアコンポーネントであり、不揮発性メモリ、又は特にフラッシュメモリ若しくはＲＡＭであっても良い。キャッシュメモリは、データライトアクセスのためにキャッシュメモリコントローラ１４によりアクセス可能であり、キャッシュメモリコントローラ１４からの命令の下で、データ処理ステップからの出力データの前のバージョンを最新バージョンで上書きするよう構成される。各々の蓄積にいて、キャッシュメモリコントローラ１４は、どの蓄積データがキャッシュメモリにより保持されているかに従って、スキーマを構築しても良い。スキーマは、出力データが蓄積に含まれている各々のデータ処理ステップを識別する。これにより、キャッシュメモリコントローラ１４によりキャッシュメモリに対して行われる後続のデータライトアクセスが、データ処理ステップの識別及び出力データを含むことができ、キャッシュメモリは、蓄積のスキーマの中の適切な位置にデータをライトできる。
【００６７】
キャッシュメモリは、データリードアクセスのために、１又は複数の分析プログラム又は分析処理ルーチンによりアクセス可能である。分析プログラムは、キャッシュメモリに保持されている蓄積の全部又は一部にアクセスしても良い。キャッシュメモリコントローラ１４は、更新が実行される度に、分析エンティティの実行をトリガしても良い。
【００６８】
データ記憶装置１８は、データを格納し、該データに対してデータフローコントローラ１２による（又はデータフローコントローラ１２と協働する他のコンポーネントによる）リード及びライトアクセスを可能にするインタフェースを提供するよう構成される。データフローコントローラ１２は、データ記憶装置１８の中のデータを変更するために、及びデータ記憶装置１８に変更したデータをライトするために、データ処理ステップを実行するよう構成される。特定の例では、データ記憶装置１８は、相互接続されたリソースを表すデータグラフを格納するよう構成される。データグラフは、複数のトリプルとしてエンコードされている。ここで、各トリプルは、主語リソースの識別子である主語、目的語リソースの識別子又は直定数値である目的語、及び主語と目的語との間の命名された関係である述語の各々の値を有する。トリプルは、ＲＤＦトリプル（つまり、Resource  Description  Formatの枠組みに従う）であっても良い。したがって、データ記憶装置１８はＲＤＦデータストアであっても良い。データ記憶装置１８は、単一のデータ記憶ユニとであっても良く、それぞれ格納されたグラフの（場合によっては重なり合う若しくは重複する）部分を格納する複数の相互接続された個々のデータ記憶ユニットを有しても良い。より具体的には、トリプルは、格納されたグラフの該部分をエンコードする。データ記憶装置１８を構成するデータ記憶ユニットの数に関係なく、データグラフは、単一のインタフェース又はポータルを介してデータフローコントローラ１２及び任意で他のユーザにアクセス可能である。この状況及び概して本願明細書の状況におけるユーザは、コンピュータ（このコンピュータはデータ記憶装置１８の一部又は全部を実現するハードウェアを提供しても良く又はネットワークを介してデータ記憶装置１８に接続可能であっても良い）を介してデータ記憶装置１８又は他のコンポーネントと相互作用する人間のユーザであっても良く、又は装置１０の一部又は全部と同じコンピュータにホスティングされた又は（インターネットのような）ネットワークを介して装置１０に接続可能な、機械及び／又は人間のユーザの制御下にあるアプリケーションであっても良い。
【００６９】
データ記憶装置１８は、ＲＤＦストアとして参照されても良い。データフローコントローラ１２は、動的データフローコントローラ又は動的データフローエンジンとして参照されても良い。
【００７０】
トリプルは、グラフデータを複数の主語−述語−目的語の表現として特徴付けることにより、グラフデータのエンコードを提供する。この文脈では、主語及び述語は、グラフデータのグラフノードであり、オブジェクト、インスタンス又はコンセプトのようなエンティティであり、述語は、主語と目的語の間の関係の表現である。述語は、目的語への特定の種類のリンクを提供することにより、主語に関する何かを断言する。例えば、主語は、（例えば、ＵＲＩを介して）ウェブリソースを示しても良く、述語はリソースの個々の特性、特徴又は状況を示し、目的語は、該特性、特徴又は状況のインスタンスを示す。言い換えると、トリプルステートメントの集合は、元来、方向性グラフデータを表す。ＲＤＦ標準は、このようなトリプルの形式化された構造を提供する。
【００７１】
ＲＤＦ（Resource  Description  Framework）は、概念記述又は意味ネットワークの標準である情報のモデル化のための一般的方法である。意味ネットワークにおける情報のモデル化の標準化は、共通の意味ネットワークで動作するアプリケーション間の相互接続性を可能にする。ＲＤＦは、ＲＤＦスキーマ（ＲＤＦＳ）をＲＤＦ内の語彙を記述するための言語として提供することにより、一義的な形式意味論と共に語彙を保持する。
【００７２】
任意で、トリプルの１又は複数の要素のうちの各々は（要素は、述語、目的語又は主語である）、ＵＲＩ（Uniform  Resource  Identifier）である。ＲＤＦ及び他のトリプルの形式は、識別するものの概念（つまり、オブジェクト、リソース又はインスタンス）を前提として、ＵＲＩのようなウェブ識別子を用い、それら識別される「もの」を簡易な特性及び特性値の観点で記述する。トリプルの観点では、そのトリプルのウェブリソースの具体化において、主語はエンティティを記述するウェブリソースを特定するＵＲＩであっても良く、述語は特性の種類（例えば、色）を特定するＵＲＩであっても良く、目的語は問題のエンティティに起因する特性の種類の特定のインスタンスを指定するＵＲＩであっても良い。ＵＲＩの使用は、トリプルに、個々の特性及び値と同様に、リソースを表すノード及びアークのグラフのようなリソースに関する簡易なステートメントを表すことを可能にする。ＲＤＦグラフは、SPARQLプロトコル及びＲＤＦクエリ言語（SPARQL）を用いて問い合わせることができる。SPARQLは、World  Wide  Web  ConsortiumのRDF  Data  Access  Working  Group  (DAWG)により標準化され、主要なセマンティックウェブ技術と考えられている。
【００７３】
図２は、方法のステップで注釈を付された一実施形態の装置１０の概略図である。
【００７４】
図２の実施形態の中のコンポーネントは、以下に提示される特定の追加機能に加えて、図１の例に対応して番号を付されたコンポーネントの機能を有する。
【００７５】
キャッシュメモリコントローラ１４は、２つの別個のコンポーネント部分、つまりデータアイテムレジストリ１４１及びビューレポジトリ１４２と共に示される。データアイテムレジストリ１４１は、出力データの最新バージョンがデ―タの蓄積の中に格納されるデータ処理ステップセットを構成するデータ処理ステップのレコードである。言い換えると、データアイテムレジストリ１４１は、キャッシュメモリコントローラ１４により保持される蓄積を更新するために、どのデータ処理ステップから、データフローコントローラ１２から出力データが取得されるかを決定する。出力データがデータの蓄積を構成するデータ処理ステップセットが選択されデータアイテムレジストリ１４１に格納されると、キャッシュメモリコントローラ１４は、どの蓄積が格納され出力されるかに従ってスキーマを生成し出力するよう構成される。
【００７６】
図２の実施形態では、データの蓄積は、別名、ビューである。ビュー又は蓄積は、データ処理ステップセットからの出力データの最新バージョンの集合である。図２のデータフローコントローラ１２は、特定のビュー又は蓄積の履歴バージョンの格納であるビューレポジトリ１４２を有する。例えば、各々の更新の前に、ビューはビューレポジトリ１４２に出力される。したがって、最近の出力データはキャッシュメモリの中のビューを介してアクセスできても、前のバージョンは格納され、ビューレポジトリ１４２を介してアクセス可能にされる。どれだけ多くのビューがビューレポジトリ１４２により格納されるか、及びそれらがキャッシュメモリの中に又はデータ記憶ユニットの中に格納されるかは、利用可能なシステムリソースに依存する。キャッシュメモリにある複数のビューは、キャッシュメモリコントローラ１４が、それぞれデータ処理ステップの異なる組合せにより出力されるデータの最新バージョンで構成される複数のビューを保持しても良い。
【００７７】
留意すべきことに、キャッシュメモリに格納される出力データが該出力データの最新バージョンとして参照される場合、出力データの生成を生じるデータ処理ステップの処理ルーチンの実行と、該データがキャッシュメモリに書き込まれることとの間には非常に短い待ち時間しか存在しない。この待ち時間の間、該データ処理ステップがデータ処理ステップセットの中にある蓄積に格納された出力データのバージョンは、古い又は無効である。しかしながら、この待ち時間は非常に短く、回避できないので、キャッシュメモリにある蓄積の中に格納されたデータのバージョンは、更新により取って代わられるまで、最新バージョンであると考えられる。
【００７８】
データ分析プログラム２０は、装置１０の外部にあるとして図示されるが、装置１０のコンポーネントのうちの１又は複数と同じ装置で実行するプログラムであっても良い。キャッシュメモリコントローラ１４からデータ分析プログラム２０への矢印は、ビュー／蓄積の更新に続くキャッシュメモリコントローラ１４によるデータ分析プログラム２０のトリガを示す。
【００７９】
図２のコンポーネントアーキテクチャは、幾つかの方法のステップＳ０１０〜Ｓ１０６により注釈を付される。これらの方法のステップは、実施形態に従うプロシジャの例である。図３は、方法のステップＳ０１０〜Ｓ１０６の従うプロセスを更に詳細に示す。
【００８０】
ステップＳ１０１で、ユーザは、出力が蓄積に含まれるべき多数のデータ処理ステップが選択される登録ステップを実行する。特定の実施形態では、登録プロセスは、以下の２つのステップを有しても良い。
【００８１】
（ａ）関心データアイテム（例えば、グラフリソース）を選択する。この選択は、単にグラフリソースの指定であっても良く、又は関心のある該グラフリソースの１又は複数のプロパティも有しても良い。この選択は、以下のようなステートメント（ユーザにより直接入力される又はユーザ入力に基づきキャッシュメモリコントローラ１４により構成される）により行われても良い。
【数１】
2016194907.tif 000003
【００８２】
ステートメント１（Statement  １）では、最初の行は、関心のあるグラフリソースを識別し、２行目は、関心のあるプロパティを指定する。選択は、データアイテムレジストリ１４１に格納される。図３の例では、データフローの中のデータアイテムの中で、sensor_１及びtable１  column２がユーザにとって関心があり、したがって、（ＲＤＦステートメント又は何らかの他のインタフェースを介して）これらが選択されることが分かる。
【００８３】
（ｂ）関心のあるデータアイテムをデータ処理ステップにマッピングする。前のステップで行われた選択により、キャッシュメモリコントローラ１４は、該選択を、データフローコントローラ１２により指定されたデータ処理ステップの出力にマッピングするよう構成される。キャッシュメモリコントローラ１４は、入力データとして、sensor_１のプロパティを、特に述語「has_fahrenheit」を有するものを、受け付けるデータ処理ステップを発見するよう構成される。データフローコントローラ１２は、次のような固定ステートメントフォーマットで入力を格納しても良い。
【数２】
2016194907.tif 000004
【００８４】
したがって、キャッシュメモリコントローラ１４は、入力が「input１」とラベル付けされた任意のデータ処理ステップが、構築されている蓄積のデータ処理ステップセットの中に含まれるべきであることが分かる。次のようなＲＤＦステートメントは、出力データがキャッシュメモリコントローラ１４に提供されるべきデータ処理ステップを指定するために使用されても良い。
【数３】
2016194907.tif 000005
【００８５】
図３の例では、データフローコントローラ１２は、sensor_１のプロパティが入力される１つのデータ処理ステップ、及びtable１  column２が入力される１つのデータ処理ステップを格納する。これらのデータ処理ステップは、したがって、蓄積のためにデータ処理ステップセットに含まれ、これらのデータ処理ステップの出力は、キャッシュメモリコントローラ１４にマッピングされる（つまり、データ処理ステップの実行により生じるように通知が設定される）。
【００８６】
ステップＳ１０２で、スキーマは、キャッシュメモリコントローラ１４により生成される。スキーマは、セットに含まれるデータ処理ステップからの出力データを格納しラベル付けすべき構造である。単純な例では、ＣＳＶファイルのテーブルヘッダが指定される。テーブルヘッダは、各々のデータ処理ステップに属する識別子である。図３の例では、スキーマは、「sensor_１  fahrenheit」及び「location」（table１  column２に属するラベルである位置）を有するテーブルである。
【００８７】
ステップＳ１０３で、データ処理ステップは、入力として別のデータ処理ステップの出力を提供されることにより、又はデータ記憶装置１８により格納されたデータベースにおける状態変化の通知により、トリガされる。このような通知は、データ状態変更検出器１１からのレポートの形式で生じても良い。蓄積に対応する（それに含まれる出力データを有する）データ処理ステップセットのメンバに含まれるデータ処理ステップが新しい出力データを生成するとき、データフローコントローラ１２は、該新しい出力データをキャッシュメモリコントローラ１４へ転送する。この出力データの転送は、データフローコントローラ１２が出力データをデータ処理ステップからキャッシュメモリコントローラ１４へプッシュすることにより達成されても良く、又は、キャッシュメモリコントローラ１４がデータ処理ステップの出力ポートを観察し、各々の実行の後に出力データをプルすることにより達成されても良い。ステップＳ１０４で、キャッシュメモリコントローラ１４は、新しい出力データを用いて、キャッシュメモリ１６の中の蓄積を更新する。図３の例では、sensor_１にリンクする述語has_fahrenheitの目的語値は変更され、或いは、table１  column２にあるテーブルエントリは変更され、アキュムレータが通知され、「View１」が変更される。キャッシュメモリコントローラ１４により実行される機能は、データフローの実行、及びデータフローの中で生成されるデータのデータベースへの書き込みと並列である。分析プログラムへの配信時間は、節約され、データ鮮度が最適化される。
【００８８】
ステップＳ１０５で、蓄積のバージョンは、ビューレポジトリ１４２に保存される。更新されたバージョンは、更新後にビューレポジトリ１４２に保存されても良い。このように、ビューレポジトリ１４２への蓄積の保存は、蓄積の更新を遅らせない。ステップＳ１０６で、蓄積の更新に続き、キャッシュメモリコントローラ１４は、データ分析プログラム２０をトリガする。このプログラムは、キャッシュメモリ１６の中の更新された蓄積に対して動作を実行する。データ分析プログラム２０は、既製の分析プロセスであっても良い。代替で、分析プロセスは、将来の分析のためにより多くのデータを追加的に生じる／生成する装置１０に組み込まれても良い。例えば、単純な組み込み型プロセスは、室内センサが高温を有する統計を得ても良い。この分析プロセスは、センサのうちの１つの温度プロパティが更新されるときはいつでも、室内に置かれた全てのセンサからの、データグラフの中に表される、温度読み取り値の蓄積に対し操作し得る。
【００８９】
例示的なデータフローコントローラ１２は、図４を参照して以下に詳細に議論される。この特定の例では、データフローコントローラ１２は、動的データフローコントローラとして参照される。動的データフローコントローラは、以下に説明する更なる機能に加えて、図１のデータフローコントローラ１２の機能を有する。本例のデータ記憶装置１８は、図１のデータ記憶装置１８に対応する。本願明細書のどこかで参照されるデータ処理ステップは、本例ではプロセッサインスタンスとして参照される。図１〜３のキャッシュメモリコントローラ１４は、図４のデータフローコントローラのコンポーネントとして含まれ、又は代替で、図４のデータフローコントローラと共同して機能しても良い。両方の代替は、図４に破線で示される。
【００９０】
図４は、データ状態変更検出器１１と共同で動作するよう構成される動的データフローコントローラ１２を示す。
【００９１】
図４のキャッシュメモリコントローラ１４は、図１〜３のキャッシュメモリコントローラと同じである。
【００９２】
データ記憶装置１８は、データを格納し、該データに対してリード及びライトアクセスを可能にするインタフェースを提供するよう構成される。具体的には、データ記憶装置１８は、相互接続されたリソースを表すデータグラフを格納するよう構成される。データグラフは、複数のトリプルとしてエンコードされる。ここで、各トリプルは、主語リソースの識別子である主語、目的語リソースの識別子又は直定数値である目的語、及び主語と目的語との間の命名された関係である述語の各々の値を有する。トリプルは、ＲＤＦトリプルであっても良い（つまり、Resource  Description  Formatの枠組みに従う）。
【００９３】
データ記憶装置１８と動的データフローコントローラ１２との間の矢印は、２者間のデータ交換を示す。動的データフローコントローラ１２は、データ記憶装置１８からのトリプルを入力として取り入れるプロセッサインスタンスを格納し、その実行をトリガし、データ記憶装置１８に書き込まれる出力トリプルを生成する。
【００９４】
動的データフローコントローラ１２は、複数のプロセッサインスタンスを格納するよう構成される。各々のプロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を指定する。各々のプロセッサインスタンスは、入力範囲に含まれるトリプルを有する入力の提供によりトリガされると、入力で指定されたプロセスを実行することにより、出力範囲に含まれるトリプルを有する出力を生成するよう構成される。プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を、明示的に又は他の場所で定められた命名されたエンティティへの参照により、指定しても良い。例えば、入力範囲は、動的データフローコントローラ１２により（又はデータ状態変換検出器１１のような何らかの他のコンポーネントにより）格納されるＲＤＦステートメントの中で定められ、ラベルを与えられても良い。プロセッサインスタンスは、明示的に入力範囲を定めるのではなく、単に、ラベルを記述しても良い。また、出力範囲は、同様に指定されても良い。（ルーチンを処理する）プロセスは、例えば処理コード若しくは擬似コードとして明示的に格納されても良く、或いは（汎用プロセッサレポジトリによるような）他の場所に格納されたコード若しくは擬似コードのラベル付きブロックへの参照が指定されても良い。
【００９５】
プロセッサインスタンスにより指定されたプロセスの実際の実行は、プロセッサインスタンス自体に、又は動的データフローコントローラ１２に、又はデータを処理する実際のハードウェアプロセッサに、属しても良く、或いは、何らかの他のコンポーネント又はコンポーネントの組合せに属しても良い。
【００９６】
プロセッサインスタンスは、データ変更イベントが指定された入力範囲に含まれるトリプルに関して生じることに応じて、動的データフローコントローラ１２によりトリガされる（実行させられる）。動的データフローコントローラ１２は、データ変更イベントに関与するトリプルを格納されたプロセッサインスタンスのうちの１つに入力（の全部又は一部）として提供することにより、格納されたプロセッサインスタンスのうちの１つの入力範囲に含まれるトリプルを含むデータ変更イベントに応答するよう構成される。プロセッサインスタンスの入力範囲に含まれるトリプルに関連するデータ変更イベントが発生したことを通知されることに応答して、動的データフローコントローラ１２により続けられる実際のプロシジャは、該プロセッサインスタンス又はその識別情報を、該データ変更イベントに含まれるトリプル（及び必要な婆合いには入力の残りの部分）と一緒に、処理キューに追加することであっても良い。このように、動的データフローコントローラ１２は、入力を提供することによりプロセッサインスタンスをトリガする。データ変更イベントは、（例えば、ユーザがデータ記憶装置１８に作用することにより、又はリコンシリエーション（reconciliation）のようなグラフデータに対する何らかの内部プロセスにより）動的データフローコントローラ１２の外部で生じても良く、或いは、動的データフローコントローラ１２によりトリガされるプロセッサインスタンスの直接の結果であっても良い。
【００９７】
プロセッサインスタンスの出力に含まれるトリプルは、実行されると、（例えば、ライトキューに追加されることにより）データグラフに書き込まれて戻される。さらに、動的データフローコントローラ１２は、実行されたプロセッサインスタンスの出力が別のプロセッサインスタンスの実行をトリガするときを認識し、及びこれらの場合に、別のプロセッサインスタンスに直接に出力を提供し、したがってデータフローを形成するよう構成される。言い換えると、トリガされたプロセッサインスタンスによる出力の生成に続き、複数のプロセッサインスタンスの中から任意のプロセッサインスタンスへの入力として、出力に含まれるトリプルを提供し、出力に含まれるトリプルをカバーする入力範囲を指定するよう構成される。認識は、各々のプロセッサインスタンスについて指定された入力範囲と出力範囲との、周期的又はイベント（この状況では、例えば、新しいプロセッサインスタンスの追加のイベント）毎の比較により行われても良い。あるプロセッサインスタンスの出力範囲と別のプロセッサインスタンスの入力範囲との間に部分的な重なり合いが存在するとき、動的データフローコントローラ１２は、両者がリンクされていることの指示を格納し、実行毎に、特定の出力が入力範囲に含まれるか否かを決定するよう構成される。プロセッサインスタンスが、キャッシュメモリコントローラ１４によりキャッシュメモリにあるビュー／蓄積に最近の出力が保持されているプロセッサインスタンスセットに含まれるとき、出力の別の宛先は、キャッシュメモリコントローラ１４である。
【００９８】
データ状態変更検出器１１は、動的データフローコントローラ１２に格納されたプロセッサインスタンスの入力範囲に含まれる（包含される又はカバーされる、と表されても良い）トリプルに関連するデータ変更イベントを検出するために、データ記憶装置１８に格納されたデータ（トリプル）を監視又は観察するよう構成される。データ状態変更検出器１１は、任意のこのようなデータ変更イベントを検出すると、動的データフローコントローラ１２に、少なくともデータ変更イベントに関連するトリプルを通知し、幾つかの実装では、検出したデータ変更イベントのタイムスタンプ（又は検出のタイムスタンプ）、及び／又は検出したデータ変更イベントの種類の指示も、通知するよう構成される。
【００９９】
トリプルに関連するデータ変更イベントは、生成されているトリプル、変更されているトリプルの目的語値、又は変更されているトリプルの別の値を含んでも良い。生成されているトリプルは、新しい主語リソースがデータグラフの中に表される結果であっても良く、新しい相互接続がデータグラフに既に存在している主語リソースに追加される結果であっても良い。さらに、データ変更イベントは、トリプルの主語リソースが除去される結果として、又はトリプルにより表される特定の相互接続が除去される結果として、データグラフからのトリプルの除去／削除を有しても良い。さらに、クラスレベルの生成、変更又は除去の結果として、クラスインスタンスレベルにある（つまり、クラスのインスタンスのプロパティを表す）トリプルは、生成され、変更され、又は除去されても良い。このような場合には、データ状態変更検出器１１は、クラスレベルの生成／変更／除去、及び変更されたクラスのインスタンスで生じる生成／変更／除去イベントの両方を検出する（及び動的データフローコントローラ１２に報告する）よう構成される。この段落で説明されるイベントの各々は、実際の個々のイベントを表すものではなく、むしろこれらの個々のイベントが生じる一般的な形式を表すので、様々なイベントであると考えられる。
【０１００】
一例として、クラスのオントロジ定義は、特定のラベル（述語値）を有する新しい（初期にはヌル又はゼロ）プロパティを含むよう変更されても良い。クラスのオントロジ定義が述語値のような新しいラベルを有する新しいトリプルの追加により変更されると、同じものがクラスの各々のインスタンスに追加される。
【０１０１】
データ状態変更検出器１１は、データ記憶装置１８及び動的データフローコントローラ１２とは別個のエンティティとして示される。データ状態変更検出器１１により実行される機能の特性は、実際には、データ記憶装置１８で実行するコードとして実装されても良い。代替又は追加で、データ状態変更検出器１１は、自身がデータ記憶装置１８として動作しないがデータ記憶装置１８に接続可能でありリードアクセスを行うことが許可されたコントローラ又は他のコンピュータ若しくは装置で実行するコードを有しても良い。データ状態変更検出器１１が実現される詳細な方法は、検出器１１自体だけでなく、データ記憶装置１８の実装の詳細にも依存する。例えば、データ記憶装置１８自体が、データ変更イベントのシステムログを保持しても良い。したがって、データ状態変更検出器１１の機能は、指定された入力範囲に含まれるトリプルにおいて、イベントのシステムログをクエリすることである。代替で、データ状態変更検出器１１自体は、データ変更イベントを検出するために、（全体として又は部分毎に）データグラフの状態のスナップショットをコンパイルし比較するよう構成される。データ記憶装置１８とデータ状態変更検出器１１との間のクエリ、トリプル、及び／又は機能コードの交換は、２つのコンポーネントを接続する矢印により表される。
【０１０２】
データ状態変更検出器１１がデータ変更イベントを監視している入力範囲は、ＲＤＦステートメントの形式により定められても良い。このステートメントは、ユーザによりデータ状態変更検出器１１に直接に、又は動的データフローコントローラ１２を介して入力されても良い。ステートメントは、（データグラフのどの部分を監視すべきかを定めるために）データ状態変換検出器及び（どのプロセッサインスタンスをトリガすべきかを定めるために）動的データフローコントローラ１２により又はその両者に、又はその一方若しくは両方がアクセス可能な場所に格納されても良い。データ状態変更検出器１１と動的データフローコントローラ１２との間の矢印は、動的データフローコントローラ１２からデータ状態変更検出器１１への特定の入力範囲を監視するための命令、及びデータ状態変更検出器１１による動的データフローコントローラ１２への該特定の入力範囲の中のトリプルに関連するデータ変更イベントの報告／通知を表す。
【０１０３】
データ状態変更検出器１１は、データ変更イベントを検出し、それらを動的データフローコントローラ１２に報告するよう構成される。報告の形式は、実装要件に依存し、データ記憶装置１８からの１又は複数の変更されたトリプルだけであっても良い。代替で、報告は、１又は複数の変更されたトリプル、及び１又は複数のトリプルを変更したデータ変更イベントの種類の指示を有しても良い。報告に含まれても良い更なる任意的詳細事項は、データ変更イベント自体の又は（イベント自体のタイムスタンプが利用可能でない場合）データ状態変更検出器１１によるその検出のタイムスタンプである。
【０１０４】
報告（変更イベントデータアイテムとして表されても良い）の何らかのフィルタリングは、該報告が動的データフローコントローラ１２へ転送される前にデータ状態変更検出器１１により、又は報告がキューの中に保持され処理されるのを待っている間に動的データフローコントローラ１２により、実行されても良い。
【０１０５】
フィルタリングは、直後に生成型イベントの中で識別されたデータを削除する種類のデータ変更イベントが続く特定の種類のデータ変更イベントの報告を除去することを有しても良い。
【０１０６】
フィルタリングは、データグラフがデータアイテムの階層構造を定めるオントロジ定義を有する実施形態では、階層構造の中でキューの中の他の報告に含まれる１又は複数の他のリソースより上位にある（つまり親概念である）報告されたトリプルの主語として第１のリソース（又は他の概念）を含むデータ変更イベントの報告をキューが含むときを、識別することも有しても良い。このような場合には、階層構造の中で下位にあるリソース（つまり、これらのトリプルの中で識別される主語リソースは、第１のリソースの子概念である）を含む報告は、キューから除去される。このような除去は、同じ種類のデータ変更イベントに関連するレポートの状態に応じても良い。
【０１０７】
フィルタリングは、２つの異なるレポートの中で識別されたトリプルが意味的に等価であるときを識別すること、及び該２つのレポートのうちの１つをキューから除去すること、も有しても良い。どのレポートを除去すべきかの選択は、レポートに含まれるタイムスタンプに基づき、例えば最新のレポートを除去しても良い。
【０１０８】
図５は、本発明を実現し一実施形態の方法を実施するために使用できる、データ記憶サーバ又はコンピュータのようなコンピューティング装置のブロック図である。一実施形態の装置は、図５のようなハードウェア構成により実現されても良い。コンピューティング装置は、ＣＰＵ（computer  processing  unit）９３３、ＲＡＭ（Random  Access  Memory）９９５のようなメモリ、及びハードディスクのような記憶装置９９６を有する。任意で、コンピューティング装置は、実施形態の他のコンピューティング装置と通信するためのネットワークインタフェース９９９も有する。例えば、一実施形態は、このようなコンピューティング装置のネットワークで構成されても良い。任意で、コンピューティング装置は、ＲＯＭ（Read  Only  Memory）９９４、キーボード及びマウスのような１又は複数の入力メカニズム９９８、及び１又は複数のモニタのようなディスプレイユニット９９７も有する。コンポーネントは、バス９９２を介して互いに接続可能である。
【０１０９】
ＣＰＵ９３３は、コンピューティング装置を制御し、処理動作を実行するよう構成される。ＲＡＭ９９５は、ＣＰＵ９３３によりリード及びライトされるデータを格納する。記憶ユニット９９６は、例えば、不揮発性記憶ユニットであっても良く、データを格納するよう構成される。
【０１１０】
ディスプレイユニット９９７は、コンピューティング装置により格納されたデータの提示を表示し、ユーザとプログラムとコンピューティング装置に格納されたデータとの間の相互作用を可能にするカーソル及びダイアログボックス及びスクリーンを表示する。入力メカニズム９９８は、ユーザがデータ及び命令をコンピューティング装置に入力することを可能にする。
【０１１１】
ネットワークインタフェース（ネットワークＩ／Ｆ）９９９は、インターネットのようなネットワークに接続され、ネットワークを介して他のコンピューティング装置に接続可能である。ネットワークＩ／Ｆ９９９は、ネットワークを介して他の装置からのデータ入力／へのデータ出力を制御する。
【０１１２】
マイクロフォン、スピーカ、プリンタ、電源ユニット、ファン、筐体、スキャナ、トラックボール等のような他の周辺装置は、コンピューティング装置に含まれても良い。
【０１１３】
一実施形態の装置は、図５に示されたようなコンピューティング装置により実現される機能として実施されても良い。装置の機能は、単一のコンピューティング装置により、又はネットワーク接続を介して共同して機能する複数のコンピューティング装置により実現されても良い。本発明を実現する方法は、図５に示されたようなコンピューティング装置で実行され又はそれにより実装されても良い。１又は複数のこのようなコンピューティング装置は、一実施形態のコンピュータプログラムを実行するために用いられても良い。実施形態を具現化する又はそれを実装するために使用されるコンピューティング装置は、図５に示した全てのコンポーネントを有する必要はなく、これらのコンポーネントのうちの部分集合で構成されても良い。本発明を具現化する方法は、ネットワークを介して１又は複数のデータ記憶サーバと通信する単一のコンピューティング装置により実行されても良い。
【０１１４】
データ状態変更検出器１１は、記憶ユニット９９６に格納された処理命令、該処理命令を実行するためのプロセッサ９９３、及び該処理命令の実行中に情報オブジェクトを格納するためのＲＡＭ９９５を有しても良い。
【０１１５】
データ記憶装置１８は、記憶ユニット９９６に格納された処理命令、該処理命令を実行するためのプロセッサ９９３、及び該処理命令の実行中に情報オブジェクトを格納するためのＲＡＭ９９５を有しても良い。
【０１１６】
動的データフローコントローラ１２は、記憶ユニット９９６に格納された処理命令、該処理命令を実行するためのプロセッサ９９３、及び該処理命令の実行中に情報オブジェクトを格納するためのＲＡＭ９９５を有しても良い。
【０１１７】
キャッシュメモリコントローラ１４は、記憶ユニット９９６に格納された処理命令、該処理命令を実行するためのプロセッサ９９３、及び該処理命令の実行中に情報オブジェクトを格納するためのＲＡＭ９９５を有しても良い。
【０１１８】
以上の実施形態に加えて、更に以下の付記を開示する。
（付記１）  １又は複数のデータフロー指定を格納し前記１又は複数のデータフロー指定により指定されるデータフローの実行を制御するよう構成されるデータフローコントローラであって、前記１又は複数のデータフロー指定は、リンクされたデータ処理ステップのシリーズを指定し、各々の処理ステップは、出力データを生成するために入力データとして提供されたデータに対して実行されるべき処理動作を指定し、各々のリンクは、前記シリーズの中の２つの処理ステップの間の連続する対の関係を定め、前記リンクは、前記連続する対のうちの前のメンバにより出力データが生成されると、前記前のメンバの前記の生成された出力データを後のメンバの入力データとして提供することにより、前記後のメンバの実行をトリガするよう前記データフローコントローラに指示する、データフローコントローラと、
キャッシュメモリ及びキャッシュメモリコントローラであって、前記キャッシュメモリコントローラは、前記キャッシュメモリに、前記データフローコントローラにより指定されたデータ処理ステップのセットの各々のメンバの処理動作の最近の実行により生成された出力データの蓄積を保持するよう構成される、キャッシュメモリ及びキャッシュメモリコントローラと、
を有し、
前記データフローコントローラは、データ処理ステップの前記セットの各々のメンバについて、前記データ処理ステップの処理動作が実行されると、前記生成された出力データを前記キャッシュメモリコントローラに直接提供するよう構成され、
前記キャッシュメモリコントローラは、前記データフローコントローラから前記生成された出力データを直接提供されると、前記の保持された蓄積を更新するよう構成される、
装置。
（付記２）  前記保持された蓄積が更新される度に、前記キャッシュメモリコントローラは、前記の更新された蓄積に作用するために分析処理ルーチンをトリガするよう構成される、
付記１に記載の装置。
（付記３）  前記装置は、データベースを格納するよう構成されるデータストアを更に有し、
前記データフローコントローラは、データフロー指定毎に少なくとも１つのデータ処理ステップのうちの１つ又は各々の処理動作の実行により生成された出力データの、データベースへの書き込みを指示するよう構成される、
付記１に記載の装置。
（付記４）  データフロー指定毎の少なくとも１つのデータ処理ステップは、入力範囲を指定し、前記入力範囲は、前記データベースの中のデータの部分集合を定め、
前記データフローコントローラは、前記データ処理ステップのうちの１つの入力範囲に含まれる、前記データベースの中の、関連するデータを入力データとして提供し及び前記データ処理ステップのうちの前記１つの処理動作の実行をトリガすることにより、該データに関連するデータ変更イベントの通知に応答するよう構成される、
付記３に記載の装置。
（付記５）  前記データベースは、相互接続されたリソースを表すグラフデータベースであり、データグラフは、複数のトリプルとしてエンコードされ、各トリプルは、主語リソースの識別子である主語、目的語リソースの識別子又は直定数値である目的語、及び主語と目的語との間の命名された関係である述語の各々の値を有する、
付記３に記載の装置。
（付記６）  データ処理ステップにより指定される入力範囲は、前記述語の値範囲により及び／又は前記主語の値範囲により指定され、トリプルは、前記指定された述語値範囲に含まれる述語値及び／又は主語値範囲に含まれる主語値を有することにより、前記入力範囲に含まれると考えられる、
付記５に記載の装置。
（付記７）  前記データフロー指定は、データ処理ステップの各々について、入力範囲及び出力範囲を有し、データ処理ステップの連続する対の各々の間のリンクは、前記対の中の前のメンバの出力範囲の一部又は全部の前記対の中の後のメンバの入力範囲への包含により定められ、各々のデータ処理ステップは、前記データ処理ステップの入力範囲に含まれるデータを入力として提供されることによりトリガされると、前記データ処理ステップにより指定された処理動作を前記入力に対して実行することにより、前記データ処理ステップの出力範囲に含まれる出力データを生成するよう構成される、
付記１に記載の装置。
（付記８）  前記キャッシュメモリコントローラは、ユーザに、前記データ処理ステップのセットに含むべきデータ処理ステップを選択させるインタフェースを有する、
付記１に記載の装置。
（付記９）  前記インタフェースは、データグラフにより表されるリソースを指定することにより、前記ユーザにデータ処理ステップを選択させ、前記キャッシュメモリコントローラは、前記指定されたリソースを前記データフローコントローラに通知するよう構成され、前記データフローコントローラは、前記指定された入力範囲が、主語値が前記指定されたリソースの識別情報であるトリプルを含むデータ処理ステップを、前記キャッシュメモリコントローラに通知することにより、応答するよう構成される、
付記８に記載の装置。
（付記１０）  前記インタフェースは、リソースを指定することに加えて、前記ユーザに１又は複数の述語値範囲を指定させ、前記キャッシュメモリコントローラは、前記指定されたリソース及び前記１又は複数の述語値範囲を前記データフローコントローラに通知するよう構成され、前記データフローコントローラは、前記指定された入力範囲が、主語値が前記指定されたリソースの識別情報であり述語値が前記１又は複数の指定された述語値範囲に含まれるトリプルを含む処理ステップを、前記キャッシュメモリコントローラに通知することにより、応答するよう構成される、
付記８に記載の装置。
（付記１１）  前記キャッシュメモリコントローラは、前記キャッシュメモリに出力データの蓄積を格納するスキーマを構築するよう構成される、
付記１に記載の装置。
（付記１２）  前記キャッシュメモリコントローラは、各々の更新に続き分析プログラムに前記データの蓄積を出力するよう構成される、
付記１に記載の装置。
（付記１３）  前記キャッシュメモリコントローラは、前記セットの各々のメンバにより生成される出力データの最新バージョンのみを保持するよう構成される、
付記１に記載の装置。
（付記１４）  １又は複数のデータフロー指定を格納し、１又は各々のデータフロー指定により指定されるデータフローの実行を制御するステップであって、１又は各々のデータフロー指定は、リンクされたデータ処理ステップのシリーズを指定し、各々の処理ステップは、出力データを生成するために入力データとして提供されるデータに対して実行されるべき処理動作を指定し、各々のリンクは、該シリーズの中の２つの処理ステップの間の連続する対の関係を定め、リンクは、前記連続する対の前のメンバにより出力データが生成されると、前記前のメンバの生成された出力データを後のメンバの入力データとして提供することにより、前記後のメンバの実行をトリガするようデータフローコントローラに指示する、ステップと、
キャッシュメモリに、前記指定されたデータ処理ステップのセットの各々のメンバの処理動作の最近の実行により生成された出力データの蓄積を保持するステップと、
前記データ処理ステップのセットの各々のメンバについて、前記データ処理ステップの処理動作が実行されると、前記の実行により生成された出力データを得て、前記得られた出力データにより前記保持されている蓄積を更新するステップと、
を有する方法。
（付記１５）  コンピューティング装置により実行されると前記コンピューティング装置に付記１４に記載の方法を実行させるコンピュータプログラムを格納する非一時的記憶媒体。
【符号の説明】
【０１１９】
１０  装置
１１  データ状態変更検出器
１２  データフローコントローラ
１４  キャッシュメモリコントローラ
１４１  データアイテムレジストリ
１４２  ビューレポジトリ
１６  キャッシュメモリ
１８  データ記憶装置
２０  データ分析プログラム
【図１】
2016194907.tif 000006
【図２】
2016194907.tif 000007
【図３】
2016194907.tif 000008
【図４】
2016194907.tif 000009
【図５】
2016194907.tif 000010