私は、自己ループを可能にするネットワークを使用しています (つまり、一部のエッジは頭と尾の両方と同じ頂点を持っています)。グラフgに 3 つの頂点 ( adam、bill、およびcid) とタイプの 3 つのエッジreports( [adam-reports->bill]、[bill-reports->cid]、および[adam-reports->adam]) があり、この例では最後のエッジが唯一の再帰エッジであるとします。
gremlin> g = new TinkerGraph();
gremlin> adam = g.addVertex('adam');
gremlin> bill = g.addVertex('bill');
gremlin> cid = g.addVertex('cid');
gremlin> g.addEdge(adam, bill, 'reports');
gremlin> g.addEdge(bill, cid, 'reports');
gremlin> g.addEdge(adam, adam, 'reports');
gremlin では、自己ループを簡単に取得できます。したがって、次のようになります。
gremlin> g.V.sideEffect{v=it}.outE('reports').inV.filter{it==v}.path
gremlin> [v[adam], e[2][adam-reports->adam], v[adam]]
ただし、Javaで同じことをしようとしていますが、GremlinPipeline成功していません。上記を行うために有効なGremlinePipelineを構築するにはどうすればよいですか?
GremlinPipeline pp = new GremlinPipeline();
// Add various pies to pp to get a valid pipeline
pp.setStarts(g.getVertices());