Wikisoba project/JSON specification for version 2

From Wikimedia UK
Jump to navigation Jump to search
A newspaper This page is still a draft. Feel free to edit it, and use the talk page to discuss ideas and changes.
Remember to add categories and tell people where the page is so others can find it and chip in.

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.

Notes

  1. I.e. can be Unicode, but with certain characters escaped.
  2. I.e. ends in . or ? or !.