blob: 59d38080b28066826acdd1066dfae6a4992dd102 [file] [log] [blame]
---
active_crumb: Docs
layout: documentation
id: overview
---
<!--
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.
-->
<div class="col-md-8 second-column">
<section id="overview">
<h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Apache NLPCraft is a Scala3-based <a target=_blank href="https://www.apache.org/licenses/">open source</a> library
for adding a natural language interface to modern applications. It allows you to build applications that people can
interact with using a natural language augmenting existing UI/UX with fidelity and simplicity of a familiar
spoken language. Natural Language has no learning curve, no special rules or cumbersome syntax to master - it's
a natural interface that your users already know.
</p>
<h2 class="section-sub-title">Deterministic Intent Matching <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft is designed around an advanced
<a href="/intent-matching.html">Intent Definition Language</a> (IDL) for defining non-trivial intents and a
<em>fully deterministic</em> intent matching algorithm for the input sentences. Full determinism of the NLPCraft is its
unique capability in contrast to many ML-based approaches that only provide statistical answer without full
guarantee or traceability. Full determinism makes NLPCraft an ideal tool for domain-specific natural language
application like command-and-control or mission critical systems vis-a-vis common language comprehension
tools like ChatGPT. NLPCraft is also an ideal library for use cases where execution proof or traceability is
required, e.g. blockchain decentralized applications.
</p>
<h2 class="section-sub-title">Data Access <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
On the backend NLPCraft places no restrictions on what data it can access.
NLPCraft can connect with any private or public data source that a typical Scala-based application can access,
and has no hardware or software lock-ins.
</p>
<h2 class="section-sub-title">Supported Languages <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft is language agnostic and can work with most modern languages that have basic NLP infrastructure available like
English, French, German, Spanish, Russian, etc. Note that NLPCraft does not provide its own low-level NLP plumbing
like stemmatization and lemmatization and relies on 3rd party libraries like
<a href="https://opennlp.apache.org/" target="_blank">OpenNLP</a> or
<a href="https://nlp.stanford.edu/" target="_blank">StanfordNLP</a> to be
configured to provide that functionality.
</p>
</section>
</div>
<div class="col-md-2 third-column">
<ul class="side-nav">
<li class="side-nav-title">On This Page</li>
<li><a href="#overview">Overview</a></li>
{% include quick-links.html %}
</ul>
</div>