Wikisoba project/JSON specification for version 2
This is the working page for designing the JSON specification for Wikisoba Mark II.
Working assumption
The JSON for any one "slide" (adopting the term in Mark I) reads as
[configuration array, data array]
The configuration array starts by giving the "slide type", which would be 1 for questions, out of about five types in all, the other types being ways of including supporting material. The array will have about a dozen items, including some the legacy of Moodle export as in the JSON-GIFT sample.
Choice-cloze type
This is to be a versatile question type, including a number of typical multiple choice and missing text (cloze) formats. Its data array will look like
[S-array, T-array]
Here the S-array will be
[S(1), S(2), ..., S(N + 1)]
and the S(i) will be strings, possibly null, subject to JSON constraints[1] and the constraint that S(N + 1) is either null or ends in a terminating punctuation mark.[2]
The T-array will be
[T(1), T(2), ..., T(M)]
Example would be the case M = N, each T(j) is a single word, and the piece of text to reconstruct reads S(1) T(1) S(2) T(2) ... S(N) T(N) S(N + 1). Then the software should display boxes between the S(i), display the words T(j) below in a random order, and the user is supposed to drag the words into the boxes.
In general T(j) will be an array
[T(j) strings, T(j) annotations]
Here
T(j) strings
is an object, consisting of strings each of which is an acceptable answer in the place between S(j) and S(j + 1).
T(j) annotations
has to carry the other information in the question, namely any dummy answers,<re>I.e. false answers, in multiple choice terms.</ref> custom hints, responses, special reset information, special scoring information.
Five examples
Going beyond simply matching phrases into boxes (type A question), there are two types of added complexity, namely multiple choice, and colour coding. Colours can identify which answers relate to which box (i.e. calibrate the missing phrases a bit).
Type | Plain | Coloured |
---|---|---|
Matching | A | n/a |
Check box | B | C |
Complex | D | E |
The colouring option clearly should be operated by the question subtype field, but may also be a custom hint. The dummy answers should be listed in the annotations.
Traditional multiple choice
There is only one box, so N = 1 for multiple choice, and S(2) is null. Also M = 1. Only types B and D are relevant, and correspond to ...
Configuration list
This is a provisional listing of some fields that should occur in the configuration array, mostly with default values.
- (Slide type) 1
- (question type) choice/cloze
- (question subtype) A to E[3]
- (equality test) non-case sensitive equality of Unicode strings[4]
- (display type) graphical[5]
- (wikidata item) Use as a tag for topic area
- (response type) enabled[6]
- (hint type) go back | wikidata | custom
- (reset type) back to question start
- (scoring type) none
- (timing type) none
- Legacy fields: allow for some carried forward from Moodle
- Provenance and attribution of question