blob: 50ea39b7bf322137d3981f61a28d96758f60f6d1 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.2) on Sat Aug 07 00:12:35 PDT 2021 -->
<title>NCModelInfo (Apache NLPCraft - Java Client 0.9.0)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-08-07">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="NCModelInfo (Apache NLPCraft - Java Client 0.9.0)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav"><link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> <script src="../../../../resources/sh/scripts/XRegExp.js" type="text/javascript"></script> <script src="../../../../resources/sh/scripts/shCore.js" type="text/javascript"></script> <script src="../../../../resources/sh/scripts/shAutoloader.js" type="text/javascript"></script> <link href="../../../../resources/sh/styles/shCoreNlpCraft.css" rel="stylesheet" type="text/css" title="Style"> <link href="../../../../resources/sh/styles/shThemeNlpCraft.css" rel="stylesheet" type="text/css" title="Style"> <link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> <script async defer src="https://buttons.github.io/buttons.js"></script>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NCModelInfo.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">Apache NLPCraft - Java Client <span style="font-size: 80%">0.9.0</span></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.nlpcraft.client</a></div>
<h2 title="Interface NCModelInfo" class="title">Interface NCModelInfo</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public interface <span class="typeNameLabel">NCModelInfo</span></pre>
<div class="block">A model view descriptor.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NCClient.html#getModelInfo(java.lang.String)"><code>NCClient.getModelInfo(String)</code></a>,
<a href="NCModel.html" title="interface in org.apache.nlpcraft.client"><code>NCModel</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAbstractTokens()">getAbstractTokens</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets s set of named entities (token) IDs that will be considered as abstract tokens.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAdditionalStopWords()">getAdditionalStopWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets an optional list of stopwords to add to the built-in ones.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConversationDepth()">getConversationDepth</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets maximum number of requests after which the unused conversation element is automatically "forgotten".</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConversationTimeout()">getConversationTimeout</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets timeout in ms after which the unused conversation element is automatically "forgotten".</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDescription()">getDescription</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets optional short model description.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="NCElement.html" title="interface in org.apache.nlpcraft.client">NCElement</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getElements()">getElements</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets a set of model elements or named entities.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEnabledBuiltInTokens()">getEnabledBuiltInTokens</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets a set of IDs for built-in named entities (tokens) that should be enabled and detected for this model.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExcludedStopWords()">getExcludedStopWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets an optional list of stopwords to exclude from the built-in list of stopwords.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getId()">getId</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets unique, <i>immutable</i> ID of this model.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMacros()">getMacros</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets an optional map of macros to be used in this model.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxElementSynonyms()">getMaxElementSynonyms</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets maximum number of unique synonyms per model element after which either warning or error will be
triggered.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxFreeWords()">getMaxFreeWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets maximum number of free words until automatic rejection.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxSuspiciousWords()">getMaxSuspiciousWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets maximum number of suspicious words until automatic rejection.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxTokens()">getMaxTokens</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets maximum number of all tokens (system and user defined) above which user input will be
automatically rejected as too long.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxTotalSynonyms()">getMaxTotalSynonyms</a></span>()</code></th>
<td class="colLast">
<div class="block">Total number of synonyms allowed per model.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxUnknownWords()">getMaxUnknownWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets maximum number of unknown words until automatic rejection.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMaxWords()">getMaxWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets maximum word count (<i>including</i> stopwords) above which user input will be automatically
rejected as too long.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMetadata()">getMetadata</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets optional user defined model metadata that can be set by the developer and accessed later.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMinNonStopwords()">getMinNonStopwords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets minimum word count (<i>excluding</i> stopwords) below which user input will be automatically rejected
as ambiguous sentence.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMinTokens()">getMinTokens</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets minimum number of all tokens (system and user defined) below which user input will be
automatically rejected as too short.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMinWords()">getMinWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets minimum word count (<i>including</i> stopwords) below which user input will be automatically
rejected as too short.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getName()">getName</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets descriptive name of this model.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOrigin()">getOrigin</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the origin of this model like name of the class, file path or URL.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRestrictedCombinations()">getRestrictedCombinations</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets an optional map of restricted named entity combinations (linkage).</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSuspiciousWords()">getSuspiciousWords</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets an optional list of suspicious words.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getVersion()">getVersion</a></span>()</code></th>
<td class="colLast">
<div class="block">Gets the version of this model using semantic versioning.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isDupSynonymsAllowed()">isDupSynonymsAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether duplicate synonyms are allowed.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMaxSynonymsThresholdError()">isMaxSynonymsThresholdError</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether exceeding <a href="#getMaxElementSynonyms()"><code>getMaxElementSynonyms()</code></a> will trigger a warning log or throwing an exception.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNonEnglishAllowed()">isNonEnglishAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow non-English language in user input.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNoNounsAllowed()">isNoNounsAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow user input without a single noun.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNotLatinCharsetAllowed()">isNotLatinCharsetAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow non-Latin charset in user input.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isNoUserTokensAllowed()">isNoUserTokensAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow the user input with no user token detected.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isPermutateSynonyms()">isPermutateSynonyms</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to permutate multi-word synonyms.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSparse()">isSparse</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether this model elements allow non-stop words gaps in their multi-word synonyms.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSwearWordsAllowed()">isSwearWordsAllowed</a></span>()</code></th>
<td class="colLast">
<div class="block">Whether to allow known English swear words in user input.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getId()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getId</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getId()</pre>
<div class="block">Gets unique, <i>immutable</i> ID of this model.
<p>
Note that <b>model IDs are immutable</b> while name and version
can be changed freely. Changing model ID is equal to creating a completely new model.
Model IDs (unlike name and version) are not exposed to the end user and only serve a
technical purpose. ID's max length is 32 characters.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Unique, <i>immutable</i> ID of this model.</dd>
</dl>
</li>
</ul>
<a id="getName()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getName()</pre>
<div class="block">Gets descriptive name of this model. Name's max length is 64 characters.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Descriptive name for this model.</dd>
</dl>
</li>
</ul>
<a id="getVersion()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVersion</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getVersion()</pre>
<div class="block">Gets the version of this model using semantic versioning. Version's max length is 16 characters.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A version compatible with (<a href="http://www.semver.org">www.semver.org</a>) specification.</dd>
</dl>
</li>
</ul>
<a id="getDescription()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDescription</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getDescription()</pre>
<div class="block">Gets optional short model description. This can be displayed by the management tools.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional short model description.</dd>
</dl>
</li>
</ul>
<a id="getOrigin()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOrigin</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getOrigin()</pre>
<div class="block">Gets the origin of this model like name of the class, file path or URL.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Origin of this model like name of the class, file path or URL.</dd>
</dl>
</li>
</ul>
<a id="getMaxUnknownWords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxUnknownWords</h4>
<pre class="methodSignature">int&nbsp;getMaxUnknownWords()</pre>
<div class="block">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 leaving it as or set it to a larger
number like five or more.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum number of unknown words until automatic rejection.</dd>
</dl>
</li>
</ul>
<a id="getMaxFreeWords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxFreeWords</h4>
<pre class="methodSignature">int&nbsp;getMaxFreeWords()</pre>
<div class="block">Gets maximum number of free words until automatic rejection. A free word is a known word that is
not part of any recognized token. In other words, a word that is present in the user input
but won't be used to understand its meaning. Setting it to a non-zero risks the misunderstanding
of the user input, while setting it to zero often makes understanding logic too rigid. In most
cases we recommend setting to between one and three. If you expect the user input to contain
many <i>noisy</i> idioms, slang or colloquials - you can set it to a larger number.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum number of free words until automatic rejection.</dd>
</dl>
</li>
</ul>
<a id="getMaxSuspiciousWords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxSuspiciousWords</h4>
<pre class="methodSignature">int&nbsp;getMaxSuspiciousWords()</pre>
<div class="block">Gets maximum number of suspicious words until automatic rejection. A suspicious word is a word
that is defined by the model that should not appear in a valid user input under no circumstances.
A typical example of suspicious words would be words "sex" or "porn" when processing
queries about children books. In most cases this should be set to zero (default) to automatically
reject any such suspicious words in the user input.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum number of suspicious words until automatic rejection.</dd>
</dl>
</li>
</ul>
<a id="getMinWords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinWords</h4>
<pre class="methodSignature">int&nbsp;getMinWords()</pre>
<div class="block">Gets minimum word count (<i>including</i> stopwords) below which user input will be automatically
rejected as too short. In almost all cases this value should be greater than or equal to one.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Minimum word count (<i>including</i> stopwords) below which user input will be automatically
rejected as too short.</dd>
</dl>
</li>
</ul>
<a id="getMaxWords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxWords</h4>
<pre class="methodSignature">int&nbsp;getMaxWords()</pre>
<div class="block">Gets maximum word count (<i>including</i> stopwords) above which user input will be automatically
rejected as too long. In almost all cases this value should be greater than or equal to one.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum word count (<i>including</i> stopwords) above which user input will be automatically
rejected as too long.</dd>
</dl>
</li>
</ul>
<a id="getMinTokens()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinTokens</h4>
<pre class="methodSignature">int&nbsp;getMinTokens()</pre>
<div class="block">Gets minimum number of all tokens (system and user defined) below which user input will be
automatically rejected as too short. In almost all cases this value should be greater than or equal to one.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Minimum number of all tokens.</dd>
</dl>
</li>
</ul>
<a id="getMaxTokens()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxTokens</h4>
<pre class="methodSignature">int&nbsp;getMaxTokens()</pre>
<div class="block">Gets maximum number of all tokens (system and user defined) above which user input will be
automatically rejected as too long. Note that sentences with large number of token can result
in significant processing delay and substantial memory consumption.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum number of all tokens.</dd>
</dl>
</li>
</ul>
<a id="getMinNonStopwords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinNonStopwords</h4>
<pre class="methodSignature">int&nbsp;getMinNonStopwords()</pre>
<div class="block">Gets minimum word count (<i>excluding</i> stopwords) below which user input will be automatically rejected
as ambiguous sentence.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Minimum word count (<i>excluding</i> stopwords) below which user input will be automatically
rejected as too short.</dd>
</dl>
</li>
</ul>
<a id="isNonEnglishAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNonEnglishAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isNonEnglishAllowed()</pre>
<div class="block">Whether to allow non-English language in user input.
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.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether to allow non-English language in user input.</dd>
</dl>
</li>
</ul>
<a id="isNotLatinCharsetAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNotLatinCharsetAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isNotLatinCharsetAllowed()</pre>
<div class="block">Whether to allow non-Latin charset in user input. Currently, only
Latin charset is supported. However, model can choose whether to automatically reject user
input with characters outside of Latin charset. If <code>false</code> such user input will be automatically
rejected.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether to allow non-Latin charset in user input.</dd>
</dl>
</li>
</ul>
<a id="isSwearWordsAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSwearWordsAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isSwearWordsAllowed()</pre>
<div class="block">Whether to allow known English swear words in user input. If <code>false</code> - user input with
detected known English swear words will be automatically rejected.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether to allow known swear words in user input.</dd>
</dl>
</li>
</ul>
<a id="isNoNounsAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNoNounsAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isNoNounsAllowed()</pre>
<div class="block">Whether to allow user input without a single noun. If <code>false</code> such user input
will be automatically rejected. Typically, for strict command or query-oriented models this should be set to
<code>false</code> as any command or query should have at least one noun subject. However, for conversational
models this can be set to <code>false</code> to allow for a smalltalk and one-liners.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether to allow user input without a single noun.</dd>
</dl>
</li>
</ul>
<a id="isPermutateSynonyms()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPermutateSynonyms</h4>
<pre class="methodSignature">boolean&nbsp;isPermutateSynonyms()</pre>
<div class="block">Whether to permutate multi-word synonyms. Automatic multi-word synonyms permutations greatly
increase the total number of synonyms in the system and allows for better multi-word synonym detection.
For example, if permutation is allowed the synonym "a b c" will be automatically converted into a
sequence of synonyms of "a b c", "b a c", "a c b". This property is closely related to <a href="#isSparse()"><code>isSparse()</code></a>
which are typically changed together. Note that individual model elements can override this property using
<a href="NCElement.html#isPermutateSynonyms()"><code>NCElement.isPermutateSynonyms()</code></a> method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether to permutate multi-word synonyms.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NCElement.html#isPermutateSynonyms()"><code>NCElement.isPermutateSynonyms()</code></a>,
<a href="NCElement.html#isSparse()"><code>NCElement.isSparse()</code></a>,
<a href="#isSparse()"><code>isSparse()</code></a></dd>
</dl>
</li>
</ul>
<a id="isDupSynonymsAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDupSynonymsAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isDupSynonymsAllowed()</pre>
<div class="block">Whether duplicate synonyms are allowed. If <code>true</code> - the model will pick the random
model element when multiple elements found due to duplicate synonyms. If <code>false</code> - model
will print error message and will not deploy.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether to allow duplicate synonyms.</dd>
</dl>
</li>
</ul>
<a id="getMaxTotalSynonyms()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxTotalSynonyms</h4>
<pre class="methodSignature">int&nbsp;getMaxTotalSynonyms()</pre>
<div class="block">Total number of synonyms allowed per model. Model won't deploy if total number of synonyms exceeds this
number.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Total number of synonyms allowed per model.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getMaxElementSynonyms()"><code>getMaxElementSynonyms()</code></a></dd>
</dl>
</li>
</ul>
<a id="isNoUserTokensAllowed()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNoUserTokensAllowed</h4>
<pre class="methodSignature">boolean&nbsp;isNoUserTokensAllowed()</pre>
<div class="block">Whether to allow the user input with no user token detected. If <code>false</code> such user
input will be automatically rejected. Note that this property only applies to user-defined
token (i.e. model element). Even if there are no user defined tokens, the user input may still
contain system token like <code>nlpcraft:city</code> or <code>nlpcraft:date</code>. In many cases models
should be build to allow user input without user tokens. However, set it to <code>false</code> if presence
of at least one user token is mandatory.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether to allow the user input with no user token detected.</dd>
</dl>
</li>
</ul>
<a id="isSparse()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSparse</h4>
<pre class="methodSignature">boolean&nbsp;isSparse()</pre>
<div class="block">Whether this model elements allow non-stop words gaps in their multi-word synonyms.
This property is closely related to <a href="#isPermutateSynonyms()"><code>isPermutateSynonyms()</code></a> which are typically changed together.
Note that individual model elements can override this property using <a href="NCElement.html#isSparse()"><code>NCElement.isSparse()</code></a>
method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional multi-word synonym sparsity model property.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NCElement.html#isSparse()"><code>NCElement.isSparse()</code></a>,
<a href="NCElement.html#isPermutateSynonyms()"><code>NCElement.isPermutateSynonyms()</code></a>,
<a href="#isPermutateSynonyms()"><code>isPermutateSynonyms()</code></a></dd>
</dl>
</li>
</ul>
<a id="getMetadata()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMetadata</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&gt;&nbsp;getMetadata()</pre>
<div class="block">Gets optional user defined model metadata that can be set by the developer and accessed later.
By default, it returns an empty map. Note that this metadata is mutable and can be
changed at runtime by the model's code.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional user defined model metadata. By default, returns an empty map. Never returns <code>null</code>.</dd>
</dl>
</li>
</ul>
<a id="getAdditionalStopWords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAdditionalStopWords</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getAdditionalStopWords()</pre>
<div class="block">Gets an optional list of stopwords to add to the built-in ones.
<p>
Stopword is an individual word (i.e. sequence of characters excluding whitespaces) that contribute no
semantic meaning to the sentence. For example, 'the', 'wow', or 'hm' provide no semantic meaning to the
sentence and can be safely excluded from semantic analysis.
<p>
NLPCraft comes with a carefully selected list of English stopwords which should be sufficient
for a majority of use cases. However, you can add additional stopwords to this list. The typical
use for user-defined stopwords are jargon parasite words that are specific to the model's domain.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Potentially empty list of additional stopwords.</dd>
</dl>
</li>
</ul>
<a id="getExcludedStopWords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExcludedStopWords</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getExcludedStopWords()</pre>
<div class="block">Gets an optional list of stopwords to exclude from the built-in list of stopwords.
<p>
Just like you can add additional stopwords via <a href="#getAdditionalStopWords()"><code>getAdditionalStopWords()</code></a> you can exclude
certain words from the list of stopwords. This can be useful in rare cases when built-in
stopword has specific meaning of your model. In order to process them you need to exclude them
from the list of stopwords.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Potentially empty list of excluded stopwords.</dd>
</dl>
</li>
</ul>
<a id="getSuspiciousWords()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSuspiciousWords</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getSuspiciousWords()</pre>
<div class="block">Gets an optional list of suspicious words. A suspicious word is a word that generally should not appear in user
sentence when used with this model. For example, if a particular model is for children oriented book search,
the words "sex" and "porn" should probably NOT appear in the user input and can be automatically rejected
when added here and model's metadata <code>MAX_SUSPICIOUS_WORDS</code> property set to zero.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Potentially empty list of suspicious words in their lemma form.</dd>
</dl>
</li>
</ul>
<a id="getMacros()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMacros</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getMacros()</pre>
<div class="block">Gets an optional map of macros to be used in this model. Macros and option groups are instrumental
in defining model's elements.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Potentially empty map of macros.</dd>
</dl>
</li>
</ul>
<a id="getElements()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getElements</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="NCElement.html" title="interface in org.apache.nlpcraft.client">NCElement</a>&gt;&nbsp;getElements()</pre>
<div class="block">Gets a set of model elements or named entities. Model can have zero or more user defined elements.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of model elements, potentially empty.</dd>
</dl>
</li>
</ul>
<a id="getEnabledBuiltInTokens()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEnabledBuiltInTokens</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getEnabledBuiltInTokens()</pre>
<div class="block">Gets a set of IDs for built-in named entities (tokens) that should be enabled and detected for this model.
Unless model requests (i.e. enables) the built-in tokens in this method the NLP subsystem will not attempt
to detect them. Explicit enablement of the token significantly improves the overall performance by avoiding
unnecessary token detection. Note that you don't have to specify your own user elements here as they are
always enabled.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of built-in tokens, potentially empty but never <code>null</code>, that should be enabled
and detected for this model.</dd>
</dl>
</li>
</ul>
<a id="getAbstractTokens()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAbstractTokens</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getAbstractTokens()</pre>
<div class="block">Gets s set of named entities (token) IDs that will be considered as abstract tokens.
An abstract token is only detected when it is either a constituent part of some other non-abstract token
or referenced by built-in tokens. In other words, an abstract token will not be detected in a standalone
unreferenced position. By (unless returned by this method), all named entities considered to be
non-abstract.
<p>
Declaring tokens as abstract is important to minimize number of parsing variants automatically
generated as permutation of all possible parsing compositions. For example, if it is known that a particular
named entity will only be used as a constituent part of some other token - declaring such named entity as
abstract can significantly reduce the number of parsing variants leading to a better performance,
and often simpler corresponding intent definition and callback logic.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Set of abstract token IDs. Can be empty but never <code>null</code>.</dd>
</dl>
</li>
</ul>
<a id="getMaxElementSynonyms()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxElementSynonyms</h4>
<pre class="methodSignature">int&nbsp;getMaxElementSynonyms()</pre>
<div class="block">Gets maximum number of unique synonyms per model element after which either warning or error will be
triggered. Note that there is no technical limit on how many synonyms a model element can have apart
from memory consumption and performance considerations. However, in cases where synonyms are auto-generated
(i.e. from database) this property can serve as a courtesy notification that a model element has too many
synonyms. Also, in general, too many synonyms can potentially lead to a performance degradation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum number of unique synonyms per model element after which either warning or
error will be triggered.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#isMaxSynonymsThresholdError()"><code>isMaxSynonymsThresholdError()</code></a>,
<a href="#getMaxTotalSynonyms()"><code>getMaxTotalSynonyms()</code></a></dd>
</dl>
</li>
</ul>
<a id="isMaxSynonymsThresholdError()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMaxSynonymsThresholdError</h4>
<pre class="methodSignature">boolean&nbsp;isMaxSynonymsThresholdError()</pre>
<div class="block">Whether exceeding <a href="#getMaxElementSynonyms()"><code>getMaxElementSynonyms()</code></a> will trigger a warning log or throwing an exception.
Note that throwing exception will prevent data probe from starting.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether exceeding <a href="#getMaxElementSynonyms()"><code>getMaxElementSynonyms()</code></a> will trigger a warning log or
throwing an exception.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getMaxElementSynonyms()"><code>getMaxElementSynonyms()</code></a></dd>
</dl>
</li>
</ul>
<a id="getConversationTimeout()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConversationTimeout</h4>
<pre class="methodSignature">long&nbsp;getConversationTimeout()</pre>
<div class="block">Gets timeout in ms after which the unused conversation element is automatically "forgotten".
<p>
Just like in a normal human conversation if we talk about, say, "Chicago", and then don't mention it
for certain period of time during further dialog, the conversation participants subconsciously "forget"
about it and exclude it from conversation context. In other words, the term "Chicago" is no longer in
conversation's short-term-memory.
<p>
Note that both conversation timeout and <a href="#getConversationDepth()"><code>depth</code></a>
combined define the expiration policy for the conversation management. These two properties allow fine-tuning
for different types of dialogs. For example, setting longer timeout and smaller depth mimics
slow-moving but topic-focused conversation. Alternatively, settings shorter timeout and longer depth better
supports fast-moving wide-ranging conversation that may cover multiple topics.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Timeout in ms after which the unused conversation element is automatically "forgotten".</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getConversationDepth()"><code>getConversationDepth()</code></a></dd>
</dl>
</li>
</ul>
<a id="getConversationDepth()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConversationDepth</h4>
<pre class="methodSignature">int&nbsp;getConversationDepth()</pre>
<div class="block">Gets maximum number of requests after which the unused conversation element is automatically "forgotten".
<p>
Just like in a normal human conversation if we talk about, say, "Chicago", and then don't mention it
for a certain number of utterances during further dialog, the conversation participants subconsciously "forget"
about it and exclude it from conversation context. In other words, the term "Chicago" is no longer in
conversation's short-term-memory.
<p>
Note that both conversation <a href="#getConversationTimeout()"><code>timeout</code></a> and depth
combined define the expiration policy for the conversation management. These two properties allow fine-tuning
for different types of dialogs. For example, setting longer timeout and smaller depth mimics
slow-moving but topic-focused conversation. Alternatively, settings shorter timeout and longer depth better
supports fast-moving wide-ranging conversation that may cover multiple topics.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Maximum number of requests after which the unused conversation element is automatically "forgotten".</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getConversationTimeout()"><code>getConversationTimeout()</code></a></dd>
</dl>
</li>
</ul>
<a id="getRestrictedCombinations()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getRestrictedCombinations</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&gt;&nbsp;getRestrictedCombinations()</pre>
<div class="block">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, 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>
Only the following built-in entities can be restricted (i.e., to be the keys in the returned map):
<ul>
<li><code>nlpcraft:limit</code></li>
<li><code>nlpcraft:sort</code></li>
<li><code>nlpcraft:relation</code></li>
</ul>
Note that entity cannot be restricted to itself (entity ID cannot appear as key as well as a
part of the value's set).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional map of restricted named entity combinations. Can be empty but never <code>null</code>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NCModelInfo.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><span style="vertical-align: super">Apache NLPCraft - Java Client 0.9.0</span> <a style="vertical-align: super; margin-right: 10px" href="https://github.com/apache/incubator-nlpcraft-java-client" target="github"><i class="fa fa-github github-logo"></i></a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft-java-client/subscription" data-icon="octicon-eye" aria-label="Watch on GitHub">Watch</a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft-java-client" data-icon="octicon-star" aria-label="Star on GitHub">Star</a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft-java-client/fork" data-icon="octicon-repo-forked" aria-label="Fork on GitHub">Fork</a> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.autoloader( 'java ../../../../resources/sh/scripts/shBrushJava.js', 'js jscript javascript ../../../../resources/sh/scripts/shBrushJScript.js', 'text plain ../../../../resources/sh/scripts/shBrushPlain.js', 'py python ../../../../resources/sh/scripts/shBrushPython.js', 'ruby rails ror rb ../../../../resources/sh/scripts/shBrushRuby.js', 'scala ../../../../resources/sh/scripts/shBrushScala.js', 'sql ../../../../resources/sh/scripts/shBrushSql.js', 'xml xhtml xslt html ../../../../resources/sh/scripts/shBrushXml.js' ); SyntaxHighlighter.all(); </script></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><center> <br/> <span style="font-size: larger">Copyright &#169; 2021 Apache Software Foundation</span> <br/> <br/> <img src="https://www.apache.org/img/ASF20thAnniversary.jpg" height="64px"> </center></small></p>
</footer>
</body>
</html>