Hello,
The last two days I’ve been working to get TinkerPop4’s project structure
spec’d (see README):
https://github.com/apache/tinkerpop/tree/tp4
There are three main sub-modules:
gremlin-data: operators (“steps”) to process different data structures.
gremlin-machines: implementations of the Gremlin traversal machine.
gremlin-languages: implementations of the Gremlin traversal language.
Given that we have 3-degrees of freedom in TinkerPop4, I decided to make use of
sub-sub-…-modules in Maven so that our sub-projects are organized better than
what we have in TinkerPop3.
With respects to the critiques on gremlin-users@, you will note that:
* gremlin-graph will provide what we currently know to be Gremlin in
TinkerPop3.
* gremlin-pipes will provide what we currently know as
Traversal/Step/etc. in TinkerPop3.
gremlin-data: There is no need for us to add more gremlin-data sub-modules
until we feel comfortable with where this is all going. Moreover, I think we
stick with all our current concepts of traversal, traverser regardless of
“graph” application. Traversers traverse data structures. Thus, it will still
be called the Gremlin traversal machine and Gremlin traversal language.
gremlin-machines: One of the major problems with TinkerPop3 is that we mixed
the description of the computation with the computation itself (i.e.
Traversal). This caused various problems with Gremlin executing on other
engines such as Giraph, Spark, etc. (hence the introduction of
TraversalMatrix). My goal is to separate these concepts such that it will be
much more natural and less error prone to have other execution engines like
RxJava, Flink, Akka, Spark, etc. executing Gremlin.
gremlin-languages: I think TinkerPop3’s language work is pretty top notch.
Besides some refactoring of bytecode, I/O, and “traversal sources," what we
have in TinkerPop3, will map over to TinkerPop4 pretty naturally.
*** Note that I haven’t figured out how gremlin-console and gremlin-io (server
+ serialization) will play out yet so I haven’t added them to the README.
My next steps are to get gremlin-graph and gremlin-pipes working with the
concepts from the TinkerPop4 and Stream Ring papers.
Take care,
Marko.
http://markorodriguez.com