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
PDF


Zentrale Aspekte

Weiterführende Literatur

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 Computational Biology 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].