Introduction
This document describes the problem statement and design for enabling the FTB in the (New) QuestionSet Editor/Player.
JIRA Issue:
- IQ-245Getting issue details... STATUS
- IQ-273Getting issue details... STATUS
Background
As we are deprecating the ECML Question creation inside the Interactive content editor. So inQuiry would need to have a suitable substitute for all its used capabilities in the (New) Question set editor.
Here’s a list of features currently available and supported by the Interactive Content Editor for FTB Question.
There should be at least one blank
Blanks can be created by using square brackets [[ ]] to indicate words to be made blank in a sentence
Use square brackets [[ ]] to indicate blanks in the sentence. The words between [[ ]] will appear as blanks to students.
Example: 'The tree is [[tall]] and [[strong]].' The question will be created as: 'The tree is _______ and _______.' The correct answers will be 'tall' and 'strong'.
Multiple blanks are supported
Keyboard type:System (Android / OS)English (A-Z, not QWERTY)Numbers only26 keys configurable
Partial scoring
Unordered evaluation
Add Image and
Audioto Question or OptionAdd Math & Scientific Text (Formulae & Equation) to Question or Option
The keyboard type and audio will be not part of this design. We will plan these features for later releases.
Problem Statement
Currently, the QuestionSet editor does not support FTB Question creation.
How can inQuiry enable the same capabilities in the new QuestionSet Editor with the same features supported by the existing Interactive editor?
Design
In this Design, inQuiry will not be going to propose a new solution for enabling the FTB question. It will follow the same structure that is used by the interactive editor.
Creation workflow:
For creating the question, inQuiry will use the same question component used for other question types.
The creator can create the blanks using square brackets [[ ]] to indicate words to be made blank in a sentence.
The words between [[ ]] will appear as blanks in a player.
Example: 'The tree is [[tall]] and [[strong]].'
The question will be created as: 'The tree is _______ and _______.'
The correct answers will betall
andstrong
.
Answers will be extracted from the question using the regular expression (Ex.
/(?:^|)\[\[(.*?(?:\]\]|$)/g
)We will refer to the existing code to extract the answers from the questions. Here’s the link: https://github.com/Sunbird-Knowlg/sunbird-content-plugins/blob/c7c385c7c3848f4fdeabd4f889a46675ef608cf3/org.ekstep.questionunit.ftb-1.1/editor/controllers/ftb-controller.js#L124
The current QuestionSet editor has the capability to add the image and Math & Scientific Text. So We will use the same question component for the FTB question.
All media images will be stored the way we are storing the images for the others question type. For example:
// HTML <figure class="image"> <img src="/assets/public/content/assets/do_2136875639892623361238/download-1.jpg" alt="download (1)" data-asset-variable="do_2136875639892623361238"> </figure> <p>Who is this ?</p> // JSON BODY "media": [{ "id": "do_2136875639892623361238", "type": "image", "src": "/assets/public/content/assets/do_2136875639892623361238/download-1.jpg", "baseUrl": "https://dev.inquiry.sunbird.org" }]
(Note: The audio workflow will be not enabled in the new FTB workflow as the new question set editor does not have any audio feature support)
Consumption workflow:
When rendering the question on the player, consider the following:
The QuML Player will read the question properties and replace all blanks with a <input> tag as per the QuML spec format. Here’s a sample example:
The tree is <input type="text" data-text-interaction data-response-variable="response1"/> and <input type="text" data-text-interaction data-response-variable="response2" />
Ignoring of white-space and case sensitive will be considered by default at the player level.
The below points to be considered during the evaluation:
All user answers must be converted to lowercase and compared against each of the answer variations after converting them also to lowercase.
Consider removing white spaces from the user answer and the expected answer variations (trim and also remove embedded white spaces)
Partial scoring
A Scoring Logic can have the following values:
ALL
Full marks are assigned only when all the correct answers are entered.
PARTIAL
Partial scores are assigned of any one or more correct answers entered. The total marks of the question will be divided equally amongst all responses.
ALL | PARTIAL |
---|---|
Q: The color on the Indian flag are ____ , _____ , _____. A: The color on the Indian flag are saffron , white , _____. OR A: The color on the Indian flag are saffron, white, yellow. A:The color on the Indian flag are saffron , ______ , _____. OR A: The color on the Indian flag are white , ______ , _____. | Q: The color on the Indian flag are ____ , _____ , _____. A:The color on the Indian flag are saffron , _____ , _____. OR OR
A:The color on the Indian flag are saffron , white , ____. A.The color on the Indian flag are saffron , green , _____. A:The color on the Indian flag are green , white, _____.
|
The default value of Scoring Logic will be PARTIAL
Unordered evaluation
An Unordered evaluation Logic can have the following values:
TRUE
Answers entered in an unordered sequence will be considered correct answers.
FALSE
Answers entered in an unordered sequence will be not considered correct answers.
TRUE | FALSE |
---|---|
Q: The color on the Indian flag are ____ , _____ , _____. OR Q: The color on the Indian flag are ____ , _____ , _____. A: The color on the Indian flag are red , white , saffron.
| Q: The color on the Indian flag are ____ , _____ , _____. OR OR Q: The color on the Indian flag are ____ , _____ , _____. |
The default value of Unordered evaluation will be FALSE
FTB Data Model
Here’s the new schema structure for the FTB which is as per QuML compliance.
{ "editorState": { "options": [{ "answer": true, "value": { "body": "New Delhi", "value": 0 } }, { "answer": true, "value": { "body": "New York", "value": 1 } }], "question": "<figure class="image"><img src="/assets/public/content/assets/do_2136875567564144641233/download.jpg" alt="download" data-asset-variable="do_2136875567564144641233"></figure><figure class="image"><img src="/assets/public/content/assets/do_2136875567564144641233/download.jpg" alt="download" data-asset-variable="do_2136875567564144641233"></figure> <p>capital of india is [[New Delhi]]. and capital of USA is [[New York]]</p>" }, "body": "<figure class="image"><img src="/assets/public/content/assets/do_2136875567564144641233/download.jpg" alt="download" data-asset-variable="do_2136875567564144641233"></figure> <p>capital of india is [[New Delhi]]. and capital of USA is [[New York]]</p>", "interactions": { "response1": { "type": "text", "options": [{ "label": "New Delhi", "value": 0 }, { "label": "New York", "value": 1 } ] }, "validation": { "required": "Yes" } }, "responseDeclaration": { "response1": { "cardinality": "multiple", "type": "string", "correctResponse": { "value": [ "0", "1" ] }, "mapping": [ { "response": 0, "outcomes": { "score": 0.5 } }, { "response": 1, "outcomes": { "score": 0.5 } } ] } }, "outcomeDeclaration": { "maxScore": 1 }, "interactionTypes": [ "text" ], "media": [{ "id": "do_2136875567564144641233", "type": "image", "src": "/assets/public/content/assets/do_2136875567564144641233/download.jpg", "baseUrl": "https://dev.inquiry.sunbird.org" }], "name": "Fill In The Blanks", "mimeType": "application/vnd.sunbird.question", "objectType": "Question", "primaryCategory": "FTB Question", "qType": "FTB", "keyboardConfig": { "type": "Device", "customKeys": "" } }
Add Comment