Inhaltsverzeichnis
Struktur
Jeder Datensatz für eine bestimmte Art von Daten wird spezifische, nur für diesen Zweck notwendige Felder besitzen. Gleichzeitig hat aber jeder Datensatz eine allgemeine, immer gleiche Struktur. Das erleichtert die Arbeit mit unterschiedlichen Datensätzen und ermöglicht die einfache und sichere Identifikation des jeweiligen Typs.
Grundlegende Eigenschaften
Ein Datensatz ist immer ein assoziatives Datenfeld (vgl. Abb. 1). In Matlab entspräche das dem Datentyp struct
, in PHP einem hash
, in anderen Sprachen einem assoziativen Array. Der große Vorteil dieses Datentyps ist der Zugriff auf einzelne Felder anhand ihres Schlüssels und die einfache Speicherung von Schlüssel-Wert-Paaren, wie sie sehr oft für Metadaten natürlicherweise auftaucht.

Allgemeine Struktur
Das Konzept des Datensatzes hat sich aus den beiden Matlab-Toolboxen für die Verarbeitung zeitaufgelöster EPR- (trEPR-Toolbox) und transienter Absorptionsspektren (TA-Toolbox) über die Jahre entwickelt. Aus dieser Erfahrung heraus lässt sich eine allgemeine Struktur eines Datensatzes ableiten.
Auf oberster Ebene ergeben sich die folgenden Felder, jeweils mit kurzer Beschreibung ihres „Inhaltes“:
- data
- numerisch
- (verarbeitete) Daten – gemessen oder simuliert
- origdata
- numerisch
- Rohdaten aus der Originaldatei/-quelle
- axes
- assoziatives Datenfeld (hierarchisch)
- Informationen zu den Achsen
- Achsen werden numerisch indiziert, nicht mit Achsen (x,y,z) bezeichnet1)
- parameters
- assoziatives Datenfeld (hierarchisch)
- Informationen zur Messung
- Ein Großteil der Metadaten zur Messung wird hier abgelegt.
- sample
- assoziatives Datenfeld (hierarchisch)
- Informationen zur Probe
- comment
- Textfeld
- Kommentar zum Datensatz
- „Freitext“ möglich
- history
- Liste assoziativer Datenfelder
- Historie der Datenverarbeitung
- Für jeden einzelnen Schritt der Datenverarbeitung wird ein assoziatives Datenfeld in der Liste erzeugt. Die Reihenfolge in der Liste entspricht der Reihenfolge der Prozessierungsschritte.
- file
- assoziatives Datenfeld (hierarchisch)
- Informationen zur Originaldatei
- format
- assoziatives Datenfeld (hierarchisch)
- Typ und Version des Datensatzes
- Jede Art von Daten erfordert in der Regel eigene, spezielle Felder.
- Nur wenn an einer generischen Stelle in einem Datensatz der Typ erkennbar ist, kann ein Programm einfach darauf zugreifen – unabhängig davon, ob es diesen speziellen Datensatztyp dann weiterverarbeiten kann.2)
- Da die (interne) Struktur von Datensätzen einer ständigen Weiterentwicklung unterworfen ist – insbesondere bei der Ablage der Metadaten –, ist zur Wahrung der Abwärtskompatibilität und zur Erleichterung der robusten Programmierung eine Versionsinformation (mit Datum!) von entscheidender Bedeutung.
- label
- Zeichenkette
- kurzer, möglichst eindeutiger Bezeichner, wie er dann auch z.B. in Listen von Datensätzen innerhalb grafischer Oberflächen verwendet werden kann.
Optionale Felder
Es gibt eine Reihe von Feldern für spezielle Zwecke, die nicht zwangsläufig in jedem Datensatz auftauchen müssen, aber die dann Verwendung finden, wenn entsprechende zusätzliche Daten bzw. Informationen abgelegt werden müssen.
- calculated
- numerisch
- berechnete Daten im Falle von Simulationen
- Liegen in einem Datensatz nur berechnete Daten vor, dann werden diese im Feld
data
gespeichert. - Handelt es sich dagegen um einen experimentellen Datensatz, zu dem zusätzlich Simulationen erzeugt wurden, wird das jeweilige Ergebnis der Simulation in diesem Feld abgelegt.
Feldnamen
Die Feldnamen müssen eine Reihe von Konventionen erfüllen, teilweise aus praktischen Erwägungen, teilweise aufgrund der spezifischen Gegebenheiten der verwendeten Programmiersprachen (in erster Linie momentan Matlab):
- englische Bezeichnungen
- erstes Zeichen muss ein Buchstabe sein
- keine Sonderzeichen, nur Buchstaben und Zahlen (A-Za-z0-9)
Feldnamen sollten darüber hinaus nicht zu lang werden. Gibt es mehrere Feldnamen auf einer Ebene, die das gleiche Präfix tragen, sollten sie (in der Regel) in einem eigenen assoziativen Datenfeld zusammengefasst werden, das wiederum das Präfix als Namen trägt.