The method of knowledge engineering described here can be used to create knowledge base content for rule-based expert systems.
This section covers the following:
- What do expert systems do?
- How do expert systems reason?
- Chaining expert system logic
- Using expert systems to solve complex problems
- Expert systems and the digital divide
Expert systems are technology-based tools that help to solve problems.
Knowledge engineering is the process of capturing intelligence from human experts so that it can be used by the expert system for its reasoning. Human itelligence is put into an artificial machine to make the system an expert in a specific domain.
Of course, this intelligent machine isn’t the same as the human expert. The machine can’t actually think for itself. The systems I work on only know to follow a specific set of rules to put the human intelligence into action. But they can still reason in their own way.
The end result is a system that can emulate human reasoning and makes expert knowledge and guidance available to non-experts. Having a machine provide this reasoning helps us to address scarcity problems like a lack of experts or a lack of resources to pay for experts.
The expert who puts her knowledge into the system can then share her expertise with many non-experts all at once, even when that expert is actually working on another interesting problem – especially one that’s unsuitable for expert systems. Or, the expert can just spend time with her family on a beach.
Rule Based Expert Systems
Expert systems can be described in three structural components.
My description is intentionally simplified. It’s also meant to be conceptual. Actual systems may have a more complex makeup, or a different architecture altogether.
The Knowledge Base
The knowledge base makes the expert system intelligent. It’s where the domain-specific expert knowledge is stored.
The knowledge is structured in production rules. In general terms, a production is a condition, followed by an action. The action defines a step in the expert system’s reasoning process.
The Inference Engine
The inference engine manipulates and interacts with the production rules to enable the expert system to reason.
The production rules are often “if…then…” statements. If one of these conditions are satisfied, then the production rule fires or executes an action. When the production rules are chained together, the firing of one rule often causes the expert system execute or put into action a subsequent rule.
Humans interact with the inference engine through the interface. This part of the system must be able to accept human inputs and product outputs.
The interface is the point where the expert system’s expert knowledge is delivered to non-expert users.
Expert systems can reason. Well, sort of, anyway. They don’t have brains and can’t think for themselves. So humans have to program them to emulate or reproduce the outputs of human reasoning in a different way.
The expert systems I work on reason through the application of rules. The rules make the system reason on the basis of conditional logic. Take a look at this example:
If X, then Y
The X represents a condition. The Y represents an action the system will take to reason.
If (condition), then (action)
Now imagine some actual facts or circumstances instead of the variable X. Imagine some actions or outputs instead of the variable Y.
If the creature is a mammal capable of flight, then it’s a bat.
This rule about the bat is very simple. But it let the system reason, and make a conclusion, about the flying mammal.
Now imagine putting the rules together to form a chain.
If A, then B
If B, then C
If C, then D
Or (using expertise from this Wikipedia entry):
If the creature is a mammal capable of flight, then it is a bat.
If the bat is a type of bat that is the largest in the world, then its common name is a “flying fox” (of the Pteropus genus).
If it is a flying fox, then it feeds only on nectar, blossoms, pollen, and fruit.
By chaining rules together, an expert system can reason its way through some interesting problems and make some conclusions for non-expert users.
The expert system has to input the conditions into the system. Imagine our user inputting the conditions to confirm that the specimen is a mammal capable of flight and that it’s a type of bat that’s the largest in the world – and learning that it is a flying fox that only feeds on nectar, blossoms, pollen and fruit.
The user provided the input, causing the expert system to reason and produce a specific output or conclusion
Chaining expert system logic
Each rule in an expert system knowledge base follows a conditional logic approach to reasoning. If a condition is satisfied, then the system makes a deduction. The rules in an expert system’s knowledge base can be connected or chained together. This chaining allows the system to make several deductions in sequence.
To make this forward-chaining approach work, the expert system needs to enter multiple facts or conditions into the system. The rules are applied to these conditions to the chain of rules.
Say the rules in a knowledge base look like this:Then say the following facts are added:
- we have an unknown subject
- the unknown subject is human made
- the human made subject is a vehicle
- the vehicle flies
- the flying vehicle has fixed wings
Now apply these facts to the rules to allow the expert system to apply forward chaining logic.
This forward chaining, based on the multiple facts entered into the system, concluded that the subject is a fixed wing aircraft. The expert system used a series of conditional logic statements to make that deduction:
- if the subject is human made, and
- if the subject is a vehicle, and
- if the vehicle flies, and
- if the flying vehicle has fixed wings,
then the subject is a fixed wing aircraft.
Chaining can also move backward. Using the earlier example, we can use conditional logic to deduce:
If the subject is a fixed wing aircraft, then:
- it has fixed wings, and
- it flies, and
- it is a vehicle, and
- it is human made
Chained together, expert systems can be used to solve complex problems.
Can expert systems solve complex problems? Yes. But they’re not born to do it. Humans need to create the knowledge base that will enable them to reason about complex problems. The process is called knowledge engineering.
Human experts hold knowledge in their domain of expertise. Knowledge engineers are the ones who acquire this knowledge and put it into an expert system’s knowledge base.
The more complex the domain, the more complex the knowledge will be. But the knowledge engineer can’t only focus on the complex knowledge because expert systems have no common sense.
Let’s work through an example. Imagine you find someone on a sidewalk. Your problem is that you don’t know what to do.
Using conditional if…then logic, an expert system might help you solve the problem.
If the subject doesn’t respond to pinching, gentle shaking or shouting, then the subject is not conscious.
If the subject has no visible signs of severe bleeding, then perform a head to toe examination of the subject for other signs of trauma.
If not visible trauma is found, then begin a neurological assessment of the subject.
If the subject’s pupils don’t constrict immediately when a bright light is shone into its eyes, the subject may have suffered a neurological trauma and should be examined immediately by a physician.
If we have good expert knowledge available, we can keep going.
If the physician repeats the tests above on the subject and the subject doesn’t respond, then the physician should perform oculovestibular testing on the subject.
If the physician is performing oculovestibular testing on the subject, the physician will irrigate the subject’s ear canal with an iced saline solution.
If the subject does not exhibit nystagmus (involuntary rapid eye movements) in response to the oculovestibular testing, then the subject is likely to have a severe brain stem injury.
A knowledge engineer creating this knowledge base would have to cover off multiple common sense issues to help the expert system solve this problem. For example, we’d need to know very early in the assessment if the subject had a pulse or appeared to be breathing. There’s no point in performing neurological assessments on someone who’s dead.
An expert system with a knowledge base full of very advanced medical knowledge is still going to have to cover basic common sense reasoning.
Expert systems can solve complex problems. Humans have to build them to handle the easy ones too.
Expert systems and the digital divide
Expert systems rely on computers to deliver non-expert reasoning, support and guidance to non-expert users. To benefit from this expert knowledge, users must have access to the technology, either directly on their own, or with the help of others.
Expert systems are machines
Expert systems deliver their output through computers. Paper-based “choose your own adventure” versions of expert systems might be possible, but completely impractical to build and maintain. Same with phone trees. We need to rely on computers.
As technology becomes more sophisticated, it can also become simpler to use. Anthropomorphic user interfaces that simulate human interactions will make it easier for less-technology-savvy people to access technology.
But for now, knowledge engineers should expect humans interacting with expert systems to involve human interaction with computers. As a platform, the internet makes the delivery of expert knowledge very accessible, fast and cheap. It’s perfect for expert systems.
The digital divide
The so-called digital divide can refer to people who are unwilling or unable to interact with computers. The digital divide is real, and should be taken seriously. But it shouldn’t stop knowledge engineers from building expert systems to help non-expert users access expert knowledge.
The digital divide is actually relatively narrow. For example, in BC, Canada, 90% or more of the population appears to be using technology. The digital divide is likely to be much narrower than the expert divide.
The resource shortages expert systems aim to address, such as a shortage of available experts or a shortage of money to pay for experts, will often affect much more than 10% of the population. From a utilitarian perspective, having the potential to serve 90% of people with a technology-based expert system is a good starting point.
Proxy expert system users
According to the Oxford Internet Institute, most of the people who don’t user the internet have access via another person – or a proxy user. A proxy user may be a technologically-enabled trusted friend or family member who can serve as the link to the system.
Instead of the user inputting his or her own details or circumstances into the expert system and receiving its output, the proxy user will input the user’s details and relay the system’s output as an intermediary.
Interactions with an expert system through a proxy user may not be as efficient or successful as direct access. But it is another avenue for delivering expert reasoning and guidance to non-experts through a technology-based platform.
Back to Table of Contents