Hi to all,
I embedded a CPM in a Spring context (www.springframework.org) via a
wrapper class that parses AE xml (collectionreaders, annotators and
consumers) and push them in the CPM.
I did the same thing with aggregate AE to be used by a web app (here I
don't need collection readers nor consumers).

A snippet from the spring context:

        <bean name="listener" class="it.celi.uima.engine.Listener">
                <property name="cpm" ref="cpm" />
        </bean>

        <bean name="cpm" class="org.apache.uima.UIMAFramework"
factory-method="newCollectionProcessingManager">
                <description>The collection processing manager that holds uima
components</description>
        </bean>

        <bean name="uima" class="it.celi.uima.engine.CpmUIMAEngine">
                <description>An Engine that wraps UIMA components: collection
readers, analsys engines and consumers</description>
                <property name="pearsInstallPath" 
value="${pears.base.path}installed" />
                <property name="cpm" ref="cpm">
                        <description>The uderlying Collection Processing 
Manager</description>
                </property>
                <property name="listeners">
                        <description>A collection of listeners to be attached 
to CPM</description>
                        <list>
                                <ref bean="listener" />
                        </list>
                </property>
                <property name="readerDescriptors">
                        <description>A collection of CollectionReaders: the 
entire pipeline
is activated for each reader</description>
                        <list>
                                
<value>${conf.base.path}RecursiveFileSystemCollectionReader.xml</value>
                        </list>
                </property>
                <property name="analisysDescriptors">
                        <description>The pipeline of analysis: analysis 
engines, aggregates
and pears descriptors allowed</description>
                        <list>
                                
<value>${conf.base.path}SentenceAnnotator.xml</value>
                                
<value>${conf.base.path}RegExpTokenizer.xml</value>
                        </list>
                </property>
                <property name="consumerDescriptors">
                        <list>
                                
<value>${conf.base.path}XmiWriterCasConsumer.xml</value>
                                
<value>${conf.base.path}XCasWriterCasConsumer.xml</value>
                        </list>
                </property>
        </bean>

Now I would go a step forward and avoid UIMA xml descritptor, please
don't blame me :)
What I'm looking for is something like this:

RegExpNormalizer annotator = new RegExpNormalizer();

annotar.setAProperty(value);
annotar.setAnotehrProperty(anotherValue);

CollectionProcessingManager cpm =
UIMAFramework.newCollectionProcessingManager();
cpm.add(annotator)

Where RegExpNormalizer  extends JCasAnnotator_ImplBase.

So in the spring context I can write:

        <bean name="normalizer" class="it.celi.uima.engine.RegExpNormalizer">
                <property name="aProperty" value="value"/>
                <property name="anotherProperty" value="anotherValue"/>
       </bean>

        <bean name="uima" class="it.celi.uima.engine.CpmUIMAEngine">
[cut]
                <property name="analisysDescriptors">
                        <description>The pipeline of analysis: analysis 
engines, aggregates
and pears descriptors allowed</description>
                        <list>
                                <ref bean="normalizer"/>
                        </list>
                </property>

Is it possible to do that?
Thanks
Roberto
-- 
Roberto Franchini
CELI s.r.l.  (http://www.celi.it) - C.so Moncalieri 21 - 10131 Torino - ITALY
Tel +39-011-6600814 - Fax +39-011-6600687
jabber:[EMAIL PROTECTED] skype:ro.franchini

Reply via email to