Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:lehre:programmierkonzepte:ws2017:29:index

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

  • 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 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.

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

  • 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 Computational Biology 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
de/lehre/programmierkonzepte/ws2017/29/index.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1