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).