在 Java 中访问组合的 UIMA Ruta 注释

Accessing combined UIMA Ruta Annotations in Java

我在访问组合 Ruta 注释时遇到问题。

我的注释基于先前的模块,该模块生成 NormalizedNamedEnitites (NNE) 并根据规则集对其进行标记,效果很好:

NormalizedNamedEntity{REGEXP(NormalizedNamedEntity.concept.identifier,"XXX") -> MARK(XXX)};
NormalizedNamedEntity{REGEXP(NormalizedNamedEntity.concept.identifier,"YYY") -> MARK(YYY)};

然后我继续将这两个组合到一个新的注释中:

(XXX){-> CREATE(CCC, "YYY" = YYY, "XXX" = XXX)};

这也很好用。

在我的 IDE (Eclipse) 中,我可以在 Ruta 编辑器视图中访问这些新规则,并且一切正常。 但在那之后我想访问 "encasing" 注释并将所有 "nested" 注释添加到数组中,我只是不知道如何做。我完全迷失在文档中,希望有人已经完成了这件事,可以帮助我解决这个问题。

同样:我正在使用 Java (1.8)。

非常感谢!

编辑:更多信息

示例文本:

Paracetamol 40mg daily

所做的注释(在先前 Models/Modules 的帮助下,见上文):

Paracetamol 40mg daily
Name------- Dose Scheme

现在我想介绍一个名为 "Med" 的封装注解,如果所有三个嵌套注解都存在,它将把它们封装起来。

类型 "Med" 将每个嵌套类型定义为可访问的功能。

现在我想首先访问 Med Annotations(这对我来说不是问题),然后是每个嵌套的 Annotation(我还不知道该怎么做)。 我仍在仔细阅读 UIMA 的文档以找到提示。

有许多方法可以访问嵌套注释。目前,我更喜欢以下内容:

DECLARE Name, Dose, Scheme;

// some mocked annotations
"Paracetamol" -> Name;
"40mg" -> Dose;
"daily" -> Scheme;

DECLARE Med (Name name, Dose dose, Scheme scheme);

(n:Name d:Dose s:Scheme){-> CREATE(Med, "name" = n, "dose" = d, "scheme" = s)};

DECLARE Test1, Test2, Test3;

Med.name{-> Test1}; 

m:Med ->{
    m.name{-> Test1};
    m.dose{-> Test2};
    m.scheme{-> Test3};
    };


FOREACH(med) Med{}{
    med.name{-> Test1};
    med.dose{-> Test2};
    med.scheme{-> Test3};
}

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