Javadoc & spelling fixes.
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCElement.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCElement.java
index d80ef61..9f5872a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCElement.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCElement.java
@@ -37,8 +37,8 @@
     /**
      * Gets unique ID of this element.
      * <p>
-     * This unique ID should be human readable for simpler debugging and testing of the model.
-     * Although element ID could be any arbitrary string it is highly recommended to have
+     * This unique ID should be human-readable for simpler debugging and testing of the model.
+     * Although element ID could be any arbitrary string it is highly recommended having
      * element ID as a lower case string starting with some model prefix, followed by colon and
      * then the element's name. For example, some built-in NLPCraft IDs are: <code>nlpcraft:date</code>,
      * <code>nlpcraft:city</code>.
@@ -75,13 +75,13 @@
     String getId();
 
     /**
-     * Gets the list of groups this elements belongs to.
+     * Gets the list of groups this element belongs to.
      * <p>
      * Model element can belong to one or more groups. By default, the element belongs to a single group whose group
      * ID is equal to its {@link #getId() ID}. The proper grouping of the model elements is required for operation
      * of Short-Term-Memory (STM) in {@link NCConversation conversation} (if and when conversation
      * is used). Specifically, a token (i.e. found model element) that is part of the group set will override
-     * other tokens from the same set or a its superset. In other words, tokens with a smaller group set
+     * other tokens from the same set or its superset. In other words, tokens with a smaller group set
      * (more specific token) will override the tokens from a larger group set (more generic tokens).
      * <p>
      * Note that built-in tokens (including from 3rd party token providers) belong to a single group whose group
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelView.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelView.java
index b7243e3..c213098 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelView.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModelView.java
@@ -34,112 +34,112 @@
  */
 public interface NCModelView extends NCMetadata {
     /**
-     * Min value for {@link #getConversationTimeout()} method.
+     * Minimum value for {@link #getConversationTimeout()} method.
      */
     long CONV_TIMEOUT_MIN = 0L;
 
     /**
-     * Max value for {@link #getConversationTimeout()} method.
+     * Maximum value for {@link #getConversationTimeout()} method.
      */
     long CONV_TIMEOUT_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMaxUnknownWords()} method.
+     * Minimum value for {@link #getMaxUnknownWords()} method.
      */
     long MAX_UNKNOWN_WORDS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMaxUnknownWords()} method.
+     * Maximum value for {@link #getMaxUnknownWords()} method.
      */
     long MAX_UNKNOWN_WORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMaxFreeWords()} method.
+     * Minimum value for {@link #getMaxFreeWords()} method.
      */
     long MAX_FREE_WORDS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMaxFreeWords()} method.
+     * Maximum value for {@link #getMaxFreeWords()} method.
      */
     long MAX_FREE_WORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMaxSuspiciousWords()} method.
+     * Minimum value for {@link #getMaxSuspiciousWords()} method.
      */
     long MAX_SUSPICIOUS_WORDS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMaxSuspiciousWords()} method.
+     * Maximum value for {@link #getMaxSuspiciousWords()} method.
      */
     long MAX_SUSPICIOUS_WORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMinWords()} method.
+     * Minimum value for {@link #getMinWords()} method.
      */
     long MIN_WORDS_MIN = 1L;
 
     /**
-     * Max value for {@link #getMinWords()} method.
+     * Maximum value for {@link #getMinWords()} method.
      */
     long MIN_WORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMinNonStopwords()} method.
+     * Minimum value for {@link #getMinNonStopwords()} method.
      */
     long MIN_NON_STOPWORDS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMinNonStopwords()} method.
+     * Maximum value for {@link #getMinNonStopwords()} method.
      */
     long MIN_NON_STOPWORDS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMinTokens()} method.
+     * Minimum value for {@link #getMinTokens()} method.
      */
     long MIN_TOKENS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMinTokens()} method.
+     * Maximum value for {@link #getMinTokens()} method.
      */
     long MIN_TOKENS_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getMaxTokens()} method.
+     * Minimum value for {@link #getMaxTokens()} method.
      */
     long MAX_TOKENS_MIN = 0L;
 
     /**
-     * Max value for {@link #getMaxTokens()} method.
+     * Maximum value for {@link #getMaxTokens()} method.
      */
     long MAX_TOKENS_MAX = 100L;
 
     /**
-     * Min value for {@link #getMaxWords()} method.
+     * Minimum value for {@link #getMaxWords()} method.
      */
     long MAX_WORDS_MIN = 1L;
 
     /**
-     * Max value for {@link #getMaxWords()} method.
+     * Maximum value for {@link #getMaxWords()} method.
      */
     long MAX_WORDS_MAX = 100L;
 
     /**
-     * Min value for {@link #getMaxElementSynonyms()} method.
+     * Minimum value for {@link #getMaxElementSynonyms()} method.
      */
     long MAX_SYN_MIN = 1L;
 
     /**
-     * Max value for {@link #getMaxElementSynonyms()} method.
+     * Maximum value for {@link #getMaxElementSynonyms()} method.
      */
     long MAX_SYN_MAX = Long.MAX_VALUE;
 
     /**
-     * Min value for {@link #getConversationDepth()} method.
+     * Minimum value for {@link #getConversationDepth()} method.
      */
     long CONV_DEPTH_MIN = 1L;
 
     /**
-     * Max value for {@link #getConversationDepth()} method.
+     * Maximum value for {@link #getConversationDepth()} method.
      */
     long CONV_DEPTH_MAX = Long.MAX_VALUE;
 
@@ -390,9 +390,9 @@
 
     /**
      * Gets maximum number of unknown words until automatic rejection. An unknown word is a word
-     * that is not part of Princeton WordNet database. If you expect a very formalized and well
-     * defined input without uncommon slang and abbreviations you can set this to a small number
-     * like one or two. However, in most cases we recommend to leave it as default or set it to a larger
+     * that is not part of Princeton WordNet database. If you expect a very formalized and well-defined
+     * input without uncommon slang and abbreviations you can set this to a small number
+     * like one or two. However, in most cases we recommend leaving it as default or set it to a larger
      * number like five or more.
      * <p>
      * <b>Default</b>
@@ -588,7 +588,7 @@
 
     /**
      * Whether to allow non-English language in user input.
-     * Currently, only English language is supported. However, model can choose whether or not
+     * Currently, only English language is supported. However, model can choose whether
      * to automatically reject user input that is detected to be a non-English. Note that current
      * algorithm only works reliably on longer user input (10+ words). On short sentences it will
      * often produce an incorrect result.
@@ -791,7 +791,7 @@
     }
 
     /**
-     * Whether this model elements allows non-stop words gaps in their multi-word synonyms.
+     * Whether this model elements allow non-stop words gaps in their multi-word synonyms.
      * This property is closely related to {@link #isPermutateSynonyms()} which are typically changed together.
      * Note that individual model elements can override this property using {@link NCElement#isSparse()}
      * method.
@@ -987,7 +987,7 @@
      * that will be automatically recognized in the user input. See also {@link NCModel#getParsers()} method on how
      * to provide programmatic named entity recognizer (NER) implementations.
      * <p>
-     * Note that unless model elements are loaded dynamically it is highly recommended to declare model
+     * Note that unless model elements are loaded dynamically it is highly recommended declaring model
      * elements in the external JSON/YAML model configuration (under <code>elements</code> property):
      * <pre class="brush: js">
      * {
@@ -1195,7 +1195,7 @@
      * Gets an optional map of restricted named entity combinations (linkage). Returned map is a map of entity ID to a set
      * of other entity IDs, with each key-value pair defining the restricted combination. Restricting certain entities
      * from being linked (or referenced) by some other entities allows reducing "wasteful" parsing variant
-     * generation. For example, it we know that entity with ID "adjective" cannot be sorted, we can restrict it
+     * generation. For example, if we know that entity with ID "adjective" cannot be sorted, we can restrict it
      * from being linked with <code>nlpcraft:limit</code> and <code>nlpcraft:sort</code> entities to reduce the
      * amount of parsing variants being generated.
      * <p>
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
index d1bb9c5..22e5ada 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
@@ -1510,7 +1510,7 @@
             tbl += (s"${g("Email")}", state.userEmail.get)
             tbl += (s"${g("Access token")}", state.accessToken.get)
 
-            logln(s"Signed in user account:\n$tbl")
+            logln(s"Signed-in user account:\n$tbl")
         }
     }
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliCommands.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliCommands.scala
index bda3ab1..b5a2904 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliCommands.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliCommands.scala
@@ -198,7 +198,7 @@
             synopsis = s"Wrapper for ${y("'/signout'")} REST call in REPL mode.",
             desc = Some(
                 s"See $REST_SPEC_URL for REST call specification. " +
-                s"Signs out currently signed in user. Note that this command makes sense only in REPL mode."
+                s"Signs out currently signed-in user. Note that this command makes sense only in REPL mode."
             ),
             body = NCCli.cmdSignOut,
             examples = Seq(
@@ -206,7 +206,7 @@
                     usage = Seq(
                         s"$PROMPT $SCRIPT_NAME signout"
                     ),
-                    desc = s"Signs out currently signed in user, if any."
+                    desc = s"Signs out currently signed-in user, if any."
                 )
             )
         ),
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
index 8116d07..2bbe409 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
@@ -287,7 +287,7 @@
     /**
       * Checks operation permissions and gets user ID.
       *
-      * @param acsUsr Currently signed in user.
+      * @param acsUsr Currently signed-in user.
       * @param usrIdOpt User ID. Optional.
       * @param usrExtIdOpt User 'on-behalf-of' external ID. Optional.
       */