Modified: uima/site/trunk/uima-website/docs/d/uimaj-current/tutorials_and_users_guides.html URL: http://svn.apache.org/viewvc/uima/site/trunk/uima-website/docs/d/uimaj-current/tutorials_and_users_guides.html?rev=1907218&r1=1907217&r2=1907218&view=diff ============================================================================== --- uima/site/trunk/uima-website/docs/d/uimaj-current/tutorials_and_users_guides.html (original) +++ uima/site/trunk/uima-website/docs/d/uimaj-current/tutorials_and_users_guides.html Thu Feb 2 08:24:16 2023 @@ -1,10 +1,10 @@ <html><head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>UIMA Tutorial and Developers' Guides</title><link rel="stylesheet" type="text/css" href="css/stylesheet-html.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book" title="UIMA Tutorial and Developers' Guides" id="d5e1"><div xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div><h1 class="title">UIMA Tutorial and Developers' Guides</h1></div><div><div class="authorgroup"> + <title>UIMA Tutorial and Developers' Guides</title><link rel="stylesheet" type="text/css" href="css/stylesheet-html.css"><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book" id="d5e1"><div xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div><h1 class="title">UIMA Tutorial and Developers' Guides</h1></div><div><div class="authorgroup"> <h3 class="corpauthor">Written and maintained by the Apache UIMA™ Development Community</h3> - </div></div><div><p class="releaseinfo">Version 3.3.1</p></div><div><p class="copyright">Copyright © 2006, 2022 The Apache Software Foundation</p></div><div><p class="copyright">Copyright © 2004, 2006 International Business Machines Corporation</p></div><div><div class="legalnotice" title="Legal Notice"><a name="d5e8"></a> + </div></div><div><p class="releaseinfo">Version 3.4.0</p></div><div><p class="copyright">Copyright © 2006, 2023 The Apache Software Foundation</p></div><div><p class="copyright">Copyright © 2004, 2006 International Business Machines Corporation</p></div><div><div class="legalnotice" id="d5e8"> <p> </p> - <p title="License and Disclaimer"> + <p> <b>License and Disclaimer. </b> The ASF licenses this documentation @@ -14,7 +14,7 @@ </p><div class="blockquote"><blockquote class="blockquote"> <a class="ulink" href="http://www.apache.org/licenses/LICENSE-2.0" target="_top">http://www.apache.org/licenses/LICENSE-2.0</a> - </blockquote></div><p title="License and Disclaimer"> + </blockquote></div><p> Unless required by applicable law or agreed to in writing, this documentation and its contents are distributed under the License @@ -27,7 +27,7 @@ </p> <p> </p> <p> </p> - <p title="Trademarks"> + <p> <b>Trademarks. </b> All terms mentioned in the text that are known to be trademarks or service marks have been appropriately capitalized. Use of such terms @@ -35,7 +35,7 @@ the trademark or service mark. </p> - </div></div><div><p class="pubdate">October, 2022</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#ugr.tug.aae">1. Annotator & AE Developer's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.getting_started">1.1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.defining_types">1.1.1. Defining Types</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.generating_jcas_sources">1.1.2. Generating Java Source Files for CAS Types</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.developing_annotator_code">1.1.3. Developing Your Annotator Code</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.creating_xml_descriptor">1.1.4. Creating the XML Descriptor</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.testing_your_annotator">1.1.5. Testing Your Annotator</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.aae.configuration_logging">1.2. Configuration and Logging</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.configuration_parameters">1.2.1. Configuration Parameters</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.logging">1.2.2. Logging</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.aae.building_aggregates">1.3. Building Aggregate Analysis Engines</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.combining_annotators">1.3.1. Combining Annotators</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.aaes_can_contain_cas_consumers">1.3.2. AAEs can also contain CAS Consumers</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.reading_results_previous_annotators">1.3.3. Reading the Results of Previous Annotators</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.aae.other_examples">1.4. Other examples</a></span></dt><dt><span class="section"><a href="#ugr .tug.aae.additional_topics">1.5. Additional Topics</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.contract_for_annotator_methods">1.5.1. Annotator Methods</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.reporting_errors_from_annotators">1.5.2. Reporting errors from Annotators</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.throwing_exceptions_from_annotators">1.5.3. Throwing Exceptions from Annotators</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.accessing_external_resource_files">1.5.4. Accessing External Resources</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.result_specification_setting">1.5.5. Result Specifications</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.classpath_when_using_jcas">1.5.6. Class path setup when using JCas</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.using_shell_scripts">1.5.7. Using the Shell Scripts</a></span></dt></dl></dd><dt><span cl ass="section"><a href="#ugr.tug.aae.common_pitfalls">1.6. Common Pitfalls</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.viewing_UIMA_objects_in_eclipse_debugger">1.7. UIMA Objects in Eclipse Debugger</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro_ae_descriptor">1.8. Analysis Engine XML Descriptor</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.header_annotator_class_identification">1.8.1. Header and Annotator Class Identification</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro_simple_metadata_attributes">1.8.2. Simple Metadata Attributes</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro_type_system_definition">1.8.3. Type System Definition</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro_capabilities">1.8.4. Capabilities</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro.configuration_parameters">1.8.5. Configuration Paramete rs (Optional)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#ugr.tug.cpe">2. CPE Developer's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.concepts">2.1. CPE Concepts</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.configurator_and_viewer">2.2. CPE Configurator and CAS viewer</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.cpe_configurator">2.2.1. Using the CPE Configurator</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.running_cpe_configurator_from_eclipse">2.2.2. Running the CPE Configurator from Eclipse</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.cpe.running_cpe_from_application">2.3. Running a CPE from Your Own Java Application</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.using_listeners">2.3.1. Using Listeners</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.cpe.developing_collection_processing_compon ents">2.4. Developing Collection Processing Components</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.collection_reader.developing">2.4.1. Developing Collection Readers</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.cas_initializer.developing">2.4.2. Developing CAS + </div></div><div><p class="pubdate">January, 2023</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="#ugr.tug.aae">1. Annotator & AE Developer's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.getting_started">1.1. Getting Started</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.defining_types">1.1.1. Defining Types</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.generating_jcas_sources">1.1.2. Generating Java Source Files for CAS Types</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.developing_annotator_code">1.1.3. Developing Your Annotator Code</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.creating_xml_descriptor">1.1.4. Creating the XML Descriptor</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.testing_your_annotator">1.1.5. Testing Your Annotator</a></span></dt></dl></dd><dt><span class= "section"><a href="#ugr.tug.aae.configuration_logging">1.2. Configuration and Logging</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.configuration_parameters">1.2.1. Configuration Parameters</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.logging">1.2.2. Logging</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.aae.building_aggregates">1.3. Building Aggregate Analysis Engines</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.combining_annotators">1.3.1. Combining Annotators</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.aaes_can_contain_cas_consumers">1.3.2. AAEs can also contain CAS Consumers</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.reading_results_previous_annotators">1.3.3. Reading the Results of Previous Annotators</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.aae.other_examples">1.4. Other examples</a></span></dt><dt><span class="section">< a href="#ugr.tug.aae.additional_topics">1.5. Additional Topics</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.contract_for_annotator_methods">1.5.1. Annotator Methods</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.reporting_errors_from_annotators">1.5.2. Reporting errors from Annotators</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.throwing_exceptions_from_annotators">1.5.3. Throwing Exceptions from Annotators</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.accessing_external_resource_files">1.5.4. Accessing External Resources</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.result_specification_setting">1.5.5. Result Specifications</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.classpath_when_using_jcas">1.5.6. Class path setup when using JCas</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.using_shell_scripts">1.5.7. Using the Shell Scripts</a></span></dt></dl></dd> <dt><span class="section"><a href="#ugr.tug.aae.common_pitfalls">1.6. Common Pitfalls</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.viewing_UIMA_objects_in_eclipse_debugger">1.7. UIMA Objects in Eclipse Debugger</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro_ae_descriptor">1.8. Analysis Engine XML Descriptor</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aae.header_annotator_class_identification">1.8.1. Header and Annotator Class Identification</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro_simple_metadata_attributes">1.8.2. Simple Metadata Attributes</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro_type_system_definition">1.8.3. Type System Definition</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro_capabilities">1.8.4. Capabilities</a></span></dt><dt><span class="section"><a href="#ugr.tug.aae.xml_intro.configuration_parameters">1.8.5. Configurat ion Parameters (Optional)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#ugr.tug.cpe">2. CPE Developer's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.concepts">2.1. CPE Concepts</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.configurator_and_viewer">2.2. CPE Configurator and CAS viewer</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.cpe_configurator">2.2.1. Using the CPE Configurator</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.running_cpe_configurator_from_eclipse">2.2.2. Running the CPE Configurator from Eclipse</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.cpe.running_cpe_from_application">2.3. Running a CPE from Your Own Java Application</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.using_listeners">2.3.1. Using Listeners</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.cpe.developing_collection_proce ssing_components">2.4. Developing Collection Processing Components</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.collection_reader.developing">2.4.1. Developing Collection Readers</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.cas_initializer.developing">2.4.2. Developing CAS Initializers</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.cas_consumer.developing">2.4.3. Developing CAS Consumers</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.cpe.deploying_a_cpe">2.5. Deploying a CPE</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cpe.managed_deployment">2.5.1. Deploying Managed CAS Processors</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.deploying_nonmanaged_cas_processors">2.5.2. Deploying Non-managed CAS Processors</a></span></dt><dt><span class="section"><a href="#ugr.tug.cpe.integrated_deployment">2.5.3. Deploying Integrated CAS Processors</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.cpe.collection_processing_examples">2.6. Collection Processing Examples</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tug.application">3. Application Developer's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.appication.uimaframework_class">3.1. The UIMAFramework Class</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.using_aes"> 3.2. Using Analysis Engines</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.application.instantiating_an_ae">3.2.1. Instantiating an Analysis Engine</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.analyzing_text_documents">3.2.2. Analyzing Text Documents</a></span></dt><dt><span class="section"><a href="#ugr.tug.applications.analyzing_non_text_artifacts">3.2.3. Analyzing Non-Text Artifacts</a></span></dt><dt><span class="section"><a href="#ugr.tug.applications.accessing_analysis_results">3.2.4. Accessing Analysis Results</a></span></dt><dt><span class="section"><a href="#ugr.tug.applications.multi_threaded">3.2.5. Multi-threaded Applications</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.using_multiple_aes">3.2.6. Multiple AEs & Creating Shared CASes</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.saving_cases_to_file_systems">3.2.7. Saving CASes to file systems or general Streams</a></span> </dt></dl></dd><dt><span class="section"><a href="#ugr.tug.application.using_cpes">3.3. Using Collection Processing Engines</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.application.running_a_cpe_from_a_descriptor">3.3.1. Running a CPE from a Descriptor</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.configuring_a_cpe_descriptor_programmatically">3.3.2. Configuring a CPE Descriptor Programmatically</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.application.setting_configuration_parameters">3.4. Setting Configuration Parameters</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.integrating_text_analysis_and_search">3.5. Integrating Text Analysis and Search</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.application.building_an_index">3.5.1. Building an Index</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.application.remote_services">3.6. Working with Remote S ervices</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.application.how_to_deploy_a_vinci_service">3.6.1. Deploying as a Vinci Service</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.how_to_call_a_uima_service">3.6.2. Calling a UIMA Service</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.restrictions_on_remotely_deployed_services">3.6.3. Restrictions on remotely deployed services</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.vns">3.6.4. The Vinci Naming Services (VNS)</a></span></dt><dt><span class="section"><a href="#ugr.tug.configuring_timeout_settings">3.6.5. Configuring Timeout Settings</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.application.increasing_performance_using_parallelism">3.7. Increasing performance using parallelism</a></span></dt><dt><span class="section"><a href="#ugr.tug.application.jmx">3.8. Monitoring AE Performance using JMX</a></span></dt><dt><spa n class="section"><a href="#tug.application.pto">3.9. Performance Tuning Options</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tug.fc">4. Flow Controller Developer's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.fc.developing_fc_code">4.1. Developing the Flow Controller Code</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.fc.fc_interface_overview">4.1.1. Flow Controller Interface Overview</a></span></dt><dt><span class="section"><a href="#ugr.tug.fc.example_code">4.1.2. Example Code</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.fc.creating_fc_descriptor">4.2. Creating the Flow Controller Descriptor</a></span></dt><dt><span class="section"><a href="#ugr.tug.fc.adding_fc_to_aggregate">4.3. Adding Flow Controller to an Aggregate</a></span></dt><dt><span class="section"><a href="#ugr.tug.fc.adding_fc_to_cpe">4.4. Adding Flow Controller to CPE</a></span></dt><dt><span class="section"><a href="#ugr.tug .fc.using_fc_with_cas_multipliers">4.5. Using Flow Controllers with CAS Multipliers</a></span></dt><dt><span class="section"><a href="#ugr.tug.fc.continuing_when_exceptions_occur">4.6. Continuing the Flow When Exceptions Occur</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tug.aas">5. Annotations, Artifacts & Sofas</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aas.terminology">5.1. Terminology</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aas.artifact">5.1.1. Artifact</a></span></dt><dt><span class="section"><a href="#ugr.tug.aas.sofa">5.1.2. Subject of Analysis — Sofa</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.aas.sofa_data_formats">5.2. Formats of Sofa Data</a></span></dt><dt><span class="section"><a href="#ugr.tug.aas.setting_accessing_sofa_data">5.3. Setting and Accessing Sofa Data</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aas.setting_sofa_data">5.3.1. Setting Sofa Data</a></span></dt><dt><span class="section"><a href="#ugr.tug.aas.accessing_sofa_data">5.3.2. Accessing Sofa Data</a></span></dt><dt><span class="section"><a href="#ugr.tug.aas.accessing_sofa_data_using_java_stream">5.3.3. Accessing Sofa Data using a Java Stream</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.aas.sofa_fs">5.4. The Sofa Feature Structure</a></span></dt><dt><span class="section"><a href="#ugr.tug.aas.annotations">5.5. Annotations</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.aas.built_in_annotation_types">5.5.1. Built-in Annotation types</a></span></dt><dt><span class="section"><a href="#ugr.tug.aas.annotations_associated_sofa">5.5.2. Annotations have an associated Sofa</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.aas.annotationbase">5.6. AnnotationBase</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tug.mvs">6. Multiple CAS Views</a></span></dt><dd><dl><dt><span class="section" ><a href="#ugr.tug.mvs.cas_views_and_sofas">6.1. CAS Views and >Sofas</a></span></dt><dd><dl><dt><span class="section"><a >href="#ugr.tug.mvs.naming_views_sofas">6.1.1. Naming CAS Views and >Sofas</a></span></dt><dt><span class="section"><a >href="#ugr.tug.mvs.multi_view_and_single_view">6.1.2. Multi/Single View parts >in Applications</a></span></dt></dl></dd><dt><span class="section"><a >href="#ugr.tug.mvs.multi_view_components">6.2. Multi-View >Components</a></span></dt><dd><dl><dt><span class="section"><a >href="#ugr.tug.mvs.deciding_multi_view">6.2.1. Deciding: >Multi-View</a></span></dt><dt><span class="section"><a >href="#ugr.tug.mvs.additional_capabilities">6.2.2. Multi-View: additional >capabilities</a></span></dt><dt><span class="section"><a >href="#ugr.tug.mvs.component_xml_metadata">6.2.3. Component XML >metadata</a></span></dt></dl></dd><dt><span class="section"><a >href="#ugr.tug.mvs.sofa_capabilities_and_apis_for_apps">6.3. Sofa >Capabilities & APIs for Apps</a></span></dt><dt><s pan class="section"><a href="#ugr.tug.mvs.sofa_name_mapping">6.4. Sofa Name Mapping</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.mvs.name_mapping_aggregate">6.4.1. Name Mapping in an Aggregate Descriptor</a></span></dt><dt><span class="section"><a href="#ugr.tug.mvs.name_mapping_cpe">6.4.2. Name Mapping in a CPE Descriptor</a></span></dt><dt><span class="section"><a href="#ugr.tug.mvs.specifying_cas_view_for_process">6.4.3. CAS View received by Process</a></span></dt><dt><span class="section"><a href="#ugr.tug.mvs.name_mapping_application">6.4.4. Name Mapping in a UIMA Application</a></span></dt><dt><span class="section"><a href="#ugr.tug.mvs.name_mapping_remote_services">6.4.5. Name Mapping for Remote Services</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.mvs.jcas_extensions_for_multi_views">6.5. JCas extensions for Multiple Views</a></span></dt><dt><span class="section"><a href="#ugr.tug.mvs.sample_application">6.6. Sample Multi-View Application</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.mvs.sample_application.descriptor">6.6.1. Annotator Descriptor</a></span></dt><dt><span class="section"><a href="#ugr.tug.mvs.sample_application.setup">6.6.2. Application Setup</a></span></dt><dt><span class="section"><a href="#ugr.tug.mvs.sample_applic ation.annotator_processing">6.6.3. Annotator Processing</a></span></dt><dt><span class="section"><a href="#ugr.tug.mvs.sample_application.accessing_results">6.6.4. Accessing the results of analysis</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.mvs.views_api_summary">6.7. Views API Summary</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tug.cm">7. CAS Multiplier</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cm.developing_multiplier_code">7.1. Developing the CAS Multiplier Code</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cm.cm_interface_overview">7.1.1. CAS Multiplier Interface Overview</a></span></dt><dt><span class="section"><a href="#ugr.tug.cm.how_to_get_empty_cas_instance">7.1.2. Getting an empty CAS Instance</a></span></dt><dt><span class="section"><a href="#ugr.tug.cm.example_code">7.1.3. Example Code</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.cm.creating_cm_descriptor" >7.2. CAS Multiplier Descriptor</a></span></dt><dt><span class="section"><a >href="#ugr.tug.cm.using_cm_in_aae">7.3. Using CAS Multipliers in >Aggregates</a></span></dt><dd><dl><dt><span class="section"><a >href="#ugr.tug.cm.adding_cm_to_aggregate">7.3.1. Aggregate: Adding the CAS >Multiplier</a></span></dt><dt><span class="section"><a >href="#ugr.tug.cm.cm_and_fc">7.3.2. CAS Multipliers and Flow >Control</a></span></dt><dt><span class="section"><a >href="#ugr.tug.cm.aggregate_cms">7.3.3. Aggregate CAS >Multipliers</a></span></dt></dl></dd><dt><span class="section"><a >href="#ugr.tug.cm.using_cm_in_cpe">7.4. CAS Multipliers in >CPE's</a></span></dt><dt><span class="section"><a >href="#ugr.tug.cm.calling_cm_from_app">7.5. Applications: Calling CAS >Multipliers</a></span></dt><dd><dl><dt><span class="section"><a >href="#ugr.tug.cm.retrieving_output_cases">7.5.1. Output >CASes</a></span></dt><dt><span class="section"><a >href="#ugr.tug.cm.using_cm_with_other_aes">7.5.2. CAS Multipliers with other >AEs </a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tug.cm.using_cm_to_merge_cases">7.6. Merging with CAS Multipliers</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.cm.overview_of_how_to_merge_cases">7.6.1. CAS Merging Overview</a></span></dt><dt><span class="section"><a href="#ugr.tug.cm.example_cas_merger">7.6.2. Example CAS Merger</a></span></dt><dt><span class="section"><a href="#ugr.tug.cm.using_the_simple_text_merger_in_an_aggregate_ae">7.6.3. SimpleTextMerger in an Aggregate</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#ugr.tug.xmi_emf">8. XMI & EMF</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.xmi_emf.overview">8.1. Overview</a></span></dt><dt><span class="section"><a href="#ugr.tug.xmi_emf.converting_ecore_to_from_uima_type_system">8.2. Converting an Ecore Model to or from a UIMA Type System</a></span></dt><dt><span class="section"><a href="#ugr.tug.xmi_emf.using_xmi_cas_serialization">8.3. Using XMI CAS Serialization</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.xmi_emf.xml_character_issues">8.3.1. Character Encoding Issues with XML Serialization</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#ugr.tug.type_mapping">9. Managing different TypeSystems</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tug.type_mapping.type_merging">9.1. Annotators, Type Merging, and Remotes</a></span></dt><dt><span class="section"><a href="#ugr.tug.type_mapping.remote_support">9.2. Supporting Remote Annotators</a></span></dt><dt><span class="section"><a href="#ugr.tug.type_mapping.allowed_differences">9.3. Type filtering support in Binary Compressed Serialization/Deserialization</a></span></dt><dt><span class="section"><a href="#ugr.tug.type_mapping.compressed">9.4. Remote Services support with Compressed Binary Serialization</a></span></dt><dt><span class="section"><a href="#ugr.tug.type_filtering.compressed_file">9.5. Compressed B inary serialization to/from files</a></span></dt></dl></dd></dl></div> @@ -44,7 +44,7 @@ - <div class="chapter" title="Chapter 1. Annotator and Analysis Engine Developer's Guide" id="ugr.tug.aae"><div class="titlepage"><div><div><h2 class="title">Chapter 1. Annotator and Analysis Engine Developer's Guide</h2></div></div></div> + <div class="chapter" id="ugr.tug.aae"><div class="titlepage"><div><div><h1 class="title">Chapter 1. Annotator and Analysis Engine Developer's Guide</h1></div></div></div> @@ -114,7 +114,7 @@ <p>This guide is organized as follows:</p> - <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> + <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <p><span class="bold-italic"><a class="xref" href="#ugr.tug.aae.getting_started" title="1.1. Getting Started">Section 1.1, “Getting Started”</a></span> is a tutorial with step-by-step instructions for how to develop and test a simple UIMA annotator.</p> </li><li class="listitem"> @@ -129,7 +129,7 @@ <p><span class="bold-italic"><a class="xref" href="#ugr.tug.aae.other_examples" title="1.4. Other examples">Section 1.4, “Other examples”</a></span> describes several other examples you may find interesting, including</p> - <div class="itemizedlist"><ul class="itemizedlist" type="circle" compact><li class="listitem"> + <div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle; "><li class="listitem"> <p>SimpleTokenAndSentenceAnnotator – a simple tokenizer and sentence annotator.</p> </li><li class="listitem"> @@ -153,7 +153,7 @@ information on application development, see <a href="tutorials_and_users_guides.html#ugr.tug.application" class="olink">Chapter 3: “Application Developer's Guide”</a> .</p> - <div class="section" title="1.1. Getting Started"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tug.aae.getting_started">1.1. Getting Started</h2></div></div></div> + <div class="section" id="ugr.tug.aae.getting_started"><div class="titlepage"><div><div><h2 class="title" style="clear: both">1.1. Getting Started</h2></div></div></div> <p>This section is a step-by-step tutorial that will get you started developing UIMA @@ -166,9 +166,9 @@ Javadocs to the jar files. Also you may wish to refer to the UIMA SDK Javadocs located in the <a class="ulink" href="api/index.html" target="_top">docs/api/index.html</a> directory.</p> - <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you hover over a UIMA class or method defined in the UIMA SDK + <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you hover over a UIMA class or method defined in the UIMA SDK Javadocs, the Javadocs appear after a short delay. </p></div> - <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you downloaded the source distribution for UIMA, you can attach that as + <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you downloaded the source distribution for UIMA, you can attach that as well to the library Jar files; for information on how to do this, see <a href="references.html#d5e1" class="olink">UIMA References</a> <a href="references.html#ugr.ref.javadocs" class="olink">Chapter 1, <i>Javadocs</i></a>.</p></div> @@ -177,18 +177,18 @@ rooms where the room numbering scheme follows some simple conventions. In our example, there are two kinds of patterns we want to find; here are some examples, together with their corresponding regular expression patterns: - </p><div class="variablelist"><dl><dt><span class="term">Yorktown patterns:</span></dt><dd><p>20-001, 31-206, 04-123(Regular Expression Pattern: + </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Yorktown patterns:</span></dt><dd><p>20-001, 31-206, 04-123(Regular Expression Pattern: ##-[0-2]##)</p></dd><dt><span class="term">Hawthorne patterns:</span></dt><dd><p>GN-K35, 1S-L07, 4N-B21 (Regular Expression Pattern: [G1-4][NS]-[A-Z]##)</p></dd></dl></div><p> </p> <p>There are several steps to develop and test a simple UIMA annotator.</p> - <div class="orderedlist"><ol class="orderedlist" type="1" compact><li class="listitem"><p>Define the CAS types that the + <div class="orderedlist"><ol class="orderedlist compact" type="1"><li class="listitem"><p>Define the CAS types that the annotator will use.</p></li><li class="listitem"><p>Generate the Java classes for these types.</p></li><li class="listitem"><p>Write the actual annotator Java code.</p></li><li class="listitem"><p>Create the Analysis Engine descriptor.</p></li><li class="listitem"><p>Test the annotator. </p></li></ol></div> <p>These steps are discussed in the next sections.</p> - <div class="section" title="1.1.1. Defining Types"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.defining_types">1.1.1. Defining Types</h3></div></div></div> + <div class="section" id="ugr.tug.aae.defining_types"><div class="titlepage"><div><div><h3 class="title">1.1.1. Defining Types</h3></div></div></div> <p>The first step in developing an annotator is to define the CAS Feature Structure @@ -283,7 +283,7 @@ </div> - <div class="section" title="1.1.2. Generating Java Source Files for CAS Types"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.generating_jcas_sources">1.1.2. Generating Java Source Files for CAS Types</h3></div></div></div> + <div class="section" id="ugr.tug.aae.generating_jcas_sources"><div class="titlepage"><div><div><h3 class="title">1.1.2. Generating Java Source Files for CAS Types</h3></div></div></div> <p>When you save a descriptor that you have modified, the Component Descriptor @@ -299,7 +299,7 @@ <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image004.jpg" width="564" alt="Screenshot of enabling automatic running of JCasGen"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image004.jpg" width="564" alt="Screenshot of enabling automatic running of JCasGen"></td></tr></table></div> </div> <p>The Java class for the example org.apache.uima.tutorial.RoomNumber type can @@ -315,7 +315,7 @@ <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image006.jpg" width="564" alt="Screenshot of JCasGen"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image006.jpg" width="564" alt="Screenshot of JCasGen"></td></tr></table></div> </div> <p>Use the <span class="quote">“<span class="quote">Browse</span>”</span> buttons to select your input file @@ -328,13 +328,13 @@ refer to the <a href="tools.html#d5e1" class="olink">UIMA Tools Guide and Reference</a> <a href="tools.html#ugr.tools.jcasgen" class="olink">Chapter 8, <i>JCasGen User's Guide</i></a> for details.</p> </div> - <div class="section" title="1.1.3. Developing Your Annotator Code"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.developing_annotator_code">1.1.3. Developing Your Annotator Code</h3></div></div></div> + <div class="section" id="ugr.tug.aae.developing_annotator_code"><div class="titlepage"><div><div><h3 class="title">1.1.3. Developing Your Annotator Code</h3></div></div></div> <p>Annotator implementations all implement a standard interface (AnalysisComponent), having several methods, the most important of which are: - </p><div class="itemizedlist"><ul class="itemizedlist" type="disc" compact><li class="listitem"> + </p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc; "><li class="listitem"> <p><code class="literal">initialize</code>, </p> </li><li class="listitem"> <p><code class="literal">process</code>, and </p> @@ -354,17 +354,17 @@ <p>Annotators are not required to extend from the JCasAnnotator_ImplBase class; they may instead directly implement the AnalysisComponent interface, and provide all method implementations themselves. - <sup>[<a name="d5e222" href="#ftn.d5e222" class="footnote">1</a>]</sup> This allows you to have + <a href="#ftn.d5e222" class="footnote"><sup class="footnote" id="d5e222">[1]</sup></a> This allows you to have your annotator inherit from some other superclass if necessary. If you would like to do this, see the Javadocs for JCasAnnotator for descriptions of the methods you must implement.</p> <p>Annotator classes need to be public, cannot be declared abstract, and must have public, 0-argument - constructors, so that they can be instantiated by the framework. <sup>[<a name="d5e229" href="#ftn.d5e229" class="footnote">2</a>]</sup> .</p> + constructors, so that they can be instantiated by the framework. <a href="#ftn.d5e229" class="footnote"><sup class="footnote" id="d5e229">[2]</sup></a> .</p> <p>The class definition for our RoomNumberAnnotator implements the process method, and is shown here. You can find the source for this in the <code class="literal">uimaj-examples/src/org/apache/uima/tutorial/ex1/RoomNumberAnnotator.java</code> . - </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3> + </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3> <p>In Eclipse, in the <span class="quote">“<span class="quote">Package Explorer</span>”</span> view, this will appear by default in the project <code class="literal">uimaj-examples</code>, in the folder <code class="literal">src</code>, in the package <code class="literal">org.apache.uima.tutorial.ex1</code>.</p></div><p> In Eclipse, open the @@ -404,7 +404,7 @@ public class RoomNumberAnnotator extends <p>The only method that we are required to implement is <code class="literal">process</code>. This method is typically called once for each document that is being analyzed. This method takes one argument, which is a JCas instance; - this holds the document to be analyzed and all of the analysis results. <sup>[<a name="d5e243" href="#ftn.d5e243" class="footnote">3</a>]</sup></p> + this holds the document to be analyzed and all of the analysis results. <a href="#ftn.d5e243" class="footnote"><sup class="footnote" id="d5e243">[3]</sup></a></p> <pre class="programlisting">public void process(JCas aJCas) { @@ -449,11 +449,11 @@ annotation.setBuilding("Yorktown");</pre an index of all annotations in their order from beginning to end of the document. Subsequent annotators or applications use the indexes to iterate over the annotations. </p> - <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3> + <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3> <p> If you don't add the instance to the indexes, it cannot be retrieved by down-stream annotators, using the indexes. </p></div> - <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3> + <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3> <p>You can also call <code class="literal">addToIndexes()</code> on Feature Structures that are not subtypes of <code class="literal">uima.tcas.Annotation</code>, but these will not be sorted in any particular way. If you want to specify a sort order, you can define your own custom indexes in the CAS: see @@ -462,7 +462,7 @@ annotation.setBuilding("Yorktown");</pre <p>We're almost ready to test the RoomNumberAnnotator. There is just one more step remaining.</p> </div> - <div class="section" title="1.1.4. Creating the XML Descriptor"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.creating_xml_descriptor">1.1.4. Creating the XML Descriptor</h3></div></div></div> + <div class="section" id="ugr.tug.aae.creating_xml_descriptor"><div class="titlepage"><div><div><h3 class="title">1.1.4. Creating the XML Descriptor</h3></div></div></div> <p>The UIMA architecture requires that descriptive information about an @@ -470,7 +470,7 @@ annotation.setBuilding("Yorktown");</pre file(s) to the UIMA framework at run time. This XML file is called an <span class="emphasis"><em>Analysis Engine Descriptor</em></span>. The descriptor includes: - </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Name, description, version, and vendor</p> + </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Name, description, version, and vendor</p> </li><li class="listitem"><p>The annotator's inputs and outputs, defined in terms of the types in a Type System Descriptor</p></li><li class="listitem"><p>Declaration of the configuration parameters that the annotator accepts </p></li></ul></div><p> </p> @@ -483,7 +483,7 @@ annotation.setBuilding("Yorktown");</pre distribution under the name <code class="literal">descriptors/tutorial/ex1/RoomNumberAnnotator.xml.</code> To edit it in Eclipse, right-click on that file in the navigator and select Open With - <span class="symbol">→</span> Component Descriptor Editor.</p> <div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>In Eclipse, you can double + <span class="symbol">→</span> Component Descriptor Editor.</p> <div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>In Eclipse, you can double click on the tab at the top of the Component Descriptor Editor's window identifying the currently selected editor, and the window will <span class="quote">“<span class="quote">Maximize</span>”</span>. Double click it again to restore the original size.</p> @@ -503,7 +503,7 @@ annotation.setBuilding("Yorktown");</pre <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image008.jpg" width="564" alt="Screenshot of Component Descriptor Editor overview page"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image008.jpg" width="564" alt="Screenshot of Component Descriptor Editor overview page"></td></tr></table></div> </div> <p>This presents an overview of the RoomNumberAnnotator Analysis Engine (AE). The @@ -526,7 +526,7 @@ annotation.setBuilding("Yorktown");</pre <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image010.jpg" width="564" alt="Screenshot of CDE Type System page"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image010.jpg" width="564" alt="Screenshot of CDE Type System page"></td></tr></table></div> </div> <p>On the Capabilities page, we define our annotator's inputs and outputs, in @@ -534,7 +534,7 @@ annotation.setBuilding("Yorktown");</pre <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="525"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image012.jpg" width="525" alt="Screenshot of CDE Capabilities page"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="525"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image012.jpg" width="525" alt="Screenshot of CDE Capabilities page"></td></tr></table></div> </div> <p>Although capabilities come in sets, having multiple sets is deprecated; here @@ -557,7 +557,7 @@ annotation.setBuilding("Yorktown");</pre <span class="quote">“<span class="quote">Source</span>”</span> tab at the bottom to view the generated XML.</p> </div> - <div class="section" title="1.1.5. Testing Your Annotator"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.testing_your_annotator">1.1.5. Testing Your Annotator</h3></div></div></div> + <div class="section" id="ugr.tug.aae.testing_your_annotator"><div class="titlepage"><div><div><h3 class="title">1.1.5. Testing Your Annotator</h3></div></div></div> <p>Having developed an annotator, we need a way to try it out on some example @@ -573,7 +573,7 @@ annotation.setBuilding("Yorktown");</pre <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image014.jpg" width="564" alt="Screenshot of UIMA Document Analyzer GUI"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image014.jpg" width="564" alt="Screenshot of UIMA Document Analyzer GUI"></td></tr></table></div> </div> <p>There are six options on this screen:</p> @@ -600,7 +600,7 @@ annotation.setBuilding("Yorktown");</pre <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="347"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image016.jpg" width="347" alt="Screenshot of UIMA Document Analyzer Results GUI"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="347"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image016.jpg" width="347" alt="Screenshot of UIMA Document Analyzer Results GUI"></td></tr></table></div> </div> <p>Make sure <span class="quote">“<span class="quote">Java Viewer</span>”</span> is selected as the Results Display @@ -610,11 +610,11 @@ annotation.setBuilding("Yorktown");</pre <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image018.jpg" width="564" alt="Screenshot of UIMA CAS Annotation Viewer GUI"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image018.jpg" width="564" alt="Screenshot of UIMA CAS Annotation Viewer GUI"></td></tr></table></div> </div> <p>You can click the mouse on one of the highlighted annotations to see a list of all - its features in the frame on the right.</p> <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The legend will only show + its features in the frame on the right.</p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The legend will only show those types which have at least one instance in the CAS, and are declared as outputs in the capabilities section of the descriptor (see <a class="xref" href="#ugr.tug.aae.creating_xml_descriptor" title="1.1.4. Creating the XML Descriptor">Section 1.1.4, “Creating the XML Descriptor”</a>. </p></div> @@ -624,10 +624,10 @@ annotation.setBuilding("Yorktown");</pre </div> </div> - <div class="section" title="1.2. Configuration and Logging"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tug.aae.configuration_logging">1.2. Configuration and Logging</h2></div></div></div> + <div class="section" id="ugr.tug.aae.configuration_logging"><div class="titlepage"><div><div><h2 class="title" style="clear: both">1.2. Configuration and Logging</h2></div></div></div> - <div class="section" title="1.2.1. Configuration Parameters"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.configuration_parameters">1.2.1. Configuration Parameters</h3></div></div></div> + <div class="section" id="ugr.tug.aae.configuration_parameters"><div class="titlepage"><div><div><h3 class="title">1.2.1. Configuration Parameters</h3></div></div></div> <p>The example RoomNumberAnnotator from the previous section used hardcoded @@ -641,7 +641,7 @@ annotation.setBuilding("Yorktown");</pre descriptors. The descriptor also specifies default values for the parameters, though these can be overridden at runtime.</p> - <div class="section" title="1.2.1.1. Declaring Parameters in the Descriptor"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.declaring_parameters_in_the_descriptor">1.2.1.1. Declaring Parameters in the Descriptor</h4></div></div></div> + <div class="section" id="ugr.tug.aae.declaring_parameters_in_the_descriptor"><div class="titlepage"><div><div><h4 class="title">1.2.1.1. Declaring Parameters in the Descriptor</h4></div></div></div> <p>The example descriptor @@ -656,7 +656,7 @@ annotation.setBuilding("Yorktown");</pre <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image020.jpg" width="564" alt="Screenshot of UIMA Component Descriptor Editor (CDE) Parameters page"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image020.jpg" width="564" alt="Screenshot of UIMA Component Descriptor Editor (CDE) Parameters page"></td></tr></table></div> </div> <p>Two parameters – Patterns and Locations -- have been declared. In this @@ -664,7 +664,7 @@ annotation.setBuilding("Yorktown");</pre description in the small popup window. Every parameter has the following information associated with it:</p> - <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>name – the name by which the annotator code + <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>name – the name by which the annotator code refers to the parameter</p></li><li class="listitem"><p>description – a natural language description of the intent of the parameter</p></li><li class="listitem"><p>type – the data type of the parameter's value – must be one of String, Integer, Float, or Boolean.</p></li><li class="listitem"><p>multiValued – true if the parameter can take @@ -681,7 +681,7 @@ annotation.setBuilding("Yorktown");</pre <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image022.jpg" width="564" alt="Screenshot of UIMA Component Descriptor Editor (CDE) Parameter Settings page"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image022.jpg" width="564" alt="Screenshot of UIMA Component Descriptor Editor (CDE) Parameter Settings page"></td></tr></table></div> </div> <p>Here the <span class="quote">“<span class="quote">Patterns</span>”</span> parameter is selected, and the right pane @@ -690,7 +690,7 @@ annotation.setBuilding("Yorktown");</pre new, for matching the style of room numbers in the third building, which has room numbers such as <code class="literal">J2-A11</code>.</p> </div> - <div class="section" title="1.2.1.2. Accessing Parameter Values from the Annotator Code"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.accessing_parameter_values_from_annotator">1.2.1.2. Accessing Parameter Values from the Annotator Code</h4></div></div></div> + <div class="section" id="ugr.tug.aae.accessing_parameter_values_from_annotator"><div class="titlepage"><div><div><h4 class="title">1.2.1.2. Accessing Parameter Values from the Annotator Code</h4></div></div></div> <p>The class @@ -747,7 +747,7 @@ public void initialize(UimaContext aCont detected by the ex1 version of RoomNumberAnnotator.</p> </div> - <div class="section" title="1.2.1.3. Supporting Reconfiguration"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.supporting_reconfiguration">1.2.1.3. Supporting Reconfiguration</h4></div></div></div> + <div class="section" id="ugr.tug.aae.supporting_reconfiguration"><div class="titlepage"><div><div><h4 class="title">1.2.1.3. Supporting Reconfiguration</h4></div></div></div> <p>If you take a look at the Javadocs (located in the <a class="ulink" href="api/index.html" target="_top">docs/api</a> directory) for @@ -767,7 +767,7 @@ public void initialize(UimaContext aCont </div> - <div class="section" title="1.2.1.4. Configuration Parameter Groups"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.configuration_parameter_groups">1.2.1.4. Configuration Parameter Groups</h4></div></div></div> + <div class="section" id="ugr.tug.aae.configuration_parameter_groups"><div class="titlepage"><div><div><h4 class="title">1.2.1.4. Configuration Parameter Groups</h4></div></div></div> <p>For annotators with many sets of configuration parameters, UIMA supports @@ -784,7 +784,7 @@ public void initialize(UimaContext aCont both the group name and the parameter name as its arguments.</p> </div> - <div class="section" title="1.2.1.5. Overriding Configuration Parameter Settings"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.configuration_parameter_overrides">1.2.1.5. Overriding Configuration Parameter Settings</h4></div></div></div> + <div class="section" id="ugr.tug.aae.configuration_parameter_overrides"><div class="titlepage"><div><div><h4 class="title">1.2.1.5. Overriding Configuration Parameter Settings</h4></div></div></div> <p>There are two ways that the value assigned to a configuration parameter can be @@ -807,7 +807,7 @@ public void initialize(UimaContext aCont </div> </div> - <div class="section" title="1.2.2. Logging"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.logging">1.2.2. Logging</h3></div></div></div> + <div class="section" id="ugr.tug.aae.logging"><div class="titlepage"><div><div><h3 class="title">1.2.2. Logging</h3></div></div></div> <p>The UIMA SDK provides a logging facility, which is very similar to the @@ -863,7 +863,7 @@ public void initialize(UimaContext aCont the logger, to indicate logging for that level. For example, you could say <code class="code">aLogger.log(Level.INFO, message)</code> but you can also say <code class="code">aLogger.info(message)</code>). The level ordering, highest to lowest, and the associated method names are as follows: - </p><div class="itemizedlist"><ul class="itemizedlist" type="disc" compact><li class="listitem"><p>SEVERE or ERROR; error(...)</p></li><li class="listitem"><p>WARN or WARNING; warn(...)</p></li><li class="listitem"><p>INFO; info(...)</p></li><li class="listitem"><p>CONFIG; info(UIMA_MARKER_CONFIG, ...)</p></li><li class="listitem"><p>FINE or DEBUG; debug(...)</p></li><li class="listitem"><p>FINER or TRACE; trace(...)</p></li><li class="listitem"><p>FINEST; trace(UIMA_MARKER_FINEST, ...)</p></li></ul></div><p> + </p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc; "><li class="listitem"><p>SEVERE or ERROR; error(...)</p></li><li class="listitem"><p>WARN or WARNING; warn(...)</p></li><li class="listitem"><p>INFO; info(...)</p></li><li class="listitem"><p>CONFIG; info(UIMA_MARKER_CONFIG, ...)</p></li><li class="listitem"><p>FINE or DEBUG; debug(...)</p></li><li class="listitem"><p>FINER or TRACE; trace(...)</p></li><li class="listitem"><p>FINEST; trace(UIMA_MARKER_FINEST, ...)</p></li></ul></div><p> </p> <p>The CONFIG and FINEST levels are merged with other levels, but are distinguished by having @@ -897,7 +897,7 @@ public void initialize(UimaContext aCont (often the <span class="quote">“<span class="quote">project</span>”</span> directory when running from Eclipse, for instance).</p> - <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>When using Eclipse, the uima.log file, if written + <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>When using Eclipse, the uima.log file, if written into the Eclipse workspace in the project uimaj-examples, for example, may not appear in the Eclipse package explorer view until you right-click the uimaj-examples project with the mouse, and select <span class="quote">“<span class="quote">Refresh</span>”</span>. This operation refreshes the @@ -910,7 +910,7 @@ public void initialize(UimaContext aCont Java logger. See the documentation for other logging back ends for details on how to configure those.</p> - <div class="section" title="1.2.2.1. Specifying the Logging Configuration when using Java's built-in logger"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.logging.configuring">1.2.2.1. Specifying the Logging Configuration when using Java's built-in logger</h4></div></div></div> + <div class="section" id="ugr.tug.aae.logging.configuring"><div class="titlepage"><div><div><h4 class="title">1.2.2.1. Specifying the Logging Configuration when using Java's built-in logger</h4></div></div></div> <p>The @@ -937,7 +937,7 @@ public void initialize(UimaContext aCont </p><pre class="programlisting">java "-Djava.util.logging.config.file=C:/Program Files/apache-uima/config/Logger.properties"</pre><p> - </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>In a shell script, you can use environment variables such as + </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>In a shell script, you can use environment variables such as UIMA_HOME if convenient.</p></div><p> </p> <p>If you are using Eclipse to launch your application, you can set this property @@ -955,7 +955,7 @@ public void initialize(UimaContext aCont </p> </div> - <div class="section" title="1.2.2.2. Setting Logging Levels when using Java's built-in logger"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.logging.setting_logging_levels">1.2.2.2. Setting Logging Levels when using Java's built-in logger</h4></div></div></div> + <div class="section" id="ugr.tug.aae.logging.setting_logging_levels"><div class="titlepage"><div><div><h4 class="title">1.2.2.2. Setting Logging Levels when using Java's built-in logger</h4></div></div></div> <p>Within the logging control file, the default global logging level specifies @@ -982,7 +982,7 @@ public void initialize(UimaContext aCont specification for logging in Java 1.4.</p> </div> - <div class="section" title="1.2.2.3. Configuring the format of logging output when using Java's built-in logger"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.logging.output_format">1.2.2.3. Configuring the format of logging output when using Java's built-in logger</h4></div></div></div> + <div class="section" id="ugr.tug.aae.logging.output_format"><div class="titlepage"><div><div><h4 class="title">1.2.2.3. Configuring the format of logging output when using Java's built-in logger</h4></div></div></div> <p>The logging output is formatted by handlers specified in the properties file @@ -999,14 +999,14 @@ public void initialize(UimaContext aCont in!</code></p> </div> - <div class="section" title="1.2.2.4. Meaning of the logging severity levels used by the UIMA logger"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.logging.meaning_of_severity_levels">1.2.2.4. Meaning of the logging severity levels used by the UIMA logger</h4></div></div></div> + <div class="section" id="ugr.tug.aae.logging.meaning_of_severity_levels"><div class="titlepage"><div><div><h4 class="title">1.2.2.4. Meaning of the logging severity levels used by the UIMA logger</h4></div></div></div> <p>These levels are defined by the Java logging framework, which was incorporated into Java as of the 1.4 release level. The levels are defined in the Javadocs for java.util.logging.Level, and include both logging and tracing levels: - </p><div class="itemizedlist"><ul class="itemizedlist" type="disc" compact><li class="listitem"><p>OFF is a special level that can be used to turn off + </p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc; "><li class="listitem"><p>OFF is a special level that can be used to turn off logging.</p></li><li class="listitem"><p>ALL indicates that all messages should be logged. </p> </li><li class="listitem"><p>CONFIG is a message level for configuration messages. These would typically occur once (during configuration) in methods like @@ -1016,14 +1016,14 @@ public void initialize(UimaContext aCont failure.</p></li></ul></div> <p> Tracing levels, typically used for debugging: - </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>FINE is a message level providing tracing information, + </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>FINE is a message level providing tracing information, typically at a collection level (messages occurring once per collection). </p></li><li class="listitem"><p>FINER indicates a fairly detailed tracing message, typically at a document level (once per document).</p></li><li class="listitem"><p>FINEST indicates a highly detailed tracing message. </p> </li></ul></div> </div> - <div class="section" title="1.2.2.5. Using loggers outside of an annotator"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.logging.using_outside_of_an_annotator">1.2.2.5. Using loggers outside of an annotator</h4></div></div></div> + <div class="section" id="ugr.tug.aae.logging.using_outside_of_an_annotator"><div class="titlepage"><div><div><h4 class="title">1.2.2.5. Using loggers outside of an annotator</h4></div></div></div> <p>An application using UIMA may want to log its messages using the same logging @@ -1040,7 +1040,7 @@ public void initialize(UimaContext aCont <span class="quote">“<span class="quote">org.apache.uima</span>”</span>.</p> </div> - <div class="section" title="1.2.2.6. Changing the underlying UIMA logging implementation"><div class="titlepage"><div><div><h4 class="title" id="ugr.tug.aae.logging.change_logger_implementation">1.2.2.6. Changing the underlying UIMA logging implementation</h4></div></div></div> + <div class="section" id="ugr.tug.aae.logging.change_logger_implementation"><div class="titlepage"><div><div><h4 class="title">1.2.2.6. Changing the underlying UIMA logging implementation</h4></div></div></div> <p>By default the UIMA framework uses, under the hood of the UIMA Logger interface, the @@ -1070,7 +1070,7 @@ public void initialize(UimaContext aCont </div> - <div class="section" title="1.2.2.7. Throttling excessive logging from Annotators"><div class="titlepage"><div><div><h4 class="title" id="uv3.logging.suppress_annotator_logging">1.2.2.7. Throttling excessive logging from Annotators</h4></div></div></div> + <div class="section" id="uv3.logging.suppress_annotator_logging"><div class="titlepage"><div><div><h4 class="title">1.2.2.7. Throttling excessive logging from Annotators</h4></div></div></div> <p>Sometimes, in production, you may find annotators are logging excessively, and you wish to throttle @@ -1084,17 +1084,17 @@ public void initialize(UimaContext aCont Any positive number allows that many log records to be logged, per level. A limit of 10 would allow 10 Errors, 10 Warnings, etc. The limit is enforced separately, per logger instance.</p> - <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This only works if the logger used by Annotators is obtained from the + <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This only works if the logger used by Annotators is obtained from the Annotator base implementation class via the <code class="code">getLogger()</code> method.</p></div> </div> </div> </div> - <div class="section" title="1.3. Building Aggregate Analysis Engines"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tug.aae.building_aggregates">1.3. Building Aggregate Analysis Engines</h2></div></div></div> + <div class="section" id="ugr.tug.aae.building_aggregates"><div class="titlepage"><div><div><h2 class="title" style="clear: both">1.3. Building Aggregate Analysis Engines</h2></div></div></div> - <div class="section" title="1.3.1. Combining Annotators"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.combining_annotators">1.3.1. Combining Annotators</h3></div></div></div> + <div class="section" id="ugr.tug.aae.combining_annotators"><div class="titlepage"><div><div><h3 class="title">1.3.1. Combining Annotators</h3></div></div></div> <p>The UIMA SDK makes it very easy to combine any sequence of Analysis Engines to @@ -1114,9 +1114,9 @@ public void initialize(UimaContext aCont RoomNumberAnnotator to create an aggregate Analysis Engine. This is illustrated in the following figure: - </p><div class="figure"><a name="ugr.tug.aae.fig.combining_annotators"></a><div class="figure-contents"> + </p><div class="figure" id="ugr.tug.aae.fig.combining_annotators"><div class="figure-contents"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image024.png" width="564" alt="Combining Annotators to form an Aggregate Analysis Engine"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image024.png" width="564" alt="Combining Annotators to form an Aggregate Analysis Engine"></td></tr></table></div> </div><p class="title"><b>Figure 1.1. Combining Annotators to form an Aggregate Analysis Engine</b></p></div><p><br class="figure-break"> </p> <p>The descriptor that does this is named @@ -1131,7 +1131,7 @@ public void initialize(UimaContext aCont <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image026.jpg" width="564" alt="Aggregate page of the Component Descriptor Editor (CDE)"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image026.jpg" width="564" alt="Aggregate page of the Component Descriptor Editor (CDE)"></td></tr></table></div> </div> <p>On the left side of the screen is the list of component engines that make up the @@ -1139,9 +1139,9 @@ public void initialize(UimaContext aCont RoomNumberAnnotator. To add a component, you can click the <span class="quote">“<span class="quote">Add</span>”</span> button and browse to its descriptor. You can also click the <span class="quote">“<span class="quote">Find AE</span>”</span> button and search for an Analysis Engine in your Eclipse workspace. - </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The <span class="quote">“<span class="quote">AddRemote</span>”</span> button is used for adding components + </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The <span class="quote">“<span class="quote">AddRemote</span>”</span> button is used for adding components which run remotely (for example, on another machine using a remote networking - connection). This capability is described in section <a href="tutorials_and_users_guides.html#ugr.tug.application.how_to_call_a_uima_service" class="olink">Section 3.6.2, “Calling a UIMA Service”</a>,</p> + connection). This capability is described in section <a href="tutorials_and_users_guides.html#ugr.tug.application.how_to_call_a_uima_service" class="olink">Section 3.6.3, “Calling a UIMA Service”</a>,</p> </div><p> </p> <p>The order of the components in the left pane does not imply an order of @@ -1158,7 +1158,7 @@ public void initialize(UimaContext aCont editable. The Type System of an Aggregate Analysis Engine is automatically computed by merging the Type Systems of all of its components.</p> - <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>If the components have different definitions for the same type name, + <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>If the components have different definitions for the same type name, The Component Descriptor Editor will show a warning. It is possible to continue past this warning, in which case your aggregate's type system will have the correct <span class="quote">“<span class="quote">merged</span>”</span> @@ -1174,7 +1174,7 @@ public void initialize(UimaContext aCont </p><div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image028.jpg" width="564" alt="Screen shot of the Capabilities page of the Component Descriptor Editor"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image028.jpg" width="564" alt="Screen shot of the Capabilities page of the Component Descriptor Editor"></td></tr></table></div> </div><p> </p> <p>Note that it is not automatically assumed that all outputs of each component @@ -1189,12 +1189,12 @@ public void initialize(UimaContext aCont should see that RoomNumbers, Dates, and Times are all shown:</p> <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image030.jpg" width="564" alt="Screen shot results of running the Document Analyzer"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image030.jpg" width="564" alt="Screen shot results of running the Document Analyzer"></td></tr></table></div> </div> </div> - <div class="section" title="1.3.2. AAEs can also contain CAS Consumers"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.aaes_can_contain_cas_consumers">1.3.2. AAEs can also contain CAS Consumers</h3></div></div></div> + <div class="section" id="ugr.tug.aae.aaes_can_contain_cas_consumers"><div class="titlepage"><div><div><h3 class="title">1.3.2. AAEs can also contain CAS Consumers</h3></div></div></div> <p>In addition to aggregating Analysis Engines, Aggregates can also contain CAS @@ -1215,7 +1215,7 @@ public void initialize(UimaContext aCont </p> </div> - <div class="section" title="1.3.3. Reading the Results of Previous Annotators"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.reading_results_previous_annotators">1.3.3. Reading the Results of Previous Annotators</h3></div></div></div> + <div class="section" id="ugr.tug.aae.reading_results_previous_annotators"><div class="titlepage"><div><div><h3 class="title">1.3.3. Reading the Results of Previous Annotators</h3></div></div></div> <p>So far, we have been looking at annotators that look directly at the document text. However, annotators @@ -1289,7 +1289,7 @@ for (TimeAnnot : aJCas.getAnnotationInde <div class="screenshot"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image032.jpg" width="564" alt="Screen shot of Capabilities page of the Component Descriptor Editor"></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image032.jpg" width="564" alt="Screen shot of Capabilities page of the Component Descriptor Editor"></td></tr></table></div> </div> <p>If we were to run the MeetingAnnotator on its own, it wouldn't detect anything because it @@ -1300,22 +1300,22 @@ for (TimeAnnot : aJCas.getAnnotationInde <code class="literal">examples/descriptors/tutorial/ex4/MeetingDetectorAE.xml</code> . Give it a try in the Document Analyzer. - </p><div class="figure"><a name="ugr.tug.aae.fig.aggregate_for_meeting_annotator"></a><div class="figure-contents"> + </p><div class="figure" id="ugr.tug.aae.fig.aggregate_for_meeting_annotator"><div class="figure-contents"> - <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image034.png" width="564" alt="An Aggregate Analysis Engine where an internal component uses output from previous engines."></td></tr></table></div> + <div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" style="cellpadding: 0; cellspacing: 0;" width="564"><tr><td><img src="images/tutorials_and_users_guides/tug.aae/image034.png" width="564" alt="An Aggregate Analysis Engine where an internal component uses output from previous engines."></td></tr></table></div> </div><p class="title"><b>Figure 1.2. An Aggregate Analysis Engine where an internal component uses output from previous engines</b></p></div><p><br class="figure-break"> </p> </div> </div> - <div class="section" title="1.4. Other examples"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tug.aae.other_examples">1.4. Other examples</h2></div></div></div> + <div class="section" id="ugr.tug.aae.other_examples"><div class="titlepage"><div><div><h2 class="title" style="clear: both">1.4. Other examples</h2></div></div></div> <p>The UIMA SDK include several other examples you may find interesting, including</p> - <div class="itemizedlist"><ul class="itemizedlist" type="disc" compact><li class="listitem"><p>SimpleTokenAndSentenceAnnotator – a simple tokenizer and + <div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc; "><li class="listitem"><p>SimpleTokenAndSentenceAnnotator – a simple tokenizer and sentence annotator.</p></li><li class="listitem"><p>XmlDetagger – A multi-sofa annotator that does XML detagging. Multiple Sofas (Subjects of Analysis) are described in a later – see <a href="tutorials_and_users_guides.html#ugr.tug.mvs" class="olink">Chapter 6, <i>Multiple CAS Views of an Artifact</i></a>. Reads XML data from the input Sofa @@ -1327,10 +1327,10 @@ for (TimeAnnot : aJCas.getAnnotationInde example, hooks up with the Open Source Apache Derby database. </p></li></ul></div> </div> - <div class="section" title="1.5. Additional Topics"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tug.aae.additional_topics">1.5. Additional Topics</h2></div></div></div> + <div class="section" id="ugr.tug.aae.additional_topics"><div class="titlepage"><div><div><h2 class="title" style="clear: both">1.5. Additional Topics</h2></div></div></div> - <div class="section" title="1.5.1. Contract: Annotator Methods Called by the Framework"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.contract_for_annotator_methods">1.5.1. Contract: Annotator Methods Called by the Framework</h3></div></div></div> + <div class="section" id="ugr.tug.aae.contract_for_annotator_methods"><div class="titlepage"><div><div><h3 class="title">1.5.1. Contract: Annotator Methods Called by the Framework</h3></div></div></div> @@ -1345,28 +1345,28 @@ for (TimeAnnot : aJCas.getAnnotationInde called, and the requirements annotator implementations must follow.</p> <div class="informaltable"> - <table style="border-collapse: collapse;border-top: 0.5pt solid black; border-bottom: 0.5pt solid black; border-left: 0.5pt solid black; border-right: 0.5pt solid black; "><colgroup><col class="c1"><col class="c2"><col class="c3"></colgroup><thead><tr><th style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; " align="center">Method</th><th style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; " align="center">When Called by Framework</th><th style="border-bottom: 0.5pt solid black; " align="center">Requirements</th></tr></thead><tbody><tr><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">initialize</td><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">Typically only called once, when instance is created. Can be called + <table class="informaltable" style="border-collapse: collapse;border-top: 1px solid black; border-bottom: 1px solid black; border-left: 1px solid black; border-right: 1px solid black; "><colgroup><col class="c1"><col class="c2"><col class="c3"></colgroup><thead><tr><th style="border-right: 1px solid black; border-bottom: 1px solid black; " align="center">Method</th><th style="border-right: 1px solid black; border-bottom: 1px solid black; " align="center">When Called by Framework</th><th style="border-bottom: 1px solid black; " align="center">Requirements</th></tr></thead><tbody><tr><td style="border-right: 1px solid black; border-bottom: 1px solid black; ">initialize</td><td style="border-right: 1px solid black; border-bottom: 1px solid black; ">Typically only called once, when instance is created. Can be called again if application does a reinitialize call and the default behavior isn't overridden (the default behavior for reinitialize is to call <code class="literal">destroy</code> followed by - <code class="literal">initialize</code></td><td style="border-bottom: 0.5pt solid black; ">Normally does one-time initialization, including reading of + <code class="literal">initialize</code></td><td style="border-bottom: 1px solid black; ">Normally does one-time initialization, including reading of configuration parameters. If the application changes the parameters, it can call initialize to have the annotator re-do its - initialization.</td></tr><tr><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">typeSystemInit</td><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">Called before <code class="literal">process</code> whenever the type system + initialization.</td></tr><tr><td style="border-right: 1px solid black; border-bottom: 1px solid black; ">typeSystemInit</td><td style="border-right: 1px solid black; border-bottom: 1px solid black; ">Called before <code class="literal">process</code> whenever the type system in the CAS being passed in differs from what was previously passed in a <code class="literal">process</code> call (and called for the first CAS passed in, too). The Type System being passed to an annotator only changes in the case of remote annotators that are active as servers, receiving possibly - different type systems to operate on.</td><td style="border-bottom: 0.5pt solid black; ">Typically, users of JCas do not implement any method for this. An + different type systems to operate on.</td><td style="border-bottom: 1px solid black; ">Typically, users of JCas do not implement any method for this. An annotator can use this call to read the CAS type system and setup any instance - variables that make accessing the types and features convenient.</td></tr><tr><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">process</td><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">Called once for each CAS. Called by the application if not using + variables that make accessing the types and features convenient.</td></tr><tr><td style="border-right: 1px solid black; border-bottom: 1px solid black; ">process</td><td style="border-right: 1px solid black; border-bottom: 1px solid black; ">Called once for each CAS. Called by the application if not using Collection Processing Manager (CPM); the application calls the process method on the analysis engine, which is then delegated by the framework to all the annotators in the engine. For Collection Processing application, the CPM calls the process method. If the application creates and manages your own Collection Processing Engine via API calls (see Javadocs), the application calls this on the Collection Processing Engine, and it is - delegated by the framework to the components.</td><td style="border-bottom: 0.5pt solid black; ">Process the CAS, adding and/or modifying elements in it</td></tr><tr><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">destroy</td><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">This method can be called by applications, and is also called by the + delegated by the framework to the components.</td><td style="border-bottom: 1px solid black; ">Process the CAS, adding and/or modifying elements in it</td></tr><tr><td style="border-right: 1px solid black; border-bottom: 1px solid black; ">destroy</td><td style="border-right: 1px solid black; border-bottom: 1px solid black; ">This method can be called by applications, and is also called by the Collection Processing Manager framework when the collection processing completes. It is also called on Aggregate delegate components, if those components successfully complete their <code class="literal">initialize</code> call, if @@ -1375,10 +1375,10 @@ for (TimeAnnot : aJCas.getAnnotationInde to do so. It is up to the component writer to use a try/finally construct during initialization to cleanup from errors that occur during initialization within one component. The <code class="literal">destroy</code> call on an aggregate is - propagated to all contained analysis engines.</td><td style="border-bottom: 0.5pt solid black; ">An annotator should release all resources, close files, close + propagated to all contained analysis engines.</td><td style="border-bottom: 1px solid black; ">An annotator should release all resources, close files, close database connections, etc., and return to a state where another initialize call could be received to restart. Typically, after a destroy call, no - further calls will be made to an annotator instance.</td></tr><tr><td style="border-right: 0.5pt solid black; ">reconfigure</td><td style="border-right: 0.5pt solid black; "><p>This method is never called by the framework, unless an + further calls will be made to an annotator instance.</td></tr><tr><td style="border-right: 1px solid black; ">reconfigure</td><td style="border-right: 1px solid black; "><p>This method is never called by the framework, unless an application calls it on the Engine object – in which case it the framework propagates it to all annotators contained in the Engine.</p> <p>Its purpose is to signal that the configuration parameters have @@ -1391,7 +1391,7 @@ for (TimeAnnot : aJCas.getAnnotationInde </div> - <div class="section" title="1.5.2. Reporting errors from Annotators"><div class="titlepage"><div><div><h3 class="title" id="ugr.tug.aae.reporting_errors_from_annotators">1.5.2. Reporting errors from Annotators</h3></div></div></div>
[... 2307 lines stripped ...]
