Remove unused Google verification file and clean up STM page.
Deleted an obsolete Google Site Verification HTML file. Adjusted and refined the content for "Short-Term Memory" page while maintaining proper formatting and structure.
diff --git a/404.html b/404.html
index 1b36fef..532f56a 100644
--- a/404.html
+++ b/404.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container page-not-found"><h1>404</h1><p><strong>Page not found :(</strong></p><p>The requested page could not be found</p></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container page-not-found"><h1>404</h1><p><strong>Page not found :(</strong></p><p>The requested page could not be found</p></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
diff --git a/assets/css/style.css b/assets/css/style.css
index c28ccaa..401ff03 100644
--- a/assets/css/style.css
+++ b/assets/css/style.css
@@ -1,3 +1 @@
-@font-face{font-family:'CanaroBlack';src:url("../../fonts/rene_bieder_-_canaro_black-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_black-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_black-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_black-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_black-webfont.svg#canaroblack") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'CanaroBold';src:url("../../fonts/rene_bieder_-_canaro_bold-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_bold-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_bold-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_bold-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_bold-webfont.svg#canaro_bookbold") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'CanaroBook';src:url("../../fonts/rene_bieder_-_canaro_book-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_book-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_book-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_book-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_book-webfont.svg#canarobook") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'CanaroExtraLight';src:url("../../fonts/rene_bieder_-_canaro_extralight-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_extralight-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_extralight-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_extralight-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_extralight-webfont.svg#canaroextralight") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'CanaroMedium';src:url("../../fonts/rene_bieder_-_canaro_medium-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_medium-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_medium-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_medium-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_medium-webfont.svg#canaromedium") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'StagSansLight';src:url("../../fonts/stagsans-light-webfont.eot");src:url("../../fonts/stagsans-light-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/stagsans-light-webfont.woff") format("woff"),url("../../fonts/stagsans-light-webfont.ttf") format("truetype"),url("../../fonts/stagsans-light-webfont.svg#stag_sanslight") format("svg");font-weight:normal;font-style:normal}.color-blue3{color:#e0e8fb}.color-turquoise{color:#1abc9c}.color-emerald{color:#2ecc71}.color-river{color:#3498db}.color-amethyst{color:#9b59b6}.color-asphalt{color:#34495e}.color-sea{color:#16a085}.color-nephritis{color:#27ae60}.color-belize{color:#2980b9}.color-wisteria{color:#8e44ad}.color-midnight{color:#2C3E50}.color-sunflower{color:#ffd20f}.color-orange{color:#F39C12}.color-carrot{color:#E67E22}.color-pumpkin{color:#D35400}.color-alizarin{color:#E74C3C}.color-pomegranate{color:#C0392B}.color-cloud{color:#ECF0F1}.color-silver{color:#BDC3C7}.color-concrete{color:#95A5A6}.color-asbestos{color:#7F8C8D}.color-dream{color:#C5D5EE}.color-danger{color:#d9534f}.color-info{color:#5bc0de}.color-success{color:#5cb85c}.color-primary{color:#428bca}.color-warning{color:#f0ad4e}.bg-danger{background-color:#d9534f}.bg-info{background-color:#5bc0de}.bg-success{background-color:#5cb85c}.bg-primary{background-color:#428bca}.bg-warning{background-color:#f0ad4e}.color-000{color:#000}.color-111{color:#111}.color-222{color:#222}.color-333{color:#333}.color-444{color:#444}.color-555{color:#555}.color-666{color:#666}.color-777{color:#777}.color-888{color:#888}.color-999{color:#999}.color-aaa{color:#aaa}.color-bbb{color:#bbb}.color-ccc{color:#ccc}.color-ddd{color:#ddd}.color-eee{color:#eee}.color-fff{color:#fff}.bg-turquoise{background-color:#1abc9c}.bg-emerald{background-color:#2ecc71}.bg-river{background-color:#3498db}.bg-amethyst{background-color:#9b59b6}.bg-asphalt{background-color:#34495e}.bg-sea{background-color:#16a085}.bg-nephritis{background-color:#27ae60}.bg-belize{background-color:#2980b9}.bg-wisteria{background-color:#8e44ad}.bg-midnight{background-color:#2C3E50}.bg-sunflower{background-color:#ffd20f}.bg-orange{background-color:#F39C12}.bg-carrot{background-color:#E67E22}.bg-pumpkin{background-color:#D35400}.bg-alizarin{background-color:#E74C3C}.bg-pomegranate{background-color:#C0392B}.bg-cloud{background-color:#ECF0F1}.bg-silver{background-color:#BDC3C7}.bg-concrete{background-color:#95A5A6}.bg-asbestos{background-color:#7F8C8D}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-width:768px;font-family:"Helvetica Neue", Helvetica, sans-serif}.amp{font-family:'Libre Baskerville', Helvetica, sans-serif !important;font-weight:400 !important;font-style:italic;font-size:85%}label{font-weight:200}.fill{min-height:100%;height:100%}.clear-fix:before,.clear-fix:after{content:" ";display:table}.clear-fix:after{clear:both}.row-fluid [class*="span"]{margin-left:0}.modal-open .modal,.btn:focus,a:focus{outline:none !important}ul.dropdown-menu>li>a>i.fa{color:#4d394b}.badge-turquoise{color:#fff;background-color:#98f1df;border:1px solid #1abc9c;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-emerald{color:#fff;background-color:#bcf0d2;border:1px solid #2ecc71;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-amethyst{color:#4d394b;background-color:#e6d5ed;border:1px solid #9b59b6;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-asphalt{color:#fff;background-color:#88a2bd;border:1px solid #34495e;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-sea{color:#fff;background-color:#7cedd7;border:1px solid #16a085;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-nephritis{color:#fff;background-color:#9ee9be;border:1px solid #27ae60;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-belize{color:#fff;background-color:#a9d1ec;border:1px solid #2980b9;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-wisteria{color:#fff;background-color:#dabee5;border:1px solid #8e44ad;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-midnight{color:#fff;background-color:#7997b5;border:1px solid #2C3E50;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-sunflower{color:#4d394b;background-color:#fff3c2;border:1px solid #ffd20f;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-orange{color:#fff;background-color:#fce3bc;border:1px solid #F39C12;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-carrot{color:#fff;background-color:#f8dcc2;border:1px solid #E67E22;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-pumpkin{color:#fff;background-color:#ffb687;border:1px solid #D35400;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-alizarin{color:#fff;background-color:#fbdedb;border:1px solid #E74C3C;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-pomegranate{color:#fff;background-color:#edb6b0;border:1px solid #C0392B;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-concrete{color:#fff;background-color:#f6f7f7;border:1px solid #95A5A6;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-asbestos{color:#fff;background-color:#dde1e1;border:1px solid #7F8C8D;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-river{color:#6B7F99;background-color:#cce5f6;border:1px solid #3498db;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px;border-color:#a0cfee}.badge-red{color:#fff;background-color:#f9e2e2;border:1px solid #d9534f;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-blue{color:#fff;background-color:#cde1f1;border:1px solid #428bca;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-green{color:#fff;background-color:#d8eed8;border:1px solid #5cb85c;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-yellow{color:#333;background-color:#fff3c2;border:1px solid #ffd20f;letter-spacing:0.03em;padding:4px 6px;font-weight:400;border-radius:2px}.table-no-border>thead>tr>th,.table-no-border>tbody>tr>th,.table-no-border>tfoot>tr>th,.table-no-border>thead>tr>td,.table-no-border>tbody>tr>td,.table-no-border>tfoot>tr>td{border-top:none}.table-width-auto{width:auto !important}.btn-group.open .dropdown-toggle,.btn-group.open .dropdown-toggle:hover,.btn-group.open .dropdown-toggle:visited,.btn-group.open .dropdown-toggle:active{-webkit-box-shadow:none;-moz-box-shadow:none;-o-box-shadow:none;box-shadow:none}.btn,.btn:active,.btn.active,.btn:hover{-webkit-box-shadow:none;-moz-box-shadow:none;-o-box-shadow:none;box-shadow:none}.btn-default,.btn-default:active,.btn-default.active,.btn-default:hover{-webkit-box-shadow:none;-moz-box-shadow:none;-o-box-shadow:none;box-shadow:none}.btn-sm,.btn{border-radius:2px}.btn-link:hover,.btn-link:focus,a:hover,a:focus{text-decoration:inherit}.bq{margin:20px 0;padding:15px 20px;border-left:3px solid #eee;border-radius:1px 6px 6px 1px}.bq.info{color:#6B7F99;background-color:#f4f8fa;border-color:#e2edf2;border-left-color:#5bc0de}.bq.warn{color:#4d394b;background-color:#faf8f0;border-color:#f4efdd;border-left-color:#ffd20f}.bq.error{background-color:#eed3d7;border-color:#e7c1c6;border-left-color:#fdf7f7}.bq.success{background-color:#F5FDF2;border-color:#e4fadc;border-left-color:#5cb85c}.bq>p,.bq>ul{margin:0}.bq>p:not(:nth-child(1)){margin-top:10px}.bq>p{letter-spacing:0.05em}.bq i.fas.fa-lightbulb{padding-right:5px;color:#ffd20f;font-size:110%}.bq div.bq-idea-container{display:inline-flex}.bq div.bq-idea-container div:nth-child(1){margin-right:7px}.gradient-table{margin-top:0;border-collapse:collapse;overflow:auto;margin-bottom:1rem}.gradient-table>thead{background:linear-gradient(141deg, #6980fa 0%, #2cb5e8 51%, #4298fc 75%) fixed;color:#fff}.gradient-table>thead>tr>th{text-align:left;border-bottom:1px solid #eee}.gradient-table>thead>tr>th,.gradient-table>tbody>tr>th,.gradient-table>tfoot>tr>th{padding:8px;font-size:15px;font-weight:500;color:#fff}.gradient-table>thead>tr>td,.gradient-table>tbody>tr>td,.gradient-table>tfoot>tr>td{padding:8px;letter-spacing:0.02em;font-weight:400;border-bottom:1px solid #eee;vertical-align:top}.gradient-table>tbody>tr:hover{background-color:#fafafa}.gradient-table>tbody>tr td:last-child{border-right:1px solid #eee}.gradient-table>tbody>tr td:first-child{border-left:1px solid #eee}.recover-bottom-margin{margin-bottom:16px}.top-link{font-size:60%;color:#1abc9c}.max-width{width:100%}a[target=scaladoc]:not(.not-code){font-family:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;word-break:keep-all;white-space:nowrap !important}pre.console{border:1px solid #dedede;border-radius:6px;padding:25px 30px 0 30px}code{white-space:nowrap !important;color:#C0392B;font-size:100% !important}code i{font-style:normal;border:1px solid #ffd20f;padding:0 2px;color:#000;background:#ffd20f}code b{color:#8e44ad}.side-nav a.active{border-right:3px solid #F39C12 !important;color:#369 !important}.complexity-one-star i{color:#27ae60}.complexity-two-star i{color:#3498db}.complexity-three-star i{color:#000}.img-fluid{max-width:800px !important;width:100% !important;border-radius:6px}.non-fluid-img{border-radius:6px}.keyboard{padding:1px 8px;background-color:#2c2c29;color:#efefef;border-radius:4px;display:inline-block;font-family:monospace;font-weight:600}.img-fluid-no-border{max-width:900px !important;border-radius:6px;padding:0 !important}.latest{font-size:11px;background-color:#D35400;color:#fff;padding:4px 6px;border-radius:4px;font-weight:600;margin-left:5px}i.fa.output{margin-left:5px;font-size:80%}.card{border-color:#e0e8fb}.card .card-header{background-color:#f4f7ff;border-bottom-color:#e0e8fb}.card .card-header button.btn{padding-left:0}.nav-tabs{border-bottom-color:#e0e8fb !important}.nav-tabs .nav-link.active{border-color:#e0e8fb #e0e8fb #fff !important}.nav-tabs .nav-link{border-color:#fff #fff #e0e8fb !important}code.script{border:1px solid #e0e8fb;padding:1px 6px 2px 6px;border-radius:4px;color:#fb51b1;background-color:#f3f9ff}.scala-16{display:inline-flex;width:16px;height:16px;vertical-align:sub;background-image:url("data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iIzQ0NCIgZD0iTTguNTczIDcuMzA3czE0Ljg1My0xLjQ4NSAxNC44NTMtMy45NjF2NS45NDFzMCAyLjQ3Ni0xNC44NTMgMy45NjF6bS4wNjMgNy45MjJzMTQuODUzLTEuNDg1IDE0Ljg1My0zLjk2MXY1Ljk0MXMwIDIuNDc2LTE0Ljg1MyAzLjk2MXptMCA3LjkyMnMxNC44NTMtMS40ODUgMTQuODUzLTMuOTYxdjUuOTQxczAgMi40NzYtMTQuODUzIDMuOTYxeiIvPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2NhbGEiIGRjOmRlc2NyaXB0aW9uPSJzY2FsYSIgZGM6cHVibGlzaGVyPSJJY29uc2NvdXQiIGRjOmRhdGU9IjIwMTctMDktMjQiIGRjOmZvcm1hdD0iaW1hZ2Uvc3ZnK3htbCIgZGM6bGFuZ3VhZ2U9ImVuIj48ZGM6Y3JlYXRvcj48cmRmOkJhZz48cmRmOmxpPlZvcmlsbGF6PC9yZGY6bGk+PC9yZGY6QmFnPjwvZGM6Y3JlYXRvcj48L3JkZjpEZXNjcmlwdGlvbj48L3JkZjpSREY+PC9tZXRhZGF0YT48L3N2Zz4=");background-size:contain}ul.fixed{margin-bottom:1rem}i.fa-jira{color:#2584ff}i.fa-gitter{color:#f00160}i.fa-youtube{color:#f00}i.fa-calendar-alt{color:#D35400}i.fa-twitter{color:#00a2f5}i.fa-stack-overflow{color:#f58025}#top-header{display:flex;background-image:linear-gradient(141deg, #6980fa 0%, #2cb5e8 51%, #4298fc 75%)}#top-header .nav-item>.nav-link{color:#fff}#top-header .navbar-toggler{border-color:#fff;background:#fff}#top-header i.fa-download{color:#a4fb05;font-size:80%}#top-header .fork-link img{vertical-align:sub}.navbar-aligned{margin:12px 0 72px 12px}.navbar-aligned .breadcrumb{background-color:transparent;font-size:90%;color:#7F8C8D;padding:0}.navbar-aligned .breadcrumb a{color:#3498db}.navbar-aligned .breadcrumb>li+li:before{content:"\f105";padding:0 5px;color:#7F8C8D;font-family:"Font Awesome\ 5 Free", serif;font-style:normal;font-weight:700;text-decoration:inherit}.page-title,.page-title span{font-weight:700;color:#4d394b;margin-bottom:30px}.page-title>i.fas,.page-title span>i.fas{text-align:left}#footer{position:fixed;bottom:0;width:100%;height:50px;background-image:linear-gradient(to bottom, #fafafa 0%, #ddd 100%);white-space:nowrap}#footer>.container{padding:8px 15px 0 15px;font-size:14px}#footer>.container a.btn-link{vertical-align:baseline;font-size:14px;margin:0;padding:6px 0}#footer>.container a{color:#337ab7}#footer>.container a code{background-color:#e47193;color:#fff;padding:2px 4px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;font-weight:700}#footer>.container .sep{color:#cbcbcb}.syntaxhighlighter{padding:15px 0;font-size:95% !important;overflow-y:hidden !important;overflow-x:auto !important;border-radius:6px !important}.syntaxhighlighter .toolbar{display:none}.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:1px 0.5em 1px 1em !important}.syntaxhighlighter table td.code .line{padding:1px 1em !important}.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{vertical-align:bottom !important}#banner-box{background:url(../../images/bg-mb-wrapper2.png) bottom center repeat-x #5483dd}#banner-box #inner-banner-box{position:relative;z-index:9;min-height:300px;max-height:300px;background:url(../../images/bg-main-box.jpg) bottom center no-repeat}#banner-box #inner-banner-box #banner{min-height:300px;padding:35px 0 0 40px}#banner-box #inner-banner-box #banner a#get-started-btn{border-color:#c17dac !important;background-color:#fff !important;border-radius:4px;color:#f67484 !important;font-weight:500;margin-left:2px}#banner-box #inner-banner-box #banner #nat-lang-itf{color:#fff;font-size:60px;letter-spacing:0.02em;font-weight:500;font-family:CanaroBold, Helvetica, sans-serif}#banner-box #inner-banner-box #banner #banner-sub-title{color:#fff;font-size:24px;font-weight:400;margin-top:-5px;letter-spacing:0.02em}@media (max-width: 1000px){#banner-box #inner-banner-box #banner #nat-lang-itf{font-size:45px}#banner-box #inner-banner-box #banner{padding-top:50px}}@media (max-width: 768px){#banner-box #inner-banner-box #banner #nat-lang-itf{font-size:35px}#banner-box #inner-banner-box #banner #sub-title{font-size:18px}#banner-box #inner-banner-box #banner{padding-top:70px}}.bottom-arrow{position:relative}.bottom-arrow:after{position:absolute;bottom:-16px;left:50%;z-index:10;margin-left:-23px;width:0;height:0;border-top:16px solid;border-right:23px solid transparent;border-left:23px solid transparent;content:"";-moz-transform:scale(0.9999)}.main-section{padding:0 30px 40px 30px;letter-spacing:0.02em}.main-section .section-title{margin:40px 0 15px 0;font-size:35px;letter-spacing:0.02em;font-weight:200;display:block;color:#303e4c}.main-section .section-title span{font-weight:700;color:#4d394b}.main-section .sub-section-title{margin:0 0 10px 0;font-size:25px;letter-spacing:0.02em;font-weight:200;display:block}.main-section .sub-section-title span{font-weight:500}.main-section:last-child{margin-bottom:150px}.main-section #lang-logos,.main-section #integration-logos{display:inline-block}.main-section #lang-logos>a,.main-section #integration-logos>a{margin:0 10px 0 0}#banner-box:after{border-top-color:#ed8964}#about-nlpcraft{background-color:#fff}#about-nlpcraft:after{border-top-color:#fff}#about-nlpcraft img#fig1{padding:50px}#features{background-color:#fff}#features:after{border-top-color:#fff}.learn-more{margin-top:10px}.read-more{margin-top:30px}.read-more a,.read-more a:hover,.read-more a:active,.read-more i.fas{color:#007bff !important}#about{padding-bottom:100px;background-color:#fff}#about:after{border-top-color:transparent}#about a,#about a:hover,#about a:active{color:#337ab7}#about .about-project-name{font-weight:700;font-size:150%;margin-bottom:10px;display:inline-block}#home-events{background-color:#eafaff}#home-events:after{border-top-color:#eafaff}#home-events #event-container{margin-bottom:20px}#home-events #event-container a,#home-events #event-container a:hover,#home-events #event-container a:active,#home-events #event-container i.fas{color:#34495e}#home-events #event-container img.event-logo{max-height:56px;margin-bottom:10px;vertical-align:middle}#home-events #event-container .event-loc,#home-events #event-container .event-date,#home-events #event-container .event-link{font-size:15px;font-weight:400;letter-spacing:0.02em;border-left:1px dotted #aaa;padding-left:10px}#home-events #event-container .event-talk-name{margin-bottom:10px}#home-events #event-container .event-link{margin-bottom:15px}#home-events #event-container img.event-avatar-img{height:36px;margin-right:10px;vertical-align:middle;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%}#home-events #event-container .event-name{font-size:25px;letter-spacing:0.02em;font-weight:200;margin-bottom:10px}#home-events #event-container .event-name a{color:#4d394b}#news{background-color:#F9F7ED}#news:after{border-top-color:#F9F7ED}#news #news-container{margin-bottom:20px}#news #news-container a,#news #news-container a:hover,#news #news-container a:active,#news #news-container i.fas{color:#34495e}#news #news-container .news-title{font-size:22px;letter-spacing:0.02em;font-weight:400}#news #news-container .news-title i.fas{color:#34495e}#news #news-container .news-excerpt{font-size:15px;color:#666;font-weight:200;letter-spacing:0.05em;margin-bottom:20px}#news #news-container .news-footer{letter-spacing:0.02em}#news #news-container .news-footer img{height:24px;margin-right:5px;vertical-align:middle}#news #news-container .news-footer img.avatar-img{-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%}#news #news-container .news-footer a,#news #news-container .news-footer span{vertical-align:middle}#news #news-container .news-footer a.news-author{margin-right:15px;display:inline-block}div.quick-link{display:block;padding:8px 0 0 15px;margin:0 10px 20px 0;height:50px;min-width:350px;max-width:430px;border:1px solid #e0ded2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;background-color:#F9F7ED;white-space:nowrap}div.quick-link .sep{color:#cecab2}div.quick-link img.quick-link-img{height:32px;margin-right:10px;vertical-align:middle}div.quick-link span{vertical-align:middle;display:inline}div.quick-link i.fas{vertical-align:middle}div.quick-link a{color:#34495e}div.quick-link div.gh-btn{vertical-align:bottom;display:inline-block;margin-right:10px}.page-not-found{margin:15% auto;max-width:600px;text-align:center}.page-not-found h1{margin:30px 0;font-size:4em;line-height:1;letter-spacing:-1px}.btn{letter-spacing:0.02em;box-shadow:none !important}.btn-default:hover,.btn-default:active,.btn-default:visited{background-color:#efefef !important;border-color:#ddd !important}.btn-creme{border-color:#fcf8e3 !important;background-color:#fcf8e3 !important;color:#8a6d3b !important;font-weight:400}.btn-creme:focus{border-color:#fcf8e3 !important;background-color:#fcf8e3 !important;color:#8a6d3b !important}.btn-creme:hover{color:#8a6d3b !important;border-color:#fcf8e3 !important;background-color:#fbf5d5 !important}.btn-beta{border-color:#FC664C !important;background-color:#FC664C !important;color:#fff !important;font-weight:400}.btn-beta:focus{border-color:#FC664C !important;background-color:#FC664C !important;color:#fff !important}.btn-beta:hover{color:#fff !important;border-color:#FC664C !important;background-color:#fc593d !important}.btn-black{border-color:#555 !important;background-color:#555 !important;color:#fff !important;font-weight:400}.btn-black:focus{border-color:#555 !important;background-color:#555 !important;color:#fff !important}.btn-black:hover{color:#fff !important;border-color:#555 !important;background-color:#4d4d4d !important}.btn-white{border-color:#fff !important;background-color:#fff !important;color:#333 !important;font-weight:400}.btn-white:focus{border-color:#fff !important;background-color:#fff !important;color:#333 !important}.btn-white:hover{color:#333 !important;border-color:#fff !important;background-color:#f7f7f7 !important}.btn-milk{border-color:#f9f9f3 !important;background-color:#f9f9f3 !important;color:#333 !important;font-weight:400}.btn-milk:focus{border-color:#f9f9f3 !important;background-color:#f9f9f3 !important;color:#333 !important}.btn-milk:hover{color:#333 !important;border-color:#f9f9f3 !important;background-color:#f4f4e9 !important}.btn-turquoise{border-color:#1abc9c !important;background-color:#1abc9c !important;color:#fff !important;font-weight:400}.btn-turquoise:focus{border-color:#1abc9c !important;background-color:#1abc9c !important;color:#fff !important}.btn-turquoise:hover{color:#fff !important;border-color:#1abc9c !important;background-color:#18af91 !important}.btn-emerald{border-color:#2ecc71 !important;background-color:#2ecc71 !important;color:#fff !important;font-weight:400}.btn-emerald:focus{border-color:#2ecc71 !important;background-color:#2ecc71 !important;color:#fff !important}.btn-emerald:hover{color:#fff !important;border-color:#2ecc71 !important;background-color:#2bc06a !important}.btn-river{border-color:#3498db !important;background-color:#3498db !important;color:#fff !important;font-weight:400}.btn-river:focus{border-color:#3498db !important;background-color:#3498db !important;color:#fff !important}.btn-river:hover{color:#fff !important;border-color:#3498db !important;background-color:#2791d9 !important}.btn-amethyst{border-color:#9b59b6 !important;background-color:#9b59b6 !important;color:#fff !important;font-weight:400}.btn-amethyst:focus{border-color:#9b59b6 !important;background-color:#9b59b6 !important;color:#fff !important}.btn-amethyst:hover{color:#fff !important;border-color:#9b59b6 !important;background-color:#954eb1 !important}.btn-asphalt{border-color:#34495e !important;background-color:#34495e !important;color:#fff !important;font-weight:400}.btn-asphalt:focus{border-color:#34495e !important;background-color:#34495e !important;color:#fff !important}.btn-asphalt:hover{color:#fff !important;border-color:#34495e !important;background-color:#2f4154 !important}.btn-sea{border-color:#16a085 !important;background-color:#16a085 !important;color:#fff !important;font-weight:400}.btn-sea:focus{border-color:#16a085 !important;background-color:#16a085 !important;color:#fff !important}.btn-sea:hover{color:#fff !important;border-color:#16a085 !important;background-color:#14937a !important}.btn-nephritis{border-color:#27ae60 !important;background-color:#27ae60 !important;color:#fff !important;font-weight:400}.btn-nephritis:focus{border-color:#27ae60 !important;background-color:#27ae60 !important;color:#fff !important}.btn-nephritis:hover{color:#fff !important;border-color:#27ae60 !important;background-color:#24a259 !important}.btn-belize{border-color:#2980b9 !important;background-color:#2980b9 !important;color:#fff !important;font-weight:400}.btn-belize:focus{border-color:#2980b9 !important;background-color:#2980b9 !important;color:#fff !important}.btn-belize:hover{color:#fff !important;border-color:#2980b9 !important;background-color:#2677ac !important}.btn-wisteria{border-color:#8e44ad !important;background-color:#8e44ad !important;color:#fff !important;font-weight:400}.btn-wisteria:focus{border-color:#8e44ad !important;background-color:#8e44ad !important;color:#fff !important}.btn-wisteria:hover{color:#fff !important;border-color:#8e44ad !important;background-color:#8540a2 !important}.btn-midnight{border-color:#2C3E50 !important;background-color:#2C3E50 !important;color:#fff !important;font-weight:400}.btn-midnight:focus{border-color:#2C3E50 !important;background-color:#2C3E50 !important;color:#fff !important}.btn-midnight:hover{color:#fff !important;border-color:#2C3E50 !important;background-color:#273646 !important}.btn-orange{border-color:#F39C12 !important;background-color:#F39C12 !important;color:#fff !important;font-weight:400}.btn-orange:focus{border-color:#F39C12 !important;background-color:#F39C12 !important;color:#fff !important}.btn-orange:hover{color:#fff !important;border-color:#F39C12 !important;background-color:#ea940c !important}.btn-carrot{border-color:#E67E22 !important;background-color:#E67E22 !important;color:#fff !important;font-weight:400}.btn-carrot:focus{border-color:#E67E22 !important;background-color:#E67E22 !important;color:#fff !important}.btn-carrot:hover{color:#fff !important;border-color:#E67E22 !important;background-color:#df7619 !important}.btn-pumpkin{border-color:#D35400 !important;background-color:#D35400 !important;color:#fff !important;font-weight:400}.btn-pumpkin:focus{border-color:#D35400 !important;background-color:#D35400 !important;color:#fff !important}.btn-pumpkin:hover{color:#fff !important;border-color:#D35400 !important;background-color:#c44e00 !important}.btn-alizarin{border-color:#E74C3C !important;background-color:#E74C3C !important;color:#fff !important;font-weight:400}.btn-alizarin:focus{border-color:#E74C3C !important;background-color:#E74C3C !important;color:#fff !important}.btn-alizarin:hover{color:#fff !important;border-color:#E74C3C !important;background-color:#e53f2e !important}.btn-pomegranate{border-color:#C0392B !important;background-color:#C0392B !important;color:#fff !important;font-weight:400}.btn-pomegranate:focus{border-color:#C0392B !important;background-color:#C0392B !important;color:#fff !important}.btn-pomegranate:hover{color:#fff !important;border-color:#C0392B !important;background-color:#b33528 !important}.btn-cloud{border-color:#ECF0F1 !important;background-color:#ECF0F1 !important;color:#6B7F99 !important;font-weight:400}.btn-cloud:focus{border-color:#ECF0F1 !important;background-color:#ECF0F1 !important;color:#6B7F99 !important}.btn-cloud:hover{color:#6B7F99 !important;border-color:#ECF0F1 !important;background-color:#e3e9eb !important}.btn-white-river{border-color:#fff !important;background-color:#fff !important;color:#3498db !important;font-weight:400}.btn-white-river:focus{border-color:#fff !important;background-color:#fff !important;color:#3498db !important}.btn-white-river:hover{color:#3498db !important;border-color:#fff !important;background-color:#f7f7f7 !important}.btn-silver{border-color:#BDC3C7 !important;background-color:#BDC3C7 !important;color:#fff !important;font-weight:400}.btn-silver:focus{border-color:#BDC3C7 !important;background-color:#BDC3C7 !important;color:#fff !important}.btn-silver:hover{color:#fff !important;border-color:#BDC3C7 !important;background-color:#b5bbc0 !important}.btn-concrete{border-color:#95A5A6 !important;background-color:#95A5A6 !important;color:#fff !important;font-weight:400}.btn-concrete:focus{border-color:#95A5A6 !important;background-color:#95A5A6 !important;color:#fff !important}.btn-concrete:hover{color:#fff !important;border-color:#95A5A6 !important;background-color:#8d9e9f !important}.btn-asbestos{border-color:#7F8C8D !important;background-color:#7F8C8D !important;color:#fff !important;font-weight:400}.btn-asbestos:focus{border-color:#7F8C8D !important;background-color:#7F8C8D !important;color:#fff !important}.btn-asbestos:hover{color:#fff !important;border-color:#7F8C8D !important;background-color:#778586 !important}.btn-pink{border-color:#CA428B !important;background-color:#CA428B !important;color:#fff !important;font-weight:400}.btn-pink:focus{border-color:#CA428B !important;background-color:#CA428B !important;color:#fff !important}.btn-pink:hover{color:#fff !important;border-color:#CA428B !important;background-color:#c53784 !important}.btn-mustard{border-color:#CAC542 !important;background-color:#CAC542 !important;color:#000 !important;font-weight:400}.btn-mustard:focus{border-color:#CAC542 !important;background-color:#CAC542 !important;color:#000 !important}.btn-mustard:hover{color:#000 !important;border-color:#CAC542 !important;background-color:#c5c037 !important}.btn-mustard2{border-color:#CAC542 !important;background-color:#CAC542 !important;color:#fff !important;font-weight:400}.btn-mustard2:focus{border-color:#CAC542 !important;background-color:#CAC542 !important;color:#fff !important}.btn-mustard2:hover{color:#fff !important;border-color:#CAC542 !important;background-color:#c5c037 !important}.btn-blue{border-color:#428BCA !important;background-color:#428BCA !important;color:#fff !important;font-weight:400}.btn-blue:focus{border-color:#428BCA !important;background-color:#428BCA !important;color:#fff !important}.btn-blue:hover{color:#fff !important;border-color:#428BCA !important;background-color:#3784c5 !important}.btn-slack{border-color:#4d394b !important;background-color:#4d394b !important;color:#fff !important;font-weight:400}.btn-slack:focus{border-color:#4d394b !important;background-color:#4d394b !important;color:#fff !important}.btn-slack:hover{color:#fff !important;border-color:#4d394b !important;background-color:#443242 !important}.btn-slack2{border-color:#303e4c !important;background-color:#303e4c !important;color:#fff !important;font-weight:400}.btn-slack2:focus{border-color:#303e4c !important;background-color:#303e4c !important;color:#fff !important}.btn-slack2:hover{color:#fff !important;border-color:#303e4c !important;background-color:#2a3643 !important}.btn-slack3{border-color:#544539 !important;background-color:#544539 !important;color:#fff !important;font-weight:400}.btn-slack3:focus{border-color:#544539 !important;background-color:#544539 !important;color:#fff !important}.btn-slack3:hover{color:#fff !important;border-color:#544539 !important;background-color:#4b3e33 !important}.btn-slack4{border-color:#4d5250 !important;background-color:#4d5250 !important;color:#fff !important;font-weight:400}.btn-slack4:focus{border-color:#4d5250 !important;background-color:#4d5250 !important;color:#fff !important}.btn-slack4:hover{color:#fff !important;border-color:#4d5250 !important;background-color:#464a48 !important}.btn-slack5{border-color:#187e82 !important;background-color:#187e82 !important;color:#fff !important;font-weight:400}.btn-slack5:focus{border-color:#187e82 !important;background-color:#187e82 !important;color:#fff !important}.btn-slack5:hover{color:#fff !important;border-color:#187e82 !important;background-color:#167175 !important}.btn-primary{border-color:#428bca !important;background-color:#428bca !important;color:#fff !important;font-weight:400}.btn-primary:focus{border-color:#428bca !important;background-color:#428bca !important;color:#fff !important}.btn-primary:hover{color:#fff !important;border-color:#428bca !important;background-color:#3784c5 !important}.btn-danger{border-color:#d9534f !important;background-color:#d9534f !important;color:#fff !important;font-weight:400}.btn-danger:focus{border-color:#d9534f !important;background-color:#d9534f !important;color:#fff !important}.btn-danger:hover{color:#fff !important;border-color:#d9534f !important;background-color:#d64742 !important}.btn-beta{border-color:#FC664C !important;background-color:#FC664C !important;color:#fff !important;font-weight:400}.btn-beta:focus{border-color:#FC664C !important;background-color:#FC664C !important;color:#fff !important}.btn-beta:hover{color:#fff !important;border-color:#FC664C !important;background-color:#fc593d !important}.btn-success{border-color:#5cb85c !important;background-color:#5cb85c !important;color:#fff !important;font-weight:400}.btn-success:focus{border-color:#5cb85c !important;background-color:#5cb85c !important;color:#fff !important}.btn-success:hover{color:#fff !important;border-color:#5cb85c !important;background-color:#51b351 !important}.btn-beige{border-color:#CA8142 !important;background-color:#CA8142 !important;color:#fff !important;font-weight:400}.btn-beige:focus{border-color:#CA8142 !important;background-color:#CA8142 !important;color:#fff !important}.btn-beige:hover{color:#fff !important;border-color:#CA8142 !important;background-color:#c57937 !important}.btn-sunflower{border-color:#ffd20f !important;background-color:#ffd20f !important;color:#4d394b !important;font-weight:400}.btn-sunflower:focus{border-color:#ffd20f !important;background-color:#ffd20f !important;color:#4d394b !important}.btn-sunflower:hover{color:#4d394b !important;border-color:#ffd20f !important;background-color:#ffcf00 !important}.btn-peach{border-color:#ff6530 !important;background-color:#ff6530 !important;color:#fff !important;font-weight:400}.btn-peach:focus{border-color:#ff6530 !important;background-color:#ff6530 !important;color:#fff !important}.btn-peach:hover{color:#fff !important;border-color:#ff6530 !important;background-color:#ff5a21 !important}.btn-sunflower2{border-color:#ffd20f !important;background-color:#ffd20f !important;color:#303e4c !important;font-weight:400}.btn-sunflower2:focus{border-color:#ffd20f !important;background-color:#ffd20f !important;color:#303e4c !important}.btn-sunflower2:hover{color:#303e4c !important;border-color:#ffd20f !important;background-color:#ffcf00 !important}.one-letter-btn-xs{padding:1px 7px}#downloads .download-sigs>a{border:1px solid #bfe1ff;padding:1px 2px}#downloads i.fa-bomb{color:#C0392B;font-size:90%}.example span.ex-src,.example span.ex-review-all{margin-left:20px}.first-column ul.side-nav{list-style:none;margin:0 0 20px 0;padding:0}.first-column ul.side-nav li.side-nav-title{margin-top:5px;display:block;font-size:1.1rem;color:#303e4c;font-weight:500}.first-column ul.side-nav li.side-nav-title:not(:first-child){margin-top:25px !important}.first-column ul.side-nav li:not(.side-nav-title){margin-left:10px}.first-column ul.side-nav li{padding:3px 10px 3px 0;display:block;text-align:left}.first-column ul.side-nav li a{color:#999;text-align:left;width:100%;padding-right:20px;border-right:1px solid white}.first-column ul.side-nav li a:hover{cursor:pointer;text-decoration:none;color:#369;border-right:3px solid #FC664C}.second-column{padding-right:40px}.second-column section{margin-bottom:30px}.second-column section .section-title{color:#303e4c;font-weight:700;margin-top:0;display:inline-block;margin-bottom:10px;font-size:150%}.second-column section .section-sub-title{color:#303e4c;font-weight:700;margin-top:25px;display:block;font-size:110%;margin-bottom:5px}.second-column section figure{margin:15px 0}.second-column section figure img{display:block;border:1px solid #dfdfdf;border-radius:6px;padding:30px}.second-column section figure figcaption{font-size:80%;text-align:left;margin-top:5px}.second-column section figure.alt{margin:15px 0}.second-column section figure.alt img{display:block;border-radius:6px;padding:0;border:none}.second-column section figure.alt figcaption{font-size:80%;text-align:left;margin-top:5px}.second-column section dl{margin-top:10px;margin-left:20px}.second-column section dl dd{margin-bottom:10px;margin-left:20px}.second-column section div.bq h4{margin:0 0 10px 0 !important}.second-column section div.bq p,.second-column section div.bq li{width:100% !important}.second-column section p,.second-column section li{letter-spacing:0.02em}.second-column section:last-child{margin-bottom:60px}.third-column ul.side-nav{list-style:none;margin:0 0 20px 0;padding:0 0 0 10px;border-left:1px solid #dfdfdf}.third-column ul.side-nav li.side-nav-title{margin-top:5px;display:block;font-size:1.1rem;color:#303e4c;font-weight:500}.third-column ul.side-nav li.side-nav-title:not(:first-child){margin-top:25px !important}.third-column ul.side-nav li:not(.side-nav-title){margin-left:10px}.third-column ul.side-nav li{padding:3px 10px 3px 0;display:block;text-align:left}.third-column ul.side-nav li a{color:#999;text-align:left;width:100%;padding-right:20px;border-right:1px solid white}.third-column ul.side-nav li a:hover{cursor:pointer;text-decoration:none;color:#369;border-right:3px solid #FC664C}ul.side-nav img.quick-link-img{height:16px;vertical-align:text-top}ul.side-nav a.toc2{padding-left:15px;font-size:90%}i.fa-download{color:#1abc9c}i.fa-magic{color:#9b59b6}.page-title i.fa-magic{color:#9b59b6}.breadcrumb i.fa-magic{display:none}li.side-nav-title:after{font-size:75%;content:"\f105";padding-left:5px;font-family:"Font Awesome\ 5 Free", serif;font-style:normal;font-weight:700}.three-cols-container{margin:12px 0 72px 0;display:flex}#use-cases .container-fluid{padding:0 !important}#use-cases .container-fluid .row{margin-bottom:30px}#use-cases .two-col-section{padding:0;letter-spacing:0.02em}#use-cases .two-col-section .sub-section-title{margin:0 0 10px 0;font-size:20px;letter-spacing:0.02em;font-weight:700;display:block;color:#303e4c}#use-cases .two-col-section:last-child{margin-bottom:60px}#server-and-probes table.props-tbl td{vertical-align:top}#metrics-and-tracing div.exporter-name{display:inline;margin-left:20px}#short-term-memory dl.stm-example{padding:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin-left:0 !important}#short-term-memory dl.stm-example dd{font-weight:400;font-family:monospace;margin-top:20px;font-size:120%}#short-term-memory dl.stm-example dd i.fa{text-align:left;vertical-align:text-bottom}#short-term-memory dl.stm-example dt{margin-left:20px;font-weight:400}#short-term-memory dl.stm-example .stm-state{display:inline-flex}#short-term-memory dl.stm-example .stm-state .stm{margin-right:20px}#short-term-memory dl.stm-example .stm-state .stm label{font-weight:500;display:block}#short-term-memory dl.stm-example .stm-state .stm i{font-size:90%;color:#ccc}#short-term-memory dl.stm-example .stm-state .stm span{vertical-align:top;min-width:50px;display:inline-block;padding:3px 6px;border:1px solid #C5D2F7 !important;border-radius:2px;text-align:center;letter-spacing:0.02em}#short-term-memory dl.stm-example .stm-state .stm span b{color:#8e44ad}#integrations table.checks i.fas.fa-check,#integrations table.checks i.fas.fa-check-double{color:#1abc9c}#integrations table.checks i.fas.fa-times{color:#E74C3C}#integrations .img-title{margin-top:25px;margin-bottom:10px}#installation i.fa-bomb{color:#C0392B;font-size:90%}#intent-matching code em{font-style:normal;color:#17b717;margin-left:0.2rem}#intent-matching .fn{font-size:110%}#intent-matching div.syntaxhighlighter.idl{margin-top:0 !important}#intent-matching div.card-header{padding:0 20px !important}#intent-matching p.fn-desc em,#intent-matching p.fn-usage em{font-weight:600;font-style:normal;font-size:95%}#intent-matching .card-body{background-color:#efefef}#intent-matching span.fn-short-desc{float:right;color:#333}#intent-matching p.fn-usage{margin-bottom:5px !important}#community table.checks i.fas.fa-check,#community table.checks i.fas.fa-check-double{color:#1abc9c}#community table.checks i.fas.fa-times{color:#E74C3C}img.avatar-img{height:22px;margin-right:10px;vertical-align:middle;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%}#blog .img-title{margin-top:25px;margin-bottom:10px}.blog-header a,.blog-header a:hover,.blog-header a:active,.blog-header i.fas{color:#34495e}.blog-header .blog-author{display:inline;margin-right:10px}.blog-header .blog-date{margin-left:10px;display:inline}.blog-header .blog-avatar{display:inline}.blog-header .blog-title{font-size:32px;letter-spacing:0.02em;font-weight:400}#resources .event-block{margin-bottom:25px;border-bottom:1px dotted #aaa;padding-bottom:25px}#resources .event-block:last-child{margin-bottom:75px;border-bottom:none}#resources .event-block img.event-logo{max-height:56px;margin-bottom:10px;vertical-align:middle}#resources .event-block .event-loc,#resources .event-block .event-date,#resources .event-block .event-link{font-size:15px;font-weight:400;letter-spacing:0.02em;border-left:1px dotted #aaa;padding-left:10px}#resources .event-block .event-talk-name{margin-bottom:10px}#resources .event-block .event-talk-speaker{display:inline-flex}#resources .event-block .even-speakers-block{margin-top:5px;display:inline-flex}#resources .event-block .talk-speaker-name{font-weight:600}#resources .event-block .talk-speaker-title{font-size:85%;color:#aaa;letter-spacing:0.02em}#resources .event-block .event-link{margin-bottom:15px}#resources .event-block img.event-avatar-img{height:36px;margin-right:10px;vertical-align:middle;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%}#resources .event-block .event-name{font-size:22px;letter-spacing:0.02em;font-weight:400;margin-bottom:10px}#resources .event-block .event-name a{color:#4d394b}#resources .video-block{margin-bottom:50px}#resources .video-block:last-child{margin-bottom:75px}#resources .video-block iframe{min-width:560px;margin-right:20px}#resources .video-block .video-iframe{display:inline-flex}#resources .video-block .video-footer{font-size:90%}#resources .video-block .video-footer .sep{color:#cbcbcb}#resources .video-block .video-title{font-size:22px;letter-spacing:0.02em;font-weight:400;margin-bottom:10px}#resources .video-block .video-title i.fas{color:#34495e}#resources .video-block .video-title a{color:#4d394b}#resources .video-block .video-description{font-size:16px;color:#999;font-weight:400;letter-spacing:0.02em;margin-bottom:10px}#resources .blog-block{margin-bottom:50px}#resources .blog-block .blog-title{font-size:22px;letter-spacing:0.02em;font-weight:400}#resources .blog-block .blog-title i.fas{color:#34495e}#resources .blog-block .blog-title a{color:#4d394b}#resources .blog-block .blog-title a.direct-link{font-weight:400;color:#aaa;letter-spacing:0.1em;vertical-align:top;font-size:60%}#resources .blog-block .blog-excerpt{font-size:16px;color:#999;font-weight:400;letter-spacing:0.04em;margin-bottom:20px}#resources .blog-block .blog-excerpt a{color:#666;font-weight:400}#resources .blog-block .blog-footer{letter-spacing:0.02em}#resources .blog-block .blog-footer a,#resources .blog-block .blog-footer span{vertical-align:middle}#resources .blog-block .blog-footer .blog-author{margin-right:10px;display:inline-block}#resources .blog-block:last-child{margin-bottom:75px}#relnotes i.fa-bomb{color:#C0392B;font-size:90%}html{position:relative;min-height:100%;height:100%}body{background-color:#fff;color:#333;min-height:100%;height:100%}em.high{font-style:normal;padding:2px 4px 3px 4px;background-color:#d36da6;color:#fff;border-radius:1px}
-
-/*# sourceMappingURL=style.css.map */
\ No newline at end of file
+@font-face{font-family:"CanaroBlack";src:url("../../fonts/rene_bieder_-_canaro_black-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_black-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_black-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_black-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_black-webfont.svg#canaroblack") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"CanaroBold";src:url("../../fonts/rene_bieder_-_canaro_bold-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_bold-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_bold-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_bold-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_bold-webfont.svg#canaro_bookbold") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"CanaroBook";src:url("../../fonts/rene_bieder_-_canaro_book-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_book-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_book-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_book-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_book-webfont.svg#canarobook") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"CanaroExtraLight";src:url("../../fonts/rene_bieder_-_canaro_extralight-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_extralight-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_extralight-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_extralight-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_extralight-webfont.svg#canaroextralight") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"CanaroMedium";src:url("../../fonts/rene_bieder_-_canaro_medium-webfont.eot");src:url("../../fonts/rene_bieder_-_canaro_medium-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/rene_bieder_-_canaro_medium-webfont.woff") format("woff"),url("../../fonts/rene_bieder_-_canaro_medium-webfont.ttf") format("truetype"),url("../../fonts/rene_bieder_-_canaro_medium-webfont.svg#canaromedium") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"StagSansLight";src:url("../../fonts/stagsans-light-webfont.eot");src:url("../../fonts/stagsans-light-webfont.eot?#iefix") format("embedded-opentype"),url("../../fonts/stagsans-light-webfont.woff") format("woff"),url("../../fonts/stagsans-light-webfont.ttf") format("truetype"),url("../../fonts/stagsans-light-webfont.svg#stag_sanslight") format("svg");font-weight:normal;font-style:normal}.color-blue3{color:#e0e8fb}.color-turquoise{color:#1abc9c}.color-emerald{color:#2ecc71}.color-river{color:#3498db}.color-amethyst{color:#9b59b6}.color-asphalt{color:#34495e}.color-sea{color:#16a085}.color-nephritis{color:#27ae60}.color-belize{color:#2980b9}.color-wisteria{color:#8e44ad}.color-midnight{color:#2c3e50}.color-sunflower{color:#ffd20f}.color-orange{color:#f39c12}.color-carrot{color:#e67e22}.color-pumpkin{color:#d35400}.color-alizarin{color:#e74c3c}.color-pomegranate{color:#c0392b}.color-cloud{color:#ecf0f1}.color-silver{color:#bdc3c7}.color-concrete{color:#95a5a6}.color-asbestos{color:#7f8c8d}.color-dream{color:#c5d5ee}.color-danger{color:#d9534f}.color-info{color:#5bc0de}.color-success{color:#5cb85c}.color-primary{color:#428bca}.color-warning{color:#f0ad4e}.bg-danger{background-color:#d9534f}.bg-info{background-color:#5bc0de}.bg-success{background-color:#5cb85c}.bg-primary{background-color:#428bca}.bg-warning{background-color:#f0ad4e}.color-000{color:#000}.color-111{color:#111}.color-222{color:#222}.color-333{color:#333}.color-444{color:#444}.color-555{color:#555}.color-666{color:#666}.color-777{color:#777}.color-888{color:#888}.color-999{color:#999}.color-aaa{color:#aaa}.color-bbb{color:#bbb}.color-ccc{color:#ccc}.color-ddd{color:#ddd}.color-eee{color:#eee}.color-fff{color:#fff}.bg-turquoise{background-color:#1abc9c}.bg-emerald{background-color:#2ecc71}.bg-river{background-color:#3498db}.bg-amethyst{background-color:#9b59b6}.bg-asphalt{background-color:#34495e}.bg-sea{background-color:#16a085}.bg-nephritis{background-color:#27ae60}.bg-belize{background-color:#2980b9}.bg-wisteria{background-color:#8e44ad}.bg-midnight{background-color:#2c3e50}.bg-sunflower{background-color:#ffd20f}.bg-orange{background-color:#f39c12}.bg-carrot{background-color:#e67e22}.bg-pumpkin{background-color:#d35400}.bg-alizarin{background-color:#e74c3c}.bg-pomegranate{background-color:#c0392b}.bg-cloud{background-color:#ecf0f1}.bg-silver{background-color:#bdc3c7}.bg-concrete{background-color:#95a5a6}.bg-asbestos{background-color:#7f8c8d}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-width:768px;font-family:"Helvetica Neue",Helvetica,sans-serif}.amp{font-family:"Libre Baskerville",Helvetica,sans-serif !important;font-weight:400 !important;font-style:italic;font-size:85%}label{font-weight:200}.fill{min-height:100%;height:100%}.clear-fix:before,.clear-fix:after{content:" ";display:table}.clear-fix:after{clear:both}.row-fluid [class*=span]{margin-left:0}.modal-open .modal,.btn:focus,a:focus{outline:none !important}ul.dropdown-menu>li>a>i.fa{color:#4d394b}.badge-turquoise{color:#fff;background-color:rgb(151.7757009346,240.7242990654,223.1542056075);border:1px solid #1abc9c;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-emerald{color:#fff;background-color:rgb(188.496,240.004,210.338);border:1px solid #2ecc71;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-amethyst{color:#4d394b;background-color:hsl(282.5806451613,38.9121338912%,88.137254902%);border:1px solid #9b59b6;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-asphalt{color:#fff;background-color:hsl(210,28.7671232877%,63.6274509804%);border:1px solid #34495e;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-sea{color:#fff;background-color:rgb(123.5714285714,236.9285714286,214.75);border:1px solid #16a085;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-nephritis{color:#fff;background-color:rgb(158.1971830986,233.3028169014,189.9084507042);border:1px solid #27ae60;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-belize{color:#fff;background-color:hsl(203.75,63.7168141593%,79.3137254902%);border:1px solid #2980b9;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-wisteria{color:#fff;background-color:rgb(217.8236514523,190.0352697095,229.4647302905);border:1px solid #8e44ad;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-midnight{color:#fff;background-color:hsl(210,29.0322580645%,59.3137254902%);border:1px solid #2c3e50;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-sunflower{color:#4d394b;background-color:rgb(255,243.46875,193.5);border:1px solid #ffd20f;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-orange{color:#fff;background-color:hsl(36.8,90.3614457831%,86.1764705882%);border:1px solid #f39c12;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-carrot{color:#fff;background-color:hsl(28.1632653061,79.674796748%,86.7647058824%);border:1px solid #e67e22;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-pumpkin{color:#fff;background-color:rgb(255,182.471563981,134.5);border:1px solid #d35400;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-alizarin{color:#fff;background-color:hsl(5.6140350877,78.0821917808%,92.0588235294%);border:1px solid #e74c3c;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-pomegranate{color:#fff;background-color:hsl(5.6375838926,63.4042553191%,81.0784313725%);border:1px solid #c0392b;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-concrete{color:#fff;background-color:hsl(183.5294117647,8.7179487179%,96.7647058824%);border:1px solid #95a5a6;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-asbestos{color:#fff;background-color:hsl(184.2857142857,5.7851239669%,87.5490196078%);border:1px solid #7f8c8d;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-river{color:#6b7f99;background-color:hsl(204.0718562874,69.8744769874%,88.137254902%);border:1px solid #3498db;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px;border-color:hsl(204.0718562874,69.8744769874%,78.137254902%)}.badge-red{color:#fff;background-color:hsl(1.7391304348,64.4859813084%,93.0392156863%);border:1px solid #d9534f;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-blue{color:#fff;background-color:rgb(205.4070247934,224.5619834711,241.0929752066);border:1px solid #428bca;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-green{color:#fff;background-color:hsl(120,39.3162393162%,89.1176470588%);border:1px solid #5cb85c;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.badge-yellow{color:#333;background-color:rgb(255,243.46875,193.5);border:1px solid #ffd20f;letter-spacing:.03em;padding:4px 6px;font-weight:400;border-radius:2px}.table-no-border>thead>tr>th,.table-no-border>tbody>tr>th,.table-no-border>tfoot>tr>th,.table-no-border>thead>tr>td,.table-no-border>tbody>tr>td,.table-no-border>tfoot>tr>td{border-top:none}.table-width-auto{width:auto !important}.btn-group.open .dropdown-toggle,.btn-group.open .dropdown-toggle:hover,.btn-group.open .dropdown-toggle:visited,.btn-group.open .dropdown-toggle:active{-webkit-box-shadow:none;-moz-box-shadow:none;-o-box-shadow:none;box-shadow:none}.btn,.btn:active,.btn.active,.btn:hover{-webkit-box-shadow:none;-moz-box-shadow:none;-o-box-shadow:none;box-shadow:none}.btn-default,.btn-default:active,.btn-default.active,.btn-default:hover{-webkit-box-shadow:none;-moz-box-shadow:none;-o-box-shadow:none;box-shadow:none}.btn-sm,.btn{border-radius:2px}.btn-link:hover,.btn-link:focus,a:hover,a:focus{text-decoration:inherit}.bq{margin:20px 0;padding:15px 20px;border-left:3px solid #eee;border-radius:1px 6px 6px 1px}.bq.info{color:#6b7f99;background-color:#f4f8fa;border-color:hsl(200,37.5%,91.862745098%);border-left-color:#5bc0de}.bq.warn{color:#4d394b;background-color:#faf8f0;border-color:hsl(48,50%,91.0784313725%);border-left-color:#ffd20f}.bq.error{background-color:#eed3d7;border-color:rgb(230.893442623,192.606557377,198.2786885246);border-left-color:#fdf7f7}.bq.success{background-color:#f5fdf2;border-color:rgb(228,249.6,219.9);border-left-color:#5cb85c}.bq>p,.bq>ul{margin:0}.bq>p:not(:nth-child(1)){margin-top:10px}.bq>p{letter-spacing:.05em}.bq i.fas.fa-lightbulb{padding-right:5px;color:#ffd20f;font-size:110%}.bq div.bq-idea-container{display:inline-flex}.bq div.bq-idea-container div:nth-child(1){margin-right:7px}.gradient-table{margin-top:0;border-collapse:collapse;overflow:auto;margin-bottom:1rem}.gradient-table>thead{background:linear-gradient(141deg, #6980fa 0%, #2cb5e8 51%, #4298fc 75%) fixed;color:#fff}.gradient-table>thead>tr>th{text-align:left;border-bottom:1px solid #eee}.gradient-table>thead>tr>th,.gradient-table>tbody>tr>th,.gradient-table>tfoot>tr>th{padding:8px;font-size:15px;font-weight:500;color:#fff}.gradient-table>thead>tr>td,.gradient-table>tbody>tr>td,.gradient-table>tfoot>tr>td{padding:8px;letter-spacing:.02em;font-weight:400;border-bottom:1px solid #eee;vertical-align:top}.gradient-table>tbody>tr:hover{background-color:#fafafa}.gradient-table>tbody>tr td:last-child{border-right:1px solid #eee}.gradient-table>tbody>tr td:first-child{border-left:1px solid #eee}.recover-bottom-margin{margin-bottom:16px}.top-link{font-size:60%;color:#1abc9c}.max-width{width:100%}a[target=scaladoc]:not(.not-code){font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;word-break:keep-all;white-space:nowrap !important}pre.console{border:1px solid #dedede;border-radius:6px;padding:25px 30px 0 30px}code{white-space:nowrap !important;color:#c0392b;font-size:100% !important}code i{font-style:normal;border:1px solid #ffd20f;padding:0 2px;color:#000;background:#ffd20f}code b{color:#8e44ad}.side-nav a.active{border-right:3px solid #f39c12 !important;color:#369 !important}.complexity-one-star i{color:#27ae60}.complexity-two-star i{color:#3498db}.complexity-three-star i{color:#000}.img-fluid{max-width:800px !important;width:100% !important;border-radius:6px}.non-fluid-img{border-radius:6px}.keyboard{padding:1px 8px;background-color:#2c2c29;color:#efefef;border-radius:4px;display:inline-block;font-family:monospace;font-weight:600}.img-fluid-no-border{max-width:900px !important;border-radius:6px;padding:0 !important}.latest{font-size:11px;background-color:#d35400;color:#fff;padding:4px 6px;border-radius:4px;font-weight:600;margin-left:5px}i.fa.output{margin-left:5px;font-size:80%}.card{border-color:#e0e8fb}.card .card-header{background-color:#f4f7ff;border-bottom-color:#e0e8fb}.card .card-header button.btn{padding-left:0}.nav-tabs{border-bottom-color:#e0e8fb !important}.nav-tabs .nav-link.active{border-color:#e0e8fb #e0e8fb #fff !important}.nav-tabs .nav-link{border-color:#fff #fff #e0e8fb !important}code.script{border:1px solid #e0e8fb;padding:1px 6px 2px 6px;border-radius:4px;color:#fb51b1;background-color:#f3f9ff}.scala-16{display:inline-flex;width:16px;height:16px;vertical-align:sub;background-image:url("data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iIzQ0NCIgZD0iTTguNTczIDcuMzA3czE0Ljg1My0xLjQ4NSAxNC44NTMtMy45NjF2NS45NDFzMCAyLjQ3Ni0xNC44NTMgMy45NjF6bS4wNjMgNy45MjJzMTQuODUzLTEuNDg1IDE0Ljg1My0zLjk2MXY1Ljk0MXMwIDIuNDc2LTE0Ljg1MyAzLjk2MXptMCA3LjkyMnMxNC44NTMtMS40ODUgMTQuODUzLTMuOTYxdjUuOTQxczAgMi40NzYtMTQuODUzIDMuOTYxeiIvPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2NhbGEiIGRjOmRlc2NyaXB0aW9uPSJzY2FsYSIgZGM6cHVibGlzaGVyPSJJY29uc2NvdXQiIGRjOmRhdGU9IjIwMTctMDktMjQiIGRjOmZvcm1hdD0iaW1hZ2Uvc3ZnK3htbCIgZGM6bGFuZ3VhZ2U9ImVuIj48ZGM6Y3JlYXRvcj48cmRmOkJhZz48cmRmOmxpPlZvcmlsbGF6PC9yZGY6bGk+PC9yZGY6QmFnPjwvZGM6Y3JlYXRvcj48L3JkZjpEZXNjcmlwdGlvbj48L3JkZjpSREY+PC9tZXRhZGF0YT48L3N2Zz4=");background-size:contain}ul.fixed{margin-bottom:1rem}i.fa-jira{color:#2584ff}i.fa-gitter{color:#f00160}i.fa-youtube{color:red}i.fa-calendar-alt{color:#d35400}i.fa-twitter{color:#00a2f5}i.fa-stack-overflow{color:#f58025}#top-header{display:flex;background-image:linear-gradient(141deg, #6980fa 0%, #2cb5e8 51%, #4298fc 75%)}#top-header .nav-item>.nav-link{color:#fff}#top-header .navbar-toggler{border-color:#fff;background:#fff}#top-header i.fa-download{color:#a4fb05;font-size:80%}#top-header .fork-link img{vertical-align:sub}.navbar-aligned{margin:12px 0 72px 12px}.navbar-aligned .breadcrumb{background-color:rgba(0,0,0,0);font-size:90%;color:#7f8c8d;padding:0}.navbar-aligned .breadcrumb a{color:#3498db}.navbar-aligned .breadcrumb>li+li:before{content:"";padding:0 5px;color:#7f8c8d;font-family:"Font Awesome 5 Free",serif;font-style:normal;font-weight:700;text-decoration:inherit}.page-title,.page-title span{font-weight:700;color:#4d394b;margin-bottom:30px}.page-title>i.fas,.page-title span>i.fas{text-align:left}#footer{position:fixed;bottom:0;width:100%;height:50px;background-image:linear-gradient(to bottom, #fafafa 0%, #ddd 100%);white-space:nowrap}#footer>.container{padding:8px 15px 0 15px;font-size:14px}#footer>.container a.btn-link{vertical-align:baseline;font-size:14px;margin:0;padding:6px 0}#footer>.container a{color:#337ab7}#footer>.container a code{background-color:#e47193;color:#fff;padding:2px 4px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;font-weight:700}#footer>.container .sep{color:#cbcbcb}.syntaxhighlighter{padding:15px 0;font-size:95% !important;overflow-y:hidden !important;overflow-x:auto !important;border-radius:6px !important}.syntaxhighlighter .toolbar{display:none}.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:1px .5em 1px 1em !important}.syntaxhighlighter table td.code .line{padding:1px 1em !important}.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{vertical-align:bottom !important}#banner-box{background:url(../../images/bg-mb-wrapper2.png) bottom center repeat-x #5483dd}#banner-box #inner-banner-box{position:relative;z-index:9;min-height:300px;max-height:300px;background:url(../../images/bg-main-box.jpg) bottom center no-repeat}#banner-box #inner-banner-box #banner{min-height:300px;padding:35px 0 0 40px}#banner-box #inner-banner-box #banner a#get-started-btn{border-color:#c17dac !important;background-color:#fff !important;border-radius:4px;color:#f67484 !important;font-weight:500;margin-left:2px}#banner-box #inner-banner-box #banner #nat-lang-itf{color:#fff;font-size:60px;letter-spacing:.02em;font-weight:500;font-family:CanaroBold,Helvetica,sans-serif}#banner-box #inner-banner-box #banner #banner-sub-title{color:#fff;font-size:24px;font-weight:400;margin-top:-5px;letter-spacing:.02em}@media(max-width: 1000px){#banner-box #inner-banner-box #banner #nat-lang-itf{font-size:45px}#banner-box #inner-banner-box #banner{padding-top:50px}}@media(max-width: 768px){#banner-box #inner-banner-box #banner #nat-lang-itf{font-size:35px}#banner-box #inner-banner-box #banner #sub-title{font-size:18px}#banner-box #inner-banner-box #banner{padding-top:70px}}.bottom-arrow{position:relative}.bottom-arrow:after{position:absolute;bottom:-16px;left:50%;z-index:10;margin-left:-23px;width:0;height:0;border-top:16px solid;border-right:23px solid rgba(0,0,0,0);border-left:23px solid rgba(0,0,0,0);content:"";-moz-transform:scale(0.9999)}.main-section{padding:0 30px 40px 30px;letter-spacing:.02em}.main-section .section-title{margin:40px 0 15px 0;font-size:35px;letter-spacing:.02em;font-weight:200;display:block;color:#303e4c}.main-section .section-title span{font-weight:700;color:#4d394b}.main-section .sub-section-title{margin:0 0 10px 0;font-size:25px;letter-spacing:.02em;font-weight:200;display:block}.main-section .sub-section-title span{font-weight:500}.main-section:last-child{margin-bottom:150px}.main-section #lang-logos,.main-section #integration-logos{display:inline-block}.main-section #lang-logos>a,.main-section #integration-logos>a{margin:0 10px 0 0}#banner-box:after{border-top-color:#ed8964}#about-nlpcraft{background-color:#fff}#about-nlpcraft:after{border-top-color:#fff}#about-nlpcraft img#fig1{padding:50px}#features{background-color:#fff}#features:after{border-top-color:#fff}.learn-more{margin-top:10px}.read-more{margin-top:30px}.read-more a,.read-more a:hover,.read-more a:active,.read-more i.fas{color:#007bff !important}#about{padding-bottom:100px;background-color:#fff}#about:after{border-top-color:rgba(0,0,0,0)}#about a,#about a:hover,#about a:active{color:#337ab7}#about .about-project-name{font-weight:700;font-size:150%;margin-bottom:10px;display:inline-block}#home-events{background-color:#eafaff}#home-events:after{border-top-color:#eafaff}#home-events #event-container{margin-bottom:20px}#home-events #event-container a,#home-events #event-container a:hover,#home-events #event-container a:active,#home-events #event-container i.fas{color:#34495e}#home-events #event-container img.event-logo{max-height:56px;margin-bottom:10px;vertical-align:middle}#home-events #event-container .event-loc,#home-events #event-container .event-date,#home-events #event-container .event-link{font-size:15px;font-weight:400;letter-spacing:.02em;border-left:1px dotted #aaa;padding-left:10px}#home-events #event-container .event-talk-name{margin-bottom:10px}#home-events #event-container .event-link{margin-bottom:15px}#home-events #event-container img.event-avatar-img{height:36px;margin-right:10px;vertical-align:middle;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%}#home-events #event-container .event-name{font-size:25px;letter-spacing:.02em;font-weight:200;margin-bottom:10px}#home-events #event-container .event-name a{color:#4d394b}#news{background-color:#f9f7ed}#news:after{border-top-color:#f9f7ed}#news #news-container{margin-bottom:20px}#news #news-container a,#news #news-container a:hover,#news #news-container a:active,#news #news-container i.fas{color:#34495e}#news #news-container .news-title{font-size:22px;letter-spacing:.02em;font-weight:400}#news #news-container .news-title i.fas{color:#34495e}#news #news-container .news-excerpt{font-size:15px;color:#666;font-weight:200;letter-spacing:.05em;margin-bottom:20px}#news #news-container .news-footer{letter-spacing:.02em}#news #news-container .news-footer img{height:24px;margin-right:5px;vertical-align:middle}#news #news-container .news-footer img.avatar-img{-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%}#news #news-container .news-footer a,#news #news-container .news-footer span{vertical-align:middle}#news #news-container .news-footer a.news-author{margin-right:15px;display:inline-block}div.quick-link{display:block;padding:8px 0 0 15px;margin:0 10px 20px 0;height:50px;min-width:350px;max-width:430px;border:1px solid #e0ded2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;background-color:#f9f7ed;white-space:nowrap}div.quick-link .sep{color:#cecab2}div.quick-link img.quick-link-img{height:32px;margin-right:10px;vertical-align:middle}div.quick-link span{vertical-align:middle;display:inline}div.quick-link i.fas{vertical-align:middle}div.quick-link a{color:#34495e}div.quick-link div.gh-btn{vertical-align:bottom;display:inline-block;margin-right:10px}.page-not-found{margin:15% auto;max-width:600px;text-align:center}.page-not-found h1{margin:30px 0;font-size:4em;line-height:1;letter-spacing:-1px}.btn{letter-spacing:.02em;box-shadow:none !important}.btn-default:hover,.btn-default:active,.btn-default:visited{background-color:#efefef !important;border-color:#ddd !important}.btn-creme{border-color:#fcf8e3 !important;background-color:#fcf8e3 !important;color:#8a6d3b !important;font-weight:400}.btn-creme:focus{border-color:#fcf8e3 !important;background-color:#fcf8e3 !important;color:#8a6d3b !important}.btn-creme:hover{color:#8a6d3b !important;border-color:#fcf8e3 !important;background-color:hsl(50.4,80.6451612903%,90.9215686275%) !important}.btn-beta{border-color:#fc664c !important;background-color:#fc664c !important;color:#fff !important;font-weight:400}.btn-beta:focus{border-color:#fc664c !important;background-color:#fc664c !important;color:#fff !important}.btn-beta:hover{color:#fff !important;border-color:#fc664c !important;background-color:rgb(251.7478021978,89.1379120879,60.9521978022) !important}.btn-black{border-color:#555 !important;background-color:#555 !important;color:#fff !important;font-weight:400}.btn-black:focus{border-color:#555 !important;background-color:#555 !important;color:#fff !important}.btn-black:hover{color:#fff !important;border-color:#555 !important;background-color:rgb(77.35,77.35,77.35) !important}.btn-white{border-color:#fff !important;background-color:#fff !important;color:#333 !important;font-weight:400}.btn-white:focus{border-color:#fff !important;background-color:#fff !important;color:#333 !important}.btn-white:hover{color:#333 !important;border-color:#fff !important;background-color:hsl(0,0%,97%) !important}.btn-milk{border-color:#f9f9f3 !important;background-color:#f9f9f3 !important;color:#333 !important;font-weight:400}.btn-milk:focus{border-color:#f9f9f3 !important;background-color:#f9f9f3 !important;color:#333 !important}.btn-milk:hover{color:#333 !important;border-color:#f9f9f3 !important;background-color:rgb(243.9,243.9,232.8) !important}.btn-turquoise{border-color:#1abc9c !important;background-color:#1abc9c !important;color:#fff !important;font-weight:400}.btn-turquoise:focus{border-color:#1abc9c !important;background-color:#1abc9c !important;color:#fff !important}.btn-turquoise:hover{color:#fff !important;border-color:#1abc9c !important;background-color:rgb(24.1411214953,174.5588785047,144.846728972) !important}.btn-emerald{border-color:#2ecc71 !important;background-color:#2ecc71 !important;color:#fff !important;font-weight:400}.btn-emerald:focus{border-color:#2ecc71 !important;background-color:#2ecc71 !important;color:#fff !important}.btn-emerald:hover{color:#fff !important;border-color:#2ecc71 !important;background-color:rgb(43.1848,191.5152,106.0844) !important}.btn-river{border-color:#3498db !important;background-color:#3498db !important;color:#fff !important;font-weight:400}.btn-river:focus{border-color:#3498db !important;background-color:#3498db !important;color:#fff !important}.btn-river:hover{color:#fff !important;border-color:#3498db !important;background-color:rgb(39.0046025105,145.4062761506,216.6953974895) !important}.btn-amethyst{border-color:#9b59b6 !important;background-color:#9b59b6 !important;color:#fff !important;font-weight:400}.btn-amethyst:focus{border-color:#9b59b6 !important;background-color:#9b59b6 !important;color:#fff !important}.btn-amethyst:hover{color:#fff !important;border-color:#9b59b6 !important;background-color:rgb(148.5983263598,78.3732217573,177.3267782427) !important}.btn-asphalt{border-color:#34495e !important;background-color:#34495e !important;color:#fff !important;font-weight:400}.btn-asphalt:focus{border-color:#34495e !important;background-color:#34495e !important;color:#fff !important}.btn-asphalt:hover{color:#fff !important;border-color:#34495e !important;background-color:rgb(46.5506849315,65.35,84.1493150685) !important}.btn-sea{border-color:#16a085 !important;background-color:#16a085 !important;color:#fff !important;font-weight:400}.btn-sea:focus{border-color:#16a085 !important;background-color:#16a085 !important;color:#fff !important}.btn-sea:hover{color:#fff !important;border-color:#16a085 !important;background-color:rgb(20.1505494505,146.5494505495,121.8192307692) !important}.btn-nephritis{border-color:#27ae60 !important;background-color:#27ae60 !important;color:#fff !important;font-weight:400}.btn-nephritis:focus{border-color:#27ae60 !important;background-color:#27ae60 !important;color:#fff !important}.btn-nephritis:hover{color:#fff !important;border-color:#27ae60 !important;background-color:rgb(36.1985915493,161.5014084507,89.1042253521) !important}.btn-belize{border-color:#2980b9 !important;background-color:#2980b9 !important;color:#fff !important;font-weight:400}.btn-belize:focus{border-color:#2980b9 !important;background-color:#2980b9 !important;color:#fff !important}.btn-belize:hover{color:#fff !important;border-color:#2980b9 !important;background-color:hsl(203.75,63.7168141593%,41.3137254902%) !important}.btn-wisteria{border-color:#8e44ad !important;background-color:#8e44ad !important;color:#fff !important;font-weight:400}.btn-wisteria:focus{border-color:#8e44ad !important;background-color:#8e44ad !important;color:#fff !important}.btn-wisteria:hover{color:#fff !important;border-color:#8e44ad !important;background-color:rgb(132.9850622407,63.6829875519,162.0170124481) !important}.btn-midnight{border-color:#2c3e50 !important;background-color:#2c3e50 !important;color:#fff !important;font-weight:400}.btn-midnight:focus{border-color:#2c3e50 !important;background-color:#2c3e50 !important;color:#fff !important}.btn-midnight:hover{color:#fff !important;border-color:#2c3e50 !important;background-color:rgb(38.5709677419,54.35,70.1290322581) !important}.btn-orange{border-color:#f39c12 !important;background-color:#f39c12 !important;color:#fff !important;font-weight:400}.btn-orange:focus{border-color:#f39c12 !important;background-color:#f39c12 !important;color:#fff !important}.btn-orange:hover{color:#fff !important;border-color:#f39c12 !important;background-color:hsl(36.8,90.3614457831%,48.1764705882%) !important}.btn-carrot{border-color:#e67e22 !important;background-color:#e67e22 !important;color:#fff !important;font-weight:400}.btn-carrot:focus{border-color:#e67e22 !important;background-color:#e67e22 !important;color:#fff !important}.btn-carrot:hover{color:#fff !important;border-color:#e67e22 !important;background-color:hsl(28.1632653061,79.674796748%,48.7647058824%) !important}.btn-pumpkin{border-color:#d35400 !important;background-color:#d35400 !important;color:#fff !important;font-weight:400}.btn-pumpkin:focus{border-color:#d35400 !important;background-color:#d35400 !important;color:#fff !important}.btn-pumpkin:hover{color:#fff !important;border-color:#d35400 !important;background-color:rgb(195.7,77.9090047393,0) !important}.btn-alizarin{border-color:#e74c3c !important;background-color:#e74c3c !important;color:#fff !important;font-weight:400}.btn-alizarin:focus{border-color:#e74c3c !important;background-color:#e74c3c !important;color:#fff !important}.btn-alizarin:hover{color:#fff !important;border-color:#e74c3c !important;background-color:rgb(229.3232876712,63.4945205479,46.3767123288) !important}.btn-pomegranate{border-color:#c0392b !important;background-color:#c0392b !important;color:#fff !important;font-weight:400}.btn-pomegranate:focus{border-color:#c0392b !important;background-color:#c0392b !important;color:#fff !important}.btn-pomegranate:hover{color:#fff !important;border-color:#c0392b !important;background-color:rgb(179.4995744681,53.2889361702,40.2004255319) !important}.btn-cloud{border-color:#ecf0f1 !important;background-color:#ecf0f1 !important;color:#6b7f99 !important;font-weight:400}.btn-cloud:focus{border-color:#ecf0f1 !important;background-color:#ecf0f1 !important;color:#6b7f99 !important}.btn-cloud:hover{color:#6b7f99 !important;border-color:#ecf0f1 !important;background-color:hsl(192,15.1515151515%,90.5294117647%) !important}.btn-white-river{border-color:#fff !important;background-color:#fff !important;color:#3498db !important;font-weight:400}.btn-white-river:focus{border-color:#fff !important;background-color:#fff !important;color:#3498db !important}.btn-white-river:hover{color:#3498db !important;border-color:#fff !important;background-color:hsl(0,0%,97%) !important}.btn-silver{border-color:#bdc3c7 !important;background-color:#bdc3c7 !important;color:#fff !important;font-weight:400}.btn-silver:focus{border-color:#bdc3c7 !important;background-color:#bdc3c7 !important;color:#fff !important}.btn-silver:hover{color:#fff !important;border-color:#bdc3c7 !important;background-color:hsl(204,8.1967213115%,73.0784313725%) !important}.btn-concrete{border-color:#95a5a6 !important;background-color:#95a5a6 !important;color:#fff !important;font-weight:400}.btn-concrete:focus{border-color:#95a5a6 !important;background-color:#95a5a6 !important;color:#fff !important}.btn-concrete:hover{color:#fff !important;border-color:#95a5a6 !important;background-color:hsl(183.5294117647,8.7179487179%,58.7647058824%) !important}.btn-asbestos{border-color:#7f8c8d !important;background-color:#7f8c8d !important;color:#fff !important;font-weight:400}.btn-asbestos:focus{border-color:#7f8c8d !important;background-color:#7f8c8d !important;color:#fff !important}.btn-asbestos:hover{color:#fff !important;border-color:#7f8c8d !important;background-color:hsl(184.2857142857,5.7851239669%,49.5490196078%) !important}.btn-pink{border-color:#ca428b !important;background-color:#ca428b !important;color:#fff !important;font-weight:400}.btn-pink:focus{border-color:#ca428b !important;background-color:#ca428b !important;color:#fff !important}.btn-pink:hover{color:#fff !important;border-color:#ca428b !important;background-color:rgb(197.3566115702,55.3433884298,131.5710743802) !important}.btn-mustard{border-color:#cac542 !important;background-color:#cac542 !important;color:#000 !important;font-weight:400}.btn-mustard:focus{border-color:#cac542 !important;background-color:#cac542 !important;color:#000 !important}.btn-mustard:hover{color:#000 !important;border-color:#cac542 !important;background-color:rgb(197.3566115702,192.1355371901,55.3433884298) !important}.btn-mustard2{border-color:#cac542 !important;background-color:#cac542 !important;color:#fff !important;font-weight:400}.btn-mustard2:focus{border-color:#cac542 !important;background-color:#cac542 !important;color:#fff !important}.btn-mustard2:hover{color:#fff !important;border-color:#cac542 !important;background-color:rgb(197.3566115702,192.1355371901,55.3433884298) !important}.btn-blue{border-color:#428bca !important;background-color:#428bca !important;color:#fff !important;font-weight:400}.btn-blue:focus{border-color:#428bca !important;background-color:#428bca !important;color:#fff !important}.btn-blue:hover{color:#fff !important;border-color:#428bca !important;background-color:rgb(55.3433884298,131.5710743802,197.3566115702) !important}.btn-slack{border-color:#4d394b !important;background-color:#4d394b !important;color:#fff !important;font-weight:400}.btn-slack:focus{border-color:#4d394b !important;background-color:#4d394b !important;color:#fff !important}.btn-slack:hover{color:#fff !important;border-color:#4d394b !important;background-color:hsl(306,14.9253731343%,23.2745098039%) !important}.btn-slack2{border-color:#303e4c !important;background-color:#303e4c !important;color:#fff !important;font-weight:400}.btn-slack2:focus{border-color:#303e4c !important;background-color:#303e4c !important;color:#fff !important}.btn-slack2:hover{color:#fff !important;border-color:#303e4c !important;background-color:rgb(42.0774193548,54.35,66.6225806452) !important}.btn-slack3{border-color:#544539 !important;background-color:#544539 !important;color:#fff !important;font-weight:400}.btn-slack3:focus{border-color:#544539 !important;background-color:#544539 !important;color:#fff !important}.btn-slack3:hover{color:#fff !important;border-color:#544539 !important;background-color:rgb(74.885106383,61.5127659574,50.814893617) !important}.btn-slack4{border-color:#4d5250 !important;background-color:#4d5250 !important;color:#fff !important;font-weight:400}.btn-slack4:focus{border-color:#4d5250 !important;background-color:#4d5250 !important;color:#fff !important}.btn-slack4:hover{color:#fff !important;border-color:#4d5250 !important;background-color:hsl(156,3.1446540881%,28.1764705882%) !important}.btn-slack5{border-color:#187e82 !important;background-color:#187e82 !important;color:#fff !important;font-weight:400}.btn-slack5:focus{border-color:#187e82 !important;background-color:#187e82 !important;color:#fff !important}.btn-slack5:hover{color:#fff !important;border-color:#187e82 !important;background-color:rgb(21.6155844156,113.4818181818,117.0844155844) !important}.btn-primary{border-color:#428bca !important;background-color:#428bca !important;color:#fff !important;font-weight:400}.btn-primary:focus{border-color:#428bca !important;background-color:#428bca !important;color:#fff !important}.btn-primary:hover{color:#fff !important;border-color:#428bca !important;background-color:rgb(55.3433884298,131.5710743802,197.3566115702) !important}.btn-danger{border-color:#d9534f !important;background-color:#d9534f !important;color:#fff !important;font-weight:400}.btn-danger:focus{border-color:#d9534f !important;background-color:#d9534f !important;color:#fff !important}.btn-danger:hover{color:#fff !important;border-color:#d9534f !important;background-color:rgb(214.2831775701,70.7028037383,66.4168224299) !important}.btn-beta{border-color:#fc664c !important;background-color:#fc664c !important;color:#fff !important;font-weight:400}.btn-beta:focus{border-color:#fc664c !important;background-color:#fc664c !important;color:#fff !important}.btn-beta:hover{color:#fff !important;border-color:#fc664c !important;background-color:rgb(251.7478021978,89.1379120879,60.9521978022) !important}.btn-success{border-color:#5cb85c !important;background-color:#5cb85c !important;color:#fff !important;font-weight:400}.btn-success:focus{border-color:#5cb85c !important;background-color:#5cb85c !important;color:#fff !important}.btn-success:hover{color:#fff !important;border-color:#5cb85c !important;background-color:hsl(120,39.3162393162%,51.1176470588%) !important}.btn-beige{border-color:#ca8142 !important;background-color:#ca8142 !important;color:#fff !important;font-weight:400}.btn-beige:focus{border-color:#ca8142 !important;background-color:#ca8142 !important;color:#fff !important}.btn-beige:hover{color:#fff !important;border-color:#ca8142 !important;background-color:rgb(197.3566115702,121.1289256198,55.3433884298) !important}.btn-sunflower{border-color:#ffd20f !important;background-color:#ffd20f !important;color:#4d394b !important;font-weight:400}.btn-sunflower:focus{border-color:#ffd20f !important;background-color:#ffd20f !important;color:#4d394b !important}.btn-sunflower:hover{color:#4d394b !important;border-color:#ffd20f !important;background-color:rgb(254.7,206.94375,0) !important}.btn-peach{border-color:#ff6530 !important;background-color:#ff6530 !important;color:#fff !important;font-weight:400}.btn-peach:focus{border-color:#ff6530 !important;background-color:#ff6530 !important;color:#fff !important}.btn-peach:hover{color:#fff !important;border-color:#ff6530 !important;background-color:rgb(255,89.6173913043,32.7) !important}.btn-sunflower2{border-color:#ffd20f !important;background-color:#ffd20f !important;color:#303e4c !important;font-weight:400}.btn-sunflower2:focus{border-color:#ffd20f !important;background-color:#ffd20f !important;color:#303e4c !important}.btn-sunflower2:hover{color:#303e4c !important;border-color:#ffd20f !important;background-color:rgb(254.7,206.94375,0) !important}.one-letter-btn-xs{padding:1px 7px}#downloads .download-sigs>a{border:1px solid #bfe1ff;padding:1px 2px}#downloads i.fa-bomb{color:#c0392b;font-size:90%}.example span.ex-src,.example span.ex-review-all{margin-left:20px}.first-column ul.side-nav{list-style:none;margin:0 0 20px 0;padding:0}.first-column ul.side-nav li.side-nav-title{margin-top:5px;display:block;font-size:1.1rem;color:#303e4c;font-weight:500}.first-column ul.side-nav li.side-nav-title:not(:first-child){margin-top:25px !important}.first-column ul.side-nav li:not(.side-nav-title){margin-left:10px}.first-column ul.side-nav li{padding:3px 10px 3px 0;display:block;text-align:left}.first-column ul.side-nav li a{color:#999;text-align:left;width:100%;padding-right:20px;border-right:1px solid #fff}.first-column ul.side-nav li a:hover{cursor:pointer;text-decoration:none;color:#369;border-right:3px solid #fc664c}.second-column{padding-right:40px}.second-column section{margin-bottom:30px}.second-column section .section-title{color:#303e4c;font-weight:700;margin-top:0;display:inline-block;margin-bottom:10px;font-size:150%}.second-column section .section-sub-title{color:#303e4c;font-weight:700;margin-top:25px;display:block;font-size:110%;margin-bottom:5px}.second-column section figure{margin:15px 0}.second-column section figure img{display:block;border:1px solid #dfdfdf;border-radius:6px;padding:30px}.second-column section figure figcaption{font-size:80%;text-align:left;margin-top:5px}.second-column section figure.alt{margin:15px 0}.second-column section figure.alt img{display:block;border-radius:6px;padding:0;border:none}.second-column section figure.alt figcaption{font-size:80%;text-align:left;margin-top:5px}.second-column section dl{margin-top:10px;margin-left:20px}.second-column section dl dd{margin-bottom:10px;margin-left:20px}.second-column section div.bq h4{margin:0 0 10px 0 !important}.second-column section div.bq p,.second-column section div.bq li{width:100% !important}.second-column section p,.second-column section li{letter-spacing:.02em}.second-column section:last-child{margin-bottom:60px}.third-column ul.side-nav{list-style:none;margin:0 0 20px 0;padding:0 0 0 10px;border-left:1px solid #dfdfdf}.third-column ul.side-nav li.side-nav-title{margin-top:5px;display:block;font-size:1.1rem;color:#303e4c;font-weight:500}.third-column ul.side-nav li.side-nav-title:not(:first-child){margin-top:25px !important}.third-column ul.side-nav li:not(.side-nav-title){margin-left:10px}.third-column ul.side-nav li{padding:3px 10px 3px 0;display:block;text-align:left}.third-column ul.side-nav li a{color:#999;text-align:left;width:100%;padding-right:20px;border-right:1px solid #fff}.third-column ul.side-nav li a:hover{cursor:pointer;text-decoration:none;color:#369;border-right:3px solid #fc664c}ul.side-nav img.quick-link-img{height:16px;vertical-align:text-top}ul.side-nav a.toc2{padding-left:15px;font-size:90%}i.fa-download{color:#1abc9c}i.fa-magic{color:#9b59b6}.page-title i.fa-magic{color:#9b59b6}.breadcrumb i.fa-magic{display:none}li.side-nav-title:after{font-size:75%;content:"";padding-left:5px;font-family:"Font Awesome 5 Free",serif;font-style:normal;font-weight:700}.three-cols-container{margin:12px 0 72px 0;display:flex}#use-cases .container-fluid{padding:0 !important}#use-cases .container-fluid .row{margin-bottom:30px}#use-cases .two-col-section{padding:0;letter-spacing:.02em}#use-cases .two-col-section .sub-section-title{margin:0 0 10px 0;font-size:20px;letter-spacing:.02em;font-weight:700;display:block;color:#303e4c}#use-cases .two-col-section:last-child{margin-bottom:60px}#server-and-probes table.props-tbl td{vertical-align:top}#metrics-and-tracing div.exporter-name{display:inline;margin-left:20px}#short-term-memory dl.stm-example{padding:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin-left:0 !important}#short-term-memory dl.stm-example dd{font-weight:400;font-family:monospace;margin-top:20px;font-size:120%}#short-term-memory dl.stm-example dd i.fa{text-align:left;vertical-align:text-bottom}#short-term-memory dl.stm-example dt{margin-left:20px;font-weight:400}#short-term-memory dl.stm-example .stm-state{display:inline-flex}#short-term-memory dl.stm-example .stm-state .stm{margin-right:20px}#short-term-memory dl.stm-example .stm-state .stm label{font-weight:500;display:block}#short-term-memory dl.stm-example .stm-state .stm i{font-size:90%;color:#ccc}#short-term-memory dl.stm-example .stm-state .stm span{vertical-align:top;min-width:50px;display:inline-block;padding:3px 6px;border:1px solid #c5d2f7 !important;border-radius:2px;text-align:center;letter-spacing:.02em}#short-term-memory dl.stm-example .stm-state .stm span b{color:#8e44ad}#integrations table.checks i.fas.fa-check,#integrations table.checks i.fas.fa-check-double{color:#1abc9c}#integrations table.checks i.fas.fa-times{color:#e74c3c}#integrations .img-title{margin-top:25px;margin-bottom:10px}#installation i.fa-bomb{color:#c0392b;font-size:90%}#intent-matching code em{font-style:normal;color:#17b717;margin-left:.2rem}#intent-matching .fn{font-size:110%}#intent-matching div.syntaxhighlighter.idl{margin-top:0 !important}#intent-matching div.card-header{padding:0 20px !important}#intent-matching p.fn-desc em,#intent-matching p.fn-usage em{font-weight:600;font-style:normal;font-size:95%}#intent-matching .card-body{background-color:#efefef}#intent-matching span.fn-short-desc{float:right;color:#333}#intent-matching p.fn-usage{margin-bottom:5px !important}#community table.checks i.fas.fa-check,#community table.checks i.fas.fa-check-double{color:#1abc9c}#community table.checks i.fas.fa-times{color:#e74c3c}img.avatar-img{height:22px;margin-right:10px;vertical-align:middle;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%}#blog .img-title{margin-top:25px;margin-bottom:10px}.blog-header a,.blog-header a:hover,.blog-header a:active,.blog-header i.fas{color:#34495e}.blog-header .blog-author{display:inline;margin-right:10px}.blog-header .blog-date{margin-left:10px;display:inline}.blog-header .blog-avatar{display:inline}.blog-header .blog-title{font-size:32px;letter-spacing:.02em;font-weight:400}#resources .event-block{margin-bottom:25px;border-bottom:1px dotted #aaa;padding-bottom:25px}#resources .event-block:last-child{margin-bottom:75px;border-bottom:none}#resources .event-block img.event-logo{max-height:56px;margin-bottom:10px;vertical-align:middle}#resources .event-block .event-loc,#resources .event-block .event-date,#resources .event-block .event-link{font-size:15px;font-weight:400;letter-spacing:.02em;border-left:1px dotted #aaa;padding-left:10px}#resources .event-block .event-talk-name{margin-bottom:10px}#resources .event-block .event-talk-speaker{display:inline-flex}#resources .event-block .even-speakers-block{margin-top:5px;display:inline-flex}#resources .event-block .talk-speaker-name{font-weight:600}#resources .event-block .talk-speaker-title{font-size:85%;color:#aaa;letter-spacing:.02em}#resources .event-block .event-link{margin-bottom:15px}#resources .event-block img.event-avatar-img{height:36px;margin-right:10px;vertical-align:middle;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%}#resources .event-block .event-name{font-size:22px;letter-spacing:.02em;font-weight:400;margin-bottom:10px}#resources .event-block .event-name a{color:#4d394b}#resources .video-block{margin-bottom:50px}#resources .video-block:last-child{margin-bottom:75px}#resources .video-block iframe{min-width:560px;margin-right:20px}#resources .video-block .video-iframe{display:inline-flex}#resources .video-block .video-footer{font-size:90%}#resources .video-block .video-footer .sep{color:#cbcbcb}#resources .video-block .video-title{font-size:22px;letter-spacing:.02em;font-weight:400;margin-bottom:10px}#resources .video-block .video-title i.fas{color:#34495e}#resources .video-block .video-title a{color:#4d394b}#resources .video-block .video-description{font-size:16px;color:#999;font-weight:400;letter-spacing:.02em;margin-bottom:10px}#resources .blog-block{margin-bottom:50px}#resources .blog-block .blog-title{font-size:22px;letter-spacing:.02em;font-weight:400}#resources .blog-block .blog-title i.fas{color:#34495e}#resources .blog-block .blog-title a{color:#4d394b}#resources .blog-block .blog-title a.direct-link{font-weight:400;color:#aaa;letter-spacing:.1em;vertical-align:top;font-size:60%}#resources .blog-block .blog-excerpt{font-size:16px;color:#999;font-weight:400;letter-spacing:.04em;margin-bottom:20px}#resources .blog-block .blog-excerpt a{color:#666;font-weight:400}#resources .blog-block .blog-footer{letter-spacing:.02em}#resources .blog-block .blog-footer a,#resources .blog-block .blog-footer span{vertical-align:middle}#resources .blog-block .blog-footer .blog-author{margin-right:10px;display:inline-block}#resources .blog-block:last-child{margin-bottom:75px}#relnotes i.fa-bomb{color:#c0392b;font-size:90%}html{position:relative;min-height:100%;height:100%}body{background-color:#fff;color:#333;min-height:100%;height:100%}em.high{font-style:normal;padding:2px 4px 3px 4px;background-color:#d36da6;color:#fff;border-radius:1px}/*# sourceMappingURL=style.css.map */
\ No newline at end of file
diff --git a/assets/css/style.css.map b/assets/css/style.css.map
index 6fbbf0d..1d43583 100644
--- a/assets/css/style.css.map
+++ b/assets/css/style.css.map
@@ -1,56 +1 @@
-{
- "version": 3,
- "file": "style.css",
- "sources": [
- "style.scss",
- "_scss/fonts.scss",
- "_scss/colors.scss",
- "_scss/misc.scss",
- "_scss/header.scss",
- "_scss/footer.scss",
- "_scss/sh.scss",
- "_scss/index.scss",
- "_scss/404.scss",
- "_scss/buttons.scss",
- "_scss/download.scss",
- "_scss/example.scss",
- "_scss/three-cols.scss",
- "_scss/use-cases.scss",
- "_scss/server-and-probes.scss",
- "_scss/metrics-and-tracing.scss",
- "_scss/short-term-memory.scss",
- "_scss/integrations.scss",
- "_scss/installation.scss",
- "_scss/intent-matching.scss",
- "_scss/community.scss",
- "_scss/resources.scss",
- "_scss/relnotes.scss"
- ],
- "sourcesContent": [
- "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Constants.\n * ----------\n */\n$font-size: 14px;\n$default-font: \"Helvetica Neue\";\n\n@import 'fonts';\n@import 'colors';\n@import 'misc';\n@import 'header';\n@import 'footer';\n@import 'sh';\n@import 'index';\n@import '404';\n@import 'buttons';\n@import 'download';\n@import 'example';\n@import 'three-cols';\n@import 'use-cases';\n@import 'server-and-probes';\n@import 'metrics-and-tracing';\n@import 'short-term-memory';\n@import 'integrations';\n@import 'installation';\n@import 'intent-matching';\n@import 'community';\n@import 'resources';\n@import 'relnotes';\n\nhtml {\n position: relative;\n min-height: 100%;\n height: 100%;\n}\n\nbody {\n background-color: $background-color;\n color: $foreground-color;\n min-height: 100%;\n height: 100%;\n}\n\nem.high {\n font-style: normal;\n padding: 2px 4px 3px 4px;\n background-color: #d36da6;\n color: #fff;\n border-radius: 1px;\n}\n\n\n",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n@font-face {\r\n font-family: 'CanaroBlack';\r\n src: url('../../fonts/rene_bieder_-_canaro_black-webfont.eot');\r\n src: url('../../fonts/rene_bieder_-_canaro_black-webfont.eot?#iefix') format('embedded-opentype'),\r\n url('../../fonts/rene_bieder_-_canaro_black-webfont.woff') format('woff'),\r\n url('../../fonts/rene_bieder_-_canaro_black-webfont.ttf') format('truetype'),\r\n url('../../fonts/rene_bieder_-_canaro_black-webfont.svg#canaroblack') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'CanaroBold';\r\n src: url('../../fonts/rene_bieder_-_canaro_bold-webfont.eot');\r\n src: url('../../fonts/rene_bieder_-_canaro_bold-webfont.eot?#iefix') format('embedded-opentype'),\r\n url('../../fonts/rene_bieder_-_canaro_bold-webfont.woff') format('woff'),\r\n url('../../fonts/rene_bieder_-_canaro_bold-webfont.ttf') format('truetype'),\r\n url('../../fonts/rene_bieder_-_canaro_bold-webfont.svg#canaro_bookbold') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'CanaroBook';\r\n src: url('../../fonts/rene_bieder_-_canaro_book-webfont.eot');\r\n src: url('../../fonts/rene_bieder_-_canaro_book-webfont.eot?#iefix') format('embedded-opentype'),\r\n url('../../fonts/rene_bieder_-_canaro_book-webfont.woff') format('woff'),\r\n url('../../fonts/rene_bieder_-_canaro_book-webfont.ttf') format('truetype'),\r\n url('../../fonts/rene_bieder_-_canaro_book-webfont.svg#canarobook') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'CanaroExtraLight';\r\n src: url('../../fonts/rene_bieder_-_canaro_extralight-webfont.eot');\r\n src: url('../../fonts/rene_bieder_-_canaro_extralight-webfont.eot?#iefix') format('embedded-opentype'),\r\n url('../../fonts/rene_bieder_-_canaro_extralight-webfont.woff') format('woff'),\r\n url('../../fonts/rene_bieder_-_canaro_extralight-webfont.ttf') format('truetype'),\r\n url('../../fonts/rene_bieder_-_canaro_extralight-webfont.svg#canaroextralight') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'CanaroMedium';\r\n src: url('../../fonts/rene_bieder_-_canaro_medium-webfont.eot');\r\n src: url('../../fonts/rene_bieder_-_canaro_medium-webfont.eot?#iefix') format('embedded-opentype'),\r\n url('../../fonts/rene_bieder_-_canaro_medium-webfont.woff') format('woff'),\r\n url('../../fonts/rene_bieder_-_canaro_medium-webfont.ttf') format('truetype'),\r\n url('../../fonts/rene_bieder_-_canaro_medium-webfont.svg#canaromedium') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n}\r\n\r\n@font-face {\r\n font-family: 'StagSansLight';\r\n src: url('../../fonts/stagsans-light-webfont.eot');\r\n src: url('../../fonts/stagsans-light-webfont.eot?#iefix') format('embedded-opentype'),\r\n url('../../fonts/stagsans-light-webfont.woff') format('woff'),\r\n url('../../fonts/stagsans-light-webfont.ttf') format('truetype'),\r\n url('../../fonts/stagsans-light-webfont.svg#stag_sanslight') format('svg');\r\n font-weight: normal;\r\n font-style: normal;\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/*\r\n * Main colors.\r\n */\r\n$border-color: #ddd;\r\n$border-hor-color: #ddd;\r\n\r\n// From BS3.\r\n$brand-primary: #428bca;\r\n$brand-success: #5cb85c;\r\n$brand-info: #5bc0de;\r\n$brand-warning: #f0ad4e;\r\n$brand-danger: #d9534f;\r\n\r\n// Form control colors.\r\n$form-control-border-color: #eee;\r\n$form-control-addon-border-color: #e6e6e6;\r\n$form-control-addon-background-color: #e6e6e6;\r\n\r\n$color-table-sort: rgb(107, 164, 202);\r\n\r\n$color-slack: #4d394b;\r\n$color-slack2: #303e4c;\r\n$color-slack3: #544539;\r\n$color-slack4: #4d5250;\r\n$color-slack5: #187e82;\r\n$color-slack6: #f8f8fa;\r\n$color-border: #e7e7e7;\r\n$color-magnolia: #F9F7ED;\r\n$color-grey-blue: #6B7F99;\r\n\r\n$background-color: #fff;\r\n$foreground-color: #333;\r\n\r\n// Flat colors.\r\n$color-turquoise: #1abc9c;\r\n$color-emerald: #2ecc71;\r\n$color-river: #3498db;\r\n$color-amethyst: #9b59b6;\r\n$color-asphalt: #34495e;\r\n$color-sea: #16a085;\r\n$color-nephritis: #27ae60;\r\n$color-travis-passing: #00c800;\r\n$color-belize: #2980b9;\r\n$color-wisteria: #8e44ad;\r\n$color-midnight: #2C3E50;\r\n$color-sunflower: #ffd20f;\r\n$color-orange: #F39C12;\r\n$color-carrot: #E67E22;\r\n$color-pumpkin: #D35400;\r\n$color-alizarin: #E74C3C;\r\n$color-pomegranate: #C0392B;\r\n$color-cloud: #ECF0F1;\r\n$color-silver: #BDC3C7;\r\n$color-concrete: #95A5A6;\r\n$color-asbestos: #7F8C8D;\r\n$color-dream: #C5D5EE;\r\n$color-blue: #428BCA;\r\n$color-mustard: #CAC542;\r\n$color-pink: #CA428B;\r\n$color-beige:#CA8142;\r\n$color-beta: #FC664C;\r\n$color-peach: #ff6530;\r\n$color-blue2: #337ab7;\r\n$color-neon-green: #a4fb05;\r\n$color-blue3: rgb(224, 232, 251);\r\n\r\n// Table border colors.\r\n$tbl-border-color: #eee;\r\n$tbl-border-hor-color: #eee;\r\n$tbl-hdr-bgcolor: lighten($color-river, 40%);\r\n\r\n.color-blue3 { color: $color-blue3 }\r\n.color-turquoise { color: $color-turquoise }\r\n.color-emerald { color: $color-emerald }\r\n.color-river { color: $color-river }\r\n.color-amethyst { color: $color-amethyst }\r\n.color-asphalt { color: $color-asphalt }\r\n.color-sea { color: $color-sea }\r\n.color-nephritis { color: $color-nephritis }\r\n.color-belize { color: $color-belize }\r\n.color-wisteria { color: $color-wisteria }\r\n.color-midnight { color: $color-midnight }\r\n.color-sunflower { color: $color-sunflower }\r\n.color-orange { color: $color-orange }\r\n.color-carrot { color: $color-carrot }\r\n.color-pumpkin { color: $color-pumpkin }\r\n.color-alizarin { color: $color-alizarin }\r\n.color-pomegranate { color: $color-pomegranate }\r\n.color-cloud { color: $color-cloud }\r\n.color-silver { color: $color-silver }\r\n.color-concrete { color: $color-concrete }\r\n.color-asbestos { color: $color-asbestos }\r\n.color-dream { color: $color-dream }\r\n\r\n.color-danger { color: $brand-danger }\r\n.color-info { color: $brand-info }\r\n.color-success { color: $brand-success }\r\n.color-primary { color: $brand-primary }\r\n.color-warning { color: $brand-warning }\r\n\r\n.bg-danger { background-color: $brand-danger }\r\n.bg-info { background-color: $brand-info }\r\n.bg-success { background-color: $brand-success }\r\n.bg-primary { background-color: $brand-primary }\r\n.bg-warning { background-color: $brand-warning }\r\n\r\n.color-000 { color: #000 }\r\n.color-111 { color: #111 }\r\n.color-222 { color: #222 }\r\n.color-333 { color: #333 }\r\n.color-444 { color: #444 }\r\n.color-555 { color: #555 }\r\n.color-666 { color: #666 }\r\n.color-777 { color: #777 }\r\n.color-888 { color: #888 }\r\n.color-999 { color: #999 }\r\n.color-aaa { color: #aaa }\r\n.color-bbb { color: #bbb }\r\n.color-ccc { color: #ccc }\r\n.color-ddd { color: #ddd }\r\n.color-eee { color: #eee }\r\n.color-fff { color: #fff }\r\n\r\n.bg-turquoise { background-color: $color-turquoise }\r\n.bg-emerald { background-color: $color-emerald }\r\n.bg-river { background-color: $color-river }\r\n.bg-amethyst { background-color: $color-amethyst }\r\n.bg-asphalt { background-color: $color-asphalt }\r\n.bg-sea { background-color: $color-sea }\r\n.bg-nephritis { background-color: $color-nephritis }\r\n.bg-belize { background-color: $color-belize }\r\n.bg-wisteria { background-color: $color-wisteria }\r\n.bg-midnight { background-color: $color-midnight }\r\n.bg-sunflower { background-color: $color-sunflower }\r\n.bg-orange { background-color: $color-orange }\r\n.bg-carrot { background-color: $color-carrot }\r\n.bg-pumpkin { background-color: $color-pumpkin }\r\n.bg-alizarin { background-color: $color-alizarin }\r\n.bg-pomegranate { background-color: $color-pomegranate }\r\n.bg-cloud { background-color: $color-cloud }\r\n.bg-silver { background-color: $color-silver }\r\n.bg-concrete { background-color: $color-concrete }\r\n.bg-asbestos { background-color: $color-asbestos }\r\n\r\n",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n$min-width: 768px;\r\n\r\n/*\r\n * Miscellaneous CSS fixes.\r\n * ------------------------\r\n */\r\n\r\nhtml, body, div, span, applet, object, iframe,\r\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\r\na, abbr, acronym, address, big, cite, code,\r\ndel, dfn, em, img, ins, kbd, q, s, samp,\r\nsmall, strike, strong, sub, sup, tt, var,\r\nb, u, i, center,\r\ndl, dt, dd, ol, ul, li,\r\nfieldset, form, label, legend,\r\ntable, caption, tbody, tfoot, thead, tr, th, td,\r\narticle, aside, canvas, details, figcaption, figure,\r\nfooter, header, hgroup, menu, nav, section, summary,\r\ntime, mark, audio, video {\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\nbody {\r\n min-width: $min-width;\r\n font-family: \"Helvetica Neue\", Helvetica, sans-serif;\r\n}\r\n\r\n.amp {\r\n font-family: 'Libre Baskerville', Helvetica, sans-serif !important;\r\n font-weight: 400 !important;\r\n font-style: italic;\r\n font-size: 85%;\r\n}\r\n\r\nlabel {\r\n font-weight: 200;\r\n}\r\n\r\n.fill {\r\n min-height: 100%;\r\n height: 100%;\r\n}\r\n\r\n.clear-fix {\r\n &:before,\r\n &:after {\r\n content: \" \";\r\n display: table;\r\n }\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n\r\n// Fix margins on fluid row.\r\n.row-fluid [class*=\"span\"] {\r\n margin-left: 0;\r\n}\r\n\r\n// Remove blue outline in Chrome when pressing buttons and links.\r\n.modal-open .modal, .btn:focus, a:focus {\r\n outline: none !important;\r\n}\r\n\r\n// Make all FA icons in dropdown menus of slack color.\r\nul.dropdown-menu > li > a > i.fa {\r\n color: $color-slack;\r\n}\r\n\r\n@mixin color-badge($fg, $bg) {\r\n color: $fg;\r\n background-color: lighten($bg, 35%);\r\n border: 1px solid $bg;\r\n letter-spacing: 0.03em;\r\n padding: 4px 6px;\r\n font-weight: 400;\r\n border-radius: 2px;\r\n}\r\n\r\n.badge-turquoise { @include color-badge(#fff, $color-turquoise); }\r\n.badge-emerald { @include color-badge(#fff, $color-emerald); }\r\n.badge-amethyst { @include color-badge($color-slack, $color-amethyst); }\r\n.badge-asphalt { @include color-badge(#fff, $color-asphalt); }\r\n.badge-sea { @include color-badge(#fff, $color-sea); }\r\n.badge-nephritis { @include color-badge(#fff, $color-nephritis); }\r\n.badge-belize { @include color-badge(#fff, $color-belize); }\r\n.badge-wisteria { @include color-badge(#fff, $color-wisteria); }\r\n.badge-midnight { @include color-badge(#fff, $color-midnight); }\r\n.badge-sunflower { @include color-badge($color-slack, $color-sunflower); }\r\n.badge-orange { @include color-badge(#fff, $color-orange); }\r\n.badge-carrot { @include color-badge(#fff, $color-carrot); }\r\n.badge-pumpkin { @include color-badge(#fff, $color-pumpkin); }\r\n.badge-alizarin { @include color-badge(#fff, $color-alizarin); }\r\n.badge-pomegranate { @include color-badge(#fff, $color-pomegranate); }\r\n.badge-concrete { @include color-badge(#fff, $color-concrete); }\r\n.badge-asbestos { @include color-badge(#fff, $color-asbestos); }\r\n\r\n.badge-river {\r\n @include color-badge($color-grey-blue, $color-river);\r\n\r\n // Custom overrides for better visibility.\r\n border-color: lighten($color-river, 25%);\r\n}\r\n\r\n// BS3 compatible.\r\n.badge-red { @include color-badge($background-color, $brand-danger); }\r\n.badge-blue { @include color-badge($background-color, $brand-primary); }\r\n.badge-green { @include color-badge($background-color, $brand-success); }\r\n.badge-yellow { @include color-badge($foreground-color, $color-sunflower); }\r\n\r\n// Border-less table.\r\n.table-no-border > thead > tr> th,\r\n.table-no-border > tbody > tr> th,\r\n.table-no-border > tfoot > tr> th,\r\n.table-no-border > thead > tr> td,\r\n.table-no-border > tbody > tr> td,\r\n.table-no-border > tfoot > tr> td {\r\n border-top: none;\r\n}\r\n\r\n.table-width-auto {\r\n width: auto !important;\r\n}\r\n\r\n/*\r\n * Cross-browser support shortcuts.\r\n */\r\n@mixin x-browser-filter($val) {\r\n -webkit-filter: $val;\r\n -moz-filter: $val;\r\n -o-filter: $val;\r\n -ms-filter: $val;\r\n filter: $val;\r\n}\r\n\r\n@mixin x-browser-border-radius($val) {\r\n -webkit-border-radius: $val;\r\n -moz-border-radius: $val;\r\n border-radius: $val;\r\n}\r\n\r\n@mixin x-browser-transform($val) {\r\n -webkit-transform: rotate($val);\r\n -ms-transform: rotate($val);\r\n -o-transform: rotate($val);\r\n -moz-transform: rotate($val);\r\n transform: rotate($val);\r\n}\r\n\r\n@mixin x-browser-animation($val) {\r\n -webkit-animation: $val;\r\n -moz-animation: $val;\r\n -o-animation: $val;\r\n animation: $val;\r\n}\r\n\r\n@mixin x-browser-background-clip($val) {\r\n -webkit-background-clip: $val;\r\n -moz-background-clip: $val;\r\n -o-background-clip: $val;\r\n -ms-background-clip: $val;\r\n background-clip: $val;\r\n}\r\n\r\n@mixin x-browser-fill-color($val) {\r\n -webkit-text-fill-color: $val;\r\n -moz-text-fill-color: $val;\r\n -o-text-fill-color: $val;\r\n -ms-text-fill-color: $val;\r\n text-fill-color: $val;\r\n}\r\n\r\n@mixin x-browser-box-shadow($val) {\r\n -webkit-box-shadow: $val;\r\n -moz-box-shadow: $val;\r\n -o-box-shadow: $val;\r\n box-shadow: $val;\r\n}\r\n\r\n.btn-group.open .dropdown-toggle,\r\n.btn-group.open .dropdown-toggle:hover,\r\n.btn-group.open .dropdown-toggle:visited,\r\n.btn-group.open .dropdown-toggle:active {\r\n @include x-browser-box-shadow(none);\r\n}\r\n\r\n.btn,\r\n.btn:active,\r\n.btn.active,\r\n.btn:hover {\r\n @include x-browser-box-shadow(none);\r\n}\r\n\r\n.btn-default,\r\n.btn-default:active,\r\n.btn-default.active,\r\n.btn-default:hover {\r\n @include x-browser-box-shadow(none);\r\n}\r\n\r\n.btn-sm, .btn {\r\n border-radius: 2px;\r\n}\r\n\r\n.btn-link:hover, .btn-link:focus, a:hover, a:focus {\r\n text-decoration: inherit;\r\n}\r\n\r\n$bq-info-bg-color: #f4f8fa;\r\n$bq-info-border-color: #5bc0de;\r\n\r\n$bq-warn-bg-color: #faf8f0;\r\n$bq-warn-border-color: $color-sunflower;\r\n\r\n$bq-error-bg-color: #eed3d7;\r\n$bq-error-border-color: #fdf7f7;\r\n\r\n$bq-success-bg-color: #F5FDF2;\r\n$bq-success-border-color: $brand-success;\r\n\r\n.bq {\r\n &.info {\r\n color: $color-grey-blue;\r\n background-color: $bq-info-bg-color;\r\n border-color: darken($bq-info-bg-color, 5%);\r\n border-left-color: $bq-info-border-color;\r\n }\r\n\r\n &.warn {\r\n color: $color-slack;\r\n background-color: $bq-warn-bg-color;\r\n border-color: darken($bq-warn-bg-color, 5%);\r\n border-left-color: $bq-warn-border-color;\r\n }\r\n\r\n &.error {\r\n background-color: $bq-error-bg-color;\r\n border-color: darken($bq-error-bg-color, 5%);\r\n border-left-color: $bq-error-border-color;\r\n }\r\n\r\n &.success {\r\n background-color: $bq-success-bg-color;\r\n border-color: darken($bq-success-bg-color, 5%);\r\n border-left-color: $bq-success-border-color;\r\n }\r\n\r\n margin: 20px 0;\r\n padding: 15px 20px;\r\n border-left: 3px solid #eee;\r\n border-radius: 1px 6px 6px 1px;\r\n\r\n & > p,\r\n & > ul {\r\n margin: 0;\r\n }\r\n\r\n & > p:not(:nth-child(1)) {\r\n margin-top: 10px;\r\n }\r\n\r\n & > p {\r\n letter-spacing: 0.05em;\r\n }\r\n\r\n i.fas.fa-lightbulb {\r\n padding-right: 5px;\r\n color: $color-sunflower;\r\n font-size: 110%;\r\n }\r\n\r\n div.bq-idea-container {\r\n display: inline-flex;\r\n\r\n div:nth-child(1) {\r\n margin-right: 7px;\r\n }\r\n }\r\n}\r\n\r\n.gradient-table {\r\n margin-top: 0;\r\n border-collapse: collapse;\r\n overflow: auto;\r\n margin-bottom: 1rem;\r\n\r\n & > thead {\r\n background: linear-gradient(141deg, #6980fa 0%, #2cb5e8 51%, #4298fc 75%) fixed;\r\n color: #fff;\r\n }\r\n\r\n & > thead > tr > th {\r\n text-align: left;\r\n border-bottom: 1px solid #eee;\r\n }\r\n\r\n & > thead > tr > th,\r\n & > tbody > tr > th,\r\n & > tfoot > tr > th {\r\n padding: 8px;\r\n font-size: 15px;\r\n font-weight: 500;\r\n color: #fff;\r\n }\r\n\r\n & > thead > tr > td,\r\n & > tbody > tr > td,\r\n & > tfoot > tr > td {\r\n padding: 8px;\r\n letter-spacing: 0.02em;\r\n font-weight: 400;\r\n border-bottom: 1px solid #eee;\r\n vertical-align: top;\r\n }\r\n\r\n & > tbody > tr {\r\n &:hover {\r\n background-color: #fafafa;\r\n }\r\n\r\n td:last-child {\r\n border-right: 1px solid #eee;\r\n }\r\n\r\n td:first-child {\r\n border-left: 1px solid #eee;\r\n }\r\n }\r\n}\r\n\r\n.recover-bottom-margin {\r\n margin-bottom: 16px;\r\n}\r\n\r\n.top-link {\r\n font-size: 60%;\r\n color: $color-turquoise;\r\n}\r\n\r\n.max-width {\r\n width: 100%;\r\n}\r\n\r\n.not-code {}\r\na[target=scaladoc]:not(.not-code) {\r\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\r\n word-break: keep-all;\r\n white-space: nowrap !important;\r\n}\r\n\r\npre.console {\r\n border: 1px solid #dedede;\r\n border-radius: 6px;\r\n padding: 25px 30px 0 30px;\r\n}\r\n\r\ncode {\r\n white-space: nowrap !important;\r\n color: #C0392B;\r\n\r\n font-size: 100% !important;\r\n\r\n i {\r\n font-style: normal;\r\n border: 1px solid $color-sunflower;\r\n padding: 0 2px;\r\n color: #000;\r\n background: $color-sunflower;\r\n }\r\n\r\n b {\r\n color: $color-wisteria;\r\n }\r\n}\r\n\r\n.side-nav {\r\n a.active {\r\n border-right: 3px solid $color-orange !important;\r\n color: #369 !important;\r\n }\r\n}\r\n\r\n.complexity-one-star {\r\n i {\r\n color: $color-nephritis;\r\n }\r\n}\r\n.complexity-two-star {\r\n i {\r\n color: $color-river;\r\n }\r\n}\r\n\r\n.complexity-three-star {\r\n i {\r\n color: #000;\r\n }\r\n}\r\n\r\n.img-fluid {\r\n max-width: 800px !important;\r\n width: 100% !important;\r\n border-radius: 6px;\r\n}\r\n\r\n.non-fluid-img {\r\n border-radius: 6px;\r\n}\r\n\r\n.keyboard {\r\n padding: 1px 8px;\r\n background-color: #2c2c29;\r\n color: #efefef;\r\n border-radius: 4px;\r\n display: inline-block;\r\n font-family: monospace;\r\n font-weight: 600;\r\n}\r\n\r\n.img-fluid-no-border {\r\n max-width: 900px !important;\r\n border-radius: 6px;\r\n padding: 0 !important;\r\n}\r\n\r\n.latest {\r\n font-size: 11px;\r\n background-color: $color-pumpkin;\r\n color: #fff;\r\n padding: 4px 6px;\r\n border-radius: 4px;\r\n font-weight: 600;\r\n margin-left: 5px;\r\n}\r\ni.fa.output {\r\n margin-left: 5px;\r\n font-size: 80%;\r\n}\r\n\r\n.card {\r\n border-color: $color-blue3;\r\n\r\n .card-header {\r\n background-color: #f4f7ff;\r\n border-bottom-color: $color-blue3;\r\n\r\n button.btn {\r\n padding-left: 0;\r\n }\r\n }\r\n}\r\n\r\n.nav-tabs {\r\n border-bottom-color: $color-blue3 !important;\r\n\r\n .nav-link.active {\r\n border-color: $color-blue3 $color-blue3 #fff !important;\r\n }\r\n .nav-link {\r\n border-color: #fff #fff $color-blue3 !important;\r\n }\r\n}\r\n\r\ncode.script {\r\n border: 1px solid $color-blue3;\r\n padding: 1px 6px 2px 6px;\r\n border-radius: 4px;\r\n color: #fb51b1;\r\n background-color: #f3f9ff;\r\n}\r\n\r\n.scala-16 {\r\n display: inline-flex;\r\n width: 16px;\r\n height: 16px;\r\n vertical-align: sub;\r\n background-image: url(\"data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iIzQ0NCIgZD0iTTguNTczIDcuMzA3czE0Ljg1My0xLjQ4NSAxNC44NTMtMy45NjF2NS45NDFzMCAyLjQ3Ni0xNC44NTMgMy45NjF6bS4wNjMgNy45MjJzMTQuODUzLTEuNDg1IDE0Ljg1My0zLjk2MXY1Ljk0MXMwIDIuNDc2LTE0Ljg1MyAzLjk2MXptMCA3LjkyMnMxNC44NTMtMS40ODUgMTQuODUzLTMuOTYxdjUuOTQxczAgMi40NzYtMTQuODUzIDMuOTYxeiIvPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2NhbGEiIGRjOmRlc2NyaXB0aW9uPSJzY2FsYSIgZGM6cHVibGlzaGVyPSJJY29uc2NvdXQiIGRjOmRhdGU9IjIwMTctMDktMjQiIGRjOmZvcm1hdD0iaW1hZ2Uvc3ZnK3htbCIgZGM6bGFuZ3VhZ2U9ImVuIj48ZGM6Y3JlYXRvcj48cmRmOkJhZz48cmRmOmxpPlZvcmlsbGF6PC9yZGY6bGk+PC9yZGY6QmFnPjwvZGM6Y3JlYXRvcj48L3JkZjpEZXNjcmlwdGlvbj48L3JkZjpSREY+PC9tZXRhZGF0YT48L3N2Zz4=\");\r\n background-size: contain;\r\n}\r\n\r\nul.fixed {\r\n margin-bottom: 1rem;\r\n}\r\n\r\ni.fa-jira {\r\n color: #2584ff;\r\n}\r\ni.fa-gitter {\r\n color: #f00160;\r\n}\r\ni.fa-youtube {\r\n color: #f00;\r\n}\r\ni.fa-calendar-alt {\r\n color: $color-pumpkin;\r\n}\r\ni.fa-twitter {\r\n color: #00a2f5;\r\n}\r\ni.fa-stack-overflow {\r\n color: #f58025;\r\n}\r\n",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#top-header {\r\n display: flex;\r\n background-image: linear-gradient(141deg, #6980fa 0%, #2cb5e8 51%, #4298fc 75%);\r\n\r\n .nav-item > .nav-link {\r\n color: #fff;\r\n }\r\n \r\n .navbar-toggler {\r\n border-color: #fff;\r\n background: #fff;\r\n }\r\n\r\n i.fa-download {\r\n color: $color-neon-green;\r\n font-size: 80%;\r\n }\r\n\r\n .fork-link img {\r\n vertical-align: sub;\r\n }\r\n}\r\n\r\n.navbar-aligned {\r\n margin: 12px 0 72px /* 60 + 12 */ 12px;\r\n\r\n .breadcrumb {\r\n background-color: transparent;\r\n font-size: 90%;\r\n color: $color-asbestos;\r\n padding: 0;\r\n\r\n a {\r\n color: $color-river;\r\n }\r\n }\r\n\r\n .breadcrumb > li + li:before {\r\n content: \"\\f105\";\r\n padding: 0 5px;\r\n color: $color-asbestos;\r\n font-family: \"Font Awesome\\ 5 Free\", serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n text-decoration: inherit;\r\n }\r\n}\r\n\r\n.page-title, .page-title span {\r\n font-weight: 700;\r\n color: $color-slack;\r\n margin-bottom: 30px;\r\n\r\n & > i.fas {\r\n //margin-left: -7px;\r\n text-align: left;\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n// Footer styling.\r\n#footer {\r\n position: fixed;\r\n bottom: 0;\r\n width: 100%;\r\n height: 50px; // Set the fixed height of the footer here.\r\n background-image: linear-gradient(to bottom, #fafafa 0%, #ddd 100%);\r\n white-space: nowrap;\r\n\r\n & > .container {\r\n padding: 8px 15px 0 15px;\r\n font-size: 14px;\r\n\r\n a.btn-link {\r\n vertical-align: baseline;\r\n font-size: 14px;\r\n margin: 0;\r\n padding: 6px 0;\r\n }\r\n\r\n a {\r\n color: $color-blue2;\r\n\r\n code {\r\n background-color: #e47193;\r\n color: #fff;\r\n padding: 2px 4px;\r\n -webkit-border-radius: 2px;\r\n -moz-border-radius: 2px;\r\n border-radius: 2px;\r\n font-weight: 700;\r\n }\r\n }\r\n\r\n .sep {\r\n color: #cbcbcb;\r\n }\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n.syntaxhighlighter {\r\n padding: 15px 0;\r\n font-size: 95% !important;\r\n overflow-y: hidden !important;\r\n overflow-x: auto !important;\r\n border-radius: 6px !important;\r\n\r\n .toolbar {\r\n display: none;\r\n }\r\n}\r\n\r\n.syntaxhighlighter table td.gutter .line {\r\n text-align: right !important;\r\n padding: 1px 0.5em 1px 1em !important;\r\n}\r\n.syntaxhighlighter table td.code .line {\r\n padding: 1px 1em !important;\r\n}\r\n\r\n.syntaxhighlighter a,\r\n.syntaxhighlighter div,\r\n.syntaxhighlighter code,\r\n.syntaxhighlighter table,\r\n.syntaxhighlighter table td,\r\n.syntaxhighlighter table tr,\r\n.syntaxhighlighter table tbody,\r\n.syntaxhighlighter table thead,\r\n.syntaxhighlighter table caption,\r\n.syntaxhighlighter textarea {\r\n vertical-align: bottom !important;\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#banner-box {\r\n background: url(../../images/bg-mb-wrapper2.png) bottom center repeat-x #5483dd;\r\n\r\n #inner-banner-box {\r\n position: relative;\r\n z-index: 9;\r\n min-height: 300px;\r\n max-height: 300px;\r\n background: url(../../images/bg-main-box.jpg) bottom center no-repeat;\r\n\r\n #banner {\r\n min-height: 300px;\r\n padding: 35px 0 0 40px;\r\n\r\n a#get-started-btn {\r\n border-color: #c17dac !important;\r\n background-color: #fff !important;\r\n border-radius: 4px;\r\n color: #f67484 !important;\r\n font-weight: 500;\r\n margin-left: 2px;\r\n }\r\n\r\n #nat-lang-itf {\r\n color: #fff;\r\n font-size: 60px;\r\n letter-spacing: 0.02em;\r\n font-weight: 500;\r\n font-family: CanaroBold, Helvetica, sans-serif;\r\n }\r\n\r\n #banner-sub-title {\r\n color: #fff;\r\n font-size: 24px;\r\n font-weight: 400;\r\n margin-top: -5px;\r\n letter-spacing: 0.02em;\r\n }\r\n }\r\n }\r\n}\r\n\r\n@media (max-width: 1000px) {\r\n #banner-box #inner-banner-box #banner #nat-lang-itf {\r\n font-size: 45px;\r\n }\r\n #banner-box #inner-banner-box #banner {\r\n padding-top: 50px;\r\n }\r\n}\r\n\r\n@media (max-width: $min-width) {\r\n #banner-box #inner-banner-box #banner #nat-lang-itf {\r\n font-size: 35px;\r\n }\r\n #banner-box #inner-banner-box #banner #sub-title {\r\n font-size: 18px;\r\n }\r\n #banner-box #inner-banner-box #banner {\r\n padding-top: 70px;\r\n }\r\n}\r\n\r\n.bottom-arrow {\r\n position: relative;\r\n\r\n &:after {\r\n position: absolute;\r\n bottom: -16px;\r\n left: 50%;\r\n z-index: 10;\r\n margin-left: -23px;\r\n width: 0;\r\n height: 0;\r\n border-top: 16px solid;\r\n border-right: 23px solid transparent;\r\n border-left: 23px solid transparent;\r\n content: \"\";\r\n -moz-transform: scale(.9999);\r\n }\r\n}\r\n\r\n.main-section {\r\n padding: 0 30px 40px 30px;\r\n letter-spacing: 0.02em;\r\n\r\n .section-title {\r\n margin: 40px 0 15px 0;\r\n font-size: 35px;\r\n letter-spacing: 0.02em;\r\n font-weight: 200;\r\n display: block;\r\n color: $color-slack2;\r\n\r\n span {\r\n font-weight: 700;\r\n color: $color-slack;\r\n }\r\n }\r\n\r\n .sub-section-title {\r\n margin: 0 0 10px 0;\r\n font-size: 25px;\r\n letter-spacing: 0.02em;\r\n font-weight: 200;\r\n display: block;\r\n\r\n span {\r\n font-weight: 500;\r\n }\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 150px;\r\n }\r\n\r\n #lang-logos, #integration-logos {\r\n display: inline-block;\r\n\r\n & > a {\r\n margin: 0 10px 0 0;\r\n }\r\n }\r\n}\r\n\r\n#banner-box:after {\r\n border-top-color: #ed8964;\r\n}\r\n\r\n#about-nlpcraft {\r\n background-color: #fff;\r\n\r\n &:after {\r\n border-top-color: #fff;\r\n }\r\n\r\n img#fig1 {\r\n padding: 50px;\r\n }\r\n}\r\n\r\n#features {\r\n background-color: #fff; //rgba(238,244,246,84);\r\n\r\n &:after {\r\n border-top-color: #fff; //rgba(238,244,246,84);\r\n }\r\n}\r\n\r\n.learn-more {\r\n margin-top: 10px;\r\n}\r\n\r\n.read-more {\r\n margin-top: 30px;\r\n\r\n // Reset to the default link colors.\r\n a, a:hover, a:active, i.fas {\r\n color: rgb(0, 123, 255) !important;\r\n }\r\n}\r\n\r\n#about {\r\n padding-bottom: 100px;\r\n background-color: #fff;\r\n\r\n &:after {\r\n border-top-color: transparent;\r\n }\r\n\r\n a, a:hover, a:active {\r\n color: $color-blue2;\r\n }\r\n\r\n .about-project-name {\r\n font-weight: 700;\r\n font-size: 150%;\r\n margin-bottom: 10px;\r\n display: inline-block;\r\n }\r\n}\r\n\r\n#home-events {\r\n background-color: #eafaff;\r\n\r\n &:after {\r\n border-top-color: #eafaff;\r\n }\r\n\r\n #event-container {\r\n margin-bottom: 20px;\r\n\r\n a, a:hover, a:active, i.fas {\r\n color: $color-asphalt;\r\n }\r\n\r\n img.event-logo {\r\n max-height: 56px;\r\n margin-bottom: 10px;\r\n vertical-align: middle;\r\n }\r\n\r\n .event-loc,\r\n .event-date,\r\n .event-link {\r\n font-size: 15px;\r\n font-weight: 400;\r\n letter-spacing: 0.02em;\r\n border-left: 1px dotted #aaa;\r\n padding-left: 10px;\r\n }\r\n\r\n .event-talk-name {\r\n margin-bottom: 10px;\r\n }\r\n\r\n .event-link {\r\n margin-bottom: 15px;\r\n }\r\n\r\n img.event-avatar-img {\r\n height: 36px;\r\n margin-right: 10px;\r\n vertical-align: middle;\r\n -webkit-border-radius: 100%;\r\n -moz-border-radius: 100%;\r\n border-radius: 100%;\r\n }\r\n\r\n .event-name {\r\n font-size: 25px;\r\n letter-spacing: 0.02em;\r\n font-weight: 200;\r\n\r\n a {\r\n color: $color-slack;\r\n }\r\n\r\n margin-bottom: 10px;\r\n }\r\n }\r\n}\r\n\r\n#news {\r\n background-color: $color-magnolia;\r\n\r\n &:after {\r\n border-top-color: $color-magnolia;\r\n }\r\n\r\n #news-container {\r\n margin-bottom: 20px;\r\n\r\n a, a:hover, a:active, i.fas {\r\n color: $color-asphalt;\r\n }\r\n\r\n .news-title {\r\n font-size: 22px;\r\n letter-spacing: 0.02em;\r\n font-weight: 400;\r\n\r\n i.fas {\r\n color: $color-asphalt;\r\n }\r\n }\r\n\r\n .news-excerpt {\r\n font-size: 15px;\r\n color: #666;\r\n font-weight: 200;\r\n letter-spacing: 0.05em;\r\n margin-bottom: 20px;\r\n }\r\n\r\n .news-footer {\r\n letter-spacing: 0.02em;\r\n\r\n img {\r\n height: 24px;\r\n margin-right: 5px;\r\n vertical-align: middle;\r\n }\r\n\r\n img.avatar-img {\r\n -webkit-border-radius: 100%;\r\n -moz-border-radius: 100%;\r\n border-radius: 100%;\r\n }\r\n\r\n a, span {\r\n vertical-align: middle;\r\n }\r\n\r\n a.news-author {\r\n margin-right: 15px;\r\n display: inline-block;\r\n }\r\n }\r\n }\r\n}\r\n\r\ndiv.quick-link {\r\n display: block;\r\n padding: 8px 0 0 15px;\r\n margin: 0 10px 20px 0;\r\n height: 50px;\r\n min-width: 350px;\r\n max-width: 430px;\r\n border: 1px solid #e0ded2;\r\n -webkit-border-radius: 4px;\r\n -moz-border-radius: 4px;\r\n border-radius: 4px;\r\n background-color: $color-magnolia;\r\n white-space: nowrap;\r\n\r\n .sep {\r\n color: #cecab2;\r\n }\r\n\r\n img.quick-link-img {\r\n height: 32px;\r\n margin-right: 10px;\r\n vertical-align: middle;\r\n }\r\n\r\n span {\r\n vertical-align: middle;\r\n display: inline;\r\n }\r\n\r\n i.fas {\r\n vertical-align: middle;\r\n }\r\n\r\n a {\r\n color: $color-asphalt;\r\n }\r\n\r\n div.gh-btn {\r\n vertical-align: bottom;\r\n display: inline-block;\r\n margin-right: 10px;\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n.page-not-found {\r\n margin: 15% auto;\r\n max-width: 600px;\r\n text-align: center;\r\n\r\n h1 {\r\n margin: 30px 0;\r\n font-size: 4em;\r\n line-height: 1;\r\n letter-spacing: -1px;\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n@mixin custom-button($fg, $bg) {\r\n border-color: $bg !important;\r\n background-color: $bg !important;\r\n color: $fg !important;\r\n font-weight: 400;\r\n\r\n &:focus {\r\n border-color: $bg !important;\r\n background-color: $bg !important;\r\n color: $fg !important;\r\n }\r\n\r\n &:hover {\r\n color: $fg !important;\r\n border-color: $bg !important;\r\n background-color: darken($bg, 3%) !important;\r\n }\r\n}\r\n\r\n.btn {\r\n letter-spacing: 0.02em;\r\n box-shadow: none !important;\r\n}\r\n\r\n.btn-default:hover, .btn-default:active, .btn-default:visited {\r\n background-color: #efefef !important;\r\n border-color: #ddd !important;\r\n}\r\n\r\n.btn-creme { @include custom-button(#8a6d3b, #fcf8e3) }\r\n.btn-beta { @include custom-button(#fff, $color-beta) }\r\n.btn-black { @include custom-button(#fff, #555) }\r\n.btn-white { @include custom-button(#333, #fff) }\r\n.btn-milk { @include custom-button(#333, #f9f9f3) }\r\n.btn-turquoise { @include custom-button(#fff, $color-turquoise) }\r\n.btn-emerald { @include custom-button(#fff, $color-emerald) }\r\n.btn-river { @include custom-button(#fff, $color-river) }\r\n.btn-amethyst { @include custom-button(#fff, $color-amethyst) }\r\n.btn-asphalt { @include custom-button(#fff, $color-asphalt) }\r\n.btn-sea { @include custom-button(#fff, $color-sea) }\r\n.btn-nephritis { @include custom-button(#fff, $color-nephritis) }\r\n.btn-belize { @include custom-button(#fff, $color-belize) }\r\n.btn-wisteria { @include custom-button(#fff, $color-wisteria) }\r\n.btn-midnight { @include custom-button(#fff, $color-midnight) }\r\n.btn-orange { @include custom-button(#fff, $color-orange) }\r\n.btn-carrot { @include custom-button(#fff, $color-carrot) }\r\n.btn-pumpkin { @include custom-button(#fff, $color-pumpkin) }\r\n.btn-alizarin { @include custom-button(#fff, $color-alizarin) }\r\n.btn-pomegranate { @include custom-button(#fff, $color-pomegranate) }\r\n.btn-cloud { @include custom-button($color-grey-blue, $color-cloud) }\r\n.btn-white-river { @include custom-button($color-river, #fff) }\r\n.btn-silver { @include custom-button(#fff, $color-silver) }\r\n.btn-concrete { @include custom-button(#fff, $color-concrete) }\r\n.btn-asbestos { @include custom-button(#fff, $color-asbestos) }\r\n.btn-pink { @include custom-button(#fff, $color-pink) }\r\n.btn-mustard { @include custom-button(#000, $color-mustard) }\r\n.btn-mustard2 { @include custom-button(#fff, $color-mustard) }\r\n.btn-blue { @include custom-button(#fff, $color-blue) }\r\n.btn-slack { @include custom-button(#fff, $color-slack) }\r\n.btn-slack2 { @include custom-button(#fff, $color-slack2) }\r\n.btn-slack3 { @include custom-button(#fff, $color-slack3) }\r\n.btn-slack4 { @include custom-button(#fff, $color-slack4) }\r\n.btn-slack5 { @include custom-button(#fff, $color-slack5) }\r\n.btn-primary { @include custom-button(#fff, $brand-primary) }\r\n.btn-danger { @include custom-button(#fff, $brand-danger) }\r\n.btn-beta { @include custom-button(#fff, $color-beta) }\r\n.btn-success { @include custom-button(#fff, $brand-success) }\r\n.btn-beige { @include custom-button(#fff, $color-beige) }\r\n.btn-sunflower { @include custom-button($color-slack, $color-sunflower) }\r\n.btn-peach { @include custom-button(#fff, $color-peach) }\r\n.btn-sunflower2 { @include custom-button($color-slack2, $color-sunflower) }\r\n\r\n.one-letter-btn-xs {\r\n padding: 1px 7px;\r\n}\r\n\r\n",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#downloads {\r\n .download-sigs > a {\r\n border: 1px solid #bfe1ff;\r\n padding: 1px 2px;\r\n }\r\n\r\n i.fa-bomb {\r\n color: $color-pomegranate;\r\n font-size: 90%;\r\n }\r\n}\r\n",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n.example {\r\n span.ex-src, span.ex-review-all {\r\n margin-left: 20px;\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n.first-column {\r\n ul.side-nav {\r\n list-style: none;\r\n margin: 0 0 20px 0;\r\n padding: 0;\r\n\r\n li.side-nav-title {\r\n margin-top: 5px;\r\n display: block;\r\n font-size: 1.1rem;\r\n color: #303e4c;\r\n font-weight: 500;\r\n\r\n &:not(:first-child) {\r\n margin-top: 25px !important;\r\n }\r\n }\r\n\r\n li:not(.side-nav-title) {\r\n margin-left: 10px;\r\n }\r\n\r\n li {\r\n padding: 3px 10px 3px 0;\r\n display: block;\r\n text-align: left;\r\n\r\n a {\r\n color: #999;\r\n text-align: left;\r\n width: 100%;\r\n padding-right: 20px;\r\n border-right: 1px solid white;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n text-decoration: none;\r\n color: #369;\r\n border-right: 3px solid $color-beta;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.second-column {\r\n padding-right: 40px;\r\n \r\n section {\r\n .section-title {\r\n color: $color-slack2;\r\n font-weight: 700;\r\n margin-top: 0;\r\n display: inline-block;\r\n margin-bottom: 10px;\r\n font-size: 150%;\r\n }\r\n\r\n .section-sub-title {\r\n color: $color-slack2;\r\n font-weight: 700;\r\n margin-top: 25px;\r\n display: block;\r\n font-size: 110%;\r\n margin-bottom: 5px;\r\n }\r\n\r\n figure {\r\n margin: 15px 0;\r\n\r\n img {\r\n display: block;\r\n border: 1px solid #dfdfdf;\r\n border-radius: 6px;\r\n padding: 30px;\r\n }\r\n\r\n figcaption {\r\n font-size: 80%;\r\n text-align: left;\r\n margin-top: 5px;\r\n }\r\n }\r\n\r\n figure.alt {\r\n margin: 15px 0;\r\n\r\n img {\r\n display: block;\r\n border-radius: 6px;\r\n padding: 0;\r\n border: none;\r\n }\r\n\r\n figcaption {\r\n font-size: 80%;\r\n text-align: left;\r\n margin-top: 5px;\r\n }\r\n }\r\n\r\n dl {\r\n margin-top: 10px;\r\n margin-left: 20px;\r\n\r\n dd {\r\n margin-bottom: 10px;\r\n margin-left: 20px;\r\n }\r\n }\r\n\r\n div.bq {\r\n\r\n h4 {\r\n margin: 0 0 10px 0 !important;\r\n }\r\n\r\n p, li {\r\n width: 100% !important;\r\n }\r\n }\r\n\r\n margin-bottom: 30px;\r\n\r\n p, li {\r\n letter-spacing: 0.02em;\r\n }\r\n }\r\n \r\n section:last-child {\r\n margin-bottom: 60px;\r\n }\r\n}\r\n\r\n.third-column {\r\n ul.side-nav {\r\n list-style: none;\r\n margin: 0 0 20px 0;\r\n padding: 0 0 0 10px;\r\n border-left: 1px solid #dfdfdf;\r\n\r\n li.side-nav-title {\r\n margin-top: 5px;\r\n display: block;\r\n font-size: 1.1rem;\r\n color: #303e4c;\r\n font-weight: 500;\r\n\r\n &:not(:first-child) {\r\n margin-top: 25px !important;\r\n }\r\n }\r\n\r\n li:not(.side-nav-title) {\r\n margin-left: 10px;\r\n }\r\n\r\n li {\r\n padding: 3px 10px 3px 0;\r\n display: block;\r\n text-align: left;\r\n\r\n a {\r\n color: #999;\r\n text-align: left;\r\n width: 100%;\r\n padding-right: 20px;\r\n border-right: 1px solid white;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n text-decoration: none;\r\n color: #369;\r\n border-right: 3px solid $color-beta;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nul.side-nav {\r\n & img.quick-link-img {\r\n height: 16px;\r\n vertical-align: text-top;\r\n }\r\n\r\n a.toc2 {\r\n padding-left: 15px;\r\n font-size: 90%;\r\n }\r\n}\r\n\r\ni.fa-download {\r\n color: $color-turquoise;\r\n}\r\n\r\ni.fa-magic {\r\n color: $color-amethyst;\r\n}\r\n\r\n.page-title {\r\n i.fa-magic {\r\n color: $color-amethyst;\r\n }\r\n}\r\n.breadcrumb {\r\n i.fa-magic {\r\n display: none; // Hide it.\r\n }\r\n}\r\n\r\nli.side-nav-title:after {\r\n font-size: 75%;\r\n content: \"\\f105\";\r\n padding-left: 5px;\r\n font-family: \"Font Awesome\\ 5 Free\", serif;\r\n font-style: normal;\r\n font-weight: 700;\r\n}\r\n\r\n.three-cols-container {\r\n margin: 12px 0 72px 0;\r\n display: flex;\r\n}\r\n",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#use-cases {\r\n .container-fluid {\r\n padding: 0 !important;\r\n\r\n .row {\r\n margin-bottom: 30px;\r\n }\r\n }\r\n\r\n .two-col-section {\r\n padding: 0;\r\n letter-spacing: 0.02em;\r\n\r\n .sub-section-title {\r\n margin: 0 0 10px 0;\r\n font-size: 20px;\r\n letter-spacing: 0.02em;\r\n font-weight: 700;\r\n display: block;\r\n color: $color-slack2;\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 60px;\r\n }\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#server-and-probes {\r\n table.props-tbl {\r\n td {\r\n vertical-align: top;\r\n }\r\n }\r\n}\r\n",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#metrics-and-tracing {\r\n div.exporter-name {\r\n display: inline;\r\n margin-left: 20px;\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#short-term-memory {\r\n dl.stm-example {\r\n padding: 20px;\r\n border: 1px solid #ddd;\r\n -webkit-border-radius: 4px;\r\n -moz-border-radius: 4px;\r\n border-radius: 4px;\r\n margin-left: 0 !important;\r\n\r\n dd {\r\n font-weight: 400;\r\n font-family: monospace;\r\n margin-top: 20px;\r\n font-size: 120%;\r\n\r\n i.fa {\r\n text-align: left;\r\n vertical-align: text-bottom;\r\n }\r\n }\r\n\r\n dt {\r\n margin-left: 20px;\r\n font-weight: 400;\r\n }\r\n\r\n .stm-state {\r\n display: inline-flex;\r\n\r\n .stm {\r\n margin-right: 20px;\r\n\r\n label {\r\n font-weight: 500;\r\n display: block;\r\n }\r\n\r\n i {\r\n font-size: 90%;\r\n color: #ccc;\r\n }\r\n\r\n span {\r\n vertical-align: top;\r\n min-width: 50px;\r\n display: inline-block;\r\n padding: 3px 6px;\r\n border: 1px solid #C5D2F7 !important;\r\n border-radius: 2px;\r\n text-align: center;\r\n letter-spacing: 0.02em;\r\n\r\n b {\r\n color: $color-wisteria;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#integrations {\r\n table.checks {\r\n i.fas {\r\n &.fa-check, &.fa-check-double {\r\n color: $color-turquoise;\r\n }\r\n\r\n &.fa-times {\r\n color: $color-alizarin\r\n }\r\n }\r\n }\r\n\r\n .img-title {\r\n margin-top: 25px;\r\n margin-bottom: 10px;\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#installation {\r\n i.fa-bomb {\r\n color: $color-pomegranate;\r\n font-size: 90%;\r\n }\r\n}\r\n",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#intent-matching {\r\n code em {\r\n font-style: normal;\r\n color: #17b717;\r\n margin-left: 0.2rem;\r\n }\r\n\r\n .fn {\r\n font-size: 110%\r\n }\r\n\r\n div.syntaxhighlighter.idl {\r\n margin-top: 0 !important;\r\n }\r\n\r\n div.card-header {\r\n padding: 0 20px !important;\r\n }\r\n\r\n p.fn-desc, p.fn-usage {\r\n em {\r\n font-weight: 600;\r\n font-style: normal;\r\n font-size: 95%;\r\n }\r\n }\r\n\r\n .card-body {\r\n background-color: #efefef;\r\n }\r\n\r\n span.fn-short-desc {\r\n float: right;\r\n color: #333;\r\n }\r\n\r\n p.fn-usage {\r\n margin-bottom: 5px !important;\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#community {\r\n table.checks {\r\n i.fas {\r\n &.fa-check, &.fa-check-double {\r\n color: $color-turquoise;\r\n }\r\n\r\n &.fa-times {\r\n color: $color-alizarin\r\n }\r\n }\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimg.avatar-img {\r\n height: 22px;\r\n margin-right: 10px;\r\n vertical-align: middle;\r\n -webkit-border-radius: 100%;\r\n -moz-border-radius: 100%;\r\n border-radius: 100%;\r\n}\r\n\r\n#blog {\r\n .img-title {\r\n margin-top: 25px;\r\n margin-bottom: 10px;\r\n }\r\n}\r\n\r\n.blog-header {\r\n a, a:hover, a:active, i.fas {\r\n color: $color-asphalt;\r\n }\r\n\r\n .blog-author {\r\n display: inline;\r\n margin-right: 10px;\r\n }\r\n\r\n .blog-date {\r\n margin-left: 10px;\r\n display: inline;\r\n }\r\n\r\n .blog-avatar {\r\n display: inline;\r\n }\r\n\r\n .blog-title {\r\n font-size: 32px;\r\n letter-spacing: 0.02em;\r\n font-weight: 400;\r\n }\r\n}\r\n\r\n#resources {\r\n .event-block {\r\n margin-bottom: 25px;\r\n border-bottom: 1px dotted #aaa;\r\n padding-bottom: 25px;\r\n\r\n &:last-child {\r\n margin-bottom: 75px;\r\n border-bottom: none;\r\n }\r\n\r\n img.event-logo {\r\n max-height: 56px;\r\n margin-bottom: 10px;\r\n vertical-align: middle;\r\n }\r\n\r\n .event-loc,\r\n .event-date,\r\n .event-link {\r\n font-size: 15px;\r\n font-weight: 400;\r\n letter-spacing: 0.02em;\r\n border-left: 1px dotted #aaa;\r\n padding-left: 10px;\r\n }\r\n\r\n .event-talk-name {\r\n margin-bottom: 10px;\r\n }\r\n .event-talk-speaker {\r\n display: inline-flex;\r\n }\r\n .even-speakers-block {\r\n margin-top: 5px;\r\n display: inline-flex;\r\n }\r\n .talk-speaker-name {\r\n font-weight: 600;\r\n }\r\n .talk-speaker-title {\r\n font-size: 85%;\r\n color: #aaa;\r\n letter-spacing: 0.02em;\r\n }\r\n\r\n .event-link {\r\n margin-bottom: 15px;\r\n }\r\n\r\n img.event-avatar-img {\r\n height: 36px;\r\n margin-right: 10px;\r\n vertical-align: middle;\r\n -webkit-border-radius: 100%;\r\n -moz-border-radius: 100%;\r\n border-radius: 100%;\r\n }\r\n\r\n .event-name {\r\n font-size: 22px;\r\n letter-spacing: 0.02em;\r\n font-weight: 400;\r\n\r\n a {\r\n color: $color-slack;\r\n }\r\n\r\n margin-bottom: 10px;\r\n }\r\n }\r\n\r\n .video-block {\r\n margin-bottom: 50px;\r\n\r\n &:last-child {\r\n margin-bottom: 75px;\r\n }\r\n\r\n iframe {\r\n min-width: 560px;\r\n margin-right: 20px;\r\n }\r\n\r\n .video-iframe {\r\n display: inline-flex;\r\n }\r\n\r\n .video-footer {\r\n font-size: 90%;\r\n\r\n .sep {\r\n color: #cbcbcb;\r\n }\r\n }\r\n\r\n .video-title {\r\n font-size: 22px;\r\n letter-spacing: 0.02em;\r\n font-weight: 400;\r\n\r\n i.fas {\r\n color: $color-asphalt;\r\n }\r\n\r\n a {\r\n color: $color-slack;\r\n }\r\n\r\n margin-bottom: 10px;\r\n }\r\n\r\n .video-description {\r\n font-size: 16px;\r\n color: #999;\r\n font-weight: 400;\r\n letter-spacing: 0.02em;\r\n margin-bottom: 10px;\r\n }\r\n }\r\n\r\n .blog-block {\r\n margin-bottom: 50px;\r\n\r\n .blog-title {\r\n font-size: 22px;\r\n letter-spacing: 0.02em;\r\n font-weight: 400;\r\n\r\n i.fas {\r\n color: $color-asphalt;\r\n }\r\n\r\n a {\r\n color: $color-slack;\r\n\r\n &.direct-link {\r\n font-weight: 400;\r\n color: #aaa;\r\n letter-spacing: 0.1em;\r\n vertical-align: top; font-size: 60%\r\n }\r\n }\r\n }\r\n\r\n .blog-excerpt {\r\n font-size: 16px;\r\n color: #999;\r\n font-weight: 400;\r\n letter-spacing: 0.04em;\r\n margin-bottom: 20px;\r\n\r\n a {\r\n color: #666;\r\n font-weight: 400;\r\n }\r\n }\r\n\r\n .blog-footer {\r\n letter-spacing: 0.02em;\r\n\r\n a, span {\r\n vertical-align: middle;\r\n }\r\n\r\n .blog-author {\r\n margin-right: 10px;\r\n display: inline-block;\r\n }\r\n }\r\n\r\n &:last-child {\r\n margin-bottom: 75px;\r\n }\r\n }\r\n}",
- "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the NOTICE file distributed with\r\n * this work for additional information regarding copyright ownership.\r\n * The ASF licenses this file to You under the Apache License, Version 2.0\r\n * (the \"License\"); you may not use this file except in compliance with\r\n * the License. You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n#relnotes {\r\n i.fa-bomb {\r\n color: $color-pomegranate;\r\n font-size: 90%;\r\n }\r\n}"
- ],
- "names": [],
- "mappings": "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"
-}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../../_scss/fonts.scss","../../_scss/colors.scss","../../_scss/misc.scss","../../_scss/header.scss","../../_scss/footer.scss","../../_scss/sh.scss","../../_scss/index.scss","../../_scss/404.scss","../../_scss/buttons.scss","../../_scss/download.scss","../../_scss/example.scss","../../_scss/three-cols.scss","../../_scss/use-cases.scss","../../_scss/server-and-probes.scss","../../_scss/metrics-and-tracing.scss","../../_scss/short-term-memory.scss","../../_scss/integrations.scss","../../_scss/installation.scss","../../_scss/intent-matching.scss","../../_scss/community.scss","../../_scss/resources.scss","../../_scss/relnotes.scss","style.scss"],"names":[],"mappings":"CAiBA,WACI,0BACA,8DACA,4UAIA,mBACA,kBAGJ,WACI,yBACA,6DACA,4UAIA,mBACA,kBAGJ,WACI,yBACA,6DACA,uUAIA,mBACA,kBAGJ,WACI,+BACA,mEACA,qWAIA,mBACA,kBAGJ,WACI,2BACA,+DACA,iVAIA,mBACA,kBAGJ,WACI,4BACA,kDACA,+RAIA,mBACA,kBCQJ,mBAPc,QAQd,uBAtCkB,QAuClB,qBAtCgB,QAuChB,mBAtCc,QAuCd,sBAtCiB,QAuCjB,qBAtCgB,QAuChB,iBAtCY,QAuCZ,uBAtCkB,QAuClB,oBArCe,QAsCf,sBArCiB,QAsCjB,sBArCiB,QAsCjB,uBArCkB,QAsClB,oBArCe,QAsCf,oBArCe,QAsCf,qBArCgB,QAsChB,sBArCiB,QAsCjB,yBArCoB,QAsCpB,mBArCc,QAsCd,oBArCe,QAsCf,sBArCiB,QAsCjB,sBArCiB,QAsCjB,mBArCc,QAuCd,oBAnFe,QAoFf,kBAtFa,QAuFb,qBAxFgB,QAyFhB,qBA1FgB,QA2FhB,qBAxFgB,QA0FhB,4BAzFe,QA0Ff,0BA5Fa,QA6Fb,6BA9FgB,QA+FhB,6BAhGgB,QAiGhB,6BA9FgB,QAgGhB,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBAEA,+BAzFkB,QA0FlB,6BAzFgB,QA0FhB,2BAzFc,QA0Fd,8BAzFiB,QA0FjB,6BAzFgB,QA0FhB,yBAzFY,QA0FZ,+BAzFkB,QA0FlB,4BAxFe,QAyFf,8BAxFiB,QAyFjB,8BAxFiB,QAyFjB,+BAxFkB,QAyFlB,4BAxFe,QAyFf,4BAxFe,QAyFf,6BAxFgB,QAyFhB,8BAxFiB,QAyFjB,iCAxFoB,QAyFpB,2BAxFc,QAyFd,4BAxFe,QAyFf,8BAxFiB,QAyFjB,8BAxFiB,QC/CjB,yYAYI,mCACA,kCAGJ,KACI,UAxBQ,MAyBR,kDAGJ,KACI,gEACA,2BACA,kBACA,cAGJ,MACI,gBAGJ,MACI,gBACA,YAIA,mCAEI,YACA,cAEJ,iBACI,WAKR,yBACI,cAIJ,sCACI,wBAIJ,2BACI,MD/CU,QC4Dd,iBATI,MASoC,KARpC,mEACA,yBACA,qBACA,gBACA,gBACA,kBAIJ,eAVI,MAUkC,KATlC,8CACA,yBACA,qBACA,gBACA,gBACA,kBAKJ,gBAXI,MDnDU,QCoDV,kEACA,yBACA,qBACA,gBACA,gBACA,kBAMJ,eAZI,MAYkC,KAXlC,wDACA,yBACA,qBACA,gBACA,gBACA,kBAOJ,WAbI,MAa8B,KAZ9B,2DACA,yBACA,qBACA,gBACA,gBACA,kBAQJ,iBAdI,MAcoC,KAbpC,mEACA,yBACA,qBACA,gBACA,gBACA,kBASJ,cAfI,MAeiC,KAdjC,2DACA,yBACA,qBACA,gBACA,gBACA,kBAUJ,gBAhBI,MAgBmC,KAfnC,mEACA,yBACA,qBACA,gBACA,gBACA,kBAWJ,gBAjBI,MAiBmC,KAhBnC,wDACA,yBACA,qBACA,gBACA,gBACA,kBAYJ,iBAlBI,MDnDU,QCoDV,0CACA,yBACA,qBACA,gBACA,gBACA,kBAaJ,cAnBI,MAmBiC,KAlBjC,yDACA,yBACA,qBACA,gBACA,gBACA,kBAcJ,cApBI,MAoBiC,KAnBjC,iEACA,yBACA,qBACA,gBACA,gBACA,kBAeJ,eArBI,MAqBkC,KApBlC,8CACA,yBACA,qBACA,gBACA,gBACA,kBAgBJ,gBAtBI,MAsBmC,KArBnC,iEACA,yBACA,qBACA,gBACA,gBACA,kBAiBJ,mBAvBI,MAuBsC,KAtBtC,iEACA,yBACA,qBACA,gBACA,gBACA,kBAkBJ,gBAxBI,MAwBmC,KAvBnC,kEACA,yBACA,qBACA,gBACA,gBACA,kBAmBJ,gBAzBI,MAyBmC,KAxBnC,kEACA,yBACA,qBACA,gBACA,gBACA,kBAqBJ,aA3BI,MD3Cc,QC4Cd,kEACA,yBACA,qBACA,gBACA,gBACA,kBAyBA,8DAIJ,WAnCI,MDzCe,KC0Cf,iEACA,yBACA,qBACA,gBACA,gBACA,kBA8BJ,YApCI,MDzCe,KC0Cf,mEACA,yBACA,qBACA,gBACA,gBACA,kBA+BJ,aArCI,MDzCe,KC0Cf,wDACA,yBACA,qBACA,gBACA,gBACA,kBAgCJ,cAtCI,MDxCe,KCyCf,0CACA,yBACA,qBACA,gBACA,gBACA,kBAmCJ,8KAMI,gBAGJ,kBACI,sBA0DJ,yJANI,mBAU8B,KAT9B,gBAS8B,KAR9B,cAQ8B,KAP9B,WAO8B,KAGlC,wCAbI,mBAiB8B,KAhB9B,gBAgB8B,KAf9B,cAe8B,KAd9B,WAc8B,KAGlC,wEApBI,mBAwB8B,KAvB9B,gBAuB8B,KAtB9B,cAsB8B,KArB9B,WAqB8B,KAGlC,aACI,kBAGJ,gDACI,wBAeJ,IA2BI,cACA,kBACA,2BACA,8BA7BA,SACI,MDnMU,QCoMV,iBAfW,QAgBX,0CACA,kBAhBe,QAmBnB,SACI,MDlNM,QCmNN,iBAnBW,QAoBX,wCACA,kBD5LU,QC+Ld,UACI,iBAtBY,QAuBZ,6DACA,kBAvBgB,QA0BpB,YACI,iBAzBc,QA0Bd,kCACA,kBD7OQ,QCqPZ,aAEI,SAGJ,yBACI,gBAGJ,MACI,qBAGJ,uBACI,kBACA,MD/NU,QCgOV,eAGJ,0BACI,oBAEA,2CACI,iBAKZ,gBACI,aACA,yBACA,cACA,mBAEA,sBACI,+EACA,WAGJ,4BACI,gBACA,6BAGJ,oFAGI,YACA,eACA,gBACA,WAGJ,oFAGI,YACA,qBACA,gBACA,6BACA,mBAIA,+BACI,yBAGJ,uCACI,4BAGJ,wCACI,2BAKZ,uBACI,mBAGJ,UACI,cACA,MD/Sc,QCkTlB,WACI,WAIJ,kCACI,2FACA,oBACA,8BAGJ,YACI,yBACA,kBACA,yBAGJ,KACI,8BACA,cAEA,0BAEA,OACI,kBACA,yBACA,cACA,WACA,WDnUU,QCsUd,OACI,MDzUS,QC8Ub,mBACI,0CACA,sBAKJ,uBACI,MDzVU,QC6Vd,uBACI,MDlWM,QCuWV,yBACI,WAIR,WACI,2BACA,sBACA,kBAGJ,eACI,kBAGJ,UACI,gBACA,yBACA,cACA,kBACA,qBACA,sBACA,gBAGJ,qBACI,2BACA,kBACA,qBAGJ,QACI,eACA,iBD5XY,QC6XZ,WACA,gBACA,kBACA,gBACA,gBAEJ,YACI,gBACA,cAGJ,MACI,aDzXU,QC2XV,mBACI,yBACA,oBD7XM,QC+XN,8BACI,eAKZ,UACI,uCAEA,2BACI,6CAEJ,oBACI,0CAIR,YACI,yBACA,wBACA,kBACA,cACA,yBAGJ,UACI,oBACA,WACA,YACA,mBACA,o0CACA,wBAGJ,SACI,mBAGJ,UACI,cAEJ,YACI,cAEJ,aACI,UAEJ,kBACI,MD/bY,QCichB,aACI,cAEJ,oBACI,cCrfJ,YACI,aACA,+EAEA,gCACI,WAGJ,4BACI,kBACA,gBAGJ,0BACI,MFiDW,QEhDX,cAGJ,2BACI,mBAIR,gBACI,wBAEA,4BACI,+BACA,cACA,MFyBS,QExBT,UAEA,8BACI,MFGE,QECV,yCACI,YACA,cACA,MFcS,QEbT,wCACA,kBACA,gBACA,wBAIR,6BACI,gBACA,MF9BU,QE+BV,mBAEA,yCAEI,gBCtDR,QACI,eACA,SACA,WACA,YACA,mEACA,mBAEA,mBACI,wBACA,eAEA,8BACI,wBACA,eACA,SACA,cAGJ,qBACI,MHyCE,QGvCF,0BACI,yBACA,WACA,gBACA,0BACA,uBACA,kBACA,gBAIR,wBACI,cCnCZ,mBACI,eACA,yBACA,6BACA,2BACA,6BAEA,4BACI,aAIR,yCACI,4BACA,oCAEJ,uCACI,2BAGJ,gRAUI,iCC9BJ,YACI,+EAEA,8BACI,kBACA,UACA,iBACA,iBACA,qEAEA,sCACI,iBACA,sBAEA,wDACI,gCACA,iCACA,kBACA,yBACA,gBACA,gBAGJ,oDACI,WACA,eACA,qBACA,gBACA,4CAGJ,wDACI,WACA,eACA,gBACA,gBACA,qBAMhB,0BACI,oDACI,eAEJ,sCACI,kBAIR,yBACI,oDACI,eAEJ,iDACI,eAEJ,sCACI,kBAIR,cACI,kBAEA,oBACI,kBACA,aACA,SACA,WACA,kBACA,QACA,SACA,sBACA,sCACA,qCACA,WACA,6BAIR,cACI,yBACA,qBAEA,6BACI,qBACA,eACA,qBACA,gBACA,cACA,MLvEO,QKyEP,kCACI,gBACA,ML5EE,QKgFV,iCACI,kBACA,eACA,qBACA,gBACA,cAEA,sCACI,gBAIR,yBACI,oBAGJ,2DACI,qBAEA,+DACI,kBAKZ,kBACI,yBAGJ,gBACI,sBAEA,sBACI,sBAGJ,yBACI,aAIR,UACI,sBAEA,gBACI,sBAIR,YACI,gBAGJ,WACI,gBAGA,qEACI,yBAIR,OACI,qBACA,sBAEA,aACI,+BAGJ,wCACI,ML7GM,QKgHV,2BACI,gBACA,eACA,mBACA,qBAIR,aACI,yBAEA,mBACI,yBAGJ,8BACI,mBAEA,iJACI,ML3JI,QK8JR,6CACI,gBACA,mBACA,sBAGJ,6HAGI,eACA,gBACA,qBACA,4BACA,kBAGJ,+CACI,mBAGJ,0CACI,mBAGJ,mDACI,YACA,kBACA,sBACA,2BACA,wBACA,mBAGJ,0CACI,eACA,qBACA,gBAMA,mBAJA,4CACI,MLvNF,QK+Nd,MACI,iBLzNa,QK2Nb,YACI,iBL5NS,QK+Nb,sBACI,mBAEA,iHACI,MLxNI,QK2NR,kCACI,eACA,qBACA,gBAEA,wCACI,MLjOA,QKqOR,oCACI,eACA,WACA,gBACA,qBACA,mBAGJ,mCACI,qBAEA,uCACI,YACA,iBACA,sBAGJ,kDACI,2BACA,wBACA,mBAGJ,6EACI,sBAGJ,iDACI,kBACA,qBAMhB,eACI,cACA,qBACA,qBACA,YACA,gBACA,gBACA,yBACA,0BACA,uBACA,kBACA,iBL9Ra,QK+Rb,mBAEA,oBACI,cAGJ,kCACI,YACA,kBACA,sBAGJ,oBACI,sBACA,eAGJ,qBACI,sBAGJ,iBACI,ML1SQ,QK6SZ,0BACI,sBACA,qBACA,kBCtVR,gBACI,gBACA,gBACA,kBAEA,mBACI,cACA,cACA,cACA,oBCUR,KACI,qBACA,2BAGJ,4DACI,oCACA,6BAGJ,WA5BI,gCACA,oCACA,yBACA,gBAEA,iBACI,gCACA,oCACA,yBAGJ,iBACI,yBACA,gCACA,oEAeR,UA7BI,gCACA,oCACA,sBACA,gBAEA,gBACI,gCACA,oCACA,sBAGJ,gBACI,sBACA,gCACA,4EAgBR,WA9BI,6BACA,iCACA,sBACA,gBAEA,iBACI,6BACA,iCACA,sBAGJ,iBACI,sBACA,6BACA,mDAiBR,WA/BI,6BACA,iCACA,sBACA,gBAEA,iBACI,6BACA,iCACA,sBAGJ,iBACI,sBACA,6BACA,0CAkBR,UAhCI,gCACA,oCACA,sBACA,gBAEA,gBACI,gCACA,oCACA,sBAGJ,gBACI,sBACA,gCACA,mDAmBR,eAjCI,gCACA,oCACA,sBACA,gBAEA,qBACI,gCACA,oCACA,sBAGJ,qBACI,sBACA,gCACA,4EAoBR,aAlCI,gCACA,oCACA,sBACA,gBAEA,mBACI,gCACA,oCACA,sBAGJ,mBACI,sBACA,gCACA,2DAqBR,WAnCI,gCACA,oCACA,sBACA,gBAEA,iBACI,gCACA,oCACA,sBAGJ,iBACI,sBACA,gCACA,6EAsBR,cApCI,gCACA,oCACA,sBACA,gBAEA,oBACI,gCACA,oCACA,sBAGJ,oBACI,sBACA,gCACA,6EAuBR,aArCI,gCACA,oCACA,sBACA,gBAEA,mBACI,gCACA,oCACA,sBAGJ,mBACI,sBACA,gCACA,mEAwBR,SAtCI,gCACA,oCACA,sBACA,gBAEA,eACI,gCACA,oCACA,sBAGJ,eACI,sBACA,gCACA,6EAyBR,eAvCI,gCACA,oCACA,sBACA,gBAEA,qBACI,gCACA,oCACA,sBAGJ,qBACI,sBACA,gCACA,4EA0BR,YAxCI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,sEA2BR,cAzCI,gCACA,oCACA,sBACA,gBAEA,oBACI,gCACA,oCACA,sBAGJ,oBACI,sBACA,gCACA,6EA4BR,cA1CI,gCACA,oCACA,sBACA,gBAEA,oBACI,gCACA,oCACA,sBAGJ,oBACI,sBACA,gCACA,mEA6BR,YA3CI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,oEA8BR,YA5CI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,4EA+BR,aA7CI,gCACA,oCACA,sBACA,gBAEA,mBACI,gCACA,oCACA,sBAGJ,mBACI,sBACA,gCACA,uDAgCR,cA9CI,gCACA,oCACA,sBACA,gBAEA,oBACI,gCACA,oCACA,sBAGJ,oBACI,sBACA,gCACA,4EAiCR,iBA/CI,gCACA,oCACA,sBACA,gBAEA,uBACI,gCACA,oCACA,sBAGJ,uBACI,sBACA,gCACA,4EAkCR,WAhDI,gCACA,oCACA,yBACA,gBAEA,iBACI,gCACA,oCACA,yBAGJ,iBACI,yBACA,gCACA,mEAmCR,iBAjDI,6BACA,iCACA,yBACA,gBAEA,uBACI,6BACA,iCACA,yBAGJ,uBACI,yBACA,6BACA,0CAoCR,YAlDI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,kEAqCR,cAnDI,gCACA,oCACA,sBACA,gBAEA,oBACI,gCACA,oCACA,sBAGJ,oBACI,sBACA,gCACA,6EAsCR,cApDI,gCACA,oCACA,sBACA,gBAEA,oBACI,gCACA,oCACA,sBAGJ,oBACI,sBACA,gCACA,6EAuCR,UArDI,gCACA,oCACA,sBACA,gBAEA,gBACI,gCACA,oCACA,sBAGJ,gBACI,sBACA,gCACA,6EAwCR,aAtDI,gCACA,oCACA,sBACA,gBAEA,mBACI,gCACA,oCACA,sBAGJ,mBACI,sBACA,gCACA,6EAyCR,cAvDI,gCACA,oCACA,sBACA,gBAEA,oBACI,gCACA,oCACA,sBAGJ,oBACI,sBACA,gCACA,6EA0CR,UAxDI,gCACA,oCACA,sBACA,gBAEA,gBACI,gCACA,oCACA,sBAGJ,gBACI,sBACA,gCACA,6EA2CR,WAzDI,gCACA,oCACA,sBACA,gBAEA,iBACI,gCACA,oCACA,sBAGJ,iBACI,sBACA,gCACA,mEA4CR,YA1DI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,mEA6CR,YA3DI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,yEA8CR,YA5DI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,kEA+CR,YA7DI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,6EAgDR,aA9DI,gCACA,oCACA,sBACA,gBAEA,mBACI,gCACA,oCACA,sBAGJ,mBACI,sBACA,gCACA,6EAiDR,YA/DI,gCACA,oCACA,sBACA,gBAEA,kBACI,gCACA,oCACA,sBAGJ,kBACI,sBACA,gCACA,4EAkDR,UAhEI,gCACA,oCACA,sBACA,gBAEA,gBACI,gCACA,oCACA,sBAGJ,gBACI,sBACA,gCACA,4EAmDR,aAjEI,gCACA,oCACA,sBACA,gBAEA,mBACI,gCACA,oCACA,sBAGJ,mBACI,sBACA,gCACA,mEAoDR,WAlEI,gCACA,oCACA,sBACA,gBAEA,iBACI,gCACA,oCACA,sBAGJ,iBACI,sBACA,gCACA,6EAqDR,eAnEI,gCACA,oCACA,yBACA,gBAEA,qBACI,gCACA,oCACA,yBAGJ,qBACI,yBACA,gCACA,mDAsDR,WApEI,gCACA,oCACA,sBACA,gBAEA,iBACI,gCACA,oCACA,sBAGJ,iBACI,sBACA,gCACA,wDAuDR,gBArEI,gCACA,oCACA,yBACA,gBAEA,sBACI,gCACA,oCACA,yBAGJ,sBACI,yBACA,gCACA,mDAyDR,mBACI,gBCxEA,4BACI,yBACA,gBAGJ,qBACI,MR2CY,QQ1CZ,cCPJ,iDACI,iBCDJ,0BACI,gBACA,kBACA,UAEA,4CACI,eACA,cACA,iBACA,cACA,gBAEA,8DACI,2BAIR,kDACI,iBAGJ,6BACI,uBACA,cACA,gBAEA,+BACI,WACA,gBACA,WACA,mBACA,4BAEA,qCACI,eACA,qBACA,WACA,+BAOpB,eACI,mBAEA,uBA0EI,mBAzEA,sCACI,MV7BG,QU8BH,gBACA,aACA,qBACA,mBACA,eAGJ,0CACI,MVtCG,QUuCH,gBACA,gBACA,cACA,eACA,kBAGJ,8BACI,cAEA,kCACI,cACA,yBACA,kBACA,aAGJ,yCACI,cACA,gBACA,eAIR,kCACI,cAEA,sCACI,cACA,kBACA,UACA,YAGJ,6CACI,cACA,gBACA,eAIR,0BACI,gBACA,iBAEA,6BACI,mBACA,iBAMJ,iCACI,6BAGJ,iEACI,sBAMR,mDACI,qBAIR,kCACI,mBAKJ,0BACI,gBACA,kBACA,mBACA,8BAEA,4CACI,eACA,cACA,iBACA,cACA,gBAEA,8DACI,2BAIR,kDACI,iBAGJ,6BACI,uBACA,cACA,gBAEA,+BACI,WACA,gBACA,WACA,mBACA,4BAEA,qCACI,eACA,qBACA,WACA,+BAQhB,+BACI,YACA,wBAGJ,mBACI,kBACA,cAIR,cACI,MV/Jc,QUkKlB,WACI,MVhKa,QUoKb,uBACI,MVrKS,QUyKb,uBACI,aAIR,wBACI,cACA,YACA,iBACA,wCACA,kBACA,gBAGJ,sBACI,qBACA,aC7NA,4BACI,qBAEA,iCACI,mBAIR,4BACI,UACA,qBAEA,+CACI,kBACA,eACA,qBACA,gBACA,cACA,MXEG,QWCP,uCACI,mBCrBJ,sCACI,mBCFR,uCACI,eACA,iBCFJ,kCACI,aACA,sBACA,0BACA,uBACA,kBACA,yBAEA,qCACI,gBACA,sBACA,gBACA,eAEA,0CACI,gBACA,2BAIR,qCACI,iBACA,gBAGJ,6CACI,oBAEA,kDACI,kBAEA,wDACI,gBACA,cAGJ,oDACI,cACA,WAGJ,uDACI,mBACA,eACA,qBACA,gBACA,oCACA,kBACA,kBACA,qBAEA,yDACI,MdVP,QexCL,2FACI,Mf8BE,Qe3BN,0CACI,MfyCC,QepCb,yBACI,gBACA,mBCdN,wBACE,MhBgDgB,QgB/ChB,cCFA,yBACI,kBACA,cACA,kBAGJ,qBACI,eAGJ,2CACI,wBAGJ,iCACI,0BAIA,6DACI,gBACA,kBACA,cAIR,4BACI,yBAGJ,oCACI,YACA,WAGJ,4BACI,6BClCI,qFACI,MlB8BE,QkB3BN,uCACI,MlByCC,QmBjDjB,eACI,YACA,kBACA,sBACA,2BACA,wBACA,mBAIA,iBACI,gBACA,mBAKJ,6EACI,MnBoBQ,QmBjBZ,0BACI,eACA,kBAGJ,wBACI,iBACA,eAGJ,0BACI,eAGJ,yBACI,eACA,qBACA,gBAKJ,wBACI,mBACA,8BACA,oBAEA,mCACI,mBACA,mBAGJ,uCACI,gBACA,mBACA,sBAGJ,2GAGI,eACA,gBACA,qBACA,4BACA,kBAGJ,yCACI,mBAEJ,4CACI,oBAEJ,6CACI,eACA,oBAEJ,2CACI,gBAEJ,4CACI,cACA,WACA,qBAGJ,oCACI,mBAGJ,6CACI,YACA,kBACA,sBACA,2BACA,wBACA,mBAGJ,oCACI,eACA,qBACA,gBAMA,mBAJA,sCACI,MnBvFF,QmB8FV,wBACQ,mBAEA,mCACI,mBAGJ,+BACI,gBACA,kBAGJ,sCACI,oBAGJ,sCACI,cAEA,2CACI,cAIR,qCACI,eACA,qBACA,gBAUA,mBARA,2CACI,MnB1GJ,QmB6GA,uCACI,MnBhIN,QmBsIF,2CACI,eACA,WACA,gBACA,qBACA,mBAIZ,uBACI,mBAEA,mCACI,eACA,qBACA,gBAEA,yCACI,MnBtIA,QmByIJ,qCACI,MnB5JF,QmB8JE,iDACI,gBACA,WACA,oBACA,iCAKZ,qCACI,eACA,WACA,gBACA,qBACA,mBAEA,uCACI,WACA,gBAIR,oCACI,qBAEA,+EACI,sBAGJ,iDACI,kBACA,qBAIR,kCACI,mBCrNR,oBACI,MpBgDY,QoB/CZ,cC2BR,KACI,kBACA,gBACA,YAGJ,KACI,iBrBPe,KqBQf,MrBPe,KqBQf,gBACA,YAGJ,QACI,kBACA,wBACA,yBACA,WACA","sourcesContent":["/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@font-face {\n font-family: 'CanaroBlack';\n src: url('../../fonts/rene_bieder_-_canaro_black-webfont.eot');\n src: url('../../fonts/rene_bieder_-_canaro_black-webfont.eot?#iefix') format('embedded-opentype'),\n url('../../fonts/rene_bieder_-_canaro_black-webfont.woff') format('woff'),\n url('../../fonts/rene_bieder_-_canaro_black-webfont.ttf') format('truetype'),\n url('../../fonts/rene_bieder_-_canaro_black-webfont.svg#canaroblack') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'CanaroBold';\n src: url('../../fonts/rene_bieder_-_canaro_bold-webfont.eot');\n src: url('../../fonts/rene_bieder_-_canaro_bold-webfont.eot?#iefix') format('embedded-opentype'),\n url('../../fonts/rene_bieder_-_canaro_bold-webfont.woff') format('woff'),\n url('../../fonts/rene_bieder_-_canaro_bold-webfont.ttf') format('truetype'),\n url('../../fonts/rene_bieder_-_canaro_bold-webfont.svg#canaro_bookbold') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'CanaroBook';\n src: url('../../fonts/rene_bieder_-_canaro_book-webfont.eot');\n src: url('../../fonts/rene_bieder_-_canaro_book-webfont.eot?#iefix') format('embedded-opentype'),\n url('../../fonts/rene_bieder_-_canaro_book-webfont.woff') format('woff'),\n url('../../fonts/rene_bieder_-_canaro_book-webfont.ttf') format('truetype'),\n url('../../fonts/rene_bieder_-_canaro_book-webfont.svg#canarobook') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'CanaroExtraLight';\n src: url('../../fonts/rene_bieder_-_canaro_extralight-webfont.eot');\n src: url('../../fonts/rene_bieder_-_canaro_extralight-webfont.eot?#iefix') format('embedded-opentype'),\n url('../../fonts/rene_bieder_-_canaro_extralight-webfont.woff') format('woff'),\n url('../../fonts/rene_bieder_-_canaro_extralight-webfont.ttf') format('truetype'),\n url('../../fonts/rene_bieder_-_canaro_extralight-webfont.svg#canaroextralight') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'CanaroMedium';\n src: url('../../fonts/rene_bieder_-_canaro_medium-webfont.eot');\n src: url('../../fonts/rene_bieder_-_canaro_medium-webfont.eot?#iefix') format('embedded-opentype'),\n url('../../fonts/rene_bieder_-_canaro_medium-webfont.woff') format('woff'),\n url('../../fonts/rene_bieder_-_canaro_medium-webfont.ttf') format('truetype'),\n url('../../fonts/rene_bieder_-_canaro_medium-webfont.svg#canaromedium') format('svg');\n font-weight: normal;\n font-style: normal;\n}\n\n@font-face {\n font-family: 'StagSansLight';\n src: url('../../fonts/stagsans-light-webfont.eot');\n src: url('../../fonts/stagsans-light-webfont.eot?#iefix') format('embedded-opentype'),\n url('../../fonts/stagsans-light-webfont.woff') format('woff'),\n url('../../fonts/stagsans-light-webfont.ttf') format('truetype'),\n url('../../fonts/stagsans-light-webfont.svg#stag_sanslight') format('svg');\n font-weight: normal;\n font-style: normal;\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Main colors.\n */\n$border-color: #ddd;\n$border-hor-color: #ddd;\n\n// From BS3.\n$brand-primary: #428bca;\n$brand-success: #5cb85c;\n$brand-info: #5bc0de;\n$brand-warning: #f0ad4e;\n$brand-danger: #d9534f;\n\n// Form control colors.\n$form-control-border-color: #eee;\n$form-control-addon-border-color: #e6e6e6;\n$form-control-addon-background-color: #e6e6e6;\n\n$color-table-sort: rgb(107, 164, 202);\n\n$color-slack: #4d394b;\n$color-slack2: #303e4c;\n$color-slack3: #544539;\n$color-slack4: #4d5250;\n$color-slack5: #187e82;\n$color-slack6: #f8f8fa;\n$color-border: #e7e7e7;\n$color-magnolia: #F9F7ED;\n$color-grey-blue: #6B7F99;\n\n$background-color: #fff;\n$foreground-color: #333;\n\n// Flat colors.\n$color-turquoise: #1abc9c;\n$color-emerald: #2ecc71;\n$color-river: #3498db;\n$color-amethyst: #9b59b6;\n$color-asphalt: #34495e;\n$color-sea: #16a085;\n$color-nephritis: #27ae60;\n$color-travis-passing: #00c800;\n$color-belize: #2980b9;\n$color-wisteria: #8e44ad;\n$color-midnight: #2C3E50;\n$color-sunflower: #ffd20f;\n$color-orange: #F39C12;\n$color-carrot: #E67E22;\n$color-pumpkin: #D35400;\n$color-alizarin: #E74C3C;\n$color-pomegranate: #C0392B;\n$color-cloud: #ECF0F1;\n$color-silver: #BDC3C7;\n$color-concrete: #95A5A6;\n$color-asbestos: #7F8C8D;\n$color-dream: #C5D5EE;\n$color-blue: #428BCA;\n$color-mustard: #CAC542;\n$color-pink: #CA428B;\n$color-beige:#CA8142;\n$color-beta: #FC664C;\n$color-peach: #ff6530;\n$color-blue2: #337ab7;\n$color-neon-green: #a4fb05;\n$color-blue3: rgb(224, 232, 251);\n\n// Table border colors.\n$tbl-border-color: #eee;\n$tbl-border-hor-color: #eee;\n$tbl-hdr-bgcolor: lighten($color-river, 40%);\n\n.color-blue3 { color: $color-blue3 }\n.color-turquoise { color: $color-turquoise }\n.color-emerald { color: $color-emerald }\n.color-river { color: $color-river }\n.color-amethyst { color: $color-amethyst }\n.color-asphalt { color: $color-asphalt }\n.color-sea { color: $color-sea }\n.color-nephritis { color: $color-nephritis }\n.color-belize { color: $color-belize }\n.color-wisteria { color: $color-wisteria }\n.color-midnight { color: $color-midnight }\n.color-sunflower { color: $color-sunflower }\n.color-orange { color: $color-orange }\n.color-carrot { color: $color-carrot }\n.color-pumpkin { color: $color-pumpkin }\n.color-alizarin { color: $color-alizarin }\n.color-pomegranate { color: $color-pomegranate }\n.color-cloud { color: $color-cloud }\n.color-silver { color: $color-silver }\n.color-concrete { color: $color-concrete }\n.color-asbestos { color: $color-asbestos }\n.color-dream { color: $color-dream }\n\n.color-danger { color: $brand-danger }\n.color-info { color: $brand-info }\n.color-success { color: $brand-success }\n.color-primary { color: $brand-primary }\n.color-warning { color: $brand-warning }\n\n.bg-danger { background-color: $brand-danger }\n.bg-info { background-color: $brand-info }\n.bg-success { background-color: $brand-success }\n.bg-primary { background-color: $brand-primary }\n.bg-warning { background-color: $brand-warning }\n\n.color-000 { color: #000 }\n.color-111 { color: #111 }\n.color-222 { color: #222 }\n.color-333 { color: #333 }\n.color-444 { color: #444 }\n.color-555 { color: #555 }\n.color-666 { color: #666 }\n.color-777 { color: #777 }\n.color-888 { color: #888 }\n.color-999 { color: #999 }\n.color-aaa { color: #aaa }\n.color-bbb { color: #bbb }\n.color-ccc { color: #ccc }\n.color-ddd { color: #ddd }\n.color-eee { color: #eee }\n.color-fff { color: #fff }\n\n.bg-turquoise { background-color: $color-turquoise }\n.bg-emerald { background-color: $color-emerald }\n.bg-river { background-color: $color-river }\n.bg-amethyst { background-color: $color-amethyst }\n.bg-asphalt { background-color: $color-asphalt }\n.bg-sea { background-color: $color-sea }\n.bg-nephritis { background-color: $color-nephritis }\n.bg-belize { background-color: $color-belize }\n.bg-wisteria { background-color: $color-wisteria }\n.bg-midnight { background-color: $color-midnight }\n.bg-sunflower { background-color: $color-sunflower }\n.bg-orange { background-color: $color-orange }\n.bg-carrot { background-color: $color-carrot }\n.bg-pumpkin { background-color: $color-pumpkin }\n.bg-alizarin { background-color: $color-alizarin }\n.bg-pomegranate { background-color: $color-pomegranate }\n.bg-cloud { background-color: $color-cloud }\n.bg-silver { background-color: $color-silver }\n.bg-concrete { background-color: $color-concrete }\n.bg-asbestos { background-color: $color-asbestos }\n\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n$min-width: 768px;\n\n/*\n * Miscellaneous CSS fixes.\n * ------------------------\n */\n\nhtml, body, div, span, applet, object, iframe,\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\na, abbr, acronym, address, big, cite, code,\ndel, dfn, em, img, ins, kbd, q, s, samp,\nsmall, strike, strong, sub, sup, tt, var,\nb, u, i, center,\ndl, dt, dd, ol, ul, li,\nfieldset, form, label, legend,\ntable, caption, tbody, tfoot, thead, tr, th, td,\narticle, aside, canvas, details, figcaption, figure,\nfooter, header, hgroup, menu, nav, section, summary,\ntime, mark, audio, video {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nbody {\n min-width: $min-width;\n font-family: \"Helvetica Neue\", Helvetica, sans-serif;\n}\n\n.amp {\n font-family: 'Libre Baskerville', Helvetica, sans-serif !important;\n font-weight: 400 !important;\n font-style: italic;\n font-size: 85%;\n}\n\nlabel {\n font-weight: 200;\n}\n\n.fill {\n min-height: 100%;\n height: 100%;\n}\n\n.clear-fix {\n &:before,\n &:after {\n content: \" \";\n display: table;\n }\n &:after {\n clear: both;\n }\n}\n\n// Fix margins on fluid row.\n.row-fluid [class*=\"span\"] {\n margin-left: 0;\n}\n\n// Remove blue outline in Chrome when pressing buttons and links.\n.modal-open .modal, .btn:focus, a:focus {\n outline: none !important;\n}\n\n// Make all FA icons in dropdown menus of slack color.\nul.dropdown-menu > li > a > i.fa {\n color: $color-slack;\n}\n\n@mixin color-badge($fg, $bg) {\n color: $fg;\n background-color: lighten($bg, 35%);\n border: 1px solid $bg;\n letter-spacing: 0.03em;\n padding: 4px 6px;\n font-weight: 400;\n border-radius: 2px;\n}\n\n.badge-turquoise { @include color-badge(#fff, $color-turquoise); }\n.badge-emerald { @include color-badge(#fff, $color-emerald); }\n.badge-amethyst { @include color-badge($color-slack, $color-amethyst); }\n.badge-asphalt { @include color-badge(#fff, $color-asphalt); }\n.badge-sea { @include color-badge(#fff, $color-sea); }\n.badge-nephritis { @include color-badge(#fff, $color-nephritis); }\n.badge-belize { @include color-badge(#fff, $color-belize); }\n.badge-wisteria { @include color-badge(#fff, $color-wisteria); }\n.badge-midnight { @include color-badge(#fff, $color-midnight); }\n.badge-sunflower { @include color-badge($color-slack, $color-sunflower); }\n.badge-orange { @include color-badge(#fff, $color-orange); }\n.badge-carrot { @include color-badge(#fff, $color-carrot); }\n.badge-pumpkin { @include color-badge(#fff, $color-pumpkin); }\n.badge-alizarin { @include color-badge(#fff, $color-alizarin); }\n.badge-pomegranate { @include color-badge(#fff, $color-pomegranate); }\n.badge-concrete { @include color-badge(#fff, $color-concrete); }\n.badge-asbestos { @include color-badge(#fff, $color-asbestos); }\n\n.badge-river {\n @include color-badge($color-grey-blue, $color-river);\n\n // Custom overrides for better visibility.\n border-color: lighten($color-river, 25%);\n}\n\n// BS3 compatible.\n.badge-red { @include color-badge($background-color, $brand-danger); }\n.badge-blue { @include color-badge($background-color, $brand-primary); }\n.badge-green { @include color-badge($background-color, $brand-success); }\n.badge-yellow { @include color-badge($foreground-color, $color-sunflower); }\n\n// Border-less table.\n.table-no-border > thead > tr> th,\n.table-no-border > tbody > tr> th,\n.table-no-border > tfoot > tr> th,\n.table-no-border > thead > tr> td,\n.table-no-border > tbody > tr> td,\n.table-no-border > tfoot > tr> td {\n border-top: none;\n}\n\n.table-width-auto {\n width: auto !important;\n}\n\n/*\n * Cross-browser support shortcuts.\n */\n@mixin x-browser-filter($val) {\n -webkit-filter: $val;\n -moz-filter: $val;\n -o-filter: $val;\n -ms-filter: $val;\n filter: $val;\n}\n\n@mixin x-browser-border-radius($val) {\n -webkit-border-radius: $val;\n -moz-border-radius: $val;\n border-radius: $val;\n}\n\n@mixin x-browser-transform($val) {\n -webkit-transform: rotate($val);\n -ms-transform: rotate($val);\n -o-transform: rotate($val);\n -moz-transform: rotate($val);\n transform: rotate($val);\n}\n\n@mixin x-browser-animation($val) {\n -webkit-animation: $val;\n -moz-animation: $val;\n -o-animation: $val;\n animation: $val;\n}\n\n@mixin x-browser-background-clip($val) {\n -webkit-background-clip: $val;\n -moz-background-clip: $val;\n -o-background-clip: $val;\n -ms-background-clip: $val;\n background-clip: $val;\n}\n\n@mixin x-browser-fill-color($val) {\n -webkit-text-fill-color: $val;\n -moz-text-fill-color: $val;\n -o-text-fill-color: $val;\n -ms-text-fill-color: $val;\n text-fill-color: $val;\n}\n\n@mixin x-browser-box-shadow($val) {\n -webkit-box-shadow: $val;\n -moz-box-shadow: $val;\n -o-box-shadow: $val;\n box-shadow: $val;\n}\n\n.btn-group.open .dropdown-toggle,\n.btn-group.open .dropdown-toggle:hover,\n.btn-group.open .dropdown-toggle:visited,\n.btn-group.open .dropdown-toggle:active {\n @include x-browser-box-shadow(none);\n}\n\n.btn,\n.btn:active,\n.btn.active,\n.btn:hover {\n @include x-browser-box-shadow(none);\n}\n\n.btn-default,\n.btn-default:active,\n.btn-default.active,\n.btn-default:hover {\n @include x-browser-box-shadow(none);\n}\n\n.btn-sm, .btn {\n border-radius: 2px;\n}\n\n.btn-link:hover, .btn-link:focus, a:hover, a:focus {\n text-decoration: inherit;\n}\n\n$bq-info-bg-color: #f4f8fa;\n$bq-info-border-color: #5bc0de;\n\n$bq-warn-bg-color: #faf8f0;\n$bq-warn-border-color: $color-sunflower;\n\n$bq-error-bg-color: #eed3d7;\n$bq-error-border-color: #fdf7f7;\n\n$bq-success-bg-color: #F5FDF2;\n$bq-success-border-color: $brand-success;\n\n.bq {\n &.info {\n color: $color-grey-blue;\n background-color: $bq-info-bg-color;\n border-color: darken($bq-info-bg-color, 5%);\n border-left-color: $bq-info-border-color;\n }\n\n &.warn {\n color: $color-slack;\n background-color: $bq-warn-bg-color;\n border-color: darken($bq-warn-bg-color, 5%);\n border-left-color: $bq-warn-border-color;\n }\n\n &.error {\n background-color: $bq-error-bg-color;\n border-color: darken($bq-error-bg-color, 5%);\n border-left-color: $bq-error-border-color;\n }\n\n &.success {\n background-color: $bq-success-bg-color;\n border-color: darken($bq-success-bg-color, 5%);\n border-left-color: $bq-success-border-color;\n }\n\n margin: 20px 0;\n padding: 15px 20px;\n border-left: 3px solid #eee;\n border-radius: 1px 6px 6px 1px;\n\n & > p,\n & > ul {\n margin: 0;\n }\n\n & > p:not(:nth-child(1)) {\n margin-top: 10px;\n }\n\n & > p {\n letter-spacing: 0.05em;\n }\n\n i.fas.fa-lightbulb {\n padding-right: 5px;\n color: $color-sunflower;\n font-size: 110%;\n }\n\n div.bq-idea-container {\n display: inline-flex;\n\n div:nth-child(1) {\n margin-right: 7px;\n }\n }\n}\n\n.gradient-table {\n margin-top: 0;\n border-collapse: collapse;\n overflow: auto;\n margin-bottom: 1rem;\n\n & > thead {\n background: linear-gradient(141deg, #6980fa 0%, #2cb5e8 51%, #4298fc 75%) fixed;\n color: #fff;\n }\n\n & > thead > tr > th {\n text-align: left;\n border-bottom: 1px solid #eee;\n }\n\n & > thead > tr > th,\n & > tbody > tr > th,\n & > tfoot > tr > th {\n padding: 8px;\n font-size: 15px;\n font-weight: 500;\n color: #fff;\n }\n\n & > thead > tr > td,\n & > tbody > tr > td,\n & > tfoot > tr > td {\n padding: 8px;\n letter-spacing: 0.02em;\n font-weight: 400;\n border-bottom: 1px solid #eee;\n vertical-align: top;\n }\n\n & > tbody > tr {\n &:hover {\n background-color: #fafafa;\n }\n\n td:last-child {\n border-right: 1px solid #eee;\n }\n\n td:first-child {\n border-left: 1px solid #eee;\n }\n }\n}\n\n.recover-bottom-margin {\n margin-bottom: 16px;\n}\n\n.top-link {\n font-size: 60%;\n color: $color-turquoise;\n}\n\n.max-width {\n width: 100%;\n}\n\n.not-code {}\na[target=scaladoc]:not(.not-code) {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n word-break: keep-all;\n white-space: nowrap !important;\n}\n\npre.console {\n border: 1px solid #dedede;\n border-radius: 6px;\n padding: 25px 30px 0 30px;\n}\n\ncode {\n white-space: nowrap !important;\n color: #C0392B;\n\n font-size: 100% !important;\n\n i {\n font-style: normal;\n border: 1px solid $color-sunflower;\n padding: 0 2px;\n color: #000;\n background: $color-sunflower;\n }\n\n b {\n color: $color-wisteria;\n }\n}\n\n.side-nav {\n a.active {\n border-right: 3px solid $color-orange !important;\n color: #369 !important;\n }\n}\n\n.complexity-one-star {\n i {\n color: $color-nephritis;\n }\n}\n.complexity-two-star {\n i {\n color: $color-river;\n }\n}\n\n.complexity-three-star {\n i {\n color: #000;\n }\n}\n\n.img-fluid {\n max-width: 800px !important;\n width: 100% !important;\n border-radius: 6px;\n}\n\n.non-fluid-img {\n border-radius: 6px;\n}\n\n.keyboard {\n padding: 1px 8px;\n background-color: #2c2c29;\n color: #efefef;\n border-radius: 4px;\n display: inline-block;\n font-family: monospace;\n font-weight: 600;\n}\n\n.img-fluid-no-border {\n max-width: 900px !important;\n border-radius: 6px;\n padding: 0 !important;\n}\n\n.latest {\n font-size: 11px;\n background-color: $color-pumpkin;\n color: #fff;\n padding: 4px 6px;\n border-radius: 4px;\n font-weight: 600;\n margin-left: 5px;\n}\ni.fa.output {\n margin-left: 5px;\n font-size: 80%;\n}\n\n.card {\n border-color: $color-blue3;\n\n .card-header {\n background-color: #f4f7ff;\n border-bottom-color: $color-blue3;\n\n button.btn {\n padding-left: 0;\n }\n }\n}\n\n.nav-tabs {\n border-bottom-color: $color-blue3 !important;\n\n .nav-link.active {\n border-color: $color-blue3 $color-blue3 #fff !important;\n }\n .nav-link {\n border-color: #fff #fff $color-blue3 !important;\n }\n}\n\ncode.script {\n border: 1px solid $color-blue3;\n padding: 1px 6px 2px 6px;\n border-radius: 4px;\n color: #fb51b1;\n background-color: #f3f9ff;\n}\n\n.scala-16 {\n display: inline-flex;\n width: 16px;\n height: 16px;\n vertical-align: sub;\n background-image: url(\"data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PHBhdGggZmlsbD0iIzQ0NCIgZD0iTTguNTczIDcuMzA3czE0Ljg1My0xLjQ4NSAxNC44NTMtMy45NjF2NS45NDFzMCAyLjQ3Ni0xNC44NTMgMy45NjF6bS4wNjMgNy45MjJzMTQuODUzLTEuNDg1IDE0Ljg1My0zLjk2MXY1Ljk0MXMwIDIuNDc2LTE0Ljg1MyAzLjk2MXptMCA3LjkyMnMxNC44NTMtMS40ODUgMTQuODUzLTMuOTYxdjUuOTQxczAgMi40NzYtMTQuODUzIDMuOTYxeiIvPjxtZXRhZGF0YT48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiIHhtbG5zOnJkZnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDEvcmRmLXNjaGVtYSMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0iaHR0cHM6Ly9pY29uc2NvdXQuY29tL2xlZ2FsI2xpY2Vuc2VzIiBkYzp0aXRsZT0ic2NhbGEiIGRjOmRlc2NyaXB0aW9uPSJzY2FsYSIgZGM6cHVibGlzaGVyPSJJY29uc2NvdXQiIGRjOmRhdGU9IjIwMTctMDktMjQiIGRjOmZvcm1hdD0iaW1hZ2Uvc3ZnK3htbCIgZGM6bGFuZ3VhZ2U9ImVuIj48ZGM6Y3JlYXRvcj48cmRmOkJhZz48cmRmOmxpPlZvcmlsbGF6PC9yZGY6bGk+PC9yZGY6QmFnPjwvZGM6Y3JlYXRvcj48L3JkZjpEZXNjcmlwdGlvbj48L3JkZjpSREY+PC9tZXRhZGF0YT48L3N2Zz4=\");\n background-size: contain;\n}\n\nul.fixed {\n margin-bottom: 1rem;\n}\n\ni.fa-jira {\n color: #2584ff;\n}\ni.fa-gitter {\n color: #f00160;\n}\ni.fa-youtube {\n color: #f00;\n}\ni.fa-calendar-alt {\n color: $color-pumpkin;\n}\ni.fa-twitter {\n color: #00a2f5;\n}\ni.fa-stack-overflow {\n color: #f58025;\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#top-header {\n display: flex;\n background-image: linear-gradient(141deg, #6980fa 0%, #2cb5e8 51%, #4298fc 75%);\n\n .nav-item > .nav-link {\n color: #fff;\n }\n \n .navbar-toggler {\n border-color: #fff;\n background: #fff;\n }\n\n i.fa-download {\n color: $color-neon-green;\n font-size: 80%;\n }\n\n .fork-link img {\n vertical-align: sub;\n }\n}\n\n.navbar-aligned {\n margin: 12px 0 72px /* 60 + 12 */ 12px;\n\n .breadcrumb {\n background-color: transparent;\n font-size: 90%;\n color: $color-asbestos;\n padding: 0;\n\n a {\n color: $color-river;\n }\n }\n\n .breadcrumb > li + li:before {\n content: \"\\f105\";\n padding: 0 5px;\n color: $color-asbestos;\n font-family: \"Font Awesome\\ 5 Free\", serif;\n font-style: normal;\n font-weight: 700;\n text-decoration: inherit;\n }\n}\n\n.page-title, .page-title span {\n font-weight: 700;\n color: $color-slack;\n margin-bottom: 30px;\n\n & > i.fas {\n //margin-left: -7px;\n text-align: left;\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Footer styling.\n#footer {\n position: fixed;\n bottom: 0;\n width: 100%;\n height: 50px; // Set the fixed height of the footer here.\n background-image: linear-gradient(to bottom, #fafafa 0%, #ddd 100%);\n white-space: nowrap;\n\n & > .container {\n padding: 8px 15px 0 15px;\n font-size: 14px;\n\n a.btn-link {\n vertical-align: baseline;\n font-size: 14px;\n margin: 0;\n padding: 6px 0;\n }\n\n a {\n color: $color-blue2;\n\n code {\n background-color: #e47193;\n color: #fff;\n padding: 2px 4px;\n -webkit-border-radius: 2px;\n -moz-border-radius: 2px;\n border-radius: 2px;\n font-weight: 700;\n }\n }\n\n .sep {\n color: #cbcbcb;\n }\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.syntaxhighlighter {\n padding: 15px 0;\n font-size: 95% !important;\n overflow-y: hidden !important;\n overflow-x: auto !important;\n border-radius: 6px !important;\n\n .toolbar {\n display: none;\n }\n}\n\n.syntaxhighlighter table td.gutter .line {\n text-align: right !important;\n padding: 1px 0.5em 1px 1em !important;\n}\n.syntaxhighlighter table td.code .line {\n padding: 1px 1em !important;\n}\n\n.syntaxhighlighter a,\n.syntaxhighlighter div,\n.syntaxhighlighter code,\n.syntaxhighlighter table,\n.syntaxhighlighter table td,\n.syntaxhighlighter table tr,\n.syntaxhighlighter table tbody,\n.syntaxhighlighter table thead,\n.syntaxhighlighter table caption,\n.syntaxhighlighter textarea {\n vertical-align: bottom !important;\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#banner-box {\n background: url(../../images/bg-mb-wrapper2.png) bottom center repeat-x #5483dd;\n\n #inner-banner-box {\n position: relative;\n z-index: 9;\n min-height: 300px;\n max-height: 300px;\n background: url(../../images/bg-main-box.jpg) bottom center no-repeat;\n\n #banner {\n min-height: 300px;\n padding: 35px 0 0 40px;\n\n a#get-started-btn {\n border-color: #c17dac !important;\n background-color: #fff !important;\n border-radius: 4px;\n color: #f67484 !important;\n font-weight: 500;\n margin-left: 2px;\n }\n\n #nat-lang-itf {\n color: #fff;\n font-size: 60px;\n letter-spacing: 0.02em;\n font-weight: 500;\n font-family: CanaroBold, Helvetica, sans-serif;\n }\n\n #banner-sub-title {\n color: #fff;\n font-size: 24px;\n font-weight: 400;\n margin-top: -5px;\n letter-spacing: 0.02em;\n }\n }\n }\n}\n\n@media (max-width: 1000px) {\n #banner-box #inner-banner-box #banner #nat-lang-itf {\n font-size: 45px;\n }\n #banner-box #inner-banner-box #banner {\n padding-top: 50px;\n }\n}\n\n@media (max-width: $min-width) {\n #banner-box #inner-banner-box #banner #nat-lang-itf {\n font-size: 35px;\n }\n #banner-box #inner-banner-box #banner #sub-title {\n font-size: 18px;\n }\n #banner-box #inner-banner-box #banner {\n padding-top: 70px;\n }\n}\n\n.bottom-arrow {\n position: relative;\n\n &:after {\n position: absolute;\n bottom: -16px;\n left: 50%;\n z-index: 10;\n margin-left: -23px;\n width: 0;\n height: 0;\n border-top: 16px solid;\n border-right: 23px solid transparent;\n border-left: 23px solid transparent;\n content: \"\";\n -moz-transform: scale(.9999);\n }\n}\n\n.main-section {\n padding: 0 30px 40px 30px;\n letter-spacing: 0.02em;\n\n .section-title {\n margin: 40px 0 15px 0;\n font-size: 35px;\n letter-spacing: 0.02em;\n font-weight: 200;\n display: block;\n color: $color-slack2;\n\n span {\n font-weight: 700;\n color: $color-slack;\n }\n }\n\n .sub-section-title {\n margin: 0 0 10px 0;\n font-size: 25px;\n letter-spacing: 0.02em;\n font-weight: 200;\n display: block;\n\n span {\n font-weight: 500;\n }\n }\n\n &:last-child {\n margin-bottom: 150px;\n }\n\n #lang-logos, #integration-logos {\n display: inline-block;\n\n & > a {\n margin: 0 10px 0 0;\n }\n }\n}\n\n#banner-box:after {\n border-top-color: #ed8964;\n}\n\n#about-nlpcraft {\n background-color: #fff;\n\n &:after {\n border-top-color: #fff;\n }\n\n img#fig1 {\n padding: 50px;\n }\n}\n\n#features {\n background-color: #fff; //rgba(238,244,246,84);\n\n &:after {\n border-top-color: #fff; //rgba(238,244,246,84);\n }\n}\n\n.learn-more {\n margin-top: 10px;\n}\n\n.read-more {\n margin-top: 30px;\n\n // Reset to the default link colors.\n a, a:hover, a:active, i.fas {\n color: rgb(0, 123, 255) !important;\n }\n}\n\n#about {\n padding-bottom: 100px;\n background-color: #fff;\n\n &:after {\n border-top-color: transparent;\n }\n\n a, a:hover, a:active {\n color: $color-blue2;\n }\n\n .about-project-name {\n font-weight: 700;\n font-size: 150%;\n margin-bottom: 10px;\n display: inline-block;\n }\n}\n\n#home-events {\n background-color: #eafaff;\n\n &:after {\n border-top-color: #eafaff;\n }\n\n #event-container {\n margin-bottom: 20px;\n\n a, a:hover, a:active, i.fas {\n color: $color-asphalt;\n }\n\n img.event-logo {\n max-height: 56px;\n margin-bottom: 10px;\n vertical-align: middle;\n }\n\n .event-loc,\n .event-date,\n .event-link {\n font-size: 15px;\n font-weight: 400;\n letter-spacing: 0.02em;\n border-left: 1px dotted #aaa;\n padding-left: 10px;\n }\n\n .event-talk-name {\n margin-bottom: 10px;\n }\n\n .event-link {\n margin-bottom: 15px;\n }\n\n img.event-avatar-img {\n height: 36px;\n margin-right: 10px;\n vertical-align: middle;\n -webkit-border-radius: 100%;\n -moz-border-radius: 100%;\n border-radius: 100%;\n }\n\n .event-name {\n font-size: 25px;\n letter-spacing: 0.02em;\n font-weight: 200;\n\n a {\n color: $color-slack;\n }\n\n margin-bottom: 10px;\n }\n }\n}\n\n#news {\n background-color: $color-magnolia;\n\n &:after {\n border-top-color: $color-magnolia;\n }\n\n #news-container {\n margin-bottom: 20px;\n\n a, a:hover, a:active, i.fas {\n color: $color-asphalt;\n }\n\n .news-title {\n font-size: 22px;\n letter-spacing: 0.02em;\n font-weight: 400;\n\n i.fas {\n color: $color-asphalt;\n }\n }\n\n .news-excerpt {\n font-size: 15px;\n color: #666;\n font-weight: 200;\n letter-spacing: 0.05em;\n margin-bottom: 20px;\n }\n\n .news-footer {\n letter-spacing: 0.02em;\n\n img {\n height: 24px;\n margin-right: 5px;\n vertical-align: middle;\n }\n\n img.avatar-img {\n -webkit-border-radius: 100%;\n -moz-border-radius: 100%;\n border-radius: 100%;\n }\n\n a, span {\n vertical-align: middle;\n }\n\n a.news-author {\n margin-right: 15px;\n display: inline-block;\n }\n }\n }\n}\n\ndiv.quick-link {\n display: block;\n padding: 8px 0 0 15px;\n margin: 0 10px 20px 0;\n height: 50px;\n min-width: 350px;\n max-width: 430px;\n border: 1px solid #e0ded2;\n -webkit-border-radius: 4px;\n -moz-border-radius: 4px;\n border-radius: 4px;\n background-color: $color-magnolia;\n white-space: nowrap;\n\n .sep {\n color: #cecab2;\n }\n\n img.quick-link-img {\n height: 32px;\n margin-right: 10px;\n vertical-align: middle;\n }\n\n span {\n vertical-align: middle;\n display: inline;\n }\n\n i.fas {\n vertical-align: middle;\n }\n\n a {\n color: $color-asphalt;\n }\n\n div.gh-btn {\n vertical-align: bottom;\n display: inline-block;\n margin-right: 10px;\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.page-not-found {\n margin: 15% auto;\n max-width: 600px;\n text-align: center;\n\n h1 {\n margin: 30px 0;\n font-size: 4em;\n line-height: 1;\n letter-spacing: -1px;\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@mixin custom-button($fg, $bg) {\n border-color: $bg !important;\n background-color: $bg !important;\n color: $fg !important;\n font-weight: 400;\n\n &:focus {\n border-color: $bg !important;\n background-color: $bg !important;\n color: $fg !important;\n }\n\n &:hover {\n color: $fg !important;\n border-color: $bg !important;\n background-color: darken($bg, 3%) !important;\n }\n}\n\n.btn {\n letter-spacing: 0.02em;\n box-shadow: none !important;\n}\n\n.btn-default:hover, .btn-default:active, .btn-default:visited {\n background-color: #efefef !important;\n border-color: #ddd !important;\n}\n\n.btn-creme { @include custom-button(#8a6d3b, #fcf8e3) }\n.btn-beta { @include custom-button(#fff, $color-beta) }\n.btn-black { @include custom-button(#fff, #555) }\n.btn-white { @include custom-button(#333, #fff) }\n.btn-milk { @include custom-button(#333, #f9f9f3) }\n.btn-turquoise { @include custom-button(#fff, $color-turquoise) }\n.btn-emerald { @include custom-button(#fff, $color-emerald) }\n.btn-river { @include custom-button(#fff, $color-river) }\n.btn-amethyst { @include custom-button(#fff, $color-amethyst) }\n.btn-asphalt { @include custom-button(#fff, $color-asphalt) }\n.btn-sea { @include custom-button(#fff, $color-sea) }\n.btn-nephritis { @include custom-button(#fff, $color-nephritis) }\n.btn-belize { @include custom-button(#fff, $color-belize) }\n.btn-wisteria { @include custom-button(#fff, $color-wisteria) }\n.btn-midnight { @include custom-button(#fff, $color-midnight) }\n.btn-orange { @include custom-button(#fff, $color-orange) }\n.btn-carrot { @include custom-button(#fff, $color-carrot) }\n.btn-pumpkin { @include custom-button(#fff, $color-pumpkin) }\n.btn-alizarin { @include custom-button(#fff, $color-alizarin) }\n.btn-pomegranate { @include custom-button(#fff, $color-pomegranate) }\n.btn-cloud { @include custom-button($color-grey-blue, $color-cloud) }\n.btn-white-river { @include custom-button($color-river, #fff) }\n.btn-silver { @include custom-button(#fff, $color-silver) }\n.btn-concrete { @include custom-button(#fff, $color-concrete) }\n.btn-asbestos { @include custom-button(#fff, $color-asbestos) }\n.btn-pink { @include custom-button(#fff, $color-pink) }\n.btn-mustard { @include custom-button(#000, $color-mustard) }\n.btn-mustard2 { @include custom-button(#fff, $color-mustard) }\n.btn-blue { @include custom-button(#fff, $color-blue) }\n.btn-slack { @include custom-button(#fff, $color-slack) }\n.btn-slack2 { @include custom-button(#fff, $color-slack2) }\n.btn-slack3 { @include custom-button(#fff, $color-slack3) }\n.btn-slack4 { @include custom-button(#fff, $color-slack4) }\n.btn-slack5 { @include custom-button(#fff, $color-slack5) }\n.btn-primary { @include custom-button(#fff, $brand-primary) }\n.btn-danger { @include custom-button(#fff, $brand-danger) }\n.btn-beta { @include custom-button(#fff, $color-beta) }\n.btn-success { @include custom-button(#fff, $brand-success) }\n.btn-beige { @include custom-button(#fff, $color-beige) }\n.btn-sunflower { @include custom-button($color-slack, $color-sunflower) }\n.btn-peach { @include custom-button(#fff, $color-peach) }\n.btn-sunflower2 { @include custom-button($color-slack2, $color-sunflower) }\n\n.one-letter-btn-xs {\n padding: 1px 7px;\n}\n\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#downloads {\n .download-sigs > a {\n border: 1px solid #bfe1ff;\n padding: 1px 2px;\n }\n\n i.fa-bomb {\n color: $color-pomegranate;\n font-size: 90%;\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.example {\n span.ex-src, span.ex-review-all {\n margin-left: 20px;\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.first-column {\n ul.side-nav {\n list-style: none;\n margin: 0 0 20px 0;\n padding: 0;\n\n li.side-nav-title {\n margin-top: 5px;\n display: block;\n font-size: 1.1rem;\n color: #303e4c;\n font-weight: 500;\n\n &:not(:first-child) {\n margin-top: 25px !important;\n }\n }\n\n li:not(.side-nav-title) {\n margin-left: 10px;\n }\n\n li {\n padding: 3px 10px 3px 0;\n display: block;\n text-align: left;\n\n a {\n color: #999;\n text-align: left;\n width: 100%;\n padding-right: 20px;\n border-right: 1px solid white;\n\n &:hover {\n cursor: pointer;\n text-decoration: none;\n color: #369;\n border-right: 3px solid $color-beta;\n }\n }\n }\n }\n}\n\n.second-column {\n padding-right: 40px;\n \n section {\n .section-title {\n color: $color-slack2;\n font-weight: 700;\n margin-top: 0;\n display: inline-block;\n margin-bottom: 10px;\n font-size: 150%;\n }\n\n .section-sub-title {\n color: $color-slack2;\n font-weight: 700;\n margin-top: 25px;\n display: block;\n font-size: 110%;\n margin-bottom: 5px;\n }\n\n figure {\n margin: 15px 0;\n\n img {\n display: block;\n border: 1px solid #dfdfdf;\n border-radius: 6px;\n padding: 30px;\n }\n\n figcaption {\n font-size: 80%;\n text-align: left;\n margin-top: 5px;\n }\n }\n\n figure.alt {\n margin: 15px 0;\n\n img {\n display: block;\n border-radius: 6px;\n padding: 0;\n border: none;\n }\n\n figcaption {\n font-size: 80%;\n text-align: left;\n margin-top: 5px;\n }\n }\n\n dl {\n margin-top: 10px;\n margin-left: 20px;\n\n dd {\n margin-bottom: 10px;\n margin-left: 20px;\n }\n }\n\n div.bq {\n\n h4 {\n margin: 0 0 10px 0 !important;\n }\n\n p, li {\n width: 100% !important;\n }\n }\n\n margin-bottom: 30px;\n\n p, li {\n letter-spacing: 0.02em;\n }\n }\n \n section:last-child {\n margin-bottom: 60px;\n }\n}\n\n.third-column {\n ul.side-nav {\n list-style: none;\n margin: 0 0 20px 0;\n padding: 0 0 0 10px;\n border-left: 1px solid #dfdfdf;\n\n li.side-nav-title {\n margin-top: 5px;\n display: block;\n font-size: 1.1rem;\n color: #303e4c;\n font-weight: 500;\n\n &:not(:first-child) {\n margin-top: 25px !important;\n }\n }\n\n li:not(.side-nav-title) {\n margin-left: 10px;\n }\n\n li {\n padding: 3px 10px 3px 0;\n display: block;\n text-align: left;\n\n a {\n color: #999;\n text-align: left;\n width: 100%;\n padding-right: 20px;\n border-right: 1px solid white;\n\n &:hover {\n cursor: pointer;\n text-decoration: none;\n color: #369;\n border-right: 3px solid $color-beta;\n }\n }\n }\n }\n}\n\nul.side-nav {\n & img.quick-link-img {\n height: 16px;\n vertical-align: text-top;\n }\n\n a.toc2 {\n padding-left: 15px;\n font-size: 90%;\n }\n}\n\ni.fa-download {\n color: $color-turquoise;\n}\n\ni.fa-magic {\n color: $color-amethyst;\n}\n\n.page-title {\n i.fa-magic {\n color: $color-amethyst;\n }\n}\n.breadcrumb {\n i.fa-magic {\n display: none; // Hide it.\n }\n}\n\nli.side-nav-title:after {\n font-size: 75%;\n content: \"\\f105\";\n padding-left: 5px;\n font-family: \"Font Awesome\\ 5 Free\", serif;\n font-style: normal;\n font-weight: 700;\n}\n\n.three-cols-container {\n margin: 12px 0 72px 0;\n display: flex;\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#use-cases {\n .container-fluid {\n padding: 0 !important;\n\n .row {\n margin-bottom: 30px;\n }\n }\n\n .two-col-section {\n padding: 0;\n letter-spacing: 0.02em;\n\n .sub-section-title {\n margin: 0 0 10px 0;\n font-size: 20px;\n letter-spacing: 0.02em;\n font-weight: 700;\n display: block;\n color: $color-slack2;\n }\n\n &:last-child {\n margin-bottom: 60px;\n }\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#server-and-probes {\n table.props-tbl {\n td {\n vertical-align: top;\n }\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#metrics-and-tracing {\n div.exporter-name {\n display: inline;\n margin-left: 20px;\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#short-term-memory {\n dl.stm-example {\n padding: 20px;\n border: 1px solid #ddd;\n -webkit-border-radius: 4px;\n -moz-border-radius: 4px;\n border-radius: 4px;\n margin-left: 0 !important;\n\n dd {\n font-weight: 400;\n font-family: monospace;\n margin-top: 20px;\n font-size: 120%;\n\n i.fa {\n text-align: left;\n vertical-align: text-bottom;\n }\n }\n\n dt {\n margin-left: 20px;\n font-weight: 400;\n }\n\n .stm-state {\n display: inline-flex;\n\n .stm {\n margin-right: 20px;\n\n label {\n font-weight: 500;\n display: block;\n }\n\n i {\n font-size: 90%;\n color: #ccc;\n }\n\n span {\n vertical-align: top;\n min-width: 50px;\n display: inline-block;\n padding: 3px 6px;\n border: 1px solid #C5D2F7 !important;\n border-radius: 2px;\n text-align: center;\n letter-spacing: 0.02em;\n\n b {\n color: $color-wisteria;\n }\n }\n }\n }\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#integrations {\n table.checks {\n i.fas {\n &.fa-check, &.fa-check-double {\n color: $color-turquoise;\n }\n\n &.fa-times {\n color: $color-alizarin\n }\n }\n }\n\n .img-title {\n margin-top: 25px;\n margin-bottom: 10px;\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#installation {\n i.fa-bomb {\n color: $color-pomegranate;\n font-size: 90%;\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#intent-matching {\n code em {\n font-style: normal;\n color: #17b717;\n margin-left: 0.2rem;\n }\n\n .fn {\n font-size: 110%\n }\n\n div.syntaxhighlighter.idl {\n margin-top: 0 !important;\n }\n\n div.card-header {\n padding: 0 20px !important;\n }\n\n p.fn-desc, p.fn-usage {\n em {\n font-weight: 600;\n font-style: normal;\n font-size: 95%;\n }\n }\n\n .card-body {\n background-color: #efefef;\n }\n\n span.fn-short-desc {\n float: right;\n color: #333;\n }\n\n p.fn-usage {\n margin-bottom: 5px !important;\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#community {\n table.checks {\n i.fas {\n &.fa-check, &.fa-check-double {\n color: $color-turquoise;\n }\n\n &.fa-times {\n color: $color-alizarin\n }\n }\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimg.avatar-img {\n height: 22px;\n margin-right: 10px;\n vertical-align: middle;\n -webkit-border-radius: 100%;\n -moz-border-radius: 100%;\n border-radius: 100%;\n}\n\n#blog {\n .img-title {\n margin-top: 25px;\n margin-bottom: 10px;\n }\n}\n\n.blog-header {\n a, a:hover, a:active, i.fas {\n color: $color-asphalt;\n }\n\n .blog-author {\n display: inline;\n margin-right: 10px;\n }\n\n .blog-date {\n margin-left: 10px;\n display: inline;\n }\n\n .blog-avatar {\n display: inline;\n }\n\n .blog-title {\n font-size: 32px;\n letter-spacing: 0.02em;\n font-weight: 400;\n }\n}\n\n#resources {\n .event-block {\n margin-bottom: 25px;\n border-bottom: 1px dotted #aaa;\n padding-bottom: 25px;\n\n &:last-child {\n margin-bottom: 75px;\n border-bottom: none;\n }\n\n img.event-logo {\n max-height: 56px;\n margin-bottom: 10px;\n vertical-align: middle;\n }\n\n .event-loc,\n .event-date,\n .event-link {\n font-size: 15px;\n font-weight: 400;\n letter-spacing: 0.02em;\n border-left: 1px dotted #aaa;\n padding-left: 10px;\n }\n\n .event-talk-name {\n margin-bottom: 10px;\n }\n .event-talk-speaker {\n display: inline-flex;\n }\n .even-speakers-block {\n margin-top: 5px;\n display: inline-flex;\n }\n .talk-speaker-name {\n font-weight: 600;\n }\n .talk-speaker-title {\n font-size: 85%;\n color: #aaa;\n letter-spacing: 0.02em;\n }\n\n .event-link {\n margin-bottom: 15px;\n }\n\n img.event-avatar-img {\n height: 36px;\n margin-right: 10px;\n vertical-align: middle;\n -webkit-border-radius: 100%;\n -moz-border-radius: 100%;\n border-radius: 100%;\n }\n\n .event-name {\n font-size: 22px;\n letter-spacing: 0.02em;\n font-weight: 400;\n\n a {\n color: $color-slack;\n }\n\n margin-bottom: 10px;\n }\n }\n\n .video-block {\n margin-bottom: 50px;\n\n &:last-child {\n margin-bottom: 75px;\n }\n\n iframe {\n min-width: 560px;\n margin-right: 20px;\n }\n\n .video-iframe {\n display: inline-flex;\n }\n\n .video-footer {\n font-size: 90%;\n\n .sep {\n color: #cbcbcb;\n }\n }\n\n .video-title {\n font-size: 22px;\n letter-spacing: 0.02em;\n font-weight: 400;\n\n i.fas {\n color: $color-asphalt;\n }\n\n a {\n color: $color-slack;\n }\n\n margin-bottom: 10px;\n }\n\n .video-description {\n font-size: 16px;\n color: #999;\n font-weight: 400;\n letter-spacing: 0.02em;\n margin-bottom: 10px;\n }\n }\n\n .blog-block {\n margin-bottom: 50px;\n\n .blog-title {\n font-size: 22px;\n letter-spacing: 0.02em;\n font-weight: 400;\n\n i.fas {\n color: $color-asphalt;\n }\n\n a {\n color: $color-slack;\n\n &.direct-link {\n font-weight: 400;\n color: #aaa;\n letter-spacing: 0.1em;\n vertical-align: top; font-size: 60%\n }\n }\n }\n\n .blog-excerpt {\n font-size: 16px;\n color: #999;\n font-weight: 400;\n letter-spacing: 0.04em;\n margin-bottom: 20px;\n\n a {\n color: #666;\n font-weight: 400;\n }\n }\n\n .blog-footer {\n letter-spacing: 0.02em;\n\n a, span {\n vertical-align: middle;\n }\n\n .blog-author {\n margin-right: 10px;\n display: inline-block;\n }\n }\n\n &:last-child {\n margin-bottom: 75px;\n }\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n#relnotes {\n i.fa-bomb {\n color: $color-pomegranate;\n font-size: 90%;\n }\n}","/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOTICE file distributed with\n * this work for additional information regarding copyright ownership.\n * The ASF licenses this file to You under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with\n * the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Constants.\n * ----------\n */\n$font-size: 14px;\n$default-font: \"Helvetica Neue\";\n\n@import 'fonts';\n@import 'colors';\n@import 'misc';\n@import 'header';\n@import 'footer';\n@import 'sh';\n@import 'index';\n@import '404';\n@import 'buttons';\n@import 'download';\n@import 'example';\n@import 'three-cols';\n@import 'use-cases';\n@import 'server-and-probes';\n@import 'metrics-and-tracing';\n@import 'short-term-memory';\n@import 'integrations';\n@import 'installation';\n@import 'intent-matching';\n@import 'community';\n@import 'resources';\n@import 'relnotes';\n\nhtml {\n position: relative;\n min-height: 100%;\n height: 100%;\n}\n\nbody {\n background-color: $background-color;\n color: $foreground-color;\n min-height: 100%;\n height: 100%;\n}\n\nem.high {\n font-style: normal;\n padding: 2px 4px 3px 4px;\n background-color: #d36da6;\n color: #fff;\n border-radius: 1px;\n}\n\n\n"],"file":"style.css"}
\ No newline at end of file
diff --git a/community.html b/community.html
index c088642..deb77b6 100644
--- a/community.html
+++ b/community.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Community</ol><h1 class="page-title"> <span><i class="fas fa-fw fa-users"></i> Community</span></h1><div id="community" class="three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title"> <img src="/images/asf_logo-h36.png" alt=""><li><a target="asf" href="https://www.apache.org/">Foundation</a><li><a target="asf" href="https://www.apache.org/licenses/">License</a><li><a target="asf" href="https://www.apache.org/security">Security</a><li><a target="asf" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a><li><a target="asf" href="https://www.apache.org/foundation/thanks.html">Thanks</a></ul><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="start"><h2 class="section-title">Start Contributing <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Before you get involved in Apache NLPCraft development, please sign up to the dev mailing list by sending an empty email to <a href="mailto:dev-subscribe@nlpcraft.apache.org">dev-subscribe@nlpcraft.apache.org</a> and follow simple instructions in the reply. Once subscribed, say "Hello" to everyone in the community. Tell us as much as you can about your areas of expertise mentioning how exactly you would like to contribute. We are a friendly and inclusive community and will try to simplify your "onboarding" considering your strengths or areas of interest.</p><p> Also, make sure to share your <a target="jira" href="https://issues.apache.org/jira/secure/Dashboard.jspa">ASF JIRA</a> ID in the same email (create a <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT">new one</a> if you don't have an ASF JIRA account yet). One of our community members will add you to the contributors' list and you will be able to go ahead and book NLPCraft tasks you would like to work on.</p><h2 class="section-sub-title">Dev List <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> <a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter channel</a> and the <a href="mailto:dev@nlpcraft.apache.org">dev@nlpcraft.apache.org</a> list is the primary and the default communication channel.</p><p> Send an email to <a href="mailto:dev-subscribe@nlpcraft.apache.org">dev-subscribe@nlpcraft.apache.org</a> to subscribe to the list. If you are an ASF committer, then it's better to use your <code>@apache.org</code> address for NLPCraft communications.</p><p> All the discussions related to contributions, changes, new ideas have to be started on the dev list first. Remember the mantra - <b>"If it's not on the dev list, it didn't happen".</b> The project is being developed and moved forward by individuals living across the globe and speaking different languages. Thus, <a target="asf" href="https://www.apache.org/foundation/how-it-works.html#communication">asynchronous written communication</a> is a preferred way of engagement at ASF as well as within the NLPCraft community.</p><p> For the sake of openness, speed and transparency, the community members are free to use Slack, <a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a>, Skype or meet via the tools like Google Meeting. But, as mentioned above, if any conversation took place between contributors using channels like Slack, a summary of the discussion/decision has to be shared via the dev list letting other contributors share their opinions. As a summary, final decisions are made only on the dev list.</p><h2 class="section-sub-title">Contribution Process <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Before you start contributing, spend some time to get to know how <a target="asf" href="https://apache.org/foundation/how-it-works.html">Apache Software Foundation</a> works and <a target="asf" href="https://www.apache.org/theapacheway/index.html">The Apache Way</a> that helps us, as a group of professionals, drive the project forward in a respectful and inclusive way.</p><h2 class="section-sub-title">JIRA Tickets <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">NLPCraft JIRA</a> drives all activities in the project. Any tasks, of any complexity, for any component in the main project or satellite projects has corresponding ticket in JIRA.</p><p> Before you can start contributing you need to pick an unassigned ticket and assign to yourself. Look through all tickets paying attention to <a target="jira" href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20NLPCRAFT%20AND%20status%20%3D%20Open%20AND%20labels%20%3D%20newbie%20AND%20assignee%20in%20(EMPTY)">unassigned tickets with label <code>newbie</code></a> suited for the quick start. Still haven't found anything suitable? As always, check the latest discussions on <a target="asf" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">dev@nlpcraft.apache.org</a></p><h2 class="section-sub-title">Git Workflow <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft project uses Git as its version control system. The same Git workflow rules apply to all sub-projects.</p><p>ASF GitBox repos (committers only):</p><ul><li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft">https://git.apache.org/repos/asf/incubator-nlpcraft</a><li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft-java-client">https://git.apache.org/repos/asf/incubator-nlpcraft-java-client</a><li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft-ui">https://git.apache.org/repos/asf/incubator-nlpcraft-ui</a></ul><p> GitHub mirrors (contributors pull-requests):</p><ul><li><a target="github" href="https://github.com/apache/incubator-nlpcraft">https://github.com/apache/incubator-nlpcraft</a><li><a target="github" href="https://github.com/apache/incubator-nlpcraft-java-client">https://github.com/apache/incubator-nlpcraft-java-client</a><li><a target="github" href="https://github.com/apache/incubator-nlpcraft-ui">https://github.com/apache/incubator-nlpcraft-ui</a></ul><p>General Git workflow rules:</p><ul><li> <code>master</code> branch represents current work-in-progress and is generally maintained so that all tests are passing in <code>master</code>.<ul><li>Nightly builds can be cut from the master.</ul><li> Once all tickets for the current sprint are fixed and merged to <code>master</code>, the tagged branch (<code>v0.7.4, v0.7.5</code>) is created for the release.<ul><li>Each release has a Git tag associated with it.</ul><li> Committers use feature branches for their work, while contributors use pull-requests from GitHub mirror.<ul><li> Feature branches should be named after their JIRA tickets, i.e. for ticket <code>NLPCRAFT-012</code> the branch should be named <code>NLPCRAFT-012</code>.</ul><li> Committers create feature branches off the <code>master</code> branch.<li> Merging should use Git <code>squashing</code> to minimize number of intermittent commits.</ul><h2 class="section-sub-title">Creating GitHub Pull-Request <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><pre>
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Community</ol><h1 class="page-title"> <span><i class="fas fa-fw fa-users"></i> Community</span></h1><div id="community" class="three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title"> <img src="/images/asf_logo-h36.png" alt=""><li><a target="asf" href="https://www.apache.org/">Foundation</a><li><a target="asf" href="https://www.apache.org/licenses/">License</a><li><a target="asf" href="https://www.apache.org/security">Security</a><li><a target="asf" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a><li><a target="asf" href="https://www.apache.org/foundation/thanks.html">Thanks</a></ul><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="start"><h2 class="section-title">Start Contributing <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Before you get involved in Apache NLPCraft development, please sign up to the dev mailing list by sending an empty email to <a href="mailto:dev-subscribe@nlpcraft.apache.org">dev-subscribe@nlpcraft.apache.org</a> and follow simple instructions in the reply. Once subscribed, say "Hello" to everyone in the community. Tell us as much as you can about your areas of expertise mentioning how exactly you would like to contribute. We are a friendly and inclusive community and will try to simplify your "onboarding" considering your strengths or areas of interest.</p><p> Also, make sure to share your <a target="jira" href="https://issues.apache.org/jira/secure/Dashboard.jspa">ASF JIRA</a> ID in the same email (create a <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT">new one</a> if you don't have an ASF JIRA account yet). One of our community members will add you to the contributors' list and you will be able to go ahead and book NLPCraft tasks you would like to work on.</p><h2 class="section-sub-title">Dev List <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> <a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter channel</a> and the <a href="mailto:dev@nlpcraft.apache.org">dev@nlpcraft.apache.org</a> list is the primary and the default communication channel.</p><p> Send an email to <a href="mailto:dev-subscribe@nlpcraft.apache.org">dev-subscribe@nlpcraft.apache.org</a> to subscribe to the list. If you are an ASF committer, then it's better to use your <code>@apache.org</code> address for NLPCraft communications.</p><p> All the discussions related to contributions, changes, new ideas have to be started on the dev list first. Remember the mantra - <b>"If it's not on the dev list, it didn't happen".</b> The project is being developed and moved forward by individuals living across the globe and speaking different languages. Thus, <a target="asf" href="https://www.apache.org/foundation/how-it-works.html#communication">asynchronous written communication</a> is a preferred way of engagement at ASF as well as within the NLPCraft community.</p><p> For the sake of openness, speed and transparency, the community members are free to use Slack, <a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a>, Skype or meet via the tools like Google Meeting. But, as mentioned above, if any conversation took place between contributors using channels like Slack, a summary of the discussion/decision has to be shared via the dev list letting other contributors share their opinions. As a summary, final decisions are made only on the dev list.</p><h2 class="section-sub-title">Contribution Process <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Before you start contributing, spend some time to get to know how <a target="asf" href="https://apache.org/foundation/how-it-works.html">Apache Software Foundation</a> works and <a target="asf" href="https://www.apache.org/theapacheway/index.html">The Apache Way</a> that helps us, as a group of professionals, drive the project forward in a respectful and inclusive way.</p><h2 class="section-sub-title">JIRA Tickets <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">NLPCraft JIRA</a> drives all activities in the project. Any tasks, of any complexity, for any component in the main project or satellite projects has corresponding ticket in JIRA.</p><p> Before you can start contributing you need to pick an unassigned ticket and assign to yourself. Look through all tickets paying attention to <a target="jira" href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20NLPCRAFT%20AND%20status%20%3D%20Open%20AND%20labels%20%3D%20newbie%20AND%20assignee%20in%20(EMPTY)">unassigned tickets with label <code>newbie</code></a> suited for the quick start. Still haven't found anything suitable? As always, check the latest discussions on <a target="asf" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">dev@nlpcraft.apache.org</a></p><h2 class="section-sub-title">Git Workflow <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft project uses Git as its version control system. The same Git workflow rules apply to all sub-projects.</p><p>ASF GitBox repos (committers only):</p><ul><li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft">https://git.apache.org/repos/asf/incubator-nlpcraft</a><li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft-java-client">https://git.apache.org/repos/asf/incubator-nlpcraft-java-client</a><li><a target="asf" href="https://git.apache.org/repos/asf/incubator-nlpcraft-ui">https://git.apache.org/repos/asf/incubator-nlpcraft-ui</a></ul><p> GitHub mirrors (contributors pull-requests):</p><ul><li><a target="github" href="https://github.com/apache/incubator-nlpcraft">https://github.com/apache/incubator-nlpcraft</a><li><a target="github" href="https://github.com/apache/incubator-nlpcraft-java-client">https://github.com/apache/incubator-nlpcraft-java-client</a><li><a target="github" href="https://github.com/apache/incubator-nlpcraft-ui">https://github.com/apache/incubator-nlpcraft-ui</a></ul><p>General Git workflow rules:</p><ul><li> <code>master</code> branch represents current work-in-progress and is generally maintained so that all tests are passing in <code>master</code>.<ul><li>Nightly builds can be cut from the master.</ul><li> Once all tickets for the current sprint are fixed and merged to <code>master</code>, the tagged branch (<code>v0.7.4, v0.7.5</code>) is created for the release.<ul><li>Each release has a Git tag associated with it.</ul><li> Committers use feature branches for their work, while contributors use pull-requests from GitHub mirror.<ul><li> Feature branches should be named after their JIRA tickets, i.e. for ticket <code>NLPCRAFT-012</code> the branch should be named <code>NLPCRAFT-012</code>.</ul><li> Committers create feature branches off the <code>master</code> branch.<li> Merging should use Git <code>squashing</code> to minimize number of intermittent commits.</ul><h2 class="section-sub-title">Creating GitHub Pull-Request <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><pre>
+------------+ +---------------+ +-----------------+
| | replica | | fork | |
| Apache Git | ==========> | GitHub Mirror | ---------> | John Doe's Fork |
diff --git a/docs.html b/docs.html
index cb3dadf..69bf582 100644
--- a/docs.html
+++ b/docs.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Docs</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Docs </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a class="active" href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Apache NLPCraft is a Scala3-based <a target=_blank href="https://www.apache.org/licenses/">open source</a> library for adding a natural language interface to modern applications. It allows you to build applications that people can interact with using a natural language augmenting existing UI/UX with fidelity and simplicity of a familiar spoken language. Natural Language has no learning curve, no special rules or cumbersome syntax to master - it's a natural interface that your users already know.</p><h2 class="section-sub-title">Deterministic Intent Matching <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft is designed around an advanced <a href="/intent-matching.html">Intent Definition Language</a> (IDL) for defining non-trivial intents and a <em>fully deterministic</em> intent matching algorithm for the input sentences. Full determinism of the NLPCraft is its unique capability in contrast to many ML-based approaches that only provide statistical answer without full guarantee or traceability. Full determinism makes NLPCraft an ideal tool for domain-specific natural language application like command-and-control or mission critical systems vis-a-vis common language comprehension tools like ChatGPT. NLPCraft is also an ideal library for use cases where execution proof or traceability is required, e.g. blockchain decentralized applications.</p><h2 class="section-sub-title">Supported Languages <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft is language agnostic and can work with most modern languages that have basic NLP infrastructure available like English, French, German, Spanish, Russian, etc. Note that NLPCraft does not provide its own low-level NLP plumbing like stemmatization and lemmatization and relies on 3rd party libraries like <a href="https://opennlp.apache.org/" target="_blank">OpenNLP</a> or <a href="https://nlp.stanford.edu/" target="_blank">StanfordNLP</a> to be configured to provide that functionality.</p></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">On This Page<li><a href="#overview">Overview</a><li class="side-nav-title">Quick Links<li> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">Examples</a><li> <i class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">Scaladoc</a><li> <i class="fas fa-fw fa-download mr-2"></i><a href="/download.html">Download</a><li> <i class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a><li class="side-nav-title">Support<li> <nobr> <i class="fab fa-fw fa-jira mr-2"></i><a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">JIRA</a> </nobr><li> <nobr> <i class="far fa-fw fa-envelope mr-2"></i><a target="dev-list" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">Dev List</a> </nobr><li> <nobr> <i class="fab fa-fw fa-stack-overflow mr-2"></i><a target="so" href="https://stackoverflow.com/questions/ask">Stack Overflow</a> </nobr><li> <nobr> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> </nobr><li> <nobr> <i class="fab fa-fw fa-gitter mr-2"></i><a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a> </nobr><li> <nobr> <i class="fab fa-fw fa-twitter mr-2"></i><a target="twitter" href="https://twitter.com/ApacheNLPCraft">Twitter</a> </nobr></ul></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Docs</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Docs </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a class="active" href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Apache NLPCraft is a Scala3-based <a target=_blank href="https://www.apache.org/licenses/">open source</a> library for adding a natural language interface to modern applications. It allows you to build applications that people can interact with using a natural language augmenting existing UI/UX with fidelity and simplicity of a familiar spoken language. Natural Language has no learning curve, no special rules or cumbersome syntax to master - it's a natural interface that your users already know.</p><h2 class="section-sub-title">Deterministic Intent Matching <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft is designed around an advanced <a href="/intent-matching.html">Intent Definition Language</a> (IDL) for defining non-trivial intents and a <em>fully deterministic</em> intent matching algorithm for the input sentences. Full determinism of the NLPCraft is its unique capability in contrast to many ML-based approaches that only provide statistical answer without full guarantee or traceability. Full determinism makes NLPCraft an ideal tool for domain-specific natural language application like command-and-control or mission critical systems vis-a-vis common language comprehension tools like ChatGPT. NLPCraft is also an ideal library for use cases where execution proof or traceability is required, e.g. blockchain decentralized applications.</p><h2 class="section-sub-title">Supported Languages <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft is language agnostic and can work with most modern languages that have basic NLP infrastructure available like English, French, German, Spanish, Russian, etc. Note that NLPCraft does not provide its own low-level NLP plumbing like stemmatization and lemmatization and relies on 3rd party libraries like <a href="https://opennlp.apache.org/" target="_blank">OpenNLP</a> or <a href="https://nlp.stanford.edu/" target="_blank">StanfordNLP</a> to be configured to provide that functionality.</p></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">On This Page<li><a href="#overview">Overview</a><li class="side-nav-title">Quick Links<li> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">Examples</a><li> <i class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">Scaladoc</a><li> <i class="fas fa-fw fa-download mr-2"></i><a href="/download.html">Download</a><li> <i class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a><li class="side-nav-title">Support<li> <nobr> <i class="fab fa-fw fa-jira mr-2"></i><a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">JIRA</a> </nobr><li> <nobr> <i class="far fa-fw fa-envelope mr-2"></i><a target="dev-list" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">Dev List</a> </nobr><li> <nobr> <i class="fab fa-fw fa-stack-overflow mr-2"></i><a target="so" href="https://stackoverflow.com/questions/ask">Stack Overflow</a> </nobr><li> <nobr> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> </nobr><li> <nobr> <i class="fab fa-fw fa-gitter mr-2"></i><a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a> </nobr><li> <nobr> <i class="fab fa-fw fa-twitter mr-2"></i><a target="twitter" href="https://twitter.com/ApacheNLPCraft">Twitter</a> </nobr></ul></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
diff --git a/download.html b/download.html
index d2ba7d5..830d2ba 100644
--- a/download.html
+++ b/download.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Download</ol><h1 class="page-title"> <span><i class="fas fa-fw fa-download"></i> Download</span></h1><div id="downloads" class="three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="prerequisites"><h2 class="section-title">Support <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> For any questions, feedback or suggestions:</p><ul><li> Look through <a href="/installation.html">Installation</a> instructions<li> File a bug or improvement in <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT">NLPCraft JIRA</a><li> Post a question at <i class="fab fa-stack-overflow"></i> <a href="https://stackoverflow.com/questions/ask">Stack Overflow</a> using <code>nlpcraft</code> tag<li> Access <a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> mirror repository.<li> Join project developers on <a href="mailto:dev@nlpcraft.apache.org">dev@nlpcraft.apache.org</a> (<a href="mailto:dev-subscribe@nlpcraft.apache.org">subscribe</a>, <a target="_" href="https://lists.apache.org/list.html?dev@nlpcraft.apache.org">archive</a>)</ul><p> By downloading NLPCraft you are agreeing to <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a> terms <span class="amp">&</span> conditions.</p></section><section id="src"><h2 class="section-title">Official Apache Release <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Download the NLPCraft release - <code><b>1.0.0</b></code> is the latest version:</p><table class="gradient-table max-width"><thead><tr><th>File Name<th>Version<th>Java - Scala<th>Release Date<th>Signatures<th><tbody><tr style="vertical-align: center"><td> <b> <i class="fa fa-fw fa-download"></i> <a href="https://www.apache.org/dyn/closer.cgi?filename=incubator/nlpcraft/nlpcraft/apache-nlpcraft-incubating-1.0.0.zip&action=download">apache-nlpcraft-1.0.0.zip</a> <span class="latest">new</span> </b><td> <b> <nobr>1.0.0</nobr> </b><td> <b> <nobr><i class="fab fa-fw fa-java"></i>11 -<div class="scala-16"></div>3.1.3</nobr> </b><td> <b> March 30, 2023 </b><td class="download-sigs"> <a href="https://downloads.apache.org/incubator/nlpcraft/nlpcraft/apache-nlpcraft-incubating-1.0.0.zip.sha256">SHA256</a> <a href="https://downloads.apache.org/incubator/nlpcraft/nlpcraft/apache-nlpcraft-incubating-1.0.0.zip.asc">PGP</a><td> <a href="/relnotes/release-notes-1.0.0.html"><i class="fas fa-fw fa-file-alt"></i></a> <a target=_ href="/apis/scaladoc-1.0.0/index.html"><i class="fas fa-fw fa-code"></i></a> <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/v1.0.0"><i class="fab fa-fw fa-github"></i></a></table><div class="bq info"><p> <b>Release Verification</b></p><p> All release files should be verified using the PGP signatures and the <a href="https://downloads.apache.org/incubator/nlpcraft/KEYS">project release KEYS</a>. See official ASF <a target="asf" href="https://www.apache.org/dyn/closer.cgi#verify">verification instructions</a> for a description of using the PGP and KEYS files for verification. A SHA512 checksum is also provided as an alternative verification method.</p></div></section><section id="zip"><h2 class="section-title">Binary Release <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Download the NLPCraft binary release - <code><b>1.0.0</b></code> is the latest version:</p><table class="gradient-table max-width"><thead><tr><th>File Name<th>Version<th>Java - Scala<th>Release Date<th>Signatures<th><tbody><tr><td> <b> <i class="fa fa-fw fa-download"></i> <a href="https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip">apache-nlpcraft-bin-1.0.0.zip</a> <span class="latest">new</span> </b><td> <b> 1.0.0 </b><td> <b> <nobr><i class="fab fa-fw fa-java"></i>11 -<div class="scala-16"></div>3.1.3</nobr> </b><td><nobr> <b> March 30, 2023 </b> </nobr><td class="download-sigs"> <a href="https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip.sha256">SHA256</a> <a href="https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip.asc">PGP</a><td> <a href="/relnotes/release-notes-1.0.0.html"><i class="fas fa-fw fa-file-alt"></i></a> <a target=_ href="/apis/scaladoc-1.0.0/index.html"><i class="fas fa-fw fa-code"></i></a> <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/v1.0.0"><i class="fab fa-fw fa-github"></i></a></table><div class="bq success"><p> <b>Apache Release Policy</b></p><p> Binary downloads are provided for the convenience of our users and <b>are not official</b> Apache NLPCraft releases. In order to verify the release, we recommend that you download the official source distribution and <a href="#verification">verify</a> the signatures of the downloaded files before opening them. See <a target="asf" href="https://www.apache.org/dev/release.html#what">more</a> information about Apache release policy.</p></div></section><section id="build"><h2 class="section-title">Building Binaries <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> To build binaries from the source release download the <a href="#src">source release</a> and run the following commands:</p><b>Unpack the source package:</b><pre class="brush: bash">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Download</ol><h1 class="page-title"> <span><i class="fas fa-fw fa-download"></i> Download</span></h1><div id="downloads" class="three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="prerequisites"><h2 class="section-title">Support <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> For any questions, feedback or suggestions:</p><ul><li> Look through <a href="/installation.html">Installation</a> instructions<li> File a bug or improvement in <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT">NLPCraft JIRA</a><li> Post a question at <i class="fab fa-stack-overflow"></i> <a href="https://stackoverflow.com/questions/ask">Stack Overflow</a> using <code>nlpcraft</code> tag<li> Access <a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> mirror repository.<li> Join project developers on <a href="mailto:dev@nlpcraft.apache.org">dev@nlpcraft.apache.org</a> (<a href="mailto:dev-subscribe@nlpcraft.apache.org">subscribe</a>, <a target="_" href="https://lists.apache.org/list.html?dev@nlpcraft.apache.org">archive</a>)</ul><p> By downloading NLPCraft you are agreeing to <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a> terms <span class="amp">&</span> conditions.</p></section><section id="src"><h2 class="section-title">Official Apache Release <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Download the NLPCraft release - <code><b>1.0.0</b></code> is the latest version:</p><table class="gradient-table max-width"><thead><tr><th>File Name<th>Version<th>Java - Scala<th>Release Date<th>Signatures<th><tbody><tr style="vertical-align: center"><td> <b> <i class="fa fa-fw fa-download"></i> <a href="https://www.apache.org/dyn/closer.cgi?filename=incubator/nlpcraft/nlpcraft/apache-nlpcraft-incubating-1.0.0.zip&action=download">apache-nlpcraft-1.0.0.zip</a> <span class="latest">new</span> </b><td> <b> <nobr>1.0.0</nobr> </b><td> <b> <nobr><i class="fab fa-fw fa-java"></i>11 -<div class="scala-16"></div>3.1.3</nobr> </b><td> <b> March 30, 2023 </b><td class="download-sigs"> <a href="https://downloads.apache.org/incubator/nlpcraft/nlpcraft/apache-nlpcraft-incubating-1.0.0.zip.sha256">SHA256</a> <a href="https://downloads.apache.org/incubator/nlpcraft/nlpcraft/apache-nlpcraft-incubating-1.0.0.zip.asc">PGP</a><td> <a href="/relnotes/release-notes-1.0.0.html"><i class="fas fa-fw fa-file-alt"></i></a> <a target=_ href="/apis/scaladoc-1.0.0/index.html"><i class="fas fa-fw fa-code"></i></a> <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/v1.0.0"><i class="fab fa-fw fa-github"></i></a></table><div class="bq info"><p> <b>Release Verification</b></p><p> All release files should be verified using the PGP signatures and the <a href="https://downloads.apache.org/incubator/nlpcraft/KEYS">project release KEYS</a>. See official ASF <a target="asf" href="https://www.apache.org/dyn/closer.cgi#verify">verification instructions</a> for a description of using the PGP and KEYS files for verification. A SHA512 checksum is also provided as an alternative verification method.</p></div></section><section id="zip"><h2 class="section-title">Binary Release <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Download the NLPCraft binary release - <code><b>1.0.0</b></code> is the latest version:</p><table class="gradient-table max-width"><thead><tr><th>File Name<th>Version<th>Java - Scala<th>Release Date<th>Signatures<th><tbody><tr><td> <b> <i class="fa fa-fw fa-download"></i> <a href="https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip">apache-nlpcraft-bin-1.0.0.zip</a> <span class="latest">new</span> </b><td> <b> 1.0.0 </b><td> <b> <nobr><i class="fab fa-fw fa-java"></i>11 -<div class="scala-16"></div>3.1.3</nobr> </b><td><nobr> <b> March 30, 2023 </b> </nobr><td class="download-sigs"> <a href="https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip.sha256">SHA256</a> <a href="https://github.com/aradzinski/binstore/releases/download/v1.0.0/apache-nlpcraft-incubating-bin-1.0.0.zip.asc">PGP</a><td> <a href="/relnotes/release-notes-1.0.0.html"><i class="fas fa-fw fa-file-alt"></i></a> <a target=_ href="/apis/scaladoc-1.0.0/index.html"><i class="fas fa-fw fa-code"></i></a> <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/v1.0.0"><i class="fab fa-fw fa-github"></i></a></table><div class="bq success"><p> <b>Apache Release Policy</b></p><p> Binary downloads are provided for the convenience of our users and <b>are not official</b> Apache NLPCraft releases. In order to verify the release, we recommend that you download the official source distribution and <a href="#verification">verify</a> the signatures of the downloaded files before opening them. See <a target="asf" href="https://www.apache.org/dev/release.html#what">more</a> information about Apache release policy.</p></div></section><section id="build"><h2 class="section-title">Building Binaries <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> To build binaries from the source release download the <a href="#src">source release</a> and run the following commands:</p><b>Unpack the source package:</b><pre class="brush: bash">
$ unzip -q apache-nlpcraft-incubating-1.0.0.zip
$ cd apache-nlpcraft-incubating-1.0.0
</pre><b>Build NLPCraft:</b><pre class="brush: bash">
diff --git a/examples/calculator.html b/examples/calculator.html
index 9b637db..6972505 100644
--- a/examples/calculator.html
+++ b/examples/calculator.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Calculator <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Calculator <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a class="active" href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple calculator implementation. It supports restricted set of arithmetic operations for numeric values.</p><p> <b>Complexity:</b> <span class="complexity-one-star"><i class="fas fa-star"></i> <i class="far fa-star"></i> <i class="far fa-star"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/calculator">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Calculator <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Calculator <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a class="active" href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple calculator implementation. It supports restricted set of arithmetic operations for numeric values.</p><p> <b>Complexity:</b> <span class="complexity-one-star"><i class="fas fa-star"></i> <i class="far fa-star"></i> <i class="far fa-star"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/calculator">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"
lazy val root = (project in file("."))
diff --git a/examples/light_switch.html b/examples/light_switch.html
index 4bed560..7022337 100644
--- a/examples/light_switch.html
+++ b/examples/light_switch.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Light Switch <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Light Switch <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a class="active" href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple implementation for NLI-powered light switch. You can say something like "Turn the lights off in the entire house" or "Switch on the illumination in the master bedroom closet". By modifying intent callbacks using, for example, HomeKit or Arduino-based controllers you can provide the actual light switching.</p><p> <b>Complexity:</b> <span class="complexity-one-star"><i class="fas fa-star"></i> <i class="far fa-star"></i> <i class="far fa-star"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/lightswitch">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Light Switch <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Light Switch <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a class="active" href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple implementation for NLI-powered light switch. You can say something like "Turn the lights off in the entire house" or "Switch on the illumination in the master bedroom closet". By modifying intent callbacks using, for example, HomeKit or Arduino-based controllers you can provide the actual light switching.</p><p> <b>Complexity:</b> <span class="complexity-one-star"><i class="fas fa-star"></i> <i class="far fa-star"></i> <i class="far fa-star"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/lightswitch">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"
lazy val root = (project in file("."))
diff --git a/examples/light_switch_fr.html b/examples/light_switch_fr.html
index ee5fd59..cec7711 100644
--- a/examples/light_switch_fr.html
+++ b/examples/light_switch_fr.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Light Switch FR <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Light Switch FR <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a class="active" href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple French language implementation for NLI-powered light switch. You can say something like "Éteignez les lumières dans toute la maison" or "Allumez les lumières". By modifying intent callbacks using, for example, HomeKit or Arduino-based controllers you can provide the actual light switching.</p><p> <b>Complexity:</b> <span class="complexity-two-star"><i class="fas fa-square"></i> <i class="fas fa-square"></i> <i class="far fa-square"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/lightswitch_fr">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7, 8, 9, 10]">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Light Switch FR <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Light Switch FR <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a class="active" href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple French language implementation for NLI-powered light switch. You can say something like "Éteignez les lumières dans toute la maison" or "Allumez les lumières". By modifying intent callbacks using, for example, HomeKit or Arduino-based controllers you can provide the actual light switching.</p><p> <b>Complexity:</b> <span class="complexity-two-star"><i class="fas fa-square"></i> <i class="fas fa-square"></i> <i class="far fa-square"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/lightswitch_fr">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7, 8, 9, 10]">
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"
lazy val root = (project in file("."))
diff --git a/examples/light_switch_ru.html b/examples/light_switch_ru.html
index 1ac78be..ee8d7e6 100644
--- a/examples/light_switch_ru.html
+++ b/examples/light_switch_ru.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Light Switch RU <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Light Switch RU <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a class="active" href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple Russian language implementation for NLI-powered light switch. You can say something like "Выключи свет по всем доме" or "Включи свет в детской". By modifying intent callbacks using, for example, HomeKit or Arduino-based controllers you can provide the actual light switching.</p><p> <b>Complexity:</b> <span class="complexity-two-star"><i class="fas fa-square"></i> <i class="fas fa-square"></i> <i class="far fa-square"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/lightswitch_ru">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7, 8, 9, 10]">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Light Switch RU <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Light Switch RU <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a class="active" href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple Russian language implementation for NLI-powered light switch. You can say something like "Выключи свет по всем доме" or "Включи свет в детской". By modifying intent callbacks using, for example, HomeKit or Arduino-based controllers you can provide the actual light switching.</p><p> <b>Complexity:</b> <span class="complexity-two-star"><i class="fas fa-square"></i> <i class="fas fa-square"></i> <i class="far fa-square"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/lightswitch_ru">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7, 8, 9, 10]">
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"
lazy val root = (project in file("."))
diff --git a/examples/pizzeria.html b/examples/pizzeria.html
index a47edab..4ed7b0c 100644
--- a/examples/pizzeria.html
+++ b/examples/pizzeria.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Pizzeria <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Pizzeria <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a class="active" href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a simple pizza ordering model. It demonstrates how to work with dialogue systems which require confirmation logic.</p><p> <b>Complexity:</b> <span class="complexity-three-star"><i class="fas fa-gem"></i> <i class="fas fa-gem"></i> <i class="fas fa-gem"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/caclulator">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Pizzeria <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Pizzeria <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a class="active" href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a simple pizza ordering model. It demonstrates how to work with dialogue systems which require confirmation logic.</p><p> <b>Complexity:</b> <span class="complexity-three-star"><i class="fas fa-gem"></i> <i class="fas fa-gem"></i> <i class="fas fa-gem"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/caclulator">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"
lazy val root = (project in file("."))
diff --git a/examples/time.html b/examples/time.html
index 7e8024d..35e7cb0 100644
--- a/examples/time.html
+++ b/examples/time.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Time <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Time <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a class="active" href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple implementation for world time bot. You can say something like "What time is it now in New York City" or "What's the local time?".</p><p> <b>Complexity:</b> <span class="complexity-one-star"><i class="fas fa-star"></i> <i class="far fa-star"></i> <i class="far fa-star"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/time">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Time <code><sub>ex</sub></code></ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cube"></i> Time <code><sub>ex</sub></code> </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a class="active" href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column example"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> This example provides a very simple implementation for world time bot. You can say something like "What time is it now in New York City" or "What's the local time?".</p><p> <b>Complexity:</b> <span class="complexity-one-star"><i class="fas fa-star"></i> <i class="far fa-star"></i> <i class="far fa-star"></i></span><br/> <span class="ex-src">Source code: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples/time">GitHub <i class="fab fa-fw fa-github"></i></a><br/></span> <span class="ex-review-all">Review: <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">All Examples at GitHub <i class="fab fa-fw fa-github"></i></a></span></p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"
lazy val root = (project in file("."))
diff --git a/feed.xml b/feed.xml
index 1549bb4..b6a3b5a 100644
--- a/feed.xml
+++ b/feed.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.2">Jekyll</generator><link href="http://localhost:4000/feed.xml" rel="self" type="application/atom+xml" /><link href="http://localhost:4000/" rel="alternate" type="text/html" /><updated>2023-03-04T09:00:16+04:00</updated><id>http://localhost:4000/feed.xml</id><title type="html">Apache NLPCraft</title></feed>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="http://localhost:4000/feed.xml" rel="self" type="application/atom+xml" /><link href="http://localhost:4000/" rel="alternate" type="text/html" /><updated>2025-02-28T23:32:03-08:00</updated><id>http://localhost:4000/feed.xml</id><title type="html">Apache NLPCraft</title></feed>
\ No newline at end of file
diff --git a/first-example.html b/first-example.html
index b9d345a..2da8ddb 100644
--- a/first-example.html
+++ b/first-example.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Docs</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Docs </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a class="active" href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="setup"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> It is highly recommended to familiarize yourself with the <a href="/key-concepts.html">key concepts</a> first.</p><p> Let's develop the first NLPCraft example to learn the basic workflow of NLPCraft. We'll put together a NLI-powered home light switch prototype that can be controlled through the natural language. We'll keep <a target=_ href="https://cloud.google.com/speech-to-text/">speech-to-text conversion</a> and integration with <a target=_ href="https://developer.apple.com/homekit/">HomeKit</a> or <a href="https://www.arduino.cc/" target=_>Ardunio</a> outside of this example - and concentrate just on understanding the natural language commands.</p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Docs</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Docs </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a class="active" href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="setup"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> It is highly recommended to familiarize yourself with the <a href="/key-concepts.html">key concepts</a> first.</p><p> Let's develop the first NLPCraft example to learn the basic workflow of NLPCraft. We'll put together a NLI-powered home light switch prototype that can be controlled through the natural language. We'll keep <a target=_ href="https://cloud.google.com/speech-to-text/">speech-to-text conversion</a> and integration with <a target=_ href="https://developer.apple.com/homekit/">HomeKit</a> or <a href="https://www.arduino.cc/" target=_>Ardunio</a> outside of this example - and concentrate just on understanding the natural language commands.</p></section><section id="new_project"><h2 class="section-title">Create New Project <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> You can create new Scala projects in many ways - we'll use SBT to accomplish this task. Make sure that <code>build.sbt</code> file has the following content:</p><pre class="brush: js, highlight: [7]">
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "3.2.2"
lazy val root = (project in file("."))
diff --git a/googlefce85cba8500a10c.html b/googlefce85cba8500a10c.html
deleted file mode 100644
index 7ef55ef..0000000
--- a/googlefce85cba8500a10c.html
+++ /dev/null
@@ -1 +0,0 @@
-google-site-verification: googlefce85cba8500a10c.html
\ No newline at end of file
diff --git a/index.html b/index.html
index b71be7e..3bf934e 100644
--- a/index.html
+++ b/index.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div id="banner-box" class="bottom-arrow"><div id="inner-banner-box"><div id="banner"><div id="nat-lang-itf">Apache NLPCraft</div><h1 id="banner-sub-title">A Scala library to convert natural language into actions</h1><div> <a id="get-started-btn" role="button" href="docs.html" class="btn mt-5"> GET STARTED <i class="fas fa-fw fa-book"></i></a></div></div></div></div><div id="about-nlpcraft" class="bottom-arrow main-section"><div class="container-fluid"><div class="row"><div class="col-4"><h2 class="section-title">What Is <span>NLPCraft</span></h2><section><p> Apache NLPCraft® is an open source Scala3-based library for adding natural language Interface to modern applications. It enables people to interact with your products using voice or text.</p><p> Based on fully deterministic semantic-based intent comprehension NLPCraft provides fully trackable natural language-to-action converter in an easy to use and simple to deploy library.</p><div class="learn-more"> <a href="docs.html">Learn more <i class="align-text-bottom fas fa-angle-right"></i></a></div></section></div><div class="col-4"><h2 class="section-title">Natural <span>Language</span></h2><section><p> Natural Language Interface enables users to interact with any type of products using natural language augmenting existing UI/UX with fidelity and simplicity of a familiar spoken language.</p><p> Natural Language has no learning curve, no special rules or cumbersome syntax to master - it's a natural interface that your users <em>already know</em>.</p></section></div><div class="col-4"><h2 class="section-title">Quick <span>Links</span></h2><section><div class="quick-link" > <a href="https://github.com/apache/incubator-nlpcraft" target="github"> <img class="quick-link-img" src="/images/github_logo-h32.png" alt=""> </a><div class="gh-btn"> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/subscription" data-icon="octicon-eye" aria-label="Watch on GitHub">Watch</a></div><div class="gh-btn"> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples" aria-label="NLPCraft examples on GitHub">Examples</a></div><a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a></div><div class="quick-link" > <i style="font-size: 150%" class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">1.0.0 Scaladoc</a> <i style="font-size: 150%; margin-left: 15px" class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a></div><div class="quick-link"> <img alt="" class="quick-link-img" src="/images/apache_20_logo2-h32.png"> <a target="asf" href="https://www.apache.org/licenses/">License</a> <span class="sep">•</span> <a target="asf" href="https://www.apache.org/security">Security</a> <span class="sep">•</span> <a target="asf" href="https://www.apache.org/foundation/thanks.html">Thanks</a> <span class="sep">•</span> <a target="asf" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></div></section></div></div></div></div><div id="home-events" class="bottom-arrow main-section"><div class="container-fluid"><div class="row"><div class="col-12"><h2 class="section-title">Key <span>Features</span> <i class="fas fa-cube"></i></h2></div></div><div class="row"><div class="col-4"><h3 class="sub-section-title">Intent Definition Language</h3><section><p> Advanced <a href="/intent-matching.html">Intent Definition Language</a> (IDL) coupled with deterministic intent matching provide ease of use and unprecedented expressiveness for developing non-trivial intent comprehension.</p></section></div><div class="col-4"><h3 class="sub-section-title">Short-Term-Memory</h3><section><p> Advanced out-of-the-box support for maintaining and managing conversational context that is fully integrated with intent matching.</p></section></div><div class="col-4"><h3 class="sub-section-title">By Devs - For Devs</h3><section><p> Built with a singular focus - provide modern developers with unprecedented productivity and efficiency when building modern natural language applications.</p></section></div></div><div class="row mt-4"><div class="col-4"><h3 class="sub-section-title">Any Data Source</h3><section><p> NLPCraft supports any data source, device, or service - public or private. From databases and SaaS systems, to smart home devices, voice assistants and chatbots.</p></section></div><div class="col-4"><h3 class="sub-section-title">Model-As-A-Code</h3><section><p> Everything you do with NLPCraft is part of your source code reflecting how engineers work. No more awkward web UIs splitting your logic across different incompatible places.</p></section></div><div class="col-4"><h3 class="sub-section-title">Scala3 <img style="height: 32px; vertical-align: sub" src="images/scala-swoosh.png"></h3><section><p> NLPCraft is built natively in Scala3 supporting all the latest Scala ecosystem of tools and libraries.</p></section></div></div><div class="learn-more"> <a href="docs.html">Learn more <i class="align-text-bottom fas fa-angle-right"></i></a></div></div></div><div id="news" class="bottom-arrow main-section"><div class="container-fluid"><div class="row"><div class="col-12"><h2 class="section-title">Latest <span>News</span></h2></div></div><div id="news-container" class="row"><div class="col-4"><div class="news-title"> <a href="/relnotes/release-notes-1.0.0.html" target=_self> Apache NLPCraft 1.0.0 Released </a></div><div class="news-excerpt"> <a target=_self href="/relnotes/release-notes-1.0.0.html">After 18 months of deep refactoring the final NLPCraft 1.0.0 is released. Scala 3 support + a whole set of usability improvements and enhancements.</a></div><div class="news-footer"> <img class="avatar-img" src="/images/nlpcraft_logo.png" alt=""> <a target="twitter" href="https://twitter.com/apachenlpcraft"><i class="fab fa-fw fa-twitter"></i></a> <span class="text-nowrap">March 30, 2023</span></div></div><div class="col-4"><div class="news-title"> <a href="/relnotes/release-notes-0.9.0.html" target=_self> Apache NLPCraft 0.9.0 Released </a></div><div class="news-excerpt"> <a target=_self href="/relnotes/release-notes-0.9.0.html">Download NLPCraft 0.9.0. Scala 2.13 support + over 35 💪 fixes, improvements and enhancements.</a></div><div class="news-footer"> <img class="avatar-img" src="/images/nlpcraft_logo.png" alt=""> <a target="twitter" href="https://twitter.com/apachenlpcraft"><i class="fab fa-fw fa-twitter"></i></a> <span class="text-nowrap">July 30, 2021</span></div></div><div class="col-4"><div class="news-title"> <a href="https://habr.com/ru/post/561230/" target=habr> Как добавить NLP в Minecraft </a></div><div class="news-excerpt"> <a target=habr href="https://habr.com/ru/post/561230/">Создание хороших примеров по использованию NLP инструментария - не самая простая задача... </a></div><div class="news-footer"> <img class="avatar-img" src="/images/sergey_kamov_avatar.png" alt=""> Сергей Камов <a target="twitter" href="https://twitter.com/apachenlpcraft"><i class="fab fa-fw fa-twitter"></i></a> <span class="text-nowrap">June 7, 2021</span></div></div></div></div></div><div id="about" class="bottom-arrow main-section"><div class="container-fluid"><div id="about-container" class="row"><div class="col-7" style="margin-top: 50px;"><p> <a href="https://www.apache.org/licenses/LICENSE-2.0" target=_><img src="/images/asf20-h64.png" alt=""></a></p><p> Apache NLPCraft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.</p><p> While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. Licensed under the Apache License, Version 2.0. Apache NLPCraft, Apache, the Apache feather, and the Apache NLPCraft project logo are either trademarks or registered trademarks of the Apache Software Foundation.</p></div><div class="col-5" style="max-width: 500px; margin: auto; padding-top: 50px;"> <a class="twitter-timeline" data-height="400" data-theme="light" data-cards="hidden" href="https://twitter.com/ApacheNLPCraft">Tweets by ApacheNLPCraft</a> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script><p></p><a href="https://twitter.com/apachenlpcraft" class="twitter-follow-button" data-size="large" data-show-count="false">Follow @apachenlpcraft</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div id="banner-box" class="bottom-arrow"><div id="inner-banner-box"><div id="banner"><div id="nat-lang-itf">Apache NLPCraft</div><h1 id="banner-sub-title">A Scala library to convert natural language into actions</h1><div> <a id="get-started-btn" role="button" href="docs.html" class="btn mt-5"> GET STARTED <i class="fas fa-fw fa-book"></i></a></div></div></div></div><div id="about-nlpcraft" class="bottom-arrow main-section"><div class="container-fluid"><div class="row"><div class="col-4"><h2 class="section-title">What Is <span>NLPCraft</span></h2><section><p> Apache NLPCraft® is an open source Scala3-based library for adding natural language Interface to modern applications. It enables people to interact with your products using voice or text.</p><p> Based on fully deterministic semantic-based intent comprehension NLPCraft provides fully trackable natural language-to-action converter in an easy to use and simple to deploy library.</p><div class="learn-more"> <a href="docs.html">Learn more <i class="align-text-bottom fas fa-angle-right"></i></a></div></section></div><div class="col-4"><h2 class="section-title">Natural <span>Language</span></h2><section><p> Natural Language Interface enables users to interact with any type of products using natural language augmenting existing UI/UX with fidelity and simplicity of a familiar spoken language.</p><p> Natural Language has no learning curve, no special rules or cumbersome syntax to master - it's a natural interface that your users <em>already know</em>.</p></section></div><div class="col-4"><h2 class="section-title">Quick <span>Links</span></h2><section><div class="quick-link" > <a href="https://github.com/apache/incubator-nlpcraft" target="github"> <img class="quick-link-img" src="/images/github_logo-h32.png" alt=""> </a><div class="gh-btn"> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/subscription" data-icon="octicon-eye" aria-label="Watch on GitHub">Watch</a></div><div class="gh-btn"> <a class="github-button" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples" aria-label="NLPCraft examples on GitHub">Examples</a></div><a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a></div><div class="quick-link" > <i style="font-size: 150%" class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">1.0.0 Scaladoc</a> <i style="font-size: 150%; margin-left: 15px" class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a></div><div class="quick-link"> <img alt="" class="quick-link-img" src="/images/apache_20_logo2-h32.png"> <a target="asf" href="https://www.apache.org/licenses/">License</a> <span class="sep">•</span> <a target="asf" href="https://www.apache.org/security">Security</a> <span class="sep">•</span> <a target="asf" href="https://www.apache.org/foundation/thanks.html">Thanks</a> <span class="sep">•</span> <a target="asf" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></div></section></div></div></div></div><div id="home-events" class="bottom-arrow main-section"><div class="container-fluid"><div class="row"><div class="col-12"><h2 class="section-title">Key <span>Features</span> <i class="fas fa-cube"></i></h2></div></div><div class="row"><div class="col-4"><h3 class="sub-section-title">Intent Definition Language</h3><section><p> Advanced <a href="/intent-matching.html">Intent Definition Language</a> (IDL) coupled with deterministic intent matching provide ease of use and unprecedented expressiveness for developing non-trivial intent comprehension.</p></section></div><div class="col-4"><h3 class="sub-section-title">Short-Term-Memory</h3><section><p> Advanced out-of-the-box support for maintaining and managing conversational context that is fully integrated with intent matching.</p></section></div><div class="col-4"><h3 class="sub-section-title">By Devs - For Devs</h3><section><p> Built with a singular focus - provide modern developers with unprecedented productivity and efficiency when building modern natural language applications.</p></section></div></div><div class="row mt-4"><div class="col-4"><h3 class="sub-section-title">Any Data Source</h3><section><p> NLPCraft supports any data source, device, or service - public or private. From databases and SaaS systems, to smart home devices, voice assistants and chatbots.</p></section></div><div class="col-4"><h3 class="sub-section-title">Model-As-A-Code</h3><section><p> Everything you do with NLPCraft is part of your source code reflecting how engineers work. No more awkward web UIs splitting your logic across different incompatible places.</p></section></div><div class="col-4"><h3 class="sub-section-title">Scala3 <img style="height: 32px; vertical-align: sub" src="images/scala-swoosh.png"></h3><section><p> NLPCraft is built natively in Scala3 supporting all the latest Scala ecosystem of tools and libraries.</p></section></div></div><div class="learn-more"> <a href="docs.html">Learn more <i class="align-text-bottom fas fa-angle-right"></i></a></div></div></div><div id="news" class="bottom-arrow main-section"><div class="container-fluid"><div class="row"><div class="col-12"><h2 class="section-title">Latest <span>News</span></h2></div></div><div id="news-container" class="row"><div class="col-4"><div class="news-title"> <a href="/relnotes/release-notes-1.0.0.html" target=_self> Apache NLPCraft 1.0.0 Released </a></div><div class="news-excerpt"> <a target=_self href="/relnotes/release-notes-1.0.0.html">After 18 months of deep refactoring the final NLPCraft 1.0.0 is released. Scala 3 support + a whole set of usability improvements and enhancements.</a></div><div class="news-footer"> <img class="avatar-img" src="/images/nlpcraft_logo.png" alt=""> <a target="twitter" href="https://twitter.com/apachenlpcraft"><i class="fab fa-fw fa-twitter"></i></a> <span class="text-nowrap">March 30, 2023</span></div></div><div class="col-4"><div class="news-title"> <a href="https://habr.com/ru/post/561230/" target=habr> Как добавить NLP в Minecraft </a></div><div class="news-excerpt"> <a target=habr href="https://habr.com/ru/post/561230/">Создание хороших примеров по использованию NLP инструментария - не самая простая задача... </a></div><div class="news-footer"> <img class="avatar-img" src="/images/sergey_kamov_avatar.png" alt=""> Сергей Камов <a target="twitter" href="https://twitter.com/apachenlpcraft"><i class="fab fa-fw fa-twitter"></i></a> <span class="text-nowrap">June 7, 2021</span></div></div><div class="col-4"><div class="news-title"> <a href="https://habr.com/ru/post/559716/" target=habr> Язык определения интентов NLPCraft IDL </a></div><div class="news-excerpt"> <a target=habr href="https://habr.com/ru/post/559716/">Новая версия декларативного языка определения интентов, получившая название NLPCraft IDL (NLPCraft Intents Definition Language), значительно упростила процесс работы с интентами...</a></div><div class="news-footer"> <img class="avatar-img" src="/images/sergey_kamov_avatar.png" alt=""> Сергей Камов <a target="twitter" href="https://twitter.com/apachenlpcraft"><i class="fab fa-fw fa-twitter"></i></a> <span class="text-nowrap">May 28, 2021</span></div></div></div></div></div><div id="about" class="bottom-arrow main-section"><div class="container-fluid"><div id="about-container" class="row"><div class="col-7" style="margin-top: 50px;"><p> <a href="https://www.apache.org/licenses/LICENSE-2.0" target=_><img src="/images/asf20-h64.png" alt=""></a></p><p> Apache NLPCraft is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.</p><p> While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. Licensed under the Apache License, Version 2.0. Apache NLPCraft, Apache, the Apache feather, and the Apache NLPCraft project logo are either trademarks or registered trademarks of the Apache Software Foundation.</p></div><div class="col-5" style="max-width: 500px; margin: auto; padding-top: 50px;"> <a class="twitter-timeline" data-height="400" data-theme="light" data-cards="hidden" href="https://twitter.com/ApacheNLPCraft">Tweets by ApacheNLPCraft</a> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script><p></p><a href="https://twitter.com/apachenlpcraft" class="twitter-follow-button" data-size="large" data-show-count="false">Follow @apachenlpcraft</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
diff --git a/installation.html b/installation.html
index 0570937..b588961 100644
--- a/installation.html
+++ b/installation.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Docs</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cog"></i> Docs </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a class="active" href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div id="installation" class="col-md-8 second-column"><section id="maven"><h2 class="section-title">Maven/Sbt <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> The easiest way to start using NLPCraft is to add SBT dependency to your project:</p><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-sbt" role="tab">SBT <img src="/images/scala-logo-h16.png" alt=""></a> <a class="nav-item nav-link" data-toggle="tab" href="#nav-maven" role="tab">Maven <img src="/images/java2-h20.png" alt=""></a></div></nav><div class="tab-content"><div class="tab-pane fade show active" id="nav-sbt" role="tabpanel"><pre class="brush: scala">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Docs</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-cog"></i> Docs </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a class="active" href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div id="installation" class="col-md-8 second-column"><section id="maven"><h2 class="section-title">Maven/Sbt <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> The easiest way to start using NLPCraft is to add SBT dependency to your project:</p><nav><div class="nav nav-tabs" role="tablist"> <a class="nav-item nav-link active" data-toggle="tab" href="#nav-sbt" role="tab">SBT <img src="/images/scala-logo-h16.png" alt=""></a> <a class="nav-item nav-link" data-toggle="tab" href="#nav-maven" role="tab">Maven <img src="/images/java2-h20.png" alt=""></a></div></nav><div class="tab-content"><div class="tab-pane fade show active" id="nav-sbt" role="tabpanel"><pre class="brush: scala">
libraryDependencies += "org.apache.nlpcraft" % "nlpcraft" % "1.0.0"
</pre></div><div class="tab-pane fade" id="nav-maven" role="tabpanel"><pre class="brush: xml">
<dependency>
diff --git a/intent-matching.html b/intent-matching.html
index 077327d..ae373f2 100644
--- a/intent-matching.html
+++ b/intent-matching.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Intent Matching</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Intent Matching </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a class="active" href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div id="intent-matching" class="col-md-8 second-column"><section><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCModel">NCModel</a> processing logic is defined as a pipeline and the collection of one or more intents to be matched on. The sections below explain what intent is, how to define it in your model, and how it works.</p></section><section id="intent"><h2 class="section-title">Intent <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> The goal of the data model implementation is to take the user input text, pass it through processing pipeline and match the resulting variants to a specific user-defined code that will execute for that input. The mechanism that provides this matching is called an <em>intent</em>.</p><p> The intent generally refers to the goal that the end-user had in mind when speaking or typing the input utterance. The intent has a <em>declarative part or template</em> written in <a href="#idl">IDL - Intent Definition Language</a> that strictly defines a particular form the user input. Intent is also <a href="#binding">bound</a> to a callback method that will be executed when that intent, i.e. its template, is detected as the best match for a given input. A typical data model will have multiple intents defined for each form of the expected user input that model wants to react to.</p><p> For example, a data model for banking chatbot or analytics application can have multiple intents for each domain-specific group of input such as opening an account, closing an account, transferring money, getting statements, etc.</p><p> Intents can be specific or generic in terms of what input they match. Multiple intents can overlap and NLPCraft will disambiguate such cases to select the intent with the overall best match. In general, the most specific intent match wins.</p></section><section id="idl"><h2 class="section-title">IDL Syntax <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft intents are written in Intent Definition Language (IDL). IDL is a relatively straightforward declarative language. For example, here's a simple intent <code>x</code> with two terms <code>a</code> and <code>b</code>:</p><pre class="brush: idl">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Intent Matching</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Intent Matching </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a class="active" href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div id="intent-matching" class="col-md-8 second-column"><section><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCModel">NCModel</a> processing logic is defined as a pipeline and the collection of one or more intents to be matched on. The sections below explain what intent is, how to define it in your model, and how it works.</p></section><section id="intent"><h2 class="section-title">Intent <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> The goal of the data model implementation is to take the user input text, pass it through processing pipeline and match the resulting variants to a specific user-defined code that will execute for that input. The mechanism that provides this matching is called an <em>intent</em>.</p><p> The intent generally refers to the goal that the end-user had in mind when speaking or typing the input utterance. The intent has a <em>declarative part or template</em> written in <a href="#idl">IDL - Intent Definition Language</a> that strictly defines a particular form the user input. Intent is also <a href="#binding">bound</a> to a callback method that will be executed when that intent, i.e. its template, is detected as the best match for a given input. A typical data model will have multiple intents defined for each form of the expected user input that model wants to react to.</p><p> For example, a data model for banking chatbot or analytics application can have multiple intents for each domain-specific group of input such as opening an account, closing an account, transferring money, getting statements, etc.</p><p> Intents can be specific or generic in terms of what input they match. Multiple intents can overlap and NLPCraft will disambiguate such cases to select the intent with the overall best match. In general, the most specific intent match wins.</p></section><section id="idl"><h2 class="section-title">IDL Syntax <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft intents are written in Intent Definition Language (IDL). IDL is a relatively straightforward declarative language. For example, here's a simple intent <code>x</code> with two terms <code>a</code> and <code>b</code>:</p><pre class="brush: idl">
/* Intent 'x' definition. */
intent=x
term(a)~{# == 'my_elm'} // Term 'a'.
diff --git a/key-concepts.html b/key-concepts.html
index b9ac0bd..0b7d2e4 100644
--- a/key-concepts.html
+++ b/key-concepts.html
@@ -15,7 +15,7 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Docs</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Docs </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a class="active" href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column" xmlns="http://www.w3.org/1999/html"><section id="overview"><h2 class="section-title">Key Concepts<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft is based on three main concepts:</p><ul><li> <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCModel">NCModel</a> is a user-configured object responsible for input interpretation.<li> <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCPipeline">NCPipeline</a> is a part of the model that defines specifics of the step-by-step user input processing.<li> <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCModelClient">NCModelClient</a> is responsible for submitting user input to be processed by the model.</ul><p>Here's the typical code structure when working with NLPCraft:</p><pre class="brush: scala, highlight: []">
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Docs</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Docs </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a class="active" href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column" xmlns="http://www.w3.org/1999/html"><section id="overview"><h2 class="section-title">Key Concepts<a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft is based on three main concepts:</p><ul><li> <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCModel">NCModel</a> is a user-configured object responsible for input interpretation.<li> <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCPipeline">NCPipeline</a> is a part of the model that defines specifics of the step-by-step user input processing.<li> <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCModelClient">NCModelClient</a> is responsible for submitting user input to be processed by the model.</ul><p>Here's the typical code structure when working with NLPCraft:</p><pre class="brush: scala, highlight: []">
// Initialize data model including its pipeline.
val mdl = new CustomNlpModel()
diff --git a/relnotes/release-notes-1.0.0.html b/relnotes/release-notes-1.0.0.html
index cc138eb..ec5785e 100644
--- a/relnotes/release-notes-1.0.0.html
+++ b/relnotes/release-notes-1.0.0.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div id="relnotes" class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="index.html">Home</a><li class="mr-1"><a href="/download.html">Download</a><li class="mr-1 active">Release Notes 1.0.0</ol><h1 class="page-title"> <span><i class="fas fa-fw fa-file-alt"></i> Release Notes 1.0.0</span></h1><div class="three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> <a href="/download.html">NLPCraft 1.0.0</a> is a <b>deep refactoring</b> of the project from the ground up. Note that this release is NOT backward compatible with the previous releases.</p></section><section id="new"><h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><ul><li>Too many to mention...</ul></section><section id="enhancements"><h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><ul><li>Too many to mention...</ul></section><section id="fixes"><h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><ul><li>None so far.</ul></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">On This Page<li><a href="#new">New</a><li><a href="#enhancements">Enhancements</a><li><a href="#fixes">Fixes</a><li class="side-nav-title">Quick Links<li> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">Examples</a><li> <i class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">Scaladoc</a><li> <i class="fas fa-fw fa-download mr-2"></i><a href="/download.html">Download</a><li> <i class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a><li class="side-nav-title">Support<li> <nobr> <i class="fab fa-fw fa-jira mr-2"></i><a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">JIRA</a> </nobr><li> <nobr> <i class="far fa-fw fa-envelope mr-2"></i><a target="dev-list" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">Dev List</a> </nobr><li> <nobr> <i class="fab fa-fw fa-stack-overflow mr-2"></i><a target="so" href="https://stackoverflow.com/questions/ask">Stack Overflow</a> </nobr><li> <nobr> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> </nobr><li> <nobr> <i class="fab fa-fw fa-gitter mr-2"></i><a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a> </nobr><li> <nobr> <i class="fab fa-fw fa-twitter mr-2"></i><a target="twitter" href="https://twitter.com/ApacheNLPCraft">Twitter</a> </nobr></ul></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div id="relnotes" class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="index.html">Home</a><li class="mr-1"><a href="/download.html">Download</a><li class="mr-1 active">Release Notes 1.0.0</ol><h1 class="page-title"> <span><i class="fas fa-fw fa-file-alt"></i> Release Notes 1.0.0</span></h1><div class="three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div class="col-md-8 second-column"><section id="overview"><h2 class="section-title">Overview <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> <a href="/download.html">NLPCraft 1.0.0</a> is a <b>deep refactoring</b> of the project from the ground up. Note that this release is NOT backward compatible with the previous releases.</p></section><section id="new"><h2 class="section-title">🙌 New <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><ul><li>Too many to mention...</ul></section><section id="enhancements"><h2 class="section-title">🤖 Enhancements <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><ul><li>Too many to mention...</ul></section><section id="fixes"><h2 class="section-title">🧐 Fixes <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><ul><li>None so far.</ul></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">On This Page<li><a href="#new">New</a><li><a href="#enhancements">Enhancements</a><li><a href="#fixes">Fixes</a><li class="side-nav-title">Quick Links<li> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">Examples</a><li> <i class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">Scaladoc</a><li> <i class="fas fa-fw fa-download mr-2"></i><a href="/download.html">Download</a><li> <i class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a><li class="side-nav-title">Support<li> <nobr> <i class="fab fa-fw fa-jira mr-2"></i><a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">JIRA</a> </nobr><li> <nobr> <i class="far fa-fw fa-envelope mr-2"></i><a target="dev-list" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">Dev List</a> </nobr><li> <nobr> <i class="fab fa-fw fa-stack-overflow mr-2"></i><a target="so" href="https://stackoverflow.com/questions/ask">Stack Overflow</a> </nobr><li> <nobr> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> </nobr><li> <nobr> <i class="fab fa-fw fa-gitter mr-2"></i><a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a> </nobr><li> <nobr> <i class="fab fa-fw fa-twitter mr-2"></i><a target="twitter" href="https://twitter.com/ApacheNLPCraft">Twitter</a> </nobr></ul></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
diff --git a/short-term-memory.html b/short-term-memory.html
index a23ad5a..5d64b01 100644
--- a/short-term-memory.html
+++ b/short-term-memory.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Shot-Term Memory</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Shot-Term Memory </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a class="active" href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div id="short-term-memory" class="col-md-8 second-column"><section id="overview"><h2 class="section-title">Conversation <span class="amp">&</span> STM <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft provides automatic conversation management right out of the box that is fully integrated with <a href="/intent-matching.html">intent matching</a>. Conversation management is based on the idea of short-term memory (STM) - the mechanism by which NLPCraft "remembers" the context of the conversation for a certain amount of time and certain depth of the conversation. STM is automatically maintained by NLPCraft per each user and data model combination. Intent matching algorithm can "recall" the missing tokens from STM when trying to find a match for the conversational terms.</p><p> Why is this so important? Maintaining conversation state is necessary for effective context resolution, so that users could ask, for example, the following sequence of questions using example weather model:</p><dl class="stm-example"><dd><i class="fa fa-fw fa-angle-right"></i>What’s the weather in London today?<dt><p> User gets the current London’s weather. STM is empty at this moment so NLPCraft expects to get all necessary information from the user sentence. Meaningful parts of the sentence get stored in STM.</p><div class="stm-state"><div class="stm"> <label><b>STM</b> Before:</label> <span> </span></div><div class="stm"> <label><b>STM</b> After:</label> <span>weather</span> <span>london</span> <span>today</span></div></div><dd><i class="fa fa-fw fa-angle-right"></i>And what about Berlin?<dt><p> User gets the current Berlin’s weather. The only useful data in the user sentence is name of the city <code>Berlin</code>. But since NLPCraft now has data from the previous question in its STM it can safely deduce that we are asking about <code>weather</code> for <code>today</code>. <code>Berlin</code> overrides <code>London</code> in STM.</p><div class="stm-state"><div class="stm"> <label><b>STM</b> Before:</label> <span>weather</span> <span>London</span> <span>today</span></div><div class="stm"> <label><b>STM</b> After:</label> <span>weather</span> <span><b>berlin</b><br/><i>london</i></span> <span>today</span></div></div><dd><i class="fa fa-fw fa-angle-right"></i>Next week forecast?<dt><p> User gets the next week forecast for Berlin. Again, the only useful data in the user sentence is <code>next week</code> and <code>forecast</code>. STM supplies <code>Berlin</code>. <code>Next week</code> override <code>today</code>, and <code>forecast</code> override <code>weather</code> in STM.</p><div class="stm-state"><div class="stm"> <label><b>STM</b> Before:</label> <span>weather</span> <span>Berlin</span> <span>today</span></div><div class="stm"> <label><b>STM</b> After:</label> <span><b>forecast</b><br/><i>weather</i></span> <span>berlin</span> <span><b>next week</b><br/><i>today</i></span></div></div></dl><p> Note that STM is maintained per user and per data model. Conversation management implementation is also smart enough to clear STM after certain period of time, i.e. it “forgets” the conversational context after few minutes of inactivity. Note also that conversational context can also be cleared explicitly using <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCConversation">NCConversation</a>.</p><p> To understand the algorithm behind the STM management let's back up a few steps...</p></section><section id="parsing"><h2 class="section-title">Parsing User Input <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> One of the key objectives when parsing user input sentence for Natural Language Understanding (NLU) is to detect all possible semantic entities, a.k.a <em>named entities</em>. Let's consider a few examples:</p><ul><li> <code>"What's the current weather in Tokyo?"</code><br/> This sentence is fully sufficient for the processing since it contains the topic <code>weather</code> as well as all necessary parameters like time (<code>current</code>) and location (<code>Tokyo</code>).<li> <code>"What about Tokyo?"</code><br/> This is an unclear sentence since it does not have the subject of the question - what is it about Tokyo?<li> <code>"What's the weather?"</code><br/> This is also unclear since we are missing important parameters of location and time for our request.</ul><p> Sometimes we can use default values like the current user's location and the current time (if they are missing). However, this can lead to the wrong interpretation if the conversation has an existing context.</p><p> In real life, as well as in NLP-based systems, we always try to start a conversation with a fully defined sentence since without a context the missing information cannot be obtained and the sentenced cannot be interpreted.</p></section><section id="ne"><h2 class="section-title">Named Entities <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Let's take a closer look at the named entities from the above examples:</p><ul><li> <code>weather</code> - this is an indicator of the subject of the conversation. Note that it indicates the type of question rather than being an entity with multiple possible values.<li> <code>current</code> - this is an entity of type <code>Date</code> with the value of <code>now</code>.<li> <code>Tokyo</code> - this is an entity of type <code>Location</code> with two values:<ul><li><code>city</code> - type of the location.<li><code>Tokyo, Japan</code> - normalized name of the location.</ul></ul><p> We have two distinct classes of entities:</p><ul><li> Entities that have no values and only act as indicators or types. The entity <code>weather</code> is the type indicator for the subject of the user input.<li> Entities that additionally have one or more specific values like <code>current</code> and <code>Tokyo</code> entities.</ul></section><section id="incomplete"><h2 class="section-title">Incomplete Sentences <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Assuming previously asked questions about the weather in Tokyo (in the span of the ongoing conversation) one could presumably ask the following questions using a <em>shorter, incomplete</em>, form:</p><ul><li> <code>"What about Kyoto?</code><br/> This question is missing both the subject and the time. However, we can safely assume we are still talking about current weather.<li> <code>"What about tomorrow?"</code><br/> Like above we automatically assume the weather subject but use <code>Kyoto</code> as the location since it was mentioned the last.</ul><p> These are incomplete sentences. This type of short-hands cannot be interpreted without prior context (neither by humans nor by machines) since by themselves they are missing necessary information. In the context of the conversation, however, these incomplete sentences work. We can simply provide one or two entities and rely on the <em>"listener"</em> to recall the rest of missing information from a short-term memory.</p><p> In NLPCraft, the intent-matching logic will automatically try to find missing information in the conversation context (that is automatically maintained). Moreover, it will properly treat such recalled information during weighted intent matching since it naturally has less "weight" than something that was found explicitly in the user input.</p></section><section id="stm"><h2 class="section-title">Short-Term Memory <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> The short-term memory is exactly that - a memory that keeps only small amount of recently used information and that evicts its contents after a short period of inactivity.</p><p> Let's look at the example from a real life. If you called your friend in a couple of hours asking <code>"What about a day after?"</code> (still talking about weather in Kyoto) - he'll likely be thoroughly confused. The conversation is timed out, and your friend has lost (forgotten) its context. You will have to explain again to your confused friend what is that you are asking about...</p><p> NLPCraft has a simple rule that 5 minutes pause in conversation leads to the conversation context reset. However, what happens if we switch the topic before this timeout elapsed?</p></section><section id="ctx-switch"><h2 class="section-title">Context Switch <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Resetting the context by the timeout is, obviously, not a hard thing to do. What can be trickier is to detect when conversation topic is switched and the previous context needs to be forgotten to avoid very confusing interpretation errors. It is uncanny how humans can detect such switch with seemingly no effort, and yet automating this task by the computer is anything but effortless...</p><p> Let's continue our weather-related conversation. All of a sudden, we ask about something completely different:</p><ul><li> <code>"How much is mocha latter at Starbucks?"</code><br/> At this point we should forget all about previous conversation about weather and assume going forward that we are talking about coffee in Starbucks.<li> <code>"What about Peet's?"</code><br/> We are talking about latter at Peet's.<li> <code>"...and croissant?"</code><br/> Asking about Peet's crescent-shaped fresh rolls.</ul><p> Despite somewhat obvious logic the implementation of context switch is not an exact science. Sometimes, you can have a "soft" context switch where you don't change the topic of the conversation 100% but yet sufficiently enough to forget at least some parts of the previously collected context. NLPCraft has a built-in algorithm to detect the hard switch in the conversation. You can also use <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCConversation">NCConversation</a> to perform a selective reset on the conversation in case of "soft" switch.</p><p> See <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCConversation">NCConversation</a> interface for API details for STM management.</p></section><section id="override"><h2 class="section-title">Overriding Entities <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> As we've seen above one named entity can replace or override an older entity in the STM, e.g. <code>"Peet's"</code> replaced <code>"Starbucks"</code> in our previous questions. <b>The actual algorithm that governs this logic is one of the most important part of STM implementation.</b> In human conversations we perform this logic seemingly subconsciously — but the computer algorithm to do it is not that trivial. Let's see how it is done in NLPCraft.</p><p> One of the important supporting design decision is that an entity can belong to one or more groups. You can think of groups as types, or classes of entities (to be mathematically precise these are the categories). The entity's membership in such groups is what drives the rule of overriding.</p><p> Let's look at the specific example.</p><p> Consider a data model that defined 3 entities:</p><ul><li> <code>"sell"</code> (with synonym <code>"sales"</code>)<li> <code>"buy"</code> (with synonym <code>"purchase"</code>)<li> <code>"best_employee"</code> (with synonyms like <code>"best"</code>, <code>"best employee"</code>, <code>"best colleague"</code>)</ul><p> Our task is to support for following conversation:</p><ul><li> <code>"Give me the sales data"</code><br/> We return sales information since we detected <code>"sell"</code> entity by its synonym <code>"sales"</code>.<li> <code>"Who was the best?"</code><br/> We return the best salesmen since we detected <code>"best_employee"</code> and we should pick <code>"sell"</code> entity from the STM.<li> <code>"OK, give me the purchasing report now."</code><br/> This is a bit trickier. We should return general purchasing data and not a best purchaser employee. It feels counter-intuitive but we should NOT take <code>"best_employee"</code> entity from STM and, in fact, we should remove it from STM.<li> <code>"...and who's the best there?"</code><br/> Now, we should return the best purchasing employee. We detected <code>"best_employee"</code> entity and we should pick <code>"buy"</code> entity from STM.<li> <code>"One more time - show me the general purchasing data again"</code><br/> Once again, we should return a general purchasing report and ignore (and remove) <code>"best_employee"</code> from STM.</ul></section><section id="rule"><h2 class="section-title">Overriding Rule <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Here's the rule we developed at NLPCraft and have been successfully using in various models:</p><div class="bq success"><div class="bq-idea-container"><div><div>💡</div></div><div> <b>Overriding Rule</b><p> The entity will override other entity or entities in STM that belong to the same group set or its superset.</p></div></div></div><p> In other words, an entity with a smaller group set (more specific one) will override entity with the same or larger group set (more generic one). Let's consider an entity that belongs to the following groups: <code>{G1, G2, G3}</code>. This entity:</p><ul><li> WILL override existing entity belonging to <code>{G1, G2, G3}</code> groups (same set).<li> WILL override existing entity belonging to <code>{G1, G2, G3, G4}</code> groups (superset).<li> WILL NOT override existing entity belonging to <code>{G1, G2}</code> groups.<li> WIL NOT override existing entity belonging to <code>{G10, G20}</code> groups.</ul><p> Let's come back to our sell/buy/best example. To interpret the questions we've outlined above we need to have the following 4 intents:</p><ul><li><code>intent=sale term={# == 'sale'}</code><li><code>intent=best_sale_person term={# == 'sale'} term={# == 'best_employee'}</code><li><code>intent=buy term={# == 'buy'}</code><li><code>intent=buy_best_person term={# == 'buy'} term={# == 'best_employee'}</code></ul><p> (this is actual <a href="/intent-matching.html">Intent Definition Language</a> (IDL) used by NLPCraft - <code>term</code> here is basically what's often referred to as a slot in other systems).</p><p> We also need to properly configure groups for our entities (names of the groups are arbitrary):</p><ul><li>Entity <code>"sell"</code> belongs to group <b>A</b><li>Entity <code>"buy"</code> belongs to group <b>B</b><li>Entity <code>"best_employee"</code> belongs to groups <b>A</b> and <b>B</b></ul><p> Let’s run through our example again with this configuration:</p><ul><li> <code>"Give me the sales data"</code><ul><li>We detected entity from group <b>A</b>.<li>STM is empty at this point.<li>Return general sales report.<li>Store <code>"sell"</code> entity with group <b>A</b> in STM.</ul><li> <code>"Who was the best?"</code><ul><li>We detected entity belonging to groups <b>A</b> and <b>B</b>.<li>STM has entity belonging to group <b>A</b>.<li><b>{A, B}</b> does NOT override <b>{A}</b>.<li>Return best salesmen report.<li>Store detected <code>"best_employee"</code> entity.<li>STM now has two entities with <b>{A}</b> and <b>{A, B}</b> group sets.</ul><li> <code>"OK, give me the purchasing report now."</code><ul><li>We detected <code>"buy"</code> entity with group <b>A</b>.<li>STM has two entities with <b>{A}</b> and <b>{A, B}</b> group sets.<li><b>{A}</b> overrides both <b>{A}</b> and <b>{A, B}</b>.<li>Return general purchasing report.<li>Store <code>"buy"</code> entity with group <b>A</b> in STM.</ul></ul></section><section id="switch"><h2 class="section-title">Explicit Context Switch <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> In some cases you may need to explicitly clear the conversation STM without relying on algorithmic behavior. It happens when current and new topic of the conversation share some of the same entities. Although at first it sounds counter-intuitive there are many examples of that in day to day life.</p><p> Let’s look at this sample conversation:</p><ul><li> <b>Q</b>: <code>"What the weather in Tokyo?"</code><br/> <b>A</b>: Current weather in Tokyo...<li> <b>Q</b>: <code>"Let’s do New York after all then!"</code><br/> <b>A</b>: Without an explicit conversation reset we would return current New York weather 🤔</ul><p> The second question was about going to New York (booking tickets, etc.). In real life - your counterpart will likely ask what you mean by "doing New York after all" and you’ll have to explain the abrupt change in the topic. You can avoid this confusion by simply saying: "Enough about weather! Let’s talk about this weekend plans" - after which the second question becomes clear. That sentence is an explicit context switch which you can also detect in the NLPCraft model.</p><p> In NLPCraft you can also explicitly reset conversation context through <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCConversation">NCConversation</a> interface or by switching the model on the request.</p></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">On This Page<li><a href="#overview">Conversation <span class="amp">&</span> STM</a><li><a href="#parsing">Parsing User Input</a><li><a href="#ne">Named Entities</a><li><a href="#incomplete">Incomplete Sentences</a><li><a href="#stm">Short-Term-Memory</a><li><a href="#ctx-switch">Context Switch</a><li><a href="#override">Overriding Entities</a><li><a href="#rule">Overriding Rule</a><li><a href="#switch">Context Switch</a><li class="side-nav-title">Quick Links<li> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">Examples</a><li> <i class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">Scaladoc</a><li> <i class="fas fa-fw fa-download mr-2"></i><a href="/download.html">Download</a><li> <i class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a><li class="side-nav-title">Support<li> <nobr> <i class="fab fa-fw fa-jira mr-2"></i><a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">JIRA</a> </nobr><li> <nobr> <i class="far fa-fw fa-envelope mr-2"></i><a target="dev-list" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">Dev List</a> </nobr><li> <nobr> <i class="fab fa-fw fa-stack-overflow mr-2"></i><a target="so" href="https://stackoverflow.com/questions/ask">Stack Overflow</a> </nobr><li> <nobr> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> </nobr><li> <nobr> <i class="fab fa-fw fa-gitter mr-2"></i><a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a> </nobr><li> <nobr> <i class="fab fa-fw fa-twitter mr-2"></i><a target="twitter" href="https://twitter.com/ApacheNLPCraft">Twitter</a> </nobr></ul></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Shot-Term Memory</ol><h1 class="page-title"> <span> <i class="fas fa-fw fa-book"></i> Shot-Term Memory </span></h1><div class="row three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Introduction<li> <a href="/docs.html">Overview</a><li> <a href="/installation.html">Installation</a><li> <a href="/first-example.html">First Example</a><li class="side-nav-title">Developer Guide<li> <a href="/key-concepts.html">Key Concepts</a><li> <a href="/intent-matching.html">Intent Matching</a><li> <a class="active" href="/short-term-memory.html">Short-Term Memory</a><li class="side-nav-title">Examples<li> <a href="/examples/calculator.html">Calculator</a><li> <a href="/examples/time.html">Time</a><li> <a href="/examples/light_switch.html">Light Switch</a><li> <a href="/examples/light_switch_fr.html">Light Switch FR</a><li> <a href="/examples/light_switch_ru.html">Light Switch RU</a><li> <a href="/examples/pizzeria.html">Pizzeria</a></ul></div><div id="short-term-memory" class="col-md-8 second-column"><section id="overview"><h2 class="section-title">Conversation <span class="amp">&</span> STM <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> NLPCraft provides automatic conversation management right out of the box that is fully integrated with <a href="/intent-matching.html">intent matching</a>. Conversation management is based on the idea of short-term memory (STM) - the mechanism by which NLPCraft "remembers" the context of the conversation for a certain amount of time and certain depth of the conversation. STM is automatically maintained by NLPCraft per each user and data model combination. Intent matching algorithm can "recall" the missing tokens from STM when trying to find a match for the conversational terms.</p><p> Why is this so important? Maintaining conversation state is necessary for effective context resolution, so that users could ask, for example, the following sequence of questions using example weather model:</p><dl class="stm-example"><dd><i class="fa fa-fw fa-angle-right"></i>What’s the weather in London today?<dt><p> User gets the current London’s weather. STM is empty at this moment so NLPCraft expects to get all necessary information from the user sentence. Meaningful parts of the sentence get stored in STM.</p><div class="stm-state"><div class="stm"> <label><b>STM</b> Before:</label> <span> </span></div><div class="stm"> <label><b>STM</b> After:</label> <span>weather</span> <span>london</span> <span>today</span></div></div><dd><i class="fa fa-fw fa-angle-right"></i>And what about Berlin?<dt><p> User gets the current Berlin’s weather. The only useful data in the user sentence is name of the city <code>Berlin</code>. But since NLPCraft now has data from the previous question in its STM it can safely deduce that we are asking about <code>weather</code> for <code>today</code>. <code>Berlin</code> overrides <code>London</code> in STM.</p><div class="stm-state"><div class="stm"> <label><b>STM</b> Before:</label> <span>weather</span> <span>London</span> <span>today</span></div><div class="stm"> <label><b>STM</b> After:</label> <span>weather</span> <span><b>berlin</b><br/><i>london</i></span> <span>today</span></div></div><dd><i class="fa fa-fw fa-angle-right"></i>Next week forecast?<dt><p> User gets the next week forecast for Berlin. Again, the only useful data in the user sentence is <code>next week</code> and <code>forecast</code>. STM supplies <code>Berlin</code>. <code>Next week</code> override <code>today</code>, and <code>forecast</code> override <code>weather</code> in STM.</p><div class="stm-state"><div class="stm"> <label><b>STM</b> Before:</label> <span>weather</span> <span>Berlin</span> <span>today</span></div><div class="stm"> <label><b>STM</b> After:</label> <span><b>forecast</b><br/><i>weather</i></span> <span>berlin</span> <span><b>next week</b><br/><i>today</i></span></div></div></dl><p> Note that STM is maintained per user and per data model. Conversation management implementation is also smart enough to clear STM after certain period of time, i.e. it “forgets” the conversational context after few minutes of inactivity. Note also that conversational context can also be cleared explicitly using <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCConversation">NCConversation</a>.</p><p> To understand the algorithm behind the STM management let's back up a few steps...</p></section><section id="parsing"><h2 class="section-title">Parsing User Input <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> One of the key objectives when parsing user input sentence for Natural Language Understanding (NLU) is to detect all possible semantic entities, a.k.a <em>named entities</em>. Let's consider a few examples:</p><ul><li> <code>"What's the current weather in Tokyo?"</code><br/> This sentence is fully sufficient for the processing since it contains the topic <code>weather</code> as well as all necessary parameters like time (<code>current</code>) and location (<code>Tokyo</code>).<li> <code>"What about Tokyo?"</code><br/> This is an unclear sentence since it does not have the subject of the question - what is it about Tokyo?<li> <code>"What's the weather?"</code><br/> This is also unclear since we are missing important parameters of location and time for our request.</ul><p> Sometimes we can use default values like the current user's location and the current time (if they are missing). However, this can lead to the wrong interpretation if the conversation has an existing context.</p><p> In real life, as well as in NLP-based systems, we always try to start a conversation with a fully defined sentence since without a context the missing information cannot be obtained and the sentenced cannot be interpreted.</p></section><section id="ne"><h2 class="section-title">Named Entities <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Let's take a closer look at the named entities from the above examples:</p><ul><li> <code>weather</code> - this is an indicator of the subject of the conversation. Note that it indicates the type of question rather than being an entity with multiple possible values.<li> <code>current</code> - this is an entity of type <code>Date</code> with the value of <code>now</code>.<li> <code>Tokyo</code> - this is an entity of type <code>Location</code> with two values:<ul><li><code>city</code> - type of the location.<li><code>Tokyo, Japan</code> - normalized name of the location.</ul></ul><p> We have two distinct classes of entities:</p><ul><li> Entities that have no values and only act as indicators or types. The entity <code>weather</code> is the type indicator for the subject of the user input.<li> Entities that additionally have one or more specific values like <code>current</code> and <code>Tokyo</code> entities.</ul></section><section id="incomplete"><h2 class="section-title">Incomplete Sentences <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Assuming previously asked questions about the weather in Tokyo (in the span of the ongoing conversation) one could presumably ask the following questions using a <em>shorter, incomplete</em>, form:</p><ul><li> <code>"What about Kyoto?</code><br/> This question is missing both the subject and the time. However, we can safely assume we are still talking about current weather.<li> <code>"What about tomorrow?"</code><br/> Like above we automatically assume the weather subject but use <code>Kyoto</code> as the location since it was mentioned the last.</ul><p> These are incomplete sentences. This type of short-hands cannot be interpreted without prior context (neither by humans nor by machines) since by themselves they are missing necessary information. In the context of the conversation, however, these incomplete sentences work. We can simply provide one or two entities and rely on the <em>"listener"</em> to recall the rest of missing information from a short-term memory.</p><p> In NLPCraft, the intent-matching logic will automatically try to find missing information in the conversation context (that is automatically maintained). Moreover, it will properly treat such recalled information during weighted intent matching since it naturally has less "weight" than something that was found explicitly in the user input.</p></section><section id="stm"><h2 class="section-title">Short-Term Memory <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> The short-term memory is exactly that - a memory that keeps only small amount of recently used information and that evicts its contents after a short period of inactivity.</p><p> Let's look at the example from a real life. If you called your friend in a couple of hours asking <code>"What about a day after?"</code> (still talking about weather in Kyoto) - he'll likely be thoroughly confused. The conversation is timed out, and your friend has lost (forgotten) its context. You will have to explain again to your confused friend what is that you are asking about...</p><p> NLPCraft has a simple rule that 5 minutes pause in conversation leads to the conversation context reset. However, what happens if we switch the topic before this timeout elapsed?</p></section><section id="ctx-switch"><h2 class="section-title">Context Switch <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Resetting the context by the timeout is, obviously, not a hard thing to do. What can be trickier is to detect when conversation topic is switched and the previous context needs to be forgotten to avoid very confusing interpretation errors. It is uncanny how humans can detect such switch with seemingly no effort, and yet automating this task by the computer is anything but effortless...</p><p> Let's continue our weather-related conversation. All of a sudden, we ask about something completely different:</p><ul><li> <code>"How much is mocha latter at Starbucks?"</code><br/> At this point we should forget all about previous conversation about weather and assume going forward that we are talking about coffee in Starbucks.<li> <code>"What about Peet's?"</code><br/> We are talking about latter at Peet's.<li> <code>"...and croissant?"</code><br/> Asking about Peet's crescent-shaped fresh rolls.</ul><p> Despite somewhat obvious logic the implementation of context switch is not an exact science. Sometimes, you can have a "soft" context switch where you don't change the topic of the conversation 100% but yet sufficiently enough to forget at least some parts of the previously collected context. NLPCraft has a built-in algorithm to detect the hard switch in the conversation. You can also use <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCConversation">NCConversation</a> to perform a selective reset on the conversation in case of "soft" switch.</p><p> See <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCConversation">NCConversation</a> interface for API details for STM management.</p></section><section id="override"><h2 class="section-title">Overriding Entities <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> As we've seen above one named entity can replace or override an older entity in the STM, e.g. <code>"Peet's"</code> replaced <code>"Starbucks"</code> in our previous questions. <b>The actual algorithm that governs this logic is one of the most important part of STM implementation.</b> In human conversations we perform this logic seemingly subconsciously — but the computer algorithm to do it is not that trivial. Let's see how it is done in NLPCraft.</p><p> One of the important supporting design decision is that an entity can belong to one or more groups. You can think of groups as types, or classes of entities (to be mathematically precise these are the categories). The entity's membership in such groups is what drives the rule of overriding.</p><p> Let's look at the specific example.</p><p> Consider a data model that defined 3 entities:</p><ul><li> <code>"sell"</code> (with synonym <code>"sales"</code>)<li> <code>"buy"</code> (with synonym <code>"purchase"</code>)<li> <code>"best_employee"</code> (with synonyms like <code>"best"</code>, <code>"best employee"</code>, <code>"best colleague"</code>)</ul><p> Our task is to support for following conversation:</p><ul><li> <code>"Give me the sales data"</code><br/> We return sales information since we detected <code>"sell"</code> entity by its synonym <code>"sales"</code>.<li> <code>"Who was the best?"</code><br/> We return the best salesmen since we detected <code>"best_employee"</code> and we should pick <code>"sell"</code> entity from the STM.<li> <code>"OK, give me the purchasing report now."</code><br/> This is a bit trickier. We should return general purchasing data and not a best purchaser employee. It feels counter-intuitive but we should NOT take <code>"best_employee"</code> entity from STM and, in fact, we should remove it from STM.<li> <code>"...and who's the best there?"</code><br/> Now, we should return the best purchasing employee. We detected <code>"best_employee"</code> entity and we should pick <code>"buy"</code> entity from STM.<li> <code>"One more time - show me the general purchasing data again"</code><br/> Once again, we should return a general purchasing report and ignore (and remove) <code>"best_employee"</code> from STM.</ul></section><section id="rule"><h2 class="section-title">Overriding Rule <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> Here's the rule we developed at NLPCraft and have been successfully using in various models:</p><div class="bq success"><div class="bq-idea-container"><div><div>💡</div></div><div> <b>Overriding Rule</b><p> The entity will override other entity or entities in STM that belong to the same group set or its superset.</p></div></div></div><p> In other words, an entity with a smaller group set (more specific one) will override entity with the same or larger group set (more generic one). Let's consider an entity that belongs to the following groups: <code>{G1, G2, G3}</code>. This entity:</p><ul><li> WILL override existing entity belonging to <code>{G1, G2, G3}</code> groups (same set).<li> WILL override existing entity belonging to <code>{G1, G2, G3, G4}</code> groups (superset).<li> WILL NOT override existing entity belonging to <code>{G1, G2}</code> groups.<li> WIL NOT override existing entity belonging to <code>{G10, G20}</code> groups.</ul><p> Let's come back to our sell/buy/best example. To interpret the questions we've outlined above we need to have the following 4 intents:</p><ul><li><code>intent=sale term={# == 'sale'}</code><li><code>intent=best_sale_person term={# == 'sale'} term={# == 'best_employee'}</code><li><code>intent=buy term={# == 'buy'}</code><li><code>intent=buy_best_person term={# == 'buy'} term={# == 'best_employee'}</code></ul><p> (this is actual <a href="/intent-matching.html">Intent Definition Language</a> (IDL) used by NLPCraft - <code>term</code> here is basically what's often referred to as a slot in other systems).</p><p> We also need to properly configure groups for our entities (names of the groups are arbitrary):</p><ul><li>Entity <code>"sell"</code> belongs to group <b>A</b><li>Entity <code>"buy"</code> belongs to group <b>B</b><li>Entity <code>"best_employee"</code> belongs to groups <b>A</b> and <b>B</b></ul><p> Let’s run through our example again with this configuration:</p><ul><li> <code>"Give me the sales data"</code><ul><li>We detected entity from group <b>A</b>.<li>STM is empty at this point.<li>Return general sales report.<li>Store <code>"sell"</code> entity with group <b>A</b> in STM.</ul><li> <code>"Who was the best?"</code><ul><li>We detected entity belonging to groups <b>A</b> and <b>B</b>.<li>STM has entity belonging to group <b>A</b>.<li><b>{A, B}</b> does NOT override <b>{A}</b>.<li>Return best salesmen report.<li>Store detected <code>"best_employee"</code> entity.<li>STM now has two entities with <b>{A}</b> and <b>{A, B}</b> group sets.</ul><li> <code>"OK, give me the purchasing report now."</code><ul><li>We detected <code>"buy"</code> entity with group <b>A</b>.<li>STM has two entities with <b>{A}</b> and <b>{A, B}</b> group sets.<li><b>{A}</b> overrides both <b>{A}</b> and <b>{A, B}</b>.<li>Return general purchasing report.<li>Store <code>"buy"</code> entity with group <b>A</b> in STM.</ul></ul></section><section id="switch"><h2 class="section-title">Explicit Context Switch <a href="#"><i class="top-link fas fa-fw fa-angle-double-up"></i></a></h2><p> In some cases you may need to explicitly clear the conversation STM without relying on algorithmic behavior. It happens when current and new topic of the conversation share some of the same entities. Although at first it sounds counter-intuitive there are many examples of that in day to day life.</p><p> Let’s look at this sample conversation:</p><ul><li> <b>Q</b>: <code>"What the weather in Tokyo?"</code><br/> <b>A</b>: Current weather in Tokyo...<li> <b>Q</b>: <code>"Let’s do New York after all then!"</code><br/> <b>A</b>: Without an explicit conversation reset we would return current New York weather 🤔</ul><p> The second question was about going to New York (booking tickets, etc.). In real life - your counterpart will likely ask what you mean by "doing New York after all" and you’ll have to explain the abrupt change in the topic. You can avoid this confusion by simply saying: "Enough about weather! Let’s talk about this weekend plans" - after which the second question becomes clear. That sentence is an explicit context switch which you can also detect in the NLPCraft model.</p><p> In NLPCraft you can also explicitly reset conversation context through <a target="scaladoc" href="/apis/latest/org/apache/nlpcraft/NCConversation">NCConversation</a> interface or by switching the model on the request.</p></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">On This Page<li><a href="#overview">Conversation <span class="amp">&</span> STM</a><li><a href="#parsing">Parsing User Input</a><li><a href="#ne">Named Entities</a><li><a href="#incomplete">Incomplete Sentences</a><li><a href="#stm">Short-Term-Memory</a><li><a href="#ctx-switch">Context Switch</a><li><a href="#override">Overriding Entities</a><li><a href="#rule">Overriding Rule</a><li><a href="#switch">Context Switch</a><li class="side-nav-title">Quick Links<li> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">Examples</a><li> <i class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">Scaladoc</a><li> <i class="fas fa-fw fa-download mr-2"></i><a href="/download.html">Download</a><li> <i class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a><li class="side-nav-title">Support<li> <nobr> <i class="fab fa-fw fa-jira mr-2"></i><a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">JIRA</a> </nobr><li> <nobr> <i class="far fa-fw fa-envelope mr-2"></i><a target="dev-list" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">Dev List</a> </nobr><li> <nobr> <i class="fab fa-fw fa-stack-overflow mr-2"></i><a target="so" href="https://stackoverflow.com/questions/ask">Stack Overflow</a> </nobr><li> <nobr> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> </nobr><li> <nobr> <i class="fab fa-fw fa-gitter mr-2"></i><a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a> </nobr><li> <nobr> <i class="fab fa-fw fa-twitter mr-2"></i><a target="twitter" href="https://twitter.com/ApacheNLPCraft">Twitter</a> </nobr></ul></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
diff --git a/use-cases.html b/use-cases.html
index 12f0c70..e010f42 100644
--- a/use-cases.html
+++ b/use-cases.html
@@ -15,4 +15,4 @@
limitations under the License.
-->
-<!doctype html><html lang="en"> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-180663034-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-180663034-1'); </script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Use Cases</ol><h1 class="page-title"> <span><i class="fas fa-fw fa-users-cog"></i> Use Cases</span></h1><div id="use-cases" class="three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Documentation<li><a href="/docs.html">Overview</a><li><a href="/installation.html">Installation</a><li><a href="/first-example.html">First Example</a></ul></div><div class="col-md-8 second-column"><section><h2 class="section-title">NLI Applications</h2><p> Despite being seemingly obvious that NLI (Natural Language Interface) has wide applicability to many applications and software systems there are specific areas where NLI is already used today and has demonstrated its unique capabilities.</p></section><section class="two-col-section"><div class="container-fluid"><div class="row"><div class="col-6"><div id="search" class="sub-section-title">Natural Language Enhanced Search</div><p class="subhead"> Natural Language enhanced search is one area where NLI has been successful for a number of years already. Look at Google Analytics, GMail, JIRA, or many other applications that allow you to search, filter or sort their content with natural language queries. This use case is a perfect application of NLI as it naturally augments the existing UI/UX by replacing often cumbersome and hard-to-use search/filter/sort UX with a simple text box.</p><p> As a matter of fact, all major general purpose search platforms today (i.e. Google, Bing, or Siri) use NLI-enhanced approach to their search queries processing.</p><div id="chatbots" class="sub-section-title">Chatbots</div><p> NLI is clearly at the heart of any chatbot implementation. And although most initial naive implementations of chatbots have struggles to gain traction - the advancement in NLI technology is allowing modern chatbots to become gradually more sophisticated and outgrow the early "childhood" problems of parasitic dialogues, lack of contextual awareness, inability to comprehend a spoken, free-form language, and primitive rule-based logic.</p><div id="reporting" class="sub-section-title">Data Reporting</div><p> Fully deterministic NLI systems like NLPCraft provide critical technology for NLI-based data reporting. Unlike data insights analytics or data exploration, the data reporting typically cannot rely on the probabilistic nature of ML/DL-based approaches as it must provide 100% correctness in all cases.</p><p> NLPCraft employs advanced semantic modelling that provides fully deterministic results and natural language comprehension.</p></div><div class="col-6"><div id="data" class="sub-section-title">Ad-Hoc Data Exploration</div><p> One of the most exciting applications of NLI is an ad-hoc data analytics or data exploration. This is the area where the proper NLI application can bring about a fundamental seismic change to how we explore our data and discover the insights from it.</p><p> Today the most data is walled off in the silos of the individual, incompatible data systems making it mostly inaccessible to the all but a few "power" users. Very few can gain access to all the different systems in a typical company, learn all the different ways to analyse the data and master incompatible and drastically different user interfaces.</p><p> The NLI-based approach can democratize access to the sprawling silo-ed data with a single unified UX by allowing users to use the natural language to explore and analyse the data. The natural language is the only UX/UI that everyone already knows, requires no training or learning and is universal regardless of the data source.</p><div id="device" class="sub-section-title">Device Control</div><p> With the popularization of consumer technologies like Amazon Alexa, Apple HomeKit, Mercedes MBUX and similar the NLI-based control of various devices and systems becoming a norm.</p><p> While most of these systems today can only understand the rudimentary 2-3 words command the advancements in NLI technology is rapidly leading to more sophisticated interfaces. The enterprise world is starting to catch up and NLI-based systems appear today in various manufacturing, oil and gas, pharma and medical applications.</p></div></div></div></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">On This Page<li><a href="#search">NLI Search</a><li><a href="#chatbots">Chatbots</a><li><a href="#data">Data Exploration</a><li><a href="#device">Device Control</a><li class="side-nav-title">Quick Links<li> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">Examples</a><li> <i class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">Scaladoc</a><li> <i class="fas fa-fw fa-download mr-2"></i><a href="/download.html">Download</a><li> <i class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a><li class="side-nav-title">Support<li> <nobr> <i class="fab fa-fw fa-jira mr-2"></i><a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">JIRA</a> </nobr><li> <nobr> <i class="far fa-fw fa-envelope mr-2"></i><a target="dev-list" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">Dev List</a> </nobr><li> <nobr> <i class="fab fa-fw fa-stack-overflow mr-2"></i><a target="so" href="https://stackoverflow.com/questions/ask">Stack Overflow</a> </nobr><li> <nobr> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> </nobr><li> <nobr> <i class="fab fa-fw fa-gitter mr-2"></i><a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a> </nobr><li> <nobr> <i class="fab fa-fw fa-twitter mr-2"></i><a target="twitter" href="https://twitter.com/ApacheNLPCraft">Twitter</a> </nobr></ul></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>
+<!doctype html><html lang="en"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content="An open source API to convert natural language into actions."><meta name="author" content="NLPCraft."><link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="msapplication-TileColor" content="#2d89ef"><meta name="theme-color" content="#ffffff"><title>Apache NLPCraft - Natural Language Interface</title><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous"> <script src="//code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script><link href="//use.fontawesome.com/releases/v5.7.1/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" rel="stylesheet" crossorigin="anonymous"><link href="/ext/syntaxhighlighter/styles/shCoreNLPCraft.css" rel="stylesheet" type="text/css"><link href="/ext/syntaxhighlighter/styles/shThemeNLPCraft.css" rel="stylesheet" type="text/css"><link rel="preconnect" href="https://fonts.gstatic.com"><link href="//fonts.googleapis.com/css?family=Amatic+SC|Roboto+Mono|Baskervville" rel="stylesheet"><link href="//fonts.googleapis.com/css2?family=Libre+Baskerville:ital@1&display=swap" rel="stylesheet"> <script src="/ext/syntaxhighlighter/scripts/XRegExp.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shCore.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushXml.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushBash.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPlain.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJava.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushScala.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushIdl.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushPython.js" type="text/javascript"></script> <script src="/ext/syntaxhighlighter/scripts/shBrushJScript.js" type="text/javascript"></script> <script async defer src="https://buttons.github.io/buttons.js"></script><link rel="stylesheet" type="text/css" href="/assets/css/style.css"/><nav class="navbar navbar-expand-lg navbar-light bg-light" id="top-header"> <a class="navbar-brand mr-4" href="/index.html"> <img src="/images/nlpcraft_logo_white-h24.png" alt=""> </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"> <span class="navbar-toggler-icon"></span> </button><div class="collapse navbar-collapse" id="navbarSupportedContent"><ul class="navbar-nav mr-auto"><li class="nav-item"> <a class="nav-link" href="/docs.html">Docs</a><li class="nav-item"> <a class="nav-link" href="/community.html">Community</a><li class="nav-item"> <a class="nav-link" href="/use-cases.html">Use Cases</a><li class="nav-item"> <a class="nav-link" href="/download.html">Downloads</a></ul><ul class="navbar-nav ml-auto"><li class="nav-item mr-2"> <a class="nav-link" href="/download.html">v.1.0.0</a><li class="nav-item"> <a class="nav-link fork-link" target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub <i class="fab fa-fw fa-github mr-2"></i></a></ul></div></nav><div class="container-fluid"><div class="navbar-aligned"><ol class="breadcrumb"><li class="mr-1"><a href="/index.html">Home</a><li class="mr-1 active">Use Cases</ol><h1 class="page-title"> <span><i class="fas fa-fw fa-users-cog"></i> Use Cases</span></h1><div id="use-cases" class="three-cols-container"><div class="col-md-2 first-column"><ul class="side-nav"><li class="side-nav-title">Documentation<li><a href="/docs.html">Overview</a><li><a href="/installation.html">Installation</a><li><a href="/first-example.html">First Example</a></ul></div><div class="col-md-8 second-column"><section><h2 class="section-title">NLI Applications</h2><p> Despite being seemingly obvious that NLI (Natural Language Interface) has wide applicability to many applications and software systems there are specific areas where NLI is already used today and has demonstrated its unique capabilities.</p></section><section class="two-col-section"><div class="container-fluid"><div class="row"><div class="col-6"><div id="search" class="sub-section-title">Natural Language Enhanced Search</div><p class="subhead"> Natural Language enhanced search is one area where NLI has been successful for a number of years already. Look at Google Analytics, GMail, JIRA, or many other applications that allow you to search, filter or sort their content with natural language queries. This use case is a perfect application of NLI as it naturally augments the existing UI/UX by replacing often cumbersome and hard-to-use search/filter/sort UX with a simple text box.</p><p> As a matter of fact, all major general purpose search platforms today (i.e. Google, Bing, or Siri) use NLI-enhanced approach to their search queries processing.</p><div id="chatbots" class="sub-section-title">Chatbots</div><p> NLI is clearly at the heart of any chatbot implementation. And although most initial naive implementations of chatbots have struggles to gain traction - the advancement in NLI technology is allowing modern chatbots to become gradually more sophisticated and outgrow the early "childhood" problems of parasitic dialogues, lack of contextual awareness, inability to comprehend a spoken, free-form language, and primitive rule-based logic.</p><div id="reporting" class="sub-section-title">Data Reporting</div><p> Fully deterministic NLI systems like NLPCraft provide critical technology for NLI-based data reporting. Unlike data insights analytics or data exploration, the data reporting typically cannot rely on the probabilistic nature of ML/DL-based approaches as it must provide 100% correctness in all cases.</p><p> NLPCraft employs advanced semantic modelling that provides fully deterministic results and natural language comprehension.</p></div><div class="col-6"><div id="data" class="sub-section-title">Ad-Hoc Data Exploration</div><p> One of the most exciting applications of NLI is an ad-hoc data analytics or data exploration. This is the area where the proper NLI application can bring about a fundamental seismic change to how we explore our data and discover the insights from it.</p><p> Today the most data is walled off in the silos of the individual, incompatible data systems making it mostly inaccessible to the all but a few "power" users. Very few can gain access to all the different systems in a typical company, learn all the different ways to analyse the data and master incompatible and drastically different user interfaces.</p><p> The NLI-based approach can democratize access to the sprawling silo-ed data with a single unified UX by allowing users to use the natural language to explore and analyse the data. The natural language is the only UX/UI that everyone already knows, requires no training or learning and is universal regardless of the data source.</p><div id="device" class="sub-section-title">Device Control</div><p> With the popularization of consumer technologies like Amazon Alexa, Apple HomeKit, Mercedes MBUX and similar the NLI-based control of various devices and systems becoming a norm.</p><p> While most of these systems today can only understand the rudimentary 2-3 words command the advancements in NLI technology is rapidly leading to more sophisticated interfaces. The enterprise world is starting to catch up and NLI-based systems appear today in various manufacturing, oil and gas, pharma and medical applications.</p></div></div></div></section></div><div class="col-md-2 third-column"><ul class="side-nav"><li class="side-nav-title">On This Page<li><a href="#search">NLI Search</a><li><a href="#chatbots">Chatbots</a><li><a href="#data">Data Exploration</a><li><a href="#device">Device Control</a><li class="side-nav-title">Quick Links<li> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/nlpcraft-examples">Examples</a><li> <i class="fas fa-fw fa-book mr-2"></i><a target="_" href="/apis/latest/index.html">Scaladoc</a><li> <i class="fas fa-fw fa-download mr-2"></i><a href="/download.html">Download</a><li> <i class="fas fa-fw fa-cog mr-2"></i><a href="/installation.html">Installation</a><li class="side-nav-title">Support<li> <nobr> <i class="fab fa-fw fa-jira mr-2"></i><a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">JIRA</a> </nobr><li> <nobr> <i class="far fa-fw fa-envelope mr-2"></i><a target="dev-list" href="https://mail-archives.apache.org/mod_mbox/nlpcraft-dev/">Dev List</a> </nobr><li> <nobr> <i class="fab fa-fw fa-stack-overflow mr-2"></i><a target="so" href="https://stackoverflow.com/questions/ask">Stack Overflow</a> </nobr><li> <nobr> <i class="fab fa-fw fa-github mr-2"></i><a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a> </nobr><li> <nobr> <i class="fab fa-fw fa-gitter mr-2"></i><a target="gitter" href="https://gitter.im/apache-nlpcraft/community">Gitter</a> </nobr><li> <nobr> <i class="fab fa-fw fa-twitter mr-2"></i><a target="twitter" href="https://twitter.com/ApacheNLPCraft">Twitter</a> </nobr></ul></div></div></div></div><div id="footer"><div class="container"><div class="text-muted text-center"> <span>Copyright © 2023 Apache Software Foundation</span> <span> <a target=_new href="https://apache.org"><img alt="asf" src="/images/asf_logo-h24.png"></a> </span> <a target="asf" href="https://www.apache.org/events/current-event.html" class="btn btn-link ml-4">Events</a> <span class="sep">•</span> <a target="asf" href="https://apache.org/foundation/policies/privacy.html" class="btn btn-link">Privacy</a> <span class="sep">•</span> <a href="/index.html#news" class="btn btn-link">News</a> <span class="sep">•</span> <a href="/docs.html" class="btn btn-link">Docs</a> <span class="ml-4">release: <a href="/download.html"><code>1.0.0</code></a></span> <span class="ml-2"> <a target="github" href="https://github.com/apache/incubator-nlpcraft/actions"><img alt="" src="https://github.com/apache/incubator-nlpcraft/workflows/build/badge.svg"></a> <a target=_ href="https://gitter.im/apache-nlpcraft/community"><img alt="Gitter" src="https://badges.gitter.im/apache-nlpcraft/community.svg"></a> </span> <span class="ml-2"> Built in:<a target="scala" href="https://scala-lang.org/"><img style="margin-left: 5px" src="/images/scala-logo-h16.png" alt=""></a> </span></div></div></div><script src="//code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script> <script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js" integrity="sha384-uefMccjFJAIv6A+rW+L4AHf99KvxDjWSu1z9VI8SKNVmz4sk7buKt/6v9KI65qnm" crossorigin="anonymous"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js" type="text/javascript" ></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data.min.js" type="text/javascript" ></script> <script type="text/javascript"> SyntaxHighlighter.defaults["auto-links"] = false; SyntaxHighlighter.defaults["tab-size"] = 2; SyntaxHighlighter.all(); </script>