Releases: neo4j-contrib/neo4j-graph-algorithms
3.4.4.0
What happened in this release?
-
Bug fixes in Closeness Centrality and Delta Stepping Algorithms
-
Added Random Walk Algorithm. Thanks to Freya Behrens, Sebastian Bischoff, Pius Ladenburger, Julius Rückin, Laurenz Seidel, Fabian Stolp, Michael Vaichenker and Adrian Ziegler of the MetaExp-Project for their work on this. You can learn more about this algorithm in the documentation.
-
Added support for Personalized PageRank. This is the most basic variant so please let us know if it works for you or if you need some other features supported.
-
Yens k-shortest path algorithm now stores weights along with the stored shortest path relationships
-
Bug fix when loading nodes with links to themselves
3.4.0.0
What happened in this release?
-
Documentation has now moved onto neo4j.com. You can find it at neo4j.com/docs/graph-algorithms/3.4/
-
Internal refactoring to support the new 3.4 kernel API
-
Yens k-shortest path added
-
Streaming version of Label Propagation algorithm added.
-
A* algorithm added. Thanks to Sadeep Madurange for working on this one.
3.3.5.0
What happened in this release?
-
Documentation has now moved onto neo4j.com. You can find it at neo4j.com/docs/graph-algorithms/3.3/
-
Yens k-shortest path added
-
Streaming version of Label Propagation algorithm added.
-
A* algorithm added. Thanks to Sadeep Madurange for working on this one.
3.2.11.0
What happened in this release?
-
Documentation has now moved onto neo4j.com. You can find it at neo4j.com/docs/graph-algorithms/3.2/
-
Yens k-shortest path added
-
Streaming version of Label Propagation algorithm added.
-
A* algorithm added. Thanks to Sadeep Madurange for working on this one.
Neo4j Graph Algorithms Release 3.3.2.0 - More Huge Graphs and Graph Loading
Thanks a lot to Paul Horn and Martin Knobloch from Avantgarde Labs for their tireless work on the graph algorithms. Thanks also to Tomasz Bratanic for the great documentation work.
New algorithms
- Dangalchev closeness centrality
- Harmonic closeness centrality
- Approximate Betweenness centrality
- K spanning tree
More support for large Graphs
In the previous release we added support for large graphs with the graph:huge
config parameter.
This release adds huge graph support to the following algorithms:
- Closeness Centrality
- Harmonic Centrality
- Union Find
- Strongly Connected Components
- Triangle Counting
- Louvain
Graph Loading
It can take some time to load large graphs into the algorithm data structures, so you can now pre-load graphs and then later refer to them by name when calling the graph algorithms.
After usage they can be removed from memory to free resources used.
Documentation
You can find documentation for the new algorithms and examples of how to apply them on the Yelp business dataset.
The new algorithms have also been demonstrated in several places:
- Our Data science training course - run
:play data_science
in the Neo4j browser - On Tomasz' Blog
- In our recent webinar
Installation
- Download the jar into $NEO4J_HOME/plugins
- Add
dbms.security.procedures.unrestricted=algo.*
to your$NEO4J_HOME/conf/neo4j.conf
- Restart Neo4j
Neo4j Graph Algorithms Release 3.2.9.0 - More Huge Graphs and Graph Loading
Thanks a lot to Paul Horn and Martin Knobloch from Avantgarde Labs for their tireless work on the graph algorithms. Thanks also to Tomasz Bratanic for the great documentation work.
New algorithms
- Dangalchev closeness centrality
- Harmonic closeness centrality
- Approximate Betweenness centrality
- K spanning tree
More support for large Graphs
In the previous release we added support for large graphs with the graph:huge
config parameter.
This release adds huge graph support to the following algorithms:
- Closeness Centrality
- Harmonic Centrality
- Union Find
- Strongly Connected Components
- Triangle Counting
- Louvain
Graph Loading
It can take some time to load large graphs into the algorithm data structures, so you can now pre-load graphs and then later refer to them by name when calling the graph algorithms.
After usage they can be removed from memory to free resources used.
Documentation
You can find documentation for the new algorithms and examples of how to apply them on the Yelp business dataset.
The new algorithms have also been demonstrated in several places:
- Our Data science training course - run
:play data_science
in the Neo4j browser - On Tomasz' Blog
- In our recent webinar
Installation
- Download the jar into $NEO4J_HOME/plugins
- Add
dbms.security.procedures.unrestricted=algo.*
to your$NEO4J_HOME/conf/neo4j.conf
- Restart Neo4j
Neo4j Graph Algorithms Release 3.3.0.0 - Huge Graphs & More
Thanks a lot to Paul Horn and Martin Knobloch from Avantgarde Labs for their tireless work on the graph algorithms.
And to Tomasz Bratanic for the great documentation work.
New Algorithms:
- TriangleCounting and Triangle-Coefficients
- Louvain Clustering
Support for large Graphs
Support for large graphs was added with graph:'huge'
which now can handle many billions of nodes and relationships.
Documentation
- Documentation for the new algorithms
- Documentation on how to apply graph algorithms for the Yelp Business dataset
You can find the new algorithms also demonstrated in our data science training, e.g. with :play data_science
and on Tomasz' Blog and in our recent Online Meetup.
Installation
- Download the jar into $NEO4J_HOME/plugins
- Add
dbms.security.procedures.unrestricted=algo.*
to your$NEO4J_HOME/conf/neo4j.conf
- Restart Neo4j
Neo4j Graph Algorithms Release 3.2.5.2 - Huge Graphs & More
Thanks a lot to Paul Horn and Martin Knobloch from Avantgarde Labs for their tireless work on the graph algorithms.
And to Tomasz Bratanic for the great documentation work.
New Algorithms:
- TriangleCounting and Triangle-Coefficients
- Louvain Clustering
Support for large Graphs
Support for large graphs was added with graph:'huge'
which now can handle many billions of nodes and relationships.
Documentation
- Documentation for the new algorithms
- Documentation on how to apply graph algorithms for the Yelp Business dataset
You can find the new algorithms also demonstrated in our data science training, e.g. with :play data_science
and on Tomasz' Blog
and in our recent Online Meetup.
Installation
- Download the jar into $NEO4J_HOME/plugins
- Add
dbms.security.procedures.unrestricted=algo.*
to your$NEO4J_HOME/conf/neo4j.conf
- Restart Neo4j
Neo4j Graph Algorithms - Release 3.2.2.1
Introduction
This is the first public release of the Neo4j-Graph-Algorithms library. Our thanks go to Martin Knobloch, Paul Horn and Tomaz Bratanic for all the development and documentation work on this project.
Many users expressed interest in running graph algorithms directly on Neo4j without having to employ a secondary system. We also tuned these algorithms to be as efficient as possible.
These algorithms represent user defined procedures which you can call as part of Cypher statements running on top of Neo4j.
You can find more detail in the Documentation
Algorithms
The algorithms covered by the library are:
Centrality:
- Page Rank
- Betweenness Centrality
- Closeness Centrality
Partitioning:
- Label Propagation
- (Weakly) Connected Components
- Strongly Connected Components
- Union-Find
Path Finding:
- Minimum Weight Spanning Tree
- All Pairs- and Single Source - Shortest Path
- Multi-Source Breadth-First-Search
Example
Here we run page-rank on dbpedia (11M Page-nodes, 125M Link-relationships):
CALL algo.pageRank('Page', 'Link', {write:true,iterations:20});
+--------------------------------------------------------------------------------------+
| nodes | iter | loadMillis | computeMillis | writeMillis | damping | writeProperty |
+--------------------------------------------------------------------------------------+
| 11474730 | 20 | 34106 | 9712 | 1810 | 0.85 | "pagerank" |
+--------------------------------------------------------------------------------------+
1 row
47888 ms
CALL algo.pageRank.stream('Page', 'Link', {iterations:5}) YIELD node, score
WITH * ORDER BY score DESC LIMIT 5
RETURN node.title, score;
+--------------------------------------+
| node.title | score |
+--------------------------------------+
| "United States" | 13349.2 |
| "Animal" | 6077.77 |
| "France" | 5025.61 |
| "List of sovereign states" | 4913.92 |
| "Germany" | 4662.32 |
+--------------------------------------+
5 rows
46247 ms
Installation
We provide two releases, one for Neo4j 3.1.x and one for Neo4j 3.2.x
Installation is easy; just download the jar-file from the link below, copy it into your $NEO4J_HOME/plugins
directory and restart Neo4j.
For Neo4j 3.2.x you will also have to add this line to your $NEO4J_HOME/conf/neo4j.conf
config file:
dbms.security.procedures.unrestricted=algo.*
Feedback
We would love to hear from you!
Please try out this library on your data and let us know how it worked.
Raise GitHub issues if you run into any problems and don't forget our #neo4j-graph-algorithm
channel in the neo4j-users Slack if you have questions.
Feel free to have a look at the code, give us feedback or even add your own algorithm implementation based on the existing infrastructure.
We welcome any pull request with new algorithms, bug-fixes or other improvements.
Neo4j Graph Algorithms - Release 3.1.5.1
Introduction
This is the first public release of the Neo4j-Graph-Algorithms library. Our thanks go to Martin Knobloch, Paul Horn and Tomaz Bratanic for all the development and documentation work on this project.
Many users expressed interest in running graph algorithms directly on Neo4j without having to employ a secondary system. We also tuned these algorithms to be as efficient as possible.
These algorithms represent user defined procedures which you can call as part of Cypher statements running on top of Neo4j.
You can find more detail in the Documentation
Algorithms
The algorithms covered by the library are:
Centrality:
- Page Rank
- Betweenness Centrality
- Closeness Centrality
Partitioning:
- Label Propagation
- (Weakly) Connected Components
- Strongly Connected Components
- Union-Find
Path Finding:
- Minimum Weight Spanning Tree
- All Pairs- and Single Source - Shortest Path
- Multi-Source Breadth-First-Search
Example
Here we run page-rank on dbpedia (11M Page-nodes, 125M Link-relationships):
CALL algo.pageRank('Page', 'Link', {write:true,iterations:20});
+--------------------------------------------------------------------------------------+
| nodes | iter | loadMillis | computeMillis | writeMillis | damping | writeProperty |
+--------------------------------------------------------------------------------------+
| 11474730 | 20 | 34106 | 9712 | 1810 | 0.85 | "pagerank" |
+--------------------------------------------------------------------------------------+
1 row
47888 ms
CALL algo.pageRank.stream('Page', 'Link', {iterations:5}) YIELD node, score
WITH * ORDER BY score DESC LIMIT 5
RETURN node.title, score;
+--------------------------------------+
| node.title | score |
+--------------------------------------+
| "United States" | 13349.2 |
| "Animal" | 6077.77 |
| "France" | 5025.61 |
| "List of sovereign states" | 4913.92 |
| "Germany" | 4662.32 |
+--------------------------------------+
5 rows
46247 ms
Installation
We provide two releases, one for Neo4j 3.1.x and one for Neo4j 3.2.x
Installation is easy; just download the jar-file from the link below, copy it into your $NEO4J_HOME/plugins
directory and restart Neo4j.
For Neo4j 3.2.x you will also have to add this line to your $NEO4J_HOME/conf/neo4j.conf
config file:
dbms.security.procedures.unrestricted=algo.*
Feedback
We would love to hear from you!
Please try out this library on your data and let us know how it worked.
Raise GitHub issues if you run into any problems and don't forget our #neo4j-graph-algorithm
channel in the neo4j-users Slack if you have questions.
Feel free to have a look at the code, give us feedback or even add your own algorithm implementation based on the existing infrastructure.
We welcome any pull request with new algorithms, bug-fixes or other improvements.