IBM's Watson acts as a template for developing chat-bots with ease (without coding), but what are the methodologies and concepts that have been used to build it?
The IBM Watson platform can be seen as the latest iteration in natural language processing. Before Watson, there were other projects like SHRDLU and CYC out there. The pipeline is very equal: a parser is used to analyze the user input; this can be done with a formal grammar. Then, an agent system is making request to the internal knowledge database. The database is stored in an OWL-like syntax, and the answer to the request is converted into natural language which is given back to the user. Here a short timeline of the milestones:
1980: "Zork" text adventure: storing knowledge which can be retrieved by a natural language interface. The idea is to interact with the machine with a text parser.
1990s statistical language models: using existing corpus (a full-text database) to parse the content with probabilistic methods, CYC by Douglas Lenat is a famous example
2010 DeepQA: a Question Answering System with the aim to use a super-computer for natural language processing.