Skip to content

Commit 6108f07

Browse files
Copilotmaehrmtwente
authored
Add iconclass-classification and sgb-data-validator to coding section (#75)
* Initial plan * feat: add iconclass-classification and sgb-data-validator to coding section Co-authored-by: maehr <[email protected]> * fix: fix broken links to Turing Way --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: maehr <[email protected]> Co-authored-by: mtwente <[email protected]>
1 parent 899fa16 commit 6108f07

File tree

4 files changed

+93
-2
lines changed

4 files changed

+93
-2
lines changed

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ This repository contains the documentation platform for Stadt.Geschichte.Basel,
3636

3737
## Repository Structure
3838

39-
The repository follows [The Turing Way's Advanced Structure for Data Analysis](https://the-turing-way.netlify.app/project-design/project-repo/project-repo-advanced.html):
39+
The repository follows [The Turing Way's Advanced Structure for Data Analysis](https://book.the-turing-way.org/project-design/pd-overview/project-repo/project-repo-advanced/):
4040

4141
```text
4242
├── assets/ # Images, figures, and other media files

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ This repository contains the documentation of the work of the team for research
1111

1212
## Repository Structure
1313

14-
The structure of this repository follows the [Advanced Structure for Data Analysis](https://the-turing-way.netlify.app/project-design/project-repo/project-repo-advanced.html) of _The Turing Way_ and is organized as follows:
14+
The structure of this repository follows the [Advanced Structure for Data Analysis](https://book.the-turing-way.org/project-design/pd-overview/project-repo/project-repo-advanced/) of _The Turing Way_ and is organized as follows:
1515

1616
- `assets/`: Images, figures, and other media files.
1717
- `docs/`: Documentation files, including the main README and other markdown files.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
title: Iconclass Classification Pipeline
3+
subtitle: Automatisierte Klassifikation von Kulturgütern
4+
author:
5+
- name: Moritz Mähr
6+
7+
orcid: 0000-0002-1367-1618
8+
affiliation: Universität Basel
9+
date-modified: last-modified
10+
lang: de
11+
code-links:
12+
- href: 'https://github.com/Stadt-Geschichte-Basel/iconclass-classification/'
13+
text: GitHub Repository
14+
icon: github
15+
---
16+
17+
## Iconclass Classification Pipeline
18+
19+
Die [Iconclass Classification Pipeline](https://github.com/Stadt-Geschichte-Basel/iconclass-classification) ist ein automatisiertes Werkzeug zur Klassifizierung von digitalen Kulturgütern mittels [Iconclass](https://iconclass.org/)-Codes. Das System nutzt ein Vision-Language-Model (VLM), das lokal über [Ollama](https://ollama.ai/) gehostet wird, um Kunstwerke und historische Objekte zu analysieren und zu kategorisieren.
20+
21+
Die Pipeline wurde speziell für die digitalen Sammlungen von Stadt.Geschichte.Basel entwickelt und ermöglicht eine effiziente, nachvollziehbare Verarbeitung grosser Bildbestände. Sie verarbeitet Metadaten, lädt Bilder herunter, klassifiziert diese automatisch und dokumentiert den gesamten Prozess mit vollständiger Provenienz.
22+
23+
## Funktionen
24+
25+
Das Werkzeug bietet umfangreiche Möglichkeiten zur automatisierten Klassifikation:
26+
27+
- **Automatisierte Iconclass-Klassifikation**: Nutzt das Iconclass VLM-Modell für präzise Kategorisierung
28+
- **Stapelverarbeitung**: Verarbeitet ganze Sammlungen aus metadata.json-Dateien
29+
- **Intelligente Bildverarbeitung**: Automatischer Download, Skalierung, Normalisierung und SHA256-basiertes Caching
30+
- **Flexible Stichproben**: Zufällige, feste oder vollständige Datensatz-Modi mit reproduzierbaren Seeds
31+
- **Mehrere Prompts**: Drei Prompt-Vorlagen (Standard, Instruktion, Few-Shot) für optimale Ergebnisse
32+
- **Vollständige Provenienz**: Zeitgestempelte Ausführungsverzeichnisse mit vollständigem Audit-Trail
33+
34+
## Anwendung
35+
36+
Die Pipeline lässt sich über die Kommandozeile steuern und unterstützt sowohl lokale (Ollama) als auch Cloud-basierte (OpenRouter) Klassifikation. Das System filtert automatisch die zu verarbeitenden Objekte und speichert die Ergebnisse strukturiert ab.
37+
38+
Alle Ergebnisse werden in zeitgestempelten Verzeichnissen mit vollständiger Dokumentation gespeichert, einschliesslich der Original-Metadaten, verarbeiteten Bilder, Klassifikationsanfragen und -antworten sowie detaillierten Logs.
39+
40+
## Technologie
41+
42+
Das zugehörige GitHub-Repository [iconclass-classification](https://github.com/Stadt-Geschichte-Basel/iconclass-classification/) enthält den Open-Source-Code der Pipeline. Die Verwendung von Python und modernen Bibliotheken wie Pydantic gewährleistet Typsicherheit und Datenvalidierung. Umfangreiche Tests sichern die Zuverlässigkeit des Systems.
43+
44+
Durch die Offenlegung des Quellcodes wird Transparenz gefördert und die Nachnutzung für andere Forschungsprojekte ermöglicht. Die Pipeline folgt den Best Practices für reproduzierbare Forschung und ist vollständig dokumentiert.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
title: SGB Data Validator
3+
subtitle: Datenvalidierung für Stadt.Geschichte.Basel
4+
author:
5+
- name: Moritz Mähr
6+
7+
orcid: 0000-0002-1367-1618
8+
affiliation: Universität Basel
9+
date-modified: last-modified
10+
lang: de
11+
code-links:
12+
- href: 'https://github.com/Stadt-Geschichte-Basel/sgb-data-validator/'
13+
text: GitHub Repository
14+
icon: github
15+
---
16+
17+
## SGB Data Validator
18+
19+
Der [SGB Data Validator](https://github.com/Stadt-Geschichte-Basel/sgb-data-validator) ist ein Python-basiertes Werkzeug zur Validierung der Metadatenqualität für das Projekt Stadt.Geschichte.Basel. Es stellt sicher, dass Kulturgüter und Medienobjekte in der [Omeka S](https://omeka.org/s/)-Instanz einem umfassenden Datenmodell mit kontrollierten Vokabularen entsprechen.
20+
21+
Das Werkzeug wurde entwickelt, um die Qualität und Konsistenz der historischen Forschungsdaten zu gewährleisten. Es überprüft systematisch alle Metadaten auf Vollständigkeit, Korrektheit und Einhaltung definierter Standards. Dadurch wird sichergestellt, dass die Daten den FAIR-Prinzipien (Findable, Accessible, Interoperable, Reusable) entsprechen.
22+
23+
## Funktionen
24+
25+
Der Validator bietet umfangreiche Prüf- und Analysemöglichkeiten:
26+
27+
- **Schema-Validierung**: Nutzt Pydantic-Modelle für strukturierte Datenprüfung
28+
- **Kontrollierte Vokabulare**: Validiert Epochen, MIME-Typen, Lizenzen und Iconclass-Codes
29+
- **Sprachvalidierung**: Überprüft ISO 639-1 Sprachcodes für alle 184 Zwei-Buchstaben-Codes
30+
- **URI-Validierung**: Prüft URIs auf Erreichbarkeit und erkennt defekte Links
31+
- **CSV-Reports**: Erstellt übersichtliche Berichte für die Datenqualitätsprüfung
32+
- **Daten-Profiling**: Generiert interaktive HTML-Berichte mit detaillierten Statistiken
33+
- **Datentransformation**: Normalisiert Leerzeichen und andere Formatierungsprobleme
34+
- **Backup und Restore**: Sichere Datenverwaltung mit Wiederherstellungsfunktion
35+
- **Python-API**: Programmtischer Zugriff für erweiterte Anwendungsfälle
36+
37+
## Anwendung
38+
39+
Das Werkzeug kann über die Kommandozeile bedient werden und unterstützt verschiedene Validierungs- und Transformationsszenarien. Es ermöglicht sowohl die Online-Validierung direkt aus Omeka S als auch einen vollständigen Offline-Workflow mit Download, Transformation, lokaler Bearbeitung und Upload.
40+
41+
Die Validierungsergebnisse werden in verschiedenen Formaten bereitgestellt, darunter übersichtliche CSV-Dateien mit direkten Links zu den zu bearbeitenden Ressourcen in der Omeka-Administrationsoberfläche. Dies erleichtert die systematische Behebung von Datenqualitätsproblemen erheblich.
42+
43+
## Technologie
44+
45+
Das zugehörige GitHub-Repository [sgb-data-validator](https://github.com/Stadt-Geschichte-Basel/sgb-data-validator/) enthält den vollständigen Open-Source-Code des Validators. Die Verwendung moderner Python-Bibliotheken wie Pydantic für Datenvalidierung und ydata-profiling für Datenanalyse gewährleistet hohe Qualität und Zuverlässigkeit.
46+
47+
Das Projekt folgt der [Advanced Structure for Data Analysis](https://book.the-turing-way.org/project-design/pd-overview/project-repo/project-repo-advanced/) von *The Turing Way* und nutzt moderne Werkzeuge wie [uv](https://docs.astral.sh/uv/) für Abhängigkeitsverwaltung und [ruff](https://docs.astral.sh/ruff/) für Code-Qualität. Durch die Offenlegung des Quellcodes wird die Nachnutzbarkeit für andere Kulturerbe-Projekte gefördert.

0 commit comments

Comments
 (0)