我有一个简单的Ruta问题。
在取自tools.ruta.book.pdf
的示例中段落{IF(keywordAmount> 5) - > MARK(KeywordParagraph)};
是否可以执行之前定义的块或函数,而不是只执行一个语句?
答案 0 :(得分:0)
UIMA Ruta为不同的任务提供各种动作。 CALL和EXEC的操作能够应用脚本,块和分析引擎。
如果规则匹配,则应在应用其他规则时使用CALL操作。该操作的参数指向另一个脚本文件,或指向脚本文件(可以是相同的脚本文件),后跟块名称(带点)。因此,您可以在外部脚本文件中定义不同的块,这些块由主脚本文件单独调用。文档中的示例大部分时间都提到Document{->CALL(AnotherScript)};
,但这也只是一个正常的规则。该动作可用于任何条件的规则元素的任何规则。
对于您在问题中提到的示例,您可能会对以下内容感兴趣:
段落{IF(kewordAmount> 5) - > CALL(MyScript.BlockX))};
请注意,BlockX是针对规则元素的每个匹配(对于满足条件的每个段落)执行的,并且仅在规则元素的匹配范围的上下文中执行(仅在这些段落中)。
EXEC操作通常在应用其他分析引擎时使用,因为CALL操作对过滤设置是明智的。
如果在规则匹配的情况下需要执行其他功能,则可以向提供功能的语言添加其他操作,或者实现解决任务的外部分析引擎。