RUTA如何根据条件执行块

时间:2014-03-29 16:43:45

标签: java uima ruta

我有一个简单的Ruta问题。

在取自tools.ruta.book.pdf

的示例中

段落{IF(keywordAmount> 5) - > MARK(KeywordParagraph)};

是否可以执行之前定义的块或函数,而不是只执行一个语句?

1 个答案:

答案 0 :(得分:0)

UIMA Ruta为不同的任务提供各种动作。 CALL和EXEC的操作能够应用脚本,块和分析引擎。

如果规则匹配,则应在应用其他规则时使用CALL操作。该操作的参数指向另一个脚本文件,或指向脚本文件(可以是相同的脚本文件),后跟块名称(带点)。因此,您可以在外部脚本文件中定义不同的块,这些块由主脚本文件单独调用。文档中的示例大部分时间都提到Document{->CALL(AnotherScript)};,但这也只是一个正常的规则。该动作可用于任何条件的规则元素的任何规则。

对于您在问题中提到的示例,您可能会对以下内容感兴趣:

段落{IF(kewordAmount> 5) - > CALL(MyScript.BlockX))};

请注意,BlockX是针对规则元素的每个匹配(对于满足条件的每个段落)执行的,并且仅在规则元素的匹配范围的上下文中执行(仅在这些段落中)。

EXEC操作通常在应用其他分析引擎时使用,因为CALL操作对过滤设置是明智的。

如果在规则匹配的情况下需要执行其他功能,则可以向提供功能的语言添加其他操作,或者实现解决任务的外部分析引擎。