This Wiki page is for documenting the architecture of External Resources, to enable better informed decisions about changing or modifying this area of UIMA
Main use cases
There are several use cases motivating creating External Resources. An overriding one is to have UIMA make "easier" common patterns of use that are observed in applying UIMA.
Common Use Pattern - Loading and using data from files or URIs
This was probably the initial use case. Lifecycle: (optional) load (called during UIMA Pipeline initialize). Currently no "destroy".
Arbitrary interface to specify access, except if you want the "load" call, you have the implementation class include the SharedResourceObject interface, which has just the load(DataResource) method. DataResource is a sub interface of Resource
... to be continued ...