В UIMA Ruta (2.7.0) нет языковой структуры if-then-else.
Вам необходимо продублировать некоторые части правила, чтобы смоделировать другую часть, например что-то вродеследующее:
Document{CONTAINS(CatA) -> One};
Document{-CONTAINS(CatA), CONTAINS(CatB) -> Two};
Document{-CONTAINS(CatA), -CONTAINS(CatB) -> Three};
Вы также можете проверить, соответствует ли предыдущее правило и зависит ли оно от него.
Как на самом деле должно выглядеть правило, зависит в основном от системы типов и того, как вы хотитемоделировать информацию (особенности?).
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я разработчик UIMA Ruta