The proposed heuristic uses techniques from the field of knowledge
engineering.
p.2-3"'Knowledge engineering is the process of developing knowledge
based systems in any field, whether it be in the public or private sector, in commerce or in industry' (Debenhan, 1988). But
what, precisely, is knowledge?... Knowledge is 'The explicit functional associations between items of information and/or data'
(Debenham, 1988)... [data is] Recorded symbols (McNurlin and Sprague, 1998)... By information we mean data that have been
shaped into a form that is meaningful and useful to human beings (Laudon and Laudon, 1988)."
Data becomes knowledge after a refinement process.
p.6"it should be clear that data, information and knowledge are not static things in themselves
but stages in the process of using data and transforming it into knowledge. On this basis they can be considered points along
a continuum, moving from less to more usefulness to a human being, in much the same way as we all move along a continuum from
young to old, but at no point can we be defined as either."
An expert system must acquire and process knowledge in order to create useful solutions to problems..
p.8"Knowledge acquisition involves obtaining knowledge from various sources including human
experts, books, videos and existing computer sources of data such as databases and the Internet.
In knowledge validation, knowledge is checked using test cases for adequate quality.
Knowledge representation involves producing a map of the knowledge and then encoding this
knowledge into the knowledge base.
Inferencing means forming links (or inferences) in the knowledge in the computer software
so that the KBS [knowledge based systems] can make a decision or provide advice to the user.
Explanation and justification involves additional computer program design, primarily to
help the computer answer questions posed by the user and also to show how a conclusion was reached using knowledge in the
knowledge base."
The knowledge engineer must extract knowledge from the expert, then store it in a database so it
can be accessed as part of the problem solving process.
p.10-11"To begin with, a knowledge engineer must extract knowledge from people (human experts) that
can be placed into knowledge based systems (KBSs). This knowledge must then be represented in some format that is understandable
both to the knowledge engineer, the human expert and the programmer of the KBS. A computer program, which processes that knowledge
or makes inferences, must be developed... To meet the objective of designing a KBS, the knowledge engineer will have to:
- acquire the knowledge from the expert to be used in the system
- use an appropriate method for representing knowledge in a symbolic, processable form"
There are three types of knowledge that a knowledge engineer will work with:
p.11"The knowledge engineer will normally be dealing with three types of knowledge:
- Declarative knowledge tells us about things...
- Procedural knowledge provides alternative actions based on the use of facts to obtain knowledge...
- Meta-knowledge is knowledge about knowledge. It helps us understand how experts use knowledge
to make decisions.
A knowledge engineer must be able to distinguish between these three types of knowledge and understand
how to codify different knowledge types into some form of KBS."
The project champion is a representative of the user who works with the project team. He
or she strongly believes in the need for the proposed knowledge based system and is a driving force in the creation of it.
p.13"one of the most important people involved in a KBS project from the users perspective is the
Project Champion. This is a person who works with the project team, most likely as a user representative. Such a person must:
- be able to convince users that the KBS is needed
- have an appropriate level of authority
- 'get on' with both management and users
- have a personal investment in the project
- believe in the need for the KBS
- be capable of presenting the business benefits to management
- be highly motivated towards the success of the project."
Knowledge engineering uses well-known principles from the field of artificial intelligence in order
to create systems that are useful to people for solving problems.
p.21"Knowledge engineering... is the practical application of those aspects of artificial intelligence
that are well understood to real commercial business problems... Knowledge-based systems are computer programs that are designed
to emulate the work of experts in specific areas of knowledge. It is these systems that provide the main focus of this book."
An expert system functions as a replacement 'expert' by automating the delivery of solutions via a
knowledge-based software product.
p.27"Expert systems are computer programs designed to emulate the work of experts in specific areas
of knowledge."
Heuristics play a large role in expert systems, but cannot do much good unless they 1) mimic the process
of the expert or 2) produce results that are on par with those produced by an expert.
p.80"Heuristic searches rely upon knowledge to guide the choices and are only as good as the knowledge
that guides the search... However, using heuristic searches large parts of the search space are pruned and not explored thus
a solution could be missed if the heuristics are poor."
Experts often use rules of thumb obtained from their experience.
p.109"In many situations, experts do not have any formal basis for problem solving or communicating
the results of that problem solving. So they tend to use 'rules of thumb' (heuristics) developed on the basis of their
experience to help them make decisions in their particular field."
Expert systems operate on deep or shallow knowledge. The proposed heuristic would use deep knowledge
as defined below.
p.110"Expert systems, can have two types of knowledge: deep and shallow.
Shallow knowledge indicates that the system has been built with a working knowledge of the problem
domain only and a system built on the basis of it will only be useful in some very specific situations. If the problem facing
the ES [expert system] is not covered by any of these basic relationships, then the system will not be able to provide a solution
to that problem.
Deep knowledge is knowledge of the fundamental laws on which a system is based. This knowledge is
not dependent on a specific situation and can thus be used to solve a range of problems. As with a human expert, the system
will be able to 'understand' the causal links within the knowledge base. Including this type of knowledge within an ES is
difficult, if not impossible, in many situations. Many systems are simply too complex to show all the causal relationships,
and experts may sometimes make intuitive leaps to reach a conclusion, which the ES cannot mimic."
Ideally, a well-designed knowledge based system is validated as it is developed,
not after it is developed.
p.130"It must be stressed at the outset that you do not build a KBS then evaluate and validate it;
these activities must be carried out as ongoing parts of the development process itself."
Validation and verification are defined here:
p.131"The evaluation of a KBS involves two more terms, namely validation
and verification.
- Validation measures the performance of the KBS. In effect, the output from the system is compared
to the output that would be provided by an expert. A check is then made to ensure that the system is performing to an acceptable
level of accuracy.
- Verification is checking that the KBS has been built correctly, i.e., that the rules are logical
and consistent with the knowledge obtained via the knowledge acquisition process."
We should aim to represent knowledge in a form that is the most natural we can come up with.
p.155"When selecting a suitable knowledge representation scheme the most natural form of representation
should be aimed for. This may involve using a combination of different techniques to provide advantages of each without
the disadvantages of any. It is possible, for example, to use within one KBS, a mixture of the rules and frames, if both of
these representation schemes are supported by the development tool."
Uncertainty exists in the decision making process, but that does not have to stop our knowledge
based system from generating an output:
p.242"There are two main causes of uncertainty that occur during the
design of expert systems, uncertain information and uncertain reasoning... An expert system working with uncertain information
and using uncertain reasoning can still reach some very important conclusions."
Probability can help our knowledge based system make decisions in the face of uncertainty.
p.249"One method of dealing with uncertainty is to state the outcomes from a particular system as
a set of hypotheses... Each hypothesis is given a probability of occurring, providing a guide to how often that outcome can
be expected."
Statistical data can help our knowledge based system make decisions, but the quality of
the decisions can suffer if this statistical data is bad or if our software draws unjustified comparisons of present
conditions with past results.
p.256-257"Probabilistic reasoning, when compared with confidence factors (only expressions of opinion),
has higher validity because the results are based on mathematically proven reasoning and statistical data.
The Limitations of Probabilistic Reasoning [:] Needs statistical data to be collected from previous
results, and will only work where this data is available. Furthermore, this data may not be accurate invalidating the results
of the hypothesis being tested."