So:
Here's a quick, unstructured, randomized review of TinkerPop vs. the AtomSpace.
* There are many similarities. For example, both tinkerpop and the atomspace have a key-value store per vertex/edge. Tinkerpop edges have valency-2 (one vertex at each end of the edge) and are untyped. Atomspace edges have any valency and are typed. (an atomspace edge aka link, can have two vertexes in it .. or 1 or 3 or 0 or 23... also, a link can contain links. The atomspace stores hypergraphs.)
* Tinkerpop4, when it's available, will be hostable by "any" suitable database platform. The AtomSpace has already played in this area: an unsuccessful hosting on memcachedb, a successful hosting on postgres, an unsuccessful one on hypertable, an unsuccessful one on neo4j. The failure reasons are highly variable: memcachedb was too slow. The hypertable developer fundamentally misunderstood the problem. neo4j was too slow (had too large a communications overhead).
* Both the atomspace and tinkerpop4 benefit from underlying DB technology: Postgres is highly scalable, yay! Someday, Atomspace will have an Apache Ignite backend, which is also highly scalable. Yay!
* Tinkerpop has a MUCH larger development community than the AtomSpace. Which means that they've done stuff long ago that are still in planning stages for us. For example, "the property graph model", which the Atomspace needs but doesn't have (We have real customers for this: the AGI-BIO guys want this! No one is working on it!) (So, for example, key-value pairs are permission-based; AGI-bio wants to overload values, based on the permissions that a given user has, so e.g. there is a read-only version of genomic data, and multiple read-write layers on top of it, that different researchers update. Someone needs to work on this!)
* The Gremlin traversal language is almost exactly like a an atomspace pattern with a single clause. There is no concept of a multi-clause traversal in Gremlin.
After this, the differences between the two compound and diverge.
* The Gremlin traversal language can be compiled to bytecode, and shipped off to be executed remotely. Could we do something similar? Yeah, I guess. But its never been the goal of the atomspace to be a generic wrapper on top of existing OLAP/OLTP systems, so we've never given this much thought.
My biggest question/frustration:
How can we increase the user-base for the AtomSpace? It's kind of frustrating that the adoption rate for the AtomSpace remains low, even as graph databases become ever more popular. It feels like we're getting left in the dust, and yet, whenever I look around, it feels like we're two steps ahead of everyone else. So I can't figure out if we're winning or loosing. Increasing adoption would really really help...
-- Linas