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 26c8aff WIP.
26c8aff is described below
commit 26c8aff2bab2cf10454e08d2a55c6761b9f3a8ef
Author: Aaron Radzinzski <[email protected]>
AuthorDate: Thu Apr 15 20:32:35 2021 +0300
WIP.
---
_config.yml | 2 -
intent-matching.html | 195 +++++++++++++++++++++++++--------------------------
2 files changed, 96 insertions(+), 101 deletions(-)
diff --git a/_config.yml b/_config.yml
index 3ec83c5..ebe15d6 100644
--- a/_config.yml
+++ b/_config.yml
@@ -62,8 +62,6 @@ exclude:
- apis/javadoc-0.7.2
- apis/javadoc-0.7.3
- apis/javadoc-0.7.4
- - ext
- - fonts
- javadoc
- _site
diff --git a/intent-matching.html b/intent-matching.html
index 962d0ec..7d13e5e 100644
--- a/intent-matching.html
+++ b/intent-matching.html
@@ -394,7 +394,7 @@ id: intent_matching
fragment(when) // insert terms from fragment 'when'.
</pre>
<p><b>NOTES:</b></p>
- <ul>
+ <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>
@@ -426,7 +426,7 @@ id: intent_matching
<p>
<b>NOTES:</b>
</p>
- <ul>
+ <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.
@@ -445,6 +445,100 @@ id: intent_matching
<p></p>
</li>
</ul>
+ <h2 class="section-sub-title">Intent Lifecycle</h2>
+ <p>
+ During NLPCraft data probe start it scans the models provided in
its configuration for the intents. The
+ scanning process goes through JSON/YAML external configurations as
well as model classes when looking
+ for IDL intents. All found intents are compiled into an internal
representation before the data probe
+ completes its start up sequence.
+ </p>
+ <p>
+ Note that not all intents problems can be detected at the
compilation phase, and probe can start with intents
+ not being completely validated. For example, each term in the
intent must evaluate to a boolean result. This can
+ only be checked at runtime. Another example is the number and the
types of parameters passed into IDL function
+ which can only be checked at runtime as well.
+ </p>
+ <p>
+ Intents are compiled only once during the data probe start up
sequence and cannot be re-compiled
+ without data probe restart. Model logic, however, can affect the
intent behavior through <a href="/data-model.html#callbacks">model
callbacks</a>,
+ <a target=_
href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMetadata()">model
metadata</a>,
+ user and company metadata, as well as request data all of which
can change at runtime and
+ are accessible through IDL functions.
+ </p>
+ <h2 class="section-sub-title">Intent Examples</h2>
+ <p>
+ Here's number of intent examples with explanations:
+ </p>
+ <p>
+ <b>Example 1:</b>
+ </p>
+ <pre class="brush: idl">
+ intent=a
+ term~{tok_id() == 'x:id'}
+ term(nums)~{tok_id() == 'nlpcraft:num' &&
lowercase(meta_tok('nlpcraft:num:unittype')) == 'datetime'}[0,2]
+ </pre>
+ <p><b>NOTES:</b></p>
+ <ul>
+ <li>
+ Intent has ID <code>a</code>.
+ </li>
+ <li>
+ Intent uses default conversational support (<code>true</code>)
and default order (<code>false</code>).
+ </li>
+ <li>
+ Intent has two conversational terms that have to be found for
the intent to match. Note that second
+ term is optional as it has <code>[0,2]</code> quantifier.
+ </li>
+ <li>
+ First term matches any single token with ID <code>x:id</code>.
+ </li>
+ <li>
+ Second term can appear zero, once or two times and it matches
token with ID <code>nlpcraft:num</code> with
+ <code>nlpcraft:num:unittype</code> metadata property equal to
<code>'datetime'</code> string.
+ </li>
+ <li>
+ IDL function <code>lowercase</code> used on
<code>nlpcraft:num:unittype</code> metadata property value.
+ </li>
+ <li>
+ Note that since second term has ID (<code>nums</code>) it can
be references by <code>@NCIntentTerm</code>
+ annotation by the callback formal parameter.
+ </li>
+ </ul>
+ <br/>
+ <p>
+ <b>Example 2:</b>
+ </p>
+ <pre class="brush: idl">
+ intent=id2
+ flow='id1 id2'
+ term={tok_id() == 'mytok' && signum(get(meta_tok('score'),
'best')) != -1}
+ term={has_all(tok_groups(), list('actors', 'owners')) &&
size(meta_part('partAlias, 'text')) > 10}
+ </pre>
+ <p><b>NOTES:</b></p>
+ <ul>
+ <li>
+ Intent has ID <code>id2</code>.
+ </li>
+ <li>
+ Intent has dialog flow pattern: <code>'id1 id2'</code>. It
expect sequence of intents <code>id1</code> and
+ <code>id2</code> somewhere in the history of previously
matched intents in the course of the current conversation.
+ </li>
+ <li>
+ Intent has two non-conversational terms. Both terms have to be
present only once (their implicit quantifiers are <code>[1,1]</code>).
+ </li>
+ <li>
+ First term should be a token with ID <code>mytok</code> and
have metadata property <code>score</code> of type
+ map. This map should have a value with the string key
<code>'best'</code>. <code>signum</code> of this map value
+ should not equal <code>-1</code>. Note that built-in functions
(i.e. <code>signum</code>) can only be
+ used on the left values.
+ </li>
+ <li>
+ Second term should be a token that belongs to either
<code>actors</code> or <code>owners</code> group.
+ It should have a part token whose with alias
<code>partAlias</code>. That
+ part token should have metadata property <code>text</code> of
type string, list or map. The length of
+ this string, list or map should be greater than
<code>10</code>.
+ </li>
+ </ul>
<h2 id="idl_functions" class="section-title">IDL Functions</h2>
<p>
IDL provides over 50 built-in functions that can be used in IDL
intent definitions.
@@ -1159,27 +1253,6 @@ id: intent_matching
</pre>
</li>
</ul>
- <h2 class="section-sub-title">Intent Lifecycle</h2>
- <p>
- During NLPCraft data probe start it scans the models provided in
its configuration for the intents. The
- scanning process goes through JSON/YAML external configurations as
well as model classes when looking
- for IDL intents. All found intents are compiled into an internal
representation before the data probe
- completes its start up sequence.
- </p>
- <p>
- Note that not all intents problems can be detected at the
compilation phase, and probe can start with intents
- not being completely validated. For example, each term in the
intent must evaluate to a boolean result. This can
- only be checked at runtime. Another example is the number and the
types of parameters passed into IDL function
- which can only be checked at runtime as well.
- </p>
- <p>
- Intents are compiled only once during the data probe start up
sequence and cannot be re-compiled
- without data probe restart. Model logic, however, can affect the
intent behavior through <a href="/data-model.html#callbacks">model
callbacks</a>,
- <a target=_
href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getMetadata()">model
metadata</a>,
- user and company metadata, as well as request data all of which
can change at runtime and
- are accessible through IDL functions.
- </p>
- <h2 id="idl_syntax_highlight" class="section-sub-title">IDL Syntax
Highlighting</h2>
</section>
<section id="binding">
<h2 class="section-title">Binding Intent</h2>
@@ -1789,82 +1862,6 @@ id: intent_matching
</tbody>
</table>
</section>
- <section id="examples">
- <h2 class="section-title">Intent Examples</h2>
- <p>
- Here's number of intent examples with explanations:
- </p>
- <p>
- <b>Example 1:</b>
- </p>
- <pre class="brush: idl">
- intent=a
- term~{tok_id() == 'x:id'}
- term(nums)~{tok_id() == 'nlpcraft:num' &&
lowercase(meta_tok('nlpcraft:num:unittype')) == 'datetime'}[0,2]
- </pre>
- <p><b>NOTES:</b></p>
- <ul>
- <li>
- Intent has ID <code>a</code>.
- </li>
- <li>
- Intent uses default conversational support (<code>true</code>)
and default order (<code>false</code>).
- </li>
- <li>
- Intent has two conversational terms that have to be found for
the intent to match. Note that second
- term is optional as it has <code>[0,2]</code> quantifier.
- </li>
- <li>
- First term matches any single token with ID <code>x:id</code>.
- </li>
- <li>
- Second term can appear zero, once or two times and it matches
token with ID <code>nlpcraft:num</code> with
- <code>nlpcraft:num:unittype</code> metadata property equal to
<code>'datetime'</code> string.
- </li>
- <li>
- IDL function <code>lowercase</code> used on
<code>nlpcraft:num:unittype</code> metadata property value.
- </li>
- <li>
- Note that since second term has ID (<code>nums</code>) it can
be references by <code>@NCIntentTerm</code>
- annotation by the callback formal parameter.
- </li>
- </ul>
- <br/>
- <p>
- <b>Example 2:</b>
- </p>
- <pre class="brush: idl">
- intent=id2
- flow='id1 id2'
- term={tok_id() == 'mytok' && signum(get(meta_tok('score'),
'best')) != -1}
- term={has_all(tok_groups(), list('actors', 'owners')) &&
size(meta_part('partAlias, 'text')) > 10}
- </pre>
- <p><b>NOTES:</b></p>
- <ul>
- <li>
- Intent has ID <code>id2</code>.
- </li>
- <li>
- Intent has dialog flow pattern: <code>'id1 id2'</code>. It
expect sequence of intents <code>id1</code> and
- <code>id2</code> somewhere in the history of previously
matched intents in the course of the current conversation.
- </li>
- <li>
- Intent has two non-conversational terms. Both terms have to be
present only once (their implicit quantifiers are <code>[1,1]</code>).
- </li>
- <li>
- First term should be a token with ID <code>mytok</code> and
have metadata property <code>score</code> of type
- map. This map should have a value with the string key
<code>'best'</code>. <code>signum</code> of this map value
- should not equal <code>-1</code>. Note that built-in functions
(i.e. <code>signum</code>) can only be
- used on the left values.
- </li>
- <li>
- Second term should be a token that belongs to either
<code>actors</code> or <code>owners</code> group.
- It should have a part token whose with alias
<code>partAlias</code>. That
- part token should have metadata property <code>text</code> of
type string, list or map. The length of
- this string, list or map should be greater than
<code>10</code>.
- </li>
- </ul>
- </section>
</div>
<div class="col-md-2 third-column">
<ul class="side-nav">