You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2016/10/04 19:42:20 UTC

svn commit: r1763321 [5/28] - in /tinkerpop/site: docs/3.2.3-SNAPSHOT/dev/provider/ docs/3.2.3-SNAPSHOT/recipes/ docs/3.2.3-SNAPSHOT/reference/ docs/3.2.3-SNAPSHOT/tutorials/getting-started/ docs/3.2.3-SNAPSHOT/tutorials/the-gremlin-console/ docs/3.2.3...

Modified: tinkerpop/site/docs/3.2.3-SNAPSHOT/tutorials/the-gremlin-console/index.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.2.3-SNAPSHOT/tutorials/the-gremlin-console/index.html?rev=1763321&r1=1763320&r2=1763321&view=diff
==============================================================================
--- tinkerpop/site/docs/3.2.3-SNAPSHOT/tutorials/the-gremlin-console/index.html (original)
+++ tinkerpop/site/docs/3.2.3-SNAPSHOT/tutorials/the-gremlin-console/index.html Tue Oct  4 19:42:19 2016
@@ -915,8 +915,10 @@ create an empty TinkerGraph as follows:<
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>graph = TinkerGraph.open()   <b>(1)</b>
-g = graph.traversal()        <b>(2)</b></pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; graph = TinkerGraph.open() <span class="comment">//</span><b>(1)</b>
+==&gt;tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>]
+gremlin&gt; g = graph.traversal() <span class="comment">//</span><b>(2)</b>
+==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>], standard]</code></pre>
 </div>
 </div>
 <div class="colist arabic">
@@ -971,8 +973,10 @@ labels are defined and the "weight" edge
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>graph = TinkerFactory.createModern()
-g = graph.traversal()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; graph = TinkerFactory.createModern()
+==&gt;tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">6</span>]
+gremlin&gt; g = graph.traversal()
+==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">6</span>], standard]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -985,9 +989,11 @@ However, if you find that a larger graph
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>graph = TinkerGraph.open()
-graph.io(gryo()).readGraph('data/grateful-dead.kryo')
-graph</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; graph = TinkerGraph.open()
+==&gt;tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>]
+gremlin&gt; graph.io(gryo()).readGraph(<span class="string"><span class="delimiter">'</span><span class="content">data/grateful-dead.kryo</span><span class="delimiter">'</span></span>)
+gremlin&gt; graph
+==&gt;tinkergraph[<span class="key">vertices</span>:<span class="integer">808</span> <span class="key">edges</span>:<span class="integer">8049</span>]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1020,7 +1026,41 @@ be accessed within the console itself wi
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>:help</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; :help
+
+For information about Groovy, <span class="key">visit</span>:
+    <span class="key">http</span>:<span class="comment">//groovy-lang.org</span>
+
+Available <span class="key">commands</span>:
+  :help       (:h  ) Display <span class="local-variable">this</span> help message
+  ?           (:?  ) Alias <span class="key">to</span>: :help
+  :exit       (:x  ) Exit the shell
+  :quit       (:q  ) Alias <span class="key">to</span>: :exit
+  <span class="keyword">import</span>      (:<span class="include">i</span>  ) <span class="include">Import</span> <span class="include">a</span> <span class="include">class</span> <span class="include">into</span> <span class="include">the</span> <span class="include">namespace</span>
+  :display    (:d  ) Display the current buffer
+  :clear      (:c  ) Clear the buffer and reset the prompt counter
+  :show       (:S  ) Show variables, classes or imports
+  :inspect    (:n  ) Inspect a variable or the last result with the GUI object browser
+  :purge      (:p  ) Purge variables, classes, imports or preferences
+  :edit       (:e  ) Edit the current buffer
+  :load       (:l  ) Load a file or <span class="predefined-type">URL</span> into the buffer
+  .           (:.  ) Alias <span class="key">to</span>: :load
+  :save       (:s  ) Save the current buffer to a file
+  :record     (:r  ) Record the current session to a file
+  :history    (:H  ) Display, manage and recall edit-line history
+  :alias      (:a  ) Create an alias
+  :register   (:rc ) Register a <span class="keyword">new</span> command with the shell
+  :doc        (:D  ) Open a browser window displaying the doc <span class="keyword">for</span> the argument
+  :set        (:=  ) <span class="predefined-type">Set</span> (or list) preferences
+  :uninstall  (:-  ) Uninstall a Maven library and its dependencies from the Gremlin Console
+  :install    (:+  ) Install a Maven library and its dependencies into the Gremlin Console
+  :plugin     (:pin) Manage plugins <span class="keyword">for</span> the Console
+  :remote     (:rem) Define a remote connection
+  :submit     (:&gt;  ) Send a Gremlin script to Gremlin Server
+
+For help on a specific command <span class="key">type</span>:
+    :help command
+</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1030,7 +1070,12 @@ addition to the ones provided by TinkerP
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>:help :remote</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; :help :remote
+
+<span class="key">usage</span>: :remote [current|connect &lt;type-of-remote&gt; [&lt;args&gt;]|config &lt;args&gt;|list|next|prev|choose &lt;index&gt;|close]
+
+Define and manage remote connections to use <span class="keyword">in</span> conjunction with the :submit command, which will send Gremlin scripts to the specified remote agent <span class="keyword">for</span> processing.
+</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1145,7 +1190,8 @@ the IDE and execute it in the console an
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>g.V(1).outE().group().by(label).by(inV())</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; g.V(<span class="integer">1</span>).outE().group().by(label).by(inV())
+==&gt;[<span class="key">created</span>:v[<span class="integer">3</span>],<span class="key">knows</span>:v[<span class="integer">2</span>]]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1158,7 +1204,9 @@ detects that type it steps through each
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>g.V(1).outE().group().by(label).by(inV()).next()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; g.V(<span class="integer">1</span>).outE().group().by(label).by(inV()).next()
+==&gt;created=v[<span class="integer">3</span>]
+==&gt;knows=v[<span class="integer">2</span>]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1169,8 +1217,10 @@ when you want to work with a <code>Trave
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>t = g.V(1).outE().group().by(label).by(inV());null
-t.next()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; t = g.V(<span class="integer">1</span>).outE().group().by(label).by(inV());<span class="predefined-constant">null</span>
+gremlin&gt; t.next()
+==&gt;created=v[<span class="integer">3</span>]
+==&gt;knows=v[<span class="integer">2</span>]</code></pre>
 </div>
 </div>
 <div class="admonitionblock tip">
@@ -1223,7 +1273,9 @@ can remedy that by adding <code>fold()</
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>g.V(1).outE().group().by(label).by(inV().fold()).next()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; g.V(<span class="integer">1</span>).outE().group().by(label).by(inV().fold()).next()
+==&gt;created=[v[<span class="integer">3</span>]]
+==&gt;knows=[v[<span class="integer">2</span>], v[<span class="integer">4</span>]]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1254,8 +1306,9 @@ as follows:</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>g.V().has('name','marko').drop()
-g.V().has('name','marko').count()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; g.V().has(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">marko</span><span class="delimiter">'</span></span>).drop()
+gremlin&gt; g.V().has(<span class="string"><span class="delimiter">'</span><span class="content">name</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">marko</span><span class="delimiter">'</span></span>).count()
+==&gt;<span class="integer">0</span></code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1331,10 +1384,16 @@ the data of the "person" vertices in the
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>graph = TinkerFactory.createTheCrew()
-g = graph.traversal()
-
-g.V().hasLabel('person').valueMap()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; graph = TinkerFactory.createTheCrew()
+==&gt;tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">14</span>]
+gremlin&gt; g = graph.traversal()
+==&gt;graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">14</span>], standard]
+gremlin&gt;
+gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).valueMap()
+==&gt;[<span class="key">name</span>:[marko],<span class="key">location</span>:[san diego,santa cruz,brussels,santa fe]]
+==&gt;[<span class="key">name</span>:[stephen],<span class="key">location</span>:[centreville,dulles,purcellville]]
+==&gt;[<span class="key">name</span>:[matthias],<span class="key">location</span>:[bremen,baltimore,oakland,seattle]]
+==&gt;[<span class="key">name</span>:[daniel],<span class="key">location</span>:[spremberg,kaiserslautern,aachen]]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1345,9 +1404,23 @@ has <a href="http://tinkerpop.apache.org
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>g.V().hasLabel('person').as('person').
-      properties('location').as('location').
-      select('person','location').by('name').by(valueMap())</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).as(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
+               properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).as(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).
+               select(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">location</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(valueMap())
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">1997</span>,<span class="key">endTime</span>:<span class="integer">2001</span>]]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2001</span>,<span class="key">endTime</span>:<span class="integer">2004</span>]]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">1990</span>,<span class="key">endTime</span>:<span class="integer">2000</span>]]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2000</span>,<span class="key">endTime</span>:<span class="integer">2006</span>]]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2006</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2007</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2007</span>,<span class="key">endTime</span>:<span class="integer">2011</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2011</span>,<span class="key">endTime</span>:<span class="integer">2014</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2014</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">1982</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2005</span>,<span class="key">endTime</span>:<span class="integer">2009</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2009</span>]]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1367,9 +1440,10 @@ the "person" vertices, as this will be t
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>firstYear = g.V().hasLabel('person').
-                  local(properties('location').values('startTime').min()).
-                  max().next()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; firstYear = g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
+                           local(properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">startTime</span><span class="delimiter">'</span></span>).min()).
+                           max().next()
+==&gt;<span class="integer">2004</span></code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1399,13 +1473,25 @@ settings in <code>bin/gremlin.sh</code>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>firstYear = g.V().hasLabel('person').
-                  local(properties('location').values('startTime').min()).
-                  max().next()
-l = g.V().hasLabel('person').as('person').
-          properties('location').or(has('endTime',gt(firstYear)),hasNot('endTime')).as('location').
-          valueMap().as('times').
-          select('person','location','times').by('name').by(value).by().toList()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; firstYear = g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
+                           local(properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">startTime</span><span class="delimiter">'</span></span>).min()).
+                           max().next()
+==&gt;<span class="integer">2004</span>
+gremlin&gt; l = g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).as(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
+                   properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).or(has(<span class="string"><span class="delimiter">'</span><span class="content">endTime</span><span class="delimiter">'</span></span>,gt(firstYear)),hasNot(<span class="string"><span class="delimiter">'</span><span class="content">endTime</span><span class="delimiter">'</span></span>)).as(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).
+                   valueMap().as(<span class="string"><span class="delimiter">'</span><span class="content">times</span><span class="delimiter">'</span></span>).
+                   select(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">times</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(value).by().toList()
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:brussels,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:dulles,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2000</span>,<span class="key">endTime</span>:<span class="integer">2006</span>]]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2006</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:bremen,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2007</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2007</span>,<span class="key">endTime</span>:<span class="integer">2011</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:oakland,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2011</span>,<span class="key">endTime</span>:<span class="integer">2014</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:seattle,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2014</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:spremberg,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">1982</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2005</span>,<span class="key">endTime</span>:<span class="integer">2009</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2009</span>]]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1416,16 +1502,80 @@ see for your rows and columns style outp
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>firstYear = g.V().hasLabel('person').
-                  local(properties('location').values('startTime').min()).
-                  max().next()
-l = g.V().hasLabel('person').as('person').
-          properties('location').or(has('endTime',gt(firstYear)),hasNot('endTime')).as('location').
-          valueMap().as('times').
-          select('person','location','times').by('name').by(value).by().toList()
-l.collect{
-  row-&gt;((Math.max(row.times.startTime,firstYear))..((row.times.endTime?:2017)-1)).collect{
-    year-&gt;[person:row.person,location:row.location,year:year]}}.flatten()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; firstYear = g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
+                           local(properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">startTime</span><span class="delimiter">'</span></span>).min()).
+                           max().next()
+==&gt;<span class="integer">2004</span>
+gremlin&gt; l = g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).as(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
+                   properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).or(has(<span class="string"><span class="delimiter">'</span><span class="content">endTime</span><span class="delimiter">'</span></span>,gt(firstYear)),hasNot(<span class="string"><span class="delimiter">'</span><span class="content">endTime</span><span class="delimiter">'</span></span>)).as(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).
+                   valueMap().as(<span class="string"><span class="delimiter">'</span><span class="content">times</span><span class="delimiter">'</span></span>).
+                   select(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">times</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(value).by().toList()
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:brussels,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:dulles,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2000</span>,<span class="key">endTime</span>:<span class="integer">2006</span>]]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2006</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:bremen,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2004</span>,<span class="key">endTime</span>:<span class="integer">2007</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2007</span>,<span class="key">endTime</span>:<span class="integer">2011</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:oakland,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2011</span>,<span class="key">endTime</span>:<span class="integer">2014</span>]]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:seattle,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2014</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:spremberg,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">1982</span>,<span class="key">endTime</span>:<span class="integer">2005</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2005</span>,<span class="key">endTime</span>:<span class="integer">2009</span>]]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">times</span>:[<span class="key">startTime</span>:<span class="integer">2009</span>]]
+gremlin&gt; l.collect{
+           row-&gt;((<span class="predefined-type">Math</span>.max(row.times.startTime,firstYear))..((row.times.endTime?:<span class="integer">2017</span>)-<span class="integer">1</span>)).collect{
+             year-&gt;[<span class="key">person</span>:row.person,<span class="key">location</span>:row.location,<span class="key">year</span>:year]}}.flatten()
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:brussels,<span class="key">year</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2008</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2010</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2012</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2013</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2015</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2016</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:dulles,<span class="key">year</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:dulles,<span class="key">year</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2008</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2010</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2012</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2013</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2015</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2016</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:bremen,<span class="key">year</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:bremen,<span class="key">year</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:bremen,<span class="key">year</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">year</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">year</span>:<span class="integer">2008</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">year</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">year</span>:<span class="integer">2010</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:oakland,<span class="key">year</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:oakland,<span class="key">year</span>:<span class="integer">2012</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:oakland,<span class="key">year</span>:<span class="integer">2013</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:seattle,<span class="key">year</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:seattle,<span class="key">year</span>:<span class="integer">2015</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">location</span>:seattle,<span class="key">year</span>:<span class="integer">2016</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:spremberg,<span class="key">year</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">year</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">year</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">year</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">year</span>:<span class="integer">2008</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2010</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2012</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2013</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2015</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2016</span>]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1448,8 +1598,10 @@ you wish to use. To do this, you need to
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>import java.time.Year
-Year.now()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; <span class="keyword">import</span> <span class="include">java.time.Year</span>
+==&gt;groovy.grape.Grape, org.apache.commons.configuration.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.*, org.apache.tinkerpop.gremlin.process.computer.bulkloading.*, org.apache.tinkerpop.gremlin.process.computer.traversal.*, org.apache.tinkerpop.gremlin.util.function.*, org.apache.tinkerpop.gremlin.structure.io.*, org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.*, groovy.sql.*, org.apache.tinkerpop.gremlin.groovy.loaders.*, groovy.json.*, org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.*, org.apache.tinkerpop.gremlin.structure.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.*, org.apache.tinkerpop.gremlin.process.traversal.engine.*, org.apache.tinkerpop.gremlin.groovy.jsr223.*, org.apache.tinkerpop.gremlin.structure.io.gryo.*, org.apache.tinkerpop.gremlin.process.remote.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.*, org.apache.tinkerpop.gremlin.process.traversal.step.util.event.*, 
 org.apache.tinkerpop.gremlin.util.*, org.apache.tinkerpop.gremlin.structure.util.*, org.apache.tinkerpop.gremlin.structure.io.graphml.*, org.apache.tinkerpop.gremlin.process.computer.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.*, org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.*, org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.*, org.apache.tinkerpop.gremlin.structure.util.detached.*, org.apache.tinkerpop.gremlin.structure.io.graphson.*, org.apache.tinkerpop.gremlin.process.traversal.*, org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.*, org.apache.tinkerpop.gremlin.process.computer.bulkdumping.*, org.apache.tinkerpop.gremlin.structure.util.empty.*, org.apache.tinkerpop.gremlin.process.traversal.util.*, org.apache.tinkerpop.gremlin.groovy.function.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.SackFunctions.Barrier.*, <span class="direct
 ive">static</span> org.apache.tinkerpop.gremlin.util.TimeUtil.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.Direction.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Pop.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent.Pick.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.P.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Order.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.io.IoCore.*, <span class="directive">stati
 c</span> org.apache.tinkerpop.gremlin.process.traversal.Scope.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.Column.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.computer.Computer.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.T.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Operator.*, org.apache.tinkerpop.gremlin.driver.ser.*, org.apache.tinkerpop.gremlin.driver.message.*, org.apache.tinkerpop.gremlin.driver.exception.*, org.apache.tinkerpop.gremlin.driver.remote.*, org.apache.tinkerpop.gremlin.driver.*, <span class="directive">static</span> groovyx.gbench.BenchmarkStaticExtension.*, <span class="directive">static</span> groovyx.gprof.ProfileStaticExtension.*, groovyx.gprof.*, groovyx.gbench.*, org.apache.tinkerpop.gremlin.giraph.process.computer.*, org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraph, <span class="directiv
 e">static</span> org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraph.*, org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat, org.apache.hadoop.hdfs.*, org.apache.hadoop.mapreduce.lib.input.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.*, org.apache.tinkerpop.gremlin.hadoop.process.computer.mapreduce.*, org.apache.hadoop.conf.*, org.apache.hadoop.util.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.gryo.*, org.apache.tinkerpop.gremlin.hadoop.structure.*, org.apache.hadoop.io.compress.*, org.apache.tinkerpop.gremlin.hadoop.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.graphson.*, org.apache.hadoop.io.*, org.apache.log4j.*, org.apache.hadoop.mapreduce.lib.output.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.script.*, org.apache.tinkerpop.gremlin.hadoop.structure.util.*, org.apache.hadoop.fs.*, org.apache.tinkerpop.gremlin.neo4j.structure.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.neo4j.process.traversal.La
 belP.*, org.apache.tinkerpop.gremlin.spark.process.computer.*, org.apache.tinkerpop.gremlin.spark.structure.*, org.apache.tinkerpop.gremlin.spark.structure.io.*, org.apache.tinkerpop.gremlin.tinkergraph.structure.*, org.apache.tinkerpop.gremlin.tinkergraph.process.computer.*, java.time.Year
+gremlin&gt; Year.now()
+==&gt;<span class="integer">2016</span></code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1458,13 +1610,67 @@ to produce the set of years to have for
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>import java.time.Year
-firstYear = g.V().hasLabel('person').
-                  local(properties('location').values('startTime').min()).
-                  max().next()
-g.V().hasLabel("person").as("person").
-      constant((firstYear..(Year.now().value)).toList()).unfold().as("year").
-      select('person','year').by('name').by()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; <span class="keyword">import</span> <span class="include">java.time.Year</span>
+==&gt;groovy.grape.Grape, org.apache.commons.configuration.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.*, org.apache.tinkerpop.gremlin.process.computer.bulkloading.*, org.apache.tinkerpop.gremlin.process.computer.traversal.*, org.apache.tinkerpop.gremlin.util.function.*, org.apache.tinkerpop.gremlin.structure.io.*, org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.*, groovy.sql.*, org.apache.tinkerpop.gremlin.groovy.loaders.*, groovy.json.*, org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.*, org.apache.tinkerpop.gremlin.structure.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.*, org.apache.tinkerpop.gremlin.process.traversal.engine.*, org.apache.tinkerpop.gremlin.groovy.jsr223.*, org.apache.tinkerpop.gremlin.structure.io.gryo.*, org.apache.tinkerpop.gremlin.process.remote.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.*, org.apache.tinkerpop.gremlin.process.traversal.step.util.event.*, 
 org.apache.tinkerpop.gremlin.util.*, org.apache.tinkerpop.gremlin.structure.util.*, org.apache.tinkerpop.gremlin.structure.io.graphml.*, org.apache.tinkerpop.gremlin.process.computer.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.*, org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.*, org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.*, org.apache.tinkerpop.gremlin.structure.util.detached.*, org.apache.tinkerpop.gremlin.structure.io.graphson.*, org.apache.tinkerpop.gremlin.process.traversal.*, org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.*, org.apache.tinkerpop.gremlin.process.computer.bulkdumping.*, org.apache.tinkerpop.gremlin.structure.util.empty.*, org.apache.tinkerpop.gremlin.process.traversal.util.*, org.apache.tinkerpop.gremlin.groovy.function.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.SackFunctions.Barrier.*, <span class="direct
 ive">static</span> org.apache.tinkerpop.gremlin.util.TimeUtil.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.Direction.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Pop.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent.Pick.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.P.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Order.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.io.IoCore.*, <span class="directive">stati
 c</span> org.apache.tinkerpop.gremlin.process.traversal.Scope.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.Column.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.computer.Computer.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.T.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Operator.*, org.apache.tinkerpop.gremlin.driver.ser.*, org.apache.tinkerpop.gremlin.driver.message.*, org.apache.tinkerpop.gremlin.driver.exception.*, org.apache.tinkerpop.gremlin.driver.remote.*, org.apache.tinkerpop.gremlin.driver.*, <span class="directive">static</span> groovyx.gbench.BenchmarkStaticExtension.*, <span class="directive">static</span> groovyx.gprof.ProfileStaticExtension.*, groovyx.gprof.*, groovyx.gbench.*, org.apache.tinkerpop.gremlin.giraph.process.computer.*, org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraph, <span class="directiv
 e">static</span> org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraph.*, org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat, org.apache.hadoop.hdfs.*, org.apache.hadoop.mapreduce.lib.input.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.*, org.apache.tinkerpop.gremlin.hadoop.process.computer.mapreduce.*, org.apache.hadoop.conf.*, org.apache.hadoop.util.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.gryo.*, org.apache.tinkerpop.gremlin.hadoop.structure.*, org.apache.hadoop.io.compress.*, org.apache.tinkerpop.gremlin.hadoop.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.graphson.*, org.apache.hadoop.io.*, org.apache.log4j.*, org.apache.hadoop.mapreduce.lib.output.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.script.*, org.apache.tinkerpop.gremlin.hadoop.structure.util.*, org.apache.hadoop.fs.*, org.apache.tinkerpop.gremlin.neo4j.structure.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.neo4j.process.traversal.La
 belP.*, org.apache.tinkerpop.gremlin.spark.process.computer.*, org.apache.tinkerpop.gremlin.spark.structure.*, org.apache.tinkerpop.gremlin.spark.structure.io.*, org.apache.tinkerpop.gremlin.tinkergraph.structure.*, org.apache.tinkerpop.gremlin.tinkergraph.process.computer.*, java.time.Year
+gremlin&gt; firstYear = g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
+                           local(properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">startTime</span><span class="delimiter">'</span></span>).min()).
+                           max().next()
+==&gt;<span class="integer">2004</span>
+gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>).as(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>).
+               constant((firstYear..(Year.now().value)).toList()).unfold().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">year</span><span class="delimiter">&quot;</span></span>).
+               select(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>,<span class="string"><span class="delimiter">'</span><span class="content">year</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()
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2008</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2010</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2012</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2013</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2015</span>]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2016</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2008</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2010</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2012</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2013</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2015</span>]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2016</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2008</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2010</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2012</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2013</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2015</span>]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2016</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2004</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2005</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2006</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2007</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2008</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2009</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2010</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2011</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2012</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2013</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2014</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2015</span>]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2016</span>]</code></pre>
 </div>
 </div>
 <div class="paragraph">
@@ -1472,17 +1678,71 @@ g.V().hasLabel("person").as("person").
 </div>
 <div class="listingblock">
 <div class="content">
-<pre>import java.time.Year
-firstYear = g.V().hasLabel('person').
-                  local(properties('location').values('startTime').min()).
-                  max().next()
-g.V().hasLabel("person").as("person").
-      constant((firstYear..(new Date().getYear() + 1900)).toList()).unfold().as("year").
-      select("person").coalesce(
-        properties("location").filter(values("startTime").where(gte("year"))).
-                               order().by("startTime").limit(1),
-        properties("location").hasNot("endTime")).value().as("location").
-      select("person","year","location").by("name").by().by()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin&gt; <span class="keyword">import</span> <span class="include">java.time.Year</span>
+==&gt;groovy.grape.Grape, org.apache.commons.configuration.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.*, org.apache.tinkerpop.gremlin.process.computer.bulkloading.*, org.apache.tinkerpop.gremlin.process.computer.traversal.*, org.apache.tinkerpop.gremlin.util.function.*, org.apache.tinkerpop.gremlin.structure.io.*, org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.*, groovy.sql.*, org.apache.tinkerpop.gremlin.groovy.loaders.*, groovy.json.*, org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.*, org.apache.tinkerpop.gremlin.structure.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.*, org.apache.tinkerpop.gremlin.process.traversal.engine.*, org.apache.tinkerpop.gremlin.groovy.jsr223.*, org.apache.tinkerpop.gremlin.structure.io.gryo.*, org.apache.tinkerpop.gremlin.process.remote.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.*, org.apache.tinkerpop.gremlin.process.traversal.step.util.event.*, 
 org.apache.tinkerpop.gremlin.util.*, org.apache.tinkerpop.gremlin.structure.util.*, org.apache.tinkerpop.gremlin.structure.io.graphml.*, org.apache.tinkerpop.gremlin.process.computer.*, org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.*, org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.*, org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.*, org.apache.tinkerpop.gremlin.structure.util.detached.*, org.apache.tinkerpop.gremlin.structure.io.graphson.*, org.apache.tinkerpop.gremlin.process.traversal.*, org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.*, org.apache.tinkerpop.gremlin.process.computer.bulkdumping.*, org.apache.tinkerpop.gremlin.structure.util.empty.*, org.apache.tinkerpop.gremlin.process.traversal.util.*, org.apache.tinkerpop.gremlin.groovy.function.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.SackFunctions.Barrier.*, <span class="direct
 ive">static</span> org.apache.tinkerpop.gremlin.util.TimeUtil.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.Direction.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Pop.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent.Pick.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.P.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Order.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.io.IoCore.*, <span class="directive">stati
 c</span> org.apache.tinkerpop.gremlin.process.traversal.Scope.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.Column.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.computer.Computer.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.structure.T.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.process.traversal.Operator.*, org.apache.tinkerpop.gremlin.driver.ser.*, org.apache.tinkerpop.gremlin.driver.message.*, org.apache.tinkerpop.gremlin.driver.exception.*, org.apache.tinkerpop.gremlin.driver.remote.*, org.apache.tinkerpop.gremlin.driver.*, <span class="directive">static</span> groovyx.gbench.BenchmarkStaticExtension.*, <span class="directive">static</span> groovyx.gprof.ProfileStaticExtension.*, groovyx.gprof.*, groovyx.gbench.*, org.apache.tinkerpop.gremlin.giraph.process.computer.*, org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraph, <span class="directiv
 e">static</span> org.apache.tinkerpop.gremlin.groovy.plugin.dsl.credential.CredentialGraph.*, org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat, org.apache.hadoop.hdfs.*, org.apache.hadoop.mapreduce.lib.input.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.*, org.apache.tinkerpop.gremlin.hadoop.process.computer.mapreduce.*, org.apache.hadoop.conf.*, org.apache.hadoop.util.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.gryo.*, org.apache.tinkerpop.gremlin.hadoop.structure.*, org.apache.hadoop.io.compress.*, org.apache.tinkerpop.gremlin.hadoop.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.graphson.*, org.apache.hadoop.io.*, org.apache.log4j.*, org.apache.hadoop.mapreduce.lib.output.*, org.apache.tinkerpop.gremlin.hadoop.structure.io.script.*, org.apache.tinkerpop.gremlin.hadoop.structure.util.*, org.apache.hadoop.fs.*, org.apache.tinkerpop.gremlin.neo4j.structure.*, <span class="directive">static</span> org.apache.tinkerpop.gremlin.neo4j.process.traversal.La
 belP.*, org.apache.tinkerpop.gremlin.spark.process.computer.*, org.apache.tinkerpop.gremlin.spark.structure.*, org.apache.tinkerpop.gremlin.spark.structure.io.*, org.apache.tinkerpop.gremlin.tinkergraph.structure.*, org.apache.tinkerpop.gremlin.tinkergraph.process.computer.*, java.time.Year
+gremlin&gt; firstYear = g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).
+                           local(properties(<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>).values(<span class="string"><span class="delimiter">'</span><span class="content">startTime</span><span class="delimiter">'</span></span>).min()).
+                           max().next()
+==&gt;<span class="integer">2004</span>
+gremlin&gt; g.V().hasLabel(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>).as(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>).
+               constant((firstYear..(<span class="keyword">new</span> <span class="predefined-type">Date</span>().getYear() + <span class="integer">1900</span>)).toList()).unfold().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">year</span><span class="delimiter">&quot;</span></span>).
+               select(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>).coalesce(
+                 properties(<span class="string"><span class="delimiter">&quot;</span><span class="content">location</span><span class="delimiter">&quot;</span></span>).filter(values(<span class="string"><span class="delimiter">&quot;</span><span class="content">startTime</span><span class="delimiter">&quot;</span></span>).where(gte(<span class="string"><span class="delimiter">&quot;</span><span class="content">year</span><span class="delimiter">&quot;</span></span>))).
+                                        order().by(<span class="string"><span class="delimiter">&quot;</span><span class="content">startTime</span><span class="delimiter">&quot;</span></span>).limit(<span class="integer">1</span>),
+                 properties(<span class="string"><span class="delimiter">&quot;</span><span class="content">location</span><span class="delimiter">&quot;</span></span>).hasNot(<span class="string"><span class="delimiter">&quot;</span><span class="content">endTime</span><span class="delimiter">&quot;</span></span>)).value().as(<span class="string"><span class="delimiter">&quot;</span><span class="content">location</span><span class="delimiter">&quot;</span></span>).
+               select(<span class="string"><span class="delimiter">&quot;</span><span class="content">person</span><span class="delimiter">&quot;</span></span>,<span class="string"><span class="delimiter">&quot;</span><span class="content">year</span><span class="delimiter">&quot;</span></span>,<span class="string"><span class="delimiter">&quot;</span><span class="content">location</span><span class="delimiter">&quot;</span></span>).by(<span class="string"><span class="delimiter">&quot;</span><span class="content">name</span><span class="delimiter">&quot;</span></span>).by().by()
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2004</span>,<span class="key">location</span>:brussels]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2005</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2006</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2007</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2008</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2009</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2010</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2011</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2012</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2013</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2014</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2015</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2016</span>,<span class="key">location</span>:santa fe]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2004</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2005</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2006</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2007</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2008</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2009</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2010</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2011</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2012</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2013</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2014</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2015</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2016</span>,<span class="key">location</span>:purcellville]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2004</span>,<span class="key">location</span>:bremen]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2005</span>,<span class="key">location</span>:baltimore]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2006</span>,<span class="key">location</span>:baltimore]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2007</span>,<span class="key">location</span>:baltimore]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2008</span>,<span class="key">location</span>:oakland]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2009</span>,<span class="key">location</span>:oakland]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2010</span>,<span class="key">location</span>:oakland]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2011</span>,<span class="key">location</span>:oakland]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2012</span>,<span class="key">location</span>:seattle]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2013</span>,<span class="key">location</span>:seattle]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2014</span>,<span class="key">location</span>:seattle]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2015</span>,<span class="key">location</span>:seattle]
+==&gt;[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2016</span>,<span class="key">location</span>:seattle]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2004</span>,<span class="key">location</span>:kaiserslautern]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2005</span>,<span class="key">location</span>:kaiserslautern]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2006</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2007</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2008</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2009</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2010</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2011</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2012</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2013</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2014</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2015</span>,<span class="key">location</span>:aachen]
+==&gt;[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2016</span>,<span class="key">location</span>:aachen]</code></pre>
 </div>
 </div>
 <div class="admonitionblock tip">
@@ -1658,7 +1918,7 @@ knowledge on what the console can do for
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-10-04 18:30:26 +02:00
+Last updated 2016-10-04 15:34:34 -04:00
 </div>
 </div>
 </body>

Modified: tinkerpop/site/docs/3.2.3-SNAPSHOT/upgrade/index.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/docs/3.2.3-SNAPSHOT/upgrade/index.html?rev=1763321&r1=1763320&r2=1763321&view=diff
==============================================================================
--- tinkerpop/site/docs/3.2.3-SNAPSHOT/upgrade/index.html (original)
+++ tinkerpop/site/docs/3.2.3-SNAPSHOT/upgrade/index.html Tue Oct  4 19:42:19 2016
@@ -899,12 +899,22 @@ span.line-numbers { border-right: 1px so
 <li>
 <ul class="sectlevel1">
 <li><a href="#_tinkerpop_3_1_5">TinkerPop 3.1.5</a></li>
-<li><a href="#_tinkerpop_3_1_4">TinkerPop 3.1.4</a></li>
 <li>
 <ul class="sectlevel2">
 <li><a href="#_upgrading_for_users_5">Upgrading for Users</a></li>
 <li>
 <ul class="sectlevel3">
+<li><a href="#_java_driver_and_close">Java Driver and close()</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#_tinkerpop_3_1_4">TinkerPop 3.1.4</a></li>
+<li>
+<ul class="sectlevel2">
+<li><a href="#_upgrading_for_users_6">Upgrading for Users</a></li>
+<li>
+<ul class="sectlevel3">
 <li><a href="#_gremlin_server_workers">Gremlin Server Workers</a></li>
 </ul>
 </li>
@@ -913,7 +923,7 @@ span.line-numbers { border-right: 1px so
 <li><a href="#_tinkerpop_3_1_3">TinkerPop 3.1.3</a></li>
 <li>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_6">Upgrading for Users</a></li>
+<li><a href="#_upgrading_for_users_7">Upgrading for Users</a></li>
 <li>
 <ul class="sectlevel3">
 <li><a href="#_reserved_gremlin_server_keys">Reserved Gremlin Server Keys</a></li>
@@ -934,7 +944,7 @@ span.line-numbers { border-right: 1px so
 <li><a href="#_tinkerpop_3_1_2">TinkerPop 3.1.2</a></li>
 <li>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_7">Upgrading for Users</a></li>
+<li><a href="#_upgrading_for_users_8">Upgrading for Users</a></li>
 <li>
 <ul class="sectlevel3">
 <li><a href="#_aliasing_sessions">Aliasing Sessions</a></li>
@@ -959,7 +969,7 @@ span.line-numbers { border-right: 1px so
 <li><a href="#_tinkerpop_3_1_1">TinkerPop 3.1.1</a></li>
 <li>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_8">Upgrading for Users</a></li>
+<li><a href="#_upgrading_for_users_9">Upgrading for Users</a></li>
 <li>
 <ul class="sectlevel3">
 <li><a href="#_storage_i_o">Storage I/O</a></li>
@@ -986,7 +996,7 @@ span.line-numbers { border-right: 1px so
 <li><a href="#_tinkerpop_3_1_0_2">TinkerPop 3.1.0</a></li>
 <li>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_9">Upgrading for Users</a></li>
+<li><a href="#_upgrading_for_users_10">Upgrading for Users</a></li>
 <li>
 <ul class="sectlevel3">
 <li><a href="#_shading_jackson">Shading Jackson</a></li>
@@ -1024,7 +1034,7 @@ span.line-numbers { border-right: 1px so
 <li><a href="#_tinkerpop_3_0_2">TinkerPop 3.0.2</a></li>
 <li>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_10">Upgrading for Users</a></li>
+<li><a href="#_upgrading_for_users_11">Upgrading for Users</a></li>
 <li>
 <ul class="sectlevel3">
 <li><a href="#_bulkloadervertexprogram_blvp">BulkLoaderVertexProgram (BLVP)</a></li>
@@ -1043,7 +1053,7 @@ span.line-numbers { border-right: 1px so
 <li><a href="#_tinkerpop_3_0_1">TinkerPop 3.0.1</a></li>
 <li>
 <ul class="sectlevel2">
-<li><a href="#_upgrading_for_users_11">Upgrading for Users</a></li>
+<li><a href="#_upgrading_for_users_12">Upgrading for Users</a></li>
 <li>
 <ul class="sectlevel3">
 <li><a href="#_gremlin_server">Gremlin Server</a></li>
@@ -1295,6 +1305,16 @@ uses of these exception builders as they
 </div>
 </div>
 <div class="sect4">
+<h5 id="_hidden_step_labels_for_compilation_only">Hidden Step Labels for Compilation Only</h5>
+<div class="paragraph">
+<p>In order for <code>SubgraphStrategy</code> to work, it was necessary to have multi-level children communicate with one another
+via hidden step labels. It was decided that hidden step labels are for compilation purposes only and will be removed
+prior to traversal evaluation. This is a valid decision given that hidden labels for graph system providers are
+not allowed to be used by users. Likewise, hidden labels for steps should not be allowed be used by
+users as well.</p>
+</div>
+</div>
+<div class="sect4">
 <h5 id="_propertymapstep_with_selection_traversal">PropertyMapStep with Selection Traversal</h5>
 <div class="paragraph">
 <p><code>PropertyMapStep</code> now supports selection of properties via child property traversal. If a provider was relying solely
@@ -1306,6 +1326,18 @@ and if so, use that in their introspecti
 <a href="https://issues.apache.org/jira/browse/TINKERPOP-844">TINKERPOP-844</a></p>
 </div>
 </div>
+<div class="sect4">
+<h5 id="_connectivep_nesting_inlined">ConnectiveP Nesting Inlined</h5>
+<div class="paragraph">
+<p>There was a bug in <code>ConnectiveP</code> (<code>AndP</code>/<code>OrP</code>), where <code>eq(1).and(eq(2).and(eq(3)))</code> was <code>OrP(eq(1),AndP(eq(2),eq(3)))</code>
+instead of unnested/inlined as <code>OrP(eq(1),eq(2),eq(3))</code>. Likewise, for <code>AndP</code>. If a provider was leveraging <code>ConnectiveP</code>
+predicates for their custom steps (e.g. graph- or vertex-centric index lookups), then they should be aware of the inlining
+and can simplify any and/or-tree walking code in their respective <code>ProviderOptimizationStrategy</code>.</p>
+</div>
+<div class="paragraph">
+<p>See: <a href="https://issues.apache.org/jira/browse/TINKERPOP-1470">TINKERPOP-1470</a></p>
+</div>
+</div>
 </div>
 </div>
 </div>
@@ -2245,6 +2277,26 @@ Unfortunately for graph system providers
 <div class="paragraph">
 <p><strong>Release Date: NOT OFFICIALLY RELEASED YET</strong></p>
 </div>
+<div class="paragraph">
+<p>Please see the <a href="https://github.com/apache/tinkerpop/blob/3.1.4/CHANGELOG.asciidoc#tinkerpop-315-release-date-XXXXXXXXXXXX">changelog</a> for a complete list of all the modifications that are part of this release.</p>
+</div>
+<div class="sect2">
+<h3 id="_upgrading_for_users_5">Upgrading for Users</h3>
+<div class="sect3">
+<h4 id="_java_driver_and_close">Java Driver and close()</h4>
+<div class="paragraph">
+<p>There were a few problems noted around the <code>close()</code> of <code>Cluster</code> and <code>Client</code> instances, including issues that
+presented as system hangs. These issues have been resolved, however, it is worth noting that an unchecked exception
+that was thrown under a certain situation has changed as part of the bug fixes. When submitting an in-session request
+on a <code>Client</code> that was closed (or closing) an <code>IllegalStateException</code> is thrown. This replaces older functionality
+that threw a <code>ConnectionException</code> and relied logic far deeper in the driver to produce that error and had the
+potential to open additional resources despite the intention of the user to "close".</p>
+</div>
+<div class="paragraph">
+<p>See: <a href="https://issues.apache.org/jira/browse/TINKERPOP-1467">TINKERPOP-1467</a></p>
+</div>
+</div>
+</div>
 </div>
 </div>
 <div class="sect1">
@@ -2257,7 +2309,7 @@ Unfortunately for graph system providers
 <p>Please see the <a href="https://github.com/apache/tinkerpop/blob/3.1.4/CHANGELOG.asciidoc#tinkerpop-314-release-date-september-6-2016">changelog</a> for a complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_5">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_6">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_gremlin_server_workers">Gremlin Server Workers</h4>
 <div class="paragraph">
@@ -2283,7 +2335,7 @@ acceptable even in that specific case.</
 <p>Please see the <a href="https://github.com/apache/tinkerpop/blob/3.1.3/CHANGELOG.asciidoc#tinkerpop-313-release-date-july-18-2016">changelog</a> for a complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_6">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_7">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_reserved_gremlin_server_keys">Reserved Gremlin Server Keys</h4>
 <div class="paragraph">
@@ -2425,7 +2477,7 @@ other implementations might, so the driv
 <p>Please see the <a href="https://github.com/apache/tinkerpop/blob/3.1.2-incubating/CHANGELOG.asciidoc#tinkerpop-312-release-date-april-8-2016">changelog</a> for a complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_7">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_8">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_aliasing_sessions">Aliasing Sessions</h4>
 <div class="paragraph">
@@ -2613,7 +2665,7 @@ local variable bindings in the console i
 <p>Please see the <a href="https://github.com/apache/tinkerpop/blob/3.1.1-incubating/CHANGELOG.asciidoc#tinkerpop-311-release-date-february-8-2016">changelog</a> for a complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_8">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_9">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_storage_i_o">Storage I/O</h4>
 <div class="paragraph">
@@ -2916,7 +2968,7 @@ interested provider, study the implement
 </ul>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_9">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_10">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_shading_jackson">Shading Jackson</h4>
 <div class="paragraph">
@@ -3406,7 +3458,7 @@ made in the scope of that session.</p>
 <p>Please see the <a href="https://github.com/apache/tinkerpop/blob/3.0.2-incubating/CHANGELOG.asciidoc#tinkerpop-302-release-date-october-19-2015">changelog</a> for a complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_10">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_11">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_bulkloadervertexprogram_blvp">BulkLoaderVertexProgram (BLVP)</h4>
 <div class="paragraph">
@@ -3482,7 +3534,7 @@ explicitly and as needed.</p>
 <p>Please see the <a href="https://github.com/apache/tinkerpop/blob/3.0.1-incubating/CHANGELOG.asciidoc#tinkerpop-301-release-date-september-2-2015">changelog</a> for a complete list of all the modifications that are part of this release.</p>
 </div>
 <div class="sect2">
-<h3 id="_upgrading_for_users_11">Upgrading for Users</h3>
+<h3 id="_upgrading_for_users_12">Upgrading for Users</h3>
 <div class="sect3">
 <h4 id="_gremlin_server">Gremlin Server</h4>
 <div class="paragraph">
@@ -3587,7 +3639,7 @@ want the security capabilities that it p
 </div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2016-10-04 18:36:19 +02:00
+Last updated 2016-10-04 15:39:52 -04:00
 </div>
 </div>
 </body>

Modified: tinkerpop/site/javadocs/3.2.3-SNAPSHOT/core/deprecated-list.html
URL: http://svn.apache.org/viewvc/tinkerpop/site/javadocs/3.2.3-SNAPSHOT/core/deprecated-list.html?rev=1763321&r1=1763320&r2=1763321&view=diff
==============================================================================
--- tinkerpop/site/javadocs/3.2.3-SNAPSHOT/core/deprecated-list.html (original)
+++ tinkerpop/site/javadocs/3.2.3-SNAPSHOT/core/deprecated-list.html Tue Oct  4 19:42:19 2016
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_101) on Tue Oct 04 18:37:51 CEST 2016 -->
+<!-- Generated by javadoc (1.8.0_101) on Tue Oct 04 15:40:55 EDT 2016 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Deprecated List (Apache TinkerPop 3.2.3-SNAPSHOT API)</title>
 <meta name="date" content="2016-10-04">
@@ -265,13 +265,13 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#addV-java.lang.Object...-">org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.addV(Object...)</a>
-<div class="block"><span class="deprecationComment">As of release 3.1.0, replaced by <a href="org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#addV--"><code>GraphTraversal.addV()</code></a></span></div>
+<td class="colOne"><a href="org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.html#addV-java.lang.Object...-">org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.addV(Object...)</a>
+<div class="block"><span class="deprecationComment">As of release 3.1.0, replaced by <a href="org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.html#addV--"><code>GraphTraversalSource.addV()</code></a></span></div>
 </td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.html#addV-java.lang.Object...-">org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource.addV(Object...)</a>
-<div class="block"><span class="deprecationComment">As of release 3.1.0, replaced by <a href="org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversalSource.html#addV--"><code>GraphTraversalSource.addV()</code></a></span></div>
+<td class="colOne"><a href="org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#addV-java.lang.Object...-">org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.addV(Object...)</a>
+<div class="block"><span class="deprecationComment">As of release 3.1.0, replaced by <a href="org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.html#addV--"><code>GraphTraversal.addV()</code></a></span></div>
 </td>
 </tr>
 <tr class="rowColor">