JP6213247B2 - データ記憶システム、データ記憶システムで実行されるプログラム及び方法 - Google Patents

データ記憶システム、データ記憶システムで実行されるプログラム及び方法 Download PDF

Info

Publication number
JP6213247B2
JP6213247B2 JP2014004205A JP2014004205A JP6213247B2 JP 6213247 B2 JP6213247 B2 JP 6213247B2 JP 2014004205 A JP2014004205 A JP 2014004205A JP 2014004205 A JP2014004205 A JP 2014004205A JP 6213247 B2 JP6213247 B2 JP 6213247B2
Authority
JP
Japan
Prior art keywords
data
query
relational
database
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
JP2014004205A
Other languages
English (en)
Other versions
JP2014137820A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2014137820A publication Critical patent/JP2014137820A/ja
Application granted granted Critical
Publication of JP6213247B2 publication Critical patent/JP6213247B2/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/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • 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/2452Query translation
    • 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
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Description

本発明は、データ記憶システム及びクエリ技術の分野に関する。特に、本発明は、データクエリを1より多いクエリフォーマットに変換し、したがって異なる基本データフォーマットを有するデータベースが単一クエリにより問い合わせ可能な分野に関する。
データベースユーザ又は管理者は、新しい欄を追加することにより又は特定の他の方法でスキーマを変更することにより、既存の関係型データベースに格納されるデータの範囲を拡張したいと望み得る。しかしながら、これを行うことは、広範囲に渡りスキーマのルールに柔軟性がないために、実際には不可能か又は非常に困難である。したがって、RDFトリプルストアのようなグラフデータベースが、関係型データベースに格納されるデータを拡張するための手段として採用されてきた。グラフデータベースは、関係型データベースの基本スキーマを変更することなく、関係型データベースに格納されるデータに関連するデータを格納することを可能にする。
特に、RDFトリプルとしてエンコードされたデータを有するグラフデータベースは、既存の関係型データベースの拡張としてデータベース管理者により用いられ得る。RDF(Resource Description Framework)のデータモデルの仕様及びXMLシンタックスは、1999年のW3Cにより発行された。依然として比較的新しい概念だが、主語(subject)−述語(predicate)−目的語(object)を有するデータエントリを格納するRDFトリプルストアは、柔軟なデータ構造のために近年次第に普及してきた。良い適用例は、大部分のデータがITシステム、例えばアカウンティング、CRM、HRに格納される企業環境におけるデータ統合である。これらのシステムは、通常、RDBMS(Relational Database Management System)で構築される。しかしながら、機能的ITシステムにはなく内部ネットワークにあるデータ、例えばMS Word、MS Excel、HTML又はPDFフォーマットの文書、例えば「検索できない」データ又は公共ライブラリに格納されたデータも存在する。これらのデータは、機能的ITシステムに格納されたデータに関連するが、異なるフォーマット及び/又は場所にある。
RDFトリプルストアは、既存のITシステム内のデータと密接な関係を有するこれらの検索できないデータのために最適な解決策を提供する。
しかしながらグラフデータベースに格納されたデータは、関係型データベースのためのクエリフォーマットによっては検索できない。
本発明の実施形態は、複数の見出し付き列の各々にエントリを有する関係型データの行を有する関係型データベースを格納するよう構成される関係型データベース記憶装置と、前記関係型データに関連するグラフデータを有するグラフデータベースを格納するよう構成されるグラフデータベース記憶装置であって、前記グラフデータベースはトリプルとしてエンコードされる、グラフデータベース記憶装置と、関係型データの1又は複数の行のサブセットを定める条件を指定する関係型データクエリを受信するよう構成されるクエリハンドラであって、前記関係型データの1又は複数の行からのエントリが検索結果に含まれる、クエリハンドラと、を有し、前記クエリハンドラは、関係型データベースの1又は複数の行の前記サブセットに関連するグラフデータについて前記グラフデータベースを検索するためにグラフデータクエリを生成するよう構成される、データ記憶システムを含む。
有利なことに、本発明の実施形態は、受信したデータベースクエリと互換性のないデータフォーマットを有するデータベースに格納されたデータを検索するのに適するフォーマットで追加データクエリを生成することにより、第1のデータベースを検索する受信したデータベースクエリの範囲を自動的に拡張するメカニズムを提供する。したがって、追加データはクエリで検索でき、検索結果は、第1のデータベースを単独で検索する受信したデータベースクエリにより達成されるものよりも包括的である。したがって、検索結果に依存するアプリケーション又は意志決定プロセスは、より情報に基づく意志決定を行うことができる。
特に、本発明の実施形態は、関係型データベースから情報を得るために構造化されたクエリを、グラフデータベースからの関係型データベースの結果に関連する情報を得るために拡張できるようにする。これは、関係型データベースの基本データベーススキーマを変更することなく、関係型データベースに格納されたデータに関連するデータを、グラフデータベースに格納できるという利点を有する。これは、性能の利益をもたらす。さらに、関係型データベース宛てのクエリに応答して、関連データが自動的に検索されるという利点を有する。
まとめると、本発明の実施形態は、関係型データベースを検索することにより、本発明の実施形態がなければ検索不可能なデータを検索するメカニズムを提供する。ここで、データは、関係型データベース内のデータに関連付けられる。このメカニズムは、関係型データベースに適するフォーマットのクエリを調べ、対応するクエリを生成し、対応するクエリをグラフデータベース(つまり、基本トリプルストア)へ実行のために転送する。関係型データベースクエリとグラフデータベースクエリの両者の結果は、クエリ発信元へ返される。したがって、本発明がなければ検索不可能な、より豊富な且つより詳細な情報にアクセスできる。
任意的に、本発明の実施形態では、前記関係型データベース内の各エントリは、前記グラフデータベース内のノードに対応し、前記関係型データベース内のエントリに関連するデータは、前記グラフデータベースにおいて、前記エントリに対応するノードにリンク付けされたノードで表される。
有利なことに、請求項2に定めるグラフデータベースオントロジは、グラフデータベースに格納されるが関係型データベースに格納されない追加情報を作成する基礎を提供する。つまり、グラフデータのトリプルとしてのエンコーディングは、クエリハンドラが、グラフデータベースから関連情報を見付けるために関係型データベースエントリに対応するノードからの述語リンクに従うグラフデータクエリを構成できることを意味する。グラフデータベースにおいてノードで表される関連データは、情報種類を定めるノード及び情報種類の値を格納するリンク付けられたノードを含む。トリプルの観点から、クエリハンドラは、関係型データベース内のエントリとグラフデータベース内のノードとの間の対応を確立するための十分な情報を与えられた場合、主語としてのエントリ及びその値に対応するノードを有するグラフデータベース内のトリプルを単に検索できる。
更なる任意的な特徴として、前記関係型データベース内の関係型データの行は、前記見出し付き列のうち主要列にある前記行の個々のエントリの値に従ってインデックス付けされ、前記グラフデータベース内のグラフデータは、オントロジに従って構造化され、該オントロジでは、主要列リソースは前記主要列に対応し、前記主要列リソースの述語は他の見出し付き列の各々に対応する更なる列リソースへのリンクを示す。
有利なことに、主要列は、関係型データベース内の各行にユニークな識別子を設ける。したがって、主要列に対応するリソースが全ての関連情報の階層構造のルートであるオントロジを実装することにより、クエリハンドラは、関係型データベース内の行の選択されたサブセットに関連するデータを返すグラフデータクエリを生成できる。
さらに、前記主要列リソース及び前記更なる列リソースの各々は、対応する見出し付き列の値を表す目的語へのリンクを示す値の述語を有しても良い。
さらに、このよな実施形態では、前記主要列リソースのインスタンス及び前記更なる列リソースのインスタンスは、テーブルエントリに対応し、前記テーブルエントリの値は、個々の値の述語によりリンク付けされた目的語に格納される。
有利なことに、テーブルエントリに対応するノードを、値の述語を有するリソースのインスタンスとして有することにより、更なる関連情報片が、ノードにリンクする述語−目的語ペアとして格納される。単にテーブルエントリを見出し付き列に対応する述語の目的語として有することは、グラフデータベースに格納されるべき更なる関連情報を提供しない。
本発明の実施形態は、前記主要列の名称を前記主要列として識別される形式で、前記主要列の名称と関連付けて、及び前記更なる見出し付き列の各々について、前記更なる見出し付き列の名称を対応する列リソースの名称と関連付けて、格納するよう構成されるマッピングユニット、を更に有し、前記クエリハンドラは、前記マッピングユニットを参照して前記グラフデータクエリを生成するよう構成されても良い。
有利なことに、マッピングユニットは、特定の実装では、クエリハンドラがグラフデータクエリを構成することを可能にする情報を格納する。特定の実施形態では、マッピングユニットは、関係型データベースの列見出しとグラフデータベースのリソース名との間の関連を格納する。したがって、関係型データクエリ内で指定された関係型データベースの列見出しは、グラフデータベース内のリソース名に対応する。これらの関係型データベースの列見出しのエントリに関連するデータは、対応するリソース名のインスタンスを主語として有するトリプルに格納される。したがって、クエリハンドラに関係型データクエリ内で指定された列見出しに対応するリソース名を知らせることにより、クエリハンドラは、グラフデータベース内の関連データを検索するためのグラフデータクエリを構成できる。マッピングユニットは、グラフデータクエリをアドレスすべき場所をクエリハンドラに知らせるために、関係型データベースに関連するグラフデータベースの場所を表す情報も格納しても良い。
マッピングユニットは、マッピングファイルを格納するメモリ内の記憶場所、又はマッピング情報の他の格納された形式であっても良い。マッピングユニットは、クエリハンドラ自体の一部として、関係型データベース又はグラフデータベースのための管理システム/サービスの一部として、又は外部コンポーネントとして設けられても良い。
関係型データクエリは、RDBMSを介して関係型データベースからデータを検索し及び読み出すのに適するフォーマットであり、データが返される行を定める条件と、検索結果で返されるべきエントリの値を有する見出し付き列の列見出しの指標との一方及び両方を有しても良い。このようなクエリの例示的なフォーマットは、SQLステートメントである。グラフデータクエリは、グラフデータベースからデータを検索し及び読み出すのに適する任意のフォーマットであり得る。さらに、追加データはグラフデータクエリを介して捜索されるので、指定された主語に関連するプロパティ又は他のデータを格納する任意のトリプルが捜索されるある種のワイルドカード、また指定された主語に関連するトリプルに関連するトリプルを有することは、クエリにとって有利である。このような例示的なフォーマットのクエリは、1又は複数のSPARQLクエリ、場合によっては入れ子状のSPARQLクエリである。つまり、本発明の実施形態では、関係型データクエリはSQLステートメントであり、グラフデータクエリはSPARQLクエリである。さらに、関係型データクエリは、どの見出し付き列からのエントリが検索結果に含まれるべきかを指定しても良い。
クエリハンドラは、単独のプログラム又は装置であっても良い。或いは、クエリハンドラは、データベースドライバのコンポーネントとして設けられても良い。有利なことに、関係型データベースのデータベースドライバ内にクエリハンドラを例えばプラグインプログラムとして埋め込むことは、クエリハンドラにより実行される手順が可能な限りクエリ発信元に透過であることを保証する。データベースドライバは、例えばJDBC又はODBCであっても良い。グラフデータクエリを生成し実行する処理は、データベースドライバで関係型データクエリが受信されるのに応答して自動的に実行され、検索結果はデータベースドライバで結合される。したがって、クエリ発信元が実行されている処理を知る唯一の方法は、追加検索結果の受信による。したがって、本発明は、関係型データベース管理システム(relational databasemanagement system:RDBMS)ドライバにインストールされるプラグインプログラムとして具現化されても良い。プラグインプログラムは、関係型データクエリ(例えば、SQLステートメント)がRDBMSに発行されるときを検出し、(必要な場合)マッピングユニットから情報を読み出し、グラフデータクエリを生成し、グラフデータクエリをグラフデータベースに発行する。
本発明の実施形態では、関係型データクエリは、どの見出し付き列からのエントリが検索結果に含まれるべきかを指定しても良い。有利なことに、このような実施形態は、クエリを特定の列に集中させ、他の行ではなく1つの行の中の幾つかのエントリの値を返すことを可能にする。
任意で、前記クエリハンドラは、前記関係型データクエリを受信すると、前記マッピングユニットを参照して、前記関係型データベースの前記主要列の識別子を得て、前記関係型データクエリの前記条件を満たす前記関係型データベースの行の主要列エントリの値を得るよう構成され、前記クエリハンドラは、前記主要列エントリの得られた値と一致する値を有する前記主要列リソースのインスタンスのサブセットにリンク付けられたノードの値を要求するグラフデータクエリを生成するよう構成される。
本発明の実施形態では、主要列は、グラフデータベースにおいて、データベースの行及びその関連データに対応する階層構造の最上位として表される。したがって、主要列の中のエントリの値が分かっている限り、データベース内の特定の行に関連するデータは容易に検索でき、関連データの値が返される。
実際に、データトラフィックを削減するために、グラフデータクエリは、関係型データベース内の特定の列に対応するグラフデータ及びそれに関連するデータに集中できる。つまり、前記クエリハンドラは、前記マッピングユニットを参照して、前記関係型データクエリで指定された前見出し付き列のエントリに対応する前記更なる列リソースを識別し、前記クエリハンドラは、前記グラフデータクエリに、前記主要列リソースのインスタンスのサブセットにリンク付けられた前記の識別された列リソースのインスタンスであるノードの値についての要求を含め、前記グラフデータクエリに、前記ノードを主語として有する全てのトリプルについての要求を含めるよう構成されても良い。
関連データがグラフデータベース内で捜索されるデータ行の主要列にあるエントリの値を得るための特定のメカニズムとして、クエリハンドラは、主要列エントリを要求し関係型データクエリと同じ条件を指定する更なる関係型データクエリを生成し、更なる関係型データクエリを関係型データベースに発行し、結果を受信することにより、関係型データクエリの条件を満たす関係型データベースの行の主要列エントリの値を得るよう構成されても良い。
本発明の別の態様の実施形態では、データ記憶システムで実行される方法を提供する。前記データ記憶システムは、複数の見出し付き列の各々にエントリを有する関係型データの行を有する関係型データベースを格納するよう構成される関係型データベース記憶装置と、前記関係型データに関連するグラフデータを有するグラフデータベースを格納するよう構成されるグラフデータベース記憶装置と、を有し、前記グラフデータベースはトリプルとしてエンコードされる。前記方法は、クエリハンドラで、関係型データの1又は複数の行のサブセットを定める条件を指定する関係型データクエリを受信するステップであって、前記1又は複数の行からのエントリが前記検索結果に含まれる、ステップと、関係型データの1又は複数の行の前記サブセットに関連するグラフデータについて前記グラフデータベースを検査するためのグラフデータクエリを生成するステップと、を有する。
前記方法は、1又は複数の以下のステップを更に有しても良い。
(前記クエリハンドラで)前記関係型データベースに前記関係型データクエリを発行し、結果を受信するステップ。
(前記クエリハンドラで)前記グラフデータベースに前記グラフデータクエリを発行し、結果を受信するステップ。
(前記クエリハンドラで)前記グラフデータクエリ及び前記関係型データクエリからの結果を収集するステップ。
(前記クエリハンドラで)前記の受信した関係型データクエリに対して、前記の収集した結果で応答するステップ。
本発明の別の態様の実施形態は、コンピューティング装置により実行されると、前記コンピューティング装置に本発明を実施する方法を実行させる、コンピュータプログラムを有する。
本発明の別の態様の実施形態は、分散型コンピューティング環境内のコンピューティング装置により実行されると、前記コンピューティング装置を本発明を実施するデータ記憶システムとして機能させる、コンピュータプログラムスーツを有する。
本発明の別の態様の実施形態は、コンピュータ又は分散型コンピュータネットワークにより実行されると、前記コンピュータ又は前記分散型コンピュータネットワークを本発明を実施するデータ記憶システムにする(又は該システムとして機能させる)ソフトウェアを有する。分散型コンピュータネットワークは、分散型であっても良い1又は複数の記憶ユニットを有しても良い。ソフトウェアは、非一時的記憶媒体で提供され得るコンピュータプログラム又はコンピュータプログラムスーツであっても良い。
態様(ソフトウェア/方法/装置)が別個に議論されたが、1つの態様に関連して議論されたその特徴及び影響は、他の態様にも等しく適用できる。したがって、方法の特徴が議論される場合、装置の実施形態はその特徴を実行する又は適切な機能を提供するよう構成されるユニット又は装置を有すること、及びプログラムは該プログラムが実行されるコンピューティング装置に前記方法の特徴を実行させるものと解釈される。
上述の態様のいずれにおいても、種々の特徴は、ハードウェアで、又は1又は複数のプロセッサで動作するソフトウェアモジュールとして実装されても良い。一態様の特徴は、他の態様のいずれにも適用できる。
本発明は、上述の任意の方法を実行するコンピュータプログラム又はコンピュータプログラムプロダクト、及び上述の任意の方法を実行するプログラムを格納しているコンピュータ可読媒体も提供する。
本発明を実施するコンピュータ・プログラムは、コンピュータ可読媒体に格納されてもよい。或いは、例えば、インターネット・ウェブサイトから提供されるダウンロード可能なデータ信号のような信号形式又は任意の他の形式であってもよい。
本発明の好適な特徴は、単なる例として添付の図面を参照して以下に説明される。
本発明を具現化するシステムの概略図である。 本発明の実施形態の例示的なコンポーネントアーキテクチャである。 どのようにマッピングファイルがコンパイルされるか、及びマッピングファイルに格納される情報を示す。 本発明の実施形態における関係型データベースを示す。 本発明の実施形態におけるRDFデータセットを示す。 本発明を実施するプラグインプログラムにより実行される処理の例を示す。 A乃至Cは、本発明を実施するクエリハンドラにより生成される例示的なSPARQLステートメントを示す。 本発明を具現化するシステムのシステムアーキテクチャを示す。
図1は、本発明を具現化するシステムの概略図である。クライアントアプリケーション20は、データコネクションによりクエリハンドラ10に接続される。クエリは、クライアントアプリケーション20からクエリハンドラ10へ提出され、検索結果は、クエリに対する応答により返される。クエリハンドラ10は、関係型データベース記憶装置12及びグラフデータベース記憶装置14に、データ通信コネクションにより接続される。関係型データベース記憶装置12に格納された関係型データベースを検索するのに適する第1のフォーマットのクエリは、クエリハンドラ10から関係型データベース記憶装置12へ提出され、クエリに応答して、関係型データベース記憶装置12から(又は関係型データベースを制御するデータベースマネジャのような機能ユニットから)検索結果が返される。グラフデータベース記憶装置14に格納されたグラフデータベースを検索するのに適する第2のフォーマットのクエリは、クエリハンドラ10からグラフデータベース記憶装置14へ提出され、クエリに応答して、グラフデータベース記憶ユニット14から(又はグラフデータベースを制御するデータベースマネジャのような機能ユニットから)検索結果が返される。クライアントアプリケーション20によりクエリハンドラ10へ提出されるクエリは、関係型データベースを検索するのに適したフォーマットである。
クライアントアプリケーションは、関係型データクエリのソースの一例である。この状況では、関係型データクエリのソースは、ソースの形式に関係なく、「クライアントアプリケーション」であると考えられる。
クエリハンドラ10は、ソフトウェア又はハードウェアの形式で提供され得る機能ユニットである。クエリハンドラ10は、データベース管理システムの一部として設けられても良い。例えば、クエリハンドラ10は、関係型データベース記憶装置12に格納される関係型データベースの管理システムの一部として設けられても良い。したがって、クエリハンドラ10は、関係型データベースを格納するサーバ又は相互接続されたサーバ群にインストールされる。或いは、クエリハンドラ10は、関係型データベースのデータベースドライバのコンポーネントであっても良い。このドライバは、関係型データベースの管理システムと相互作用するよう構成される。代替で、クエリハンドラ10は、関係型データベースのデータベースドライバと別個に設けられ、データベースドライバへ向けられる関係型データベース記憶装置12に格納された関係型データベースを検索するための関係型データクエリを傍受するよう構成されても良い。クエリハンドラは、関係型データベースを検索するのに適するフォーマットの関係型データクエリを受信し、関係型データクエリを関係型データベースを検索するのに適するフォーマットの1又は複数の関係型データクエリ及びグラフデータベースを検索するのに適するフォーマットの1又は複数のグラフデータクエリに変換するよう構成される。例えば、グラフデータは、RDFトリプルのようなトリプルとしてエンコードされ、1又は複数のグラフデータクエリがRDFトリプルストアを検索するのに適するフォーマットになるようにする。
クエリハンドラ10は、関係型データクエリ及びグラフデータクエリからの検索結果を受信し統合する機能も提供しても良い。
関係型データベース記憶装置12は、複数の見出し付き列の各々の中にエントリを有する何行もの関係型データを有する関係型データベースを格納するよう構成される装置である。関係型データフォーマットは、例えばSQL(Structured Query Language)ステートメントにより検索できる確立されたデータ記憶の形式である。関係型データベース記憶装置12は、サーバ又は相互接続されたサーバ群であっても良い。関係型データベース記憶装置12は、関係型データベースに格納された関係型データへのアクセス、変更及び記憶を制御するよう構成される関係型データベース管理システム(relationaldatabase management system:RDBMS)を格納するか又はそれをインストールしている。関係型データベース記憶装置12は、場合によってはRDBMSを介して、関係型データクエリを受信し、それらに検索結果で応答するよう構成されても良い。例えば、関係型データクエリは、条件を指定しても良い。この条件は、関係型データベース内の行の中のデータにより満たされる場合、その行からのデータが検索結果で返されるべきであることを示す。さらに、関係型データクエリは、見出し付き列を指定しても良い。この見出し付き列から、条件を満たす行の中のエントリの値が検索結果に含まれる。
グラフデータベース記憶装置14は、トリプル、例えばRDFトリプルとしてエンコードされたグラフデータを有するグラフデータベースを格納するよう構成される装置である。グラフデータフォーマットは、例えばSPARQL(SPARQL Protocol and RDFQuery Language)ステートメントにより検索できる確立されたデータ記憶の形式である。グラフデータベース記憶装置14は、サーバ又は相互接続されたサーバ群であっても良い。グラフデータベース記憶装置14は、グラフデータをエンコードするトリプルへのアクセス、変更及び記憶を制御するよう構成されるグラフデータベース管理システム(graphdatabase management system:GDBMS)を格納するか又はそれをインストールしている。グラフデータベース記憶装置14は、場合によってはGDBMSを介して、グラフデータクエリを受信し、それらに検索結果で応答するよう構成されても良い。例えば、グラフデータクエリは、検索結果として返されるべきRDFトリプルの範囲を指定しても良い。例えば、グラフデータクエリは特定の主語を指定しても良く、指定された主語を主語として有するトリプルが検索結果に含まれる。
データグラフは、グラフデータベース又はグラフデータセットとも表され、意味的知識モデルの表現を提供する。本発明の実施形態のデータ記憶は、データベース、例えばグラフデータベースであっても良い。
グラフデータベースは、データをノード及びアークの形式で格納することにより、関係型データベースの重要な拡張を表す。ここで、ノードはエンティティ又はインスタンスを表し、アークは任意の2個のノード間の特定種類の関係を表す。無向グラフでは、ノードAからノードBへのアークは、ノードBからノードAへのアークと同じであると考えられる。有向グラフでは、2つの方向は別のアークとして扱われる。
グラフデータベースは、概して2つの主な種類に分類できる広範な種類の異なるアプリケーションで用いられる。第1の種類は、知的意思決定支援及び自己学習のようなクラス記述子の大規模な集合体(「知識ベースアプリケーション」と称される)を有する複雑な知識ベースシステムを有する。第2の種類は、社会的データ及びビジネスインテリジェンスのようなトランザクションデータに対するグラフ検索の実行を含むアプリケーション(「トランザクションデータアプリケーション」と称される)を有する。多くのアプリケーションは、両方の種類を表し得る。しかしながら、大部分のアプリケーションは、主に知識ベース又はトランザクションデータアプリケーションのいずれかで特徴付けられ得る。グラフデータベースは、種々の分野の膨大な構造化又は非構造化データを格納できる大規模な「意味ネットワーク」を維持するために用いることができる。意味ネットワークは、知識表現の形式として用いられ、コンセプトを表すノード及びコンセプト間の意味関係を表すアークを有する有向グラフである。
記憶のためにグラフデータベースをエンコードする幾つかのアプローチがある。グラフデータは、多次元アレイとして又は他のシンボルにリンク付けされたシンボルとしてメモリに格納されても良い。別の形式のエンコーディングは、各々指定された種類のオブジェクトの有限シーケンス又は順序付きリストである「タプル」の使用である。n個のオブジェクトを含むタプルは、「nタプル」として知られる。ここで、nは零より大きい任意の非負整数である。長さ2のタプル(2タプル)は、通常、ペアと呼ばれる。3タプルはトリプルと呼ばれ、4タプルはクワドラプルと呼ばれ、以降同様である。
記載されるエンティティは、トリプルの主語として表されても良い。識別されたプロパティの範囲は、目的語として表されても良い。また、範囲とエンティティとの間の関係は、述語として表されても良い。トリプルは、グラフデータを複数の主語−述語−目的語表現として特徴付けることにより、グラフデータのエンコーディングを提供する(ここで、グラフデータは、データ記憶に格納されるデータの例である)。この文脈では、主語及び目的語は、グラフデータのグラフノードであり、オブジェクト、インスタンス又はコンセプト(集合的に「グラフリソース」)のようなエンティティであり、述語は、主語と目的語の間の関係の表現である。述語は、目的語への特定の種類のリンクを提供することにより、主語に関する何かを断言する。例えば、主語は、(例えば、URIを介して)ウェブリソースを示しても良く、述語はリソースの個々の特性、特徴又は状況を示し、目的語は、該特性、特徴又は状況のインスタンス、範囲、又は例を示す。言い換えると、トリプルステートメントの集合は、元来、方向性グラフデータを表す。RDF標準は、このようなトリプルの形式化された構造を定める。
グラフデータは、階層的方法で解釈され得る。例えば、主語ノードは、階層構造において目的語ノードより上にあると考えられる。
関係型データベースは、データを行と列で格納する。行及び列は、データを格納する前に定める必要のあるテーブルを構成する。テーブルの定義及びこれらのテーブルに含まれるデータ間の関係は、スキーマと称される。関係型データベースは、固定スキーマを用いる。
クライアントアプリケーション20は、関係型データベース記憶装置12に格納される関係型データベースにクエリを発行する。クエリは、関係型データを検索するのに適するフォーマット、例えばSQLステートメントであり、したがって関係型データクエリと称される。クエリハンドラ10は、関係型データベースのためのデータベースドライバ内のプラグインの形式で提供されても良く、クライアントアプリケーション20から関係型データクエリを受信する。関係型データクエリは、少なくとも条件を指定する。この条件は、関係型データベース内のデータの行により満たされる場合、その行からのデータが検索結果に含まれるべきであることを示す。つまり、条件を満たす行内の見出し付き列内のエントリの値が、関係型データベースから読み出され、クエリハンドラ10に検索結果として提供される。関係型データクエリは、どの見出し付き列からエントリの値が読み出され検索結果に含まれるかも指定しても良い。クエリハンドラ10は、関係型データクエリを関係型データベース記憶装置12に、より具体的には装置に格納された関係型データベースのようなクエリハンドラ10のコンポーネントにより、場合によっては関係型データベース管理システムを介して、発行する。結果は、関係型データベース記憶装置12により又はそのコンポーネントにより、クエリハンドラ10に返される。
さらに、クエリハンドラは、関係型データクエリの結果に含まれるデータに関連するデータについて、グラフデータベースを検索するためのクエリを生成するよう構成される。このように生成されたクエリは、グラフデータを検索するのに適する、例えばRDFトリプルストアを検索するのに適するフォーマットなので、グラフデータクエリと称される。例えば、関係型データベース内の主要列が存在しても良い。したがって、グラフデータベース記憶装置に格納されるグラフデータベースのオントロジは、リソースが主要列に対応し、主要列リソースのインスタンスが関係型データベース内のエントリに対応し、関係型データベース内の対応するエントリの対応する値と同じ値にリンクする述語の値を有するようになる。したがって、データが関係型データクエリの検索結果に含まれる主要列内のエントリの値は、関係型データについてグラフデータベースを検索する基礎として用いることができる。つまり、グラフデータベースは、関係型データベース内のエントリに関連する全てのデータが、関係型データベース内の対応するエントリと同じ値を有する主要列リソースのインスタンスにリンク付けされるように構造化され得る。したがって、主要列は、関係型データベース内のどの行がグラフデータベース内のデータに関連するかを識別するユニークな識別子として動作する。グラフデータは、グラフデータベース記憶装置に又はそれに格納されたグラフデータベース若しくはその管理システムに発行され、検索結果はクエリハンドラ10へ返される。
クエリハンドラ10は、関係型データクエリ及びグラフデータクエリからの結果を照合し集約し、照合し集約した結果をクライアントアプリケーション20に返すよう構成される。
図2は、本発明の実施形態の例示的なコンポーネントアーキテクチャである。図2のコンポーネントアーキテクチャは、以下のコンポーネントを有する。
RDBMS120。本願明細書の他の場所で言及される関係型データベース記憶装置の例である。特に、関係型データベース(又は1より多い関係型データベース)を格納し管理する。
RDFトリプルストア140。本願明細書の他の場所で言及されるグラフデータベース記憶装置の例である。RDFトリプルストアは、RDBMS120を介してアクセス可能な関係型データベース内に格納されたデータに関連するグラフデータをエンコードする。
RDBMSスキーマ及びRDFオントロジマッピング110。本願明細書の他の場所で言及されるマッピングユニットの例である。RDBMSスキーマ/RDFオントロジマッピング110は、プラグインプログラム100の外部に示されるが、プラグインプログラム100の一部として含まれても良い。RDBMSスキーマ/RDFオントロジマッピング110は、ファイル又は格納された情報の特定の他のレポジトリであっても良く、クエリハンドラ10によりアクセス可能であり読み取り可能である。
JDBC/ODBCドライバ130は、通常、RDBMS120に格納された関係型データベースに提出されたクエリを処理するドライバソフトウェアプログラムである。しかしながら、図2の特定の構成では、データベースドライバは、本願明細書の他の場所で言及されるクエリハンドラ10の例であるプラグインプログラム100を有する。プラグインプログラム100は、実際に、クエリを傍受し、JDBC/ODBCドライバ130の代わりに検索結果を得るために処理を実行する。
プラグインプログラム100で受信された関係型データクエリは、SQLステートメントの形式であり、したがってRDBMS120に格納された関係型データベースを検索するのに適する形式である。プラグインプログラム100は、関係型データクエリ(SQLステートメント)の検索結果に関連するRDFトリプルストア140内のデータを見つけるために、関係型データクエリに基づきSPARQLクエリを生成するよう構成される。プラグインプログラム100は、RDBMSドライバの内部にインストールされ、いかなる形式、例えばJDBC又はODBCであっても良く、SQLステートメントがドライバ130で受信されるとSQLステートメントを検出する。プラグインプログラム100は、次に、RDFトリプルストア140内で検索するために及び関係型データ検索結果内の検索された行の主要データ列の値を識別するためにリソース名を識別できる順序で、必要な情報をRDBMSスキーマ/RDFオントロジマッピング110から検索するよう構成される。プラグインプログラム100は、次に、関係型データ検索結果内の検索された行内の主要データの値と一致する値を有する主要データ列に対応するリソースのインスタンス(のプロパティ)と関連するデータを検索するSPARQLクエリを生成するよう構成される。プラグインプログラム100は、次に、生成したSPARQLクエリをRDFトリプルストア140に転送するよう構成される。
RDBMSスキーマ/RDFオントロジマッピング110は、RDFオントロジ語彙を有するRDBMSスキーマをマッピングするマッピングファイルを格納する(又は単にマッピングファイルであっても良い)。単純な例として、RDBMSスキーマフィールドは、RDFクラス定義又はステートメントにリンク付けられる。したがって、SQLステートメントがクライアントアプリケーションからRDBMS120へJDBC/ODBCドライバ130を介して発行されると、プラグインプログラム100は、SQLステートメントの結果に関連するRDFトリプルストア140内のRDFトリプルステートメントを探すSPARQLクエリを生成するために必要な情報を得るために、RDBMSスキーマ/RDFオントロジマッピング110を参照できる。RDFトリプルストア140の場所(分散型コンピューティング環境又は更に広範な環境内のアドレス)もマッピングファイルに格納されても良いので、プラグインプログラム100は、SPARQLクエリがどこに発行されるべきかを識別する情報にアクセスできる。
図3は、どのようにマッピングファイルがコンパイルされるか、及びマッピングファイルに格納される情報を示す。RDBMSスキーマ111及びRDFオントロジ112は、マッピングファイルに格納されてもされなくても良いが、図3ではマッピングファイルの構成コンポーネントを示すために図示される。
データは、RDFトリプルストア140に、RDFオントロジ112で定義されるRDFクラスのインスタンス及びそのプロパティとして格納される。RDBMSスキーマ111は、関係型データベースの見出し付き列の名称を与える。関係型データベース内の行は見出し付き列の各々の中にエントリを有し、データは、関係型データベース内にそれらのエントリの値として格納される。
マッピングファイルは、RDBMSスキーマ/RDFオントロジマッピング110として表現される。RDBMSスキーマ/RDFオントロジマッピング110は、RDBMSスキーマ111内の見出し付き列とRDFオントロジ112内のリソース名との間の対応を記録する。関係型データベース内の関係型データに関連するグラフデータは、RDFトリプル内に、関係型データが属する見出し付き列のインスタンスのプロパティとして、主要列として指定される見出し付き列内の関係型データが属する行のエントリに対応する値を有するリソースのインスタンスのプロパティとして(つまり、インデックス付けされた関係型データの行に従って)、格納される。
マッピング方法を更に説明するために、RDBMSテーブルをRDFオントロジにマッピングし関係するデータをRDFトリプルストアに格納できるようにする例示的なルールセットを以下に説明する。
図4の例示的な関係型データベースでは、簡単のため1行のデータのみを示す。5個の見出し付き列、つまりRef_No(参照番号)、Date(日付)、Trading(取引)、Travel(旅行)、Total(合計)がある。図示のデータの行は、各見出し付き列にその行のエントリの値を有する。Ref_Noは主要列である。これは、各行にユニークな値を有する見出し付き列であり、このユニークな値により行がインデックス付けされる。
RDFオントロジでは、関係型データベースからの各見出し付き列は、対応するリソースを有し、命名の取り決めに従って命名される。この特定の例では、リソースは、Expense_Ref_No、Expense_Date、Expense_Trading、Expense_Travelと命名される。これらは、RDFオントロジのリソースであり、したがって、これらは、RDFオントロジにおいてrdf種類又はクラスとして以下のように定義される。
Figure 0006213247
本例で用いられた命名の取り決めは、クラスの名称が、アンダースコアにより分離されたテーブルの名称と列の名称との組み合わせに従うことである。これは、異なるテーブルに重複する列の名称が存在する場合に混乱を回避する。
さらに、主要列に対応するクラス、本例ではExpense_Ref_Noは、他の列見出しに対応するクラスへのリンクを含む述語を有する。したがって、主要列に対応するクラスは、関係型データベース内の行を表す階層構造のルートになる。
この特定の例では、Expense_Ref_No rdf:type rdfs:Classは、少なくとも以下の述語を有する。
Figure 0006213247
最後に、各列リソースは
(外1)
Figure 0006213247
述語を有し、リソースの各インスタンスは関係型データベース内の対応する見出し付き列内のエントリに対応し、
(外2)
Figure 0006213247
述語によりリンク付けされた目的語は、対応するエントリの値を反映する値を有する目的語である。例えば、travel_111はExpense_Travelクラスのインスタンスであり、値「3002」を有する目的語にリンクする述語has_valueを有する。インスタンスは、対応するExpense_Ref_Noインスタンスを介して参照可能である。対応するExpense_Ref_Noインスタンスにtravel_111がリンク付けされるので、travel_111及び値「3002」は、Ref_Noの対応する値を有するExpense_Ref_Noクラスのインスタンスのプロパティである。
図5は、上述の例示的なルールセットに従うRDFデータセットを示す。図4に示したデータの行に関連するデータはRDFデータセットに格納されることが分かる。例えば、「Trading」と見出しの付いた列にあるエントリの値を計算するために用いられた為替レートは、Trading列にあるエントリに対応するリソースのインスタンスのプロパティとして与えられる。さらに、Travel列にあるエントリに関連する送り状番号は、Travel列にあるエントリに対応するリソースのプロパティとして与えられる。
図6は、本発明を実施するプラグインプログラムにより実行される処理の例を示す。コンポーネント間の情報転送を説明するために、処理は、図2に対応するコンポーネントアーキテクチャに重ね合わせて図示される。
図2のコンポーネントアーキテクチャに加えて、図6の処理が重ね合わされたコンポーネントアーキテクチャは、プラグインプログラム100のコンポーネントとしてローカルレジストリ101を有する。ローカルレジストリ101は、プラグインプログラム100にアクセス可能な記憶場所であり、プラグインプログラム100により実行中のプロセスに関連するデータは、一時的又はもっと恒久的な基盤に格納され得る。
処理は、クライアントアプリケーション20からのSQLクエリAの受信により開始される。SQLステートメントAは、RDBMS120に格納された関係型データベースを検索するのに適するフォーマットである。
ステップS1で、プラグインプログラム100は、SQLクエリAを受信し(傍受し)、ローカルレジストリ101に記録する。
図3〜5に図示した例示的なデータ及びそれらの関連する説明では、SQLクエリAの一例は、以下の通りである(これは、この議論の目的で「説明のためのデータ例」として参照されるべきである)。
Figure 0006213247
ステップS2で、プラグインプログラム100は、関係型データベース又はSQLクエリAにより検索されている関係型データベーステ―ブル内のどの見出し付き列が主要列であるかを識別するために、マッピングユニット110へメッセージを送信する。マッピングユニット110は、関係型データベース又はデータベーステーブル内の主要列の名称を識別する情報で応答する。
図示のデータ例では、ステップS2で返される情報は、以下と類似する何からの形式を取っても良い。
Figure 0006213247
SQLクエリAは、どの行からのデータが検索結果に含まれるかを決定する条件を含む。ステップS3で、プラグインプログラム100は、SQLステートメント/クエリの形式であっても良い更なる関係型データクエリBを生成する。更なる関係型データクエリBは、SQLクエリAと同じ条件を含むが、特に、主要列にあるエントリの値を要求する。
図示のデータ例では、更なる関係型データクエリBは、以下の形式を取る。
Figure 0006213247
ステップS4で、SQLクエリA及び更なる関係型データクエリBは、RDBMS120に発行される。ステップS5で、SQLクエリAの結果Rは、JDBC/ODBCドライバ130又はプラグインプログラム100へ返される。ステップS6で、更なる関係型データクエリBの結果Rは、プラグインプログラム100へ返され、ローカルレジストリ101に記録される。
図示のデータ例では、結果Rは以下の通りであっても良い。
Figure 0006213247
SQLクエリAは、条件を満たす行にあるテーブルエントリからのどの見出し付き列からデータが読み出されるべきかを指定する選択句を含む。ステップS7で、プラグインプログラム100は、マッピングユニット110へメッセージを送信して、SQLクエリAで指定された見出し付き列に対応するRDFトリプルストア140内のデータを規定するRDFオントロジにおけるクラスの名称を要求する。簡単のため、メッセージに応答してマッピングユニットにより返される1又は複数の名称のセットは、Mと表す。
図示のデータ例では、マッピングユニット110により提供される情報は以下の通りであっても良い。
Figure 0006213247
ステップS8で、プラグインプログラム100は、Sと表されるSPARQLクエリのようなグラフデータクエリを生成する。Sは、選択句にMを、及び条件フィルタとしてRB内の値と一致する主要列に対応するクラスの値を含む。クエリSは、クエリ内で指定されたクラスインスタンスの全てのプロパティを要求しても良い。
図示のデータ例では、SPARQLクエリSは、単一の入れ子SPARQLクエリとして生成できる。しかしながら、説明を簡単にするため、ここでは3個の別個のクエリの観点から説明する。
先ず、RB(これは、acct:ref_no_122インスタンスを返すべきである)を含むExpense_Ref_Noのインスタンスを見付けるために、図7AのSPARQLクエリが用いられる。
次に、図7BのSPARQLクエリは、RDFストアからExpense_Travel及びExpense_Tradingインスタンス全てを見付けるために用いられる。ここでExpense_Ref_No=acct:ref_no_122である。このSPARQLクエリの戻り結果は、acct:trading_111及びacct:travel_111である。
さらに、図7CのSPARQLクエリは、主語がacct:trading_111及びacct:travel_111である場合の述語及び目的語全てを見付けるために用いられる。
ステップS9で、SPARQLクエリSは、場合によってはSQLクエリAがアドレスされた関係型データベース120に対応するRDFトリプルストア140を識別する場所情報を用いて、RDFトリプルストア140に発行される。
ステップS10で、SPARQLクエリSの結果Rは、プラグインプログラム100に返される。ステップS11で、結果R及びRは、プラグインプログラムにより結合され、クライアントアプリケーション20に返される。
図示のデータ例では、SQLクエリの実行全体の結合結果は、以下を含む。
Figure 0006213247
注:2つの結果セットを個々のデータベースと別個に返すこともできる。
したがって、本発明を具現化するメカニズムは、従来のSQL検索結果セットの一部として利用できない追加情報へのアクセスを可能にする。例えば、
RDBMSからの戻り結果セットは次の通りである。
Figure 0006213247
一方、RDFトリプルストアから、クエリに応答して以下の追加情報が返される。
Figure 0006213247
図8は、本発明を具現化するシステムのシステムアーキテクチャを示す。図8のシステムのシステムアーキテクチャは、前述の例と類似している。同様の参照符号が同様のコンポーネントに対して用いられ、これらのコンポーネントの説明は省略する。
図8のシステムアーキテクチャでは、1より多い関係型データベース(120_1、120_2、120_n)は、同じJDBC/ODBCドライバ130を介してアクセスできる。さらに、各関係型データベース(120_1、120_2、120_n)は、対応するグラフデータベース(140_1、140_2、140_n)を有し、対応する関係型データベース内のデータに関連するデータをRDFトリプルとして格納する。したがって、プラグインプログラム100は、関係型データベース(120_1、120_2、120_n)のいずれかに対するSQLクエリを受信し、対応するグラフデータベース(140_1、140_2、140_n)内の関連データを見付けるためにSPARQLクエリを生成するよう構成される。さらに、マッピングユニット110は、1より多いマッピングファイルを有する。マッピングファイルは、各対応するデータベース対に対して1つある。
10 クエリハンドラ
12 関係型データベース記憶装置
14 グラフデータベース記憶装置
20 クライアントアプリケーション
100 プラグインプログラム
101 ローカルレジストリ
110 RDBMSスキーマ/RDFオントロジマッピング
111 RDBMSスキーマ
112 RDFオントロジ
130 JDBC/ODBCドライバ
140 RDFトリプルストア

Claims (15)

  1. 複数の見出し付き列の各々にエントリを有する関係型データの行を有する関係型データベースを格納するよう構成される関係型データベース記憶装置と、
    前記関係型データに関連するグラフデータを有するグラフデータベースを格納するよう構成されるグラフデータベース記憶装置であって、前記グラフデータベースはトリプルとしてエンコードされる、グラフデータベース記憶装置と、
    関係型データの1又は複数の行のサブセットを定める条件を指定する関係型データクエリを受信するよう構成されるクエリハンドラであって、前記関係型データの1又は複数の行からのエントリが検索結果に含まれる、クエリハンドラと、
    を有し、前記クエリハンドラは、関係型データベースの1又は複数の行の前記サブセットに関連するグラフデータについて前記グラフデータベースを検索するためにグラフデータクエリを生成するよう構成される、データ記憶システム。
  2. 前記関係型データベース内の各エントリは、前記グラフデータベース内のノードに対応し、前記関係型データベース内のエントリに関連するデータは、前記グラフデータベースにおいて、前記エントリに対応するノードにリンク付けされたノードで表される、請求項1に記載のデータ記憶システム。
  3. 前記関係型データベース内の関係型データの行は、前記見出し付き列のうち主要列にある前記行の個々のエントリの値に従ってインデックス付けされ、
    前記グラフデータベース内のグラフデータは、オントロジに従って構造化され、該オントロジでは、主要列リソースは前記主要列に対応し、前記主要列リソースの述語は他の見出し付き列の各々に対応する更なる列リソースへのリンクを示す、
    請求項1又は2に記載のデータ記憶システム。
  4. 前記主要列リソース及び前記更なる列リソースの各々は、対応する見出し付き列の値を表す目的語へのリンクを示す値の述語を有する、請求項3に記載のデータ記憶システム。
  5. 前記主要列リソースのインスタンス及び前記更なる列リソースのインスタンスは、テーブルエントリに対応し、前記テーブルエントリの値は、個々の値の述語によりリンク付けされた目的語に格納される、請求項4に記載のデータ記憶システム。
  6. 前記主要列の名称を前記主要列として識別される形式で、前記主要列の名称と関連付けて、及び前記更なる見出し付き列の各々について、前記更なる見出し付き列の名称を対応する列リソースの名称と関連付けて、格納するよう構成されるマッピングユニット、
    を更に有し、
    前記クエリハンドラは、前記マッピングユニットを参照して前記グラフデータクエリを生成するよう構成される、請求項3乃至5のいずれか一項に記載のデータ記憶システム。
  7. 前記関係型データクエリはSQLステートメントであり、前記グラフデータクエリはSPARQLクエリである、請求項1乃至6のいずれか一項に記載のデータ記憶システム。
  8. 前記関係型データベースのデータベースドライバを更に有し、
    前記クエリハンドラは、前記データベースドライバのコンポーネントとして設けられる、請求項1乃至7のいずれか一項に記載のデータ記憶システム。
  9. 前記関係型データクエリは、前記見出し付き列のうちのどれからエントリが前記検索結果に含まれるべきかを指定する、請求項1乃至8のいずれか一項に記載のデータ記憶システム。
  10. 前記クエリハンドラは、前記関係型データクエリを受信すると、前記マッピングユニットを参照して、前記関係型データベースの前記主要列の識別子を得て、前記関係型データクエリの前記条件を満たす前記関係型データベースの行の主要列エントリの値を得るよう構成され、
    前記クエリハンドラは、前記主要列エントリの得られた値と一致する値を有する前記主要列リソースのインスタンスのサブセットにリンク付けられたノードの値を要求するグラフデータクエリを生成するよう構成される、請求項に記載のデータ記憶システム。
  11. 前記クエリハンドラは、前記マッピングユニットを参照して、前記関係型データクエリで指定された前見出し付き列のエントリに対応する前記更なる列リソースを識別し、
    前記クエリハンドラは、前記グラフデータクエリに、前記主要列リソースのインスタンスのサブセットにリンク付けられた前記の識別された列リソースのインスタンスであるノードの値についての要求を含め、前記グラフデータクエリに、前記ノードを主語として有する全てのトリプルについての要求を含めるよう構成される、
    請求項10に記載のデータ記憶システム。
  12. 前記クエリハンドラは、前記主要列のエントリを要求する更なる関係型データクエリを生成し、前記関係型データクエリと同一の条件を指定し、前記更なる関係型データクエリを前記関係型データベースに発行し、結果を受信することにより、前記関係型データクエリの前記条件を満たす前記関係型データベースの行の主要列のエントリの値を得るよう構成される、
    請求項10又は11に記載のデータ記憶システム。
  13. データ記憶システムで実行される方法であって、前記データ記憶システムは、複数の見出し付き列の各々にエントリを有する関係型データの行を有する関係型データベースを格納するよう構成される関係型データベース記憶装置と、
    前記関係型データに関連するグラフデータを有するグラフデータベースを格納するよう構成されるグラフデータベース記憶装置であって、前記グラフデータベースはトリプルとしてエンコードされる、グラフデータベース記憶装置と、を有し、前記方法は、クエリハンドラで、関係型データの1又は複数の行のサブセットを定める条件を指定する関係型データクエリを受信するステップであって、前記関係型データの1又は複数の行からのエントリが検索結果に含まれる、ステップと、関係型データベースの1又は複数の行の前記サブセットに関連するグラフデータについて前記グラフデータベースを検索するためにグラフデータクエリを生成するステップと、を有する方法。
  14. コンピューティング装置により実行されると、前記コンピューティング装置に請求項13に記載の方法を実行させる、コンピュータプログラム。
  15. 分散型コンピューティング環境にあるコンピューティング装置により実行されると、前記コンピューティング装置を、請求項1乃至12のいずれか一項に記載のデータ記憶システムとして動作させる、コンピュータプログラ
JP2014004205A 2013-01-15 2014-01-14 データ記憶システム、データ記憶システムで実行されるプログラム及び方法 Expired - Fee Related JP6213247B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13151328.5 2013-01-15
EP13151328.5A EP2755148A1 (en) 2013-01-15 2013-01-15 Data storage system, and program and method for execution in a data storage system

Publications (2)

Publication Number Publication Date
JP2014137820A JP2014137820A (ja) 2014-07-28
JP6213247B2 true JP6213247B2 (ja) 2017-10-18

Family

ID=47552908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014004205A Expired - Fee Related JP6213247B2 (ja) 2013-01-15 2014-01-14 データ記憶システム、データ記憶システムで実行されるプログラム及び方法

Country Status (3)

Country Link
US (1) US20140201234A1 (ja)
EP (1) EP2755148A1 (ja)
JP (1) JP6213247B2 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710568B2 (en) 2013-01-29 2017-07-18 Oracle International Corporation Publishing RDF quads as relational views
US9984083B1 (en) * 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9454548B1 (en) 2013-02-25 2016-09-27 Emc Corporation Pluggable storage system for distributed file systems
US10740396B2 (en) * 2013-05-24 2020-08-11 Sap Se Representing enterprise data in a knowledge graph
US9836503B2 (en) * 2014-01-21 2017-12-05 Oracle International Corporation Integrating linked data with relational data
US11921769B2 (en) * 2014-04-02 2024-03-05 Semantic Technologies Pty Ltd Ontology mapping method and apparatus
US10346399B2 (en) 2014-07-28 2019-07-09 Entit Software Llc Searching relational and graph databases
KR101674924B1 (ko) 2014-09-26 2016-11-22 삼성에스디에스 주식회사 데이터베이스 마이그레이션 방법 및 그 장치
KR101525529B1 (ko) * 2014-09-30 2015-06-05 주식회사 비트나인 데이터 처리장치 및 그 데이터 매핑방법
US10169355B2 (en) * 2014-10-27 2019-01-01 Tata Consultancy Services Limited Knowledge representation in a multi-layered database
US20160224645A1 (en) * 2015-02-03 2016-08-04 Siemens Aktiengesellschaft System and method for ontology-based data integration
GB2541231A (en) * 2015-08-13 2017-02-15 Fujitsu Ltd Hybrid data storage system and method and program for storing hybrid data
RU2607976C1 (ru) * 2015-08-19 2017-01-11 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Извлечение информации из структурированных документов, содержащих текст на естественном языке
US10984046B2 (en) * 2015-09-11 2021-04-20 Micro Focus Llc Graph database and relational database mapping
US9378303B1 (en) * 2015-09-18 2016-06-28 Linkedin Corporation Representing compound relationships in a graph database
US9330138B1 (en) 2015-09-18 2016-05-03 Linkedin Corporation Translating queries into graph queries using primitives
US9535963B1 (en) 2015-09-18 2017-01-03 Linkedin Corporation Graph-based queries
US9514247B1 (en) 2015-10-28 2016-12-06 Linkedin Corporation Message passing in a distributed graph database
US11487780B2 (en) * 2015-11-04 2022-11-01 Micro Focus Llc Processing data between data stores
US10180992B2 (en) 2016-03-01 2019-01-15 Microsoft Technology Licensing, Llc Atomic updating of graph database index structures
US10789295B2 (en) 2016-09-28 2020-09-29 Microsoft Technology Licensing, Llc Pattern-based searching of log-based representations of graph databases
JP6575478B2 (ja) * 2016-10-06 2019-09-18 日本電気株式会社 情報処理装置、情報処理方法及び情報処理プログラム
JP6805765B2 (ja) * 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
US10754859B2 (en) 2016-10-28 2020-08-25 Microsoft Technology Licensing, Llc Encoding edges in graph databases
US10803034B2 (en) * 2016-11-23 2020-10-13 Amazon Technologies, Inc. Global column indexing in a graph database
KR101929404B1 (ko) 2017-01-26 2018-12-14 주식회사 마이셀럽스 대상물 속성에 기반한 검색 시스템 및 그 검색 방법
US10546021B2 (en) 2017-01-30 2020-01-28 Sap Se Adjacency structures for executing graph algorithms in a relational database
US10394855B2 (en) * 2017-01-30 2019-08-27 Sap Se Graph-modeled data processing in a relational database
JP6790905B2 (ja) * 2017-02-20 2020-11-25 富士通株式会社 検出方法、検出装置および検出プログラム
US10445321B2 (en) 2017-02-21 2019-10-15 Microsoft Technology Licensing, Llc Multi-tenant distribution of graph database caches
US20180253493A1 (en) * 2017-03-03 2018-09-06 Home Box Office, Inc. Creating a graph from isolated and heterogeneous data sources
KR101783298B1 (ko) * 2017-04-05 2017-09-29 (주)시큐레이어 그래프 데이터베이스 기반으로 입력 데이터로부터 노드 정보를 생성 및 관리하는 방법 및 이를 이용하는 서버
US10540364B2 (en) 2017-05-02 2020-01-21 Home Box Office, Inc. Data delivery architecture for transforming client response data
US10671671B2 (en) 2017-06-09 2020-06-02 Microsoft Technology Licensing, Llc Supporting tuples in log-based representations of graph databases
US10445370B2 (en) 2017-06-09 2019-10-15 Microsoft Technology Licensing, Llc Compound indexes for graph databases
US10628492B2 (en) 2017-07-20 2020-04-21 Microsoft Technology Licensing, Llc Distributed graph database writes
US11475488B2 (en) 2017-09-11 2022-10-18 Accenture Global Solutions Limited Dynamic scripts for tele-agents
US11853930B2 (en) 2017-12-15 2023-12-26 Accenture Global Solutions Limited Dynamic lead generation
US10719557B2 (en) * 2018-01-16 2020-07-21 Palantir Technologies Inc. Concurrent automatic adaptive storage of datasets in graph databases
US10983997B2 (en) 2018-03-28 2021-04-20 Microsoft Technology Licensing, Llc Path query evaluation in graph databases
JP7147258B2 (ja) * 2018-05-15 2022-10-05 富士通株式会社 データ生成方法、データ生成プログラム及び情報処理装置
US11226854B2 (en) * 2018-06-28 2022-01-18 Atlassian Pty Ltd. Automatic integration of multiple graph data structures
CN109241155A (zh) * 2018-07-27 2019-01-18 天津大学 一种rdf流数据和关系数据的联邦查询处理系统及方法
CN109697404A (zh) * 2018-09-28 2019-04-30 中国银联股份有限公司 身份识别系统和方法、终端以及计算机存储介质
US11468882B2 (en) 2018-10-09 2022-10-11 Accenture Global Solutions Limited Semantic call notes
US10923114B2 (en) * 2018-10-10 2021-02-16 N3, Llc Semantic jargon
US11132695B2 (en) 2018-11-07 2021-09-28 N3, Llc Semantic CRM mobile communications sessions
US10742813B2 (en) 2018-11-08 2020-08-11 N3, Llc Semantic artificial intelligence agent
US10972608B2 (en) 2018-11-08 2021-04-06 N3, Llc Asynchronous multi-dimensional platform for customer and tele-agent communications
US10623572B1 (en) 2018-11-21 2020-04-14 N3, Llc Semantic CRM transcripts from mobile communications sessions
CN109857822A (zh) * 2018-12-29 2019-06-07 国家开发银行 基于图数据库的元模型转换方法及管理系统
US11567995B2 (en) 2019-07-26 2023-01-31 Microsoft Technology Licensing, Llc Branch threading in graph databases
US11113267B2 (en) 2019-09-30 2021-09-07 Microsoft Technology Licensing, Llc Enforcing path consistency in graph database path query evaluation
JP7460363B2 (ja) * 2019-12-19 2024-04-02 エヌ・ティ・ティ・コムウェア株式会社 情報検索装置、情報検索方法、およびプログラム
US11443264B2 (en) 2020-01-29 2022-09-13 Accenture Global Solutions Limited Agnostic augmentation of a customer relationship management application
US11392960B2 (en) * 2020-04-24 2022-07-19 Accenture Global Solutions Limited Agnostic customer relationship management with agent hub and browser overlay
US11481785B2 (en) 2020-04-24 2022-10-25 Accenture Global Solutions Limited Agnostic customer relationship management with browser overlay and campaign management portal
US11354302B2 (en) * 2020-06-16 2022-06-07 Sap Se Automatic creation and synchronization of graph database objects
US11507903B2 (en) 2020-10-01 2022-11-22 Accenture Global Solutions Limited Dynamic formation of inside sales team or expert support team
US11797586B2 (en) 2021-01-19 2023-10-24 Accenture Global Solutions Limited Product presentation for customer relationship management
US11816677B2 (en) 2021-05-03 2023-11-14 Accenture Global Solutions Limited Call preparation engine for customer relationship management
US20230031659A1 (en) * 2021-07-26 2023-02-02 Conexus ai, Inc. Data migration by query co-evaluation
US11907182B2 (en) * 2021-09-09 2024-02-20 Sap Se Schema-based data retrieval from knowledge graphs

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546576A (en) * 1995-02-17 1996-08-13 International Business Machines Corporation Query optimizer system that detects and prevents mutating table violations of database integrity in a query before execution plan generation
US5826258A (en) * 1996-10-02 1998-10-20 Junglee Corporation Method and apparatus for structuring the querying and interpretation of semistructured information
US20060047636A1 (en) * 2004-08-26 2006-03-02 Mohania Mukesh K Method and system for context-oriented association of unstructured content with the result of a structured database query
US7693812B2 (en) * 2007-01-17 2010-04-06 International Business Machines Corporation Querying data and an associated ontology in a database management system
US7890518B2 (en) * 2007-03-29 2011-02-15 Franz Inc. Method for creating a scalable graph database
US7979455B2 (en) * 2007-11-26 2011-07-12 Microsoft Corporation RDF store database design for faster triplet access
US8401991B2 (en) * 2008-08-08 2013-03-19 Oracle International Corporation Database-based inference engine for RDFS/OWL constructs
US8140556B2 (en) * 2009-01-20 2012-03-20 Oracle International Corporation Techniques for automated generation of queries for querying ontologies
US20120011134A1 (en) * 2010-07-08 2012-01-12 Travnik Jakub Systems and methods for database query translation
US20120047483A1 (en) * 2010-08-20 2012-02-23 Sap Ag Smart Web Service Discovery
US9098566B2 (en) * 2011-05-24 2015-08-04 Oracle International Corporation Method and system for presenting RDF data as a set of relational views
US9280583B2 (en) * 2012-11-30 2016-03-08 International Business Machines Corporation Scalable multi-query optimization for SPARQL
US9053210B2 (en) * 2012-12-14 2015-06-09 Microsoft Technology Licensing, Llc Graph query processing using plurality of engines

Also Published As

Publication number Publication date
EP2755148A1 (en) 2014-07-16
JP2014137820A (ja) 2014-07-28
US20140201234A1 (en) 2014-07-17

Similar Documents

Publication Publication Date Title
JP6213247B2 (ja) データ記憶システム、データ記憶システムで実行されるプログラム及び方法
US20200183932A1 (en) Optimizing write operations in object schema-based application programming interfaces (apis)
US9659045B2 (en) Generic indexing for efficiently supporting ad-hoc query over hierarchically marked-up data
US9798772B2 (en) Using persistent data samples and query-time statistics for query optimization
US10116725B2 (en) Processing data retrieval requests in a graph projection of an application programming interfaces (API)
US9734180B1 (en) Object metadata query with secondary indexes
US8219563B2 (en) Indexing mechanism for efficient node-aware full-text search over XML
EP2652645B1 (en) Extensible rdf databases
US8762410B2 (en) Document level indexes for efficient processing in multiple tiers of a computer system
US7930277B2 (en) Cost-based optimizer for an XML data repository within a database
US8983931B2 (en) Index-based evaluation of path-based queries
US8126932B2 (en) Indexing strategy with improved DML performance and space usage for node-aware full-text search over XML
US20140067762A1 (en) Database controller, method, and system for storing encoded triples
Luo et al. Storing and indexing massive RDF datasets
US20160314212A1 (en) Query mediator, a method of querying a polyglot data tier and a computer program execuatable to carry out a method of querying a polyglot data tier
JP2015133097A (ja) 格納データアクセス制御装置
EP2975535A1 (en) Checking freshness of data for a data integration system, DIS
Batini et al. Data quality issues in linked open data
US8756246B2 (en) Method and system for caching lexical mappings for RDF data
Li et al. Research on storage method for fuzzy RDF graph based on Neo4j
Shen et al. A graph-based RDF triple store
Mandreoli et al. Approximating expressive queries on graph-modeled data: The GeX approach
Xu et al. Skia: Scalable and efficient in-memory analytics for big spatial-textual data
Yan et al. RDF knowledge graph keyword type search using frequent patterns
Tachmazidis et al. Optimizing a Semantically Enriched Hypercat-enabled Internet of Things Data Hub.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170802

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170904

R150 Certificate of patent or registration of utility model

Ref document number: 6213247

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees