Я в настоящее время пытается решить следующую потребительскую случай РУТА:UIMA RUTA - Как имитировать IF-ELSE-условие?
If a Fragment contains one or more words from a WordlistA, then CREATE(Process, "finished" = "true")
If the Fragment contains none of the words from the WordlistA, then CREATE(Process, "finished" = "false")
Так созданный аннотацию процесс @ закончил должно быть истинным или ложным, но никогда не «истина» и «ложь» в то же время.
Я попытался это один:
DECLARE Process (STRING finsihed);
WORDLIST WordlistA = 'mywordlist.txt';
Document{-> MARKFAST(ProcessTerm, WordlistA)};
Fragment {} -> {ProcessTerm {-> CREATE(Process, "finished" = "true")};};
Fragment {-CONTAINS(ProcessTerm) -> CREATE(Process, "finished" = "false")};
Насколько я могу видеть, второе правило соответствует всегда !? Но почему? В результате обработанная обработкой ProcessTerm @ содержит «true» и «false», если также совпадает первое правило.
Каков наилучший способ использования прецедента с использованием RUTA? По-моему, мне нужно что-то вроде IF-ELSE-Statement.
В прецеденте немного изменилось в последние два часа в
If a **Document** contains one or more words from a WordlistA, then CREATE(Process, "finished" = "true")
If the **Document** contains none of the words from the WordlistA, then CREATE(Process, "finished" = "false")
Я сейчас, используя Peters предложение следующим образом:
Document->{
Document{CONTAINS(ProcessTerm)-> CREATE(Process, "finished" = "true")};
Document{-PARTOF(Process) -> CREATE(Process, "finished" = "false")};
};
Спасибо за ваш ответ. Вторая версия с блоком делает трюк. :-) –