2013-08-28 6 views
22

トリプルストア(意味データベース)があり、汎用のグラフデータベースがあります。triplestoresとグラフデータベースの違いは何ですか?

どちらも、関係を介して1つの「アイテム」を別のアイテムにリンクする類似の概念に基づいています。トリプルストアはRDFをサポートし、SPARQLによって照会されますが、そのようなアドオンは汎用グラフデータベースのオンタップでも実装できます。

neo4jのような一般的なグラフデータベースに対してセマンティックdb/triplestoreを好むのは基本的な違いは何ですか?

答えて

6

私の2セント。

Neo4jは、プロパティグラフのカテゴリに属します。彼らは有向リレーションをサポートし、各リレーションは2つのノードしか持たない。開始ノードと終了ノード。ノードと関係には、任意のデータをキーと値のペアの形式で格納できます。しかし、3つの関係をサポートすることはできません。つまり、2つ以上のノードを接続する1つのエッジを持つことはできません。つまり、です。ただし、ジョイン・ノードを作成することで、プロパティ・グラフ内の3項関係をエミュレートできます。 You can see how to implement this in neo4j here

トリプルストアは、SPARQLの形式で標準化されたクエリ言語を持っていますが、他のグラフデータベースを照会するための標準はまだ存在しません。 RDFはトリプルストアからのインポート/エクスポートの標準です。

11

トリプルストアは、グラフデータベースです。 RDF です。確かに、トリプルストアは情報をグラフとして内部に格納しない傾向があります。これはクエリの回答には最適ではありませんが、まだグラフデータベースです。

W3C標準に基づくエコシステムに興味があるなら、neo4jのようなものを好むでしょう。他のRDFベースのシステムとの相互作用を自明にし、すべてを拾い上げ、別のトリプルストアに移動するのは非常に困難です。

10

まず、すべてのデータ構造は、基本的なストレージエンジン(またはファイルシステムやテキストファイル)に多かれ少なかれ痛みを伴うことがあります。

  • 開発とモデリング好み
  • あなたの予想ランタイムの保存、挿入するためのパフォーマンス、およびモデルのクエリ:特定のデータモデルとストレージバックエンドを選択する理由は、私見です。
  • 前に述べたように

、のRDBMSとTripleStoresの両方がで実行時に有用であることが多いなどのグラフデータベース(一意のNeo4jは)置くのJOINまたはSPARQLトラバーサル、およびキャッシュに多くの仕事をするか、または準備の景色を横断する「浅いです」グラフ構造は実際に記憶層まで下がり、ノード・レコード・レベルで(多くの最適化を用いて)ポインタ・チェイシングを行う。したがって、グラフをトラバースするときには、現在のサブグラフより多くのデータをストレージレイヤーに渡す必要がないため、グラフ全体に触れることなくデータの一部をトラバースできるため、多くの面白いシナリオで一定のパフォーマンスが得られます。

関連する問題