Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejson
"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

Current QuML spec (v1): Not Available

Proposed QuML spec (v1Sample Data for QuML (V1.1):

Code Block
languagejson

"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

Current QuML spec (v1):

Code Block
languagejson
"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

Current QuML spec (v1): Not Available

Proposed QuML spec (v1.1):

Code Block
languagejson
"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

Current QuML spec (v1):

Code Block
languagejson
"media": {
    "type": "object",
    "videorequired": [
      "id",
]       }"mediaType",
      "src":
{    ],
    "typeproperties": "string"
    {
 },       "baseUrlid": {
        "type": "string"
      },
    },     "additionalPropertiesmimeType": false{
  }

Proposed QuML spec (v1.1):

Code Block
languagejson
"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
languagejson
"media": {
    "type": "stringobject",
      },"required": [
      "baseUrlid":,
{      "type",
      "typesrc":
"string"    ],
  }  "properties": {
 },     "additionalPropertiesid": false{
  }

Attribute Name: responseDeclaration.mapping

  • the mapping spec need to be updated.

...

Code Block
languagejson
"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
languagejson
"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
languagejson
"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
languagejson
"interactions    }
    },
    "properties": {
      "typekey": "array",{
      "items":  {"type$ref": "string"},#/definitions/anyTypeDef"
      "description": "List of interactions present in the question."
}

...

Code Block
languagejson
"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
languagejson
"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
languagejson
"interactions": {
      "$reftype": "#/definitions/optionsDef""array",
      "items":      {"type": "string"},
      "description": "List of interactions present in {the question."
      }


Proposed QuML spec (v1.1):

Code Block
languagejson
"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
languagejson
"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
languagejson
"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
languagejson
"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
languagejson

...

Attribute Name: bloomsLevel

Current QuML spec (v1):

Code Block
languagejson
"bloomsLevel": {
      "type": "array",
      "enum": [""],
      "description": "Cognitive processes involved to answer the question."
    }

...

Current QuML spec (v1.1):

Code Block
languagejson
"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
languagejson
"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.