You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2021/01/31 08:08:10 UTC

[incubator-nlpcraft-website] branch web-site updated: WIP.

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 e2daf75  WIP.
e2daf75 is described below

commit e2daf75abc7c4ed510a21dfba66ab726a49a7468
Author: Aaron Radzinski <ar...@datalingvo.com>
AuthorDate: Sun Jan 31 00:08:00 2021 -0800

    WIP.
---
 404.html                               |   2 +-
 assets/css/style.css                   |   2 +-
 assets/css/style.css.map               |   8 +--
 basic-concepts.html                    |   2 +-
 blogs.html                             |   2 +-
 blogs/composable_named_entities.html   |   4 +-
 blogs/quick_intro_apache_nlpcraft.html |   8 +--
 blogs/short_term_memory.html           |   2 +-
 cheat-sheet.html                       | 128 ++++++++++++++++-----------------
 community.html                         |   4 +-
 data-model.html                        |  10 +--
 docs.html                              |   2 +-
 download.html                          |  14 ++--
 examples/alarm_clock.html              |  10 +--
 examples/light_switch.html             |  14 ++--
 examples/sql_model.html                |   8 +--
 examples/weather_bot.html              |  10 +--
 feed.xml                               |   2 +-
 first-example.html                     |  22 +++---
 getting-started.html                   |   6 +-
 images/apache_20_logo2-h32.png         | Bin 0 -> 4038 bytes
 images/asf20-h64.png                   | Bin 0 -> 10834 bytes
 images/asf_logo-h24.png                | Bin 0 -> 3360 bytes
 images/asf_logo-h36.png                | Bin 0 -> 5008 bytes
 images/corenlp-logo-h48.png            | Bin 0 -> 7127 bytes
 images/github_logo-h32.png             | Bin 0 -> 3052 bytes
 images/github_logo_white-h20.png       | Bin 0 -> 140 bytes
 images/google-cloud-logo-small-h32.png | Bin 0 -> 2429 bytes
 images/groovy-h18.png                  | Bin 0 -> 2206 bytes
 images/groovy-h32.png                  | Bin 0 -> 3709 bytes
 images/java-h32.png                    | Bin 0 -> 2783 bytes
 images/java2-h20.png                   | Bin 0 -> 2496 bytes
 images/java2-h32.png                   | Bin 0 -> 4095 bytes
 images/kotlin-h18.png                  | Bin 0 -> 2645 bytes
 images/kotlin-h32.png                  | Bin 0 -> 4189 bytes
 images/nlpcraft_logo_white-h24.gif     | Bin 0 -> 1343 bytes
 images/nlpcraft_logo_white-h24.png     | Bin 0 -> 2412 bytes
 images/opennlp-logo-h32.png            | Bin 0 -> 7127 bytes
 images/scala-logo-h16.png              | Bin 0 -> 2196 bytes
 images/scala-logo-h24.png              | Bin 0 -> 2965 bytes
 images/spacy-logo-h32.png              | Bin 0 -> 5121 bytes
 images/swagger-h32.png                 | Bin 0 -> 3212 bytes
 index.html                             |   2 +-
 installation.html                      |   2 +-
 integrations.html                      |  10 +--
 intent-matching.html                   |   6 +-
 metrics-and-tracing.html               |   4 +-
 relnotes/release-notes-0.5.0.html      |   2 +-
 relnotes/release-notes-0.6.2.html      |   2 +-
 relnotes/release-notes-0.7.0.html      |   2 +-
 relnotes/release-notes-0.7.1.html      |   2 +-
 relnotes/release-notes-0.7.2.html      |   2 +-
 relnotes/release-notes-0.7.3.html      |   2 +-
 server-and-probe.html                  |  18 ++---
 tools/embedded_probe.html              |   4 +-
 tools/script.html                      |   6 +-
 tools/sql_model_gen.html               |   6 +-
 tools/syn_tool.html                    |  12 ++--
 tools/test_framework.html              |   8 +--
 use-cases.html                         |   2 +-
 using-rest.html                        |   4 +-
 61 files changed, 177 insertions(+), 179 deletions(-)

diff --git a/404.html b/404.html
index d7ec951..343f16a 100644
--- a/404.html
+++ b/404.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/assets/css/style.css b/assets/css/style.css
index 1d55ff4..6cd41e8 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 18095c1..9d851fb 100644
--- a/assets/css/style.css.map
+++ b/assets/css/style.css.map
@@ -27,14 +27,14 @@
 	"sourcesContent": [
 		"/*\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/ [...]
 		"/*\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/ [...]
 		"/*\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/ [...]
@@ -48,5 +48,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/basic-concepts.html b/basic-concepts.html
index 5e17dc1..6763bcc 100644
--- a/basic-concepts.html
+++ b/basic-concepts.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.html b/blogs.html
index 0726192..d958d7e 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/composable_named_entities.html b/blogs/composable_named_entities.html
index f518758..7b7dd09 100644
--- a/blogs/composable_named_entities.html
+++ b/blogs/composable_named_entities.html
@@ -15,7 +15,7 @@
  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 [...]
 "elements": [
   {
     "id": "custom:city:usa",
@@ -41,4 +41,4 @@
     ]
   }
 ]
-    </pre><p> In this example, we defined a new named entity <code>custom:airport:usa</code>. In its definition we not only filter cities for the USA but also added a prefix that would indicate that this is an airport (learn more about token DSL syntax <a href="https://nlpcraft.apache.org/data-model.html#dsl">here</a>).</p><p> Composable named entities can be nested but not recursive. All the normalized metadata of the constituent (part) entities - of any nesting depths - is accessible t [...]
+    </pre><p> In this example, we defined a new named entity <code>custom:airport:usa</code>. In its definition we not only filter cities for the USA but also added a prefix that would indicate that this is an airport (learn more about token DSL syntax <a href="https://nlpcraft.apache.org/data-model.html#dsl">here</a>).</p><p> Composable named entities can be nested but not recursive. All the normalized metadata of the constituent (part) entities - of any nesting depths - is accessible t [...]
diff --git a/blogs/quick_intro_apache_nlpcraft.html b/blogs/quick_intro_apache_nlpcraft.html
index 898a1b3..2db6dd6 100644
--- a/blogs/quick_intro_apache_nlpcraft.html
+++ b/blogs/quick_intro_apache_nlpcraft.html
@@ -15,7 +15,7 @@
  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 [...]
         id: "nlpcraft.lightswitch.ex"
         name: "Light Switch Example Model"
         version: "1.0"
@@ -54,7 +54,7 @@
               - "no &lt;LIGHT&gt;"
         intents:
           - "intent=ls term(act)={groups @@ 'act'} term(loc)={id == 'ls:loc'}*"
-    </pre><p><b>NOTES:</b></p><ul><li> We define 3 model elements (corresponding to the NEs we’ve come up with earlier):<ul><li><code>"ls:loc"</code> to define the location.<li><code>"ls:on"</code> to define ON action.<li><code>"ls:off"</code> to define OFF action.</ul><li> We grouped <code>"ls:on"</code> and <code>"ls:off"</code> into group <code>"act"</code> for easier use in intent.<li> Each model element is defined through synonyms using macros and Synonym DSL which is similar to Reg [...]
+    </pre><p><b>NOTES:</b></p><ul><li> We define 3 model elements (corresponding to the NEs we’ve come up with earlier):<ul><li><code>"ls:loc"</code> to define the location.<li><code>"ls:on"</code> to define ON action.<li><code>"ls:off"</code> to define OFF action.</ul><li> We grouped <code>"ls:on"</code> and <code>"ls:off"</code> into group <code>"act"</code> for easier use in intent.<li> Each model element is defined through synonyms using macros and Synonym DSL which is similar to Reg [...]
         package org.apache.nlpcraft.examples.lightswitch
 
         import org.apache.nlpcraft.model.{NCIntentTerm, _}
@@ -74,8 +74,8 @@
 
                 // Add HomeKit, Arduino or other integration here.
 
-                // By default - just return a descriptive action string.
+                // By default - return a descriptive action string.
                 NCResult.text(s"Lights are [$status] in [${locations.toLowerCase}].")
             }
         }
-    </pre><p><b>NOTES:</b></p><ul><li> We use an <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> adapter that allows us to load our static model configuration from a YAML file.<li> Method <code>onMatch(...)</code> is a callback function for our intent <code>"ls"</code> (define above in the <code>lightswitch_model.yaml</code> file).<li> Method <code>onMatch(...)</code> has two input parameters:<ul><li>A single token from the [...]
+    </pre><p><b>NOTES:</b></p><ul><li> We use an <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> adapter that allows us to load our static model configuration from a YAML file.<li> Method <code>onMatch(...)</code> is a callback function for our intent <code>"ls"</code> (define above in the <code>lightswitch_model.yaml</code> file).<li> Method <code>onMatch(...)</code> has two input parameters:<ul><li>A single token from the [...]
diff --git a/blogs/short_term_memory.html b/blogs/short_term_memory.html
index 20a1350..fb1734d 100644
--- a/blogs/short_term_memory.html
+++ b/blogs/short_term_memory.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/cheat-sheet.html b/cheat-sheet.html
index eee76de..26bd6d5 100644
--- a/cheat-sheet.html
+++ b/cheat-sheet.html
@@ -15,67 +15,67 @@
  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 [...]
-                    $ unzip -q apache-nlpcraft-incubating-0.7.4.zip
-                    $ cd apache-nlpcraft-incubating-0.7.4
-                    $ mvn clean package -DskipTests
-                </pre><p> Built JARs and Javadoc will be located in <code>target</code> sub-folder.</p></div><div class="tab-pane fade show" id="nav-install-bin" role="tabpanel"><p></p><p> <a href="/download.html#zip">Download</a> latest (<code><b>0.7.4</b></code>) binary release.</p><pre class="brush: bash">
-                    $ unzip -q apache-nlpcraft-incubating-bin-0.7.4.zip
-                </pre></div><div class="tab-pane fade show" id="nav-install-github" role="tabpanel"><pre class="brush: bash">
-                    $ git clone https://github.com/apache/incubator-nlpcraft.git
-                    $ mvn clean package
-                </pre></div><div class="tab-pane fade show" id="nav-install-maven" role="tabpanel"><pre class="brush: xml">
-                        &lt;dependency&gt;
-                            &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
-                            &lt;artifactId&gt;nlpcraft&lt;/artifactId&gt;
-                            &lt;version&gt;0.7.4&lt;/version&gt;
-                        &lt;/dependency&gt;
-                    </pre><p> <b>NOTE:</b> to get <a href="/tools/script.html">NLPCraft CLI script</a> you still need to download <a href="/download.html#zip">binary</a> ZIP or <a href="/download.html#build">build</a> from <a href="/download.html#src">source</a>.</p></div><div class="tab-pane fade" id="nav-install-grape" role="tabpanel"><pre class="brush: java">
-                    @Grab ('org.apache.nlpcraft:nlpcraft:0.7.4')
-                </pre><p> <b>NOTE:</b> to get <a href="/tools/script.html">NLPCraft CLI script</a> you still need to download <a href="/download.html#zip">binary</a> ZIP or <a href="/download.html#build">build</a> from <a href="/download.html#src">source</a>.</p></div><div class="tab-pane fade" id="nav-install-gradle" role="tabpanel"><pre class="brush: java">
-                    dependencies {
-                        runtime group: 'org.apache.nlpcraft', name: 'nlpcraft', version: '0.7.4'
-                    }
-                </pre><p> <b>NOTE:</b> to get <a href="/tools/script.html">NLPCraft CLI script</a> you still need to download <a href="/download.html#zip">binary</a> ZIP or <a href="/download.html#build">build</a> from <a href="/download.html#src">source</a>.</p></div><div class="tab-pane fade" id="nav-install-sbt" role="tabpanel"><pre class="brush: scala">
-                    libraryDependencies += "org.apache.nlpcraft" % "nlpcraft" % "0.7.4"
-                </pre><p> <b>NOTE:</b> to get <a href="/tools/script.html">NLPCraft CLI script</a> you still need to download <a href="/download.html#zip">binary</a> ZIP or <a href="/download.html#build">build</a> from <a href="/download.html#src">source</a>.</p></div></div></section><section id="cs2"><h2 class="section-title">Start <span class="amp">&amp;</span> Stop REST Server</h2><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href [...]
-                    $ bin/nlpcraft.sh start-server # Start server.
-                </pre><pre class="brush: bash">
-                    $ bin/nlpcraft.sh stop-server # Stop server.
-                    $ bin/nlpcraft.sh stop # Stop both server and probe.
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=xxx</code> to get a full help on <code>xxx</code> command.</ul></div><div class="tab-pane fade show" id="nav-srv-class" role="tabpanel"><p></p><p> If using just executable JAR:</p><pre class="brush: bash">
-                    $ java -Xms1024m -jar apache-nlpcraft-incubating-0.7.4-all-deps.jar -server
-                </pre><p> If specifying additional classpath components and need <code>-cp</code> parameter:</p><pre class="brush: bash">
-                    $ java -Xms1024m -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar org.apache.nlpcraft.NCStart -server
-                </pre><p> <b>NOTES:</b></p><ul><li> Make sure to provide correct path to <code>apache-nlpcraft-incubating-0.7.4-all-deps.jar</code> file.<li> Class <code>org.apache.nlpcraft.NCStart</code> is a common entry point for all NLPCraft runtime components.<li> Class <code>org.apache.nlpcraft.NCStart</code> should be used to star REST server from IDE.</ul><p> Parameters:</p><dl><dt> <code>-server</code><dd> <em>Mandatory</em> parameter to indicate that you are starting the REST s [...]
-                    $ docker run -m 8G -p 8081:8081 -p 8201:8201 -p 8202:8202 nlpcraftserver/server:0.7.4
-                </pre></div></div></section><section id="cs3"><h2 class="section-title">Start <span class="amp">&amp;</span> Stop Probe</h2><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-probe-script" role="tab" aria-controls="nav-home" aria-selected="true">NLPCraft CLI</a> <a class="nav-item nav-link" data-toggle="tab" href="#nav-probe-class" role="tab" aria-controls="nav-home" aria-selected="true">Java Class</a></div></na [...]
-                    $ bin/nlpcraft.sh start-probe # Start probe with default config.
-                    $ bin/nlpcraft.sh start-probe --cfg=~/myapp/nlpcraft.conf --mdls=my.package.Model --cp=~/myapp/target/classes --jmvOpts="-ea -Xms2048m" --timeoutMins=5
-                </pre><pre class="brush: bash">
-                    $ bin/nlpcraft.sh stop-probe # Stop probe.
-                    $ bin/nlpcraft.sh stop # Stop server and probe.
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=xxx</code> to get a full help on <code>xxx</code> command.</ul></div><div class="tab-pane fade show" id="nav-probe-class" role="tabpanel"><p></p><p> If using just executable JAR:</p><pre class="brush: bash">
-                    $ java -jar apache-nlpcraft-incubating-0.7.4-all-deps.jar -probe
-                </pre><p> If specifying additional classpath components and need <code>-cp</code> parameter:</p><pre class="brush: bash">
-                    java -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar:/my/project/classes org.apache.nlpcraft.NCStart -probe -config=/my/project/probe.conf
-                </pre><p> <b>NOTES:</b></p><ul><li> <code>/my/project</code> directory contains user-defined model implementation<li> Make sure to provide correct path to <code>apache-nlpcraft-incubating-0.7.4-all-deps.jar</code> file.<li> Class <code>org.apache.nlpcraft.NCStart</code> is a common entry point for all NLPCraft runtime components.<li> Class <code>org.apache.nlpcraft.NCStart</code> should be used to star data probe from IDE.</ul><p> Parameters:</p><dl><dt> <code>-probe</cod [...]
-                    $ bin/nlpcraft.sh test-model # All default parameters.
-                    $ bin/nlpcraft.sh test-model --mdls=my.package.Model --cp=~/myapp/target/classes --jmvOpts="-ea -Xms2048m"
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-class" role="tabpanel"><pre class="brush: bash">
-                    java -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar -DNLPCRAFT_TEST_MODELS=my.package.Model org.apache.nlpcraft.model.tools.test.NCTestAutoModelValidator
-                </pre><p> <b>NOTES:</b></p><ul><li> Make sure to add necessary classpath components.<li> <code>NLPCRAFT_TEST_MODELS</code> system property that should contain comma separate list of the data model classes to test.<li> You can also use <code>org.apache.nlpcraft.model.tools.test.NCTestAutoModelValidator</code> class directly to call it programmatically from the code or from IDE.</ul></div></div></section><section id="cs5"><h2 class="section-title">New Project Stub</h2><nav> [...]
-                    $ bin/nlpcraft.sh gen-project -n=MyProject -l=scala -b=sbt # Scala/SBT project stub.
-                    $ bin/nlpcraft.sh gen-project -n=MyProject -l=kotlin -p=com.mycompany.nlp -o # Kotlin/Maven project stub.
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on this command.</ul></div></div></section><section id="cs6"><h2 class="section-title">New Model Stub</h2><nav><div class="nav nav-tabs" role="tablist"> <a class=" [...]
-                    $ bin/nlpcraft.sh gen-model --filePath=~/myapp/myModel.json --mdlId=my.model.id # JSON model stub.
-                    $ bin/nlpcraft.sh gen-model -f=c:/tmp/myModel.yaml -m=my.model.id -o # YAML model stub.
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=gen-model</code> to get a full help on this command.</ul></div></div></section><section id="cs7"><h2 class="section-title">Testing with REST</h2><nav><div class="nav nav-tabs" role="tablist"> <a class= [...]
-                    $ bin/nlpcraft.sh ask --txt="User request" --mdlId=my.model.id # REST 'ask/sync' call.
-
-                    $ bin/nlpcraft.sh call -p=signin --email=admin@admin.com --passwd=admin
-                    $ bin/nlpcraft.sh call --path=ask/sync --acsTok=qwerty123456 --txt="User request" --mdlId=my.model.id  --data='{"data1": true, "data2": 123, "data3": "some text"}' --enableLog=false
-
-                    $ bin/nlpcraft.sh rest -p=signin -j='{"email": "admin@admin.com", "passwd": "admin"}' # Linux/Unix/MacOS REST call.
-                    $ bin/nlpcraft.cmd rest --path=signin --json='{\"email\": \"admin@admin.com\", \"passwd\": \"admin\"}' # Window REST call.
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=xxx</code> to get a full help on <code>xxx</code> command.</ul></div></div></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">Quick Links<li> <i class="f [...]
+<!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 [...]
+                                    $ unzip -q apache-nlpcraft-incubating-0.7.4.zip
+                                    $ cd apache-nlpcraft-incubating-0.7.4
+                                    $ mvn clean package -DskipTests
+                                </pre><p> Built JARs and Javadoc will be located in <code>target</code> sub-folder.</p></div><div class="tab-pane fade show" id="nav-install-bin" role="tabpanel"><p></p><p> <a href="/download.html#zip">Download</a> latest (<code><b>0.7.4</b></code>) binary release.</p><pre class="brush: bash">
+                                    $ unzip -q apache-nlpcraft-incubating-bin-0.7.4.zip
+                                </pre></div><div class="tab-pane fade show" id="nav-install-github" role="tabpanel"><pre class="brush: bash">
+                                    $ git clone https://github.com/apache/incubator-nlpcraft.git
+                                    $ mvn clean package
+                                </pre></div><div class="tab-pane fade show" id="nav-install-maven" role="tabpanel"><pre class="brush: xml">
+                                    &lt;dependency&gt;
+                                        &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
+                                        &lt;artifactId&gt;nlpcraft&lt;/artifactId&gt;
+                                        &lt;version&gt;0.7.4&lt;/version&gt;
+                                    &lt;/dependency&gt;
+                                </pre><p> <b>NOTE:</b> to get <a href="/tools/script.html">NLPCraft CLI script</a> you still need to download <a href="/download.html#zip">binary</a> ZIP or <a href="/download.html#build">build</a> from <a href="/download.html#src">source</a>.</p></div><div class="tab-pane fade" id="nav-install-grape" role="tabpanel"><pre class="brush: java">
+                                    @Grab ('org.apache.nlpcraft:nlpcraft:0.7.4')
+                                </pre><p> <b>NOTE:</b> to get <a href="/tools/script.html">NLPCraft CLI script</a> you still need to download <a href="/download.html#zip">binary</a> ZIP or <a href="/download.html#build">build</a> from <a href="/download.html#src">source</a>.</p></div><div class="tab-pane fade" id="nav-install-gradle" role="tabpanel"><pre class="brush: java">
+                                    dependencies {
+                                        runtime group: 'org.apache.nlpcraft', name: 'nlpcraft', version: '0.7.4'
+                                    }
+                                </pre><p> <b>NOTE:</b> to get <a href="/tools/script.html">NLPCraft CLI script</a> you still need to download <a href="/download.html#zip">binary</a> ZIP or <a href="/download.html#build">build</a> from <a href="/download.html#src">source</a>.</p></div><div class="tab-pane fade" id="nav-install-sbt" role="tabpanel"><pre class="brush: scala">
+                                    libraryDependencies += "org.apache.nlpcraft" % "nlpcraft" % "0.7.4"
+                                </pre><p> <b>NOTE:</b> to get <a href="/tools/script.html">NLPCraft CLI script</a> you still need to download <a href="/download.html#zip">binary</a> ZIP or <a href="/download.html#build">build</a> from <a href="/download.html#src">source</a>.</p></div></div></div></div></div><div class="card"><div class="card-header" id="q2"><h2 class="mb-0"> <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#cheat2"> Start [...]
+                                $ bin/nlpcraft.sh start-server # Start server.
+                            </pre><p> Stop the server:</p><pre class="brush: bash">
+                                $ bin/nlpcraft.sh stop-server # Stop server.
+                                $ bin/nlpcraft.sh stop # Stop both server and probe.
+                            </pre></div><div class="tab-pane fade show" id="nav-srv-class" role="tabpanel"><p></p><p> If using executable JAR:</p><pre class="brush: bash">
+                                $ java -Xms1024m -jar apache-nlpcraft-incubating-0.7.4-all-deps.jar -server
+                            </pre><p> If specifying additional classpath components and need <code>-cp</code> parameter:</p><pre class="brush: bash">
+                                $ java -Xms1024m -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar org.apache.nlpcraft.NCStart -server
+                            </pre><p> <b>NOTES:</b></p><ul><li> Make sure to provide correct path to <code>apache-nlpcraft-incubating-<b>0.7.4</b>-all-deps.jar</code> file.<li> Class <code>org.apache.nlpcraft.NCStart</code> is a common entry point for all NLPCraft runtime components.<li> Class <code>org.apache.nlpcraft.NCStart</code> should be used to star REST server from IDE.</ul><p> Parameters:</p><dl><dt> <code>-server</code><dd> <em>Mandatory</em> parameter to indicate that you are  [...]
+                                $ docker run -m 8G -p 8081:8081 -p 8201:8201 -p 8202:8202 nlpcraftserver/server:0.7.4
+                            </pre></div></div></div></div></div><div class="card"><div class="card-header" id="q3"><h2 class="mb-0"> <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#cheat3"> Start <span class="amp">&amp;</span> Stop REST Probe </button></h2></div><div id="cheat3" class="collapse" data-parent="#cheats"><div class="card-body"><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="ta [...]
+                                    $ bin/nlpcraft.sh start-probe # Start probe with default config.
+                                    $ bin/nlpcraft.sh start-probe --cfg=~/myapp/nlpcraft.conf --mdls=my.package.Model --cp=~/myapp/target/classes --jmvOpts="-ea -Xms2048m" --timeoutMins=5
+                                </pre><p> Stop the probe:</p><pre class="brush: bash">
+                                    $ bin/nlpcraft.sh stop-probe # Stop probe.
+                                    $ bin/nlpcraft.sh stop # Stop server and probe.
+                                </pre></div><div class="tab-pane fade show" id="nav-probe-class" role="tabpanel"><p></p><p> If using executable JAR:</p><pre class="brush: bash">
+                                    $ java -jar apache-nlpcraft-incubating-0.7.4-all-deps.jar -probe
+                                </pre><p> If specifying additional classpath components and need <code>-cp</code> parameter:</p><pre class="brush: bash">
+                                    java -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar:/my/project/classes org.apache.nlpcraft.NCStart -probe -config=/my/project/probe.conf
+                                </pre><p> <b>NOTES:</b></p><ul><li> <code>/my/project</code> directory contains user-defined model implementation<li> Make sure to provide correct path to <code>apache-nlpcraft-incubating-<b>0.7.4</b>-all-deps.jar</code> file.<li> Class <code>org.apache.nlpcraft.NCStart</code> is a common entry point for all NLPCraft runtime components.<li> Class <code>org.apache.nlpcraft.NCStart</code> should be used to star data probe from IDE.</ul><p> Parameters:</p><dl [...]
+                                    $ bin/nlpcraft.sh test-model # All default parameters.
+                                    $ bin/nlpcraft.sh test-model --mdls=my.package.Model --cp=~/myapp/target/classes --jmvOpts="-ea -Xms2048m"
+                                </pre></div><div class="tab-pane fade show" id="nav-class" role="tabpanel"><pre class="brush: bash">
+                                    java -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar -DNLPCRAFT_TEST_MODELS=my.package.Model org.apache.nlpcraft.model.tools.test.NCTestAutoModelValidator
+                                </pre><p> <b>NOTES:</b></p><ul><li> Make sure to add necessary classpath components.<li> <code>NLPCRAFT_TEST_MODELS</code> system property that should contain comma separate list of the data model classes to test.<li> You can also use <code>org.apache.nlpcraft.model.tools.test.NCTestAutoModelValidator</code> class directly to call it programmatically from the code or from IDE.</ul></div></div></div></div></div><div class="card"><div class="card-header" id= [...]
+                                    $ bin/nlpcraft.sh gen-project -n=MyProject -l=scala -b=sbt # Scala/SBT project stub.
+                                    $ bin/nlpcraft.sh gen-project -n=MyProject -l=kotlin -p=com.mycompany.nlp -o # Kotlin/Maven project stub.
+                                </pre></div></div></div></div></div><div class="card"><div class="card-header" id="q6"><h2 class="mb-0"> <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#cheat6"> New Model Stub </button></h2></div><div id="cheat6" class="collapse" data-parent="#cheats"><div class="card-body"><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-mdl-script" role="ta [...]
+                                    $ bin/nlpcraft.sh gen-model --filePath=~/myapp/myModel.json --mdlId=my.model.id # JSON model stub.
+                                    $ bin/nlpcraft.sh gen-model -f=c:/tmp/myModel.yaml -m=my.model.id -o # YAML model stub.
+                                </pre></div></div></div></div></div><div class="card"><div class="card-header" id="q7"><h2 class="mb-0"> <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#cheat7"> Testing With REST </button></h2></div><div id="cheat7" class="collapse" data-parent="#cheats"><div class="card-body"><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-rest-script" role [...]
+                                    $ bin/nlpcraft.sh ask --txt="User request" --mdlId=my.model.id # REST 'ask/sync' call.
+                                </pre><p> Using <code>call</code> command (for REPL mode):</p><pre class="brush: bash">
+                                    $ bin/nlpcraft.sh call -p=signin --email=admin@admin.com --passwd=admin
+                                    $ bin/nlpcraft.sh call --path=ask/sync --acsTok=qwerty123456 --txt="User request" --mdlId=my.model.id  --data='{"data1": true, "data2": 123, "data3": "some text"}' --enableLog=false
+                                </pre><p> Using <code>rest</code> command (for command line mode):</p><pre class="brush: bash">
+                                    $ bin/nlpcraft.sh rest -p=signin -j='{"email": "admin@admin.com", "passwd": "admin"}' # Linux/Unix/MacOS REST call.
+                                    $ bin/nlpcraft.cmd rest --path=signin --json='{\"email\": \"admin@admin.com\", \"passwd\": \"admin\"}' # Window REST call.
+                                </pre></div></div></div></div></div></div><div class="bq success"><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=xxx</code> to get a full help on <code>xxx</code> command.</ul></div></section></div><div class="col-md-2 thir [...]
diff --git a/community.html b/community.html
index b345550..ab8f986 100644
--- a/community.html
+++ b/community.html
@@ -15,7 +15,7 @@
  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 [...]
 +------------+             +---------------+            +-----------------+
 |            |   replica   |               |    fork    |                 |
 | Apache Git | ==========> | GitHub Mirror | ---------> | John Doe's Fork |
@@ -36,4 +36,4 @@
                             </pre><li> Each time when you want to update your local <code>master</code> do the following:<pre class="brush: bash">
                                 git pull upstream
                                 git checkout release
-                            </pre></ul><div class="bq info"><p><b>Branch Naming in Forks</b></p><p> Note that you can use any naming scheme for the branches in your local forks (i.e. you can work in <code>master</code> branch in your local fork). However, when you up-merge from the GitHub mirror you need to make sure to use <code>release</code> branch to get the latest work-in-progress from the upstream.</p></div></ul><p>To make the contribution:</p><ul><li> Fix or implement JIRA ticket  [...]
+                            </pre></ul><div class="bq info"><p><b>Branch Naming in Forks</b></p><p> Note that you can use any naming scheme for the branches in your local forks (i.e. you can work in <code>master</code> branch in your local fork). However, when you up-merge from the GitHub mirror you need to make sure to use <code>release</code> branch to get the latest work-in-progress from the upstream.</p></div></ul><p>To make the contribution:</p><ul><li> Fix or implement JIRA ticket  [...]
diff --git a/data-model.html b/data-model.html
index f342b20..80975e9 100644
--- a/data-model.html
+++ b/data-model.html
@@ -15,7 +15,7 @@
  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 [...]
 package org.apache.nlpcraft.examples.lightswitch
 
 import org.apache.nlpcraft.model.{NCIntentTerm, _}
@@ -50,7 +50,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/
 
         // Add HomeKit, Arduino or other integration here.
 
-        // By default - just return a descriptive action string.
+        // By default - return a descriptive action string.
         NCResult.text(s"Lights are [$status] in [${locations.toLowerCase}].")
     }
 }
@@ -145,7 +145,7 @@ public class AlarmModel extends NCModelFileAdapter {
         timer.cancel();
     }
 }
-                </pre></div></div><p> Further sub-sections will provide details on model's static configuration and dynamic programmable logic implementation.</p></section><section id="dataflow"><h2 class="section-title">Model Dataflow</h2><figure> <img alt="data model dataflow" class="img-fluid" src="/images/homepage-fig1.1.png"><figcaption><b>Fig 1.</b> NLPCraft Architecture</figcaption></figure><p> User request starts with the user application (like a chatbot or NLI-based system) maki [...]
+                </pre></div></div><p> Further sub-sections will provide details on model's static configuration and dynamic programmable logic implementation.</p></section><section id="dataflow"><h2 class="section-title">Model Dataflow</h2><figure> <img alt="data model dataflow" class="img-fluid" src="/images/homepage-fig1.1.png"><figcaption><b>Fig 1.</b> NLPCraft Architecture</figcaption></figure><p> User request starts with the user application (like a chatbot or NLI-based system) maki [...]
 {
      "id": "user.defined.id",
      "name": "User Defined Name",
@@ -202,7 +202,7 @@ intents:
                 }
             ]
             ...
-        </pre><p> During synonym matching NLPCraft uses <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getJiggleFactor()">jiggle factor</a> to rearrange (or "jiggle") the individual words in the user input in attempt to match a given synonym. Jiggle factor is a measure of how much sparsity is allowed when user input words are reordered in attempt to match the multi-word synonyms. Zero means no reordering is allowed. One means that a word can move only o [...]
+        </pre><p> During synonym matching NLPCraft uses <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getJiggleFactor()">jiggle factor</a> to rearrange (or "jiggle") the individual words in the user input in attempt to match a given synonym. Jiggle factor is a measure of how much sparsity is allowed when user input words are reordered in attempt to match the multi-word synonyms. Zero means no reordering is allowed. One means that a word can move only o [...]
             "macros": [
                 {
                     "name": "&lt;A&gt;",
@@ -337,4 +337,4 @@ intents:
         </pre><p> Few notes on token DSL syntax:</p><ul><li> This synonym defines a composed named entity, i.e. named entity that consists of other named entities. In our example, we utilize token <code>nlpcraft:city</code> along with other basic synonym.<li> Token DSL expression always results in one and only one token when matched, however, the synonym can have multiple token DSL expressions.<li> Token DSL expression can have optional alias (<code>[city]</code>) that can be used in oth [...]
             {qual}param op value
             func({qual}param) op value
-        </pre><p> The <code>{qual}param</code> is the left side parameter and it can have optional qualifier (<code>qual</code>). Qualifier allows to reference participant tokens either by their ID or their DSL expression's alias using dot-notation. For example:</p><table class="gradient-table"><thead><tr><th>Qualifier<th>Description<tbody><tr><td> <code><b>partId.</b>groups @@ 'my_grp'</code><td> There must be a participant token (i.e. constituent token) with either token ID or alias of [...]
+        </pre><p> The <code>{qual}param</code> is the left side parameter and it can have optional qualifier (<code>qual</code>). Qualifier allows to reference participant tokens either by their ID or their DSL expression's alias using dot-notation. For example:</p><table class="gradient-table"><thead><tr><th>Qualifier<th>Description<tbody><tr><td> <code><b>partId.</b>groups @@ 'my_grp'</code><td> There must be a participant token (i.e. constituent token) with either token ID or alias of [...]
diff --git a/docs.html b/docs.html
index 1325a9c..769db92 100644
--- a/docs.html
+++ b/docs.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/download.html b/download.html
index fe858af..bb7a914 100644
--- a/download.html
+++ b/download.html
@@ -15,23 +15,23 @@
  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 [...]
                 $ unzip -q apache-nlpcraft-incubating-0.7.4.zip
                 $ cd apache-nlpcraft-incubating-0.7.4
             </pre><b>Build NLPCraft:</b><pre class="brush: bash">
                 $ mvn clean package -DskipTests
-            </pre><p> Built JARs and Javadoc will be located in <code>target</code> sub-folder.</p></section><section id="verification"><h2 class="section-title">Release Verification</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 similar for Windows.</p><h3 class="section-sub-title">Mac OS</h3><nav><div cla [...]
+            </pre><p> Built JARs and Javadoc will be located in <code>target</code> sub-folder.</p></section><section id="verification"><h2 class="section-title">Release Verification</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 similar for Windows.</p><h3 class="section-sub-title">Mac OS</h3><nav><div cla [...]
                     # Run these two commands and compare generated hashes:
                     $ openssl dgst -sha256 apache-nlpcraft-incubating-0.7.4.zip
                     $ cat apache-nlpcraft-incubating-0.7.4.zip.sha256
                 </pre></div><div class="tab-pane fade show" id="nav-macos-pgp" role="tabpanel"><pre class="brush: plain, highlight: [2]">
                     # NOTE: make sure to have GPGTools (gpgtools.org) installed.
                     $ gpg --verify apache-nlpcraft-incubating-0.7.4.zip.asc apache-nlpcraft-incubating-0.7.4.zip
-                </pre></div></div><h3 class="section-sub-title">Linux</h3><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-linux-sha256" role="tab" aria-controls="nav-home" aria-selected="true">SHA256</a> <a class="nav-item nav-link" data-toggle="tab" href="#nav-linux-pgp" role="tab" aria-controls="nav-home" aria-selected="true">PGP</a></div></nav><div class="tab-content"><div class="tab-pane fade show active" id="nav-linux-s [...]
+                </pre></div></div><h3 class="section-sub-title">Linux</h3><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-linux-sha256" role="tab">SHA256</a> <a class="nav-item nav-link" data-toggle="tab" href="#nav-linux-pgp" role="tab">PGP</a></div></nav><div class="tab-content"><div class="tab-pane fade show active" id="nav-linux-sha256" role="tabpanel"><pre class="brush: plain, highlight: [1]">
                     $ sha256sum --check apache-nlpcraft-incubating-0.7.4.zip.sha256
                 </pre></div><div class="tab-pane fade show" id="nav-linux-pgp" role="tabpanel"><pre class="brush: plain, highlight: [1]">
                     $ gpg --verify apache-nlpcraft-incubating-0.7.4.zip.asc apache-nlpcraft-incubating-0.7.4.zip
-                </pre></div></div></section><section id="maven"><h2 class="section-title">Maven/Grape/SBT</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.</p><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-maven" role="tab" aria-controls="nav-home" aria-selected="true">Maven <img src="/images/java2.png" height="20px" a [...]
+                </pre></div></div></section><section id="maven"><h2 class="section-title">Maven/Grape/SBT</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.</p><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-maven" role="tab">Maven <img src="/images/java2-h20.png" alt=""></a> <a class="nav-item nav-link" data-toggle="tab [...]
                     &lt;dependency&gt;
                         &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
                         &lt;artifactId&gt;nlpcraft&lt;/artifactId&gt;
@@ -45,10 +45,10 @@
                     }
                     </pre></div><div class="tab-pane fade" id="nav-sbt" role="tabpanel"><pre class="brush: scala">
                     libraryDependencies += "org.apache.nlpcraft" % "nlpcraft" % "0.7.4"
-                    </pre></div></div><div class="bq success"><p> <b>Latest Version</b></p><p> <code>0.7.4</code> is the latest version. You can replace it with a desired version.</p></div><p> See <a href="/integrations.html#stanford">integration</a> section for additional integration with Stanford CoreNLP library that is not part of the official Apache NLPCraft release.</p></section><section id="github"><h2 class="section-title">GitHub <i class="fab fa-fw fa-github"></i></h2><p> If you  [...]
+                    </pre></div></div><div class="bq info"><p> <b>Latest Version</b></p><p> <code>0.7.4</code> is the latest version. You can replace it with a desired version.</p></div><p> See <a href="/integrations.html#stanford">integration</a> section for additional integration with Stanford CoreNLP library that is not part of the official Apache NLPCraft release.</p></section><section id="github"><h2 class="section-title">GitHub <i class="fab fa-fw fa-github"></i></h2><p> If you wan [...]
             $ git clone https://github.com/apache/incubator-nlpcraft.git
             $ mvn clean package
-            </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 [...]
+            </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 [...]
                     &lt;dependency&gt;
                         &lt;groupId&gt;org.apache.nlpcraft&lt;/groupId&gt;
                         &lt;artifactId&gt;nlpcraft-java-client&lt;/artifactId&gt;
@@ -62,4 +62,4 @@
                     }
                     </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.2"
-                    </pre></div></div><div class="bq info"><p> <b>Latest Version</b></p><p> <code>0.7.2</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 [...]
+                    </pre></div></div><div class="bq info"><p> <b>Latest Version</b></p><p> <code>0.7.2</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/examples/alarm_clock.html b/examples/alarm_clock.html
index ccb6923..8429c4d 100644
--- a/examples/alarm_clock.html
+++ b/examples/alarm_clock.html
@@ -15,9 +15,9 @@
  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 [...]
                     $ bin/nlpcraft.sh gen-project --baseName=AlarmClock --outputDir=~ --pkgName=demo --mdlType=json
-                </pre><p> <b>NOTES:</b></p><ul><li> New project created in <code>/home/AlarmClock</code> directory.<li> <code>gen-project</code> command defaults to Java and Maven as its built tool.<li> Run <code>bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on <code>gen-project</code> command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab [...]
+                </pre><p> <b>NOTES:</b></p><ul><li> New project created in <code>/home/AlarmClock</code> directory.<li> <code>gen-project</code> command defaults to Java and Maven as its built tool.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on <code>gen-project</code> command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> fo [...]
 {
     "id": "nlpcraft.alarm.ex",
     "name": "Alarm Example Model",
@@ -134,8 +134,8 @@ public class AlarmClock extends NCModelFileAdapter {
         </pre><p> There's a bit of a logic here that deals mostly with taking multiple numeric values and converting them into a single number of milliseconds that the alarm clock needs to be set up for. Let's review it step by step:</p><ul><li> On <code>line 10</code> our class extends <code>NCModelFileAdapter</code> that allows us to load most of the model declaration from the external JSON or YAML file (line 18) and only provide functionality that we couldn't express in declarative po [...]
             $ cd ~/AlarmClock
             $ mvn clean package
-        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="start_server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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" aria-controls="nav-home" aria-selected="true"> [...]
+        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="start_server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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- [...]
                     $ 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/server-fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> <i style="color: #F39C12" class="fa fa-exclamation-triangle"></i> REST server is a "fire-and-forget" component that you generally needs to start only once.<li> Run <code>bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/tools/script.ht [...]
+                </pre></div><div class="tab-pane fade show" id="nav-srv-out" role="tabpanel"><p></p><p> <img class="img-fluid" alt="" src="/images/server-fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> <i style="color: #F39C12" class="fa fa-exclamation-triangle"></i> REST server is a "fire-and-forget" component that you generally needs to start only once.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/ [...]
             $ bin/nlpcraft.sh test-model --cp=~/AlarmClock/target/classes --mdls=demo.AlarmClock
-        </pre><p> <b>NOTES:</b></p><ul><li> Run <code>bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul><p> Look at the output of this command and you will see the test results for all our sample utterances:</p><p> <img style="max-width: 667px !important; [...]
+        </pre><p> <b>NOTES:</b></p><ul><li> Run <code class="script">bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul><p> Look at the output of this command and you will see the test results for all our sample utterances:</p><p> <img style="max-width: 66 [...]
diff --git a/examples/light_switch.html b/examples/light_switch.html
index c478161..7dba36f 100644
--- a/examples/light_switch.html
+++ b/examples/light_switch.html
@@ -15,9 +15,9 @@
  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 [...]
                     $ bin/nlpcraft.sh gen-project --baseName=LightSwitch --outputDir=~ --pkgName=demo --lang=scala
-                </pre><p> <b>NOTES:</b></p><ul><li> New project created in <code>/home/LightSwitch</code> directory.<li> <code>gen-project</code> command defaults to Java and Maven as its built tool.<li> Run <code>bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on <code>gen-project</code> command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fa [...]
+                </pre><p> <b>NOTES:</b></p><ul><li> New project created in <code>/home/LightSwitch</code> directory.<li> <code>gen-project</code> command defaults to Java and Maven as its built tool.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on <code>gen-project</code> command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> f [...]
 id: "nlpcraft.lightswitch.ex"
 name: "Light Switch Example Model"
 version: "1.0"
@@ -89,15 +89,15 @@ class LightSwitch extends NCModelFileAdapter("light_switch.yaml") {
 
         // Add HomeKit, Arduino or other integration here.
 
-        // By default - just return a descriptive action string.
+        // By default - return a descriptive action string.
         NCResult.text(s"Lights '$status' in '${locations.toLowerCase}'.")
     }
 }
-        </pre><p> The intent callback logic is very simple - we simply return a descriptive confirmation message back (explaining what lights were changed). With action and location detected - you can easily add the actual light switching using HomeKit or Arduino devices. Let's review this implementation step by step:</p><ul><li> On <code>line 5</code> our class extends <code>NCModelFileAdapter</code> that allows us to load most of the model declaration from the external YAML file and on [...]
+        </pre><p> The intent callback logic is very simple - we simply return a descriptive confirmation message back (explaining what lights were changed). With action and location detected - you can add the actual light switching using HomeKit or Arduino devices. Let's review this implementation step by step:</p><ul><li> On <code>line 5</code> our class extends <code>NCModelFileAdapter</code> that allows us to load most of the model declaration from the external YAML file and only prov [...]
             $ cd ~/LightSwitch
             $ mvn clean package
-        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="start_server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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" aria-controls="nav-home" aria-selected="true"> [...]
+        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="start_server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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- [...]
                     $ 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/server-fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> <i style="color: #F39C12" class="fa fa-exclamation-triangle"></i> REST server is a "fore-and-forget" component that you generally need to start only once.<li> Run <code>bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/tools/script.htm [...]
+                </pre></div><div class="tab-pane fade show" id="nav-srv-out" role="tabpanel"><p></p><p> <img class="img-fluid" alt="" src="/images/server-fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> <i style="color: #F39C12" class="fa fa-exclamation-triangle"></i> REST server is a "fore-and-forget" component that you generally need to start only once.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/t [...]
             $ bin/nlpcraft.sh test-model --cp=~/LightSwitch/target/classes --mdls=demo.LightSwitch
-        </pre><p> <b>NOTES:</b></p><ul><li> Run <code>bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul><p> Look at the output of this command and you will see the test results for all our sample utterances:</p><p> <img style="max-width: 928px !important; [...]
+        </pre><p> <b>NOTES:</b></p><ul><li> Run <code class="script">bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul><p> Look at the output of this command and you will see the test results for all our sample utterances:</p><p> <img style="max-width: 92 [...]
diff --git a/examples/sql_model.html b/examples/sql_model.html
index 6d2445b..b0d5db1 100644
--- a/examples/sql_model.html
+++ b/examples/sql_model.html
@@ -15,11 +15,11 @@
  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 [...]
             $ cd ~/SqlModel
             $ mvn clean package
-        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="start_server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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" aria-controls="nav-home" aria-selected="true"> [...]
+        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="start_server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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- [...]
                     $ 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/server-fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> <i style="color: #F39C12" class="fa fa-exclamation-triangle"></i> REST server is a "fore-and-forget" component that you generally need to start only once.<li> Run <code>bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/tools/script.htm [...]
+                </pre></div><div class="tab-pane fade show" id="nav-srv-out" role="tabpanel"><p></p><p> <img class="img-fluid" alt="" src="/images/server-fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> <i style="color: #F39C12" class="fa fa-exclamation-triangle"></i> REST server is a "fore-and-forget" component that you generally need to start only once.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/t [...]
             $ bin/nlpcraft.sh test-model --cp=~/sql/target/classes --mdls=demo.SqlModel
-        </pre><p> <b>NOTES:</b></p><ul><li> Run <code>bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul></section><section id="rinse"><h2 class="section-title">Rinse <span class="amp">&amp;</span> Repeat</h2><p> Typical development cycle consists of:</p>< [...]
+        </pre><p> <b>NOTES:</b></p><ul><li> Run <code class="script">bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul></section><section id="rinse"><h2 class="section-title">Rinse <span class="amp">&amp;</span> Repeat</h2><p> Typical development cycle co [...]
diff --git a/examples/weather_bot.html b/examples/weather_bot.html
index 4be6d95..56a724f 100644
--- a/examples/weather_bot.html
+++ b/examples/weather_bot.html
@@ -15,9 +15,9 @@
  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 [...]
                     $ bin/nlpcraft.sh gen-project --baseName=Weather --outputDir=~ --pkgName=demo --mdlType=json
-                </pre><p> <b>NOTES:</b></p><ul><li> New project created in <code>/home/Weather</code> directory.<li> <code>gen-project</code> command defaults to Java and Maven as its built tool.<li> Run <code>bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on <code>gen-project</code> command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa [...]
+                </pre><p> <b>NOTES:</b></p><ul><li> New project created in <code>/home/Weather</code> directory.<li> <code>gen-project</code> command defaults to Java and Maven as its built tool.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on <code>gen-project</code> command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for < [...]
 {
   "id": "nlpcraft.weather.ex",
   "name": "Weather Example Model",
@@ -212,8 +212,8 @@ public class Weather extends NCModelFileAdapter {
         </pre><ul><li> <code>Line 145</code> loads the model configuration from the external <code>weather_model.json</code> file.<li> Method <code>preGeo(...)</code> on the <code>line 24</code> handles the geo location processing including IP-based geo-location and resolution of the geographical ambiguity.<li> <code>Line 96</code> defines a callback for the intent defined on the <code>line 71</code>. Note that callback implementation also deals with the temporal ambiguity.<li> <code>Lin [...]
             $ cd ~/Weather
             $ mvn clean package
-        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="start_server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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" aria-controls="nav-home" aria-selected="true"> [...]
+        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="start_server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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- [...]
                     $ 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/server-fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> <i style="color: #F39C12" class="fa fa-exclamation-triangle"></i> REST server is a "fore-and-forget" component that you generally need to start only once.<li> Run <code>bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/tools/script.htm [...]
+                </pre></div><div class="tab-pane fade show" id="nav-srv-out" role="tabpanel"><p></p><p> <img class="img-fluid" alt="" src="/images/server-fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> <i style="color: #F39C12" class="fa fa-exclamation-triangle"></i> REST server is a "fore-and-forget" component that you generally need to start only once.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/t [...]
             $ bin/nlpcraft.sh test-model --cp=~/Weather/target/classes --mdls=demo.Weather
-        </pre><p> <b>NOTES:</b></p><ul><li> Run <code>bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul><p> Look at the output of this command and you will see the test results for all our sample utterances:</p><p> <img style="max-width: 871px !important; [...]
+        </pre><p> <b>NOTES:</b></p><ul><li> Run <code class="script">bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul><p> Look at the output of this command and you will see the test results for all our sample utterances:</p><p> <img style="max-width: 87 [...]
diff --git a/feed.xml b/feed.xml
index 3f53e3f..4c45889 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-01-29T20:06:59-08: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-01-31T00:04:23-08: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 e263f55..30ace3b 100644
--- a/first-example.html
+++ b/first-example.html
@@ -15,9 +15,9 @@
  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 [...]
                     $ bin/nlpcraft.sh gen-project --baseName=LightSwitch --outputDir=~ --lang=scala --pkgName=demo
-                </pre></div><div class="tab-pane fade show" id="nav-out" role="tabpanel"><p></p><p> <img class="img-fluid" alt="" src="/images/first_example_fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> New project created in <code>/home/LightSwitch</code> directory.<li> <code>gen-project</code> command defaults to Maven as its built tool.<li> Run <code>bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on <code>gen-project</code> command.<li> <a href="/tools/scri [...]
+                </pre></div><div class="tab-pane fade show" id="nav-out" role="tabpanel"><p></p><p> <img class="img-fluid" alt="" src="/images/first_example_fig1.png"></p></div></div><p> <b>NOTES:</b></p><ul><li> New project created in <code>/home/LightSwitch</code> directory.<li> <code>gen-project</code> command defaults to Maven as its built tool.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=gen-project</code> to get a full help on <code>gen-project</code> command.<li> <a hr [...]
             id: "nlpcraft.lightswitch.ex"
             name: "Light Switch Example Model"
             version: "1.0"
@@ -60,7 +60,7 @@
                   - "no &lt;LIGHT&gt;"
             intents:
               - "intent=ls term(act)={groups @@ 'act'} term(loc)={id == 'ls:loc'}*"
-        </pre><p> Notice three model elements that we'll use later in our intent definition (lines 16, 23, and 31):</p><ul><li><code>ls:loc</code><li><code>ls:on</code><li><code>ls:off</code></ul><p> Model element <code>ls:loc</code> defines a location where we want to control the lights. Model elements <code>ls:on</code> and <code>ls:off</code> define corresponding "on" and "off" lights actions. We'll use these elements in our model's intent-based matching logic.</p><p> Next, let's go a [...]
+        </pre><p> Notice three model elements at lines 16, 23, and 31:</p><ul><li><code>ls:loc</code><li><code>ls:on</code><li><code>ls:off</code></ul><p> Model element <code>ls:loc</code> defines a location where we want to control the lights. Model elements <code>ls:on</code> and <code>ls:off</code> define corresponding "on" and "off" lights actions. We use these elements in our model's intent definition at line 42 as well as in intent callback below.</p><p> Next, let's go ahead and ad [...]
 package demo
 
 import org.apache.nlpcraft.model.{NCIntentTerm, _}
@@ -94,7 +94,7 @@ class LightSwitchModel extends NCModelFileAdapter("light_switch.yaml") {
 
         // Add HomeKit, Arduino or other integration here.
 
-        // By default - just return a descriptive action string.
+        // By default - return a descriptive action string.
         NCResult.text(s"Lights '$status' in '${locations.toLowerCase}'.")
     }
 }
@@ -140,7 +140,7 @@ public class LightSwitchJavaModel extends NCModelFileAdapter {
 
         // Add HomeKit, Arduino or other integration here.
 
-        // By default - just return a descriptive action string.
+        // By default - return a descriptive action string.
         return NCResult.text("Lights are [" + status + "] in [" + locations.toLowerCase() + "].");
     }
 }
@@ -180,15 +180,15 @@ class LightSwitchKotlinModel : NCModelFileAdapter("lightswitch_model.yaml") {
 
         // Add HomeKit, Arduino or other integration here.
 
-        // By default - just return a descriptive action string.
+        // By default - return a descriptive action string.
         return NCResult.text("Lights are [" + status + "] in [" + locations.toLowerCase() + "].")
     }
 }
-        </pre></div></div><p> <b>NOTES:</b></p><ul><li> On line 5 we use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> to load its configuration from the external <code>light_switch.yaml</code> YAML file.<li> Our data model uses intent-based matching of the user input. Intent is a template and a callback for when a template is matched against user input:<ul><li> Line 6 uses <a target="javadoc" href="/apis/latest/org/apach [...]
+        </pre></div></div><p> <b>NOTES:</b></p><ul><li> On line 5 we use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> to load its configuration from the external <code>light_switch.yaml</code> YAML file.<li> Our data model uses intent-based matching of the user input. Intent is a template and a callback for when a template is matched against user input:<ul><li> Line 6 uses <a target="javadoc" href="/apis/latest/org/apach [...]
             $ cd ~/LightSwitch
             $ mvn clean package
-        </pre><p> At this stage we have our project built and we are ready to start testing.</p></section><section id="server"><h3 class="section-title">Start Server</h3><p> Run the following command to start local REST server, if it hasn't been started already, from the NLPCraft installation directory:</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" aria-controls="nav-home" aria-selected="true">Comman [...]
+        </pre></section><section id="server"><h3 class="section-title">Start Server</h3><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></a></div></nav><div class="tab-content"><div class="tab-pane fade show  [...]
                     $ 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><p> <b>NOTES:</b></p><ul><li> REST server is a "fore-and-forget" component that you generally need to start only once.<li> Run <code>bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code [...]
-            $ bin/nlpcraft.sh test-model --cp=~/LightSwitch/target/classes --mdls=demo.LightSwitch
-        </pre><p> <b>NOTES:</b></p><ul><li> Run <code>bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.<li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.</ul><p> Look at the output of this command and you will see the test results for all our sample utterances:</p><p> <img style="max-width: 910px !important; [...]
+                </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"><h3 class="section-title">Testing</h3><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.</p><p> Part of the <a href="/tools/test_framework.html" [...]
+                    $ bin/nlpcraft.sh test-model --cp=~/LightSwitch/target/classes --mdls=demo.LightSwitch
+                </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! 👌</h2><p> You've created your first data model, started the REST server and tested the model using built-in model auto-validator.</p></section></div><div class="col-md-2 third-column"><ul class="side-nav">< [...]
diff --git a/getting-started.html b/getting-started.html
index 5360685..3664652 100644
--- a/getting-started.html
+++ b/getting-started.html
@@ -15,9 +15,9 @@
  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 [...]
                     $ bin/nlpcraft.sh start-server
                     $ bin/nlpcraft.sh start-probe
-                </pre></div><div class="tab-pane fade show" id="nav-srv-start" role="tabpanel"><p></p><p> <img class="img-fluid" src="/images/getting_started_fig1.png" alt=""></p></div><div class="tab-pane fade show" id="nav-probe-start" role="tabpanel"><p></p><p> <img class="img-fluid" src="/images/getting_started_fig2.png" alt=""></p></div></div><p> At this point you have both the data probe and the REST server started and connected to each other.</p></section><section id="querying"><h [...]
+                </pre></div><div class="tab-pane fade show" id="nav-srv-start" role="tabpanel"><p></p><p> <img class="img-fluid" src="/images/getting_started_fig1.png" alt=""></p></div><div class="tab-pane fade show" id="nav-probe-start" role="tabpanel"><p></p><p> <img class="img-fluid" src="/images/getting_started_fig2.png" alt=""></p></div></div><p> At this point data probe and the REST server are started and connected.</p></section><section id="querying"><h2 class="section-title">Weat [...]
                     $ bin/nlpcraft.sh
-                </pre></div><div class="tab-pane fade show" id="nav-repl-out" role="tabpanel"><p></p><p> <img class="img-fluid" src="/images/getting_started_fig3.png" alt=""></p></div></div><p> <b>NOTES:</b></p><ul><li> Note that when you start NLPCraft CLI it automatically detects the REST server and data probe we have started in the previous step.<li> You can see the status of the REST server and data probe in the prompt and you can always use <code>info</code> command to see a full in [...]
+                </pre></div><div class="tab-pane fade show" id="nav-repl-out" role="tabpanel"><p></p><p> <img class="img-fluid" src="/images/getting_started_fig3.png" alt=""></p></div></div><p> <b>NOTES:</b></p><ul><li> NLPCraft CLI automatically detects the REST server and data probe we have started in the previous step. You can see the status of the REST server and data probe in the REPL prompt or you can use <code>info</code> command to see a status information.<li> When NLPCraft CLI  [...]
diff --git a/images/apache_20_logo2-h32.png b/images/apache_20_logo2-h32.png
new file mode 100644
index 0000000..31e6ec3
Binary files /dev/null and b/images/apache_20_logo2-h32.png differ
diff --git a/images/asf20-h64.png b/images/asf20-h64.png
new file mode 100644
index 0000000..2cd21c4
Binary files /dev/null and b/images/asf20-h64.png differ
diff --git a/images/asf_logo-h24.png b/images/asf_logo-h24.png
new file mode 100644
index 0000000..f6ce219
Binary files /dev/null and b/images/asf_logo-h24.png differ
diff --git a/images/asf_logo-h36.png b/images/asf_logo-h36.png
new file mode 100644
index 0000000..6153789
Binary files /dev/null and b/images/asf_logo-h36.png differ
diff --git a/images/corenlp-logo-h48.png b/images/corenlp-logo-h48.png
new file mode 100644
index 0000000..bdf7a93
Binary files /dev/null and b/images/corenlp-logo-h48.png differ
diff --git a/images/github_logo-h32.png b/images/github_logo-h32.png
new file mode 100644
index 0000000..9aafbb8
Binary files /dev/null and b/images/github_logo-h32.png differ
diff --git a/images/github_logo_white-h20.png b/images/github_logo_white-h20.png
new file mode 100644
index 0000000..b6d3cac
Binary files /dev/null and b/images/github_logo_white-h20.png differ
diff --git a/images/google-cloud-logo-small-h32.png b/images/google-cloud-logo-small-h32.png
new file mode 100644
index 0000000..fd538db
Binary files /dev/null and b/images/google-cloud-logo-small-h32.png differ
diff --git a/images/groovy-h18.png b/images/groovy-h18.png
new file mode 100644
index 0000000..8632cee
Binary files /dev/null and b/images/groovy-h18.png differ
diff --git a/images/groovy-h32.png b/images/groovy-h32.png
new file mode 100644
index 0000000..9140e20
Binary files /dev/null and b/images/groovy-h32.png differ
diff --git a/images/java-h32.png b/images/java-h32.png
new file mode 100644
index 0000000..58e468f
Binary files /dev/null and b/images/java-h32.png differ
diff --git a/images/java2-h20.png b/images/java2-h20.png
new file mode 100644
index 0000000..3688816
Binary files /dev/null and b/images/java2-h20.png differ
diff --git a/images/java2-h32.png b/images/java2-h32.png
new file mode 100644
index 0000000..e0cdd16
Binary files /dev/null and b/images/java2-h32.png differ
diff --git a/images/kotlin-h18.png b/images/kotlin-h18.png
new file mode 100644
index 0000000..8f8d96e
Binary files /dev/null and b/images/kotlin-h18.png differ
diff --git a/images/kotlin-h32.png b/images/kotlin-h32.png
new file mode 100644
index 0000000..b62957b
Binary files /dev/null and b/images/kotlin-h32.png differ
diff --git a/images/nlpcraft_logo_white-h24.gif b/images/nlpcraft_logo_white-h24.gif
new file mode 100644
index 0000000..5156579
Binary files /dev/null and b/images/nlpcraft_logo_white-h24.gif differ
diff --git a/images/nlpcraft_logo_white-h24.png b/images/nlpcraft_logo_white-h24.png
new file mode 100644
index 0000000..670b6f0
Binary files /dev/null and b/images/nlpcraft_logo_white-h24.png differ
diff --git a/images/opennlp-logo-h32.png b/images/opennlp-logo-h32.png
new file mode 100644
index 0000000..31a0144
Binary files /dev/null and b/images/opennlp-logo-h32.png differ
diff --git a/images/scala-logo-h16.png b/images/scala-logo-h16.png
new file mode 100644
index 0000000..a89f4e4
Binary files /dev/null and b/images/scala-logo-h16.png differ
diff --git a/images/scala-logo-h24.png b/images/scala-logo-h24.png
new file mode 100644
index 0000000..6f93baf
Binary files /dev/null and b/images/scala-logo-h24.png differ
diff --git a/images/spacy-logo-h32.png b/images/spacy-logo-h32.png
new file mode 100644
index 0000000..0cd31d1
Binary files /dev/null and b/images/spacy-logo-h32.png differ
diff --git a/images/swagger-h32.png b/images/swagger-h32.png
new file mode 100644
index 0000000..1128984
Binary files /dev/null and b/images/swagger-h32.png differ
diff --git a/index.html b/index.html
index 70c2dfd..81d3af7 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/installation.html b/installation.html
index 3b10354..27c6b8d 100644
--- a/installation.html
+++ b/installation.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/integrations.html b/integrations.html
index e597543..c970114 100644
--- a/integrations.html
+++ b/integrations.html
@@ -15,7 +15,7 @@
  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 [...]
                     &lt;dependency&gt;
                         &lt;groupId&gt;edu.stanford.nlp&lt;/groupId&gt;
                         &lt;artifactId&gt;stanford-corenlp&lt;/artifactId&gt;
@@ -98,7 +98,7 @@ if __name__ == '__main__':
         host="localhost",
         port='5002'
     )
-        </pre><p> You need to start this REST server before you can use spaCy integration in NLPCraft. Note that for production environment it is recommended to use <a target=_ href="https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface">WSGI-based server</a> instead.</p><p> Comments:</p><ul><li> On line 11 you can add or change spaCy models to be loaded.<li> On lines 29-30 you can change how spans' external attributes are collected.<li> On lines 58-59 you can change the endpoint on [...]
+        </pre><p> You need to start this REST server before you can use spaCy integration in NLPCraft. Note that for production environment it is recommended to use <a target=_ href="https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface">WSGI-based server</a> instead.</p><p> Comments:</p><ul><li> On line 11 you can add or change spaCy models to be loaded.<li> On lines 29-30 you can change how spans' external attributes are collected.<li> On lines 58-59 you can change the endpoint on [...]
                     &lt;dependency&gt;
                         &lt;groupId&gt;mysql&lt;/groupId&gt;
                         &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
@@ -112,7 +112,7 @@ if __name__ == '__main__':
                     }
                     </pre></div><div class="tab-pane fade" id="nav-mysql-sbt" role="tabpanel"><pre class="brush: scala">
                     libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.15"
-                    </pre></div></div><p> Comments:</p><ul><li> Make sure to change <code>8.0.15</code> version to the latest or required one.<li> Update configuration property <code>nlpcraft.server.database.jdbc</code> with required JDBC driver class and JDBC URL.<li> Use scripts from <code>sql/mysql</code> folder to create database and initialize DB schema.<li> Note that you can also <a target=_ href="https://dev.mysql.com/downloads/connector/j">download</a> MySQL JDBC driver as a sepa [...]
+                    </pre></div></div><p> Comments:</p><ul><li> Make sure to change <code>8.0.15</code> version to the latest or required one.<li> Update configuration property <code>nlpcraft.server.database.jdbc</code> with required JDBC driver class and JDBC URL.<li> Use scripts from <code>sql/mysql</code> folder to create database and initialize DB schema.<li> Note that you can also <a target=_ href="https://dev.mysql.com/downloads/connector/j">download</a> MySQL JDBC driver as a sepa [...]
                     &lt;dependency&gt;
                         &lt;groupId&gt;org.postgresql&lt;/groupId&gt;
                         &lt;artifactId&gt;postgresql&lt;/artifactId&gt;
@@ -126,7 +126,7 @@ if __name__ == '__main__':
                     }
                     </pre></div><div class="tab-pane fade" id="nav-postgres-sbt" role="tabpanel"><pre class="brush: scala">
                     libraryDependencies += "org.postgresql" % "postgresql" % "42.2.5"
-                    </pre></div></div><p> Comments:</p><ul><li> Make sure to change <code>42.2.5</code> version to the latest or required one.<li> Update configuration property <code>nlpcraft.server.database.jdbc</code> with required JDBC driver class and JDBC URL.<li> Use scripts from <code>sql/postgres</code> folder to create database and initialize DB schema.<li> Note that you can also <a target=_ href="https://jdbc.postgresql.org/">download</a> PostgreSQL JDBC driver as a separate JA [...]
+                    </pre></div></div><p> Comments:</p><ul><li> Make sure to change <code>42.2.5</code> version to the latest or required one.<li> Update configuration property <code>nlpcraft.server.database.jdbc</code> with required JDBC driver class and JDBC URL.<li> Use scripts from <code>sql/postgres</code> folder to create database and initialize DB schema.<li> Note that you can also <a target=_ href="https://jdbc.postgresql.org/">download</a> PostgreSQL JDBC driver as a separate JA [...]
                     &lt;dependency&gt;
                         &lt;groupId&gt;org.oracle&lt;/groupId&gt;
                         &lt;artifactId&gt;ojdbc14&lt;/artifactId&gt;
@@ -140,4 +140,4 @@ if __name__ == '__main__':
                     }
                     </pre></div><div class="tab-pane fade" id="nav-oracle-sbt" role="tabpanel"><pre class="brush: scala">
                     libraryDependencies += "org.oracle" % "ojdbc14" % "10.2.0.4.0"
-                    </pre></div></div><p> Comments:</p><ul><li> Make sure to change <code>10.2.0.4.0</code> version to the latest or required one.<li> Update configuration property <code>nlpcraft.server.database.jdbc</code> with required JDBC driver class and JDBC URL.<li> Use scripts from <code>sql/oracle</code> folder to create database and initialize DB schema.</ul></section><section> <img id="gridgain" class="img-title" src="/images/gridgain-logo.png" width="200px" alt=""><p> NLPCraf [...]
+                    </pre></div></div><p> Comments:</p><ul><li> Make sure to change <code>10.2.0.4.0</code> version to the latest or required one.<li> Update configuration property <code>nlpcraft.server.database.jdbc</code> with required JDBC driver class and JDBC URL.<li> Use scripts from <code>sql/oracle</code> folder to create database and initialize DB schema.</ul></section><section> <img id="gridgain" class="img-title" src="/images/gridgain-logo.png" width="200px" alt=""><p> NLPCraf [...]
diff --git a/intent-matching.html b/intent-matching.html
index 654d7df..20c6da4 100644
--- a/intent-matching.html
+++ b/intent-matching.html
@@ -15,7 +15,7 @@
  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 [...]
             &#64;NCIntent("intent=act term(act)={groups @@ 'act'} term(loc)={trim(id) == 'ls:loc'}*")
             &#64;NCIntentSample(Array(
                 "Turn the lights off in the entire house.",
@@ -99,7 +99,7 @@
             ) {
                ...
             }
-        </pre><p><b>NOTES:</b></p><ul><li> Conversational term <code>termId</code> has <code>[0,1]</code> quantifier (it's optional).<li> The formal parameter on the callback has a type of <code>Optional&lt;NCToken&gt;</code> because the term's quantifier is <code>[0,1]</code>.<li> Note that callback doesn't have an optional <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a> parameter.</ul><h3 class="section-title"><code>NCRejection</co [...]
+        </pre><p><b>NOTES:</b></p><ul><li> Conversational term <code>termId</code> has <code>[0,1]</code> quantifier (it's optional).<li> The formal parameter on the callback has a type of <code>Optional&lt;NCToken&gt;</code> because the term's quantifier is <code>[0,1]</code>.<li> Note that callback doesn't have an optional <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a> parameter.</ul><h3 class="section-title"><code>NCRejection</co [...]
             intent=id1
                 term~{id == 'x:id'}
                 term(nums)~{id == 'nlpcraft:num' && lowercase(~nlpcraft:num:unittype) == 'datetime'}[0,2]
@@ -108,4 +108,4 @@
                 flow='id1 id2'
                 term={id == 'mytok' && signum(~score['best']) != -1}
                 term={(groups @@ 'actors' || groups @@ 'owners') && size(partAlias.~text) > 10}
-        </pre><p><b>NOTES:</b></p><ul><li> Intent has ID <code>id2</code>.<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> Intent has two non-conversational terms. Both terms have to be present only once (their implicit quantifiers are <code>[1,1]</code>).<li> First term should be a token with ID <code>mytok< [...]
+        </pre><p><b>NOTES:</b></p><ul><li> Intent has ID <code>id2</code>.<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> Intent has two non-conversational terms. Both terms have to be present only once (their implicit quantifiers are <code>[1,1]</code>).<li> First term should be a token with ID <code>mytok< [...]
diff --git a/metrics-and-tracing.html b/metrics-and-tracing.html
index ffbe739..a318777 100644
--- a/metrics-and-tracing.html
+++ b/metrics-and-tracing.html
@@ -15,7 +15,7 @@
  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 [...]
 nlpcraft {
     server {
         ...
@@ -37,4 +37,4 @@ nlpcraft {
         ...
     }
 }
-        </pre><p> Just like with server exporters, each probe exporter has default configuration that can be overridden via <a href="server-and-probe.html">configuration</a> properties or environment variables. Note also that all built-in <b>trace exporters</b> use "always" sampling by default that is suitable only for demo or development purposes. For production usage you will need to modify the exporter to provide more effective <a target=_ href="https://opencensus.io/tracing/sampling/ [...]
+        </pre><p> Just like with server exporters, each probe exporter has default configuration that can be overridden via <a href="server-and-probe.html">configuration</a> properties or environment variables. Note also that all built-in <b>trace exporters</b> use "always" sampling by default that is suitable only for demo or development purposes. For production usage you will need to modify the exporter to provide more effective <a target=_ href="https://opencensus.io/tracing/sampling/ [...]
diff --git a/relnotes/release-notes-0.5.0.html b/relnotes/release-notes-0.5.0.html
index acd1a09..2650ae5 100644
--- a/relnotes/release-notes-0.5.0.html
+++ b/relnotes/release-notes-0.5.0.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/relnotes/release-notes-0.6.2.html b/relnotes/release-notes-0.6.2.html
index 5c5d2a7..89faea2 100644
--- a/relnotes/release-notes-0.6.2.html
+++ b/relnotes/release-notes-0.6.2.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/relnotes/release-notes-0.7.0.html b/relnotes/release-notes-0.7.0.html
index 4303996..423f357 100644
--- a/relnotes/release-notes-0.7.0.html
+++ b/relnotes/release-notes-0.7.0.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/relnotes/release-notes-0.7.1.html b/relnotes/release-notes-0.7.1.html
index 2e3e48a..2f862a1 100644
--- a/relnotes/release-notes-0.7.1.html
+++ b/relnotes/release-notes-0.7.1.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/relnotes/release-notes-0.7.2.html b/relnotes/release-notes-0.7.2.html
index de3d624..c4b5f35 100644
--- a/relnotes/release-notes-0.7.2.html
+++ b/relnotes/release-notes-0.7.2.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/relnotes/release-notes-0.7.3.html b/relnotes/release-notes-0.7.3.html
index 0656cf1..7399584 100644
--- a/relnotes/release-notes-0.7.3.html
+++ b/relnotes/release-notes-0.7.3.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/server-and-probe.html b/server-and-probe.html
index 90c302b..5f3c6fd 100644
--- a/server-and-probe.html
+++ b/server-and-probe.html
@@ -15,13 +15,13 @@
  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 [...]
                     $ bin/nlpcraft.sh start-server
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-srv-class" role="tabpanel"><p></p><p> If using just executable JAR:</p><pre class="brush: bash">
+                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=start-server</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-srv-class" role="tabpanel"><p></p><p> If using executable JAR:</p><pre class="br [...]
                     $ java -Xms1024m -jar apache-nlpcraft-incubating-0.7.4-all-deps.jar -server
                 </pre><p> If specifying additional classpath components and need <code>-cp</code> parameter:</p><pre class="brush: bash">
                     $ java -Xms1024m -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar org.apache.nlpcraft.NCStart -server
-                </pre><p> <b>NOTES:</b></p><ul><li> Make sure to provide correct path to <code>apache-nlpcraft-incubating-0.7.4-all-deps.jar</code> file.<li> Class <code>org.apache.nlpcraft.NCStart</code> is a common entry point for all NLPCraft runtime components.<li> Class <code>org.apache.nlpcraft.NCStart</code> should be used to star REST server from IDE.</ul><p> Parameters:</p><dl><dt> <code>-server</code><dd> <em>Mandatory</em> parameter to indicate that you are starting the REST s [...]
+                </pre><p> <b>NOTES:</b></p><ul><li> Make sure to provide correct path to <code>apache-nlpcraft-incubating-<b>0.7.4</b>-all-deps.jar</code> file.<li> Class <code>org.apache.nlpcraft.NCStart</code> is a common entry point for all NLPCraft runtime components.<li> Class <code>org.apache.nlpcraft.NCStart</code> should be used to star REST server from IDE.</ul><p> Parameters:</p><dl><dt> <code>-server</code><dd> <em>Mandatory</em> parameter to indicate that you are starting the [...]
                     $ docker run -m 8G -p 8081:8081 -p 8201:8201 -p 8202:8202 nlpcraftserver/server:0.7.4
                 </pre></div></div><h3 class="section-sub-title">JVM Memory</h3><p> Make sure to allocate enough memory for server JVM using <code>-Xms</code> JVM option, i.e. <code>-Xms1024m</code>. Many 3rd party NLP engines like Stanford CoreNLP are very memory intensive and may require several GBs of JVM heap allocated depending on the models used. Note that when server JVM has insufficient heap memory the Apache Ignite may throw the following warning logs:</p><pre class="brush: text">
             Jul-22 13:27:56 [INFO ] ...
@@ -39,13 +39,13 @@
 --add-opens=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED
 --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
 --illegal-access=permit
-        </pre><p> <b>NOTES:</b></p><ul><li> <code>nlpcraft.{sh|cmd}</code> script automatically uses these options for <code>start-server</code> command.</ul></section><section id="probe"><h2 class="section-title">Data Probe</h2><p> Data probes are used to deploy and host data mode, and can also be started in several ways:</p><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-probe-script" role="tab" aria-controls="nav-home" ar [...]
+        </pre><p> <b>NOTES:</b></p><ul><li> <code>nlpcraft.{sh|cmd}</code> script automatically uses these options for <code>start-server</code> command.</ul></section><section id="probe"><h2 class="section-title">Data Probe</h2><p> Data probes are used to deploy and host data mode, and can also be started in several ways:</p><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-probe-script" role="tab" >NLPCraft CLI</a> <a class= [...]
                     $ bin/nlpcraft.sh start-probe
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=start-probe</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-probe-class" role="tabpanel"><p></p><p> If using just executable JAR:</p><pre class="brush: bash">
+                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=start-probe</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-probe-class" role="tabpanel"><p></p><p> If using executable JAR:</p><pre class="b [...]
                     $ java -jar apache-nlpcraft-incubating-0.7.4-all-deps.jar -probe
                 </pre><p> If specifying additional classpath components and need <code>-cp</code> parameter:</p><pre class="brush: bash">
                     java -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar:/my/project/classes org.apache.nlpcraft.NCStart -probe -config=/my/project/probe.conf
-                </pre><p> <b>NOTES:</b></p><ul><li> <code>/my/project</code> directory contains user-defined model implementation<li> Make sure to provide correct path to <code>apache-nlpcraft-incubating-0.7.4-all-deps.jar</code> file.<li> Class <code>org.apache.nlpcraft.NCStart</code> is a common entry point for all NLPCraft runtime components.<li> Class <code>org.apache.nlpcraft.NCStart</code> should be used to star data probe from IDE.</ul><p> Parameters:</p><dl><dt> <code>-probe</cod [...]
+                </pre><p> <b>NOTES:</b></p><ul><li> <code>/my/project</code> directory contains user-defined model implementation<li> Make sure to provide correct path to <code>apache-nlpcraft-incubating-<b>0.7.4</b>-all-deps.jar</code> file.<li> Class <code>org.apache.nlpcraft.NCStart</code> is a common entry point for all NLPCraft runtime components.<li> Class <code>org.apache.nlpcraft.NCStart</code> should be used to star data probe from IDE.</ul><p> Parameters:</p><dl><dt> <code>-pro [...]
 nlpcraft {
     server {
         ...
@@ -57,7 +57,7 @@ nlpcraft {
         ...
     }
 }
-            </pre></section><section id="override"><h3 class="section-sub-title">Custom Configuration</h3><p> While you can change configuration file or files for your own needs (and use <code>-config=...</code> parameter described above to provide path to that file) it is often more convenient to use the default configuration file and just change one or two properties in it. You can accomplish this by using standard <a target=_ href="https://github.com/lightbend/config#optional-system-o [...]
+            </pre></section><section id="override"><h3 class="section-sub-title">Custom Configuration</h3><p> While you can change configuration file or files for your own needs (and use <code>-config=...</code> parameter described above to provide path to that file) it is often more convenient to use the default configuration file and change one or two properties in it. You can accomplish this by using standard <a target=_ href="https://github.com/lightbend/config#optional-system-or-env [...]
 nlpcraft {
     probe {
         models = "com.nlp.MyModel"
@@ -73,7 +73,7 @@ nlpcraft {
         }
     }
 }
-        </pre><p> You can override these properties with the following environment variables:</p><p> <code>CONFIG_FORCE_<b>nlpcraft_server_rest_host</b>=1.2.3.4</code><br> <code>CONFIG_FORCE_<b>nlpcraft_server_lifecycle</b>="org.nlp.Lifecycle1, org.nlp.Lifecycle1"</code><br> <code>CONFIG_FORCE_<b>nlpcraft_probe_models</b>="com.nlp.MyModel, com.nlp.AnotherModel"</code></p><div class="bq info"> <b>Examples</b><p> Note that all examples that come with NLPCraft have instructions that use env [...]
+        </pre><p> You can override these properties with the following environment variables:</p><p> <code>CONFIG_FORCE_<b>nlpcraft_server_rest_host</b>=1.2.3.4</code><br> <code>CONFIG_FORCE_<b>nlpcraft_server_lifecycle</b>="org.nlp.Lifecycle1, org.nlp.Lifecycle1"</code><br> <code>CONFIG_FORCE_<b>nlpcraft_probe_models</b>="com.nlp.MyModel, com.nlp.AnotherModel"</code></p><div class="bq info"> <b>Examples</b><p> Note that all examples that come with NLPCraft have instructions that use env [...]
 &lt;plugin&gt;
     &lt;groupId&gt;com.bazaarvoice.maven.plugins&lt;/groupId&gt;
     &lt;artifactId&gt;process-exec-maven-plugin&lt;/artifactId&gt;
@@ -122,4 +122,4 @@ nlpcraft {
         &lt;/execution&gt;
     &lt;/executions&gt;
 &lt;/plugin&gt;
-        </pre><p> <b>NOTES</b>:</p><ul><li> On line 14 we specify the URL endpoint to check whether or not our server is online. We use <code>/health</code> localhost REST call for that.<li> On line 16 we redirect the output from server to a dedicated file to <b>avoid interleaving</b> log from server and log from data probe in the same console (where we are running the Maven build from). Such interleaving will make the combined log unreadable and can cause output problem for the console  [...]
+        </pre><p> <b>NOTES</b>:</p><ul><li> On line 14 we specify the URL endpoint to check whether or not our server is online. We use <code>/health</code> localhost REST call for that.<li> On line 16 we redirect the output from server to a dedicated file to <b>avoid interleaving</b> log from server and log from data probe in the same console (where we are running the Maven build from). Such interleaving will make the combined log unreadable and can cause output problem for the console  [...]
diff --git a/tools/embedded_probe.html b/tools/embedded_probe.html
index c09ad22..23f6726 100644
--- a/tools/embedded_probe.html
+++ b/tools/embedded_probe.html
@@ -15,7 +15,7 @@
  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 [...]
 public class AlarmTest {
     private NCTestClient cli;
 
@@ -44,4 +44,4 @@ public class AlarmTest {
         assertTrue(cli.ask("Set my alarm for 30s").isOk());
     }
 }
-        </pre><p> <b>NOTES:</b></p><ul><li> Lines 6 and 18 show the embedded data probe start and stop as it's used in the unit tests.</ul><p> It's important to note that there are number of inherent limitations associated with embedded probe:</p><ul><li> Embedded probe is only available for JVM-based applications (and can be used with any JVM languages).<li> There can be only one embedded probe per JVM.<li> Once data probe is stopped and cannot be re-started again in the same JVM.<li> E [...]
+        </pre><p> <b>NOTES:</b></p><ul><li> Lines 6 and 18 show the embedded data probe start and stop as it's used in the unit tests.</ul><p> It's important to note that there are number of inherent limitations associated with embedded probe:</p><ul><li> Embedded probe is only available for JVM-based applications (and can be used with any JVM languages).<li> There can be only one embedded probe per JVM.<li> Once data probe is stopped and cannot be re-started again in the same JVM.<li> E [...]
diff --git a/tools/script.html b/tools/script.html
index cb199a4..bc2c331 100644
--- a/tools/script.html
+++ b/tools/script.html
@@ -15,14 +15,14 @@
  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 [...]
             > $git pull # Runs 'git pull' in the current directory.
             > $vi /home/myproject/pom.xml # Edit 'pom.xml' using vi.
             > $emacs /home/myproject/MyModel.scala # Edit 'MyModel.scala' using emacs.
             > $ls -la # Run 'ls-la' Unix command.
             > $cmd /c dir # Runs Windows 'dir' command in a separate shell.
-        </pre><p> Note that <em>stdin</em>, <em>stderr</em> and <em>stdout</em> of the new process will inherit from running <code>bin/nlpcraft.{sh|cmd}</code> script process. Running OS commands makes the most sense in REPL mode where you don't want to lose a session context while executing external OS commands. Technically, however, external OS commands can be executed from command line mode as well.</p></section><section id="tips"><h3 class="section-title">Tips <span class="amp">&amp; [...]
+        </pre><p> Note that <em>stdin</em>, <em>stderr</em> and <em>stdout</em> of the new process will inherit from running <code>bin/nlpcraft.{sh|cmd}</code> script process. Running OS commands makes the most sense in REPL mode where you don't want to lose a session context while executing external OS commands. Technically, however, external OS commands can be executed from command line mode as well.</p></section><section id="tips"><h3 class="section-title">Tips <span class="amp">&amp; [...]
             $ bin/nlpcraft.sh no-ansi no-logo signin --email=admin@admin.com --passwd=admin | tail -n +2 | jq -M '.acsTok' | tr -d '"'
         </pre><p> ...and the access token is:</p><pre class="brush: bash">
             bjok7yraypseyk86KgGae
-        </pre><p> <b>NOTES:</b></p><ul><li> We use <code>no-ansi</code> and <code>no-logo</code> special commands that clean up and simplify the output so that it would be easier to parse the resulting JSON.<li> We use <code>tail -n +2</code> Unix command to skip the 1st line of the output that contains HTTP return code.<li> We use <a target=_blank href="https://stedolan.github.io/jq/">jq</a> utility to parse JSON inline and extract <code>acsTok</code> field.<li> We use <code>tr -d '"'</ [...]
+        </pre><p> <b>NOTES:</b></p><ul><li> We use <code>no-ansi</code> and <code>no-logo</code> special commands that clean up and simplify the output so that it would be easier to parse the resulting JSON.<li> We use <code>tail -n +2</code> Unix command to skip the 1st line of the output that contains HTTP return code.<li> We use <a target=_blank href="https://stedolan.github.io/jq/">jq</a> utility to parse JSON inline and extract <code>acsTok</code> field.<li> We use <code>tr -d '"'</ [...]
diff --git a/tools/sql_model_gen.html b/tools/sql_model_gen.html
index 6026364..590c984 100644
--- a/tools/sql_model_gen.html
+++ b/tools/sql_model_gen.html
@@ -15,8 +15,8 @@
  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 [...]
                     $ bin/nlpcraft.sh gen-sql --url=jdbc:postgresql://localhost:5432/mydb --driver=org.postgresql.Driver --schema=public --out=model.json
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=gen-sql</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-class" role="tabpanel"><pre class="brush: bash">
+                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=gen-sql</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-class" role="tabpanel"><pre class="brush: bash">
                     $ java -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar org.apache.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator
-                </pre><p> <b>NOTES:</b></p><ul><li> Run this class without arguments to get a full help.<li> Use <code>org.apache.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator</code> class directly to execute it from IDE or programmatically.</ul></div></div><p> After the data model stub is generated:</p><ul><li> Load generated YAML/JSON-based model using <a target="javadoc" href="https://javadoc.io/static/org.apache.nlpcraft/nlpcraft/0.5.0/org/apache/nlpcraft/model/NCModelFileAdapter.h [...]
+                </pre><p> <b>NOTES:</b></p><ul><li> Run this class without arguments to get a full help.<li> Use <code>org.apache.nlpcraft.model.tools.sqlgen.NCSqlModelGenerator</code> class directly to execute it from IDE or programmatically.</ul></div></div><p> After the data model stub is generated:</p><ul><li> Load generated YAML/JSON-based model using <a target="javadoc" href="https://javadoc.io/static/org.apache.nlpcraft/nlpcraft/0.5.0/org/apache/nlpcraft/model/NCModelFileAdapter.h [...]
diff --git a/tools/syn_tool.html b/tools/syn_tool.html
index 231dce7..885e7c5 100644
--- a/tools/syn_tool.html
+++ b/tools/syn_tool.html
@@ -15,17 +15,15 @@
  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 [...]
                             $ cd nlpcraft/src/main/python/ctxword
                             $ bin/install_dependencies.sh
-                        </pre></div><div class="tab-pane fade show" id="nav-win" role="tabpanel"><pre class="brush: plain">
-                            Read 'src\main\python\ctxword\bin\WINDOWS_SETUP.md' file for manual installation instructions.
-                        </pre></div></div><li> <em>Optional.</em> <br/> Configure <code>nlpcraft.server.ctxword.url</code> property in <code>nlpcraft.conf</code> file (or your own configuration file). This property comes with a default endpoint and you only need to change it if you change the 'ctxword' module implementation.<li> Start the 'ctxword' server by running the following commands from NLPCraft installation directory:<pre class="brush: bash">
+                        </pre></div><div class="tab-pane fade show" id="nav-win" role="tabpanel"><p></p><p> Read <code>src\main\python\ctxword\bin\WINDOWS_SETUP.md</code> file for manual installation instructions.</p></div></div><li> <em>Optional.</em> <br/> Configure <code>nlpcraft.server.ctxword.url</code> property in <code>nlpcraft.conf</code> file (or your own configuration file). This property comes with a default endpoint and you only need to change it if you change the 'ctxword' m [...]
                     $ cd nlpcraft/src/main/python/ctxword
                     $ bin/start_server.{sh|cmd}
-                </pre><div class="bq info"><p> <b>1st Start</b></p>Note that on the first start the server will try to load compressed BERT model which is not yet available. It will then download this library and compress it which will take a several minutes and may require 10 GB+ of available memory. Subsequent starts will skip this step, and the server will start much faster.</div></ol><h3 class="section-sub-title">REST Server</h3><p> REST server should be <a href="/server-and-probe.ht [...]
+                </pre><div class="bq info"><p> <b>1st Start</b></p>Note that on the first start the server will try to load compressed BERT model which is not yet available. It will then download this library and compress it which will take a several minutes and may require 10 GB+ of available memory. Subsequent starts will skip this step, and the server will start much faster.</div></ol><h3 class="section-sub-title">REST Server</h3><p> REST server should be <a href="/server-and-probe.ht [...]
                     $ bin/nlpcraft.sh sugsyn --mdlId=nlpcraft.alarm.ex
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=sugsyn</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-rest" role="tabpanel"><p></p><p> <a href="/using-rest.html">REST API</a> accepts only <code>POST</cod [...]
+                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=sugsyn</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-rest" role="tabpanel"><p></p><p> <a href="/using-rest.html">REST API</a> accepts only  [...]
                     https://localhost:8081/api/v1/model/sugsyn
                 </pre><p> where:<dl><dt><code>http</code><dd>Either <code>http</code> or <code>https</code> protocol.<dt><code>localhost:8081</code><dd>Host and port on which REST server is started. <code>localhost:8081</code> is the default configuration and can be <a href="/server-and-probe.html">changed</a>.<dt><code>/api/v1</code><dd>Mandatory prefix indicating API version.<dt><code>model/sugsyn</code><dd>Synonym suggester REST call.</dl><p> The parameters should be passed in as JSON [...]
         {
@@ -95,4 +93,4 @@
     "Model has too few (3) intents samples. It will negatively affect the quality of suggestions. Try to increase overall sample count to at least 20."
   ]
 }
-        </pre><p> The result is structured as a list of proposed synonyms with their corresponding scores for each model's element. You should analyse the results for their fitness for your model and its existing synonyms. The tool cannot guarantee that every suggested synonym is appropriate or valid - but it gives a good "courtesy" check for potentially missing synonyms.</p><div class="bq info"><p> <b>Run Periodically</b></p><p> It is a good idea to run this tool periodically if you are [...]
+        </pre><p> The result is structured as a list of proposed synonyms with their corresponding scores for each model's element. You should analyse the results for their fitness for your model and its existing synonyms. The tool cannot guarantee that every suggested synonym is appropriate or valid - but it gives a good "courtesy" check for potentially missing synonyms.</p><div class="bq info"><p> <b>Run Periodically</b></p><p> It is a good idea to run this tool periodically if you are [...]
diff --git a/tools/test_framework.html b/tools/test_framework.html
index 7c05c54..6eaa813 100644
--- a/tools/test_framework.html
+++ b/tools/test_framework.html
@@ -15,7 +15,7 @@
  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 [...]
 public class AlarmTest {
     private NCTestClient cli;
 
@@ -59,8 +59,8 @@ public class AlarmModel extends NCModelFileAdapter {
       // ...
     }
 }
-        </pre><p> Auto mode validator takes one or more model IDs (or class names) and performs validation. Validation consists of starting an <a href="/tools/embedded_probe.html">embedded probe</a> with a given model, scanning for <code>@NCIntentSample</code> annotations and their corresponding callback methods, submitting each sample input sentences from <code>@NCIntentSample</code> annotation and checking that resulting intent matches the intent the sample was attached to.</p><h3 clas [...]
+        </pre><p> Auto mode validator takes one or more model IDs (or class names) and performs validation. Validation consists of starting an <a href="/tools/embedded_probe.html">embedded probe</a> with a given model, scanning for <code>@NCIntentSample</code> annotations and their corresponding callback methods, submitting each sample input sentences from <code>@NCIntentSample</code> annotation and checking that resulting intent matches the intent the sample was attached to.</p><h3 clas [...]
                     $ bin/nlpcraft.sh test-model
-                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code>bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-class" role="tabpanel"><pre class="brush: bash">
+                </pre><p> <b>NOTES:</b></p><ul><li> <a href="/tools/script.html">NLPCraft CLI</a> is available as <code>nlpcraft.sh</code> for <i class="fab fa-fw fa-linux"></i> and <code>nlpcraft.cmd</code> for <i class="fab fa-fw fa-windows"></i>.<li> Run <code class="script">bin/nlpcraft.sh help --cmd=test-model</code> to get a full help on this command.</ul></div><div class="tab-pane fade show" id="nav-class" role="tabpanel"><pre class="brush: bash">
                     java -cp apache-nlpcraft-incubating-0.7.4-all-deps.jar -DNLPCRAFT_TEST_MODELS=org.apache.nlpcraft.examples.alarm.AlarmModel org.apache.nlpcraft.model.tools.test.NCTestAutoModelValidator
-                </pre><p> <b>NOTES:</b></p><ul><li> Make sure to add necessary classpath components.<li> <code>NLPCRAFT_TEST_MODELS</code> system property that should contain comma separate list of the data model classes to test.<li> You can also use <code>org.apache.nlpcraft.model.tools.test.NCTestAutoModelValidator</code> class directly to call it programmatically from the code or from IDE.</ul></div></div><p> In the log output you should see the following validation results:</p><figur [...]
+                </pre><p> <b>NOTES:</b></p><ul><li> Make sure to add necessary classpath components.<li> <code>NLPCRAFT_TEST_MODELS</code> system property that should contain comma separate list of the data model classes to test.<li> You can also use <code>org.apache.nlpcraft.model.tools.test.NCTestAutoModelValidator</code> class directly to call it programmatically from the code or from IDE.</ul></div></div><p> In the log output you should see the following validation results:</p><figur [...]
diff --git a/use-cases.html b/use-cases.html
index c40232d..931e521 100644
--- a/use-cases.html
+++ b/use-cases.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/using-rest.html b/using-rest.html
index 26e7f3c..10c2374 100644
--- a/using-rest.html
+++ b/using-rest.html
@@ -15,11 +15,11 @@
  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 [...]
             https://localhost:8081/api/v1/signin
         </pre><p> where:<dl><dt><code>http</code><dd>Either <code>http</code> or <code>https</code> protocol.<dt><code>localhost:8081</code><dd>Host and port on which REST server is started. <code>localhost:8081</code> is the default configuration and can be <a href="/server-and-probe.html">changed</a>.<dt><code>/api/v1</code><dd>Mandatory prefix indicating API version.<dt><code>/signin</code><dd>Specific REST path.</dl><div class="bq info"><p> <b>Management Script</b></p><p> <a href="/t [...]
         {
             "code": "NC_INVALID_ACCESS_TOKEN",
             "msg": "Unknown access token: PPdxjwXBOIMpAWNgpKq1"
         }
-        </pre><p> Following tables shows all possible <code>code</code> values for these server errors:</p><table class="gradient-table"><thead><tr><th>Code<th>Description<tbody><tr><td><code>NC_INVALID_ACCESS_TOKEN</code><td> The access token is invalid or no longer valid. Note that previously issued existing access tokens can expire or be otherwise invalidated and have to be obtained again.<tr><td><code>NC_SIGNIN_FAILURE</code><td> Invalid or unknown user email and/or user password dur [...]
+        </pre><p> Following tables shows all possible <code>code</code> values for these server errors:</p><table class="gradient-table"><thead><tr><th>Code<th>Description<tbody><tr><td><code>NC_INVALID_ACCESS_TOKEN</code><td> The access token is invalid or no longer valid. Note that previously issued existing access tokens can expire or be otherwise invalidated and have to be obtained again.<tr><td><code>NC_SIGNIN_FAILURE</code><td> Invalid or unknown user email and/or user password dur [...]