(57)【要約】【課題】データ管理装置等を提供する。【解決手段】装置は、複数のプロセッサインスタンスを記憶する動的データフローコントローラを有する。各プロセッサインスタンスは、入力範囲、プロセス及び出力範囲を特定し、入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、入力に対して特定されたプロセスを実行することによって、出力範囲に入るデータ項目を含む出力を生成するよう構成される。動的データフローコントローラは、プロセッサインスタンスの入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、イベントに関与するデータ項目をプロセッサインスタンスへ入力として供給するとともに、トリガされたプロセッサインスタンスによる出力の生成の後に、出力に含まれるデータ項目をカバーする入力範囲を特定するプロセッサインスタンスへの入力としてデータ項目を供給する。【選択図】図２
2016177788.tif 000002
【特許請求の範囲】
【請求項１】
相互接続されたリソースを表すデータグラフを記憶するよう構成され、前記データグラフは、複数の相互接続されたデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、データ記憶装置と、
複数のプロセッサインスタンスを記憶するよう構成され、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、前記入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、前記入力に対して前記特定されたプロセスを実行することによって、前記出力範囲に入るデータ項目を含む出力を生成するよう構成される、動的データフローコントローラと
を有し、
前記動的データフローコントローラは、前記記憶されたプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、該データ変更イベントに関与する前記データ項目を前記記憶されたプロセッサインスタンスのうちの当該１つへ前記入力として供給するよう更に構成され、
前記動的データフローコントローラは、前記トリガされたプロセッサインスタンスによる前記出力の生成に続いて、該出力に含まれるデータ項目を、該出力に含まれるデータ項目をカバーする入力範囲を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するよう更に構成される、
データ管理装置。
【請求項２】
前記データ記憶装置に記憶されており、前記複数のプロセッサインスタンスのうちの１つの前記特定された入力範囲によってカバーされるデータ項目を伴うデータ変更イベントを検出し、該検出されたデータ変更イベントに関与する前記データ項目を前記動的データフローコントローラへ供給するよう構成されるデータ状態変更検出部
を更に有する請求項１に記載のデータ管理装置。
【請求項３】
前記データ変更イベントは、所定のデータ変更イベントタイプの組の中の１つであり、
前記データ状態変更検出部は、前記データ変更イベントタイプの組の中のどの１つが検出されたかのインジケーションとともに、前記検出されたデータ変更イベントに関与する前記データ項目を前記動的データフローコントローラへ供給するよう構成される、
請求項２に記載のデータ管理装置。
【請求項４】
前記データ状態変更検出部は、前記データ変更イベントタイプの組の中のどの１つが検出されたかのインジケーションと、前記検出されたデータ変更イベントの時点のインジケーションとを更に含む変更イベントデータ項目として、前記検出されたデータ変更イベントに関与する前記データ項目を前記動的データフローコントローラへ供給するよう構成され、
前記動的データフローコントローラは、前記含まれるデータ項目が前記プロセッサインスタンスのうちの１つ以上へ入力として供給される場合及び／又は前記含まれるデータ項目を前記プロセッサインスタンスのいずれへも供給しないことが前記動的データフローコントローラによって決定される場合に変更イベントデータ項目が除外されるところのキューに前記供給された変更イベントデータ項目を加えるよう構成される、
請求項３に記載のデータ管理装置。
【請求項５】
前記動的データフローコントローラは、意味的に等価なデータ項目を含む前記キュー内の変更イベントデータ項目の対を識別し、該対の一方を、そのデータ項目をプロセッサインスタンスへ供給することなしに、前記キューから除外するよう構成される、
請求項４に記載のデータ管理装置。
【請求項６】
前記プロセッサインスタンスの１つ以上は、夫々がデータ変更イベントタイプの組のサブセットを特定し、
前記動的データフローコントローラは、前記データ変更イベントタイプの組のサブセットを特定する前記１つ以上のプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントの検出に応答するために、
前記検出されたデータ変更イベントが、前記プロセッサインスタンスのうちの当該１つによって特定されるサブセットに含まれるタイプであることが示される場合に、前記データ項目を当該プロセッサインスタンスへ供給することによって当該プロセッサインスタンスをトリガし、
前記検出されたデータ変更イベントが、前記プロセッサインスタンスのうちの当該１つによって特定されるサブセットに含まれないタイプであることが示される場合に、前記データ項目が当該プロセッサインスタンスへ供給されないようにする
よう構成される、
請求項２に記載のデータ管理装置。
【請求項７】
包括的入力データ項目、包括的出力データ項目、及び処理命令の組を夫々定義するクラスレベルプロセッサエンティティの組を記憶するよう構成されるジェネリックプロセッサと、
クラスレベルプロセッサエンティティをインスタンス化する命令を受けるよう構成され、該命令は、前記クラスレベルプロセッサエンティティの組からのクラスレベルプロセッサエンティティの選択と、特定された入力範囲とを含む、プロセッサインスタンス化インターフェイスと
を更に有し、
前記動的データフローコントローラは、前記特定された入力範囲、前記プロセッサインスタンスの前記特定されたプロセスとしての前記選択されたクラスレベルプロセッサエンティティの処理命令の組、及び前記特定された入力範囲に対応する特定された出力範囲をプロセッサインスタンスとして記憶するよう構成される、
請求項１に記載のデータ管理装置。
【請求項８】
前記選択されたクラスレベルプロセッサエンティティについて定義された前記処理命令の組は、それらが実行させるプロセスに関して設定可能であり、
前記受けられた命令は、如何にして前記処理命令の組が前記プロセッサインスタンスにおいて構成されるかを定義する１つ以上の設定命令を含む、
請求項７に記載のデータ管理装置。
【請求項９】
前記プロセッサインスタンス化インターフェイスは、グラフィカルユーザインターフェイスであり、前記記憶されたデータグラフの少なくとも一部及び前記記憶されたプロセッサインスタンスの少なくとも一部の仮想表現を有し、新しいプロセッサインスタンスの処理及び／又は入力範囲が前記仮想表現からの選択によって特定されることを可能にする、
請求項７に記載のデータ管理装置。
【請求項１０】
プロセッサインスタンスによって特定される前記入力範囲は、前記プレディケートについての値範囲によって及び／又は前記サブジェクトについての値範囲によって特定され、データ項目は、前記特定されたプレディケートの値範囲に入るプレディケート値及び／又は前記サブジェクトの値範囲に入るサブジェクト値を有することによって、前記入力範囲に入ると見なされる、
請求項１に記載のデータ管理装置。
【請求項１１】
前記動的データフローコントローラは、
前記プロセッサインスタンスの夫々がプロセッサノードによって表され、各プロセッサインスタンスについて、当該プロセッサインスタンスについて特定された前記入力範囲によってカバーされるデータ項目の前記サブジェクトリソースである前記データ記憶装置によって記憶された前記データグラフ内の各リソースが、入力として当該プロセッサインスタンスを表す前記プロセッサノードへ接続されたリソースノードによって表され、当該プロセッサインスタンスについて特定された前記出力範囲によってカバーされるデータ項目の前記サブジェクトリソースである前記データ記憶装置によって記憶された前記データグラフ内の各リソースが、出力として当該プロセッサインスタンスを表す前記プロセッサノードへ接続されたリソースノードによって表される従属グラフ
を更に有する、
請求項１に記載のデータ管理装置。
【請求項１２】
相互接続されたリソースを表すデータグラフを記憶するステップであって、前記データグラフは、複数のデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、ステップと、
複数のプロセッサインスタンスを記憶するステップであって、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、前記入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、前記入力に対して前記特定されたプロセスを実行することによって、前記出力範囲に入るデータ項目を含む出力を生成するよう構成される、ステップと、
前記記憶されたプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、該データ変更イベントに関与する前記データ項目を前記記憶されたプロセッサインスタンスのうちの当該１つへ前記入力として供給するステップと、
前記トリガされたプロセッサインスタンスによる前記出力の生成に続いて、該出力に含まれるデータ項目を、該出力に含まれるデータ項目をカバーする入力範囲を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するステップと
を有するデータ管理方法。
【請求項１３】
コンピュータ装置によって実行される場合に、該コンピュータ装置に、
相互接続されたリソースを表すデータグラフを記憶するステップであって、前記データグラフは、複数のデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、ステップと、
複数のプロセッサインスタンスを記憶するステップであって、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、前記入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、前記入力に対して前記特定されたプロセスを実行することによって、前記出力範囲に入るデータ項目を含む出力を生成するよう構成される、ステップと、
前記記憶されたプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、該データ変更イベントに関与する前記データ項目を前記記憶されたプロセッサインスタンスのうちの当該１つへ前記入力として供給するステップと、
前記トリガされたプロセッサインスタンスによる前記出力の生成に続いて、該出力に含まれるデータ項目を、該出力に含まれるデータ項目をカバーする入力範囲を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するステップと
を有するデータ管理方法を実行させるコンピュータプログラムを記憶した非一時的な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフデータの記憶及び処理の分野に属する。特に、本発明は、ＲＤＦデータグラフのユーザに利用可能にされたデータ変更機能を制御する技術に関係がある。
【背景技術】
【０００２】
現在のビッグデータ時代においては、毎日膨大な異種のデータが生成されている。データを有効に解析することが可能であるために、従って、より有意味な知識及び情報を導き出すために、優れたデータ処理及びインテグレーション戦略が不可欠である。リンクト・データは、その柔軟なデータ構造性質及び異なったデータセット間の接続性について知られており、よって、多量のデータセットにわたってビッグデータにおけるデータ処理を容易にするための最良の候補である。
【０００３】
リンクト・データは、データ間の相互接続を明示的に表すことができる構造化されたデータを公開する方法である。斯様な相互接続は、＜サブジェクト（主語），プレディケート（述語），オブジェクト（目的語）＞の形をとり、通常はリソース記述フレームワーク（ＲＤＦ）標準に従って符号化される。リンクト・データは、パブリック及びプライベートの両方のドメインにおいてデータサービスを公開するよう広く採用されている。理想的には、リンクト・データは、データ及びデータサービスを記述するためのトランスペアレントなセマンティック・エンハンストレイヤを提供する。これは、しかしながら、データ／機能性の相互運用問題に根本的に対処せず、このことは、ビッグデータ又はビッグリンクト・データの全体の大きさを考えたときに、より明らかになる。機能性の相互運用は、人間及び機械の双方の消費のために一目瞭然の且つ直観的なインターフェイスを提供するデータサービスの機能及び有効性をいう。
【０００４】
概してビッグデータ処理、特にリンクト・データの処理の分野において機能性の相互運用を調べると、次の非能率が特定される：
・機能性のトランスペアレンシー：ほとんどの場合に、データ処理機能は、アプリケーション特有の方法においてパックされている。対象のドメインの知識をほとんど持たない人々にとって、データプロセッサの発見及び起動は困難となる。
・制御フロー：制御フローは、機能及びそれら機能の実行の順序を予め定義する必要があり、これは、先と同じく、サブジェクトドメインの広範囲にわたる知識を有することをユーザに求める。他の有意な欠点は、また、能率性の欠如にある：ｉ）制御フローに基づくアプローチは、プログラマーの両肩に並行処理タスクを置き；ｉｉ）それは、柔軟性がなく、ビッグデータ及びリンクト・データに対するデータ処理の柔軟な且つ伸張性のある要件に逆らう。
【発明の概要】
【０００５】
実施形態は、相互接続されたリソースを表すデータグラフを記憶するよう構成され、前記データグラフは、複数のデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、データ記憶装置と、複数のプロセッサインスタンスを記憶するよう構成され、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、前記入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、前記入力に対して前記特定されたプロセスを実行することによって、前記出力範囲に入るデータ項目を含む出力を生成するよう構成される、動的データフローコントローラとを有し、前記動的データフローコントローラは、前記記憶されたプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、該データ変更イベントに関与する前記データ項目を前記記憶されたプロセッサインスタンスのうちの当該１つへ前記入力として供給するよう更に構成され、前記動的データフローコントローラは、前記トリガされたプロセッサインスタンスによる前記出力の生成に続いて、該出力に含まれるデータ項目を、該出力に含まれるデータ項目をカバーする入力範囲を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するよう更に構成される。
【０００６】
有利なことには、実施形態は、リンクされた機能間のデータフローを確立するために、データストア内のデータ項目に対して作用する機能（プロセッサインスタンス）をリンクするメカニズムを提供する。入力及び出力の特定によって、動的データフローコントローラは、プロセッサインスタンスの出力が他のプロセッサインスタンスの入力として供給され得る場合を確立することを可能にされるので、データフローは、ユーザによってシステムに明示的に示される必要がない。出力は、次のプロセッサインスタンスに直接に供給される。すなわち、出力は、データグラフ及び次のプロセッサインスタンスの両方へ供給され、それにより、次のプロセッサインスタンスは、トリガされる前に出力がデータグラフに書き戻されるのを待たない。
【０００７】
データグラフは、クラス定義とともに、定義されたクラスのインスタンス化を有し、従って、オントロジーを含むと見なされ得る。
【０００８】
データ項目は、トリプル又は具体的にＲＤＦトリプルであってよい。トリプルは、３つの要素、この場合に、サブジェクト、プレディケート、及びオブジェクトの夫々についての値を有するデータ項目である。任意に、データ項目は、３つよりも多い要素についての値を有してよいが、それら３つの要素、サブジェクト、プレディケート、及びオブジェクトの夫々についての値を少なくとも含む。
【０００９】
サブジェクトリソース及びオブジェクトリソースの識別子は、記憶場所にリンクしたＵＲＩであってよい。記憶場所は、データ記憶装置にあってよく、あるいは、データ記憶装置の外にあってよい。リソースは、サブジェクトとしてリソースの識別子を有するデータ項目によって明示的に表されてよい。代替的に、リソースは、サブジェクトとしてリソースの識別子を有するデータ項目とともに、それらのデータ項目のサブジェクトによって示されたＵＲＩに位置する更なるデータによって、表されてよい。
【００１０】
プロセッサインスタンスは、ＲＤＦステートメントによって特定されてよい。ＲＤＦステートメントは、ユーザインターフェイスを介してユーザによって入力されてよい。例えば、プロセッサタイプは、ＲＤＦステートメントによって特定されてよい。これは、プロセッサが、動的データフローコントローラが利用可能な所定のプロセッサタイプ（又はクラス）の組に基づき確立されることを可能にしてよい。出力範囲及び入力範囲もＲＤＦステートメントによって特定されてよい。例えば、それは、入力及び出力がいずれもＲＤＦクラスによって定義され、夫々が特定の入力範囲によってインスタンス化されることであってよい。プロセッサインスタンスに必要とされる入力範囲を有するインスタンスは、次いで、プロセッサインスタンスの入力として特定されてよい。出力範囲は、特定された入力及び特定されたプロセスに基づきとり得る出力範囲を決定することによって動的データフローコントローラによって自動的に決定されてよい。特定されたプロセスは、１つ以上の入力データ項目に基づき１つ以上の出力データ項目が生成されるようにする処理命令の組又はコードの部分である。データ項目に加えて入力及び出力が存在することが可能である。
【００１１】
プロセッサインスタンスによって特定された入力範囲は、データ項目がプロセッサインスタンスへの入力として受け入れられるよう入るべき値の範囲を定義する。１つ以上の要素（サブジェクト、プレディケート、及びオブジェクトの夫々である要素）についての値又は値の範囲は、値又は値の範囲が特定されない要素が何らかの値をとることができるとの前提により、入力範囲として特定されてよい。入力範囲に入るデータ項目を伴うデータ変更イベントは、プロセッサインスタンスにとって関心を呼び、他の基準（何かが存在するならば）が満足されるまで、それは、データ項目がプロセッサインスタンスへ供給されて、プロセッサインスタンスがトリガされるようにするデータ変更イベントである。斯様な他の基準は、例えば、入力範囲に入るデータ項目が入力として（又は入力の部分として）プロセッサインスタンスへ供給されるために起こるべきデータ変更イベントの特定のタイプ又はカテゴリの特定を含んでよい。
【００１２】
プロセッサインスタンスのための出力の特定は、２つの潜在的な使用を有する。第１に、プロセッサインスタンスによって特定される出力範囲が、データ記憶装置においてデータグラフの部分として記憶されているオントロジー定義と矛盾する場合に、プロセッサインスタンスは変更される必要があるとのアラートが引き起こされ得るので、出力の特定は、バリデーションのための基準となり得る。代替的に、それは、オントロジー定義が拡張及び／又は訂正から恩恵を受けるとのアラートとなり得る。第２に、出力の特定は、動的データフローコントローラが、１つのプロセッサインスタンスの出力が他のプロセッサインスタンスの入力範囲内にある場合を見出すことを可能にする。それら２つのプロセッサインスタンス間のリンクは、次いで、動的データフローコントローラによって保たれる。それにより、実行時に、他のプロセッサインスタンスは、出力をデータグラフに単純に書き戻し、データ変更が検出されて、他のプロセッサインスタンスへ供給されるのを待つことによって引き起こされる遅延なしで、入力として１つのプロセッサインスタンスの出力を供給され得る。
【００１３】
動的データフローコントローラは、出力データ項目を、データグラフへの追加のために、データ記憶装置へ送信するよう構成されてよい。
【００１４】
実施形態のデータ管理装置は、前記データ記憶装置に記憶されており、前記複数のプロセッサインスタンスのうちの１つの前記特定された入力範囲によってカバーされるデータ項目を伴うデータ変更イベントを検出し、該検出されたデータ変更イベントに関与する前記データ項目を前記動的データフローコントローラへ供給するよう構成されるデータ状態変更検出部を更に有してよい。
【００１５】
データ状態変更イベントは、データ変更イベント、データ変換イベント、又はデータ状態変換イベントとも呼ばれ得る。データ状態変更検出部の役割は、データ記憶装置において記憶されているデータグラフの状態を監視し、記憶されているプロセッサインスタンスによって特定される入力範囲に入るデータ項目を伴うデータ変更イベントを動的データフローコントローラに知らせることである。入力範囲は、新しいプロセッサインスタンスの生成において明示的に特定されてよい。代替的に、入力は、入力範囲を定義するユーザからのステートメントによって定義されてよく、入力範囲は、入力範囲に入るデータ項目をモニタし（及び／又はオントロジー定義に従って、入力範囲に入るデータ項目のサブジェクトであり得るクラス内の全てのインスタンスをモニタし）、新しい又は変更されたデータ項目を動的データフローコントローラへ供給するためのデータ状態変更検出部への命令として働く。斯様なステートメントは、入力範囲のためのラベルを定義してよく、プロセッサインスタンスは、定義されたラベルによって、それらの入力範囲を特定してよい。
【００１６】
例えば、新しいオブジェクト値が、入力範囲としてプロセッサインスタンスによって特定されているプレディケートに一致するプレディケート値を有するデータ項目においてデータグラフに加えられる場合に、新しいオブジェクト値（既存の値の変更を介して又は新しいデータ項目の付加によって起こり得る。）は、データ状態変更検出部によって検出され、動的データフローコントローラへ報告されるデータ変更イベントである。
【００１７】
任意に、データ変更イベントは、タイプに特性化されてよく、それにより、各データ変更イベントは、所定のデータ変更イベントタイプの組の中の１つと見なされ、データ状態変更検出部は、検出されたデータ変更イベントに関与するデータ項目を、データ変更イベントタイプの組の中のどの１つが検出されたかのインジケーションとともに動的データフローコントローラへ供給するよう構成される。
【００１８】
詳細に、データ変更イベントタイプは、入力範囲に入るデータ項目における新しいオブジェクト値の訂正若しくは追加；リソースのサブジェクトを伴う局所的な変換、例えば、新しいサブジェクトリソースの生成、既存のサブジェクトリソースの削除、リソースの変更、若しくはサブジェクトリソースの属性の変更；及び／又はデータグラフによって表されるリソース間の相互接続の削除、新しい相互接続の生成、若しくはその属性の変更を含む接続変換、のうちのいくつか又は全てであってよい。
【００１９】
データ状態変更検出部が検出するよう構成される所定の組内のデータ変更イベントタイプも、プロセッサインスタンスによって実行され得るデータ変更を決定し得る限りにおいて、所定のデータ変更イベントタイプの組の定義はプロセッサの機能性においても反映されてよい。
【００２０】
データ変更イベントタイプは、次のように、２つのサブセットにグループ分けされてよい：
・局所的な変換：データ項目（データグラフによって表されるリソース）の削除、生成、その属性の変更
・接続変換：データリンケージ（データグラフによって表されるリソース間の相互接続）の削除、生成、その属性の変更。
有限な数の許容されるデータ変換の定義は、データプロセッサの必要数を大幅に削減し、原子データ処理ユニットの再利用を増やすことができる。それはまた、簡易なインターフェイスを通じた機械による斯様な機能の消費を単純化する。
【００２１】
データ状態変更検出部によって実行される報告及び通知は、多数の方法において実行されてよい。例えば、データ状態変更検出部は、前記データ変更イベントタイプの組の中のどの１つが検出されたかのインジケーションと、前記検出されたデータ変更イベントの時点のインジケーションとを更に含む変更イベントデータ項目として、前記検出されたデータ変更イベントに関与する前記データ項目を前記動的データフローコントローラへ供給するよう構成されてよく、次いで、前記動的データフローコントローラは、前記含まれるデータ項目が前記プロセッサインスタンスのうちの１つ以上へ入力として供給される場合及び／又は前記含まれるデータ項目を前記プロセッサインスタンスのいずれへも供給しないことが前記動的データフローコントローラによって決定される場合に変更イベントデータ項目が除外されるところのキューに前記供給された変更イベントデータ項目を加えるよう構成されてよい。
【００２２】
データ状態変更検出部は、データ記憶装置において記憶されているデータ項目をモニタ／監視するが、それに対して何らの変更も行うことができない。故に、検出されたデータ変更イベントに関与するデータ項目を動的データフローコントローラへ供給することによって、関連するデータ項目のコピーが作られる。データ変更イベントの実施及びタイプに応じて、データ状態変更検出部は、変更の前若しくは後又はその両方でデータ項目を供給するよう構成されてよい。例えば、データ状態変更検出部は、検出されたイベントのタイプが削除イベントである場合に、変更前のデータ項目が供給されるように構成されてよい。更なる例として、検出されたイベントが、データ項目のオブジェクト値の変更（例えば、属性の変更又は新しい属性の生成）を伴うタイプである場合は、変更後のデータ項目が供給される。
【００２３】
キューは、先入れ先出し方式において管理されてよい。なお。より複雑な実施は、例外を伴った先入れ先出しであってよい。例えば、例外は、データ変更イベントがクラスレベルにある（すなわち、オントロジー定義において定義されたクラスのインスタンスによりもむしろオントロジー定義自体に関係がある）場合に、クラスレベルのイベントに関係があるイベントデータ項目は、キューにおいて、いずれかの非クラス（インスタンス）レベルのイベントデータ項目の前に動かされることであってよい。
【００２４】
データ変更イベントのデータ項目のキューを管理することに関与するエンティティ（動的データフローコントローラであるとされる。）は、それらのデータ項目が処理される前に除外し得るデータ変更イベントのいくつかの例がある。例えば、動的データフローコントローラは、意味的に等価なデータ項目を含む前記キュー内の変更イベントデータ項目の対を識別し、該対の一方を、そのデータ項目をプロセッサインスタンスへ供給することなしに、前記キューから除外するよう構成されてよい。
【００２５】
有利なことには、処理時間及び衝突する又は複製された出力は、このようにして回避される。更なる例には、データ生成タイプのイベントの後に、一致するデータ項目のためのデータ削除タイプのイベントが続く場合を識別することがある。その場合に、データ項目は間違って生成されたと考えられてよく、従って、処理は不要である。加えて、データ変更イベントのデータ項目が時間スタンプを付される実施形態では、一致するデータ項目の生成から削除の間の最短時間が定義されてよく、時間スタンプ間の差が最短時間に満たない場合は、両方のデータ変更イベントのデータ項目がキューから除外される。
【００２６】
たとえデータ変更イベントのデータ項目のキュー及びその管理が動的データフローコントローラに帰属するとしても、斯様な機能性は、同様に、データ状態変更検出部に、又は動的データフローコントローラとデータ状態変更検出部との間のインターフェイスにある特定のキュー管理コンポーネントに帰属することができる。
【００２７】
動的データフローコントローラは、単にデータ項目がプロセッサインスタンスによって特定される入力範囲に入るか否かよりも、データ変更イベントのデータ項目をプロセッサインスタンスへ入力として供給することによって、プロセッサインスタンスをトリガすべきかどうかを決定することにおいて追加の基準を適用してよい。例えば、プロセッサインスタンスは、それがトリガされるデータ変更イベントタイプの有限な組を特定してよく、動的データフローコントローラは、従って、特定のプロセッサインスタンスによって特定されるデータ変更イベントタイプの有限な組に含まれる変更タイプの変更イベントデータ項目の中のデータ項目のみを供給してよい。
【００２８】
特定の例において、プロセッサインスタンスの１つ以上は、夫々がデータ変更イベントタイプの組のサブセットを特定し、前記動的データフローコントローラは、前記データ変更イベントタイプの組のサブセットを特定する前記１つ以上のプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントの検出に応答するために、前記検出されたデータ変更イベントが、前記プロセッサインスタンスのうちの当該１つによって特定されるサブセットに含まれるタイプであることが示される場合に、前記データ項目を当該プロセッサインスタンスへ供給することによって当該プロセッサインスタンスをトリガし、前記検出されたデータ変更イベントが、前記プロセッサインスタンスのうちの当該１つによって特定されるサブセットに含まれないタイプであることが示される場合に、前記データ項目が当該プロセッサインスタンスへ供給されないようにするよう構成される。
【００２９】
データ項目がプロセッサインスタンスへ供給されないようにすることは、データ項目を含む入力をプロセッサインスタンスへ単に供給しないことと等価である。
【００３０】
ユーザによる新しいプロセッサインスタンスの追加を容易にするとともに、新しいプロセッサインスタンスを追加することによって課せられる設計時間の負担を減らすために、ジェネリックプロセッサの組は、動的データフローコントローラがアクセス可能な位置に記憶されてよく、前記ジェネリックプロセッサはプロセッサインスタンスによってインスタンス化される。
【００３１】
実施形態は、包括的入力データ項目、包括的出力データ項目、及び処理命令の組を夫々定義するクラスレベルプロセッサエンティティの組を記憶するよう構成されるジェネリックプロセッサと、クラスレベルプロセッサエンティティをインスタンス化する命令を受けるよう構成され、該命令は、前記クラスレベルプロセッサエンティティの組からのクラスレベルプロセッサエンティティの選択と、特定された入力範囲とを含む、プロセッサインスタンス化インターフェイスとを更に有してよい。斯様な場合に、動的データフローコントローラは、前記特定された入力範囲、前記プロセッサインスタンスの前記特定されたプロセスとしての前記選択されたクラスレベルプロセッサエンティティの処理命令の組、及び前記特定された入力範囲に対応する特定された出力範囲をプロセッサインスタンスとして記憶するよう構成されてよい。
【００３２】
プロセッサインスタンス化インターフェイスは、ユーザによる何らかの他の形態におけるステートメント又は命令を受けるメカニズムである。ユーザは、新しいプロセッサインスタンスの生成を可能にする特定の許可を必要としてよく、ユーザ等は、彼らが生成することを許可されているプロセッサインスタンスに関して制限されてよい。各クラスレベルプロセッサエンティティは、利用可能なインスタンス化オプションの範囲をクエリする際に送信又は利用可能にしてよく、それにより、ユーザは、生成されるプロセッサインスタンスを如何にして構成すべきかを決定することができる。
【００３３】
特定された入力範囲に対応する特定された出力範囲は、ユーザによって入力され、プロセッサインスタンス化インターフェイスを介して受け取られてよい。代替的に、動的データフローコントローラは、特定された入力範囲及び処理命令に基づき出力範囲を計算し又は別なふうに論理的に決定するよう構成されてよい。例えば、入力範囲が特定のプレディケート値によって定義されるが、他のデータ項目要素は未定義であり、処理命令が、一定のプレディケート値と、入力データ項目のサブジェクト値（未定義である。）と一致するサブジェクト値と、入力データ項目のオブジェクト値（同じく未定義である。）に対して実行された処理演算によって計算されたオブジェクト値とを持った出力データ項目を生成する場合に、出力範囲は、出力データ項目の一定のプレディケート値によって定義され、サブジェクト値及びオブジェクト値は、未定義であることが動的データフローコントローラによって論理的に決定され得る。
【００３４】
入力範囲を特定することによってクラスレベルプロセッサエンティティをインスタンス化することに加えて、プロセッサインスタンスによって実行される処理命令は、複数のオプションから特定され又は別なふうに制限され得てもよい。例えば、選択されたクラスレベルプロセッサエンティティについて定義された処理命令の組は、それらが実行させるプロセスに関して設定可能であってよく、受けられた命令は、如何にして前記処理命令の組がプロセッサインスタンスにおいて構成されるかを定義する１つ以上の設定命令を含む。
【００３５】
簡単な例として、クラスレベルプロセッサエンティティは、出力データ項目のオブジェクト値を生成するために、入力データ項目の数値のオブジェクト値に定数を乗じるよう構成された乗算器であってよく、前記定数はユーザの命令下のインスタンス化で設定可能である。他の例として、プロセッサは、特定のプレディケート値を持った全てのデータ項目を入力として受け入れ（それらのデータ項目のいずれか１つが変更されるか、又は新しいデータ項目が生成される場合はいつでも）、オブジェクト値の数値の昇順に従って並べられる場合に一番上のｘのリストを出力するよう構成されてよく、ｘはユーザの命令下のインスタンス化で設定可能である。斯様な設定可能な処理ステップは、代替案が提供されない場合にインスタンス化で実施されるデフォルト値を有することがあってよい。
【００３６】
プロセッサインスタンス化インターフェイスは、ユーザによって特定の位置に記憶されているか又はダイアログボックスを介して入力されたＲＤＦステートメントを受けるよう構成されてよい。代替的に、プロセッサインスタンス化インターフェイスは、グラフィカルユーザインターフェイスであってよく、前記記憶されたデータグラフの少なくとも一部と、該記憶されたデータグラフの前記一部を符号化する如何なるデータの項目もカバーする入力範囲を持った前記記憶されたプロセッサインスタンスの少なくとも一部との仮想表現を有し、新しいプロセッサインスタンスの処理及び／又は入力範囲が前記仮想表現からの選択によって特定されることを可能にする。
【００３７】
有利なことには、記憶されたデータグラフの一部の視覚表現及び記憶されたプロセッサインスタンスの視覚表現は、ユーザがデータグラフの視覚化された部分について既に存在する処理演算を即座に認識することを可能にする。グラフィカルユーザインターフェイスは、ユーザが、新しいプロセッサインスタンスの入力範囲内にあるグラフエンティティを識別することによって、入力範囲を選択することを可能にする。ユーザは、入力範囲がどれくらい広い又は狭いべきかに関してオプションを与えられてよい。既存のプロセッサインスタンスは、コピー及び変更されてよく、新しいプロセッサインスタンスの入力／出力は、グラフィカルユーザインターフェイスを介してデータフローを生成するために、既存のプロセッサインスタンスの入力／出力を選択することによって特定されてよい。
【００３８】
入力範囲が特定され得るか方法の特定の例として、プロセッサインスタンスによって特定される入力範囲は、プレディケートについての値範囲によって及び／又はサブジェクトについての値範囲によって特定され、データ項目は、前記特定されたプレディケートの値範囲に入るプレディケート値及び／又は前記サブジェクトの値範囲に入るサブジェクト値を有することによって、前記入力範囲に入ると見なされる。
【００３９】
この特定の例において、プレディケートについての値範囲は定義され、サブジェクト及びオブジェクトについての値範囲は未定義である。Ｐ１が特定のプレディケート値である場合に、入力範囲は、＜？Ｓ  Ｐ１  ？Ｏ＞の形によって表現されてよい。このとき、？は、それに続く要素（Ｓはサブジェクト、Ｏはオブジェクト）についてのワイルドカード又は未定義の値を示す。
【００４０】
同様に、プロセッサインスタンスによって特定される出力範囲は、プレディケートについての値範囲によって及び／又はサブジェクトについての値範囲によって特定され、データ項目は、前記特定されたプレディケートの値範囲に入るプレディケート値及び／又は前記サブジェクトの値範囲に入るサブジェクト値を有することによって、前記出力範囲に入ると見なされる。
【００４１】
従属性のネットワークは、記憶されたデータグラフと、記憶されたデータグラフから入力を受け入れ且つ該記憶されたデータグラフに出力を書き込むプロセッサインスタンスとの間のリンク又は相互接続によって生成される。従属リンクは、プロセッサインスタンスと、該プロセッサインスタンスの入力範囲内のデータ項目（又はデータ項目のサブジェクト）との間、プロセッサインスタンスと、該プロセッサインスタンスによってデータグラフに出力されたデータ項目（又はデータ項目のサブジェクト）との間、及びプロセッサインスタンスの対の一方の出力範囲が当該対の他方の入力範囲内にあるプロセッサインスタンスの対の間に存在すると考えられてよい。
【００４２】
斯様な従属性のネットワークは、明示的に保持されてよい。そうするためのメカニズムとして、的データフローコントローラは、従属グラフを更に有してよく、該従属グラフにおいて、プロセッサインスタンスの夫々はプロセッサノードによって表され、各プロセッサインスタンスについて、当該プロセッサインスタンスについて特定された入力範囲によってカバーされるデータ項目のサブジェクトリソースであるデータ記憶装置によって記憶されたデータグラフ内の各リソースは、入力として当該プロセッサインスタンスを表すプロセッサノードへ接続されたリソースノードによって表されるとともに、当該プロセッサインスタンスについて特定された出力範囲によってカバーされるデータ項目のサブジェクトリソースであるデータ記憶装置によって記憶されたデータグラフ内の各リソースは、出力として当該プロセッサインスタンスを表すプロセッサノードへ接続されたリソースノードによって表される。
【００４３】
有利なことには、従属グラフは記憶されたデータグラフと動的データフローコントローラによって記憶されているプロセッサインスタンスとの間のデータのフロー及びデータ従属性の記録を保持する。既存のアルゴリズムは、プロセッサインスタンス（関数）及び記憶されたデータ項目（リソース）の間の周期を検出するために適用されてよく、斯様な周期的な従属性は、ユーザ（例えば、アドミニストレータ）に警告され、訂正／修正され得る。斯様なアルゴリズムには、Ｏ（Ｖ＋Ｅ）の複雑さを持ったタージャンのアルゴリズムがあり、このアルゴリズムでは、ジェネリックグラフを記述することにおいて、Ｖは頂点又はノードの組であり、Ｅはエッジ又はアークの組である。
【００４４】
本発明の他の態様の実施形態は、データ管理方法を含み、当該データ管理方法は、
相互接続されたリソースを表すデータグラフを記憶するステップであって、前記データグラフは、複数のデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、ステップと、
複数のプロセッサインスタンスを記憶するステップであって、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、前記入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、前記入力に対して前記特定されたプロセスを実行することによって、前記出力範囲に入るデータ項目を含む出力を生成するよう構成される、ステップと、
前記記憶されたプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、該データ変更イベントに関与する前記データ項目を前記記憶されたプロセッサインスタンスのうちの当該１つへ前記入力として供給するステップと、
前記トリガされたプロセッサインスタンスによる前記出力の生成に続いて、該出力に含まれるデータ項目を、該出力に含まれるデータ項目をカバーする入力範囲を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するステップ
とを有する。
【００４５】
例となる実施形態として、データ管理装置は、
相互接続されたリソースを表すデータグラフを記憶するよう構成され、前記データグラフは、複数のデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、データ記憶装置と、
複数のプロセッサインスタンスを記憶するよう構成され、各プロセッサインスタンスは、入力プレディケート値、プロセス、及び出力プレディケート値を特定し、各プロセッサインスタンスは、前記特定された入力プレディケート値を有するデータ項目を含む入力の供給によってトリガされる場合に、前記入力されたデータ項目に対して前記特定されたプロセスを実行することによって、前記特定された出力プレディケート値を有するデータ項目を出力データ項目として含む出力を生成するよう構成される、動的データフローコントローラと、
前記複数のプロセッサインスタンスの中のあるプロセッサインスタンスによって特定される前記入力プレディケート値と一致するプレディケート値を有するデータ項目において、新しいオブジェクト値がデータグラフに加えられる場合を検出し、該新しいオブジェクト値を有するデータ項目を前記動的データフローコントローラへ報告するよう構成されるデータ状態変更検出部
とを有し、
前記動的データフローコントローラは、前記新しいオブジェクト値を有するデータ項目の報告に応答するために、該報告されたデータ項目のプレディケート値と一致する入力プレディケート値を特定する当該プロセッサインスタンス又は各プロセッサインスタンスへの入力として前記報告されたデータ項目を供給するよう更に構成され、
前記動的データフローコントローラは、前記トリガされたプロセッサインスタンスによる出力データ項目の生成に続いて、該出力データ項目を、該出力データ項目のプレディケート値と一致する入力プレディケート値を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するよう更に構成される。
【００４６】
任意に、前記複数のプロセッサインスタンスは、１つよりも多い入力プレディケート値及び／又は１つ以上の出力プレディケート値を特定するプロセッサインスタンスを含み、該プロセッサインスタンスは、前記１つよりも多い入力プレディケート値のうちの１つを有するデータ項目、前記１つよりも多い入力プレディケート値の中の所定の複数個を有する複数のデータ項目、又は前記特定された入力プレディケート値の夫々を有する複数のデータ項目を有する入力の供給によってトリガされる場合に、前記１つよりも多い特定された出力プレディケート値のうちの１つを有するデータ項目、前記１つよりも多い特定された出力プレディケート値の中の所定の複数個を有する複数のデータ項目、又は前記特定された出力プレディケート値の夫々を有する複数のデータ項目を出力として生成するよう構成される。
【００４７】
他の態様の実施形態は、コンピュータ装置によって実行される場合に、該コンピュータ装置を、発明の実施形態として先に定義されたコンピュータ装置として機能させるコンピュータプログラムを含む。
【００４８】
他の態様の実施形態は、コンピュータ装置によって実行される場合に、該コンピュータ装置に、発明の実施形態として先に又は本明細書において別なところで定義された方法を実行させるコンピュータプログラムを含む。
【００４９】
更には、本発明の実施形態は、複数の相互接続されたコンピュータデバイスによって実行される場合に、該複数の相互接続されたコンピュータデバイスに、本発明を具現する方法を実行させるコンピュータプログラム又はコンピュータプログラムの組を含む。
【００５０】
本発明の実施形態は、複数の相互接続されたコンピュータデバイスによって実行される場合に、該複数の相互接続されたコンピュータデバイスを、発明の実施形態として先に又は本明細書において別なところで定義されたコンピュータ装置として機能させるコンピュータプログラム又はコンピュータプログラムの組を更に含む。
【００５１】
本発明の好ましい特徴は、単に一例として、添付の図面を参照して、これより記載される。
【図面の簡単な説明】
【００５２】
【図１】実施形態のデータ管理装置の略図である。
【図２】他の実施形態のデータ管理装置の略図である。
【図３】他の実施形態のデータ管理装置の略図である。
【図４】図３のデータ管理装置の変形例を表し、例となる方法ステップにより注釈を付されている。
【図５】例となるプロセッサインスタンスの機能性を表す。
【図６】データフローを形成するようリンクされている２つの例となるプロセッサインスタンスの機能性を表す。
【図７】プロセッサインスタンスとデータグラフとの間の従属性を表す。
【図８】実施形態のハードウェア構成を表す。
【発明を実施するための形態】
【００５３】
図１は、本発明を具現するデータ管理装置１０を表す。データ管理装置１０は、データ記憶装置１２と、動的データフローコントローラ１４とを有する。図１におけるデータ管理装置は、機能コンポーネントに関して表されている。ハードウェアコンポーネントに関しては、データ管理装置１０は、データ記憶装置、プロセッサ、及びメモリを有すると考えられてよい。このとき、データ記憶装置１２は、データ記憶装置を含むハードウェアを介して実現され得る。動的データフローコントローラ１４は、（プロセッサインスタンスを記憶するための）データ記憶装置、（処理命令を実行するための）プロセッサ、及び（処理命令の実行中のデータの記憶のための）メモリを含むハードウェアを介して実現され得る。
【００５４】
データ管理装置１０は、データを記憶し、処理命令を実行して、記憶されているデータの状態を変更するよう構成される。従って、データ管理装置１０によって実行される管理は、少なくとも記憶及び変更を含む。
【００５５】
データ記憶装置１２は、データを記憶し、インターフェイスを提供し、それによって、リード及びライトアクセスがデータに対してなされることを可能にするよう構成される。具体的に、データ記憶装置１２は、相互接続されたリソースを表すデータグラフを記憶するよう構成され、データグラフは、この特定の例ではトリプルである複数のデータ項目として符号化され、各トリプルは、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずかの識別子であるオブジェクト、及びサブジェクトとオブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する。トリプルはＲＤＦトリプル（すなわち、リソース記述フォーマットパラダイムに従う。）であってよく、従って、データ記憶装置１２はＲＤＦデータストアであってよい。データ記憶装置１２は、単一のデータ記憶ユニットであってよく、あるいは、記憶されたグラフの（場合により重なり合う又は複製された）部分、すなわち、より具体的には、記憶されたグラフのその部分を符号化するトリプルを夫々記憶する複数の相互接続された個別的なデータ記憶ユニットを有する装置であってよい。データ記憶装置１２を構成するデータ記憶ユニットの数に関わらず、データグラフは、動的データフローコントローラ１４及び任意に他のユーザが単一のインターフェイス又はポータルを介してアクセス可能である。この文脈における及び本明細書の文脈におけるユーザは、概して、コンピュータ（データ記憶装置１２の一部又は全部を実現するハードウェアを提供し得る、又はネットワーク上でそれに接続可能であり得るコンピュータ）を介してデータ記憶装置１２と対話する人間のユーザであってよく、あるいは、データ管理装置１０の一部又は全部と同じコンピュータにおいてホスティングされている又はネットワーク（例えば、インターネット）上でデータ管理装置１０に接続可能であるアプリケーションであってよい。そのようなアプリケーションは、機械及び／又は人間のユーザの制御下にある。
【００５６】
データ記憶装置１２は、ＲＤＦストアと呼ばれてよい。動的データフローコントローラ１４は、動的データフローエンジンと呼ばれてよい。
【００５７】
トリプルは、グラフデータを複数のサブジェクト−プレディケート−オブジェクト表現と見なすことによってグラフデータの符号化を提供する。それに関して、サブジェクト及びオブジェクトはグラフデータのグラフノードであり、そのようなものとして、エンティティ、対象物、インスタンス、又は概念であり、プレディケートは、サブジェクトとオブジェクトとの間の関係の表現である。プレディケートは、オブジェクトへの特定のタイプのリンクを提供することによって、サブジェクトに関する何らかのものをアサートする。例えば、サブジェクトはウェブリソース（例えば、ＵＲＩを介する）を表してよく、プレディケートはリソースの特定の特性、特徴、又は側面を表し、オブジェクトはその特性、特徴、又は側面のインスタンスを表す。すなわち、トリプルステートメントの一群は、有向グラフデータを本質的に表現する。ＲＤＦスタンダードは、そのようなトリプルのための様式化された構造を提供する。
【００５８】
リソース記述フレームワークは、セマンティックネットワークのためのスタンダードである情報の概念記述又はモデリングのための一般法である。セマンティックネットワークにおける情報のモデリングを標準化することは、共通のセマンティックネットワークで動作するアプリケーション間の相互運用を可能にする。ＲＤＦは、ＲＤＦにおいて語彙を記述する言語としてＲＤＦスキーマ（ＲＤＦＳ）を提供することによって、一義的な形式的意味とともに語彙を保持する。
【００５９】
任意に、トリプルの要素（要素はプレディケート、オブジェクト、又はサブジェクトである。）の１つ以上の夫々は、統一資源識別子（ＵＲＩ）である。ＲＤＦ及び他のトリプル形式は、例えばＵＲＩのようなウェブ識別子を用いてモノ（すなわち、対象物、リソース又はインスタンス）を識別し、それらの識別された‘モノ’を、簡単なプロパティ及びプロパティ値に関して記述するという概念において、前提とされる。トリプルに関して、サブジェクトは、エンティティを記述するウェブリソースを識別するＵＲＩであってよく、プレディケートは、プロパティのタイプ（例えば、色）を識別するＵＲＩであってよく、オブジェクトは、そのウェブリソースのインカーネーションにおいて、問題となっているエンティティに帰属するそのプロパティのタイプの特定のインスタンスを識別するＵＲＩであってよい。ＵＲＩの使用は、トリプルが、リソースに関する簡単なステートメントを、リソース並びにそれらの夫々のプロパティ及び値を表すノード及びアークのグラフとして、表現することを可能にする。ＲＤＦグラフは、ＳＰＡＲＱＬプロトコル及びＲＤＦクエリ言語（ＳＰＡＲＱＬ）を用いてクエリされ得る。それは、ワールド・ワイド・ウェブ・コンソーシアムのＲＤＦデータアクセス作業グループ（ＤＡＷＧ）によって標準化されており、重要なセマンティック・ウェブ技術と考えられている。
【００６０】
データ記憶装置１２と動的データフローコントローラ１４との間の矢印は、２つの間のデータの交換を示す。動的データフローコントローラ１４は、プロセッサインスタンスの実行を記憶及びトリガする。プロセッサインスタンスは、データ記憶装置１２から入力としてトリプルをとり、出力トリプルを生成する。出力トリプルは、次いで、データ記憶装置１２に書き戻される。
【００６１】
動的データフローコントローラ１４は、複数のプロセッサインスタンスを記憶するよう構成され、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、入力範囲に入るトリプルを含む入力の供給によってトリガされる場合に、特定されたプロセスを入力に対して実行することによって、出力範囲に入るトリプルを含む出力を生成するよう構成される。プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を明示的に、又は別なところで定義される指定されたエンティティを参照して、特定してよい。例えば、入力範囲は、動的データフローコントローラ１４によって（又は、例えば、データ状態変換検出部１６のような、データ管理装置１０の何らかの他のコンポーネントによって）記憶されているＲＤＦステートメントにおいて定義され、ラベルを与えられてよい。プロセッサインスタンスは、入力範囲を明示的に定義するのではなく、単にラベルを提示してよく、出力範囲は、同様にして特定されてよい。プロセスは、明示的に、例えば、処理コード又は擬似コードとして、記憶されてよく、あるいは、別なところに（例えば、ジェネリックプロセッサレポジトリ１８によって）記憶されているコード又は擬似コードのラベル付きブロックへの参照が特定されてよい。
【００６２】
プロセッサインスタンスによって特定されるプロセスの実際の実行は、プロセッサインスタンス自体に、動的データフローコントローラ１４に、又はデータを処理する実際のハードウェアプロセッサに帰属してよく、あるいは、何らかの他のコンポーネント又はコンポーネントの組み合わせに帰属してよい。
【００６３】
プロセッサインスタンスは、特定された入力範囲に入るトリプルを対象としてデータ変更イベントが起こることに応答して、動的データフローコントローラ１４によってトリガされる（実行されるよう引き起こされる）。動的データフローコントローラ１４は、記憶されているプロセッサインスタンスのうちの１つの入力範囲に入るトリプルを対象とするデータ変更イベントに応答するために、そのデータ変更イベントに関与するトリプルを、記憶されているプロセッサインスタンスのうちの当該１つへの入力（の全部又は部分）として供給するよう構成される。プロセッサインスタンスの入力範囲に入るトリプルを対象としてデータ変更イベントが起こったことを通知されることに応答して動的データフローコントローラ１４によって追随される実際のプロシージャは、データ変更イベントに関与するトリプル（及び必要に応じて他の入力）とともに、プロセッサインスタンス又はその識別を処理キューに加えることであってよい。そのようにして、動的データフローコントローラ１４は、入力を供給することによってプロセッサインスタンスをトリガする。データ変更イベントは、動的データフローコントローラ１４の外で（例えば、ユーザがデータ記憶装置１２に作用することによって、又は例えばリコンシリエーションのようなデータグラフの内部の何らかのプロセスによって）起こってよく、あるいは、動的データフローコントローラ１４によってトリガされたプロセッサインスタンスの直接の結果であってよい。
【００６４】
プロセッサインスタンスの出力に含まれる如何なるトリプルも、実行されると、（例えば、書き込みキューに加えることによって）データグラフに書き戻される。加えて、動的データフローコントローラ１４は、実行されたプロセッサインスタンスの出力が他のプロセッサインスタンスの実行をトリガする場合を認識し、そのような場合に出力を直接に他のプロセッサインスタンスへ供給して、データフローを形成するよう構成される。すなわち、動的データフローコントローラ１４は、トリガされたプロセッサインスタンスによる出力の生成の後、出力に含まれるトリプルを、該出力に含まれるトリプルをカバーする入力範囲を特定する複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの入力として供給するよう構成される。認識は、プロセッサインスタンスごとに特定されている入力範囲及び出力範囲の周期的な又はイベント（その文脈におけるイベントは、例えば、新しいプロセッサインスタンスの追加である。）に基づく比較によって起こってよい。１つのプロセッサインスタンスの出力範囲と他のプロセッサインスタンスの入力範囲との間に部分的な重なり合いがある場合に、動的データフローコントローラ１４は、それら２つのプロセッサインスタンスがリンクされるとのインジケーションを記憶するとともに、実行ごとに、特定の出力が入力範囲に入るか否かを決定するよう構成される。
【００６５】
図２は、データ管理装置１０の略図である。図１及び図２に共通するコンポーネントの記載は、特に明記しない限り、両方のコンポーネントについて同じであるとされる。
【００６６】
図２の実施形態において、データ管理装置１０は、データ状態変更検出部１６を更に有する。データ状態変更検出部１６は、動的データフローコントローラ１４に記憶されているプロセッサインスタンスの入力範囲に含まれる（これは、入力範囲に入る、又はそれによってカバーされる、と呼ばれる。）トリプルを対象とするデータ変更イベントを検出するために、データ記憶装置１２に記憶されているデータ（トリプル）をモニタ又は監視するよう構成される。データ状態変更検出部１６は、如何なるそのようなデータ変更イベントも検出すると、動的データフローコントローラ１４に、少なくとも、データ変更イベントに関与するトリプル、更には、いくつかの実施では、検出されたデータ変更イベントの時間スタンプ（若しくは検出の時間スタンプ）、及び／又は検出されたデータ変更イベントのタイプのインジケーションを通知するよう構成される。
【００６７】
データ状態変更検出部１６は、データ状態変換モニタとも呼ばれてよい。
【００６８】
トリプルを対象とするデータ変更イベントは、トリプルが生成されること、トリプルのオブジェクト値が変更されること、又はトリプルの他の値が変更されることを含んでよい。トリプルが生成されることは、新しいサブジェクトリソースがデータグラフにおいて表現される結果としてであってよく、あるいは、それは、データグラフにおいて既に存在するサブジェクトリソースに新しい相互接続が加えられる結果としてであってよい。更には、データ変更イベントは、トリプルのサブジェクトリソースが除外される結果として、又はトリプルによって表される特定の相互接続が除外される結果として、データグラフからのトリプルの除外／削除を含んでよい。更には、クラスインスタンスレベルでの（すなわち、クラスのインスタンスのプロパティを表す）トリプルは、クラスレベルの生成、変更又は削除の結果として、生成、変更又は削除されてよい。そのような場合に、データ状態変更検出部１６は、クラスレベルの生成／変更／削除、及び変更されたクラスのインスタンスで起こる生成／変更／削除イベントの両方を検出（し、動的データフローコントローラ１４に報告）するよう構成される。この段落において記載されるイベントの夫々は、それらが実際の個々のイベントではなくむしろ、それらの個々のイベントがとり得る一般的な形に言及するので、イベントのタイプであると考えられてよい。
【００６９】
一例として、クラスのオントロジー定義は、特定のラベル（プレディケート値）を持った新しい（最初にヌル又はゼロの）プロパティを含むよう変更されてよい。クラスのオントロジー定義が、プレディケート値として新しいラベルを持った新しいトリプルの追加によって変更されると、同じものがクラスの各インスタンスに加えられる。
【００７０】
データ状態変更検出部１６は、データ記憶装置１２及び動的データフローコントローラ１４とは別のエンティティとして表されている。データ記憶装置１２で実行されるコードとして実際には実施され得ることは、データ状態変更検出部１６によって実行される関数の性質である。代替的に、又は追加的に、データ状態変更検出部１６は、それ自体はデータ記憶装置１２として動作しないが、それに接続可能であって、読み出しアクセスを行うことを許可されているコントローラ又は他のコンピュータ若しくは装置で実行されるコードを含んでよい。データ状態変更検出部１６が実現される正確な様態は、検出部１６自体のみならずデータ記憶装置１２の実施詳細に依存する。例えば、データ記憶装置１２は、それ自体がデータ変更イベントのシステムログを保持してよく、それにより、データ状態変更検出部１６の機能性は、特定された入力範囲に入るトリプルでのイベントについてのシステムログをクエリすることである。代替的に、データ状態変更検出部１６自体が、データ変更イベントを検出するために、データグラフの状態のスナップショットを（全体として又は部分ごとに）コンパイルし、比較するよう構成されることがあってよい。データ記憶装置１２とデータ状態変更検出部１６との間のクエリ、トリプル及び／又は機能コードの交換は、それら２つのコンポーネントを接続する矢印によって表される。
【００７１】
データ状態変更検出部１６がデータ変更イベントについてモニタしている入力範囲は、ＲＤＦステートメントの形によって定義されてよい。ＲＤＦステートメントは、データ状態変更検出部１６へ直接に、又は動的データフローコントローラ１４を介して、ユーザによって入力されてよい。ステートメントは、データ状態変換検出部（データグラフのどのセクションをモニタすべきかを定義する。）及び動的データフローコントローラ１４（どのプロセッサインスタンスをトリガすべきかを定義する。）の両方によって、又はそれらにおいて、あるいは、それらの一方又は両方がアクセス可能な場所において、記憶されてよい。データ状態変更検出部１６と動的データフローコントローラ１４との間の矢印は、特定の入力範囲をモニタするよう指示する動的データフローコントローラ１４からデータ状態変更検出部１６への命令と、動的データフローコントローラ１４へのデータ状態変更検出部１６によるそのような特定の入力範囲内のトリプルを対象とするデータ変更イベントの報告／通知とを表す。
【００７２】
データ状態変更検出部１６は、データ変更イベントを検出し、それらを動的データフローコントローラ１４に報告するよう構成される。報告の形式は、実施要件に依存し、データ記憶装置１２からの変更された１つ又は複数のトリプルのみであってよい。代替的に、報告は、１つ又は複数のトリプルを変更したデータ変更イベントのタイプのインジケーション及び変更された１つ又は複数のトリプルを含んでよい。報告に含まれ得る更なる任意の詳細は、データ変更イベント自体又はデータ状態変更検出部１６によるその検出（イベント自体の時間スタンプが利用可能でない場合）のいずれかの時間スタンプである。
【００７３】
報告（変更イベントデータ項目と呼ばれ得る。）の何らかのフィルタリングは、それらが動的データフローコントローラ１４へ転送される前にデータ状態変更検出部１６によって、あるいは、報告がキューに保持されており、処理を待っている間に動的データフローコントローラ１４によって、実行されてよい。
【００７４】
フィルタリングは、生成タイプのデータ変更イベントの除外報告を含んでよく、直ぐ後に（閾最長時間内で）、生成タイプのイベントにおいて識別されたデータの削除タイプのデータ変更イベントが続く。
【００７５】
フィルタリングは、データグラフがデータ項目のヒエラルキーを定義するオントロジー定義を含む実施形態において、キューが、そのキュー内の他の報告に含まれる１つ以上の他のリソースより階層的に上位（すなわち、親概念）である報告されたトリプルのサブジェクトとして第１リソース（又は他の概念）を含むデータ変更イベントの報告を含む場合を識別することを更に含んでよい。そのような場合に、階層的に下位のリソース（すなわち、それらのトリプルにおいて識別されるサブジェクトリソースは、第１リソースの子概念である。）を含む報告は、キューから除外される。斯様な除外は、同じタイプのデータ変更イベントに関する報告を条件としてよい。
【００７６】
フィルタリングは、２つの異なった報告において識別されるトリプルが意味的に等価である場合を識別し、それら２つの報告の一方をキューから除外することを更に含んでよい。どの報告を除外すべきかの選択は、報告に含まれる時間スタンプに基づいてよく、例えば、最も古い報告を除外する。
【００７７】
図３は、実施形態のシステムアーキテクチャの略図である。図３並びに図１及び／又は図２に共通するコンポーネントの記載は、特に明記しない限り、各実施形態について同じであるとされる。データ状態変換モニタがデータ変更イベントを検出するよう構成される入力範囲を定義するＲＤＦステートメントは、データ状態変換モニタの外にあるものとして表されている。これは、そのようなステートメントのレジスタが、データ状態変換モニタがアクセス可能な場所に保持されることを示す。実施形態において、その場所は、データ状態変換モニタ内又はその外部にあってよい。
【００７８】
図４は、例となる方法の方法ステップＳ１０１乃至Ｓ１０８により注釈を付された実施形態のシステムアーキテクチャを表す。従って、図３の記載は図４に適用され得る。図３の記載を通して、記載される機能性に対応する図４の方法ステップが参照される。
【００７９】
動的データフローコントローラ１４の例となる形が表されており、特定の機能を持つ２つの機能モジュール、バリデータ１４１及び従属レジストリ１４２を含む。バリデータ１４１は、入出力バリデータ１４１とも呼ばれてよい。従属レジストリ１４２は、従属グラフとも呼ばれてよい。
【００８０】
図３の例では、データ記憶装置１２は、具体的に、ＲＤＦトリプルストアである。ＲＤＦトリプルストアは、データグラフの全てのＲＤＦリソースを記憶する。ＲＤＦトリプルストアは、オントロジー・スキーマ定義（例えば、クラス）及びクラスのインスタンスの両方を含む。
【００８１】
ステートメント１は、例となるクラス定義トリプルを示す：
ステートメント１：
<http://fujitsu.com/2014#Sensor>  rdf:type  rdfs:Class
特定の実施例では、温度センサが、データグラフにおけるリソースによって表現されてよい。クラスSensorについての例となるプレディケート定義は、ステートメント２において示される（３つ全てのトリプルが同じサブジェクトリソースに関係があり、よって、サブジェクトリソースは一度しか記述されない。）：
ステートメント２：
<http://fujitsu.com/2014#has_fahrenheit>
rdf:type  rdf:Property;
rdfs:domain  <http://fujitsu.com/2014#Sensor>;  rdfs:range
rdfs:Literal
クラスSensorのインスタンス化は、センサリソースと呼ばれてよい。例えば、sensor_1は、ステートメント３のトリプルによって記述されてよい：
ステートメント３：
<http://fujitsu.com/2014#Sensor/sensor_1>
<http://fujitsu.com/2014#has_fahrenheit>  70.1
ジェネリックプロセッサレポジトリ１８は、プロセッサインスタンスのクラスレベルのバージョンであるジェネリックプロセッサをホストするよう構成される。ジェネリックプロセッサは、クラスレベルの概念である。動的データフローコントローラ１４においてインスタンス化されるジェネリックプロセッサの記憶は、データストアに処理機能を付加するプロセスに対して拡張及び柔軟性を与える。ジェネリックプロセッサは、ジェネリックプロセッサのインスタンスによって複製され、調整され、場合により拡張されるコア機能を定義する定義されたプロセスである原子プロセスを含む。ジェネリックプロセッサは、単一の入力及び出力（すなわち、1つのトリプル）しか許さなくてよいが、他のジェネリックプロセッサは、複数の入力及び出力を許してよい。入力又は出力の夫々は、包括的なＲＤＦステートメントであって、ジェネリックプロセッサがインスタンス化される場合に１つ以上のトリプル要素（例えば、プレディケート）について特定の値範囲を特定することによって実施されるべきである。動的データフローコントローラ１４での新しいプロセッサインスタンスの生成によるジェネリックプロセッサのインスタンス化は、図４におけるステップＳ１０３によって表される。
【００８２】
原子プロセスは、ある成果を得るための自己完結型の計算タスクである。例えば、華氏の値を摂氏の値へ変換すること、又はセンサの上位１０個のリストをそれらの摂氏値に従って返すこと、がある。プロセッサインスタンスによって実行され得るプロセスは、図５に表されている。
【００８３】
図５の例では、プロセッサインスタンスは、プレディケートがhas_fahrenheitであるトリプルの変更によってトリガされ、そのプロセッサによって特定されるプロセスは、入力されたトリプルのオブジェクト値を等価な摂氏値へ変換し、変換された値をオブジェクトとして、has_celsiusをプレディケートとして、そして、入力されたトリプルと同じサブジェクト（sensor_1）を持ったトリプルを出力することである。
【００８４】
ジェネリックプロセッサにおける出力及び出力は、包括的なＲＤＦステートメントによって定義される。包括的なＲＤＦステートメントは、具象ステートメントがインスタンス化で期待されることをシステムに示す擬似ＲＤＦステートメントである。典型的な包括的ステートメントは：
ステートメント４：
？ｓ  ？ｐ  ？ｏ
であることができる。インスタンス化におけるトリプル要素の１つ以上についての特定の範囲の指定によって実施されるのは、プレースホルダーのみである。
【００８５】
データ状態変更検出部１６は、図１の実施形態に関して記載された。例となるデータ状態変更検出部１６及びその役割は、特定の実施例において、sensor_1及びhas_fahrenheitのプレディケートを伴う。
【００８６】
データ状態変更検出部１６は、３つの目的を果たす。
【００８７】
第１には、ユーザが特定のデータ項目において彼らの関心があるＲＤＦステートメントを登録することを可能にすることである。この関心があるステートメントは、クラス入力のインスタンスを定義し、インスタンスは、プロセッサインスタンスの入力範囲として特定され得る。例えば、ユーザは、温度値を測定し、それらを華氏温度単位でデータグラフにおいて記憶する温度センサに関心を持つことがある。よって、次のＲＤＦステートメントが、データ状態変更検出部１６に登録されてよい：
ステートメント５：
:input1  rdf:type  dataflow:Input
:input1  dataflow:usesPredicate
<http://fujitsu.com/2014#has_fahrenheit>
このように、input1は、dataflow:Inputクラスのインスタンスとして定義され、input1は、プレディケート値がhas_fahrenheitであるトリプルにおいてデータ変更イベントが起きる場合にプロセッサインスタンスをトリガする入力である。図４のステップＳ１０１は、データ状態変更検出部１６での入力を定義するステートメントの登録を表す。このような登録は、ＧＵＩアプリケーションを介して若しくはコマンドラインを介して、又は何らかの他の入力メカニズムであってよい。
【００８８】
第２に、データ状態変更検出部１６は、状態の変化（すなわち、データ変更イベント）を検出するために、リソース“sensor_1”と、input1によって定義された入力範囲に入るトリプルのサブジェクトであるあらゆる他のリソースとにおいてオブザーバを適用するよう構成される。データ状態変更検出部１６は、input1の範囲に入るデータストアに新しいトリプルが加えられる場合（新しいトリプルは、例えば、データ状態変更検出部１６によってモニタされ得るキューを保持する１つ以上の相異なる書き込みプロセスを介して通常は加えられる。）を識別するためにも、オブザーバを適用してよい。データグラフに対してなされたデータ状態変更のデータ状態変更検出部１６による監視は、図４におけるステップＳ１０２によって表される。
【００８９】
第３に、如何なる状態の変化（例えば、オブジェクト値の変更）も検出されると、データ状態変更検出部１６は、その変化を動的データフローコントローラ１４に知らせ、従って、入力範囲に入る変更されたトリプルは、入力範囲としてinput1を特定しているプロセッサインスタンスへ供給される。変化を動的データフローコントローラ１４に知らせることは、図４におけるステップＳ１０５によって表される。
【００９０】
図３の動的データフローコントローラ１４は、動的データフローコントローラ１４によって実行される機能の範囲内にある具体的な機能を実行するよう夫々構成された２つのコンポーネントを含む。２つのコンポーネントは、バリデータ１４１及び従属レジストリ１４２である。各コンポーネントの役割は、図３の例となる動的データフローコントローラ１４の以下の記載において説明される。
【００９１】
動的データフローコントローラ１４は、ジェネリックプロセッサのインスタンスを組み立て、記憶するよう構成され、インスタンスは、入力においてＲＤＦステートメントを処理し、出力において結果を生成する。動的データフローコントローラ１４は、プロセッサインスタンスの入力要件（入力範囲）を満たすデータ変更イベントの通知を受けると、それらのプロセッサインスタンスを実行されるようトリガするよう構成される。プロセッサインスタンスの入力要件を満たすデータ変更イベントの通知に続くプロセッサインスタンスのトリガは、図４におけるステップＳ１０６によって表される。ステップＳ１０７は、処理の実際の実行、すなわち、トリガされたプロセッサインスタンスによって特定されている処理ルールの実行を表す。加えて、動的データフローコントローラ１４は、従属レジストリ１４２を介して従属グラフを保持し、データ変換イベントを処理するための、従って、データフロー処理時にスケーラビリティ及び効率を高めるためのルールを定義する。
【００９２】
上述されたように、ジェネリックプロセッサは、単一の入力及び出力、複数の入力及び出力、又は組み合わせ（すなわち、単一の入力及び複数の出力、若しくはその反対）を有することができる。夫々の入力及び出力は、トリプルの形でデータ状態を夫々記述する１つ以上のＲＤＦステートメントを持っている。入力されるトリプルは、それらが、データ状態変更検出部１６によって検出されたデータ状態変更に関与するか又は他のプロセッサインスタンスによって出力されるトリプルであるから、データ状態の変化に関係がある。例えば、図５に示される変換プロセスを実行するプロセッサインスタンスに関して、入力ステートメントは、データ状態変更検出部１６に前もって登録されたデータフロー入力インスタンス（ステートメント５）を利用する。よって、入力ステートメントは、次（ステートメント６）のように読むことができる：
ステートメント６：
:input1  rdf:type  dataflow:Input
:input1  dataflow:usesPredicate
<http://fujitsu.com/2014#has_fahrenheit>
そして、対応する出力ステートメントは、次のようであってよい：
ステートメント７：
:output1  rdf:type  dataflow:Output
:output1  dataflow:usesPredicate  <http://fujitsu.com/2014#has_celsius>
出力ステートメントは、ユーザによって明示的に定義されてよい。代替的に、出力ステートメントは、入力ステートメントと、プロセッサインスタンスについて定義されている処理ロジックとに基づき、動的データフローコントローラ１４によって自動的に導出されてよい。図５の例並びにステートメント６及び７において、動的データフローコントローラ１４は、プロセッサインスタンスについての処理ロジックをインタロゲートし、プロセッサインスタンスが、プレディケートがhas_celsiusである摂氏値を生成して、出力ステートメント７を組み立てることを識別する。
【００９３】
この例では、入力及び出力の第１ステートメントは、使用されるプレディケート、例えば、has_fahrenheitを定義する。いくつかの実施形態において、動的データフローコントローラ１４は、プレディケートを定義することによって特定されるよう全ての入力及び出力に求めるよう構成されてよい。これは、入来する入力及び出て行く出力ＲＤＦステートメントを如何にして確認するかをシステム実行時にバリデータ１４１に指示する手段を提供する。
【００９４】
図５における全てのオブジェクトはリテラルタイプであるが、それらは他のリソースへの言及であってもよいことに留意されたい。
【００９５】
トリガされたプロセッサインスタンスの出力として生成されたトリプルは、動的データフローコントローラ１４によって伝搬される。伝搬は、出力されたトリプルを、データ記憶装置１２において記憶されているデータグラフに書き込むことを含み、これは、図４におけるステップＳ１０７によって表される。加えて、伝搬は、１つのプロセッサインスタンスの入力が他のプロセッサインスタンスの出力として定義され得るので、プロセッサインスタンス間のリンクを含む。
【００９６】
そのようなプロセッサインスタンス間の伝搬の例は、図６及び図７において示される。図６及び図７の例では、プロセッサインスタンスＰ＿Ｎ１が、ステートメント７によって定義された範囲に入る出力を生成した後、Ｐ＿Ａ１の処理が、次いで、摂氏の出力値に対してトリガされる。すなわち、プロセッサインスタンスＰ＿Ａ１は、その入力が、Ｐ＿Ｎ１の出力として特定される。代替的に、動的データフローコントローラ１４は、入力ステートメントと出力ステートメントとを比較し、１つのプロセッサインスタンスの出力が他のプロセッサインスタンスの入力範囲に入る場合を認識し、２つのプロセッサインスタンス間のリンクを（従属レジストリ１４２において）記憶するよう構成されてよい。よって、sensor_1の摂氏オブジェクトはＰ＿Ａ１の入力であり、出力は、リソースRankingへの参照であるサブジェクトと、top_sensorであるプレディケートと、及びリソースsensor_1への参照であるオブジェクトとを持ったトリプルである。Ｐ＿Ａ１のタスクは、Rankingリソースのために、最も高い摂氏を持っている上位センサの順位リストを再現することである。１つのプロセッサインスタンスの出力が他のプロセッサインスタンスの入力になるリンクは、従属グラフとして従属レジストリ１４２において記憶される。
【００９７】
プロセッサインスタンスは、グラフィカルユーザインターフェイスアプリケーションで視覚的に表現されてよく、ユーザが、記憶されているプロセッサインスタンスの出力から選択することによって、プロセッサインスタンスの入力を特定することを可能にする。任意に、データ記憶装置１２によって記憶されているデータグラフの視覚表現は、プロセッサインスタンスの入力範囲に含めるようデータグラフから入力を選択するために、アプリケーションにアクセス可能であってよい。データフロー（接続／リンクされたプロセッサインスタンス)は、プロセッサインスタンスから入力／出力を追加又は削除することによって、組み立てられ、変更され得る。
【００９８】
実施詳細に応じて、バリデータ１４１は、動作コンポーネントとして必要とされてよい。バリデータ１４１は、プロセッサインスタンスがそのプロセスを正しい入力ステートメントを用いて実行しており、正しい出力ステートメントを生成していることを確かにする。例えば、プロセッサインスタンスが、ステートメント６によって定義された入力範囲及びステートメント７によって定義された出力範囲（更には、ステートメント５によって定義された検出部１６に登録されている関心のあるステートメント）を有する場合に、バリデータ１４１は、第２ステートメントであるトリプル要素の１つについての値の特定が、データ記憶装置１２によって記憶されているデータグラフに含まれるオントロジー定義に従うことを確認するよう構成される。更には、実行時に、バリデータ１４１は、プロセッサインスタンスに供給される入力及び／又はそれによって生成される出力が、プロセッサインスタンスについての特定された入力範囲及び出力範囲に従うことを確認するよう構成される。例えば、プロセッサインスタンスＰ＿Ｎ１は、次のステートメント９を生成する：
ステートメント９：
<http://example.com/sensor_1>  <http://fujitsu.com/2014#has_celsius>
21.1
バリデータ１４１は、出力がステートメント７に従うことを確認すべきである。プロセッサインスタンスの実行の入力及び出力の確認は、図４のステップＳ１０８によって表される。
【００９９】
従属レジストリ１４２は、従属グラフを保持する。従属グラフは、データグラフにおいて表されるプロセッサインスタンス及びリソースがノードによって表現され、相互接続が、プロセッサインスタンスの入力範囲に入るデータグラフリソース又はそのプロパティと、他のプロセッサインスタンスの入力範囲に入るプロセッサインスタンスの出力とを表すグラフを記憶する。この明示的な従属グラフは、このようにして、プロセッサインスタンスによる及び（１つ以上のプロセッサインスタンスを介した）他のデータ項目／リソースによるデータ変更イベントにおける関心のある（ステートメントを介した）登録を表す情報を記憶する。
【０１００】
従属グラフを組み立てるための３つの例となるメカニズムが、これより提示される：
１．直接従属：従属グラフにおける１つのデータ項目（従属グラフにおけるデータ項目は、データグラフにおいて表されるリソース又はプロセッサインスタンスであってよい。）は、従属グラフにおいて自身を他のデータ項目のオブザーバとして登録することができる。これは、事実上、プッシュ−サブスクライブ・メカニズムである。
２．間接従属：１つのデータ項目は、特定のタイプのデータ変更への自身の関心を登録することができる。これは、所与の時点まで特定のタイプの全イベントを照合する＜＊，ｔ，ａ＞、又は意味的にＴｐを包摂している全イベントに関して全てのイベントを照合する＜Ｔｐ，ｔ，ａ＞であることができる。なお、Ｔはトリプルであり、ｔは時間スタンプであり、ａはデータ変更イベントのタイプである。
３．推測従属：従属性は、セマンティックインターフェイス、例えば、owl:same_as又はskos:broader_thanなどに基づき明示され得る。
【０１０１】
従属グラフを更新することは、図４におけるステップＳ１０４によって表される。
【０１０２】
従属グラフは、データ記憶装置１２によって記憶されているデータグラフと同じように記憶され、保持されてよい。従属グラフが相対的に大きくなり得るにつれて（しかし、従属グラフが構築される実際のデータモデルよりもサイズはずっと小さい。）、データモデルにおいて全てのデータ項目について１つの従属グラフを保持することに代わって、データ／リソースに特有の従属グラフが構成され、リソースとともに記憶される。そのような個別的な従属グラフは、次のように構成される：
・データ項目ｄから始まって、特定のデータ変換タイプの逆従属に従って、全てのデータ項目（ｄ０，０，．．．，ｄ０，ｎ），．．．，（ｄｍ，０，．．．，ｄｍ，ｎ）を再帰的にトラバースする。なお、ｄ０は、ｄの直ぐ隣であり、ｄｉ（ｉ＞０）は、ｄのｉ番目の間接的な隣であり、例えば、ｄ１は、従属性に関してｄの隣の隣である。
・間接的に隣にあるｄｋが含まれるべきかどうかは、イベントｅを所与として、ｅ＝ｄｉ−１（ｅ’）であるかどうかに基づき決定される。なお、（０＜ｉ＜ｋ）、及びｄｋ（ｅ’）＝ｅ”、及びｅ”≠０∧ｅ”≠ｅ’。
【０１０３】
データ状態変更検出部１６と動的データフローコントローラ１４との間のインターフェイスにおいて、いくつかのデータ状態変更イベントは、それらが動的データフローコントローラ１４によって処理される前に、キューから除外される。セマンティック・エンハンストルールは、冗長性及び不一致を個別にもたらしながら処理される同じデータ項目に対する多重イベントを減らすために適用される。例となるルールは、次のように定義される：Ｔがトリプルであり、ｔが時間スタンプであり、ａが変換であるとして、イベント＜Ｔ，ｔ，ａ＞を考えると、ｉ＜ｊとしてｅｉ＝＜Ｔｉ，ｔｉ，ａｉ＞及びｅｊ＝＜Ｔｊ，ｔｊ，ａｊ＞について：
１．Ｔｉ⊆Ｔｊ、ａｉ＝ａｊ、ｔｉ＝ｔｊの場合に、ｅｉを除外する。親概念において行われる動作は、高い優先度を与えられるべきであり、子概念の状態変換によって引き起こされるそれらイベントの除外は、有意な情報損失を引き起こすべきでないと考えられる。
２．ａｉ＝削除、ｔｉ≦ｔｊの場合に、ｅｊを除外する。論理的根拠は、不一致を回避することである。
３．Ｔｉ≡Ｔｊ、ａｉ＝ａｊの場合に、ｅｉを除外する。トリプルは、構文的には相違し得るが、意味的に等価であり得ると考えられる（例えば、ＯＷＬ構成概念：owl:same_as又はＳＫＯＳ構成概念による）。意味的に等価なエンティティに対する動作は、１つにコラプスされ得る。
４．ａｉ＝生成、ａｊ＝削除、ｔｊ−ｔｉ≦βの場合に、ｅｊ及びｅｉを除外する。データ状態変更イベントのキューにおいて先を見ることによって、データ項目がごく短期間（βによって規定される。）しか存続しない場合に、両方のイベントが除外され得る。そのような束の間のイベントは、誤り又はアクシデントに起因し得ると考えられる。両方のイベントの除外は、有意な情報損失を引き起こすべきでない。
【０１０４】
選択されたイベントを上記の例となるルールによって除外することによって、システムはその絶対的な一貫性を犠牲にすることに留意されたい。ある程度の情報損失が見込まれる。そのようなデータ／情報損失は、全体の性能を改善する許容範囲に制限され得ると考えられる。ハイ・フィデリティのトランザクション又は結果として生ずる一貫性のために、除外されたイベントは、システムリソースが許す場合に処理される別個のキューにおいてキャッシュされ得る。
【０１０５】
図８は、本発明を具現し且つ実施形態の方法を実施するために使用され得る、例えばデータ管理装置１０のようなコンピュータデバイスのブロック図である。データ記憶装置１２も、図８のハードウェア構成を有してよい。コンピュータデバイスは、コンピュータ演算処理部（ＣＰＵ）９９３と、例えばランダムアクセスメモリ（ＲＡＭ）９９５のようなメモリと、例えばハードディスク９９６のようなストレージとを有する。任意に、コンピュータデバイスは、実施形態の他のそのようなコンピュータデバイスとの通信のためのネットワークインターフェイス９９９を更に有する。例えば、実施形態は、そのようなコンピュータデバイスのネットワークから成ってよい。任意に、コンピュータデバイスは、読出専用メモリ（ＲＯＭ）９９４と、例えばキーボード及びマウスのような１つの以上の入力メカニズム９９８と、例えば１つ以上のモニタのような表示ユニット９９７とを更に有する。コンポーネントは、バス９９２を介して互いに接続可能である。
【０１０６】
ＣＰＵ９９３は、コンピュータデバイスを制御し、演算処理動作を実行するよう構成される。ＲＡＭ９９５は、ＣＰＵ９９３によって読み書きされるデータを記憶する。ストレージユニット９９６は、例えば、不揮発性のストレージユニットであってよく、データを記憶するよう構成される。
【０１０７】
表示ユニット９９７は、コンピュータデバイスによって記憶されているデータの表現を表示し、且つ、ユーザとコンピュータデバイスに記憶されているプログラム及びデータとの間のインタラクションを可能にするカーソル及びダイアログボックス及びスクリーンを表示する。入力メカニズム９９８は、ユーザがデータ及び命令をコンピュータデバイスに入力することを可能にする。
【０１０８】
ネットワークインターフェイス（ネットワークＩ／Ｆ）９９９は、例えばインターネットのようなネットワークへ接続されており、他のそのようなコンピュータデバイスへネットワークを介して接続可能である。ネットワークＩ／Ｆ９９９は、他の装置からのネットワークを介したデータ入出力を制御する。例えばマイクロホン、スピーカ、プリンタ、電源ユニット、ファン、ケース、スキャナ、トラッカーボール、などのような他の周辺デバイスは、コンピュータデバイスに含まれてよい。
【０１０９】
データ管理装置１０は、図８に表されているようなコンピュータデバイスによって実現される機能性として具現されてよい。データ管理装置１０の機能性は、単一のコンピュータデバイスによって、又はネットワーク接続を介して協調的に機能する複数のコンピュータデバイスによって、実現されてよい。実施形態の装置は、図８に示されるハードウェア構成を持ったコンピュータデバイスによって実現されてよい。本発明を具現する方法は、図８に表されているようなコンピュータデバイスにおいて実行されるか、又はそれによって実施されてよい。１つ以上のそのようなコンピュータデバイスは、実施形態のコンピュータプログラムを実行するために使用されてよい。実施形態を具現するか又はそれを実施するために使用されるコンピュータデバイスは、図８に表されているあらゆるコンポーネントを有する必要はなく、それらのコンポーネントの一部から成ってよい。本発明を具現する方法は、ネットワークを介して１つ以上のデータストレージサーバと通信する単一のコンピュータデバイスによって実行されてよい。
【０１１０】
データ管理装置１０は、ストレージユニット９９６に記憶されている処理命令と、処理命令を実行するプロセッサ９９３と、処理命令の実行中に情報オブジェクトを記憶するＲＡＭ９９５とを有してよい。
【０１１１】
データ記憶装置１２は、ストレージユニット９９６に記憶されている処理命令と、処理命令を実行するプロセッサ９９３と、処理命令の実行中に情報オブジェクトを記憶するＲＡＭ９９５とを有してよい。
【０１１２】
動的データフローコントローラ１４は、記憶ユニット９９６に記憶されている処理命令と、処理命令を実行するプロセッサ９９３と、処理命令を実行中に情報オブジェクトを記憶するＲＡＭ９９５とを有してよい。
【０１１３】
データ状態変換検出部１６は、ストレージユニット９９６に記憶されている処理命令と、処理命令を実行するプロセッサ９９３と、処理命令を実行中に情報オブジェクトを記憶するＲＡＭ９９５とを有してよい。
【０１１４】
バリデータ１４１は、ストレージユニット９９６に記憶されている処理命令と、処理命令を実行するプロセッサ９９３と、処理命令を実行中に情報オブジェクトを記憶するＲＡＭ９９５とを有してよい。
【０１１５】
従属レジストリ１４２は、ストレージユニット９９６に記憶されている処理命令と、処理命令を実行するプロセッサ９９３と、処理命令の実行中に情報オブジェクトを記憶するＲＡＭ９９５とを有してよい。
【０１１６】
ジェネリックプロセッサレポジトリ１８は、ストレージユニット９９６に記憶されている処理命令と、処理命令を実行するプロセッサ９９３と、処理命令の実行中に情報オブジェクトを記憶するＲＡＭ９９５とを有してよい。
【０１１７】
上記の態様のいずれにおいても、様々な特徴は、ハードウェアにおいて、又は１つ以上のプロセッサで実行されるソフトウェアモジュールとして、実施されてよい。一態様の特徴は、他の態様のいずれにも適用されてよい。
【０１１８】
本発明は、ここで記載されている方法のいずれかを実行するコンピュータプログラム又はコンピュータプログラムプロダクトと、ここで記載されている方法のいずれかを実行するプログラムを記憶しているコンピュータ可読媒体とを更に提供する。本発明を具現するコンピュータプログラムは、コンピュータ可読媒体において記憶されてよく、あるいは、それは、インターネットのウェブサイトから提供されるダウンロード可能なデータ信号のような信号の形をとってよく、あるいは、それは、如何なる他の形であってもよい。
【０１１９】
上記の実施形態に加えて、以下の付記を開示する。
（付記１）
相互接続されたリソースを表すデータグラフを記憶するよう構成され、前記データグラフは、複数の相互接続されたデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、データ記憶装置と、
複数のプロセッサインスタンスを記憶するよう構成され、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、前記入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、前記入力に対して前記特定されたプロセスを実行することによって、前記出力範囲に入るデータ項目を含む出力を生成するよう構成される、動的データフローコントローラと
を有し、
前記動的データフローコントローラは、前記記憶されたプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、該データ変更イベントに関与する前記データ項目を前記記憶されたプロセッサインスタンスのうちの当該１つへ前記入力として供給するよう更に構成され、
前記動的データフローコントローラは、前記トリガされたプロセッサインスタンスによる前記出力の生成に続いて、該出力に含まれるデータ項目を、該出力に含まれるデータ項目をカバーする入力範囲を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するよう更に構成される、
データ管理装置。
（付記２）
前記データ記憶装置に記憶されており、前記複数のプロセッサインスタンスのうちの１つの前記特定された入力範囲によってカバーされるデータ項目を伴うデータ変更イベントを検出し、該検出されたデータ変更イベントに関与する前記データ項目を前記動的データフローコントローラへ供給するよう構成されるデータ状態変更検出部
を更に有する付記１に記載のデータ管理装置。
（付記３）
前記データ変更イベントは、所定のデータ変更イベントタイプの組の中の１つであり、
前記データ状態変更検出部は、前記データ変更イベントタイプの組の中のどの１つが検出されたかのインジケーションとともに、前記検出されたデータ変更イベントに関与する前記データ項目を前記動的データフローコントローラへ供給するよう構成される、
付記２に記載のデータ管理装置。
（付記４）
前記データ状態変更検出部は、前記データ変更イベントタイプの組の中のどの１つが検出されたかのインジケーションと、前記検出されたデータ変更イベントの時点のインジケーションとを更に含む変更イベントデータ項目として、前記検出されたデータ変更イベントに関与する前記データ項目を前記動的データフローコントローラへ供給するよう構成され、
前記動的データフローコントローラは、前記含まれるデータ項目が前記プロセッサインスタンスのうちの１つ以上へ入力として供給される場合及び／又は前記含まれるデータ項目を前記プロセッサインスタンスのいずれへも供給しないことが前記動的データフローコントローラによって決定される場合に変更イベントデータ項目が除外されるところのキューに前記供給された変更イベントデータ項目を加えるよう構成される、
付記３に記載のデータ管理装置。
（付記５）
前記動的データフローコントローラは、意味的に等価なデータ項目を含む前記キュー内の変更イベントデータ項目の対を識別し、該対の一方を、そのデータ項目をプロセッサインスタンスへ供給することなしに、前記キューから除外するよう構成される、
付記４に記載のデータ管理装置。
（付記６）
前記プロセッサインスタンスの１つ以上は、夫々がデータ変更イベントタイプの組のサブセットを特定し、
前記動的データフローコントローラは、前記データ変更イベントタイプの組のサブセットを特定する前記１つ以上のプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントの検出に応答するために、
前記検出されたデータ変更イベントが、前記プロセッサインスタンスのうちの当該１つによって特定されるサブセットに含まれるタイプであることが示される場合に、前記データ項目を当該プロセッサインスタンスへ供給することによって当該プロセッサインスタンスをトリガし、
前記検出されたデータ変更イベントが、前記プロセッサインスタンスのうちの当該１つによって特定されるサブセットに含まれないタイプであることが示される場合に、前記データ項目が当該プロセッサインスタンスへ供給されないようにする
よう構成される、
付記２に記載のデータ管理装置。
（付記７）
包括的入力データ項目、包括的出力データ項目、及び処理命令の組を夫々定義するクラスレベルプロセッサエンティティの組を記憶するよう構成されるジェネリックプロセッサと、
クラスレベルプロセッサエンティティをインスタンス化する命令を受けるよう構成され、該命令は、前記クラスレベルプロセッサエンティティの組からのクラスレベルプロセッサエンティティの選択と、特定された入力範囲とを含む、プロセッサインスタンス化インターフェイスと
を更に有し、
前記動的データフローコントローラは、前記特定された入力範囲、前記プロセッサインスタンスの前記特定されたプロセスとしての前記選択されたクラスレベルプロセッサエンティティの処理命令の組、及び前記特定された入力範囲に対応する特定された出力範囲をプロセッサインスタンスとして記憶するよう構成される、
付記１に記載のデータ管理装置。
（付記８）
前記選択されたクラスレベルプロセッサエンティティについて定義された前記処理命令の組は、それらが実行させるプロセスに関して設定可能であり、
前記受けられた命令は、如何にして前記処理命令の組が前記プロセッサインスタンスにおいて構成されるかを定義する１つ以上の設定命令を含む、
付記７に記載のデータ管理装置。
（付記９）
前記プロセッサインスタンス化インターフェイスは、グラフィカルユーザインターフェイスであり、前記記憶されたデータグラフの少なくとも一部及び前記記憶されたプロセッサインスタンスの少なくとも一部の仮想表現を有し、新しいプロセッサインスタンスの処理及び／又は入力範囲が前記仮想表現からの選択によって特定されることを可能にする、
付記７に記載のデータ管理装置。
（付記１０）
プロセッサインスタンスによって特定される前記入力範囲は、前記プレディケートについての値範囲によって及び／又は前記サブジェクトについての値範囲によって特定され、データ項目は、前記特定されたプレディケートの値範囲に入るプレディケート値及び／又は前記サブジェクトの値範囲に入るサブジェクト値を有することによって、前記入力範囲に入ると見なされる、
付記１に記載のデータ管理装置。
（付記１１）
前記動的データフローコントローラは、
前記プロセッサインスタンスの夫々がプロセッサノードによって表され、各プロセッサインスタンスについて、当該プロセッサインスタンスについて特定された前記入力範囲によってカバーされるデータ項目の前記サブジェクトリソースである前記データ記憶装置によって記憶された前記データグラフ内の各リソースが、入力として当該プロセッサインスタンスを表す前記プロセッサノードへ接続されたリソースノードによって表され、当該プロセッサインスタンスについて特定された前記出力範囲によってカバーされるデータ項目の前記サブジェクトリソースである前記データ記憶装置によって記憶された前記データグラフ内の各リソースが、出力として当該プロセッサインスタンスを表す前記プロセッサノードへ接続されたリソースノードによって表される従属グラフ
を更に有する、
付記１に記載のデータ管理装置。
（付記１２）
相互接続されたリソースを表すデータグラフを記憶するステップであって、前記データグラフは、複数のデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、ステップと、
複数のプロセッサインスタンスを記憶するステップであって、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、前記入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、前記入力に対して前記特定されたプロセスを実行することによって、前記出力範囲に入るデータ項目を含む出力を生成するよう構成される、ステップと、
前記記憶されたプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、該データ変更イベントに関与する前記データ項目を前記記憶されたプロセッサインスタンスのうちの当該１つへ前記入力として供給するステップと、
前記トリガされたプロセッサインスタンスによる前記出力の生成に続いて、該出力に含まれるデータ項目を、該出力に含まれるデータ項目をカバーする入力範囲を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するステップと
を有するデータ管理方法。
（付記１３）
コンピュータ装置によって実行される場合に、該コンピュータ装置に、
相互接続されたリソースを表すデータグラフを記憶するステップであって、前記データグラフは、複数のデータ項目として符号化され、各データ項目は、サブジェクトリソースの識別子であるサブジェクト、オブジェクトリソース又はリテラル値のいずれかの識別子であるオブジェクト、及び前記サブジェクトと前記オブジェクトとの間の指定された関係であるプレディケートの夫々についての値を有する、ステップと、
複数のプロセッサインスタンスを記憶するステップであって、各プロセッサインスタンスは、入力範囲、プロセス、及び出力範囲を特定し、各プロセッサインスタンスは、前記入力範囲に入るデータ項目を含む入力の供給によってトリガされる場合に、前記入力に対して前記特定されたプロセスを実行することによって、前記出力範囲に入るデータ項目を含む出力を生成するよう構成される、ステップと、
前記記憶されたプロセッサインスタンスのうちの１つの前記入力範囲に入るデータ項目を伴うデータ変更イベントに応答するために、該データ変更イベントに関与する前記データ項目を前記記憶されたプロセッサインスタンスのうちの当該１つへ前記入力として供給するステップと、
前記トリガされたプロセッサインスタンスによる前記出力の生成に続いて、該出力に含まれるデータ項目を、該出力に含まれるデータ項目をカバーする入力範囲を特定する前記複数のプロセッサインスタンスの中のいずれかのプロセッサインスタンスへの前記入力として供給するステップと
を有するデータ管理方法を実行させるコンピュータプログラムを記憶した非一時的な記憶媒体。
【符号の説明】
【０１２０】
１０    データ管理装置
１２    データ記憶装置
１４    動的データフローコントローラ
１６    データ状態変更検出部
１８    ジェネリックプロセッサレポジトリ
９９３  コンピュータ演算処理部（ＣＰＵ）
９９４  ＲＯＭ
９９５  ＲＡＭ
９９６  ストレージ
９９７  表示ユニット
９９８  入力メカニズム
【図１】
2016177788.tif 000003
【図２】
2016177788.tif 000004
【図３】
2016177788.tif 000005
【図４】
2016177788.tif 000006
【図５】
2016177788.tif 000007
【図６】
2016177788.tif 000008
【図７】
2016177788.tif 000009
【図８】
2016177788.tif 000010