Was ist eigentlich ein Text?

Der erste Schritt ein Problem effizient zu lösen ist es zu begreifen. Jeder weiß, was ein Text ist, schließlich haben wir in frühster Kindheit gelernt, dem Wort eine Bedeutung zuzuweisen. Auch wenn die Bedeutung eigentlich trivial ist, bleibt die Frage, ob man als vier- oder fünfjähriger eigentlich die Bedeutungen der Trivialitäten begreifen konnte.

Noch viel wichtiger ist allerdings, ob unsere triviale Vorstellung eines Textes, die wir als Kleinkind begriffen haben und im Alltag sicherlich nie anzweifeln würden, überhaupt genau genug ist, um sich damit an einen Computer zu setzen. Wir müssen unseren Horizont also erweitern und die Sache etwas abstrakter betrachten.

Ein Text ist...

…ist eine Anreihung von Wörtern, getrennt von Freiräumen und Satzzeichen.

Das ist nur in der Regel leider nicht das Format, in dem Computer Texte speichern. Ein Computer verfügt über einen Speicher an dem Byte an Byte anliegt und keine Freiräume vorgesehen sind. Sicherlich ist dem einen oder anderen das Wort „Freiraum“ aufgefallen und man stellt sich die Frage, warum ich nicht „Leerzeichen“ schrieb. Nun zwischen zwei Worten ist kein Leerzeichen, sondern ein Freiraum. Damit die Wörter nicht direkt hintereinander folgen, wurde das Leerzeichen erfunden, so dass ein Byte dafür verwandt wird, einen Freiraum zu repräsentieren. Das Leerzeichen ist also eine Erfindung, die dazu dient, dass die Freiräume überhaupt mitgespeichert werden können. Ein Leerzeichen ist immer ein Byte groß. Das ist aber nicht gleichbedeutend mit einem Freiraum, denn unabhängig wie weit die Worte auseinander geschrieben sind, sie sind immer von genau einem Freiraum getrennt. Das sieht bei Leerzeichen allerdings anders aus, denn man kann durchaus mehrere Leerzeichen zwischen Wörtern unterbringen. Und das bedeutet, dass der Computer einen Unterschied zwischen „Hallo Welt“ (ein Leerzeichen) und „Hallo  Welt“ (mit zwei Leerzeichen) findet.

Das Leerzeichen ist bei Computertexten von einem Freiraum zu einem Satzzeichen geworden, das dazu dient, Wörter zu trennen.

Ein Wort ist...

…eine Anreihung von Buchstaben.

Das sieht auf den ersten Blick ganz logisch aus, denn der Computer kann Buchstaben speichern, dann sollte es hier keine Probleme geben. Es gibt aber ein Problem, den vor einem Wort, wie auch hinter einem Wort befindet ein Freiraum oder ein Satzzeichen. In jedem Fall folgt ein Wort nicht direkt einem anderen Wort.

Und zusätzlich haben wir das Problem, dass ein Buchstabe im Computer nicht gleichzusetzen ist mit dem Begriff, wie wir Buchstaben als Kinder kennengelernt haben. Als Kinder haben wir gelernt, dass es 26 Buchstaben gibt und die jeweils groß und klein. Außerdem gibt es noch Ä, ä, Ö, ö, Ü, ü und ß und großes ß. Das Alphabet besteht also aus zwei mal 26 Buchstaben, sowie zwei * 4 Spezialbuchstaben.

Nun tauchen in Texten aber auch Satzzeichen und Ziffern auf, die ebenfalls verglichen werden können. Ein Byte speichert jeweils einen Buchstaben. Und für den Computer ergibt sich damit ein Alphabet von 256 Zeichen, die beliebig aneinandergereiht werden können, die Satzzeichen, große und kleine Buchstaben und Ziffern enthalten können. Auch das Leerzeichen ist ein solches Zeichen. Wir suchen also keine Worte in einem Text, sondern immer eine Zeichenreihenfolge, ein Muster, in einem großen Datensatz.

Da alle möglichen Zeichen teil des Alphabet sind, verliert das „Wort“ seine Bedeutung bei der Suche in Texten, denn ein Text ist genau ein langes Wort, das aus einer langen Kette von Zeichen besteht.

Ein Pattern ist...

Ein Pattern ist ein Muster, dass sich in einem Text gefunden werden soll. Das Suchmuster muss entsprechend kleiner sein als der Datensatz (Text), in dem es gesucht wird. Lautet der Datensatz „Hallo Welt“, so wäre auffindbares Pattern zum Beispiel „Welt“. Da das Leerzeichen aber für den Computer kein Trennzeichen darstellt, sondern nur dem Menschen beim Lesen hilft, ist das Leerzeichen ein gültiges Zeichen. Ein Suchmuster wie „lo We“ ist damit gültig, da die Zeichen für den Computer durch nichts getrennt sind, also die Freiräume als Trennung fehlen, entspricht ein Suchmuster nicht der Definition eines Wortes.

Was bedeutet das alles?

Der wichtige Unterschied ist, dass Computer keine Freiräume darstellen können. Also können wir uns die Sichtweise eines Computers so verständlich machen, wenn wir auf die Nutzung von Freiräumen verzichten:

diesisteintextohnefreiräume.

Wenn wir nun nach einem Wort suchen wollen, zum Beispiel das Pattern ohne, so helfen uns die Freiräume nicht mehr, den Text optisch zu strukturieren. Wir müssen also den ganzen Text, der für uns nun wie ein Wort aussieht, nach dem Muster ohne durchsuchen. Und noch etwas verändert sich: Wir können das Wort stein suchen und werden es auch finden. Es ist auf aber den ersten Blick nicht zu unterscheiden, ob das Wort stein überhaupt eine Bedeutung im vorliegenden Text hat. Für den Computer, der den Text selbst sowieso nicht erfassen kann, spielt es daher keine Rolle, wenn wie oben in „Hallo Welt“ das Pattern „lo We“ gesucht und gefunden wird, da das Leerzeichen nur als ein Zeichen von vielen behandelt wird und Freiräume in einem einfachen Text so nicht dargestellt werden können.

Fazit

Ein Text ist für den Computer eine Anreihung von nicht voneinander trennbaren Zeichen aus einem Alphabet von 256 Zeichen. Ein Pattern ist ein kurzer Text, der als Suchmaske genutzt wird.