Previous Page Main Page Next Page
Algebra of Symbols (AoS) and AoS-based Extended Disjunctive Normal Form (XDNF) expression calculator are parts of the Kaleidoscope Project.

The AoS is the algebraic system used as the mathematical means for describing causal dependencies among characteristics of a qualitative system, in the form of a system of state equations. In these equations, the dependent variable is located on the left side of the equation, while the XDNF expression that computes the value of the variable is on the equation's right side.

Presented on this page, the XDNF Expression Calculator provides several illustrative examples of the XDNF equations. An XDNF equation can be selected from the dropdown list of the Equation Selector and shown in the Equation View field below. The selected equation is evaluated by clicking on the green "Compute" button, located below the Equation View field. The result of the evaluation is presented in the field "Computation result".

Equation Selector. Select a predefined XDNF equation to be computed
Selected expression's variables are initialized as follows:
Equation View. Click the "Compute" button to obtain the result.


Computed result:

XDNF Expression and Calculator Explanation

Representation conventions: All variables are represented as one to three lowercase letters and digits long.  All constants are represented as one uppercase letter. It is assumed all variable values and constants are taken from the AoS domain set D, defined as: D = {A, B, C, ..., Z}.

Expression operators: There is a regular Assignment operator and the five operators of the AoS algebraic operations in the equation.

Character  "="  is the operator of the regular Assignment operation.
Character  "<"  is the operator of the AoS Application operation.
Character  "|"  is the operator of the AoS Disjunction operation.
Character  "*"  is the operator of the AoS Production operation.
Character  "&"  is the operator of the AoS Conjunction operation.
Character  "?"  is the operator of the AoS Equals operation.

Operator precedence: The order of computation is defined by the operator priorities, where the Equals (?) operator has the highest priority, and therefore is executed first. Then operators: Conjunction (&), Production (*), Disjunction (|), Application (<), and Assignment (=) are executed.

Parentheses: All parentheses in the examples are optional and are used merely for grouping parts of the expression to improve visual perception. They may embrace: Equals operator group(s), conjunctive expression, production rule group(s), and the entire disjunctive form. Any expression may not have any parentheses at all.

AoS expression structure and evaluation: The principle of AoS expression structure and evaluation reflects the nature of the change of state of properties observed in qualitative systems. According to this nature, a particular dependent property either changes its state as a result of arising situations causing it to change, or does not change its state, when there are no situations that cause it to change, or there exists two or more situations that create contradictory requirement implying dependent on them property to be simultaneously in different states. Following the awareness of this nature, computed XDNF expression is defined as a composition of subexpressions where the top-level view of the expression is written as:

y = y < f (x1, x2, ..., xn);

In the expression, the change of the dependent variable y may only be caused by some, but not all, possible combinations of arguments that the function can potentially be called with. The function, therefore, in general case, is a partially defined and either is supposed to be always called with such combinations of arguments on which it certainly depends, or to be capable of providing indication that either the result, returned from the function, is the new valid state of the dependant variable, or that new state was not produced for the given combination of arguments. The XDNF expression calculator uses the latter approach by performing computation of the expression in two steps, detailed below.

Step 1. On this step, the partially defined function f is called, with all argument variables initialized, and attempts to compute the dependent variable state. When it appears that the function result, computed for the current combination of arguments, is defined, that is, obtained as a symbol that belongs to subset D of the carrier set S of the model, this result is used as the new meaningful value of the variable y. However, on the other hand, it may always turn out that for the current combination of arguments of the function, its result is NOT defined, as the function returns an auxiliary symbol, belonging to subset X of the carrier set S. This symbol indicates that meaningful results can not be produced. Handling the case when the computed proposed value of a variable is undefined is addressed by the Application operation, which is invoked on Step 2.

Step 2. When the AoS Application operation is invoked, it takes the result computed by the function f as its one operand, and the current value of the dependent variable y as its other operand. It yields its result depending on the value of the operand computed by the function f. The Application operation:

(a) yields the result obtained from the function f, when the result is a valid value, i.e., is a symbol taken from set D, or

(b) yields as the result the current value of the variable being computed, if the result obtained from the function f appears undefined. Proposing as the next value of the dependent variable of the equation its current value, i.e., the same value that the variable already has, leaves the value of this variable virtually unchanged.

Execution of the Application operation completes computation of the expression, and its return is considered the value that is assigned to the variable located on the equation's left side.

A note. The last (third) example, selectable from the dropdown of the Equation Selector, represents a case where the value of the left-hand-side variable y of the equation is also the argument of the right-hand-side XDNF expression. That makes the just-computed variable y become the expression's updated argument. Clicking the "Compute" button again allows you to compute the expression one more time. But this time with the new argument. The example can, thus, be executed repeatedly, allowing it to iterate the variable y through its various values.


Previous Page Main Page Next Page