Zum Inhalt
HALOWERK

Agentenwerk

oss openolat grading discrepancy review

Replays a grading scale through the native OpenOLAT implementation and compares, for each assessment, the grade that was recorded against the grade the scale actually yields. Every discrepancy comes back with the score, the band it falls into, the expected value and the recorded one, so a wrong entry can be corrected at the row instead of being argued about in the aggregate.

POST https://agent.halowerk.com/v1/oss-openolat-grading-discrepancy-review

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
scale_idstringJa
minimum_scorestringJa
maximum_scorestringJa
native_scaleSiehe SchemaJa
rubricarrayJa
assessmentsarrayJa
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "properties": {
    "scale_id": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,31}$"
    },
    "minimum_score": {
      "type": "string",
      "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
    },
    "maximum_score": {
      "type": "string",
      "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
    },
    "native_scale": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "const": "numeric"
            },
            "lowest_grade": {
              "type": "string",
              "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
            },
            "best_grade": {
              "type": "string",
              "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
            },
            "resolution": {
              "enum": [
                "whole",
                "half",
                "quarter",
                "tenth"
              ]
            },
            "rounding": {
              "enum": [
                "nearest",
                "up",
                "down"
              ]
            },
            "cut_value": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "breakpoints": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "grade": {
                    "type": "string",
                    "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
                  },
                  "score": {
                    "type": "string",
                    "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
                  }
                },
                "required": [
                  "grade",
                  "score"
                ],
                "additionalProperties": false
              },
              "minItems": 0,
              "maxItems": 8
            }
          },
          "required": [
            "type",
            "lowest_grade",
            "best_grade",
            "resolution",
            "rounding",
            "cut_value",
            "breakpoints"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "type": {
              "const": "text"
            },
            "has_passed": {
              "type": "boolean"
            },
            "classes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,31}$"
                  },
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "lower_score": {
                    "type": "string",
                    "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
                  },
                  "passed": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "label",
                  "lower_score",
                  "passed"
                ],
                "additionalProperties": false
              },
              "minItems": 2,
              "maxItems": 64
            }
          },
          "required": [
            "type",
            "has_passed",
            "classes"
          ],
          "additionalProperties": false
        }
      ]
    },
    "rubric": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,31}$"
          },
          "lower": {
            "type": "string",
            "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
          },
          "upper": {
            "type": "string",
            "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
          },
          "lower_inclusive": {
            "type": "boolean"
          },
          "upper_inclusive": {
            "type": "boolean"
          },
          "grade": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "passed": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "lower",
          "upper",
          "lower_inclusive",
          "upper_inclusive",
          "grade",
          "passed"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 64
    },
    "assessments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9_-]{0,31}$"
          },
          "score": {
            "type": "string",
            "pattern": "^-?(0|[1-9][0-9]{0,6})(\\.[0-9]{1,6})?$"
          },
          "recorded_grade": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              {
                "type": "null"
              }
            ]
          },
          "recorded_passed": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "score",
          "recorded_grade",
          "recorded_passed"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 1000
    }
  },
  "required": [
    "scale_id",
    "minimum_score",
    "maximum_score",
    "native_scale",
    "rubric",
    "assessments"
  ],
  "additionalProperties": false
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "scale_id": "six_point",
  "minimum_score": "0",
  "maximum_score": "100",
  "native_scale": {
    "type": "numeric",
    "lowest_grade": "1",
    "best_grade": "6",
    "resolution": "whole",
    "rounding": "nearest",
    "cut_value": "4",
    "breakpoints": []
  },
  "rubric": [
    {
      "id": "g1",
      "lower": "0",
      "upper": "10",
      "lower_inclusive": true,
      "upper_inclusive": false,
      "grade": "1",
      "passed": false
    },
    {
      "id": "g2",
      "lower": "10",
      "upper": "30",
      "lower_inclusive": true,
      "upper_inclusive": false,
      "grade": "2",
      "passed": false
    },
    {
      "id": "g3",
      "lower": "30",
      "upper": "50",
      "lower_inclusive": true,
      "upper_inclusive": false,
      "grade": "3",
      "passed": false
    },
    {
      "id": "g4",
      "lower": "50",
      "upper": "70",
      "lower_inclusive": true,
      "upper_inclusive": false,
      "grade": "4",
      "passed": true
    },
    {
      "id": "g5",
      "lower": "70",
      "upper": "90",
      "lower_inclusive": true,
      "upper_inclusive": false,
      "grade": "5",
      "passed": true
    },
    {
      "id": "g6",
      "lower": "90",
      "upper": "100",
      "lower_inclusive": true,
      "upper_inclusive": true,
      "grade": "6",
      "passed": true
    }
  ],
  "assessments": [
    {
      "id": "boundary",
      "score": "89.999999",
      "recorded_grade": "5",
      "recorded_passed": true
    },
    {
      "id": "ordinary",
      "score": "55",
      "recorded_grade": "4",
      "recorded_passed": true
    }
  ]
}

Ergebnis & Dokumentation

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →