gremlin> g = TinkerGraphFactory.createTinkerGraph()
==>tinkergraph[vertices:6 edges:6]
gremlin> g.v(1).as('marko').outE.as('markoTo').inV.as('something').select
==>[marko:v[1], markoTo:e[7][1-knows->2], something:v[2]]
==>[marko:v[1], markoTo:e[8][1-knows->4], something:v[4]]
==>[marko:v[1], markoTo:e[9][1-created->3], something:v[3]]
I've used to select() to get the "marko" subgraph...just write those vertices/edges into a new TinkerGraph and you have your new subgraph. It remains to be seen if we could have a more fluid way of doing subgraphing in TinkerPop3.