Я новичок в TinkerPop, поэтому не совсем уверен, что этим занимается Gremlin или другая часть TinkerPop:
Как мне «распространить» значение через граф TinkerPop? т.е. учитывая значение свойства в одной вершине, я хочу «переместить» это значение по ребру в другую вершину или набор вершин.
Пример для этого простого графа из 3 вершин и 2 ребер, соединяющих их:
gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> a = g.addV('name','a','amount', 100).next()
==>v[0]
gremlin> b = g.addV('name','b','amount', 0).next()
==>v[3]
gremlin> c = g.addV('name','c','amount', 0).next()
==>v[6]
gremlin> a.addEdge('drain', b, 'factor', 0.5)
==>e[9][0-drain->3]
gremlin> b.addEdge('drain', c, 'factor', 0.1)
==>e[10][3-drain->6]
gremlin>
Я хочу выполнить какую-то операцию на этом графике, чтобы amount
в a
копировалось в b
, умноженное на factor
на соединяющем их ребре. Например. b ['amount'] будет равно 50. Затем дальнейшее распространение c ['amount'] будет равно 5.
В идеале я хотел бы знать один оператор, который мог бы распространить значение по всей цепочке за один раз, но также оператор, который может распространить его только на первую соседнюю вершину, а затем при втором вызове распространит его на следующую вершину , так далее.
Это можно сделать просто в Gremlin, или мне нужна какая-то другая часть TinkerPop?
-Матт