This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft-website.git
The following commit(s) were added to refs/heads/master by this push:
new 1a257e7 WIP.
1a257e7 is described below
commit 1a257e7f8b7ec01e4109805e809a7584d83bf694
Author: Aaron Radzinzski <[email protected]>
AuthorDate: Fri Apr 16 09:21:23 2021 +0300
WIP.
---
_scss/misc.scss | 7 +-
basic-concepts.html | 10 +-
blogs/composable_named_entities.html | 6 +-
blogs/quick_intro_apache_nlpcraft.html | 18 +-
blogs/short_term_memory.html | 18 +-
community.html | 14 +-
data-model.html | 36 ++--
docs.html | 8 +-
download.html | 16 +-
examples/alarm_clock.html | 18 +-
examples/light_switch.html | 18 +-
examples/sql_model.html | 22 +-
examples/weather_bot.html | 20 +-
first-example.html | 14 +-
getting-started.html | 8 +-
installation.html | 8 +-
integrations.html | 20 +-
intent-matching.html | 353 ++++++++++++++++++++++++++-------
metrics-and-tracing.html | 10 +-
relnotes/release-notes-0.5.0.html | 6 +-
relnotes/release-notes-0.6.2.html | 6 +-
relnotes/release-notes-0.7.0.html | 8 +-
relnotes/release-notes-0.7.1.html | 8 +-
relnotes/release-notes-0.7.2.html | 8 +-
relnotes/release-notes-0.7.3.html | 8 +-
relnotes/release-notes-0.7.4.html | 8 +-
server-and-probe.html | 14 +-
tools/embedded_probe.html | 4 +-
tools/script.html | 8 +-
tools/sql_model_gen.html | 6 +-
tools/syn_tool.html | 4 +-
tools/test_framework.html | 8 +-
using-rest.html | 12 +-
33 files changed, 473 insertions(+), 259 deletions(-)
diff --git a/_scss/misc.scss b/_scss/misc.scss
index 1f84762..1113453 100644
--- a/_scss/misc.scss
+++ b/_scss/misc.scss
@@ -337,10 +337,15 @@ $bq-success-border-color: $brand-success;
}
}
-.recover_bottom_margin {
+.recover-bottom-margin {
margin-bottom: 16px;
}
+i.top-link {
+ font-size: 60%;
+ color: $color-turquoise;
+}
+
.max-width {
width: 100%;
}
diff --git a/basic-concepts.html b/basic-concepts.html
index 1d8d426..89b20c9 100644
--- a/basic-concepts.html
+++ b/basic-concepts.html
@@ -23,7 +23,7 @@ id: basic_concepts
<div id="basic-concepts" class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Basic Concepts</h2>
+ <h2 class="section-title">Basic Concepts <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Below we’ll cover some of the key concepts that are important for
NLPCraft:
</p>
@@ -35,7 +35,7 @@ id: basic_concepts
</ul>
</section>
<section id="model">
- <h3 class="section-sub-title">Data Model</h3>
+ <h2 class="section-sub-title">Data Model <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Data model is a central concept in NLPCraft. It defines natural
language interface to your public or
private data sources like on-premise database or a cloud SaaS
application.
@@ -62,7 +62,7 @@ id: basic_concepts
</p>
</section>
<section id="ne">
- <h3 class="section-sub-title">Named Entities</h3>
+ <h2 class="section-sub-title">Named Entities <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Named entity, also known as a model element or a token, is main a
component defined by the NLPCraft data model. A named
entity is one or more individual words that have a consistent
semantic meaning and typically denote a
@@ -132,7 +132,7 @@ id: basic_concepts
</p>
</section>
<section id="intent">
- <h3 class="section-sub-title">Intent Matching</h3>
+ <h2 class="section-sub-title">Intent Matching <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You can think of intent matching as regular expression matching
where instead of characters you deal with detected named entities.
Intent defines a pattern in terms of detected named entities (or
tokens) and a callback to call when submitted sentence
@@ -155,7 +155,7 @@ id: basic_concepts
</p>
</section>
<section id="stm">
- <h3 class="section-sub-title">Conversation <span
class="amp">&</span> STM</h3>
+ <h2 class="section-sub-title">Conversation <span
class="amp">&</span> STM <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<div class="bq info">
<b>Short-Term Memory</b>
<p>
diff --git a/blogs/composable_named_entities.html
b/blogs/composable_named_entities.html
index cdb815d..5cf932f 100644
--- a/blogs/composable_named_entities.html
+++ b/blogs/composable_named_entities.html
@@ -62,7 +62,7 @@ publish_date: January 20, 2021
</p>
</section>
<section>
- <h2 class="section-title">NER Providers</h2>
+ <h2 class="section-title">NER Providers <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Let's take a look at several well-known NLP libraries that provide
built-in NER components.
</p>
@@ -161,7 +161,7 @@ publish_date: January 20, 2021
</p>
</section>
<section>
- <h2 class="section-title">Additional Capabilities of Apache NLPCraft</h2>
+ <h2 class="section-title">Additional Capabilities of Apache NLPCraft <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Let’s take a look at what Apache NLPCraft brings different or
additional to the table.
</p>
@@ -180,7 +180,7 @@ publish_date: January 20, 2021
</p>
</section>
<section>
- <h2 class="section-title">Reusable <span class="amp">&</span>
Composable Named Entities</h2>
+ <h2 class="section-title">Reusable <span class="amp">&</span>
Composable Named Entities <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<p>
Apache NLPCraft is the first project that provides direct support for
composable named entities - named entities
that are defined in terms of other (constituent or part) entities.
diff --git a/blogs/quick_intro_apache_nlpcraft.html
b/blogs/quick_intro_apache_nlpcraft.html
index c65a017..5e12a4b 100644
--- a/blogs/quick_intro_apache_nlpcraft.html
+++ b/blogs/quick_intro_apache_nlpcraft.html
@@ -42,7 +42,7 @@ publish_date: November 16, 2020
</div>
</section>
<section>
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
These are some of the key features that should give you a flavor of
what NLPCraft is and what it can do:
</p>
@@ -113,7 +113,7 @@ publish_date: November 16, 2020
</div>
</section>
<section>
- <h2 class="section-title">Terminology</h2>
+ <h2 class="section-title">Terminology <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
There are two terms that are important to define before we proceed:
</p>
@@ -129,7 +129,7 @@ publish_date: November 16, 2020
</ul>
</section>
<section>
- <h2 class="section-title">Runtime Components</h2>
+ <h2 class="section-title">Runtime Components <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
When working with NLPCraft you will be dealing with these three main
components:
</p>
@@ -157,7 +157,7 @@ publish_date: November 16, 2020
</figure>
</section>
<section>
- <h2 class="section-title">Smart Home Example</h2>
+ <h2 class="section-title">Smart Home Example <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Let’s see how NLPCraft works using a prototypical smart home NLP-based
light switch as an example. We would
like to be able to say things like <code>"Turn off all the light in
the house"</code> or
@@ -173,7 +173,7 @@ publish_date: November 16, 2020
</ul>
</section>
<section>
- <h2 class="section-title">Required Named Entities (NEs)</h2>
+ <h2 class="section-title">Required Named Entities (NEs) <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
For our example we’ll need to define three NEs in our model:
</p>
@@ -186,7 +186,7 @@ publish_date: November 16, 2020
</p>
</section>
<section>
- <h2 class="section-title">Data Model</h2>
+ <h2 class="section-title">Data Model <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Once we have an idea of what NEs we’ll need - we can start building
the data model that would define how
these NEs can be detected and ultimately what intents we are going to
detecting using these NEs.
@@ -294,7 +294,7 @@ publish_date: November 16, 2020
</p>
</section>
<section>
- <h2 class="section-title">Intent Matching</h2>
+ <h2 class="section-title">Intent Matching <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Although full explanation of the <a
href="/intent-matching.html">intent matching</a> algorithm is outside the scope
of this article, the basic workflow looks like this:
</p>
@@ -314,7 +314,7 @@ publish_date: November 16, 2020
</ul>
</section>
<section>
- <h2 class="section-title">Model Implementation</h2>
+ <h2 class="section-title">Model Implementation <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Below is a full implementation of the data model in Scala (the same
implementation in Java or Kotlin is practically identical):
</p>
@@ -376,7 +376,7 @@ publish_date: November 16, 2020
</p>
</section>
<section>
- <h2 class="section-title">Conclusion</h2>
+ <h2 class="section-title">Conclusion <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
In a couple dozen lines of code we’ve created a non-trivial
application that understands free-speech
natural language interface to operate a simple lightswitch. You can
ask it many things like:
diff --git a/blogs/short_term_memory.html b/blogs/short_term_memory.html
index cc40374..ca3171e 100644
--- a/blogs/short_term_memory.html
+++ b/blogs/short_term_memory.html
@@ -39,7 +39,7 @@ publish_date: July 26, 2019
</p>
</section>
<section>
- <h2 class="section-title">Parsing User Input</h2>
+ <h2 class="section-title">Parsing User Input <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
One of the key objectives when parsing user input sentence for Natural
Language Understanding (NLU) is to
detect all possible semantic entities, a.k.a <em>named entities</em>.
Let's consider a few examples:
@@ -72,7 +72,7 @@ publish_date: July 26, 2019
</p>
</section>
<section>
- <h2 class="section-title">Semantic Entities</h2>
+ <h2 class="section-title">Semantic Entities <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Let's take a closer look at the named entities from the above examples:
</p>
@@ -122,7 +122,7 @@ publish_date: July 26, 2019
</div>
</section>
<section>
- <h2 class="section-title">Incomplete Sentences</h2>
+ <h2 class="section-title">Incomplete Sentences <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Assuming previously asked questions about the weather in Tokyo (in the
span of the ongoing conversation) one
could presumably ask the following questions using a <em>shorter,
incomplete</em>, form:
@@ -154,7 +154,7 @@ publish_date: July 26, 2019
</p>
</section>
<section>
- <h2 class="section-title">Short-Term Memory</h2>
+ <h2 class="section-title">Short-Term Memory <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
The short-term memory is exactly that... a memory that keeps only
small amount of recently used information
and that evicts its contents after a short period of inactivity.
@@ -170,7 +170,7 @@ publish_date: July 26, 2019
</p>
</section>
<section>
- <h2 class="section-title">Context Switch</h2>
+ <h2 class="section-title">Context Switch <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Resetting the context by the timeout is, obviously, not a hard thing
to do. What can be trickier is to detect
when conversation topic is switched and the previous context needs to
be forgotten to avoid very
@@ -204,7 +204,7 @@ publish_date: July 26, 2019
</p>
</section>
<section>
- <h2 class="section-title">Overriding Entities</h2>
+ <h2 class="section-title">Overriding Entities <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
As we've seen above one named entity can replace or override an older
entity in the STM, e.g. <code>"Peet's"</code>
replaced <code>"Starbucks"</code> in our previous questions. <b>The
actual algorithm that governs this logic is one
@@ -261,7 +261,7 @@ publish_date: July 26, 2019
</ul>
</section>
<section>
- <h2 class="section-title">Overriding Rule</h2>
+ <h2 class="section-title">Overriding Rule <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Here's the rule we developed at NLPCraft and have been successfully
using in various models:
</p>
@@ -353,7 +353,7 @@ publish_date: July 26, 2019
</p>
</section>
<section>
- <h2 class="section-title">Explicit Context Switch</h2>
+ <h2 class="section-title">Explicit Context Switch <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
In some cases you may need to explicitly clear the conversation STM
without relying on algorithmic behavior.
It happens when current and new topic of the conversation share some
of the same entities. Although at first
@@ -385,7 +385,7 @@ publish_date: July 26, 2019
</p>
</section>
<section>
- <h2 class="section-title">Summary</h2>
+ <h2 class="section-title">Summary <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<p>
Let’s collect all our thoughts on STM into a few bullet points:
</p>
diff --git a/community.html b/community.html
index a074332..34a92a3 100644
--- a/community.html
+++ b/community.html
@@ -42,7 +42,7 @@ layout: interior
</div>
<div class="col-md-8 second-column">
<section id="start">
- <h2 class="section-title">Start Contributing</h2>
+ <h2 class="section-title">Start Contributing <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Before you get involved in Apache NLPCraft development, please
sign up to the
dev mailing list by sending an empty email to <a
href="mailto:[email protected]">[email protected]</a>
@@ -260,7 +260,7 @@ layout: interior
</p>
</section>
<section id="pmc">
- <h2 class="section-title">Committers <span class="amp">&</span>
PMC</h2>
+ <h2 class="section-title">Committers <span class="amp">&</span>
PMC <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Visit the <a target="github"
href="https://github.com/apache/incubator-nlpcraft/graphs/contributors">Apache
NLPCraft Contributors</a> page to
see a list of top contributors and committers for the main
project.
@@ -340,17 +340,17 @@ layout: interior
</table>
</section>
<section id="resources">
- <h2 class="section-title">Resources</h2>
+ <h2 class="section-title">Resources <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
There are many ways you can get help from Apache NLPCraft
community. The mailing lists are the easiest
way to get answers or to get involved with the project.
</p>
- <h3 class="section-title">Stack Overflow</h3>
+ <h2 class="section-title">Stack Overflow <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft community members watch Stack Overflow for the tag
<code>nlpcraft</code> or "apachenlpcraft",
so you can post your questions there as well.
</p>
- <h3 class="section-title">Mailing Lists</h3>
+ <h2 class="section-title">Mailing Lists <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<ul>
<li>
<a
href="mailto:[email protected]">[email protected]</a> for
contributor discussions
@@ -365,7 +365,7 @@ layout: interior
<a
href="https://lists.apache.org/[email protected]">archive</a>)
</li>
</ul>
- <h3 class="section-title">Git</h3>
+ <h2 class="section-title">Git <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>ASF GitBox repos (committers only):</p>
<ul>
<li><a target="asf"
href="https://git.apache.org/repos/asf/incubator-nlpcraft">https://git.apache.org/repos/asf/incubator-nlpcraft</a></li>
@@ -380,7 +380,7 @@ layout: interior
<li><a target="github"
href="https://github.com/apache/incubator-nlpcraft-java-client">https://github.com/apache/incubator-nlpcraft-java-client</a></li>
<li><a target="github"
href="https://github.com/apache/incubator-nlpcraft-ui">https://github.com/apache/incubator-nlpcraft-ui</a></li>
</ul>
- <h3 class="section-title">JIRA Issue Tracking</h3>
+ <h2 class="section-title">JIRA Issue Tracking <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Visit <a target="jira"
href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">NLPCraft
Jira</a> if you would like to file a new issue or view existing
issues. If you would like to assign an issue to yourself and
start contributing, please send an
diff --git a/data-model.html b/data-model.html
index 130424b..f9ec680 100644
--- a/data-model.html
+++ b/data-model.html
@@ -23,7 +23,7 @@ id: data_model
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Model Overview</h2>
+ <h2 class="section-title">Model Overview <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Data model is a central concept in NLPCraft defining interface to
your data sources
like a database or a SaaS application.
@@ -199,7 +199,7 @@ public class AlarmModel extends NCModelFileAdapter {
</p>
</section>
<section id="dataflow">
- <h2 class="section-title">Model Dataflow</h2>
+ <h2 class="section-title">Model Dataflow <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<figure>
<img alt="data model dataflow" class="img-fluid"
src="/images/homepage-fig1.1.png">
<figcaption><b>Fig 1.</b> NLPCraft Architecture</figcaption>
@@ -238,7 +238,7 @@ public class AlarmModel extends NCModelFileAdapter {
</div>
</section>
<section id="lifecycle">
- <h2 class="section-title">Model Lifecycle</h2>
+ <h2 class="section-title">Model Lifecycle <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Data model is an implementation of <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a>
interface.
<a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a>
interface has
@@ -363,7 +363,7 @@ public class AlarmModel extends NCModelFileAdapter {
</div>
</section>
<section id="config">
- <h2 class="section-title">Model Configuration</h2>
+ <h2 class="section-title">Model Configuration <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Apart from mandatory model <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getId()">ID</a>,
<a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getName()">name</a>
and
@@ -395,7 +395,7 @@ public class AlarmModel extends NCModelFileAdapter {
<li><a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isPermutateSynonyms()">isPermutateSynonyms</a></li>
<li><a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isSwearWordsAllowed()">isSwearWordsAllowed</a></li>
</ul>
- <h3 class="section-title">External JSON/YAML Declaration</h3>
+ <h2 class="section-title">External JSON/YAML Declaration <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You can move out all the static model configuration into an
external JSON or YAML file. To load that
configuration you need to use <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
@@ -467,7 +467,7 @@ intents:
</div>
</section>
<section id="elements">
- <h2 class="section-title">Model Elements</h2>
+ <h2 class="section-title">Model Elements <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Data model element defines a semantic entity that will be detected
in the user input.
A model element typically is one or more individual words that
have a consistent semantic meaning and typically denote a
@@ -551,7 +551,7 @@ intents:
All properties of model elements (id, groups, parent &
ancestors, values, and metadata) can be used in NLPCraft IDL.
</li>
</ul>
- <h3 class="section-title">User vs. Built-In Elements</h3>
+ <h2 class="section-title">User vs. Built-In Elements <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Additionally to the model elements that are defined by the user in
the data model (i.e. <em>user model elements</em>)
NLPCraft provides <a href="#builtin">its own named entities</a> as
well as the integration with number of <a href="integrations.html#nlp">3rd
party projects</a>. You can think of these built-in elements as if they were
implicitly defined in your model - you
@@ -971,7 +971,7 @@ intents:
</pre>
</section>
<section id="dsl" >
- <h2 class="section-title">Token DSL</h2>
+ <h2 class="section-title">Token DSL <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Any individual synonym word that that starts and ends with
<code>^^</code> is a token DSL expression. A token
DSL expression inside of <code>^^ ... ^^</code> markers allows you
to define a predicate on already parsed and detected token. It is very
important to
@@ -1713,7 +1713,7 @@ intents:
</p>
</section>
<section id="programmable_ners">
- <h2 class="section-title">Programmable NERs</h2>
+ <h2 class="section-title">Programmable NERs <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
By default, the data model detects its elements by their synonyms,
regexp or DSL expressions. However, in some cases
these methods are either not expressive enough or cannot be used.
For example, detecting model elements based
@@ -1726,7 +1726,7 @@ intents:
</p>
</section>
<section id="logic">
- <h2 class="section-title">Model Logic</h2>
+ <h2 class="section-title">Model Logic <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
When a user sends its request via REST API it is received by the
REST server. Upon receipt,
the REST server does the basic NLP processing and enriching. Once
finished, the REST server
@@ -1747,13 +1747,13 @@ intents:
<li>Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a></li>
<li>Class <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a></li>
</ul>
- <h3 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html">NCModelView</a></h3>
+ <h2 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html">NCModelView</a>
<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
This interface provides read-only view on data model. Model view
defines a declarative, or configurable, part of the model.
All properties in this interface can be defined or overridden in
JSON/YAML external
presentation when used with <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
adapter.
</p>
- <h3 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a></h3>
+ <h2 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a>
<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
This interface defines a context of a particular intent match. It
can be passed into the callback of the matched intent
and provides the following:
@@ -1764,7 +1764,7 @@ intents:
<li>Access to the original query context (<a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a>).</li>
<li>Various access APIs for intent tokens.</li>
</ul>
- <h3 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a></h3>
+ <h2 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a> <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
This interface provides all available data about the parsed user
input and all its
supplemental information. It's accessible from
<code>NCIntentMatch</code> interface and
@@ -1797,7 +1797,7 @@ intents:
returns list of all parsing variants for a given user input.
</li>
</ul>
- <h3 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">NCRequest</a></h3>
+ <h2 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">NCRequest</a> <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">NCRequest</a>
interface
is one of the several important entities in Data Model API that
you as a model developer will be working with. You
@@ -1815,7 +1815,7 @@ intents:
Original request text, timestamp of its receipt, and server
request ID.
</li>
</ul>
- <h3 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a></h3>
+ <h2 class="section-title">Interface <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a> <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a> object
is another
key abstraction in Data Model API. A token is a detected model
element and is a part of a fully parsed user input.
@@ -1828,7 +1828,7 @@ intents:
Depending on the token ID each token will have different set of <a
href="#meta">metadata properties</a>. Some common NLP properties
are always present for tokens of all types.
</p>
- <h3 class="section-title">Class <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a></h3>
+ <h2 class="section-title">Class <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a> <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
This class defines the result returned from model's intent
callbacks. Result consists of the
text body and the type. The result types are similar in notion to
MIME type and have specific meaning only for REST applications
@@ -1837,7 +1837,7 @@ intents:
</p>
</section>
<section id="builtin">
- <h2 class="section-title">Built-In Tokens</h2>
+ <h2 class="section-title">Built-In Tokens <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft provides a number of built-in model elements (i.e.
tokens) including the
<a href="integrations.html">integration</a> with several popular
3rd party NER frameworks. Table
@@ -2127,7 +2127,7 @@ intents:
</table>
</section>
<section id="meta">
- <h2 class="section-title">Token Metadata</h2>
+ <h2 class="section-title">Token Metadata <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Each token has different set of metadata. Sections below describe
metadata for each built-in token
supported by NLPCraft:
diff --git a/docs.html b/docs.html
index 100388f..161386a 100644
--- a/docs.html
+++ b/docs.html
@@ -23,7 +23,7 @@ id: overview
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <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 Java-based <a target=_blank
href="https://www.apache.org/licenses/">open source</a> library
for adding a natural language interface to modern applications.
It enables people to interact with your products using voice or text. NLPCraft
can connect with
@@ -63,7 +63,7 @@ id: overview
</figure>
</section>
<section id="data-model">
- <h3 class="section-title">Data Model</h3>
+ <h2 class="section-title">Data Model <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft employs model-as-a-code approach where everything you do
in NLPCraft is part of your source code. Data model is an implementation of
<a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> Java
interface that
@@ -81,7 +81,7 @@ id: overview
</p>
</section>
<section id="data-probe">
- <h3 class="section-title">Data Probe</h3>
+ <h2 class="section-title">Data Probe <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Data probe is a light-weight container designed to securely deploy
and manage user data models.
Each probe can deploy and manage multiple models and many probes
can be connected to the REST server (or a cluster of REST servers).
@@ -96,7 +96,7 @@ id: overview
</p>
</section>
<section id="server">
- <h3 class="section-title">REST Server</h3>
+ <h2 class="section-title">REST Server <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
REST server (or a cluster of REST servers behind a load balancer)
provides URL endpoint for end-user applications
to securely query data sources using natural language via data
models deployed in data probes. Its main purpose is to
diff --git a/download.html b/download.html
index f1083b2..36fa14a 100644
--- a/download.html
+++ b/download.html
@@ -36,7 +36,7 @@ layout: interior
</div>
<div class="col-md-8 second-column">
<section id="prerequisites">
- <h2 class="section-title">Support</h2>
+ <h2 class="section-title">Support <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
For any questions, feedback or suggestions:
</p>
@@ -60,7 +60,7 @@ layout: interior
</p>
</section>
<section id="src">
- <h2 class="section-title">Official Apache Release</h2>
+ <h2 class="section-title">Official Apache Release <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Download the NLPCraft release -
<code><b>{{site.latest_version}}</b></code> is the latest version:
</p>
@@ -118,7 +118,7 @@ layout: interior
</div>
</section>
<section id="zip">
- <h2 class="section-title">Binary Release / Docker</h2>
+ <h2 class="section-title">Binary Release / Docker <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Download the NLPCraft binary release -
<code><b>{{site.latest_version}}</b></code> is the latest version:
</p>
@@ -177,7 +177,7 @@ layout: interior
</div>
</section>
<section id="build">
- <h2 class="section-title">Building Binaries</h2>
+ <h2 class="section-title">Building Binaries <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
To build binaries from the source release download the <a
href="#src">source release</a> and run
the following commands:
@@ -196,7 +196,7 @@ layout: interior
</p>
</section>
<section id="verification">
- <h2 class="section-title">Release Verification</h2>
+ <h2 class="section-title">Release Verification <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
We highly recommend to verify the integrity and authenticity
of the ZIP archive by comparing cryptographic
signatures. Following instructions assume binary release on
Mac OS/Linux environment but the verification steps are
@@ -245,7 +245,7 @@ layout: interior
</div>
</section>
<section id="maven">
- <h2 class="section-title">Maven/Grape/SBT</h2>
+ <h2 class="section-title">Maven/Grape/SBT <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
The easiest way to start using NLPCraft is to add Maven
dependency (Grape, SBT, etc.) to your
project. NLPCraft project consists of a single module.
@@ -301,7 +301,7 @@ layout: interior
</p>
</section>
<section id="github">
- <h2 class="section-title">GitHub <i class="fab fa-fw
fa-github"></i></h2>
+ <h2 class="section-title">GitHub <i class="fab fa-fw
fa-github"></i> <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<p>
If you want to contribute to the project you need to get the
full developer snapshot from <a target="github"
href="https://github.com/apache/incubator-nlpcraft">GitHub</a> mirror:
</p>
@@ -322,7 +322,7 @@ layout: interior
</div>
</section>
<section id="java-client">
- <h2 class="section-title">Java Client <i class="fab
fa-java"></i></h2>
+ <h2 class="section-title">Java Client <i class="fab fa-java"></i>
<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft provides native Java Client for <a
href="using-rest.html">REST APIs</a>. Java Client is hosted as a separate
<a target="github"
href="https://github.com/apache/incubator-nlpcraft-java-client">GitHub
project</a> and you
diff --git a/examples/alarm_clock.html b/examples/alarm_clock.html
index ab4c1dd..9034b0e 100644
--- a/examples/alarm_clock.html
+++ b/examples/alarm_clock.html
@@ -23,7 +23,7 @@ id: alarm_clock
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
This simple example provides a "alarm clock" implementation where
you can ask to set the timer
for a specific duration from now expressed in hours, minutes
and/or seconds. You can say "ping me in 3 minutes",
@@ -36,7 +36,7 @@ id: alarm_clock
</p>
</section>
<section id="new_project">
- <h3 class="section-title">Create New Project</h3>
+ <h2 class="section-title">Create New Project <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You can create new Java project in many different ways - we'll use
<a href="/tools/script.html">NLPCraft CLI</a>
to accomplish this task:
@@ -79,7 +79,7 @@ id: alarm_clock
</div>
</section>
<section id="model">
- <h3 class="section-title">Data Model</h3>
+ <h2 class="section-title">Data Model <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
We are going to start with declaring the static part of our model
using JSON which we will later load using
<code>NCModelFileAdapter</code> in our Java-based model
implementation. Open <code>src/main/resources/<b>alarm_clock.json</b></code>
@@ -131,7 +131,7 @@ id: alarm_clock
</p>
</section>
<section id="code">
- <h3 class="section-title">Model Class</h3>
+ <h2 class="section-title">Model Class <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Open <code>src/main/java/demo/<b>AlarmClock.java</b></code> file
and replace its content with the following code:
</p>
@@ -260,7 +260,7 @@ public class AlarmClock extends NCModelFileAdapter {
</ul>
</section>
<section id="build_project">
- <h3 class="section-title">Build Project</h3>
+ <h2 class="section-title">Build Project <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Once we have our model ready let's go to <code>~/AlarmClock</code>
directory and run the Maven build:
</p>
@@ -273,7 +273,7 @@ public class AlarmClock extends NCModelFileAdapter {
</p>
</section>
<section id="start_server">
- <h3 class="section-title">Start Server</h3>
+ <h2 class="section-title">Start Server <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Run the following command to start local REST server, if it hasn't
been started already, from the NLPCraft installation directory:
</p>
@@ -315,7 +315,7 @@ public class AlarmClock extends NCModelFileAdapter {
</ul>
</section>
<section id="testing">
- <h3 class="section-title">Testing</h3>
+ <h2 class="section-title">Testing <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Remember the <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCIntentSample.html">@NCIntentSample</a>
annotation we have used in our model code next to intent
definition?
@@ -360,7 +360,7 @@ public class AlarmClock extends NCModelFileAdapter {
</p>
</section>
<section id="rinse">
- <h2 class="section-title">Rinse <span class="amp">&</span>
Repeat</h2>
+ <h2 class="section-title">Rinse <span class="amp">&</span> Repeat
<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Typical development cycle consists of:
</p>
@@ -383,7 +383,7 @@ public class AlarmClock extends NCModelFileAdapter {
</p>
</section>
<section>
- <h2 class="section-title">Done! 👌</h2>
+ <h2 class="section-title">Done! 👌 <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
You've created alarm clock data model, started the REST server and
tested this model using the built-in test framework.
</p>
diff --git a/examples/light_switch.html b/examples/light_switch.html
index 4c1bab7..c9cb0e5 100644
--- a/examples/light_switch.html
+++ b/examples/light_switch.html
@@ -23,7 +23,7 @@ id: light_switch
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
This example provides very simple implementation for NLI-powered
light switch. You can say something like
"Turn the lights off in the entire house" or "Switch on the
illumination in the master bedroom closet".
@@ -36,7 +36,7 @@ id: light_switch
</p>
</section>
<section id="new_project">
- <h3 class="section-title">Create New Project</h3>
+ <h2 class="section-title">Create New Project <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You can create new Scala project in many different ways - we'll
use <a href="/tools/script.html">NLPCraft CLI</a>
to accomplish this task:
@@ -79,7 +79,7 @@ id: light_switch
</div>
</section>
<section id="model">
- <h3 class="section-title">Data Model</h3>
+ <h2 class="section-title">Data Model <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
We are going to start with declaring the static part of our model
using YAML which we will later load using
<code>NCModelFileAdapter</code> in our Scala-based model
implementation. Open <code>src/main/resources/<b>light_switch.yaml</b></code>
@@ -149,7 +149,7 @@ intents:
</p>
</section>
<section id="code">
- <h3 class="section-title">Model Class</h3>
+ <h2 class="section-title">Model Class <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Open <code>src/main/scala/demo/<b>LightSwitch.scala</b></code>
file and replace its content with the following code:
</p>
@@ -222,7 +222,7 @@ class LightSwitch extends
NCModelFileAdapter("light_switch.yaml") {
</ul>
</section>
<section id="build_project">
- <h3 class="section-title">Build Project</h3>
+ <h2 class="section-title">Build Project <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Once we have our model ready let's go to
<code>~/LightSwitch</code> directory and run the Maven build:
</p>
@@ -235,7 +235,7 @@ class LightSwitch extends
NCModelFileAdapter("light_switch.yaml") {
</p>
</section>
<section id="start_server">
- <h3 class="section-title">Start Server</h3>
+ <h2 class="section-title">Start Server <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Run the following command to start local REST server, if it hasn't
been started already, from the NLPCraft installation directory:
</p>
@@ -277,7 +277,7 @@ class LightSwitch extends
NCModelFileAdapter("light_switch.yaml") {
</ul>
</section>
<section id="testing">
- <h3 class="section-title">Testing</h3>
+ <h2 class="section-title">Testing <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Remember the <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCIntentSample.html">@NCIntentSample</a>
annotation we have used in our model code next to intent
definition?
@@ -322,7 +322,7 @@ class LightSwitch extends
NCModelFileAdapter("light_switch.yaml") {
</p>
</section>
<section id="rinse">
- <h2 class="section-title">Rinse <span class="amp">&</span>
Repeat</h2>
+ <h2 class="section-title">Rinse <span class="amp">&</span> Repeat
<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Typical development cycle consists of:
</p>
@@ -345,7 +345,7 @@ class LightSwitch extends
NCModelFileAdapter("light_switch.yaml") {
</p>
</section>
<section>
- <h2 class="section-title">Done! 👌</h2>
+ <h2 class="section-title">Done! 👌 <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
You've created light switch data model, started the REST server
and tested this model using the built-in test framework.
</p>
diff --git a/examples/sql_model.html b/examples/sql_model.html
index 5bb82bd..9de9b31 100644
--- a/examples/sql_model.html
+++ b/examples/sql_model.html
@@ -23,7 +23,7 @@ id: sql_model
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
This example demonstrates a relatively complete implementation of
natural language interface to a
SQL database. This is a non-trivial example, spanning over a
thousand lines of code, and it can
@@ -40,7 +40,7 @@ id: sql_model
</p>
</section>
<section id="background">
- <h2 class="section-title">Background</h2>
+ <h2 class="section-title">Background <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Many of modern existing natural language-to-SQL implementations
use variations of
deep learning approach where you first train the neural network on
a pre-created training set and
@@ -85,7 +85,7 @@ id: sql_model
</div>
</section>
<section id="sql">
- <h3 class="section-title">Sample Database</h3>
+ <h2 class="section-title">Sample Database <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
We are going to be building natural language interface against
slightly modified "Northwind" sample database
from <a target="_"
href="https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/linq/downloading-sample-databases#get-the-northwind-sample-database-for-sql-server">Microsoft
SQL Server</a>:
@@ -101,7 +101,7 @@ id: sql_model
</p>
</section>
<section id="h2">
- <h3 class="section-title">H2 Database</h3>
+ <h2 class="section-title">H2 Database <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
In our example we are using H2 database instance. For convenience,
example provides a command line application
<a
href="https://github.com/apache/incubator-nlpcraft/blob/master/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/sql/db/SqlServer.scala"
target="github"><code>db/SqlServer.scala</code></a>
@@ -110,7 +110,7 @@ id: sql_model
</p>
</section>
<section id="model">
- <h3 class="section-title">Data Model</h3>
+ <h2 class="section-title">Data Model <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Creating data model manually for the existing SQL schema can be a
daunting task. NLPCraft provides the tool
that can scan SQL schema and create working stub of such model
automatically. All you have to do then is to
@@ -132,7 +132,7 @@ id: sql_model
</ul>
</section>
<section id="impl">
- <h2 class="section-title">Implementation</h2>
+ <h2 class="section-title">Implementation <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Implementation mainly consists of these files:
</p>
@@ -155,7 +155,7 @@ id: sql_model
</ul>
</section>
<section id="build_project">
- <h3 class="section-title">Build Project</h3>
+ <h2 class="section-title">Build Project <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Assuming that project is located in <code>~/SqlModel</code> folder
- let's go to into this directory and
run the Maven build:
@@ -169,7 +169,7 @@ id: sql_model
</p>
</section>
<section id="start_server">
- <h3 class="section-title">Start Server</h3>
+ <h2 class="section-title">Start Server <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Run the following command to start local REST server, if it hasn't
been started already, from the NLPCraft installation directory:
</p>
@@ -211,7 +211,7 @@ id: sql_model
</ul>
</section>
<section id="testing">
- <h3 class="section-title">Testing</h3>
+ <h2 class="section-title">Testing <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Part of the <a href="/tools/test_framework.html">test
framework</a>, the auto-validator class <a
target="javadoc"
@@ -246,7 +246,7 @@ id: sql_model
</ul>
</section>
<section id="rinse">
- <h2 class="section-title">Rinse <span class="amp">&</span>
Repeat</h2>
+ <h2 class="section-title">Rinse <span class="amp">&</span> Repeat
<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Typical development cycle consists of:
</p>
@@ -269,7 +269,7 @@ id: sql_model
</p>
</section>
<section>
- <h2 class="section-title">Done! 👌</h2>
+ <h2 class="section-title">Done! 👌 <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
You've created SQL model, started the REST server and tested this
model using the built-in test framework.
</p>
diff --git a/examples/weather_bot.html b/examples/weather_bot.html
index d9b3f75..ef0b124 100644
--- a/examples/weather_bot.html
+++ b/examples/weather_bot.html
@@ -23,7 +23,7 @@ id: weather_bot
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
This example demonstrates relatively complete NLI-based weather
service with JSON output and a non-trivial
intent matching logic. It uses Apple's <a target="new"
href="https://darksky.net">DarkSky</a>
@@ -35,7 +35,7 @@ id: weather_bot
</p>
</section>
<section id="new_project">
- <h3 class="section-title">Create New Project</h3>
+ <h2 class="section-title">Create New Project <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You can create new Java project in many different ways - we'll use
<a href="/tools/script.html">NLPCraft CLI</a>
to accomplish this task:
@@ -78,7 +78,7 @@ id: weather_bot
</div>
</section>
<section id="model">
- <h3 class="section-title">Data Model</h3>
+ <h2 class="section-title">Data Model <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
We are going to start with declaring the static part of our model
using JSON which we will later load using
<code>NCModelFileAdapter</code> in our Java-based model
implementation. Open <code>src/main/resources/<b>weather.json</b></code>
@@ -142,7 +142,7 @@ id: weather_bot
Now that our model is ready let's create a Java class that would
load this model and define the intent
that uses the model elements we have just defined.
</p>
- <h3 class="section-title">Model Class</h3>
+ <h2 class="section-title">Model Class <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Below is a full source code for our implementation. Note that this
code uses several
<a href="#tools">external tools</a> for IP-based geo-location and
the weather information
@@ -359,7 +359,7 @@ public class Weather extends NCModelFileAdapter {
</ul>
</section>
<section id="tools">
- <h3 class="section-title">External Tools</h3>
+ <h2 class="section-title">External Tools <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
This example uses several external tools to implement its
functionality:
</p>
@@ -378,7 +378,7 @@ public class Weather extends NCModelFileAdapter {
</ul>
</section>
<section id="build_project">
- <h3 class="section-title">Build Project</h3>
+ <h2 class="section-title">Build Project <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Once we have our model ready let's go to <code>~/Weather</code>
directory and run the Maven build:
</p>
@@ -391,7 +391,7 @@ public class Weather extends NCModelFileAdapter {
</p>
</section>
<section id="start_server">
- <h3 class="section-title">Start Server</h3>
+ <h2 class="section-title">Start Server <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Run the following command to start local REST server, if it hasn't
been started already, from the NLPCraft installation directory:
</p>
@@ -432,7 +432,7 @@ public class Weather extends NCModelFileAdapter {
</ul>
</section>
<section id="testing">
- <h3 class="section-title">Testing</h3>
+ <h2 class="section-title">Testing <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Remember the <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCIntentSample.html">@NCIntentSample</a>
annotation we have used in our model code next to intent
definition?
@@ -477,7 +477,7 @@ public class Weather extends NCModelFileAdapter {
</p>
</section>
<section id="rinse">
- <h2 class="section-title">Rinse <span class="amp">&</span>
Repeat</h2>
+ <h2 class="section-title">Rinse <span class="amp">&</span> Repeat
<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Typical development cycle consists of:
</p>
@@ -500,7 +500,7 @@ public class Weather extends NCModelFileAdapter {
</p>
</section>
<section>
- <h2 class="section-title">Done! 👌</h2>
+ <h2 class="section-title">Done! 👌 <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
You've created alarm clock data model, started the REST server and
tested this model using the built-in test framework.
</p>
diff --git a/first-example.html b/first-example.html
index b7dc0c4..dec96c6 100644
--- a/first-example.html
+++ b/first-example.html
@@ -23,7 +23,7 @@ id: first_example
<div class="col-md-8 second-column">
<section id="setup">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Let's develop a light switch prototype that can be controlled
through the natural language.
We'll keep <a target=_
href="https://cloud.google.com/speech-to-text/">speech-to-text conversion</a>
and integration
@@ -33,7 +33,7 @@ id: first_example
</p>
</section>
<section id="new_project">
- <h3 class="section-title">New Project</h3>
+ <h2 class="section-title">New Project <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
We'll use <a href="/tools/script.html">NLPCraft CLI</a> to perform
all management operations.
Run <code>bin/nlpcraft.sh</code> script to create a new project
stub:
@@ -78,7 +78,7 @@ id: first_example
</ul>
</section>
<section id="data_model">
- <h2 class="section-title">Data Model</h2>
+ <h2 class="section-title">Data Model <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
In NLPCraft a data model is an implementation of <a
target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a>
interface. You can move most of the model configuration out to an
external JSON or YAML file and use
@@ -334,7 +334,7 @@ class LightSwitchKotlinModel :
NCModelFileAdapter("lightswitch_model.yaml") {
</ul>
</section>
<section id="build_project">
- <h3 class="section-title">Build Project</h3>
+ <h2 class="section-title">Build Project <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Once the model ready, run the Maven build:
</p>
@@ -344,7 +344,7 @@ class LightSwitchKotlinModel :
NCModelFileAdapter("lightswitch_model.yaml") {
</pre>
</section>
<section id="server">
- <h3 class="section-title">Start Server</h3>
+ <h2 class="section-title">Start Server <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Start local REST server, if it hasn't been started already:
</p>
@@ -369,7 +369,7 @@ class LightSwitchKotlinModel :
NCModelFileAdapter("lightswitch_model.yaml") {
</div>
</section>
<section id="test">
- <h3 class="section-title">Testing</h3>
+ <h2 class="section-title">Testing <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Recall the <a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCIntentSample.html">@NCIntentSample</a>
annotation we have used in our code next to intent reference.
@@ -410,7 +410,7 @@ class LightSwitchKotlinModel :
NCModelFileAdapter("lightswitch_model.yaml") {
</div>
</section>
<section>
- <h2 class="section-title">Congratulation! 👌</h2>
+ <h2 class="section-title">Congratulation! 👌 <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You've created your first data model, started the
REST server and tested the model using built-in model
auto-validator.
diff --git a/getting-started.html b/getting-started.html
index a49e8a3..0f7cdf8 100644
--- a/getting-started.html
+++ b/getting-started.html
@@ -23,7 +23,7 @@ id: getting_started
<div class="col-md-8 second-column">
<section id="getting-started">
- <h2 class="section-title">Getting Started</h2>
+ <h2 class="section-title">Getting Started <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Lets review how to run NLPCraft <a
href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft/src/main/scala/org/apache/nlpcraft/examples"
target="github">examples</a>.
We will use an example model shipped with NLPCraft along with
@@ -42,7 +42,7 @@ id: getting_started
</ul>
</section>
<section id="probe-server">
- <h2 class="section-title">Data Probe <span class="amp">&</span>
REST Server</h2>
+ <h2 class="section-title">Data Probe <span class="amp">&</span>
REST Server <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<p>
<a href="/server-and-probe.html">Data probes</a> are used to
deploy and host data model, while <a href="/server-and-probe.html">REST
server</a> (or a
cluster of servers) is used to accept client REST calls and route
them to the data model deployed on data probes.
@@ -87,7 +87,7 @@ id: getting_started
</p>
</section>
<section id="querying">
- <h2 class="section-title">Weather Forecast</h2>
+ <h2 class="section-title">Weather Forecast <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
We'll be testing <a href="/examples/weather_bot.html">Weather
Example</a>
to ask questions about weather forecast using REST APIs. This
example returns a JSON weather
@@ -182,7 +182,7 @@ id: getting_started
</div>
</section>
<section>
- <h2 class="section-title">Done! 👌</h2>
+ <h2 class="section-title">Done! 👌 <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Use <code>stop</code> command to stop REST server and the data
probe and <code>quit</code>
command to quit from REPL mode:
diff --git a/installation.html b/installation.html
index ed8117f..e64f3b1 100644
--- a/installation.html
+++ b/installation.html
@@ -23,7 +23,7 @@ id: installation
<div id="installation" class="col-md-8 second-column">
<section id="install">
- <h2 class="section-title">Installation</h2>
+ <h2 class="section-title">Installation <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Apache NLPCraft requires <b>no special installation</b> operations:
</p>
@@ -43,7 +43,7 @@ id: installation
</div>
</section>
<section id="clean">
- <h2 class="section-title">Reset Database</h2>
+ <h2 class="section-title">Reset Database <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
For releases marked with <i class="fas fa-fw fa-bomb"></i> you
need to reset the existing database. If you are
using the Apache Ignite storage (default configuration for
NLPCraft) you can accomplish this by
@@ -56,7 +56,7 @@ id: installation
</p>
</section>
<section id="config">
- <h2 class="section-title">External Configuration</h2>
+ <h2 class="section-title">External Configuration <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Due to <a target="asf"
href="https://apache.org/legal/release-policy.html">Apache release policy</a>
the official Apache release cannot include content that is based on
<a target=_
href="https://creativecommons.org/licenses/by/4.0/">Commons Attribution 4.0
International</a> (CC BY 4.0) license
@@ -73,7 +73,7 @@ id: installation
</p>
</section>
<section id="ignite">
- <h2 class="section-title">Apache Ignite 2.x <span
class="amp">&</span> Java 11+</h2>
+ <h2 class="section-title">Apache Ignite 2.x <span
class="amp">&</span> Java 11+ <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<p>
Starting with NLPCraft 0.7.0, NLPCraft requires JDK 11 as its
minimum JDK version.
NLPCraft uses <a target=_ href="https://ignite.apache.org/">Apache
Ignite 2.x</a> project as its
diff --git a/integrations.html b/integrations.html
index c84d47f..cb93c8d 100644
--- a/integrations.html
+++ b/integrations.html
@@ -118,11 +118,11 @@ id: integrations
<p>
NLPCraft is an open source library for adding natural language
Interface to any applications.
</p>
- <h3 class="section-title">Base NLP Engine</h3>
+ <h2 class="section-title">Base NLP Engine <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
N/A
</p>
- <h3 class="section-title">Token Provider</h3>
+ <h2 class="section-title">Token Provider <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft provides its own set of built-in elements. NLPCraft token
IDs start with <code>nlpcraft</code>. Note
also that all NLPCraft built-in tokens are normalized named
entities (NNE), i.e. they provide normalized
@@ -330,12 +330,12 @@ id: integrations
<a href="https://opennlp.apache.org">Apache OpenNLP</a> is an
open-source library for a machine learning based
processing of natural language text.
</p>
- <h3 class="section-title">Base NLP Engine</h3>
+ <h2 class="section-title">Base NLP Engine <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a href="https://opennlp.apache.org">Apache OpenNLP</a> is used by
NLPCraft as a default base NLP engine. You can also set
it explicitly on REST server and probe via configuration property:
<code>nlpcraft.nlpEngine=opennlp</code>
</p>
- <h3 class="section-title">Token Provider</h3>
+ <h2 class="section-title">Token Provider <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
OpenNLP can be used independently as a token provider (even if
other library is used as a base NLP engine).
OpenNLP provides its own set of built-in tokens supported by
NLPCraft.
@@ -418,11 +418,11 @@ id: integrations
<a href="https://cloud.google.com/natural-language/">Google
Natural Language</a> uses machine learning
to reveal the structure and meaning of text.
</p>
- <h3 class="section-title">Base NLP Engine</h3>
+ <h2 class="section-title">Base NLP Engine <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
N/A
</p>
- <h3 class="section-title">Token Provider</h3>
+ <h2 class="section-title">Token Provider <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Google Natural Language provides its own set of built-in elements.
To use Google token provider the environment variable
<code>GOOGLE_APPLICATION_CREDENTIALS</code>
@@ -521,7 +521,7 @@ id: integrations
Stanford CoreNLP as a separate JAR file and add it to your
project classpath if you are not using, or instead of, build tools.
</p>
- <h3 class="section-title">Base NLP Engine</h3>
+ <h2 class="section-title">Base NLP Engine <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You can set Stanford CoreNLP as a base NLP engine:
</p>
@@ -533,7 +533,7 @@ id: integrations
Stanford CoreNLP library must be available <b>on both</b> the
REST server and the data probe.
</li>
</ul>
- <h3 class="section-title">Token Provider</h3>
+ <h2 class="section-title">Token Provider <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Stanford CoreNLP can be used as a token provider independently
from base NLP engine:
<p>
@@ -574,11 +574,11 @@ id: integrations
<p>
<a href="https://spacy.io">spaCy</a> is a free open-source library
for Natural Language Processing in Python.
</p>
- <h3 class="section-title">Base NLP Engine</h3>
+ <h2 class="section-title">Base NLP Engine <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
N/A
</p>
- <h3 class="section-title">Token Provider</h3>
+ <h2 class="section-title">Token Provider <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
spaCy provides its own set of built-in elements. NLPCraft
integrates with spaCy via local Python-based
REST server <code>/src/main/python/spacy_proxy.py</code>. It is a
very simple Flask-based implementation
diff --git a/intent-matching.html b/intent-matching.html
index 81a3f6e..457977d 100644
--- a/intent-matching.html
+++ b/intent-matching.html
@@ -23,14 +23,14 @@ id: intent_matching
<div id="intent-matching" class="col-md-8 second-column">
<section>
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a href="/data-model.html">Data Model</a> processing logic is
defined as a collection of one or more intents. The sections
below explain what intent is, how to define it in your model, and
how it works.
</p>
</section>
<section id="intent">
- <h2 class="section-title">Intent</h2>
+ <h2 class="section-title">Intent <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
The goal of the data model implementation is to take the input
utterance and
match it to a specific user-defined code that will execute for
that input. The mechanism that
@@ -55,7 +55,7 @@ id: intent_matching
</p>
</section>
<section id="idl">
- <h2 class="section-title">IDL - Intent Definition Language</h2>
+ <h2 class="section-title">IDL - Intent Definition Language <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft intents are written in Intent Definition Language (IDL).
IDL is a relatively straightforward and simple language. For
example,
@@ -343,7 +343,7 @@ id: intent_matching
<code>?</code> and <code>[1,3]</code> define an
inclusive quantifier for that term, i.e. how many times
the match for this term should found. You can use
the following quick abbreviations:
</p>
- <ul class="recover_bottom_margin">
+ <ul class="recover-bottom-margin">
<li><code>*</code> is equal to
<code>[0,∞]</code></li>
<li><code>+</code> is equal to
<code>[1,∞]</code></li>
<li><code>?</code> is equal to
<code>[0,1]</code></li>
@@ -397,7 +397,7 @@ id: intent_matching
fragment(when)
</pre>
<p><b>NOTES:</b></p>
- <ul class="recover_bottom_margin">
+ <ul class="recover-bottom-margin">
<li>
Fragment statements (line 2 and 3) have a name
(<code>buzz</code> and <code>when</code>) and a list of terms.
</li>
@@ -429,7 +429,7 @@ id: intent_matching
<p>
<b>NOTES:</b>
</p>
- <ul class="recover_bottom_margin">
+ <ul class="recover-bottom-margin">
<li>
The effect of importing is the same as if the imported
declarations were inserted in place of import
statement.
@@ -587,7 +587,7 @@ id: intent_matching
<tr><td><code>java.lang.Boolean</code></td><td>Boolean</td><td>You can use
<code><b>true</b></code> or <code><b>false</b></code> literals.</td></tr>
<tr><td><code>java.util.List</code></td><td>List</td><td></td></tr>
<tr><td><code>java.util.Map</code></td><td>Map</td><td></td></tr>
- <tr><td><code>java.lang.Object</code></td><td>Any</td><td>Any
of the supported type above. Use <code><b>null</b></code> literal for null
value.</td></tr>
+ <tr><td><code>java.lang.Object</code></td><td>Any</td><td>Any
of the supported types above. Use <code><b>null</b></code> literal for null
value.</td></tr>
</tbody>
</table>
<p>
@@ -600,10 +600,10 @@ id: intent_matching
</p>
<nav>
<div class="nav nav-tabs" role="tablist">
- <a class="nav-item nav-link active" data-toggle="tab"
href="#fn_text" role="tab">Text</a>
+ <a class="nav-item nav-link active" data-toggle="tab"
href="#fn_token" role="tab">Token</a>
+ <a class="nav-item nav-link" data-toggle="tab" href="#fn_text"
role="tab">Text</a>
<a class="nav-item nav-link" data-toggle="tab" href="#fn_math"
role="tab">Math</a>
<a class="nav-item nav-link" data-toggle="tab"
href="#fn_collection" role="tab">Collection</a>
- <a class="nav-item nav-link" data-toggle="tab"
href="#fn_token" role="tab">Token</a>
<a class="nav-item nav-link" data-toggle="tab"
href="#fn_metadata" role="tab">Metadata</a>
<a class="nav-item nav-link" data-toggle="tab"
href="#fn_datetime" role="tab">Date <span class="amp">&</span> Time</a>
<a class="nav-item nav-link" data-toggle="tab" href="#fn_req"
role="tab">Request</a>
@@ -613,7 +613,270 @@ id: intent_matching
</div>
</nav>
<div class="tab-content">
- <div class="tab-pane fade show active" id="fn_text"
role="tabpanel">
+ <div class="tab-pane fade show active" id="fn_token"
role="tabpanel">
+ <div class="accordion" id="token_fns">
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse" data-target="#fn_tok_id">
+ <code><b>tok_id</b>() ⇒ String</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_id" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#getId()">token
ID.</a>
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: 'true' if the current token ID
is equal to 'my_id'.
+ tok_id() == 'my_id'
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse" data-target="#fn_tok_lemma">
+ <code><b>tok_lemma</b>() ⇒ String</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_lemma" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#getLemma()">token
lemma.</a>
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: 'true' if the current token
lemma is equal to 'work'.
+ tok_lemma() == 'work'
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse" data-target="#fn_tok_stem">
+ <code><b>tok_stem</b>() ⇒ String</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_stem" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#getStem()">token
stem.</a>
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: 'true' if the current token
stem is equal to 'work'.
+ tok_stem() == 'work'
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse" data-target="#fn_tok_pos">
+ <code><b>tok_pos</b>() ⇒ String</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_pos" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#getPos()">token
POS</a> tag.
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: 'true' if the current token POS
tag is equal to 'NN'.
+ tok_pos() == 'NN'
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse" data-target="#fn_tok_sparsity">
+ <code><b>tok_sparsity</b>() ⇒
Boolean</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_sparsity" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#isSpars()">token
sparsity</a> flag.
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: token sparsity flag.
+ tok_sparsity()
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse" data-target="#fn_tok_unid">
+ <code><b>tok_unid</b>() ⇒ String</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_unid" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns internal <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#isSpars()">token
globally unique ID</a>.
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: internal token globally unique
ID.
+ tok_unid()
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse"
data-target="#fn_tok_is_abstract">
+ <code><b>tok_is_abstract</b>() ⇒
Boolean</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_is_abstract" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#isAbstract()">token
abstract</a> flag.
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: token abstract flag.
+ tok_is_abstract()
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse"
data-target="#fn_tok_is_bracketed">
+ <code><b>tok_is_abstract</b>() ⇒
Boolean</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_is_bracketed" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#isBracketed()">token
bracketed</a> flag.
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: token bracketed flag.
+ tok_is_bracketed()
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse" data-target="#fn_tok_is_direct">
+ <code><b>tok_is_direct</b>() ⇒
Boolean</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_is_direct" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#isDirect()">token
direct</a> flag.
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: token direct flag.
+ tok_is_direct()
+ </pre>
+ </div>
+ </div>
+ </div>
+ <div class="card">
+ <div class="card-header">
+ <h2 class="mb-0">
+ <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse"
data-target="#fn_tok_is_permutated">
+ <code><b>tok_is_direct</b>() ⇒
Boolean</code>
+ </button>
+ </h2>
+ </div>
+ <div id="fn_tok_is_permutated" class="collapse"
data-parent="#token_fns">
+ <div class="card-body">
+ <p class="fn-desc">
+ <em>Description:</em><br>
+ Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#isPermutated()">token
permutated</a> flag.
+ </p>
+ <p class="fn-usage">
+ <em>Usage:</em><br>
+ </p>
+ <pre class="brush:idl">
+ // Result: token permutated flag.
+ tok_is_permutated()
+ </pre>
+ </div>
+ </div>
+ </div>
+ <!--
+ case "tok_is_english" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isEnglish, 1) }) }
+ case "tok_is_freeWord" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isFreeWord, 1) }) }
+ case "tok_is_quoted" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isQuoted, 1) }) }
+ case "tok_is_stopword" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isStopWord, 1) }) }
+ case "tok_is_swear" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isSwear, 1) }) }
+ case "tok_is_user" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isUserDefined, 1) }) }
+ case "tok_is_wordnet" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isWordnet, 1) }) }
+ case "tok_ancestors" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getAncestors, 1) }) }
+ case "tok_parent" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getParentId, 1) }) }
+ case "tok_groups" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getGroups, 1) }) }
+ case "tok_value" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getValue, 1) }) }
+ case "tok_aliases" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getAliases, 1) }) }
+ case "tok_start_idx" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getStartCharIndex, 1) }) }
+ case "tok_end_idx" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getEndCharIndex, 1) }) }
+ case "tok_this" ⇒ z0(() ⇒ Z(tok, 1))
+ case "tok_find_part" ⇒ doFindPart()
+ case "tok_find_parts" ⇒ doFindParts()
+ -->
+ </div>
+ </div>
+ <div class="tab-pane fade show" id="fn_text" role="tabpanel">
<ul class="fn-toc">
<li><a href=""><code><b>length</b>(p: {String|List|Map}) ⇒
Int</code></a></li>
<li><a href=""><code><b>trim</b>(p: String) ⇒
Int</code></a></li>
@@ -1028,62 +1291,6 @@ id: intent_matching
</div>
<div class="tab-pane fade show" id="fn_collection" role="tabpanel">
</div>
- <div class="tab-pane fade show" id="fn_token" role="tabpanel">
- <div class="accordion" id="token_fns">
- <div class="card">
- <div class="card-header">
- <h2 class="mb-0">
- <button class="btn btn-link btn-block
text-left" type="button" data-toggle="collapse" data-target="#fn_tok_id">
- <code><b>tok_id</b>() ⇒ String</code>
- </button>
- </h2>
- </div>
- <div id="fn_tok_id" class="collapse"
data-parent="#token_fns">
- <div class="card-body">
- <p class="fn-desc">
- <em>Description:</em><br>
- Returns <a target="javadoc"
href="http://127.0.0.1:4000/apis/latest/org/apache/nlpcraft/model/NCToken.html#getId()">token
ID.</a>
- </p>
- <p class="fn-usage">
- <em>Usage:</em><br>
- </p>
- <pre class="brush:idl">
- // Result: 'true' if the current token ID
is equal to 'my_id'.
- tok_id() == 'my_id'
- </pre>
- </div>
- </div>
- </div>
- <!--
- case "tok_id" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getId, 1) }) }
- case "tok_lemma" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getLemma, 1) }) }
- case "tok_stem" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getStem, 1) }) }
- case "tok_pos" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getPos, 1) }) }
- case "tok_sparsity" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getSparsity, 1) }) }
- case "tok_unid" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getUnid, 1) }) }
- case "tok_is_abstract" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isAbstract, 1) }) }
- case "tok_is_bracketed" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isBracketed, 1) }) }
- case "tok_is_direct" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isDirect, 1) }) }
- case "tok_is_english" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isEnglish, 1) }) }
- case "tok_is_freeWord" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isFreeWord, 1) }) }
- case "tok_is_quoted" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isQuoted, 1) }) }
- case "tok_is_stopword" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isStopWord, 1) }) }
- case "tok_is_swear" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isSwear, 1) }) }
- case "tok_is_user" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isUserDefined, 1) }) }
- case "tok_is_wordnet" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).isWordnet, 1) }) }
- case "tok_ancestors" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getAncestors, 1) }) }
- case "tok_parent" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getParentId, 1) }) }
- case "tok_groups" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getGroups, 1) }) }
- case "tok_value" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getValue, 1) }) }
- case "tok_aliases" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getAliases, 1) }) }
- case "tok_start_idx" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getStartCharIndex, 1) }) }
- case "tok_end_idx" ⇒ arg1Tok() match { case x ⇒
stack.push(() ⇒ { Z(toToken(x().value).getEndCharIndex, 1) }) }
- case "tok_this" ⇒ z0(() ⇒ Z(tok, 1))
- case "tok_find_part" ⇒ doFindPart()
- case "tok_find_parts" ⇒ doFindParts()
- -->
- </div>
- </div>
<div class="tab-pane fade show" id="fn_metadata" role="tabpanel">
</div>
<div class="tab-pane fade show" id="fn_datetime" role="tabpanel">
@@ -1183,7 +1390,9 @@ id: intent_matching
</div>
</div>
</div>
- <h2 id="idl_location" class="section-sub-title">IDL Location</h2>
+ </section>
+ <section>
+ <h2 id="idl_location" class="section-title">IDL Location</h2>
<p>
IDL declarations can be placed in different locations based on
user preferences:
</p>
@@ -1258,7 +1467,7 @@ id: intent_matching
</ul>
</section>
<section id="binding">
- <h2 class="section-title">Binding Intent</h2>
+ <h2 class="section-title">Binding Intent <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
IDL intents must be bound to their callback methods. This binding
is accomplished using the
following Java annotations:
@@ -1485,7 +1694,7 @@ id: intent_matching
</ul>
</section>
<section id="logic">
- <h3 class="section-title">Intent Matching Logic</h3>
+ <h2 class="section-title">Intent Matching Logic</h2>
<p>
In order to understand the intent matching logic lets review the
overall user request processing workflow:
</p>
@@ -1607,7 +1816,7 @@ id: intent_matching
</ul>
</section>
<section id="intent_callback">
- <h2 class="section-title">Intent Callback</h2>
+ <h2 class="section-title">Intent Callback <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Whether the intent is defined directly in <code>@NCIntent</code>
annotation or indirectly via <code>@NCIntentRef</code>
annotation - it is always attached to a callback method:
@@ -1758,7 +1967,7 @@ id: intent_matching
</p>
</section>
<section id="model_callbacks">
- <h2 class="section-title">Model Callbacks</h2>
+ <h2 class="section-title">Model Callbacks <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a>
interface provides
several callbacks that are invoked before, during and after intent
matching. They provide an opportunity to inject
@@ -1872,11 +2081,11 @@ id: intent_matching
<li><a href="#intent">Overview</a></li>
<li><a href="#idl">IDL Syntax</a></li>
<li><a href="#idl_functions">IDL Functions</a></li>
+ <li><a href="#idl_location">IDL Location</a></li>
<li><a href="#binding">Intent Binding</a></li>
<li><a href="#logic">Intent Matching</a></li>
<li><a href="#intent_callback">Intent Callback</a></li>
<li><a href="#model_callbacks">Model Callbacks</a></li>
- <li><a href="#examples">Intent Examples</a></li>
{% include quick-links.html %}
</ul>
</div>
diff --git a/metrics-and-tracing.html b/metrics-and-tracing.html
index 976ad7b..9b13cbf 100644
--- a/metrics-and-tracing.html
+++ b/metrics-and-tracing.html
@@ -23,7 +23,7 @@ id: metrics
<div id="metrics-and-tracing" class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Both REST server and data probe come with <a target=_
href="https://opencensus.io">OpenCensus</a>
instrumentation. NLPCraft bundles several built-in exporters for
various OpenCensus trace and stats
@@ -130,7 +130,7 @@ id: metrics
</p>
</section>
<section id="server">
- <h2 class="section-title">Configuring Server</h2>
+ <h2 class="section-title">Configuring Server <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
OpenCensus exporters for the REST server are lifecycle components.
Server lifecycle components are the implementations
of <code>NCServerLifecycle</code> trait. Lifecycle components get
callbacks for various stages of the server
@@ -161,7 +161,7 @@ nlpcraft {
</p>
</section>
<section id="probe">
- <h2 class="section-title">Configuring Probe</h2>
+ <h2 class="section-title">Configuring Probe <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Just like on the REST server OpenCensus exporters for the data
probe are lifecycle components. Probe lifecycle
components are the implementations
@@ -199,7 +199,7 @@ nlpcraft {
</ul>
</section>
<section id="traces">
- <h2 class="section-title">Traces</h2>
+ <h2 class="section-title">Traces <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
When traces are exporter, there are two service names used for
NLPCraft traces that will appear on UI backends:
</p>
@@ -214,7 +214,7 @@ nlpcraft {
</p>
</section>
<section id="metrics">
- <h2 class="section-title">Metrics</h2>
+ <h2 class="section-title">Metrics <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
When it comes to metrics each exporter has different set of
configuration for either a namespace or
name prefix on how these metrics will be available on the UI
backends:
diff --git a/relnotes/release-notes-0.5.0.html
b/relnotes/release-notes-0.5.0.html
index e758b7c..2b4e24f 100644
--- a/relnotes/release-notes-0.5.0.html
+++ b/relnotes/release-notes-0.5.0.html
@@ -21,7 +21,7 @@ layout: release-notes
-->
<section id="new">
- <h2 class="section-title">🙌 New</h2>
+ <h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li>
Fixed <a target="jira"
href="https://issues.apache.org/jira/projects/NLPCRAFT/issues/NLPCRAFT-13">Issue
#13</a>.
@@ -32,7 +32,7 @@ layout: release-notes
</ul>
</section>
<section id="enhancements">
- <h2 class="section-title">🤖 Enhancements</h2>
+ <h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<ul>
<li>Fixed <a target="jira"
href="https://issues.apache.org/jira/projects/NLPCRAFT/issues/NLPCRAFT-29">Issue
#29</a>.</li>
<li>Fixed <a target="jira"
href="https://issues.apache.org/jira/projects/NLPCRAFT/issues/NLPCRAFT-27">Issue
#27</a>.</li>
@@ -41,7 +41,7 @@ layout: release-notes
</ul>
</section>
<section id="fixes">
- <h2 class="section-title">🧐 Fixes</h2>
+ <h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li>Fixed <a target="jira"
href="https://issues.apache.org/jira/projects/NLPCRAFT/issues/NLPCRAFT-2">Issue
#2</a>.</li>
<li>Fixed <a target="jira"
href="https://issues.apache.org/jira/projects/NLPCRAFT/issues/NLPCRAFT-4">Issue
#4</a>.</li>
diff --git a/relnotes/release-notes-0.6.2.html
b/relnotes/release-notes-0.6.2.html
index 34d49ab..c60145a 100644
--- a/relnotes/release-notes-0.6.2.html
+++ b/relnotes/release-notes-0.6.2.html
@@ -21,14 +21,14 @@ layout: release-notes
-->
<section id="new">
- <h2 class="section-title">🙌 New</h2>
+ <h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-30'>NLPCRAFT-30</a> -
Finish SQL example.</li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-43'>NLPCRAFT-43</a> - SQL
example developer test.</li>
</ul>
</section>
<section id="enhancements">
- <h2 class="section-title">🤖 Enhancements</h2>
+ <h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-31'>NLPCRAFT-31</a> -
Tests should always stop all started components.</li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-35'>NLPCRAFT-35</a> - Fix
java tests.</li>
@@ -47,7 +47,7 @@ layout: release-notes
</ul>
</section>
<section id="fixes">
- <h2 class="section-title">🧐 Fixes</h2>
+ <h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-45'>NLPCRAFT-45</a> - Site
example error.</li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-46'>NLPCRAFT-46</a> -
Release instructions must be updated.</li>
diff --git a/relnotes/release-notes-0.7.0.html
b/relnotes/release-notes-0.7.0.html
index 105b596..daac077 100644
--- a/relnotes/release-notes-0.7.0.html
+++ b/relnotes/release-notes-0.7.0.html
@@ -21,7 +21,7 @@ layout: release-notes
-->
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a href="/download.html">NLPCraft 0.7.0</a> brings about several
important features:
</p>
@@ -54,7 +54,7 @@ layout: release-notes
</ul>
</section>
<section id="new">
- <h2 class="section-title">🙌 New</h2>
+ <h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-12'>NLPCRAFT-12</a> -
Introduce 'not' function. </li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-41'>NLPCRAFT-41</a> -
Synonyms suggestion tool.</li>
@@ -63,7 +63,7 @@ layout: release-notes
</ul>
</section>
<section id="enhancements">
- <h2 class="section-title">🤖 Enhancements</h2>
+ <h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-51'>NLPCRAFT-51</a> - Add
SqlGen tool documentation.</li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-52'>NLPCRAFT-52</a> - Add
test framework documentation.</li>
@@ -95,7 +95,7 @@ layout: release-notes
</ul>
</section>
<section id="fixes">
- <h2 class="section-title">🧐 Fixes</h2>
+ <h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-3'>NLPCRAFT-3</a> - Finish
example documentation.</li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-62'>NLPCRAFT-62</a> -
Tests failed.</li>
diff --git a/relnotes/release-notes-0.7.1.html
b/relnotes/release-notes-0.7.1.html
index f74a0e5..5f78c7e 100644
--- a/relnotes/release-notes-0.7.1.html
+++ b/relnotes/release-notes-0.7.1.html
@@ -21,13 +21,13 @@ layout: release-notes
-->
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a href="/download.html">NLPCraft 0.7.1</a> brings about several
important bug fixes.
</p>
</section>
<section id="new">
- <h2 class="section-title">🙌 New</h2>
+ <h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-108'>NLPCRAFT-108</a> -
Create 'nlpcraft' CLI tool.</li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-139'>NLPCRAFT-139</a> -
Update LICENSE/NOTICE for <code>NCBlowfishHasher</code> implementation.</li>
@@ -41,7 +41,7 @@ layout: release-notes
</ul>
</section>
<section id="enhancements">
- <h2 class="section-title">🤖 Enhancements</h2>
+ <h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-145'>NLPCRAFT-145</a> -
Check conversation and dialogue clearing on logout.</li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-146'>NLPCRAFT-146</a> -
Intercept and improve akka rejection messages.</li>
@@ -49,7 +49,7 @@ layout: release-notes
</ul>
</section>
<section id="fixes">
- <h2 class="section-title">🧐 Fixes</h2>
+ <h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-105'>NLPCRAFT-105</a> -
Strange line-breaks on 'mvn verify' output under Windows 10.</li>
<li><a target="jira"
href='https://issues.apache.org/jira/browse/NLPCRAFT-137'>NLPCRAFT-137</a> -
<code>NCService</code> start time calculation error.</li>
diff --git a/relnotes/release-notes-0.7.2.html
b/relnotes/release-notes-0.7.2.html
index 74cbc20..fb748a3 100644
--- a/relnotes/release-notes-0.7.2.html
+++ b/relnotes/release-notes-0.7.2.html
@@ -21,14 +21,14 @@ layout: release-notes
-->
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a href="/download.html">NLPCraft 0.7.2</a> brings about several
important bug fixes.
First full public release of the new <a
href="/tools/script.html"><code>nlpcraft.{sh|cmd}</code></a> management utility.
</p>
</section>
<section id="new">
- <h2 class="section-title">🙌 New</h2>
+ <h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-152'>NLPCRAFT-152</a> -
Create 'project' command for <a
href="/tools/script.html"><code>nlpcraft.{sh|cmd}</code></a> script.</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-153'>NLPCRAFT-153</a> -
Create 'model' command for <a
href="/tools/script.html"><code>nlpcraft.{sh|cmd}</code></a> script.</li>
@@ -38,7 +38,7 @@ layout: release-notes
</ul>
</section>
<section id="enhancements">
- <h2 class="section-title">🤖 Enhancements</h2>
+ <h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-163'>NLPCRAFT-163</a> -
Check that matched intent contains at least one token from current question
(i.e. not all tokens are from STM).</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-166'>NLPCRAFT-166</a> -
Model misses default constructor error.</li>
@@ -46,7 +46,7 @@ layout: release-notes
</ul>
</section>
<section id="fixes">
- <h2 class="section-title">🧐 Fixes</h2>
+ <h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-142'>NLPCRAFT-142</a> -
Probe connected, but its models are not loaded.</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-161'>NLPCRAFT-161</a> -
Conversation property should be added into term.</li>
diff --git a/relnotes/release-notes-0.7.3.html
b/relnotes/release-notes-0.7.3.html
index 0284321..ae5dbbf 100644
--- a/relnotes/release-notes-0.7.3.html
+++ b/relnotes/release-notes-0.7.3.html
@@ -21,7 +21,7 @@ layout: release-notes
-->
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a href="/download.html">NLPCraft 0.7.3</a> brings about several
important bug fixes, improvements and enhancements.
</p>
@@ -33,7 +33,7 @@ layout: release-notes
</div>
</section>
<section id="new">
- <h2 class="section-title">🙌 New</h2>
+ <h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-154'>NLPCRAFT-154</a> -
Update website docs for <code>nlpcraft.{sh|cmd}</code> script and remove
<code>nccurl</code> script.</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-169'>NLPCRAFT-169</a> -
Add model code examples to model docs and javadoc.</li>
@@ -46,7 +46,7 @@ layout: release-notes
</ul>
</section>
<section id="enhancements">
- <h2 class="section-title">🤖 Enhancements</h2>
+ <h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-170'>NLPCRAFT-170</a> -
New CLI commands.</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-177'>NLPCRAFT-177</a> -
Swagger methods invalid tags.</li>
@@ -62,7 +62,7 @@ layout: release-notes
</ul>
</section>
<section id="fixes">
- <h2 class="section-title">🧐 Fixes</h2>
+ <h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-172'>NLPCRAFT-172</a> -
<code>org.apache.nlpcraft.model.conversation.NCConversationSpec</code> does not
work.</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-173'>NLPCRAFT-173</a> -
<code>additionalStopWords</code> configuration property invalid name (case
error).</li>
diff --git a/relnotes/release-notes-0.7.4.html
b/relnotes/release-notes-0.7.4.html
index 4adce1e..22f649a 100644
--- a/relnotes/release-notes-0.7.4.html
+++ b/relnotes/release-notes-0.7.4.html
@@ -21,13 +21,13 @@ layout: release-notes
-->
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
<a href="/download.html">NLPCraft 0.7.4</a> brings about several
important bug fixes, improvements and enhancements.
</p>
</section>
<section id="new">
- <h2 class="section-title">🙌 New</h2>
+ <h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-92'>NLPCRAFT-92</a> -
Create Groovy-based example for NLPCraft.</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-101'>NLPCRAFT-101</a> -
Fix and re-test Java client.</li>
@@ -38,7 +38,7 @@ layout: release-notes
</ul>
</section>
<section id="enhancements">
- <h2 class="section-title">🤖 Enhancements</h2>
+ <h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-96'>NLPCRAFT-96</a> -
Clear DB data instructions.</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-111'>NLPCRAFT-111</a> -
Fix Scala futures global pool usage.</li>
@@ -51,7 +51,7 @@ layout: release-notes
</ul>
</section>
<section id="fixes">
- <h2 class="section-title">🧐 Fixes</h2>
+ <h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<ul>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-5'>NLPCRAFT-5</a> -
Performance degradation on long input sentences.</li>
<li><a
href='https://issues.apache.org/jira/browse/NLPCRAFT-20'>NLPCRAFT-20</a> -
Limits not found for entities which names coincide with numeric units
names.</li>
diff --git a/server-and-probe.html b/server-and-probe.html
index b23cd4c..662d440 100644
--- a/server-and-probe.html
+++ b/server-and-probe.html
@@ -23,13 +23,13 @@ id: server_and_probe
<div id="server-and-probes" class="col-md-8 second-column">
<section>
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
REST server and data probe are the two runtime components that you
need to run when using NLPCraft.
Data probes are used to deploy and host data model, while REST
server (or a cluster of servers) is used
to accept client REST call and route them to the data models via
data probes.
</p>
- <h3 class="section-sub-title">REST Server vs. Data Probe</h3>
+ <h3 class="section-sub-title">REST Server vs. Data Probe <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h3>
<p>
It's important to remember why REST server is a separate component
from a data probe. While a
typical deployment would have only one REST server (or a cluster
of REST servers behind a single
@@ -64,7 +64,7 @@ id: server_and_probe
</p>
</section>
<section id="server">
- <h2 class="section-title">REST Server</h2>
+ <h2 class="section-title">REST Server <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
REST server accepts client REST calls and routes them to the data
model hosted by data probes.
REST server can be started in different ways:
@@ -219,7 +219,7 @@ id: server_and_probe
</ul>
</section>
<section id="probe">
- <h2 class="section-title">Data Probe</h2>
+ <h2 class="section-title">Data Probe <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Data probes are used to deploy and host data mode, and can also be
started in several ways:
</p>
@@ -306,7 +306,7 @@ id: server_and_probe
</div>
</section>
<section id="config">
- <h2 class="section-title">Configuration</h2>
+ <h2 class="section-title">Configuration <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Both REST server and the data probe use <a target=_
href="https://github.com/lightbend/config/">Typesafe Config</a> for their
configuration:
</p>
@@ -408,7 +408,7 @@ nlpcraft {
</div>
</section>
<section id="ansi">
- <h2 class="section-title">ANSI Colors</h2>
+ <h2 class="section-title">ANSI Colors <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Both NLPCraft server and probe use ANSI coloring via
<a target=_
href="https://en.wikipedia.org/wiki/ANSI_escape_code">ANSI escape sequences</a>
for their log
@@ -429,7 +429,7 @@ nlpcraft {
</p>
</section>
<section id="testing">
- <h2 class="section-title">CI Testing</h2>
+ <h2 class="section-title">CI Testing <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
It is a good practice to run units tests during routine builds
using Maven (or others CI toolchains). To
test data models you need to have a running server and then start
one or more data probes with
diff --git a/tools/embedded_probe.html b/tools/embedded_probe.html
index b4af1dc..a41f325 100644
--- a/tools/embedded_probe.html
+++ b/tools/embedded_probe.html
@@ -23,7 +23,7 @@ id: embedded_probe
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Embedded probe allows to run data probe in the same JVM process as
JVM-based client application.
</p>
@@ -53,7 +53,7 @@ id: embedded_probe
</figure>
</section>
<section id="usage">
- <h2 class="section-title">Usage</h2>
+ <h2 class="section-title">Usage <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Embedded probe support consists of the following types in
<code>org.apache.nlpcraft.probe.embedded</code> package:
</p>
diff --git a/tools/script.html b/tools/script.html
index 0221af9..45738da 100644
--- a/tools/script.html
+++ b/tools/script.html
@@ -23,7 +23,7 @@ id: script
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft CLI <code>bin/nlpcraft.{sh|cmd}</code> script is a
<b>central management utility</b> for NLPCraft that supports
interactive REPL and command line modes. Most of the functions
this script does can be done through running
@@ -52,7 +52,7 @@ id: script
</p>
</section>
<section id="quick_start">
- <h2 class="section-title">Quick Start</h2>
+ <h2 class="section-title">Quick Start <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
The <code>bin/nlpcraft.{sh|cmd}</code> works in two modes:
</p>
@@ -116,7 +116,7 @@ id: script
</p>
</section>
<section id="os_commands">
- <h2 class="section-title">OS Commands</h2>
+ <h2 class="section-title">OS Commands <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You can run any external OS-specific commands from
<code>bin/nlpcraft.{sh|cmd}</code> script by prepending such
command with a <code>$</code> symbol. For example:
@@ -136,7 +136,7 @@ id: script
</p>
</section>
<section id="tips">
- <h3 class="section-title">Tips <span class="amp">&</span>
Tricks</h3>
+ <h2 class="section-title">Tips <span class="amp">&</span> Tricks
<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft CLI is standard command line utility that can be used in
the familiar ways both in
Linux/Unix/MacOS and Window environments.
diff --git a/tools/sql_model_gen.html b/tools/sql_model_gen.html
index 6455501..b330d2d 100644
--- a/tools/sql_model_gen.html
+++ b/tools/sql_model_gen.html
@@ -23,7 +23,7 @@ id: sql_model_gen
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
When using NLPCraft to develop natural language interface to the
existing SQL RDBMS one of the
routine tasks is to develop a data model that mirrors the SQL
schema for the given
@@ -36,7 +36,7 @@ id: sql_model_gen
</p>
</section>
<section id="usage">
- <h2 class="section-title">Usage</h2>
+ <h2 class="section-title">Usage <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
This utility can be run in several ways:
</p>
@@ -118,7 +118,7 @@ id: sql_model_gen
</ul>
</section>
<section id="examples">
- <h2 class="section-title">Examples</h2>
+ <h2 class="section-title">Examples <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
SQL model generator is used by <a target="github"
href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft/src/main/scala/org/apache/nlpcraft/examples/sql">SQL
Model</a> example. This example comes with two YAML models:
</p>
diff --git a/tools/syn_tool.html b/tools/syn_tool.html
index ed64105..9ae3c3d 100644
--- a/tools/syn_tool.html
+++ b/tools/syn_tool.html
@@ -23,7 +23,7 @@ id: syn_tool
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
Synonym suggester tool takes an existing model, analyses its
synonyms and intents and comes up with
a list of synonyms that are currently missing that you might want
to add to your model.
@@ -37,7 +37,7 @@ id: syn_tool
</p>
</section>
<section id="usage">
- <h2 class="section-title">Usage</h2>
+ <h2 class="section-title">Usage <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
In order to use this tool the <code>ctxword</code> server and
NLPCraft server should be started as well as
the server's configuration should potentially be updated.
diff --git a/tools/test_framework.html b/tools/test_framework.html
index 82de36d..626a479 100644
--- a/tools/test_framework.html
+++ b/tools/test_framework.html
@@ -23,7 +23,7 @@ id: test_framework
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Overview</h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft comes built-in with a simple to use testing framework
that can be used with any
popular unit testing JVM frameworks such as <a
href="https://testng.org">TestNG</a> or
@@ -82,7 +82,7 @@ id: test_framework
</ul>
</section>
<section id="usage">
- <h2 class="section-title">Test client</h2>
+ <h2 class="section-title">Test client <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Here's a code for unit test using test client for the model from
<a href="/examples/alarm_clock.html">Alarm Clock</a>
example illustrating the usage of test framework together with
JUnit 5:
@@ -149,7 +149,7 @@ public class AlarmTest {
</div>
</section>
<section id="autotest">
- <h2 class="section-title">Auto Model Validation</h2>
+ <h2 class="section-title">Auto Model Validation <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
The same model from <a href="/examples/alarm_clock.html">Alarm
Clock</a> example can be auto validated using
<a target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/tools/test/NCTestAutoModelValidator.html">NCTestAutoModelValidator</a>
@@ -241,7 +241,7 @@ public class AlarmModel extends NCModelFileAdapter {
</p>
</section>
<section id="examples">
- <h2 class="section-title">Examples</h2>
+ <h2 class="section-title">Examples <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
All <a target="github"
href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft/src/main/scala/org/apache/nlpcraft/examples">examples</a>
shipped with NLPCraft come with instructions on how to
auto-validate their models.
diff --git a/using-rest.html b/using-rest.html
index d771ea8..3962c93 100644
--- a/using-rest.html
+++ b/using-rest.html
@@ -24,13 +24,13 @@ id: rest
<!--suppress HtmlDeprecatedTag -->
<div class="col-md-8 second-column">
<section>
- <h2 class="section-title">TL;DR;</h2>
+ <h2 class="section-title">TL;DR; <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
View <a target="swaggerhub"
href="https://app.swaggerhub.com/apis-docs/Apache-NLPCraft/apache-nlpcraft/{{site.latest_version}}">Open
API Specification</a> in a separate window. 👌
</p>
</section>
<section id="overview">
- <h2 class="section-title">...bit more details</h2>
+ <h2 class="section-title">...bit more details <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
REST API provides a universal integration path for any type of
user application to connect to and use NLPCraft.
By using REST API these applications can ask natural language
questions, get results and perform
@@ -51,7 +51,7 @@ id: rest
</div>
</section>
<section id="java-client">
- <h3 class="section-title">Java Client <i class="fab fa-java"></i></h3>
+ <h2 class="section-title">Java Client <i class="fab fa-java"></i> <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft provide native Java client that enables easy-to-use
Java-based API wrapping standard
NLPCraft REST APIs. It can be used by any JVM language that
provides Java interop such as Scala, Groovy, or Kotlin:
@@ -64,7 +64,7 @@ id: rest
</section>
<section id="format">
- <h3 class="section-title">REST URL</h3>
+ <h2 class="section-title">REST URL <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
REST API accepts only <code>POST</code> HTTP calls and
<code>application/json</code> content type
for JSON payload and responses. When issuing a REST call you will
be using the following URL:
@@ -96,7 +96,7 @@ id: rest
</div>
</section>
<section id="users">
- <h3 class="section-title">Users <span class="amp">&</span>
Organizations</h3>
+ <h2 class="section-title">Users <span class="amp">&</span>
Organizations <a href="#"><i class="top-link fas fa-fw
fa-angle-double-up"></i></a></h2>
<p>
In NLPCraft most of the REST calls require ID of the user. Every
user belongs to a company, and each user
has administrative privileges flag. The notion of the user and
company IDs additionally to the model ID provide
@@ -143,7 +143,7 @@ id: rest
</p>
</section>
<section id="server_errors">
- <h2 class="section-title">Server Errors</h2>
+ <h2 class="section-title">Server Errors <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
When REST server returns HTTP error the response body contains
JSON object (<code>Content-Type → application/json</code>)
with two fields <code>code</code> and <code>msg</code>: