[NO-ISSUE][GRAPHIX] Updating rewriter for Graphix.

Details:
- Rewriter now generates SQLPP ASTs that a) minimize the nesting to
  reduce the time to compile and b) maximize the number of hash
  JOINs. This is accomplished by aiming for "wide" ASTs (via UNION-ALLs)
  as opposed to nested SELECT-EXPRs.
- Rewriter now pushes isomorphism conjuncts earlier (via a "correlated
  WHERE clause").
- Schema information for functions are now added in lazy manner, as
  opposed to eagerly.
- Added a DECLARE GRAPH statement.
- Added a SOURCE_VERTEX and DEST_VERTEX function.
- Fixed a bug w/ the element resolver not handling sub-paths properly.

Change-Id: I95c56b38e7a01e6f73fe59c2243f88646735ed39
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb-graph/+/16543
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Glenn Galvizo <ggalvizo@uci.edu>
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/create-drop-error/create-drop-error.8.ddl.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/create-drop-error/create-drop-error.8.ddl.sqlpp
index eb0fa47..72cd219 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/create-drop-error/create-drop-error.8.ddl.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/create-drop-error/create-drop-error.8.ddl.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-// Verify that vertices w/ the same label cannot have conflicting primary keys.
+// Verify that no two vertices can have the same label.
 
 DROP DATAVERSE    TestDataverse IF EXISTS;
 CREATE DATAVERSE  TestDataverse;
@@ -34,6 +34,6 @@
                   PRIMARY KEY (_id)
                   AS GenericDataset,
 VERTEX            (:Vertex1)
-                  PRIMARY KEY (_other_id)
+                  PRIMARY KEY (_id)
                   AS ( FROM GenericDataset
                        SELECT VALUE { "_other_id": _other_id } );
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/dangling-vertices/dangling-vertices.5.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/dangling-vertices/dangling-vertices.5.query.sqlpp
index b37cb34..78851df 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/dangling-vertices/dangling-vertices.5.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/dangling-vertices/dangling-vertices.5.query.sqlpp
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+-- param max-warnings:string=2
+
 // There are two dangling vertices of different labels, and zero edges.
 FROM GRAPH  Yelp.YelpGraph
 MATCH       (u:User), (r:Review)
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.3.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.3.query.sqlpp
index ee62ea8..6b4ee2e 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.3.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.3.query.sqlpp
@@ -28,10 +28,9 @@
                         SELECT  F.user_id AS user_id,
                                 F.friend AS friend )
 MATCH       (u2:User)<-[fw:FRIENDS_WITH{2,2}]-(u1:User)
-UNNEST      fw AS fwEdgeRecord
-LET         fw_left_vertex = VERTEX_KEY(fwEdgeRecord.LeftVertex)
+UNNEST      fw.Vertices AS pathVertex
 SELECT      u1.user_id AS u1_user_id,
-            fw_left_vertex,
             u2.user_id AS u2_user_id,
-            HOP_COUNT(fw) AS fw_hops
-ORDER BY    u1, fw_left_vertex, u2;
\ No newline at end of file
+            pathVertex.user_id AS path_user_id,
+            LEN(fw.Edges) AS fw_hops
+ORDER BY    u1, pathVertex, u2;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.4.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.4.query.sqlpp
index bfef02f..a128b19 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.4.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.4.query.sqlpp
@@ -28,10 +28,9 @@
                         SELECT  F.user_id AS user_id,
                                 F.friend AS friend )
 MATCH       (u2:User)<-[fw:FRIENDS_WITH{3,3}]-(u1:User)
-UNNEST      fw AS fwEdgeRecord
-LET         fw_left_vertex = VERTEX_KEY(fwEdgeRecord.LeftVertex)
+UNNEST      fw.Vertices AS pathVertex
 SELECT      u1.user_id AS u1_user_id,
-            fw_left_vertex,
             u2.user_id AS u2_user_id,
-            HOP_COUNT(fw) AS fw_hops
-ORDER BY    u1, fw_left_vertex, u2;
\ No newline at end of file
+            pathVertex.user_id AS path_user_id,
+            LEN(fw.Edges) AS fw_hops
+ORDER BY    u1, pathVertex, u2;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.5.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.5.query.sqlpp
index e12bf13..16060ca 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.5.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.5.query.sqlpp
@@ -29,15 +29,9 @@
                                 F.friend AS friend )
 MATCH       (u2:User)<-[fw1:FRIENDS_WITH{2,2}]-(u1:User),
             (u3:User)<-[fw2:FRIENDS_WITH{2,2}]-(u2)
-UNNEST      fw1 AS fw1EdgeRecord
-UNNEST      fw2 AS fw2EdgeRecord
-LET         fw1_left_vertex = VERTEX_KEY(fw1EdgeRecord.LeftVertex),
-            fw2_left_vertex = VERTEX_KEY(fw2EdgeRecord.LeftVertex)
 SELECT      u1.user_id AS u1_user_id,
-            fw1_left_vertex,
             u2.user_id AS u2_user_id,
-            fw2_left_vertex,
             u3.user_id AS u3_user_id,
-            HOP_COUNT(fw1) AS fw1_hops,
-            HOP_COUNT(fw2) AS fw2_hops
-ORDER BY    u1, fw1_left_vertex, u2, fw2_left_vertex, u3;
\ No newline at end of file
+            LEN(fw1.Edges) AS fw1_hops,
+            LEN(fw2.Edges) AS fw2_hops
+ORDER BY    u1, u2, u3;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.6.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.6.query.sqlpp
index ec08830..7630241 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.6.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.6.query.sqlpp
@@ -28,10 +28,7 @@
                         SELECT  F.user_id AS user_id,
                                 F.friend AS friend )
 MATCH       (u2:User)<-[fw:FRIENDS_WITH{1,1}]-(u1:User)
-UNNEST      fw AS fwEdgeRecord
-LET         fw_left_vertex = VERTEX_KEY(fwEdgeRecord.LeftVertex)
 SELECT      u1.user_id AS u1_user_id,
-            fw_left_vertex,
             u2.user_id AS u2_user_id,
-            HOP_COUNT(fw) AS fw_hops
-ORDER BY    u1, fw_left_vertex, u2;
\ No newline at end of file
+            LEN(fw.Edges) AS fw_hops
+ORDER BY    u1, u2;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.8.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.8.query.sqlpp
index fcedada..56aeb27 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.8.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/fixed-sub-path/fixed-sub-path.8.query.sqlpp
@@ -28,10 +28,13 @@
                         SELECT  F.user_id AS user_id,
                                 F.friend AS friend )
 MATCH       (u2:User)-[fw:FRIENDS_WITH{2,2}]-(u1:User)
-UNNEST      fw AS fwEdgeRecord
-LET         fw_left_vertex = VERTEX_KEY(fwEdgeRecord.LeftVertex)
+LET         fwVertices = ( FROM    fw.Vertices FW
+                           SELECT  VALUE FW.user_id ),
+            fwEdges =    ( FROM    fw.Edges FW
+                           SELECT  VALUE FW.friend )
 SELECT      u1.user_id AS u1_user_id,
-            fw_left_vertex,
             u2.user_id AS u2_user_id,
-            HOP_COUNT(fw) AS fw_hops
-ORDER BY    u1, fw_left_vertex, u2;
\ No newline at end of file
+            fwVertices,
+            fwEdges,
+            LEN(fwEdges) AS fw_hops
+ORDER BY    u1, u2, fwVertices, fwEdges;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.3.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.3.query.sqlpp
index 35463a2..71e441c 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.3.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.3.query.sqlpp
@@ -17,22 +17,14 @@
  * under the License.
  */
 
-// Test each simple vertex function (label, key, properties, and detail).
+// Test each simple vertex function (label and detail).
 FROM GRAPH  VERTEX (:User)
                    PRIMARY KEY (user_id)
                    AS Yelp.Users,
             VERTEX (:Review)
                    PRIMARY KEY (review_id)
-                   AS Yelp.Reviews,
-            EDGE   (:User)<-[:MADE_BY]-(:Review)
-                   SOURCE KEY (review_id)
-                   DESTINATION KEY (user_id)
-                   AS ( FROM    Yelp.Reviews R
-                        SELECT  R.review_id,
-                                R.user_id )
+                   AS Yelp.Reviews
 MATCH       (n)
-SELECT      VERTEX_KEY(n) AS vertexKey,
-            LABEL(n) AS vertexLabel,
-            VERTEX_PROPERTIES(n) AS vertexProperties,
+SELECT      LABEL(n) AS vertexLabel,
             VERTEX_DETAIL(n) AS vertexDetail
 ORDER BY    n;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.4.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.4.query.sqlpp
index 20f08c2..0283334 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.4.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.4.query.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-// Test each simple edge function (direction, label, keys, detail, properties).
+// Test each simple edge function (direction, label, and detail).
 FROM GRAPH  VERTEX (:User)
                    PRIMARY KEY (user_id)
                    AS Yelp.Users,
@@ -37,14 +37,13 @@
                         SELECT  R.review_id,
                                 R.user_id )
 MATCH       (n1)-[e]-(n2)
+LET         sourceVertex = SOURCE_VERTEX(e),
+            destVertex = DEST_VERTEX(e)
 SELECT      DIRECTION(e) AS direction,
-            SOURCE_KEY(e) AS sourceKeyValue,
-            DEST_KEY(e) AS destKeyValue,
-            LEFT_TO_RIGHT_IF(e, n1, n2) AS sourceVertex,
-            RIGHT_TO_LEFT_IF(e, n1, n2) AS destVertex,
-            EDGE_DETAIL(e) AS edgeDetail,
-            EDGE_PROPERTIES(e) AS edgeProperties,
             LABEL(e) AS edgeLabel,
             LABEL(n1) AS n1Label,
-            LABEL(n2) AS n2Label
-ORDER BY    n1, e, n2;
\ No newline at end of file
+            LABEL(n2) AS n2Label,
+            LABEL(sourceVertex) AS sourceVertexLabel,
+            LABEL(destVertex) AS destVertexLabel,
+            EDGE_DETAIL(e) AS edgeDetail
+ORDER BY    direction, edgeLabel, n1Label, n2Label, edgeDetail;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.5.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.5.query.sqlpp
index 3595efb..a427758 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.5.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/graphix-functions/graphix-functions.5.query.sqlpp
@@ -20,34 +20,17 @@
 // Test each path function (edges, hop-count, labels, vertices).
 FROM GRAPH  VERTEX (:User)
                    PRIMARY KEY (user_id)
-                   AS ( FROM      Yelp.Users U
-                        SELECT    VALUE U
-                        ORDER BY  U.user_id
-                        LIMIT     2 ),
-            VERTEX (:Review)
-                   PRIMARY KEY (review_id)
-                   AS ( FROM      Yelp.Reviews R
-                        SELECT    VALUE R
-                        ORDER BY  R.review_id
-                        LIMIT     2 ),
+                   AS Yelp.Users,
             EDGE   (:User)-[:FRIENDS_WITH]->(:User)
                    SOURCE KEY (user_id)
                    DESTINATION KEY (friend)
                    AS ( FROM    Yelp.Friends F
                         SELECT  F.user_id AS user_id,
-                                F.friend AS friend ),
-            EDGE   (:User)<-[:MADE_BY]-(:Review)
-                   SOURCE KEY (review_id)
-                   DESTINATION KEY (user_id)
-                   AS ( FROM    Yelp.Reviews R
-                        SELECT  R.review_id,
-                                R.user_id )
-MATCH       (n1)-[e:{1,1}]-(n2)-(n3) AS p
+                                F.friend AS friend )
+MATCH       (n1)-[e:{1,2}]->(n2)->(n3) AS p
 SELECT      EDGES(p) AS pEdges,
             EDGES(e) AS eEdges,
             HOP_COUNT(p) AS pHopCount,
-            LABELS(p) AS pLabels,
-            LABELS(e) AS eLabels,
             VERTICES(p) AS pVertices,
             VERTICES(e) AS eVertices
 ORDER BY    n1, e, n2, n3;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/inference-resolution/inference-resolution.6.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/inference-resolution/inference-resolution.6.query.sqlpp
index 3d6e9a9..30de634 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/inference-resolution/inference-resolution.6.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/inference-resolution/inference-resolution.6.query.sqlpp
@@ -40,8 +40,7 @@
                    AS ( FROM    Yelp.Reviews R
                         SELECT  R.review_id, R.user_id )
 MATCH       (u:User)-[e:{2,2}]->(n) // (u:User)-[]->()-[]->(n)
-UNNEST      e AS edgeRecord
-LET         ee = edgeRecord.`Edge`
+UNNEST      PATH_EDGES(e) AS ee
 SELECT      DISTINCT LABEL(ee) AS e_label,
                      LABEL(n) AS n_label,
-                     LEN(e) AS e_length;
+                     PATH_HOP_COUNT(e) AS e_length;
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.2.update.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.2.update.sqlpp
index e85ca82..9b027ce 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.2.update.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.2.update.sqlpp
@@ -33,53 +33,3 @@
   { "user_id": 2, "friend": 3, "group_id": 3 },
   { "user_id": 2, "friend": null, "group_id": 3 }
 ];
-
-INSERT INTO       Users [
-  { "user_id": 1, "group_id": 4 },
-  { "user_id": 2, "group_id": 4 },
-  { "user_id": 3, "group_id": 4 }
-];
-INSERT INTO       Friends [
-  { "user_id": 1, "friend": 2, "group_id": 4 },
-  { "user_id": 2, "friend": 3, "group_id": 4 }
-];
-INSERT INTO       Reviews [
-  { "review_id": "A", "user_id": 2, "group_id": 4 }
-];
-
-INSERT INTO       Users [
-  { "user_id": 1, "group_id": 5 },
-  { "user_id": 2, "group_id": 5 },
-  { "user_id": 3, "group_id": 5 },
-  { "user_id": 4, "group_id": 5 },
-  { "user_id": 5, "group_id": 5 }
-];
-INSERT INTO       Friends [
-  { "user_id": 1, "friend": 2, "group_id": 5 },
-  { "user_id": 3, "friend": 1, "group_id": 5 },
-  { "user_id": 4, "friend": 1, "group_id": 5 },
-  { "user_id": 1, "friend": 4, "group_id": 5 }
-];
-INSERT INTO       Reviews [
-  { "review_id": "A", "user_id": 3, "group_id": 5 },
-  { "review_id": "B", "user_id": 4, "group_id": 5 },
-  { "review_id": "C", "user_id": 5, "group_id": 5 }
-];
-
-INSERT INTO       Users [
-  { "user_id": 1, "group_id": 6 },
-  { "user_id": 2, "group_id": 6 },
-  { "user_id": 3, "group_id": 6 },
-  { "user_id": 4, "group_id": 6 },
-  { "user_id": 5, "group_id": 6 }
-];
-INSERT INTO       Friends [
-  { "user_id": 1, "friend": 2, "group_id": 6 },
-  { "user_id": 1, "friend": 3, "group_id": 6 },
-  { "user_id": 3, "friend": 4, "group_id": 6 },
-  { "user_id": 3, "friend": 5, "group_id": 6 }
-];
-INSERT INTO       Reviews [
-  { "review_id": "A", "user_id": 2, "group_id": 6 },
-  { "review_id": "B", "user_id": 3, "group_id": 6 }
-];
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.4.update.sqlpp
similarity index 69%
rename from asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp
rename to asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.4.update.sqlpp
index 24fdd88..d1fac44 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.4.update.sqlpp
@@ -19,24 +19,19 @@
 
 USE               Yelp;
 
+DELETE FROM       Users;
+DELETE FROM       Reviews;
+DELETE FROM       Friends;
+
 INSERT INTO       Users [
-  { "user_id": 1 },
-  { "user_id": 2 },
-  { "user_id": 3 },
-  { "user_id": 4 }
+  { "user_id": 1, "group_id": 4 },
+  { "user_id": 2, "group_id": 4 },
+  { "user_id": 3, "group_id": 4 }
 ];
-
 INSERT INTO       Friends [
-  { "user_id": 1, "friend": 2 },
-  { "user_id": 4, "friend": 2 },
-  { "user_id": 3, "friend": 2 }
+  { "user_id": 1, "friend": 2, "group_id": 4 },
+  { "user_id": 2, "friend": 3, "group_id": 4 }
 ];
-
 INSERT INTO       Reviews [
-  { "review_id": "A", "user_id": 1 },
-  { "review_id": "B", "user_id": 1 },
-  { "review_id": "C", "user_id": 2 },
-  { "review_id": "D", "user_id": 3 },
-  { "review_id": "E", "user_id": 4 },
-  { "review_id": "F", "user_id": 5 }
+  { "review_id": "A", "user_id": 2, "group_id": 4 }
 ];
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.5.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.5.query.sqlpp
index 3f00813..f4fe1cc 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.5.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.5.query.sqlpp
@@ -17,40 +17,36 @@
  * under the License.
  */
 
--- LEFT-MATCH query, with destination of the second LEFT-MATCH edge acting as connecting vertex.
+-- LEFT-MATCH query, with destination of the LEFT-MATCH edge acting as connecting vertex.
 FROM GRAPH  VERTEX (:User)
                    PRIMARY KEY (user_id)
                    AS ( FROM    Yelp.Users U
-                        WHERE   U.group_id = 5
+                        WHERE   U.group_id = 4
                         SELECT  U.user_id ),
             VERTEX (:Review)
                    PRIMARY KEY (review_id)
                    AS ( FROM    Yelp.Reviews R
-                        WHERE   R.group_id = 5
+                        WHERE   R.group_id = 4
                         SELECT  R.review_id ),
             EDGE   (:Review)-[:MADE_BY]->(:User)
                    SOURCE KEY (review_id)
                    DESTINATION KEY (user_id)
                    AS ( FROM    Yelp.Reviews R
-                        WHERE   R.group_id = 5
+                        WHERE   R.group_id = 4
                         SELECT  R.review_id, R.user_id ),
             EDGE   (:User)-[:FRIENDS_WITH]->(:User)
                    SOURCE KEY (user_id)
                    DESTINATION KEY (friend)
                    AS ( FROM    Yelp.Friends F
-                        WHERE   F.group_id = 5
+                        WHERE   F.group_id = 4
                         SELECT  F.user_id, F.friend )
-MATCH       (u2:User)<-[fw1:FRIENDS_WITH]-(u1:User)
-LEFT MATCH  (u3:User)<-[mb:MADE_BY]-(r:Review),
-            (u1)<-[fw2:FRIENDS_WITH]-(u3)
+MATCH       (u2:User)<-[fw:FRIENDS_WITH]-(u1:User)
+LEFT MATCH  (u1)<-[mb:MADE_BY]-(r:Review)
 SELECT      u1.user_id AS u1_user_id,
-            fw1.user_id AS fw1_user_id,
-            fw1.friend AS fw1_friend,
+            fw.user_id AS fw_user_id,
+            fw.friend AS fw_friend,
             u2.user_id AS u2_user_id,
-            u3.user_id AS u3_user_id,
             mb.user_id AS mb_user_id,
             mb.review_id AS mb_review_id,
-            r.review_id AS r_review_id,
-            fw2.user_id AS fw2_user_id,
-            fw2.friend AS fw2_friend
-ORDER BY    u1_user_id, u2_user_id, u3_user_id, r_review_id;
\ No newline at end of file
+            r.review_id AS r_review_id
+ORDER BY    u1_user_id, u2_user_id, r_review_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.6.update.sqlpp
similarity index 60%
copy from asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp
copy to asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.6.update.sqlpp
index 24fdd88..e1e1c5f 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.6.update.sqlpp
@@ -19,24 +19,25 @@
 
 USE               Yelp;
 
+DELETE FROM       Users;
+DELETE FROM       Reviews;
+DELETE FROM       Friends;
+
 INSERT INTO       Users [
-  { "user_id": 1 },
-  { "user_id": 2 },
-  { "user_id": 3 },
-  { "user_id": 4 }
+  { "user_id": 1, "group_id": 5 },
+  { "user_id": 2, "group_id": 5 },
+  { "user_id": 3, "group_id": 5 },
+  { "user_id": 4, "group_id": 5 },
+  { "user_id": 5, "group_id": 5 }
 ];
-
 INSERT INTO       Friends [
-  { "user_id": 1, "friend": 2 },
-  { "user_id": 4, "friend": 2 },
-  { "user_id": 3, "friend": 2 }
+  { "user_id": 1, "friend": 2, "group_id": 5 },
+  { "user_id": 3, "friend": 1, "group_id": 5 },
+  { "user_id": 4, "friend": 1, "group_id": 5 },
+  { "user_id": 1, "friend": 4, "group_id": 5 }
 ];
-
 INSERT INTO       Reviews [
-  { "review_id": "A", "user_id": 1 },
-  { "review_id": "B", "user_id": 1 },
-  { "review_id": "C", "user_id": 2 },
-  { "review_id": "D", "user_id": 3 },
-  { "review_id": "E", "user_id": 4 },
-  { "review_id": "F", "user_id": 5 }
+  { "review_id": "A", "user_id": 3, "group_id": 5 },
+  { "review_id": "B", "user_id": 4, "group_id": 5 },
+  { "review_id": "C", "user_id": 5, "group_id": 5 }
 ];
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.4.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.7.query.sqlpp
similarity index 71%
rename from asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.4.query.sqlpp
rename to asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.7.query.sqlpp
index f4fe1cc..3f00813 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.4.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.7.query.sqlpp
@@ -17,36 +17,40 @@
  * under the License.
  */
 
--- LEFT-MATCH query, with destination of the LEFT-MATCH edge acting as connecting vertex.
+-- LEFT-MATCH query, with destination of the second LEFT-MATCH edge acting as connecting vertex.
 FROM GRAPH  VERTEX (:User)
                    PRIMARY KEY (user_id)
                    AS ( FROM    Yelp.Users U
-                        WHERE   U.group_id = 4
+                        WHERE   U.group_id = 5
                         SELECT  U.user_id ),
             VERTEX (:Review)
                    PRIMARY KEY (review_id)
                    AS ( FROM    Yelp.Reviews R
-                        WHERE   R.group_id = 4
+                        WHERE   R.group_id = 5
                         SELECT  R.review_id ),
             EDGE   (:Review)-[:MADE_BY]->(:User)
                    SOURCE KEY (review_id)
                    DESTINATION KEY (user_id)
                    AS ( FROM    Yelp.Reviews R
-                        WHERE   R.group_id = 4
+                        WHERE   R.group_id = 5
                         SELECT  R.review_id, R.user_id ),
             EDGE   (:User)-[:FRIENDS_WITH]->(:User)
                    SOURCE KEY (user_id)
                    DESTINATION KEY (friend)
                    AS ( FROM    Yelp.Friends F
-                        WHERE   F.group_id = 4
+                        WHERE   F.group_id = 5
                         SELECT  F.user_id, F.friend )
-MATCH       (u2:User)<-[fw:FRIENDS_WITH]-(u1:User)
-LEFT MATCH  (u1)<-[mb:MADE_BY]-(r:Review)
+MATCH       (u2:User)<-[fw1:FRIENDS_WITH]-(u1:User)
+LEFT MATCH  (u3:User)<-[mb:MADE_BY]-(r:Review),
+            (u1)<-[fw2:FRIENDS_WITH]-(u3)
 SELECT      u1.user_id AS u1_user_id,
-            fw.user_id AS fw_user_id,
-            fw.friend AS fw_friend,
+            fw1.user_id AS fw1_user_id,
+            fw1.friend AS fw1_friend,
             u2.user_id AS u2_user_id,
+            u3.user_id AS u3_user_id,
             mb.user_id AS mb_user_id,
             mb.review_id AS mb_review_id,
-            r.review_id AS r_review_id
-ORDER BY    u1_user_id, u2_user_id, r_review_id;
\ No newline at end of file
+            r.review_id AS r_review_id,
+            fw2.user_id AS fw2_user_id,
+            fw2.friend AS fw2_friend
+ORDER BY    u1_user_id, u2_user_id, u3_user_id, r_review_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.8.update.sqlpp
similarity index 62%
copy from asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp
copy to asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.8.update.sqlpp
index 24fdd88..78d42de 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.2.update.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.8.update.sqlpp
@@ -19,24 +19,24 @@
 
 USE               Yelp;
 
+DELETE FROM       Users;
+DELETE FROM       Reviews;
+DELETE FROM       Friends;
+
 INSERT INTO       Users [
-  { "user_id": 1 },
-  { "user_id": 2 },
-  { "user_id": 3 },
-  { "user_id": 4 }
+  { "user_id": 1, "group_id": 6 },
+  { "user_id": 2, "group_id": 6 },
+  { "user_id": 3, "group_id": 6 },
+  { "user_id": 4, "group_id": 6 },
+  { "user_id": 5, "group_id": 6 }
 ];
-
 INSERT INTO       Friends [
-  { "user_id": 1, "friend": 2 },
-  { "user_id": 4, "friend": 2 },
-  { "user_id": 3, "friend": 2 }
+  { "user_id": 1, "friend": 2, "group_id": 6 },
+  { "user_id": 1, "friend": 3, "group_id": 6 },
+  { "user_id": 3, "friend": 4, "group_id": 6 },
+  { "user_id": 3, "friend": 5, "group_id": 6 }
 ];
-
 INSERT INTO       Reviews [
-  { "review_id": "A", "user_id": 1 },
-  { "review_id": "B", "user_id": 1 },
-  { "review_id": "C", "user_id": 2 },
-  { "review_id": "D", "user_id": 3 },
-  { "review_id": "E", "user_id": 4 },
-  { "review_id": "F", "user_id": 5 }
+  { "review_id": "A", "user_id": 2, "group_id": 6 },
+  { "review_id": "B", "user_id": 3, "group_id": 6 }
 ];
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.6.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.9.query.sqlpp
similarity index 100%
rename from asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.6.query.sqlpp
rename to asterix-graphix/src/test/resources/runtimets/queries/graphix/left-match/left-match.9.query.sqlpp
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.1.ddl.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.1.ddl.sqlpp
deleted file mode 100644
index 96ec87c..0000000
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.1.ddl.sqlpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-DROP DATAVERSE    Yelp IF EXISTS;
-CREATE DATAVERSE  Yelp;
-USE               Yelp;
-
-CREATE TYPE       GenericType
-AS                { _id: uuid };
-CREATE DATASET    Friends (GenericType)
-PRIMARY KEY       _id AUTOGENERATED;
-CREATE DATASET    Reviews (GenericType)
-PRIMARY KEY       _id AUTOGENERATED;
-CREATE DATASET    Users (GenericType)
-PRIMARY KEY       _id AUTOGENERATED;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.3.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.3.query.sqlpp
deleted file mode 100644
index 6b394d6..0000000
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.3.query.sqlpp
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
--- param max-warnings:string=1
-
-// We should be able to determine that (u) is of label User.
-SET         `graphix.resolver` "no-resolution";
-FROM GRAPH  VERTEX (:User)
-                   PRIMARY KEY (user_id)
-                   AS Yelp.Users
-MATCH       (u)
-SELECT      u.user_id
-ORDER BY    u.user_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.4.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.4.query.sqlpp
deleted file mode 100644
index e78aa4b..0000000
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.4.query.sqlpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
--- param max-warnings:string=3
-
-// The (n) vertex should assume all defined vertex labels.
-SET         `graphix.resolver` "no-resolution";
-FROM GRAPH  VERTEX (:User)
-                   PRIMARY KEY (user_id)
-                   AS Yelp.Users,
-            VERTEX (:Review)
-                   PRIMARY KEY (review_id)
-                   AS Yelp.Reviews
-MATCH       (n)
-SELECT      n.user_id,
-            n.review_id
-ORDER BY    n.user_id,
-            n.review_id;
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.5.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.5.query.sqlpp
deleted file mode 100644
index 1d4b4c2..0000000
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/minimal-resolution/minimal-resolution.5.query.sqlpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
--- param max-warnings:string=3
-
-// The (n) and (m) vertices should assume all defined vertex labels, and (e) should assume all edge labels.
-SET         `graphix.resolver` "no-resolution";
-FROM GRAPH  VERTEX (:User)
-                   PRIMARY KEY (user_id)
-                   AS ( FROM    Yelp.Users U
-                        SELECT  U.user_id ),
-            VERTEX (:Review)
-                   PRIMARY KEY (review_id)
-                   AS ( FROM    Yelp.Reviews R
-                        SELECT  R.review_id ),
-            EDGE   (:Review)-[:MADE_BY]->(:User)
-                   SOURCE KEY (review_id)
-                   DESTINATION KEY (user_id)
-                   AS ( FROM    Yelp.Reviews R
-                        SELECT  R.review_id, R.user_id )
-MATCH       (m)-[e]-(n)
-SELECT      m.user_id AS left_user_id,
-            m.review_id AS left_review_id,
-            n.user_id AS right_user_id,
-            n.review_id AS right_review_id,
-            e.user_id AS e_user_id,
-            e.review_id AS e_review_id
-ORDER BY    left_user_id,
-            left_review_id,
-            right_user_id,
-            right_review_id,
-            e_user_id,
-            e_review_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/on-query-error/on-query-error.9.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/on-query-error/on-query-error.9.query.sqlpp
index ea9aeb8..6093a94 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/on-query-error/on-query-error.9.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/on-query-error/on-query-error.9.query.sqlpp
@@ -23,8 +23,8 @@
                     PRIMARY KEY (_id)
                     AS GenericDataset,
             VERTEX  (:Vertex1)
-                    PRIMARY KEY (_other_id)
-                    AS GenericDataset,
+                    PRIMARY KEY (_id)
+                    AS ( FROM GenericDataset SELECT * ),
             EDGE    (:Vertex1)-[:EDGE_1]->(:Vertex1)
                     SOURCE KEY (_id)
                     DESTINATION KEY (_to_id)
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.3.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.3.query.sqlpp
index e110262..2554edb 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.3.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.3.query.sqlpp
@@ -22,7 +22,7 @@
                    PRIMARY KEY (user_id)
                    AS Yelp.Users
 MATCH       (u) AS p
-UNNEST      p AS edgeRecord
-SELECT      PATH_HOP_COUNT(p) AS pathLength,
-            edgeRecord
-ORDER BY    u.user_id, VERTEX_KEY(edgeRecord.LeftVertex);
+UNNEST      p.Vertices AS pathVertex
+SELECT      LEN(p.Edges) AS pathLength,
+            pathVertex
+ORDER BY    u.user_id;
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.4.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.4.query.sqlpp
index a96f62a..28136cc 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.4.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.4.query.sqlpp
@@ -30,10 +30,8 @@
                    AS ( FROM    Yelp.Reviews R
                         SELECT  R.review_id, R.user_id )
 MATCH       (u:User)<-[:MADE_BY]-(r:Review) AS p
-UNNEST      p AS edgeRecord
-SELECT      PATH_HOP_COUNT(p) AS pathLength,
+UNNEST      p.Edges AS edgeRecord
+SELECT      LEN(p.Edges) AS pathLength,
             edgeRecord
 ORDER BY    u.user_id,
-            r.review_d,
-            VERTEX_KEY(edgeRecord.LeftVertex),
-            SOURCE_KEY(edgeRecord.`Edge`);
+            r.review_id;
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.5.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.5.query.sqlpp
index 13078e0..5fcd088 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.5.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.5.query.sqlpp
@@ -28,11 +28,13 @@
                         WHERE   F.friend_group = "A"
                         SELECT  F.user_id, F.friend )
 MATCH       (u)-[e1]-(v)-[e2]-(w) AS p
-UNNEST      p AS edgeRecord
-SELECT      PATH_HOP_COUNT(p) AS pathLength,
-            edgeRecord
-ORDER BY    u.user_id,
-            v.user_id,
-            w.user_id,
-            VERTEX_KEY(edgeRecord.LeftVertex),
-            SOURCE_KEY(edgeRecord.`Edge`);
\ No newline at end of file
+UNNEST      p.Edges AS edgeRecord
+SELECT      LEN(p.Edges) AS pathLength,
+            edgeRecord,
+            u.user_id AS u_user_id,
+            v.user_id AS v_user_id,
+            w.user_id AS w_user_id
+ORDER BY    u_user_id,
+            v_user_id,
+            w_user_id,
+            edgeRecord.user_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.6.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.6.query.sqlpp
index ffef1a7..595463c 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.6.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/path-variable/path-variable.6.query.sqlpp
@@ -28,10 +28,8 @@
                         WHERE   F.friend_group = "A"
                         SELECT  F.user_id, F.friend )
 MATCH       (u)-[e1:{1,2}]-(v) AS p
-UNNEST      p AS edgeRecord
-SELECT      PATH_HOP_COUNT(p) AS pathLength,
-            edgeRecord
-ORDER BY    u.user_id,
-            v.user_id,
-            VERTEX_KEY(edgeRecord.LeftVertex),
-            SOURCE_KEY(edgeRecord.`Edge`);
\ No newline at end of file
+SELECT      LEN(p.Edges) AS pathLength,
+            u.user_id AS u_user_id,
+            v.user_id AS v_user_id
+ORDER BY    u_user_id,
+            v_user_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/scope-checking/scope-checking.5.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/scope-checking/scope-checking.5.query.sqlpp
index 40e57c3..c0c8d48 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/scope-checking/scope-checking.5.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/scope-checking/scope-checking.5.query.sqlpp
@@ -33,7 +33,9 @@
                              SELECT    VALUE ( FROM    PATH_VERTICES(gi.p) pv
                                                SELECT  VALUE pv.user_id )
                              ORDER BY  PATH_HOP_COUNT(gi.p) ASC
-                             LIMIT     1 )
+                             LIMIT     1 )[0]
 SELECT      u1.user_id AS u1_user_id,
             u2.user_id AS u2_user_id,
-            shortestPath[0] AS shortestPath;
\ No newline at end of file
+            shortestPath
+ORDER BY    u1_user_id,
+            u2_user_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/scope-checking/scope-checking.6.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/scope-checking/scope-checking.6.query.sqlpp
index 1404a75..62e6a83 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/scope-checking/scope-checking.6.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/scope-checking/scope-checking.6.query.sqlpp
@@ -39,4 +39,6 @@
               SELECT    VALUE ( FROM    gi.pathVertices AS pv
                                 SELECT  VALUE pv.user_id )
               ORDER BY  gi.pathHopCount ASC
-              LIMIT     1 )[0] AS shortestPath;
\ No newline at end of file
+              LIMIT     1 )[0] AS shortestPath
+ORDER BY    myUser1,
+            myUser2;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.2.update.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.2.update.sqlpp
index 21365f1..d89e52b 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.2.update.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.2.update.sqlpp
@@ -33,10 +33,10 @@
 ];
 
 INSERT INTO       Reviews [
-  { "review_id": "A", "user_id": 1 },
-  { "review_id": "B", "user_id": 1 },
-  { "review_id": "C", "user_id": 2 },
-  { "review_id": "D", "user_id": 3 },
-  { "review_id": "E", "user_id": 4 },
-  { "review_id": "F", "user_id": 5 }
+  { "review_id": "A", "review_user_id": 1 },
+  { "review_id": "B", "review_user_id": 1 },
+  { "review_id": "C", "review_user_id": 2 },
+  { "review_id": "D", "review_user_id": 3 },
+  { "review_id": "E", "review_user_id": 4 },
+  { "review_id": "F", "review_user_id": 5 }
 ];
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.4.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.4.query.sqlpp
index 9e57a33..79bec1a 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.4.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.4.query.sqlpp
@@ -17,29 +17,24 @@
  * under the License.
  */
 
-// Two edge definitions, single vertex definition on both sides.
+// One edge definition, single vertex definition on both sides, with a dangling vertex.
 FROM GRAPH  VERTEX (:User)
                    PRIMARY KEY (user_id)
                    AS Yelp.Users,
-            EDGE   (:User)-[:FRIENDS_WITH]->(:User)
-                   SOURCE KEY (user_id)
-                   DESTINATION KEY (friend)
-                   AS ( FROM    Yelp.Users U
-                        UNNEST  U.friends F
-                        SELECT  U.user_id AS user_id,
-                                F AS friend ),
-            EDGE   (:User)-[:FRIENDS_WITH]->(:User)
-                   SOURCE KEY (user_id)
-                   DESTINATION KEY (friend)
-                   AS ( FROM    Yelp.Friends F
-                        SELECT  F.user_id AS user_id,
-                                F.friend AS friend )
-MATCH       (u2:User)<-[fw:FRIENDS_WITH]-(u1:User)
-SELECT      u1.user_id AS u1_user_id,
-            u2.user_id AS u2_user_id,
-            fw.user_id AS fw_user_id,
-            fw.friend AS fw_friend
-ORDER BY    u1_user_id,
-            u2_user_id,
-            fw_user_id,
-            fw_friend;
+            VERTEX (:Review)
+                   PRIMARY KEY (review_id)
+                   AS Yelp.Reviews,
+            EDGE   (:Review)-[:MADE_BY]->(:User)
+                   SOURCE KEY (review_id)
+                   DESTINATION KEY (review_user_id)
+                   AS ( FROM    Yelp.Reviews R
+                        SELECT  R.review_user_id, R.review_id )
+MATCH       (u:User)<-[:MADE_BY]-(r:Review), (n)
+SELECT      u.user_id AS u_user_id,
+            r.review_id AS r_review_id,
+            n.user_id AS n_user_id,
+            n.review_id AS n_review_id
+ORDER BY    u_user_id,
+            r_review_id,
+            n_user_id,
+            n_review_id;
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.5.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.5.query.sqlpp
index ff0d317..ac35dec 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.5.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.5.query.sqlpp
@@ -17,33 +17,21 @@
  * under the License.
  */
 
-// Two edge definitions, one vertex definition on the source and two vertex definitions on the destination.
+// One edge definition, single vertex definition on both sides, undirected.
 FROM GRAPH  VERTEX (:User)
                    PRIMARY KEY (user_id)
                    AS Yelp.Users,
-            VERTEX (:User)
-                   PRIMARY KEY (user_id)
-                   AS ( FROM    Yelp.Friends F
-                        WHERE   F.user_id NOT IN (
-                            FROM    Yelp.Users U
-                            SELECT  VALUE U.user_id
-                        )
-                        SELECT  DISTINCT F.user_id ),
             EDGE   (:User)-[:FRIENDS_WITH]->(:User)
                    SOURCE KEY (user_id)
                    DESTINATION KEY (friend)
                    AS ( FROM    Yelp.Users U
                         UNNEST  U.friends F
                         SELECT  U.user_id AS user_id,
-                                F AS friend ),
-            EDGE   (:User)-[:FRIENDS_WITH]->(:User)
-                   SOURCE KEY (user_id)
-                   DESTINATION KEY (friend)
-                   AS ( FROM    Yelp.Friends F
-                        SELECT  F.user_id AS user_id,
-                                F.friend AS friend )
-MATCH       (u2:User)<-[:FRIENDS_WITH]-(u1:User)
+                                F AS friend )
+MATCH       (u2:User)-[fw:FRIENDS_WITH]-(u1:User)
 SELECT      u1.user_id AS u1_user_id,
-            u2.user_id AS u2_user_id
-ORDER BY    u1_user_id,
-            u2_user_id;
\ No newline at end of file
+            u2.user_id AS u2_user_id,
+            u1.friends AS friends,
+            fw.user_id AS fw_user_id,
+            fw.friend AS fw_friend
+ORDER BY    u1_user_id, u2_user_id, fw_user_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.6.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.6.query.sqlpp
deleted file mode 100644
index 298b5c8..0000000
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-1-edge/simple-1-edge.6.query.sqlpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-// One edge definition, single vertex definition on both sides, with a dangling vertex.
-FROM GRAPH  VERTEX (:User)
-                   PRIMARY KEY (user_id)
-                   AS Yelp.Users,
-            VERTEX (:Review)
-                   PRIMARY KEY (review_id)
-                   AS ( FROM   Yelp.Reviews R
-                        SELECT R.user_id AS review_user_id, R.review_id ),
-            EDGE   (:Review)-[:MADE_BY]->(:User)
-                   SOURCE KEY (review_id)
-                   DESTINATION KEY (user_id)
-                   AS ( FROM    Yelp.Reviews R
-                        SELECT  R.user_id, R.review_id )
-MATCH       (u:User)<-[:MADE_BY]-(r:Review), (n)
-SELECT      u.user_id AS u_user_id,
-            r.review_id AS r_review_id,
-            r.user_id AS r_user_id,
-            n.user_id AS n_user_id,
-            n.review_id AS n_review_id
-ORDER BY    u_user_id,
-            r_review_id,
-            r_user_id,
-            n_user_id,
-            n_review_id;
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-n-edge/simple-n-edge.7.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-n-edge/simple-n-edge.7.query.sqlpp
index 56a0672..513c87a 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-n-edge/simple-n-edge.7.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/simple-n-edge/simple-n-edge.7.query.sqlpp
@@ -25,7 +25,7 @@
                    SOURCE KEY (user_id)
                    DESTINATION KEY (friend)
                    AS ( FROM    Yelp.Friends F
-                        SELECT  F.* )
+                        SELECT  VALUE F )
 MATCH       (u)-(v)-(w)-(y)
 SELECT      u.user_id AS u_user_id,
             v.user_id AS v_user_id,
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/variable-sub-path/variable-sub-path.3.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/variable-sub-path/variable-sub-path.3.query.sqlpp
index c5c1d8d..6a1721c 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/variable-sub-path/variable-sub-path.3.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/variable-sub-path/variable-sub-path.3.query.sqlpp
@@ -28,10 +28,10 @@
                         SELECT  F.user_id AS user_id,
                                 F.friend AS friend )
 MATCH       (u2:User)<-[fw:FRIENDS_WITH{1,3}]-(u1:User)
-UNNEST      fw AS fwEdgeRecord
-LET         fw_left_vertex = VERTEX_KEY(fwEdgeRecord.LeftVertex)
+LET         fw_edge = ( FROM    fw.Edges FW
+                        SELECT  VALUE FW.friend )
 SELECT      u1.user_id AS u1_user_id,
-            fw_left_vertex,
             u2.user_id AS u2_user_id,
-            HOP_COUNT(fw) AS fw_count
-ORDER BY    u1, fw_left_vertex, u2;
\ No newline at end of file
+            fw_edge,
+            LEN(fw_edge) AS fw_count
+ORDER BY    u1_user_id, fw_edge, u2_user_id;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/queries/graphix/variable-sub-path/variable-sub-path.4.query.sqlpp b/asterix-graphix/src/test/resources/runtimets/queries/graphix/variable-sub-path/variable-sub-path.4.query.sqlpp
index 83a78b4..e03c56d 100644
--- a/asterix-graphix/src/test/resources/runtimets/queries/graphix/variable-sub-path/variable-sub-path.4.query.sqlpp
+++ b/asterix-graphix/src/test/resources/runtimets/queries/graphix/variable-sub-path/variable-sub-path.4.query.sqlpp
@@ -28,11 +28,10 @@
                         SELECT  F.user_id AS user_id,
                                 F.friend AS friend )
 MATCH       (u2:User)-[fw:FRIENDS_WITH{1,2}]-(u1:User)
-UNNEST      fw AS fwEdgeRecord
-LET         fw_left_vertex = VERTEX_KEY(fwEdgeRecord.LeftVertex)
+LET         fw_edge =    ( FROM    fw.Edges FW
+                           SELECT  VALUE FW.friend )
 SELECT      u1.user_id AS u1_user_id,
-            fw_left_vertex,
-            DIRECTION(fwEdgeRecord.`Edge`) AS dir,
             u2.user_id AS u2_user_id,
-            HOP_COUNT(fw) AS fw_hops
-ORDER BY    u1, fw_left_vertex, u2;
\ No newline at end of file
+            fw_edge,
+            LEN(fw_edge) AS fw_hops
+ORDER BY    u1_user_id, u2_user_id, fw_edge;
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.3.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.3.adm
index 45a5043..3cd67b3 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.3.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.3.adm
@@ -1,8 +1,12 @@
-{ "fw_hops": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 2, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 5 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 5 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 6 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 6 }, "u2_user_id": 6 }
\ No newline at end of file
+{ "fw_hops": 2, "u1_user_id": 1, "u2_user_id": 3, "path_user_id": 1 }
+{ "fw_hops": 2, "u1_user_id": 1, "u2_user_id": 3, "path_user_id": 2 }
+{ "fw_hops": 2, "u1_user_id": 1, "u2_user_id": 3, "path_user_id": 3 }
+{ "fw_hops": 2, "u1_user_id": 2, "u2_user_id": 4, "path_user_id": 2 }
+{ "fw_hops": 2, "u1_user_id": 2, "u2_user_id": 4, "path_user_id": 3 }
+{ "fw_hops": 2, "u1_user_id": 2, "u2_user_id": 4, "path_user_id": 4 }
+{ "fw_hops": 2, "u1_user_id": 3, "u2_user_id": 5, "path_user_id": 3 }
+{ "fw_hops": 2, "u1_user_id": 3, "u2_user_id": 5, "path_user_id": 4 }
+{ "fw_hops": 2, "u1_user_id": 3, "u2_user_id": 5, "path_user_id": 5 }
+{ "fw_hops": 2, "u1_user_id": 4, "u2_user_id": 6, "path_user_id": 4 }
+{ "fw_hops": 2, "u1_user_id": 4, "u2_user_id": 6, "path_user_id": 5 }
+{ "fw_hops": 2, "u1_user_id": 4, "u2_user_id": 6, "path_user_id": 6 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.4.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.4.adm
index d7b0151..faeeb87 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.4.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.4.adm
@@ -1,9 +1,12 @@
-{ "fw_hops": 3, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 4 }
-{ "fw_hops": 3, "u1_user_id": 1, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 4 }
-{ "fw_hops": 3, "u1_user_id": 1, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 4 }
-{ "fw_hops": 3, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 5 }
-{ "fw_hops": 3, "u1_user_id": 2, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 5 }
-{ "fw_hops": 3, "u1_user_id": 2, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 5 }
-{ "fw_hops": 3, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 6 }
-{ "fw_hops": 3, "u1_user_id": 3, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 6 }
-{ "fw_hops": 3, "u1_user_id": 3, "fw_left_vertex": { "user_id": 6 }, "u2_user_id": 6 }
\ No newline at end of file
+{ "fw_hops": 3, "u1_user_id": 1, "u2_user_id": 4, "path_user_id": 1 }
+{ "fw_hops": 3, "u1_user_id": 1, "u2_user_id": 4, "path_user_id": 2 }
+{ "fw_hops": 3, "u1_user_id": 1, "u2_user_id": 4, "path_user_id": 3 }
+{ "fw_hops": 3, "u1_user_id": 1, "u2_user_id": 4, "path_user_id": 4 }
+{ "fw_hops": 3, "u1_user_id": 2, "u2_user_id": 5, "path_user_id": 2 }
+{ "fw_hops": 3, "u1_user_id": 2, "u2_user_id": 5, "path_user_id": 3 }
+{ "fw_hops": 3, "u1_user_id": 2, "u2_user_id": 5, "path_user_id": 4 }
+{ "fw_hops": 3, "u1_user_id": 2, "u2_user_id": 5, "path_user_id": 5 }
+{ "fw_hops": 3, "u1_user_id": 3, "u2_user_id": 6, "path_user_id": 3 }
+{ "fw_hops": 3, "u1_user_id": 3, "u2_user_id": 6, "path_user_id": 4 }
+{ "fw_hops": 3, "u1_user_id": 3, "u2_user_id": 6, "path_user_id": 5 }
+{ "fw_hops": 3, "u1_user_id": 3, "u2_user_id": 6, "path_user_id": 6 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.5.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.5.adm
index eb23c4f..7fd84a1 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.5.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.5.adm
@@ -1,8 +1,2 @@
-{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 1, "fw1_left_vertex": { "user_id": 2 }, "u2_user_id": 3, "fw2_left_vertex": { "user_id": 4 }, "u3_user_id": 5 }
-{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 1, "fw1_left_vertex": { "user_id": 2 }, "u2_user_id": 3, "fw2_left_vertex": { "user_id": 5 }, "u3_user_id": 5 }
-{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 1, "fw1_left_vertex": { "user_id": 3 }, "u2_user_id": 3, "fw2_left_vertex": { "user_id": 4 }, "u3_user_id": 5 }
-{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 1, "fw1_left_vertex": { "user_id": 3 }, "u2_user_id": 3, "fw2_left_vertex": { "user_id": 5 }, "u3_user_id": 5 }
-{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 2, "fw1_left_vertex": { "user_id": 3 }, "u2_user_id": 4, "fw2_left_vertex": { "user_id": 5 }, "u3_user_id": 6 }
-{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 2, "fw1_left_vertex": { "user_id": 3 }, "u2_user_id": 4, "fw2_left_vertex": { "user_id": 6 }, "u3_user_id": 6 }
-{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 2, "fw1_left_vertex": { "user_id": 4 }, "u2_user_id": 4, "fw2_left_vertex": { "user_id": 5 }, "u3_user_id": 6 }
-{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 2, "fw1_left_vertex": { "user_id": 4 }, "u2_user_id": 4, "fw2_left_vertex": { "user_id": 6 }, "u3_user_id": 6 }
\ No newline at end of file
+{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 1, "u2_user_id": 3, "u3_user_id": 5 }
+{ "fw1_hops": 2, "fw2_hops": 2, "u1_user_id": 2, "u2_user_id": 4, "u3_user_id": 6 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.6.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.6.adm
index 6b486c7..5503c0e 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.6.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.6.adm
@@ -1,5 +1,5 @@
-{ "fw_hops": 1, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 2 }
-{ "fw_hops": 1, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 3 }
-{ "fw_hops": 1, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 4 }
-{ "fw_hops": 1, "u1_user_id": 4, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 5 }
-{ "fw_hops": 1, "u1_user_id": 5, "fw_left_vertex": { "user_id": 6 }, "u2_user_id": 6 }
\ No newline at end of file
+{ "fw_hops": 1, "u1_user_id": 1, "u2_user_id": 2 }
+{ "fw_hops": 1, "u1_user_id": 2, "u2_user_id": 3 }
+{ "fw_hops": 1, "u1_user_id": 3, "u2_user_id": 4 }
+{ "fw_hops": 1, "u1_user_id": 4, "u2_user_id": 5 }
+{ "fw_hops": 1, "u1_user_id": 5, "u2_user_id": 6 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.8.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.8.adm
index 8d03172..0bdf79c 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.8.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/fixed-sub-path/fixed-sub-path.8.adm
@@ -1,20 +1,10 @@
-{ "fw_hops": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 2, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 1 }, "u2_user_id": 1 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 1 }, "u2_user_id": 1 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 1 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 1 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 5 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 5 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 2 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 2 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 6 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 6 }, "u2_user_id": 6 }
-{ "fw_hops": 2, "u1_user_id": 5, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 5, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 6, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 6, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 4 }
\ No newline at end of file
+{ "fwVertices": [ 3, 2, 1 ], "fwEdges": [ 3, 1 ], "fw_hops": 2, "u1_user_id": 1, "u2_user_id": 3 }
+{ "fwVertices": [ 3, 2, 1 ], "fwEdges": [ 3, 2 ], "fw_hops": 2, "u1_user_id": 1, "u2_user_id": 3 }
+{ "fwVertices": [ 4, 3, 2 ], "fwEdges": [ 4, 3 ], "fw_hops": 2, "u1_user_id": 2, "u2_user_id": 4 }
+{ "fwVertices": [ 1, 2, 3 ], "fwEdges": [ 1, 3 ], "fw_hops": 2, "u1_user_id": 3, "u2_user_id": 1 }
+{ "fwVertices": [ 1, 2, 3 ], "fwEdges": [ 2, 3 ], "fw_hops": 2, "u1_user_id": 3, "u2_user_id": 1 }
+{ "fwVertices": [ 5, 4, 3 ], "fwEdges": [ 5, 4 ], "fw_hops": 2, "u1_user_id": 3, "u2_user_id": 5 }
+{ "fwVertices": [ 2, 3, 4 ], "fwEdges": [ 3, 4 ], "fw_hops": 2, "u1_user_id": 4, "u2_user_id": 2 }
+{ "fwVertices": [ 6, 5, 4 ], "fwEdges": [ 6, 5 ], "fw_hops": 2, "u1_user_id": 4, "u2_user_id": 6 }
+{ "fwVertices": [ 3, 4, 5 ], "fwEdges": [ 4, 5 ], "fw_hops": 2, "u1_user_id": 5, "u2_user_id": 3 }
+{ "fwVertices": [ 4, 5, 6 ], "fwEdges": [ 5, 6 ], "fw_hops": 2, "u1_user_id": 6, "u2_user_id": 4 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.3.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.3.adm
index d746e73..c514419 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.3.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.3.adm
@@ -1,8 +1,8 @@
-{ "vertexProperties": { "review_id": "A", "user_id": 1 }, "vertexDetail": { "Label": "Review", "PrimaryKey": { "review_id": "A" } }, "vertexKey": { "review_id": "A" }, "vertexLabel": "Review" }
-{ "vertexProperties": { "review_id": "B", "user_id": 2 }, "vertexDetail": { "Label": "Review", "PrimaryKey": { "review_id": "B" } }, "vertexKey": { "review_id": "B" }, "vertexLabel": "Review" }
-{ "vertexProperties": { "user_id": 1 }, "vertexDetail": { "Label": "User", "PrimaryKey": { "user_id": 1 } }, "vertexKey": { "user_id": 1 }, "vertexLabel": "User" }
-{ "vertexProperties": { "user_id": 2 }, "vertexDetail": { "Label": "User", "PrimaryKey": { "user_id": 2 } }, "vertexKey": { "user_id": 2 }, "vertexLabel": "User" }
-{ "vertexProperties": { "user_id": 3 }, "vertexDetail": { "Label": "User", "PrimaryKey": { "user_id": 3 } }, "vertexKey": { "user_id": 3 }, "vertexLabel": "User" }
-{ "vertexProperties": { "user_id": 4 }, "vertexDetail": { "Label": "User", "PrimaryKey": { "user_id": 4 } }, "vertexKey": { "user_id": 4 }, "vertexLabel": "User" }
-{ "vertexProperties": { "user_id": 5 }, "vertexDetail": { "Label": "User", "PrimaryKey": { "user_id": 5 } }, "vertexKey": { "user_id": 5 }, "vertexLabel": "User" }
-{ "vertexProperties": { "user_id": 6 }, "vertexDetail": { "Label": "User", "PrimaryKey": { "user_id": 6 } }, "vertexKey": { "user_id": 6 }, "vertexLabel": "User" }
\ No newline at end of file
+{ "vertexLabel": "Review", "vertexDetail": { "ElementLabel": "Review", "VertexKey": [ "A" ] } }
+{ "vertexLabel": "Review", "vertexDetail": { "ElementLabel": "Review", "VertexKey": [ "B" ] } }
+{ "vertexLabel": "User", "vertexDetail": { "ElementLabel": "User", "VertexKey": [ 1 ] } }
+{ "vertexLabel": "User", "vertexDetail": { "ElementLabel": "User", "VertexKey": [ 2 ] } }
+{ "vertexLabel": "User", "vertexDetail": { "ElementLabel": "User", "VertexKey": [ 3 ] } }
+{ "vertexLabel": "User", "vertexDetail": { "ElementLabel": "User", "VertexKey": [ 4 ] } }
+{ "vertexLabel": "User", "vertexDetail": { "ElementLabel": "User", "VertexKey": [ 5 ] } }
+{ "vertexLabel": "User", "vertexDetail": { "ElementLabel": "User", "VertexKey": [ 6 ] } }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.4.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.4.adm
index a4b2231..c81b251 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.4.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.4.adm
@@ -1,14 +1,14 @@
-{ "sourceVertex": { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "A" } } }, "destVertex": { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "edgeDetail": { "Label": "MADE_BY", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "review_id": "A" }, "DestinationKey": { "user_id": 1 } }, "edgeProperties": { "review_id": "A", "user_id": 1 }, "direction": "LEFT_TO_RIGHT", "sourceKeyValue": { "review_id": "A" }, "destKeyValue": { "user_id": 1 }, "edgeLabel": "MADE_BY", "n1Label": "Review", "n2Label": "User" }
-{ "sourceVertex": { "review_id": "B", "user_id": 2, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "B" } } }, "destVertex": { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "edgeDetail": { "Label": "MADE_BY", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "review_id": "B" }, "DestinationKey": { "user_id": 2 } }, "edgeProperties": { "review_id": "B", "user_id": 2 }, "direction": "LEFT_TO_RIGHT", "sourceKeyValue": { "review_id": "B" }, "destKeyValue": { "user_id": 2 }, "edgeLabel": "MADE_BY", "n1Label": "Review", "n2Label": "User" }
-{ "sourceVertex": { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "destVertex": { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } }, "edgeProperties": { "user_id": 1, "friend": 2 }, "direction": "LEFT_TO_RIGHT", "sourceKeyValue": { "user_id": 1 }, "destKeyValue": { "friend": 2 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "A" } } }, "destVertex": { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "edgeDetail": { "Label": "MADE_BY", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "A" }, "DestinationKey": { "user_id": 1 } }, "edgeProperties": { "review_id": "A", "user_id": 1 }, "direction": "RIGHT_TO_LEFT", "sourceKeyValue": { "review_id": "A" }, "destKeyValue": { "user_id": 1 }, "edgeLabel": "MADE_BY", "n1Label": "User", "n2Label": "Review" }
-{ "sourceVertex": { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "destVertex": { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } }, "edgeProperties": { "user_id": 1, "friend": 2 }, "direction": "RIGHT_TO_LEFT", "sourceKeyValue": { "user_id": 1 }, "destKeyValue": { "friend": 2 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "destVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 2 }, "DestinationKey": { "friend": 3 } }, "edgeProperties": { "user_id": 2, "friend": 3 }, "direction": "LEFT_TO_RIGHT", "sourceKeyValue": { "user_id": 2 }, "destKeyValue": { "friend": 3 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "review_id": "B", "user_id": 2, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "B" } } }, "destVertex": { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "edgeDetail": { "Label": "MADE_BY", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "B" }, "DestinationKey": { "user_id": 2 } }, "edgeProperties": { "review_id": "B", "user_id": 2 }, "direction": "RIGHT_TO_LEFT", "sourceKeyValue": { "review_id": "B" }, "destKeyValue": { "user_id": 2 }, "edgeLabel": "MADE_BY", "n1Label": "User", "n2Label": "Review" }
-{ "sourceVertex": { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "destVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 2 }, "DestinationKey": { "friend": 3 } }, "edgeProperties": { "user_id": 2, "friend": 3 }, "direction": "RIGHT_TO_LEFT", "sourceKeyValue": { "user_id": 2 }, "destKeyValue": { "friend": 3 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } }, "destVertex": { "user_id": 4, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 4 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 3 }, "DestinationKey": { "friend": 4 } }, "edgeProperties": { "user_id": 3, "friend": 4 }, "direction": "LEFT_TO_RIGHT", "sourceKeyValue": { "user_id": 3 }, "destKeyValue": { "friend": 4 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } }, "destVertex": { "user_id": 4, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 4 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 3 }, "DestinationKey": { "friend": 4 } }, "edgeProperties": { "user_id": 3, "friend": 4 }, "direction": "RIGHT_TO_LEFT", "sourceKeyValue": { "user_id": 3 }, "destKeyValue": { "friend": 4 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "user_id": 4, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 4 } } }, "destVertex": { "user_id": 5, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 5 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 4 }, "DestinationKey": { "friend": 5 } }, "edgeProperties": { "user_id": 4, "friend": 5 }, "direction": "LEFT_TO_RIGHT", "sourceKeyValue": { "user_id": 4 }, "destKeyValue": { "friend": 5 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "user_id": 4, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 4 } } }, "destVertex": { "user_id": 5, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 5 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 4 }, "DestinationKey": { "friend": 5 } }, "edgeProperties": { "user_id": 4, "friend": 5 }, "direction": "RIGHT_TO_LEFT", "sourceKeyValue": { "user_id": 4 }, "destKeyValue": { "friend": 5 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "user_id": 5, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 5 } } }, "destVertex": { "user_id": 6, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 6 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 5 }, "DestinationKey": { "friend": 6 } }, "edgeProperties": { "user_id": 5, "friend": 6 }, "direction": "LEFT_TO_RIGHT", "sourceKeyValue": { "user_id": 5 }, "destKeyValue": { "friend": 6 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
-{ "sourceVertex": { "user_id": 5, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 5 } } }, "destVertex": { "user_id": 6, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 6 } } }, "edgeDetail": { "Label": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 5 }, "DestinationKey": { "friend": 6 } }, "edgeProperties": { "user_id": 5, "friend": 6 }, "direction": "RIGHT_TO_LEFT", "sourceKeyValue": { "user_id": 5 }, "destKeyValue": { "friend": 6 }, "edgeLabel": "FRIENDS_WITH", "n1Label": "User", "n2Label": "User" }
\ No newline at end of file
+{ "direction": "LEFT_TO_RIGHT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": [ 1 ], "DestinationKey": [ 2 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "LEFT_TO_RIGHT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": [ 2 ], "DestinationKey": [ 3 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "LEFT_TO_RIGHT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": [ 3 ], "DestinationKey": [ 4 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "LEFT_TO_RIGHT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": [ 4 ], "DestinationKey": [ 5 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "LEFT_TO_RIGHT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": [ 5 ], "DestinationKey": [ 6 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "LEFT_TO_RIGHT", "edgeLabel": "MADE_BY", "edgeDetail": { "ElementLabel": "MADE_BY", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": [ "A" ], "DestinationKey": [ 1 ] }, "n1Label": "Review", "n2Label": "User", "sourceVertexLabel": "Review", "destVertexLabel": "User" }
+{ "direction": "LEFT_TO_RIGHT", "edgeLabel": "MADE_BY", "edgeDetail": { "ElementLabel": "MADE_BY", "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": [ "B" ], "DestinationKey": [ 2 ] }, "n1Label": "Review", "n2Label": "User", "sourceVertexLabel": "Review", "destVertexLabel": "User" }
+{ "direction": "RIGHT_TO_LEFT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": [ 1 ], "DestinationKey": [ 2 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "RIGHT_TO_LEFT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": [ 2 ], "DestinationKey": [ 3 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "RIGHT_TO_LEFT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": [ 3 ], "DestinationKey": [ 4 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "RIGHT_TO_LEFT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": [ 4 ], "DestinationKey": [ 5 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "RIGHT_TO_LEFT", "edgeLabel": "FRIENDS_WITH", "edgeDetail": { "ElementLabel": "FRIENDS_WITH", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": [ 5 ], "DestinationKey": [ 6 ] }, "n1Label": "User", "n2Label": "User", "sourceVertexLabel": "User", "destVertexLabel": "User" }
+{ "direction": "RIGHT_TO_LEFT", "edgeLabel": "MADE_BY", "edgeDetail": { "ElementLabel": "MADE_BY", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": [ "A" ], "DestinationKey": [ 1 ] }, "n1Label": "User", "n2Label": "Review", "sourceVertexLabel": "Review", "destVertexLabel": "User" }
+{ "direction": "RIGHT_TO_LEFT", "edgeLabel": "MADE_BY", "edgeDetail": { "ElementLabel": "MADE_BY", "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": [ "B" ], "DestinationKey": [ 2 ] }, "n1Label": "User", "n2Label": "Review", "sourceVertexLabel": "Review", "destVertexLabel": "User" }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.5.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.5.adm
index 6fab046..e1cdc9a 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.5.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/graphix-functions/graphix-functions.5.adm
@@ -1,4 +1,7 @@
-{ "pEdges": [ { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "review_id": "A" }, "DestinationKey": { "user_id": 1 } } }, { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } } ], "eEdges": [ { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "review_id": "A" }, "DestinationKey": { "user_id": 1 } } } ], "pHopCount": 2, "pLabels": [ "FRIENDS_WITH", "MADE_BY", "Review", "User" ], "eLabels": [ "MADE_BY", "Review", "User" ], "pVertices": [ { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "A" } } }, { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } ], "eVertices": [ { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "A" } } }, { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } } ] }
-{ "pEdges": [ { "review_id": "B", "user_id": 2, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "review_id": "B" }, "DestinationKey": { "user_id": 2 } } }, { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } } ], "eEdges": [ { "review_id": "B", "user_id": 2, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "review_id": "B" }, "DestinationKey": { "user_id": 2 } } } ], "pHopCount": 2, "pLabels": [ "FRIENDS_WITH", "MADE_BY", "Review", "User" ], "eLabels": [ "MADE_BY", "Review", "User" ], "pVertices": [ { "review_id": "B", "user_id": 2, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "B" } } }, { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } ], "eVertices": [ { "review_id": "B", "user_id": 2, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "B" } } }, { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } ] }
-{ "pEdges": [ { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } }, { "review_id": "B", "user_id": 2, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "B" }, "DestinationKey": { "user_id": 2 } } } ], "eEdges": [ { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } } ], "pHopCount": 2, "pLabels": [ "FRIENDS_WITH", "MADE_BY", "Review", "User" ], "eLabels": [ "FRIENDS_WITH", "User" ], "pVertices": [ { "review_id": "B", "user_id": 2, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "B" } } }, { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } ], "eVertices": [ { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } ] }
-{ "pEdges": [ { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } }, { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "A" }, "DestinationKey": { "user_id": 1 } } } ], "eEdges": [ { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } } ], "pHopCount": 2, "pLabels": [ "FRIENDS_WITH", "MADE_BY", "Review", "User" ], "eLabels": [ "FRIENDS_WITH", "User" ], "pVertices": [ { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "A" } } }, { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } ], "eVertices": [ { "user_id": 1, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, { "user_id": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } ] }
\ No newline at end of file
+{ "pEdges": [ { "user_id": 1, "friend": 2 }, { "user_id": 2, "friend": 3 } ], "eEdges": [ { "user_id": 1, "friend": 2 } ], "pHopCount": 2, "pVertices": [ { "user_id": 1 }, { "user_id": 2 }, { "user_id": 3 } ], "eVertices": [ { "user_id": 1 }, { "user_id": 2 } ] }
+{ "pEdges": [ { "user_id": 1, "friend": 2 }, { "user_id": 2, "friend": 3 }, { "user_id": 3, "friend": 4 } ], "eEdges": [ { "user_id": 1, "friend": 2 }, { "user_id": 2, "friend": 3 } ], "pHopCount": 3, "pVertices": [ { "user_id": 1 }, { "user_id": 2 }, { "user_id": 3 }, { "user_id": 4 } ], "eVertices": [ { "user_id": 1 }, { "user_id": 2 }, { "user_id": 3 } ] }
+{ "pEdges": [ { "user_id": 2, "friend": 3 }, { "user_id": 3, "friend": 4 } ], "eEdges": [ { "user_id": 2, "friend": 3 } ], "pHopCount": 2, "pVertices": [ { "user_id": 2 }, { "user_id": 3 }, { "user_id": 4 } ], "eVertices": [ { "user_id": 2 }, { "user_id": 3 } ] }
+{ "pEdges": [ { "user_id": 2, "friend": 3 }, { "user_id": 3, "friend": 4 }, { "user_id": 4, "friend": 5 } ], "eEdges": [ { "user_id": 2, "friend": 3 }, { "user_id": 3, "friend": 4 } ], "pHopCount": 3, "pVertices": [ { "user_id": 2 }, { "user_id": 3 }, { "user_id": 4 }, { "user_id": 5 } ], "eVertices": [ { "user_id": 2 }, { "user_id": 3 }, { "user_id": 4 } ] }
+{ "pEdges": [ { "user_id": 3, "friend": 4 }, { "user_id": 4, "friend": 5 } ], "eEdges": [ { "user_id": 3, "friend": 4 } ], "pHopCount": 2, "pVertices": [ { "user_id": 3 }, { "user_id": 4 }, { "user_id": 5 } ], "eVertices": [ { "user_id": 3 }, { "user_id": 4 } ] }
+{ "pEdges": [ { "user_id": 3, "friend": 4 }, { "user_id": 4, "friend": 5 }, { "user_id": 5, "friend": 6 } ], "eEdges": [ { "user_id": 3, "friend": 4 }, { "user_id": 4, "friend": 5 } ], "pHopCount": 3, "pVertices": [ { "user_id": 3 }, { "user_id": 4 }, { "user_id": 5 }, { "user_id": 6 } ], "eVertices": [ { "user_id": 3 }, { "user_id": 4 }, { "user_id": 5 } ] }
+{ "pEdges": [ { "user_id": 4, "friend": 5 }, { "user_id": 5, "friend": 6 } ], "eEdges": [ { "user_id": 4, "friend": 5 } ], "pHopCount": 2, "pVertices": [ { "user_id": 4 }, { "user_id": 5 }, { "user_id": 6 } ], "eVertices": [ { "user_id": 4 }, { "user_id": 5 } ] }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/inference-resolution/inference-resolution.6.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/inference-resolution/inference-resolution.6.adm
index 5a87275..89677c3 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/inference-resolution/inference-resolution.6.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/inference-resolution/inference-resolution.6.adm
@@ -1 +1 @@
-{ "e_length": 2, "e_label": "FRIENDS_WITH", "n_label": "User" }
\ No newline at end of file
+{ "e_label": "FRIENDS_WITH", "n_label": "User", "e_length": 2 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.4.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.4.adm
deleted file mode 100644
index 9a221cf..0000000
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.4.adm
+++ /dev/null
@@ -1,2 +0,0 @@
-{ "u1_user_id": 1, "fw_user_id": 1, "fw_friend": 2, "u2_user_id": 2 }
-{ "u1_user_id": 2, "fw_user_id": 2, "fw_friend": 3, "u2_user_id": 3, "mb_user_id": 2, "mb_review_id": "A", "r_review_id": "A" }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.5.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.5.adm
index 5c82883..9a221cf 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.5.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.5.adm
@@ -1,5 +1,2 @@
-{ "u1_user_id": 1, "fw1_user_id": 1, "fw1_friend": 2, "u2_user_id": 2, "u3_user_id": 3, "mb_user_id": 3, "mb_review_id": "A", "r_review_id": "A", "fw2_user_id": 3, "fw2_friend": 1 }
-{ "u1_user_id": 1, "fw1_user_id": 1, "fw1_friend": 2, "u2_user_id": 2, "u3_user_id": 4, "mb_user_id": 4, "mb_review_id": "B", "r_review_id": "B", "fw2_user_id": 4, "fw2_friend": 1 }
-{ "u1_user_id": 1, "fw1_user_id": 1, "fw1_friend": 4, "u2_user_id": 4, "u3_user_id": 3, "mb_user_id": 3, "mb_review_id": "A", "r_review_id": "A", "fw2_user_id": 3, "fw2_friend": 1 }
-{ "u1_user_id": 3, "fw1_user_id": 3, "fw1_friend": 1, "u2_user_id": 1 }
-{ "u1_user_id": 4, "fw1_user_id": 4, "fw1_friend": 1, "u2_user_id": 1 }
\ No newline at end of file
+{ "u1_user_id": 1, "fw_user_id": 1, "fw_friend": 2, "u2_user_id": 2 }
+{ "u1_user_id": 2, "fw_user_id": 2, "fw_friend": 3, "u2_user_id": 3, "mb_user_id": 2, "mb_review_id": "A", "r_review_id": "A" }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.7.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.7.adm
new file mode 100644
index 0000000..5c82883
--- /dev/null
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.7.adm
@@ -0,0 +1,5 @@
+{ "u1_user_id": 1, "fw1_user_id": 1, "fw1_friend": 2, "u2_user_id": 2, "u3_user_id": 3, "mb_user_id": 3, "mb_review_id": "A", "r_review_id": "A", "fw2_user_id": 3, "fw2_friend": 1 }
+{ "u1_user_id": 1, "fw1_user_id": 1, "fw1_friend": 2, "u2_user_id": 2, "u3_user_id": 4, "mb_user_id": 4, "mb_review_id": "B", "r_review_id": "B", "fw2_user_id": 4, "fw2_friend": 1 }
+{ "u1_user_id": 1, "fw1_user_id": 1, "fw1_friend": 4, "u2_user_id": 4, "u3_user_id": 3, "mb_user_id": 3, "mb_review_id": "A", "r_review_id": "A", "fw2_user_id": 3, "fw2_friend": 1 }
+{ "u1_user_id": 3, "fw1_user_id": 3, "fw1_friend": 1, "u2_user_id": 1 }
+{ "u1_user_id": 4, "fw1_user_id": 4, "fw1_friend": 1, "u2_user_id": 1 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.6.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.9.adm
similarity index 100%
rename from asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.6.adm
rename to asterix-graphix/src/test/resources/runtimets/results/graphix/left-match/left-match.9.adm
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.3.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.3.adm
deleted file mode 100644
index bf58f6a..0000000
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.3.adm
+++ /dev/null
@@ -1,4 +0,0 @@
-{ "user_id": 1 }
-{ "user_id": 2 }
-{ "user_id": 3 }
-{ "user_id": 4 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.4.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.4.adm
deleted file mode 100644
index 9fd8681..0000000
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.4.adm
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "user_id": 1 }
-{ "user_id": 1, "review_id": "A" }
-{ "user_id": 1, "review_id": "B" }
-{ "user_id": 2 }
-{ "user_id": 2, "review_id": "C" }
-{ "user_id": 3 }
-{ "user_id": 3, "review_id": "D" }
-{ "user_id": 4 }
-{ "user_id": 4, "review_id": "E" }
-{ "user_id": 5, "review_id": "F" }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.5.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.5.adm
deleted file mode 100644
index 843d7f9..0000000
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.5.adm
+++ /dev/null
@@ -1,10 +0,0 @@
-{ "left_review_id": "A", "right_user_id": 1, "e_user_id": 1, "e_review_id": "A" }
-{ "left_review_id": "B", "right_user_id": 1, "e_user_id": 1, "e_review_id": "B" }
-{ "left_review_id": "C", "right_user_id": 2, "e_user_id": 2, "e_review_id": "C" }
-{ "left_review_id": "D", "right_user_id": 3, "e_user_id": 3, "e_review_id": "D" }
-{ "left_review_id": "E", "right_user_id": 4, "e_user_id": 4, "e_review_id": "E" }
-{ "left_user_id": 1, "right_review_id": "A", "e_user_id": 1, "e_review_id": "A" }
-{ "left_user_id": 1, "right_review_id": "B", "e_user_id": 1, "e_review_id": "B" }
-{ "left_user_id": 2, "right_review_id": "C", "e_user_id": 2, "e_review_id": "C" }
-{ "left_user_id": 3, "right_review_id": "D", "e_user_id": 3, "e_review_id": "D" }
-{ "left_user_id": 4, "right_review_id": "E", "e_user_id": 4, "e_review_id": "E" }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.6.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.6.adm
deleted file mode 100644
index b451053..0000000
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/minimal-resolution/minimal-resolution.6.adm
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "source_user_id": 1, "dest_user_id": 2, "e_user_id": 1, "e_friend": 2 }
-{ "source_user_id": 3, "dest_user_id": 2, "e_user_id": 3, "e_friend": 2 }
-{ "source_user_id": 4, "dest_user_id": 2, "e_user_id": 4, "e_friend": 2 }
-{ "source_review_id": "A", "dest_user_id": 1, "e_user_id": 1, "e_review_id": "A" }
-{ "source_review_id": "B", "dest_user_id": 1, "e_user_id": 1, "e_review_id": "B" }
-{ "source_review_id": "C", "dest_user_id": 2, "e_user_id": 2, "e_review_id": "C" }
-{ "source_review_id": "D", "dest_user_id": 3, "e_user_id": 3, "e_review_id": "D" }
-{ "source_review_id": "E", "dest_user_id": 4, "e_user_id": 4, "e_review_id": "E" }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.3.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.3.adm
index dc47f05..a45ec54 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.3.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.3.adm
@@ -1,4 +1,4 @@
-{ "pathLength": 0, "edgeRecord": { "Edge": null, "RightVertex": null, "LeftVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } } } }
-{ "pathLength": 0, "edgeRecord": { "Edge": null, "RightVertex": null, "LeftVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } } }
-{ "pathLength": 0, "edgeRecord": { "Edge": null, "RightVertex": null, "LeftVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } } } }
-{ "pathLength": 0, "edgeRecord": { "Edge": null, "RightVertex": null, "LeftVertex": { "user_id": 4, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 4 } } } } }
\ No newline at end of file
+{ "pathLength": 0, "pathVertex": { "user_id": 1, "best_friend": 2 } }
+{ "pathLength": 0, "pathVertex": { "user_id": 2, "best_friend": 3 } }
+{ "pathLength": 0, "pathVertex": { "user_id": 3 } }
+{ "pathLength": 0, "pathVertex": { "user_id": 4 } }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.4.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.4.adm
index be295c8..7f3d7e1 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.4.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.4.adm
@@ -1,6 +1,6 @@
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "Edge": { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "A" }, "DestinationKey": { "user_id": 1 } } }, "RightVertex": { "review_id": "A", "user_id": 1, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "A" } } } } }
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "Edge": { "review_id": "B", "user_id": 1, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "B" }, "DestinationKey": { "user_id": 1 } } }, "RightVertex": { "review_id": "B", "user_id": 1, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "B" } } } } }
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "Edge": { "review_id": "C", "user_id": 1, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "C" }, "DestinationKey": { "user_id": 1 } } }, "RightVertex": { "review_id": "C", "user_id": 1, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "C" } } } } }
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "Edge": { "review_id": "D", "user_id": 2, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "D" }, "DestinationKey": { "user_id": 2 } } }, "RightVertex": { "review_id": "D", "user_id": 2, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "D" } } } } }
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } }, "Edge": { "review_id": "E", "user_id": 3, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "E" }, "DestinationKey": { "user_id": 3 } } }, "RightVertex": { "review_id": "E", "user_id": 3, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "E" } } } } }
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 4, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 4 } } }, "Edge": { "review_id": "F", "user_id": 4, "_GraphixElementDetail": { "Label": "MADE_BY" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "review_id": "F" }, "DestinationKey": { "user_id": 4 } } }, "RightVertex": { "review_id": "F", "user_id": 4, "_GraphixElementDetail": { "Label": "Review" }, "_GraphixVertexDetail": { "PrimaryKey": { "review_id": "F" } } } } }
\ No newline at end of file
+{ "pathLength": 1, "edgeRecord": { "review_id": "A", "user_id": 1 } }
+{ "pathLength": 1, "edgeRecord": { "review_id": "B", "user_id": 1 } }
+{ "pathLength": 1, "edgeRecord": { "review_id": "C", "user_id": 1 } }
+{ "pathLength": 1, "edgeRecord": { "review_id": "D", "user_id": 2 } }
+{ "pathLength": 1, "edgeRecord": { "review_id": "E", "user_id": 3 } }
+{ "pathLength": 1, "edgeRecord": { "review_id": "F", "user_id": 4 } }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.5.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.5.adm
index 94e906a..1554fbb 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.5.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.5.adm
@@ -1,4 +1,4 @@
-{ "pathLength": 2, "edgeRecord": { "LeftVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "Edge": { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } }, "RightVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } } }
-{ "pathLength": 2, "edgeRecord": { "LeftVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "Edge": { "user_id": 2, "friend": 3, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 2 }, "DestinationKey": { "friend": 3 } } }, "RightVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } } } }
-{ "pathLength": 2, "edgeRecord": { "LeftVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "Edge": { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } }, "RightVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } } } }
-{ "pathLength": 2, "edgeRecord": { "LeftVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } }, "Edge": { "user_id": 2, "friend": 3, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 2 }, "DestinationKey": { "friend": 3 } } }, "RightVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } } }
\ No newline at end of file
+{ "pathLength": 2, "edgeRecord": { "user_id": 1, "friend": 2 }, "u_user_id": 1, "v_user_id": 2, "w_user_id": 3 }
+{ "pathLength": 2, "edgeRecord": { "user_id": 2, "friend": 3 }, "u_user_id": 1, "v_user_id": 2, "w_user_id": 3 }
+{ "pathLength": 2, "edgeRecord": { "user_id": 1, "friend": 2 }, "u_user_id": 3, "v_user_id": 2, "w_user_id": 1 }
+{ "pathLength": 2, "edgeRecord": { "user_id": 2, "friend": 3 }, "u_user_id": 3, "v_user_id": 2, "w_user_id": 1 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.6.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.6.adm
index ba46ed7..0277ad3 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.6.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/path-variable/path-variable.6.adm
@@ -1,8 +1,6 @@
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "Edge": { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } }, "RightVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } } }
-{ "pathLength": 2, "edgeRecord": { "LeftVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } }, "Edge": { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } }, "RightVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } } }
-{ "pathLength": 2, "edgeRecord": { "LeftVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "Edge": { "user_id": 2, "friend": 3, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 2 }, "DestinationKey": { "friend": 3 } } }, "RightVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } } } }
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "Edge": { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } }, "RightVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } } } }
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "Edge": { "user_id": 2, "friend": 3, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "LEFT_TO_RIGHT", "SourceKey": { "user_id": 2 }, "DestinationKey": { "friend": 3 } } }, "RightVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } } } }
-{ "pathLength": 2, "edgeRecord": { "LeftVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } }, "Edge": { "user_id": 1, "friend": 2, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 1 }, "DestinationKey": { "friend": 2 } } }, "RightVertex": { "user_id": 1, "best_friend": 2, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 1 } } } } }
-{ "pathLength": 2, "edgeRecord": { "LeftVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } }, "Edge": { "user_id": 2, "friend": 3, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 2 }, "DestinationKey": { "friend": 3 } } }, "RightVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } } }
-{ "pathLength": 1, "edgeRecord": { "LeftVertex": { "user_id": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 3 } } }, "Edge": { "user_id": 2, "friend": 3, "_GraphixElementDetail": { "Label": "FRIENDS_WITH" }, "_GraphixEdgeDetail": { "EdgeDirection": "RIGHT_TO_LEFT", "SourceKey": { "user_id": 2 }, "DestinationKey": { "friend": 3 } } }, "RightVertex": { "user_id": 2, "best_friend": 3, "_GraphixElementDetail": { "Label": "User" }, "_GraphixVertexDetail": { "PrimaryKey": { "user_id": 2 } } } } }
\ No newline at end of file
+{ "pathLength": 1, "u_user_id": 1, "v_user_id": 2 }
+{ "pathLength": 2, "u_user_id": 1, "v_user_id": 3 }
+{ "pathLength": 1, "u_user_id": 2, "v_user_id": 1 }
+{ "pathLength": 1, "u_user_id": 2, "v_user_id": 3 }
+{ "pathLength": 2, "u_user_id": 3, "v_user_id": 1 }
+{ "pathLength": 1, "u_user_id": 3, "v_user_id": 2 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/scope-checking/scope-checking.5.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/scope-checking/scope-checking.5.adm
index 802c33a..725fe9c 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/scope-checking/scope-checking.5.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/scope-checking/scope-checking.5.adm
@@ -1,6 +1,6 @@
-{ "shortestPath": [ 1, 2 ], "u1_user_id": 1, "u2_user_id": 2 }
-{ "shortestPath": [ 1, 3 ], "u1_user_id": 1, "u2_user_id": 3 }
-{ "shortestPath": [ 1, 3, 4 ], "u1_user_id": 1, "u2_user_id": 4 }
-{ "shortestPath": [ 2, 3 ], "u1_user_id": 2, "u2_user_id": 3 }
-{ "shortestPath": [ 2, 3, 4 ], "u1_user_id": 2, "u2_user_id": 4 }
-{ "shortestPath": [ 3, 4 ], "u1_user_id": 3, "u2_user_id": 4 }
\ No newline at end of file
+{ "u1_user_id": 1, "u2_user_id": 2, "shortestPath": [ 1, 2 ] }
+{ "u1_user_id": 1, "u2_user_id": 3, "shortestPath": [ 1, 3 ] }
+{ "u1_user_id": 1, "u2_user_id": 4, "shortestPath": [ 1, 3, 4 ] }
+{ "u1_user_id": 2, "u2_user_id": 3, "shortestPath": [ 2, 3 ] }
+{ "u1_user_id": 2, "u2_user_id": 4, "shortestPath": [ 2, 3, 4 ] }
+{ "u1_user_id": 3, "u2_user_id": 4, "shortestPath": [ 3, 4 ] }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/scope-checking/scope-checking.6.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/scope-checking/scope-checking.6.adm
index 802c33a..725fe9c 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/scope-checking/scope-checking.6.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/scope-checking/scope-checking.6.adm
@@ -1,6 +1,6 @@
-{ "shortestPath": [ 1, 2 ], "u1_user_id": 1, "u2_user_id": 2 }
-{ "shortestPath": [ 1, 3 ], "u1_user_id": 1, "u2_user_id": 3 }
-{ "shortestPath": [ 1, 3, 4 ], "u1_user_id": 1, "u2_user_id": 4 }
-{ "shortestPath": [ 2, 3 ], "u1_user_id": 2, "u2_user_id": 3 }
-{ "shortestPath": [ 2, 3, 4 ], "u1_user_id": 2, "u2_user_id": 4 }
-{ "shortestPath": [ 3, 4 ], "u1_user_id": 3, "u2_user_id": 4 }
\ No newline at end of file
+{ "u1_user_id": 1, "u2_user_id": 2, "shortestPath": [ 1, 2 ] }
+{ "u1_user_id": 1, "u2_user_id": 3, "shortestPath": [ 1, 3 ] }
+{ "u1_user_id": 1, "u2_user_id": 4, "shortestPath": [ 1, 3, 4 ] }
+{ "u1_user_id": 2, "u2_user_id": 3, "shortestPath": [ 2, 3 ] }
+{ "u1_user_id": 2, "u2_user_id": 4, "shortestPath": [ 2, 3, 4 ] }
+{ "u1_user_id": 3, "u2_user_id": 4, "shortestPath": [ 3, 4 ] }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.4.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.4.adm
index d340a90..48e9814 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.4.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.4.adm
@@ -1,6 +1,40 @@
-{ "u1_user_id": 1, "u2_user_id": 2, "fw_user_id": 1, "fw_friend": 2 }
-{ "u1_user_id": 1, "u2_user_id": 3, "fw_user_id": 1, "fw_friend": 3 }
-{ "u1_user_id": 2, "u2_user_id": 1, "fw_user_id": 2, "fw_friend": 1 }
-{ "u1_user_id": 3, "u2_user_id": 1, "fw_user_id": 3, "fw_friend": 1 }
-{ "u1_user_id": 4, "u2_user_id": 1, "fw_user_id": 4, "fw_friend": 1 }
-{ "u1_user_id": 4, "u2_user_id": 2, "fw_user_id": 4, "fw_friend": 2 }
\ No newline at end of file
+{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "B" }
+{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "C" }
+{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "D" }
+{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "E" }
+{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "F" }
+{ "u_user_id": 1, "r_review_id": "A", "n_user_id": 2 }
+{ "u_user_id": 1, "r_review_id": "A", "n_user_id": 3 }
+{ "u_user_id": 1, "r_review_id": "A", "n_user_id": 4 }
+{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "A" }
+{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "C" }
+{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "D" }
+{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "E" }
+{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "F" }
+{ "u_user_id": 1, "r_review_id": "B", "n_user_id": 2 }
+{ "u_user_id": 1, "r_review_id": "B", "n_user_id": 3 }
+{ "u_user_id": 1, "r_review_id": "B", "n_user_id": 4 }
+{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "A" }
+{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "B" }
+{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "D" }
+{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "E" }
+{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "F" }
+{ "u_user_id": 2, "r_review_id": "C", "n_user_id": 1 }
+{ "u_user_id": 2, "r_review_id": "C", "n_user_id": 3 }
+{ "u_user_id": 2, "r_review_id": "C", "n_user_id": 4 }
+{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "A" }
+{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "B" }
+{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "C" }
+{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "E" }
+{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "F" }
+{ "u_user_id": 3, "r_review_id": "D", "n_user_id": 1 }
+{ "u_user_id": 3, "r_review_id": "D", "n_user_id": 2 }
+{ "u_user_id": 3, "r_review_id": "D", "n_user_id": 4 }
+{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "A" }
+{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "B" }
+{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "C" }
+{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "D" }
+{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "F" }
+{ "u_user_id": 4, "r_review_id": "E", "n_user_id": 1 }
+{ "u_user_id": 4, "r_review_id": "E", "n_user_id": 2 }
+{ "u_user_id": 4, "r_review_id": "E", "n_user_id": 3 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.5.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.5.adm
index 190ae9b..c644784 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.5.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.5.adm
@@ -1,6 +1,8 @@
-{ "u1_user_id": 1, "u2_user_id": 2 }
-{ "u1_user_id": 1, "u2_user_id": 3 }
-{ "u1_user_id": 2, "u2_user_id": 1 }
-{ "u1_user_id": 3, "u2_user_id": 1 }
-{ "u1_user_id": 4, "u2_user_id": 1 }
-{ "u1_user_id": 4, "u2_user_id": 2 }
\ No newline at end of file
+{ "u1_user_id": 1, "u2_user_id": 2, "friends": [ 2, 3 ], "fw_user_id": 1, "fw_friend": 2 }
+{ "u1_user_id": 1, "u2_user_id": 2, "friends": [ 2, 3 ], "fw_user_id": 2, "fw_friend": 1 }
+{ "u1_user_id": 1, "u2_user_id": 3, "friends": [ 2, 3 ], "fw_user_id": 1, "fw_friend": 3 }
+{ "u1_user_id": 1, "u2_user_id": 3, "friends": [ 2, 3 ], "fw_user_id": 3, "fw_friend": 1 }
+{ "u1_user_id": 2, "u2_user_id": 1, "friends": [ 1 ], "fw_user_id": 1, "fw_friend": 2 }
+{ "u1_user_id": 2, "u2_user_id": 1, "friends": [ 1 ], "fw_user_id": 2, "fw_friend": 1 }
+{ "u1_user_id": 3, "u2_user_id": 1, "friends": [ 1 ], "fw_user_id": 1, "fw_friend": 3 }
+{ "u1_user_id": 3, "u2_user_id": 1, "friends": [ 1 ], "fw_user_id": 3, "fw_friend": 1 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.6.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.6.adm
deleted file mode 100644
index 48e9814..0000000
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/simple-1-edge/simple-1-edge.6.adm
+++ /dev/null
@@ -1,40 +0,0 @@
-{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "B" }
-{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "C" }
-{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "D" }
-{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "E" }
-{ "u_user_id": 1, "r_review_id": "A", "n_review_id": "F" }
-{ "u_user_id": 1, "r_review_id": "A", "n_user_id": 2 }
-{ "u_user_id": 1, "r_review_id": "A", "n_user_id": 3 }
-{ "u_user_id": 1, "r_review_id": "A", "n_user_id": 4 }
-{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "A" }
-{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "C" }
-{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "D" }
-{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "E" }
-{ "u_user_id": 1, "r_review_id": "B", "n_review_id": "F" }
-{ "u_user_id": 1, "r_review_id": "B", "n_user_id": 2 }
-{ "u_user_id": 1, "r_review_id": "B", "n_user_id": 3 }
-{ "u_user_id": 1, "r_review_id": "B", "n_user_id": 4 }
-{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "A" }
-{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "B" }
-{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "D" }
-{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "E" }
-{ "u_user_id": 2, "r_review_id": "C", "n_review_id": "F" }
-{ "u_user_id": 2, "r_review_id": "C", "n_user_id": 1 }
-{ "u_user_id": 2, "r_review_id": "C", "n_user_id": 3 }
-{ "u_user_id": 2, "r_review_id": "C", "n_user_id": 4 }
-{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "A" }
-{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "B" }
-{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "C" }
-{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "E" }
-{ "u_user_id": 3, "r_review_id": "D", "n_review_id": "F" }
-{ "u_user_id": 3, "r_review_id": "D", "n_user_id": 1 }
-{ "u_user_id": 3, "r_review_id": "D", "n_user_id": 2 }
-{ "u_user_id": 3, "r_review_id": "D", "n_user_id": 4 }
-{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "A" }
-{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "B" }
-{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "C" }
-{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "D" }
-{ "u_user_id": 4, "r_review_id": "E", "n_review_id": "F" }
-{ "u_user_id": 4, "r_review_id": "E", "n_user_id": 1 }
-{ "u_user_id": 4, "r_review_id": "E", "n_user_id": 2 }
-{ "u_user_id": 4, "r_review_id": "E", "n_user_id": 3 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/variable-sub-path/variable-sub-path.3.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/variable-sub-path/variable-sub-path.3.adm
index 5f0bdb6..f0c3f6a 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/variable-sub-path/variable-sub-path.3.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/variable-sub-path/variable-sub-path.3.adm
@@ -1,22 +1,12 @@
-{ "fw_count": 1, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 2 }
-{ "fw_count": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 3 }
-{ "fw_count": 3, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "u2_user_id": 4 }
-{ "fw_count": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 3 }
-{ "fw_count": 3, "u1_user_id": 1, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 4 }
-{ "fw_count": 3, "u1_user_id": 1, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 4 }
-{ "fw_count": 1, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 3 }
-{ "fw_count": 2, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 4 }
-{ "fw_count": 3, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "u2_user_id": 5 }
-{ "fw_count": 2, "u1_user_id": 2, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 4 }
-{ "fw_count": 3, "u1_user_id": 2, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 5 }
-{ "fw_count": 3, "u1_user_id": 2, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 5 }
-{ "fw_count": 1, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 4 }
-{ "fw_count": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 5 }
-{ "fw_count": 3, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "u2_user_id": 6 }
-{ "fw_count": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 5 }
-{ "fw_count": 3, "u1_user_id": 3, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 6 }
-{ "fw_count": 3, "u1_user_id": 3, "fw_left_vertex": { "user_id": 6 }, "u2_user_id": 6 }
-{ "fw_count": 1, "u1_user_id": 4, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 5 }
-{ "fw_count": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 5 }, "u2_user_id": 6 }
-{ "fw_count": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 6 }, "u2_user_id": 6 }
-{ "fw_count": 1, "u1_user_id": 5, "fw_left_vertex": { "user_id": 6 }, "u2_user_id": 6 }
\ No newline at end of file
+{ "u1_user_id": 1, "u2_user_id": 2, "fw_edge": [ 2 ], "fw_count": 1 }
+{ "u1_user_id": 1, "u2_user_id": 3, "fw_edge": [ 3, 2 ], "fw_count": 2 }
+{ "u1_user_id": 1, "u2_user_id": 4, "fw_edge": [ 4, 3, 2 ], "fw_count": 3 }
+{ "u1_user_id": 2, "u2_user_id": 3, "fw_edge": [ 3 ], "fw_count": 1 }
+{ "u1_user_id": 2, "u2_user_id": 4, "fw_edge": [ 4, 3 ], "fw_count": 2 }
+{ "u1_user_id": 2, "u2_user_id": 5, "fw_edge": [ 5, 4, 3 ], "fw_count": 3 }
+{ "u1_user_id": 3, "u2_user_id": 4, "fw_edge": [ 4 ], "fw_count": 1 }
+{ "u1_user_id": 3, "u2_user_id": 5, "fw_edge": [ 5, 4 ], "fw_count": 2 }
+{ "u1_user_id": 3, "u2_user_id": 6, "fw_edge": [ 6, 5, 4 ], "fw_count": 3 }
+{ "u1_user_id": 4, "u2_user_id": 5, "fw_edge": [ 5 ], "fw_count": 1 }
+{ "u1_user_id": 4, "u2_user_id": 6, "fw_edge": [ 6, 5 ], "fw_count": 2 }
+{ "u1_user_id": 5, "u2_user_id": 6, "fw_edge": [ 6 ], "fw_count": 1 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/results/graphix/variable-sub-path/variable-sub-path.4.adm b/asterix-graphix/src/test/resources/runtimets/results/graphix/variable-sub-path/variable-sub-path.4.adm
index 581cb48..0d0e62a 100644
--- a/asterix-graphix/src/test/resources/runtimets/results/graphix/variable-sub-path/variable-sub-path.4.adm
+++ b/asterix-graphix/src/test/resources/runtimets/results/graphix/variable-sub-path/variable-sub-path.4.adm
@@ -1,26 +1,18 @@
-{ "fw_hops": 1, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 2 }
-{ "fw_hops": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 2 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 1, "fw_left_vertex": { "user_id": 3 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 3 }
-{ "fw_hops": 1, "u1_user_id": 2, "fw_left_vertex": { "user_id": 1 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 1 }
-{ "fw_hops": 1, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 2, "fw_left_vertex": { "user_id": 3 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 2, "fw_left_vertex": { "user_id": 4 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 1 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 1 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 2 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 1 }
-{ "fw_hops": 1, "u1_user_id": 3, "fw_left_vertex": { "user_id": 2 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 2 }
-{ "fw_hops": 1, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 4 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 5 }
-{ "fw_hops": 2, "u1_user_id": 3, "fw_left_vertex": { "user_id": 5 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 5 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 2 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 2 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 3 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 2 }
-{ "fw_hops": 1, "u1_user_id": 4, "fw_left_vertex": { "user_id": 3 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 3 }
-{ "fw_hops": 1, "u1_user_id": 4, "fw_left_vertex": { "user_id": 5 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 5 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 5 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 6 }
-{ "fw_hops": 2, "u1_user_id": 4, "fw_left_vertex": { "user_id": 6 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 6 }
-{ "fw_hops": 2, "u1_user_id": 5, "fw_left_vertex": { "user_id": 3 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 3 }
-{ "fw_hops": 2, "u1_user_id": 5, "fw_left_vertex": { "user_id": 4 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 3 }
-{ "fw_hops": 1, "u1_user_id": 5, "fw_left_vertex": { "user_id": 4 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 4 }
-{ "fw_hops": 1, "u1_user_id": 5, "fw_left_vertex": { "user_id": 6 }, "dir": "RIGHT_TO_LEFT", "u2_user_id": 6 }
-{ "fw_hops": 2, "u1_user_id": 6, "fw_left_vertex": { "user_id": 4 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 4 }
-{ "fw_hops": 2, "u1_user_id": 6, "fw_left_vertex": { "user_id": 5 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 4 }
-{ "fw_hops": 1, "u1_user_id": 6, "fw_left_vertex": { "user_id": 5 }, "dir": "LEFT_TO_RIGHT", "u2_user_id": 5 }
\ No newline at end of file
+{ "u1_user_id": 1, "u2_user_id": 2, "fw_edge": [ 2 ], "fw_hops": 1 }
+{ "u1_user_id": 1, "u2_user_id": 3, "fw_edge": [ 3, 2 ], "fw_hops": 2 }
+{ "u1_user_id": 2, "u2_user_id": 1, "fw_edge": [ 2 ], "fw_hops": 1 }
+{ "u1_user_id": 2, "u2_user_id": 3, "fw_edge": [ 3 ], "fw_hops": 1 }
+{ "u1_user_id": 2, "u2_user_id": 4, "fw_edge": [ 4, 3 ], "fw_hops": 2 }
+{ "u1_user_id": 3, "u2_user_id": 1, "fw_edge": [ 2, 3 ], "fw_hops": 2 }
+{ "u1_user_id": 3, "u2_user_id": 2, "fw_edge": [ 3 ], "fw_hops": 1 }
+{ "u1_user_id": 3, "u2_user_id": 4, "fw_edge": [ 4 ], "fw_hops": 1 }
+{ "u1_user_id": 3, "u2_user_id": 5, "fw_edge": [ 5, 4 ], "fw_hops": 2 }
+{ "u1_user_id": 4, "u2_user_id": 2, "fw_edge": [ 3, 4 ], "fw_hops": 2 }
+{ "u1_user_id": 4, "u2_user_id": 3, "fw_edge": [ 4 ], "fw_hops": 1 }
+{ "u1_user_id": 4, "u2_user_id": 5, "fw_edge": [ 5 ], "fw_hops": 1 }
+{ "u1_user_id": 4, "u2_user_id": 6, "fw_edge": [ 6, 5 ], "fw_hops": 2 }
+{ "u1_user_id": 5, "u2_user_id": 3, "fw_edge": [ 4, 5 ], "fw_hops": 2 }
+{ "u1_user_id": 5, "u2_user_id": 4, "fw_edge": [ 5 ], "fw_hops": 1 }
+{ "u1_user_id": 5, "u2_user_id": 6, "fw_edge": [ 6 ], "fw_hops": 1 }
+{ "u1_user_id": 6, "u2_user_id": 4, "fw_edge": [ 5, 6 ], "fw_hops": 2 }
+{ "u1_user_id": 6, "u2_user_id": 5, "fw_edge": [ 6 ], "fw_hops": 1 }
\ No newline at end of file
diff --git a/asterix-graphix/src/test/resources/runtimets/testsuite.xml b/asterix-graphix/src/test/resources/runtimets/testsuite.xml
index 0ca8de6..a5ea9fc 100644
--- a/asterix-graphix/src/test/resources/runtimets/testsuite.xml
+++ b/asterix-graphix/src/test/resources/runtimets/testsuite.xml
@@ -31,7 +31,7 @@
         <expected-error>Cannot drop dataverse: DATASET TestDataverse2.GenericDataset being used by GRAPH TestDataverse.TestGraph</expected-error>
         <expected-error>Bad definition for a graph element(.)*Cannot find dataset DatasetThatDoesNotExist in dataverse TestDataverse nor an alias with name DatasetThatDoesNotExist</expected-error>
         <expected-error>Bad definition for a graph element(.)*Cannot resolve ambiguous alias reference for identifier V</expected-error>
-        <expected-error>Conflicting primary keys for vertices with label Vertex1</expected-error>
+        <expected-error>Conflicting vertex label found: Vertex1</expected-error>
         <expected-error>Destination vertex Vertex3 not found in the edge EDGE_1</expected-error>
         <expected-error>Graph TestGraph already exists</expected-error>
         <expected-error>Graph GraphThatDoesntExist2 does not exist</expected-error>
@@ -42,9 +42,10 @@
     </test-case>
   </test-group>
   <test-group name="dangling-vertices">
-    <test-case FilePath="graphix">
+    <test-case FilePath="graphix" check-warnings="true">
       <compilation-unit name="dangling-vertices">
         <output-dir compare="Text">dangling-vertices</output-dir>
+        <expected-warn>Potential disconnected pattern encountered! A CROSS-JOIN has been introduced.</expected-warn>
       </compilation-unit>
     </test-case>
   </test-group>
@@ -70,7 +71,7 @@
     </test-case>
   </test-group>
   <test-group name="inference-resolution">
-    <test-case FilePath="graphix">
+    <test-case FilePath="graphix" check-warnings="true">
       <compilation-unit name="inference-resolution">
         <output-dir compare="Text">inference-resolution</output-dir>
       </compilation-unit>
@@ -83,16 +84,6 @@
       </compilation-unit>
     </test-case>
   </test-group>
-  <test-group name="minimal-resolution">
-    <test-case FilePath="graphix" check-warnings="true">
-      <compilation-unit name="minimal-resolution">
-        <output-dir compare="Text">minimal-resolution</output-dir>
-        <expected-warn>Vertex label could not be resolved. Assuming that vertex $n has all schema labels.</expected-warn>
-        <expected-warn>Vertex label could not be resolved. Assuming that vertex $m has all schema labels.</expected-warn>
-        <expected-warn>Vertex label could not be resolved. Assuming that vertex $n has all schema labels.</expected-warn>
-      </compilation-unit>
-    </test-case>
-  </test-group>
   <test-group name="on-query-error">
     <test-case FilePath="graphix">
       <compilation-unit name="on-query-error">
@@ -104,7 +95,7 @@
         <expected-error>Query edge given, but no edge is defined in the schema.</expected-error>
         <expected-error>Sub-path edges cannot have a hop length less than 1.</expected-error>
         <expected-error>Sub-path edges cannot have a maximum hop length (2) less than the minimum hop length (4).</expected-error>
-        <expected-error>Conflicting primary keys for vertices with label Vertex1</expected-error>
+        <expected-error>Conflicting vertex label found: Vertex1</expected-error>
         <expected-error>Cannot resolve alias reference for undefined identifier invalidVariable</expected-error>
         <expected-error>Cannot resolve alias reference for undefined identifier invalidVariable</expected-error>
         <expected-error>Cannot resolve alias reference for undefined identifier invalidVariable</expected-error>