Auswertungs-Prompt (Quelltext)
Du analysierst österreichische Polizei-Pressemeldungen.
Aufgabe: Bestimme, ob es sich um einen Verkehrsunfall handelt, extrahiere
alle beteiligten Personen mit ihren Attributen und erfasse Rahmenbedingungen.
═══════════════════════════════════════════════════════════════
DEFINITION VERKEHRSUNFALL
═══════════════════════════════════════════════════════════════
Ein Straßenverkehrsunfall mit Personenschaden liegt vor, wenn infolge des
Straßenverkehrs auf einer Straße mit öffentlichem Verkehr Personen verletzt
oder getötet wurden und daran zumindest ein in Bewegung befindliches Fahrzeug
beteiligt war. Die Anzahl der Beteiligten ist irrelevant — Alleinunfälle
(Abkommen, Sturz, Wildunfall) sind ebenfalls Unfälle.
KEIN Verkehrsunfall:
- Diebstahl, Sachbeschädigung, Einbruch, reine Geschwindigkeitsübertretung
- Fahrzeugbrand ohne Personenschaden (Brand MIT Verletzung/Tod ist ein Unfall)
- Fahrgast-Sturz durch Bremsung oder Notbremsung: IST ein Unfall, sofern
Personenschaden (Verletzung/Tod) entsteht — kein zweiter Beteiligter nötig.
Sturz ohne Personenschaden ist KEIN Unfall.
- Jede vorsätzliche/absichtliche Einwirkung auf Fahrzeuge oder Personen
- Alleinunfälle mit reinen Spiel-/Sportgeräten (Kinderfahrrad im Garten,
Rollschuhe, Skateboard, Inline-Skates, Tretroller) — nur wenn NICHT auf
einer öffentlichen Straße und NICHT mit einem Fahrzeug kollidiert.
ACHTUNG: Erwachsene auf E-Scootern auf öffentlichen Straßen sind Fahrzeuge,
KEIN Spielgerät.
- Suizid, Herzinfarkt, plötzliche Erkrankung OHNE Folgeunfall im Verkehr
(Herzinfarkt am Steuer + Fahrzeug prallt danach auf anderes = Unfall)
- Wenn der Titel "Sachbeschädigung", "Diebstahl", "Einbruch", "Festnahme"
oder ähnliche Begriffe enthält, ohne gleichzeitig explizit einen Unfall
zu nennen
- Nachtragsmeldungen: Wenn der Titel mit "Nachtrag" oder
"Nachtragsmeldung" beginnt (z.B. "Nachtrag:", "Nachtragsmeldung zu:",
"Nachtrag zu:"), handelt es sich um eine Folgemeldung zu einem
bereits berichteten Unfall und NICHT um ein eigenes Unfall-Event.
Setze is_traffic_accident=false. Die summary sollte mit
"Nachtragsmeldung: …" beginnen. Personen und Event-Felder können
weiterhin extrahiert werden, soweit aus dem Nachtrag erkennbar.
- Sport-/Freizeitunfälle auf Skipisten, Snowboardpisten, Rodelbahnen,
Loipen oder ähnlichen reinen Freizeitflächen. Pisten sind keine
Verkehrswege, sondern Freizeitflächen — auch Kollisionen zwischen
Skifahrern, Snowboardern oder Rodlern sind daher KEIN Verkehrsunfall,
selbst bei Fahrerflucht ("Schifahrerflucht") oder schwerer Verletzung.
Auch der unmittelbare Anstell-/Zugangsbereich von Liften
(Talstation, Bergstation, Sessellift, Schlepplift) gehört zur
Pistenfläche.
Erkennungsmuster (in Titel oder Text): "Skiunfall", "Schiunfall",
"Skikollision", "Schikollision", "Pistenkollision", "Skigebiet",
"Schigebiet", "Skipiste", "Piste Nr.", "Sessellift", "Schlepplift",
"Talstation", "Bergstation", "Schifahrer", "Skifahrer", "Snowboarder",
"Snowboardunfall", "Pistenraupe".
Setze is_traffic_accident=false UND participants=[] (leeres Array) —
Skifahrer/Snowboarder sind keine Verkehrsteilnehmer und dürfen NICHT
als Fußgänger erfasst werden. Die summary beschreibt den Vorfall
normal.
Ausnahme — echter Verkehrsunfall: Wenn ein Skifahrer/Snowboarder auf
einer öffentlichen Straße von einem Fahrzeug erfasst wird (z.B. beim
Queren der Straße zwischen zwei Pistenabschnitten), ist das ein
Verkehrsunfall — der Skifahrer wird dann als "Fußgänger" erfasst.
═══════════════════════════════════════════════════════════════
BETEILIGTE (participants)
═══════════════════════════════════════════════════════════════
Jede im Vorfall beteiligte Person bekommt einen eigenen Eintrag — auch
Mitfahrer, Sozius, Beifahrer und unbeteiligte Geschädigte (z.B. Fußgänger
auf dem Gehweg, der von einem schleudernden Fahrzeug erfasst wird).
Fahrzeugkategorien (geschlossene Liste — nur diese Werte verwenden):
Pkw, Lkw, Bus, Straßenbahn, Motorrad, Moped, Motorroller, Fahrrad,
E-Bike/Pedelec, E-Scooter, Traktor, Fußgänger, sonstiges
Zuordnungsregeln:
- "Kleinbus", "Minibus": Pkw
- "Kastenwagen", "Transporter": Lkw
- "Mofa": Moped
- "Rollstuhl", "Skateboard", "Inline-Skates": Fußgänger
- "Wohnmobil", "Kutsche", "Fuhrwerk", "Motorboot", "Motorschlitten", "Quad", "ATV": sonstiges
- Alles, was in keine andere Kategorie passt: sonstiges
Eisenbahnen sind *keine* "Straßenbahn": Hinweise im Kontext, dass es sich um eine Eisenbahn
handelt sind: Lokführer, Triebwagenzug, Eisenbahnkreuzung
vehicle vs. in_vehicle:
- "vehicle" — die Person lenkt/nutzt dieses Fahrzeug als eigenständiger
Verkehrsteilnehmer (Lenker, Radfahrer, E-Scooter-Fahrer, Fußgänger).
- "in_vehicle" — die Person befindet sich in/auf dem Fahrzeug, ohne es zu
lenken (Beifahrer, Sozius, Fahrgast in Bus/Straßenbahn).
- Genau EINES der beiden Felder muss gesetzt sein, das andere ist null.
- Beispiele:
- Pkw-Lenker: vehicle="Pkw", in_vehicle=null
- Beifahrer im Pkw: vehicle=null, in_vehicle="Pkw"
- Fußgänger: vehicle="Fußgänger", in_vehicle=null
- Fahrgast in Straßenbahn: vehicle=null, in_vehicle="Straßenbahn"
- Motorrad-Sozius: vehicle=null, in_vehicle="Motorrad"
Hinweise:
- Personen auf der Fahrbahn (Bauarbeiter, Polizisten, Pannenhilfe) gelten
als Fußgänger (vehicle="Fußgänger")
- Fußgänger-Stichwörter: "erfasst", "angefahren", "niedergestoßen",
"Fußgänger", "Passant", "Fußgeher"
Rolle (role):
- "verursacher" — hat die Kollision primär verursacht
- "geschädigt" — wurde durch die Kollision direkt geschädigt. Umfasst
den direkten Unfallgegner UND Fußgänger/Passanten, die von einem
Fahrzeug erfasst werden. Entscheidend: die Person wurde direkt von
der Kollision getroffen oder geschädigt.
Wenn ein Fahrzeug DURCH die Kollision selbst direkt getroffen wird
(Aufprall, seitliche Kollision, weggeschleudert werden), ist es
zwingend "geschädigt" — NICHT "betroffen". Die "betroffen"-Rolle ist
Insassen vorbehalten, die NICHT selbst als Verkehrsteilnehmer lenken.
Sekundärschäden ändern die Rolle nicht: Wenn Fahrzeug A von Fahrzeug B
gerammt und dadurch in eine Person geschleudert wird, bleibt A
"geschädigt" gegenüber B. Die erfasste Person ist ebenfalls
"geschädigt" — B ist Verursacher beider Schäden.
- "betroffen" — Mitfahrer, Sozius, Beifahrer und sonstige Personen,
die NICHT direkt an der Kollision beteiligt waren (weder Verursacher
noch direkt Geschädigter)
- null — nur wenn du die Rolle auch nach sorgfältiger Prüfung mit weniger
als 50% Sicherheit bestimmen kannst. Setze dann role=null und
role_confidence=null.
- Unklare Unfallursache bei mehreren Beteiligten: Enthält die PA
Formulierungen wie "aus bislang unbekannter Ursache", "aus ungeklärter
Ursache", "Ursache wird noch ermittelt" o.ä., setze role="betroffen"
bei allen direkt Beteiligten — auch wenn die Kollisionsrichtung einen
Verursacher nahelegt. Die Polizei hat hier bewusst keine Schuldzuweisung
vorgenommen. ACHTUNG: Diese Regel gilt NUR bei Unfällen mit mehreren
Beteiligten. Bei Alleinunfällen ist der Verunfallte immer der
Verursacher (siehe Alleinunfall-Regel).
AUSNAHME: Wenn ein Fußgänger beteiligt ist und KEIN konkreter Regelverstoß
des Fußgängers im Text genannt wird, geht die Sorgfaltspflicht-Regel
(Fahrzeuglenker = verursacher, Fußgänger = geschädigt) VOR. Die
"ungeklärte Ursache"-Formel bezieht sich dann nur auf Details des
Hergangs, nicht auf die Rollenverteilung — die Sorgfaltspflicht des
Fahrzeuglenkers gegenüber Fußgängern ist unabhängig von der konkreten
Unfallursache.
Verursacher bestimmen:
- Verursacher = wer die Kollision primär verursacht hat (NICHT automatisch
das schwerere Fahrzeug)
- Typische Hinweise: Rotlicht missachtet, Vorrang verletzt, ohne Anzuhalten
eingefahren, alkoholisiert, falsche Straßenseite, überhöhte Geschwindigkeit
- Ein Fußgänger ist NUR dann verursacher, wenn ein konkreter Regelverstoß
des Fußgängers im Text genannt wird (z.B. "bei Rot über den Schutzweg",
"trotz Rotlicht die Fahrbahn überquert"). Ohne konkreten Regelverstoß
des Fußgängers ist der Fahrzeuglenker der Verursacher.
- Allein das Betreten oder Begehen der Fahrbahn ist KEIN Regelverstoß —
Fußgänger dürfen die Fahrbahn queren und auch auf Straßen gehen (auch
nachts, auch auf Bundesstraßen). Der Fahrzeuglenker hat die
Sorgfaltspflicht und muss mit Fußgängern rechnen.
- Eine polizeilich angeordnete Blutabnahme oder ein Alkomatentest ist eine
Routine-Ermittlungsmaßnahme und KEIN Hinweis auf Verschulden.
- Personen, die ordnungsgemäß auf der Fahrbahn arbeiten oder stehen
(Bauarbeiter, Polizisten, Pannenhelfer, Absicherungspersonal), sind NICHT
der Verursacher. Das Fahrzeug, das in die Person fährt, ist der Verursacher.
- Wenn der Titel "fahrlässige Körperverletzung" oder "fahrlässige Tötung"
enthält, ist der Fahrzeuglenker der Verursacher — die Anzeige richtet
sich gegen den Lenker.
- Wenn ein Lenker den Unfallort verlässt oder bei Eintreffen der Polizei
nicht mehr vor Ort ist: hit_and_run=true setzen UND role="verursacher"
zuweisen — Fahrerflucht impliziert Schuldbewusstsein. Erkennungsmuster:
"flüchtete", "verließ die Unfallstelle", "war nicht mehr vor Ort",
"Fahrerflucht", "zu Fuß vom Unfallort", "beging Fahrerflucht".
- Alleinunfälle: Bei Alleinunfällen ist die verunfallte Person immer der
Verursacher (role="verursacher", role_confidence=1.0). Mitfahrer/Beifahrer
sind "betroffen". Alleinunfall-Konstellationen:
* Von der Fahrbahn abgekommen (gegen Baum, Leitplanke, Mauer, Graben)
* Überschlag oder Schleudern ohne Fremdeinwirkung
* Sturz vom Fahrzeug ohne Kollision (Motorrad, Rad, E-Scooter, Moped)
* Wildunfall: Kollision mit Wild oder sonstigen Tieren auf der Fahrbahn
(das Tier wird NICHT als participant erfasst; Tierart in animal_type)
* Fahrgast-Sturz im/aus einem Fahrzeug (Bus, Straßenbahn) bei Personenschaden
ACHTUNG: Diese Regel gilt ausschließlich bei echten Alleinunfällen ohne
weiteren Verkehrsteilnehmer. Bei Unfällen mit mehreren Beteiligten gilt
die Sorgfaltspflicht-Regel — auch wenn die Ursache unklar ist.
- Auffahrunfälle: Bei Auffahrunfällen (ein Fahrzeug fährt auf ein
vorausfahrendes auf) ist der Auffahrende der Verursacher, auch wenn
die genaue Ursache unklar ist (z.B. "konnte nicht mehr rechtzeitig
anhalten"). Kettenauffahrunfälle: alle Auffahrenden sind Verursacher.
- Exklusivität bei Zwei-Parteien-Kollisionen: Genau EINE Person ist
verursacher, die andere ist geschädigt. Wenn der Fußgänger durch
Regelverstoß (z.B. Rotlicht-Überquerung) verursacher ist, ist der
Fahrzeuglenker zwingend geschädigt — NICHT ebenfalls verursacher.
Umgekehrt genauso: wenn der Fahrzeuglenker verursacher ist, ist der
Unfallgegner geschädigt. Zwei Verursacher in derselben Kollision sind
nur dann zulässig, wenn der Text explizit mehrere unabhängige
Regelverstöße beider Seiten nennt (sehr selten).
Personen-Attribute:
- age (Integer): Alter, nur wenn im Text genannt
- gender ("m", "w", "d"): Geschlecht, ableitbar aus grammatischem Geschlecht.
In österreichischen Polizei-PA wird konsequent das weibliche Pendant
verwendet, wenn die Person weiblich ist — ein generisches Maskulinum
gibt es hier NICHT. Daraus folgt:
- "Lenker", "der Lenker", "ein 26-Jähriger", "der Mann" → "m"
- "Lenkerin", "die Lenkerin", "eine 26-Jährige", "die Frau" → "w"
"m"/"w" ist auch dann zu setzen, wenn das Geschlecht nur durch das
grammatische Geschlecht des Artikels/Substantivs hervorgeht — diese
Formulierung ist in Polizei-PA nie zufällig.
Null nur wenn gar keine grammatisch oder kontextuell ableitbare
Information vorhanden ist (sehr selten, z.B. "eine Person").
- injury (Integer oder null): Verletzungsgrad als Code:
0 = gesichert unverletzt
1 = leicht verletzt
2 = verletzt, Schwere unbekannt (z.B. "unbestimmten Grades verletzt",
nur "ins Spital gebracht" oder nur "erstversorgt" ohne weitere Angabe)
3 = schwer verletzt (auch wenn "notfallmedizinisch erstversorgt UND in
ein Spital/Krankenhaus gebracht" — beides zusammen spricht für schwer)
4 = lebensgefährlich verletzt
5 = gestorben (Todesfall, tödlich verletzt)
Null wenn im Text nicht erwähnt wird, ob die Person verletzt wurde.
- alcohol (Integer oder null): Alkoholisierung als Code:
0 = gesichert nicht alkoholisiert (Alkotest negativ, "war nicht alkoholisiert")
1 = alkoholisiert, aber EXPLIZIT unter dem gesetzlichen Grenzwert.
Selten! Erfordert eine Angabe wie "unter dem Grenzwert" oder einen
Promillewert unter 0,5‰ OHNE Führerscheinabnahme/Anzeige.
2 = alkoholisiert, Messwert unbekannt (z.B. "alkoholisiert", "Alkotest positiv",
"alkoholisierte Lenkerin", "stand unter Alkoholeinfluss" ohne Promillewert)
3 = alkoholisiert über dem Grenzwert. Erkennungsmuster:
- Anzeige/Strafanzeige wegen Alkohol (auch indirekt, z.B. "wegen Lenkens
mit über 0,1 Promille angezeigt")
- Führerscheinabnahme wegen Alkohol
- Promillewert über 0,5‰ (bzw. über 0,1‰ bei Personen unter 20 Jahren)
- "Alkolenker" im Text
WICHTIG: Jede Anzeige, die sich auf Alkohol bezieht, ist alcohol=3 — auch wenn
der Promillewert niedrig erscheint (z.B. 0,1‰ bei Jugendlichen).
Null wenn Alkohol im Text nicht erwähnt wird (NICHT false oder 0 setzen!).
Geltungsbereich: alcohol wird nur für aktive Verkehrsteilnehmer erfasst
(Fahrzeuglenker, Fußgänger). Bei Fahrzeuginsassen (in_vehicle-Rolle:
Beifahrer, Sozius, Fahrgast) immer alcohol=null, da an diesen Personen
üblicherweise kein Alkotest durchgeführt wird.
ENTSCHEIDUNGSBAUM (in dieser Reihenfolge prüfen):
1. Führerscheinabnahme wegen Alkohol? → alcohol=3
2. "Alkolenker" im Text/Titel? → alcohol=3
3. Anzeige wegen Alkohol? → alcohol=3
4. Promillewert ≥ 0,5‰ (≥ 0,1‰ bei <20 J.)? → alcohol=3
5. Promillewert < 0,5‰ (bzw. < 0,1‰ bei <20 J.)
UND keine Führerscheinabnahme/Anzeige? → alcohol=1
6. "Alkotest positiv" / "alkoholisiert" OHNE
konkreten Wert UND OHNE Führerscheinabnahme
und OHNE Anzeige? → alcohol=2
7. Explizit "unter dem Grenzwert" angegeben? → alcohol=1
8. "Alkotest negativ" / "nicht alkoholisiert"? → alcohol=0
9. Alkohol nicht erwähnt? → null
HÄUFIGER FEHLER: alcohol=1 ist NICHT "ja, alkoholisiert". Es bedeutet
ausschließlich "getestet und unter dem gesetzlichen Grenzwert". Bei
"Alkotest positiv" + Führerscheinabnahme → alcohol=3, NICHT 1.
- drug_status (String): Freitext wenn im Text erwähnt (z.B. "Suchtmittel im
Spiel", "Cannabiskonsum"). Null wenn nicht erwähnt.
- fatigue (Boolean): true nur wenn Übermüdung explizit erwähnt. Null wenn
nicht erwähnt (NICHT false).
- hit_and_run (Boolean): true wenn diese Person den Unfallort verlassen hat.
Erkennungsmuster: "flüchtete", "verließ die Unfallstelle", "Fahrerflucht",
"geflüchteter Lenker", "war beim Eintreffen nicht mehr vor Ort",
"nicht mehr vor Ort". Null wenn nicht erwähnt (NICHT false).
WICHTIG: Wenn hit_and_run=true, ist diese Person auch role="verursacher".
- role_confidence (Float 0–1): Deine Sicherheit bei der Rollenzuweisung.
Richtwerte: 1.0 = eindeutig (Alleinunfall, Auffahrunfall, Anzeige wegen
fahrlässiger KV/Tötung, Fahrerflucht). 0.7–0.9 = wahrscheinlich aber
nicht zweifelsfrei. 0.5–0.7 = unsicher. Unter 0.5 → role=null setzen.
Null wenn role=null.
═══════════════════════════════════════════════════════════════
EVENT-FELDER
═══════════════════════════════════════════════════════════════
- is_traffic_accident (Boolean): Siehe Definition oben
- confidence (Float 0–1): Konfidenz der Klassifizierung
- summary (String): Kurzbeschreibung des Vorfalls (1–2 Sätze)
- event_date (String "YYYY-MM-DD"): Datum des Vorfalls, aus dem Text
extrahieren (z.B. "am 15. März 2024" → "2024-03-15"). Null wenn kein
explizites Datum im Text steht.
- time_of_day (String "HH:MM", 24h-Format): Uhrzeit des Vorfalls, aus dem
Text extrahieren (z.B. "gegen 14:30 Uhr" → "14:30"). Null wenn nicht
angegeben.
- location_type (String): Art des Unfallorts:
- "ortsgebiet" — innerorts, Stadtgebiet, Ortschaft
- "ueberland" — Freilandstraße, Landesstraße, Bundesstraße außerorts
- "autobahn" — Autobahn, Schnellstraße
- "sonstige" — Parkplatz, Betriebsgelände, sonstige Verkehrsfläche
Entscheidend ist der Unfallort, NICHT die Straßenbezeichnung: Eine
Bundesstraße (B1, B17 etc.) innerhalb einer Ortschaft ist "ortsgebiet",
nicht "ueberland". Ortsangaben wie "in [Ortsname]" wiegen schwerer als
die Straßennummer. Null wenn nicht
bestimmbar.
ORTSANGABEN (alle optional, nur wenn im Text erkennbar):
- location_state (String): Bundesland, z.B. "Steiermark", "Wien",
"Tirol". Null wenn nicht erkennbar.
- location_city (String): Ortschaft/Stadt, z.B. "Graz", "Innsbruck",
"Klagenfurt". Bei Wien: "Wien". Null wenn nicht erkennbar.
- location_district (String): Politischer Bezirk — verwende EXAKT
einen der normalisierten Namen aus dieser Liste:
Wien: "1. Innere Stadt", "2. Leopoldstadt", "3. Landstraße",
"4. Wieden", "5. Margareten", "6. Mariahilf", "7. Neubau",
"8. Josefstadt", "9. Alsergrund", "10. Favoriten", "11. Simmering",
"12. Meidling", "13. Hietzing", "14. Penzing",
"15. Rudolfsheim-Fünfhaus", "16. Ottakring", "17. Hernals",
"18. Währing", "19. Döbling", "20. Brigittenau", "21. Floridsdorf",
"22. Donaustadt", "23. Liesing".
Erkennungsmuster: "im 6. Bezirk", "in Mariahilf",
"Mariahilfer Straße" (→ 6. oder 7.), PLZ 1060 (→ 6. Mariahilf).
Burgenland: "Eisenstadt (Stadt)", "Rust (Stadt)",
"Eisenstadt-Umgebung", "Güssing", "Jennersdorf", "Mattersburg",
"Neusiedl am See", "Oberpullendorf", "Oberwart".
Kärnten: "Feldkirchen", "Hermagor", "Klagenfurt (Stadt)",
"Klagenfurt Land", "Spittal an der Drau", "St. Veit an der Glan",
"Villach (Stadt)", "Villach Land", "Völkermarkt", "Wolfsberg".
Niederösterreich: "Amstetten", "Baden", "Bruck an der Leitha",
"Gänserndorf", "Gmünd", "Hollabrunn", "Horn", "Korneuburg",
"Krems an der Donau (Stadt)", "Krems", "Lilienfeld", "Melk",
"Mistelbach", "Mödling", "Neunkirchen", "Sankt Pölten (Stadt)",
"Sankt Pölten (Land)", "Scheibbs", "Tulln",
"Waidhofen an der Thaya", "Waidhofen an der Ybbs (Stadt)",
"Wiener Neustadt (Stadt)", "Wiener Neustadt (Land)", "Zwettl".
Oberösterreich: "Braunau am Inn", "Eferding", "Freistadt",
"Gmunden", "Grieskirchen", "Kirchdorf an der Krems",
"Linz (Stadt)", "Linz-Land", "Perg", "Ried im Innkreis",
"Rohrbach", "Schärding", "Steyr (Stadt)", "Steyr-Land",
"Urfahr-Umgebung", "Vöcklabruck", "Wels (Stadt)", "Wels-Land".
Salzburg: "Hallein", "Salzburg (Stadt)", "Salzburg-Umgebung",
"St. Johann im Pongau", "Tamsweg", "Zell am See".
Steiermark: "Bruck-Mürzzuschlag", "Deutschlandsberg",
"Graz (Stadt)", "Graz-Umgebung", "Hartberg-Fürstenfeld",
"Leibnitz", "Leoben", "Liezen", "Murau", "Murtal",
"Südoststeiermark", "Voitsberg", "Weiz".
Tirol: "Imst", "Innsbruck (Stadt)", "Innsbruck-Land", "Kitzbühel",
"Kufstein", "Landeck", "Lienz", "Reutte", "Schwaz".
Vorarlberg: "Bludenz", "Bregenz", "Dornbirn", "Feldkirch".
Nur wenn der Bezirk im Text erkennbar ist. Nicht raten.
- location_street (String): Straßenname inkl. Straßennummer bei
Bundesstraßen, z.B. "Hauptstraße", "B17", "Südautobahn A2".
Null wenn nicht erkennbar.
- location_house_number (String): Hausnummer/Ordnungsnummer,
z.B. "15", "23a". Null wenn nicht erkennbar.
- location_notes (String): Sonstige Ortsangaben wie kreuzende
Straßen, Kilometerangaben, Landmarks. Z.B. "Kreuzung mit
Mariahilfer Straße", "Höhe km 23,4", "bei der Volksschule".
Null wenn nicht erkennbar.
- weather (Array von Strings): Witterungsbedingungen, nur wenn im Text
erwähnt (z.B. ["Regen"], ["Nebel", "Glatteis"]). Null wenn nicht erwähnt.
- is_wildlife_accident (Boolean): true wenn ein Tier beteiligt ist
(Wild ODER sonstiges Tier). Wird aus animal_type abgeleitet — beide
Felder setzen.
- animal_type (String): Art des beteiligten Tieres:
- "wild" = Wild (Reh, Hirsch, Wildschwein, Fuchs, Hase u.ä.)
- "sonstiges" = sonstiges Tier (Hund, Katze, Rind, Pferd u.ä.)
Null wenn kein Tier beteiligt.
- accident_type (String): Unfalltyp:
- "alleinunfall" — ein Fahrzeug/eine Person, kein weiterer Beteiligter
(z.B. von Fahrbahn abgekommen, Überschlag, Fahrgast-Sturz im Bus)
- "wildunfall" — Kollision mit Wild oder sonstigen Tieren
- "auffahrunfall" — Fahrzeug fährt auf vorausfahrendes auf
- "kreuzungskollision" — Kollision im Kreuzungs- oder Einmündungsbereich
- "ueberholunfall" — Unfall beim Überhol- oder Ausweichmanöver
- "begegnungskollision" — Frontal- oder Streifkollision mit Gegenverkehr
- "fussgaengerunfall" — Kollision mit Fußgänger auf Schutzweg/Fahrbahn
- "sturz" — Sturz vom Fahrzeug ohne Kollision (Motorrad, Rad, E-Scooter):
Fahrzeug kippt/rutscht, Person fällt ohne Fremdeinwirkung
- "sonstiges" — sonstige oder nicht eindeutig zuordenbare Konstellation
Null wenn is_traffic_accident=false oder nicht bestimmbar.
- primary_cause (String): Hauptursache des Unfalls, normierter Code:
- "vorrang_verletzt" — Vorrangverletzung (Stopp, Vorrang, Einbiegen)
- "unaufmerksamkeit" — Ablenkung, Unkonzentriertheit, Sekundenschlaf
- "ueberhoehte_geschwindigkeit" — zu schnell für Verhältnisse oder absolut
- "sicherheitsabstand" — zu geringer Abstand zum Vorausfahrenden
- "ueberholfehler" — Fehler beim Überholen oder Spurwechsel
- "fehlverhalten_fussgaenger" — Regelverstoß eines Fußgängers
- "missachtung_gebote" — Rotlicht, Stopptafel, Einbahnstraße o.ä.
Null wenn keine dominante Ursache erkennbar oder nicht ableitbar.
- road_condition (String): Straßenzustand, NUR wenn explizit im Text genannt:
- "trocken" — trockene Fahrbahn ausdrücklich erwähnt
- "nass" — nasse Fahrbahn, Pfützen, nach Regen (muss explizit stehen)
- "schnee" — verschneite Fahrbahn, Schneematsch
- "eis" — Glatteis, Eisglätte, winterglatte Fahrbahn, Reifglätte
- "sonstiges" — Sand, Schotter, Öl, sonstige besondere Beläge
Null wenn nicht explizit genannt (NICHT aus Witterung ableiten!).
- accident_causes (Array von Strings): Alle erkennbaren Unfallursachen als
freie Strings, z.B. ["Vorrang verletzt"], ["Alkohol", "überhöhte
Geschwindigkeit"], ["Rotlicht missachtet"]. Null wenn keine Ursache
erkennbar.
═══════════════════════════════════════════════════════════════
MEHRFACHBERICHTE
═══════════════════════════════════════════════════════════════
Wenn die Meldung mehrere zeitlich oder örtlich getrennte Vorfälle beschreibt,
analysiere JEDEN Vorfall separat. Gib immer ein Array "events" zurück — auch
bei nur einem Vorfall.
Auch bei Nicht-Unfällen (is_traffic_accident=false): participants soweit
erkennbar befüllen und Event-Felder (time_of_day, location_type etc.)
extrahieren.
═══════════════════════════════════════════════════════════════
ANTWORTFORMAT
═══════════════════════════════════════════════════════════════
Antworte ausschließlich als JSON ohne weiteren Text.
Beispiel — Einzelvorfall mit bekannter Schuldfrage:
{
"events": [
{
"is_traffic_accident": true,
"confidence": 0.95,
"summary": "Alkoholisierter Pkw-Lenker übersah Radfahrerin beim Abbiegen",
"event_date": "2024-03-15",
"time_of_day": "14:30",
"location_type": "ortsgebiet",
"location_state": "Wien",
"location_city": "Wien",
"location_district": null,
"location_street": "Mariahilfer Straße",
"location_house_number": null,
"location_notes": "Kreuzung mit Neubaugasse",
"weather": ["Regen"],
"is_wildlife_accident": false,
"accident_type": "kreuzungskollision",
"animal_type": null,
"primary_cause": "vorrang_verletzt",
"road_condition": null,
"accident_causes": ["Vorrang verletzt", "Alkohol"],
"participants": [
{
"vehicle": "Pkw",
"in_vehicle": null,
"role": "verursacher",
"role_confidence": 0.95,
"age": 45,
"gender": "m",
"injury": 0,
"alcohol": 3,
"drug_status": null,
"fatigue": null,
"hit_and_run": null
},
{
"vehicle": "Fahrrad",
"in_vehicle": null,
"role": "geschädigt",
"role_confidence": 0.95,
"age": 32,
"gender": "w",
"injury": 3,
"alcohol": null,
"drug_status": null,
"fatigue": null,
"hit_and_run": null
}
]
}
]
}
Beispiel — Mehrfachbericht (2 Vorfälle):
{
"events": [
{
"is_traffic_accident": true,
"confidence": 0.75,
"summary": "Straßenbahn-Notbremsung, Fahrgast verletzt",
"event_date": "2024-03-15",
"time_of_day": "18:00",
"location_type": "ortsgebiet",
"location_state": "Steiermark",
"location_city": "Graz",
"location_district": null,
"location_street": null,
"location_house_number": null,
"location_notes": null,
"weather": null,
"is_wildlife_accident": false,
"accident_type": "sonstiges",
"animal_type": null,
"primary_cause": null,
"road_condition": null,
"accident_causes": null,
"participants": [
{
"vehicle": "Straßenbahn",
"in_vehicle": null,
"role": null,
"role_confidence": null,
"age": null,
"gender": "m",
"injury": 0,
"alcohol": null,
"drug_status": null,
"fatigue": null,
"hit_and_run": null
},
{
"vehicle": null,
"in_vehicle": "Straßenbahn",
"role": null,
"role_confidence": null,
"age": 65,
"gender": "m",
"injury": 1,
"alcohol": null,
"drug_status": null,
"fatigue": null,
"hit_and_run": null
}
]
},
{
"is_traffic_accident": true,
"confidence": 0.9,
"summary": "Fußgänger überquert Schutzweg bei Rot, von Pkw erfasst",
"event_date": "2024-03-15",
"time_of_day": "23:30",
"location_type": "ortsgebiet",
"location_state": "Steiermark",
"location_city": "Graz",
"location_district": null,
"location_street": "Hauptplatz",
"location_house_number": null,
"location_notes": null,
"weather": null,
"is_wildlife_accident": false,
"accident_type": "fussgaengerunfall",
"animal_type": null,
"primary_cause": "missachtung_gebote",
"road_condition": null,
"accident_causes": ["Rotlicht missachtet"],
"participants": [
{
"vehicle": "Fußgänger",
"in_vehicle": null,
"role": "verursacher",
"role_confidence": 0.9,
"age": 26,
"gender": "m",
"injury": 3,
"alcohol": null,
"drug_status": null,
"fatigue": null,
"hit_and_run": null
},
{
"vehicle": "Pkw",
"in_vehicle": null,
"role": "geschädigt",
"role_confidence": 0.9,
"age": null,
"gender": null,
"injury": 0,
"alcohol": null,
"drug_status": null,
"fatigue": null,
"hit_and_run": null
}
]
}
]
}
Beispiel — Wildunfall (Alleinunfall mit Tier):
{
"events": [
{
"is_traffic_accident": true,
"confidence": 0.95,
"summary": "Pkw kollidiert mit Reh auf Landesstraße",
"event_date": null,
"time_of_day": "05:45",
"location_type": "ueberland",
"location_state": "Niederösterreich",
"location_city": null,
"location_district": "Lilienfeld",
"location_street": "B21",
"location_house_number": null,
"location_notes": "zwischen Kleinzell und Rohrbach, Höhe km 14",
"weather": ["Nebel"],
"is_wildlife_accident": true,
"accident_type": "wildunfall",
"animal_type": "wild",
"primary_cause": null,
"road_condition": null,
"accident_causes": null,
"participants": [
{
"vehicle": "Pkw",
"in_vehicle": null,
"role": "verursacher",
"role_confidence": 0.9,
"age": 53,
"gender": "m",
"injury": 0,
"alcohol": null,
"drug_status": null,
"fatigue": null,
"hit_and_run": null
}
]
}
]
}
Beispiel — Motorrad-Alleinunfall (Abkommen von Fahrbahn):
{
"events": [
{
"is_traffic_accident": true,
"confidence": 0.95,
"summary": "Motorrad-Lenker kam in Linkskurve von der Fahrbahn ab und prallte gegen Leitplanke",
"event_date": null,
"time_of_day": "22:15",
"location_type": "ueberland",
"location_state": "Tirol",
"location_city": null,
"location_district": "Kufstein",
"location_street": "B172",
"location_house_number": null,
"location_notes": null,
"weather": null,
"is_wildlife_accident": false,
"accident_type": "alleinunfall",
"animal_type": null,
"primary_cause": "ueberhoehte_geschwindigkeit",
"road_condition": null,
"accident_causes": ["überhöhte Geschwindigkeit"],
"participants": [
{
"vehicle": "Motorrad",
"in_vehicle": null,
"role": "verursacher",
"role_confidence": 1.0,
"age": 28,
"gender": "m",
"injury": 3,
"alcohol": null,
"drug_status": null,
"fatigue": null,
"hit_and_run": null
}
]
}
]
}