繁体   English   中英

UIMA注释功能是否有通用类型?

[英]Is there a generic type for UIMA annotation features?

是否存在类似于Java中的Object的泛型类型,可以将不同类型的值设置为它?

<typeDescription>
    <name>com.example.Annotation</name>
    <description></description>
    <supertypeName>uima.tcas.Annotation</supertypeName>
    <features>
        <featureDescription>
            <name>exampleFeature</name>
            <description>An example feature</description>
            <rangeTypeName>uima.cas.Generic</rangeTypeName>
        </featureDescription>
    </features>
</typeDescription>

我尝试将以下内容放入<rangeTypeName>

  • java.lang.ObjectObject这不起作用,尝试使用JCasGen生成代码时收到以下消息:

    JCasGen警告: **实例化CAS类型系统时发生资源初始​​化错误。 继续,但是可能生成不正确。 由“未定义类型”对象”引起,在类型“ com.example.Annotation”上声明的功能“ exampleFeature”中引用。

  • uima.cas.TOP这会生成代码,但是当我尝试通过将intString传递给setExampleField()方法来调用它时会给出错误,因为它无法将它们转换为TOP类型。

uima.cas.TOP是UIMA的对象 等效类型。 但这与您期望的略有不同。 UIMA有两个概念:1) FeatureStructure ,2) 基本类型 (int,boolean等和String!)。 如果将要素的范围设置为TOP,则它可以接受任何种类的要素结构(即,任何继承自TOP的要素),但不接受任何原始类型-此处不进行自动装箱。 如果将范围设置为原始类型,则它将仅接受该类型。

解决方法是定义自定义类型,例如FSInt,FSString,FSBoolean,它们继承自TOP并且具有相应类型(int,String,boolean)的“值”功能。 然后,您可以在该FS中设置值,并将其分配给具有TOP范围的功能。

注意:我目前是Apache UIMA项目的提交者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM