You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2017/01/17 17:22:26 UTC
[jira] [Updated] (TINKERPOP-1565) GraphSON 3.0 updates --
supporting attachment, maintaining consistency, and reducing verbosity
[ https://issues.apache.org/jira/browse/TINKERPOP-1565?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stephen mallette updated TINKERPOP-1565:
----------------------------------------
Labels: (was: breaking)
Fix Version/s: 3.3.0
Summary: GraphSON 3.0 updates -- supporting attachment, maintaining consistency, and reducing verbosity (was: GraphSON 2.0 updates -- supporting attachment, maintaining consistency, and reducing verbosity)
These changes would now be slated for 3.3.0 and GraphSON 3.0. In this way, we don't introduce breaking changes to GraphSON 2.x and the 3.2.x line of code.
> GraphSON 3.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
> Assignee: Marko A. Rodriguez
> Fix For: 3.3.0
>
>
> 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)