Для того, чтобы получить доступ к краям, вам нужно явно их пройти.
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().hasLabel('software').
repeat(__.inE().as('e').outV()).
emit().
property(set, 'incoming', select(last, 'e')).iterate()
gremlin> g.V().valueMap()
==>[incoming:[e[9][1-created->3],e[8][1-knows->4]],name:[marko],age:[29]]
==>[name:[vadas],age:[27]]
==>[name:[lop],lang:[java]]
==>[incoming:[e[11][4-created->3],e[10][4-created->5]],name:[josh],age:[32]]
==>[name:[ripple],lang:[java]]
==>[incoming:[e[12][6-created->3]],name:[peter],age:[35]]
Я бы не рекомендовал хранить целые края;Идентификаторы ребер могут быть хорошими.
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().hasLabel('software').
repeat(__.inE().as('e').outV()).
emit().
property(set, 'incoming', select(last, 'e').by(id)).iterate()
gremlin> g.V().valueMap()
==>[incoming:[9,8],name:[marko],age:[29]]
==>[name:[vadas],age:[27]]
==>[name:[lop],lang:[java]]
==>[incoming:[11,10],name:[josh],age:[32]]
==>[name:[ripple],lang:[java]]
==>[incoming:[12],name:[peter],age:[35]]
ОБНОВЛЕНИЕ
Чтобы собрать смежные идентификаторы вершин, это будет:
gremlin> g.V().hasLabel('software').
repeat(__.as('v').in()).
emit().
property(set, 'incoming', select(last, 'v').by(id)).iterate()
gremlin> g.V().valueMap()
==>[incoming:[3,4],name:[marko],age:[29]]
==>[name:[vadas],age:[27]]
==>[name:[lop],lang:[java]]
==>[incoming:[3,5],name:[josh],age:[32]]
==>[name:[ripple],lang:[java]]
==>[incoming:[3],name:[peter],age:[35]]