You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2020/03/18 21:38:17 UTC

[incubator-nlpcraft] branch NLPCRAFT-13 updated: Fixed h1/h2/h3 usage throughout the website for better SEO optimization.

This is an automated email from the ASF dual-hosted git repository.

aradzinski pushed a commit to branch NLPCRAFT-13
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-13 by this push:
     new a91cfbb  Fixed h1/h2/h3 usage throughout the website for better SEO optimization.
a91cfbb is described below

commit a91cfbbbf50c154cff2d44e3a1b79825806c97bb
Author: Aaron Radzinzski <ar...@datalingvo.com>
AuthorDate: Wed Mar 18 14:38:05 2020 -0700

    Fixed h1/h2/h3 usage throughout the website for better SEO optimization.
---
 docs/CNAME                      |  1 -
 docs/basic-concepts.html        | 10 +++----
 docs/blogs.html                 | 64 -----------------------------------------
 docs/community.html             | 26 ++++++++---------
 docs/data-model.html            | 38 ++++++++++++------------
 docs/docs.html                  |  8 +++---
 docs/download.html              | 20 ++++++-------
 docs/examples/alarm_clock.html  | 18 ++++++------
 docs/examples/light_switch.html | 18 ++++++------
 docs/examples/weather_bot.html  |  2 +-
 docs/first-example.html         | 16 +++++------
 docs/getting-started.html       | 12 ++++----
 docs/index.html                 | 29 ++++++++++---------
 docs/installation.html          |  4 +--
 docs/integrations.html          | 22 +++++++-------
 docs/intent-matching.html       | 14 ++++-----
 docs/metrics-and-tracing.html   | 10 +++----
 docs/release-notes-0.5.0.html   |  6 ++--
 docs/server-and-probe.html      | 10 +++----
 docs/use-cases.html             |  2 +-
 docs/using-rest.html            | 18 ++++++------
 21 files changed, 142 insertions(+), 206 deletions(-)

diff --git a/docs/CNAME b/docs/CNAME
deleted file mode 100644
index 5b07f89..0000000
--- a/docs/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-nlpcraft.org
\ No newline at end of file
diff --git a/docs/basic-concepts.html b/docs/basic-concepts.html
index c4d0df2..eef8e61 100644
--- a/docs/basic-concepts.html
+++ b/docs/basic-concepts.html
@@ -23,7 +23,7 @@ id: basic_concepts
 
 <div id="basic-concepts" class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Basic Concepts</span>
+        <h2 class="section-title">Basic Concepts</h2>
         <p>
             Below we’ll cover some of the key concepts that are important for NLPCraft:
         </p>
@@ -35,7 +35,7 @@ id: basic_concepts
         </ul>
     </section>
     <section id="model">
-        <span class="section-sub-title">Data Model</span>
+        <h3 class="section-sub-title">Data Model</h3>
         <p>
             Data model is a central concept in NLPCraft. It defines natural language interface to your public or
             private data sources like on-premise database or a cloud SaaS application.
@@ -62,7 +62,7 @@ id: basic_concepts
         </p>
     </section>
     <section id="ne">
-        <span class="section-sub-title">Named Entities</span>
+        <h3 class="section-sub-title">Named Entities</h3>
         <p>
             Named entity, also known as a model element or a token, is main a component defined by the NLPCraft data model. A named
             entity is one or more individual words that have a consistent semantic meaning and typically denote a
@@ -131,7 +131,7 @@ id: basic_concepts
         </p>
     </section>
     <section id="intent">
-        <span class="section-sub-title">Intent Matching</span>
+        <h3 class="section-sub-title">Intent Matching</h3>
         <p>
             You can think of intent matching as regular expression matching where instead of characters you deal with detected named entities.
             Intent defines a pattern in terms of detected named entities (or tokens) and a callback to call when submitted sentence
@@ -154,7 +154,7 @@ id: basic_concepts
         </p>
     </section>
     <section id="stm">
-        <span class="section-sub-title">Conversation <span class="amp">&amp;</span> STM</span>
+        <h3 class="section-sub-title">Conversation <span class="amp">&amp;</span> STM</h3>
         <p>
             NLPCraft provides automatic conversation management right out of the box.
             Conversation management is based on the idea of short-term-memory (STM). STM is automatically
diff --git a/docs/blogs.html b/docs/blogs.html
deleted file mode 100644
index c0835ec..0000000
--- a/docs/blogs.html
+++ /dev/null
@@ -1,64 +0,0 @@
----
-active_crumb: Blogs
-layout: interior
----
-
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<h1 class="page-title">
-    <span><i class="fas fa-fw fa-blog"></i> {{ page.active_crumb }}</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>
-            <li><a href="/docs.html">Overview</a></li>
-            <li><a href="/installation.html">Installation</a></li>
-            <li><a href="/getting-started.html">Getting Started</a></li>
-        </ul>
-    </div>
-    <div class="col-md-8 second-column">
-        <div id="blogs-container" class="row">
-            {% for blog in site.data.blogs %}
-            <div class="blog-cell col-md-4">
-                <div class="blog-title">
-                    <a href="{{ blog.url }}">
-                        {{ blog.title }}
-                    </a>
-                </div>
-                <div class="blog-excerpt">
-                    {{ blog.excerpt}}&nbsp;<a href="{{ blog.url }}"><i class="fas fa-angle-double-right"></i></a>
-                </div>
-                <div class="blog-footer">
-                    <img class="avatar-img" src="{{ blog.avatar_url | relative_url}}">
-                    <span class="blog-author text-nowrap">{{ blog.author }}</span>
-                    <img class="flag-img" src="{{ blog.flag-ico | relative_url}}">
-                    <span class="text-nowrap blog-date">{{ blog.publish_date }}</span>
-                </div>
-            </div>
-            {% endfor %}
-        </div>
-    </div>
-    <div class="col-md-2 third-column">
-        <ul class="side-nav">
-            {% include quick-links.html %}
-        </ul>
-    </div>
-</div>
-
diff --git a/docs/community.html b/docs/community.html
index c7481d4..0917ce0 100644
--- a/docs/community.html
+++ b/docs/community.html
@@ -35,7 +35,7 @@ layout: interior
     </div>
     <div class="col-md-8 second-column">
         <section id="start">
-            <span class="section-title">Start Contributing</span>
+            <h2 class="section-title">Start Contributing</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>
@@ -50,7 +50,7 @@ layout: interior
                 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>
-            <span class="section-sub-title">Dev List</span>
+            <h3 class="section-sub-title">Dev List</h3>
             <p>
                 This list is the primary and the default communication channel: <a href="mailto:dev@nlpcraft.apache.org">dev@nlpcraft.apache.org</a>
             </p>
@@ -73,13 +73,13 @@ layout: interior
                 dev list letting other contributors share their opinions. As a summary, final decisions are made only
                 on the dev list.
             </p>
-            <span class="section-sub-title">Contribution Process</span>
+            <h3 class="section-sub-title">Contribution Process</h3>
             <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="http://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>
-            <span class="section-sub-title">JIRA Tickets</span>
+            <h3 class="section-sub-title">JIRA Tickets</h3>
             <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
@@ -92,7 +92,7 @@ layout: interior
                 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>
-            <span class="section-sub-title">Git Workflow</span>
+            <h3 class="section-sub-title">Git Workflow</h3>
             <p>
                 NLPCraft project uses Git as its version control system. The same Git workflow rules apply to all
                 sub-projects.
@@ -149,7 +149,7 @@ layout: interior
                     Merging should use Git <code>squashing</code> to minimize number of intermittent commits.
                 </li>
             </ul>
-            <span class="section-sub-title">Creating GitHub Pull-Request</span>
+            <h3 class="section-sub-title">Creating GitHub Pull-Request</h3>
             <pre>
 +------------+             +---------------+            +-----------------+
 |            |   replica   |               |    fork    |                 |
@@ -234,7 +234,7 @@ layout: interior
                     than one pull request for one issue.
                 </p>
             </div>
-            <span class="section-sub-title">Become A Committer And PMC Member</span>
+            <h3 class="section-sub-title">Become A Committer And PMC Member</h3>
             <p>
                 We love contributions and gladly promote active contributors to committers and PMC members!
                 If you are new to Apache Software Foundation then NLPCraft will be an excellent starting point.
@@ -253,7 +253,7 @@ layout: interior
             </p>
         </section>
         <section id="pmc">
-            <span class="section-title">Committers <amp>&amp;</amp> PMC</span>
+            <h2 class="section-title">Committers <amp>&amp;</amp> PMC</h2>
             <p>
                 Visit the <a target="github" href="https://github.com/apache/incubator-nlpcraft/graphs/contributors">Apache NLPCraft Contributors</a> page to
                 see a list of top contributors and committers for the main project.
@@ -333,17 +333,17 @@ layout: interior
             </table>
         </section>
         <section id="resources">
-            <span class="section-title">Resources</span>
+            <h2 class="section-title">Resources</h2>
             <p>
                 There are many ways you can get help from Apache NLPCraft community. The mailing lists are the easiest
                 way to get answers or to get involved with the project.
             </p>
-            <span class="section-sub-title">Stack Overflow</span>
+            <h3 class="section-title">Stack Overflow</h3>
             <p>
                 NLPCraft community members watch Stack Overflow for the tag <code>nlpcraft</code> or "apachenlpcraft",
                 so you can post your questions there as well.
             </p>
-            <span class="section-sub-title">Mailing Lists</span>
+            <h3 class="section-title">Mailing Lists</h3>
             <ul>
                 <li>
                     <a href="mailto:dev@nlpcraft.apache.org">dev@nlpcraft.apache.org</a> for contributor discussions
@@ -358,7 +358,7 @@ layout: interior
                     <a href="https://lists.apache.org/list.html?commits@nlpcraft.apache.org">archive</a>)
                 </li>
             </ul>
-            <span class="section-sub-title">Git</span>
+            <h3 class="section-title">Git</h3>
             <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>
@@ -373,7 +373,7 @@ layout: interior
                 <li><a target="github" href="https://github.com/apache/incubator-nlpcraft-java-client">https://github.com/apache/incubator-nlpcraft-java-client</a></li>
                 <li><a target="github" href="https://github.com/apache/incubator-nlpcraft-ui">https://github.com/apache/incubator-nlpcraft-ui</a></li>
             </ul>
-            <span class="section-sub-title">JIRA Issue Tracking</span>
+            <h3 class="section-title">JIRA Issue Tracking</h3>
             <p>
                 Visit <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues">NLPCraft Jira</a> if you would like to file a new issue or view existing
                 issues. If you would like to assign an issue to yourself and start contributing, please send an
diff --git a/docs/data-model.html b/docs/data-model.html
index 78516f0..5a29711 100644
--- a/docs/data-model.html
+++ b/docs/data-model.html
@@ -23,7 +23,7 @@ id: data_model
 
 <div class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Model Overview</span>
+        <h2 class="section-title">Model Overview</h2>
         <p>
             Data model is a central concept in NLPCraft defining interface to your data sources
             like a database or a SaaS application.
@@ -47,7 +47,7 @@ id: data_model
         </p>
     </section>
     <section id="dataflow">
-        <span class="section-title">Model Dataflow</span>
+        <h2 class="section-title">Model Dataflow</h2>
         <figure>
             <img alt="data model dataflow" class="img-fluid" src="/images/homepage-fig1.1.png">
             <figcaption><b>Fig 1.</b> NLPCraft Architecture</figcaption>
@@ -83,7 +83,7 @@ id: data_model
         </div>
     </section>
     <section id="lifecycle">
-        <span class="section-title">Model Lifecycle</span>
+        <h2 class="section-title">Model Lifecycle</h2>
         <p>
             Data model is an implementation of <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> interface.
             <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> interface has
@@ -121,7 +121,7 @@ id: data_model
                 own data model in the most uses cases.
             </p>
         </div>
-        <span class="section-sub-title">Deployment</span>
+        <h3 class="section-title">Deployment</h3>
         <p>
             Data models get <a href="/server-and-probe.html">deployed</a> to and hosted by the data probes - a lightweight
             container whose job is to host data models and securely transfer requests between REST server and the data
@@ -133,7 +133,7 @@ id: data_model
             the data probe. Note also that data probe can be started in embedded mode, i.e. it can be started
             from within an existing JVM process like user application.
         </p>
-        <span class="section-sub-title">Callbacks</span>
+        <h3 class="section-title">Callbacks</h3>
         <p>
             There are two callbacks on
             <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> interface
@@ -210,7 +210,7 @@ id: data_model
         </div>
     </section>
     <section id="config">
-        <span class="section-title">Model Configuration</span>
+        <h2 class="section-title">Model Configuration</h2>
         <p>
             Apart from mandatory model <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getId--">ID</a>,
             <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#getName--">name</a> and
@@ -243,7 +243,7 @@ id: data_model
             <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isPermutateSynonyms--">isPermutateSynonyms</a></li>
             <li><a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html#isSwearWordsAllowed--">isSwearWordsAllowed</a></li>
         </ul>
-        <span class="section-sub-title">External JSON/YAML Declaration</span>
+        <h3 class="section-title">External JSON/YAML Declaration</h3>
         <p>
             You can move out all the static model configuration into an external JSON or YAML file. To load that
             configuration you need to use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a>
@@ -317,7 +317,7 @@ intents:
         </div>
     </section>
     <section id="elements">
-        <span class="section-title">Model Elements</span>
+        <h2 class="section-title">Model Elements</h2>
         <p>
             Data model element defines a semantic entity that will be detected in the user input.
             A model element typically is one or more individual words that have a consistent semantic meaning and typically denote a
@@ -401,7 +401,7 @@ intents:
                 All properties of model elements (id, groups, parent & ancestors, values, and metadata) can be used in token and intent DSLs.
             </li>
         </ul>
-        <span class="section-sub-title">User vs. Built-In Elements</span>
+        <h3 class="section-title">User vs. Built-In Elements</h3>
         <p>
             Additionally to the model elements that are defined by the user in the data model (i.e. <em>user model elements</em>)
             NLPCraft provides <a href="#builtin">its own named entities</a> as well as the integration with number of <a href="integrations.html#nlp">3rd party projects</a>. You can think of these built-in elements as if they were implicitly defined in your model - you
@@ -820,7 +820,7 @@ intents:
         </pre>
     </section>
     <section id="dsl" >
-        <span class="section-title">Token DSL</span>
+        <h2 class="section-title">Token DSL</h2>
         <p>
             Any individual synonym word that that starts and ends with <code>^^</code> is a token DSL expression. A token
             DSL expression inside of <code>^^ ... ^^</code> markers allows you to define a predicate on already parsed and detected token. It is very important to
@@ -1578,7 +1578,7 @@ intents:
         </ul>
     </section>
     <section id="logic">
-        <span class="section-title">Model Logic</span>
+        <h2 class="section-title">Model Logic</h2>
         <p>
             When a user sends its request via REST API it is received by the REST server. Upon receipt,
             the REST server does the basic NLP processing and enriching. Once finished, the REST server
@@ -1599,13 +1599,13 @@ intents:
             <li>Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a></li>
             <li>Class <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a></li>
         </ul>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html">NCModelView</a></span>
+        <h3 class="section-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelView.html">NCModelView</a></h3>
         <p>
             This interface provides read-only view on data model. Model view defines a declarative, or configurable, part of the model.
             All properties in this interface can be defined or overridden in JSON/YAML external
             presentation when used with <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModelFileAdapter.html">NCModelFileAdapter</a> adapter.
         </p>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a></span>
+        <h3 class="section-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a></h3>
         <p>
             This interface defines a context of a particular intent match. It can be passed into the callback of the matched intent
             and provides the following:
@@ -1616,7 +1616,7 @@ intents:
             <li>Access to the original query context (<a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a>).</li>
             <li>Various access APIs for intent tokens.</li>
         </ul>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a></span>
+        <h3 class="section-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCContext.html">NCContext</a></h3>
         <p>
             This interface provides all available data about the parsed user input and all its
             supplemental information. It's accessible from <code>NCIntentMatch</code> interface and
@@ -1649,7 +1649,7 @@ intents:
                 returns list of all parsing variants for a given user input.
             </li>
         </ul>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">NCRequest</a></span>
+        <h3 class="section-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCRequest.html">NCRequest</a></h3>
         <p>
             <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCSentence.html">NCRequest</a> interface
             is one of the several important entities in Data Model API that you as a model developer will be working with. You
@@ -1667,7 +1667,7 @@ intents:
                 Original request text, timestamp of its receipt, and server request ID.
             </li>
         </ul>
-        <span class="section-sub-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a></span>
+        <h3 class="section-title">Interface <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a></h3>
         <p>
             <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCToken.html">NCToken</a> object is another
             key abstraction in Data Model API. A token is a detected model element and is a part of a fully parsed user input.
@@ -1680,7 +1680,7 @@ intents:
             Depending on the token ID each token will have different set of <a href="#meta">metadata properties</a>. Some common NLP properties
             are always present for tokens of all types.
         </p>
-        <span class="section-sub-title">Class <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a></span>
+        <h3 class="section-title">Class <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCResult.html">NCResult</a></h3>
         <p>
             This class defines data model result returned from model's intent callbacks. Result consists of the
             text body and the type. The type is similar in notion to MIME types. Intent callbacks must use this class
@@ -1688,7 +1688,7 @@ intents:
         </p>
     </section>
     <section id="builtin">
-        <span class="section-title">Built-In Tokens</span>
+        <h2 class="section-title">Built-In Tokens</h2>
         <p>
             NLPCraft provides a number of built-in model elements (i.e. tokens) including the
             <a href="integrations.html">integration</a> with several popular 3rd party NER frameworks. Table
@@ -1997,7 +1997,7 @@ intents:
         </table>
     </section>
     <section id="meta">
-        <span class="section-title">Token Metadata</span>
+        <h2 class="section-title">Token Metadata</h2>
         <p>
             Each token has different set of metadata. Sections below describe metadata for each built-in token
             supported by NLPCraft:
diff --git a/docs/docs.html b/docs/docs.html
index b7cf36d..d0440d0 100644
--- a/docs/docs.html
+++ b/docs/docs.html
@@ -23,7 +23,7 @@ id: overview
 
 <div class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Overview</span>
+        <h2 class="section-title">Overview</h2>
         <p>
             NLPCraft is a Java-based <a href="/legal.html">open source</a> library for adding a natural language
             interface to any applications. It can work with
@@ -54,7 +54,7 @@ id: overview
         </figure>
     </section>
     <section id="data-model">
-        <span class="section-sub-title">Data Model</span>
+        <h3 class="section-title">Data Model</h3>
         <p>
             NLPCraft employs model-as-a-code approach where entire data model is an implementation of
             <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCModel.html">NCModel</a> Java interface that
@@ -73,7 +73,7 @@ id: overview
         </p>
     </section>
     <section id="data-probe">
-        <span class="section-sub-title">Data Probe</span>
+        <h3 class="section-title">Data Probe</h3>
         <p>
             Data probe is an application designed to securely deploy and manage data models.
             Each probe can deploy and manage multiple models and many probes can be connected to the REST server (or a cluster of REST servers).
@@ -88,7 +88,7 @@ id: overview
         </p>
     </section>
     <section id="server">
-        <span class="section-sub-title">REST Server</span>
+        <h3 class="section-title">REST Server</h3>
         <p>
             REST server (or a cluster of REST servers behind a load balancer) provides URL endpoint for user applications
             to securely query data sources using NLI via data models deployed in data probes. Its main purpose is to
diff --git a/docs/download.html b/docs/download.html
index a259245..b606c60 100644
--- a/docs/download.html
+++ b/docs/download.html
@@ -35,7 +35,7 @@ layout: interior
     </div>
     <div class="col-md-8 second-column">
         <section id="prerequisites">
-            <span class="section-title">Support</span>
+            <h2 class="section-title">Support</h2>
             <p>
                 Here's the list of tools you will need to get started with NLPCraft:
             </p>
@@ -71,7 +71,7 @@ layout: interior
             </p>
         </section>
         <section id="src">
-            <span class="section-title">Source Release</span>
+            <h2 class="section-title">Source Release</h2>
             <p>
                 Download the NLPCraft release - <code><b>{{site.latest_version}}</b></code> is the latest version:
             </p>
@@ -116,7 +116,7 @@ layout: interior
             </div>
         </section>
         <section id="zip">
-            <span class="section-title">Binary Release / Docker</span>
+            <h2 class="section-title">Binary Release / Docker</h2>
             <p>
                 Download the NLPCraft binary release - <code><b>{{site.latest_version}}</b></code> is the latest version:
             </p>
@@ -176,7 +176,7 @@ layout: interior
             </div>
         </section>
         <section id="build">
-            <span class="section-title">Building Binaries</span>
+            <h2 class="section-title">Building Binaries</h2>
             <p>
                 To build binaries from the source release download the <a href="#src">source release</a> and run
                 the following commands:
@@ -191,7 +191,7 @@ layout: interior
             </pre>
         </section>
         <section id="verification">
-            <span class="section-title">Release Verification</span>
+            <h2 class="section-title">Release Verification</h2>
             <p>
                 We highly recommend to verify the integrity and authenticity of the ZIP archive by comparing cryptographic
                 signatures.
@@ -210,7 +210,7 @@ layout: interior
                 <a target=_ href="https://md5file.com/calculator">File Hash Online Calculator</a> or
                 <a target=_ href="http://onlinemd5.com/">Online MD5</a>.
             </p>
-            <span class="section-sub-title">Mac OS</span>
+            <h3 class="section-title">Mac OS</h3>
             <nav>
                 <div class="nav nav-tabs" role="tablist">
                     <a class="nav-item nav-link active" data-toggle="tab" href="#nav-macos-md5" role="tab" aria-controls="nav-home" aria-selected="true">MD5</a>
@@ -248,7 +248,7 @@ layout: interior
                 </pre>
                 </div>
             </div>
-            <span class="section-sub-title">Linux</span>
+            <h3 class="section-title">Linux</h3>
             <nav>
                 <div class="nav nav-tabs" role="tablist">
                     <a class="nav-item nav-link active" data-toggle="tab" href="#nav-linux-md5" role="tab" aria-controls="nav-home" aria-selected="true">MD5</a>
@@ -281,7 +281,7 @@ layout: interior
             </div>
         </section>
         <section id="maven">
-            <span class="section-title">Maven/Grape/SBT</span>
+            <h2 class="section-title">Maven/Grape/SBT</h2>
             <p>
                 The easiest way to start using NLPCraft is to add Maven dependency (Grape, SBT, etc.) to your
                 project. NLPCraft project consists of a single module.
@@ -333,7 +333,7 @@ layout: interior
             </div>
         </section>
         <section id="github">
-            <span class="section-title">GitHub</span>
+            <h2 class="section-title">GitHub</h2>
             <p>
                 If you want to contribute to the project or build it form the source
                 you need to get the full developer snapshot from <a target="github" href="https://github.com/apache/incubator-nlpcraft">GitHub</a>:
@@ -354,7 +354,7 @@ layout: interior
             </div>
         </section>
         <section id="java-client">
-            <span class="section-title">Java Client <i class="fab fa-java"></i></span>
+            <h2 class="section-title">Java Client <i class="fab fa-java"></i></h2>
             <p>
                 NLPCraft provides native Java Client for <a href="using-rest.html">REST APIs</a>. Java Client is hosted as a separate
                 <a target="github" href="https://github.com/apache/incubator-nlpcraft-java-client">GitHub project</a> and you
diff --git a/docs/examples/alarm_clock.html b/docs/examples/alarm_clock.html
index 8736a88..4e720be 100644
--- a/docs/examples/alarm_clock.html
+++ b/docs/examples/alarm_clock.html
@@ -23,7 +23,7 @@ id: alarm_clock
 
 <div class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Overview</span>
+        <h2 class="section-title">Overview</h2>
         <p>
             This simple example provides a "alarm clock" implementation where you can ask to set the timer
             for a specific duration from now expressed in hours, minutes and/or seconds. You can say "ping me in 3 minutes",
@@ -36,7 +36,7 @@ id: alarm_clock
         </p>
     </section>
     <section id="new_project">
-        <span class="section-sub-title">Create New Project</span>
+        <h3 class="section-title">Create New Project</h3>
         <p>
             You can create new Java project in many different ways - we'll use Maven archetype generation
             for that. In your home folder run the following command:
@@ -73,7 +73,7 @@ id: alarm_clock
         </p>
     </section>
     <section id="add_nlpcraft">
-        <span class="section-sub-title">Add NLPCraft</span>
+        <h3 class="section-title">Add NLPCraft</h3>
         <p>
             Next we need to add NLPCraft dependency to our new project. Open <code>pom.xml</code> file and replace
             <code>dependencies</code> section with the following code:
@@ -103,7 +103,7 @@ id: alarm_clock
         </p>
     </section>
     <section id="model">
-        <span class="section-sub-title">Data Model</span>
+        <h3 class="section-title">Data Model</h3>
         <p>
             We are going to start with declaring our semantic model using JSON. Create new <code>alarm_model.json</code>
             file and add the following model declaration into it:
@@ -159,7 +159,7 @@ id: alarm_clock
         </p>
     </section>
     <section id="code">
-        <span class="section-sub-title">Model Class</span>
+        <h3 class="section-title">Model Class</h3>
         <p>
             Let's create new Java class in <code>AlarmModel.java</code> with the following code:
         </p>
@@ -276,7 +276,7 @@ public class AlarmModel extends NCModelFileAdapter {
         </ul>
     </section>
     <section>
-        <span class="section-sub-title">Start Data Probe</span>
+        <h3 class="section-title">Start Data Probe</h3>
         <p>
             NLPCraft data models get deployed into data probe. Let's start data probe with our newly
             created data model. To start data probe we need to configure Run Configuration in IDEA with
@@ -308,7 +308,7 @@ public class AlarmModel extends NCModelFileAdapter {
         </p>
     </section>
     <section>
-        <span class="section-sub-title">Start REST Server</span>
+        <h3 class="section-title">Start REST Server</h3>
         <p>
             REST server listens for requests from client applications and routes them to the requested data models
             via connected data probes. REST server starts the same way as the data probe. Configure new
@@ -333,7 +333,7 @@ public class AlarmModel extends NCModelFileAdapter {
         </p>
     </section>
     <section>
-        <span class="section-sub-title">Testing</span>
+        <h3 class="section-title">Testing</h3>
         <p>
             NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/test/package-summary.html">test framework</a> for
             data models that can be used with
@@ -402,7 +402,7 @@ class AlarmTest {
         </p>
     </section>
     <section>
-        <span class="section-title">Done! 👌</span>
+        <h2 class="section-title">Done! 👌</h2>
         <p>
             You've created alarm clock data model, deployed it into the data probe, started the
             REST server and tested this model using JUnit 5 and the built-in test framework.
diff --git a/docs/examples/light_switch.html b/docs/examples/light_switch.html
index cc05349..c18a4cf 100644
--- a/docs/examples/light_switch.html
+++ b/docs/examples/light_switch.html
@@ -23,7 +23,7 @@ id: light_switch
 
 <div class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Overview</span>
+        <h2 class="section-title">Overview</h2>
         <p>
             This example provides 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".
@@ -36,7 +36,7 @@ id: light_switch
         </p>
     </section>
     <section id="new_project">
-        <span class="section-sub-title">Create New Project</span>
+        <h3 class="section-title">Create New Project</h3>
         <p>
             You can create new Java project in many different ways - we'll use Maven archetype generation
             for that. In your home folder run the following command:
@@ -73,7 +73,7 @@ id: light_switch
         </p>
     </section>
     <section id="add_nlpcraft">
-        <span class="section-sub-title">Add NLPCraft</span>
+        <h3 class="section-title">Add NLPCraft</h3>
         <p>
             Next we need to add NLPCraft dependency to our new project. Open <code>pom.xml</code> file and replace
             <code>dependencies</code> section with the following code:
@@ -103,7 +103,7 @@ id: light_switch
         </p>
     </section>
     <section id="model">
-        <span class="section-sub-title">Data Model</span>
+        <h3 class="section-title">Data Model</h3>
         <p>
             We are going to start with declaring our semantic model using YAML. Create new <code>lightswitch_model.yaml</code>
             file and add the following model declaration into it:
@@ -177,7 +177,7 @@ intents:
         </p>
     </section>
     <section id="code">
-        <span class="section-sub-title">Model Class</span>
+        <h3 class="section-title">Model Class</h3>
         <p>
             Let's create new Scala class in <code>LightSwitchModel.scala</code> with the following code:
         </p>
@@ -230,7 +230,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/
         </ul>
     </section>
     <section>
-        <span class="section-sub-title">Start Data Probe</span>
+        <h3 class="section-title">Start Data Probe</h3>
         <p>
             NLPCraft data models get deployed into data probe. Let's start data probe with our newly
             created data model. To start data probe we need to configure Run Configuration in IDEA with
@@ -262,7 +262,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/
         </p>
     </section>
     <section>
-        <span class="section-sub-title">Start REST Server</span>
+        <h3 class="section-title">Start REST Server</h3>
         <p>
             REST server listens for requests from client applications and routes them to the requested data models
             via connected data probes. REST server starts the same way as the data probe. Configure new
@@ -287,7 +287,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/
         </p>
     </section>
     <section>
-        <span class="section-sub-title">Testing</span>
+        <h3 class="section-title">Testing</h3>
         <p>
             NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/test/package-summary.html">test framework</a> for
             data models that can be used with
@@ -371,7 +371,7 @@ class LightSwitchTest {
         </p>
     </section>
     <section>
-        <span class="section-title">Done! 👌</span>
+        <h2 class="section-title">Done! 👌</h2>
         <p>
             You've created NLI-power light switch data model, deployed it into the data probe, started the
             REST server and tested this model using JUnit 5 and the built-in test framework.
diff --git a/docs/examples/weather_bot.html b/docs/examples/weather_bot.html
index cf4e779..ec2a335 100644
--- a/docs/examples/weather_bot.html
+++ b/docs/examples/weather_bot.html
@@ -23,7 +23,7 @@ id: weather_bot
 
 <div class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Overview</span>
+        <h2 class="section-title">Overview</h2>
         <p>
             This example demonstrates relatively complete NLI-based weather service with JSON output and a non-trivial
             intent matching logic. It uses <a target="new" href="https://www.apixu.com">https://www.apixu.com</a>
diff --git a/docs/first-example.html b/docs/first-example.html
index 954854b..d7fc9d5 100644
--- a/docs/first-example.html
+++ b/docs/first-example.html
@@ -23,7 +23,7 @@ id: first_example
 
 <div class="col-md-8 second-column">
     <section id="setup">
-        <span class="section-title">Project Setup</span>
+        <h2 class="section-title">Project Setup</h2>
         <p>
             Let's setup a project for our first example with the following assumptions:
         </p>
@@ -35,7 +35,7 @@ id: first_example
         </ul>
     </section>
     <section id="new_project">
-        <span class="section-sub-title">Create New Project</span>
+        <h3 class="section-title">Create New Project</h3>
         <p>
             You can create new Maven-based project in many different ways - we'll use maven archetype generation
             for that. In your home folder run the following command:
@@ -65,7 +65,7 @@ id: first_example
         </p>
     </section>
     <section id="add_nlpcraft">
-        <span class="section-sub-title">Add NLPCraft</span>
+        <h3 class="section-title">Add NLPCraft</h3>
         <p>
             We also need to add NLPCraft dependency to our new project. Open <code>pom.xml</code> file and replace
             <code>dependencies</code> section with the following code:
@@ -95,7 +95,7 @@ id: first_example
         </p>
     </section>
     <section id="data_model">
-        <span class="section-title">Data Model</span>
+        <h2 class="section-title">Data Model</h2>
         <p>
             For our example we'll develop a prototypical light switch 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
@@ -226,7 +226,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/
         </ul>
     </section>
     <section>
-        <span class="section-sub-title">Start Data Probe</span>
+        <h3 class="section-title">Start Data Probe</h3>
         <p>
             NLPCraft data models get deployed into data probe. Let's start data probe to deploy our newly
             created light switch data model. To start data probe we need to configure Run Configuration in IDEA with
@@ -258,7 +258,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/
         </p>
     </section>
     <section>
-        <span class="section-sub-title">Start REST Server</span>
+        <h3 class="section-title">Start REST Server</h3>
         <p>
             REST server listens for requests from client applications and routes them to the requested data models
             via connected data probes. REST server starts the same way as the data probe. Configure new
@@ -284,7 +284,7 @@ class LightSwitchModel extends NCModelFileAdapter("org/apache/nlpcraft/examples/
         </p>
     </section>
     <section>
-        <span class="section-sub-title">Testing</span>
+        <h3 class="section-title">Testing</h3>
         <p>
             NLPCraft comes with easy to use <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/test/package-summary.html">test framework</a> for data models that can be used with
             any unit testing framework like JUnit or ScalaTest. It is essentially a simplified
@@ -357,7 +357,7 @@ public class LightSwitchTest {
         </p>
     </section>
     <section>
-        <span class="section-title">Congratulation! 👌</span>
+        <h2 class="section-title">Congratulation! 👌</h2>
         <p>
             You've created your first data model, deployed it into the data probe, started the
             REST server and tested the model using JUnit 5 and the built-in test framework.
diff --git a/docs/getting-started.html b/docs/getting-started.html
index d9083c7..a5501e3 100644
--- a/docs/getting-started.html
+++ b/docs/getting-started.html
@@ -23,7 +23,7 @@ id: getting_started
 
 <div class="col-md-8 second-column">
     <section id="getting-started">
-        <span class="section-title">Getting Started</span>
+        <h2 class="section-title">Getting Started</h2>
         <p>
             In this section we'll take a quick 10 minutes look at running and
             testing <a href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples" target="github">examples</a>
@@ -37,7 +37,7 @@ id: getting_started
         </ul>
     </section>
     <section id="probe-server">
-        <span class="section-title">Data Probe <span class="amp">&amp;</span> REST Server</span>
+        <h2 class="section-title">Data Probe <span class="amp">&amp;</span> REST Server</h2>
         <p>
             Data probes are used to deploy and host data model, while REST server (or a
             cluster of servers) is used to accept client REST calls and route them to the data model deployed on data probes.
@@ -165,7 +165,7 @@ id: getting_started
         </p>
     </section>
     <section id="querying">
-        <span class="section-title">Weather Forecast</span>
+        <h2 class="section-title">Weather Forecast</h2>
         <p>
             We'll be testing <a target="github" href="https://github.com/apache/incubator-nlpcraft/tree/master/src/main/scala/org/apache/nlpcraft/examples/weather">Weather Example</a>
             to ask questions about weather forecast using REST APIs. This example returns a comprehensive JSON weather
@@ -180,7 +180,7 @@ id: getting_started
             command line of the standard <code>cURL</code>. Note also that we'll be using Python to pretty format
             cURL JSON responses.
         </p>
-        <span class="section-sub-title">Sign In</span>
+        <h3 class="section-title">Sign In</h3>
         <p>
             First, we need to sign in and obtain <b>access token</b>. We'll use <code>/signin</code>
             REST call for that. When REST server starts
@@ -198,7 +198,7 @@ id: getting_started
             Note the returned access token <code>KMGWMQJ44</code> which we'll use in subsequent operations. Keep in mind that you
             will get different access tokens and IDs when you are performing these steps by yourself.
         </p>
-        <span class="section-sub-title"><b>Query</b></span>
+        <h3 class="section-title"><b>Query</b></h3>
         <p>
             Now that we have signed in (access token <code>KMGWMQJ44</code>) we can go ahead and start asking natural language
             questions against our data model (<code>nlpcraft.weather.ex</code>). For this example we'll use
@@ -331,7 +331,7 @@ id: getting_started
                 "status": "API_OK"
             }
         </pre>
-        <span class="section-sub-title">Sign Out</span>
+        <h3 class="section-title">Sign Out</h3>
         <p>
             Once we enjoyed our conversation about the weather we sign out:
         </p>
diff --git a/docs/index.html b/docs/index.html
index 5b34fbb..f88fa0d 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -23,7 +23,7 @@ layout: default
     <div id="inner-banner-box">
         <div id="banner">
             <div id="nat-lang-itf">Apache NLPCraft</div>
-            <div id="banner-sub-title">An API to convert natural language into actions</div>
+            <h1 id="banner-sub-title">An API 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="ml-2 fas fa-angle-right"></i></a>
             </div>
@@ -35,7 +35,7 @@ layout: default
     <div class="container-fluid">
         <div class="row">
             <div class="col-4">
-                <div class="section-title">What Is <span>NLPCraft</span></div>
+                <h2 class="section-title">What Is <span>NLPCraft</span></h2>
                 <section>
                     <p>
                         Apache NLPCraft is an open source library for adding natural language Interface
@@ -53,7 +53,7 @@ layout: default
                 </section>
             </div>
             <div class="col-4">
-                <div class="section-title">Natural <span>Language</span></div>
+                <h2 class="section-title">Natural <span>Language</span></h2>
                 <section>
                     <p>
                         Natural Language Interface (NLI) enables users to explore any type of data
@@ -67,7 +67,7 @@ layout: default
                 </section>
             </div>
             <div class="col-4">
-                <div class="section-title">Quick <span>Links</span></div>
+                <h2 class="section-title">Quick <span>Links</span></h2>
                 <section>
                     <div class="quick-link" >
                         <a href="https://github.com/apache/incubator-nlpcraft" target="github">
@@ -94,7 +94,8 @@ layout: default
                         <a href="/apis/latest/index.html" target="_">
                             <img alt="" class="quick-link-img" src="{{ 'images/java.png' | relative_url }}">
                             <span>Latest&nbsp;</span>
-                            <a target="_" href="https://javadoc.io/doc/org.apache.nlpcraft/nlpcraft"><img src="https://javadoc.io/badge/org.apache.nlpcraft/nlpcraft.svg" alt="Javadocs"></a>
+                            <!-- TODO: fix package name for javadoc.io image. -->
+                            <a target="_" href="https://javadoc.io/doc/org.apache.nlpcraft/nlpcraft"><img src="https://javadoc.io/badge/org.nlpcraft/nlpcraft.svg" alt="Javadocs"></a>
                         </a>
                     </div>
                     <div class="quick-link">
@@ -113,12 +114,12 @@ layout: default
     <div class="container-fluid">
         <div class="row">
             <div class="col-12">
-                <div class="section-title">Key <span>Features</span></div>
+                <h2 class="section-title">Key <span>Features</span></h2>
             </div>
         </div>
         <div class="row">
             <div class="col-4">
-                <div class="sub-section-title">Semantic Modeling</div>
+                <h3 class="sub-section-title">Semantic Modeling</h3>
                 <section>
                     <p>
                         Advanced semantic modelling and intent-based matching enables
@@ -128,7 +129,7 @@ layout: default
                 </section>
             </div>
             <div class="col-4">
-                <div class="sub-section-title">Any Data Source</div>
+                <h3 class="sub-section-title">Any Data Source</h3>
                 <section>
                     <p>
                         Any data source, device, or service - public or private. From databases and SaaS systems,
@@ -137,7 +138,7 @@ layout: default
                 </section>
             </div>
             <div class="col-4">
-                <div class="sub-section-title">Java-First</div>
+                <h3 class="sub-section-title">Java-First</h3>
                 <section>
                     <p>
                         REST API and Java-based implementation natively
@@ -148,7 +149,7 @@ layout: default
         </div>
         <div class="row mt-4">
             <div class="col-4">
-                <div class="sub-section-title">Strong Security</div>
+                <h3 class="sub-section-title">Strong Security</h3>
                 <section>
                     <p>
                         HTTPs, model deployment isolation, 256-bit encryption and ingress-only connectivity are
@@ -157,7 +158,7 @@ layout: default
                 </section>
             </div>
             <div class="col-4">
-                <div class="sub-section-title">Model-As-A-Code</div>
+                <h3 class="sub-section-title">Model-As-A-Code</h3>
                 <section>
                     <p>
                         Model-as-a-code convention natively
@@ -166,7 +167,7 @@ layout: default
                 </section>
             </div>
             <div class="col-4">
-                <div class="sub-section-title">Out-Of-The-Box Integration</div>
+                <h3 class="sub-section-title">Out-Of-The-Box Integration</h3>
                 <section>
                     <p>
                         NLPCraft natively <a href="/integrations.html">integrates</a> with 3rd party libraries for base NLP processing
@@ -191,7 +192,7 @@ layout: default
     <div class="container-fluid">
         <div class="row">
             <div class="col-12">
-                <div class="section-title">How <span>It Works</span></div>
+                <h2 class="section-title">How <span>It Works</span></h2>
             </div>
         </div>
         <div class="row d-flex flex-wrap align-items-center">
@@ -229,7 +230,7 @@ layout: default
     <div class="container-fluid">
         <div class="row">
             <div class="col-12">
-                <div class="section-title">Latest <span>News</span></div>
+                <h2 class="section-title">Latest <span>News</span></h2>
             </div>
         </div>
         <div id="news-container" class="row">
diff --git a/docs/installation.html b/docs/installation.html
index bf58894..67be156 100644
--- a/docs/installation.html
+++ b/docs/installation.html
@@ -23,7 +23,7 @@ id: installation
 
 <div class="col-md-8 second-column">
     <section id="installation">
-        <span class="section-title">Installation</span>
+        <h2 class="section-title">Installation</h2>
         <p>
             NLPCraft requires <b>no special installation</b> operations:
         </p>
@@ -34,7 +34,7 @@ id: installation
         </ul>
     </section>
     <section id="ignite">
-        <span class="section-title">Apache Ignite 2.7 <span class="amp">&amp;</span> Java 9+</span>
+        <h2 class="section-title">Apache Ignite 2.7 <span class="amp">&amp;</span> Java 9+</h2>
         <p>
             By default NLPCraft uses <a target=_ href="https://ignite.apache.org/">Apache Ignite</a> project as its
             underlying in-memory distributed storage and cluster computing framework. If running with Apache Ignite 2.7 or
diff --git a/docs/integrations.html b/docs/integrations.html
index e54189d..857c5d8 100644
--- a/docs/integrations.html
+++ b/docs/integrations.html
@@ -94,7 +94,7 @@ id: integrations
         </table>
 
         <div class="bq warn">
-            <span class="section-sub-title">Configuring Token Providers</span>
+            <h3 class="section-title">Configuring Token Providers</h3>
             <p>
                 REST server configuration support zero or more token providers. Data models also have to specify
                 the specific tokens they are expecting the REST server and probe to detect. This is done to limit the
@@ -113,11 +113,11 @@ id: integrations
         <p>
             NLPCraft is an open source library for adding natural language Interface to any applications.
         </p>
-        <span class="section-sub-title">Base NLP Engine</span>
+        <h3 class="section-title">Base NLP Engine</h3>
         <p>
             N/A
         </p>
-        <span class="section-sub-title">Token Provider</span>
+        <h3 class="section-title">Token Provider</h3>
         <p>
             NLPCraft provides its own set of built-in elements. NLPCraft token IDs start with <code>nlpcraft</code>. Note
             also that all NLPCraft built-in tokens are normalized named entities (NNE), i.e. they provide normalized
@@ -342,12 +342,12 @@ id: integrations
             <a href="https://opennlp.apache.org">Apache OpenNLP</a> is an open-source library for a machine learning based
             processing of natural language text.
         </p>
-        <span class="section-sub-title">Base NLP Engine</span>
+        <h3 class="section-title">Base NLP Engine</h3>
         <p>
             <a href="https://opennlp.apache.org">Apache OpenNLP</a> is used by NLPCraft as a default base NLP engine. You can also set
             it explicitly on REST server and probe via configuration property: <code>nlpcraft.nlpEngine=opennlp</code>
         </p>
-        <span class="section-sub-title">Token Provider</span>
+        <h3 class="section-title">Token Provider</h3>
         <p>
             OpenNLP can be used independently as a token provider (even if other library is used as a base NLP engine).
             OpenNLP provides its own set of built-in tokens supported by NLPCraft.
@@ -430,11 +430,11 @@ id: integrations
             <a href="https://cloud.google.com/natural-language/">Google Natural Language</a> uses machine learning
             to reveal the structure and meaning of text.
         </p>
-        <span class="section-sub-title">Base NLP Engine</span>
+        <h3 class="section-title">Base NLP Engine</h3>
         <p>
             N/A
         </p>
-        <span class="section-sub-title">Token Provider</span>
+        <h3 class="section-title">Token Provider</h3>
         <p>
             Google Natural Language provides its own set of built-in elements.
             To use Google token provider the environment variable <code>GOOGLE_APPLICATION_CREDENTIALS</code>
@@ -469,7 +469,7 @@ id: integrations
         <p>
             <a href="https://stanfordnlp.github.io/CoreNLP">Stanford CoreNLP</a> is a set of human language technology tools.
         </p>
-        <span class="section-sub-title">Base NLP Engine</span>
+        <h3 class="section-title">Base NLP Engine</h3>
         <p>
             You can set Stanford CoreNLP as a base NLP engine. Note that due to licensing you need to add Stanford CoreNLP
             dependencies separately and make it available to NLPCraft:
@@ -534,7 +534,7 @@ id: integrations
                 project classpath if you are not using, or instead of, build tools.
             </li>
         </ul>
-        <span class="section-sub-title">Token Provider</span>
+        <h3 class="section-title">Token Provider</h3>
         <p>
             Stanford CoreNLP can be used as a token provider independently from base NLP engine.
             Due to licensing you need to add Stanford CoreNLP dependencies separately and make it available to NLPCraft:
@@ -628,11 +628,11 @@ id: integrations
         <p>
             <a href="https://spacy.io">spaCy</a> is a free open-source library for Natural Language Processing in Python.
         </p>
-        <span class="section-sub-title">Base NLP Engine</span>
+        <h3 class="section-title">Base NLP Engine</h3>
         <p>
             N/A
         </p>
-        <span class="section-sub-title">Token Provider</span>
+        <h3 class="section-title">Token Provider</h3>
         <p>
             spaCy provides its own set of built-in elements. NLPCraft integrates with spaCy via local Python-based
             REST server <code>/src/main/python/spacy_proxy.py</code>. It is a very simple Flask-based implementation
diff --git a/docs/intent-matching.html b/docs/intent-matching.html
index 048bf7c..07a0238 100644
--- a/docs/intent-matching.html
+++ b/docs/intent-matching.html
@@ -23,7 +23,7 @@ id: intent_matching
 
 <div class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Overview</span>
+        <h2 class="section-title">Overview</h2>
         <p>
             As we discussed in <a href="/data-model.html#logic">Data Model</a> section the processing logic of the data model is
             encoded in intents and their callbacks. Sections below will explain how to declare an intent and how to develop
@@ -31,7 +31,7 @@ id: intent_matching
         </p>
     </section>
     <section id="matching">
-        <span class="section-title">Intent-Based Matching</span>
+        <h2 class="section-title">Intent-Based Matching</h2>
         <p>
             The intent matching is based on an idea of defining one or more templates for user input and let the
             algorithm choose the best matching one given the user input. Such template is called an <em>intent</em>.
@@ -220,7 +220,7 @@ id: intent_matching
         </ul>
     </section>
     <section id="syntax">
-        <span class="section-title">Intent DSL</span>
+        <h2 class="section-title">Intent DSL</h2>
         <p>
             Regardless of how intent is defined - directly in <code>@NCIntent</code> annotation or in external model
             declaration - it follow the exactly the same syntax (here's a full <a target=github href="https://github.com/apache/incubator-nlpcraft/blob/master/src/main/scala/org/apache/nlpcraft/model/intent/impl/antlr4/NCIntentDsl.g4">ANTRL4 grammar</a>).
@@ -330,7 +330,7 @@ id: intent_matching
         </div>
     </section>
     <section id="callback">
-        <span class="section-title">Intent Callback</span>
+        <h2 class="section-title">Intent Callback</h2>
         <p>
             Whether the intent is defined directly in <code>@NCIntent</code> annotation or indirectly via <code>@NCIntentRef</code>
             annotation - it is always attached to a callback method:
@@ -422,7 +422,7 @@ id: intent_matching
                 parameter.
             </li>
         </ul>
-        <span class="section-sub-title"><code>NCRejection</code> and <code>NCIntentSkip</code> Exceptions</span>
+        <h3 class="section-title"><code>NCRejection</code> and <code>NCIntentSkip</code> Exceptions</h3>
         <p>
             There are two exceptions that can be used by intent callback logic to control intent matching process.
         </p>
@@ -472,7 +472,7 @@ id: intent_matching
                 that type of matching.
             </p>
         </div>
-        <span class="section-sub-title"><code>NCIntentMatch</code> Interface</span>
+        <h3 class="section-title"><code>NCIntentMatch</code> Interface</h3>
         <p>
             <a target="javadoc" href="/apis/latest/org/apache/nlpcraft/model/NCIntentMatch.html">NCIntentMatch</a> interface
             can be passed into intent callback as its first parameter. This interface provide runtime information
@@ -481,7 +481,7 @@ id: intent_matching
         </p>
     </section>
     <section id="examples">
-        <span class="section-title">Intent Examples</span>
+        <h2 class="section-title">Intent Examples</h2>
         <p>
             Here's number of intent examples with explanations. These intents can be defined directly in <code>@NCIntent</code>
             annotation or in external JSON or YAML mode definition.
diff --git a/docs/metrics-and-tracing.html b/docs/metrics-and-tracing.html
index 4bb904b..9e78116 100644
--- a/docs/metrics-and-tracing.html
+++ b/docs/metrics-and-tracing.html
@@ -23,7 +23,7 @@ id: metrics
 
 <div id="metrics-and-tracing" class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Overview</span>
+        <h2 class="section-title">Overview</h2>
         <p>
             Both REST server and data probe come with <a target=_ href="https://opencensus.io">OpenCensus</a>
             instrumentation. NLPCraft bundles several built-in exporters for various OpenCensus trace and stats
@@ -130,7 +130,7 @@ id: metrics
         </p>
     </section>
     <section id="server">
-        <span class="section-title">Configuring Server</span>
+        <h2 class="section-title">Configuring Server</h2>
         <p>
             OpenCensus exporters for the REST server are lifecycle components. Server lifecycle components are the implementations
             of <code>NCServerLifecycle</code> trait. Lifecycle components get callbacks for various stages of the server
@@ -161,7 +161,7 @@ nlpcraft {
         </p>
     </section>
     <section id="probe">
-        <span class="section-title">Configuring Probe</span>
+        <h2 class="section-title">Configuring Probe</h2>
         <p>
             Just like on the REST server OpenCensus exporters for the data probe are lifecycle components. Probe lifecycle
             components are the implementations
@@ -199,7 +199,7 @@ nlpcraft {
         </ul>
     </section>
     <section id="traces">
-        <span class="section-title">Traces</span>
+        <h2 class="section-title">Traces</h2>
         <p>
             When traces are exporter, there are two service names used for NLPCraft traces that will appear on UI backends:
         </p>
@@ -214,7 +214,7 @@ nlpcraft {
         </p>
     </section>
     <section id="metrics">
-        <span class="section-title">Metrics</span>
+        <h2 class="section-title">Metrics</h2>
         <p>
             When it comes to metrics each exporter has different set of configuration for either a namespace or
             name prefix on how these metrics will be available on the UI backends:
diff --git a/docs/release-notes-0.5.0.html b/docs/release-notes-0.5.0.html
index 799f6ab..923e134 100644
--- a/docs/release-notes-0.5.0.html
+++ b/docs/release-notes-0.5.0.html
@@ -21,7 +21,7 @@ layout: release-notes
 -->
 
 <section id="new">
-    <span class="section-title">🙌 New</span>
+    <h2 class="section-title">🙌 New</h2>
     <ul>
         <li>
             Fixed <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues/NLPCRAFT-13">Issue #13</a>.
@@ -32,12 +32,12 @@ layout: release-notes
     </ul>
 </section>
 <section id="enhancements">
-    <span class="section-title">🤖 Enhancements</span>
+    <h2 class="section-title">🤖 Enhancements</h2>
     <ul>
     </ul>
 </section>
 <section id="fixes">
-    <span class="section-title">🧐 Fixes</span>
+    <h2 class="section-title">🧐 Fixes</h2>
     <ul>
         <li>Fixed <a target="jira" href="https://issues.apache.org/jira/projects/NLPCRAFT/issues/NLPCRAFT-2">Issue #2</a>.</li>
     </ul>
diff --git a/docs/server-and-probe.html b/docs/server-and-probe.html
index 9c2c2cb..31204cb 100644
--- a/docs/server-and-probe.html
+++ b/docs/server-and-probe.html
@@ -23,7 +23,7 @@ id: server_and_probe
 
 <div id="server-and-probes" class="col-md-8 second-column">
     <section>
-        <span class="section-title">Overview</span>
+        <h2 class="section-title">Overview</h2>
         <p>
             As mentioned in <a href="/docs.html">overview</a> section the REST server and data probe are the two
             runtime components that you need to run when using NLPCraft.
@@ -76,7 +76,7 @@ id: server_and_probe
         </p>
     </section>
     <section id="server">
-        <span class="section-title">REST Server</span>
+        <h2 class="section-title">REST Server</h2>
         <p>
             As mentioned above REST server (or a cluster of servers) is used to accept client REST calls and
             route them to the data model via data probes. Note that both data probe and the REST server start the same way.
@@ -159,7 +159,7 @@ id: server_and_probe
                 insufficient JVM heap memory.
             </p>
         </div>
-        <span class="section-sub-title"><i class="fab fa-docker"></i> Docker</span>
+        <h3 class="section-title"><i class="fab fa-docker"></i> Docker</h3>
         <p>
             You can also run REST server inside of Docker container:
         </p>
@@ -197,7 +197,7 @@ id: server_and_probe
         </pre>
     </section>
     <section id="probe">
-        <span class="section-title">Data Probe</span>
+        <h2 class="section-title">Data Probe</h2>
         <p>
             Just like the REST server the data probe can be started in a <em>standard way</em> from either the
             command line or IDE such as Eclipse or IntelliJ IDEA:
@@ -344,7 +344,7 @@ id: server_and_probe
         </pre>
     </section>
     <section id="config">
-        <span class="section-title">Configuration</span>
+        <h2 class="section-title">Configuration</h2>
         <p>
             Both REST server and the data probe use <a target=_ href="https://github.com/lightbend/config/">Typesafe Config</a> for their configuration:
         </p>
diff --git a/docs/use-cases.html b/docs/use-cases.html
index 17caabf..e136416 100644
--- a/docs/use-cases.html
+++ b/docs/use-cases.html
@@ -35,7 +35,7 @@ layout: interior
     </div>
     <div class="col-md-8 second-column">
         <section>
-            <span class="section-title">NLI Applications</span>
+            <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
diff --git a/docs/using-rest.html b/docs/using-rest.html
index ef8a436..a26de31 100644
--- a/docs/using-rest.html
+++ b/docs/using-rest.html
@@ -23,7 +23,7 @@ id: rest
 
 <div class="col-md-8 second-column">
     <section id="overview">
-        <span class="section-title">Overview</span>
+        <h2 class="section-title">Overview</h2>
         <p>
             REST API provides a universal integration path for any type of user application to connect to and use NLPCraft.
             By using REST API these applications can ask natural language questions, get results and perform
@@ -58,7 +58,7 @@ id: rest
         </div>
     </section>
     <section id="java-client">
-        <span class="section-sub-title">Java Client <i class="fab fa-java"></i></span>
+        <h3 class="section-title">Java Client <i class="fab fa-java"></i></h3>
         <p>
             NLPCraft provide native Java client that enables easy-to-use Java-based API wrapping standard
             NLPCraft REST APIs. It can be used by any JVM language that provides Java interop such as Scala, Groovy, or Kotlin:
@@ -71,7 +71,7 @@ id: rest
 
     </section>
     <section id="format">
-        <span class="section-sub-title">REST URL</span>
+        <h3 class="section-title">REST URL</h3>
         <p>
             REST API accepts only <code>POST</code> HTTP calls and <code>application/json</code> content type
             for JSON payload and responses. When issuing a REST call you will be using the following URL:
@@ -138,7 +138,7 @@ id: rest
         </div>
     </section>
     <section id="auth">
-        <span class="section-sub-title">Authentication</span>
+        <h3 class="section-title">Authentication</h3>
         <p>
             Before performing any REST calls a registered user needs to sign in to receive
             an <b>access token</b> that will be used in all subsequent operations:
@@ -180,7 +180,7 @@ id: rest
         </div>
     </section>
     <section id="asking">
-        <span class="section-sub-title">Asking</span>
+        <h3 class="section-title">Asking</h3>
         <p>
             This is the main group of operation that allows to ask questions, check the status and get
             result:
@@ -227,7 +227,7 @@ id: rest
         </table>
     </section>
     <section id="company">
-        <span class="section-sub-title">Company Management</span>
+        <h3 class="section-title">Company Management</h3>
         <p>
             This group of operations allows to add, update and remove companies in the systems.
         </p>
@@ -263,7 +263,7 @@ id: rest
         </table>
     </section>
     <section id="user">
-        <span class="section-sub-title">User Management</span>
+        <h3 class="section-title">User Management</h3>
         <p>
             This group of operations allows to add, update and remove users in the systems:
         </p>
@@ -309,7 +309,7 @@ id: rest
         </table>
     </section>
     <section id="data_probe">
-        <span class="section-sub-title">Data Probe Management</span>
+        <h3 class="section-title">Data Probe Management</h3>
         <p>
             This group of operations allows to get the information about connected data probes:
         </p>
@@ -329,7 +329,7 @@ id: rest
         </table>
     </section>
     <section id="server_errors">
-        <span class="section-title">Server Errors</span>
+        <h2 class="section-title">Server Errors</h2>
         <p>
             When REST server returns HTTP error the response body contains JSON object (<code>Content-Type → application/json</code>)
             with two fields <code>code</code> and <code>msg</code>: