Knowledge in AI Systems
The role of "knowledge" in AI systems is basically that of "data" in conventional computer systems. Similar to the slogan "Algorithms + Data Structures = Programs", it can be said that "Cognitive Functions + Knowledge Base = AI". In AI, "knowledge" usually means data that is meaningful, modular, and versatile.
1. Representation
A good format for knowledge representation should be expressive, natural, efficient, acquirable, etc. There are three major traditions:
- Reasoning system: Knowledge is represented by sentences (propositions) in a language. Various structures have been introduced to improve efficiency, such as Frame, Script, Description logic, etc.
- Dynamical system: Knowledge about an object is represented as a point (vector) in a multi-dimensional space, as in Conceptual space, Vector space model, Support vector machine, Sparse distributed memory (SDM), etc.
- Computational system: Knowledge is represented in data structures, such as array, matrix, tree, and graph. Further extensions include Semantic network, Semantic web, Ontology, Knowledge graph, etc.
It can be argued that the three types of representation can emulate one another, so have the same expressive power in principle. Even so, they are still very different in naturalness, complexity, efficiency, etc., when a specific application is under consideration. Example: 8-Puzzel can be represented in matrix or propositions.
Competing paradigms:
2. Organization
A knowledge base organizes a large amount of knowledge together, and provides management functions. Representative knowledge bases:
3. Acquisition
Various approaches have been used in getting knowledge into AI systems, include manual coding, natural language understanding, and abstracting from sensory observations ("experience"). In particular, various techniques have been developed to directly harvest knowledge from the Internet and other existing sources:
4. Application
"Knowledge is power": in the 1980s, the first wave of AI applications appeared, which used knowledge-rich "strong methods" to solve special problems in specific domains, rather than depending on domain-independent "weak methods" (such as heuristic search).
These systems are called
"Expert systems" or "Knowledge-Based Systems", and the major techniques are
Example: MYCIN
These systems can be developed using "expert system shells", such as CLIPS. To develop such systems, the crucial step is to represent and organize expert knowledge, which is called "Knowledge engineering".
Reading
- Poole and Mackworth: Chapter 16
- Russell and Norvig: Chapter 10
- Luger: Sections 6.2, 7.1, 7.2, 8.1, 8.2, 8.3