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/07/14 12:07:30 UTC

svn commit: r1902718 [3/39] - in /tinkerpop/site: docs/3.5.4-SNAPSHOT/dev/developer/ docs/3.5.4-SNAPSHOT/dev/provider/ docs/3.5.4-SNAPSHOT/images/ docs/3.5.4-SNAPSHOT/recipes/ docs/3.5.4-SNAPSHOT/reference/ docs/3.5.4-SNAPSHOT/tutorials/getting-started...

Modified: tinkerpop/site/docs/3.5.4-SNAPSHOT/reference/index.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.5.4-SNAPSHOT/reference/index.html?rev=1902718&r1=1902717&r2=1902718&view=diff
==============================================================================
--- tinkerpop/site/docs/3.5.4-SNAPSHOT/reference/index.html (original)
+++ tinkerpop/site/docs/3.5.4-SNAPSHOT/reference/index.html Thu Jul 14 12:07:27 2022
@@ -1170,6 +1170,30 @@ table.CodeRay td.code>pre{padding:0}
 <li><a href="#gremlin-dotnet-examples">Application Examples</a></li>
 </ul>
 </li>
+<li><a href="#gremlin-go">Gremlin-Go</a>
+<ul class="sectlevel2">
+<li><a href="#gremlin-go-connecting">Connecting</a></li>
+<li><a href="#gremlin-go-imports">Common Imports</a></li>
+<li><a href="#gremlin-go-configuration">Configuration</a></li>
+<li><a href="#gremlin-go-strategies">Traversal Strategies</a></li>
+<li><a href="#gremlin-go-transactions">Transactions</a></li>
+<li><a href="#gremlin-go-lambda">The Lambda Solution</a></li>
+<li><a href="#gremlin-go-scripts">Submitting Scripts</a>
+<ul class="sectlevel3">
+<li><a href="#_per_request_settings_4">Per Request Settings</a></li>
+</ul>
+</li>
+<li><a href="#gremlin-go-dsl">Domain Specific Languages</a></li>
+<li><a href="#gremlin-go-differences">Differences</a></li>
+<li><a href="#gremlin-go-aliases">Aliases</a>
+<ul class="sectlevel3">
+<li><a href="#_list_of_useful_aliases">List of useful aliases</a></li>
+</ul>
+</li>
+<li><a href="#gremlin-go-limitations">Limitations</a></li>
+<li><a href="#gremlin-go-examples">Application Examples</a></li>
+</ul>
+</li>
 <li><a href="#gremlin-python">Gremlin-Python</a>
 <ul class="sectlevel2">
 <li><a href="#gremlin-python-connecting">Connecting</a></li>
@@ -1180,7 +1204,7 @@ table.CodeRay td.code>pre{padding:0}
 <li><a href="#gremlin-python-lambda">The Lambda Solution</a></li>
 <li><a href="#gremlin-python-scripts">Submitting Scripts</a>
 <ul class="sectlevel3">
-<li><a href="#_per_request_settings_4">Per Request Settings</a></li>
+<li><a href="#_per_request_settings_5">Per Request Settings</a></li>
 </ul>
 </li>
 <li><a href="#gremlin-python-dsl">Domain Specific Languages</a></li>
@@ -1455,7 +1479,7 @@ what is written elsewhere.</p>
 <p>It is fairly certain that readers of the Reference Documentation are coming from the most diverse software development
 backgrounds that TinkerPop has ever engaged in over the decade or so of its existence. While TinkerPop holds some roots
 in Java, and thus, languages bound to the Java Virtual Machine (JVM), it long ago branched out into other languages
-such as Python, Javascript, .NET, and others. To compound upon that diversity, it is also seeing extensive support
+such as Python, Javascript, .NET, GO, and others. To compound upon that diversity, it is also seeing extensive support
 from different graph systems which have chosen TinkerPop as their standard method for allowing users to interface
 with their graph. Moreover, the graph systems themselves are not only separated by OLTP and OLAP style workloads, but
 also by their implementation patterns, which range everywhere from being an embedded graph system to a cloud-only
@@ -1844,10 +1868,10 @@ gremlin&gt; g.V().has(<span class="strin
 be spawned off that vertex.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699168-1" type="radio" name="radio-set-1649699168-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699168-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699168-2" type="radio" name="radio-set-1649699168-1" class="tab-selector-2" />
-  <label for="tab-1649699168-2" class="tab-label-2">groovy</label>
+  <input id="tab-1657795901-1" type="radio" name="radio-set-1657795901-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657795901-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657795901-2" type="radio" name="radio-set-1657795901-1" class="tab-selector-2" />
+  <label for="tab-1657795901-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1908,10 +1932,10 @@ traverser has gone through a loop, the p
 Traverser metadata may be accessed by a step. A classic example is the <a href="#path-step"><code>path()</code></a>-step.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699168-3" type="radio" name="radio-set-1649699168-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699168-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699168-4" type="radio" name="radio-set-1649699168-3" class="tab-selector-2" />
-  <label for="tab-1649699168-4" class="tab-label-2">groovy</label>
+  <input id="tab-1657795901-3" type="radio" name="radio-set-1657795901-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657795901-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657795901-4" type="radio" name="radio-set-1657795901-3" class="tab-selector-2" />
+  <label for="tab-1657795901-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1952,10 +1976,10 @@ required. If not, then path calculations
 has gone through a particular section of the traversal expression (i.e. a loop).</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699168-5" type="radio" name="radio-set-1649699168-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699168-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699168-6" type="radio" name="radio-set-1649699168-5" class="tab-selector-2" />
-  <label for="tab-1649699168-6" class="tab-label-2">groovy</label>
+  <input id="tab-1657795901-5" type="radio" name="radio-set-1657795901-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657795901-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657795901-6" type="radio" name="radio-set-1657795901-5" class="tab-selector-2" />
+  <label for="tab-1657795901-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2148,16 +2172,16 @@ the server which means that there is no
 the location of the Gremlin Server to connect to:</p>
 </div>
 <section class="tabs tabs-5">
-  <input id="tab-1649699168-7" type="radio" name="radio-set-1649699168-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699168-7" class="tab-label-1">java</label>
-  <input id="tab-1649699168-8" type="radio" name="radio-set-1649699168-7" class="tab-selector-2" />
-  <label for="tab-1649699168-8" class="tab-label-2">groovy</label>
-  <input id="tab-1649699168-9" type="radio" name="radio-set-1649699168-7" class="tab-selector-3" />
-  <label for="tab-1649699168-9" class="tab-label-3">csharp</label>
-  <input id="tab-1649699168-10" type="radio" name="radio-set-1649699168-7" class="tab-selector-4" />
-  <label for="tab-1649699168-10" class="tab-label-4">javascript</label>
-  <input id="tab-1649699168-11" type="radio" name="radio-set-1649699168-7" class="tab-selector-5" />
-  <label for="tab-1649699168-11" class="tab-label-5">python</label>
+  <input id="tab-1657795901-7" type="radio" name="radio-set-1657795901-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657795901-7" class="tab-label-1">java</label>
+  <input id="tab-1657795901-8" type="radio" name="radio-set-1657795901-7" class="tab-selector-2" />
+  <label for="tab-1657795901-8" class="tab-label-2">groovy</label>
+  <input id="tab-1657795901-9" type="radio" name="radio-set-1657795901-7" class="tab-selector-3" />
+  <label for="tab-1657795901-9" class="tab-label-3">csharp</label>
+  <input id="tab-1657795901-10" type="radio" name="radio-set-1657795901-7" class="tab-selector-4" />
+  <label for="tab-1657795901-10" class="tab-label-4">javascript</label>
+  <input id="tab-1657795901-11" type="radio" name="radio-set-1657795901-7" class="tab-selector-5" />
+  <label for="tab-1657795901-11" class="tab-label-5">python</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2227,6 +2251,16 @@ g = traversal().withRemote(
     </div>
   </div>
 </section>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="go"><span class="keyword">import</span> (
+    gremlingo <span class="string"><span class="delimiter">&quot;</span><span class="content">github.com/apache/tinkerpop/gremlin-go/v3/driver</span><span class="delimiter">&quot;</span></span>
+)
+
+remote, err := gremlingo.NewDriverRemoteConnection(<span class="string"><span class="delimiter">&quot;</span><span class="content">ws://localhost:8182/gremlin</span><span class="delimiter">&quot;</span></span>)
+g := gremlingo.Traversal_().WithRemote(remote)</code></pre>
+</div>
+</div>
 <div class="paragraph">
 <p>As shown in the embedded approach in the previous section, once "g" is defined, writing Gremlin is structurally and
 conceptually the same irrespective of programming language.</p>
@@ -2325,18 +2359,18 @@ agnostic to that. Assuming "g" is the <c
 language or mode of operation is just some basic Gremlin:</p>
 </div>
 <section class="tabs tabs-6">
-  <input id="tab-1649699168-12" type="radio" name="radio-set-1649699168-12" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699168-12" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699168-13" type="radio" name="radio-set-1649699168-12" class="tab-selector-2" />
-  <label for="tab-1649699168-13" class="tab-label-2">groovy</label>
-  <input id="tab-1649699168-14" type="radio" name="radio-set-1649699168-12" class="tab-selector-3" />
-  <label for="tab-1649699168-14" class="tab-label-3">csharp</label>
-  <input id="tab-1649699168-15" type="radio" name="radio-set-1649699168-12" class="tab-selector-4" />
-  <label for="tab-1649699168-15" class="tab-label-4">java</label>
-  <input id="tab-1649699168-16" type="radio" name="radio-set-1649699168-12" class="tab-selector-5" />
-  <label for="tab-1649699168-16" class="tab-label-5">javascript</label>
-  <input id="tab-1649699168-17" type="radio" name="radio-set-1649699168-12" class="tab-selector-6" />
-  <label for="tab-1649699168-17" class="tab-label-6">python</label>
+  <input id="tab-1657795901-12" type="radio" name="radio-set-1657795901-12" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657795901-12" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657795901-13" type="radio" name="radio-set-1657795901-12" class="tab-selector-2" />
+  <label for="tab-1657795901-13" class="tab-label-2">groovy</label>
+  <input id="tab-1657795901-14" type="radio" name="radio-set-1657795901-12" class="tab-selector-3" />
+  <label for="tab-1657795901-14" class="tab-label-3">csharp</label>
+  <input id="tab-1657795901-15" type="radio" name="radio-set-1657795901-12" class="tab-selector-4" />
+  <label for="tab-1657795901-15" class="tab-label-4">java</label>
+  <input id="tab-1657795901-16" type="radio" name="radio-set-1657795901-12" class="tab-selector-5" />
+  <label for="tab-1657795901-16" class="tab-label-5">javascript</label>
+  <input id="tab-1657795901-17" type="radio" name="radio-set-1657795901-12" class="tab-selector-6" />
+  <label for="tab-1657795901-17" class="tab-label-6">python</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2406,6 +2440,13 @@ g.V(v1).addE(<span class="string"><span
     </div>
   </div>
 </section>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="go">v1, err := g.AddV(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>).Property(<span class="string"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">marko</span><span class="delimiter">&quot;</span></span>).Next()
+v2, err := g.AddV(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>).Property(<span class="string"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">stephen</span><span class="delimiter">&quot;</span></span>).Next()
+g.V(v1).AddE(<span class="string"><span class="delimiter">&quot;</span><span class="content">knows</span><span class="delimiter">&quot;</span></span>).To(v2).Property(<span class="string"><span class="delimiter">&quot;</span><span class="content">weight</span><span class="delimiter">&quot;</span></span>, <span class="float">0.75</span>).Iterate()</code></pre>
+</div>
+</div>
 <div class="paragraph">
 <p>The first two lines add a vertex each with the vertex label of "person" and the associated "name" property. The third
 line adds an edge with the "knows" label between them and an associated "weight" property. Note the use of <code>next()</code>
@@ -2430,18 +2471,18 @@ is a large one-time load to do.
 <p>Retrieving this data is also a just writing a Gremlin statement:</p>
 </div>
 <section class="tabs tabs-6">
-  <input id="tab-1649699168-18" type="radio" name="radio-set-1649699168-18" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699168-18" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699168-19" type="radio" name="radio-set-1649699168-18" class="tab-selector-2" />
-  <label for="tab-1649699168-19" class="tab-label-2">groovy</label>
-  <input id="tab-1649699168-20" type="radio" name="radio-set-1649699168-18" class="tab-selector-3" />
-  <label for="tab-1649699168-20" class="tab-label-3">csharp</label>
-  <input id="tab-1649699168-21" type="radio" name="radio-set-1649699168-18" class="tab-selector-4" />
-  <label for="tab-1649699168-21" class="tab-label-4">java</label>
-  <input id="tab-1649699168-22" type="radio" name="radio-set-1649699168-18" class="tab-selector-5" />
-  <label for="tab-1649699168-22" class="tab-label-5">javascript</label>
-  <input id="tab-1649699168-23" type="radio" name="radio-set-1649699168-18" class="tab-selector-6" />
-  <label for="tab-1649699168-23" class="tab-label-6">python</label>
+  <input id="tab-1657795901-18" type="radio" name="radio-set-1657795901-18" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657795901-18" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657795901-19" type="radio" name="radio-set-1657795901-18" class="tab-selector-2" />
+  <label for="tab-1657795901-19" class="tab-label-2">groovy</label>
+  <input id="tab-1657795901-20" type="radio" name="radio-set-1657795901-18" class="tab-selector-3" />
+  <label for="tab-1657795901-20" class="tab-label-3">csharp</label>
+  <input id="tab-1657795901-21" type="radio" name="radio-set-1657795901-18" class="tab-selector-4" />
+  <label for="tab-1657795901-21" class="tab-label-4">java</label>
+  <input id="tab-1657795901-22" type="radio" name="radio-set-1657795901-18" class="tab-selector-5" />
+  <label for="tab-1657795901-22" class="tab-label-5">javascript</label>
+  <input id="tab-1657795901-23" type="radio" name="radio-set-1657795901-18" class="tab-selector-6" />
+  <label for="tab-1657795901-23" class="tab-label-6">python</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2505,6 +2546,12 @@ peopleMarkoKnows = g.V().has(<span class
     </div>
   </div>
 </section>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="go">marko, err := g.V().Has(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">marko</span><span class="delimiter">&quot;</span></span>).Next()
+peopleMarkoKnows, err := g.V().Has(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span>, <span class="string"><span class="delimiter">&quot;</span><span class="content">marko</span><span class="delimiter">&quot;</span></span>).Out(<span class="string"><span class="delimiter">&quot;</span><span class="content">knows</span><span class="delimiter">&quot;</span></span>).ToList()</code></pre>
+</div>
+</div>
 <div class="paragraph">
 <p>In all these examples presented so far there really isn&#8217;t a lot of difference in how the Gremlin itself looks. There
 are a few language syntax specific odds and ends, but for the most part Gremlin looks like Gremlin in all of the
@@ -2612,10 +2659,10 @@ utilize it as a pointer. For <code>Graph
 spawn <code>GraphTraversalSource</code> instances so as to write Gremlin:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699310-1" type="radio" name="radio-set-1649699310-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699310-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699310-2" type="radio" name="radio-set-1649699310-1" class="tab-selector-2" />
-  <label for="tab-1649699310-2" class="tab-label-2">groovy</label>
+  <input id="tab-1657796037-1" type="radio" name="radio-set-1657796037-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796037-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796037-2" type="radio" name="radio-set-1657796037-1" class="tab-selector-2" />
+  <label for="tab-1657796037-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2698,10 +2745,10 @@ system providers for two purposes:</p>
 <p>The following example in the Gremlin Console shows how to print all the features of a <code>Graph</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699310-3" type="radio" name="radio-set-1649699310-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699310-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699310-4" type="radio" name="radio-set-1649699310-3" class="tab-selector-2" />
-  <label for="tab-1649699310-4" class="tab-label-2">groovy</label>
+  <input id="tab-1657796037-3" type="radio" name="radio-set-1657796037-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796037-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796037-4" type="radio" name="radio-set-1657796037-3" class="tab-selector-2" />
+  <label for="tab-1657796037-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2711,15 +2758,17 @@ system providers for two purposes:</p>
 gremlin&gt; graph.features()
 ==&gt;FEATURES
 &gt; GraphFeatures
+&gt;-- <span class="key">IoRead</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">IoWrite</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">Computer</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">Persistence</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">ConcurrentAccess</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">ThreadedTransactions</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">Transactions</span>: <span class="predefined-constant">false</span>
-&gt;-- <span class="key">IoRead</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">IoWrite</span>: <span class="predefined-constant">true</span>
 &gt; VariableFeatures
 &gt;-- <span class="key">Variables</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">ByteValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">DoubleValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">FloatValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">IntegerValues</span>: <span class="predefined-constant">true</span>
@@ -2736,34 +2785,34 @@ gremlin&gt; graph.features()
 &gt;-- <span class="key">IntegerArrayValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">LongArrayValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">StringArrayValues</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">ByteValues</span>: <span class="predefined-constant">true</span>
 &gt; VertexFeatures
-&gt;-- <span class="key">MetaProperties</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">Upsert</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">AddVertices</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">RemoveVertices</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">MultiProperties</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">DuplicateMultiProperties</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span>
+&gt;-- <span class="key">MetaProperties</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">AddProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">StringIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span>
-&gt; VertexPropertyFeatures
 &gt;-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span>
-&gt;-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
+&gt; VertexPropertyFeatures
+&gt;-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">StringIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span>
+&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="predefined-type">Properties</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">ByteValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">DoubleValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">FloatValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">IntegerValues</span>: <span class="predefined-constant">true</span>
@@ -2780,23 +2829,23 @@ gremlin&gt; graph.features()
 &gt;-- <span class="key">IntegerArrayValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">LongArrayValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">StringArrayValues</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">ByteValues</span>: <span class="predefined-constant">true</span>
 &gt; EdgeFeatures
+&gt;-- <span class="key">AddEdges</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">RemoveEdges</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">Upsert</span>: <span class="predefined-constant">false</span>
-&gt;-- <span class="key">AddEdges</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">AddProperty</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">StringIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span>
 &gt;-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span>
+&gt;-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span>
 &gt; EdgePropertyFeatures
 &gt;-- <span class="predefined-type">Properties</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
+&gt;-- <span class="key">ByteValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">DoubleValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">FloatValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">IntegerValues</span>: <span class="predefined-constant">true</span>
@@ -2812,9 +2861,7 @@ gremlin&gt; graph.features()
 &gt;-- <span class="key">FloatArrayValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">IntegerArrayValues</span>: <span class="predefined-constant">true</span>
 &gt;-- <span class="key">LongArrayValues</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">StringArrayValues</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span>
-&gt;-- <span class="key">ByteValues</span>: <span class="predefined-constant">true</span></code></pre>
+&gt;-- <span class="key">StringArrayValues</span>: <span class="predefined-constant">true</span></code></pre>
 </div>
 </div>
     </div>
@@ -2834,10 +2881,10 @@ graph.features()</code></pre>
 <p>A common pattern for using features is to check their support prior to performing an operation:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699310-5" type="radio" name="radio-set-1649699310-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699310-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699310-6" type="radio" name="radio-set-1649699310-5" class="tab-selector-2" />
-  <label for="tab-1649699310-6" class="tab-label-2">groovy</label>
+  <input id="tab-1657796037-5" type="radio" name="radio-set-1657796037-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796037-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796037-6" type="radio" name="radio-set-1657796037-5" class="tab-selector-2" />
+  <label for="tab-1657796037-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2936,10 +2983,10 @@ of a name from different sources.</p>
 <p>A running example using vertex properties is provided below to demonstrate and explain the API.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699310-7" type="radio" name="radio-set-1649699310-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699310-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699310-8" type="radio" name="radio-set-1649699310-7" class="tab-selector-2" />
-  <label for="tab-1649699310-8" class="tab-label-2">groovy</label>
+  <input id="tab-1657796037-7" type="radio" name="radio-set-1657796037-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796037-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796037-8" type="radio" name="radio-set-1657796037-7" class="tab-selector-2" />
+  <label for="tab-1657796037-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3097,10 +3144,10 @@ A toy graph demonstrating all of the new
 <div class="title">Figure 3. TinkerPop Crew</div>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699310-9" type="radio" name="radio-set-1649699310-9" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699310-9" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699310-10" type="radio" name="radio-set-1649699310-9" class="tab-selector-2" />
-  <label for="tab-1649699310-10" class="tab-label-2">groovy</label>
+  <input id="tab-1657796037-9" type="radio" name="radio-set-1657796037-9" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796037-9" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796037-10" type="radio" name="radio-set-1657796037-9" class="tab-selector-2" />
+  <label for="tab-1657796037-10" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3168,10 +3215,10 @@ variables are intended to store metadata
 <p>An example of graph variables in use is presented below:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699310-11" type="radio" name="radio-set-1649699310-11" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699310-11" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699310-12" type="radio" name="radio-set-1649699310-11" class="tab-selector-2" />
-  <label for="tab-1649699310-12" class="tab-label-2">groovy</label>
+  <input id="tab-1657796037-11" type="radio" name="radio-set-1657796037-11" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796037-11" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796037-12" type="radio" name="radio-set-1657796037-11" class="tab-selector-2" />
+  <label for="tab-1657796037-12" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3809,10 +3856,10 @@ functionality is shown in more detail in
 accessed as a side-effect given the supplied key.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-1" type="radio" name="radio-set-1649699390-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-2" type="radio" name="radio-set-1649699390-1" class="tab-selector-2" />
-  <label for="tab-1649699390-2" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-1" type="radio" name="radio-set-1657796112-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-2" type="radio" name="radio-set-1657796112-1" class="tab-selector-2" />
+  <label for="tab-1657796112-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3997,10 +4044,10 @@ with lambdas, please read <a href="#a-no
 <p><span class="image right"><img src="../images/map-lambda.png" alt="map lambda" width="150"></span></p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-3" type="radio" name="radio-set-1649699390-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-4" type="radio" name="radio-set-1649699390-3" class="tab-selector-2" />
-  <label for="tab-1649699390-4" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-3" type="radio" name="radio-set-1657796112-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-4" type="radio" name="radio-set-1657796112-3" class="tab-selector-2" />
+  <label for="tab-1657796112-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4050,10 +4097,10 @@ g.V(<span class="integer">1</span>).out(
 <p><span class="image right"><img src="../images/filter-lambda.png" alt="filter lambda" width="160"></span></p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-5" type="radio" name="radio-set-1649699390-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-6" type="radio" name="radio-set-1649699390-5" class="tab-selector-2" />
-  <label for="tab-1649699390-6" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-5" type="radio" name="radio-set-1657796112-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-6" type="radio" name="radio-set-1657796112-5" class="tab-selector-2" />
+  <label for="tab-1657796112-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4106,10 +4153,10 @@ g.V().hasLabel(<span class="string"><spa
 <p><span class="image right"><img src="../images/side-effect-lambda.png" alt="side effect lambda" width="175"></span></p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-7" type="radio" name="radio-set-1649699390-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-8" type="radio" name="radio-set-1649699390-7" class="tab-selector-2" />
-  <label for="tab-1649699390-8" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-7" type="radio" name="radio-set-1657796112-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-8" type="radio" name="radio-set-1657796112-7" class="tab-selector-2" />
+  <label for="tab-1657796112-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4156,10 +4203,10 @@ g.V().sideEffect(outE().count().aggregat
 <p><span class="image right"><img src="../images/branch-lambda.png" alt="branch lambda" width="180"></span></p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-9" type="radio" name="radio-set-1649699390-9" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-9" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-10" type="radio" name="radio-set-1649699390-9" class="tab-selector-2" />
-  <label for="tab-1649699390-10" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-9" type="radio" name="radio-set-1657796112-9" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-9" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-10" type="radio" name="radio-set-1657796112-9" class="tab-selector-2" />
+  <label for="tab-1657796112-10" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4236,10 +4283,10 @@ However, some steps do not return a trav
 as terminal steps (<strong>terminal</strong>) and they are explained via the examples below.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-11" type="radio" name="radio-set-1649699390-11" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-11" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-12" type="radio" name="radio-set-1649699390-11" class="tab-selector-2" />
-  <label for="tab-1649699390-12" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-11" type="radio" name="radio-set-1657796112-11" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-11" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-12" type="radio" name="radio-set-1657796112-11" class="tab-selector-2" />
+  <label for="tab-1657796112-12" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4359,10 +4406,10 @@ worked on the same project together. Thi
 </div>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-13" type="radio" name="radio-set-1649699390-13" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-13" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-14" type="radio" name="radio-set-1649699390-13" class="tab-selector-2" />
-  <label for="tab-1649699390-14" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-13" type="radio" name="radio-set-1657796112-13" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-13" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-14" type="radio" name="radio-set-1657796112-13" class="tab-selector-2" />
+  <label for="tab-1657796112-14" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4475,10 +4522,10 @@ supports user provided ids.</p>
 created. Moreover, <code>GraphTraversalSource</code> maintains an <code>addV()</code> method.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-15" type="radio" name="radio-set-1649699390-15" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-15" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-16" type="radio" name="radio-set-1649699390-15" class="tab-selector-2" />
-  <label for="tab-1649699390-16" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-15" type="radio" name="radio-set-1657796112-15" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-15" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-16" type="radio" name="radio-set-1657796112-15" class="tab-selector-2" />
+  <label for="tab-1657796112-16" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4536,10 +4583,10 @@ that streamed into it. Moreover, if <cod
 previous step to enable vertex and edge creation with all its properties in one creation operation.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-17" type="radio" name="radio-set-1649699390-17" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-17" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-18" type="radio" name="radio-set-1649699390-17" class="tab-selector-2" />
-  <label for="tab-1649699390-18" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-17" type="radio" name="radio-set-1657796112-17" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-17" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-18" type="radio" name="radio-set-1657796112-17" class="tab-selector-2" />
+  <label for="tab-1657796112-18" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4613,10 +4660,10 @@ where everything at a particular point i
 <code>aggregate()</code> is called without a <code>Scope</code>, the default is <code>global</code>. An example is provided below.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-19" type="radio" name="radio-set-1649699390-19" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-19" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-20" type="radio" name="radio-set-1649699390-19" class="tab-selector-2" />
-  <label for="tab-1649699390-20" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-19" type="radio" name="radio-set-1657796112-19" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-19" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-20" type="radio" name="radio-set-1657796112-19" class="tab-selector-2" />
+  <label for="tab-1657796112-20" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4693,10 +4740,10 @@ g.V(<span class="integer">1</span>).out(
 <p>Finally, <code>aggregate()</code>-step can be modulated via <code>by()</code>-projection.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-21" type="radio" name="radio-set-1649699390-21" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-21" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-22" type="radio" name="radio-set-1649699390-21" class="tab-selector-2" />
-  <label for="tab-1649699390-22" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-21" type="radio" name="radio-set-1657796112-21" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-21" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-22" type="radio" name="radio-set-1657796112-21" class="tab-selector-2" />
+  <label for="tab-1657796112-22" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4736,10 +4783,10 @@ Prior to 3.4.3, <code>local</code> aggre
 </table>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-23" type="radio" name="radio-set-1649699390-23" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-23" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-24" type="radio" name="radio-set-1649699390-23" class="tab-selector-2" />
-  <label for="tab-1649699390-24" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-23" type="radio" name="radio-set-1657796112-23" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-23" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-24" type="radio" name="radio-set-1657796112-23" class="tab-selector-2" />
+  <label for="tab-1657796112-24" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4773,10 +4820,10 @@ though the interval selection is for 1 o
 filter (i.e. <code>[0..1]</code>), it passes through <code>aggregate()</code> and thus, stored before filtered.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-25" type="radio" name="radio-set-1649699390-25" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-25" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-26" type="radio" name="radio-set-1649699390-25" class="tab-selector-2" />
-  <label for="tab-1649699390-26" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-25" type="radio" name="radio-set-1657796112-25" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-25" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-26" type="radio" name="radio-set-1657796112-25" class="tab-selector-2" />
+  <label for="tab-1657796112-26" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4825,10 +4872,10 @@ filter (i.e. <code>[0..1]</code>), it pa
 </table>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-27" type="radio" name="radio-set-1649699390-27" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-27" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-28" type="radio" name="radio-set-1649699390-27" class="tab-selector-2" />
-  <label for="tab-1649699390-28" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-27" type="radio" name="radio-set-1657796112-27" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-27" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-28" type="radio" name="radio-set-1657796112-27" class="tab-selector-2" />
+  <label for="tab-1657796112-28" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4863,10 +4910,10 @@ original traverser to pass to the next s
 <p>An <a href="http://en.wikipedia.org/wiki/Infix_notation">infix notation</a> can be used as well.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-29" type="radio" name="radio-set-1649699390-29" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-29" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-30" type="radio" name="radio-set-1649699390-29" class="tab-selector-2" />
-  <label for="tab-1649699390-30" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-29" type="radio" name="radio-set-1657796112-29" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-29" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-30" type="radio" name="radio-set-1657796112-29" class="tab-selector-2" />
+  <label for="tab-1657796112-30" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4931,10 +4978,10 @@ to in Gremlin with the double underscore
 </table>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-31" type="radio" name="radio-set-1649699390-31" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-31" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-32" type="radio" name="radio-set-1649699390-31" class="tab-selector-2" />
-  <label for="tab-1649699390-32" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-31" type="radio" name="radio-set-1657796112-31" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-31" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-32" type="radio" name="radio-set-1657796112-31" class="tab-selector-2" />
+  <label for="tab-1657796112-32" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4978,10 +5025,10 @@ g.V().as(<span class="string"><span clas
 <p>A step can have any number of labels associated with it. This is useful for referencing the same step multiple times in a future step.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-33" type="radio" name="radio-set-1649699390-33" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-33" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-34" type="radio" name="radio-set-1649699390-33" class="tab-selector-2" />
-  <label for="tab-1649699390-34" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-33" type="radio" name="radio-set-1657796112-33" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-33" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-34" type="radio" name="radio-set-1657796112-33" class="tab-selector-2" />
+  <label for="tab-1657796112-34" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5035,10 +5082,10 @@ useful in the following situations:</p>
 </ul>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-35" type="radio" name="radio-set-1649699390-35" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-35" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-36" type="radio" name="radio-set-1649699390-35" class="tab-selector-2" />
-  <label for="tab-1649699390-36" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-35" type="radio" name="radio-set-1657796112-35" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-35" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-36" type="radio" name="radio-set-1657796112-35" class="tab-selector-2" />
+  <label for="tab-1657796112-36" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5091,10 +5138,10 @@ traverser with a <code>Traverser.bulk()<
 made more salient on a larger graph. Therefore, the example below leverages the <a href="#grateful-dead">Grateful Dead graph</a>.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-37" type="radio" name="radio-set-1649699390-37" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-37" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-38" type="radio" name="radio-set-1649699390-37" class="tab-selector-2" />
-  <label for="tab-1649699390-38" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-37" type="radio" name="radio-set-1657796112-37" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-37" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-38" type="radio" name="radio-set-1657796112-37" class="tab-selector-2" />
+  <label for="tab-1657796112-38" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5107,13 +5154,13 @@ gremlin&gt; g.io(<span class="string"><s
 gremlin&gt; g = traversal().withEmbedded(graph).withoutStrategies(LazyBarrierStrategy) <span class="comment">//</span>// <b class="conum">(1)</b>
 ==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">808</span> <span class="key">edges</span>:<span class="integer">8049</span>], standard]
 gremlin&gt; clockWithResult(<span class="integer">1</span>){g.V().both().both().both().count().next()} <span class="comment">//</span>// <b class="conum">(2)</b>
-==&gt;<span class="float">7163.911222</span>
+==&gt;<span class="float">7156.344623</span>
 ==&gt;<span class="integer">126653966</span>
 gremlin&gt; clockWithResult(<span class="integer">1</span>){g.V().repeat(both()).times(<span class="integer">3</span>).count().next()} <span class="comment">//</span>// <b class="conum">(3)</b>
-==&gt;<span class="float">7214.062451</span>
+==&gt;<span class="float">7953.988517</span>
 ==&gt;<span class="integer">126653966</span>
 gremlin&gt; clockWithResult(<span class="integer">1</span>){g.V().both().barrier().both().barrier().both().barrier().count().next()} <span class="comment">//</span>// <b class="conum">(4)</b>
-==&gt;<span class="float">11.368202</span>
+==&gt;<span class="float">12.297609999999999</span>
 ==&gt;<span class="integer">126653966</span></code></pre>
 </div>
 </div>
@@ -5161,10 +5208,10 @@ optimization scenario with the added ben
 "bulking optimization."</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-39" type="radio" name="radio-set-1649699390-39" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-39" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-40" type="radio" name="radio-set-1649699390-39" class="tab-selector-2" />
-  <label for="tab-1649699390-40" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-39" type="radio" name="radio-set-1657796112-39" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-39" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-40" type="radio" name="radio-set-1657796112-39" class="tab-selector-2" />
+  <label for="tab-1657796112-40" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5175,7 +5222,7 @@ gremlin&gt; g = traversal().withEmbedded
 ==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>], standard]
 gremlin&gt; g.io(<span class="string"><span class="delimiter">'</span><span class="content">data/grateful-dead.xml</span><span class="delimiter">'</span></span>).read().iterate()
 gremlin&gt; clockWithResult(<span class="integer">1</span>){g.V().both().both().both().count().next()}
-==&gt;<span class="float">16.523077999999998</span>
+==&gt;<span class="float">9.771813</span>
 ==&gt;<span class="integer">126653966</span>
 gremlin&gt; g.V().both().both().both().count().iterate().toString() <span class="comment">//</span>// <b class="conum">(2)</b>
 ==&gt;[TinkerGraphStep(vertex,<span class="type">[]</span>), VertexStep(BOTH,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(BOTH,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(BOTH,edge), CountGlobalStep, NoneStep]</code></pre>
@@ -5225,10 +5272,10 @@ means by which they are added. The gener
 while others can take an arbitrary amount.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-41" type="radio" name="radio-set-1649699390-41" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-41" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-42" type="radio" name="radio-set-1649699390-41" class="tab-selector-2" />
-  <label for="tab-1649699390-42" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-41" type="radio" name="radio-set-1657796112-41" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-41" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-42" type="radio" name="radio-set-1657796112-41" class="tab-selector-2" />
+  <label for="tab-1657796112-42" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5352,10 +5399,10 @@ on a step-by-step level and thus, as dis
 key. If multiple keys are provided, then a <code>Map&lt;String,Object&gt;</code> of sideEffects is emitted.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-43" type="radio" name="radio-set-1649699390-43" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-43" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-44" type="radio" name="radio-set-1649699390-43" class="tab-selector-2" />
-  <label for="tab-1649699390-44" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-43" type="radio" name="radio-set-1657796112-43" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-43" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-44" type="radio" name="radio-set-1657796112-43" class="tab-selector-2" />
+  <label for="tab-1657796112-44" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5408,10 +5455,10 @@ g.V().groupCount(<span class="string"><s
 it is possible to implement if/then/else-semantics as well as more complicated selections.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-45" type="radio" name="radio-set-1649699390-45" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-45" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-46" type="radio" name="radio-set-1649699390-45" class="tab-selector-2" />
-  <label for="tab-1649699390-46" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-45" type="radio" name="radio-set-1657796112-45" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-45" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-46" type="radio" name="radio-set-1657796112-45" class="tab-selector-2" />
+  <label for="tab-1657796112-46" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5466,10 +5513,10 @@ g.V().hasLabel(<span class="string"><spa
 <p>If the "false"-branch is not provided, then if/then-semantics are implemented.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-47" type="radio" name="radio-set-1649699390-47" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-47" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-48" type="radio" name="radio-set-1649699390-47" class="tab-selector-2" />
-  <label for="tab-1649699390-48" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-47" type="radio" name="radio-set-1657796112-47" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-47" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-48" type="radio" name="radio-set-1657796112-47" class="tab-selector-2" />
+  <label for="tab-1657796112-48" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5517,10 +5564,10 @@ g.V().choose(hasLabel(<span class="strin
 <p>Note that <code>choose()</code> can have an arbitrary number of options and moreover, can take an anonymous traversal as its choice function.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-49" type="radio" name="radio-set-1649699390-49" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-49" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-50" type="radio" name="radio-set-1649699390-49" class="tab-selector-2" />
-  <label for="tab-1649699390-50" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-49" type="radio" name="radio-set-1657796112-49" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-49" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-50" type="radio" name="radio-set-1657796112-49" class="tab-selector-2" />
+  <label for="tab-1657796112-50" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5558,10 +5605,10 @@ g.V().choose(hasLabel(<span class="strin
 <p>The <code>choose()</code>-step can leverage the <code>Pick.none</code> option match. For anything that does not match a specified option, the <code>none</code>-option is taken.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-51" type="radio" name="radio-set-1649699390-51" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-51" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-52" type="radio" name="radio-set-1649699390-51" class="tab-selector-2" />
-  <label for="tab-1649699390-52" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-51" type="radio" name="radio-set-1657796112-51" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-51" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-52" type="radio" name="radio-set-1657796112-51" class="tab-selector-2" />
+  <label for="tab-1657796112-52" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5610,10 +5657,10 @@ g.V().choose(hasLabel(<span class="strin
 least one element.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-53" type="radio" name="radio-set-1649699390-53" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-53" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-54" type="radio" name="radio-set-1649699390-53" class="tab-selector-2" />
-  <label for="tab-1649699390-54" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-53" type="radio" name="radio-set-1657796112-53" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-53" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-54" type="radio" name="radio-set-1657796112-53" class="tab-selector-2" />
+  <label for="tab-1657796112-54" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5660,16 +5707,17 @@ g.V().hasLabel(<span class="string"><spa
 <p>To randomly filter out a traverser, use the <code>coin()</code>-step (<strong>filter</strong>). The provided double argument biases the "coin toss."</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-55" type="radio" name="radio-set-1649699390-55" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-55" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-56" type="radio" name="radio-set-1649699390-55" class="tab-selector-2" />
-  <label for="tab-1649699390-56" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-55" type="radio" name="radio-set-1657796112-55" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-55" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-56" type="radio" name="radio-set-1657796112-55" class="tab-selector-2" />
+  <label for="tab-1657796112-56" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; g.V().coin(<span class="float">0.5</span>)
-==&gt;v[<span class="integer">4</span>]
+==&gt;v[<span class="integer">2</span>]
+==&gt;v[<span class="integer">5</span>]
 ==&gt;v[<span class="integer">6</span>]
 gremlin&gt; g.V().coin(<span class="float">0.0</span>)
 gremlin&gt; g.V().coin(<span class="float">1.0</span>)
@@ -5723,10 +5771,10 @@ that supports <code>GraphComputer</code>
 </table>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-57" type="radio" name="radio-set-1649699390-57" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-57" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-58" type="radio" name="radio-set-1649699390-57" class="tab-selector-2" />
-  <label for="tab-1649699390-58" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-57" type="radio" name="radio-set-1657796112-57" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-57" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-58" type="radio" name="radio-set-1657796112-57" class="tab-selector-2" />
+  <label for="tab-1657796112-58" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5801,10 +5849,10 @@ configuration keys from the <code>Connec
 steps like <a href="#choose-step"><code>choose()</code>-step</a> or <a href="#coalesce-step"><code>coalesce()</code>-step</a>.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-59" type="radio" name="radio-set-1649699390-59" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-59" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-60" type="radio" name="radio-set-1649699390-59" class="tab-selector-2" />
-  <label for="tab-1649699390-60" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-59" type="radio" name="radio-set-1657796112-59" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-59" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-60" type="radio" name="radio-set-1657796112-59" class="tab-selector-2" />
+  <label for="tab-1657796112-60" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5874,10 +5922,10 @@ g.V().coalesce(
 <p>The <code>count()</code>-step (<strong>map</strong>) counts the total number of represented traversers in the streams (i.e. the bulk count).</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-61" type="radio" name="radio-set-1649699390-61" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-61" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-62" type="radio" name="radio-set-1649699390-61" class="tab-selector-2" />
-  <label for="tab-1649699390-62" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-61" type="radio" name="radio-set-1657796112-61" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-61" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-62" type="radio" name="radio-set-1657796112-61" class="tab-selector-2" />
+  <label for="tab-1657796112-62" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5953,10 +6001,10 @@ analyzes the path of the traverser thus
 traversal computation. If non-cyclic behavior is desired, see <a href="#simplepath-step"><code>simplePath()</code></a>.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-63" type="radio" name="radio-set-1649699390-63" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-63" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-64" type="radio" name="radio-set-1649699390-63" class="tab-selector-2" />
-  <label for="tab-1649699390-64" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-63" type="radio" name="radio-set-1657796112-63" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-63" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-64" type="radio" name="radio-set-1657796112-63" class="tab-selector-2" />
+  <label for="tab-1657796112-64" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6024,10 +6072,10 @@ g.V(<span class="integer">1</span>).as(<
 traverser&#8217;s bulk is greater than 1, then it is set to 1 before being emitted.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-65" type="radio" name="radio-set-1649699390-65" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-65" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-66" type="radio" name="radio-set-1649699390-65" class="tab-selector-2" />
-  <label for="tab-1649699390-66" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-65" type="radio" name="radio-set-1657796112-65" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-65" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-66" type="radio" name="radio-set-1657796112-65" class="tab-selector-2" />
+  <label for="tab-1657796112-66" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6080,10 +6128,10 @@ element as it is a first-class citizen.<
 has been seen or not.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-67" type="radio" name="radio-set-1649699390-67" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-67" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-68" type="radio" name="radio-set-1649699390-67" class="tab-selector-2" />
-  <label for="tab-1649699390-68" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-67" type="radio" name="radio-set-1657796112-67" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-67" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-68" type="radio" name="radio-set-1657796112-67" class="tab-selector-2" />
+  <label for="tab-1657796112-68" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6118,10 +6166,10 @@ g.V().dedup().by(label).values(<span cla
 to the current traverser object, but to the path history of the traverser.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-69" type="radio" name="radio-set-1649699390-69" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-69" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-70" type="radio" name="radio-set-1649699390-69" class="tab-selector-2" />
-  <label for="tab-1649699390-70" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-69" type="radio" name="radio-set-1657796112-69" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-69" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-70" type="radio" name="radio-set-1657796112-69" class="tab-selector-2" />
+  <label for="tab-1657796112-70" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6180,10 +6228,10 @@ g.V().as(<span class="string"><span clas
 is a filter step because the traversal yields no outgoing objects.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-71" type="radio" name="radio-set-1649699390-71" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-71" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-72" type="radio" name="radio-set-1649699390-71" class="tab-selector-2" />
-  <label for="tab-1649699390-72" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-71" type="radio" name="radio-set-1657796112-71" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-71" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-72" type="radio" name="radio-set-1657796112-71" class="tab-selector-2" />
+  <label for="tab-1657796112-72" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6236,10 +6284,10 @@ g.V()</code></pre>
 <p>The <code>elementMap()</code>-step yields a <code>Map</code> representation of the structure of an element.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-73" type="radio" name="radio-set-1649699390-73" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-73" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-74" type="radio" name="radio-set-1649699390-73" class="tab-selector-2" />
-  <label for="tab-1649699390-74" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-73" type="radio" name="radio-set-1657796112-73" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-73" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-74" type="radio" name="radio-set-1657796112-73" class="tab-selector-2" />
+  <label for="tab-1657796112-74" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6295,10 +6343,10 @@ then only the first item encountered wil
 assumption should serve the greatest number of use cases.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-75" type="radio" name="radio-set-1649699390-75" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-75" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-76" type="radio" name="radio-set-1649699390-75" class="tab-selector-2" />
-  <label for="tab-1649699390-76" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-75" type="radio" name="radio-set-1657796112-75" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-75" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-76" type="radio" name="radio-set-1657796112-75" class="tab-selector-2" />
+  <label for="tab-1657796112-76" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6382,33 +6430,33 @@ traversal strategy being applied. The se
 post strategy application. The final traversal is the resultant execution plan.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-77" type="radio" name="radio-set-1649699390-77" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-77" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-78" type="radio" name="radio-set-1649699390-77" class="tab-selector-2" />
-  <label for="tab-1649699390-78" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-77" type="radio" name="radio-set-1657796112-77" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-77" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-78" type="radio" name="radio-set-1657796112-77" class="tab-selector-2" />
+  <label for="tab-1657796112-78" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
 <div class="content">
 <pre class="CodeRay highlight"><code data-lang="groovy">gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).outE().identity().inV().count().is(gt(<span class="integer">5</span>)).explain()
 ==&gt;Traversal Explanation
-==========================================================================================================================================================================================
+==================================================================================================================================================================================
 Original Traversal                    [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 
 ConnectiveStrategy              [D]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 IdentityRemovalStrategy         [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-ByModulatorOptimizationStrategy [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-CountStrategy                   [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-IncidentToAdjacentStrategy      [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-MatchPredicateStrategy          [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-FilterRankingStrategy           [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-InlineFilterStrategy            [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-RepeatUnrollStrategy            [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-PathRetractionStrategy          [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-EarlyLimitStrategy              [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-AdjacentToIncidentStrategy      [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+MatchPredicateStrategy          [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+FilterRankingStrategy           [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+RepeatUnrollStrategy            [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+IncidentToAdjacentStrategy      [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+EarlyLimitStrategy              [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+InlineFilterStrategy            [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+AdjacentToIncidentStrategy      [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+ByModulatorOptimizationStrategy [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+ProductiveByStrategy            [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+CountStrategy                   [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
+PathRetractionStrategy          [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 LazyBarrierStrategy             [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
-ProductiveByStrategy            [O]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 TinkerGraphCountStrategy        [P]   [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 TinkerGraphStepStrategy         [P]   [TinkerGraphStep(vertex,[~label.eq(person)]), VertexStep(OUT,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
 ProfileStrategy                 [F]   [TinkerGraphStep(vertex,[~label.eq(person)]), VertexStep(OUT,edge), RangeGlobalStep(<span class="integer">0</span>,<span class="integer">6</span>), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
@@ -6441,10 +6489,10 @@ that is a function of the aggregate. The
 <a href="#unfold-step"><code>unfold()</code></a>-step for the inverse functionality.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-79" type="radio" name="radio-set-1649699390-79" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-79" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-80" type="radio" name="radio-set-1649699390-79" class="tab-selector-2" />
-  <label for="tab-1649699390-80" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-79" type="radio" name="radio-set-1657796112-79" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-79" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-80" type="radio" name="radio-set-1657796112-79" class="tab-selector-2" />
+  <label for="tab-1657796112-80" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6576,10 +6624,10 @@ start a <code>GraphTraversal</code>, but
 start step.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-81" type="radio" name="radio-set-1649699390-81" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-81" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-82" type="radio" name="radio-set-1649699390-81" class="tab-selector-2" />
-  <label for="tab-1649699390-82" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-81" type="radio" name="radio-set-1657796112-81" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-81" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-82" type="radio" name="radio-set-1657796112-81" class="tab-selector-2" />
+  <label for="tab-1657796112-82" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6643,10 +6691,10 @@ particular graph system provider impleme
 </table>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-83" type="radio" name="radio-set-1649699390-83" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-83" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-84" type="radio" name="radio-set-1649699390-83" class="tab-selector-2" />
-  <label for="tab-1649699390-84" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-83" type="radio" name="radio-set-1657796112-83" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-83" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-84" type="radio" name="radio-set-1657796112-83" class="tab-selector-2" />
+  <label for="tab-1657796112-84" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6702,10 +6750,10 @@ organizes the objects according to some
 reduced. An example is provided below.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-85" type="radio" name="radio-set-1649699390-85" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-85" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-86" type="radio" name="radio-set-1649699390-85" class="tab-selector-2" />
-  <label for="tab-1649699390-86" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-85" type="radio" name="radio-set-1657796112-85" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-85" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-86" type="radio" name="radio-set-1657796112-85" class="tab-selector-2" />
+  <label for="tab-1657796112-86" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6778,10 +6826,10 @@ g.V().group().by(label).by(count()) <spa
 </div>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-87" type="radio" name="radio-set-1649699390-87" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-87" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-88" type="radio" name="radio-set-1649699390-87" class="tab-selector-2" />
-  <label for="tab-1649699390-88" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-87" type="radio" name="radio-set-1657796112-87" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-87" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-88" type="radio" name="radio-set-1657796112-87" class="tab-selector-2" />
+  <label for="tab-1657796112-88" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6827,10 +6875,10 @@ group the incoming object by.</p>
 </div>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-89" type="radio" name="radio-set-1649699390-89" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-89" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-90" type="radio" name="radio-set-1649699390-89" class="tab-selector-2" />
-  <label for="tab-1649699390-90" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-89" type="radio" name="radio-set-1657796112-89" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-89" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-90" type="radio" name="radio-set-1657796112-89" class="tab-selector-2" />
+  <label for="tab-1657796112-90" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -6910,10 +6958,10 @@ it received to its output. Internal to <
 </ul>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-91" type="radio" name="radio-set-1649699390-91" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-91" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-92" type="radio" name="radio-set-1649699390-91" class="tab-selector-2" />
-  <label for="tab-1649699390-92" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-91" type="radio" name="radio-set-1657796112-91" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-91" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1657796112-92" type="radio" name="radio-set-1657796112-91" class="tab-selector-2" />
+  <label for="tab-1657796112-92" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -7078,10 +7126,10 @@ may provide a partial match extension.</
 <p>The <code>id()</code>-step (<strong>map</strong>) takes an <code>Element</code> and extracts its identifier from it.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1649699390-93" type="radio" name="radio-set-1649699390-93" class="tab-selector-1" checked="checked" />
-  <label for="tab-1649699390-93" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1649699390-94" type="radio" name="radio-set-1649699390-93" class="tab-selector-2" />
-  <label for="tab-1649699390-94" class="tab-label-2">groovy</label>
+  <input id="tab-1657796112-93" type="radio" name="radio-set-1657796112-93" class="tab-selector-1" checked="checked" />
+  <label for="tab-1657796112-93" class="tab-label-1">console (groovy)</label>

[... 4604 lines stripped ...]