blob: 9811f6b23394845f2ab0252b4e57090a86f10dc6 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_161) on Thu Jul 09 15:07:16 PDT 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NCConversation (Apache NLPCraft 0.6.2)</title>
<meta name="date" content="2020-07-09">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="NCConversation (Apache NLPCraft 0.6.2)";
}
}
catch(err) {
}
//-->
var methods = {"i0":18,"i1":18,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<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"> <script async defer src="https://buttons.github.io/buttons.js"></script>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NCConversation.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.6.2</span></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/nlpcraft/model/NCContext.html" title="interface in org.apache.nlpcraft.model"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/nlpcraft/model/NCCustomElement.html" title="interface in org.apache.nlpcraft.model"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/nlpcraft/model/NCConversation.html" target="_top">Frames</a></li>
<li><a href="NCConversation.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.nlpcraft.model</div>
<h2 title="Interface NCConversation" class="title">Interface NCConversation</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">NCConversation</span></pre>
<div class="block">Conversation container.
<p>
Conversation management is based on idea of a short-term-memory (STM). STM can be viewed as a condensed
short-term history of the user input for a given user and data model. Every submitted user request that wasn't
rejected is added to the conversation STM as a list of <a href="../../../../org/apache/nlpcraft/model/NCToken.html" title="interface in org.apache.nlpcraft.model"><code>tokens</code></a>. Existing STM tokens belonging to
the same <a href="../../../../org/apache/nlpcraft/model/NCElement.html#getGroups--"><code>group</code></a> will be overridden by the more recent tokens from the same group.
Note also that tokens in STM automatically expire (i.e. context is "forgotten") after a certain period of time
or based on other internal logic. Note that you should not rely on a specific expiration behavior as its logic
may be changed in the future.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/nlpcraft/model/NCContext.html#getConversation--"><code>NCContext.getConversation()</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<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><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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/nlpcraft/model/NCConversation.html#clearAllDialog--">clearAllDialog</a></span>()</code>
<div class="block">Clears entire history of matched intents.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/nlpcraft/model/NCConversation.html#clearAllStm--">clearAllStm</a></span>()</code>
<div class="block">Removes all tokens from the conversation STM.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/nlpcraft/model/NCConversation.html#clearDialog-java.util.function.Predicate-">clearDialog</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;filter)</code>
<div class="block">Clears history of matched intents using given intent predicate.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/nlpcraft/model/NCConversation.html#clearStm-java.util.function.Predicate-">clearStm</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../org/apache/nlpcraft/model/NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;&nbsp;filter)</code>
<div class="block">Removes all tokens satisfying given predicate from the conversation STM.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/nlpcraft/model/NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/nlpcraft/model/NCConversation.html#getTokens--">getTokens</a></span>()</code>
<div class="block">Gets an ordered list of tokens stored in the conversation STM for the current
user and data model.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getTokens--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTokens</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/nlpcraft/model/NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;&nbsp;getTokens()</pre>
<div class="block">Gets an ordered list of tokens stored in the conversation STM for the current
user and data model. Tokens in the returned list are ordered by their conversational depth, i.e.
the tokens from more recent requests appear before tokens from older requests.
<p>
Note that this list excludes free words and stopwords. Note also that specific rules
by which STM operates are undefined for the purpose of this function (i.e. callers should not rely on
any observed behavior of how STM stores and evicts its content).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>List of tokens for this conversation's STM. The list can be empty which indicates that
conversation is brand new (or timed out).</dd>
</dl>
</li>
</ul>
<a name="clearStm-java.util.function.Predicate-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearStm</h4>
<pre>void&nbsp;clearStm(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../org/apache/nlpcraft/model/NCToken.html" title="interface in org.apache.nlpcraft.model">NCToken</a>&gt;&nbsp;filter)</pre>
<div class="block">Removes all tokens satisfying given predicate from the conversation STM.
This is particularly useful when the logic processing the user input makes an implicit
assumption not present in the user input itself. Such assumption may alter the conversation (without
having an explicit token responsible for it) and therefore this method can be used to remove "stale" tokens
from conversation STM.
<p>
For example, in some cases the intent logic can assume the user current location as an implicit geo
location and therefore all existing geo tokens should be removed from the conversation STM
to maintain correct context.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filter</code> - Token remove filter.</dd>
</dl>
</li>
</ul>
<a name="clearAllStm--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearAllStm</h4>
<pre>default&nbsp;void&nbsp;clearAllStm()</pre>
<div class="block">Removes all tokens from the conversation STM. It is equivalent to:
<pre class="brush: java">
clearStm(tok -> true);
</pre></div>
</li>
</ul>
<a name="clearDialog-java.util.function.Predicate-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearDialog</h4>
<pre>void&nbsp;clearDialog(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;filter)</pre>
<div class="block">Clears history of matched intents using given intent predicate.
<p>
History of matched intents (i.e. the dialog flow) can be used in intent definition as part of its
matching template. NLPCraft maintains the window of previously matched intents based on time, i.e.
after certain period of time the oldest previously matched intents are forgotten and removed from
dialog flow. This method allows explicitly clear previously matched intents from the
dialog flow based on user logic other than time window.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filter</code> - Dialog flow filter based on IDs of previously matched intents.</dd>
</dl>
</li>
</ul>
<a name="clearAllDialog--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>clearAllDialog</h4>
<pre>default&nbsp;void&nbsp;clearAllDialog()</pre>
<div class="block">Clears entire history of matched intents. It is equivalent to:
<pre class="brush: java">
clearDialog(id -> true);
</pre></div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NCConversation.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.6.2</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/src/main/scala/org/apache/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">
<li><a href="../../../../org/apache/nlpcraft/model/NCContext.html" title="interface in org.apache.nlpcraft.model"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/nlpcraft/model/NCCustomElement.html" title="interface in org.apache.nlpcraft.model"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/nlpcraft/model/NCConversation.html" target="_top">Frames</a></li>
<li><a href="NCConversation.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.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>
</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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><center> <br/> <span style="font-size: larger">Copyright &#169; 2020 Apache Software Foundation</span> <br/> <br/> <img src="https://www.apache.org/img/ASF20thAnniversary.jpg" height="64px"> </center></small></p>
</body>
</html>