An update on how things are going with using cTAKES from groovy.
For my purposes, I switched from using grapes/@Grab annotations, to having the
groovy script run against what was extracted from the ctakes convenience binary
(apache-ctakes-3.1.1-bin.zip)
I have two scripts. In the first (run_cTAKES.groovy), I set a variable pointing
to where cTAKES was extracted to, and another pointing to where the separately
downloadable ctakesresources (UMLS dictionary + LVG database) was extracted
Then I run the script. The script adds the following to the classpath
dynamically using this.class.classLoader.rootLoader.addURL
- almost all [1] the jars from cTAKES' lib directory
- cTAKES' desc directory
- cTAKES' resources directory
- the directory where the separately downloadable ctakesresources was extracted
Then it starts the second script (cTAKES-clinical-pipeline.groovy) with
evaluate(new File('cTAKES-clinical-pipeline.groovy'));
This is just FYI. I plan to share the scripts once they are in better shape.
-- James
[1] groovy and cTAKES do not play nice out of the box. I get the following if I
include all the jars from cTAKES bin distribution
Caught: javax.xml.transform.TransformerFactoryConfigurationError: Provider
org.apache.xalan.processor.TransformerFactoryImpl not found
javax.xml.transform.TransformerFactoryConfigurationError: Provider
org.apache.xalan.processor.TransformerFactoryImpl not found
at
org.apache.uima.util.impl.SaxDeserializer_impl.<clinit>(SaxDeserializer_impl.java:54)
at
org.apache.uima.util.impl.XMLParser_impl.parse(XMLParser_impl.java:174)
at
org.apache.uima.util.impl.XMLParser_impl.parseResourceSpecifier(XMLParser_impl.java:366)
at
org.apache.uima.util.impl.XMLParser_impl.parseResourceSpecifier(XMLParser_impl.java:347)
at
org.uimafit.factory.ResourceCreationSpecifierFactory.createResourceCreationSpecifier(ResourceCreationSpecifierFactory.java:76)
at
org.uimafit.factory.ResourceCreationSpecifierFactory.createResourceCreationSpecifier(ResourceCreationSpecifierFactory.java:55)
at
org.uimafit.factory.AnalysisEngineFactory.createAnalysisEngineDescription(AnalysisEngineFactory.java:110)
at cTAKES-clinical-pipeline.run(cTAKES.groovy:74)
at run_cTAKES.run(run_cTAKES.groovy:71)
So for now I skip adding the x*.jar files from the cTAKES convenience binary to
the classpath.
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of
Richard Eckart de Castilho
Sent: Thursday, December 12, 2013 12:00 PM
To: [email protected]
Subject: Re: cTAKES Groovy...
I tried with the small script (buh):
export JAVA_OPTS="-Dgroovy.grape.report.downloads=true $JAVA_OPTS"
HighFire-6:~ bluefire$ ./buh
Resolving dependency: edu.mit.findstruct#findstructapi;0.0.1 {default=[default]}
Preparing to download artifact
edu.mit.findstruct#findstructapi;0.0.1!findstructapi.jar
Downloaded 13 Kbytes in 2326ms:
[SUCCESSFUL ] edu.mit.findstruct#findstructapi;0.0.1!findstructapi.jar
(2311ms)
Please specify input directory
looks ok to me.
-- Richard
On 12.12.2013, at 15:54, Tim Miller <[email protected]>
wrote:
> I was able to replicate the error after removing the findstruct directories
> from my .groovy and .m2 repositories.
>
> On 12/12/2013 12:22 PM, Masanz, James J. wrote:
>> Shouldn't be firewall - other grapes download fine.
>>
>> I created a short groovy script to just grab findstructapi - I copy/pasted
>> the @grab line from from the Groovy Grape section of
>> http://search.maven.org/#artifactdetails%7Cedu.mit.findstruct%7Cfindstructapi%7C0.0.1%7Cjar
>>
>> And I still get
>>
>> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup
>> failed:
>> General error during conversion: Error grabbing Grapes -- [download failed:
>> edu.mit.findstruct#findstructapi;0.0.1!findstructapi.jar]
>>
>> java.lang.RuntimeException: Error grabbing Grapes -- [download failed:
>> edu.mit.findstruct#findstructapi;0.0.1!findstructapi.jar]
>>
>> Very odd.
>>
>> My script is simply:
>>
>> #!/usr/bin/env groovy
>> @Grab(group='edu.mit.findstruct', module='findstructapi', version='0.0.1')
>> import java.io.File;
>>
>> if(args.length < 1) {
>> System.out.println("Please specify input directory");
>> System.exit(1);
>> }
>> System.out.println("Input parm is: " + args[0]);
>> System.exit(0);