...
Code Block | ||
---|---|---|
| ||
"answer": { "description": "answer contains the text, graphics, media objects that describe the question’s content.", "oneOf": [ { "type": "string", "description": "Answer as HTML string when the answer is used in only one language." }, { "$ref": "#/definitions/i18nData" } ] } |
Attribute Name: interactionTypes
need to be added for interactive questions.
Ref: Question Definition
Current QuML spec (v1): Not Available
Proposed QuML spec (v1Sample Data for QuML (V1.1):
Code Block | ||
---|---|---|
| ||
"interactionTypesanswer": { "description": "interactionTypes contains the kind of interaction a interactive question can have", "type": "array", "items": { "type": "string", "enum": [ "choice", "text", "select", "date", "file-upload", "canvas" ] } } |
Attribute Name: media
spec need to be updated based on discussion (ref: [Design] - Making Question Set Editor and QuML Player QuML Compliant )
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"media": { "type": "object", "required": [ "id", "mediaType", "src" ], "properties": { "id"<p><span style=\"background-color:#ffffff;color:#202124;\">The challenges faced by India after independence were Partition led to arrival of 8 million people to India from Pakistan for whom homes and jobs had to be found. 500 princely states, each of which was ruled by a maharaja or a nawab, had to be convinced to join the new nation. Also, in the long run, the new nation had to adopt a political system which would best serve the hopes and expectations of its population.</span></p>" OR "answer":{ "en": "<p><span style=\"background-color:#ffffff;color:#202124;\">The challenges faced by India after independence were Partition led to arrival of 8 million people to India from Pakistan for whom homes and jobs had to be found. 500 princely states, each of which was ruled by a maharaja or a nawab, had to be convinced to join the new nation. Also, in the long run, the new nation had to adopt a political system which would best serve the hopes and expectations of its population.</span></p>" } |
...
Attribute Name: interactionTypes
need to be added for interactive questions.
Ref: Question Definition
Current QuML spec (v1): Not Available
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"interactionTypes": { "description": "interactionTypes contains the kind of interaction a interactive question can have", "type": "stringarray", "items": { }, "mimeTypetype": { "string", "enum": [ "image/pngchoice", "audio/mp3text", "video/mp4select", "video/webmdate", ]"file-upload", }, "canvas" "mediaType": { ] } "enum} |
Sample Data:
Code Block |
---|
"interactionTypes": [ "image", "audio", "choice"] |
...
Attribute Name: media
spec need to be updated based on discussion (ref: [Design] - Making Question Set Editor and QuML Player QuML Compliant )
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"media": { "type": "object", "videorequired": [ "id", ] }"mediaType", "src": { ], "typeproperties": "string" { }, "baseUrlid": { "type": "string" }, }, "additionalPropertiesmimeType": false{ } |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"media": { "typeenum": "object",[ "required": [ "idimage/png", "type "audio/mp3", "src" ]"video/mp4", "properties": { "idvideo/webm": { ] "type": "string" }, "mimeTypemediaType": { "enum": [ "image/png", "audio/mp3", "video/mp4", ] "video/webm" }, ] "src": { }, "type": { "enumstring": [ "image", }, "audiobaseUrl",: { "type": "videostring" ] } }, "srcadditionalProperties": {false } |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"media": { "type": "stringobject", },"required": [ "baseUrlid":, { "type", "typesrc": "string" ], } "properties": { }, "additionalPropertiesid": false{ } |
Attribute Name: responseDeclaration.mapping
the mapping spec need to be updated.
...
Code Block | ||
---|---|---|
| ||
"mappingDef": { "type": "array",string" }, "itemsmimeType": { "type": "object"string" }, "propertiestype": { "keyenum": {[ "$refapplication": "#/definitions/anyTypeDef", }"audio", "valuefont": {, "typeexample":, "number" }"image", "caseSensitivemessage": {, "type": "boolean"model", "defaultmultipart":, false } "text", } }, "properties": { "video" "key": { ] "$ref": "#/definitions/anyTypeDef" }, "valuesrc": { "type": "numberstring" }, "caseSensitivebaseUrl": { "type": "booleanstring", "default": false } }, "additionalProperties": falsetrue } |
Proposed Sample Data for QuML spec (v1V 1.1):
Code Block | ||
---|---|---|
| ||
"mappingDefmedia":[ { "typeid": "arraydo_2137498365362995201237", "itemstype": {"image", "typemimeType": "objectimage/jpeg", "propertiessrc": { "/assets/public/content/assets/do_2137498365362995201237/tea.jpeg", "responsebaseUrl": { "type": "number""https://dev.inquiry.sunbird.org" // any additional properties },goes here by implementation if needed. "outcomes": { } ] |
...
Attribute Name: responseDeclaration.mapping
the mapping spec need to be updated.
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"mappingDef": { "type": "objectarray", "items": { "propertiestype": {"object", "properties": { "scorekey": { "type$ref": "number#/definitions/anyTypeDef" }, } "value": { "type": "number" }, "additionalPropertiescaseSensitive": false{ } "type": "boolean", }, "additionalPropertiesdefault": false } } |
Attribute Name: interactions
In Case of multiple interaction types (e.g: choice & text), the implementation can have multiple variables for each interaction types (e.g: response1 for choice and response2 for text)
...
Code Block | ||
---|---|---|
| ||
"interactions } }, "properties": { "typekey": "array",{ "items": {"type$ref": "string"},#/definitions/anyTypeDef" "description": "List of interactions present in the question." } |
...
Code Block | ||
---|---|---|
| ||
"interactions": {}, "value": { "descriptiontype": "number"List of interactions present in the question."}, "typecaseSensitive": "object",{ "propertiestype": {"boolean", "validationdefault": {false } "type": "object" }, "additionalProperties": false "properties} |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"mappingDef": { "requiredtype": {"array", "items"type": "string"{ } "type": "object", }, "additionalPropertiesproperties": false{ } }, "additionalPropertiesvalue": { "$ref": "#/definitions/interactionsVariableDefanyTypeDef"}, } } "interactionsVariableDef": { "score": {"type": "objectnumber"}, "required": ["type", "options"], "propertiescaseSensitive": { "type": { "boolean", "default": false} "type": "string" }, "options": { "oneOfadditionalProperties": [false { } } |
...
Attribute Name: interactions
In Case of multiple interaction types (e.g: choice & text), the implementation can have multiple variables for each interaction types (e.g: response1 for choice and response2 for text)
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"interactions": { "$reftype": "#/definitions/optionsDef""array", "items": {"type": "string"}, "description": "List of interactions present in {the question." } |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"interactions": { "typedescription": "objectList of interactions present in the question.", "type": "object", "additionalPropertiesproperties": { "validation": { "$reftype": "#/definitions/optionsDefobject", "properties": { } "required": { } ] "type": "string" } } }, }, "additionalProperties": false } "optionsDef": { } "type": "array" }, "itemsadditionalProperties": { "type$ref": "object#/definitions/interactionsVariableDef", } "properties": { } "labelinteractionsVariableDef": { "type": "stringobject", "required": ["type", "options"], }, "properties": { "valuetype": { "type": "numberstring" }, } "options": { }, "additionalPropertiesoneOf": false[ { } } |
Open Questions:
1. Do we always have options array for all different types of interactions like date, select, canvas, file-upload?
Attribute Name: solutions
Current Solutions Spec is not covering internal data structure.
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"solutions": { "description$ref": "Solutions to the question."#/definitions/optionsDef" }, "oneOf": [ { { "type": "arrayobject", "itemsadditionalProperties": { "type$ref": "string#/definitions/optionsDef" }, } "description": "List of solutions without association to} any specific language", ] "minItems": 1 } }, "additionalProperties": false { } "optionsDef": { "type": "array", "items": { "$reftype": "#/definitions/i18nData" }, object", "descriptionproperties": "Solutions{ in different languages for multi-lingual questions.", "label": { "minItems "type": "string" 1 }, ] } |
...
Code Block | ||
---|---|---|
| ||
"solutions"value": { "description": "Solutions to the question.", "type": "oneOfnumber": [ { } "$ref": "#/definitions/solutionDef" }, { "type": "object", "additionalProperties": {false } "$ref": "#/definitions/solutionDef" } } |
Open Questions:
1. Do we always have options array for all different types of interactions like date, select, canvas, file-upload?
...
Attribute Name: solutions
Current Solutions Spec is not covering internal data structure.
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"solutions": { } "description": "Solutions ]to the question.", } "solutionDefoneOf": [ { "type": "array", { "items": { "type": "objectarray", "required": [ "items": { "id", "type",: "string" "value" }, ], "propertiesdescription": {"List of solutions without association to any specific "id": {language", "typeminItems": "string"1 }, "type": { "type": "stringarray", }, "items": { "value": {"$ref": "#/definitions/i18nData" }, "typedescription": "string"Solutions in different languages for multi-lingual questions.", } }, "additionalPropertiesminItems": false1 }, } "description": "List of solutions without association to] any specific language", "minItems": 1 } } |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
...
Attribute Name: bloomsLevel
Data type mismatch found between spec json and wiki page.
https://github.com/sunbird-specs/QuML/blob/master/v1/question-schema.json
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"bloomsLevel": {
"type": "array",
"enum": [""],
"description": "Cognitive processes involved to answer the question."
} |
...
Current QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"bloomsLevel": { "type": "array", "items": { "type": "stringarray", "enum": [ "remember", "understand", "], "description"apply", : "Cognitive processes involved to answer the question." "analyse", } |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"complexityLevel": { "type": "evaluatearray", "items": { "create" ]"type": "string", }, "description": "Cognitive processes involved to answer the question." } |
...
answer property will be mandatory at spec level. All question types (interactive & non interactive) should have answer field.
inquiry editor should make changes to populate answer field (either auto generate or take it from user ) for all question types.