The problem of knowledge acquisition is the critical bottleneck problem in artificial intelligence.
~ Edward A. Feigenbaum, Knowledge Engineering: The Applied Side of Artificial Intelligence, circa 1980
In my posts about knowledge engineering, I’m referring to the process of taking knowledge from human experts and putting it into computer-based systems that deliver that knowledge directly to non-expert users. I work on technologies called expert systems.
Knowledge is collected from human experts in specific domains. It then has to be modeled or structured in a precise way to do two important things.
First, the structure has to emulate the reasoning done by the human expert. It doesn’t reason the same way a human does; it only has to imitate it. Because computers don’t have common sense, getting this structure right can be tricky.
Second, the structured knowledge has to work within the knowledge base or the inference engine within the system. The system makes the calculations and retrieves the information from the knowledge base.
After the knowledge is structured properly, it is loaded into the expert system’s knowledge base. Now it can start to work for non-expert users. This non-expert benefits from the reasoning provided by experts in that particular domain.
Most of my work involves the creation of a rule-based structure for the knowledge base. These rules draw on conditional if…then… logic. The “if” part is determined by inputs from the person using the system. The “then” part is what the system does, or outputs, in response to that input.
Knowledge engineering can be challenging. It’s a mix of art and logic. It requires a combination of creativity and horsepower through mountains of detail. But if you succeed in making expert knowledge and reasoning available to non-expert users through a computer-based system, it’s usually more than worth the effort.
I’m creating a “start to finish” description of the knowledge engineering methodology I use here.