Ok, but I mean actually in code. How would it look like?

- how to specify one "object B" as a parameter to another "object A" and 
finally "object A" to a component?
- how to set non-String parameters?
- while setting parameters, how to disambiguate between multiple instances of a 
such a shared resource?

Cheers,

-- Richard

> On 19.10.2016, at 19:22, Marshall Schor <m...@schor.com> wrote:
> 
> 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