How to implement propagation algorithms in Neptune

0

I need to implement a custom propagation algorithm that starts from a given node and visits its neighbors and update their properties accordingly based on the previous node properties. Example use case is, a quality flag that changed in a given node from good to bad and I need to make all the subsequent nodes become bad.

What is the recommend way of implement this efficiently in Neptune? (I'm trying to avoid to have client code to have this graph traversal one hop at a time)

已提问 2 年前256 查看次数
1 回答
1

So something like the following?

Sample graph:

g.addV('Product').property(id,'prod1').property('name','widget').property('quality','good').as('p1').
addV('Product').property(id,'prod2').property('name','sproket').property('quality','good').as('p2').
addV('Product').property(id,'prod3').property('name','screw').property('quality','good').as('p3').
addV('Product').property(id,'prod4').property('name','bolt').property('quality','good').as('p4').
addE('connectedTo').from('p1').to('p2').
addE('connectedTo').from('p1').to('p3').
addE('connectedTo').from('p1').to('p4')

Sample query:

g.V('prod1').as('p1').property(single,'quality','bad').
    out('connectedTo').
    property(single,'quality',select('p1').values('quality'))

This query would alter the property on the "root" vertex and apply the same property value to the children vertices.

UPDATE: If wanting to propagate this down an entire tree, you could use a repeat() step:

g.V('prod1').as('p1').property(single,'quality','bad').
    repeat(
        out('connectedTo').
        property(single,'quality',select('p1').values('quality'))
    )
profile pictureAWS
已回答 2 年前
  • interesting so I can make search query and then basically call property on the traversal to set the value of the property!

  • Is this recursing or it will just propagate to direct children of p1, I see you only use out not sure if this will grab all subsequent nodes (i.e. children of children)

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则