Complete List of Operators
AQL currently includes the following operators:
| Operator | Description | Illustration | Notes | |
|---|---|---|---|---|
| . | direct precedence |  | For non-terminal nodes, precedence is determined by the right-most and left-most terminal children. In corpora with multiple segmentations the layer on which consecutivity holds may be specified with .layer | |
| .* | indirect precedence |  | For specific sizes of precedence spans, .n,mcan be used, e.g..3,4- between 3 and 4 token distance; the default maximum distance for.*is 50 tokens. As above, segmentation layers may be specified, e.g..layer,3,4 | |
| ^ | directly near |  | Same as precedence, but in either order. In corpora with multiple segmentations the layer on which consecutivity holds may be specified with ^layer | |
| ^* | indirectly near |  | Like indirect precedence in either order. The form ^n,mcan be used, e.g.^3,4- between 3 and 4 token distance; the default maximum distance for^*is 50 tokens. As above, segmentation layers may be specified, e.g.^layer,3,4 | |
| > | direct dominance |  | A specific edge type may be specified, e.g. >secedgeto find secondary edges. Edge labels are specified in brackets, e.g.>[func="OA"]for an edge with the function 'object, accusative' | |
| >* | indirect dominance |  | For specific distance of dominance, >n,mcan be used, e.g.>3,4- dominates with 3 to 4 edges distance | |
| @* | part of sub-corpus | Left attribute is part of a sub-corpus having the attribute of the right-hand side. For specific distance range in the sub-corpus hierarchy, @n,mcan be used. | ||
| _=_ | identical coverage |  | Applies when two annotations cover the exact same span of tokens | |
| _i_ | inclusion |  | Applies when one annotation covers a span identical to or larger than another | |
| _o_ | overlap |  | ||
| _l_ | left aligned |  | Both elements span an area beginning with the same token | |
| _r_ | right aligned |  | Both elements span an area ending with the same token | |
| == | value identity | A = B | The value of the annotation or token A is identical to that of B (this operator does not bind, i.e. the nodes must be connected by some other criteria too) | |
| != | value difference | A ≠ B | The value of the annotation or token A is different from B (this operator does not bind, i.e. the nodes must be connected by some other criteria too) | |
| ->LABEL | labeled pointing relation |  | A labeled, directed relationship between two elements. Annotations can be specified with ->LABEL[annotation="VALUE"] | |
| ->LABEL * | indirect pointing relation |  | An indirect labeled relationship between two elements. The length of the chain may be specified with ->LABEL n,mfor relation chains of length n to m | |
| #x:arity=n | arity |  | Specifies the amount of directly dominated children that the searched node has | |
| _ident_ | node identity | True for two attributes that belong to the same node | 
Unsupported operators
The following operators have been available in the legacy version ANNIS3, but are not yet implemented in the newest ANNIS version.
| Operator | Description | Illustration | Notes | 
|---|---|---|---|
| _ol_and_or_ | Overlap, but only on the left or right side | ||
| >@l | left-most child |  | |
| >@r | right-most child |  | |
| $ | common parent node |  | |
| $* | common ancestor node |  | |
| #x:tokenarity=n | tokenarity |  | Specifies the length of the span of tokens covered by the node | 
| #x:root | root |  | Specifies that the node is not dominated by any other node within its namespace s |