[2/2] tinkerpop git commit: Implemented `ShortestPathVertexProgram` and `ShortestPathVertexProgramStep`.

2018-06-21 Thread dkuppitz
Implemented `ShortestPathVertexProgram` and `ShortestPathVertexProgramStep`.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/8928374a
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/8928374a
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/8928374a

Branch: refs/heads/TINKERPOP-1990
Commit: 8928374a23fc4a5853c48c1e2223768bed93e11f
Parents: b5600e7
Author: Daniel Kuppitz 
Authored: Wed May 23 08:46:34 2018 -0400
Committer: Daniel Kuppitz 
Committed: Thu Jun 21 11:01:28 2018 -0700

--
 docs/src/reference/the-graphcomputer.asciidoc   |  51 ++
 docs/src/reference/the-traversal.asciidoc   |  56 ++
 .../tinkerpop/gremlin/jsr223/CoreImports.java   |   4 +
 .../search/path/ShortestPathVertexProgram.java  | 557 +++
 .../traversal/step/map/ShortestPath.java| 108 
 .../step/map/ShortestPathVertexProgramStep.java | 174 ++
 .../gremlin/process/remote/RemoteGraph.java |   8 +
 .../gremlin/process/traversal/Traversal.java|  16 +-
 .../traversal/dsl/graph/GraphTraversal.java |  20 +
 .../traversal/lambda/ColumnTraversal.java   |   8 +
 .../traversal/lambda/ConstantTraversal.java |   9 +-
 .../traversal/lambda/ElementValueTraversal.java |  10 +-
 .../traversal/lambda/IdentityTraversal.java |   7 +-
 .../process/traversal/lambda/LoopTraversal.java |   6 +
 .../traversal/lambda/TokenTraversal.java|   8 +
 .../process/traversal/lambda/TrueTraversal.java |   5 +
 .../structure/io/graphson/GraphSONModule.java   |   2 +-
 .../gremlin/structure/io/gryo/GryoVersion.java  |   7 +-
 .../structure/io/gryo/UtilSerializers.java  |  15 +
 .../gremlin/structure/util/Attachable.java  |   3 +-
 .../traversal/dsl/graph/GraphTraversalTest.java |   2 +-
 .../Process/Traversal/GraphTraversal.cs |  18 +
 .../lib/process/graph-traversal.js  |  10 +
 .../gremlin_python/process/graph_traversal.py   |   4 +
 .../tinkerpop/gremlin/AbstractGremlinTest.java  |   6 +-
 .../process/AbstractGremlinProcessTest.java |  11 +-
 .../gremlin/process/ProcessComputerSuite.java   |   5 +
 .../search/path/ShortestPathTestHelper.java | 100 
 .../path/ShortestPathVertexProgramTest.java | 297 ++
 .../traversal/step/map/ShortestPathTest.java| 353 
 pom.xml |   3 +
 31 files changed, 1861 insertions(+), 22 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8928374a/docs/src/reference/the-graphcomputer.asciidoc
--
diff --git a/docs/src/reference/the-graphcomputer.asciidoc 
b/docs/src/reference/the-graphcomputer.asciidoc
index 4bf39d0..e4da605 100644
--- a/docs/src/reference/the-graphcomputer.asciidoc
+++ b/docs/src/reference/the-graphcomputer.asciidoc
@@ -403,6 +403,57 @@ g.V().peerPressure().by('cluster').valueMap()
 g.V().peerPressure().by(outE('knows')).by('cluster').valueMap()
 
 
+[[shortestpathvertexprogram]]
+=== ShortestPathVertexProgram
+
+The `ShortestPathVertexProram` provides an easy way to find shortest 
non-cyclic paths in the graph. It provides several options to configure
+the output format, the start- and end-vertices, the direction, a custom 
distance function, as well as a distance limitation. By default it just
+finds all undirected, shortest paths in the graph.
+
+[gremlin-groovy,modern]
+
+spvp = ShortestPathVertexProgram.build().create() <1>
+result = graph.compute().program(spvp).submit().get() <2>
+result.memory().get(ShortestPathVertexProgram.SHORTEST_PATHS) <3>
+
+
+<1> Create a `ShortestPathVertexProgram` with its default configuration.
+<2> Execute the `ShortestPathVertexProgram`.
+<3> Get all shortest paths from the results memory.
+
+[gremlin-groovy,modern]
+
+spvp = ShortestPathVertexProgram.build().includeEdges(true).create() <1>
+result = graph.compute().program(spvp).submit().get() <2>
+result.memory().get(ShortestPathVertexProgram.SHORTEST_PATHS) <3>
+
+
+<1> Create a `ShortestPathVertexProgram` as before, but configure it to 
include edges in the result.
+<2> Execute the `ShortestPathVertexProgram`.
+<3> Get all shortest paths from the results memory.
+
+The `ShortestPathVertexProgram.Builder` provides the following configuration 
methods:
+
+[width="100%",cols="3,15,5",options="header"]
+|=
+| Method | Description | Default
+| `source(Traversal)` | Sets a filter traversal for the start vertices (e.g. 
`__.has('name','marko')`). | all vertices (`__.identity()`)
+| `target(Traversal)` | Sets a filter traversal for the end vertices. | all 
vertices
+| `edgeDirection(Direction)` | Sets the direction to traverse during the 
shortest path discovery. | `Direction.BOTH`

[2/2] tinkerpop git commit: Implemented `ShortestPathVertexProgram` and `ShortestPathVertexProgramStep`.

2018-05-31 Thread dkuppitz
Implemented `ShortestPathVertexProgram` and `ShortestPathVertexProgramStep`.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2b02a47c
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2b02a47c
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2b02a47c

Branch: refs/heads/shortest-path-wip
Commit: 2b02a47cf5438f3eff5b54eb1bdd77169aef91f2
Parents: 12b84a1
Author: Daniel Kuppitz 
Authored: Wed May 23 08:46:34 2018 -0400
Committer: Daniel Kuppitz 
Committed: Thu May 31 14:51:30 2018 -0700

--
 .../tinkerpop/gremlin/jsr223/CoreImports.java   |   4 +
 .../search/path/ShortestPathVertexProgram.java  | 566 +++
 .../step/map/ShortestPathVertexProgramStep.java | 259 +
 .../gremlin/process/remote/RemoteGraph.java |   8 +
 .../gremlin/process/traversal/Traversal.java|  16 +-
 .../traversal/dsl/graph/GraphTraversal.java |  20 +
 .../traversal/lambda/ColumnTraversal.java   |   8 +
 .../traversal/lambda/ConstantTraversal.java |   9 +-
 .../traversal/lambda/ElementValueTraversal.java |  10 +-
 .../traversal/lambda/IdentityTraversal.java |   7 +-
 .../process/traversal/lambda/LoopTraversal.java |   6 +
 .../traversal/lambda/TokenTraversal.java|   8 +
 .../process/traversal/lambda/TrueTraversal.java |   5 +
 .../structure/io/graphson/GraphSONModule.java   |   2 +-
 .../traversal/dsl/graph/GraphTraversalTest.java |   2 +-
 .../Process/Traversal/GraphTraversal.cs |   9 +
 .../lib/process/graph-traversal.js  |  10 +
 .../gremlin_python/process/graph_traversal.py   |   4 +
 .../tinkerpop/gremlin/AbstractGremlinTest.java  |   4 +
 .../gremlin/process/ProcessComputerSuite.java   |   5 +
 .../search/path/ShortestPathTestHelper.java |  72 +++
 .../path/ShortestPathVertexProgramTest.java | 264 +
 .../traversal/step/map/ShortestPathTest.java| 310 ++
 pom.xml |   3 +
 24 files changed, 1599 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2b02a47c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
index 368b92d..d853b8f 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
@@ -46,9 +46,11 @@ import 
org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.Clu
 import 
org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.PeerPressureVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankMapReduce;
 import 
org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankVertexProgram;
+import 
org.apache.tinkerpop.gremlin.process.computer.search.path.ShortestPathVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.MemoryTraversalSideEffects;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRankVertexProgramStep;
+import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPathVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.GraphFilterStrategy;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
@@ -262,6 +264,8 @@ public final class CoreImports {
 CLASS_IMPORTS.add(PageRankMapReduce.class);
 CLASS_IMPORTS.add(PageRankVertexProgram.class);
 CLASS_IMPORTS.add(PageRankVertexProgramStep.PageRank.class);
+CLASS_IMPORTS.add(ShortestPathVertexProgram.class);
+CLASS_IMPORTS.add(ShortestPathVertexProgramStep.ShortestPath.class);
 CLASS_IMPORTS.add(GraphFilterStrategy.class);
 CLASS_IMPORTS.add(TraversalVertexProgram.class);
 CLASS_IMPORTS.add(VertexProgramStrategy.class);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2b02a47c/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java
 

[2/2] tinkerpop git commit: Implemented `ShortestPathVertexProgram` and `ShortestPathVertexProgramStep`.

2018-05-31 Thread dkuppitz
Implemented `ShortestPathVertexProgram` and `ShortestPathVertexProgramStep`.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/f1776cc2
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/f1776cc2
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/f1776cc2

Branch: refs/heads/shortest-path-wip
Commit: f1776cc20acf0582cbf8331caeecbc95e59f
Parents: 12b84a1
Author: Stephen Mallette 
Authored: Wed May 23 08:46:34 2018 -0400
Committer: Daniel Kuppitz 
Committed: Thu May 31 14:42:02 2018 -0700

--
 .../tinkerpop/gremlin/jsr223/CoreImports.java   |   4 +
 .../search/path/ShortestPathVertexProgram.java  | 566 +++
 .../step/map/ShortestPathVertexProgramStep.java | 259 +
 .../gremlin/process/remote/RemoteGraph.java |   8 +
 .../gremlin/process/traversal/Traversal.java|  16 +-
 .../traversal/dsl/graph/GraphTraversal.java |  20 +
 .../traversal/lambda/ColumnTraversal.java   |   8 +
 .../traversal/lambda/ConstantTraversal.java |   9 +-
 .../traversal/lambda/ElementValueTraversal.java |  10 +-
 .../traversal/lambda/IdentityTraversal.java |   7 +-
 .../process/traversal/lambda/LoopTraversal.java |   6 +
 .../traversal/lambda/TokenTraversal.java|   8 +
 .../process/traversal/lambda/TrueTraversal.java |   5 +
 .../structure/io/graphson/GraphSONModule.java   |   2 +-
 .../traversal/dsl/graph/GraphTraversalTest.java |   2 +-
 .../Process/Traversal/GraphTraversal.cs |   9 +
 .../lib/process/graph-traversal.js  |  10 +
 .../gremlin_python/process/graph_traversal.py   |   4 +
 .../tinkerpop/gremlin/AbstractGremlinTest.java  |   4 +
 .../gremlin/process/ProcessComputerSuite.java   |   5 +
 .../search/path/ShortestPathTestHelper.java |  72 +++
 .../path/ShortestPathVertexProgramTest.java | 264 +
 .../traversal/step/map/ShortestPathTest.java| 310 ++
 pom.xml |   3 +
 24 files changed, 1599 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f1776cc2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
index 368b92d..d853b8f 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
@@ -46,9 +46,11 @@ import 
org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.Clu
 import 
org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.PeerPressureVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankMapReduce;
 import 
org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankVertexProgram;
+import 
org.apache.tinkerpop.gremlin.process.computer.search.path.ShortestPathVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.MemoryTraversalSideEffects;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRankVertexProgramStep;
+import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPathVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.GraphFilterStrategy;
 import org.apache.tinkerpop.gremlin.process.remote.RemoteConnection;
@@ -262,6 +264,8 @@ public final class CoreImports {
 CLASS_IMPORTS.add(PageRankMapReduce.class);
 CLASS_IMPORTS.add(PageRankVertexProgram.class);
 CLASS_IMPORTS.add(PageRankVertexProgramStep.PageRank.class);
+CLASS_IMPORTS.add(ShortestPathVertexProgram.class);
+CLASS_IMPORTS.add(ShortestPathVertexProgramStep.ShortestPath.class);
 CLASS_IMPORTS.add(GraphFilterStrategy.class);
 CLASS_IMPORTS.add(TraversalVertexProgram.class);
 CLASS_IMPORTS.add(VertexProgramStrategy.class);

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/f1776cc2/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/search/path/ShortestPathVertexProgram.java
 

[2/2] tinkerpop git commit: Implemented `ShortestPathVertexProgram` and `ShortestPathVertexProgramStep`.

2018-05-31 Thread dkuppitz
Implemented `ShortestPathVertexProgram` and `ShortestPathVertexProgramStep`.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/27cf8e55
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/27cf8e55
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/27cf8e55

Branch: refs/heads/shortest-path-wip
Commit: 27cf8e555fbc59e0446c8b8ed27c483b9578c97f
Parents: 939674a
Author: Daniel Kuppitz 
Authored: Tue May 22 07:59:32 2018 -0700
Committer: Daniel Kuppitz 
Committed: Thu May 31 14:29:17 2018 -0700

--
 .../tinkerpop/gremlin/jsr223/CoreImports.java   |   4 +
 .../gremlin/jsr223/JavaTranslator.java  |  37 --
 .../search/path/ShortestPathVertexProgram.java  | 566 +++
 .../step/map/ShortestPathVertexProgramStep.java | 257 +
 .../gremlin/process/remote/RemoteGraph.java |   8 +
 .../gremlin/process/traversal/Bytecode.java |  16 +-
 .../gremlin/process/traversal/Traversal.java|  16 +-
 .../traversal/dsl/graph/GraphTraversal.java |  23 +-
 .../traversal/lambda/ColumnTraversal.java   |   8 +
 .../traversal/lambda/ConstantTraversal.java |   9 +-
 .../traversal/lambda/ElementValueTraversal.java |  10 +-
 .../traversal/lambda/IdentityTraversal.java |   7 +-
 .../process/traversal/lambda/LoopTraversal.java |   6 +
 .../traversal/lambda/TokenTraversal.java|   8 +
 .../process/traversal/lambda/TrueTraversal.java |   5 +
 .../traversal/step/StepConfiguration.java   |  51 --
 .../step/util/DefaultStepConfiguration.java | 158 --
 .../step/util/StepConfigurationProxy.java   |  50 --
 .../structure/io/graphson/GraphSONModule.java   |   8 -
 .../io/graphson/TraversalSerializersV2d0.java   |  37 +-
 .../io/graphson/TraversalSerializersV3d0.java   |  34 +-
 .../structure/io/gryo/GryoSerializersV1d0.java  |  32 --
 .../structure/io/gryo/GryoSerializersV3d0.java  |   2 +-
 .../gremlin/structure/io/gryo/GryoVersion.java  |   7 +-
 .../traversal/dsl/graph/GraphTraversalTest.java |   2 +-
 .../process/traversal/step/StepTest.java|   2 +-
 .../step/util/DefaultStepConfigurationTest.java | 167 --
 .../GraphSONMapperPartialEmbeddedTypeTest.java  |  10 -
 .../structure/io/gryo/GryoMapperTest.java   |   7 -
 gremlin-dotnet/glv/generate.groovy  |   1 -
 .../Process/Traversal/GraphTraversal.cs |   9 +
 .../Process/Traversal/IStepConfiguration.cs |  32 --
 .../gremlin/groovy/jsr223/GroovyTranslator.java |   9 +-
 .../lib/process/graph-traversal.js  |  10 +
 gremlin-python/glv/generate.groovy  |   1 -
 .../gremlin_python/process/graph_traversal.py   |   4 +
 .../tinkerpop/gremlin/AbstractGremlinTest.java  |   4 +
 .../gremlin/process/ProcessComputerSuite.java   |   5 +
 .../search/path/ShortestPathTestHelper.java |  72 +++
 .../path/ShortestPathVertexProgramTest.java | 264 +
 .../traversal/step/map/ShortestPathTest.java| 310 ++
 pom.xml |   3 +
 42 files changed, 1607 insertions(+), 664 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/27cf8e55/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
--
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
index 368b92d..d853b8f 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/CoreImports.java
@@ -46,9 +46,11 @@ import 
org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.Clu
 import 
org.apache.tinkerpop.gremlin.process.computer.clustering.peerpressure.PeerPressureVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankMapReduce;
 import 
org.apache.tinkerpop.gremlin.process.computer.ranking.pagerank.PageRankVertexProgram;
+import 
org.apache.tinkerpop.gremlin.process.computer.search.path.ShortestPathVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.MemoryTraversalSideEffects;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexProgram;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.PageRankVertexProgramStep;
+import 
org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ShortestPathVertexProgramStep;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.decoration.VertexProgramStrategy;
 import 
org.apache.tinkerpop.gremlin.process.computer.traversal.strategy.optimization.GraphFilterStrategy;
 import