bmeg / grip

Graph Integration Platform
https://bmeg.github.io/grip
MIT License
24 stars 8 forks source link

Make sure match behavior is in line with tinkerpop #167

Open adamstruck opened 5 years ago

adamstruck commented 5 years ago

Here is a example from the Tinkerpop docs that grip does not currently support.

gremlin> graph.io(graphml()).readGraph('data/grateful-dead.xml')
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:808 edges:8049], standard]
gremlin> g.V().match(
                 __.as('a').has('name', 'Garcia'),
                 __.as('a').in('writtenBy').as('b'),
                 __.as('a').in('sungBy').as('b')).
               select('b').values('name')
==>CREAM PUFF WAR
==>CRYPTICAL ENVELOPMENT
kellrott commented 3 years ago

In thinking about the GRIP query engine, the design model tends toward something that is more RISC than CISC. The match op involves a subchain, and can't be easily decomposed to different types of underlying engines. I think most of what someone would want to accomplish with the match command could be done by chaining together a number of less complex operations. So I would move to remove match from the op set.