Annotations 序列开始处的UIMA RUTA注释

Annotations 序列开始处的UIMA RUTA注释,annotations,uima,ruta,Annotations,Uima,Ruta,我有相同类型实例的注释序列,例如CW注释序列。我需要更正式地删除第一个注释:删除文档中之前没有相同类型注释的注释。不太正式:删除文档开头的批注。示例文档:软件阶段工具 因此,我尝试了许多变体: "Software"{-AFTER(CW) -> UNMARK(CW)} CW+; //does not work "Software"{BEFORE(CW) -> UNMARK(CW)} CW+; //does not work "Softwa

我有相同类型实例的注释序列,例如CW注释序列。我需要更正式地删除第一个注释:删除文档中之前没有相同类型注释的注释。不太正式:删除文档开头的批注。示例文档:软件阶段工具 因此,我尝试了许多变体:

"Software"{-AFTER(CW) -> UNMARK(CW)} CW+;             //does not work
"Software"{BEFORE(CW) -> UNMARK(CW)} CW+;             //does not work
"Software"{-STARTSWITH(Document) -> UNMARK(CW)} CW+;  //does not work
CW{0, 0} "Software"{-> UNMARK(CW)} CW+;               //getting parsing error
…还有其他一些。很明显,并没有人会这样做,我可以参考注释的begin特性,但这并不能解决形式问题


最后,问题是-我如何说RUTA删除文档中以前没有相同类型注释的注释?

有很多方法可以做到这一点。以下是两个例子:

# cw:CW.ct=="Software"{-> UNMARK(cw)} CW;
如果后面有另一个CW软件,请删除文档中的第一个CW软件

ANY{-PARTOF(CW)} cw:@CW.ct=="Software"{-> UNMARK(cw)} CW;
如果有CW跟随而没有CW之前,请删除任何CW软件。如果文档可以从模式开始,则需要第二条规则

你的第二条规则实际上对我有用。最后一条规则没有有效的语法。最小/最大量词需要不同的括号,如[0,0]。但是,这不会产生您想要的效果

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