将一个特征从一个注释复制到另一个

Copy one Feature from one Annotation to another

我有以下场景:

我已经根据之前在管道中执行的模块创建了注释:

NormalizedNamedEntity{REGEXP(NormalizedNamedEntity.concept.identifier,"[A-Z0-9]{7}@XXX") -> CREATE(GLATC, "key" = NormalizedNamedEntity.concept.identifier)};

哪个工作得很好。

Medication:GLATC xmi:id="35535" sofa="16776" begin="1684" end="1693" key="N06AA05@XXX"

我继续制作注释。

Medication:MMedikation xmi:id="40516" sofa="16776" begin="1684" end="1693" MNAME="35339"

现在我想从 GLATC 注释中获取特征 "key" 作为 MMedikation 注释中的特征 "ATC"。 这是我到目前为止尝试过的:

MMedikation{CONTAINS(GLATC)} -> {MMedikation{ -> SETFEATURE("ATC", temp)} <- {GLATC{ -> GETFEATURE("key", temp)};};};
MMedikation{PARTOF(GLATC)} -> {MMedikation{ -> SETFEATURE("ATC", temp)} <- {GLATC{ -> GETFEATURE("key", temp)};};};

无果。
Ruta 没有任何问题 'understanding' 这两个规则。 我试过看看第一部分是否有效:

MMedikation{CONTAINS(GLATC) -> MARK(MNAME)};

只要 MMedikation 包含 GLATC,就会正确标记 MNAME 注释。 我已经看到此规则仅在第一个“->”之前没有括号时才有效,但将此应用于上面的较长规则:

MMedikation{CONTAINS(GLATC) -> MMedikation{-> SETFEATURE("ATC", temp)} <- {GLATC{ -> GETFEATURE("key", temp)};};

MMedikation{CONTAINS(GLATC) -> MMedikation{-> SETFEATURE("ATC", temp)} <- {GLATC{ -> GETFEATURE("key", temp)};};};

只是产生这个错误:

Error in Ruta3878238602695220973, line 192, "{": expected RCURLY, but found LCURLY

如有任何帮助,我们将不胜感激。

谢谢, K

看来我的思路有误

我从工作位建立规则

MMedikation{CONTAINS(GLATC) -> SETFEATURE("ATC", temp)}

并将规则添加到此规则:

MMedikation{CONTAINS(GLATC) -> SETFEATURE("ATC", temp)} <- {GLATC{ -> GETFEATURE("key", temp)};};

现在有效。 耶。

对正确答案的补充。

规则

MMedikation{CONTAINS(GLATC) -> SETFEATURE("ATC", temp)} <- {GLATC{ -> GETFEATURE("key", temp)};};

可以写成

m:MMedikation{-> m.ATC = g.key} <- {g:GLATC;};