Ziel dieser Programmieraufgabe ist es, die Datenbank-Schnittstelle der Web-Suchmaschine zu implementieren.
Die Datenbank-Schnittstelle hat im wesentlichen folgende Aufgaben:
Oeffnen und Schliessen der Datenbank-Verbindung mit einer Oracle-Instanz;
Anlegen und Loeschen des Datenbank-Schemas zum Speichern der Crawl-Daten;
Berechnung der Feature-Vektoren der Dokumente nach dem Crawl.
Der Entwurf des Datenbank-Schemas (Tabellen, Indizien und Integritätsbedingungen)
bleibt dem Entwickler ueberlassen. Beim Crawl sollen mindestes
URLs aller gecrawlten Dokumente sowie
Stammformen aller extrahierten Wörter
gespeichert werden; die Speicherung weiterer Informationen
(Links aus den Dokumenten, einzelne Woerter und deren Positionen im Text des Dokuments) ist optional.
Nach dem Crawl sollen aus den gespeicherten Stammformen dokumentspezifische Features generiert und
gespeichert werden:
Wortstamm des Features
RTF Gewicht (relative Termhäufigkeit) des Features im Dokument;
Unser zukünftiges Ziel ist es - analog zu den grossen Web-Suchmaschinen -
die Keyword-basierte Suche auf den Features der gecrawlten Dokumente durchzuführen und die
Rangliste der besten Treffer (URLs) zurückzugeben. Natürlich muss das Datenbank-Schema deshalb noch
weitere Informationen beinhalten, um die Zuordnung
der Features zu den URLs des Quelldokumente (z.B. durch Verwendung der eindeutigen Dokument-IDs)
zu ermöglichen.
Der bereits implementierte Crawler (Programmieraufgabe P2) muss nun leicht erweitert werden, um die geparsten Dokumente
mit Hilfe der Datenbank-Schnittstelle in das (vorher vorbereitete) Datenbank-Schema während
des Crawls speichern zu können.
Die Funktionen der Datenbank-Schnittstelle und des 'erweiterten' Crawlers sind durch Interfaces ISDBinterface
und ISDBCrawlerInterface vorgegeben. Die einzureichende Lösung soll die Klasse ISDBCrawler mit dem vorgegebenen Funktionsumfang
enthalten.