<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Source Code - Apache OpenNLP</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="color-scheme" content="dark light">
    <meta name="description" content="Apache OpenNLP  is a machine learning based toolkit for the processing of natural language text." />
    <meta name="author" content="The Apache OpenNLP Team" />
    <meta name="keywords" content="java, natural language processing, nlp, apache, open source, web site" />
    <meta name="generator" content="JBake"/>
    
    <!-- RSS Feed -->
    <link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.xml" />

    <!-- Favicon -->
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="manifest" href="/manifest.json">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
    <meta name="theme-color" content="#ffffff">

    <!-- The styles -->
    <link href="/css/bootstrap.min.css" rel="stylesheet">
    <link href="/css/font-awesome.min.css" rel="stylesheet">
    <link href="/css/asciidoctor.css" rel="stylesheet">
    <link href="/css/prettify.css" rel="stylesheet">
    <link href="/css/custom-style.css" rel="stylesheet">
    <link href="/css/scheme-light.css" rel="stylesheet">
    <link href="/css/scheme-dark.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="/js/html5shiv.js"></script>
    <![endif]-->
</head>
<body onload="prettyPrint()">
<span class="visible-lg">
<a href="https://github.com/apache/opennlp"><img style="z-index: 9999; position: absolute; top: 0; right: 0; border: 0;" src="/img/fork-me-on-github.png" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a>
</span>

<nav class="navbar navbar-default">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-items" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">
                <img alt="Brand" src="/img/opennlp-navbar-logo.png" class="img-responsive" width="100px" style="position: relative; top: -3px;">
            </a>
        </div>

        <div class="collapse navbar-collapse" id="navbar-items">
            <ul class="nav navbar-nav">
                <li>
                    <a href="/"><span class="glyphicon glyphicon-home"></span> Home</a>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-download-alt"></span> Download <b class="caret"></b></a>
                    <ul class="dropdown-menu">
		                <li><a href="/download.html">OpenNLP Releases</a></li>
                        <li><a href="/models.html">OpenNLP Models</a></li>
		                <li><a href="/maven-dependency.html">Maven Integration</a></li>
		                <li><a href="/gradle-dependency.html">Gradle Integration</a></li>
		            </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-flag"></span> General <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        
                        <li><a href="/news/">News</a></li>
			            <li><a href="https://blogsarchive.apache.org/#opennlp" target="_blank">Blog</a></li>
                        <li><a href="/mailing-lists.html">Mailing Lists</a></li>
                        <li><a href="https://issues.apache.org/jira/browse/OPENNLP" target="_blank">Issue tracker</a></li>
                        <li><a href="/books-tutorials-and-talks.html">Books, Tutorials and Talks</a></li>
                        <li><a href="/powered-by-opennlp.html">Powered by Apache OpenNLP</a></li>
                        
                    </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Documentation <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/docs/">Manual and Javadocs</a></li>
                        <li><a href="/faq.html">FAQ</a></li>
                        <li><a href="https://cwiki.apache.org/OPENNLP" target="_blank">Wiki</a></li>
                    </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-console"></span> Development <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/get-involved.html">Get Involved</a></li>
                        <li><a href="/source-code.html">Source Code</a></li>
                        <li><a href="/using-git.html">Using Git</a></li>
                        <li><a href="/building.html">Building</a></li>
                        <li><a href="/code-conventions.html">Code Conventions</a></li>
                        <li><a href="/release.html">Release</a></li>
                        <li><a href="/release-model.html">Release Models</a></li>
                        <li><a href="/team.html">Project Team</a></li>
                    </ul>
                </li>

            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-leaf"></span> ASF <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="https://www.apache.org/">The Apache Software Foundation</a></li>
                        <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                        <li><a href="https://www.apache.org/security/">Security</a></li>
                        <li><a href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                    </ul>
                </li>
            </ul>
        </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
</nav>

<div class="container">
    <h1 class="title">Source Code</h1>

    <div class="sect1">
<h2 id="github_mirror_access">GitHub Mirror Access</h2>
<div class="sectionbody">
<div class="paragraph">
<p>View the code, fork and send pull requests on Github:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><a href="https://github.com/apache/opennlp" target="_blank" rel="noopener">Github opennlp</a></p>
</li>
<li>
<p><a href="https://github.com/apache/opennlp-site" target="_blank" rel="noopener">Github opennlp-site</a></p>
</li>
<li>
<p><a href="https://github.com/apache/opennlp-addons" target="_blank" rel="noopener">Github opennlp-addons</a></p>
</li>
<li>
<p><a href="https://github.com/apache/opennlp-sandbox" target="_blank" rel="noopener">Github opennlp-sandbox</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="apache_git_repository">Apache Git Repository</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Git repositories can be checked out with these commands:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>git clone <a href="https://github.com/apache/opennlp" class="bare">https://github.com/apache/opennlp</a></code></p>
</li>
<li>
<p><code>git clone <a href="https://github.com/apache/opennlp-site.git" class="bare">https://github.com/apache/opennlp-site.git</a></code></p>
</li>
<li>
<p><code>git clone <a href="https://github.com/apache/opennlp-addons.git" class="bare">https://github.com/apache/opennlp-addons.git</a></code></p>
</li>
<li>
<p><code>git clone <a href="https://github.com/apache/opennlp-sandbox.git" class="bare">https://github.com/apache/opennlp-sandbox.git</a></code></p>
</li>
</ul>
</div>
</div>
</div>

</div>

    <footer class='footer'>
        <div class="container">
            <p class="text-muted">Copyright &copy; 2024  The Apache Software Foundation, Licensed under the
            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>  <br>
            Apache OpenNLP, OpenNLP, Apache, the Apache feather logo, and the Apache OpenNLP project logo are
            trademarks of The Apache Software Foundation. -
            <a href="/privacy-policy.html">Privacy Policy</a></p>
        </div>
    </footer>

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
    <script src="/js/jquery-3.2.1.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>
    <script src="/js/prettify.js"></script>
    
    <script type="text/javascript">

      var link = $('a[href="' + this.location.pathname + '"]');
      if (link != undefined)
    	  link.parents('li,ul').addClass('active');
	
	</script>

    <!-- Matomo -->
    <script>
        var _paq = window._paq = window._paq || [];
        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
        /* We explicitly disable cookie tracking to avoid privacy issues */
        _paq.push(['disableCookies']);
        _paq.push(['trackPageView']);
        _paq.push(['enableLinkTracking']);
        (function() {
            var u="//analytics.apache.org/";
            _paq.push(['setTrackerUrl', u+'matomo.php']);
            _paq.push(['setSiteId', '33']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
        })();
    </script>
    <!-- End Matomo Code -->
</body>
</html>