uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nikolai Krot <tal...@gmail.com>
Subject Re: how to set scriptPath
Date Tue, 16 Apr 2019 09:14:54 GMT
Hi Peter,

Thank you for your quick reply. Still can not get it to work. Please read
my questions intertwined with your answers.

I will start with an overview of the projects structure I have set up


So, the project is multilingual (hence deu and eng) and I want to keep some
shared scripts under *common/* directory. An example of such a shared
script is, for example, *date.ruta*, for recognizing dates, because dates
can appear in any type of document.
All specific stuff, that is my case is document-type/genre specific, goes
outside of *common/* directory: *eng/aaa.ruta* is an example of such
specific document genre-dependent script.

And now I want to reuse *eng/common/date.ruta* in said *eng/aaa.ruta* that
looks like this:

// file: script/uima/ruta/eng/aaa.ruta
PACKAGE uima.ruta.eng;
SCRIPT uima.ruta.eng.common.date;  <-- this causes an error
Document {->CALL(date)};

I tried to do it like this but it did not work. Hence i am asking this

On Tue, Apr 16, 2019 at 9:27 AM Peter Klügl <peter.kluegl@averbis.com>

I assume that you use a simple Ruta project (compared to a maven project
> with the ruta-maven-plugin)?


> Normally, you should not need to set the scriptPaths configuration
> parameter as it is set automatically by the builder to the absolute
> paths to the "script" folder of your ruta project.
> The file "descriptor/BasicEngine.xml" is only the template for the
> generated descriptors for your Ruta scripts. Thus, is isn't used for
> launching scripts.

Do you mean that *descriptor/BaseEngine.xml* is used as a basis for other
descriptor/*Engine.xml files? that is, the file
*descriptor/uima/ruta/eng/aaaEngine.xml* was generated from BasicEngine.xml
when I first created *eng/aaa.ruta* file. Can the file aaaEngine.xml be
edited manually? Is it safe? I see that this file contains absolute paths
and what happens when I move this project to another computer that has a
different directory structure? And finally, should aaaEngine.xml be
committed to a git repository?

> Can you check the parameter value of the descriptor of the Ruta script
> you want to run?

sorry, can not understand this. How do I locate it?

> If you want to use an additional script, you can simply import it in
> your script (using the correct package with "SCRIPT" and then execute it
> with "CALL"). The Workbench should take care of all the configuration.

Unfortunately, it did not work. The error is

Exception in thread "main"
org.apache.uima.resource.ResourceInitializationException: Initialization of
annotator class "org.apache.uima.ruta.engine.RutaEngine" failed.
(Descriptor: file:/path/to/zzz/descriptor/uima/ruta/eng/aaaEngine.xml)
Caused by: org.apache.uima.ruta.extensions.RutaParseRuntimeException: Error
in aaa, line 11, "SCRIPT": expected 'none', but found ScriptString

> In any case this works not as expected, here are the two configuration
> parameter values you would need to set:
>             <nameValuePair>
>                 <name>scriptPaths</name>
>                 <value>
>                     <array>
>                         <string>C:/src/ws/ws-ta/ARutaTest/script</string>
>                     </array>
>                 </value>
>             </nameValuePair>
>             <nameValuePair>
>                 <name>additionalScripts</name>
>                 <value>
>                     <array>
>                         <string>uima.example.Test2</string>
>                     </array>
>                 </value>
>             </nameValuePair>
Oke, I tried the following (in my case, this is said *aaaEngine.xml* file,
correct?) but looks like it did not help: still getting the same error as
above when I run the script:


I also tried using CONFIGURE command in aaa.ruta script, but honestly, I
dont know how to specify an array of strings as a value and the
documentation does not cover this case

CONFIGURE(hmlrEngine, "scriptPaths" = ["uima/ruta/eng/common"]); <--
invalid syntax

Thank you and best regards,

> Am 15.04.2019 um 22:46 schrieb Nikolai Krot:
> > Hi,
> >
> > In a ruta rule script, I want to include and run another script that is
> > located in a subdirectory w.r.t to the location of the current script.
> From
> > reading the documentation, it seems that the variable *scriptPath* needs
> to
> > be set to that subdirectory for *SCRIPT* directive to work. Or am I
> wrong?
> >
> > I can not figure out how to set *scriptPath*. One possibility would be to
> > add this configuration to *descriptor/BasicEngine.xml* file.
> Unfortunately,
> > I can not find any example of how to accomplish it. Should it be like
> below?
> >
> > <nameValuePair>
> >>   <name>scriptPath</name>
> >>    <value>
> >>         <string>path/to/subdirectory</string>
> >>    </value>
> >> </nameValuePair>
> >>
> > What if I want to set several path values?
> > Do values need to be relative to the project root directory?
> >
> > Thank you in advance,
> > Nikolai
> >
> --
> Dr. Peter Klügl
> R&D Text Mining/Machine Learning
> Averbis GmbH
> Salzstr. 15
> 79098 Freiburg
> Germany
> Fon: +49 761 708 394 0
> Fax: +49 761 708 394 10
> Email: peter.kluegl@averbis.com
> Web: https://averbis.com
> Headquarters: Freiburg im Breisgau
> Register Court: Amtsgericht Freiburg im Breisgau, HRB 701080
> Managing Directors: Dr. med. Philipp Daumke, Dr. Kornél Markó

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message