small programs that know how to do specific things, how to proceed.
e.g a parser in a natural language understander has the knowledge
that a noun phrase may contain articles, adjectives and nouns. It is
represented by calls to routines that know how to process articles, adjectives
and nouns.
Advantages:
Heuristic or domain specific knowledge can be represented.
Extended logical inferences, such as default reasoning facilitated.
Side effects of actions may be modelled. Some rules may become
false in time. Keeping track of this in large systems may be tricky.
Disadvantages:
Completeness -- not all cases may be represented.
Consistency -- not all deductions may be correct.
e.g If we know that Fred is a bird we might deduce that Fred
can fly. Later we might discover that Fred is an emu.
Modularity is sacrificed. Changes in knowledge base might have
far-reaching effects.