Neo4j Graph Data Science Library
This repository hosts the sources of the Neo4j Graph Data Science (GDS) library. The GDS library is a plugin for the Neo4j graph database. The library consists of a number of graph algorithms, exposed as procedures and executed in Neo4j.
The Neo4j Graph Data Science library is the successor of the Neo4j Graph Algorithms library.
Downloading and installing releases
The latest releases of the Graph Data Science library can always be found at the Neo4j Download Center or the releases page. To install the plugin in Neo4j place the downloaded JAR file it in the plugins
directory of your Neo4j database and restart the database. For further instructions, see our documentation.
If you are using Neo4j Desktop you can simply add the Graph Data Science library on the plugins page of your project.
GDS version | Neo4j version | Java Version |
---|---|---|
GDS 1.0.x |
Neo4j 3.5.9 - 3.5.20 |
Java 1.8 |
GDS 1.1.x |
Neo4j 3.5.9 - 3.5.26 |
|
GDS 1.2.x |
Neo4j 4.0.0 – 4.0.6 |
Java 11 |
GDS 1.3.x |
Neo4j 4.0.0 - 4.0.9 |
|
Neo4j 4.1.0 - 4.1.5 |
||
GDS 1.4.x |
Neo4j 4.0.0 - 4.0.11 |
|
Neo4j 4.1.0 - 4.1.6 |
||
Neo4j 4.2.0 - 4.2.3 |
||
GDS 1.5.x |
Neo4j 4.0.0 - 4.0.11 |
|
Neo4j 4.1.0 - 4.1.6 |
||
Neo4j 4.2.0 - 4.2.3 |
||
GDS 1.6.x |
Neo4j 4.0.0 - 4.0.11 |
|
Neo4j 4.1.0 - 4.1.6 |
Note
|
Preview releases are not automatically made available in Neo4j Desktop. They need to be installed manually. |
Developing with the library
The Graph Data Science library is also available on Maven Central. If you want to include the Graph Data Science library in your own project you can simply add it to your project as a dependency.
For the most basic set of features, like graph loading and the graph representation, you need to include the core
module:
<dependency>
<groupId>org.neo4j.gds</groupId>
<artifactId>core</artifactId>
<version>1.5.0</version>
</dependency>
The algorithms are located in the algo-common
, algo
and alpha-algo
modules:
<!-- Contains the basic algorithm infrastructure -->
<dependency>
<groupId>org.neo4j.gds</groupId>
<artifactId>algo-common</artifactId>
<version>1.5.0</version>
</dependency>
<!-- Contains the productized algorithms -->
<dependency>
<groupId>org.neo4j.gds</groupId>
<artifactId>algo</artifactId>
<version>1.5.0</version>
</dependency>
<!-- Contains the alpha algorithms -->
<dependency>
<groupId>org.neo4j.gds</groupId>
<artifactId>alpha-algo</artifactId>
<version>1.5.0</version>
</dependency>
The procedures are located in the proc-common
, proc
and alpha-proc
modules :
<!-- Contains the basic procedure infrastructure -->
<dependency>
<groupId>org.neo4j.gds</groupId>
<artifactId>proc-common</artifactId>
<version>1.5.0</version>
</dependency>
<!-- Contains the productized algorithm procedures -->
<dependency>
<groupId>org.neo4j.gds</groupId>
<artifactId>proc</artifactId>
<version>1.5.0</version>
</dependency>
<!-- Contains the alpha algorithm procedures-->
<dependency>
<groupId>org.neo4j.gds</groupId>
<artifactId>alpha-proc</artifactId>
<version>1.5.0</version>
</dependency>
Building the library
The Neo4j Graph Data Science library uses the build tool Gradle
. Gradle is shipped with this repository using the Gradle Wrapper. This means you can simply run all Gradle commands by running ./gradlew TASK
from the repository root.
- Running tests
-
To run all tests you can simply run
./gradlew check
- Packaging the library
-
To package the library you can run
./gradlew packaging:shadowJar
. This will create the bundled JAR atpackaging/build/libs/neo4j-graph-data-science-VERSION.jar
. - Preview of the Documentation
-
To generate a preview you can run
./gradlew doc:preview
. This will build the documentation and make it available underhttp://localhost:8001/
. When you are done run./gradlew doc:stopPreview
to stop the web server.
Contributing
Please report any bugs, concerns, or other questions as GitHub issues to this repository.
For more information see the contribution guidelines for this project.
License
The Neo4j Graph Data Science library is licensed under the GNU Public License version 3.0. All content is copyright © Neo4j Sweden AB.