Knowledge engineering is the task of gathering and inputting information for use in knowledge-based computer systems. These systems can solve problems or answer questions without the help of a human expert. Knowledge engineers use a variety of knowledge acquisition techniques tailored to collect specific types of information.
The field of knowledge engineering developed when computer memories became large enough to accommodate huge amounts of information, around 1970. This caused a shift in Artificial Intelligence (AI) technology. In addition to creating AI software that could solve problems and use logic, programmers were able to give the AI a huge database of information to draw from.
Knowledge engineering is a labor-intensive multi-step process. First the knowledge engineer is presented with a problem. For example, the problem could be that of allowing people to find out what their medical symptoms mean without going to see a doctor. The engineer then creates a system that can do this: for instance, a computer program that takes symptoms as input and outputs a list of conditions or diseases that could manifest those symptoms.
Next the engineer needs to gather the necessary information. The engineer might talk to doctors or read medical texts to find information about diseases and symptoms. Once all the information is collected and organized, coders create the system. The engineer inputs the data. The final step in knowledge engineering is testing the system to ensure that it outputs accurate responses.
The most time consuming and, arguably, most important step in the knowledge engineering process is acquiring knowledge. Most of the knowledge needed to create a knowledge-based system resides in the brains of experts. These experts are usually busy people. The challenge the knowledge engineer faces is how to get this information as quickly and efficiently as possible.
Another challenge is how to collect the information that the expert knows implicitly. For example, a doctor may not be able to describe the sound of an asthmatic lung. She just knows it when she hears it.
Knowledge engineers have developed a host of knowledge acquisition techniques to help them gather information. These include protocol-generation techniques, limited information techniques, and matrix-based techniques. Techniques are chosen based on the type of knowledge needed.
For instance, if an engineer needed information about the steps a doctor goes through to make a diagnosis, he or she might simply interview the doctor. If, however, the information the engineer was looking for was the kind of information that the doctor knows but has trouble putting in to words, he or she might use a sorting technique. A sorting technique requires the expert to sort cards with words on them into piles and then name the categories he or she used. This allows the engineer to understand how the expert thinks about the information.