Was ist ein “Datensatz”?#

2024-05-05, Open Data Day in München, Diskussion mit Kollegen: Was ist im Kontext von govdata.de ein Datensatz?

Warum die Frage interessant ist: Portale wir govdata.de und andere geben die Anzahl der Datensätze prominent an. Bisweilen entsteht der Eindruck, die Anzahl von Datensätzen könnte als ein Bewertungs-Instrument eines Portals verstanden werden.

Ausgangspunkt war die Frage: Daten werden oft in Dateien publiziert, z.B. in CSV-Dateien.

  • Kann man aus einem (hier CSV-) Datensatz mehrere Datensätze generieren, indem man eine große CSV-Datei in mehrer CSV-Dateien aufteilt?

  • Sind Daten, die jährlich in einer eigenen (hier CSV-) Datei publiziert werden, aber deren Schema identisch ist, nicht eigentlich nur ein einziger Datensatz, der aus technischen oder logistischen Gründen aufgeteilt ist?

Als Ausgangspunktfragen wir bei Wikipedia an, was “Datensatz” heißen könnte. (Wir verwenden Wikipedia nicht als Garant von Wahrheit, aber wenigstens als Hinweis auf einen gewissen – möglicherweise irreführenden, fehlerhaften, aber immerhin dokumentierten – Konsens, der uns als Ausgangspunkt dienen könnte.) Also einfach mal nachgeschaut:

Hint

https://de.wikipedia.org/wiki/Datensatz

Ein Datensatz ist eine Gruppe von inhaltlich zusammenhängenden (zu einem Objekt gehörenden) Datenfeldern, z. B. Artikelnummer und Artikelname. Datensätze entsprechen einer logischen Struktur, die bei der Softwareentwicklung (z. B. im konzeptionellen Schema der Datenmodellierung) festgelegt wurde.

Auch nicht-elektronische Daten können zu Datensätzen zusammengefasst sein, zum Beispiel ist eine Karteikarte in einer Kartei ein Datensatz.

Zusammenfassend bezeichnet der Datensatz in der Informatik – wie oben beschrieben – eine eindimensionale, strukturierte Folge von Attributen eines Elements einer übergeordneten Menge (z. B. eine Karteikarte einer Kartei, eine Bestellung einer Datenbank für Bestellungen, eine Zeile einer Adressliste).

JB: keine Zustimmung bzgl. “eine eindimensionale, strukturierte Folge von Attribut”. Besser: “eine Sammlung von Attributen”, denn wir wollen RDF-Datenbestände nicht ausschließen.

Dagegen bezeichnet der Datensatz in der Statistik die Gesamtheit von Daten in einem bestimmten Zusammenhang. Hier ist er also gleichbedeutend mit Datenbestand …

(verkürzte Zitate)

Wie viele andere Begriffe auch ist “Datensatz” ein Polysem:

Dazu kommt noch

Wenn also govdata.de auf seiner Landingpage “99136 Datensätze” angibt, dann ist damit genaugenommen gesagt:

  • die govdata-Datenbank (selbst ein Datensatz_2) enthielt am 2024-05-05T1200 genau 99136 Datensatz_3 (Instanzen von dcat:CatalogRecord);

  • jede einzelne dieser Datensatz_3 beschreibt typischerweise einige wenige externe Datensatz_2 (Instanzen von dcat:Distribution);

  • jeder dieser externen Datensatz_2 enthält typischerweise viele Datensatz_1 (Pascal Record).

Kontext 1: Bibliotheks-Katalog nach RDA#

Uns interessiert die Verwendung von “Datensatz” in der RDA- (früher FRBR-) Community. Wir machen eine Textanalyse, Vorgehen: Volltextsuche in Heidrun Wiesenmüller: Basiswissen RDA, https://www.degruyter.com/document/doi/10.1515/9783110544725/html nach “Datensatz”, dann Sammlung von Zitaten.

Ergebnis: “Datensatz” wird im wesentlichen wie “Record” verstanden.

Um die Entitäten der Gruppe 1 FRBR optimal abzubilden, müsste man eigene Datensätze für Werke, Expressionen und Manifestationen erstellen und diese miteinander verknüpfen. Eine solche Umsetzung wäre jedoch sehr aufwendig und ist in technischer Hinsicht nicht zwingend. Denn man kann auch vorhandene ‘gemischte’ Datensätze auswerten und die FRBR-Ebenen daraus für die Nutzeranzeige erzeugen (vgl. Kap. 8.2). (S. 22, Hervorhebung dort durch einen Kasten)

Auch bei monografischen Reihen (Schriftenreihen) wird häufig ein eigener Datensatz für die Reihe angelegt, der mit den Datensätzen für die einzelnen Bände verknüpft wird […] In einem deutschsprachigen Katalog würde hingegen im Regelfall für jeden der vier Bände ein eigener Datensatz erstellt und mit dem Datensatz für das Gesamtwerk verknüpft werden. Aber auch an deutschsprachigen Bibliotheken wird teilweise die umfassende Beschreibung angewendet (S.36)

4.18.4 Hierarchische Beschreibung: Allgemeines. Die hierarchische (mehrstufige) Beschreibung einer mehrteiligen Monografie besteht aus einer übergeordneten Aufnahme für das Ganze und untergeordneten Aufnahmen für die einzelnen Teile, die im Zusammenhang präsentiert werden. Dafür wird der Datensatz für die übergeordnete Aufnahme mit den Datensätzen für die untergeordneten Aufnahmen datentechnisch verbunden, sodass man zwischen den beiden Ebenen hin- und herspringen kann. Zwar werden bei dieser Methode mehrere Datensätze angelegt, doch handelt es sich trotzdem nur um eine einzige Beschreibung. Es müssen deshalb nicht zwingend in jedem Datensatz alle Kern- und Zusatzelemente belegt sein, solange die verbundenen Datensätze in ihrer Gesamtheit alle Standardelemente abdecken. (S.68)

5.1.3 Erfassung in Titel- und Normdatensätzen Es gibt in RDA keine Vorgabe, an welcher Stelle im Datenmodell man die Merkmale von Werken und Expressionen erfassen soll. Im deutschsprachigen Raum werden sie üblicherweise in denselben Datensatz eingetragen wie die Merkmale der Manifestation, also in den Titeldatensatz. Man spricht in diesem Fall von einer „zusammengesetzten Beschreibung“: Die Merkmale der Manifestation machen den Hauptteil der erfassten Informationen aus, werden aber ergänzt durch Merkmale (und auch Beziehungen), die sich auf der Ebene der Expression und des Werks befinden (vgl. Kap. 8.2.2). (S.79)

5.1.3 Erfassung in Titel- und Normdatensätzen. […] Im deutschsprachigen Raum wurden Normdatensätze früher nur angelegt, wenn es sich um ein Werk der Musik handelte oder wenn das Werk in der Sacherschließung als Schlagwort benötigt wurde. Seit der Einführung von RDA wird diese Praxis ausgeweitet. Künftig sollen Normdatensätze für Werke auch mit Hilfe von automatischen Verfahren erstellt werden. Normdatensätze für Expressionen werden im Rahmen der Formalerschließung bis auf Weiteres grundsätzlich nicht erstellt. (S.79, Kasten)

8.2.1 Identifikator und normierter Sucheinstieg. Als erste Möglichkeit zur Abbildung von Primärbeziehungen kann man einen Identifikator für die in Beziehung stehende Entität erfassen (RDA 17.4.2.1). Naheliegend ist diese Technik insbesondere dann, wenn das FRBR-Modell in Reinform verwirklicht ist. In einem solchen Datenmodell sind die Entitäten der Gruppe 1 streng voneinander getrennt; für jede von ihnen gibt es einen eigenen Datensatz. (S.130f)

8.2.2 Zusammengesetzte Beschreibung. Die dritte Möglichkeit zur Abbildung der Primärbeziehungen ist die sogenannte zusammengesetzte Beschreibung (RDA 17.4.2.3). Dabei wird eine gemischte Beschreibung angelegt, die Informationen aus den drei Ebenen Werk, Expression und Manifestation miteinander kombiniert. Ein Beispiel dafür zeigt Abb. 24 (S. 132). Hier gibt es nur einen einzigen Datensatz für die drei Entitäten Werk, Expression und Manifestation. (132)

JB: Solch ein zusammengesetzter Datensatz ist ein Beispiel für ein Phänomen, das unter Semantische Dekomposition von Konglomeraten genauer beschrieben ist.

8.3.3 In der Manifestation verkörperte Expression. Die Beziehung zur in der Manifestation verkörperten Expression muss nur dann als Kernelement erfasst werden, wenn es mehrere Expressionen des Werks gibt (RDA 17.10). Im deutschsprachigen Raum wird die Expression ausschließlich im Rahmen der zusammengesetzten Beschreibung abgebildet; Normdatensätze für Expressionen werden im Rahmen der Formalerschließung grundsätzlich nicht angelegt (vgl. Kap. 5.1.3).

Kontext 2: IT-Experten mit Hintergrund in Datenbanken#

RDA fußt auf FRBR WEMI … Klassen, die ursprünglich mit einem ER-Digramm modelliert wurden … WEMI Gruppe 1: im Kern 4 unterschiedliche Entity-Typen (Gruppe 2: Schlagwort, Person etc., die uns hier aber nicht interessieren) … in einer Datenbank hätten wir je eine Tabelle für jeden Entity-Typ, sowie ggf. weitere Tabellen für die Relationen dazwischen, ersatzweise Fremdschlüssel

“Einen Datensatz für eine Manifestation anlegen” heißt technisch:

  • in der Tabelle “Manifestation” eine neue Zeile anlegen

  • ggf. in anderen Tabellen weitere Zeilen anlegen, falls diese erforderlich sind, um z.B. Fremdschlüssel-Integrität sicherzustellen

Bedeutung von “Datensatz” in der Datenbank-Szene: Record.

In der Vorlesung “Datenbanken” lernt man, dass oft mehrere Operationen in veschiedenen Tabellen nötig sind, um einen komplexen “Datensatz” anzulegen … das ist dann eine Transaktion: die muss ACID sein, also atomar, konsistent, isoliert, dauerhaft … “Datensatz” könnte hier sein: Alle Informationen, die beim Eintrag einer neuen Ressource nötig (minimaler Datensatz) oder möglich (maximaler Datensatz) sind, um mittels einer ACID-Transaktion von einem konsistenten Zustand in einen anderen konsistenten Zustand zu gelangen … das ist übertragbar auf einen RDF-Graphen: Eingefügt wird hier dann eben nicht eine Menge von neuen Zeilen in verschiedene Tabellen, sondern eine Menge von Tripeln … die man zunächst ja zunächst als einen neuen RDF-Graphen anlegen und dann mergen kann … ein “Datensatz” in RDF wäre also einfach ein RDF-Graph, (a) für sich alleine stehen kann und (b) hinreichend vollständig und konsistent ist.

Wie erhält man solch einen Graphen? Anlegen from scratch: einfach. Oder über eine SPARQL-Anfrage an einen großen Graphen … über CONSTRUCT erhält man wieder einen RDF-Graphen … der allerdings mehrere “Datensätze” enthalten kann …

Was macht in einem RDF-Graphen einen Datensatz (Record) als eine Einheit erkennbar? Was grenzt nun zwei “unterschiedliche” Datensätze voneinander ab? … Idee hier: Im obigen Beispiel haben wir so etwas wie “Hauptklassen” … in RDF wäre ein Datensatz dann ein minimaler RDF-Teilgraph zu einer Instanz einer Hauptklasse, der (a) für sich alleine stehen kann und (b) hinreichend vollständig und konsistent ist.

Einen Datensatz “anlegen” heißt dann:

  • lege eine neue Entity vom gewünschten Typ an

  • reichere die Entity mit allen minimal erforderlichen Attributen an

  • kontrolliere Vollständigkeit und Konsistenz

  • lege Metadaten zum Datensatz an (in SKOS ist das z.B. vorgesehen; auch in https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog_Record)

Kontext 3: DCAT#

5.1 DCAT scope

dcat:Catalog represents a catalog, which is a dataset in which each individual item is a metadata record describing some resource; (https://www.w3.org/TR/vocab-dcat-3/#dcat-scope)

dcat:Dataset represents a collection of data, […] (https://www.w3.org/TR/vocab-dcat-3/#dcat-scope)

dcat:Distribution represents an accessible form of a dataset such as a downloadable file.

DCAT-AP.de 4.3 Klasse: Datensatz:

Beschreibung: Eine logische Entität, welche die veröffentlichten Informationen repräsentiert.

[JB: keine eigene hilfreiche Beschreibung des Begriffs über Scope; statt dessen nur Verweis auf DCAT ]

URI der Klasse dcat:Dataset (Link target https://www.w3.org/ns/dcat#Dataset existiert nicht; aber weiterführende Informationen” zeigt auf DCAT2: https://www.w3.org/TR/vocab-dcat-2/#Class:Dataset)

DCAT 3: RDF Class dcat:Dataset (https://www.w3.org/TR/vocab-dcat-3/#Class:Dataset):

Definition: A collection of data, published or curated by a single agent, and available for access or download in one or more representations.

Usage note: This class describes the actual dataset as published by the dataset provider. In cases where a distinction between the actual dataset and its entry in the catalog is necessary (because metadata such as modification date might differ), the dcat:CatalogRecord class can be used for the latter.

Usage note: This class describes the conceptual dataset. One or more representations might be available, with differing schematic layouts and formats or serializations. (https://www.w3.org/TR/vocab-dcat-3/#Class:Dataset)

Usage note: The notion of dataset in DCAT is broad and inclusive, with the intention of accommodating resource types arising from all communities. Data comes in many forms including numbers, text, pixels, imagery, sound and other multi-media, and potentially other types, any of which might be collected into a dataset.

DCAT3: RDF Class dcat:CatalogRecord (https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog_Record):

Definition: A record in a catalog, describing the registration of a single dcat:Resource. Usage note This class is optional and not all catalogs will use it. It exists for catalogs where a distinction is made between metadata about a dataset or service and metadata about the entry in the catalog about the dataset or service. For example, the publication date property of the dataset reflects the date when the information was originally made available by the publishing agency, while the publication date of the catalog record is the date when the dataset was added to the catalog.

VOID#

Vocabulary of Interlinked Datasets (VoID). Describing Linked Datasets with the VoID Vocabulary. W3C Interest Group Note 03 March 2011. Latest version: http://www.w3.org/TR/void/

1.3 Definition: Dataset. The fundamental concept of VoID is the dataset. A dataset is a set of RDF triples that are published, maintained or aggregated by a single provider. Unlike RDF graphs, which are purely mathematical constructs [RDF-CONCEPTS], the term dataset has a social dimension: we think of a dataset as a meaningful collection of triples, that deal with a certain topic, originate from a certain source or process, are hosted on a certain server, or are aggregated by a certain custodian. Also, typically a dataset is accessible on the Web, for example through resolvable HTTP URIs or through a SPARQL endpoint, and it contains sufficiently many triples that there is benefit in providing a concise summary. (https://www.w3.org/TR/void/#dataset)

(Meta-)Datensatz = RDF Graph#

Quelle: DCAT 3, siehe https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog_Record

Hint

https://www.w3.org/TR/vocab-dcat-3/#Class:Catalog_Record If a [JB DCAT-] catalog is represented as an [JB RDF 1.1, s.u.] RDF Dataset with named graphs (as defined in SPARQL11-QUERY), then it is appropriate to place the description of each [JB DCAT-] dataset (consisting of all RDF triples that mention the dcat:Dataset, dcat:CatalogRecord, and any of its dcat:Distributions) into a separate named graph. The name of that graph SHOULD be the IRI of the catalog record.

Obacht: Unter “RDF Dataset with named graphs” ist über das Zitat von SPARQL11-QUERY technisch explizit eine Menge von RDF-Graphen gemeint:

An RDF dataset is a collection of RDF graphs, and comprises:

  • Exactly one default graph, being an RDF graph. The default graph does not have a name and MAY be empty.

  • Zero or more named graphs. Each named graph is a pair consisting of an IRI or a blank node (the graph name), and an RDF graph. Graph names are unique within an RDF dataset. (https://www.w3.org/TR/rdf11-concepts/#section-dataset)

Ergebnis also zu “Was ist ein Datensatz”: In DCAT wird das Konzept “Datensatz” auf das Konzept Named Graph innerhalb eines RDF Dataset reduziert.

aber offenes Problem: Technisch gesehen ist ein Named Graph einfach eine Menge von RDF Tripeln. Aber nach welcher Systematik entscheiden wir, welche Tripel wir zu einem Named Graph zusammenfassen? Hier gibt es zwei Modellierungspatterns:

  • Graph per domain

  • Graph per business entity

Respekt vor dem sehr schönen Blog-Beitrag von Pavel Klinov:

Hint

https://www.stardog.com/labs/blog/from-vs-from-named-in-sparql/#graph-per-domain

Graph per domain

By domain here we mean some part of the graph which is structurally different from other parts of the graph.

  • a table or a collection of tables esp. if the graph has roots in a relational database(s). […]

  • a data source, i.e. the named graph identifies where a particular part of the data came from, such as an upstream database, a connector, a data stream, etc. The graph IRI is then convenient to record provenance information.

  • a dataset. It’s not uncommon for Stardog customers to maintain different datasets in a single database in different named graphs esp. if they need to be queried together.

Hint

https://www.stardog.com/labs/blog/from-vs-from-named-in-sparql/#graph-per-business-entity

Graph per business entity

The other, substantially different pattern of using named graphs is when each graph keeps together data about a single object, like a product, a customer, or any other business entity. This pattern usually results in millions of small graphs. In contrast to the above use case, these graphs tend to be independent and structurally similar. Continuing the analogy with relational models, such graphs often correspond to a single table row or a small set of linked rows from several tables (i.e. if the relational schema is normalised to a high form).

Bezug zu “CSV vs. Excel”:

  • Eine CSV-Datei ist identisch mit einer einzigen Tabelle;

  • eine Excel-Datei kann mehrere, komplett unterschiedlich strukturierte Tabellen enthalten.

Wenn wir eine Excel-Datei mit mehreren Tabellen vor uns haben:

  • Gemäß dem Graph per Domain-Pattern würde man diese in ein RDF Dataset überführen, in dem jede einzelne in der Excel-Datei enthaltene Excel-Tabelle als ein einzeler Named Graph angelegt wird.

Wenn wir eine CSV-Datei vor uns haben:

  • Überführung trivialerweise in einen einzigen RDF Graphen … oft der default graph, aber das ist problematisch

  • Überführung in ein RDF Dataset, bei dem jede Zeile als ein eigener RDF Graph angelegt wird.

Tupel, Record, Datensatz#

atomar, Datenatom, Tupel

  • Eine Sinneinheit, ein Objekt

  • eine einzelne Entity in einem ER-Diagramm, typischerweise mit eigener ID

  • eine Reihe in einer Tabelle in einer Relationalen Datenbank

  • ein flacher https://en.wikipedia.org/wiki/Record_(computer_science)

  • eine einzene RDF-Entity mit zugehörigen Attribut-Wert-Paaren

molekular, Datenmolekül, Record

  • eine Sammlung von eng zusammengehörigen Sinneinheiten

  • mehrere zusammengehörige, mit Relationen aufeinander bezogene Datenatome

  • eine Sammlung meherer zusammengehörender Entities in einem ER-Diagramm, die zusammen eine konsistente Einheit bilden, incl. Fremdschlüssel-Integriät

  • ein nested record (insbesondere dann, wenn unsere Datenbank resp. unser ER-Diagramm nach einem https://de.wikipedia.org/wiki/Sternschema aufgebaut ist)

  • in RDF ein Named Graph

Record Set

  • eine Sammlung von Datenmolekülen

Datensatz

  • ein Datensatz im Sinne der Statistik

  • eine Sammlung von Record Sets

  • eine CSV-Datei (eine Tabelle), in der viele gleich strukturierte Moleküle vorliegen