Knowledge is stored in implicit form, i.e. it is hidden inside our minds. This often creates problems when we want to share our knowledge with other people. We need to find a way to present them our knowledge, which means that we need to make the knowledge explicit. Explicit form of knowledge enables us to share the information less ambiguously. This became extremely important when computers started to be used for knowledge transfer and sharing.
Knowledge representation is an interdisciplinary field based on mathematics, philosophy and cognitive science [2].
Knowledge representation is today mainly considered as a field in artificial intelligence [3]. However, other disciplines, such as education psychology, also do research on knowledge representation.
In their article “what is Knowledge Representation?” [1], authors R. Davis, H. Shrobe, and P. Szolovits argue that the concept of knowledge representation can best be understood in terms of five distinct roles it plays:
A knowledge representation is a surrogate: symbols are used to represent external things that cannot be stored in a computer, i.e. physical objects, events, and relationships. Symbols are surrogates for the external things. Symbols and links between them form a model of the external system that can be manipulated to simulate it or reason about it.
A knowledge representation is a set of ontological commitments: Ontology is the study of existence. Thus, ontology determines the categories of things that exist or may exist in an application domain. Those categories set the ontological commitments of the application designer or knowledge engineer.
A knowledge representation is a fragmentary theory of intelligent reasoning: to support reasoning about modelled things in a domain, a knowledge representation must describe their behaviour and interactions. The description constitutes a theory of the application domain. It can be stated, for instance, as explicit axioms or compiled into computable programs.
A knowledge representation is a medium for efficient computation: besides representing knowledge, an Artificial Intelligence System must encode knowledge in a form that can be processed efficiently by the available computing equipment. Therefore, developments in computer hardware and programming theory have a great influence on knowledge representation.
A knowledge representation is a medium of human expression: a good knowledge representation language should facilitate communication between the knowledge engineers who manage knowledge tools and the domain experts who understand the application domain. Domain experts should be able to read and verify the domain definitions and rules written by knowledge engineers.