[Pipet Devel] Universal Description, Discovery, and Integration

Alexandre Fayolle Alexandre.Fayolle at logilab.fr
Tue Nov 7 09:27:21 EST 2000

On Tue, 7 Nov 2000, jarl van katwijk wrote:

> The 2nd is about errors. I think Piper needs some basic form of exception
> handling,
> this can be just a simple retry of node execution. Maybe the PL already has
> something
> like this build in. (JeanMarc?). The 3th is event handling. Many applications
> only make
> sense to execute when there an special situation.
> Anybody has thoughts about these three points I feel missing?

For the last two points, here's what we have in Narval:

 * error handling: 
an action can output an error element, even if it is not in its prototype.
In that case, Narval checks for a special transition in the step's
outgoing transitions, with the onError attribute set to 'yes'. If the
conditions of this transition can be matched immediately, it is fired and
the execution of the plan resumes from that point. Otherwise (or if no
onError transitions are found), the plan fails. This error handling
behaviour can only occur if the action returned an <error> element, and
not if the action raised an exception or if its outputs did not match the
prototype: these cases cause the plan to fail.

 * events:
Well, the whole point of having transitions is handling events. Many
recipes in Narval will begin with a Basic.NOP action (which does nothing),
followed by a transition that will wait for an element to be present in
memory, or for a time condition to be matched. This makes it easy to have
specialized recipes work in team. For instance, if you consider the Gazo
recipe that's described in the Linux Gazette, you'll notice that it
doesn't actually read the mail: another recipe does that, and produces
<email> elements, which in turn are captured by Gazo. We could have many
other recipes working simultaneously on these <email> elements. This
feature enables us to use Narval as if we had a rule-based language.


Alexandre Fayolle
Narval is the first software agent available as free software (GPL).
LOGILAB, Paris (France).

More information about the Pipet-Devel mailing list