What sort of affinity algorithm?

cypher
(Douglasf001) #1

I should be grateful if you would guide me to the right resources (documentation and/or person) in order that I can solve a problem. I am very much a neo4j novice and have only represented my CV in neo4j and that was over a year ago.

I want to group one type of node according to how similarly they relate to another type of node. In my mind this is affinity analysis but others might call it cluster analysis.

To be more specific, I have a CRUD matrix where one axis is a set list of business processes and the other is a list of entity types (in the relational modelling/database sense) and the relationship between them is whether the Business Process has a Write, Read or Read/Write access to the Entity Type. I want to represent this in neo4j.

I think I have two questions:

  1. Is the type of algorithm that I need listed in the link below?
  2. If so, where can I go to get more detail to solve my problem?

The solving this problem will do two things:

  • Give a useful insight into my client’s business architecture
  • Reveal the power of graphs to my client.

The link I mentioned is this....
https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=9&cad=rja&uact=8&ved=2ahUKEwih47Xf9ZXgAhW6RhUIHRhrBkQQFjAIegQIAhAB&url=https%3A%2F%2Fneo4j.com%2Fblog%2Fgraph-algorithms-neo4j-15-different-graph-algorithms-and-what-they-do%2F&usg=AOvVaw3glk2IKverTUAiHsUO4z_A

0 Likes

(Michael Hunger) #2

The Jaccard algorithm is perfect for you, check out the docs and examples and let us know if that helped you:

https://neo4j.com/docs/graph-algorithms/current/algorithms/similarity-jaccard/

0 Likes

(Douglasf001) #3

Thank you. I will follow this up and I am sure I will have fun and games trying to work out how to use it.

1 Like

(Michael Hunger) #4

There are also some good blog posts, from @bratanic.tomaz and @mark.needham on the topic

0 Likes

(Douglasf001) #5

Michael, Having run the query below, I can see that the algo has not been installed but 57 others have. How can I check if it has been removed/replaced? Many thanks.
"
CALL dbms.procedures() YIELD name, signature, description
WHERE name starts with "algo"
RETURN name, signature, description
"

0 Likes

(Mark Needham) #6

Can you show the printscreen of what that returns? Also you call do call algo.list() to achieve a similar thing

We haven't removed Jaccard Similarity in answer to your question!

0 Likes

(Douglasf001) #7

Here is a screen-shot, as requested. I was expecting to see it before algo.spanningTree but I don't see it anywhere. I will be happy to learn if I have loaded the algorithms incorrectly such that some might be missing. I look forward to reading your conclusions.

0 Likes