Hello,
My name is Marko A. Rodriguez and am a co-founder of TinkerPop
(http://tinkerpop.com). There has been positive pressure on us (both
internally and externally) to move TinkerPop to The Apache Foundation. This
email contains our proposal and I, on behalf of TinkerPop, thank you for
spending your time reading it.
Take care,
Marko.
http://markorodriguez.com
------------------------------------
A. Abstract
TinkerPop is a graph computing framework written in Java --
http://tinkerpop.com. TinkerPop started in 2009 and is currently in the
milestone series of 3.0.0. Graph system vendors such as in-memory graph
libraries, OLTP graph databases, and OLAP graph processors can provide a
TinkerPop implementation
(http://markorodriguez.com/2013/01/09/on-graph-computing/). Once the core
TinkerPop interfaces are implemented, the underlying graph system can be
queried using the graph traversal language Gremlin. TinkerPop was designed
to be used at any scale and as such, can be leveraged by both single-server
and multi-machine compute clusters. For many, TinkerPop is seen as the JDBC
of the graph computing community
(http://en.wikipedia.org/wiki/Java_Database_Connectivity).
B. Proposal
Since its inception in 2009, TinkerPop has been open source, free to use.
Initially the license was BSD, but as of TinkerPop3, the license is Apache2.
The TinkerPop team is composed of developers as well as representatives from
numerous graph system vendors
(http://www.tinkerpop.com/docs/3.0.0-SNAPSHOT/#tinkerpop-contributors).
TinkerPop has done its best to remain vendor agnostic and works closely with
vendors to ensure that the constructs within TinkerPop are able to
accommodate the requirements of the underlying graph system. To date, over
12 graph system vendors provide TinkerPop implementations. We believe that
by joining The Apache Foundation, our vendors, users, and contributors will
feel more comfortable in terms of legal protected, in terms of
wider-adoption, and in terms of project stability.
C. Background
TinkerPop was founded in 2009 and has had steady, active development since.
Over the years, the Gremlin query language within TinkerPop has been adopted
by various JVM languages and as such, there exists Gremlin-Groovy,
Gremlin-Scala, Gremlin-Clojure, Gremlin-JavaScript, and the like. In many
ways, Gremlin is seen as a traversal language style that can be readily
adopted by developers --- on and off the JVM. TinkerPop is not bound to the
JVM in that developers wishing to interact with a TinkerPop-enabled graph
system can leverage Gremlin Server which provides "over the wire"
communication as well as the entry point for non-JVM language bindings.
TinkerPop is being used is production graph-based applications around the
world and is only getting better with age.
D. Rationale
The graph computing space has grown over the years to encompass numerous
graph database and graph processing systems. TinkerPop was created as a
unifying framework for interoperability, language standardization, and data
model standardization. This framework makes it simple to "plug and play"
the back-end graph implementation without affecting the developer's code.
This is analogous to the way in which JDBC allows users to swap relational
databases while keeping the same programming interface. TinkerPop also
brings together OLTP systems (graph databases) and OLAP systems (graph
processors) by providing a single query language, Gremlin, for executing
graph algorithms transparently over either type of system. Finally,
TinkerPop unifies single-machine systems and distributed systems, presenting
an identical user experience within the boundaries of the computational
space and time constraints of the underlying graph system.
E. Initial Goals
The goal of this proposal is to migrate TinkerPop to The Apache Foundation
to 1.) get more exposure to the project and 2.) legally protect the
developers and contributors of TinkerPop.
F. Current Status
TinkerPop is planning to release TinkerPop 3.0.0.GA early 2015 -- January or
February. We would like to release TinkerPop 3.0.0.GA under The Apache
Foundation.
G. Meritocracy
Anyone is welcome to join TinkerPop as a contributor. If an individual
provides successful code updates, documentation updates, etc. then they are
asked to join TinkerPop contributors. Once inside TinkerPop, they are able
to voice their opinions/thoughts on the direction of the project. Moreover,
TinkerPop actively seeks vendors who leverage TinkerPop in their offering to
place a representative on TinkerPop contributors who can speak on behalf of
their organization as it relates to the requirements of their graph system.
Every year or so, we list inactive members and request their permission to
purge them from TinkerPop contributors. In this way, we try and keep the
TinkerPop contributors to the most active, participating members.
H. Community
There are 25 TinkerPop contributors which, of those, 12 are representatives
from the various graph system vendors in the market today. The TinkerPop
mailing list has over 1500+ subscribers with a flow of approximately 10
emails a day
(https://groups.google.com/forum/#!forum/gremlin-users).
I. Core developers
The primary developers are Marko A. Rodriguez (http://markorodriguez.com)
and Stephen Mallette (http://stephen.genoprime.com/). Over the years,
numerous individuals have come and gone from TinkerPop. Other significant
contributors include Peter Neubauer, Joshua Shinavier, James Thornton,
Matthias Bröcheler, Daniel Kuppitz, Bryn Cooke, and others. Note that there
are numerous individuals that participate in the TinkerPop ecosystem by
providing language bindings and system implementations. While not
contributing to the core codebase per se, they support TinkerPop via their
software and lecture outreach.
J. Alignment
TinkerPop is licensed Apache2. The OLAP reference implementation that
distributes with TinkerPop is based on Hadoop (http://hadoop.apache.org) and
Giraph (http://giraph.apache.org). There has been a push from vendors and
commercial organizations interested in ensuring TinkerPop has the legal
support of a software foundation. We believe The Apache Foundation to be a
great home for TinkerPop.
K. Known Risks & Abandoned projects
TinkerPop is currently at TinkerPop 3.0.0.M6. By joining The Apache
Foundation, there is a significant amount of code and time that has passed
since TinkerPop's inception. However, we have done our best to secure CLAs
from contributors and have never gotten into a legal or political issue.
L. Inexperience with Open Source
The primary developers of TinkerPop have been providing TinkerPop source and
releases open source and in full public view since 2009 via both our GitHub
repository and our public mailing lists. We pride ourselves in professional
software, documentation, and aesthetics. With its integration to numerous
graph systems in the market, TinkerPop is truly a masterpiece in a open
source technology --- working with both open source and commercial entities
to ensure a solid, respected project.
M. Homogeneous Developers
The contributors to TinkerPop run the full gamut of software engineering
expertise. From low-level data serialization to high-level server
interactions, TinkerPop has contributors able to work at the requisite
level. The codebase is complex as it deals with numerous area of software
engineering including: distributed computing, open standards, language
bindings, query language compilers, OLTP databases, OLAP processors, etc.
Over the years, we have gathered a significant level of talent and as a
whole, have all grown as engineers.
N. Reliance on Salaried Developers
TinkerPop is open source and no individual is paid for their contributions
except for our logo designer. All the logos and documentation graphics are
released Apache2.
O. Relationships with Other Apache Projects
TinkerPop currently leverages Hadoop, Giraph, and in the near future, will
integrate with Spark. Internally, the project leverages Maven3, Apache
Configuration, and Apache Commons.
P. An Excessive Fascination with the Apache Brand
TinkerPop is primarily interested in The Apache Foundation for the legal
support and protection it can offer our developers and users. Numerous large
software organizations have urged TinkerPop to join a foundation so that
they may more easily provide contributors from their organization and
moreover, maintain confidence in building products atop TinkerPop. With that
said, TinkerPop does respect The Apache Foundation brand and believes that
by joining The Apache Foundation, we will further boost the recognition and
prestige of our product. Finally, note that a TinkerPop book is slated for
2015 (http://www.tinkerpopbook.com/). Combining The Apache Foundation and a
long awaited book should ensure a new uptake of contributors, users, and
promoters.
Q. Documentation
TinkerPop takes pride in its documentation:
AsciiDoc: http://www.tinkerpop.com/docs/3.0.0-SNAPSHOT/
JavaDoc (core): http://www.tinkerpop.com/javadocs/3.0.0-SNAPSHOT/core/
JavaDoc (full): http://www.tinkerpop.com/javadocs/3.0.0-SNAPSHOT/full/
R. Initial Source
TinkerPop is currently hosted on GitHub.
https://github.com/tinkerpop/tinkerpop3
S. Source & Intellectual Property Submission Plan
There are no known claims to violations of intellectual property.
T. External Dependencies
TinkerPop relies on open source and commercial vendors. We maintain
representatives from the various graph system projects on TinkerPop
contributors. These vendors, in turn, provide TinkerPop adaptors to their
technology and in fact, some of them provide TinkerPop as the sole interface
to their system.
U. Cryptography
None.
V. Required Resources
The only resource we see moving forward and if Apache wishes, is to fund our
logo designer when we need a logo. We currently spend about $500 a year on
logos. Please look through our documentation to see how much we love giving
character to our work. If this is not something that Apache can do, then we
will continue funding the creation of our artwork as we have done in the
past.
W. Mailing Lists
We currently have 2 mailing lists:
Gremlin-Users (public user forum):
https://groups.google.com/forum/#!forum/gremlin-users
TinkerPop-Contributors (private contributors forum): <private>
X. Subversion Directory
TinkerPop uses GitHub for its source control.
Y. Git Repository
TinkerPop's GitHub account is: https://github.com/tinkerpop/tinkerpop3
Z. Issue Tracking
TinkerPop uses GitHub's issue tracker for tracking issues:
https://github.com/tinkerpop/tinkerpop3/issues
AA. Initial Committers
TinkerPop's contributors are listed here and all those that provide source
code commits have signed a CLA.
http://www.tinkerpop.com/docs/3.0.0.M6/#_graph_developers
BB. Affiliations
None.
CC. Sponsors
IBM (Kelvin Lawrence and Todd Moore) were the primary proponents of pushing
TinkerPop to join The Apache Foundation. The vendors that support TinkerPop
are listed here: http://www.tinkerpop.com/docs/3.0.0.M6/#_graph_vendors