[Gbbopen-list] agenda-shell activation/obviation/retrigger puzzle

Dan Corkill corkill at gbbopen.org
Thu Mar 15 06:40:21 EDT 2007


>    This isn't working for me yet. Returning a low rating value from 
> the :precondition function causes that function to never be called again 
> so I can't later change the rating to a higher value. What is the 
> preferred way to change the rating of something in the pending-ksa queue?

If you want to have the KSA's rating changed based on an event, then you
can specify (in define-ks) :retrigger-events and a :retrigger-function
that will be executed whenever a retrigger-event occurs.  (There is a
simple example of this in the agenda-shell-test module--see the
retriggered-event-ks defined there.)

On the other hand, if some other activity is managing the state changes
of specific KSAs, then that code could simply change the KSA ratings
directly (without the event indirection).   In most cases, the retrigger
approach is best, as it preserves the KS modularity (via the event
indirection), but direct rating manipulation can be useful in building
an extended/custom control mechanism.

One additional caveat is that individual-instance events are not yet
available in GBBopen (not quite finished).  Individual-instance events
are really useful for retriggering when the rating of a pending KSA
should be modified based on an event on a specific instance (or set of
instances) rather than on any instance of a class.  At present, the
retrigger function would have to discriminate on the specific instance
of the class event (behaviorally equivalent ot having
individual-instance events, but a bit more overhead in retriggering if
there are lots of class-level events relative to the individual instance
of interest).

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



More information about the Gbbopen-list mailing list