Skip to content

Releases: neo4j/graph-data-science

2.6.0

05 Feb 16:45
Compare
Choose a tag to compare

Breaking changes

  • Some of the nested fields of the config returned by the new Cypher Projection were invalid for CP and have been removed.
  • Drop support for Neo4j DBMS v5.6..v5.10

New features

  • Weakly connected components can now be used to improve the speed of Node Similarity by comparing only nodes belonging to the same component.
    The feature can be enabled by either passing the component directly as a node property key (String) via the useComponents config parameter, or by setting the same config parameter to true, which will compute components internally using WCC as a pre-procesing step.

Bug fixes

  • Fix a bug where WCC fails on node filtered, inverse indexed graphs.
  • Fix a bug where non-write mode procedures would fail on composite databases.
  • Fix a bug where Random Walk could fail on weighted graphs.

Improvements

  • Added degree() function to gds.graph.subgraph node predicates.
  • Cancel all arrow server threads on server shutdown. This results in the client being correctly notified of the server shutdown.

Other changes

  • Move GDS Arrow features out of alpha status, which most importantly includes:
    • Introduction of versioned GDS Arrow endpoints
    • Deprecation of the old GDS Arrow endpoints for removal in ~ 6 months
    • Refactoring, more testing and regression testing

2.5.7

22 Jan 16:38
Compare
Choose a tag to compare

New features

  • Add support for Neo4j DBMS 5.16

Bug fixes

  • Fix a bug where WCC fails on node filtered, inverse indexed graphs.
  • Fix a bug where a progress tracker task was not stopped when an exception occurred during native projection.

2.5.6

22 Jan 16:57
Compare
Choose a tag to compare

New features

  • Added compatibility with Neo4j DBMS 5.15.

Bug fixes

  • Fixed a bug where jaccard similarity function would throw an exception if called with input read from the database.

Graph Data Science 2.5.5

24 Nov 16:12
Compare
Choose a tag to compare

New features

  • Add support for Neo4j 5.14

Bug fixes

  • Fixed a bug where the new Cypher projection would fail when being used from the new parallel Cypher runtime.

Graph Data Science 2.5.4

16 Nov 07:52
Compare
Choose a tag to compare

Other changes

Graph Data Science 2.5.3

13 Nov 15:31
Compare
Choose a tag to compare

New features

  • Add support for Neo4j 4.4.27

Bug fixes

  • Fixed a bug that lead to an unresponsive DBMS or even OS when running GDS projections in Neo4j on MacBooks (x86 or ARM).
  • Avoid a possible race condition random walking and training in Node2Vec. Also removes the need for a timeout in Node2Vec.

Improvements

  • Improved state synchronization during Arrow graph import to avoid errors due to out-of-sync messages.

Graph Data Science 2.5.1

23 Oct 09:05
Compare
Choose a tag to compare

New features

  • Add support for Neo4j 5.13

Graph Data Science 2.5.0

13 Oct 09:43
Compare
Choose a tag to compare

Breaking changes

  • Dropped support for earlier version of Neo4j 5, in particular 5.1, 5.2, 5.3, 5.4, and 5.5 are no longer supported and GDS is no longer compatible with those versions.

New features

Major

  • Added new algorithms for directed acyclic graphs:
    • gds.dag.topologicalSort.stream
    • gds.dag.longestPath.stream
  • Deprecating alpha and beta namespace for procedures and algorithms, and improving many to production grade - see details in ‘Full list of procedure being promoted’

Minor

  • Added procedure to retrieve the version of the installed GDS
    • CALL gds.version
  • Add new procedure, gds.license.state to verify the license state of the Graph Data Science library. Also, analogous adding a new function gds.isLicensed().
  • Added memory estimation for modularity calculation via procedures gds.modularity.[stream|stats].estimate
  • Added memory estimation for filtered KNN via procedures gds.knn.filtered.[mutate|stream|stats|write].estimate
  • Added Stats and Write modes for Harmonic Closeness Centrality
  • Added new procedures for SCC:
    • gds.scc.mutate
    • gds.scc.stats
  • Added memory estimation to SCC:
    • gds.scc.stream.estimate
    • gds.scc.stats.estimate
    • gds.scc.mutate.estimate
    • gds.scc.write.estimate
  • Added consecutiveIds parameter to gds.scc procedures to output the components in a consecutive id space.
  • Added memory estimation for Steiner Tree via procedures gds.steinerTree.[mutate|stream|stats|write].estimate
  • Added stats mode for gds.modularityOptimization

Bug fixes

  • Fixed a bug that in logging progress of Prepare Batches in GraphSAGE training.
  • Fixed a bug where KNN would compute incorrect EUCLIDEAN similarity.
  • Fixed a bug where limits validation could potentially not be triggered with configuration settings passed by from specified defaults.
  • Fixed a bug where gds.graph.filter would list a relationship type of __ALL__ even if all relationships were filtered out.
  • Fixed a bug where Triangle Count could compute an incorrect number of triangles when the maxDegree parameter was specified.
  • Fixed a bug where Triangle Count could compute an incorrect number of triangles when multiple relationship types are specified.

Improvements

  • The random graph generation procedure now will return a different graph each time gds.beta.graph.generate is called without specifying a random seed. Furthermore, when the seed is specified, the resulting graph will always have the same topology.
  • It is now possible to specify common node labels when importing nodes via arrow.
  • A better error message is thrown when encountering null values in the nodeLabels column when importing nodes via arrow.
  • Added the configuration option listNodeLabels for the node property stream procedures that will trigger listing all node labels for the respective node.
  • Added the configuration option list_node_labels for the node property stream arrow endpoints that will trigger listing all node labels for the respective node.
  • The Cypher projection now returns the executing query as part of the projection result as well as part of the gds.graph.list output.
  • Support passing startNodes to gds.graph.sample.cnarw as node objects instead of only node ids.
  • Support passing nodeId to gds.util.nodeProperty as node objects instead of only node id.
  • Improved validation for relationship projections: If a global SUM, MIN, MAX or COUNT aggregation is defined, there needs to be at least one property mapping.
  • HITS algorithm procedures have a default hitsIterations value of 20
  • More accurate progress tracking for the gds.scc algorithm.
  • The componentDistribution and communityDistribution parameters now also include the p1, p5,p10, p25 percentiles. This affects algorithms in the Community Detection category.

Full list of procedure being promoted

  • Promoting Model Catalog procedures:
    • gds.beta.model.drop, deprecated by gds.model.drop
      • Return column shared renamed to published
      • modelName, modelType extracted to separate return columns
    • gds.beta.model.exists, deprecated by gds.model.exists
    • gds.beta.model.list, deprecated by gds.model.list
      • Return column shared renamed to published
      • modelName, modelType extracted to separate return columns
    • gds.alpha.model.delete, deprecated by gds.model.delete
    • gds.alpha.model.load, deprecated by gds.model.load
    • gds.alpha.model.publish, deprecated by gds.model.publish
      • Return column shared renamed to published
      • modelName, modelType extracted to separate return columns
    • gds.alpha.model.store, deprecated by gds.model.store
  • Promoting Pipeline Catalog procedures:
    • gds.beta.pipeline.drop, deprecated by gds.pipeline.drop
    • gds.beta.pipeline.exists, deprecated by gds.pipeline.exists
    • gds.beta.pipeline.list, deprecated by gds.pipeline.list
    • Procedure gds.alpha.systemMonitor is deprecated by gds.systemMonitor
    • Procedure gds.beta.listProgress is deprecated by gds.listProgress
    • Procedure gds.alpha.triangles is deprecated by gds.triangles
  • Deprecating gds.beta.steinerTree procedures
    • gds.beta.steinerTree.mutate, deprecated by gds.steinerTree.mutate
    • gds.beta.steinerTree.stats, deprecated by gds.steinerTree.stats
    • gds.beta.steinerTree.stream, deprecated by gds.steinerTree.stream
    • gds.beta.steinerTree.write, deprecated by gds.steinerTree.write
  • Deprecating gds.beta.spanningTree procedures
    • gds.beta.spanningTree.mutate[.estimate], deprecated by gds.spanningTree.mutate[.estimate]
    • gds.beta.spanningTree.stats[.estimate], deprecated by gds.spanningTree.stats[.estimate]
    • gds.beta.spanningTree.stream[.estimate], deprecated by gds.spanningTree.stream[.estimate]
    • gds.beta.spanningTree.write[.estimate], deprecated by gds.spanningTree.write[.estimate]
  • Deprecating gds.alpha.maxkcut procedures
    • gds.alpha.maxkcut.mutate[.estimate], deprecated by gds.maxkcut.mutate[.estimate]
    • gds.alpha.maxkcut.stream[.estimate], deprecated by gds.maxkcut.stream[.estimate]
  • Deprecating gds.beta.closeness procedures
    • gds.beta.closeness.mutate, deprecated by gds.closeness.mutate
      • The mutateProperty field has been removed, it can be accessed via the configuration.
    • gds.beta.closeness.stats, deprecated by gds.closeness.stats
    • gds.beta.closeness.stream, deprecated by gds.closeness.stream
    • gds.beta.closeness.write, deprecated by gds.closeness.write
      • The writeProperty field has been removed, it can be accessed via the configuration.
  • Deprecating gds.beta.leiden procedures
    • gds.beta.leiden.mutate[.estimate], deprecated by gds.leiden.mutate[.estimate]
    • gds.beta.leiden.stats[.estimate], deprecated by gds.leiden.stats[.estimate]
    • gds.beta.leiden.stream[.estimate], deprecated by gds.leiden.stream[.estimate]
    • gds.beta.leiden.write[.estimate], deprecated by gds.leiden.write[.estimate]
  • Deprecating gds.alpha.conductance procedures
    • gds.alpha.conductance.stream, deprecated by gds.conductance.stream
  • Deprecating gds.alpha.modularity procedures
    • gds.alpha.modularity.stream, deprecated by gds.modularity.stream
    • gds.alpha.modularity.stats, deprecated by gds.modularity.stats
  • Deprecating gds.beta.modularityOptimization procedures
    • gds.beta.modularityOptimization.stream[.estimate], deprecated by gds.modularityOptimization.stream[.estimate]
    • gds.beta.modularityOptimization.stats[.estimate], deprecated by gds.modularityOptimization.stats[.estimate]
    • gds.beta.modularityOptimization.stream[.estimate], deprecated by gds.modularityOptimization.stream[.estimate]
    • gds.beta.modularityOptimization.stats[.estimate], deprecated by gds.modularityOptimization.stats[.estimate]
  • Deprecating gds.beta.influenceMaximization.celf procedures
    • gds.beta.influenceMaximization.celf.mutate[.estimate], deprecated by gds.influenceMaximization.celf.mutate[.estimate]
    • gds.beta.influenceMaximization.celf.stats[.estimate], deprecated by gds.influenceMaximization.celf.stats[.estimate]
    • gds.beta.influenceMaximization.celfstream[.estimate], deprecated by gds.influenceMaximization.celf.stream[.estimate]
    • gds.beta.influenceMaximization.celf.write[.estimate], deprecated by gds.influenceMaximization.celf.write[.estimate]
  • Deprecating gds.alpha.knn.filtered procedures
    • gds.alpha.knn.filtered.mutate, deprecated by gds.knn.filtered.mutate
    • gds.alpha.knn.filtered.stats, deprecated by gds.knn.filtered.stats
    • gds.alpha.knn.filtered.stream, deprecated by gds.knn.filtered.stream
    • gds.alpha.knn.filtered.write, deprecated by gds.knn.filtered.write
  • Deprecating gds.alpha.nodeSimilarity.filtered procedures
    • gds.alpha.nodeSimilarity.filtered.mutate[.estimate], deprecated by gds.nodeSimilarity.filtered.mutate[.estimate]
    • gds.alpha.nodeSimilarity.filtered.stats[.estimate], deprecated by gds.nodeSimilarity.filtered.stats[.estimate]
    • gds.alpha.nodeSimilarity.filtered.stream[.estimate], deprecated by gds.nodeSimilarity.filtered.stream[.estimate]
    • gds.alpha.nodeSimilarity.filtered.write[.estimate], deprecated by gds.nodeSimilarity.filtered.write[.estimate]
  • Deprecating gds.alpha.closeness.harmonic procedures
    • gds.alpha.closeness.harmonic.stream, deprecated by gds.closeness.harmonic.stream
    • gds.alpha.closeness.harmonic.write, deprecated by gds.closeness.harmonic.write
  • Deprecating gds.beta.graph.relationships procedures
    • `gds.beta.graph.relati...
Read more

Graph Data Science 2.4.6

15 Sep 14:53
Compare
Choose a tag to compare

neo4j-graph-data-science-2.4.6

New features

  • Added compatibility with Neo4j database 5.12.0.

Bug fixes

  • Fix a bug where HITS write and mutate procedures failed to parse configuration.

2.4.5

24 Aug 15:20
Compare
Choose a tag to compare

neo4j-graph-data-science-2.4.5

Bug fixes

  • Fix a bug in the triangle-related procedures with on graphs with multiple relationship types where triangles could be computed incorrectly. The following procedures are affected:
    • gds.triangleCount.[stream|mutate|write|stats]
    • gds.localClusteringCoefficient.[stream|mutate|write|stats]
    • gds.alpha.triangles