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 (in API services)

    • 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

Post 6.0.0, V1 Editor and Player can still talk to V1 API.

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

Question / QuestionSetScenario

QuestionSet Read

Question List

Old Question / QuestionSet identifier

Allowed

Info

temporarily transformed to QuML 1.1

Allowed

Info

temporarily transformed to QuML 1.1

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,

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

  }
}

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

    • More details here

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

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-0e58b7e1da62"
   }
}

Multi 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 outcomeDeclarationchanges 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 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>"



Multi Lingual

Code Block
{ 
  instructions: { 
    en : "<html>...</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
}

bloomsLevel

Changes are as follows,

  • bloomsLevel

    • renamed to complexityLevel

    • Change of type from string to array

Code Block
bloomsLevel: "apply"
Code Block
complexityLevel: ["apply"]

media

Changes are as follows,

  • media

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

No changes to the format

No changes to the format

...