Recent work on gremlin-mcp which now has access to the ANTLR grammar and
the introduction of proper subgraph() support in GLVs, particularly
javascript, had me thinking about an old idea of codifying a subset of
Gremlin that would be implemented as a processing engine outside of
Javascript. The primary use case would be to use subgraph() to return a
slice of a remote graph and then use the subset of Gremlin to traverse that
subgraph locally on the client side. I think that core use case kicks open
a lot of doors for applications.. Secondly, I think I've seen a number of
Gremlin "lite" or "inspired" graph query syntaxes out there over the years
and perhaps standardizing around what that idea means could open up wider
opportunities for those systems to be more aligned with the official
TinkerPop community.

i sense these initial steps would probably be:

Source
V, E

Navigation
out, in, both, outE, inE, bothE, outV, inV, otherV

Filter
has, hasId, hasLabel, hasNot, hasKey, hasValue

Value Extraction
id, label, values, valueMap, elementMap, value, key

Path
path

Range
limit, range, skip, tail

Ordering
order

Mutation
addV, addE (with from/to), property

Any additional processing you might do would have to fall back to lambda
style processing like via forEach or reduce.

Anyway, I think we could call this diminutive standard Tiny Gremlin and
perhaps just start with Javascript as some kind of proof of concept.

Reply via email to