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 11 Next »

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

Behaviour of the System post 6.0.0 release is explained below.

There are 2 major changes that is part of this release

  • Aligning inQuiry to latest QuML 1.1

  • Supporting Multi Lingual

Version support vs QuML compatibility

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

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

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

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

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

Changes for Making V2 QuML compliant

While the below table is a summary of changes, the details can be referenced from the below confluence pages

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

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

Not applicable for subjective question, hence no changes

Multiple Choice Question

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

Multi-select MCQ

"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

"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

"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

timeLimits: {
   "maxTime": "240",
   "warningTime": "60"
}
{
    “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

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

QuestionSet

{
  ...
  maxScore: 10,
  ...
}



Question level

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







QuestionSet

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

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

Multi Language:

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:

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

Multi Language:

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:

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

Multi Language:

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

"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

Changes are as follows,

  • solutions

    • Change of type from array to object

    • supports multi-lingual

Image + Text

"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

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

Image + Text

"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

"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

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

“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

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

// 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

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

Multi Lingual

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

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

QuestionSet

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

Question

instructions:  : "<html>"



QuestionSet

instructions:  : "<html>"



showSolutions

Changes are as follows,

  • showSolutions

    • Change of type from string to boolean

{ 
  showSolutions: "Yes"
}
{ 
  showSolutions: true
}

showTimer

Changes are as follows,

  • showTimer

    • Change of type from string to boolean

{ 
  showTimer: "Yes"
}
{ 
  showTimer: true
}

showFeedback

Changes are as follows,

  • showFeedback

    • Change of type from string to boolean

{ 
  showFeedback: "Yes"
}
{ 
  showFeedback: true
}

showHints

Changes are as follows,

  • showHints

    • Change of type from string to boolean

{ 
  showHints: "Yes"
}
{ 
  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>>