I've been working on forming a pull request for this task. I don't think IP Clearance is necessary as I originally did because the contribution is really just an ANTLR4 grammar file with some tests to validate things. Therefore, it's not a big body of independent code as I'd perhaps initially envisioned. Compared to gremlint, this addition is pretty simple and straightforward. I've created this issue in JIRA with some additional notes on what to expect in this initial body of work:
https://issues.apache.org/jira/browse/TINKERPOP-2533 On Mon, Feb 8, 2021 at 10:06 AM Stephen Mallette <[email protected]> wrote: > Just wanted to leave an update on this thread. It was nice to see some > support for it. I've not had time to focus on the task itself so sorry > there hasn't been much movement, but I hope to see it on track soon. I > thought to update the thread after I came across yet another nice usage for > it. I've long wanted to unify our test framework (i.e. deprecate the JVM > process suite in favor of the GLV test suite). I was experimenting with > what that might look like on Friday and hit a circular dependency which > constantly trips things up where gremlin-test wants to depend on > gremlin-groovy (for ScriptEngine support) but gremlin-groovy depends on > gremlin-test and tinkergraph with <test> scope already. I think the > introduction of gremlin-script would let gremlin-test build the Traversal > object from a Gremlin string and thus avoid that circular relationship. > > On Fri, Jan 8, 2021 at 2:43 AM pieter gmail <[email protected]> > wrote: > >> +1 >> >> I have often thought the language specification should be a project >> separate from the implementations, and done in a formal but plain >> English format similar to OMG or IETF specifications. >> >> I suspect Sqlg's code base would have been fastly different if it had >> evolved from a grammer instead of an api. >> >> Cheers >> Pieter >> >> On Thu, 2020-12-24 at 14:41 -0500, Stephen Mallette wrote: >> > As a project, over the years, we've often been asked the question as >> > to why >> > Gremlin doesn't have an ANTLR style grammar. There have been varying >> > answers over the years to explain the reasoning but in recent years >> > I've >> > started to see where our dependence on Java for driving Gremlin >> > design has >> > not translated well as we have expanded Gremlin into other >> > programming >> > ecosystems. Using Java has often allowed idioms of that language to >> > leak >> > into Gremlin itself which introduces friction when implemented >> > outside of >> > the JVM. I think that there is some advantage to designing Gremlin >> > more >> > with just graphs/usage in mind and then determining how that design >> > choice >> > looks in each programming language. >> > >> > I think that using an ANTLR grammar to drive that design work for >> > Gremlin >> > makes a lot of sense in this context. We would effectively have >> > something >> > like a gremlin-script which would become the new language archetype. >> > New >> > steps, language changes, etc. would be discussed in its context and >> > then >> > implemented in the grammar and later in each programming language we >> > support in the style a developer would expect. An interesting upside >> > of >> > this approach is that we can implement gremlin-script in the >> > ScriptEngine >> > and replace GremlinGroovyScriptEngine which would help us strengthen >> > our >> > security story in Gremlin Server. Groovy processing would just be a >> > fallback to Gremlin scripts that could not be processed by the AST. >> > In fact >> > users who didn't need Groovy could simply not install it at all and >> > thus >> > boast a much more secure system. >> > >> > I think that inclusion of a grammar in our project is an exciting new >> > direction for us to take and will help in a variety of areas beyond >> > those >> > I've already related. >> > >> > If we like this direction, Amazon Neptune already maintains such a >> > grammar >> > and would be willing to contribute it to the project to live in open >> > source. The contribution would go through the same IP Clearance >> > process >> > gremlint is going through since it was developed outside of >> > TinkerPop. I'd >> > be happy to guide that process through if we draw to consensus here. >> >> >>
