Versions Compared

Key

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

As part of release 6.0.0, inQuiry building block is releasing newer versions of it’s components; QuML Editor, QuML Player and Microservice.

...

Component

V1

V2

QuML Editor

QuML 1.0

QuML 1.1

QuML Player

QuML 1.0

QuML 1.1

inQuiry Microservice (API)

QuML 1.0

QuML 1.1

QuML 1.0 for read only

  • inQuiry Microservice provides a capability of reading the old Questions and QuestionSets that are in QuML 1.0.
  • The Questions and QuestionSets in QuML 1.0 will be temporarily transformed to QuML 1.1 format by the read APIs
Info

V2 Microservice will continue to function with V1 Editor and Player.

However the support for V1 APIs will be deprecated in 6 months post the release of 6.0.0

Component Version vs API Version compatibility

Component

API (V1)

API (V2)

Editor (V1)

Allowed

Not permitted

Player (V1)

Allowed

Not permitted

Editor (V2)

Not permitted

Allowed

Player (V2)

Not permitted

Allowed

Behaviour of V2 Consumption APIs when requesting for Old or New Question / QuestionSet identifier

QuML version

QuestionSet Read

Question List

Old Question / QuestionSet identifier

Allowed

Allowed

New Question / QuestionSet identifier

Allowed

Allowed

...

QuML version

QuestionSet Create

QuestionSet Update

Question Create

Question Update

Review

Publish

Questions / QuestionSets in QuML 1.0 format

Not permitted

Not permitted

Not permitted

Not permitted

Not permitted

Not permitted

Questions / QuestionSets in QuML 1.1 format

Allowed

Allowed

Allowed

Allowed

Allowed

Allowed

...

Attribute Name

Change summary

QuML 1.0 format

QuML 1.1 format

responseDeclaration

Changes are as follow,

  • maxScore

    • Now part of outcomeDeclaration

  • mapping

    • Is a JSON Object with keys as Value and Score

Info

Changes are applicable to Multiple Choice Question and Multi-select MCQ

Info

Not applicable for subjective question, hence no changes

Multiple Choice Question

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

Multi-select MCQ

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

Multiple Choice Question

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

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

timeLimits

Changes are as follow,

  • warningTime

    • Removed as it is not part of specification

  • maxTime

    • Renamed to match the specification

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

maxScore

Changes are as follow,

  • maxScore

    • Now part of outcomeDeclaration

Question

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

QuestionSet

Code Block
{
  ...
  maxScore: 10,
  ...
}



Question level

Code Block
{
  "outcomeDeclaration": {
    "maxScore": {
      "cardinality": "single",
      "type": "integer",
      "defaultValue": 1
    }
  }
}







QuestionSet

Code Block
{
  "outcomeDeclaration": {
    "maxScore": {
      "cardinality": "single",
      "type": "integer",
      "defaultValue": 1
    }
  }
}

answer

Changes are as follow,

  • answer

    • is mandatory for all types of questions

    • answers will be concatenated together under an HTML element

    • supports multi-lingual

<<Sample from current>>

Subjective

Single Language:

Code Block
anwser: '<div class="anwser-container">
    <div class="anwser-body">
        <p>Delhi</p>
    </div>    
</div>'

Multi Language:

Code Block
answer: {
  en: "<div class="anwser-container">
          <div class="anwser-body">
              <p>Delhi</p>
          </div>    
       </div>",
  hi: "<div class="anwser-container">
          <div class="anwser-body">
              <p>दिल्ली</p>
          </div>    
       </div>"
}

MCQ

Single Language:

Code Block
anwser: `<div class="anwser-container">
    <div class="anwser-body">
        <p>Delhi</p>
    </div>    
</div>'

Multi Language:

Code Block
answer: {
  en: "<div class="anwser-container">
          <div class="anwser-body">
              <p>Delhi</p>
          </div>    
       </div>",
  hi: "<div class="anwser-container">
          <div class="anwser-body">
              <p>दिल्ली</p>
          </div>    
       </div>"
}

MMCQ

Single Language:

Code Block
anwser: `<div class="anwser-container">
    <div class="anwser-body">
        <p>Delhi</p>
    </div>
    <div class="anwser-body">
        <p>Bangalore</p>
    </div>
</div>'

Multi Language:

Code Block
answer: {
  en: "<div class="anwser-container">
          <div class="anwser-body">
              <p>Delhi</p>
          </div>
          <div class="anwser-body">
              <p>bangalore</p>
          </div>    
       </div>",
  hi: "<div class="anwser-container">
          <div class="anwser-body">
              <p>दिल्ली</p>
          </div> 
          <div class="anwser-body">
              <p>बैंगलोर</p>
          </div>   
       </div>"
} 

interactions

Changes are as follows,

  • validation

    • Moved under response<1> attribute

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

solutions

Changes are as follows,

  • solutions

    • Change of type from array to object

    • supports multi-lingual

Image + Text

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

Video

Code Block
"solutions": [
    {
        "id": "70c82bf5-9459-4c43-8897-0e58b7e1da62",
        "type": "video",
        "value": "do_2137930190247526401388"
    }
]

Image + Text

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

Video

Code Block
"solutions": {
    "70c82bf5-9459-4c43-8897-0e58b7e1da62": "<video data-asset-variable="do_2137930187513200641386" width="400" controls="" poster="/assets/public/content/assets/do_2137930188655902721387/gateway-of-india.jpg"> <source type="video/mp4" src="/assets/public/content/assets/do_2137980528723230721410/sample-5s.mp4"> <source type="video/webm" src="/assets/public/content/assets/do_2137980528723230721410/sample-5s.mp4"> </video>",
}



// Key = UUID

Multi

Lingual

Language

Code Block
{
  "solutions": {
    "solution_1": {
      "en": "<div>...</div>",
      "hi": "<div>...</div>"
    },
    "solution_2": {
      "en": "<div>...</div>",
      "hi": "<div>...</div>"
    }
  }
}

feedback

Changes are as follows,

  • feedback

    • mapping as part of outcomeDeclaration

    • supports multi-lingual

<<Sample from current>>

Code Block
“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

// Referenced from outcomeDeclaration
"outcomeDeclaration": {
   "feedback": {
    "cardinality": "single",
       "type": "string",
        "defaultValue": "70c82bf5-9459-4c43-8897-0e58b7e1da62"
   }
}

Multi

Lingual

Language

Code Block
{
  "feedback": {
    "feedback_1": {
      "en": "<div>...</div>",
      "hi": "<div>...</div>"
    },
    "feedback_2": {
      "en": "<div>...</div>",
      "hi": "<div>...</div>"
    }
  }
}

hints

Changes are as follows,

  • hints

    • mapping as part of outcomeDeclaration

    • changes to be accommodated for hints under interaction > options also

    • supports multi-lingual

Code Block
// Question Metadata
{ 
  hints: { 
    en : "string"
  }
}










Code Block
“hints”: {
  “70c82bf5-9459-4c43-8897-0e58b7e1da62”: “<HTML>...</HTML>”,
  “70c82bf5-9459-4c43-8897-0e58b7e1da63”: “<HTML>...</HTML>”
  “70c82bf5-9459-4c43-8897-0e58b7e1da64”: “<HTML>...</HTML>”
}

// key = UUID

// Referenced from outcomeDeclaration
"outcomeDeclaration": {
   "hint": {
    "cardinality": "single",
       "type": "string",
        "defaultValue": "70c82bf5-9459-4c43-8897-0e58b7e1da62"
   }
}

Multi

Lingual

Language

Code Block
{
  "hints": {

    "hint_1": "<div>...</div>",

    "hint_2": {
      "en": "<div>...</div>",
      "hi": "<div>...</div>"
    }
  }
}

instructions

Changes are as follows,

  • instructions

    • Change of type from object to string

    • supports multi-lingual

Question

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

QuestionSet

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

Question

Code Block
instructions:  : "<html>"



QuestionSet

Code Block
instructions:  : "<html>"



showSolutions

Changes are as follows,

  • showSolutions

    • Change of type from string to boolean

Code Block
{ 
  showSolutions: "Yes"
}
Code Block
{ 
  showSolutions: true
}

showTimer

Changes are as follows,

  • showTimer

    • Change of type from string to boolean

Code Block
{ 
  showTimer: "Yes"
}
Code Block
{ 
  showTimer: true
}

showFeedback

Changes are as follows,

  • showFeedback

    • Change of type from string to boolean

Code Block
{ 
  showFeedback: "Yes"
}
Code Block
{ 
  showFeedback: true
}

showHints

Changes are as follows,

  • showHints

    • Change of type from string to boolean

Code Block
{ 
  showHints: "Yes"
}
Code Block
{ 
  showHints: true
}

media

Changes are as follows,

  • media

    • this is a spec updation only and no changes in editor / player / api

N/A

N/A

bloomsLevel

Changes are as follows,

  • bloomsLevel

    • renamed to complexityLevel

    • Change of type from <<TODO>>

<<TODO>>

<<TODO>>

...