<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_141) on Mon Sep 11 09:09:19 CEST 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Index (Apache OpenNLP Brat Annotator 1.8.2 API)</title>
<meta name="date" content="2017-09-11">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Index (Apache OpenNLP Brat Annotator 1.8.2 API)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="opennlp/bratann/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="opennlp/bratann/package-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="contentContainer"><a href="#I:F">F</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a name="I:F">
<!--   -->
</a>
<h2 class="title">F</h2>
<dl>
<dt><span class="memberNameLink"><a href="opennlp/bratann/NameFinderResource.html#findNames-java.lang.String-java.lang.String-">findNames(String, String)</a></span> - Method in class opennlp.bratann.<a href="opennlp/bratann/NameFinderResource.html" title="class in opennlp.bratann">NameFinderResource</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:M">
<!--   -->
</a>
<h2 class="title">M</h2>
<dl>
<dt><span class="memberNameLink"><a href="opennlp/bratann/NameFinderAnnService.html#main-java.lang.String:A-">main(String[])</a></span> - Static method in class opennlp.bratann.<a href="opennlp/bratann/NameFinderAnnService.html" title="class in opennlp.bratann">NameFinderAnnService</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:N">
<!--   -->
</a>
<h2 class="title">N</h2>
<dl>
<dt><span class="memberNameLink"><a href="opennlp/bratann/NameFinderResource.NameAnn.html#NameAnn--">NameAnn()</a></span> - Constructor for class opennlp.bratann.<a href="opennlp/bratann/NameFinderResource.NameAnn.html" title="class in opennlp.bratann">NameFinderResource.NameAnn</a></dt>
<dd>&nbsp;</dd>
<dt><a href="opennlp/bratann/NameFinderAnnService.html" title="class in opennlp.bratann"><span class="typeNameLink">NameFinderAnnService</span></a> - Class in <a href="opennlp/bratann/package-summary.html">opennlp.bratann</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="opennlp/bratann/NameFinderAnnService.html#NameFinderAnnService--">NameFinderAnnService()</a></span> - Constructor for class opennlp.bratann.<a href="opennlp/bratann/NameFinderAnnService.html" title="class in opennlp.bratann">NameFinderAnnService</a></dt>
<dd>&nbsp;</dd>
<dt><a href="opennlp/bratann/NameFinderResource.html" title="class in opennlp.bratann"><span class="typeNameLink">NameFinderResource</span></a> - Class in <a href="opennlp/bratann/package-summary.html">opennlp.bratann</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="opennlp/bratann/NameFinderResource.html#NameFinderResource--">NameFinderResource()</a></span> - Constructor for class opennlp.bratann.<a href="opennlp/bratann/NameFinderResource.html" title="class in opennlp.bratann">NameFinderResource</a></dt>
<dd>&nbsp;</dd>
<dt><a href="opennlp/bratann/NameFinderResource.NameAnn.html" title="class in opennlp.bratann"><span class="typeNameLink">NameFinderResource.NameAnn</span></a> - Class in <a href="opennlp/bratann/package-summary.html">opennlp.bratann</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="opennlp/bratann/NameFinderAnnService.html#nameFinders">nameFinders</a></span> - Static variable in class opennlp.bratann.<a href="opennlp/bratann/NameFinderAnnService.html" title="class in opennlp.bratann">NameFinderAnnService</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:O">
<!--   -->
</a>
<h2 class="title">O</h2>
<dl>
<dt><a href="opennlp/bratann/package-summary.html">opennlp.bratann</a> - package opennlp.bratann</dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:S">
<!--   -->
</a>
<h2 class="title">S</h2>
<dl>
<dt><span class="memberNameLink"><a href="opennlp/bratann/NameFinderAnnService.html#sentenceDetector">sentenceDetector</a></span> - Static variable in class opennlp.bratann.<a href="opennlp/bratann/NameFinderAnnService.html" title="class in opennlp.bratann">NameFinderAnnService</a></dt>
<dd>&nbsp;</dd>
</dl>
<a name="I:T">
<!--   -->
</a>
<h2 class="title">T</h2>
<dl>
<dt><span class="memberNameLink"><a href="opennlp/bratann/NameFinderAnnService.html#tokenizer">tokenizer</a></span> - Static variable in class opennlp.bratann.<a href="opennlp/bratann/NameFinderAnnService.html" title="class in opennlp.bratann">NameFinderAnnService</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="#I:F">F</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="opennlp/bratann/package-summary.html">Package</a></li>
<li>Class</li>
<li><a href="opennlp/bratann/package-tree.html">Tree</a></li>
<li><a href="deprecated-list.html">Deprecated</a></li>
<li class="navBarCell1Rev">Index</li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
