On Tue, Oct 27, 2009 at 10:52 AM, Baptiste Gaillard
<b_gaill...@hotmail.com> wrote:
>
> Hi,
>
> On our project we are implementing a replacement for the CPE based on OSGI 
> and BPM Workflows.
> We
> have successfully created BPM workflows based on UIMA component using a
> unique data model for each component in the workflow.
>
> Now I
> want to make work our UIMA components a little like the CPE, that's to
> say having a Type System for each component in the workflow.
> But,
> I am a little lost, what I do not understand is how can we sequencially
> call multiple AEs/CCs and share the same CAS between all the
> components.
>
> In the developer guide of UIMA I've seen that:
> //create a JCas, given an Analysis Engine (ae)
> JCas jcas = ae.newJCas();
>
> //analyze a document
> jcas.setDocumentText(doc1text);
> ae.process(jcas);
> doSomethingWithResults(jcas);
> jcas.reset();
>
> Ok to call one AE, but how can I do sothething like that without problem ?
> JCas jcas = ae1.newJCas();
> jcas.setDocumentText(doc1text);
> ae1.process(jcas);
> ae2.process(jcas); // Here is the problem..., AE2 does not have the same 
> types in the type system...
> cc1.process(jcas);
> cc2.process(jcas);
>

Hi,

Take a look at this section of the Application Developers Guide:
http://incubator.apache.org/uima/downloads/releaseDocs/2.2.2-incubating/docs/html/tutorials_and_users_guides/tutorials_and_users_guides.html#ugr.tug.application.using_multiple_aes

> How can I manage the Class Loading of my annotators Types ?
Are all your JCas classes present in the application's classpath?  If
so, there won't be any problem.

> How to prevent conflits of types when I use the same Types in two different 
> annotator ?
Hmmm, what kind of conflicts do you mean?  Do you have the same type
name with different definitions (and therefore different JCas class
definitions for the same class name)?  Hopefully not, but if that's
the case you probably need to use PEARs to encapsulate the different
JCas classes within the PEAR classpath of a particular AE.

> Do I need to merge the Types Systems of all my components in a workflow to 
> build a "global" CAS before calling the process method of each component ?
Yes.  All types need to be defined when the CAS is created.  See the
documentation link above for how to do this.

 -Adam

Reply via email to