How to get properties from multiple vertexes in gremlin

This sort of issues is commonly handled by project():

g.V().hasLabel('user').
  project('name','email','phone').
    by('name').
    by(out('owns').hasLabel('email').values("email")).
    by(out('owns').hasLabel('phone_number').values('phone_number'))