Conditions#

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.

Simple Conditions#

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.

Numeric Conditions#

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]

Compound Conditions#

The following operators can be used to build more complex expressions from simple rule conditions:

  • NOT( condition ) --- true, if the condition does not apply
  • (condition1) AND (condition2) --- true, only if both conditions apply at the same time
  • (condition1) OR (condition2) --- true, if at least one of the conditions do apply

Other Types of Formulas#

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