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> graph = TinkerGraph.open() <span class="comment">//</span><b>(1)</b>
+==>tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>]
+gremlin> g = graph.traversal() <span class="comment">//</span><b>(2)</b>
+==>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> graph = TinkerFactory.createModern()
+==>tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">6</span>]
+gremlin> g = graph.traversal()
+==>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> graph = TinkerGraph.open()
+==>tinkergraph[<span class="key">vertices</span>:<span class="integer">0</span> <span class="key">edges</span>:<span class="integer">0</span>]
+gremlin> 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> graph
+==>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> :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 (:> ) 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> :help :remote
+
+<span class="key">usage</span>: :remote [current|connect <type-of-remote> [<args>]|config <args>|list|next|prev|choose <index>|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> g.V(<span class="integer">1</span>).outE().group().by(label).by(inV())
+==>[<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> g.V(<span class="integer">1</span>).outE().group().by(label).by(inV()).next()
+==>created=v[<span class="integer">3</span>]
+==>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> t = g.V(<span class="integer">1</span>).outE().group().by(label).by(inV());<span class="predefined-constant">null</span>
+gremlin> t.next()
+==>created=v[<span class="integer">3</span>]
+==>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> g.V(<span class="integer">1</span>).outE().group().by(label).by(inV().fold()).next()
+==>created=[v[<span class="integer">3</span>]]
+==>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> 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> 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()
+==><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> graph = TinkerFactory.createTheCrew()
+==>tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">14</span>]
+gremlin> g = graph.traversal()
+==>graphtraversalsource[tinkergraph[<span class="key">vertices</span>:<span class="integer">6</span> <span class="key">edges</span>:<span class="integer">14</span>], standard]
+gremlin>
+gremlin> g.V().hasLabel(<span class="string"><span class="delimiter">'</span><span class="content">person</span><span class="delimiter">'</span></span>).valueMap()
+==>[<span class="key">name</span>:[marko],<span class="key">location</span>:[san diego,santa cruz,brussels,santa fe]]
+==>[<span class="key">name</span>:[stephen],<span class="key">location</span>:[centreville,dulles,purcellville]]
+==>[<span class="key">name</span>:[matthias],<span class="key">location</span>:[bremen,baltimore,oakland,seattle]]
+==>[<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> 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())
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2005</span>]]
+==>[<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>]]
+==>[<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>]]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2006</span>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:[<span class="key">startTime</span>:<span class="integer">2014</span>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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> 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()
+==><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> 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()
+==><span class="integer">2004</span>
+gremlin> 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()
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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->((Math.max(row.times.startTime,firstYear))..((row.times.endTime?:2017)-1)).collect{
- year->[person:row.person,location:row.location,year:year]}}.flatten()</pre>
+<pre class="CodeRay"><code class="groovy language-groovy">gremlin> 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()
+==><span class="integer">2004</span>
+gremlin> 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()
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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>]]
+==>[<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> l.collect{
+ row->((<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->[<span class="key">person</span>:row.person,<span class="key">location</span>:row.location,<span class="key">year</span>:year]}}.flatten()
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:brussels,<span class="key">year</span>:<span class="integer">2004</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2005</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2006</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2007</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2008</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2009</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2010</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2011</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2012</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2013</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2014</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2015</span>]
+==>[<span class="key">person</span>:marko,<span class="key">location</span>:santa fe,<span class="key">year</span>:<span class="integer">2016</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:dulles,<span class="key">year</span>:<span class="integer">2004</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:dulles,<span class="key">year</span>:<span class="integer">2005</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2006</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2007</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2008</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2009</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2010</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2011</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2012</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2013</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2014</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2015</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">location</span>:purcellville,<span class="key">year</span>:<span class="integer">2016</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:bremen,<span class="key">year</span>:<span class="integer">2004</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:bremen,<span class="key">year</span>:<span class="integer">2005</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:bremen,<span class="key">year</span>:<span class="integer">2006</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">year</span>:<span class="integer">2007</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">year</span>:<span class="integer">2008</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">year</span>:<span class="integer">2009</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:baltimore,<span class="key">year</span>:<span class="integer">2010</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:oakland,<span class="key">year</span>:<span class="integer">2011</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:oakland,<span class="key">year</span>:<span class="integer">2012</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:oakland,<span class="key">year</span>:<span class="integer">2013</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:seattle,<span class="key">year</span>:<span class="integer">2014</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:seattle,<span class="key">year</span>:<span class="integer">2015</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">location</span>:seattle,<span class="key">year</span>:<span class="integer">2016</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:spremberg,<span class="key">year</span>:<span class="integer">2004</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">year</span>:<span class="integer">2005</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">year</span>:<span class="integer">2006</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">year</span>:<span class="integer">2007</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:kaiserslautern,<span class="key">year</span>:<span class="integer">2008</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2009</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2010</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2011</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2012</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2013</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2014</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">location</span>:aachen,<span class="key">year</span>:<span class="integer">2015</span>]
+==>[<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> <span class="keyword">import</span> <span class="include">java.time.Year</span>
+==>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> Year.now()
+==><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> <span class="keyword">import</span> <span class="include">java.time.Year</span>
+==>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> 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()
+==><span class="integer">2004</span>
+gremlin> 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>).
+ constant((firstYear..(Year.now().value)).toList()).unfold().as(<span class="string"><span class="delimiter">"</span><span class="content">year</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">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()
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2004</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2005</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2006</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2007</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2008</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2009</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2010</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2011</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2012</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2013</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2014</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2015</span>]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2016</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2004</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2005</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2006</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2007</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2008</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2009</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2010</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2011</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2012</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2013</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2014</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2015</span>]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2016</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2004</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2005</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2006</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2007</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2008</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2009</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2010</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2011</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2012</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2013</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2014</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2015</span>]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2016</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2004</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2005</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2006</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2007</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2008</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2009</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2010</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2011</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2012</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2013</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2014</span>]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2015</span>]
+==>[<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> <span class="keyword">import</span> <span class="include">java.time.Year</span>
+==>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> 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()
+==><span class="integer">2004</span>
+gremlin> 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>).
+ 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">"</span><span class="content">year</span><span class="delimiter">"</span></span>).
+ select(<span class="string"><span class="delimiter">"</span><span class="content">person</span><span class="delimiter">"</span></span>).coalesce(
+ properties(<span class="string"><span class="delimiter">"</span><span class="content">location</span><span class="delimiter">"</span></span>).filter(values(<span class="string"><span class="delimiter">"</span><span class="content">startTime</span><span class="delimiter">"</span></span>).where(gte(<span class="string"><span class="delimiter">"</span><span class="content">year</span><span class="delimiter">"</span></span>))).
+ order().by(<span class="string"><span class="delimiter">"</span><span class="content">startTime</span><span class="delimiter">"</span></span>).limit(<span class="integer">1</span>),
+ properties(<span class="string"><span class="delimiter">"</span><span class="content">location</span><span class="delimiter">"</span></span>).hasNot(<span class="string"><span class="delimiter">"</span><span class="content">endTime</span><span class="delimiter">"</span></span>)).value().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">year</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().by()
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2004</span>,<span class="key">location</span>:brussels]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2005</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2006</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2007</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2008</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2009</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2010</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2011</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2012</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2013</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2014</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2015</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:marko,<span class="key">year</span>:<span class="integer">2016</span>,<span class="key">location</span>:santa fe]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2004</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2005</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2006</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2007</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2008</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2009</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2010</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2011</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2012</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2013</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2014</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2015</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:stephen,<span class="key">year</span>:<span class="integer">2016</span>,<span class="key">location</span>:purcellville]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2004</span>,<span class="key">location</span>:bremen]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2005</span>,<span class="key">location</span>:baltimore]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2006</span>,<span class="key">location</span>:baltimore]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2007</span>,<span class="key">location</span>:baltimore]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2008</span>,<span class="key">location</span>:oakland]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2009</span>,<span class="key">location</span>:oakland]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2010</span>,<span class="key">location</span>:oakland]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2011</span>,<span class="key">location</span>:oakland]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2012</span>,<span class="key">location</span>:seattle]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2013</span>,<span class="key">location</span>:seattle]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2014</span>,<span class="key">location</span>:seattle]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2015</span>,<span class="key">location</span>:seattle]
+==>[<span class="key">person</span>:matthias,<span class="key">year</span>:<span class="integer">2016</span>,<span class="key">location</span>:seattle]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2004</span>,<span class="key">location</span>:kaiserslautern]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2005</span>,<span class="key">location</span>:kaiserslautern]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2006</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2007</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2008</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2009</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2010</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2011</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2012</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2013</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2014</span>,<span class="key">location</span>:aachen]
+==>[<span class="key">person</span>:daniel,<span class="key">year</span>:<span class="integer">2015</span>,<span class="key">location</span>:aachen]
+==>[<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">