Apache UIMA SDK Tutorial and Developers' Guides
Apache UIMA SDK Tutorial and Developers' Guides
Annotator and Analysis Engine Developer's Guide
Chapter 1, Annotator and Analysis Engine Developer's Guide
Getting Started
Section 1.1, “Getting Started”
Defining Types
the section called “Defining Types”
Generating Java Source Files for CAS Types
the section called “Generating Java Source Files for CAS Types”
Developing Your Annotator Code
the section called “Developing Your Annotator Code”
Creating the XML Descriptor
the section called “Creating the XML Descriptor”
Testing Your Annotator
the section called “Testing Your Annotator”
Configuration and Logging
Section 1.2, “Configuration and Logging”
Configuration Parameters
the section called “Configuration Parameters”
Declaring Parameters in the Descriptor
the section called “Declaring Parameters in the Descriptor”
Accessing Parameter Values from the Annotator Code
the section called “Accessing Parameter Values from the Annotator Code”
Supporting Reconfiguration
the section called “Supporting Reconfiguration”
Configuration parameter Groups
the section called “Configuration parameter Groups”
Logging
the section called “Logging”
Specifying the Logging Configuration
the section called “Specifying the Logging Configuration”
Setting Logging Levels
the section called “Setting Logging Levels”
Format of logging output
the section called “Format of logging output”
Meaning of the logging severity levels
the section called “Meaning of the logging severity levels”
Using the logger outside of an annotator
the section called “Using the logger outside of an annotator”
Building Aggregate Analysis Engines
the section called “Building Aggregate Analysis Engines”
Combining Annotators
the section called “Combining Annotators”
Combining Annotators to form an Aggregate Analysis Engine
Figure 1.1, “Combining Annotators to form an Aggregate Analysis Engine”
Aggregate Engines can also contain CAS Consumers
the section called “Aggregate Engines can also contain CAS Consumers”
Reading the Results of Previous Annotators
the section called “Reading the Results of Previous Annotators”
An Aggregate Analysis Engine where an internal component uses output from
previous engines
Figure 1.2, “An Aggregate Analysis Engine where an internal component uses output from
previous engines”
Other examples
Section 1.3, “Other examples”
Additional Topics
Section 1.4, “Additional Topics”
Contract for Annotator methods called by the Framework
the section called “Contract for Annotator methods called by the Framework”
Reporting errors from Annotators
the section called “Reporting errors from Annotators”
Throwing Exceptions from Annoatators
the section called “Throwing Exceptions from Annoatators”
Accessing External Resource Files
the section called “Accessing External Resource Files”
Declaring Resource Dependencies
the section called “Declaring Resource Dependencies”
Accessing the Resource from the UimaContext
the section called “Accessing the Resource from the UimaContext”
Declaring Resources and Bindings
the section called “Declaring Resources and Bindings”
External Resource Binding
Figure 1.3, “External Resource Binding”
Sharing Resources among Annotators
the section called “Sharing Resources among Annotators”
Component engines of an aggregate share a common resource
Figure 1.4, “Component engines of an aggregate share a common resource”
Result Specification Setting
the section called “Result Specification Setting”
Default ResultSpecification
the section called “Default ResultSpecification”
Passing Result Specifications to Annotators
the section called “Passing Result Specifications to Annotators”
Aggregates
the section called “Aggregates”
Fixed Flow
the section called “Fixed Flow”
CapabilityLanguageFlow
the section called “CapabilityLanguageFlow”
Special rule for skipping Analysis Engines
the section called “Special rule for skipping Analysis Engines”
Collection Proessing Engines
the section called “Collection Proessing Engines”
Class path setup when using JCas
the section called “Class path setup when using JCas”
Using the Shell Scripts
the section called “Using the Shell Scripts”
Environment variables used by the shell scripts
Table 1.1, “Environment variables used by the shell scripts”
Common Pitfalls
Section 1.5, “Common Pitfalls”
Viewing UIMA objects in the Eclipse debugger
Section 1.6, “Viewing UIMA objects in the Eclipse debugger”
Introduction to Analysis Engine Descriptor XML Syntax
Section 1.7, “Introduction to Analysis Engine Descriptor XML Syntax”
Header and Annotator Class Identification
the section called “Header and Annotator Class Identification”
Simple Metadata Attributes
the section called “Simple Metadata Attributes”
Type System Definition
the section called “Type System Definition”
Capabilities
the section called “Capabilities”
Configuration Parameters (Optional)
the section called “Configuration Parameters (Optional)”
Configuration Parameter Declarations
the section called “Configuration Parameter Declarations”
Configuration Parameter Settings
the section called “Configuration Parameter Settings”
Aggregate Analysis Engine Descriptor
the section called “Aggregate Analysis Engine Descriptor”
Collection Processing Engine Developer's Guide
Chapter 2, Collection Processing Engine Developer's Guide
CPE Concepts
Section 2.1, “CPE Concepts”
CPE Components
Figure 2.1, “CPE Components”
The CPE Configurator and the Externalized CAS viewer
Section 2.2, “The CPE Configurator and the Externalized CAS viewer”
Using the CPE Configurator
the section called “Using the CPE Configurator”
Running the CPE Configurator from Eclipse
the section called “Running the CPE Configurator from Eclipse”
Running a CPE from Your Own Java Application
Section 2.3, “Running a CPE from Your Own Java Application”
Using Listeners
the section called “Using Listeners”
Developing Collection Processing Components
Section 2.4, “Developing Collection Processing Components”
Developing Collection Readers
the section called “Developing Collection Readers”
Java Class for the Collection Reader
the section called “Java Class for the Collection Reader”
Required Methods in the Collection Reader class
the section called “Required Methods in the Collection Reader class”
initialize()
the section called “initialize()”
hasNext()
the section called “hasNext()”
getNext(CAS)
the section called “getNext(CAS)”
getProgress()
the section called “getProgress()”
close()
the section called “close()”
Optional Methods
the section called “Optional Methods”
reconfigure()
the section called “reconfigure()”
typeSystemInit()
the section called “typeSystemInit()”
Threading considerations
the section called “Threading considerations”
XML Descriptor for a Collection Reader
the section called “XML Descriptor for a Collection Reader”
Developing CAS
Initializers
the section called “Developing CAS
Initializers”
Developing CAS
Consumers
the section called “Developing CAS
Consumers”
Required Methods for a CAS Consumer
the section called “Required Methods for a CAS Consumer”
initialize()
the section called “initialize()”
processCas()
the section called “processCas()”
Optional Methods>
the section called “Optional Methods>”
batchProcessComplete()
the section called “batchProcessComplete()”
collectionProcessComplete()
the section called “collectionProcessComplete()”
Deploying a CPE
Section 2.5, “Deploying a CPE”
CPE Instantiation
Figure 2.2, “CPE Instantiation”
???TITLE???
Section 2.5, “Deploying a CPE”
Deploying Managed CAS Processors
the section called “Deploying Managed CAS Processors”
CPE with Managed CAS Processors
Figure 2.3, “CPE with Managed CAS Processors”
Deploying Non-managed CAS Processors
the section called “Deploying Non-managed CAS Processors”
CPE with non-managed CAS Processors
Figure 2.4, “CPE with non-managed CAS Processors”
Deploying Integrated CAS Processors
the section called “Deploying Integrated CAS Processors”
CPE with integrated CAS Processor
Figure 2.5, “CPE with integrated CAS Processor”
Collection Processing Examples
Section 2.6, “Collection Processing Examples”
Application Developer's Guide
Chapter 3, Application Developer's Guide
The UIMAFramework Class
Section 3.1, “The UIMAFramework Class”
Using Analysis Engines
Section 3.2, “Using Analysis Engines”
Instantiating an Analysis Engine
the section called “Instantiating an Analysis Engine”
Analyzing Text Documents
the section called “Analyzing Text Documents”
Analyzing Non-Text Artifacts
the section called “Analyzing Non-Text Artifacts”
Accessing Analysis Results
the section called “Accessing Analysis Results”
Accessing Analysis Results using the JCas
the section called “Accessing Analysis Results using the JCas”
Accessing Analysis Results using the CAS
the section called “Accessing Analysis Results using the CAS”
Multi-threaded Applications
the section called “Multi-threaded Applications”
Using Multiple Analysis Engines (and creating shared CASes)
the section called “Using Multiple Analysis Engines (and creating shared CASes)”
Saving CASes to file systems
the section called “Saving CASes to file systems”
Using Collection Processing Engines
Section 3.3, “Using Collection Processing Engines”
Running a CPE from a Descriptor
the section called “Running a CPE from a Descriptor”
Configuring a CPE Descriptor Programmatically
the section called “Configuring a CPE Descriptor Programmatically”
Setting Configuration Parameters
Section 3.4, “Setting Configuration Parameters”
Integrating Text Analysis and Search
Section 3.5, “Integrating Text Analysis and Search”
Building an Index
the section called “Building an Index”
Configuring the Semantic Search CAS Consumer – Indexer
the section called “Configuring the Semantic Search CAS Consumer – Indexer”
Building and Running a CPE including the Semantic Search CAS Consumer
– Indexer
the section called “Building and Running a CPE including the Semantic Search CAS Consumer
– Indexer”
Semantic Search Query Tool
the section called “Semantic Search Query Tool”
Working with Analysis Engine and CAS Consumer Remote Services
Section 3.6, “Working with Analysis Engine and CAS Consumer Remote Services”
How to Deploy a UIMA Component as a SOAP Web Service
the section called “How to Deploy a UIMA Component as a SOAP Web Service”
How to Deploy a UIMA Component as a Vinci Service
the section called “How to Deploy a UIMA Component as a Vinci Service”
How to Call a UIMA Service
the section called “How to Call a UIMA Service”
SOAP Service Client Descriptor
the section called “SOAP Service Client Descriptor”
Vinci Service Client Descriptor
the section called “Vinci Service Client Descriptor”
Restrictions on remotely deployed services
the section called “Restrictions on remotely deployed services”
The Vinci Naming Services (VNS)
the section called “The Vinci Naming Services (VNS)”
Starting VNS
the section called “Starting VNS”
VNS Files
the section called “VNS Files”
Launching Vinci Services
the section called “Launching Vinci Services”
Increasing performance using parallelism
Section 3.7, “Increasing performance using parallelism”
Monitoring Analysis Engine Performance using JMX
Section 3.8, “Monitoring Analysis Engine Performance using JMX”
Flow Controller Developer's Guide
Chapter 4, Flow Controller Developer's Guide
Developing the Flow Controller Code
Section 4.1, “Developing the Flow Controller Code”
Flow Controller Interface Overview
the section called “Flow Controller Interface Overview”
Example Code
the section called “Example Code”
The WhiteboardFlowController Class
the section called “The WhiteboardFlowController Class”
The WhiteboardFlow Class
the section called “The WhiteboardFlow Class”
Creating the Flow Controller Descriptor
Section 4.2, “Creating the Flow Controller Descriptor”
Adding a Flow Controller to an Aggregate Analysis Engine
Section 4.3, “Adding a Flow Controller to an Aggregate Analysis Engine”
Adding a Flow Controller to a Collection Processing Engine
Section 4.4, “Adding a Flow Controller to a Collection Processing Engine”
Using Flow Controllers with CAS Multipliers
Section 4.5, “Using Flow Controllers with CAS Multipliers”
Annotations, Artifacts, and Sofas
Chapter 5, Annotations, Artifacts, and Sofas
Terminology
Section 5.1, “Terminology”
Artifact
the section called “Artifact”
Subject of Analysis — Sofa
the section called “Subject of Analysis — Sofa”
Formats of Sofa Data
Section 5.2, “Formats of Sofa Data”
Setting and Accessing Sofa Data
Section 5.3, “Setting and Accessing Sofa Data”
Setting Sofa Data
the section called “Setting Sofa Data”
Accessing Sofa Data
the section called “Accessing Sofa Data”
Accessing Sofa Data using a Java Stream
the section called “Accessing Sofa Data using a Java Stream”
The Sofa Feature Structure
Section 5.4, “The Sofa Feature Structure”
Annotations
Section 5.5, “Annotations”
Built-in Annotation types
the section called “Built-in Annotation types”
Annotations have an associated Sofa
the section called “Annotations have an associated Sofa”
AnnotationBase
Section 5.6, “AnnotationBase”
Multiple CAS Views of an Artifact
Chapter 6, Multiple CAS Views of an Artifact
CAS Views and Sofas
Section 6.1, “CAS Views and Sofas”
Naming CAS Views and Sofas
the section called “Naming CAS Views and Sofas”
Multi-View and Single-View components and applications
the section called “Multi-View and Single-View components and applications”
Multi-View Components
Section 6.2, “Multi-View Components”
How UIMA decides if a component is Multi-View
the section called “How UIMA decides if a component is Multi-View”
Multi-View: additional capabilities
the section called “Multi-View: additional capabilities”
Component XML metadata
the section called “Component XML metadata”
Sofa Capabilities and APIs for Applications
Section 6.3, “Sofa Capabilities and APIs for Applications”
Sofa Name Mapping
Section 6.4, “Sofa Name Mapping”
Name Mapping in an Aggregate Descriptor
the section called “Name Mapping in an Aggregate Descriptor”
Name Mapping in a CPE
Descriptor
the section called “Name Mapping in a CPE
Descriptor”
Specifying the CAS View for a Single-View Component
the section called “Specifying the CAS View for a Single-View Component”
???TITLE???
the section called “Specifying the CAS View for a Single-View Component”
Name Mapping in a UIMA Application
the section called “Name Mapping in a UIMA Application”
Name Mapping for Remote Services
the section called “Name Mapping for Remote Services”
JCas extensions for Multiple Views / Sofas
Section 6.5, “JCas extensions for Multiple Views / Sofas”
Sample Multi-View Application
Section 6.6, “Sample Multi-View Application”
Annotator Descriptor
the section called “Annotator Descriptor”
Application Setup
the section called “Application Setup”
Annotator Processing
the section called “Annotator Processing”
Accessing the results of analysis
the section called “Accessing the results of analysis”
Views API Summary
Section 6.7, “Views API Summary”
Sofa Incompatibilities between UIMA version 1 and version 2
Section 6.8, “Sofa Incompatibilities between UIMA version 1 and version 2”
CAS Multiplier Developer's Guide
Chapter 7, CAS Multiplier Developer's Guide
Developing the CAS Multiplier Code
Section 7.1, “Developing the CAS Multiplier Code”
CAS Multiplier Interface Overview
the section called “CAS Multiplier Interface Overview”
How to Get an Empty CAS Instance
the section called “How to Get an Empty CAS Instance”
Example Code
the section called “Example Code”
Overall Structure
the section called “Overall Structure”
Initialize Method
the section called “Initialize Method”
Process Method
the section called “Process Method”
HasNext Method
the section called “HasNext Method”
Next Method
the section called “Next Method”
Creating the CAS Multiplier Descriptor
Section 7.2, “Creating the CAS Multiplier Descriptor”
Using a CAS Multiplier in an Aggregate Analysis Engine
Section 7.3, “Using a CAS Multiplier in an Aggregate Analysis Engine”
Adding the CAS Multiplier to the Aggregate
the section called “Adding the CAS Multiplier to the Aggregate”
CAS Multipliers and Flow Control
the section called “CAS Multipliers and Flow Control”
Aggregate CAS Multipliers
the section called “Aggregate CAS Multipliers”
Using a CAS Multiplier in a Collection Processing Engine
Section 7.4, “Using a CAS Multiplier in a Collection Processing Engine”
Calling a CAS Multiplier from an Application
Section 7.5, “Calling a CAS Multiplier from an Application”
Using a CAS Multiplier to Merge CASes
Section 7.6, “Using a CAS Multiplier to Merge CASes”
Overview of How to Merge CASes
the section called “Overview of How to Merge CASes”
Example CAS Merger
the section called “Example CAS Merger”
Process Method
the section called “Process Method”
HasNext and Next Methods
the section called “HasNext and Next Methods”
Using the SimpleTextMerger in an Aggregate Analysis Engine
the section called “Using the SimpleTextMerger in an Aggregate Analysis Engine”
XMI and EMF Interoperability
Chapter 8, XMI and EMF Interoperability
Overview
Section 8.1, “Overview”
Converting an Ecore Model to or from a UIMA Type System
Section 8.2, “Converting an Ecore Model to or from a UIMA Type System”
Using XMI CAS Serialization
Section 8.3, “Using XMI CAS Serialization”