Sunday, September 18, 2011

C# .NET Web based chatterbot development with AIML - Part 1

Hi All,
As promised here I am again, not so late this time....:).
I hope you all are now familiar with the chatterbot concept and know some of the technologies that use to develop as I mentioned in the introduction post How to start implementing an AIML based chatterbot?
If you have not read the last post, do not worry :) you can proceed reading this, but it is always nice to have the background knowledge :).


Because this is the first part of the development of our chatterbot system, I am going to give you an overall view of the system that we are going to develop , therefore you all could gt a very high level understanding of the architecture.



As you can see from the above diagram,


1) We have the web interface where a user can input and get output . We are going to develop this using ASP.NET.


2) Once user input a particular question or any query to the chatterbot, system does some reasoning related to the query in order to get the best output from the knowledge-base. We are going to use the AIML interpreter for the reasoning of the chatterbot.


3) The knowledge-base consist of all the knowledge related to a particular area or general knowledge which helps with the answering process. Best suited answer is selected form the knowledge stored in the knowledge-base. The knowledge-base will be developed using the AIML  language.


Now you know what are the components of the our system and what are the technologies we are going to use in order to develop the system.
According to my experience, the most important part of a chatterbot is it's knowledge-base, which helps giving the best  experience of a chat. Therefore, we are going to focus on developing the knowledge-base first. 
As I mentioned above, we are going to develop it using AIML, which is Artificial Intelligence Markup Language. Before start developing the knowledge-base , we need to know about this AIML language.
Why don't we peep in for an AIML introduction first, then proceed with the development?. Sounds good isn't it? 
Followings are some useful links to get started with learning AIML, and with next post we will learn AIML basics and proceed forward. See you soon..:)


1 ) AIML: Artificial Intelligence Markup Language
2)  AIML Overview
3)  AIML 1.0.1 Tag Set
4) Artificial Intelligence Markup Language (AIML)
5) AIML Reference Manual