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 2019/05/24 18:37:08 UTC

svn commit: r1859897 [2/21] - in /tinkerpop/site: docs/3.4.2-SNAPSHOT/dev/developer/ docs/3.4.2-SNAPSHOT/dev/io/ docs/3.4.2-SNAPSHOT/dev/provider/ docs/3.4.2-SNAPSHOT/recipes/ docs/3.4.2-SNAPSHOT/reference/ docs/3.4.2-SNAPSHOT/tutorials/getting-started...

Modified: tinkerpop/site/docs/3.4.2-SNAPSHOT/recipes/index.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.4.2-SNAPSHOT/recipes/index.html?rev=1859897&r1=1859896&r2=1859897&view=diff
==============================================================================
--- tinkerpop/site/docs/3.4.2-SNAPSHOT/recipes/index.html (original)
+++ tinkerpop/site/docs/3.4.2-SNAPSHOT/recipes/index.html Fri May 24 18:37:06 2019
@@ -914,10 +914,10 @@ provide some basic building blocks for v
 traversal on the paths found between them. Consider the following examples using the modern toy graph:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297349-1" type="radio" name="radio-set-1553297349-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297349-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297349-2" type="radio" name="radio-set-1553297349-1" class="tab-selector-2" />
-  <label for="tab-1553297349-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720222-1" type="radio" name="radio-set-1558720222-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720222-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720222-2" type="radio" name="radio-set-1558720222-1" class="tab-selector-2" />
+  <label for="tab-1558720222-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -992,10 +992,10 @@ scenarios. For one such example, conside
 vertices:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297349-3" type="radio" name="radio-set-1553297349-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297349-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297349-4" type="radio" name="radio-set-1553297349-3" class="tab-selector-2" />
-  <label for="tab-1553297349-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558720222-3" type="radio" name="radio-set-1558720222-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720222-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720222-4" type="radio" name="radio-set-1558720222-3" class="tab-selector-2" />
+  <label for="tab-1558720222-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1044,10 +1044,10 @@ to extract the known job, the company th
 the known person completed an application.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297349-5" type="radio" name="radio-set-1553297349-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297349-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297349-6" type="radio" name="radio-set-1553297349-5" class="tab-selector-2" />
-  <label for="tab-1553297349-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558720222-5" type="radio" name="radio-set-1558720222-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720222-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720222-6" type="radio" name="radio-set-1558720222-5" class="tab-selector-2" />
+  <label for="tab-1558720222-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1183,10 +1183,10 @@ demonstrate how some of these different
 edges associated to each vertex. The following examples use the modern toy graph:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297416-1" type="radio" name="radio-set-1553297416-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297416-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297416-2" type="radio" name="radio-set-1553297416-1" class="tab-selector-2" />
-  <label for="tab-1553297416-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720303-1" type="radio" name="radio-set-1558720303-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720303-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720303-2" type="radio" name="radio-set-1558720303-1" class="tab-selector-2" />
+  <label for="tab-1558720303-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1281,10 +1281,10 @@ graph for demonstration purposes:</p>
 <p><span class="image"><img src="../images/betweeness-example.png" alt="betweeness example" width="600"></span></p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297416-3" type="radio" name="radio-set-1553297416-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297416-3" class="tab-label-1">console (groovy )</label>
-  <input id="tab-1553297416-4" type="radio" name="radio-set-1553297416-3" class="tab-selector-2" />
-  <label for="tab-1553297416-4" class="tab-label-2">groovy </label>
+  <input id="tab-1558720303-3" type="radio" name="radio-set-1558720303-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720303-3" class="tab-label-1">console (groovy )</label>
+  <input id="tab-1558720303-4" type="radio" name="radio-set-1558720303-3" class="tab-selector-2" />
+  <label for="tab-1558720303-4" class="tab-label-2">groovy </label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1412,10 +1412,10 @@ pairs).
 other reachable vertices in the graph. The following examples use the modern toy graph:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297416-5" type="radio" name="radio-set-1553297416-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297416-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297416-6" type="radio" name="radio-set-1553297416-5" class="tab-selector-2" />
-  <label for="tab-1553297416-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558720303-5" type="radio" name="radio-set-1558720303-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720303-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720303-6" type="radio" name="radio-set-1558720303-5" class="tab-selector-2" />
+  <label for="tab-1558720303-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1521,10 +1521,10 @@ relative importance of adjacent vertices
 give it the highest rank. Consider the following example using the Grateful Dead graph:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297416-7" type="radio" name="radio-set-1553297416-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297416-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297416-8" type="radio" name="radio-set-1553297416-7" class="tab-selector-2" />
-  <label for="tab-1553297416-8" class="tab-label-2">groovy</label>
+  <input id="tab-1558720303-7" type="radio" name="radio-set-1558720303-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720303-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720303-8" type="radio" name="radio-set-1558720303-7" class="tab-selector-2" />
+  <label for="tab-1558720303-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1602,6 +1602,39 @@ can shorten the time required to get a r
 <a href="http://tinkerpop.apache.org/docs/3.4.2-SNAPSHOT/reference/#pagerank-step">pageRank()</a>-step which is designed to work with
 <code>GraphComputer</code> (OLAP) based traversals.</p>
 </div>
+<section class="tabs tabs-2">
+  <input id="tab-1558720303-9" type="radio" name="radio-set-1558720303-9" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720303-9" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720303-10" type="radio" name="radio-set-1558720303-9" class="tab-selector-2" />
+  <label for="tab-1558720303-10" 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 = graph.traversal().withComputer()
+==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">6</span>], graphcomputer]
+gremlin&gt; g.V().pageRank().by(<span class="string"><span class="delimiter">'</span><span class="content">pageRank</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">pageRank</span><span class="delimiter">'</span></span>)
+==&gt;<span class="float">0.14598540152719106</span>
+==&gt;<span class="float">0.14598540152719106</span>
+==&gt;<span class="float">0.3047200907912249</span>
+==&gt;<span class="float">0.17579889899708231</span>
+==&gt;<span class="float">0.11375510357865541</span>
+==&gt;<span class="float">0.11375510357865541</span></code></pre>
+</div>
+</div>
+    </div>
+  </div>
+  <div class="tabcontent">
+    <div class="tabcontent-2">
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy">g = graph.traversal().withComputer()
+g.V().pageRank().by(<span class="string"><span class="delimiter">'</span><span class="content">pageRank</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">pageRank</span><span class="delimiter">'</span></span>)</code></pre>
+</div>
+</div>
+    </div>
+  </div>
+</section>
 </div>
 </div>
 </div>
@@ -1631,10 +1664,10 @@ patterns described in this section.</p>
 appear by way of some side-effect steps like <code>store()</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-1" type="radio" name="radio-set-1553297509-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-2" type="radio" name="radio-set-1553297509-1" class="tab-selector-2" />
-  <label for="tab-1553297509-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-1" type="radio" name="radio-set-1558720419-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-2" type="radio" name="radio-set-1558720419-1" class="tab-selector-2" />
+  <label for="tab-1558720419-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1663,10 +1696,10 @@ g.V().store(<span class="string"><span c
 similar fashion to lists:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-3" type="radio" name="radio-set-1553297509-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-4" type="radio" name="radio-set-1553297509-3" class="tab-selector-2" />
-  <label for="tab-1553297509-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-3" type="radio" name="radio-set-1558720419-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-4" type="radio" name="radio-set-1558720419-3" class="tab-selector-2" />
+  <label for="tab-1558720419-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1699,10 +1732,10 @@ means than what is demonstrated.</p>
 <p>It may seem simple, but the most obvious choice to modifying what is in a list is to simply <code>unfold()</code> the <code>List</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-5" type="radio" name="radio-set-1553297509-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-6" type="radio" name="radio-set-1553297509-5" class="tab-selector-2" />
-  <label for="tab-1553297509-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-5" type="radio" name="radio-set-1558720419-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-6" type="radio" name="radio-set-1558720419-5" class="tab-selector-2" />
+  <label for="tab-1558720419-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1742,10 +1775,10 @@ traverser as it just flattens <code>List
 result, but consider what happens when there is more than one:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-7" type="radio" name="radio-set-1553297509-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-8" type="radio" name="radio-set-1553297509-7" class="tab-selector-2" />
-  <label for="tab-1553297509-8" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-7" type="radio" name="radio-set-1558720419-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-8" type="radio" name="radio-set-1558720419-7" class="tab-selector-2" />
+  <label for="tab-1558720419-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1787,10 +1820,10 @@ While this approach may be acceptable, t
 structure of the <code>List</code> traversers "locally" <code>unfold()</code> the lists to transform them:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-9" type="radio" name="radio-set-1553297509-9" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-9" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-10" type="radio" name="radio-set-1553297509-9" class="tab-selector-2" />
-  <label for="tab-1553297509-10" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-9" type="radio" name="radio-set-1558720419-9" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-9" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-10" type="radio" name="radio-set-1558720419-9" class="tab-selector-2" />
+  <label for="tab-1558720419-10" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1825,10 +1858,10 @@ thus maintaining two traverser results.<
 <p>This pattern for unfolding and folding <code>List</code> traversers ends up having other applications:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-11" type="radio" name="radio-set-1553297509-11" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-11" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-12" type="radio" name="radio-set-1553297509-11" class="tab-selector-2" />
-  <label for="tab-1553297509-12" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-11" type="radio" name="radio-set-1558720419-11" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-11" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-12" type="radio" name="radio-set-1558720419-11" class="tab-selector-2" />
+  <label for="tab-1558720419-12" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1906,10 +1939,10 @@ especially in cases where the expected o
 form of a <code>List</code>. For example, consider the following three traversals:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-13" type="radio" name="radio-set-1553297509-13" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-13" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-14" type="radio" name="radio-set-1553297509-13" class="tab-selector-2" />
-  <label for="tab-1553297509-14" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-13" type="radio" name="radio-set-1558720419-13" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-13" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-14" type="radio" name="radio-set-1558720419-13" class="tab-selector-2" />
+  <label for="tab-1558720419-14" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -1990,10 +2023,10 @@ three results (i.e. triple) that could t
 the use of <code>store()</code> to aid in construction of this <code>List</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-15" type="radio" name="radio-set-1553297509-15" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-15" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-16" type="radio" name="radio-set-1553297509-15" class="tab-selector-2" />
-  <label for="tab-1553297509-16" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-15" type="radio" name="radio-set-1558720419-15" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-15" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-16" type="radio" name="radio-set-1558720419-15" class="tab-selector-2" />
+  <label for="tab-1558720419-16" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2104,10 +2137,10 @@ means that each traverser can effectivel
 vertices each:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-17" type="radio" name="radio-set-1553297509-17" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-17" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-18" type="radio" name="radio-set-1553297509-17" class="tab-selector-2" />
-  <label for="tab-1553297509-18" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-17" type="radio" name="radio-set-1558720419-17" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-17" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-18" type="radio" name="radio-set-1558720419-17" class="tab-selector-2" />
+  <label for="tab-1558720419-18" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2134,10 +2167,10 @@ vertices each:</p>
 results.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-19" type="radio" name="radio-set-1553297509-19" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-19" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-20" type="radio" name="radio-set-1553297509-19" class="tab-selector-2" />
-  <label for="tab-1553297509-20" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-19" type="radio" name="radio-set-1558720419-19" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-19" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-20" type="radio" name="radio-set-1558720419-19" class="tab-selector-2" />
+  <label for="tab-1558720419-20" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2204,10 +2237,10 @@ the stream from <code>union()</code> to
 to end up with a <code>Map</code> is with <code>valueMap()</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-21" type="radio" name="radio-set-1553297509-21" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-21" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-22" type="radio" name="radio-set-1553297509-21" class="tab-selector-2" />
-  <label for="tab-1553297509-22" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-21" type="radio" name="radio-set-1558720419-21" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-21" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-22" type="radio" name="radio-set-1558720419-21" class="tab-selector-2" />
+  <label for="tab-1558720419-22" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2234,10 +2267,10 @@ property stored as a <code>List</code>.
 by avoiding use of <code>valueMap()</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-23" type="radio" name="radio-set-1553297509-23" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-23" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-24" type="radio" name="radio-set-1553297509-23" class="tab-selector-2" />
-  <label for="tab-1553297509-24" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-23" type="radio" name="radio-set-1558720419-23" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-23" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-24" type="radio" name="radio-set-1558720419-23" class="tab-selector-2" />
+  <label for="tab-1558720419-24" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2267,10 +2300,10 @@ by avoiding use of <code>valueMap()</cod
 generally applicable to processing any <code>Map</code> instances with any sorts of values:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-25" type="radio" name="radio-set-1553297509-25" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-25" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-26" type="radio" name="radio-set-1553297509-25" class="tab-selector-2" />
-  <label for="tab-1553297509-26" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-25" type="radio" name="radio-set-1558720419-25" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-25" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-26" type="radio" name="radio-set-1558720419-25" class="tab-selector-2" />
+  <label for="tab-1558720419-26" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2320,10 +2353,10 @@ desired output before taking this approa
 unavoidable extraneous keys in the output <code>Map</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-27" type="radio" name="radio-set-1553297509-27" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-27" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-28" type="radio" name="radio-set-1553297509-27" class="tab-selector-2" />
-  <label for="tab-1553297509-28" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-27" type="radio" name="radio-set-1558720419-27" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-27" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-28" type="radio" name="radio-set-1558720419-27" class="tab-selector-2" />
+  <label for="tab-1558720419-28" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2363,10 +2396,10 @@ every single vertex in the traversal str
 supplied. While this may be an acceptable output, it is possible to shape the <code>Map</code> to be "nicer":</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-29" type="radio" name="radio-set-1553297509-29" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-29" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-30" type="radio" name="radio-set-1553297509-29" class="tab-selector-2" />
-  <label for="tab-1553297509-30" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-29" type="radio" name="radio-set-1558720419-29" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-29" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-30" type="radio" name="radio-set-1558720419-29" class="tab-selector-2" />
+  <label for="tab-1558720419-30" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2416,10 +2449,10 @@ prior to reconstructing the <code>Map</c
 earlier to flatten <code>List</code> values within a <code>Map</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-31" type="radio" name="radio-set-1553297509-31" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-31" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-32" type="radio" name="radio-set-1553297509-31" class="tab-selector-2" />
-  <label for="tab-1553297509-32" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-31" type="radio" name="radio-set-1558720419-31" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-31" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-32" type="radio" name="radio-set-1558720419-31" class="tab-selector-2" />
+  <label for="tab-1558720419-32" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2469,10 +2502,10 @@ here involves the use of a <code>union()
 reconstructed as a new <code>Map</code> that has been merged together:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297509-33" type="radio" name="radio-set-1553297509-33" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297509-33" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297509-34" type="radio" name="radio-set-1553297509-33" class="tab-selector-2" />
-  <label for="tab-1553297509-34" class="tab-label-2">groovy</label>
+  <input id="tab-1558720419-33" type="radio" name="radio-set-1558720419-33" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-33" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-34" type="radio" name="radio-set-1558720419-33" class="tab-selector-2" />
+  <label for="tab-1558720419-34" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2486,7 +2519,7 @@ reconstructed as a new <code>Map</code>
            group().
              by(keys).
              by(select(values).unfold())
-==&gt;[<span class="key">id</span>:<span class="integer">1</span>,<span class="key">degree</span>:<span class="integer">3</span>,<span class="key">label</span>:person,<span class="key">name</span>:marko,<span class="key">age</span>:<span class="integer">29</span>]</code></pre>
+==&gt;[<span class="key">id</span>:<span class="integer">1</span>,<span class="key">degree</span>:<span class="integer">3</span>,<span class="key">name</span>:marko,<span class="key">label</span>:person,<span class="key">age</span>:<span class="integer">29</span>]</code></pre>
 </div>
 </div>
     </div>
@@ -2529,6 +2562,53 @@ supplied to <code>union()</code>, they w
 a <code>List</code> back for all the values of the new <code>Map</code>. With some added logic the <code>Map</code> values can be flattened out of
 <code>List</code> instances when necessary:</p>
 </div>
+<section class="tabs tabs-2">
+  <input id="tab-1558720419-35" type="radio" name="radio-set-1558720419-35" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720419-35" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720419-36" type="radio" name="radio-set-1558720419-35" class="tab-selector-2" />
+  <label for="tab-1558720419-36" 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().
+           has(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">marko</span><span class="delimiter">'</span></span>).
+           union(valueMap().with(WithOptions.tokens),
+                 project(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>).
+                   by(constant(<span class="integer">100</span>))).
+           unfold().
+           group().
+             by(keys).
+             by(select(values).
+                unfold().
+                fold().
+                choose(count(local).is(eq(<span class="integer">1</span>)), unfold()))
+==&gt;[<span class="key">id</span>:<span class="integer">1</span>,<span class="key">name</span>:marko,<span class="key">label</span>:person,<span class="key">age</span>:[<span class="integer">29</span>,<span class="integer">100</span>]]</code></pre>
+</div>
+</div>
+    </div>
+  </div>
+  <div class="tabcontent">
+    <div class="tabcontent-2">
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy">g.V().
+  has(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">marko</span><span class="delimiter">'</span></span>).
+  union(valueMap().with(WithOptions.tokens),
+        project(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>).
+          by(constant(<span class="integer">100</span>))).
+  unfold().
+  group().
+    by(keys).
+    by(select(values).
+       unfold().
+       fold().
+       choose(count(local).is(eq(<span class="integer">1</span>)), unfold()))</code></pre>
+</div>
+</div>
+    </div>
+  </div>
+</section>
 </div>
 </div>
 <div class="sect1">
@@ -2565,10 +2645,10 @@ component membership is stored in the gr
 <p><span class="image"><img src="../images/connected-components.png" alt="connected components" width="600"></span></p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297742-1" type="radio" name="radio-set-1553297742-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297742-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297742-2" type="radio" name="radio-set-1553297742-1" class="tab-selector-2" />
-  <label for="tab-1553297742-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720677-1" type="radio" name="radio-set-1558720677-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720677-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720677-2" type="radio" name="radio-set-1558720677-1" class="tab-selector-2" />
+  <label for="tab-1558720677-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2614,10 +2694,10 @@ described in more detail in the
 The traversal looks like:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297742-3" type="radio" name="radio-set-1553297742-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297742-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297742-4" type="radio" name="radio-set-1553297742-3" class="tab-selector-2" />
-  <label for="tab-1553297742-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558720677-3" type="radio" name="radio-set-1558720677-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720677-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720677-4" type="radio" name="radio-set-1558720677-3" class="tab-selector-2" />
+  <label for="tab-1558720677-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2626,7 +2706,7 @@ The traversal looks like:</p>
              group().by(ConnectedComponent.component).
              select(values).unfold()
 ==&gt;[v[D],v[E]]
-==&gt;[v[B],v[A],v[C]]
+==&gt;[v[B],v[C],v[A]]
 ==&gt;[v[F]]</code></pre>
 </div>
 </div>
@@ -2661,10 +2741,10 @@ default property key within which the re
 <p>A straightforward way to detect the various subgraphs with an OLTP traversal is to do this:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297742-5" type="radio" name="radio-set-1553297742-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297742-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297742-6" type="radio" name="radio-set-1553297742-5" class="tab-selector-2" />
-  <label for="tab-1553297742-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558720677-5" type="radio" name="radio-set-1558720677-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720677-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720677-6" type="radio" name="radio-set-1558720677-5" class="tab-selector-2" />
+  <label for="tab-1558720677-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2802,10 +2882,10 @@ depicted below Gremlin could be use to d
 <p><span class="image"><img src="../images/graph-cycle.png" alt="graph cycle" width="250"></span></p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297809-1" type="radio" name="radio-set-1553297809-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297809-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297809-2" type="radio" name="radio-set-1553297809-1" class="tab-selector-2" />
-  <label for="tab-1553297809-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720741-1" type="radio" name="radio-set-1558720741-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720741-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720741-2" type="radio" name="radio-set-1558720741-1" class="tab-selector-2" />
+  <label for="tab-1558720741-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2879,10 +2959,10 @@ It also respected the directionality of
 themselves). To do so, you would need to <code>.emit()</code> a Traverser before the repeat()-loop.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297809-3" type="radio" name="radio-set-1553297809-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297809-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297809-4" type="radio" name="radio-set-1553297809-3" class="tab-selector-2" />
-  <label for="tab-1553297809-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558720741-3" type="radio" name="radio-set-1558720741-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720741-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720741-4" type="radio" name="radio-set-1558720741-3" class="tab-selector-2" />
+  <label for="tab-1558720741-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2945,10 +3025,10 @@ g.V().as(<span class="string"><span clas
 outgoing edges, in the modern graph?</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297809-5" type="radio" name="radio-set-1553297809-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297809-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297809-6" type="radio" name="radio-set-1553297809-5" class="tab-selector-2" />
-  <label for="tab-1553297809-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558720741-5" type="radio" name="radio-set-1558720741-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720741-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720741-6" type="radio" name="radio-set-1558720741-5" class="tab-selector-2" />
+  <label for="tab-1558720741-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -2986,10 +3066,10 @@ that happens to have an eighth bridge (t
 <p>Gremlin can detect if such a cycle exists with:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297809-7" type="radio" name="radio-set-1553297809-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297809-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297809-8" type="radio" name="radio-set-1553297809-7" class="tab-selector-2" />
-  <label for="tab-1553297809-8" class="tab-label-2">groovy</label>
+  <input id="tab-1558720741-7" type="radio" name="radio-set-1558720741-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720741-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720741-8" type="radio" name="radio-set-1558720741-7" class="tab-selector-2" />
+  <label for="tab-1558720741-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3070,6 +3150,45 @@ the first step above, which would mean t
 <p>Unlike Königsberg, with just seven bridges, a Eulerian circuit exists in the case with an eighth bridge. The first
 detected circuit can be displayed with:</p>
 </div>
+<section class="tabs tabs-2">
+  <input id="tab-1558720741-9" type="radio" name="radio-set-1558720741-9" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720741-9" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720741-10" type="radio" name="radio-set-1558720741-9" class="tab-selector-2" />
+  <label for="tab-1558720741-10" 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().sideEffect(outE(<span class="string"><span class="delimiter">&quot;</span><span class="content">bridge</span><span class="delimiter">&quot;</span></span>).aggregate(<span class="string"><span class="delimiter">&quot;</span><span class="content">bridges</span><span class="delimiter">&quot;</span></span>)).barrier().
+           repeat(bothE().or(__.not(select(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>)),
+                             __.not(filter(__.as(<span class="string"><span class="delimiter">'</span><span class="content">x</span><span class="delimiter">'</span></span>).select(all, <span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).unfold().
+                                    where(eq(<span class="string"><span class="delimiter">'</span><span class="content">x</span><span class="delimiter">'</span></span>))))).as(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).otherV()).
+             until(select(all, <span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).count(local).as(<span class="string"><span class="delimiter">&quot;</span><span class="content">c</span><span class="delimiter">&quot;</span></span>).
+                   select(<span class="string"><span class="delimiter">&quot;</span><span class="content">bridges</span><span class="delimiter">&quot;</span></span>).count(local).where(eq(<span class="string"><span class="delimiter">&quot;</span><span class="content">c</span><span class="delimiter">&quot;</span></span>))).limit(<span class="integer">1</span>).
+           path().by(id).by(constant(<span class="string"><span class="delimiter">&quot;</span><span class="content"> -&gt; </span><span class="delimiter">&quot;</span></span>)).
+           map {<span class="predefined-type">String</span>.join(<span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>, <span class="local-variable">it</span>.get().objects())}
+==&gt;orange -&gt; blue -&gt; green -&gt; orange -&gt; red -&gt; green -&gt; red -&gt; orange -&gt; blue</code></pre>
+</div>
+</div>
+    </div>
+  </div>
+  <div class="tabcontent">
+    <div class="tabcontent-2">
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy">g.V().sideEffect(outE(<span class="string"><span class="delimiter">&quot;</span><span class="content">bridge</span><span class="delimiter">&quot;</span></span>).aggregate(<span class="string"><span class="delimiter">&quot;</span><span class="content">bridges</span><span class="delimiter">&quot;</span></span>)).barrier().
+  repeat(bothE().or(__.not(select(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>)),
+                    __.not(filter(__.as(<span class="string"><span class="delimiter">'</span><span class="content">x</span><span class="delimiter">'</span></span>).select(all, <span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).unfold().
+                           where(eq(<span class="string"><span class="delimiter">'</span><span class="content">x</span><span class="delimiter">'</span></span>))))).as(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).otherV()).
+    until(select(all, <span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).count(local).as(<span class="string"><span class="delimiter">&quot;</span><span class="content">c</span><span class="delimiter">&quot;</span></span>).
+          select(<span class="string"><span class="delimiter">&quot;</span><span class="content">bridges</span><span class="delimiter">&quot;</span></span>).count(local).where(eq(<span class="string"><span class="delimiter">&quot;</span><span class="content">c</span><span class="delimiter">&quot;</span></span>))).limit(<span class="integer">1</span>).
+  path().by(id).by(constant(<span class="string"><span class="delimiter">&quot;</span><span class="content"> -&gt; </span><span class="delimiter">&quot;</span></span>)).
+  map {<span class="predefined-type">String</span>.join(<span class="string"><span class="delimiter">&quot;</span><span class="delimiter">&quot;</span></span>, <span class="local-variable">it</span>.get().objects())}</code></pre>
+</div>
+</div>
+    </div>
+  </div>
+</section>
 </div>
 </div>
 <div class="sect1">
@@ -3085,10 +3204,10 @@ label and direction will be considered "
 that is duplicative of the "created" edge between vertex "1" and "3".</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297883-1" type="radio" name="radio-set-1553297883-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297883-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297883-2" type="radio" name="radio-set-1553297883-1" class="tab-selector-2" />
-  <label for="tab-1553297883-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720823-1" type="radio" name="radio-set-1558720823-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720823-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720823-2" type="radio" name="radio-set-1558720823-1" class="tab-selector-2" />
+  <label for="tab-1558720823-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3116,10 +3235,10 @@ g.V(<span class="integer">1</span>).outE
 <p>One way to find the duplicate edges would be to do something like this:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297883-3" type="radio" name="radio-set-1553297883-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297883-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297883-4" type="radio" name="radio-set-1553297883-3" class="tab-selector-2" />
-  <label for="tab-1553297883-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558720823-3" type="radio" name="radio-set-1558720823-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720823-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720823-4" type="radio" name="radio-set-1558720823-3" class="tab-selector-2" />
+  <label for="tab-1558720823-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3182,10 +3301,10 @@ contain  duplicate.</p>
 that uses less memory might look like this:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297883-5" type="radio" name="radio-set-1553297883-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297883-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297883-6" type="radio" name="radio-set-1553297883-5" class="tab-selector-2" />
-  <label for="tab-1553297883-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558720823-5" type="radio" name="radio-set-1558720823-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720823-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720823-6" type="radio" name="radio-set-1558720823-5" class="tab-selector-2" />
+  <label for="tab-1558720823-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3254,10 +3373,10 @@ value.</p>
 <p>Note that the above traversal could also be written using <code>match</code> step:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297883-7" type="radio" name="radio-set-1553297883-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297883-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297883-8" type="radio" name="radio-set-1553297883-7" class="tab-selector-2" />
-  <label for="tab-1553297883-8" class="tab-label-2">groovy</label>
+  <input id="tab-1558720823-7" type="radio" name="radio-set-1558720823-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720823-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720823-8" type="radio" name="radio-set-1558720823-7" class="tab-selector-2" />
+  <label for="tab-1558720823-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3306,10 +3425,10 @@ The previous examples invoke traversal s
 as a performance optimization.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297883-9" type="radio" name="radio-set-1553297883-9" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297883-9" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297883-10" type="radio" name="radio-set-1553297883-9" class="tab-selector-2" />
-  <label for="tab-1553297883-10" class="tab-label-2">groovy</label>
+  <input id="tab-1558720823-9" type="radio" name="radio-set-1558720823-9" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720823-9" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720823-10" type="radio" name="radio-set-1558720823-9" class="tab-selector-2" />
+  <label for="tab-1558720823-10" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3365,10 +3484,10 @@ example, a "duplicate" definition could
 demonstration, an additional edge is added to the "modern" graph:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297883-11" type="radio" name="radio-set-1553297883-11" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297883-11" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297883-12" type="radio" name="radio-set-1553297883-11" class="tab-selector-2" />
-  <label for="tab-1553297883-12" class="tab-label-2">groovy</label>
+  <input id="tab-1558720823-11" type="radio" name="radio-set-1558720823-11" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720823-11" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720823-12" type="radio" name="radio-set-1558720823-11" class="tab-selector-2" />
+  <label for="tab-1558720823-12" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3398,6 +3517,46 @@ g.V(<span class="integer">1</span>).outE
 <div class="paragraph">
 <p>To identify the duplicate with this revised definition, the previous traversal can be modified to:</p>
 </div>
+<section class="tabs tabs-2">
+  <input id="tab-1558720823-13" type="radio" name="radio-set-1558720823-13" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720823-13" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720823-14" type="radio" name="radio-set-1558720823-13" class="tab-selector-2" />
+  <label for="tab-1558720823-14" 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.withoutStrategies(LazyBarrierStrategy, PathRetractionStrategy).V().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">ov</span><span class="delimiter">&quot;</span></span>).
+           outE().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">e1</span><span class="delimiter">&quot;</span></span>).
+           inV().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">iv</span><span class="delimiter">&quot;</span></span>).
+           inE().
+           where(neq(<span class="string"><span class="delimiter">&quot;</span><span class="content">e1</span><span class="delimiter">&quot;</span></span>)).
+           where(outV().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">ov</span><span class="delimiter">&quot;</span></span>)).as(<span class="string"><span class="delimiter">&quot;</span><span class="content">e2</span><span class="delimiter">&quot;</span></span>).
+           where(<span class="string"><span class="delimiter">&quot;</span><span class="content">e1</span><span class="delimiter">&quot;</span></span>, eq(<span class="string"><span class="delimiter">&quot;</span><span class="content">e2</span><span class="delimiter">&quot;</span></span>)).by(label).
+           where(<span class="string"><span class="delimiter">&quot;</span><span class="content">e1</span><span class="delimiter">&quot;</span></span>, eq(<span class="string"><span class="delimiter">&quot;</span><span class="content">e2</span><span class="delimiter">&quot;</span></span>)).by(<span class="string"><span class="delimiter">&quot;</span><span class="content">weight</span><span class="delimiter">&quot;</span></span>).valueMap().with(WithOptions.tokens)
+==&gt;[<span class="key">id</span>:<span class="integer">13</span>,<span class="key">label</span>:created,<span class="key">weight</span>:<span class="float">0.4</span>]
+==&gt;[<span class="key">id</span>:<span class="integer">9</span>,<span class="key">label</span>:created,<span class="key">weight</span>:<span class="float">0.4</span>]</code></pre>
+</div>
+</div>
+    </div>
+  </div>
+  <div class="tabcontent">
+    <div class="tabcontent-2">
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="groovy">g.withoutStrategies(LazyBarrierStrategy, PathRetractionStrategy).V().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">ov</span><span class="delimiter">&quot;</span></span>).
+  outE().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">e1</span><span class="delimiter">&quot;</span></span>).
+  inV().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">iv</span><span class="delimiter">&quot;</span></span>).
+  inE().
+  where(neq(<span class="string"><span class="delimiter">&quot;</span><span class="content">e1</span><span class="delimiter">&quot;</span></span>)).
+  where(outV().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">ov</span><span class="delimiter">&quot;</span></span>)).as(<span class="string"><span class="delimiter">&quot;</span><span class="content">e2</span><span class="delimiter">&quot;</span></span>).
+  where(<span class="string"><span class="delimiter">&quot;</span><span class="content">e1</span><span class="delimiter">&quot;</span></span>, eq(<span class="string"><span class="delimiter">&quot;</span><span class="content">e2</span><span class="delimiter">&quot;</span></span>)).by(label).
+  where(<span class="string"><span class="delimiter">&quot;</span><span class="content">e1</span><span class="delimiter">&quot;</span></span>, eq(<span class="string"><span class="delimiter">&quot;</span><span class="content">e2</span><span class="delimiter">&quot;</span></span>)).by(<span class="string"><span class="delimiter">&quot;</span><span class="content">weight</span><span class="delimiter">&quot;</span></span>).valueMap().with(WithOptions.tokens)</code></pre>
+</div>
+</div>
+    </div>
+  </div>
+</section>
 </div>
 </div>
 <div class="sect1">
@@ -3412,10 +3571,10 @@ group for duplicates.</p>
 <p>Consider the following example with some duplicate vertices added to the "modern" graph:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297969-1" type="radio" name="radio-set-1553297969-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297969-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297969-2" type="radio" name="radio-set-1553297969-1" class="tab-selector-2" />
-  <label for="tab-1553297969-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720916-1" type="radio" name="radio-set-1558720916-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720916-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720916-2" type="radio" name="radio-set-1558720916-1" class="tab-selector-2" />
+  <label for="tab-1558720916-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3461,10 +3620,10 @@ the <code>Map</code> provided by the <co
 match the feature. To extract just those vertices that contain duplicates an additional filter can be added:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553297969-3" type="radio" name="radio-set-1553297969-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553297969-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553297969-4" type="radio" name="radio-set-1553297969-3" class="tab-selector-2" />
-  <label for="tab-1553297969-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558720916-3" type="radio" name="radio-set-1558720916-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720916-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720916-4" type="radio" name="radio-set-1558720916-3" class="tab-selector-2" />
+  <label for="tab-1558720916-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3513,10 +3672,10 @@ be created with the same properties and
 follows:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298007-1" type="radio" name="radio-set-1553298007-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298007-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298007-2" type="radio" name="radio-set-1553298007-1" class="tab-selector-2" />
-  <label for="tab-1553298007-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720955-1" type="radio" name="radio-set-1558720955-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720955-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720955-2" type="radio" name="radio-set-1558720955-1" class="tab-selector-2" />
+  <label for="tab-1558720955-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3548,10 +3707,10 @@ follows:</p>
 the "peter" vertex in a single traversal:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298007-3" type="radio" name="radio-set-1553298007-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298007-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298007-4" type="radio" name="radio-set-1553298007-3" class="tab-selector-2" />
-  <label for="tab-1553298007-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558720955-3" type="radio" name="radio-set-1558720955-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720955-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720955-4" type="radio" name="radio-set-1558720955-3" class="tab-selector-2" />
+  <label for="tab-1558720955-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3622,10 +3781,10 @@ properties to transfer to the new "moved
 <p>Checking for whether or not a graph element is present in the graph is simple:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298048-1" type="radio" name="radio-set-1553298048-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298048-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298048-2" type="radio" name="radio-set-1553298048-1" class="tab-selector-2" />
-  <label for="tab-1553298048-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558720998-1" type="radio" name="radio-set-1558720998-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720998-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720998-2" type="radio" name="radio-set-1558720998-1" class="tab-selector-2" />
+  <label for="tab-1558720998-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3656,10 +3815,10 @@ determine whether or not to add a new ve
 entire operation can occur in a single traversal.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298048-3" type="radio" name="radio-set-1553298048-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298048-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298048-4" type="radio" name="radio-set-1553298048-3" class="tab-selector-2" />
-  <label for="tab-1553298048-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558720998-3" type="radio" name="radio-set-1558720998-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720998-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720998-4" type="radio" name="radio-set-1558720998-3" class="tab-selector-2" />
+  <label for="tab-1558720998-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3714,10 +3873,10 @@ then the vertex does not exist and it is
 <p>This "get or create" logic can be expanded to be "upsert" like functionality as follows:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298048-5" type="radio" name="radio-set-1553298048-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298048-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298048-6" type="radio" name="radio-set-1553298048-5" class="tab-selector-2" />
-  <label for="tab-1553298048-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558720998-5" type="radio" name="radio-set-1558720998-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720998-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720998-6" type="radio" name="radio-set-1558720998-5" class="tab-selector-2" />
+  <label for="tab-1558720998-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3779,10 +3938,10 @@ execution.
 <p>It is possible to do similar sorts of operations with edges using the same pattern:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298048-7" type="radio" name="radio-set-1553298048-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298048-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298048-8" type="radio" name="radio-set-1553298048-7" class="tab-selector-2" />
-  <label for="tab-1553298048-8" class="tab-label-2">groovy</label>
+  <input id="tab-1558720998-7" type="radio" name="radio-set-1558720998-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558720998-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558720998-8" type="radio" name="radio-set-1558720998-7" class="tab-selector-2" />
+  <label for="tab-1558720998-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3823,10 +3982,10 @@ found between these two vertices, then i
 <p>Consider the following traversal over the "modern" toy graph:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298111-1" type="radio" name="radio-set-1553298111-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298111-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298111-2" type="radio" name="radio-set-1553298111-1" class="tab-selector-2" />
-  <label for="tab-1553298111-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558721062-1" type="radio" name="radio-set-1558721062-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721062-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721062-2" type="radio" name="radio-set-1558721062-1" class="tab-selector-2" />
+  <label for="tab-1558721062-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3854,10 +4013,10 @@ different picture of the result. For exa
 a domain concept such as "young", "old" and "very old".</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298111-3" type="radio" name="radio-set-1553298111-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298111-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298111-4" type="radio" name="radio-set-1553298111-3" class="tab-selector-2" />
-  <label for="tab-1553298111-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558721062-3" type="radio" name="radio-set-1558721062-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721062-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721062-4" type="radio" name="radio-set-1558721062-3" class="tab-selector-2" />
+  <label for="tab-1558721062-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3909,10 +4068,10 @@ like the following in Java:</p>
 there is another option to consider with <code>coalesce</code>:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298111-5" type="radio" name="radio-set-1553298111-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298111-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298111-6" type="radio" name="radio-set-1553298111-5" class="tab-selector-2" />
-  <label for="tab-1553298111-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558721062-5" type="radio" name="radio-set-1558721062-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721062-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721062-6" type="radio" name="radio-set-1558721062-5" class="tab-selector-2" />
+  <label for="tab-1558721062-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -3961,10 +4120,10 @@ second ten records and so on, until pote
 <p>In Gremlin, a basic approach to paging would look something like the following:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298162-1" type="radio" name="radio-set-1553298162-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298162-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298162-2" type="radio" name="radio-set-1553298162-1" class="tab-selector-2" />
-  <label for="tab-1553298162-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558721113-1" type="radio" name="radio-set-1558721113-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721113-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721113-2" type="radio" name="radio-set-1558721113-1" class="tab-selector-2" />
+  <label for="tab-1558721113-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4030,10 +4189,10 @@ to getting a total count without doing a
 removed then the traversals become more simple:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298162-3" type="radio" name="radio-set-1553298162-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298162-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298162-4" type="radio" name="radio-set-1553298162-3" class="tab-selector-2" />
-  <label for="tab-1553298162-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558721113-3" type="radio" name="radio-set-1558721113-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721113-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721113-4" type="radio" name="radio-set-1558721113-3" class="tab-selector-2" />
+  <label for="tab-1558721113-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4083,10 +4242,10 @@ second traversal, the graph will still r
 <p>The only way to completely avoid that problem is to re-use the same traversal instance:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298162-5" type="radio" name="radio-set-1553298162-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298162-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298162-6" type="radio" name="radio-set-1553298162-5" class="tab-selector-2" />
-  <label for="tab-1553298162-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558721113-5" type="radio" name="radio-set-1558721113-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721113-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721113-6" type="radio" name="radio-set-1558721113-5" class="tab-selector-2" />
+  <label for="tab-1558721113-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4150,10 +4309,10 @@ specific person as to what their opinion
 following script generates some data for the graph using that basic schema:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-1" type="radio" name="radio-set-1553298217-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-2" type="radio" name="radio-set-1553298217-1" class="tab-selector-2" />
-  <label for="tab-1553298217-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-1" type="radio" name="radio-set-1558721169-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-2" type="radio" name="radio-set-1558721169-1" class="tab-selector-2" />
+  <label for="tab-1558721169-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4231,10 +4390,10 @@ gremlin&gt; <span class="integer">2</spa
 <p>The first step to making a recommendation to "alice" using collaborative filtering is to understand what she bought:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-3" type="radio" name="radio-set-1553298217-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-4" type="radio" name="radio-set-1553298217-3" class="tab-selector-2" />
-  <label for="tab-1553298217-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-3" type="radio" name="radio-set-1558721169-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-4" type="radio" name="radio-set-1558721169-3" class="tab-selector-2" />
+  <label for="tab-1558721169-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4271,10 +4430,10 @@ focus on the neighborhood around that pr
 <p>The next step is to determine who else purchased those products:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-5" type="radio" name="radio-set-1553298217-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-6" type="radio" name="radio-set-1553298217-5" class="tab-selector-2" />
-  <label for="tab-1553298217-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-5" type="radio" name="radio-set-1558721169-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-6" type="radio" name="radio-set-1558721169-5" class="tab-selector-2" />
+  <label for="tab-1558721169-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4304,10 +4463,10 @@ focus on the neighborhood around that pr
 interest is in what individuals other than herself purchased:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-7" type="radio" name="radio-set-1553298217-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-8" type="radio" name="radio-set-1553298217-7" class="tab-selector-2" />
-  <label for="tab-1553298217-8" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-7" type="radio" name="radio-set-1558721169-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-8" type="radio" name="radio-set-1558721169-7" class="tab-selector-2" />
+  <label for="tab-1558721169-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4348,10 +4507,10 @@ interest is in what individuals other th
 they bought:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-9" type="radio" name="radio-set-1553298217-9" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-9" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-10" type="radio" name="radio-set-1553298217-9" class="tab-selector-2" />
-  <label for="tab-1553298217-10" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-9" type="radio" name="radio-set-1558721169-9" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-9" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-10" type="radio" name="radio-set-1558721169-9" class="tab-selector-2" />
+  <label for="tab-1558721169-10" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4398,10 +4557,10 @@ already purchased some of these products
 that she already owns. Those products she already purchased can be excluded as follows:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-11" type="radio" name="radio-set-1553298217-11" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-11" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-12" type="radio" name="radio-set-1553298217-11" class="tab-selector-2" />
-  <label for="tab-1553298217-12" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-11" type="radio" name="radio-set-1558721169-11" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-11" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-12" type="radio" name="radio-set-1558721169-11" class="tab-selector-2" />
+  <label for="tab-1558721169-12" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4442,10 +4601,10 @@ that she already owns. Those products sh
 purposes) to form a ranking:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-13" type="radio" name="radio-set-1553298217-13" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-13" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-14" type="radio" name="radio-set-1553298217-13" class="tab-selector-2" />
-  <label for="tab-1553298217-14" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-13" type="radio" name="radio-set-1558721169-13" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-13" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-14" type="radio" name="radio-set-1558721169-13" class="tab-selector-2" />
+  <label for="tab-1558721169-14" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4508,10 +4667,10 @@ vertices that make up the recommendation
 who have at least one product in common:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-15" type="radio" name="radio-set-1553298217-15" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-15" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-16" type="radio" name="radio-set-1553298217-15" class="tab-selector-2" />
-  <label for="tab-1553298217-16" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-15" type="radio" name="radio-set-1558721169-15" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-15" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-16" type="radio" name="radio-set-1558721169-15" class="tab-selector-2" />
+  <label for="tab-1558721169-16" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4543,10 +4702,10 @@ who have at least one product in common:
 <p>Next, do some grouping to find count how many products they have in common:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-17" type="radio" name="radio-set-1553298217-17" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-17" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-18" type="radio" name="radio-set-1553298217-17" class="tab-selector-2" />
-  <label for="tab-1553298217-18" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-17" type="radio" name="radio-set-1558721169-17" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-17" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-18" type="radio" name="radio-set-1558721169-17" class="tab-selector-2" />
+  <label for="tab-1558721169-18" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4582,10 +4741,10 @@ who have at least one product in common:
 that maximum:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-19" type="radio" name="radio-set-1553298217-19" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-19" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-20" type="radio" name="radio-set-1553298217-19" class="tab-selector-2" />
-  <label for="tab-1553298217-20" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-19" type="radio" name="radio-set-1558721169-19" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-19" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-20" type="radio" name="radio-set-1558721169-19" class="tab-selector-2" />
+  <label for="tab-1558721169-20" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4627,10 +4786,10 @@ that maximum:</p>
 common:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-21" type="radio" name="radio-set-1553298217-21" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-21" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-22" type="radio" name="radio-set-1553298217-21" class="tab-selector-2" />
-  <label for="tab-1553298217-22" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-21" type="radio" name="radio-set-1558721169-21" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-21" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-22" type="radio" name="radio-set-1558721169-21" class="tab-selector-2" />
+  <label for="tab-1558721169-22" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4677,10 +4836,10 @@ common:</p>
 purchased:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-23" type="radio" name="radio-set-1553298217-23" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-23" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-24" type="radio" name="radio-set-1553298217-23" class="tab-selector-2" />
-  <label for="tab-1553298217-24" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-23" type="radio" name="radio-set-1558721169-23" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-23" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-24" type="radio" name="radio-set-1558721169-23" class="tab-selector-2" />
+  <label for="tab-1558721169-24" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4730,10 +4889,10 @@ purchased:</p>
 <p>The above output shows that one product is held in common making it the top recommendation:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-25" type="radio" name="radio-set-1553298217-25" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-25" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-26" type="radio" name="radio-set-1553298217-25" class="tab-selector-2" />
-  <label for="tab-1553298217-26" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-25" type="radio" name="radio-set-1558721169-25" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-25" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-26" type="radio" name="radio-set-1558721169-25" class="tab-selector-2" />
+  <label for="tab-1558721169-26" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4793,10 +4952,10 @@ purchased:</p>
 recommendation algorithm:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-27" type="radio" name="radio-set-1553298217-27" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-27" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-28" type="radio" name="radio-set-1553298217-27" class="tab-selector-2" />
-  <label for="tab-1553298217-28" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-27" type="radio" name="radio-set-1558721169-27" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-27" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-28" type="radio" name="radio-set-1558721169-27" class="tab-selector-2" />
+  <label for="tab-1558721169-28" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4843,10 +5002,10 @@ place additional limits on the traversal
 traversal sample the data for no longer than one second, the previous "basic" recommendation could be changed to:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298217-29" type="radio" name="radio-set-1553298217-29" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298217-29" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298217-30" type="radio" name="radio-set-1553298217-29" class="tab-selector-2" />
-  <label for="tab-1553298217-30" class="tab-label-2">groovy</label>
+  <input id="tab-1558721169-29" type="radio" name="radio-set-1558721169-29" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721169-29" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721169-30" type="radio" name="radio-set-1558721169-29" class="tab-selector-2" />
+  <label for="tab-1558721169-30" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4900,10 +5059,10 @@ achieve the desired outcome.</p>
 is a simple example that identifies the shortest path between vertex "1" and vertex "5" while traversing over out edges:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298389-1" type="radio" name="radio-set-1553298389-1" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298389-1" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298389-2" type="radio" name="radio-set-1553298389-1" class="tab-selector-2" />
-  <label for="tab-1553298389-2" class="tab-label-2">groovy</label>
+  <input id="tab-1558721341-1" type="radio" name="radio-set-1558721341-1" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721341-1" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721341-2" type="radio" name="radio-set-1558721341-1" class="tab-selector-2" />
+  <label for="tab-1558721341-2" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -4975,10 +5134,10 @@ length three), but this example is not c
 <p>The following code block demonstrates how the shortest path from <code>v[1]</code> to <code>v[5]</code> can be queried in OLAP, using the <code>shortestPath()</code> step.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298389-3" type="radio" name="radio-set-1553298389-3" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298389-3" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298389-4" type="radio" name="radio-set-1553298389-3" class="tab-selector-2" />
-  <label for="tab-1553298389-4" class="tab-label-2">groovy</label>
+  <input id="tab-1558721341-3" type="radio" name="radio-set-1558721341-3" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721341-3" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721341-4" type="radio" name="radio-set-1558721341-3" class="tab-selector-2" />
+  <label for="tab-1558721341-4" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5012,10 +5171,10 @@ be measured by data within the graph its
 but includes a "weight" on the edges, that will be used to help determine the "cost" of a particular path:</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298389-5" type="radio" name="radio-set-1553298389-5" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298389-5" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298389-6" type="radio" name="radio-set-1553298389-5" class="tab-selector-2" />
-  <label for="tab-1553298389-6" class="tab-label-2">groovy</label>
+  <input id="tab-1558721341-5" type="radio" name="radio-set-1558721341-5" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721341-5" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721341-6" type="radio" name="radio-set-1558721341-5" class="tab-selector-2" />
+  <label for="tab-1558721341-6" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5117,10 +5276,10 @@ structure.</p>
 <p>The next code block demonstrates how the <code>shortestPath()</code> step can be used in OLAP to determine the shortest weighted path.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298389-7" type="radio" name="radio-set-1553298389-7" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298389-7" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298389-8" type="radio" name="radio-set-1553298389-7" class="tab-selector-2" />
-  <label for="tab-1553298389-8" class="tab-label-2">groovy</label>
+  <input id="tab-1558721341-7" type="radio" name="radio-set-1558721341-7" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721341-7" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721341-8" type="radio" name="radio-set-1558721341-7" class="tab-selector-2" />
+  <label for="tab-1558721341-8" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5155,10 +5314,10 @@ g.V(<span class="integer">1</span>).shor
 in the modern toy graph.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298389-9" type="radio" name="radio-set-1553298389-9" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298389-9" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298389-10" type="radio" name="radio-set-1553298389-9" class="tab-selector-2" />
-  <label for="tab-1553298389-10" class="tab-label-2">groovy</label>
+  <input id="tab-1558721341-9" type="radio" name="radio-set-1558721341-9" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721341-9" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721341-10" type="radio" name="radio-set-1558721341-9" class="tab-selector-2" />
+  <label for="tab-1558721341-10" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5273,10 +5432,10 @@ in the modern toy graph.</p>
 <p>Again, this can be translated into an OLAP query using the <code>shortestPath()</code> step.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298389-11" type="radio" name="radio-set-1553298389-11" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298389-11" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298389-12" type="radio" name="radio-set-1553298389-11" class="tab-selector-2" />
-  <label for="tab-1553298389-12" class="tab-label-2">groovy</label>
+  <input id="tab-1558721341-11" type="radio" name="radio-set-1558721341-11" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721341-11" class="tab-label-1">console (groovy)</label>
+  <input id="tab-1558721341-12" type="radio" name="radio-set-1558721341-11" class="tab-selector-2" />
+  <label for="tab-1558721341-12" class="tab-label-2">groovy</label>
   <div class="tabcontent">
     <div class="tabcontent-1">
 <div class="listingblock">
@@ -5356,10 +5515,10 @@ allowed to leave the local star graph, i
 shortest paths can be passed back into the OLTP <code>GraphTraversalSource</code>, which can then be used to query the values.</p>
 </div>
 <section class="tabs tabs-2">
-  <input id="tab-1553298389-13" type="radio" name="radio-set-1553298389-13" class="tab-selector-1" checked="checked" />
-  <label for="tab-1553298389-13" class="tab-label-1">console (groovy)</label>
-  <input id="tab-1553298389-14" type="radio" name="radio-set-1553298389-13" class="tab-selector-2" />
-  <label for="tab-1553298389-14" class="tab-label-2">groovy</label>
+  <input id="tab-1558721341-13" type="radio" name="radio-set-1558721341-13" class="tab-selector-1" checked="checked" />
+  <label for="tab-1558721341-13" class="tab-label-1">console (groovy)</label>

[... 1195 lines stripped ...]