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
script/uima/ruta/deu/common/date.ruta
script/uima/ruta/eng/common/date.ruta
script/uima/ruta/eng/aaa.ruta
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
question.
On Tue, Apr 16, 2019 at 9:27 AM Peter Klügl <peter.kluegl@averbis.com>
wrote:
I assume that you use a simple Ruta project (compared to a maven project
> with the ruta-maven-plugin)?
>
true.
>
> 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:
<nameValuePair>
<name>additionalScripts</name>
<value>
<array>
<string>uima.ruta.eng.common.date</string>
</array>
</value>
</nameValuePair>
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,
Nikolai
>
>
> 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ó
>
>
|