Для одной начальной вершины это так просто:
g.V(startId).
emit().
repeat(out("link").dedup()).
dedup()
Теперь для всех вершин одновременно (или набора вершин) вы должны сделать:
g.V().project("vertex","result").
by().
by(emit().
repeat(out("link").dedup()).
dedup().fold())
Запросы на вашем примере графика
gremlin> (1..6).collect { i ->
result = g.V(i).emit().repeat(out("link").dedup()).dedup().id().toList()
"for vertex ${i} result ${result}"
}
==>for vertex 1 result [1, 2, 3, 4, 5, 6]
==>for vertex 2 result [2, 3, 4, 5, 6]
==>for vertex 3 result [3, 4, 5, 6, 2]
==>for vertex 4 result [4, 5, 6, 2, 3]
==>for vertex 5 result [5, 2, 3, 4, 6]
==>for vertex 6 result [6]
gremlin> g.V().project("vertex","result").
by(id).
by(emit().
repeat(out("link").dedup()).
dedup().id().fold())
==>[vertex:1,result:[1,2,3,4,5,6]]
==>[vertex:2,result:[2,3,4,5,6]]
==>[vertex:3,result:[3,4,5,6,2]]
==>[vertex:4,result:[4,5,6,2,3]]
==>[vertex:5,result:[5,2,3,4,6]]
==>[vertex:6,result:[6]]