Hi,

Exciting as this is I am not quite sure what it means.

Naively  perhaps it the idea,
Arbitary gremlin string -> antlr parser -> some AST walker -> gremlin
byte code -> java in memory steps ... -> voila

Is the grammar going to be the primary and only
interface/specification, or will the native java implementation bypass
the grammar going straight to the steps instead?

Is this aimed at the gremlin 3 or 4?

Cheers
Pieter

On Tue, 2021-03-16 at 15:47 -0400, Stephen Mallette wrote:
> Here is the PR: https://github.com/apache/tinkerpop/pull/1408
> 
> On Tue, Mar 16, 2021 at 6:14 AM Stephen Mallette
> <spmalle...@gmail.com>
> wrote:
> 
> > No branch yet, but I think I will be sending the PR today.
> > 
> > On Mon, Mar 15, 2021 at 9:33 PM Joshua Shinavier
> > <j...@fortytwo.net>
> > wrote:
> > 
> > > Is there a branch we can take a look at before the PR is ready?
> > > 
> > > Josh
> > > 
> > > On Fri, Mar 12, 2021 at 5:42 AM Stephen Mallette
> > > <spmalle...@gmail.com>
> > > wrote:
> > > 
> > > > 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
> > > > <spmalle...@gmail.com>
> > > > 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
> > > > > <pieter.mar...@gmail.com>
> > > > > 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.
> > > > > > 
> > > > > > 
> > > > > > 
> > > > 
> > > 
> > 

Reply via email to