Modified: tinkerpop/site/docs/3.7.0-SNAPSHOT/reference/index.html URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.7.0-SNAPSHOT/reference/index.html?rev=1911298&r1=1911297&r2=1911298&view=diff ============================================================================== --- tinkerpop/site/docs/3.7.0-SNAPSHOT/reference/index.html (original) +++ tinkerpop/site/docs/3.7.0-SNAPSHOT/reference/index.html Wed Jul 26 20:48:31 2023 @@ -888,6 +888,7 @@ table.CodeRay td.code>pre{padding:0} <li><a href="#choose-step">Choose Step</a></li> <li><a href="#coalesce-step">Coalesce Step</a></li> <li><a href="#coin-step">Coin Step</a></li> +<li><a href="#concat-step">Concat Step</a></li> <li><a href="#connectedcomponent-step">ConnectedComponent Step</a></li> <li><a href="#constant-step">Constant Step</a></li> <li><a href="#count-step">Count Step</a></li> @@ -1084,6 +1085,7 @@ table.CodeRay td.code>pre{padding:0} <li><a href="#considering-transactions">Considering Transactions</a></li> <li><a href="#considering-state">Considering State</a></li> <li><a href="#request-retry">Request Retry</a></li> +<li><a href="#testing-remote-providers">Testing Remote Providers</a></li> </ul> </li> <li><a href="#gremlin-server-docker-image">Docker Image</a></li> @@ -1236,6 +1238,15 @@ table.CodeRay td.code>pre{padding:0} <ul class="sectlevel2"> <li><a href="#_data_types">Data Types</a></li> <li><a href="#tinkergraph-configuration">Configuration</a></li> +<li><a href="#_transactions">Transactions</a> +<ul class="sectlevel3"> +<li><a href="#_transaction_semantics">Transaction Semantics</a></li> +<li><a href="#_use_cases">Use Cases</a></li> +<li><a href="#_best_practices_2">Best Practices</a></li> +<li><a href="#_performance_considerations">Performance Considerations</a></li> +<li><a href="#_examples">Examples</a></li> +</ul> +</li> </ul> </li> <li><a href="#neo4j-gremlin">Neo4j-Gremlin</a> @@ -1882,10 +1893,10 @@ gremlin> g.V().has(<span class="strin be spawned off that vertex.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960427-1" type="radio" name="radio-set-1684960427-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960427-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960427-2" type="radio" name="radio-set-1684960427-1" class="tab-selector-2" /> - <label for="tab-1684960427-2" class="tab-label-2">groovy</label> + <input id="tab-1690402754-1" type="radio" name="radio-set-1690402754-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402754-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402754-2" type="radio" name="radio-set-1690402754-1" class="tab-selector-2" /> + <label for="tab-1690402754-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1946,10 +1957,10 @@ traverser has gone through a loop, the p Traverser metadata may be accessed by a step. A classic example is the <a href="#path-step"><code>path()</code></a>-step.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960427-3" type="radio" name="radio-set-1684960427-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960427-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960427-4" type="radio" name="radio-set-1684960427-3" class="tab-selector-2" /> - <label for="tab-1684960427-4" class="tab-label-2">groovy</label> + <input id="tab-1690402754-3" type="radio" name="radio-set-1690402754-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402754-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402754-4" type="radio" name="radio-set-1690402754-3" class="tab-selector-2" /> + <label for="tab-1690402754-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -1990,10 +2001,10 @@ required. If not, then path calculations has gone through a particular section of the traversal expression (i.e. a loop).</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960427-5" type="radio" name="radio-set-1684960427-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960427-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960427-6" type="radio" name="radio-set-1684960427-5" class="tab-selector-2" /> - <label for="tab-1684960427-6" class="tab-label-2">groovy</label> + <input id="tab-1690402754-5" type="radio" name="radio-set-1690402754-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402754-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402754-6" type="radio" name="radio-set-1690402754-5" class="tab-selector-2" /> + <label for="tab-1690402754-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2186,18 +2197,18 @@ the server which means that there is no the location of the Gremlin Server to connect to:</p> </div> <section class="tabs tabs-6"> - <input id="tab-1684960427-7" type="radio" name="radio-set-1684960427-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960427-7" class="tab-label-1">java</label> - <input id="tab-1684960427-8" type="radio" name="radio-set-1684960427-7" class="tab-selector-2" /> - <label for="tab-1684960427-8" class="tab-label-2">groovy</label> - <input id="tab-1684960427-9" type="radio" name="radio-set-1684960427-7" class="tab-selector-3" /> - <label for="tab-1684960427-9" class="tab-label-3">csharp</label> - <input id="tab-1684960427-10" type="radio" name="radio-set-1684960427-7" class="tab-selector-4" /> - <label for="tab-1684960427-10" class="tab-label-4">javascript</label> - <input id="tab-1684960427-11" type="radio" name="radio-set-1684960427-7" class="tab-selector-5" /> - <label for="tab-1684960427-11" class="tab-label-5">python</label> - <input id="tab-1684960427-12" type="radio" name="radio-set-1684960427-7" class="tab-selector-6" /> - <label for="tab-1684960427-12" class="tab-label-6">go</label> + <input id="tab-1690402754-7" type="radio" name="radio-set-1690402754-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402754-7" class="tab-label-1">java</label> + <input id="tab-1690402754-8" type="radio" name="radio-set-1690402754-7" class="tab-selector-2" /> + <label for="tab-1690402754-8" class="tab-label-2">groovy</label> + <input id="tab-1690402754-9" type="radio" name="radio-set-1690402754-7" class="tab-selector-3" /> + <label for="tab-1690402754-9" class="tab-label-3">csharp</label> + <input id="tab-1690402754-10" type="radio" name="radio-set-1690402754-7" class="tab-selector-4" /> + <label for="tab-1690402754-10" class="tab-label-4">javascript</label> + <input id="tab-1690402754-11" type="radio" name="radio-set-1690402754-7" class="tab-selector-5" /> + <label for="tab-1690402754-11" class="tab-label-5">python</label> + <input id="tab-1690402754-12" type="radio" name="radio-set-1690402754-7" class="tab-selector-6" /> + <label for="tab-1690402754-12" class="tab-label-6">go</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2375,20 +2386,20 @@ agnostic to that. Assuming "g" is the <c language or mode of operation is just some basic Gremlin:</p> </div> <section class="tabs tabs-7"> - <input id="tab-1684960427-13" type="radio" name="radio-set-1684960427-13" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960427-13" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960427-14" type="radio" name="radio-set-1684960427-13" class="tab-selector-2" /> - <label for="tab-1684960427-14" class="tab-label-2">groovy</label> - <input id="tab-1684960427-15" type="radio" name="radio-set-1684960427-13" class="tab-selector-3" /> - <label for="tab-1684960427-15" class="tab-label-3">csharp</label> - <input id="tab-1684960427-16" type="radio" name="radio-set-1684960427-13" class="tab-selector-4" /> - <label for="tab-1684960427-16" class="tab-label-4">java</label> - <input id="tab-1684960427-17" type="radio" name="radio-set-1684960427-13" class="tab-selector-5" /> - <label for="tab-1684960427-17" class="tab-label-5">javascript</label> - <input id="tab-1684960427-18" type="radio" name="radio-set-1684960427-13" class="tab-selector-6" /> - <label for="tab-1684960427-18" class="tab-label-6">python</label> - <input id="tab-1684960427-19" type="radio" name="radio-set-1684960427-13" class="tab-selector-7" /> - <label for="tab-1684960427-19" class="tab-label-7">go</label> + <input id="tab-1690402754-13" type="radio" name="radio-set-1690402754-13" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402754-13" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402754-14" type="radio" name="radio-set-1690402754-13" class="tab-selector-2" /> + <label for="tab-1690402754-14" class="tab-label-2">groovy</label> + <input id="tab-1690402754-15" type="radio" name="radio-set-1690402754-13" class="tab-selector-3" /> + <label for="tab-1690402754-15" class="tab-label-3">csharp</label> + <input id="tab-1690402754-16" type="radio" name="radio-set-1690402754-13" class="tab-selector-4" /> + <label for="tab-1690402754-16" class="tab-label-4">java</label> + <input id="tab-1690402754-17" type="radio" name="radio-set-1690402754-13" class="tab-selector-5" /> + <label for="tab-1690402754-17" class="tab-label-5">javascript</label> + <input id="tab-1690402754-18" type="radio" name="radio-set-1690402754-13" class="tab-selector-6" /> + <label for="tab-1690402754-18" class="tab-label-6">python</label> + <input id="tab-1690402754-19" type="radio" name="radio-set-1690402754-13" class="tab-selector-7" /> + <label for="tab-1690402754-19" class="tab-label-7">go</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2493,20 +2504,20 @@ is a large one-time load to do. <p>Retrieving this data is also a just writing a Gremlin statement:</p> </div> <section class="tabs tabs-7"> - <input id="tab-1684960427-20" type="radio" name="radio-set-1684960427-20" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960427-20" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960427-21" type="radio" name="radio-set-1684960427-20" class="tab-selector-2" /> - <label for="tab-1684960427-21" class="tab-label-2">groovy</label> - <input id="tab-1684960427-22" type="radio" name="radio-set-1684960427-20" class="tab-selector-3" /> - <label for="tab-1684960427-22" class="tab-label-3">csharp</label> - <input id="tab-1684960427-23" type="radio" name="radio-set-1684960427-20" class="tab-selector-4" /> - <label for="tab-1684960427-23" class="tab-label-4">java</label> - <input id="tab-1684960427-24" type="radio" name="radio-set-1684960427-20" class="tab-selector-5" /> - <label for="tab-1684960427-24" class="tab-label-5">javascript</label> - <input id="tab-1684960427-25" type="radio" name="radio-set-1684960427-20" class="tab-selector-6" /> - <label for="tab-1684960427-25" class="tab-label-6">python</label> - <input id="tab-1684960427-26" type="radio" name="radio-set-1684960427-20" class="tab-selector-7" /> - <label for="tab-1684960427-26" class="tab-label-7">go</label> + <input id="tab-1690402754-20" type="radio" name="radio-set-1690402754-20" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402754-20" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402754-21" type="radio" name="radio-set-1690402754-20" class="tab-selector-2" /> + <label for="tab-1690402754-21" class="tab-label-2">groovy</label> + <input id="tab-1690402754-22" type="radio" name="radio-set-1690402754-20" class="tab-selector-3" /> + <label for="tab-1690402754-22" class="tab-label-3">csharp</label> + <input id="tab-1690402754-23" type="radio" name="radio-set-1690402754-20" class="tab-selector-4" /> + <label for="tab-1690402754-23" class="tab-label-4">java</label> + <input id="tab-1690402754-24" type="radio" name="radio-set-1690402754-20" class="tab-selector-5" /> + <label for="tab-1690402754-24" class="tab-label-5">javascript</label> + <input id="tab-1690402754-25" type="radio" name="radio-set-1690402754-20" class="tab-selector-6" /> + <label for="tab-1690402754-25" class="tab-label-6">python</label> + <input id="tab-1690402754-26" type="radio" name="radio-set-1690402754-20" class="tab-selector-7" /> + <label for="tab-1690402754-26" class="tab-label-7">go</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2687,10 +2698,10 @@ utilize it as a pointer. For <code>Graph spawn <code>GraphTraversalSource</code> instances so as to write Gremlin:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960444-1" type="radio" name="radio-set-1684960444-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960444-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960444-2" type="radio" name="radio-set-1684960444-1" class="tab-selector-2" /> - <label for="tab-1684960444-2" class="tab-label-2">groovy</label> + <input id="tab-1690402769-1" type="radio" name="radio-set-1690402769-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402769-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402769-2" type="radio" name="radio-set-1690402769-1" class="tab-selector-2" /> + <label for="tab-1690402769-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2773,10 +2784,10 @@ system providers for two purposes:</p> <p>The following example in the Gremlin Console shows how to print all the features of a <code>Graph</code>:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960444-3" type="radio" name="radio-set-1684960444-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960444-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960444-4" type="radio" name="radio-set-1684960444-3" class="tab-selector-2" /> - <label for="tab-1684960444-4" class="tab-label-2">groovy</label> + <input id="tab-1690402769-3" type="radio" name="radio-set-1690402769-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402769-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402769-4" type="radio" name="radio-set-1690402769-3" class="tab-selector-2" /> + <label for="tab-1690402769-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -2786,14 +2797,14 @@ system providers for two purposes:</p> gremlin> graph.features() ==>FEATURES > GraphFeatures +>-- <span class="key">ThreadedTransactions</span>: <span class="predefined-constant">false</span> +>-- <span class="key">OrderabilitySemantics</span>: <span class="predefined-constant">true</span> >-- <span class="key">Transactions</span>: <span class="predefined-constant">false</span> >-- <span class="key">Computer</span>: <span class="predefined-constant">true</span> >-- <span class="key">Persistence</span>: <span class="predefined-constant">true</span> >-- <span class="key">ConcurrentAccess</span>: <span class="predefined-constant">false</span> ->-- <span class="key">ThreadedTransactions</span>: <span class="predefined-constant">false</span> >-- <span class="key">IoRead</span>: <span class="predefined-constant">true</span> >-- <span class="key">IoWrite</span>: <span class="predefined-constant">true</span> ->-- <span class="key">OrderabilitySemantics</span>: <span class="predefined-constant">true</span> >-- <span class="key">ServiceCall</span>: <span class="predefined-constant">true</span> > VariableFeatures >-- <span class="key">Variables</span>: <span class="predefined-constant">true</span> @@ -2816,12 +2827,13 @@ gremlin> graph.features() >-- <span class="key">LongArrayValues</span>: <span class="predefined-constant">true</span> >-- <span class="key">StringArrayValues</span>: <span class="predefined-constant">true</span> > VertexFeatures +>-- <span class="key">DuplicateMultiProperties</span>: <span class="predefined-constant">true</span> +>-- <span class="key">MetaProperties</span>: <span class="predefined-constant">true</span> >-- <span class="key">Upsert</span>: <span class="predefined-constant">false</span> >-- <span class="key">AddVertices</span>: <span class="predefined-constant">true</span> >-- <span class="key">RemoveVertices</span>: <span class="predefined-constant">true</span> >-- <span class="key">MultiProperties</span>: <span class="predefined-constant">true</span> ->-- <span class="key">DuplicateMultiProperties</span>: <span class="predefined-constant">true</span> ->-- <span class="key">MetaProperties</span>: <span class="predefined-constant">true</span> +>-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span> >-- <span class="key">AddProperty</span>: <span class="predefined-constant">true</span> >-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span> >-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span> @@ -2829,16 +2841,15 @@ gremlin> graph.features() >-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span> >-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span> >-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span> ->-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span> >-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span> > VertexPropertyFeatures +>-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span> >-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span> >-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span> >-- <span class="key">StringIds</span>: <span class="predefined-constant">true</span> >-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span> >-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span> >-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span> ->-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span> >-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span> >-- <span class="predefined-type">Properties</span>: <span class="predefined-constant">true</span> >-- <span class="key">BooleanValues</span>: <span class="predefined-constant">true</span> @@ -2863,6 +2874,7 @@ gremlin> graph.features() >-- <span class="key">AddEdges</span>: <span class="predefined-constant">true</span> >-- <span class="key">RemoveEdges</span>: <span class="predefined-constant">true</span> >-- <span class="key">Upsert</span>: <span class="predefined-constant">false</span> +>-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span> >-- <span class="key">AddProperty</span>: <span class="predefined-constant">true</span> >-- <span class="key">RemoveProperty</span>: <span class="predefined-constant">true</span> >-- <span class="key">NumericIds</span>: <span class="predefined-constant">true</span> @@ -2870,7 +2882,6 @@ gremlin> graph.features() >-- <span class="key">UuidIds</span>: <span class="predefined-constant">true</span> >-- <span class="key">CustomIds</span>: <span class="predefined-constant">false</span> >-- <span class="key">AnyIds</span>: <span class="predefined-constant">true</span> ->-- <span class="key">NullPropertyValues</span>: <span class="predefined-constant">false</span> >-- <span class="key">UserSuppliedIds</span>: <span class="predefined-constant">true</span> > EdgePropertyFeatures >-- <span class="predefined-type">Properties</span>: <span class="predefined-constant">true</span> @@ -2911,10 +2922,10 @@ graph.features()</code></pre> <p>A common pattern for using features is to check their support prior to performing an operation:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960444-5" type="radio" name="radio-set-1684960444-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960444-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960444-6" type="radio" name="radio-set-1684960444-5" class="tab-selector-2" /> - <label for="tab-1684960444-6" class="tab-label-2">groovy</label> + <input id="tab-1690402769-5" type="radio" name="radio-set-1690402769-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402769-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402769-6" type="radio" name="radio-set-1690402769-5" class="tab-selector-2" /> + <label for="tab-1690402769-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3013,10 +3024,10 @@ of a name from different sources.</p> <p>A running example using vertex properties is provided below to demonstrate and explain the API.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960444-7" type="radio" name="radio-set-1684960444-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960444-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960444-8" type="radio" name="radio-set-1684960444-7" class="tab-selector-2" /> - <label for="tab-1684960444-8" class="tab-label-2">groovy</label> + <input id="tab-1690402769-7" type="radio" name="radio-set-1690402769-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402769-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402769-8" type="radio" name="radio-set-1690402769-7" class="tab-selector-2" /> + <label for="tab-1690402769-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3174,10 +3185,10 @@ A toy graph demonstrating all of the new <div class="title">Figure 3. TinkerPop Crew</div> </div> <section class="tabs tabs-2"> - <input id="tab-1684960444-9" type="radio" name="radio-set-1684960444-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960444-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960444-10" type="radio" name="radio-set-1684960444-9" class="tab-selector-2" /> - <label for="tab-1684960444-10" class="tab-label-2">groovy</label> + <input id="tab-1690402769-9" type="radio" name="radio-set-1690402769-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402769-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402769-10" type="radio" name="radio-set-1690402769-9" class="tab-selector-2" /> + <label for="tab-1690402769-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3245,10 +3256,10 @@ variables are intended to store metadata <p>An example of graph variables in use is presented below:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960444-11" type="radio" name="radio-set-1684960444-11" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960444-11" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960444-12" type="radio" name="radio-set-1684960444-11" class="tab-selector-2" /> - <label for="tab-1684960444-12" class="tab-label-2">groovy</label> + <input id="tab-1690402769-11" type="radio" name="radio-set-1690402769-11" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402769-11" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402769-12" type="radio" name="radio-set-1690402769-11" class="tab-selector-2" /> + <label for="tab-1690402769-12" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -3886,10 +3897,10 @@ functionality is shown in more detail in accessed as a side-effect given the supplied key.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-1" type="radio" name="radio-set-1684960456-1" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-1" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-2" type="radio" name="radio-set-1684960456-1" class="tab-selector-2" /> - <label for="tab-1684960456-2" class="tab-label-2">groovy</label> + <input id="tab-1690402781-1" type="radio" name="radio-set-1690402781-1" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-1" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-2" type="radio" name="radio-set-1690402781-1" class="tab-selector-2" /> + <label for="tab-1690402781-2" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4087,10 +4098,10 @@ with lambdas, please read <a href="#a-no <p><span class="image right"><img src="../images/map-lambda.png" alt="map lambda" width="150"></span></p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-3" type="radio" name="radio-set-1684960456-3" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-3" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-4" type="radio" name="radio-set-1684960456-3" class="tab-selector-2" /> - <label for="tab-1684960456-4" class="tab-label-2">groovy</label> + <input id="tab-1690402781-3" type="radio" name="radio-set-1690402781-3" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-3" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-4" type="radio" name="radio-set-1690402781-3" class="tab-selector-2" /> + <label for="tab-1690402781-4" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4140,10 +4151,10 @@ g.V(<span class="integer">1</span>).out( <p><span class="image right"><img src="../images/filter-lambda.png" alt="filter lambda" width="160"></span></p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-5" type="radio" name="radio-set-1684960456-5" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-5" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-6" type="radio" name="radio-set-1684960456-5" class="tab-selector-2" /> - <label for="tab-1684960456-6" class="tab-label-2">groovy</label> + <input id="tab-1690402781-5" type="radio" name="radio-set-1690402781-5" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-5" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-6" type="radio" name="radio-set-1690402781-5" class="tab-selector-2" /> + <label for="tab-1690402781-6" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4196,10 +4207,10 @@ g.V().hasLabel(<span class="string"><spa <p><span class="image right"><img src="../images/side-effect-lambda.png" alt="side effect lambda" width="175"></span></p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-7" type="radio" name="radio-set-1684960456-7" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-7" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-8" type="radio" name="radio-set-1684960456-7" class="tab-selector-2" /> - <label for="tab-1684960456-8" class="tab-label-2">groovy</label> + <input id="tab-1690402781-7" type="radio" name="radio-set-1690402781-7" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-7" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-8" type="radio" name="radio-set-1690402781-7" class="tab-selector-2" /> + <label for="tab-1690402781-8" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4246,10 +4257,10 @@ g.V().sideEffect(outE().count().aggregat <p><span class="image right"><img src="../images/branch-lambda.png" alt="branch lambda" width="180"></span></p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-9" type="radio" name="radio-set-1684960456-9" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-9" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-10" type="radio" name="radio-set-1684960456-9" class="tab-selector-2" /> - <label for="tab-1684960456-10" class="tab-label-2">groovy</label> + <input id="tab-1690402781-9" type="radio" name="radio-set-1690402781-9" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-9" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-10" type="radio" name="radio-set-1690402781-9" class="tab-selector-2" /> + <label for="tab-1690402781-10" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4326,10 +4337,10 @@ However, some steps do not return a trav as terminal steps (<strong>terminal</strong>) and they are explained via the examples below.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-11" type="radio" name="radio-set-1684960456-11" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-11" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-12" type="radio" name="radio-set-1684960456-11" class="tab-selector-2" /> - <label for="tab-1684960456-12" class="tab-label-2">groovy</label> + <input id="tab-1690402781-11" type="radio" name="radio-set-1690402781-11" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-11" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-12" type="radio" name="radio-set-1690402781-11" class="tab-selector-2" /> + <label for="tab-1690402781-12" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4449,10 +4460,10 @@ worked on the same project together. Thi </div> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-13" type="radio" name="radio-set-1684960456-13" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-13" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-14" type="radio" name="radio-set-1684960456-13" class="tab-selector-2" /> - <label for="tab-1684960456-14" class="tab-label-2">groovy</label> + <input id="tab-1690402781-13" type="radio" name="radio-set-1690402781-13" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-13" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-14" type="radio" name="radio-set-1690402781-13" class="tab-selector-2" /> + <label for="tab-1690402781-14" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4565,10 +4576,10 @@ supports user provided ids.</p> created. Moreover, <code>GraphTraversalSource</code> maintains an <code>addV()</code> method.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-15" type="radio" name="radio-set-1684960456-15" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-15" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-16" type="radio" name="radio-set-1684960456-15" class="tab-selector-2" /> - <label for="tab-1684960456-16" class="tab-label-2">groovy</label> + <input id="tab-1690402781-15" type="radio" name="radio-set-1690402781-15" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-15" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-16" type="radio" name="radio-set-1690402781-15" class="tab-selector-2" /> + <label for="tab-1690402781-16" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4633,10 +4644,10 @@ where everything at a particular point i <code>aggregate()</code> is called without a <code>Scope</code>, the default is <code>global</code>. An example is provided below.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-17" type="radio" name="radio-set-1684960456-17" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-17" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-18" type="radio" name="radio-set-1684960456-17" class="tab-selector-2" /> - <label for="tab-1684960456-18" class="tab-label-2">groovy</label> + <input id="tab-1690402781-17" type="radio" name="radio-set-1690402781-17" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-17" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-18" type="radio" name="radio-set-1690402781-17" class="tab-selector-2" /> + <label for="tab-1690402781-18" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4713,10 +4724,10 @@ g.V(<span class="integer">1</span>).out( <p>Finally, <code>aggregate()</code>-step can be modulated via <code>by()</code>-projection.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-19" type="radio" name="radio-set-1684960456-19" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-19" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-20" type="radio" name="radio-set-1684960456-19" class="tab-selector-2" /> - <label for="tab-1684960456-20" class="tab-label-2">groovy</label> + <input id="tab-1690402781-19" type="radio" name="radio-set-1690402781-19" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-19" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-20" type="radio" name="radio-set-1690402781-19" class="tab-selector-2" /> + <label for="tab-1690402781-20" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4766,10 +4777,10 @@ Prior to 3.4.3, <code>local</code> aggre </table> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-21" type="radio" name="radio-set-1684960456-21" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-21" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-22" type="radio" name="radio-set-1684960456-21" class="tab-selector-2" /> - <label for="tab-1684960456-22" class="tab-label-2">groovy</label> + <input id="tab-1690402781-21" type="radio" name="radio-set-1690402781-21" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-21" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-22" type="radio" name="radio-set-1690402781-21" class="tab-selector-2" /> + <label for="tab-1690402781-22" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4803,10 +4814,10 @@ though the interval selection is for 1 o filter (i.e. <code>[0..1]</code>), it passes through <code>aggregate()</code> and thus, stored before filtered.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-23" type="radio" name="radio-set-1684960456-23" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-23" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-24" type="radio" name="radio-set-1684960456-23" class="tab-selector-2" /> - <label for="tab-1684960456-24" class="tab-label-2">groovy</label> + <input id="tab-1690402781-23" type="radio" name="radio-set-1690402781-23" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-23" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-24" type="radio" name="radio-set-1690402781-23" class="tab-selector-2" /> + <label for="tab-1690402781-24" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4855,10 +4866,10 @@ filter (i.e. <code>[0..1]</code>), it pa </table> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-25" type="radio" name="radio-set-1684960456-25" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-25" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-26" type="radio" name="radio-set-1684960456-25" class="tab-selector-2" /> - <label for="tab-1684960456-26" class="tab-label-2">groovy</label> + <input id="tab-1690402781-25" type="radio" name="radio-set-1690402781-25" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-25" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-26" type="radio" name="radio-set-1690402781-25" class="tab-selector-2" /> + <label for="tab-1690402781-26" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4893,10 +4904,10 @@ original traverser to pass to the next s <p>An <a href="http://en.wikipedia.org/wiki/Infix_notation">infix notation</a> can be used as well.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-27" type="radio" name="radio-set-1684960456-27" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-27" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-28" type="radio" name="radio-set-1684960456-27" class="tab-selector-2" /> - <label for="tab-1684960456-28" class="tab-label-2">groovy</label> + <input id="tab-1690402781-27" type="radio" name="radio-set-1690402781-27" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-27" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-28" type="radio" name="radio-set-1690402781-27" class="tab-selector-2" /> + <label for="tab-1690402781-28" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -4961,10 +4972,10 @@ to in Gremlin with the double underscore </table> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-29" type="radio" name="radio-set-1684960456-29" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-29" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-30" type="radio" name="radio-set-1684960456-29" class="tab-selector-2" /> - <label for="tab-1684960456-30" class="tab-label-2">groovy</label> + <input id="tab-1690402781-29" type="radio" name="radio-set-1690402781-29" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-29" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-30" type="radio" name="radio-set-1690402781-29" class="tab-selector-2" /> + <label for="tab-1690402781-30" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5008,10 +5019,10 @@ g.V().as(<span class="string"><span clas <p>A step can have any number of labels associated with it. This is useful for referencing the same step multiple times in a future step.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-31" type="radio" name="radio-set-1684960456-31" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-31" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-32" type="radio" name="radio-set-1684960456-31" class="tab-selector-2" /> - <label for="tab-1684960456-32" class="tab-label-2">groovy</label> + <input id="tab-1690402781-31" type="radio" name="radio-set-1690402781-31" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-31" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-32" type="radio" name="radio-set-1690402781-31" class="tab-selector-2" /> + <label for="tab-1690402781-32" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5065,10 +5076,10 @@ useful in the following situations:</p> </ul> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-33" type="radio" name="radio-set-1684960456-33" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-33" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-34" type="radio" name="radio-set-1684960456-33" class="tab-selector-2" /> - <label for="tab-1684960456-34" class="tab-label-2">groovy</label> + <input id="tab-1690402781-33" type="radio" name="radio-set-1690402781-33" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-33" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-34" type="radio" name="radio-set-1690402781-33" class="tab-selector-2" /> + <label for="tab-1690402781-34" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5121,10 +5132,10 @@ traverser with a <code>Traverser.bulk()< made more salient on a larger graph. Therefore, the example below leverages the <a href="#grateful-dead">Grateful Dead graph</a>.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-35" type="radio" name="radio-set-1684960456-35" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-35" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-36" type="radio" name="radio-set-1684960456-35" class="tab-selector-2" /> - <label for="tab-1684960456-36" class="tab-label-2">groovy</label> + <input id="tab-1690402781-35" type="radio" name="radio-set-1690402781-35" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-35" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-36" type="radio" name="radio-set-1690402781-35" class="tab-selector-2" /> + <label for="tab-1690402781-36" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5137,13 +5148,13 @@ gremlin> g.io(<span class="string"><s gremlin> g = traversal().withEmbedded(graph).withoutStrategies(LazyBarrierStrategy) <span class="comment">//</span>// <b class="conum">(1)</b> ==>graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">808</span> <span class="key">edges</span>:<span class="integer">8049</span>], standard] gremlin> clockWithResult(<span class="integer">1</span>){g.V().both().both().both().count().next()} <span class="comment">//</span>// <b class="conum">(2)</b> -==><span class="float">6269.2981549999995</span> +==><span class="float">7073.66</span> ==><span class="integer">126653966</span> gremlin> clockWithResult(<span class="integer">1</span>){g.V().repeat(both()).times(<span class="integer">3</span>).count().next()} <span class="comment">//</span>// <b class="conum">(3)</b> -==><span class="float">5455.680528</span> +==><span class="float">6560.1035409999995</span> ==><span class="integer">126653966</span> gremlin> clockWithResult(<span class="integer">1</span>){g.V().both().barrier().both().barrier().both().barrier().count().next()} <span class="comment">//</span>// <b class="conum">(4)</b> -==><span class="float">10.693702</span> +==><span class="float">7.638166999999999</span> ==><span class="integer">126653966</span></code></pre> </div> </div> @@ -5191,10 +5202,10 @@ optimization scenario with the added ben "bulking optimization."</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-37" type="radio" name="radio-set-1684960456-37" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-37" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-38" type="radio" name="radio-set-1684960456-37" class="tab-selector-2" /> - <label for="tab-1684960456-38" class="tab-label-2">groovy</label> + <input id="tab-1690402781-37" type="radio" name="radio-set-1690402781-37" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-37" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-38" type="radio" name="radio-set-1690402781-37" class="tab-selector-2" /> + <label for="tab-1690402781-38" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5205,7 +5216,7 @@ gremlin> g = traversal().withEmbedded ==>graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>], standard] 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> clockWithResult(<span class="integer">1</span>){g.V().both().both().both().count().next()} -==><span class="float">6.296784</span> +==><span class="float">6.395041</span> ==><span class="integer">126653966</span> gremlin> g.V().both().both().both().count().iterate().toString() <span class="comment">//</span>// <b class="conum">(2)</b> ==>[TinkerGraphStep(vertex,<span class="type">[]</span>), VertexStep(BOTH,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(BOTH,vertex), NoOpBarrierStep(<span class="integer">2500</span>), VertexStep(BOTH,edge), CountGlobalStep, NoneStep]</code></pre> @@ -5269,10 +5280,10 @@ means by which they are added. The gener while others can take an arbitrary amount.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-39" type="radio" name="radio-set-1684960456-39" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-39" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-40" type="radio" name="radio-set-1684960456-39" class="tab-selector-2" /> - <label for="tab-1684960456-40" class="tab-label-2">groovy</label> + <input id="tab-1690402781-39" type="radio" name="radio-set-1690402781-39" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-39" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-40" type="radio" name="radio-set-1690402781-39" class="tab-selector-2" /> + <label for="tab-1690402781-40" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5318,10 +5329,10 @@ to the filtering of the traverser it is on the step.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-41" type="radio" name="radio-set-1684960456-41" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-41" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-42" type="radio" name="radio-set-1684960456-41" class="tab-selector-2" /> - <label for="tab-1684960456-42" class="tab-label-2">groovy</label> + <input id="tab-1690402781-41" type="radio" name="radio-set-1690402781-41" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-41" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-42" type="radio" name="radio-set-1690402781-41" class="tab-selector-2" /> + <label for="tab-1690402781-42" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5440,10 +5451,10 @@ no-argument version is equivalent to <co verbose output describing all the services or an individual service:</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-43" type="radio" name="radio-set-1684960456-43" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-43" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-44" type="radio" name="radio-set-1684960456-43" class="tab-selector-2" /> - <label for="tab-1684960456-44" class="tab-label-2">groovy</label> + <input id="tab-1690402781-43" type="radio" name="radio-set-1690402781-43" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-43" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-44" type="radio" name="radio-set-1690402781-43" class="tab-selector-2" /> + <label for="tab-1690402781-44" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5545,10 +5556,10 @@ g.call(<span class="string"><span class= key. If multiple keys are provided, then a <code>Map<String,Object></code> of sideEffects is emitted.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-45" type="radio" name="radio-set-1684960456-45" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-45" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-46" type="radio" name="radio-set-1684960456-45" class="tab-selector-2" /> - <label for="tab-1684960456-46" class="tab-label-2">groovy</label> + <input id="tab-1690402781-45" type="radio" name="radio-set-1690402781-45" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-45" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-46" type="radio" name="radio-set-1690402781-45" class="tab-selector-2" /> + <label for="tab-1690402781-46" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5601,10 +5612,10 @@ g.V().groupCount(<span class="string"><s it is possible to implement if/then/else-semantics as well as more complicated selections.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-47" type="radio" name="radio-set-1684960456-47" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-47" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-48" type="radio" name="radio-set-1684960456-47" class="tab-selector-2" /> - <label for="tab-1684960456-48" class="tab-label-2">groovy</label> + <input id="tab-1690402781-47" type="radio" name="radio-set-1690402781-47" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-47" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-48" type="radio" name="radio-set-1690402781-47" class="tab-selector-2" /> + <label for="tab-1690402781-48" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5659,10 +5670,10 @@ g.V().hasLabel(<span class="string"><spa <p>If the "false"-branch is not provided, then if/then-semantics are implemented.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-49" type="radio" name="radio-set-1684960456-49" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-49" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-50" type="radio" name="radio-set-1684960456-49" class="tab-selector-2" /> - <label for="tab-1684960456-50" class="tab-label-2">groovy</label> + <input id="tab-1690402781-49" type="radio" name="radio-set-1690402781-49" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-49" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-50" type="radio" name="radio-set-1690402781-49" class="tab-selector-2" /> + <label for="tab-1690402781-50" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5710,10 +5721,10 @@ g.V().choose(hasLabel(<span class="strin <p>Note that <code>choose()</code> can have an arbitrary number of options and moreover, can take an anonymous traversal as its choice function.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-51" type="radio" name="radio-set-1684960456-51" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-51" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-52" type="radio" name="radio-set-1684960456-51" class="tab-selector-2" /> - <label for="tab-1684960456-52" class="tab-label-2">groovy</label> + <input id="tab-1690402781-51" type="radio" name="radio-set-1690402781-51" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-51" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-52" type="radio" name="radio-set-1690402781-51" class="tab-selector-2" /> + <label for="tab-1690402781-52" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5751,10 +5762,10 @@ g.V().choose(hasLabel(<span class="strin <p>The <code>choose()</code>-step can leverage the <code>Pick.none</code> option match. For anything that does not match a specified option, the <code>none</code>-option is taken.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-53" type="radio" name="radio-set-1684960456-53" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-53" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-54" type="radio" name="radio-set-1684960456-53" class="tab-selector-2" /> - <label for="tab-1684960456-54" class="tab-label-2">groovy</label> + <input id="tab-1690402781-53" type="radio" name="radio-set-1690402781-53" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-53" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-54" type="radio" name="radio-set-1690402781-53" class="tab-selector-2" /> + <label for="tab-1690402781-54" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5803,10 +5814,10 @@ g.V().choose(hasLabel(<span class="strin least one element.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-55" type="radio" name="radio-set-1684960456-55" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-55" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-56" type="radio" name="radio-set-1684960456-55" class="tab-selector-2" /> - <label for="tab-1684960456-56" class="tab-label-2">groovy</label> + <input id="tab-1690402781-55" type="radio" name="radio-set-1690402781-55" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-55" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-56" type="radio" name="radio-set-1690402781-55" class="tab-selector-2" /> + <label for="tab-1690402781-56" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5853,18 +5864,19 @@ g.V().hasLabel(<span class="string"><spa <p>To randomly filter out a traverser, use the <code>coin()</code>-step (<strong>filter</strong>). The provided double argument biases the "coin toss."</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-57" type="radio" name="radio-set-1684960456-57" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-57" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-58" type="radio" name="radio-set-1684960456-57" class="tab-selector-2" /> - <label for="tab-1684960456-58" class="tab-label-2">groovy</label> + <input id="tab-1690402781-57" type="radio" name="radio-set-1690402781-57" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-57" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-58" type="radio" name="radio-set-1690402781-57" class="tab-selector-2" /> + <label for="tab-1690402781-58" 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().coin(<span class="float">0.5</span>) ==>v[<span class="integer">1</span>] -==>v[<span class="integer">3</span>] -==>v[<span class="integer">4</span>] +==>v[<span class="integer">2</span>] +==>v[<span class="integer">5</span>] +==>v[<span class="integer">6</span>] gremlin> g.V().coin(<span class="float">0.0</span>) gremlin> g.V().coin(<span class="float">1.0</span>) ==>v[<span class="integer">1</span>] @@ -5897,6 +5909,109 @@ g.V().coin(<span class="float">1.0</span </div> </div> <div class="sect2"> +<h3 id="concat-step">Concat Step</h3> +<div class="paragraph"> +<p>The <code>concat()</code>-step (<strong>map</strong>) concatenates one or more String values together to the incoming String traverser. +If the incoming traverser is a non-String value then an <code>IllegalArgumentException</code> will be thrown.</p> +</div> +<section class="tabs tabs-2"> + <input id="tab-1690402781-59" type="radio" name="radio-set-1690402781-59" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-59" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-60" type="radio" name="radio-set-1690402781-59" class="tab-selector-2" /> + <label for="tab-1690402781-60" 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.addV(constant(<span class="string"><span class="delimiter">"</span><span class="content">prefix_</span><span class="delimiter">"</span></span>).concat(__.V(<span class="integer">1</span>).label())).property(id, <span class="integer">10</span>) <span class="comment">//</span>// <b class="conum">(1)</b> +==>v[<span class="integer">10</span>] +gremlin> g.V(<span class="integer">10</span>).label() +==>prefix_person +gremlin> g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).as(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). + constant(<span class="string"><span class="delimiter">'</span><span class="content">Mr.</span><span class="delimiter">'</span></span>).concat(__.select(<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> +==>Mr.marko +==>Mr.vadas +==>Mr.josh +==>Mr.peter +gremlin> g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">software</span><span class="delimiter">'</span></span>).as(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>). + concat(<span class="string"><span class="delimiter">'</span><span class="content"> uses </span><span class="delimiter">'</span></span>). + concat(select(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">lang</span><span class="delimiter">'</span></span>)) <span class="comment">//</span>// <b class="conum">(3)</b> +==>lop uses java +==>ripple uses java +gremlin> g.V(<span class="integer">1</span>).outE().as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>).constant(<span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span>). + concat(V(<span class="integer">1</span>).values(<span class="string"><span class="delimiter">"</span><span class="content">name</span><span class="delimiter">"</span></span>)). + concat(<span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="delimiter">"</span></span>). + concat(select(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>).label()). + concat(<span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="delimiter">"</span></span>). + concat(select(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>).inV().values(<span class="string"><span class="delimiter">"</span><span class="content">name</span><span class="delimiter">"</span></span>)) <span class="comment">//</span>// <b class="conum">(4)</b> +==>marko created lop +==>marko knows vadas +==>marko knows josh +gremlin> g.inject(<span class="string"><span class="delimiter">'</span><span class="content">hello</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">hi</span><span class="delimiter">'</span></span>).concat(__.V().values(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>)) <span class="comment">//</span>// <b class="conum">(5)</b> +==>hellomarko +==>himarko +gremlin> g.inject(<span class="string"><span class="delimiter">'</span><span class="content">This</span><span class="delimiter">'</span></span>).concat(<span class="string"><span class="delimiter">'</span><span class="content"> </span><span class="delimiter">'</span></span>).concat(<span class="string"><span class="delimiter">'</span><span class="content">is a </span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">gremlin.</span><span class="delimiter">'</span></span>) <span class="comment">//</span>// <b class="conum">(6)</b> +==>This is a gremlin.</code></pre> +</div> +</div> + </div> + </div> + <div class="tabcontent"> + <div class="tabcontent-2"> +<div class="listingblock"> +<div class="content"> +<pre class="CodeRay highlight"><code data-lang="groovy">g.addV(constant(<span class="string"><span class="delimiter">"</span><span class="content">prefix_</span><span class="delimiter">"</span></span>).concat(__.V(<span class="integer">1</span>).label())).property(id, <span class="integer">10</span>) <span class="comment">//</span>// <b class="conum">(1)</b> +g.V(<span class="integer">10</span>).label() +g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>).as(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>). + constant(<span class="string"><span class="delimiter">'</span><span class="content">Mr.</span><span class="delimiter">'</span></span>).concat(__.select(<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> +g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">software</span><span class="delimiter">'</span></span>).as(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>). + concat(<span class="string"><span class="delimiter">'</span><span class="content"> uses </span><span class="delimiter">'</span></span>). + concat(select(<span class="string"><span class="delimiter">'</span><span class="content">a</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">lang</span><span class="delimiter">'</span></span>)) <span class="comment">//</span>// <b class="conum">(3)</b> +g.V(<span class="integer">1</span>).outE().as(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>).constant(<span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span>). + concat(V(<span class="integer">1</span>).values(<span class="string"><span class="delimiter">"</span><span class="content">name</span><span class="delimiter">"</span></span>)). + concat(<span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="delimiter">"</span></span>). + concat(select(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>).label()). + concat(<span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="delimiter">"</span></span>). + concat(select(<span class="string"><span class="delimiter">"</span><span class="content">a</span><span class="delimiter">"</span></span>).inV().values(<span class="string"><span class="delimiter">"</span><span class="content">name</span><span class="delimiter">"</span></span>)) <span class="comment">//</span>// <b class="conum">(4)</b> +g.inject(<span class="string"><span class="delimiter">'</span><span class="content">hello</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">hi</span><span class="delimiter">'</span></span>).concat(__.V().values(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>)) <span class="comment">//</span>// <b class="conum">(5)</b> +g.inject(<span class="string"><span class="delimiter">'</span><span class="content">This</span><span class="delimiter">'</span></span>).concat(<span class="string"><span class="delimiter">'</span><span class="content"> </span><span class="delimiter">'</span></span>).concat(<span class="string"><span class="delimiter">'</span><span class="content">is a </span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">gremlin.</span><span class="delimiter">'</span></span>) <span class="invisible">//</span><b class="conum">6</b></code></pre> +</div> +</div> + </div> + </div> +</section> +<div class="colist arabic"> +<ol> +<li> +<p>Add a new vertex with id 10 which should be labeled like an existing vertex but with some prefix attached</p> +</li> +<li> +<p>Attach the prefix "Mr." to all the names using the <code>constant()</code>-step</p> +</li> +<li> +<p>Generate a string of software names and the language they use</p> +</li> +<li> +<p>Generate a string description for each of marko’s outgoing edges</p> +</li> +<li> +<p>The <code>concat()</code> step will append the first result from the child traversal to the incoming traverser</p> +</li> +<li> +<p>A generic use of <code>concat()</code> to join strings together</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p><strong>Additional References</strong></p> +</div> +<div class="paragraph"> +<p><a href="https://tinkerpop.apache.org/javadocs/3.7.0-SNAPSHOT/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#concat-String"><code>concat(String…​)</code></a> +<a href="https://tinkerpop.apache.org/javadocs/3.7.0-SNAPSHOT/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#concat-Traversal"><code>concat(Traversal)</code></a> +<a href="https://tinkerpop.apache.org/docs/3.7.0-SNAPSHOT/dev/provider/#concat-step"><code>Semantics</code></a></p> +</div> +</div> +<div class="sect2"> <h3 id="connectedcomponent-step">ConnectedComponent Step</h3> <div class="paragraph"> <p>The <code>connectedComponent()</code> step performs a computation to identify <a href="https://en.wikipedia.org/wiki/Connected_component_(graph_theory)">Connected Component</a> @@ -5917,10 +6032,10 @@ that supports <code>GraphComputer</code> </table> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-59" type="radio" name="radio-set-1684960456-59" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-59" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-60" type="radio" name="radio-set-1684960456-59" class="tab-selector-2" /> - <label for="tab-1684960456-60" class="tab-label-2">groovy</label> + <input id="tab-1690402781-61" type="radio" name="radio-set-1690402781-61" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-61" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-62" type="radio" name="radio-set-1690402781-61" class="tab-selector-2" /> + <label for="tab-1690402781-62" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -5933,12 +6048,12 @@ gremlin> g.V(). project(<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">component</span><span class="delimiter">'</span></span>). by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>). by(<span class="string"><span class="delimiter">'</span><span class="content">component</span><span class="delimiter">'</span></span>) +==>[<span class="key">name</span>:vadas,<span class="key">component</span>:<span class="integer">1</span>] ==>[<span class="key">name</span>:josh,<span class="key">component</span>:<span class="integer">1</span>] +==>[<span class="key">name</span>:lop,<span class="key">component</span>:<span class="integer">1</span>] +==>[<span class="key">name</span>:marko,<span class="key">component</span>:<span class="integer">1</span>] ==>[<span class="key">name</span>:ripple,<span class="key">component</span>:<span class="integer">1</span>] ==>[<span class="key">name</span>:peter,<span class="key">component</span>:<span class="integer">1</span>] -==>[<span class="key">name</span>:marko,<span class="key">component</span>:<span class="integer">1</span>] -==>[<span class="key">name</span>:vadas,<span class="key">component</span>:<span class="integer">1</span>] -==>[<span class="key">name</span>:lop,<span class="key">component</span>:<span class="integer">1</span>] gremlin> g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>). connectedComponent(). with(ConnectedComponent.propertyName, <span class="string"><span class="delimiter">'</span><span class="content">component</span><span class="delimiter">'</span></span>). @@ -5946,10 +6061,10 @@ gremlin> g.V().hasLabel(<span class=" project(<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">component</span><span class="delimiter">'</span></span>). by(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>). by(<span class="string"><span class="delimiter">'</span><span class="content">component</span><span class="delimiter">'</span></span>) -==>[<span class="key">name</span>:marko,<span class="key">component</span>:<span class="integer">1</span>] -==>[<span class="key">name</span>:vadas,<span class="key">component</span>:<span class="integer">1</span>] ==>[<span class="key">name</span>:josh,<span class="key">component</span>:<span class="integer">1</span>] -==>[<span class="key">name</span>:peter,<span class="key">component</span>:<span class="integer">6</span>]</code></pre> +==>[<span class="key">name</span>:peter,<span class="key">component</span>:<span class="integer">6</span>] +==>[<span class="key">name</span>:marko,<span class="key">component</span>:<span class="integer">1</span>] +==>[<span class="key">name</span>:vadas,<span class="key">component</span>:<span class="integer">1</span>]</code></pre> </div> </div> </div> @@ -5995,10 +6110,10 @@ configuration keys from the <code>Connec steps like <a href="#choose-step"><code>choose()</code>-step</a> or <a href="#coalesce-step"><code>coalesce()</code>-step</a>.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-61" type="radio" name="radio-set-1684960456-61" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-61" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-62" type="radio" name="radio-set-1684960456-61" class="tab-selector-2" /> - <label for="tab-1684960456-62" class="tab-label-2">groovy</label> + <input id="tab-1690402781-63" type="radio" name="radio-set-1690402781-63" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-63" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-64" type="radio" name="radio-set-1690402781-63" class="tab-selector-2" /> + <label for="tab-1690402781-64" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6068,10 +6183,10 @@ g.V().coalesce( <p>The <code>count()</code>-step (<strong>map</strong>) counts the total number of represented traversers in the streams (i.e. the bulk count).</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-63" type="radio" name="radio-set-1684960456-63" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-63" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-64" type="radio" name="radio-set-1684960456-63" class="tab-selector-2" /> - <label for="tab-1684960456-64" class="tab-label-2">groovy</label> + <input id="tab-1690402781-65" type="radio" name="radio-set-1690402781-65" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-65" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-66" type="radio" name="radio-set-1690402781-65" class="tab-selector-2" /> + <label for="tab-1690402781-66" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6147,10 +6262,10 @@ analyzes the path of the traverser thus traversal computation. If non-cyclic behavior is desired, see <a href="#simplepath-step"><code>simplePath()</code></a>.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-65" type="radio" name="radio-set-1684960456-65" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-65" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-66" type="radio" name="radio-set-1684960456-65" class="tab-selector-2" /> - <label for="tab-1684960456-66" class="tab-label-2">groovy</label> + <input id="tab-1690402781-67" type="radio" name="radio-set-1690402781-67" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-67" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-68" type="radio" name="radio-set-1690402781-67" class="tab-selector-2" /> + <label for="tab-1690402781-68" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6229,10 +6344,10 @@ g.V(<span class="integer">1</span>).as(< traverser’s bulk is greater than 1, then it is set to 1 before being emitted.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-67" type="radio" name="radio-set-1684960456-67" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-67" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-68" type="radio" name="radio-set-1684960456-67" class="tab-selector-2" /> - <label for="tab-1684960456-68" class="tab-label-2">groovy</label> + <input id="tab-1690402781-69" type="radio" name="radio-set-1690402781-69" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-69" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-70" type="radio" name="radio-set-1690402781-69" class="tab-selector-2" /> + <label for="tab-1690402781-70" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6285,10 +6400,10 @@ element as it is a first-class citizen.< has been seen or not.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-69" type="radio" name="radio-set-1684960456-69" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-69" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-70" type="radio" name="radio-set-1684960456-69" class="tab-selector-2" /> - <label for="tab-1684960456-70" class="tab-label-2">groovy</label> + <input id="tab-1690402781-71" type="radio" name="radio-set-1690402781-71" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-71" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-72" type="radio" name="radio-set-1690402781-71" class="tab-selector-2" /> + <label for="tab-1690402781-72" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6323,10 +6438,10 @@ g.V().dedup().by(label).values(<span cla to the current traverser object, but to the path history of the traverser.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-71" type="radio" name="radio-set-1684960456-71" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-71" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-72" type="radio" name="radio-set-1684960456-71" class="tab-selector-2" /> - <label for="tab-1684960456-72" class="tab-label-2">groovy</label> + <input id="tab-1690402781-73" type="radio" name="radio-set-1690402781-73" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-73" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-74" type="radio" name="radio-set-1690402781-73" class="tab-selector-2" /> + <label for="tab-1690402781-74" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6389,7 +6504,7 @@ g.V().as(<span class="string"><span clas <p><a href="https://tinkerpop.apache.org/javadocs/3.7.0-SNAPSHOT/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#dedup-org.apache.tinkerpop.gremlin.process.traversal.Scope-java.lang.String...-"><code>dedup(Scope,String…​)</code></a>, <a href="https://tinkerpop.apache.org/javadocs/3.7.0-SNAPSHOT/core/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#dedup-java.lang.String...-"><code>dedup(String…​)</code></a>, <a href="https://tinkerpop.apache.org/javadocs/3.7.0-SNAPSHOT/core/org/apache/tinkerpop/gremlin/process/traversal/Scope.html"><code>Scope</code></a>, -<a href="https://tinkerpop.apache.org/docs/3.7.0-SNAPSHOT/dev/provider/#_dedup"><code>Semantics</code></a></p> +<a href="https://tinkerpop.apache.org/docs/3.7.0-SNAPSHOT/dev/provider/#dedup-step"><code>Semantics</code></a></p> </div> </div> <div class="sect2"> @@ -6399,10 +6514,10 @@ g.V().as(<span class="string"><span clas is a filter step because the traversal yields no outgoing objects.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-73" type="radio" name="radio-set-1684960456-73" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-73" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-74" type="radio" name="radio-set-1684960456-73" class="tab-selector-2" /> - <label for="tab-1684960456-74" class="tab-label-2">groovy</label> + <input id="tab-1690402781-75" type="radio" name="radio-set-1690402781-75" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-75" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-76" type="radio" name="radio-set-1690402781-75" class="tab-selector-2" /> + <label for="tab-1690402781-76" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6456,10 +6571,10 @@ g.V()</code></pre> be used mid-traversal.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-75" type="radio" name="radio-set-1684960456-75" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-75" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-76" type="radio" name="radio-set-1684960456-75" class="tab-selector-2" /> - <label for="tab-1684960456-76" class="tab-label-2">groovy</label> + <input id="tab-1690402781-77" type="radio" name="radio-set-1690402781-77" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-77" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-78" type="radio" name="radio-set-1690402781-77" class="tab-selector-2" /> + <label for="tab-1690402781-78" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6510,10 +6625,10 @@ g.inject(<span class="integer">1</span>) <p>The <code>element()</code> step is a no-argument step that traverses from a <code>Property</code> to the <code>Element</code> that owns it.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-77" type="radio" name="radio-set-1684960456-77" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-77" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-78" type="radio" name="radio-set-1684960456-77" class="tab-selector-2" /> - <label for="tab-1684960456-78" class="tab-label-2">groovy</label> + <input id="tab-1690402781-79" type="radio" name="radio-set-1690402781-79" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-79" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-80" type="radio" name="radio-set-1690402781-79" class="tab-selector-2" /> + <label for="tab-1690402781-80" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6620,10 +6735,10 @@ g.V().properties().properties().element( <p>The <code>elementMap()</code>-step yields a <code>Map</code> representation of the structure of an element.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-79" type="radio" name="radio-set-1684960456-79" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-79" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-80" type="radio" name="radio-set-1684960456-79" class="tab-selector-2" /> - <label for="tab-1684960456-80" class="tab-label-2">groovy</label> + <input id="tab-1690402781-81" type="radio" name="radio-set-1690402781-81" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-81" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-82" type="radio" name="radio-set-1690402781-81" class="tab-selector-2" /> + <label for="tab-1690402781-82" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6679,10 +6794,10 @@ then only the first item encountered wil assumption should serve the greatest number of use cases.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-81" type="radio" name="radio-set-1684960456-81" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-81" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-82" type="radio" name="radio-set-1684960456-81" class="tab-selector-2" /> - <label for="tab-1684960456-82" class="tab-label-2">groovy</label> + <input id="tab-1690402781-83" type="radio" name="radio-set-1690402781-83" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-83" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-84" type="radio" name="radio-set-1690402781-83" class="tab-selector-2" /> + <label for="tab-1690402781-84" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6766,10 +6881,10 @@ traversal strategy being applied. The se post strategy application. The final traversal is the resultant execution plan.</p> </div> <section class="tabs tabs-2"> - <input id="tab-1684960456-83" type="radio" name="radio-set-1684960456-83" class="tab-selector-1" checked="checked" /> - <label for="tab-1684960456-83" class="tab-label-1">console (groovy)</label> - <input id="tab-1684960456-84" type="radio" name="radio-set-1684960456-83" class="tab-selector-2" /> - <label for="tab-1684960456-84" class="tab-label-2">groovy</label> + <input id="tab-1690402781-85" type="radio" name="radio-set-1690402781-85" class="tab-selector-1" checked="checked" /> + <label for="tab-1690402781-85" class="tab-label-1">console (groovy)</label> + <input id="tab-1690402781-86" type="radio" name="radio-set-1690402781-85" class="tab-selector-2" /> + <label for="tab-1690402781-86" class="tab-label-2">groovy</label> <div class="tabcontent"> <div class="tabcontent-1"> <div class="listingblock"> @@ -6780,17 +6895,17 @@ post strategy application. The final tra Original Traversal [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] ConnectiveStrategy [D] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] -EarlyLimitStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), IdentityStep, EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] IdentityRemovalStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] +ByModulatorOptimizationStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] +MatchPredicateStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] +FilterRankingStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] +InlineFilterStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), EdgeVertexStep(IN), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] IncidentToAdjacentStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] -MatchPredicateStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] -FilterRankingStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] -InlineFilterStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,vertex), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] -AdjacentToIncidentStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] -ByModulatorOptimizationStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))] -RepeatUnrollStrategy [O] [GraphStep(vertex,<span class="type">[]</span>), HasStep([~label.eq(person)]), VertexStep(OUT,edge), CountGlobalStep, IsStep(gt(<span class="integer">5</span>))]
[... 5377 lines stripped ...]