首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将数据库中的CAS定义为uimaFIT注释器的外部资源?

如何将数据库中的CAS定义为uimaFIT注释器的外部资源?
EN

Stack Overflow用户
提问于 2015-03-12 10:37:56
回答 1查看 135关注 0票数 0

我试图使用uimaFit构建数据处理管道,如下所示:

[annotatorA] => [Consumer to dump annotatorA's annotations from CAS into DB]

[annotatorB (should take on annotatorA's annotations from DB as input)]=>[Consumer for annotatorB]

司机代码:

代码语言:javascript
复制
   /* Step 0: Create a reader */
    CollectionReader readerInstance= CollectionReaderFactory.createCollectionReader(
            FilePathReader.class, typeSystem,
            FilePathReader.PARAM_INPUT_FILE,"/path/to/file/to/be/processed");

   /*Step1: Define Annotoator A*/
    AnalysisEngineDescription annotatorAInstance=
           AnalysisEngineFactory.createPrimitiveDescription(
                    annotatorADbConsumer.class, typeSystem, 
                    annotatorADbConsumer.PARAM_DB_URL,"localhost",
                    annotatorADbConsumer.PARAM_DB_NAME,"xyz",
                    annotatorADbConsumer.PARAM_DB_USER_NAME,"name",
                    annotatorADbConsumer.PARAM_DB_USER_PWD,"pw");
    builder.add(annotatorAInstance);

    /* Step2: Define binding for annotatorB to take 
         what-annotator-a put in DB above as input */

    /*Step 3: Define annotator B */
    AnalysisEngineDescription annotatorBInstance =
            AnalysisEngineFactory.createPrimitiveDescription(
                    GateDateTimeLengthAnnotator.class,typeSystem)
    builder.add(annotatorBInstance);

    /*Step 4: Run the pipeline*/
    SimplePipeline.runPipeline(readerInstance, builder.createAggregate());

我有以下问题:

  1. 上述方法正确吗?
  2. 如何在步骤2中定义annotatorB中注解器A输出的依赖性?

注入提出的方法是否是实现这一目标的正确方向?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-13 07:01:47

可以使用@TypeCapability定义依赖项,如下所示:

代码语言:javascript
复制
@TypeCapability(inputs = { "com.myproject.types.MyType", ... }, outputs = { ... })
public class MyAnnotator extends JCasAnnotator_ImplBase {
    ....
}

注意,它在注释级别定义了一个契约,而不是在引擎级别(这意味着任何引擎都可以创建com.myproject.types.MyType)。

我认为没有办法让强制执行 it。

我确实创建了一些代码来检查引擎是否在管道上游提供了正确的所需注释,并打印错误日志(参见Pipeline.checkAndAddCapabilities()和Pipeline.addCapabilities() )。但是,请注意,只有当所有引擎都定义了它们的TypeCapabilities时,它才能工作,而当使用外部引擎/库时,情况通常并非如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29007478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档