====== Articles ====== * Szpyrka M.: Adder Designer - //Tools for modelling and analysis of rule-based systems//. Proc. of Computer Methods and Systems Conference, Vol. 1 (Plenary lectures and special session papers), Kraków, 2005, 341-346, {{:adder:msz_cms.pdf|pdf}} * Szpyrka M.: //Design and analysis of rule-based systems with Adder Designer//. In: Cotta, C., Reich, S., Schaefer, R., Ligęza, A. (Eds.): Knowledge-Driven Computing. Studies in Computational Intelligence, vol. 102, Springer-Verlag, 2008, 255-271 ====== Adder DT Designer Manual (ver. 0.9.2) ====== ===== Introduction ===== A rule-based system (RBS) designed in Adder Designer is represented by a single decision table. To construct such a decision table, we draw a column for each condition (or stimulus) that will be used in the process of taking a decision. Next, we add columns for each action (or response) that we may want the system to perform (or generate). Then, for every possible combination of values of those conditions a row should be drawn. We fill cells so as to reflect which actions should be performed for each combination of conditions. Each such row is called a decision rule. A cell in a decision table may contain a formula that evaluates to a boolean value for conditional attributes, and to a single value (that belongs to the corresponding domain) for decision attributes. Thus, in this approach decision rules should be treated as decision rules' patterns (or generalized decision rules). The number of rules' patterns is significantly less than the number of simple decision rules. In spite of this, we will use the name decision rules for decision rules' patterns ===== Designing of an RBS ===== To design a decision table using Adder Designer we define attributes, select conditional and decision attributes and construct decision rules. The verification stage is included into the design process. At any time, during the verification stage, users can check whether an RBS is complete, consistent and optimal. For intuition, a decision table is considered to be complete if for any possible input situation at least one rule can produce a decision. A decision table is deterministic if no two different rules can produce different results for the same input situation. A set of rules is considered optimal if it does not contain dependent (redundant) rules. For a complete and consistent set of rules, a dependent rule means a rule that can be eliminate without changing these two properties. The algorithm that searches for dependent rules does not change rules in the considered RBS. ===== Attributes domains examples ===== with a | b | c enumeration int with 0..3 integer bool with ( off, on ) boolean name alias ===== Operators ===== +, -, *, div, mod, and, or, not, <, <=, >, >=, <>, =. Moreover, round brackets may be used. ===== Table menu ===== * **Add Table** - Adds a new decision table to the project. * **Remove Table** - Removes the current decision table from the project. Removing of the last decision table is not allowed. * **Change Name** - Renames the current decision table. * **Add Conditional Attribute** - Adds the selected attribute as a new conditional attribute. To select an attribute just click on its name or domain definition. An attribute may be added at most once as a conditional attribute. * **Add Decision Attribute** - Adds the selected attribute as a new decision attribute. An attribute may be added at most once as a decision attribute. * **Delete C/D Attribute** - Removes the current column from the active decision table. * **Delete attribute** - Removes the selected attribute and the corresponding columns from the project. Removing of the last conditional attribute is not allowed. * **Delete Rule** - Removes the current row from the current decision table. * **Completeness** - Checks whether the current decision table is complete. * **Consistency** - Checks whether the current decision table is consistent. * **Semi-optimality** - Search for dependent rules in the current decision table. * **Clear Report** - Clears the analysis report. Other commands are accessible in pop-up menus. ===== Positive and negative rules ===== From a practical point of view rules are divided into positive and negatives ones. By positive rules we mean the ones providing a decision or conclusion. On the other hand, negative rules are the ones stating in an explicit way that the particular combination of input values (values of conditional attributes) is either impossible or not allowed. Negative rules are constructed with empty formulae for decision attributes. ===== Analysis ===== * **Completeness** - The result contains a list of states (values of conditional attributes) that are not coverd by decision rules. * **Consistency** - The result contains a list of states (values of conditional attributes) with a set of rules that produce different results for the same state. * **Semi-optimality** - The result contains a list of redundant rules.