Versions Compared

Key

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

...

Code Block
languagejson
"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
languagejson
"interactionsmapping": [
        {
          "typevalue": "array"2,
          "itemsscore": {"type": "string"}, 0.5
        "description": "List of interactions present in the question."
}

...

Code Block
languagejson
"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
languagejson
"interactions": {
          ""type": "objectarray",
   
      "propertiesitems": {
    "type": "string"},
       "requireddescription": {"List of interactions present in the question."
}


Proposed QuML spec (v1.1):

Code Block
languagejson
"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
languagejson
"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
languagejson
"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
        },
      ]  {
        }

...

languagejson

Attribute Name: bloomsLevel

Current QuML spec (v1):

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

Proposed QuML spec (v1.1):

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

Current QuML spec (v1):

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

Proposed QuML spec (v1.1):

Code Block
languagejson
"complexityLevel": {
    "type": "array",
    "items": {
      "type": "string",
    },
    "description": "Cognitive processes involved to answer the question."
  }

...

Attribute Name: feedback
Current QuML spec (v1):

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

    .