////
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*)
^|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.
|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.
|=========================================================
