I can’t quite tell what you want to know beyond what is already in the documentation. But - Every query is about keys, groups and function execution as requested.
The query you are demonstrating is:
-
First look for keys indexed with “name@en” and apply the function. And keep the keys found.
-
Second, it applies the filter with the “has” function to the keys with its params. And keep the keys found.
-
Third, it advances in the nested block through the requested edge (if it exists). And then apply the filter with the allofterms function.
-
Fourth, displays the result.
That would be the logical view of the thing. Each function can has its own rule or approach to dealing with data. Isn’t complex. Some things like variables can be complex under the hood. But it’s not that much.