A SiFA is an agent that performs a single function on a single target from a single point of view. These terms are explained in the following paragraphs.
The function performed by a SiFA determines its type. There are only a limited number of functions needed for design problems. We conjecture that a set of agents with these functions is sufficient for most design problem solving activities. These agents types are:
The target of a SiFA is a single parameter of the design. In the case of wine glass design, the targets may be cup radius, stem length, and the other parameters. It is very important that each agent has a single parameter. A selector can only select values for a single parameter, a critic can criticize only one parameter's value, and similarly for other types of SiFAs.
The point of view of an agent is some aspect of the design that the agent considers while doing its work. Usually, the point of view of the agent is a goal that the agent is trying to optimize. Examples of points of view for agents in wine glass design are cost (as in all design, the cost should be minimized), style (the glass should look nice), stability (the cup should not fall over because of a very large cup and a small base), volume (the cup should hold a reasonable amount of liquid).
Figure 3.1: The components making up a SiFA
In the SiFA paradigm, an agent is characterized by a single function, target, and point of view as in figure 3.1. A naming convention for individual SiFAs is to specify the target first, then the point of view and lastly, the function. So a selector whose target is the cup radius and is trying to maximize stability of the cup is a cup radius stability selector.
There are many things that are common to agents with the same function, target, or point of view. Defining an agent involves inheriting all of this common information and then adding the knowledge that is specific to this particular agent. So a cup radius selector would inherit from a generic selector class, cup radius class and stability class in an object oriented manner. There can be class hierarchy with a class for each function, target and point of view. The class for the functions includes the basic functionality that all agents of that type have to have. The class for a target includes all operations that are meaningful on that target. The class for a point of view may include the basic knowledge required to optimize the design from that point of view.
As each agent has these three aspects, agents can be viewed as points on a three dimensional space where the axes are labeled with these three aspects. Figure 3.2 shows the space of agents for the wine glass design. There is no ordering between the values on the axes.
Figure 3.2: The space of agents
In any particular design problem, there can be at most one agent for any point in the space. More than one agent would mean that there are two identical agents in the system. Agents corresponding to some possible combinations of function, target, and point of view will not exist either because they are not meaningful, or because the expertise to build them does not exist.