A disclosed notification and response system enables applications to
communicate with recipients using a number of different media. The
notification and response system (i) sends requests to one or more
recipients, using the medium specified by each individual recipient; (ii)
collects and processes responses; and (iii) forwards the responses to
their final destination by means of the medium specified by the final
destination. Applications frame requests in at least one supported human
language and media format, and the request is delivered to the
appropriate recipient(s), according to their preferences. Communication
flow expressions specify the recipients for a given request, and how,
when and where each recipient shall receive the request. Requests are
dynamically updated, and the parameters of a communication flow
expression are not evaluated, until the request is delivered.
Communication flow rules specify recipient's communication preferences
and tailor communication flows to characteristics of the sender, the
topic or scheduling constraints. Communication flow expressions are
evaluated using a three-valued logic: notification failure (maybe),
response failure (false) and response success (true). Primitives specify
simultaneous or sequential contact, and when execution of the
sub-expression should terminate by defining a logical combination of
success test results.