[QTI] Multiple textEntryInteraction or fill in the blanks kind of questions

Steve Lay swl10 at cam.ac.uk
Tue Sep 11 18:54:34 BST 2007


Uma Abhyankar wrote:
> I was having doubt for writing fill in the blank question that contains 
> multiple blanks. For instance,
> Question: Human being has 5 senses ____, _____, ____, ____ and _____
> Answer: taste, touch, sight, smell, hearing

Firstly, the simplest way to do this is to use an 
extendedTextInteraction with multiple strings required.

 > Question: Human being has 5 senses:
 >_____
 >_____
 >_____
 >_____
 >_____

Not as pretty, but this can be achieved using a response variable of 
cardinality multiple and setting maxStrings=5 on the 
extendedTextInteraction.

<responseDeclaration identifier="RESPONSE" cardinality="multiple" 
baseType="string">
     <correctResponse>
         <value>taste</value>
         <value>touch</value>
         <value>sight</value>
         <value>smell</value>
         <value>hearing</value>
     </correctResponse>
</responseDeclaration>
<outcomeDeclaration identifier="SCORE" cardinality="single" 
baseType="float"/>
<itemBody>
     <extendedTextInteraction responseIdentifier="RESPONSE" maxStrings="5">
         <prompt>Human being has 5 senses:</prompt>
     </extendedTextInteraction>
</itemBody>
<responseProcessing 
template="http://www.imsglobal.org/question/qti_v2p0/rptemplates/match_correct"/>


In QTI v1 there were some systems that encoded free text entry questions 
with multiple answers this way but they weren't that portable really.

When it comes to response processing, the above is easy because a 
variable of cardinality "multiple" can be matched against the correct 
answer.  For the moment, lets ignore the possibility of typing errors!

What the above solution does do is point us to a possible way of doing 
what you really want.  The following response processing gathers up all 
the answers and treats them as a single multiple value:

     <responseProcessing>
         <responseCondition>
             <responseIf>
                 <match>
                     <multiple>
                         <variable identifier="RESPONSE1"/>
                         <variable identifier="RESPONSE2"/>
                         <variable identifier="RESPONSE3"/>
                         <variable identifier="RESPONSE4"/>
                         <variable identifier="RESPONSE5"/>
                     </multiple>
                     <multiple>
                         <baseValue baseType="string">sight</baseValue>
                         <baseValue baseType="string">smell</baseValue>
                         <baseValue baseType="string">touch</baseValue>
                         <baseValue baseType="string">hearing</baseValue>
                         <baseValue baseType="string">taste</baseValue>
                     </multiple>
                 </match>
                 <setOutcomeValue identifier="SCORE">
                     <baseValue baseType="float">1</baseValue>
                 </setOutcomeValue>
             </responseIf>
         </responseCondition>
     </responseProcessing>


Hope that helps.

Steve





More information about the IMS-QTI mailing list