Skip to content

Schemer: GeoGebra-Variablen nutzerfreundlich als Wert hinter = kodieren #178

Description

@jurei733

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:

ggb_490000 = 429979.167

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.

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions