+1 for using Gremlin! Do you know of any python implementations of it?
+1 for using Gremlin! Do you know of any python implementations of it?
Note that Marko is the creator of Gremlin :)
There are Gremlin implementations in various stages of development for almost every major JVM language:
Gremlin-Java (base implementation) - https://github.com/tinkerpop/gremlin/wiki/Using-Gremlin-thro...
Gremlin-Groovy (original) - https://github.com/tinkerpop/gremlin/wiki/Using-Gremlin-thro...
Gremlin-JavaScript - https://github.com/entrendipity/gremlin-js
Gremlin-Clojure - https://github.com/zmaril/ogre
Gremlin-Scala - https://github.com/mpollmeier/gremlin-scala
Within the next year (before the TinkerPop book comes out), it would be cool to have all the languages covered, including Gremlin-Jython and Gremlin-JRuby.
Gremlin-Java and Gremlin-Groovy are maintained by TinkerPop.
Gremlin-JavaScript, Gremlin-Clojure, and Gremlin-Scala are being developed/maintained by community members.
To create a Gremlin implementation, you essentially wrap Gremlin-Java in the target language's idiomatic style.
If you are interested in helping develop Gremlin-Jython or Gremlin-JRuby (or any other implementation currently in development), please post to the Gremlin Users Group (https://groups.google.com/forum/?fromgroups=#!forum/gremlin-...).
Right now most people use Gremlin-Groovy (it's the original) regardless of what language they're developing in (think of Gremlin as a domain-specific language like SQL you use in conjunction with your primary language).
For example, Bulbs (http://bulbflow.com) is a Python library I wrote that supports Rexster, Neo4jServer, and Titan. In Bulbs, you edit Gremlin scripts in Groovy text files, and when you create a Python Graph object, Bulbs sources your Groovy files and caches the Gremlin scripts in a library so they are readily available for when you want to execute them on the server.
Would be nice if other Groovy-based products like Gradle enabled a Scala and/or Clojure frontend to appeal to us who are fussier about what shell language we use.
Over the next month there will be a series of blog posts detailing the performance numbers and the key concepts behind Titan's design and architecture.
This blog post from August 2012 (http://thinkaurelius.com/2012/08/06/titan-provides-real-time...) has some details about early tests from Titan 0.1, but notice that today's Titan 0.3 numbers dwarf the 0.1 numbers (the details of how this was accomplished will be explained in the upcoming blog posts).