Universität Ulm- Sektion Angewandte Informationsverarbeitung

7. Übungsblatt (11.12.97 bis 18.12.97)

zur Vorlesung Unix Datenbanken I (WS 97/98)

 Aufgabe 1 (10 Punkte)

Und zum Ende des Jahres noch ein wenig Textverarbeitung à la HTML: Schreiben Sie ein kleines UNIX-Progrämmchen, daß in der Lage ist, ein Wörterbuch mit allen Wörtern zu erstellen, die in HTML-Dokumenten auf dem aktuellen Directory vorkommen. HTML-Dokumente können an der Datei-Endung .html erkannt werden (vereinfachende Annahme). In dem Wörterbuch soll abgelegt werden, in welchem Dokument das jeweilige Wort vorkommt, also z.B.:

D.h., daß das Wort Weihnachtsfrau in den Dokumenten index.html, main.html,... auftaucht.

Erzeugen sie in einer zweiten Datenbank die Liste aller HTML-Links, die in den Dokumenten vorkommen. Ein Link ist folgendermaßen aufgebaut: <a href="(hier steht der Link)">. Der Link ist der Text zwischen den Anführungsstrichen (z.B. <a href="http://www.night.de">).

Der Eintrag in der Datenbank kann dann z.B. wie folgt aussehen:

http://www.night.de:schlitten.html,backwards.html

Achtung: ignorieren Sie für das Wörterbuch sämtliche Wörter, die zwischen ‘<’ und ‘>’ stehen (also z.B. <a href="www.mathematik.uni-ulm.de"> wird komplett ignoriert!), also auch sämtliche Zeilen, die zwischen <!-- und --> stehen (Kommentar bzw. weitere Sprachelemente). Groß- und Kleinschreibung ist nicht signifikant. Interpunktion (.,;?!) soll als Leerraum interpretiert werden!

 Testen Sie Ihr Programm mit den Dateien des Verzeichnisses /www/thales/www/htdocs/sai. Hier steht u.a. die Homepage der SAI.

Ausbaumöglichkeit für Bastler über Weihnachten (falls die Langeweile zuschlägt!)

 Mit dem auf der Thales verfügbaren Kommando webcopy kann man ein beliebiges HTML-Dokument von einem WWW-Server holen und es in eine Datei stecken (Option -o). Wenn man nun den HTML-Links in dem Dokument rekursiv folgt, so hat man einen primitiven WWW-Robot, der sich eine Datenbank aufbaut. Hierzu müssen aber noch die WWW-Links in dem Dokument richtig interpretiert und die Bilddateien ignoriert werden. Kleine Bastelanleitung:

Aktueller WWW-Server: www.aktserv, aktuelles Dokument oldpath/aktdok.html.

 

String in HREF="...."         Ergebnisaddresse

/pfad/                        www.aktserv/pfad
pfad/                         www.aktserv/oldpath/pfad/
http://www.newserver/path/    www.newserver/path/
//www.newserver/path          www.newserver/path/
http:/path/                   www.aktserv/path/
/path/doku.html#mark          www.doku.html ("mark" ist eine                               Textmarke)
/path/picture.[gif|jpg|tif]   ignorieren! Das sind Bilder!
mailto:blabla                 ignorieren! Das ist eine
                              Mailadresse!