Modified: tinkerpop/site/docs/3.4.11-SNAPSHOT/recipes/index.html URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.4.11-SNAPSHOT/recipes/index.html?rev=1889266&r1=1889265&r2=1889266&view=diff ============================================================================== --- tinkerpop/site/docs/3.4.11-SNAPSHOT/recipes/index.html (original) +++ tinkerpop/site/docs/3.4.11-SNAPSHOT/recipes/index.html Wed Apr 28 15:28:18 2021 @@ -4,7 +4,7 @@ <meta charset="UTF-8"> <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--> <meta name="viewport" content="width=device-width, initial-scale=1.0"> -<meta name="generator" content="Asciidoctor 1.5.5"> +<meta name="generator" content="Asciidoctor 1.5.8"> <title>Recipes</title> <style> /* @@ -900,7 +900,7 @@ table.CodeRay td.code>pre{padding:0} <div class="openblock partintro"> <div class="content"> <div class="paragraph"> -<p><span class="image" style="float: left"><img src="../images/gremlin-chef.png" alt="gremlin chef" width="120"></span> All programming languages tend to have +<p><span class="image left"><img src="../images/gremlin-chef.png" alt="gremlin chef" width="120"></span> All programming languages tend to have <a href="https://en.wikipedia.org/wiki/Software_design_pattern">patterns of usage</a> for commonly occurring problems. Gremlin is not different in that respect. There are many commonly occurring traversal themes that have general applicability to any graph. Gremlin Recipes present these common traversal patterns and methods of usage that will @@ -922,30 +922,30 @@ 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-1611320871-1" type="radio" name="radio-set-1611320871-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320871-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320871-2" type="radio" name="radio-set-1611320871-1" class="tab-selector-2" /> - <label for="tab-1611320871-2" class="tab-label-2">groovy</label> + <input id="tab-1619618688-1" type="radio" name="radio-set-1619618688-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618688-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618688-2" type="radio" name="radio-set-1619618688-1" class="tab-selector-2" /> + <label for="tab-1619618688-2" 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> g.V(<span class="integer">1</span>).bothE() <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">gremlin> g.V(<span class="integer">1</span>).bothE() <span class="comment">//</span>// <b class="conum">(1)</b> ==>e[<span class="integer">9</span>][<span class="integer">1</span>-created-><span class="integer">3</span>] ==>e[<span class="integer">7</span>][<span class="integer">1</span>-knows-><span class="integer">2</span>] ==>e[<span class="integer">8</span>][<span class="integer">1</span>-knows-><span class="integer">4</span>] -gremlin> g.V(<span class="integer">1</span>).bothE().where(otherV().hasId(<span class="integer">2</span>)) <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> +gremlin> g.V(<span class="integer">1</span>).bothE().where(otherV().hasId(<span class="integer">2</span>)) <span class="comment">//</span>// <b class="conum">(2)</b> ==>e[<span class="integer">7</span>][<span class="integer">1</span>-knows-><span class="integer">2</span>] gremlin> v1 = g.V(<span class="integer">1</span>).next();<span class="type">[]</span> gremlin> v2 = g.V(<span class="integer">2</span>).next();<span class="type">[]</span> -gremlin> g.V(v1).bothE().where(otherV().is(v2)) <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +gremlin> g.V(v1).bothE().where(otherV().is(v2)) <span class="comment">//</span>// <b class="conum">(3)</b> ==>e[<span class="integer">7</span>][<span class="integer">1</span>-knows-><span class="integer">2</span>] -gremlin> g.V(v1).outE().where(inV().is(v2)) <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> +gremlin> g.V(v1).outE().where(inV().is(v2)) <span class="comment">//</span>// <b class="conum">(4)</b> ==>e[<span class="integer">7</span>][<span class="integer">1</span>-knows-><span class="integer">2</span>] -gremlin> g.V(<span class="integer">1</span>).outE().where(inV().has(id, within(<span class="integer">2</span>,<span class="integer">3</span>))) <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> +gremlin> g.V(<span class="integer">1</span>).outE().where(inV().has(id, within(<span class="integer">2</span>,<span class="integer">3</span>))) <span class="comment">//</span>// <b class="conum">(5)</b> ==>e[<span class="integer">9</span>][<span class="integer">1</span>-created-><span class="integer">3</span>] ==>e[<span class="integer">7</span>][<span class="integer">1</span>-knows-><span class="integer">2</span>] -gremlin> g.V(<span class="integer">1</span>).out().where(__.in().hasId(<span class="integer">6</span>)) <span class="invisible">//</span><b class="conum">6</b><span class="invisible">\</span> +gremlin> g.V(<span class="integer">1</span>).out().where(__.in().hasId(<span class="integer">6</span>)) <span class="comment">//</span>// <b class="conum">(6)</b> ==>v[<span class="integer">3</span>]</code></pre> </div> </div> @@ -955,13 +955,13 @@ gremlin> g.V(<span class="integer">1< <div class="tabcontent-2"> <div class="listingblock"> <div class="content"> -<pre class="CodeRay highlight"><code data-lang="groovy">g.V(<span class="integer">1</span>).bothE() <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> -g.V(<span class="integer">1</span>).bothE().where(otherV().hasId(<span class="integer">2</span>)) <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">g.V(<span class="integer">1</span>).bothE() <span class="comment">//</span>// <b class="conum">(1)</b> +g.V(<span class="integer">1</span>).bothE().where(otherV().hasId(<span class="integer">2</span>)) <span class="comment">//</span>// <b class="conum">(2)</b> v1 = g.V(<span class="integer">1</span>).next();<span class="type">[]</span> v2 = g.V(<span class="integer">2</span>).next();<span class="type">[]</span> -g.V(v1).bothE().where(otherV().is(v2)) <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> -g.V(v1).outE().where(inV().is(v2)) <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> -g.V(<span class="integer">1</span>).outE().where(inV().has(id, within(<span class="integer">2</span>,<span class="integer">3</span>))) <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> +g.V(v1).bothE().where(otherV().is(v2)) <span class="comment">//</span>// <b class="conum">(3)</b> +g.V(v1).outE().where(inV().is(v2)) <span class="comment">//</span>// <b class="conum">(4)</b> +g.V(<span class="integer">1</span>).outE().where(inV().has(id, within(<span class="integer">2</span>,<span class="integer">3</span>))) <span class="comment">//</span>// <b class="conum">(5)</b> g.V(<span class="integer">1</span>).out().where(__.in().hasId(<span class="integer">6</span>)) <span class="invisible">//</span><b class="conum">6</b></code></pre> </div> </div> @@ -1000,10 +1000,10 @@ scenarios. For one such example, conside vertices:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1611320871-3" type="radio" name="radio-set-1611320871-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320871-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320871-4" type="radio" name="radio-set-1611320871-3" class="tab-selector-2" /> - <label for="tab-1611320871-4" class="tab-label-2">groovy</label> + <input id="tab-1619618688-3" type="radio" name="radio-set-1619618688-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618688-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618688-4" type="radio" name="radio-set-1619618688-3" class="tab-selector-2" /> + <label for="tab-1619618688-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1052,10 +1052,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-1611320871-5" type="radio" name="radio-set-1611320871-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320871-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320871-6" type="radio" name="radio-set-1611320871-5" class="tab-selector-2" /> - <label for="tab-1611320871-6" class="tab-label-2">groovy</label> + <input id="tab-1619618688-5" type="radio" name="radio-set-1619618688-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618688-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618688-6" type="radio" name="radio-set-1619618688-5" class="tab-selector-2" /> + <label for="tab-1619618688-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1191,28 +1191,28 @@ 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-1611320904-1" type="radio" name="radio-set-1611320904-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320904-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320904-2" type="radio" name="radio-set-1611320904-1" class="tab-selector-2" /> - <label for="tab-1611320904-2" class="tab-label-2">groovy</label> + <input id="tab-1619618722-1" type="radio" name="radio-set-1619618722-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618722-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618722-2" type="radio" name="radio-set-1619618722-1" class="tab-selector-2" /> + <label for="tab-1619618722-2" 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> g.V().group().by().by(bothE().count()) <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">gremlin> g.V().group().by().by(bothE().count()) <span class="comment">//</span>// <b class="conum">(1)</b> ==>[v[<span class="integer">1</span>]:<span class="integer">3</span>,v[<span class="integer">2</span>]:<span class="integer">1</span>,v[<span class="integer">3</span>]:<span class="integer">3</span>,v[<span class="integer">4</span>]:<span class="integer">3</span>,v[<span class="integer">5</span>]:<span class="integer">1</span>,v[<span class="integer">6</span>]:<span class="integer">1</span>] -gremlin> g.V().group().by().by(inE().count()) <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> +gremlin> g.V().group().by().by(inE().count()) <span class="comment">//</span>// <b class="conum">(2)</b> ==>[v[<span class="integer">1</span>]:<span class="integer">0</span>,v[<span class="integer">2</span>]:<span class="integer">1</span>,v[<span class="integer">3</span>]:<span class="integer">3</span>,v[<span class="integer">4</span>]:<span class="integer">1</span>,v[<span class="integer">5</span>]:<span class="integer">1</span>,v[<span class="integer">6</span>]:<span class="integer">0</span>] -gremlin> g.V().group().by().by(outE().count()) <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +gremlin> g.V().group().by().by(outE().count()) <span class="comment">//</span>// <b class="conum">(3)</b> ==>[v[<span class="integer">1</span>]:<span class="integer">3</span>,v[<span class="integer">2</span>]:<span class="integer">0</span>,v[<span class="integer">3</span>]:<span class="integer">0</span>,v[<span class="integer">4</span>]:<span class="integer">2</span>,v[<span class="integer">5</span>]:<span class="integer">0</span>,v[<span class="integer">6</span>]:<span class="integer">1</span>] -gremlin> g.V().project(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>).by().by(bothE().count()) <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> +gremlin> g.V().project(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>).by().by(bothE().count()) <span class="comment">//</span>// <b class="conum">(4)</b> ==>[<span class="key">v</span>:v[<span class="integer">1</span>],<span class="key">degree</span>:<span class="integer">3</span>] ==>[<span class="key">v</span>:v[<span class="integer">2</span>],<span class="key">degree</span>:<span class="integer">1</span>] ==>[<span class="key">v</span>:v[<span class="integer">3</span>],<span class="key">degree</span>:<span class="integer">3</span>] ==>[<span class="key">v</span>:v[<span class="integer">4</span>],<span class="key">degree</span>:<span class="integer">3</span>] ==>[<span class="key">v</span>:v[<span class="integer">5</span>],<span class="key">degree</span>:<span class="integer">1</span>] ==>[<span class="key">v</span>:v[<span class="integer">6</span>],<span class="key">degree</span>:<span class="integer">1</span>] -gremlin> g.V().project(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>).by().by(bothE().count()). <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> +gremlin> g.V().project(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>).by().by(bothE().count()). <span class="comment">//</span>// <b class="conum">(5)</b> order().by(<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>, desc). limit(<span class="integer">4</span>) ==>[<span class="key">v</span>:v[<span class="integer">1</span>],<span class="key">degree</span>:<span class="integer">3</span>] @@ -1227,11 +1227,11 @@ gremlin> g.V().project(<span class="s <div class="tabcontent-2"> <div class="listingblock"> <div class="content"> -<pre class="CodeRay highlight"><code data-lang="groovy">g.V().group().by().by(bothE().count()) <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> -g.V().group().by().by(inE().count()) <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> -g.V().group().by().by(outE().count()) <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> -g.V().project(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>).by().by(bothE().count()) <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> -g.V().project(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>).by().by(bothE().count()). <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">g.V().group().by().by(bothE().count()) <span class="comment">//</span>// <b class="conum">(1)</b> +g.V().group().by().by(inE().count()) <span class="comment">//</span>// <b class="conum">(2)</b> +g.V().group().by().by(outE().count()) <span class="comment">//</span>// <b class="conum">(3)</b> +g.V().project(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>).by().by(bothE().count()) <span class="comment">//</span>// <b class="conum">(4)</b> +g.V().project(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>).by().by(bothE().count()). <span class="comment">//</span>// <b class="conum">(5)</b> order().by(<span class="string"><span class="delimiter">"</span><span class="content">degree</span><span class="delimiter">"</span></span>, desc). limit(<span class="integer">4</span>)</code></pre> </div> @@ -1289,10 +1289,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-1611320904-3" type="radio" name="radio-set-1611320904-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320904-3" class="tab-label-1">console (groovy )</label> - <input id="tab-1611320904-4" type="radio" name="radio-set-1611320904-3" class="tab-selector-2" /> - <label for="tab-1611320904-4" class="tab-label-2">groovy </label> + <input id="tab-1619618722-3" type="radio" name="radio-set-1619618722-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618722-3" class="tab-label-1">console (groovy )</label> + <input id="tab-1619618722-4" type="radio" name="radio-set-1619618722-3" class="tab-selector-2" /> + <label for="tab-1619618722-4" class="tab-label-2">groovy </label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1309,20 +1309,20 @@ graph for demonstration purposes:</p> addE(<span class="string"><span class="delimiter">'</span><span class="content">next</span><span class="delimiter">'</span></span>).from(<span class="string"><span class="delimiter">'</span><span class="content">c</span><span class="delimiter">'</span></span>).to(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>). addE(<span class="string"><span class="delimiter">'</span><span class="content">next</span><span class="delimiter">'</span></span>).from(<span class="string"><span class="delimiter">'</span><span class="content">d</span><span class="delimiter">'</span></span>).to(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>). addE(<span class="string"><span class="delimiter">'</span><span class="content">next</span><span class="delimiter">'</span></span>).from(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).to(<span class="string"><span class="delimiter">'</span><span class="content">f</span><span class="delimiter">'</span></span>).iterate() -gremlin> g.V().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>). <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> - repeat(both().simplePath().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)).emit(). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> - filter(project(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +gremlin> g.V().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>). <span class="comment">//</span>// <b class="conum">(1)</b> + repeat(both().simplePath().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)).emit(). <span class="comment">//</span>// <b class="conum">(2)</b> + filter(project(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(3)</b> by(select(last, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). by(select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).count(local)).as(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>). - coalesce(select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>). <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> + coalesce(select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>). <span class="comment">//</span>// <b class="conum">(4)</b> select(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>).unfold().as(<span class="string"><span class="delimiter">"</span><span class="content">t</span><span class="delimiter">"</span></span>). select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>)). select(<span class="string"><span class="delimiter">"</span><span class="content">t</span><span class="delimiter">"</span></span>), - store(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> + store(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(5)</b> select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>). - select(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>).select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>))). <span class="invisible">//</span><b class="conum">6</b><span class="invisible">\</span> - select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).unfold(). <span class="invisible">//</span><b class="conum">7</b><span class="invisible">\</span> - groupCount().next() <span class="invisible">//</span><b class="conum">8</b><span class="invisible">\</span> + select(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>).select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>))). <span class="comment">//</span>// <b class="conum">(6)</b> + select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).unfold(). <span class="comment">//</span>// <b class="conum">(7)</b> + groupCount().next() <span class="comment">//</span>// <b class="conum">(8)</b> ==>v[A]=<span class="integer">14</span> ==>v[B]=<span class="integer">28</span> ==>v[C]=<span class="integer">20</span> @@ -1349,19 +1349,19 @@ gremlin> g.V().as(<span class="string addE(<span class="string"><span class="delimiter">'</span><span class="content">next</span><span class="delimiter">'</span></span>).from(<span class="string"><span class="delimiter">'</span><span class="content">c</span><span class="delimiter">'</span></span>).to(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>). addE(<span class="string"><span class="delimiter">'</span><span class="content">next</span><span class="delimiter">'</span></span>).from(<span class="string"><span class="delimiter">'</span><span class="content">d</span><span class="delimiter">'</span></span>).to(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>). addE(<span class="string"><span class="delimiter">'</span><span class="content">next</span><span class="delimiter">'</span></span>).from(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).to(<span class="string"><span class="delimiter">'</span><span class="content">f</span><span class="delimiter">'</span></span>).iterate() -g.V().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>). <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> - repeat(both().simplePath().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)).emit(). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> - filter(project(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +g.V().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>). <span class="comment">//</span>// <b class="conum">(1)</b> + repeat(both().simplePath().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)).emit(). <span class="comment">//</span>// <b class="conum">(2)</b> + filter(project(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(3)</b> by(select(last, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). by(select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).count(local)).as(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>). - coalesce(select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>). <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> + coalesce(select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>). <span class="comment">//</span>// <b class="conum">(4)</b> select(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>).unfold().as(<span class="string"><span class="delimiter">"</span><span class="content">t</span><span class="delimiter">"</span></span>). select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>)). select(<span class="string"><span class="delimiter">"</span><span class="content">t</span><span class="delimiter">"</span></span>), - store(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> + store(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(5)</b> select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>). - select(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>).select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>))). <span class="invisible">//</span><b class="conum">6</b><span class="invisible">\</span> - select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).unfold(). <span class="invisible">//</span><b class="conum">7</b><span class="invisible">\</span> + select(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>).select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>))). <span class="comment">//</span>// <b class="conum">(6)</b> + select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).unfold(). <span class="comment">//</span>// <b class="conum">(7)</b> groupCount().next() <span class="invisible">//</span><b class="conum">8</b></code></pre> </div> </div> @@ -1420,27 +1420,27 @@ 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-1611320904-5" type="radio" name="radio-set-1611320904-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320904-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320904-6" type="radio" name="radio-set-1611320904-5" class="tab-selector-2" /> - <label for="tab-1611320904-6" class="tab-label-2">groovy</label> + <input id="tab-1619618722-5" type="radio" name="radio-set-1619618722-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618722-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618722-6" type="radio" name="radio-set-1619618722-5" class="tab-selector-2" /> + <label for="tab-1619618722-6" 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> g.withSack(<span class="float">1f</span>).V().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>). <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> - repeat(both().simplePath().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)).emit(). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> - filter(project(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">gremlin> g.withSack(<span class="float">1f</span>).V().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>). <span class="comment">//</span>// <b class="conum">(1)</b> + repeat(both().simplePath().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)).emit(). <span class="comment">//</span>// <b class="conum">(2)</b> + filter(project(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(3)</b> by(select(last, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). by(select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).count(local)).as(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>). - coalesce(select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>). <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> + coalesce(select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>). <span class="comment">//</span>// <b class="conum">(4)</b> select(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>).unfold().as(<span class="string"><span class="delimiter">"</span><span class="content">t</span><span class="delimiter">"</span></span>). select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>)). select(<span class="string"><span class="delimiter">"</span><span class="content">t</span><span class="delimiter">"</span></span>), - store(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> + store(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(5)</b> select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>). - select(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>).select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>))). <span class="invisible">//</span><b class="conum">6</b><span class="invisible">\</span> - group().by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">7</b><span class="invisible">\</span> + select(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>).select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>))). <span class="comment">//</span>// <b class="conum">(6)</b> + group().by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(7)</b> by(select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).count(local).sack(div).sack().sum()).next() ==>v[<span class="integer">1</span>]=<span class="float">2.1666666666666665</span> ==>v[<span class="integer">2</span>]=<span class="float">1.6666666666666665</span> @@ -1456,19 +1456,19 @@ other reachable vertices in the graph. T <div class="tabcontent-2"> <div class="listingblock"> <div class="content"> -<pre class="CodeRay highlight"><code data-lang="groovy">g.withSack(<span class="float">1f</span>).V().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>). <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> - repeat(both().simplePath().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)).emit(). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> - filter(project(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">g.withSack(<span class="float">1f</span>).V().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>). <span class="comment">//</span>// <b class="conum">(1)</b> + repeat(both().simplePath().as(<span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)).emit(). <span class="comment">//</span>// <b class="conum">(2)</b> + filter(project(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(3)</b> by(select(last, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). by(select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).count(local)).as(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>). - coalesce(select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>). <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> + coalesce(select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>). <span class="comment">//</span>// <b class="conum">(4)</b> select(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>).unfold().as(<span class="string"><span class="delimiter">"</span><span class="content">t</span><span class="delimiter">"</span></span>). select(<span class="string"><span class="delimiter">"</span><span class="content">x</span><span class="delimiter">"</span></span>,<span class="string"><span class="delimiter">"</span><span class="content">y</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>)). select(<span class="string"><span class="delimiter">"</span><span class="content">t</span><span class="delimiter">"</span></span>), - store(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> + store(<span class="string"><span class="delimiter">"</span><span class="content">triples</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(5)</b> select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).as(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>). - select(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>).select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>))). <span class="invisible">//</span><b class="conum">6</b><span class="invisible">\</span> - group().by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="invisible">//</span><b class="conum">7</b><span class="invisible">\</span> + select(<span class="string"><span class="delimiter">"</span><span class="content">triple</span><span class="delimiter">"</span></span>).select(<span class="string"><span class="delimiter">"</span><span class="content">z</span><span class="delimiter">"</span></span>).where(eq(<span class="string"><span class="delimiter">"</span><span class="content">length</span><span class="delimiter">"</span></span>))). <span class="comment">//</span>// <b class="conum">(6)</b> + group().by(select(first, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>)). <span class="comment">//</span>// <b class="conum">(7)</b> by(select(all, <span class="string"><span class="delimiter">"</span><span class="content">v</span><span class="delimiter">"</span></span>).count(local).sack(div).sack().sum()).next()</code></pre> </div> </div> @@ -1526,17 +1526,17 @@ 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-1611320904-7" type="radio" name="radio-set-1611320904-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320904-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320904-8" type="radio" name="radio-set-1611320904-7" class="tab-selector-2" /> - <label for="tab-1611320904-8" class="tab-label-2">groovy</label> + <input id="tab-1619618722-7" type="radio" name="radio-set-1619618722-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618722-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618722-8" type="radio" name="radio-set-1619618722-7" class="tab-selector-2" /> + <label for="tab-1619618722-8" 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> g.io(<span class="string"><span class="delimiter">'</span><span class="content">data/grateful-dead.xml</span><span class="delimiter">'</span></span>).read().iterate() -gremlin> g.V().repeat(groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).out()).times(<span class="integer">5</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> - order(local).by(values, desc).limit(local, <span class="integer">10</span>).next() <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> +gremlin> g.V().repeat(groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).out()).times(<span class="integer">5</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(1)</b> + order(local).by(values, desc).limit(local, <span class="integer">10</span>).next() <span class="comment">//</span>// <b class="conum">(2)</b> ==>PLAYING IN THE BAND=<span class="integer">8758598</span> ==>ME AND MY UNCLE=<span class="integer">8214246</span> ==>JACK STRAW=<span class="integer">8173882</span> @@ -1547,7 +1547,7 @@ gremlin> g.V().repeat(groupCount(<spa ==>CUMBERLAND BLUES=<span class="integer">6730838</span> ==>RAMBLE ON ROSE=<span class="integer">6676667</span> ==>LOOKS LIKE RAIN=<span class="integer">6674121</span> -gremlin> g.V().repeat(groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).out().timeLimit(<span class="integer">100</span>)).times(<span class="integer">5</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +gremlin> g.V().repeat(groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).out().timeLimit(<span class="integer">100</span>)).times(<span class="integer">5</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(3)</b> order(local).by(values, desc).limit(local, <span class="integer">10</span>).next() ==>PLAYING IN THE BAND=<span class="integer">8758598</span> ==>ME AND MY UNCLE=<span class="integer">8214246</span> @@ -1568,9 +1568,9 @@ gremlin> g.V().repeat(groupCount(<spa <div class="listingblock"> <div class="content"> <pre class="CodeRay highlight"><code data-lang="groovy">g.io(<span class="string"><span class="delimiter">'</span><span class="content">data/grateful-dead.xml</span><span class="delimiter">'</span></span>).read().iterate() -g.V().repeat(groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).out()).times(<span class="integer">5</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> - order(local).by(values, desc).limit(local, <span class="integer">10</span>).next() <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> -g.V().repeat(groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).out().timeLimit(<span class="integer">100</span>)).times(<span class="integer">5</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +g.V().repeat(groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).out()).times(<span class="integer">5</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(1)</b> + order(local).by(values, desc).limit(local, <span class="integer">10</span>).next() <span class="comment">//</span>// <b class="conum">(2)</b> +g.V().repeat(groupCount(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>).by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).out().timeLimit(<span class="integer">100</span>)).times(<span class="integer">5</span>).cap(<span class="string"><span class="delimiter">'</span><span class="content">m</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(3)</b> order(local).by(values, desc).limit(local, <span class="integer">10</span>).next()</code></pre> </div> </div> @@ -1608,10 +1608,10 @@ can shorten the time required to get a r <code>GraphComputer</code> (OLAP) based traversals.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1611320904-9" type="radio" name="radio-set-1611320904-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320904-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320904-10" type="radio" name="radio-set-1611320904-9" class="tab-selector-2" /> - <label for="tab-1611320904-10" class="tab-label-2">groovy</label> + <input id="tab-1619618722-9" type="radio" name="radio-set-1619618722-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618722-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618722-10" type="radio" name="radio-set-1619618722-9" class="tab-selector-2" /> + <label for="tab-1619618722-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1619,12 +1619,12 @@ can shorten the time required to get a r <pre class="CodeRay highlight"><code data-lang="groovy">gremlin> g = traversal().withEmbedded(graph).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.11375510357865541</span> -==><span class="float">0.11375510357865541</span> -==><span class="float">0.14598540152719106</span> -==><span class="float">0.14598540152719106</span> -==><span class="float">0.3047200907912249</span> -==><span class="float">0.17579889899708231</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.30472009079122486</span> +==><span class="float">0.1757988989970823</span></code></pre> </div> </div> </div> @@ -1669,10 +1669,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-1611320955-1" type="radio" name="radio-set-1611320955-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320955-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320955-2" type="radio" name="radio-set-1611320955-1" class="tab-selector-2" /> - <label for="tab-1611320955-2" class="tab-label-2">groovy</label> + <input id="tab-1619618774-1" type="radio" name="radio-set-1619618774-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618774-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618774-2" type="radio" name="radio-set-1619618774-1" class="tab-selector-2" /> + <label for="tab-1619618774-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1701,10 +1701,10 @@ g.V().store(<span class="string"><span c similar fashion to lists:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1611320955-3" type="radio" name="radio-set-1611320955-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320955-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320955-4" type="radio" name="radio-set-1611320955-3" class="tab-selector-2" /> - <label for="tab-1611320955-4" class="tab-label-2">groovy</label> + <input id="tab-1619618774-3" type="radio" name="radio-set-1619618774-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618774-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618774-4" type="radio" name="radio-set-1619618774-3" class="tab-selector-2" /> + <label for="tab-1619618774-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1737,10 +1737,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-1611320955-5" type="radio" name="radio-set-1611320955-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320955-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320955-6" type="radio" name="radio-set-1611320955-5" class="tab-selector-2" /> - <label for="tab-1611320955-6" class="tab-label-2">groovy</label> + <input id="tab-1619618774-5" type="radio" name="radio-set-1619618774-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618774-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618774-6" type="radio" name="radio-set-1619618774-5" class="tab-selector-2" /> + <label for="tab-1619618774-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1780,10 +1780,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-1611320955-7" type="radio" name="radio-set-1611320955-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320955-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320955-8" type="radio" name="radio-set-1611320955-7" class="tab-selector-2" /> - <label for="tab-1611320955-8" class="tab-label-2">groovy</label> + <input id="tab-1619618774-7" type="radio" name="radio-set-1619618774-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618774-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618774-8" type="radio" name="radio-set-1619618774-7" class="tab-selector-2" /> + <label for="tab-1619618774-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1825,10 +1825,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-1611320955-9" type="radio" name="radio-set-1611320955-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320955-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320955-10" type="radio" name="radio-set-1611320955-9" class="tab-selector-2" /> - <label for="tab-1611320955-10" class="tab-label-2">groovy</label> + <input id="tab-1619618774-9" type="radio" name="radio-set-1619618774-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618774-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618774-10" type="radio" name="radio-set-1619618774-9" class="tab-selector-2" /> + <label for="tab-1619618774-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1863,26 +1863,26 @@ 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-1611320955-11" type="radio" name="radio-set-1611320955-11" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320955-11" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320955-12" type="radio" name="radio-set-1611320955-11" class="tab-selector-2" /> - <label for="tab-1611320955-12" class="tab-label-2">groovy</label> + <input id="tab-1619618774-11" type="radio" name="radio-set-1619618774-11" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618774-11" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618774-12" type="radio" name="radio-set-1619618774-11" class="tab-selector-2" /> + <label for="tab-1619618774-12" 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> g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()) <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">gremlin> g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()) <span class="comment">//</span>// <b class="conum">(1)</b> ==>[v[<span class="integer">1</span>],v[<span class="integer">2</span>],v[<span class="integer">3</span>]] ==>[v[<span class="integer">4</span>],v[<span class="integer">5</span>],v[<span class="integer">6</span>]] gremlin> g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()). - local(unfold(). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> + local(unfold(). <span class="comment">//</span>// <b class="conum">(2)</b> order(). by(bothE().count(),desc). limit(<span class="integer">1</span>). fold()) ==>[v[<span class="integer">1</span>]] ==>[v[<span class="integer">4</span>]] -gremlin> g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +gremlin> g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()). <span class="comment">//</span>// <b class="conum">(3)</b> local(unfold(). has(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>,gte(<span class="integer">29</span>)). values(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>). @@ -1897,14 +1897,14 @@ gremlin> g.V().union(limit(<span clas <div class="tabcontent-2"> <div class="listingblock"> <div class="content"> -<pre class="CodeRay highlight"><code data-lang="groovy">g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()) <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()) <span class="comment">//</span>// <b class="conum">(1)</b> g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()). - local(unfold(). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> + local(unfold(). <span class="comment">//</span>// <b class="conum">(2)</b> order(). by(bothE().count(),desc). limit(<span class="integer">1</span>). fold()) -g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +g.V().union(limit(<span class="integer">3</span>).fold(),tail(<span class="integer">3</span>).fold()). <span class="comment">//</span>// <b class="conum">(3)</b> local(unfold(). has(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>,gte(<span class="integer">29</span>)). values(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>). @@ -1944,17 +1944,17 @@ 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-1611320955-13" type="radio" name="radio-set-1611320955-13" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320955-13" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320955-14" type="radio" name="radio-set-1611320955-13" class="tab-selector-2" /> - <label for="tab-1611320955-14" class="tab-label-2">groovy</label> + <input id="tab-1619618774-13" type="radio" name="radio-set-1619618774-13" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618774-13" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618774-14" type="radio" name="radio-set-1619618774-13" class="tab-selector-2" /> + <label for="tab-1619618774-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> 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>).values(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>) <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">gremlin> 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>).values(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>) <span class="comment">//</span>// <b class="conum">(1)</b> ==><span class="integer">29</span> -gremlin> 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>). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> +gremlin> 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>). <span class="comment">//</span>// <b class="conum">(2)</b> repeat(out()). until(has(<span class="string"><span class="delimiter">'</span><span class="content">lang</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">java</span><span class="delimiter">'</span></span>)). path(). @@ -1962,7 +1962,7 @@ gremlin> g.V().has(<span class="strin ==>[marko,lop] ==>[marko,josh,ripple] ==>[marko,josh,lop] -gremlin> 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>). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +gremlin> 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>). <span class="comment">//</span>// <b class="conum">(3)</b> repeat(outE().inV()). until(has(<span class="string"><span class="delimiter">'</span><span class="content">lang</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">java</span><span class="delimiter">'</span></span>)). path(). @@ -1981,13 +1981,13 @@ gremlin> g.V().has(<span class="strin <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>).values(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>) <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> -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>). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> +<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>).values(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>) <span class="comment">//</span>// <b class="conum">(1)</b> +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>). <span class="comment">//</span>// <b class="conum">(2)</b> repeat(out()). until(has(<span class="string"><span class="delimiter">'</span><span class="content">lang</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">java</span><span class="delimiter">'</span></span>)). path(). by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>) -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>). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> +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>). <span class="comment">//</span>// <b class="conum">(3)</b> repeat(outE().inV()). until(has(<span class="string"><span class="delimiter">'</span><span class="content">lang</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">java</span><span class="delimiter">'</span></span>)). path(). @@ -2028,27 +2028,27 @@ 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-1611320955-15" type="radio" name="radio-set-1611320955-15" class="tab-selector-1" checked="checked" /> - <label for="tab-1611320955-15" class="tab-label-1">console (groovy)</label> - <input id="tab-1611320955-16" type="radio" name="radio-set-1611320955-15" class="tab-selector-2" /> - <label for="tab-1611320955-16" class="tab-label-2">groovy</label> + <input id="tab-1619618774-15" type="radio" name="radio-set-1619618774-15" class="tab-selector-1" checked="checked" /> + <label for="tab-1619618774-15" class="tab-label-1">console (groovy)</label> + <input id="tab-1619618774-16" type="radio" name="radio-set-1619618774-15" class="tab-selector-2" /> + <label for="tab-1619618774-16" 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> 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>).as(<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> - store(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> +<pre class="CodeRay highlight"><code data-lang="groovy">gremlin> 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>).as(<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(1)</b> + store(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(2)</b> by(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>). - repeat(outE().as(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).inV().as(<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>)). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> + repeat(outE().as(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).inV().as(<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>)). <span class="comment">//</span>// <b class="conum">(3)</b> until(has(<span class="string"><span class="delimiter">'</span><span class="content">lang</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">java</span><span class="delimiter">'</span></span>)). - aggregate(<span class="string"><span class="delimiter">'</span><span class="content">b</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span> + aggregate(<span class="string"><span class="delimiter">'</span><span class="content">b</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(4)</b> by(select(all,<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>).unfold().values(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).fold()). - aggregate(<span class="string"><span class="delimiter">'</span><span class="content">c</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">5</b><span class="invisible">\</span> + aggregate(<span class="string"><span class="delimiter">'</span><span class="content">c</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(5)</b> by(select(all,<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).unfold().values(<span class="string"><span class="delimiter">'</span><span class="content">weight</span><span class="delimiter">'</span></span>).mean()). - fold(). <span class="invisible">//</span><b class="conum">6</b><span class="invisible">\</span> - store(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">7</b><span class="invisible">\</span> + fold(). <span class="comment">//</span>// <b class="conum">(6)</b> + store(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(7)</b> by(cap(<span class="string"><span class="delimiter">'</span><span class="content">b</span><span class="delimiter">'</span></span>)). - store(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">8</b><span class="invisible">\</span> + store(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(8)</b> by(cap(<span class="string"><span class="delimiter">'</span><span class="content">c</span><span class="delimiter">'</span></span>)). cap(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>) ==>[<span class="integer">29</span>,[[marko,lop],[marko,josh,ripple],[marko,josh,lop]],[<span class="float">0.4</span>,<span class="float">1.0</span>,<span class="float">0.7</span>]]</code></pre> @@ -2060,19 +2060,19 @@ the use of <code>store()</code> to aid i <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>).as(<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">1</b><span class="invisible">\</span> - store(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">2</b><span class="invisible">\</span> +<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>).as(<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(1)</b> + store(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). <span class="comment">//</span>// <b class="conum">(2)</b> by(<span class="string"><span class="delimiter">'</span><span class="content">age</span><span class="delimiter">'</span></span>). - repeat(outE().as(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).inV().as(<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>)). <span class="invisible">//</span><b class="conum">3</b><span class="invisible">\</span> + repeat(outE().as(<span class="string"><span class="delimiter">'</span><span class="content">e</span><span class="delimiter">'</span></span>).inV().as(<span class="string"><span class="delimiter">'</span><span class="content">v</span><span class="delimiter">'</span></span>)). <span class="comment">//</span>// <b class="conum">(3)</b> until(has(<span class="string"><span class="delimiter">'</span><span class="content">lang</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">java</span><span class="delimiter">'</span></span>)). - aggregate(<span class="string"><span class="delimiter">'</span><span class="content">b</span><span class="delimiter">'</span></span>). <span class="invisible">//</span><b class="conum">4</b><span class="invisible">\</span>
[... 2942 lines stripped ...]
