Fraction Model interactions are triggered by specifying the following QTI Custom Interaction class attribute:<customInteraction class="tei-fractionmodel" responseIdentifier="RESPONSE">
The QTI schema of a Fraction Model customInteraction contains only one element, <customOption>, which contains an object that describes everything about the interaction, including the number and type of models inside the interaction. Inside the configuration
object there is a models array which defines properties of each Fraction Model "model" in an interaction, including startSegments, minSegments, maxSegments, radius, title text, and more.
The following is a complete <customOption> configuration object example of a models definition with three models. Note how the first model is specified as being inactive active: false:
<customOption><![CDATA[
{
div: 'interaction-RESPONSE',
stem_div: 'stem',
alignment: 'center',
models: [
{
active: false,
startSegments: 4,
minSegments: 1,
maxSegments: 4,
selectedSegments: [1, 2],
text: 'Circle A',
style: {
radius: 125,
fillColor: '#7D8FF5',
strokeColor: '#000000',
strokeWeight: 2
}
},
{
active: true,
startSegments: 2,
minSegments: 2,
maxSegments: 12,
selectedSegments: [],
text: 'Circle B',
style: {
radius: 125,
fillColor: '#E01BC6',
strokeColor: '#000000',
strokeWeight: 2
}
},
{
active: true,
startSegments: 2,
minSegments: 2,
maxSegments: 12,
selectedSegments: [],
text: 'Circle C',
style: {
radius: 125,
fillColor: '#B35FE3',
strokeColor: '#000000',
strokeWeight: 2
}
}
]
}
]]></customOption>
| Get Responses: | [ Click Get Responses ] |
<?xml version="1.0" encoding="utf-8"?>
<assessmentItem xmlns="http://www.imsglobal.org/xsd/imsqti_v2p1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.imsglobal.org/xsd/imsqti_v2p1 http://www.imsglobal.org/xsd/imsqti_v2p1.xsd"
adaptive="false" timeDependent="false" identifier="customInteraction-fractionmodel-2" title="Fraction Model - Example 2">
<responseDeclaration identifier="RESPONSE" cardinality="ordered" baseType="string">
<correctResponse>
<value>4/8</value>
<value>1/2</value>
</correctResponse>
</responseDeclaration>
<outcomeDeclaration identifier="SCORE" cardinality="single" baseType="float" />
<templateDeclaration cardinality="single" baseType="string" identifier="REFERENCE_FRACTION">
<defaultValue>
<value>2/4</value>
</defaultValue>
</templateDeclaration>
<itemBody>
<div id="model"></div>
<customInteraction class="tei-fractionmodel" responseIdentifier="RESPONSE">
<prcqti:fractionInteraction xmlns:prcqti="prcqti">
<customOption><![CDATA[
{
div: 'model',
stem_div: 'stem',
alignment: 'center',
models: [
{
active: false,
startSegments: 6,
minSegments: 1,
maxSegments: 4,
selectedSegments: [1, 2],
text: 'Circle A',
style: {
radius: 125,
fillColor: '#7D8FF5',
strokeColor: '#000000',
strokeWeight: 2
}
},
{
active: true,
startSegments: 2,
minSegments: 2,
maxSegments: 12,
selectedSegments: [],
text: 'Circle B',
style: {
radius: 125,
fillColor: '#E01BC6',
strokeColor: '#000000',
strokeWeight: 2
}
},
{
active: true,
startSegments: 2,
minSegments: 2,
maxSegments: 12,
selectedSegments: [],
text: 'Circle C',
style: {
radius: 125,
fillColor: '#B35FE3',
strokeColor: '#000000',
strokeWeight: 2
}
}
]
}
]]></customOption>
</prcqti:fractionInteraction>
</customInteraction>
</itemBody>
<responseProcessing>
<responseCondition>
<responseIf>
<and>
<!-- Fraction Model 1: equivalent fraction but numerator larger than reference. -->
<and>
<equal toleranceMode="absolute" tolerance="0.000000000001">
<divide>
<customOperator class="qti.customOperators.math.fraction.Numerator">
<index n="1">
<variable identifier="RESPONSE"/>
</index>
</customOperator>
<customOperator class="qti.customOperators.math.fraction.Denominator">
<index n="1">
<variable identifier="RESPONSE"/>
</index>
</customOperator>
</divide>
<divide>
<customOperator class="qti.customOperators.math.fraction.Numerator">
<variable identifier="REFERENCE_FRACTION"/>
</customOperator>
<customOperator class="qti.customOperators.math.fraction.Denominator">
<variable identifier="REFERENCE_FRACTION"/>
</customOperator>
</divide>
</equal>
<gt>
<customOperator class="qti.customOperators.math.fraction.Numerator">
<index n="1">
<variable identifier="RESPONSE"/>
</index>
</customOperator>
<customOperator class="qti.customOperators.math.fraction.Numerator">
<variable identifier="REFERENCE_FRACTION"/>
</customOperator>
</gt>
</and>
<!-- Fraction Model 2: equivalent fraction but numerator smaller than reference. -->
<and>
<equal toleranceMode="absolute" tolerance="0.000000000001">
<divide>
<customOperator class="qti.customOperators.math.fraction.Numerator">
<index n="2">
<variable identifier="RESPONSE"/>
</index>
</customOperator>
<customOperator class="qti.customOperators.math.fraction.Denominator">
<index n="2">
<variable identifier="RESPONSE"/>
</index>
</customOperator>
</divide>
<divide>
<customOperator class="qti.customOperators.math.fraction.Numerator">
<variable identifier="REFERENCE_FRACTION"/>
</customOperator>
<customOperator class="qti.customOperators.math.fraction.Denominator">
<variable identifier="REFERENCE_FRACTION"/>
</customOperator>
</divide>
</equal>
<lt>
<customOperator class="qti.customOperators.math.fraction.Numerator">
<index n="2">
<variable identifier="RESPONSE"/>
</index>
</customOperator>
<customOperator class="qti.customOperators.math.fraction.Numerator">
<variable identifier="REFERENCE_FRACTION"/>
</customOperator>
</lt>
</and>
</and>
<setOutcomeValue identifier="SCORE">
<baseValue baseType="float">1</baseValue>
</setOutcomeValue>
</responseIf>
<responseElse>
<setOutcomeValue identifier="SCORE">
<baseValue baseType="float">0</baseValue>
</setOutcomeValue>
</responseElse>
</responseCondition>
</responseProcessing>
</assessmentItem>
Use Circle B to create a fraction that is equivalent to what is shown in Circle A but with a larger numerator. Use Circle C to create a fraction that is equivalent to what is shown in Circle A but with a smaller numerator.