Thank you for the answer.
I've looked at your example and I see that you don't use the class
Annotation but you prefer to create different view from inside the
Annotator and then in the main program you look for these view.
In your simple annotator you do:
JCas parentheticalView= ViewCreatorAnnotator.createViewSafely(jCas,
ViewNames.PARENTHESES_VIEW);
...
parentheticalView.setDocumentText(parentheticalText);
My simple AE, which I've not written myself, in the process method does:
aCAS.getIndexRepository().addFS(fs);
so it adds a Feature Structure in the index repository of the JCas
This may be the reason why in my case each single AE works on its own
and I'm able to print all the single annotation, but when I use the AAE
I obtain no annotation.
But, being a newbie in writing UIMA code I not totally sure of what I've
just written, so if someone can please explain me what I am doing wrong.
Thnaks,
Andrea
Il 16/06/2010 16:52, [email protected] ha scritto:
You might take a look at the uimaFIT (http://uimafit.googlecode.com)
AggregateBuilder class:
http://code.google.com/p/uimafit/source/browse/trunk/uimaFIT/src/main/java/org/uimafit/factory/AggregateBuilder.java
See the unit test for an example:
http://code.google.com/p/uimafit/source/browse/trunk/uimaFIT/src/test/java/org/uimafit/factory/AggregateBuilderTest.java
Hope this helps!
Philip
On June 16, 2010 at 2:32 PM Andrea Turbati<[email protected]> wrote:
Thanks for the anwer.
At the moment I've unzipped the pear so, and the AAE descriptor points
to the two directory. Maybe I've written a bad java code, but it's
copied from another project where I used one of the two unzipped simple
AE and it works fine.
What is the right way to call an AAE from a java sofware?
Thanks
Andrea
Il 16/06/2010 14:22, Marshall Schor ha scritto:
Does it work if you don't use PEARs?
-Marshall
On 6/15/2010 4:25 AM, Andrea Turbati wrote:
Hi all,
I'm a newbie and I'm trying to build an aggregate AE from two (very
simple) AE.
On this guide
http://uima.apache.org/downloads/releaseDocs/2.3.0-incubating/docs/pdf/tutorials_and_users_guides.pdf
on page 49 (55) there is an example of an aggregate AE Descriptor, so
I've copied and this is my AAE descriptor:
<?xml version="1.0" encoding="UTF-8"?>
<analysisEngineDescription
xmlns="http://uima.apache.org/resourceSpecifier">
<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
<primitive>false</primitive>
<delegateAnalysisEngineSpecifiers>
<delegateAnalysisEngine key="SimpleName">
<import location="./SimpleName/SimpleName_pear.xml"/>
</delegateAnalysisEngine>
<delegateAnalysisEngine key="EmailRecognizer">
<import location="./EmailRecognizer/EmailRecognizer_pear.xml" />
</delegateAnalysisEngine>
</delegateAnalysisEngineSpecifiers>
<analysisEngineMetaData>
<name>Aggregate AE - Room Number and DateTime Annotators</name>
<description>Detects Room Numbers, Dates, and Times</description>
<flowConstraints>
<fixedFlow>
<node>SimpleName</node>
<node>EmailRecognizer</node>
</fixedFlow>
</flowConstraints>
</analysisEngineMetaData>
</analysisEngineDescription>
And this is the java code I'm using:
...
pearDir = new File(aggregateAEPath).toURI();
browser = new PackageBrowser(new File(pearDir.getPath()));
in = new XMLInputSource(aggregateAEFilePath);
specifier =
UIMAFramework.getXMLParser().parseResourceSpecifier(in);
resManager = UIMAFramework.newDefaultResourceManager();
resManager.setExtensionClassPath(aeSimpleNamePath+"/bin",true); //
TODO check if this is necessary
resManager.setExtensionClassPath(aeEmailPath+"/bin",true);
// TODO check if this is necessary
ae = UIMAFramework.produceAnalysisEngine(specifier,
resManager, null);
ae.setConfigParameterValue("Encoding", "UTF-8");
annotCas = ae.newJCas();
annotCas.setDocumentText(textToBeAnnotatate);
annotCas.setDocumentLanguage("it");
ae.process(annotCas);
FSIndex indexAnnotations = annotCas.getAnnotationIndex();
Iterator<Annotation> annoIt = indexAnnotations.iterator();
while(annoIt.hasNext()){
Annotation annotation = annoIt.next();
String text = annotation.getCoveredText();
int begin = annotation.getBegin();
int end = annotation.getEnd();
String type = annotation.getType().getName();
System.out.println("text: "+text+"\tbegin:
"+begin+"\tend:"+end+"\ttype:"+type);
}
...
The problem is that the last System.out.println prints just all the
input text and no annoation, while if I use a very similar code with
the two simple AE I get all the annotation.
What am I doing wrong?
Thanks,
Andrea
--
-------------------------------------------------
Dott. Andrea Turbati
AI Research Group PhD student,
Dept. of Computer Science, Systems and Production
University of Roma, Tor Vergata
Via del Politecnico 1 00133 ROMA (ITALY)
tel: +39 06 7259 7332 (lab)
e_mail: [email protected]
home page: http://art.uniroma2.it/turbati/
--------------------------------------------------
--
-------------------------------------------------
Dott. Andrea Turbati
AI Research Group PhD student,
Dept. of Computer Science, Systems and Production
University of Roma, Tor Vergata
Via del Politecnico 1 00133 ROMA (ITALY)
tel: +39 06 7259 7332 (lab)
e_mail: [email protected]
home page: http://art.uniroma2.it/turbati/
--------------------------------------------------