Versions Compared

Key

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

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Context

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

...

  • Aligning inQuiry to latest QuML 1.1

  • Supporting Additional support for Multi Lingual

...

    • API is extended to support multiple languages and no changes to inQuiry editor / player

Component Versions vs QuML compatibility

Component

Component version (V1)

Component version (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.

Support for V1

...

components will be deprecated in 6 months post the release of 6.0.0

Component

...

Versions 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 versionScenario

QuestionSet Read

Question List

Old Question / QuestionSet identifier

Allowed

Allowed

New Question / QuestionSet identifier
Info

temporarily transformed to QuML 1.1

Allowed

Allowed

...

Info

temporarily transformed to QuML 1.1

New Question / QuestionSet identifier

Allowed

Allowed

Behaviour of V2 Create and Update APIs given the specific format of Question / QuestionSet

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

Info

To edit Questions / QuestionSets created in QuML 1.0 using the V2 system, the Question / QuestionSet should be migrated to QuML 1.1

Info

V1 (Editor/Player/Microservice) will be deprecated in 6 months post the release of 6.0.0

...

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,

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": 

QuestionSet

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

"value": [1,0],

Question level

Code Block
{
       "outcomeDeclaration": {
    "outcomesmaxScore": {
      "cardinality": "single",
        "SCOREtype": 1"integer",
      "defaultValue": 1
    }
  }
}




},


QuestionSet

Code Block
{
  "outcomeDeclaration": {
 .....   "maxScore": {
}      "cardinality":  } 
}

QuestionSet

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



Question level

Code Block
{"single",
      "outcomeDeclarationtype": {
    "maxScoreinteger":,
{       "cardinalitydefaultValue": "single",1
    }
 "type": "integer",
      "defaultValue": 1
    }
  }
}







QuestionSet

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

answer

  • There is adopter specific use case where the answer property is non-mandatory, like the Survey, Observation. Considering this case, the answer is non-mandatory in 6.0.0 release. This will need further enhancement to override answer property as mandatory or not at the QuestionSet level. Tentative time line for this change to affect is in release 6.2.0

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>>
Code Block
"answer": "<p>This is test data</p>"
Info

Only used for Subjective

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": [
            {
     "response1":  {         "typelabel": "choice<p>New Delhi</p>",
                "optionsvalue": [ 0
            },
            {
                "label": "<p>New Delhi<<p>Mumbai</p>",
                "value": 01
            },
        ]
   { },
    "validation": {
        "required": "label": "<p>Mumbai</p>",
Yes"
    }
}
Code Block
"interactions": {
    "response1": {
         "valuetype": 1"choice",
        "options": [
  }         ]  {
  },     "validation": {         "requiredlabel": "Yes<p>New Delhi</p>",
    } }
Code Block
"interactions": {     "response1": {    "value": 0
   "type": "choice",         "options": [},
            {
                "label": "<p>New Delhi<<p>Mumbai</p>",
                "value": 01
            },
        ],
   {     "validation": {
          "labelrequired": "<p>Mumbai</p>Yes",
        }
       "value}
}

solutions

Changes are as follows,

  • solutions

    • Change of type from array to object

    • supports multi-lingual

Image + Text

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

solutions

Changes are as follows,

  • solutions

    • Change of type from array to object

    • supports multi-lingual

Image + Text
]

Video

Code Block
"solutions": [
    {
        "id": "7015c7e470c82bf5-461a9459-40324c43-b29e8897-fbb7e8155e440e58b7e1da62",
        "type": "htmlvideo",
        "value": "do_2137930190247526401388"
    }
]

Image + Text

Code Block
"solutions": {
     "value"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>"
    }
]

Video

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



// Key = UUID / Solution "valueID

Video

Code Block
"solutions": "do_2137930190247526401388"
{
   } ]

Image + Text

Code Block
"solutions"70c82bf5-9459-4c43-8897-0e58b7e1da62": {
    "7015c7e4-461a-4032-b29e-fbb7e8155e44": "<figure class=\"image\"><img src=\"<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_21379165460572569613742137980528723230721410/indiagate.jpeg\" alt=\"indiaGate\" data-asset-variable=\"do_2137916546057256961374\"></figure>sample-5s.mp4"> <source type="video/webm" src="/assets/public/content/assets/do_2137980528723230721410/sample-5s.mp4"> </video>",
}



// Key = UUID / Solution ID
Video

Multi Language

Code Block
{
  "solutions": {
    "70c82bf5-9459-4c43-8897-0e58b7e1da62solution_1": "<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

Code Block
{
  "solutions": {{
      "en": "<div>...</div>",
      "hi": "<div>...</div>"
    },
    "solution_2": {
      "solution_1en": {"<div>...</div>",
      "enhi": "<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"
    }
  }
}

feedback

Changes are as follows,

  • feedback

    • mapping as part of outcomeDeclaration

    • supports multi-lingual

Info

Currently not used in inQuiry

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-0e58b7e1da63”:0e58b7e1da62"
 “<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": {}
}

Multi Language

Code Block
{
  "feedback": {
    "feedback_1": {
      "en": "<div>...</div>",
      "hi": "<div>...</div>"
    },
    "cardinalityfeedback_2": "single",
{
      "typeen": "string<div>...</div>",
        "defaultValuehi": "70c82bf5-9459-4c43-8897-0e58b7e1da62"
<div>...</div>"
    }
  }
}
Multi Lingual

hints

Changes are as follows,

  • hints

    • mapping as part of outcomeDeclaration

    • supports multi-lingual

Code Block
{// Question Metadata
"feedback": {
 
  "feedback_1"hints: { 
    en "en": "<div>...</div>",string"
  }
}


"hi":
"<div>...</div>"




},

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

// key }=  UUID
}
}

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
{ Referenced from outcomeDeclaration
hints"outcomeDeclaration": { 
 
  en : "stringhint": {
 } }  "cardinality": "single",
       
Code Block
“hints”"type": {"string",
   “70c82bf5-9459-4c43-8897-0e58b7e1da62”: “<HTML>...</HTML>”,   “70c82bf5-9459-4c43-8897-0e58b7e1da63”: “<HTML>...</HTML>”
  “70c82bf5 "defaultValue": "70c82bf5-9459-4c43-8897-0e58b7e1da64”: “<HTML>...</HTML>”
}

// key = UUID

// Referenced from outcomeDeclaration
"outcomeDeclaration0e58b7e1da62"
   }
}

Multi Language

Code Block
{
  "hints": {

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

    "cardinalityhint_2": "single",{
       "typeen": "string<div>...</div>",
        "defaultValuehi": "70c82bf5-9459-4c43-8897-0e58b7e1da62"
<div>...</div>"
    }
  }
}
Multi Lingual

instructions

Changes are as follows,

  • instructions

    • Change of type from object to string

    • supports multi-lingual

Question

Code Block
{ 
 "hints" instructions: { 
    "hint_1"en : "<div><html>...</div>",

    "hint_2": {html>"
  }
}

QuestionSet

Code Block
{ 
  "en"instructions: "<div>...</div>",{ 
    default "hi": "<div><html>...</div>html>"
 
  }
  }
}

instructions

Changes are as follows,

  • instructions

    • Change of type from object to string

    • supports multi-lingual

Question

Code Block
{instructions:    instructions: {"<html>"



QuestionSet

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


}
}
QuestionSet

Multi Lingual

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

showSolutions

Changes are as follows,

  • showSolutions

    • Change of type from string to boolean

Code Block
instructions:{ 
  showSolutions: "<html>Yes"



}

QuestionSet

Code Block
instructions:{ 
: "<html>"  showSolutions: true
}

showSolutionsshowTimer

Changes are as follows,

  • showSolutionsshowTimer

    • Change of type from string to boolean

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

showTimershowFeedback

Changes are as follows,

  • showTimershowFeedback

    • Change of type from string to boolean

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

showFeedbackshowHints

Changes are as follows,

  • showFeedbackshowHints

    • Change of type from string to boolean

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

showHintsbloomsLevel

Changes are as follows,

  • showHintsbloomsLevel

    • renamed to complexityLevel

    • Change of type from string to booleanarray

Code Block
{ 
  showHintsbloomsLevel: "Yesapply"
}
Code Block
{ 
  showHints: true
}complexityLevel: ["apply"]

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>>No changes to the format

No changes to the format