UIMA Tutorial and Developers' GuidesUIMA Tutorial and Developers' Guides
Annotator and Analysis Engine Developer's GuideChapter 1, Annotator and Analysis Engine Developer's Guide
Getting StartedSection 1.1, “Getting Started”
Defining TypesSection 1.1.1, “Defining Types”
Generating Java Source Files for CAS TypesSection 1.1.2, “Generating Java Source Files for CAS Types”
Developing Your Annotator CodeSection 1.1.3, “Developing Your Annotator Code”
Creating the XML DescriptorSection 1.1.4, “Creating the XML Descriptor”
Testing Your AnnotatorSection 1.1.5, “Testing Your Annotator”
Configuration and LoggingSection 1.2, “Configuration and Logging”
Configuration ParametersSection 1.2.1, “Configuration Parameters”
Declaring Parameters in the DescriptorSection 1.2.1.1, “Declaring Parameters in the Descriptor”
Accessing Parameter Values from the Annotator CodeSection 1.2.1.2, “Accessing Parameter Values from the Annotator Code”
Supporting ReconfigurationSection 1.2.1.3, “Supporting Reconfiguration”
Configuration Parameter GroupsSection 1.2.1.4, “Configuration Parameter Groups”
LoggingSection 1.2.2, “Logging”
Specifying the Logging ConfigurationSection 1.2.2.1, “Specifying the Logging Configuration”
Setting Logging LevelsSection 1.2.2.2, “Setting Logging Levels”
Format of logging outputSection 1.2.2.3, “Format of logging output”
Meaning of the logging severity levelsSection 1.2.2.4, “Meaning of the logging severity levels”
Using the logger outside of an annotatorSection 1.2.2.5, “Using the logger outside of an annotator”
Changing the underlying UIMA logging implementationSection 1.2.2.6, “Changing the underlying UIMA logging implementation”
Building Aggregate Analysis EnginesSection 1.3, “Building Aggregate Analysis Engines”
Combining AnnotatorsSection 1.3.1, “Combining Annotators”Combining Annotators to form an Aggregate Analysis EngineFigure 1.1, “Combining Annotators to form an Aggregate Analysis Engine”
AEs can also contain CAS ConsumersSection 1.3.2, “AEs can also contain CAS Consumers”
Reading the Results of Previous AnnotatorsSection 1.3.3, “Reading the Results of Previous Annotators”An Aggregate Analysis Engine where an internal component uses output from previous enginesFigure 1.2, “An Aggregate Analysis Engine where an internal component uses output from previous engines”
Other examplesSection 1.4, “Other examples”
Additional TopicsSection 1.5, “Additional Topics”
Contract: Annotator Methods Called by the FrameworkSection 1.5.1, “Annotator Methods”
Reporting errors from AnnotatorsSection 1.5.2, “Reporting errors from Annotators”
Throwing Exceptions from AnnotatorsSection 1.5.3, “Throwing Exceptions from Annotators”
Accessing External Resource FilesSection 1.5.4, “Accessing External Resource Files”
Declaring Resource DependenciesSection 1.5.4.1, “Declaring Resource Dependencies”
Accessing the Resource from the UimaContextSection 1.5.4.2, “Accessing the Resource from the UimaContext”
Declaring Resources and BindingsSection 1.5.4.3, “Declaring Resources and Bindings”External Resource BindingFigure 1.3, “External Resource Binding”
Sharing Resources among AnnotatorsSection 1.5.4.4, “Sharing Resources among Annotators”Component engines of an aggregate share a common resourceFigure 1.4, “Component engines of an aggregate share a common resource”
Threading and Shared ResourcesSection 1.5.4.5, “Threading and Shared Resources”
Result SpecificationsSection 1.5.5, “Result Specifications”
Default ResultSpecificationSection 1.5.5.1, “Default ResultSpecification”
Passing Result Specifications to AnnotatorsSection 1.5.5.2, “Passing Result Specifications to Annotators”
AggregatesSection 1.5.5.3, “Aggregates”
Collection Proessing EnginesSection 1.5.5.4, “Collection Proessing Engines”
Class path setup when using JCasSection 1.5.6, “Class path setup when using JCas”
Using the Shell ScriptsSection 1.5.7, “Using the Shell Scripts”Environment variables used by the shell scriptsTable 1.1, “Environment variables used by the shell scripts”
Common PitfallsSection 1.6, “Common Pitfalls”
Viewing UIMA objects in the Eclipse debuggerSection 1.7, “UIMA Objects in Eclipse Debugger”
Introduction to Analysis Engine Descriptor XML SyntaxSection 1.8, “Analysis Engine XML Descriptor”
Header and Annotator Class IdentificationSection 1.8.1, “Header and Annotator Class Identification”
Simple Metadata AttributesSection 1.8.2, “Simple Metadata Attributes”
Type System DefinitionSection 1.8.3, “Type System Definition”
CapabilitiesSection 1.8.4, “Capabilities”
Configuration Parameters (Optional)Section 1.8.5, “Configuration Parameters (Optional)”
Configuration Parameter DeclarationsSection 1.8.5.1, “Configuration Parameter Declarations”
Configuration Parameter SettingsSection 1.8.5.2, “Configuration Parameter Settings”
Aggregate Analysis Engine DescriptorSection 1.8.5.3, “Aggregate Analysis Engine Descriptor”
Collection Processing Engine Developer's GuideChapter 2, Collection Processing Engine Developer's Guide
CPE ConceptsSection 2.1, “CPE Concepts”CPE ComponentsFigure 2.1, “CPE Components”
CPE Configurator and CAS viewerSection 2.2, “CPE Configurator and CAS viewer”
Using the CPE ConfiguratorSection 2.2.1, “Using the CPE Configurator”
Running the CPE Configurator from EclipseSection 2.2.2, “Running the CPE Configurator from Eclipse”
Running a CPE from Your Own Java ApplicationSection 2.3, “Running a CPE from Your Own Java Application”
Using ListenersSection 2.3.1, “Using Listeners”
Developing Collection Processing ComponentsSection 2.4, “Developing Collection Processing Components”
Developing Collection ReadersSection 2.4.1, “Developing Collection Readers”
Java Class for the Collection ReaderSection 2.4.1.1, “Java Class for the Collection Reader”
Required Methods in the Collection Reader classSection 2.4.1.2, “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 Methodsthe section called “Optional Methods”
reconfigure()the section called “reconfigure()”
typeSystemInit()the section called “typeSystemInit()”
Threading considerationsthe section called “Threading considerations”
XML Descriptor for a Collection Readerthe section called “XML Descriptor for a Collection Reader”
Developing CAS InitializersSection 2.4.2, “Developing CAS Initializers”
Developing CAS ConsumersSection 2.4.3, “Developing CAS Consumers”
Required Methods for a CAS ConsumerSection 2.4.3.1, “Required Methods for a CAS Consumer”
initialize()the section called “initialize()”
processCas()the section called “processCas()”
Optional Methodsthe section called “Optional Methods”
batchProcessComplete()the section called “batchProcessComplete()”
collectionProcessComplete()the section called “collectionProcessComplete()”
Deploying a CPESection 2.5, “Deploying a CPE”CPE InstantiationFigure 2.2, “CPE Instantiation”???TITLE???Section 2.5, “Deploying a CPE”
Deploying Managed CAS ProcessorsSection 2.5.1, “Deploying Managed CAS Processors”CPE with Managed CAS ProcessorsFigure 2.3, “CPE with Managed CAS Processors”
Deploying Non-managed CAS ProcessorsSection 2.5.2, “Deploying Non-managed CAS Processors”CPE with non-managed CAS ProcessorsFigure 2.4, “CPE with non-managed CAS Processors”
Deploying Integrated CAS ProcessorsSection 2.5.3, “Deploying Integrated CAS Processors”CPE with integrated CAS ProcessorFigure 2.5, “CPE with integrated CAS Processor”
Collection Processing ExamplesSection 2.6, “Collection Processing Examples”
Application Developer's GuideChapter 3, Application Developer's Guide
The UIMAFramework ClassSection 3.1, “The UIMAFramework Class”
Using Analysis EnginesSection 3.2, “Using Analysis Engines”
Instantiating an Analysis EngineSection 3.2.1, “Instantiating an Analysis Engine”
Analyzing Text DocumentsSection 3.2.2, “Analyzing Text Documents”
Analyzing Non-Text ArtifactsSection 3.2.3, “Analyzing Non-Text Artifacts”
Accessing Analysis ResultsSection 3.2.4, “Accessing Analysis Results”
Accessing Analysis Results using the JCasSection 3.2.4.1, “Accessing Analysis Results using the JCas”
Accessing Analysis Results using the CASSection 3.2.4.2, “Accessing Analysis Results using the CAS”
Multi-threaded ApplicationsSection 3.2.5, “Multi-threaded Applications”
Using Multiple Analysis Engines and Creating Shared CASesSection 3.2.6, “Multiple AEs & Creating Shared CASes”
Saving CASes to file systemsSection 3.2.7, “Saving CASes to file systems”
Using Collection Processing EnginesSection 3.3, “Using Collection Processing Engines”
Running a Collection Processing Engine from a DescriptorSection 3.3.1, “Running a CPE from a Descriptor”
Configuring a Collection Processing Engine Descriptor ProgrammaticallySection 3.3.2, “Configuring a CPE Descriptor Programmatically”
Setting Configuration ParametersSection 3.4, “Setting Configuration Parameters”
Integrating Text Analysis and SearchSection 3.5, “Integrating Text Analysis and Search”
Building an IndexSection 3.5.1, “Building an Index”
Configuring the Semantic Search CAS IndexerSection 3.5.1.1, “Configuring the Semantic Search CAS Indexer”
Building and Running a CPE including the Semantic Search CAS IndexerSection 3.5.1.2, “Using Semantic Search CAS Indexer”
Semantic Search Query ToolSection 3.5.2, “Semantic Search Query Tool”
Working with Remote ServicesSection 3.6, “Working with Remote Services”
Deploying a UIMA Component as a SOAP ServiceSection 3.6.1, “Deploying as SOAP Service”
Deploying a UIMA Component as a Vinci ServiceSection 3.6.2, “Deploying as a Vinci Service”
How to Call a UIMA ServiceSection 3.6.3, “Calling a UIMA Service”
SOAP Service Client DescriptorSection 3.6.3.1, “SOAP Service Client Descriptor”
Vinci Service Client DescriptorSection 3.6.3.2, “Vinci Service Client Descriptor”
Restrictions on remotely deployed servicesSection 3.6.4, “Restrictions on remotely deployed services”
The Vinci Naming Services (VNS)Section 3.6.5, “The Vinci Naming Services (VNS)”
Starting VNSSection 3.6.5.1, “Starting VNS”
VNS FilesSection 3.6.5.2, “VNS Files”
Launching Vinci ServicesSection 3.6.5.3, “Launching Vinci Services”
Configuring Timeout SettingsSection 3.6.6, “Configuring Timeout Settings”
Setting the Client TimeoutSection 3.6.6.1, “Setting the Client Timeout”
Setting the Server Socket TimeoutSection 3.6.6.2, “Setting the Server Socket Timeout”
Increasing performance using parallelismSection 3.7, “Increasing performance using parallelism”
Monitoring AE Performance using JMXSection 3.8, “Monitoring AE Performance using JMX”
Performance Tuning OptionsSection 3.9, “Performance Tuning Options”
Flow Controller Developer's GuideChapter 4, Flow Controller Developer's Guide
Developing the Flow Controller CodeSection 4.1, “Developing the Flow Controller Code”
Flow Controller Interface OverviewSection 4.1.1, “Flow Controller Interface Overview”
Example CodeSection 4.1.2, “Example Code”
The WhiteboardFlowController ClassSection 4.1.2.1, “The WhiteboardFlowController Class”
The WhiteboardFlow ClassSection 4.1.2.2, “The WhiteboardFlow Class”
Creating the Flow Controller DescriptorSection 4.2, “Creating the Flow Controller Descriptor”
Adding a Flow Controller to an Aggregate Analysis EngineSection 4.3, “Adding Flow Controller to an Aggregate”
Adding a Flow Controller to a Collection Processing EngineSection 4.4, “Adding Flow Controller to CPE”
Using Flow Controllers with CAS MultipliersSection 4.5, “Using Flow Controllers with CAS Multipliers”
Continuing the Flow When Exceptions OccurSection 4.6, “Continuing the Flow When Exceptions Occur”
Annotations, Artifacts, and SofasChapter 5, Annotations, Artifacts, and Sofas
TerminologySection 5.1, “Terminology”
ArtifactSection 5.1.1, “Artifact”
Subject of Analysis — SofaSection 5.1.2, “Subject of Analysis — Sofa”
Formats of Sofa DataSection 5.2, “Formats of Sofa Data”
Setting and Accessing Sofa DataSection 5.3, “Setting and Accessing Sofa Data”
Setting Sofa DataSection 5.3.1, “Setting Sofa Data”
Accessing Sofa DataSection 5.3.2, “Accessing Sofa Data”
Accessing Sofa Data using a Java StreamSection 5.3.3, “Accessing Sofa Data using a Java Stream”
The Sofa Feature StructureSection 5.4, “The Sofa Feature Structure”
AnnotationsSection 5.5, “Annotations”
Built-in Annotation typesSection 5.5.1, “Built-in Annotation types”
Annotations have an associated SofaSection 5.5.2, “Annotations have an associated Sofa”
AnnotationBaseSection 5.6, “AnnotationBase”
Multiple CAS Views of an ArtifactChapter 6, Multiple CAS Views of an Artifact
CAS Views and SofasSection 6.1, “CAS Views and Sofas”
Naming CAS Views and SofasSection 6.1.1, “Naming CAS Views and Sofas”
Multi-View, Single-View components & applicationsSection 6.1.2, “Multi/Single View parts in Applications”
Multi-View ComponentsSection 6.2, “Multi-View Components”
How UIMA decides if a component is Multi-ViewSection 6.2.1, “Deciding: Multi-View”
Multi-View: additional capabilitiesSection 6.2.2, “Multi-View: additional capabilities”
Component XML metadataSection 6.2.3, “Component XML metadata”
Sofa Capabilities and APIs for ApplicationsSection 6.3, “Sofa Capabilities & APIs for Apps”
Sofa Name MappingSection 6.4, “Sofa Name Mapping”
Name Mapping in an Aggregate DescriptorSection 6.4.1, “Name Mapping in an Aggregate Descriptor”
Name Mapping in a CPE DescriptorSection 6.4.2, “Name Mapping in a CPE Descriptor”
Specifying the CAS View for a Single-View ComponentSection 6.4.3, “CAS View for Single-View Parts”???TITLE???Section 6.4.3, “CAS View for Single-View Parts”
Name Mapping in a UIMA ApplicationSection 6.4.4, “Name Mapping in a UIMA Application”
Name Mapping for Remote ServicesSection 6.4.5, “Name Mapping for Remote Services”
JCas extensions for Multiple ViewsSection 6.5, “JCas extensions for Multiple Views”
Sample Multi-View ApplicationSection 6.6, “Sample Multi-View Application”
Annotator DescriptorSection 6.6.1, “Annotator Descriptor”
Application SetupSection 6.6.2, “Application Setup”
Annotator ProcessingSection 6.6.3, “Annotator Processing”
Accessing the results of analysisSection 6.6.4, “Accessing the results of analysis”
Views API SummarySection 6.7, “Views API Summary”
Sofa Incompatibilities between UIMA version 1 and version 2Section 6.8, “Sofa Incompatibilities: V1 and V2”
CAS Multiplier Developer's GuideChapter 7, CAS Multiplier Developer's Guide
Developing the CAS Multiplier CodeSection 7.1, “Developing the CAS Multiplier Code”
CAS Multiplier Interface OverviewSection 7.1.1, “CAS Multiplier Interface Overview”
How to Get an Empty CAS InstanceSection 7.1.2, “Getting an empty CAS Instance”
Example CodeSection 7.1.3, “Example Code”
Overall StructureSection 7.1.3.1, “Overall Structure”
Initialize MethodSection 7.1.3.2, “Initialize Method”
Process MethodSection 7.1.3.3, “Process Method”
HasNext MethodSection 7.1.3.4, “HasNext Method”
Next MethodSection 7.1.3.5, “Next Method”
Creating the CAS Multiplier DescriptorSection 7.2, “CAS Multiplier Descriptor”
Using a CAS Multiplier in an Aggregate Analysis EngineSection 7.3, “Using CAS Multipliers in Aggregates”
Adding the CAS Multiplier to the AggregateSection 7.3.1, “Aggregate: Adding the CAS Multiplier”
CAS Multipliers and Flow ControlSection 7.3.2, “CAS Multipliers and Flow Control”
Aggregate CAS MultipliersSection 7.3.3, “Aggregate CAS Multipliers”
Using a CAS Multiplier in a Collection Processing EngineSection 7.4, “CAS Multipliers in CPE's”
Calling a CAS Multiplier from an ApplicationSection 7.5, “Applications: Calling CAS Multipliers”
Retrieving Output CASes from the CAS MultiplierSection 7.5.1, “Output CASes”
Using a CAS Multiplier with other Analysis EnginesSection 7.5.2, “CAS Multipliers with other AEs”
Using a CAS Multiplier to Merge CASesSection 7.6, “Merging with CAS Multipliers”
Overview of How to Merge CASesSection 7.6.1, “CAS Merging Overview”
Example CAS MergerSection 7.6.2, “Example CAS Merger”
Process MethodSection 7.6.2.1, “Process Method”
HasNext and Next MethodsSection 7.6.2.2, “HasNext and Next Methods”
Using the SimpleTextMerger in an Aggregate Analysis EngineSection 7.6.3, “SimpleTextMerger in an Aggregate”
XMI and EMF InteroperabilityChapter 8, XMI and EMF Interoperability
OverviewSection 8.1, “Overview”
Converting an Ecore Model to or from a UIMA Type SystemSection 8.2, “Converting an Ecore Model to or from a UIMA Type System”
Using XMI CAS SerializationSection 8.3, “Using XMI CAS Serialization”
Character Encoding Issues with XML SerializationSection 8.3.1, “Character Encoding Issues with XML Serialization”