ユーザーが Gremlin クエリを入力して、結果の D3 グラフを返すことができるクエリとグラフの視覚化フレームワークを実装しようとしています。D3 グラフは JSON を使用して構築されます。これは、Gremlin クエリからの個別の頂点とエッジの出力を使用して作成されます。次のような単純なクエリの場合:
g.V.filter{it.attr_a == "foo"}
これはうまくいきます。ただし、次のようなより複雑なクエリを実行しようとすると:
g.E.filter{it.attr_a == 'foo'}.groupBy{it.attr_b}{it.outV.value}.cap.next().findAll{k,e->e.size()<=3}
- Find all instances of *value*
- Grouped by unique *attr_b*
- Where *attr_a* = foo
- And *attr_b* is paired with no more than 2 other instances of *value*
代わりに、出力は次の形式になります。
attr_b1: {value1, value2, value3}
attr_b2: {value4}
attr_b3: {value6, value7}
結果をグラフとして表示できるように、Gremlin が結果をノードとエッジのリストとして出力する方法があるかどうかを知りたいです。D3 コードを編集してこの新しい出力を取り込むことができることは認識していますが、現在、クエリのタイプ/複雑さに制限がないため、キー/値のペアが毎回同じになるとは限りません。
ありがとう。