在 Ruta 的 CONTAINS 语句中使用条件

Using conditions in CONTAINS statements in Ruta

我正在使用 CLAMP (https://clamp.uth.edu/) 中实现的 Ruta 创建规则。作为步骤之一,我想识别所有包含温度注释的句子。

所以我希望能够像这样在 CONTAINS 函数中为注释指定属性值:

Sentence{CONTAINS(ClampNameEntityUIMA{"semanticTag", "Temperature"}) 
 -> CREATE( ClampNameEntityUIMA , "semanticTag" = "TemperatureSentence")};

有效的语句是:

Sentence{CONTAINS(ClampNameEntityUIMA) 
 -> CREATE( ClampNameEntityUIMA , "semanticTag" = "TemperatureSentence")};

但这会标记所有句子,而不管包含的注释的特征值如何。 CLAMP 不允许即时创建类型,因此我无法将新类型声明为满足条件的注释的占位符。所以我只能使用现有类型 - ClampNameEntityUIMA - 我只能检查特征值来区分注释 类.

有没有办法在 CONTAINS 函数中包含附加条件?或者我可以在不必声明新类型的情况下操作注释吗?

CONTAINS 条件不支持您的需要。如果您的示例中需要更复杂的条件,则需要切换到内联规则作为条件。像下面这样的规则可以解决您的问题:

Sentence{-> CREATE(ClampNameEntityUIMA, "semanticTag" = "TemperatureSentence")}
  <- {e:ClampNameEntityUIMA{e.semanticTag == "Temperature"};};

免责声明:我是 UIMA Ruta 的开发者