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/01/11 21:36:05 UTC
svn commit: r495367 - in /incubator/uima/uimaj/trunk/uima-docbooks/src:
docbook/references/ docbook/tutorials_and_users_guides/ olink/references/
olink/tutorials_and_users_guides/
Author: alally
Date: Thu Jan 11 12:36:04 2007
New Revision: 495367
URL: http://svn.apache.org/viewvc?view=rev&rev=495367
Log:
Documentation updates for default bag indexes
(and clarifying some index concepts in general).
UIMA=173: http://issues.apache.org/jira/browse/UIMA-173
Modified:
incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.cas.xml
incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.xml.component_descriptor.xml
incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/annotator_analysis_engine_guide.xml
incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/htmlsingle-target.db
incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/pdf-target.db
incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db
incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/pdf-target.db
Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.cas.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.cas.xml?view=diff&rev=495367&r1=495366&r2=495367
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.cas.xml (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.cas.xml Thu Jan 11 12:36:04 2007
@@ -657,10 +657,10 @@
<para>Each CAS can have many indexes associated with it. Each index is represented by an
instance of the type org.apache.uima.cas.FSIndex. You use the object
org.apache.uima.cas.FSIndexRepository, accessible via a method on a CAS object, to
- retrieve instances of the index object. There are methods that let you select the index
- by name, or by name and type. Since each index is already associated with a type, the
- passing of an additional type parameter is valid only if the type passed in is the same
- type or a subtype of the one declared in the index specification for this index. If you
+ retrieve instances of indexes. There are methods that let you select the index
+ by name, by type, or by both name and type. Since each index is already associated with a type,
+ passing both a name and a type is valid only if the type passed in is the same
+ type or a subtype of the one declared in the index specification for the named index. If you
pass in a subtype, the returned FSIndex object refers to an index that will return only
items belonging to that subtype (or subtypes of that subtype).</para>
@@ -670,22 +670,49 @@
order, where the sort order is specified in the XML index definition. This XML is part of
the Component Descriptor, see <olink targetdoc="&uima_docs_ref;"
targetptr="ugr.ref.xml.component_descriptor.aes.index"/>.</para>
-
+
<para>Feature structures should not be added to or removed from indexes while iterating
over them; a ConcurrentModificationException is thrown when this is detected.
Certain operations are allowed with the iterators after modification, which can
<quote>reset</quote> this condition, such as moving to beginning, end, or moving to a
particular feature structure. So - if you have to modify the index, you can move it back to
the last FS you had retrieved from the iterator, and then continue, if that makes sense in
- your application.</para>
+ your application.</para>
+
+ <section id="ugr.ref.cas.index.built_in_indexes">
+ <title>Built-in Indexes</title>
+
+ <para>The CAS contains a built-in index for the type <literal>uima.tcas.Annotation</literal>, which sorts
+ annotations in the order in which they appear in the document. Annotations are sorted first by increasing
+ <literal>begin</literal> position. Ties are then broken by <emphasis>decreasing</emphasis>
+ <literal>end</literal> position (so that longer annotations come first). Annotations that match in both
+ their <literal>begin</literal> and <literal>end</literal> features are sorted using the Type Priority
+ (see <olink targetdoc="&uima_docs_ref;"
+ targetptr="ugr.ref.xml.component_descriptor.aes.type_priority"/> )</para>
+
+ <para>For all types that are not subtypes of <literal>uima.tcas.Annotation</literal>, if there is no custom
+ index defined in the Component Descriptor, the CAS will create a default bag (unsorted) index to hold
+ FeatureStructures of that type.</para>
+ </section>
+
+ <section id="ugr.ref.cas.index.adding_to_indexes">
+ <title>Adding Feature Structures to the Indexes</title>
+
+ <para>Feature Structures are added to the indexes by calling the
+ <literal>FSIndexRepository.addFS(FeatureStructure)</literal> method or the equivalent convenience
+ method <literal>CAS.addFsToIndexes(FeatureStructure)</literal>. This adds the Feature Structure to
+ <emphasis>all</emphasis> indexes that are defined for the type of that FeatureStructure (or any of its
+ supertypes). Note that you should not add a Feature Structure to the indexes until you have set values for all
+ of the features that may be used as sort keys in an index.</para>
+ </section>
+
<section id="ugr.ref.cas.index.iterators">
<title>Iterators</title>
- <para>Iterators are objects of class
- <literal>org.apache.uima.cas.FSIterator.</literal> This class implements the
- normal Java iterator methods, plus additional ones that allow moving both forwards
- and backwards.</para>
+ <para>Iterators are objects of class <literal>org.apache.uima.cas.FSIterator.</literal> This class
+ extends <literal>java.util.Iterator</literal> and implements the normal Java iterator methods, plus
+ additional ones that allow moving both forwards and backwards.</para>
</section>
Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.xml.component_descriptor.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.xml.component_descriptor.xml?view=diff&rev=495367&r1=495366&r2=495367
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.xml.component_descriptor.xml (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/references/ref.xml.component_descriptor.xml Thu Jan 11 12:36:04 2007
@@ -983,15 +983,15 @@
</fsIndexCollection>]]></programlisting>
- <para>The <literal>fsIndexCollection</literal> element
- declares<emphasis> Feature Structure Indexes</emphasis>, which define an
- index that holds feature structures of a given type. Information in the CAS is
- always accessed through an index. There is a built-in default annotation
- index declared which can be used to access instances of type Annotation (or its
- subtypes), but if there is a need for a specialized index it must be declared in
- this element. See <olink targetdoc="&uima_docs_ref;"
- targetptr="ugr.ref.cas.indexes_and_iterators"/> for details on FS
- indexes.</para>
+ <para>The <literal>fsIndexCollection</literal> element declares<emphasis> Feature Structure
+ Indexes</emphasis>, which define an index that holds feature structures of a given type.
+ Information in the CAS is always accessed through an index. There is a built-in default annotation
+ index declared which can be used to access instances of type
+ <literal>uima.tcas.Annotation</literal> (or its subtypes), sorted based on their
+ <literal>begin</literal> and <literal>end</literal> features. For all other types, there is a
+ default, unsorted (bag) index. If there is a need for a specialized index it must be declared in this
+ element of the descriptor. See <olink targetdoc="&uima_docs_ref;"
+ targetptr="ugr.ref.cas.indexes_and_iterators"/> for details on FS indexes.</para>
<para>Like type systems and type priorities, an
<literal>fsIndexCollection</literal> can declare a
@@ -1037,10 +1037,13 @@
<literal><kind></literal> of index. Sorted indexes enforce an
ordering of feature structures, and may contain duplicates. Bag indexes do
not enforce ordering, and also may contain duplicates. Set indexes do not
- enforce ordering and may not contain duplicates. If the
- <literal><kind></literal>element is omitted, it will default to
+ enforce ordering and may not contain duplicates. If the <literal><kind></literal>element is omitted, it will default to
sorted, which is the most common type of index.</para>
+ <note><para>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.</para></note>
+
<para>An index may define one or more <emphasis>keys</emphasis>. These keys
determine the sort order of the feature structures within a sorted index, and
determine equality for set indexes. Bag indexes do not use keys. Keys are
Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/annotator_analysis_engine_guide.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/annotator_analysis_engine_guide.xml?view=diff&rev=495367&r1=495366&r2=495367
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/annotator_analysis_engine_guide.xml (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/tutorials_and_users_guides/annotator_analysis_engine_guide.xml Thu Jan 11 12:36:04 2007
@@ -336,58 +336,57 @@
<section id="ugr.tug.aae.developing_annotator_code">
<title>Developing Your Annotator Code</title>
- <para>Annotator implementations all implement a standard interface
- (AnalysisComponent), having several methods, the most important of which are:
+ <para>Annotator implementations all implement a standard interface (AnalysisComponent), having several
+ methods, the most important of which are:
<itemizedlist spacing="compact">
- <listitem><para><literal>initialize</literal>, </para></listitem>
+ <listitem>
+ <para><literal>initialize</literal>, </para>
+ </listitem>
- <listitem><para><literal>process</literal>, and </para></listitem>
+ <listitem>
+ <para><literal>process</literal>, and </para>
+ </listitem>
- <listitem><para><literal>destroy</literal>. </para></listitem>
+ <listitem>
+ <para><literal>destroy</literal>. </para>
+ </listitem>
</itemizedlist></para>
- <para><literal>initialize</literal> is called by the framework once when it first
- creates an instance of the annotator class. <literal>process</literal> is called
- once per item being processed. <literal>destroy</literal> may be called by the
- application when it is done. There is a default implementation of this interface for
- annotators using the JCas, called JCasAnnotator_ImplBase, which has
+ <para><literal>initialize</literal> is called by the framework once when it first creates an instance of the
+ annotator class. <literal>process</literal> is called once per item being processed.
+ <literal>destroy</literal> may be called by the application when it is done. There is a default
+ implementation of this interface for annotators using the JCas, called JCasAnnotator_ImplBase, which has
implementations of all required methods except for the process method.</para>
- <para>Our annotator class extends the JCasAnnotator_ImplBase; most annotators that
- use the JCas will extend from this class, so they only have to implement the process
- method. This class is not restricted to handling just text; see <olink
- targetdoc="&uima_docs_tutorial_guides;"
- targetptr="ugr.tug.aas"/>.</para>
-
- <para>Annotators are not required to extend from the JCasAnnotator_ImplBase class;
- they may instead directly implement the AnalysisComponent interface, and provide
- all method implementations themselves. <footnote>
- <para>Note that AnalysisComponent is not specific to JCAS. There is a method
- getRequiredCasInterface() which the user would have to implement to return
- <literal>JCas.class</literal>. Then in the <literal>process(AbstractCas
- cas)</literal> method, they would need to typecas <literal>cas</literal> to
- type <literal>JCas</literal>.</para></footnote> This allows you to have your
- annotator inherit from some other superclass if necessary. If you would like to do
- this, see the JavaDocs for JCasAnnotator for descriptions of the methods you must
- implement.</para>
-
- <para>Annotator classes need to be public and have public, 0-argument constructors,
- so that they can be instantiated by the framework <footnote><para> Although Java
- classes in which you do not define any constructor will, by default, have a 0-argument
- constructor that doesn't do anything, a class in which you have defined at least
- one constructor does not get a default 0-argument constructor.</para> </footnote>
- .</para>
-
- <para>The class definition for our RoomNumberAnnotator implements the process
- method, and is shown here. You can find the source for this in the
- <literal>uimaj_examples/src/org/apache/uima/tutorial/ex1/RoomNumberAnnotator.java</literal>
- . <note><para>In Eclipse, in the <quote>Package Explorer</quote> view, this will
- appear by default in the project <literal>uimaj_examples</literal>, in the folder
- <literal>src</literal>, in the package
- <literal>org.apache.uima.tutorial.ex1</literal>.</para></note> In Eclipse,
- open the RoomNumberAnnotator.java in the uimaj_examples project, under the src
- directory.</para>
+ <para>Our annotator class extends the JCasAnnotator_ImplBase; most annotators that use the JCas will extend
+ from this class, so they only have to implement the process method. This class is not restricted to handling
+ just text; see <olink targetdoc="&uima_docs_tutorial_guides;" targetptr="ugr.tug.aas"/>.</para>
+
+ <para>Annotators are not required to extend from the JCasAnnotator_ImplBase class; they may instead
+ directly implement the AnalysisComponent interface, and provide all method implementations themselves.
+ <footnote>
+ <para>Note that AnalysisComponent is not specific to JCAS. There is a method getRequiredCasInterface()
+ which the user would have to implement to return <literal>JCas.class</literal>. Then in the
+ <literal>process(AbstractCas cas)</literal> method, they would need to typecas
+ <literal>cas</literal> to type <literal>JCas</literal>.</para></footnote> This allows you to have
+ your annotator inherit from some other superclass if necessary. If you would like to do this, see the JavaDocs
+ for JCasAnnotator for descriptions of the methods you must implement.</para>
+
+ <para>Annotator classes need to be public and have public, 0-argument constructors, so that they can be
+ instantiated by the framework <footnote>
+ <para> Although Java classes in which you do not define any constructor will, by default, have a 0-argument
+ constructor that doesn't do anything, a class in which you have defined at least one constructor does
+ not get a default 0-argument constructor.</para> </footnote> .</para>
+
+ <para>The class definition for our RoomNumberAnnotator implements the process method, and is shown here. You
+ can find the source for this in the
+ <literal>uimaj_examples/src/org/apache/uima/tutorial/ex1/RoomNumberAnnotator.java</literal> .
+ <note>
+ <para>In Eclipse, in the <quote>Package Explorer</quote> view, this will appear by default in the project
+ <literal>uimaj_examples</literal>, in the folder <literal>src</literal>, in the package
+ <literal>org.apache.uima.tutorial.ex1</literal>.</para></note> In Eclipse, open the
+ RoomNumberAnnotator.java in the uimaj_examples project, under the src directory.</para>
<programlisting>package org.apache.uima.tutorial.ex1;
@@ -415,24 +414,21 @@
}
}</programlisting>
- <para>The two Java class fields, mYorktownPattern and mHawthornePattern, hold
- regular expressions that will be used in the process method. Note that these two
- fields are part of the Java implementation of the annotator code, and not a part of the
- CAS type system. We are using the regular expression facility that is built into Java
- 1.4. It is not critical that you know the details of how this works, but if you are
- curious the details can be found in the Java API docs for the java.util.regex
- package.</para>
-
- <para>The only method that we are required to implement is process. This method is
- typically called once for each document that is being analyzed. This method takes one
- argument, which is a JCas instance; this holds the document to be analyzed and all of
- the analysis results. <footnote><para>Version 1 of UIMA specified an additional
- parameter, the ResultSpecification. This provides a specification of which types
- and features are desired to be computed and "output" from this annotator. Its use is
- optional; many annotators ignore it.</para><para> This parameter has been
- replaced by specific set/getResultSpecification() methods, which allow the
- annotator to receive a signal (a method call) when the result specification
- changes.</para></footnote></para>
+ <para>The two Java class fields, mYorktownPattern and mHawthornePattern, hold regular expressions that
+ will be used in the process method. Note that these two fields are part of the Java implementation of the
+ annotator code, and not a part of the CAS type system. We are using the regular expression facility that is
+ built into Java 1.4. It is not critical that you know the details of how this works, but if you are curious the
+ details can be found in the Java API docs for the java.util.regex package.</para>
+
+ <para>The only method that we are required to implement is process. This method is typically called once for
+ each document that is being analyzed. This method takes one argument, which is a JCas instance; this holds the
+ document to be analyzed and all of the analysis results. <footnote>
+ <para>Version 1 of UIMA specified an additional parameter, the ResultSpecification. This provides a
+ specification of which types and features are desired to be computed and "output" from this annotator. Its
+ use is optional; many annotators ignore it.</para>
+ <para> This parameter has been replaced by specific set/getResultSpecification() methods, which allow
+ the annotator to receive a signal (a method call) when the result specification changes.</para>
+ </footnote></para>
<programlisting>public void process(JCas aJCas) {
@@ -465,9 +461,9 @@
}
</programlisting>
- <para>The Matcher class is part of the java.util.regex package and is used to find the
- room numbers in the document text. When we find one, recording the annotation is as
- simple as creating a new Java object and calling some set methods:</para>
+ <para>The Matcher class is part of the java.util.regex package and is used to find the room numbers in the
+ document text. When we find one, recording the annotation is as simple as creating a new Java object and
+ calling some set methods:</para>
<programlisting>RoomNumber annotation = new RoomNumber(aJCas);
@@ -476,21 +472,27 @@
annotation.setBuilding("Yorktown");
</programlisting>
- <para>The <literal>RoomNumber</literal> class was generated from the type system
- description by the Component Descriptor Editor or the JCasGen tool, as discussed in
- the previous section.</para>
-
- <para>Finally, we call annotation.addToIndexes() to add the new annotation to the
- indexes maintained in the CAS. By default, the CAS implementation used for analysis
- of text documents keeps an index of all annotations in their order from beginning to
- end of the document. Subsequent annotators or applications use the indexes to
- iterate over the annotations. It is also possible to define your own custom indexes in
- the CAS (see <olink targetdoc="&uima_docs_ref;" targetptr="ugr.ref.cas"/> for
- details).</para> <note><para> If you don't add the instance to the indexes, it
- cannot be retrieved by down-stream annotators, using the indexes. </para></note>
+ <para>The <literal>RoomNumber</literal> class was generated from the type system description by the
+ Component Descriptor Editor or the JCasGen tool, as discussed in the previous section.</para>
+
+ <para>Finally, we call <literal>annotation.addToIndexes()</literal> to add the new annotation to the
+ indexes maintained in the CAS. By default, the CAS implementation used for analysis of text documents keeps
+ an index of all annotations in their order from beginning to end of the document. Subsequent annotators or
+ applications use the indexes to iterate over the annotations. </para>
+
+ <note>
+ <para> If you don't add the instance to the indexes, it cannot be retrieved by down-stream annotators,
+ using the indexes. </para></note>
+
+ <note>
+ <para>You can also call <literal>addToIndexes()</literal> on Feature Structures that are not subtypes of
+ <literal>uima.tcas.Annotation</literal>, but these will not be sorted in any particular way. If you want
+ to specify a sort order, you can define your own custom indexes in the CAS: see <olink
+ targetdoc="&uima_docs_ref;" targetptr="ugr.ref.cas"/> and <olink targetdoc="&uima_docs_ref;"
+ targetptr="ugr.ref.xml.component_descriptor.aes.index"/> for details.</para></note>
- <para>We're almost ready to test the RoomNumberAnnotator. There is just one more
- step remaining.</para>
+ <para>We're almost ready to test the RoomNumberAnnotator. There is just one more step
+ remaining.</para>
</section>
<section id="ugr.tug.aae.creating_xml_descriptor">
<title>Creating the XML Descriptor</title>
@@ -1220,15 +1222,13 @@
<section id="ugr.tug.aae.reading_results_previous_annotators">
<title>Reading the Results of Previous Annotators</title>
- <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 – and annotate that as a Meeting.</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's some example code that would iterate over all of the
- TimeAnnot annotations in the JCas:
+ <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 – and annotate that as a Meeting.</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's some example code
+ that would iterate over all of the TimeAnnot annotations in the JCas:
<programlisting>JFSIndexRepository indexes = aJCas.getJFSIndexRepository();
@@ -1241,27 +1241,32 @@
}
</programlisting></para>
- <para>Now that we've explained the basics, let's take a look at the process
- method for
- <literal>org.apache.uima.tutorial.ex4.MeetingAnnotator</literal>. Since
- we're looking for a combination of a RoomNumber, a Date, and two Times, there are
- four nested iterators. (There's surely a better algorithm for doing this, but
- to keep things simple we're just going to look at every combination of the four
- items.)</para>
-
- <para>For each combination of the four annotations, we compute the span of text that
- includes all of them, and then we check to see if that span is smaller than a
- <quote>window</quote> size, a configuration parameter. There are also some checks
- to make sure that we don't annotate the same span of text multiple times. If all
- the checks pass, we create a Meeting annotation over the whole span. There's
- really nothing to it!</para>
+ <note>
+ <para>You can also use the method
+ <literal>JFSIndexRepository.getAllIndexedFS(YourClass.type)</literal>, which returns an iterator
+ over all instances of <literal>YourClass</literal> in no particular order. This can be useful for types
+ that are not subtypes of the built-in Annotation type and which therefore have no default sort order.</para>
+ <para>Also, if you've defined your own custom index as described in <olink targetdoc="&uima_docs_ref;"
+ targetptr="ugr.ref.xml.component_descriptor.aes.index"/>, you can get an iterator over that
+ specific index by calling <literal>JFSIndexRepository.getIndex(label)</literal>.</para></note>
+
+ <para>Now that we've explained the basics, let's take a look at the process method for
+ <literal>org.apache.uima.tutorial.ex4.MeetingAnnotator</literal>. Since we're looking for a
+ combination of a RoomNumber, a Date, and two Times, there are four nested iterators. (There's surely a
+ better algorithm for doing this, but to keep things simple we're just going to look at every combination
+ of the four items.)</para>
+
+ <para>For each combination of the four annotations, we compute the span of text that includes all of them, and
+ then we check to see if that span is smaller than a <quote>window</quote> size, a configuration parameter.
+ There are also some checks to make sure that we don't annotate the same span of text multiple times. If all
+ the checks pass, we create a Meeting annotation over the whole span. There's really nothing to
+ it!</para>
<para>The XML descriptor, located in
- <literal>examples/descriptors/tutorial/ex4/MeetingAnnotator.xml</literal>
- , is also very straightforward. An important difference from previous descriptors
- is that this is the first annotator we've discussed that has input
- requirements. This can be seen on the <quote>Capabilities</quote> page of the
- Component Descriptor Editor:</para>
+ <literal>examples/descriptors/tutorial/ex4/MeetingAnnotator.xml</literal> , is also very
+ straightforward. An important difference from previous descriptors is that this is the first annotator
+ we've discussed that has input requirements. This can be seen on the <quote>Capabilities</quote>
+ page of the Component Descriptor Editor:</para>
<screenshot>
@@ -1274,26 +1279,24 @@
</mediaobject>
</screenshot>
- <para>If we were to run the MeetingAnnotator on its own, it wouldn't detect
- anything because it wouldn't have any input annotations to work with. The
- required input annotations can be produced by the RoomNumber and DateTime
- annotators. So, we create an aggregate Analysis Engine containing these two
- annotators, followed by the Meeting annotator. This aggregate is illustrated in
- <xref linkend="ugr.tug.aae.fig.aggregate_for_meeting_annotator"/>. The
- descriptor for this is in
- <literal>examples/descriptors/tutorial/ex4/MeetingDetectorAE.xml</literal>
- . Give it a try in the Document Analyzer.
+ <para>If we were to run the MeetingAnnotator on its own, it wouldn't detect anything because it
+ wouldn't have any input annotations to work with. The required input annotations can be produced by the
+ RoomNumber and DateTime annotators. So, we create an aggregate Analysis Engine containing these two
+ annotators, followed by the Meeting annotator. This aggregate is illustrated in <xref
+ linkend="ugr.tug.aae.fig.aggregate_for_meeting_annotator"/>. The descriptor for this is in
+ <literal>examples/descriptors/tutorial/ex4/MeetingDetectorAE.xml</literal> . Give it a try in the
+ Document Analyzer.
<figure id="ugr.tug.aae.fig.aggregate_for_meeting_annotator">
- <title>An Aggregate Analysis Engine where an internal component uses output from
- previous engines</title>
+ <title>An Aggregate Analysis Engine where an internal component uses output from previous
+ engines</title>
<mediaobject>
<imageobject>
- <imagedata width="555px" format="PNG"
- fileref="&imgroot;image034.png"/>
+ <imagedata width="555px" format="PNG" fileref="&imgroot;image034.png"/>
</imageobject>
- <textobject><phrase>An Aggregate Analysis Engine where an internal
- component uses output from previous engines. </phrase></textobject>
+ <textobject><phrase>An Aggregate Analysis Engine where an internal component uses output from
+ previous engines. </phrase>
+ </textobject>
</mediaobject>
</figure> </para>
Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/htmlsingle-target.db
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/htmlsingle-target.db?view=diff&rev=495367&r1=495366&r2=495367
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/htmlsingle-target.db (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/htmlsingle-target.db Thu Jan 11 12:36:04 2007
@@ -311,17 +311,21 @@
<div element="section" href="#ugr.ref.cas.indexes_and_iterators" number="4.7" targetptr="ugr.ref.cas.indexes_and_iterators">
<ttl>Indexes and Iterators</ttl>
<xreftext>Section 4.7, âIndexes and Iteratorsâ</xreftext>
- <div element="section" href="#ugr.ref.cas.index.iterators" number="4.7.1" targetptr="ugr.ref.cas.index.iterators">
+ <div element="section" href="#ugr.ref.cas.index.adding_to_indexes" number="4.7.1" targetptr="ugr.ref.cas.index.adding_to_indexes">
+ <ttl>Adding Feature Structures to the Indexes</ttl>
+ <xreftext>Section 4.7.1, âAdding Feature Structures to the Indexesâ</xreftext>
+ </div>
+ <div element="section" href="#ugr.ref.cas.index.iterators" number="4.7.2" targetptr="ugr.ref.cas.index.iterators">
<ttl>Iterators</ttl>
- <xreftext>Section 4.7.1, âIteratorsâ</xreftext>
+ <xreftext>Section 4.7.2, âIteratorsâ</xreftext>
</div>
- <div element="section" href="#ugr.ref.cas.index.annotation_index" number="4.7.2" targetptr="ugr.ref.cas.index.annotation_index">
+ <div element="section" href="#ugr.ref.cas.index.annotation_index" number="4.7.3" targetptr="ugr.ref.cas.index.annotation_index">
<ttl>Special iterators for Annotation types</ttl>
- <xreftext>Section 4.7.2, âSpecial iterators for Annotation typesâ</xreftext>
+ <xreftext>Section 4.7.3, âSpecial iterators for Annotation typesâ</xreftext>
</div>
- <div element="section" href="#ugr.ref.cas.index.constraints_and_filtered_iterators" number="4.7.3" targetptr="ugr.ref.cas.index.constraints_and_filtered_iterators">
+ <div element="section" href="#ugr.ref.cas.index.constraints_and_filtered_iterators" number="4.7.4" targetptr="ugr.ref.cas.index.constraints_and_filtered_iterators">
<ttl>Constraints and Filtered iterators</ttl>
- <xreftext>Section 4.7.3, âConstraints and Filtered iteratorsâ</xreftext>
+ <xreftext>Section 4.7.4, âConstraints and Filtered iteratorsâ</xreftext>
</div>
</div>
<div element="section" href="#ugr.ref.cas.guide_to_javadocs" number="4.8" targetptr="ugr.ref.cas.guide_to_javadocs">
Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/pdf-target.db
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/pdf-target.db?view=diff&rev=495367&r1=495366&r2=495367
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/pdf-target.db (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/olink/references/pdf-target.db Thu Jan 11 12:36:04 2007
@@ -311,17 +311,21 @@
<div element="section" href="#ugr.ref.cas.indexes_and_iterators" number="4.7" targetptr="ugr.ref.cas.indexes_and_iterators">
<ttl>Indexes and Iterators</ttl>
<xreftext>Section 4.7, âIndexes and Iteratorsâ</xreftext>
- <div element="section" href="#ugr.ref.cas.index.iterators" number="4.7.1" targetptr="ugr.ref.cas.index.iterators">
+ <div element="section" href="#ugr.ref.cas.index.adding_to_indexes" number="4.7.1" targetptr="ugr.ref.cas.index.adding_to_indexes">
+ <ttl>Adding Feature Structures to the Indexes</ttl>
+ <xreftext>Section 4.7.1, âAdding Feature Structures to the Indexesâ</xreftext>
+ </div>
+ <div element="section" href="#ugr.ref.cas.index.iterators" number="4.7.2" targetptr="ugr.ref.cas.index.iterators">
<ttl>Iterators</ttl>
- <xreftext>Section 4.7.1, âIteratorsâ</xreftext>
+ <xreftext>Section 4.7.2, âIteratorsâ</xreftext>
</div>
- <div element="section" href="#ugr.ref.cas.index.annotation_index" number="4.7.2" targetptr="ugr.ref.cas.index.annotation_index">
+ <div element="section" href="#ugr.ref.cas.index.annotation_index" number="4.7.3" targetptr="ugr.ref.cas.index.annotation_index">
<ttl>Special iterators for Annotation types</ttl>
- <xreftext>Section 4.7.2, âSpecial iterators for Annotation typesâ</xreftext>
+ <xreftext>Section 4.7.3, âSpecial iterators for Annotation typesâ</xreftext>
</div>
- <div element="section" href="#ugr.ref.cas.index.constraints_and_filtered_iterators" number="4.7.3" targetptr="ugr.ref.cas.index.constraints_and_filtered_iterators">
+ <div element="section" href="#ugr.ref.cas.index.constraints_and_filtered_iterators" number="4.7.4" targetptr="ugr.ref.cas.index.constraints_and_filtered_iterators">
<ttl>Constraints and Filtered iterators</ttl>
- <xreftext>Section 4.7.3, âConstraints and Filtered iteratorsâ</xreftext>
+ <xreftext>Section 4.7.4, âConstraints and Filtered iteratorsâ</xreftext>
</div>
</div>
<div element="section" href="#ugr.ref.cas.guide_to_javadocs" number="4.8" targetptr="ugr.ref.cas.guide_to_javadocs">
Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db?view=diff&rev=495367&r1=495366&r2=495367
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/htmlsingle-target.db Thu Jan 11 12:36:04 2007
@@ -96,10 +96,10 @@
<ttl>Reading the Results of Previous Annotators</ttl>
<xreftext>Section 1.3.3, âReading the Results of Previous Annotatorsâ</xreftext>
<obj element="figure" href="#ugr.tug.aae.fig.aggregate_for_meeting_annotator" number="1.2" targetptr="ugr.tug.aae.fig.aggregate_for_meeting_annotator">
- <ttl>An Aggregate Analysis Engine where an internal component uses output from
- previous engines</ttl>
- <xreftext>Figure 1.2, âAn Aggregate Analysis Engine where an internal component uses output from
- previous enginesâ</xreftext>
+ <ttl>An Aggregate Analysis Engine where an internal component uses output from previous
+ engines</ttl>
+ <xreftext>Figure 1.2, âAn Aggregate Analysis Engine where an internal component uses output from previous
+ enginesâ</xreftext>
</obj>
</div>
</div>
Modified: incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/pdf-target.db
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/pdf-target.db?view=diff&rev=495367&r1=495366&r2=495367
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/pdf-target.db (original)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/olink/tutorials_and_users_guides/pdf-target.db Thu Jan 11 12:36:04 2007
@@ -96,10 +96,10 @@
<ttl>Reading the Results of Previous Annotators</ttl>
<xreftext>Section 1.3.3, âReading the Results of Previous Annotatorsâ</xreftext>
<obj element="figure" href="#ugr.tug.aae.fig.aggregate_for_meeting_annotator" number="1.2" targetptr="ugr.tug.aae.fig.aggregate_for_meeting_annotator">
- <ttl>An Aggregate Analysis Engine where an internal component uses output from
- previous engines</ttl>
- <xreftext>Figure 1.2, âAn Aggregate Analysis Engine where an internal component uses output from
- previous enginesâ</xreftext>
+ <ttl>An Aggregate Analysis Engine where an internal component uses output from previous
+ engines</ttl>
+ <xreftext>Figure 1.2, âAn Aggregate Analysis Engine where an internal component uses output from previous
+ enginesâ</xreftext>
</obj>
</div>
</div>