Return-Path: X-Original-To: apmail-incubator-clerezza-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-clerezza-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 10DB077B5 for ; Wed, 31 Aug 2011 16:12:03 +0000 (UTC) Received: (qmail 85847 invoked by uid 500); 31 Aug 2011 16:12:02 -0000 Delivered-To: apmail-incubator-clerezza-dev-archive@incubator.apache.org Received: (qmail 85806 invoked by uid 500); 31 Aug 2011 16:12:02 -0000 Mailing-List: contact clerezza-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: clerezza-dev@incubator.apache.org Delivered-To: mailing list clerezza-dev@incubator.apache.org Received: (qmail 85797 invoked by uid 99); 31 Aug 2011 16:12:02 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 31 Aug 2011 16:12:02 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of tommaso.teofili@gmail.com designates 209.85.216.47 as permitted sender) Received: from [209.85.216.47] (HELO mail-qw0-f47.google.com) (209.85.216.47) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 31 Aug 2011 16:11:56 +0000 Received: by qwh5 with SMTP id 5so491260qwh.6 for ; Wed, 31 Aug 2011 09:11:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=P2dtn3kd0zJaJkh0/Oi98EN5FZE4AnmnhFHb6er47YY=; b=WTEpSxesvP9ZzHp9s4uzI0dLW//n2dqDaSGFt3fmjhtFdg9dk/Ozg/SWh1+v/WY0Bh 2/HQCM96Nj8CfnxIk2lpA6QS/AyGGDDbY3YOwgrjEufdoqwwtzhcBE6DULaMbxx4gIIe PriS884vhj4IBbZkpxdX/ubVrJlfqXA/fSsTQ= Received: by 10.142.214.8 with SMTP id m8mr119424wfg.352.1314807095084; Wed, 31 Aug 2011 09:11:35 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.89.21 with HTTP; Wed, 31 Aug 2011 09:10:55 -0700 (PDT) In-Reply-To: <2C16042A-C1A8-4E45-AEF6-8DBE2816BCB6@ucdenver.edu> References: <2C16042A-C1A8-4E45-AEF6-8DBE2816BCB6@ucdenver.edu> From: Tommaso Teofili Date: Wed, 31 Aug 2011 18:10:55 +0200 Message-ID: Subject: Re: UIMA module thoughts (and refactoring) To: clerezza-dev@incubator.apache.org Content-Type: multipart/alternative; boundary=000e0cd2e504d9c7c504abcf610d --000e0cd2e504d9c7c504abcf610d Content-Type: text/plain; charset=ISO-8859-1 I've been browsing uimaFIT code, particularly the 'factory' package of the core module, but I do think staying the nearest possible to the UIMA OASIS standard is better in terms of standardization and adoption by other potential users. Nevertheless I'll take a look even if Richard from their team has been actively discussing within the UIMA community regarding the OSGi support. Thanks for your suggestion Karin. All the best, Tommaso 2011/8/31 Karin Verspoor > Tommaso, are you familiar with UIMAfit? http://code.google.com/p/uimafit/ > > It might help to address some of your problems, though I haven't carefully > considered all of your points below. We have been using it successfully to > support deployment of a UIMA pipeline across multiple machines. > > Karin > > On Aug 31, 2011, at 8:48 AM, Tommaso Teofili wrote: > > > Hi all, > > the UIMA Addons 2.3.1 release happened on August 29th [1], this release > > didn't include the OSGi packaging for the annotators since the UIMA > > community wants to provide full support to OSGi in the future while the > > addons OSGi packaging allowed only some basic use cases to be executed. > > > > So far the bad news, the good news is that we can now include UIMA Addons > > artifacts in our modules and that there is already a solution to face the > > possible issues with class loading within a framework which is not fully > > OSGi compliant. > > > > The UIMAFramework class creates an AnalysisEngines given its (XML) > > descriptor that contains the FQN of the annotator class which is then > > instantiated via Class.forName(). > > As far as I've experienced this is not good when working within OSGi > > containers as each bundle uses a separate ClassLoader so, for example, > the > > ClassLoader of the uima.utils bundle cannot see the ClerezzaCASConsumer > > class in uima.casconsumer module by default. > > Luckily UIMA provides the possibility of defining an extension > ClassLoader > > when instantiating the framework. > > So the idea is to define an ExtensionClassLoader which registers the > > ClassLoaders of UIMA classes implementing AnalysisComponent interface > (that > > is the interface for Annotators and CAS Consumers) and use it within the > > creation of each AnalysisEngine. > > Each bundle which has annotator classes can automatically register its > > classes (in the ExtensionClassLoader) using an OSGi Activator (a > > UIMABundleActivator in the maven-bundle-plugin configuration) which is > > responsible for this task. > > > > Obviously in the future releases of UIMA with full OSGi support the above > > constraints could be safely removed. > > > > So my idea is to apply the above changes in order to allow easy deploy of > > custom UIMA pipelines within Clerezza. After that I think a brief > 'Getting > > started with Clerezza and UIMA' page would be useful. > > Looking forward to your feedback. > > Cheers, > > Tommaso > > > > [1] : http://uima.apache.org/downloads.cgi > > -- > Karin Verspoor, PhD > Research Assistant Professor > Computational Bioscience Program, University of Colorado School of Medicine > 12801 E 17th Ave, MS 8303, Aurora, CO 80045 USA > karin.verspoor@ucdenver.edu / tel: (720) 279-4875 / campus: 4-3758 > http://compbio.ucdenver.edu/Hunter_lab/Verspoor > > > > > > > > > > --000e0cd2e504d9c7c504abcf610d--