[jira] [Commented] (TINKERPOP-1802) hasId() fails for empty collections

2017-11-07 Thread Bob Briody (JIRA)

[ 
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

2017-11-07 Thread Bob Briody (JIRA)

[ 
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

2017-02-22 Thread Bob Briody (JIRA)

[ 
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

2017-02-22 Thread Bob Briody (JIRA)

[ 
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

2017-02-22 Thread Bob Briody (JIRA)

[ 
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

2017-01-25 Thread Bob Briody (JIRA)
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

2016-10-11 Thread Bob Briody (JIRA)

[ 
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

2016-06-15 Thread Bob Briody (JIRA)

[ 
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)