Knowledge acquisition for systems based on knowledge can be called knowledge engineering, according to Feigenbaum (1980) who used the term to describe the reduction of a wide context of knowledge for a set of facts and rules. The term Knowledge Engineer started to be used to denote the responsible person by development of such systems.
The basic function of Knowledge Engineering is to play the role of mediator between the expert and the Knowledge Base, to extract the knowledge from the expert, to codify the same in contribution with the expert to reach an acceptable performance.