私はグラフデータベースのモデリングに関する一般的な質問をしていますが、私の周りを包み込むことはできません。グラフデータベース(Neo4jなど)で実世界関係をモデル化する方法は?
このタイプの関係をどのようにモデル化しますか:「ニュートンは微積分を計算しました」? simple graphで
、あなたはこのようにそれをモデル化することができます:あなたはより多くの人々や発明を追加したとして、あなたは「発明」のグラフ関係の束を持っていると思いますので...
Newton (node) -> invented (relationship) -> Calculus (node)
。
問題はあなたが関係する性質の束を追加する必要が開始し、次のとおりです。
- invention_date
- influential_concepts
- influential_people books_inventor_wrote
...とそれらのプロパティと他のノードとの間の関係を作成したいと思うでしょう:
- influential_people:人・ノードとの関係
- books_inventor_wrote:ノード
を予約する関係は、だから今、それは(「発明」)、「実世界の関係」のように思えるが、実際にあるノードでなければなりませんグラフ、およびグラフのようになります。
Newton (node) -> (relationship) -> Invention of Calculus (node) -> (relationship) -> Calculus (node)
そして、もっと物事を複雑にするには、他の人もそう、微積分の発明に参加していますあなたには、いくつかのしたいことがあるので、あなたが実際のグラフデータベース「関係」オブジェクト、上のプロパティを設定したくないのように、それはそうなのでだから私は質問をする
Newton (node) ->
(relationship) ->
Newton's Calculus Invention (node) ->
(relationship) ->
Invention of Calculus (node) ->
(relationship) ->
Calculus (node)
Leibniz (node) ->
(relationship) ->
Leibniz's Calculus Invention (node) ->
(relationship) ->
Invention of Calculus (node) ->
(relationship) ->
Calculus (node)
:グラフは、今のようなものになりポイントをグラフのノードとして扱います。
これは間違いありませんか?
私はFreebase Metaweb Architectureを研究しており、すべてをノードとして扱っているようです。たとえば、FreebaseはMediator/CVTのアイデアを持っています。ここでは、「アクター」ノードを「フィルム」ノードにリンクする「パフォーマンス」ノードを作成できます(http://www.freebase.com/edit/topic/en/the_last_samuraiなど)。しかし、これが同じ問題であるかどうかは分かりません。
"現実の関係"が実際にグラフ関係ではなくグラフノードであるべきかどうかを判断するための指針は何ですか?
このトピックに関する良い本があれば、私は知りたいです。ありがとう!
優れた回答!これは本当に私のために物事をクリアします、ありがとう。 –