You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/05/07 18:49:37 UTC

incubator-tinkerpop git commit: implemented select(local). Updated MatchTest and docs accordingly. Have an idea for an 'auto-scope' strategy so we don't have the ugly select(local, 'a'). will be cool.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 1aa36aa90 -> 141af5aa3


implemented select(local). Updated MatchTest and docs accordingly. Have an idea for an 'auto-scope' strategy so we don't have the ugly select(local,'a'). will be cool.


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

Branch: refs/heads/master
Commit: 141af5aa32ec26c886e8bc0333b4c4e06f4aa0b5
Parents: 1aa36aa
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Thu May 7 10:49:28 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Thu May 7 10:49:28 2015 -0600

----------------------------------------------------------------------
 docs/src/the-traversal.asciidoc                 | 26 +++++++++---------
 .../traversal/dsl/graph/GraphTraversal.java     | 12 +++++++--
 .../traversal/step/map/SelectOneStep.java       |  8 +++---
 .../process/traversal/step/map/SelectStep.java  |  9 ++++---
 .../traversal/step/map/GroovyMatchTest.groovy   | 25 +++++++++--------
 .../process/traversal/step/map/MatchTest.java   | 28 +++++++++-----------
 6 files changed, 61 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/141af5aa/docs/src/the-traversal.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/the-traversal.asciidoc b/docs/src/the-traversal.asciidoc
index 4d9d0c2..a7f6e9d 100644
--- a/docs/src/the-traversal.asciidoc
+++ b/docs/src/the-traversal.asciidoc
@@ -670,7 +670,7 @@ g.V().match('a',
         __.as('a').out('created').as('b'),
         __.as('b').has('name', 'lop'),
         __.as('b').in('created').as('c'),
-        __.as('c').has('age', 29)).select('a','c').by('name')
+        __.as('c').has('age', 29)).select(local,'a','c').by('name')
 ----
 
 Note that the above can also be more concisely written as below which demonstrates that imperative inner-traversals can be arbitrarily defined.
@@ -679,7 +679,7 @@ Note that the above can also be more concisely written as below which demonstrat
 ----
 g.V().match('a',
         __.as('a').out('created').has('name', 'lop').as('b'),
-        __.as('b').in('created').has('age', 29).as('c')).select('a','c').by('name')
+        __.as('b').in('created').has('age', 29).as('c')).select(local,'a','c').by('name')
 ----
 
 [[grateful-dead]]
@@ -695,7 +695,7 @@ g = graph.traversal(standard())
 g.V().match('a',
         __.as('a').has('name', 'Garcia'),
         __.as('a').in('writtenBy').as('b'),
-        __.as('a').in('sungBy').as('b')).select('b').values('name')
+        __.as('a').in('sungBy').as('b')).select(local,'b').values('name')
 ----
 
 Among the features which differentiate `match()` from SPARQL are:
@@ -706,7 +706,7 @@ g.V().match('a',
         __.as('a').out('created').has('name','lop').as('b'), <1>
         __.as('b').in('created').has('age', 29).as('c'),
         __.as('c').repeat(out()).times(2)). <2>
-          select('c').out('knows').dedup().values('name') <3>
+          select(local,'c').out('knows').dedup().values('name') <3>
 ----
 
 <1> *Patterns of arbitrary complexity*: `match()` is not restricted to triple patterns or property paths.
@@ -720,11 +720,11 @@ To extend point #3, it is possible to support going from imperative, to declarat
 g.V().match('a',
         __.as('a').out('knows').as('b'),
         __.as('b').out('created').has('name','lop')).
-        select('b').out('created').
+        select(local,'b').out('created').
           match('a',
             __.as('a').in('created').as('b'),
             __.as('b').out('knows').as('c')).
-            select('c').values('name')
+            select(local,'c').values('name')
 ----
 
 Like all other steps in Gremlin, `match()` is a function and thus, `match()` within `match()` is a natural consequence of Gremlin's functional foundation (i.e. recursive matching).
@@ -737,8 +737,8 @@ g.V().match('a',
         __.as('b').match('x',
                  __.as('x').out('created').as('y'),
                  __.as('y').has('name','ripple')).
-                 select('y').as('c')).
-        select('a','c').by('name')
+                 select(local,'y').as('c')).
+        select(local,'a','c').by('name')
 ----
 
 WARNING: Currently, `match()` does not operate within a multi-JVM <<graphcomputer,GraphComputer>> OLAP environment. Future work includes a linearization <<traversalstrategy,TraversalStrategy>> for `match()`.
@@ -754,7 +754,7 @@ Match is typically used in conjunction with both `select()` (demonstrated previo
 g.V().match('a',
         __.as('a').out('created').as('b'),
         __.as('b').in('created').as('c')).
-          where('a', neq('c')).select('a','c').by('name')
+          where('a', neq('c')).select(local,'a','c').by('name')
 ----
 
 The `where()`-step can take either a `BiPredicate` (first example below) or a `Traversal` (second example below). Using `MatchWhereStrategy`, `where()`-clauses can be automatically folded into `match()` and thus, subject to `match()`-steps budget-match algorithm.
@@ -765,7 +765,7 @@ traversal = g.V().match('a',
                     __.as('a').out('created').as('b'),
                     __.as('b').in('created').as('c')).
                       where(__.as('a').out('knows').as('c')). <1>
-                      select('a','c').by('name'); null <2>
+                      select(local,'a','c').by('name'); null <2>
 traversal.toString() <3>
 traversal <4> <5>
 traversal.toString() <6>
@@ -1169,9 +1169,9 @@ The second use case is best understood in terms of <<match-step,`match()`>>-step
 [gremlin-groovy,modern]
 ----
 g.V().range(0, 2).as('a').map {[b:1,c:2]} <1>
-g.V().range(0, 2).as('a').map {[b:1,c:2]}.select() <2>
-g.V().range(0, 2).as('a').map {[b:1,c:2]}.select('a','c') <3>
-g.V().range(0, 2).as('a').map {[b:1,c:2]}.select('c') <4>
+g.V().range(0, 2).as('a').map {[b:1,c:2]}.select(local) <2>
+g.V().range(0, 2).as('a').map {[b:1,c:2]}.select(local,'a','c') <3>
+g.V().range(0, 2).as('a').map {[b:1,c:2]}.select(local,'c') <4>
 ----
 
 <1> A contrived example to create a `Map<String,Object>` flow as a foundation for the examples to follow.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/141af5aa/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index 60ae481..f199c17 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -290,12 +290,20 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         return this.asAdmin().addStep(new SackStep<>(this.asAdmin()));
     }
 
+    public default <E2> GraphTraversal<S, Map<String, E2>> select(final Scope scope, final String... stepLabels) {
+        return this.asAdmin().addStep(new SelectStep<>(this.asAdmin(), scope, stepLabels));
+    }
+
     public default <E2> GraphTraversal<S, Map<String, E2>> select(final String... stepLabels) {
-        return this.asAdmin().addStep(new SelectStep<>(this.asAdmin(), stepLabels));
+        return this.select(Scope.global, stepLabels);
+    }
+
+    public default <E2> GraphTraversal<S, E2> select(final Scope scope, final String stepLabel) {
+        return this.asAdmin().addStep(new SelectOneStep(this.asAdmin(), scope, stepLabel));
     }
 
     public default <E2> GraphTraversal<S, E2> select(final String stepLabel) {
-        return this.asAdmin().addStep(new SelectOneStep(this.asAdmin(), stepLabel));
+        return this.select(Scope.global, stepLabel);
     }
 
     public default <E2> GraphTraversal<S, E2> unfold() {

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/141af5aa/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java
index f957c7a..2480de7 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectOneStep.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
+import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.lambda.IdentityTraversal;
@@ -36,18 +37,19 @@ import java.util.Set;
  */
 public final class SelectOneStep<S, E> extends MapStep<S, E> implements TraversalParent {
 
+    private final Scope scope;
     private final String selectLabel;
     private Traversal.Admin<Object, Object> selectTraversal = new IdentityTraversal<>();
 
-    public SelectOneStep(final Traversal.Admin traversal, final String selectLabel) {
+    public SelectOneStep(final Traversal.Admin traversal, final Scope scope, final String selectLabel) {
         super(traversal);
+        this.scope = scope;
         this.selectLabel = selectLabel;
     }
 
     @Override
     protected E map(final Traverser.Admin<S> traverser) {
-        final S start = traverser.get();
-        return (E) TraversalUtil.apply(start instanceof Map ? ((Map) start).get(this.selectLabel) : traverser.path().<Object>get(this.selectLabel), this.selectTraversal);
+        return (E) TraversalUtil.apply(Scope.local == this.scope ? ((Map) traverser.get()).get(this.selectLabel) : traverser.path().<Object>get(this.selectLabel), this.selectTraversal);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/141af5aa/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java
index d0bab93..0e509fe 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/SelectStep.java
@@ -19,6 +19,7 @@
 package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
+import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
@@ -38,11 +39,13 @@ import java.util.Set;
  */
 public final class SelectStep<S, E> extends MapStep<S, Map<String, E>> implements TraversalParent {
 
-    protected TraversalRing<Object, Object> traversalRing = new TraversalRing<>();
+    private TraversalRing<Object, Object> traversalRing = new TraversalRing<>();
+    private final Scope scope;
     private final List<String> selectLabels;
 
-    public SelectStep(final Traversal.Admin traversal, final String... selectLabels) {
+    public SelectStep(final Traversal.Admin traversal, final Scope scope, final String... selectLabels) {
         super(traversal);
+        this.scope = scope;
         this.selectLabels = Arrays.asList(selectLabels);
     }
 
@@ -51,7 +54,7 @@ public final class SelectStep<S, E> extends MapStep<S, Map<String, E>> implement
         final S start = traverser.get();
         final Map<String, E> bindings = new LinkedHashMap<>();
 
-        if (start instanceof Map) {
+        if (Scope.local == this.scope) {
             if (this.selectLabels.isEmpty())
                 ((Map<String, Object>) start).forEach((key, value) -> bindings.put(key, (E) TraversalUtil.apply(value, this.traversalRing.next())));
             else

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/141af5aa/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
index aae6f26..e6e2c0b 100644
--- a/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
+++ b/gremlin-groovy-test/src/main/groovy/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroovyMatchTest.groovy
@@ -18,13 +18,16 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.step.map
 
-import org.apache.tinkerpop.gremlin.structure.T
+import org.apache.tinkerpop.gremlin.process.UseEngine
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine
-import org.apache.tinkerpop.gremlin.process.UseEngine
-import static org.apache.tinkerpop.gremlin.structure.P.*;
-import org.apache.tinkerpop.gremlin.structure.Vertex
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__
+import org.apache.tinkerpop.gremlin.structure.T
+import org.apache.tinkerpop.gremlin.structure.Vertex
+
+import static org.apache.tinkerpop.gremlin.process.traversal.Scope.local
+import static org.apache.tinkerpop.gremlin.structure.P.neq;
+
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
@@ -40,7 +43,7 @@ public abstract class GroovyMatchTest {
 
         @Override
         public Traversal<Vertex, Object> get_g_V_matchXa_out_bX_selectXb_idX() {
-            g.V().match('a', __.as('a').out().as('b')).select('b').by(T.id)
+            g.V().match('a', __.as('a').out().as('b')).select(local, 'b').by(T.id)
         }
 
         @Override
@@ -70,7 +73,7 @@ public abstract class GroovyMatchTest {
         public Traversal<Vertex, Map<String, String>> get_g_V_matchXa_created_b__a_repeatXoutX_timesX2XX_selectXab_nameX() {
             g.V().match('a',
                     __.as('a').out('created').as('b'),
-                    __.as('a').repeat(__.out).times(2).as('b')).select('a', 'b').by('name')
+                    __.as('a').repeat(__.out).times(2).as('b')).select(local, 'a', 'b').by('name')
         }
 
         @Override
@@ -78,14 +81,14 @@ public abstract class GroovyMatchTest {
             g.V().match('a',
                     __.as('a').out('created').has('name', 'lop').as('b'),
                     __.as('b').in('created').has('age', 29).as('c'),
-                    __.as('c').repeat(__.out).times(2)).select.by('name')
+                    __.as('c').repeat(__.out).times(2)).select(local).by('name')
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_out_out_matchXa_0created_b__b_0knows_cX_selectXcX_outXcreatedX_name() {
             g.V().out().out().match('a',
                     __.as('a').in('created').as('b'),
-                    __.as('b').in('knows').as('c')).select('c').out('created').name
+                    __.as('b').in('knows').as('c')).select(local, 'c').out('created').name
         }
 
         @Override
@@ -108,7 +111,7 @@ public abstract class GroovyMatchTest {
                     __.as('b').out('created').has('name', 'lop'),
                     __.as('b').match('a1',
                             __.as('a1').out('created').as('b1'),
-                            __.as('b1').in('created').as('c1')).select('c1').as('c')).select.by('name')
+                            __.as('b1').in('created').as('c1')).select(local, 'c1').as('c')).select(local).by('name')
         }
 
         @Override
@@ -156,7 +159,7 @@ public abstract class GroovyMatchTest {
                     __.as("a").out("created").has("name", "lop").as("b"),
                     __.as("b").in("created").has("age", 29).as("c"))
                     .where(__.as("c").repeat(__.out()).times(2))
-                    .select.by('name')
+                    .select(local).by('name')
         }
 
         @Override
@@ -165,7 +168,7 @@ public abstract class GroovyMatchTest {
                     __.as('a').out('created').as('b'),
                     __.as('b').in('created').as('c'))
                     .where('a', neq('c'))
-                    .select('a', 'c').by('name')
+                    .select(local, 'a', 'c').by('name')
         }
 
         /*@Override

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/141af5aa/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
index 4393a8e..802dd16 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchTest.java
@@ -20,11 +20,11 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
 import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.structure.T;
+import org.apache.tinkerpop.gremlin.process.UseEngine;
+import org.apache.tinkerpop.gremlin.process.traversal.Scope;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.process.UseEngine;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.match.Bindings;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.match.CrossJoinEnumerator;
@@ -32,9 +32,9 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.match.Enumerator;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.match.InnerJoinEnumerator;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.match.IteratorEnumerator;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.match.MatchStep;
-import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_S_SE_SL_Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.MapHelper;
-import static org.apache.tinkerpop.gremlin.structure.P.*;
+import org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_S_SE_SL_Traverser;
+import org.apache.tinkerpop.gremlin.structure.T;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.junit.Test;
 
@@ -55,10 +55,8 @@ import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.GRATEFUL;
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.as;
 import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.out;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.apache.tinkerpop.gremlin.structure.P.neq;
+import static org.junit.Assert.*;
 
 /**
  * @author Joshua Shinavier (http://fortytwo.net)
@@ -657,7 +655,7 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
 
         @Override
         public Traversal<Vertex, Object> get_g_V_matchXa_out_bX_selectXb_idX() {
-            return g.V().match("a", as("a").out().as("b")).select("b").by(T.id);
+            return g.V().match("a", as("a").out().as("b")).select(Scope.local, "b").by(T.id);
         }
 
         @Override
@@ -687,7 +685,7 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
         public Traversal<Vertex, Map<String, String>> get_g_V_matchXa_created_b__a_repeatXoutX_timesX2XX_selectXab_nameX() {
             return g.V().match("a",
                     as("a").out("created").as("b"),
-                    __.<Vertex>as("a").repeat(out()).times(2).as("b")).<String>select("a", "b").by("name");
+                    __.<Vertex>as("a").repeat(out()).times(2).as("b")).<String>select(Scope.local, "a", "b").by("name");
         }
 
         @Override
@@ -695,7 +693,7 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
             return g.V().match("a",
                     as("a").out("created").has("name", "lop").as("b"),
                     as("b").in("created").has("age", 29).as("c"),
-                    __.<Vertex>as("c").repeat(out()).times(2)).<String>select().by("name");
+                    __.<Vertex>as("c").repeat(out()).times(2)).<String>select(Scope.local).by("name");
         }
 
         @Override
@@ -703,14 +701,14 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
             return g.V().match("a",
                     as("a").out("created").has("name", "lop").as("b"),
                     as("b").in("created").has("age", 29).as("c"))
-                    .where(__.<Vertex>as("c").repeat(out()).times(2)).<String>select().by("name");
+                    .where(__.<Vertex>as("c").repeat(out()).times(2)).<String>select(Scope.local).by("name");
         }
 
         @Override
         public Traversal<Vertex, String> get_g_V_out_out_matchXa_0created_b__b_0knows_cX_selectXcX_outXcreatedX_name() {
             return g.V().out().out().match("a",
                     as("a").in("created").as("b"),
-                    as("b").in("knows").as("c")).select("c").out("created").values("name");
+                    as("b").in("knows").as("c")).select(Scope.local, "c").out("created").values("name");
         }
 
         @Override
@@ -733,7 +731,7 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
                     as("b").out("created").has("name", "lop"),
                     as("b").match("a1",
                             as("a1").out("created").as("b1"),
-                            as("b1").in("created").as("c1")).select("c1").as("c")).<String>select().by("name");
+                            as("b1").in("created").as("c1")).select(Scope.local, "c1").as("c")).<String>select(Scope.local).by("name");
         }
 
         @Override
@@ -781,7 +779,7 @@ public abstract class MatchTest extends AbstractGremlinProcessTest {
                     as("a").out("created").as("b"),
                     as("b").in("created").as("c"))
                     .where("a", neq("c"))
-                    .<String>select("a", "c").by("name");
+                    .<String>select(Scope.local, "a", "c").by("name");
         }
 
         /*@Override