parts - array of identifiers for responses that have registered themselves in order that they occur in the problem. The identifiers have the format $part_id.$response_id and they will prefix all other keys that are associated with the associated response For the rest of the keys $prefix will be a entry from the above parts array - $prefix.answercomputed - will be set to 1 if it's been detected that the correct answer is calculated (and then likely to vary on a per student basis) or statically set (and thus likely the same for each student) - $prefix.type - either 'numericalresponse or 'formularesponse' - $prefix.incorrect - array of the values that are in the incorrect attribute for a numericalresponse For each of these, the value is a hash, with keys that are the value of the name attribute of the associated , the value of that is an array for each component of the answer For example $analyze{"$prefix.answer"}{$name}[1] is the second component of the ansser $name for the response $prefix - $prefix.answer - the correct answer - $prefix.unit - the unit for the correct answer - $prefix.ans_high - for ranged answers the highest allowed answer - $prefix.ans_low - for ranged answers the lowest allowed answer - $prefix.format - the format specification for displaying the correct answer - $prefix.type - will be 'stringresponse' For each of these, the value is a hash, with keys that are the value of the name attribute of the associated , the value of that is an array for each component of the answer For example $analyze{"$prefix.answer"}{$name}[1] is the second component of the answser $name for the response $prefix - $prefix.answer - the correct answer - $prefix.str_type - the type of answer (either 'mc' 'cs' 'ci' 're') - $prefix.foils - a list of all names seen from the s name attribute - $prefix.shown - a list of all names that were actually shown to this user (in the order that they were displayed to them) - $prefix.concepts - (only appears if is used) a list of all the concept attributes for each s that appears For each of the possible concepts from the $prefix.concepts array there is a - $prefix.concept.$concept - the array of names associated with $concept For each of the possible names from the $prefix.foils array there is a - $prefix.foil.value.$name - the correct value for this (from the 's value attribute) - $prefix.foil.text.$name - the text that was displayed to the student as the text for this foil For there is also - $prefix.foil.location.$name - the value of the location attribute for the value tag (expected to be either 'top', 'bottom', or 'random' if blank, assumed to be 'random' - $prefix.foil.image.$name - the url of the image that is displayed to the user - $prefix.foil.area.$name - the area of the image that is set as correct - $prefix.items - array of the names of the s - $prefix.options - array of all possible selectable options (from the ) - $prefix.options - array of all possible selectable options (which will always be 'true' and 'false') - $prefix.tol - the tolerance to apply when checking if two s are equivalent or not