Knowledge engineering (KE) was defined in 1983 by
Edward Feigenbaum, and
Pamela McCorduck as follows:
It is used in many
computer science domains such as
artificial intelligence, including
databases,
data mining,
expert systems,
decision support systems and
geographic information systems. Knowledge engineering is also related to mathematical
logic, as well as strongly involved in
cognitive science and
socio-cognitive engineering where the knowledge is produced by socio-cognitive aggregates (mainly humans) and is structured according to our
understanding of how human reasoning and
logic works.
Various activities of KE specific for the development of a
knowledge-based system:
Assessment of the problem
Development of a knowledge-based system shell/structure
Acquisition and structuring of the related
information,
knowledge and specific
preferences (IPK model)
Implementation of the structured knowledge into knowledge bases
Testing and validation of the inserted knowledge
Integration and maintenance of the system
Revision and evaluation of the system.
Being still more art than engineering, KE is not as neat as the above list in practice. The phases overlap, the process might be iterative, and many challenges could appear.