Programmieraufgabe 1 (Parser)

Startseite
THE TRUTH Informationssysteme
Sommersemester 2005
Ausgabe:          Donnerstag, 14. April 2005
Upload Deadline:  Donnerstag, 28. April 2005 09:15 MEZ

In der ersten Programmieraufgabe sollen Sie den Parser implementieren. Der Parser verarbeitet den vorgegebenen HTML-Input (z.B. eine Webseite) und führt einfache lexikalische Analyse durch:

  1. Er entfernt alle HTML Formatierungen und extrahiert alle Wörter und Links aus dem Dokument;
  2. Er benutzt die "Schwarzliste" der Stoppwörter (FreeWais), um alle für die Suchmaschine irrelevanten Stoppwörter zu ignorieren;
  3. Er verwendet den Porter-Stemmer, um aus Wörtern durch Entfernung der Suffixe Wortstämme zu bilden (zur Vereinfachung nehmen wir an, dass alle zu verarbeitenden Dokumente in English gefasst sind)

Die Eingabe des Parsers wird durch einen Reader (Java-Klasse zur Verarbeitung von Streams, die aus alphanumerischen Zeichen bestehen) dargestellt. Diese Eingabe kann mit Hilfe des eingebauten Java-Parsers für HTML (HTMLEditorKit.Parser) verarbeitet werden; es steht Inhnen frei, alternativ eine eigene Implementierung zu verwenden. Die Ausgabe des Parsers ist ein Java-Objekt, dessen Funktionsumfang durch Interface ISDocumentInterface vorgeschrieben ist (in anderen Worten, Ihr Ergebnis-Objekt muss Interface ISDocumentInterface implementieren). Dieses Objekt enthaelt die Ergebnisse der Arbeit des Parsers:

Java-Interface ISParserInterface gibt die formale spezifikation der erforderlichen Pflichtfunktionen vor. Ihr Paket soll als Java-Package ISSearch realisiert sein und muss eine Klasse namens ISParser enthalten, die dieses Interface korrekt implementiert. Die Lösung soll die vorgeschriebenen Namen der Interfaces und der Pflichtklassen sowie deren Funktionsumfang strikt einhalten; ueber diese Vorgaben hinaus hinaus koennen Sie natuerlich beliebige Klassen und Klassenbibliotheken hinzufuegen.

Ihre Implementierung sollte in der Lage sein, aus einem beliebigen Reader, z.B. Webseiten (InputStreamReader, BufferedReader), Textdatei (FileReader), einfacher Java-String (StringReader) etc. die gewünschten Inhalte - also Wörter und Links - korrekt zu extrahieren. Einfache Ausnahmefälle (z.B. eine Textdatei ganz ohne Links) sollten nach Vorgaben des jeweiligen Interfaces (siehe Javadoc) bearbeitet werden.

Ressourcen