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



Reply via email to