Slide 29 of 78
An agent requests services by sending goals to its facilitator. Each goal contains calls to one or more solvables. It is important to understand that calling a solvable does not require that the agent specify (or even know of) a particular agent to handle the call. While it is possible to specify one or more agents to handle a call (and there are situations in which this is desirable), in general it is advantageous to leave this delegation task to the facilitator.
The OAA libraries provide an agent with a single, unified point of entry for requesting services of other agents: the library procedure oaa_Solve. In the style of logic programming, oaa_Solve may be used both to retrieve data and to initiate actions. To put this another way, calling a data solvable looks the same as calling a procedure solvable.