GithubHelp home page GithubHelp logo

mpetris / jcypher Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wolfgang-schuetzelhofer/jcypher

0.0 2.0 0.0 2.48 MB

Java access to Neo4J graph databases at multiple levels of abstraction

License: Apache License 2.0

Java 99.70% HTML 0.30%

jcypher's Introduction

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>3.6.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-2016 IoT-Solutions e.U.

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

jcypher's People

Contributors

asomov avatar mpetris avatar wolfgang-schuetzelhofer avatar wouterd avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.