Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 13 Next »

While comparing the existing inQuiry question and question set metadata with QuML specs we found a few gaps. Below are the properties having some differences from the QuML specs:

This design only talks about QuML compliance not about the multi-lingual

responseDeclaration

"responseDeclaration" contains information about the response to a question: When is it correct, and (optionally) how is it scored?

  • responseDeclaration.mapping

  • maxScore

Here are the differences for each question type:

Subjective Question:

Current Format

New format as per QuML Spec

"responseDeclaration": {
    "response1": {
        "type": "string"
    }
}

Not applicable for subjective question.

Multiple Choice Question:

Current Format

New format as per QuML Spec

"responseDeclaration": {
    "response1": {
        "maxScore": 1,
        "cardinality": "single",
        "type": "integer",
        "correctResponse": {
            "value": "0",
            "outcomes": {
                "SCORE": 1
            }
        },
        "mapping": [
            {
                "response": 0,
                "outcomes": {
                    "score": 1
                }
            }
        ]
    }
}
"responseDeclaration": {
    "response1": {
      "cardinality": "single",
      "type": "integer",
      "correctResponse": {
        "value": 0
      },
      "mapping": [
        {
          "value": 0,
          "score": 1
        }
      ]
    }
},
"outcomeDeclaration": {
    "maxScore": {
      "cardinality": "single",
      "type": "integer",
      "defaultValue": 1
    }
}

Multi-select MCQ:

Current Format

New format as per QuML Spec

"responseDeclaration": {
    "response1": {
        "maxScore": 1,
        "cardinality": "multiple",
        "type": "integer",
        "correctResponse": {
            "value": [1,0],
            "outcomes": {
                "SCORE": 1
            }
        },
        "mapping": [
            {
                "response": 1,
                "outcomes": {
                    "score": 0.5
                }
            },
            {
                "response": 0,
                "outcomes": {
                    "score": 0.5
                }
            }
      ]
    }
}
"responseDeclaration": {
    "response1": {
      "cardinality": "multiple",
      "type": "integer",
      "correctResponse": {
        "value": [1,0]
      },
      "mapping": [
        {
          "value": 1,
          "score": 0.5
        },
        {
          "value": 0,
          "score": 0.5
        }
      ]
    }
},
"outcomeDeclaration": {
    "maxScore": {
      "cardinality": "multiple",
      "type": "integer",
      "defaultValue": 1
    }
  }
  

Open Question:

For MMCQ, What would be the value of type? if correctResponse has value as an array.

media

No changes are required from the editor and player side.

timeLimits

  • showWarningTimer

  • warningTime(%)

The use of maxTime is to show the timer on the QuML player and the use of warningTime is to indicate the time remaining to complete the question set.

Current Format

New format as per QuML Spec

timeLimits: {
   "maxTime": "240",
   "warningTime": "60"
}
{
    “timeLimits”: {
        “questionSet”: { // time limits for the question set and for any member sets
            “min”: <milli_seconds>,
            “max”: <milli_seconds>
        },
        “question”: { // time limits for the questions in the question set
            “min”: <milli_seconds>,
            “max”: <milli_seconds>
        }
    }
}

Warning time will be removed from the editor and moved to the player side.

In order to achieve this, the player will introduce two new properties as part of the player configuration.

Name

Type

Default

warningTime (% )

number

75(%)

showWarningTimer

boolean

true

  1. Warning time will not be present in timeLimits and will be calculated based on the warningTime config and the Max time

  2. warningTime [number (%) ] to be introduced as part of the global config. Default value of Warning timer can be 75(%) of the max time

    1. ie, Warning timer will start showing once the user finishes 75% (default) of the max time

    2. For eg, max time is 100 seconds, warning timer will start showing from the 75 seconds

  3. showWarningTimer [boolean] to be introduced as part of the global config - Player

    1. This will decide if the WarningTimer has to be displayed or not

Here’s the sample player configuration.

{
    'context': {
      ...
    },
    'metadata': {
      ...
    },
    'config': {
      'sideMenu': {
          'enable': true,
          'showShare': true,
          'showDownload': true,
          'showReplay': false,
          'showExit': false,
      },
      showWarningTimer: true, // true or false 
      warningTime: 75 // [number (%) ]
    }
}

(Note: Existing behavior of the player will be continuing as it is for the warning indicator)

Editor Changes:

  • The warning timer will be removed from the editor form and will not save the warning time value in timeLimits.

  • min time will be stored inside timeLimits as timeLimits.questionset.min

  • There will not be any field for taking user input for min time, editor will store the min time as 0 by default.

The timeLimts for the questionset will be stored in below format:

timeLimits:
{
  "description": "Time limits for the complete set and/or for each question in the question set.",
   questionset: {
           min: number,
           max: number
        }
}

Example:-

For storing max time( max ) as 5 minutes. It will be stored in below format.

  • 5 minutes is to be converted to milli-seconds to store the value.

  • 5 minutes = 5 * 60 seconds = 5 * 60 * 1000 = 300000 milli seconds

The default value of min time ( min ) will be stored as 0

timeLimits:
{
   questionset: {
           min: 0,
           max: 300000
        }
}

Open Question

Need confirmation if timeLimits is to be stored as seconds or milli-seconds ?

maxScore

For question:

Currently, maxScore property is getting stamped in two places at the question metadata level.

As per QuML spec, maxScore should be stored under the outcomeDeclaration property.

Current Format

New format as per QuML Spec

// Question metadata

{
  maxScore: 1,
  "responseDeclaration": {
    "response1": {
        "maxScore": 1,
        "cardinality": "multiple",
        "type": "integer",
        "correctResponse": {
            "value": [1,0],
            "outcomes": {
                "SCORE": 1
            }
        },
        .....
    }     
  } 
}
{
  "outcomeDeclaration": {
    "maxScore": {
      "cardinality": "single",
      "type": "integer",
      "defaultValue": 1
    }
  }
}

(Notes: Samagra is using this property while printing the question paper).

For Questionset:

Current Format

New format as per QuML Spec

// QuestionSet metadata

{
  ...
  maxScore: 10,
  ...
}
{
  "outcomeDeclaration": {
    "maxScore": {
      "cardinality": "single",
      "type": "integer",
      "defaultValue": 1
    }
  }
}

Open Question:

For QuestionSet, What would be the value of cardinality?

(Need to be checked with Gauraw Kumar and Sajesh Kayyath )

answer

In the current implementation, We are not storing the answer property for MCQ and MMCQ. but as per QuML spec, An answer is mandatory for all types of questions.

  • SA – HTML

  • MCQ/MMCQ – reference value for data OR actual value ?
    For example: “1,2” OR “India, US”
    (Need to be checked with Sajesh Kayyath and Gauraw Kumar

Subjective Question:

Current Format

New format as per QuML Spec

"answer": "<p>This is test data</p>"

No change. The editor and player will use the previous format.

Multiple Choice Question:

Current Format

New format as per QuML Spec

Not Applicable

"answer": "India" // actual value.

Multi-select MCQ:

Current Format

New format as per QuML Spec

Not Applicable

"answer": "India, US" // actual value.

interactions

As part of the new implementation, We will be moving only the validation field under the response1 property. No other change.

Current Format

New format as per QuML Spec

"interactions": {
    "response1": {
        "type": "choice",
        "options": [
            {
                "label": "<p>New Delhi</p>",
                "value": 0
            },
            {
                "label": "<p>Mumbai</p>",
                "value": 1
            }
        ]
    },
    "validation": {
        "required": "Yes"
    }
}
"interactions": {
    "response1": {
        "type": "choice",
        "options": [
            {
                "label": "<p>New Delhi</p>",
                "value": 0
            },
            {
                "label": "<p>Mumbai</p>",
                "value": 1
            }
        ],
        "validation": {
          "required": "Yes"
        }
    }
}

solutions

Solutions are used to provide exemplary answers to questions aid candidates in-depth learning and enhance user’s understanding of the concepts. Multiple solutions can be configured for a question

This property supports the following types:

  1. Image + Text

Current Format

New format as per QuML Spec

"solutions": [
    {
        "id": "7015c7e4-461a-4032-b29e-fbb7e8155e44",
        "type": "html",
        "value": "<figure class=\"image\"><img src=\"/assets/public/content/assets/do_2137916546057256961374/indiagate.jpeg\" alt=\"indiaGate\" data-asset-variable=\"do_2137916546057256961374\"></figure>"
    }
]
"solutions": {
    "7015c7e4-461a-4032-b29e-fbb7e8155e44": "<figure class=\"image\"><img src=\"/assets/public/content/assets/do_2137916546057256961374/indiagate.jpeg\" alt=\"indiaGate\" data-asset-variable=\"do_2137916546057256961374\"></figure>",
}



// Key = UUID / Solution ID

2. Video

Current Format

New format as per QuML Spec

"solutions": [
    {
        "id": "70c82bf5-9459-4c43-8897-0e58b7e1da62",
        "type": "video",
        "value": "do_2137930190247526401388"
    }
]
"solutions": {
    "70c82bf5-9459-4c43-8897-0e58b7e1da62": "<video  width="400" #solutionVideoPlayer controls poster="https://dev.inquiry.sunbird.org"><source type="video/mp4" src="https://dev.inquiry.sunbird.org/assets/public/content/assets/do_2137930190247526401388/earth.mp4"><source type="video/webm" src="https://dev.inquiry.sunbird.org/assets/public/content/assets/do_2137930190247526401388/earth.mp4"></video>",
}



// Key = UUID
  • Solutions is a JSON object in key-value format. The keys in the JSON are the identifiers of different solutions for the question and values are HTML snippets for solutions.

  • Solutions HTML must contain only structural and media HTML elements. There should be interactions in a solution and hence no input HTML elements. QuML players should allow the users to view the solutions if the context in which the question is being used allows the users to view the solution.


feedback

Feedback is a JSON object in key-value format. The keys in the JSON are the identifiers of different feedbacks for the question and values are HTML snippet to be shown to the student. After the response processing, the QuML player renders the feedback HTML mapped to the value that is set to the FEEDBACK outcome variable.

Feedback:

Current Format

New format as per QuML Spec

// Not applicable 
“feedback”: {
  “70c82bf5-9459-4c43-8897-0e58b7e1da62”: “<h1>Well done!!!</h1>”,
  “70c82bf5-9459-4c43-8897-0e58b7e1da63”: “<h1>Better luck next time!!!</h1>”
  “70c82bf5-9459-4c43-8897-0e58b7e1da64”: “<h1>You need to work harder!!!</h1>”
}

// key = UUID

For more information, please refer to this document: https://quml.sunbird.org/v1/question#feedback

hints (This has to be modified by an adopter)

Similar to feedback, Hints are shown to the candidates after response processing or when the student requests for hints.

Current Format

New format as per QuML Spec

// Question Metadata
{ 
  hints: { 
    en : "string"
  }
}
“hints”: {
  “70c82bf5-9459-4c43-8897-0e58b7e1da62”: “<HTML>...</HTML>”,
  “70c82bf5-9459-4c43-8897-0e58b7e1da63”: “<HTML>...</HTML>”
  “70c82bf5-9459-4c43-8897-0e58b7e1da64”: “<HTML>...</HTML>”
}

// key = UUID

Hints is a JSON object in key-value format. The keys in the JSON are the identifiers of different hints for the question and values are HTML snippet for hints.

For more information, please refer to this documentation: https://quml.sunbird.org/v1/question#hints

Only Shikshalokam is using the following format.

  • Question - { hints: { en : "string"}}

  • Also, they are storing the hints for each option under the interactions property.
    Here is an example from Shikshalokam:

    interactions: {
      response1: {
        type: "choice",
        options: [
          {
            label: "<p>option 1</p>",
            value: 0,
            hints: {
              en: "test hint 1",
            },
          },
          {
            label: "<p>option 2</p>",
            value: 1,
            hints: {
              en: "test hint 2",
            },
          },
          {
            label: "<p>option 3</p>",
            value: 2,
            hints: {
              en: "test hint 3",
            },
          },
        ],
        autoCapture: "Yes",
        validation: {
          limit:{
            maxLength:100
          },
          required: "Yes",
          pattern: "dd/mm/yyyy",
        },
      },
    }

instructions (This has to be modified by an adopter)

Instructions on how to understand, attempt, or how the question will be evaluated.

Currently, instructions are being stored in the following format:

For QuestionSet:

Current Format

New format as per QuML Spec

{ 
  instructions: { 
    default : "<html>...</html>"
  }
}
instructions:  : "<html>"

For Question:

Current Format

New format as per QuML Spec

{ 
  instructions: { 
    en : "<html>...</html>"
  }
}

//Only Shikshalokam is using the above format.
// Not used by inQuiry
instructions:  : "<html>"

Instructions HTML also must contain only structural and media HTML elements. There should be interactions in a solution and hence no input HTML elements.

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.