JP6123339B2 - エンコードされたトリプルを格納するデータベース、装置及び方法 - Google Patents

エンコードされたトリプルを格納するデータベース、装置及び方法 Download PDF

Info

Publication number
JP6123339B2
JP6123339B2 JP2013029535A JP2013029535A JP6123339B2 JP 6123339 B2 JP6123339 B2 JP 6123339B2 JP 2013029535 A JP2013029535 A JP 2013029535A JP 2013029535 A JP2013029535 A JP 2013029535A JP 6123339 B2 JP6123339 B2 JP 6123339B2
Authority
JP
Japan
Prior art keywords
data
triple
database
stored
data item
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
JP2013029535A
Other languages
English (en)
Other versions
JP2013175181A (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 JP2013175181A publication Critical patent/JP2013175181A/ja
Application granted granted Critical
Publication of JP6123339B2 publication Critical patent/JP6123339B2/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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

Description

本発明は、データ記憶の分野に関する。特に、本発明の実施形態は、分散記憶環境でグラフデータを記述するトリプルの記憶に関連する。
関係型データベースは、データを行と列で格納する。行及び列は、データを格納する前に定める必要のあるテーブルを構成する。テーブルの定義及びこれらのテーブルに含まれるデータ間の関係は、スキーマと称される。関係型データベースは、固定スキーマを用いる。グラフデータベースは、データをノード及びアークの形式で格納することにより、関係型データベースの重要な拡張を表す。ここで、ノードはエンティティ又はインスタンスを表し、アークは任意の2つのノード間の特定種類の関係を表す。無向グラフでは、ノードAからノードBへのアークは、ノードBからノードAへのアークと同じであると考えられる。有向グラフでは、2つの方向は別のアークとして扱われる。
グラフデータベースは、概して2つの主な種類に分類できる広範な種類の異なるアプリケーションで用いられる。第1の種類は、知的意思決定支援及び自己学習のようなクラス記述子の大規模な集合体(「知識ベースアプリケーション」と称される)を有する複雑な知識ベースシステムを有する。第2の種類は、社会的データ及びビジネスインテリジェンスのようなトランザクションデータに対するグラフ検索の実行を含むアプリケーション(「トランザクションデータアプリケーション」と称される)を有する。多くのアプリケーションは、両方の種類を表し得る。しかしながら、大部分のアプリケーションは、主に知識ベース又はトランザクションデータアプリケーションのいずれかで特徴付けられ得る。グラフデータベースは、種々の分野の膨大な構造化又は非構造化データを格納できる大規模な「意味ネットワーク」を維持するために用いることができる。意味ネットワークは、知識表現の形式として用いられ、コンセプトを表すノード及びコンセプト間の意味関係を表すアークを有する有向グラフである。
幾つかの種類のグラフ表現がある。グラフデータは、多次元アレイとして又は他のシンボルにリンク付けされたシンボルとしてメモリに格納されても良い。別の形式のグラフ表現は、各々指定された種類のオブジェクトの有限シーケンス又は順序付きリストである「タプル」の使用である。n個のオブジェクトを含むタプルは、「nタプル」として知られる。ここで、nは零より大きい任意の非負整数である。長さ2のタプル(2タプル)は、通常、ペアと呼ばれる。3タプルはトリプルと呼ばれ、4タプルはクワドラプルと呼ばれ、以降同様である。
RDF(Resource Description Framework)は、概念記述又は意味ネットワークの標準である情報のモデル化のための一般的方法である。今日利用可能なRDFデータの量は、増大しており、既に単一のサーバに格納することが不可能である。膨大な量のデータを格納し検索可能にするために、データは複数のサーバに保持されなければならない。データの追加、削除及び検索は、分散システムのために特注されたアルゴリズム及びデータ構造を用いて協調的方法で行われなければならない。コンピュータ的に効率的にデータの検索、保守及び操作を可能にするような方法でグラフデータを格納することが望ましい。
本発明は、エンコードされたトリプルを格納するデータベース、装置及び方法を提供する。
本発明の実施形態は、トリプルとしてエンコードされたグラフデータのデータベースであって、各トリプルは、主語、述語及び目的語を有し、各トリプルは該トリプルのデータに従って順序付けられたデータアイテムのセットの中のデータアイテム内に格納され、分散型ノードネットワークの複数のノードに渡って分散され、前記データアイテムの各々がマッピングされるノードは、前記順序付けられたセット内のデータアイテムの位置に依存し、各トリプルは、データアイテム内で主語が述語及び目的語より前にある第1の構成、データアイテム内で述語が主語及び目的語より前にある第2の構成、データアイテム内で目的語が主語及び述語より前にある第3の構成、のうちのそれぞれ異なる構成を有する2以上のデータアイテム内に格納される、データベースを提供する。
このようなトリプルを分散キー値ストア(key-value store:KVS)のような従来の(非ソート)システムに格納するためには、各トリプルはキーに関連付けられなければならない。トリプルを定まった(非ソート)KVSに格納することは、システムが格納されたデータに対して長い詳細な検討を実行する必要がある場合に、コンピュータ的に集中的なプロシジャをもたらし得る。非ソートKVS内の長く詳細な検討を実行することは、KVSに格納された各々1つのトリプルに対してget(キー)演算を実行することにより実施される。大文字O表記を用いると、この演算はO(K)である。ここで、Kは、クライアントアプリケーションが検索に必要なキーの数(長く詳細な検討を行うときは大きな数になる可能性がある)である。get()演算の度に、システムは以下を行う必要がある。(1)KVSの一部として動作しているプロセスPの1つへ要求を送信する。(2)Pは、データを保持するネットワークノードを発見する関数を実行する。この関数は例えばQを返しても良い。(3)Pは要求をQへ転送する。(4)Qはクライアントアプリケーションに直接応答でき、又はPを媒介として用いることができる。(5)上述のタスクはK回繰り返される。
このプロシジャは、通常3通信ステップで、データがP内にK回ある場合に時には2通信ステップだけで実行される。このプロシジャは、特に、個々のキーを検索する度にデータストアを詳細に検索するために用いられるコンピュータリソースの使用の観点から集約的である。
本発明の実施形態では、(RDFトリプルのような)各トリプルは、データアイテムとして、例えば単純なストリングオブジェクトとして格納され、グラフG内で一意である。よって、Gに関する全ての情報は、データアイテム内に保持される。トリプルは、(ピアツーピアネットワーク環境のような)分散型ネットワーク環境のネットワークノード内のプロセスを通じて分散された順序付けられたデータセット内のデータアイテムとして格納される(データアイテムにエンコードされる)。各ノードで動作するプロセスは、データアイテムの順序付けられたサブセットの記憶を実現する。プロセス及びプロセスを動作させるネットワークノードは、本願明細書では事実上同義的に表され、前者又は後者が排他的に意図されるときは文脈から明らかである。本発明の実施形態は、データに対して効率的な問い合わせプロシジャを行うことを可能にする。例えば、(発行されると)dminとdmaxとの間のデータアイテムの範囲を検索するプロシジャは、以下のステップを実行する。(1)クライアントアプリケーションがプロセスのうちの1つAに要求を送信する。(2)Aはマッピング関数を実行し、要求されたデータ範囲の1つのサブセットを含むプロセスのノードID(又はラベル)を得る(例示的な場合には、データアイテムは均等に分散され、各プロセスは多数のデータアイテムの格納を担う)。例として、クライアントアプリケーションにより要求されたキーがプロセスA及びBに格納されている場合を検討する。(3)Aは、要求されたデータアイテムの各サブセットを検索するサブ範囲要求を自身へ及びBへブロードキャストする。(4)各プロセスは、要求されたデータアイテムと共にAに応答する。(5)Aは、(結果の順序を維持しながら)結果を集め、クライアントアプリケーションに応答する。
上述の例から、本発明の実施形態が更に効率的なデータの問い合わせを可能にすることが分かる。さらに、ステップは、従来技術の場合のように要求内のデータアイテム毎に繰り返される必要はない。
本発明の実施形態におけるグラフデータは有向グラフデータなので、第1のグラフノードから第2のグラフノードへのアークは、第2のグラフノードから第1のグラフノードへのアークと同じであるとは考えられない。意味ネットワークは、知識又は情報の表現として形成され、エンティティ又はインスタンスのようなコンセプトを表すグラフノード、及びコンセプト間の意味関係を表すアークを有する。
本発明の実施形態では、グラフデータは、トリプルとしてエンコードされる。トリプルは、それぞれ特定の種類である3つのオブジェクトの無限シーケンス又は順序付きリストである。
任意で、トリプルは、RDF(Resource Description Framework)トリプルであっても良い。本願明細書を通じて、「RDFトリプル」への特定の参照が行われるとき、それはRDF標準に準拠するトリプルの例示的形式であることが理解されるべきである。さらに、「トリプル」への参照は、問題のトリプルがRDFトリプルである可能性を有する。同様に、本願明細書のいずれかの箇所で議論されるRDFプロセッサは、APIラッパと格納されたデータアイテムとの間の相互作用のために用いられるプロセッサの例である。
RDF(Resource Description Framework)は、概念記述又は意味ネットワークの標準である情報のモデル化のための一般的方法である。意味ネットワークにおける情報のモデル化の標準化は、共通の意味ネットワークで動作するアプリケーション間の相互接続性を可能にする。RDFは、RDFスキーマ(RDFS)をRDF内の語彙を記述するための言語として提供することにより、一義的な形式意味論と共に語彙を保持する。
トリプルは、グラフデータを複数の主語−述語−目的語の表現として特徴付けることにより、グラフデータのエンコードを提供する。この文脈では、主語及び述語は、グラフデータのグラフノードであり、オブジェクト、インスタンス又はコンセプトのようなエンティティであり、述語は、主語と目的語の間の関係の表現である。述語は、目的語への特定の種類のリンクを提供することにより、主語に関する何かを断言する。例えば、主語は、(例えば、URIを介して)ウェブリソースを示しても良く、述語はリソースの個々の特性、特徴又は状況を示し、目的語は、該特性、特徴又は状況のインスタンスを示す。言い換えると、トリプルステートメントの集合は、元来、方向性グラフデータを表す。RDF標準は、このようなトリプルの形式化された構造を提供する。
分散型ノードネットワークは、互いに通信する1より多い異なる記憶ユニットを有し得る。例示的な通信パラダイムはピアツーピア(P2P)である。したがって、分散型ノードネットワークはピアツーピアノードネットワークであっても良い。P2Pは、タスク又は負荷をピア間に区分する分散アーキテクチャである。ピア(個々のノード又はプロセス)は、等価な特権を有し、アプリケーション内で等しい力を有する参加者である。各ピアは、処理能力、ディスクストレージ又はネットワーク帯域幅のようなそれ自体のリソースの一部を、サーバ又は安定したホストによる集中的強調の必要無しに、他のネットワーク参加者に直接利用可能にするよう構成される。ピアは、リソースの供給者及び消費者の両方であると考えられ、サーバが供給しクライアントが消費するという従来のクライアント−サーバモデルとは対照的である。有利なことに、P2Pは、対数的な通信コストでメッセージを交換するノードの大規模なグループを維持できる。
実施形態では、トリプルの目的語が複雑な例では、順序付けられたデータに格納される目的語は、該目的語のために生成されるUUID(universal unique ID)であっても良い。この選択肢は、オブジェクトが大きく、そのサイズが範囲クエリプロシジャの効率を低下させてしまう実装シナリオで用いられる実施形態で有用である。
本発明の実施形態では、トリプルは、順序付けられたデータアイテムに格納されるので、データアイテムを返すクエリは、トリプルの表現が検索されるのを可能にする。
本発明の実施形態では、データアイテムは、トリプルの要素を表すストリングオブジェクトの辞書順により順序付けられても良い。ストリングオブジェクトは、データアイテムであるか又はデータアイテムに含まれている。例えば、辞書順はアルファベット順であっても良い。本発明の実施形態の実装では、データアイテムの主語、述語又は目的語(又は目的語のUUID)のいずれかを固定することによりデータアイテムのセットをクエリすることが望ましい。このようなくえりの結果を効率的に返すために、トリプルの2以上の要素がデータアイテム内の最初の要素として格納されることが有利である。
順序付けられているデータアイテムは、データアイテム間の比較を行うこと及び範囲クエリを実行することを可能にする。K1とK2(K1<K2)の間の範囲クエリは、キーの特定の所定の順序メトリックに従って、K1より大きくK2より小さいデータアイテムの順序付けされたセットに含まれるデータアイテムを返す。勿論、データアイテムのセットは、分散型ノードネットワークのノードに渡って分割される(ここで、ノードは、サーバのようなリソース、又は該サーバで動作するプロセスである)。例示的な実施形態では、範囲クエリは、クエリをノードのうちの1つに送信することにより、アプリケーションの代わりにRDFプロセッサのようなプロセッサにより開始される。ノードは、どの他のノードがクエリにより探し出されたデータアイテムを有するかを、データアイテムの論理表現をK1及びK2に適用し、サブ範囲クエリをこれらのノードに対して実行することにより計算するよう構成される。ノードは、次に、(データアイテムの順序を維持したまま)結果を集め、それらをクエリを行使したプロセッサに返すよう構成される。
任意で、トリプルの1又は複数の要素のうちの各々は(要素は、述語、目的語又は主語である)、URI(Uniform Resource Identifier)である。RDF及び他のトリプルの形式は、識別するものの概念(つまり、オブジェクト、リソース又はインスタンス)を前提として、URIのようなウェブ識別子を用い、それら識別される「もの」を簡易な特性及び特性値の観点で記述する。トリプルの観点では、そのトリプルのウェブリソースの具体化において、主語はエンティティを記述するウェブリソースを特定するURIであっても良く、述語は特性の種類(例えば、色)を特定するURIであっても良く、目的語は問題のエンティティに起因する特性の種類の特定のインスタンスを指定するURIであっても良い。URIの使用は、トリプルに、個々の特性及び値と同様に、リソースを表すノード及びアークのグラフのようなリソースに関する簡易なステートメントを表すことを可能にする。RDFグラフは、SPARQLプロトコル及びRDFクエリ言語(SPARQL)を用いて問い合わせることができる。SPARQLは、World Wide Web ConsortiumのRDF Data Access Working Group (DAWG)により標準化され、主要なセマンティックウェブ技術と考えられている。SPARQLは、クエリがトリプルのパターン、連結、分離、任意のパターンを有することを許容する。
任意で、各データアイテムは、対応するトリプルの主語、述語及び目的語を有するストリングオブジェクトを含んでも良い。
有利なことに、ストリングオブジェクトは、一般に読み取り可能であり、その比較及び存在する他の処理要求では確立されたルーチンである。データベース自体及びデータベースにアクセスするアプリケーションは、ストリングオブジェクトを処理する確立したルーチンを有しても良い。さらに、ストリングオブジェクトは、検索及び比較(オーダ)するのが速い。
データアイテムは、ストリングオブジェクトのアルファベット順の比較に従って順序付けられても良い。
有利なことに、検索、範囲、他の比較関数のようなデータベース関数が利用可能である。データベース関数は、ストリングデータオブジェクトのアルファベットの内容を比較するために、コンピュータ的に効率的な観点で最適化される。したがって、このようにデータアイテムを順序付けする実施形態は、コンピュータ的効率の観点で特に有効である。上述の実施形態では、前記データアイテムは、該データアイテムのストリングオブジェクトのアルファベット順に従って順序付けられても良い。データアイテムは、単にストリングオブジェクトであっても良く、又は他のオブジェクト若しくはデータを有しても良い。ストリングは、英数字シンボルのシーケンスである。
本願明細書で議論するデータアイテムは、独立した情報片であっても良い。しかしながら、本発明の実施形態は、各前記データアイテムがキー値体系(KVS)内のキー値ペアのキーである実施形態を含む。
有利なことに、キー値体系のキーに完全なトリプルを含むキーの格納は、関数が、トリプルが見付かるかも知れない場所への単なるリンク又は識別子ではなく、完全なトリプルを返すキーのセットに対して実行されるのを可能にする。
キー値ペアのキ―に格納されることは、キー値ペアのキ―であるストリングオブジェクトとしてトリプルの要素を表すことを含む。
キー値システム(KVS)又はキー値ストアは、複数の格納されたキー及び値である。各キーは、関連付けられた値を有し、論理関数又は論理木、例えばハッシュテーブル又はハッシュマップを介して該関連付けられた値にマッピングされる。ハッシュテーブル又はハッシュマップは、ハッシュ関数を用いて(値を特定する)キーをそれらの関連付けられた値にマッピングするデータ構造である。本発明の実施形態では、ハッシュ関数は、キーを、ノードのピアツーピアネットワークを形成する複数のノードのうちのノード(記憶リソース)の識別表示に変換するために用いられても良い。
実施形態は、複数の前記キー値ペアの各々の値は、キーに格納されたトリプルに関連する追加情報を有しても良い。
上述の技術では、トリプル全体、又は目的語のUUIDを有するトリプルの述語及び主語は、キー値ペアのキーに格納され、有利なことに、キー値ペアの値がデータベースの機能及び使い勝手を向上させるために用いられることを可能にする。値の特性又は詳細な内容は、特定の実施形態及び実装の詳細に依存する。値は、キーを介して参照されるコンテナであっても良い(コンテナは、文字列、ソフトウェア及び他のオブジェクトを一緒に格納するよう適応されたコンテナ(Container)と称されるオブジェクトのクラスを有する)。このようなコンテナの幾つかの例示的な内容を以下に説明する。
単純な例として、目的語のUUIDが目的語自体を表すストリングではなく、キーのストリングに含まれるキー値ペアでは、目的語自体を表すストリングは、コンテナに格納されても良い。
更なる例として、トリプルに関するメタデータは、値に格納される。この文脈におけるメタデータは、トリプルの中の情報アイテムに関する説明データである。キーはトリプルを格納し、値は該トリプルに関する情報を格納する。
任意で、上述の実施形態では、前記追加情報は、アプリケーションのアイデンティティに依存して前記データベースにアクセスする前記アプリケーションに利用可能にされるデータである。
有利なことに、このような実施形態は、データベース内のデータを読み出し及び/又は書き込むアプリケーションに依存する特徴を有効にすることにより、データベースの機能を拡張する。データは、アプリケーション依存データであり、KVSにおいて不可解オブジェクトとして見なされ取り扱われても良い。値コンテナオは、アプリケーション依存データを設定及び読み出すAPIを有しても良い
任意的に、上述のKVS実装では、前記追加情報は、リード及び/又はライトアクセスが前記キー値ペアに格納されたRDFトリプルに対して行われるとき通知を受信するために登録されるアプリケーションのリストを含む。さらに、追加情報は、コンテナを格納するノードによる実行のためにソフトウェアコードを有しても良い。例えば、ソフトウェアコードは、特定のイベントに応答して格納され呼び出されても良い。また、ソフトウェアコードの引数もコンテナに格納される。例えば、値は、ソフトウェアコードのブロックを更新関数として格納しても良い。関連付けられたトリプルが更新されるとき、更新関数が呼び出され、他のトリプルのリスト及びそれらの場所が引数である。他のトリプルのリストは、クライアントアプリケーションがトリプルを、特定のイベントと関連付けられたコンテナ内のリストに追加することにより、生成されても良い。
有利なことに、トリプルデータへの読み出し又は書き込みアクセスが行われるときを通知するアプリケーションは、格納されたデータを用いてデータベースとアプリケーションとの間の相互作用のレベルを向上させる。通知を受信するために登録されたアプリケーションのリストは、通知が管理され得るメカニズムを提供する。
各キー値ペアの値は、アプリケーションに前記通知を登録及び/又は登録解除させるアプリケーションプログラミングインタフェース(API)を含んでも良い。また、通知を実行するソフトウェアコードは、上述のようにコンテナに格納されても良い。
有利なことに、通知を登録及び登録解除するアプリケーションの形式化されたメカニズムを提供することは、特性が動的である可能性の高いアプリケーションの現在のプロファイル及び該アプリケーションの要件を反映するよう、通知システムを適応し変更することを可能にする。さらに、データベースは、データベース管理者又は他のユーザがAPI自体を更新又は変更できるように、構成されても良い。
任意的に、上述のKVS実装では、各キー値ペアの値は、前記追加情報へのアクセスを管理するアプリケーションプログラミングインタフェース(API)を含む。
APIは、ソフトウェアコンポーネントが互いに相互作用する仕様である。本例では、APIは、特定の情報片の場所が決定できるようにコンテナ内のデータ構造の定義、データに関連する書き込みコマンド又は読み出しコマンドを発行する枠組み、及び追加情報内のデータ種類の定義を含んでも良い。
例示的な実施形態では、各前記データアイテムは、順序付けたハッシュテーブルを用いてノードにマッピングされる。
有利なことに、ハッシュテーブルは、データアイテムをノードにマッピングするコンピュータ的に効率的な方法を提供する。順序付けたハッシュテーブルは、ハッシュ関数を用いて、データアイテムの内容に基づきデータアイテムをノードに割り当てる。
キー値体系では、ハッシュテーブル又はハッシュマップは、ハッシュ関数を用いてキーとして知られる特定する値をそれらの関連付けられた値にマッピングするデータ構造である。したがって、ハッシュテーブルは、連想配列を実施すると言われている。ハッシュ関数は、対応する値が検索されるアレイ要素(記憶場所、スロット又はバケットとも称される)のインデックス(ハッシュ)にキーを変換するために用いられる。
任意的に、上述のデータベースでは、前記順序付けたハッシュテーブルは、コンシステントハッシュ関数を用いる。
一貫したハッシングは、関連付けられた値が格納されているスロットの数の変化に応答して再マッピングされる必要のあるキーの数を調整する。例えば、キー及びK個のキーに関連付けられた値がピアツーピアシステム内のn−1個の「ピア」の間に分散されているシステムを考える。新しいピアがシステムに参加した場合、K/n個のキーのみが再マッピングされる必要がある。一貫したハッシングでは、新しいピアがシステムに追加されるとき、他のピアから格納されたキーのほぼ等しい分担を取り、ピアが削除されるとき、そのキーは残りのピアの間で分担される。
任意的に、上述のKVS実装では、前記データベースは1又は複数の他のデータベースによりアクセス可能であり、前記追加情報は、前記キー値ペアに格納されたトリプルにより表される情報を含む1又は複数の他のデータベースの間のデータベースのリスト、 ストされた各データベースに対して、前記キー値ペアに格納されたトリプルに含まれる情報が、該リスとされたデータベースに対して動作するアプリケーションにより更新されるようにするコネクタ、を含む。
有利なことに、このような実施形態では、他のデータベースは、アプリケーションとして効率的に動作する関係型データベースであっても良く、又はアプリケーションを介してグラフデータベースにリンク付けされ、グラフデータベース内のデータをアクセスし変更しても良い。このような実施形態は、共通の、相互運用可能な、マシンアクセス可能なデータ記憶を提供する。このようなデータ記憶のスキーマは、データベース全体の再コーディングを必要とすることなく簡単に変更できる。
コネクタは、外部データソースと通信可能なソフトウェアライブラリを有しても良い。一例として、JDBCドライバは、関係型データベースへのコネクタである。この文脈では、コネクタは、外部ソースフォーマットからトリプルへ(及びその逆に)データを変換する。
本発明の別の態様の実施形態では、(ノードのピアツーピアネットワークのような)分散型ノードネットワークのノードとして動作するよう構成されるコンピューティング装置であって、前記コンピューティング装置は、(RDFトリプルのような)トリプルとしてエンコードされたグラフデータのデータベースのサブセットを格納し、各トリプルは、主語、述語及び目的語を有し、各トリプルは該トリプルのデータに従って順序付けられたデータアイテムのセットの中のデータアイテム内に格納され、前記分散型ノードネットワークの複数のノードに渡って分散され、前記データアイテムの各々がマッピングされるノードは、前記順序付けられたセット内のデータアイテムの位置に依存し、各トリプルは、データアイテム内で主語が述語及び目的語より前にある第1の構成、データアイテム内で述語が主語及び目的語より前にある第2の構成、データアイテム内で目的語が主語及び述語より前にある第3の構成、のうちのそれぞれ異なる構成を有する2以上のデータアイテム内に格納される、コンピューティング装置が提供される。
本発明の別の態様の実施形態では、コンピューティング装置により実行されると、前記コンピューティング装置に上述のコンピューティング装置として動作させる、コンピュータプログラムが提供される。
本発明の好適な特徴は、単なる例として添付の図面を参照して以下に説明される。
本発明の実施形態の概略図である。 本発明の実施形態を実装する例示的なシステムアーキテクチャである。 本発明の実施形態を実装する別のシステムアーキテクチャである。 本発明を実装するグラフデータベースがデータベース連合実装でどのように使用され得るかの説明である。 本発明を実装するグラフデータベースがデータベース連合実装においてデータベース更新を実行するためにどのように用いられ得るかの第1の例である。 本発明を実装するグラフデータベースがデータベース連合実装においてデータベース更新を実行するためにどのように用いられ得るかの第2の例である。
図1は、本発明の実施形態を現す概略図である。本実施形態では、分散ネットワークを形成する4個のネットワークノード10がある。この特定の実施形態では、使用される通信パラダイムはP2Pであるが、実施形態は他の通信パラダイムと共に機能し得る。4個のネットワークノードは、それぞれa−dでラベル付けされている。ラベルは、ネットワークノードのアドレスの例であり、勿論、ネットワークノードを互いに識別させる任意のデータであっても良い。本実施形態では、ネットワークノードは、それぞれ、記憶サーバのような別個のコンピュータであると考えられる。各ネットワークノード10は、自身の記憶ユニット101を有する。しかしながら、単一のコンピューティング装置が1より多い記憶ユニットを有し、各記憶ユニットがそれ自体のアドレスを有し他から別個に問い合わせられるように構成されることも可能である。このような例では、単一のコンピューティング装置が1より多いネットワークノードとして取り扱われても良い。ネットワークノード10は、プロセスであるとも考えられる。ここで、プロセスは、単に、特定の機能を提供するために特定のソフトウェアを実行するマシンである。
ネットワークノード10間の線は、データコネクションを現す。データコネクションは、あるネットワークノード10から別のネットワークノード10へ敷設されたハードワイヤードの専用ケーブルであっても良く、必要に応じて確立されるチャネル又は無線搬送波を有する無線コネクションであっても良い。或いは、データコネクションは、ケーブル、スイッチ、無線リンク及び他の通信手段を含むネットワークを介して実現されても良い。各ネットワークノード10は、互いに他のネットワークノ―ド10とのデータコネクションを有しなくても良い。しかしながら、各ネットワークノード10は、少なくとも1つの他のネットワークノード10と通信可能に構成され、他のネットワークノード10又は他のネットワーク機器を介したとしても各ネットワークノード10が互いに通信できるようにすべきである。図1に示した実施形態では、各ネットワークノード10は、それぞれの他のネットワークノード10とのデータコネクションを設けられている。
本実施形態のピアツーピアネットワークにおける各ネットワークノード10は、2つのデータアイテムを格納する。勿論、本発明の実施形態は、ピアツーピアネットワークにおけるネットワークノードの数(最小数2より多い)又は各ネットワークノード10に格納されるデータアイテムの数により限定されない。
図中、データアイテムは、括弧<>で囲まれたシンボルのグループにより表現される。各シンボルは、3種類の要素(P=述語(predicate)、S=主語(subject)、O=目的語(object))を示す文字とデータアイテムとして格納されているRDFトリプルを識別する数を含む英数字対である。これらのシンボルは、本発明の実施形態が格納するデータの実際の内容ではなく、データが格納され得る方法を示すために含まれる。本実施形態ではトリプルはRDFトリプルであるが、本発明の実施形態は他のトリプルフォーマットのグラフデータをエンコード可能である。よって、4つのRDFトリプル1、2、3、4がある。各RDFトリプルは、2つのデータアイテムとして格納される。各データアイテムは、異なる構成を有する。一方の構成では、主語が述語及び目的語より前にある。他方の構成では、述語が主語及び目的語より前にある。
データアイテムは、データアイテム内で最初に現れるRDFトリプル要素の種類に従って、及び所定のメトリックによってデータアイテム同士を比較することにより確立されたデータアイテムセットの中のデータアイテムの位置に従って、ネットワークノード10にマッピングされる。例えば、メトリックはアルファベット順であり、RDFトリプル1の主語は「Adam」であり、RDFトリプル2の主語は「Acorn」であり、RDFトリプル3の主語は「Abdul」であり、RDFトリプル4の主語は「Aaron」であっても良い。したがって、最初に主語を有するデータアイテムがb及びdとラベル付けされたネットワークノードに渡って(且つ、b、dの順に)格納され、データアイテムが図1に示したようにネットワークノードにマッピングされることが、マッピング関数により確立されている。データアイテムは、特定のネットワークノード10内に順序付けられて格納されても良く、順序付けられないが例えばクエリに応答して順序が確立できるように格納されても良い。
因みに、マッピングは、ネットワークノード10により、互いに協調した1より多いネットワークノードにより、リモートパーティにより、中央マッピングモジュールにより、又は任意の他の方法で実行されても良い。各ネットワークノード10がマッピングを実行するよう構成されても良い。各RDFトリプル要素を比較するために用いられる順序付けメトリックは、互いに同一であっても良く、異なるメトリックが異なる要素のために用いられても良い。図1の実施形態では、述語を比較するために用いられる順序付けメトリックは長さであっても良い。よって、マッピング関数が、順序付けられるときデータアイテムの1番目のサブセットをcとラベル付けされたネットワークノードに、2番目のサブセットをaとラベル付けされたネットワークノードに置き、P3は最も長い述語を有し、次がP1、次がP4、最後にP2が続く。
図1に示した実施形態では、b及びdとラベル付けされた各ネットワークノードには偶数のデータアイテムがある。好適な実施形態では、各ネットワークノード10は、データアイテムの等しい分担又はほぼ等しい分担を格納する。しかしながら、本発明の実施形態は、これに関して限定されない。マッピングメカニズム(又はマッピング関数)は、ネットワークノードに渡るデータアイテムの一様でない分配を生じても良い。
アプリケーションがデータベースからのグラフデータにアクセスしたい場合、アプリケーションは、データベースへのクエリの形式をフォーマットするAPIラッパに従ってクエリを作成しても良い。例えば、アプリケーションは、データベースに問い合わせて、アルファベット順に「Acorn」から「Aaron」の間の主語を有する範囲のデータアイテムを検索しても良い。
アプリケーションは、ネットワークノード10のうちの1つに要求を送信する。要求を受信したネットワークノードは、マッピング関数を用いて、どのネットワークノードにおいて主語「Acorn」を有する最高順位のデータアイテムが見付かるか、どのネットワークノードにおいて主語「Aaron」を有する最低順位のデータアイテムが見付かるか、を決定する。上述の範囲のうちの2つの極限の位置に基づき、データアイテムの範囲全体の位置が決定できる。したがって、要求を受信したネットワークノードは、bとラベル付けされたネットワークノードへ、主語「Acorn」を有するデータアイテム及びより低い順位の任意のデータアイテムに対する下位範囲要求をブロードキャストする。本例では、図1で<S2,P2,O2>と示したデータアイテムのみが、返されるだろう。また、主語「Aaron」を有するデータアイテム及びより高い順位の任意のデータアイテムに対するサブ範囲要求が、dとラベル付けされたネットワークノードへ発行される。本例では、<S3,P3,O3>及び<S4,P4,O4>と示したデータアイテムが、返されるだろう。要求を受信したネットワークノードは、アプリケーションに対してデータアイテム<S2,P2,O2>、<S3,P3,O3>及び<S4,P4,O4>で応答するよう構成される。
上述のクエリのコンピュータ的な効率は、従来のグラフデータ記憶技術により達成されるものよりも良好である。さらに、効率の節約は、より大きな且つより広範な分散データ環境においてより範囲を大きくする。
記憶システム、つまり、本発明の実施形態で用いられる、データベースが格納される記憶ユニット101の相互接続されたネットワークは、ピアツーピア(P2P)インタフェースを介して通信するプロセスのセットを有する。用語「プロセス」は、コンピュータ上で動くプログラムを表し、したがって、1又は複数のプログラム又はプロセスを動作させることによりネットワークノード10がその機能を実現するよう構成されるという意味でネットワークノード10と等価である。プロセスは、それ自体のメモリアドレス空間を有し、「ソケット」を通じて他のプロセスと通信するよう構成される。
トリプルは、グラフ中の情報を表す単純なデータユニットである。実装に依存して、トリプルは小さいサイズであっても良い。トリプルは、例えばウェブソースに関する情報を表しても良い。DBPediaは、現実世界のエンティティに関する情報を表すオンラインデータ記憶である。以下のRDFトリプルは、本発明の実施形態においてトリプルがデータアイテムに格納され得る形式の例である。以下のRDFトリプルi)−iv)は、http://dbpedia.org/resource/Aristotleにウェブリソースとして格納されたAristotle(現実世界のエンティティ)に関する情報を表す。
Figure 0006123339
各トリプルは、Aristotleに関する特定の情報を表す。例えば、i)は、URI http://dbpedia.org/resource/Aristotle(主語)により表されるリソースが別のリソースへのリンク、つまりhttp://dbpedia.org/ontology/birthPlaceに定められた関係種類である出生地を定めているリンク(述語)を有し、「出生地(birthplace)」関係により主語にリンク付けられた目的語はURI http://dbpedia.org/resource/Stageiraにより表されるリソースであるという記述を表す。言い換えると、トリプルi)は、Aristotleが彼の出生地としてStageiraにリンク付けられるという情報を表す。同様に、トリプルii)は、ウェブリソース…Aristotle(主語)が解説(述語)として…“Greek Philosopher”(目的語)にリンク付けられるという情報を表す。同様に、トリプルii)は、ウェブリソース…Aristotle(主語)がPerson(目的語)タイプのリソース(述語)であるという情報を表す。トリプルiv)は、URI…Aristotleに見付かったウェブリソース(主語)が関係「名前(name)」(述語)により文字列の目的語「Aristotle」(目的語)にリンク付けられるという情報を表す。
本発明の実施形態は、各トリプルを少なくとも2つの構成で格納し、各構成は他者に先行する異なるトリプル要素を有する。したがって、データベースは、主語、述語及び目的語のうちの少なくとも2つに基づきクエリにより効率的方法で問い合わせることができる。検索が実施されるメカニズムは、トリプルを格納するデータアイテムのセットに対して範囲クエリを実行することによる。トリプルは<S,P,O>の汎用形式なので、検索は、トリプルの1つ(又は複数)の要素を固定することにより行うことができる。しかしながら、これは、トリプルがトリプルの1より多い要素により順序付けられる場合、更に効率的になる。例えば、クライアントアプリケーションが次のURLで特定されるリソースに関する全ての情報を知りたい場合、
http://dbpedia.org/resource/Aristotle
本実施形態のネットワークノード10により受信される範囲クエリは、この主語を1番目の要素として有する全てのデータアイテムを検索するためのクエリである。より一般的には、クエリを実行するために、range_query()プロシジャは、辞書順に比較可能な2つのキー、つまり下限と上限を受信する。この特定の例のクエリでは、<S,P,O>エンコーディングが効率的である。プロシジャは、下端のキーと上端のキーとの間の全てのキーを検索する。しかしながら、クエリは、自身にリンク付けられた次のURLで特定されるリソースを有するデ―タベース内の全てのリソースのリストを検索しても良い。
http://dbpedia.org/resource/Stageira
したがって、特定されるURLは目的語として問い合わせられ、同じ目的語を有するデータアイテムは<S,P,O>エンコーディングで連続的に順序付けられないので、<S,P,O>エンコーディングは効率的ではない。しかしながら、例えば<O,P,S>エンコーディングにより、効率的になり得る。したがって、本発明の実施形態は、コンピュータ的に効率的な方法で実行できるクエリのプールを広げる。
トリプルは、順序がデータアイテム間に定められ、該順序が2つの端点の間のデータの線形範囲を定めるために用いられるように、データアイテムとして(又はデータアイテムにエンコードされて)格納される。線形範囲はセグメント又はサブセットに分けられ、各々の又は1つより多いサーバ又はネットワークノードがデータのサブセットの記憶を担う。データアイテムのネットワークノードへのマッピングは、マッピングメカニズム、例えばTrie(順序木)により論理的に整理される。マッピングメカニズムは、どのサーバ又はネットワークノードが範囲クエリにより指定された範囲に含まれるデータアイテムを格納しているかを効率的に検索するのを助ける。範囲クエリのために要求されたサブセットのリストを確立した後に、これらのサブセットを格納しているサーバのアドレスは、データアイテムをネットワークノードにマッピングするマッピング関数を用いて見付けられる。
データアイテム間の順序は、辞書順にキーを比較することにより確立されても良い。例えば、文字列「Ka」は文字列「Kc」より低い。クエリの主語<S,*,*>、クエリの述語<*,P,*>又はクエリの目的語<*,*,O>を固定することによりクエリから結果を効率的に検索できるためには、トリプルの3つの部分の全てがデータアイテム内の文字列の先行する要素として格納されなければならない。これを可能にするために、トリプルは、次のキーを用いてKVSに3回挿入されなければならない。
<S,P,O>、<P,O,S>、<O,S,P>
このようにトリプルを3回格納することは、クエリの種類に拘わらず、データベースが同じ効率で任意のクエリを実行できるようにし、トリプルが必然的に複製され障害の場合に情報を再構成できるという更なる利点を有する。勿論、これらの利点は、格納されている各トリプルの3つのバージョンに依存しない。各トリプルの2つのバージョンを格納することも幾つかの利点をもたらし得る。KVSの実施形態では、トリプルの各バージョンは、同じ値にリンク付けされても良い。
図2は、本発明の実施形態の例示的なシステムアーキテクチャ、及びクライアントアプリケーションを特徴とする環境での該実施形態の実装を示す。図2は、1又は複数のコンピュータで動作するプログラムにより実現され得る、プロセスの階層型システムアーキテクチャを示す。例えば、クライアントアプリケーション20はラッパAPI12、RDFプロセッサ14及び分散型キー値ストア16と同じコンピュータで動作しないことも可能である。しかしながら、勿論、それらは1又は複数のマシンに渡って分散され、プロセスはシステムアーキテクチャ内の少なくとも隣接するプロセスへのデータコネクションを有する。
第1の層はクライアントアプリケーションプロセス20である。クライアントアプリケーションプロセス20は、本発明を実現するデータベースへのアクセスを望み得るマシンの例である。クライアントアプリケーション20は、クラウド環境内に、クライアント−サーバアーキテクチャのサーバ内に設けられても良く、エンドユーザのマシンで動作されても良い。クライアントアプリケーション20は、データベースにアクセスするための、例えば該データベースに格納されたデータを問い合わせるための特定の要件を有する。
ラッパAPI12及びRDFプロセッサ14は、別個のプロセスとして設けられても良く、又は単一のプロセスで一緒に動作しても良い。ラッパAPI12は、例えばシステムアーキテクチャ内の他のAPIにより提供される基本機能の異なる特徴を結合する機能を提供することにより、クライアントアプリケーション20がRDFプロセッサ14及び分散型キー値ストア16にアクセスするインタフェースを簡略化する。例えば、RESTはRDFプロセッサ14のAPIラッパ12として用いることができる。したがって、図2のシステムアーキテクチャにおいて、クライアントアプリケーション20は、明確なラッパAPI12を通じてRDFプロセッサ14と相互作用する。ラッパAPI12は、RDFプロセッサ14に含まれるSPARQLエンジンへクエリを送信するためのインタフェースを有しても良い。
RDFプロセッサ14は、SPARQLエンジンを有しても良い。SPARQLエンジンは、ラッパAPI12を介してクライアントアプリケーション20から受信した「複雑なクエリ」を幾つかの単純な範囲クエリに分割するよう構成される。RDFトリプルデータは、図1に関連して上述したように、順序付けられたデータアイテムのセットとしてネットワークノード10に渡って格納される。図2のシステムアーキテクチャでは、「キー値ストア」(Key-Value store:KVS)は、このような順序付けられたデータセットの例として含まれ、図1の実施形態のデータアイテムはKVSにキーとして格納されている。KVSを含むデータベースは、RDFトリプルデータを格納し、そのキーに対して範囲クエリを実行するよう構成される。
図3は、本発明の実施形態を実装する別のシステムアーキテクチャである。図3では、プロセスの各列は、特定のマシン又はネットワークノード10で動作しているプロセスを表し得る。或いは、例えばアプリケーション20及び/又はデータフィード22は、データベースにアクセスする目的でラッパAPI12、RDFプロセッサ14及び分散型KVS16プロセスを動作させるネットワークノード10へのデータコネクションを割り当てられているリモートプロセスであっても良い。プロセスを動作させている特定のマシンは、図1に示したような実施形態におけるネットワークノードであっても良い。代替として、ネットワークノード10は、実装の詳細に依存して、図3の分散型KVSプロセス16と等価であっても良い。
個々のプロセスは図2に関連して議論したプロセスの例であるので、ここでは各プロセスの詳細な説明を省略する。データフィード22は、特定の種類のアプリケーションの例、この例では例えば「put」コマンドを介してデータベースにデータを書き込むアプリケーションである。矢印は、プロセス間の相互作用のためのデータコネクションを表す。分散型KVSプロセスが別の分散型KVSプロセスと相互作用し、特定のノードで受信した範囲クエリがマッピング関数に従ってサブ範囲クエリに分割され、サブ範囲クエリが他の分散型KVSプロセスへ送信され得るようにしていることが分かる。
図3のアーキテクチャでは、各RDFプロセッサ14は、分散型順序付きKVS16のネットワークノード(図1のネットワークノード10の例である)と通信するよう構成される。
本願明細書に記載する、データアイテム又はキーとしてトリプルを格納するメカニズムは、KVSの実施形態において、全てのデータがキー/値記憶のキーに格納されることを保証する。したがって、このような実施形態では、値は、更に豊富なグラフデータベースを実現する情報を格納するために利用可能である。値に格納できるデータの幾つかの例を、幾つかの実装例と共に以下に説明する。
キー/値記憶は、キーを値にマッピングし、関連するキー、又は詳細には該キーにエンコードされた若しくは格納されたトリプルに関する情報の(値フィールドへの)記憶を可能にする。全てのグラフ情報をキー内に保持する本発明の実施形態は、グラフデータの迅速な範囲検索及び追加意味データを値フィールドに格納する可能性を実現し、したがってデータベースの機能を向上する。例えば、実施形態は、グラフデータを格納するのみならず、KVSの値を情報及びコードコンテナとして用いることによりイベントをトリガしメタデータを保持する豊富なグラフデータベースを提供し得る。このようなコンテナは、関連付けられたトリプルに関する(例えば)メタデータ情報及び/又はトリプル内の何かが変更されるときにタスクを実行するトリガのリスト(つまり、ソフトウェアコード、又はサーバ内のどこかに格納されたソフトウェアコードへの参照)を格納するよう構成されるリッチオブジェクトとして実施されても良い。この文脈においてリッチオブジェクトは、異なる方法で表された幾つかのデータアイテムを有し得るオブジェクト、及びコードが格納されているマシンで動作できる該コードを含む。
例示的な実施形態では、(RDFトリプルである)KVSの各キーは、オブジェクトタイプContainer(コンテナ)にマッピングされる。他のデータの中でも、コンテナオブジェクトは、以下の情報を格納する。
・Rawデータこれは、KVSにおいて不可解オブジェクトとして見なされ取り扱われるアプリケーション依存データを保持する。この文脈における不可解オブジェクトは、定義されていない不明なクラスのオブジェクトを含む。プログラマは、このようなオブジェクトの種類又はクラスを知らずに、該オブジェクトを処理するコードを生成できる。この目的のため、コンテナオブジェクトは、アプリケーション依存情報を設定及びゲットするAPIを提供する。
・トリガ(Trigger)アプリケーションは、特定のイベントに関心のあるアプリケーションを非同期に、つまりRDFトリプルが変更されるとき及び/又は削除されるときに通知するために用いられるコールバック関数を登録できる。この目的のため、コンテナオブジェクトは、各イベント(「挿入」、「読み出し」、「更新」及び/又は「削除」)のコールバック関数のリストと、アプリケーションにこれらのコールバック関数を登録及び登録解除させるAPIとを保持するよう構成されても良い。アプリケーションは、自由に、任意の又は全てのイベントに対してコールバック関数を登録又は登録解除し、イベント毎に異なる関数を選択する(このような関数及びイベントはAPIで指定されても良い)。例えば、「挿入」イベントに対する関数は、挿入の時に登録される。
本発明の実施形態の第1の実装例を説明する。第1の実装例では、グラフデータ、つまりRDFトリプル自体は、キー値ペアのキーとして格納され、RDFトリプルに関連するメタデータにより補完される。メタデータは、問題になっているRDFトリプルを表すキーに対応する値記憶の値フィールドに格納される。従来のシステムでは、メタデータは、RDFトリプルをクワッドに拡張することにより格納されていた。これは、拡張性がないので望ましくない。
問題となっている第1の実装例におけるデータベースは、インポートされたRDFトリプルを格納するデータベースである。格納されたデータにアクセスするアプリケーションは、RDFトリプルがインポートされたソースに関する情報、例えばソースの識別表示を要求しても良い。実際に、本発明の実施形態は、デ―タベースがレポジトリ間で交換される実装及び複雑な知識ベースが発行される実装に順応できる。第1の実装例では、各トリプルの各部分は相対的URIを用いて表され、元のデータソースも各RDFトリプルの間で格納される必要のあるコンテキスト情報として識別される。
キー値ペアの値を形成するコンテナは、追加情報(元のデータソースの識別表示)が格納されるRawデータフィールドを有する。データベースに挿入れるトリプル毎に、元のデータソースのURLがコンテナに挿入され、KVS内の値として設定される。
その後、本実施形態のデータベース内に格納されたデータにアクセスするアプリケーションがトリプルに関するコンテキスト情報を要求するとき、アプリケーションは単に、問題のトリプルに対応する値フィールド内のコンテナに対するgetコマンドを発行し、Rawデータフィールドを読み出すことができる。
本発明の実施形態の第2の実装例を次に説明する。第2の実装例では、キー値ペアの値は、コンテナオブジェクト(特定のアドレスに一緒に格納された又はコンテナに関連付けられた特定のアドレスを介してアクセス可能なデータの集合体)であり、該コンテナは、キー値ペアのキーに符号化されたトリプルに関連付けられたコールバック関数を格納する。この第2の実装例では、コンテナの内容は、キャッシュ管理の目的で用いられる。
分散型システムでは、キャッシングは、システム性能を向上させる確立された技術である。リモートデータをローカルキャッシュに格納することは、分散型システムの構成要素間で必要な通信量を低減するのに役立つ。本発明を実現するグラフデータベースでは、ピアツーピアネットワーク内の各プロセスは、グラフの一部のみを保持する。したがって、各プロセスは、ピアツーピアネットワーク内のどこかに格納されたリモートトリプルのローカルキャッシュを保持しても良い。例えば、プロセスは、リモートトリプルの正式バージョンに所定頻度で又はそれより多くアクセスしているとき、リモートトリプルをキャッシュしても良い。したがって、トリプルのコピーがローカルキャッシュに格納される。或いは、所定頻度で又はそれより多くアクセスされている特定のトリプルが存在しても良い。したがって、各プロセスは、該トリプルのコピーをローカルキャッシュに保持するよう構成される。リモートトリプルのローカルコピーをキャッシュすることは、リモートトリプルの正式バージョンの内容にアクセスする(読み取る)ためにリモートプロセスと頻繁に通信する必要を取り除く。
このようなキャッシュ管理システムを有する実装は、(ローカルキャッシュ内にコピーされた)トリプルの正式バージョンが変更又は削除されるとき、そのローカルキャッシュを無効にする又は更新するメカニズムを設けられることが望ましい。コールバック関数は、キャッシュされたトリプルの正式バージョンのコンテナに格納される。例えば、リモートトリプルにアクセスする1つのプロセスを生じるクエリの生成、したがってトリプルのキャッシュされたコピーの生成を担うクライアントアプリケーションは、リモートトリプルの正式バージョンと共にコールバック関数を登録しても良い。このコールバック関数により、キャッシュされたコピーを格納するプロセスは、トリプルの正式バージョンが削除又は変更されるとき、非同期に通知される。コールバック関数は、特定のイベントが生じるときに呼び出されるよう登録される関数である。この関数は、特定のイベントに応答して呼び出されるとき、通知又はデータの変更のような特定の機能を実行するよう構成される。コールバック関数の正確な形式は、実装に固有であるが、呼び出されると実行されるコードのブロックであり得る。
ローカルキャッシュを更新し又は無効にする例示的なメカニズムは、2つの異なるコールバック関数(又はコールバック方法)、つまりi)update()関数、ii)delete()関数の提供である。関数i)は、update()関数がコンテナ内の「変更」イベントに登録されているとき、ローカルキャッシュをトリプルの正式バージョンの新しい値で更新するよう動作する。どちらの関数の引数も、例えばトリプルのキャッシュされたコピーであっても良い。関数ii)は、トリプルの正式バージョンが削除されるとき、該トリプルのキャッシュされたコピーを削除するよう動作する。delete()関数は、コンテナ内の「削除」イベントに登録されても良い。
本発明の一実施形態の第3の実装例を次に説明する。第3の実装例では、本発明を実現するグラフデータベースは、1より多い関係型データベースの連合のために用いられる。
有利なことに、(グラフデータベース内の)グラフのようなデータを表すことは、データベースのスキーマをより簡単に変更できるようにする。この文脈におけるデータベースのスキーマは、形式言語で記述されるデータベースの構造を含む。関係型データベースのスキーマを変更することは、プログラミングの変更を含む多くの管理業務を必要とする。例えば、データ及び該データにアクセスするアプリケーションのフォーマットの両方を変更する必要がある。これに対し、本発明の実施形態では、グラフデータベースのデータベーススキーマは、単純にデータ自体である。したがって、スキーマを変更することは、データを変更するように簡単である。
このデータベース連合の実装例では、異なるデータ及び異なるスキーマを有するデータベースは、本発明を実現するグラフデータベースを用いて相互に関連付けられる。
図4は、独立関係型データベース30のセット、及びアプリケーション20によりアクセス可能なグラフデータベース40内のデータベース30からのデータの表現を示す。各グラフノード41は、データベース30からのデータアイテムを表す。図4の破線は、グラフノード41とグラフノード41が表すデータアイテムを格納するデータベース30との間のリンクを示す。幾つかのデータアイテムは、データベース間で共有される。例えば、人物のような特定のエンティティは、2つの独立したデータベース内に表されても良い。(例えば、「owl:sameAs」RDF注釈を用いて)エンティティのアイデンティティを表す情報をグラフに追加することにより、望ましくは別個のデータベース内の独立したデータアイテムにより表される該エンティティは、単一のグラフノードとして格納できる。このようなグラフノードは、「共有された」データアイテムを表す。実線で示したグラフの端は、データアイテム間の関係を表す。
第2の実装例と同様に、この第3の実装例では、キー値ペアの値はコンテナオブジェクトである。しかしながら、本例のコンテナオブジェクトは、それぞれトリプルに関する1又は複数の以下の情報を格納する。
・トリプルにより表される情報を含む関係型データベースのリスト。
・上記データベースの各々について、該トリプルに含まれる情報を更新するために用いられる該データベース固有のコネクタ。
・他の関連するグラフアイテムを更新するためのトリガ。
コネクタは、例えば外部データソースと通信可能なソフトウェアライブラリとして実装されても良い。一例として、JDBCドライバは、関係型データベースへのコネクタである。この文脈において、コネクタは、外部ソースで用いられるフォーマットからトリプルへ、及びその逆に、データを変換するよう構成されても良い。
Container、関連付けられたソフトウェアライブラリに格納された情報を用いて、データベース40は、関係型データベース30のデータを2つの方法で更新するよう動作可能である。
第一に、グラフ40を直接に問い合わせ更新するよう構成され、及び関係型データベース30に反映されるべき更新のためのアプリケーションが生成され得る。これを図5に示す。図5は、図4のシステムに点線を追加したものである。点線は更新を表す。したがって、クライアントアプリケーション20は、グラフデータ40を直接更新するよう構成され、グラフ40内の特定のノード41を変更する更新を実行する。更新されたノードにより表される情報は、2つのデータベースに格納される。したがって、更新されたノード41を関係型データベース30にリンク付けする点線は、これらのデータベース30の更新を示す。詳細には、更新されたノード41に関する情報を表す1又は複数のトリプルが更新される。KVS内のこれらのトリプルにリンク付けされた1又は複数のコンテナは、該トリプル内の変化を反映するために更新される必要のあるデータベースのリストと、該更新を実行するためのコネクタを含む。
第2の方法では、関係型データベースのデータは、グラフデータ及び図6に示したコンテナ内に格納された情報を用いて更新できる。図6では、グラフデータベース40は、異なる関係型データベース30の間の中間物として実装される。例えば、KVS記憶内のトリプルにリンク付けされたコンテナ内のデータベース30のリストを格納することは、該トリプルにより記述されるリソースが1より多い関係型データベースに格納され、したがってリストが「X owl:sameAs Y」情報を反映する情報を含むことを間接的に示す。したがって、データベースアプリケーション24aが特定のデータベース30a内のデータアイテムを更新する場合(点線で示した更新、本例では更新は注釈「発行された更新」と共に示される)、該更新は、グラフに反映され、コンテナ内に格納されたコネクタ(コールバック関数)を用いてデータアイテムが格納されている他の関係型データベース30b内の同じデータに同じ更新を実行する。したがって、独立関係型データベース30bにアクセスする独立データベースアプリケーション24bは、データベースアプリケーション24aにより発行されるデータの更新を反映する。
コネクタは、コールバック関数の一例である。コールバック関数及びそれらが提供され得る例示的なメカニズムを以下に更に詳細に説明する。上述の第2及び第3の実施例では、及び本発明の実施形態において一般的に、ソフトウェアパッケージは、データ記憶システム内で生じる特定の動作又はイベントを「傾聴」するためにコールバック関数を登録できる。以下は、このようなコールバック関数が本発明の実施形態においてどのように実現できるかの一例である。例えば、通知及びその詳細を提供するためにコールバック関数を用いることができる動作は、トリプルに行われているリードアクセス、トリプルに行われているライトアクセス、新しいトリプルの生成、及び/又はトリプルの削除を含む。ソフトウェアパッケージは、コールバック関数が登録されているサーバで動作する。トリプルに動作が実行される(リード/ライト/生成/削除)ときは常に、記憶システムは、該トリプルに関連付けられたコンテナについてコールバック関数を調べるよう構成される。発生した特定の動作又はイベントに対して登録されたコールバック関数が存在する場合、関数が実行される。必要な関数及びリソースの詳細な特性は実装に依存し、関数のプログラマにより定められても良い。幾つかの実施形態では、クライアントアプリケーション20にフィードバックを与えるために、RDFプロセッサ14との通信が要求されても良い。このような例では、図3を参照すると、RDFプロセッサ14とKVSサーバ16との間の通信チャネルは、双方向であり得る。RDFプロセッサ14は、フィードバックをAPIラッパ12へ、さらにクライアントアプリケーション20へ転送する。また、外部ソフトウェアへのコネクションが維持され得る。
トリガイベントは、コールバック関数の一例である。コンテナは、関連付けられたトリプルが変更される場合、更新されるべき他のトリプルのリストを格納し得る。更新されたトリプルを格納するKVSサーバ16内に「updateTriple」として格納される方法は、トリプルが更新されることを要求する。KVS記憶16は、どこに他のトリプルが格納されているかを調べ、それらを削除し、該トリプルの新しい更新されたバージョンを挿入する。削除及び再挿入によりトリプルを更新することは、格納されたデータアイテム(トリプル)の再順序付けを実現するので、望ましい。新しいバージョンは、異なるサーバに格納され得る。
上述の態様の何れにおいても、種々の特徴は、ハードウェアで、又は1若しくは複数のプロセッサで動作するソフトウェアモジュールとして実施されても良い。ある態様の特徴は、他の態様の特徴に適用されても良い。
本発明は、上述の任意の方法を実行するコンピュータプログラム又はコンピュータプログラムプロダクト、及び上述の任意の方法を実行するプログラムを格納しているコンピュータ可読媒体も提供する。本発明を実施するコンピュータプログラムは、コンピュータ可読媒体に格納されてもよい。或いは、例えば、インターネット・ウェブサイトから提供されるダウンロード可能なデータ信号のような信号形式又は任意の他の形式であってもよい。
10 ネットワークノード
12 ラッパAPI
14 RDFプロセッサ
16 分散型キー値ストア
20 クライアントアプリケーション
22 データフィード
30 関係型データベース
40 連合グラフデータベース
101 記憶ユニット

Claims (15)

  1. トリプルとしてエンコードされたグラフデータのデータベースであって、前記データベースは、前記グラフデータにアクセスするアプリケーションにより用いられ、各トリプルは、主語、述語及び目的語の3つのトリプル要素を有し、各トリプルは該トリプルのデータに従って順序付けられたデータアイテムのセットの中のデータアイテム内に格納され、分散型ノードネットワークの複数のノードに渡って分散され、
    各トリプルは、
    データアイテム内で主語が述語及び目的語より前にある第1の構成、
    データアイテム内で述語が主語及び目的語より前にある第2の構成、
    データアイテム内で目的語が主語及び述語より前にある第3の構成、
    のうちのそれぞれ異なる構成を有する2以上のデータアイテム内に格納され、
    前記データアイテムの各々がマッピングされるノードは、前記データアイテム内で最初に現れるトリプル要素に依存し、更に前記順序付けられたセット内のデータアイテムの位置に依存し、前記マッピングを用いて、前記アプリケーションは、アクセスするグラフデータに対応するデータアイテムの範囲を検索するためのクエリを作成する、
    データベース。
  2. 各データアイテムは、対応するトリプルの主語、述語及び目的語を有するストリングオブジェクトを含む、請求項1に記載のデータベース。
  3. 前記データアイテムは、前記ストリングオブジェクトのアルファベット順の比較に従って順序付けられる、請求項2に記載のデータベース。
  4. 各前記データアイテムは、キー値体系内のキー値ペアのキーである、請求項1乃至3のいずれか一項に記載のデータベース。
  5. 複数の前記キー値ペアの各々の値は、キーに格納されたトリプルに関連する追加情報を有する、請求項4に記載のデータベース。
  6. 前記追加情報は、アプリケーションのアイデンティティに依存して前記データベースにアクセスする前記アプリケーションに利用可能にされるデータである、請求項5に記載のデータベース。
  7. 前記追加情報は、リード及び/又はライトアクセスが前記キー値ペアに格納されたトリプルに対して行われるとき通知を受信するために登録されるアプリケーションのリストを含む、請求項5又は6に記載のデータベース。
  8. 各キー値ペアの値は、アプリケーションに前記通知を登録及び/又は登録解除させるアプリケーションプログラミングインタフェース(API)を含む、請求項7に記載のデータベース。
  9. 各キー値ペアの値は、前記追加情報へのアクセスを管理するアプリケーションプログラミングインタフェース(API)を含む、請求項5乃至8のいずれか一項に記載のデータベース。
  10. 前記追加情報は、値が格納されているノードにより実行されるためのソフトウェアコードを含む、請求項5乃至9のいずれか一項に記載のデータベース。
  11. 各前記データアイテムは、順序付けたハッシュテーブルを用いてノードにマッピングされる、請求項1乃至10のいずれか一項に記載のデータベース。
  12. 前記順序付けたハッシュテーブルは、コンシステントハッシュ関数を用いる、請求項11に記載のデータベース。
  13. 前記データベースは1又は複数の他のデータベースによりアクセス可能であり、
    前記追加情報は、
    前記キー値ペアに格納されたトリプルにより表される情報を含む1又は複数の他のデータベースの間のデータベースのリスト、
    リストされた各データベースに対して、前記キー値ペアに格納されたトリプルに含まれる情報が、該リストされたデータベースに対して動作するアプリケーションにより更新されるようにするコネクタ、
    を含む、請求項5乃至10のいずれか一項に記載のデータベース。
  14. 分散型ノードネットワークのノードとして動作するよう構成されるコンピューティング装置であって、前記コンピューティング装置は、トリプルとしてエンコードされたグラフデータのデータベースのサブセットを格納し、前記コンピューティング装置は、前記グラフデータにアクセスするアプリケーションにより用いられ、各トリプルは、主語、述語及び目的語の3つのトリプル要素を有し、各トリプルは該トリプルのデータに従って順序付けられたデータアイテムのセットの中のデータアイテム内に格納され、前記分散型ノードネットワークの複数のノードに渡って分散され、
    各トリプルは、
    データアイテム内で主語が述語及び目的語より前にある第1の構成、
    データアイテム内で述語が主語及び目的語より前にある第2の構成、
    データアイテム内で目的語が主語及び述語より前にある第3の構成、
    のうちのそれぞれ異なる構成を有する2以上のデータアイテム内に格納され、
    前記データアイテムの各々がマッピングされるノードは、前記データアイテム内で最初に現れるトリプル要素に依存し、更に前記順序付けられたセット内のデータアイテムの位置に依存し、前記マッピングを用いて、前記アプリケーションは、アクセスするグラフデータに対応するデータアイテムの範囲を検索するためのクエリを作成する、
    コンピューティング装置。
  15. コンピューティング装置により実行されると、前記コンピューティング装置に請求項14に記載のコンピューティング装置として動作させる、コンピュータプログラム。
JP2013029535A 2012-02-23 2013-02-18 エンコードされたトリプルを格納するデータベース、装置及び方法 Expired - Fee Related JP6123339B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12156707.7 2012-02-23
EP20120156707 EP2631817A1 (en) 2012-02-23 2012-02-23 Database, apparatus, and method for storing encoded triples

Publications (2)

Publication Number Publication Date
JP2013175181A JP2013175181A (ja) 2013-09-05
JP6123339B2 true JP6123339B2 (ja) 2017-05-10

Family

ID=46210095

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013029535A Expired - Fee Related JP6123339B2 (ja) 2012-02-23 2013-02-18 エンコードされたトリプルを格納するデータベース、装置及び方法
JP2013109192A Active JP6119421B2 (ja) 2012-02-23 2013-05-23 エンコードされたトリプルを格納するデータベース、制御部、方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013109192A Active JP6119421B2 (ja) 2012-02-23 2013-05-23 エンコードされたトリプルを格納するデータベース、制御部、方法及びシステム

Country Status (4)

Country Link
US (2) US9442994B2 (ja)
EP (2) EP2631817A1 (ja)
JP (2) JP6123339B2 (ja)
CN (1) CN103425734B (ja)

Families Citing this family (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9396283B2 (en) 2010-10-22 2016-07-19 Daniel Paul Miranker System for accessing a relational database using semantic queries
US8799269B2 (en) 2012-01-03 2014-08-05 International Business Machines Corporation Optimizing map/reduce searches by using synthetic events
EP2631817A1 (en) * 2012-02-23 2013-08-28 Fujitsu Limited Database, apparatus, and method for storing encoded triples
JP5914186B2 (ja) * 2012-06-06 2016-05-11 キヤノン株式会社 情報処理装置および情報処理方法
US8898165B2 (en) 2012-07-02 2014-11-25 International Business Machines Corporation Identification of null sets in a context-based electronic document search
US8903813B2 (en) 2012-07-02 2014-12-02 International Business Machines Corporation Context-based electronic document search using a synthetic event
US9460200B2 (en) 2012-07-02 2016-10-04 International Business Machines Corporation Activity recommendation based on a context-based electronic files search
US10552406B2 (en) * 2012-07-17 2020-02-04 International Business Machines Corporation Maintaining object and query result consistency in a triplestore database
US9262499B2 (en) 2012-08-08 2016-02-16 International Business Machines Corporation Context-based graphical database
US8959119B2 (en) * 2012-08-27 2015-02-17 International Business Machines Corporation Context-based graph-relational intersect derived database
US10169446B1 (en) * 2012-09-10 2019-01-01 Amazon Technologies, Inc. Relational modeler and renderer for non-relational data
US9619580B2 (en) 2012-09-11 2017-04-11 International Business Machines Corporation Generation of synthetic context objects
US9251237B2 (en) 2012-09-11 2016-02-02 International Business Machines Corporation User-specific synthetic context object matching
US8620958B1 (en) 2012-09-11 2013-12-31 International Business Machines Corporation Dimensionally constrained synthetic context objects database
US9223846B2 (en) 2012-09-18 2015-12-29 International Business Machines Corporation Context-based navigation through a database
US8782777B2 (en) 2012-09-27 2014-07-15 International Business Machines Corporation Use of synthetic context-based objects to secure data stores
US9741138B2 (en) 2012-10-10 2017-08-22 International Business Machines Corporation Node cluster relationships in a graph database
US8931109B2 (en) 2012-11-19 2015-01-06 International Business Machines Corporation Context-based security screening for accessing data
US9229932B2 (en) 2013-01-02 2016-01-05 International Business Machines Corporation Conformed dimensional data gravity wells
US8914413B2 (en) 2013-01-02 2014-12-16 International Business Machines Corporation Context-based data gravity wells
US8983981B2 (en) 2013-01-02 2015-03-17 International Business Machines Corporation Conformed dimensional and context-based data gravity wells
US9053102B2 (en) 2013-01-31 2015-06-09 International Business Machines Corporation Generation of synthetic context frameworks for dimensionally constrained hierarchical synthetic context-based objects
US8856946B2 (en) 2013-01-31 2014-10-07 International Business Machines Corporation Security filter for context-based data gravity wells
US9069752B2 (en) 2013-01-31 2015-06-30 International Business Machines Corporation Measuring and displaying facets in context-based conformed dimensional data gravity wells
US9292506B2 (en) 2013-02-28 2016-03-22 International Business Machines Corporation Dynamic generation of demonstrative aids for a meeting
US10152526B2 (en) 2013-04-11 2018-12-11 International Business Machines Corporation Generation of synthetic context objects using bounded context objects
US20140310302A1 (en) * 2013-04-12 2014-10-16 Oracle International Corporation Storing and querying graph data in a key-value store
EP2804114A1 (en) * 2013-05-16 2014-11-19 Fujitsu Limited Database controller, method, and program for managing a distributed data store
US9195608B2 (en) 2013-05-17 2015-11-24 International Business Machines Corporation Stored data analysis
US9348794B2 (en) 2013-05-17 2016-05-24 International Business Machines Corporation Population of context-based data gravity wells
KR101416261B1 (ko) * 2013-05-22 2014-07-09 연세대학교 산학협력단 플래시 ssd의 역 인덱스 업데이트 방법
EP2808804A1 (en) * 2013-05-29 2014-12-03 Fujitsu Ltd. Database controller, method, and program for handling range queries
US9218438B2 (en) * 2013-08-28 2015-12-22 Bank Of America Corporation Computing architecture for storing a graph database based on temporal aspects of its edges
WO2015085485A1 (zh) * 2013-12-10 2015-06-18 华为终端有限公司 一种同步方法及终端、服务器
US10523619B2 (en) * 2013-12-20 2019-12-31 Rovio Entertainment Ltd. Stateless message routing
CN104735107B (zh) * 2013-12-20 2018-12-18 中国移动通信集团公司 分布式存储系统中数据副本恢复方法及装置
US10394818B2 (en) 2014-09-26 2019-08-27 Oracle International Corporation System and method for dynamic database split generation in a massively parallel or distributed database environment
US10180973B2 (en) 2014-09-26 2019-01-15 Oracle International Corporation System and method for efficient connection management in a massively parallel or distributed database environment
US10380114B2 (en) 2014-09-26 2019-08-13 Oracle International Corporation System and method for generating rowid range-based splits in a massively parallel or distributed database environment
US10528596B2 (en) 2014-09-26 2020-01-07 Oracle International Corporation System and method for consistent reads between tasks in a massively parallel or distributed database environment
US10078684B2 (en) 2014-09-26 2018-09-18 Oracle International Corporation System and method for query processing with table-level predicate pushdown in a massively parallel or distributed database environment
US10387421B2 (en) 2014-09-26 2019-08-20 Oracle International Corporation System and method for generating size-based splits in a massively parallel or distributed database environment
US10089357B2 (en) 2014-09-26 2018-10-02 Oracle International Corporation System and method for generating partition-based splits in a massively parallel or distributed database environment
US10089377B2 (en) * 2014-09-26 2018-10-02 Oracle International Corporation System and method for data transfer from JDBC to a data warehouse layer in a massively parallel or distributed database environment
US20160224645A1 (en) * 2015-02-03 2016-08-04 Siemens Aktiengesellschaft System and method for ontology-based data integration
KR101685439B1 (ko) * 2015-03-30 2016-12-13 김동우 데이터베이스 분산처리 자동 가공 시스템
CN106326295B (zh) * 2015-07-01 2021-12-14 中兴通讯股份有限公司 语义数据的存储方法及装置
GB2541231A (en) * 2015-08-13 2017-02-15 Fujitsu Ltd Hybrid data storage system and method and program for storing hybrid data
WO2017075362A1 (en) * 2015-10-30 2017-05-04 Convida Wireless, Llc Restful operations for semantic iot
CN105447156A (zh) * 2015-11-30 2016-03-30 北京航空航天大学 资源描述框架分布式引擎及增量式更新方法
US10341181B2 (en) * 2016-03-07 2019-07-02 International Business Machines Corporation Method and apparatus to allow dynamic changes of a replica network configuration in distributed systems
US11256746B2 (en) 2016-04-25 2022-02-22 Oracle International Corporation Hash-based efficient secondary indexing for graph data stored in non-relational data stores
US11675808B2 (en) 2016-06-19 2023-06-13 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
US10853376B2 (en) 2016-06-19 2020-12-01 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US10452975B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11016931B2 (en) 2016-06-19 2021-05-25 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US10438013B2 (en) 2016-06-19 2019-10-08 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US11086896B2 (en) 2016-06-19 2021-08-10 Data.World, Inc. Dynamic composite data dictionary to facilitate data operations via computerized tools configured to access collaborative datasets in a networked computing platform
US10747774B2 (en) 2016-06-19 2020-08-18 Data.World, Inc. Interactive interfaces to present data arrangement overviews and summarized dataset attributes for collaborative datasets
US11042560B2 (en) 2016-06-19 2021-06-22 data. world, Inc. Extended computerized query language syntax for analyzing multiple tabular data arrangements in data-driven collaborative projects
US11947554B2 (en) 2016-06-19 2024-04-02 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
EP3472718A4 (en) * 2016-06-19 2020-04-01 Data.world, Inc. CONSOLIDATION OF COLLABORATIVE DATA SETS VIA DISTRIBUTED COMPUTER NETWORKS
US10346429B2 (en) 2016-06-19 2019-07-09 Data.World, Inc. Management of collaborative datasets via distributed computer networks
US10645548B2 (en) 2016-06-19 2020-05-05 Data.World, Inc. Computerized tool implementation of layered data files to discover, form, or analyze dataset interrelations of networked collaborative datasets
US11023104B2 (en) 2016-06-19 2021-06-01 data.world,Inc. Interactive interfaces as computerized tools to present summarization data of dataset attributes for collaborative datasets
US11036716B2 (en) 2016-06-19 2021-06-15 Data World, Inc. Layered data generation and data remediation to facilitate formation of interrelated data in a system of networked collaborative datasets
US11334625B2 (en) 2016-06-19 2022-05-17 Data.World, Inc. Loading collaborative datasets into data stores for queries via distributed computer networks
US10824637B2 (en) 2017-03-09 2020-11-03 Data.World, Inc. Matching subsets of tabular data arrangements to subsets of graphical data arrangements at ingestion into data driven collaborative datasets
US11042537B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US11468049B2 (en) 2016-06-19 2022-10-11 Data.World, Inc. Data ingestion to generate layered dataset interrelations to form a system of networked collaborative datasets
US11042548B2 (en) 2016-06-19 2021-06-22 Data World, Inc. Aggregation of ancillary data associated with source data in a system of networked collaborative datasets
US11042556B2 (en) 2016-06-19 2021-06-22 Data.World, Inc. Localized link formation to perform implicitly federated queries using extended computerized query language syntax
US10353911B2 (en) 2016-06-19 2019-07-16 Data.World, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
US11941140B2 (en) 2016-06-19 2024-03-26 Data.World, Inc. Platform management of integrated access of public and privately-accessible datasets utilizing federated query generation and query schema rewriting optimization
US10324925B2 (en) 2016-06-19 2019-06-18 Data.World, Inc. Query generation for collaborative datasets
US10984008B2 (en) 2016-06-19 2021-04-20 Data.World, Inc. Collaborative dataset consolidation via distributed computer networks
US11068847B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to facilitate data project development via data access layering logic in a networked computing platform including collaborative datasets
US11755602B2 (en) 2016-06-19 2023-09-12 Data.World, Inc. Correlating parallelized data from disparate data sources to aggregate graph data portions to predictively identify entity data
US11036697B2 (en) 2016-06-19 2021-06-15 Data.World, Inc. Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
US11068475B2 (en) 2016-06-19 2021-07-20 Data.World, Inc. Computerized tools to develop and manage data-driven projects collaboratively via a networked computing platform and collaborative datasets
US10452677B2 (en) 2016-06-19 2019-10-22 Data.World, Inc. Dataset analysis and dataset attribute inferencing to form collaborative datasets
CN106156319A (zh) * 2016-07-05 2016-11-23 北京航空航天大学 可伸缩的分布式的资源描述框架数据存储方法及装置
US20180032552A1 (en) * 2016-08-01 2018-02-01 Georgia Tech Research Corporation Configurable Hyper-Referenced Associative Object Schema
US10789295B2 (en) 2016-09-28 2020-09-29 Microsoft Technology Licensing, Llc Pattern-based searching of log-based representations of graph databases
US20180089252A1 (en) * 2016-09-28 2018-03-29 Linkedin Corporation Verifying correctness in graph databases
CN109791561A (zh) * 2016-09-29 2019-05-21 康维达无线有限责任公司 分布式语义描述符上的语义查询
US10437810B2 (en) 2016-09-30 2019-10-08 Microsoft Technology Licensing, Llc Systems and methods for maintaining cardinality schema to prevent corruption in databases indifferent to cardinality
US10885114B2 (en) 2016-11-04 2021-01-05 Microsoft Technology Licensing, Llc Dynamic entity model generation from graph data
US10481960B2 (en) * 2016-11-04 2019-11-19 Microsoft Technology Licensing, Llc Ingress and egress of data using callback notifications
US10614057B2 (en) 2016-11-04 2020-04-07 Microsoft Technology Licensing, Llc Shared processing of rulesets for isolated collections of resources and relationships
US10452672B2 (en) 2016-11-04 2019-10-22 Microsoft Technology Licensing, Llc Enriching data in an isolated collection of resources and relationships
US10402408B2 (en) 2016-11-04 2019-09-03 Microsoft Technology Licensing, Llc Versioning of inferred data in an enriched isolated collection of resources and relationships
US11475320B2 (en) 2016-11-04 2022-10-18 Microsoft Technology Licensing, Llc Contextual analysis of isolated collections based on differential ontologies
US20180137667A1 (en) 2016-11-14 2018-05-17 Oracle International Corporation Graph Visualization Tools With Summary Visualization For Very Large Labeled Graphs
JP6310532B1 (ja) 2016-11-24 2018-04-11 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
JP6311000B1 (ja) 2016-12-19 2018-04-11 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
JP6790905B2 (ja) * 2017-02-20 2020-11-25 富士通株式会社 検出方法、検出装置および検出プログラム
US11068453B2 (en) 2017-03-09 2021-07-20 data.world, Inc Determining a degree of similarity of a subset of tabular data arrangements to subsets of graph data arrangements at ingestion into a data-driven collaborative dataset platform
US11238109B2 (en) 2017-03-09 2022-02-01 Data.World, Inc. Computerized tools configured to determine subsets of graph data arrangements for linking relevant data to enrich datasets associated with a data-driven collaborative dataset platform
CN106845462A (zh) * 2017-03-20 2017-06-13 大连理工大学 基于三元组诱导的同时选择特征及聚类的人脸识别方法
US10585575B2 (en) 2017-05-31 2020-03-10 Oracle International Corporation Visualizing UI tool for graph construction and exploration with alternative action timelines
US10621199B2 (en) * 2017-08-18 2020-04-14 Ca Technologies, Inc. Two phase retrieval using named graphs
US10671582B2 (en) * 2017-08-18 2020-06-02 Ca Technologies, Inc. Two phase save using named graphs
JP6855401B2 (ja) * 2018-02-08 2021-04-07 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
US10922308B2 (en) 2018-03-20 2021-02-16 Data.World, Inc. Predictive determination of constraint data for application with linked data in graph-based datasets associated with a data-driven collaborative dataset platform
US11243960B2 (en) 2018-03-20 2022-02-08 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures
US11120082B2 (en) 2018-04-18 2021-09-14 Oracle International Corporation Efficient, in-memory, relational representation for heterogeneous graphs
USD940169S1 (en) 2018-05-22 2022-01-04 Data.World, Inc. Display screen or portion thereof with a graphical user interface
USD940732S1 (en) 2018-05-22 2022-01-11 Data.World, Inc. Display screen or portion thereof with a graphical user interface
US11327991B2 (en) 2018-05-22 2022-05-10 Data.World, Inc. Auxiliary query commands to deploy predictive data models for queries in a networked computing platform
USD920353S1 (en) 2018-05-22 2021-05-25 Data.World, Inc. Display screen or portion thereof with graphical user interface
US11947529B2 (en) 2018-05-22 2024-04-02 Data.World, Inc. Generating and analyzing a data model to identify relevant data catalog data derived from graph-based data arrangements to perform an action
US11537990B2 (en) 2018-05-22 2022-12-27 Data.World, Inc. Computerized tools to collaboratively generate queries to access in-situ predictive data models in a networked computing platform
US11442988B2 (en) 2018-06-07 2022-09-13 Data.World, Inc. Method and system for editing and maintaining a graph schema
CN109582799B (zh) * 2018-06-29 2020-09-22 北京百度网讯科技有限公司 知识样本数据集的确定方法、装置及电子设备
US11100688B2 (en) * 2018-07-26 2021-08-24 Google Llc Methods and systems for encoding graphs
CN111274348B (zh) * 2018-12-04 2023-05-12 北京嘀嘀无限科技发展有限公司 服务特征数据提取方法、装置及电子设备
CN109726254B (zh) * 2018-12-24 2020-12-18 科大讯飞股份有限公司 一种三元组知识库的构建方法及装置
EP3736710A1 (en) * 2019-05-10 2020-11-11 Siemens Aktiengesellschaft Method and device to control a technical device with data
CN110096515A (zh) * 2019-05-10 2019-08-06 天津大学深圳研究院 一种基于三元组的rdf数据管理方法、装置及存储介质
CN110609766A (zh) * 2019-09-04 2019-12-24 深圳前海微众银行股份有限公司 一种基于Redis协议的KV数据存储方法及装置
US10853150B1 (en) * 2019-12-31 2020-12-01 Fujitsu Limited Generating application programming interface knowledge graphs
CN111859858B (zh) * 2020-07-22 2024-03-01 智者四海(北京)技术有限公司 从文本中提取关系的方法及装置
US11321285B2 (en) 2020-10-01 2022-05-03 Bank Of America Corporation Automatic database script generation for copying data between relational databases
US11785077B2 (en) 2021-04-29 2023-10-10 Zoom Video Communications, Inc. Active-active standby for real-time telephony traffic
CN115470377A (zh) * 2021-06-11 2022-12-13 清华大学 流式图数据处理方法及系统
US20230030168A1 (en) * 2021-07-27 2023-02-02 Dell Products L.P. Protection of i/o paths against network partitioning and component failures in nvme-of environments
US11947600B2 (en) 2021-11-30 2024-04-02 Data.World, Inc. Content addressable caching and federation in linked data projects in a data-driven collaborative dataset platform using disparate database architectures
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US20230281178A1 (en) * 2022-03-04 2023-09-07 The Boeing Company Discovering contexts and structured data structures from hazy data
US20240012803A1 (en) * 2022-07-08 2024-01-11 Salesforce, Inc. Mechanisms for deleting triples of a database store

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2631819B2 (ja) * 1994-07-21 1997-07-16 株式会社ソーケン 組立自在型ラック及びその部材
US7908520B2 (en) * 2000-06-23 2011-03-15 A. Avizienis And Associates, Inc. Self-testing and -repairing fault-tolerance infrastructure for computer systems
US7058637B2 (en) * 2001-05-15 2006-06-06 Metatomix, Inc. Methods and apparatus for enterprise application integration
US7836031B2 (en) * 2003-03-28 2010-11-16 Microsoft Corporation Systems and methods for employing a trigger-based mechanism to detect a database table change and registering to receive notification of the change
US20060085412A1 (en) * 2003-04-15 2006-04-20 Johnson Sean A System for managing multiple disparate content repositories and workflow systems
US7702645B2 (en) 2006-06-30 2010-04-20 Nokia Corporation Method, apparatus and computer program product for making semantic annotations for easy file organization and search
EP1973053A1 (en) * 2007-03-19 2008-09-24 British Telecommunications Public Limited Company Multiple user access to data triples
US7890518B2 (en) 2007-03-29 2011-02-15 Franz Inc. Method for creating a scalable graph database
CN101398831B (zh) * 2007-09-27 2013-08-21 日电(中国)有限公司 本体数据导入/导出方法及装置
CN101436192B (zh) * 2007-11-16 2011-03-16 国际商业机器公司 用于优化针对垂直存储式数据库的查询的方法和设备
US8209577B2 (en) * 2007-12-20 2012-06-26 Microsoft Corporation Optimizing XOR-based codes
EP2107474A1 (en) * 2008-03-31 2009-10-07 British Telecommunications Public Limited Company Data access
US8108360B2 (en) * 2008-04-17 2012-01-31 Microsoft Corporation Database object update order determination
US8078646B2 (en) * 2008-08-08 2011-12-13 Oracle International Corporation Representing and manipulating RDF data in a relational database management system
US8447786B2 (en) * 2008-10-01 2013-05-21 International Business Machines Corporation Language extensions for creating, accessing, querying and updating RDF data
US8346812B2 (en) * 2009-10-23 2013-01-01 Intellidimension, Inc. Indexing in a resource description framework environment
US8423501B2 (en) 2009-11-20 2013-04-16 Oracle International Corporation Data source for parallel inference using a source table that is partitioned on triple predicate
US8522125B1 (en) * 2010-04-09 2013-08-27 The Research Foundation Of State University Of New York System and method for efficient horizontal maximum distance separable raid
US8886631B2 (en) * 2010-06-04 2014-11-11 Yale University Query execution systems and methods
US20110320431A1 (en) * 2010-06-25 2011-12-29 Microsoft Corporation Strong typing for querying information graphs
US8595606B1 (en) * 2010-07-16 2013-11-26 The Research Foundation Of State University Of New York Extended row diagonal parity with optimal decoding procedure
US8433685B2 (en) * 2010-08-18 2013-04-30 Hewlett-Packard Development Company, L.P. Method and system for parity-page distribution among nodes of a multi-node data-storage system
US8478766B1 (en) * 2011-02-02 2013-07-02 Comindware Ltd. Unified data architecture for business process management
US8756246B2 (en) * 2011-05-26 2014-06-17 Oracle International Corporation Method and system for caching lexical mappings for RDF data
US8793273B1 (en) * 2011-06-29 2014-07-29 Google Inc. Parsing framework method and device
EP2631817A1 (en) * 2012-02-23 2013-08-28 Fujitsu Limited Database, apparatus, and method for storing encoded triples
KR101380605B1 (ko) * 2012-03-30 2014-04-04 서울대학교산학협력단 하이퍼 그래프 기반 rdf 버전 관리 방법
US20140310302A1 (en) * 2013-04-12 2014-10-16 Oracle International Corporation Storing and querying graph data in a key-value store

Also Published As

Publication number Publication date
US9442994B2 (en) 2016-09-13
CN103425734A (zh) 2013-12-04
EP2631819A1 (en) 2013-08-28
US9251232B2 (en) 2016-02-02
CN103425734B (zh) 2017-06-27
JP2013175181A (ja) 2013-09-05
JP6119421B2 (ja) 2017-04-26
EP2631817A1 (en) 2013-08-28
US20130238667A1 (en) 2013-09-12
JP2013246828A (ja) 2013-12-09
US20140067762A1 (en) 2014-03-06

Similar Documents

Publication Publication Date Title
JP6123339B2 (ja) エンコードされたトリプルを格納するデータベース、装置及び方法
Ma et al. Storing massive Resource Description Framework (RDF) data: a survey
JP6160277B2 (ja) リコンシリエーション処理を実行する方法、制御部、プログラム及びデータ記憶システム
Kaoudi et al. Atlas: Storing, updating and querying RDF (S) data on top of DHTs
Elzein et al. Managing big RDF data in clouds: Challenges, opportunities, and solutions
US11550787B1 (en) Dynamic generation of match rules for rewriting queries to use materialized views
Başca et al. Querying a messy web of data with avalanche
WO2013138953A1 (zh) 数据存储与查询方法
Nitta et al. Survey of RDF storage managers
Mehmood et al. Distributed real-time ETL architecture for unstructured big data
Alaoui A categorization of RDF triplestores
Fan et al. Storing and querying fuzzy RDF (S) in HBase databases
Banane et al. RDF data management systems based on NoSQL Databases: a comparative study
US10592506B1 (en) Query hint specification
Bizer et al. Linked data-the story so far
Brezany et al. An elastic OLAP cloud platform
Mittal et al. Efficient random data accessing in MapReduce
Ma et al. Modeling and querying temporal RDF knowledge graphs with relational databases
EP2731022B1 (en) Method and apparatus for storing encoded graph data
Li et al. Research on storage method for fuzzy RDF graph based on Neo4j
Alaoui et al. Evaluation Criteria for RDF Triplestores with an Application to Allegrograph
Cheng et al. RDF storage and querying: a literature review
Atzori et al. Dataspaces: where structure and schema meet
Amato et al. Big data management systems for the exploitation of pervasive environments
Zhao et al. A multidimensional OLAP engine implementation in key-value database systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170320

R150 Certificate of patent or registration of utility model

Ref document number: 6123339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees