You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2017/10/30 19:25:14 UTC

svn commit: r1813820 - in /uima/uv3/uimaj-v3/trunk: uima-docbook-overview-and-setup/src/docbook/ uima-docbook-references/src/docbook/ uima-docbook-tutorials-and-users-guides/src/docbook/

Author: schor
Date: Mon Oct 30 19:25:14 2017
New Revision: 1813820

URL: http://svn.apache.org/viewvc?rev=1813820&view=rev
Log:
[UIMA-5630] update docs

Modified:
    uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/eclipse_setup.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/faqs.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/glossary.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/project_overview.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.cas.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.javadocs.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.jcas.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/annotator_analysis_engine_guide.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml
    uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.multi_views.xml

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/eclipse_setup.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/eclipse_setup.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/eclipse_setup.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/eclipse_setup.xml Mon Oct 30 19:25:14 2017
@@ -54,7 +54,7 @@ under the License.
     later.
   </para>
   
-  <note><para>You will need to run Eclipse using a Java at the 1.5 or later level, in order
+  <note><para>You will need to run Eclipse using a Java at the 1.8 or later level, in order
   to use the UIMA Eclipse plugins.</para></note>
   
   <section id="ugr.ovv.eclipse_setup.installation">
@@ -66,8 +66,8 @@ under the License.
           url="&url_eclipse;"/> and follow the instructions there to download Eclipse.
         </para></listitem>
         
-        <listitem><para>We recommend using the latest release level (not an
-          <quote>Integration level</quote>). Navigate to the Eclipse Release version you
+        <listitem><para>We recommend using the latest release level. 
+          Navigate to the Eclipse Release version you
           want and download the archive for your platform.</para></listitem>
         
         <listitem><para>Unzip the archive to install Eclipse somewhere, e.g., c:\</para>
@@ -87,7 +87,7 @@ under the License.
     <section id="ugr.ovv.eclipse_setup.install_uima_eclipse_plugins">
       <title>Installing the UIMA Eclipse Plugins</title>
       
-      <para>The best way to do this is to use the Eclipse Update mechanism, because that will 
+      <para>The best way to do this is to use the Eclipse Install New Software mechanism, because that will 
         insure that all needed prerequisites are also installed.  See below for an alternative,
         manual approach.</para>
       
@@ -98,10 +98,10 @@ under the License.
         information about your proxy. </para></note>
 
       
-      <para>To use the Eclipse Update mechanism, start Eclipse, and then pick the menu 
+      <para>To use the Eclipse Install New Software mechanism, start Eclipse, and then pick the menu 
         <command>Help &rarr; Install new software...</command>.  In the next page, enter
         the following URL in the "Work with" box and press enter: 
-        http://www.apache.org/dist/uima/eclipse-update-site/.</para>
+        https://www.apache.org/dist/uima/eclipse-update-site/.</para>
       
       <para>Now select the plugin tools you wish to install, and click Next, and follow the 
         remaining panels to install the UIMA plugins.</para>
@@ -206,7 +206,7 @@ under the License.
       <para>If you are unable to use the Eclipse Update mechanism to install the UIMA plugins, you 
         can do this manually.  In the directory %UIMA_HOME%/eclipsePlugins (The environment variable
         %UIMA_HOME% is where you installed the UIMA SDK), you will see a set of folders. Copy these
-        to your %ECLIPSE_HOME%/eclipse/plugins directory (%ECLIPSE_HOME% is where you
+        to your %ECLIPSE_HOME%/dropins directory (%ECLIPSE_HOME% is where you
         installed Eclipse).</para>
       
     </section>
@@ -223,7 +223,7 @@ under the License.
       <section id="ugr.ovv.eclipse_setup.special_startup_parameter_clean">
         <title>Special startup parameter for Eclipse: -clean</title>
         <para>If you have modified the plugin structure (by copying or files directly in the
-          file system) in Eclipse 3.x after you started it for the first time, please include
+          file system) after you started it for the first time, please include
           the <quote>-clean</quote> parameter in the startup arguments to Eclipse,
           <emphasis>one time</emphasis> (after any plugin modifications were done). This
           is needed because Eclipse may not notice the changes you made, otherwise. This
@@ -235,8 +235,8 @@ under the License.
   </section>
   <section id="ugr.ovv.eclipse_setup.example_code">
     <title>Setting up Eclipse to view Example Code</title>
-    <para>Later chapters refer to example code. You can create a special project in Eclipse to
-      hold the examples. Here's how:</para>
+    <para>Later chapters refer to example code. Here's how to create a special project in Eclipse to
+      hold the examples.</para>
     
     <itemizedlist spacing="compact"><listitem><para>In Eclipse, if the Java
       perspective is not already open, switch to it by going to Window &rarr; Open Perspective
@@ -273,7 +273,7 @@ under the License.
         the <quote>Next</quote> button.</para></listitem>
       
       <listitem><para>Click <quote>Browse</quote> and browse to the
-        %UIMA_HOME%/ directory</para></listitem>
+        %UIMA_HOME%/examples directory</para></listitem>
       
       <listitem><para>Click <quote>Finish.</quote> This will create a new project called
         <quote>uimaj-examples</quote> in your Eclipse workspace. There should be no
@@ -290,8 +290,8 @@ under the License.
     <note><para>If you are running a current version of Eclipse, and have the m2e (Maven extensions for Eclipse) 
     plugin installed, Eclipse should be able to automatically download the source for the jars, so you may not need
     to do anything special (it does take a few seconds, and you need an internet connection).</para></note>
-    <para>If you would like to be able to jump to the UIMA source code in Eclipse or to step
-    through it with the debugger, you can add the UIMA source code to the jar files.  This is
+    <para>Otherwise, if you would like to be able to jump to the UIMA source code in Eclipse or to step
+    through it with the debugger, you can add the UIMA source code directly to the jar files.  This is
     done via a shell script that comes with the source distribution.  To add the source code
     to the jars, you need to:
     </para>

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/faqs.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/faqs.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/faqs.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/faqs.xml Mon Oct 30 19:25:14 2017
@@ -72,7 +72,8 @@ under the License.
             machines for greater scale, flexibility and recoverability).</para>
             
           <para>The UIMA project has several significant subprojects, including UIMA-AS (for flexibly
-          scaling out UIMA pipelines over clusters of machines), UIMA-DUCC (for managing clusters of 
+          scaling out UIMA pipelines over clusters of machines), uimaFIT (for a way of using UIMA without the xml descriptors; also provides 
+          many convenience methods), UIMA-DUCC (for managing clusters of 
           machines running scaled-out UIMA "jobs" in a "fair" way), RUTA (Eclipse-based tooling and \
           a runtime framework for development of rule-based
           Annotators), Addons (where you can find many extensions), and uimaFIT supplying a Java centric
@@ -80,6 +81,7 @@ under the License.
         </listitem>
       </varlistentry>
      
+      <!-- 
       <varlistentry id="ugr.faqs.include_semantic_search">
         <term><emphasis role="bold">
           Does UIMA include a semantic search engine?
@@ -94,6 +96,8 @@ under the License.
           </para>
         </listitem>
       </varlistentry>
+      --> 
+      
       <varlistentry id="ugr.faqs.what_is_an_annotation">
         
         <term><emphasis role="bold">What is an Annotation?</emphasis></term>
@@ -149,6 +153,7 @@ under the License.
             corresponds, etc.). For each version there is a separate instance of the results
             indices.</para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.only_annotations">
         <term><emphasis role="bold">Does the CAS only contain Annotations?</emphasis></term>
         <listitem><para>No. The CAS contains the artifact being analyzed plus the analysis
@@ -161,6 +166,7 @@ under the License.
           <para>The CAS may have multiple representations of the artifact being analyzed, each one
             represented in the CAS as a particular Subject of Analysis. or <link linkend="ugr.faqs.what_is_a_sofa">Sofa</link></para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.just_xml">
         <term><emphasis role="bold">Is the CAS just XML?</emphasis></term>
         <listitem><para>No, in fact there are many possible representations of the CAS. If all
@@ -168,9 +174,11 @@ under the License.
           data object is used. If a CAS must be sent to an analysis engine on a remote machine, it
           can be done via an XML or a binary serialization of the CAS. </para>
           
-          <para>The UIMA framework provides serialization and de-serialization methods
-            for a particular XML representation of the CAS named the XMI.</para></listitem>
+          <para>The UIMA framework provides multiple serialization and de-serialization methods
+            in various formats, including XML.  See the Javadocs for the CasIOUtils class.
+            </para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.what_is_a_type_system">
         <term><emphasis role="bold">What is a Type System?</emphasis></term>
         <listitem><para>Think of a type system as a schema or class model for the <link linkend="ugr.faqs.what_is_the_cas">CAS</link>. It defines
@@ -182,6 +190,7 @@ under the License.
             types (these can restrict the value of properties to other types) and
             single-inheritance hierarchy of types.</para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.what_is_a_sofa">
         <term><emphasis role="bold">What is a Sofa?</emphasis></term>
         <listitem><para>Sofa stands for &ldquo;Subject of Analysis&quot;. A <link linkend="ugr.faqs.what_is_the_cas">CAS</link> is
@@ -195,7 +204,6 @@ under the License.
           multi-modal analysis, where for example, one view of a video stream may be the video
           frames and the other the close-captions.</para></listitem>
       </varlistentry>
-
       
       <varlistentry id="ugr.faqs.annotator_versus_ae">
         <term><emphasis role="bold">What's the difference between an Annotator and an Analysis
@@ -215,12 +223,14 @@ under the License.
             interacts with. An Annotator is a user-written class that implements the one of
             the supported Annotator interfaces.</para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.web_services">
         <term><emphasis role="bold">Are UIMA analysis engines web services?</emphasis></term>
         <listitem><para>They can be deployed as such. Deploying an analysis engine as a web
           service is one of the deployment options supported by the UIMA framework.</para>
         </listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.stateless_aes">
         <term><emphasis role="bold">Do Analysis Engines have to be
           &quot;stateless&quot;?</emphasis></term>
@@ -240,6 +250,7 @@ under the License.
             documents that would prevent their engine from working as advertised if
             operated in a parallelized environment.</para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.uddi">
         <term><emphasis role="bold">Is engine meta-data compatible with web services and
           UDDI?</emphasis></term>
@@ -249,22 +260,29 @@ under the License.
           development tooling. In principle, UIMA component descriptors are compatible
           with web services and UDDI. However, the UIMA framework currently uses its own XML
           representation for component metadata. It would not be difficult to convert
-          between UIMA&apos;s XML representation and the WSDL and UDDI standards.</para>
+          between UIMA&apos;s XML representation and other standard representations.</para>
         </listitem>
       </varlistentry>
-
       
       <varlistentry id="ugr.faqs.scaling">
         <term><emphasis role="bold">How do you scale a UIMA application?</emphasis></term>
-        <listitem><para>The UIMA framework allows components such as <link linkend="ugr.faqs.annotator_versus_ae">analysis engines</link> and
+        <listitem><para>The UIMA framework allows components such as 
+          <link linkend="ugr.faqs.annotator_versus_ae">analysis engines</link> and
           CAS Consumers to be easily deployed as services or in other containers and managed
           by systems middleware designed to scale. UIMA applications tend to naturally
           scale-out across documents allowing many documents to be analyzed in
           parallel.</para>
-          <para>A component in the UIMA framework called the CPM (Collection Processing
-            Manager) has a host of features and configuration settings for scaling an
-            application to increase its throughput and recoverability.</para></listitem>
+          <para>The UIMA-AS project has extensive capabilities to flexibly scale a UIMA
+            pipeline across multiple machines.  The UIMA-DUCC project supports a 
+            unified management of large clusters of machines running multiple "jobs" 
+            each consisting of a pipeline with data sources and sinks.</para>
+          <para>Within the core UIMA framework, there is a component called the CPM (Collection Processing
+            Manager) which has features and configuration settings for scaling an
+            application to increase its throughput and recoverability; 
+            the CPM was the earlier version of scaleout technology, and has been 
+            superceded by the UIMA-AS effort (although it is still supported).</para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.embedding">
         <term><emphasis role="bold">What does it mean to embed UIMA in systems middleware?</emphasis></term>
         <listitem><para>An example of an embedding would be the deployment of a UIMA analysis
@@ -275,6 +293,7 @@ under the License.
           <link linkend="ugr.faqs.annotator_versus_ae">analysis engines</link> could be deployed on other application servers as well.</para>
         </listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.cpm_versus_cpe">
         <term><emphasis role="bold">How is the CPM different from a CPE?</emphasis></term>
         <listitem><para>These name complimentary aspects of collection processing. The CPM
@@ -296,6 +315,8 @@ under the License.
             index, database etc). The CPM is the execution engine for a CPE.</para>
         </listitem>
       </varlistentry>
+      
+      <!-- 
       <varlistentry id="ugr.faqs.semantic_search">
         <term><emphasis role="bold">What is Semantic Search and what is its relationship to
           UIMA?</emphasis></term>
@@ -319,8 +340,11 @@ under the License.
           documentation demonstrates how UIMA applications can be built using semantic
           search. It provides details about the XML Fragment Query language. This is the
           particular query language used by the semantic search engine that comes with the
-          SDK.</para></listitem>
+          SDK.</para>
+          </listitem>
       </varlistentry>
+       
+      
       <varlistentry id="ugr.faqs.xml_fragment_not_xml">
         <term><emphasis role="bold">Is an XML Fragment Query valid XML?</emphasis></term>
         <listitem><para>Not necessarily. The XML Fragment Query syntax is used to formulate
@@ -333,6 +357,8 @@ under the License.
           For example, it admits notations in the query to indicate whether a keyword or an
           annotation is optional or required to match a document.</para></listitem>
       </varlistentry>
+      -->
+      
       <varlistentry id="ugr.faqs.modalities_other_than_text">
         <term><emphasis role="bold">Does UIMA support modalities other than text?</emphasis></term>
         <listitem><para>The UIMA architecture supports the development, discovery,
@@ -349,6 +375,7 @@ under the License.
             closed-captions text. UIMA&apos;s multiple Sofa feature is included and
             described in this release of the SDK.</para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.compare">
         <term><emphasis role="bold">How does UIMA compare to other similar work?</emphasis></term>
         <listitem><para>A number of different frameworks for NLP have preceded UIMA. Two of
@@ -370,6 +397,7 @@ under the License.
             discovery and composition. (Please note that not all of these features are
             available in this release of the SDK.)</para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.open_source">
         <term><emphasis role="bold">Is UIMA Open Source?</emphasis></term>
         <listitem><para>Yes. As of version 2, UIMA development has moved to Apache and is being
@@ -380,23 +408,24 @@ under the License.
             <ulink url="http://uima-framework.sourceforge.net/"/>).</para>
         </listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.levels_required">
         <term><emphasis role="bold">What Java level and OS are required for the UIMA SDK?</emphasis></term>
-        <listitem><para>As of release 2.6.0, the UIMA SDK requires Java 1.6 or later. Releases from 2.2.1 to
-        2.5.0 require Java 1.5 level (or later).  Releases prior to 2.2.1
-          require as a minimum the Java 1.4 level; they will not run on 1.3 (or earlier levels). 
-          We routinely test releases with the most modern Javas (e.g. Java 8) as well. 
+        <listitem><para>As of release 3.0.0, the UIMA SDK requires Java 1.8 or later.  
           It has been tested on mainly on Windows and Linux platforms, with some
           testing on the MacOSX. Other
           platforms and JDK implementations will likely work, but have
           not been as significantly tested.</para></listitem>
       </varlistentry>
+      
       <varlistentry id="ugr.faqs.building_apps_on_top_of_uima">
         <term><emphasis role="bold">Can I build my UIM application on top of UIMA?</emphasis></term>
         <listitem><para>Yes. Apache UIMA is licensed under the Apache version 2 license,
           enabling you to build and distribute applications which include the framework.
           </para></listitem>
       </varlistentry>
+      
+      <!-- 
       <varlistentry id="ugr.faqs.commercial_products">
         <term><emphasis role="bold">Do any commercial products support the UIMA framework or include
           it as part of their product?</emphasis></term>
@@ -408,6 +437,7 @@ under the License.
           processing pipeline. We are actively seeking other product embeddings. </para>
         </listitem>
       </varlistentry>
+       -->
       <!--
       <varlistentry>
       <term><emphasis role="bold"></emphasis></term>

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/glossary.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/glossary.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/glossary.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/glossary.xml Mon Oct 30 19:25:14 2017
@@ -269,7 +269,8 @@ from the document is complex, you may us
           create and initialize a new <glossterm linkend="ugr.glossary.sofa">Sofa</glossterm>.</para>
       </glossdef>
     </glossentry>
-  
+
+<!--   
     <glossentry id="ugr.glossary.fact_search">
       <glossterm>Fact Search</glossterm>
       <glossdef>
@@ -278,7 +279,8 @@ extracted from a collection of documents
 match the fact pattern.</para>
       </glossdef>
     </glossentry>
-  
+   -->
+   
     <glossentry id="ugr.glossary.feature_structure">
       <glossterm>Feature Structure</glossterm>
       <glossdef>
@@ -347,13 +349,14 @@ as well.</para>
       <glossterm>JCas</glossterm>
       <glossdef>
         <para>A Java object interface to the contents of the CAS.  
-          This interface use additional generated Java classes, where each type in the CAS
+          This interface uses additional generated Java classes, where each type in the CAS
 is represented as a Java class with the same name, each feature is represented with
 a getter and setter method, and each instance of a type is represented as a
 Java object of the corresponding Java class.</para>
       </glossdef>
     </glossentry>
   
+<!-- 
     <glossentry id="ugr.glossary.keyword_search">
       <glossterm>Keyword Search</glossterm>
       <glossdef>
@@ -361,7 +364,8 @@ Java object of the corresponding Java cl
 and candidate documents are returned.</para>
       </glossdef>
     </glossentry>
-  
+ -->
+ <!--   
     <glossentry id="ugr.glossary.knowledge_base">
       <glossterm>Knowledge Base</glossterm>
       <glossdef>
@@ -369,7 +373,8 @@ and candidate documents are returned.</p
 set of facts and rules considered true in a possible world.</para>
       </glossdef>
     </glossentry>
-  
+   -->
+   
     <glossentry id="ugr.glossary.loosely_coupled_analysis_engine">
       <glossterm>Loosely-Coupled &ae;</glossterm>
       <glossdef>
@@ -385,6 +390,7 @@ greater impact on overall throughput tha
       </glossdef>
     </glossentry>
   
+<!--  -->
     <glossentry id="ugr.glossary.ontology">
       <glossterm></glossterm>
       <glossdef>
@@ -392,7 +398,8 @@ greater impact on overall throughput tha
 axiomatically.</para>
       </glossdef>
     </glossentry>
-  
+ -->
+   
     <glossentry id="ugr.glossary.pear">
       <glossterm>PEAR</glossterm>
       <glossdef>
@@ -414,7 +421,8 @@ contrast with
           <glossterm linkend="ugr.glossary.aggregate">&aae;</glossterm>.</para>
       </glossdef>
     </glossentry>
-  
+ 
+ <!--  
     <glossentry id="ugr.glossary.semantic_search">
       <glossterm>Semantic Search</glossterm>
       <glossdef>
@@ -425,7 +433,8 @@ Such a query would then not return resul
 in your garden but rather just persons named Bush.</para>
       </glossdef>
     </glossentry>
-  
+ -->
+ 
     <glossentry id="ugr.glossary.structured_information">
       <glossterm>Structured Information</glossterm>
       <glossdef>

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/project_overview.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/project_overview.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/project_overview.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-overview-and-setup/src/docbook/project_overview.xml Mon Oct 30 19:25:14 2017
@@ -1062,8 +1062,9 @@ under the License.
           </row>
           <row>
             <entry>Saving and Restoring CAS contents</entry>
-            <entry>APIs in the core framework support saving and restoring the contents of a CAS to streams using an
-              XMI format. </entry>
+            <entry>APIs in the core framework support saving and restoring the contents of a CAS to streams 
+              in multiple formats, including XMI, binary, and compressed forms.  
+              These apis are collected into the CasIOUtils class.</entry>
           </row>
           <row>
             <entry>PEAR Packager for Eclipse</entry>
@@ -1104,6 +1105,14 @@ under the License.
               viewer.</entry>
           </row>
           <row>
+            <entry>CAS Editor</entry>
+            <entry>Eclipse plug-in that lets you edit the contents of a CAS</entry>
+          </row>
+          <row>
+            <entry>UIMA Pipeline Eclipse Launcher</entry>
+            <entry>Eclipse plug-in that lets you configure Eclipse launchers for UIMA pipelines</entry>
+          </row>
+          <row>
             <entry namest="col1" nameend="col2" align="center" role="tableSubhead"> Example Analysis
               Components </entry>
           </row>

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.cas.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.cas.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.cas.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.cas.xml Mon Oct 30 19:25:14 2017
@@ -327,9 +327,9 @@ under the License.
       
     <para>The JCas cover classes for the array types support the Iterable API, so you may
     write extended for loops over instances of these.  For example:
-    <programlisting>FSArray myArray = ...
-for (TOP fs : myArray) {
-  somemethod(fs);
+    <programlisting>FSArray&lt;MyType&gt; myArray = ...
+for (MyType fs : myArray) {
+  some_method(fs);
 }</programlisting>
     </para>
     
@@ -424,7 +424,7 @@ for (TOP fs : myArray) {
     The iterator stops when it gets to the end of the list, determined by either the tail being null or 
     the element being one of the EmptyXXXList elements.
     Here's a StringList example:
-    <programlisting>StringList sl = new EmptyStringList(jcas);
+    <programlisting>StringList sl = jcas.emptyStringList();
 sl = sl.push("2");
 sl = sl.push("1");
 
@@ -476,22 +476,15 @@ for (String s : sl) {
       <programlisting>// Get all type names from the type system
 // and print them to stdout.
 private void listTypes1(TypeSystem ts) {
-  // Get an iterator over types
-  Iterator typeIterator = ts.getTypeIterator();
-  Type t;
-  System.out.println("Types in the type system:");
-  while (typeIterator.hasNext()) {
-    // Retrieve a type...
-    t = (Type) typeIterator.next();
-    // ...and print its name.
+  for (Type t : ts) {
+    // print its name.
     System.out.println(t.getName());
   }
-  System.out.println();
 }</programlisting>
       
       <para>This method is passed the type system as a parameter.  From the type system, we can 
         get an iterator
-        over all known types. If you run this against a CAS created with no additional
+        over all the types. If you run this against a CAS created with no additional
         user-defined types, we should see something like this on the console:</para>
       
       <programlisting>Types in the type system: 

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.javadocs.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.javadocs.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.javadocs.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.javadocs.xml Mon Oct 30 19:25:14 2017
@@ -45,7 +45,7 @@ under the License.
   
   <para>To add the Javadocs, open a project which is referring to the UIMA APIs in its class path, and open the project properties. Then pick
     Java Build Path. Pick the "Libraries" tab and select one of the UIMA library entries (if you don't have, for
-    instance, uima-core.jar in this list, it's unlikely your code will compile). Each library entry has a small "+"
+    instance, uima-core.jar in this list, it's unlikely your code will compile). Each library entry has a small ">"
     sign on its left - click that to expand the view to see the Javadoc location. If you highlight that and press edit - you
     can add a reference to the Javadocs, in the following dialog:
     

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.jcas.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.jcas.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.jcas.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-references/src/docbook/ref.jcas.xml Mon Oct 30 19:25:14 2017
@@ -46,28 +46,23 @@ under the License.
   <para>The data in the CAS are typed objects having fields. JCas uses a set of generated Java
     classes (each corresponding to a particular CAS type) with <quote>getter</quote> and
     <quote>setter</quote> methods for the features, plus a constructor so new instances can
-    be made. The Java classes don&apos;t actually store the data in the class instance;
-    instead, the getters and setters forward to the underlying CAS data representation.
-    Because of this, applications which use the JCas interface can share data with annotators
-    using plain CAS (i.e., not using the JCas approach). </para>
+    be made. The Java classes stores the data in the class instance.</para>
   
     <para>Users can modify the JCas generated
     Java classes by adding fields to them; this allows arbitrary non-CAS data to also be
     represented within the JCas objects, as well; however, the non-CAS data stored in the JCas
-    object instances cannot be shared with annotators using the plain CAS.</para>
-  
-  <para>Data in the CAS initially has no corresponding JCas type instances; these are created
-    as needed at the first reference. This means, if your annotator is passed a large CAS having
-    millions of CAS feature structures, but you only reference a few of them, and no previously
-    created Java JCas object instances were created by upstream annotators, the only Java
-    objects that will be created will be those that correspond to the CAS feature structures
-    that you reference.</para>
+    object instances cannot be shared with annotators using the plain CAS, unless special
+    provision is made - see the chapter in the v3 user's guide on storing arbitrary
+    Java objects in the CAS.</para>
   
   <para>The JCas class Java source files are generated from XML type system descriptions. The
     JCasGen utility does the work of generating the corresponding Java Class Model for the CAS
     types. There are a variety of ways JCasGen can be run; these are described later. You
     include the generated classes with your UIMA component, and you can publish these classes
     for others who might want to use your type system.</para>
+    
+  <para>JCas classes are not required for all UIMA types.  Those types which don&apos;t have 
+    corresponding JCas classes use the nearest JCas class corresponding to a type in their superchain.</para>
   
   <para>The specification of the type system in XML can be written using a conventional text
     editor, an XML editor, or using the Eclipse plug-in that supports editing UIMA
@@ -81,8 +76,7 @@ under the License.
   
   <para>A separate Java class is generated for each type; this type implements the CAS
     FeatureStructure interface, as well as having the special getters and setters for the
-    included features. In the current implementation, an additional helper class per type is
-    also generated. The generated Java classes have methods (getters and setters) for the
+    included features. The generated Java classes have methods (getters and setters) for the
     fields as defined in the XML type specification. Descriptor comments are reflected in the
     generated Java code as Java-doc style comments.</para>
   
@@ -171,6 +165,7 @@ uima.cas.String  &rarr; String</programl
     + ", size right mods: " + getrMods().size();
 }</programlisting>
  
+   <!-- does not apply for v3
     <section id="ugr.ref.jcas.data_persistence">
       <title>Persistence of additional data</title>
       <para>If you add custom instance fields to JCas cover classes, these exist in the JCas cover object instance,
@@ -188,6 +183,8 @@ uima.cas.String  &rarr; String</programl
         prevents them from being garbage collected, it is normally recommended running with the
         JCAS_CACHE_ENABLE set to "false".</para>
     </section>   
+     -->
+     
     <section id="ugr.ref.jcas.keeping_augmentations_when_regenerating">
       <title>Keeping hand-coded augmentations when regenerating</title>
       
@@ -485,7 +482,9 @@ ir.getIndex(name-of-index) // get the in
 ir.getIndex(name-of-index, Foo.type) // filtered by specific type
 
 ir.getAnnotationIndex()      // get AnnotationIndex
+jcas.getAnnotationIndex()    // get directly from jcas
 ir.getAnnotationIndex(Foo.type)      // filtered by specific type</programlisting>
+jcas.getAnnotationIndex(Foo.class)   // better
       
       <para>For convenience, the getAnnotationIndex method is available directly on the JCas object
       instance; the implementation merely forwards to the associated index repository.</para>
@@ -494,7 +493,7 @@ ir.getAnnotationIndex(Foo.type)      //
         index specification. They can be written as either Foo.type or if you have an instance
         of Foo, you can write</para>
       
-      <programlisting>fooInstance.jcasType.casType.  </programlisting>
+      <programlisting>fooInstance.getClass()</programlisting>
       
       <para>Foo is (of course) an example of the name of the type.</para>
       
@@ -510,10 +509,10 @@ ir.getAnnotationIndex(Foo.type)      //
       <programlisting>myInstance.addToIndexes();</programlisting>
       
       <para>Do this after setting all features in the instance <emphasis role="bold-italic">which could be used in indexing</emphasis>, 
-        for example, in determining the sorting order.  Changing the value of a feature used in a key,
-        after the feature structure has been added to the indexes, is inefficient, and must be done carefully,
-        in order to protect the indexes from corruption.  See <xref linkend="ugr.ref.cas.updating_indexed_feature_structures"/>;
-        the <code>protectIndexes</code> method is available on the JCas as well as the CAS.</para>
+        for example, in determining the sorting order.   
+        See <xref linkend="ugr.ref.cas.updating_indexed_feature_structures"/> for details
+        on updating indexed feature structures.
+      </para>
         
       <para>When writing a Multi-View component, you may need to index instances in multiple
         CAS views. The methods above use the indexes associated with the current JCas object.
@@ -567,6 +566,9 @@ jcas.getFsIndexRepository().
     <section id="ugr.ref.jcas.using_iterators">
       <title>Using Iterators</title>
       
+      <para>This chapter describes obtaining and using iterators.  However, it is recommended that instead 
+        you use the select framework, described in a chapter in the version 3 user's guide.</para>
+        
       <para>Once you have an index obtained from the JCas, you can get an iterator from the
         index; here is an example:</para>
       

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/annotator_analysis_engine_guide.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/annotator_analysis_engine_guide.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/annotator_analysis_engine_guide.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/annotator_analysis_engine_guide.xml Mon Oct 30 19:25:14 2017
@@ -70,12 +70,20 @@ under the License.
     easy-to-use, native Java interface to the CAS called the <emphasis>JCas</emphasis>.
     The JCas represents each feature structure as a Java object; the example feature
     structure from the previous paragraph would be an instance of a Java class Person with
-    getFullName() and setFullName() methods. Though the examples in this guide all use the
-    JCas, it is also possible to directly access the underlying CAS system; for more
-    information see <olink targetdoc="&uima_docs_ref;"/>
-    <olink targetdoc="&uima_docs_ref;" targetptr="ugr.ref.cas"/>
-    .</para>
+    getFullName() and setFullName() methods. 
+  </para>
+  
+  <para>The CAS interface for accessing feature structures uses UIMA Type an Feature object instances,
+    which are computed at run time, depending on the type system being used.  This interface supports
+    writing general annotators which can work for all type systems.  It is used, for example, internally,
+    in the CasCopier implementation, to copy the content of one CAS to another.
+  </para>
   
+  <para>The JCas interface can take advantage of knowing ahead of time the particular Types and Features
+    a pipeline is using.  The JCas Classes correspond to a particular UIMA type, and the class includes 
+    special setters and getters whose names match the features.
+  </para>
+    
   <para>The remainder of this chapter will refer to the analysis of text documents and the
     creation of annotations that are attached to spans of text in those documents. Keep in mind
     that the CAS can represent arbitrary types of feature structures, and feature structures
@@ -153,9 +161,8 @@ under the License.
       Also you may wish to refer to the UIMA SDK Javadocs located in the <ulink
         url="api/index.html">docs/api/index.html</ulink> directory.</para>
     
-        <note><para>In Eclipse 3.1, if you highlight a UIMA class or method defined in the UIMA SDK
-    Javadocs, you can conveniently have Eclipse open the corresponding Javadoc for that
-    class or method in a browser, by pressing Shift + F2.</para></note>
+        <note><para>If you hover over a UIMA class or method defined in the UIMA SDK
+    Javadocs, the Javadocs appear after a short delay. </para></note>
     <note><para>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
     <olink targetdoc="&uima_docs_ref;"/>
@@ -453,28 +460,25 @@ public class RoomNumberAnnotator extends
   // get document text
   String docText = aJCas.getDocumentText();
   // search for Yorktown room numbers
-  Matcher matcher = mYorktownPattern.matcher(docText);
+  Matcher m = mYorktownPattern.matcher(docText);
   int pos = 0;
-  while (matcher.find(pos)) {
-    // found one - create annotation
-    RoomNumber annotation = new RoomNumber(aJCas);
-    annotation.setBegin(matcher.start());
-    annotation.setEnd(matcher.end());
+  while (m.find(pos)) {
+    // found one - create annotation, with the begin/end positions
+    RoomNumber annotation = new RoomNumber(aJCas, m.start(), m.end());
     annotation.setBuilding("Yorktown");
     annotation.addToIndexes();
-    pos = matcher.end();
+    pos = m.end();
   }
+  
   // search for Hawthorne room numbers
-  matcher = mHawthornePattern.matcher(docText);
+  m = mHawthornePattern.matcher(docText);
   pos = 0;
-  while (matcher.find(pos)) {
-    // found one - create annotation
-    RoomNumber annotation = new RoomNumber(aJCas);
-    annotation.setBegin(matcher.start());
-    annotation.setEnd(matcher.end());
+  while (m.find(pos)) {
+    // found one - create annotation, with the begin/end positions
+    RoomNumber annotation = new RoomNumber(aJCas, m.start(), m.end());
     annotation.setBuilding("Hawthorne");
     annotation.addToIndexes();
-    pos = matcher.end();
+    pos = m.end();
   }
 }</programlisting>
       
@@ -483,9 +487,7 @@ public class RoomNumberAnnotator extends
         calling some set methods:</para>
       
       
-      <programlisting>RoomNumber annotation = new RoomNumber(aJCas);
-annotation.setBegin(matcher.start());
-annotation.setEnd(matcher.end());
+      <programlisting>RoomNumber annotation = new RoomNumber(aJCas, m.start(), m.end());
 annotation.setBuilding("Yorktown");</programlisting>
       
       <para>The <literal>RoomNumber</literal> class was generated from the type system description by the
@@ -944,21 +946,36 @@ public void initialize(UimaContext aCont
       <para>The UIMA framework supports this convention using the
         <literal>UimaContext</literal> object. If you access a logger instance using
         <literal>getContext().getLogger()</literal> or the shorter, but equivalent
-        <literal>getUimaLogger()</literal>
+        <literal>getLogger()</literal>
         within an Annotator, the logger
         name will be the fully qualified name of the Annotator implementation class.</para>
               
       <para>Here is an example from the process method of
         <literal>org.apache.uima.tutorial.ex2.RoomNumberAnnotator</literal>:
         
-        <programlisting>getLogger().trace("Found: {}", annotation);</programlisting>
-        </para>
-      
+        <programlisting>getLogger().trace("Found: {}", () -> annotation.toString());</programlisting>
+      </para>
+
       <para>The <code>trace</code> call 
         indicates that this is a tracing message. This is useful for tracing program flow, but it is a low level which
         is not usually enabled. 
       </para>
-      
+        
+      <para>
+        The first parameter is the message, with substitutable parts.  The convention for where those parts go is
+        written as either {} or {n}, where "n" is an integer, specifying the argument number.  
+        The modern logging APIs use the {} style, with API calls such as 
+        <code>logger.**level**( msg-using-{}-convention, substitutable-arguments)</code>, while the older
+        java.util.logger framework uses <code>logger.log(**level**, msg-using-{n} convention, substitutable-arguments)</code>.
+      </para>
+        
+      <para>
+        UIMA supports both styles.  
+        For new code, it is recommended to use the first style, together with the Java 8 lambda method for the arguments, which 
+        insures that the work of turning the <code>annotation</code>
+        argument into a printable string only will happen if tracing is enabled.
+      </para>
+         
       <para>Log statements are "filtered" according to the logging configuration, by Level, and sometimes by
         additional indicators, such as Markers.  Levels work in a hierarchy.  A given level of 
         filtering passes that level and all higher levels.  Some levels have two names, due to the 
@@ -977,7 +994,7 @@ public void initialize(UimaContext aCont
         </itemizedlist>
         </para>
         
-        <para>The CONFIG and FINEST levels are merged with other levels, but distinguished by having 
+        <para>The CONFIG and FINEST levels are merged with other levels, but are distinguished by having 
         <code>Markers</code>.  If the filtering is configured to pass CONFIG level, then it will pass also the
         INFO/WARN/ERROR  (or their alternative names WARNING/SEVERE) levels as well.
         </para>
@@ -1000,8 +1017,7 @@ public void initialize(UimaContext aCont
         Jar which connects SLF4j to the Java-built-in logger to use as
         its back end, so if you use the standard launchers, you will get this logging back end. 
         </para>
-  
-      
+        
       <para>Assuming you are using the Java-built-in-logger as the back-end, 
         if you specify the configuration using the standard UIMA SDK <literal>Logger.properties</literal>
         (found in <code>UIMA_HOME/config/</code>),
@@ -1384,35 +1400,38 @@ public void initialize(UimaContext aCont
       <para>So far, we have been looking at annotators that look directly at the document text. However, annotators
         can also use the results of other annotators. One useful thing we can do at this point is look for the
         co-occurrence of a Date, a RoomNumber, and two Times &ndash; and annotate that as a Meeting.</para>
+        
+      <para>The <code>select</code> API, available on the CAS, JCas, and individual UIMA indexes, 
+        is the preferred way to get 
+        feature structures from the CAS and work with them.</para>  
       
       <para>The CAS maintains <emphasis>indexes</emphasis> of annotations, and from an index you can obtain an
-        iterator that allows you to step through all annotations of a particular type. Here&apos;s some example code
-        that would iterate over all of the TimeAnnot annotations in the JCas:
+        iterator that allows you to step through all annotations of a particular type in that index.
+        Indexes are optional; they allow you to specify a sorting order or can specify set-inclusion
+        criteria.  One built-in index is the Annotation index; this contains sorted instances of type Annotation 
+        or its subtypes.
+      </para> 
+      
+      <para>
+        Here&apos;s some example code
+        that would iterate over all of the TimeAnnot annotations in the JCas, in some unspecified order:
         
-        
-        <programlisting>for (TimeAnnot : aJCas.&lt;TimeAnnot&gt;select(TimeAnnot.class)) {
+        <programlisting>for (TimeAnnot : aJCas.select(TimeAnnot.class)) {
   //do something
 }</programlisting></para>
       
-      <note>
-      <para>You can also use the method
-        <literal>aJCas.getAllIndexedFS(YourClass.type)</literal>, which returns an iterator
-        over instances of <literal>YourClass</literal> in no particular order. 
-        
-        <!-- Fixed by UIMA-4111 But beware - if you've defined
-        a <literal>set</literal> index for this type, and haven't defined any non-set indexes for this type, then,
-        the method would return only those instances in the set.  So, in a pathological case, if you defined the
-        set so that the key was some particular field, and all instances of this type had the same key, then 
-        only one instance of this type would be found.</para>
-        <para>To guarantee the existance of an index that would have an entry for all unique indexed 
-        Feature Structures, define a bag or sorted index for the type.
-        </para>.
+      <para>
+        The same code, but using the Annotation index to specify an ordering (assuming that
+        TimeAnnot is a subtype of Annotation):
         
-
-        <para>All types which are subtypes of the built-in Annotation type have a sorted index, and so all instances of those
-        types are guaranteed to be found (at least once) by this iterator.   -->
-        
-        </para>
+        <programlisting>for (TimeAnnot : aJCas.getAnnotationIndex().select(TimeAnnot.class)) {
+  //do something
+}
+  // or
+for (TimeAnnot : aJCas.getAnnotationIndex(TimeAnnot.class).select()) {
+  //do something
+}
+</programlisting></para>
         
       <para>Also, if you've defined your own custom index as described in <olink targetdoc="&uima_docs_ref;"/>
         <olink targetdoc="&uima_docs_ref;"
@@ -1423,7 +1442,12 @@ public void initialize(UimaContext aCont
       if you defined an index called "allEvents" over the type <literal>Event</literal>, and wanted 
       to get an index over just a particular subtype of event, say, <literal>TimeEvent</literal>,
       you can ask for that index using 
-        <literal>aJCas.getIndex("allEvents", TimeEvent.class)</literal>.</para></note>
+        <literal>aJCas.getIndex("allEvents", TimeEvent.class)</literal>.</para>
+      
+      
+      <para>Whereever the type is specified by TimeEvent.class, the APIs also allow the non-JCas 
+        specification of the type by passing an instance of a UIMA Type class. This alternative enables
+        writing code that can be used for any type, discovered at run time.</para>
       
       <para>Now that we&apos;ve explained the basics, let&apos;s take a look at the process method for
         <literal>org.apache.uima.tutorial.ex4.MeetingAnnotator</literal>. Since we&apos;re looking for a
@@ -2403,10 +2427,11 @@ documentAnalyzer</programlisting>
     
     <para>Here are some things to avoid doing in your annotator code:</para>
     
-    <para><emphasis role="bold">Retaining references to JCas objects between calls to
-      process()</emphasis></para>
+    <para><emphasis role="bold">Do not retain references to JCas objects between calls to
+      process() for different CASes</emphasis></para>
     
-    <para>The JCas will be cleared between calls to your annotator&apos;s process() method.
+    <para>The JCas will be cleared between calls to your annotator&apos;s process() method
+      for each new CAS.
       All of the analysis results related to the previous document will be deleted to make way
       for analysis of a new document. Therefore, you should never save a reference to a JCas
       Feature Structure object (i.e. an instance of a class created using JCasGen) and
@@ -2433,7 +2458,7 @@ documentAnalyzer</programlisting>
     <title>Viewing UIMA objects in the Eclipse debugger</title>
     <titleabbrev>UIMA Objects in Eclipse Debugger</titleabbrev>
     
-    <para>Eclipse (as of version 3.1 or later) has a new feature for viewing Java Logical
+    <para>Eclipse has a feature for viewing Java Logical
       Structures. When enabled, it will permit you to see a view of UIMA objects (such as
       feature structure instances, CAS or JCas instances, etc.) which displays the logical
       subparts. For example, here is a view of a feature structure for the RoomNumber
@@ -2450,8 +2475,8 @@ documentAnalyzer</programlisting>
     </mediaobject>
   </screenshot></para>
     
-    <para>The <quote>annotation</quote> object in Java shows as a 2 element object, not very
-      convenient for seeing the features or the part of the input that is being annotatoed. But
+    <para>The <quote>annotation</quote> object in Java shows the internals of the JCas object, not very
+      convenient for seeing the features or the part of the input that is being annotated. But
       if you turn on the Java Logical Structure mode by pushing this button:
       
       

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml Mon Oct 30 19:25:14 2017
@@ -1196,6 +1196,7 @@ SimpleTokenAndSentenceAnnotator.xml</lit
         
       </section>
     </section>
+    <!-- 
     <section id="ugr.tug.application.search.query_tool">
       <title>Semantic Search Query Tool</title>
       
@@ -1264,8 +1265,10 @@ SimpleTokenAndSentenceAnnotator.xml</lit
         Engine query language and interface, see the documentation for the semantic search engine component on
           <ulink url="http://www.alphaworks.ibm.com/tech/uima"/>.</para>
     </section>
+       -->
   </section>
-  
+
+   
   <section id="ugr.tug.application.remote_services">
     <title>Working with Remote Services</title>
     
@@ -2079,10 +2082,6 @@ Exception: Connection refused: connect</
 	      performanceTuningSettings.setProperty(
 	            UIMAFramework.CAS_INITIAL_HEAP_SIZE, 
 	            "1000000");
-	      // Disable JCas cache.
-	      performanceTuningSettings.setProperty(
-	            UIMAFramework.JCAS_CACHE_ENABLED, 
-	            "false");
 	      // Create a wrapper properties object that can
 	      // be passed to the framework.
 	      Properties additionalParams = new Properties();
@@ -2103,26 +2102,15 @@ Exception: Connection refused: connect</
 	  <para>
 		  The following options are supported:
 		  <itemizedlist>
+        <!-- not used in v3
 		    <listitem>
-		      <para><literal>UIMAFramework.JCAS_CACHE_ENABLED</literal>: allows you to disable
-				  the JCas cache (true/false).  The JCas cache is an internal datastructure that caches any JCas 
-				  object created
-				  by the CAS.  This may result in better performance for applications that make extensive use of
-				  the JCas, but also incurs a steep memory overhead.  If you're processing large documents and have
-				  memory issues, you should disable this option.  In general, just try running a few experiments to
-				  see what setting works better for your application.  The JCas cache is enabled by default.  
-				  </para>
-		    </listitem>
-		    <listitem>
-				  <para><literal>UIMAFramework.CAS_INITIAL_HEAP_SIZE</literal>: set the initial CAS heap size in
-				  number of cells (integer valued).  The CAS uses 32bit integer cells, so four times the initial 
-				  size is the
-				  approximate minimum size of the CAS in bytes.  This is another space/time trade-off as growing
-				  the CAS heap is relatively expensive.  On the other hand, setting the initial size too high is
-				  wasting memory.  Unless you know you are processing very small or very large documents, you should
-				  probably leave this option unchanged.
+				  <para><literal>UIMAFramework.CAS_INITIAL_HEAP_SIZE</literal>:  
+            This is only used to help initialize the sizes of some internal tables.
+            You can leave it unspecified; but if you know the approximate number of feature structures
+            a pipeline will have, you can specify it.
 				  </para>
 		   </listitem>
+        -->
 		    <listitem>
 				  <para><literal>UIMAFramework.PROCESS_TRACE_ENABLED</literal>: enable the process trace mechanism
 				  (true/false).  When enabled, UIMA tracks the time spent in individual components of an aggregate 

Modified: uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.multi_views.xml
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.multi_views.xml?rev=1813820&r1=1813819&r2=1813820&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.multi_views.xml (original)
+++ uima/uv3/uimaj-v3/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.multi_views.xml Mon Oct 30 19:25:14 2017
@@ -566,15 +566,10 @@ germAnnot.setFeatureValue(other, engAnno
         annotations for each associated CAS view. For the English Sofa:</para>
       
       
-      <programlisting>//get annotation iterator for this CAS
-FSIndex anIndex = aView.getAnnotationIndex();
-FSIterator anIter = anIndex.iterator();
-while (anIter.isValid()) {
-  AnnotationFS annot = (AnnotationFS) anIter.get();
+      <programlisting>for (Annotation annot : aView.getAnnotationIndex()) {
   System.out.println(" " + annot.getType().getName()
                          + ": " + annot.getCoveredText());
-  anIter.moveToNext();
-}</programlisting>
+}</programlisting>      
       
       <para>Iterating over all German annotations looks the same, except for the
         following:</para>