hasKey/hasValue javadocs state:
Filters vertices, edges and vertex properties based on their key.
Am I misinterpreting, misusing, or misinformed?
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal(
traversal( traversal()
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
// Does NOT appear to filter vertices
gremlin> g.V().valueMap()
==>[name:[marko],age:[29]]
==>[name:[vadas],age:[27]]
==>[name:[lop],lang:[java]]
==>[name:[josh],age:[32]]
==>[name:[ripple],lang:[java]]
==>[name:[peter],age:[35]]
gremlin> g.V().hasKey('name')
gremlin> g.V().hasValue('marko')
// Does NOT appear to filter edges
gremlin> g.E().valueMap()
==>[weight:0.5]
==>[weight:1.0]
==>[weight:0.4]
==>[weight:1.0]
==>[weight:0.4]
==>[weight:0.2]
gremlin> g.E().hasKey('weight')
gremlin> g.E().hasValue(1.0)
// Does NOT appear to filter edge properties (although was not claimed)
gremlin> g.E().properties().hasKey('weight')
org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerProperty cannot be
cast to org.apache.tinkerpop.gremlin.structure.Element
Type ':help' or ':h' for help.
Display stack trace? [yN]
gremlin> g.E().properties().hasValue(1.0)
org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerProperty cannot be
cast to org.apache.tinkerpop.gremlin.structure.Element
Type ':help' or ':h' for help.
Display stack trace? [yN]
// Does filter Vertex Properties!
gremlin> g.V().properties().hasKey('name')
==>vp[name->marko]
==>vp[name->vadas]
==>vp[name->lop]
==>vp[name->josh]
==>vp[name->ripple]
==>vp[name->peter]
gremlin> g.V().properties().hasValue('marko')
==>vp[name->marko]
Robert Dale