Complex feature constraints are Boolean expressions over feature-value pairs:
[word="das" & pos="ART"]
[word = /sp.*/ | pos = "VVFIN"]
[word="das" & !(pos="ART")]
Basically, the last query is equivalent to the following two queries. Note that this kind of equivalence is not generally valid in a typed system (cf. section 8)!
[word="das" & pos != "ART"]
[word="das" & pos = (!"ART")]
The operator precedence is defined as follows: !, &, |. This definition is illustrated by the following examples:
Example | Interpretation |
[! pos="NN" & word="der" ] | [(!pos="NN") & (word="der")] |
[pos="NN" & word="Haus" | pos="NE"] | [(pos="NN" & word="Haus") | (pos="NE")] |