I need a proper explanation about:
Wir wollen zu unserem Thema “Wahlprognosen für die Bundestagswahl” auch Vergleiche der Daten zu früheren Prognosen anstellen.
Dazu wollen wir Aussagen treffen wie zB:
“Im Vergleich zur letzten Umfrage vom 3.5.2017verbesserte/verschlechterte sich die SPD um X Prozentpunkte.”
Wie stellen wir das an?
kritisch hierbei sind:
Eine Property für das Datum der letzten Umfrage
eine Property für die Vokabel “verbesserte/verschlechterte sich”
Genau, Dani hat ja schon erwähnt, dass alle Daten in dem einen Datensatz drin sein müssen.
Dass ihr dann die 3 properties braucht hast du auch schon richtig erkannt. Wobei braucht ihr denn genau Hilfe?
Properties anlegen?
Auf die Daten zugreifen?
Die Properties verknüpfen?
Die Properties im Text benutzen?
Was habt ihr denn bisher mit Properties gemacht?
Wenn du mir etwas genauer beschreibst, wo dein Problem liegt, kann ich dir besser helfen
Danke dafür, aber ich denke soweit sind wir schon. Wir haben ja auch alle Kurse gemacht.
Wir würden nur gerne wissen wie genau diese Properties wie wir sie hier brauchen aussehen müssen… also was da reingeschrieben uns angekreuzt usw werden muss.
Okay, wenn ihr über die Materialien hinaus noch Hilfe braucht, macht bitte hier ein Ticket auf, und gebt am Besten einen Link zum Projekt mit dazu an, dann kann es sich unsere ATML3-Nanny ansehen.
Wie die Properties aussehen, hängt nämlich sehr von den Daten ab, die ihr bearbeitet.
Vielleicht sollten wir kurz klären, wie die Daten angeliefert werden sollten, denn das ist ja euer erstes ToDo.
Ich sehe zuerst einmal die Möglichkeit, die Datenfelder, die verglichen werden sollen, in separaten Feldern mit einem Suffix, beispielsweise _lastperiod anzulegen. Es ist herzlich egal, wie es heißt, Hauptsache, ihr zieht es konsequent durch.
Also wäre ein mögiches Datenfeld AfD_lastperiod.
Ich würde dann in der LIST_Parteienwerte_Parteiennamen diese Vorjahreswerte mit aufnehmen, und zwar in jedem Punkt. Ich mache es am Beispiel der AfD mal vor:
So sieht der Node der AfD jetzt aus {"name": "AfD", "percent": #AfD}
Wir fügen das Datenfeld mit dem Vorjahreswert hinzu und geben ihm den Key lastperiod_percent { "name": "AfD", "percent": #AfD, "lastperiod_percent": #AfD_lastperiod}
Jetzt können wir direkt im Node rechnen, wie groß die Veränderung eigentlich ist.
Das Ergebnis legen wir unter dem Key “delta” ab { "name": "AfD", "percent": #AfD, "lastperiod_percent": #AfD_lastperiod, "delta": (numeric(#AfD_lastperiod) - numeric(#AfD))}
Das müsst ihr mit jeder Partei einmal machen
Jetzt habt ihr eine Liste, die ihr in einer neuen Property nach Veränderung sortieren könnt (vergleiche LIST_Sortierte_Parteien).
Aus ihr könnt ihr mit neuen Properties Objekte abholen (nach dem Vorbild von MAX_Partei).
Aus denen könnt ihr wiederum Namen, Wert, Vorjahreswert oder Veränderung der Parteien abholen (siehe MAX_Partei_Wert).
Postet gerne die Properties hier, damit wir diskutieren können, ob sie in die richtige Richtung gehen.
Jetzt habe ich doch glatt den Punkt “verbesserte, verschlechterte sich” unterschlagen.
Hier solltet ihr drei Properties anlegen:
Eine holt mit collect() das Delta aus dem Datenobjekt der Partei.
Name: MAX_Partei_Delta
Truth expression: true
Mapping Expression bspw.: collect([$MAX_Partei], "delta")
Eine fragt nach Verbesserungen:
Name: MAX_Partei_up
Truth Expression: $MAX_Partei_Delta < 0
Kleiner Null, weil wir ja die letzte Umfrage minus der aktuellen rechnen. Ein erhöhter Wert gibt uns hier ein negatives Ergebnis zurück.
Vocabulary (noun): verbesserte sich auf
Eine fragt nach Verschlechterungen:
Name: MAX_Partei_down
Truth Expression: $MAX_Partei_Delta > 0
Vocabulary (noun): verschlechterte sich auf
Damit ihr beides an einer Stelle abrufen könnt, könnt ihr die Properties gruppieren:
Name: GROUP_MAX_Partei_change
Truth Expression: true
Mapping Expression: [$MAX_Partei_up, $MAX_Partei_down]
Wenn ihr die mit Use Group Property... in einem Textcontainer aufruft, steht hier immer etwas mit verbessert oder verschlechtert drin. Damit auch etwas Sinniges kommt, wenn es keine Unterschiede gibt, könnt ihr in diesem Container bei “Alternative Text” noch “erzielte” eintgragen. Das wird dann genommen, falls keine der beiden Properties in der Gruppe wahr wird.
Vielen Dank schonmal dafür. Ich habe soweit alle Schritte ausgeführt bis zum Hinzufügen der Veränderung in die Mapping Expression.
Dann muss ich anschließend neue Properties anlegen verstehe ich das richtig? Also je eine nach Vorbild von LIST_Sortierte_Parteien (mit dieser Mapping Expression: sort(list($LIST_Parteienwerte_Parteiennamen_Pollyvote), “percent”), nur abgeändert statt “percent” “delta” oder?)
eine nach dem Vorbild von MAX_Partei (mit dieser Mapping Expression: first(list($LIST_Gefilterte_Parteien),-1)?, was muss ich da anpassen?)
und eine nach dem Vorbild von MAX_Partei_Wert (mit dieser Mapping Expression: collect([$MAX_Partei], “percent”), hier wieder “percent” in “delta” ändern oder?)
Und zu deinen Erklärungen zu “verbesserte/verschelchterte sich”:
cih will nicht sagen, dass sie sich auf soundso viel Prozent verbesserte/verschlechterte sondern, um soundso viele Prozentpunkte. macht das einen Unterschied??
Hallo Frank,
ich bekomme bei der Property für die Verbesserungen bei der Truth Expression $MAX_Partei_Delta < 0 folgende Fehlermeldung: 1:17: Vertigo Syntax ERROR: extraneous input '<'
Ich finde allerdings meinen Fehler nicht, kannst Du mir hierbei weiterhelfen?
Vielen Dank schon mal!
Melanie
Hallo nochmal, ich habe eine neue Property gebaut und würde gerne wissen, ob die soweit stimmt. Leider wird die Hälfte meiner Properties im Text nicht ausgegeben und ich weiß nicht woran es liegt, deshalb kann ich nicht wirklich überprüfen ob die neu gebaute Property funktioniert
Ich will für die zweitstärkste Partei den prozentualen Unterschied von der letzten zur aktuellen Prognose angeben.
PS: Es wäre ganz super, wenn jemand noch in meinen Account schauen könnte um mal nachzuschauen warum die ganzen Properties nichts ausgeben ID 1328, Storytype Anna große Parteien
uns ist gestern aufgefallen, dass hier ein Denkfehler vorliegt…
Der Delta Wert berechnet den Wert der MAX_Partei in der aktuellen Prognose minus deren Wert der vorangegangenen Prognose. Letzterer ist allerdings als Wert der MAX_Partei zum letzten Erhebungszeitpunkt definiert. Falls also zum letzten Zeitpunkt eine andere Partei führte als zum aktuellen, werden Werte verschiedener Parteien in der Berechnung benutzt…
Ihr habt doch in dem Objekt LIST_Parteienwerte_Parteiennamen, wenn ich mich richtig erinnere, den aktuellen Wert der Partei unter “percent” und den vorherigen Wert der selben Partei unter “last_period” abgespeichert.
Wenn ihr das Objekt MAX_Partei da rausholt, habt ihr da drin für diese Partei den gegenwärtigen und den letzten Wert.
Das müsste eigentlich passen.
Was ihr, wenn ich dich richtig verstehe, macht, ist in einer neuen Liste die Werte der letzten Wahlperiode zu sortieren.
Was ihr aber stattdessen machen müsst, ist in der Liste für die aktuelle Periode den Eintrag für die beste, zweitbeste usw Partei zu finden, und aus diesem Eintrag das Feld “lastperiod” zu holen.