Inhaltsverzeichnis
29. Datenformate: beständig und plattformunabhängig
- Themen
- Kriterien für Datenformate in der Wissenschaft
- Beispiele plattform- und sprachunabhängiger Formate
- Zum Umgang mit Daten und Metadaten
- Bedeutung im Gesamtkontext einer Auswertungssoftware
- Folien
- Glossar
- Video
- MP4
Webcast
Hinweis: Der Webcast wurde mit Tiny Webcasts for Lecture(r)s erstellt.
Zentrale Aspekte
- Formate betreffen nicht nur Roh- und verarbeitete Daten,
sondern auch Metadaten, Dokumentation, Abbildungen. - Datenformate sollten über Jahrzehnte lesbar,
plattformunabhängig, quelloffen und dokumentiert sein. - Daten über Jahrzehnte lesbar zu archivieren,
ist nicht nur eine Frage der Formate, sondern auch der Organisation. - Rohdaten sollten immer (im Originalforma) archiviert
und vor (ungewollter) Veränderung geschützt werden. - Das konkrete Datenformat oder die Art der Datenlagerung
ist für ein System zur Datenverarbeitung irrelevant.
Fragen zur Vertiefung und Wiederholung
Diese Fragen dienen der persönlichen Beschäftigung mit der Thematik, werden aber nicht separat in der Vorlesung besprochen.
- Warum ist das Thema „Datenformate“ für Wissenschaftler relevant, auch wenn sie nicht selbst aktiv Auswertungssoftware programmieren?
- Warum sind Textformate in vielen Fällen Binärformaten vorzuziehen?
- Wie lässt sich relativ einfach und elegant überprüfen, ob sich ein Datensatz (bzw. eine beliebige Datei) verändert hat? Warum ist das im Kontext der Datenarchivierung von großer Bedeutung?
- Welche Arten von Daten können im Gesamtkontext wissenschaftlicher Datenverarbeitung anfallen, die man langfristig archivieren wollen würde?
- Welche Bedeutung haben Datenformate im Gesamtkontext eines Systems zur Datenverarbeitung und -Analyse?
- Wie können Sie den Zugriff auf Datensätze vereinheitlichen und gleichzeitig unabhängig vom konkreten Ablageort gestalten?
- Welche Anwendung des Single-Responsibility- und des Open-Closed-Prinzips bei der Entwicklung von Datenformaten, die gleichzeitig numerische und Metadaten enthalten, können Sie sich vorstellen?
Weiterführende Literatur und Links
Eine kommentierte und handverlesene Liste mit weiterführender Literatur zum Thema. Die Auswahl ist zwangsläufig subjektiv.
Viele Autoren, die sich mit Datenformaten beschäftigen, liefern ein Plädoyer für die Nutzung von reinem Text für die Datenablage und Kommunikation. Vgl. dazu Kapitel 3 in [Hunt, 1999Hunt, Andrew; Thomas, David (1999): The Pragmatic Programmer, Addison-Wesley, Boston], Kapitel 8 in [Kernighan, 1999Kernighan, Brian W.; Pike, Rob (1999): The Practice of Programming, Addison Wesley, Boston] und Kapitel 5 in [Raymond, 2004Raymond, Eric S. (2004): The Art of UNIX Programming, Addison Wesley, Boston]. Letzterer liefert darüber hinaus viele sehr gute (und praxisrelevante) Hinweise zur Erstellung eigener textbasierter Formate und diskutiert diverse bekannte Textformate wie DSV/CSV, XML, Windows-INI-Dateien etc.
Die von vielen modernen Programmiersprachen und Anwendungen verwendete Variante, Gleitkommazahlen darzustellen, entspricht der Norm IEEE 754 (ANSI/IEEE Std. 754-1985). Jede Zahl wird durch 64 Bit (8 Byte) repräsentiert, was auch als „doppelte Genauigkeit“ bezeichnet wird. Ein paar Details zur doppelten Genauigkeit und zur Norm IEEE 754 finden sich in der (deutschsprachigen) Wikipedia. Weitere Details und Beispiele, die die generelle Art der Codierung von Gleitkommazahlen beschreiben, finden sich im Buch Numerical Computing with MATLAB von Cleve Moler, dem Gründer von MathWorks (der Firma hinter Matlab). Die entsprechenden Passagen finden sich im ersten Kapitel des Buches.
Eine sehr kurze Einführung in HDF5 aus der Sicht der Experimentalphysik einerseits und Python andererseits liefert Kapitel 9 in [Scopatz, 2015Scopatz, Anthony; Huff, Kathryn D. (2015): Effective Computation in Physics, O'Reilly, Sebastopol]. Spezifisch für HDF5 und seine Verwendung in einem Python-Kontext ist [Collette, 2014Collette, Andrew (2014): Python and HDF5, O'Reilly, Sebastopol].
Eine prägnante Darstellung der Aspekte, die man beim Umgang mit Daten in den Naturwissenschaften beachten sollte, egal ob in der Biologie und Bioinformatik oder ob in der Teilchen- oder Astrophysik, liefert [Hart, 2016Hart, Edmund M.; Barmby, Pauline; LeBauer, David; Michonneau, François; Mount, Sarah; Mulrooney, Patrick; Poisot, Timothée; Woo, Kara H.; Zimmerman, Naupaka B.; Hollister, Jeffrey W. (2016): Ten simple rules for digital data storage, PLoS Comput. Biol. 12:e1005097].
Für die Bedeutung im Gesamtkontext einer Auswertungssoftware und insbesondere für Details zum Dependency-Inversion-Prinzip und der „sauberen Architektur“ vgl. [Martin, 2018Martin, Robert C. (2018): Clean Architecture. A Craftman's Guide to Software Structure and Design, Prentice Hall, Boston].
- Collette, Andrew (2014): Python and HDF5, O'Reilly, Sebastopol
- Hart, Edmund M.; Barmby, Pauline; LeBauer, David; Michonneau, François; Mount, Sarah; Mulrooney, Patrick; Poisot, Timothée; Woo, Kara H.; Zimmerman, Naupaka B.; Hollister, Jeffrey W. (2016): Ten simple rules for digital data storage, PLoS Comput. Biol. 12:e1005097
- Hunt, Andrew; Thomas, David (1999): The Pragmatic Programmer, Addison-Wesley, Boston
- Kernighan, Brian W.; Pike, Rob (1999): The Practice of Programming, Addison Wesley, Boston
- Martin, Robert C. (2018): Clean Architecture. A Craftman's Guide to Software Structure and Design, Prentice Hall, Boston
- Raymond, Eric S. (2004): The Art of UNIX Programming, Addison Wesley, Boston
- Scopatz, Anthony; Huff, Kathryn D. (2015): Effective Computation in Physics, O'Reilly, Sebastopol
Umgang mit Forschungsdaten
Die Allianz der deutschen Wissenschaftsorganisationen hat am 24. Juni 2010 Grundsätze zum Umgang mit Forschungsdaten verabschiedet. Darüber hinaus gibt es von der Deutschen Forschungsgemeinschaft (DFG) Leitlinien zum Umgang mit Forschungsdaten.
- Allianz der deutschen Wissenschaftsorganisationen (2010): Grundsätze zum Umgang mit Forschungsdaten, 2 p.
https://doi.org/10.2312/ALLIANZOA.019 - DFG: Leitlinien zum Umgang mit Forschungsdaten
https://www.dfg.de/download/pdf/foerderung/antragstellung/forschungsdaten/richtlinien_forschungsdaten.pdf