我有一系列注释,它们是相同类型的实例(例如CW注释的序列)。我需要删除它们中的第一个(更正式地说:删除在文档之前没有相同类型注释的注释)。不太正式:删除文档开头的注释。示例文档:“Software StageTools” 所以,我尝试了很多变种:
"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
......还有其他一些。显然,没有人工作(可能是,我可以参考注释的开始特征,但这不会解决正式问题)。
最后,问题是 - 我怎么能说RUTA在文档之前删除没有相同类型注释的注释?
答案 0 :(得分:1)
有很多方法可以做到这一点。以下是两个例子:
# 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的开发者