Items API Initialization
adaptive
Configuration options for an adaptive assessment. Learnosity offers several forms including: Item Adaptive Testing, Item Branching, and Testlet Adaptive.
You would want to use this to perform a dynamic selection of Items based on the learner's current assessment performance, rather than using a pre-defined list of Items. Each subsequent Item is selected and loaded based on the previous Item's responses, whether the learner answered correctly or incorrectly.
Multiple Item selection algorithms are available and can be configured. See below for a description of the different options.
Important Only supported with rendering_type: "assess"
and supersedes the items
initialization option.
Values
Attribute path adaptive
-
Type ItemTestletAdaptive
Use the Rasch model and Item Response Theory to select Items or Activities with a psychometrically-calibrated difficulty.
See the ItemTestletAdaptive type definition for more information.
-
Type ItemBranching
A basic form of dynamic assessment with pre-configured conditional branches.
See the ItemBranching type definition for more information.
-
Type SelfHosted
Implement your own custom algorithm for selecting each Item.
See the SelfHosted type definition for more information.
Type definitions
-
ItemTestletAdaptive object
This algorithm uses the Rasch model and Item Response Theory to select Items or Activities with a psychometrically-calibrated difficulty. This difficulty needs to be set as part of the Items or Activities in the Item bank.
See Using Adaptive Assessments in Learnosity for more information.
Note Either
"termination_criteria"
or"sequence"
is mandatory.The following properties are supported.
-
type string
Specifies the mode for selecting upcoming Items.
Possible values
-
"itemadaptive"
- Items are selected based on responses to previous Items. -
"branching"
- Activities (testlets) are selected instead of Items. The Activities themselves can be adaptive or fixed-form. The learner's performance on the Activities as well as their Items will be used to calculate their ability estimate.
-
-
sequence array
Specific requirements for each individual Item in the session, allowing full control of the profile of every Item. The session will end when the end of this sequence is reached.
The
required_tags
are the Tags from which the Item must be selected.The
blacklist_tags
are the Tags from which the Item must not be selected.In this example, the first Item in the session must be from Unit 2.7, and must not be technology enhanced.
The second Item must be tagged with
lifecycle:seeding
. As this Tag matches theseeding
Tag defined above, it will be treated as a seed Item, for instance, it will not be expected to have a difficulty, and responses to it will not be used when calculating ability estimates.[ { "required_tags": { "unit": [ "2.7 - Conditional statements" ] }, "blacklist_tags": { "technology-enhanced": [ "Yes" ] } }, { "required_tags": { "lifecycle": [ "seeding" ] } } ]
-
termination_criteria object
The criteria used to determine when to finish a user's session (by order of precedence).
Note Either
"error_below"
or"max_items"
is mandatory.{ "error_below": 0.65, "max_items": 45, "min_items": 20 }
The following properties are supported.
-
error_below integer
Threshold on the standard error of measurement of the user's ability estimate.
The session will finish when the estimate's standard error falls below this threshold.
This value should be set in consultation with psychometricians calibrating the Items' difficulty.
-
max_items integer
Maximum number of Items to present. Must be at least one Item.
The session will finish as soon as that many Items have been presented.
-
min_items integer
Minimum number of Items to present. Must be at least one Item.
The session will not finish until at least that many Items have been presented.
-
-
blacklist_tags object
The Tags from which Items must not be selected.
{ "unit": [ "2.7 - Conditional statements" ] }
-
exclude_items object
Items which should not be selected in the session. The
type
can be"hard"
for Items that should never be selected, or"soft"
for Items that should only be selected if no similar Items are available.{ "type": "hard", "references": [ "item-A", "item-B", "item-C" ] }
-
initial_ability float (logit)
The initial ability measure for the learner. This will be used as the target difficulty for the first Item.
Default:
0
-
item_difficulty_offset float (logit)
An offset to apply to each difficulty target. A positive value will cause more difficult Items to be selected.
Default:
0
-
item_difficulty_tolerance float (logit)
The size of the range of difficulties from which an Item should be randomly selected.
For example, if the target difficulty is 0 logits, a tolerance of 1 will select an Item at random from all Items with a difficulty between -0.5 and 0.5 logits.
If no Items are found in that range, an Item with difficulty between 0.5 and 1.5 will be selected, followed by the range -1.5 to -0.5, and so on.
Default:
1
-
max_difficulty_change float (logit)
When an ability estimate for the learner is not yet available, this value is added or subtracted (depending on the learner's response) from the difficulty of the previous Item to determine the difficulty target for the next Item.
Default:
0.7
-
max_item_difficulty float (logit)
The maximum difficulty of all available Items.
Default:
9
-
min_item_difficulty float (logit)
The minimum difficulty of all available Items.
Default:
-9
-
required_tags object
Specifies the TagsV0 from which Items must be selected. Where multiple Tags of the same type are specified, the algorithm will alternate between each Tag.
By default, the Tags will be distributed equally, but the weighting can be customised by providing the desired
weight
in an object alongside thename
.For example, see the JSON configuration below. All Items in the session would be tagged with
subject:Math
.Half of the Items would be tagged with
technology-enhanced-item:Yes
, and the other half withtechnology-enhanced-item:No
.Then 60% of the Items would be tagged with
chapter:1 - The Number System
, and 40% would be tagged withchapter:2 - Statistics and Probability
.Note This is also used to select Items for automatic inclusion in Item pools alongside the Activity.
{ "chapter": [ { "name": "1 - The Number System", "weight": 3 }, { "name": "2 - Statistics and Probability", "weight": 2 } ], "subject": [ "Math" ], "technology-enhanced-item": [ "Yes", "No" ] }
-
interim_ability_estimation array[string]
Ordered list of the preferred estimation methods to use during the session, for example, to determine the target difficulty for the next Item.
The
"eap"
,"empirical-eap"
, and"score-lookup"
methods can be configured further using their respective properties.Default:
[ "mle", "eap" ]
Possible values
-
"mle"
- Maximum-Likelihood EstimationThis method requires a mixed response pattern for the Items seen, i.e., at least one correct response and one incorrect response.
-
"eap"
- Expected A Posteriori (EAP)This method requires the
eap
option to be configured. -
"empirical-eap"
- Empirical Expected A Posteriori (EAP)As above, but the
mean
used for the calculation is the final ability estimate for the overall session.empirical_eap
can optionally be configured. -
"score-lookup"
Use the raw score for the session (the sum of correct Items) to select an ability estimate from a lookup table - this method requires
score_lookup
to be configured (see below).
-
-
final_ability_estimation array[string]
Ordered list of the preferred estimation methods to use for the final ability estimate calculated at the end of the session.
The
"eap"
,"empirical-eap"
, and"score-lookup"
methods can be configured further using their respective properties.Default:
[ "mle", "score-lookup", "eap" ]
Possible values
-
"mle"
- Maximum-Likelihood EstimationThis method requires a mixed response pattern for the Items seen, i.e., at least one correct response and one incorrect response.
-
"eap"
- Expected A Posteriori (EAP)This method requires the
eap
option to be configured. -
"empirical-eap"
- Empirical Expected A Posteriori (EAP)As above, but the
mean
used for the calculation is the final ability estimate for the overall session.empirical_eap
can optionally be configured. -
"score-lookup"
Use the raw score for the session (the sum of correct Items) to select an ability estimate from a lookup table - this method requires
score_lookup
to be configured (see below).
-
-
subscore_ability_estimation array[string]
Ordered list of the preferred estimation methods to use for subscores.
The
"eap"
,"empirical-eap"
, and"score-lookup"
methods can be configured further using their respective properties.Default:
[ "empirical-eap", "mle" ]
Possible values
-
"mle"
- Maximum-Likelihood EstimationThis method requires a mixed response pattern for the Items seen, i.e., at least one correct response and one incorrect response.
-
"eap"
- Expected A Posteriori (EAP)This method requires the
eap
option to be configured. -
"empirical-eap"
- Empirical Expected A Posteriori (EAP)As above, but the
mean
used for the calculation is the final ability estimate for the overall session.empirical_eap
can optionally be configured. -
"score-lookup"
Use the raw score for the session (the sum of correct Items) to select an ability estimate from a lookup table - this method requires
score_lookup
to be configured (see below).
-
-
eap object
Information used to calculate
"eap"
ability estimates.// "eap" example { "mean": -0.25, "num_points": 45, "standard_deviation": 0.95, "theta_max": 2.25, "theta_min": -3 }
-
empirical-eap object
Information used to calculate
"empirical-eap"
ability estimates.Note These values override those in
"eap"
.// "empirical-eap" example { "standard_deviation": 1 }
-
score-lookup object
The lookup table used for
"score-lookup"
estimates.The
min
andmax
values are mapped to the lowest and highest possible scores, respectively.// "score-lookup" example { "min": -3.5, "max": 3.5 }
-
seeding object
Instructions for how seeding Items should be included in the session for calibration purposes. These Items are not expected to have difficulty measures, and responses to these Items have no effect on the user's ability estimate for the session.
The
tagtype
andtagname
define the specific Tag that identifies Items for seeding.The
weight
defines the proportion of seed Items that should be selected in the session-0.1
or10%
in this example.{ "tagtype": "lifecycle", "tagname": "seeding", "weight": 0.1, "earliest_seed_item": 3, "latest_seed_item": 3 // i.e. 3rd last }
-
-
ItemBranching object
A lightweight form of dynamic assessment, with conditional branches pre-configured in the Activity definition.
See Building Item Branching Assessments for more information.
The following properties are supported.
-
type string
Must be set to
"itembranching"
.Possible values
"itembranching"
-
steps array[ItemStep|BinaryStep|GlobalScoreStep]
An Item branching assessment comprises an array of steps. Steps can define the reference of Items to present to the learner when visited, or decisions to select which branch to visit next.
Only Item steps result in Items being presented to the learner, decision steps are executed in the backend until the next Item step is visited.
The assessment starts at the first step defined in the array, which should be an Item step. The order of the rest of the array does not matter.
The following properties are supported.
-
ItemStep object
The most basic step provides an Item reference to be presented to the learner when visited, as well as an unconditional pointer to the next step.
{ "id": "step-1", "reference": "item-reference-1", "next": "step-2" }
The following properties are supported.
-
id string
The identifier of the step within the Activity.
-
next string|null
Either
null
(end of the assessment), or the ID of the next step to unconditionally jump to. -
reference string
Reference of the Item to present at this step.
-
-
BinaryStep object
A basic step providing an Item reference, along with a conditional decision based on whether the learner answered correctly or not.
{ "id": "step-2", "reference": "item-reference-2", "next": { "correct": "global-decision-step-1", "incorrect": "step-3" } }
The following properties are supported.
-
id string
The identifier of the step within the Activity.
-
reference string
The reference of the Item to present at this step.
-
next object
An object with the identifiers of the steps to jump to depending on whether the last answer to the Item was correct or not.
The following properties are supported.
-
correct string null
Either
null
(end of the assessment), or the ID of the next step to jump to when the response to this Item is correct. -
incorrect string null
Either
null
(end of the assessment), or the ID of the next step to jump to when the response to this Item is incorrect.
-
-
-
GlobalScoreStep object
Specify a global binary decision, depending on whether the total score is at least some ratio of the maximum achievable so far, or not.
{ "<": "step-4", ">=": null, "id": "global-decision-step-1", "percentage": 50, "type": "global-score" }
The following properties are supported.
-
id string
The identifier of the step within the Activity.
-
type string
Must be set to
"global-score"
.Possible values
"global-score"
-
percentage integer
An integer between 0 and 100 representing the cut-off ratio of the maximum score.
-
>= string null
Either
null
(end of the assessment), or the ID of the next step to jump to when the current score is greater than or equal to, thepercentage
of the maximum achievable score so far. -
< string null
Either
null
(end of the assessment), or the ID of the next step to jump to when the current score is smaller than thepercentage
of the maximum achievable score so far.
-
-
-
-
SelfHosted object
Delegate the Item selection to an external third-party service which implements the Self-Hosted API.
You would want to use this to implement a fully custom algorithm for selecting each Item, based on the learner's inputs, your own Item metadata and bespoke logic.
See the full self-hosted object specification for more information.
[ { "type": "subject", "name": "Math" }, { "type": "technology-enhanced-item", "name": "yes" }, { "type": "technology-enhanced-item", "name": "no" }, { "type": "chapter", "name": "1 - The Number System", "weight": 3 }, { "type": "chapter", "name": "2 - Statistics and Probability", "weight": 2 } ]
The following properties are supported.
-
type string
Must be set to
"selfhosted"
.Possible values
"selfhosted"
-
required_tags array[TagsV2]
The TagsV2 from which Items must be selected.
Note This is also used to select Items for automatic inclusion in Item pools alongside the Activity.
-