score

Regel-Engine und Regelpakete

Wie Landesrecht als versionierte Daten in score kommt und wie score-rules daraus Noten berechnet.

Regelpakete

Ein Regelpaket ist eine TOML-Datei. Es enthält Notenskalen, Prozentschlüssel, Leistungsarten mit Gewichten, die Berechnung der Zeugnisnote und die Versetzungsregeln einer Schulart. Die Kennung eines Pakets entspricht dem Bildungsgang einer Klasse; so bekommt jeder Kurs sein Paket.

Fokus
Vererbung der Regelpakete
Vererbung der RegelpaketeBaum mit 14 Knoten in 5 Ebenen. Wurzel: de-kmk (Notenskalen 1–6, 0–15). de-kmk: mv.land (Aufbewahrung, SchulDSVO, erbt). mv.land: mv.sek1 (Leistungsbewertung Sek I, erbt), mv.gymnasium.oberstufe (Qualifikation, Abitur, erbt), mv.berufsschule.dual (Teilzeitberufsschule, erbt). mv.sek1: mv.regionale-schule (Versetzung, Mittlere Reife, erbt), mv.gymnasium (Jg. 7–10, Versetzung, erbt). mv.gymnasium: mv.gymnasium.einfuehrungsphase (Einführungsphase, erbt). mv.gymnasium.oberstufe: mv.gymnasium.oberstufe.2024 (Abitur nach APVO 2024, erbt). mv.berufsschule.dual: mv.berufsschule.bvj (BVJ einjährig, erbt), mv.berufsschule.bvja (BVJ Ausländer, Aussiedler, erbt), mv.berufsschule.bvb (BvB, schulischer Teil, erbt), mv.berufsschule.avdual (AVdual, Erprobung, erbt). mv.berufsschule.bvj: mv.berufsschule.bvj2 (BVJ zweijährig, erbt).de-kmk → mv.land: erbtmv.land → mv.sek1: erbtmv.sek1 → mv.regionale-schule: erbtmv.sek1 → mv.gymnasium: erbtmv.gymnasium → mv.gymnasium.einfuehrungsphase: erbtmv.land → mv.gymnasium.oberstufe: erbtmv.gymnasium.oberstufe → mv.gymnasium.oberstufe.2024: erbtmv.land → mv.berufsschule.dual: erbtmv.berufsschule.dual → mv.berufsschule.bvj: erbtmv.berufsschule.bvj → mv.berufsschule.bvj2: erbtmv.berufsschule.dual → mv.berufsschule.bvja: erbtmv.berufsschule.dual → mv.berufsschule.bvb: erbtmv.berufsschule.dual → mv.berufsschule.avdual: erbterbterbterbterbterbterbterbterbterbterbterbterbterbtde-kmk – Notenskalen 1–6, 0–15de-kmkNotenskalen 1–6, 0–15mv.land – Aufbewahrung, SchulDSVOmv.landAufbewahrung, SchulDSVOmv.sek1 – Leistungsbewertung Sek Imv.sek1Leistungsbewertung Sek Imv.gymnasium.oberstufe – Qualifikation, Abiturmv.gymnasium.oberstufeQualifikation, Abiturmv.berufsschule.dual – Teilzeitberufsschulemv.berufsschule.dualTeilzeitberufsschulemv.regionale-schule – Versetzung, Mittlere Reifemv.regionale-schuleVersetzung, Mittlere Reifemv.gymnasium – Jg. 7–10, Versetzungmv.gymnasiumJg. 7–10, Versetzungmv.gymnasium.einfuehrungsphase – Einführungsphasemv.gymnasium.einfuehrungsphaseEinführungsphasemv.gymnasium.oberstufe.2024 – Abitur nach APVO 2024mv.gymnasium.oberstufe.2024Abitur nach APVO 2024mv.berufsschule.bvj – BVJ einjährigmv.berufsschule.bvjBVJ einjährigmv.berufsschule.bvja – BVJ Ausländer, Aussiedlermv.berufsschule.bvjaBVJ Ausländer, Aussiedlermv.berufsschule.bvb – BvB, schulischer Teilmv.berufsschule.bvbBvB, schulischer Teilmv.berufsschule.avdual – AVdual, Erprobungmv.berufsschule.avdualAVdual, Erprobungmv.berufsschule.bvj2 – BVJ zweijährigmv.berufsschule.bvj2BVJ zweijährig

Quelle: score, regeln/

Diagrammdaten anzeigen
Daten zu Vererbung der Regelpakete
KnotenEbeneÜbergeordnetVerknüpfungUntergeordnet
de-kmk1mv.land
mv.land2de-kmkerbtmv.sek1, mv.gymnasium.oberstufe, mv.berufsschule.dual
mv.sek13mv.landerbtmv.regionale-schule, mv.gymnasium
mv.regionale-schule4mv.sek1erbt
mv.gymnasium4mv.sek1erbtmv.gymnasium.einfuehrungsphase
mv.gymnasium.einfuehrungsphase5mv.gymnasiumerbt
mv.gymnasium.oberstufe3mv.landerbtmv.gymnasium.oberstufe.2024
mv.gymnasium.oberstufe.20244mv.gymnasium.oberstufeerbt
mv.berufsschule.dual3mv.landerbtmv.berufsschule.bvj, mv.berufsschule.bvja, mv.berufsschule.bvb, mv.berufsschule.avdual
mv.berufsschule.bvj4mv.berufsschule.dualerbtmv.berufsschule.bvj2
mv.berufsschule.bvj25mv.berufsschule.bvjerbt
mv.berufsschule.bvja4mv.berufsschule.dualerbt
mv.berufsschule.bvb4mv.berufsschule.dualerbt
mv.berufsschule.avdual4mv.berufsschule.dualerbt
  • Vererbung: Benannte Einträge werden je Schlüssel überschrieben, Abschnitte wie Zeugnisnote oder Versetzung als Ganzes. Doppelte Kennungen, fehlende Basis und Zyklen sind Fehler.
  • Fundstelle: Jede Regel trägt ihre Rechtsgrundlage und ein Feld geprueft. Die Kommandozeile listet alle ungeprüften Regeln.
  • Fallbeispiele: Jedes Paket enthält Anfragen mit erwartetem Ergebnis. Sie laufen in den Tests, beim Bauen des Bündels und beim Bauen der Container-Images; ein scheiterndes Beispiel bricht den Build ab.
[[faelle]]
name = "mangelhaft in Biologie, ausgeglichen durch Geschichte"

Mechanismen statt Landeslogik

score-rules kennt kein Bundesland, sondern Bausteine, aus denen Pakete Regeln zusammensetzen:

  • Notenskalen (1–6, 0–15) und Prozentschlüssel
  • Rundung, einschließlich Ermessen bei genau x,5
  • Zeugnisnote als gewichtetes Mittel über Kategorien, mit Gewichten je Fachgruppe, nach Anzahl gestaffelt oder je Leistung, Hochrechnung bei fehlender Kategorie und Warnung bei zu wenigen Leistungen
  • Gefährdung und Versetzung mit Regeln je Jahrgang, Mindestnoten je Anspruchsebene, einer Ausgleichstabelle und Fachgruppen, die nur untereinander oder gar nicht ausgleichen
  • Abschluss mit Prüfung (etwa Mittlere Reife): Endnoten aus Jahres- und Prüfungsnoten, Bestehen mit Ausgleich, Gesamtprädikat und Berechtigungen
  • Aufbewahrung: Frist je Datenart, Zuordnung der Daten von score zu Datenarten, Fristbeginn mit Ablauf des Kalenderjahres, Fälligkeit zum Stichtag
  • eine kleine Ausdruckssprache für Formeln: Grundrechenarten, Vergleiche, min, max, summe, runden, abschneiden, wenn – ohne Schleifen und Zuweisungen

Vergleiche laufen über den Rang einer Notenstufe, sodass dieselbe Regel für 1–6 und 0–15 gilt.

Reine Funktion

Die Engine hat kein I/O, keine Uhr und keinen Zufall und rechnet mit Dezimalzahlen statt Gleitkomma. Jedes Ergebnis kommt mit einem Trace: welche Regel mit welchen Eingaben zu welchem Zwischenergebnis führte, bis zur Fundstelle. Dieser Trace wird mit jeder Halbjahresnote gespeichert.

Drei Ziele aus einem Crate

Ziel Nutzung
WebAssembly in score-api über wazero im Prozess, ohne cgo
WebAssembly im Browser Live-Vorschau im Notenrechner und im Raster
native Kommandozeile score-rules check, test, build, schema für Pflege und Tests

Die Schnittstelle beschreibt Regel-Engine-API.