(57)【要約】      （修正有）【課題】非概念的データ項目をデータグラフに統合することを自動化する。【解決手段】指定されるトリガイベントの発生に応答して、非概念的データ項目を利用してデータグラフを更新するプロシジャを規定する処理ハンドラを表現するグラフノードは、非概念的データ項目に関連付けて保存される、データストレージシステムと、処理ハンドラに関して指定されるトリガイベントの発生に応答プロシジャを実行する実行モジュールと、プロシジャの実行結果により修正されたグラフ要素を、実行された前記プロシジャを規定する処理ハンドラに帰属する一群の修正のメンバとして記録する修正確認モジュールと、前記処理ハンドラのペアの各々について、処理ハンドラのペアに帰属する一群の修正を分析して一群の修正の間の関係を、グラフノードの間のエッジとして、データグラフに追加することによって、処理ハンドラ同士の間の関係を推論する推論モジュールとを有する。【選択図】図２
2016015124.tif 000002
【特許請求の範囲】
【請求項１】
非概念的データ項目をデータグラフに統合することを自動化するように形成されるコンピュータ装置であって、前記データグラフはグラフノード及びグラフエッジを含むグラフ要素により形成され、前記コンピュータ装置は、
指定されるトリガイベントの発生に応答して、前記非概念的データ項目を利用して前記データグラフを更新するプロシジャを規定する処理ハンドラを、複数の非概念的データ項目の各々に対する前記データグラフのグラフノードとして保存するように形成されるデータストレージシステムであって、前記処理ハンドラを表現する前記グラフノードは非概念的データ項目に関連付けて保存される、データストレージシステムと、
前記処理ハンドラに関して指定されるトリガイベントの発生に応答して、複数の処理ハンドラのうちの処理ハンドラにより規定されるプロシジャを実行するように形成される実行モジュールと、
前記プロシジャの実行結果により修正されるグラフ要素を特定し、特定されたグラフ要素を、実行された前記プロシジャを規定する前記処理ハンドラに帰属する一群の修正のメンバとして記録するように形成される修正確認モジュールと、
実行されるプロシジャを規定する処理ハンドラのペアの各々について、前記処理ハンドラのペアに帰属する一群の修正を分析して一群の修正の間の関係を特定し、特定された関係を、個々の処理ハンドラを表現する前記グラフノードの間のエッジとして、前記データグラフに追加することによって、処理ハンドラ同士の間の関係を推論するように形成される推論モジュールと、
を有するコンピュータ装置。
【請求項２】
前記推論モジュールが推論する処理ハンドラ同士の間の関係が、包含関係を含む、請求項１に記載のコンピュータ装置。
【請求項３】
前記推論モジュールは、所定の一群のルールのうちのルールを、処理ハンドラのペアの各々についての一群の修正に適用し、所定の一群の関係のうちの何れの関係が前記一群の修正の間に存在するかを特定するように形成される、請求項１に記載のコンピュータ装置。
【請求項４】
前記修正確認モジュールは前記処理ハンドラの各々に帰属する一群の修正を保存するように形成され、前記複数の処理ハンドラのうちの処理ハンドラにより規定されるプロシジャが実行され、修正されたグラフ要素が確認されるたびに、前記処理ハンドラに帰属する保存されている一群の修正を、保存されている一群の修正と特定されたグラフ要素との和集合で置換することにより、特定されたグラフ要素が、前記処理ハンドラに帰属する一群の修正のメンバとして記録される、請求項１に記載のコンピュータ装置。
【請求項５】
前記処理ハンドラにより規定されるプロシジャを実行することが、前記プロシジャによりグラフ要素が修正されるたびに、前記処理ハンドラに関連して保存されるログに記録を追加ことを含み、
前記修正確認モジュールは、前記プロシジャを規定する前記処理ハンドラに関連して記録されるログを読み取ることにより、前記プロシジャの実行結果として修正されるグラフ要素を特定するように形成される、請求項１に記載のコンピュータ装置。
【請求項６】
前記修正確認モジュールは、グラフ編集距離アルゴリズムを実行することにより、前記プロシジャの実行結果として修正されるグラフ要素を特定するように形成される、請求項１に記載のコンピュータ装置。
【請求項７】
前記データグラフが概念的データグラフである、請求項１に記載のコンピュータ装置。
【請求項８】
前記概念的データグラフが、オントロジモデリング言語を利用してエンコードされる、請求項７に記載のコンピュータ装置。
【請求項９】
前記非概念的データ項目が、スキーマシステムによりエンコードされる、請求項１に記載のコンピュータ装置。  
【請求項１０】
前記指定されるトリガインベントが、前記データグラフ内で指定されるサブグラフに対する構造的変更、又は、非概念的データ項目に対する変更である、請求項１に記載のコンピュータ装置。
【請求項１１】
前記コンピュータ装置が通信ネットワークを介して接続される複数のサーバであり、各々のサーバは前記データグラフのサブグラフを保存するように形成される、請求項１に記載のコンピュータ装置。
【請求項１２】
前記修正確認モジュールは各々のサーバにおけるコンポーネントモジュールを有し、前記コンポーネントモジュールは、前記プロシジャの実行結果として修正される個々のサーバに保存されるグラフ要素を特定する、請求項１に記載のコンピュータ装置。
【請求項１３】
非概念的データ項目をデータグラフに自動的に統合するための方法であって、前記データグラフはグラフノード及びグラフエッジを含むグラフ要素により形成され、前記方法は、
複数の非概念的データ項目の各々について、指定されるトリガイベントの発生に応答して、前記非概念的データ項目を利用して前記データグラフを更新するプロシジャを規定する処理ハンドラを、前記データグラフのグラフノードとして表現するステップであって、前記処理ハンドラを表現する前記グラフノードは非概念的データ項目に関連付けて保存される、ステップと、
複数の非概念的データ項目の各々について、前記指定されるトリガイベントの発生に応答して、前記処理ハンドラにより規定されるプロシジャを実行するステップと、
複数の非概念的データ項目の各々について、前記プロシジャの実行結果により修正されるグラフ要素を特定し、特定されたグラフ要素を、実行された前記プロシジャを規定する前記処理ハンドラに帰属する一群の修正のメンバとして記録するステップと、
処理ハンドラのペアの各々について、前記一群の修正をそれぞれ分析して一群の修正の間の関係を特定し、特定された関係を、個々の処理ハンドラを表現する前記グラフノードの間のエッジとして、前記データグラフに追加することによって、処理ハンドラ同士の間の関係を推論するステップと、
を有する方法。
【請求項１４】
非概念的データ項目をデータグラフに自動的に統合するための方法をコンピュータ装置に実行させるコンピュータプログラムであって、前記データグラフはグラフノード及びグラフエッジを含むグラフ要素により形成され、前記方法は、
複数の非概念的データ項目の各々について、指定されるトリガイベントの発生に応答して、前記非概念的データ項目を利用して前記データグラフを更新するプロシジャを規定する処理ハンドラを、前記データグラフのグラフノードとして表現するステップであって、前記処理ハンドラを表現する前記グラフノードは非概念的データ項目に関連付けて保存される、ステップと、
複数の非概念的データ項目の各々について、前記指定されるトリガイベントの発生に応答して、前記処理ハンドラにより規定されるプロシジャを実行するステップと、
複数の非概念的データ項目の各々について、前記プロシジャの実行結果により修正されるグラフ要素を特定し、特定されたグラフ要素を、実行された前記プロシジャを規定する前記処理ハンドラに帰属する一群の修正のメンバとして記録するステップと、
処理ハンドラのペアの各々について、前記一群の修正をそれぞれ分析して一群の修正の間の関係を特定し、特定された関係を、個々の処理ハンドラを表現する前記グラフノードの間のエッジとして、前記データグラフに追加することによって、処理ハンドラ同士の間の関係を推論するステップと、
を有する、コンピュータプログラム。
【請求項１５】
コンピュータネットワークを介して接続される複数のサーバとして機能する複数のコンピュータ装置に、非概念的データ項目をデータグラフに自動的に統合するための方法を実行させる一群のコンピュータプログラムであって、前記複数のサーバの各々はデータグラフのサブグラフを保存するように形成され、前記データグラフはグラフノード及びグラフエッジを含むグラフ要素により形成され、前記方法は、
複数の非概念的データ項目の各々について、指定されるトリガイベントの発生に応答して、前記非概念的データ項目を利用して前記データグラフを更新するプロシジャを規定する処理ハンドラを、前記データグラフのグラフノードとして表現するステップであって、前記処理ハンドラを表現する前記グラフノードは非概念的データ項目に関連付けて保存される、ステップと、
複数の非概念的データ項目の各々について、前記指定されるトリガイベントの発生に応答して、前記処理ハンドラにより規定されるプロシジャを実行するステップと、
複数の非概念的データ項目の各々について、前記プロシジャの実行結果により修正されるグラフ要素を特定し、特定されたグラフ要素を、実行された前記プロシジャを規定する前記処理ハンドラに帰属する一群の修正のメンバとして記録するステップと、
処理ハンドラのペアの各々について、前記一群の修正をそれぞれ分析して一群の修正の間の関係を特定し、特定された関係を、個々の処理ハンドラを表現する前記グラフノードの間のエッジとして、前記データグラフに追加することによって、処理ハンドラ同士の間の関係を推論するステップと、
を有する、一群のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施の形態は、データストレージの技術分野に関連し、特に意味論的に有意義な形式でデータを保存すること等に関連する。
【背景技術】
【０００２】
リレーショナルデータベース(relational  database)はデータを行及び列に保存する。それらの行及び列は、データを保存する前に規定される必要があるテーブルを形成する。これらのテーブルに含まれるデータ同士の関係及びテーブルの定義は、スキーマ(schema)と呼ばれる。「リレーショナルデータベース」は「関係データベース」等と言及されてもよい。リレーショナルデータベースは固定されたスキーマを利用する。グラフデータベース(graph  database)は、ノード及びアーク(又は弧)の形式でデータを保存することにより、リレーショナルベースを上回るかなりの改善を示し、この場合において、ノードはエンティティ(entity)又はインスタンス(instance)を表し、アークは任意の2つのノード間についての何らかのタイプの関係を表す。無向グラフ(undirected  graph)では、ノードAからノードBへのアークは、ノードBからノードAへのアークと同じであると考えられる。有向グラフ(directed  graph)では、2つの向きが別個のアークとして取り扱われる。
【０００３】
グラフデータベースは、主に2つのタイプに大別されることが可能な様々なアプリケーションに広く使用される。第1タイプは複雑な知識ベースシステムから形成され、インテリジェントな意志決定支援及び学習のような大規模なクラス記述の集まりを有する(「知識ベースアプリケーション(knowledge-based  system)」と言及される)。第2タイプは、ソーシャルデータ及び/又はビジネスインテリジェンスのようなトランザクションデータに対するグラフ探索を実行することに関わる(「トランザクションデータアプリケーション(transactional  data  application)」と言及される)。多くのアプリケーションが双方のタイプを表現してもよい。ほとんどのアプリケーションは、主に、知識ベース又はトランザクションデータアプリケーションに分類されることが可能である。グラフデータベースは、様々な分野における大量の構造化データ及び非構造化データを保存することが可能な大規模な「セマンティックネットワーク(semantic  network)」を維持するために使用されることが可能である。セマンティックネットワークは、知識表現形式として使用されかつ有向グラフであり、有向グラフは、概念を表現するノードと、概念同士の間の意味論的な関係を表現するアークとで形成される。
【０００４】
知識表現や推論及び知識管理に対するオントロジ的な方法(ontological  approach)は、何らかのオントロジインタフェースエンジンにとって可視的である概念的な知識と、既存のオントロジインタフェースエンジンにとって可視的でない又は透明でない非概念的な(「実体的又はコンクリート(concrete)」と言及されてもよい)知識(数、文字又はその他のタイプのデータ)とを効率的に組み合わせる必要がある。後者は、文字列、数データ及びマルチメディアデータを含む。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現在、設計時アプローチ(design  time  approach)では、ナレッジエンジニアが設計時点で意味論的情報(又は意味情報)を非概念的データにマニュアルで付加しなければならない。非概念的データ(non-conceptual  data)を意味論的ネットワーク(又は意味ネットワーク)に設計時に組み込むことは、ナレッジエンジニアに対してかなりの付帯的負担(オーバーヘッド)を与え、主に、人為的な誤りや作業者の気質などに起因して、モデル化の不一致を招く可能性が懸念される。従って、全体的な推論の精度又は質が劣化してしまうことが懸念される。設計時アプローチは、概念的データ及び非概念的データの双方について適切な知識を有することをナレッジエンジニアに要求するが、そのような知識を獲得することは容易でないかもしれないし、総合判断することが容易でないかもしれない。
【０００６】
概念的データから分離された非概念的データを管理及び処理する専用ツールを利用することは、設計時アプローチにより課される追加的な要件を取り除く。しかしながら、そのような専用のツールは、概念的データについて設計されるエンジンにとって推論結果を可視的にするようにラッピングされる(wrapped)必要がある。「ラッピング」の段階で誤り及び/又は不一致が導入されてしまうかもしれない。オントロジ推論は、通常、開世界仮説(open-world  assumption)に基づいており、これは非概念的な知識を取り扱うツールに必ずしも完全に対応しておらず、それは通常は閉世界仮説(closed  world  assumption)に基づいている。更に、非概念的データに関連する意味は、必ずしも明確に一意に定められる必要はなく、従って、(例えば、品質保証のための)人的なナレッジエンジニアにより容易に理解されない。
【０００７】
概念的データ及び非概念的データ双方を記述する意味情報の総合的な推論は、他の管理システムにおけるそれぞれの不可視性に起因して、簡単ではない。既存の技術では、非概念的データは、前者の一部分を表現する任意に作成された概念エンティティにより利用可能にされる。例えば、人々の年齢についての数値は、任意の「年齢(age)」オブジェクトに関連する点的な値又は範囲的な値として導入されることが可能である。このオブジェクトは、次に、図1に示されるように人のインスタンスに結び付けられてもよい。図1はコンクリート知識(concrete  knowledge)を利用する例を示す。右側において、X氏の年齢(35)についての点的な値は、「X氏の年齢」という概念についての実現(implementation)であり、オントロジ推論エンジン及びオントロジ管理システムにとって不可視であり、オントロジ推論では考慮されない。X氏の年齢についての点的な値に意味情報を付加するためには、ある特殊な関数ツールが必要とされ、その関数ツールの出力は概念部分における任意のモデル化により反映されるものである。
【課題を解決するための手段】
【０００８】
一実施形態によるコンピュータ装置は、
非概念的データ項目をデータグラフに統合することを自動化するように形成されるコンピュータ装置であって、前記データグラフはグラフノード及びグラフエッジを含むグラフ要素により形成され、前記コンピュータ装置は、
指定されるトリガイベントの発生に応答して、前記非概念的データ項目を利用して前記データグラフを更新するプロシジャを規定する処理ハンドラを、複数の非概念的データ項目の各々に対する前記データグラフのグラフノードとして保存するように形成されるデータストレージシステムであって、前記処理ハンドラを表現する前記グラフノードは非概念的データ項目に関連付けて保存される、データストレージシステムと、
前記処理ハンドラに関して指定されるトリガイベントの発生に応答して、複数の処理ハンドラのうちの処理ハンドラにより規定されるプロシジャを実行するように形成される実行モジュールと、
前記プロシジャの実行結果により修正されるグラフ要素を特定し、特定されたグラフ要素を、実行された前記プロシジャを規定する前記処理ハンドラに帰属する一群の修正のメンバとして記録するように形成される修正確認モジュールと、
実行されるプロシジャを規定する処理ハンドラのペアの各々について、前記処理ハンドラのペアに帰属する一群の修正を分析して一群の修正の間の関係を特定し、特定された関係を、個々の処理ハンドラを表現する前記グラフノードの間のエッジとして、前記データグラフに追加することによって、処理ハンドラ同士の間の関係を推論するように形成される推論モジュールと、
を有するコンピュータ装置である。
【図面の簡単な説明】
【０００９】
【図１】概念的データ及び非概念的データを含むデータグラフを示す図。
【図２】実施形態を実現するためのコンピュータ装置を示す図。
【図３】一実施形態によるデータストレージシステムに保存される関連する非概念的デー項目及びデータグラフの一例を示す図。
【図４】処理ハンドラ手順が実行された結果としてグラフになされる修正を特定し、処理ハンドラ同士の関係を推論するプロセスを表すフローチャートを示す図。
【図５】一実施形態によるコンピュータ装置のアーキテクチャ例を示す図。
【発明を実施するための形態】
【００１０】
＜実施形態の概要＞
本願の一実施形態に含まれるコンピュータ装置は、
非概念的データ項目をデータグラフに統合することを自動化するように形成されるコンピュータ装置であって、前記データグラフはグラフノード及びグラフエッジを含むグラフ要素により形成され、前記コンピュータ装置は、
指定されるトリガイベントの発生に応答して、前記非概念的データ項目を利用して前記データグラフを更新するプロシジャを規定する処理ハンドラを、複数の非概念的データ項目の各々に対する前記データグラフのグラフノードとして保存するように形成されるデータストレージシステムであって、前記処理ハンドラを表現する前記グラフノードは非概念的データ項目に関連付けて保存される、データストレージシステムと、
前記処理ハンドラに関して指定されるトリガイベントの発生に応答して、複数の処理ハンドラのうちの処理ハンドラにより規定されるプロシジャを実行するように形成される実行モジュールと、
前記プロシジャの実行結果により修正されるグラフ要素を特定し、特定されたグラフ要素を、実行された前記プロシジャを規定する前記処理ハンドラに帰属する一群の修正のメンバとして記録するように形成される修正確認モジュールと、
実行されるプロシジャを規定する処理ハンドラのペアの各々について、前記処理ハンドラのペアに帰属する一群の修正を分析して一群の修正の間の関係を特定し、特定された関係を、個々の処理ハンドラを表現する前記グラフノードの間のエッジとして、前記データグラフに追加することによって、処理ハンドラ同士の間の関係を推論するように形成される推論モジュールと、
を有するコンピュータ装置である。
【００１１】
有利なことに、実施形態によるプロシジャは、概念的知識(データグラフで表現される知識)及び非概念的知識(データグラフにおける代表要素(surrogate  entity)にリンクされる非概念的なデータ項目により表現される知識)の双方の意味が、単独のオントロジ(又は概念体系)に統合され記述されることを可能にする。
【００１２】
データグラフにおける処理ハンドラのグラフノードに非概念的データ項目をリンクさせること(関連性を保存すること)は、非概念的データ項目に意味情報を帰属させる仕組みを提供し、処理ハンドラの動作(処理ハンドラに帰属する一群の修正)を分析することは、意味情報が何であるべきかを決定する仕組みを提供する。これにより、概念的エンティティ及び非概念的エンティティの双方を含む異質のデータを取り扱うことに関わる推論の処理負担が簡略化され削減される。
【００１３】
非概念的データを概念的データグラフに統合するツールを提供することにより、実施形態は、知識表現を豊富にし、データグラフにより可能になる推論方式を改善する。更に、実施形態によるプロシジャは、組織的又は体系的であり、従って、非概念的データをモデル化する自動化方法の欠如に起因するモデル化の変動を減らす。
【００１４】
プロシジャはランタイム中に(実行中に)ユーザによる入力なしに進行するように自動化される。
【００１５】
非概念的データ項目は、コンクリートデータ項目(concrete  data  items)と言及され、XMLスキーマ又はXMLスキーマタイプシステムによるデータとして規定されてもよい。非概念的データ項目は、オントロジモデル化言語の本来の構造によっては直接的にモデル化できないデータである。非概念的データ項目は、命令プログラミング言語による本来的なデータタイプであってもよい。例えば、ジャバ(登録商標)における整数(Integer)、文字列(String)、倍精度(Double)等である。非概念的データ項目は、マシンにより読み取り可能な又はマシンにより実行可能な形式でデータグラフにおいてモデル化されるリソースを明示(manifest)又は実現するデータ項目として規定されてもよい。「マシン」は「コンピュータ」等と言及されてもよい。
【００１６】
一方、データグラフは意味データモデル(semantic  data  model)の表現の1つであり、データモデルのリソース又はエンティティがグラフノード(「頂点(vertex)」等のように言及されてもよい)として保存され、リソース又はエンティティ同士の関係はエッジ(弧又は相互接続部又はリンク等のように言及されてもよい。)として保存される。本願において、グラフエンティティ又はグラフ要素は、グラフノード及びグラフエッジの総称として使用される。グラフエンティティのエンコード(例えば、PDFトリプル(PDF  triples))は、グラフノード及びグラフエッジが別々のデータ項目に分解されることは不可能であり、グラフノードが同じリソースに関するグラフエッジ全ての合計であるように行われてもよい。データグラフは概念的データをモデル化し、すなわち、概念的データはOWL又はRDF又はRDFSのような非拡張オントロジモデリング言語とともにモデル化されることが可能である。そのようなモデル化言語は、モデル化されるドメイン内のエンティティを取得すること及びエンティティ内の関係を取得することに着目する。そのような言語に基づく推論は、第1次の予測論理の一部分(部分集合)により促進される。例えば、OWLは記述論理満足化問題(description  logic  satisfaction  problem)により支援される。
【００１７】
データグラフは、保存されるデータを効率的に顕在化させ、及び、イベントハンドラ又はデータストレージシステム内部の他のプロセスにとって及びユーザにとっての保存されるデータを表現する手段である。データグラフは、例えばPDFトリプルのようなトリプル(triples)としてエンコードされ、リソースは対象として命名されるトリプルにより規定されてもよい。代替的又は追加的に、データはキーデータストアに保存され、トリプルは、リソースを規定する追加的なデータ(例えば、メタデータ)が保存される格納場所を指し示すキーとして機能する。
【００１８】
トリプルは、主語(subject)-述語(predicate)-目的語(object)の複数の表現としてグラフデータを特徴付けることによりグラフデータをエンコードする。この場合、主語及び目的語はグラフデータのグラフノードとなり、述語は主語と目的語との間の関係を表現する。述語は、目的語に対する特定のタイプのリンクを提供することにより、主語に関する何らかの事項を表明する。例えば、主語はウェブリソース(たとえば、URIによるリソース)を記述し、述語はリソースについての特定の性質、特徴又は態様を記述し、目的語はその性質、特徴又は態様についてのインスタンス(具体的な値)を記述する。言い換えれば、トリプルのステートメントの集まりは、本来的に、有向グラフデータを表現する。RDF標準仕様はそのようなトリプルについての様式構造を提供する。
【００１９】
グラフエッジはグラフノード間のラベル付けされた関係である。エッジは方向性を有してもよい。第1グラフノードから第2グラフノードへのエッジは、論理関係の形式を規定するエッジについて指定されるラベルとともに、2つのグラフノード間の論理接続を記述又は規定する。例えば、第1グラフノードは主語であり、第2グラフノードは目的語であると考えてもよい。エッジのラベルは主語の性質を規定し、オブジェクトの値は主語に帰属する性質についての範囲又は数値を規定してもよい。述語はエッジに指定されるラベルを規定するために使用されるターム(term)である。
【００２０】
処理ハンドラは、イベントハンドラと言及されてもよく、例えばグラフ要素に含まれるデータ値を変更する書き込みアクセスのような特定のタイプのイベントの発生をもたらす手段であり、そのイベントの発生自体に関わる事柄以外の処理を引き起こす。処理ハンドラをデータグラフに含めることは、単独のイベントの発生に対してその機能を提供し、結果的に一連の処理イベントを引き起こし、その処理ハンドラは結果的な処理イベントが何であるか及びそれらをどのように実行するかを規定するルール及び/又は命令を規定する。
【００２１】
処理ハンドラは、プロセス又は一群の命令であってもよく、プロセッサにより実行されるとプロセスが実行されることを引き起こす。実行される処理ハンドラは、データグラフに対してなされる読み取り又は書き込みのアクセス及びデータグラフに対してなされる修正を含んでもよい。処理は、保存されるデータを修正することを含んでもよく、及び/又は、実行を生じさせる処理イベントの特徴を含む要因に基づいて保存データを修正するか否かを判断することを含んでもよい。処理ハンドラは、データグラフに明示的に保存されてもよいし、或いは、処理ハンドラを実行する処理ルール及び/又は命令が保存されている記憶場所へのリンクにより表現されてもよい。
【００２２】
処理ハンドラの実行に関連する指定されるトリガイベントは、処理ハンドラに登録される一群のトリガイベントのうちの何れかであってもよく、処理イベントは、登録される一群のトリガイベントのうちの何れかの発生に応答してプロシジャを実行するように形成される。処理ハンドラが実行されることに関する1つ以上のトリガイベントは、イベントタイプ(グラフエンティティの削除/読み取り/書き込み/更新)及び/又はイベントロケーション(ロケーションは、グラフエンティティのうちの指定されたエンティティ又はグループの場所である)の観点から規定されてもよい。処理ハンドラは、従って、指定されるイベントが生じることを認識するためにデータグラフを監視するように形成される。代替的に、トリガイベントは、リフレッシュや更新のようなシステムイベントであってもよいし、或いは、他の何らかの形式のデータグラフワイド処理イベント又は更新であってもよい。指定されるトリガイベントは、処理ハンドラが関連する非概念的データ項目に対する読み取り又は書き込みのアクセスを行うイベントであってもよい。
【００２３】
データグラフを更新するために処理ハンドラにより使用される非概念的データ項目及び処理ハンドラの間の関連性は、グラフエッジ又はノードの形式を有する明示的なリンクの形式で保存されてもよい。しかしながら、非概念的データ項目は、概念的データを取り扱うように形成される推論システムによっては解釈できない。すなわち、非概念的データ項目は、オントロジモデリング言語の本来的な意味解釈の仕組みから外れている。関連する処理ハンドラ、具体的にはそれに帰属する一群の修正は、非概念的データ項目に関する意味情報を判定し、処理ハンドラを表現するグラフデータにそれらを帰属させる一群の推論ルールのための基礎をもたらす。
【００２４】
非概念的データ項目を利用してデータグラフを更新する処理ハンドラは、非概念的データ項目から1つ以上のデータ値を読み取ること、1つ以上のデータ値をデータグラフ内の新たな又は既存のグラフ要素に書き込むこと、又は、1つ以上のデータ値を利用してデータグラフに書き込まれる値を算出することを含んでもよい。処理ハンドラにより更新されるグラフ要素は、処理ハンドラを表現するグラフノードに、グラフエッジによりリンクされてもよい。非概念的データ項目は処理ハンドラに関連して保存され、従って、処理ハンドラを表現するグラフノードは非概念的データ項目にアクセスするためのグラフノードの経路(conduit)として機能する。
【００２５】
修正確認モジュールは、処理ハンドラにより規定されるプロシジャの実行結果として修正されるグラフ要素を特定するように形成される。プロシジャの実行により修正されるグラフ要素は、プロシジャ自体によりアクセスされ更新されるグラフよそを含んでもよく、プロシジャにより実行される更新により引き起こされた他の処理ハンドラにより修正されたグラフ要素を含んでもよい。処理ハンドラそれら自体は(実行モジュールにより)プロシジャに帰属する更新についての記録又はログを保持し、及び/又は、グラフ編集距離アルゴリズムがデータグラフの特定の領域における変更を特定するために使用されてもよい。記録は、修正されるグラフ要素を特定することに加えて、次のうちの1つ以上を含んでもよい：修正の形式についての指標(又は表示)、修正がなされた時点のタイムスタンプ、修正を実行する責務を有する処理ハンドラ又はその他のエンティティについての指標(表示)。
【００２６】
処理ハンドラに帰する一群の修正は、推論モジュールにより実行される分析の基礎を形成する。一群の修正の間の関係を特定するために、何らかのペアの処理ハンドラについての一群の修正の各々が比較され、パターンマッチング又はその他の分析方式が適用され、その関係は、個々の処理ハンドラを表現するグラフノードの間のエッジとしてデータグラフに付加される。所定の論理関係が2つの群の間に存在することを認識又は確認するために、分析は、一群のルール又はその他の命令をそれらの群に適用することを含んでもよい(例えば、第1群のメンバは常に第2群のインスタンスであること、或いは、第1群のメンバは常に階層構造における第2群のnレベル上のメンバである)。
【００２７】
特定の具体例において、前記推論モジュールが推論する処理ハンドラ同士の間の関係は、包含関係(subsumption  relation)を含んでもよい。
【００２８】
包含関係はセマンティックナレッジネットワークの主要な構築ブロックであり、従って、概念的データグラフにおける他のエンティティとの包含関係により非概念的データ項目を保存する機能は、非概念的データ項目を概念的データグラフに統合する。包含関係は、親子関係、及び、クラス-インスタンス関係を含む。包含関係がグラフ要素の2つの群に存在するか否かは、特定のルールが保持される場合には、グラフ要素中のグラフノードにルールを適用することにより判断することが可能である。
【００２９】
選択的に、前記推論モジュールは、所定の一群のルールのうちのルールを、処理ハンドラのペアの各々についての一群の修正に適用し、所定の一群の関係のうちの何れの関係が前記一群の修正の間に存在するかを特定するように形成される。
【００３０】
例えば、推論モジュールにより適用されるルールは次のようなものであってもよい：第1修正群における各グラフノード(頂点と言及されてもよい)が、第2修正群におけるグラフノードにグラフエッジにより接続されること(そのグラフエッジは第1群からのグラフノードが第2群からのグラフノードを包含することを示す)(すなわち、このコネクションは第2から第1への「〜である」/「〜のインスタンス」のような関係である)。そのようなルールが第1修正群の全て又は所定の部分について真である場合、推論モジュールは、第1群が第2群を包含することを確認し、処理ハンドラを表現するグラフノード同士の間の関係を追加し、個々の修正群は特定される関係を示すように帰属する。
【００３１】
選択的に、前記修正確認モジュールは前記処理ハンドラの各々に帰属する一群の修正を保存するように形成され、前記複数の処理ハンドラのうちの処理ハンドラにより規定されるプロシジャが実行され、修正されたグラフ要素が確認されるたびに、前記処理ハンドラに帰属する保存されている一群の修正を、保存されている一群の修正と特定されたグラフ要素との和集合で置換することにより、特定されたグラフ要素が、前記処理ハンドラに帰属する一群の修正のメンバとして記録されてもよい。
【００３２】
単独のプロシジャの実行に起因する一群の修正は、処理ハンドラにより修正される可能性があるグラフ要素の完全な範囲を明らかにしないかもしれない。プロシジャにより修正されるグラフ要素は、プロシジャの各々の実行において同じでない可能性があり、実行されるプロシジャを招く特定のトリガイベントの発生についての特徴及びトリガイベントの特徴を示す要因、及び、実行時点におけるデータグラフの状態に依存するかもしれない。例えば、プロシジャがグラフ要素の全てのグループを特定の状態に設定するように形成され、実行時点において、グループの各々のメンバが既に特定の状態になっている場合、プロシジャの第1の実行の後にプロシジャに帰属する一群の修正は、グラフに影響を及ぼす可能性のあるプロシジャを反映しないかもしれない。しかしながら、第2の実行の時点において、グループのうちの1つ以上のメンバが既に特定の状態ではないかもしれず、従って、1つ以上の修正が処理ハンドラに帰属するかもしれない。実行の回数が増えるにつれて、一群の修正はグラフに影響するプロシジャの反映する可能性を大きくする。選択的に、一群の修正はメンバシップに制限されてもよく、例えば、最近のn回の実行における又は過去の所定期間内における処理ハンドラにより規定されるプロシジャによって修正されるグラフ要素に制限されてもよい。
【００３３】
修正を特定する形式は、具体的な実施条件に依存し、特に保存されるデータグラフに対する読み取り及び書き込みアクセスを制御するデータ管理システムに依存する。選択的に、前記処理ハンドラにより規定されるプロシジャを実行することは、前記プロシジャによりグラフ要素が修正されるたびに、前記処理ハンドラに関連して保存されるログに記録を追加ことを含み、前記修正確認モジュールは、前記プロシジャを規定する前記処理ハンドラに関連して記録されるログを読み取ることにより、前記プロシジャの実行結果として修正されるグラフ要素を特定するように形成される。
【００３４】
有利なことに、そのようなログを維持することは、特定されるべきグラフ修正についての基礎をもたらす。更に、ログは、グラフの状態を単に監視することによっては必ずしも導出できない情報を含むかもしれない。例えば、システムログは、タイムスタンプ修正を含み、及び/又は、その修正を引き起こすように実行されるプロシジャを指定してもよい。
【００３５】
システムログを利用する代わりに又は選択的にシステムログを利用することに加えて、前記修正確認モジュールは、グラフ編集距離アルゴリズムを実行することにより、前記プロシジャの実行結果として修正されるグラフ要素を特定するように形成されてもよい。
【００３６】
グラフ編集距離アルゴリズムは、第1グラフ状態から第2グラフ状態に至るためにグラフになされる変更を判定する。修正確認モジュールは、プロシジャの実行前後のグラフ又は一部のグラフについてのスナップショットを保存し、それら2つを比較し、グラフ編集距離アルゴリズムを利用して、プロシジャに帰属する一群の修正を判定するように形成されてもよい。修正確認モジュールは、パターンマッチングを実行し、或いは、グラフの特定の領域にスナップショットを制限し、修正がプロシジャの結果であるように適切に考慮されるか否かを確認するように形成されてもよい。代替的に、修正確認モジュールは、プロシジャが実行される時点を把握してもよく、従って、2つのスナップショット間の全ての修正が特定のプロシジャの結果であると考察されるようにスナップショットの時間を適切に計時するように形成されてもよい。選択的に、第1プロシジャの結果により引き起こされる追加的なプロシジャ、及び、追加的なプロシジャの実行に起因するグラフに対する修正が、第1プロシジャの結果であると考慮されてもよい。
【００３７】
データグラフ自体はセマンティックネットワークであり、ドメイン内のリソース又はエンティティを表現するグラフノード、及び、それらリソース又はエンティティの間の関係を表現するグラフエッジとともにナレッジドメインを表現する。データドメインは知識表現のための様式であり、従ってデータグラフは実世界ドメイン(real  world  domain)であり、従って概念的であると考えられる。選択的に、前記データグラフは概念的データグラフである。これは非概念的データ項目の性質とは逆であり、データグラフにおけるコンセプト(概念)及びそれ故にナレッジドメインを表現する何らかの範囲に起因し、データ項目自体はマシンレベルであり、従って、命令プログラミング言語又はマシンにより実行可能な処理コードによる1つ以上のラインにおいて使用するオブジェクトを提供する。
【００３８】
データグラフはエンコードされるデータの表現である。すなわち、データグラフは内在するデータを顕在化させ、データを可視化すること、データを待ち行列化すること及びユーザアプリケーションにデータを利用可能にすることについての基礎を提供する。データグラフを保存する方法及び内在するデータは、具体的な実施条件に依存することになる。具体例は、オントロジモデリング言語を利用してエンコードされる概念的データグラフを含む。
【００３９】
オントロジモデリング言語は、一実施形態ではカスタム化されて使用されもよく、或いは、一実施形態は、カスタム化されない又は標準形式から修正されないオントロジモデリング言語とともに使用されてもよい。例えば、リソース記述フレームワーク(resource  description  framework：RDF)又はリソース記述フレームワークスキーマ(resource  description  framework  schema：RDFS)が使用されてもよく、或いは、オントロジモデリング言語(OWL)が使用されてもよい。符号化又はエンコードすることは、データストレージシステムにより保存されるデータ項目の形式をデータグラフの一部として決定する。
【００４０】
再び、非概念的データ項目に関し、それらはジャバのような命令プログラミング言語による利用のためのオブジェクト形式であってもよく、スキーマシステムによりエンコードされてもよい。例えば、非概念的データ項目はスキーマシステムによりエンコードされてもよい。そのような目的に使用可能なスキーマシステム例はXMLスキーマシステムである。
【００４１】
非概念的データ項目は処理ハンドラにより規定されるプロシジャにより読み取り可能であり、処理ハンドラに関連する非概念的データ項目は、グラフ要素を修正するために処理ハンドラにより規定されるプロシジャの実行中に使用される。プロシジャの実行は、指定されるトリガイベントの発生により引き起こされる。トリガイベントは、処理ハンドラ毎に指定されてもよい。各々の処理ハンドラは、1つ以上のトリガイベントのリストに関連して保存されてもよく、イベントの発生は処理ハンドラにより規定されるプロシジャが実行されることを引き起こす。トリガイベントは、非概念的データ項目を変更させるイベントであってもよいし、或いは、1つ以上の指定されるグラフ要素を変更させるイベントであってもよい。或いは、トリガイベントはシステムイベントであってもよい。
【００４２】
選択的に、前記指定されるトリガインベントは、前記データグラフ内で指定されるサブグラフに対する構造的変更、又は、非概念的データ項目に対する変更であってもよい。
【００４３】
従って、処理ハンドラは、指定されるトリガイベントに応答するプロシジャを規定する。処理ハンドラにより規定されるプロシジャの影響は、従って、トリガイベントに対する応答であると考えられてよく、プロシジャは非概念的データ項目を利用するので、トリガイベントと非概念的データ項目との間に論理的なリンクが存在する。トリガイベントは非概念的データ項目に対する修正イベントであってもよい。
【００４４】
データグラフは、1つより多い数のコンピュータ装置又はストレージサーバにわって保存することを必要とするサイズであってもよい。更に、サブグラフは、障害耐性などの理由により二重化され、問い合わせ処理を改善してもよい。すなわち、コンピュータ装置は、サーバのような単独のコンピュータ装置であってもよいし、或いは、複数のサーバのような相互接続される複数のコンピュータ装置であってもよい。特に：前記コンピュータ装置は通信ネットワークを介して接続される複数のサーバであり、各々のサーバは前記データグラフのサブグラフを保存するように形成されてもよい。従って、具体的な実施条件に依存して、サブグラフが保存されてもよいし、或いは、重複して保存されなくてもよい。通信ネットワークは有線であってもよいし無線であってもよいし、それら2つの組み合わせであってもよい。サーバは、サブグラフが保存されるデータストレージユニットを有してもよく、CPU、ネットワークインタフェースカード及びメモリを含むコンポーネントを追加的に含んでもよい。サーバはピアツーピア(P2P)形態を利用してもよいし、他の形態を利用してもよい。データストレージシステム、実行モジュール、修正確認モジュール及び推論モジュールの機能を実現するために複数のサーバが協働してもよい。代替的に、実行モジュール、修正確認モジュール及び推論モジュールの機能を提供するように形成される単独のコンピュータ装置が存在してもよい。その単独のコンピュータ装置は制御機能を有するサーバであってもよい。サーバは、データストレージサーバ、コンピュータ装置、コンピュータ又はノードのように言及されてもよい。
【００４５】
各々のサーバに処理機能を持たせる分散データストレージシステムは、何らかの並列処理の状況をもたらし、処理の渋滞を回避し、障害耐性を改善する。例えば、修正確認モジュールは、互いに協働して動作する各々のサーバにより実現されてもよい。選択的に、前記修正確認モジュールは各々のサーバにおけるコンポーネントモジュールを有し、前記コンポーネントモジュールは、前記プロシジャの実行結果として修正される個々のサーバに保存されるグラフ要素を特定してもよい。
【００４６】
有利なことに、プロシジャの実行結果による修正に関して各々のサーバが各自に保存されるサブグラフを検査するように、修正確認モジュールの機能を分散することは、何れの単独のサーバにおける処理負担も軽減し、応答時間を改善し、処理の渋滞を減らす。更に、或るサーバに保存されるサブグラフを評価する他のサーバに関連するネットワークトラフィックを減らす。
【００４７】
別の実施形態は、非概念的データ項目をデータグラフに自動的に統合するための方法を含み、前記データグラフはグラフノード及びグラフエッジを含むグラフ要素により形成され、前記方法は、複数の非概念的データ項目の各々について：
指定されるトリガイベントの発生に応答して、前記非概念的データ項目を利用して前記データグラフを更新するプロシジャを規定する処理ハンドラを、前記データグラフのグラフノードとして表現するステップであって、前記処理ハンドラを表現する前記グラフノードは非概念的データ項目に関連付けて保存される、ステップと、
前記指定されるトリガイベントの発生に応答して、前記処理ハンドラにより規定されるプロシジャを実行するステップと、
前記プロシジャの実行結果により修正されるグラフ要素を特定し、特定されたグラフ要素を、実行された前記プロシジャを規定する前記処理ハンドラに帰属する一群の修正のメンバとして記録するステップとを行うことを有する。
【００４８】
前記方法は、処理ハンドラのペアの各々について、前記一群の修正をそれぞれ分析して一群の修正の間の関係を特定し、特定された関係を、個々の処理ハンドラを表現する前記グラフノードの間のエッジとして、前記データグラフに追加することによって、処理ハンドラ同士の間の関係を推論するステップを更に有する。
【００４９】
例えば、そのような方法はコンピュータにより実行される方法であってもよい。本方法は、単独のコンピュータ又はサーバ、或いは、複数の相互接続されるコンピュータ群又はサーバ群を用いて実現されてもよい。
【００５０】
別の実施形態はコンピュータプログラムを含み、コンピュータプログラムは、コンピュータ装置により実行される場合に、コンピュータ装置を、実施形態に関して説明されるコンピュータ装置として機能させる。
【００５１】
別の実施形態はコンピュータプログラムを含み、コンピュータプログラムは、コンピュータ装置により実行される場合に、本願において実施形態に関連して説明される方法を、コンピュータ装置に実行させる。
【００５２】
更に、本願における別の実施形態はコンピュータプログラム又は一群のコンピュータプログラムを含み、それらは、相互接続される複数のコンピュータ装置により実行される場合に、実施形態による方法を、相互接続される複数のコンピュータ装置に実行させる。
【００５３】
本願の実施形態によるコンピュータ装置又はデバイスは、命令(又はコンピュータプログラム)を保存するメモリと、保存される命令に従ってデータを処理するように形成されるプロセッサとを含んでもよい。
【００５４】
本願による実施形態はコンピュータプログラム又は一群のコンピュータプログラムを含み、それらは、相互接続される複数のコンピュータ装置により実行される場合に、相互接続される複数のコンピュータ装置を、本願の実施形態に関して説明されるコンピュータ装置として機能させる。
【００５５】
実施形態(ソフトウェア/方法/装置)は別々に説明されるが、一形態に関して説明されるそれらの特徴や恩恵は他の形態にも等しく適用可能であることが理解されるべきである。従って、方法の特徴が説明される場合には、一実施形態による装置は、その特徴を実行する又は適切な機能を提供するように形成されるユニット又は装置を含んでよいこと、及び、プログラムが実行されるコンピュータ装置に、その方法的特徴を実行させるように、プログラムが形成されてよいこと等が、当然に想定されてよい。
【００５６】
以下、添付図面を参照しながら好ましい実施の形態を説明する。
【００５７】
図1は概念的データ及び非概念的データを含むデータグラフを示す。
【００５８】
図2は実施形態を実現するためのコンピュータ装置を示す。
【００５９】
図3は一実施形態によるデータストレージシステムに保存される関連する非概念的デー項目及びデータグラフの一例を示す。
【００６０】
図4は処理ハンドラ手順が実行された結果としてグラフになされる修正を特定し、処理ハンドラ同士の関係を推論するプロセスを表すフローチャートである。
【００６１】
図5は一実施形態によるコンピュータ装置のアーキテクチャ例を示す。
【００６２】
＜実施形態の詳細な説明＞
コンピュータ装置100は、データストレージシステム102と、実行モジュール104と、修正確認モジュール106と、推論モジュール108とを有する。データストレージシステム102に保存されるデータを表現したものが、データストレージシステム102の右側に示されている。これは、データグラフの領域を示し、あるグラフノードが他のグラフノードに接続されるように処理ハンドラ又は行動ハンドラ(behaviour  handler)10を含み、正方形はグラフノードを表現し、正方形同士を結ぶ曲線はグラフエッジを表現する。波線は、関連性を示し、非概念的データ項目を処理ハンドラ10に接続し、その処理ハンドラ10はデータグラフを更新するために非概念的データ項目12を利用する。
【００６３】
コンピュータ装置100は、非概念的データ項目12をデータグラフに統合することを自動化するように形成され、データグラフはグラフノード及びグラフエッジを含むグラフ要素又はグラフエレメントにより形成される。
【００６４】
データストレージシステム102、実行モジュール104、修正確認モジュール106及び推論モジュール108はまとめて機能モジュールのように言及されてもよく、それらはモジュールの機能を実行するように実際に形成されるハードウェアにより実現されてもよい。機能モジュールは命令又は実行可能なプログラムコードにより実現されてもよく、その命令等は、コンピュータ処理ユニットにより実行されると、機能モジュールに関する機能をコンピュータ処理ユニットに実行させる。コンピュータ処理ユニットは、(オペレーティングシステムにより又は他の形式により)メモリ、ストレージ、I/Oデバイス、ネットワークインタフェース、センサ及びコンピュータ装置の他のコンポーネントのうちの1つ以上とともに協働して動作し、機能モジュールに関する機能を実現してもよい。モジュールは「ユニット」として言及されてもよいし、方法、プログラム又はプロセスについてのステップ又は段階であってもよい。
【００６５】
機能モジュールは、通信ネットワーク110を介して互いにデータをやり取りするように形成される。通信ネットワーク110は、コンピュータ装置間の有線又は無線による接続部；メモリ又はストレージにデータを保存する或る機能モジュール(他の機能モジュールにアクセス可能なもの)のうちの1つ以上を含んでもよい。
【００６６】
コンピュータ装置100は、単独のコンピュータ装置又はサーバにより実現されてもよいし、或いは、例えば1つ以上の制御プロトコルレイヤのように協働して動作する複数のコンピュータ装置又はサーバにより実現されてもよい。従って各々の機能モジュールが複数のコンピュータ装置に属するコンポーネントにより実行されてもよいし、機能モジュールは複数のコンピュータ装置により提供されてもよい。1つ以上の機能モジュールは1つ以上のコンピュータ装置により実現されてもよい。
【００６７】
データストレージシステム102は、指定されるトリガイベントの発生に応答して、非概念的データ項目12を利用してデータグラフを更新する手順(又は更新の仕方)を規定する処理ハンドラ10を、複数の非概念的データ項目12の各々に対するデータグラフのグラフノードとして保存するように形成され、処理ハンドラ10を表現するグラフノードは非概念的データ項目12に関連付けて保存される。データストレージシステム102は1つ以上のデータ管理ユニットも有し、データ管理ユニットは、1つより多い数の個々のデータストレージユニットに分散するデータを統一し、クライアントアプリケーションにとってアクセス可能なデータのグラフワイド表現(graph-side  representation)を提供するように形成される。1つ以上のデータ管理ユニットは、クエリ又は問い合わせを取り扱い、保存されているデータグラフにアクセスするためのインタフェースを提供するようにも形成されてよい。
【００６８】
実行モジュール104は、処理ハンドラ10に関して指定されるトリガイベントの発生に応答して、複数の処理ハンドラのうちの処理ハンドラ10により規定されるプロシジャ(又は手順)を実行するように形成される。実行モジュール104は、各々の処理ハンドラ10を指定されるイベントにリンクする(又は関連付ける)レジスタを保持し、処理ハンドラ10にリンクされるイベントが発生した場合に、実行モジュール104が、処理ハンドラ10により規定される手順を実行するように形成されるようにする。実行モジュール104は、プロシジャを実行するため及びそのように実行を命令するためにリソースが利用可能である時点を判断するためのキュー又はその他の何らかのシステムを維持するように形成されてもよい。「キュー(queue)」は「待ち行列」等と言及されてもよい。実行モジュール104は、プロシジャを実行するために、1つ以上のコンピュータ処理ユニット及びメモリを含むハードウェアにアクセスするように形成されてもよい。実行モジュール104は、プロシジャの実行結果によりグラフに対してなされる変更/修正/更新が例えばシステムログ(履歴)に記録されるような仕方でプロシジャを実行するように形成されてもよい。
【００６９】
修正確認モジュール106は、プロシジャの実行結果により修正されるグラフ要素を特定し、特定されたグラフ要素を、実行されたプロシジャを規定する処理ハンドラに帰属する一群の修正のメンバとして記録するように形成されてもよい。各々の処理ハンドラ10に帰属する一群の修正は、処理ハンドラにより規定されるプロシジャが実行される度に保存及び更新されてもよい。修正確認モジュール106は、グラフの更新内容が記録されるシステムログを読み取り、そのグラフの更新内容を、特定のプロシジャの実行にリンクさせるように形成される(例えば、パターンマッチングによりリンクさせてもよいし、或いは、システムログの情報を利用して、更新がなされる際に何れのプロシジャが実行されていたかを特定することにより、リンクさせてもよい)。修正確認モジュール106は、プロシジャの実行前後のデータグラフの状態を比較し、プロシジャの実行結果として修正されたグラフ要素を特定するように形成されてもよい。修正確認モジュール106は、グラフ編集距離アルゴリズム(graph  edit  distance  algorithm)を実行し、プロシジャの実行結果として更新されるグラフ要素を特定するように形成されてもよい。プロシジャの実行結果による修正であると判断されるグラフ要素は、プロシジャ自体により更新される又は直接的に書き込まれるグラフ要素に制限されてもよい。代替的に、プロシジャにより実行されるグラフ更新により引き起こされる1つ以上の追加的なプロシジャがグラフ要素を修正してもよいし、そのように修正されるグラフ要素は、プロシジャの実行結果として修正されるように修正確認モジュール106により特定されてもよい。
【００７０】
実行されるプロシジャを規定する処理ハンドラのペアの各々について、処理ハンドラのペアに帰属する一群の修正を分析して一群の修正の間の関係を特定し、特定された関係を個々の処理ハンドラ10を表現するグラフノードの間のエッジとして、データグラフに追加することによって、処理ハンドラ10同士の関係を推論するように推論モジュール108は形成されていてもよい。複数の処理ハンドラのうちの処理ハンドラのペアの何れか又は各々に関し、推論モジュール108は、個々の処理ハンドラに帰属する一群の修正を比較し、特定されるパターン又は関係(ある修正群のメンバシップを他の修正群のメンバシップに関連して適用するパターン又は関係)に基づいて、2つの処理ハンドラがどのように関連しているかを判定するように形成される。
【００７１】
推論モジュール108は、所定の一群のルールの各々を、分析される2つの修正群に適用し、2つの群がルールに忠実であるならば、そのルールにより検査される関係が2つの群の間に存在する、と判断するように形成されてもよい。そして、そのような関係は、処理ハンドラ10を表現するグラフノードの間のコネクション(connection)としてデータグラフに追加され、処理ハンドラ10と個々の非概念的データ項目12との間の関連性により、意味情報(関係)が非概念的データ項目12にリンクされ、それらは、データグラフにより表現される意味的知識又はセマンティックナレッジ(semantic  knowledge)の一部となって統合される。
【００７２】
図3には、データストレージシステム102により保存されるデータグラフ及び関連する非概念的データ項目12のスナップショットの一例が示されている。非概念的データ項目12は、非概念的データ項目12に関する機能をカプセル化する(encapsulate)処理ハンドラ10により保存及び管理される。
【００７３】
行動、処理又は動作(behavior)は、指定されるトリガイベントの発生に応答して実行されるプロシジャを規定することにより、「行動」の主要な特徴を指定する代表概念(conceptual  surrogate)によりオントロジ知識モデルで明示される。処理ハンドラ10は、意味的な制約(semantic  constraint)として考えられ、オントロジ的な性質(ontological  property)に通じるデータ項目に関連する。図3は、クラス(左側)及びインスタンス(右側)の双方のレベルで、処理ハンドラ10及びデータ項目の間のコネクションがどのようにして設定されるかを示す。図3において、四角はクラス(又はコンセプト又は概念)を表現し、丸みのある四角はインスタンスを表現し、六角形は処理ハンドラ10を表現し、三角は非概念的データ項目12を表現し、非概念的データ項目12は例えばマシン読み取り可能なコードを列挙することにより処理ハンドラ10を実現し、オントロジ又は概念体系の外部に存在する。処理ハンドラ10を実現する非概念的データ項目12の形式は、例えば、本来のプログラミング言語によるコード、ユーザ入力を促す処理命令、ユーザ入力なしに動作するように形成される処理命令等であってもよい。処理ハンドラ10に帰属する意味情報(セマンティック情報)は、実現データ項目12がデータグラフと相互作用して修正する場合を明らかにする。意味(セマンティクス)が明示されない場合、それらは開世界仮定(open  world  assumption)によっては未知であると判断される。図3では、「飛ぶ」というフライングデータ行動(flying  data  behaviour)が、概念レベルにおいて、全ての鳥に対して付与され、インスタンスレベルにおいて「ケビン(Kevin)」が付与されている。この例では同じ「外的実施」(external  implementation)が使用されているが、処理ハンドラ10は具体的なアプリケーション条件に基づいて様々に実現可能である。
【００７４】
処理ハンドラ10はイベント駆動型(event-driven)である。処理ハンドラ10にトリガを与えるイベントは、例えば、(複数の)処理ハンドラ10に対してまとめて適用するデータグラフの特徴事項により、又は、処理ハンドラ毎に規定される特徴事項により特定される。処理ハンドラにトリガを与えるイベントは、システムイベント及びデータイベントの双方とすることが可能である。システムイベントは、システムレベルの処理に対応し、通常、多数のリソースに適用可能な行動(又は処理)を引き起こすために使用される。データイベントは、例えば、データ挿入、データアクセス、データ更新及び削除などのようなデータ処理により引き起こされる。
【００７５】
データイベントの場合、イベントの範囲(scope)は、何れの処理ハンドラがトリガを受けるかを決定してもよい。すなわち、様々な処理ハンドラは、応答すべき様々なイベント範囲を指定する。例えば、データイベントが、クラスレベルでのデータ修正の結果である場合、データグラフにおけるクラスレベルのデータ項目に関連する処理ハンドラ10が(クラスレベルイベントを指定している場合には)トリガを受け、処理ハンドラが規定するプロシジャが実行される。一方、データイベントが、インスタンスレベルでのデータ修正の結果である場合、データグラフにおけるインスタンスレベルのデータ項目に関連する処理ハンドラ10が(インスタンスレベルイベントを指定している場合には)トリガを受け、処理ハンドラが規定するプロシジャが実行される。代替的又は追加的に、データグラフにおけるクラスレベルデータ項目の特徴事項として保存される処理ハンドラ10は、それが規定するプロシジャは、インスタンスレベルの行動が概念レベルの行動より優先する可能性と共に、クラスレベル及びインスタンスレベルのデータイベント双方に応答して実行されるべきことを指定してもよい。
【００７６】
処理ハンドラ10に帰属する一群の修正に基づいて関係を推論するために推論モジュール108により使用される方法例が以下に説明される。意味情報が処理ハンドラによって明示的に規定されてもよく、推論モジュール108は、その意味情報を取り出し、処理ハンドラ10を表現するグラフ要素にそれを適用するように形成されてもよい。代替的又は追加的に、推論モジュール108は、個々の処理ハンドラに帰属する修正群に起因するデータグラフ状態の変化により自ら明らかにする意味情報を特定するように形成されてもよい。
【００７７】
以下の内容は推論モジュール108により使用されてもよい方法例である：
1.  特定の処理ハンドラ10がトリガを受け、それが規定するプロシジャがグラフについて実行される前のグラフをGiとし、及び、プロシジャが終了してグラフが安定状態に収束した後のグラフをGi+1とする。ΔG=Gi+1-Giは、2つのグラフの間の差分又は相違として規定され、トリガを受けた処理ハンドラに帰属する一群のグラフ修正を詳細に示す。例えば、ΔGbは処理ハンドラbに帰属する一群の修正であり、そのメンバ(又はメンバシップ)は修正されるグラフ要素である。
【００７８】
2.  処理ハンドラbiは第1のトリガを受ける処理ハンドラであり、処理ハンドラbjは第2のトリガを受ける処理ハンドラである(第1及び第2は、それらを区別しているにすぎず、何れかの処理ハンドラに対する何らかの技術的意義を示してはいない)。
【００７９】
3.  推論モジュール108により適用されるルールは、ΔGbj[＞]ΔGbiである場合であってその場合に限り、処理ハンドラbiが処理ハンドラbjにより包含されることであってもよい。
【００８０】
4.  推論モジュール108により適用される別のルールは、ΔGbi[＞]ΔGbjである場合であってその場合に限り、処理ハンドラbjが処理ハンドラbiにより包含されることであってもよい。推論モジュール108により適用されるルールは、ΔGbj[＞]ΔGbi及びΔGbi[＞]ΔGbjである場合であってその場合に限り、処理ハンドラbiは処理ハンドラbjと同等(equivalent)であることであってもよい。
【００８１】
オペレータ(又は演算子)[＞]は次のように定義される：
1.  ΔGi⊂ΔGjならば、ΔGbj[＞]ΔGbiである。
【００８２】
2.  ΔGbj[＞]ΔGbiである場合、ΔGiに属する全ての頂点v(v∈ΔGi)に関し、以下のルールのうちの何れかが成り立つ：
a.  vは、何らかの頂点v’(v’∈ΔGj)の子孫のサブコンセプトであり、従って、v及びv’は「〜である(is-a)」というエッジ又は「〜のインスタンス(instance-of)」というエッジに結び付けられることが可能である。
【００８３】
b.  全ての中間的な概念/頂点に関し、次式が成立する：
∃w,<wx0>,<x0xi>...<xnv>∈Gi，及び
∃w’,<w’x0’>,<x0’xi’>...<xm’v’>∈Gj∧w⊆w’及び  xi⊆xi’
すなわち、2つの頂点が「〜である」/「〜のインスタンス」というエッジで接続できな場合、それらは、別のグラフ又は元のグラフの何れかについての「〜である」/「〜のインスタンス」というエッジで接続される何らかの事項の範囲内にある。
【００８４】
3.  ΔGjがΔGiと同じグラフ(isograph)であるならば、ΔGbj[＞]ΔGbi及びΔGbi[＞]ΔGbjである。
【００８５】
処理ハンドラ10がトリガを受けるたびに、処理ハンドラ10に帰属する一群の修正を更新することにより、意味の展開(semantic  explication)を進めることが可能である。従って、進展する表現(progressive  manifestation)は、ある範囲の行動(又は処理)として規定されてもよい：
εek(b)=εek-1(b)∪ΔGbk
ここで、ΔGbk  =Gk(b)-Gkである。すなわち、処理ハンドラbに帰属する一群の修正のk番目のバージョンは、「(k-1)番目の表現」及び「k番目の時点に関してbがトリガを受けた後の結果のグラフとbがトリガを受ける前の元のグラフとの間の差分」の和集合である。eは表現プロセスを示す。
【００８６】
実行結果のグラフ更新(又は処理ハンドラが規定するプロシジャの実行結果のグラフ更新)が、処理ハンドラ10を表現するグラフノードに接続されるグラフノードに局所的に収まるように、或いは、処理ハンドラで規定されるグラフの領域から離れるように(すなわち、処理ハンドラを表現するグラフノードにエッジにより接続されていない場所まで離れるように)、処理ハンドラ10は形成されてもよい。各々の処理ハンドラ10は、グラフの状態に対してなされる変更のリストを(例えば、システムログファイル内に)維持するように形成されてもよい。そのようなログファイルが利用可能でない場合、グラフ編集距離アルゴリズムを利用して：如何なる変更がグラフに対してなされたかを特定し；及び更新されたグラフ要素を特定(又は区別)することが可能である。複数の処理ハンドラのうちの処理ハンドラのペアに帰属する一群の修正を比較し、処理ハンドラがどのように関わっているか及びそのような関係を表現する何れの意味情報がデータグラフに付加されるべきかを決定するために、上記の推論ルールを使用することが可能である。
【００８７】
図4は処理ハンドラにより実行されるプロシジャの結果としてグラフになされる修正を特定し、処理ハンドラ間の関係を推論するプロセスを示すフローチャートである。
【００８８】
ステップS101ないしS105は修正確認モジュール106により実行されてもよいプロセス例である。ステップS106は推論モジュール108により実行されてもよいプロセス例である。
【００８９】
ステップS101において、システムログファイルが確認される。システムログファイルは、グラフにたいしてなされた更新の記録(又は履歴)であり、更新されたグラフ要素を特定できるようにする。更に、システムログファイルは、各々の修正に関するタイムスタンプと、実行されて修正を引き起こす処理ハンドラの識別子(又は身元情報)とを含んでもよい。
【００９０】
ステップS102において、ログファイルが利用可能であるか否かが判断される。データグラフは、システムログファイルが保持されないような仕方で実現されてもよいし、或いは、他の何らかの理由で利用可能でないかもしれない。
【００９１】
ログファイルは利用可能でないことがステップS102において確認されると、フローはステップS104に進み、グラフに対してなされた修正が算出される。例えば、更新されたグラフ要素を特定するために、グラフ編集距離アルゴリズムが実行されてもよい。グラフ修正の算出は、対象の処理ハンドラが影響を及ぼす可能性がある特定のグラフ領域に制限されてもよい。そのような領域は、設計時点で決定されて処理ハンドラにおいて確認されてもよいし、或いは、処理ハンドラの内容に基づいて判定されてもよい。グラフ又はグラフ内の領域の状態についてのスナップショットが、算出の基礎として利用されてもよい。
【００９２】
ログファイルは利用可能であることがステップS102において確認されると、フローはステップS103に進み、処理ハンドラにより規定されるプロシジャの実行に帰属する修正が蓄積される。変更は、プロシジャの実行時間との比較によるタイムスタンプに基づいて、処理ハンドラを表現するグラフノード付近及び修正されたグラフ要素に基づいて、及び/又は、修正を引き起こすプロシジャの明示的な特定に基づいて確認されてもよい。処理ハンドラにより規定されるプロシジャが実行される場合に、システムログファイルを利用可能にすることが可能である。差分の計算は、分散データシステムにおける異なるサーバで動作することが可能な処理ハンドラに分散され委託されてもよい。これはグラフ差分計算の並列処理を促す。
【００９３】
ステップS105において、処理ハンドラに帰属する一群の修正が、順に並べられる又は照合される。これは単にステップS103及び/又はS104の結果であってもよいし、或いは、処理ハンドラに帰属し得る最近の修正を、処理ハンドラに既に帰属している一群の修正に組み入れることを含んでもよい。例えば、処理ハンドラにより規定されるプロシジャが実行されるたびに、処理ハンドラに帰属する一群の修正に未だ含まれていない、プロシジャにより修正された何らかのグラフ要素が、一群の修正に追加されてもよい。
【００９４】
ステップS106において、処理ハンドラのペアに帰属する一群の修正は、例えば上記のルールを利用して比較される。一群の修正同士の間の関係が確認され、処理ハンドラを表現するグラフノードの特徴としてグラフに付加される。ペアの選択は、例えば、そのグラフにおいて各々の他の処理ハンドラとともに最近トリガを受けた処理ハンドラであってもよい。代替的に、ルールは不定期的に適用されてもよく、例えば、処理容量が許容するならば、他の一群の修正と最後に比較されて以来更新された一群の修正の各々についてログが維持されてもよい。そして、ログの中で特定される一群の修正は、他の一群の修正の各々と比較される。
【００９５】
図5は本願による実施形態を実現するためのコンピュータ装置のアーキテクチャ例を示す。データストレージシステム102は複数のストレージユニットを有する。各々のストレージユニットは、システムログ103を保持し、データ管理コンポーネント101を有し、データ管理コンポーネント101は、処理ハンドラ10により規定されるプロシジャが実行された結果として、ストレージユニットに保存されるサブグラフに対してなされる修正107を特定するように形成される。データ管理コンポーネント101は、処理ハンドラ10に関与する可能性がある一群の修正を設定するために個々の修正107を協働して統合するように形成され、他の処理ハンドラに関与する一群の修正との比較により、意味情報109を決定することが可能である。
【００９６】
上記の何れの実施形態においても、様々な特徴は、ハードウェアで実現されてもよいし、或いは、1つ以上のプロセッサで動作するソフトウェアモジュールとして実現されてもよい。一実施形態による特徴は他の任意の実施形態に適用されてもよい。
【００９７】
本願による実施形態は、本願により説明される任意の方法を実行するコンピュータプログラム及び/又はコンピュータプログラム関連製品を提供し、コンピュータ読み取り可能な記憶媒体は、上記の任意の方法を実行するプログラムを格納する。実施形態に関するコンピュータプログラムは、コンピュータ読み取り可能な記憶媒体に保存されてもよいし、或いは、例えばインターネットウェブサイトから提供されるダウンロード可能なデータ信号のような信号の形態とすることも可能であり、適切な任意の形態で利用されてよい。
【符号の説明】
【００９８】
１００  コンピュータ装置
１０２  データストレージシステム
１０４  実行モジュール
１０６  修正確認モジュール
１０８  推論モジュール
【図１】
2016015124.tif 000003
【図２】
2016015124.tif 000004
【図３】
2016015124.tif 000005
【図４】
2016015124.tif 000006
【図５】
2016015124.tif 000007