In the SINE work, there were two different types of agents capable of producing values. These were selectors and advisors. While selectors chose a value from a list of possible alternatives, advisors applied some arbitrary function to its inputs to produce a value.
The distinction between selectors and advisors was not based on what they do but how they do it. Since the main criteria in dividing agents into types is their functionality in the system, we decided to merge selectors and advisors into a single agent type and call it a selector. The new selectors are capable of choosing values from a list of alternatives, can use arbitrary functions to produce values, or utilize a combination of the two processes.
The combination is useful if the selector first chooses a value from a list and then applies a function to it, or if it applies a function to inputs but uses values from a list to instantiate some variables in the function. An example for the latter case is when a cup radius selector chooses a coefficient from a list to multiply with the value of the base radius in order to produce the value of the cup radius in the wine glass design domain.