Description
Break up sequential matching in Ruta rules: Right now a list of rule elements specify a sequential pattern. In some use cases, however, the sequence of annoations is not as important as the their existence. An example: A rule should fire, if some complex annotations patterns occur within a sentence whereas the location or order is not important. Two use cases can be distinghuished: "and" and "or". A disjunctive matcher is already implemented, but only suppport simple matching conditions, but not complex patterns (e.g., additional conditions) for the alternatives. I am still thinking about the best syntax for this. Right now, my favorite is a special character that separates the rule elements. An example:
BLOCK(b) Sentence{}{ CW PERIOD & SW COLON; }
... a sentence that contains a capitalized word followed by a period AND a small written word followed by a colon, regardless of where they occur in the sentence.
Maybe also something like the follwoing is then possible:
NUM (CW{REGEXP("A") -> MARK(NUMA,1,2)} | CW{REGEXP("B") -> MARK(NUMB,1,2)});