# data[].attributes.body
An expert system, also known as a knowledge-based system is a computer program made up of knowledge and rules that can be used to diagnose a problem. Expert systems are used for decision making and recommending particular courses of action. The system will try to replicate the role of the human expert.

It is called an expert system because the knowledge and rules are all defined by experts in a particular field. A popular expert system is that used by NHS Direct on their website. Experts will have collated their knowledge about illnesses and the symptoms of those illnesses and identified the rules that state which symptoms suggest which illnesses.

A true expert system will:

be able to make decisions based on uncertain data

be limited to a particular subject area of expertise

give advice based on the answers given by the user

explain the reasoning behind its decision.

There are 3 main components in an expert system: a knowledge base; an inference engine; and the user interface.

# data[].attributes.body
The knowledge base consists of the factual knowledge and the rules gathered by knowledge engineers using methods such as interviewing experts.

Examples of knowledge are:

the VAT rate is 15%

a mobile phone needs a battery or power lead to work

a human has two hands.

Examples of rules are:

if the product is food, then VAT should not be applied

if the battery is not inserted, the phone will not turn on

if the phone is plugged in, the phone should turn on

if a patient has a cut on their hand and the bleeding can be controlled by putting a finger on the cut, then antiseptic cream and a plaster should be used.

# data[].attributes.body
The interference engine is the software that makes the decisions based on the answers given by the user and the knowledge and rules stored in the knowledge base. It will also decide which questions the user should be asked next based on the previous answers given. If the answers given by the user are uncertatin, the inderence engine will ask other questions to try to eliminate possible diagnoses. It will then identify a diagnosis and give a reason for the diagnosis. At a basic level, an inference engine uses a decision tree that might look like this:

# data[].attributes.body
The user interface is the part of the expert system that asks the user the questions and then gives an answer with a diagnosis. Once the user interface has asked all the questions and used the inference engine to determine the diagnosis, a result is given to the user.

# data[].attributes.body
Here are some examples of how expert systems might be used:

Fault diagnosis for a car engine

Broadband Internet service provider fault diagnosis

Social services can use expert systems to determine what benefits are die to a claimant

Her Majesty's Revenue and Customs can responds to the tax payer by explaining how the tax was worked out.

# data[].attributes.body
Advice is available all the time

Knowledge of an individual can be stored before they go

Makes decisions purely based on knowledge, no heart or head situation

Isn't over worked, tired or hungover

Cost effective - doesn't need to be paid

Interface designed using the HCI in mind.

# data[].attributes.body
Only covers a narrow range of knowledge

A lot of effort and cost has to go into creating the system

Menu based which doesn't always deal well with some specific problems

Doesn't learn from mistakes like a human would

Won't come up with creative answers.