You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/04/28 00:32:00 UTC

[06/10] incubator-tinkerpop git commit: Modified the GraphSON format.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-classic-normalized.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-classic-normalized.json b/data/tinkerpop-classic-normalized.json
index 602f85e..5ccfe05 100644
--- a/data/tinkerpop-classic-normalized.json
+++ b/data/tinkerpop-classic-normalized.json
@@ -1 +1,6 @@
-{"variables":{},"vertices":[{"id":1,"label":"vertex","properties":{"age":[{"id":1,"properties":{},"value":29}],"name":[{"id":0,"properties":{},"value":"marko"}]},"type":"vertex"},{"id":2,"label":"vertex","properties":{"age":[{"id":3,"properties":{},"value":27}],"name":[{"id":2,"properties":{},"value":"vadas"}]},"type":"vertex"},{"id":3,"label":"vertex","properties":{"lang":[{"id":5,"properties":{},"value":"java"}],"name":[{"id":4,"properties":{},"value":"lop"}]},"type":"vertex"},{"id":4,"label":"vertex","properties":{"age":[{"id":7,"properties":{},"value":32}],"name":[{"id":6,"properties":{},"value":"josh"}]},"type":"vertex"},{"id":5,"label":"vertex","properties":{"lang":[{"id":9,"properties":{},"value":"java"}],"name":[{"id":8,"properties":{},"value":"ripple"}]},"type":"vertex"},{"id":6,"label":"vertex","properties":{"age":[{"id":11,"properties":{},"value":35}],"name":[{"id":10,"properties":{},"value":"peter"}]},"type":"vertex"}],"edges":[{"id":10,"inV":5,"inVLabel":"vertex","label
 ":"created","outV":4,"outVLabel":"vertex","properties":{"weight":1.0},"type":"edge"},{"id":11,"inV":3,"inVLabel":"vertex","label":"created","outV":4,"outVLabel":"vertex","properties":{"weight":0.4},"type":"edge"},{"id":12,"inV":3,"inVLabel":"vertex","label":"created","outV":6,"outVLabel":"vertex","properties":{"weight":0.2},"type":"edge"},{"id":7,"inV":2,"inVLabel":"vertex","label":"knows","outV":1,"outVLabel":"vertex","properties":{"weight":0.5},"type":"edge"},{"id":8,"inV":4,"inVLabel":"vertex","label":"knows","outV":1,"outVLabel":"vertex","properties":{"weight":1.0},"type":"edge"},{"id":9,"inV":3,"inVLabel":"vertex","label":"created","outV":1,"outVLabel":"vertex","properties":{"weight":0.4},"type":"edge"}]}
\ No newline at end of file
+{"id":1,"label":"vertex","outE":{"created":[{"id":9,"inV":3,"properties":{"weight":0.4}}],"knows":[{"id":7,"inV":2,"properties":{"weight":0.5}},{"id":8,"inV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":0,"value":"marko"}],"age":[{"id":2,"value":29}]}}
+{"id":2,"label":"vertex","inE":{"knows":[{"id":7,"outV":1,"properties":{"weight":0.5}}]},"properties":{"name":[{"id":3,"value":"vadas"}],"age":[{"id":4,"value":27}]}}
+{"id":3,"label":"vertex","inE":{"created":[{"id":9,"outV":1,"properties":{"weight":0.4}},{"id":11,"outV":4,"properties":{"weight":0.4}},{"id":12,"outV":6,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":5,"value":"lop"}],"lang":[{"id":6,"value":"java"}]}}
+{"id":4,"label":"vertex","inE":{"knows":[{"id":8,"outV":1,"properties":{"weight":1.0}}]},"outE":{"created":[{"id":10,"inV":5,"properties":{"weight":1.0}},{"id":11,"inV":3,"properties":{"weight":0.4}}]},"properties":{"name":[{"id":7,"value":"josh"}],"age":[{"id":8,"value":32}]}}
+{"id":5,"label":"vertex","inE":{"created":[{"id":10,"outV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":9,"value":"ripple"}],"lang":[{"id":10,"value":"java"}]}}
+{"id":6,"label":"vertex","outE":{"created":[{"id":12,"inV":3,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":11,"value":"peter"}],"age":[{"id":12,"value":35}]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-classic-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-classic-typed.json b/data/tinkerpop-classic-typed.json
index e33304a..e1bfff0 100644
--- a/data/tinkerpop-classic-typed.json
+++ b/data/tinkerpop-classic-typed.json
@@ -1 +1,6 @@
-{"variables":{"@class":"java.util.HashMap"},"vertices":[{"@class":"java.util.HashMap","id":1,"label":"vertex","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":0,"value":"marko","properties":{"@class":"java.util.HashMap"}}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2,"value":29,"properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":2,"label":"vertex","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":3,"value":"vadas","properties":{"@class":"java.util.HashMap"}}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"value":27,"properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":3,"label":"vertex","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"value":"lop","pro
 perties":{"@class":"java.util.HashMap"}}]],"lang":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":6,"value":"java","properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":4,"label":"vertex","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":7,"value":"josh","properties":{"@class":"java.util.HashMap"}}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":8,"value":32,"properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":5,"label":"vertex","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":9,"value":"ripple","properties":{"@class":"java.util.HashMap"}}]],"lang":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":10,"value":"java","properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":6,"label":"vertex","type":"vertex","pro
 perties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":11,"value":"peter","properties":{"@class":"java.util.HashMap"}}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":12,"value":35,"properties":{"@class":"java.util.HashMap"}}]]}}],"edges":[{"@class":"java.util.HashMap","inV":2,"inVLabel":"vertex","outVLabel":"vertex","id":7,"label":"knows","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.5]}},{"@class":"java.util.HashMap","inV":4,"inVLabel":"vertex","outVLabel":"vertex","id":8,"label":"knows","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",1.0]}},{"@class":"java.util.HashMap","inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":9,"label":"created","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.4]}},{"@class":"java.util.HashMap","inV":5,"inVLabel":"vertex","outVLabel":"vertex
 ","id":10,"label":"created","type":"edge","outV":4,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",1.0]}},{"@class":"java.util.HashMap","inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":11,"label":"created","type":"edge","outV":4,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.4]}},{"@class":"java.util.HashMap","inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":12,"label":"created","type":"edge","outV":6,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.2]}}]}
\ No newline at end of file
+{"@class":"java.util.HashMap","id":1,"label":"vertex","outE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":9,"inV":3,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.4]}}]],"knows":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":7,"inV":2,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.5]}},{"@class":"java.util.HashMap","id":8,"inV":4,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",1.0]}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":0,"value":"marko"}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":2,"value":29}]]}}
+{"@class":"java.util.HashMap","id":2,"label":"vertex","inE":{"@class":"java.util.HashMap","knows":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":7,"outV":1,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.5]}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":3,"value":"vadas"}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":4,"value":27}]]}}
+{"@class":"java.util.HashMap","id":3,"label":"vertex","inE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":9,"outV":1,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.4]}},{"@class":"java.util.HashMap","id":11,"outV":4,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.4]}},{"@class":"java.util.HashMap","id":12,"outV":6,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.2]}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":5,"value":"lop"}]],"lang":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":6,"value":"java"}]]}}
+{"@class":"java.util.HashMap","id":4,"label":"vertex","inE":{"@class":"java.util.HashMap","knows":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":8,"outV":1,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",1.0]}}]]},"outE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":10,"inV":5,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",1.0]}},{"@class":"java.util.HashMap","id":11,"inV":3,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.4]}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":7,"value":"josh"}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":8,"value":32}]]}}
+{"@class":"java.util.HashMap","id":5,"label":"vertex","inE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":10,"outV":4,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",1.0]}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":9,"value":"ripple"}]],"lang":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":10,"value":"java"}]]}}
+{"@class":"java.util.HashMap","id":6,"label":"vertex","outE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":12,"inV":3,"properties":{"@class":"java.util.HashMap","weight":["java.lang.Float",0.2]}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":11,"value":"peter"}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":12,"value":35}]]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-classic-vertices.ldjson
----------------------------------------------------------------------
diff --git a/data/tinkerpop-classic-vertices.ldjson b/data/tinkerpop-classic-vertices.ldjson
index c8dbe4a..5ccfe05 100644
--- a/data/tinkerpop-classic-vertices.ldjson
+++ b/data/tinkerpop-classic-vertices.ldjson
@@ -1,6 +1,6 @@
-{"inE":[],"outE":[{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":9,"label":"created","type":"edge","outV":1,"properties":{"weight":0.4}},{"inV":2,"inVLabel":"vertex","outVLabel":"vertex","id":7,"label":"knows","type":"edge","outV":1,"properties":{"weight":0.5}},{"inV":4,"inVLabel":"vertex","outVLabel":"vertex","id":8,"label":"knows","type":"edge","outV":1,"properties":{"weight":1.0}}],"id":1,"label":"vertex","type":"vertex","properties":{"name":[{"id":0,"label":"name","value":"marko","properties":{}}],"age":[{"id":2,"label":"age","value":29,"properties":{}}]}}
-{"inE":[{"inV":2,"inVLabel":"vertex","outVLabel":"vertex","id":7,"label":"knows","type":"edge","outV":1,"properties":{"weight":0.5}}],"outE":[],"id":2,"label":"vertex","type":"vertex","properties":{"name":[{"id":3,"label":"name","value":"vadas","properties":{}}],"age":[{"id":4,"label":"age","value":27,"properties":{}}]}}
-{"inE":[{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":9,"label":"created","type":"edge","outV":1,"properties":{"weight":0.4}},{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":11,"label":"created","type":"edge","outV":4,"properties":{"weight":0.4}},{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":12,"label":"created","type":"edge","outV":6,"properties":{"weight":0.2}}],"outE":[],"id":3,"label":"vertex","type":"vertex","properties":{"name":[{"id":5,"label":"name","value":"lop","properties":{}}],"lang":[{"id":6,"label":"lang","value":"java","properties":{}}]}}
-{"inE":[{"inV":4,"inVLabel":"vertex","outVLabel":"vertex","id":8,"label":"knows","type":"edge","outV":1,"properties":{"weight":1.0}}],"outE":[{"inV":5,"inVLabel":"vertex","outVLabel":"vertex","id":10,"label":"created","type":"edge","outV":4,"properties":{"weight":1.0}},{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":11,"label":"created","type":"edge","outV":4,"properties":{"weight":0.4}}],"id":4,"label":"vertex","type":"vertex","properties":{"name":[{"id":7,"label":"name","value":"josh","properties":{}}],"age":[{"id":8,"label":"age","value":32,"properties":{}}]}}
-{"inE":[{"inV":5,"inVLabel":"vertex","outVLabel":"vertex","id":10,"label":"created","type":"edge","outV":4,"properties":{"weight":1.0}}],"outE":[],"id":5,"label":"vertex","type":"vertex","properties":{"name":[{"id":9,"label":"name","value":"ripple","properties":{}}],"lang":[{"id":10,"label":"lang","value":"java","properties":{}}]}}
-{"inE":[],"outE":[{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":12,"label":"created","type":"edge","outV":6,"properties":{"weight":0.2}}],"id":6,"label":"vertex","type":"vertex","properties":{"name":[{"id":11,"label":"name","value":"peter","properties":{}}],"age":[{"id":12,"label":"age","value":35,"properties":{}}]}}
+{"id":1,"label":"vertex","outE":{"created":[{"id":9,"inV":3,"properties":{"weight":0.4}}],"knows":[{"id":7,"inV":2,"properties":{"weight":0.5}},{"id":8,"inV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":0,"value":"marko"}],"age":[{"id":2,"value":29}]}}
+{"id":2,"label":"vertex","inE":{"knows":[{"id":7,"outV":1,"properties":{"weight":0.5}}]},"properties":{"name":[{"id":3,"value":"vadas"}],"age":[{"id":4,"value":27}]}}
+{"id":3,"label":"vertex","inE":{"created":[{"id":9,"outV":1,"properties":{"weight":0.4}},{"id":11,"outV":4,"properties":{"weight":0.4}},{"id":12,"outV":6,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":5,"value":"lop"}],"lang":[{"id":6,"value":"java"}]}}
+{"id":4,"label":"vertex","inE":{"knows":[{"id":8,"outV":1,"properties":{"weight":1.0}}]},"outE":{"created":[{"id":10,"inV":5,"properties":{"weight":1.0}},{"id":11,"inV":3,"properties":{"weight":0.4}}]},"properties":{"name":[{"id":7,"value":"josh"}],"age":[{"id":8,"value":32}]}}
+{"id":5,"label":"vertex","inE":{"created":[{"id":10,"outV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":9,"value":"ripple"}],"lang":[{"id":10,"value":"java"}]}}
+{"id":6,"label":"vertex","outE":{"created":[{"id":12,"inV":3,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":11,"value":"peter"}],"age":[{"id":12,"value":35}]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-classic.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-classic.json b/data/tinkerpop-classic.json
index 003028f..5ccfe05 100644
--- a/data/tinkerpop-classic.json
+++ b/data/tinkerpop-classic.json
@@ -1 +1,6 @@
-{"variables":{},"vertices":[{"id":1,"label":"vertex","type":"vertex","properties":{"name":[{"id":0,"value":"marko","properties":{}}],"age":[{"id":2,"value":29,"properties":{}}]}},{"id":2,"label":"vertex","type":"vertex","properties":{"name":[{"id":3,"value":"vadas","properties":{}}],"age":[{"id":4,"value":27,"properties":{}}]}},{"id":3,"label":"vertex","type":"vertex","properties":{"name":[{"id":5,"value":"lop","properties":{}}],"lang":[{"id":6,"value":"java","properties":{}}]}},{"id":4,"label":"vertex","type":"vertex","properties":{"name":[{"id":7,"value":"josh","properties":{}}],"age":[{"id":8,"value":32,"properties":{}}]}},{"id":5,"label":"vertex","type":"vertex","properties":{"name":[{"id":9,"value":"ripple","properties":{}}],"lang":[{"id":10,"value":"java","properties":{}}]}},{"id":6,"label":"vertex","type":"vertex","properties":{"name":[{"id":11,"value":"peter","properties":{}}],"age":[{"id":12,"value":35,"properties":{}}]}}],"edges":[{"inV":2,"inVLabel":"vertex","outVLabel":"
 vertex","id":7,"label":"knows","type":"edge","outV":1,"properties":{"weight":0.5}},{"inV":4,"inVLabel":"vertex","outVLabel":"vertex","id":8,"label":"knows","type":"edge","outV":1,"properties":{"weight":1.0}},{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":9,"label":"created","type":"edge","outV":1,"properties":{"weight":0.4}},{"inV":5,"inVLabel":"vertex","outVLabel":"vertex","id":10,"label":"created","type":"edge","outV":4,"properties":{"weight":1.0}},{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":11,"label":"created","type":"edge","outV":4,"properties":{"weight":0.4}},{"inV":3,"inVLabel":"vertex","outVLabel":"vertex","id":12,"label":"created","type":"edge","outV":6,"properties":{"weight":0.2}}]}
\ No newline at end of file
+{"id":1,"label":"vertex","outE":{"created":[{"id":9,"inV":3,"properties":{"weight":0.4}}],"knows":[{"id":7,"inV":2,"properties":{"weight":0.5}},{"id":8,"inV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":0,"value":"marko"}],"age":[{"id":2,"value":29}]}}
+{"id":2,"label":"vertex","inE":{"knows":[{"id":7,"outV":1,"properties":{"weight":0.5}}]},"properties":{"name":[{"id":3,"value":"vadas"}],"age":[{"id":4,"value":27}]}}
+{"id":3,"label":"vertex","inE":{"created":[{"id":9,"outV":1,"properties":{"weight":0.4}},{"id":11,"outV":4,"properties":{"weight":0.4}},{"id":12,"outV":6,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":5,"value":"lop"}],"lang":[{"id":6,"value":"java"}]}}
+{"id":4,"label":"vertex","inE":{"knows":[{"id":8,"outV":1,"properties":{"weight":1.0}}]},"outE":{"created":[{"id":10,"inV":5,"properties":{"weight":1.0}},{"id":11,"inV":3,"properties":{"weight":0.4}}]},"properties":{"name":[{"id":7,"value":"josh"}],"age":[{"id":8,"value":32}]}}
+{"id":5,"label":"vertex","inE":{"created":[{"id":10,"outV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":9,"value":"ripple"}],"lang":[{"id":10,"value":"java"}]}}
+{"id":6,"label":"vertex","outE":{"created":[{"id":12,"inV":3,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":11,"value":"peter"}],"age":[{"id":12,"value":35}]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-crew-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-crew-typed.json b/data/tinkerpop-crew-typed.json
index abe9197..730449f 100644
--- a/data/tinkerpop-crew-typed.json
+++ b/data/tinkerpop-crew-typed.json
@@ -1 +1,6 @@
-{"variables":{"@class":"java.util.HashMap","creator":"marko","comment":"this graph was created to provide examples and test coverage for tinkerpop3 api advances","lastModified":2014},"vertices":[{"@class":"java.util.HashMap","id":1,"label":"person","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"marko","properties":{"@class":"java.util.HashMap"}}]],"location":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",6],"value":"san diego","properties":{"@class":"java.util.HashMap","startTime":1997,"endTime":2001}},{"@class":"java.util.HashMap","id":["java.lang.Long",7],"value":"santa cruz","properties":{"@class":"java.util.HashMap","startTime":2001,"endTime":2004}},{"@class":"java.util.HashMap","id":["java.lang.Long",8],"value":"brussels","properties":{"@class":"java.util.HashMap","startTime":2004,"endTime":2005}},{"@class":"java.util.HashMap","id":["java.lan
 g.Long",9],"value":"santa fe","properties":{"@class":"java.util.HashMap","startTime":2005}}]]}},{"@class":"java.util.HashMap","id":7,"label":"person","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":"stephen","properties":{"@class":"java.util.HashMap"}}]],"location":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",10],"value":"centreville","properties":{"@class":"java.util.HashMap","startTime":1990,"endTime":2000}},{"@class":"java.util.HashMap","id":["java.lang.Long",11],"value":"dulles","properties":{"@class":"java.util.HashMap","startTime":2000,"endTime":2006}},{"@class":"java.util.HashMap","id":["java.lang.Long",12],"value":"purcellville","properties":{"@class":"java.util.HashMap","startTime":2006}}]]}},{"@class":"java.util.HashMap","id":8,"label":"person","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@c
 lass":"java.util.HashMap","id":["java.lang.Long",2],"value":"matthias","properties":{"@class":"java.util.HashMap"}}]],"location":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",13],"value":"bremen","properties":{"@class":"java.util.HashMap","startTime":2004,"endTime":2007}},{"@class":"java.util.HashMap","id":["java.lang.Long",14],"value":"baltimore","properties":{"@class":"java.util.HashMap","startTime":2007,"endTime":2011}},{"@class":"java.util.HashMap","id":["java.lang.Long",15],"value":"oakland","properties":{"@class":"java.util.HashMap","startTime":2011,"endTime":2014}},{"@class":"java.util.HashMap","id":["java.lang.Long",16],"value":"seattle","properties":{"@class":"java.util.HashMap","startTime":2014}}]]}},{"@class":"java.util.HashMap","id":9,"label":"person","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"daniel","properties":{"@class":"java.
 util.HashMap"}}]],"location":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",17],"value":"spremberg","properties":{"@class":"java.util.HashMap","startTime":1982,"endTime":2005}},{"@class":"java.util.HashMap","id":["java.lang.Long",18],"value":"kaiserslautern","properties":{"@class":"java.util.HashMap","startTime":2005,"endTime":2009}},{"@class":"java.util.HashMap","id":["java.lang.Long",19],"value":"aachen","properties":{"@class":"java.util.HashMap","startTime":2009}}]]}},{"@class":"java.util.HashMap","id":10,"label":"software","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",4],"value":"gremlin","properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":11,"label":"software","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",5],"value":"tinkergra
 ph","properties":{"@class":"java.util.HashMap"}}]]}}],"edges":[{"@class":"java.util.HashMap","inV":10,"inVLabel":"software","outVLabel":"person","id":13,"label":"develops","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","since":2009}},{"@class":"java.util.HashMap","inV":11,"inVLabel":"software","outVLabel":"person","id":14,"label":"develops","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","since":2010}},{"@class":"java.util.HashMap","inV":10,"inVLabel":"software","outVLabel":"person","id":15,"label":"uses","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","skill":4}},{"@class":"java.util.HashMap","inV":11,"inVLabel":"software","outVLabel":"person","id":16,"label":"uses","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","inV":10,"inVLabel":"software","outVLabel":"person","id":17,"label":"develops","type":"edge","outV":7,"properties":{"@class":"java.util.HashMap","since":2010}
 },{"@class":"java.util.HashMap","inV":11,"inVLabel":"software","outVLabel":"person","id":18,"label":"develops","type":"edge","outV":7,"properties":{"@class":"java.util.HashMap","since":2011}},{"@class":"java.util.HashMap","inV":10,"inVLabel":"software","outVLabel":"person","id":19,"label":"uses","type":"edge","outV":7,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","inV":11,"inVLabel":"software","outVLabel":"person","id":20,"label":"uses","type":"edge","outV":7,"properties":{"@class":"java.util.HashMap","skill":4}},{"@class":"java.util.HashMap","inV":10,"inVLabel":"software","outVLabel":"person","id":21,"label":"develops","type":"edge","outV":8,"properties":{"@class":"java.util.HashMap","since":2012}},{"@class":"java.util.HashMap","inV":10,"inVLabel":"software","outVLabel":"person","id":22,"label":"uses","type":"edge","outV":8,"properties":{"@class":"java.util.HashMap","skill":3}},{"@class":"java.util.HashMap","inV":11,"inVLabel":"software","outV
 Label":"person","id":23,"label":"uses","type":"edge","outV":8,"properties":{"@class":"java.util.HashMap","skill":3}},{"@class":"java.util.HashMap","inV":10,"inVLabel":"software","outVLabel":"person","id":24,"label":"uses","type":"edge","outV":9,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","inV":11,"inVLabel":"software","outVLabel":"person","id":25,"label":"uses","type":"edge","outV":9,"properties":{"@class":"java.util.HashMap","skill":3}},{"@class":"java.util.HashMap","inV":11,"inVLabel":"software","outVLabel":"software","id":26,"label":"traverses","type":"edge","outV":10,"properties":{"@class":"java.util.HashMap"}}]}
\ No newline at end of file
+{"@class":"java.util.HashMap","id":1,"label":"person","outE":{"@class":"java.util.HashMap","uses":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":16,"inV":11,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","id":15,"inV":10,"properties":{"@class":"java.util.HashMap","skill":4}}]],"develops":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":13,"inV":10,"properties":{"@class":"java.util.HashMap","since":2009}},{"@class":"java.util.HashMap","id":14,"inV":11,"properties":{"@class":"java.util.HashMap","since":2010}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"marko"}]],"location":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",6],"value":"san diego","properties":{"@class":"java.util.HashMap","startTime":1997,"endTime":2001}},{"@class":"java.util.HashMap","id":["java.lang.Long",7],"value":"santa cruz","proper
 ties":{"@class":"java.util.HashMap","startTime":2001,"endTime":2004}},{"@class":"java.util.HashMap","id":["java.lang.Long",8],"value":"brussels","properties":{"@class":"java.util.HashMap","startTime":2004,"endTime":2005}},{"@class":"java.util.HashMap","id":["java.lang.Long",9],"value":"santa fe","properties":{"@class":"java.util.HashMap","startTime":2005}}]]}}
+{"@class":"java.util.HashMap","id":7,"label":"person","outE":{"@class":"java.util.HashMap","uses":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":19,"inV":10,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","id":20,"inV":11,"properties":{"@class":"java.util.HashMap","skill":4}}]],"develops":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":17,"inV":10,"properties":{"@class":"java.util.HashMap","since":2010}},{"@class":"java.util.HashMap","id":18,"inV":11,"properties":{"@class":"java.util.HashMap","since":2011}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":"stephen"}]],"location":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",10],"value":"centreville","properties":{"@class":"java.util.HashMap","startTime":1990,"endTime":2000}},{"@class":"java.util.HashMap","id":["java.lang.Long",11],"value":"dulles","prop
 erties":{"@class":"java.util.HashMap","startTime":2000,"endTime":2006}},{"@class":"java.util.HashMap","id":["java.lang.Long",12],"value":"purcellville","properties":{"@class":"java.util.HashMap","startTime":2006}}]]}}
+{"@class":"java.util.HashMap","id":8,"label":"person","outE":{"@class":"java.util.HashMap","uses":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":22,"inV":10,"properties":{"@class":"java.util.HashMap","skill":3}},{"@class":"java.util.HashMap","id":23,"inV":11,"properties":{"@class":"java.util.HashMap","skill":3}}]],"develops":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":21,"inV":10,"properties":{"@class":"java.util.HashMap","since":2012}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"matthias"}]],"location":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",13],"value":"bremen","properties":{"@class":"java.util.HashMap","startTime":2004,"endTime":2007}},{"@class":"java.util.HashMap","id":["java.lang.Long",14],"value":"baltimore","properties":{"@class":"java.util.HashMap","startTime":2007,"endTime":2011}},{"@class":"java.util.HashMap","id"
 :["java.lang.Long",15],"value":"oakland","properties":{"@class":"java.util.HashMap","startTime":2011,"endTime":2014}},{"@class":"java.util.HashMap","id":["java.lang.Long",16],"value":"seattle","properties":{"@class":"java.util.HashMap","startTime":2014}}]]}}
+{"@class":"java.util.HashMap","id":9,"label":"person","outE":{"@class":"java.util.HashMap","uses":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":24,"inV":10,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","id":25,"inV":11,"properties":{"@class":"java.util.HashMap","skill":3}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":"daniel"}]],"location":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",17],"value":"spremberg","properties":{"@class":"java.util.HashMap","startTime":1982,"endTime":2005}},{"@class":"java.util.HashMap","id":["java.lang.Long",18],"value":"kaiserslautern","properties":{"@class":"java.util.HashMap","startTime":2005,"endTime":2009}},{"@class":"java.util.HashMap","id":["java.lang.Long",19],"value":"aachen","properties":{"@class":"java.util.HashMap","startTime":2009}}]]}}
+{"@class":"java.util.HashMap","id":10,"label":"software","inE":{"@class":"java.util.HashMap","uses":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":19,"outV":7,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","id":22,"outV":8,"properties":{"@class":"java.util.HashMap","skill":3}},{"@class":"java.util.HashMap","id":24,"outV":9,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","id":15,"outV":1,"properties":{"@class":"java.util.HashMap","skill":4}}]],"develops":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":17,"outV":7,"properties":{"@class":"java.util.HashMap","since":2010}},{"@class":"java.util.HashMap","id":21,"outV":8,"properties":{"@class":"java.util.HashMap","since":2012}},{"@class":"java.util.HashMap","id":13,"outV":1,"properties":{"@class":"java.util.HashMap","since":2009}}]]},"outE":{"@class":"java.util.HashMap","traverses":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":26
 ,"inV":11}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",4],"value":"gremlin"}]]}}
+{"@class":"java.util.HashMap","id":11,"label":"software","inE":{"@class":"java.util.HashMap","traverses":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":26,"outV":10}]],"uses":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":16,"outV":1,"properties":{"@class":"java.util.HashMap","skill":5}},{"@class":"java.util.HashMap","id":20,"outV":7,"properties":{"@class":"java.util.HashMap","skill":4}},{"@class":"java.util.HashMap","id":23,"outV":8,"properties":{"@class":"java.util.HashMap","skill":3}},{"@class":"java.util.HashMap","id":25,"outV":9,"properties":{"@class":"java.util.HashMap","skill":3}}]],"develops":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":18,"outV":7,"properties":{"@class":"java.util.HashMap","since":2011}},{"@class":"java.util.HashMap","id":14,"outV":1,"properties":{"@class":"java.util.HashMap","since":2010}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",5
 ],"value":"tinkergraph"}]]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-crew-vertices.ldjson
----------------------------------------------------------------------
diff --git a/data/tinkerpop-crew-vertices.ldjson b/data/tinkerpop-crew-vertices.ldjson
index bb1f721..2165e4d 100644
--- a/data/tinkerpop-crew-vertices.ldjson
+++ b/data/tinkerpop-crew-vertices.ldjson
@@ -1,6 +1,6 @@
-{"inE":[],"outE":[{"inV":11,"inVLabel":"software","outVLabel":"person","id":16,"label":"uses","type":"edge","outV":1,"properties":{"skill":5}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":15,"label":"uses","type":"edge","outV":1,"properties":{"skill":4}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":13,"label":"develops","type":"edge","outV":1,"properties":{"since":2009}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":14,"label":"develops","type":"edge","outV":1,"properties":{"since":2010}}],"id":1,"label":"person","type":"vertex","properties":{"name":[{"id":0,"label":"name","value":"marko","properties":{}}],"location":[{"id":6,"label":"location","value":"san diego","properties":{"startTime":1997,"endTime":2001}},{"id":7,"label":"location","value":"santa cruz","properties":{"startTime":2001,"endTime":2004}},{"id":8,"label":"location","value":"brussels","properties":{"startTime":2004,"endTime":2005}},{"id":9,"label":"location","value":"santa fe","p
 roperties":{"startTime":2005}}]}}
-{"inE":[],"outE":[{"inV":10,"inVLabel":"software","outVLabel":"person","id":19,"label":"uses","type":"edge","outV":7,"properties":{"skill":5}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":20,"label":"uses","type":"edge","outV":7,"properties":{"skill":4}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":17,"label":"develops","type":"edge","outV":7,"properties":{"since":2010}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":18,"label":"develops","type":"edge","outV":7,"properties":{"since":2011}}],"id":7,"label":"person","type":"vertex","properties":{"name":[{"id":1,"label":"name","value":"stephen","properties":{}}],"location":[{"id":10,"label":"location","value":"centreville","properties":{"startTime":1990,"endTime":2000}},{"id":11,"label":"location","value":"dulles","properties":{"startTime":2000,"endTime":2006}},{"id":12,"label":"location","value":"purcellville","properties":{"startTime":2006}}]}}
-{"inE":[],"outE":[{"inV":10,"inVLabel":"software","outVLabel":"person","id":22,"label":"uses","type":"edge","outV":8,"properties":{"skill":3}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":23,"label":"uses","type":"edge","outV":8,"properties":{"skill":3}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":21,"label":"develops","type":"edge","outV":8,"properties":{"since":2012}}],"id":8,"label":"person","type":"vertex","properties":{"name":[{"id":2,"label":"name","value":"matthias","properties":{}}],"location":[{"id":13,"label":"location","value":"bremen","properties":{"startTime":2004,"endTime":2007}},{"id":14,"label":"location","value":"baltimore","properties":{"startTime":2007,"endTime":2011}},{"id":15,"label":"location","value":"oakland","properties":{"startTime":2011,"endTime":2014}},{"id":16,"label":"location","value":"seattle","properties":{"startTime":2014}}]}}
-{"inE":[],"outE":[{"inV":10,"inVLabel":"software","outVLabel":"person","id":24,"label":"uses","type":"edge","outV":9,"properties":{"skill":5}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":25,"label":"uses","type":"edge","outV":9,"properties":{"skill":3}}],"id":9,"label":"person","type":"vertex","properties":{"name":[{"id":3,"label":"name","value":"daniel","properties":{}}],"location":[{"id":17,"label":"location","value":"spremberg","properties":{"startTime":1982,"endTime":2005}},{"id":18,"label":"location","value":"kaiserslautern","properties":{"startTime":2005,"endTime":2009}},{"id":19,"label":"location","value":"aachen","properties":{"startTime":2009}}]}}
-{"inE":[{"inV":10,"inVLabel":"software","outVLabel":"person","id":19,"label":"uses","type":"edge","outV":7,"properties":{"skill":5}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":22,"label":"uses","type":"edge","outV":8,"properties":{"skill":3}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":24,"label":"uses","type":"edge","outV":9,"properties":{"skill":5}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":15,"label":"uses","type":"edge","outV":1,"properties":{"skill":4}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":17,"label":"develops","type":"edge","outV":7,"properties":{"since":2010}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":21,"label":"develops","type":"edge","outV":8,"properties":{"since":2012}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":13,"label":"develops","type":"edge","outV":1,"properties":{"since":2009}}],"outE":[{"inV":11,"inVLabel":"software","outVLabel":"software","id":26,"label":"traverses","
 type":"edge","outV":10,"properties":{}}],"id":10,"label":"software","type":"vertex","properties":{"name":[{"id":4,"label":"name","value":"gremlin","properties":{}}]}}
-{"inE":[{"inV":11,"inVLabel":"software","outVLabel":"software","id":26,"label":"traverses","type":"edge","outV":10,"properties":{}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":16,"label":"uses","type":"edge","outV":1,"properties":{"skill":5}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":20,"label":"uses","type":"edge","outV":7,"properties":{"skill":4}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":23,"label":"uses","type":"edge","outV":8,"properties":{"skill":3}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":25,"label":"uses","type":"edge","outV":9,"properties":{"skill":3}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":18,"label":"develops","type":"edge","outV":7,"properties":{"since":2011}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":14,"label":"develops","type":"edge","outV":1,"properties":{"since":2010}}],"outE":[],"id":11,"label":"software","type":"vertex","properties":{"name":[{"id":5,"label":"name","v
 alue":"tinkergraph","properties":{}}]}}
+{"id":1,"label":"person","outE":{"uses":[{"id":16,"inV":11,"properties":{"skill":5}},{"id":15,"inV":10,"properties":{"skill":4}}],"develops":[{"id":13,"inV":10,"properties":{"since":2009}},{"id":14,"inV":11,"properties":{"since":2010}}]},"properties":{"name":[{"id":0,"value":"marko"}],"location":[{"id":6,"value":"san diego","properties":{"startTime":1997,"endTime":2001}},{"id":7,"value":"santa cruz","properties":{"startTime":2001,"endTime":2004}},{"id":8,"value":"brussels","properties":{"startTime":2004,"endTime":2005}},{"id":9,"value":"santa fe","properties":{"startTime":2005}}]}}
+{"id":7,"label":"person","outE":{"uses":[{"id":19,"inV":10,"properties":{"skill":5}},{"id":20,"inV":11,"properties":{"skill":4}}],"develops":[{"id":17,"inV":10,"properties":{"since":2010}},{"id":18,"inV":11,"properties":{"since":2011}}]},"properties":{"name":[{"id":1,"value":"stephen"}],"location":[{"id":10,"value":"centreville","properties":{"startTime":1990,"endTime":2000}},{"id":11,"value":"dulles","properties":{"startTime":2000,"endTime":2006}},{"id":12,"value":"purcellville","properties":{"startTime":2006}}]}}
+{"id":8,"label":"person","outE":{"uses":[{"id":22,"inV":10,"properties":{"skill":3}},{"id":23,"inV":11,"properties":{"skill":3}}],"develops":[{"id":21,"inV":10,"properties":{"since":2012}}]},"properties":{"name":[{"id":2,"value":"matthias"}],"location":[{"id":13,"value":"bremen","properties":{"startTime":2004,"endTime":2007}},{"id":14,"value":"baltimore","properties":{"startTime":2007,"endTime":2011}},{"id":15,"value":"oakland","properties":{"startTime":2011,"endTime":2014}},{"id":16,"value":"seattle","properties":{"startTime":2014}}]}}
+{"id":9,"label":"person","outE":{"uses":[{"id":24,"inV":10,"properties":{"skill":5}},{"id":25,"inV":11,"properties":{"skill":3}}]},"properties":{"name":[{"id":3,"value":"daniel"}],"location":[{"id":17,"value":"spremberg","properties":{"startTime":1982,"endTime":2005}},{"id":18,"value":"kaiserslautern","properties":{"startTime":2005,"endTime":2009}},{"id":19,"value":"aachen","properties":{"startTime":2009}}]}}
+{"id":10,"label":"software","inE":{"uses":[{"id":19,"outV":7,"properties":{"skill":5}},{"id":22,"outV":8,"properties":{"skill":3}},{"id":24,"outV":9,"properties":{"skill":5}},{"id":15,"outV":1,"properties":{"skill":4}}],"develops":[{"id":17,"outV":7,"properties":{"since":2010}},{"id":21,"outV":8,"properties":{"since":2012}},{"id":13,"outV":1,"properties":{"since":2009}}]},"outE":{"traverses":[{"id":26,"inV":11}]},"properties":{"name":[{"id":4,"value":"gremlin"}]}}
+{"id":11,"label":"software","inE":{"traverses":[{"id":26,"outV":10}],"uses":[{"id":16,"outV":1,"properties":{"skill":5}},{"id":20,"outV":7,"properties":{"skill":4}},{"id":23,"outV":8,"properties":{"skill":3}},{"id":25,"outV":9,"properties":{"skill":3}}],"develops":[{"id":18,"outV":7,"properties":{"since":2011}},{"id":14,"outV":1,"properties":{"since":2010}}]},"properties":{"name":[{"id":5,"value":"tinkergraph"}]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-crew.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-crew.json b/data/tinkerpop-crew.json
index 74c861c..2165e4d 100644
--- a/data/tinkerpop-crew.json
+++ b/data/tinkerpop-crew.json
@@ -1 +1,6 @@
-{"variables":{"creator":"marko","comment":"this graph was created to provide examples and test coverage for tinkerpop3 api advances","lastModified":2014},"vertices":[{"id":1,"label":"person","type":"vertex","properties":{"name":[{"id":0,"value":"marko","properties":{}}],"location":[{"id":6,"value":"san diego","properties":{"startTime":1997,"endTime":2001}},{"id":7,"value":"santa cruz","properties":{"startTime":2001,"endTime":2004}},{"id":8,"value":"brussels","properties":{"startTime":2004,"endTime":2005}},{"id":9,"value":"santa fe","properties":{"startTime":2005}}]}},{"id":7,"label":"person","type":"vertex","properties":{"name":[{"id":1,"value":"stephen","properties":{}}],"location":[{"id":10,"value":"centreville","properties":{"startTime":1990,"endTime":2000}},{"id":11,"value":"dulles","properties":{"startTime":2000,"endTime":2006}},{"id":12,"value":"purcellville","properties":{"startTime":2006}}]}},{"id":8,"label":"person","type":"vertex","properties":{"name":[{"id":2,"value":"mat
 thias","properties":{}}],"location":[{"id":13,"value":"bremen","properties":{"startTime":2004,"endTime":2007}},{"id":14,"value":"baltimore","properties":{"startTime":2007,"endTime":2011}},{"id":15,"value":"oakland","properties":{"startTime":2011,"endTime":2014}},{"id":16,"value":"seattle","properties":{"startTime":2014}}]}},{"id":9,"label":"person","type":"vertex","properties":{"name":[{"id":3,"value":"daniel","properties":{}}],"location":[{"id":17,"value":"spremberg","properties":{"startTime":1982,"endTime":2005}},{"id":18,"value":"kaiserslautern","properties":{"startTime":2005,"endTime":2009}},{"id":19,"value":"aachen","properties":{"startTime":2009}}]}},{"id":10,"label":"software","type":"vertex","properties":{"name":[{"id":4,"value":"gremlin","properties":{}}]}},{"id":11,"label":"software","type":"vertex","properties":{"name":[{"id":5,"value":"tinkergraph","properties":{}}]}}],"edges":[{"inV":10,"inVLabel":"software","outVLabel":"person","id":13,"label":"develops","type":"edge",
 "outV":1,"properties":{"since":2009}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":14,"label":"develops","type":"edge","outV":1,"properties":{"since":2010}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":15,"label":"uses","type":"edge","outV":1,"properties":{"skill":4}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":16,"label":"uses","type":"edge","outV":1,"properties":{"skill":5}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":17,"label":"develops","type":"edge","outV":7,"properties":{"since":2010}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":18,"label":"develops","type":"edge","outV":7,"properties":{"since":2011}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":19,"label":"uses","type":"edge","outV":7,"properties":{"skill":5}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":20,"label":"uses","type":"edge","outV":7,"properties":{"skill":4}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":21,"l
 abel":"develops","type":"edge","outV":8,"properties":{"since":2012}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":22,"label":"uses","type":"edge","outV":8,"properties":{"skill":3}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":23,"label":"uses","type":"edge","outV":8,"properties":{"skill":3}},{"inV":10,"inVLabel":"software","outVLabel":"person","id":24,"label":"uses","type":"edge","outV":9,"properties":{"skill":5}},{"inV":11,"inVLabel":"software","outVLabel":"person","id":25,"label":"uses","type":"edge","outV":9,"properties":{"skill":3}},{"inV":11,"inVLabel":"software","outVLabel":"software","id":26,"label":"traverses","type":"edge","outV":10,"properties":{}}]}
\ No newline at end of file
+{"id":1,"label":"person","outE":{"uses":[{"id":16,"inV":11,"properties":{"skill":5}},{"id":15,"inV":10,"properties":{"skill":4}}],"develops":[{"id":13,"inV":10,"properties":{"since":2009}},{"id":14,"inV":11,"properties":{"since":2010}}]},"properties":{"name":[{"id":0,"value":"marko"}],"location":[{"id":6,"value":"san diego","properties":{"startTime":1997,"endTime":2001}},{"id":7,"value":"santa cruz","properties":{"startTime":2001,"endTime":2004}},{"id":8,"value":"brussels","properties":{"startTime":2004,"endTime":2005}},{"id":9,"value":"santa fe","properties":{"startTime":2005}}]}}
+{"id":7,"label":"person","outE":{"uses":[{"id":19,"inV":10,"properties":{"skill":5}},{"id":20,"inV":11,"properties":{"skill":4}}],"develops":[{"id":17,"inV":10,"properties":{"since":2010}},{"id":18,"inV":11,"properties":{"since":2011}}]},"properties":{"name":[{"id":1,"value":"stephen"}],"location":[{"id":10,"value":"centreville","properties":{"startTime":1990,"endTime":2000}},{"id":11,"value":"dulles","properties":{"startTime":2000,"endTime":2006}},{"id":12,"value":"purcellville","properties":{"startTime":2006}}]}}
+{"id":8,"label":"person","outE":{"uses":[{"id":22,"inV":10,"properties":{"skill":3}},{"id":23,"inV":11,"properties":{"skill":3}}],"develops":[{"id":21,"inV":10,"properties":{"since":2012}}]},"properties":{"name":[{"id":2,"value":"matthias"}],"location":[{"id":13,"value":"bremen","properties":{"startTime":2004,"endTime":2007}},{"id":14,"value":"baltimore","properties":{"startTime":2007,"endTime":2011}},{"id":15,"value":"oakland","properties":{"startTime":2011,"endTime":2014}},{"id":16,"value":"seattle","properties":{"startTime":2014}}]}}
+{"id":9,"label":"person","outE":{"uses":[{"id":24,"inV":10,"properties":{"skill":5}},{"id":25,"inV":11,"properties":{"skill":3}}]},"properties":{"name":[{"id":3,"value":"daniel"}],"location":[{"id":17,"value":"spremberg","properties":{"startTime":1982,"endTime":2005}},{"id":18,"value":"kaiserslautern","properties":{"startTime":2005,"endTime":2009}},{"id":19,"value":"aachen","properties":{"startTime":2009}}]}}
+{"id":10,"label":"software","inE":{"uses":[{"id":19,"outV":7,"properties":{"skill":5}},{"id":22,"outV":8,"properties":{"skill":3}},{"id":24,"outV":9,"properties":{"skill":5}},{"id":15,"outV":1,"properties":{"skill":4}}],"develops":[{"id":17,"outV":7,"properties":{"since":2010}},{"id":21,"outV":8,"properties":{"since":2012}},{"id":13,"outV":1,"properties":{"since":2009}}]},"outE":{"traverses":[{"id":26,"inV":11}]},"properties":{"name":[{"id":4,"value":"gremlin"}]}}
+{"id":11,"label":"software","inE":{"traverses":[{"id":26,"outV":10}],"uses":[{"id":16,"outV":1,"properties":{"skill":5}},{"id":20,"outV":7,"properties":{"skill":4}},{"id":23,"outV":8,"properties":{"skill":3}},{"id":25,"outV":9,"properties":{"skill":3}}],"develops":[{"id":18,"outV":7,"properties":{"since":2011}},{"id":14,"outV":1,"properties":{"since":2010}}]},"properties":{"name":[{"id":5,"value":"tinkergraph"}]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-modern-normalized.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-modern-normalized.json b/data/tinkerpop-modern-normalized.json
index e3d72e9..18c265d 100644
--- a/data/tinkerpop-modern-normalized.json
+++ b/data/tinkerpop-modern-normalized.json
@@ -1 +1,6 @@
-{"variables":{},"vertices":[{"id":1,"label":"person","properties":{"age":[{"id":1,"properties":{},"value":29}],"name":[{"id":0,"properties":{},"value":"marko"}]},"type":"vertex"},{"id":2,"label":"person","properties":{"age":[{"id":3,"properties":{},"value":27}],"name":[{"id":2,"properties":{},"value":"vadas"}]},"type":"vertex"},{"id":3,"label":"software","properties":{"lang":[{"id":5,"properties":{},"value":"java"}],"name":[{"id":4,"properties":{},"value":"lop"}]},"type":"vertex"},{"id":4,"label":"person","properties":{"age":[{"id":7,"properties":{},"value":32}],"name":[{"id":6,"properties":{},"value":"josh"}]},"type":"vertex"},{"id":5,"label":"software","properties":{"lang":[{"id":9,"properties":{},"value":"java"}],"name":[{"id":8,"properties":{},"value":"ripple"}]},"type":"vertex"},{"id":6,"label":"person","properties":{"age":[{"id":11,"properties":{},"value":35}],"name":[{"id":10,"properties":{},"value":"peter"}]},"type":"vertex"}],"edges":[{"id":10,"inV":5,"inVLabel":"software",
 "label":"created","outV":4,"outVLabel":"person","properties":{"weight":1.0},"type":"edge"},{"id":11,"inV":3,"inVLabel":"software","label":"created","outV":4,"outVLabel":"person","properties":{"weight":0.4},"type":"edge"},{"id":12,"inV":3,"inVLabel":"software","label":"created","outV":6,"outVLabel":"person","properties":{"weight":0.2},"type":"edge"},{"id":7,"inV":2,"inVLabel":"person","label":"knows","outV":1,"outVLabel":"person","properties":{"weight":0.5},"type":"edge"},{"id":8,"inV":4,"inVLabel":"person","label":"knows","outV":1,"outVLabel":"person","properties":{"weight":1.0},"type":"edge"},{"id":9,"inV":3,"inVLabel":"software","label":"created","outV":1,"outVLabel":"person","properties":{"weight":0.4},"type":"edge"}]}
\ No newline at end of file
+{"id":1,"label":"person","outE":{"created":[{"id":9,"inV":3,"properties":{"weight":0.4}}],"knows":[{"id":7,"inV":2,"properties":{"weight":0.5}},{"id":8,"inV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":0,"value":"marko"}],"age":[{"id":1,"value":29}]}}
+{"id":2,"label":"person","inE":{"knows":[{"id":7,"outV":1,"properties":{"weight":0.5}}]},"properties":{"name":[{"id":2,"value":"vadas"}],"age":[{"id":3,"value":27}]}}
+{"id":3,"label":"software","inE":{"created":[{"id":9,"outV":1,"properties":{"weight":0.4}},{"id":11,"outV":4,"properties":{"weight":0.4}},{"id":12,"outV":6,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":4,"value":"lop"}],"lang":[{"id":5,"value":"java"}]}}
+{"id":4,"label":"person","inE":{"knows":[{"id":8,"outV":1,"properties":{"weight":1.0}}]},"outE":{"created":[{"id":10,"inV":5,"properties":{"weight":1.0}},{"id":11,"inV":3,"properties":{"weight":0.4}}]},"properties":{"name":[{"id":6,"value":"josh"}],"age":[{"id":7,"value":32}]}}
+{"id":5,"label":"software","inE":{"created":[{"id":10,"outV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":8,"value":"ripple"}],"lang":[{"id":9,"value":"java"}]}}
+{"id":6,"label":"person","outE":{"created":[{"id":12,"inV":3,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":10,"value":"peter"}],"age":[{"id":11,"value":35}]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-modern-typed.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-modern-typed.json b/data/tinkerpop-modern-typed.json
index a07ff46..7539020 100644
--- a/data/tinkerpop-modern-typed.json
+++ b/data/tinkerpop-modern-typed.json
@@ -1 +1,6 @@
-{"variables":{"@class":"java.util.HashMap"},"vertices":[{"@class":"java.util.HashMap","id":1,"label":"person","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"marko","properties":{"@class":"java.util.HashMap"}}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":29,"properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":2,"label":"person","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"vadas","properties":{"@class":"java.util.HashMap"}}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":27,"properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":3,"label":"software","type":"vertex","properties":{"@class":"java.util.HashMap","name":[
 "java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",4],"value":"lop","properties":{"@class":"java.util.HashMap"}}]],"lang":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",5],"value":"java","properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":4,"label":"person","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",6],"value":"josh","properties":{"@class":"java.util.HashMap"}}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",7],"value":32,"properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":5,"label":"software","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",8],"value":"ripple","properties":{"@class":"java.util.HashMap"}}]],"lang":["java.util.ArrayList",[{
 "@class":"java.util.HashMap","id":["java.lang.Long",9],"value":"java","properties":{"@class":"java.util.HashMap"}}]]}},{"@class":"java.util.HashMap","id":6,"label":"person","type":"vertex","properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",10],"value":"peter","properties":{"@class":"java.util.HashMap"}}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",11],"value":35,"properties":{"@class":"java.util.HashMap"}}]]}}],"edges":[{"@class":"java.util.HashMap","inV":2,"inVLabel":"person","outVLabel":"person","id":7,"label":"knows","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","weight":0.5}},{"@class":"java.util.HashMap","inV":4,"inVLabel":"person","outVLabel":"person","id":8,"label":"knows","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","weight":1.0}},{"@class":"java.util.HashMap","inV":3,"inVLabel":"software","outVLabel":"person","id":9,"la
 bel":"created","type":"edge","outV":1,"properties":{"@class":"java.util.HashMap","weight":0.4}},{"@class":"java.util.HashMap","inV":5,"inVLabel":"software","outVLabel":"person","id":10,"label":"created","type":"edge","outV":4,"properties":{"@class":"java.util.HashMap","weight":1.0}},{"@class":"java.util.HashMap","inV":3,"inVLabel":"software","outVLabel":"person","id":11,"label":"created","type":"edge","outV":4,"properties":{"@class":"java.util.HashMap","weight":0.4}},{"@class":"java.util.HashMap","inV":3,"inVLabel":"software","outVLabel":"person","id":12,"label":"created","type":"edge","outV":6,"properties":{"@class":"java.util.HashMap","weight":0.2}}]}
\ No newline at end of file
+{"@class":"java.util.HashMap","id":1,"label":"person","outE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":9,"inV":3,"properties":{"@class":"java.util.HashMap","weight":0.4}}]],"knows":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":7,"inV":2,"properties":{"@class":"java.util.HashMap","weight":0.5}},{"@class":"java.util.HashMap","id":8,"inV":4,"properties":{"@class":"java.util.HashMap","weight":1.0}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",0],"value":"marko"}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",1],"value":29}]]}}
+{"@class":"java.util.HashMap","id":2,"label":"person","inE":{"@class":"java.util.HashMap","knows":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":7,"outV":1,"properties":{"@class":"java.util.HashMap","weight":0.5}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",2],"value":"vadas"}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",3],"value":27}]]}}
+{"@class":"java.util.HashMap","id":3,"label":"software","inE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":9,"outV":1,"properties":{"@class":"java.util.HashMap","weight":0.4}},{"@class":"java.util.HashMap","id":11,"outV":4,"properties":{"@class":"java.util.HashMap","weight":0.4}},{"@class":"java.util.HashMap","id":12,"outV":6,"properties":{"@class":"java.util.HashMap","weight":0.2}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",4],"value":"lop"}]],"lang":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",5],"value":"java"}]]}}
+{"@class":"java.util.HashMap","id":4,"label":"person","inE":{"@class":"java.util.HashMap","knows":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":8,"outV":1,"properties":{"@class":"java.util.HashMap","weight":1.0}}]]},"outE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":10,"inV":5,"properties":{"@class":"java.util.HashMap","weight":1.0}},{"@class":"java.util.HashMap","id":11,"inV":3,"properties":{"@class":"java.util.HashMap","weight":0.4}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",6],"value":"josh"}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",7],"value":32}]]}}
+{"@class":"java.util.HashMap","id":5,"label":"software","inE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":10,"outV":4,"properties":{"@class":"java.util.HashMap","weight":1.0}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",8],"value":"ripple"}]],"lang":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",9],"value":"java"}]]}}
+{"@class":"java.util.HashMap","id":6,"label":"person","outE":{"@class":"java.util.HashMap","created":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":12,"inV":3,"properties":{"@class":"java.util.HashMap","weight":0.2}}]]},"properties":{"@class":"java.util.HashMap","name":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",10],"value":"peter"}]],"age":["java.util.ArrayList",[{"@class":"java.util.HashMap","id":["java.lang.Long",11],"value":35}]]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-modern-vertices.ldjson
----------------------------------------------------------------------
diff --git a/data/tinkerpop-modern-vertices.ldjson b/data/tinkerpop-modern-vertices.ldjson
index 7ca4dcc..18c265d 100644
--- a/data/tinkerpop-modern-vertices.ldjson
+++ b/data/tinkerpop-modern-vertices.ldjson
@@ -1,6 +1,6 @@
-{"inE":[],"outE":[{"inV":3,"inVLabel":"software","outVLabel":"person","id":9,"label":"created","type":"edge","outV":1,"properties":{"weight":0.4}},{"inV":2,"inVLabel":"person","outVLabel":"person","id":7,"label":"knows","type":"edge","outV":1,"properties":{"weight":0.5}},{"inV":4,"inVLabel":"person","outVLabel":"person","id":8,"label":"knows","type":"edge","outV":1,"properties":{"weight":1.0}}],"id":1,"label":"person","type":"vertex","properties":{"name":[{"id":0,"label":"name","value":"marko","properties":{}}],"age":[{"id":1,"label":"age","value":29,"properties":{}}]}}
-{"inE":[{"inV":2,"inVLabel":"person","outVLabel":"person","id":7,"label":"knows","type":"edge","outV":1,"properties":{"weight":0.5}}],"outE":[],"id":2,"label":"person","type":"vertex","properties":{"name":[{"id":2,"label":"name","value":"vadas","properties":{}}],"age":[{"id":3,"label":"age","value":27,"properties":{}}]}}
-{"inE":[{"inV":3,"inVLabel":"software","outVLabel":"person","id":9,"label":"created","type":"edge","outV":1,"properties":{"weight":0.4}},{"inV":3,"inVLabel":"software","outVLabel":"person","id":11,"label":"created","type":"edge","outV":4,"properties":{"weight":0.4}},{"inV":3,"inVLabel":"software","outVLabel":"person","id":12,"label":"created","type":"edge","outV":6,"properties":{"weight":0.2}}],"outE":[],"id":3,"label":"software","type":"vertex","properties":{"name":[{"id":4,"label":"name","value":"lop","properties":{}}],"lang":[{"id":5,"label":"lang","value":"java","properties":{}}]}}
-{"inE":[{"inV":4,"inVLabel":"person","outVLabel":"person","id":8,"label":"knows","type":"edge","outV":1,"properties":{"weight":1.0}}],"outE":[{"inV":5,"inVLabel":"software","outVLabel":"person","id":10,"label":"created","type":"edge","outV":4,"properties":{"weight":1.0}},{"inV":3,"inVLabel":"software","outVLabel":"person","id":11,"label":"created","type":"edge","outV":4,"properties":{"weight":0.4}}],"id":4,"label":"person","type":"vertex","properties":{"name":[{"id":6,"label":"name","value":"josh","properties":{}}],"age":[{"id":7,"label":"age","value":32,"properties":{}}]}}
-{"inE":[{"inV":5,"inVLabel":"software","outVLabel":"person","id":10,"label":"created","type":"edge","outV":4,"properties":{"weight":1.0}}],"outE":[],"id":5,"label":"software","type":"vertex","properties":{"name":[{"id":8,"label":"name","value":"ripple","properties":{}}],"lang":[{"id":9,"label":"lang","value":"java","properties":{}}]}}
-{"inE":[],"outE":[{"inV":3,"inVLabel":"software","outVLabel":"person","id":12,"label":"created","type":"edge","outV":6,"properties":{"weight":0.2}}],"id":6,"label":"person","type":"vertex","properties":{"name":[{"id":10,"label":"name","value":"peter","properties":{}}],"age":[{"id":11,"label":"age","value":35,"properties":{}}]}}
+{"id":1,"label":"person","outE":{"created":[{"id":9,"inV":3,"properties":{"weight":0.4}}],"knows":[{"id":7,"inV":2,"properties":{"weight":0.5}},{"id":8,"inV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":0,"value":"marko"}],"age":[{"id":1,"value":29}]}}
+{"id":2,"label":"person","inE":{"knows":[{"id":7,"outV":1,"properties":{"weight":0.5}}]},"properties":{"name":[{"id":2,"value":"vadas"}],"age":[{"id":3,"value":27}]}}
+{"id":3,"label":"software","inE":{"created":[{"id":9,"outV":1,"properties":{"weight":0.4}},{"id":11,"outV":4,"properties":{"weight":0.4}},{"id":12,"outV":6,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":4,"value":"lop"}],"lang":[{"id":5,"value":"java"}]}}
+{"id":4,"label":"person","inE":{"knows":[{"id":8,"outV":1,"properties":{"weight":1.0}}]},"outE":{"created":[{"id":10,"inV":5,"properties":{"weight":1.0}},{"id":11,"inV":3,"properties":{"weight":0.4}}]},"properties":{"name":[{"id":6,"value":"josh"}],"age":[{"id":7,"value":32}]}}
+{"id":5,"label":"software","inE":{"created":[{"id":10,"outV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":8,"value":"ripple"}],"lang":[{"id":9,"value":"java"}]}}
+{"id":6,"label":"person","outE":{"created":[{"id":12,"inV":3,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":10,"value":"peter"}],"age":[{"id":11,"value":35}]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/data/tinkerpop-modern.json
----------------------------------------------------------------------
diff --git a/data/tinkerpop-modern.json b/data/tinkerpop-modern.json
index 9438bfd..18c265d 100644
--- a/data/tinkerpop-modern.json
+++ b/data/tinkerpop-modern.json
@@ -1 +1,6 @@
-{"variables":{},"vertices":[{"id":1,"label":"person","type":"vertex","properties":{"name":[{"id":0,"value":"marko","properties":{}}],"age":[{"id":1,"value":29,"properties":{}}]}},{"id":2,"label":"person","type":"vertex","properties":{"name":[{"id":2,"value":"vadas","properties":{}}],"age":[{"id":3,"value":27,"properties":{}}]}},{"id":3,"label":"software","type":"vertex","properties":{"name":[{"id":4,"value":"lop","properties":{}}],"lang":[{"id":5,"value":"java","properties":{}}]}},{"id":4,"label":"person","type":"vertex","properties":{"name":[{"id":6,"value":"josh","properties":{}}],"age":[{"id":7,"value":32,"properties":{}}]}},{"id":5,"label":"software","type":"vertex","properties":{"name":[{"id":8,"value":"ripple","properties":{}}],"lang":[{"id":9,"value":"java","properties":{}}]}},{"id":6,"label":"person","type":"vertex","properties":{"name":[{"id":10,"value":"peter","properties":{}}],"age":[{"id":11,"value":35,"properties":{}}]}}],"edges":[{"inV":2,"inVLabel":"person","outVLabel
 ":"person","id":7,"label":"knows","type":"edge","outV":1,"properties":{"weight":0.5}},{"inV":4,"inVLabel":"person","outVLabel":"person","id":8,"label":"knows","type":"edge","outV":1,"properties":{"weight":1.0}},{"inV":3,"inVLabel":"software","outVLabel":"person","id":9,"label":"created","type":"edge","outV":1,"properties":{"weight":0.4}},{"inV":5,"inVLabel":"software","outVLabel":"person","id":10,"label":"created","type":"edge","outV":4,"properties":{"weight":1.0}},{"inV":3,"inVLabel":"software","outVLabel":"person","id":11,"label":"created","type":"edge","outV":4,"properties":{"weight":0.4}},{"inV":3,"inVLabel":"software","outVLabel":"person","id":12,"label":"created","type":"edge","outV":6,"properties":{"weight":0.2}}]}
\ No newline at end of file
+{"id":1,"label":"person","outE":{"created":[{"id":9,"inV":3,"properties":{"weight":0.4}}],"knows":[{"id":7,"inV":2,"properties":{"weight":0.5}},{"id":8,"inV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":0,"value":"marko"}],"age":[{"id":1,"value":29}]}}
+{"id":2,"label":"person","inE":{"knows":[{"id":7,"outV":1,"properties":{"weight":0.5}}]},"properties":{"name":[{"id":2,"value":"vadas"}],"age":[{"id":3,"value":27}]}}
+{"id":3,"label":"software","inE":{"created":[{"id":9,"outV":1,"properties":{"weight":0.4}},{"id":11,"outV":4,"properties":{"weight":0.4}},{"id":12,"outV":6,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":4,"value":"lop"}],"lang":[{"id":5,"value":"java"}]}}
+{"id":4,"label":"person","inE":{"knows":[{"id":8,"outV":1,"properties":{"weight":1.0}}]},"outE":{"created":[{"id":10,"inV":5,"properties":{"weight":1.0}},{"id":11,"inV":3,"properties":{"weight":0.4}}]},"properties":{"name":[{"id":6,"value":"josh"}],"age":[{"id":7,"value":32}]}}
+{"id":5,"label":"software","inE":{"created":[{"id":10,"outV":4,"properties":{"weight":1.0}}]},"properties":{"name":[{"id":8,"value":"ripple"}],"lang":[{"id":9,"value":"java"}]}}
+{"id":6,"label":"person","outE":{"created":[{"id":12,"inV":3,"properties":{"weight":0.2}}]},"properties":{"name":[{"id":10,"value":"peter"}],"age":[{"id":11,"value":35}]}}

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/79e186c4/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
index d6ae7c0..1f05ab6 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONModule.java
@@ -21,6 +21,7 @@ package org.apache.tinkerpop.gremlin.structure.io.graphson;
 import com.fasterxml.jackson.core.JsonGenerationException;
 import com.fasterxml.jackson.core.JsonGenerator;
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
 import com.fasterxml.jackson.databind.module.SimpleModule;
@@ -29,13 +30,15 @@ import com.fasterxml.jackson.databind.ser.std.StdSerializer;
 import org.apache.tinkerpop.gremlin.process.traversal.Path;
 import org.apache.tinkerpop.gremlin.process.traversal.util.Metrics;
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics;
+import org.apache.tinkerpop.gremlin.structure.Direction;
 import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexProperty;
-import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+import org.apache.tinkerpop.gremlin.structure.util.star.StarGraph;
+import org.apache.tinkerpop.gremlin.structure.util.star.StarGraphJacksonSerializer;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -56,14 +59,15 @@ public class GraphSONModule extends SimpleModule {
         addSerializer(Vertex.class, new VertexJacksonSerializer());
         addSerializer(GraphSONVertex.class, new GraphSONVertex.VertexJacksonSerializer());
         addSerializer(GraphSONGraph.class, new GraphSONGraph.GraphJacksonSerializer(normalize));
-        addSerializer(GraphSONVertexProperty.class, new GraphSONVertexProperty.GraphSONVertexPropertySerializer());
         addSerializer(VertexProperty.class, new VertexPropertyJacksonSerializer());
         addSerializer(Property.class, new PropertyJacksonSerializer());
         addSerializer(TraversalMetrics.class, new TraversalMetricsJacksonSerializer());
         addSerializer(Path.class, new PathJacksonSerializer());
+        addSerializer(StarGraphJacksonSerializer.DirectionalStarGraph.class, new StarGraphJacksonSerializer());
     }
 
     static class VertexPropertyJacksonSerializer extends StdSerializer<VertexProperty> {
+
         public VertexPropertyJacksonSerializer() {
             super(VertexProperty.class);
         }
@@ -71,103 +75,89 @@ public class GraphSONModule extends SimpleModule {
         @Override
         public void serialize(final VertexProperty property, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
-            ser(property, jsonGenerator);
+            serializerVertexProperty(property, jsonGenerator, serializerProvider, null);
         }
 
         @Override
         public void serializeWithType(final VertexProperty property, final JsonGenerator jsonGenerator,
                                       final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
-            ser(property, jsonGenerator);
-        }
-
-        private static void ser(final VertexProperty property, final JsonGenerator jsonGenerator) throws IOException {
-            // creation of the map enables all the fields to be properly written with their type if required
-            final Map<String, Object> m = new HashMap<>();
-            m.put(GraphSONTokens.ID, property.id());
-            m.put(GraphSONTokens.VALUE, property.value());
-            m.put(GraphSONTokens.LABEL, property.label());
-            m.put(GraphSONTokens.PROPERTIES, props(property));
-
-            jsonGenerator.writeObject(m);
-        }
-
-        private static Map<String, Object> props(final VertexProperty<?> property) {
-            if (property instanceof DetachedVertexProperty) {
-                try {
-                    return IteratorUtils.collectMap(property.properties(), Property::key, Property::value);
-                } catch (UnsupportedOperationException uoe) {
-                    return new HashMap<>();
-                }
-            } else {
-                return (property.graph().features().vertex().supportsMetaProperties()) ?
-                        IteratorUtils.collectMap(property.properties(), Property::key, Property::value) :
-                        new HashMap<>();
-            }
+            serializerVertexProperty(property, jsonGenerator, serializerProvider, typeSerializer);
         }
     }
 
     static class PropertyJacksonSerializer extends StdSerializer<Property> {
+
         public PropertyJacksonSerializer() {
             super(Property.class);
         }
-
         @Override
         public void serialize(final Property property, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
-            ser(property, jsonGenerator);
+            ser(property, jsonGenerator, serializerProvider, null);
         }
 
         @Override
         public void serializeWithType(final Property property, final JsonGenerator jsonGenerator,
                                       final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
-            ser(property, jsonGenerator);
+            ser(property, jsonGenerator, serializerProvider, typeSerializer);
         }
 
-        private static void ser(final Property property, final JsonGenerator jsonGenerator) throws IOException {
-            // creation of the map enables all the fields to be properly written with their type if required
-            final Map<String, Object> m = new HashMap<>();
-            m.put(GraphSONTokens.VALUE, property.value());
-            jsonGenerator.writeObject(m);
+        private static void ser(final Property property, final JsonGenerator jsonGenerator,
+                                final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
+            jsonGenerator.writeStartObject();
+            if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
+            serializerProvider.defaultSerializeField(GraphSONTokens.VALUE, property.value(), jsonGenerator);
+            jsonGenerator.writeEndObject();
         }
+
     }
+    static class EdgeJacksonSerializer extends StdSerializer<Edge> {
 
 
-    static class EdgeJacksonSerializer extends StdSerializer<Edge> {
         public EdgeJacksonSerializer() {
             super(Edge.class);
         }
-
         @Override
         public void serialize(final Edge edge, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
-            ser(edge, jsonGenerator);
+            ser(edge, jsonGenerator, serializerProvider, null);
         }
 
         @Override
         public void serializeWithType(final Edge edge, final JsonGenerator jsonGenerator,
                                       final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
-            ser(edge, jsonGenerator);
+            ser(edge, jsonGenerator, serializerProvider, typeSerializer);
         }
 
-        private static void ser(final Edge edge, final JsonGenerator jsonGenerator) throws IOException {
-            // creation of the map enables all the fields to be properly written with their type if required
-            final Map<String, Object> m = new HashMap<>();
-            m.put(GraphSONTokens.ID, edge.id());
-            m.put(GraphSONTokens.LABEL, edge.label());
-            m.put(GraphSONTokens.TYPE, GraphSONTokens.EDGE);
-
-            final Map<String, Object> properties = IteratorUtils.collectMap(edge.properties(), Property::key, Property::value);
-            m.put(GraphSONTokens.PROPERTIES, properties);
-
-            final Vertex inV = edge.inVertex();
-            m.put(GraphSONTokens.IN, inV.id());
-            m.put(GraphSONTokens.IN_LABEL, inV.label());
-
-            final Vertex outV = edge.outVertex();
-            m.put(GraphSONTokens.OUT, outV.id());
-            m.put(GraphSONTokens.OUT_LABEL, outV.label());
+        private static void ser(final Edge edge, final JsonGenerator jsonGenerator,
+                                final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
+            jsonGenerator.writeStartObject();
+            if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
+            writeWithType(GraphSONTokens.ID,edge.id(), jsonGenerator, serializerProvider, typeSerializer);
+
+            jsonGenerator.writeStringField(GraphSONTokens.LABEL, edge.label());
+            jsonGenerator.writeStringField(GraphSONTokens.TYPE, GraphSONTokens.EDGE);
+            jsonGenerator.writeStringField(GraphSONTokens.IN_LABEL, edge.inVertex().label());
+            jsonGenerator.writeStringField(GraphSONTokens.OUT_LABEL, edge.outVertex().label());
+            writeWithType(GraphSONTokens.IN, edge.inVertex().id(), jsonGenerator, serializerProvider, typeSerializer);
+            writeWithType(GraphSONTokens.OUT, edge.outVertex().id(), jsonGenerator, serializerProvider, typeSerializer);
+            writeProperties(edge, jsonGenerator, serializerProvider, typeSerializer);
+            jsonGenerator.writeEndObject();
+        }
 
-            jsonGenerator.writeObject(m);
+        private static void writeProperties(final Edge edge, final JsonGenerator jsonGenerator,
+                                            final SerializerProvider serializerProvider,
+                                            final TypeSerializer typeSerializer) throws IOException {
+            final Iterator<Property<Object>> elementProperties = edge.properties();
+            if (elementProperties.hasNext()) {
+                jsonGenerator.writeObjectFieldStart(GraphSONTokens.PROPERTIES);
+                if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
+                while (elementProperties.hasNext()) {
+                    final Property<Object> elementProperty = elementProperties.next();
+                    writeWithType(elementProperty.key(), elementProperty.value(), jsonGenerator, serializerProvider, typeSerializer);
+                }
+                jsonGenerator.writeEndObject();
+            }
         }
     }
 
@@ -180,34 +170,40 @@ public class GraphSONModule extends SimpleModule {
         @Override
         public void serialize(final Vertex vertex, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException {
-            ser(vertex, jsonGenerator);
+            ser(vertex, jsonGenerator, serializerProvider, null);
         }
 
         @Override
         public void serializeWithType(final Vertex vertex, final JsonGenerator jsonGenerator,
                                       final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
-            ser(vertex, jsonGenerator);
+            ser(vertex, jsonGenerator, serializerProvider, typeSerializer);
 
         }
 
-        private static void ser(final Vertex vertex, final JsonGenerator jsonGenerator)
+        private static void ser(final Vertex vertex, final JsonGenerator jsonGenerator,
+                                final SerializerProvider serializerProvider, final TypeSerializer typeSerializer)
                 throws IOException {
-            // creation of the map enables all the fields to be properly written with their type if required
-            final Map<String, Object> m = new HashMap<>();
-            m.put(GraphSONTokens.ID, vertex.id());
-            m.put(GraphSONTokens.LABEL, vertex.label());
-            m.put(GraphSONTokens.TYPE, GraphSONTokens.VERTEX);
-
-            // convert to GraphSONVertexProperty so that the label does not get serialized in the output - it is
-            // redundant because the key in the map is the same as the label.
-            final Iterator<GraphSONVertexProperty> vertexPropertyList = IteratorUtils.map(vertex.properties(), GraphSONVertexProperty::new);
-            final Object properties = IteratorUtils.groupBy(vertexPropertyList, vp -> vp.getToSerialize().key());
-            m.put(GraphSONTokens.PROPERTIES, properties);
+            jsonGenerator.writeStartObject();
+            if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
+            serializerProvider.defaultSerializeField(GraphSONTokens.ID, vertex.id(), jsonGenerator);
+            jsonGenerator.writeStringField(GraphSONTokens.LABEL, vertex.label());
+            jsonGenerator.writeStringField(GraphSONTokens.TYPE, GraphSONTokens.VERTEX);
+            writeProperties(vertex, jsonGenerator);
+            jsonGenerator.writeEndObject();
+        }
 
-            jsonGenerator.writeObject(m);
+        private static void writeProperties(final Vertex vertex, final JsonGenerator jsonGenerator) throws IOException {
+            final Iterator<VertexProperty<Object>> vertexProperties = vertex.properties();
+            if (vertexProperties.hasNext()) {
+                jsonGenerator.writeArrayFieldStart(GraphSONTokens.PROPERTIES);
+                while (vertexProperties.hasNext()) {
+                    jsonGenerator.writeObject(vertexProperties.next());
+                }
+                jsonGenerator.writeEndArray();
+            }
         }
-    }
 
+    }
     static class PathJacksonSerializer extends StdSerializer<Path> {
         public PathJacksonSerializer() {
             super(Path.class);
@@ -216,28 +212,27 @@ public class GraphSONModule extends SimpleModule {
         @Override
         public void serialize(final Path path, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider)
                 throws IOException, JsonGenerationException {
-            ser(path, jsonGenerator);
+            ser(path, jsonGenerator, null);
         }
-
         @Override
         public void serializeWithType(final Path path, final JsonGenerator jsonGenerator,
                                       final SerializerProvider serializerProvider, final TypeSerializer typeSerializer)
                 throws IOException, JsonProcessingException {
-            ser(path, jsonGenerator);
+            ser(path, jsonGenerator, typeSerializer);
         }
 
-        private static void ser(final Path path, final JsonGenerator jsonGenerator)
+        private static void ser(final Path path, final JsonGenerator jsonGenerator, final TypeSerializer typeSerializer)
                 throws IOException {
-            // creation of the map enables all the fields to be properly written with their type if required
-            final Map<String, Object> m = new HashMap<>();
-            m.put(GraphSONTokens.LABELS, path.labels());
-            m.put(GraphSONTokens.OBJECTS, path.objects());
-            jsonGenerator.writeObject(m);
+            jsonGenerator.writeStartObject();
+            if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
+            jsonGenerator.writeObjectField(GraphSONTokens.LABELS, path.labels());
+            jsonGenerator.writeObjectField(GraphSONTokens.OBJECTS, path.objects());
+            jsonGenerator.writeEndObject();
         }
+
     }
 
     static class TraversalMetricsJacksonSerializer extends StdSerializer<TraversalMetrics> {
-
         public TraversalMetricsJacksonSerializer() {
             super(TraversalMetrics.class);
         }
@@ -258,7 +253,7 @@ public class GraphSONModule extends SimpleModule {
             // creation of the map enables all the fields to be properly written with their type if required
             final Map<String, Object> m = new HashMap<>();
             m.put(GraphSONTokens.DURATION, traversalMetrics.getDuration(TimeUnit.NANOSECONDS) / 1000000d);
-            List<Map<String, Object>> metrics = new ArrayList<>();
+            final List<Map<String, Object>> metrics = new ArrayList<>();
             traversalMetrics.getMetrics().forEach(it -> metrics.add(metricsToMap(it)));
             m.put(GraphSONTokens.METRICS, metrics);
 
@@ -277,12 +272,13 @@ public class GraphSONModule extends SimpleModule {
             }
 
             if (!metrics.getNested().isEmpty()) {
-                List<Map<String, Object>> nested = new ArrayList<>();
+                final List<Map<String, Object>> nested = new ArrayList<>();
                 metrics.getNested().forEach(it -> nested.add(metricsToMap(it)));
                 m.put(GraphSONTokens.METRICS, nested);
             }
             return m;
         }
+
     }
 
     /**
@@ -299,7 +295,6 @@ public class GraphSONModule extends SimpleModule {
                                       final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
             ser(o, jsonGenerator, serializerProvider);
         }
-
         private void ser(final Object o, final JsonGenerator jsonGenerator,
                          final SerializerProvider serializerProvider) throws IOException {
             if (Element.class.isAssignableFrom(o.getClass()))
@@ -307,5 +302,56 @@ public class GraphSONModule extends SimpleModule {
             else
                 super.serialize(o, jsonGenerator, serializerProvider);
         }
+
+    }
+
+    private static void serializerVertexProperty(final VertexProperty property, final JsonGenerator jsonGenerator,
+                                                 final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException {
+        jsonGenerator.writeStartObject();
+        if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName());
+        serializerProvider.defaultSerializeField(GraphSONTokens.ID, property.id(), jsonGenerator);
+        serializerProvider.defaultSerializeField(GraphSONTokens.VALUE, property.value(), jsonGenerator);
+        jsonGenerator.writeStringField(GraphSONTokens.LABEL, property.label());
+        tryWriteMetaProperties(property, jsonGenerator);
+        jsonGenerator.writeEndObject();
+    }
+
+    private static void tryWriteMetaProperties(final VertexProperty property, final JsonGenerator jsonGenerator) throws IOException {
+        // when "detached" you can't check features of the graph it detached from so it has to be
+        // treated differently from a regular VertexProperty implementation.
+        if (property instanceof DetachedVertexProperty) {
+            // only write meta properties key if they exist
+            if (property.properties().hasNext()) {
+                writeMetaProperties(property, jsonGenerator);
+            }
+        } else {
+            // still attached - so we can check the features to see if it's worth even trying to write the
+            // meta properties key
+            if (property.graph().features().vertex().supportsMetaProperties() && property.properties().hasNext()) {
+                writeMetaProperties(property, jsonGenerator);
+            }
+        }
+    }
+
+    private static void writeMetaProperties(final VertexProperty property, final JsonGenerator jsonGenerator) throws IOException {
+        jsonGenerator.writeObjectFieldStart(GraphSONTokens.PROPERTIES);
+        final Iterator<Property<Object>> metaProperties = property.properties();
+        while (metaProperties.hasNext()) {
+            final Property<Object> metaProperty = metaProperties.next();
+            jsonGenerator.writeObjectField(metaProperty.key(), metaProperty.value());
+        }
+        jsonGenerator.writeEndObject();
+    }
+
+    private static void writeWithType(final String key, final Object object, final JsonGenerator jsonGenerator,
+                                      final SerializerProvider serializerProvider,
+                                      final TypeSerializer typeSerializer) throws IOException {
+        final JsonSerializer<Object> serializer = serializerProvider.findValueSerializer(object.getClass(), null);
+        if (typeSerializer != null) {
+            jsonGenerator.writeFieldName(key);
+            serializer.serializeWithType(object, jsonGenerator, serializerProvider, typeSerializer);
+        } else {
+            jsonGenerator.writeObjectField(key, object);
+        }
     }
 }