Knowledge based systems

A knowledge based system allows a user to interrogate a vast knowledge base and get a answer. The user would input what information they knew already and the knowledge based system would then try and infer an answer. This is sometimes referred to as a expert system.

Consider a car mechanic. They (hopefully!) have very specific and detailed knowledge on how to repair cars. They know that if a car is exhibiting certain symptoms then it is likely that X or Y is wrong with it. It is not always exact and sometimes the mechanic has to look deeper into the problem in order to diagnose the issue. So the process goes -

Doctors work in a very similar way -

A expert system works in a similar way and is broken down into different parts -

The rule base works using logic and probabilities. For example, lets say a patient had a headache and a runny nose. These two symptoms could be linked to "Cold" or they could be linked to something more serious such as the "Flu". It is much more likely to be a cold however there is a chance it could be the Flu. The rule base sets these links and probabilities for the inference engine to use.

The inference engine is interactive. It does not just get input, do some processing and then come back with a answer. The reason for this is that it may require more informatio to see if our patient has a cold or the flu. We could ask the user some questions to find out more information. Do they have a fever? Do they have aches in their joints? If the answer is yes to one or both of these then the probability of the patient having the flu is much higher. The inference engine is responsible for making one of three decisions -

  1. It has enough information to arrive at an answer
  2. It requires more information
  3. It can not reliably come up with an answer

The inference engine works using something known as fuzzy logic. This is a very interesting field of computer science but well out of scope of a-level.