<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6400825194232012268</id><updated>2011-06-06T16:49:02.272-07:00</updated><category term='release'/><title type='text'>Multiple Choice Questions Five Methods</title><subtitle type='html'>A Blog on the JISC MCQFM project</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>MCQFM</name><uri>http://www.blogger.com/profile/07707481600009942992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-3654474319545666079</id><published>2007-09-14T02:30:00.000-07:00</published><updated>2007-09-14T02:42:54.839-07:00</updated><title type='text'>Types of Questions</title><content type='html'>Sorry for the silence over the summer.  But the work went a bit quiet then.  What we have done recently is to add the WSDL end points for the SOAP part of our service and attemted to test in anger the service.&lt;br /&gt;&lt;br /&gt;A number of points we found&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;   &lt;li&gt;We had to correct an oversight.  Any attribute in xml cannot have a quotation mark in it (because the quotation mark is the delimiter of an attribute).  This was causing problems with questions created with quotation marks.  Therefore we are just bug fixing that.&lt;/li&gt;   &lt;li&gt;Also, we can't have questions with hash symbols in them either.  If they appear in generated qml, QuestionMark refuses to import them.&lt;/li&gt;   &lt;li&gt;A third question is what variant of QML (by Questionmark) should we support.  For now, we are working on supporting the importation of non graphical questions form QML in Perception 3 and Perception 4 - but only exporting to Perception 4's flavour of QML. This latter point has given us some problems with a question of this type:&lt;br /&gt;---ORDER---&lt;br /&gt;Associate the following numbers with their type:&lt;br /&gt;1@Odd&lt;br /&gt;2@Even&lt;br /&gt;3@Odd&lt;br /&gt;If we export this as a QML "SEL" question, there is no problem - the three numbers appear with dropdown boxes beside each one allowing the student to choose "odd" or "even".  However, the SEL is depracated in Perception 4 where a "MATCH" style question is used instead.  However, in that "odd" appears twice in the drop down list -and more problematically - in runtime mode - you aren't allowed to choose an item you have chosen previously.  Making this kind of question very difficult.  However, an easy work around is to switch the question to type "MAT" (or Matrix) - where it will again become possible to make multiple associations of the same term.&lt;/li&gt; &lt;/ol&gt; All of which shows that translating questions is much like translating languages.  There are often 1-1 correspondences which are easy.  But also there are occaisions where you need to arrive at the essence of what is being said and then recast it in the terms of the other language.  The English "the straw that broke the camel's back" - in Italian becomes "&lt;i&gt;La goccia che fa traboccare il vaso d'aqua" &lt;/i&gt;literally - the drop that made the vase of water topple over.&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-3654474319545666079?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/3654474319545666079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=3654474319545666079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/3654474319545666079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/3654474319545666079'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/09/types-of-questions.html' title='Types of Questions'/><author><name>MCQFM</name><uri>http://www.blogger.com/profile/07707481600009942992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-59592315958725987</id><published>2007-05-22T03:28:00.000-07:00</published><updated>2007-05-22T05:03:01.730-07:00</updated><title type='text'>Clarifying the questions</title><content type='html'>&lt;div align="left"&gt;Sorting out QTEXT questions and their corresponding QTI and QML type of question has required alot of thought. Questions such as ORDER type questions can be represented in different ways and the challenge for us was deciding the best way to represent each for clarity.  The following is therefore a clarification on how each QTEXT question is represented and how these correspond to QTI and QML question types.&lt;/div&gt;&lt;div align="left"&gt; &lt;/div&gt;&lt;div align="left"&gt;QTEXT Representation  of the five types of questions are shown below along with the question type they correspond to in QTI (R2Q2) and QML (QM perception 4) .&lt;/div&gt;&lt;div align="left"&gt;      &lt;/div&gt;&lt;p&gt;The first QTEXT question is a multiple choice question (MCQ) which has a single correct answer represented by the @ symbol. This corresponds to a "choice" question in QTI and a Multiple Choice question (QTYPE="MC") in QML.&lt;/p&gt;&lt;p&gt;-----------------MCQ---------------------&lt;br /&gt;What is rightthree is right&lt;br /&gt;This isn't&lt;br /&gt;Nor is this&lt;br /&gt;@This is&lt;br /&gt;But this isn't&lt;br /&gt;And neither is this&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The second QTEXT question is a multiple response question (MRQ), which has multiple correct answers, again represented by the @ symbols. This question corresponds to a "choice_multiple" question in QTI and a Multiple Response question (QTYPE="MR") in QML.&lt;/p&gt;&lt;p&gt;-----------------MCQ---------------------&lt;br /&gt;What is righttwo,three and four are right&lt;br /&gt;This isn't&lt;br /&gt;@This is&lt;br /&gt;@This is too&lt;br /&gt;@And so is this&lt;br /&gt;But this isn't&lt;/p&gt;&lt;p&gt;The next QTEXT question in a Fill in the blank type question (CLOZE). This question corresponds to a "text_Entry" question for single blanks and a "gap_match" question for multple blanks in QTI. In QML this question corresponds to a Fill in Blanks type question(QTYPE="FIB").&lt;/p&gt;&lt;p&gt;-----------------CLOZE---------------------&lt;br /&gt;This is a fill in the blank or text Entry question. The gaps are placed between [at]  signs like @so@. You can have more than one blank.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;The next QTEXT question is an order type of question. The answers are typed in in the correct order. This type of question corresponds to an "order" question in QTI and a Ranking question (QTYPE="RANK") in QML.&lt;/p&gt;&lt;p&gt;-----------------ORDER---------------------&lt;br /&gt;Put the following in the correct order (order is implicit)They are only numbers&lt;/p&gt;&lt;p&gt;Uno &lt;/p&gt;&lt;p&gt;Due&lt;/p&gt;&lt;p&gt;Tre&lt;/p&gt;&lt;p&gt;Quattro&lt;/p&gt;&lt;p&gt;Cinque&lt;/p&gt;&lt;p&gt;The next type of QTEXT question is a match or association type of question, where the match is represented by the text following the @ symbol. This type of question corresponds to a "match" type question in QTI and a matching type question (QTYPE="MATCH") in QTI&lt;/p&gt;&lt;p&gt;----------------ORDER---------------------&lt;br /&gt;Match the following numbers with their english meaningThey are only numbers&lt;/p&gt;Uno @One&lt;br /&gt;Due @Two&lt;br /&gt;Tre @Three&lt;br /&gt;Quattro @Four&lt;br /&gt;Cinque @Five&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-59592315958725987?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/59592315958725987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=59592315958725987' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/59592315958725987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/59592315958725987'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/05/clarifying-questions.html' title='Clarifying the questions'/><author><name>mcqfm</name><uri>http://www.blogger.com/profile/17547522572667250710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-8047559007608950834</id><published>2007-05-20T14:22:00.000-07:00</published><updated>2007-05-20T14:37:38.285-07:00</updated><title type='text'>MCQFM on sourceforge.net</title><content type='html'>The MCQFM project has now been accepted on sourceforge.net, the Open Source software development web site. It can be found at http://sourceforge.net/projects/mcqfm and the current project code can be found by browsing the CVS repository.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-8047559007608950834?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/8047559007608950834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=8047559007608950834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/8047559007608950834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/8047559007608950834'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/05/mcqfm-on-sourceforgenet.html' title='MCQFM on sourceforge.net'/><author><name>mcqfm</name><uri>http://www.blogger.com/profile/17547522572667250710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-5064828380914764194</id><published>2007-05-03T07:05:00.000-07:00</published><updated>2007-05-03T09:11:11.332-07:00</updated><title type='text'>Converting from QML to Text</title><content type='html'>While so far we have been exploring translating from the low featured QTEXT to BQL and then finally to QTI or QML, now, when trying to convert the other way, we find we are doing more than just tree conversions, we have to make deductions about what a question is trying to say, and how, therefore, its data might be recast into another format.&lt;br /&gt;&lt;br /&gt;Lets for example think of a very complex multiple response question:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;---MCQ---&lt;br /&gt;Which of these are valid responses to belonging to unappealing social groups?&lt;br /&gt;A) Leave the group&lt;br /&gt;B) Seek to change the group&lt;br /&gt;C) Remain in the group but complain about it intensely&lt;br /&gt;D) Do passive aggressive things like wearing slovenly clothes whenever the group meets&lt;br /&gt;E) Try to change your attitude to see the good in each member of the group&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We might use a question like this to see if someone is coherent in their thinking (regardless of which strategy they use). (A) on its own is valid if defeatest (E) on its own is valid but maybe a bit airy-fairy - (B) on its own is a bit overambitious - but (B) and (E) together seems like a wonderful strategy. (C) and (D) if done together are very negative, but still coherent. However if anyone choses either (C)or(D) AND any of (A)(B)or(E) - then they are obviously a basket case (which is probably overdoing it - since most of us are contradictory at various points in our lives). Based on that reasoning I have tried to produce some QML below with scoring to reflect the best strategy.&lt;br /&gt;&lt;/choice&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;QUESTION STATUS="Normal" DESCRIPTION="Which of these are valid responses to belonging to unappealing social groups?" TOPIC="a" ID="3123191976896635" TYPE="text/plain" &amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain" &amp;gt;&lt;br /&gt;Which of these are valid responses to belonging to unappealing social groups?&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;ANSWER QTYPE="MR" SHUFFLE="N"&amp;gt;&lt;br /&gt;&amp;lt;CHOICE ID="0"&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;Leave the group&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/CHOICE&amp;gt;&lt;br /&gt;&amp;lt;CHOICE ID="1"&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;Seek to change the group&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/CHOICE&amp;gt;&lt;br /&gt;&amp;lt;CHOICE ID="2"&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;Remain in the group but complain about it intensely&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/CHOICE&amp;gt;&lt;br /&gt;&amp;lt;CHOICE ID="3"&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;Do passive aggressive things like wearing slovenly clothes whenever the group meets&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/CHOICE&amp;gt;&lt;br /&gt;&amp;lt;CHOICE ID="4"&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;Try to change your attitude to see the good in each member of the group&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/CHOICE&amp;gt;&lt;br /&gt;&amp;lt;/ANSWER&amp;gt;&lt;br /&gt;&amp;lt;OUTCOME ID="simpleDefection" SCORE="1"&amp;gt;&lt;br /&gt;&amp;lt;CONDITION &amp;gt;&lt;br /&gt;"0" AND NOT "1" AND NOT "2" AND NOT "3" AND NOT "4"&amp;lt;/CONDITION&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/OUTCOME&amp;gt;&lt;br /&gt;&amp;lt;OUTCOME ID="changeAttitudeandGroup" SCORE="3"&amp;gt;&lt;br /&gt;&amp;lt;CONDITION &amp;gt;&lt;br /&gt;NOT "0" AND "1" AND "4" AND NOT "2" AND NOT "3"&amp;lt;/CONDITION&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/OUTCOME&amp;gt;&lt;br /&gt;&amp;lt;OUTCOME ID="justChangeAttitude" SCORE="2"&amp;gt;&lt;br /&gt;&amp;lt;CONDITION &amp;gt;&lt;br /&gt;NOT "0" OR NOT "1" OR NOT "2" OR NOT "3" OR "4"&amp;lt;/CONDITION&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/OUTCOME&amp;gt;&lt;br /&gt;&amp;lt;OUTCOME ID="ConsistentlySulk" SCORE="0"&amp;gt;&lt;br /&gt;&amp;lt;CONDITION &amp;gt;&lt;br /&gt;NOT "0" AND NOT "1" AND "2" AND "3" AND NOT "4"&amp;lt;/CONDITION&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/OUTCOME&amp;gt;&lt;br /&gt;&amp;lt;OUTCOME ID="contradictory" SCORE="-2"&amp;gt;&lt;br /&gt;&amp;lt;CONDITION &amp;gt;&lt;br /&gt;"2" OR "3" AND "0" OR "1" OR "4"&amp;lt;/CONDITION&amp;gt;&lt;br /&gt;&amp;lt;CONTENT TYPE="text/plain"&amp;gt;&lt;br /&gt;&amp;lt;/CONTENT&amp;gt;&lt;br /&gt;&amp;lt;/OUTCOME&amp;gt;&lt;br /&gt;&amp;lt;/QUESTION&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now from reading this, the only thing it can really end up as in QTEXT terms would be&lt;br /&gt;---MCQ---&lt;br /&gt;Which of these are valid responses to belonging to unappealing social groups?&lt;br /&gt;Leave the group&lt;br /&gt;@Seek to change the group&lt;br /&gt;Remain in the group but complain about it intensely&lt;br /&gt;Do passive aggressive things like excessive slovenliness of clothes whenever the group meets&lt;br /&gt;@Try to change your attitude to see the good in each member of the group&lt;br /&gt;&lt;br /&gt;- which is to say, set the "true" answers to be that of the **choices implied by the highest-scoring outcome**.&lt;br /&gt;&lt;br /&gt;In this example we see a massive loss of the original data when "compressed" into the new format. But this is the curse of readability&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-5064828380914764194?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/5064828380914764194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=5064828380914764194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/5064828380914764194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/5064828380914764194'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/05/converting-from-qml-to-text.html' title='Converting from QML to Text'/><author><name>MCQFM</name><uri>http://www.blogger.com/profile/07707481600009942992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-3586482443614632200</id><published>2007-04-23T13:01:00.000-07:00</published><updated>2007-04-23T13:02:37.746-07:00</updated><title type='text'>BQL - Basic Question Language</title><content type='html'>BQL is an xml language we have created which represents in XML form the question in as basic a form as possible (it stands for Basic Question Language).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-3586482443614632200?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/3586482443614632200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=3586482443614632200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/3586482443614632200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/3586482443614632200'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/04/bql-basic-question-language.html' title='BQL - Basic Question Language'/><author><name>mcqfm</name><uri>http://www.blogger.com/profile/17547522572667250710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-7382135839516006071</id><published>2007-04-23T12:49:00.000-07:00</published><updated>2007-04-23T13:01:11.200-07:00</updated><title type='text'>BQL example - Multiple Choice, Order and Cloze Questions</title><content type='html'>&amp;LT?xml version="1.0" encoding="UTF-8"?&amp;GT&lt;br /&gt;&lt;br /&gt;&amp;LT!--&lt;br /&gt;    Document   : BQLexample.xml&lt;br /&gt;    Created on : 30 January 2007, 10:06&lt;br /&gt;    Author     : C Bettison&lt;br /&gt;    Description: BQL document for quiz example.&lt;br /&gt;--&amp;GT&lt;br /&gt;&lt;br /&gt;&amp;LTns:quiz xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" &lt;br /&gt;            xmlns:ns="http://mcqfm/quiz/1_0"&lt;br /&gt;     xsi:schemaLocation="http://mcqfm/quiz/1_0 /C:/Documents%20and%20Settings/Administrator/TextFileReadApp/src/newXMLSchema.xsd"&amp;GT&lt;br /&gt;&lt;br /&gt;&amp;LTns:item model="mcq" id="1"&amp;GT&lt;br /&gt;&amp;LTns:choicequestion totalscorevalue="1" minvalue="1"&amp;GT&lt;br /&gt;&amp;LTns:content&amp;GTIs this computer turned on?&amp;LT/ns:content&amp;GT&lt;br /&gt;&amp;LTns:answer correct="false" scorevalue="0" id="1"&amp;GTDon't know&amp;LT/ns:answer&amp;GT&lt;br /&gt;&amp;LTns:answer correct="true" scorevalue="1" id="2"&amp;GTyes&amp;LT/ns:answer&amp;GT&lt;br /&gt;&amp;LTns:answer correct="false" scorevalue="0" id="3"&amp;GTNo&amp;LT/ns:answer&amp;GT&lt;br /&gt;&amp;LT/ns:choicequestion&amp;GT&lt;br /&gt;&amp;LT/ns:item&amp;GT&lt;br /&gt;&lt;br /&gt;&amp;LTns:item model="order" id="2"&amp;GT&lt;br /&gt;&amp;LTns:orderquestion totalscorevalue="1" minvalue="1"&amp;GT&lt;br /&gt;&amp;LTns:content&amp;GTWhat is the correct order of the following notes:&amp;LT/ns:content&amp;GT&lt;br /&gt;&amp;LTns:orderanswer correctorder="3" id="1" correct="true" scorevalue="1"&amp;GTme&amp;LT/ns:orderanswer&amp;GT&lt;br /&gt;&amp;LTns:orderanswer correctorder="1" id="2" correct="true" scorevalue="1"&amp;GTdoh&amp;LT/ns:orderanswer&amp;GT&lt;br /&gt;&amp;LTns:orderanswer correctorder="2" id="3" correct="true" scorevalue="1"&amp;GTray&amp;LT/ns:orderanswer&amp;GT&lt;br /&gt;&amp;LTns:feedback&amp;GTThe correct order is: doh, ray me&amp;LT/ns:feedback&amp;GT&lt;br /&gt;&amp;LT/ns:orderquestion&amp;GT&lt;br /&gt;&amp;LT/ns:item&amp;GT&lt;br /&gt;&lt;br /&gt;&amp;LTns:item model="cloze" id="3"&amp;GT&lt;br /&gt;&amp;LTns:gapquestion totalscorevalue="1" minvalue="1"&amp;GT&lt;br /&gt;&amp;LTns:content&amp;GTFill in the missing gap&amp;LT/ns:content&amp;GT&lt;br /&gt;&amp;LTns:sentencepart gap="false" id="1"&amp;GTA light wave is &amp;LT/ns:sentencepart&amp;GT&lt;br /&gt;&amp;LTns:sentencepart gap="true" id="2"&amp;GTelectromagnetic&amp;LT/ns:sentencepart&amp;GT&lt;br /&gt;&amp;LTns:sentencepart gap="false" id="3"&amp;GTwhereas a soundwave is &amp;LT/ns:sentencepart&amp;GT&lt;br /&gt;&amp;LTns:feedback&amp;GTThe correct answer is electromechanical&amp;LT/ns:feedback&amp;GT&lt;br /&gt;&amp;LT/ns:gapquestion&amp;GT&lt;br /&gt;&amp;LT/ns:item&amp;GT&lt;br /&gt;&amp;LT/ns:quiz&amp;GT&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-7382135839516006071?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/7382135839516006071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=7382135839516006071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/7382135839516006071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/7382135839516006071'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/04/bql-example-multiple-choice-order-and.html' title='BQL example - Multiple Choice, Order and Cloze Questions'/><author><name>mcqfm</name><uri>http://www.blogger.com/profile/17547522572667250710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-5089553394671798066</id><published>2007-04-23T12:40:00.000-07:00</published><updated>2007-04-23T12:47:44.825-07:00</updated><title type='text'>BQL Schema</title><content type='html'>&amp;LT?xml version="1.0" encoding="UTF-8"?&amp;GT&lt;br /&gt;&amp;LT!--&lt;br /&gt;    Document   : BQLSchema.xsd&lt;br /&gt;    Created on : 30 January 2007, 10:09&lt;br /&gt;    Author     : C Bettison&lt;br /&gt;    Description:&lt;br /&gt;        Purpose of XML Schema document for mcqfm project.&lt;br /&gt;--&amp;GT&lt;br /&gt;&amp;LTxs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;            xmlns:ns="http://mcqfm/quiz/1_0"&lt;br /&gt;            targetNamespace="http://mcqfm/quiz/1_0"&lt;br /&gt;            xmlns="http://mcqfm/quiz/1_0" elementFormDefault="qualified"&amp;GT&lt;br /&gt;    &lt;br /&gt; &amp;LTxs:element name="quiz" &amp;GT&lt;br /&gt;    &amp;LTxs:complexType&amp;GT&lt;br /&gt;      &amp;LTxs:sequence&amp;GT&lt;br /&gt;        &amp;LTxs:element name="item" type="item" maxOccurs="unbounded" /&amp;GT&lt;br /&gt;      &amp;LT/xs:sequence&amp;GT&lt;br /&gt;    &amp;LT/xs:complexType&amp;GT&lt;br /&gt;  &amp;LT/xs:element&amp;GT&lt;br /&gt;  &lt;br /&gt;&amp;LTxs:complexType name="item"&amp;GT&lt;br /&gt;      &amp;LTxs:choice&amp;GT&lt;br /&gt;        &amp;LTxs:element name="choicequestion" type="question"/&amp;GT&lt;br /&gt;         &amp;LTxs:element name="orderquestion" type="question"/&amp;GT&lt;br /&gt;        &amp;LTxs:element name="gapquestion" type="question"/&amp;GT&lt;br /&gt;      &amp;LT/xs:choice&amp;GT&lt;br /&gt;      &amp;LTxs:attribute name="model" type="xs:string" use="required" /&amp;GT&lt;br /&gt;      &amp;LTxs:attribute name="id" type="xs:integer" use="required" /&amp;GT&lt;br /&gt;    &amp;LT/xs:complexType&amp;GT&lt;br /&gt;&lt;br /&gt; &amp;LTxs:complexType name="question"&amp;GT&lt;br /&gt; &amp;LTxs:sequence&amp;GT&lt;br /&gt;&amp;LTxs:element name="content" type="content"/&amp;GT&lt;br /&gt;&amp;LTxs:choice&amp;GT&lt;br /&gt;&amp;LTxs:element name="answer" type="answer" maxOccurs="unbounded"/&amp;GT&lt;br /&gt;&amp;LTxs:element name="orderanswer" type="orderanswer" maxOccurs="unbounded"/&amp;GT&lt;br /&gt;&amp;LTxs:element name="sentencepart" type="sentencepart" maxOccurs="unbounded"/&amp;GT&lt;br /&gt;&amp;LT/xs:choice&amp;GT&lt;br /&gt;&amp;LTxs:element name="feedback" type="feedback" minOccurs="0"/&amp;GT&lt;br /&gt;  &amp;LT/xs:sequence&amp;GT&lt;br /&gt;      &amp;LTxs:attribute name="minvalue" type="xs:integer" use="optional" /&amp;GT&lt;br /&gt;      &amp;LTxs:attribute name="totalscorevalue" type="xs:integer" use="required" /&amp;GT&lt;br /&gt;    &amp;LT/xs:complexType&amp;GT&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;&amp;LTxs:complexType name="sentencepart"&amp;GT&lt;br /&gt;&amp;LTxs:simpleContent&amp;GT&lt;br /&gt;&amp;LTxs:extension base="xs:string"&amp;GT&lt;br /&gt;&amp;LTxs:attribute name="gap" type="xs:boolean" use="required" /&amp;GT&lt;br /&gt;&amp;LTxs:attribute name="id" type="xs:integer" use="required" /&amp;GT&lt;br /&gt;&amp;LT/xs:extension&amp;GT&lt;br /&gt; &amp;LT/xs:simpleContent&amp;GT&lt;br /&gt;&amp;LT/xs:complexType&amp;GT&lt;br /&gt;    &lt;br /&gt;&amp;LTxs:complexType name="answer"&amp;GT&lt;br /&gt;  &amp;LTxs:simpleContent&amp;GT&lt;br /&gt;    &amp;LTxs:extension base="xs:string"&amp;GT&lt;br /&gt;       &amp;LTxs:attribute name="correct" type="xs:boolean" use="required" /&amp;GT&lt;br /&gt;       &amp;LTxs:attribute name="id" type="xs:integer" use="required" /&amp;GT&lt;br /&gt;        &amp;LTxs:attribute name="scorevalue" type="xs:integer" use="optional" /&amp;GT&lt;br /&gt;    &amp;LT/xs:extension&amp;GT&lt;br /&gt;  &amp;LT/xs:simpleContent&amp;GT&lt;br /&gt;&amp;LT/xs:complexType&amp;GT&lt;br /&gt;&lt;br /&gt;&amp;LTxs:complexType name="orderanswer"&amp;GT&lt;br /&gt;  &amp;LTxs:simpleContent&amp;GT&lt;br /&gt;    &amp;LTxs:extension base="xs:string"&amp;GT&lt;br /&gt;       &amp;LTxs:attribute name="correctorder" type="xs:integer" use="required" /&amp;GT&lt;br /&gt;       &amp;LTxs:attribute name="scorevalue" type="xs:integer" use="optional" /&amp;GT&lt;br /&gt;       &amp;LTxs:attribute name="correct" type="xs:boolean" use="required" /&amp;GT&lt;br /&gt;       &amp;LTxs:attribute name="id" type="xs:integer" use="required" /&amp;GT&lt;br /&gt;    &amp;LT/xs:extension&amp;GT&lt;br /&gt;  &amp;LT/xs:simpleContent&amp;GT&lt;br /&gt;&amp;LT/xs:complexType&amp;GT&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;LTxs:simpleType name="content"&amp;GT&lt;br /&gt;  &amp;LTxs:restriction base="xs:string"&amp;GT&lt;br /&gt;    &amp;LTxs:whiteSpace value="collapse"/&amp;GT&lt;br /&gt;  &amp;LT/xs:restriction&amp;GT&lt;br /&gt;&amp;LT/xs:simpleType&amp;GT&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;LTxs:simpleType name="feedback"&amp;GT&lt;br /&gt;&amp;LTxs:restriction base="xs:string"&amp;GT&lt;br /&gt;&amp;LTxs:whiteSpace value="collapse"/&amp;GT&lt;br /&gt;&amp;LT/xs:restriction&amp;GT&lt;br /&gt;&amp;LT/xs:simpleType&amp;GT&lt;br /&gt;  &lt;br /&gt;&amp;LT/xs:schema&amp;GT&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-5089553394671798066?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/5089553394671798066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=5089553394671798066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/5089553394671798066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/5089553394671798066'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/04/bql-schema.html' title='BQL Schema'/><author><name>mcqfm</name><uri>http://www.blogger.com/profile/17547522572667250710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-672628520633867557</id><published>2007-04-23T02:14:00.000-07:00</published><updated>2007-04-23T02:19:37.203-07:00</updated><title type='text'>Reflections so Far</title><content type='html'>&lt;p&gt;1.R2Q2 was tricky to set up, however they've updated their Installation Tool (UPDATED 13/3/07) so this may be simpler now. But once it was working and I figured out how to use it (they also seem to have added help since), it was fairly simple. However it is only possible to load one question at a time and questions need to be in a zip file, thus making its use limited and adding questions one at a time a bit cumbursome, this would also have implications later.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2.In QM perception 4 it is possible to load a number of questions together as a quiz. However QM Perception is more complex than R2Q2 which allows it to have more functionality but also makes it harder to figure out (not being a great one for reading unstructions).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;3.The knock on effect to development of our mcqfm project was a requirement for single questions in QTI for R2Q2. We considered outputting QTI as single questions but this would mean restricting the user at the interface to one question at a time and making the development of QTI questions one at a time rather more tiresome. In the end we have opted to add a surplusWrapperNode as a root Node to encapsulate the QTI questions as a quiz. The surplusWrapperNode being a temporary expedient at the proof of concept stage, with the idea that in the future a further operation of removing this surplusWrapperNode and zipping up will be required before the questions can be usefully used by r2q2.&lt;br /&gt;Probably what we might do by the end of the project is output the lot as an &lt;assessment&gt;in qti 2.1 terms, then the new tools which are being developed could display that.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;4.Development of the QML for QM Perception was relatively straightforward, as I've said already they allow for a quiz thus making it possible to generate a text stream which is immediately importable into perception.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;5.In the BQL (the Basic Question Language - we use as an intermediate notation between the QTEXT humanly readable notation and the full XML -QML/QTI- representation) we wanted to generate XML that was expressive but simple, an extension of the humanly readable QText. It could be expressive in its use of elements, e.g &lt;orderquestion&gt;, &lt;orderanswer&gt;and attributes e.g scorevalue, correctorder etc. while still retaining readability.An example question for the order model is as follows:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;?xml:namespace prefix = ns /&gt;&lt;ns:item id="2" model="order"&gt;&lt;br /&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;br /&gt;&lt;ns:content&gt;&amp;lt;ns:item model="order" id="2"&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;&amp;lt;ns:orderquestion totalscorevalue="1" minvalue="1"&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;&amp;lt;ns:content&amp;gt;What is the correct order of the following notes:&amp;lt;/ns:content&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;&amp;lt;ns:orderanswer correctorder="3" id="1" correct="true" scorevalue="1"&amp;gt;me&amp;lt;/ns:orderanswer&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;&amp;lt;ns:orderanswer correctorder="1" id="2" correct="true" scorevalue="1"&amp;gt;doh&amp;lt;/ns:orderanswer&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;&amp;lt;ns:orderanswer correctorder="2" id="3" correct="true" scorevalue="1"&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;ray&amp;lt;/ns:orderanswer&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;&amp;lt;ns:feedback&amp;gt;The correct order is: doh, ray me&amp;lt;/ns:feedback&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;&amp;lt;/ns:orderquestion&amp;gt;&lt;/ns:content&gt;&lt;/ns:orderquestion&gt;&lt;/ns:item&gt;&lt;/p&gt;&lt;p&gt;&lt;ns:item model="order"&gt;&lt;ns:orderquestion minvalue="1" totalscorevalue="1"&gt;&lt;ns:content&gt;&amp;lt;/ns:item&amp;gt;&lt;/ns:content&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/ns:orderquestion&gt;&lt;br /&gt;&lt;/ns:item&gt;&lt;br /&gt;&lt;br /&gt;It might be nice to add scoring for questions, adding differential scoring for different responses in mcq or cloze questions is certainly a possibility - but would that complicate the QText to such an extent that its fundamental goal - to allow *anyone* to produce questions in QTI would become compromised (since it would require more recondite knowledge and therefore become only usable by people who know the spec).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;6.Further questions on R2Q2 that might be represented by QText are inline choice, associate, match, gapmatch and hottext and mathematical template questions.&lt;/p&gt;&lt;p&gt;by Caroline&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-672628520633867557?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/672628520633867557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=672628520633867557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/672628520633867557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/672628520633867557'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/04/reflections-so-far.html' title='Reflections so Far'/><author><name>MCQFM</name><uri>http://www.blogger.com/profile/07707481600009942992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-5560718002334209946</id><published>2007-04-20T07:43:00.000-07:00</published><updated>2008-11-12T19:17:38.417-08:00</updated><title type='text'>Sequence Diagram of MCQFM</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_nYhHyMtIiw8/RijR15HZzHI/AAAAAAAAAAM/tDoZ7_J34fI/s1600-h/sequenceDiagram.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5055521305518525554" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 307px; CURSOR: hand; HEIGHT: 589px" height="252" alt="" src="http://3.bp.blogspot.com/_nYhHyMtIiw8/RijR15HZzHI/AAAAAAAAAAM/tDoZ7_J34fI/s320/sequenceDiagram.png" width="603" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Click on the image to the left to see a sequence diagram of the workings of MCQFM so far&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-5560718002334209946?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/5560718002334209946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=5560718002334209946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/5560718002334209946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/5560718002334209946'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/04/sequence-diagram-of-mcqfm.html' title='Sequence Diagram of MCQFM'/><author><name>MCQFM</name><uri>http://www.blogger.com/profile/07707481600009942992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_nYhHyMtIiw8/RijR15HZzHI/AAAAAAAAAAM/tDoZ7_J34fI/s72-c/sequenceDiagram.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-1526060022470214839</id><published>2007-04-20T06:35:00.000-07:00</published><updated>2007-04-20T06:37:18.968-07:00</updated><title type='text'>Use case:</title><content type='html'>To make additions to the programme such as exporting to another form of XML would simply require the addition of a new xslt file. It would not be necessary to change either the QText or the BQL.Obviously a separate tool bar button would be required on the jsppage to pass the OutputType to the servlet. The servlet (mcqfmservlet.java) would require an additional else if statement (similar to the ones under //output for QML and QTI) to pass the outputType to the questionList GetOutput method.Similarly the GetOutput method in the questionList class would require another else if statement to determine the relevant xsl file name (sheetname).The relevant .xsl file does the transformation from BQL to the required form of XML, therefore no other changes would be required at this stage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-1526060022470214839?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/1526060022470214839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=1526060022470214839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/1526060022470214839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/1526060022470214839'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/04/use-case.html' title='Use case:'/><author><name>mcqfm</name><uri>http://www.blogger.com/profile/17547522572667250710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-3388125788524449888</id><published>2007-04-20T06:29:00.000-07:00</published><updated>2007-04-20T07:52:46.956-07:00</updated><title type='text'>Programme Description</title><content type='html'>The user interacts with a tool bar button to create questions in simple text called QText. The user then interacts with a tool bar button to select the type of quiz required (QML/QTI at the moment) and to signal the request to the system. In response the browser passes the popultaed FORM to the servlet. The servlet extracts the type of question output required and the QText string.&lt;br /&gt;&lt;br /&gt;The QText gets split up into individual questions until we reach the end of the quiz. The type of each question (order, multiple choice etc) is determined and used to decide which type of object to create. The question string is passed to the constructor of the class and added at the end of a queue object derived from a linked list.Once all the questions have been added to the list the servlet calls the questionList GetQuizXML method.&lt;br /&gt;&lt;br /&gt;This creates an instance of an XML document and adds the root node and namespace declarations. The GetXML method of each object in turn is called which converts the string passed in to XML elements. Each element gets appended to the document in turn to create the complete BQL quiz XML.  &lt;strong&gt;BQL&lt;/strong&gt; is an xml language we have created which represents in XML form the question in as basic a form as possible (it stands for Basic Question Language).&lt;br /&gt;&lt;br /&gt;Once the &lt;strong&gt;BQL&lt;/strong&gt; document is complete the servlet calls the questionList GetOutput method, passing in the OutputType (&lt;strong&gt;QML/QTI&lt;/strong&gt;) as a parameter. The xsl file name is determined and the &lt;strong&gt;BQL&lt;/strong&gt; document is transformed into &lt;strong&gt;QML&lt;/strong&gt; or &lt;strong&gt;QTI&lt;/strong&gt; using the relevant xsl file. The result is passed back and the document returned to the servlet which is then returned in the HTTP response.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-3388125788524449888?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/3388125788524449888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=3388125788524449888' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/3388125788524449888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/3388125788524449888'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/04/programme-description.html' title='Programme Description'/><author><name>mcqfm</name><uri>http://www.blogger.com/profile/17547522572667250710</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-8849896898998430303</id><published>2007-04-16T09:17:00.000-07:00</published><updated>2007-04-16T09:24:12.870-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Totally Alpha Version Available</title><content type='html'>The first outputs of mcqfm are the earliest form of the demonstrator.  This is at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://smirkboard.herts.ac.uk:8080/mcqfm/bqljsppage.jsp"&gt;http://smirkboard.herts.ac.uk:8080/mcqfm/bqljsppage.jsp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please try it out and see if the xml generated is to your liking.&lt;br /&gt;&lt;br /&gt;To install it on your own tomcat, download the following file&lt;br /&gt;&lt;br /&gt;&lt;a href="http://smirkboard.herts.ac.uk/mcqfm/mcqfm.zip"&gt;http://smirkboard.herts.ac.uk/mcqfm/mcqfm.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then unzip it to the webapps directory of your tomcat installation.  Then just run the run_me_then_delete_me.bat file (a small hack to get round the fact we've hard coded the locations of some of the files into the java classes - this will create the necessary directories and copy the xsl files into them).&lt;br /&gt;&lt;br /&gt;The source code (if you want to see it) is at&lt;br /&gt;&lt;br /&gt;&lt;a href="http://smirkboard.herts.ac.uk/mcqfm/mcqfm_with_source.zip"&gt;http://smirkboard.herts.ac.uk/mcqfm/mcqfm_with_source.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-8849896898998430303?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/8849896898998430303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=8849896898998430303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/8849896898998430303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/8849896898998430303'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/04/totally-alpha-version-available.html' title='Totally Alpha Version Available'/><author><name>MCQFM</name><uri>http://www.blogger.com/profile/07707481600009942992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-625924074210956716</id><published>2007-02-23T03:59:00.000-08:00</published><updated>2007-02-23T04:05:22.120-08:00</updated><title type='text'>Origins</title><content type='html'>The origins are in the TML and Euromet projects of the late 90s.&lt;br /&gt;&lt;br /&gt;The javascript bases for the html generated is from work by Helene Missou on the TML (JTAP) project. You can't get to her page any more, but you can get it from Web Archive: see&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;•http://web.archive.org/web/19980611031649/http://&lt;a style="POSITION: relative" onclick="window.event.cancelBubble=" href="http://www.ilrt.bris.ac.uk/~ethm/jscripts/js-intro.htm" target="_blank"&gt;w&lt;a onclick="window.event.cancelBubble=" href="http://web.archive.org/web/19980611031649/http:/www.ilrt.bris.ac.uk/~ethm/jscripts/js-intro.htm" target="_blank"&gt;ww.ilrt.bris.ac.uk/~ethm/jscripts/js-intro.htm&lt;/a&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And superb documentation for it can be found here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://web.archive.org/web/19980611031649/http://www.ilrt.bris.ac.uk/~ethm/download/jscript.zip"&gt;http://web.archive.org/web/19980611031649/http://www.ilrt.bris.ac.uk/~ethm/download/jscript.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The macro idea comes from the Euromet project (of which I was a developer) - see&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;•&lt;a style="POSITION: relative" onclick="window.event.cancelBubble=" href="http://page.mi.fu-berlin.de/~lernmat/oldbin/toolkit/fdt-full.html" target="_blank"&gt;http://page.mi.fu-&lt;/a&gt;&lt;a onclick="window.event.cancelBubble=" href="http://page.mi.fu-berlin.de/~lernmat/oldbin/toolkit/fdt-full.html" target="_blank"&gt;berlin.de/~lernmat/oldbin/toolkit/fdt-full.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-625924074210956716?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/625924074210956716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=625924074210956716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/625924074210956716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/625924074210956716'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/02/origins.html' title='Origins'/><author><name>MCQFM</name><uri>http://www.blogger.com/profile/07707481600009942992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6400825194232012268.post-7119812079336939518</id><published>2007-02-23T03:56:00.000-08:00</published><updated>2007-02-23T03:59:06.570-08:00</updated><title type='text'>First Entry</title><content type='html'>The MCQFM project exists to make it easy to generate loads of QTI questions.&lt;br /&gt;&lt;br /&gt;It is based on a currently existing page which generates HTML and QML questions quickly.  This is at:&lt;br /&gt;&lt;a href="http://homepages.feis.herts.ac.uk/~comqsjb/quiz.htm"&gt;http://homepages.feis.herts.ac.uk/~comqsjb/quiz.htm&lt;/a&gt;&lt;br /&gt;Try it out!&lt;br /&gt;&lt;br /&gt;However, this is a perl script which uses macro preprocessing to generate the html and qml.  How retro, how web1.0 I hear you say!&lt;br /&gt;&lt;br /&gt;Therefore MCQFM will do a number of web2.0 things with this idea.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Change it from a web form into a web service&lt;/li&gt;&lt;li&gt;Generate the assessment items using XSLT instead of macro-preprocessing&lt;/li&gt;&lt;/ol&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6400825194232012268-7119812079336939518?l=mcqfm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mcqfm.blogspot.com/feeds/7119812079336939518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6400825194232012268&amp;postID=7119812079336939518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/7119812079336939518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6400825194232012268/posts/default/7119812079336939518'/><link rel='alternate' type='text/html' href='http://mcqfm.blogspot.com/2007/02/first-entry.html' title='First Entry'/><author><name>MCQFM</name><uri>http://www.blogger.com/profile/07707481600009942992</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
