3.10. Metadaten#

In diesem Kapitel wird Ihnen zuerst das Metadatenschema für QUADRIGA-OERs vorgestellt. Anschließend wird präsentiert, wie dieses in der Datei metadata.yml konkret umgesetzt wird. Zum Abschluss werden die tatsächlichen Metadaten der vorliegenden OER präsentiert sowie die verschiedenen Exportformate erläutert.

3.10.1. Das QUADRIGA Metadatenschema#

Das QUADRIGA Metadatenschema wurde speziell für Open Educational Resources (OERs) entwickelt, die im Rahmen des QUADRIGA-Projekts erstellt werden und umfasst spezifische Felder zur Beschreibung von Lernzielen, Kompetenzen und didaktischen Elementen. Dazu kombiniert es verschiedene Metadatenstandards wie Dublin Core Elements 1.1, Dublin Core Terms, schema.org, LRMI und MoDALIA (siehe auch DALIA). Hierzu werden Mappings unter Verwendung von skos:mappingRelation definiert.

3.10.2. Struktur und Felder der metadata.yml#

Für die Definition der Metadaten im Jupyter Book wurde YAML gewählt, da es durch OER-Autor:innen einfach geschrieben und gleichzeitig gut automatisch verarbeitet werden kann.

Die Metadaten können theoretisch auch in anderen YAML-Dateien als eigenständiges YAML-Dokument eingebettet werden, jedoch setzen die Skripte zur automatischen Generierung von Formaten wie CFF, BibTeX und anderen die Speicherung der Metadaten in der Datei metadata.yml im Wurzelverzeichnis des Jupyter Book voraus.

Eine Metadatenbeschreibung nach dem QUADRIGA Metadatenschema wird als valide betrachtet, wenn sie mindestens alle Pflichtfelder beinhaltet und technisch korrekt umgesetzt wurde. Das Metadatenschema ist in JSON-Schema implementiert und zu finden in auf GitHub (https://github.com/quadriga-dk/quadriga-schema) und als HTML-Darstellung. Die .json-Dateien der Schemadefinition (bspw. schema.json der Version 1.0.0) sind ebenfalls auf der GitHub Page publiziert und können darüber eingebunden werden.

Im Abschnitt Felder werden alle optionalen sowie verpflichtenden Felder präsentiert. Dabei wird jeweils angegeben, ob sie verpflichtend sind sowie welche Datentypen als Wert zugelassen sind.

Struktur#

Eine minimal kleine valide Metadatenbeschreibung sieht strukturell wie folgt aus:

schema-version:
version:
title:
description:
table-of-contents:
discipline:
time-required:
research-object-type:
identifier:
url:
date-modified:
date-issued:
target-group:
authors:
    - given-names:
      family-names:
chapters:
    - title:
      description:
      learning-objectives:
          - learning-objective:
            competency:
            focus:
            data-flow:
            blooms-category:
      learning-goal:
context-of-creation:

Eine minimale Metadatendatei als Startpunkt finden Sie ebenfalls im Repositorium zum QUADRIGA-Metadaten-Schema.

Felder#

Im Folgenden werden die wichtigsten Felder des QUADRIGA-Metadatenschemas beschrieben. Pflichtfelder sind mit ⭐ gekennzeichnet. Nutzen Sie auch die interaktive Darstellung des Schemas.

schema-version#

Versionsnummer des QUADRIGA-Metadatenschemas. Es gibt ein kontrolliertes Vokabular möglicher Versionen (aktuell: “1.0.0”). Wird das QUADRIGA-Metadatenschema verändert/erweitert, so wird eine neue Version definiert. Vorherige, veröffentlichte Versionen bleiben bestehen, können jedoch ggf. als “deprecated” markiert werden.

version#

Version des Buchs im SemVer-Format. Eine Versionsänderung korrespondiert auch immer mit einer Änderung von date-modified⭐.

title#

Titel der OER.

description#

Beschreibung der OER als Freitext.

table-of-contents#

Inhaltsverzeichnis der OER als Freitext.

discipline#

Nennung der Disziplinen, die bei der Erstellung der OER im Fokus standen. Mögliche Disziplinen sind in einem kontrollierten Vokabular definiert.

time-required#

Angedachte Bearbeitungsdauer für Lernende im ISO 8601 Duration-Format (siehe Wikipedia-Artikel zu ISO8601).

Beispiele:

  • PT16H15M für 16 Stunden und 15 Minuten

  • P1DT10S für 1 Tag und 10 Sekunden

Typischerweise werden Angaben zur Bearbeitungsdauer in Stunden und Minuten angegeben.

research-object-type#

Nennung des Datentyps, der vorrangig in der OER behandelt wird. Es können ein bis zwei Typen aus einem kontrollierten Vokabular ausgewählt werden.

identifier#

Eindeutiger Identifier in Form einer DOI. Die DOI identifiziert das gesamte Buch.

url#

URL der Website-Ansicht des Buchs.

git#

Git-Repositorium, in dem die OER-Inhalte zu finden sind.

has-predecessor#

Link zur Vorgänger-OER oder false. Verweis auf eine Vorgänger-OER, in der z.B. vorausgesetzte Inhalte erklärt werden.

has-successor#

Link zur Nachfolger-OER oder false. Verweis auf eine Nachfolger-OER, in der z.B. Inhalte aus der aktuellen OER weiterentwickelt werden.

date-modified#

Datum der letzten (großen, inhaltlich umfangreichen) Änderung. Sollte immer mit einer Versionsänderung (version⭐) einhergehen. Verbesserungen von Grammatik und Orthographie verlangen nicht zwingend die Erstellung einer neuen Version. Dieses Datum muss jedoch aktualisiert werden, wenn eine neue Version auf Zenodo veröffentlicht wird (bspw. über die Release-Funktion auf GitHub).

date-issued#

Datum der Erstveröffentlichung.

target-group#

Zielgruppe des Buchs. Es können eine oder mehrere Zielgruppen aus einem kontrollierten Vokabular ausgewählt werden.

authors#

Liste der Autor:innen der OER. Das Feld ist verpflichtend und es muss mindestens ein:e Autor:in in der Liste aufgeführt werden. Eine Autor:in wird entweder als einfache Zeichenkette oder strukturiert mit mindestens Vor- und Nachnamen angegeben, optional mit ORCID und weiteren Informationen.

Eine strukturierte Angabe der Informationen zu eine:r Autor:in wird empfohlen.

chapters#

Liste der Kapitel des Buchs. Jedes Kapitel enthält einen Titel (title⭐ (in chapters)), eine Beschreibung (description⭐ (in chapters)), eine Liste von Lernzielen (learning-objectives⭐ (in chapters)) und ein Groblernziel (learning-goal⭐ (in chapters)). Optional können auch eine URL zum direkten Zugriff auf die Kapitelseite und eine Bearbeitungsdauer angegeben werden.

learning-objectives⭐ (in chapters)#

Eine Liste von Lernzielen. Jede Lernzieldefinition umfasst eine Formulierung des Lernziels (learning-objective), die adressierte Kompetenz (competency⭐ (in learning-objectives)), eine Einordnung im Datenfluss (data-flow⭐ (in learning-objectives)) und eine Kategorie aus der Bloomschen Taxonomie (blooms-category).

learning-goal⭐ (in chapters)#

Kurze Benennung des Groblernziels des Kapitels.

context-of-creation#

Eine Beschreibung des Entstehungskontextes. Im konkreten Fall ein natürlichsprachlicher Verweis auf das QUADRIGA-Projekt.

keywords#

Liste von Schlag-/Stichwörtern, welche das Buch und dessen (Lern-)Inhalte beschreiben.

language#

Sprache der OER als ISO639-1 Sprachcode (zwei Buchstaben – bspw. de, en, …).

license#

Lizenz des Buchs und des Codes jeweils als URL oder als Kombination aus Lizenzname und URL. Mindestens die Informationen zur Lizenz des Inhalts (content) sind erforderlich, optional können auch Angaben zur Lizenz des Codes (code) gemacht werden.

prerequisites#

Liste von Voraussetzungen und deren jeweiliger Einordnung in der Bloomschen Taxonomie, welche Lernende für die erfolgreiche Bearbeitung des Buchs mitbringen sollten.

quality-assurance#

Eine Liste von Qualitätssicherungs-Ereignissen. Jedes Ereignis enthält eine Person, ein Datum und optional eine Beschreibung der durchgeführten Qualitätssicherungsmaßnahme.

Dieses Feld wird aktuell noch überarbeitet!

supplemented-by#

Liste von Verweisen und jeweils einer kurzen Beschreibung zu zusätzlichen, weiterführenden Inhalten o.ä., die in einem Kapitel verwendet werden. Jeder Eintrag enthält eine Beschreibung (description) und eine URL (url).

type-of-learning-resource#

Beschreibung der Materialart der OER. Aktuell ist nur “Jupyter Book” als Wert vorgesehen.

used-tools#

Liste von Tools, die bei der Erstellung des Buchs verwendet wurden. Diese können als einfache URI oder als strukturierte Angabe mit Namen und URL angegeben werden.

data-flow⭐ (in learning-objectives)#

Schritt im Datenfluss, dem die Kompetenz zugeordnet ist. Muss aus einem kontrollierten Vokabular ausgewählt werden: “Grundlagen”, “Planung”, “Erhebung und Aufbereitung”, “Management”, “Analyse” sowie “Publikation und Nachnutzung”.

competency⭐ (in learning-objectives)#

Im Lernziel adressierte Kompetenz nach dem QUADRIGA Datenkompetenzframework. Muss aus einem kontrollierten Vokabular ausgewählt werden.

blooms-category⭐ (in learning-objectives)#

Kategorie der Bloomschen Taxonomie, welcher das Lernziel zugeordnet ist. Aus der Kombination der Zuordnungen der Lernziele eines Kapitels lässt sich ein allgemeines Kompetenzniveau (“Basis”, “Fortgeschritten”, “Expert:in”) ableiten. Muss aus einem kontrollierten Vokabular ausgewählt werden.

semver#

Ein Bezeichner nach dem Semantic Versioning 2.0.0 Format. Wird bei der Versionierung des Schemas und der OER verwendet. Besteht aus Major-, Minor- und Patch-Version (z.B. “1.1.0”), optional gefolgt von Pre-Release-Identifikatoren und Build-Metadaten.

multilingual-text#

Natürlichsprachlicher Text wird standardmäßig auf Deutsch verfasst. Soll dies explizit gemacht werden und/oder sollen andere Sprachen verwendet werden, so kann hier statt einer Zeichenkette (string) ein Mapping (object) von ISO639-1 Sprachcodes und dem Text in der entsprechenden Sprache verwendet werden.

person#

Eine Person kann entweder als einfache Zeichenkette oder als Mapping, das mindestens Schlüssel für Vor- und Nachname (given-names, family-names) enthält modelliert werden.

Es wird empfohlen eine ORCID anzugeben. Zusätzlich können Rollen nach dem CRediT-System (Contributor Roles Taxonomy) für die Person angegeben werden.

title⭐ (in chapters)#

Kapitelüberschrift, die für dieses Kapitel verwendet wird. Kann als einfacher Text oder als mehrsprachiger Text angegeben werden.

description⭐ (in chapters)#

Beschreibung des Kapitelinhalts. Bietet eine Übersicht darüber, was in diesem Kapitel behandelt wird.

url (in chapters)#

URL zum direkten Zugriff auf die erste Seite der ‘Leseansicht’ (Website) des Kapitels.

time-required (in chapters)#

Angedachte Bearbeitungsdauer für Lernende, spezifisch für dieses Kapitel, im ISO 8601 Duration-Format.

3.10.3. metadata.yml der vorliegenden OER#

  1# yaml-language-server: $schema=https://quadriga-dk.github.io/quadriga-schema/v1.0.0/schema.json
  2schema-version: 1.0.0
  3title: 'QUADRIGA OERs: erstellen und gestalten mit Jupyter Book. QUADRIGA Open Educational
  4  Resources: Template'
  5identifier: https://doi.org/10.5281/zenodo.14970672
  6version: 0.61.0
  7date-issued: 2024-05-06
  8date-modified: '2025-11-14'
  9authors:
 10- given-names: Hannes
 11  family-names: Schnaitter
 12  orcid: https://orcid.org/0000-0002-1602-6032
 13  affiliation: Humboldt-Universität zu Berlin, Institut für Bibliotheks- und Informationswissenschaft
 14  credit:
 15  - Writing
 16  - Software
 17- given-names: Evgenia
 18  family-names: Samoilova
 19  orcid: https://orcid.org/0000-0003-3858-901X
 20  affiliation: Universität Potsdam
 21  credit:
 22  - Writing
 23- given-names: Lamia
 24  family-names: Islam
 25  affiliation: Universität Potsdam
 26  credit:
 27  - Software
 28contributors:
 29- family-names: Seltmann
 30  given-names: Melanie
 31  orcid: https://orcid.org/0000-0002-7588-4395
 32- family-names: Walter
 33  given-names: Paul
 34  orcid: https://orcid.org/0000-0002-9236-3268
 35- family-names: Zhang
 36  given-names: Yue
 37  orcid: https://orcid.org/0009-0007-6432-1259
 38table-of-contents: '- Präambel
 39
 40  - Struktur und didaktisches Konzept
 41
 42  - Technologie
 43
 44  - Formatierungs- und Darstellungsmöglichkeiten
 45
 46  - Lernstandskontrolle (Assessment)
 47
 48  - Reflexion und Resümee
 49
 50  - Epilog'
 51description: Diese OER führt in die Erstellung von QUADRIGA-OERs ein, bietet Inhalte
 52  für Nutzer:innen der OERs und dient gleichzeitig als Template für die Erstellung
 53  eigener OERs auf Basis der QUADRIGA-Empfehlungen.
 54keywords:
 55- Open Educational Resources
 56- de: Offene Bildungsressource
 57- en: Jupyter Book
 58- en: Data Literacy
 59  de: Datenkompetenz
 60language: de
 61discipline:
 62- übergreifend
 63research-object-type:
 64- übergreifend
 65target-group:
 66- Forschende (PostDoc)
 67- Forschende (Projektleitung)
 68- Promovierende
 69- Hochschullehrende
 70time-required: PT16H15M
 71context-of-creation: 'Die vorliegenden Open Educational Resources wurden durch das
 72  Datenkompetenzzentrum QUADRIGA erstellt.
 73
 74
 75  Förderkennzeichen: 16DKZ2034'
 76url: https://quadriga-dk.github.io/Book_Template/
 77git: https://github.com/quadriga-dk/Book_Template
 78license:
 79  code: https://opensource.org/licenses/AGPL-3.0
 80  content:
 81    url: https://creativecommons.org/licenses/by-sa/4.0/
 82    name: CC BY-SA 4.0
 83chapters:
 84- title: Präambel
 85  url: https://quadriga-dk.github.io/Book_Template/präambel/toc.html
 86  description: Präambel des Templates. Gibt grundlegende Informationen zu Lernzielen,
 87    Voraussetzungen und Vorkenntnissen.
 88  learning-goal: Überblick über Template
 89  time-required: PT15M
 90  learning-objectives:
 91  - learning-objective: Das Template und seine Bestandteile werden verstanden und
 92      die jeweils relevanten Inhalte sind der Nutzer:in klar.
 93    competency: Orientierungswissen
 94    data-flow: übergreifend
 95    blooms-category: 2 Verstehen
 96  - learning-objective: Die technischen Voraussetzungen für die verschiedenen möglichen
 97      Nutzungsformen werden verstanden.
 98    competency: Orientierungswissen
 99    data-flow: übergreifend
100    blooms-category: 2 Verstehen
101- title: Struktur und didaktisches Konzept
102  url: https://quadriga-dk.github.io/Book_Template/struktur_didaktisches_konzept/einleitung.html
103  description: Dieses Kapitel stellt die Struktur des Templates und das zugrunde liegende
104    didaktische Konzept vor.
105  time-required: PT2H
106  learning-goal: Fallstudienbasiertes didaktisches Konzept von QUADRIGA
107  learning-objectives:
108  - learning-objective: Der forschungsgeleitete Ansatz der QUADRIGA OERs kann erläutert
109      und der Beitrag von Fallstudien zur Datenkompetenzvermittlung erklärt werden.
110    competency: Orientierungswissen
111    data-flow: übergreifend
112    blooms-category: 2 Verstehen
113  - learning-objective: Die hierarchische Struktur der Lernziele in QUADRIGA OERs
114      kann beschrieben und der Zusammenhang zwischen Fallstudienstruktur, Datenlebenszyklus
115      und Lernzielen erläutert werden.
116    competency: Orientierungswissen
117    data-flow: übergreifend
118    blooms-category: 2 Verstehen
119  - learning-objective: Die zentralen didaktischen Komponenten einer QUADRIGA OER
120      können identifiziert und deren Funktion im Lernprozess erklärt werden.
121    competency: Orientierungswissen
122    data-flow: übergreifend
123    blooms-category: 2 Verstehen
124- title: Technologie
125  url: https://quadriga-dk.github.io/Book_Template/technologie/einleitung.html
126  description: Es werden die verschiedenen Bestandteile des Templates sowie die Technologien,
127    welche genutzt werden, vorgestellt. Besonderes Augenmerk liegt auf dem Zusammenspiel
128    der einzelnen Elemente.
129  time-required: PT5H
130  learning-goal: Technische Umsetzung der QUADRIGA OERs
131  learning-objectives:
132  - learning-objective: Die Bestandteile der Entwicklungsumgebung (Git, Python, Jupyter
133      Book, Editor) können identifiziert und deren Funktionen im OER-Entwicklungsprozess
134      erläutert werden.
135    competency: Orientierungswissen
136    data-flow: übergreifend
137    blooms-category: 2 Verstehen
138  - learning-objective: Der Unterschied zwischen Jupyter Book und Jupyter Notebook
139      kann erklärt und deren jeweilige Rolle im Entwicklungsworkflow beschrieben werden.
140    competency: Orientierungswissen
141    data-flow: übergreifend
142    blooms-category: 2 Verstehen
143  - learning-objective: Die automatische Website-Erstellung über GitHub Actions kann
144      erklärt und der Vorteil gegenüber manueller lokaler Entwicklung bewertet werden.
145    competency: Orientierungswissen
146    data-flow: übergreifend
147    blooms-category: 2 Verstehen
148  - learning-objective: Die Installation und Einrichtung einer lokalen Entwicklungsumgebung
149      mit Python/Anaconda kann durchgeführt und Virtual Environments für projektspezifische
150      Anforderungen erstellt werden.
151    competency: Orientierungswissen
152    data-flow: übergreifend
153    blooms-category: 3 Anwenden
154  - learning-objective: Der Unterschied zwischen Texteditoren und Textprozessoren
155      für die Code-Entwicklung kann erklärt und geeignete Editoren wie VS Code für
156      die OER-Entwicklung ausgewählt werden.
157    competency: Orientierungswissen
158    data-flow: übergreifend
159    blooms-category: 2 Verstehen
160- title: Formatierungs- und Darstellungsmöglichkeiten
161  url: https://quadriga-dk.github.io/Book_Template/formatierung/einleitung.html
162  time-required: PT5H
163  description: Spezifische Ausführungen und Anleitungen zu Markdown- und Jupyter-Noteboook-Dateien
164    und Formatierungsmöglichkeiten. Empfehlungen für deren einheitliche Nutzung in
165    QUADRIGA OERs.
166  learning-goal: Schreiben und Formatieren von Inhalten nach den Empfehlungen von
167    QUADRIGA
168  learning-objectives:
169  - learning-objective: Kenntnis, Auswahl und Nutzung verschiedener möglicher Dateiformate
170      und Programmiersprachen
171    competency: Orientierungswissen
172    data-flow: übergreifend
173    blooms-category: 3 Anwenden
174  - learning-objective: Kenntnis, Auswahl und Nutzung spezifischer Auszeichungs- und
175      Formatierungsoptionen
176    competency: Orientierungswissen
177    data-flow: übergreifend
178    blooms-category: 3 Anwenden
179- title: Lernstandskontrolle (Assessment)
180  url: https://quadriga-dk.github.io/Book_Template/assessment/einleitung.html
181  description: Assessment-Konzept und dessen konkrete Ausgestaltung in Jupyter Books,
182    die den QUADRIGA-Empfehlungen folgen
183  learning-goal: Gestaltung und Implementierung von Assessments
184  time-required: PT3H
185  learning-objectives:
186  - learning-objective: Verständnis des Assessmentkonzepts von QUADRIGA
187    competency: Orientierungswissen
188    data-flow: übergreifend
189    blooms-category: 2 Verstehen
190  - learning-objective: Auswahl und Implementierung spezifischer Assessment-Formate
191    competency: Orientierungswissen
192    data-flow: übergreifend
193    blooms-category: 3 Anwenden
194- title: Reflexion und Resümee
195  url: https://quadriga-dk.github.io/Book_Template/reflexion_und_resümee/toc.html
196  description: Zusammenfassung und Wiederholung der wichtigsten Inhalte des Buchs.
197    Hinweise auf weiterführende Inhalte.
198  learning-goal: Festigung der erlernten Inhalte
199  time-required: PT1H
200  learning-objectives:
201  - learning-objective: Kenntnis der wichtigsten Inhalte des Templates und dessen
202      Nutzung
203    competency: nicht anwendbar
204    data-flow: nicht anwendbar
205    blooms-category: 2 Verstehen
206  - learning-objective: Auswahl geeigneter Formate, Formatierungskonzepte, Übungs-
207      und Assessmentformate und deren Anwendung.
208    competency: nicht anwendbar
209    data-flow: nicht anwendbar
210    blooms-category: 3 Anwenden
211quality-assurance:
212- date: 2025-11-10
213  person: TODO
214  description: TODO

3.10.4. JSON-Schema#

Das JSON-Schema ist definiert im Repositorium quadriga-schema. Auf Basis dieses Repositoriums wird eine interaktive Darstellung sowie der Einstieg für die Nutzung in anderen Schemas oder in Verifikationstools (schema.json hier im Versionsalias latest) generiert. Für die Verwendung in Werkzeugen sollte immer eine bestimmte Version festgelegt werden – bspw. https://quadriga-dk.github.io/quadriga-schema/v1.0.0/schema.json

3.10.5. Metadaten-Exportformate#

Die in metadata.yml erfassten Metadaten werden automatisch in verschiedene standardisierte Formate exportiert, um die Auffindbarkeit, Nachnutzbarkeit und Interoperabilität der OER zu gewährleisten. Die Transformation erfolgt durch Python-Skripte im Verzeichnis quadriga/metadata/ und wird im Build-Prozess automatisch ausgeführt.

Generierte Formate#

JSON-LD (metadata.jsonld)#

JSON-LD (JavaScript Object Notation for Linked Data) ist ein Format für strukturierte, verlinkte Daten im Web. Die exportierten Metadaten folgen dem Schema.org-Vokabular und werden als maschinenlesbare Linked Data bereitgestellt.

Im Publikationsprozess werden per GitHub Action die JSON-LD-Daten in die Startseite des Buchs sowie die Kapitel-Startseiten integriert.

RDF/XML (metadata.rdf)#

RDF (Resource Description Framework) in XML-Serialisierung ermöglicht die Verarbeitung der Metadaten durch Semantic-Web-Anwendungen und Triple Stores.

Ein <link>-Tag zu den RDF-Daten wird über die GitHub Action in die Startseite des Buchs integriert.

BibTeX (references.bib)#

BibTeX-Format für die Referenzen, auf welche sich im Buch berufen wird.

CITATION.cff#

GitHub-Standard für Software- und Datensatz-Zitation im CITATION.cff-Format (Citation File Format).

Zenodo JSON (.zenodo.json)#

Metadaten im Zenodo-Format für die Archivierung und DOI-Vergabe über die Zenodo-Plattform. Diese Metadaten liefern die Grundlage für die Metadaten in Zenodo.

Das Format ist definiert in legacyrecord.json.

Metadaten-Verarbeitungspipeline#

Die Verarbeitung der Metadaten erfolgt in folgenden Schritten:

  1. Quelldateien: metadata.yml mit QUADRIGA-Schema (siehe schema-version⭐) sowie _config.yml und _toc.yml Im ersten Schritt werden ggf. Informationen (bspw. Titel des Buchs, Inhaltsverzeichnis, …) in metadata.yml auf Basis der Jupyter Book Konfigurationsdateien aktualisiert.

  2. Generierung: Python-Skripte in quadriga/metadata/ transformieren die YAML-Daten:

    • create_jsonld.pymetadata.jsonld

    • create_rdfxml.pymetadata.rdf

    • create_bibtex.pyreferences.bib

    • update_citation_cff.pyCITATION.cff

    • create_zenodo_json.py.zenodo.json

  3. Build: Jupyter Book erstellt die HTML-Ausgabe in _build/html/

  4. Injektion: inject_metadata.py bettet JSON-LD in HTML-Seiten ein und fügt RDF-Links hinzu

  5. Bereitstellung: Relevante Metadatendateien werden in das Build-Verzeichnis kopiert

Die Skripte nutzen gemeinsame Hilfsfunktionen aus utils.py für YAML-Verarbeitung, Keyword-Extraktion und Formatierung.