////
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
////

:docinfo: shared

image::apache-tinkerpop-logo.png[width=500]

*x.y.z*

== TinkerPop Compendium

image::tinkerpop-reading.png[width=800,align="center"]

Apache TinkerPop™ has an extensive set of documentation that covers virtually all aspects of usage. This documentation
tends to fall into the following categories:

1. link:https://tinkerpop.apache.org/docs/x.y.z/reference[Reference Documentation] - The primary documentation for
TinkerPop which provides the most complete guide to TinkerPop usage. All other documentation tends to exist in support
of this reference guide.
2. <<tutorials,Tutorials>> - Brief but detailed explanations of specific technologies, patterns, use cases or best
practices related to TinkerPop.
3. <<publications,Publications>> - Blog posts, technical papers, presentation materials, etc.
4. <<developer,Developer>> - Documentation for contributors to TinkerPop or for providers (i.e. those who implement
TinkerPop's interfaces).
5. link:https://tinkerpop.apache.org/javadocs/x.y.z/full/[Javadoc] - The full Javadoc for all TinkerPop modules. There
is also an abridged version of the link:https://tinkerpop.apache.org/javadocs/x.y.z/core/[core] interfaces which may
be more convenient in some cases.
6. link:https://tinkerpop.apache.org/dotnetdocs/x.y.z/[.NET Docs] - The API documentation for Gremlin.Net.
7. link:https://tinkerpop.apache.org/jsdocs/x.y.z/[JSDoc] - The JSDoc for gremlin-javascript.
8. link:https://tinkerpop.apache.org/docs/x.y.z/upgrade/[Upgrade Documentation] - Notes related to upgrading from one
version of TinkerPop to the next. This document describes breaking changes, major new features and other important
information related to a particular version.

NOTE: Some of the documentation listed here leads to third-party web sites. Such documentation is supplemental to
Apache TinkerPop. Third-party documentation is marked as such in the listings below.

////
Note the "+" following the link in each table entry - it forces an asciidoc line break after the link
////

[[tutorials]]
=== Tutorials

[width="100%",cols="<.<3,<.^10",grid="none"]
|=========================================================
|image:gremlin-gym-cropped.png[] |link:https://tinkerpop.apache.org/docs/x.y.z/tutorials/getting-started/[Getting Started with TinkerPop] +
A gentle introduction to TinkerPop and the Gremlin traversal language that is divided into five, ten and fifteen minute tutorial blocks.
|image:gremlin-dashboard.png[] |link:https://tinkerpop.apache.org/docs/x.y.z/tutorials/the-gremlin-console/[The Gremlin Console] +
Provides a detailed look at The Gremlin Console and how it can be used when working with TinkerPop.
^|image:gremlin-anatomy.png[width=125] |link:https://tinkerpop.apache.org/docs/x.y.z/tutorials/gremlins-anatomy/[Gremlin's Anatomy] +
Identifies and explains the component parts of a Gremlin traversal.
^|image:gremlin-chef.png[width=125] |link:https://tinkerpop.apache.org/docs/x.y.z/recipes/[Gremlin Recipes] +
A collection of best practices and common traversal patterns for Gremlin.
|image:gremlin-lab-coat.png[width=200] |link:http://sql2gremlin.com/[Sql2Gremlin] +
Learn Gremlin using typical patterns found when querying data with SQL. (*external*)
^|image:gremlin-standing.png[width=125] |link:https://academy.datastax.com/resources/getting-started-graph-databases[Getting Started with Graph Databases] +
A brief overview of RDBMS architecture in comparison to graph, basic graph terminology, a real-world use case for graph,
and an overview of Gremlin. (*external*)
^|image:gremlin-compendium.png[width=200] |link:http://www.doanduyhai.com/blog/?p=13460[The Gremlin Compendium, minimum survival kit for any Gremlin user] +
A series of blog posts that examine the Gremlin language in the context of various graph traversal patterns. (*external*)
^|image:practical-gremlin.png[width=200] |link:http://kelvinlawrence.net/book/Gremlin-Graph-Guide.html[Practical Gremlin: An Apache TinkerPop Tutorial] +
A getting started guide for users of graph databases and the Gremlin query language featuring hints, tips and sample queries. (*external*)
^|image:gremlin-snippets.png[width=200] |link:http://stephen.genoprime.com[Gremlin Snippets] +
Advanced Gremlin query samples and topics with detailed explanation. (*external*)
|=========================================================

[[publications]]
=== Publications

Unless otherwise noted, all "publications" are externally managed:

* Mallette, S.P., link:https://www.slideshare.net/StephenMallette/gremlins-anatomy-88713465["Gremlin's Anatomy,"] DataStax User Group, February 2018.
* Rodriguez, M.A., link:https://www.slideshare.net/slidarko/gremlin-1013-on-your-fm-dial["Gremlin 101.3 On Your FM Dial,"] DataStax Support and Engineering Summits, Carmel California and Las Vegas Nevada, May 2017.
* Rodriguez, M.A., link:https://www.datastax.com/2017/03/graphoendodonticology["Graphoendodonticology,"] DataStax Engineering Blog, March 2017
* Rodriguez, M.A., link:http://www.datastax.com/dev/blog/gremlins-time-machine["Gremlin's Time Machine,"] DataStax Engineering Blog, September 2016.
* Rodriguez, M.A., link:http://www.slideshare.net/slidarko/gremlins-graph-traversal-machinery["Gremlin's Graph Traversal Machinery,"] Cassandra Summit, September 2016.
* Rodriguez, M.A., link:http://www.datastax.com/dev/blog/the-mechanics-of-gremlin-olap["The Mechanics of Gremlin OLAP,"] DataStax Engineering Blog, April 2016.
* Rodriguez, M.A., link:http://www.slideshare.net/slidarko/quantum-processes-in-graph-computing["Quantum Processes in Graph Computing,"] GraphDay '16 Presentation, Austin Texas, January 2016. [video presentation]
* Rodriguez, M.A., Watkins, J.H., link:http://arxiv.org/abs/1511.06278["Quantum Walks with Gremlin,"] GraphDay '16 Proceedings, Austin Texas, January 2016.
* Rodriguez, M.A., "(Keynote): link:http://www.slideshare.net/slidarko/acm-dbpl-keynote-the-graph-traversal-machine-and-language[The Gremlin Graph Traversal Machine and Language,"] ACM Database Programming Language Conference Presentation, October 2015.
* Rodriguez, M.A., link:http://arxiv.org/abs/1508.03843["The Gremlin Graph Traversal Machine and Language,"] ACM Database Programming Languages Conference Proceedings, October 2015.
* Mallette, S.P., link:http://www.slideshare.net/StephenMallette/tinkerpopfinal["What's New In Apache TinkerPop?,"] Cassandra Summit, September 2015.
* Rodriguez, M.A., Kuppitz, D., link:http://www.datastax.com/dev/blog/the-benefits-of-the-gremlin-graph-traversal-machine["The Benefits of the Gremlin Graph Traversal Machine,"] DataStax Engineering Blog, September 2015.
* Rodriguez, M.A., Kuppitz, D., link:http://www.slideshare.net/slidarko/the-gremlin-traversal-language["The Gremlin Graph Traversal Language,"] 2015 NoSQLNow Conference, August 2015.
* Rodriguez, M.A., Kuppitz, D., Yim, K., link:http://www.datastax.com/dev/blog/tales-from-the-tinkerpop["Tales from the TinkerPop,"] DataStax Engineering Blog, July 2015.

[[developer]]
=== Developer

[width="100%",cols="<.<3,<.^10",grid="none"]
|=========================================================
|image:business-gremlin.png[width=200] |link:https://tinkerpop.apache.org/docs/x.y.z/dev/developer/[Contributors] +
Provides information on ways to contribute to TinkerPop as well as details on building the project and other specific information for contributors.
|image:tinkerpop-enabled.png[width=200] |link:https://tinkerpop.apache.org/docs/x.y.z/dev/provider/[Providers] +
Documentation for providers who implement the TinkerPop interfaces, develop plugins or drivers, or provide other third-party libraries for TinkerPop. It also include information on semantics of the Gremlin language itself.
|image:gremlin-io2.png[width=200] |link:https://tinkerpop.apache.org/docs/x.y.z/dev/io/[IO Reference] +
Reference Documentation for providers and users of the various IO formats that TinkerPop has: GraphML, GraphSON, GraphBinary and Gryo.
|image:gremlin-explorer-old-photo.png[width=200] |link:https://tinkerpop.apache.org/docs/x.y.z/dev/future/[Future] +
A roadmap and catalog of ideas for discussion and future development.
|=========================================================
