Hi Peter,
Thank for your help it works very very well now.
The first time I import your project, it indicates an error for import
tutorial.entity.Date.Date statement. I fixed it following this post here
<http://philip.yurchuk.com/software/eclipse-cannot-be-resolved-to-a-type-error/>
if it can help someone also. These 4 instructions : *Clean, refresh, build,
restart.*
Thank you again.
Regards
Olivier
2015-11-13 14:01 GMT+01:00 Peter Klügl <peter.kluegl@averbis.com>:
> Hi,
>
> I assume that there are several problems, e.g., the missing JCas cover
> classes.
>
> I have taken the liberty to create a project based on your example like
> I would use ruta right now (with 2.3.1):
> http://people.apache.org/~pkluegl/examples/date-example.zip
>
> - the script file are in src/main/ruta
> - the wordlist file is in src/main/resources
> - the descriptors are generated to target/generated-sources/ruta
> - the JCas cover classes are generated to target/generated-sources/jcasgen
> - src/test/java contains two JUnit tests: one based on the generated
> descriptor and one based on uimaFIT without ae descriptor
>
> Let me know if this helps and/or you have questions about the project
> setup.
>
> Best,
>
> Peter
>
> Am 12.11.2015 um 17:04 schrieb Olivier Austina:
> > Hi Peter,
> >
> >
> > Thank you for you reply. To answer to your questions:
> >
> >
> > - who created DateTypeSystem.xml? Was it the ruta-maven-plugin or the
> > build process of the Ruta Workbench? Did you move the type system
> > descriptor, e.g., making the import in the AE descriptor invalid?
> >
> > DateTypeSystem.xml is created by the Ruta Workbench. I have created the
> > project with Ruta Workbench and then try to use it in java program with
> > maven. This is the DateTypeSystem.xml file content :
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <typeSystemDescription xmlns="http://uima.apache.org/resourceSpecifier">
> > <name>tutorial.entity.DateTypeSystem</name>
> > <imports>
> > <import location="../../BasicTypeSystem.xml"/>
> > </imports>
> > <types>
> > <typeDescription>
> > <name>tutorial.entity.Date.Month</name>
> > <description>Type defined in
> tutorial.entity.Date</description>
> > <supertypeName>uima.tcas.Annotation</supertypeName>
> > </typeDescription>
> > <typeDescription>
> > <name>tutorial.entity.Date.Year</name>
> > <description>Type defined in
> tutorial.entity.Date</description>
> > <supertypeName>uima.tcas.Annotation</supertypeName>
> > </typeDescription>
> > <typeDescription>
> > <name>tutorial.entity.Date.Date</name>
> > <description>Type defined in
> tutorial.entity.Date</description>
> > <supertypeName>uima.tcas.Annotation</supertypeName>
> > </typeDescription>
> > </types>
> > </typeSystemDescription>
> >
> > - did you include the jcasgen-maven-plugin in your pom? Or did you use
> > the Component Descriptor Editor to create JCas cover classes.
> >
> > No I didn't use it. I have only create a simple maven project with
> eclipse
> > and try to call UIMA Ruta with uimaFIT.
> >
> > - the error messages indicate that the type system import of your
> > analysis engine has some problems and that the Month type is not
> > resolved. Furthermore,tThe Month class (JCas cover class for the type)
> > is missing. Either there was already a class or JCasGen was not executed.
> >
> > Can you provide the complete pom and a short description of the layout
> > of your project?
> >
> > This is the pom:
> >
> > <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
> > http://www.w3.org/2001/XMLSchema-instance"
> > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
> > <modelVersion>4.0.0</modelVersion>
> >
> > <groupId>tuto</groupId>
> > <artifactId>tuto-step0</artifactId>
> > <version>0.0.1-SNAPSHOT</version>
> > <packaging>jar</packaging>
> >
> > <name>tuto-step0</name>
> > <url>http://maven.apache.org</url>
> >
> > <properties>
> > <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> > </properties>
> >
> > <dependencies>
> > <dependency>
> > <groupId>org.apache.uima</groupId>
> > <artifactId>ruta-core</artifactId>
> > <version>2.3.1</version>
> > </dependency>
> >
> > <dependency>
> > <groupId>org.apache.uima</groupId>
> > <artifactId>uimafit-core</artifactId>
> > <version>2.1.0</version>
> > </dependency>
> > <dependency>
> > <groupId>junit</groupId>
> > <artifactId>junit</artifactId>
> > <version>3.8.1</version>
> > <scope>test</scope>
> > </dependency>
> > </dependencies>
> > </project>
> >
> > This is java code with imports:
> >
> > package tuto.tuto_step0;
> >
> > import java.io.File;
> > import java.io.IOException;
> >
> > import org.apache.uima.UIMAFramework;
> > import org.apache.uima.analysis_engine.AnalysisEngine;
> > import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
> > import org.apache.uima.cas.CAS;
> > import org.apache.uima.cas.CASException;
> > import org.apache.uima.cas.text.AnnotationFS;
> > import org.apache.uima.cas.text.AnnotationIndex;
> > import org.apache.uima.fit.util.ContainmentIndex.Type;
> > import org.apache.uima.fit.util.JCasUtil;
> > import org.apache.uima.jcas.JCas;
> > import org.apache.uima.resource.ResourceInitializationException;
> > import org.apache.uima.resource.ResourceSpecifier;
> > import org.apache.uima.util.InvalidXMLException;
> > import org.apache.uima.util.XMLInputSource;
> >
> >
> >
> > public class App
> > {
> > public static void main( String[] args ) throws IOException,
> > InvalidXMLException, ResourceInitializationException,
> > AnalysisEngineProcessException, CASException
> > {
> > //System.out.println( "Hello World!" );
> > File specFile = new
> >
> File("/home/olhome/software/workspace/rutatest1/dateproject/descriptor/tutorial/entity/DateEngine.xml");
> > XMLInputSource in = new XMLInputSource(specFile);
> > ResourceSpecifier specifier = UIMAFramework.getXMLParser().
> > parseResourceSpecifier(in);
> > // for import by name... set the datapath in the
> ResourceManager
> > AnalysisEngine ae =
> > UIMAFramework.produceAnalysisEngine(specifier);
> > CAS cas = ae.newCAS();
> > cas.setDocumentText("This is my document. March June
> > December");
> > ae.process(cas);
> > // For plain UIMA
> > /*
> > org.apache.uima.cas.Type monthType =
> > cas.getTypeSystem().getType("tutorial.entity.Date.Month");
> > AnnotationIndex<AnnotationFS> annotationIndex =
> > cas.getAnnotationIndex(monthType);
> > for (AnnotationFS each : annotationIndex) {
> > System.out.println(each.getCoveredText());
> > }
> > */
> >
> > JCas jcas = cas.getJCas();
> > for (Month month : JCasUtil.select(jcas, Month.class)) {
> > System.out.println(month.getCoveredText());
> > }
> >
> >
> > }
> > }
> >
> > Thank you.
> >
> > Regards
> > Olivier
> >
> >
> > 2015-11-12 14:35 GMT+01:00 Peter Klügl <peter.kluegl@averbis.com>:
> >
> >> Hi,
> >>
> >> here a few fast comments and questions:
> >> - the example code uses uimaFIT only for the select, but not for the
> >> creation/initialization of the components/CAS. Thus,
> >> org.apache.uima.fit/types.txt won't help much. However, the types should
> >> be included by the import in the AE.
> >> - who created DateTypeSystem.xml? Was it the ruta-maven-plugin or the
> >> build process of the Ruta Workbench? Did you move the type system
> >> descriptor, e.g., making the import in the AE descriptor invalid?
> >> - did you include the jcasgen-maven-plugin in your pom? Or did you use
> >> the Component Descriptor Editor to create JCas cover classes.
> >> - the error messages indicate that the type system import of your
> >> analysis engine has some problems and that the Month type is not
> >> resolved. Furthermore,tThe Month class (JCas cover class for the type)
> >> is missing. Either there was already a class or JCasGen was not
> executed.
> >>
> >> Can you provide the complete pom and a short description of the layout
> >> of your project?
> >>
> >> Best,
> >>
> >> Peter
> >>
> >> PS: a uimaFIT like approach for creating a Ruta engine could look like
> >> (whereas direct initialization of AE should be avoided in general):
> >> AnalysisEngine ae = createEngine(RutaEngine.class,
> >> RutaEngine.PARAM_MAIN_SCRIPT,
> >> "org.apache.uima.ruta.engine.UimafitTest",
> >> RutaEngine.PARAM_SCRIPT_PATHS, new String[] {
> >> "src/test/resources" });
> >>
> >>
> >> Am 12.11.2015 um 14:12 schrieb Olivier Austina:
> >>> Hi,
> >>>
> >>> I try to call a simple UIMA ruta script from uimaFIT in java. It works
> in
> >>> plain UIMA but it didn't work in uimaFIT for me. Here is the script:
> >>>
> >>> PACKAGE tutorial.entity;
> >>> WORDLIST MonthsList = 'month.txt';
> >>> DECLARE Month;
> >>> DECLARE Year;
> >>> DECLARE Date;
> >>> Document{-> MARKFAST(Month, MonthsList )};
> >>> NUM{REGEXP("19..|20..") -> MARK(Year,1,2)};
> >>> Month Year {-> MARK(Date,1,2)};
> >>>
> >>> Here is the java code (based on Ruta doc example):
> >>>
> >>> //System.out.println( "Hello World!" );
> >>> File specFile = new
> >>>
> >>
> File("/home/olhome/software/workspace/rutatest1/dateproject/descriptor/tutorial/entity/DateEngine.xml");
> >>> XMLInputSource in = new XMLInputSource(specFile);
> >>> ResourceSpecifier specifier = UIMAFramework.getXMLParser().
> >>> parseResourceSpecifier(in);
> >>> // for import by name... set the datapath in the
> >> ResourceManager
> >>> AnalysisEngine ae =
> >>> UIMAFramework.produceAnalysisEngine(specifier);
> >>> CAS cas = ae.newCAS();
> >>> cas.setDocumentText("This is my document. March June
> >>> December");
> >>> ae.process(cas);
> >>>
> >>> JCas jcas = cas.getJCas();
> >>> for (Month month : JCasUtil.select(jcas, Month.class)) {
> >>> System.out.println(month.getCoveredText());
> >>> }
> >>>
> >>> This is the pom dependencies:
> >>>
> >>> <dependency>
> >>> <groupId>org.apache.uima</groupId>
> >>> <artifactId>ruta-core</artifactId>
> >>> <version>2.3.1</version>
> >>> </dependency>
> >>>
> >>> <dependency>
> >>> <groupId>org.apache.uima</groupId>
> >>> <artifactId>uimafit-core</artifactId>
> >>> <version>2.1.0</version>
> >>> </dependency>
> >>>
> >>>
> >>> I have the following error:
> >>>
> >>> Exception in thread "main" java.lang.Error: Unresolved compilation
> >>> problems:
> >>> Month cannot be resolved to a type
> >>> Bound mismatch: The generic method select(FSArray, Class<T>) of
> type
> >>> JCasUtil is not applicable for the arguments (JCas, Class<Month>).
The
> >>> inferred type Month is not a valid substitute for the bounded parameter
> >> <T
> >>> extends TOP>
> >>> Month cannot be resolved to a type
> >>> at tuto.tuto_step0.App.main(App.java:51)
> >>>
> >>>
> >>> It seems that I am not able to correctly import types like in the maven
> >>> example. I am not so familiar with maven. I have put the
> >> DateTypeSystem.xml
> >>> in a folder called tuto under src folder and add the line
> >>> "classpath*:/tuto/DateTypeSystem.xml" in the text file
> >>> src/META-INF/org.apache.uima.fit/types.txt.
> >>>
> >>> Any suggestion is welcome. Thank you.
> >>>
> >>> Regards
> >>> Olivier
> >>>
> >>
>
>
|