Services: Admin-Lehrer, Backend-Lehrer, Studio v2, Website, Klausur-Service, School-Service, Voice-Service, Geo-Service, BreakPilot Drive, Agent-Core Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
659 lines
24 KiB
Python
659 lines
24 KiB
Python
"""
|
|
Erwartungshorizont Templates for Vorabitur Mode
|
|
|
|
Provides pre-defined templates based on German Abitur text analysis types:
|
|
- Textanalyse (pragmatische Texte)
|
|
- Sachtextanalyse
|
|
- Gedichtanalyse / Lyrikinterpretation
|
|
- Dramenanalyse
|
|
- Epische Textanalyse / Prosaanalyse
|
|
- Eroerterung (textgebunden / frei)
|
|
- Literarische Eroerterung
|
|
- Materialgestuetztes Schreiben
|
|
|
|
Each template includes:
|
|
- Structured criteria with weights
|
|
- Typical expectations per section
|
|
- NiBiS-aligned evaluation points
|
|
"""
|
|
|
|
from typing import Dict, List, Optional
|
|
from dataclasses import dataclass, field, asdict
|
|
from datetime import datetime
|
|
import uuid
|
|
|
|
|
|
# =============================================
|
|
# TEMPLATE TYPES
|
|
# =============================================
|
|
|
|
AUFGABENTYPEN = {
|
|
"textanalyse_pragmatisch": {
|
|
"name": "Textanalyse (pragmatische Texte)",
|
|
"description": "Analyse von Sachtexten, Reden, Kommentaren, Essays",
|
|
"category": "analyse"
|
|
},
|
|
"sachtextanalyse": {
|
|
"name": "Sachtextanalyse",
|
|
"description": "Analyse von informativen und appellativen Sachtexten",
|
|
"category": "analyse"
|
|
},
|
|
"gedichtanalyse": {
|
|
"name": "Gedichtanalyse / Lyrikinterpretation",
|
|
"description": "Analyse und Interpretation lyrischer Texte",
|
|
"category": "interpretation"
|
|
},
|
|
"dramenanalyse": {
|
|
"name": "Dramenanalyse",
|
|
"description": "Analyse dramatischer Texte und Szenen",
|
|
"category": "interpretation"
|
|
},
|
|
"prosaanalyse": {
|
|
"name": "Epische Textanalyse / Prosaanalyse",
|
|
"description": "Analyse von Romanauszuegen, Kurzgeschichten, Novellen",
|
|
"category": "interpretation"
|
|
},
|
|
"eroerterung_textgebunden": {
|
|
"name": "Textgebundene Eroerterung",
|
|
"description": "Eroerterung auf Basis eines Sachtextes",
|
|
"category": "argumentation"
|
|
},
|
|
"eroerterung_frei": {
|
|
"name": "Freie Eroerterung",
|
|
"description": "Freie Eroerterung zu einem Thema",
|
|
"category": "argumentation"
|
|
},
|
|
"eroerterung_literarisch": {
|
|
"name": "Literarische Eroerterung",
|
|
"description": "Eroerterung zu literarischen Fragestellungen",
|
|
"category": "argumentation"
|
|
},
|
|
"materialgestuetzt": {
|
|
"name": "Materialgestuetztes Schreiben",
|
|
"description": "Verfassen eines Textes auf Materialbasis",
|
|
"category": "produktion"
|
|
}
|
|
}
|
|
|
|
|
|
# =============================================
|
|
# TEMPLATE STRUCTURES
|
|
# =============================================
|
|
|
|
@dataclass
|
|
class EHKriterium:
|
|
"""Single criterion in an Erwartungshorizont."""
|
|
id: str
|
|
name: str
|
|
beschreibung: str
|
|
gewichtung: int # Percentage weight (0-100)
|
|
erwartungen: List[str] # Expected points/elements
|
|
max_punkte: int = 100
|
|
|
|
def to_dict(self):
|
|
return asdict(self)
|
|
|
|
|
|
@dataclass
|
|
class EHTemplate:
|
|
"""Complete Erwartungshorizont template."""
|
|
id: str
|
|
aufgabentyp: str
|
|
name: str
|
|
beschreibung: str
|
|
kriterien: List[EHKriterium]
|
|
einleitung_hinweise: List[str]
|
|
hauptteil_hinweise: List[str]
|
|
schluss_hinweise: List[str]
|
|
sprachliche_aspekte: List[str]
|
|
created_at: datetime = field(default_factory=lambda: datetime.now())
|
|
|
|
def to_dict(self):
|
|
d = {
|
|
'id': self.id,
|
|
'aufgabentyp': self.aufgabentyp,
|
|
'name': self.name,
|
|
'beschreibung': self.beschreibung,
|
|
'kriterien': [k.to_dict() for k in self.kriterien],
|
|
'einleitung_hinweise': self.einleitung_hinweise,
|
|
'hauptteil_hinweise': self.hauptteil_hinweise,
|
|
'schluss_hinweise': self.schluss_hinweise,
|
|
'sprachliche_aspekte': self.sprachliche_aspekte,
|
|
'created_at': self.created_at.isoformat()
|
|
}
|
|
return d
|
|
|
|
|
|
# =============================================
|
|
# PRE-DEFINED TEMPLATES
|
|
# =============================================
|
|
|
|
def get_textanalyse_template() -> EHTemplate:
|
|
"""Template for pragmatic text analysis."""
|
|
return EHTemplate(
|
|
id="template_textanalyse_pragmatisch",
|
|
aufgabentyp="textanalyse_pragmatisch",
|
|
name="Textanalyse pragmatischer Texte",
|
|
beschreibung="Vorlage fuer die Analyse von Sachtexten, Reden, Kommentaren und Essays",
|
|
kriterien=[
|
|
EHKriterium(
|
|
id="inhalt",
|
|
name="Inhaltliche Leistung",
|
|
beschreibung="Erfassung und Wiedergabe des Textinhalts",
|
|
gewichtung=40,
|
|
erwartungen=[
|
|
"Korrekte Erfassung der Textaussage/These",
|
|
"Vollstaendige Wiedergabe der Argumentationsstruktur",
|
|
"Erkennen von Intention und Adressatenbezug",
|
|
"Einordnung in den historischen/gesellschaftlichen Kontext",
|
|
"Beruecksichtigung aller relevanten Textaspekte"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="struktur",
|
|
name="Aufbau und Struktur",
|
|
beschreibung="Logischer Aufbau und Gliederung der Analyse",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Sinnvolle Einleitung mit Basisinformationen",
|
|
"Logische Gliederung des Hauptteils",
|
|
"Stringente Gedankenfuehrung",
|
|
"Angemessener Schluss mit Fazit/Wertung",
|
|
"Absatzgliederung und Ueberlaenge"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="analyse",
|
|
name="Analytische Qualitaet",
|
|
beschreibung="Tiefe und Qualitaet der Analyse",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Erkennen rhetorischer Mittel",
|
|
"Funktionale Deutung der Stilmittel",
|
|
"Analyse der Argumentationsweise",
|
|
"Beruecksichtigung von Wortwahl und Satzbau",
|
|
"Verknuepfung von Form und Inhalt"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="rechtschreibung",
|
|
name="Sprachliche Richtigkeit (Rechtschreibung)",
|
|
beschreibung="Orthografische Korrektheit",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekte Rechtschreibung",
|
|
"Korrekte Gross- und Kleinschreibung",
|
|
"Korrekte Getrennt- und Zusammenschreibung",
|
|
"Korrekte Fremdwortschreibung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="grammatik",
|
|
name="Sprachliche Richtigkeit (Grammatik)",
|
|
beschreibung="Grammatische Korrektheit und Zeichensetzung",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekter Satzbau",
|
|
"Korrekte Flexion",
|
|
"Korrekte Zeichensetzung",
|
|
"Korrekte Bezuege und Kongruenz"
|
|
]
|
|
)
|
|
],
|
|
einleitung_hinweise=[
|
|
"Nennung von Autor, Titel, Textsorte, Erscheinungsjahr",
|
|
"Benennung des Themas",
|
|
"Formulierung der Kernthese/Hauptaussage",
|
|
"Ggf. Einordnung in den Kontext"
|
|
],
|
|
hauptteil_hinweise=[
|
|
"Systematische Analyse der Argumentationsstruktur",
|
|
"Untersuchung der sprachlichen Gestaltung",
|
|
"Funktionale Deutung der Stilmittel",
|
|
"Beruecksichtigung von Adressatenbezug und Intention",
|
|
"Textbelege durch Zitate"
|
|
],
|
|
schluss_hinweise=[
|
|
"Zusammenfassung der Analyseergebnisse",
|
|
"Bewertung der Ueberzeugungskraft",
|
|
"Ggf. aktuelle Relevanz",
|
|
"Persoenliche Stellungnahme (wenn gefordert)"
|
|
],
|
|
sprachliche_aspekte=[
|
|
"Fachsprachliche Begriffe korrekt verwenden",
|
|
"Konjunktiv fuer indirekte Rede",
|
|
"Praesens als Tempus der Analyse",
|
|
"Sachlicher, analytischer Stil"
|
|
]
|
|
)
|
|
|
|
|
|
def get_gedichtanalyse_template() -> EHTemplate:
|
|
"""Template for poetry analysis."""
|
|
return EHTemplate(
|
|
id="template_gedichtanalyse",
|
|
aufgabentyp="gedichtanalyse",
|
|
name="Gedichtanalyse / Lyrikinterpretation",
|
|
beschreibung="Vorlage fuer die Analyse und Interpretation lyrischer Texte",
|
|
kriterien=[
|
|
EHKriterium(
|
|
id="inhalt",
|
|
name="Inhaltliche Leistung",
|
|
beschreibung="Erfassung und Deutung des Gedichtinhalts",
|
|
gewichtung=40,
|
|
erwartungen=[
|
|
"Korrekte Erfassung des lyrischen Ichs und der Sprechsituation",
|
|
"Vollstaendige inhaltliche Erschliessung aller Strophen",
|
|
"Erkennen der zentralen Motive und Themen",
|
|
"Epochenzuordnung und literaturgeschichtliche Einordnung",
|
|
"Deutung der Bildlichkeit und Symbolik"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="struktur",
|
|
name="Aufbau und Struktur",
|
|
beschreibung="Logischer Aufbau der Interpretation",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Einleitung mit Basisinformationen",
|
|
"Systematische strophenweise oder aspektorientierte Analyse",
|
|
"Verknuepfung von Form- und Inhaltsanalyse",
|
|
"Schluessige Gesamtdeutung im Schluss"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="formanalyse",
|
|
name="Formale Analyse",
|
|
beschreibung="Analyse der lyrischen Gestaltungsmittel",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Bestimmung von Metrum und Reimschema",
|
|
"Analyse der Klanggestaltung",
|
|
"Erkennen von Enjambements und Zaesuren",
|
|
"Deutung der formalen Mittel",
|
|
"Verknuepfung von Form und Inhalt"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="rechtschreibung",
|
|
name="Sprachliche Richtigkeit (Rechtschreibung)",
|
|
beschreibung="Orthografische Korrektheit",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekte Rechtschreibung",
|
|
"Korrekte Gross- und Kleinschreibung",
|
|
"Korrekte Getrennt- und Zusammenschreibung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="grammatik",
|
|
name="Sprachliche Richtigkeit (Grammatik)",
|
|
beschreibung="Grammatische Korrektheit und Zeichensetzung",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekter Satzbau",
|
|
"Korrekte Flexion",
|
|
"Korrekte Zeichensetzung"
|
|
]
|
|
)
|
|
],
|
|
einleitung_hinweise=[
|
|
"Autor, Titel, Entstehungsjahr/Epoche",
|
|
"Thema/Motiv des Gedichts",
|
|
"Erste Deutungshypothese",
|
|
"Formale Grunddaten (Strophen, Verse)"
|
|
],
|
|
hauptteil_hinweise=[
|
|
"Inhaltliche Analyse (strophenweise oder aspektorientiert)",
|
|
"Formale Analyse (Metrum, Reim, Klang)",
|
|
"Sprachliche Analyse (Stilmittel, Bildlichkeit)",
|
|
"Funktionale Verknuepfung aller Ebenen",
|
|
"Textbelege durch Zitate mit Versangabe"
|
|
],
|
|
schluss_hinweise=[
|
|
"Zusammenfassung der Interpretationsergebnisse",
|
|
"Bestaetigung/Modifikation der Deutungshypothese",
|
|
"Einordnung in Epoche/Werk des Autors",
|
|
"Aktualitaetsbezug (wenn sinnvoll)"
|
|
],
|
|
sprachliche_aspekte=[
|
|
"Fachbegriffe der Lyrikanalyse verwenden",
|
|
"Zwischen lyrischem Ich und Autor unterscheiden",
|
|
"Praesens als Analysetempus",
|
|
"Deutende statt beschreibende Formulierungen"
|
|
]
|
|
)
|
|
|
|
|
|
def get_eroerterung_template() -> EHTemplate:
|
|
"""Template for textgebundene Eroerterung."""
|
|
return EHTemplate(
|
|
id="template_eroerterung_textgebunden",
|
|
aufgabentyp="eroerterung_textgebunden",
|
|
name="Textgebundene Eroerterung",
|
|
beschreibung="Vorlage fuer die textgebundene Eroerterung auf Basis eines Sachtextes",
|
|
kriterien=[
|
|
EHKriterium(
|
|
id="inhalt",
|
|
name="Inhaltliche Leistung",
|
|
beschreibung="Qualitaet der Argumentation",
|
|
gewichtung=40,
|
|
erwartungen=[
|
|
"Korrekte Wiedergabe der Textposition",
|
|
"Differenzierte eigene Argumentation",
|
|
"Vielfaeltige und ueberzeugende Argumente",
|
|
"Beruecksichtigung von Pro und Contra",
|
|
"Sinnvolle Beispiele und Belege",
|
|
"Eigenstaendige Schlussfolgerung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="struktur",
|
|
name="Aufbau und Struktur",
|
|
beschreibung="Logischer Aufbau der Eroerterung",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Problemorientierte Einleitung",
|
|
"Klare Gliederung der Argumentation",
|
|
"Logische Argumentationsfolge",
|
|
"Sinnvolle Ueberlaetze",
|
|
"Begruendetes Fazit"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="textbezug",
|
|
name="Textbezug",
|
|
beschreibung="Verknuepfung mit dem Ausgangstext",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Angemessene Textwiedergabe",
|
|
"Kritische Auseinandersetzung mit Textposition",
|
|
"Korrekte Zitierweise",
|
|
"Verknuepfung eigener Argumente mit Text"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="rechtschreibung",
|
|
name="Sprachliche Richtigkeit (Rechtschreibung)",
|
|
beschreibung="Orthografische Korrektheit",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekte Rechtschreibung",
|
|
"Korrekte Gross- und Kleinschreibung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="grammatik",
|
|
name="Sprachliche Richtigkeit (Grammatik)",
|
|
beschreibung="Grammatische Korrektheit und Zeichensetzung",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekter Satzbau",
|
|
"Korrekte Zeichensetzung",
|
|
"Variationsreicher Ausdruck"
|
|
]
|
|
)
|
|
],
|
|
einleitung_hinweise=[
|
|
"Hinfuehrung zum Thema",
|
|
"Nennung des Ausgangstextes",
|
|
"Formulierung der Leitfrage/These",
|
|
"Ueberleitung zum Hauptteil"
|
|
],
|
|
hauptteil_hinweise=[
|
|
"Kurze Wiedergabe der Textposition",
|
|
"Systematische Argumentation (dialektisch oder linear)",
|
|
"Jedes Argument: These - Begruendung - Beispiel",
|
|
"Gewichtung der Argumente",
|
|
"Verknuepfung mit Textposition"
|
|
],
|
|
schluss_hinweise=[
|
|
"Zusammenfassung der wichtigsten Argumente",
|
|
"Eigene begruendete Stellungnahme",
|
|
"Ggf. Ausblick oder Appell"
|
|
],
|
|
sprachliche_aspekte=[
|
|
"Argumentative Konnektoren verwenden",
|
|
"Sachlicher, ueberzeugender Stil",
|
|
"Eigene Meinung kennzeichnen",
|
|
"Konjunktiv fuer Textpositionen"
|
|
]
|
|
)
|
|
|
|
|
|
def get_prosaanalyse_template() -> EHTemplate:
|
|
"""Template for prose/narrative text analysis."""
|
|
return EHTemplate(
|
|
id="template_prosaanalyse",
|
|
aufgabentyp="prosaanalyse",
|
|
name="Epische Textanalyse / Prosaanalyse",
|
|
beschreibung="Vorlage fuer die Analyse von Romanauszuegen, Kurzgeschichten und Novellen",
|
|
kriterien=[
|
|
EHKriterium(
|
|
id="inhalt",
|
|
name="Inhaltliche Leistung",
|
|
beschreibung="Erfassung und Deutung des Textinhalts",
|
|
gewichtung=40,
|
|
erwartungen=[
|
|
"Korrekte Erfassung der Handlung",
|
|
"Charakterisierung der Figuren",
|
|
"Erkennen der Erzaehlsituation",
|
|
"Deutung der Konflikte und Motive",
|
|
"Einordnung in den Gesamtzusammenhang"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="struktur",
|
|
name="Aufbau und Struktur",
|
|
beschreibung="Logischer Aufbau der Analyse",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Informative Einleitung",
|
|
"Systematische Analyse im Hauptteil",
|
|
"Verknuepfung der Analyseergebnisse",
|
|
"Schluessige Gesamtdeutung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="erzaehltechnik",
|
|
name="Erzaehltechnische Analyse",
|
|
beschreibung="Analyse narrativer Gestaltungsmittel",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Bestimmung der Erzaehlperspektive",
|
|
"Analyse von Zeitgestaltung",
|
|
"Raumgestaltung und Atmosphaere",
|
|
"Figurenrede und Bewusstseinsdarstellung",
|
|
"Funktionale Deutung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="rechtschreibung",
|
|
name="Sprachliche Richtigkeit (Rechtschreibung)",
|
|
beschreibung="Orthografische Korrektheit",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekte Rechtschreibung",
|
|
"Korrekte Gross- und Kleinschreibung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="grammatik",
|
|
name="Sprachliche Richtigkeit (Grammatik)",
|
|
beschreibung="Grammatische Korrektheit und Zeichensetzung",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekter Satzbau",
|
|
"Korrekte Zeichensetzung"
|
|
]
|
|
)
|
|
],
|
|
einleitung_hinweise=[
|
|
"Autor, Titel, Textsorte, Erscheinungsjahr",
|
|
"Einordnung des Auszugs in den Gesamttext",
|
|
"Thema und Deutungshypothese"
|
|
],
|
|
hauptteil_hinweise=[
|
|
"Kurze Inhaltsangabe des Auszugs",
|
|
"Analyse der Handlungsstruktur",
|
|
"Figurenanalyse mit Textbelegen",
|
|
"Erzaehltechnische Analyse",
|
|
"Sprachliche Analyse",
|
|
"Verknuepfung aller Ebenen"
|
|
],
|
|
schluss_hinweise=[
|
|
"Zusammenfassung der Analyseergebnisse",
|
|
"Bestaetigung der Deutungshypothese",
|
|
"Bedeutung fuer Gesamtwerk",
|
|
"Ggf. Aktualitaetsbezug"
|
|
],
|
|
sprachliche_aspekte=[
|
|
"Fachbegriffe der Erzaehltextanalyse",
|
|
"Zwischen Erzaehler und Autor unterscheiden",
|
|
"Praesens als Analysetempus",
|
|
"Deutende Formulierungen"
|
|
]
|
|
)
|
|
|
|
|
|
def get_dramenanalyse_template() -> EHTemplate:
|
|
"""Template for drama analysis."""
|
|
return EHTemplate(
|
|
id="template_dramenanalyse",
|
|
aufgabentyp="dramenanalyse",
|
|
name="Dramenanalyse",
|
|
beschreibung="Vorlage fuer die Analyse dramatischer Texte und Szenen",
|
|
kriterien=[
|
|
EHKriterium(
|
|
id="inhalt",
|
|
name="Inhaltliche Leistung",
|
|
beschreibung="Erfassung und Deutung des Szeneninhalts",
|
|
gewichtung=40,
|
|
erwartungen=[
|
|
"Korrekte Erfassung der Handlung",
|
|
"Analyse der Figurenkonstellation",
|
|
"Erkennen des dramatischen Konflikts",
|
|
"Einordnung in den Handlungsverlauf",
|
|
"Deutung der Szene im Gesamtzusammenhang"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="struktur",
|
|
name="Aufbau und Struktur",
|
|
beschreibung="Logischer Aufbau der Analyse",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Einleitung mit Kontextualisierung",
|
|
"Systematische Szenenanalyse",
|
|
"Verknuepfung der Analyseergebnisse",
|
|
"Schluessige Deutung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="dramentechnik",
|
|
name="Dramentechnische Analyse",
|
|
beschreibung="Analyse dramatischer Gestaltungsmittel",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Analyse der Dialoggestaltung",
|
|
"Regieanweisungen und Buehnenraum",
|
|
"Dramatische Spannung",
|
|
"Monolog/Dialog-Formen",
|
|
"Funktionale Deutung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="rechtschreibung",
|
|
name="Sprachliche Richtigkeit (Rechtschreibung)",
|
|
beschreibung="Orthografische Korrektheit",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekte Rechtschreibung"
|
|
]
|
|
),
|
|
EHKriterium(
|
|
id="grammatik",
|
|
name="Sprachliche Richtigkeit (Grammatik)",
|
|
beschreibung="Grammatische Korrektheit und Zeichensetzung",
|
|
gewichtung=15,
|
|
erwartungen=[
|
|
"Korrekter Satzbau",
|
|
"Korrekte Zeichensetzung"
|
|
]
|
|
)
|
|
],
|
|
einleitung_hinweise=[
|
|
"Autor, Titel, Uraufführungsjahr, Dramenform",
|
|
"Einordnung der Szene in den Handlungsverlauf",
|
|
"Thema und Deutungshypothese"
|
|
],
|
|
hauptteil_hinweise=[
|
|
"Situierung der Szene",
|
|
"Analyse des Dialogverlaufs",
|
|
"Figurenanalyse im Dialog",
|
|
"Sprachliche Analyse",
|
|
"Dramentechnische Mittel",
|
|
"Bedeutung fuer den Konflikt"
|
|
],
|
|
schluss_hinweise=[
|
|
"Zusammenfassung der Analyseergebnisse",
|
|
"Funktion der Szene im Drama",
|
|
"Bedeutung fuer die Gesamtdeutung"
|
|
],
|
|
sprachliche_aspekte=[
|
|
"Fachbegriffe der Dramenanalyse",
|
|
"Praesens als Analysetempus",
|
|
"Korrekte Zitierweise mit Akt/Szene/Zeile"
|
|
]
|
|
)
|
|
|
|
|
|
# =============================================
|
|
# TEMPLATE REGISTRY
|
|
# =============================================
|
|
|
|
TEMPLATES: Dict[str, EHTemplate] = {}
|
|
|
|
|
|
def initialize_templates():
|
|
"""Initialize all pre-defined templates."""
|
|
global TEMPLATES
|
|
TEMPLATES = {
|
|
"textanalyse_pragmatisch": get_textanalyse_template(),
|
|
"gedichtanalyse": get_gedichtanalyse_template(),
|
|
"eroerterung_textgebunden": get_eroerterung_template(),
|
|
"prosaanalyse": get_prosaanalyse_template(),
|
|
"dramenanalyse": get_dramenanalyse_template(),
|
|
}
|
|
|
|
|
|
def get_template(aufgabentyp: str) -> Optional[EHTemplate]:
|
|
"""Get a template by Aufgabentyp."""
|
|
if not TEMPLATES:
|
|
initialize_templates()
|
|
return TEMPLATES.get(aufgabentyp)
|
|
|
|
|
|
def list_templates() -> List[Dict]:
|
|
"""List all available templates."""
|
|
if not TEMPLATES:
|
|
initialize_templates()
|
|
return [
|
|
{
|
|
"aufgabentyp": typ,
|
|
"name": AUFGABENTYPEN.get(typ, {}).get("name", typ),
|
|
"description": AUFGABENTYPEN.get(typ, {}).get("description", ""),
|
|
"category": AUFGABENTYPEN.get(typ, {}).get("category", "other"),
|
|
}
|
|
for typ in TEMPLATES.keys()
|
|
]
|
|
|
|
|
|
def get_aufgabentypen() -> Dict:
|
|
"""Get all Aufgabentypen definitions."""
|
|
return AUFGABENTYPEN
|
|
|
|
|
|
# Initialize on import
|
|
initialize_templates()
|