blob: 174dd54709eb832d789e53ce981355f99960fb69 [file]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<!-- ====================================================================== -->
<!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
<!-- ====================================================================== -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<style type="text/css">@import "stylesheets/base.css";</style>
<meta name="author" value="
Apache UIMA&trade; Documentation Team">
<meta name="email" value="dev@uima.apache.org">
<title>Apache UIMA - Apache uimaFIT&trade;</title>
<!-- Begin Cookie Consent plugin by Silktide - https://silktide.com/cookieconsent -->
<!-- Commented out because implied consent is not compatible with GDPR -->
<!--
<script type="text/javascript">
window.cookieconsent_options = {"message":"This website uses cookies to ensure you get the best experience on our website","dismiss":"Got it!","learnMore":"More info","link":"https://uima.apache.org/privacy-policy.html","theme":"dark-bottom"};
</script>
<script type="text/javascript" src="/cookieconsent2/cookieconsent.min.js"></script>
-->
<!-- End Cookie Consent plugin -->
<!-- Begin Google Analytics -->
<!-- Commented out because GA requires consent according to GDPR -->
<!--
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-70846351-1', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
</script>
-->
<!-- End Google Analytics -->
</head>
<body>
<div class="topLogos">
<table border="0" width="100%" cellspacing="0">
<!-- TOP IMAGE -->
<tr>
<td align='LEFT'>
<a href="index.html">
<img style="border: 1px solid black;" src="./images/UIMA_banner2tlpTm.png" alt="UIMA project logo" border="0"/>
</a>
</td>
<td align='CENTER'>
<div class="pageBanner">Apache uimaFIT&trade;</div>
</td>
<td align='RIGHT'>
<a href="https://www.apache.org">
<img src="./images/asf-logo-on-white-smallTm.png" alt="Apache UIMA" border="0"/>
</a>
</td>
</tr>
</table>
<hr noshade="" size="1"/>
</div>
<table border="0" width="100%" cellspacing="4">
<tr>
<td align='RIGHT' colspan="2">
<form method="get" action="https://www.google.com/search">
Search the site
<input type="text" name="q" size="25" maxlength="255" value="" />
<input type="hidden" name="sitesearch" value="https://uima.apache.org/" />
<input name="Search" value="Search Site" type="submit"/>
</form>
</td>
</tr>
<tr> <!-- LEFT SIDE NAVIGATION -->
<td width="20%" valign="top">
<!-- regular menu -->
<div class="navBar">
<br/>
<div class="navBarItem"> <div class="navPartHeading">General</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./index.html">Home</a>
</div>
<div class="navBarItem"> <a href="./downloads.cgi">Downloads</a>
</div>
<div class="navBarItem"> <a href="./documentation.html">Documentation</a>
</div>
<div class="navBarItem"> <a href="./news.html">News</a>
</div>
<div class="navBarItem"> <a href="./publications.html">Publications</a>
</div>
<br style="line-height: .5em"/>
<div class="navBarItem"> <a href="https://issues.apache.org/jira/browse/uima" target="_blank" rel="noopener">Issue tracker <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://cwiki.apache.org/confluence/display/UIMA/" target="_blank" rel="noopener">Wiki <img src="images/offsitelink.png"/></a>
</div>
<br style="line-height: .5em"/>
<div class="navBarItem"> <a href="https://cwiki.apache.org/confluence/display/UIMA/Powered+by+Apache+UIMA" target="_blank" rel="noopener">Powered By UIMA <img src="images/offsitelink.png"/></a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Community</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./get-involved.html">Get Involved</a>
</div>
<div class="navBarItem"> <a href="./mail-lists.html">Mailing Lists</a>
</div>
<div class="navBarItem"> <a href="./contribution-policy.html">Contribution Policies</a>
</div>
<div class="navBarItem"> <a href="./faq.html">FAQ</a>
</div>
<div class="navBarItem"> <a href="./project-guidelines.html">Project Guidelines</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Components & Tools</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./sandbox.html#uima-addons-annotators">Annotators</a>
</div>
<div class="navBarItem"> <a href="./toolsServers.html">Tools & Servers</a>
</div>
<div class="navBarItem"> <a href="./sandbox.html">Addons and Sandbox</a>
</div>
<div class="navBarItem"> <a href="./ruta.html">UIMA Ruta</a>
</div>
<div class="navBarItem"> <a href="https://github.com/apache/uima-uimafit" target="_blank" rel="noopener">uimaFIT <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="./external-resources.html">External Resources</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Development</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./dev-quick.html">Quick Start: building</a>
</div>
<div class="navBarItem"> <a href="./building-uima.html">Building from Source</a>
</div>
<div class="navBarItem"> <a href="./one-time-setup.html">One-time setups</a>
</div>
<div class="navBarItem"> <a href="./svn.html">Source Code</a>
</div>
<div class="navBarItem"> <a href="./release.html">Doing a UIMA release</a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/security/committers.html" target="_blank" rel="noopener">Doing a CVE (Apache) <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="./eclipse-update-site.html">Eclipse Update Sites</a>
</div>
<div class="navBarItem"> <a href="./git.html">GIT</a>
</div>
<div class="navBarItem"> <a href="./codeConventions.html">Code Conventions</a>
</div>
<div class="navBarItem"> <a href="./uima-specification.html">UIMA Specification (OASIS)</a>
</div>
<div class="navBarItem"> <a href="./team-list.html">Project Team</a>
</div>
<div class="navBarItem"> <a href="./maven-design.html">Maven Use</a>
</div>
<div class="navBarItem"> <a href="./updating-website.html">Updating this Website</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">Events and Conferences</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="./coling14.html">COLING 2014</a>
</div>
<div class="navBarItem"> <a href="./gscl13.html">GSCL 2013</a>
</div>
<div class="navBarItem"> <a href="./iks09.html">IKS 2009</a>
</div>
<div class="navBarItem"> <a href="./gscl09.html">GSCL 2009</a>
</div>
<div class="navBarItem"> <a href="./lsm09.html">LSM 2009</a>
</div>
<div class="navBarItem"> <a href="./lrec08.html">LREC 2008</a>
</div>
<div class="navBarItem"> <a href="./gldv07.html">GLDV 2007</a>
</div>
</div>
<br/>
<div class="navBarItem"> <div class="navPartHeading">ASF</div>
</div>
<div class="navBar">
<div class="navBarItem"> <a href="https://www.apache.org/licenses/" target="_blank" rel="noopener">License <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener">ASF Sponsors <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener">ASF Sponsorship <img src="images/offsitelink.png"/></a>
</div>
<div class="navBarItem"> <a href="./security_report">Security</a>
</div>
</div>
</div>
</td>
<td width="80%" align="left" valign="top">
<div class="sectionTable">
<table class="sectionTable">
<tr><td>
<a name="Apache uimaFIT"><h1><img src="images/UIMA_4sq50tightCropSolid.png"/>&nbsp;Apache uimaFIT</h1></a>
</td></tr>
<tr><td>
<blockquote class="sectionBody">
<ul>
<li><a href='#Overview'>
Overview
</a></li>
<li><a href='#Modules'>
Modules
</a></li>
<li><a href='#Documentation'>
Documentation
</a></li>
<li><a href='#Developer Information'>
Developer Information
</a></li>
<li><a href='#Reference'>
Reference
</a></li>
<li><a href='#History'>
History
</a></li>
</ul>
<table class="subsectionTable" id='uima.fit.overview'>
<tr><td>
<a name="Overview">
<h2>Overview
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
Configuring UIMA components is generally achieved by creating XML descriptor
files which tell the framework at runtime how components should be
instantiated and deployed. These XML descriptor files are very tightly
coupled with the Java implementation of the components they describe.
We have found that it is very difficult to keep the two consistent
with each other especially when code refactoring is very frequent.
uimaFIT provides Java annotations for describing UIMA components which
can be used to directly describe the UIMA components in the code. This
greatly simplifies refactoring a component definition (e.g. changing a
configuration parameter name). It also makes it possible to generate
XML descriptor files as part of the build cycle rather than being
performed manually in parallel with code creation. uimaFIT also makes
it easy to instantiate UIMA components without using XML descriptor
files at all by providing a number of convenience factory methods
which allow programmatic/dynamic instantiation of UIMA components.
This makes uimaFIT an ideal library for testing UIMA components
because the component can be easily instantiated and invoked without
requiring a descriptor file to be created first. uimaFIT is also
helpful in research environments in which programmatic/dynamic
instantiation of a pipeline can simplify experimentation. For example,
when performing 10-fold cross-validation across a number of
experimental conditions it can be quite laborious to create a
different set of descriptor files for each run or even a script that
generates such descriptor files. uimaFIT is type system agnostic and
does not depend on (or provide) a specific type system.
</p>
<p>
Apache uimaFIT is a library that provides factories, injection, and testing utilities for
Apache UIMA&trade;. The following list highlights some of the features uimaFIT provides:
</p>
<ul>
<li>
<p>
<b>Factories:</b> simplify instantiating UIMA components programmatically without descriptor files.
For example, to instantiate an AnalysisEngine a call like this could be made:
</p>
<pre>AnalysisEngineFactory.createEngine(MyAEImpl.class, myTypeSystem,
paramName1, paramValue1,
paramName2, paramValue2,
...)</pre>
</li>
<li>
<p>
<b>Injection:</b> handles the binding of configuration parameter values to the corresponding member
variables in the analysis engines and handles the binding of external resources. For example,
to bind a configuration parameter just annotate a member variable with <code>@ConfigurationParameter</code>.
Then add one line of code to your initialize method:
</p>
<pre>ConfigurationParameterInitializer.initialize(this, uimaContext)</pre>
<p>
This is handled automatically if you extend the uimaFIT component base classes, such as
<code>JCasAnnotator_ImplBase</code>. External resources can likewise by injected via the
<code>@ExternalResource</code> annotation.
</p>
</li>
<li>
<p>
<b>Testing:</b> uimaFIT simplifies testing in a number of ways described in the documentation. By making
it easy to instantiate your components without descriptor files a large amount of
difficult-to-maintain and unnecessary XML can be eliminated from your test code. This makes tests
easier to write and maintain. Also, running components as a pipeline can be accomplished with a
method call like this:
</p>
<pre>SimplePipeline.runPipeline(reader, ae1, ..., aeN, consumer1, ... consumerN)</pre>
</li>
</ul>
<note>
<p>
uimaFIT is a part of the Apache UIMA project. uimaFIT can only be used in conjunction with
a compatible version of the Java version of the Apache UIMA SDK. For your convenience, the binary
distribution package of uimaFIT includes all libraries necessary to use uimaFIT. In particular for
novice users, it is strongly advised to obtain a copy of the full UIMA SDK separately.
</p>
</note>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable" id='uima.fit.modules'>
<tr><td>
<a name="Modules">
<h2>Modules
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<ul>
<li>
<b>uimafit-core</b>
is the main uimaFIT module.
</li>
<li>
<b>uimafit-cpe</b>
provides support for the Collection Processing Engine (multi-threaded pipelines).
</li>
<li>
<b>uimafit-maven-plugin</b>
is a Maven plugin to automatically enhance UIMA components with uimaFIT
metadata and to generate XML descriptors for uimaFIT-enabled components.
</li>
<li>
<b>uimafit-spring</b>
is an experimental module serving as a proof-of-concept for the integration of
UIMA with the Spring Framework. It is currently not considered finished and
uses invasive reflection in order to patch the UIMA framework such that it
passes all components created by UIMA through Spring to provide for the
wiring of Spring context dependencies. This module is made available for
the adventurous but currently not considered stable, finished, or even a
proper part of the package. E.g. it is not included in the binary
distribution package.
</li>
<li>
<b>uimafit-legacy-support</b> (only uimaFIT &lt; 3.0.0)
allows uimaFIT 2.x to use uimaFIT 1.4.x meta data like Java annotations
and <code>META-INF/org.uimafit/types.txt</code> files. Pipelines mixing uimaFIT 1.4.x
and 2.x componens MUST be created using the 2.x factories, because the
1.4.x factories will <b>not</b> understand how to handle uimaFIT 2.x components
or auto-configuration.
</li>
</ul>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable" id='uima.fit.documentation'>
<tr><td>
<a name="Documentation">
<h2>Documentation
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
Here, you can find the documentation for the most recent uimaFIT release compatible with the UIMA Java
SDK v3 and v2 respectively.
</p>
<p><b>Latest uimaFIT v3.x documentation</b></p>
<ul>
<li><a href="d/uimafit-current/tools.uimafit.book.html">Guide and Reference Manual (v3.x)</a></li>
<li><a href="d/uimafit-current/api/index.html">API documentation (v3.x)</a></li>
<li><a href="d/uimafit-current/README.txt">Latest release notes (v3.x)</a></li>
</ul>
<p><b>Latest uimaFIT v2.x documentation</b></p>
<ul>
<li><a href="d/uimafit-v2-current/tools.uimafit.book.html">Guide and Reference Manual (v2.x)</a></li>
<li><a href="d/uimafit-v2-current/api/index.html">API documentation (v2.x)</a></li>
<li><a href="d/uimafit-v2-current/README.txt">Latest release notes (v2.x)</a></li>
</ul>
<p>Should you require documentation for a specific version of uimaFIT, please check our <a href="https://svn.apache.org/repos/asf/uima/site/archive/docs/d">archive</a>.</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable" id='uima.fit.developer'>
<tr><td>
<a name="Developer Information">
<h2>Developer Information
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>The latest version of uimaFIT is available via <a href="https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.uima%22%20AND%20%22uimafit*%22">Maven Central</a>.
If you use Maven as your build tool, then you can add uimaFIT as a dependency
in your pom.xml file (additionally to other UIMA dependencies). Please mind to change the version
in the dependency declaration to the version you actually want to use:</p>
<pre>
&lt;dependency&gt;
&lt;groupId&gt;org.apache.uima&lt;/groupId&gt;
&lt;artifactId&gt;uimafit-core&lt;/artifactId&gt;
&lt;version&gt;3.3.0&lt;/version&gt;
&lt;/dependency&gt;
</pre>
<subsubsection>
To build uimaFIT from the repository, clone the git repository at
<code>https://github.com/apache/uima-uimafit.git</code> and execute
<code>mvn clean install</code> at the root of the cloned repository.
</subsubsection>
<p>
The sources of the current release are available at the <a href="downloads.html">download page</a>.
</p>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable" id='uima.fit.reference'>
<tr><td>
<a name="Reference">
<h2>Reference
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
If you use uimaFIT to support academic research, then please consider citing the following
paper as appropriate:</p>
<pre>
@InProceedings{ogren-bethard:2009:SETQA-NLP,
author = {Ogren, Philip and Bethard, Steven},
title = {Building Test Suites for {UIMA} Components},
booktitle = {Proceedings of the Workshop on Software Engineering, Testing,
and Quality Assurance for Natural Language Processing (SETQA-NLP 2009)},
month = {June},
year = {2009},
address = {Boulder, Colorado},
publisher = {Association for Computational Linguistics},
pages = {1--4},
url = {https://www.aclweb.org/anthology/W/W09/W09-1501}
}
</pre>
</blockquote>
</td></tr>
</table>
<table class="subsectionTable" id='uima.fit.history'>
<tr><td>
<a name="History">
<h2>History
</h2>
</a>
</td></tr>
<tr><td>
<blockquote class="subsectionBody">
<p>
Since end of 2012, uimaFIT is part of the Apache UIMA project.
</p>
<p>
Apache uimaFIT was formerly known as uimaFIT, which in turn was formerly known as UUTUC.
</p>
<p>
Before uimaFIT has become an sub-project within the Apache UIMA project, it is was collaborative
effort between the Center for Computational Pharmacology at the University of Colorado Denver, the
Center for Computational Language and Education Research at the University of Colorado at Boulder,
and the Ubiquitous Knowledge Processing (UKP) Lab at the Technische Universitaet Darmstadt.
</p>
<p>
The initial uimaFIT development team was:
</p>
<ul>
<li>Philip Ogren, University of Colorado, USA</li>
<li>Richard Eckart de Castilho, Technische Universitaet Darmstadt, Germany</li>
<li>Steven Bethard, Stanford University, USA</li>
</ul>
<p>
with contributions from Niklas Jakob, Fabio Mancinelli, Chris Roeder, Philipp Wetzler, Shuo Yang,
and Torsten Zesch.
</p>
</blockquote>
</td></tr>
</table>
</blockquote>
</p>
</td></tr>
</table>
</td>
</tr>
<!-- FOOTER -->
<tr><td colspan="2">
<hr noshade="" size="1"/>
</td></tr>
<tr><td colspan="2">
<table class="pageFooter">
<tr>
<td><a href="index.html">Home</a></td>
<td><a href="privacy-policy.html">Privacy Policy</a></td>
<td style="font-size:75%">
Copyright &#169; 2006-2024, The Apache Software Foundation.<br/>
Apache UIMA, UIMA, the Apache UIMA logo and the Apache Feather logo are trademarks of The Apache Software Foundation.<br/>
All other marks mentioned may be trademarks or registered trademarks of their respective owners.
</td>
<td><a href="mailto:dev@uima.apache.org">Contact us</a></td>
</tr>
</table>
</td></tr>
</table>
</body>
</html>