blob: 79583f8d61749e34404fb2ff489c79bb735e3f21 [file] [log] [blame]
<!--
***************************************************************
* 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.
***************************************************************
-->
<html>
<head>
<title>Apache UIMA v3.0.0-beta Release Notes</title>
</head>
<body>
<h1>Apache UIMA (Unstructured Information Management Architecture) v3.0.0-beta Release Notes</h1>
<h2>Contents</h2>
<p>
<a href="#beta">Beta release status notice</a><br/>
<a href="#what.is.uima">What is UIMA?</a><br/>
<a href="#major.changes">Major Changes in this Release</a><br/>
<a href="#get.involved">How to Get Involved</a><br/>
<a href="#report.issues">How to Report Issues</a><br/>
<a href="#list.issues">List of JIRA Issues Fixed in this Release</a><br/>
</p>
<h2><a id="beta">0. Beta release status</a></h2>
<p>This is the Beta release of 3.0.0; the next release is planned to be
the official 3.0.0 release. The beta release is being done in order to expand the
community of people doing testing on this new release.
The APIs at this point are expected to be stable.</p>
<h2><a id="what.is.uima">1. What is UIMA?</a></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. UIMA is a framework and
SDK for developing such applications. 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. UIMA enables
such an application 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 must implement interfaces defined
by the framework and must provide 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. 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 (that
specification is, in turn, being developed concurrently
by a technical committee within
<a href="http://www.oasis-open.org">OASIS</a>,
a standards organization). We invite and encourage you
to participate in both the implementation and
specification efforts.
</p>
<p>
UIMA is a component framework for analysing unstructured
content such as text, audio and video. It comprises an
SDK and tooling for composing and running analytic
components written in Java and C++, with some support
for Perl, Python and TCL.
</p>
<h2><a id="major.changes">Major Changes in this Release</a></h2>
<p>Version 3 is a major reimplementation of the internals of
the Java version of UIMA to support better integration with
Java 8, alignment with modern memory hierarchies for
better performance, and multiple functional enhancements and
improvements.</p>
<p>
If non-built-in JCas cover classes are being used,
a one-time regeneration or migration step is required for these.
Please read the Version 3 users guide located in the docs directory
for information on these changes and the migration tool which can
aid in migrating existing JCas class definitions.
</p>
<p>A very brief summary of Version 3:</p>
<ul><li>Feature Structures become Java Objects,
subject to Garbage Collection, just like any other objects,
when no longer reachable.</li>
<li>Iterating over indexes no longer throws
ConcurrentModificationException.</li>
<li>Support for arbitrary Java Objects in the CAS,
using special custom implementations of JCas cover classes for those.</li>
<li>Using the above new capability, new semi-built-ins for three new types: ArrayList style
lists of Feature Structures and ints, and an FSHashSet</li>
<li>New "select" framework for flexible
access to Feature Structures, that can ignore typeOrdering keys in indexes.</li>
<li>Integration with Java 8 facilities such as Streams</li>
<li>Logging framework upgraded, supporting embedding UIMA in other frameworks using
popular logging APIs</li>
<li>There are many performance improvements</li>
</ul>
<p>Please read the Version 3 users guide for more details.</p>
<p>Specific changes in this release versus the previous alpha02 release include</p>
<ul>
<li>The use of generic typing was improved.
<li>Fixed the Eclipse launcher in the examples project that's part of the binary distribution to properly
launch the v3-migration tool.</li>
<li>The UIMA built-in arrays and lists implement iterable and stream, with appropriate capabilities
for generic type specification.</li>
<li>Eclipse plugins are now Jar-signed.</li>
<li>Renamed some methods to create UIMA arrays and lists from createFromArray to create</li>
<li>Added missing methods to logger interface to support Supplier argument.</li>
<li>The launchers for the normal UIMA Tooling default to specifying the built-in-to-Java logging framework.</li>
<li>The launchers were modified to support Java-style wild-card notation in the classpath.</li>
<li>Fix for permissions on Linux for API Change Report.</li>
<li>Restore a v2 method needed for backwards compatibility</li>
<li>Improve the migration tool's use of classpath and error reporting</li>
<li>Changes in the support for External Override Settings location were incorporated</li>
<li>Fixes incorporated into UIMA 2.10.1 are included.</li>
<li>Made JCas loading more permissive - no longer need to have the type system committed before loading</li>
<li>JCasGen - add missing imports</li>
<li>renamed the methods for getting empty UIMA arrays and lists to emptyXxxx form</li>
<li>add methods supporting extended-for over all FSs in views</li>
<li>several bugs fixed - see issues fixed, for all issues after 18 Sept 2017</li>
</ul>
<h3>API changes</h3>
<p>There is an API compatibility report covering the non-internal APIs;
see <a href="api-change-report.html">change report</a> for the list of API changes
since version 2.10.1.
</p>
<h2><a id="list.issues">Full list of JIRA Issues affecting this Release</a></h2>
Click <a href="issuesFixed/jira-report.html">issuesFixed/jira-report.hmtl</a> for the list of
issues affecting this release.
<h2><a id="beta">Beta Release</a></h2>
<p>This is a beta release of version 3.0.0, being made to get
wider community involvement in testing and feedback.
At this point, the APIs are not expected to change, and features
should be frozen.</p>
<p>Please use the mailing lists
( http://uima.apache.org/mail-lists.html )
for feedback.</p>
<h2><a id="get.involved">How to Get Involved</a></h2>
<p>
The Apache UIMA project really needs and appreciates any contributions,
including documentation help, source code and feedback. If you are interested
in contributing, please visit
<a href="http://uima.apache.org/get-involved.html">
http://uima.apache.org/get-involved.html</a>.
</p>
<h2><a id="report.issues">How to Report Issues</a></h2>
<p>
The Apache UIMA project uses JIRA for issue tracking. Please report any
issues you find at
<a href="http://issues.apache.org/jira/browse/uima">http://issues.apache.org/jira/browse/uima</a>
</p>
</body>
</html>