This is an automated email from the ASF dual-hosted git repository. kenhuuu pushed a commit to branch v4-graphson-props in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit dd2a1edb12c435bdcf5400225fd4b9002885bf21 Author: Ken Hu <[email protected]> AuthorDate: Thu Oct 3 17:44:15 2024 -0700 Update GraphSONv4 format for edge's vertex reference. --- docs/src/dev/io/graphson.asciidoc | 665 ++++++++++++--------- .../io/graphson/GraphSONSerializersV4.java | 19 +- .../structure/io/graphson/GraphSONMapperTest.java | 2 +- .../structure/io/graphson/no-prop-edge-v4.json | 16 +- .../structure/io/graphson/tinker-graph-v4.json | 224 ++++--- .../io/graphson/traversal-edge-v4-no-types.json | 12 +- .../structure/io/graphson/traversal-edge-v4.json | 16 +- 7 files changed, 577 insertions(+), 377 deletions(-) diff --git a/docs/src/dev/io/graphson.asciidoc b/docs/src/dev/io/graphson.asciidoc index 140b648f83..83b8fe7ff2 100644 --- a/docs/src/dev/io/graphson.asciidoc +++ b/docs/src/dev/io/graphson.asciidoc @@ -425,8 +425,9 @@ JSON String form of UUID. ==== Edge JSON Object (required keys are: id, label, inVLabel, outVLabel, inV, outV) + -"id", "inV", "outV" is any GraphSON 4.0 type + -"label", "inVLabel", "outVLabel" value is a `g:List` of `String` + +"id" is any GraphSON 4.0 type + +"inV", "outV" is an Object that contains "id" which is any GraphSON 4.0 type and "label" which is a `g:List` of `String` +"label" is a `g:List` of `String` + "properties" is an optional Object containing Arrays of `g:Property` The untyped version has one additional required key "type" which is always "vertex". @@ -443,19 +444,23 @@ The untyped version has one additional required key "type" which is always "vert "label": [ "develops" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 1 + "id": { + "@type": "g:Int32", + "@value": 1 + }, + "label": [ + "person" + ] }, "properties": { "since": [ @@ -483,14 +488,18 @@ The untyped version has one additional required key "type" which is always "vert "develops" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 10, - "outV": 1, + "inV": { + "id": 10, + "label": [ + "software" + ] + }, + "outV": { + "id": 1, + "label": [ + "person" + ] + }, "properties": { "since": [ 2009 @@ -1012,19 +1021,23 @@ two required keys: "vertices" and "edges" + "label": [ "develops" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 1 + "id": { + "@type": "g:Int32", + "@value": 1 + }, + "label": [ + "person" + ] }, "properties": { "since": [ @@ -1052,19 +1065,23 @@ two required keys: "vertices" and "edges" + "label": [ "develops" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 11 + "id": { + "@type": "g:Int32", + "@value": 11 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 1 + "id": { + "@type": "g:Int32", + "@value": 1 + }, + "label": [ + "person" + ] }, "properties": { "since": [ @@ -1092,19 +1109,23 @@ two required keys: "vertices" and "edges" + "label": [ "uses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 1 + "id": { + "@type": "g:Int32", + "@value": 1 + }, + "label": [ + "person" + ] }, "properties": { "skill": [ @@ -1132,19 +1153,23 @@ two required keys: "vertices" and "edges" + "label": [ "uses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 11 + "id": { + "@type": "g:Int32", + "@value": 11 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 1 + "id": { + "@type": "g:Int32", + "@value": 1 + }, + "label": [ + "person" + ] }, "properties": { "skill": [ @@ -1172,19 +1197,23 @@ two required keys: "vertices" and "edges" + "label": [ "develops" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 7 + "id": { + "@type": "g:Int32", + "@value": 7 + }, + "label": [ + "person" + ] }, "properties": { "since": [ @@ -1212,19 +1241,23 @@ two required keys: "vertices" and "edges" + "label": [ "develops" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 11 + "id": { + "@type": "g:Int32", + "@value": 11 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 7 + "id": { + "@type": "g:Int32", + "@value": 7 + }, + "label": [ + "person" + ] }, "properties": { "since": [ @@ -1252,19 +1285,23 @@ two required keys: "vertices" and "edges" + "label": [ "uses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 7 + "id": { + "@type": "g:Int32", + "@value": 7 + }, + "label": [ + "person" + ] }, "properties": { "skill": [ @@ -1292,19 +1329,23 @@ two required keys: "vertices" and "edges" + "label": [ "uses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 11 + "id": { + "@type": "g:Int32", + "@value": 11 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 7 + "id": { + "@type": "g:Int32", + "@value": 7 + }, + "label": [ + "person" + ] }, "properties": { "skill": [ @@ -1332,19 +1373,23 @@ two required keys: "vertices" and "edges" + "label": [ "develops" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 8 + "id": { + "@type": "g:Int32", + "@value": 8 + }, + "label": [ + "person" + ] }, "properties": { "since": [ @@ -1372,19 +1417,23 @@ two required keys: "vertices" and "edges" + "label": [ "uses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 8 + "id": { + "@type": "g:Int32", + "@value": 8 + }, + "label": [ + "person" + ] }, "properties": { "skill": [ @@ -1412,19 +1461,23 @@ two required keys: "vertices" and "edges" + "label": [ "uses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 11 + "id": { + "@type": "g:Int32", + "@value": 11 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 8 + "id": { + "@type": "g:Int32", + "@value": 8 + }, + "label": [ + "person" + ] }, "properties": { "skill": [ @@ -1452,19 +1505,23 @@ two required keys: "vertices" and "edges" + "label": [ "uses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 9 + "id": { + "@type": "g:Int32", + "@value": 9 + }, + "label": [ + "person" + ] }, "properties": { "skill": [ @@ -1492,19 +1549,23 @@ two required keys: "vertices" and "edges" + "label": [ "uses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], "inV": { - "@type": "g:Int32", - "@value": 11 + "id": { + "@type": "g:Int32", + "@value": 11 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 9 + "id": { + "@type": "g:Int32", + "@value": 9 + }, + "label": [ + "person" + ] }, "properties": { "skill": [ @@ -1532,19 +1593,23 @@ two required keys: "vertices" and "edges" + "label": [ "traverses" ], - "inVLabel": [ - "software" - ], - "outVLabel": [ - "software" - ], "inV": { - "@type": "g:Int32", - "@value": 11 + "id": { + "@type": "g:Int32", + "@value": 11 + }, + "label": [ + "software" + ] }, "outV": { - "@type": "g:Int32", - "@value": 10 + "id": { + "@type": "g:Int32", + "@value": 10 + }, + "label": [ + "software" + ] } } } @@ -1771,14 +1836,18 @@ two required keys: "vertices" and "edges" + "develops" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 10, - "outV": 1, + "inV": { + "id": 10, + "label": [ + "software" + ] + }, + "outV": { + "id": 1, + "label": [ + "person" + ] + }, "properties": { "since": [ 2009 @@ -1791,14 +1860,18 @@ two required keys: "vertices" and "edges" + "develops" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 11, - "outV": 1, + "inV": { + "id": 11, + "label": [ + "software" + ] + }, + "outV": { + "id": 1, + "label": [ + "person" + ] + }, "properties": { "since": [ 2010 @@ -1811,14 +1884,18 @@ two required keys: "vertices" and "edges" + "uses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 10, - "outV": 1, + "inV": { + "id": 10, + "label": [ + "software" + ] + }, + "outV": { + "id": 1, + "label": [ + "person" + ] + }, "properties": { "skill": [ 4 @@ -1831,14 +1908,18 @@ two required keys: "vertices" and "edges" + "uses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 11, - "outV": 1, + "inV": { + "id": 11, + "label": [ + "software" + ] + }, + "outV": { + "id": 1, + "label": [ + "person" + ] + }, "properties": { "skill": [ 5 @@ -1851,14 +1932,18 @@ two required keys: "vertices" and "edges" + "develops" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 10, - "outV": 7, + "inV": { + "id": 10, + "label": [ + "software" + ] + }, + "outV": { + "id": 7, + "label": [ + "person" + ] + }, "properties": { "since": [ 2010 @@ -1871,14 +1956,18 @@ two required keys: "vertices" and "edges" + "develops" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 11, - "outV": 7, + "inV": { + "id": 11, + "label": [ + "software" + ] + }, + "outV": { + "id": 7, + "label": [ + "person" + ] + }, "properties": { "since": [ 2011 @@ -1891,14 +1980,18 @@ two required keys: "vertices" and "edges" + "uses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 10, - "outV": 7, + "inV": { + "id": 10, + "label": [ + "software" + ] + }, + "outV": { + "id": 7, + "label": [ + "person" + ] + }, "properties": { "skill": [ 5 @@ -1911,14 +2004,18 @@ two required keys: "vertices" and "edges" + "uses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 11, - "outV": 7, + "inV": { + "id": 11, + "label": [ + "software" + ] + }, + "outV": { + "id": 7, + "label": [ + "person" + ] + }, "properties": { "skill": [ 4 @@ -1931,14 +2028,18 @@ two required keys: "vertices" and "edges" + "develops" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 10, - "outV": 8, + "inV": { + "id": 10, + "label": [ + "software" + ] + }, + "outV": { + "id": 8, + "label": [ + "person" + ] + }, "properties": { "since": [ 2012 @@ -1951,14 +2052,18 @@ two required keys: "vertices" and "edges" + "uses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 10, - "outV": 8, + "inV": { + "id": 10, + "label": [ + "software" + ] + }, + "outV": { + "id": 8, + "label": [ + "person" + ] + }, "properties": { "skill": [ 3 @@ -1971,14 +2076,18 @@ two required keys: "vertices" and "edges" + "uses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 11, - "outV": 8, + "inV": { + "id": 11, + "label": [ + "software" + ] + }, + "outV": { + "id": 8, + "label": [ + "person" + ] + }, "properties": { "skill": [ 3 @@ -1991,14 +2100,18 @@ two required keys: "vertices" and "edges" + "uses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 10, - "outV": 9, + "inV": { + "id": 10, + "label": [ + "software" + ] + }, + "outV": { + "id": 9, + "label": [ + "person" + ] + }, "properties": { "skill": [ 5 @@ -2011,14 +2124,18 @@ two required keys: "vertices" and "edges" + "uses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "person" - ], - "inV": 11, - "outV": 9, + "inV": { + "id": 11, + "label": [ + "software" + ] + }, + "outV": { + "id": 9, + "label": [ + "person" + ] + }, "properties": { "skill": [ 3 @@ -2031,14 +2148,18 @@ two required keys: "vertices" and "edges" + "traverses" ], "type": "edge", - "inVLabel": [ - "software" - ], - "outVLabel": [ - "software" - ], - "inV": 11, - "outV": 10 + "inV": { + "id": 11, + "label": [ + "software" + ] + }, + "outV": { + "id": 10, + "label": [ + "software" + ] + } } ] } diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV4.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV4.java index 14af4fe71a..9656201ac5 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV4.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV4.java @@ -159,12 +159,23 @@ class GraphSONSerializersV4 { jsonGenerator.writeStartObject(); jsonGenerator.writeObjectField(GraphSONTokens.ID, edge.id()); + writeLabel(jsonGenerator, GraphSONTokens.LABEL, edge.label()); + writeTypeForGraphObjectIfUntyped(jsonGenerator, typeInfo, GraphSONTokens.EDGE); - writeLabel(jsonGenerator, GraphSONTokens.IN_LABEL, edge.inVertex().label()); - writeLabel(jsonGenerator, GraphSONTokens.OUT_LABEL, edge.outVertex().label()); - jsonGenerator.writeObjectField(GraphSONTokens.IN, edge.inVertex().id()); - jsonGenerator.writeObjectField(GraphSONTokens.OUT, edge.outVertex().id()); + + jsonGenerator.writeFieldName(GraphSONTokens.IN); + jsonGenerator.writeStartObject(); + jsonGenerator.writeObjectField(GraphSONTokens.ID, edge.inVertex().id()); + writeLabel(jsonGenerator, GraphSONTokens.LABEL, edge.inVertex().label()); + jsonGenerator.writeEndObject(); + + jsonGenerator.writeFieldName(GraphSONTokens.OUT); + jsonGenerator.writeStartObject(); + jsonGenerator.writeObjectField(GraphSONTokens.ID, edge.outVertex().id()); + writeLabel(jsonGenerator, GraphSONTokens.LABEL, edge.outVertex().label()); + jsonGenerator.writeEndObject(); + writeProperties(edge, jsonGenerator); jsonGenerator.writeEndObject(); diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperTest.java index 0adccc7580..052e95b15b 100644 --- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperTest.java +++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperTest.java @@ -113,7 +113,7 @@ public class GraphSONMapperTest { else if (version.startsWith("v2")) assertEquals("{\"id\":123,\"label\":\"knows\",\"inVLabel\":\"person\",\"outVLabel\":\"person\",\"inV\":2,\"outV\":1,\"properties\":{\"weight\":{\"key\":\"weight\",\"value\":0.5}}}", json); else if (version.startsWith("v4")) - assertEquals("{\"id\":123,\"label\":[\"knows\"],\"type\":\"edge\",\"inVLabel\":[\"person\"],\"outVLabel\":[\"person\"],\"inV\":2,\"outV\":1,\"properties\":{\"weight\":[0.5]}}", json); + assertEquals("{\"id\":123,\"label\":[\"knows\"],\"type\":\"edge\",\"inV\":{\"id\":2,\"label\":[\"person\"]},\"outV\":{\"id\":1,\"label\":[\"person\"]},\"properties\":{\"weight\":[0.5]}}", json); else throw new IllegalStateException("Version not accounted for in asserts"); } diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/no-prop-edge-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/no-prop-edge-v4.json index 1c779c8349..b4f16b31d1 100644 --- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/no-prop-edge-v4.json +++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/no-prop-edge-v4.json @@ -6,15 +6,19 @@ "@value" : 13 }, "label" : [ "develops" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 1 + "id" : { + "@type" : "g:Int32", + "@value" : 1 + }, + "label" : [ "person" ] } } } \ No newline at end of file diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinker-graph-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinker-graph-v4.json index e322cfa7d7..8d51265d89 100644 --- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinker-graph-v4.json +++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/tinker-graph-v4.json @@ -410,15 +410,19 @@ "@value" : 13 }, "label" : [ "develops" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 1 + "id" : { + "@type" : "g:Int32", + "@value" : 1 + }, + "label" : [ "person" ] }, "properties" : { "since" : [ { @@ -441,15 +445,19 @@ "@value" : 14 }, "label" : [ "develops" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 11 + "id" : { + "@type" : "g:Int32", + "@value" : 11 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 1 + "id" : { + "@type" : "g:Int32", + "@value" : 1 + }, + "label" : [ "person" ] }, "properties" : { "since" : [ { @@ -472,15 +480,19 @@ "@value" : 15 }, "label" : [ "uses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 1 + "id" : { + "@type" : "g:Int32", + "@value" : 1 + }, + "label" : [ "person" ] }, "properties" : { "skill" : [ { @@ -503,15 +515,19 @@ "@value" : 16 }, "label" : [ "uses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 11 + "id" : { + "@type" : "g:Int32", + "@value" : 11 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 1 + "id" : { + "@type" : "g:Int32", + "@value" : 1 + }, + "label" : [ "person" ] }, "properties" : { "skill" : [ { @@ -534,15 +550,19 @@ "@value" : 17 }, "label" : [ "develops" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 7 + "id" : { + "@type" : "g:Int32", + "@value" : 7 + }, + "label" : [ "person" ] }, "properties" : { "since" : [ { @@ -565,15 +585,19 @@ "@value" : 18 }, "label" : [ "develops" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 11 + "id" : { + "@type" : "g:Int32", + "@value" : 11 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 7 + "id" : { + "@type" : "g:Int32", + "@value" : 7 + }, + "label" : [ "person" ] }, "properties" : { "since" : [ { @@ -596,15 +620,19 @@ "@value" : 19 }, "label" : [ "uses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 7 + "id" : { + "@type" : "g:Int32", + "@value" : 7 + }, + "label" : [ "person" ] }, "properties" : { "skill" : [ { @@ -627,15 +655,19 @@ "@value" : 20 }, "label" : [ "uses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 11 + "id" : { + "@type" : "g:Int32", + "@value" : 11 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 7 + "id" : { + "@type" : "g:Int32", + "@value" : 7 + }, + "label" : [ "person" ] }, "properties" : { "skill" : [ { @@ -658,15 +690,19 @@ "@value" : 21 }, "label" : [ "develops" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 8 + "id" : { + "@type" : "g:Int32", + "@value" : 8 + }, + "label" : [ "person" ] }, "properties" : { "since" : [ { @@ -689,15 +725,19 @@ "@value" : 22 }, "label" : [ "uses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 8 + "id" : { + "@type" : "g:Int32", + "@value" : 8 + }, + "label" : [ "person" ] }, "properties" : { "skill" : [ { @@ -720,15 +760,19 @@ "@value" : 23 }, "label" : [ "uses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 11 + "id" : { + "@type" : "g:Int32", + "@value" : 11 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 8 + "id" : { + "@type" : "g:Int32", + "@value" : 8 + }, + "label" : [ "person" ] }, "properties" : { "skill" : [ { @@ -751,15 +795,19 @@ "@value" : 24 }, "label" : [ "uses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 9 + "id" : { + "@type" : "g:Int32", + "@value" : 9 + }, + "label" : [ "person" ] }, "properties" : { "skill" : [ { @@ -782,15 +830,19 @@ "@value" : 25 }, "label" : [ "uses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 11 + "id" : { + "@type" : "g:Int32", + "@value" : 11 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 9 + "id" : { + "@type" : "g:Int32", + "@value" : 9 + }, + "label" : [ "person" ] }, "properties" : { "skill" : [ { @@ -813,15 +865,19 @@ "@value" : 26 }, "label" : [ "traverses" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "software" ], "inV" : { - "@type" : "g:Int32", - "@value" : 11 + "id" : { + "@type" : "g:Int32", + "@value" : 11 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] } } } ] diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/traversal-edge-v4-no-types.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/traversal-edge-v4-no-types.json index 26c92ee5fd..9cdac5b038 100644 --- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/traversal-edge-v4-no-types.json +++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/traversal-edge-v4-no-types.json @@ -2,10 +2,14 @@ "id" : 13, "label" : [ "develops" ], "type" : "edge", - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], - "inV" : 10, - "outV" : 1, + "inV" : { + "id" : 10, + "label" : [ "software" ] + }, + "outV" : { + "id" : 1, + "label" : [ "person" ] + }, "properties" : { "since" : [ 2009 ] } diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/traversal-edge-v4.json b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/traversal-edge-v4.json index cc13e232a8..0510745b67 100644 --- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/traversal-edge-v4.json +++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/structure/io/graphson/traversal-edge-v4.json @@ -6,15 +6,19 @@ "@value" : 13 }, "label" : [ "develops" ], - "inVLabel" : [ "software" ], - "outVLabel" : [ "person" ], "inV" : { - "@type" : "g:Int32", - "@value" : 10 + "id" : { + "@type" : "g:Int32", + "@value" : 10 + }, + "label" : [ "software" ] }, "outV" : { - "@type" : "g:Int32", - "@value" : 1 + "id" : { + "@type" : "g:Int32", + "@value" : 1 + }, + "label" : [ "person" ] }, "properties" : { "since" : [ {
