Modified: tinkerpop/site/docs/3.4.7-SNAPSHOT/recipes/index.html URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.4.7-SNAPSHOT/recipes/index.html?rev=1878232&r1=1878231&r2=1878232&view=diff ============================================================================== --- tinkerpop/site/docs/3.4.7-SNAPSHOT/recipes/index.html (original) +++ tinkerpop/site/docs/3.4.7-SNAPSHOT/recipes/index.html Thu May 28 14:59:52 2020 @@ -880,7 +880,7 @@ table.CodeRay td.code>pre{padding:0} <div class="sectionbody"> <div class="imageblock"> <div class="content"> -<a class="image" href="http://tinkerpop.apache.org"><img src="../images/apache-tinkerpop-logo.png" alt="apache tinkerpop logo" width="500"></a> +<a class="image" href="https://tinkerpop.apache.org"><img src="../images/apache-tinkerpop-logo.png" alt="apache tinkerpop logo" width="500"></a> </div> </div> <div class="paragraph"> @@ -900,8 +900,8 @@ provide some basic building blocks for v </div> <div class="paragraph"> <p>Recipes assume general familiarity with Gremlin and the Apache TinkerPop⢠stack. Be sure to have read the -<a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/tutorials/getting-started">Getting Started</a> tutorial and the -<a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/tutorials/the-gremlin-console/">The Gremlin Console</a> tutorial.</p> +<a href="https://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/tutorials/getting-started">Getting Started</a> tutorial and the +<a href="https://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/tutorials/the-gremlin-console/">The Gremlin Console</a> tutorial.</p> </div> </div> </div> @@ -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-1582571655-1" type="radio" name="radio-set-1582571655-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571655-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571655-2" type="radio" name="radio-set-1582571655-1" class="tab-selector-2" /> - <label for="tab-1582571655-2" class="tab-label-2">groovy</label> + <input id="tab-1590673653-1" type="radio" name="radio-set-1590673653-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673653-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673653-2" type="radio" name="radio-set-1590673653-1" class="tab-selector-2" /> + <label for="tab-1590673653-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-1582571655-3" type="radio" name="radio-set-1582571655-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571655-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571655-4" type="radio" name="radio-set-1582571655-3" class="tab-selector-2" /> - <label for="tab-1582571655-4" class="tab-label-2">groovy</label> + <input id="tab-1590673653-3" type="radio" name="radio-set-1590673653-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673653-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673653-4" type="radio" name="radio-set-1590673653-3" class="tab-selector-2" /> + <label for="tab-1590673653-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-1582571655-5" type="radio" name="radio-set-1582571655-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571655-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571655-6" type="radio" name="radio-set-1582571655-5" class="tab-selector-2" /> - <label for="tab-1582571655-6" class="tab-label-2">groovy</label> + <input id="tab-1590673653-5" type="radio" name="radio-set-1590673653-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673653-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673653-6" type="radio" name="radio-set-1590673653-5" class="tab-selector-2" /> + <label for="tab-1590673653-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-1582571688-1" type="radio" name="radio-set-1582571688-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571688-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571688-2" type="radio" name="radio-set-1582571688-1" class="tab-selector-2" /> - <label for="tab-1582571688-2" class="tab-label-2">groovy</label> + <input id="tab-1590673689-1" type="radio" name="radio-set-1590673689-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673689-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673689-2" type="radio" name="radio-set-1590673689-1" class="tab-selector-2" /> + <label for="tab-1590673689-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1260,8 +1260,8 @@ OLAP traversals.</p> <div class="title">Note</div> </td> <td class="content"> -The <a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#group-step">group</a> step takes up to two separate -<a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#by-step">by</a> modulators. The first <code>by()</code> tells <code>group()</code> +The <a href="https://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#group-step">group</a> step takes up to two separate +<a href="https://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#by-step">by</a> modulators. The first <code>by()</code> tells <code>group()</code> what the key in the resulting <code>Map</code> will be (i.e. the value to group on). In the above examples, the <code>by()</code> is empty and as a result, the grouping will be on the incoming <code>Vertex</code> object itself. The second <code>by()</code> is the value to be stored in the <code>Map</code> for each key. @@ -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-1582571688-3" type="radio" name="radio-set-1582571688-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571688-3" class="tab-label-1">console (groovy )</label> - <input id="tab-1582571688-4" type="radio" name="radio-set-1582571688-3" class="tab-selector-2" /> - <label for="tab-1582571688-4" class="tab-label-2">groovy </label> + <input id="tab-1590673689-3" type="radio" name="radio-set-1590673689-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673689-3" class="tab-label-1">console (groovy )</label> + <input id="tab-1590673689-4" type="radio" name="radio-set-1590673689-3" class="tab-selector-2" /> + <label for="tab-1590673689-4" class="tab-label-2">groovy </label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1397,7 +1397,7 @@ g.V().as(<span class="string"><span clas <td class="content"> Since the betweeness centrality algorithm requires the shortest path between any pair of vertices in the graph, its practical applications are very limited. It’s recommended to use this algorithm only on small subgraphs (graphs like -the <a href="http://tinkerpop.apache.org/docs/current/reference/#grateful-dead">Grateful Dead graph</a> with only 808 vertices +the <a href="https://tinkerpop.apache.org/docs/current/reference/#grateful-dead">Grateful Dead graph</a> with only 808 vertices and 8049 edges already require a massive amount of compute resources to determine the shortest paths between all vertex pairs). </td> @@ -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-1582571688-5" type="radio" name="radio-set-1582571688-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571688-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571688-6" type="radio" name="radio-set-1582571688-5" class="tab-selector-2" /> - <label for="tab-1582571688-6" class="tab-label-2">groovy</label> + <input id="tab-1590673689-5" type="radio" name="radio-set-1590673689-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673689-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673689-6" type="radio" name="radio-set-1590673689-5" class="tab-selector-2" /> + <label for="tab-1590673689-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1473,7 +1473,7 @@ g.withSack(<span class="float">1f</span> <div class="colist arabic"> <ol> <li> -<p>Defines a Gremlin <a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#sack-step">sack</a> with a value of one.</p> +<p>Defines a Gremlin <a href="https://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#sack-step">sack</a> with a value of one.</p> </li> <li> <p>Traverses on both - incoming and outgoing - edges, avoiding <a href="#cycle-detection">cyclic paths</a>.</p> @@ -1504,7 +1504,7 @@ g.withSack(<span class="float">1f</span> <td class="content"> Since the closeness centrality algorithm requires the shortest path between any pair of vertices in the graph, its practical applications are very limited. It’s recommended to use this algorithm only on small subgraphs (graphs like -the <a href="http://tinkerpop.apache.org/docs/current/reference/#grateful-dead">Grateful Dead graph</a> with only 808 vertices +the <a href="https://tinkerpop.apache.org/docs/current/reference/#grateful-dead">Grateful Dead graph</a> with only 808 vertices and 8049 edges already require a massive amount of compute resources to determine the shortest paths between all vertex pairs). </td> @@ -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-1582571688-7" type="radio" name="radio-set-1582571688-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571688-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571688-8" type="radio" name="radio-set-1582571688-7" class="tab-selector-2" /> - <label for="tab-1582571688-8" class="tab-label-2">groovy</label> + <input id="tab-1590673689-7" type="radio" name="radio-set-1590673689-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673689-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673689-8" type="radio" name="radio-set-1590673689-7" class="tab-selector-2" /> + <label for="tab-1590673689-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1585,7 +1585,7 @@ time to converge on a solution. Calling </li> <li> <p>The previous examples can be expanded on a little bit by including a -<a href="http://tinkerpop.apache.org/docs/current/reference/#timelimit-step">time limit</a>. The <code>timeLimit()</code> prevents the +<a href="https://tinkerpop.apache.org/docs/current/reference/#timelimit-step">time limit</a>. The <code>timeLimit()</code> prevents the traversal from taking longer than one hundred milliseconds to execute (the previous example takes considerably longer than that). While the answer provided with the <code>timeLimit()</code> is not the absolute ranking, it does provide a relative ranking that closely matches the absolute one. The use of <code>timeLimit()</code> in certain algorithms (e.g. recommendations) @@ -1599,14 +1599,14 @@ can shorten the time required to get a r <div class="paragraph"> <p>While not technically a recipe, it’s worth noting here in the "Centrality Section" that <a href="https://en.wikipedia.org/wiki/PageRank">PageRank</a> centrality can be calculated with Gremlin with the -<a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#pagerank-step">pageRank()</a>-step which is designed to work with +<a href="https://tinkerpop.apache.org/docs/3.4.7-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-1582571688-9" type="radio" name="radio-set-1582571688-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571688-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571688-10" type="radio" name="radio-set-1582571688-9" class="tab-selector-2" /> - <label for="tab-1582571688-10" class="tab-label-2">groovy</label> + <input id="tab-1590673689-9" type="radio" name="radio-set-1590673689-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673689-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673689-10" type="radio" name="radio-set-1590673689-9" class="tab-selector-2" /> + <label for="tab-1590673689-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1614,12 +1614,12 @@ can shorten the time required to get a r <pre class="CodeRay highlight"><code data-lang="groovy">gremlin> g = graph.traversal().withComputer() ==>graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">6</span>], graphcomputer] gremlin> 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>) -==><span class="float">0.11375510357865543</span> -==><span class="float">0.11375510357865543</span> -==><span class="float">0.14598540152719108</span> -==><span class="float">0.14598540152719108</span> -==><span class="float">0.30472009079122503</span> -==><span class="float">0.17579889899708237</span></code></pre> +==><span class="float">0.14598540152719103</span> +==><span class="float">0.14598540152719103</span> +==><span class="float">0.11375510357865537</span> +==><span class="float">0.11375510357865537</span> +==><span class="float">0.1757988989970823</span> +==><span class="float">0.3047200907912249</span></code></pre> </div> </div> </div> @@ -1648,7 +1648,7 @@ g.V().pageRank().by(<span class="string" <p>Lists and maps form the basis for much of the processing in Gremlin traversals. They are core to how side-effects are typically held and how results are generally produced. Being able to pick them apart and reformat them is sometimes required. This need to shape the data within a traversal may arise both at the -<a href="http://tinkerpop.apache.org/docs/current/reference/#terminal-steps">terminal step</a> of the traversal (technically +<a href="https://tinkerpop.apache.org/docs/current/reference/#terminal-steps">terminal step</a> of the traversal (technically just prior to the terminal step) or in the middle of a traversal. Considering the former, a transformation just prior to iteration will get the result into the form required by the application which would remove the need for additional application level manipulation. Moreover, a transformation at this stage may reduce the size of the payload being @@ -1664,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-1582571739-1" type="radio" name="radio-set-1582571739-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-2" type="radio" name="radio-set-1582571739-1" class="tab-selector-2" /> - <label for="tab-1582571739-2" class="tab-label-2">groovy</label> + <input id="tab-1590673743-1" type="radio" name="radio-set-1590673743-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-2" type="radio" name="radio-set-1590673743-1" class="tab-selector-2" /> + <label for="tab-1590673743-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1696,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-1582571739-3" type="radio" name="radio-set-1582571739-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-4" type="radio" name="radio-set-1582571739-3" class="tab-selector-2" /> - <label for="tab-1582571739-4" class="tab-label-2">groovy</label> + <input id="tab-1590673743-3" type="radio" name="radio-set-1590673743-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-4" type="radio" name="radio-set-1590673743-3" class="tab-selector-2" /> + <label for="tab-1590673743-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1732,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-1582571739-5" type="radio" name="radio-set-1582571739-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-6" type="radio" name="radio-set-1582571739-5" class="tab-selector-2" /> - <label for="tab-1582571739-6" class="tab-label-2">groovy</label> + <input id="tab-1590673743-5" type="radio" name="radio-set-1590673743-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-6" type="radio" name="radio-set-1590673743-5" class="tab-selector-2" /> + <label for="tab-1590673743-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1775,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-1582571739-7" type="radio" name="radio-set-1582571739-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-8" type="radio" name="radio-set-1582571739-7" class="tab-selector-2" /> - <label for="tab-1582571739-8" class="tab-label-2">groovy</label> + <input id="tab-1590673743-7" type="radio" name="radio-set-1590673743-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-8" type="radio" name="radio-set-1590673743-7" class="tab-selector-2" /> + <label for="tab-1590673743-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1820,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-1582571739-9" type="radio" name="radio-set-1582571739-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-10" type="radio" name="radio-set-1582571739-9" class="tab-selector-2" /> - <label for="tab-1582571739-10" class="tab-label-2">groovy</label> + <input id="tab-1590673743-9" type="radio" name="radio-set-1590673743-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-10" type="radio" name="radio-set-1590673743-9" class="tab-selector-2" /> + <label for="tab-1590673743-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1858,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-1582571739-11" type="radio" name="radio-set-1582571739-11" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-11" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-12" type="radio" name="radio-set-1582571739-11" class="tab-selector-2" /> - <label for="tab-1582571739-12" class="tab-label-2">groovy</label> + <input id="tab-1590673743-11" type="radio" name="radio-set-1590673743-11" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-11" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-12" type="radio" name="radio-set-1590673743-11" class="tab-selector-2" /> + <label for="tab-1590673743-12" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1939,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-1582571739-13" type="radio" name="radio-set-1582571739-13" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-13" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-14" type="radio" name="radio-set-1582571739-13" class="tab-selector-2" /> - <label for="tab-1582571739-14" class="tab-label-2">groovy</label> + <input id="tab-1590673743-13" type="radio" name="radio-set-1590673743-13" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-13" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-14" type="radio" name="radio-set-1590673743-13" class="tab-selector-2" /> + <label for="tab-1590673743-14" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2023,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-1582571739-15" type="radio" name="radio-set-1582571739-15" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-15" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-16" type="radio" name="radio-set-1582571739-15" class="tab-selector-2" /> - <label for="tab-1582571739-16" class="tab-label-2">groovy</label> + <input id="tab-1590673743-15" type="radio" name="radio-set-1590673743-15" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-15" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-16" type="radio" name="radio-set-1590673743-15" class="tab-selector-2" /> + <label for="tab-1590673743-16" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2137,10 +2137,10 @@ means that each traverser can effectivel vertices each:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582571739-17" type="radio" name="radio-set-1582571739-17" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-17" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-18" type="radio" name="radio-set-1582571739-17" class="tab-selector-2" /> - <label for="tab-1582571739-18" class="tab-label-2">groovy</label> + <input id="tab-1590673743-17" type="radio" name="radio-set-1590673743-17" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-17" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-18" type="radio" name="radio-set-1590673743-17" class="tab-selector-2" /> + <label for="tab-1590673743-18" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2167,10 +2167,10 @@ vertices each:</p> results.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582571739-19" type="radio" name="radio-set-1582571739-19" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-19" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-20" type="radio" name="radio-set-1582571739-19" class="tab-selector-2" /> - <label for="tab-1582571739-20" class="tab-label-2">groovy</label> + <input id="tab-1590673743-19" type="radio" name="radio-set-1590673743-19" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-19" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-20" type="radio" name="radio-set-1590673743-19" class="tab-selector-2" /> + <label for="tab-1590673743-20" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2251,10 +2251,10 @@ need for the transformation, the explana to end up with a <code>Map</code> is with <code>valueMap()</code>:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582571739-21" type="radio" name="radio-set-1582571739-21" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-21" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-22" type="radio" name="radio-set-1582571739-21" class="tab-selector-2" /> - <label for="tab-1582571739-22" class="tab-label-2">groovy</label> + <input id="tab-1590673743-21" type="radio" name="radio-set-1590673743-21" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-21" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-22" type="radio" name="radio-set-1590673743-21" class="tab-selector-2" /> + <label for="tab-1590673743-22" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2281,10 +2281,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-1582571739-23" type="radio" name="radio-set-1582571739-23" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-23" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-24" type="radio" name="radio-set-1582571739-23" class="tab-selector-2" /> - <label for="tab-1582571739-24" class="tab-label-2">groovy</label> + <input id="tab-1590673743-23" type="radio" name="radio-set-1590673743-23" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-23" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-24" type="radio" name="radio-set-1590673743-23" class="tab-selector-2" /> + <label for="tab-1590673743-24" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2314,10 +2314,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-1582571739-25" type="radio" name="radio-set-1582571739-25" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-25" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-26" type="radio" name="radio-set-1582571739-25" class="tab-selector-2" /> - <label for="tab-1582571739-26" class="tab-label-2">groovy</label> + <input id="tab-1590673743-25" type="radio" name="radio-set-1590673743-25" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-25" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-26" type="radio" name="radio-set-1590673743-25" class="tab-selector-2" /> + <label for="tab-1590673743-26" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2367,10 +2367,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-1582571739-27" type="radio" name="radio-set-1582571739-27" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-27" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-28" type="radio" name="radio-set-1582571739-27" class="tab-selector-2" /> - <label for="tab-1582571739-28" class="tab-label-2">groovy</label> + <input id="tab-1590673743-27" type="radio" name="radio-set-1590673743-27" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-27" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-28" type="radio" name="radio-set-1590673743-27" class="tab-selector-2" /> + <label for="tab-1590673743-28" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2410,10 +2410,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-1582571739-29" type="radio" name="radio-set-1582571739-29" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-29" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-30" type="radio" name="radio-set-1582571739-29" class="tab-selector-2" /> - <label for="tab-1582571739-30" class="tab-label-2">groovy</label> + <input id="tab-1590673743-29" type="radio" name="radio-set-1590673743-29" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-29" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-30" type="radio" name="radio-set-1590673743-29" class="tab-selector-2" /> + <label for="tab-1590673743-30" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2463,10 +2463,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-1582571739-31" type="radio" name="radio-set-1582571739-31" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-31" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-32" type="radio" name="radio-set-1582571739-31" class="tab-selector-2" /> - <label for="tab-1582571739-32" class="tab-label-2">groovy</label> + <input id="tab-1590673743-31" type="radio" name="radio-set-1590673743-31" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-31" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-32" type="radio" name="radio-set-1590673743-31" class="tab-selector-2" /> + <label for="tab-1590673743-32" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2516,10 +2516,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-1582571739-33" type="radio" name="radio-set-1582571739-33" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-33" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-34" type="radio" name="radio-set-1582571739-33" class="tab-selector-2" /> - <label for="tab-1582571739-34" class="tab-label-2">groovy</label> + <input id="tab-1590673743-33" type="radio" name="radio-set-1590673743-33" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-33" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-34" type="radio" name="radio-set-1590673743-33" class="tab-selector-2" /> + <label for="tab-1590673743-34" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2533,7 +2533,7 @@ reconstructed as a new <code>Map</code> group(). by(keys). by(select(values).unfold()) -==>[<span class="key">degree</span>:<span class="integer">3</span>,<span class="key">name</span>:marko,<span class="key">id</span>:<span class="integer">1</span>,<span class="key">age</span>:<span class="integer">29</span>,<span class="key">label</span>:person]</code></pre> +==>[<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">age</span>:<span class="integer">29</span>,<span class="key">label</span>:person]</code></pre> </div> </div> </div> @@ -2579,10 +2579,10 @@ a <code>List</code> back for all the val <code>List</code> instances when necessary:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582571739-35" type="radio" name="radio-set-1582571739-35" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571739-35" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571739-36" type="radio" name="radio-set-1582571739-35" class="tab-selector-2" /> - <label for="tab-1582571739-36" class="tab-label-2">groovy</label> + <input id="tab-1590673743-35" type="radio" name="radio-set-1590673743-35" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673743-35" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673743-36" type="radio" name="radio-set-1590673743-35" class="tab-selector-2" /> + <label for="tab-1590673743-36" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2599,7 +2599,7 @@ a <code>List</code> back for all the val unfold(). fold(). choose(count(local).is(eq(<span class="integer">1</span>)), unfold())) -==>[<span class="key">name</span>:marko,<span class="key">id</span>:<span class="integer">1</span>,<span class="key">age</span>:[<span class="integer">29</span>,<span class="integer">100</span>],<span class="key">label</span>:person]</code></pre> +==>[<span class="key">id</span>:<span class="integer">1</span>,<span class="key">name</span>:marko,<span class="key">age</span>:[<span class="integer">29</span>,<span class="integer">100</span>],<span class="key">label</span>:person]</code></pre> </div> </div> </div> @@ -2661,10 +2661,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-1582571869-1" type="radio" name="radio-set-1582571869-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571869-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571869-2" type="radio" name="radio-set-1582571869-1" class="tab-selector-2" /> - <label for="tab-1582571869-2" class="tab-label-2">groovy</label> + <input id="tab-1590673883-1" type="radio" name="radio-set-1590673883-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673883-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673883-2" type="radio" name="radio-set-1590673883-1" class="tab-selector-2" /> + <label for="tab-1590673883-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2706,14 +2706,14 @@ component membership is stored in the gr <p>Connected components in a small graph can be determined with either an OLTP traversal or the OLAP <code>connectedComponent()</code>-step. The <code>connectedComponent()</code>-step is available as of TinkerPop 3.4.0 and is described in more detail in the -<a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#connectedcomponent-step">Reference Documentation</a>. +<a href="https://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#connectedcomponent-step">Reference Documentation</a>. The traversal looks like:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582571869-3" type="radio" name="radio-set-1582571869-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571869-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571869-4" type="radio" name="radio-set-1582571869-3" class="tab-selector-2" /> - <label for="tab-1582571869-4" class="tab-label-2">groovy</label> + <input id="tab-1590673883-3" type="radio" name="radio-set-1590673883-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673883-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673883-4" type="radio" name="radio-set-1590673883-3" class="tab-selector-2" /> + <label for="tab-1590673883-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2721,8 +2721,8 @@ The traversal looks like:</p> <pre class="CodeRay highlight"><code data-lang="groovy">gremlin> g.withComputer().V().connectedComponent(). group().by(ConnectedComponent.component). select(values).unfold() -==>[v[D],v[E]] -==>[v[A],v[B],v[C]] +==>[v[E],v[D]] +==>[v[C],v[B],v[A]] ==>[v[F]]</code></pre> </div> </div> @@ -2757,10 +2757,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-1582571869-5" type="radio" name="radio-set-1582571869-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571869-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571869-6" type="radio" name="radio-set-1582571869-5" class="tab-selector-2" /> - <label for="tab-1582571869-6" class="tab-label-2">groovy</label> + <input id="tab-1590673883-5" type="radio" name="radio-set-1590673883-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673883-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673883-6" type="radio" name="radio-set-1590673883-5" class="tab-selector-2" /> + <label for="tab-1590673883-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2898,10 +2898,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-1582571903-1" type="radio" name="radio-set-1582571903-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571903-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571903-2" type="radio" name="radio-set-1582571903-1" class="tab-selector-2" /> - <label for="tab-1582571903-2" class="tab-label-2">groovy</label> + <input id="tab-1590673918-1" type="radio" name="radio-set-1590673918-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673918-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673918-2" type="radio" name="radio-set-1590673918-1" class="tab-selector-2" /> + <label for="tab-1590673918-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2975,10 +2975,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-1582571903-3" type="radio" name="radio-set-1582571903-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571903-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571903-4" type="radio" name="radio-set-1582571903-3" class="tab-selector-2" /> - <label for="tab-1582571903-4" class="tab-label-2">groovy</label> + <input id="tab-1590673918-3" type="radio" name="radio-set-1590673918-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673918-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673918-4" type="radio" name="radio-set-1590673918-3" class="tab-selector-2" /> + <label for="tab-1590673918-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3041,10 +3041,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-1582571903-5" type="radio" name="radio-set-1582571903-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571903-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571903-6" type="radio" name="radio-set-1582571903-5" class="tab-selector-2" /> - <label for="tab-1582571903-6" class="tab-label-2">groovy</label> + <input id="tab-1590673918-5" type="radio" name="radio-set-1590673918-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673918-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673918-6" type="radio" name="radio-set-1590673918-5" class="tab-selector-2" /> + <label for="tab-1590673918-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3082,10 +3082,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-1582571903-7" type="radio" name="radio-set-1582571903-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571903-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571903-8" type="radio" name="radio-set-1582571903-7" class="tab-selector-2" /> - <label for="tab-1582571903-8" class="tab-label-2">groovy</label> + <input id="tab-1590673918-7" type="radio" name="radio-set-1590673918-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673918-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673918-8" type="radio" name="radio-set-1590673918-7" class="tab-selector-2" /> + <label for="tab-1590673918-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3167,10 +3167,10 @@ the first step above, which would mean t detected circuit can be displayed with:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582571903-9" type="radio" name="radio-set-1582571903-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571903-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571903-10" type="radio" name="radio-set-1582571903-9" class="tab-selector-2" /> - <label for="tab-1582571903-10" class="tab-label-2">groovy</label> + <input id="tab-1590673918-9" type="radio" name="radio-set-1590673918-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673918-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673918-10" type="radio" name="radio-set-1590673918-9" class="tab-selector-2" /> + <label for="tab-1590673918-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3220,10 +3220,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-1582571946-1" type="radio" name="radio-set-1582571946-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571946-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571946-2" type="radio" name="radio-set-1582571946-1" class="tab-selector-2" /> - <label for="tab-1582571946-2" class="tab-label-2">groovy</label> + <input id="tab-1590673963-1" type="radio" name="radio-set-1590673963-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673963-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673963-2" type="radio" name="radio-set-1590673963-1" class="tab-selector-2" /> + <label for="tab-1590673963-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3251,10 +3251,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-1582571946-3" type="radio" name="radio-set-1582571946-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571946-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571946-4" type="radio" name="radio-set-1582571946-3" class="tab-selector-2" /> - <label for="tab-1582571946-4" class="tab-label-2">groovy</label> + <input id="tab-1590673963-3" type="radio" name="radio-set-1590673963-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673963-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673963-4" type="radio" name="radio-set-1590673963-3" class="tab-selector-2" /> + <label for="tab-1590673963-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3317,10 +3317,10 @@ contain duplicate.</p> that uses less memory might look like this:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582571946-5" type="radio" name="radio-set-1582571946-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571946-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571946-6" type="radio" name="radio-set-1582571946-5" class="tab-selector-2" /> - <label for="tab-1582571946-6" class="tab-label-2">groovy</label> + <input id="tab-1590673963-5" type="radio" name="radio-set-1590673963-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673963-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673963-6" type="radio" name="radio-set-1590673963-5" class="tab-selector-2" /> + <label for="tab-1590673963-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3389,10 +3389,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-1582571946-7" type="radio" name="radio-set-1582571946-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571946-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571946-8" type="radio" name="radio-set-1582571946-7" class="tab-selector-2" /> - <label for="tab-1582571946-8" class="tab-label-2">groovy</label> + <input id="tab-1590673963-7" type="radio" name="radio-set-1590673963-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673963-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673963-8" type="radio" name="radio-set-1590673963-7" class="tab-selector-2" /> + <label for="tab-1590673963-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3441,10 +3441,10 @@ The previous examples invoke traversal s as a performance optimization.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582571946-9" type="radio" name="radio-set-1582571946-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571946-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571946-10" type="radio" name="radio-set-1582571946-9" class="tab-selector-2" /> - <label for="tab-1582571946-10" class="tab-label-2">groovy</label> + <input id="tab-1590673963-9" type="radio" name="radio-set-1590673963-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673963-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673963-10" type="radio" name="radio-set-1590673963-9" class="tab-selector-2" /> + <label for="tab-1590673963-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3500,10 +3500,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-1582571946-11" type="radio" name="radio-set-1582571946-11" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571946-11" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571946-12" type="radio" name="radio-set-1582571946-11" class="tab-selector-2" /> - <label for="tab-1582571946-12" class="tab-label-2">groovy</label> + <input id="tab-1590673963-11" type="radio" name="radio-set-1590673963-11" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673963-11" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673963-12" type="radio" name="radio-set-1590673963-11" class="tab-selector-2" /> + <label for="tab-1590673963-12" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3534,10 +3534,10 @@ g.V(<span class="integer">1</span>).outE <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-1582571946-13" type="radio" name="radio-set-1582571946-13" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571946-13" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571946-14" type="radio" name="radio-set-1582571946-13" class="tab-selector-2" /> - <label for="tab-1582571946-14" class="tab-label-2">groovy</label> + <input id="tab-1590673963-13" type="radio" name="radio-set-1590673963-13" class="tab-selector-1" checked="checked" /> + <label for="tab-1590673963-13" class="tab-label-1">console (groovy)</label> + <input id="tab-1590673963-14" type="radio" name="radio-set-1590673963-13" class="tab-selector-2" /> + <label for="tab-1590673963-14" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3587,10 +3587,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-1582571996-1" type="radio" name="radio-set-1582571996-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571996-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571996-2" type="radio" name="radio-set-1582571996-1" class="tab-selector-2" /> - <label for="tab-1582571996-2" class="tab-label-2">groovy</label> + <input id="tab-1590674014-1" type="radio" name="radio-set-1590674014-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674014-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674014-2" type="radio" name="radio-set-1590674014-1" class="tab-selector-2" /> + <label for="tab-1590674014-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3636,10 +3636,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-1582571996-3" type="radio" name="radio-set-1582571996-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582571996-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582571996-4" type="radio" name="radio-set-1582571996-3" class="tab-selector-2" /> - <label for="tab-1582571996-4" class="tab-label-2">groovy</label> + <input id="tab-1590674014-3" type="radio" name="radio-set-1590674014-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674014-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674014-4" type="radio" name="radio-set-1590674014-3" class="tab-selector-2" /> + <label for="tab-1590674014-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3688,10 +3688,10 @@ be created with the same properties and follows:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572016-1" type="radio" name="radio-set-1582572016-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572016-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572016-2" type="radio" name="radio-set-1582572016-1" class="tab-selector-2" /> - <label for="tab-1582572016-2" class="tab-label-2">groovy</label> + <input id="tab-1590674034-1" type="radio" name="radio-set-1590674034-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674034-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674034-2" type="radio" name="radio-set-1590674034-1" class="tab-selector-2" /> + <label for="tab-1590674034-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3723,10 +3723,10 @@ follows:</p> the "peter" vertex in a single traversal:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572016-3" type="radio" name="radio-set-1582572016-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572016-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572016-4" type="radio" name="radio-set-1582572016-3" class="tab-selector-2" /> - <label for="tab-1582572016-4" class="tab-label-2">groovy</label> + <input id="tab-1590674034-3" type="radio" name="radio-set-1590674034-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674034-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674034-4" type="radio" name="radio-set-1590674034-3" class="tab-selector-2" /> + <label for="tab-1590674034-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3797,10 +3797,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-1582572036-1" type="radio" name="radio-set-1582572036-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572036-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572036-2" type="radio" name="radio-set-1582572036-1" class="tab-selector-2" /> - <label for="tab-1582572036-2" class="tab-label-2">groovy</label> + <input id="tab-1590674055-1" type="radio" name="radio-set-1590674055-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674055-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674055-2" type="radio" name="radio-set-1590674055-1" class="tab-selector-2" /> + <label for="tab-1590674055-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3831,10 +3831,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-1582572036-3" type="radio" name="radio-set-1582572036-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572036-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572036-4" type="radio" name="radio-set-1582572036-3" class="tab-selector-2" /> - <label for="tab-1582572036-4" class="tab-label-2">groovy</label> + <input id="tab-1590674055-3" type="radio" name="radio-set-1590674055-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674055-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674055-4" type="radio" name="radio-set-1590674055-3" class="tab-selector-2" /> + <label for="tab-1590674055-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3889,10 +3889,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-1582572036-5" type="radio" name="radio-set-1582572036-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572036-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572036-6" type="radio" name="radio-set-1582572036-5" class="tab-selector-2" /> - <label for="tab-1582572036-6" class="tab-label-2">groovy</label> + <input id="tab-1590674055-5" type="radio" name="radio-set-1590674055-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674055-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674055-6" type="radio" name="radio-set-1590674055-5" class="tab-selector-2" /> + <label for="tab-1590674055-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3954,10 +3954,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-1582572036-7" type="radio" name="radio-set-1582572036-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572036-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572036-8" type="radio" name="radio-set-1582572036-7" class="tab-selector-2" /> - <label for="tab-1582572036-8" class="tab-label-2">groovy</label> + <input id="tab-1590674055-7" type="radio" name="radio-set-1590674055-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674055-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674055-8" type="radio" name="radio-set-1590674055-7" class="tab-selector-2" /> + <label for="tab-1590674055-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3998,10 +3998,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-1582572070-1" type="radio" name="radio-set-1582572070-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572070-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572070-2" type="radio" name="radio-set-1582572070-1" class="tab-selector-2" /> - <label for="tab-1582572070-2" class="tab-label-2">groovy</label> + <input id="tab-1590674090-1" type="radio" name="radio-set-1590674090-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674090-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674090-2" type="radio" name="radio-set-1590674090-1" class="tab-selector-2" /> + <label for="tab-1590674090-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4029,10 +4029,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-1582572070-3" type="radio" name="radio-set-1582572070-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572070-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572070-4" type="radio" name="radio-set-1582572070-3" class="tab-selector-2" /> - <label for="tab-1582572070-4" class="tab-label-2">groovy</label> + <input id="tab-1590674090-3" type="radio" name="radio-set-1590674090-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674090-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674090-4" type="radio" name="radio-set-1590674090-3" class="tab-selector-2" /> + <label for="tab-1590674090-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4084,10 +4084,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-1582572070-5" type="radio" name="radio-set-1582572070-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572070-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572070-6" type="radio" name="radio-set-1582572070-5" class="tab-selector-2" /> - <label for="tab-1582572070-6" class="tab-label-2">groovy</label> + <input id="tab-1590674090-5" type="radio" name="radio-set-1590674090-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674090-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674090-6" type="radio" name="radio-set-1590674090-5" class="tab-selector-2" /> + <label for="tab-1590674090-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4136,10 +4136,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-1582572096-1" type="radio" name="radio-set-1582572096-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572096-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572096-2" type="radio" name="radio-set-1582572096-1" class="tab-selector-2" /> - <label for="tab-1582572096-2" class="tab-label-2">groovy</label> + <input id="tab-1590674118-1" type="radio" name="radio-set-1590674118-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674118-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674118-2" type="radio" name="radio-set-1590674118-1" class="tab-selector-2" /> + <label for="tab-1590674118-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4205,10 +4205,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-1582572096-3" type="radio" name="radio-set-1582572096-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572096-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572096-4" type="radio" name="radio-set-1582572096-3" class="tab-selector-2" /> - <label for="tab-1582572096-4" class="tab-label-2">groovy</label> + <input id="tab-1590674118-3" type="radio" name="radio-set-1590674118-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674118-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674118-4" type="radio" name="radio-set-1590674118-3" class="tab-selector-2" /> + <label for="tab-1590674118-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4258,10 +4258,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-1582572096-5" type="radio" name="radio-set-1582572096-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572096-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572096-6" type="radio" name="radio-set-1582572096-5" class="tab-selector-2" /> - <label for="tab-1582572096-6" class="tab-label-2">groovy</label> + <input id="tab-1590674118-5" type="radio" name="radio-set-1590674118-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674118-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674118-6" type="radio" name="radio-set-1590674118-5" class="tab-selector-2" /> + <label for="tab-1590674118-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4325,10 +4325,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-1582572124-1" type="radio" name="radio-set-1582572124-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-2" type="radio" name="radio-set-1582572124-1" class="tab-selector-2" /> - <label for="tab-1582572124-2" class="tab-label-2">groovy</label> + <input id="tab-1590674148-1" type="radio" name="radio-set-1590674148-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-2" type="radio" name="radio-set-1590674148-1" class="tab-selector-2" /> + <label for="tab-1590674148-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4406,10 +4406,10 @@ gremlin> <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-1582572124-3" type="radio" name="radio-set-1582572124-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-4" type="radio" name="radio-set-1582572124-3" class="tab-selector-2" /> - <label for="tab-1582572124-4" class="tab-label-2">groovy</label> + <input id="tab-1590674148-3" type="radio" name="radio-set-1590674148-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-4" type="radio" name="radio-set-1590674148-3" class="tab-selector-2" /> + <label for="tab-1590674148-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4446,10 +4446,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-1582572124-5" type="radio" name="radio-set-1582572124-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-6" type="radio" name="radio-set-1582572124-5" class="tab-selector-2" /> - <label for="tab-1582572124-6" class="tab-label-2">groovy</label> + <input id="tab-1590674148-5" type="radio" name="radio-set-1590674148-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-6" type="radio" name="radio-set-1590674148-5" class="tab-selector-2" /> + <label for="tab-1590674148-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4479,10 +4479,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-1582572124-7" type="radio" name="radio-set-1582572124-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-8" type="radio" name="radio-set-1582572124-7" class="tab-selector-2" /> - <label for="tab-1582572124-8" class="tab-label-2">groovy</label> + <input id="tab-1590674148-7" type="radio" name="radio-set-1590674148-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-8" type="radio" name="radio-set-1590674148-7" class="tab-selector-2" /> + <label for="tab-1590674148-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4523,10 +4523,10 @@ interest is in what individuals other th they bought:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572124-9" type="radio" name="radio-set-1582572124-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-10" type="radio" name="radio-set-1582572124-9" class="tab-selector-2" /> - <label for="tab-1582572124-10" class="tab-label-2">groovy</label> + <input id="tab-1590674148-9" type="radio" name="radio-set-1590674148-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-10" type="radio" name="radio-set-1590674148-9" class="tab-selector-2" /> + <label for="tab-1590674148-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4573,10 +4573,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-1582572124-11" type="radio" name="radio-set-1582572124-11" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-11" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-12" type="radio" name="radio-set-1582572124-11" class="tab-selector-2" /> - <label for="tab-1582572124-12" class="tab-label-2">groovy</label> + <input id="tab-1590674148-11" type="radio" name="radio-set-1590674148-11" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-11" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-12" type="radio" name="radio-set-1590674148-11" class="tab-selector-2" /> + <label for="tab-1590674148-12" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4617,10 +4617,10 @@ that she already owns. Those products sh purposes) to form a ranking:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572124-13" type="radio" name="radio-set-1582572124-13" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-13" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-14" type="radio" name="radio-set-1582572124-13" class="tab-selector-2" /> - <label for="tab-1582572124-14" class="tab-label-2">groovy</label> + <input id="tab-1590674148-13" type="radio" name="radio-set-1590674148-13" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-13" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-14" type="radio" name="radio-set-1590674148-13" class="tab-selector-2" /> + <label for="tab-1590674148-14" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4683,10 +4683,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-1582572124-15" type="radio" name="radio-set-1582572124-15" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-15" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-16" type="radio" name="radio-set-1582572124-15" class="tab-selector-2" /> - <label for="tab-1582572124-16" class="tab-label-2">groovy</label> + <input id="tab-1590674148-15" type="radio" name="radio-set-1590674148-15" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-15" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-16" type="radio" name="radio-set-1590674148-15" class="tab-selector-2" /> + <label for="tab-1590674148-16" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4718,10 +4718,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-1582572124-17" type="radio" name="radio-set-1582572124-17" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-17" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-18" type="radio" name="radio-set-1582572124-17" class="tab-selector-2" /> - <label for="tab-1582572124-18" class="tab-label-2">groovy</label> + <input id="tab-1590674148-17" type="radio" name="radio-set-1590674148-17" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-17" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-18" type="radio" name="radio-set-1590674148-17" class="tab-selector-2" /> + <label for="tab-1590674148-18" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4757,10 +4757,10 @@ who have at least one product in common: that maximum:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572124-19" type="radio" name="radio-set-1582572124-19" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-19" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-20" type="radio" name="radio-set-1582572124-19" class="tab-selector-2" /> - <label for="tab-1582572124-20" class="tab-label-2">groovy</label> + <input id="tab-1590674148-19" type="radio" name="radio-set-1590674148-19" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-19" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-20" type="radio" name="radio-set-1590674148-19" class="tab-selector-2" /> + <label for="tab-1590674148-20" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4802,10 +4802,10 @@ that maximum:</p> common:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572124-21" type="radio" name="radio-set-1582572124-21" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-21" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-22" type="radio" name="radio-set-1582572124-21" class="tab-selector-2" /> - <label for="tab-1582572124-22" class="tab-label-2">groovy</label> + <input id="tab-1590674148-21" type="radio" name="radio-set-1590674148-21" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-21" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-22" type="radio" name="radio-set-1590674148-21" class="tab-selector-2" /> + <label for="tab-1590674148-22" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4852,10 +4852,10 @@ common:</p> purchased:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572124-23" type="radio" name="radio-set-1582572124-23" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-23" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-24" type="radio" name="radio-set-1582572124-23" class="tab-selector-2" /> - <label for="tab-1582572124-24" class="tab-label-2">groovy</label> + <input id="tab-1590674148-23" type="radio" name="radio-set-1590674148-23" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-23" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-24" type="radio" name="radio-set-1590674148-23" class="tab-selector-2" /> + <label for="tab-1590674148-24" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4905,10 +4905,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-1582572124-25" type="radio" name="radio-set-1582572124-25" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-25" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-26" type="radio" name="radio-set-1582572124-25" class="tab-selector-2" /> - <label for="tab-1582572124-26" class="tab-label-2">groovy</label> + <input id="tab-1590674148-25" type="radio" name="radio-set-1590674148-25" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-25" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-26" type="radio" name="radio-set-1590674148-25" class="tab-selector-2" /> + <label for="tab-1590674148-26" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4968,10 +4968,10 @@ purchased:</p> recommendation algorithm:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572124-27" type="radio" name="radio-set-1582572124-27" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-27" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-28" type="radio" name="radio-set-1582572124-27" class="tab-selector-2" /> - <label for="tab-1582572124-28" class="tab-label-2">groovy</label> + <input id="tab-1590674148-27" type="radio" name="radio-set-1590674148-27" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-27" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-28" type="radio" name="radio-set-1590674148-27" class="tab-selector-2" /> + <label for="tab-1590674148-28" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5012,16 +5012,16 @@ place additional limits on the traversal </div> <div class="paragraph"> <p>Gremlin provides a number of steps that can help with these limits like: -<a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#coin-step">coin()</a>, -<a href="http://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#sample-step">sample()</a>, and -<a href="http://tinkerpop.apache.org/docs/current/reference/#timelimit-step">timeLimit()</a>. For example, to have the +<a href="https://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#coin-step">coin()</a>, +<a href="https://tinkerpop.apache.org/docs/3.4.7-SNAPSHOT/reference/#sample-step">sample()</a>, and +<a href="https://tinkerpop.apache.org/docs/current/reference/#timelimit-step">timeLimit()</a>. For example, to have the 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-1582572124-29" type="radio" name="radio-set-1582572124-29" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572124-29" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572124-30" type="radio" name="radio-set-1582572124-29" class="tab-selector-2" /> - <label for="tab-1582572124-30" class="tab-label-2">groovy</label> + <input id="tab-1590674148-29" type="radio" name="radio-set-1590674148-29" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674148-29" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674148-30" type="radio" name="radio-set-1590674148-29" class="tab-selector-2" /> + <label for="tab-1590674148-30" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5075,10 +5075,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-1582572219-1" type="radio" name="radio-set-1582572219-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572219-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572219-2" type="radio" name="radio-set-1582572219-1" class="tab-selector-2" /> - <label for="tab-1582572219-2" class="tab-label-2">groovy</label> + <input id="tab-1590674245-1" type="radio" name="radio-set-1590674245-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674245-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674245-2" type="radio" name="radio-set-1590674245-1" class="tab-selector-2" /> + <label for="tab-1590674245-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5150,10 +5150,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-1582572219-3" type="radio" name="radio-set-1582572219-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572219-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572219-4" type="radio" name="radio-set-1582572219-3" class="tab-selector-2" /> - <label for="tab-1582572219-4" class="tab-label-2">groovy</label> + <input id="tab-1590674245-3" type="radio" name="radio-set-1590674245-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674245-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674245-4" type="radio" name="radio-set-1590674245-3" class="tab-selector-2" /> + <label for="tab-1590674245-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5187,10 +5187,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-1582572219-5" type="radio" name="radio-set-1582572219-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572219-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572219-6" type="radio" name="radio-set-1582572219-5" class="tab-selector-2" /> - <label for="tab-1582572219-6" class="tab-label-2">groovy</label> + <input id="tab-1590674245-5" type="radio" name="radio-set-1590674245-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674245-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674245-6" type="radio" name="radio-set-1590674245-5" class="tab-selector-2" /> + <label for="tab-1590674245-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5292,10 +5292,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-1582572219-7" type="radio" name="radio-set-1582572219-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572219-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572219-8" type="radio" name="radio-set-1582572219-7" class="tab-selector-2" /> - <label for="tab-1582572219-8" class="tab-label-2">groovy</label> + <input id="tab-1590674245-7" type="radio" name="radio-set-1590674245-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674245-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674245-8" type="radio" name="radio-set-1590674245-7" class="tab-selector-2" /> + <label for="tab-1590674245-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5330,10 +5330,10 @@ g.V(<span class="integer">1</span>).shor in the modern toy graph.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572219-9" type="radio" name="radio-set-1582572219-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572219-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572219-10" type="radio" name="radio-set-1582572219-9" class="tab-selector-2" /> - <label for="tab-1582572219-10" class="tab-label-2">groovy</label> + <input id="tab-1590674245-9" type="radio" name="radio-set-1590674245-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674245-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674245-10" type="radio" name="radio-set-1590674245-9" class="tab-selector-2" /> + <label for="tab-1590674245-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5448,10 +5448,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-1582572219-11" type="radio" name="radio-set-1582572219-11" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572219-11" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572219-12" type="radio" name="radio-set-1582572219-11" class="tab-selector-2" /> - <label for="tab-1582572219-12" class="tab-label-2">groovy</label> + <input id="tab-1590674245-11" type="radio" name="radio-set-1590674245-11" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674245-11" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674245-12" type="radio" name="radio-set-1590674245-11" class="tab-selector-2" /> + <label for="tab-1590674245-12" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5531,10 +5531,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-1582572219-13" type="radio" name="radio-set-1582572219-13" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572219-13" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572219-14" type="radio" name="radio-set-1582572219-13" class="tab-selector-2" /> - <label for="tab-1582572219-14" class="tab-label-2">groovy</label> + <input id="tab-1590674245-13" type="radio" name="radio-set-1590674245-13" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674245-13" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674245-14" type="radio" name="radio-set-1590674245-13" class="tab-selector-2" /> + <label for="tab-1590674245-14" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5625,10 +5625,10 @@ shortest paths can be passed back into t arguments.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572276-1" type="radio" name="radio-set-1582572276-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572276-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572276-2" type="radio" name="radio-set-1582572276-1" class="tab-selector-2" /> - <label for="tab-1582572276-2" class="tab-label-2">groovy</label> + <input id="tab-1590674305-1" type="radio" name="radio-set-1590674305-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674305-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1590674305-2" type="radio" name="radio-set-1590674305-1" class="tab-selector-2" /> + <label for="tab-1590674305-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5657,10 +5657,10 @@ no longer suffice. There are multiple wa obvious to any programmer - use a variable:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1582572276-3" type="radio" name="radio-set-1582572276-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1582572276-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1582572276-4" type="radio" name="radio-set-1582572276-3" class="tab-selector-2" /> - <label for="tab-1582572276-4" class="tab-label-2">groovy</label> + <input id="tab-1590674305-3" type="radio" name="radio-set-1590674305-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1590674305-3" class="tab-label-1">console (groovy)</label>
[... 1115 lines stripped ...]