 Hello everyone. Welcome to this video on expert systems. I am Amrita Chaturvedi from the Department of Computer Science and Engineering at IIT Kanpur. Now that you are quite comfortable with the concepts of knowledge and knowledge representation techniques, let us now enter into the realm of usage of these knowledge representation in computer programs. Those are expert systems. The topics that will be covered in today's video are what is an expert system? Why should we use expert systems, the history of expert systems, latest developments in expert systems, components of an expert system, rule based reasoning in expert systems and limitations of expert systems. First of all, what is an expert system? An expert system is a computer program that emulates human experts. Now human experts have several capabilities. Human experts have a considerable knowledge about their areas of expertise. They can also learn from their experience. That is, they can modify or update their mental facts and rules and understanding of a topic or a domain on the basis of their worldly experience. They can also do reasoning. That is, they can derive new knowledge from existing facts or rules. They can explain the solution they have reached. That is, they can tell why and how they have reached a particular solution. They can also explain the facts and rules they have used to obtain a particular conclusion. They can restructure the knowledge by modifying the relationships between concepts and their properties on the basis of newly acquired knowledge. They can also determine the relevance. That is, they can automatically determine the relevant rules that need to be applied to provide solution to a particular problem. What is an expert system? An expert system is software that attempts to reproduce the performance of one or more human experts typically in a specific problem domain. So, expert systems are completely domain-specific. Expert systems employ human knowledge represented in a computer to solve problems that ordinarily require human expertise. Expert systems imitate the expert's reasoning processes to solve specific problems. Why should we use expert systems? Expert systems capture and preserve irreplaceable human expertise. That is, there may be cases when human experts are not available because of disease, death or other unforeseen events. Expert systems provide expertise that may be unavailable otherwise. They provide expertise needed at a number of locations at the same time or in a hostile environment that is dangerous to human health. They add portability to knowledge and expertise and provide it at the click of a button. They provide unemotional objective solutions faster than human experts. That is, the conclusions and advices provided by expert systems are not affected by emotional forces. They provide expertise that is expensive or rare. They also share human expertise with a large number of people. Let us look into the history of expert systems. In 1959, Newell and Simon described general problem solver. General problem solver intended to solve general problems across domains. For example, theorem proof, geometric proof and chess playing. It was the first computer program to separate knowledge that is a set of rules and facts of a particular domain from strategy. That is, the procedure to solve a particular problem. It was a predecessor to expert systems. Expert systems were introduced by Stanford heuristic programming project led by Feigenbaum who is also often referred to as the father of expert systems. The Stanford researchers tried to identify the domain where human expertise is highly valued and complex. For example, diagnosis of infectious diseases. Then came the advent of mycin. In mid 1960s, early expert system programs came into being. For example, mycin. It was used to diagnose infectious diseases such as spectreremia and meningitis. It recommended antibiotic medicines and the dosage was adjusted for patients body weight. Its name was derived from antibiotics themselves whose name often carried the suffix mycin. In mid 1970s, the role and importance of knowledge in expert systems was recognized. It was concluded the power of an expert system comes from the specific knowledge it possesses not from the inference scheme it employs. Therefore, several knowledge representation theories were developed. There was also development of decision making procedures and inferences. In early 1980s, expert systems proliferated. Several expert systems came into being. For example, Xcon and XL. Xcon stands for expert configurator. It was used to assist in the ordering of TEX VAX computer system. It automatically selected the computer system components based on the customer's requirements. It saved DEX dollar 25 million a year by speeding the assembly process and increasing customer satisfaction. XL was a newer version of Xcon. Now motivated by the grand success of Xcon, DEX decided to rewrite Xcon in the form of XL. XL intended to be used by DEX sales force to enable customers to efficiently customize their VAX machines. After that, universities also started offering expert system courses. Expert system technology became commercial when several business companies started using the expert system technology in their daily business activities. Programming tools and shells also appeared. An expert system shell is a computer software package that enables one to develop expert systems. For example, E-Mysyn and Expert. E-Mysyn was an expert system shell that was based on MySyn. There are several recent developments in expert system domain. There is a lot of improvement in knowledge acquisition technique. Software and expertise are now also available on the internet. There is use of multiple knowledge bases to enable the expert systems to make cross domain conclusions. Many tools to expedite the construction of expert systems at a reduced cost are now also available. For example, expertise to go. It provides a free expert system shell that provides the inference engine, acquisition and explanation interface. There is also an increased use of expert systems in many tasks like medical diagnosis, car diagnosis and financial advice. In medical diagnosis, the expert system diagnoses the disease and recommends the medication. In car diagnosis, the expert system detects the problem and suggests the solution. In financial advice, the expert system suggests whether or not to invest in a business. There are three main components of an expert system, a user interface, knowledge base and inference engine. User interface is a component that is used by users to interact with the expert system. User interface is also used by expert systems to ask questions to the user and also provide advice and conclusion. Expert system also uses the user interface to provide justification for its advices and conclusions. The knowledge base stores knowledge, that is a set of facts and rules. The inference engine is the brain of expert system. It derives new knowledge from existing knowledge. It chooses the relevant rules and also determines the questions that should be asked to the user through the user interface and also the sequence in which they should be asked. The inference engine triggers the rules and also provides the conclusion and advice. Now let us see how rule based reasoning is done in expert systems. These are three simple rules regarding vegetation. Rule one, if mango plant is diseased then spray fungicide on the plant. Rule two, if mango plant is not diseased then water the plant sufficiently. Rule three, if there are leaf spots and there are fruit rots then mango plant is diseased. Now it is easy to see that the conclusion of rule three is actually the condition of rule one. Now let us see the triggering of these rules with the help of a tree. The expert system is supposed to suggest an action say x and it has two rules. Rule one suggests to spray fungicide on the plant and rule two suggests to water the plant sufficiently. Now suppose initially rule one is triggered. So the expert system checks whether its condition is true or not. Its condition is mango plant is diseased. The expert system sees that this is actually the conclusion of rule three. It therefore triggers rule three and checks whether its conditions are true or not. It has two conditions. There are leaf spots and another is there are fruit rots. The expert system therefore asks these two questions to the user. If the user provides yes in answer to these questions the expert system concludes to spray fungicide on the plant. So this is the way expert system does reasoning. Expert system apart from providing the advice and conclusion also provides the justification that is why. It means why are you asking for a particular information. The expert system returns the current rule that is being fired and that has instigated it to ask a particular question. And also how it means how did you reach the conclusion. The expert system returns the sequence of rules that are fired to reach a conclusion. There are also several limitations of expert systems. It is limited to relatively narrow problems. Therefore an expert system that is designed to solve problems in a particular domain cannot be used to solve problems of another domain. It cannot readily deal with mixed knowledge. Errors may occur in the knowledge base. It cannot refine its own knowledge base or learn from experience. It lacks common sense and cannot make creative responses as human experts can do. Domain experts also are not always able to explain their logic and reasoning. Because of this there may be gaps in the knowledge base. That will be all for today. Thank you so much for attending this lecture.