fawkes icon indicating copy to clipboard operation
fawkes copied to clipboard

Improve the tracking of sensed effects of nowait actions

Open morxa opened this issue 5 years ago • 3 comments

Since commit f486472151e334d8813b812c448b86b3dfb7ef98, we also add a pending-sensed-fact for actions that do not wait for the effect to occur. This can be used to react properly if the effect does not ever occur as expected. One possible scenario:

  1. Prepare a machine, do not wait until it is READY-AT-OUTPUT.
  2. Drive to the output side
  3. Machine is not yet ready, monitoring needs to decide what to do (e,g., wait or fail). For this, we need to know whether we expect the machine state to change.

However, as it currently stands, if the effect does not occur, there are at least two problems:

  • the pending effect will never be cleaned up
  • the action is marked as successful, but at least one of its effects never occurred

This needs improvement, as pointed out in #12.

morxa avatar Oct 31 '18 17:10 morxa

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Dec 12 '18 16:12 stale[bot]

@morxa, can you please make some suggestions how to proceed here and improve the situation.

timn avatar Jan 13 '19 12:01 timn

One idea is to introduce a new concept, let's call it a promise, with the following properties:

  • Any effect can be a promise
  • A promised effect is not immediately applied
  • Instead, it only promises that the effect will occur eventually in the future
  • A promise is tied to a goal-plan-action triplet that created it
  • A promise has a timestamp, either indicating when it was created, or (probably better) a deadline when it is expected to be fulfilled (possibly also both)
  • A promise can be accomplished by an external process, and maybe also by another goal
  • Promises could be shared with other agents, similar to the idea of intention sharing that we discussed a while ago. Maybe we can combine those concepts.

With promises, we would only mark a sensed effect as pending if we need to wait for it before we let the action finalize. Otherwise, it would be a promise. This means we could actually get rid of the nowait flag, and replace all sensed nowait effects with promises.

These are just brainstorming ideas. Let me know what you think.

Maybe @Sagre, @TarikViehmann, and @MostafaGomaa also want to comment.

morxa avatar Jan 18 '19 17:01 morxa