# Content Analysis: SPL Exam Question Files ## Summary **Total questions: 510 (English) + matching French translation** | Subject | File | EN Questions | Notes | |---------|------|-------------|-------| | 01 Air Law | 01 - Air Law.md | 50 | Source: QuizVDS.it EASA ECQB-SPL | | 02 Aircraft General Knowledge | 02 - Aircraft General Knowledge.md | 50 | | | 03 Communications | 03 - Communications.md | 50 | | | 04 Flight Performance and Planning | 04 - Flight Performance and Planning.md | 30 | (shorter) | | 05 Human Performance | 05 - Human Performance.md | 50 | | | 06 Meteorology | 06 - Meteorology.md | 50 | | | 07 Navigation | 07 - Navigation.md | 80 | Incl. Swiss SFVS exercises | | 08 Operational Procedures | 08 - Operational Procedures.md | 50 | | | 09 Principles of Flight | 09 - Principles of Flight.md | 50 | | Note: SPL Exam Questions.md index page states the full bank has 981 questions total across all sources (QuizVDS, SFVS, BAZL mock exams). The files counted above represent the QuizVDS-sourced questions. Navigation has 141 total per index including Swiss exercises. ## Question Format (Markdown) Each question follows this exact structure: ```markdown ### Q{N}: {Question text} ^q{N} > *[FR](../SPL Exam Questions FR/01 - Droit aérien.md#^q{N})* - A) {option} - B) {option} - C) {option} - D) {option} **Correct: {letter})** > **Explanation:** {detailed explanation paragraph} ``` ### Key structural observations: - Questions use `### Q{N}:` headers with Obsidian block reference anchors `^q{N}` - Each English question links directly to its French counterpart via relative path - 4 answer options always labeled A, B, C, D - Correct answer on its own line: `**Correct: X)**` - Explanation in a blockquote immediately after - Some questions embed images using Obsidian wiki-link syntax: `![[figures/filename.png]]` - Some use standard markdown: `![Alt text](figures/filename.svg)` ## Image/Figure References Two syntaxes in use: 1. **Obsidian wiki-link**: `![[figures/bazl_30_q08_ask21_speed_polar.png]]` - used in BAZL mock exam questions 2. **Standard markdown**: `![Earth Globe](figures/NAV-002-earth-globe.svg)` - used in custom-created figures ### Figures directory: 58 total files - 8 SVG files (custom-drawn navigation diagrams) - 50 PNG files (BAZL official exam images: speed polars, charts, maps, airport diagrams) Images primarily appear in: - Navigation (SVG diagrams) - Flight Performance and Planning (BAZL speed polars, loading tables, approach charts, maps) - Operational Procedures (ground signals) ## French Version - Identical structure to English - Same filenames (French titles): `01 - Droit aérien.md`, `06 - Météorologie.md`, etc. - Same question count confirmed for files checked (50 Air Law, 50 Meteorology) - Questions use `^q{N}` anchors matching English versions - Links back to English: `> *[EN](../SPL Exam Questions/01 - Air Law.md#^q1)*` - Shares the same `figures/` directory (images are language-neutral) ## Recommended JSON Format for App ```json { "version": "1.0.0", "updated_at": "2026-03-15T00:00:00Z", "subjects": [ { "id": "air_law", "code": "01", "name": { "en": "Air Law", "fr": "Droit aérien" }, "questions": [ { "id": "air_law_q1", "number": 1, "text": { "en": "The holder of an SPL license...", "fr": "Le titulaire d'une licence SPL..." }, "options": { "en": { "A": "Winch and bungee.", "B": "Winch, bungee and aero-tow.", "C": "Winch and aero-tow.", "D": "Aero-tow and bungee." }, "fr": { "A": "Treuil et sandow.", "B": "...", "C": "...", "D": "..." } }, "correct": "A", "explanation": { "en": "Under Part-SFCL...", "fr": "Selon la Part-SFCL..." }, "figures": [] }, { "id": "pfp_q14", "number": 14, "text": { "en": "...", "fr": "..." }, "options": { "en": {...}, "fr": {...} }, "correct": "B", "explanation": { "en": "...", "fr": "..." }, "figures": [ { "filename": "bazl_30_q14_discus_loading_table.png", "type": "png", "alt": "Discus loading table" } ] } ] } ] } ``` ### Key design decisions: - Bilingual content embedded in single question object (not separate files) - `figures` array per question (empty array if no figures) - `id` format: `{subject_code}_{qN}` for stable cross-referencing - `version` + `updated_at` at top level for update detection - Correct answer stored as letter string "A"/"B"/"C"/"D" - Subjects have both `id` (slug) and `code` (01-09 for ordering)