Gift Format
Gift Format
GIFT is the most comprehensive import format available for importing Moodle quiz questions
from a text file. It supports Multiple-Choice, True-False, Short Answer, Matching and Numerical
questions, as well as insertion of a _____ for the Missing Word format. Various question-types
can be mixed in a single text file, and the format also supports line comments, question names,
feedback and percentage-weight grades.
The text encoding of your text file must be utf-8 (unless you only use ascii characters). An
example questions text file can be found here: gift/examples.txt.
Basics
1. Each individual question in the GIFT file must not contain any blank lines.
2. Each question is delimited by at least one blank line.
3. If you need to represent a blank line in your question you can use the entity \n.
4. You can use comments wherever you wish but they must start with two forward slashes
(//) at the start of the line.
QUESTION TYPES
Multiple Choice:
For multiple choice questions, wrong answers are prefixed with a tilde (~) and the correct answer
is prefixed with an equal sign (=).
The Missing Word format automatically inserts a fill-in-the-blank line (like this _____) in the
middle of the sentence. To use the Missing Word format, place the answers where you want the
line to appear in the sentence.
If the answers come before the closing punctuation mark, a fill-in-the-blank line will be inserted
for the "missing word" format. All question types can be written in the Missing Word format.
There must be a blank line (double carriage return) separating questions. For clarity, the answers
can be written on separate lines and even indented. For example:
If there is only one correct Short Answer, it may be written without the equal sign prefix, as long
as it cannot be confused as True-False.
True-False:
In this question-type the answer indicates whether the statement is true or false. The answer
should be written as {TRUE} or {FALSE}, or abbreviated to {T} or {F}.
Matching:
Matching pairs begin with an equal sign (=) and are separated by this symbol "->". There must
be at least three matching pairs.
Matching Question. {
=subquestion1 -> subanswer1
=subquestion2 -> subanswer2
=subquestion3 -> subanswer3
}
Numerical:
The answer section for Numerical questions must start with a number sign (#). Numerical
answers can include an error margin, which is written following the correct answer, separated by
a colon. So for example, if the correct answer is anything between 1.5 and 2.5, then it would be
written as follows {#2:0.5}. This indicates that 2 with an error margin of 0.5 is correct (i.e., the
span from 1.5 to 2.5). If no error margin is specified, it will be assumed to be zero.
Moodle's browser interface does not support multiple numerical answers, but Moodle's code can
and so does GIFT. This can be used to specify numerical multiple spans, and can be particularly
usefully when combined with percentage weight grades. If multiple answers are used, they must
be separated by an equal sign, like short answer questions.
When was Ulysses S. Grant born? {#
=1822:0
=%50%1822:2}
Note that since Moodle's browser GUI doesn't support multiple answers for Numerical questions,
there's no way to see them or edit them through Moodle. The only way to change a numerical
answer beyond the first, is to delete the question and re-import it (or use something like
phpMyAdmin).
OPTIONS
In addition to these basic question types, this filter offers the following options: line comments,
question name, feedback and percentage answer weight.
Line Comments:
Comments that will not be imported into Moodle can be included in the text file. This can be
used to provide headers or more information about questions. All lines that start with a double
backslash (not counting tabs or spaces) will be ignored by the filter.
// Subheading: Numerical questions below
What's 2 plus 2? {#4}
Question Name:
A question name can be specified by placing it first and enclosing it within double colons.
::Kanji Origins::Japanese characters originally
came from what country? {=China}
::Thanksgiving Date::The American holiday of Thanksgiving is
celebrated on the {~second ~third =fourth} Thursday of November.
If no question name is specified, the entire question will be used as the name by default.
Feedback:
Feedback can be included for each answer by following the answer with a number sign (# also
known as a hash mark) and the feedback.
What's the answer to this multiple-choice question?{
~wrong answer#feedback comment on the wrong answer
~another wrong answer#feedback comment on this wrong answer
=right answer#Very good!}
Who's buried in Grant's tomb?{
=no one#excellent answer!
=nobody#excellent answer!}
Grant is buried in Grant's tomb.{FALSE#Wrong, No one is buried in Grant's tomb.#Right, well
done.}
For Multiple Choice questions, feedback is displayed only for the answer the student selected.
For short answer, feedback is shown only when students input the corresponding correct answer.
For true-false questions, there can be one or two feedback strings. The first is shown if the
student gives the wrong answer. The second if the student gives the right answer.
Multiple Answers:
The Multiple Answers option is used for multiple choice questions when two or more answers
must be selected in order to obtain full credit. The multiple answers option is enabled by
assigning partial answer weight to multiple answers, while allowing no single answer to receive
full credit.
What two people are entombed in Grant's tomb? {
~No one
~%50%Grant
~%50%Grant's wife
~Grant's father }
Note that there is no equal sign (=) in any answer and the answers should total no more than
100%, otherwise Moodle will return an error. To avoid the problem of students automatically
getting 100% by simply checking all of the answers, it is best to include negative answer
weights for wrong answers.
What two people are entombed in Grant's tomb? {
~%-50%No one
~%50%Grant
~%50%Grant's wife
~%-50%Grant's father }
Special Characters ~ = # { } :
These symbols ~ = # { } control the operation of this filter and cannot be used as normal text
within questions. Since these symbols have a special role in determining the operation of this
filter, they are called "control characters." But sometimes you may want to use one of these
characters, for example to show a mathematical formula in a question. The way to get around
this problem is "escaping" the control characters. This means simply putting a backslash (\)
before a control character so the filter will know that you want to use it as a literal character
instead of as a control character. For example:
Which answer equals 5? {
~ \= 2 + 2
= \= 2 + 3
~ \= 2 + 4 }
::GIFT Control Characters::
Which of the following is NOT a control character for the GIFT import format? {
~ \~# \~ is a control character.
~ \=# \= is a control character.
~ \## \# is a control character.
~ \{# \{ is a control character.
~ \}# \} is a control character.
= \# Correct! \ (backslash) is not a control character. BUT,
it is used to escape the control characters.}
When the question is processed, the backslash is removed and is not saved in Moodle.
Other Options:
Short Answer questions can be made case sensitive by changing "0" to "1" in the following line:
$question->usecase = 0; // Ignore case