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 2016/10/11 18:16:34 UTC
svn commit: r1764314 - in
/uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src:
docbook/ docbook/images/uima_v3_users_guide/select/ image-source/
Author: schor
Date: Tue Oct 11 18:16:34 2016
New Revision: 1764314
URL: http://svn.apache.org/viewvc?rev=1764314&view=rev
Log:
[UIMA-5137] uv3 select documentation
Added:
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_processing_actions.png (with props)
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_selection_and_ordering.png (with props)
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_source_type.png (with props)
Modified:
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/image-source/source.pptx
Added: uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_processing_actions.png
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_processing_actions.png?rev=1764314&view=auto
==============================================================================
Binary file - no diff available.
Propchange: uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_processing_actions.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_selection_and_ordering.png
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_selection_and_ordering.png?rev=1764314&view=auto
==============================================================================
Binary file - no diff available.
Propchange: uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_selection_and_ordering.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_source_type.png
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_source_type.png?rev=1764314&view=auto
==============================================================================
Binary file - no diff available.
Propchange: uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/images/uima_v3_users_guide/select/select_source_type.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml?rev=1764314&r1=1764313&r2=1764314&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/docbook/uv3.select.xml Tue Oct 11 18:16:34 2016
@@ -92,10 +92,14 @@ under the License.
<section id="uv3.select.sources">
<title>Sources of Feature Structures</title>
- <para>There are three sources of Feature Structures supported:</para>
+ <para>There are 4 sources of Feature Structures supported:</para>
<itemizedlist spacing="compact">
<listitem>
- <para>The CAS
+ <para>a CAS view
+ </para>
+ </listitem>
+ <listitem>
+ <para>an Index over a CAS view
</para>
</listitem>
<listitem>
@@ -108,28 +112,519 @@ under the License.
</listitem>
</itemizedlist>
- <para>The CAS is the usual source, provides the most configurability, and comes in many variations,
- depending on UIMA Indexes, and whether a single view
- or all views are included. For example, you can specify one particular UIMA index (for example, a Set index)
- belonging to a particular view. Or you can specify all Feature Structures across all views (that is, the entire
- contents of the CAS). Here are the details.
- </para>
+ <para>Each of these sources has a new API method, <code>select(...)</code>, which initiates the select specification.
+ The select method can take an optional positional parameter, specifying the UIMA type to return.</para>
- <para>To use a CAS as a source, you start with either a CAS view or a particular UIMA index instance (which belongs
- to just one view). The CAS and FSIndex APIs have new <code>select()</code> methods. There are 4 varieties of these,
- to allow additional positional specification of a UIMA type. If a type is provided, then if an index is being used,
- the type must be a subtype of the index's type. The type is optional; if not provided, then the type specified
- by the index (if an index is being used) is used; otherwise, all types are included. Here's some examples:
- <programlisting>
-a_cas.select() // no type specified
-a_cas.select(a_type) // a_type is an instance of a UIMA type
- // (the class org.apache.uima.cas.Type)
-a_cas.select(Token.type) // where Token is the name of a JCas class
- // for the UIMA type Token
-a_cas.select(Token.class) // you can pass a Java class object as well
- </programlisting>
+ <figure id="uv3.select.source_type">
+ <title>select method with type</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata width="5.5in" format="PNG" fileref="&imgroot;select_source_type.png"/>
+ </imageobject>
+ <textobject><phrase>Sources have select method, which has optional type argument</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <para>A UIMA index is the usual source. If a CAS is used, all Feature Structures that were added to the index in the
+ specified CAS view are used as the source. The FSArray and FSList sources have more limited configurability,
+ because they are considered non-sorted, and therefore cannot be used for an operations which require a sorted order.</para>
+
+ <para>
+ The optional type argument for <code>select(...)</code> specifies a UIMA type. This restricts the Feature Structures
+ to just those of the specified type or any of its subtypes. If omitted, if an index is used as a source,
+ its type specification is used; otherwise the TOP type is used (meaning all types).</para>
+
+ <para>Type specifications may be specified in multiple ways.
+ The best practice, if you have a JCas cover class
+ defined for the type, is to use the form <code>MyJCasClass.class</code>. This has the advantage of setting the
+ expected generic type of the select to that Java type.
</para>
+
+ <para>The type may also be specified by using the actual UIMA type instance (useful if not using the
+ JCas), using a fully qualified type name as a string, or using the JCas class static <code>type</code> field.</para>
+
+ <section id="uv3.select.sources.generics">
+ <title>Sources and generic typing</title>
+ <para>The select method results in a generically typed object, which is used to have subsequent operations
+ make use of the generic type, which may reduce the need for casting.</para>
+
+ <para>The generic type can come from arguments or from where a value is being assigned,
+ if that target has a generic type. This latter source is only partially available in Java, as it does not
+ propagate past the first object in a chain of calls; this becomes a problem when using <code>select</code> with
+ generically typed index variables.
+ </para>
+
+ <para>A static version of the <code>select</code> method (named <code>sselect</code>) gets around this
+ by providing the generically typed information as an argument, rather than having it come from the receiver.</para>
+ <programlisting>
+// this works
+// the generic type for Token is passed as an argument to select
+FSIterator<Token> token_it = cas.select(Token.class).fsIterator();
+
+FSIndex<Token> token_index = ... ; // generically typed
+
+// this next fails because the
+// Token generic type from the index variable being assigned
+// doesn't get passed to the select().
+FSIterator<Token> token_iterator = token_index.select().fsIterator();
+
+// You can overcome this in two ways:
+// explicitly set the generic type select() should use, like this:
+FSIterator<Token> token_iterator =
+ token_index.<Token>select().fsIterator();
+
+// You can also use the static form of select
+FSIterator<Token> token_iterator = sselect(token_index).fsIterator();
+// Java makes use of the generic information from the index,
+// coming in as an argument
+ </programlisting>
+
+ <para>The <code>sselect</code> method may be statically imported into code that uses it, to avoid repeatedly
+ qualifying this with its class, <code>SelectFSs</code>.</para>
</section>
+
+ </section> <!-- end of section "sources" -->
+
+ <section id="uv3.select.selection_and_ordering">
+ <title>Selection and Ordering</title>
+
+ <para>There are four sets of sub-selection and ordering specifications, grouped
+ by what they apply to:
+ <itemizedlist spacing="compact">
+ <listitem>
+ <para>all sources
+ </para>
+ </listitem>
+ <listitem>
+ <para>Indexes or FSArrays or FSLists
+ </para>
+ </listitem>
+ <listitem>
+ <para>Ordered Indexes
+ </para>
+ </listitem>
+ <listitem>
+ <para>The Annotation Index
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>With some exceptions, configuration items to the left also apply to items on the right.
+ </para>
+
+ <para>When the same configuration item is specified multiple times,
+ the last one specified is the one that is used.</para>
+
+ <figure id="uv3.select.fig.selection_and_ordering">
+ <title>Selection and Ordering</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata width="5.5in" format="PNG" fileref="&imgroot;select_selection_and_ordering.png"/>
+ </imageobject>
+ <textobject><phrase>Selection and Ordering configuration</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <section id="uv3.select.boolean_properties">
+ <title>Boolean properties</title>
+ <para>Many configuration items specify a boolean property. These are named so the default (if you don't specify them)
+ is generally what is desired, and the specification of the method with null parameter switches the property to the
+ other (non-default) value.</para>
+
+ <para>For example, normally, when working with bounded limits within Annotation Indexes, type
+ priorities are ignored when computing the bound positions.
+ Specifying typePriority() says to use type priorities.</para>
+
+ <para>Additionally, the boolean configuration methods have an optional form where they take a boolean value;
+ true sets the property.
+ So, for example typePriority(true) is equivalent to typePriority(), and typePriority(false)
+ is equivalent to omitting this configuration.</para>
+ </section>
+
+ <section id="uv3.select.any_source">
+ <title>Configuration for any source</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">limit</emphasis></term>
+ <listitem>
+ <para>a limit to the number of Feature Structures that will be produced or iterated over.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">nullOk</emphasis></term>
+ <listitem>
+ <para>changes the behavior for some processing actions, which would otherwise
+ throw an exception if a null result happened.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+
+ <section id="uv3.select.any_index">
+ <title>Configuration for any index</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">allViews</emphasis></term>
+ <listitem>
+ <para>Normally, when you specify an index as the source, that specifies the contents of that index for the
+ particular CAS view, and ignores the content of that index in other views. If you want, instead, to have the
+ specification include the content of that index in all views, then you can specify <code>allViews()</code>.
+ </para>
+
+ <para>When this is specified, it acts as an aggregation, in no particular order, of indexes over a single CAS view.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+
+ <section id="uv3.select.ordered_index">
+ <title>Configuration for ordered indexes</title>
+
+ <para>When an index is ordered, there are additional capabilities that can be configured, in particular positioning
+ to particular Feature Structures, and running various iterations backwards.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">unordered</emphasis></term>
+ <listitem>
+ <para>relaxes any iteration by allowing it to proceed in an unordered manner. Specifying
+ this may improve performance in some cases. When this is specified,
+ the current implementation skips the work of keeping multiple
+ iterators for a type and all of its subtypes in the proper synchronization.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role=""></emphasis>startAt</term>
+ <listitem>
+ <para>position the starting point of any iteration.
+ <code>startAt(xxx)</code> takes two forms, each of which has, in turn 2 subforms.
+ The form using <code>begin, end</code> is only valid for Annotation Indexes.
+ <programlisting>
+startAt(fs); // fs specifies a feature structure
+ // indicating the starting position
+
+startAt(fs, shifted); // same as above, but after positioning,
+ // shift to the right or left by the shift
+ // amount which can be positive or negative
+
+ // the next two forms are only valid for AnnotationIndex sources
+
+startAt(begin, end); // start at the position indicated by begin / end
+
+startAt(begin, end, shifted) // same as above,
+ // but with a subsequent shift.
+</programlisting>
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">backwards</emphasis></term>
+ <listitem>
+ <para>causes any iteration to proceed from the last position
+ toward the first position.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="uv3.select.annot.subselect">
+ <title>Bounded sub-selection within an Annotation Index</title>
+
+ <para>There are four varieties of sub-selection within an annotation index. They all are based on a
+ bounding Feature Structure (except the <code>between</code> which is based on two bounding Feature Structures).
+ </para>
+
+ <para>The bounding Feature Structures are specified using either a Annotation Feature Structure (or a subtype), or
+ by specifying the begin and end offsets that would be for the bounding Feature Structure.</para>
+
+ <para>Leaving aside <code>between</code> as a special case, the bounding Feature Structure's
+ <code>begin</code> and <code>end</code>
+ (and sometimes, its <code>type</code>) is used to specify where an iteration would start, where it would end,
+ and possibly, which Feature Structures within those bounds would be filtered out. There are many variations
+ possible; these are described in the next section.</para>
+
+ <para>The bounding information is specified either as an Annotation Feature Structure (or a subtype of Annotation),
+ or the begin and end can be directly specified.</para>
+
+ <para>The returned Feature Structures exclude the one(s) which are <code>equal</code> to the bounding FS.
+ There are several
+ variations of how this <code>equal</code> test is done, discussed in the next section.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">coveredBy</emphasis></term>
+ <listitem>
+ <para>iterates over Feature Structures within the bound
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">covering</emphasis></term>
+ <listitem>
+ <para>iterates over Feature Structures that span (or are equal to) the bound.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">at</emphasis></term>
+ <listitem>
+ <para>iterates over Feature Structures that have the same span (i.e., begin and end) as the bound.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">between</emphasis></term>
+ <listitem>
+ <para>uses two feature structures, and returns Feature Structures that are in between
+ the two bounds. If the bounds are backwards, then they are automatically used in reverse order.
+ The meaning of between is that an included Feature Structure's begin has to be ≥ the earlier bound's <code>end</code>,
+ and the Feature Structure's end has to be ≤ the later bound's <code>begin</code>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="uv3.select.annot.variations">
+ <title>Variations in Bounded sub-selection within an Annotation Index</title>
+
+ <para>There are five variations you can specify. Three affect skipping of some Annotations while iterating.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">typePriority</emphasis></term>
+ <listitem>
+ <para>The default is to ignore type priorities when setting the starting position, and just use
+ the begin / end position to locate the left-most equal spot. If you want to respect type priorities,
+ specify this variant.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">positionUsesType</emphasis></term>
+ <listitem>
+ <para>When type priorities are not being used, Annotations with the same begin and end and type
+ will be together in the index. When locating the left-most equal spot, by default, the type of the
+ bounding Annotation is ignored; only it's begin and end values are used.
+ If you want to not ignore the type of the bounding Annotation, set this to true.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">nonOverlapping</emphasis></term>
+ <listitem>
+ <para>This is also called <emphasis>unambiguous</emphasis> iteration. If specified, then after
+ the iterator reaches a position, the <code>moveToNext()</code> operation moves to the next Annotation
+ which has a begin offset ≥ to the previous Annotation's <code>end</code> position.
+ If the iterator is run backwards, it is first run forwards to locate all the items that would be in the
+ forward iteration following the rules; and then those are traversed backwards.
+ This variant is ignored for <code>covering</code> selection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">endWithinBounds</emphasis></term>
+ <listitem>
+ <para>This is also called <emphasis>strict</emphasis>. For <code>coveredBy</code> selection,
+ if specified, then any Annotations whose
+ <code>end</code> position is > the end position of the bounding Annotation is skipped.
+ The <code>between</code> selection always behaves as if this is set.
+ This variant is ignored for <code>covering</code> selection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">skipEquals</emphasis></term>
+ <listitem>
+ <para>While doing bounded iteration, if the Annotation being returned is identical (has the same
+ _id()) with the bounding Annotation, it is skipped. If this variant is specified, in addition to
+ that, any Annotation which has the same begin, end, and (maybe) type is also skipped.
+ The <code>positionUsesType</code> setting is used to specify in this variant whether or not the
+ type is included when doing the equals test.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+
+ <section id="uv3.select.annot.follow_precede">
+ <title>Following or Preceding</title>
+
+ <para>For an Annotation Index, you can specify all Annotations following or preceding a position.
+ The position can be specified either as a Annotation, or by using begin and end values.
+ The arguments are identical to those of the <code>startAt</code> specification, but are interpreted
+ differently.
+ </para>
+
+ <para>The underlying iteration can be any of the kinds supported by the Annotation Index,
+ except that <code>endWithinBounds</code> is forced on.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">following</emphasis></term>
+ <listitem>
+ <para>Position the iterator according to the argument, and then move it forwards until
+ the Annotation's begin value ≥ to the position's end.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">preceding</emphasis></term>
+ <listitem>
+ <para>Position the iterator according to the argument, and then move it backwards until
+ the Annotation's end value ≤ to the position's begin.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+ </section>
+
+ <section id="uv3.select.processing_actions">
+ <title>Processing actions</title>
+
+ <para>After the sources and selection and ordering options have been specified, one
+ processing action may be specified. This can be an iterator, something that converts to an array or list,
+ something that retrieves a single value with various extra checks, or a stream operation. A stream operation
+ converts the object to a stream; from that point on, any stream operation may be used.</para>
+
+ <figure id="uv3.select.fig.processing_actions">
+ <title>Select Processing Actions</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata width="5.5in" format="PNG" fileref="&imgroot;select_processing_actions.png"/>
+ </imageobject>
+ <textobject><phrase>Processing actions for select</phrase>
+ </textobject>
+ </mediaobject>
+ </figure>
+
+ <section id="uv3.select.processing_actions.iterators">
+ <title>select - iterators</title>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">fsIterator</emphasis></term>
+ <listitem>
+ <para>returns a configured fsIterator or subIterator. This iterator implements <code>ListIterator</code> as well.
+ Modifications to the list using <code>add</code> or <code>set</code> are not supported.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">iterator</emphasis></term>
+ <listitem>
+ <para>This is just the plain Java iterator, for convenience.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">spliterator</emphasis></term>
+ <listitem>
+ <para>This returns a spliterator, which can be marginally more efficient to use than a normal iterator.
+ It is configured to be sequential (not parallel), and has other characteristics set according to
+ the sources and selection/ordering configuration.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </section>
+ <section id="uv3.select.processing_actions.arrays_lists">
+ <title>select - arrays and lists</title>
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">asArray</emphasis></term>
+ <listitem>
+ <para>This takes 1 argument, the class of the returned array type, which must be the type or subtype of the
+ select.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">asList</emphasis></term>
+ <listitem>
+ <para>Returns a Java list, configured from the sources and selection and ordering specifications.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+ <section id="uv3.select.processing_actions.single_items">
+ <title>select - single items</title>
+ <para>These methods return just a single item, according to the previously specified select configuration.
+ Variations may throw exceptions on empty or more than one item situations.</para>
+
+ <para>These have no-argument forms as well as argument forms identical to <code>startAt</code> (see above).
+ When arguments are specified, they server to adjust the item returned by positioning within the index
+ according to the arguments.</para>
+
+ <note>
+ <para>If the positioning arguments is other than a simple shift or omitted, then the
+ underlying index must be an AnnotationIndex.
+ </para>
+ </note>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">get</emphasis></term>
+ <listitem>
+ <para>If no argument is specified, then returns the first item, or null. If nullOk(false) is configured,
+ then if the result is null, an exception will be thrown.
+ </para>
+ <para>If any positioning arguments are specified, then this returns the item at that position unless
+ there is no item at that position, in which case it throws an exception unless <code>nullOk</code> is set.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">single</emphasis></term>
+ <listitem>
+ <para>returns the item at the position, but throws exceptions
+ if there are more than one item in the selection,
+ or if there are no items in the selection.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><emphasis role="strong">singleOrNull</emphasis></term>
+ <listitem>
+ <para>returns the item at the position, but throws an exception
+ if there are more than one item in the selection.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+ <section id="uv3.select.processing_actions.streams">
+ <title>select - streams</title>
+ <variablelist>
+ <varlistentry>
+ <term><emphasis role="strong">any stream method</emphasis></term>
+ <listitem>
+ <para>Select supports all the stream methods. The first occurance of a stream method converts the select
+ into a stream, using <code>spliterator</code>, and from then on, it behaves just like a stream object.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+ </section>
+
</chapter>
\ No newline at end of file
Modified: uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/image-source/source.pptx
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uima-docbook-v3-users-guide/src/image-source/source.pptx?rev=1764314&r1=1764313&r2=1764314&view=diff
==============================================================================
Binary files - no diff available.