Bei seinem letzten Vortrag, den Jim Gray an der Universität Stuttgart
hielt, versuchte er seine Zuhörer für eScience zu erwärmen. Es muss etwa um das
Jahr 2000 gewesen sein. Seit seinem mysteriösen Verschwinden auf See im Jahre
2007 ist Jim Gray geradezu zur Legende geworden. An zwei Sätze aus Jims Vortrag
erinnere ich mich heute noch, so als sei es erst gestern gewesen. Radioastronomen
sammeln zurzeit mehr Daten als sie je ansehen können. Nur wir Informatiker
können ihnen etwas helfen. In diesen beiden Sätzen ist das heutige Thema wie in
einer Nussschale enthalten.
Neue Phase der Wissenschaft
Nach Jahrtausenden von Beobachtungen und Experimenten und den dazu
angepassten Theorien ließen sich frühe Computer dazu benutzen, um komplexere
Modelle für diese und andere Theorien zu berechnen. Seit gut 20 Jahren explodieren
die Datenmengen, die erfasst werden können. Sie waren entweder schon immer da,
wie in der Astronomie, oder sie wurden zusätzlich erzeugt, etwa in der
Wirtschaft, der Soziologie oder in der Biosphäre. Sie entstehen um uns herum
wie im Weltklima oder in uns wie in der Medizin. Das aus dem leichten Zugriff
auf Daten für die forschende Wissenschaft sich ergebende Potential lässt sich
nur erahnen.
Isaac Newton war noch vollauf damit beschäftigt zu erkennen, wie ein
einziger Apfel fällt. Heute geht der Trend dahin, zu beschreiben, wie alle
Gesteinsbrocken, Organismen, Moleküle, Atome oder Partikel (Elektronen,
Photonen) im Weltraum sich gegenseitig beeinflussen, und zwar durch ihre
aktuellen Positionen und Eigenschaften, genauso wie auf Grund ihrer Geschichte.
Was Newton unter Gravitation verstand, war die Anziehung zwischen zwei Körpern.
Eigentlich ist es ein Vielkörperproblem, mit Millionen, ja Milliarden von
Körpern und unterschiedlichen Kräften. Natürlich ist diese Aufgabe nicht heute
oder morgen lösbar, noch in diesem Jahrhundert. Aber auf dem Wege dorthin befinden
wir uns. Vom ‚rechnenden Raum‘ sprach schon Konrad Zuse. Datenwissenschaft
(engl. data science) nennt sich das Bemühen, aus den Massen der anfallenden
Daten Wissen zu gewinnen. Bruchstückhaftes Wissen ist schließlich besser als gar
kein Wissen.
Von den Natur- zu den Ingenieurwissenschaften
In Fächern wie Astronomie, Geologie, Geschichte, Klimatologie und
Ozeanographie liegt die Betonung auf der Erfassung, Aufbereitung und Analyse
vorhandener Daten, teilweise auch weit in die Vergangenheit greifende. Bei
Physik und Chemie spielen sowohl von der Natur aus gegebene als von Menschen
neu geschaffene Daten eine Rolle. Die Sozial-, und vor allem die
Ingenieurwissenschaften schaffen sich ihre Daten zum größten Teil selber. Sie
wollen nicht nur verstehen, was da ist, sondern sie konzentrieren sich auf das,
was wir haben wollen. Sie wollen nicht nur heilen und reparieren, sondern
verschönern und verbessern. Architekten wie Fahrzeug- und Gerätebauer denken
sich primär eine neue Welt aus, die vorher nicht bestand und die zuerst in der
eigenen Phantasie entsteht, bevor sie in die Realität übertragen wird.
Informatiker sind typischerweise in einer ähnlichen Situation. Die Datenmengen,
die auftreten, können trotzdem einen erheblichen Umfang erreichen. Je mehr
Möglichkeiten es gibt, Alternativen durchzuspielen, umso besser sind die
Chancen ein für die jeweilige Situation geeignetes Optimum zu finden.
Beispiel Tübingen
Die Universität Tübingen verfügt über eine zentrale Einrichtung, eScience-Center
genannt. Es stellt Dienstleistungen für die Digital Humanities (deutsch:
digitale Geisteswissenschaften) zur Verfügung. Unterstützt werden z.B. die Kunstgeschichte
sowie die Archäologie. Aber auch Ethnologie, Islamistik und Indologie
kooperieren. Welchen Nutzen diese Fachgebiete aus der Erfassung, Speicherung
und Aufbereitung ihrer in digitaler Form vorliegenden Daten ziehen können,
liegt auf der Hand. Wenn andernorts sogar eine digitale Theologie betrieben
wird, muss man dies nicht verstehen.
Big Data – die Welle rollt weiter
Im März 2013 hatte ich das Phänomen Big
Data zum ersten Mal in diesem Blog angesprochen. Es schafft zweifellos eine
neue Generation von Problemen und von Lösungen. Wenn es einfach nur so von
Daten wimmelt, drängen sie sich in den Vordergrund. Man kann ihnen nicht
entgehen, auch wenn man es wollte. In der Vergangenheit war daher die Welt in
Manchem einfacher.
Der Beitrag der Informatik besteht unter anderem in der Visualisierung.
Dem Verständnis einer mathematischen Formel kommt nichts mehr entgegen, als
ihren Verlauf Punkt für Punkt, ihren Graphen, zu zeichnen. Gerne benutze ich
Feuerwerke oder Kondensstreifen als Beispiel. So anschaulich beide auch sein
mögen, die sie verursachenden Prozesse oder Funktionen interessieren nur wenige
Experten. Oft geht es auch darum, die Explosion der Daten umzukehren, die
Explizierung rückgängig zu machen. Anstatt von Punktmengen werden dann die
Kurven und Flächen betrachtet, die sich aus der Verdichtung ergeben. Dem kommt
entgegen, dass unser Auge sowie unser Tastsinn Abweichungen von einer glatten
Fläche sehr gut erkennen können. Ein weiterer Vorteil der Digitalisierung soll
nur kurz erwähnt werden. In dem wir Teile der Natur im Rechner simulieren,
können wir den Verbrauch natürlicher Ressourcen reduzieren. Die Anzahl der
Tiere, die für medizinische Experimente geopfert werden, könnte abnehmen.
Wandel und neue Chancen
Was sich für Informatiker und deren Ausbildung ändert, wird allmählich
sichtbar. Ich greife nur ein Beispiel heraus. Datenbanken waren einst ein
Kerngebiet der Informatik, so wie es vorher die Programmiersprachen waren.
Nachdem wir uns von den Bauers, Goslins, Iversons und Wirths verabschiedeten,
sind jetzt die Codds, Grays und Stonebreakers dran. Formatierte Daten, also
auch die Datenbanken, drohen zu einer Exotentechnik zu degenerieren. Die Daten,
die heute verarbeitet sein wollen, sind einfach zu vielfältig und zu umfangreich, um sie noch
vor der Verarbeitung formatieren zu können. Die Programme müssen sich den Daten
anpassen, nicht umgekehrt. Als ein Beispiel für neue Chancen hatte ich
insbesondere auf MapReduce und Hadoop hingewiesen.
Warum gewinnen nicht auch die Prozesse an Bedeutung?
Von manchen Kollegen wird Big Data immer noch als Hype, also als
Werberummel mit Nichts dahinter, angesehen, insbesondere weil man dabei der
Bedeutung von Prozessen ̶ im technischen, nicht im juristischen
Sinne ̶
für die Informatik nicht gerecht würde. Um diesen Kollegen entgegen zu
kommen, wiederhole und vertiefe ich teilweise einige frühere Bemerkungen. In
einem früheren
Blogeintrag zu diesem Thema fasste ich die Beziehung zwischen Daten und
Prozessen wie folgt zusammen:
Die Frage, ob Daten oder Prozesse
wichtiger sind, sollte man vernünftigerweise umformulieren. Die Frage wird
etwas leichter zu beantworten, wenn wir sie auf Schemata (Typ-Beschreibungen)
und Programme beziehen. Die (vorläufige) Antwort kann nur lauten: Im
Allgemeinen sind beide gleich wichtig. Programme machen keinen Sinn, wenn sie
keine Daten verarbeiten. Man kann keine Daten verarbeiten, ohne deren Schemata
zu kennen (von gewissen elementaren, selbstbeschreibenden Daten abgesehen). … Dennoch
ist die Versuchung groß, auch solche Daten analysieren zu wollen, für die wir
(noch) keine Programme oder Schemata haben.
Daten sind oft von Vornherein gegeben oder sie werden von Geräten oder handelnden Akteuren erzeugt. Oft geschieht dies auch ohne unser Zutun. Prozesse sind nicht explizit greifbar. Sie lassen sich manchmal aus den von ihnen erzeugten Daten ableiten. Es ist dies aber keine triviale Aufgabe. Es entspricht dies der Erstellung eines Programms allein aus Testdaten. Für maschinell auszuführende Prozesse, um die es in der Informatik ja primär geht, sind drei Ebenen zu diskutieren: Beschreibung, Generierung und Ausführung. Die Beschreibung wird meist mit dem Begriff der Modellierung gleichgesetzt. Über den Unterschied von Modellierung und Programmierung zu diskutieren, würde hier zu weit führen. Ein Modell (oder ein Programm) sollte in einer möglichst hohen und problemnahen Sprache spezifiziert werden. Diese Spezifikation sollte gleichzeitig umfassend und parameterisierbar sein, so dass sie sich ändernden Anforderungen in einem dynamischem Markt leicht anpassen lässt. Es sollten möglichst Notationen benutzt werden, die auch ausführbar (engl. executable) sind. Über Generierung und Ausführung von lauffähigen Programmen muss in diesem Zusammenhang nichts gesagt werden. Alles, was für Compilersprachen gilt, gilt hier auch.
Nachtrag am 10.12.2015:
Manchmal fällt mir erst mit Tagen Verspätung ein, was in diesem Blog bereits zu einem Thema gesagt wurde. Dass dies bei derzeit 424 Beiträgen schon mal vorkommt, sollte niemanden verwundern. So wurde das Thema Big Data sehr anwendungsbezogen und ausführlich in dem Interview behandelt, das Manfred Roux im Mai 2014 mit Namik Hrle führte. Hrle ist ein IBM Fellow im Böblinger IBM Labor, der aus Banja Luka in Bosnien stammt.
Das Problem wird klarer, wenn man die Rolle von Prozessen etwas aus der
Sicht der Informatikgeschichte analysiert. Am Anfang war eine
Eins-zu-Eins-Zuordnung. Ein Prozess entsprach einem Programm und umgekehrt.
Später konnte ein Programm Hunderte von Prozessen enthalten. Es war ein Synonym
für asynchrone Ausführung. Die meisten der aufkommenden Betriebssysteme
näherten sich etwas zögerlich dem, was man Multitasking nannte. Nur bei Unix
explodierte die Zahl der Prozesse. Hier waren sie zum Massenartikel geworden.
Man hatte weniger Hemmungen, den Nutzer mit einem etwas schwierigen Konzept zu
behelligen. Das trug unter anderem zu ihrer Popularisierung in der akademischen
Lehre bei.
Prozesse im Kopf oder in der Maschine
Auch in der Informatik (und der Wirtschaftsinformatik) gibt es viele
Kollegen, die ihren Beruf nicht besonders gerne ausüben wollen. Anders als bei Medizinern
und Architekten sind besonders viele Hochschullehrer von dieser Phobie
befallen. Bei dem Wort Prozess denken sie zunächst an Abläufe im eigenen Kopf.
Man stellt sich Abläufe in der Natur oder woanders vor und führt sie sozusagen
im eigenen Kopf aus. Diesem Zweck dienten z. B. Pseudocode und die meisten früheren
Modellierungssprachen.
Daten sind oft von Vornherein gegeben oder sie werden von Geräten oder handelnden Akteuren erzeugt. Oft geschieht dies auch ohne unser Zutun. Prozesse sind nicht explizit greifbar. Sie lassen sich manchmal aus den von ihnen erzeugten Daten ableiten. Es ist dies aber keine triviale Aufgabe. Es entspricht dies der Erstellung eines Programms allein aus Testdaten. Für maschinell auszuführende Prozesse, um die es in der Informatik ja primär geht, sind drei Ebenen zu diskutieren: Beschreibung, Generierung und Ausführung. Die Beschreibung wird meist mit dem Begriff der Modellierung gleichgesetzt. Über den Unterschied von Modellierung und Programmierung zu diskutieren, würde hier zu weit führen. Ein Modell (oder ein Programm) sollte in einer möglichst hohen und problemnahen Sprache spezifiziert werden. Diese Spezifikation sollte gleichzeitig umfassend und parameterisierbar sein, so dass sie sich ändernden Anforderungen in einem dynamischem Markt leicht anpassen lässt. Es sollten möglichst Notationen benutzt werden, die auch ausführbar (engl. executable) sind. Über Generierung und Ausführung von lauffähigen Programmen muss in diesem Zusammenhang nichts gesagt werden. Alles, was für Compilersprachen gilt, gilt hier auch.
Nachtrag am 10.12.2015:
Manchmal fällt mir erst mit Tagen Verspätung ein, was in diesem Blog bereits zu einem Thema gesagt wurde. Dass dies bei derzeit 424 Beiträgen schon mal vorkommt, sollte niemanden verwundern. So wurde das Thema Big Data sehr anwendungsbezogen und ausführlich in dem Interview behandelt, das Manfred Roux im Mai 2014 mit Namik Hrle führte. Hrle ist ein IBM Fellow im Böblinger IBM Labor, der aus Banja Luka in Bosnien stammt.
Die Philosophin Christiane Woopen, Vorsitzende des Ethikrats, sieht in der 'Datifizierung' einen allgemeinen Trend. Es gelte sich zu vermessen und zu optimieren (SPIEGEL 50/2015).
AntwortenLöschen