JP5689361B2 - グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム - Google Patents

グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム Download PDF

Info

Publication number
JP5689361B2
JP5689361B2 JP2011113360A JP2011113360A JP5689361B2 JP 5689361 B2 JP5689361 B2 JP 5689361B2 JP 2011113360 A JP2011113360 A JP 2011113360A JP 2011113360 A JP2011113360 A JP 2011113360A JP 5689361 B2 JP5689361 B2 JP 5689361B2
Authority
JP
Japan
Prior art keywords
node
pattern
matching
data
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011113360A
Other languages
English (en)
Other versions
JP2012243123A (ja
Inventor
太 岩間
太 岩間
秀樹 田井
秀樹 田井
尚 宮下
尚 宮下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2011113360A priority Critical patent/JP5689361B2/ja
Priority to US13/474,364 priority patent/US8943084B2/en
Priority to US13/477,915 priority patent/US8914391B2/en
Publication of JP2012243123A publication Critical patent/JP2012243123A/ja
Application granted granted Critical
Publication of JP5689361B2 publication Critical patent/JP5689361B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation

Description

本発明は、一般的には、データ構造の変換のための情報処理技術に関し、より特定的には、グラフデータの一部をその準同型写像の像であるデータ構造に変換する方法、プログラム、および、システムに関する。
複数のノードとノード間の連結関係を表すエッジグラフ構造のデータ(以下、単に「グラフデータ」と称することがある)を用いて、実世界のモデルをコンピュータ上で表現することが一般的に行われている。一般的に、グラフデータは、RDF(Resource Description Framework)のような標準化された形式にしたがって記述され、グラフ・リポジトリと称されるデータベースに記憶される。グラフ・リポジトリに格納されたグラフデータは、その一部または全部が各種のアプリケーション・プログラムによって呼び出され利用される。業界の各社は、そのようなグラフデータをハンドリングするためのソフトウェアを研究開発している。
当分野の背景技術として、特開2010−0256978号公報(特許文献1)は、コンフィグレーションデータの検証を簡易に行うことができるようにするためのコンフィグレーションデータ検証装置を開示する。装置は、システムのコンフィグレーションデータから該システムを構成するコンポーネント間の依存関係を抽出し、該依存関係を表す関係グラフを生成する関係グラフ生成部と、予め与えられた基準関係グラフと生成された関係グラフとに基づいて、コンフィグレーションデータの妥当性を検証する関係グラフ検証部とを備える。関係グラフ検証部は、基準関係グラフと生成された関係グラフとが同型である場合には、コンフィグレーションデータが妥当であるものと判定し、それ以外の場合には、コンフィグレーションデータは失当であるものと判定する。
他の背景技術として、特開2007−0026210号公報(特許文献2)は、改良されたツリー表示プログラムを開示する。当該プログラムでは、ツリー構造上、最上位階層に位置する実際のルートノード1から展開表示されているツリーの中から表示対象とするノード4がユーザにより指定されると、そのノード4を仮想的なルートノードとして、ノード4を最上位階層に配置した無向グラフとしてみた場合には同型であるようなツリー構造を形成し表示する。ノード4の親ノードであるノード2の引き出し線に矢印アイコン40を所定の向きで付加することによって、ノード2がノード4の親ノードであることを示す。また、仮想的なルートノード4から実際のルートノード1まで間の経路上に所定の向きで矢印アイコン42を付加することで、仮想的なルートノード4と実際のルートノード1との相対的な位置関係を示す。
他の背景技術として、特開2003−0030227号公報(特許文献3)は、データマイニングの前処理の際に様々なタイプのデータ集合を一元的に取扱い、ユーザからのインタラクションを反映してデータ集合やデータの構造を動的に変更することが可能な方法を開示する。方法は、XMLデータから、当該XMLデータの属性を葉ノードあるいは非葉ノードとし、属性値を含まず属性間の関係を表現し、ノード間の冗長な親子関係をマージして最適化したツリー構造である階層ユニットツリーを作成するステップと、階層ユニットツリーに対して変更を加えるステップと、階層ユニットツリーに対して加えられた変更を反映するようにXMLデータを変換するステップとを含む。
他の背景技術として、特許3137590号(特許文献4)は、要素工程が与えられた際にノード接続手段で初期グラフを作成し、初期必須ノード選択手段で必須となるノードを選択し、初期グラフ作成手段で各要素工程に対応したノードと有向枝とから構成される初期グラフを作成し、依存グラフ作成手段で初期グラフを変形して依存グラフを作成し、工程表現木作成手順によって依存グラフを変形して、実行可能な製造手順を表現する工程表現木を作成する製造手順決定装置を開示する。
他の背景技術として、特開2001−0142937号公報(特許文献5)は、回路のスケジューリングの正当性をチェックする方法、及び、回路のビヘイビア記述に対して回路のスケジュールを検証する方法を開示する。ビヘイビア記述から得られる回路のスケジューリングの正当性をチェックする方法は、ループが回路内にあるときに非巡回スレッドの十分なセットを決定するためにループ不変項を抽出し、ループ不変項を抽出するためにシンボリックシミュレーションを実行し、非巡回スレッドの等価性を証明する。回路のビヘイビア記述に対して回路のスケジュールを検証する方法は、スケジュールからループを含む可能性のある実行のスケジュールスレッドを選択し、ビヘイビア記述から対応するビヘイビアスレッドを識別し、スケジュールスレッド及びビヘイビアスレッドの無条件等価性を証明し、実行のすべてのスレッドについて以上が繰り返される。
他の背景技術として、特開1993−0233298号公報(特許文献6)は、2つの環が体上有限次元のとき、全単射な準同型写像の存在を計算機によって効率的に調べ得る環同型判定方式を提供する。この方式では、任意の2つの環A,Bに対して線形空間基底を計算し、環Aから環Bへの線形写像φを定義し、該線形写像φの定数項除去によってφ*を定義し、φ*の行列式fおよび環A,Bの基本関係式と線形写像φの準同型としての作用からイデアルIからイデアルJを定義し、該イデアルのグレブナ基底GJ
に基づいて同型であるか否かを判定する。
他の背景技術として、特開1998−0154976号公報(特許文献7)は、外部から物理的衝撃を加えて内部回路を誤動作させその出力を観察して装置内部の秘密情報を推測する攻撃法に対して防御可能なタンパーフリー装置を提供する。装置は、内部に外部からの入力データに対して所定のデータ変換処理を施して出力するための手段を備え、内部情報への不正アクセスを防止するために内部回路全体を物理的手段により外部から保護したタンパーフリー装置であって、データ変換処理の誤動作を検出する手段と、誤動作が検出された場合に処理の出力に所定の規制を施す出力規制手段とを備える。
他の背景技術として、特開2008−0203964号公報(特許文献8)は、以下のクラスタリング技術を開示する。事象間の正しい因果関係を保ちつつ、複数の事象をクラスタリングすることによって、因果関係ネットワークを分かりやすく要約させる。自然言語で記述された文書である自然言語文から抽出された互いに異なる複数の事象間の因果関係に対して、事象を構成する単語の一部が同一でかつ、共通の原因または結果事象を持つ事象群がクラスタ対象選択部にてクラスタリングの対象として選択され、クラスタリング対象の事象全てで共通の因果関係のみが統合されるデータ構造を持つ因果関係グラフが因果関係記憶部に格納され、因果関係グラフの構造の複雑さがクラスタリングスコアとして数値化され、クラスタリングスコアが最小となるようにクラスタ対象選択部によって選択された事象群が事象クラスタ評価部にてクラスタリングされる。
特開2010−0256978号公報 特開2007−0026210号公報 特開2003−0030227号公報 特許3137590号 特開2001−0142937号公報 特開1993−0233298号公報 特開1998−0154976号公報 特開2008−0203964号公報 特開1997−0016389号公報 特開2010−0033500号公報 特開2008−0158759号公報 特開2006−0185211号公報 特開2005−0100402号公報 特開1993−0158676号公報
あるアプリケーションがグラフ・リポジトリに記憶されたグラフデータを利用する場合、当該アプリケーションの観点からグラフデータが複雑過ぎたり、不要な詳細まで含まれていたりすることがある。そのため、直接グラフデータ全体にアクセスするのではなく、グラフデータの写像の像であるユーザが定義する各アプリケーションの目的に応じたオブジェクトに変換してグラフデータの一部または全部を利用したいという要請がある。この場合、変換されたオブジェクトに対する各種アプリケーションにおける操作を元のグラフデータに正しく反映することができることが好ましい。
しかし、かかるオブジェクトに対する各種アプリケーションにおける操作を元のグラフデータに正しく反映することができるオブジェクトにグラフデータを変換することは、いずれの背景技術によっても実現をすることができていない。
したがって、本発明の目的の1つは、アプリケーションによるオブジェクトの操作を元のグラフデータに反映することができるデータ構造に変換する、方法、プログラム、および、システムを提供することである。
上記の目的を達成するために、1以上のグラフ・マッチングのためのパターンを用いてノードとエッジを含むグラフデータの少なくとも一部をその準同型写像(homomorphism)の像(image)であるデータ構造に変換する方法が提供される。方法は、パターンに1つ存在する代表ノード変数であって、当該代表ノード変数にマッチしたグラフデータのノードが高々1つで、かつ他のパターンのノード変数にマッチすることが禁止されるという第1の制約を有する代表ノード変数を含むパターンを提供するステップと、グラフデータとパターンのマッチング処理を行い、第1の制約を含む制約に違反しないマッチング結果を得るステップと、制約に違反しないマッチング結果に対応するデータ構造を生成するステップを含む。
好ましくは、マッチング処理を行うステップは、パターンにマッチするグラフデータのサブセットに関する情報をマッチング結果として得るステップと、制約に違反するグラフデータのサブセットに関する情報をマッチング結果から除去するステップと、を含む。さらに好ましくは、グラフデータのサブセットに関する情報が、パターンに含まれるノード変数とそれにマッチしたグラフデータ内のノードとの対応関係をエントリとして含むテーブルとすることができる。好ましくは、マッチング結果から除去するステップが、制約に違反するグラフデータのサブセットに対応するテーブルを除去するステップを含む。
好ましくは、代表ノードが、他のパターンに属するノードとの間のインターリンクの端点となり得る。好ましくは、マッチング処理を行うステップにおいて代表ノードがマッチした複数のパターンが継承関係にある場合、継承した側のマッチング結果に対応するデータ構造が生成される。
好ましくは、パターンは、1以上の第2の種類のノード変数を含み、第2の種類のノード変数にマッチするグラフデータのノードがパターンの代表ノード変数にマッチするグラフデータのノードにユニークに対応しなければならないという第2の制約を有し、第1の制約および第2の制約に違反しないマッチング結果に対応するデータ構造が生成される。さらに好ましくは、第2の種類のノード変数にマッチしたノードが、他のパターンに属するノードとの間のインターリンクの端点となり得る。
好ましくは、マッチング処理を行うステップは、パターンに対応するグラフ・クエリをグラフデータに対して実行するステップを含む。好ましくは、マッチング処理を行うステップは、異なるパターンに属するノードを接続するインターリンクのマッチング処理を行うステップを含む。好ましくは、マッチング処理を行うステップは、ノード変数に関するマッチング結果と整合しないインターリンクのマッチング結果を除去するステップを含む。好ましくは、マッチング処理を行うステップは、インターリンクのマッチング処理結果をノード変数のマッチング処理結果にマージするステップを含む。
好ましくは、データ構造を生成するステップは、パターンに対応するデータ構造のクラス定義をインスタンス化することによってデータ構造を生成するステップを含む。好ましくは、方法は、生成したデータ構造をアプリケーションに引渡し、ユーザに提示するステップをさらに含む。
以上、データ構造を変換する方法として本発明の概要を説明したが、本発明は、プログラム、プログラム製品、ソフトウェア、ソフトウェア製品、システム、装置などとして把握することもできる。プログラム製品ないしソフトウェア製品は、例えば、前述のプログラム、ソフトウェアを格納した記憶媒体を含め、あるいはプログラム、ソフトウェアを伝送する媒体を含めることができる。
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
本発明の実施形態おけるデータ処理システムの全体像の一例を示した図である。 本発明の実施形態におけるデータ処理システムの機能ブロック図である。 本発明の実施形態におけるデータ処理システムの動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのオブジェクトデータ生成の動作を表現するフローチャートである。 本発明の実施形態における正規化の処理の動作の一例を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのオブジェクトを操作した場合の動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのオブジェクトの生成(CREATE)処理に対応するDBT処理の動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのオブジェクトの更新(UPDATE)処理に対応するDBT処理の動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのオブジェクトの削除(DELETE)処理に対応するDBT処理の動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのグラフデータ変更処理の動作を表現するフローチャートである。 本発明の実施形態におけるカーネル・パターンのデータ・セットの一例である。 本発明の実施形態におけるオブジェクト定義のデータ・セットの一例である。 本発明の実施形態におけるグラフデータの一例である。 本発明の実施形態におけるSPARQL言語に従うカーネル・パターンのグラフ・クエリである。 本発明の実施形態におけるSPARQLに従うカーネル・パターンのグラフ・クエリによる照会結果である。 本発明の実施形態における代表ノードの型割り当て表の一例を示した図である。 本発明の実施形態におけるオブジェクトデータの一例を示した図である。 本発明の実施形態におけるグラフデータから生成されたオブジェクトデータの一例である。 本発明の実施形態におけるオブジェクト操作の流れの第2の例を示した図である。 本発明の実施形態におけるオブジェクト操作の流れの第2の例の操作ログを示した図である。 本発明の実施形態におけるオブジェクト操作の流れの第2の例に応じたDBTの変化を示した図である。 本発明の実施形態におけるオブジェクト操作の流れの第1の例を反映したグラフデータである。 本発明の実施形態におけるオブジェクト操作の流れの第2の例を示した図である。 本発明の実施形態におけるオブジェクト操作の流れの第2の例の操作ログを示した図である。 本発明の実施形態におけるオブジェクト操作の流れの第2の例に応じたDBTの変化を示した図である。 本発明の実施形態におけるオブジェクト操作の流れの第2の例を反映したグラフデータである。 本発明の実施形態におけるデータ処理システムを実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。
以下、本発明を実施するための形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲に記載された発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
図1は、本発明の実施形態おけるデータ処理システムの全体像の一例を示した図である。データ処理システムは第1のユーザが操作する第1の端末100、第2のユーザが操作する第2の端末105、および、グラフデータを記憶するグラフ・リポジトリを備えるサーバ110を含む。これらの各端末100、105およびサーバ110はネットワーク115で相互に接続され、電子データである情報のやり取りをすることができる。典型的には、ネットワーク115はインターネットないしイントラネットである。
本発明の実施形態では、ユーザが操作する端末100、105にはオブジェクト・ハンドリング・ソフトウェアがインストールされている。本発明の実施の形態による端末100、105は、ユーザが操作し、また情報を提示されるための入出力デバイスであるキーボード、マウスのような入力デバイス、および表示装置を備える。
本発明の実施形態では、ユーザは、端末100、105の表示装置に作業状況の情報などを視覚的に提示するウィンドウ・ベースのグラフィカル・ユーザ・インターフェースを通じて、キーボード、マウスなどの入力デバイス用いてアプリケーション・プログラムを操作する。
各ユーザは自己が操作する端末100、105において実行されるアプリケーション・プログラムを用いて操作するグラフデータをサーバ110にネットワーク115を介して要求することができ、サーバ110はグラフ・リポジトリに記憶されたグラフデータのサブセット(一部分)を要求されたグラフデータとしてネットワーク115を介して返送する。本発明の実施形態では、それぞれの端末には、グラフ・リポジトリに格納されたグラフデータを操作するということでは共通するが、その目的が異なるアプリケーション・プログラムが導入されているものとする。
本発明の実施形態では、グラフ・リポジトリから受信したグラフデータに関して、準同型写像の像であるデータ構造に変換できる部分と、それ以外の部分とが区別される。本発明の実施形態では、前者について、各端末はグラフ・リポジトリから受信したグラフデータの少なくとも一部をその準同型写像(homomorphism)の像(image)に変換してオブジェクトデータを生成する。ここで、準同型(homomorphic)とは、複数の構造の間の類似性を表す概念であり、ある構造が他の構造の準同型写像の像である場合、前者に対する操作と後者に対する操作を一対一で対応させることができる。この性質について、準同型写像は、構造を保存(structure preserving)する、構造と両立(compatible with structure)する、などと表現される。
グラフデータは、あらかじめユーザが定義したグラフ・マッチング・パターンの一種(以下、「カーネル・パターン」と称することがある)にマッチしたグラフデータのサブセットを、あらかじめユーザが定義したオブジェクトのクラス定義(以下、単に「オブジェクト定義」と称することがある)に従ってインスタンス化することによって、そのユーザが使用するアプリケーション・プログラムの目的に適したオブジェクトデータに変換される。
次いで、本発明の実施形態ではユーザはオブジェクトデータを端末に導入されたアプリケーション・プログラム上で操作する。本発明の実施形態では、オブジェクトデータに対する操作は、上述したオブジェクトデータの準同型的性質を利用してサーバ110のグラフ・リポジトリに格納された元のグラフデータに反映される。本発明の実施形態では、このグラフデータへの反映は、操作がされた後のオブジェクトと、その操作を反映したグラフデータから写像して得られるオブジェクトが同じになるように正しく実施されることとなる。
図2は、本発明の実施形態のユーザ端末100およびサーバ110を含むデータ処理システムの機能ブロック図である。なお、図2の機能ブロック図に示す各要素は、図18に例示したハードウェア構成を有する情報処理装置において、ハードディスク装置13などに格納されたオペレーティング・システムやオブジェクト・ハンドリング・ソフトウェアなどのコンピュータ・プログラムをメインメモリ4にロードした上でCPU1に読み込ませ、ハードウェア資源とソフトウェアを協働させることによって実現することができる。
本発明の実施形態のサーバ110は、グラフ・リポジトリ275を含む。本発明の実施形態のグラフ・リポジトリ275は、グラフデータを記憶する機能を備える。本発明の実施形態のグラフデータは、ノードとノード間の連結関係を表す有向または無向のエッジを含み、それぞれのノードおよびエッジに対して属性値を付与することができる。本発明の実施形態では、グラフデータはW3C(World Wide Web Consotium)勧告として標準化されたRDF(Resource Description Framework)フォーマットにしたがって記述されるものとする。
また、グラフ・リポジトリ275は、ユーザ端末100のリポジトリ・アクセス部205からW3C(World Wide Web Consotium)勧告として標準化されたSPARQL(SPARQL Protocol and RDF Query Language)言語に従うクエリを受信し、クエリに記述された条件に合致したグラフデータの全部または一部をリポジトリ・アクセス部205に返送する機能をも有する。返送されたグラフデータの一例は、図13等を用いて後で詳細に説明される。なお、そのようなグラフデータを格納するためのグラフ・リポジトリ275は、本明細書を読んだ当業者が適宜実装することができるので、これ以上の詳細は本明細書では説明されない。
本発明の実施形態の端末100は、リポジトリ・アクセス部205、パターン・マッチング部210、正規化部215、オブジェクトデータ生成部220、オブジェクト定義記憶部225、カーネル・パターン記憶部230、データ・バインディング・テーブル(DBT)記憶部235、オブジェクトデータ記憶部240、オブジェクトデータ操作部245、グラフデータ変更部250、操作ログ記憶部255、アプリケーション部260、および、入出力部265を備える。
本発明の実施形態のリポジトリ・アクセス部205は、後述するグラフデータ変更部250を介して受けたアプリケーション部260からの命令に従って、サーバ110のグラフ・リポジトリ275に記憶されたグラフデータを照会するクエリを生成する機能を備える。リポジトリ・アクセス部205は、生成したクエリをグラフ・リポジトリ275にネットワーク115を介して送信し、クエリの結果であるグラフデータを受領することができる。
本発明の実施形態では、リポジトリ・アクセス部205は、グラフ・リポジトリに記憶されたグラフデータにアクセスし、少なくともグラフデータの問合せ、グラフデータの変更をする機能を有するものとする。本発明の実施形態では、グラフ・リポジトリへのアクセスのためのクエリは、SPARQL言語に従うものとして実装されるが、他の任意のグラフデータ問合せ言語を採用することが可能であることは当然である。本発明の実施形態のリポジトリ・アクセス部205は、グラフデータの問合せの結果としてグラフ・リポジトリ275から得たグラフデータをパターン・マッチング部210に引き渡す。
本発明の実施形態のパターン・マッチング部210は、リポジトリ・アクセス部205から引き渡されたグラフデータを、カーネル・パターン記憶部235に記憶されたカーネル・パターンとマッチングする。カーネル・パターンの例は、図11を用いて後で詳細に説明される。マッチングは、カーネル・パターンごとに用意され、または、カーネル・パターンに基づいて生成されたSPARQL言語に従うクエリを対象となるグラフデータに関して問い合わせることで実施する。カーネル・パターンに対応するクエリの例は図13を用いて後で詳細に説明される。また、パターン・マッチング部210は、カーネル・パターンごとのクエリの結果を用いて初期データ・バインディング・テーブル(initial DBTs)を形成し、データ・バインディング・テーブル(DBT)記憶部235に記憶させる。なお、初期DBTの例は、図14を用いて後で詳細に説明される。
本発明の実施形態の正規化部215は、パターン・マッチング部210が生成し、DBT記憶部240に記憶させた初期DBTに処理を施して、後でDBTを参照して生成されるオブジェクトデータがグラフデータの準同型写像(homomorphism)の像(image)となるようにされる。かかるDBTに対する処理を本明細書では「正規化」と称し、図5を用いて後で詳細に説明される。
本発明の実施形態のオブジェクトデータ生成部220は、DBT記憶部235に格納されたDBT、および、オブジェクト定義記憶部330に記憶されたオブジェクト定義を参照して、リポジトリ・アクセス部205によって取得されたグラフデータをオブジェクトデータに変換する。グラフデータは、ユーザが使用するアプリケーション・プログラムの目的に適した形となるように変換され、生成されたオブジェクトデータは、オブジェクトデータ記憶部240に格納される。
本発明の実施形態のオブジェクト定義記憶部225は、ユーザによって定義されたオブジェクトのクラス定義(すなわち、オブジェクト定義)を記憶する。オブジェクト定義はオブジェクトデータ生成部220がグラフデータをオブジェクトデータに変換するために参照される。オブジェクト定義の例は、図12を用いて後で詳細に説明される。
本発明の実施形態のパターン記憶部230は、パターン・マッチング部210によるマッチングに使用されるカーネル・パターンを記憶する。データ・バインディング・テーブル(DBT)記憶部235は、パターン・マッチング部210によって生成されたDBT等を記憶する。既に述べた通り、DBT記憶部240に記憶されたDBTは正規化部215などによって処理され、また、オブジェクトデータ生成部によって参照される。
本発明の実施形態のオブジェクトデータ記憶部240は、オブジェクトデータ生成部220によってグラフデータを変換することによって生成されたオブジェクトデータを記憶する。オブジェクトデータ記憶部240に記憶されるオブジェクトデータは、ユーザが定義したオブジェクト定義をインスタンス化して生成されるので、それぞれのユーザが操作するアプリケーション・プログラムの目的に適したデータ構造となっている。オブジェクトデータ記憶部240に記憶されたオブジェクトデータはアプリケーション部260から直接、または、オブジェクトデータ操作部245を介して操作され得る。
本発明の実施形態のグラフデータ変更部250は、アプリケーション部260におけるユーザのアプリケーション・プログラムの操作、または、操作ログ記憶部255に記憶されたアプリケーション部260におけるアプリケーション・プログラムの操作ログに基づいて、グラフ・リポジトリ275に記憶されたグラフデータの問合せ、グラフデータの変更を実施するようにリポジトリ・アクセス部205に命令する。
本発明の実施形態の操作ログ記憶部255は、アプリケーション部260におけるアプリケーションの操作ログを記憶する。アプリケーション部260は、ユーザが操作するアプリケーションが実行されている。入出力部265は、ユーザから受けた操作をアプリケーション部260に引渡し、また、アプリケーション部260から受領したオブジェクトデータの表示等をユーザに提供する。
図3は、本発明の実施形態におけるデータ処理システムの動作を表現するフローチャート300である。処理はステップ305でスタートし、ステップ310でカーネル・パターンがユーザによって定義される。カーネル・パターンは、グラフデータとのマッチング処理をするために参照されるグラフ・マッチング・パターンの一種である。本発明の実施形態では、カーネル・パターンの定義は、ユーザがカーネル・パターン定義機能を備えるアプリケーション・プログラムを対話的に操作することによって実施され、または事前にユーザにより用意されるものとする。
図11は、本発明の実施形態におけるカーネル・パターンのデータ・セットの一例である。この例では、4種類のカーネル・パターン1105、1110、1115、1120が定義されている。本発明の実施形態では、これらのカーネル・パターンは、それぞれα、β、γ、δというラベルが付されて識別されているものとする。それぞれのカーネル・パターンは、複数のノードパターンとそれらを相互に繋ぐエッジを含む。本発明の実施形態では、エッジは有向エッジであるものとする。また、異なるカーネル・パターンに属するノードパターンの間でもエッジが存在する場合がある。本明細書では、かかる異なるカーネル・パターンに属する要素の間のエッジを「インターリンク」と称する。例えば、図10に示す例では、カーネル・パターンα、βの要素”$A”と”$B”を繋ぐインターリンク1125が示されている。それぞれのノードパターンおよびエッジには属性値が付されることができる。
カーネル・パターンのノード変数の一部には後で詳細に説明するカーネル・パターンのマッチング結果(具体的には、初期DBT)の一部を除去するために使用される制約条件が記述される。本発明の実施形態では、以下の2種類の制約条件が存在する。
第1の制約条件は、それぞれのカーネル・パターンのノード変数の種類のうち一つだけに付される。なお、第1の制約条件を付されたカーネル・パターンのノード変数を「代表ノード変数」と呼び、代表ノード変数にマッチするノードを「代表ノード」と称することがある。第1の制約条件の内容は、代表ノード変数にマッチしたグラフデータのノードが高々1つで、かつ他のカーネルのノード変数にマッチすることが禁止される、というものである(ただし、そのカーネル・パターンと他のカーネルのパターンが継承関係にある場合は除く)。また、本発明の実施形態では、代表ノード変数にマッチしたノードは、他のカーネルに属するノードとの間のインターリンクの端点となり得るものとする。本発明の実施形態では、カーネル・パターンのノード変数の名前に”$”という接頭辞を付することによって、当該ノード変数を代表ノード変数として設定するものとする。
また、第2の制約条件は、カーネル・パターンの任意のノード変数に付され得るが、カーネル・パターンは、必ずしも第2の制約条件が付されたノードを含む必要はない。なお、第2の制約条件を付されたカーネル・パターンのノード変数を「ユニーク・ノード変数」と称することがある。第2の制約条件の内容は、第2の制約条件が付されたユニーク・ノード変数にマッチするグラフデータのノードは、カーネルの代表ノードに「ユニークに対応」しなければならない、というものである。本発明の実施形態では、ユニーク・ノード変数にマッチしたノードは、他のカーネルに属するノードとの間のインターリンクの端点となり得るものとする。本発明の実施形態では、カーネル・パターンのノード変数の名前に”#”という接頭辞を付することによって、当該ノードをユニーク・ノード変数として設定するものとする。
上述の代表ノード変数およびユニーク・ノード変数にマッチするグラフデータのノードは、準同型写像の像であるデータ構造に変換できる部分であり、上述の第1および第2の制約条件は準同型写像の像であるデータ構造への変換を可能とするために使用される。
また、本発明の実施形態では、カーネル・パターンは、代表ノード変数およびユニーク・ノード変数以外に、グラフデータ内のノードをURL等の識別子により直接指定する直接指定ノード、「値」そのものが付されたリテラル・ノード、ノードに制約無くマッチするノード変数である一般ノード変数を含み得る。直接指定ノードは、ノードの名前としてグラフデータ内のノードの識別子を直接指定することによって設定するものとする。また、リテラル・ノードは、ノードの名前をダブルクオート(“”)で囲んだ「値」とすることによって設定するものとする。一般ノード変数は、ノード変数の名前の前に”?”という接頭辞を付することによって設定するものとする。)なお、本発明の実施形態では、リテラル・ノードは単一のノードとのみエッジによって接続されるものする。
このようにして、本発明の実施形態では、グラフ・リポジトリから受信したグラフデータに関して、準同型写像の像であるデータ構造に変換できる部分と、それ以外の部分とが区別される。
次に、処理はステップ315に進み、ユーザが端末を操作することによってオブジェクト定義が設定される。本発明の実施形態では、オブジェクト定義は、ユーザがオブジェクト定義機能を備えるアプリケーション・プログラムを対話的に操作することによって実施され、または事前にユーザにより用意されるものとする。本発明の実施形態におけるオブジェクト定義とは、カーネル・パターンにマッチングしたグラフのサブセットをオブジェクトデータに変換するために参照されるクラスを定義したものである。すなわち、オブジェクト定義は各オブジェクトの構造を表現し、カーネル・パターンにマッチングしたグラフのサブセット部分を、対応するオブジェクト定義をインスタンス化することによってグラフデータがオブジェクトデータへと変換されることとなる。
図12は、本発明の実施形態におけるオブジェクト定義のセットの一例である。オブジェクト定義のセットは、カーネル・パターンに対応するオブジェクト定義1205、1210、1215、1220を含み、これらは図11に示されているカーネル・パターン1105、1110、1115、1120にそれぞれ対応する。また、本発明の実施形態の例では、インターリンクに対応するオブジェクト定義1225をも含み、これは、図11に示されているインターリンク1125に対応する。
具体的には、オブジェクト定義1205は、その名称が”Member”であり、カーネル・パターンαにマッチングしたときにインスタンス化され、カーネル・パターン内のノード変数”#N1”にマッチしたノードに付された文字列(String)を属性値とする”name”という属性を有することが示されている。モデル1210は、その名称が”Group”であり、カーネル・パターンβにマッチングしたときにインスタンス化され、カーネル・パターン内のノード変数”#J”にマッチしたノードに付された整数値(Int)を属性値とする”budget”という属性を有することが示されている。なお、オブジェクト定義1210がオブジェクト定義1205を継承したクラスであることが継承関係を表現するエッジ1235によって表現されている。オブジェクト定義1210とオブジェクト定義1205の間には”members”という関連1225が存在し、それはインターリンク1125に対応する。関連1225に付された”*”記号1230は当該関連の許容多重度(何本まで関連を形成することが許されるか)であり、”*”は多重度に制限がないことを意味している。
オブジェクト定義1215は、その名称が”C”であり、カーネル・パターンγにマッチしたときにインスタンス化され、カーネル・パターン内のノード変数”#X”にマッチしたノードに付された文字列(String)を属性値とする”x”という属性を有することが示されている。オブジェクト定義1220は、その名称が”D”であり、カーネル・パターンδにマッチしたときにインスタンス化され、カーネル・パターン内のノード変数”#Y”にマッチしたノードに付された文字列(String)を属性値とする”y”という属性を有することが示されている。これらのモデル定義がどのようにオブジェクトデータの生成に使用されるかは後で詳述される。
処理はステップ320へ進み、ユーザは、アプリケーション・プログラムを操作することによって、データ処理システム上のアプリケーション部260からグラフデータ変更部250、リポジトリ・アクセス部205を介して作業対象のグラフデータの問合せをグラフ・リポジトリ275に対して行う。かかるグラフデータの問合せはアプリケーション・プログラム上のグラフデータ問合せ操作を検出して解釈し、SPARQL言語に従うクエリを生成し、グラフ・リポジトリ275に送信することによって実行される。
次いで、ステップ325においてリポジトリ・アクセス部205が入手したグラフデータが当該ユーザの操作するアプリケーション・プログラムの目的に適した形式となるように、パターン記憶部230に記憶されたカーネル・パターン、オブジェクト定義記憶部225に記憶されたオブジェクト定義を用いて、グラフデータがオブジェクトデータへ変換される。既述の通り、変換され生成されたオブジェクトデータは、オブジェクトデータ記憶部240に記憶される。当該オブジェクトデータへの変換は、図4、図5を用いて後で詳細に説明される。
処理はステップ330に進み、ステップ325において得られ、オブジェクトデータ記憶部240に記憶されたオブジェクトデータに対する操作が実行される。本発明の実施形態では、オブジェクトデータに対する操作は、オブジェクトデータの有する準同型的性質を利用してグラフ・リポジトリ270に記憶されたグラフデータに反映されることとなる。かかる処理は、図6、7、8、9、10を用いて後で詳述される。
次いで、ステップ335において作業対象のオブジェクトデータに対する操作が完了したかどうかが判断される。ステップ335において作業対象のオブジェクトデータに対する操作が完了していないと判断された場合、処理はNOの矢印を通じてステップ330へ戻り、オブジェクトデータに対する操作が継続される。ステップ335において作業対象のオブジェクトデータに対する操作が完了したと判断された場合、処理はYESの矢印を通じてステップ340へ進む。
ステップ340においては、他のグラフデータに対する操作を行うかどうかが判定される。ステップ340で他のグラフデータに対する操作を行うと判断された場合、処理はYESの矢印を介してステップ320に戻り、当該他のグラフデータの部分がグラフ・リポジトリ275から読み出され、以降同様の処理が繰り返される。ステップ340で他のグラフデータに対する操作を行わないと判断された場合、処理はNOの矢印を介してステップ345に進み終了する。
次に、図4のフローチャート320を使用して、図4のステップ320におけるグラフデータからオブジェクトデータへの変換処理の一例をより詳細に説明する。図4は、本発明の実施形態におけるデータ処理システムのオブジェクトデータ生成動作を表現するフローチャート320である。処理は、ステップ405でスタートし、ステップ410でグラフ・レポジトリ275にSPARQL言語に従うクエリを用いてグラフデータの問い合わせを行う。図13は、本発明の実施形態におけるグラフ・レポジトリから読み出され返送されたグラフデータ1300である。本発明の実施形態では、かかる一例としてのグラフデータ1300がグラフ・レポジトリに記憶されており、SPARQL言語に従うクエリを用いて作業対象として読み出されて、オブジェクトデータに変換されるものとする。
次に、処理はステップ415に進み、ステップ410において得られたグラフデータ1200に対して、カーネル・パターン記憶部230に記憶されたカーネル・パターンを用いてパターン・マッチングを行う。本発明の実施形態では、このパターン・マッチングは、ユーザが操作する端末上でカーネル・パターンごとに用意されたSPARQL言語に従うクエリを作業対象となるグラフデータに関して実行することで実施する。
図14は、本発明の実施形態におけるカーネル・パターンごとに用意されたSPARQL言語に従うグラフ・クエリのセット1400である。グラフ・クエリのセット1400に含まれるクエリ1405、1410、1415、1420、1425は、それぞれ図10に示すカーネル・パターン1105、1110、1115、1120およびインターリンク1125に対応する。このクエリをそれぞれステップ410において得られたグラフデータに対して実行することによってそれぞれのカーネル・パターンにマッチするグラフデータ1300のサブセットに関する情報が得られることとなる。
処理はステップ420に進み、ステップ415で得られたカーネル・パターンにマッチするグラフデータ1200のサブセットに関する情報としてデータ・バインディング・テーブル(DBT)と称されるテーブル構造のデータが形成される。DBTは、対応するカーネル・パターンに含まれるノードとそれにマッチしたグラフデータ内のノードとの対応関係をエントリとして含む。
図15は、本発明の実施形態における、カーネル・パターンに対応するSPARQL言語に従うグラフ・クエリによる照会結果である初期DBTsの一例である。本発明の実施形態では、カーネル・パターンαに関しては、グラフデータのサブセットが5つマッチングに成功している(テーブル1505、1510、1515、1525)。カーネル・パターンβに関しては、1つマッチングに成功している(テーブル1530)。カーネル・パターンγについては、1つマッチングに成功している(テーブル1535)。カーネル・パターンδについては、グラフデータのサブセットはマッチせず、DBTは形成されていない。インターリンクmembersについては、2つのエッジがマッチングに成功している(テーブル1540、1545)。
処理はステップ425に進み、正規化の処理が実施される。ここで、図5のフローチャート425を使用して、図5のステップ425におけるDBTの正規化の処理の一例をより詳細に説明する。まず、処理はステップ505でスタートし、ステップ510でステップ420において得られた初期DBTをスキャンし、複数のDBTにおいて代表ノード(カーネル・パターンにおいて”$”の接頭辞が付されたノード)とマッチしたグラフデータ内のノードを特定する。本発明の実施形態では、ノードb1(DBT1510およびDBT1530おいて代表ノードとマッチしている)およびノードu1(DBT1505およびDBT1535において代表ノードにマッチしている)が特定される。
次いで、ステップ515において、ステップ510で特定されたノードが含まれないDBT、すなわち、そのDBTの代表ノードにマッチしたグラフデータのノードが他のDBTにおいて代表ノードにマッチしていないDBTに関して、代表ノードに対応するオブジェクト定義が割り当てられる。その結果、DBT1515、1520、1525の代表ノード(すなわち、a1、a2、a3)にはそれぞれオブジェクト定義1205(名称:”Member”)が割り当てられる。
処理はステップ520に進み、ステップ510において特定されたノードが含まれているDBT(複数存在する)について、当該DBTに対応するオブジェクト定義の間に継承関係にある場合に、継承された側のオブジェクト定義に対応するDBTを除去したうえで、継承をした側のオブジェクト定義に対応するDBTに対応するオブジェクト定義を代表ノードに割り当てる。本発明の実施形態では、DBT1510とDBT1530について、それぞれに対応するオブジェクト定義1205、1210は継承関係にあるので、継承された側であるDBT1510が除去され、継承した側であるDBT1530が残され、代表ノード(すなわち、b1)対応するオブジェクト定義1210(名称:”Group”)が割り当てられる。
次いでステップ525において、ステップ510特定されたノードが含まれているDBTについて、当該DBTに対応するオブジェクト定義の間に継承関係にない場合に、当該DBTのすべてが除去される。本発明の実施形態では、DBT1505、DBT1535が除去される。
上述したステップ510ないし525が実行されることによって、第1の制約条件を用いたDBTの除去および代表ノードへのオブジェクト定義の割り当てが実現する。その結果、本発明の実施形態では、DBT1505、1510、1535が除去され、DBT1515、1520、1525、1530、DBT1540、DBT1545がDBT記憶部235に残されることとなる。なお、本発明の実施形態では、上述のDBTの除去およびオブジェクト定義の割り当ては、図16に示すオブジェクト定義割り当てテーブル1600を生成し、処理することによって実施される。
処理はステップ530に進み、上述したカーネル・パターン内の第2の制約条件を用いたDBTの除去が実行される。本発明の実施形態では、カーネル・パターン1105の第2の制約条件を表す接頭辞”#”が付されているユニーク・ノード”#N1”について、DBT1515、1520でノード”n1”が対応している。ユニーク・ノードである”#N1”はカーネル・パターン1105の代表ノード”$A”にマッチするノードにユニークに対応していなければならないので、DBT1515およびDBT1420が除去されることとなる。その結果として、DBT1525、DBT1530、DBT1540、DBT1545がDBT記憶部235に残されることとなる。
次いで、ステップ535において、インターリンクに対応するDBTの除去が実行される。具体的には、それまでのカーネル・パターンに対応するDBTの正規化処理(ステップ505〜530)を実行した結果としてDBT記憶部235に残っているDBTを参照し、それらの内容と整合しないインターリンクに対応するDBTを除去する。本発明の実施形態では、DBT1540がDBT1525、DBT1530に対応しないので除去される。その結果、DBT1525、1530、1545がDBT記憶部235に残ることとなる。
処理はステップ540に進み、インターリンクの多重度がオブジェクト定義に記述された許容多重度を満たしているかどうかが判定される。また、ステップ540では、許容多重度を満たしていなかった場合の処理も実施される。かかる処理は、たとえば、ユーザに警告を提示してどのインターリンクをインスタンス化するかを選択させる、あるいは、そこで処理を停止するなど様々なやり方が考えられるが、当業者は適宜かかる処理を実施することができるのでここでは詳細な説明は省略する。
次いでステップ545において、インターリンクに対応するDBTの内容が、当該インターリンクの参照元であるオブジェクトに対応するDBTに反映される。具体的には、当該インターリンクの名称と参照先ノードの名称の対応を含むエントリが参照元であるオブジェクトに対応するDBTに追加される。本発明の実施形態では、DBT1545の内容がDBT1530に追加される。処理はステップ544に進み終了する。本発明の実施形態における正規化処理が実施されたDBTの内容を図17に示す。
図4に説明を戻し、ステップ430において、ステップ425で正規化されたDBT記憶部240に記憶されたDBTと、オブジェクト定義記憶部230に記憶されたオブジェクト定義を参照し、グラフデータをオブジェクトデータに変換する、つまり、オブジェクト定義をインスタンス化することによって、オブジェクトデータを生成してオブジェクトデータ記憶部245に記憶する。図18に、本発明の実施形態における生成されたオブジェクトデータの例を示す。次いで処理はステップ435に進み、オブジェクトデータがアプリケーション部260のアプリケーション・プログラムに送られ、入出力部270を介してユーザに視覚的に提示される。そして、ステップ440において処理は終了する。
次に、図6のフローチャート330を使用して、図3のステップ330におけるオブジェクトデータの操作処理およびそれに伴うグラフ・リポジトリ内のグラフデータへの反映処理の一例をより詳細に説明する。図5は、本発明の実施形態におけるデータ処理システムのオブジェクトを操作した場合の動作を表現するフローチャートである。処理は、ステップ605からスタートし、ステップ610において操作ログ記憶部255が、ユーザがアプリケーション・プログラムにおいて実行したオブジェクトデータ操作のログ(本明細書において、単に「操作ログ」という)をアプリケーション部260から受け取り、記憶する。
処理はステップ615に進み、ステップ610において操作ログ記憶部255に記憶された操作ログから1つ操作を読み込む。次いで処理はステップ520に進み、読み込んだ操作がオブジェクトの生成(CREATE)、オブジェクトの更新(UPDATE)、オブジェクトの削除(DELETE)のいずれであるかを判定する。本発明の実施形態において、オブジェクトの生成(CREATE)操作は、新たにオブジェクトを追加することを含む。また、オブジェクトの更新(UPDATE)操作は、既に存在するオブジェクトの属性値の変更、オブジェクト間の関連の追加または削除を含む。さらに、オブジェクトの削除(DELETE)操作は、既に存在するオブジェクトを削除することを含む。
ステップ620において、ステップ615で読み込んだ操作がオブジェクトの生成(CREATE)であると判定された場合、処理はCREATEのラベルが付された矢印を介してステップ625へ進み、ステップ615で読み込んだ操作の対象であるオブジェクトに対応するDBTに対してCREATE操作に対応するDBT処理が実行され、次いでステップ640に進む。このCREATE操作に対応するDBT処理は、図7のフローチャートを用いて後で詳細に説明される。
ステップ620において、ステップ515で読み込んだ操作がオブジェクトの更新(UPDATE)であると判定された場合、処理はUPDATEのラベルが付された矢印を介してステップ630へ進み、ステップ615で読み込んだ操作の対象であるオブジェクトに対応するDBTに対してUPDATE操作に対応するDBT処理が実行され、次いでステップ640に進む。このUPDATE操作に対応するDBT処理は、図8のフローチャートを用いて後で詳細に説明される。
ステップ620において、ステップ615で読み込んだ操作がオブジェクトの削除(DELETE)であると判定された場合、処理はDELETEのラベルが付された矢印を介してステップ635に進み、ステップ615で読み込んだ操作の対象であるオブジェクトに対応するDBTに対してDELETE操作に対応するDBT処理が実行され、次いでステップ640に進む。このDELETE操作に対応するDBT処理は、図9のフローチャートを用いて後で詳細に説明される。
ステップ640では、ステップ615で読み込まれた操作の対象であるオブジェクトに対応するDBTのエントリがすべて埋まっているかどうかが判定される。ステップ640でDBTのエントリが埋まっていると判定されなかった場合、処理はNOの矢印を介してステップ650に進む。
ステップ640でDBTのエントリが埋まっていると判定された場合、処理はステップ645に進み、DBTを用いたグラフ・リポジトリ275内のグラフデータの変更が実施される。このグラフデータの変更処理は、図10のフローチャートを用いて後で詳細に説明される。
処理はステップ650に進み、操作ログにまだ操作が残っているかどうかが判定される。ステップ650で残っていると判定された場合は、処理はYESの矢印からステップ615に戻り、操作ログ内の次の一つの操作について同様の処理を繰り返す。ステップ650で残っていないと判定された場合、処理はNOの矢印からステップ655へ進み終了する。
次に、図7のフローチャート625を使用して、図6のステップ625におけるオブジェクトデータ内のオブジェクトの生成(CREATE)操作に対応するDBT処理の一例をより詳細に説明する。図6は、本発明の実施形態におけるデータ処理システムのオブジェクトの生成(CREATE)操作に対応するDBT処理の動作を表現するフローチャートである。処理はステップ705からスタートし、ステップ710においてステップ615で読み込んだ生成(CREATE)操作の対象となるオブジェクトに対応するカーネル・パターンを特定する。
次いで、ステップ715において、対象オブジェクトに対応するカーネル・パターンの代表ノードにマッチするノードのための識別子を決定する。次に、ステップ720において当該カーネル・パターンに対応するDBTを新規に生成し、ステップ725において新規に生成されたDBTにカーネル・パターンの代表ノードと、当該代表ノードにマッチするグラフデータ内のノード(ステップ715で生成した識別子によって表される)のエントリを追加する。
処理はステップ730において共有ノードを問い合わせるためのSPARQL言語に従うクエリをカーネル・パターンから生成する。共有ノードとは、あるオブジェクトに関連するグラフデータのノードのうち、他のオブジェクトにも関連し得るノードをいうものとする。すなわち、共有ノードは、グラフデータの準同型写像の像であるデータ構造に変換できない部分である。本発明の実施形態では、一般ノード変数、直接指定ノード、リテラル・ノードのみから成るパターンにマッチするノードが共有ノードとなり得る。
本発明の実施形態では、グラフ・リポジトリ275には2つのノードとそれらを接続するエッジの組の集合としてRDFフォーマットに従うグラフデータが記憶されているものとする。したがって、共有ノードを問い合わせるためのクエリは、カーネル・パターン内の(1)2つの一般ノード変数とそれらを接続するエッジの組(2)一般ノード変数と直接指定ノードおよびそれらを接続するエッジの組(3)一般ノード変数とリテラル・ノードおよびそれらを接続するエッジの組(4)2つの直接指定ノードとそれらを接続するエッジの組(5)直接指定ノードとリテラル・ノードおよびそれらを接続するエッジの組、を抽出して、これらの条件を満たすノードを問い合わせるようなクエリを生成するとよい。
次いでステップ735において、ステップ730で生成したクエリをグラフ・リポジトリ275に送信し、返送されてきた共有ノードの情報に基づいて、ステップ725において生成したDBTに共有ノードに対応するエントリを追加する。そして、処理はステップ740に進み、終了する。この時点で、代表ノードと共有ノード(存在する場合)についてのみエントリが存在し、残余のノード等については空のエントリとなっているDBTが形成されることとなる。
図8のフローチャート630を使用して、図6のステップ630におけるオブジェクトデータ内のオブジェクトの更新(UPDATE)操作に対応するDBT処理の一例をより詳細に説明する。図7は、本発明の実施形態におけるデータ処理システムのオブジェクトの更新(UPDATE)操作に対応するDBT処理の動作を表現するフローチャートである。処理はステップ805からスタートし、ステップ810においてステップ615で読み込んだ更新(UPDATE)操作の対象となるオブジェクトに対応するDBTを特定する。
次いで、ステップ815においてステップ615で読み込んだ更新(UPDATE)操作の内容に応じて、ステップ810において特定したDBTのエントリを更新する。処理はステップ820に進み、ステップ815において更新したエントリに更新マークが付けられ、ステップ825にて処理が終了する。
図9のフローチャート635を使用して、図6のステップ625におけるオブジェクトデータ内のオブジェクトの削除(DELETE)操作に対応するDBT処理の一例をより詳細に説明する。図8は、本発明の実施形態におけるデータ処理システムのオブジェクトの削除(DELETE)操作に対応するDBT処理の動作を表現するフローチャートである。処理はステップ905からスタートし、ステップ910においてステップ615で読み込んだ削除(DELETE)操作の対象となるオブジェクトに対応するDBTを特定する。次いで、ステップ915においてステップ910で特定されたDBTに削除マークが付され、ステップ920にて処理が終了する。
次に、図10のフローチャート645を使用して、図6のステップ645におけるDBTに基づくグラフ・リポジトリ内のグラフデータの変更処理の一例をより詳細に説明する。図10は、本発明の実施形態におけるデータ処理システムのグラフデータ変更処理の動作を表現するフローチャートである。処理はステップ1005からスタートし、ステップ1010で、ステップ615で読み込んだ操作の対象となるオブジェクトに対応するカーネル・パターンを特定する。
処理はステップ1015に進み、ステップ615で読み込んだ操作の対象となるオブジェクトに対応するDBTに削除マークが付されているかどうかが判定される。ステップ1015においてにDBTに削除マークが付されていると判定された場合、処理はYESの矢印からステップ1020に進む。
ステップ1020では、ステップ1010において特定されたカーネル・パターンを用いて、操作対象のオブジェクトに含まれるグラフデータのノードのうち、共有ノードではないノードを特定する。具体的には、ステップ730とともに説明した共有ノードを問い合わせるクエリを生成してグラフ・リポジトリ275に送信して、共有ノードを特定し、操作対象のオブジェクトに含まれるグラフデータのノードから特定された共有ノードを除外するとよい。
次いで、ステップ1025において、ステップ1020で特定された共有ノードでないノードの集合からノードを一つ取り出し、処理はステップ1030に進む。ステップ1030においては、ステップ1025で取り出されたノードに関連するグラフデータのノードおよび/またはエッジを、グラフ・リポジトリに問合せを行うことによって削除する。ステップ1035において、ステップ1020で特定されたノードがまだ残っているかどうかが判定される。残っていると判定された場合は、YESの矢印を介してステップ1025に戻り、同様の処理が繰り返される。残っていないと判定された場合は、NOの矢印からステップ1060に進み、処理は終了する。
ステップ1015においてにDBTに削除マークが付されていると判定されなかった場合、処理はNOの矢印からステップ1040に進む。ステップ1040では、ステップ615で読み込んだ操作の対象となるオブジェクトに対応するDBT内の更新マークが付けられたエントリが特定される。
次いで、ステップ1045において、ステップ1040で特定された更新マークが付けられたエントリの集合からエントリを一つ取り出し、処理はステップ1050に進む。ステップ1050においては、ステップ1045で取り出されたエントリの内容に従って、グラフ・リポジトリ内のグラフデータのノードおよび/またはエッジを更新する。ステップ1055において、ステップ1040で特定されたエントリがまだ残っているかどうかが判定される。残っていると判定された場合は、YESの矢印を介してステップ1045に戻り、同様の処理が繰り返される。残っていないと判定された場合は、NOの矢印からステップ1060に進み、処理は終了する。
以上、オブジェクトデータの操作処理およびそれに伴うグラフ・リポジトリ内のグラフデータへの反映処理を説明したが、以下に2つの例によってオブジェクト操作とそれに伴うDBTの処理等を示す。
図19は、オブジェクト操作の流れの第1の例である。この第1の例では、図18に示されたオブジェクトデータに新たにオブジェクト1905("Member”)が生成(CREATE)され、次いで、生成されたオブジェクト1905に属性値”Yamada”が入力され(UPDATE)、次いで、オブジェクト1810およびオブジェクト1905の間に関連1915が追加された(UPDATE)ものとする。
図20は、オブジェクト操作の流れの第1の例の操作ログである。上述のオブジェクト生成操作、属性値の入力操作、関連の追加操作がそれぞれ操作ログ2005、2010、2015として記録されている。
図21は、オブジェクト操作の流れの第1の例に応じて変化するDBTを示している。まず、オブジェクト1905の生成に対応する操作ログ2005を読み込んでDBT処理をすることによって、代表ノード変数(”$A”)と一般ノード変数(”?S1”)のエントリのみが存在するDBT2105が生成される。次いで、属性値”Yamada”の入力に対応する操作ログ2010を読み込んでDBT処理を行うことによって、DBT2105のユニーク・ノード”#N”のエントリが更新される。そして、すべてのエントリが存在することとなったDBT2105に基づいて、グラフ・リポジトリ275内のグラフデータの変更が実施される。
次いで、関連1915の追加に対応する操作ログ2015を読み込んでDBT処理をすることによって、DBT1530のインターリンク”members”のエントリに関連1915に対応する情報2110が追加される。そして、DBT1530に基づいて、グラフ・リポジトリ275内のグラフデータの変更が実施される。これらの変更がされた結果のグラフ・リポジトリ275内のグラフデータを図22に示す。
図23は、オブジェクト操作の流れの第2の例である。この第2の例では、図22に示された第1の例の操作が施された後のオブジェクトデータに対して、まず既存のオブジェクト2305の属性値を”Suzuki”から”Suzuta”に変更(UPDATE)し、次いで、関連1915の削除(UPDATE)およびオブジェクト1905の削除(DELETE)を行ったものとする
図24は、オブジェクト操作の流れの第2の例の操作ログである。上述のオブジェクト属性値の変更操作、関連の削除捜査、オブジェクトの削除操作がそれぞれ操作ログ2405、2410、2415として記録されている。
図25は、オブジェクト操作の流れの第2の例に応じて変化するDBTを示している。まず、オブジェクト2305の属性値変更に対応する操作ログ2405を読み込んでDBT処理をすることによって、DBT1525の属性値2505が変更される。そして、DBT1525に基づいて、グラフ・リポジトリ275内のグラフデータの変更が実施される。
次いで、関連1915の削除に対応する操作ログ2410を読み込んでDBT処理をすることによって、DBT1530のインターリンク”members”のエントリに関連1915に対応する情報2110が削除される。そして、DBT1530に基づいて、グラフ・リポジトリ275内のグラフデータの変更が実施される。さらに、オブジェクト1905の削除操作に対応する操作ログ2415を読み込んでDBT処理をすることによって、DBT2105に削除マーク2510が付される。この削除マーク2510が付されたDBT2105に基づいて、グラフ・リポジトリ275内のグラフデータの変更が実施される。これらの変更がされた結果のグラフ・リポジトリ275内のグラフデータを図26に示す。
図27は、本発明の実施の形態による端末100、105、サーバ110等を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。情報処理装置は、バス2に接続されたCPU(中央処理装置)1とメインメモリ4を含んでいる。ハードディスク装置13、30、およびCD−ROM装置26、29、フレキシブル・ディスク装置20、MO装置28、DVD装置31のようなリムーバブル・ストレージ(記録メディアを交換可能な外部記憶システム)がフロッピーディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。メインメモリ4にロードされることによってコンピュータ・プログラムは実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
情報処理装置は、キーボード/マウス・コントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。情報処理装置は、視覚データをユーザに提示するための表示装置11にDAC/LCDC10を経由して接続される。
情報処理装置は、ネットワーク・アダプタ18(イーサネット(R)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。図示はされていないが、パラレルポートを介してプリンタと接続することや、シリアルポートを介してモデムを接続することも可能である。
以上の説明により、本発明の実施の形態によるデータ処理システムを実現するのに好適な情報処理装置は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
本発明の実施の形態において使用される情報処理装置の各ハードウェア構成要素を、複数のマシンを組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。
本発明の実施の形態のデータ処理システムは、マイクロソフト・コーポレーションが提供するWindows(R)オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するMacOS(R)、X Window Systemを備えるUNIX(R)系システム(たとえば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するAIX(R))のような、GUI(グラフィカル・ユーザー・インターフェース)マルチウインドウ環境をサポートするオペレーティング・システムを採用する。
以上から、本発明の実施の形態において使用されるデータ処理システムは、特定のマルチウインドウ・オペレーティング・システム環境に限定されるものではないことを理解することができる。
以上、本発明の実施形態によれば、グラフデータを各種アプリケーションによる操作を元のグラフデータに反映することができるデータ構造に変換する、効率的なシステム、ソフトウェア、および方法が実現される。従って、オブジェクト・ハンドリング・システムを操作してオブジェクトデータを操作することによってグラフ・リポジトリに格納されたグラフデータを編集するユーザの生産性を高めることができることが容易に理解できる。
また、本発明は、ハードウェア、ソフトウェア、またはハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実行において、所定のプログラムを有するデータ処理システムにおける実行が典型的な例として挙げられる。かかる場合、該所定プログラムが該データ処理システムにロードされ実行されることにより、該プログラムは、データ処理システムを制御し、本発明にかかる処理を実行させる。このプログラムは、任意の言語・コード・表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接、または1.他の言語・コード・表記への変換、2.他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。
もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、MO、CD−ROM、DVD、ハードディスク装置、ROM、MRAM、RAM等の任意のコンピュータ読み取り可能な記録媒体に格納することができる。かかるプログラムは、記録媒体への格納のために、通信回線で接続する他のデータ処理システムからダウンロードしたり、他の記録媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記録媒体に格納することもできる。また、様々な形態で、本発明を実施するプログラム製品を提供することも勿論可能であることにも留意されたい。
上記の実施の形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。例えば、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。

Claims (17)

  1. パターン記憶部と、処理部と、生成部とを備えるコンピュータにより、1以上のグラフ・マッチングのためのパターンを用いて、ノードとエッジを含むグラフデータの少なくとも一部をその準同型写像の像であるデータ構造に変換する方法であって、
    前記パターン記憶部により、パターンに1つ存在する代表ノード変数であって、当該代表ノード変数にマッチしたグラフデータのノードが高々1つで、かつ他のパターンのノード変数にマッチすることが禁止されるという第1の制約を有する代表ノード変数を含むパターンを提供するステップと、
    前記処理部により、前記グラフデータと前記パターンのマッチング処理を行い、前記第1の制約を含む制約に違反しないマッチング結果を得るステップと、
    前記生成部により、前記制約に違反しないマッチング結果に対応するデータ構造を生成するステップと、
    を含む、方法。
  2. 前記マッチング処理を行うステップは、前記処理部により、前記パターンにマッチするグラフデータのサブセットに関する情報をマッチング結果として得るステップと、前記処理部により、前記制約に違反するグラフデータのサブセットに関する情報をマッチング結果から除去するステップと、を含む請求項1に記載の方法。
  3. グラフデータのサブセットに関する情報が、パターンに含まれるノード変数とそれにマッチしたグラフデータ内のノードとの対応関係をエントリとして含むテーブルである、請求項2に記載の方法。
  4. 前記マッチング結果から除去するステップが、前記処理部により、前記制約に違反するグラフデータのサブセットに対応する前記テーブルを除去するステップを含む、請求項3に記載の方法。
  5. 前記代表ノードが、他のパターンに属するノードとの間のインターリンクの端点となり得る、請求項1に記載の方法。
  6. 前記マッチング処理を行うステップにおいて代表ノードがマッチした複数のパターンが継承関係にある場合、前記生成部により、継承した側のパターンへのマッチング結果に対応するデータ構造が生成される、請求項1に記載の方法。
  7. 前記パターンは、1以上の第2の種類のノード変数を含み、前記第2の種類のノード変数にマッチするグラフデータのノードがパターンの代表ノード変数にマッチするグラフデータのノードにユニークに対応しなければならないという第2の制約を有し、前記生成部により、前記第1の制約および第2の制約に違反しないマッチング結果に対応するデータ構造が生成される、請求項1に記載の方法。
  8. 前記第2の種類のノード変数にマッチするノードが、他のパターンに属するノードとの間のインターリンクの端点となり得る、請求項1に記載の方法。
  9. 前記マッチング処理を行うステップは、前記処理部により、パターンに対応するグラフ・クエリを前記グラフデータに対して実行するステップを含む、請求項1に記載の方法。
  10. 前記マッチング処理を行うステップは、前記処理部により、異なるパターンに属するノードを接続するインターリンクのマッチング処理を行うステップを含む、請求項1に記載の方法。
  11. 前記マッチング処理を行うステップは、前記処理部により、ノード変数に関するマッチング結果と整合しないインターリンクのマッチング結果を除去するステップを含む、請求項10に記載の方法。
  12. 前記マッチング処理を行うステップは、前記処理部により、インターリンクのマッチング処理結果をノード変数のマッチング処理結果にマージするステップを含む、請求項10に記載の方法。
  13. 前記データ構造を生成するステップは、前記生成部により、前記パターンに対応するデータ構造のクラス定義をインスタンス化することによってデータ構造を生成するステップを含む、請求項1に記載の方法。
  14. 前記コンピュータは入出力部を更に備え、生成したデータ構造をアプリケーションに引渡し、前記入出力部を介してユーザに提示するステップをさらに含む、請求項1に記載の方法。
  15. 請求項1ないし14のいずれかに記載の方法のすべてのステップをコンピュータに実行させることができる、プログラム。
  16. 1以上のグラフ・マッチングのためのパターンを用いて、ノードとエッジを含むグラフデータの少なくとも一部をその準同型写像の像であるデータ構造に変換するためのプログラムであって、
    パターンに1つ存在する代表ノード変数であって、当該代表ノード変数にマッチしたグラフデータのノードが高々1つで、かつ他のパターンのノード変数にマッチすることが禁止されるという第1の制約を有する代表ノード変数を含むパターンを提供するステップと、
    前記グラフデータと前記パターンのマッチング処理を行い、前記第1の制約を含む制約に違反しないマッチング結果を得るステップと、
    前記制約に違反しないマッチング結果に対応するデータ構造を生成するステップと、
    をコンピュータに実行させる、プログラム。
  17. 1以上のグラフ・マッチングのためのパターンを用いて、ノードとエッジを含むグラフデータの少なくとも一部をその準同型写像の像であるデータ構造に変換する装置であって、
    パターンに1つ存在する代表ノード変数であって、当該代表ノード変数にマッチしたグラフデータのノードが高々1つで、かつ他のパターンのノード変数にマッチすることが禁止されるという第1の制約を有する代表ノード変数を含むパターンを記憶するパターン記憶部と、
    前記グラフデータと前記パターンのマッチング処理を行い、前記第1の制約を含む制約に違反しないマッチング結果を得る処理部と、
    前記制約に違反しないマッチング結果に対応するデータ構造を生成する生成部と、
    を備える、装置。
JP2011113360A 1920-05-20 2011-05-20 グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム Expired - Fee Related JP5689361B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011113360A JP5689361B2 (ja) 2011-05-20 2011-05-20 グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム
US13/474,364 US8943084B2 (en) 1920-05-20 2012-05-17 Method, program, and system for converting part of graph data to data structure as an image of homomorphism
US13/477,915 US8914391B2 (en) 2011-05-20 2012-05-22 Method, program, and system for converting part of graph data to data structure as an image of homomorphism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011113360A JP5689361B2 (ja) 2011-05-20 2011-05-20 グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム

Publications (2)

Publication Number Publication Date
JP2012243123A JP2012243123A (ja) 2012-12-10
JP5689361B2 true JP5689361B2 (ja) 2015-03-25

Family

ID=47175731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011113360A Expired - Fee Related JP5689361B2 (ja) 1920-05-20 2011-05-20 グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム

Country Status (2)

Country Link
US (2) US8943084B2 (ja)
JP (1) JP5689361B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10318583B2 (en) 2013-03-15 2019-06-11 The Board Of Trustees Of The Leland Stanford Junior University Systems and methods for recommending relationships within a graph database
US9785773B2 (en) * 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
CN104991963B (zh) * 2015-07-23 2018-09-25 中国工商银行股份有限公司 文件处理方法和装置
US10102369B2 (en) 2015-08-19 2018-10-16 Palantir Technologies Inc. Checkout system executable code monitoring, and user account compromise determination system
US9838422B2 (en) 2015-09-15 2017-12-05 International Business Machines Corporation Detecting denial-of-service attacks on graph databases
US11275894B2 (en) 2016-11-21 2022-03-15 Sap Se Cognitive enterprise system
US10592557B2 (en) * 2017-03-31 2020-03-17 Microsoft Technology Licensing, Llc Phantom results in graph queries
US11501241B2 (en) 2020-07-01 2022-11-15 International Business Machines Corporation System and method for analysis of workplace churn and replacement
CN112948675B (zh) * 2021-02-26 2023-01-10 卓尔智联(武汉)研究院有限公司 数据处理方法、装置、电子设备及存储介质
CN112732727B (zh) * 2021-04-06 2021-06-18 南京冰鉴信息科技有限公司 一种图指标流批一体化处理方法及装置
CN115470377A (zh) * 2021-06-11 2022-12-13 清华大学 流式图数据处理方法及系统

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58208886A (ja) 1982-05-31 1983-12-05 武蔵エンジニアリング株式会社 紙葉の表裏判別方法
FR2675606B1 (fr) 1991-04-22 1993-07-16 France Telecom Procede de decompilation pour la realisation de graphes au moyen d'un ordinateur.
JPH05233298A (ja) 1992-02-24 1993-09-10 Nippon Telegr & Teleph Corp <Ntt> 環同型判定方式
JPH0916389A (ja) 1995-07-03 1997-01-17 Nippon Telegr & Teleph Corp <Ntt> プログラム部品自動生成方法及び装置
US5854929A (en) 1996-03-08 1998-12-29 Interuniversitair Micro-Elektronica Centrum (Imec Vzw) Method of generating code for programmable processors, code generator and application thereof
JPH10154976A (ja) 1996-11-22 1998-06-09 Toshiba Corp タンパーフリー装置
JP3137590B2 (ja) 1996-12-04 2001-02-26 三菱電機株式会社 データ統合手順決定装置およびその応用による物品の製造手順決定装置
US6745160B1 (en) 1999-10-08 2004-06-01 Nec Corporation Verification of scheduling in the presence of loops using uninterpreted symbolic simulation
JP2001134575A (ja) * 1999-10-29 2001-05-18 Internatl Business Mach Corp <Ibm> 頻出パターン検出方法およびシステム
JP3773426B2 (ja) 2001-07-18 2006-05-10 株式会社日立製作所 データマイニングにおける前処理方法及び前処理システム
EP1306775A1 (en) 2001-10-29 2003-05-02 BRITISH TELECOMMUNICATIONS public limited company Machine translation
US7644361B2 (en) 2002-12-23 2010-01-05 Canon Kabushiki Kaisha Method of using recommendations to visually create new views of data across heterogeneous sources
US20040148278A1 (en) * 2003-01-22 2004-07-29 Amir Milo System and method for providing content warehouse
US20040260683A1 (en) * 2003-06-20 2004-12-23 Chee-Yong Chan Techniques for information dissemination using tree pattern subscriptions and aggregation thereof
US7263532B2 (en) 2003-09-23 2007-08-28 Microsoft Corporation Region-based memory management for object-oriented programs
US7702725B2 (en) 2004-07-02 2010-04-20 Hewlett-Packard Development Company, L.P. Digital object repositories, models, protocol, apparatus, methods and software and data structures, relating thereto
US20060129745A1 (en) * 2004-12-11 2006-06-15 Gunther Thiel Process and appliance for data processing and computer program product
JP2006185211A (ja) 2004-12-28 2006-07-13 Internatl Business Mach Corp <Ibm> プログラム解析装置、テスト実行装置、その解析方法及びプログラム
US8316060B1 (en) * 2005-01-26 2012-11-20 21st Century Technologies Segment matching search system and method
JP4710459B2 (ja) 2005-07-19 2011-06-29 富士ゼロックス株式会社 ツリー構造表示プログラム、ツリー構造表示方法、ツリー構造表示装置
WO2007052285A2 (en) * 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
US7530105B2 (en) 2006-03-21 2009-05-05 21St Century Technologies, Inc. Tactical and strategic attack detection and prediction
US8214354B2 (en) 2006-03-31 2012-07-03 Oracle International Corporation Column constraints based on arbitrary sets of objects
CA2669986C (en) 2006-11-20 2015-03-17 Matrikon Inc. Ontological database design
JP4965995B2 (ja) 2006-12-22 2012-07-04 株式会社東芝 プログラム処理方法、処理プログラム及び情報処理装置
JP4935405B2 (ja) 2007-02-16 2012-05-23 日本電気株式会社 因果関係分析装置、因果関係分析方法及びプログラム
US7834875B2 (en) * 2007-04-02 2010-11-16 International Business Machines Corporation Method and system for automatically assembling stream processing graphs in stream processing systems
US7882485B2 (en) 2007-04-02 2011-02-01 International Business Machines Corporation Method for modeling components of an information processing application using semantic graph transformations
US8098248B2 (en) 2007-04-02 2012-01-17 International Business Machines Corporation Method for semantic modeling of stream processing components to enable automatic application composition
US8117233B2 (en) 2007-05-14 2012-02-14 International Business Machines Corporation Method and system for message-oriented semantic web service composition based on artificial intelligence planning
US8285748B2 (en) 2008-05-28 2012-10-09 Oracle International Corporation Proactive information security management
JP2010033500A (ja) 2008-07-31 2010-02-12 Toshiba Corp Guiデータ変換システムおよびguiデータ変換方法
US9053437B2 (en) 2008-11-06 2015-06-09 International Business Machines Corporation Extracting enterprise information through analysis of provenance data
US8356044B2 (en) 2009-01-27 2013-01-15 Palo Alto Research Center Incorporated System and method for providing default hierarchical training for social indexing
US8190555B2 (en) 2009-01-30 2012-05-29 Hewlett-Packard Development Company, L.P. Method and system for collecting and distributing user-created content within a data-warehouse-based computational system
US8250048B2 (en) 2009-04-20 2012-08-21 Oracle International Corporation Access control for graph data
JP2010256978A (ja) 2009-04-21 2010-11-11 Nec Corp コンフィグレーションデータ検証装置、検証方法及びプログラム
US8204865B2 (en) 2009-08-26 2012-06-19 Oracle International Corporation Logical conflict detection
US8659604B2 (en) * 2009-09-29 2014-02-25 International Business Machines Corporation Dimensional reduction mechanisms for representing massive communication network graphs for structural queries
US8631043B2 (en) 2009-12-09 2014-01-14 Alcatel Lucent Method and apparatus for generating a shape graph from a binary trie
US8429150B2 (en) 2010-03-14 2013-04-23 Intellidimension, Inc. Distributed query compilation and evaluation system and method
US8874432B2 (en) * 2010-04-28 2014-10-28 Nec Laboratories America, Inc. Systems and methods for semi-supervised relationship extraction
US8886631B2 (en) * 2010-06-04 2014-11-11 Yale University Query execution systems and methods
US11068657B2 (en) * 2010-06-28 2021-07-20 Skyscanner Limited Natural language question answering system and method based on deep semantics
US9495429B2 (en) 2010-07-09 2016-11-15 Daniel Paul Miranker Automatic synthesis and presentation of OLAP cubes from semantically enriched data sources
US8769516B2 (en) * 2010-08-19 2014-07-01 International Business Machines Corporation Systems and methods for automated support for repairing input model errors
US8872828B2 (en) * 2010-09-16 2014-10-28 Palo Alto Research Center Incorporated Method for generating a graph lattice from a corpus of one or more data graphs
US8489649B2 (en) 2010-12-13 2013-07-16 Oracle International Corporation Extensible RDF databases
US8296708B1 (en) 2011-05-24 2012-10-23 Springsoft Inc. Method of constraint-hierarchy-driven IC placement
US9129039B2 (en) * 2011-10-18 2015-09-08 Ut-Battelle, Llc Scenario driven data modelling: a method for integrating diverse sources of data and data streams
US8418249B1 (en) * 2011-11-10 2013-04-09 Narus, Inc. Class discovery for automated discovery, attribution, analysis, and risk assessment of security threats

Also Published As

Publication number Publication date
US8943084B2 (en) 2015-01-27
US20120296923A1 (en) 2012-11-22
US20120296924A1 (en) 2012-11-22
JP2012243123A (ja) 2012-12-10
US8914391B2 (en) 2014-12-16

Similar Documents

Publication Publication Date Title
JP5689361B2 (ja) グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム
JP5745932B2 (ja) グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム
US9405513B2 (en) Systems and methods for graphically developing rules for transforming models between description notations
US8701087B2 (en) System and method of annotating class models
US8782597B2 (en) Ontology updating apparatus, method and system
US9032002B2 (en) Single file serialization for physical and logical meta-model information
Li et al. An admissibility-based operational transformation framework for collaborative editing systems
KR20080057288A (ko) It 운영/정책 모델링
WO2008034086A1 (en) Transformation of modular finite state transducers
EP2062133A2 (en) Transformation of modular finite state transducers
US9256400B2 (en) Decision service manager
US8108768B2 (en) Improving efficiency of content rule checking in a content management system
US20110296373A1 (en) Command line shell command generation based on schema
US10956659B1 (en) System for generating templates from webpages
US11068468B2 (en) Extensible validation framework
EP3999917B1 (en) Method and system for generating a digital representation of asset information in a cloud computing environment
US10644939B2 (en) Decision service manager
JP2014081886A (ja) ファイル管理装置およびコンピュータプログラム
Hess Evaluating Domain-Driven Design for Refactoring Existing Information Systems
Lassen et al. Translating message sequence charts to other process languages using process mining
Karnok et al. Data type definition and handling for supporting interoperability across organizational borders
JP5879235B2 (ja) 半構造電文の並列検証方法、装置およびプログラム
Göres et al. A metadata management framework for dynamic information integration
Wang et al. Towards a Consistent Feature Model using OWL.
Goldschmidt et al. FURCAS: View Based Textual Modelling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150128

R150 Certificate of patent or registration of utility model

Ref document number: 5689361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees