You're right. TYPESYSTEM org.apache.uima.ruta.engine.HtmlTypeSystem
seems to work.
Cheers,
Michael
Am 21/04/2022 um 11:47 schrieb Peter Klügl:
Hi,
ENGINE loads a xml descriptor. In simple Ruta projects they are
located in descriptor/utils which would result in 'ENGINE
utils.HtmlAnnotator;'. Loading the xml descriptor from the dependency
or even the installed OSGi bundle should also work. I would have to
check what the exact problem is in the project configuration.
However, if you want to load an analysis engine from the maven
dependencies, it is simpler to initialize it directly with uimaFIT
instead of the xml descriptor. This would result in something like
'UIMAFIT org.apache.uima.ruta.engine.HtmlAnnotator;'.
It should not look relative to the current package, but I have to
check that.
Best,
Peter
Am 21.04.2022 um 10:20 schrieb Michael B.:
Hi Peter!
Bonus question: how do I get Engines and Type Systems included
through maven dependencies to resolve correctly in scripts?
For instance:
PACKAGE de.miba;
ENGINE org.apache.uima.ruta.engine.HtmlAnnotator;
ENGINE org.apache.uima.ruta.engine.HtmlConverter;
TYPESYSTEM utils.HtmlTypeSystem;
TYPESYSTEM utils.SourceDocumentInformation;
Document{-> RETAINTYPE(SPACE,BREAK)};
Document{-> EXEC(HtmlAnnotator)};
Document { -> CONFIGURE(HtmlConverter, "inputView" = "_InitialView",
"outputView" = "plain"),
EXEC(HtmlConverter)};
All the ruta dependencies are on the class path, but the script can't
find it ("error: "org.apache.uima.ruta.engine.HtmlAnnotator" not
found.). I assume it's looking relative to current package (de.miba.*)?
Regards,
Michael
Am 14/04/2022 um 14:46 schrieb Peter Klügl:
Hi,
I had a quick look at your ruta-test project.
1. There was problem for the paths config of your annotator
description. If you use a java/maven project, it is easier to just
use the classpath instead of the Ruta paths. So I removed
'descriptor:descriptor' from the pom and moved the descriptor folder
to src/main/resources.
2. I added 'TYPESYSTEM descriptor.typeSystemDescriptor;' to your
TestProjectMain.ruta (after the UIMAFIT import) and deleted the JCas
cover class in 'src/main/java' as it is now generated and located at
'target/...'
3. I added a '.addToIndexes()' in TestAnno so that the annotation is
available and added 'EXEC(TestAnno);' in TestProjectMain.ruta so
that the annotator is executed. The keyword UIMAFIT is just an
import of the analysis engine.
4. I added 'Assert.assertEquals(1, JCasUtil.select(jcas,
SomeType.class).size());' to RutaTest.java in order to check if the
annotation is created.
If you want, I can open a pull request with the changes for your
project or for a fork.
Best
Peter
Am 13.04.2022 um 16:06 schrieb Michael B.:
Hi everyone!
I'm at a loss here. Trying to create a basic RUTA project, but I
just can't get it to work. I'd like to include a custom Engine
(Java code!) that needs a few maven dependencies. I just can't get
RUTA (via ENGINE/TYPESYSTEM) to properly include and initialize
Java annotators.
What I tried so far:
- Create project using archetype
- Add code for custom AE
- Add TS and AE descriptors in ./descriptor folder, run JCASGen
- Add <buildPath>descriptor:descriptor</buildPath> to pom (in the
ruta-maven-plugin section). ./descriptor folder is configured
successfully as part of build path
Issues:
- When using ENGINE aeDescriptor in script, project doesn't run:
Caused by: java.io.FileNotFoundException: class path resource
[aeDescriptor.xml] cannot be resolved to URL because it does not exist
- TYPESYSTEM typeSystemDescriptor <- works in editor, but maven pom
/ task throws an error (no details, assuming name/path can't be
resolved)
- UIMAFIT de.miba.TestAnno works (and can be executed in ruta
script), but Types/TS missing, so runtime errors.
Any hints or an example project where this works would be highly
appreciated! I've uploaded the skeleton to
https://github.com/mybyte/ruta-test
Cheers,
Michael