Pandemonium Abstraction Patterns
Pandemonium may be used to implement abstraction - to turn input
information into a (usually) smaller amount of higher-value output
On this page:
Simple Abstraction Patterns
An individual demon might implement one or more of the patterns
Output is an accumulation of the input.
Output is the input organized in a different way.
Output is a subset of input.
Output describes objects composed of components in the input.
Output describes specifics are deduced from input that describes
a specific instance of a more general class. (ex. "That dog sees
me. Dogs that see me may attack. Therefore that dog may attack.")
Output describes generalizations observed in the input. (ex. None
of the dogs that have seen me have attacked. Therefore, being
attacked by a dog (around here, doing what I am doing) is not a
Output is a goodness resulting from an evaluation of (some aspect
of) the input.
Output describes objects derived from what is described in the input.
This is a general class - all types of abstraction are special cases
Output is a subset of the input plus information that is an
abstraction of the remainder of the input.
Special Abstraction Patterns
A decision is a special case of conception where the output concept
is a decision to take some action - usually, a choice made from a
set of options. Using pandemonium for decision-making and
problem-solving is described here.
An emotion is a special case of evaluation, in which the resulting
goodness variable persists over time and is affected over time by
factors particular to the type of emotion. (ex. If something
potentially bad is observed fear goes up, but if nothing bad
develops for a while, the fear slowly goes down.)
Complex Abstraction Patterns
Input data may be complex - it may be from multiple sources or the
data from a single source may have multiple parallel components,
such as an array of pixels. Pits or layers of demons may be used
to abstract more useful information from complex input.
Raw input data (ex. from an eye or camera) is accumulated and organized
into a useful form, the results being sensations. If only one demon is
used, the process might be called buffering. If the output is to be an
array of pixels, there could be one demon for each pixel or one demon
that returns an array of pixels.
Sensations (ex. a set of dark pixels in a row) are recognized as being
components of a composite object (ex. a line). This process might be
referred to as 'pattern-matching'. An individual demon might watch for
one or more patterns. An individual demon might watch a subset of the
input (ex. a particular range of pixels).
A combination of perceptions (ex. 3 lines) may be recognized, on the basis
of having certain characteristics and relationships (ex. each line
sharing an endpoint with only one other), as being an instance of a more
general thing - a concept (ex. a triangle). A concept (ex. that animal
over there) may also be recognized as an instance of a general concept
(ex. an animal that might eat me). Concepts may be created from
perceptions or from other concepts.