Skip to content

Quizzes

.cloze (gap text)

Status: Release Candidate v1

Defines a cloze (gap text) to be filled by short free text.

bitmark Markup

[.cloze] This sentence is a [_cloze][_gap text][!noun] with [_two][?one or two] gaps including an instruction for the first and a hint for the second gap.

Cloze

cloze bitmark Cheatsheet Description
[_...] A gap of a cloze. "..." defines the correct answer.
[_...][_...]... One gap with several correct answers.
Several answers are defined by chained gap tags.
[_] Use empty gaps for free text answers.
[!...] Instruction
Instruction of the quiz or of the chained gap. [_...][!...]
[?...] Hint
Hint tag of the quiz or of the chained gap. [_...][?...]
=== Card Separator - Cloze quiz does not support several cards. Therefore, this separator is not allowed.

bitmark JSON

{
    "markup": "[.cloze] This sentence is a [_cloze][_gap text][!noun] with [_two][?one or two] gaps including an instruction for the first and a hint for the second gap.",
    "bit": {
        "type": "cloze",
        "format": "text",
        "item": [],
        "lead": [],
        "instruction": [],
        "hint": [],
        "body": [
            { "type": "text", "text": "This sentence is a " },
            {
                "type": "gap",
                "solutions": ["cloze", "gap text"],
                "item": [],
                "instruction": [ { "type": "text", "text": "noun" } ],
                "hint": [],
                "isCaseSensitive": true,
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": " with " },
            {
                "type": "gap",
                "solutions": ["two"],
                "item": [],
                "instruction": [ { "type": "text", "text": "noun" } ],
                "hint": [ { "type": "text", "text": "one or two" } ],
                "isCaseSensitive": true,
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": " gaps including an instruction for the first and a hint for the second gap." }
        ]
    },
    ...
}
bit Data Type, Description
body Array of Strings and Objects
Contains the text and the gap objects.
Gap Object Data Type, Description
type "gap", String
solutions Array of String
Contains the solutions of a gap. Must contain at least one element.
item String, the "number" (alphanumeric) of the gap. Example "a"
instruction String,
hint String,
isCaseSensitive boolean, defines if solutions are case sensitive. Default true.
example String, bitmark--
Example solution
Cloze does not allow line breaks in example solutions
isExample boolean
For this gap, the solution is already filled in for the user. If several solutions are provided, the first one is taken.
If the example property does not contain an empty string. This string is used instead of the solution.

Resources

This bit supports resources.

.cloze-instruction-grouped

Status: Release Candidate v1

Please see cloze for the documentation of all tags. This section contains the additional tags only.

All instructions [!...] of the cloze are collected and displayed together as a help for the user.

[.cloze-instruction-grouped] Der Fußball [_erfreut][!erfreuen][@example] sich nicht nur in Deutschland besonderer Beliebtheit, er [_steht][!stehen] auch in vielen anderen Ländern in der Rangliste der beliebtesten Sportarten ganz oben. ...

Grouped

Flags                                                       Description
[@countInstructions] boolean
Instructions will be counted and the count will be displayed by the client. Default is false.

Grouped with Count

.cloze-solution-grouped

All solutions [_...] of the cloze are collected and displayed together as a help for the user.

[.cloze-solution-grouped] Der Fußball [_erfreut] sich nicht nur in Deutschland besonderer Beliebtheit, er [_steht] auch in vielen anderen Ländern in der Rangliste der beliebtesten Sportarten ganz oben. ...

Solution Grouped

Please see cloze for the documentation of all tags.

[@countSolutions: true]

Soluttions will be counted and have to be displayed by the client (in the grouped solutions)

[@additionalSolutions: This is another potential solution, which is not part of any quiz]

Sometimes you need to provide more potential solutions for a quiz than actually exist. For example, all quizzes have the solution true, but ylu need to provide the potential solution false for the quiz to make sense.

.multiple-choice, .multiple-choice-1

Status: Release Candidate v1

Defines a multiple choice quiz.

A multiple choice quiz gives you multiple potential answers to select from, but only one is correct.

In german speaking countries, this is called a "single choice quiz".

Please see multiple-response for quizzes with more than one answer.

Note

Multiple choice quizzes are sometimes used as true/false quizzes. There is no problem with that. However, please be aware that bitmark JSON defines a true/false quiz for this.

[.multiple-choice-1]
[!What color is milk?]
[?Cows produce milk.]
[+white]
[-red]
[-blue]
{
    "markup": "[.multiple-choice-1]\n[!What color is milk?]\n[+white]\n[-red]\n[-blue]",
    "bit": {
        "type": "multiple-choice-1",
        "format": "text",
        "item": [],
        "instruction": [ { "type": "text", "text": "What color is milk?" } ],
        "body": [],
        "choices": [
            { "choice": "white", "item": [], "isCorrect": true },
            { "choice": "red", "item": [], "isCorrect" : false },
            { "choice": "blue", "item": [], "isCorrect" : false }
        ],
        "hint": [ { "type": "text", "text": "Cows produce milk." } ],
        "isExample": false,
        "example": []
    }
}

Multiple Choice

[.multiple-choice]
[@id:249506]
[%A1]
[!What color do the following beverages have?]
Be careful and think twice.
===
[!Milk]
[+white]
[-red]
[-blue]
===
[!Red Wine]
[+red]
[-white][%12]
[-green][@example]
===
{
    "markup": "[.multiple-choice]\n[!What color do the following beverages have?]\n===\n[!Milk]\n[+white]\n[-red]\n[-blue]\n===\n[!Red Wine]\n[+red]\n[-white]\n[-green]\n===",
    "bit": {
        "type": "multiple-choice",
        "format": "text",
        "item": [ { "type": "text", "text": "A1" } ],
        "instruction": [ { "type": "text", "text": "What color do the following beverages have?" } ],
        "body": [ { "type": "text", "text": "Be careful and think twice." } ],
        "footer": [ { "type": "text", "text": "That's it!" } ],
        "hint": [],
        "quizzes": [
            {
                "item": [ { "type": "text", "text": "a" } ],
                "instruction": [ { "type": "text", "text": "Milk" } ],
                "choices": [
                    { "choice": "white", "instruction": [], "hint": [], "item": [ { "type": "text", "text": "1" } ], "isCorrect": true },
                    { "choice": "red", "instruction": [], "hint": [], "item": [ { "type": "text", "text": "2" } ], "isCorrect": false },
                    { "choice": "blue", "instruction": [], "hint": [], "item": [ { "type": "text", "text": "3" } ], "isCorrect": false } 
                ],
                "hint": [],
                "isExample": true,
                "example": []
            },
            {
                "item": [ { "type": "text", "text": "b" } ],
                "instruction": [ { "type": "text", "text": "Red Wine" } ],
                "choices": [
                    { "choice": "red", "instruction": [], "hint": [], "item": [ { "type": "text", "text": "1" } ], "isCorrect": true },
                    { "choice": "white", "instruction": [], "hint": [], "item": [ { "type": "text", "text": "2" } ], "isCorrect": false },
                    { "choice": "green", "instruction": [], "hint": [], "item": [ { "type": "text", "text": "3" } ], "isCorrect": false }
                ],
                "hint": [],
                "isExample": false,
                "example": []
            }
        ],
    },
}

.multiple-response, .multiple-response-1

Status: Release Candidate v1

Defines a multiple response quiz.

A multiple response quiz gives you multiple potential answers to select from.

Please see multiple-choice for quizzes with only one answer.

[.multiple-response-1]
[!What colours can cows have in Switzerland?]
[+brown]
[+purple]
[-blue]
[-green]
{
    "markup": "[.multiple-response-1]\n[!What colours can cows have in Switzerland?]\n[+brown]\n[+purple]\n[-blue]\n[-green]",
    "bit": {
        "type": "multiple-response-1",
        "format": "text",
        "item": [],
        "instruction": [ { "type": "text", "text": "What colours can cows have in Switzerland?" } ],
        "body": [],
        "hint": [],
        "responses": [
            { "response": "brown", "item": [], "isCorrect": true },
            { "response": "purple", "item": [], "isCorrect": true },
            { "response": "blue", "item": [], "isCorrect": false },
            { "response": "green", "item": [], "isCorrect": false }
        ],
        "isExample": false,
        "example": []
    }
}

Multiple Response

[.multiple-response]
[!What colors can animals have in Switzerland?]
===
[!What colours can cows have in Switzerland?]
[+brown]
[+purple][?In chocolate ads]
[-blue]
===
[!What colours can cats have in Switzerland?]
[+brown]
[+black]
[+blue]
[+green]
===
{
    "markup": "[.multiple-response]\n[!What colors can animals have in Switzerland?]\n...",
    "bit": {
        "type": "multiple-response",
        "format": "text",
        "item": [],
        "instruction": [ { "type": "text", "text": "What colors can animals have in Switzerland?" } ],
        "body": [],
        "footer": [],
        "hint": [],
        "quizzes": [
            {
                "item": [],
                "instruction": [ { "type": "text", "text": "What colours can cows have in Switzerland?" } ],
                "responses": [
                    { "response": "brown", "instruction": [], "hint": [], "item": [], "isCorrect": true },
                    { "response": "purple", "instruction": [], "hint": [ { "type": "text", "text": "In chocolate ads" } ], "item": [], "isCorrect": true },
                    { "response": "blue", "instruction": [], "hint": [], "item": [], "isCorrect": false } 
                ],
                "hint": [],
                "isExample": true,
                "example": []
            },
            {
                "item": [ { "type": "text", "text": "b" } ],
                "instruction": [ { "type": "text", "text": "What colours can cats have in Switzerland?" } ],
                "responses": [
                    { "response": "brown", "instruction": [], "hint": [], "item": [], "isCorrect": true },
                    { "response": "black", "instruction": [], "hint": [], "item": [], "isCorrect": true },
                    { "response": "blue", "instruction": [], "hint": [], "item": [], "isCorrect": true },
                    { "response": "green", "instruction": [], "hint": [], "item": [], "isCorrect": false }
                ],
                "hint": [],
                "isExample": false,
                "example": []
            }
        ],
    },
}

Note

In order to be able to distinguish between unselected and unprocessed answers in the evaluation, sometimes two boxes per question are used for "yes" and "no"". Please refer to true/false quiz

.multiple-choice-text

Status: Release Candidate v1

Defines a multiple choice quiz where the choices are embedded in a text.

[.multiple-choice-text:bitmark--]
The students ['complete][+d][-t][-s] the [+cloze][-cloth][-close] with the correct verb forms.
{
    "markup": "[.multiple-choice-text:bitmark--]\nThe students ['complete][+d][-t][-s] the [+cloze][-cloth][-close] with the correct verb forms.",
    "bit": {
        "type": "multiple-choice-text",
        "format": "bitmark--",
        "body": [
            { "type": "text", "text": "The students " },
            {
                "type": "multiple-choice",
                "choices": [
                    { "choice": "d", "instruction": [], "hint": [], "isCorrect": true },
                    { "choice": "t", "instruction": [], "hint": [], "isCorrect": false },
                    { "choice": "s", "instruction": [], "hint": [], "isCorrect": false }
                ],
                "item": [],
                "prefix": [ { "type": "text", "text": "complete" } ],
                "postfix": [],
                "hint": [],
                "instruction": [],
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": " the " },
            {
                "type": "multiple-choice",
                "choices": [
                    { "choice": "cloze", "instruction": [], "hint": [], "isCorrect": true },
                    { "choice": "cloth", "instruction": [], "hint": [], "isCorrect": false },
                    { "choice": "close", "instruction": [], "hint": [], "isCorrect": false }
                ],
                "item": [],
                "prefix": [],
                "postfix": [],
                "hint": [],
                "instruction": [],
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": " with the correct verb forms." }
        ],
        ...
    },
}

Multiple Choice Text

.cloze-and-multiple-choice-text

Status: Release Candidate v1

This is the combination of cloze and multiple choice text.

[.cloze-and-multiple-choice-text]
The students completed the [_cloze] with the correct verb [+forms][-formats].
{
    "markup": "[.cloze-and-multiple-choice-text]\nThe students completed the [_cloze] with the correct verb [+forms][-formats].",
    "bit": {
        "type": "cloze-and-multiple-choice-text",
        "format": "text",
        "body": [
            { "type": "text", "text": "The students completed the " },
            {
                "type": "cloze",
                "solutions": ["cloze"],
                "item": [],
                "instruction": [],
                "hint": [],
                "isCaseSensitive": true,
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": " with the correct verb " },
            {
                "type": "multiple-choice",
                "choices": [
                    { "choice": "forms", "instruction": [], "hint": [], "isCorrect": true },
                    { "choice": "formats", "instruction": [], "hint": [], "isCorrect": false }
                ],
                "item": [],
                "prefix": [],
                "postfix": [],
                "instruction": [],
                "hint": [],
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": "." }
        ],
        ...
    },
}

Cloze And Multiple Choice Text

Please refer to the description of cloze and multiple choice text for more details.

.highlight-text

Status: Draft v1

highlight-text allows for highlight groups without any correct answer (nothing to highlight). However, at least one highlight per whole quiz is mandatory.

[.highlight-text]
She went to the [+mall][-sea] and ate [+breakfast][-fish][-trees].
{
    "markup": "[.highlight-text]\nShe went to the [+mall][-sea] and ate [+breakfast][-fish][-trees].",
    "bit": {
        "type": "highlight-text",
        "format": "text",
        "body": [
            { "type": "text", "text": "She went to the " },
            {
                "type": "highlight",
                "texts": [
                    { "text": "mall", "instruction": [], "hint": [], "isHighlighted": true },
                    { "text": "sea", "instruction": [], "hint": [], "isHighlighted": false }
                ],
                "item": [],
                "hint": [],
                "instruction": [],
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": " and ate " },
            {
                "type": "highlight",
                "texts": [
                    { "text": "breakfast", "instruction": [], "hint": [], "isHighlighted": true },
                    { "text": "fish", "instruction": [], "hint": [], "isHighlighted": false },
                    { "text": "trees", "instruction": [], "hint": [], "isHighlighted": false }
                ],
                "item": [],
                "hint": [],
                "instruction": [],
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": "." }
        ],
        ...
    },
    ...
}
{
    "$schema": "https://json-schema.org/draft-07/schema",
    "$id": "https://getmorebrain.com/bitmark-schemas/v2/highlight-text.json",
    "title": "bitmark .highlight-text schema",
    "description": "Schema for the bitmark .highlight-text bit.",
    "required": [
        "bit"
    ],
    ...
    "additionalProperties": true
}

.essay

Status: Draft v1

Describes an essay.

[.essay]
[!What is an essay?]
{
    "markup": "[.essay]\n[!What is an essay?]",
    "bit": {
        "type": "essay",
        "format": "text",
        "instruction": [ { "type": "text", "text": "What is an essay?" } ],
        "partialAnswer": [],
        "body": [],
        "item": [],
        "hint": [],
        "sampleSolution": [],
        "isExample": false,
        "example": []
    },
    ...
}

Essay

Essay with an image.

[.essay&image]
[!Beschreiben Sie die Grafik. Was haben Sie erwartet, was hat Sie überrascht?]
[&image:https://cdn.bitmark.cloud/publishers/3/books/26363/statistik.jpg]

Essay.Image

Essay with full featured bitmark content

[.essay&article]
[!Fassen Sie den Text kurz mit eigenen Worten zusammen.]

[&article:
**Erfolg um jeden Preis**

Immer, wenn ein Dopingfall durch die Medien geht, melden sich auch die Moralisten zu Wort.

(&image:https://cdn.bitmark.json.education/publishers/3/books/26363/erfolg.jpg)

Was sind dagegen ein paar anabole Steroide?
]

Essay.Bitmark

Essay with an image and sample solution (in bitmark--) and some text in the body.

[.essay:bitmark--&image]
[!Describe the graphic. What did you expect, what surprised you?]
[@partialAnswer:This is a ...]
[&image:https://cdn.bitmark.cloud/publishers/3/books/26363/statistics_en.jpg]
[@sampleSolution:
This is a **really** nice graphic!
It really surprised me, that the chosen color of the graph is blue.
]

Essay.Image Sample Solution

bitmark Description
[@psampleSolution:...] Sample Solution
[@partialAnswer:...] Partial Answer
This is the start of a user input

.interview

Describes a interview.

An interview is like a sequence of several short essays.

Markup

[.interview&audio]
[!Sie hören jetzt einen Text zum Thema __Einkommen von Spitzensportlern.__ Hören Sie den Text zweimal und ergänzen Sie die Informationen zu den angegebenen Punkten.]
[&audio:https://cdn.bitmark.cloud/publishers/3/books/26363/einkommen_spitzensportler.mp3]

===
zwei Leben der Sportler
===
durchschnittliches monatliches Bruttoeinkommen von Spitzensportlern[@shortAnswer]
===
Zeit für Berufstätigkeit
===
[.interview]
[!This is a job interview.]

===
What was your last job?[@example:I worked at Miller's as an internal lawyer.]
===
Why did you quit your last job?
===
How much did you earn in your last job?
===

Interview

[.interview]
[!This is a job interview.]

===
What was your last job?[!Please answer in one short sentence]
===
Why did you quit your last job?[!Please answer in one short sentence]
===
How much did you earn in your last job?[!Please use Euro as a currency][@shortAnswer]
===

Interview

[.interview]
[!This is a job interview with an example, model answers and line "numbers".]

===
[%a)]What was your last job?[!Please answer in one short sentence]
[@sampleSolution:I worked as a project manager.][@example:I worked as a project manager.][@shortAnswer]
===
[%b)]Why did you quit your last job?[!Please answer in several short sentences]
[@sampleSolution:I was mobbed by my coworkers.]
===
[%c)]How much did you earn in your last job?[!Please use Euro as a currency][@shortAnswer]
[@sampleSolution:EUR 3'000 per month.]
===
{
    "markup": "[.interview]\n[!This is a job interview with an example, model answers and line \"numbers\".]\n\n===\n[%a)]What was your last job?[!Please answer in one short sentence]...",
    "bit": {
        "type": "interview",
        "format": "text",
        "item": [],
        "instruction": [ { "type": "text", "text": "This is a job interview with an example, model answers and line \"numbers\"." } ],
        "body": [],
        "footer": [],
        "hint": [],
        "questions": [
            {
                "item": [ { "type": "text", "text": "a)" } ],
                "question": [ { "type": "text", "text": "What was your last job?" } ],
                "instruction": [ { "type": "text", "text": "Please answer in one short sentence" } ],
                "hint": [],
                "isExample": true,
                "example": [ { "type": "text", "text": "I worked as a project manager." } ],
                "sampleSolution": [ { "type": "text", "text": "I worked as a project manager." } ],
                "partialAnswer": [],
                "isShortAnswer": true
            },
            {
                "item": [ { "type": "text", "text": "b)" } ],
                "question": [ { "type": "text", "text": "Why did you quit your last job?" } ],
                "instruction": [ { "type": "text", "text": "Please answer in several short sentences" } ],
                "hint": [],
                "isExample": false,
                "example": [],
                "sampleSolution": [ { "type": "text", "text": "I was mobbed by my coworkers." } ],
                "partialAnswer": [],
                "isShortAnswer": false
            },
            {
                "item": [ { "type": "text", "text": "a)" } ],
                "question": [ { "type": "text", "text": "What was your last job?" } ],
                "instruction": [ { "type": "text", "text": "Please use Euro as a currency" } ],
                "hint": [],
                "isExample": false,
                "example": [],
                "sampleSolution": [ { "type": "text", "text": "EUR 3'000 per month." } ],
                "partialAnswer": [],
                "isShortAnswer": true
            }
        ]
    },
}

.interview-instruction-grouped

Describes a interview. An interview is like a sequence of several short essays.

All instructions [!...] are grouped in the header instead of displayed individually.

Markup

[.interview-instruction-grouped]
[!Please rewrite the following sentences by using one of the verbs above.]

===
Ich habe den Mörder sofort erkannt.[!identifizieren]
===
Der Umsatz hat in den letzten zehn Jahren stark zugenommen.[!steigern]
===
...
===
...

Interview with Grouped Instructions

Flags                                                       Description
[@countInstructions] boolean
Instructions will be counted and the count will be displayed by the client. Default is false.

Interview with Grouped Instructions with Count

.match, .match-all, .match-reverse, .match-all-reverse

Describes a match quiz.

For .match, one of the values (solutions) must match. For .match-all, all values must match.

Markup

Simple text match quiz with titles and example

[.match]
[!Wie heißen die passenden Nomen?]

===
[#Adjektiv]
==
[#Nomen]
===
talentiert[@example]
==
das Talent
===
ausdauernd
==
die Ausdauer
===
fleißig
==
der Fleiß
===
kämpferisch
==
der Kampf
===

.match

Status: Release Candidate v1

match

match-reverse, match-all-reverse

Status: Release Candidate v1

Key is displayed at the end. Order of key and value do not change in the bitmark description. Key always comes first.

match-reverse

Simple text match quiz with titles and example

[.match]
[%A2a]
[!Wie heißen die passenden Nomen?]

===
[#Adjektiv]
==
[#Nomen]
===
[%a]talentiert[@example]
==
das Talent
===
[%b]ausdauernd
==
die Ausdauer
===
[%c]fleißig
==
der Fleiß
--
der Fleiss
===
[%d]kämpferisch
==
der Kampf
===
{
    "type": "match",
    "format": "text",
    "item": [ { "type": "text", "text": "A2a" } ],
    "lead": [],
    "instruction": [ { "type": "text", "text": "Wie heißen die passenden Nomen?" } ],
    "hint": [],

    "heading": {
        "forKeys": [ { "type": "text", "text": "Adjektiv" } ],
        "forValues": [ { "type": "text", "text": "Nomen" } ],
    },

    "pairs": [
        ...
        {
            "key": "ausdauernd",
            "values": ["die Ausdauer"],
            "item": [ { "type": "text", "text": "b" } ],
            "isCaseSensitive": true,
            "hint": [],
            "isExample": false,
            "example": [],
            "isLongAnswer": false,
        },
        {
            "key": "fleißig",
            "values": ["der Fleiß", "der Fleiss"],
            "item": [ { "type": "text", "text": "c" } ],
            "isCaseSensitive": true,
            "hint": [],
            "isExample": false,
            "example": [],
            "isLongAnswer": false,
        },
        ...
    ]
}

Simple text match quiz with alternative solutions

[.match]
[!Please translate.]

===
Fussball
==
football
--
soccer
===

.match-matrix

Status: Release Candidate v1

Describes a match quiz with multiple values per key.

Markup

[.match-matrix]
[!Bring the german verbs into the correct tense.]

===
[#Verb]
==
[#Future, 1st Person, Singular]
==
[#Past, 3rd Person, Plural]
===
gehen
==
ich werde gehen
==
sie gingen
===
sprechen
==
ich werde sprechen
==
sie sprachen
===

Responsive representation in desktop browser

match-matrix

Responsive representation on smart phone

match-matrix-mobile

{
    "type": "match-matrix",
    "format": "text",
    "item": [],
    "lead": [],
    "instruction": [ { "type": "text", "text": "Bring the german verbs into the correct tense." } ],
    "hint": [],

    "heading": {
        "forKeys": [ { "type": "text", "text": "Verb" } ],
        "forValues": [ [ { "type": "text", "text": "Future, 1st Person, Singular" } ], [ { "type": "text", "text": "Past, 3rd Person, Plural" } ] ],
    },

    "matrix": [
        ...
        {
            "key": "gehen",
            "cells": [
                {
                    "item": [],
                    "instruction": [],
                    "values": ["ich werde gehen"],
                    "isCaseSensitive": true,
                    "hint": [],
                    "isExample": false,
                    "example": []
                },
                {
                    "item": [],
                    "instruction": [],
                    "values": ["sie gingen"],
                    "isCaseSensitive": true,
                    "hint": [],
                    "isExample": false,
                    "example": []
                },
            ],
            "item": [],
            "isLongAnswer": false,
            "instruction": [],
            "hint": []
        },
        {
            "key": "sprechen",
            "cells": [
                {
                    "item": [],
                    "instruction": [],
                    "values": ["ich werde sprechen"],
                    "isCaseSensitive": true,
                    "hint": [],
                    "isExample": false,
                    "example": []
                },
                {
                    "item": [],
                    "instruction": [],
                    "values": ["sie sprachen"],
                    "isCaseSensitive": true,
                    "hint": [],
                    "isExample": false,
                    "example": []
                },
            ],
            "item": [],
            "isLongAnswer": false,
            "instruction": [],
            "hint": []
        },
        ...
    ]
}

Match Matrix with instructions and item properties

[.match-matrix]
[!Bring the german verbs into the correct tense.]

===
[#Verb]
==
[#Future, Singular]
==
[#Past, Plural]
===
gehen
==
[!ich] werde gehen [%a1]
==
[!sie] gingen [%a2]
===
sprechen
==
[!ich] werde sprechen  [%b1]
==
[!sie] sprachen  [%b2]
===

Responsive representation in desktop browser

match-matrix

.match-picture

Status: Release Candidate v1

Describes a match quiz where you match images to text.

Markup

[.match-picture]
[!Name the animals on the pictures.]

===
[&image:https://cdn.bitmark.cloud/books/com.firstpub.book98789/animals/cat.jpg]
==
cat
===
[&image:https://cdn.bitmark.cloud/books/com.firstpub.book98789/animals/cat.jpg]
==
tiger
===
{
    "type": "match-picture",
    "format": "text",
    "item": [],
    "lead": [],
    "instruction": [ { "type": "text", "text": "Name the animals on the pictures." } ],
    "hint": [],

    "pairs": [
        ...
        {
            "keyImage": {
                    "width": 200,
                    "height": 150,
                    "src":"https://cdn.bitmark.cloud/books/com.firstpub.book98789/animals/cat.jpg",
                    "src1x":"https://cdn.bitmark.cloud/books/com.firstpub.book98789/animals/cat.jpg"
            },
            "values": ["cat"],
            "item": [],
            "instruction": [],
            "isCaseSensitive": true,
            "hint": [],
            "isExample": false,
            "example": [],
            "isLongAnswer": false,
        },
        {
            "keyImage": {
                    "width": 200,
                    "height": 150,
                    "src":"https://cdn.bitmark.cloud/books/com.firstpub.book98789/animals/tiger.jpg",
                    "src1x":"https://cdn.bitmark.cloud/books/com.firstpub.book98789/animals/tiger.jpg"
            },
            "values": ["tiger"],
            "item": [],
            "instruction": [],
            "isCaseSensitive": true,
            "hint": [],
            "isExample": false,
            "example": [],
            "isLongAnswer": false,
        },
        ...
    ]
}

.match-audio

Status: Draft

Describes a match quiz where you match audio to text.

Markup

[.match-audio]
[Listen to the audio and name the animal you are hearing.]
===
[&audio:https://cdn.bitmark.cloud/publishers/3/books/26363/miau.mp3]
==
cat
===
{
    "type": "match-audio",
    "format": "bitmark--",
    "item": [],
    "lead": [],
    "instruction": [ { "type": "text", "text": "Listen to the audio and name the animal you are hearing." } ],
    "hint": [],

    "pairs": [
        {
            "keyAudio": {
                "format": "mp3",
                "src": "https://cdn.bitmark.cloud/publishers/3/books/26363/miau.mp3"
            },
            "values": ["cat"],
            "item": [],
            "instruction": [],
            "isCaseSensitive": true,
            "hint": [],
            "isExample": false,
            "example": [],
            "isLongAnswer": false,
        }
    ]
}

.match-solution-grouped

Describes a match quiz with grouped solutions.

Markup

match-solution-grouped quiz with titles

[.match-solution-grouped]
[!Wie heißen die passenden Nomen?]

===
[#Adjektiv]
==
[#Nomen]
===
talentiert
==
das Talent
===
ausdauernd
==
die Ausdauer
===
fleißig
==
der Fleiß
===
kämpferisch
==
der Kampf
===

Match Solution Grouped

match-solution-grouped supports multiple solutions.

.true-false-1

Status: Draft v1

Describes a super simple true/false quiz. Please also see true-false for a more powerful format.

[.true-false-1]
[+Ein Elefant ist grösser als eine Maus.]
{
    "markup": "[.true-false-1]\n[+Ein Elefant ist grösser als eine Maus.]",
    "bit": {
        "type": ".true-false-1",
        "format": "text",
        "item": [],
        "lead": [],
        "instruction": [],
        "hint": [],
        "statement": [ { "type": "text", "text": "Ein Elefant ist grösser als eine Maus." } ],
        "isCorrect": true,
        "isExample": false,
    ...
    }
}
<!-- DITA 1.3 True - False Interaction -->
<lcTrueFalse id="tf1">
    <title></title>
    <lcQuestion>Ein Elefant ist grösser als eine Maus.</lcQuestion>
    <lcAnswerOptionGroup>
        <lcAnswerOption>
            <lcAnswerContent>True</lcAnswerContent>
            <lcCorrectResponse/>
        </lcAnswerOption>
        <lcAnswerOption>
            <lcAnswerContent>False</lcAnswerContent>
        </lcAnswerOption>
    </lcAnswerOptionGroup>
    <lcFeedbackIncorrect>Nein, ein Elefant ist grösser als eine Maus.</lcFeedbackIncorrect>
    <lcFeedbackCorrect>Ja, ein Elefant ist grösser als eine Maus.</lcFeedbackCorrect>
</lcTrueFalse>

.true-false

Status: Draft v1

Describes a true/false quiz. It allows for several true-false quizzes in a bit and provides support for alternative labels for the values true and false. Please also see true-false-1 for a simpler format.

[.true-false]
[@labelTrue:rather yes][@labelFalse:rather no]
===
[+A house is bigger than a car.]
===
[+A tiger is bigger than a cat.]
===
[-A cow is bigger than a dog.]
===
{
    "markup": "...",
    "bit": {
        "type": "true-false",
        "format": "text",
        "item": [],
        "lead": [],
        "instruction": [],
        "hint": [],
        "hint": [],
        "labelTrue": [ { "type": "text", "text": "rather yes" } ],
        "labelFalse": [ { "type": "text", "text": "rather no" } ],
        "statements": [
            {
                "statement": [ { "type": "text", "text": "A house is bigger than a car." } ],
                "isCorrect": true,
                "isExample": false
            },
            {
                "statement": [ { "type": "text", "text": "A tiger is bigger than a cat." } ],
                "isCorrect": true,
                "isExample": false
            },
            {
                "statement": [ { "type": "text", "text": "A cow is bigger than a dog." } ],
                "isCorrect": true,
                "isExample": false
            }
        ],
        ...
    },
    ...
}

True False

Multiple true/false statements and an instruction

[.true-false]
[!What colors can cows have in Switzerland?]
===
[+brown]
===
[+purple, but only in chocolate ads]
===
[-blue]
===
[-green]
===

Simple true/false image quiz

[.true-false&image]
[&image:https://cdn.bitmark.cloud/cat.jpg]
===
[-On the picture, you see a mouse.]
===
[+There is a cat on the picture.]
===

True False.Image

Applications must translate the values true and false into the language of the user interface when displaying.

.sequence

Status: Draft v1

Describes a sequence quiz.

[.sequence]
===
Ein Elefant
--
ist
--
grösser als
--
eine Maus.
===
{
    "markup": "[.sequence]\n===\nEin Elefant\n--\nist\n--\ngrösser als\n--\neine Maus.\n===",
    "bit": {
        "type": "sequence",
        "format": "text",
        "instruction": [],
        "body": [],
        "elements": [
            [ { "type": "text", "text": "Ein Elefant" } ],
            [ { "type": "text", "text": "ist" } ],
            [ { "type": "text", "text": "grösser als" } ],
            [ { "type": "text", "text": "eine Maus." } ]
        ],
        "item": [],
        "hint": [],
        "isExample": false,
        "example": []
    },
    ...
}

Sequence quiz with bitmark--

[.sequence:bitmark--]
===
**zu oberst**
Dach
--
**oben**
3. Stock
--
**in der Mitte**
2. Stock
--
**in der Mitte**
1. Stock
--
**unten**
Erdgeschoss
--
**zu unterst**
Keller
===
{
    "markup": "[.sequence:bitmark--]\n===\n**zu oberst**\nDach\n--\n**oben**\n3. Stock\n--\n**in der Mitte**\n2. Stock\n--\n**in der Mitte**\n1. Stock\n--\n**unten**\nErdgeschoss\n--\n**zu unterst**\nKeller\n===",
    "bit": {
        "type": "sequence",
        "format": "bitmark--",
        "instruction": [],
        "body": [],
        "elements": [
            [ { "marks": [ { "type": "bold" } ], "text": "zu oberst", "type": "text" }, { "text": "\n", "type": "text" }, { "text": "Dach", "type": "text" } ],
            [ { "marks": [ { "type": "bold" } ], "text": "oben", "type": "text" }, { "text": "\n", "type": "text" }, { "text": "3. Stock", "type": "text" } ],
            [ { "marks": [ { "type": "bold" } ], "text": "in der Mitte", "type": "text" }, { "text": "\n", "type": "text" }, { "text": "2. Stock", "type": "text" } ],
            [ { "marks": [ { "type": "bold" } ], "text": "in der Mitte", "type": "text" }, { "text": "\n", "type": "text" }, { "text": "1. Stock", "type": "text" } ],
            [ { "marks": [ { "type": "bold" } ], "text": "unten", "type": "text" }, { "text": "\n", "type": "text" }, { "text": "nErdgeschoss", "type": "text" } ],
            [ { "marks": [ { "type": "bold" } ], "text": "zu unterst*", "type": "text" }, { "text": "\n", "type": "text" }, { "text": "nKeller", "type": "text" } ]
        ],
        "item": [],
        "hint": [],
        "isExample": false,
        "example": []
    },
    ...
}

.correction

Correction exercise

Markup

[.correction]
[!Please correct the following text.]

[-This Text meight has some speling and grammar mistakes.]

Correction

Correction with solution

[.correction]
[!Please correct the following text.]

[-This Text meight has some speling and grammar mistakes.]
[+This Text might have some spelling and grammar mistakes.]

Correction.Solution

Punctuation quiz

[.correction]
[!Please enter the punctuation marks (,.!?"").]

[-Yeah she shouted]
[+"Yeah!", she shouted.]

Capitalization quiz

[.correction]
[!Please correct the upper and lower case..]

[-in der Deutschen sprache spielt die Gross- und kleinschreibung eine Grosse Rolle.]
[+In der deutschen Sprache spielt die Gross- und Kleinschreibung eine grosse Rolle.]

.mark

Mark exercise.

Markup

[.mark]
[!Please mark all ==verbs==(=blue) and ==nouns==(=red).]

When Diaz returned and seated himself to play the Berceuse, I saw that he could look at me without turning his head.

Mark

Mark exercise with solution

[.mark]
[!Please mark all ==verbs==(=blue) and ==nouns==(=red).]

When ==Diaz==(=red) ==returned==(=blue) and ==seated==(=blue) himself to ==play==(=blue) the ==Berceuse==(=red), I ==saw==(=blue) that he ==could==(=blue) ==look==(=blue) at me without ==turning==(=blue) his ==head==(=red).

Mark.Solution

bitmark JSON

{
    "markup": "[.mark]\n[!Please mark all ==verbs==(=blue) and ==nouns==(=red).]\n\nWhen ==Diaz==(=red) ==returned==(=blue) and ==seated==(=blue) himself to ==play==(=blue) the ==Berceuse==(=red), I ==saw==(=blue) that he ==could==(=blue) ==look==(=blue) at me without ==turning==(=blue) his ==head==(=red).",
    "bit": {
        "type": "mark",
        "format": "text",
        "item": [],
        "lead": [],
        "instruction": [ { "type": "text", "text": "Please mark all ==verbs==(blue)== and ==nouns==(red)==." } ],
        "hint": [],
        "body": [
            { "type": "text", "text": "When " },
            {
                "type": "mark",
                "text": "Diaz",
                "color": "red",
                "item": [],
                "instruction": [],
                "hint": [],
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": " " },
            {
                "type": "mark",
                "text": "returned",
                "color": "blue",
                "item": [],
                "instruction": [],
                "hint": [],
                "isExample": false,
                "example": []
            },
            { "type": "text", "text": " and " },
        ...
        ],
        ...
    },
    ...
}

Please note, that mark quizzes support marks in the instruction and hint as well.

.document-upload

Markup

[.document-upload:mp3]
[!Please upload your favorite song (as mp3-file).]
Do you like music?

Document Upload

.take-picture

Markup

[.take-picture]
[!Take a picture of your art work.]

Take Picture

.record-audio

Markup

[.record-audio]
[!Say "hello"]

Record

.preparation-note

Markup

[.preparation-note]
[!Prepare to discuss this question in the next session. Take some notes to help you.]
Do you like music?

Preparation

.assignment

Markup

[.assignment]
[!Read the following text.]
Once upon a time...

Assignment is very close to an article. The difference is, that this is a "quiz" and therefore has an instruction property. The distinction is important for display, sharing, ...

.flashcard-1, .flashcard

Flashcards contain one question ("front side" of the card) and one or more answers ("back side").

.flashcard-1 describes simple text only flashcards.

.flashcard adds support for pictures (on both sides) and instructions to describe optional details.

Markup

Simple Flashcard

[.flashcard-1]
====
date
--
A sweet, dark brown oval fruit containing a hard stone, usually eaten dried.

Flashcard with several alternative answers

[.flashcard-1]
====
date
--
The day of the month or year as specified by a number.
++
A social or romantic appointment or engagement.
++
A sweet, dark brown oval fruit containing a hard stone, usually eaten dried.
~~~~
Optional Footer

Flashcard with several alternative answers and pictures for some of the answers

[.flashcard]
Some body
====
date
--
The day of the month or year as specified by a number.
[&image:https://cdn.bitmark.cloud/pictures/calendar.jpg]
++
A social or romantic appointment or engagement.
++
A sweet, dark brown oval fruit containing a hard stone, usually eaten dried.
[&image:https://cdn.bitmark.cloud/pictures/fruit.jpg]
====
Question 2?
--
Answer 2
with second line
~~~~
Optional Footer

.vocabulary, .vocabulary-1

Vocabulary bits are like flash cards for language learning with 3 sides. The first one for the term ("question"), the second one for the definition ("answer(s)") and an optional third one for an example sentence.

Every side supports an image file and multiple audio files for sample pronunciations, both optional.

Instructions, phonetics (International Phonetic Alphabet (IPA)) and part of speech meta data are supported as well.

Markup

Vocabulary

[.vocabulary]
Basic english vocabulary
===
Woche
[&image:media/images/calendar_week.jpg]
[@language:de]
[@pos:noun]
[@gender:f]
[@number:singular]
==
week
[@language:en]
[@ipa:'wi:k]
[@pronunciation:media/audio/week.mp3]
==
Alex tells Sandra that his band will be playing in Kensington next week.
[@language:en]
===
feste Freundin
[@language:de]
[@pos:noun]
==
girlfriend [!m. boyfriend]
[@language:en]
[@ipa:ˈɡɜːlfrɛnd]
[@pronunciation:media/audio/girlfriend.mp3]
==
Alex tells Sandra that his band will be playing in Kensington next week.
[@language:en]
===

Vocabulary with several answers

[.vocabulary-1]
Seitenlinie
[@language:de]
==
side line
[@language:en-gb]
[@ipa:ˈsʌɪdlʌɪn]
[@pronunciation:media/audio/sideline_brit.mp3]
--
side line
[@language:en-us]
[@ipa:ˈssaɪdlaɪn]
[@pronunciation:media/audio/sideline_us.mp3]
--
touch line
[@language:en]
bitmark Tags                      JSON Properties, Description, Example
[@pos:...] pos, string (id)
Defines the part of speech (pos) of the term.
Supported values are adj (adjective), adp (adposition), adv (adverb), aux (auxiliary), cconj (coordinating conjunction), det (determiner), intj (interjection), noun (noun), num (numeral), part (particle), pron (pronoun), propn (proper noun), punct (punctuation), sconj (subordinating conjunction), sym (symbol), verb (verb) and x (other).
https://universaldependencies.org/u/pos/
[@number:...] number, string (id)
Defines the term's grammatical number.
Supported values are singular, plural and dual (used in languages, such as Arabic).
[@person:...] person, string (id)
Defines the term's grammatical person.
Supported values are 1st, 2nd, 3rd and reflexive.
[@gender:...] gender, string (id)
Defines the term's grammatical gender.
Supported values are f, m and n.
[@case:...] case, string (id)
Defines the term's grammatical case.
Supported values are accusative, adverbial, complementive, dative, genitive, instrumental, locative, nominative, oblique, partitive, prepositional, reflexive, relative and vocative.
[@tense:...] tense, string (id)
Defines the term's grammatical tense.
Supported values are conditional, future, imperfect, past, pluperfect and present.
[@lemma:...] lemma, string
Defines the word's lemma.
Example: ran [@lemma:run]
[@pronunciation:...][@speaker:...] pronunciation, string
speaker, string, optionally chained
URL of an audio file with a sample pronunciation and optional display name of the speaker/voice. Multiple pronunciation audio files are supported.
[@ipa:...] ipa string
Phonetics (International Phonetic Alphabet (IPA))