Release Date: 3 December 2019
Compatibility Warning: Graph algorithms 3.5.13.0 is only compatible with Neo4j 3.5.9 and above. If you cannot update your Neo4j installation, the most recent compatible release for Neo4j 3.5.8 is 3.5.8.1Breaking changes:
- Improvements to modularity optimization in the Louvain algorithm now produce more accurate, but potentially different, results than previous versions.
- UnionFind will no longer accept a
threshold
parameter if no relationship weight is specified; instead it will throw an error.
New Algorithms:
- K1 coloring algorithm:
algo.beta.k1coloring
calculates distance 1 coloring. “Coloring” a graph means the assignment of colors to nodes such that connected nodes all have unique colors. K-1 coloring means that this uniqueness is only for first degree connections. - Modularity optimization algorithm:
algo.beta.modularityOptimization
that calculates communities based on a modularity value. - Louvain algorithm: We have released a new, parallelized and optimized version of the louvain algorithm under
algo.beta.louvain
. - Node Similarity algorithm:
algo.nodeSimilarity
calculates the similarity, using the Jaccard similarity score, between nodes based on their neighboring nodes. This is an improved implementation of the labsalgo.similarity.jaccard
algorithm which has been updated to leverage the in memory graph and scale to significantly larger data sets.
Enhancements & New Features
algo.memrec
now allows users to calculate memory requirements for arbitrary graphs by specifying a node and relationship count.algo.beta.graph.generate
is now seedablealgo.memrec
now includes support for labelPropagation- Initial support for loading multiple labels into the in memory graph (via
algo.graph.load
) has been added - Loading, using, listing and removing named graphs are now user-related operations; users may no longer access graphs loaded by other Neo4j users on the same instance.
Bug fixes
- Graph loaders:
- Fixed a race condition that could lead to ArrayIndexOutOfBoundsExceptions when loading graphs with high degree nodes
- Fixed a bug that prevented graphs loaded with multiple relationship types from being released early
- Weakly connected components: fixed a bug that prevented node properties from being used as seeding values on a pre-loaded graph, and updated the code to ensure that merged communities (on a seeded graph) always were assigned the lower community ID.
- Label propagation: Fixed a bug with seeding on explicitly loaded graphs, now returns the correct communityCount.
- Triangle counting (Neo4j labs): Fixed a bug that would throw and ArrayIndexOutOfBoundsException when running over a graph with disconnected node
Preview Procedures:
We’ve added several preview procedures to introduce the new API that will be applied to product algorithms in the 1.0 graph data science library release. These demonstrate the new syntax for the graph loadersalgo.beta.graph.create
previews the new surface which will replacealgo.graph.load
algo.beta.graph.list
previews the new surface which will replacealgo.graph.info
andalgo.graph.list
Recent Graph Data Science Releases
- Graph Data Science 2.12
- Graph Data Science 2.11
- Graph Data Science 2.10.1
- Graph Data Science 2.9.0
- Graph Data Science 2.8.0