You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2022/01/13 11:58:42 UTC

svn commit: r1896987 [17/17] - in /tinkerpop/site: ./ css/ fonts/ gremlint/ gremlint/static/css/ gremlint/static/js/ img/ img/community/ img/download/ img/gremlin/ img/providers/ img/social/ img/use-cases/ js/

Modified: tinkerpop/site/providers.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/providers.html?rev=1896987&r1=1896986&r2=1896987&view=diff
==============================================================================
--- tinkerpop/site/providers.html (original)
+++ tinkerpop/site/providers.html Thu Jan 13 11:58:40 2022
@@ -5,9 +5,7 @@ this work for additional information reg
 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.
@@ -15,517 +13,593 @@ See the License for the specific languag
 limitations under the License.
 -->
 <!DOCTYPE html>
-<!--
-       \,,,/
-       (o o)
-  -oOOo-(3)-oOOo-
--->
-<html lang="en">
-   <head>
-      <meta charset="utf-8">
-      <meta http-equiv="X-UA-Compatible" content="IE=edge">
-      <meta name="viewport" content="width=device-width, initial-scale=1">
-      <title>Apache TinkerPop</title>
-      <meta name="description" content="Apache TinkerPop: A Graph Computing Framework">
-      <meta name="author" content="Apache TinkerPop">
-      <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
-      <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
-      <!--[if lt IE 9]>
-      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
-      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
-      <![endif]-->
-      <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" type="text/css">
-      <script src="js/jquery-1.11.0.min.js" type="text/javascript"></script>
-      <script src="js/bootstrap-3.3.5.min.js" type="text/javascript"></script>
-      <link href="css/carousel.css" rel="stylesheet" type="text/css">
-      <link href="css/prism.css" rel="stylesheet" type="text/css"/>
-      <link href="css/bootstrap-mods.css" rel="stylesheet" type="text/css"/>
-      <!-- Le fav and touch icons -->
-      <link rel="shortcut icon" href="img/favicon.ico">
-      <link rel="apple-touch-icon" href="img/apple-touch-icon.png">
-      <link rel="apple-touch-icon" sizes="72x72" href="img/apple-touch-icon-72x72.png">
-      <link rel="apple-touch-icon" sizes="114x114" href="img/apple-touch-icon-114x114.png">
-   </head>
-   <body>
-      <script src="js/prism.js"></script>     
-      <!---------------->
-      <!---------------->
-      <!---------------->
-      <!-- NAVIGATION -->
-      <!---------------->
-      <!---------------->
-      <!---------------->      
-      <nav class="navbar navbar-inverse navbar-static-top" role="navigation">
-         <!-- Brand and toggle get grouped for better mobile display -->
-         <div class="navbar-header">
-            <button type="button" class="navbar-toggle" data-toggle="collapse"
-               data-target="#navbar-collapse-1">
-            <span class="sr-only">Toggle navigation</span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            </button>
-            <a class="navbar-brand" href="https://tinkerpop.apache.org"><font face="american typewriter"><b>Apache TinkerPop</b></font></a>
-         </div>
-         <div id="navbar-collapse-1" class="collapse navbar-collapse">
-            <ul class="nav navbar-nav">
-               <li><a href="downloads.html">Download</a></li>
-               <li class="dropdown">
-                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">
-                  Documentation <b class="caret"></b>
-                  </a>
-                  <ul class="dropdown-menu">
-                     <li class="dropdown-header">Latest: 3.5.1 (19-July-2021)</li>
-                     <li><a href="https://tinkerpop.apache.org/docs/current">TinkerPop 3.5.1</a></li>
-                     <li><a href="https://tinkerpop.apache.org/docs/current/upgrade">Upgrade Information</a></li>
-                     <li><a href="https://tinkerpop.apache.org/javadocs/current/core/">Core Javadoc API</a></li>
-                     <li><a href="https://tinkerpop.apache.org/javadocs/current/full/">Full Javadoc API</a></li>
-                     <li role="separator" class="divider"></li>
-                     <li class="dropdown-header">Maintenance: 3.4.12 (19-July-2021)</li>
-                     <li><a href="https://tinkerpop.apache.org/docs/3.4.12/">TinkerPop 3.4.12</a></li>
-                     <li><a href="https://tinkerpop.apache.org/javadocs/3.4.12/core/">Core Javadoc API</a></li>
-                     <li><a href="https://tinkerpop.apache.org/javadocs/3.4.12/full/">Full Javadoc API</a></li>
-                     <li role="separator" class="divider"></li>
-                     <li><a href="https://tinkerpop.apache.org/docs/">Documentation Archives</a></li>
-                     <li><a href="https://tinkerpop.apache.org/javadocs/">Javadoc Archives</a></li>
-                     <li role="separator" class="divider"></li>
-                     <li><a href="https://tinkerpop.apache.org/docs/current/index.html#publications">Publications</a></li>
-                  </ul>
-               </li>
-               <li class="dropdown">
-                  <a class="dropdown-toggle" data-toggle="dropdown" href="#">Tutorials<b class="caret"></b></a>
-                  <ul class="dropdown-menu">
-                     <li><a href="gremlin.html">Introduction to Gremlin</a></li>
-                     <li><a href="https://tinkerpop.apache.org/docs/current/tutorials/getting-started/">Getting Started</a></li>
-                     <li><a href="https://tinkerpop.apache.org/docs/current/tutorials/the-gremlin-console/">The Gremlin Console</a></li>
-                     <li><a href="https://tinkerpop.apache.org/docs/current/recipes/">Gremlin Recipes</a></li>
-                     <li><a href="https://tinkerpop.apache.org/docs/current/tutorials/gremlins-anatomy/">Gremlin's Anatomy</a></li>
-                     <li role="separator" class="divider"></li>
-                     <li><a href="http://kelvinlawrence.net/book/Gremlin-Graph-Guide.html">Book: Practical Gremlin by Kelvin Lawrence</a></li>
-                     <li><a href="http://sql2gremlin.com/">SQL2Gremlin</a></li>
-                  </ul>
-               </li>
-               <li class="dropdown">
-                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">
-                  Community <b class="caret"></b>
-                  </a>
-                  <ul class="dropdown-menu">
-                     <li><a href="https://groups.google.com/group/gremlin-users">User Mailing List</a></li>
-                     <li><a href="https://lists.apache.org/list.html?dev@tinkerpop.apache.org">Developer Mailing List</a></li>
-                     <li><a href="https://discord.gg/ndMpKZcBEE" target="_blank"><img src="img/discord_logo.png" class="nav-icon"/>Join us on Discord</a></li>
-                     <li><a href="https://issues.apache.org/jira/browse/TINKERPOP/">Issue Tracker</a></li>
-                     <li><a href="https://tinkerpop.apache.org/docs/current/dev/developer/#_contributing">Contributing</a></li>
-                     <li><a href="providers.html">Providers</a></li>
-                     <li><a href="index.html#committers">Project Committers</a></li>
-                     <li><a href="policy.html">Policies</a></li>
-                     <li role="separator" class="divider"></li>
-                     <li><a href="https://github.com/apache/tinkerpop/"><img src="img/gremlin-github.png" class="nav-icon"/>GitHub</a></li>
-                     <li><a href="https://twitter.com/apachetinkerpop">Twitter</a></li>
-                  </ul>
-               </li>
-               <li><a href="gremlint/">Gremlint</a></li>
-               <li class="dropdown">
-                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">
-                  Apache Software Foundation <b class="caret"></b>
-                  </a>
-                  <ul class="dropdown-menu">
-                     <li><a href="https://www.apache.org/">Apache Homepage</a></li>
-                     <li><a href="https://www.apache.org/licenses/">License</a></li>
-                     <li><a href="https://www.apache.org/events/current-event">Events</a></li>
-                     <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
-                     <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
-                     <li><a href="https://www.apache.org/security/">Security</a></li>
-                  </ul>
-               </li>
-            </ul>
-         </div>
-      </nav>
-<!--
-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
+<html lang=en>
+<head>
+    <meta charset=utf-8>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+    <link href="img/favicon.png" rel="shortcut icon"/>
+    <title>Apache TinkerPop</title>
+    <meta name="description" content="">
+    <meta name="keywords" content="">
+    <link href="css/bootstrap.min.css" rel="stylesheet">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css"
+          integrity="sha512-5A8nwdMOWrSz20fDsjczgUidUBR8liPYU+WymTZP1lmY9G6Oc7HlZv156XqnsgNUzTyMefFTcsFH/tnJE/+xBg=="
+          crossorigin="anonymous" referrerpolicy="no-referrer"/>
+    <link href="css/custome.css" rel="stylesheet">
+    <link href="css/responsive.css" rel="stylesheet">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.1/animate.css"
+          integrity="sha512-K2J6Yt6ElUYEMPcTr0wm555AAyiqkgYiUgPIW18FT88/aYSNDk0EvGjsln/TEu3ee/jaHf0xoXzFppSbBtUXbQ=="
+          crossorigin="anonymous" referrerpolicy="no-referrer"/>
+    <link rel="preconnect" href="https://fonts.googleapis.com">
+    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+    <link href="https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&display=swap" rel="stylesheet">
+</head>
+<body>
+<!-- header -->
+<div class="header">
+    <div class="container">
+        <nav class="navbar navbar-expand-lg  ">
+            <div class="container-fluid">
+                <a class="navbar-brand" href="index.html">
+                    <img src="img/logo.png" class="img-fluid" alt="img">
+                </a>
+                <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
+                        data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
+                        aria-expanded="false" aria-label="Toggle navigation">
+                    <span class="fa fa-bars"></span>
+                </button>
+                <div class="collapse navbar-collapse" id="navbarSupportedContent">
+                    <ul class="navbar-nav ms-auto mb-2 mb-lg-0">
+                        <li class="nav-item">
+                            <a class="nav-link active" aria-current="page" href="index.html">Home</a>
+                        </li>
+                        <li class="nav-item">
+                            <a class="nav-link" href="download.html">Download</a>
+                        </li>
+                        <li class="nav-item dropdown">
+                            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button"
+                               data-bs-toggle="dropdown" aria-expanded="false">
+                                Documentation
+                            </a>
+                            <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
+                                <li class="dropdown-header">Latest Documentation</li>
+                                <li><a href="https://tinkerpop.apache.org/docs/current" class="dropdown-item">Documentation
+                                    Index</a></li>
+                                <li><a href="https://tinkerpop.apache.org/docs/current/upgrade" class="dropdown-item">Upgrade
+                                    Information</a></li>
+                                <li><a href="https://tinkerpop.apache.org/javadocs/current/core/" class="dropdown-item">Core
+                                    Javadoc API</a></li>
+                                <li><a href="https://tinkerpop.apache.org/javadocs/current/full/" class="dropdown-item">Full
+                                    Javadoc API</a></li>
+                                <li>
+                                    <hr class="dropdown-divider">
+                                </li>
+                                <li><a href="https://tinkerpop.apache.org/docs/" class="dropdown-item">Documentation
+                                    Archives</a></li>
+                                <li><a href="https://tinkerpop.apache.org/javadocs/" class="dropdown-item">Javadoc
+                                    Archives</a></li>
+                                <li>
+                                    <hr class="dropdown-divider">
+                                </li>
+                                <li><a href="https://tinkerpop.apache.org/docs/current/index.html#publications"
+                                       class="dropdown-item">Publications</a></li>
+                            </ul>
 
-  http://www.apache.org/licenses/LICENSE-2.0
+                        </li>
+                        <li class="nav-item dropdown">
+                            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button"
+                               data-bs-toggle="dropdown" aria-expanded="false">
+                                Tutorials
+                            </a>
+                            <ul class="dropdown-menu" aria-labelledby="navbarDropdown1">
+                                <li><a href="gremlin.html" class="dropdown-item">Introduction to Gremlin</a></li>
+                                <li><a class="dropdown-item"
+                                       href="https://tinkerpop.apache.org/docs/current/tutorials/getting-started/">Getting
+                                    Started</a></li>
+                                <li><a class="dropdown-item"
+                                       href="https://tinkerpop.apache.org/docs/current/tutorials/the-gremlin-console/">The
+                                    Gremlin Console</a></li>
+                                <li><a class="dropdown-item" href="https://tinkerpop.apache.org/docs/current/recipes/">Gremlin
+                                    Recipes</a></li>
+                                <li><a class="dropdown-item"
+                                       href="https://tinkerpop.apache.org/docs/current/tutorials/gremlins-anatomy/">Gremlin's
+                                    Anatomy</a></li>
+                                <li>
+                                    <hr class="dropdown-divider">
+                                </li>
+                                <li><a class="dropdown-item"
+                                       href="http://kelvinlawrence.net/book/Gremlin-Graph-Guide.html">Book: Practical
+                                    Gremlin by Kelvin Lawrence</a></li>
+                                <li><a class="dropdown-item" href="http://sql2gremlin.com/">SQL2Gremlin</a></li>
+                            </ul>
 
-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.
--->
-<img src="img/tinkerpop-meeting-room.png" class="img-responsive" />
-<div class="container">
-   <div class="hero-unit" style="padding:10px">
-      <b><font size="5" face="american typewriter">Apache TinkerPop&trade;</font></b>
-      <p><font size="5">TinkerPop-Enabled Providers</font></p>
-   </div>
+                        </li>
+                        <li class="nav-item dropdown">
+                            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button"
+                               data-bs-toggle="dropdown" aria-expanded="false">
+                                Community
+                            </a>
+                            <ul class="dropdown-menu" aria-labelledby="navbarDropdown3">
+                                <li><a class="dropdown-item" href="https://groups.google.com/group/gremlin-users">User
+                                    Mailing List</a></li>
+                                <li><a class="dropdown-item"
+                                       href="https://lists.apache.org/list.html?dev@tinkerpop.apache.org">Developer
+                                    Mailing List</a></li>
+                                <li><a class="dropdown-item" href="https://discord.gg/ndMpKZcBEE" target="_blank"><img
+                                        src="img/discord_logo.png" class="nav-icon">Join us on Discord</a></li>
+                                <li><a class="dropdown-item" href="https://issues.apache.org/jira/browse/TINKERPOP/">Issue
+                                    Tracker</a></li>
+                                <li><a class="dropdown-item"
+                                       href="https://tinkerpop.apache.org/docs/current/dev/developer/#_contributing">Contributing</a>
+                                </li>
+                                <li><a class="dropdown-item" href="providers.html">Data System Support</a></li>
+                                <li><a class="dropdown-item" href="community.html">Languages and Tools</a></li>
+                                <li><a class="dropdown-item"
+                                       href="https://tinkerpop.apache.org/docs/current/dev/provider/#policies">Policies</a>
+                                </li>
+                                <li>
+                                    <hr class="dropdown-divider">
+                                </li>
+                                <li><a class="dropdown-item" href="https://github.com/apache/tinkerpop/"><img
+                                        src="img/github-logo.png" class="nav-icon">GitHub</a></li>
+                                <li><a class="dropdown-item" href="https://twitter.com/apachetinkerpop"><img
+                                        src="img/twitter-logo.png" class="nav-icon">Twitter</a></li>
+                            </ul>
+
+                        </li>
+
+                        <li class="nav-item">
+                            <a class="nav-link" href="https://tinkerpop.apache.org/gremlint/">Gremlint</a>
+                        </li>
+                        <li class="nav-item dropdown">
+                            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button"
+                               data-bs-toggle="dropdown" aria-expanded="false">
+                                Apache Software
+                            </a>
+                            <ul class="dropdown-menu" aria-labelledby="navbarDropdown4">
+                                <li><a class="dropdown-item" href="https://www.apache.org/">Apache Homepage</a></li>
+                                <li><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li>
+                                <li><a class="dropdown-item"
+                                       href="https://www.apache.org/events/current-event">Events</a></li>
+                                <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+                                </li>
+                                <li><a class="dropdown-item"
+                                       href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
+                                <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
+                            </ul>
+
+                        </li>
+
+                    </ul>
+                </div>
+            </div>
+        </nav>
+    </div>
 </div>
-<br/>
-<div class="container-fluid">
-   <div class="container">
-      <div class="row">
-         <div class="col-sm-10 col-md-10">
-            <p><a href="https://tinkerpop.apache.org">Apache TinkerPop</a> grows when 3<sup>rd</sup> party data systems and query languages utilize it. While Apache's distribution of TinkerPop
-               does provide production ready implementations and tools, it is ultimately the larger ecosystem of providers that ensure TinkerPop's widespread adoption.
-               There are two types of providers. The first are those that develop a (graph) database, (graph) processor, or (graph) analytics tool and want to
-               offer their users TinkerPop-specific graph computing features. The other type of provider are language designers that have a (graph) query language they
-               wish to have execute on the Gremlin traversal machine and thus, against any TinkerPop-enabled graph system.
-            </p>
-         </div>
-         <div class="col-sm-2 col-md-2">
-            <img src="img/peon-head.png" width="100px">
-         </div>
-      </div>
-   </div>
-   <div class="container">
-      <a name="data-system-providers"></a>
-      <h3>Data System Providers</h3>
-      <p>When a data system is TinkerPop-enabled, its users are able to model their domain as a graph and analyze that graph using the <a href="https://tinkerpop.apache.org/gremlin.html">Gremlin graph traversal language</a>. Furthermore, all
-         TinkerPop-enabled graph systems integrate with one another allowing providers to easily expand their system's offerings as well as allowing users to choose appropriate graph technology for their
-         application. Sometimes an application is best served by an in-memory, transactional graph database. Sometimes a multi-machine distributed graph database will do the job. Or perhaps the
-         application requires both a distributed graph database for real-time queries and, in parallel, a Big(Graph)Data processor for batch analytics.  Whatever the application's requirements, there
-         exists a TinkerPop-enabled graph system out there to meet its needs.
-      </p>
-      <div class="row">
-         <div class="col-sm-8 col-md-8">
-            At an abstract level, every data system is ultimately a "graph system" because every data system supports the representation of "things" (vertices) and their respective relationships
-            to one another (edges).  For instance, a <a href="https://en.wikipedia.org/wiki/Relational_database">relational database</a> may have a <em>people</em>-table, where the rows denote person vertices and the columns denote properties of those individuals
-            (e.g. their name and age). Moreover, that relational database may also have a <em>knows</em>-table, where two columns reference primary keys in the <em>people</em>-table and the remaining columns
-            denote properties of those relationships (e.g. creation timestamp, strength of friendship, etc.). TinkerPop enables any data system to expose its implicit graph structure within the
-            lexicon of vertices and edges. From there, what differentiates each TinkerPop-enabled system are the various time/space-tradeoffs that were made for representing their "graph" in-memory,
-            on-disk, and across a multi-machine compute cluster. TinkerPop users have the luxury of choosing a graph system based on those design choices that are important for their application.
-            Moreover, they only need to concern themselves with learning the Gremlin traversal language as every TinkerPop-enabled graph system supports Gremlin.
-         </div>
-         <div class="col-sm-4 col-md-4">
-            <img src="img/tinkerblocks.png" style="width:100%">
-         </div>
-      </div>
-      <br/>
-      It is (relatively) easy for a data system to become TinkerPop-enabled. There are two interface packages that need to be implemented with one of them being optional. Once implemented
-      the Gremlin traversal machine can talk to the provider's system and thus, so can any of their users' Gremlin traversals as well as any existing tools/technologies that have been designed
-      to interact with a TinkerPop-enabled system.
-      <br/>
-      <br/>
-      <ol>
-         <li><strong>The Graph (required)</strong>: These foundational interfaces define the semantics of the operations on a graph, vertex, edge, and property. Once implemented, the provider's
-            data system can immediately be queried using Gremlin OLTP. However, providers may want to leverage a collection of provider-specific compiler optimizations called <a href="https://tinkerpop.apache.org/docs/current/reference/#traversalstrategy">traversal strategies</a>
-            which can leverage their system's unique features (e.g. global indices, vertex-centric indices, sort orders, sequential scanners, push-down predicates, etc.).
-         </li>
-         <br/>
-         <li><strong>The GraphComputer (optional)</strong>: All OLAP-based graph processors must implement the primary graph interfaces mentioned above as well as a set of parallel-processing
-            message-passing interfaces. However, it is possible for a data system to only implement the primary graph interfaces and still provide OLAP support to their users by integrating their
-            system with an existing <code>GraphComputer</code> implementation such as, for example, <code>SparkGraphComputer</code> (provided in Apache's distribution
-            of TinkerPop).
-         </li>
-      </ol>
-      <p>Finally, there are other tools and technologies that the provider can leverage from TinkerPop such as <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-server">Gremlin Server</a>, <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-console">Gremlin Console</a>, and the like. The purpose of Apache TinkerPop is to
-         make it easy for providers to add graph functionality to their system and/or to build a graph system from scratch and immediately have a query language, server infrastructure, metrics/reporting
-         integration, cluster-based analytics and more.
-      </p>
-      <ul>
-         <li><strong>Gremlin traversal language</strong>: The primary benefit of TinkerPop is the <a href="gremlin.html">Gremlin graph traversal language</a>. This language was designed specifically for graph analysis and
-            manipulation and is not complicated with an explicit JOIN syntax.
-         </li>
-         <li><strong>Gremlin traversal machine</strong>: Every Gremlin language variant compiles to a language agnostic <a href="https://en.wikipedia.org/wiki/Bytecode">bytecode</a> representation. That bytecode is ultimately translated to a machine-specific traversal. It is the responsibility of the Gremlin traversal machine to execute that traversal as a
-            real-time <a href="https://en.wikipedia.org/wiki/Online_transaction_processing">OLTP</a> query or as an analytic <a href="https://en.wikipedia.org/wiki/Online_analytical_processing">OLAP</a> query (or both). Note that the Gremlin traversal machine is not bound to the Gremlin language. Any language can take advantage of the the
-            Gremlin traversal machine by simply translating itself to Gremlin bytecode. In fact, compilers currently exist for <a href="https://github.com/twilmes/sql-gremlin">SQL</a> and <a href="https://tinkerpop.apache.org/docs/current/reference/#sparql-gremlin">SPARQL</a>. However, using alternative languages for graph computing leads to significantly more complicated queries
-            and typically does not match the expressivity provided by Gremlin.
-         </li>
-         <li><strong>TinkerGraph</strong>: TinkerPop provides a simple, non-transactional, in-memory graph system called <a href="https://tinkerpop.apache.org/docs/current/reference/#tinkergraph-gremlin">TinkerGraph</a>. TinkerGraph is useful for exploring graphs that can fit
-            in-memory, for doing tutorials and training without the overhead of database setup, etc. TinkerGraph boasts both OLTP and OLAP traversal machine support.
-         </li>
-         <li><strong>Gremlin Console</strong>: A command line <a href="https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop">REPL</a> is provided called <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-console">Gremlin Console</a>. This console is useful when learning TinkerPop as users can load provided datasets into a
-            graph system and explore the Gremlin language without the overhead of creating a full-blown software project. Furthermore, the Gremlin Console is used extensively in production scenarios
-            because it allows system administrators to interact with a local or remote graph to gather statistics, manually explore the data to ensure data integrity, and other useful tasks.
-         </li>
-         <li><strong>Gremlin Server</strong>: It is typical for a graph database to exist on a separate machine from the user's application code. <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-server">Gremlin Server</a> bridges the network-divide
-            allowing users to seamlessly submit traversals for remote execution over a web-sockets based binary protocol. If provider already has a server, they can leverage TinkerPop-specific
-            components as needed (e.g. implement <code>RemoteConnection</code>). Gremlin Server also provides an HTTP-based API, support for <a href="http://ganglia.info/">Ganglia</a>/<a href="http://graphite.wikidot.com/">Graphite</a>/<a href="http://www.oracle.com/technetwork/articles/java/javamanagement-140525.html">JMX</a>/more
-            metrics, and a traversal routing framework for intelligent data/traversal co-location within a distributed graph database's machine cluster.
-         </li>
-         <li><strong>SparkGraphComputer</strong>: <a href="https://spark.apache.org/">Apache Spark</a>&trade; is a Big Data OLAP processor that simplifies the creation and execution of distributed data analytics.
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#sparkgraphcomputer"><code>SparkGraphComputer</code></a> turns Spark
-            into a Big(Graph)Data processor via the OLAP component of the Gremlin traversal machine. Users do not have to learn Spark's data processing language as Gremlin traversals execute
-            over Spark. For graph system providers, they can boast Spark integration once a custom <code>InputRDD</code> (or <code>InputFormat</code>) is developed.
-         </li>
-         <li><strong>Hadoop support</strong>: <a href="https://hadoop.apache.org/">Apache Hadoop</a>&reg; has become a staple technology for Big Data applications. In TinkerPop, <code>SparkGraphComputer</code> can pull data
-            from the Hadoop File System (<a href="https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html">HDFS</a>). TinkerPop provides a collection of Input- and OutputFormats for different graph serialization standards as well as tooling that makes it easy for users
-            to <a href="https://tinkerpop.apache.org/docs/current/reference/#interacting-with-hdfs">interact with HDFS</a> from the Gremlin Console or their application.
-         </li>
-      </ul>
-      <p>Information on how to build implementations of the various interfaces that TinkerPop supports can be found in the <a href="https://tinkerpop.apache.org/docs/current/dev/provider/">Provider Documentation</a>.
-      <br/>
-      <h4>TinkerPop-Enabled Graph Systems</h4>
-      <br/>
-      Apache TinkerPop is always looking to point users to graph systems that are TinkerPop-enabled. Please read Apache TinkerPop's <a href="policy.html">provider listing policy</a> for adding new projects to the listing below.
-      The listing is intended to help users identify TinkerPop-enabled graph systems and does not constitute an endorsement by Apache TinkerPop nor the Apache Software Foundation.
-      <br/>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://aws.amazon.com/neptune/"><img src="img/logos/neptune-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://aws.amazon.com/neptune/">Amazon Neptune</a> is a fast, reliable, fully-managed graph database service that makes it easy to build and run applications that work with highly connected datasets.
-         </div>
-         <div class="col-sm-6 col-md-6">
-            <a href="https://docs.microsoft.com/en-us/azure/cosmos-db/graph-introduction"><img src="img/logos/cosmosdb-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://docs.microsoft.com/en-us/azure/cosmos-db/graph-introduction">Azure Cosmos DB</a>&trade; is Microsoft's globally distributed, multi-model database service for mission-critical applications. Azure Cosmos DB provides turn-key global distribution, elastic scaling of throughput and storage worldwide, five well-defined consistency levels, and guaranteed high availability, all backed by industry-leading SLAs. It is multi-model with support for the Gremlin graph traversal language.
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-          <div class="col-sm-6 col-md-6">
-            <a href="https://datastax.com/products/datastax-enterprise-graph"><img src="img/logos/datastax-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://datastax.com/products/datastax-enterprise-graph">DataStax Enterprise Graph</a>&trade;, part of DataStax Enterprise's multi-model platform, is a real-time graph database built for cloud applications that need to manage complex and highly connected data. Built on the foundation of Apache Cassandra and Apache TinkerPop, DataStax Enterprise Graph delivers continuous uptime along with predictable performance and scale, while remaining operationally simple to manage.
-         </div>
-         <div class="col-sm-6 col-md-6">
-            <a href="https://grakn.ai/"><img src="img/logos/grakn-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://grakn.ai/">GRAKN.AI</a>&trade; is a distributed knowledge graph that brings knowledge ontologies and transactional data together to enable intelligent querying of data. Querying is performed through the language: Graql, a declarative, knowledge-oriented graph query language for retrieving explicitly stored and implicitly derived information, as well as to perform graph analytics and automated reasoning.
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://gdotv.com/"><img src="img/logos/gdotv-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://gdotv.com/">G.V()</a> is an all-in-one Gremlin IDE and graph visualization software for Windows, macOS and Linux. It offers powerful Gremlin Query completion features based on your graph structure and intuitive results visualization options. It is compatible with Apache TinkerPop-enabled graph databases over Gremlin Server protocol.
-         </div>
-         <div class="col-sm-6 col-md-6">
-            <a href="https://github.com/hugegraph/hugegraph"><img src="img/logos/hugegraph-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://github.com/hugegraph/hugegraph">HugeGraph</a> is an Apache2 licensed high-speed, distributed and scalable OLTP and OLAP graph database, fully optimized to store hundreds of billions vertices/edges and analyze complex relationships between high-connected data. It is modeled as property graph and compatible with Apache TinkerPop and Gremlin. Due to high efficiency, availability and scalability, HugeGraph attracts a large amount of users and has been widely used in social network analysis, fraud detection and knowledge graph.
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://janusgraph.org/"><img src="img/logos/janusgraph-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://janusgraph.org/">JanusGraph</a>&reg; is an Apache2 licensed scalable, distributed graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster. JanusGraph is a transactional database that can support thousands of concurrent users executing complex Gremlin traversals in real time. JanusGraph also provides an in-memory, compression-based OLAP processor as well as integrates with Apache TinkerPop's Spark OLAP processors.
-         </div>
-         <div class="col-sm-6 col-md-6">
-           <a href="https://cambridge-intelligence.com/keylines/"><img src="img/logos/keylines-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-           <a href="https://cambridge-intelligence.com/keylines/">KeyLines</a>&trade; is an Apache TinkerPop and Gremlin compatible JavaScript SDK for quickly and easily building powerful, custom and scalable graph visualization applications. The KeyLines SDK offers a rich library of functionality to help you visualize and explore the data in your graph database, including graph layouts, social network analysis measures, filtering, temporal graph visualization and geospatial graph analysis. It allows the visualization of complex graph data at scale.
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://linkurio.us/"><img src="img/logos/linkurious-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://linkurio.us/">Linkurious</a>&trade; is a browser-based graph visualization software to search, explore and visualize connected data. It is compatible with Apache TinkerPop and thus, any TinkerPop-enabled graph system. Linkurious provides enterprise-ready security (authentication, access rights, audit) and flexibility (API, linkurious.js JS graph visualization library) to help software architects successfully deploy graph capabilities within their organizations.
-         </div>
-         <div class="col-sm-6 col-md-6">
-           <a href="https://neo4j.com/"><img src="img/logos/neo4j-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-           <a href="https://neo4j.com/">Neo4j</a>&trade; is the most widely used open source, transactional graph database with a large active user and customer community. Because of its scalability and ease of use, Neo4j is applied in a wide variety of use cases from fraud detection, access control to recommendation and investigative journalism. Along with the openCypher graph query language, Neo4j also supports Apache TinkerPop and currently serves as its OLTP reference implementation.
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://orientdb.org/"><img src="img/logos/orientdb-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://orientdb.org/">OrientDB</a>&trade; is an open source distributed graph database with native support for Apache TinkerPop and the Gremlin graph traversal language. OrientDB handles relationships by using persistent pointers, rather than expensive join runtime operations. This guarantees a fast, constant O(1) time for traversing, no matter the database size. Furthermore, OrientDB is not only a graph database, but a multi-model database able to manage documents, keys/values, objects, full-text and spatial data.
-         </div>
-         <div class="col-sm-6 col-md-6">
-           <a href="https://stardog.com/"><img src="img/logos/stardog-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-           <a href="https://stardog.com/">Stardog</a>&trade; is a graph database optimized for enterprise data unification. It supports both semantic graphs, via RDF, SPARQL, and OWL, as well as property graphs via Apache TinkerPop and Gremlin--it's the only graph database that supports both models over the same database, simultaneously. Stardog also supports hybrid data unification architectures, seamlessly blending data warehouse, system of record, and virtual query strategies. Stardog is suited for enterprise data silo challenges.
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://tomsawyer.com/"><img src="img/logos/tomsawyer-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://tomsawyer.com/">Tom Sawyer Perspectives</a>&trade; is advanced graphics-based software for building enterprise-class data relationship visualization and analysis applications. It is a complete Software Development Kit (SDK) with a graphics-based design and preview environment. Tom Sawyer Perspectives combines visualization, layout, and analysis technology with an elegant platform architecture. Tom Sawyer Perspectives enables interaction with graph database systems via Apache TinkerPop.
-         </div>
-         <div class="col-sm-6 col-md-6">
-            &nbsp;
-         </div>
-      </div>
-   </div>
-   <br/>
-   <div class="container">
-      <a name="query-language-providers"></a>
-      <h3>Query Language Providers</h3>
-      <br/>
-      <div class="row">
-         <div class="col-sm-3 col-md-3">
-            <img src="img/gremlin-quill.png" style="width:100%;">
-         </div>
-         <div class="col-sm-9 col-md-9">
-            With the growth of <a href="https://en.wikipedia.org/wiki/NoSQL">NoSQL</a>, for which graph databases are a subclass, many new database query languages have been developed. SQL has
-            always been the industry standard, but now there exists others such as <a href="http://docs.datastax.com/en/cql/3.1/cql/cql_intro_c.html">CQL</a>, <a href="https://en.wikipedia.org/wiki/Datalog">Datalog</a>,
-            and <a href="https://en.wikipedia.org/wiki/XQuery">XQuery</a>. Even in the graph database space there is <a href="https://en.wikipedia.org/wiki/SPARQL">SPARQL</a>, <a href="http://neo4j.com/developer/cypher-query-language/">Cypher</a>,
-            <a href="http://graphql.org/">GraphQL</a>, and of course, Gremlin. Much like the <a href="https://en.wikipedia.org/wiki/Java_virtual_machine">Java virtual machine</a> is a host to multiple
-            programming languages including Java, Scala, Groovy, Clojure, JavaScript, etc., the Gremlin traversal machine is a host to multiple query languages. The Gremlin traversal machine's
-            instruction set ensures <a href="https://en.wikipedia.org/wiki/Turing_completeness">Turing Completeness</a> and as such, any query language can compile to execute on the Gremlin traversal machine.
-            There are three types of language designers. Below, each type will demonstrate the "same traversal" expressed in different languages. Ultimately, they all compile to the Gremlin traversal
-            below which computes the average rating for the projects created by Gremlin's friends.
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-md-4">
-            <pre style="padding:10px"><code class="language-gremlin">g.V().has("person","name","gremlin").
-  out("knows").out("created").
-  hasLabel("project").
-  values("stars").mean()</code></pre>
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-8 col-md-9">
-            <br/>
-            <strong>Distinct query language</strong>: Query languages such as SQL and SPARQL are significantly different from Gremlin in that they require a special purpose compiler in order to
-            generate a traversal. For this reason, <a href="https://github.com/twilmes/sql-gremlin">SQL</a> and <a href="https://tinkerpop.apache.org/docs/current/reference/#sparql-gremlin">SPARQL</a> Gremlin compilers
-            currently exist. Note that, within reason, Gremlin compilers do not need to concern themselves with an optimal compilation (only a semantically correct compilation) as the Gremlin
-            traversal machine will leverage traversal strategies for both compile-time and runtime optimizations. Moreover, the language designer can rest assured that queries in their language
-            will be able to evaluate as either an OLTP or OLAP query. The example on the right is a SPARQL query that determines the average rating for Gremlin's friends' projects. It is because
-            of the Gremlin traversal machine, that that SPARQL query can immediately execute over Spark (for instance).
-         </div>
-         <div class="col-sm-4 col-md-3">
-            <pre style="padding:10px;"><code class="language-gremlin">SELECT AVG(?stars) WHERE {
-  ?a v:label person .
-  ?a v:name "gremlin" .
-  ?a e:knows ?b .
-  ?b e:created ?c .
-  ?c v:label "project" .
-  ?c v:stars ?stars
-}</code></pre>
-         </div>
-      </div>
-      <br/>
-      <br/>
-      <div class="row">
-         <div class="col-sm-7 col-md-8">
-            <strong>Gremlin language variants</strong>: There are various <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-drivers-variants">Gremlin language variants</a> such as <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-python">Gremlin-Python</a>. These languages
-            generate Gremlin bytecode utilizing the same naming/style-conventions as Gremlin-Java. However, where appropriate, they can deviate from convention in order to take advantage of the unique expressive qualities of the host language. For instance, Gremlin-Python supports index slices, attribute access, etc.
-         </div>
-         <div class="col-sm-5 col-md-4">
-            <pre style="padding:10px;"><code class="language-gremlin">g.V().has('person','name','gremlin').
-  out('knows').out('created').
-  hasLabel('project').stars.mean()</code></pre>
-         </div>
-      </div>
-      <br/>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-8">
-            <strong>Domain specific languages</strong>: A users's application logic typically represents its domain in terms of real-world objects, not "vertices" and "edges." While most application developers will become comfortable writing their traversals in the vertex/edge-lexicon of Gremlin, it may be desirable to create a domain specific language for, perhaps, business users. To do so is simple. The language designer extends Traversal and interacts with an underlying GraphTraversal exposing "high-level" steps that may ultimately be composed of a complex sequence of "low-level" vertex/edge-steps. A major boon is that the DSL designer does not have to worry about compiler optimization as the "low-level" GraphTraversal representation will ultimately be subjected to traversal strategies prior to OLTP or OLAP evaluation. The example on the right is a hypothetical SocialDSL that allows users to query their graph from the perspective of people, projects, etc. and is thus bound to tha
 t graph's particular social data schema.
-         </div>
-         <div class="col-sm-6 col-md-4">
-            <br/>
-            <br/>
-            <pre style="padding:10px;"><code class="language-gremlin">SELECT(Average.of(Stars)).
-FROM(Projects)
-WHERE(Created.by(Friends.of("gremlin")))</code></pre>
-         </div>
-      </div>
-      <br/>
-      <h4>TinkerPop-Enabled Query Languages</h4>
-      <br/>
-      Apache TinkerPop is always looking to point users to TinkerPop-enabled graph query languages. Please read Apache TinkerPop's <a href="policy.html">provider listing policy</a> for adding new projects to the listing below.
-      The listing is intended to help users identify TinkerPop-enabled compilers and languages and does not constitute an endorsement by Apache TinkerPop nor the Apache Software Foundation.
-      <br/>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-console"><img src="img/logos/gremlin-groovy-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-console">Gremlin-Groovy</a> represents Gremlin inside the Groovy language and can be leveraged by any JVM-based project either through gmaven or its JSR-223 ScriptEngine implementation. It also serves as the Gremlin Console language.
-         </div>
-         <div class="col-sm-6 col-md-6">
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#_on_gremlin_language_variants"><img src="img/logos/gremlin-java-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#_on_gremlin_language_variants">Gremlin-Java</a> represents Gremlin inside the Java language. Gremlin-Java is considered the canonical, reference implementation of Gremlin and is the primary compiler for all lambda-free bytecode due to its speed relative to other script-based, JVM variants.
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-python"><img src="img/logos/gremlin-python-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-python">Gremlin-Python</a> represents Gremlin inside the Python language and can be used by any Python virtual machine such as CPython. Gremlin-Python traversals translate to Gremlin bytecode for RemoteConnection execution (e.g. Gremlin Server).
-         </div>
-         <div class="col-sm-6 col-md-6">
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-DotNet"><img src="img/logos/gremlin-dotnet-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#gremlin-DotNet">Gremlin.Net</a> represents Gremlin inside the C# language and can be used by any .NET-based project. Gremlin.Net traversals translate to Gremlin bytecode for RemoteConnection execution (e.g. Gremlin Server).
-         </div>
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://github.com/mpollmeier/gremlin-scala"><img src="img/logos/gremlin-scala-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://github.com/mpollmeier/gremlin-scala">Gremlin-Scala</a> is a Gremlin language variant that uses standard Scala functions, provides a convenient DSL to create vertices and edges, ensures type safe traversals, and incurrs minimal runtime overhead by only allocating instances if absolutely necessary.
-         </div>
-         <div class="col-sm-6 col-md-6">
-            <a href="https://github.com/clojurewerkz/ogre"><img src="img/logos/ogre-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://github.com/clojurewerkz/ogre">Ogre</a> is a Gremlin language variant for Clojure. It provides an API that enhances the expressivity of Gremlin within Clojure, it doesn't introduce any significant amount of performance overhead, and it can work with any TinkerPop-enabled graph database or analytic system.
-         </div>         
-      </div>
-      <br/>
-      <div class="row">
-         <div class="col-sm-6 col-md-6">
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#sparql-gremlin"><img src="img/logos/sparql-gremlin-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://tinkerpop.apache.org/docs/current/reference/#sparql-gremlin">SPARQL-Gremlin</a> is a compiler used to transform SPARQL queries into Gremlin bytecode. It is based on the Apache Jena SPARQL processor ARQ, which provides access to a syntax tree of a SPARQL query.
-         </div>
-         <div class="col-sm-6 col-md-6">
-            <a href="https://github.com/twilmes/sql-gremlin"><img src="img/logos/sql-gremlin-logo.png" style="padding-right:20px;float:left;width:35%;"></a>
-            <a href="https://github.com/twilmes/sql-gremlin">SQL-Gremlin</a> compiles ANSI SQL to Gremlin bytecode and is useful for connecting JDBC reporting/business
-            intelligence tools to any TinkerPop-enabled graph system.
-         </div>
-      </div>
-   </div>
-   <br/>
-   <div class="container">
-      <hr/>
-      <h4>Related Resources</h4>
-      <br/>
-      <div class="carousel slide" data-ride="carousel" data-type="multi" data-interval="7000" id="relatedResources">
-         <div class="carouselGrid-inner">
-            <div class="item active">
-               <div class="col-lg-3 col-md-3 col-sm-4 col-xs-6"><a href="https://markorodriguez.com/2013/01/09/on-graph-computing/"><img src="img/resources/on-graph-computing-resource.png" width="100%"/></a></div>
-            </div>
-            <div class="item">
-               <div class="col-lg-3 col-md-3 col-sm-4 col-xs-6"><a href="https://academy.datastax.com/courses/ds230-getting-started-gremlin/property-graph"><img src="img/resources/property-graph-resource.png" width="100%"/></a></div>
-            </div>
-            <div class="item">
-               <div class="col-lg-3 col-md-3 col-sm-4 col-xs-6"><a href="http://neo4j.com/why-graph-databases/"><img src="img/resources/why-graph-databases-resource.png" width="100%"/></a></div>
-            </div>
-            <div class="item">
-               <div class="col-lg-3 col-md-3 col-sm-4 col-xs-6"><a href="https://thinkaurelius.com/2012/03/22/understanding-the-world-using-tables-and-graphs/"><img src="img/resources/tables-and-graphs-resource.png" width="100%"/></a></div>
-            </div>
-         </div>
-         <a class="left carouselGrid-control" href="#relatedResources" data-slide="prev">
-         <span class="icon-prev" aria-hidden="true"></span>
-         <span class="sr-only">Previous</span>
-         </a>
-         <a class="right carouselGrid-control" href="#relatedResources" data-slide="next">
-         <span class="icon-next" aria-hidden="true"></span>
-         <span class="sr-only">Next</span>
-         </a>
-      </div>
-      <script>
-         $('.carousel[data-type="multi"] .item').each(function(){
-           var next = $(this).next(); // grabs the next sibling of the carouselGrid
-           if (!next.length) { // if ther isn't a next
-             next = $(this).siblings(':first'); // this is the first
-           }
-           next.children(':first-child').clone().appendTo($(this)); // put the next ones on the array
-
-           for (var i=0;i<2;i++) { // THIS LOOP SPITS OUT EXTRA ITEMS TO THE CAROUSEL
-             next=next.next();
-             if (!next.length) {
-               next = $(this).siblings(':first');
-             }
-             next.children(':first-child').clone().appendTo($(this));
-           }
-
-         });
-      </script>
-   </div>
-   <br/>
-   <br/>
+
+<!-- hero -->
+<div class="container hero-inner">
+    <img src="img/providers/bg.png" class="img-fluid w-100" alt="img">
 </div>
-      <div id="footer">
-         <div class="container">
-            <p class="muted credit">Copyright © 2015-2021 The Apache Software Foundation.<br/>Apache TinkerPop, TinkerPop, Apache, Apache feather logo, and Apache TinkerPop project logo are either registered trademarks or trademarks of <a href="https://www.apache.org/">The Apache Software Foundation</a> in the United States and other countries.
-            </p>
-         </div>
-      </div>
-   </body>
+
+<!-- Content -->
+<div class="sec-pad pb-0">
+    <div class="container">
+        <div class="row d-flex">
+            <div class="col-md-12 text-center">
+                <h1 class="ft-40 bold black mb-3 mb-md-5">Data System Providers</h1>
+            </div>
+        </div>
+        <div class="row d-flex align-items-center">
+            <div class="col-lg-6 mb-4 md-lg-0">
+                <img src="img/providers/providers.png" class="img-fluid w-100" alt="img">
+            </div>
+            <div class="col-lg-6 ">
+                <div class="use-case-page-pl-3">
+                    <p>Apache TinkerPop grows when 3rd party data systems and query languages utilize it. While Apache's
+                        distribution of TinkerPop does provide production ready implementations and tools, it is
+                        ultimately the larger ecosystem of providers that ensure TinkerPop's widespread adoption. There
+                        are two types of providers. The first are those that develop a (graph) database, (graph)
+                        processor, or (graph) analytics tool and want to offer their users TinkerPop-specific graph
+                        computing features. The other type of provider are language designers that have a (graph) query
+                        language they wish to have execute on the Gremlin traversal machine and thus, against any
+                        TinkerPop-enabled graph system.</p>
+                    <a href="https://tinkerpop.apache.org/docs/current/dev/provider/" class="text-blue "><u>Learn
+                        More</u></a>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<div class="sec-pad">
+    <div class="container">
+        <div class="row d-flex">
+            <div class="col-md-12">
+                <h2 class="ft-30 bold black mb-3">TinkerPop-Enabled Graph Systems</h2>
+                <p class="mb-4">Apache TinkerPop is always looking to point users to graph systems that are
+                    TinkerPop-enabled. Please read Apache TinkerPop's provider <a class="text-blue"
+                                                                                  href="https://tinkerpop.apache.org/docs/current/dev/provider/#policies">listing
+                        policy</a> for adding new projects to the listing below. The listing is intended to help users
+                    identify TinkerPop-enabled graph systems and does not constitute an endorsement by Apache TinkerPop
+                    nor the Apache Software Foundation.</p>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/1.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Alibaba Graph Database</a>
+                            <p class="mb-0 mt-2">A real-time, reliable, cloud-native graph database service that
+                                supports property graph model.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/2.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="https://aws.amazon.com/neptune/">Amazon Neptune</a>
+                            <p class="mb-0 mt-2">Fully-managed graph database service.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/3.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">ArcadeDB</a>
+                            <p class="mb-0 mt-2">Multi-Model Database Supporting Graphs, Key/Value, Documents and
+                                Time-Series.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/4.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">ArangoDB</a>
+                            <p class="mb-0 mt-2">OLTP Provider for ArangoDB.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/5.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Bitsy</a>
+                            <p class="mb-0 mt-2">A small, fast, embeddable, durable in-memory graph database.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/6.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Blazegraph</a>
+                            <p class="mb-0 mt-2">RDF graph database with OLTP support.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/7.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">CosmosDB</a>
+                            <p class="mb-0 mt-2">Microsoft's distributed OLTP graph database.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/8.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">ChronoGraph</a>
+                            <p class="mb-0 mt-2">A versioned graph database.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/9.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">DSEGraph</a>
+                            <p class="mb-0 mt-2">DataStax graph database with OLTP and OLAP support.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/10.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Hadoop (Spark)</a>
+                            <p class="mb-0 mt-2">OLAP graph processor using Spark.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/11.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">HGraphDB</a>
+                            <p class="mb-0 mt-2">OLTP graph database running on Apache HBase.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/12.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Huawei Graph Engine Service</a>
+                            <p class="mb-0 mt-2">Fully-managed, distributed, at-scale graph query and analysis service
+                                that provides a visualized interactive analytics platform.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/13.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="https://github.com/hugegraph/hugegraph">HugeGraph</a>
+                            <p class="mb-0 mt-2">A high-speed, distributed and scalable OLTP and OLAP graph database
+                                with visualized analytics platform.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/14.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">IBM Graph</a>
+                            <p class="mb-0 mt-2">OLTP graph database as a service.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/15.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="https://janusgraph.org/">JanusGraph</a>
+                            <p class="mb-0 mt-2">Distributed OLTP and OLAP graph database with BerkeleyDB, Apache
+                                Cassandra and Apache HBase support.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/16.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Neo4j</a>
+                            <p class="mb-0 mt-2">OLTP graph database (embedded and high availability).</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/17.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="https://orientdb.org/">OrientDB</a>
+                            <p class="mb-0 mt-2">OLTP graph database</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/18.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">OverflowDB</a>
+                            <p class="mb-0 mt-2">In-memory graph database with low memory footprint</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/19.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Apache S2Graph</a>
+                            <p class="mb-0 mt-2">OLTP graph database running on Apache HBase.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/20.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Sqlg</a>
+                            <p class="mb-0 mt-2">OLTP implementation on SQL databases.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/21.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="https://stardog.com/">Stardog</a>
+                            <p class="mb-0 mt-2">RDF graph database with OLTP and OLAP support.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/22.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Tibco Graph Database</a>
+                            <p class="mb-0 mt-2">Combined OLTP and OLAP features in a single enterprise-grade
+                                database.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/23.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">TinkerGraph</a>
+                            <p class="mb-0 mt-2">In-memory OLTP and OLAP reference implementation.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6 col-lg-4">
+                <div class="uc-box">
+                    <div class="d-flex align-items-start">
+                        <img src="img/providers/24.png " class="img-fluid mb-3" alt="img">
+                        <div class="text-start ms-3">
+                            <a class="ft-18 bold text-blue" href="#">Unipop</a>
+                            <p class="mb-0 mt-2">OLTP Elasticsearch and JDBC backed graph.</p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!-- footer -->
+
+<!-- join us -->
+<div class="join-us">
+    <div class="container">
+        <div class="row d-flex justify-content-center">
+            <div class="col-md-8 col-lg-6">
+                <div class="ju-box">
+                    <h2 class="ft-40 text-blue bold">Join Us on</h2>
+                    <p class="bold">Join us on our Discord Chat</p>
+                    <a href="https://discord.gg/ndMpKZcBEE"><img src="img/tpvewx.png" class="img-fluid mt-3" alt="img"></a>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+<!-- footer -->
+<footer>
+    <div class="primary-footer sec-pad">
+        <div class="container">
+            <div class="row">
+                <div class="col-md-4">
+                    <div class="bold ft-25">Apache TinkerPop™</div>
+                    <p class="mt-2 mb-4">Apache TinkerPop™ is a graph computing framework for both graph databases
+                        (OLTP) and graph analytic systems (OLAP).</p>
+                    <ul class="list-unstyled list-inline hover-op-low">
+                        <li class="list-inline-item"><a href="https://discord.gg/ndMpKZcBEE"><img
+                                src="img/social/discord.svg" class="img-fluid" alt="img"></a></li>
+                        <li class="list-inline-item"><a href="https://twitter.com/apachetinkerpop"><img
+                                src="img/social/twitter-square.svg" class="img-fluid" alt="img"></a></li>
+                        <li class="list-inline-item"><a href="https://github.com/apache/tinkerpop"><img
+                                src="img/social/github-box.svg" class="img-fluid" alt="img"></a></li>
+                    </ul>
+                </div>
+                <div class="col-md-4 ft-links">
+                    <div class="bold ft-18 mb-3">Links</div>
+                    <div class="row">
+                        <div class="col-lg-6">
+                            <ul class="hover-op-low list-unstyled">
+                                <li><a href="index.html">Home</a></li>
+                                <li><a href="downloads.html">Downloads</a></li>
+                                <li><a href="https://tinkerpop.apache.org/docs/current">Documentation</a></li>
+                            </ul>
+                        </div>
+                        <div class="col-lg-6">
+                            <ul class="hover-op-low list-unstyled">
+                                <li><a href="https://tinkerpop.apache.org/docs/current/dev/developer#_contributing">Contributing</a>
+                                </li>
+                                <li><a href="providers.html">Providers</a></li>
+                                <li><a href="community.html">Community</a></li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-md-4 mt-4">
+                    <p>Apache TinkerPop, TinkerPop, Apache, Apache feather logo, and Apache TinkerPop project logo are
+                        either registered trademarks or trademarks of The Apache Software Foundation in the United
+                        States and other countries.</p>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="secondry-footer">
+        <div class="container">
+            <div class="row">
+                <div class="col-12">
+                    Copyright © 2015-2022 The Apache Software Foundation
+                </div>
+            </div>
+        </div>
+    </div>
+</footer>
+<script src="js/jquery-1.11.1.js"></script>
+<script src="js/bootstrap.bundle.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js"
+        integrity="sha512-Eak/29OTpb36LLo2r47IpVzPBLXnAMPAVypbSZiZ4Qkf8p/7S/XRG5xp7OKWPPYfJT6metI+IORkR5G8F900+g=="
+        crossorigin="anonymous" referrerpolicy="no-referrer"></script>
+<script src="js/my.js"></script>
+</body>
 </html>