Good day.

I would like to share with you our ideas regarding the implementation of
the match step and GQL queries.

Initially, we thought of implementing our own version of the match step
first.
However, such an approach leads to an increased risk of greater
fragmentation within the graph community. Therefore, we decided to
contribute to the implementation of match to the TinkerPop project and
subsequently create our own version based on this implementation.

That obviously implies coordination with the core TinkerPop team.

We believe our implementation should be divided into the following steps.
1. Initially, we create a specification of GQL supported by Gremlin, as
that will be only a subset of the whole GQL language. Here is a trick: if
we create and implement the specification as a whole, it may take
figuratively years for us to provide the final version.
Instead, we want to split it into several parts.
Currently, we see three parts that will be implemented separately through
iterations: a. Filtering by node label and relations. b. Addition of
conditional filtering. c. support of GQL functions. The specification will
be created as a whole but will be split by iterations.
After the final iteration, a new specification will be created that merges
all the parts together in a more understandable manner.
2. Then we create a semantic specification of the match step as was
suggested by Stephen Mallette
https://github.com/apache/tinkerpop/blob/master/docs/src/dev/provider/gremlin-semantics.asciidoc
.
3. We create a public fork/branch of the TinkerPop project, invite
everybody who wants to help, and start our implementation by iterations.
4. Once it is ready, we will incorporate it into our project (YouTrackDB)
and provide a version tailored for our database internals.

WDYT?

Reply via email to