Good day, colleagues.
I would like to propose an approach to enhancing the extensibility of the
Gremlin script, which, although it does not solve all problems, will make
many Gremlin extensions feel native.
The Idea, as you may have already guessed from the title, is simple: if a
service is registered in TinkerPop to treat it as a method call with
parameters, such as args: List<Object> as an argument.
So call like: g.schemClass("User") will be translated to
g.call("schemaClass", "args" : ["User])
In such a case, providers will extend Gremlin twofold:
1. Providing DSL that does the same call.
2. Registering related service.
If you agree with this proposal, I would be glad to contribute it, as I
mentioned, it does not solve all issues, such as the usage of custom
predicates, but I am under the impression that it can be extended to that
case too in the future.