beliefcalcs.tfile | source file |
Classes Summary | Objects Summary | Functions Summary Details |
Version 1.0 23rd April 2024
The (curernlty experimental) beliefcalcs.t extension implements various calculations involving the degree of belief enums likely, dubious, unlikely and untrue, together with true.
To do this it defines a set of corresponding wrapper objects bTrue, bLikely, bDubious, bUnlikely, and bUntrue, which asssign a probability score to each of these possible values.
To perform calculations with the belief values, it's necessary to wrap them in the corresponding wrapper object (of the BelVal class). This can be done with the BV() macro; e.g. BV(dubious) evaluates to bDubious, and BV(x) evaiuaates to bLikely if x is likely.
This then allows us to use the following expressions:
BV(a) | BV(b) the belief enum for a or b
BV(a) + BV(b) the probability (as a number out of 100) of a or b.
BV(a) & BV(b) the belief enum for a and b
BV(a) + BV(b) the probability (as a number out of 100) of a and b.
~BV(a) the negation/complement of a, e.g. ~BV(likely) = unlikely
BV(a) >> BV(b) test whether a.score > b.score
BV(a) << BV(b) test whether a.score < b.score
BV(a) >>> BV(b) test whether a.score >= b.score
One major limiation of this extension is that it does not repreaent how most people reason about probabilities in practice. A second, related, limitation is that the probabilities assigned to each enum (except for true and untrue, at 100 and 0 respectively) are somewhat arbitrary, e.g. should calling something 'likely' assign it a probability of 55% or 95%?
The extension does allow for further gradations if desired. For example one could define additional enums such as veryLikely and veryUnlikely and then define correspdonding objects of the BelVal class:
bVeryLikely: BelVal status = veryLikely score = 90;
bVeryUnlikely: BelVal status = veryUnlikely score = 10;
Note that this extension does NOT require the facts.t module to be present (although it is [perfectly compatinle with it.
bDubious
beliefManager
bLikely
bTrue
bUnlikely
bUntrue
(none)