【发布时间】:2017-04-24 09:11:04
【问题描述】:
如何通过 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>
我希望在此图上运行某种操作,以便将a 中的amount 复制到b 乘以连接它们的边缘中的factor。例如。 b['amount'] 将等于 50。然后进一步传播 c['amount'] 将等于 5。
理想情况下,我想知道一个语句可以一次将值传播到整个链,但也有一个语句可以将它传播到第一个相邻的顶点,然后在第二次调用时将它传播到下一个顶点等。
这是可以简单地在 Gremlin 中完成的事情,还是我需要 TinkerPop 的其他部分?
【问题讨论】:
标签: graph titan gremlin tinkerpop