uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hugo Mougard <...@crydee.eu>
Subject Re: Acces external resource outside of an AE
Date Wed, 25 Jun 2014 17:04:18 GMT
Thank you Richard for the precious help. Indeed, simplifying UIMA is a 
big selling point of uimaFIT, I wasn't complaining :)

Best,
Hugo

Le 2014-06-25 18:23, Richard Eckart de Castilho a écrit :
> Hello Hugo,
>
> the resource is not stored in the resource manager under the name
> that you specify, but under a "qualified name" that consists of the
> qualified context name and the resource key to which the resource is
> bound.
>
> The proper way to access the resource after the execution would be
> through the UIMAContext of the AE, e.g.
>
>     AnalysisEngine ae = createEngine(
>             DummyAE3.class,
>             DummyAE3.RES_KEY_1, createExternalResourceDescription(
>                     "lala", AnnotatedResource.class,
>                     AnnotatedResource.PARAM_VALUE, "1"));
>
>     ... = ae.getUimaContext().getResourceObject(DummyAE3.RES_KEY_1);
>
> The alternative would be to manually construct the qualified name,
> which then would go like this:
>
>    ... = ae.getResourceManager().getResource(
>             ae.getUimaContextAdmin().getQualifiedContextName() +
> DummyAE3.RES_KEY_1);
>
> Sure, uimaFIT ( mind capitalization ;) ) does hide a lot of the
> details - that's the point!
>
> But the names under which resources are stored in the resource
> manager is determined by the UIMA core:
>
> The ResourceManager_Impl has multiple internal lookup tables. The one
> used for getResource() uses these qualified names and a resource can
> appear in there multiple times, bound to multiple qualified names
> (multiple AEs). There is another lookp table called
> mInternalResourceRegistrationMap in which each resource appears only
> once under the name that you can optionally specify in the
> createExternalResourceDescription call (here "lala"). However, that
> table is very unfortunately not accessible.
>
> Cheers,
>
> -- Richard
>
> On 25.06.2014, at 09:37, Hugo Mougard <mog@crydee.eu> wrote:
>
>> Dear UIMA list,
>>
>> I've read the different tutorials about resources a couple of times 
>> but haven't found a straightforward way to accomplish what I'm trying 
>> to do.
>>
>> Using UIMAfit, I declare a resource and use it in several AEs, 
>> through a SimplePipeline. Once the processing is done, I'd like to 
>> access that resource (it's some kind of HashMap on steroids). 
>> Accessing it in onCollectionProcessComplete is not enough for me here, 
>> because I run several of such pipelines and need the results of all of 
>> them to obtain the information I'm interested in.
>>
>> I've tried accessing it with
>>
>>    myAe.getResourceManager().getResource("resName");
>>
>> where resName is the name I gave it when declaring it with 
>> createExternalResourceDescription.
>>
>> However this NPEs and I'm not sure how to proceed from there. It 
>> seems UIMAfit is hiding a lot of details of the original UIMA resource 
>> management so I may very well just have missed some very important 
>> concept, if so please enlighten me :)
>>
>> Cheers,
>> Hugo


Mime
View raw message