title: Unpack vertices' properties returned from a select()
body: <p>I would like to write a <strong>MATCH query</strong> in gremlin to find a subgraph matching a particular pattern. The pattern of interest contains 4 different types/labels of nodes: <strong>c, p, r,</strong> and <strong>s</strong>. And 4 different types of edges as shown below:</p>
  <pre><code>(c)-&gt;[affecting]-&gt;(p)
  (c)-[c_found_in_release]-&gt;(r)
  (p)-[p_found_in_release]-&gt;(r)
  (s)-[severity]-&gt;(c)
  </code></pre>
  <p>So far I have the query below which works fine, however, the results do not show the properties of the vertices returned. Since the verticies returned from the <code>select()</code> statement belong to different types of nodes, I cannot use something like <code>value()</code> or <code>valueMap()</code></p>
  <pre><code>    g.V().match(
              __.as('c').out('affecting').as('p'), \
              __.as('c').out('cve_found_in_release').as('r'), \
              __.as('p').out('pack_found_in_release').as('r'), \
              __.as('s').both('severity').as('c') \
      ). \
      select('c', 'p', 'r', 's').limit(10)
  </code></pre>
  <ul>
  <li>Current result:</li>
  </ul>
  <pre><code>    ==&gt;[c:v[0],p:v[3],r:v[6],s:v[10]]
      
  </code></pre>
  <p>How to get something more detailed like this instead:</p>
  <ul>
  <li>Desired result:</li>
  </ul>
  <pre><code>==&gt;[
          c:[cve_id:[CVE-2021-3618],publishedOn:[2022-03-23],
          p:[name:[vsftpd],version:[3.0.3]],
          r:[sourceBranch:[1.0],detectedOn:[2022-04-05],status:[Upgraded]],
          s:[severity:[High]],
      ]
  </code></pre>