Release Date: 9 July 2020
GDS 1.3.0 is compatible with Neo4j 4.0 and 4.1, but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.3.
New Features
- Node Embeddings: We have added three proof of concept implementations of node embeddings to our alpha tier – Node2Vec, Random Projections, and GraphSage.
- Node2Vec supports:
gds.alpha.node2vec.stream
gds.alpha.node2vec.write
- Random Projections supports:
gds.alpha.randomProjection.stream
gds.alpha.randomProjection.write
- GraphSAGE supports:
gds.alpha.graphSage.stream
gds.alpha.graphSage.write
- Betweenness Centrality is now fully supported. We have added the following procedures to the production tier:
gds.betweenness.stream
gds.betweenness.stats
gds.betweenness.mutate
gds.betweenness.write
gds.betweenness.stream.estimate
gds.betweenness.stats.estimate
gds.betweenness.mutate.estimate
gds.betweenness.write.estimate
- RBAC integration: GDS Enterprise Edition now respects role based access control definitions
- Pregel API improvements: we now support relationship weights in our Pregel API
- Streaming from the in memory graph: We now support
gds.graph.streamNodeProperty
,gds.graph.streamNodeProperties
,gds.graph.streamRelationshipProperty
andgds.graph.streamRelationshipProperties
, which allow users to stream data from an in memory graph. - nodeSimilarity now supports relationship weights.
- Graph export (
gds.graph.export
) has graduated to the product supported tier, and now includes the option to specify a default relationship type. - Harmonic centrality has been added, and we now support
gds.alpha.closeness.harmonic.stream
andgds.alpha.closeness.harmonic.stream
- Stats mode: we’ve added support for the statistics mode (returning percentiles and distribution metrics) for the following procedures
- Cosine Similarity
- Euclidean Distance
- Overlap Similarity
- Pearson Similarity
Breaking Changes:
- The alpha procedures for betweenness centrality have been removed (
gds.alpha.betweenness.stream
,gds.alpha.betweenness.write
,gds.alpha.betweenness.sampled.stream
,gds.alpha.betweenness.sampled.write
). gds.beta.graph.export
was removed and replaced with the product ready tier (gds.graph.export
).- Alpha similarity algorithms no longer accept graph names as parameters; they do not use the named graph, so the requirement to specify one has been removed.
Improvements:
- Previously, users could export an in-memory graph to an existing (but empty) database, which would produce an inconsistent database — this operation is no longer allowed.
gds.alpha.randomWalk
will return partial walks when the configured steps cannot be exhaustedgds.alpha.shortestPath.astar
now reads lat/lon properties from the in memory graph during algorithm execution- Alpha similarity algorithms no longer require graph projections to be specified (this speeds up run time significantly)
gds.nodeSimilarity.stats
now returnssimilarityPairs
to track the number of comparisons- Improved memory estimation for Cypher projections
- Inner element projection fields are now included as part of syntax checking, as well as typo correction
- Most
IllegalArgumentExceptions
are now collected and returned in a single exception
Bug Fixes:
- Fixed a bug where Node2Vec returned an ArrayIndexOutOfBounds Exception
- Fixed a bug where Jaccard Similarity would compute incorrectly when inputs contained duplicated
- Fixed a bug where alpha similarity algorithms loaded a graph even though they operated on separate inputs
- Fixed a bug where implicit graph loading ignored the concurrency setting in the algorithm configuration
- Fixed a bug where generated graphs (from gds.beta.graph.generate) were not listed by graph.list
- Fixed a bug in
gds.alpha.ml.ann
where the computation could fail with an IndexOutOfBoundsException - Path finding algorithms:
- Fixed a bug affecting
gds.alpha.dfs.stream
andgds.alpha.bfs.stream
where the result-path was in the wrong order. - Fixed a bug affection
gds.alpha.kshortestPath
,gds.alpha.shortestPaths.stream
andgds.alpha.shortestPath.astar
where a wrong default relationship weight lead to incorrect path calculations - Fixed a bug affecting path-finding algorithms, where the
startNode
orendNode
was not loaded - Fixed a bug affecting
gds.alpha.spanningTree.kmin
andgds.alpha.spanningTree.kmax
where an incorrectstartNodeId
was used to create the spanning tree
- Fixed a bug affecting
- Updated function descriptions to start with “RETURN” instead of “CALL”
- Added missing fields to the following:
nodePropertiesWritten,
to the Louvain mutate procedurenodePropertiesWritten
to the label propagation algorithmpostProcessingMillis
to the pageRank stats, write, and mutate procedures
Recent Graph Data Science Releases
- Graph Data Science 2.13
- Graph Data Science 2.12
- Graph Data Science 2.11
- Graph Data Science 2.10.1
- Graph Data Science 2.9.0