re: how to realize the scenarios illustrated in [1] could be implemented
using the External Configuration parameters? 

Here's the high level thoughts:

1) Implementor designs several "objects" that require configuration.  They 
decide on the configuration parameters, giving each of them unique names 
(perhaps using a kind of package-naming-scheme).

2) Key assumption:  These objects are to be UIMA Shared External Resources.  
This means that
 2a) there is one instance shared among many things
 2b) there might be multiple instances if "parameterized" versions of the 
     external resource are being used (e.g. dictionary, parameterized by 
language)

3) When a user puts a system together, it consists of a pipeline and a set of 
these external resources, and an external configuration settings (usually a 
file, but could be a computed Java Object, in general).

4) The framework runs; the external resources are created, some at 
initialization time (for the pipeline component that is declaring it), some at 
getResource( parameter) time, for parameterized resources (where, for instance 
you don't know the language until you get a CAS with a document and determine 
it).

5) When the resource code starts running, it sees that it needs to read its 
configuration parameters, so it gets the external settings object and reads 
whatever parameters it wants to, using its unique key names.

--------------
Missing from this scenario is one of the things UIMA (but not uimaFIT) can 
offer as a "feature" - the externalization into some metadata information about 
configuration parameters.  Note that this could be added - the external 
resource could make use of the resourcMetaData xml element to specify 
configuration parameter definitions.  The UIMA framework currently ignores 
these, but other tooling could make use of this, if it seems desirable.


Hoping that I've not overlooked some basic flaw,

-Marshall

On 10/19/2016 4:17 AM, Richard Eckart de Castilho wrote:
> Hi Marshall,
>
>> On 18.10.2016, at 23:28, Marshall Schor <m...@schor.com> wrote:
>>
>> Several Jiras talk about wanting external shared resources that can be
>> configured using the standard UIMA configuration settings and parameters.
>>
>> For example: https://issues.apache.org/jira/browse/UIMA-2979.
>>
>> Currently, there is one UIMA external resource descriptor that supports this,
>> which is the configurableDataResourceSpecifier.  It has a resourceMetaData
>> sub-element, which, in turn, has the configurationParameters and
>> configurationParameterSettings elements.
>>
>> There is an alternate, simpler approach to configuring external resources, 
>> now
>> available (as of UIMA 2.9.0) - using direct access to the External 
>> Configuration
>> parameters.  See section 2.4.3.5 in the UIMA Reference book.  The idea is 
>> that
>> each External Resource would define its own set of key-value parameter 
>> settings,
>> and retrieve them at run time.
> Could you comment how to realize the scenarios illustrated in [1] could be 
> implemented
> using the External Configuration parameters? The point in these scenarios is
> having complex (potentially nested) objects that are composed and used to 
> customize
> the behavior of one or more components. The objects take parameters and 
> contain logic.
>
> Best,
>
> -- Richard
>
> [1] 
> https://issues.apache.org/jira/browse/UIMA-2903?focusedCommentId=13708539&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13708539
>
>

Reply via email to