問題タブ [property-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
41 参照

graph - プレーヤーが同じチームで複数年プレーしたことをプロパティ グラフで表す

以下は、さまざまなスポーツ リーグを表すために使用する予定のプロパティ グラフ モデルです。プレーヤーが同じチームで何年もプレーしているという事実を表すための最良のアプローチを考えています。たとえば、ジョンは 2011 年、2012 年、2013 年にブロンコスでプレーしていたかもしれません。

ここに画像の説明を入力

0 投票する
1 に答える
176 参照

graph - プロパティ グラフ (Neo4j) の設計: 複数のリレーションを持つ単一のノードか、イベントの発生ごとに新しいノードか?

L1 と L2 の 2 つのリーグがあるとします。各リーグには、プレーオフ、準々決勝、準決勝、決勝などの複数のラウンドがあります。さらに、プレーオフの後に準々決勝が行われ、準々決勝の後に準決勝が行われ、準決勝の後に決勝が行われるなど、 when_afterファクトも表す必要があります。

質問

グラフはこれらのラウンドごとに 1 つのノードを持ち、各リーグはこれらのラウンドにリンクする必要がありますか? このようにして、新しい関係を作成するだけです (たとえば、L1 と L2 の両方がプレーオフと関係を持つようになります) が、プレーオフ ノードは 1 つしかありません。ただし、一部のリーグではより多くのラウンドが行われる可能性があるため (たとえば、ラウンド 2 が準々決勝の前に行われる可能性があるため)、これはoccur_after関係を制限します。これを表現するより良い方法はありますか?

ユースケース

  1. 特定のリーグのすべてのラウンドを見つけることができる必要があります。
  2. 特定のリーグのすべてのラウンドの順序と、それぞれのラウンドの日付を見つけられる必要があります。

編集

ここに画像の説明を入力

0 投票する
1 に答える
68 参照

graph - グラフ探索: 入力エッジまたは出力エッジを使用する選択はパフォーマンスに影響しますか?

私はグラフを使用してサーバー側スタックの適切な部分を実装することを目的として、しばらくの間グラフをいじっています。私は Scala-Graph と Neo4J を使用しており、Spark GraphX を学習しています。私が実装したほとんどすべてのアプリケーションで、モデルはプロパティ グラフ (ノード -> エッジ -> ノード、属性付き) のモデルでした。

グラフ (正確には DAG) を設計するときに、2 つのノード間に強力で有向の関係を見つけた場合、1 つのノードから 1 つのノードへのエッジを設定します。これは明白で直感的です。Personが Site を気に入った場合、プロパティ「likes」を持つエッジがそれらを接続します。したがって:


[Nirmalya] -- (いいね) --> [StackOverFlow]

[ジョン] -- (いいね) --> [StackOverFlow]

[テッド] -- (いいね!) --> [GoogleGroups]

[Nirmalya] -- (いいね) --> [Neo4J]


現在、発信エッジを使用して、Nirmalyaが好きなサイトを簡単に見つけることができます。

しかし、 Nirmalya が好きなものを他に誰が好きか (John など)を知りたい場合は、Site 型 Node から Person 型 Node へのエッジも (プロパティ「isLikedBy」で) 作成する必要があると考えがちなので、パスが明確で、横断が直感的であること。このようなクエリに答えるために、どちらからでも他の人に到達できるように、すべての人とサイトは双方向で接続されている必要があります。


[Nirmalya] -- (Likes) --> [StackOverFlow] -- (IsLikedBy) --> [John]


しかし、専門家によって与えられた多くの例から、これは規定されていないことがわかります. 代わりに、これはincomingなどの演算子を使用することによって実現されます。つまり、2 つのノード間にエッジが設定されている場合、エッジの両方の方向を明示的に設定する必要はありません (「いいね」だけで十分で、「isLikedBy」は不要です)。隣接行列の実装により、おそらくこれが可能になりますが、DAG でその方向が明示されていない場合でも反対方向を導出できるため、少し混乱します。

私の質問は、私の理解のギャップはどこにありますか? 「IsLikedBy」方向が理想的に存在する必要がありますが、最適化していますか? あるいは、そのような双方向エッジが必要なユースケースがあり、それらを見つける必要があるということですか? 理論的根拠が完全に欠けていますか?

喜んで賢くなります。

0 投票する
1 に答える
1107 参照

graph - Spark GraphX - Spark で JSON ファイルを読み取り、データからグラフを作成するにはどうすればよいですか?

私は Spark と Scala を初めて使用します。JSON ファイルから一連のツイーター データを読み取って、頂点がツイートを表し、エッジがツイートのリツイートであるツイートに接続するグラフに変換しようとしています。オリジナル投稿作品。これまでのところ、JSON ファイルから読み取り、RDD のスキーマを理解することができました。SchemaRDD オブジェクトから何らかの方法でデータを取得し、頂点用の RDD とエッジ用の RDD を作成する必要があると思います。これはこれにアプローチする方法ですか、それとも代替ソリューションがありますか? どんな助けや提案も大歓迎です。

0 投票する
1 に答える
152 参照

graph - Neo4j MATCH then MERGE の DB ヒット数が多すぎる

これはクエリです:

プロフィール

クエリがすでに n, m ペアを 6,781 行に絞り込んでいるのに、Merge ステージが非常に多くの DB ヒットを取得するのはなぜですか?

その段階の詳細はこれを示しています: