At this page you can find the documentation for conditions. Conditions are an essential part of several markups, e.g. rules, covering lists, abstraction tables and test cases. Conditions are used to define a logical expression on some findings and/or outcomes of a d3web diagnostic session, to tell d3web how to action under specific circumstances.
There is a set of simple conditions to directly test values of specific questions and solutions. The most common is the "=" operator to check for a specific value.
// check for a certain choice choice-question = choice // note: for multiple-choice questions this evaluated to "true" // if the choice is selected, regardless is any other choice is // additionally selected // thus the following example might become true for those questions mc-question = choice1 AND mc-question = choice2 // check if the value is "known" (a value of its normal range is // answered) or if the value is "unknown" (the "unknown" choice // of the question is selected explicitly) any-question = known any-question = unknown // check the state of a solution solution = established solution = suggested solution = excluded // check a question to match a regular expression. // the operator evaluates to "true" if the regular expression // matches the whole answer given. // note: the special "/" before and after the regular expression text-question = /.*regex.*/
For more details to regular expression, see e.g. java documentation of regular expressions.
Especially for numerical questions, there is a set of additional test operators.
// first we might use the original compare to equal, // both operators are the same num-question = 10 num-question == 10 // there are also checks against limits of various types num-question <= 10 num-question >= 10 num-question < 10 num-question > 10 // finally there is a special operator to check for intervals num-question [10 20]
The following operators can be used to build more complex expressions from simple rule conditions:
For more complex formulas on any values there is also a further extension available. But be careful, this extension is non-LGPL-licensed for comercial use: Extended Expressions: Conditions and actions