我目前正在尝试解决 RUTA 中的以下用例:
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")
因此,创建的注释 Process@finished 应该是真或假,但不能同时为“真”和“假”。
我试过这个:
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@finished 注释包含“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")};
};