This is the same as #31, but targeting the tinkerpop branch.
This PR adds support for Tinkergraph, an in-memory reference implementation of a Tinkerpop3 enabled graph database system. This IS NOT meant to be a standalone backend for SylvaDB, instead it is a building block towards adding support for the new Titan when released, and will facilitate the use of any graphdb that uses the Gremlin Server for communication.
For connectivity it uses gremlinrestclient, a simple client based on requests. This client is pretty alpha, but it has a fairly comprehensive test suite.
This PR makes almost no changes to the existing code base. It adds a tinkergraph.GraphDatabase and tinkergraph.Q class to the existing implementations. These classes will be inherited from (and inevitably refactored) when adding support for Titan.
A few things to note:
Graph data is not persisted. Once the Server is stopped all node and edge data is lost.
Due to the lack of text searching capabilities, the Tinkergraph backend is not fully functional. For example, relationship creation must have exact text matches to work.
Because of this lack of functionality. The Tinkergraph backend is not run against the SylvaDB test suite, and does not work with reports, queries, and analytics (no dump implmented).
tinkergraph.GraphDatabase currently inherits from blueprints.GraphDatabase and therefore relies on the old pyblueprints API. In the future this will be upgraded to a more modern, lower level API.
In the near future, I plan to submit pull requests adding support for Titan, and Titan with Hadoop/Spark/Giraph graph analytics enabled. The Titan backend will eventually support all current SylvaDB apps.
This is the same as #31, but targeting the
tinkerpop
branch.This PR adds support for Tinkergraph, an in-memory reference implementation of a Tinkerpop3 enabled graph database system. This IS NOT meant to be a standalone backend for SylvaDB, instead it is a building block towards adding support for the new Titan when released, and will facilitate the use of any graphdb that uses the Gremlin Server for communication.
For connectivity it uses
gremlinrestclient
, a simple client based on requests. This client is pretty alpha, but it has a fairly comprehensive test suite.This PR makes almost no changes to the existing code base. It adds a
tinkergraph.GraphDatabase
andtinkergraph.Q
class to the existing implementations. These classes will be inherited from (and inevitably refactored) when adding support for Titan.A few things to note:
tinkergraph.GraphDatabase
currently inherits fromblueprints.GraphDatabase
and therefore relies on the old pyblueprints API. In the future this will be upgraded to a more modern, lower level API.In the near future, I plan to submit pull requests adding support for Titan, and Titan with Hadoop/Spark/Giraph graph analytics enabled. The Titan backend will eventually support all current SylvaDB apps.