2

物事を整理するために、Symfony2 プロジェクトで RDF / トリプルを使用したいと考えています (私の場合はタグです)。

私はこのようなものを見るでしょう:

ENTITY TAG  <-------------- TAG_TAG --------------> ASSOCIATION_TYPE
         ^                     |
         |---------------------/

田畑 :

TAG
  ID
  Tag (text)
  Description (text/html)

TAG_TAG
  ID
  *TAG1
  *TAG2
  *ASSOCIATION_TYPE
  ASSOCIATION_PARAM

このように、私はできるでしょう:

  • トリプル関連を保存するには
  • さまざまな関連付けタイプを設定します。たとえば、PHPProgramming_language です。stackoverflow.comウェブサイトです。しかし、地球は太陽の周りを回ります。
  • パラメータを設定するには (関連付け内でより多くの情報を提供できるようにします)

TAG_TAGと の間に多対多の関係を設定することを検討できASSOCIATION_TYPEます。これにより、いくつかのパラメーターを設定できます。

だから私はいくつかの質問があります:

  1. トリプルを効率的に格納する良い方法だと思いますか?
  2. 既存の RDF/トリプル データベースを抽出し、独自のデータベースに入力するための RDF レイヤーはありますか?
  3. Sesame のようなある種の tripleStore の使用を検討し、 Symfony で使用する必要がありますか?
4

2 に答える 2

2

Michael が言ったように、独自のトリプル ストアを作成しないでください。PHP で利用できるソリューションがいくつかあります。

  • ARC2は MySQL に基づくトリプル ストアを提供します
  • librdf 拡張機能は、standrad RDF C ライブラリの PHP ラッパーを提供します。
  • Erfurt Libraryは、オープン ソースのVirtuoso Serverトリプル ストアに接続するための抽象化ライブラリですが、MySQL で使用できる Zend DB に基づく独自のトリプル ストアもあります。
于 2014-07-23T21:14:47.787 に答える
2

質問に答えるには:

1) 私はあなたが何を求めているのか完全にはわかりません. それがデータをモデル化するための合理的な方法であるかどうかを尋ねている場合は、おそらく問題ありません。しかし、あなたの図は明確ではなく、詳細が少しわかりません。最善の方法は、最初からうまくいくことをすることです。面倒なことをせずに、後でモデリングを改善できます。

トリプルのストレージについて質問している場合は、そうしないでください。#3 に対する私の回答を参照してください。

2) 利用可能な多くの RDF ライブラリがあり、Java ではJena & Sesame、.Net ワールドではdotNetRdf、python ではRDFLib、C では redland などがあります

3) はい。車輪を再発明して独自のトリプル ストアを構築しようとしないでください。これは簡単なプロジェクトではなく、妥当な時間スケールで最悪の既存のトリプル ストアよりもうまくいくことはありません。

于 2012-05-30T12:03:41.953 に答える