You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by tw...@apache.org on 2008/06/13 09:34:04 UTC

svn commit: r667395 [1/2] - in /incubator/uima/uimaj/trunk/uima-docbooks/src: docbook/tutorials_and_users_guides/tug.application.xml olink/tutorials_and_users_guides/htmlsingle-target.db olink/tutorials_and_users_guides/pdf-target.db

Author: twgoetz
Date: Fri Jun 13 00:34:04 2008
New Revision: 667395

URL: http://svn.apache.org/viewvc?rev=667395&view=rev
Log:
Jira UIMA-1068: add documentation on performance tuning settings.

https://issues.apache.org/jira/browse/UIMA-1068

Modified:
    incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/tug.application.xml
    incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db
    incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/pdf-target.db

Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/tug.application.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/tug.application.xml?rev=667395&r1=667394&r2=667395&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/tug.application.xml (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/tug.application.xml Fri Jun 13 00:34:04 2008
@@ -1793,8 +1793,93 @@
       should register the MBeans.  If no specified then the default is to register with
       the platform MBeanServer (Java 5+ only).</para>
         
-    <para>For information on JMX can be found in the <ulink
+    <para>More information on JMX can be found in the <ulink
         url="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/package-summary.html#package_description">
       Java 5 documentation</ulink>.</para>    
-  </section>
+  </section>
+  
+  <section id="tug.application.pto">
+  <title>Performance Tuning Options</title>
+
+  <para>
+  	There is a small number of performance tuning options available to
+  	influence the runtime behavior of UIMA applications. Performance
+  	tuning options need to be set programmatically when an analysis
+  	engine is created. You simply create a Java Properties object with
+  	the relevant options and pass it to the UIMA framework on the call
+  	to create an analysis engine. Below is an example.
+  	
+  	<programlisting>
+  	  XMLParser parser = UIMAFramework.getXMLParser();
+      ResourceSpecifier spec = parser.parseResourceSpecifier(
+            new XMLInputSource(descriptorFile));
+      // Create a new properties object to hold the settings.
+      Properties performanceTuningSettings = new Properties();
+      // Set the initial CAS heap size.
+      performanceTuningSettings.setProperty(
+            UIMAFramework.CAS_INITIAL_HEAP_SIZE, 
+            "1000000");
+      // Disable JCas cache.
+      performanceTuningSettings.setProperty(
+            UIMAFramework.JCAS_CACHE_ENABLED, 
+            "false");
+      // Create a wrapper properties object that can
+      // be passed to the framework.
+      Properties additionalParams = new Properties();
+      // Set the performance tuning properties as value to
+      // the appropriate parameter.
+      additionalParams.put(
+            Resource.PARAM_PERFORMANCE_TUNING_SETTINGS, 
+            performanceTuningSettings);
+      // Create the analysis engine with the parameters.
+      // The second, unused argument here is a custom 
+      // resource manager.
+      this.ae = UIMAFramework.produceAnalysisEngine(
+          spec, null, additionalParams);
+  	
+  	</programlisting>
+  </para>
+  
+  <para>
+  The following options are supported:
+  <itemizedlist>
+  <listitem>
+  <para><literal>UIMAFramework.JCAS_CACHE_ENABLED</literal>: allows you to disable
+  the JCas cache (true/false).  The JCas cache is an internal datastructure that caches any JCas 
+  object created
+  by the CAS.  This may result in better performance for applications that make extensive use of
+  the JCas, but also incurs a steep memory overhead.  If you're processing large documents and have
+  memory issues, you should disable this option.  In general, just try running a few experiments to
+  see what setting works better for your application.  The JCas cache is enabled by default.  
+  </para>
+  </listitem>
+  <listitem>
+  <para><literal>UIMAFramework.CAS_INITIAL_HEAP_SIZE</literal>: set the initial CAS heap size in
+  number of cells (integer valued).  The CAS uses 32bit integer cells, so four times the initial 
+  size is the
+  approximate minimum size of the CAS in bytes.  This is another space/time trade-off as growing
+  the CAS heap is relatively expensive.  On the other hand, setting the initial size too high is
+  wasting memory.  Unless you know you are processing very small or very large documents, you should
+  probably leave this option unchanged.
+  </para>
+  </listitem>
+  <listitem>
+  <para><literal>UIMAFramework.PROCESS_TRACE_ENABLED</literal>: enable the process trace mechanism
+  (true/false).  When enabled, UIMA tracks the time spent in individual components of an aggregate 
+  AE or CPE.  For more information, see the API documentation of 
+  <literal>org.apache.uima.util.ProcessTrace</literal>.
+  </para>
+  </listitem>
+  <listitem>
+  <para><literal>UIMAFramework.SOCKET_KEEPALIVE_ENABLED</literal>: enable socket KeepAlive
+  (true/false).  This setting is currently only supported by Vinci clients.  Defaults to 
+  <literal>true</literal>.
+  </para>
+  </listitem>
+  </itemizedlist>
+  </para>
+  
+
+  </section>
+  
 </chapter>
\ No newline at end of file

Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db?rev=667395&r1=667394&r2=667395&view=diff
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db Fri Jun 13 00:34:04 2008
@@ -4,6 +4,6 @@
       Initializers</ttl><xreftext>Section 2.4.2, “Developing CAS
       Initializers”</xreftext></div><div element="section" href="#ugr.tug.cpe.cas_consumer.developing" number="2.4.3" targetptr="ugr.tug.cpe.cas_consumer.developing"><ttl>Developing CAS
       Consumers</ttl><xreftext>Section 2.4.3, “Developing CAS
-      Consumers”</xreftext><div element="section" href="#ugr.tug.cpe.cas_consumer.required_methods" number="2.4.3.1" targetptr="ugr.tug.cpe.cas_consumer.required_methods"><ttl>Required Methods for a CAS Consumer</ttl><xreftext>Section 2.4.3.1, “Required Methods for a CAS Consumer”</xreftext><div element="section" href="#ugr.tug.cpe.cas_consumer.required_methods.initialize" number="" targetptr="ugr.tug.cpe.cas_consumer.required_methods.initialize"><ttl>initialize()</ttl><xreftext>the section called “initialize()”</xreftext></div><div element="section" href="#ugr.tug.cpe.cas_consumer.required_methods.processcas" number="" targetptr="ugr.tug.cpe.cas_consumer.required_methods.processcas"><ttl>processCas()</ttl><xreftext>the section called “processCas()”</xreftext></div><div element="section" href="#ugr.tug.cpe.cas_consumer.optional_methods" number="" targetptr="ugr.tug.cpe.cas_consumer.optional_methods"><ttl>Optional Methods</ttl><xreftext>t
 he section called “Optional Methods”</xreftext><div element="section" href="#ugr.tug.cpe.cas_consumer.optional_methods.batchprocesscomplete" number="" targetptr="ugr.tug.cpe.cas_consumer.optional_methods.batchprocesscomplete"><ttl>batchProcessComplete()</ttl><xreftext>the section called “batchProcessComplete()”</xreftext></div><div element="section" href="#ugr.tug.cpe.cas_consumer.optional_methods.collectionprocesscomplete" number="" targetptr="ugr.tug.cpe.cas_consumer.optional_methods.collectionprocesscomplete"><ttl>collectionProcessComplete()</ttl><xreftext>the section called “collectionProcessComplete()”</xreftext></div></div></div></div></div><div element="section" href="#ugr.tug.cpe.deploying_a_cpe" number="2.5" targetptr="ugr.tug.cpe.deploying_a_cpe"><ttl>Deploying a CPE</ttl><xreftext>Section 2.5, “Deploying a CPE”</xreftext><obj element="figure" href="#ugr.tug.cpe.fig.cpe_instantiation" number="2.2" targetptr="ugr.tug.cpe.fi
 g.cpe_instantiation"><ttl>CPE Instantiation</ttl><xreftext>Figure 2.2, “CPE Instantiation”</xreftext></obj><obj element="para" href="#ugr.tug.cpe.deployment_alternatives" number="" targetptr="ugr.tug.cpe.deployment_alternatives"><ttl>???TITLE???</ttl><xreftext>Section 2.5, “Deploying a CPE”</xreftext></obj><div element="section" href="#ugr.tug.cpe.managed_deployment" number="2.5.1" targetptr="ugr.tug.cpe.managed_deployment"><ttl>Deploying Managed CAS Processors</ttl><xreftext>Section 2.5.1, “Deploying Managed CAS Processors”</xreftext><obj element="figure" href="#ugr.tug.cpe.fig.managed_deployment" number="2.3" targetptr="ugr.tug.cpe.fig.managed_deployment"><ttl>CPE with Managed CAS Processors</ttl><xreftext>Figure 2.3, “CPE with Managed CAS Processors”</xreftext></obj></div><div element="section" href="#ugr.tug.cpe.deploying_nonmanaged_cas_processors" number="2.5.2" targetptr="ugr.tug.cpe.deploying_nonmanaged_cas_processor
 s"><ttl>Deploying Non-managed CAS Processors</ttl><xreftext>Section 2.5.2, “Deploying Non-managed CAS Processors”</xreftext><obj element="figure" href="#ugr.tug.cpe.fig.nonmanaged_cpe" number="2.4" targetptr="ugr.tug.cpe.fig.nonmanaged_cpe"><ttl>CPE with non-managed CAS Processors</ttl><xreftext>Figure 2.4, “CPE with non-managed CAS Processors”</xreftext></obj></div><div element="section" href="#ugr.tug.cpe.integrated_deployment" number="2.5.3" targetptr="ugr.tug.cpe.integrated_deployment"><ttl>Deploying Integrated CAS Processors</ttl><xreftext>Section 2.5.3, “Deploying Integrated CAS Processors”</xreftext><obj element="figure" href="#ugr.tug.cpe.fig.integrated_deployment" number="2.5" targetptr="ugr.tug.cpe.fig.integrated_deployment"><ttl>CPE with integrated CAS Processor</ttl><xreftext>Figure 2.5, “CPE with integrated CAS Processor”</xreftext></obj></div></div><div element="section" href="#ugr.tug.cpe.collection_processin
 g_examples" number="2.6" targetptr="ugr.tug.cpe.collection_processing_examples"><ttl>Collection Processing Examples</ttl><xreftext>Section 2.6, “Collection Processing Examples”</xreftext></div></div><div element="chapter" href="#ugr.tug.application" number="3" targetptr="ugr.tug.application"><ttl>Application Developer's Guide</ttl><xreftext>Chapter 3, <i xmlns:xlink="http://www.w3.org/1999/xlink">Application Developer's Guide</i></xreftext><div element="section" href="#ugr.tug.appication.uimaframework_class" number="3.1" targetptr="ugr.tug.appication.uimaframework_class"><ttl>The UIMAFramework Class</ttl><xreftext>Section 3.1, “The UIMAFramework Class”</xreftext></div><div element="section" href="#ugr.tug.application.using_aes" number="3.2" targetptr="ugr.tug.application.using_aes"><ttl>Using Analysis Engines</ttl><xreftext>Section 3.2, “Using Analysis Engines”</xreftext><div element="section" href="#ugr.tug.application.instantiating
 _an_ae" number="3.2.1" targetptr="ugr.tug.application.instantiating_an_ae"><ttl>Instantiating an Analysis Engine</ttl><xreftext>Section 3.2.1, “Instantiating an Analysis Engine”</xreftext></div><div element="section" href="#ugr.tug.application.analyzing_text_documents" number="3.2.2" targetptr="ugr.tug.application.analyzing_text_documents"><ttl>Analyzing Text Documents</ttl><xreftext>Section 3.2.2, “Analyzing Text Documents”</xreftext></div><div element="section" href="#ugr.tug.applications.analyzing_non_text_artifacts" number="3.2.3" targetptr="ugr.tug.applications.analyzing_non_text_artifacts"><ttl>Analyzing Non-Text Artifacts</ttl><xreftext>Section 3.2.3, “Analyzing Non-Text Artifacts”</xreftext></div><div element="section" href="#ugr.tug.applications.accessing_analysis_results" number="3.2.4" targetptr="ugr.tug.applications.accessing_analysis_results"><ttl>Accessing Analysis Results</ttl><xreftext>Section 3.2.4, “Accessing A
 nalysis Results”</xreftext><div element="section" href="#ugr.tug.applications.accessing_results_using_jcas" number="3.2.4.1" targetptr="ugr.tug.applications.accessing_results_using_jcas"><ttl>Accessing Analysis Results using the JCas</ttl><xreftext>Section 3.2.4.1, “Accessing Analysis Results using the JCas”</xreftext></div><div element="section" href="#ugr.tug.application.accessing_results_using_cas" number="3.2.4.2" targetptr="ugr.tug.application.accessing_results_using_cas"><ttl>Accessing Analysis Results using the CAS</ttl><xreftext>Section 3.2.4.2, “Accessing Analysis Results using the CAS”</xreftext></div></div><div element="section" href="#ugr.tug.applications.multi_threaded" number="3.2.5" targetptr="ugr.tug.applications.multi_threaded"><ttl>Multi-threaded Applications</ttl><xreftext>Section 3.2.5, “Multi-threaded Applications”</xreftext></div><div element="section" href="#ugr.tug.application.using_multiple_aes" number="3.2
 .6" targetptr="ugr.tug.application.using_multiple_aes"><ttl>Using Multiple Analysis Engines and Creating Shared CASes</ttl><xreftext>Section 3.2.6, “Multiple AEs &amp; Creating Shared CASes”</xreftext></div><div element="section" href="#ugr.tug.application.saving_cases_to_file_systems" number="3.2.7" targetptr="ugr.tug.application.saving_cases_to_file_systems"><ttl>Saving CASes to file systems</ttl><xreftext>Section 3.2.7, “Saving CASes to file systems”</xreftext></div></div><div element="section" href="#ugr.tug.application.using_cpes" number="3.3" targetptr="ugr.tug.application.using_cpes"><ttl>Using Collection Processing Engines</ttl><xreftext>Section 3.3, “Using Collection Processing Engines”</xreftext><div element="section" href="#ugr.tug.application.running_a_cpe_from_a_descriptor" number="3.3.1" targetptr="ugr.tug.application.running_a_cpe_from_a_descriptor"><ttl>Running a Collection Processing Engine from a Descriptor</ttl><xreft
 ext>Section 3.3.1, “Running a CPE from a Descriptor”</xreftext></div><div element="section" href="#ugr.tug.application.configuring_a_cpe_descriptor_programmatically" number="3.3.2" targetptr="ugr.tug.application.configuring_a_cpe_descriptor_programmatically"><ttl>Configuring a Collection Processing Engine Descriptor Programmatically</ttl><xreftext>Section 3.3.2, “Configuring a CPE Descriptor Programmatically”</xreftext></div></div><div element="section" href="#ugr.tug.application.setting_configuration_parameters" number="3.4" targetptr="ugr.tug.application.setting_configuration_parameters"><ttl>Setting Configuration Parameters</ttl><xreftext>Section 3.4, “Setting Configuration Parameters”</xreftext></div><div element="section" href="#ugr.tug.application.integrating_text_analysis_and_search" number="3.5" targetptr="ugr.tug.application.integrating_text_analysis_and_search"><ttl>Integrating Text Analysis and Search</ttl><xreftext>SectionÂ
  3.5, “Integrating Text Analysis and Search”</xreftext><div element="section" href="#ugr.tug.application.building_an_index" number="3.5.1" targetptr="ugr.tug.application.building_an_index"><ttl>Building an Index</ttl><xreftext>Section 3.5.1, “Building an Index”</xreftext><div element="section" href="#ugr.tug.application.search.configuring_indexer" number="3.5.1.1" targetptr="ugr.tug.application.search.configuring_indexer"><ttl>Configuring the Semantic Search CAS Indexer</ttl><xreftext>Section 3.5.1.1, “Configuring the Semantic Search CAS Indexer”</xreftext></div><div element="section" href="#ugr.tug.application.search.cpe_with_semantic_search_cas_consumer" number="3.5.1.2" targetptr="ugr.tug.application.search.cpe_with_semantic_search_cas_consumer"><ttl>Building and Running a CPE including the Semantic Search CAS Indexer</ttl><xreftext>Section 3.5.1.2, “Using Semantic Search CAS Indexer”</xreftext></div></div><div element="se
 ction" href="#ugr.tug.application.search.query_tool" number="3.5.2" targetptr="ugr.tug.application.search.query_tool"><ttl>Semantic Search Query Tool</ttl><xreftext>Section 3.5.2, “Semantic Search Query Tool”</xreftext></div></div><div element="section" href="#ugr.tug.application.remote_services" number="3.6" targetptr="ugr.tug.application.remote_services"><ttl>Working with Remote Services</ttl><xreftext>Section 3.6, “Working with Remote Services”</xreftext><div element="section" href="#ugr.tug.application.how_to_deploy_as_soap" number="3.6.1" targetptr="ugr.tug.application.how_to_deploy_as_soap"><ttl>Deploying a UIMA Component as a SOAP Service</ttl><xreftext>Section 3.6.1, “Deploying as SOAP Service”</xreftext></div><div element="section" href="#ugr.tug.application.how_to_deploy_a_vinci_service" number="3.6.2" targetptr="ugr.tug.application.how_to_deploy_a_vinci_service"><ttl>Deploying a UIMA Component as a Vinci Service</ttl><xreftex
 t>Section 3.6.2, “Deploying as a Vinci Service”</xreftext></div><div element="section" href="#ugr.tug.application.how_to_call_a_uima_service" number="3.6.3" targetptr="ugr.tug.application.how_to_call_a_uima_service"><ttl>How to Call a UIMA Service</ttl><xreftext>Section 3.6.3, “Calling a UIMA Service”</xreftext><div element="section" href="#ugr.tug.application.soap_service_client_descriptor" number="3.6.3.1" targetptr="ugr.tug.application.soap_service_client_descriptor"><ttl>SOAP Service Client Descriptor</ttl><xreftext>Section 3.6.3.1, “SOAP Service Client Descriptor”</xreftext></div><div element="section" href="#ugr.tug.application.vinci_service_client_descriptor" number="3.6.3.2" targetptr="ugr.tug.application.vinci_service_client_descriptor"><ttl>Vinci Service Client Descriptor</ttl><xreftext>Section 3.6.3.2, “Vinci Service Client Descriptor”</xreftext></div></div><div element="section" href="#ugr.tug.application.restri
 ctions_on_remotely_deployed_services" number="3.6.4" targetptr="ugr.tug.application.restrictions_on_remotely_deployed_services"><ttl>Restrictions on remotely deployed services</ttl><xreftext>Section 3.6.4, “Restrictions on remotely deployed services”</xreftext></div><div element="section" href="#ugr.tug.application.vns" number="3.6.5" targetptr="ugr.tug.application.vns"><ttl>The Vinci Naming Services (VNS)</ttl><xreftext>Section 3.6.5, “The Vinci Naming Services (VNS)”</xreftext><div element="section" href="#ugr.tug.application.vns.starting" number="3.6.5.1" targetptr="ugr.tug.application.vns.starting"><ttl>Starting VNS</ttl><xreftext>Section 3.6.5.1, “Starting VNS”</xreftext></div><div element="section" href="#ugr.tug.application.vns_files" number="3.6.5.2" targetptr="ugr.tug.application.vns_files"><ttl>VNS Files</ttl><xreftext>Section 3.6.5.2, “VNS Files”</xreftext></div><div element="section" href="#ugr.tug.application.l
 aunching_vinci_services" number="3.6.5.3" targetptr="ugr.tug.application.launching_vinci_services"><ttl>Launching Vinci Services</ttl><xreftext>Section 3.6.5.3, “Launching Vinci Services”</xreftext></div></div><div element="section" href="#ugr.tug.configuring_timeout_settings" number="3.6.6" targetptr="ugr.tug.configuring_timeout_settings"><ttl>Configuring Timeout Settings</ttl><xreftext>Section 3.6.6, “Configuring Timeout Settings”</xreftext><div element="section" href="#ugr.tug.setting_client_timeout" number="3.6.6.1" targetptr="ugr.tug.setting_client_timeout"><ttl>Setting the Client Timeout</ttl><xreftext>Section 3.6.6.1, “Setting the Client Timeout”</xreftext></div><div element="section" href="#ugr.tug.setting_server_socket_timeout" number="3.6.6.2" targetptr="ugr.tug.setting_server_socket_timeout"><ttl>Setting the Server Socket Timeout</ttl><xreftext>Section 3.6.6.2, “Setting the Server Socket Timeout”</xreftext></div>
 </div></div><div element="section" href="#ugr.tug.application.increasing_performance_using_parallelism" number="3.7" targetptr="ugr.tug.application.increasing_performance_using_parallelism"><ttl>Increasing performance using parallelism</ttl><xreftext>Section 3.7, “Increasing performance using parallelism”</xreftext></div><div element="section" href="#ugr.tug.application.jmx" number="3.8" targetptr="ugr.tug.application.jmx"><ttl>Monitoring AE Performance using JMX</ttl><xreftext>Section 3.8, “Monitoring AE Performance using JMX”</xreftext></div></div><div element="chapter" href="#ugr.tug.fc" number="4" targetptr="ugr.tug.fc"><ttl>Flow Controller Developer's Guide</ttl><xreftext>Chapter 4, <i xmlns:xlink="http://www.w3.org/1999/xlink">Flow Controller Developer's Guide</i></xreftext><div element="section" href="#ugr.tug.fc.developing_fc_code" number="4.1" targetptr="ugr.tug.fc.developing_fc_code"><ttl>Developing the Flow Controller Code</ttl><xrefte
 xt>Section 4.1, “Developing the Flow Controller Code”</xreftext><div element="section" href="#ugr.tug.fc.fc_interface_overview" number="4.1.1" targetptr="ugr.tug.fc.fc_interface_overview"><ttl>Flow Controller Interface Overview</ttl><xreftext>Section 4.1.1, “Flow Controller Interface Overview”</xreftext></div><div element="section" href="#ugr.tug.fc.example_code" number="4.1.2" targetptr="ugr.tug.fc.example_code"><ttl>Example Code</ttl><xreftext>Section 4.1.2, “Example Code”</xreftext><div element="section" href="#ugr.tug.fc.whiteboard" number="4.1.2.1" targetptr="ugr.tug.fc.whiteboard"><ttl>The WhiteboardFlowController Class</ttl><xreftext>Section 4.1.2.1, “The WhiteboardFlowController Class”</xreftext></div><div element="section" href="#ugr.tug.fc.whiteboardflow" number="4.1.2.2" targetptr="ugr.tug.fc.whiteboardflow"><ttl>The WhiteboardFlow Class</ttl><xreftext>Section 4.1.2.2, “The WhiteboardFlow Class”</xre
 ftext></div></div></div><div element="section" href="#ugr.tug.fc.creating_fc_descriptor" number="4.2" targetptr="ugr.tug.fc.creating_fc_descriptor"><ttl>Creating the Flow Controller Descriptor</ttl><xreftext>Section 4.2, “Creating the Flow Controller Descriptor”</xreftext></div><div element="section" href="#ugr.tug.fc.adding_fc_to_aggregate" number="4.3" targetptr="ugr.tug.fc.adding_fc_to_aggregate"><ttl>Adding a Flow Controller to an Aggregate Analysis Engine</ttl><xreftext>Section 4.3, “Adding Flow Controller to an Aggregate”</xreftext></div><div element="section" href="#ugr.tug.fc.adding_fc_to_cpe" number="4.4" targetptr="ugr.tug.fc.adding_fc_to_cpe"><ttl>Adding a Flow Controller to a Collection Processing Engine</ttl><xreftext>Section 4.4, “Adding Flow Controller to CPE”</xreftext></div><div element="section" href="#ugr.tug.fc.using_fc_with_cas_multipliers" number="4.5" targetptr="ugr.tug.fc.using_fc_with_cas_multipliers"><ttl>Using
  Flow Controllers with CAS Multipliers</ttl><xreftext>Section 4.5, “Using Flow Controllers with CAS Multipliers”</xreftext></div><div element="section" href="#ugr.tug.fc.continuing_when_exceptions_occur" number="4.6" targetptr="ugr.tug.fc.continuing_when_exceptions_occur"><ttl>Continuing the Flow When Exceptions Occur</ttl><xreftext>Section 4.6, “Continuing the Flow When Exceptions Occur”</xreftext></div></div><div element="chapter" href="#ugr.tug.aas" number="5" targetptr="ugr.tug.aas"><ttl>Annotations, Artifacts, and Sofas</ttl><xreftext>Chapter 5, <i xmlns:xlink="http://www.w3.org/1999/xlink">Annotations, Artifacts, and Sofas</i></xreftext><div element="section" href="#ugr.tug.aas.terminology" number="5.1" targetptr="ugr.tug.aas.terminology"><ttl>Terminology</ttl><xreftext>Section 5.1, “Terminology”</xreftext><div element="section" href="#ugr.tug.aas.artifact" number="5.1.1" targetptr="ugr.tug.aas.artifact"><ttl>Artifact</ttl><xre
 ftext>Section 5.1.1, “Artifact”</xreftext></div><div element="section" href="#ugr.tug.aas.sofa" number="5.1.2" targetptr="ugr.tug.aas.sofa"><ttl>Subject of Analysis — Sofa</ttl><xreftext>Section 5.1.2, “Subject of Analysis — Sofa”</xreftext></div></div><div element="section" href="#ugr.tug.aas.sofa_data_formats" number="5.2" targetptr="ugr.tug.aas.sofa_data_formats"><ttl>Formats of Sofa Data</ttl><xreftext>Section 5.2, “Formats of Sofa Data”</xreftext></div><div element="section" href="#ugr.tug.aas.setting_accessing_sofa_data" number="5.3" targetptr="ugr.tug.aas.setting_accessing_sofa_data"><ttl>Setting and Accessing Sofa Data</ttl><xreftext>Section 5.3, “Setting and Accessing Sofa Data”</xreftext><div element="section" href="#ugr.tug.aas.setting_sofa_data" number="5.3.1" targetptr="ugr.tug.aas.setting_sofa_data"><ttl>Setting Sofa Data</ttl><xreftext>Section 5.3.1, “Setting Sofa Data”</xreftext></div>
 <div element="section" href="#ugr.tug.aas.accessing_sofa_data" number="5.3.2" targetptr="ugr.tug.aas.accessing_sofa_data"><ttl>Accessing Sofa Data</ttl><xreftext>Section 5.3.2, “Accessing Sofa Data”</xreftext></div><div element="section" href="#ugr.tug.aas.accessing_sofa_data_using_java_stream" number="5.3.3" targetptr="ugr.tug.aas.accessing_sofa_data_using_java_stream"><ttl>Accessing Sofa Data using a Java Stream</ttl><xreftext>Section 5.3.3, “Accessing Sofa Data using a Java Stream”</xreftext></div></div><div element="section" href="#ugr.tug.aas.sofa_fs" number="5.4" targetptr="ugr.tug.aas.sofa_fs"><ttl>The Sofa Feature Structure</ttl><xreftext>Section 5.4, “The Sofa Feature Structure”</xreftext></div><div element="section" href="#ugr.tug.aas.annotations" number="5.5" targetptr="ugr.tug.aas.annotations"><ttl>Annotations</ttl><xreftext>Section 5.5, “Annotations”</xreftext><div element="section" href="#ugr.tug.aas.built_in_
 annotation_types" number="5.5.1" targetptr="ugr.tug.aas.built_in_annotation_types"><ttl>Built-in Annotation types</ttl><xreftext>Section 5.5.1, “Built-in Annotation types”</xreftext></div><div element="section" href="#ugr.tug.aas.annotations_associated_sofa" number="5.5.2" targetptr="ugr.tug.aas.annotations_associated_sofa"><ttl>Annotations have an associated Sofa</ttl><xreftext>Section 5.5.2, “Annotations have an associated Sofa”</xreftext></div></div><div element="section" href="#ugr.tug.aas.annotationbase" number="5.6" targetptr="ugr.tug.aas.annotationbase"><ttl>AnnotationBase</ttl><xreftext>Section 5.6, “AnnotationBase”</xreftext></div></div><div element="chapter" href="#ugr.tug.mvs" number="6" targetptr="ugr.tug.mvs"><ttl>Multiple CAS Views of an Artifact</ttl><xreftext>Chapter 6, <i xmlns:xlink="http://www.w3.org/1999/xlink">Multiple CAS Views of an Artifact</i></xreftext><div element="section" href="#ugr.tug.mvs.cas_views_and_
 sofas" number="6.1" targetptr="ugr.tug.mvs.cas_views_and_sofas"><ttl>CAS Views and Sofas</ttl><xreftext>Section 6.1, “CAS Views and Sofas”</xreftext><div element="section" href="#ugr.tug.mvs.naming_views_sofas" number="6.1.1" targetptr="ugr.tug.mvs.naming_views_sofas"><ttl>Naming CAS Views and Sofas</ttl><xreftext>Section 6.1.1, “Naming CAS Views and Sofas”</xreftext></div><div element="section" href="#ugr.tug.mvs.multi_view_and_single_view" number="6.1.2" targetptr="ugr.tug.mvs.multi_view_and_single_view"><ttl>Multi-View, Single-View components &amp; applications</ttl><xreftext>Section 6.1.2, “Multi/Single View parts in Applications”</xreftext></div></div><div element="section" href="#ugr.tug.mvs.multi_view_components" number="6.2" targetptr="ugr.tug.mvs.multi_view_components"><ttl>Multi-View Components</ttl><xreftext>Section 6.2, “Multi-View Components”</xreftext><div element="section" href="#ugr.tug.mvs.deciding_multi_vi
 ew" number="6.2.1" targetptr="ugr.tug.mvs.deciding_multi_view"><ttl>How UIMA decides if a component is Multi-View</ttl><xreftext>Section 6.2.1, “Deciding: Multi-View”</xreftext></div><div element="section" href="#ugr.tug.mvs.additional_capabilities" number="6.2.2" targetptr="ugr.tug.mvs.additional_capabilities"><ttl>Multi-View: additional capabilities</ttl><xreftext>Section 6.2.2, “Multi-View: additional capabilities”</xreftext></div><div element="section" href="#ugr.tug.mvs.component_xml_metadata" number="6.2.3" targetptr="ugr.tug.mvs.component_xml_metadata"><ttl>Component XML metadata</ttl><xreftext>Section 6.2.3, “Component XML metadata”</xreftext></div></div><div element="section" href="#ugr.tug.mvs.sofa_capabilities_and_apis_for_apps" number="6.3" targetptr="ugr.tug.mvs.sofa_capabilities_and_apis_for_apps"><ttl>Sofa Capabilities and APIs for Applications</ttl><xreftext>Section 6.3, “Sofa Capabilities &amp; APIs for Appsâ€
 </xreftext></div><div element="section" href="#ugr.tug.mvs.sofa_name_mapping" number="6.4" targetptr="ugr.tug.mvs.sofa_name_mapping"><ttl>Sofa Name Mapping</ttl><xreftext>Section 6.4, “Sofa Name Mapping”</xreftext><div element="section" href="#ugr.tug.mvs.name_mapping_aggregate" number="6.4.1" targetptr="ugr.tug.mvs.name_mapping_aggregate"><ttl>Name Mapping in an Aggregate Descriptor</ttl><xreftext>Section 6.4.1, “Name Mapping in an Aggregate Descriptor”</xreftext></div><div element="section" href="#ugr.tug.mvs.name_mapping_cpe" number="6.4.2" targetptr="ugr.tug.mvs.name_mapping_cpe"><ttl>Name Mapping in a CPE
+      Consumers”</xreftext><div element="section" href="#ugr.tug.cpe.cas_consumer.required_methods" number="2.4.3.1" targetptr="ugr.tug.cpe.cas_consumer.required_methods"><ttl>Required Methods for a CAS Consumer</ttl><xreftext>Section 2.4.3.1, “Required Methods for a CAS Consumer”</xreftext><div element="section" href="#ugr.tug.cpe.cas_consumer.required_methods.initialize" number="" targetptr="ugr.tug.cpe.cas_consumer.required_methods.initialize"><ttl>initialize()</ttl><xreftext>the section called “initialize()”</xreftext></div><div element="section" href="#ugr.tug.cpe.cas_consumer.required_methods.processcas" number="" targetptr="ugr.tug.cpe.cas_consumer.required_methods.processcas"><ttl>processCas()</ttl><xreftext>the section called “processCas()”</xreftext></div><div element="section" href="#ugr.tug.cpe.cas_consumer.optional_methods" number="" targetptr="ugr.tug.cpe.cas_consumer.optional_methods"><ttl>Optional Methods</ttl><xreftext>t
 he section called “Optional Methods”</xreftext><div element="section" href="#ugr.tug.cpe.cas_consumer.optional_methods.batchprocesscomplete" number="" targetptr="ugr.tug.cpe.cas_consumer.optional_methods.batchprocesscomplete"><ttl>batchProcessComplete()</ttl><xreftext>the section called “batchProcessComplete()”</xreftext></div><div element="section" href="#ugr.tug.cpe.cas_consumer.optional_methods.collectionprocesscomplete" number="" targetptr="ugr.tug.cpe.cas_consumer.optional_methods.collectionprocesscomplete"><ttl>collectionProcessComplete()</ttl><xreftext>the section called “collectionProcessComplete()”</xreftext></div></div></div></div></div><div element="section" href="#ugr.tug.cpe.deploying_a_cpe" number="2.5" targetptr="ugr.tug.cpe.deploying_a_cpe"><ttl>Deploying a CPE</ttl><xreftext>Section 2.5, “Deploying a CPE”</xreftext><obj element="figure" href="#ugr.tug.cpe.fig.cpe_instantiation" number="2.2" targetptr="ugr.tug.cpe.fi
 g.cpe_instantiation"><ttl>CPE Instantiation</ttl><xreftext>Figure 2.2, “CPE Instantiation”</xreftext></obj><obj element="para" href="#ugr.tug.cpe.deployment_alternatives" number="" targetptr="ugr.tug.cpe.deployment_alternatives"><ttl>???TITLE???</ttl><xreftext>Section 2.5, “Deploying a CPE”</xreftext></obj><div element="section" href="#ugr.tug.cpe.managed_deployment" number="2.5.1" targetptr="ugr.tug.cpe.managed_deployment"><ttl>Deploying Managed CAS Processors</ttl><xreftext>Section 2.5.1, “Deploying Managed CAS Processors”</xreftext><obj element="figure" href="#ugr.tug.cpe.fig.managed_deployment" number="2.3" targetptr="ugr.tug.cpe.fig.managed_deployment"><ttl>CPE with Managed CAS Processors</ttl><xreftext>Figure 2.3, “CPE with Managed CAS Processors”</xreftext></obj></div><div element="section" href="#ugr.tug.cpe.deploying_nonmanaged_cas_processors" number="2.5.2" targetptr="ugr.tug.cpe.deploying_nonmanaged_cas_processor
 s"><ttl>Deploying Non-managed CAS Processors</ttl><xreftext>Section 2.5.2, “Deploying Non-managed CAS Processors”</xreftext><obj element="figure" href="#ugr.tug.cpe.fig.nonmanaged_cpe" number="2.4" targetptr="ugr.tug.cpe.fig.nonmanaged_cpe"><ttl>CPE with non-managed CAS Processors</ttl><xreftext>Figure 2.4, “CPE with non-managed CAS Processors”</xreftext></obj></div><div element="section" href="#ugr.tug.cpe.integrated_deployment" number="2.5.3" targetptr="ugr.tug.cpe.integrated_deployment"><ttl>Deploying Integrated CAS Processors</ttl><xreftext>Section 2.5.3, “Deploying Integrated CAS Processors”</xreftext><obj element="figure" href="#ugr.tug.cpe.fig.integrated_deployment" number="2.5" targetptr="ugr.tug.cpe.fig.integrated_deployment"><ttl>CPE with integrated CAS Processor</ttl><xreftext>Figure 2.5, “CPE with integrated CAS Processor”</xreftext></obj></div></div><div element="section" href="#ugr.tug.cpe.collection_processin
 g_examples" number="2.6" targetptr="ugr.tug.cpe.collection_processing_examples"><ttl>Collection Processing Examples</ttl><xreftext>Section 2.6, “Collection Processing Examples”</xreftext></div></div><div element="chapter" href="#ugr.tug.application" number="3" targetptr="ugr.tug.application"><ttl>Application Developer's Guide</ttl><xreftext>Chapter 3, <i xmlns:xlink="http://www.w3.org/1999/xlink">Application Developer's Guide</i></xreftext><div element="section" href="#ugr.tug.appication.uimaframework_class" number="3.1" targetptr="ugr.tug.appication.uimaframework_class"><ttl>The UIMAFramework Class</ttl><xreftext>Section 3.1, “The UIMAFramework Class”</xreftext></div><div element="section" href="#ugr.tug.application.using_aes" number="3.2" targetptr="ugr.tug.application.using_aes"><ttl>Using Analysis Engines</ttl><xreftext>Section 3.2, “Using Analysis Engines”</xreftext><div element="section" href="#ugr.tug.application.instantiating
 _an_ae" number="3.2.1" targetptr="ugr.tug.application.instantiating_an_ae"><ttl>Instantiating an Analysis Engine</ttl><xreftext>Section 3.2.1, “Instantiating an Analysis Engine”</xreftext></div><div element="section" href="#ugr.tug.application.analyzing_text_documents" number="3.2.2" targetptr="ugr.tug.application.analyzing_text_documents"><ttl>Analyzing Text Documents</ttl><xreftext>Section 3.2.2, “Analyzing Text Documents”</xreftext></div><div element="section" href="#ugr.tug.applications.analyzing_non_text_artifacts" number="3.2.3" targetptr="ugr.tug.applications.analyzing_non_text_artifacts"><ttl>Analyzing Non-Text Artifacts</ttl><xreftext>Section 3.2.3, “Analyzing Non-Text Artifacts”</xreftext></div><div element="section" href="#ugr.tug.applications.accessing_analysis_results" number="3.2.4" targetptr="ugr.tug.applications.accessing_analysis_results"><ttl>Accessing Analysis Results</ttl><xreftext>Section 3.2.4, “Accessing A
 nalysis Results”</xreftext><div element="section" href="#ugr.tug.applications.accessing_results_using_jcas" number="3.2.4.1" targetptr="ugr.tug.applications.accessing_results_using_jcas"><ttl>Accessing Analysis Results using the JCas</ttl><xreftext>Section 3.2.4.1, “Accessing Analysis Results using the JCas”</xreftext></div><div element="section" href="#ugr.tug.application.accessing_results_using_cas" number="3.2.4.2" targetptr="ugr.tug.application.accessing_results_using_cas"><ttl>Accessing Analysis Results using the CAS</ttl><xreftext>Section 3.2.4.2, “Accessing Analysis Results using the CAS”</xreftext></div></div><div element="section" href="#ugr.tug.applications.multi_threaded" number="3.2.5" targetptr="ugr.tug.applications.multi_threaded"><ttl>Multi-threaded Applications</ttl><xreftext>Section 3.2.5, “Multi-threaded Applications”</xreftext></div><div element="section" href="#ugr.tug.application.using_multiple_aes" number="3.2
 .6" targetptr="ugr.tug.application.using_multiple_aes"><ttl>Using Multiple Analysis Engines and Creating Shared CASes</ttl><xreftext>Section 3.2.6, “Multiple AEs &amp; Creating Shared CASes”</xreftext></div><div element="section" href="#ugr.tug.application.saving_cases_to_file_systems" number="3.2.7" targetptr="ugr.tug.application.saving_cases_to_file_systems"><ttl>Saving CASes to file systems</ttl><xreftext>Section 3.2.7, “Saving CASes to file systems”</xreftext></div></div><div element="section" href="#ugr.tug.application.using_cpes" number="3.3" targetptr="ugr.tug.application.using_cpes"><ttl>Using Collection Processing Engines</ttl><xreftext>Section 3.3, “Using Collection Processing Engines”</xreftext><div element="section" href="#ugr.tug.application.running_a_cpe_from_a_descriptor" number="3.3.1" targetptr="ugr.tug.application.running_a_cpe_from_a_descriptor"><ttl>Running a Collection Processing Engine from a Descriptor</ttl><xreft
 ext>Section 3.3.1, “Running a CPE from a Descriptor”</xreftext></div><div element="section" href="#ugr.tug.application.configuring_a_cpe_descriptor_programmatically" number="3.3.2" targetptr="ugr.tug.application.configuring_a_cpe_descriptor_programmatically"><ttl>Configuring a Collection Processing Engine Descriptor Programmatically</ttl><xreftext>Section 3.3.2, “Configuring a CPE Descriptor Programmatically”</xreftext></div></div><div element="section" href="#ugr.tug.application.setting_configuration_parameters" number="3.4" targetptr="ugr.tug.application.setting_configuration_parameters"><ttl>Setting Configuration Parameters</ttl><xreftext>Section 3.4, “Setting Configuration Parameters”</xreftext></div><div element="section" href="#ugr.tug.application.integrating_text_analysis_and_search" number="3.5" targetptr="ugr.tug.application.integrating_text_analysis_and_search"><ttl>Integrating Text Analysis and Search</ttl><xreftext>SectionÂ
  3.5, “Integrating Text Analysis and Search”</xreftext><div element="section" href="#ugr.tug.application.building_an_index" number="3.5.1" targetptr="ugr.tug.application.building_an_index"><ttl>Building an Index</ttl><xreftext>Section 3.5.1, “Building an Index”</xreftext><div element="section" href="#ugr.tug.application.search.configuring_indexer" number="3.5.1.1" targetptr="ugr.tug.application.search.configuring_indexer"><ttl>Configuring the Semantic Search CAS Indexer</ttl><xreftext>Section 3.5.1.1, “Configuring the Semantic Search CAS Indexer”</xreftext></div><div element="section" href="#ugr.tug.application.search.cpe_with_semantic_search_cas_consumer" number="3.5.1.2" targetptr="ugr.tug.application.search.cpe_with_semantic_search_cas_consumer"><ttl>Building and Running a CPE including the Semantic Search CAS Indexer</ttl><xreftext>Section 3.5.1.2, “Using Semantic Search CAS Indexer”</xreftext></div></div><div element="se
 ction" href="#ugr.tug.application.search.query_tool" number="3.5.2" targetptr="ugr.tug.application.search.query_tool"><ttl>Semantic Search Query Tool</ttl><xreftext>Section 3.5.2, “Semantic Search Query Tool”</xreftext></div></div><div element="section" href="#ugr.tug.application.remote_services" number="3.6" targetptr="ugr.tug.application.remote_services"><ttl>Working with Remote Services</ttl><xreftext>Section 3.6, “Working with Remote Services”</xreftext><div element="section" href="#ugr.tug.application.how_to_deploy_as_soap" number="3.6.1" targetptr="ugr.tug.application.how_to_deploy_as_soap"><ttl>Deploying a UIMA Component as a SOAP Service</ttl><xreftext>Section 3.6.1, “Deploying as SOAP Service”</xreftext></div><div element="section" href="#ugr.tug.application.how_to_deploy_a_vinci_service" number="3.6.2" targetptr="ugr.tug.application.how_to_deploy_a_vinci_service"><ttl>Deploying a UIMA Component as a Vinci Service</ttl><xreftex
 t>Section 3.6.2, “Deploying as a Vinci Service”</xreftext></div><div element="section" href="#ugr.tug.application.how_to_call_a_uima_service" number="3.6.3" targetptr="ugr.tug.application.how_to_call_a_uima_service"><ttl>How to Call a UIMA Service</ttl><xreftext>Section 3.6.3, “Calling a UIMA Service”</xreftext><div element="section" href="#ugr.tug.application.soap_service_client_descriptor" number="3.6.3.1" targetptr="ugr.tug.application.soap_service_client_descriptor"><ttl>SOAP Service Client Descriptor</ttl><xreftext>Section 3.6.3.1, “SOAP Service Client Descriptor”</xreftext></div><div element="section" href="#ugr.tug.application.vinci_service_client_descriptor" number="3.6.3.2" targetptr="ugr.tug.application.vinci_service_client_descriptor"><ttl>Vinci Service Client Descriptor</ttl><xreftext>Section 3.6.3.2, “Vinci Service Client Descriptor”</xreftext></div></div><div element="section" href="#ugr.tug.application.restri
 ctions_on_remotely_deployed_services" number="3.6.4" targetptr="ugr.tug.application.restrictions_on_remotely_deployed_services"><ttl>Restrictions on remotely deployed services</ttl><xreftext>Section 3.6.4, “Restrictions on remotely deployed services”</xreftext></div><div element="section" href="#ugr.tug.application.vns" number="3.6.5" targetptr="ugr.tug.application.vns"><ttl>The Vinci Naming Services (VNS)</ttl><xreftext>Section 3.6.5, “The Vinci Naming Services (VNS)”</xreftext><div element="section" href="#ugr.tug.application.vns.starting" number="3.6.5.1" targetptr="ugr.tug.application.vns.starting"><ttl>Starting VNS</ttl><xreftext>Section 3.6.5.1, “Starting VNS”</xreftext></div><div element="section" href="#ugr.tug.application.vns_files" number="3.6.5.2" targetptr="ugr.tug.application.vns_files"><ttl>VNS Files</ttl><xreftext>Section 3.6.5.2, “VNS Files”</xreftext></div><div element="section" href="#ugr.tug.application.l
 aunching_vinci_services" number="3.6.5.3" targetptr="ugr.tug.application.launching_vinci_services"><ttl>Launching Vinci Services</ttl><xreftext>Section 3.6.5.3, “Launching Vinci Services”</xreftext></div></div><div element="section" href="#ugr.tug.configuring_timeout_settings" number="3.6.6" targetptr="ugr.tug.configuring_timeout_settings"><ttl>Configuring Timeout Settings</ttl><xreftext>Section 3.6.6, “Configuring Timeout Settings”</xreftext><div element="section" href="#ugr.tug.setting_client_timeout" number="3.6.6.1" targetptr="ugr.tug.setting_client_timeout"><ttl>Setting the Client Timeout</ttl><xreftext>Section 3.6.6.1, “Setting the Client Timeout”</xreftext></div><div element="section" href="#ugr.tug.setting_server_socket_timeout" number="3.6.6.2" targetptr="ugr.tug.setting_server_socket_timeout"><ttl>Setting the Server Socket Timeout</ttl><xreftext>Section 3.6.6.2, “Setting the Server Socket Timeout”</xreftext></div>
 </div></div><div element="section" href="#ugr.tug.application.increasing_performance_using_parallelism" number="3.7" targetptr="ugr.tug.application.increasing_performance_using_parallelism"><ttl>Increasing performance using parallelism</ttl><xreftext>Section 3.7, “Increasing performance using parallelism”</xreftext></div><div element="section" href="#ugr.tug.application.jmx" number="3.8" targetptr="ugr.tug.application.jmx"><ttl>Monitoring AE Performance using JMX</ttl><xreftext>Section 3.8, “Monitoring AE Performance using JMX”</xreftext></div><div element="section" href="#tug.application.pto" number="3.9" targetptr="tug.application.pto"><ttl>Performance Tuning Options</ttl><xreftext>Section 3.9, “Performance Tuning Options”</xreftext></div></div><div element="chapter" href="#ugr.tug.fc" number="4" targetptr="ugr.tug.fc"><ttl>Flow Controller Developer's Guide</ttl><xreftext>Chapter 4, <i xmlns:xlink="http://www.w3.org/1999/xlink">Flo
 w Controller Developer's Guide</i></xreftext><div element="section" href="#ugr.tug.fc.developing_fc_code" number="4.1" targetptr="ugr.tug.fc.developing_fc_code"><ttl>Developing the Flow Controller Code</ttl><xreftext>Section 4.1, “Developing the Flow Controller Code”</xreftext><div element="section" href="#ugr.tug.fc.fc_interface_overview" number="4.1.1" targetptr="ugr.tug.fc.fc_interface_overview"><ttl>Flow Controller Interface Overview</ttl><xreftext>Section 4.1.1, “Flow Controller Interface Overview”</xreftext></div><div element="section" href="#ugr.tug.fc.example_code" number="4.1.2" targetptr="ugr.tug.fc.example_code"><ttl>Example Code</ttl><xreftext>Section 4.1.2, “Example Code”</xreftext><div element="section" href="#ugr.tug.fc.whiteboard" number="4.1.2.1" targetptr="ugr.tug.fc.whiteboard"><ttl>The WhiteboardFlowController Class</ttl><xreftext>Section 4.1.2.1, “The WhiteboardFlowController Class”</xreftext></div><div
  element="section" href="#ugr.tug.fc.whiteboardflow" number="4.1.2.2" targetptr="ugr.tug.fc.whiteboardflow"><ttl>The WhiteboardFlow Class</ttl><xreftext>Section 4.1.2.2, “The WhiteboardFlow Class”</xreftext></div></div></div><div element="section" href="#ugr.tug.fc.creating_fc_descriptor" number="4.2" targetptr="ugr.tug.fc.creating_fc_descriptor"><ttl>Creating the Flow Controller Descriptor</ttl><xreftext>Section 4.2, “Creating the Flow Controller Descriptor”</xreftext></div><div element="section" href="#ugr.tug.fc.adding_fc_to_aggregate" number="4.3" targetptr="ugr.tug.fc.adding_fc_to_aggregate"><ttl>Adding a Flow Controller to an Aggregate Analysis Engine</ttl><xreftext>Section 4.3, “Adding Flow Controller to an Aggregate”</xreftext></div><div element="section" href="#ugr.tug.fc.adding_fc_to_cpe" number="4.4" targetptr="ugr.tug.fc.adding_fc_to_cpe"><ttl>Adding a Flow Controller to a Collection Processing Engine</ttl><xreftext>Section�
 � 4.4, “Adding Flow Controller to CPE”</xreftext></div><div element="section" href="#ugr.tug.fc.using_fc_with_cas_multipliers" number="4.5" targetptr="ugr.tug.fc.using_fc_with_cas_multipliers"><ttl>Using Flow Controllers with CAS Multipliers</ttl><xreftext>Section 4.5, “Using Flow Controllers with CAS Multipliers”</xreftext></div><div element="section" href="#ugr.tug.fc.continuing_when_exceptions_occur" number="4.6" targetptr="ugr.tug.fc.continuing_when_exceptions_occur"><ttl>Continuing the Flow When Exceptions Occur</ttl><xreftext>Section 4.6, “Continuing the Flow When Exceptions Occur”</xreftext></div></div><div element="chapter" href="#ugr.tug.aas" number="5" targetptr="ugr.tug.aas"><ttl>Annotations, Artifacts, and Sofas</ttl><xreftext>Chapter 5, <i xmlns:xlink="http://www.w3.org/1999/xlink">Annotations, Artifacts, and Sofas</i></xreftext><div element="section" href="#ugr.tug.aas.terminology" number="5.1" targetptr="ugr.tug.aas.term
 inology"><ttl>Terminology</ttl><xreftext>Section 5.1, “Terminology”</xreftext><div element="section" href="#ugr.tug.aas.artifact" number="5.1.1" targetptr="ugr.tug.aas.artifact"><ttl>Artifact</ttl><xreftext>Section 5.1.1, “Artifact”</xreftext></div><div element="section" href="#ugr.tug.aas.sofa" number="5.1.2" targetptr="ugr.tug.aas.sofa"><ttl>Subject of Analysis — Sofa</ttl><xreftext>Section 5.1.2, “Subject of Analysis — Sofa”</xreftext></div></div><div element="section" href="#ugr.tug.aas.sofa_data_formats" number="5.2" targetptr="ugr.tug.aas.sofa_data_formats"><ttl>Formats of Sofa Data</ttl><xreftext>Section 5.2, “Formats of Sofa Data”</xreftext></div><div element="section" href="#ugr.tug.aas.setting_accessing_sofa_data" number="5.3" targetptr="ugr.tug.aas.setting_accessing_sofa_data"><ttl>Setting and Accessing Sofa Data</ttl><xreftext>Section 5.3, “Setting and Accessing Sofa Data”</xreftext><div e
 lement="section" href="#ugr.tug.aas.setting_sofa_data" number="5.3.1" targetptr="ugr.tug.aas.setting_sofa_data"><ttl>Setting Sofa Data</ttl><xreftext>Section 5.3.1, “Setting Sofa Data”</xreftext></div><div element="section" href="#ugr.tug.aas.accessing_sofa_data" number="5.3.2" targetptr="ugr.tug.aas.accessing_sofa_data"><ttl>Accessing Sofa Data</ttl><xreftext>Section 5.3.2, “Accessing Sofa Data”</xreftext></div><div element="section" href="#ugr.tug.aas.accessing_sofa_data_using_java_stream" number="5.3.3" targetptr="ugr.tug.aas.accessing_sofa_data_using_java_stream"><ttl>Accessing Sofa Data using a Java Stream</ttl><xreftext>Section 5.3.3, “Accessing Sofa Data using a Java Stream”</xreftext></div></div><div element="section" href="#ugr.tug.aas.sofa_fs" number="5.4" targetptr="ugr.tug.aas.sofa_fs"><ttl>The Sofa Feature Structure</ttl><xreftext>Section 5.4, “The Sofa Feature Structure”</xreftext></div><div element="section" 
 href="#ugr.tug.aas.annotations" number="5.5" targetptr="ugr.tug.aas.annotations"><ttl>Annotations</ttl><xreftext>Section 5.5, “Annotations”</xreftext><div element="section" href="#ugr.tug.aas.built_in_annotation_types" number="5.5.1" targetptr="ugr.tug.aas.built_in_annotation_types"><ttl>Built-in Annotation types</ttl><xreftext>Section 5.5.1, “Built-in Annotation types”</xreftext></div><div element="section" href="#ugr.tug.aas.annotations_associated_sofa" number="5.5.2" targetptr="ugr.tug.aas.annotations_associated_sofa"><ttl>Annotations have an associated Sofa</ttl><xreftext>Section 5.5.2, “Annotations have an associated Sofa”</xreftext></div></div><div element="section" href="#ugr.tug.aas.annotationbase" number="5.6" targetptr="ugr.tug.aas.annotationbase"><ttl>AnnotationBase</ttl><xreftext>Section 5.6, “AnnotationBase”</xreftext></div></div><div element="chapter" href="#ugr.tug.mvs" number="6" targetptr="ugr.tug.mvs"><ttl
 >Multiple CAS Views of an Artifact</ttl><xreftext>Chapter 6, <i xmlns:xlink="http://www.w3.org/1999/xlink">Multiple CAS Views of an Artifact</i></xreftext><div element="section" href="#ugr.tug.mvs.cas_views_and_sofas" number="6.1" targetptr="ugr.tug.mvs.cas_views_and_sofas"><ttl>CAS Views and Sofas</ttl><xreftext>Section 6.1, “CAS Views and Sofas”</xreftext><div element="section" href="#ugr.tug.mvs.naming_views_sofas" number="6.1.1" targetptr="ugr.tug.mvs.naming_views_sofas"><ttl>Naming CAS Views and Sofas</ttl><xreftext>Section 6.1.1, “Naming CAS Views and Sofas”</xreftext></div><div element="section" href="#ugr.tug.mvs.multi_view_and_single_view" number="6.1.2" targetptr="ugr.tug.mvs.multi_view_and_single_view"><ttl>Multi-View, Single-View components &amp; applications</ttl><xreftext>Section 6.1.2, “Multi/Single View parts in Applications”</xreftext></div></div><div element="section" href="#ugr.tug.mvs.multi_view_components" number
 ="6.2" targetptr="ugr.tug.mvs.multi_view_components"><ttl>Multi-View Components</ttl><xreftext>Section 6.2, “Multi-View Components”</xreftext><div element="section" href="#ugr.tug.mvs.deciding_multi_view" number="6.2.1" targetptr="ugr.tug.mvs.deciding_multi_view"><ttl>How UIMA decides if a component is Multi-View</ttl><xreftext>Section 6.2.1, “Deciding: Multi-View”</xreftext></div><div element="section" href="#ugr.tug.mvs.additional_capabilities" number="6.2.2" targetptr="ugr.tug.mvs.additional_capabilities"><ttl>Multi-View: additional capabilities</ttl><xreftext>Section 6.2.2, “Multi-View: additional capabilities”</xreftext></div><div element="section" href="#ugr.tug.mvs.component_xml_metadata" number="6.2.3" targetptr="ugr.tug.mvs.component_xml_metadata"><ttl>Component XML metadata</ttl><xreftext>Section 6.2.3, “Component XML metadata”</xreftext></div></div><div element="section" href="#ugr.tug.mvs.sofa_capabilities_and_a
 pis_for_apps" number="6.3" targetptr="ugr.tug.mvs.sofa_capabilities_and_apis_for_apps"><ttl>Sofa Capabilities and APIs for Applications</ttl><xreftext>Section 6.3, “Sofa Capabilities &amp; APIs for Apps”</xreftext></div><div element="section" href="#ugr.tug.mvs.sofa_name_mapping" number="6.4" targetptr="ugr.tug.mvs.sofa_name_mapping"><ttl>Sofa Name Mapping</ttl><xreftext>Section 6.4, “Sofa Name Mapping”</xreftext><div element="section" href="#ugr.tug.mvs.name_mapping_aggregate" number="6.4.1" targetptr="ugr.tug.mvs.name_mapping_aggregate"><ttl>Name Mapping in an Aggregate Descriptor</ttl><xreftext>Section 6.4.1, “Name Mapping in an Aggregate Descriptor”</xreftext></div><div element="section" href="#ugr.tug.mvs.name_mapping_cpe" number="6.4.2" targetptr="ugr.tug.mvs.name_mapping_cpe"><ttl>Name Mapping in a CPE
       Descriptor</ttl><xreftext>Section 6.4.2, “Name Mapping in a CPE
       Descriptor”</xreftext></div><div element="section" href="#ugr.tug.mvs.specifying_cas_view_for_single_view" number="6.4.3" targetptr="ugr.tug.mvs.specifying_cas_view_for_single_view"><ttl>Specifying the CAS View for a Single-View Component</ttl><xreftext>Section 6.4.3, “CAS View for Single-View Parts”</xreftext><obj element="para" href="#ugr.tug.mvs.sofa_mapping_leav_out_name" number="" targetptr="ugr.tug.mvs.sofa_mapping_leav_out_name"><ttl>???TITLE???</ttl><xreftext>Section 6.4.3, “CAS View for Single-View Parts”</xreftext></obj></div><div element="section" href="#ugr.tug.mvs.name_mapping_application" number="6.4.4" targetptr="ugr.tug.mvs.name_mapping_application"><ttl>Name Mapping in a UIMA Application</ttl><xreftext>Section 6.4.4, “Name Mapping in a UIMA Application”</xreftext></div><div element="section" href="#ugr.tug.mvs.name_mapping_remote_services" number="6.4.5" targetptr="ugr.tug.mvs.name_mapping_remote_services"><t
 tl>Name Mapping for Remote Services</ttl><xreftext>Section 6.4.5, “Name Mapping for Remote Services”</xreftext></div></div><div element="section" href="#ugr.tug.mvs.jcas_extensions_for_multi_views" number="6.5" targetptr="ugr.tug.mvs.jcas_extensions_for_multi_views"><ttl>JCas extensions for Multiple Views</ttl><xreftext>Section 6.5, “JCas extensions for Multiple Views”</xreftext></div><div element="section" href="#ugr.tug.mvs.sample_application" number="6.6" targetptr="ugr.tug.mvs.sample_application"><ttl>Sample Multi-View Application</ttl><xreftext>Section 6.6, “Sample Multi-View Application”</xreftext><div element="section" href="#ugr.tug.mvs.sample_application.descriptor" number="6.6.1" targetptr="ugr.tug.mvs.sample_application.descriptor"><ttl>Annotator Descriptor</ttl><xreftext>Section 6.6.1, “Annotator Descriptor”</xreftext></div><div element="section" href="#ugr.tug.mvs.sample_application.setup" number="6.6.2" target
 ptr="ugr.tug.mvs.sample_application.setup"><ttl>Application Setup</ttl><xreftext>Section 6.6.2, “Application Setup”</xreftext></div><div element="section" href="#ugr.tug.mvs.sample_application.annotator_processing" number="6.6.3" targetptr="ugr.tug.mvs.sample_application.annotator_processing"><ttl>Annotator Processing</ttl><xreftext>Section 6.6.3, “Annotator Processing”</xreftext></div><div element="section" href="#ugr.tug.mvs.sample_application.accessing_results" number="6.6.4" targetptr="ugr.tug.mvs.sample_application.accessing_results"><ttl>Accessing the results of analysis</ttl><xreftext>Section 6.6.4, “Accessing the results of analysis”</xreftext></div></div><div element="section" href="#ugr.tug.mvs.views_api_summary" number="6.7" targetptr="ugr.tug.mvs.views_api_summary"><ttl>Views API Summary</ttl><xreftext>Section 6.7, “Views API Summary”</xreftext></div><div element="section" href="#ugr.tug.mvs.sofa_incompatibiliti
 es_v1_v2" number="6.8" targetptr="ugr.tug.mvs.sofa_incompatibilities_v1_v2"><ttl>Sofa Incompatibilities between UIMA version 1 and version 2</ttl><xreftext>Section 6.8, “Sofa Incompatibilities: V1 and V2”</xreftext></div></div><div element="chapter" href="#ugr.tug.cm" number="7" targetptr="ugr.tug.cm"><ttl>CAS Multiplier Developer's Guide</ttl><xreftext>Chapter 7, <i xmlns:xlink="http://www.w3.org/1999/xlink">CAS Multiplier Developer's Guide</i></xreftext><div element="section" href="#ugr.tug.cm.developing_multiplier_code" number="7.1" targetptr="ugr.tug.cm.developing_multiplier_code"><ttl>Developing the CAS Multiplier Code</ttl><xreftext>Section 7.1, “Developing the CAS Multiplier Code”</xreftext><div element="section" href="#ugr.tug.cm.cm_interface_overview" number="7.1.1" targetptr="ugr.tug.cm.cm_interface_overview"><ttl>CAS Multiplier Interface Overview</ttl><xreftext>Section 7.1.1, “CAS Multiplier Interface Overview”</xreftext><
 /div><div element="section" href="#ugr.tug.cm.how_to_get_empty_cas_instance" number="7.1.2" targetptr="ugr.tug.cm.how_to_get_empty_cas_instance"><ttl>How to Get an Empty CAS Instance</ttl><xreftext>Section 7.1.2, “Getting an empty CAS Instance”</xreftext></div><div element="section" href="#ugr.tug.cm.example_code" number="7.1.3" targetptr="ugr.tug.cm.example_code"><ttl>Example Code</ttl><xreftext>Section 7.1.3, “Example Code”</xreftext><div element="section" href="#ugr.tug.cm.example_code.overall_structure" number="7.1.3.1" targetptr="ugr.tug.cm.example_code.overall_structure"><ttl>Overall Structure</ttl><xreftext>Section 7.1.3.1, “Overall Structure”</xreftext></div><div element="section" href="#ugr.tug.cm.example_code.initialize" number="7.1.3.2" targetptr="ugr.tug.cm.example_code.initialize"><ttl>Initialize Method</ttl><xreftext>Section 7.1.3.2, “Initialize Method”</xreftext></div><div element="section" href="#ugr.tug.cm.
 example_code.process" number="7.1.3.3" targetptr="ugr.tug.cm.example_code.process"><ttl>Process Method</ttl><xreftext>Section 7.1.3.3, “Process Method”</xreftext></div><div element="section" href="#ugr.tug.cm.example_code.hasnext" number="7.1.3.4" targetptr="ugr.tug.cm.example_code.hasnext"><ttl>HasNext Method</ttl><xreftext>Section 7.1.3.4, “HasNext Method”</xreftext></div><div element="section" href="#ugr.tug.cm.example_code.next" number="7.1.3.5" targetptr="ugr.tug.cm.example_code.next"><ttl>Next Method</ttl><xreftext>Section 7.1.3.5, “Next Method”</xreftext></div></div></div><div element="section" href="#ugr.tug.cm.creating_cm_descriptor" number="7.2" targetptr="ugr.tug.cm.creating_cm_descriptor"><ttl>Creating the CAS Multiplier Descriptor</ttl><xreftext>Section 7.2, “CAS Multiplier Descriptor”</xreftext></div><div element="section" href="#ugr.tug.cm.using_cm_in_aae" number="7.3" targetptr="ugr.tug.cm.using_cm_in_aae"><
 ttl>Using a CAS Multiplier in an Aggregate Analysis Engine</ttl><xreftext>Section 7.3, “Using CAS Multipliers in Aggregates”</xreftext><div element="section" href="#ugr.tug.cm.adding_cm_to_aggregate" number="7.3.1" targetptr="ugr.tug.cm.adding_cm_to_aggregate"><ttl>Adding the CAS Multiplier to the Aggregate</ttl><xreftext>Section 7.3.1, “Aggregate: Adding the CAS Multiplier”</xreftext></div><div element="section" href="#ugr.tug.cm.cm_and_fc" number="7.3.2" targetptr="ugr.tug.cm.cm_and_fc"><ttl>CAS Multipliers and Flow Control</ttl><xreftext>Section 7.3.2, “CAS Multipliers and Flow Control”</xreftext></div><div element="section" href="#ugr.tug.cm.aggregate_cms" number="7.3.3" targetptr="ugr.tug.cm.aggregate_cms"><ttl>Aggregate CAS Multipliers</ttl><xreftext>Section 7.3.3, “Aggregate CAS Multipliers”</xreftext></div></div><div element="section" href="#ugr.tug.cm.using_cm_in_cpe" number="7.4" targetptr="ugr.tug.cm.using_cm_in_
 cpe"><ttl>Using a CAS Multiplier in a Collection Processing Engine</ttl><xreftext>Section 7.4, “CAS Multipliers in CPE's”</xreftext></div><div element="section" href="#ugr.tug.cm.calling_cm_from_app" number="7.5" targetptr="ugr.tug.cm.calling_cm_from_app"><ttl>Calling a CAS Multiplier from an Application</ttl><xreftext>Section 7.5, “Applications: Calling CAS Multipliers”</xreftext><div element="section" href="#ugr.tug.cm.retrieving_output_cases" number="7.5.1" targetptr="ugr.tug.cm.retrieving_output_cases"><ttl>Retrieving Output CASes from the CAS Multiplier</ttl><xreftext>Section 7.5.1, “Output CASes”</xreftext></div><div element="section" href="#ugr.tug.cm.using_cm_with_other_aes" number="7.5.2" targetptr="ugr.tug.cm.using_cm_with_other_aes"><ttl>Using a CAS Multiplier with other Analysis Engines</ttl><xreftext>Section 7.5.2, “CAS Multipliers with other AEs”</xreftext></div></div><div element="section" href="#ugr.tug.cm.u
 sing_cm_to_merge_cases" number="7.6" targetptr="ugr.tug.cm.using_cm_to_merge_cases"><ttl>Using a CAS Multiplier to Merge CASes</ttl><xreftext>Section 7.6, “Merging with CAS Multipliers”</xreftext><div element="section" href="#ugr.tug.cm.overview_of_how_to_merge_cases" number="7.6.1" targetptr="ugr.tug.cm.overview_of_how_to_merge_cases"><ttl>Overview of How to Merge CASes</ttl><xreftext>Section 7.6.1, “CAS Merging Overview”</xreftext></div><div element="section" href="#ugr.tug.cm.example_cas_merger" number="7.6.2" targetptr="ugr.tug.cm.example_cas_merger"><ttl>Example CAS Merger</ttl><xreftext>Section 7.6.2, “Example CAS Merger”</xreftext><div element="section" href="#ugr.tug.cm.example_cas_merger.process" number="7.6.2.1" targetptr="ugr.tug.cm.example_cas_merger.process"><ttl>Process Method</ttl><xreftext>Section 7.6.2.1, “Process Method”</xreftext></div><div element="section" href="#ugr.tug.cm.example_cas_merger.hasnext_an
 d_next" number="7.6.2.2" targetptr="ugr.tug.cm.example_cas_merger.hasnext_and_next"><ttl>HasNext and Next Methods</ttl><xreftext>Section 7.6.2.2, “HasNext and Next Methods”</xreftext></div></div><div element="section" href="#ugr.tug.cm.using_the_simple_text_merger_in_an_aggregate_ae" number="7.6.3" targetptr="ugr.tug.cm.using_the_simple_text_merger_in_an_aggregate_ae"><ttl>Using the SimpleTextMerger in an Aggregate Analysis Engine</ttl><xreftext>Section 7.6.3, “SimpleTextMerger in an Aggregate”</xreftext></div></div></div><div element="chapter" href="#ugr.tug.xmi_emf" number="8" targetptr="ugr.tug.xmi_emf"><ttl>XMI and EMF Interoperability</ttl><xreftext>Chapter 8, <i xmlns:xlink="http://www.w3.org/1999/xlink">XMI and EMF Interoperability</i></xreftext><div element="section" href="#ugr.tug.xmi_emf.overview" number="8.1" targetptr="ugr.tug.xmi_emf.overview"><ttl>Overview</ttl><xreftext>Section 8.1, “Overview”</xreftext></div><div elem
 ent="section" href="#ugr.tug.xmi_emf.converting_ecore_to_from_uima_type_system" number="8.2" targetptr="ugr.tug.xmi_emf.converting_ecore_to_from_uima_type_system"><ttl>Converting an Ecore Model to or from a UIMA Type System</ttl><xreftext>Section 8.2, “Converting an Ecore Model to or from a UIMA Type System”</xreftext></div><div element="section" href="#ugr.tug.xmi_emf.using_xmi_cas_serialization" number="8.3" targetptr="ugr.tug.xmi_emf.using_xmi_cas_serialization"><ttl>Using XMI CAS Serialization</ttl><xreftext>Section 8.3, “Using XMI CAS Serialization”</xreftext><div element="section" href="#ugr.tug.xmi_emf.xml_character_issues" number="8.3.1" targetptr="ugr.tug.xmi_emf.xml_character_issues"><ttl>Character Encoding Issues with XML Serialization</ttl><xreftext>Section 8.3.1, “Character Encoding Issues with XML Serialization”</xreftext></div></div></div></div>
\ No newline at end of file