[ https://issues.apache.org/jira/browse/TINKERPOP-1036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15072974#comment-15072974 ]
ASF GitHub Bot commented on TINKERPOP-1036: ------------------------------------------- Github user okram commented on the pull request: https://github.com/apache/incubator-tinkerpop/pull/175#issuecomment-167622062 From what I can tell from the code in this PR, there is nothing "too crazy" here save that you assume incoming edges and not outgoing edges, where outgoing edges are the typical "lowest common denominator" for a format. That is, most people, if they don't have the full "star graph" will have at least outgoing edges for each vertex (NOT incoming edges). I don't know why you require incoming edges, but okay... I assume you have your reasons. If you can make it work without that assumption, that would be best (I suppose). Next, I don't know how `StarGraph` plays into this. Is `StarGraph` failing with self-loops? `StarGraph` is serialized via `Gryo` (see `VertexWritable` as well). If GryoReader/Writer is happy, then I suspect things will work with all the Hadoop/Spark/etc. work. However, it would be best if we had some self-loop tests. What sucks is we don't have a `GraphLoader.SELF_LOOPS` style toy dataset and with `HadoopGraph`, you can't mutate the graph............................. > Support self-looping edges in IO > -------------------------------- > > Key: TINKERPOP-1036 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1036 > Project: TinkerPop > Issue Type: Bug > Components: io > Affects Versions: 3.1.0-incubating > Reporter: stephen mallette > Assignee: stephen mallette > Fix For: 3.1.1-incubating > > > Seems like GraphSON is having trouble with self-loops. Not sure about other > IO at this time. > {code} > gremlin> a = TinkerGraph.open() > ==>tinkergraph[vertices:0 edges:0] > gremlin> v1 = a.addVertex() > ==>v[0] > gremlin> v2 = a.addVertex() > ==>v[1] > gremlin> control = v1.addEdge("CONTROL", v2) > ==>e[2][0-CONTROL->1] > gremlin> selfLoop = v1.addEdge("SELF-LOOP", v1) > ==>e[3][0-SELF-LOOP->0] > gremlin> a.io(IoCore.graphson()).writeGraph("test.gson") > ==>null > gremlin> b = TinkerGraph.open() > ==>tinkergraph[vertices:0 edges:0] > gremlin> b.io(IoCore.graphson()).readGraph("test.gson") > ==>null > gremlin> b.traversal().E() > ==>e[2][0-CONTROL->1] > {code} > with graphson of: > {code} > {"id":0,"label":"vertex","inE":{"SELF-LOOP":[{"id":3,"outV":0}]},"outE":{"CONTROL":[{"id":2,"inV":1}]}} > {"id":1,"label":"vertex","inE":{"CONTROL":[{"id":2,"outV":0}]}} > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)