I am looking for a ways to find out the all the nodes coming out of a root node are either leaf node or intermediate node.
I have added the a sample graph.
g.addV('company').property(id,'TESTNX01').property('name','Alphabet').next()
g.addV('company').property(id,'TESTNX02').property('name','Google').next()
g.addV('company').property(id,'TESTNX03').property('name','Youtube').next()
g.addV('company').property(id,'TESTNX05').property('name','YoutubeKids').next()
g.addV('person').property(id,'TESTNX01_1900-01-01_1_1').property('bu_id', 'TESTNX01_1900-01-01_1_1').property('name', 'W Karl David Laxton').next()
g.addV('person').property(id,'TESTNX02_1900-01-01_1_1').property('bu_id', 'TESTNX02_1900-01-01_1_1').property('name', 'Steven H Strong').next()
g.addV('person').property(id,'TESTNX02_1900-01-01_1_2').property('bu_id', 'TESTNX02_1900-01-01_1_2').property('name', 'Adrian Matthew Paul Rowe').next()
g.addV('person').property(id,'TESTNX02_1900-01-01_1_3').property('bu_id', 'TESTNX02_1900-01-01_1_3').property('name', 'Steven Henry Strong').next()
g.addV('person').property(id,'TESTNX02_1900-01-01_1_4').property('bu_id', 'TESTNX02_1900-01-01_1_4').property('name', 'Dom Robinson').next()
g.addV('person').property(id,'TESTNX03_1900-01-01_1_3').property('bu_id', 'TESTNX03_1900-01-01_1_3').property('name', 'Dominic Nesbitt Robinson').next()
g.addV('person').property(id,'TESTNX03_1900-01-01_1_4').property('bu_id', 'TESTNX03_1900-01-01_1_4').property('name', 'Adrian Matthew Paul Rowe').next()
g.addV('person').property(id,'TESTNX03_1900-01-01_1_5').property('bu_id', 'TESTNX03_1900-01-01_1_5').property('name', 'William Laxton').next()
g.addV('person').property(id,'TESTNX03_1900-01-01_1_6').property('bu_id', 'TESTNX03_1900-01-01_1_6').property('name', 'Will Laxton').next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX01')).to(__.V('TESTNX01_1900-01-01_1_1')).property(id,'TESTNX01_HAS_SHRHLDING_PC_TO_TESTNX01_1900-01-01_1_1').property('perc_value', 25).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX01')).to(__.V('TESTNX01_1900-01-01_1_1')).property(id,'TESTNX01_HAS_VOTING_PC_TO_TESTNX01_1900-01-01_1_1').property('perc_value', 50).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX01')).to(__.V('TESTNX02')).property(id,'TESTNX01_HAS_SHRHLDING_PC_TO_TESTNX02').property('perc_value', 75).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX01')).to(__.V('TESTNX02')).property(id,'TESTNX01_HAS_VOTING_PC_TO_TESTNX02').property('perc_value', 50).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX02_1900-01-01_1_1')).property(id,'TESTNX02_HAS_SHRHLDING_PC_TO_TESTNX02_1900-01-01_1_1').property('perc_value', 25).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX02_1900-01-01_1_1')).property(id,'TESTNX02_HAS_VOTING_PC_TO_TESTNX02_1900-01-01_1_1').property('perc_value', 25).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX02_1900-01-01_1_2')).property(id,'TESTNX02_HAS_SHRHLDING_PC_TO_TESTNX02_1900-01-01_1_2').property('perc_value', 25).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX02_1900-01-01_1_2')).property(id,'TESTNX02_HAS_VOTING_PC_TO_TESTNX02_1900-01-01_1_2').property('perc_value', 25).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX02_1900-01-01_1_3')).property(id,'TESTNX02_HAS_SHRHLDING_PC_TO_TESTNX02_1900-01-01_1_3').property('perc_value', 10).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX02_1900-01-01_1_3')).property(id,'TESTNX02_HAS_VOTING_PC_TO_TESTNX02_1900-01-01_1_3').property('perc_value', 5).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX02_1900-01-01_1_4')).property(id,'TESTNX02_HAS_SHRHLDING_PC_TO_TESTNX02_1900-01-01_1_4').property('perc_value', 10).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX02_1900-01-01_1_4')).property(id,'TESTNX02_HAS_VOTING_PC_TO_TESTNX02_1900-01-01_1_4').property('perc_value', 5).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX03')).property(id,'TESTNX02_HAS_SHRHLDING_PC_TO_TESTNX03').property('perc_value', 30).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX02')).to(__.V('TESTNX03')).property(id,'TESTNX02_HAS_VOTING_PC_TO_TESTNX03').property('perc_value', 50).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX03_1900-01-01_1_3')).property(id,'TESTNX03_HAS_SHRHLDING_PC_TO_TESTNX03_1900-01-01_1_3').property('perc_value', 20).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX03_1900-01-01_1_3')).property(id,'TESTNX03_HAS_VOTING_PC_TO_TESTNX03_1900-01-01_1_3').property('perc_value', 15).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX03_1900-01-01_1_4')).property(id,'TESTNX03_HAS_SHRHLDING_PC_TO_TESTNX03_1900-01-01_1_4').property('perc_value', 20).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX03_1900-01-01_1_4')).property(id,'TESTNX03_HAS_VOTING_PC_TO_TESTNX03_1900-01-01_1_4').property('perc_value', 25).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX03_1900-01-01_1_5')).property(id,'TESTNX03_HAS_SHRHLDING_PC_TO_TESTNX03_1900-01-01_1_5').property('perc_value', 10).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX03_1900-01-01_1_5')).property(id,'TESTNX03_HAS_VOTING_PC_TO_TESTNX03_1900-01-01_1_5').property('perc_value', 5).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX03_1900-01-01_1_6')).property(id,'TESTNX03_HAS_SHRHLDING_PC_TO_TESTNX03_1900-01-01_1_6').property('perc_value', 20).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX03_1900-01-01_1_6')).property(id,'TESTNX03_HAS_VOTING_PC_TO_TESTNX03_1900-01-01_1_6').property('perc_value', 10).next()
g.addE('HAS_SHRHLDING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX05')).property(id,'TESTNX03_HAS_SHRHLDING_PC_TO_TESTNX05').property('perc_value', 20).next()
g.addE('HAS_VOTING_PC_TO').from(__.V('TESTNX03')).to(__.V('TESTNX05')).property(id,'TESTNX03_HAS_VOTING_PC_TO_TESTNX05').property('perc_value', 20).next()
I am trying to get the all possible nodes of the root node and see if they are leaf or not. The 'leaf' nodes are assigned value Y, while the intermediate nodes get N.
Sample output:
{'root_company' : 'TESTNX01', 'Shareholder': 'TESTNX03', 'leaf': 'N'}
{'root_company' : 'TESTNX01', 'Shareholder': 'TESTNX02_1900-01-01_1_1', 'leaf': 'Y'}
.
.
.
{'root_company' : 'TESTNX01', 'Shareholder': 'TESTNX05', 'leaf': 'Y'}
Any leads would be deeply appreciated. Thank you.
You just need to test for edges on each vertex and return "Y" or "N". Most simply this can be done with
choose():More specific to your request for traversing the entire tree, you might do something like: