---
layout: default
---

<!--
 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.
-->

<!--suppress CheckImageSize -->
<div id="banner-box" class="bottom-arrow">
    <div id="inner-banner-box">
        <div id="banner">
            <div id="nat-lang-itf">Apache NLPCraft</div>
            <h1 id="banner-sub-title">An API to convert natural language into actions</h1>
            <div>
                <a id="get-started-btn" role="button" href="docs.html" class="btn mt-5">🤘 GET STARTED 🤘</a>
            </div>
        </div>
    </div>
</div>

<div id="about-nlpcraft" class="bottom-arrow main-section">
    <div class="container-fluid">
        <div class="row">
            <div class="col-4">
                <h2 class="section-title">What Is <span>NLPCraft</span></h2>
                <section>
                    <p>
                        Apache NLPCraft&reg; is an open source library for adding natural language Interface
                        to modern applications. It enables people to interact with your products using voice
                        or text.
                    </p>
                    <p>
                        Define the intents to interpret
                        user input using any JVM-based language like Java, Scala, Groovy or Kotlin. Use REST API to
                        integrate with your products.
                    </p>
                    <div class="learn-more">
                        <a href="docs.html">Learn more <i class="align-text-bottom fas fa-angle-right"></i></a>
                    </div>
                </section>
            </div>
            <div class="col-4">
                <h2 class="section-title">Natural <span>Language</span></h2>
                <section>
                    <p>
                        Natural Language Interface enables users to interact with any type of products
                        using natural language augmenting existing UI/UX with fidelity
                        and simplicity of a familiar spoken language.
                    </p>
                    <p>
                        Natural Language has no learning curve, no special rules or UI to master, no cumbersome syntax or terms to remember -
                        it's just a natural interface that your users already know.
                    </p>
                </section>
            </div>
            <div class="col-4">
                <h2 class="section-title">Quick <span>Links</span></h2>
                <section>
                    <div class="quick-link" >
                        <a href="https://github.com/apache/incubator-nlpcraft" target="github">
                            <img
                                class="quick-link-img"
                                src="/images/github_logo-h32.png" alt="">
                        </a>
                        <div class="gh-btn">
                            <a
                                class="github-button"
                                href="https://github.com/apache/incubator-nlpcraft/subscription"
                                data-icon="octicon-eye"
                                aria-label="Watch on GitHub">Watch</a>
                        </div>
                        <div class="gh-btn">
                            <a
                                class="github-button"
                                href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples"
                                aria-label="NLPCraft examples on GitHub">Examples</a>
                        </div>
                        <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a>
                    </div>
                    <div class="quick-link" >
                        <a href="/apis/latest/index.html" target="_">
                            <img alt="" class="quick-link-img" src="/images/java-h32.png">
                            <span class="txt">Latest&nbsp;</span>
                            <a target="_" href="https://javadoc.io/doc/org.apache.nlpcraft/nlpcraft"><img src="https://javadoc.io/badge/org.apache.nlpcraft/nlpcraft.svg" alt="Javadocs"></a>
                        </a>
                        <a href="https://app.swaggerhub.com/apis-docs/Apache-NLPCraft/apache-nlpcraft/{{site.latest_version}}" target="swaggerhub" style="margin-left: 20px">
                            <img alt="" class="quick-link-img" src="/images/swagger-h32.png"><span class="txt">REST API</span>
                        </a>
                    </div>
                    <div class="quick-link">
                        <img alt="" class="quick-link-img" src="/images/apache_20_logo2-h32.png">
                        <a target="asf" href="https://www.apache.org/licenses/"><span class="txt">License</span></a>
                        <span class="sep">•</span>
                        <a target="asf" href="https://www.apache.org/security"><span class="txt">Security</span></a>
                        <span class="sep">•</span>
                        <a target="asf" href="https://www.apache.org/foundation/thanks.html"><span class="txt">Thanks</span></a>
                        <span class="sep">•</span>
                        <a target="asf" href="https://www.apache.org/foundation/sponsorship.html"><span class="txt">Sponsorship</span></a>
                    </div>
                </section>
            </div>
        </div>
    </div>
</div>

<div id="home-events" class="bottom-arrow main-section">
    <div class="container-fluid">
        <div class="row">
            <div class="col-12">
                <h2 class="section-title">NLPCraft <span>Events</span></h2>
            </div>
        </div>
        <div id="event-container" class="row">
            {% for event in site.data.events  limit:4%}
            <div class="col-4">
                <div class="event-logo">
                    <img class="event-logo" src="{{ event.event_logo_url | relative_url}}" alt="">
                </div>
                <div class="event-name">
                    <a href="{{ event.event_url }}" target=_new>{{ event.event_name }}</a>
                    {% if event.event_twitter_id %}<a target="twitter" href="https://twitter.com/{{ event.event_twitter_id}}"><i class="fab fa-fw fa-twitter"></i></a>{% endif %}
                </div>
                <div class="event-loc">
                    Location: {{ event.event_loc }}
                </div>
                <div class="event-date">
                    Dates: {{ event.event_date }}
                </div>
                <div class="event-link">
                    URL: <a href="{{ event.event_url }}" target=_new>{{ event.event_url }}</a>
                </div>
            </div>
            {% endfor %}
        </div>
        <div class="learn-more">
            <a href="resources.html">Learn More <i class="align-text-bottom fas fa-angle-right"></i></a>
        </div>
    </div>
</div>

<div id="features" class="bottom-arrow main-section">
    <div class="container-fluid">
        <div class="row">
            <div class="col-12">
                <h2 class="section-title">Key <span>Features</span></h2>
            </div>
        </div>
        <div class="row">
            <div class="col-4">
                <h3 class="sub-section-title">Intent Definition Language</h3>
                <section>
                    <p>
                        Advanced <a href="/intent-matching.html">Intent Definition Language</a> (IDL) coupled with deterministic intent matching
                        provide ease of use and unprecedented expressiveness for developing non-trivial intent comprehension.
                    </p>
                </section>
            </div>
            <div class="col-4">
                <h3 class="sub-section-title">Composable Named Entities</h3>
                <section>
                    <p>
                        Easily compose, mix and match new named entities out of built-in or external ones, creating new
                        reusable named entity recognizers on the fly.
                    </p>
                </section>
            </div>
            <div class="col-4">
                <h3 class="sub-section-title">Short-Term-Memory</h3>
                <section>
                    <p>
                        Advanced out-of-the-box support for maintaining and managing conversational context that is fully
                        integrated with intent matching.
                    </p>
                </section>
            </div>
        </div>
        <div class="row mt-4">
            <div class="col-4">
                <h3 class="sub-section-title">Java-First</h3>
                <section>
                    <p>
                        REST API and Java-based implementation natively
                        supports the world's largest ecosystem of development tools, programming languages, frameworks
                        and services.
                    </p>
                    <div id="lang-logos">
                        <a target=_ href="https://www.oracle.com/java/"><img src="/images/java2-h32.png" alt=""></a>
                        <a target=_ href="https://scala-lang.org/"><img src="/images/scala-logo-h24.png" alt=""></a>
                        <a target=_ href="https://groovy-lang.org/"><img src="/images/groovy-h32.png" alt=""></a>
                        <a target=_ href="https://kotlinlang.org/"><img src="/images/kotlin-h32.png" alt=""></a>
                    </div>
                </section>
            </div>
            <div class="col-4">
                <h3 class="sub-section-title">Any Data Source</h3>
                <section>
                    <p>
                        NLPCraft supports any data source, device, or service - public or private. From databases and SaaS systems,
                        to smart home devices, voice assistants and chatbots.
                    </p>
                </section>
            </div>
            <div class="col-4">
                <h3 class="sub-section-title">Model-As-A-Code</h3>
                <section>
                    <p>
                        Everything you do with NLPCraft is part of your source code. No more awkward web UIs
                        splitting your logic across different incompatible places. Model-as-a-code is built by
                        engineers, and it reflects how engineers work.
                    </p>
                </section>
            </div>
        </div>
        <div class="row mt-4">
            <div class="col-4">
                <h3 class="sub-section-title">By Devs - For Devs</h3>
                <section>
                    <p>
                        Built with a singular focus - provide state-of-the-art developers with unprecedented productivity and efficiency when building
                        modern natural language applications.
                    </p>
                </section>
            </div>
            <div class="col-4">
                <h3 class="sub-section-title">English Focused</h3>
                <section>
                    <p>
                        NLPCraft focuses on processing English language delivering the ease of use
                        and unparalleled comprehension for the language spoken by more than a billion people.
                    </p>
                </section>
            </div>
            <div class="col-4">
                <h3 class="sub-section-title">Out-Of-The-Box Integration</h3>
                <section>
                    <p>
                        NLPCraft natively <a href="/integrations.html">integrates</a> with 3rd party libraries for basic NLP processing
                        and named entity recognition:
                    </p>
                    <div id="integration-logos">
                        <a target=_ href="https://opennlp.apache.org"><img src="/images/opennlp-logo-h32.png" alt=""></a>
                        <a target=_ href="https://cloud.google.com/natural-language/"><img src="/images/google-cloud-logo-small-h32.png" alt=""></a>
                        <a target=_ href="https://stanfordnlp.github.io/CoreNLP"><img src="/images/corenlp-logo-h48.png" alt=""></a>
                        <a target=_ href="https://spacy.io"><img src="/images/spacy-logo-h32.png" alt=""></a>
                    </div>
                </section>
            </div>
        </div>
        <div class="learn-more">
            <a href="docs.html">Learn more <i class="align-text-bottom fas fa-angle-right"></i></a>
        </div>
    </div>
</div>

<div id="news" class="bottom-arrow main-section">
    <div class="container-fluid">
        <div class="row">
            <div class="col-12">
                <h2 class="section-title">Latest <span>News</span></h2>
            </div>
        </div>
        <div id="news-container" class="row">
            {% for news in site.data.news limit:3%}
            <div class="col-4">
                <div class="news-title">
                    <a href="{{ news.url }}" target={{ news.href_target }}>
                        {{ news.title }}
                    </a>
                </div>
                <div class="news-excerpt">
                    <a target={{ news.href_target }} href="{{ news.url }}">{{ news.excerpt}}</a>
                </div>
                <div class="news-footer">
                    {% if news.avatar_url %}<img class="avatar-img" src="{{ news.avatar_url | relative_url}}" alt="">{% endif %}
                    {% if news.author %}{{ news.author }}{% endif %}
                    {% if news.linkedin_id %}<a target="linkedin" href="https://www.linkedin.com/in/{{ news.linkedin_id}}/"><i class="fab fa-fw fa-linkedin"></i></a>{% endif %}
                    {% if news.medium_id %}<a target="medium" href="https://medium.com/@{{ news.medium_id}}"><i class="fab fa-fw fa-medium"></i></a>{% endif %}
                    {% if news.twitter_id %}<a target="twitter" href="https://twitter.com/{{ news.twitter_id}}"><i class="fab fa-fw fa-twitter"></i></a>{% endif %}
                    <span class="text-nowrap">{{ news.publish_date }}</span>
                </div>
            </div>
            {% endfor %}
        </div>
        <div class="learn-more">
            <a href="resources.html">News <i class="align-text-bottom fas fa-angle-right"></i></a>
        </div>
    </div>
</div>

<div id="about" class="bottom-arrow main-section">
    <div class="container-fluid">
        <div id="about-container" class="row">
            <div class="col-7" style="margin-top: 50px;">
                <p>
                    <a href="https://www.apache.org/licenses/LICENSE-2.0" target=_><img src="/images/asf20-h64.png" alt=""></a>
                </p>
                <p>
                    Apache NLPCraft is an effort undergoing incubation at The Apache Software Foundation (ASF),
                    sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a
                    further review indicates that the infrastructure, communications, and decision making process have
                    stabilized in a manner consistent with other successful ASF projects.
                </p>
                <p>
                    While incubation status is not
                    necessarily a reflection of the completeness or stability of the code, it does indicate that the
                    project has yet to be fully endorsed by the ASF. Licensed under the Apache License, Version 2.0.
                    Apache NLPCraft, Apache, the Apache feather, and the Apache NLPCraft project logo are either
                    trademarks or registered trademarks of the Apache Software Foundation.
                </p>
            </div>
            <div class="col-5" style="max-width: 500px; margin: auto; padding-top: 50px;">
                <a class="twitter-timeline"
                   data-height="400"
                   data-theme="light"
                   data-cards="hidden"
                   href="https://twitter.com/ApacheNLPCraft">Tweets by ApacheNLPCraft</a> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
                <a href="https://twitter.com/apachenlpcraft"
                   class="twitter-follow-button" data-size="large" data-show-count="false">Follow @apachenlpcraft</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
            </div>
        </div>
    </div>
</div>



