[jira] [Commented] (TINKERPOP-1802) hasId() fails for empty collections
[ https://issues.apache.org/jira/browse/TINKERPOP-1802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16242286#comment-16242286 ] Bob Briody commented on TINKERPOP-1802: --- bq. This has been fixed by simply filtering out (`filter(true)` in essence) all vertices once a `hasId([]) My fault - I misread this comment, got confused by `filter(true)`. Sorry for the noise. > hasId() fails for empty collections > --- > > Key: TINKERPOP-1802 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1802 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.3.0, 3.2.6 >Reporter: Daniel Kuppitz >Assignee: Marko A. Rodriguez > > {noformat} > gremlin> g.V().hasId(within([])) > 0 > Type ':help' or ':h' for help. > Display stack trace? [yN] > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1802) hasId() fails for empty collections
[ https://issues.apache.org/jira/browse/TINKERPOP-1802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16242258#comment-16242258 ] Bob Briody commented on TINKERPOP-1802: --- The implementation of this seems backwards to me. The `hasId` Step semantics are "If an Element Traverser has an ID matching one of the items in this list, then emit it, else not.". So when the list is empty, no Element Traversers should be emitted, because no Element Traversers have an ID matching an item in the list. That may seem like a silly thing to do - why specify an empty list that's just going to filter out all vertices? Well, if a developer were hard coding an empty array then that would be true, but I doubt that is how this will ever come up in practice. In practice, I think it will be much more likely for an empty array to arrive in a `hasId` step programatically. For example, "Get a list of the IDs of Bob's friends. Now use that list in a hasId step in a Traversal. ...But suppose Bob doesn't have any friends - that list will be empty." This creates situations where things get really ugly, such as this: {code:java} def t = g.V(targetId); t = existingEdgeIds.length == 0 ? t : t.has(id, without(existingEdgeIds)); {code} ...because in order to achieve the natural semantics, one has to modify their Traversal depending on dynamic ID lists. So, I can see why it might seem obvious to assume that an empty list should imply that no filtering occurs, and I realize that there are consistency concerns wrt g.V()/g.E(), but I still think that the pragmatic usage of this step justifies the behavior I described. > hasId() fails for empty collections > --- > > Key: TINKERPOP-1802 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1802 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.3.0, 3.2.6 >Reporter: Daniel Kuppitz >Assignee: Marko A. Rodriguez > > {noformat} > gremlin> g.V().hasId(within([])) > 0 > Type ':help' or ':h' for help. > Display stack trace? [yN] > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1637) Expose metrics attributes in string output
[ https://issues.apache.org/jira/browse/TINKERPOP-1637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15879036#comment-15879036 ] Bob Briody commented on TINKERPOP-1637: --- [~bryncooke] is this specific to the gremlin console output? > Expose metrics attributes in string output > -- > > Key: TINKERPOP-1637 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1637 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.2.4 >Reporter: Bryn Cooke > > Currently the profile step won't expose metrics attributes in the string > output. This means that useful information provided by graph implementations > is never output. > It would be great if the attributes could be output indented under each > metric. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TINKERPOP-1614) Improve documentation for Graph.V() and Graph.E() on main docs page
[ https://issues.apache.org/jira/browse/TINKERPOP-1614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15878825#comment-15878825 ] Bob Briody commented on TINKERPOP-1614: --- Yup, I saw that. I know I'm being fussy but it just seems weird to have to go to another page to find such core/foundational/basic info. It should jump out in the list of steps. You also can't ctrl+f for it easily now. > Improve documentation for Graph.V() and Graph.E() on main docs page > --- > > Key: TINKERPOP-1614 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1614 > Project: TinkerPop > Issue Type: Improvement > Components: documentation >Reporter: Bob Briody >Assignee: stephen mallette > Fix For: 3.2.5 > > > I was trying to help someone out on stack overflow recently: > http://stackoverflow.com/questions/41638792/dse-graph-get-all-edges-between-two-vertexes. > I was on the main TinkerPop3 Docs page looking for some introduction to > g.V() that would be good to copy/paste, but couldn't find anything. > It seems like there might be a stepping stone missing between "The Traversal" > and "Graph Traversal Steps" - a stepping stone about using V and E to > seed/start a Traversal. > The use of IDs should also be discussed there as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (TINKERPOP-1614) Improve documentation for Graph.V() and Graph.E() on main docs page
[ https://issues.apache.org/jira/browse/TINKERPOP-1614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15878780#comment-15878780 ] Bob Briody commented on TINKERPOP-1614: --- I still think it's kinda weird that there is no reference to GraphTraversalSource's V(Object... vertexIds) and E(Object... edgeIds) methods in the main reference. I know they are technically not steps but I think it would make sense to document them there anyway - and to be clear, it's the passing of IDs part I'm really thinking about. > Improve documentation for Graph.V() and Graph.E() on main docs page > --- > > Key: TINKERPOP-1614 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1614 > Project: TinkerPop > Issue Type: Improvement > Components: documentation >Reporter: Bob Briody >Assignee: stephen mallette > Fix For: 3.2.5 > > > I was trying to help someone out on stack overflow recently: > http://stackoverflow.com/questions/41638792/dse-graph-get-all-edges-between-two-vertexes. > I was on the main TinkerPop3 Docs page looking for some introduction to > g.V() that would be good to copy/paste, but couldn't find anything. > It seems like there might be a stepping stone missing between "The Traversal" > and "Graph Traversal Steps" - a stepping stone about using V and E to > seed/start a Traversal. > The use of IDs should also be discussed there as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (TINKERPOP-1614) Improve documentation for Graph.V() and Graph.E() on main docs page
Bob Briody created TINKERPOP-1614: - Summary: Improve documentation for Graph.V() and Graph.E() on main docs page Key: TINKERPOP-1614 URL: https://issues.apache.org/jira/browse/TINKERPOP-1614 Project: TinkerPop Issue Type: Task Components: documentation Reporter: Bob Briody I was trying to help someone out on stack overflow recently: http://stackoverflow.com/questions/41638792/dse-graph-get-all-edges-between-two-vertexes. I was on the main TinkerPop3 Docs page looking for some introduction to g.V() that would be good to copy/paste, but couldn't find anything. It seems like there might be a stepping stone missing between "The Traversal" and "Graph Traversal Steps" - a stepping stone about using V and E to seed/start a Traversal. The use of IDs should also be discussed there as well. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (TINKERPOP-1494) Means of exposing execution information from a result produced by RemoteConnection
[ https://issues.apache.org/jira/browse/TINKERPOP-1494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15565485#comment-15565485 ] Bob Briody commented on TINKERPOP-1494: --- Matthias B did the work to populate the profiling metrics info from DSEGraph. I put the hooks in TinkerPop's profiling framework to enable that. I'm not sure how useful or applicable that stuff would be as an extension model in this case. Connection and request details may benefit from something less abstract. > Means of exposing execution information from a result produced by > RemoteConnection > -- > > Key: TINKERPOP-1494 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1494 > Project: TinkerPop > Issue Type: Improvement > Components: driver >Affects Versions: 3.2.2 >Reporter: Andy Tolbert > > When using a Graph Traversal that is backed by a {{RemoteConnection}} it > would be useful if there was a way to get information about how the traversal > was executed in terms of what host was used and perhaps other information > that is useful for that particular {{RemoteConnection}} implementation. For > example, if the underlying connection executes retries on query timeouts, > it'd be interesting if that and the hosts that were tried were surfaced in > some way. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (TINKERPOP-1332) Improve .explain() Dialogue
[ https://issues.apache.org/jira/browse/TINKERPOP-1332?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15331802#comment-15331802 ] Bob Briody commented on TINKERPOP-1332: --- I don't like the idea of introducing word wrap here. That seems like something that should be left up to the view presenter (the terminal, another app, whatever). I realize that it's common to view this output in the terminal but 1) this isn't something you can easily reverse when you don't want it and 2) It will only look good for the hard coded terminal size. If you do decide to keep it though, then width should be 80 characters. That's the standard default terminal character width. > It would be nice if this was set to the console window size in some way... :/ > ... any thoughts on how to make this more dynamic? No, but again, we should be thinking about more than just terminal output. > Improve .explain() Dialogue > > > Key: TINKERPOP-1332 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1332 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.2.0-incubating >Reporter: Russell Alexander Spitzer >Assignee: Marko A. Rodriguez >Priority: Minor > > Currently the output of explain gives you a long list of strategies but no > details about their application > {code} > ==>Traversal Explanation > > Original Traversal [GraphStep(vertex,[]), CountGlobalStep] > HaltedTraverserStrategy [D] [GraphStep(vertex,[]), CountGlobalStep] > ConnectiveStrategy [D] [GraphStep(vertex,[]), CountGlobalStep] > VertexProgramStrategy[D] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > OrderLimitStrategy [O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > IdentityRemovalStrategy [O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > FilterRankingStrategy[O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > IncidentToAdjacentStrategy [O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > RangeByIsCountStrategy [O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > AdjacentToIncidentStrategy [O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > MatchPredicateStrategy [O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > GraphFilterStrategy [O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > PathProcessorStrategy[O] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > SparkInterceptorStrategy [P] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > SparkSingleIterationStrategy [P] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > ProfileStrategy [F] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > LambdaRestrictionStrategy[V] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > ComputerVerificationStrategy [V] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > StandardVerificationStrategy [V] > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > Final Traversal > [TraversalVertexProgramStep([GraphStep(vertex,[]), CountGlobalStep]), > ComputerResultStep] > {code} > It would be helpful if filter strategies for example would list the filters > used. -- This message was sent by Atlassian JIRA (v6.3.4#6332)