Knowledge engineering is the process of building a knowledge base by extracting knowledge from human experts. It involves knowledge acquisition, choosing a knowledge representation formalism, and selecting reasoning and problem-solving strategies. The knowledge engineer determines important concepts and relations in a domain and creates a formal representation. The main tasks of knowledge engineering are knowledge acquisition through interviewing experts and knowledge representation using techniques like logic for knowledge representation and reasoning. An effective knowledge base should be clear, correct, expressive, concise, context-insensitive, and effective.