Hi guys,

after playing with the M8 release for a bit I wanted to discuss the
following: With M8, TP3 effectively brings back the distinction between
Blueprints and Gremlin, i.e. there are low level methods for accessing a
vertex' adjacency list and there are the traversals.
In TP2 that was an issue because developers would start implementing
against Blueprints directly and treat it like a graph library - not like a
query language. It can be reasonably assumed that the same will happen for
TP3. This will be further aggravated by the fact that element traversals
are no longer supported in TP3. Meaning, you can no longer do
v.out('knows').in('knows") but have to put the vertex back into the
GraphTraversalSource. That will be very confusing and one can expect that
user's will prefer using the primitive adjacency list calls instead.
When you have a vertex and you try to traverse out of it, you will type in
"v." in your IDE. Lacking any other options, the user will select
"v.edges()", etc.

I wanted to bring this to your attention since I like the vision of
"everything is Gremlin". In naming this is true but I am afraid that actual
user behavior will be different.

- Why not hide the access methods in the iterator method as was done in the
last milestone release?
- Should we enforce that the GraphTraversalSource is attached to each
element so that traversing out of it is possible?

Thanks,
Matthias

Reply via email to