Btw. to your other questions:

I think Stephen's attitude toward TP4 is that there should be a smooth
transition, so ideally this would be for TP3, migrating to TP4 when the
time comes.

Native Java traversals are not accessible to a parser, so I do not see how
they would be impacted by gremlin-grammar or gremlin-language.

Josh



On Mon, Mar 22, 2021 at 2:00 PM Joshua Shinavier <[email protected]> wrote:

> I am not yet entirely sure what it means either, but I am thinking that it
> would be nice to be able to
> a) validate Gremlin expressions written in languages other than Groovy or
> Java, and
> b) parse Gremlin expressions in Gremlin language variants, producing
> JVM-based traversals, or even
> c) parse Gremlin expressions in Gremlin language variants, producing
> native traversals in the host language
> These options range from easy (a) to hard (c).
>
> Another way to look at this is: let's use Stephen's grammar as a template
> for a more generic grammar which is more flexible w.r.t. the input language.
>
> Josh
>
>
>
> On Mon, Mar 22, 2021 at 11:37 AM pieter gmail <[email protected]>
> wrote:
>
>> 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
>> > <[email protected]>
>> > 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
>> > > <[email protected]>
>> > > 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
>> > > > <[email protected]>
>> > > > 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
>> > > > > <[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.
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > >
>> > > >
>> > >
>>
>>

Reply via email to