05 Knowledge Engineering in FOL Flashcards
Knowledge engineering
Knowledge engineering is the process of building a knowledge base (KB) for a domain. Carried out by knowledge engineers (KE) doing knowledge acquisition, often by interviewing domain experts. The KE investigates the domain, learns important concepts, and creates a formal representation of domain objects and relations.
Most KBs are special purpose, covering a specific domain in detail. Other KBs are general purpose, valid across many domains.
Knowledge engineering vs. programming
Programming
• Choosing a programming language
• Writing a program of data and control structures
• Choosing a compiler for the language
• Running the program
Knowledge engineering
• Choosing a logic for knowledge representation
• Building a knowledge base of facts and rules
• Implementing the inference procedure
• Inferring new facts
Knowledge engineering: Approach
Declarative approach
Main point is that knowledge engineering is declarative
• The knowledge engineer tells the system what is true
• The system knows how to infer new facts and solutions
Some advantages:
- More efficient/high-level development, less debugging
- The knowledge base can be (re-)used for other tasks
- The inference engine can be (re-)used for other knowledge bases
Knowledge engineering process (FOL)
- *Knowledge engineering process (FOL)**
1. Identify the task
2. Assemble relevant knowledge
3. Decide on a vocabulary of predicates, functions and concepts (ontology)
4. Encode general domain knowledge (axioms)
5. Encode specific problem instance
6. Pose queries to inference engine - get answers
7. Debug knowledge base
See Electronics circuits domain for examples