You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by al...@apache.org on 2007/03/14 23:12:10 UTC
svn commit: r518354 [19/21] - in /incubator/uima/site/trunk/uima-website:
docs/ docs/downloads/releaseDocs/
docs/downloads/releaseDocs/2.1.0-incubating/
docs/downloads/releaseDocs/2.1.0-incubating/docs/
docs/downloads/releaseDocs/2.1.0-incubating/docs/...
Added: incubator/uima/site/trunk/uima-website/xdocs/downloads/releaseDocs/2.1.0-incubating/docs/html/tools/tools.html
URL: http://svn.apache.org/viewvc/incubator/uima/site/trunk/uima-website/xdocs/downloads/releaseDocs/2.1.0-incubating/docs/html/tools/tools.html?view=auto&rev=518354
==============================================================================
--- incubator/uima/site/trunk/uima-website/xdocs/downloads/releaseDocs/2.1.0-incubating/docs/html/tools/tools.html (added)
+++ incubator/uima/site/trunk/uima-website/xdocs/downloads/releaseDocs/2.1.0-incubating/docs/html/tools/tools.html Wed Mar 14 15:11:54 2007
@@ -0,0 +1,1548 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>UIMA Tools Guide and Reference</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.70.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en" id="d0e2"><div class="titlepage"><div><div><h1 class="title"><a name="d0e2"></a>UIMA Tools Guide and Reference</h1></div><div><div class="authorgroup"><h3 class="corpauthor">Authors: The Apache UIMA Development Community</h3></div></div><div><p class="releaseinfo">Version 2.1</p></div><div><p class="copyright">Copyright © 2006, 2007 The Apache Software Foundation</p></div><div><p class="copyright">Copyright © 2004, 2006 International Business Machines Corporation</p></div><div><div class="legalnotice"><a name="d0e15"></a><p> </p><p><b>Incubation Notice and Disclaimer. </b>Apache UIMA is an effort undergoing incubation at the Apache Software Foundation (ASF).
+ Incubation is required of all newly accepted projects until a further review indicates that
+ the infrastructure, communications, and decision making process have stabilized in a manner
+ consistent with other successful ASF projects. While incubation status is not necessarily
+ a reflection of the completeness or stability of the code,
+ it does indicate that the project has yet to be fully endorsed by the ASF.</p><p> </p><p> </p><p><b>License and Disclaimer. </b>The ASF licenses this documentation
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this documentation except in compliance
+ with the License. You may obtain a copy of the License at
+
+ </p><div class="blockquote"><blockquote class="blockquote"><a href="http://www.apache.org/licenses/LICENSE-2.0" target="_top">http://www.apache.org/licenses/LICENSE-2.0</a></blockquote></div><p>
+
+ Unless required by applicable law or agreed to in writing,
+ this documentation and its contents are distributed under the License
+ on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ </p><p> </p><p> </p><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
+ in this book should not be regarded as affecting the validity of the
+ the trademark or service mark.
+ </p></div></div><div><p class="pubdate">February, 2007</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#ugr.tools.cde">1. CDE User's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.launching">1.1. Launching the Component Descriptor Editor</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.creating_new_ae_descriptor">1.2. Creating a New AE Descriptor</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.pages_within_the_editor">1.3. Pages within the Editor</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.adjusting_display_of_pages">1.3.1. Adjusting the display of pages</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.cde.overview_page">1.4. Overview Page</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.overview_page.implementation_details">1.4.1. Implementation Details</a></span></
dt><dt><span class="section"><a href="#ugr.tools.cde.overview_page.runtime_info">1.4.2. Runtime Information</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.overview_page.overall_id_info">1.4.3. Overall Identification Information</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.cde.aggregate_page">1.5. Aggregate Page</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.aggregate_page.adding_components_more_than_once">1.5.1. Adding components more than once</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.aggregate_page.adding_removing_components_from_flow">1.5.2. Adding or Removing components in a flow</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.aggregate_page.adding_remote_aes">1.5.3. Adding remote Analysis Engines</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.aggregate_page.connecting_to_remote_services">1.5.4. Connecting to Remote Services</a></span></dt><dt><
span class="section"><a href="#ugr.tools.cde.aggregate_page.finding_aes_by_searching">1.5.5. Finding Analysis Engines by searching</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.aggregate_page.component_engine_flow">1.5.6. Component Engine Flow</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.cde.parm_definition">1.6. Parameters Definition Page</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.parm_definition.using_groups">1.6.1. Using groups</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.parm_definition.aggregates">1.6.2. Parameter declarations for Aggregates</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.cde.parameter_settings">1.7. Parameter Settings Page</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.type_system">1.8. Type System Page</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.type_system.exporting">1.8.1. Exporting</a><
/span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.cde.capabilities">1.9. Capabilities Page</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.capabilities.sofa_name_mapping">1.9.1. Sofa (and view) name mappings</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.cde.indexes">1.10. Indexes Page</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.resources">1.11. Resources Page</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.resources.binding">1.11.1. Binding</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.resources.aggregates">1.11.2. Resources with Aggregates</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.resources.imports_exports">1.11.3. Imports and Exports</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.cde.source">1.12. Source Page</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cde.source.formattin
g">1.12.1. Source formatting – indentation</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.cde.creating_self_contained_type_system">1.13. Creating a Self-Contained Type System</a></span></dt><dt><span class="section"><a href="#ugr.tools.cde.creating_other_descriptor_components">1.14. Creating Other Descriptor Components</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tools.cpe">2. CPE Configurator User's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.cpe.limitations">2.1. Limitations of the CPE Configurator</a></span></dt><dt><span class="section"><a href="#ugr.tools.cpe.starting">2.2. Starting the CPE Configurator</a></span></dt><dt><span class="section"><a href="#ugr.tools.cpe.selecting_component_descriptors">2.3. Selecting Component Descriptors</a></span></dt><dt><span class="section"><a href="#ugr.tools.cpe.running">2.4. Running a Collection Processing Engine</a></span></dt><dt><span class="section
"><a href="#ugr.tools.cpe.file_menu">2.5. The File Menu</a></span></dt><dt><span class="section"><a href="#ugr.tools.cpe.help_menu">2.6. The Help Menu</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tools.doc_analyzer">3. Document Analyzer User's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.doc_analyzer.starting">3.1. Starting the Document Analyzer</a></span></dt><dt><span class="section"><a href="#ugr.tools.doc_analyzer.running_an_ae">3.2. Running an AE</a></span></dt><dt><span class="section"><a href="#ugr.tools.doc_analyzer.viewing_results">3.3. Viewing the Analysis Results</a></span></dt><dt><span class="section"><a href="#ugr.tools.doc_analyzer.configuring">3.4. Configuring the Annotation Viewer</a></span></dt><dt><span class="section"><a href="#ugr.tools.doc_analyzer.interactive_mode">3.5. Interactive Mode</a></span></dt><dt><span class="section"><a href="#ugr.tools.doc_analyzer.view_mode">3.6. View Mode</a></span></dt></d
l></dd><dt><span class="chapter"><a href="#ugr.tools.annotation_viewer">4. Annotation Viewer</a></span></dt><dt><span class="chapter"><a href="#ugr.tools.cvd">5. CAS Visual Debugger</a></span></dt><dd><dl><dt><span class="section"><a href="#cvd.errorHandling">5.1. Error Handling</a></span></dt><dt><span class="section"><a href="#cvd.preferencesFile">5.2. Preferences File</a></span></dt><dt><span class="section"><a href="#cvd.theMenus">5.3. The Menus</a></span></dt><dd><dl><dt><span class="section"><a href="#cvd.fileMenu">5.3.1. The File Menu</a></span></dt><dt><span class="section"><a href="#cvd.editMenu">5.3.2. The Edit Menu</a></span></dt><dt><span class="section"><a href="#cvd.runMenu">5.3.3. The Run Menu</a></span></dt><dt><span class="section"><a href="#cvd.toolsMenu">5.3.4. The tools menu</a></span></dt></dl></dd><dt><span class="section"><a href="#cvd.mainDisplayArea">5.4. The Main Display Area</a></span></dt><dd><dl><dt><span class="section"><a href="#cvd.statusBar">
5.4.1. The Status Bar</a></span></dt><dt><span class="section"><a href="#cvd.keyboardNavigation">5.4.2. Keyboard Navigation and Shortcuts</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#ugr.tools.jcasgen">6. JCasGen User's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.jcasgen.running_without_eclipse">6.1. Running stand-alone without Eclipse</a></span></dt><dt><span class="section"><a href="#ugr.tools.jcasgen.running_standalone_with_eclipse">6.2. Running stand-alone with Eclipse</a></span></dt><dt><span class="section"><a href="#ugr.tools.jcasgen.running_within_eclipse">6.3. Running within Eclipse</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tools.pear.packager">7. PEAR Packager User's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.pear.packager.using_eclipse_plugin">7.1. Using the PEAR Eclipse Plugin</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.pear.pac
kager.add_uima_nature">7.1.1. Add UIMA Nature to your project</a></span></dt><dt><span class="section"><a href="#ugr.tools.pear.packager.using_pear_generation_wizard">7.1.2. Using the PEAR Generation Wizard</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#ugr.tools.pear.installer">8. PEAR Installer User's Guide</a></span></dt><dt><span class="chapter"><a href="#ugr.tools.pear.merger">9. PEAR Merger User's Guide</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.pear.merger.merge_details">9.1. Details of the merging process</a></span></dt><dt><span class="section"><a href="#ugr.tools.pear.merger.testing_modifying_resulting_pear">9.2. Testing and Modifying the resulting PEAR</a></span></dt><dt><span class="section"><a href="#ugr.tools.pear.merger.restrictions_limitations">9.3. Restrictions and Limitations</a></span></dt></dl></dd></dl></div><div class="chapter" lang="en" id="ugr.tools.cde"><div class="titlepage"><div><div><h2 class="titl
e"><a name="ugr.tools.cde"></a>Chapter 1. Component Descriptor Editor User's Guide</h2></div></div></div><p>The Component Descriptor Editor is an Eclipse plug-in that provides a forms-based
+ interface for creating and editing UIMA XML descriptors. It supports most of the
+ descriptor formats, except the Collection Processing Engine descriptor and
+ some remote deployment descriptors.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.launching"></a>1.1. Launching the Component Descriptor Editor</h2></div></div></div><p>Here's how to launch this tool on a descriptor contained in the examples. This
+ presumes you have installed the examples as described in the SDK Installation and Setup
+ chapter.</p><div class="itemizedlist"><ul type="disc" compact><li><p>Expand the uimaj-examples
+ project in the Eclipse Navigator or Package Explorer view</p></li><li><p>Within this project, browse to the file
+ descriptors/tutorial/ex1/RoomNumberAnnotator.xml.</p></li><li><p>Right-click on this file and select Open With <span class="symbol">→</span> Component
+ Descriptor Editor. (If this option is not present, check to make sure you installed
+ the plug-ins as described <a href="../overview_and_setup/overview_and_setup.html#ugr.ovv.eclipse_setup.installation" class="olink">Section 3.1, “Installation”</a> in <span class="olinkdocname">Overview & Setup</span>. The EMF plugin is also
+ required.).</p></li><li><p>This should open a graphical editor and display the contents of the
+ RoomNumberAnnotator descriptor. </p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.creating_new_ae_descriptor"></a>1.2. Creating a New AE Descriptor</h2></div></div></div><p>A new AE descriptor file may be created by selecting the File <span class="symbol">→</span> New <span class="symbol">→</span>
+ Other... menu. This brings up the following dialog:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="531"><tr><td><img src="../images/tools/tools.cde/image002.jpg" width="531" alt="Screenshot of selecting new UIMA component in Eclipse"></td></tr></table></div></div><p>If the user then selects UIMA and Analysis Engine Descriptor File, and clicks the
+ Next > button, the following dialog is displayed. We will cover creating other kinds
+ of components later in the documentation.
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="300"><tr><td><img src="../images/tools/tools.cde/image004.jpg" width="300" alt="Screenshot of selecting new UIMA component in Eclipse after pushing Next"></td></tr></table></div></div><p>After entering the appropriate parent folder and file name, and clicking Finish,
+ an initial AE descriptor file is created with the given name, and the descriptor is
+ opened up within the Component Descriptor Editor.</p><p>At this point, the display inside the Component Descriptor Editor is the same
+ whether one started by creating a new AE descriptor, as in the preceding paragraph, or
+ one merely opened a previously created AE descriptor from, say, the Package Explorer
+ view. We show a previously created AE in the figure below:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="563"><tr><td><img src="../images/tools/tools.cde/image006.jpg" width="563" alt="Screenshot of CDE showing overview page"></td></tr></table></div></div><p>To see all the information shown in the main editor pane with less scrolling, double
+ click the title tab to toggle between the “<span class="quote">full screen</span>” and normal
+ views.</p><p>It is possible to set the Component Descriptor Editor as the default editor for all
+ .xml files by going to Window <span class="symbol">→</span> Preferences, and then selecting File Associations
+ on the left, and *.xml on the right, and finally by clicking on Component Descriptor
+ Editor, the Default button and then OK. If AE and Type System descriptors are not the
+ primary .xml files you work with within the Eclipse environment, we recommend not
+ setting the Component Descriptor Editor as your default editor for all .xml files. To
+ open an .xml file using the Component Descriptor Editor, if the Component Descriptor
+ Editor is not set as your default editor, right click on the file in the Package Explorer,
+ or other navigational view, and select Open With <span class="symbol">→</span> Component Descriptor Editor.
+ This choice is remembered by Eclipse for subsequent open operations.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.pages_within_the_editor"></a>1.3. Pages within the Editor</h2></div></div></div><p>The Component Descriptor Editor follows a standard Eclipse paradigm for these
+ kinds of editors. There are several pages in the editor; each one can be selected, one at a
+ time, by clicking on the bottom tabs. The last page contains the actual XML source file
+ being edited, and is displayed as plain text.</p><p>The same set of tabs appear at the bottom of each page in the Component Descriptor
+ Editor. The Component Descriptor Editor uses this “<span class="quote">multi-page editor</span>”
+ paradigm to give the user a view of conceptually distinct portions of the Descriptor
+ metadata in separate pages. At any point in time the user may click on the Source tab to
+ view the actual XML source. The Component Descriptor Editor is, in a way, just a fancy GUI
+ for editing the XML. The tabs provide quick access to the following pages: Overview,
+ Aggregate, Parameters, Parameter Settings, Type System, Capabilities, Indexes,
+ Resources, and Source. We discuss each of these pages in turn.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.adjusting_display_of_pages"></a>1.3.1. Adjusting the display of pages</h3></div></div></div><p>Most pages in the editor have a “<span class="quote">sash</span>” bar. This is a light gray bar
+ which separates sub-sections of the page. This bar can be dragged with the mouse to
+ adjust how the display area is split between the two sash panes. You can also change the
+ orientation of the Sash so it splits vertically, instead of horizontally, by
+ clicking on the small icons at the top right of the page that look like this:
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="51"><tr><td><img src="../images/tools/tools.cde/image008.jpg" width="51" alt="Changing orientation of two window split"></td></tr></table></div></div><p>All of the sections on a page have subtitles, with an indicator to the left which
+ you can click to collapse or expand that particular section. Collapsing sections can
+ sometimes be useful to free up screen area for other sections.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.overview_page"></a>1.4. Overview Page</h2></div></div></div><p>Normally, the first page displayed in the Component Descriptor Editor is the
+ Overview page (the name of the page is shown in the GUI panel at the top left). If there is an
+ error reading and parsing the source, the Source page is shown instead, giving you the
+ opportunity to correct the problem. For many components, the Overview page contains
+ three sections: Implementation Details, Runtime Information and overall
+ Identification Information.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.overview_page.implementation_details"></a>1.4.1. Implementation Details</h3></div></div></div><p>In the Implementation Details section you specify the Implementation Language
+ and Engine Type. There are two kinds of Engines: Aggregate, and non-Aggregate (also
+ called Primitive). An Aggregate engine is one which is composed of additional
+ component engines and contains no code, itself. Several of the pages in the Component
+ Descriptor Editor have different formats, depending on the engine type.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.overview_page.runtime_info"></a>1.4.2. Runtime Information</h3></div></div></div><p>Runtime information is only applicable for primitive engines and is disabled
+ for aggregates and other kinds of descriptors. This is where you specify the class name of the annotator
+ implementation, if you are doing a Java implementation, or the C++ shared object or dll name,
+ if you are doing a C++ implementation. Most Analysis Engines will specify that
+ they update the CAS, and that they may be replicated (for performance reasons) when deployed. If
+ a particular Analysis Engine must see every CAS (for instance, if it is counting the
+ number of CASes), then uncheck the “<span class="quote">multiple deployment allowed</span>”
+ box. If the Analysis Engine doesn't update the CAS, uncheck the “<span class="quote">updates
+ the CAS</span>” box. (Most CAS Consumers do not update the CAS, and this parameter
+ defaults to unchecked for new CAS Consumer descriptors).</p><p>Analysis engines are written using the CAS Multiplier APIs
+ (see <a href="../tutorials_and_users_guides/tutorials_and_users_guides.html#ugr.tug.cm" class="olink">Chapter 7, CAS Multiplier Developer's Guide
+ </a> in <span class="olinkdocname">UIMA Tutorial and Developers' Guides</span>)
+ can create additional CASes for analysis. To specify that they
+ do this, check the “<span class="quote">returns new artifacts</span>”.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.overview_page.overall_id_info"></a>1.4.3. Overall Identification Information</h3></div></div></div><p>The Name should be a human-readable name that describes this component. The
+ Version, Vendor, and Description fields are optional, and are arbitrary
+ strings.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.aggregate_page"></a>1.5. Aggregate Page</h2></div></div></div><p>For primitive Analysis Engines, Flow Controllers or Collection Processing
+ components, the Aggregate page is not used. For aggregate engines, the page looks like
+ this:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="330"><tr><td><img src="../images/tools/tools.cde/image010.jpg" width="330" alt="CDE Aggregate page"></td></tr></table></div></div><p>On the left we see a list of component engines, and on the right information about the
+ flow. If you hover the mouse over an item in the list of component engines, that
+ engine's description meta data will be shown. If you right-click on one of these
+ items, you get an option to open that delegate descriptor in another editor instance.
+ Any changes you make, however, won't be seen until you close and reopen the editor
+ on the importing file.</p><p>Engines can be added to the list on the left by clicking the Add button at the bottom of
+ the Component Engine section. This brings up the following dialog:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="300"><tr><td><img src="../images/tools/tools.cde/delegate-chooser.jpg" width="300" alt="Adding an Analysis Engine to an Aggregate"></td></tr></table></div></div><p>This dialog lets you select
+ a descriptor from your workspace, or browse the file system to select a descriptor.
+ </p><p>You can specify that the import should be by Name (the name is looked up using both the
+ Project's class path, and DataPath), or by location. If it is by name, it may
+ contain part of the path within the name. For instance, if the file name picked is
+ <code class="literal">c:/project/subproject/src/com/company/prod/xyz.xml</code>, and
+ the class path includes <code class="literal">c:/project/subproject/src</code>, the name in
+ the descriptor will be “<span class="quote"><code class="literal">com.company.prod.xyz</code></span>”.
+ If it is by location, the file reference is converted to a relative reference if
+ possible, in the descriptor.</p><p>The final selection at the bottom tells whether or not the selected engine(s)
+ should automatically be added to the end of the flow section (the right section on the
+ Aggregate page). The OK button does not become activated until a descriptor
+ file is selected.</p><p>To remove an analysis engine from the component engine list simply select an engine
+ and click the Remove button, or press the delete key. If the engine is already in the flow
+ list you will be warned that deletion will also delete the specified engine from this
+ list.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.aggregate_page.adding_components_more_than_once"></a>1.5.1. Adding components more than once</h3></div></div></div><p>Components may be added to the left panel more than once. Each of these components
+ will be given a key which is unique. A typical reason this might be done is to use a
+ component in a flow several times, but have each use be associated with different
+ configuration parameters (different configuration parameters can be associated
+ with each instance).</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.aggregate_page.adding_removing_components_from_flow"></a>1.5.2. Adding or Removing components in a flow</h3></div></div></div><p>The button in-between the Component Engines and the Flow List, labeled
+ <code class="literal">>></code>, adds a chosen engine to the flow list and the button
+ labeled <code class="literal"><<</code> removes an engine from the flow list. To add an
+ engine to the flow list you must first select an engine from the left hand list, and then
+ press the <code class="literal">>></code> button. Engines may appear any number of
+ times in the flow list. To remove an engine from the flow list, select an engine from the
+ right hand list and press the <code class="literal"><<</code> button.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.aggregate_page.adding_remote_aes"></a>1.5.3. Adding remote Analysis Engines</h3></div></div></div><p>There are two ways to add remote engines: add an existing descriptor, which
+ specifies a remote engine (just as if you were adding a non-remote engine) or use the
+ Add Remote button which will create a remote descriptor, save it, and then import it,
+ all in one operation. The Add Remote button enables you to easily specify the
+ information needed to create a Service Client descriptor for a remote AE - one that
+ runs on a different computer connected over the network. The Service Client
+ descriptor is described in <a href="../references/references.html#ugr.ref.xml.component_descriptor.service_client" class="olink">Section 2.7, “Service Client Descriptors”</a> in <span class="olinkdocname">UIMA References</span>. The Add
+ Remote button creates this descriptor, saves it as a file in the workspace, and
+ imports it into the aggregate.</p><p>Of course, if you already have a Service Client descriptor, you can add it to the
+ set of delegates, just like adding other kinds of analysis engines.</p><p>After clicking on Add Remote, the following dialog is displayed:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="576"><tr><td><img src="../images/tools/tools.cde/image014.jpg" width="576" alt="Adding a remote client to an aggregate"></td></tr></table></div></div><p>To define a remote service you specify the Service Kind, Protocol Service Type,
+ URI and Key. You can also specify a Timeout in milliseconds, used by the SOAP service,
+ and a VNS Host and Port used by the Vinci Service. Just like when one adds an engine from
+ the file system, you have the option of adding the engine to the end of the flow. The
+ Component Descriptor Editor currently only supports Vinci and SOAP services using
+ this dialog.</p><p>Remote engines are added to the descriptor using the
+ <import ... > syntax. The information you specify here is saved in the Eclipse
+ project as a file, using a generated name, <key-name>.xml, where
+ <key-name> is the name you listed as the Key. Because of this, the key-name must
+ be a valid file name. If you want a different name, you can change the path information
+ in the dialog box.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.aggregate_page.connecting_to_remote_services"></a>1.5.4. Connecting to Remote Services</h3></div></div></div><p>If you are using the Vinci protocol, it requires that you specify the location of
+ the Vinci Name Server (an IP address and a Port number). You can specify these in the
+ service descriptor, or globally, for your Eclipse workspace, using the Eclipse menu
+ item: Window <span class="symbol">→</span> Preferences... <span class="symbol">→</span> UIMA Preferences. If the remote service
+ is available (up and running), additional operations become possible. For
+ instance, hovering the mouse over the remote descriptor will show the description
+ metadata from the remote service.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.aggregate_page.finding_aes_by_searching"></a>1.5.5. Finding Analysis Engines by searching</h3></div></div></div><p>The next button that appears between the component engine list and the flow list
+ is the Find AE button. When this button is pressed the following dialog is displayed,
+ which allows one to search for AEs by name, by input or output types, or by a combination
+ of these criteria. This function searches the existing Eclipse workspace for
+ matching *.xml descriptor source files; it does not look inside Jar files.
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="518"><tr><td><img src="../images/tools/tools.cde/image016.jpg" width="518" alt="Searching for an AE to add to an aggregate"></td></tr></table></div></div><p>The search automatically adds a “<span class="quote">match any characters</span>” - style
+ (*) wildcard at the beginning and end of anything entered. Thus, if person is
+ specified for an output type, a “<span class="quote">*person*</span>” search is performed. Such a
+ search would match such things as “<span class="quote">my.namespace.person</span>” and
+ “<span class="quote">person.governmentOfficial.</span>” One can search in all projects or one
+ particular project. The search does an implicit <span class="emphasis"><em>and</em></span> on all
+ fields which are left non-blank.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.aggregate_page.component_engine_flow"></a>1.5.6. Component Engine Flow</h3></div></div></div><p>The UIMA SDK currently supports three kinds of sequencing flows: Fixed,
+ CapabilityLanguageFlow (see <a href="../references/references.html#ugr.ref.xml.component_descriptor.aes.aggregate.flow_constraints.capability_language_flow" class="olink">the section called “Capability Language Flow”</a> in <span class="olinkdocname">UIMA References</span>
+ ), and user-defined. The first two require specification of a linear flow sequence;
+ this linear flow sequence can also be read by a user-defined flow controller (what use
+ is made of it is up to the user-defined flow controller). The Component Engine Flow
+ section allows specification of these items.</p><p>The pull-down labeled Flow Kind picks between the three flow models. When the
+ user-defined flow is selected, the Browse and Search buttons become enabled to let
+ you pick the flow controller XML descriptor to import.
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="302"><tr><td><img src="../images/tools/tools.cde/image018.jpg" width="302" alt="Specifying flow control"></td></tr></table></div></div><p>The key name value is set automatically from the XML descriptor being imported,
+ and enables parameters to be overridden for that descriptor (see following
+ sections).</p><p>The Up and Down buttons to the right in the Flow section are activated when an
+ engine in the flow is selected. The Up button moves the selected engine up one place in
+ the execution order, and down moves the selected engine down one place in the
+ execution order. Remember that engines can appear multiple times in the flow (or not
+ at all).</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.parm_definition"></a>1.6. Parameters Definition Page</h2></div></div></div><p>There are two pages for parameters: the first one is where parameters are defined,
+ and the second one is where the parameter settings are configured. The first page is the
+ Parameter Definition page and has two alternatives, depending on whether or not the
+ descriptor is an Aggregate or not. We start with a description of parameter definitions
+ for Primitive engines, CAS Consumers, Collection Readers, CAS Initializers, and Flow
+ Controllers. Here is an example:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="475"><tr><td><img src="../images/tools/tools.cde/image020.jpg" width="475" alt="Parameter Definitions - not Aggregate"></td></tr></table></div></div><p>The first checkbox at the top simplifies things if you are not using Parameter
+ Groups (see the following section for a discussion of groups). In this case, leave the
+ check box unchecked. The main area shows a list of parameter definitions. Each
+ parameter has a name, which must be unique for this Analysis Engine. The other three
+ attributes specify whether the parameter can have a single or multiple values (an array
+ of values), whether it is Optional or Mandatory, and what the value type it can hold
+ (String, Integer, Float, and Boolean).</p><p>In addition to using the buttons on the right to edit this information, you can
+ double-click a parameter to edit it, or remove (delete) a selected parameter by
+ pressing the delete key. Use the Add button to add a new parameter to the list.</p><p>Parameters have an additional description field, which you can specify when you
+ add or edit a parameter. To see the value of the description, hover the mouse over the
+ item, as shown in the picture below:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="488"><tr><td><img src="../images/tools/tools.cde/image022.jpg" width="488" alt="Parameter description shown in a hover message"></td></tr></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.parm_definition.using_groups"></a>1.6.1. Using groups</h3></div></div></div><p>The group concept for parameters arose from the observation that sets of
+ parameters were sometimes associated with different configuration needs. As an
+ example, you might have an Analysis Engine which needed different configuration
+ based on the language of a document.</p><p>To use groups, you check the “<span class="quote">Use Parameter Groups</span>” box. When you
+ do this, you get the ability to add groups, and to define parameters within these
+ groups. You also get a capability to define “<span class="quote">Common</span>” parameters,
+ which are parameters which are defined for all groups. Here is a screen shot showing
+ some parameter groups in use:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="460"><tr><td><img src="../images/tools/tools.cde/image024.jpg" width="460" alt="Using parameter groups"></td></tr></table></div></div><p>You can see the “<span class="quote"><Common></span>” parameters as well as two
+ different sets of groups.</p><p>The Default Group is an optional specification of what Group to use if the
+ parameter is not available for the group requested.</p><p>The Search strategy specifies what to do when a parameter is not available for the
+ group requested. It can have the values of None, language_fallback, or
+ default_fallback. These are more fully described in the section <a href="../references/references.html#ugr.ref.xml.component_descriptor.aes.configuration_parameter_declaration" class="olink">Section 2.4.1.3, “Configuration Parameter Declaration”</a> in <span class="olinkdocname">UIMA References</span>
+ .</p><p>Groups are added using the Add Group button. Once added, they can be edited or
+ removed, using the buttons to the right, or the standard gestures for editing
+ (double-clicking the item) and removing (pressing the delete key after an item is
+ selected). Removing a group removes all the parameter definitions in the group. If
+ you try and remove the “<span class="quote"><Common></span>” group, it just removes the
+ parameters in the group.</p><p>Each entry for a group in the table specifies one or more group names. For example,
+ the highlighted entry above, specifies two groups: “<span class="quote">myNewGroup2</span>”
+ and “<span class="quote">mg3</span>”. The parameter definition underneath is considered to be in
+ both groups.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.parm_definition.aggregates"></a>1.6.2. Parameter declarations for Aggregates</h3></div></div></div><p>Aggregates declare parameters which always must override a parameter setting
+ for a component making up the aggregate. They do this using the version of this page
+ which is shown when the descriptor is an Aggregate; here's an example:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="575"><tr><td><img src="../images/tools/tools.cde/image026.jpg" width="575" alt="Aggregate parameters"></td></tr></table></div></div><p>There is an additional panel shown (on the right) which lists all of the
+ components by their key names, and shows for each of them their defined parameters. To
+ add a new override for one or more of these parameters to the aggregate, select the
+ component parameter you wish to override and push the Create Override button (or, you
+ can just double-click the component parameter). This will automatically add a
+ parameter of the same name (by default – you can change the name if you like) to
+ the aggregate, putting it into the same group(s) (if groups are being used in the
+ component – this is required), and setting the properties of the parameter to
+ match those of the component (this is required).</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If the name of the parameter being added already is in use in the aggregate,
+ and the parameters are not compatible, a new parameter name is generated by suffixing
+ the name with a number. If the parameters are compatible, the selected component
+ parameter is added to the existing aggregate parameter, as an additional override. If
+ you don't want this behavior, but want to have a new name generated in this case,
+ push the Create non-shared Override button instead, or hold down the
+ “<span class="quote">shift</span>” key when double clicking the component parameter.</p><p>The required / optional setting in the aggregate parameter is set to match that of
+ the parameter being overridden. You may want to make an optional delegate parameter
+ required. You can do this by changing that value manually in the source editor view.
+ </p></div><p>In the above example, the user has just double-clicked the
+ “<span class="quote">TypeNames</span>” parameter in the “<span class="quote">NameRecognizer</span>”
+ component. This added that parameter to this aggregate under the “<span class="quote"><Not in
+ any group></span>” section – since it wasn't part of a group.</p><p>Once you have added a parameter definition to the aggregate, you can use the
+ buttons on the right side of the left panel to add additional overrides or remove
+ parameters or their overrides. <span><a name="ugr.tools.cde.parm_definition.removing_groups"></a> You can also remove
+ groups; removing a group is like removing all the parameter definitions in the
+ group.</span></p><p>In addition to adding one parameter at a time from a component, you can also add all
+ the parameters for a group within a component, or all the parameters in the component,
+ by selecting those items.</p><p>If you double-click (or push Create Override) the
+ “<span class="quote"><Common></span>” group or a parameter in the <Common> group in
+ a component, a special group is created in the Aggregate consisting of all of the
+ groups in that component, and the overriding parameter (or parameters) are added to
+ that. This is done because each component can have different groups belonging to the
+ Common group notion; the Common group for a component is just shorthand for all the
+ groups in that component.</p><p>The Aggregate's specification of the default group and search strategy
+ override any specifications contained in the components.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.parameter_settings"></a>1.7. Parameter Settings Page</h2></div></div></div><p>The Parameter Settings page is rather straightforward; it is where the user
+ defines parameter settings for their engines. An example of such a page is given below:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="576"><tr><td><img src="../images/tools/tools.cde/image028.jpg" width="576" alt="Parameter settings page"></td></tr></table></div></div><p>For single valued attributes, the user simply types the default value into the
+ Value box on the right hand side. For multi-valued parameters the user should use the
+ Add, Edit and Remove buttons to manage the list of multiple parameter values.</p><p>Values within groups are shown with each group separately displayed, to allow
+ configuring different values for each group.</p><p>Values are checked for validity. For Boolean values in a list, use the words
+ <code class="literal">true</code> or <code class="literal">false</code>.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you specify a value in a single-valued parameter, and then delete all the
+ characters in the value, the CDE will treat this as if you wanted to not specify any setting
+ for this parameter. In order to specify a 0 length string setting for a String-valued
+ parameter, you will have to manually edit the XML using the “<span class="quote">Source</span>” tab.
+ </p><p> For array valued parameters, if you remove all of the entries for a particular array
+ parameter setting, the XML will reflect a 0-length array. To change this to an
+ unspecified parameter setting, you will have to manually edit the XML using the
+ “<span class="quote">Source</span>” tab. </p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.type_system"></a>1.8. Type System Page</h2></div></div></div><p>This page declares the type system used by the annotator. For aggregates it is
+ derived by merging the type systems of all constituent AEs. The types used by the AE
+ constitute the language in which the inputs and outputs are described in the
+ Capabilities page and also affect the choice of indexes on the Indexes page. The Type
+ System page looks like the following:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="618"><tr><td><img src="../images/tools/tools.cde/image030.jpg" width="618" alt="Type System declaration page"></td></tr></table></div></div><p>Before discussing this page in detail, it is important to note that there are two
+ settings that affect the operation of this page. These are accessed by selecting the
+ UIMA <span class="symbol">→</span> Settings (or by going to the Eclipse Window <span class="symbol">→</span> Preferences <span class="symbol">→</span> UIMA
+ Preferences) and checking or unchecking one of the following: “<span class="quote">Auto generate
+ .java files when defining types</span>” and “<span class="quote">Display fully qualified type
+ names.</span>”</p><p><a name="ugr.tools.cde.auto_jcasgen"></a>When the Auto generate option is checked and the development language for the AE is
+ Java, any time a change is made to a type and the change is saved, the corresponding .java
+ files are generated using the JCasGen tool. The results are stored in the primary source
+ directory defined for the project. The primary source directory is that listed first
+ when you right click on your project and select Properties <span class="symbol">→</span> Java Build Path, click
+ on the Source tab and look in the list box under the text that reads: “<span class="quote">Source folder
+ on build path.</span>” If no source folders are defined, you will get a warning that you
+ have no source folders defined and JCasGen will not be run. (For information on JCasGen
+ see <a href="tools.html#ugr.tools.jcasgen" class="olink">Chapter 6, JCasGen User's Guide
+ </a>).
+ When JCasGen is run, you can monitor the progress of the generation by observing the
+ status on the Eclipse status line (normally at the bottom of the Eclipse window).
+ JCasGen runs on the fully-merged type system, consisting of the type specification
+ plus any imported type system, plus (for aggregates) the merged type systems of all the
+ components in an aggregate.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>If the components of the aggregate have different definitions for the same
+ type name, the CDE will show a warning. It is possible to continue past this warning,
+ in which case the CDE will produce the correct
+ Java source files representing the merged types (that is, the
+ type definition that contains all of the features defined on that type by all of your
+ components). However, it is not recommended to use this feature
+ (of having different definitions for the same type name) since it can make it
+ difficult to combine/package your annotator with others. See <a href="../references/references.html#ugr.ref.jcas.merging_types_from_other_specs" class="olink">Section 5.5, “Merging Types”</a> in <span class="olinkdocname">UIMA References</span> for more information.
+ </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>In addition to running automatically, you can manually run JCasGen on the
+ fully merged type system by clicking the JCasGen button, or by selecting Run JCasGen from
+ the UIMA pulldown menu: </p></div><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="530"><tr><td><img src="../images/tools/tools.cde/image032.jpg" width="530" alt="Setting JCasGen options"></td></tr></table></div></div><p>When “<span class="quote">Display fully qualified type names</span>” is left unchecked, the
+ namespace of types is not displayed, i.e. if a fully qualified type name is
+ my.namespace.person, only the abbreviated type name person will be displayed. In the
+ Type page diagram shown above, “<span class="quote">Display fully qualified type names</span>” is
+ in fact unchecked.</p><p>To add, edit, or remove types the buttons on the top left section are used. When
+ adding or editing types, fully qualified type names should of course be used,
+ regardless of whether the “<span class="quote">Display fully qualified type names</span>” is
+ unchecked. Removing or editing a type will have a cascading effect in that the type
+ removal/edit will effect inputs, outputs, indexes and type priorities in the natural
+ way.</p><p>When a type is added, this dialog is shown:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="360"><tr><td><img src="../images/tools/tools.cde/image034.jpg" width="360" alt="Adding a type"></td></tr></table></div></div><p>Type names should be specified using a namespace. The namespace is like a Java
+ package name, and serves to insure type names are unique. It also serves as the package
+ name for the generated JCas classes. The namespace name is the set of names up to the last
+ period in the string.</p><p>The supertype must be picked from an existing type. The entry field for the
+ supertype supports Eclipse-style content assist. To use it, put the cursor in the
+ supertype field, and type a letter or two of the supertype name (lower case is fine),
+ either starting with the name space, or just with the type name (without the name space),
+ and hold down the Control key and then press the spacebar. When you do this, you can see a
+ list of suitable matching types. You can then type more letters to narrow down your
+ choices, or pick the right entry with the mouse.</p><p>To see the available types and pick one, press the Browse button. This will show the
+ available types, and as you type letters for the type name (in lower case –
+ capitalization is ignored), the available types that match are narrowed. When
+ you've typed enough to specify the type you want, press Enter. Or you can use the
+ list of matching type names and pick the one you want with the mouse.</p><p>Once you've added the type, you can add features to it by highlighting the
+ type, and pressing the Add button.</p><p>If the type being defined is a subtype of uima.cas.String, the Add button allows you
+ to add allowed values for the string, instead of adding features.</p><p>To edit a type or feature, you can double click the entry, or highlight the entry and
+ press the Edit button. To delete a type or feature, you highlight the entry to be deleted,
+ and click the delete button or push the delete key.</p><p>If the range of a feature is an array or one of the built-in list types, an additional
+ specification allows you to specify if multiple references to the object referenced by
+ this feature are allowed. If they are not allowed then the XMI serialization of
+ instances of this type use a more efficient format.</p><p>If the range of a feature is an array of Feature Structures, then it is possible to
+ specify an element type for the array. This information is used in the XMI serialization
+ and also by the JCas generation routines to generate more efficient code.
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="360"><tr><td><img src="../images/tools/tools.cde/image036.jpg" width="360" alt="Specifying a Feature Structure"></td></tr></table></div></div><p>It is also possible to import type systems for inclusion in your descriptor. To do
+ this, use the Type Import panel's<code class="literal"> Add...</code> button. This
+ allows you to import a type system descriptor.</p><p>When importing by name, the name is resolved using the class path for the Eclipse
+ project containing the descriptor file being edited, or by looking up this name in the
+ UIMA DataPath. The DataPath can be set by pushing the Set DataPath button. It will be
+ remembered for this Eclipse project, as a project Property, so you only have to set it
+ once (per project). The value of the DataPath setting is written just like a class path,
+ and can include directories or JAR files, just as is true for class paths.</p><p>The following dialog allows you to pick one or more files from the Eclipse
+ workspace, or one file (at a time) from the file system:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="300"><tr><td><img src="../images/tools/tools.cde/import-chooser.jpg" width="300" alt="Picking files for importing"></td></tr></table></div></div><p>This is essentially the same dialog as was used to add component engines to an
+ aggregate. To import from a type system descriptor that is not part of your Eclipse
+ workspace, click the Browse the file system.... button.</p><p>Imported types are validated, and if OK, they are added to the list in the Imported
+ Type Systems section of the Type System page. Any types they define are merged with the
+ existing type system.</p><p>Imported types and features which are only defined in imports are shown in the Type
+ System section, but in a grayed-out font; these type cannot be edited here. To change
+ them, open up the imported type system descriptor, and change them there.</p><p>If you hover the mouse over an import specification, it will show more information
+ about the import. If you right-click, it will bring up a context menu that allows opening
+ the imported file in the Editor, if the imported file is part of the Eclipse workspace.
+ Changes you make, however, won't be seen until you close and reopen the editor on
+ the importing file.</p><p>It is not possible to define types for an aggregate analysis engine. In this case the
+ type system is computed from the component AEs. The Type System information is shown in a
+ grayed-out font.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.type_system.exporting"></a>1.8.1. Exporting</h3></div></div></div><p>In addition to importing type specifications, you can export as well. When you
+ push the Export... button, the editor will create a new importable XML descriptor for
+ the types in this type system, and change the existing descriptor to import that newly
+ created one.
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="360"><tr><td><img src="../images/tools/tools.cde/image040.jpg" width="360" alt="Exporting a type system"></td></tr></table></div></div><p>The base file name you type is inserted into the path in the line below
+ automatically. You can change the path where the generated part descriptor is stored
+ by overtyping the lower text box. When you click OK, the new part descriptor will be
+ generated, and the current descriptor will be changed to import that part.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.capabilities"></a>1.9. Capabilities Page</h2></div></div></div><p>Capabilities come in “<span class="quote">sets</span>”. You can have multiple sets of
+ capabilities; each one specifies languages supported, plus inputs and outputs of the
+ Analysis Engine. The idea behind having multiple sets is the concept that different
+ inputs can result in different outputs. Many Analysis Engines, though, will probably
+ define just one set of capabilities. A sample Capabilities page is given below:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="500"><tr><td><img src="../images/tools/tools.cde/image042.jpg" width="500" alt="Capabilities page"></td></tr></table></div></div><p>When defining the capabilities of a primitive analysis engine, input and output
+ types can be any type defined in the type system. When defining the capabilities of an
+ aggregate the inputs must be a subset of the union of the inputs in the constituent
+ analysis engines and the outputs must be a subset of the union of the outputs of the
+ constituent analysis engines.</p><p>To add a type, first select something in the set you wish to add the type to, and press
+ Add Type. The following dialog appears presenting the user with a list of types which are
+ candidates for additional inputs:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="360"><tr><td><img src="../images/tools/tools.cde/image044.jpg" width="360" alt="Adding a type to the capabilities page"></td></tr></table></div></div><p>Follow the instructions to mark the types as input and / or output (a type can be
+ both). By default, the <all features> flag is set to true. If you want to specify a
+ subset of features of a type, read on.</p><p>When types have features, you can specify what features are input and / or output. A
+ type doesn't have to be an output to have an output feature. For example, an
+ Analysis Engine might be passed as input a type Token, and it adds (outputs) a feature to
+ the existing Token types. If no new Token instances were created, it would not be an
+ output Type, but it would have features which are output.</p><p>To specify features as input and / or output (they can be both), select a type, and
+ press Add. The following dialog box appears:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="360"><tr><td><img src="../images/tools/tools.cde/image046.jpg" width="360" alt="Specifying features as input or output"></td></tr></table></div></div><p>To mark a feature as being input and / or output, click the mouse in the input and / or
+ output column for the feature. If you select <all features>, it unmarks any
+ individual feature you selected, since <all features> subsumes all the
+ features.</p><p>The Languages part of the capability is where you specify what languages are
+ supported by the Analysis Engine. Supported languages should be listed using either a
+ two letter ISO-639 language code, or an ISO-639 language code followed by a two-letter
+ ISO-3166 country code. Add a language by selecting Languages and pressing the Add
+ button. The dialog for adding languages is given below.
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="360"><tr><td><img src="../images/tools/tools.cde/image048.jpg" width="360" alt="Specifying a language"></td></tr></table></div></div><p>The Sofa part of the capability is optional; it allows defining Sofa names that this
+ component uses, and whether they are input (meaning they are created outside of this
+ component, and passed into it), or output (meaning that they are created by this
+ component). Note that a Sofa can be either input or output, but can't be
+ both.</p><p>To add a Sofa name (which is synonymous with the view name), press the Add Sofa
+ button, and this dialog appears:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="360"><tr><td><img src="../images/tools/tools.cde/image050.jpg" width="360" alt="Specifying a Sofa name"></td></tr></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.capabilities.sofa_name_mapping"></a>1.9.1. Sofa (and view) name mappings</h3></div></div></div><p>Sofa names, once created, are used in Sofa Mappings. These are optional
+ mappings, done in an aggregate, that specify which Sofas are the same ones but with
+ different names. The Sofa Mappings section is minimized unless you are editing an
+ Aggregate descriptor, and have one or more Sofa names defined for the aggregate. In
+ that case, the Sofa Mappings section will look like this:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="500"><tr><td><img src="../images/tools/tools.cde/image052.jpg" width="500" alt="Sofa mappings"></td></tr></table></div></div><p>Here the aggregate has defined two input Sofas, named
+ “<span class="quote">MyInputSofa</span>”, and “<span class="quote">AnotherSofa</span>”. Any named sofas in
+ the aggregate's capabilities will appear in the Sofa Mapping section, listed
+ either under Inputs or Outputs. Each name in the Mappings has 0 or more delegate
+ (component) sofa names mapped to it. A delegate may have multiple Sofas, as in this
+ example, where the GovernmentOfficialRecognizer delegate has Sofas named
+ “<span class="quote">so1</span>” and “<span class="quote">so2</span>”.</p><p>Delegate components may be written as Single-View components. In this case,
+ they have one implicit, default Sofa (“<span class="quote">_InitialView</span>”), and to map to
+ it you use the form shown for the “<span class="quote">NameRecognizer</span>” – you map to
+ the delegate's key name in the aggregate, without specifying a Sofa name. You
+ can also specify the sofa name explicitly, e.g.,
+ NameRecognizer/_InitialView.</p><p>To add a new mapping, select the Aggregate Sofa name you wish to add the mapping
+ for, and press the Add button. This brings up a window like this, showing all available
+ delegates and their Sofas; select one or more (use the normal multi-select methods)
+ of these and press OK to add them.
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="657"><tr><td><img src="../images/tools/tools.cde/image054.jpg" width="657" alt="Adding a Sofa mapping"></td></tr></table></div></div><p>To edit an existing mapping, select the mapping and press Edit. This will show the
+ existing mapping with all mapped items “<span class="quote">selected</span>”, and other
+ available items unselected. Change the items selected to match what you want,
+ deselecting some, and perhaps selecting others, and press OK.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.indexes"></a>1.10. Indexes Page</h2></div></div></div><p>The Indexes page is where the user declares what indexes and type priority lists are
+ used by the analysis engine. Indexes are used to determine which Feature
+ Structures of a particular type are fetched, using an iterator in the UIMA API. An
+ unpopulated Indexes page is displayed below:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="568"><tr><td><img src="../images/tools/tools.cde/image056.jpg" width="568" alt="Index page"></td></tr></table></div></div><p>Both indexes and type priority lists can have imports. These imports work just like
+ the type system imports, described above. Both indexes and type priority lists can be
+ exported to new component descriptors, using the Export... button, just like the type
+ system export operation described above.</p><p>The built-in Annotation Index is always present. It is based on the built-in type
+ <code class="literal">uima.tcas.Annotation </code>and has keys begin (Ascending), end
+ (Descending) and TYPE_PRIORITY. There are no built-in type priorities, so this last
+ sort item does not play a role in the index unless type priorities are specified.</p><p>Type priority may be combined with other keys. Type priorities are defined in the
+ Priority Lists section, using one or more priority list. A given priority list gives an
+ ordering among a group of types. Types that appear higher in the priority list are given
+ higher priority, in other words, they sort first when TYPE_PRIORITY is specified as the
+ index key. Subtypes of these types are also ordered in a consistent manner, unless
+ overridden by another specific type priority specification. To get the ordering used
+ among all the types, all of the type priority lists are merged. This gives a partial
+ ordering among the types. Ties are resolved in an unspecified fashion. The Component
+ Descriptor Editor checks for incompatible orderings, and informs the user if they
+ exist, so they can be corrected.</p><p>To create a new index, use the Add Index button in the top left section. This brings up
+ this dialog:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="360"><tr><td><img src="../images/tools/tools.cde/image058.jpg" width="360" alt="Adding a new index"></td></tr></table></div></div><p>Each index needs a globally unique index name. Every index indexes one CAS type (including
+ its subtypes). If you're using Eclipse 3.2 or later, the entry field for this
+ has content assist (start typing the type name
+ and press Control – Spacebar to get help, or press the Browse button to pick a
+ type).</p><p>Indexes can be sorted, in which case you need to specify one or more keys to sort on.
+ Sort keys are selected from features whose range type is Integer, Float, or String. Some
+ elements will be disabled if they are not relevant. For instance, if the index kind is
+ “<span class="quote">bag</span>”, you cannot provide sort keys. The order of sort keys can be
+ adjusted using the up and down buttons, if necessary.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>There is usually no need to explicitly declare a Bag index in your descriptor.
+ As of UIMA v2.1, if you do not declare any index for a type (or any of its
+ supertypes), a Bag index will be automatically created. This index is
+ accessed using the <code class="literal">getAllIndexedFS(...)</code> method defined on the index repository.</p></div><p>A set index will contain no duplicates of the same type, where a duplicate is defined
+ by the indexing comparator. That is, if you commit two feature structures of the same
+ type that are equal with respect to the indexing comparator, only the first one will be
+ entered into the index. Note that you can still have duplicates with respect to the
+ indexing order, if they are of a different type. A set index is not guaranteed to be
+ sorted. If no keys are specified for a set index, then all instances are considered by
+ default to be equal, so only the first instance (for a particular type or subtype of the
+ type being indexed) is indexed. On the other hand, “<span class="quote">bag</span>” indicates that
+ all annotation instances are indexed, including duplicates.</p><p>The Priority Lists section of the Indexes page is used to specify Priority Lists of
+ types. Priority Lists are unnamed ordered sets of type names. Add a new priority list by
+ clicking the Add Set button. Add a type to an existing priority list by first selecting
+ the set, and then clicking Add. You can use the up and down buttons to adjust the order as
+ necessary; these buttons move the selected item up or down.</p><p>Although it is possible to import self-contained index and type priority files,
+ the creation of such files is not yet supported by the Component Descriptor Editor. If
+ you create these files using another editor, they can be imported using the
+ corresponding Import panels, shown on the right. Imports are specified in the same
+ manner as they are for Type System imports.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.resources"></a>1.11. Resources Page</h2></div></div></div><p>The resources page describes resource dependencies (for primitive Analysis
+ Engines) and external Resource specification and their bindings to the resource
+ dependencies.</p><p>Only primitive Analysis Engines define resource dependencies. Primitive and
+ Aggregate Analysis Engines can define external resources and connect them (bind them)
+ to resource dependencies.</p><p>When an Aggregate is providing an external resource to be bound to a dependency, the
+ binding is specified using a possibly multi-level path, starting at the Aggregate, and
+ specify which component (by its key name), and then if that component is, in turn, an
+ Aggregate, which component (again by its key name), and so on until you reach a
+ primitive. The sequence of key names is made into the binding specification by joining
+ the parts with a “<span class="quote">/</span>” character. All of this is done for you by the Component
+ Descriptor Editor.</p><p>Any external resource provided by an Aggregate will override any binding provided
+ by any lower level component for the same resource dependency.</p><p>There are two views of the Resources page, depending on whether the Analysis Engine
+ is an Aggregate or Primitive. Here's the view for a Primitive:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="515"><tr><td><img src="../images/tools/tools.cde/image060.jpg" width="515" alt="Resources page for a primitive"></td></tr></table></div></div><p>To declare a resource dependency, click the Add button in the right hand panel. This
+ puts up the dialog:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="396"><tr><td><img src="../images/tools/tools.cde/image062.jpg" width="396" alt="Specifying a resource dependency"></td></tr></table></div></div><p>The Key must be unique within the descriptor declaring it. The Interface, if
+ present, is the name of a Java interface the Analysis Engine uses to access the
+ resource.</p><p>Declare actual External resource on the left side of the page. Clicking
+ “<span class="quote">Add</span>” brings up this dialog:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="396"><tr><td><img src="../images/tools/tools.cde/image064.jpg" width="396" alt="Specifying an External Resource"></td></tr></table></div></div><p>The Name must be unique within this Analysis Engine. The URL identifies a file
+ resource. If both the URL and URL suffix are used, the file resource is formed by
+ combining the first URL part with the language-identifier, followed by the URL suffix;
+ see <a href="../references/references.html#ugr.ref.xml.component_descriptor.aes.primitive.resource_manager_configuration" class="olink">Section 2.4.1.11, “Resource Manager Configuration”</a> in <span class="olinkdocname">UIMA References</span>
+ . URLs may be written as “<span class="quote">relative</span>” URLs; in this case they are resolved by
+ looking them up relative to the classpath and/or datapath. A relative URL has the path
+ part starting without an intial “<span class="quote">/</span>”; for example:
+ file:my/directory/file. An absolute URL starts with file:/ or file:/// or
+ file://some.network.address/. For more information about URLs, please read the
+ javaDoc information for the Java class “<span class="quote">URL</span>”.</p><p>The Implementation is optional, and if given, must be a Java class that implements
+ the interface specified in any Resource Dependencies this resource is bound
+ to.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.resources.binding"></a>1.11.1. Binding</h3></div></div></div><p>Once you have an external resource definition, and a Resource Dependency, you
+ can bind them together. To do this, you select the two things (an external resource
+ definition, and a Resource Dependency) that you want to bind together, and click
+ Bind.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.resources.aggregates"></a>1.11.2. Resources with Aggregates</h3></div></div></div><p>When editing an Aggregate Descriptor, the Resource definitions panel will show
+ all the resources at the primitive level, with paths down through the components
+ (multiple levels, if needed) to get to the primitives. The Aggregate can define
+ external resources, and bind them to one or more uses by the primitives.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.resources.imports_exports"></a>1.11.3. Imports and Exports</h3></div></div></div><p>Resource definitions and their bindings can be imported, just like other
+ imports. Existing Resource definitions and their bindings can be exported to a new
+ importable part, and replaced with an import for that importable part, using the
+ “<span class="quote">Export...</span>” button, just like the similar function on the Type System
+ page.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.source"></a>1.12. Source Page</h2></div></div></div><p>The Source page is a text view of the xml content of the Analysis Engine or Type System
+ being configured. An example of this page is displayed below:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="576"><tr><td><img src="../images/tools/tools.cde/image066.jpg" width="576" alt="Source page"></td></tr></table></div></div><p>Changes made in the GUI are immediately reflected in the xml source, and changes
+ made in the xml source are immediately reflected back in the GUI. The thought here is that
+ the GUI view and the Source view are just two ways of looking at the same data. When the data
+ is in an unsaved state the file name is prefaced with an asterisk in the currently
+ selected file tab in the editor pane inside Eclipse (as in the example above).</p><p>You may accidentally create invalid descriptors or XML by editing directly in the
+ Source view. If you do this, when you try and save or when you switch to a different view,
+ the error will be detected and reported. In the case of saving, the file will be saved,
+ even if it is in an error state.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="ugr.tools.cde.source.formatting"></a>1.12.1. Source formatting – indentation</h3></div></div></div><p>The XML is indented using an indentation amount saved as a global UIMA
+ preference. To change this preference, use the Eclipse menu item: Windows <span class="symbol">→</span>
+ Preferences <span class="symbol">→</span> UIMA Preferences.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.creating_self_contained_type_system"></a>1.13. Creating a Self-Contained Type System</h2></div></div></div><p>It is also possible to use the Component Descriptor Editor to create or edit
+ self-contained type systems. To create a self-contained type system, select the menu
+ item File <span class="symbol">→</span> New <span class="symbol">→</span> Other and then select Type System Descriptor File. From the
+ next page of the selection wizard specify a Parent Folder and File name and click Finish.
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="300"><tr><td><img src="../images/tools/tools.cde/image068.jpg" width="300" alt="Working with a self-contained type system"></td></tr></table></div></div><p>
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="300"><tr><td><img src="../images/tools/tools.cde/image070.jpg" width="300"></td></tr></table></div></div><p>This will take you to a version of the Component Descriptor Editor for editing a type
+ system file which contains just three pages: an overview page, a type system page, and a
+ source page. The overview page is a bit more spartan than in the case of an AE. It looks like
+ the following:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="300"><tr><td><img src="../images/tools/tools.cde/image072.jpg" width="300" alt="Editing a type system object"></td></tr></table></div></div><p>Just like an AE has an associated name, version, vendor and description, the same is
+ true of a self-contained type system. The Type System page is identical to that in an AE
+ descriptor file, as is the Source page. Note that a self-contained type system can
+ import type systems just like the type system associated with an AE.</p><p>A type system component can also be created from an existing descriptor which
+ contains a type system definition section, by clicking on the Export... button on the
+ Type System page.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cde.creating_other_descriptor_components"></a>1.14. Creating Other Descriptor Components</h2></div></div></div><p>The new wizard can create several other kinds of components: Collection
+ Processing Management (CPM) components, flow controllers, and importable parts
+ (besides Type Systems, described above, Indexes, Type Priorities, and Resource
+ Manager Configuration imports).</p><p>The CPM components supported by this editor include the Collection Reader, CAS
+ Initializer, and CAS Consumer descriptors. Each of these is basically treated just
+ like a primitive AE descriptor, with small changes to accommodate the different
+ semantics. For instance, a CAS Consumer can't declare in its capabilities
+ section that it outputs types or features.</p><p>Flow controllers are components that control the flow of CASes within an
+ aggregate, an are edited in a similar fashion as a primitive Analysis Engine.</p><p>The importable part support requires context information to enable the editor to
+ work, because much of the power of this editor comes from extensive checking that
+ requires additional information, other than what is available in just the importable
+ part. For instance, when you create or edit an Indexes import, the facility for adding
+ new indexes needs the type information, which is not present in this part when it is
+ edited alone. To overcome this, when you edit these descriptors, you will be asked to
+ specify a context descriptor, usually a descriptor which would import the part being
+ edited, which would have the additional information needed. Various methods are used
+ to guess what the context descriptor should be - and if the guess is correct, you can just
+ press the Enter key to confirm. The last successful context file is remembered and will
+ be suggested as the context file to use at the next edit session</p></div></div><div class="chapter" lang="en" id="ugr.tools.cpe"><div class="titlepage"><div><div><h2 class="title"><a name="ugr.tools.cpe"></a>Chapter 2. Collection Processing Engine Configurator User's Guide</h2></div></div></div><p>A <span class="emphasis"><em>Collection Processing Engine (CPE)</em></span> processes
+ collections of artifacts (documents) through the combination of the following
+ components: a Collection Reader, Analysis Engines, and CAS Consumers.
+ <sup>[<a name="d0e961" href="#ftn.d0e961">1</a>]</sup>
+ </p><p>The <span class="emphasis"><em>Collection Processing Engine Configurator(CPE
+ Configurator)</em></span> is a graphical tool that allows you to assemble and run
+ CPEs.</p><p>For an introduction to Collection Processing Engine concepts, including
+ developing the components that make up a CPE, read <a href="../tutorials_and_users_guides/tutorials_and_users_guides.html#ugr.tug.cpe" class="olink">Chapter 2, Collection Processing Engine Developer's Guide
+ </a> in <span class="olinkdocname">UIMA Tutorial and Developers' Guides</span>. This
+ chapter is a user's guide for using the CPE Configurator tool, and does not describe
+ UIMA's Collection Processing Architecture itself.</p><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cpe.limitations"></a>2.1. Limitations of the CPE Configurator</h2></div></div></div><p>The CPE Configurator only supports basic CPE configurations.</p><p>It only supports “<span class="quote">Integrated</span>” deployments (although it will
+ connect to remotes if particular CAS Processors are specified with remote service
+ descriptors). It doesn't support configuration of the error handling. It
+ doesn't support Sofa Mappings; it assumes all Single-View components are
+ operating with the _InitialView Sofa. Multi-View components will not have their names
+ mapped. It sets up a fixed-sized CAS Pool.</p><p>To set these additional options, you must edit the CPE Descriptor XML file
+ directly. See <a href="../references/references.html#ugr.ref.xml.cpe_descriptor" class="olink">Chapter 3, Collection Processing Engine Descriptor Reference
+ </a> in <span class="olinkdocname">UIMA References</span> for the syntax.
+ You may then open the CPE Descriptor in the CPE Configurator and run it. The changes
+ you applied to the CPE Descriptor <span class="emphasis"><em>will</em></span> be respected, although you
+ will not be able to see them or edit them from the GUI.
+ </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cpe.starting"></a>2.2. Starting the CPE Configurator</h2></div></div></div><p>The CPE Configurator tool can be run using the <code class="literal">cpeGui</code> shell
+ script, which is located in the <code class="literal">bin</code> directory of the UIMA SDK. If
+ you've installed the example Eclipse project (see <a href="../overview_and_setup/overview_and_setup.html#ugr.ovv.eclipse_setup.example_code" class="olink">Section 3.2, “Setting up Eclipse to view Example Code”</a> in <span class="olinkdocname">Overview & Setup</span>, you can also run it using the
+ “<span class="quote">UIMA CPE GUI</span>” run configuration provided in that project.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you are planning to build a CPE using components other than the examples
+ included in the UIMA SDK, you will first need to update your CLASSPATH environment
+ variable to include the classes needed by these components.</p></div><p>When you first start the CPE Configurator, you will see the main window shown here:
+
+
+ </p><div class="screenshot"><div class="mediaobject"><table border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0" width="573"><tr><td><img src="../images/tools/tools.cpe/image002.jpg" width="573" alt="CPE Configurator main GUI window"></td></tr></table></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ugr.tools.cpe.selecting_component_descriptors"></a>2.3. Selecting Component Descriptors</h2></div></div></div><p>The CPE Configurator's main window is divided into three sections, one each for the Collection
[... 896 lines stripped ...]