CIS/Wintersemester 2000/2001
Proseminar: Tokenisierung von Webseiten
Dozent: Prof. Franz Guenthner
Referent: Wolfgang Mederle
12.2000
LAPIS ist ein Akronym für Lightweight Architecture for Processing Information Structure, übersetzt also etwa: einfaches Gebilde zum Verarbeiten von Informationsstrukturen. Genaueres dazu auf der Homepage von LAPIS.
Ganz so einfach wie der Name vermuten läßt, ist das Gebilde aber auch wieder nicht. Das kompilierte Programm in Version 0.6 besteht mit unseren Erweiterungen aus 1363 Dateien in 34 Verzeichnissen, die insgesamt fast 8 MByte Platz einnehmen.
Ein make clean
reduziert den Platzbedarf auf 3,3 MByte (wohlgemerkt nur Quelltext, 34 Verzeichnisse, 581 Dateien).
Das Kompilieren gestaltete sich schwieriger als erwartet. Lapis ist in Java 1.1 geschrieben, verwendet aber für seine grafische Oberfläche (graphical user interface GUI) nicht nur das AWT (Abstract Windowing Toolkit) von Java 1.1, sondern auch den einfacher implementierbaren, wesentlich verbesserten Nachfolger SWING.
Als Entwicklungssystem verwendete ich eine SuSE 6.4 mit Java 2-13 von IBM. Da bei Lapis ein Makefile mitgeliefert wird, versuchte ich erst mal einfach ein make
. Ging nicht, da kein jikes gefunden wurde. Jikes ist ein Java-Compiler von IBM. Jikes installiert, ging trotzdem nicht. Nach vielen verschiedenen Versuchen mit einer Auswahl von Java-Entwicklungsumgebungen und Optionen kam ich auf folgende funktionierende Lösung:
med@DS9:~ > CLASSPATH=/opt/IBMJava2-13/lib:/home/med/studium/token/lapis-0.6
med@DS9:~ > export CLASSPATH
echo $CLASSPATH
sollte dann die richtigen Pfade anzeigen.med@DS9:~/studium/token/lapis-0.6/lapis/swing > oldjavac Browser.java
Wie oben schon beschrieben, beschränkten sich die Änderungen im Quelltext von Lapis auf die Klasse lapis.swing.Browser.java. Der Einfachheit halber habe ich, auch um später einfaches Hinzufügen weiterer CIS-Spezialitäten zu ermöglichen, einen neuen Menüpunkt "CIS" erstellt.
Die dafür nötigen Modifikationen waren nicht schwer: Ich habe einfach den Code, der für die anderen Menüpunkte verwendet wurde, kopiert und angepaßt.
Quelltext von Browser.java als Text (104k) und als HTML mit Syntax-Highlighting (Achtung: 487k!)
Die Auswahl Focused Crawl ist entweder durch Klicken erreichbar, oder durch Drücken von Alt-C Alt-F, oder direkt durch Strg-F. Es öffnet sich ein Fenster:
In diesem Fenster gibt es drei Knöpfe und eine Textbox. Der dritte Knopf ist selbsterklärend, die beiden ersten öffnen je ein Dateiauswahlmenü, mit dem man die beiden nötigen Textdateien (Domänen und Schlüsselwörter) auswählen kann:
Das Textfeld zeigt an, welche Dateien bereits gewählt wurden:
Sind beide Dateien gewählt, startet der Focused Crawler. Wenn passende Dateien gewählt wurden, crawlt er kräftig los und spielt seine Ergebnisse regelmäßig ins Browser-Fenster ein:
Quelltext von FocCrawlDialog als Text (4k) und als HTML mit Syntax-Highlighting (22k)
Ein paar Tage, nachdem wir unsere Änderungen in Lapis 0.6 eingebaut hatten, stand Lapis in der Version 0.7 zum Download bereit. Die neue Version hat nicht nur ein paar neue Funktionen (etwa die Möglichkeit, Dokumente direkt im Browser-Fenster zu bearbeiten), sondern auch einen anderen internen Aufbau.
Bytecode und Sourcecode sind nun getrennt und gepackt die kompilierten Dateien als Jar-Files und die Quellen als Zip-Datei. Leider erleichtert das das Einbinden neuer Module nicht gerade, und so sind wir im Moment dabei, uns einfallen zu lassen, wie wir es am besten bewerkstelligen. Tips sind jederzeit willkommen.
Lapis 0.7 scheint so etwas wie ein Meilenstein in der Entwicklung des Programms zu sein. Auf der Todo-Liste steht nur noch graduate, was wohl ein Hinweis darauf sein dürfte, daß der Autor bald mit seiner Abschlußarbeit fertig sein wird, deren größter Teil die Entwicklung von Lapis war.
Sobald wir eine Lösung gefunden haben, wie unser Code in Lapis 0.7 integriert werden kann, wird sie hier zu finden sein.
Wer einen Kommentar zu dieser Seite abgeben möchte oder einen hilfreichen Vorschlag hat, kann sich hier austoben.