The TinkerPop stack provides a foundation for building high-performance graph applications of any size, whether you are just modeling some data on your local laptop or you are building massive applications to handle trillion edge graphs scaled across a cluster of computers. The entire stack is open source, BSD Licensed.
Blueprints is a property graph model and the foundation of the stack. It enables a database to hook into the entire stack by simply creating a set of classes that implement the Blueprints interface.
Pipes is a dataflow framework that enables the splitting, merging, filtering, and transformation of data from input to output. Computations are evaluated in a memory-efficient, lazy fashion.
Frames exposes the elements of a Blueprints graph as Java objects. Instead of writing software in terms of vertices and edges, with Frames, software is written in terms of domain objects and their relationships to each other.
Furnace is a property graph algorithms package. It provides implementations for standard graph analysis algorithms that can be applied to property graphs in a meaningful ways.
This book provides a brief introduction to graphs and a comprehensive guide to building applications with the TinkerPop stack. You'll learn how to use new open-source technologies to build real-time, data-driven graph applications, like the ones that power Facebook, Twitter, and Google.
The book is divided into 8 parts:
TinkerPop supports multiple graph databases, and each database excels in different areas so we will discuss and compare the different database options and provide examples of working with each, including: Neo4j, Titan, OrientDB, DEX, TinkerGraph, and more.
We are writing the book to be language agnostic. The TinkerPop stack is written in Java, but the Rexster server allows you to use any programming language to connect to the stack.
Example applications will be presented in Python because Python is concise and the closest thing to executable pseudocode so many can read it even if they are not familiar with the language.
However, most of the code in the book will be presented in Gremlin-Groovy (the original Gremlin) -- think of Gremlin as a domain-specific language for graphs you use in harmony with your native programming language.
The chapters on "Rexster Drivers & Client Libraries" and "Gremlin Variants" will provide language-specific examples. There are 7 Gremlin variants in various stages of development:
* If you are interested in helping develop Gremlin-Python or Gremlin-Ruby (or any other implementation currently in development), please post to the Gremlin Users Group.