[go: up one dir, main page]

JP5745932B2 - グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム - Google Patents

グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム Download PDF

Info

Publication number
JP5745932B2
JP5745932B2 JP2011113456A JP2011113456A JP5745932B2 JP 5745932 B2 JP5745932 B2 JP 5745932B2 JP 2011113456 A JP2011113456 A JP 2011113456A JP 2011113456 A JP2011113456 A JP 2011113456A JP 5745932 B2 JP5745932 B2 JP 5745932B2
Authority
JP
Japan
Prior art keywords
graph
node
graph data
data
dbt
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
JP2011113456A
Other languages
English (en)
Other versions
JP2012243127A (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 JP2011113456A priority Critical patent/JP5745932B2/ja
Priority to US13/470,898 priority patent/US20120293541A1/en
Priority to US13/524,529 priority patent/US9208590B2/en
Publication of JP2012243127A publication Critical patent/JP2012243127A/ja
Application granted granted Critical
Publication of JP5745932B2 publication Critical patent/JP5745932B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、一般的には、データ操作のための情報処理技術に関し、より特定的には、グラフデータにその写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システムに関する。
複数のノードとノード間の連結関係を表すエッジグラフ構造のデータ(以下、単に「グラフデータ」と称することがある)を用いて、実世界のモデルをコンピュータ上で表現することが一般的に行われている。一般的に、グラフデータは、RDF(Resource Description Framework)のような標準化された形式にしたがって記述され、グラフ・リポジトリと称されるデータベースに記憶される。グラフ・リポジトリに格納されたグラフデータは、その一部または全部が各種のアプリケーション・プログラムによって呼び出され利用される。業界の各社は、そのようなグラフデータをハンドリングするためのソフトウェアを研究開発している。
当分野の背景技術として、特開1997−0016389号公報(特許文献1)は、プログラム部品自動生成装置を開示する。装置は、仕様に応じてプログラム部品案を生成する手段と、生成されたプログラム部品案を逐次整理保存し、かつ変更履歴を管理する部品ライブラリと、部品ライブラリ内に存在するプログラム部品がそれぞれもつ機能の一部を変換する手段とを有し、検索要求に適合する新たな機能を持つプログラム部品を生成する。
他の背景技術として、特開2010−0033500号公報(特許文献2)は、GUIデータ変換方法を開示する。方法は、変換元のGUIオブジェクトから変換先のGUIオブジェクトへの変換で1対多の関係が起こりうるGUIリソースデータを変換するGUIデータ変換システムにおいて、変換元のGUIツールで作成された変換元GUIリソースデータを入力し、変換元GUIオブジェクトの変換先GUIオブジェクトへの変換規則を含む変換テーブルを生成し、前記変換テーブルを解釈して前記変換元GUIオブジェクトに対する変換処理を特定し、前記変換元GUIリソースデータに対して前記特定された変換処理を施し、前記変換先GUIリソースデータとして書き出す。
他の背景技術として、特開2008−0158759号公報(特許文献3)は、プログラムモジュール同士の並列処理の関係を記述した並列実行制御記述から、個々の前記プログラムモジュールに関連する部分を抽出した先行情報と後続情報を含むグラフデータ構造生成情報に基づいて所定のプログラムモジュールを抽出し、これを依存関係に従ってグラフデータ構造に追加更新し、先行するノードすべてが処理済であるノードから実行する処理方法とするプログラミング方法を開示する。
他の背景技術として、特開2010−0256978号公報(特許文献4)は、コンフィグレーションデータ検証装置を開示する。装置は、システムのコンフィグレーションデータからシステムを構成するコンポーネント間の依存関係を抽出し、当該依存関係を表す関係グラフを生成する関係グラフ生成部と、予め与えられた基準関係グラフと生成された関係グラフとに基づいて、コンフィグレーションデータの妥当性を検証する関係グラフ検証部とを有している。
他の背景技術として、特開2006−0185211号公報(特許文献5)は、プログラム解析装置を開示する。装置は、対象プログラムを1ステップずつ実行し、この1ステップごとに、オブジェクトのフィールドの変更履歴とその変更の原因となったオブジェクトのフィールドの情報を取得して、各オブジェクトの状態単位での因果関係を抽出する因果関係抽出部10と、所定のオブジェクトを検証対象とし、因果関係抽出部10により抽出されたオブジェクト間の因果関係に基づき、検証対象のオブジェクトに対する因果関係を分析して原因に当たるオブジェクトを検出し、検出対象のオブジェクトと原因であるオブジェクトとの間に設定されるテストのアサーションに基づいて、テストを実行するテスト実行部20とを備える。
他の背景技術として、特開2005−0100402号公報(特許文献6)は、オブジェクト指向プログラムが、指定された領域内でオブジェクトを作成するように修正され、メモリ割り当て解除が、領域全体に対して同時に起こるようにする。内容、および領域の間の関連づけが、プログラムコードの分析から作成される1つまたは複数の形状グラフによって記述される。形状グラフによって格納される領域関連づけメタデータは、領域ベースのメモリ管理を行わせ、渡される各オブジェクトに対するメソッドに1つの領域のみが渡されることを要求する、メモリ管理方法を開示する。
他の背景技術として、特開1993−0158676号公報(特許文献7)は、単一、集束又はターミネータノードに接続された拡散ノードを有する木構造においてそのすべての段階でいかなるグラフも描写するデータ構造を定義しかつ記憶し、その頂部が前記データ構造に記載された構文構造である内部の表示とスクリーン上の外部グラフ表示との間の一致の表を作成し、前記データ構造において定義された要素の連続挿入及び/又は破壊演算を実施することによりグラフを有効に作成し、前記挿入及び/又は破壊が挿入又は破壊されるべき要素が配置される領域を超えて配置されるグラフ要素をシフトする連続演算によりスクリーンの所望の領域に適用され、その結果変更は再作成されるべき部分のみに関連し、前記グラフをその作成及び変更の間表示し、内部記載及び一致表を更新する方法を開示する。
特開1997−0016389号公報 特開2010−0033500号公報 特開2008−0158759号公報 特開2010−0256978号公報 特開2006−0185211号公報 特開2005−0100402号公報 特開1993−0158676号公報 特開2007−0026210号公報 特開2003−0030227号公報 特許3137590号 特開2001−0142937号公報 特開1993−0233298号公報 特開1998−0154976号公報 特開2008−0203964号公報
あるアプリケーションがグラフ・リポジトリに記憶されたグラフデータを利用する場合、当該アプリケーションの観点からグラフデータが複雑過ぎたり、不要な詳細まで含まれていたりすることがある。そのため、直接グラフデータ全体にアクセスするのではなく、グラフデータの写像の像であるアプリケーションの目的に応じたオブジェクトを介してグラフデータの一部または全部を利用したいという要請がある。この場合、アプリケーションの目的に応じたオブジェクトに対する操作を元のグラフデータに効果的に反映することができることが好ましい。
アプリケーションの目的に応じたオブジェクトのすべての部分がグラフデータの準同型写像(homomorphism)の像である場合、前者に対する操作と後者に対する操作を一対一で対応させることができる。しかし、オブジェクトの一部がグラフデータからの準同型写像となっていない場合がある。そのような場合、オブジェクトに対する操作をグラフデータに反映することについて、注意を要する場合がある。
例えば、複数のオブジェクトに関連し得るノードがグラフデータ内に存在するものとする。この場合に、当該グラフデータ内のノードに関連するあるオブジェクトに対して追加・削除等の操作をすると、グラフデータにおいても当該ノードが追加・削除等されてしまう可能性がある。その結果、当該グラフデータ内のノードに関連する他のオブジェクトに関連して不適切な影響が生じる場合がある。
したがって、本発明の目的の1つは、グラフデータにオブジェクトに対する操作を効果的に反映するための方法、プログラム、および、システムを提供することである。
上記の目的を達成するために、ノードとエッジを含むグラフデータの少なくとも一部の写像の像であるオブジェクトに対して行った操作を、グラフデータに反映するための方法を提供する。方法は、操作によって変更されるオブジェクトに関連するグラフデータのノードのうち、他のオブジェクトにも関連し得るノードである共有ノードを特定するステップと、共有ノードが変更されないようにグラフデータに操作を反映するステップを含む。
好ましくは、方法は、データ構造に含まれるオブジェクトに対応するグラフ・マッチング・パターンを提供するステップをさらに含む。さらに好ましくは、変更されたオブジェクトに対応するグラフ・マッチング・パターンを特定するステップと、特定されたグラフ・マッチング・パターンに基づいて、共有ノードを特定するためのクエリを生成するステップを含む。
好ましくは、操作を反映するステップが、グラフ・マッチング・パターンに含まれるノード変数とそれにマッチするグラフデータ内のノードとの対応関係をエントリとして含むテーブルを用いて、グラフデータに操作を反映するステップを含む。
好ましくは、操作がオブジェクトの生成であり、操作を反映するステップが、ノードを新たに生成することなく、特定された共有ノードに対してリンクを形成することによって、グラフデータに操作を反映するステップを含む。好ましくは、操作がオブジェクトの生成であり、生成されたオブジェクトに対応するテーブルを新たに生成するステップをさらに含む。特定された共有ノードに対応するエントリをテーブルに追加するステップか、および/または、グラフ・マッチング・パターンに含まれる代表ノード変数に対応するエントリを新たに生成されたテーブルに追加するステップをさらに含む。また、グラフ・マッチング・パターンに含まれる代表ノード変数および共有ノード変数以外のノードに対応するエントリが生成されたテーブルに追加され、当該テーブルがすべて充填されたことを条件に、グラフデータに操作が反映されるようにすることができる。
好ましくは、操作がオブジェクトの更新であり、変更されたオブジェクトに対応するテーブルを特定するステップと、特定されたテーブルにオブジェクトに対して実行されたオブジェクトの更新を反映するステップを含む。
好ましくは、操作がオブジェクトの削除であり、操作を反映するステップが、特定された共有ノードが削除されないようにグラフデータに操作を反映するステップを含む。操作がオブジェクトの削除であり、変更されたオブジェクトに対応するテーブルを特定するステップと、テーブルに含まれる共有ノードの情報以外の情報に基づいて、共有ノードが削除されないようにグラフデータに操作を反映するステップを含むようにすることができる。
以上、データ構造を変換する方法として本発明の概要を説明したが、本発明は、プログラム、プログラム製品、ソフトウェア、ソフトウェア製品、システム、装置などとして把握することもできる。プログラム製品ないしソフトウェア製品は、例えば、前述のプログラム、ソフトウェアを格納した記憶媒体を含め、あるいはプログラム、ソフトウェアを伝送する媒体を含めることができる。
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
本発明の実施形態おけるデータ処理システムの全体像の一例を示した図である。 本発明の実施形態におけるデータ処理システムの機能ブロック図である。 本発明の実施形態におけるデータ処理システムの動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのオブジェクトデータ生成の動作を表現するフローチャートである。 本発明の実施形態における正規化の処理の動作の一例を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのオブジェクトを操作した場合の動作を表現するフローチャートである。 本発明の実施形態におけるデータ処理システムのオブジェクトの生成(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 (12)

  1. ノードとエッジを含むグラフデータの少なくとも一部の写像の像であるオブジェクトに対して行った操作を、前記グラフデータに反映するための方法であって、
    前記操作によって変更されるオブジェクトに関連するグラフデータのノードのうち、他のオブジェクトにも関連し得るノードである共有ノードを特定するステップと、
    前記共有ノードが変更されないように前記グラフデータに前記操作を反映するステップと、
    前記オブジェクトに対応するグラフ・マッチング・パターンを提供するステップと、
    前記変更されたオブジェクトに対応するグラフ・マッチング・パターンを特定するステップと、
    特定されたグラフ・マッチング・パターンに基づいて、共有ノードを特定するためのクエリを生成するステップと、
    を含む、方法。
  2. 前記操作を反映するステップが、前記グラフ・マッチング・パターンに含まれるノード変数とそれにマッチするグラフデータ内のノードとの対応関係をエントリとして含むテーブルを用いて、前記グラフデータに前記操作を反映するステップを含む、請求項に記載の方法。
  3. 前記操作がオブジェクトの生成であり、生成されたオブジェクトに対応する前記テーブルを新たに生成するステップをさらに含む、請求項に記載の方法。
  4. 特定された前記共有ノードに対応するエントリを前記テーブルに追加するステップを含む、請求項に記載の方法。
  5. 前記グラフ・マッチング・パターンに含まれる代表ノード変数に対応するエントリを前記新たに生成されたテーブルに追加するステップをさらに含む、請求項に記載の方法。
  6. 前記グラフ・マッチング・パターンに含まれる代表ノード変数および共有ノード変数以外のノードに対応するエントリが前記生成されたテーブルに追加され、当該テーブルがすべて充填されたことを条件に、前記グラフデータに前記操作が反映される、請求項に記載の方法。
  7. 前記操作がオブジェクトの更新であり、前記変更されたオブジェクトに対応する前記テーブルを特定するステップと、特定された前記テーブルにオブジェクトに対して前記実行されたオブジェクトの更新を反映するステップと、を含む、請求項に記載の方法。
  8. 前記操作がオブジェクトの削除であり、前記操作を反映するステップが、前記特定された共有ノードが削除されないように前記グラフデータに前記操作を反映するステップを含む、請求項に記載の方法。
  9. 前記操作がオブジェクトの削除であり、前記変更されたオブジェクトに対応する前記テーブルを特定するステップと、前記テーブルに含まれる前記共有ノードの情報以外の情報に基づいて、共有ノードが削除されないように前記グラフデータに前記操作を反映するステップと、を含む、請求項に記載の方法。
  10. 請求項1ないしのいずれかに記載の方法のすべてのステップをコンピュータに実行させることができる、プログラム。
  11. ノードとエッジを含むグラフデータの少なくとも一部の写像の像であるオブジェクトに対して行った操作を、前記グラフデータに反映するためのプログラムであって、
    前記操作によって変更されるオブジェクトに関連するグラフデータのノードのうち、他のオブジェクトにも関連し得るノードである共有ノードを特定するステップと、
    前記共有ノードが変更されないように前記グラフデータに前記操作を反映するステップと、
    前記オブジェクトに対応するグラフ・マッチング・パターンを提供するステップと、
    前記変更されたオブジェクトに対応するグラフ・マッチング・パターンを特定するステップと、
    特定されたグラフ・マッチング・パターンに基づいて、共有ノードを特定するためのクエリを生成するステップと、
    をコンピュータに実行させる、プログラム。
  12. ノードとエッジを含むグラフデータの少なくとも一部の写像の像であるオブジェクトに対して行った操作を、前記グラフデータに反映するための装置であって、
    前記グラフデータを記憶するグラフ・リポジトリにアクセスする手段と、
    前記操作によって変更されるオブジェクトに関連するグラフデータのノードのうち、他のオブジェクトにも関連し得るノードである共有ノードを特定する手段と、
    前記共有ノードが変更されないように前記グラフデータに前記操作を反映させる手段と、
    前記オブジェクトに対応するグラフ・マッチング・パターンを提供する手段と、
    前記変更されたオブジェクトに対応するグラフ・マッチング・パターンを特定する手段と、
    特定されたグラフ・マッチング・パターンに基づいて、共有ノードを特定するためのクエリを生成する手段と、
    を備える、装置。


JP2011113456A 2011-05-20 2011-05-20 グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム Expired - Fee Related JP5745932B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011113456A JP5745932B2 (ja) 2011-05-20 2011-05-20 グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム
US13/470,898 US20120293541A1 (en) 2011-05-20 2012-05-14 Manipulation of an object as an image of a mapping of graph data
US13/524,529 US9208590B2 (en) 2011-05-20 2012-06-15 Manipulation of an object as an image of a mapping of graph data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011113456A JP5745932B2 (ja) 2011-05-20 2011-05-20 グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム

Publications (2)

Publication Number Publication Date
JP2012243127A JP2012243127A (ja) 2012-12-10
JP5745932B2 true JP5745932B2 (ja) 2015-07-08

Family

ID=47174613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011113456A Expired - Fee Related JP5745932B2 (ja) 2011-05-20 2011-05-20 グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム

Country Status (2)

Country Link
US (2) US20120293541A1 (ja)
JP (1) JP5745932B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11501241B2 (en) 2020-07-01 2022-11-15 International Business Machines Corporation System and method for analysis of workplace churn and replacement

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6102594B2 (ja) * 2013-07-16 2017-03-29 富士通株式会社 データ出力方法及びデータ出力プログラム
JP6136685B2 (ja) * 2013-07-16 2017-05-31 富士通株式会社 データ抽出方法及びデータ抽出プログラム
US10776965B2 (en) * 2013-07-26 2020-09-15 Drisk, Inc. Systems and methods for visualizing and manipulating graph databases
JP6168475B2 (ja) * 2014-04-10 2017-07-26 新日鉄住金ソリューションズ株式会社 グラフ生成装置、グラフ生成方法及びグラフ生成プログラム
US9785773B2 (en) * 2014-07-03 2017-10-10 Palantir Technologies Inc. Malware data item analysis
WO2016041594A2 (en) * 2014-09-17 2016-03-24 Siemens Aktiengesellschaft Method and digital tool for engineering software architectures of complex cyber-physical systems of different technical domains
US10102369B2 (en) 2015-08-19 2018-10-16 Palantir Technologies Inc. Checkout system executable code monitoring, and user account compromise determination system
US20170308620A1 (en) * 2016-04-21 2017-10-26 Futurewei Technologies, Inc. Making graph pattern queries bounded in big graphs

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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> プログラム部品自動生成方法及び装置
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
JP3773426B2 (ja) 2001-07-18 2006-05-10 株式会社日立製作所 データマイニングにおける前処理方法及び前処理システム
US20050010606A1 (en) * 2003-07-11 2005-01-13 Martin Kaiser Data organization for database optimization
US7263532B2 (en) 2003-09-23 2007-08-28 Microsoft Corporation Region-based memory management for object-oriented programs
JP2006185211A (ja) 2004-12-28 2006-07-13 Internatl Business Mach Corp <Ibm> プログラム解析装置、テスト実行装置、その解析方法及びプログラム
JP4547298B2 (ja) * 2005-05-09 2010-09-22 日本電信電話株式会社 拡張クエリグラフパターン生成装置、生成方法、生成用プログラム、およびこれらを用いた拡張サブグラフ検索装置、検索方法、検索用プログラム
JP4710459B2 (ja) 2005-07-19 2011-06-29 富士ゼロックス株式会社 ツリー構造表示プログラム、ツリー構造表示方法、ツリー構造表示装置
JP4523561B2 (ja) * 2006-03-17 2010-08-11 日本電信電話株式会社 XPath式処理装置
JP2007328730A (ja) * 2006-06-09 2007-12-20 Toshiba Corp プロセスマッピング支援システム、方法およびプログラム
JP4965995B2 (ja) 2006-12-22 2012-07-04 株式会社東芝 プログラム処理方法、処理プログラム及び情報処理装置
JP4935405B2 (ja) 2007-02-16 2012-05-23 日本電気株式会社 因果関係分析装置、因果関係分析方法及びプログラム
JP2010033500A (ja) 2008-07-31 2010-02-12 Toshiba Corp Guiデータ変換システムおよびguiデータ変換方法
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 コンフィグレーションデータ検証装置、検証方法及びプログラム
US8655894B2 (en) * 2010-04-26 2014-02-18 Nokia Corporation Method and apparatus for index generation and use
US9600411B2 (en) * 2011-01-31 2017-03-21 The Mathworks, Inc. System and method for determining an object's lifetime in an object oriented environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11501241B2 (en) 2020-07-01 2022-11-15 International Business Machines Corporation System and method for analysis of workplace churn and replacement

Also Published As

Publication number Publication date
US20120293542A1 (en) 2012-11-22
US9208590B2 (en) 2015-12-08
US20120293541A1 (en) 2012-11-22
JP2012243127A (ja) 2012-12-10

Similar Documents

Publication Publication Date Title
JP5745932B2 (ja) グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム
JP5689361B2 (ja) グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム
Kehrer et al. A rule-based approach to the semantic lifting of model differences in the context of model versioning
US7168077B2 (en) System and method of executing and controlling workflow processes
CN102981815B (zh) 用于实施业务过程应用程序的系统和方法
US8572563B2 (en) User interfaces and software reuse in model based software systems
WO2011151111A1 (en) Method and system of adapting a data model to a user interface component
US20120102456A1 (en) System and Method of Annotating Class Models
JPH11296544A (ja) 構造化データ管理システム及び構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体
US9256400B2 (en) Decision service manager
CN110705237A (zh) 文档的自动生成方法、数据处理设备及存储介质
US8819619B2 (en) Method and system for capturing user interface structure in a model based software system
de Boer et al. Enterprise architecture analysis with xml
CN1866283B (zh) 实现规则系统触发的系统及方法
US11068468B2 (en) Extensible validation framework
US20110296373A1 (en) Command line shell command generation based on schema
Yan et al. Safety case generation by model-based engineering: State of the art and a proposal
JP2008225898A (ja) 変換装置、変換プログラム及び変換方法
CN114556238B (zh) 用于在云计算环境中生成资产信息的数字表示的方法和系统
US10644939B2 (en) Decision service manager
JP2013012082A (ja) テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
US20060010423A1 (en) Variable namespaces and scoping for variables in an object model
CN119668747A (zh) 一种基于微服务的静态代码全链路图形化展示方法
CN118796203A (zh) 代码生成方法、装置、电子设备、产品及存储介质
CN116069944A (zh) 一种基于ci/cd流水线的知识图谱管理方法及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150316

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: 20150414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150507

R150 Certificate of patent or registration of utility model

Ref document number: 5745932

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees