Comparison of GIFT and Wikiversity Microformats

## Data loss analysis converting between Wikiversity microformat and Moodle's GIFT microformat

[edit | edit source]

### What this is

[edit | edit source]

This is a document that analyzes converting both ways between Moodle's GIFT picoformat and the Wikiversity Quiz.php microformat. The first thing to do in a conversion project between these two formats would be to do a feasibility study in order to get some idea of the difficulty of the task.

The concept of data loss here is based upon viewing the conversion as-is. "Data loss" doesn't mean that there is no conceivable way to save and convert this data. Rather this is relatively a "heuristic agnostic" exercise so it is simply identifying problems. For every bit of hypothetical data loss there would have to be additional code written, either by changing the functionality of one or both of the parsers (Wikiversity's and Moodle's) or by writing extra work-around code in the conversion code. Because of that a heuristic agnostic data loss study can give us an idea of how big this project might be in the short amount of time.

In addition to that it can later serve as a document to speed up algorithm creation as patterns for conversion can be identified, and problems areas are already laid out.

Perhaps most importantly of all this is Wikiversity, a website that aims to collect instructional content, and applying a "high documentation" policy to this project, and ANY Wikiversity project, is going to create more Wikiversity content that may have value to others, both editors and learners. It is my opinion that here more than anywhere, this is the best policy.

Please feel free to contribute to this document. It doesn't belong to me. It belongs to Wikiversity.

### Data loss analysis

[edit | edit source]

#### Question Types

[edit | edit source]

##### Multiple choice / single response

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

{Question
|type="()"}
+ The correct answer.
- Distractor.
- Distractor.
- Distractor.

Question{
= The correct answer
~ Distractor
~ Distractor
~ Distractor

* WV doesn't limit the number of distractors; I haven't found documentation on a GIFT limit or not, though it is documented that it is not necessarily fixed at 3.
* When writing in microformat, GIFT allows correct answers and distractors to be written on the same line, or a separate line indented or not indented. This is not possible with WV; every question MUST be on a new line and indentation will cause errors.

* WV includes an attribute called "type" that indicates a radio button (a control that limits selection to one selection of many), but this is not necessary in GIFT since a radio button is implied by the function of a multiple choices/single answer type question. This can be ignored.

##### True/false questions

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

{Question
|type="()"}
+ TRUE.
- FALSE.

Question {TRUE/FALSE/T/F}

With feedback

Question{TRUE/FALSE/T/F #Corrective_feedback #Congratulatory_Feedback}

* Although WV performs this function using different means, it performs the same functions. There should be no data loss in conversion.
* The feedback notation for GIFT True/False is unique from the standard GIFT feedback notation and may need to it's own consideration.

* In WV this is simply a multiple choice/ single answer question with only two options. An additional algorithm might be needed to distinguish WV True/False from WV multiple choice/ single answer type questions, in order to give the question a unique identity as a True/ False question in GIFT.
* The feedback notation for GIFT True/False is unique from the standard GIFT feedback notation and may need to it's own consideration.

##### Multiple choice / multiple response

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

{Question
|type="[]"}
+ Correct answer.
- Incorrect answer.
+ Correct answer.
- Incorrect answer.

Question {
~Incorrect answer.
=Correct answer.
=Correct answer.
~Incorrect answer.

Question Assigning Partial Credit

Question {
~%-50%Incorrect answer.
~P%Correct answer.
~P%Correct answer.
~%-50%Incorrect answer.

* Any data that unevenly distributes correct or incorrect answer values (ie 25/75 amongst two correct answers instead of 50/50) will be lost upon conversion. At most WV can modify all of the correct answers to one value, and all of the incorrect to one value. It can not assign more partial credit to answers that are more correct, or more relevant answers, than others. Likewise it can not assign more point loss to answers that are more incorrect. I have found no documentation to say what WV's default behavior in scoring multiple choice/ multiple answer questions is where only some of the correct answers have been selected. Testing will probably reveal the results but at this time this is still unknown.

* Since a weight must be assigned to each correct answer in GIFT (and, pedagogically speaking, a negative weight to every incorrect answer should be too), a conversion can simply evenly distribute the weighted correct values to add up to 100% and the weighted incorrect values to add up to -100%.

##### Typed response (short answer)

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

Question with one correct answer

{Question
|type="{}"}
{ Answer }

Question with multiple correct answers

{Question
|type="{}"}
{ One Answer|Another Answer }

Questions with text size limitation

{Question
|type="{}"}
{ Answer _6 }

Question with case insensitive answer

{Question
|type="{}"}
{ Answer (i) }

Question with one answer

Question {answer}

Question with multiple correct answers

Question {
=One correct answer
=Another correct answer

Question with partial credit answers

Question {
=One absolutely correct answer
=P% One relatively correct answer

* WV doesn't have a partial credit feature so this data will be lost. In an unmanned conversion an arbitrary decision would have to be made to determine the absolute correctness or absolute incorrectness in WV of GIFT question that provides less than 100% credit for some answers.

* In order to introduce case insensitivity to a question in GIFT, the change has to occur in the PHP code that administers the question.
* Numeric limitations of the size of input text is also something that will be lost in converting to GIFT.
* GIFT doesn't support the placement of the text box in any place in the question other than the end of the question. However, by converting this type of question to a cloze type question with only one text box, this can be converted.

##### Gapfill / cloze

[edit | edit source]

Wikiversity Microformat | GIFT Microformat |

|
|

{Instructions
|type="{}"}
Text text text { numeric answer } text text.
Text text text { text answer }
text { text answer }.

Cloze text box with short answer

Text {1:SHORTANSWER:0%answer} text.

Cloze text box with multiple choice using percentage

Text {1:MULTIPLECHOICE:%0%Distractor~0%CorrectAnswer}
text.

Cloze text box with multiple choice using '=' sign

Text {1:MULTIPLECHOICE:Distractor~=Correct Answer}
text text {1:MULTIPLECHOICE:=Correct Answer~Distractor}
text.

Cloze with numerical answer

Text {1:NUMERICAL:=Number:Margin of Error}
text.

Cloze with numerical answer and partial credit

Text {1:NUMERICAL:=Number:Margin of Error~P%Number:Larger Margin of Error}
text.

Conversion Comments
GIFT to Wikiversity

Conversion Comments
Wikiversity to GIFT

* WV has a partial credit feature but I am not certain it works on this question type.
* GIFT has multiple choice options that are not available in WV for cloze type questions. WV doesn't have a drop down control at all, but these types of Cloze questions can be converted into ordinary multiple choice questions with this kind of format:

'''Provide the best answers for the following sentence.'''

Text text ('''Question 1''') text text ('''Question 2''').
<quiz display=simple>

{Question 1.
|type="()"}
+ Text A
- Text B
- Text C

{Question 2.
|type="()"}
- Text A
+ Text B
- Text C
</quiz>

* GIFT has an extension called "REGEX question type" that can not be converted as-is.
* The number that precedes the constants int he answer refers to the question point weight. Check to see if WV coef works for cloze. Testing will clear this up.

* WV has the text size limiting variable. This will most likely be lost when translating to GIFT.
* WV cloze assessments operate as short answer question types therefore numbers will be counted as text and exact matches can be evaluated. Its not clear whether a margin of error can be determined.
* Its not clear that WV's "points" attribute works with short answer question types.

##### Numerical response

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

Numerical Question with Minimum and maximum range

{Question
|type="{}"}
{ Min_Answer-Max_Answer }.

Numerical Question with Margin of Error

{Question
|type="{}"}
{ Answer Margin_of_Error%}

Numerical Question with Minimum and maximum range

Question{ Min_Answer..Max_Answer }

Numerical Question with Margin of Error

Question
{#Answer:Margin_of_Error_in_Decimal_Form}

Numerical Question with Partial Credit

Question{
=Best_Answer:0
=P%Partial_Credit_Answer

* WV has a partial credit system and the numerical question type is simply a reuse of the short answer question type. It remains for testing to see if WV's partial credit system which is designed for multiple choice answers, also works for "short answer" question types.
* Both GIFT and WV have interpretations of min/max and margin of error answer scoring systems.

* Both GIFT and WV have interpretations of min/max and margin of error answer scoring systems. Since WV uses percentages for the margin of error and GIFT employs decimal notation, some percent values that are irrational numbers would have to be rounded when converted to GIFT, resulting in negligible data loss.

##### Tabular response type with radio buttons

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

{Question
|type="()"}
| A | B | C
+-- A is correct.
-+- B is correct.
--+ C is correct.

There is no GIFT equivalent.

N/A

* This question can be broken down into a series of multiple choice/ single answer questions in GIFT.

##### Tabular response type with checkboxes

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

{Question
|type="[]"}
| Option A | Option B | Option C
++- Question 1
(Clue: A and B are correct).
-++ Question 2 (
Clue: B and C are correct).
--+ Question 3
(Clue: C is correct).

There is no GIFT equivalent.

N/A

* This question can be broken down into a series of multiple choice/ multiple answer questions in GIFT.

##### Essay questions

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

There is no WV equivalent.

Essay Instructions {}

* In WV essays are typically handled using Mediawiki's own HTML writing editor. An example of an essay assignment might simply instruct a user to create a link and then write an essay on that wiki page. A GIFT to WV conversion can convert GIFT essay questions to instructions on WV to this effect.

N/A

##### Matching questions

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

There is no WV equivalent.

Instructions {
=Answer_A -> Match_Item_A
=Answer_B -> Match_Item_B
=Answer_C -> Match_Item_C

* In WV there is not matching question type. Matching question types can be replaced with one multiple choice/ single answer question for each matching item using the other incorrect matches as its distractors.

N/A

##### Random short-answer matching questions

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

There is no WV equivalent.

* This is the description used by Moodle. The documentation for GIFT on this question type isn't available. It may be a function of the GIFT executing code rather than the GIFT microformat.

* WV doesn't have a matching question type so this conversion will not come up at this time.

N/A

#### Other code conventions

[edit | edit source]

##### Inserting feedback

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

{Question
|type="()"}
+ The correct answer.
|| Feedback for correct answer.
- Distractor.
|| Feedback for distractor.
- Distractor.
|| Feedback for distractor.
- Distractor.
|| Feedback for distractor.

Question {
=The correct answer.#Feedback for correct answer.
~Distractor. #Feedback for distractor.
~Distractor. #Feedback for distractor.
~Distractor. #Feedback for distractor.

* In WV, all feedback items are displayed on correction. With GIFT, the norm is to display the feedback only for those items which were selected by the user.

* In WV, all feedback items are displayed on correction. With GIFT, the norm is to display the feedback only for those items which were selected by the user.
* The pipes beginning the feedback section must be on a new line.

##### Inserting blocks of text between questions

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

{This is the first question.
|type="()"}
+ The correct answer.
- Distractor.
- Distractor.

{This is a block of text.}

{This is the second question.
|type="()"}
+ The correct answer.
- Distractor.
- Distractor.

There is no GIFT equivalent. See GIFT to WV Notes.

* Because of the WV microformat parser, blocks of text that exist within the <quiz></quiz> tags, must be blocked within curly braces. This is not the case for GIFT. Therefore when converting, text blocks should be created for text.

* The block notation can be ignored when converting to GIFT.

##### Mark-up in questions

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

Using Images in Questions

{ What is this? [[Image:Butterfly tongue.jpg|100px| ]]
| type="()" }
- Tiger
+ Butterfly
- Bee
- Fly

Using Images in Answers

<quiz display=simple>
{ Which of these are not nuts? }
- [[Image:Walnut03.jpg|100px]]
+ [[Image:Peanuts.jpg|100px]]
+ [[Image:Malus-Idared on tree.jpg|100px]]
- [[Image:Pistachios in a bag.jpg|100px]]
- [[Image:Chestnut.jpg|100px]]
+ [[Image:P10802511.JPG|100px]]
</quiz>

Other mark-up that works within WV

* Hyperlinks: [[....]].
* Images: [[Image:....]].
* Other media: [[....]].
* Bold and italic.
* <big> and <br>
* Templates: {{....}}.
* subst doesn't work.
* Tables: {|....|}.
* with some errors
* Lists and indents: using #, * and :
* with some errors

Mark-up can only be done outside the curly brace block.

[markdown] Question{
=Answer
~Distractor
~Distractor

The following mark-up is available in GIFT.

* Moodle auto-format
* HTML
* plain text
* Markdown

* Coverting mark-ups may be the single most comprehensive task since GIFT allows two mark-ups not available in WV. The behavior of most HTML tags under the quiz tags is also uncertain. A strategy of supporting most commonly used mark-ups might be the best initial approach.

* GIFT does not allow images (or other mark-up code) to exist within the answers. A conversion to GIFT will have to restructure the question so that the images are outside of the question with labels (eg A..B..C, or 1..2..3) and GIFT can use those labels instead of images as possible answers.

#### Configuring points

[edit | edit source]

##### Changing the value of single correct (and incorrect) responses

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

<quiz points="3/1!">
{Try this question now.}
+ Plus 3 points for this one.
- Minus 1 point for this one.
</quiz>

Question{
=Best_Answer
=P%Partial_Credit_Answer
~%-50%Partial_Debit_Answer
~%-100%Worst_Answer

* WV only supports having one correct answer value and one incorrect answer value. By default, there is 1 point for a correct answer and 0 for a wrong answer. GIFT point values that award partial credit (or discredit) to some answers and full credit to others will not convert. The best default conversion behavior would be to awards a full credit for values above 50% partial credit, and full discredit for values at or below 50%.

* You can change this for the whole quiz by using a points attribute for the quiz tag, a conversion should note that.

##### Changing the value of single questions in respect to a group

[edit | edit source]

Wikiversity Microformat | GIFT Microformat | Conversion Comments
GIFT to Wikiversity | Conversion Comments
Wikiversity to GIFT

|
|
|

<quiz display=simple>
{Try this question now.
|type="()" }
+ 1 points for this one.
- 0 points for this one.

{Try this question now.
|type="()" coef="2"}
+ 2 points for this one.
- 0 points for this one.

{Try this question now.
|type="()" coef="4"}
+ 4 points for this one.
- 0 points for this one.

{Try this question now.
|type="()" coef="0.5"}
+ 1/2 point for this one.
- 0 points for this one.
</quiz>

GIFT does not do this function. This function is in the Moodle Import system.

* I don't know yet if there is data to this effect available when exporting GIFT.

* I doubt conversion will accomplish this. However the original editor's intended point values can placed in comment code for the benefit of the person importing from WV.

### Conclusion

[edit | edit source]

For the most part most question types, and features can be converted with no obvious difficulty. There are a few instances where a question may have to be broken up into several questions, or a questions may change the way it appears to the test-taker in a dramatic way without changing the function. Those instances may require special functions to accomplish.

Keep in mind having this information is only the first step in determining the scope of a conversion project, and hence its length, since the code available for extension has to be taken into consideration as well. As of yet there is no known document that takes any code in consideration. A complimentary document would compare a body of code of interest, such as Quiz.php, with this document to determine the true nature of a conversion project.

### See also

[edit | edit source]

Nothing here yet