When a message is sent to an object using the send function, CLIPS examines the class precedence list of the instance's class to determine a complete set of message-handlers which are applicable to the message. CLIPS uses the roles (around, before, primary or after) and specificity of these message-handlers to establish an ordering and then executes them. A handler which is attached to a subclass of another message-handler's class is said to be more specific. This entire process is referred to as the message dispatch. Following is a flow diagram summary:
The solid arrows indicate
automatic control transfer
by the message dispatch
system.
The dashed arrows indicate
control transfer that can
only be accomplished by
the use or lack of the use
of
call-next-handler (or
override-next-handler).