This is an automated email from the ASF dual-hosted git repository.
sergeykamov pushed a commit to branch NLPCRAFT-513
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft-website.git
The following commit(s) were added to refs/heads/NLPCRAFT-513 by this push:
new c9e442c WIP.
c9e442c is described below
commit c9e442c1daf125f4b222051df3155a388d795030
Author: skhdl <[email protected]>
AuthorDate: Sun Oct 30 10:38:57 2022 +0400
WIP.
---
api-components.html | 89 +++++++++++++++++++++++++++++---------------
built-in-builder.html | 2 +-
built-in-entity-parser.html | 9 +++--
built-in-token-enricher.html | 3 +-
built-in-token-parser.html | 2 +-
custom-components.html | 50 ++++++++++++-------------
first-example.html | 2 +-
7 files changed, 95 insertions(+), 62 deletions(-)
diff --git a/api-components.html b/api-components.html
index ec78f18..8cfffbb 100644
--- a/api-components.html
+++ b/api-components.html
@@ -62,7 +62,7 @@ id: api-components
</section>
<section id="model">
- <h2 class="section-title">Data Model responsibility<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Data Model Responsibility<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Let's start with terminology and describe the system work workflow.
</p>
@@ -111,6 +111,23 @@ id: api-components
<code>variant</code> detected.
</td>
</tr>
+
+ </tbody>
+ </table>
+
+ <p>
+ When <code>Variant</code> is prepared, the suitable
<code>Intent</code> is trying to matched with it.
+ </p>
+
+ <table class="gradient-table">
+ <thead>
+ <tr>
+ <th>Term</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+
<tr>
<td><code>Intent</code></td>
<td>
@@ -123,11 +140,29 @@ id: api-components
<code>intent</code> rules via <a
href="intent-matching.html">IDL</a>.
</td>
</tr>
+ <tr>
+ <td><code>IDL</code></td>
+ <td>
+ IDL, Intent Definition Language, is a relatively
straightforward declarative language which
+ defines a match between the parsed user input represented
as the collection of tokens,
+ and the user-define callback method.
+ IDL intents are bound to their callbacks via Java
annotation and can be located
+ in the same Java annotations or placed in model YAML/JSON
file as well as in external *.idl files.
+ </td>
+ </tr>
+ <tr>
+ <td><code>Callback</code></td>
+ <td>
+ The user defined code which mapped to the
<code>intent</code>.
+ This method is received as its parameters normalized
values from user input text according to
+ IDL matched terms.
+ </td>
+ </tr>
</tbody>
</table>
<p>
- <code>Data Model</code> must be able to do tree following things:
+ So, <code>Data Model</code> must be able to do tree following
things:
</p>
<ul>
@@ -144,7 +179,8 @@ id: api-components
<li>
Prepare <code>intents</code> with their callbacks methods
which contain business logic.
These methods should be defined directly in the model class
definition or the model should have references on them.
- It will be described below.
+ It will be described below. Callback can de defined in model
scala class directly or via references.
+ Look at the chapter <a href="intent-matching.html">Intent
Matching</a> content for get more details.
</li>
</ul>
@@ -203,18 +239,13 @@ id: api-components
</li>
</ul>
- <p>
- Note that there are a lot of options of defining intents
and their callback methods.
- They can be defined in configuration files, nested
classes, etc.
- Look at the chapter <a href="intent-matching.html">Intent
Matching</a> content for get more details.
- </p>
</li>
</ul>
</section>
<section id="client">
- <h2 class="section-title">Client responsibility<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Client Responsibility<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
<code>Client</code> represented as {% scaladoc NCModelClient
NCModelClient %}
@@ -230,7 +261,7 @@ id: api-components
</thead>
<tbody>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModelClient.html#ask-fffff9ce">ask()</a></td>
+ <td>{% scaladoc NCModelClient#ask-fffff9ce ask() %}</td>
<td>
Passes user text input to the model and receives back
execution
{% scaladoc NCResult NCResult %} or
@@ -240,7 +271,7 @@ id: api-components
</td>
</tr>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModelClient.html#debugAsk-fffff96c">debugAsk()</a></td>
+ <td>{% scaladoc NCModelClient#debugAsk-fffff96c debugAsk()
%}</td>
<td>
Passes user text input to the model and receives back
callback and its parameters or
rejection exception if there isn't any triggered intents.
@@ -249,23 +280,23 @@ id: api-components
</td>
</tr>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModelClient.html#clearStm-571">clearStm()</a></td>
+ <td>{% scaladoc NCModelClient#clearStm-571 clearStm() %}</td>
<td>
Clears STM state. Memory is cleared wholly or with some
predicate.
Loot at <a href="short-term-memory.html">Conversation</a>
chapter to get more details.
- Second variant of given method with another parameters is
here - <a
href="apis/latest/org/apache/nlpcraft/NCModelClient.html#clearStm-1d8">clearStm()</a>.
+ Second variant of given method with another parameters is
here - {% scaladoc NCModelClient#clearStm-1d8 clearStm() %}.
</td>
</tr>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModelClient.html#clearDialog-571">clearDialog()</a></td>
+ <td>{% scaladoc NCModelClient#clearDialog-571 clearDialog()
%}</td>
<td>
Clears dialog state. Dialog is cleared wholly or with some
predicate.
Loot at <a href="short-term-memory.html">Conversation</a>
chapter to get more details.
- Second variant of given method with another parameters is
here - <a
href="apis/latest/org/apache/nlpcraft/NCModelClient.html#clearDialog-1d8">clearDialog()</a>.
+ Second variant of given method with another parameters is
here - {% scaladoc NCModelClient#clearDialog-1d8 clearDialog() %}.
</td>
</tr>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModelClient.html#close-94c">close()</a></td>
+ <td>{% scaladoc NCModelClient#close-94c close() %}</td>
<td>
Closes client. You can't call another client's methods
after this method was closed.
</td>
@@ -275,7 +306,7 @@ id: api-components
</section>
<section id="model-configuration">
- <h2 class="section-title">Model configuration <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Model Configuration<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
<code>Data Model</code> configuration represented as
@@ -324,7 +355,7 @@ id: api-components
</section>
<section id="model-pipeline">
- <h2 class="section-title">Model pipeline <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Model Pipeline<a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
Model <code>Pipeline</code> is represented as {% scaladoc
NCPipeline NCPipeline %} and
@@ -440,7 +471,7 @@ id: api-components
</section>
<section id="model-behavior">
- <h2 class="section-title">Model behavior overriding<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Model Behavior Overriding<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
There are also several {% scaladoc NCModel NCModel %}
@@ -458,31 +489,31 @@ id: api-components
</thead>
<tbody>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModel.html#onContext-38d">onContext()</a></td>
+ <td>{% scaladoc NCModel#onContext-38d onContext() %}</td>
<td>
Overriding this method allows to prepare result before
intent matching.
</td>
</tr>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModel.html#onMatchedIntent-946">onMatchedIntent()</a></td>
+ <td>{% scaladoc NCModel#onMatchedIntent-946 onMatchedIntent()
%}</td>
<td>
Overriding this method allows to reject matched intent and
continue matching process.
</td>
</tr>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModel.html#onResult-fffffaf3">onResult()</a></td>
+ <td>{% scaladoc NCModel#onResult-fffffaf3 onResult() %}</td>
<td>
Overriding this method allows to replace callback method
execution result.
</td>
</tr>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModel.html#onRejection-4fa">onRejection()</a></td>
+ <td>{% scaladoc NCModel#onRejection-4fa onRejection() %}</td>
<td>
Overriding this method allows to change operation result
when rejection occurs.
</td>
</tr>
<tr>
- <td><a
href="apis/latest/org/apache/nlpcraft/NCModel.html#onError-fffff759">onError()</a></td>
+ <td>{% scaladoc NCModel#onError-fffff759 onError() %}</td>
<td>
Overriding this method allows to change operation result
when any error occurs.
</td>
@@ -496,11 +527,11 @@ id: api-components
<ul class="side-nav">
<li class="side-nav-title">On This Page</li>
<li><a href="#overview">Overview</a></li>
- <li><a href="#model">Model responsibility overview</a></li>
- <li><a href="#client">Client responsibility overview</a></li>
- <li><a href="#model-configuration">Model configuration</a></li>
- <li><a href="#model-pipeline">Model pipeline</a></li>
- <li><a href="#model-behavior">Model behavior overriding</a></li>
+ <li><a href="#model">Data Model Responsibility</a></li>
+ <li><a href="#client">Client Responsibility</a></li>
+ <li><a href="#model-configuration">Model Configuration</a></li>
+ <li><a href="#model-pipeline">Model Pipeline</a></li>
+ <li><a href="#model-behavior">Model Behavior Overriding</a></li>
{% include quick-links.html %}
</ul>
</div>
diff --git a/built-in-builder.html b/built-in-builder.html
index 1dc50d2..a5d9b04 100644
--- a/built-in-builder.html
+++ b/built-in-builder.html
@@ -30,7 +30,7 @@ id: built-in-builder
is designed for simplifying preparing {% scaladoc NCPipeline
NCPipeline %} instance.
It allows to construct {% scaladoc NCPipeline NCPipeline %}
instance
adding nested components via its methods.
- It also contains a number of methods <a
href="apis/latest/org/apache/nlpcraft/NCPipelineBuilder.html#withSemantic-fffff4b0">withSemantic()</a>
+ It also contains a number of methods {% scaladoc
NCPipelineBuilder#withSemantic-fffff4b0 withSemantic() %}
which allow to prepare pipeline instance based on
{% scaladoc nlp/parsers/NCSemanticEntityParser
NCSemanticEntityParser %} and configured language.
Currently only <b>English</b> language is supported with broad set
of built-in components:
diff --git a/built-in-entity-parser.html b/built-in-entity-parser.html
index 7110a16..b29f9d5 100644
--- a/built-in-entity-parser.html
+++ b/built-in-entity-parser.html
@@ -23,7 +23,7 @@ id: built-in-entity-parser
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Built-in Entity Parser<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Overview<a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
{% scaladoc NCEntityParser NCEntityParser %}
@@ -297,7 +297,7 @@ id: built-in-entity-parser
When a semantic element is recognized it is made available to
the model's matching logic as an instance of
the {% scaladoc NCToken NCToken %} interface.
This interface has a method
- <a
href="/apis/latest/org/apache/nlpcraft/NCToken.html">getValue()</a> which
+ {% scaladoc NCToken getValue() %} which
returns the name of the value, if any, by which
that semantic element was recognized. That value name can be
further used in intent matching.
</p>
@@ -356,7 +356,7 @@ id: built-in-entity-parser
<span id="groups" class="section-sub-title">Element Groups <a
href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></span>
<p>
Each semantic element always belongs to one or more groups.
Semantic element provides its groups via
- <a
href="/apis/latest/org/apache/nlpcraft/nlp/parsers/NCSemanticElement.html">getGroups()</a>
method.
+ {% scaladoc nlp/parsers/NCSemanticElement getGroups() %}
method.
By default, if element group is not specified, the element ID
will act as its default group ID.
Group membership is a quick and easy way to organise similar
semantic elements together and use this
categorization in <a href="/intent-matching.html">IDL</a>
intents.
@@ -641,7 +641,7 @@ id: built-in-entity-parser
<code>Line 10</code> shows <code>macro</code> list of {%
scaladoc nlp/parsers/NCSemanticElement NCSemanticElement %} parameter usage.
</li>
<li>
- Note that usage <a
href="apis/latest/org/apache/nlpcraft/NCPipelineBuilder.html#withSemantic-fffff4b0">withSemantic()</a>
+ Note that usage {% scaladoc
NCPipelineBuilder#withSemantic-fffff4b0 withSemantic() %}
method which represented on <code>line 3</code> is
optional.
You can add {% scaladoc nlp/parsers/NCNLPEntityParser
NCNLPEntityParser %}
as usual {% scaladoc NCEntityParser NCEntityParser %}
@@ -743,6 +743,7 @@ id: built-in-entity-parser
<div class="col-md-2 third-column">
<ul class="side-nav">
<li class="side-nav-title">On This Page</li>
+ <li><a href="#overview">Overview</a></li>
<li><a href="#parser-opennlp">OpenNLP Based Parser</a></li>
<li><a href="#parser-stanford">Stanford NLP Based Entity</a></li>
<li><a href="#parser-nlp">NLP Parser</a></li>
diff --git a/built-in-token-enricher.html b/built-in-token-enricher.html
index 158e245..592dcff 100644
--- a/built-in-token-enricher.html
+++ b/built-in-token-enricher.html
@@ -23,7 +23,7 @@ id: built-in-token-enricher
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Built-in Token Enricher<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Overview<a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
{% scaladoc NCTokenEnricher NCTokenEnricher %}
@@ -103,6 +103,7 @@ id: built-in-token-enricher
<div class="col-md-2 third-column">
<ul class="side-nav">
<li class="side-nav-title">On This Page</li>
+ <li><a href="#overview">Overvie</a></li>
<li><a href="#enricher-opennlp-lemmapos">Lemma And POS
Enricher</a></li>
<li><a href="#enricher-opennlp-bracket">Brackets Enricher</a></li>
<li><a href="#enricher-opennlp-quotes">Quotes Enricher</a></li>
diff --git a/built-in-token-parser.html b/built-in-token-parser.html
index 83a2f10..0f1eb27 100644
--- a/built-in-token-parser.html
+++ b/built-in-token-parser.html
@@ -23,7 +23,7 @@ id: built-in-token-parser
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Built-in Token Parser<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Overview<a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
{% scaladoc NCTokenParser NCTokenParser %}
diff --git a/custom-components.html b/custom-components.html
index 2f082f1..18c6347 100644
--- a/custom-components.html
+++ b/custom-components.html
@@ -23,7 +23,7 @@ id: custom-components
<div class="col-md-8 second-column">
<section id="overview">
- <h2 class="section-title">Custom components <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <h2 class="section-title">Overview <a href="#"><i class="top-link fas
fa-fw fa-angle-double-up"></i></a></h2>
<p>
NLPCraft provides a numeric of useful built-in components which
allow to solve a wide range of tasks
@@ -32,8 +32,8 @@ id: custom-components
Let's look how to do it and when it can be useful for all kind of
components step by step.
</p>
</section>
- <section id="token-parser">
- <h2 class="section-title">Token parser <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
+ <section id="token-parsers">
+ <h2 class="section-title">Token parsers<a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You have to implement {% scaladoc NCTokenParser NCTokenParser %}
trait.
</p>
@@ -80,8 +80,8 @@ id: custom-components
</ul>
</section>
- <section id="token-enricher">
- <h2 class="section-title">Token enricher <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <section id="token-enrichers">
+ <h2 class="section-title">Token enrichers<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You have to implement {% scaladoc NCTokenEnricher NCTokenEnricher
%} trait.
</p>
@@ -128,8 +128,8 @@ id: custom-components
</ul>
</section>
- <section id="token-validator">
- <h2 class="section-title">Token validator<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <section id="token-validators">
+ <h2 class="section-title">Token validators<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You have to implement {% scaladoc NCTokenValidator
NCTokenValidator %} trait.
</p>
@@ -156,8 +156,8 @@ id: custom-components
</ul>
</section>
- <section id="entity-parser">
- <h2 class="section-title">Entity parser <a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
+ <section id="entity-parsers">
+ <h2 class="section-title">Entity parsers<a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You have to implement {% scaladoc NCEntityParser NCEntityParser %}
trait.
</p>
@@ -193,8 +193,8 @@ id: custom-components
</ul>
</section>
- <section id="entity-enricher">
- <h2 class="section-title">Entity enricher <a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <section id="entity-enrichers">
+ <h2 class="section-title">Entity enrichers<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You have to implement {% scaladoc NCEntityEnricher
NCEntityEnricher %} trait.
</p>
@@ -231,8 +231,8 @@ id: custom-components
</ul>
</section>
- <section id="entity-mapper">
- <h2 class="section-title">Entity mapper<a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
+ <section id="entity-mappers">
+ <h2 class="section-title">Entity mappers<a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You have to implement {% scaladoc NCEntityMapper NCEntityMapper %}
trait.
</p>
@@ -279,8 +279,8 @@ id: custom-components
</ul>
</section>
- <section id="entity-validator">
- <h2 class="section-title">Entity validator<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
+ <section id="entity-validators">
+ <h2 class="section-title">Entity validators<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You have to implement {% scaladoc NCEntityValidator
NCEntityValidator %} trait.
</p>
@@ -306,8 +306,8 @@ id: custom-components
</ul>
</section>
- <section id="variant-filter">
- <h2 class="section-title">Variant filter<a href="#"><i class="top-link
fas fa-fw fa-angle-double-up"></i></a></h2>
+ <section id="variant-filters">
+ <h2 class="section-title">Variant filters<a href="#"><i
class="top-link fas fa-fw fa-angle-double-up"></i></a></h2>
<p>
You have to implement {% scaladoc NCVariantFilter NCVariantFilter
%} trait.
</p>
@@ -339,14 +339,14 @@ id: custom-components
<ul class="side-nav">
<li class="side-nav-title">On This Page</li>
<li><a href="#overview">Overview</a></li>
- <li><a href="#token-parser">Token parser</a></li>
- <li><a href="#token-enricher">Token enricher</a></li>
- <li><a href="#token-validator">Token validator</a></li>
- <li><a href="#entity-parser">Entity parser</a></li>
- <li><a href="#entity-enricher">Entity enricher</a></li>
- <li><a href="#entity-mapper">Entity mapper</a></li>
- <li><a href="#entity-validator">Entity validator</a></li>
- <li><a href="#variant-filter">Variant filter</a></li>
+ <li><a href="#token-parsers">Token parsers</a></li>
+ <li><a href="#token-enrichers">Token enrichers</a></li>
+ <li><a href="#token-validators">Token validators</a></li>
+ <li><a href="#entity-parsers">Entity parsers</a></li>
+ <li><a href="#entity-enrichers">Entity enrichers</a></li>
+ <li><a href="#entity-mappers">Entity mappers</a></li>
+ <li><a href="#entity-validators">Entity validators</a></li>
+ <li><a href="#variant-filters">Variant filters</a></li>
{% include quick-links.html %}
</ul>
</div>
diff --git a/first-example.html b/first-example.html
index 883a62e..23521c8 100644
--- a/first-example.html
+++ b/first-example.html
@@ -264,7 +264,7 @@ id: first-example
</li>
<li>
<code>Line 11</code> calls a special method
- <a
href="../apis/latest/org/apache/nlpcraft/NCModelClient.html#debugAsk-fffff96c">debugAsk()</a>.
+ {% scaladoc NCModelClient#debugAsk-fffff96c debugAsk() %}.
It allows to check the winning intent and its callback
parameters without actually
calling the intent.
</li>