Entity-State model managed by Neo4j Procedures
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github
docs
gradle/wrapper
src
.gitignore
.travis.yml
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md
build.gradle
gradlew
gradlew.bat
settings.gradle

README.md

Build Status Dependency Status GitHub version

Neo4j Versioner Core

Neo4j Versioner Core is a collection of procedures, aimed to help developers to manage the Entity-State model, by creating, updating and querying the graph.

License

Apache License 2.0

Installation

  1. Download the latest release;
  2. Put the downloaded jar file into $NEO4J_HOME/plugins folder;
  3. Start/Restart Neo4j.

About

Neo4j Versioner Core has been developed by Alberto D'Este and Marco Falcier.

It's based on the following data model:

Data Model

Examples

A little example on how you can add a State node to a given Entity:

MATCH (d:Device) WITH d CALL graph.versioner.update(d, {context:'some details'}, 'Error', 593920000000) YIELD node RETURN node

And how to retrieve the current State:

MATCH (d:Device) WITH d CALL graph.versioner.get.current.state(d) YIELD node RETURN node

If you want to use Neo4j Versioner Core procedures on your procedures/functions you simply create a new instance:

Optional<Init> result = new InitBuilder().withDb(db).withLog(log).build();
result.ifPresent(a -> a.init("EntityLabel", entityProps, stateProps, additionalLabel, date));

Full documentation

You can find the full documentation here.

Feedback

We would appreciate your feedback about our Versioner Core, how to improve and fix (we hope not so many! 🙈) any bad things. Say yours in the issue section.

Buy us a coffee ☕️

This project is developed during our free time, and our free time is mostly during evening/night! So coffee is really helpful during our sessions 😅. If you want to help us with that, you can buy us some ☕️ thanks to PayPal!