...
Code Block | ||
---|---|---|
| ||
"mappingDef": { "type": "array", "items": { "type": "object", "required": ["value", "score"], "properties": { "value": {"$ref": "#/definitions/anyTypeDef"}, "score": {"type": "number"}, "caseSensitive": {"type": "boolean", "default": false} }, "additionalProperties": 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 (v1Sample Data for QuML (v1.1):
Code Block | ||
---|---|---|
| ||
"interactionsmapping": [ { "typevalue": "array"2, "itemsscore": {"type": "string"}, 0.5 "description": "List of interactions present in the question." } |
...
Code Block | ||
---|---|---|
| ||
"interactions":}, { "descriptionvalue": "List1, of interactions present in the question.", "typescore": "object",0.25 "properties": { } "validation] |
...
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": { ""type": "objectarray", "propertiesitems": { "type": "string"}, "requireddescription": {"List of interactions present in the question." } |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"interactions": { "typedescription": "string"List of interactions present in the question.", } "type": "object", "properties": { },"validation": { "additionalPropertiestype": false"object", }"properties": { }, "additionalPropertiesrequired": { "$ref "type": "#/definitions/interactionsVariableDefstring" } } "interactionsVariableDef": { "type": "object" }, "requiredadditionalProperties": ["type", "options"], false } "properties": { }, "typeadditionalProperties": { "type$ref": "string" #/definitions/interactionsVariableDef" }, } "optionsinteractionsVariableDef": { "oneOftype": ["object", "required": ["type", "options"], { "properties": { "$reftype": "#/definitions/optionsDef"{ "type": "string" }, }, { "options": { "typeoneOf": "object", [ "additionalProperties": { "$ref": "#/definitions/optionsDef" }, }{ ] "type": "object", } }, "additionalProperties": false{ } "optionsDef": { "type$ref": "array#/definitions/optionsDef", "items": { } "type": "object", "properties": {} "label":] { } "type": "string" }, },"additionalProperties": false } "valueoptionsDef": { "type": "numberarray", "items": { "type": "object", } "properties": { },"label": { "additionalPropertiestype": false"string" }, } |
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": {"value": { "descriptiontype": "Solutionsnumber" to the question.", "oneOf": [} { "type": "array", }, "itemsadditionalProperties": {false } "type": "string" }, "description": "List of solutions without association to any specific language", } |
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.", "minItemsoneOf": 1 },[ { "type": "array", "items": { "$ref "type": "#/definitions/i18nDatastring" }, "description": "Solutions in different languages for multi-lingual questions.List of solutions without association to any specific language", "minItems": 1 }, ] { } |
...
language | json |
---|
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."
} |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"complexityLevel "type": "array", "items": { "$ref": "#/definitions/i18nData" }, "description": "Solutions in different languages for multi-lingual questions.", "minItems": 1 } ] } |
Sample Data for Quml Spec (1.0):
Code Block |
---|
/ for single language
{
"solutions": [
"solution 1 having html string",
"solution 2 having html string",
"solution 3 having html string"
]
}
//for multi language
{
"solutions": [
{
"en": "solution 1 having html string"
},
{
"hi": "solution 2 having html string"
}
]
} |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"solutions": {
"description": "Solutions to the question.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string"
},
{ "$ref": "#/definitions/i18nData" }
]
}
} |
Sample Data for QuML Spec (v1.1):
Code Block |
---|
// for single language
{
"solutions": {
"solution_1": "<div>...</div>",
"solution_2": "<div>...</div>"
}
}
//for multi language
{
"solutions": {
"solution_1": {
"en": "<div>...</div>",
"hi": "<div>...</div>"
},
"solution_2": {
"en": "<div>...</div>",
"hi": "<div>...</div>"
}
}
}
solution_1 & solution_2 are unique identifiers for different solution |
...
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."
} |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"complexityLevel": {
"type": "array",
"items": {
"type": "string",
},
"description": "Cognitive processes involved to answer the question."
} |
...
Attribute Name: feedback
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"feedback": {
"description": "Feedback shown to the students after response processing.",
"type": "array",
"items": {
"type": "object",
"required": [ "id", "body" ],
"properties": {
"id": {
"description": "Identifier of the feedback object.",
"type": "string"
},
"body": {
"description": "Body of the feedback to be rendered for the specified feedback identifier.",
"oneOf": [
{
"type": "string",
"description": "Feedback as HTML string when the question is used in only one language."
},
{ "$ref": "#/definitions/i18nData" }
]
}
}
}
} |
Sample Data for QuML (v1.0):
Code Block |
---|
// single language
{
"feedback": [
{
"id": "feedback_1",
"body": "<div>...</div>"
},
{
"id": "feedback_2",
"body": "<div>...</div>"
}
]
}
// multi language:
{
"feedback": [
{
"id": "feedback_1",
"body": {
"en": "<div>...</div>",
"hi": "<div>...</div>",
"ka": "<div>...</div>"
}
},
{
"id": "feedback_2",
"body": {
"en": "<div>...</div>",
"ka": "<div>...</div>"
}
}
]
} |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"feedback": {
"description": "Feedback shown to the students after response processing.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string"
},
{ "$ref": "#/definitions/i18nData" }
]
}
} |
Sample Data for QuML (v1.1):
Code Block |
---|
//single language:
{
"feedback": {
"feedback_1": "<div>...</div>",
"feedback_2": "<div>...</div>"
}
}
//multi language:
{
"feedback": {
"feedback_1": {
"en": "<div>...</div>",
"hi": "<div>...</div>"
},
"feedback_2": {
"en": "<div>...</div>",
"hi": "<div>...</div>"
}
}
} |
...
Attribute Name: hints
Current QuML spec (v1):
Code Block | ||
---|---|---|
| ||
"hints": {
"description": "Hints are shown to the students after response processing or when the student requests for hints.",
"type": "array",
"items": {
"type": "object",
"required": [ "id", "body" ],
"properties": {
"id": {
"description": "Identifier of the hint object.",
"type": "string"
},
"body": {
"description": "Body of the hint to be rendered for the specified hint identifier.",
"oneOf": [
{
"type": "string",
"description": "Hint as HTML string when the question is used in only one language."
},
{ "$ref": "#/definitions/i18nData" }
]
}
}
}
} |
Sample Data for QuML (v1.0):
Code Block |
---|
{
"hints": [
{
"id": "hint_1",
"body": "<div>...</div>"
},
{
"id": "hint_2",
"body": {
"en": "<div>...</div>",
"hi": "<div>...</div>",
"ka": "<div>...</div>"
}
}
]
} |
Proposed QuML spec (v1.1):
Code Block | ||
---|---|---|
| ||
"hints": {
"description": "Hints of the question.",
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "string"
},
{ "$ref": "#/definitions/i18nData" }
]
}
} |
Sample Data for QuML (v1.1):
Code Block |
---|
{ "hints": { "typehint_1": "array<div>...</div>", "itemshint_2": { "typeen": "string<div>...</div>", }, "hi": "description": "Cognitive processes involved to answer the question." "<div>...</div>" } } } |
...
Spec Changes for QuestionSet:
There are some special characters in line number 27 & 51. So need to re-write these lines.
coordinateDef
is not available but coordinate definition is available which is being referred from line number 215. So need correction at line number 215.media definition is missing which is being referred from
anyTypeDef
(line number: 224). So need to add media definition.
Conclusion (DC Review):
17-APR-2023:
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.