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 2006/12/03 22:37:09 UTC
svn commit: r481918 [3/3] - in
/incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/overview_and_setup:
./ images/ images/conceptual_overview_files/ images/eclipse_setup_files/
Added: incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/overview_and_setup/project_overview.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/overview_and_setup/project_overview.xml?view=auto&rev=481918
==============================================================================
--- incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/overview_and_setup/project_overview.xml (added)
+++ incubator/uima/uimaj/trunk/uima-docbooks/src/docbook/overview_and_setup/project_overview.xml Sun Dec 3 13:37:07 2006
@@ -0,0 +1,802 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"[
+<!ENTITY % uimaents SYSTEM "../entities.ent" >
+%uimaents;
+]>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<chapter id="ugr.project_overview">
+ <!-- id="_crossRef356" -->
+ <!-- check: use of SDK -->
+ <title>Apache UIMA Project Overview</title>
+
+ <para>The Unstructured Information Management Architecture (UIMA) is an architecture
+ and software framework for creating, discovering, composing and deploying a broad range
+ of multi-modal analysis capabilities and integrating them with search
+ technologies.</para>
+
+ <para>The <emphasis>UIMA framework</emphasis> provides a run-time environment in which
+ developers can plug in and run their UIMA component implementations and with which they
+ can build and deploy UIM applications. The framework is not specific to any IDE or
+ platform.</para>
+
+ <para>The <emphasis>UIMA Software Development Kit (SDK)</emphasis> includes an
+ all-Java implementation of the UIMA framework for the development, description,
+ composition and deployment of UIMA components and applications. It also provides the
+ developer with an Eclipse-based (<ulink url="http://www.eclipse.org/"/>)
+ development environment that includes a set of tools and utilities for using UIMA.
+ </para>
+
+ <para>The <emphasis>Apache UIMA project</emphasis> also includes a C++ version of the
+ framework, and enablements for Annotators built in Perl, Python, and TCL.</para>
+
+ <para>This chapter is the intended starting point for readers that are new to the Apache UIMA
+ Project. It includes this introduction and the following sections:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para> <xref linkend="ugr.project_overview_doc_overview"/> provides a list of the
+ chapters included in the UIMA SDK documentation with a brief summary of each. </para>
+ </listitem>
+ <listitem>
+ <para> <xref linkend="ugr.project_overview_doc_use"/> describes a recommended
+ path through the documentation to help get the reader up and running with UIMA </para>
+ </listitem>
+ <listitem>
+ <para> <xref linkend="ugr.project_overview_whats_new"/> </para>
+ </listitem>
+ </itemizedlist>
+
+ <section id="ugr.project_overview_doc_overview">
+ <!-- _crossRef357 -->
+ <title>Apache UIMA Project Documentation Overview</title>
+ <para> The user documentation for UIMA is organized into several parts.
+ <itemizedlist>
+ <listitem>
+ <para> <xref linkend="ugr.project_overview_overview"/> - this documentation
+ </para>
+ </listitem>
+ <listitem>
+ <para> <xref linkend="ugr.project_overview_setup"/> </para>
+ </listitem>
+ <listitem>
+ <para> <xref linkend="ugr.project_overview_tutorials_dev_guides"/>
+ </para>
+ </listitem>
+ <listitem>
+ <para> <xref linkend="ugr.project_overview_tool_guides"/> </para>
+ </listitem>
+ <listitem>
+ <para> <xref linkend="ugr.project_overview_reference"/> </para>
+ </listitem>
+ </itemizedlist> </para>
+
+ <section id="ugr.project_overview_overview">
+ <title>Overviews</title>
+
+ <informaltable frame="all" rowsep="1" colsep="1">
+ <tgroup cols="2">
+ <colspec colnum="1" colname="col1" colwidth="1*"/>
+ <colspec colnum="2" colname="col2" colwidth="2.5*"/>
+ <tbody>
+ <row>
+ <entry><emphasis>Overview of the Documentation</emphasis></entry>
+ <entry><para>Lists the documents provided in the UIMA SDK documentation
+ set.</para>
+ <para>Provides a recommended path through the documentation for getting
+ started using UIMA.</para>
+ <para>Includes release notes.</para>
+ <para>Provides a brief high-level description of the different software
+ modules included in the UIMA SDK.</para></entry>
+ </row>
+ <row>
+ <entry><emphasis>Conceptual Overview</emphasis></entry>
+ <entry>Provides a broad conceptual overview of the UIMA component
+ architecture; includes references to the other documents in the
+ documentation set that provide more detail.</entry>
+ </row>
+ <row>
+ <entry><emphasis>UIMA FAQs</emphasis></entry>
+ <entry>Frequently Asked Questions about general UIMA concepts. (Not a
+ programming resource.)</entry>
+ </row>
+ <row>
+ <entry><emphasis>Glossary</emphasis></entry>
+ <entry>UIMA terms and concepts and their basic definitions.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ <section id="ugr.project_overview_setup">
+ <title>Eclipse Tooling Installation and Setup</title>
+ <para>Provides step-by-step instructions for installing the UIMA SDK in the Eclipse
+ Interactive Development Environment.</para>
+ </section>
+
+ <section id="ugr.project_overview_tutorials_dev_guides">
+ <title>Tutorials and Developer's Guides</title>
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colnum="1" colname="col1" colwidth="1*"/>
+ <colspec colnum="2" colname="col2" colwidth="2.5*"/>
+ <tbody>
+ <row id="ugr.project_overview_tutorial_annotator">
+ <entry><emphasis>Annotators and Analysis Engines</emphasis></entry>
+ <entry>Tutorial-style guide for building UIMA annotators and analysis
+ engines. This chapter introduces the developer to creating type systems
+ and using UIMA's common data structure, the CAS or Common Analysis
+ Structure. It demonstrates how to use built in tools to specify and create
+ basic UIMA analysis components.</entry>
+ </row>
+ <row id="ugr.project_overview_tutorial_cpe">
+ <entry><emphasis>Building UIMA Collection Processing
+ Engines</emphasis></entry>
+ <entry>Tutorial-style guide for building UIMA collection processing
+ engines. These manage the analysis of collections of documents from source
+ to sink.</entry>
+ </row>
+ <row id="ugr.project_overview_tutorial_application_development">
+ <entry><emphasis>Developing Complete Applications</emphasis></entry>
+ <entry>Tutorial-style guide on using the UIMA APIs to create, run and manage
+ UIMA components from your application. Also describes APIs for saving and
+ restoring the contents of a CAS using an XML format called <trademark
+ class="registered"> XMI</trademark>.</entry>
+ </row>
+ <row id="ugr.project_overview_guide_flow_controller">
+ <entry><emphasis>Flow Controller</emphasis></entry>
+ <entry>When multiple components are combined in an Aggregate, each CAS flow
+ among the various components. UIMA provides two built-in flows, and also
+ allows custom flows to be implemented.</entry>
+ </row>
+ <row id="ugr.project_overview_guide_multiple_sofas">
+ <entry><emphasis>Developing Applications using Multiple Subjects of
+ Analysis</emphasis></entry>
+ <entry>A single CAS maybe associated with multiple subjects of analysis
+ (Sofas). These are useful for representing and analyzing different
+ formats or translations of the same document. For multi-modal analysis,
+ Sofas are good for different modal representations of the same stream
+ (e.g., audio and close-captions).This chapter provides the developer
+ details on how to use multiple Sofas in an application.</entry>
+ </row>
+ <row id="ugr.project_overview_guide_cas_multiplier">
+ <entry><emphasis>CAS Multiplier</emphasis></entry>
+ <entry>A component may add additional CASes into the workflow. This may be
+ useful to break up a large artifact into smaller units, or to create a new CAS
+ that collects information from multiple other CASes.</entry>
+ </row>
+ <row id="ugr.project_overview_xmi_emf">
+ <entry><emphasis>XMI and EMF Interoperability</emphasis></entry>
+ <entry>The UIMA Type system and the contents of the CAS itself can be
+ externalized using the XMI standard for XML MetaData. Eclipse Modeling
+ Framework (EMF) tooling can be used to develop applications that use this
+ information.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+
+ <section id="ugr.project_overview_tool_guides">
+ <title>Tools Users' Guides</title>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colnum="1" colname="col1" colwidth="1*"/>
+ <colspec colnum="2" colname="col2" colwidth="2.5*"/>
+ <tbody>
+ <row id="ugr.project_overview_tools_component_descriptor_editor">
+ <entry><emphasis>Component Descriptor Editor</emphasis></entry>
+ <entry>Describes the features of the Component Descriptor Editor Tool. This
+ tool provides a GUI for specifying the details of UIMA component
+ descriptors, including those for Analysis Engines (primitive and
+ aggregate), Collection Readers, CAS Consumers and Type Systems.</entry>
+ </row>
+ <row id="ugr.project_overview_tools_cpe_configurator">
+ <entry><emphasis>Collection Processing Engine Configurator</emphasis>
+ </entry>
+ <entry>Describes the User Interfaces and features of the CPE Configurator
+ tool. This tool allows the user to select and configure the components of a
+ Collection Processing Engine and then to run the engine.</entry>
+ </row>
+ <row id="ugr.project_overview_tools_pear_packager">
+ <entry><emphasis>Pear Packager</emphasis></entry>
+ <entry>Describes how to use the PEAR Packager utility. This utility enables
+ developers to produce an archive file for an analysis engine that includes
+ all required resources for installing that analysis engine in another UIMA
+ environment.</entry>
+ </row>
+ <row id="ugr.project_overview_tools_pear_installer">
+ <entry><emphasis>Pear Installer</emphasis></entry>
+ <entry>Describes how to use the PEAR Installer utility. This utility
+ installs and verifies an analysis engine from an archive file (PEAR) with
+ all its resources in the right place so it is ready to run.</entry>
+ </row>
+ <row id="ugr.project_overview_tools_pear_merger">
+ <entry><emphasis>Pear Merger</emphasis></entry>
+ <entry>Describes how to use the Pear Merger utility, which does a simple merge
+ of multiple PEAR packages into one.</entry>
+ </row>
+ <row id="ugr.project_overview_tools_document_analyzer">
+ <entry><emphasis>Document Analyzer</emphasis></entry>
+ <entry>Describes the features of a tool for applying a UIMA analysis engine to
+ a set of documents and viewing the results.</entry>
+ </row>
+ <row id="ugr.project_overview_tools_cas_visual_debugger">
+ <entry><emphasis>CAS Visual Debugger</emphasis></entry>
+ <entry>Describes the features of a tool for viewing the detailed structure
+ and contents of a CAS. Good for debugging.</entry>
+ </row>
+ <row id="ugr.project_overview_tools_jcasgen">
+ <entry><emphasis>JCasGen</emphasis></entry>
+ <entry>Describes how to run the JCasGen utility, which automatically builds
+ Java classes that correspond to a particular CAS Type System.</entry>
+ </row>
+ <row id="ugr.project_overview_tools_xml_cas_viewer">
+ <entry><emphasis>XML CAS Viewer</emphasis></entry>
+ <entry>Describes how to run the supplied viewer to view externalized XML
+ forms of CASes. This viewier is used in the examples.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+
+ <section id="ugr.project_overview_reference">
+ <title>References</title>
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colnum="1" colname="col1" colwidth="1*"/>
+ <colspec colnum="2" colname="col2" colwidth="2.5*"/>
+ <tbody>
+ <row id="ugr.project_overview_xml_ref_component_descriptor">
+ <entry><emphasis>XML: Component Descriptor</emphasis></entry>
+ <entry>Provides detailed XML format for all the UIMA component descriptors,
+ except the CPE (see next)</entry>
+ </row>
+ <row
+ id="ugr.project_overview_xml_ref_collection_processing_engine_descriptor">
+ <entry><emphasis>XML: Collection Processing Engine
+ Descriptor</emphasis></entry>
+ <entry>Provides detailed XML format for the Collection Processing Engine
+ descriptor.</entry>
+ </row>
+ <row id="ugr.project_overview_javadocs">
+ <entry><emphasis>Introduction to the UIMA API JavaDocs</emphasis>
+ </entry>
+ <entry>JavaDocs detailing the UIMA programming interfaces</entry>
+ </row>
+ <row id="ugr.project_overview_cas">
+ <entry><emphasis>CAS</emphasis></entry>
+ <entry>Provides detailed description of the principal CAS
+ interface.</entry>
+ </row>
+ <row id="ugr.project_overview_jcas">
+ <entry><emphasis>JCas</emphasis></entry>
+ <entry>Provides details on the JCas, a native Java interface to the
+ CAS.</entry>
+ </row>
+ <row id="ugr.project_overview_ref_pear">
+ <entry><emphasis>PEAR Reference</emphasis></entry>
+ <entry>Provides detailed description of the deployable archive format for
+ UIMA components.</entry>
+ </row>
+ <row id="ugr.project_overview_xmi_cas_serialization">
+ <entry><emphasis>XMI CAS Serialization Reference</emphasis></entry>
+ <entry>Provides detailed description of the deployable archive format for
+ UIMA components.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+ </section>
+
+ <section id="ugr.project_overview_doc_use">
+ <!-- _crossRef358 -->
+ <title>Using the Documentation to get started with the UIMA SDK</title>
+ <orderedlist>
+ <listitem>
+ <para>Explore this chapter to get an overview of the different documents that are
+ included with the SDK.</para>
+ </listitem>
+ <listitem>
+ <para> Read <olink targetdoc="uima_docs_overview"
+ targetptr="ugr.conceptual_overview"/> to get a broad view of the basic UIMA
+ concepts and philosophy with reference to the other documents included in the
+ documentation set which provide greater detail. </para>
+ </listitem>
+ <listitem>
+ <para> For more general information on the UIMA architecture and how it has been used,
+ refer to the IBM Systems Journal special issue on Unstructured Information
+ Management, on-line at <ulink
+ url="http://www.research.ibm.com/journal/sj43-3.html"/> or to the
+ section of the UIMA project website on Apache website where other publications are
+ listed. </para>
+ </listitem>
+ <listitem>
+ <para> Set up the UIMA SDK in your Eclipse environment. To do this, follow the
+ instructions in <xref linkend="ugr.project_overview_setup"/>. </para>
+ </listitem>
+ <listitem>
+ <para> Develop sample UIMA annotators, run them and explore the results. Read <olink
+ targetdoc="uima_docs_tutorial_guides"
+ targetptr="annotators_and_analysis_engines"/> and follow it like a
+ tutorial to learn how to develop your first UIMA annotator and set up and run your
+ first UIMA analysis engines.
+ <itemizedlist>
+ <listitem>
+ <para> As part of this you will use a few tools including
+ <itemizedlist>
+ <listitem>
+ <para> The UIMA Component Descriptor Editor, described in more detail
+ in <olink targetdoc="uima_docs_tools"
+ targetptr="cde_chapter"/> and </para>
+ </listitem>
+ <listitem>
+ <para> The Document Analyzer, described in more detail in <olink
+ targetdoc="uima_docs_tools"
+ targetptr="document_analyzer_chapter"/>. </para>
+ </listitem>
+
+ </itemizedlist> </para>
+
+ </listitem>
+ <listitem>
+ <para>While following along in <olink
+ targetdoc="uima_docs_tutorial_guides"
+ targetptr="annotators_and_analysis_engines_chapter"/>,
+ reference documents that may help are:
+ <itemizedlist>
+ <listitem>
+ <para> <olink targetdoc="uima_docs_ref"
+ targetptr="ref_ae_descriptors_chapter"/> for understanding
+ the analysis engine descriptors </para>
+ </listitem>
+ <listitem>
+ <para> <olink targetdoc="uima_docs_ref"
+ targetptr="ref_jcas_chapter"/> for understanding the JCas
+ </para>
+ </listitem>
+ </itemizedlist> </para>
+ </listitem>
+ </itemizedlist> </para>
+ </listitem>
+ <listitem>
+ <para> Learn how to create, run and manage a UIMA analysis engine as part of an
+ application. <phrase condition="juru">Connect your analysis engine to the
+ provided semantic search engine to learn how a complete analysis and search
+ application may be built with the UIMA SDK.</phrase> <olink
+ targetdoc="uima_docs_tutorial_guides"
+ targetptr="application_dev_chapter"/> will guide you through this process.
+ <itemizedlist>
+ <listitem>
+ <para> As part of this you will use the document analyzer (described in more
+ detail in <olink targetdoc="uima_docs_tools"
+ targetptr="document_analyzer_chapter"/> <phrase
+ condition="juru">and semantic search GUI tools (see <olink
+ targetdoc="uima_docs_tutorial_guides"
+ targetptr="search_query_tool"/></phrase>. </para>
+ </listitem>
+ </itemizedlist> </para>
+ </listitem>
+ <listitem>
+ <para> Pat yourself on the back. Congratulations! If you reached this step
+ successfully, then you have an appreciation for the UIMA analysis engine
+ architecture. You would have built a few sample annotators, deployed UIMA
+ analysis engines to analyze a few documents, searched over the results using the
+ built-in semantic search engine and viewed the results through a built-in viewer
+ – all as part of a simple but complete application. </para>
+ </listitem>
+ <listitem>
+ <para> Develop and run a Collection Processing Engine (CPE) to analyze and gather the
+ results of an entire collection of documents. <olink
+ targetdoc="uima_docs_tutorial_guides" targetptr="cpe_chapter"/> will
+ guide you through this process.
+ <itemizedlist>
+ <listitem>
+ <para> As part of this you will use the CPE Configurator tool. For details see
+ <olink targetdoc="uima_docs_tools"
+ targetptr="cpe_configurator_chapter"/>. </para>
+ </listitem>
+ <listitem>
+ <para> You will also learn about CPE Descriptors. The detailed format for
+ these may be found in <olink targetdoc="uima_docs_ref"
+ targetptr="cpe_chapter"/>. </para>
+ </listitem>
+ </itemizedlist> </para>
+ </listitem>
+ <listitem>
+ <para> Learn how to package up an analysis engine for easy installation into another
+ UIMA environment. <olink targetdoc="uima_docs_tools"
+ targetptr="pear_packager_chapter"/> and <olink
+ targetdoc="uima_docs_tools" targetptr="pear_installer_chapter"/> will
+ teach you how to create UIMA analysis engine archives so that you can easily share
+ your components with a broader community. </para>
+ </listitem>
+ </orderedlist>
+ </section>
+
+ <section id="ugr.project_overview_whats_new">
+ <title>What's new in Apache UIMA Version 2.0</title>
+ <para>Version 2.0 provide new capabilities and refines several areas of the UIMA
+ architecture, as compared with version 1. The Apache UIMA also changes the namespace of
+ the UIMA components to start with the prefix org.apache. This change requires that all
+ user code written to previous APIs be updated to reflect this new namespace, and
+ recompiled. </para>
+
+ <section id="ugr.project_overview_new_capabilities">
+ <title>New Capabilities</title>
+ <section id="ugr.project_overview_new_data_types">
+ <title>New Primitive data types</title>
+ <para>UIMA now supports Boolean (bit), Byte, Short (16 bit integers), Long (64 bit
+ integers), and Double (64 bit floating point) primitive types, and arrays of
+ these. These types can be used like all the other primitive types.</para>
+ </section>
+ <section>
+ <title>Simpler Analysis Engines and CASes</title>
+ <para>Version 1.x made a distinction between Analysis Engines and Text Analysis
+ Engines. This distinction has been eliminated in Version 2 - new code should just
+ refer to Analysis Engines. Analysis Engines can operate on multiple kinds of
+ artifacts, including text.</para>
+
+ <para>Version 1.x made a distinction between CASes and TCASes. TCAS are now
+ deprecated; new code should just refer to CASes. The JCas capability to have a
+ Java-friendly way to work with CAS types remains; we clarify that the JCas is just
+ (one of potentially several) interfaces to the CAS.</para>
+ </section>
+ <section>
+ <title>Sofas and CAS Views simplified</title>
+ <para>The APIs for manipulating multiple subjects of analysis (Sofas) and their
+ corresponding CAS Views have been simplified.</para>
+ </section>
+ <section>
+ <title>Analysis Component generalized to support multiple new CAS
+ outputs</title>
+ <para>Analysis Components, in general, can make use of new capabilities to return
+ multiple new CASes, in addition to returning the original CAS that is passed in.
+ This allows components to have Collection Reader-like capabilities, but be
+ placed anywhere in the flow. See <olink targetdoc="uima_docs_tutorial_guides"
+ targetptr="cas_multiplier_chapter"/>.</para>
+ </section>
+ <section>
+ <title>User-customized Flow Controllers</title>
+ <para>A new component, the Flow Controller, can be supplied by the user to implement
+ arbitrary flow control for CASes within an Aggregate. This is in addition to the two
+ built-in flow control choices of linear and language-capability flow. See <olink
+ targetdoc="uima_docs_tutoria_guilds"
+ targetptr="flow_controller_chapter"/>.</para>
+ </section>
+ <section>
+ <title>Search Engine</title>
+ <para>The versions of the UIMA SDK prior to the move into Apache came with a semantic
+ search engine. The Apache version does not include this search engine. The intent
+ is to hook up (over time) with the Lucene search engine project in Apache.</para>
+ </section>
+ </section>
+ <section id="ugr.project_overview_backwards_compatibility">
+ <title>Backwards Compatibility</title>
+ <para>Applications and components must update references to UIMA APIs to reflect the
+ change in namespace to "org.apache.". Because of this, backwards compatibility is
+ not maintained.</para>
+ <para>However, other than this and the exceptions following, applications and
+ components should not need other changes because of version 2.0 Here are the
+ exceptions, the non-compatible changes:
+ <itemizedlist>
+ <listitem>
+ <para> There have been some changes to ResultSpecifications. We do not
+ guarantee 100% backwards compatibility for applications that made use of
+ them, although most cases should work. </para>
+ </listitem>
+ <listitem>
+ <para> For applications that deal with multiple subjects of analysis (Sofas),
+ the rules that determine whether a component is Multi-View or Single-View
+ have been made more consistent. A component is considered Multi-View if and
+ only if it declares at least one inputSofa or outputSofa in its descriptor.
+ This leads to the following incompatibilities in unusual cases:
+ <itemizedlist>
+ <listitem>
+ <para> It is an error if an annotator that implements the TextAnnotator or
+ JTextAnnotator interface also declares inputSofas or outputSofas in
+ its descriptor. Such annotators must be Single-View. </para>
+ </listitem>
+ <listitem>
+ <para> </para>
+ </listitem>
+ </itemizedlist> </para>
+ </listitem>
+ <listitem>
+ <para> Annotators that implement GenericAnnotator but do not declare any
+ inputSofas or outputSofas will now be passed the view of default Sofa instead
+ of the Base CAS. </para>
+ </listitem>
+ </itemizedlist> </para>
+
+ </section>
+ <section>
+ <title>Other Changes</title>
+ <para>TextAnalysisEngine has been deprecated - it is now no different than
+ AnalysisEngine. Previous code that uses this should still continue to work,
+ however.</para>
+
+ <para>Methods that were defined on the TCAS interface have been moved to the base CAS
+ interface; the TCAS interface is no longer needed.</para>
+
+ <para>The DocumentAnalyzer tool saves outputs in the new XMI serialization format.
+ The XCasAnnotationViewer and SemanticSearchGUI tools can read both the new XMI
+ format and the previous XCAS format.</para>
+
+ </section>
+ </section>
+ <section id="ugr.project_overview_summary">
+ <title>Apache UIMA SDK Summary</title>
+ <section>
+ <title>General</title>
+ <para>The UIMA SDK supports the development, discovery, composition and deployment
+ of multi-modal analytics for the analysis of unstructured information and its
+ integration with search technologies.</para>
+
+ <para>It includes APIs and tools for creating analysis components. Examples of
+ analysis components include tokenizers, summarizers, categorizers, parsers,
+ named-entity detectors etc. Tutorial examples are provided with the SDK;
+ additional components are available from the community. </para>
+
+ <para condition="juru">The UIMA SDK also includes a semantic search engine for
+ indexing the results of analysis and for using this semantic index to perform more
+ advanced search. </para>
+ </section>
+ <section>
+ <title>Programming Language Support</title>
+ <para>UIMA supports the development and integration of analysis algorithms
+ developed in different programming languages. </para>
+
+ <para><phrase condition="precpp">The Apache UIMA project is initially a Java
+ framework. In the next several months we plan to bring into the project the C++
+ enablement component, which will enable annotators written in C++ to run together
+ with Java based components. The C++ enablement layer also enables annotators to be
+ written in Perl, Python, and TCL, and to interoperate with those written in other
+ languages. </phrase> <phrase condition="postcpp">The Apache UIMA project is both
+ a Java framework and a matching C++ enablement layer, which allows annotators to be
+ written in C++ and have access to a C++ version of the CAS. The C++ enablement layer also
+ enables annotators to be written in Perl, Python, and TCL, and to interoperate with
+ those written in other languages. Documentation for this is provided here (link to be
+ filled in).</phrase></para>
+
+ </section>
+ <section>
+ <title>Multi-Modal Support</title>
+ <para>The UIMA architecture supports the development, discovery, composition and
+ deployment of multi-modal analytics, including text, audio and video. <olink
+ targetdoc="uima_docs_tutorial_guides"
+ targetptr="sofa_chapter_annotations_artifacts"/> discuss this is more
+ detail.</para>
+ </section>
+ <section>
+ <title>Semantic Search Components</title>
+ <para> The Lucene search engine as of this writing (November, 2006) does not support
+ searching with annotations. <phrase
+ condition="juru_apache_pkg_on_alphaworks_ready">The site <ulink
+ url="http://www.alphaworks.ibm.com/tech/uima"/> provides a download of a
+ semantic search engine, a simple demo query tool, some documentation on the semantic
+ search engine, and a component that connects the results of UIMA analysis to the
+ indexer so that the annotations as well as key-words can be indexed.</phrase>
+ </para>
+
+ <para>Previous versions of the UIMA SDK (prior to the Apache versions) are available
+ from IBM's alphaWorks (<ulink
+ url="http://www.alphaworks.ibm.com/tech/uima"/>). The source code for
+ previous versions of the main UIMA framework is available on SourceForge (<ulink
+ url="http://uima-framework.sourceforge.net/"/>).</para>
+
+ </section>
+ </section>
+
+ <section id="ugr.project_overview_summary_sdk_capabilities">
+ <title>Summary of UIMA SDK Capabilities</title>
+ <informaltable frame="all" rowsep="1" colsep="1">
+ <tgroup cols="2">
+ <colspec colnum="1" colname="col1" colwidth=".75*"/>
+ <colspec colnum="2" colname="col2" colwidth="*"/>
+ <tbody>
+ <row>
+ <entry role="tableSubhead">Module</entry>
+ <entry role="tableSubhead">Description</entry>
+ </row>
+ <row>
+ <entry>UIMA Framework Core</entry>
+ <entry><para>A framework integrating core functions for creating,
+ deploying, running and managing UIMA components, including analysis
+ engines and Collection Processing Engines in collocated and/or distributed
+ configurations. </para>
+
+ <para>The framework includes an implementation of core components for
+ transport layer adaptation, CAS management, workflow management based on
+ declarative specifications, resource management, configuration
+ management, logging, and other functions.</para></entry>
+ </row>
+ <row>
+ <entry>C++ and other programming language Interoperability</entry>
+
+ <entry>
+ <para>Includes C++ CAS and supports the creation of UIMA compliant C++
+ components that can be deployed in the UIMA run-time through a built-in JNI
+ adapter. This includes high-speed binary serialization.</para>
+
+ <para>Includes support for creating service-based UIMA engines outside of
+ SDK. This is ideal for wrapping existing code written in different
+ languages.</para>
+ </entry>
+ </row>
+ <row>
+ <entry role="tableSubhead">Framework Services and APIs</entry>
+ <entry role="tableSubhead">Note that interfaces of these components are available to the developer
+ but different implementations are possible in different implementations of
+ the UIMA framework.</entry>
+ </row>
+ <row>
+ <entry>CAS</entry>
+ <entry>These classes provide the developer with typed access to the Common
+ Analysis Structure (CAS), including type system schema, elements, subjects
+ of analysis and indices. Multiple subjects of analysis (Sofas) mechanism
+ supports the independent or simultaneous analysis of multiple views of the
+ same artifacts (e.g. documents), supporting multi-lingual and multi-modal
+ analysis.</entry>
+ </row>
+ <row>
+ <entry>JCas</entry>
+ <entry>An alternative interface to the CAS, providing Java-based UIMA
+ Analysis components with native Java object access to CAS types and their
+ attributes or features, using the JavaBeansconventions of getters and setters.</entry>
+ </row>
+
+ <row>
+ <entry>Collection Processing Management (CPM)</entry>
+ <entry>Core functions for running UIMA collection processing engines in
+ collocated and/or distributed configurations. The CPM provides
+ scalability across parallel processing pipelines, check-pointing,
+ performance monitoring and recoverability.</entry>
+ </row>
+ <row>
+ <entry>Resource Manager</entry>
+ <entry>Provides UIMA components with run-time access to external resources
+ handling capabilities such as resource naming, sharing, and caching.
+ </entry>
+ </row>
+ <row>
+ <entry>Configuration Manager</entry>
+ <entry>Provides UIMA components with run-time access to their configuration
+ parameter settings.
+ </entry>
+ </row>
+ <row>
+ <entry>Logger</entry>
+ <entry>Provides access to a common logging facility.</entry>
+ </row>
+ <row>
+ <entry namest="col1" nameend="col2" align="center" role="tableSubhead"> Tools and Utilities
+ </entry>
+ </row>
+ <row>
+ <entry>JCasGen</entry>
+ <entry>Utility for generating a Java object model for CAS types from a UIMA XML
+ type system definition.</entry>
+ </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>
+ </row>
+ <row>
+ <entry>PEAR Packager for Eclipse</entry>
+ <entry>Tool for building a UIMA component archive to facilitate porting,
+ registering, installing and testing components.</entry>
+ </row>
+ <row>
+ <entry>PEAR Installer</entry>
+ <entry>Tool for installing and verifying a UIMA component archive in a UIMA
+ installation.</entry>
+ </row>
+ <row>
+ <entry>PEAR Merger</entry>
+ <entry>Utility that combines multiple PEARs into one.</entry>
+ </row>
+ <row>
+ <entry>Component Descriptor Editor</entry>
+ <entry>Eclipse Plug-in for specifying and configuring component descriptors
+ for UIMA analysis engines as well as other UIMA component types including
+ Collection Readers and CAS Consumers.</entry>
+ </row>
+ <row>
+ <entry>CPE Configurator</entry>
+ <entry>Graphical tool for configuring Collection Processing Engines and
+ applying them to collections of documents.</entry>
+ </row>
+ <row>
+ <entry>Java Annotation Viewer</entry>
+ <entry>Viewer for exploring annotations and related CAS data.</entry>
+ </row>
+ <row>
+ <entry>CAS Visual Debugger</entry>
+ <entry>GUI Java application that provides developers with detailed visual
+ view of the contents of a CAS.</entry>
+ </row>
+ <row>
+ <entry>Document Analyzer</entry>
+ <entry>GUI Java application that applies analysis engines to sets of documents
+ and shows results in a viewer.</entry>
+ </row>
+ <row>
+ <entry namest="col1" nameend="col2" align="center" role="tableSubhead"> Example Analysis
+ Components
+ </entry>
+ </row>
+ <row>
+ <entry>Database Writer</entry>
+ <entry>CAS Consumer that writes the content of selected CAS types into a
+ relational database, using JDBC. This code is in
+ cpe/PersonTitleDBWriterCasConsumer.
+ </entry>
+ </row>
+ <row>
+ <entry>Annotators</entry>
+ <entry> Set of simple annotators meant for pedagogical purposes. Includes:
+ Date/time, Room-number, Regular expression, Tokenizer, and
+ Meeting-finder annotator. There are also sample wrappers for annotators
+ obtainable from <ulink url="opennlp.org"></ulink>. There are sample CAS
+ Multipliers as well.
+ </entry>
+ </row>
+ <row>
+ <entry>Flow Controllers</entry>
+ <entry> There is a sample flow-controller based on the whiteboard concept of
+ sending the CAS to whatever annotator hasn't yet processed it, when that
+ annotator's inputs are available in the CAS.
+ </entry>
+ </row>
+ <row>
+ <entry>XMI Collection Reader, CAS Consumer</entry>
+ <entry>Reads and writes the CAS in the XMI format</entry>
+ </row>
+
+ <row>
+ <entry>File System Collection Reader</entry>
+ <entry> Simple Collection Reader for pulling documents from the file system and
+ initializing CASes.
+ </entry>
+ </row>
+ <row>
+ <entry namest="col1" nameend="col2" align="center" role="tableSubhead"> Components available
+ from <ulink url="www.alphaworks.ibm.com/tech/uima"></ulink>
+ </entry>
+ </row>
+ <row>
+ <entry>Semantic Search CAS Indexer</entry>
+ <entry>A CAS Consumer that uses the semantic search engine indexer to build an
+ index from a stream of CASes. Requires the semantic search engine (available
+ from the same place).
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </section>
+
+</chapter>
\ No newline at end of file