[ 
https://issues.apache.org/jira/browse/UIMA-3368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Prokopis Prokopidis updated UIMA-3368:
--------------------------------------

    Attachment: SimpleAnnotator.zip

Hi Peter,

You can find the eclipse project attached.

> Ruta and UIMA-AS
> ----------------
>
>                 Key: UIMA-3368
>                 URL: https://issues.apache.org/jira/browse/UIMA-3368
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout, ruta
>    Affects Versions: 2.4.0AS, 2.1.0ruta
>            Reporter: Prokopis Prokopidis
>            Priority: Minor
>         Attachments: SimpleAnnotator.zip
>
>
> Hi,
> I get errors when applying Ruta rules from an Annotator deployed as a UIMA-AS 
> service. Here's my situation.
> I have a SimpleAnnotator class that assigns tags to Tokens. So, when I have a 
> test.txt in my input with this content:
> $ more test.txt
> A room . 
> ... I get, among other things, the following output
> {code:xml}<examples:Token xmi:id="21" sofa="1" begin="1" end="2" pos="aTag"/>
> <examples:Token xmi:id="26" sofa="1" begin="3" end="7" pos="anotherTag"/>
> {code}
> To get the tags, I use java code as in the attached SimpleAnnotator.java and 
> ruta rules.
> All's fine when I run this a standard UIMA pipeline. But, if I deploy the 
> annotator in UIMA-AS and I send the same text to the queue created, I get 
> NullPointerException's similar to those:
> Caused by: java.lang.NullPointerException
>         at 
> org.apache.uima.cas.impl.FSIndexRepositoryImpl.getIndex(FSIndexRepositoryImpl.java:1334)
>         at 
> org.apache.uima.cas.impl.CASImpl.getAnnotationIndex(CASImpl.java:3935)
>         at 
> org.apache.uima.ruta.RutaStream.updateIterators(RutaStream.java:131)
>         at org.apache.uima.ruta.RutaStream.<init>(RutaStream.java:94)
>         at org.apache.uima.ruta.RutaStream.<init>(RutaStream.java:138)
>         at 
> org.apache.uima.ruta.engine.RutaEngine.initializeStream(RutaEngine.java:580)
>         at org.apache.uima.ruta.engine.RutaEngine.process(RutaEngine.java:440)
>         at 
> org.apache.uima.analysis_component.JCasAnnotator_ImplBase.process(JCasAnnotator_ImplBase.java:48)
>         at 
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:375)
> }}
> and rules are not applied.
> I can provide an eclipse project including a typesystem and a deployment 
> descriptor if needed.
> Many thanks for looking into this,
> Prokopis 
> {code:java}
> package org.apache.uima.examples;
> import java.util.HashMap;
> import java.util.Map;
> import java.util.regex.Matcher;
> import java.util.regex.Pattern;
> import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
> import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
> import org.apache.uima.jcas.JCas;
> import org.apache.uima.ruta.engine.Ruta;
> import org.apache.uima.ruta.engine.RutaEngine;
> public class SimpleAnnotator extends JCasAnnotator_ImplBase {
>       public void process(JCas aJCas) throws AnalysisEngineProcessException {
>               String text = aJCas.getDocumentText();
>         Matcher matcher = Pattern.compile("\\w+").matcher(text);
>         while(matcher.find()){
>             Token token = new Token(aJCas, matcher.start(), matcher.end());
>             token.setPos("aTag");
>             token.addToIndexes();
>         }
>               Map<String, Object> parameters = null;
>               parameters = new HashMap<String, Object>();
>               parameters.put(RutaEngine.PARAM_REMOVE_BASICS, true);
>               parameters.put(RutaEngine.PARAM_SEEDERS, new String[0]);
>               String rules = 
>                               "Token{REGEXP(\"room\")-> Token.pos=\"STOP\"};  
>  \n"
>                               + "Token{REGEXP(Token.pos, \"STOP\")-> 
> Token.pos=\"anotherTag\"};";
>               try {
>                       Ruta.apply(aJCas.getCas(), rules, parameters);
>               } catch (Exception e) {
>                       e.printStackTrace();
>               }
>       }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to