This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch web-site
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft-website.git
The following commit(s) were added to refs/heads/web-site by this push:
new 6681125 Update.
6681125 is described below
commit 6681125cfa9e6869349da8d5ab0020d8912008df
Author: Aaron Radzinski <[email protected]>
AuthorDate: Fri Jun 4 21:44:36 2021 -0700
Update.
---
assets/css/style.css | 2 +-
assets/css/style.css.map | 4 +-
blogs.html | 2 +-
blogs/nlpcraft-idl-intent-definition-language.html | 93 +++++++++++++++++++++
download.html | 8 +-
feed.xml | 2 +-
first-example.html | 2 +-
images/ru-flag-16.png | Bin 0 -> 1250 bytes
images/ru-flag-24.png | Bin 0 -> 1342 bytes
index.html | 2 +-
intent-matching.html | 8 +-
11 files changed, 109 insertions(+), 14 deletions(-)
diff --git a/assets/css/style.css b/assets/css/style.css
index 10854bd..c5fd1fb 100644
--- a/assets/css/style.css
+++ b/assets/css/style.css
@@ -1,3 +1,3 @@
-@font-face{font-family:'CanaroBlack';src:url("../../fonts/rene_bieder_-_canaro_black-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_black-webfont.eot?#iefix")
format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_black-webfont.woff")
format("woff"),url("../../fonts/rene_bieder_-_canaro_black-webfont.ttf")
format("truetype"),url("../../fonts/rene_bieder_-_canaro_black-webfont.svg#canaroblack")
format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'
[...]
+@font-face{font-family:'CanaroBlack';src:url("../../fonts/rene_bieder_-_canaro_black-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_black-webfont.eot?#iefix")
format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_black-webfont.woff")
format("woff"),url("../../fonts/rene_bieder_-_canaro_black-webfont.ttf")
format("truetype"),url("../../fonts/rene_bieder_-_canaro_black-webfont.svg#canaroblack")
format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'
[...]
/*# sourceMappingURL=style.css.map */
\ No newline at end of file
diff --git a/assets/css/style.css.map b/assets/css/style.css.map
index 2a2f6c2..c6fa199 100644
--- a/assets/css/style.css.map
+++ b/assets/css/style.css.map
@@ -29,7 +29,7 @@
"/*\n * Licensed to the Apache Software Foundation (ASF) under
one or more\n * contributor license agreements. See the NOTICE file
distributed with\n * this work for additional information regarding copyright
ownership.\n * The ASF licenses this file to You under the Apache License,
Version 2.0\n * (the \"License\"); you may not use this file except in
compliance with\n * the License. You may obtain a copy of the License at\n *\n
* http://www.apache.org/licenses/LICENSE-2.0\n *\ [...]
"/*\r\n * Licensed to the Apache Software Foundation (ASF)
under one or more\r\n * contributor license agreements. See the NOTICE file
distributed with\r\n * this work for additional information regarding copyright
ownership.\r\n * The ASF licenses this file to You under the Apache License,
Version 2.0\r\n * (the \"License\"); you may not use this file except in
compliance with\r\n * the License. You may obtain a copy of the License at\r\n
*\r\n * http://www.apache.org/licenses/ [...]
"/*\r\n * Licensed to the Apache Software Foundation (ASF)
under one or more\r\n * contributor license agreements. See the NOTICE file
distributed with\r\n * this work for additional information regarding copyright
ownership.\r\n * The ASF licenses this file to You under the Apache License,
Version 2.0\r\n * (the \"License\"); you may not use this file except in
compliance with\r\n * the License. You may obtain a copy of the License at\r\n
*\r\n * http://www.apache.org/licenses/ [...]
- "/*\r\n * Licensed to the Apache Software Foundation (ASF)
under one or more\r\n * contributor license agreements. See the NOTICE file
distributed with\r\n * this work for additional information regarding copyright
ownership.\r\n * The ASF licenses this file to You under the Apache License,
Version 2.0\r\n * (the \"License\"); you may not use this file except in
compliance with\r\n * the License. You may obtain a copy of the License at\r\n
*\r\n * http://www.apache.org/licenses/ [...]
+ "/*\r\n * Licensed to the Apache Software Foundation (ASF)
under one or more\r\n * contributor license agreements. See the NOTICE file
distributed with\r\n * this work for additional information regarding copyright
ownership.\r\n * The ASF licenses this file to You under the Apache License,
Version 2.0\r\n * (the \"License\"); you may not use this file except in
compliance with\r\n * the License. You may obtain a copy of the License at\r\n
*\r\n * http://www.apache.org/licenses/ [...]
"/*\r\n * Licensed to the Apache Software Foundation (ASF)
under one or more\r\n * contributor license agreements. See the NOTICE file
distributed with\r\n * this work for additional information regarding copyright
ownership.\r\n * The ASF licenses this file to You under the Apache License,
Version 2.0\r\n * (the \"License\"); you may not use this file except in
compliance with\r\n * the License. You may obtain a copy of the License at\r\n
*\r\n * http://www.apache.org/licenses/ [...]
"/*\r\n * Licensed to the Apache Software Foundation (ASF)
under one or more\r\n * contributor license agreements. See the NOTICE file
distributed with\r\n * this work for additional information regarding copyright
ownership.\r\n * The ASF licenses this file to You under the Apache License,
Version 2.0\r\n * (the \"License\"); you may not use this file except in
compliance with\r\n * the License. You may obtain a copy of the License at\r\n
*\r\n * http://www.apache.org/licenses/ [...]
"/*\r\n * Licensed to the Apache Software Foundation (ASF)
under one or more\r\n * contributor license agreements. See the NOTICE file
distributed with\r\n * this work for additional information regarding copyright
ownership.\r\n * The ASF licenses this file to You under the Apache License,
Version 2.0\r\n * (the \"License\"); you may not use this file except in
compliance with\r\n * the License. You may obtain a copy of the License at\r\n
*\r\n * http://www.apache.org/licenses/ [...]
@@ -50,5 +50,5 @@
"/*\r\n * Licensed to the Apache Software Foundation (ASF)
under one or more\r\n * contributor license agreements. See the NOTICE file
distributed with\r\n * this work for additional information regarding copyright
ownership.\r\n * The ASF licenses this file to You under the Apache License,
Version 2.0\r\n * (the \"License\"); you may not use this file except in
compliance with\r\n * the License. You may obtain a copy of the License at\r\n
*\r\n * http://www.apache.org/licenses/ [...]
],
"names": [],
- "mappings":
"ACiBA,UAAU,CACN,WAAW,CAAE,aAAa,CAC1B,GAAG,CAAE,yDAAyD,CAC9D,GAAG,CAAE,gEAAgE,CAAC,2BAA2B,CAC7F,0DAA0D,CAAC,cAAc,CACzE,yDAAyD,CAAC,kBAAkB,CAC5E,qEAAqE,CAAC,aAAa,CACvF,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,MAAM,CAGtB,UAAU,CACN,WAAW,CAAE,YAAY,CACzB,GAAG,CAAE,wDAAwD,CAC7D,GAAG,CAAE,+DAA+D,CAAC,2BAA2B,CAC5F,yDAAyD,CAAC,cAAc,CACxE,wDAAwD,CAAC,kBAAkB,CAC3E,wEAAwE,CAAC,aAAa,CAC1F,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,MAAM,CAGtB,UAAU,CACN,WAAW,CAAE,YAAY,CACzB,GAAG,CAAE,wDAAwD,CAC7D,GAAG,CAAE,+DAA
[...]
+ "mappings":
"ACiBA,UAAU,CACN,WAAW,CAAE,aAAa,CAC1B,GAAG,CAAE,yDAAyD,CAC9D,GAAG,CAAE,gEAAgE,CAAC,2BAA2B,CAC7F,0DAA0D,CAAC,cAAc,CACzE,yDAAyD,CAAC,kBAAkB,CAC5E,qEAAqE,CAAC,aAAa,CACvF,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,MAAM,CAGtB,UAAU,CACN,WAAW,CAAE,YAAY,CACzB,GAAG,CAAE,wDAAwD,CAC7D,GAAG,CAAE,+DAA+D,CAAC,2BAA2B,CAC5F,yDAAyD,CAAC,cAAc,CACxE,wDAAwD,CAAC,kBAAkB,CAC3E,wEAAwE,CAAC,aAAa,CAC1F,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,MAAM,CAGtB,UAAU,CACN,WAAW,CAAE,YAAY,CACzB,GAAG,CAAE,wDAAwD,CAC7D,GAAG,CAAE,+DAA
[...]
}
\ No newline at end of file
diff --git a/blogs.html b/blogs.html
index dca1b7f..93734a6 100644
--- a/blogs.html
+++ b/blogs.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async
src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script>
<script> window.dataLayer = window.dataLayer || []; function
gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config',
'UA-180663034-1'); </script><meta charset="utf-8"><meta
http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta
name="description" content="An open sourc [...]
+<!doctype html><html lang="en"> <script async
src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script>
<script> window.dataLayer = window.dataLayer || []; function
gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config',
'UA-180663034-1'); </script><meta charset="utf-8"><meta
http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta
name="description" content="An open sourc [...]
diff --git a/blogs/nlpcraft-idl-intent-definition-language.html
b/blogs/nlpcraft-idl-intent-definition-language.html
new file mode 100644
index 0000000..47d522d
--- /dev/null
+++ b/blogs/nlpcraft-idl-intent-definition-language.html
@@ -0,0 +1,93 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!doctype html><html lang="en"> <script async
src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script>
<script> window.dataLayer = window.dataLayer || []; function
gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config',
'UA-180663034-1'); </script><meta charset="utf-8"><meta
http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta
name="description" content="An open sourc [...]
+ intent=xa
+ flow="^(?:login)(^:logout)*$"
+ meta={'enabled': true}
+ term(a)={!(tok_id()) != "z"}[1,3]
+ term(b)={
+ meta_intent('enabled') == true && // Must be active.
+ month() == 1 // January.
+ }
+ term(c)~{
+ // Variables.
+ @tokId = tok_id()
+ @usrTypes = meta_model('user_types')
+
+ // Predicate.
+ (tokId == 'order' || tokId == 'order_cancel') &&
+ has_all(@usrTypes, list(1, 2, 3) &&
+ abs(meta_tok('order:size')) > 10)
+ </pre><p><b>NOTES:</b></p><ul class="fixed"><li> The intent name is
<code>xa</code>.<li> The intent contains three terms. Term is an element that
defines a predicate, each of which must pass for the intent to be selected:<ul
class="fixed"><li> <code>term(a)</code> - the parsed request must contain
between one and three tokens with identifiers other than <code>z</code>,
without taking into account data from the dialogue history (term type
<code>=</code>).<li> <code>term(b)</code> - th [...]
+ intent=xb
+ flow=/#flowModelMethod/
+ ordered=true
+ term(a)=/org.mypackage.MyClass#termMethod/?
+ fragment(frag)
+ </pre><p><b>NOTES:</b></p><ul class="fixed"><li> The intent name is
<code>xb</code>.<li> <code>term(a)</code> The intent can contain one optional
term (<code>?</code> quantifier, detailed explanations will be given below),
defined in the code - <code>org.mypackage.MyClass#termMethod</code> method.<li>
<code>fragment(frag)</code> Fragment with identifier <code>frag</code> extends
the list of terms of the intent with additional terms that are defined
elsewhere (in <code>fragment</code> [...]
+ import('http://mysite.com/nlp/idls/external.idl)
+ </pre><b><code>fragment</code> Statement</b><p> It contains the
<code>fragment</code> keyword with the name and a list of terms. Terms can be
parameterized. An example of a simple fragment:</p><pre class="brush: idl">
+ fragment=buzz term~{tok_id() == 'x:alarm'}
+ </pre><p> An example of a parameterized fragment with arguments
<code>a</code> and <code>b</code>:</p><pre class="brush: idl">
+ fragment=p1
+ term={
+ meta_frag('a') &&
+ has_any(get(meta_frag('b'), 'Москва'), list(1, 2))
+ }
+ </pre><p> Below is an example of using this fragment in an intent. Note
that fragment’s parameters (its metadata) is passed using JSON format:</p><pre
class="brush: idl">
+ intent=i1
+ fragment(p1, {'a': true, 'b': {'Москва': [1, 2, 3]}})
+ </pre><b><code>intent</code> Statement</b><p> This statement is the core
element of IDL allowing to declare the intent. Here's the example of the simple
intent:</p><pre class="brush: idl">
+ intent=xa
+ flow="^(?:login)(^:logout)*$"
+ meta={'enabled': true}
+ term(a)={!(tok_id()) != "z"}[1,3]
+ </pre><p> Every intent statement consists of the following
elements:</p><ul class="fixed"><li><p><b>Intent Name</b></p><p> Required
element. The name is a unique identifier within the model. Below is an example
of using a reference to the <code>xa</code> intent.</p><pre class="brush: java">
+ @NCIntentRef("xa")
+ fun onTimeMatch(
+ ctx: NCIntentMatch,
+ @NCIntentTerm("a") tok: NCToken
+ ): NCResult { ... }
+ </pre><li><p><b>Intent Terms</b></p><p> At least one term is
required. Term is the main element of the intent definition. Term consists of
the predicate over a token (term body). The constituent parts of the predicate
can be based on the token or on some other factors.</p><p> Here's how an
intent's term is defined:</p><ul class="fixed"><li>The <code>term</code>
keyword. Required element.<li> Name in parentheses. Optional. Used to create
references to the found token in the ca [...]
+ term(nums)~{tok_id() == 'nlpcraft:num'} //
Conversational '~' term.
+ term(nums)={tok_id() != 'z'} // Non-conversational '='
term.
+ </pre><li><p> The term body. Required element. There are
two ways to define the term body: using IDL script with built-in functions or
in external Java-based code:</p><pre class="brush: idl">
+ term(nums)={tok_id() == 'nlpcraft:num'} // IDL script.
+ term(yes)~{true} // IDL script.
+ term~/org.mypackage.MyClass#termMethod/? // Reference
to external code.
+ </pre><p> Note the special syntax for the last term. The
existing set of built-in functions are typically enough to define many terms of
the intent. But, if necessary, the programmer can create her own predicates in
Java, Scala, Kotlin, Groovy or any other Java based language and write them in
the term body. That is, NLPCraft IDL can have snippets of code written entirely
in other languages:</p><pre class="brush: idl">
+ term~/org.mypackage.MyClass#termMethod/? // Reference
to external code.
+ </pre><p> This function <code>termMethod</code> receives
an argument that contains all the necessary data on the user's request, and as
the output it should return the value of a specific type.</p><li><p>
Quantifier. Optional. The default value is <code>[1, 1]</code>. The following
types of quantifiers are supported:</p><ul class="fixed"><li><code>[M,
N]</code> - the term must be found from <code>N</code> to <code>M</code>
times.<li><code>*</code> - the term must be f [...]
+ term(nums)={tok_id() == 'nlpcraft:num'}[1,2] // The
request must contain one or two tokens with the ID “nlpcraft: num”.
+ term(nums)={tok_id() == 'nlpcraft:num'}* // The
request must contain zero or more tokens with the ID “nlpcraft: num”.
+ </pre></ul><li><p><b>IDL Built-In Functions</b></p><p>
NLPCraft IDL provides over 140 <a
href="/intent-matching.html#idl_functions">built-in functions</a> that can be
used in term definition. These functions can be conventionally classified into
the following categories:</p><ul class="fixed"><li>Based on base tokens
properties - token IDs, groups, parent, hierarchy, etc. Examples:
<code>tok_id()</code>, <code>tok_groups()</code>,
<code>tok_parent()</code>.<li>NLP-base [...]
+ term(t2)={
+ @a = meta_model('a')
+ @list = list(1, 2, 3, 4)
+
+ (@a == 42 || @a == 44) && has_all(@list, list(3, 2))
+ }
+ </pre><p> Local variables are defined and used with the special
prefix <code>@</code>. They used to avoid repeated computations and
shortening/simplifying of the IDL term predicate
expressions.</p><li><p><b>Intent Fragments</b></p><p> Fragment is a named set
of terms that is created to be reusable across intents. See example by
following this <a
href="/intent-matching.html#idl">link</a>.</p><li><p><b>Intent Flow</b></p><p>
Here we define an additional intent selection rule ba [...]
+ flow="^(?:login)(^:logout)*$"
+ </pre><p> This rule means that for the intent to be matched, it is
necessary that within the current session the intent with the
<code>login</code> identifier has already been matched before, and not with
identifier <code>logout</code>.</p><p> If it is necessary to define more
complex logic, it can also be moved into user code written in any Java-based
language, like the term body:</p><pre class="brush: scala">
+ @NCIntent("intent=x
+ flow=/com.company.dialog.Flow#customFlow/
+ term~{tok_id() == 'some_id'}"
+ )
+ def onX(): NCResult = { .. }
+ </pre><p> The predicate defined in the method
<code>customFlow()</code> receives at the input a list with all intents
information, previously matched within the current session, and returns a
boolean value.</p><li><p><b>Intent Metadata</b></p><p> Optional element. A
additional dataset that can be used by term predicates presented in JSON
format.</p><li><p><b>Ordered Flag</b></p><p> Optional element. The default is
<code>false</code>. Defines whether or not the order of the te [...]
diff --git a/download.html b/download.html
index d922040..df67945 100644
--- a/download.html
+++ b/download.html
@@ -51,15 +51,15 @@
</pre><div class="bq warn"><p> <b>GitHub vs. Apache
Release</b></p><p> Note that cloned GitHub repository is NOT an official Apache
release and it does not come with the guarantees made by the official <a
href="#src">Apache release</a> in terms of the licensing. GitHub repository may
include content not licensed under ASL 2.0. Only the official <a
href="#src">Apache source release</a> is guaranteed to be cleanly licensed
under ASL 2.0.</p></div></section><section id="java-cli [...]
<dependency>
<groupId>org.apache.nlpcraft</groupId>
-
<artifactId>nlpcraft-java-client</artifactId>
+ <artifactId>java-client</artifactId>
<version>0.7.5</version>
</dependency>
</pre></div><div class="tab-pane fade"
id="nav-java-client-grape" role="tabpanel"><pre class="brush: java">
- @Grab ('org.apache.nlpcraft:nlpcraft-java-client:0.7.5')
+ @Grab ('org.apache.nlpcraft:java-client:0.7.5')
</pre></div><div class="tab-pane fade"
id="nav-java-client-gradle" role="tabpanel"><pre class="brush: java">
dependencies {
- runtime group: 'org.apache.nlpcraft', name:
'nlpcraft-java-client', version: '0.7.5'
+ runtime group: 'org.apache.nlpcraft', name:
'java-client', version: '0.7.5'
}
</pre></div><div class="tab-pane fade"
id="nav-java-client-sbt" role="tabpanel"><pre class="brush: scala">
- libraryDependencies += "org.apache.nlpcraft" %
"nlpcraft-java-client" % "0.7.5"
+ libraryDependencies += "org.apache.nlpcraft" %
"java-client" % "0.7.5"
</pre></div></div><div class="bq info"><p> <b>Latest
Version</b></p><p> <code>0.7.5</code> is the latest Java Client version. You
can replace it with a desired version.</p></div></section></div><div
class="col-md-2 third-column"><ul class="side-nav"><li
class="side-nav-title">On This Page<li><a href="#src">Source Release</a><li><a
href="#zip">Binary Release</a><li><a href="#build">Building Binaries</a><li><a
href="#verification">Verification</a><li><a href="#maven">Ma [...]
diff --git a/feed.xml b/feed.xml
index 98e846c..23a8981 100644
--- a/feed.xml
+++ b/feed.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8"?><feed
xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/"
version="4.1.1">Jekyll</generator><link href="http://localhost:4000/feed.xml"
rel="self" type="application/atom+xml" /><link href="http://localhost:4000/"
rel="alternate" type="text/html"
/><updated>2021-05-25T08:22:57-07:00</updated><id>http://localhost:4000/feed.xml</id><title
type="html">Apache NLPCraft</title></feed>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?><feed
xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/"
version="4.1.1">Jekyll</generator><link href="http://localhost:4000/feed.xml"
rel="self" type="application/atom+xml" /><link href="http://localhost:4000/"
rel="alternate" type="text/html"
/><updated>2021-06-04T21:39:47-07:00</updated><id>http://localhost:4000/feed.xml</id><title
type="html">Apache NLPCraft</title></feed>
\ No newline at end of file
diff --git a/first-example.html b/first-example.html
index 0615698..7d831c4 100644
--- a/first-example.html
+++ b/first-example.html
@@ -190,5 +190,5 @@ class LightSwitchKotlinModel :
NCModelFileAdapter("lightswitch_model.yaml") {
</pre></section><section id="server"><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><nav><div class="nav nav-tabs" role="tablist"> <a
class="nav-item nav-link active" data-toggle="tab" href="#nav-srv-cmd"
role="tab">Command</a> <a class="nav-item nav-link" data-toggle="tab"
href="#nav-srv-out" role="tab">Output <i class="fa fa-desktop output"></i></
[...]
$ bin/nlpcraft.sh start-server
</pre></div><div class="tab-pane fade show" id="nav-srv-out"
role="tabpanel"><p></p><p> <img class="img-fluid" alt=""
src="/images/first_example_fig2.png"></p></div></div></section><section
id="test"><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 int [...]
- $ bin/nlpcraft.sh test-model
--cp=~/LightSwitch/target/classes --mdls=demo.LightSwitch
+ $ bin/nlpcraft.sh test-model
--cp=~/LightSwitch/target/classes --mdls=demo.LightSwitchModel
</pre></div><div class="tab-pane fade show" id="nav-test-out"
role="tabpanel"><p></p><p> <img style="max-width: 910px !important;"
class="img-fluid" alt=""
src="/images/first_example_fig4.png"></p></div></div></section><section><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.</p></s [...]
diff --git a/images/ru-flag-16.png b/images/ru-flag-16.png
new file mode 100644
index 0000000..15a0078
Binary files /dev/null and b/images/ru-flag-16.png differ
diff --git a/images/ru-flag-24.png b/images/ru-flag-24.png
new file mode 100644
index 0000000..c43b0d7
Binary files /dev/null and b/images/ru-flag-24.png differ
diff --git a/index.html b/index.html
index eb70347..87ca8aa 100644
--- a/index.html
+++ b/index.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async
src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script>
<script> window.dataLayer = window.dataLayer || []; function
gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config',
'UA-180663034-1'); </script><meta charset="utf-8"><meta
http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta
name="description" content="An open sourc [...]
+<!doctype html><html lang="en"> <script async
src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script>
<script> window.dataLayer = window.dataLayer || []; function
gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config',
'UA-180663034-1'); </script><meta charset="utf-8"><meta
http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta
name="description" content="An open sourc [...]
diff --git a/intent-matching.html b/intent-matching.html
index c480b1e..9ef1c6a 100644
--- a/intent-matching.html
+++ b/intent-matching.html
@@ -15,8 +15,10 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async
src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script>
<script> window.dataLayer = window.dataLayer || []; function
gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config',
'UA-180663034-1'); </script><meta charset="utf-8"><meta
http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta
name="description" content="An open sourc [...]
- intent=x term(a)~{tok_id() == 'my_elm'} term(b)={has(tok_groups(),
"my_group")}
+<!doctype html><html lang="en"> <script async
src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script>
<script> window.dataLayer = window.dataLayer || []; function
gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config',
'UA-180663034-1'); </script><meta charset="utf-8"><meta
http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta
name="description" content="An open sourc [...]
+ intent=x
+ term(a)~{tok_id() == 'my_elm'}
+ term(b)={has(tok_groups(), "my_group")}
</pre><p> IDL intent defines a match between the parsed input
utterance, i.e. the collection of <a class="not-code" target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">tokens</a>, and the
user-define callback method. To accomplish that, IDL through its <a
href="#idl_functions">functions</a> provides access to the following
information:</p><ul><li> Basic <a class="not-code" target="javadoc"
href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">token pr [...]
intent=xa
flow="^(?:login)(^:logout)*$"
@@ -518,7 +520,7 @@ or_else(meta_model('some_prop'), @dflt)
}
],
"intents": [
- "intent=alarm term~{tok_id()=='x:alarm'}
term(nums)~{tok_id()=='nlpcraft:num' && ~nlpcraft:num:unittype=='datetime' &&
~nlpcraft:num:isequalcondition==true}[0,7]"
+ "intent=alarm term~{tok_id()=='x:alarm'}
term(nums)~{tok_id() == 'nlpcraft:num' && meta_tok('nlpcraft:num:unittype') ==
'datetime' && meta_tok('nlpcraft:num:isequalcondition') == true}[0,7]"
]
}
</pre><pre class="brush: java, highlight: [1]">