You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by Matthias Broecheler <me...@matthiasb.com> on 2015/04/01 23:49:02 UTC

Re: Graph Identifiers

I agree with solving this at the graph level.

On Mon, Mar 30, 2015 at 12:37 PM Stephen Mallette <sp...@gmail.com>
wrote:

> This issue all seems to trap users (even pre-TP3):
>
> gremlin> graph = TinkerGraph.open()
> ==>tinkergraph[vertices:0 edges:0]
> gremlin> g = graph.traversal()
> ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
> gremlin> g.addV(id,1l)
> ==>v[1]
> gremlin> g.V(1)
> gremlin> g.V(1L)
> ==>v[1]
>
> We see it again here on the gremlin-users mailing list today:
>
> https://groups.google.com/d/msg/gremlin-users/Nb7v1-ihFgY/nG73rO-WrHcJ
>
> and its impact on non-JVM languages using GraphSON serialization with
> Gremlin Server.  Here's a few thoughts for how we might try to make this
> better:
>
> 1. Take care of it at the Graph level.  In the test suite, force graphs
> that supportsNumericIds to properly resolve any Number (long, int, etc)
> given as an Id (the most common case for getting this wrong).  Force those
> that supportsCustomIds to accept a "string" representation of that id.  In
> this way, Graph identifiers can fit in basic JSON types.
> 2. Make it so that Gremlin Server coerces JSON types to some standard
> form.  Rexster sorta worked this way with RexPro where there was lossiness
> with MsgPack.  Maybe Gremlin Server has some configuration for this?  Not a
> perfect solution being so high in the stack and certainly doesn't fix the
> console example above.
> 3. Introduce a more simplistic type system to Gremlin Server's
> GraphSON....something less verbose than what you get with the embedTypes
> setting on the GraphSONWriter??  Rexster had a system for doing this, but
> it didn't feel like a great approach.  Again, this doesn't really fix
> problems with the Console example.  Not sure it helps Dylan either given
> what was stated in that post above.
>
> I don't know if option 1 is the right answer, but I like the idea of
> solving this at the Graph level somehow so that the benefit goes up the
> stack  any other ways to do it?  how about reasons for not trying to settle
> it at the gremlin-core/Graph level?
>
> Thanks,
>
> Stephen
>

Re: Graph Identifiers

Posted by Stephen Mallette <sp...@gmail.com>.
I'm leaning that way, Matthias.  For those following please see this issue:
https://issues.apache.org/jira/browse/TINKERPOP3-581  - jump to the last
comment as it pertains most to what we're talking about here.

On Wed, Apr 1, 2015 at 5:49 PM, Matthias Broecheler <me...@matthiasb.com>
wrote:

> I agree with solving this at the graph level.
>
> On Mon, Mar 30, 2015 at 12:37 PM Stephen Mallette <sp...@gmail.com>
> wrote:
>
> > This issue all seems to trap users (even pre-TP3):
> >
> > gremlin> graph = TinkerGraph.open()
> > ==>tinkergraph[vertices:0 edges:0]
> > gremlin> g = graph.traversal()
> > ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
> > gremlin> g.addV(id,1l)
> > ==>v[1]
> > gremlin> g.V(1)
> > gremlin> g.V(1L)
> > ==>v[1]
> >
> > We see it again here on the gremlin-users mailing list today:
> >
> > https://groups.google.com/d/msg/gremlin-users/Nb7v1-ihFgY/nG73rO-WrHcJ
> >
> > and its impact on non-JVM languages using GraphSON serialization with
> > Gremlin Server.  Here's a few thoughts for how we might try to make this
> > better:
> >
> > 1. Take care of it at the Graph level.  In the test suite, force graphs
> > that supportsNumericIds to properly resolve any Number (long, int, etc)
> > given as an Id (the most common case for getting this wrong).  Force
> those
> > that supportsCustomIds to accept a "string" representation of that id.
> In
> > this way, Graph identifiers can fit in basic JSON types.
> > 2. Make it so that Gremlin Server coerces JSON types to some standard
> > form.  Rexster sorta worked this way with RexPro where there was
> lossiness
> > with MsgPack.  Maybe Gremlin Server has some configuration for this?
> Not a
> > perfect solution being so high in the stack and certainly doesn't fix the
> > console example above.
> > 3. Introduce a more simplistic type system to Gremlin Server's
> > GraphSON....something less verbose than what you get with the embedTypes
> > setting on the GraphSONWriter??  Rexster had a system for doing this, but
> > it didn't feel like a great approach.  Again, this doesn't really fix
> > problems with the Console example.  Not sure it helps Dylan either given
> > what was stated in that post above.
> >
> > I don't know if option 1 is the right answer, but I like the idea of
> > solving this at the Graph level somehow so that the benefit goes up the
> > stack  any other ways to do it?  how about reasons for not trying to
> settle
> > it at the gremlin-core/Graph level?
> >
> > Thanks,
> >
> > Stephen
> >
>