Hinweise zur Bearbeitung der Programmieraufgaben
|
|
|
Informationssysteme
Sommersemester 2005
|
Das Ziel der Programmieraufgaben ist die Implementierung der einfachen
Web-Suchmaschine. Das System besteht aus folgenden Komponenten:
- der Crawler, der die Downloads der Webseiten durchführt;
- der Parser, der die geladenen Seiten analysiert und extrahierte Links, Wörter und morphologische Grundformen der Wörter (Stems) in Form von Listen zurückgibt;
- die Datenbank-Schnittstelle für die Speicherung der extrahierten Informationen in die Datenbank;
- der Postprocessor, der die Informationen des Crawls auswertet
und Featurevektoren der Dokumente mit TF*IDF Gewichtung berechnet sowie Indexstrukturen für schnellen Datenzugriff anlegt;
- der Query Processor für die Ausführung einfacher Such-Anfragen,
der für vorgegebene Suchbegriffe eine Rangliste der Treffer aus dem gecrawten Datenbestand generiert;
- die P2P-Suchmaschine (optional), die die Suchanfragen an die Suchsysteme der anderen Teilnehmer
weiterleitet und eine gemeinsame Rangliste der Treffer aus mehreren Crawls zusammenstellt.
Jede Komponente ist Gegenstand einer Programmieraufgabe. Die 'offizielle' Programmiersprache unserer Vorlesung ist Java.
Es steht Ihnen frei, eine andere Programmiersprache (z.B. Perl oder Python) zu verwenden, sofern die Vorgaben der Schnittstellen und Interfaces
des Projektes eingehalten werden. Allerdings können wir in diesem Fall keine technische Unterstützung bzw. Beratung garantieren.
Jede Aufgabe enthält eine allgemeine Problemstellung und formale Funktions-Voraussetzungen,
die durch Java Interfaces spezifiziert sind. Aus Kompatibilitätsgründen soll Ihre Implementierung
die vorgeschriebenen Namenskonventionen und den Funktionsumfang strikt einhalten. Es steht Ihnen
natürlich frei, zusätzliche Packages oder Klassen einzubinden; diese sollen als Bestandteil der
Implementierung eingereicht werden. Für einige Aufgaben werden wir zusätzliche Packages,
Online-Tutorials und Empfehlungen bereitstellen.
Die Aufgaben können in kleinen Gruppen (bis zu 3 Teilnehmer) bearbeitet werden. Jeder
Mitglied der Gruppe soll an der Entwicklung aktiv beteiligt sein, alle Lösungen unter seiner MatrNr
einreichen und dem Betreuer der Gruppe vorführen.
Die elektronische Einreichung und Vorführung der Programmieraufgaben ist Pflicht
für jeden Kursteilnehmer. Dei Lösungen werden in Form einer JAR/ZIP Datei über die
Upload - Seite elektronisch eingereicht.
Diese Datei soll den Quelltext aller Klassen, alle zusätzlich benutzten Bibliotheken, sowie eine
funktionsfähige kompilierte Version der Lösung enthalten. Jeder Teilnehmer soll die Lösung unter seiner
MatrNr einreichen.
Wir empfehlen die Benutzung unseres elektronischen Forums
für alle Diskussionen rund um die Programmieraufgaben. Die Betreuer der Vorlesung nehmen an den Diskussionen teil.
Hinweise zur Benutzung der CIP-Pools:
Für die Bearbeitung und die Vorführung der Programmieraufgaben haben wir reservierte Slots
in den CIP-Pools des Fachbereichs (Gebäude 45). Falls Sie noch keinen Account für die CIP-Pools haben,
sollten Sie mit der Rechnerbetriebsgruppe
des Fachbereichs Kontakt aufnehmen. Die Bearbeitung und Vorführung der Programmieraufgabemn auf eigenen
Notebooks ist ebenfalls kein Problem.
CIP-FAQ:
- The environment variable CLASSPATH
must contain all directories and library files of your implementation. The
error message "NoClassDefFoundError" (and runtime "NullPointerExceptions")
usually indicate that your CLASSPATH is not correct.
- setenv CLASSPATH path1:path2:path3...
The core java library is available "by default", no CLASSPATH setting is required.
- To compile the java class (command prompt):
- To execute the java program (command prompt):
- How to use the NetBeans Java IDE:
- Download NetBeans from NetBeans Home
- Save the installation package (file some_netbeans.tar.gz) into your home directory
- Unpack this archive file using
- gunzip some_netbeans.tar.gz
- tar -xvf some_netbeans.tar
- this will create a new folder 'netbeans' in your home directory. The NetBeans IDE is now ready to go.
- Run IDE: ./netbeans/bin/runide.sh -jdkhome /import/local/diablo-jdk1.3.1
NetBeans sets the CLASSPATH value for compilation and execution within the framework automatically.
You need to "mount" all required library files and directories:
(Filesystems -> Mount -> Local Directory).