[ 
https://issues.apache.org/jira/browse/TINKERPOP-2284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stephen mallette closed TINKERPOP-2284.
---------------------------------------
    Fix Version/s: 3.4.4
                   3.5.0
         Assignee: stephen mallette
       Resolution: Done

> Make it easier to return more structure of graph elements
> ---------------------------------------------------------
>
>                 Key: TINKERPOP-2284
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2284
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.3.8
>            Reporter: stephen mallette
>            Assignee: stephen mallette
>            Priority: Major
>             Fix For: 3.5.0, 3.4.4
>
>
> There are times where you want the structural elements of an {{Edge}} beyond 
> {{id}} and {{label}} when you {{valueMap(true)}}, which forces something like:
> {code}
> gremlin> g.E(12).union(valueMap(true),
> ......1>               project('inV','outV','inVLabel','outVLabel').
> ......2>                 by(inV().id()).
> ......3>                 by(outV().id()).
> ......4>                 by(inV().label()).
> ......5>                 by(outV().label())).unfold().
> ......6>               group().
> ......7>                 by(keys).
> ......8>                 by(select(values))
> ==>[inV:3,id:12,inVLabel:software,weight:0.2,outVLabel:person,label:created,outV:6]
> {code}
> We could continue to overload {{valueMap()}} and do stuff like 
> {{with(adjacents)}} or other such things, but perhaps we should just leave 
> that step alone since it is so widely used. Maybe we just need a new step? 
> How about {{elementMap()}} which preserves the structure of any graph 
> element, meaning:
> * {{Vertex}} - include {{id}} and {{label}} plus properties as single 
> cardinality - multiproperties could be included using {{with()}}??)
> * {{Edge}} - include {{id}}, {{label}}, {{inVId}}, {{outVId}}, {{outVLabel}}, 
> {{inVLabel}} (basically full reference elements for vertices plus properties 
> * {{VertexProperty}} - include {{id}} and {{label}} plus properties
> If we had a step like that then the above would become:
> {code}
> g.E(12).elementMap()
> {code}
> other ways?
> I think the key thing here is that prior to "reference elements" users relied 
> on the full {{Vertex}} or {{Edge}} to get all data and given that we don't 
> have that anymore we need a way to allow users to easily convert the entire 
> structure of a graph element to its {{Map}} counterpart.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to