Showing results for 
Search instead for 
Did you mean: 

Head's Up! Site migration is underway. Expect disruption to service on Thursday, Feb. 9!

Node Ranking/Classification based on importance score assigned to other nodes

[Correction: Bottom yellow node is P2]

Hi lets assume the small network of Companies(C's) and People(P's) in the attached image. The usual relationships of worked at, board member of, partner of, works at are relevant for this example.

The end goal of what I am trying to achieve is to either 1) Classify the 3 companies C1, C2 and C3 in one of the 'importance category' of Hyper, Very, Moderate, Low, Ignore or 2) Rank them against each other based of the importance weight I give to the neighboring nodes. For e.g. anybody who was a board of company C7 receives highest score say 9, anybody who works at C4 gets a score say 6 and so on. Based on just this information we can say that since P1 was a board member of C7 and currently works at C4 and current board member of C1, C1 gets classified as 'Hyper'/ gets no. 1 ranking and C2 C3 get ranked/classified accordingly.

I also want to be able to do this by degrees of separation i.e. 1st deg, 2nd degree (includes 1st) and 3rd (includes 2nd and 1st). Is it as simple as adding up the score of each relationship in 1st or 2nd degree of C1 and calculating the total score for each node in the ranking pool?

How can I best implement this using neo4j and/or if there is a better way to approach this problem? Any feedback is really appreciated.

Thank you


I will be manually assigning scores to relationships in the network i.e. the relationship edge 'worked at C7' will receive 9 points and 'worked at C4' receives 6 points and so on. Not all nodes need to be ranked but only the ones I have manually selected to be in the ranking pool like C1, C2, C3.