Я думаю, проблема в использовании addE(<traversal>)
..? По крайней мере, это то, что терпит неудачу в чистой среде TinkerPop 3.2. Поскольку в TP 3.2 нет способа динамически устанавливать метку ребра, вам нужно знать все возможные метки ребер, входящие и исходящие из пользовательской вершины, и обрабатывать каждую из них отдельно.
На основании исходного обхода связанного ответа:
g.V(4).as('source').
addV().
property(label, select('source').label()).as('clone').
sideEffect( // copy vertex properties
select('source').properties().as('p').
select('clone').
property(select('p').key(), select('p').value())).
sideEffect( // copy knows out-edges
select('source').outE('knows').as('e').
select('clone').
addE('knows').as('eclone').
to(select('e').inV()).
select('e').properties().as('p'). // copy knows out-edge properties
select('eclone').
property(select('p').key(), select('p').value())).
sideEffect( // copy knows out-edges
select('source').outE('knows').as('e').
select('clone').
addE('knows').as('eclone').
to(select('e').inV()).
select('e').properties().as('p'). // copy knows out-edge properties
select('eclone').
property(select('p').key(), select('p').value())).
sideEffect( // copy created out-edges
select('source').outE('created').as('e').
select('clone').
addE('created').as('eclone').
to(select('e').inV()).
select('e').properties().as('p'). // copy created out-edge properties
select('eclone').
property(select('p').key(), select('p').value())).
sideEffect( // copy knows in-edges
select('source').inE('knows').as('e').
select('clone').
addE('knows').as('eclone').
from(select('e').outV()).
select('e').properties().as('p'). // copy knows in-edge properties
select('eclone').
property(select('p').key(), select('p').value()))
Таким образом, вы просто добавите один sideEffect
шаг на каждую метку края (на направление).