This is an automated email from the ASF dual-hosted git repository.

xiazcy pushed a commit to branch steps-taking-traversal-poc
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/steps-taking-traversal-poc by 
this push:
     new 89260d5ab3 Add support in GLVs for steps taking traversals
89260d5ab3 is described below

commit 89260d5ab31a56a16dbbb382c1a978b4a6c003ea
Author: Yang Xia <[email protected]>
AuthorDate: Wed May 20 10:14:28 2026 -0700

    Add support in GLVs for steps taking traversals
---
 .../translator/DotNetTranslateVisitor.java         | 43 +++++++++++++++
 .../Process/Traversal/GraphTraversal.cs            | 10 ++++
 .../Gremlin.Net/Process/Traversal/GremlinLang.cs   | 13 ++++-
 .../src/Gremlin.Net/Process/Traversal/P.cs         | 10 ++++
 .../src/Gremlin.Net/Process/Traversal/TextP.cs     | 30 +++++++++++
 .../src/Gremlin.Net/Process/Traversal/__.cs        |  9 ++++
 .../Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs | 62 +++++++++++++++-------
 gremlin-go/driver/cucumber/gremlin.go              | 62 +++++++++++++++-------
 gremlin-go/driver/gremlinlang.go                   | 19 ++++++-
 .../language/translator/DotNetTranslateVisitor.ts  | 39 ++++++++++++++
 .../gremlin-javascript/lib/process/gremlin-lang.ts |  9 +++-
 .../gremlin-javascript/lib/process/traversal.ts    |  6 +++
 .../gremlin-javascript/test/cucumber/gremlin.js    | 62 +++++++++++++++-------
 .../python/gremlin_python/process/traversal.py     | 27 +++++++---
 .../src/main/python/tests/feature/gremlin.py       | 62 +++++++++++++++-------
 .../gremlin/language/translator/translations.json  | 10 ++--
 16 files changed, 385 insertions(+), 88 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
index 11546c6ca2..7ce385c925 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/translator/DotNetTranslateVisitor.java
@@ -962,6 +962,49 @@ public class DotNetTranslateVisitor extends 
AbstractTranslateVisitor {
         return handleGenerics(ctx);
     }
 
+    @Override
+    public Void visitTraversalMethod_property_Object(final 
GremlinParser.TraversalMethod_property_ObjectContext ctx) {
+        // Property(null) is ambiguous with Property(ITraversal) — cast null 
to IDictionary to disambiguate
+        if (ctx.genericMapNullableArgument().genericMapNullableLiteral() != 
null &&
+            
ctx.genericMapNullableArgument().genericMapNullableLiteral().nullLiteral() != 
null) {
+            visit(ctx.getChild(0));
+            sb.append("(");
+            sb.append("(IDictionary<object, object>) ");
+            visit(ctx.genericMapNullableArgument());
+            sb.append(")");
+            return null;
+        }
+        return super.visitTraversalMethod_property_Object(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_property_Cardinality_Object(final 
GremlinParser.TraversalMethod_property_Cardinality_ObjectContext ctx) {
+        // Property(Cardinality, null) — cast null to IDictionary to 
disambiguate
+        if (ctx.genericMapNullableArgument().genericMapNullableLiteral() != 
null &&
+            
ctx.genericMapNullableArgument().genericMapNullableLiteral().nullLiteral() != 
null) {
+            visit(ctx.getChild(0));
+            sb.append("(");
+            visit(ctx.traversalCardinality());
+            sb.append(", ");
+            sb.append("(IDictionary<object, object>) ");
+            visit(ctx.genericMapNullableArgument());
+            sb.append(")");
+            return null;
+        }
+        return super.visitTraversalMethod_property_Cardinality_Object(ctx);
+    }
+
+    @Override
+    public Void visitTraversalMethod_property_Traversal(final 
GremlinParser.TraversalMethod_property_TraversalContext ctx) {
+        // Property(ITraversal) — cast to ITraversal to disambiguate
+        visit(ctx.getChild(0));
+        sb.append("(");
+        sb.append("(ITraversal) ");
+        visit(ctx.nestedTraversal());
+        sb.append(")");
+        return null;
+    }
+
     @Override
     public Void 
visitTraversalMethod_property_Cardinality_Object_Object_Object(final 
GremlinParser.TraversalMethod_property_Cardinality_Object_Object_ObjectContext 
ctx) {
         if (ctx.genericArgumentVarargs() == null || 
ctx.genericArgumentVarargs().getChildCount() == 0) {
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs 
b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
index de01df3367..5f5852ec1d 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GraphTraversal.cs
@@ -1825,6 +1825,16 @@ namespace Gremlin.Net.Process.Traversal
             return Wrap<TStart, TEnd>(this);
         }
 
+        /// <summary>
+        ///     Adds the property step with a map-producing traversal to this 
<see cref="GraphTraversal{SType, EType}" />.
+        ///     The traversal must produce a Map whose entries become 
properties on the element.
+        /// </summary>
+        public GraphTraversal<TStart, TEnd> Property(ITraversal 
propertyTraversal)
+        {
+            GremlinLang.AddStep("property", propertyTraversal);
+            return Wrap<TStart, TEnd>(this);
+        }
+
 
         /// <summary>
         ///     Adds the propertyMap step to this <see 
cref="GraphTraversal{SType, EType}" />.
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GremlinLang.cs 
b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GremlinLang.cs
index 21115a8f8f..0425f99a29 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GremlinLang.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/GremlinLang.cs
@@ -25,6 +25,7 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Globalization;
+using System.Linq;
 using System.Numerics;
 using System.Text;
 using Gremlin.Net.Process.Traversal.Strategy;
@@ -417,11 +418,21 @@ namespace Gremlin.Net.Process.Traversal
                 }
                 else if (p.Value is IList listVal && (p.OperatorName == 
"within" || p.OperatorName == "without"))
                 {
-                    // within/without with a list value - render as [e1,e2,...]
+                    // within/without with a list value
                     if (listVal.Count == 0)
                     {
                         // empty within() - no brackets
                     }
+                    else if (listVal.Cast<object>().All(v => v is ITraversal))
+                    {
+                        // All elements are traversals - serialize as 
comma-separated args (no brackets)
+                        // This matches the server grammar: within(trav1, 
trav2) via genericArgumentVarargs
+                        for (int i = 0; i < listVal.Count; i++)
+                        {
+                            if (i > 0) sb.Append(',');
+                            sb.Append(ArgAsString(listVal[i]));
+                        }
+                    }
                     else
                     {
                         sb.Append('[');
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs 
b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
index fe33aec3e8..18f827a7ea 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/P.cs
@@ -157,12 +157,22 @@ namespace Gremlin.Net.Process.Traversal
 
         public static P Within(params object[]? args)
         {
+            if (args is { Length: 1 } && args[0] is ITraversal)
+                return new P("within", args[0]);
+            // Multiple traversals - store as list preserving ITraversal type 
for serializer detection
+            if (args is { Length: > 1 } && args.All(a => a is ITraversal))
+                return new P("within", new List<object>(args));
             var x = args is { Length: 1 } && args[0] is ICollection collection 
? collection : args;
             return new P("within", ToGenericList(x));
         }
 
         public static P Without(params object[]? args)
         {
+            if (args is { Length: 1 } && args[0] is ITraversal)
+                return new P("without", args[0]);
+            // Multiple traversals - store as list preserving ITraversal type 
for serializer detection
+            if (args is { Length: > 1 } && args.All(a => a is ITraversal))
+                return new P("without", new List<object>(args));
             var x = args is { Length: 1 } && args[0] is ICollection collection 
? collection : args;
             return new P("without", ToGenericList(x));
         }
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TextP.cs 
b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TextP.cs
index cc94f34681..8b0d81e134 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TextP.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/TextP.cs
@@ -51,31 +51,61 @@ namespace Gremlin.Net.Process.Traversal
             return new TextP("containing", value);
         }
 
+        public static P Containing(object value)
+        {
+            return new P("containing", value);
+        }
+
         public static TextP EndingWith(string value)
         {
             return new TextP("endingWith", value);
         }
 
+        public static P EndingWith(object value)
+        {
+            return new P("endingWith", value);
+        }
+
         public static TextP NotContaining(string value)
         {
             return new TextP("notContaining", value);
         }
 
+        public static P NotContaining(object value)
+        {
+            return new P("notContaining", value);
+        }
+
         public static TextP NotEndingWith(string value)
         {
             return new TextP("notEndingWith", value);
         }
 
+        public static P NotEndingWith(object value)
+        {
+            return new P("notEndingWith", value);
+        }
+
         public static TextP NotStartingWith(string value)
         {
             return new TextP("notStartingWith", value);
         }
 
+        public static P NotStartingWith(object value)
+        {
+            return new P("notStartingWith", value);
+        }
+
         public static TextP StartingWith(string value)
         {
             return new TextP("startingWith", value);
         }
 
+        public static P StartingWith(object value)
+        {
+            return new P("startingWith", value);
+        }
+
         public static TextP Regex(string value)
         {
             return new TextP("regex", value);
diff --git a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs 
b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
index b16732a61b..3ccccdd839 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Process/Traversal/__.cs
@@ -1256,6 +1256,15 @@ namespace Gremlin.Net.Process.Traversal
             return new GraphTraversal<object, object>().Property(map);
         }
 
+        /// <summary>
+        ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds 
the property step with a
+        ///     map-producing traversal to that traversal.
+        /// </summary>
+        public static GraphTraversal<object, object> Property(ITraversal 
propertyTraversal)
+        {
+            return new GraphTraversal<object, 
object>().Property(propertyTraversal);
+        }
+
         /// <summary>
         ///     Spawns a <see cref="GraphTraversal{SType, EType}" /> and adds 
the propertyMap step to that traversal.
         /// </summary>
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs 
b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
index 551f1be1f4..18751e5d7c 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/Gremlin.cs
@@ -535,7 +535,6 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_V_hasXname_VXvid1X_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", __.V(p["vid1"]).Values<object>("name"))}}, 
                {"g_V_hasXname_VXvid1X_outXknowsX_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", 
__.V(p["vid1"]).Out("knows").Values<object>("name"))}}, 
                {"g_V_hasXage_VXvid1X_outXknowsX_valuesXageXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("age", 
__.V(p["vid1"]).Out("knows").Values<object>("age"))}}, 
-               {"g_V_hasXname_VXvid1X_outXcreatedX_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", 
__.V(p["vid1"]).Out("created").Values<object>("name"))}}, 
                {"g_V_hasXname_VXvid1X_valuesXnonexistentXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", __.V(p["vid1"]).Values<object>("nonexistent"))}}, 
                {"g_V_hasXname_notXidentityXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", __.Not(__.Identity()))}}, 
                {"g_V_hasXage_gtXVXvid1X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("age", P.Gt(__.V(p["vid1"]).Values<object>("age")))}}, 
@@ -547,6 +546,14 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_V_hasXage_eqXVXvid1X_valuesXnonexistentXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("age", 
P.Eq(__.V(p["vid1"]).Values<object>("nonexistent")))}}, 
                {"g_V_hasXlabel_VXvid1X_labelXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has(T.Label, __.V(p["vid1"]).Label())}}, 
                {"g_V_hasXperson_name_VXvid1X_valuesXnameXX_age", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("person", "name", 
__.V(p["vid1"]).Values<object>("name")).Values<object>("age")}}, 
+               
{"g_V_hasXname_withinXVXvid1X_outXknowsX_valuesXnameX_constantXpeterXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", 
P.Within(__.V(p["vid1"]).Out("knows").Values<object>("name"), 
__.Constant<object>("peter")))}}, 
+               
{"g_V_hasXname_withinXVXvid1X_valuesXnonexistentX_constantXmarkoXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", 
P.Within(__.V(p["vid1"]).Values<object>("nonexistent"), 
__.Constant<object>("marko")))}}, 
+               
{"g_V_hasXname_withinXVXvid1X_valuesXnonexistentX_VXvid1X_valuesXnonexistentXXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", 
P.Within(__.V(p["vid1"]).Values<object>("nonexistent"), 
__.V(p["vid1"]).Values<object>("nonexistent")))}}, 
+               
{"g_V_hasXname_withoutXVXvid1X_valuesXnameX_VXvid2X_valuesXnameX_VXvid3X_valuesXnameXXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", P.Without(__.V(p["vid1"]).Values<object>("name"), 
__.V(p["vid2"]).Values<object>("name"), 
__.V(p["vid3"]).Values<object>("name")))}}, 
+               
{"g_V_hasXname_withinXVXvid1X_outXknowsX_valuesXnameX_VXvid3X_outXcreatedX_valuesXnameXXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", 
P.Within(__.V(p["vid1"]).Out("knows").Values<object>("name"), 
__.V(p["vid3"]).Out("created").Values<object>("name")))}}, 
+               
{"g_V_hasLabelXsoftwareX_hasXname_withoutXVXvid1X_outXcreatedX_valuesXnameX_VXvid3X_outXcreatedX_valuesXnameXXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().HasLabel("software").Has("name", 
P.Without(__.V(p["vid1"]).Out("created").Values<object>("name"), 
__.V(p["vid3"]).Out("created").Values<object>("name")))}}, 
+               
{"g_V_hasLabelXpersonX_valuesXageX_isXwithinXVXvid1X_valuesXageX_V_hasXname_lopX_inXcreatedX_valuesXageXXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().HasLabel("person").Values<object>("age").Is(P.Within(__.V(p["vid1"]).Values<object>("age"),
 __.V().Has("name", "lop").In("created").Values<object>("age")))}}, 
+               
{"g_VXvid1X_outEXknowsX_filterXinV_hasXname_withinXV_hasXname_lopX_inXcreatedX_valuesXnameX_V_hasXname_rippleX_inXcreatedX_valuesXnameXXXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).OutE("knows").Filter(__.InV().Has("name", 
P.Within(__.V().Has("name", "lop").In("created").Values<object>("name"), 
__.V().Has("name", "ripple").In("created").Values<object>("name"))))}}, 
                {"g_V_properties_hasValueXnullX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Properties<object>().HasValue((object) null)}}, 
                {"g_V_properties_hasValueXnull_nullX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Properties<object>().HasValue(null, null)}}, 
                {"g_V_properties_hasValueXnull_joshX_value", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Properties<object>().HasValue(null, "josh").Value<object>()}}, 
@@ -558,6 +565,26 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_V_valuesXageX_isXgte_29vaarX_isXlt_34varX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("age").Is(P.Gte(p["xx1"])).Is(P.Lt(p["xx2"]))}}, 
                {"g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Where(__.In("created").Count().Is(1)).Values<object>("name")}}, 
                {"g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Where(__.In("created").Count().Is(P.Gte(2))).Values<object>("name")}}, 
+               {"g_V_valuesXageX_isXVXvid1X_valuesXageXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Is(__.V(p["vid1"]).Values<object>("age"))}}, 
+               {"g_V_valuesXnameX_isXVXvid1X_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("name").Is(__.V(p["vid1"]).Values<object>("name"))}}, 
+               {"g_V_valuesXageX_isXgtXVXvid1X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Is(P.Gt(__.V(p["vid1"]).Values<object>("age")))}},
 
+               {"g_V_valuesXageX_isXltXVXvid3X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Is(P.Lt(__.V(p["vid3"]).Values<object>("age")))}},
 
+               {"g_V_valuesXageX_isXneqXVXvid4X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Is(P.Neq(__.V(p["vid4"]).Values<object>("age")))}},
 
+               {"g_V_valuesXageX_isXwithinXVXvid1X_outXknowsX_valuesXageXXX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Is(P.Within(__.V(p["vid1"]).Out("knows").Values<object>("age")))}},
 
+               {"g_V_valuesXageX_isXVXvid1X_valuesXnonexistentXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Is(__.V(p["vid1"]).Values<object>("nonexistent"))}},
 
+               
{"g_V_hasLabelXpersonX_valuesXageX_chooseXgtXVXvid1X_valuesXageXX_olderX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().HasLabel("person").Values<object>("age").Choose<object>(P.Gt(__.V(p["vid1"]).Values<object>("age")),
 __.Constant<object>("older than marko"), __.Constant<object>("not older"))}}, 
+               {"g_V_hasLabelXpersonX_valuesXageX_chooseXgteXmeanAgeX_aboveX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().HasLabel("person").Values<object>("age").Choose<object>(P.Gte(__.V().HasLabel("person").Values<object>("age").Mean<object>()),
 __.Constant<object>("above average"), __.Constant<object>("below average"))}}, 
+               
{"g_VXvid1X_outXknowsX_valuesXageX_fold_allXgteXVXvid2X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).Out("knows").Values<object>("age").Fold().All(P.Gte(__.V(p["vid2"]).Values<object>("age")))}},
 
+               
{"g_VXvid1X_outXknowsX_valuesXageX_fold_allXgtXVXvid2X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).Out("knows").Values<object>("age").Fold().All(P.Gt(__.V(p["vid2"]).Values<object>("age")))}},
 
+               
{"g_VXvid1X_outXknowsX_valuesXageX_fold_anyXeqXVXvid3X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).Out("knows").Values<object>("age").Fold().Any(P.Eq(__.V(p["vid3"]).Values<object>("age")))}},
 
+               
{"g_VXvid1X_outXknowsX_valuesXageX_fold_noneXeqXVXvid4X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).Out("knows").Values<object>("age").Fold().None(P.Eq(__.V(p["vid4"]).Values<object>("age")))}},
 
+               
{"g_VXvid1X_outXknowsX_valuesXageX_fold_noneXeqXVXvid3X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).Out("knows").Values<object>("age").Fold().None(P.Eq(__.V(p["vid3"]).Values<object>("age")))}},
 
+               {"g_injectXnullX_isXeqXV9999_valuesXnameXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(null).Is(P.Eq(__.V(9999).Values<object>("name")))}}, 
+               {"g_injectXmarkoX_isXV9999_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>("marko").Is(__.V(9999).Values<object>("name"))}}, 
+               
{"g_injectXmarkoX_chooseXeqXV9999_valuesXnameXX_matched_unmatchedX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.Inject<object>("marko").Choose<object>(P.Eq(__.V(9999).Values<object>("name")),
 __.Constant<object>("matched"), __.Constant<object>("unmatched"))}}, 
+               {"g_injectXlistX_noneXeqXV9999_valuesXnameXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(new List<object> { "marko", "josh" 
}).None(P.Eq(__.V(9999).Values<object>("name")))}}, 
+               {"g_V_hasXname_eqXV9999_valuesXnameXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Has("name", P.Eq(__.V(9999).Values<object>("name")))}}, 
+               
{"g_V_valuesXageX_isXwithoutXVXvid1X_valuesXageX_VXvid2X_valuesXageXXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Is(P.Without(__.V(p["vid1"]).Values<object>("age"),
 __.V(p["vid2"]).Values<object>("age")))}}, 
                {"g_V_valuesXageX_noneXgtX32XX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Values<object>("age").None(P.Gt(32))}}, 
                {"g_V_valuesXageX_whereXisXP_gtX33XXX_fold_noneXlteX33XX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Where(__.Is(P.Gt(33))).Fold().None(P.Lte(33))}}, 
                {"g_V_valuesXageX_order_byXdescX_fold_noneXltX10XX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V().Values<object>("age").Order().By(Order.Desc).Fold().None(P.Lt(10))}}, 
@@ -1793,14 +1820,14 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_V_localXoutE_foldX_unfold", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().Local<object>(__.OutE().Fold()).Unfold<object>()}}, 
                {"g_V_valueMap_unfold_mapXselectXkeysXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V().ValueMap<object, 
object>().Unfold<object>().Map<object>(__.Select<object>(Column.Keys))}}, 
                
{"g_VX1X_repeatXboth_simplePathX_untilXhasIdX6XX_path_byXnameX_unfold", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).Repeat(__.Both().SimplePath()).Until(__.HasId(p["vid6"])).Path().By("name").Unfold<object>()}},
 
-               
{"g_VXvid1X_outXcreatedX_asXsoftwareX_V_hasXname_selectXsoftwareX_valuesXnameXX_inXcreatedX_name",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Out("created").As("sw").V().Has("name", 
__.Select<object>("sw").Values<object>("name")).In("created").Values<object>("name")}},
 
+               {"g_VXvid1X_id_VXidentityX_name", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Id().V(__.Identity()).Values<object>("name")}}, 
+               {"g_VXvid1_vid2X_id_VXidentityX_name", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"], 
p["vid2"]).Id().V(__.Identity()).Values<object>("name")}}, 
+               
{"g_VXvid1X_id_asXbookmarkX_V_hasXname_joshX_VXselectXbookmarkXX_name", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Id().As("bookmark").V().Has("name", 
"josh").V(__.Select<object>("bookmark")).Values<object>("name")}}, 
                {"g_VXvid1X_VXoutXknowsX_idX_name", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).V(__.Out("knows").Id()).Values<object>("name")}}, 
-               {"g_VXvid1X_VXoutXknowsX_hasXname_joshX_idX_valuesXageX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).V(__.Out("knows").Has("name", 
"josh").Id()).Values<object>("age")}}, 
-               {"g_VXvid1X_VXoutXknowsX_outXknowsX_idX_name", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid1"]).V(__.Out("knows").Out("knows").Id()).Values<object>("name")}}, 
-               {"g_VXvid1X_VXoutXcreatedX_idX_valuesXlangX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).V(__.Out("created").Id()).Values<object>("lang")}}, 
                {"g_VXvid1X_EXoutE_idX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V(p["vid1"]).E(__.OutE().Id())}}, 
-               {"g_VXvid1X_EXoutEXknowsX_hasXweight_05X_idX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).E(__.OutE("knows").Has("weight", 0.5d).Id())}}, 
-               {"g_VXvid1X_EXoutXknowsX_outXknowsX_outE_idX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).E(__.Out("knows").Out("knows").OutE().Id())}}, 
+               {"g_injectX9999X_VXidentityX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(9999).V(__.Identity())}}, 
+               {"g_VXvid1X_outEXknowsX_hasXinV_name_vadasX_id_EXidentityX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).OutE("knows").Filter(__.InV().Has("name", 
"vadas")).Id().E(__.Identity())}}, 
+               {"g_injectX9999X_EXidentityX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(9999).E(__.Identity())}}, 
                {"g_VXVXvid1X_idX_name", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.V(__.V(p["vid1"]).Id()).Values<object>("name")}}, 
                {"g_EXVXvid1X_outE_idX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.E(__.V(p["vid1"]).OutE().Id())}}, 
                {"g_V_valueMap", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.V().ValueMap<object, 
object>()}}, 
@@ -2124,17 +2151,16 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
                {"g_injectX1_3_100_300X_list", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(new List<object> { 1, 3, 100, 300 })}}, 
                {"g_injectX1_3_100_300X_set", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Inject<object>(new HashSet<object> { 1, 3, 100, 300 })}}, 
                {"g_injectX1_1X_set", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) =>g.Inject<object>(new 
HashSet<object> { 1, 1 })}}, 
-               {"g_VXvid2X_propertyXalias_VXvid1X_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid2"]).Property("alias", 
__.V(p["vid1"]).Values<object>("name")), (g,p) =>g.V().Has("alias", "marko")}}, 
-               {"g_VXvid1X_propertyXcreatorCount_VXvid1X_inXcreatedX_countX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Property("creatorCount", 
__.V(p["vid1"]).In("created").Count()), (g,p) =>g.V().Has("creatorCount", 
3l)}}, 
-               {"g_VXvid1X_propertyXknownCount_outXknowsX_countX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Property("knownCount", __.Out("knows").Count()), (g,p) 
=>g.V().Has("knownCount", 2l)}}, 
-               {"g_VXvid1X_propertyXcreator_inXcreatedX_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Property("creator", 
__.In("created").Values<object>("name")), (g,p) =>g.V().Has("creator")}}, 
-               
{"g_VXvid2X_propertyXVXvid1X_projectXfriendCount_softwareCreatedXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid2"]).Property(__.V(p["vid1"]).Project<object>("friendCount", 
"softwareCreated").By(__.Out("knows").Count()).By(__.Out("created").Values<object>("name"))),
 (g,p) =>g.V().Has("friendCount", 2l), (g,p) =>g.V().Has("softwareCreated", 
"lop")}}, 
-               
{"g_VXvid2X_propertyXVXvid1X_projectXoriginalName_originalLabelX_byXnameX_byXlabelXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) 
=>g.V(p["vid2"]).Property(__.V(p["vid1"]).Project<object>("originalName", 
"originalLabel").By(__.Values<object>("name")).By(__.Label())), (g,p) 
=>g.V(p["vid2"]).Has("originalName", "marko"), (g,p) 
=>g.V(p["vid2"]).Has("originalLabel", "person")}}, 
-               {"g_VXvid1X_propertyXlist_friends_outXknowsX_valuesXnameXX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Property(Cardinality.List, "friends", 
__.Out("knows").Values<object>("name")), (g,p) 
=>g.V(p["vid1"]).Properties<object>("friends")}}, 
-               {"g_VXvid1X_propertyXlist_creators_inXcreatedX_valuesXnameXX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Property(Cardinality.List, "creators", 
__.In("created").Values<object>("name")), (g,p) 
=>g.V(p["vid1"]).Properties<object>("creators")}}, 
-               {"g_VXvid1X_propertyXset_langs_outXcreatedX_valuesXlangXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Property(Cardinality.Set, "langs", 
__.Out("created").Values<object>("lang")), (g,p) 
=>g.V(p["vid1"]).Properties<object>("langs")}}, 
-               {"g_VXvid1X_propertyXsingle_friend_outXknowsX_valuesXnameXX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Property(Cardinality.Single, "friend", 
__.Out("knows").Values<object>("name"))}}, 
-               {"g_VXvid1X_propertyXVXvid1X_groupX_byXidX_byXvaluesXnameXXX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.V(p["vid1"]).Property(__.V(p["vid1"]).Group<object, 
object>().By(__.Id()).By(__.Values<object>("name")))}}, 
+               {"g_VXvid2X_propertyXalias_VXvid1X_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).AddV((string) "person").Property("name", "vadas").Property("age", 
27).AddV((string) "software").Property("name", "lop").Property("lang", 
"java").AddV((string) "person").Property("name", "josh").Property("age", 
32).AddV((string) "person").Property("name", "peter").Pro [...]
+               {"g_VXvid1X_propertyXcreatorCount_VXvid1X_inXcreatedX_countX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).As("marko").AddV((string) "person").Property("name", 
"vadas").Property("age", 27).AddV((string) "software").Property("name", 
"lop").Property("lang", "java").As("lop").AddV((string) 
"person").Property("name", "josh").Property("age", 32).As("josh").AddV((st [...]
+               {"g_VXvid1X_propertyXknownCount_outXknowsX_countX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).As("marko").AddV((string) "person").Property("name", 
"vadas").Property("age", 27).As("vadas").AddV((string) 
"software").Property("name", "lop").Property("lang", "java").AddV((string) 
"person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) 
"pe [...]
+               {"g_VXvid1X_propertyXcreator_inXcreatedX_valuesXnameXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).As("marko").AddV((string) "person").Property("name", 
"vadas").Property("age", 27).AddV((string) "software").Property("name", 
"lop").Property("lang", "java").As("lop").AddV((string) 
"person").Property("name", "josh").Property("age", 32).As("josh").AddV((string) 
 [...]
+               
{"g_VXvid2X_propertyXVXvid1X_projectXfriendCount_softwareCreatedXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).As("marko").AddV((string) "person").Property("name", 
"vadas").Property("age", 27).As("vadas").AddV((string) 
"software").Property("name", "lop").Property("lang", 
"java").As("lop").AddV((string) "person").Property("name", 
"josh").Property("age", 32).A [...]
+               
{"g_VXvid2X_propertyXVXvid1X_projectXoriginalName_originalLabelX_byXnameX_byXlabelXX",
 new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).As("marko").AddV((string) "person").Property("name", 
"vadas").Property("age", 27).AddV((string) "software").Property("name", 
"lop").Property("lang", "java").As("lop").AddV((string) 
"person").Property("name", "josh").Property("age", [...]
+               {"g_VXvid1X_propertyXlist_friends_outXknowsX_valuesXnameXX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).As("marko").AddV((string) "person").Property("name", 
"vadas").Property("age", 27).As("vadas").AddV((string) 
"software").Property("name", "lop").Property("lang", "java").AddV((string) 
"person").Property("name", "josh").Property("age", 32).As("josh").AddV((st [...]
+               {"g_VXvid1X_propertyXset_langs_outXcreatedX_valuesXlangXX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).AddV((string) "person").Property("name", "vadas").Property("age", 
27).AddV((string) "software").Property("name", "lop").Property("lang", 
"java").As("lop").AddV((string) "person").Property("name", 
"josh").Property("age", 32).As("josh").AddV((string) "person") [...]
+               {"g_VXvid1X_propertyXsingle_friend_outXknowsX_valuesXnameXX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29).As("marko").AddV((string) "person").Property("name", 
"vadas").Property("age", 27).As("vadas").AddV((string) 
"software").Property("name", "lop").Property("lang", "java").AddV((string) 
"person").Property("name", "josh").Property("age", 32).As("josh").AddV((s [...]
+               {"g_VXvid1X_propertyXVXvid1X_groupX_byXidX_byXvaluesXnameXXX", 
new List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.AddV((string) "person").Property("name", "marko").Property("age", 
29), (g,p) =>g.V(p["vid1"]).Property((ITraversal) __.V(p["vid1"]).Group<object, 
object>().By(__.Id()).By(__.Values<object>("name")))}}, 
                {"g_io_readXkryoX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.Io<object>("data/tinkerpop-modern.kryo").Read(), (g,p) =>g.V(), (g,p) 
=>g.E()}}, 
                {"g_io_read_withXreader_gryoX", new 
List<Func<GraphTraversalSource, IDictionary<string, object>, ITraversal>> 
{(g,p) =>g.Io<object>("data/tinkerpop-modern.kryo").With(IO.Reader, 
IO.Gryo).Read(), (g,p) =>g.V(), (g,p) =>g.E()}}, 
                {"g_io_readXgraphsonX", new List<Func<GraphTraversalSource, 
IDictionary<string, object>, ITraversal>> {(g,p) 
=>g.Io<object>("data/tinkerpop-modern.json").Read(), (g,p) =>g.V(), (g,p) 
=>g.E()}}, 
diff --git a/gremlin-go/driver/cucumber/gremlin.go 
b/gremlin-go/driver/cucumber/gremlin.go
index 1189ce067e..97d7f95574 100644
--- a/gremlin-go/driver/cucumber/gremlin.go
+++ b/gremlin-go/driver/cucumber/gremlin.go
@@ -505,7 +505,6 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_V_hasXname_VXvid1X_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.T__.V(p["vid1"]).Values("name"))}}, 
     "g_V_hasXname_VXvid1X_outXknowsX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.T__.V(p["vid1"]).Out("knows").Values("name"))}}, 
     "g_V_hasXage_VXvid1X_outXknowsX_valuesXageXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("age", 
gremlingo.T__.V(p["vid1"]).Out("knows").Values("age"))}}, 
-    "g_V_hasXname_VXvid1X_outXcreatedX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.T__.V(p["vid1"]).Out("created").Values("name"))}}, 
     "g_V_hasXname_VXvid1X_valuesXnonexistentXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.T__.V(p["vid1"]).Values("nonexistent"))}}, 
     "g_V_hasXname_notXidentityXX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.T__.Not(gremlingo.T__.Identity()))}}, 
     "g_V_hasXage_gtXVXvid1X_valuesXageXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("age", 
gremlingo.P.Gt(gremlingo.T__.V(p["vid1"]).Values("age")))}}, 
@@ -517,6 +516,14 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_V_hasXage_eqXVXvid1X_valuesXnonexistentXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("age", 
gremlingo.P.Eq(gremlingo.T__.V(p["vid1"]).Values("nonexistent")))}}, 
     "g_V_hasXlabel_VXvid1X_labelXX": {func(g *gremlingo.GraphTraversalSource, 
p map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().Has(gremlingo.T.Label, gremlingo.T__.V(p["vid1"]).Label())}}, 
     "g_V_hasXperson_name_VXvid1X_valuesXnameXX_age": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("person", "name", 
gremlingo.T__.V(p["vid1"]).Values("name")).Values("age")}}, 
+    "g_V_hasXname_withinXVXvid1X_outXknowsX_valuesXnameX_constantXpeterXXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.P.Within(gremlingo.T__.V(p["vid1"]).Out("knows").Values("name"), 
gremlingo.T__.Constant("peter")))}}, 
+    "g_V_hasXname_withinXVXvid1X_valuesXnonexistentX_constantXmarkoXXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.P.Within(gremlingo.T__.V(p["vid1"]).Values("nonexistent"), 
gremlingo.T__.Constant("marko")))}}, 
+    
"g_V_hasXname_withinXVXvid1X_valuesXnonexistentX_VXvid1X_valuesXnonexistentXXX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.P.Within(gremlingo.T__.V(p["vid1"]).Values("nonexistent"), 
gremlingo.T__.V(p["vid1"]).Values("nonexistent")))}}, 
+    
"g_V_hasXname_withoutXVXvid1X_valuesXnameX_VXvid2X_valuesXnameX_VXvid3X_valuesXnameXXX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.P.Without(gremlingo.T__.V(p["vid1"]).Values("name"), 
gremlingo.T__.V(p["vid2"]).Values("name"), 
gremlingo.T__.V(p["vid3"]).Values("name")))}}, 
+    
"g_V_hasXname_withinXVXvid1X_outXknowsX_valuesXnameX_VXvid3X_outXcreatedX_valuesXnameXXX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.P.Within(gremlingo.T__.V(p["vid1"]).Out("knows").Values("name"), 
gremlingo.T__.V(p["vid3"]).Out("created").Values("name")))}}, 
+    
"g_V_hasLabelXsoftwareX_hasXname_withoutXVXvid1X_outXcreatedX_valuesXnameX_VXvid3X_outXcreatedX_valuesXnameXXX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().HasLabel("software").Has("name", 
gremlingo.P.Without(gremlingo.T__.V(p["vid1"]).Out("created").Values("name"), 
gremlingo.T__.V(p["vid3"]).Out("created").Values("name")))}}, 
+    
"g_V_hasLabelXpersonX_valuesXageX_isXwithinXVXvid1X_valuesXageX_V_hasXname_lopX_inXcreatedX_valuesXageXXX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().HasLabel("person").Values("age").Is(gremlingo.P.Within(gremlingo.T__.V(p["vid1"]).Values("age"),
 gremlingo.T__.V().Has("name", "lop").In("created").Values("age")))}}, 
+    
"g_VXvid1X_outEXknowsX_filterXinV_hasXname_withinXV_hasXname_lopX_inXcreatedX_valuesXnameX_V_hasXname_rippleX_inXcreatedX_valuesXnameXXXX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).OutE("knows").Filter(gremlingo.T__.InV().Has("name", 
gremlingo.P.Within(gremlingo.T__.V().Has("name", 
"lop").In("created").Values("name"), gremlingo.T__.V().Has("name", 
"ripple").In("created").Values("name"))))}}, 
     "g_V_properties_hasValueXnullX": {func(g *gremlingo.GraphTraversalSource, 
p map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().Properties().HasValue(nil)}}, 
     "g_V_properties_hasValueXnull_nullX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Properties().HasValue(nil, nil)}}, 
     "g_V_properties_hasValueXnull_joshX_value": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Properties().HasValue(nil, 
"josh").Value()}}, 
@@ -528,6 +535,26 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_V_valuesXageX_isXgte_29vaarX_isXlt_34varX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.P.Gte(p["xx1"])).Is(gremlingo.P.Lt(p["xx2"]))}},
 
     "g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Where(gremlingo.T__.In("created").Count().Is(1)).Values("name")}}, 
     "g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Where(gremlingo.T__.In("created").Count().Is(gremlingo.P.Gte(2))).Values("name")}},
 
+    "g_V_valuesXageX_isXVXvid1X_valuesXageXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.T__.V(p["vid1"]).Values("age"))}}, 
+    "g_V_valuesXnameX_isXVXvid1X_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("name").Is(gremlingo.T__.V(p["vid1"]).Values("name"))}}, 
+    "g_V_valuesXageX_isXgtXVXvid1X_valuesXageXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.P.Gt(gremlingo.T__.V(p["vid1"]).Values("age")))}},
 
+    "g_V_valuesXageX_isXltXVXvid3X_valuesXageXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.P.Lt(gremlingo.T__.V(p["vid3"]).Values("age")))}},
 
+    "g_V_valuesXageX_isXneqXVXvid4X_valuesXageXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.P.Neq(gremlingo.T__.V(p["vid4"]).Values("age")))}},
 
+    "g_V_valuesXageX_isXwithinXVXvid1X_outXknowsX_valuesXageXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.P.Within(gremlingo.T__.V(p["vid1"]).Out("knows").Values("age")))}},
 
+    "g_V_valuesXageX_isXVXvid1X_valuesXnonexistentXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.T__.V(p["vid1"]).Values("nonexistent"))}}, 
+    "g_V_hasLabelXpersonX_valuesXageX_chooseXgtXVXvid1X_valuesXageXX_olderX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().HasLabel("person").Values("age").Choose(gremlingo.P.Gt(gremlingo.T__.V(p["vid1"]).Values("age")),
 gremlingo.T__.Constant("older than marko"), gremlingo.T__.Constant("not 
older"))}}, 
+    "g_V_hasLabelXpersonX_valuesXageX_chooseXgteXmeanAgeX_aboveX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().HasLabel("person").Values("age").Choose(gremlingo.P.Gte(gremlingo.T__.V().HasLabel("person").Values("age").Mean()),
 gremlingo.T__.Constant("above average"), gremlingo.T__.Constant("below 
average"))}}, 
+    "g_VXvid1X_outXknowsX_valuesXageX_fold_allXgteXVXvid2X_valuesXageXXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Out("knows").Values("age").Fold().All(gremlingo.P.Gte(gremlingo.T__.V(p["vid2"]).Values("age")))}},
 
+    "g_VXvid1X_outXknowsX_valuesXageX_fold_allXgtXVXvid2X_valuesXageXXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Out("knows").Values("age").Fold().All(gremlingo.P.Gt(gremlingo.T__.V(p["vid2"]).Values("age")))}},
 
+    "g_VXvid1X_outXknowsX_valuesXageX_fold_anyXeqXVXvid3X_valuesXageXXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Out("knows").Values("age").Fold().Any(gremlingo.P.Eq(gremlingo.T__.V(p["vid3"]).Values("age")))}},
 
+    "g_VXvid1X_outXknowsX_valuesXageX_fold_noneXeqXVXvid4X_valuesXageXXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Out("knows").Values("age").Fold().None(gremlingo.P.Eq(gremlingo.T__.V(p["vid4"]).Values("age")))}},
 
+    "g_VXvid1X_outXknowsX_valuesXageX_fold_noneXeqXVXvid3X_valuesXageXXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Out("knows").Values("age").Fold().None(gremlingo.P.Eq(gremlingo.T__.V(p["vid3"]).Values("age")))}},
 
+    "g_injectXnullX_isXeqXV9999_valuesXnameXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.Inject(nil).Is(gremlingo.P.Eq(gremlingo.T__.V(9999).Values("name")))}}, 
+    "g_injectXmarkoX_isXV9999_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.Inject("marko").Is(gremlingo.T__.V(9999).Values("name"))}}, 
+    "g_injectXmarkoX_chooseXeqXV9999_valuesXnameXX_matched_unmatchedX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.Inject("marko").Choose(gremlingo.P.Eq(gremlingo.T__.V(9999).Values("name")), 
gremlingo.T__.Constant("matched"), gremlingo.T__.Constant("unmatched"))}}, 
+    "g_injectXlistX_noneXeqXV9999_valuesXnameXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.Inject([]interface{}{"marko", 
"josh"}).None(gremlingo.P.Eq(gremlingo.T__.V(9999).Values("name")))}}, 
+    "g_V_hasXname_eqXV9999_valuesXnameXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("name", 
gremlingo.P.Eq(gremlingo.T__.V(9999).Values("name")))}}, 
+    "g_V_valuesXageX_isXwithoutXVXvid1X_valuesXageX_VXvid2X_valuesXageXXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Is(gremlingo.P.Without(gremlingo.T__.V(p["vid1"]).Values("age"),
 gremlingo.T__.V(p["vid2"]).Values("age")))}}, 
     "g_V_valuesXageX_noneXgtX32XX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().Values("age").None(gremlingo.P.Gt(32))}}, 
     "g_V_valuesXageX_whereXisXP_gtX33XXX_fold_noneXlteX33XX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Where(gremlingo.T__.Is(gremlingo.P.Gt(33))).Fold().None(gremlingo.P.Lte(33))}},
 
     "g_V_valuesXageX_order_byXdescX_fold_noneXltX10XX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().Values("age").Order().By(gremlingo.Order.Desc).Fold().None(gremlingo.P.Lt(10))}},
 
@@ -1763,14 +1790,14 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_V_localXoutE_foldX_unfold": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().Local(gremlingo.T__.OutE().Fold()).Unfold()}}, 
     "g_V_valueMap_unfold_mapXselectXkeysXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V().ValueMap().Unfold().Map(gremlingo.T__.Select(gremlingo.Column.Keys))}}, 
     "g_VX1X_repeatXboth_simplePathX_untilXhasIdX6XX_path_byXnameX_unfold": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Repeat(gremlingo.T__.Both().SimplePath()).Until(gremlingo.T__.HasId(p["vid6"])).Path().By("name").Unfold()}},
 
-    
"g_VXvid1X_outXcreatedX_asXsoftwareX_V_hasXname_selectXsoftwareX_valuesXnameXX_inXcreatedX_name":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Out("created").As("sw").V().Has("name", 
gremlingo.T__.Select("sw").Values("name")).In("created").Values("name")}}, 
+    "g_VXvid1X_id_VXidentityX_name": {func(g *gremlingo.GraphTraversalSource, 
p map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Id().V(gremlingo.T__.Identity()).Values("name")}}, 
+    "g_VXvid1_vid2X_id_VXidentityX_name": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid1"], 
p["vid2"]).Id().V(gremlingo.T__.Identity()).Values("name")}}, 
+    "g_VXvid1X_id_asXbookmarkX_V_hasXname_joshX_VXselectXbookmarkXX_name": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Id().As("bookmark").V().Has("name", 
"josh").V(gremlingo.T__.Select("bookmark")).Values("name")}}, 
     "g_VXvid1X_VXoutXknowsX_idX_name": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).V(gremlingo.T__.Out("knows").Id()).Values("name")}}, 
-    "g_VXvid1X_VXoutXknowsX_hasXname_joshX_idX_valuesXageX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).V(gremlingo.T__.Out("knows").Has("name", 
"josh").Id()).Values("age")}}, 
-    "g_VXvid1X_VXoutXknowsX_outXknowsX_idX_name": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).V(gremlingo.T__.Out("knows").Out("knows").Id()).Values("name")}},
 
-    "g_VXvid1X_VXoutXcreatedX_idX_valuesXlangX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).V(gremlingo.T__.Out("created").Id()).Values("lang")}}, 
     "g_VXvid1X_EXoutE_idX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V(p["vid1"]).E(gremlingo.T__.OutE().Id())}}, 
-    "g_VXvid1X_EXoutEXknowsX_hasXweight_05X_idX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).E(gremlingo.T__.OutE("knows").Has("weight", 0.5).Id())}}, 
-    "g_VXvid1X_EXoutXknowsX_outXknowsX_outE_idX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).E(gremlingo.T__.Out("knows").Out("knows").OutE().Id())}}, 
+    "g_injectX9999X_VXidentityX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(9999).V(gremlingo.T__.Identity())}}, 
+    "g_VXvid1X_outEXknowsX_hasXinV_name_vadasX_id_EXidentityX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).OutE("knows").Filter(gremlingo.T__.InV().Has("name", 
"vadas")).Id().E(gremlingo.T__.Identity())}}, 
+    "g_injectX9999X_EXidentityX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(9999).E(gremlingo.T__.Identity())}}, 
     "g_VXVXvid1X_idX_name": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V(gremlingo.T__.V(p["vid1"]).Id()).Values("name")}}, 
     "g_EXVXvid1X_outE_idX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.E(gremlingo.T__.V(p["vid1"]).OutE().Id())}}, 
     "g_V_valueMap": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V().ValueMap()}}, 
@@ -2094,17 +2121,16 @@ var translationMap = map[string][]func(g 
*gremlingo.GraphTraversalSource, p map[
     "g_injectX1_3_100_300X_list": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject([]interface{}{1, 3, 100, 300})}}, 
     "g_injectX1_3_100_300X_set": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(gremlingo.NewSimpleSet(1, 3, 100, 300))}}, 
     "g_injectX1_1X_set": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Inject(gremlingo.NewSimpleSet(1, 1))}}, 
-    "g_VXvid2X_propertyXalias_VXvid1X_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid2"]).Property("alias", 
gremlingo.T__.V(p["vid1"]).Values("name"))}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("alias", "marko")}}, 
-    "g_VXvid1X_propertyXcreatorCount_VXvid1X_inXcreatedX_countX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid1"]).Property("creatorCount", 
gremlingo.T__.V(p["vid1"]).In("created").Count())}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("creatorCount", int64(3))}}, 
-    "g_VXvid1X_propertyXknownCount_outXknowsX_countX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid1"]).Property("knownCount", 
gremlingo.T__.Out("knows").Count())}, func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V().Has("knownCount", int64(2))}}, 
-    "g_VXvid1X_propertyXcreator_inXcreatedX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid1"]).Property("creator", 
gremlingo.T__.In("created").Values("name"))}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("creator")}}, 
-    "g_VXvid2X_propertyXVXvid1X_projectXfriendCount_softwareCreatedXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid2"]).Property(gremlingo.T__.V(p["vid1"]).Project("friendCount", 
"softwareCreated").By(gremlingo.T__.Out("knows").Count()).By(gremlingo.T__.Out("created").Values("name")))},
 func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V().Has("friendCount", int64(2))}, [...]
-    
"g_VXvid2X_propertyXVXvid1X_projectXoriginalName_originalLabelX_byXnameX_byXlabelXX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid2"]).Property(gremlingo.T__.V(p["vid1"]).Project("originalName", 
"originalLabel").By(gremlingo.T__.Values("name")).By(gremlingo.T__.Label()))}, 
func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid2"]).Has("originalName", "marko")}, 
f [...]
-    "g_VXvid1X_propertyXlist_friends_outXknowsX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Property(gremlingo.Cardinality.List, "friends", 
gremlingo.T__.Out("knows").Values("name"))}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid1"]).Properties("friends")}}, 
-    "g_VXvid1X_propertyXlist_creators_inXcreatedX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Property(gremlingo.Cardinality.List, "creators", 
gremlingo.T__.In("created").Values("name"))}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid1"]).Properties("creators")}}, 
-    "g_VXvid1X_propertyXset_langs_outXcreatedX_valuesXlangXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Property(gremlingo.Cardinality.Set, "langs", 
gremlingo.T__.Out("created").Values("lang"))}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V(p["vid1"]).Properties("langs")}}, 
-    "g_VXvid1X_propertyXsingle_friend_outXknowsX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Property(gremlingo.Cardinality.Single, "friend", 
gremlingo.T__.Out("knows").Values("name"))}}, 
-    "g_VXvid1X_propertyXVXvid1X_groupX_byXidX_byXvaluesXnameXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Property(gremlingo.T__.V(p["vid1"]).Group().By(gremlingo.T__.Id()).By(gremlingo.T__.Values("name")))}},
 
+    "g_VXvid2X_propertyXalias_VXvid1X_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).AddV("person").Property("name", 
"vadas").Property("age", 27).AddV("software").Property("name", 
"lop").Property("lang", "java").AddV("person").Property("name", 
"josh").Property("age", 32).AddV("person").Property("name", 
"peter").Property("age", 35).AddV("software").Property( [...]
+    "g_VXvid1X_propertyXcreatorCount_VXvid1X_inXcreatedX_countX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).As("marko").AddV("person").Property("name", 
"vadas").Property("age", 27).AddV("software").Property("name", 
"lop").Property("lang", "java").As("lop").AddV("person").Property("name", 
"josh").Property("age", 32).As("josh").AddV("person").Property("name", 
"peter").P [...]
+    "g_VXvid1X_propertyXknownCount_outXknowsX_countX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).As("marko").AddV("person").Property("name", 
"vadas").Property("age", 27).As("vadas").AddV("software").Property("name", 
"lop").Property("lang", "java").AddV("person").Property("name", 
"josh").Property("age", 32).As("josh").AddV("person").Property("name", 
"peter").Property(" [...]
+    "g_VXvid1X_propertyXcreator_inXcreatedX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).As("marko").AddV("person").Property("name", 
"vadas").Property("age", 27).AddV("software").Property("name", 
"lop").Property("lang", "java").As("lop").AddV("person").Property("name", 
"josh").Property("age", 32).As("josh").AddV("person").Property("name", 
"peter").Propert [...]
+    "g_VXvid2X_propertyXVXvid1X_projectXfriendCount_softwareCreatedXX": 
{func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).As("marko").AddV("person").Property("name", 
"vadas").Property("age", 27).As("vadas").AddV("software").Property("name", 
"lop").Property("lang", "java").As("lop").AddV("person").Property("name", 
"josh").Property("age", 32).As("josh").AddV("person").Property( [...]
+    
"g_VXvid2X_propertyXVXvid1X_projectXoriginalName_originalLabelX_byXnameX_byXlabelXX":
 {func(g *gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).As("marko").AddV("person").Property("name", 
"vadas").Property("age", 27).AddV("software").Property("name", 
"lop").Property("lang", "java").As("lop").AddV("person").Property("name", 
"josh").Property("age", 32).AddV("person").Property("name [...]
+    "g_VXvid1X_propertyXlist_friends_outXknowsX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).As("marko").AddV("person").Property("name", 
"vadas").Property("age", 27).As("vadas").AddV("software").Property("name", 
"lop").Property("lang", "java").AddV("person").Property("name", 
"josh").Property("age", 32).As("josh").AddV("person").Property("name", 
"peter").P [...]
+    "g_VXvid1X_propertyXset_langs_outXcreatedX_valuesXlangXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).AddV("person").Property("name", 
"vadas").Property("age", 27).AddV("software").Property("name", 
"lop").Property("lang", "java").As("lop").AddV("person").Property("name", 
"josh").Property("age", 32).As("josh").AddV("person").Property("name", 
"peter").Property("age",  [...]
+    "g_VXvid1X_propertyXsingle_friend_outXknowsX_valuesXnameXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29).As("marko").AddV("person").Property("name", 
"vadas").Property("age", 27).As("vadas").AddV("software").Property("name", 
"lop").Property("lang", "java").AddV("person").Property("name", 
"josh").Property("age", 32).As("josh").AddV("person").Property("name", 
"peter"). [...]
+    "g_VXvid1X_propertyXVXvid1X_groupX_byXidX_byXvaluesXnameXXX": {func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.AddV("person").Property("name", 
"marko").Property("age", 29)}, func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.V(p["vid1"]).Property(gremlingo.T__.V(p["vid1"]).Group().By(gremlingo.T__.Id()).By(gremlingo.T__.Values("name")))}},
 
     "g_io_readXkryoX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Io("data/tinkerpop-modern.kryo").Read()}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V()}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.E()}}, 
     "g_io_read_withXreader_gryoX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Io("data/tinkerpop-modern.kryo").With(gremlingo.IO.Reader, 
gremlingo.IO.Gryo).Read()}, func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return g.V()}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.E()}}, 
     "g_io_readXgraphsonX": {func(g *gremlingo.GraphTraversalSource, p 
map[string]interface{}) *gremlingo.GraphTraversal {return 
g.Io("data/tinkerpop-modern.json").Read()}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.V()}, func(g 
*gremlingo.GraphTraversalSource, p map[string]interface{}) 
*gremlingo.GraphTraversal {return g.E()}}, 
diff --git a/gremlin-go/driver/gremlinlang.go b/gremlin-go/driver/gremlinlang.go
index 2625cb10e6..15ffd27a25 100644
--- a/gremlin-go/driver/gremlinlang.go
+++ b/gremlin-go/driver/gremlinlang.go
@@ -412,7 +412,22 @@ func (gl *GremlinLang) translatePValue(operator string, 
values []interface{}) (s
        sb := strings.Builder{}
        sb.WriteString(operator + "(")
 
-       if len(values) > 1 && operator != "between" && operator != "inside" {
+       // Check if all values are traversals — if so, serialize as 
comma-separated args (no brackets)
+       // This matches the server grammar: within(trav1, trav2) via 
genericArgumentVarargs
+       allTraversals := len(values) > 1
+       if allTraversals {
+               for _, v := range values {
+                       switch v.(type) {
+                       case *Traversal, Traversal, *GraphTraversal, 
GraphTraversal:
+                               // ok, it's a traversal
+                       default:
+                               allTraversals = false
+                               break
+                       }
+               }
+       }
+
+       if len(values) > 1 && !allTraversals && operator != "between" && 
operator != "inside" {
                sb.WriteString("[")
        }
 
@@ -427,7 +442,7 @@ func (gl *GremlinLang) translatePValue(operator string, 
values []interface{}) (s
                }
        }
 
-       if len(values) > 1 && operator != "between" && operator != "inside" {
+       if len(values) > 1 && !allTraversals && operator != "between" && 
operator != "inside" {
                sb.WriteString("]")
        }
        sb.WriteString(")")
diff --git 
a/gremlin-js/gremlin-javascript/lib/language/translator/DotNetTranslateVisitor.ts
 
b/gremlin-js/gremlin-javascript/lib/language/translator/DotNetTranslateVisitor.ts
index 8cb11b125b..bfbd22c722 100644
--- 
a/gremlin-js/gremlin-javascript/lib/language/translator/DotNetTranslateVisitor.ts
+++ 
b/gremlin-js/gremlin-javascript/lib/language/translator/DotNetTranslateVisitor.ts
@@ -834,6 +834,45 @@ export default class DotNetTranslateVisitor extends 
TranslateVisitor {
 
     // ─── property 
────────────────────────────────────────────────────────────
 
+    visitTraversalMethod_property_Object(ctx: any): void {
+        // Property(null) is ambiguous with Property(ITraversal) — cast null 
to IDictionary to disambiguate
+        if (ctx.genericMapNullableArgument().genericMapNullableLiteral() != 
null &&
+            
ctx.genericMapNullableArgument().genericMapNullableLiteral().nullLiteral() != 
null) {
+            this.visit(ctx.getChild(0));
+            this.sb.push('(');
+            this.sb.push('(IDictionary<object, object>) ');
+            this.visit(ctx.genericMapNullableArgument());
+            this.sb.push(')');
+            return;
+        }
+        this.visitChildren(ctx);
+    }
+
+    visitTraversalMethod_property_Cardinality_Object(ctx: any): void {
+        // Property(Cardinality, null) — cast null to IDictionary to 
disambiguate
+        if (ctx.genericMapNullableArgument().genericMapNullableLiteral() != 
null &&
+            
ctx.genericMapNullableArgument().genericMapNullableLiteral().nullLiteral() != 
null) {
+            this.visit(ctx.getChild(0));
+            this.sb.push('(');
+            this.visit(ctx.traversalCardinality());
+            this.sb.push(', ');
+            this.sb.push('(IDictionary<object, object>) ');
+            this.visit(ctx.genericMapNullableArgument());
+            this.sb.push(')');
+            return;
+        }
+        this.visitChildren(ctx);
+    }
+
+    visitTraversalMethod_property_Traversal(ctx: any): void {
+        // Property(ITraversal) — cast to ITraversal to disambiguate
+        this.visit(ctx.getChild(0));
+        this.sb.push('(');
+        this.sb.push('(ITraversal) ');
+        this.visit(ctx.nestedTraversal());
+        this.sb.push(')');
+    }
+
     visitTraversalMethod_property_Cardinality_Object_Object_Object(ctx: any): 
void {
         if (ctx.genericArgumentVarargs() == null || 
ctx.genericArgumentVarargs().getChildCount() === 0) {
             this.sb.push(capitalize(ctx.getChild(0).getText()));
diff --git a/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts 
b/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts
index 6d8c09287b..8ec4dd73a4 100644
--- a/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts
+++ b/gremlin-js/gremlin-javascript/lib/process/gremlin-lang.ts
@@ -55,7 +55,14 @@ export default class GremlinLang {
     
     let result = p.operator + '(';
     if (Array.isArray(p.value)) {
-      result += '[' + p.value.map(v => this._argAsString(v)).join(',') + ']';
+      // If all elements are traversals, serialize as comma-separated args (no 
brackets)
+      // This matches the server grammar: within(trav1, trav2) via 
genericArgumentVarargs
+      const allTraversals = p.value.length > 0 && p.value.every((v: any) => v 
!= null && typeof v.getGremlinLang === 'function');
+      if (allTraversals) {
+        result += p.value.map((v: any) => this._argAsString(v)).join(',');
+      } else {
+        result += '[' + p.value.map((v: any) => 
this._argAsString(v)).join(',') + ']';
+      }
     } else {
       result += this._argAsString(p.value);
       if (p.other !== undefined && p.other !== null) {
diff --git a/gremlin-js/gremlin-javascript/lib/process/traversal.ts 
b/gremlin-js/gremlin-javascript/lib/process/traversal.ts
index 12404b80b3..ff9932e46e 100644
--- a/gremlin-js/gremlin-javascript/lib/process/traversal.ts
+++ b/gremlin-js/gremlin-javascript/lib/process/traversal.ts
@@ -347,6 +347,9 @@ export class P<T1 = any, T2 = any> {
     if (args.length === 1 && Array.isArray(args[0])) {
       return new P('within', args[0], null);
     }
+    if (args.length === 1 && args[0] != null && typeof args[0].getGremlinLang 
=== 'function') {
+      return new P('within', args[0], null);
+    }
     return new P('within', args, null);
   }
 
@@ -354,6 +357,9 @@ export class P<T1 = any, T2 = any> {
     if (args.length === 1 && Array.isArray(args[0])) {
       return new P('without', args[0], null);
     }
+    if (args.length === 1 && args[0] != null && typeof args[0].getGremlinLang 
=== 'function') {
+      return new P('without', args[0], null);
+    }
     return new P('without', args, null);
   }
 
diff --git a/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js 
b/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
index b8b65053f4..6b5645b62f 100644
--- a/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
+++ b/gremlin-js/gremlin-javascript/test/cucumber/gremlin.js
@@ -536,7 +536,6 @@ const gremlins = {
     g_V_hasXname_VXvid1X_valuesXnameXX: [function({g, vid1}) { return 
g.V().has("name", __.V(vid1).values("name")) }], 
     g_V_hasXname_VXvid1X_outXknowsX_valuesXnameXX: [function({g, vid1}) { 
return g.V().has("name", __.V(vid1).out("knows").values("name")) }], 
     g_V_hasXage_VXvid1X_outXknowsX_valuesXageXX: [function({g, vid1}) { return 
g.V().has("age", __.V(vid1).out("knows").values("age")) }], 
-    g_V_hasXname_VXvid1X_outXcreatedX_valuesXnameXX: [function({g, vid1}) { 
return g.V().has("name", __.V(vid1).out("created").values("name")) }], 
     g_V_hasXname_VXvid1X_valuesXnonexistentXX: [function({g, vid1}) { return 
g.V().has("name", __.V(vid1).values("nonexistent")) }], 
     g_V_hasXname_notXidentityXX: [function({g}) { return g.V().has("name", 
__.not(__.identity())) }], 
     g_V_hasXage_gtXVXvid1X_valuesXageXXX: [function({g, vid1}) { return 
g.V().has("age", P.gt(__.V(vid1).values("age"))) }], 
@@ -548,6 +547,14 @@ const gremlins = {
     g_V_hasXage_eqXVXvid1X_valuesXnonexistentXXX: [function({g, vid1}) { 
return g.V().has("age", P.eq(__.V(vid1).values("nonexistent"))) }], 
     g_V_hasXlabel_VXvid1X_labelXX: [function({g, vid1}) { return 
g.V().has(T.label, __.V(vid1).label()) }], 
     g_V_hasXperson_name_VXvid1X_valuesXnameXX_age: [function({g, vid1}) { 
return g.V().has("person", "name", __.V(vid1).values("name")).values("age") }], 
+    g_V_hasXname_withinXVXvid1X_outXknowsX_valuesXnameX_constantXpeterXXX: 
[function({g, vid1}) { return g.V().has("name", 
P.within(__.V(vid1).out("knows").values("name"), __.constant("peter"))) }], 
+    g_V_hasXname_withinXVXvid1X_valuesXnonexistentX_constantXmarkoXXX: 
[function({g, vid1}) { return g.V().has("name", 
P.within(__.V(vid1).values("nonexistent"), __.constant("marko"))) }], 
+    
g_V_hasXname_withinXVXvid1X_valuesXnonexistentX_VXvid1X_valuesXnonexistentXXX: 
[function({g, vid1}) { return g.V().has("name", 
P.within(__.V(vid1).values("nonexistent"), __.V(vid1).values("nonexistent"))) 
}], 
+    
g_V_hasXname_withoutXVXvid1X_valuesXnameX_VXvid2X_valuesXnameX_VXvid3X_valuesXnameXXX:
 [function({g, vid3, vid2, vid1}) { return g.V().has("name", 
P.without(__.V(vid1).values("name"), __.V(vid2).values("name"), 
__.V(vid3).values("name"))) }], 
+    
g_V_hasXname_withinXVXvid1X_outXknowsX_valuesXnameX_VXvid3X_outXcreatedX_valuesXnameXXX:
 [function({g, vid3, vid1}) { return g.V().has("name", 
P.within(__.V(vid1).out("knows").values("name"), 
__.V(vid3).out("created").values("name"))) }], 
+    
g_V_hasLabelXsoftwareX_hasXname_withoutXVXvid1X_outXcreatedX_valuesXnameX_VXvid3X_outXcreatedX_valuesXnameXXX:
 [function({g, vid3, vid1}) { return g.V().hasLabel("software").has("name", 
P.without(__.V(vid1).out("created").values("name"), 
__.V(vid3).out("created").values("name"))) }], 
+    
g_V_hasLabelXpersonX_valuesXageX_isXwithinXVXvid1X_valuesXageX_V_hasXname_lopX_inXcreatedX_valuesXageXXX:
 [function({g, vid1}) { return 
g.V().hasLabel("person").values("age").is(P.within(__.V(vid1).values("age"), 
__.V().has("name", "lop").in_("created").values("age"))) }], 
+    
g_VXvid1X_outEXknowsX_filterXinV_hasXname_withinXV_hasXname_lopX_inXcreatedX_valuesXnameX_V_hasXname_rippleX_inXcreatedX_valuesXnameXXXX:
 [function({g, vid1}) { return 
g.V(vid1).outE("knows").filter(__.inV().has("name", P.within(__.V().has("name", 
"lop").in_("created").values("name"), __.V().has("name", 
"ripple").in_("created").values("name")))) }], 
     g_V_properties_hasValueXnullX: [function({g}) { return 
g.V().properties().hasValue(null) }], 
     g_V_properties_hasValueXnull_nullX: [function({g}) { return 
g.V().properties().hasValue(null, null) }], 
     g_V_properties_hasValueXnull_joshX_value: [function({g}) { return 
g.V().properties().hasValue(null, "josh").value() }], 
@@ -559,6 +566,26 @@ const gremlins = {
     g_V_valuesXageX_isXgte_29vaarX_isXlt_34varX: [function({g, xx1, xx2}) { 
return g.V().values("age").is(P.gte(xx1)).is(P.lt(xx2)) }], 
     g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX: [function({g}) { return 
g.V().where(__.in_("created").count().is(1)).values("name") }], 
     g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX: [function({g}) { 
return g.V().where(__.in_("created").count().is(P.gte(2))).values("name") }], 
+    g_V_valuesXageX_isXVXvid1X_valuesXageXX: [function({g, vid1}) { return 
g.V().values("age").is(__.V(vid1).values("age")) }], 
+    g_V_valuesXnameX_isXVXvid1X_valuesXnameXX: [function({g, vid1}) { return 
g.V().values("name").is(__.V(vid1).values("name")) }], 
+    g_V_valuesXageX_isXgtXVXvid1X_valuesXageXXX: [function({g, vid1}) { return 
g.V().values("age").is(P.gt(__.V(vid1).values("age"))) }], 
+    g_V_valuesXageX_isXltXVXvid3X_valuesXageXXX: [function({g, vid3}) { return 
g.V().values("age").is(P.lt(__.V(vid3).values("age"))) }], 
+    g_V_valuesXageX_isXneqXVXvid4X_valuesXageXXX: [function({g, vid4}) { 
return g.V().values("age").is(P.neq(__.V(vid4).values("age"))) }], 
+    g_V_valuesXageX_isXwithinXVXvid1X_outXknowsX_valuesXageXXX: [function({g, 
vid1}) { return 
g.V().values("age").is(P.within(__.V(vid1).out("knows").values("age"))) }], 
+    g_V_valuesXageX_isXVXvid1X_valuesXnonexistentXX: [function({g, vid1}) { 
return g.V().values("age").is(__.V(vid1).values("nonexistent")) }], 
+    g_V_hasLabelXpersonX_valuesXageX_chooseXgtXVXvid1X_valuesXageXX_olderX: 
[function({g, vid1}) { return 
g.V().hasLabel("person").values("age").choose(P.gt(__.V(vid1).values("age")), 
__.constant("older than marko"), __.constant("not older")) }], 
+    g_V_hasLabelXpersonX_valuesXageX_chooseXgteXmeanAgeX_aboveX: 
[function({g}) { return 
g.V().hasLabel("person").values("age").choose(P.gte(__.V().hasLabel("person").values("age").mean()),
 __.constant("above average"), __.constant("below average")) }], 
+    g_VXvid1X_outXknowsX_valuesXageX_fold_allXgteXVXvid2X_valuesXageXXX: 
[function({g, vid2, vid1}) { return 
g.V(vid1).out("knows").values("age").fold().all(P.gte(__.V(vid2).values("age")))
 }], 
+    g_VXvid1X_outXknowsX_valuesXageX_fold_allXgtXVXvid2X_valuesXageXXX: 
[function({g, vid2, vid1}) { return 
g.V(vid1).out("knows").values("age").fold().all(P.gt(__.V(vid2).values("age"))) 
}], 
+    g_VXvid1X_outXknowsX_valuesXageX_fold_anyXeqXVXvid3X_valuesXageXXX: 
[function({g, vid3, vid1}) { return 
g.V(vid1).out("knows").values("age").fold().any(P.eq(__.V(vid3).values("age"))) 
}], 
+    g_VXvid1X_outXknowsX_valuesXageX_fold_noneXeqXVXvid4X_valuesXageXXX: 
[function({g, vid4, vid1}) { return 
g.V(vid1).out("knows").values("age").fold().none(P.eq(__.V(vid4).values("age")))
 }], 
+    g_VXvid1X_outXknowsX_valuesXageX_fold_noneXeqXVXvid3X_valuesXageXXX: 
[function({g, vid3, vid1}) { return 
g.V(vid1).out("knows").values("age").fold().none(P.eq(__.V(vid3).values("age")))
 }], 
+    g_injectXnullX_isXeqXV9999_valuesXnameXXX: [function({g}) { return 
g.inject(null).is(P.eq(__.V(9999).values("name"))) }], 
+    g_injectXmarkoX_isXV9999_valuesXnameXX: [function({g}) { return 
g.inject("marko").is(__.V(9999).values("name")) }], 
+    g_injectXmarkoX_chooseXeqXV9999_valuesXnameXX_matched_unmatchedX: 
[function({g}) { return 
g.inject("marko").choose(P.eq(__.V(9999).values("name")), 
__.constant("matched"), __.constant("unmatched")) }], 
+    g_injectXlistX_noneXeqXV9999_valuesXnameXXX: [function({g}) { return 
g.inject(["marko", "josh"]).none(P.eq(__.V(9999).values("name"))) }], 
+    g_V_hasXname_eqXV9999_valuesXnameXXX: [function({g}) { return 
g.V().has("name", P.eq(__.V(9999).values("name"))) }], 
+    g_V_valuesXageX_isXwithoutXVXvid1X_valuesXageX_VXvid2X_valuesXageXXX: 
[function({g, vid2, vid1}) { return 
g.V().values("age").is(P.without(__.V(vid1).values("age"), 
__.V(vid2).values("age"))) }], 
     g_V_valuesXageX_noneXgtX32XX: [function({g}) { return 
g.V().values("age").none(P.gt(32)) }], 
     g_V_valuesXageX_whereXisXP_gtX33XXX_fold_noneXlteX33XX: [function({g}) { 
return g.V().values("age").where(__.is(P.gt(33))).fold().none(P.lte(33)) }], 
     g_V_valuesXageX_order_byXdescX_fold_noneXltX10XX: [function({g}) { return 
g.V().values("age").order().by(Order.desc).fold().none(P.lt(10)) }], 
@@ -1794,14 +1821,14 @@ const gremlins = {
     g_V_localXoutE_foldX_unfold: [function({g}) { return 
g.V().local(__.outE().fold()).unfold() }], 
     g_V_valueMap_unfold_mapXselectXkeysXX: [function({g}) { return 
g.V().valueMap().unfold().map(__.select(Column.keys)) }], 
     g_VX1X_repeatXboth_simplePathX_untilXhasIdX6XX_path_byXnameX_unfold: 
[function({g, vid6, vid1}) { return 
g.V(vid1).repeat(__.both().simplePath()).until(__.hasId(vid6)).path().by("name").unfold()
 }], 
-    
g_VXvid1X_outXcreatedX_asXsoftwareX_V_hasXname_selectXsoftwareX_valuesXnameXX_inXcreatedX_name:
 [function({g, vid1}) { return 
g.V(vid1).out("created").as("sw").V().has("name", 
__.select("sw").values("name")).in_("created").values("name") }], 
+    g_VXvid1X_id_VXidentityX_name: [function({g, vid1}) { return 
g.V(vid1).id().V(__.identity()).values("name") }], 
+    g_VXvid1_vid2X_id_VXidentityX_name: [function({g, vid2, vid1}) { return 
g.V(vid1, vid2).id().V(__.identity()).values("name") }], 
+    g_VXvid1X_id_asXbookmarkX_V_hasXname_joshX_VXselectXbookmarkXX_name: 
[function({g, vid1}) { return g.V(vid1).id().as("bookmark").V().has("name", 
"josh").V(__.select("bookmark")).values("name") }], 
     g_VXvid1X_VXoutXknowsX_idX_name: [function({g, vid1}) { return 
g.V(vid1).V(__.out("knows").id()).values("name") }], 
-    g_VXvid1X_VXoutXknowsX_hasXname_joshX_idX_valuesXageX: [function({g, 
vid1}) { return g.V(vid1).V(__.out("knows").has("name", 
"josh").id()).values("age") }], 
-    g_VXvid1X_VXoutXknowsX_outXknowsX_idX_name: [function({g, vid1}) { return 
g.V(vid1).V(__.out("knows").out("knows").id()).values("name") }], 
-    g_VXvid1X_VXoutXcreatedX_idX_valuesXlangX: [function({g, vid1}) { return 
g.V(vid1).V(__.out("created").id()).values("lang") }], 
     g_VXvid1X_EXoutE_idX: [function({g, vid1}) { return 
g.V(vid1).E(__.outE().id()) }], 
-    g_VXvid1X_EXoutEXknowsX_hasXweight_05X_idX: [function({g, vid1}) { return 
g.V(vid1).E(__.outE("knows").has("weight", 0.5).id()) }], 
-    g_VXvid1X_EXoutXknowsX_outXknowsX_outE_idX: [function({g, vid1}) { return 
g.V(vid1).E(__.out("knows").out("knows").outE().id()) }], 
+    g_injectX9999X_VXidentityX: [function({g}) { return 
g.inject(9999).V(__.identity()) }], 
+    g_VXvid1X_outEXknowsX_hasXinV_name_vadasX_id_EXidentityX: [function({g, 
vid1}) { return g.V(vid1).outE("knows").filter(__.inV().has("name", 
"vadas")).id().E(__.identity()) }], 
+    g_injectX9999X_EXidentityX: [function({g}) { return 
g.inject(9999).E(__.identity()) }], 
     g_VXVXvid1X_idX_name: [function({g, vid1}) { return 
g.V(__.V(vid1).id()).values("name") }], 
     g_EXVXvid1X_outE_idX: [function({g, vid1}) { return 
g.E(__.V(vid1).outE().id()) }], 
     g_V_valueMap: [function({g}) { return g.V().valueMap() }], 
@@ -2125,17 +2152,16 @@ const gremlins = {
     g_injectX1_3_100_300X_list: [function({g}) { return g.inject([1, 3, 100, 
300]) }], 
     g_injectX1_3_100_300X_set: [function({g}) { return g.inject(new Set([1, 3, 
100, 300])) }], 
     g_injectX1_1X_set: [function({g}) { return g.inject(new Set([1, 1])) }], 
-    g_VXvid2X_propertyXalias_VXvid1X_valuesXnameXX: [function({g, vid2, vid1}) 
{ return g.V(vid2).property("alias", __.V(vid1).values("name")) }, function({g, 
vid2, vid1}) { return g.V().has("alias", "marko") }], 
-    g_VXvid1X_propertyXcreatorCount_VXvid1X_inXcreatedX_countX: [function({g, 
vid1}) { return g.V(vid1).property("creatorCount", 
__.V(vid1).in_("created").count()) }, function({g, vid1}) { return 
g.V().has("creatorCount", 3) }], 
-    g_VXvid1X_propertyXknownCount_outXknowsX_countX: [function({g, vid1}) { 
return g.V(vid1).property("knownCount", __.out("knows").count()) }, 
function({g, vid1}) { return g.V().has("knownCount", 2) }], 
-    g_VXvid1X_propertyXcreator_inXcreatedX_valuesXnameXX: [function({g, vid1}) 
{ return g.V(vid1).property("creator", __.in_("created").values("name")) }, 
function({g, vid1}) { return g.V().has("creator") }], 
-    g_VXvid2X_propertyXVXvid1X_projectXfriendCount_softwareCreatedXX: 
[function({g, vid2, vid1}) { return 
g.V(vid2).property(__.V(vid1).project("friendCount", 
"softwareCreated").by(__.out("knows").count()).by(__.out("created").values("name")))
 }, function({g, vid2, vid1}) { return g.V().has("friendCount", 2) }, 
function({g, vid2, vid1}) { return g.V().has("softwareCreated", "lop") }], 
-    
g_VXvid2X_propertyXVXvid1X_projectXoriginalName_originalLabelX_byXnameX_byXlabelXX:
 [function({g, vid2, vid1}) { return 
g.V(vid2).property(__.V(vid1).project("originalName", 
"originalLabel").by(__.values("name")).by(__.label())) }, function({g, vid2, 
vid1}) { return g.V(vid2).has("originalName", "marko") }, function({g, vid2, 
vid1}) { return g.V(vid2).has("originalLabel", "person") }], 
-    g_VXvid1X_propertyXlist_friends_outXknowsX_valuesXnameXX: [function({g, 
vid1}) { return g.V(vid1).property(Cardinality.list, "friends", 
__.out("knows").values("name")) }, function({g, vid1}) { return 
g.V(vid1).properties("friends") }], 
-    g_VXvid1X_propertyXlist_creators_inXcreatedX_valuesXnameXX: [function({g, 
vid1}) { return g.V(vid1).property(Cardinality.list, "creators", 
__.in_("created").values("name")) }, function({g, vid1}) { return 
g.V(vid1).properties("creators") }], 
-    g_VXvid1X_propertyXset_langs_outXcreatedX_valuesXlangXX: [function({g, 
vid1}) { return g.V(vid1).property(Cardinality.set, "langs", 
__.out("created").values("lang")) }, function({g, vid1}) { return 
g.V(vid1).properties("langs") }], 
-    g_VXvid1X_propertyXsingle_friend_outXknowsX_valuesXnameXX: [function({g, 
vid1}) { return g.V(vid1).property(Cardinality.single, "friend", 
__.out("knows").values("name")) }], 
-    g_VXvid1X_propertyXVXvid1X_groupX_byXidX_byXvaluesXnameXXX: [function({g, 
vid1}) { return 
g.V(vid1).property(__.V(vid1).group().by(__.id()).by(__.values("name"))) }], 
+    g_VXvid2X_propertyXalias_VXvid1X_valuesXnameXX: [function({g, vid2, vid1}) 
{ return g.addV("person").property("name", "marko").property("age", 
29).addV("person").property("name", "vadas").property("age", 
27).addV("software").property("name", "lop").property("lang", 
"java").addV("person").property("name", "josh").property("age", 
32).addV("person").property("name", "peter").property("age", 
35).addV("software").property("name", "ripple").property("lang", "java") }, 
function({g, vid2, vi [...]
+    g_VXvid1X_propertyXcreatorCount_VXvid1X_inXcreatedX_countX: [function({g, 
vid1}) { return g.addV("person").property("name", "marko").property("age", 
29).as("marko").addV("person").property("name", "vadas").property("age", 
27).addV("software").property("name", "lop").property("lang", 
"java").as("lop").addV("person").property("name", "josh").property("age", 
32).as("josh").addV("person").property("name", "peter").property("age", 
35).as("peter").addV("software").property("name", "ripple" [...]
+    g_VXvid1X_propertyXknownCount_outXknowsX_countX: [function({g, vid1}) { 
return g.addV("person").property("name", "marko").property("age", 
29).as("marko").addV("person").property("name", "vadas").property("age", 
27).as("vadas").addV("software").property("name", "lop").property("lang", 
"java").addV("person").property("name", "josh").property("age", 
32).as("josh").addV("person").property("name", "peter").property("age", 
35).addV("software").property("name", "ripple").property("lang", "j [...]
+    g_VXvid1X_propertyXcreator_inXcreatedX_valuesXnameXX: [function({g, vid1}) 
{ return g.addV("person").property("name", "marko").property("age", 
29).as("marko").addV("person").property("name", "vadas").property("age", 
27).addV("software").property("name", "lop").property("lang", 
"java").as("lop").addV("person").property("name", "josh").property("age", 
32).as("josh").addV("person").property("name", "peter").property("age", 
35).as("peter").addV("software").property("name", "ripple").prop [...]
+    g_VXvid2X_propertyXVXvid1X_projectXfriendCount_softwareCreatedXX: 
[function({g, vid2, vid1}) { return g.addV("person").property("name", 
"marko").property("age", 29).as("marko").addV("person").property("name", 
"vadas").property("age", 27).as("vadas").addV("software").property("name", 
"lop").property("lang", "java").as("lop").addV("person").property("name", 
"josh").property("age", 32).as("josh").addV("person").property("name", 
"peter").property("age", 35).as("peter").addV("software").p [...]
+    
g_VXvid2X_propertyXVXvid1X_projectXoriginalName_originalLabelX_byXnameX_byXlabelXX:
 [function({g, vid2, vid1}) { return g.addV("person").property("name", 
"marko").property("age", 29).as("marko").addV("person").property("name", 
"vadas").property("age", 27).addV("software").property("name", 
"lop").property("lang", "java").as("lop").addV("person").property("name", 
"josh").property("age", 32).addV("person").property("name", 
"peter").property("age", 35).addV("software").property("name", " [...]
+    g_VXvid1X_propertyXlist_friends_outXknowsX_valuesXnameXX: [function({g, 
vid1}) { return g.addV("person").property("name", "marko").property("age", 
29).as("marko").addV("person").property("name", "vadas").property("age", 
27).as("vadas").addV("software").property("name", "lop").property("lang", 
"java").addV("person").property("name", "josh").property("age", 
32).as("josh").addV("person").property("name", "peter").property("age", 
35).addV("software").property("name", "ripple").property(" [...]
+    g_VXvid1X_propertyXset_langs_outXcreatedX_valuesXlangXX: [function({g, 
vid1}) { return g.addV("person").property("name", "marko").property("age", 
29).addV("person").property("name", "vadas").property("age", 
27).addV("software").property("name", "lop").property("lang", 
"java").as("lop").addV("person").property("name", "josh").property("age", 
32).as("josh").addV("person").property("name", "peter").property("age", 
35).addV("software").property("name", "ripple").property("lang", "java"). [...]
+    g_VXvid1X_propertyXsingle_friend_outXknowsX_valuesXnameXX: [function({g, 
vid1}) { return g.addV("person").property("name", "marko").property("age", 
29).as("marko").addV("person").property("name", "vadas").property("age", 
27).as("vadas").addV("software").property("name", "lop").property("lang", 
"java").addV("person").property("name", "josh").property("age", 
32).as("josh").addV("person").property("name", "peter").property("age", 
35).addV("software").property("name", "ripple").property( [...]
+    g_VXvid1X_propertyXVXvid1X_groupX_byXidX_byXvaluesXnameXXX: [function({g, 
vid1}) { return g.addV("person").property("name", "marko").property("age", 29) 
}, function({g, vid1}) { return 
g.V(vid1).property(__.V(vid1).group().by(__.id()).by(__.values("name"))) }], 
     g_io_readXkryoX: [function({g}) { return 
g.io("data/tinkerpop-modern.kryo").read() }, function({g}) { return g.V() }, 
function({g}) { return g.E() }], 
     g_io_read_withXreader_gryoX: [function({g}) { return 
g.io("data/tinkerpop-modern.kryo").with_(IO.reader, IO.gryo).read() }, 
function({g}) { return g.V() }, function({g}) { return g.E() }], 
     g_io_readXgraphsonX: [function({g}) { return 
g.io("data/tinkerpop-modern.json").read() }, function({g}) { return g.V() }, 
function({g}) { return g.E() }], 
diff --git a/gremlin-python/src/main/python/gremlin_python/process/traversal.py 
b/gremlin-python/src/main/python/gremlin_python/process/traversal.py
index 76c91822e7..894684f098 100644
--- a/gremlin-python/src/main/python/gremlin_python/process/traversal.py
+++ b/gremlin-python/src/main/python/gremlin_python/process/traversal.py
@@ -359,6 +359,8 @@ class P(object):
             return P("within", args[0])
         elif len(args) == 1 and type(args[0]) == set:
             return P("within", list(args[0]))
+        elif len(args) == 1 and isinstance(args[0], Traversal):
+            return P("within", args[0])
         else:
             return P("within", list(args))
 
@@ -368,6 +370,8 @@ class P(object):
             return P("without", args[0])
         elif len(args) == 1 and type(args[0]) == set:
             return P("without", list(args[0]))
+        elif len(args) == 1 and isinstance(args[0], Traversal):
+            return P("without", args[0])
         else:
             return P("without", list(args))
 
@@ -964,13 +968,22 @@ class GremlinLang(object):
         c = 0
         res = [str(p).split('(')[0] + '(']
         if isinstance(p.value, list):
-            res.append('[')
-            for v in p.value:
-                if c > 0:
-                    res.append(',')
-                res.append(self._arg_as_string(v))
-                c += 1
-            res.append(']')
+            # If all elements are Traversals, serialize as comma-separated 
args (no brackets)
+            # This matches the server grammar: within(trav1, trav2) via 
genericArgumentVarargs
+            if len(p.value) > 0 and all(isinstance(v, Traversal) for v in 
p.value):
+                for v in p.value:
+                    if c > 0:
+                        res.append(',')
+                    res.append(self._arg_as_string(v))
+                    c += 1
+            else:
+                res.append('[')
+                for v in p.value:
+                    if c > 0:
+                        res.append(',')
+                    res.append(self._arg_as_string(v))
+                    c += 1
+                res.append(']')
         else:
             res.append(self._arg_as_string(p.value))
             if p.other is not None:
diff --git a/gremlin-python/src/main/python/tests/feature/gremlin.py 
b/gremlin-python/src/main/python/tests/feature/gremlin.py
index 8404154695..08ea5a069c 100644
--- a/gremlin-python/src/main/python/tests/feature/gremlin.py
+++ b/gremlin-python/src/main/python/tests/feature/gremlin.py
@@ -510,7 +510,6 @@ world.gremlins = {
     'g_V_hasXname_VXvid1X_valuesXnameXX': [(lambda g, 
vid1=None:g.V().has('name', __.V(vid1).values('name')))], 
     'g_V_hasXname_VXvid1X_outXknowsX_valuesXnameXX': [(lambda g, 
vid1=None:g.V().has('name', __.V(vid1).out('knows').values('name')))], 
     'g_V_hasXage_VXvid1X_outXknowsX_valuesXageXX': [(lambda g, 
vid1=None:g.V().has('age', __.V(vid1).out('knows').values('age')))], 
-    'g_V_hasXname_VXvid1X_outXcreatedX_valuesXnameXX': [(lambda g, 
vid1=None:g.V().has('name', __.V(vid1).out('created').values('name')))], 
     'g_V_hasXname_VXvid1X_valuesXnonexistentXX': [(lambda g, 
vid1=None:g.V().has('name', __.V(vid1).values('nonexistent')))], 
     'g_V_hasXname_notXidentityXX': [(lambda g:g.V().has('name', 
__.not_(__.identity())))], 
     'g_V_hasXage_gtXVXvid1X_valuesXageXXX': [(lambda g, 
vid1=None:g.V().has('age', P.gt(__.V(vid1).values('age'))))], 
@@ -522,6 +521,14 @@ world.gremlins = {
     'g_V_hasXage_eqXVXvid1X_valuesXnonexistentXXX': [(lambda g, 
vid1=None:g.V().has('age', P.eq(__.V(vid1).values('nonexistent'))))], 
     'g_V_hasXlabel_VXvid1X_labelXX': [(lambda g, vid1=None:g.V().has(T.label, 
__.V(vid1).label()))], 
     'g_V_hasXperson_name_VXvid1X_valuesXnameXX_age': [(lambda g, 
vid1=None:g.V().has('person', 'name', 
__.V(vid1).values('name')).values('age'))], 
+    'g_V_hasXname_withinXVXvid1X_outXknowsX_valuesXnameX_constantXpeterXXX': 
[(lambda g, vid1=None:g.V().has('name', 
P.within(__.V(vid1).out('knows').values('name'), __.constant('peter'))))], 
+    'g_V_hasXname_withinXVXvid1X_valuesXnonexistentX_constantXmarkoXXX': 
[(lambda g, vid1=None:g.V().has('name', 
P.within(__.V(vid1).values('nonexistent'), __.constant('marko'))))], 
+    
'g_V_hasXname_withinXVXvid1X_valuesXnonexistentX_VXvid1X_valuesXnonexistentXXX':
 [(lambda g, vid1=None:g.V().has('name', 
P.within(__.V(vid1).values('nonexistent'), 
__.V(vid1).values('nonexistent'))))], 
+    
'g_V_hasXname_withoutXVXvid1X_valuesXnameX_VXvid2X_valuesXnameX_VXvid3X_valuesXnameXXX':
 [(lambda g, vid3=None,vid2=None,vid1=None:g.V().has('name', 
P.without(__.V(vid1).values('name'), __.V(vid2).values('name'), 
__.V(vid3).values('name'))))], 
+    
'g_V_hasXname_withinXVXvid1X_outXknowsX_valuesXnameX_VXvid3X_outXcreatedX_valuesXnameXXX':
 [(lambda g, vid3=None,vid1=None:g.V().has('name', 
P.within(__.V(vid1).out('knows').values('name'), 
__.V(vid3).out('created').values('name'))))], 
+    
'g_V_hasLabelXsoftwareX_hasXname_withoutXVXvid1X_outXcreatedX_valuesXnameX_VXvid3X_outXcreatedX_valuesXnameXXX':
 [(lambda g, vid3=None,vid1=None:g.V().has_label('software').has('name', 
P.without(__.V(vid1).out('created').values('name'), 
__.V(vid3).out('created').values('name'))))], 
+    
'g_V_hasLabelXpersonX_valuesXageX_isXwithinXVXvid1X_valuesXageX_V_hasXname_lopX_inXcreatedX_valuesXageXXX':
 [(lambda g, 
vid1=None:g.V().has_label('person').values('age').is_(P.within(__.V(vid1).values('age'),
 __.V().has('name', 'lop').in_('created').values('age'))))], 
+    
'g_VXvid1X_outEXknowsX_filterXinV_hasXname_withinXV_hasXname_lopX_inXcreatedX_valuesXnameX_V_hasXname_rippleX_inXcreatedX_valuesXnameXXXX':
 [(lambda g, vid1=None:g.V(vid1).out_e('knows').filter_(__.in_v().has('name', 
P.within(__.V().has('name', 'lop').in_('created').values('name'), 
__.V().has('name', 'ripple').in_('created').values('name')))))], 
     'g_V_properties_hasValueXnullX': [(lambda 
g:g.V().properties().has_value(None))], 
     'g_V_properties_hasValueXnull_nullX': [(lambda 
g:g.V().properties().has_value(None, None))], 
     'g_V_properties_hasValueXnull_joshX_value': [(lambda 
g:g.V().properties().has_value(None, 'josh').value())], 
@@ -533,6 +540,26 @@ world.gremlins = {
     'g_V_valuesXageX_isXgte_29vaarX_isXlt_34varX': [(lambda g, 
xx1=None,xx2=None:g.V().values('age').is_(P.gte(xx1)).is_(P.lt(xx2)))], 
     'g_V_whereXinXcreatedX_count_isX1XX_valuesXnameX': [(lambda 
g:g.V().where(__.in_('created').count().is_(1)).values('name'))], 
     'g_V_whereXinXcreatedX_count_isXgte_2XX_valuesXnameX': [(lambda 
g:g.V().where(__.in_('created').count().is_(P.gte(2))).values('name'))], 
+    'g_V_valuesXageX_isXVXvid1X_valuesXageXX': [(lambda g, 
vid1=None:g.V().values('age').is_(__.V(vid1).values('age')))], 
+    'g_V_valuesXnameX_isXVXvid1X_valuesXnameXX': [(lambda g, 
vid1=None:g.V().values('name').is_(__.V(vid1).values('name')))], 
+    'g_V_valuesXageX_isXgtXVXvid1X_valuesXageXXX': [(lambda g, 
vid1=None:g.V().values('age').is_(P.gt(__.V(vid1).values('age'))))], 
+    'g_V_valuesXageX_isXltXVXvid3X_valuesXageXXX': [(lambda g, 
vid3=None:g.V().values('age').is_(P.lt(__.V(vid3).values('age'))))], 
+    'g_V_valuesXageX_isXneqXVXvid4X_valuesXageXXX': [(lambda g, 
vid4=None:g.V().values('age').is_(P.neq(__.V(vid4).values('age'))))], 
+    'g_V_valuesXageX_isXwithinXVXvid1X_outXknowsX_valuesXageXXX': [(lambda g, 
vid1=None:g.V().values('age').is_(P.within(__.V(vid1).out('knows').values('age'))))],
 
+    'g_V_valuesXageX_isXVXvid1X_valuesXnonexistentXX': [(lambda g, 
vid1=None:g.V().values('age').is_(__.V(vid1).values('nonexistent')))], 
+    'g_V_hasLabelXpersonX_valuesXageX_chooseXgtXVXvid1X_valuesXageXX_olderX': 
[(lambda g, 
vid1=None:g.V().has_label('person').values('age').choose(P.gt(__.V(vid1).values('age')),
 __.constant('older than marko'), __.constant('not older')))], 
+    'g_V_hasLabelXpersonX_valuesXageX_chooseXgteXmeanAgeX_aboveX': [(lambda 
g:g.V().has_label('person').values('age').choose(P.gte(__.V().has_label('person').values('age').mean()),
 __.constant('above average'), __.constant('below average')))], 
+    'g_VXvid1X_outXknowsX_valuesXageX_fold_allXgteXVXvid2X_valuesXageXXX': 
[(lambda g, 
vid2=None,vid1=None:g.V(vid1).out('knows').values('age').fold().all_(P.gte(__.V(vid2).values('age'))))],
 
+    'g_VXvid1X_outXknowsX_valuesXageX_fold_allXgtXVXvid2X_valuesXageXXX': 
[(lambda g, 
vid2=None,vid1=None:g.V(vid1).out('knows').values('age').fold().all_(P.gt(__.V(vid2).values('age'))))],
 
+    'g_VXvid1X_outXknowsX_valuesXageX_fold_anyXeqXVXvid3X_valuesXageXXX': 
[(lambda g, 
vid3=None,vid1=None:g.V(vid1).out('knows').values('age').fold().any_(P.eq(__.V(vid3).values('age'))))],
 
+    'g_VXvid1X_outXknowsX_valuesXageX_fold_noneXeqXVXvid4X_valuesXageXXX': 
[(lambda g, 
vid4=None,vid1=None:g.V(vid1).out('knows').values('age').fold().none(P.eq(__.V(vid4).values('age'))))],
 
+    'g_VXvid1X_outXknowsX_valuesXageX_fold_noneXeqXVXvid3X_valuesXageXXX': 
[(lambda g, 
vid3=None,vid1=None:g.V(vid1).out('knows').values('age').fold().none(P.eq(__.V(vid3).values('age'))))],
 
+    'g_injectXnullX_isXeqXV9999_valuesXnameXXX': [(lambda 
g:g.inject(None).is_(P.eq(__.V(9999).values('name'))))], 
+    'g_injectXmarkoX_isXV9999_valuesXnameXX': [(lambda 
g:g.inject('marko').is_(__.V(9999).values('name')))], 
+    'g_injectXmarkoX_chooseXeqXV9999_valuesXnameXX_matched_unmatchedX': 
[(lambda g:g.inject('marko').choose(P.eq(__.V(9999).values('name')), 
__.constant('matched'), __.constant('unmatched')))], 
+    'g_injectXlistX_noneXeqXV9999_valuesXnameXXX': [(lambda 
g:g.inject(['marko', 'josh']).none(P.eq(__.V(9999).values('name'))))], 
+    'g_V_hasXname_eqXV9999_valuesXnameXXX': [(lambda g:g.V().has('name', 
P.eq(__.V(9999).values('name'))))], 
+    'g_V_valuesXageX_isXwithoutXVXvid1X_valuesXageX_VXvid2X_valuesXageXXX': 
[(lambda g, 
vid2=None,vid1=None:g.V().values('age').is_(P.without(__.V(vid1).values('age'), 
__.V(vid2).values('age'))))], 
     'g_V_valuesXageX_noneXgtX32XX': [(lambda 
g:g.V().values('age').none(P.gt(32)))], 
     'g_V_valuesXageX_whereXisXP_gtX33XXX_fold_noneXlteX33XX': [(lambda 
g:g.V().values('age').where(__.is_(P.gt(33))).fold().none(P.lte(33)))], 
     'g_V_valuesXageX_order_byXdescX_fold_noneXltX10XX': [(lambda 
g:g.V().values('age').order().by(Order.desc).fold().none(P.lt(10)))], 
@@ -1768,14 +1795,14 @@ world.gremlins = {
     'g_V_localXoutE_foldX_unfold': [(lambda 
g:g.V().local(__.out_e().fold()).unfold())], 
     'g_V_valueMap_unfold_mapXselectXkeysXX': [(lambda 
g:g.V().value_map().unfold().map(__.select(Column.keys)))], 
     'g_VX1X_repeatXboth_simplePathX_untilXhasIdX6XX_path_byXnameX_unfold': 
[(lambda g, 
vid6=None,vid1=None:g.V(vid1).repeat(__.both().simple_path()).until(__.has_id(vid6)).path().by('name').unfold())],
 
-    
'g_VXvid1X_outXcreatedX_asXsoftwareX_V_hasXname_selectXsoftwareX_valuesXnameXX_inXcreatedX_name':
 [(lambda g, vid1=None:g.V(vid1).out('created').as_('sw').V().has('name', 
__.select('sw').values('name')).in_('created').values('name'))], 
+    'g_VXvid1X_id_VXidentityX_name': [(lambda g, 
vid1=None:g.V(vid1).id_().V(__.identity()).values('name'))], 
+    'g_VXvid1_vid2X_id_VXidentityX_name': [(lambda g, 
vid2=None,vid1=None:g.V(vid1, vid2).id_().V(__.identity()).values('name'))], 
+    'g_VXvid1X_id_asXbookmarkX_V_hasXname_joshX_VXselectXbookmarkXX_name': 
[(lambda g, vid1=None:g.V(vid1).id_().as_('bookmark').V().has('name', 
'josh').V(__.select('bookmark')).values('name'))], 
     'g_VXvid1X_VXoutXknowsX_idX_name': [(lambda g, 
vid1=None:g.V(vid1).V(__.out('knows').id_()).values('name'))], 
-    'g_VXvid1X_VXoutXknowsX_hasXname_joshX_idX_valuesXageX': [(lambda g, 
vid1=None:g.V(vid1).V(__.out('knows').has('name', 
'josh').id_()).values('age'))], 
-    'g_VXvid1X_VXoutXknowsX_outXknowsX_idX_name': [(lambda g, 
vid1=None:g.V(vid1).V(__.out('knows').out('knows').id_()).values('name'))], 
-    'g_VXvid1X_VXoutXcreatedX_idX_valuesXlangX': [(lambda g, 
vid1=None:g.V(vid1).V(__.out('created').id_()).values('lang'))], 
     'g_VXvid1X_EXoutE_idX': [(lambda g, 
vid1=None:g.V(vid1).E(__.out_e().id_()))], 
-    'g_VXvid1X_EXoutEXknowsX_hasXweight_05X_idX': [(lambda g, 
vid1=None:g.V(vid1).E(__.out_e('knows').has('weight', 0.5).id_()))], 
-    'g_VXvid1X_EXoutXknowsX_outXknowsX_outE_idX': [(lambda g, 
vid1=None:g.V(vid1).E(__.out('knows').out('knows').out_e().id_()))], 
+    'g_injectX9999X_VXidentityX': [(lambda 
g:g.inject(9999).V(__.identity()))], 
+    'g_VXvid1X_outEXknowsX_hasXinV_name_vadasX_id_EXidentityX': [(lambda g, 
vid1=None:g.V(vid1).out_e('knows').filter_(__.in_v().has('name', 
'vadas')).id_().E(__.identity()))], 
+    'g_injectX9999X_EXidentityX': [(lambda 
g:g.inject(9999).E(__.identity()))], 
     'g_VXVXvid1X_idX_name': [(lambda g, 
vid1=None:g.V(__.V(vid1).id_()).values('name'))], 
     'g_EXVXvid1X_outE_idX': [(lambda g, 
vid1=None:g.E(__.V(vid1).out_e().id_()))], 
     'g_V_valueMap': [(lambda g:g.V().value_map())], 
@@ -2099,17 +2126,16 @@ world.gremlins = {
     'g_injectX1_3_100_300X_list': [(lambda g:g.inject([1, 3, 100, 300]))], 
     'g_injectX1_3_100_300X_set': [(lambda g:g.inject({1, 3, 100, 300}))], 
     'g_injectX1_1X_set': [(lambda g:g.inject({1, 1}))], 
-    'g_VXvid2X_propertyXalias_VXvid1X_valuesXnameXX': [(lambda g, 
vid2=None,vid1=None:g.V(vid2).property('alias', __.V(vid1).values('name'))), 
(lambda g, vid2=None,vid1=None:g.V().has('alias', 'marko'))], 
-    'g_VXvid1X_propertyXcreatorCount_VXvid1X_inXcreatedX_countX': [(lambda g, 
vid1=None:g.V(vid1).property('creatorCount', 
__.V(vid1).in_('created').count())), (lambda g, 
vid1=None:g.V().has('creatorCount', long(3)))], 
-    'g_VXvid1X_propertyXknownCount_outXknowsX_countX': [(lambda g, 
vid1=None:g.V(vid1).property('knownCount', __.out('knows').count())), (lambda 
g, vid1=None:g.V().has('knownCount', long(2)))], 
-    'g_VXvid1X_propertyXcreator_inXcreatedX_valuesXnameXX': [(lambda g, 
vid1=None:g.V(vid1).property('creator', __.in_('created').values('name'))), 
(lambda g, vid1=None:g.V().has('creator'))], 
-    'g_VXvid2X_propertyXVXvid1X_projectXfriendCount_softwareCreatedXX': 
[(lambda g, 
vid2=None,vid1=None:g.V(vid2).property(__.V(vid1).project('friendCount', 
'softwareCreated').by(__.out('knows').count()).by(__.out('created').values('name')))),
 (lambda g, vid2=None,vid1=None:g.V().has('friendCount', long(2))), (lambda g, 
vid2=None,vid1=None:g.V().has('softwareCreated', 'lop'))], 
-    
'g_VXvid2X_propertyXVXvid1X_projectXoriginalName_originalLabelX_byXnameX_byXlabelXX':
 [(lambda g, 
vid2=None,vid1=None:g.V(vid2).property(__.V(vid1).project('originalName', 
'originalLabel').by(__.values('name')).by(__.label()))), (lambda g, 
vid2=None,vid1=None:g.V(vid2).has('originalName', 'marko')), (lambda g, 
vid2=None,vid1=None:g.V(vid2).has('originalLabel', 'person'))], 
-    'g_VXvid1X_propertyXlist_friends_outXknowsX_valuesXnameXX': [(lambda g, 
vid1=None:g.V(vid1).property(Cardinality.list_, 'friends', 
__.out('knows').values('name'))), (lambda g, 
vid1=None:g.V(vid1).properties('friends'))], 
-    'g_VXvid1X_propertyXlist_creators_inXcreatedX_valuesXnameXX': [(lambda g, 
vid1=None:g.V(vid1).property(Cardinality.list_, 'creators', 
__.in_('created').values('name'))), (lambda g, 
vid1=None:g.V(vid1).properties('creators'))], 
-    'g_VXvid1X_propertyXset_langs_outXcreatedX_valuesXlangXX': [(lambda g, 
vid1=None:g.V(vid1).property(Cardinality.set_, 'langs', 
__.out('created').values('lang'))), (lambda g, 
vid1=None:g.V(vid1).properties('langs'))], 
-    'g_VXvid1X_propertyXsingle_friend_outXknowsX_valuesXnameXX': [(lambda g, 
vid1=None:g.V(vid1).property(Cardinality.single, 'friend', 
__.out('knows').values('name')))], 
-    'g_VXvid1X_propertyXVXvid1X_groupX_byXidX_byXvaluesXnameXXX': [(lambda g, 
vid1=None:g.V(vid1).property(__.V(vid1).group().by(__.id_()).by(__.values('name'))))],
 
+    'g_VXvid2X_propertyXalias_VXvid1X_valuesXnameXX': [(lambda g, 
vid2=None,vid1=None:g.add_v('person').property('name', 'marko').property('age', 
29).add_v('person').property('name', 'vadas').property('age', 
27).add_v('software').property('name', 'lop').property('lang', 
'java').add_v('person').property('name', 'josh').property('age', 
32).add_v('person').property('name', 'peter').property('age', 
35).add_v('software').property('name', 'ripple').property('lang', 'java')), 
(lambda g, vid2=No [...]
+    'g_VXvid1X_propertyXcreatorCount_VXvid1X_inXcreatedX_countX': [(lambda g, 
vid1=None:g.add_v('person').property('name', 'marko').property('age', 
29).as_('marko').add_v('person').property('name', 'vadas').property('age', 
27).add_v('software').property('name', 'lop').property('lang', 
'java').as_('lop').add_v('person').property('name', 'josh').property('age', 
32).as_('josh').add_v('person').property('name', 'peter').property('age', 
35).as_('peter').add_v('software').property('name', 'rip [...]
+    'g_VXvid1X_propertyXknownCount_outXknowsX_countX': [(lambda g, 
vid1=None:g.add_v('person').property('name', 'marko').property('age', 
29).as_('marko').add_v('person').property('name', 'vadas').property('age', 
27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 
'java').add_v('person').property('name', 'josh').property('age', 
32).as_('josh').add_v('person').property('name', 'peter').property('age', 
35).add_v('software').property('name', 'ripple').property('lang', [...]
+    'g_VXvid1X_propertyXcreator_inXcreatedX_valuesXnameXX': [(lambda g, 
vid1=None:g.add_v('person').property('name', 'marko').property('age', 
29).as_('marko').add_v('person').property('name', 'vadas').property('age', 
27).add_v('software').property('name', 'lop').property('lang', 
'java').as_('lop').add_v('person').property('name', 'josh').property('age', 
32).as_('josh').add_v('person').property('name', 'peter').property('age', 
35).as_('peter').add_v('software').property('name', 'ripple'). [...]
+    'g_VXvid2X_propertyXVXvid1X_projectXfriendCount_softwareCreatedXX': 
[(lambda g, vid2=None,vid1=None:g.add_v('person').property('name', 
'marko').property('age', 29).as_('marko').add_v('person').property('name', 
'vadas').property('age', 27).as_('vadas').add_v('software').property('name', 
'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 
'josh').property('age', 32).as_('josh').add_v('person').property('name', 
'peter').property('age', 35).as_('peter').add_v('sof [...]
+    
'g_VXvid2X_propertyXVXvid1X_projectXoriginalName_originalLabelX_byXnameX_byXlabelXX':
 [(lambda g, vid2=None,vid1=None:g.add_v('person').property('name', 
'marko').property('age', 29).as_('marko').add_v('person').property('name', 
'vadas').property('age', 27).add_v('software').property('name', 
'lop').property('lang', 'java').as_('lop').add_v('person').property('name', 
'josh').property('age', 32).add_v('person').property('name', 
'peter').property('age', 35).add_v('software').property('na [...]
+    'g_VXvid1X_propertyXlist_friends_outXknowsX_valuesXnameXX': [(lambda g, 
vid1=None:g.add_v('person').property('name', 'marko').property('age', 
29).as_('marko').add_v('person').property('name', 'vadas').property('age', 
27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 
'java').add_v('person').property('name', 'josh').property('age', 
32).as_('josh').add_v('person').property('name', 'peter').property('age', 
35).add_v('software').property('name', 'ripple').propert [...]
+    'g_VXvid1X_propertyXset_langs_outXcreatedX_valuesXlangXX': [(lambda g, 
vid1=None:g.add_v('person').property('name', 'marko').property('age', 
29).add_v('person').property('name', 'vadas').property('age', 
27).add_v('software').property('name', 'lop').property('lang', 
'java').as_('lop').add_v('person').property('name', 'josh').property('age', 
32).as_('josh').add_v('person').property('name', 'peter').property('age', 
35).add_v('software').property('name', 'ripple').property('lang', 'java' [...]
+    'g_VXvid1X_propertyXsingle_friend_outXknowsX_valuesXnameXX': [(lambda g, 
vid1=None:g.add_v('person').property('name', 'marko').property('age', 
29).as_('marko').add_v('person').property('name', 'vadas').property('age', 
27).as_('vadas').add_v('software').property('name', 'lop').property('lang', 
'java').add_v('person').property('name', 'josh').property('age', 
32).as_('josh').add_v('person').property('name', 'peter').property('age', 
35).add_v('software').property('name', 'ripple').proper [...]
+    'g_VXvid1X_propertyXVXvid1X_groupX_byXidX_byXvaluesXnameXXX': [(lambda g, 
vid1=None:g.add_v('person').property('name', 'marko').property('age', 29)), 
(lambda g, 
vid1=None:g.V(vid1).property(__.V(vid1).group().by(__.id_()).by(__.values('name'))))],
 
     'g_io_readXkryoX': [(lambda g:g.io('data/tinkerpop-modern.kryo').read()), 
(lambda g:g.V()), (lambda g:g.E())], 
     'g_io_read_withXreader_gryoX': [(lambda 
g:g.io('data/tinkerpop-modern.kryo').with_(IO.reader, IO.gryo).read()), (lambda 
g:g.V()), (lambda g:g.E())], 
     'g_io_readXgraphsonX': [(lambda 
g:g.io('data/tinkerpop-modern.json').read()), (lambda g:g.V()), (lambda 
g:g.E())], 
diff --git 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/language/translator/translations.json
 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/language/translator/translations.json
index 40c36148be..a8772929c1 100644
--- 
a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/language/translator/translations.json
+++ 
b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/language/translator/translations.json
@@ -19698,7 +19698,7 @@
                 "language": "g.addV(\"person\").property(null)",
                 "canonical": "g.addV(\"person\").property(null)",
                 "anonymized": "g.addV(string0).property(map0)",
-                "dotnet": "g.AddV((string) \"person\").Property(null)",
+                "dotnet": "g.AddV((string) 
\"person\").Property((IDictionary<object, object>) null)",
                 "go": "g.AddV(\"person\").Property(nil)",
                 "groovy": "g.addV(\"person\").property(null)",
                 "java": "g.addV(\"person\").property(null)",
@@ -19756,7 +19756,7 @@
                 "language": "g.addV(\"foo\").property(Cardinality.set, null)",
                 "canonical": "g.addV(\"foo\").property(Cardinality.set, null)",
                 "anonymized": "g.addV(string0).property(Cardinality.set, 
map0)",
-                "dotnet": "g.AddV((string) \"foo\").Property(Cardinality.Set, 
null)",
+                "dotnet": "g.AddV((string) \"foo\").Property(Cardinality.Set, 
(IDictionary<object, object>) null)",
                 "go": "g.AddV(\"foo\").Property(gremlingo.Cardinality.Set, 
nil)",
                 "groovy": "g.addV(\"foo\").property(Cardinality.set, null)",
                 "java": "g.addV(\"foo\").property(Cardinality.set, null)",
@@ -43965,7 +43965,7 @@
                 "language": 
"g.V(vid2).property(__.V(vid1).project(\"friendCount\", 
\"softwareCreated\").by(__.out(\"knows\").count()).by(__.out(\"created\").values(\"name\")))",
                 "canonical": 
"g.V(vid2).property(__.V(vid1).project(\"friendCount\", 
\"softwareCreated\").by(__.out(\"knows\").count()).by(__.out(\"created\").values(\"name\")))",
                 "anonymized": "g.V(vid2).property(__.V(vid1).project(string0, 
string1).by(__.out(string2).count()).by(__.out(string3).values(string4)))",
-                "dotnet": 
"g.V(vid2).Property(__.V(vid1).Project<object>(\"friendCount\", 
\"softwareCreated\").By(__.Out(\"knows\").Count()).By(__.Out(\"created\").Values<object>(\"name\")))",
+                "dotnet": "g.V(vid2).Property((ITraversal) 
__.V(vid1).Project<object>(\"friendCount\", 
\"softwareCreated\").By(__.Out(\"knows\").Count()).By(__.Out(\"created\").Values<object>(\"name\")))",
                 "go": 
"g.V(vid2).Property(gremlingo.T__.V(vid1).Project(\"friendCount\", 
\"softwareCreated\").By(gremlingo.T__.Out(\"knows\").Count()).By(gremlingo.T__.Out(\"created\").Values(\"name\")))",
                 "groovy": 
"g.V(vid2).property(__.V(vid1).project(\"friendCount\", 
\"softwareCreated\").by(__.out(\"knows\").count()).by(__.out(\"created\").values(\"name\")))",
                 "java": 
"g.V(vid2).property(__.V(vid1).project(\"friendCount\", 
\"softwareCreated\").by(__.out(\"knows\").count()).by(__.out(\"created\").values(\"name\")))",
@@ -44018,7 +44018,7 @@
                 "language": 
"g.V(vid2).property(__.V(vid1).project(\"originalName\", 
\"originalLabel\").by(__.values(\"name\")).by(__.label()))",
                 "canonical": 
"g.V(vid2).property(__.V(vid1).project(\"originalName\", 
\"originalLabel\").by(__.values(\"name\")).by(__.label()))",
                 "anonymized": "g.V(vid2).property(__.V(vid1).project(string0, 
string1).by(__.values(string2)).by(__.label()))",
-                "dotnet": 
"g.V(vid2).Property(__.V(vid1).Project<object>(\"originalName\", 
\"originalLabel\").By(__.Values<object>(\"name\")).By(__.Label()))",
+                "dotnet": "g.V(vid2).Property((ITraversal) 
__.V(vid1).Project<object>(\"originalName\", 
\"originalLabel\").By(__.Values<object>(\"name\")).By(__.Label()))",
                 "go": 
"g.V(vid2).Property(gremlingo.T__.V(vid1).Project(\"originalName\", 
\"originalLabel\").By(gremlingo.T__.Values(\"name\")).By(gremlingo.T__.Label()))",
                 "groovy": 
"g.V(vid2).property(__.V(vid1).project(\"originalName\", 
\"originalLabel\").by(__.values(\"name\")).by(__.label()))",
                 "java": 
"g.V(vid2).property(__.V(vid1).project(\"originalName\", 
\"originalLabel\").by(__.values(\"name\")).by(__.label()))",
@@ -44182,7 +44182,7 @@
                 "language": 
"g.V(vid1).property(__.V(vid1).group().by(__.id()).by(__.values(\"name\")))",
                 "canonical": 
"g.V(vid1).property(__.V(vid1).group().by(__.id()).by(__.values(\"name\")))",
                 "anonymized": 
"g.V(vid1).property(__.V(vid1).group().by(__.id()).by(__.values(string0)))",
-                "dotnet": "g.V(vid1).Property(__.V(vid1).Group<object, 
object>().By(__.Id()).By(__.Values<object>(\"name\")))",
+                "dotnet": "g.V(vid1).Property((ITraversal) 
__.V(vid1).Group<object, 
object>().By(__.Id()).By(__.Values<object>(\"name\")))",
                 "go": 
"g.V(vid1).Property(gremlingo.T__.V(vid1).Group().By(gremlingo.T__.Id()).By(gremlingo.T__.Values(\"name\")))",
                 "groovy": 
"g.V(vid1).property(__.V(vid1).group().by(__.id()).by(__.values(\"name\")))",
                 "java": 
"g.V(vid1).property(__.V(vid1).group().by(__.id()).by(__.values(\"name\")))",

Reply via email to