Hintergrund
Im Zusammenhang mit iqb-berlin/verona-modules-aspect#1050 bzw. dem Kommentar iqb-berlin/verona-modules-aspect#1050 (comment) ist aufgefallen, dass getrackte GeoGebra-Variablen im Coding nicht als nackte Werte ankommen, sondern als Strings im Schema:
Die Variable selbst wird im Schemer als VariableInfo mit format: "ggb-variable" geführt und daraus als normale BASE-Variable angelegt. Für Nutzer:innen ist aber nicht naheliegend, dass eine numerische Regel wie NUMERIC_MATCH: 468500 auf diesem Response-Wert nicht matcht, weil der gesamte String nicht numerisch parsebar ist.
Problem
Aktuell muss man wissen, dass GeoGebra-Variablenwerte als String mit Variablennamen, Gleichheitszeichen und Wert geliefert werden. Dadurch ist die naheliegende Bedienung im Schemer fehleranfällig:
- Nutzer:innen sehen/fachlich erwarten einen Zahlenwert.
- Sie legen eine numerische Regel auf den Zielwert an.
- Die Regel matcht nicht, weil der reale Response-Wert z. B.
ggb_490000 = 429979.167 lautet.
- Die bessere Lösung über
MATCH_REGEX oder fragmenting ist möglich, aber für diesen Spezialfall zu versteckt.
Vorschlag
Der Schemer sollte für Variablen mit VariableInfo.format === "ggb-variable" eine nutzerfreundliche Kodierhilfe anbieten.
Mögliche Umsetzung:
- Im Smart-Schemer/Generieren-Dialog GeoGebra-Variablen gesondert erkennen.
- Eine Option anbieten wie „GeoGebra-Wert hinter
= kodieren“.
- Automatisch eine passende Fragmentierung setzen, z. B.:
^ggb_490000\s*=\s*([-+]?\d+(?:[.,]\d+)?)$
- Danach je nach gewünschter Kodierung normale Regeln erzeugen:
- numerische Regeln (
NUMERIC_MATCH, NUMERIC_MIN, NUMERIC_FULL_RANGE, ...)
- boolesche Regeln (
IS_TRUE, IS_FALSE) für GeoGebra-Werte wie ggb_X = true
- optional String-/Regex-Regeln für nichtnumerische Werte
- Alternativ oder zusätzlich warnen, wenn bei
format: "ggb-variable" numerische Regeln ohne Fragmentierung verwendet werden.
Akzeptanzkriterien
- Der Schemer erkennt
format: "ggb-variable" und bietet eine spezifische Kodierhilfe an.
- Für numerische GeoGebra-Werte kann eine Nutzerin einen Zielwert eingeben, ohne manuell Regex/Fragmentierung kennen zu müssen.
- Die erzeugte Codierung extrahiert den Wert hinter
= und verwendet danach passende numerische Regeln.
- Boolesche GeoGebra-Werte wie
ggb_PunktRichtig = true/false bleiben sinnvoll kodierbar.
- Es gibt mindestens einen Testfall mit einem Response-Wert wie
ggb_490000 = 429979.167, der zeigt, dass die generierte Regel korrekt matcht.
- Die bestehende Behandlung normaler
string- und integer-Variablen bleibt unverändert.
Abgrenzung
Dieses Ticket betrifft die Bedienbarkeit und Regelerzeugung im Schemer. Das Status-/UNSET-Verhalten von GeoGebra-Variablen wird bereits separat in #174 bzw. in Aspect behandelt.
Hintergrund
Im Zusammenhang mit iqb-berlin/verona-modules-aspect#1050 bzw. dem Kommentar iqb-berlin/verona-modules-aspect#1050 (comment) ist aufgefallen, dass getrackte GeoGebra-Variablen im Coding nicht als nackte Werte ankommen, sondern als Strings im Schema:
Die Variable selbst wird im Schemer als
VariableInfomitformat: "ggb-variable"geführt und daraus als normaleBASE-Variable angelegt. Für Nutzer:innen ist aber nicht naheliegend, dass eine numerische Regel wieNUMERIC_MATCH: 468500auf diesem Response-Wert nicht matcht, weil der gesamte String nicht numerisch parsebar ist.Problem
Aktuell muss man wissen, dass GeoGebra-Variablenwerte als String mit Variablennamen, Gleichheitszeichen und Wert geliefert werden. Dadurch ist die naheliegende Bedienung im Schemer fehleranfällig:
ggb_490000 = 429979.167lautet.MATCH_REGEXoderfragmentingist möglich, aber für diesen Spezialfall zu versteckt.Vorschlag
Der Schemer sollte für Variablen mit
VariableInfo.format === "ggb-variable"eine nutzerfreundliche Kodierhilfe anbieten.Mögliche Umsetzung:
=kodieren“.NUMERIC_MATCH,NUMERIC_MIN,NUMERIC_FULL_RANGE, ...)IS_TRUE,IS_FALSE) für GeoGebra-Werte wieggb_X = trueformat: "ggb-variable"numerische Regeln ohne Fragmentierung verwendet werden.Akzeptanzkriterien
format: "ggb-variable"und bietet eine spezifische Kodierhilfe an.=und verwendet danach passende numerische Regeln.ggb_PunktRichtig = true/falsebleiben sinnvoll kodierbar.ggb_490000 = 429979.167, der zeigt, dass die generierte Regel korrekt matcht.string- undinteger-Variablen bleibt unverändert.Abgrenzung
Dieses Ticket betrifft die Bedienbarkeit und Regelerzeugung im Schemer. Das Status-/
UNSET-Verhalten von GeoGebra-Variablen wird bereits separat in #174 bzw. in Aspect behandelt.