是否可以制定规则以匹配作为另一个注释的子项的注释中的FEATURE的值?
示例:
注释人 注释医生 功能类型:xyz
像Person.Doctor {FEATURE(" TYPE"," xyz")}
是否可以创建一个匹配另一个注释PARTOF的注释中的FEATURE的规则?
| A1 ----------- ------------ |
| A2 ----- ----- | | --- A3 ---- |
制定规则
A3 {FEATURE(" X"," 1")}以及A3 {PARTOF(A1)}
谢谢!
答案 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的开发者