Skip to content
This repository has been archived by the owner on Apr 22, 2020. It is now read-only.

Releases: neo4j-contrib/neo4j-graph-algorithms

3.4.4.0

23 Jul 10:11
Compare
Choose a tag to compare

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

15 May 08:57
Compare
Choose a tag to compare

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

15 May 10:02
Compare
Choose a tag to compare

What happened in this release?

3.2.11.0

15 May 10:36
Compare
Choose a tag to compare

What happened in this release?

Neo4j Graph Algorithms Release 3.3.2.0 - More Huge Graphs and Graph Loading

02 Feb 17:25
Compare
Choose a tag to compare

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

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.

Learn more in the README

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:

Installation

  1. Download the jar into $NEO4J_HOME/plugins
  2. Add dbms.security.procedures.unrestricted=algo.* to your $NEO4J_HOME/conf/neo4j.conf
  3. Restart Neo4j

Neo4j Graph Algorithms Release 3.2.9.0 - More Huge Graphs and Graph Loading

02 Feb 17:25
f5a9231
Compare
Choose a tag to compare

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

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.

Learn more in the README

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:

Installation

  1. Download the jar into $NEO4J_HOME/plugins
  2. Add dbms.security.procedures.unrestricted=algo.* to your $NEO4J_HOME/conf/neo4j.conf
  3. Restart Neo4j

Neo4j Graph Algorithms Release 3.3.0.0 - Huge Graphs & More

23 Oct 02:23
Compare
Choose a tag to compare

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

  1. Download the jar into $NEO4J_HOME/plugins
  2. Add dbms.security.procedures.unrestricted=algo.* to your $NEO4J_HOME/conf/neo4j.conf
  3. Restart Neo4j

Neo4j Graph Algorithms Release 3.2.5.2 - Huge Graphs & More

23 Oct 02:22
Compare
Choose a tag to compare

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

  1. Download the jar into $NEO4J_HOME/plugins
  2. Add dbms.security.procedures.unrestricted=algo.* to your $NEO4J_HOME/conf/neo4j.conf
  3. Restart Neo4j

Neo4j Graph Algorithms - Release 3.2.2.1

24 Jul 11:39
Compare
Choose a tag to compare

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

24 Jul 11:40
Compare
Choose a tag to compare

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.