The Rasa-Stack consists of two components: \textit{Rasa-Core} and \textit{Rasa-NLU}. The \textit{Rasa-NLU} component takes care of getting user input and matching it with the respective intents. It also extracts all possibly provided entities and stores them in variables, called ``slots''. After that, the \textit{Rasa-Core} component executes all actions associated with the determined intent.
The Rasa-Stack consists of two components: \textit{Rasa-Core} and \textit{Rasa-NLU}.
The \textit{Rasa-NLU} component takes care of getting user input and matching it with the respective intents.
It also extracts all possibly provided entities and stores them in variables, called ``slots''.
After that, the \textit{Rasa-Core} component executes all actions associated with the determined intent.
Every intent that requests data, uses two custom python actions:
One to search for the information in a datafile or database and a second one to utter found results back to the user.
There are fallback actions and error handlings in place, in case the user entered false requests or the bot can't find answers for a given intent.
The structure of the bot was heavily inspired by the Rasa Github examples\footnote{\url{https://github.com/RasaHQ/rasa_core/tree/master/examples}}.
Intents used in this project were chosen to be simple and possible to extract from wikitexts.
\subsection{Scrapping of Source Texts}
Wikipedia was chosen as resource for texts as it provides texts of relatively long length in a somewhat uniform manner.