blob: 4ea6cae0b784d3b60c09a15f5faec06f060f80f0 [file] [log] [blame]
---
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 <i class="ml-2 fas fa-angle-right"></i></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="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="howitworks" class="bottom-arrow main-section">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<h2 class="section-title">How <span>It Works</span></h2>
</div>
</div>
<div class="row d-flex flex-wrap align-items-center">
<div class="col-6">
<section>
<p>
There are three main software components:
</p>
<p>
<b>Data model</b> provides named entities, configuration properties and intents.
Developers use model-as-a-code approach
to build models using any JVM language like Java, Scala, Groovy or Kotlin.
</p>
<p>
<b>Data probe</b> is a DMZ-deployed application designed to securely
deploy and manage data models. Each probe can manage multiple models and you can
have many probes.
</p>
<p>
<b>REST server</b> provides REST endpoint for end-user applications to securely query data
sources using natural language via data models deployed in data probes.
</p>
</section>
</div>
<div class="col-6">
<div style="text-align: center">
<img class="img-fluid" src="/images/homepage-fig1.1.png" alt="">
</div>
</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="blogs.html">Blog <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>