UIMA Ruta检查子注释的特征

时间:2017-07-06 10:41:23

标签: uima ruta

是否可以制定规则以匹配作为另一个注释的子项的注释中的FEATURE的值?

示例:

注释人    注释医生              功能类型:xyz

像Person.Doctor {FEATURE(" TYPE"," xyz")}

是否可以创建一个匹配另一个注释PARTOF的注释中的FEATURE的规则?

| A1 ----------- ------------ |

| A2 ----- ----- | | --- A3 ---- |

制定规则

A3 {FEATURE(" X"," 1")}以及A3 {PARTOF(A1)}

谢谢!

1 个答案:

答案 0 :(得分:0)

假设有Doctor类型及其父类型Person定义了kind类型的功能uima.cas.String,您可以简单地写一下:

Doctor.kind=="xyz";

Doctor{Doctor.kind=="xyz"};

d:Doctor{d.kind=="xyz"};

Doctor<-{Person.kind=="xyz";};

label expression d:inlined rule as condition<-{})的一些简短说明。标签表达式在规则范围内引入了本地注释变量。在上面的示例中,d:Doctor匹配类型Doctor的注释,并将其分配给名为d的新变量。然后,可以在规则的其他部分中使用此变量,以引用此特定注释。在第二个规则中,不使用标签表达式,并使用类型(Doctor.kind)引用注释。这里,在规则匹配的上下文中重新解析注释,如果存在具有相同偏移的类型Doctor的多个注释,则可能导致不同的注释。 作为条件的内联规则作为复杂条件起作用。仅当规则Doctor能够在匹配的Person.kind=="xyz";注释的上下文/偏移/范围内匹配时,规则元素Doctor才会匹配。

关于问题的第二部分: 您无法直接访问PARTOF条件中使用的注释,因为实际上未使用任何注释。您需要匹配注释才能访问其功能。这取决于哪个注释包含哪个注释,以及应该为特征值检查哪个注释。以下是一些例子:

a:A3{PARTOF(A1),a.x==1};

A1.x=="1"{CONTAINS(A3)};

A1<-{a:A3{a.x=="1"};};

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