////
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.
////

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/current/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-house-of-mirrors-cropped.png[width=200] |link:https://tinkerpop.apache.org/docs/x.y.z/tutorials/gremlin-language-variants/[Gremlin Language Variants] +
Instructs developers on the approach to building a Gremlin variant in their native programming language.
|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*)
|=========================================================

[[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.
|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 and Gryo.
|=========================================================
