There are very many ways of modelling decision-making process using computers.
Decision filters are one of these.
Weighted Precondition Sets.
We can have a set of tuples (there's tool called Linda, also known as a Tuple Space).
Each of tuples in this a set consists of: (precondition, score).
WPS is connected with precondition producers, as well as with postcondition receivers.
When a producer decides that a precondition is met, this tuple is added to a set.
When score values in a set reaches or exceed a threshold value, the set is completed - completion event fires & chosen tuples (postcondition receiver decides which tuples to take, it takes as little as possible as well) are transferred to a postcondition receiver node. When all required postcondition tuples reach a receiver or a receiver/producer, decision is made. This decision might be to produce another precondition or something else as well.
Data flows in one direction only, in this model.
By designing & connecting producers, WPS-es & receivers properly, we can model decision making in a way.
For example, we can model a part of computer game decision filter that way:
We can react if we have enough forces & when we have enough of warning signals, in a proper way.
Abstract Preconditions/Causes Collection.
WPS part can be abstracted, to include other ways of handling preconditions or causes.
- whether producer can remove a tuple when it's no longer valid or not,
- whether there's a score part at all in a precondition tuple,
- whether a tuple contains additional payload data,
- what are abstract preconditions collection completion requirements,
- probably more options as well.
Other parts (producers, receivers) can be abstracted as well.
See also, if You wish or need, ... : Causes & Conditions.
(to be continued, probably).