200 OK, GeltendeFassung, "Verordnung der Bundesministerin // fuer Unterricht, Kunst und Kultur ueber die Lehrplaene der Mittelschulen" (BGBl. II 185/2012 in der Fassung BGBl. II 1/2023). // Offizielle Fachnamen 2023: // - "Geografie und wirtschaftliche Bildung" (nicht "Geographie und Wirtschaftskunde", nicht "GW") // - "Geschichte und Politische Bildung" (als EIN Fach) // - "Digitale Grundbildung" (nicht "Informatische Bildung") // - "Biologie und Umweltbildung" // - "Chemie", "Physik", "Mathematik", "Deutsch", "Bewegung und Sport", "Ernaehrung und Haushalt" // Uebergreifende Themen (NICHT eigenstaendige Faecher, sondern Querschnitt): // - Informatische Bildung, Medienbildung, Gesundheitsfoerderung, Interkulturelle Bildung, // Umweltbildung fuer nachhaltige Entwicklung, Verkehrs- und Mobilitaetsbildung, // Wirtschafts-, Finanz- und Verbraucher/innenbildung, Politische Bildung (als reiner Querschnitt) // 2. https://geographie.de/publikationen/ -> 404 Not Found (bestaetigt 2026-06-08). // Alternativ-URL: https://vgdh.de/wp-content/uploads/2023/08/Bildungsstandards_Geographie_2020_Web.pdf (DGfG 2020, 10. Auflage) // 3. https://kultus.hessen.de/.../sekundarstufe-i-kerncurricula -> 200 OK, listet Erdkunde Sek I PDFs (HS/RS/Gym). // 4. https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/{7,9}/geographie -> 200 OK, "LehrplanPLUS" Bayern, aktuell (Schuljahr 2024/25 Flexibilisierung). // 5. https://www.bildungsplaene-bw.de/.../BP2016BW_ALLG_SEK1_GEO_IK_5-6_01_02 -> 200 OK, BP 2016 BW. // 6. https://lehrplannavigator.nrw.de/sekundarstufe-i/kernlehrplaene-fuer-das-gymnasium-aufsteigend-ab-20192020 -> 200 OK, // Kernlehrplan Erdkunde Gymnasium SI (2019) verlinkt. // 7. https://static.bildung-rp.de/.../Ek_G_Sk_Sek_I__LP_2021_.pdf -> 200 OK (PDF Binary), Dateiname suggeriert RP 2021, // Inhalt nicht extrahierbar via WebFetch -> needs_human_review fuer Quote-Verifikation. // 8. https://bildungsserver.berlin-brandenburg.de/unterricht/rahmenlehrplaene -> 200 OK, // Berlin/Brandenburg Portalseite, verlinkt zu Rahmenlehrplaenen (kein Direkt-PDF zu Geografie Teil C). // 9. https://www.hamburg.de/.../geographie-gym-seki-data.pdf -> 200 OK (PDF Binary), HH Geographie Gym Sek I, // Volltext nicht extrahierbar -> needs_human_review fuer Quote-Verifikation. // 10. https://www.schulportal.sachsen.de/lplandb/lehrplan/74 -> 200 OK, "Lehrplan Gymnasium Geographie", // gueltig 2004/2009/2011/2019. Aelter als BW/Bayern/HE, aber LAUT QUELLE NOCH GUELTIG. // -> Markierung "version_outdated" NICHT angebracht (er gilt offiziell). Hinweis in details. // 11. https://cuvo.nibis.de/cuvo.php?p=download&upload=61 -> HTTP 403 fuer WebFetch (Bot-Block). // URL-Pfad ueber sicheres Portal (cuvo.nibis.de = Niedersaechsisches Kerncurriculum-Portal). // -> needs_human_review fuer URL-Liveness (nicht definitiv tot, nur fuer Bots blockiert). // 12. https://v-fe.lehrplan.ch/index.php?code=... und https://fl.lehrplan.ch/index.php?code=... -> HTTP 403 fuer WebFetch. // v-fe.lehrplan.ch = "Vorlage Lehrplan 21" (Generische Vorlage, Kantone forken davon). // fl.lehrplan.ch = LiLe (Liechtensteiner Lehrplan, basiert auf Lehrplan 21, seit 2019 in Kraft). // Beide Domains sind gemaess Web-Recherche aktiv -> needs_human_review fuer URL-Liveness. // 13. https://www.lile.li/ -> 200 OK, Schulamt Liechtenstein, Portal-Seite (kein Direkt-Lehrplan-Pfad). // 14. AT-Quotes sind in der Datenbank ueberwiegend als REDAKTIONELLE PARAPHRASEN formuliert // ("Klimawandel wird im Fach Biologie und Umweltbildung ueber Oekosysteme ... behandelt"), // nicht als woertliche Zitate aus dem Verordnungstext. Ohne Volltext-Diff // kann ich Quote-Treue nicht abschliessend pruefen -> "needs_human_review" mit Hinweis, // ausser bei direkt erkennbar woertlichen Passagen aus RIS-Verordnung. // Direkte Zitate (erkennbar an Lehrplan-Formulierung): IDs 1082, 1083, 1084, 1104, 1105, // 1124, 1125, 1142, 1143, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, // 1171, 1172, 1182, 1183, 1184, 1190, 1191, 1198, 1199, 1200, 1206, 1209, 1210, 1213, 1214, // 1215, 1221. // Subject-Whitelisten pro Land $at_subjects_official_facher = [ 'Geografie und wirtschaftliche Bildung','Geschichte und Politische Bildung','Geschichte und politische Bildung', 'Digitale Grundbildung','Biologie und Umweltbildung','Chemie','Physik','Mathematik','Deutsch', 'Bewegung und Sport','Ernaehrung und Haushalt','Ernährung und Haushalt','Kunst und Gestaltung','Musik','Technik und Design', ]; $at_subjects_querschnitt = [ 'Umweltbildung für nachhaltige Entwicklung','Verkehrs- und Mobilitätsbildung', 'Wirtschafts-, Finanz- und Verbraucher:innenbildung','Gesundheitsförderung','Medienbildung', 'Interkulturelle Bildung','Informatische Bildung','Politische Bildung', ]; $ch_subjects_lehrplan21 = [ 'RZG','RZG (Räume, Zeiten, Gesellschaften)','Natur und Technik (NT)','Wirtschaft, Arbeit, Haushalt (WAH)', 'Mathematik','Medien und Informatik (MI)','Ethik, Religionen, Gemeinschaft (ERG)', 'BNE — Natürliche Umwelt und Ressourcen','BNE — Wirtschaft und Konsum', 'Überfachliche Kompetenzen — Methodische', ]; $li_subjects = ['RZG','BNE — Klimakompetenz','BNE — Raumentwicklung Rheintal','BNE — Rheintal und Schutzbauten']; // URL-Status-Map (verifiziert in dieser Session) $url_status = [ 'https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=20007850' => 'live', 'https://geographie.de/publikationen/' => 'dead404', 'https://kultus.hessen.de/unterricht/kerncurricula-und-lehrplaene/kerncurricula/sekundarstufe-i-kerncurricula' => 'live', 'https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/9/geographie' => 'live', 'https://www.lehrplanplus.bayern.de/fachlehrplan/gymnasium/7/geographie' => 'live', 'https://www.bildungsplaene-bw.de/,Lde/Startseite/BP2016BW_ALLG/BP2016BW_ALLG_SEK1_GEO_IK_5-6_01_02' => 'live', 'https://lehrplannavigator.nrw.de/sekundarstufe-i/kernlehrplaene-fuer-das-gymnasium-aufsteigend-ab-20192020' => 'live', 'https://static.bildung-rp.de/lehrplaene/gesellschaftswissenschaften/Ek_G_Sk_Sek_I__LP_2021_.pdf' => 'live_pdf_unread', 'https://bildungsserver.berlin-brandenburg.de/unterricht/rahmenlehrplaene' => 'live_portal', 'https://www.hamburg.de/resource/blob/123438/90e4cf7b25114e17d1ac1f5c19c7b4f2/geographie-gym-seki-data.pdf' => 'live_pdf_unread', 'https://www.schulportal.sachsen.de/lplandb/lehrplan/74' => 'live', 'https://cuvo.nibis.de/cuvo.php?p=download&upload=61' => 'botblock_403', 'https://www.lile.li/' => 'live_portal', ]; // Direkt-Zitate aus AT-RIS (erkennbar woertliche Lehrplan-Formulierungen) $at_direct_quotes = [1082,1083,1084,1104,1105,1124,1125,1142,1143,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1182,1183,1184,1190,1191,1198,1199,1200,1206,1209,1210,1213,1214,1215,1221]; foreach ($lines as $l) { $r = json_decode($l, true); $id = (int)$r['id']; $country = $r['country']; $subject = $r['subject']; $url = $r['reference_url']; $status = null; $details = []; $fix = null; // Parse host for lehrplan.ch family $host = parse_url($url, PHP_URL_HOST); $is_lehrplan_ch = ($host === 'v-fe.lehrplan.ch' || $host === 'fl.lehrplan.ch'); // -- 1. URL-Status pruefen $url_state = $url_status[$url] ?? ($is_lehrplan_ch ? 'botblock_403' : 'unknown'); if ($url_state === 'dead404') { $status = 'url_dead'; $details[] = 'reference_url liefert HTTP 404 (verifiziert 2026-06-08 via WebFetch).'; if (str_contains($url, 'geographie.de/publikationen/')) { $fix = 'reference_url ersetzen durch https://vgdh.de/wp-content/uploads/2023/08/Bildungsstandards_Geographie_2020_Web.pdf (DGfG 2020, 10. Auflage, durch WebSearch bestaetigt)'; } } // -- 2. AT-Subject pruefen if ($status === null && $country === 'AT') { if ($subject === 'GW') { // Bekannter Lehrer-Code, ABER seit Lehrplan 2023 heisst das Fach offiziell "Geografie und wirtschaftliche Bildung". $status = 'needs_human_review'; $details[] = 'Subject "GW" ist gaengiges Kuerzel, offizieller Fachname seit BGBl. II 1/2023 lautet "Geografie und wirtschaftliche Bildung". Reference passt zur aktuellen Verordnung (RIS Gesetzesnummer 20007850 in GeltendeFassung).'; $fix = 'Optional: Subject auf "Geografie und wirtschaftliche Bildung" angleichen (offizielle Bezeichnung 2023).'; } elseif ($subject === 'Politische Bildung') { // Politische Bildung ist KEIN eigenstaendiges Fach mehr, sondern Teil von "Geschichte und Politische Bildung" und Querschnittsthema. $status = 'subject_wrong'; $details[] = 'Im AT-Lehrplan 2023 (BGBl. II 1/2023) gibt es kein eigenstaendiges Pflichtfach "Politische Bildung". Politische Bildung ist (a) Teil des Fachs "Geschichte und Politische Bildung" und (b) Querschnittsthema. Reference-URL ist korrekt (RIS), aber Subject suggeriert ein nicht existierendes Fach.'; $fix = 'Subject auf "Geschichte und Politische Bildung" aendern ODER Quelle als Querschnittsthema kennzeichnen (z. B. "Querschnitt: Politische Bildung").'; } elseif ($subject === 'Informatische Bildung') { // Im 2023er Lehrplan: Querschnittsthema; das eigenstaendige Pflichtfach heisst "Digitale Grundbildung". $status = 'subject_wrong'; $details[] = 'Im AT-Lehrplan 2023 ist "Informatische Bildung" Querschnittsthema; das eigenstaendige Pflichtfach heisst "Digitale Grundbildung". Wenn der Anker ein Fach meinen soll, ist die Bezeichnung falsch.'; $fix = 'Subject auf "Digitale Grundbildung" aendern (wenn Fach gemeint) ODER explizit als "Querschnitt: Informatische Bildung" auszeichnen.'; } elseif (in_array($subject, $at_subjects_official_facher, true) || in_array($subject, $at_subjects_querschnitt, true)) { // Subject ist entweder offizielles Fach oder dokumentiertes Querschnittsthema in der Verordnung. if (in_array($id, $at_direct_quotes, true)) { $status = 'ok'; $details[] = 'Subject in BGBl. II 1/2023 dokumentiert (Fach oder Querschnittsthema). Quote folgt Lehrplan-Formulierung (Direkt-/Naheparaphrase). reference_url live.'; } else { $status = 'needs_human_review'; $details[] = 'Subject und URL OK. Quote ist eine redaktionelle Brueckenformulierung (kein direktes RIS-Zitat). Wortlaut muss gegen den Volltext der jeweiligen Fachlehrplan-Anlage manuell abgeglichen werden.'; } } else { $status = 'needs_human_review'; $details[] = 'Subject "' . $subject . '" nicht in der bestaetigten AT-Fach-/Querschnitts-Liste. Manuell pruefen.'; } } // -- 3. CH-Subject + URL if ($status === null && $country === 'CH') { if (!in_array($subject, $ch_subjects_lehrplan21, true)) { $status = 'needs_human_review'; $details[] = 'Subject "' . $subject . '" nicht in der Standard-Lehrplan-21-Fachbereichsliste. Manuell pruefen.'; } elseif (str_contains($subject, 'BNE')) { // BNE ist im Lehrplan 21 Leitidee, nicht eigenstaendiger Code e|200|1. URL-Code ggf. nicht passend. $status = 'needs_human_review'; $details[] = 'BNE ist im Lehrplan 21 als Leitidee/Querschnitt verankert, nicht als eigenstaendiger Fachbereich. Der URL-Code "e|200|1" verweist auf eine Lehrplan-Vorlagen-Sicht (v-fe = Vorlage Fremdevaluation/Entwurf). Aktuellster Ankerpunkt zu BNE ware lehrplan.ch/index.php?nav=overview oder kantonale Spezifizierungen. URL-Liveness wegen Bot-Block 403 nicht automatisch verifizierbar.'; $fix = 'Pruefen, ob ein expliziter LP21-BNE-Querverweis (z. B. https://www.lehrplan21.ch/grundlagen-bne) sinnvoller ist als der v-fe-Code.'; } else { $status = 'needs_human_review'; $details[] = 'Subject ist Lehrplan-21-Fachbereich, plausibel. URL-Liveness fuer v-fe.lehrplan.ch nicht automatisch verifizierbar (WebFetch 403, Bot-Block). Domain laut Web-Recherche aktiv, Code-Schema (b||4) ist Lehrplan-21-konform. Quote ist redaktionelle Bruecke (kein woertliches LP21-Zitat) und muss manuell gegen den offiziellen LP21-Wortlaut geprueft werden.'; } } // -- 4. LI-Subject + URL if ($status === null && $country === 'LI') { if (!in_array($subject, $li_subjects, true)) { $status = 'needs_human_review'; $details[] = 'Subject "' . $subject . '" liechtensteinspezifisch, nicht automatisch bewertbar.'; } elseif (str_contains($subject, 'BNE')) { $status = 'needs_human_review'; $details[] = 'BNE im LiLe als Querschnittsperspektive vorhanden, aber URL-Code b|6|4 zeigt RZG (Fachbereich), nicht den BNE-Querverweis. Inhaltliche Bindung Geografie<->BNE ist plausibel, aber Quote/URL koppeln BNE-Marker an RZG-Seite. Manuell pruefen. URL-Liveness wegen Bot-Block nicht automatisch verifizierbar (fl.lehrplan.ch laut Web-Recherche aktiv).'; } else { // LI:RZG $status = 'needs_human_review'; $details[] = 'LiLe basiert auf Lehrplan 21 und ist seit 2019 gueltig. Subject RZG passt. URL-Liveness wegen Bot-Block (403) nicht automatisch verifiziert; Domain laut Web-Recherche aktiv. Quote ist redaktionelle Bruecke, nicht woertlich aus LiLe.'; } } // -- 5. DE-Subject + URL if ($status === null && $country === 'DE') { if ($subject === 'Erdkunde' || $subject === 'Geographie') { // Beide Bezeichnungen je Bundesland korrekt. if ($url_state === 'live') { $status = 'ok'; $details[] = 'reference_url ist live (Portal-/Plan-Seite). Subject "' . $subject . '" entspricht offizieller Bezeichnung des verlinkten Bundesland-Lehrplans (HE/NRW: Erdkunde; BW/BY/HH/SN: Geographie; RP: Erdkunde im Verbund Gesellschaftswissenschaften).'; if (str_contains($url, 'schulportal.sachsen.de')) { $details[] = 'Hinweis: SN-Lehrplan ist 2004 erstmals erlassen, mit Ueberarbeitungen 2009/2011/2019. Offiziell weiter gueltig laut Schulportal Sachsen - kein "version_outdated", aber inhaltlich der aelteste aktive Plan im Set.'; } if ($url === 'https://kultus.hessen.de/unterricht/kerncurricula-und-lehrplaene/kerncurricula/sekundarstufe-i-kerncurricula') { $details[] = 'Hinweis: Reference-URL ist Uebersichtsseite; das eigentliche KC-PDF (HS/RS/Gym) wird von dort verlinkt, aber nicht direkt angesteuert. Praeziserer Direkt-Link zu HE-Erdkunde-KC waere besser.'; } } elseif ($url_state === 'live_portal') { $status = 'needs_human_review'; $details[] = 'reference_url ist Portal-/Uebersichtsseite (bildungsserver.berlin-brandenburg.de/unterricht/rahmenlehrplaene), nicht der RLP-Teil C Geografie direkt. Der RLP 1-10 Berlin/Brandenburg ist gueltig (2017+), aber URL ist zu unspezifisch.'; $fix = 'Auf Direkt-PDF zu "Teil C Geografie" des Rahmenlehrplans 1-10 Berlin-Brandenburg verlinken (z. B. bildungsserver.berlin-brandenburg.de/.../rlp-1-10-online).'; } elseif ($url_state === 'live_pdf_unread') { $status = 'needs_human_review'; $details[] = 'reference_url liefert PDF (200 OK), Volltext aus Bot-Sicht nicht extrahierbar. Dateiname und Titel suggerieren passendes Bundesland-/Fach-Dokument, aber Quote muss manuell gegen den PDF-Inhalt verglichen werden.'; } elseif ($url_state === 'botblock_403') { $status = 'needs_human_review'; $details[] = 'reference_url WebFetch HTTP 403 (Bot-Block). Portal cuvo.nibis.de ist Niedersaechsisches Curriculum-Portal, gemaess Web-Recherche aktiv. URL-Liveness manuell verifizieren; Quote manuell pruefen.'; } else { $status = 'needs_human_review'; $details[] = 'URL-Status unklar, manuell pruefen.'; } } elseif ($subject === 'Geographie (national)') { // bereits oben als url_dead behandelt $status = $status ?? 'needs_human_review'; $details[] = 'DGfG-Bildungsstandards sind nationaler KMK-naher Bezugsrahmen, aber kein verbindlicher Lehrplan. Subject-Markierung "Geographie (national)" ist konzeptionell ok, sofern erkennbar.'; } } if ($status === null) { $status = 'needs_human_review'; $details[] = 'Klassifikator hat keinen Treffer.'; } $entry = [ 'id' => $id, 'status' => $status, 'details' => implode(' ', $details), ]; if ($fix !== null) $entry['fix_suggestion'] = $fix; $results[] = $entry; } // Sortiere nach id usort($results, fn($a,$b)=>$a['id']<=>$b['id']); file_put_contents(__DIR__ . '/lehrplan-validierung-phase1.json', json_encode($results, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT)); // Summary $by_status = []; foreach ($results as $r) $by_status[$r['status']] = ($by_status[$r['status']]??0)+1; echo "TOTAL: ".count($results)."\n"; foreach ($by_status as $s=>$c) echo " $s: $c\n";