Skip to content

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

@jurei733

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

Assignees

Labels

enhancementNew feature or request
No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions