Interface AnalysisEngine
- All Superinterfaces:
CasObjectProcessor
,CasProcessor
,ConfigurableResource
,Resource
- All Known Subinterfaces:
TextAnalysisEngine
- All Known Implementing Classes:
AggregateAnalysisEngine_impl
,AnalysisEngineImplBase
,AnalysisEngineProcessorAdapter
,AnalysisEngineServiceAdapter
,CasProcessorAnnotator
,JCasProcessorAnnotator
,MultiprocessingAnalysisEngine_impl
,PearAnalysisEngineWrapper
,PrimitiveAnalysisEngine_impl
,UimacppAnalysisEngineImpl
,VinciAnalysisEngineServiceAdapter
An AnalysisEngine operates on an "analysis structure" (implemented by
CAS
). The CAS
contains the artifact to be processed as
well as semantic information already inferred from that artifact. The AnalysisEngine analyzes
this information and adds new information to the CAS
.
To create an instance of an Analysis Engine, an application should call
UIMAFramework.produceAnalysisEngine(ResourceSpecifier)
.
A typical application interacts with the Analysis Engine interface as follows:
- Call
newCAS()
to create a new Common Analysis System appropriate for this AnalysisEngine. - Use the
CAS
interface to populate theCAS
with the artifact to be analyzed any information known about this document (e.g. the language of a text document). - Optionally, create a
ResultSpecification
that identifies the results you would like this AnalysisEngine to generate (e.g. people, places, and dates), and call the {#linksetResultSpecification(ResultSpecification)
method. - Call
process(CAS)
- the AnalysisEngine will perform its analysis. - Retrieve the results from the
CAS
. - Call
CAS.reset()
to clear out theCAS
and prepare for processing a new artifact. - Repeat steps 2 through 6 for each artifact to be processed.
Important: It is highly recommended that you reuse CAS
objects rather than
calling newCAS()
prior to each analysis. This is because CAS
objects
may be expensive to create and may consume a significant amount of memory.
Instead of using the CAS
interface, applications may wish to use the Java-object-based
JCas
interface. In that case, the call to newCAS
from step 1 above would be
replaced by newJCas()
, and the process(JCas)
method would be used.
Analysis Engine implementations may or may not be capable of simultaneously processing multiple
documents in a multithreaded environment. See the documentation associated with the
implementation or factory method (e.g.
(UIMAFramework.produceAnalysisEngine(ResourceSpecifier)
) that you are
using.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
static final String
static final String
static final String
static final String
Deprecated.static final String
Key for the initialization parameter whose value is a String representing the prefix that will be added to all of the JMX MBean names that are generated by this AE (and its components, if it is an aggregate).static final String
Key for the initialization parameter whose value is a JMX MBeanServer instance, with which this AnalysisEngine will register an MBean that allows monitoring of the AE's performance through JMX.static final String
Key for the initialization parameter whose value is the number of simultaneous calls toprocess(CAS)
that will be supported.static final String
Deprecated.static final String
Sometimes Annotators may log excessively, causing problems in production settings.static final String
Key for the initialization parameter whose value is the maximum number of milliseconds to wait for a pooled object (seePARAM_NUM_SIMULTANEOUS_REQUESTS
) to become available to serve aprocess(CAS)
request.Fields inherited from interface org.apache.uima.resource.Resource
PARAM_AGGREGATE_SOFA_MAPPINGS, PARAM_CONFIG_MANAGER, PARAM_EXTERNAL_OVERRIDE_SETTINGS, PARAM_PERFORMANCE_TUNING_SETTINGS, PARAM_UIMA_CONTEXT
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Notifies this AnalysisEngine that processing of a batch has completed.void
Notifies this AnalysisEngine that processing of an entire collection has completed.A factory method used to create an instance ofResultSpecification
for use with this AnalysisEngine.createResultSpecification
(TypeSystem aTypeSystem) A factory method used to create an instance ofResultSpecification
for use with this AnalysisEngine.Gets the metadata that describes thisAnalysisEngine
.String[]
getFeatureNamesForType
(String aTypeName) Gets the names of the features that are defined on one of the CAS types that this AE inputs or outputs.Gets the Logger that this Analysis Engine is currently using.Gets an object that can be used to do monitoring or management of this AnalysisEngine.Gets the performance tuning settings in effect for this Analysis Engine.Gets theResourceManager
used by this AnalysisEngine.boolean
initialize
(ResourceSpecifier aSpecifier, Map<String, Object> aAdditionalParams) Initializes thisResource
from aResourceSpecifier
.newCAS()
Creates a new Common Analysis System appropriate for this Analysis Engine.newJCas()
void
process
(AnalysisProcessData aProcessData, ResultSpecification aResultSpec) Deprecated.This is no longer used by the framework and was never intended for users to call.Invokes this AnalysisEngine's analysis logic.process
(CAS aCAS, ResultSpecification aResultSpec) Invokes this AnalysisEngine's analysis logic.void
process
(CAS aCAS, ResultSpecification aResultSpec, ProcessTrace aTrace) Invokes this AnalysisEngine's analysis logic.Similar toprocess(CAS)
but uses the Java-object-basedJCas
interface instead of the generalCAS
interface.process
(JCas aJCas, ResultSpecification aResultSpec) Similar toprocess(CAS,ResultSpecification)
but uses the Java-object-basedJCas
interface instead of the generalCAS
interface.void
process
(JCas aJCas, ResultSpecification aResultSpec, ProcessTrace aTrace) Similar toprocess(CAS, ResultSpecification, ProcessTrace)
but uses the Java-object-basedJCas
interface instead of the generalCAS
interface.processAndOutputNewCASes
(CAS aCAS) Processes a CAS, possibly producing multiple CASes as a result.processAndOutputNewCASes
(JCas aJCAS) Processes a JCAS, possibly producing multiple JCASes as a result.void
Reconfigures this Resource using the most current parameter settings.void
Sets the Logger that this Analysis Engine will use.void
setResultSpecification
(ResultSpecification aResultSpec) Sets the list of output types and features that the application wants this AnalysisEngine to produce.Methods inherited from interface org.apache.uima.collection.base_cpm.CasObjectProcessor
processCas, processCas, typeSystemInit
Methods inherited from interface org.apache.uima.collection.base_cpm.CasProcessor
batchProcessComplete, collectionProcessComplete, getProcessingResourceMetaData, isReadOnly, isStateless
Methods inherited from interface org.apache.uima.resource.ConfigurableResource
getConfigParameterValue, getConfigParameterValue, setConfigParameterValue, setConfigParameterValue
Methods inherited from interface org.apache.uima.resource.Resource
destroy, getMetaData, getUimaContext, getUimaContextAdmin
-
Field Details
-
PARAM_RESOURCE_MANAGER
Deprecated.Key for the initialization parameter whose value is a reference to theResourceManager
that this AnalysisEngine should use. This value is used as a key in theaAdditionalParams
Map that is passed to theinitialize(ResourceSpecifier,Map)
method.- See Also:
- To be removed in version:
- 4.0.0
-
PARAM_CONFIG_PARAM_SETTINGS
Deprecated.Key for the initialization parameter whose value is aConfigurationParameterSettings
object that holds configuration settings that will be used to configure this AnalysisEngine, overriding any conflicting settings specified in this AnalysisEngine's Descriptor. This value is used as a key in theaAdditionalParams
Map that is passed to theinitialize(ResourceSpecifier,Map)
method.- See Also:
- To be removed in version:
- 4.0.0
-
PARAM_NUM_SIMULTANEOUS_REQUESTS
Key for the initialization parameter whose value is the number of simultaneous calls toprocess(CAS)
that will be supported. Analysis Engine implementations may use this to create a pool of objects (e.g. Annotators), each of which can process only one request at a time. Applications should be careful about setting this number higher than is necessary, since large pools of objects may increase initialization time and consume resources. Not all analysis engine implementations pay attention to this parameter.This value is used as a key in the
aAdditionalParams
Map that is passed to theinitialize(ResourceSpecifier,Map)
method.- See Also:
-
PARAM_TIMEOUT_PERIOD
Key for the initialization parameter whose value is the maximum number of milliseconds to wait for a pooled object (seePARAM_NUM_SIMULTANEOUS_REQUESTS
) to become available to serve aprocess(CAS)
request. If the processing has not begun within this time, an exception will be thrown. A value of zero will cause the AnalysisEngine to wait forever. Not all analysis* engine implementations pay attention to this parameter.This value is used as a key in the
aAdditionalParams
Map that is passed to theinitialize(ResourceSpecifier,Map)
method.- See Also:
-
PARAM_MBEAN_SERVER
Key for the initialization parameter whose value is a JMX MBeanServer instance, with which this AnalysisEngine will register an MBean that allows monitoring of the AE's performance through JMX. If this is null, the platform MBean Server (Java 1.5 only) will be used.This value is used as a key in the
aAdditionalParams
Map that is passed to theinitialize(ResourceSpecifier,Map)
method.- See Also:
-
PARAM_MBEAN_NAME_PREFIX
Key for the initialization parameter whose value is a String representing the prefix that will be added to all of the JMX MBean names that are generated by this AE (and its components, if it is an aggregate). This allows an application that has its own MBeans to control how the UIMA MBeans are organized relative to the application's own MBeans.The string must be a valid JMX MBean name (although a name with only a domain and no keys is permitted). See http://java.sun.com/j2se/1.5.0/docs/api/javax/management/ObjectName.html for details.
Examples of valid prefixes are:
- foo.bar:
- foo.bar:category=Stuff
- foo.bar:category=Stuff,type=UIMA
UIMA will append additional key,value pairs to this prefix. In particular, UIMA uses the key "name" (as the very last component of the MBean name), as well as the keys "p0","p1","p2",etc (to represent the chain of aggregates containing an AE). So the application may not use any of these keys in its prefix.
This value is used as a key in the
aAdditionalParams
Map that is passed to theinitialize(ResourceSpecifier,Map)
method.- See Also:
-
PARAM_THROTTLE_EXCESSIVE_ANNOTATOR_LOGGING
Sometimes Annotators may log excessively, causing problems in production settings. Although this could be controlled using logging configuration, sometimes when UIMA is embedded into other applications, you may not have easy access to modify those.For this case, this key specifies that throttling should be applied to messages produced by annotators using loggers obtained by Annotator code using the getLogger() API.
The value specified should be an integer, and is the number of messages allowed before logging is suppressed. This number is applied to each logging level, separately. To suppress all logging, use 0.
- See Also:
-
MDC_ANNOTATOR_IMPL_NAME
- See Also:
-
MDC_ANNOTATOR_CONTEXT_NAME
- See Also:
-
MDC_ROOT_CONTEXT_ID
- See Also:
-
MDC_CAS_ID
- See Also:
-
-
Method Details
-
initialize
boolean initialize(ResourceSpecifier aSpecifier, Map<String, Object> aAdditionalParams) throws ResourceInitializationExceptionInitializes thisResource
from aResourceSpecifier
. Applications do not need to call this method. It is called automatically by theResourceFactory
and cannot be called a second time.The
AnalysisEngine
interface defines several optional parameter that can be passed in theaAdditionalParams
Map - see thePARAM
constants on this interface.- Specified by:
initialize
in interfaceResource
- Parameters:
aSpecifier
- specifies how to create a resource or locate an existing resource service.aAdditionalParams
- a Map containing additional parameters. May benull
if there are no parameters. Each class that implements this interface can decide what additional parameters it supports.- Returns:
- true if and only if initialization completed successfully. Returns false if the given
ResourceSpecifier
is not of an appropriate type for this Resource. If theResourceSpecifier
is of an appropriate type but is invalid or if some other failure occurs, an exception should be thrown. - Throws:
ResourceInitializationException
- if a failure occurs during initialization.- See Also:
-
getAnalysisEngineMetaData
AnalysisEngineMetaData getAnalysisEngineMetaData()Gets the metadata that describes thisAnalysisEngine
. This is just a convenience method that callsResource.getMetaData()
and casts the result to aAnalysisEngineMetaData
.- Returns:
- an object containing all metadata for this AnalysisEngine
-
newCAS
Creates a new Common Analysis System appropriate for this Analysis Engine. An application can pre-populate this CAS, then pass it to theprocess(CAS)
method. Then, when the process method returns, the CAS will contain the results of the analysis.Important: CAS creation is expensive, so if at all possible an application should reuse CASes. When a CAS instance is no longer being used, call its
CAS.reset()
method, which will remove all prior analysis information, and then reuse that same CAS instance for another call toprocess(CAS)
.Note that the CAS allows multiple subjects of analysis (e.g. documents) and defines a separate "view" for each of them. If your application wants to work with a single subject of analysis, call the method
CAS.getCurrentView()
and operate on the returned view.- Returns:
- a new
CAS
appropriate for this AnalysisEngine. - Throws:
ResourceInitializationException
- if a CAS could not be created because this AnalysisEngine's CAS metadata (type system, type priorities, or FS indexes) are invalid. Ideally this would be checked at AnalysisEngine initialization time, and it will likely be moved in the future.
-
newJCas
Similar tonewCAS()
but wraps the new CAS objects with the Java-object-basedJCas
interface.Note: the JCas that is returned is equivalent to what you would get if you called
newCAS().getCurrentView().getJCas()
. That is, this method returns a view of the default Sofa, NOT a Base CAS.Important: CAS creation is expensive, so if at all possible an application should reuse CASes. When a JCas instance is no longer being used, call its
JCas.reset()
method, which will remove all prior analysis information, and then reuse that same JCas instance for another call toprocess(JCas)
.- Returns:
- a new
CAS
appropriate for this AnalysisEngine. - Throws:
ResourceInitializationException
- if a CAS could not be created because this AnalysisEngine's CAS metadata (type system, type priorities, or FS indexes) are invalid. Ideally this would be checked at AnalysisEngine initialization time, and it will likely be moved in the future.
-
process
ProcessTrace process(CAS aCAS, ResultSpecification aResultSpec) throws ResultNotSupportedException, AnalysisEngineProcessException Invokes this AnalysisEngine's analysis logic. Prior to calling this method, the caller must ensure that the CAS has been populated with the artifact to be analyzed as well as any inputs required by this AnalysisEngine (as defined by this AnalysisEngine'sCapability
specification.)This version of the
process
method takes aResultSpecification
as an argument. TheResultSpecification
is alist of output types and features that the application wants this AnalysisEngine to produce. If you are going to use the sameResultSpecification
for multiple calls toprocess
, it is not recommended to use this method. Instead callsetResultSpecification(ResultSpecification)
once and then callprocess(CAS)
for each CAS that you want to process.- Parameters:
aCAS
- the CAS containing the inputs to the processing. Analysis results will also be written to this CAS.aResultSpec
- a list of outputs that this AnalysisEngine should produce.- Returns:
- an object containing information about which AnalysisEngine components have executed and information, such as timing, about that execution.
- Throws:
ResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested inaResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.
-
process
Invokes this AnalysisEngine's analysis logic. Prior to calling this method, the caller must ensure that the CAS has been populated with the artifact to be analyzed as well as any inputs required by this AnalysisEngine (as defined by this AnalysisEngine'sCapability
specification.)This version of
process
does not take aResultSpecification
parameter. You may specify aResultSpecification
by callingsetResultSpecification(ResultSpecification)
prior to calling this method.- Parameters:
aCAS
- the CAS containing the inputs to the processing. Analysis results will also be written to this CAS.- Returns:
- an object containing information about which AnalysisEngine components have executed and information, such as timing, about that execution.
- Throws:
AnalysisEngineProcessException
- if a failure occurs during processing.
-
process
void process(CAS aCAS, ResultSpecification aResultSpec, ProcessTrace aTrace) throws ResultNotSupportedException, AnalysisEngineProcessException Invokes this AnalysisEngine's analysis logic. Prior to calling this method, the caller must ensure that the CAS has been populated with the artifact to be analyzed as well as any inputs required by this AnalysisEngine (as defined by this AnalysisEngine'sCapability
specification.)This version of the
process
method takes aResultSpecification
as an argument. TheResultSpecification
is a list of output types and features that the application wants this AnalysisEngine to produce. If you are going to use the sameResultSpecification
for multiple calls toprocess
, it is not recommended to use this method. Instead callsetResultSpecification(ResultSpecification)
once and then callprocess(CAS)
for each CAS that you want to process.This version of this method also takes a
ProcessTrace
object as a parameter. This allows trace events to be written to an existingProcessTrace
rather than a new one.- Parameters:
aCAS
- the CAS containing the inputs to the processing. Analysis results will also be written to this CAS.aResultSpec
- a list of outputs that this AnalysisEngine should produce.aTrace
- the object to which trace events will be recorded- Throws:
ResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested inaResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.
-
process
@Deprecated(since="2.3.1") void process(AnalysisProcessData aProcessData, ResultSpecification aResultSpec) throws ResultNotSupportedException, AnalysisEngineProcessException Deprecated.This is no longer used by the framework and was never intended for users to call. Use {#link #process(CAS)} instead.Invokes this AnalysisEngine's analysis logic. Prior to calling this method, the caller must ensure that the CAS has been populated with the artifact to be analyzed as well as any inputs required by this AnalysisEngine (as defined by this AnalysisEngine'sCapability
specification.)This version of this method is not normally used directly by applications. It is used to call Analysis Engines that are components within an aggregate Analysis Engine, so that they can share all information in the
AnalysisProcessData
object, which includes the CAS and the ProcessTrace.- Parameters:
aProcessData
- the data that will be modified during processing. This includes the CAS and the ProcessTrace.aResultSpec
- a list of outputs that this AnalysisEngine should produce. Anull
result specification is equivalent to a request for all possible results.- Throws:
ResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested inaResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.- To be removed in version:
- 4.0.0
-
process
Similar toprocess(CAS)
but uses the Java-object-basedJCas
interface instead of the generalCAS
interface.- Parameters:
aJCas
- the JCas containing the inputs to the processing. Analysis results will also be written to this JCas.- Returns:
- an object containing information about which AnalysisEngine components have executed and information, such as timing, about that execution.
- Throws:
AnalysisEngineProcessException
- if a failure occurs during processing.
-
process
ProcessTrace process(JCas aJCas, ResultSpecification aResultSpec) throws ResultNotSupportedException, AnalysisEngineProcessException Similar toprocess(CAS,ResultSpecification)
but uses the Java-object-basedJCas
interface instead of the generalCAS
interface.This version of the
process
method takes aResultSpecification
as an argument. TheResultSpecification
is a list of output types and features that the application wants this AnalysisEngine to produce. If you are going to use the sameResultSpecification
for multiple calls toprocess
, it is not recommended to use this method. Instead callsetResultSpecification(ResultSpecification)
once and then callprocess(JCas)
for each CAS that you want to process.- Parameters:
aJCas
- the JCas containing the inputs to the processing. Analysis results will also be written to this JCas.aResultSpec
- a list of outputs that this AnalysisEngine should produce.- Returns:
- an object containing information about which AnalysisEngine components have executed and information, such as timing, about that execution.
- Throws:
ResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested inaResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.
-
process
void process(JCas aJCas, ResultSpecification aResultSpec, ProcessTrace aTrace) throws ResultNotSupportedException, AnalysisEngineProcessException Similar toprocess(CAS, ResultSpecification, ProcessTrace)
but uses the Java-object-basedJCas
interface instead of the generalCAS
interface.This version of the
process
method takes aResultSpecification
as an argument. TheResultSpecification
is a list of output types and features that the application wants this AnalysisEngine to produce. If you are going to use the sameResultSpecification
for multiple calls toprocess
, it is not recommended to use this method. Instead callsetResultSpecification(ResultSpecification)
once and then callprocess(JCas)
for each CAS that you want to process.This version of this method also takes a
ProcessTrace
object as a parameter. This allows trace events to be written to an existingProcessTrace
rather than a new one.- Parameters:
aJCas
- the JCas containing the inputs to the processing. Analysis results will also be written to this JCas.aResultSpec
- a list of outputs that this AnalysisEngine should produce.aTrace
- the object to which trace events will be recorded- Throws:
ResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested inaResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.
-
processAndOutputNewCASes
Processes a CAS, possibly producing multiple CASes as a result. The application uses theCasIterator
interface to step through the output CASes.If this Analysis Engine does not produce output CASes, then the
CasIterator
will return no elements. You can check if an AnalysisEngine is capable of producing output CASes by checking theOperationalProperties.getOutputsNewCASes()
operational property (getAnalysisEngineMetaData().getOperationalProperties().getOutputsNewCASes()
).Once this method is called, the AnalysisEngine "owns"
aCAS
until such time as theCasIterator.hasNext()
method returns false. That is, the caller should not attempt to modify or access the input CAS until it has read all of the elements from the CasIterator. If the caller wants to abort the processing before having read all of the output CASes, it may callCasIterator.release()
, which will stop further processing from occurring, and ownership ofaCAS
will revert to the caller.- Parameters:
aCAS
- the CAS to be processed- Returns:
- an object for iterating through any output CASes
- Throws:
AnalysisEngineProcessException
- if a failure occurs during processing
-
processAndOutputNewCASes
Processes a JCAS, possibly producing multiple JCASes as a result. The application uses theJCasIterator
interface to step through the output JCASes.If this Analysis Engine does not produce output CASes, then the
CasIterator
will return no elements. You can check if an AnalysisEngine is capable of producing output CASes by checking theOperationalProperties.getOutputsNewCASes()
operational property (getAnalysisEngineMetaData().getOperationalProperties().getOutputsNewCASes()
).Once this method is called, the AnalysisEngine "owns"
aJCAS
until such time as theJCasIterator.hasNext()
method returns false. That is, the caller should not attempt to modify or access the input JCAS until it has read all of the elements from the JCasIterator. outputCASes, it may callJCasIterator.release()
, which will stop further processing from occurring, and ownership ofaJCAS
will revert to the caller.- Parameters:
aJCAS
- the JCAS to be processed- Returns:
- an object for iterating through any output JCASes
- Throws:
AnalysisEngineProcessException
- if a failure occurs during processing
-
batchProcessComplete
Notifies this AnalysisEngine that processing of a batch has completed. It is up to the caller to determine the size of a batch. Components (particularly CAS Consumers) inside this Analysis Engine may respond to this event, for example by writing data to the disk.- Throws:
AnalysisEngineProcessException
- if an exception occurs during processing
-
collectionProcessComplete
Notifies this AnalysisEngine that processing of an entire collection has completed. It is up to the caller to determine when this has occurred. Components (particularly CAS Consumers) inside this Analysis Engine may respond to this event, for example by writing data to the disk.If this AnalysisEngine is an aggregate, this method will call the collectionProcessComplete method of all components of that aggregate. If the aggregate descriptor declares a
fixedFlow
orcapabilityLanguageFlow
, then the components' collectionProcessComplete methods will be called in the order specified by that flow element. Once all components in the flow have been called, any components not declared in the flow will be called, in arbitrary order. If there is nofixedFlow
orcapabilityLanguageFlow
, then all components in the aggregate will be called in arbitrary order.- Throws:
AnalysisEngineProcessException
- if an exception occurs during processing
-
createResultSpecification
ResultSpecification createResultSpecification()A factory method used to create an instance of
ResultSpecification
for use with this AnalysisEngine. Applications use this method to constructResultSpecification
s to pass to this AnalysisEngine'ssetResultSpecification(ResultSpecification)
method.See also
createResultSpecification(TypeSystem)
which should be used if the type system associated with this result specification is known at this point in time.- Returns:
- a new instance of
ResultSpecification
-
createResultSpecification
A factory method used to create an instance ofResultSpecification
for use with this AnalysisEngine. Applications use this method to constructResultSpecification
s to pass to this AnalysisEngine'ssetResultSpecification(ResultSpecification)
method.- Parameters:
aTypeSystem
- the type system- Returns:
- a new instance of
ResultSpecification
-
getResourceManager
ResourceManager getResourceManager()Gets theResourceManager
used by this AnalysisEngine.- Specified by:
getResourceManager
in interfaceResource
- Returns:
- this AnalysisEngine's ResourceManager
-
reconfigure
Reconfigures this Resource using the most current parameter settings. Calls toConfigurableResource.setConfigParameterValue(String,String,Object)
do not take effect until this method is called.If this is an aggregate Analysis Engine, configuration parameter settings will be "pushed down" to delegate Analysis Engines that also declare those parameters. All annotators will be informed of the change by a call to their
BaseAnnotator.reconfigure()
methods.- Specified by:
reconfigure
in interfaceConfigurableResource
- Throws:
ResourceConfigurationException
- if the configuration is not valid
-
getLogger
Logger getLogger()Gets the Logger that this Analysis Engine is currently using. -
setLogger
Sets the Logger that this Analysis Engine will use. If this method is not called, the default logger (UIMAFramework.getLogger()
) will be used. -
getFeatureNamesForType
Gets the names of the features that are defined on one of the CAS types that this AE inputs or outputs. When a AE's capabilities are declared withallAnnotatorFeatures == true
, this method can be used to determine all of the feature names.- Parameters:
aTypeName
- type for which to get features- Returns:
- an array of feature names. If
aTypeName
is not defined,null
will be returned.
-
getPerformanceTuningSettings
Properties getPerformanceTuningSettings()Gets the performance tuning settings in effect for this Analysis Engine.- Returns:
- performance tuning settings
-
setResultSpecification
Sets the list of output types and features that the application wants this AnalysisEngine to produce. This is only a guideline. Annotators may use this information to avoid doing unnecessary work, but they are not required to do so.- Parameters:
aResultSpec
- specifies the list of output types and features that the application is interested in.
-
getManagementInterface
AnalysisEngineManagement getManagementInterface()Gets an object that can be used to do monitoring or management of this AnalysisEngine.- Returns:
- an object exposing a management interface to this AE
-
Resource.PARAM_CONFIG_PARAM_SETTINGS