blob: 9dba87ef10bc8d3681413a1da1f4ed121dfa81c5 [file]
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
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
https://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.
-->
<document>
<properties>
<title>Apache UIMA</title>
<author email="dev@uima.apache.org">
Apache UIMA Documentation Team
</author>
</properties>
<body>
<section name="Welcome to the Apache UIMA project">
<div style="float: right; width: 220px; margin-left: 10px; border: 1px solid grey; background: white;" >
<div style="text-align: center; border-bottom: 1px solid grey; margin:0.2em; padding-bottom: 0.2em;">
<a href="https://www.apache.org/events/current-event.html">
<img style="width: 210px" src="images/coc-logo-color.svg"/>
</a>
</div>
<div style="height:105px; text-align: center; margin:0.2em; padding-bottom: 0.2em;"><a href="https://donate.apache.org"><img style="display: none" src="./images/supportapache-whspc-main_1490600386.png" title="Donate to ASF"/>
<span style="display: block; padding-bottom: 50%; height: 0; background-position: center; background-size: cover; background-repeat: no-repeat; background-image: url(./images/supportapache-whspc-main_1490600386.png);"></span></a></div>
</div>
<p>
Welcome to the Apache UIMA&#0153; project. Our goal is to support a thriving community of users and
developers of UIMA frameworks, tools, and annotators,
facilitating the analysis of unstructured content such as text, audio and
video.
</p>
<h2>What is UIMA?</h2>
<p>
Unstructured Information Management applications are
software systems that analyze large volumes of
unstructured information in order to discover knowledge
that is relevant to an end user. An example UIM
application might ingest plain text and identify
entities, such as persons, places, organizations; or
relations, such as works-for or located-at.
</p>
<img style="float: right;" src="./images/UimaIs.png" width="430" alt="UIMA is made of many things" />
<p>UIMA enables applications to be decomposed into components,
for example "language identification" =&gt; "language
specific segmentation" =&gt; "sentence boundary
detection" =&gt; "entity detection (person/place names
etc.)". Each component implements interfaces defined
by the framework and provides self-describing
metadata via XML descriptor files. The framework manages
these components and the data flow between them.
Components are written in Java or C++; the data that
flows between components is designed for efficient
mapping between these languages.
</p>
<p>UIMA additionally
provides capabilities to wrap components as network
services, and can scale to very large volumes by
replicating processing pipelines over a cluster of
networked nodes.
</p>
<p>
Apache UIMA is an Apache-licensed open source
implementation of the
UIMA specification <a href="https://www.oasis-open.org/committees/download.php/28492/uima-spec-wd-05.pdf">[pdf]</a>
<a href="https://www.oasis-open.org/committees/download.php/28491/uima-spec-wd-05.doc">[doc]</a> (that
specification is, in turn, being developed concurrently
by a technical committee within
<a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=uima">OASIS</a>
, a standards organization). We invite and encourage you
to participate in both the implementation and
specification efforts.
</p>
<p class="nobottomspace">Here you can find:</p>
<ul class="noverticalspace">
<li>Frameworks</li>
<li>Components, and</li>
<li>Infrastructure,</li>
</ul>
<p class="notopspace">all licensed under the Apache license. The dashed-line boxes
above are placeholders for possible future additions.
</p>
<p>
The <a href="doc-uima-why.html">Frameworks</a> run the components, and are available for both Java and
C++. The
<a href="doc-uima-examples.html">Java Framework</a> supports running both Java and non-Java
components (using the C++ framework). The
<a href="doc-uimacpp-huh.html">C++ framework</a>, besides
supporting annotators written in C/C++, also supports Perl, Python, and
TCL annotators.
</p>
<p>The frameworks support configuring and running pipelines of
Annotator components. These components do the actual work
of analyzing the unstructured information. Users can <a href="doc-uima-annotator.html">write
their own annotators</a>, or configure and use pre-existing
annotators. Some annotators are <a href="sandbox.html#uima-addons-annotators">available as part of this project</a>;
others are contained in <a href="external-resources.html">various repositories</a> on the internet.
GitHub.com lists over
<a target="_blank" rel="nofollow noopener"
href="https://github.com/apache/uima-uimaj/network/dependents?package_id=UGFja2FnZS0xNzk4MzkxNTI%3D">900 repositories</a> that have dependencies on
the UIMA Java SDK core.
</p>
<p>In 2018, the internals of the UIMA Java framework were redesigned for a tighter integration with Java
including for example,
<a target="_blank" rel="nofollow noopener"
href="https://uima.apache.org/d/uimaj-current/version_3_users_guide.html#uv3.select.terminal_form_actions.streams">Java Streams</a>
support for working with annotations, and for
supporting higher performance on modern processors with memory caches. This is available as Version 3.x.x
of the UIMA Java SDK, and associated components. Version 2 continues to be supported, but new work should
use version 3. </p>
<p>An extensive rule-based scripting language
(<a href="ruta.html">RUTA</a>), an associated analysis engine built on top of UIMA, and an Eclipse-based tooling workbench for interactively
developing and testing the rules, is part of this project.
</p>
<p>
Additional infrastructure support components include a <a href="sandbox.html#simple-server">simple
server</a> that can receive REST requests and return annotation results,
for use by other web services.
</p>
<p>The <a href="sandbox.html">Addons and Sandbox</a> is for Addons (Annotators and other things) for UIMA, and
a place where new ideas are developed for potential incorporation into the project.
</p>
</section>
<section name="UIMA News">
<p>Click <a href="news.html">News</a> for a listing of releases and other news.</p>
</section>
</body>
</document>