Overview
Conditional Links
Syntax
Conditional Links
Operators
The CBA ItemBuilder’s concept of conditional links can be used to create various different item designs.
Examples:
set()-operator in Conditional Links.While this item doesn’t make too much sense from a content perspective, it illustrates how Tasks with adaptive item selection can be implemented with multiple pages of automatically scoreable closed response formats.
UserDefinedIDs provide the reference between components in the (graphical) Page Editor and the Syntax.
UserDefinedIDs are important for multiple purposes:
Radiobutton with UserDefinedID: rb1 required for correct response)correct if Radiobutton with UserDefinedID: rb1 is selected)Button with UserDefinedID: Button1 can be set frozen)Button with UserDefinedID: Button1 was clicked)The CBA ItemBuilder generates a placeholder for the UserDefinedIDs (a long string starting with $). Configuring UserDefinedIDs means replacing this placeholder with a meaningful identifier.
Single Components
Multiple Components
Project > Edit all user defined IDs to open this dialog: The CBA ItemBuilder checks the validity and uniqueness of entered UserDefinedIds.1
Allowed Characters (same as for page names and project names):
Since the UserDefinedId is used for many different functions to connect components to syntax, it is recommended in larger CBA ItemBuilder projects to use a consistent naming scheme for all UserDefinedIds. A systematic naming schemes for the UserDefinedIds can reduce the error-proneness of scoring definitions for complex items.
Syntax comments are recommended to ensure you and your colleagues can remember and read the meaning of specific parts of a syntax.
Why comments in syntax?
How to add comments to syntax?
End of (current) line: // The rest of the line is a comment
Sections (multiple lines possible):/* Everything within
is a comment */
What is considered as CBA ItemBuilder syntax?
Syntax means keywords + UserDefinedIDs + schema.
The CBA ItemBuilder provides a Auto-Completion feature that can simplify writing syntax, as it often can suggest the appropriate keywords and possible UserDefinedIds.
How to request syntax help?
Ctrl + Space (Strg + Space) in any syntax editor of the CBA ItemBuilder to see possible values in the current context (including operators and UserDefinedIDs)
Logical Expressions
and) and disjunction (or)not)Boolean Data Types
true: This is always fulfilledfalse: This is never fulfilledUserDefinedId in Syntax
true, for instance, if a component with a particular UserDefinedId is selected.Operators in Syntax
true, given the provided arguments.The CBA ItemBuilder supports complex logical expressions. However, it is important to know that a specific formulation is necessary, that uses only pairs of conditions.
Cond1(Cond1 and Cond2)((Cond1 and Cond2) and Cond3) are two conjunction A: (Cond1 and Cond2), B: Cond3, combined to (A and B).Examples with negation:
not ((Cond1 and Cond2) and Cond3)not ((Cond1 and not Cond2) and not Cond3)true.Schema:
Page1 and Page2) must exist in the current project.Condition1 nor Condition2 is fulfilled.Conditional Links are assigned as regular links.


CBA ItemBuilder Syntax Editor for Conditional Links:

x in the title bar.link5513717510664183471.lk_dsl is irrelevant).Five different conditional links:
target1 or target2 is shown.Conditional Link 4, a regular and conditional link is defined in parallel.If regular links and conditional links are defined in parallel (see example Conditional Link 4,), the regular link is only used if no conditional link rule applies.
Schema for Operator in Condition:
Example:
SingleLineInputFields)matches(...) is like a function call (returning true or false).matches(UserDefinedId,RegularExpression)-operator in the condition evaluates to true, when the Regular Expression matches the input (of the SingleLineInputField with the UserDefinedId ).Schema for Single Operator:
Schema for Multiple Operators:
Schema for Multiple Operators:
Important:
Operator1(), Operator2() and OperatorA() are placeholders for available Operators listed on the next slide.,).CBA ItemBuilder Syntax defines various Operators for Conditional Links …
Inputfields: focus, insertTextopenDialog, closeDialoginitFSM, setFSMEvent, setFSMStateAudio/ Video components: initMediaPlayersetsetHidden / unsetHiddensetActive / unsetActive, setFrozen / unsetFrozenPageAreas: setEmbeddedPageTextFields: setHighlightable / unsetHighlightableFrameSelectGroups: setMultiselect / unsetMultiselect, setNoDeselect / unsetNoDeselect, setSelectable / unsetSelectableHelpful to remember:
Additional tips:
Important: