You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Thomas Ginter <th...@utah.edu> on 2015/05/14 19:44:12 UTC

Re: UIMAFit and UIMA-AS deployment

There is also Leo which allows you to programmatically create pipelines, launch them as UIMA-AS services, and manage types systems and clients without having to touch any descriptor files.  You can find documentation at the site below:

http://department-of-veterans-affairs.github.io/Leo/userguide.html

Thanks,

Thomas Ginter
801-448-7676
thomas.ginter@utah.edu




> On Apr 30, 2015, at 11:33, Richard Eckart de Castilho <re...@apache.org> wrote:
> 
> Hi,
> 
> I have tried once to use UIMA-AS and I did it in conjunction with uimaFIT.
> 
> At the time, I didn't find any API to programmatically create UIMA-AS
> deployment descriptors. It appeared to me as if UIMA-AS extracted
> information directly from the XML stream - but then I maybe didn't dig
> deep enough.
> 
> Anyway, I created a class to programmatically build a subset of the 
> UIMA-AS deployment descriptor.
> 
> You find this class and some code using it here:
> 
> https://code.google.com/p/dkpro-lab/source/browse/dkpro-lab-uima-engine-uimaas/src/main/java/de/tudarmstadt/ukp/dkpro/lab/uima/engine/uimaas/AsDeploymentDescription.java
> 
> Maybe it helps you.
> 
> Cheers,
> 
> -- Richard
> 
> On 30.04.2015, at 17:40, Sylvain Surcin <su...@kwaga.com> wrote:
> 
>> Hello,
>> 
>> I'm trying to see if I can adapt our UIMA-AS architecture to UIMAFit.
>> 
>> And I'm wondering how to actually do it from the main level where I have a
>> class
>> 
>> UimaAsynchronousEngine myEngine = new BaseUIMAAsynchronousEngine_impl();
>> myEngine.addStatusCallbackListener(myListener);
>> myEngine.deploy(myAsDeploymentDescriptorFile, applicationContext);
>> 
>> The AS deployment descriptor file has a section
>> <topDescriptor>
>> <import location="./MyAggregateChain.xml"/>
>> </topDescriptor>
>> 
>> Now, if I want to be smart and use UIMAFit's AggregateBuilder, how do I
>> reconciliate that with the deployment descriptor file?
>> 
>> Is there a way to do that entirely from within the Java code?
>> Or do I have to use UIMAFit to generate the aggregate descriptor file from
>> the AnalysisEngine built by the AggregateBuilder?
>> 
>> Thanks for your help,
>> 
>> [+] Add me to your address book
>> <https://ws.writethat.name/kwaga-bin/titan/WEB/me.pl/5075409511380703595/i>
>> 
>> Sylvain SURCIN, Ph.D.
>> *KWAGA*
>> Senior Software Architect
>> 15, rue Jean-Baptiste Berlier
>> 75013 Paris
>> France
>> Tél.: +33 (0)1.55.43.79.20
> 


Re: UIMAFit vs. LEO

Posted by Richard Eckart de Castilho <re...@apache.org>.
Hi all,

I think that LEO and uimaFIT are largely orthogonal.

While both try to make the use of UIMA easier, LEO focusses on
UIMA-AS while uimaFIT focusses on the core UIMA API.

There appear to be some overlaps between LEO and uimaFIT,
e.g. when it comes to generating descriptors. LEO appears
to be using a more heavy-weight approach by providing its
own descriptor wrapper classes where the uimaFIT factories
provide follow what I would see as a more lightweight approach.

I think it should be possible to mix uimaFIT and LEO in such
a sense that descriptors created with uimaFIT can be consumed
by LEO and uimaFIT-aware components should run nicely on LEO.

Cheers,

-- Richard

On 21.05.2015, at 17:19, Thomas Ginter <th...@utah.edu> wrote:

> Hi Peter,
> 
> That is an excellent question.  Leo was written with two goals in mind.  You have touched on one of them.  
> 
> 1.  Utilize UIMA-AS to lend scalability to our NLP processing.
> 2.  Facilitate the reuse of existing and third party code.
> 
> Obviously it was built as a means of programmatically creating and managing pipelines as UIMA-AS services, as well as managing the client side of UIMA-AS, to facilitate the first goal.  Less well known is that because of the second goal Leo allows you to either utilize the framework to create the description for an analysis engine or aggregate engine (pipeline) but it also allows you to import descriptors or description objects generated from other sources.  In this way we can reuse modules, or even whole pipelines, like YTEX and cTAKES, without needing to have access to the source code to insert the appropriate metadata.  If you wanted to use UIMAFit to generate the description object for an analysis engine and then insert that analysis engine into your Leo pipeline it is also relatively easy to do so. 
> 
> Thanks,
> 
> Thomas Ginter
> 801-448-7676
> thomas.ginter@utah.edu
> 
> 
> 
> 
>> On May 19, 2015, at 18:49, Petr Baudis <pa...@ucw.cz> wrote:
>> 
>> Hi!
>> 
>> On Thu, May 14, 2015 at 05:44:12PM +0000, Thomas Ginter wrote:
>>> There is also Leo which allows you to programmatically create pipelines, launch them as UIMA-AS services, and manage types systems and clients without having to touch any descriptor files.  You can find documentation at the site below:
>>> 
>>> http://department-of-veterans-affairs.github.io/Leo/userguide.html
>> 
>> I'm wondering how does UIMAFit and LEO fit together.  My impression
>> right now is:
>> 
>> * They both have the same goal.
>> 
>> * Mixing them in the same pipeline might get messy(?)
>> 
>> * LEO advantage is that it seamlessly works with UIMA-AS (in fact it's
>>   built around UIMA-AS).
>> 
>> * UIMAFit advantage is (if nothing else) vastly wider ecosystem.
>> 
>> Did I get this about right?
>> 
>> Thanks,
>> 
>> 				Petr Baudis
> 


Re: UIMAFit vs. LEO

Posted by Thomas Ginter <th...@utah.edu>.
Hi Peter,

That is an excellent question.  Leo was written with two goals in mind.  You have touched on one of them.  

1.  Utilize UIMA-AS to lend scalability to our NLP processing.
2.  Facilitate the reuse of existing and third party code.

Obviously it was built as a means of programmatically creating and managing pipelines as UIMA-AS services, as well as managing the client side of UIMA-AS, to facilitate the first goal.  Less well known is that because of the second goal Leo allows you to either utilize the framework to create the description for an analysis engine or aggregate engine (pipeline) but it also allows you to import descriptors or description objects generated from other sources.  In this way we can reuse modules, or even whole pipelines, like YTEX and cTAKES, without needing to have access to the source code to insert the appropriate metadata.  If you wanted to use UIMAFit to generate the description object for an analysis engine and then insert that analysis engine into your Leo pipeline it is also relatively easy to do so. 

Thanks,

Thomas Ginter
801-448-7676
thomas.ginter@utah.edu




> On May 19, 2015, at 18:49, Petr Baudis <pa...@ucw.cz> wrote:
> 
>  Hi!
> 
> On Thu, May 14, 2015 at 05:44:12PM +0000, Thomas Ginter wrote:
>> There is also Leo which allows you to programmatically create pipelines, launch them as UIMA-AS services, and manage types systems and clients without having to touch any descriptor files.  You can find documentation at the site below:
>> 
>> http://department-of-veterans-affairs.github.io/Leo/userguide.html
> 
>  I'm wondering how does UIMAFit and LEO fit together.  My impression
> right now is:
> 
>  * They both have the same goal.
> 
>  * Mixing them in the same pipeline might get messy(?)
> 
>  * LEO advantage is that it seamlessly works with UIMA-AS (in fact it's
>    built around UIMA-AS).
> 
>  * UIMAFit advantage is (if nothing else) vastly wider ecosystem.
> 
>  Did I get this about right?
> 
>  Thanks,
> 
> 				Petr Baudis


UIMAFit vs. LEO

Posted by Petr Baudis <pa...@ucw.cz>.
  Hi!

On Thu, May 14, 2015 at 05:44:12PM +0000, Thomas Ginter wrote:
> There is also Leo which allows you to programmatically create pipelines, launch them as UIMA-AS services, and manage types systems and clients without having to touch any descriptor files.  You can find documentation at the site below:
> 
> http://department-of-veterans-affairs.github.io/Leo/userguide.html

  I'm wondering how does UIMAFit and LEO fit together.  My impression
right now is:

  * They both have the same goal.

  * Mixing them in the same pipeline might get messy(?)

  * LEO advantage is that it seamlessly works with UIMA-AS (in fact it's
    built around UIMA-AS).

  * UIMAFit advantage is (if nothing else) vastly wider ecosystem.

  Did I get this about right?

  Thanks,

				Petr Baudis