Java access to Neo4J graph databases at multiple levels of abstraction
Clone or download
Permalink
Failed to load latest commit information.
src prepared for release 4.1.0 Sep 24, 2018
.classpath support neo4j 3.2.2 Jul 31, 2017
.gitignore added ide specific files to gitignore Apr 29, 2016
.project initial commit May 5, 2014
LICENSE initial commit May 5, 2014
NOTICE
README.md prepared for release 4.1.0 Sep 24, 2018
TODO.txt
pom.xml prepared for release 4.1.0 Sep 24, 2018
release_notes.md changed release notes Sep 24, 2018

README.md

JCypher Project Homepage

Introduction

JCypher provides seamlessly integrated Java access to graph databases (Neo4J) at different levels of abstraction. Starting top-down:

  • At the topmost level of abstraction, JCypher allows to map complex business domains to graph databases. You can take an arbitrarily complex graph of domain objects (pojos (plain old java objects)) and store it in a straight forward way into a graph database for later retrieval. You do not need to modify your domain object classes in any way. You even do not add annotations. Moreover JCypher provides a default mapping so you don't have to write a single line of mapping code or of mapping configuration.

  • At the same level of abstraction 'Domain Queries' provide the power and expressiveness of queries on a graph database, while being formulated on domain objects or on types of domain objects respectively. The true power of Domain Queries comes from the fact, that the graph of domain objects is backed by a graph database.

  • At the next lower level of abstraction, access to graph databases is provided based on a generic graph model. The model consists of nodes, relations, and paths, together with properties, labels, and types. While simple, the model allows to easily navigate and manipulate graphs.

  • At the bottom level of abstraction, a 'Native Java DSL' in form of a fluent Java API allows to intuitively and comfortably formulate queries against graph databases. The DSL (Domain Specific Language) is based on the CYPHER language. Hence the name JCypher. (The Cypher Language is developed as part of the Neo4J Graph Database by 'Neo Technology'). The DSL provides all the power and expressiveness of the Cypher language.

  • Additionally, JCypher provides database access in a uniform way to remote as well as to embedded databases (including in-memory databases).

Documentation

Please have a look at: https://github.com/Wolfgang-Schuetzelhofer/jcypher/wiki for a more comprehensive documentation. There you will also find code snippets, references to samples, and tips on how to get started with JCypher. Furthermore you can find a roadmap and you are informed about future directions of JCypher.

Additionally, a distinct samples project can be found at: https://github.com/Wolfgang-Schuetzelhofer/jcypher_samples.

For more information about Neo4J have a look at: http://www.neo4j.org/
For more information about the CYPHER language have a look at: http://docs.neo4j.org/chunked/stable/cypher-query-lang.html

Setup

You may add JCypher as a Maven dependency:

<dependency>
  <groupId>net.iot-solutions.graphdb</groupId>
   <artifactId>jcypher</artifactId>
   <version>4.1.0</version>
</dependency>

JCypher on Maven Central

Can be found here.

Release Notes (since 2.1.0)

Please look here.

License & Copyright

Copyright (c) 2014-2018 IoT-Solutions e.U.

License: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/