Hi,
you're welcome :-)
Yes, the class is not generated automatically when the project is
imported. I usually call "maven->update project" which cleans and builds
the project and helps Eclipse to update the source folders.
Best,
Peter
Am 13.11.2015 um 15:18 schrieb Olivier Austina:
> 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
>>>>>
>>
|