リレーショナルデータベースよりもトリプルストアを使用する利点は何ですか。
RDF Triplestoresを商用利用する企業のCTOの視点:
スキーマの柔軟性-RDFストアに対してスキーマの変更と同等の変更をライブで、ダウンタイムなしで行うことができます。再設計する必要はありません。無料のランチではないため、ソフトウェアの動作に注意する必要があります。しかし、それはかなり簡単なことです。
よりモダン-RDFストアは通常、HTTPを介してクエリが実行されるため、ハッキングされたブリッジソリューションやパフォーマンスのペナルティなしで、サービスアーキテクチャに簡単に適合させることができます。また、標準化されたSQLデータベースよりも国際化されたコンテンツをより適切に処理します。異なる言語で複数の値を持つことができます。
標準化-RDFおよびSPARQLを使用した実装の標準化のレベルは、SQLよりもはるかに高いです。あるトリプルストアを別のトリプルストアに交換することは可能ですが、標準の外に出ないように注意する必要があります。店舗間でのデータの移動は簡単です。店舗はすべて同じ言語を使用しているためです。
表現力-SQLよりもRDFで複雑なデータをモデル化する方がはるかに簡単です。クエリ言語を使用すると、LEFT JOIN(SPARQLではOPTIONALと呼ばれます)などを簡単に実行できます。逆に、データが表形式である場合、SQLの方がはるかに簡単です。
来歴-SPARQLを使用すると、各情報がどこから来たかを追跡でき、それに関するメタデータを保存できるので、高度なクエリを簡単に実行でき、特定のソースからのデータまたは特定の信頼レベルのデータのみを特定の日付範囲から考慮します等.
しかし欠点もあります。 SQLデータベースは一般にはるかに成熟しており、一般的なRDFデータベースよりも多くの機能を備えています。トランザクションのようなものは、しばしばはるかに粗雑であるか、存在しません。また、RDF vのSQLに格納されている単位あたりのコストは著しく高くなります。一般化することは困難ですが、大量のデータがある場合は重要になる可能性があります。ただし、少なくとも私たちの場合は、柔軟性とパワーを考えると、経済的には全体的にメリットがあります。
特に Semantic Web はデータベースではないので、両方のコメンターは正しいです。それよりも少し一般的です。
しかし、トリプルストアとリレーショナルデータベースは多少意味のある比較であるため、一般的にセマンティックWebではなく、トリプルストアを意味するかもしれません。私がリレーショナルデータベースシステムの専門家ではないことを指摘して、残りの回答の序文を述べますが、私はトリプルストアについて少し知識があります。
トリプル(またはクワッド)ストアは、基本的にはセマンティックWeb上のデータ、特にRDFのデータベースです。これが、トリプルストアとリレーショナルデータベースの類似性が終わるところです。どちらもデータを保存し、どちらもクエリ言語を持っています。どちらも上にアプリケーションを構築するために使用できます。目を細めれば、かなり似ていると思います。ただし、各ストアに格納されるデータのタイプはまったく異なるため、2つのテクノロジーは異なるユースケースとデータ構造に合わせて最適化されるため、実際には互換性がありません。
多くの人々は、リレーショナルデータベースの上に世界のトリプルビューをオーバーレイする作業を行っており、それは機能する可能性があり、トリプルの格納および取得専用のシステムよりも遅くなります。問題の一部は、トリプルストアで使用される標準クエリ言語であるSPARQLに、リレーショナルデータベースが最適化されていない、多くの自己結合を必要とする可能性があることです。 SP2B などのベンチマークを見ると、リレーショナルシステムでSPARQLサポートをオーバーレイしているOracleが、より多くのシステムと比較すると、パックの中央または背面で実行されていることがわかります。 RDFをネイティブでサポートします。
もちろん、RDFシステムは、リレーショナルデータに対してSQLクエリを実行している場合、おそらくOracleによって破壊されます。しかし、それは一種の要点です。必要なアプリケーションに最適なツールを選択します構築する。
したがって、セマンティックWebアプリケーションの構築を検討している場合、またはこの領域に慣れるために、最終的には専用のトリプルストアを使用することをお勧めします。
推論については詳しく説明しません。また、それがトリプルストアでのクエリ応答にどのように影響するかについても説明しません。これはさらに別の議論ですが、リレーショナルシステムと推論を行うトリプルストアのもう1つの重要な違いです。
一部のトリプルストア(Virtuoso、Jena SDB)はリレーショナルデータベースに基づいており、単純にRDF/SPARQLインターフェースを提供します。そのため、質問を少し言い換えると、トリプルストアはトリプルストアのパフォーマンスが向上するようにゼロから構築されていますそうでないものより-@ steve-harrisは間違いなくその答えを知っています;)しかし、私はイエスに賭けます。
第2に、RDBMSにはないトリプルストアの機能には何がありますか。簡単な答えは、SPARQL、RDF、OWLなど(つまり、セマンティックWebテクノロジースタック)のサポートであり、公平に戦うには、SPARQL 1.1に基づいてSPARQLの値を定義する方がよい(1.0よりかなり多くの機能がある) 。これにより、フェデレーション(とてもクール)、プロパティパス式、および含意レジームが、更新プロトコルの標準セット、グラフ管理プロトコル(SPARQL 1.0にはなかった、まったく欠けていた)とともにサポートされます。また、@ steve-harrisは、トランザクションが標準(ワームの缶)の一部ではないことを指摘していますが、多くのベンダーがトランザクションに対して非標準化されたメカニズムを提供しています(Virtuosoは、JDBCおよびHibernate準拠の接続プーリングおよび管理と、Hibernateのすべてのトランザクション機能をサポートしています)。
私の心の大きな欠点は、多くのトリプルストアがすべてのSPARQL 1.1をサポートしていないことです(まだ推奨されていないため)、これが本当の利点です。
そうは言っても、私は常にRDBMSをトリプルストアで代用することを提唱しており、提供するプラットフォームは完全にトリプルストアで実行されます(私の最後の役割のフォルクスワーゲンはこの例でした)。RDBMSの必要性を廃止します。追加の利点は、RDFマッピングへのオブジェクトがより柔軟であり、従来のORM(丸い穴に正方形のペグを置くこととしても知られている)よりも多くのオプションと柔軟性を提供することです。
また、データベースを使用することもできますが、非常に柔軟なデータ交換形式としてRDFを使用します。