7

大量の異種JSONドキュメント(つまり、名前付きのキーと値のマッピング)と、これらのドキュメントがアタッチされているクラスの階層(つまり、名前付きのセット)があるとします。次のことを可能にするデータ構造を設定する必要があります。

  1. JSONドキュメントに対するCRUD操作。
  2. IDによるJSONドキュメントの取得は非常に迅速です。
  3. 特定のクラスに添付されているすべてのJSONドキュメントを非常に迅速に取得します。
  4. クラス階層の編集:クラスの追加/削除、再配置。

私は当初、JSONドキュメントをドキュメント指向データベース(CouchDBやMongoDBなど)に格納し、クラス階層をRDFストレージ(4storeなど)に格納するというアイデアを思いつきました。12そして4自然に理解さ3れ、ストレージ内のすべてのクラスの添付ドキュメントIDのリストを維持することによって解決されます。

しかし、RDFストレージは、IDによってJSONドキュメントを取得するというドキュメント指向の部分を実際に実行できると思いました。一見これは本当のように見えますが、私はまだ心配してい2ます3。ドキュメント指向のdbのサーブドキュメントの速度でドキュメント(ノード)を取得できるRDFストレージはありますか?3クエリのようにどのくらいの速さで機能しますか?RDFストレージが遅い、具体化の問題などについて少し聞いたことがあります。

たとえば、CouchDBのように、IDでオブジェクトをカジュアルに取得するのにも快適なRDFストレージはありますか?JSONのようなオブジェクトの保存、取得、編集にドキュメント指向ストレージとRDFストレージを使用することの違いは何ですか?

4

2 に答える 2

5

あなたはもともとグラフデータベース( Neo4jなど)についてこの質問をしました。そのため、メモを追加したいと思います。

  1. グラフデータベースはノード(およびリレーションシップ)に統合インデックスを使用するため、ドキュメントのルートノードの高速初期ルックアップはそれを介して行われます(外部またはグラフインデックス)
  2. パス(実際にはルートへのツリー)の追加のグラフインデックスは、キー値ルックアップだけでよりクリーンにモデル化できます)
  3. ドキュメントをプロパティを持つノードのツリーとしてモデル化すると、単純なCRUD操作と複雑なCRUD操作(構造的)を実行できます。
  4. 「タイプ」または「クラス」のすべてのドキュメントの取得は、インデックス(タイプするルートノードのインデックス)またはグラフカテゴリノードで再度実行できます。
  5. これらの「タイプまたはクラス」カテゴリノードを階層(またはグラフ)に配置し、通常のグラフデータベースAPIを使用して編集できます。
  6. グラフのトラバースは、トラバーサー/統合グラフクエリ言語(Neo4jのサイファーなど)を使用して実行できます。
  7. 階層データの読み込みは、カスタムインポーターまたはより一般的なサブグラフインポーター(GEOFFなど)のいずれかで実行できます。
于 2011-12-01T08:49:11.833 に答える
1

RDFデータベースで使用できる最も近いものはグラフと呼ばれます。名前付きグラフには、RDFトリプルのセットを配置できます。このトリプルのセットは、必要に応じて1つまたは複数のRDFドキュメントからアサートできます。RDFドキュメントごとに1つの名前付きグラフが必要だとします。ファイルの場所を反映するURIを使用してグラフにURLまたはIRIという名前を付けることができます。例えば ​​...

http://yourdomain/files/rdf_file_1

また

file:///home/myrdffiles/file1

4storeはクアッドストアです。クアッドストアは名前付きグラフをサポートし、4storeはこれを処理するために特別に設計されています。

4storeを使用すると、次のコマンドを実行して、名前付きグラフでトリプルをアサートできます。

curl -T your_file.rdf http://your_4store_database/data/http://yourdomain/files/rdf_file_1

/data/トリプルがアサートされる場所にGRAPH識別子(IRI)を配置できます。詳細については、 4storesparqlサーバーおよび4storeクライアントライブラリを参照してください。

データをアサートしたら、SPARQLを使用して、名前付きグラフを使用してクエリをそのグラフに送信することもできます。

SELECT * WHERE {
   GRAPH <http://youdomain/files/rdf_file_1> {
        .... some triple patterns in here ....
   }
}

さらに、4storeはJSONもサポートしているため、SPARQL結果セットをJSONで直接取得できます。

4storeを使用することにした場合は、ここで貴重なサポートを見つけることができます:http: //4store.org/contact

于 2011-11-30T23:11:03.427 に答える