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 -
- User informs mechanic of problems with their car
- Mechanic infers what the problem may be
- It is then checked to see if this answer is acceptable.
Doctors work in a very similar way -
- Patient informs doctor of problem
- Doctor infers what may be wrong
- Tests are run to see if this is the case or not.
A expert system works in a similar way and is broken down into different parts -
- Knowledge base - Database containing expert knowledge
- Inference engine- Attempts to work out the answer to the users query
- Rule base - Links knowledge and stimulus together
- User interface - allows the user to communicate with the system.
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 -
- It has enough information to arrive at an answer
- It requires more information
- 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.