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,m can 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 or 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 or Like indirect precedence in either order. The form ^n,m can 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. >secedge to 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,m can 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,m can 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,m for 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