blob: 734f32c51e8c2f5042271ebdcd8356dce4e0ad29 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.2) on Fri Jul 30 09:54:56 PDT 2021 -->
<title>NCModel (Apache NLPCraft 0.9.0)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-07-30">
<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="NCModel (Apache NLPCraft 0.9.0)";
}
}
catch(err) {
}
//-->
var data = {"i0":18,"i1":18,"i2":18,"i3":18,"i4":18,"i5":18};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],16:["t5","Default 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="https://nlpcraft.apache.org/javadoc/resources/sh/scripts/XRegExp.js" type="text/javascript"></script> <script src="https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shCore.js" type="text/javascript"></script> <script src="https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shAutoloader.js" type="text/javascript"></script> <link href="https://nlpcraft.apache.org/javadoc/resources/sh/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css" title="Style"> <link href="https://nlpcraft.apache.org/javadoc/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="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NCModel.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 <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><a href="#field.summary">Field</a>&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.model</a></div>
<h2 title="Interface NCModel" class="title">Interface NCModel</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="NCLifecycle.html" title="interface in org.apache.nlpcraft.model">NCLifecycle</a></code>, <code><a href="NCMetadata.html" title="interface in org.apache.nlpcraft.model">NCMetadata</a></code>, <code><a href="NCModelView.html" title="interface in org.apache.nlpcraft.model">NCModelView</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="NCModelAdapter.html" title="class in org.apache.nlpcraft.model">NCModelAdapter</a></code>, <code><a href="NCModelFileAdapter.html" title="class in org.apache.nlpcraft.model">NCModelFileAdapter</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">NCModel</span>
extends <a href="NCModelView.html" title="interface in org.apache.nlpcraft.model">NCModelView</a>, <a href="NCLifecycle.html" title="interface in org.apache.nlpcraft.model">NCLifecycle</a></pre>
<div class="block">User-defined data model.
<p>
Data model is a central concept in NLPCraft defining an interface to your data sources
like a database or a SaaS application. NLPCraft employs model-as-a-code approach where entire data model
is an implementation of this interface which can be developed using any JVM programming language
like Java, Scala, Kotlin, or Groovy. Data model definition is split into two interfaces: <a href="NCModelView.html" title="interface in org.apache.nlpcraft.model"><code>NCModelView</code></a>
that defines the declarative, configuration, part of the model that is usually defined in an external
JSON or YAML file, and this interface that provides various life-cycle callbacks.
<p>
Generally, a data model defines:
<ul>
<li>Set of model <a href="NCElement.html" title="interface in org.apache.nlpcraft.model"><code>elements</code></a> (a.k.a. named entities) to be detected in the user input.</li>
<li>Zero or more <a target=_ href="https://nlpcraft.apache.org/intent-matching.html">intent</a> callbacks.</li>
<li>Common model configuration and life-cycle callbacks.</li>
</ul>
Note that model-as-a-code approach natively supports any software life cycle tools and frameworks like various
build tools, CI/SCM tools, IDEs, etc. You don't have to resort to additional web-based tools to manage some aspects of
your data models - your entire model and all of its components are part of your project's source code.
<p>
Read full documentation in <a target=_ href="https://nlpcraft.apache.org/data-model.html">Data Model</a> section and review
<a target=_ href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">examples</a>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="NCModelAdapter.html" title="class in org.apache.nlpcraft.model"><code>NCModelAdapter</code></a>,
<a href="NCModelFileAdapter.html" title="class in org.apache.nlpcraft.model"><code>NCModelFileAdapter</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.org.apache.nlpcraft.model.NCModelView">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.nlpcraft.model.<a href="NCModelView.html" title="interface in org.apache.nlpcraft.model">NCModelView</a></h3>
<code><a href="NCModelView.html#CONV_DEPTH_MAX">CONV_DEPTH_MAX</a>, <a href="NCModelView.html#CONV_DEPTH_MIN">CONV_DEPTH_MIN</a>, <a href="NCModelView.html#CONV_TIMEOUT_MAX">CONV_TIMEOUT_MAX</a>, <a href="NCModelView.html#CONV_TIMEOUT_MIN">CONV_TIMEOUT_MIN</a>, <a href="NCModelView.html#DFLT_CONV_DEPTH">DFLT_CONV_DEPTH</a>, <a href="NCModelView.html#DFLT_CONV_TIMEOUT_MS">DFLT_CONV_TIMEOUT_MS</a>, <a href="NCModelView.html#DFLT_ENABLED_BUILTIN_TOKENS">DFLT_ENABLED_BUILTIN_TOKENS</a>, <a href="NCModelView.html#DFLT_IS_DUP_SYNONYMS_ALLOWED">DFLT_IS_DUP_SYNONYMS_ALLOWED</a>, <a href="NCModelView.html#DFLT_IS_NO_NOUNS_ALLOWED">DFLT_IS_NO_NOUNS_ALLOWED</a>, <a href="NCModelView.html#DFLT_IS_NO_USER_TOKENS_ALLOWED">DFLT_IS_NO_USER_TOKENS_ALLOWED</a>, <a href="NCModelView.html#DFLT_IS_NON_ENGLISH_ALLOWED">DFLT_IS_NON_ENGLISH_ALLOWED</a>, <a href="NCModelView.html#DFLT_IS_NOT_LATIN_CHARSET_ALLOWED">DFLT_IS_NOT_LATIN_CHARSET_ALLOWED</a>, <a href="NCModelView.html#DFLT_IS_PERMUTATE_SYNONYMS">DFLT_IS_PERMUTATE_SYNONYMS</a>, <a href="NCModelView.html#DFLT_IS_SPARSE">DFLT_IS_SPARSE</a>, <a href="NCModelView.html#DFLT_IS_SWEAR_WORDS_ALLOWED">DFLT_IS_SWEAR_WORDS_ALLOWED</a>, <a href="NCModelView.html#DFLT_MAX_ELEMENT_SYNONYMS">DFLT_MAX_ELEMENT_SYNONYMS</a>, <a href="NCModelView.html#DFLT_MAX_FREE_WORDS">DFLT_MAX_FREE_WORDS</a>, <a href="NCModelView.html#DFLT_MAX_SUSPICIOUS_WORDS">DFLT_MAX_SUSPICIOUS_WORDS</a>, <a href="NCModelView.html#DFLT_MAX_SYNONYMS_THRESHOLD_ERROR">DFLT_MAX_SYNONYMS_THRESHOLD_ERROR</a>, <a href="NCModelView.html#DFLT_MAX_TOKENS">DFLT_MAX_TOKENS</a>, <a href="NCModelView.html#DFLT_MAX_TOTAL_SYNONYMS">DFLT_MAX_TOTAL_SYNONYMS</a>, <a href="NCModelView.html#DFLT_MAX_UNKNOWN_WORDS">DFLT_MAX_UNKNOWN_WORDS</a>, <a href="NCModelView.html#DFLT_MAX_WORDS">DFLT_MAX_WORDS</a>, <a href="NCModelView.html#DFLT_METADATA">DFLT_METADATA</a>, <a href="NCModelView.html#DFLT_MIN_NON_STOPWORDS">DFLT_MIN_NON_STOPWORDS</a>, <a href="NCModelView.html#DFLT_MIN_TOKENS">DFLT_MIN_TOKENS</a>, <a href="NCModelView.html#DFLT_MIN_WORDS">DFLT_MIN_WORDS</a>, <a href="NCModelView.html#MAX_FREE_WORDS_MAX">MAX_FREE_WORDS_MAX</a>, <a href="NCModelView.html#MAX_FREE_WORDS_MIN">MAX_FREE_WORDS_MIN</a>, <a href="NCModelView.html#MAX_SUSPICIOUS_WORDS_MAX">MAX_SUSPICIOUS_WORDS_MAX</a>, <a href="NCModelView.html#MAX_SUSPICIOUS_WORDS_MIN">MAX_SUSPICIOUS_WORDS_MIN</a>, <a href="NCModelView.html#MAX_SYN_MAX">MAX_SYN_MAX</a>, <a href="NCModelView.html#MAX_SYN_MIN">MAX_SYN_MIN</a>, <a href="NCModelView.html#MAX_TOKENS_MAX">MAX_TOKENS_MAX</a>, <a href="NCModelView.html#MAX_TOKENS_MIN">MAX_TOKENS_MIN</a>, <a href="NCModelView.html#MAX_UNKNOWN_WORDS_MAX">MAX_UNKNOWN_WORDS_MAX</a>, <a href="NCModelView.html#MAX_UNKNOWN_WORDS_MIN">MAX_UNKNOWN_WORDS_MIN</a>, <a href="NCModelView.html#MAX_WORDS_MAX">MAX_WORDS_MAX</a>, <a href="NCModelView.html#MAX_WORDS_MIN">MAX_WORDS_MIN</a>, <a href="NCModelView.html#MIN_NON_STOPWORDS_MAX">MIN_NON_STOPWORDS_MAX</a>, <a href="NCModelView.html#MIN_NON_STOPWORDS_MIN">MIN_NON_STOPWORDS_MIN</a>, <a href="NCModelView.html#MIN_TOKENS_MAX">MIN_TOKENS_MAX</a>, <a href="NCModelView.html#MIN_TOKENS_MIN">MIN_TOKENS_MIN</a>, <a href="NCModelView.html#MIN_WORDS_MAX">MIN_WORDS_MAX</a>, <a href="NCModelView.html#MIN_WORDS_MIN">MIN_WORDS_MIN</a>, <a href="NCModelView.html#MODEL_ELEMENT_ID_MAXLEN">MODEL_ELEMENT_ID_MAXLEN</a>, <a href="NCModelView.html#MODEL_ID_MAXLEN">MODEL_ID_MAXLEN</a>, <a href="NCModelView.html#MODEL_NAME_MAXLEN">MODEL_NAME_MAXLEN</a>, <a href="NCModelView.html#MODEL_VERSION_MAXLEN">MODEL_VERSION_MAXLEN</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ========== 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="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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>default <a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onContext(org.apache.nlpcraft.model.NCContext)">onContext</a></span>&#8203;(<a href="NCContext.html" title="interface in org.apache.nlpcraft.model">NCContext</a>&nbsp;ctx)</code></th>
<td class="colLast">
<div class="block">A callback that is called when a fully assembled query context is ready.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default <a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onError(org.apache.nlpcraft.model.NCContext,java.lang.Throwable)">onError</a></span>&#8203;(<a href="NCContext.html" title="interface in org.apache.nlpcraft.model">NCContext</a>&nbsp;ctx,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">A callback that is called when intent callback failed with unexpected exception.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>default boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onMatchedIntent(org.apache.nlpcraft.model.NCIntentMatch)">onMatchedIntent</a></span>&#8203;(<a href="NCIntentMatch.html" title="interface in org.apache.nlpcraft.model">NCIntentMatch</a>&nbsp;ctx)</code></th>
<td class="colLast">
<div class="block">A callback that is called when intent was successfully matched but right before its callback is called.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>default boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onParsedVariant(org.apache.nlpcraft.model.NCVariant)">onParsedVariant</a></span>&#8203;(<a href="NCVariant.html" title="interface in org.apache.nlpcraft.model">NCVariant</a>&nbsp;var)</code></th>
<td class="colLast">
<div class="block">A callback to accept or reject a parsed variant.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>default <a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onRejection(org.apache.nlpcraft.model.NCIntentMatch,org.apache.nlpcraft.model.NCRejection)">onRejection</a></span>&#8203;(<a href="NCIntentMatch.html" title="interface in org.apache.nlpcraft.model">NCIntentMatch</a>&nbsp;ctx,
<a href="NCRejection.html" title="class in org.apache.nlpcraft.model">NCRejection</a>&nbsp;e)</code></th>
<td class="colLast">
<div class="block">A callback that is called when intent callback threw <a href="NCRejection.html" title="class in org.apache.nlpcraft.model"><code>NCRejection</code></a> exception.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>default <a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#onResult(org.apache.nlpcraft.model.NCIntentMatch,org.apache.nlpcraft.model.NCResult)">onResult</a></span>&#8203;(<a href="NCIntentMatch.html" title="interface in org.apache.nlpcraft.model">NCIntentMatch</a>&nbsp;ctx,
<a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a>&nbsp;res)</code></th>
<td class="colLast">
<div class="block">A callback that is called when successful result is obtained from the intent callback and right before sending it
back to the caller.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.nlpcraft.model.NCLifecycle">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.nlpcraft.model.<a href="NCLifecycle.html" title="interface in org.apache.nlpcraft.model">NCLifecycle</a></h3>
<code><a href="NCLifecycle.html#onDiscard()">onDiscard</a>, <a href="NCLifecycle.html#onInit()">onInit</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.nlpcraft.model.NCMetadata">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.nlpcraft.model.<a href="NCMetadata.html" title="interface in org.apache.nlpcraft.model">NCMetadata</a></h3>
<code><a href="NCMetadata.html#meta(java.lang.String)">meta</a>, <a href="NCMetadata.html#meta(java.lang.String,T)">meta</a>, <a href="NCMetadata.html#metaOpt(java.lang.String)">metaOpt</a>, <a href="NCMetadata.html#metax(java.lang.String)">metax</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.apache.nlpcraft.model.NCModelView">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.nlpcraft.model.<a href="NCModelView.html" title="interface in org.apache.nlpcraft.model">NCModelView</a></h3>
<code><a href="NCModelView.html#getAbstractTokens()">getAbstractTokens</a>, <a href="NCModelView.html#getAdditionalStopWords()">getAdditionalStopWords</a>, <a href="NCModelView.html#getConversationDepth()">getConversationDepth</a>, <a href="NCModelView.html#getConversationTimeout()">getConversationTimeout</a>, <a href="NCModelView.html#getDescription()">getDescription</a>, <a href="NCModelView.html#getElements()">getElements</a>, <a href="NCModelView.html#getEnabledBuiltInTokens()">getEnabledBuiltInTokens</a>, <a href="NCModelView.html#getExcludedStopWords()">getExcludedStopWords</a>, <a href="NCModelView.html#getId()">getId</a>, <a href="NCModelView.html#getMacros()">getMacros</a>, <a href="NCModelView.html#getMaxElementSynonyms()">getMaxElementSynonyms</a>, <a href="NCModelView.html#getMaxFreeWords()">getMaxFreeWords</a>, <a href="NCModelView.html#getMaxSuspiciousWords()">getMaxSuspiciousWords</a>, <a href="NCModelView.html#getMaxTokens()">getMaxTokens</a>, <a href="NCModelView.html#getMaxTotalSynonyms()">getMaxTotalSynonyms</a>, <a href="NCModelView.html#getMaxUnknownWords()">getMaxUnknownWords</a>, <a href="NCModelView.html#getMaxWords()">getMaxWords</a>, <a href="NCModelView.html#getMetadata()">getMetadata</a>, <a href="NCModelView.html#getMinNonStopwords()">getMinNonStopwords</a>, <a href="NCModelView.html#getMinTokens()">getMinTokens</a>, <a href="NCModelView.html#getMinWords()">getMinWords</a>, <a href="NCModelView.html#getName()">getName</a>, <a href="NCModelView.html#getOrigin()">getOrigin</a>, <a href="NCModelView.html#getParsers()">getParsers</a>, <a href="NCModelView.html#getRestrictedCombinations()">getRestrictedCombinations</a>, <a href="NCModelView.html#getSuspiciousWords()">getSuspiciousWords</a>, <a href="NCModelView.html#getVersion()">getVersion</a>, <a href="NCModelView.html#isDupSynonymsAllowed()">isDupSynonymsAllowed</a>, <a href="NCModelView.html#isMaxSynonymsThresholdError()">isMaxSynonymsThresholdError</a>, <a href="NCModelView.html#isNonEnglishAllowed()">isNonEnglishAllowed</a>, <a href="NCModelView.html#isNoNounsAllowed()">isNoNounsAllowed</a>, <a href="NCModelView.html#isNotLatinCharsetAllowed()">isNotLatinCharsetAllowed</a>, <a href="NCModelView.html#isNoUserTokensAllowed()">isNoUserTokensAllowed</a>, <a href="NCModelView.html#isPermutateSynonyms()">isPermutateSynonyms</a>, <a href="NCModelView.html#isSparse()">isSparse</a>, <a href="NCModelView.html#isSwearWordsAllowed()">isSwearWordsAllowed</a></code></li>
</ul>
</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="onParsedVariant(org.apache.nlpcraft.model.NCVariant)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onParsedVariant</h4>
<pre class="methodSignature">default&nbsp;boolean&nbsp;onParsedVariant&#8203;(<a href="NCVariant.html" title="interface in org.apache.nlpcraft.model">NCVariant</a>&nbsp;var)</pre>
<div class="block">A callback to accept or reject a parsed variant. This callback is called before any other
callbacks at the beginning of the processing pipeline and it is called for each parsed variant.
<p>
Note that a given user input can have one or more possible different parsing variants. Depending on model
configuration a user input can produce hundreds or even thousands of parsing variants that can significantly slow
down the overall processing. This method allows to filter out unnecessary parsing variants based on variety of
user-defined factors like number of tokens, presence of a particular token in the variant, etc.
<p>
By default, this method accepts all variants (returns <code>true</code>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>var</code> - A variant (list of tokens) to accept or reject.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> to accept variant for further processing, <code>false</code> otherwise.</dd>
</dl>
</li>
</ul>
<a id="onContext(org.apache.nlpcraft.model.NCContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onContext</h4>
<pre class="methodSignature">default&nbsp;<a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a>&nbsp;onContext&#8203;(<a href="NCContext.html" title="interface in org.apache.nlpcraft.model">NCContext</a>&nbsp;ctx)
throws <a href="NCRejection.html" title="class in org.apache.nlpcraft.model">NCRejection</a></pre>
<div class="block">A callback that is called when a fully assembled query context is ready. This callback is called after
all <a href="#onParsedVariant(org.apache.nlpcraft.model.NCVariant)"><code>onParsedVariant(NCVariant)</code></a> callbacks are called but before any <a href="#onMatchedIntent(org.apache.nlpcraft.model.NCIntentMatch)"><code>onMatchedIntent(NCIntentMatch)</code></a>
are called, i.e. right before the intent matching is performed. It's called always once per user request processing.
Typical use case for this callback is to perform logging, debugging, statistic or usage collection,
explicit update or initialization of conversation context, security audit or validation, etc.
<p>
Default implementation returns <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ctx</code> - Query context.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional query result to return interrupting the default workflow. Specifically, if this method returns
a non-<code>null</code> result, it will be returned to the caller immediately overriding default behavior. If
the method returns <code>null</code> - the default processing flow will continue.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="NCRejection.html" title="class in org.apache.nlpcraft.model">NCRejection</a></code> - This callback can throw this rejection exception to abort user request processing.</dd>
</dl>
</li>
</ul>
<a id="onMatchedIntent(org.apache.nlpcraft.model.NCIntentMatch)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onMatchedIntent</h4>
<pre class="methodSignature">default&nbsp;boolean&nbsp;onMatchedIntent&#8203;(<a href="NCIntentMatch.html" title="interface in org.apache.nlpcraft.model">NCIntentMatch</a>&nbsp;ctx)
throws <a href="NCRejection.html" title="class in org.apache.nlpcraft.model">NCRejection</a></pre>
<div class="block">A callback that is called when intent was successfully matched but right before its callback is called.
This callback is called after <a href="#onContext(org.apache.nlpcraft.model.NCContext)"><code>onContext(NCContext)</code></a> is called and may be called multiple times
depending on its return value. If <code>true</code> is returned than the default workflow will continue and
the matched intent's callback will be called. However, if <code>false</code> is returned than the entire
existing set of parsing variants will be matched against all declared intents again. Returning <code>false</code>
allows this method to alter the state of the model (like soft-reset conversation or change metadata) and
force the full re-evaluation of the parsing variants against all declared intents. Note that user logic should
be careful not to induce infinite loop in this behavior.
<p>
Note that this callback may not be called at all based on the return value
of <a href="#onContext(org.apache.nlpcraft.model.NCContext)"><code>onContext(NCContext)</code></a> callback. Typical use case for this callback is to perform logging, debugging,
statistic or usage collection, explicit update or initialization of conversation context, security audit
or validation, etc.
<p>
By default, this method returns <code>true</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ctx</code> - Intent match context - the same instance that's passed to the matched intent callback.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>If <code>true</code> is returned than the default workflow will continue and the matched intent's callback
will be called. However, if <code>false</code> is returned than the entire existing set of parsing variants will
be matched against all declared intents again. Returning <code>false</code> allows this method to alter the state of
the model (like soft-reset conversation or change metadata) and force the re-evaluation of the parsing
variants against all declared intents. Note that user logic should be careful not to induce infinite loop in
this behavior.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="NCRejection.html" title="class in org.apache.nlpcraft.model">NCRejection</a></code> - This callback can throw the rejection exception to abort user request processing. In this
case the <a href="#onRejection(org.apache.nlpcraft.model.NCIntentMatch,org.apache.nlpcraft.model.NCRejection)"><code>onRejection(NCIntentMatch, NCRejection)</code></a> callback will be called next.</dd>
</dl>
</li>
</ul>
<a id="onResult(org.apache.nlpcraft.model.NCIntentMatch,org.apache.nlpcraft.model.NCResult)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onResult</h4>
<pre class="methodSignature">default&nbsp;<a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a>&nbsp;onResult&#8203;(<a href="NCIntentMatch.html" title="interface in org.apache.nlpcraft.model">NCIntentMatch</a>&nbsp;ctx,
<a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a>&nbsp;res)</pre>
<div class="block">A callback that is called when successful result is obtained from the intent callback and right before sending it
back to the caller. This callback is called after <a href="#onMatchedIntent(org.apache.nlpcraft.model.NCIntentMatch)"><code>onMatchedIntent(NCIntentMatch)</code></a> is called.
Note that this callback may not be called at all, and if called - it's called only once.
Typical use case for this callback is to perform logging, debugging, statistic or usage collection,
explicit update or initialization of conversation context, security audit or validation, etc.
<p>
Default implementation is a no-op returning <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ctx</code> - Intent match context - the same instance that's passed to the matched intent callback that
produced this result.</dd>
<dd><code>res</code> - Existing result.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional query result to return interrupting the default workflow. Specifically, if this method returns
a non-<code>null</code> result, it will be returned to the caller immediately overriding default behavior and
existing query result or error processing, if any. If the method returns <code>null</code> - the default
processing flow will continue.</dd>
</dl>
</li>
</ul>
<a id="onRejection(org.apache.nlpcraft.model.NCIntentMatch,org.apache.nlpcraft.model.NCRejection)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onRejection</h4>
<pre class="methodSignature">default&nbsp;<a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a>&nbsp;onRejection&#8203;(<a href="NCIntentMatch.html" title="interface in org.apache.nlpcraft.model">NCIntentMatch</a>&nbsp;ctx,
<a href="NCRejection.html" title="class in org.apache.nlpcraft.model">NCRejection</a>&nbsp;e)</pre>
<div class="block">A callback that is called when intent callback threw <a href="NCRejection.html" title="class in org.apache.nlpcraft.model"><code>NCRejection</code></a> exception.
This callback is called after <a href="#onMatchedIntent(org.apache.nlpcraft.model.NCIntentMatch)"><code>onMatchedIntent(NCIntentMatch)</code></a> is called.
Note that this callback may not be called at all, and if called - it's called only once.
Typical use case for this callback is to perform logging, debugging, statistic or usage collection,
explicit update or initialization of conversation context, security audit or validation, etc.
<p>
Default implementation is a no-op returning <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ctx</code> - Optional intent match context - the same instance that's passed to the matched intent callback that
produced this rejection. It is <code>null</code> if rejection was triggered outside of the intent callback.</dd>
<dd><code>e</code> - Rejection exception.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional query result to return interrupting the default workflow. Specifically, if this method returns
a non-<code>null</code> result, it will be returned to the caller immediately overriding default behavior and
existing query result or error processing, if any. If the method returns <code>null</code> - the default
processing flow will continue.</dd>
</dl>
</li>
</ul>
<a id="onError(org.apache.nlpcraft.model.NCContext,java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>onError</h4>
<pre class="methodSignature">default&nbsp;<a href="NCResult.html" title="class in org.apache.nlpcraft.model">NCResult</a>&nbsp;onError&#8203;(<a href="NCContext.html" title="interface in org.apache.nlpcraft.model">NCContext</a>&nbsp;ctx,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Throwable</a>&nbsp;e)</pre>
<div class="block">A callback that is called when intent callback failed with unexpected exception.
Note that this callback may not be called at all, and if called - it's called only once.
Typical use case for this callback is to perform logging, debugging, statistic or usage collection,
explicit update or initialization of conversation context, security audit or validation, etc.
<p>
Default implementation is a no-op returning <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ctx</code> - Intent match context - the same instance that's passed to the matched intent that
produced this error.</dd>
<dd><code>e</code> - Failure exception.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional query result to return interrupting the default workflow. Specifically, if this method returns
a non-<code>null</code> result, it will be returned to the caller immediately overriding default behavior and
existing query result or error processing, if any. If the method returns <code>null</code> - the default
processing flow will continue.</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="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NCModel.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 <span style="font-size: 80%">0.9.0</span></span> <a style="vertical-align: super; margin-right: 10px" href="https://github.com/apache/incubator-nlpcraft" target="github"><i class="fa fa-github github-logo"></i></a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples" data-icon="octicon-eye" aria-label="NLPCraft Examples">Examples</a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft" data-icon="octicon-star" aria-label="Star on GitHub">Star</a> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/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 https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushJava.js', 'js jscript javascript https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushJScript.js', 'text plain https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushPlain.js', 'py python https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushPython.js', 'ruby rails ror rb https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushRuby.js', 'scala https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushScala.js', 'sql https://nlpcraft.apache.org/javadoc/resources/sh/scripts/shBrushSql.js', 'xml xhtml xslt html https://nlpcraft.apache.org/javadoc/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><a href="#field.summary">Field</a>&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" alt="ASF Logo"> </center></small></p>
</footer>
</body>
</html>