从管道调用脚本时无法解析Ruta脚本中的键入

时间:2018-07-10 13:14:45

标签: type-systems uima ruta

我尝试建立一个包含Ruta脚本的管道。

我使用Uima.CollectionReader读取文本,然后使用xmi-writer写入结果。我用SimplePipeline.runPipeline调用我的分析引擎,只要不包含ruta脚本,就可以正常工作。

Ruta脚本本身也可以正常工作并产生所需的输出。但是当我在管道中使用脚本时,会得到

Caused by: java.lang.IllegalArgumentException: Not able to resolve type: Unsinn
at org.apache.uima.ruta.expression.type.SimpleTypeExpression.getType(SimpleTypeExpression.java:47)
at org.apache.uima.ruta.action.AbstractMarkAction.createAnnotation(AbstractMarkAction.java:42)
at org.apache.uima.ruta.action.MarkAction.execute(MarkAction.java:57)
at org.apache.uima.ruta.rule.AbstractRuleElement.apply(AbstractRuleElement.java:130)
at org.apache.uima.ruta.rule.RuleElementCaretaker.applyRuleElements(RuleElementCaretaker.java:111)
at org.apache.uima.ruta.rule.ComposedRuleElement.applyRuleElements(ComposedRuleElement.java:593)
at org.apache.uima.ruta.rule.AbstractRuleElement.doneMatching(AbstractRuleElement.java:84)
at org.apache.uima.ruta.rule.ComposedRuleElement.fallback(ComposedRuleElement.java:514)
at org.apache.uima.ruta.rule.ComposedRuleElement.fallbackContinue(ComposedRuleElement.java:415)
at org.apache.uima.ruta.rule.RutaRuleElement.startMatch(RutaRuleElement.java:102)
at org.apache.uima.ruta.rule.ComposedRuleElement.startMatch(ComposedRuleElement.java:74)
at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:47)
at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:40)
at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:29)
at org.apache.uima.ruta.RutaScriptBlock.apply(RutaScriptBlock.java:63)
at org.apache.uima.ruta.RutaModule.apply(RutaModule.java:48)
at org.apache.uima.ruta.engine.RutaEngine.process(RutaEngine.java:545)

我提供了TypeSystem的完整路径,其中描述了类型(本例中为“ Unsinn”),但这无济于事。

    AnalysisEngineDescription ruta =
                    AnalysisEngineFactory.createEngineDescription(
                            RutaEngine.class,
                            RutaEngine.PARAM_MAIN_SCRIPT, "Test",
                            RutaEngine.PARAM_SCRIPT_PATHS, "C:/Users/some.user/workspace/Test_Ruta/script/test/",
                            RutaEngine.PARAM_DESCRIPTOR_PATHS, "C:/Users/some.user/workspace/Test_Ruta/descriptor/",
                            RutaEngine.PARAM_SCRIPT_ENCODING, "UTF-8"
                            );

我是Uima和Stackoverflow的新手,但是我已经非常绝望了。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

该异常表明,给定短名称“ Unsinn”,Ruta无法解析实际类型。根据配置参数,这可能有两个原因。在您的情况下,我认为CAS / JCas的类型系统中不存在该类型。 RutaEngine的配置参数完全不影响类型系统。您需要注意在创建CAS时将类型系统包含在CAS中,以您的情况为例,在集合读取器中。

我假设您使用uimaFIT创建阅读器和分析引擎(描述)?然后,您只需在uimaFIT的type.txt文件中添加包含“ Unsinn”的类型系统,以便在类路径扫描期间收集该类型系统。

免责声明:我是UIMA Ruta开发人员