Philosophers have been thinking about knowledge for thousands of years. Part of their endeavours has been the identification of various types of knowledge and classification systems. These typologies have been adopted by knowledge engineers when analysing texts and constructing knowledge models.
Declarative and Procedural Knowledge
One well-known distinction is between declarative knowledge (knowledge of facts) and procedural knowledge (knowledge of how to do things), or what has been called "knowing that" and "knowing how". Within knowledge engineering, these two types are often referred to as object knowledge and process or task knowledge.
Tacit and Explicit Knowledge
Another well-known classification of knowledge is that of tacit knowledge (cannot be articulated easily) and explicit knowledge (can be articulated easily). This is particularly important for knowledge engineers, as special techniques have to be used with an expert to try to elicit tacit knowledge, which is the hardest and often the most valuable knowledge to acquire.
Generic and Specific Knowledge
A further way of classifying knowledge is to what extent it is generic (applies across many situations) or specific (applies to one or a few situations). Developing ways in which specific knowledge can be made more generic, and generic knowledge can be made more specific, has been a major effort in knowledge engineering.
The field of logic has also inspired important knowledge types, notably concepts, attributes, values, rules and relationships.
When analysing a piece of text, such as a transcript, so that knowledge models can be created, knowledge engineers try to identify low-level knowledge objects. Brief definitions of some of the most important of these are as follows.
Concepts are the things that constitute a domain, e.g. physical objects, ideas, people and organisations. Each concept is described by its relationships to other concepts in the domain (e.g. in a hierarchy) and by its attributes and values. From a grammatical perspective, concepts are usually equivalent to nouns.
An instance is an instantiated class. For example, "my car" is an instance of the concept "car".
Instances only have the attributes of their class (including inherited attributes). They may override any or all of the default values. For example, the "my car" attribute "maximum speed" may be 90mph, overriding the default of 100mph for all cars.
Processes (Tasks, Activities)
Processes (aka tasks, activities) are sets of actions performed to satisfy a goal or set of objectives. Some examples are:
Processes are described using other knowledge objects, such as inputs, outputs, resources, roles and decision points.
Attributes and Values
Attributes and values describe the properties of other knowledge objects.
Attributes are the generic properties, qualities or features belonging to a class of concepts, e.g. weight, cost, age and ability.
Values are the specific qualities of a concept such as its actual weight or age. Values are associated with a particular attribute and can be numerical (e.g. 120Kg, 6 years old) or categorical (e.g. heavy, young). From a grammatical perspective, values are equivalent to adjectives.
Rules are statements of the form "IF... THEN...". Some examples are:
Relationships represent the way knowledge objects (such as concepts and tasks) are related to one another. Important examples include is a to show classification, part of to show composition, and those used in various knowledge models such as a process map or state transition network. Relationships are often represented as arrows on diagrams. From a grammatical perspective, relationships are usually equivalent to passive verbs.