Praktikum fortgeschrittene Prolog-Programmierung
Hallo,
auf dieser Seite habe ich auf die Schnelle ein paar Informationen über
das Praktikum zusammengestellt.
Termine (aktualisiert!!)
Ein zweiwöchiger Rhythmus scheint ganz sinnvoll zu sein.
Hier die Termine für 1998 (nicht verbindlich):
- 14.1.98: Auswertung von Anfragen und Einlesen von tagged Text. (Vielleicht lässt sich beim Einlesen die Pillow Library verwenden.)
- 28.1.98: Integration eines Indizes, d.h. Erstellen (bzw. Erweitern) eines Indizes beim Einlesen eines SGML-Files, und Verwendung des Indizes beim Checken der Constraints. Beim Einlesen Stopwortliste verwenden!
Der Index sollte aus Fakten index/2 bestehen, die die Abbildung von Suchwörtern auf Listen von Vorkommen realisieren. Diese Fakten sollten moeglichst nicht im Hauptspeicher liegen! Moeglichkeiten: Sicstus mit externer Datenbasis, SWI mit einer Library, SWI mit C Schnittstelle und C Bibliothek (oder in C programmieren), oder in Prolog selber programmieren.
- 11.2.98: Implementierung des Vektoraumverfahrens, womit Ähnlichkeiten von Dokumenten bewertet werden. In einer Anfrage soll dies durch similar/3-Constraints dargestellt werden, wobei die ersten beiden Argumente entweder Strings sind, oder Variablen, die auf Knoten zeigen. Das letzte Argument ist die Schwelle, d.h. der Wert des Skalarproduktes, ab dem zwei Dokumente als ähnlich akzeptiert werden.
Integration des Stemmers (C Quellen dazu). Optional Integration des Thesaurus.
- 25.2.98: Großer Wettbewerb um das schnellste, beste und schönste System. Die Systeme müßen das Vektorraummodell und das Boole'sche Retrievalmodell implementieren. Der Index soll auf dem Hintergrundspeicher liegen. Texte können sukzessive gespeichert werden. Kriterien für die Bewertung der Systeme (nach Wichtigkeit geordnet):
Korrektheit und Vollständigkeit der implementierten Verfahren.
Geschwindigkeit des Retrieval.
Geschwindigkeit des Einlesens von Texten.
Größe des Indexfiles.
Der Test wird anhand dieses Files durchgeführt. Ich werde ein paar Beispielanfragen vorbereiten. Beispielanfragen von Euch sind willkommen. Meine Beispielanfragen mache ich erst am Mittwoch bekannt.
Stand der Implementierung (19.2.98):
Modellierung von Text und Struktur, einfache Ausgabe.
Suche nach inhaltlichen und strukturellen Kriterien.
Zugriff auf Inhalt über Index.
Verwaltung von Index und Struktur in einer externen Datenbank.
Implementierung des Vektorraummodelles.
Integration eines Stemmers.
Was noch fehlt:
Schneller Algorithmus mit Indizes (d.h. erst Indizes, dann Struktur bei Anfrageauswertung)
Darstellung von Antworten zu Anfragen
Datenmanipulation (Garbage-Collection?)
Erweiterung des Systems auf DAGs (Algorithmen noch korrekt?)
Entwicklung einer Anfragesprache und Manipulationssprache
Integration von vollem SGML (z.B: Entities)
Intelligentes Speichern der Strukturinformation
Eine Bitte: Testet doch Eure Programme, ob sie auch unter Sicstus
laufen. Mit kleinen Änderungen sollte das möglich sein.
Meuss Holger
Last modified: Tue Dec 16 10:07:12 MET 1997