Alias |
the name of inputs used downstream in the queries. In this case, `a` and `b`. If no alias is specified, the InputName is used as alias; so internally an alias is always defined. |
Attribute |
Attributes of the relations, e.g. `x`, `y`, `q`, `r` and `s`. In order to avoid naming clashes, it is **forbidden** to use attributes without a qualifying alias. |
AttributeAccess |
The pair of alias and attribute, e.g. `('a', 'q')` in the predicate `a.q = 1`. |
FilterPredicate |
A predicate with a single input, e.g. `a.q = 1`. These can be evaluated at ingestion of the inputs or maybe even pushed down into the data sources. |
InputName |
The name of a Input (relation). In the example, `alice` and `bob` are inputs. The system has to know how to get real data from these inputs, which is an orthogonal task to formulating a query. |
JoinPredicate |
A predicate with two inputs, e.g. `a.r = b.s`, here tuples from both relations, `a` and `b` are needed in order to evaluate the predicate |