[ https://issues.apache.org/jira/browse/TINKERPOP-1565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15708770#comment-15708770 ]
Marko A. Rodriguez commented on TINKERPOP-1565: ----------------------------------------------- For 3.3.0 we should get rid of the concept of GraphSON 2.0 untyped (non-embedded types). This distinction is a complication and in fact, shouldn't really be used ever given the GLV direction with GraphSON and serialization format. It should all be typed GraphSON 2.0. > GraphSON 2.0 updates -- supporting attachment, maintaining consistency, and > reducing verbosity > ---------------------------------------------------------------------------------------------- > > Key: TINKERPOP-1565 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1565 > Project: TinkerPop > Issue Type: Improvement > Components: io > Affects Versions: 3.2.3 > Reporter: Marko A. Rodriguez > Labels: breaking > Fix For: 3.2.3 > > > GraphSON 2.0 has some issues that should be recified for its "official > release" in 3.3.0. > *Supporting Attachment* > We need to make sure that every element and property can be attached back to > the main graph. > * For {{Vertex}}, this means that we need to have the ID encoded (CHECK). > * For {{Edge}}, this means we need to have the out/in vertex ids encoded > (CHECK). > * For {{VertexProperty}}, this means we need to have the vertex ID encoded > (ERROR). > * For {{Property}}, this means we need to have the the element ID (vertex > property or edge) encoded and then the subsequent vertex ID (ERROR). > *Maintaining Consistency* > Currently, property encoding in {{Edge}} is different than property encoding > in {{VertexProperty}}. > Edge --> > {code} > properties : { > key : "aKey", > value : { @type: "gProperty", @value : {"key","aKey","value",10}} > } > {code} > VertexProperty--> > {code} > properties : { > key : "aKey", > value : 10 > } > {code} > This should be consistent. > *Reducing Verbosity* > We have the problem of representing both {{DetachedElements}} and > {{ReferenceElements}}. {{DetachedElements}} contain lots of information and > is typicaly used to ensure a data rich result set. {{ReferenceElements}} > contain only the necessary information for attachment. I think we can support > both representations by making certain fields "optional." > Vertex--> > {code} > return new > Vertex(json.get("id"),json.getOrDefault("label",Vertex.DEFAULT_LABEL),json.getOrDefault("properties",Collections.emptyMap())) > {code} > That is, lots of {{getOrDefault()}} use will make sure that when desesired, > we only send/recv information that is needed for the particular > computatation. E.g. as dictated by {{HaltedTraverserStrategy}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)