17

phpでグラフデータベースを使いたいです。どこから始めればよいかについて、いくつかのリソースを指摘できますか? サンプルコード/チュートリアルはありますか? または、完全にランダム/抽象的な状況で互いに関連するデータを保存する他の方法はありますか?

-

必要な関係の非常に抽象的な例: ジョンはメアリーに関係し、両方とも学校に関係し、ジョンは背が高く、メアリーは背が低く、ジョンは青い目をしており、メアリーは緑色の目をしています。緑の目と学校に行く' -> ジョンに答える

-

もう一つの例:

    TrackA -> ArtistA
           -> ArtistB

           -> AlbumA -----> [ label ]
           -> AlbumB -----> [   A   ]

           -> TrackA:Remix
           -> Genre:House

           -> [ Album ] -----> [ label ]
   TrackB  -> [   C   ]        [   B   ]

クエリの例:

TrackBはどのジャンルに近いですか?回答: ハウス - TrackA に関連し、ジャンル:ハウスに関連するアルバム C に関連しているためです。

Label A の Genre:House 関連のすべてのアルバムを取得します。結果: AlbumA、AlbumB - どちらも Genre:House に関連する TrackA を持っているためです。

-

MySQL では可能ですが、各項目の属性/列の固定セットと複雑で柔軟性のないクエリが必要になります。代わりに、すべての属性をそれ自体が項目である必要があり、何かに「属する」のではなく「何かに関連する.

4

8 に答える 8

9

Neo4jグラフ データベースを PHP から利用できるようにする作業が進行中です。詳細については、この wiki ページを参照してください。ドメインをグラフとしてモデル化する方法に関しては、ユーザーのメーリング リストは非常に優れている傾向があります。

更新: PHP neo4j REST クライアントの短い入門ブログ投稿があります。

于 2010-05-16T10:24:16.773 に答える
1

セマンティック Web の問題のようです。したがって、PHP とセマンティック Web を一緒に使用する方法を理解する必要があります。たぶん、このリンクhttp://bnode.org/blog/2009/05/25/back-from-new-york-semantic-web-for-php-developers-tripが役立つでしょうか?

于 2010-05-17T04:27:41.483 に答える
1

私の提案は、OrientDB や neo4j のような Java ベースのグラフ DB を選択し、それをPHP/Java ブリッジ経由で使用することです。近い将来、neo4j (およびある時点で OrientDB も同様) はネイティブ php サポートを取得し、ブリッジをネイティブ アクセスに置き換えることができます。

于 2010-12-07T15:34:02.273 に答える
1

この質問が1年前のものであることを考慮すると、sparqlまたは同等の言語をサポートするすべてのrdfデータストアでこのようなクエリを実行できることに注意することはまだ興味深いかもしれません.

于 2011-06-09T15:50:00.473 に答える
1

次のようにアプローチする必要があるように思えます。

1) 必要な方法でデータをクエリできるグラフ オブジェクトをコーディングします。

2) オブジェクトの永続化レイヤーを作成する

3) グラフ オブジェクトでクエリを実行する呼び出しを最適化して、適切な場合 (たとえば、メモリを節約する必要がある場合) にデータベース呼び出しを使用します。

于 2010-05-17T19:22:38.763 に答える
1

「典型的な」 Prologの問題に少し似ているように思えます...これは、PHPとはまったく異なるプログラミング言語です。しかし、おそらく popen を使用できます。

または、列 [id, predicate, atom1, atom2] を含む SQL テーブルを定義して、"Mary has Green Eyes" の真実性を格納します: predicate = "has", atom1 = "Mary", atom2 = "Green Eyes".

これで、選択した SQL を使用して、述語と属性を結合およびフィルター処理できるようになりました。

于 2010-05-16T09:53:12.530 に答える
0

PHP での OrientDB の使用法に関するこの記事も参照してください: http://www.odino.org/346/orientdb-the-graph-db-for-the-web

于 2011-05-24T23:57:26.737 に答える