Stand des Projektes Dember 98

1. Zielbestimmung

Das Programm soll eine Suchschnittstelle zu den Web-Seiten der Informatik-Fachbereiche Deutschlands bereitstellen. Es soll nur die Seiten erfasst werden, die innerhalb der vorgegebenen Domänen liegen.

2. Einsatz

  • Die Suchmaschine soll im Bereich eines Web-Servers eingesetzt werden, der im Iternet mit einem Web-Browser erreichbar ist.
  • Das Produkt soll universitaetsintern einsetzbar sein.
  • Zielgruppe: Studenten und Angestellte der Universitaet

    3. Funktionen

    WebCrawler

    Der Webcrawler wird von einem Cron-Job aufgerufen und laeuft als Hintergrundtask. Als Eingabe erhaelt er initial eine persistente Liste von Domains der Informatik-Server Deutschlands. Bei weiteren Aufrufen wird besteht die Eingabedatei aus allen schon getesteten Links oben gennter Domains.
    Das Programm sucht in den Domains nach indizierbaren URLs (Kriterien s.u.) und traegt diese in die Liste ein. Die Liste wird im Filesystem verwaltet. Es gelten die folgenden Kriterien:
    1. Der Crawler besucht jede in einer Startdatei vorgegebene Domain.
    2. Der Crawler besucht jede Seite nur einmal, insbesondere muessen keine Schleifen vermieden werden.
    3. Der Crawler entdeckt alle Links, die innerhalb der in der Startdatei vorgesehen Domänen liegen und fügt diese an die Liste der zu besuchenden Seiten an.
    4. Neue Seiten werden zur Speicherung im Index ausgegeben. Nicht mehr vorhandene Seiten werden in der Liste mit einer Loeschmarkierung belegt. Geaenderte Seiten werden ebenfalls mit einer Loeschmarkierung belegt und neu in den Index aufgenommen. Dazu nutzt es die Informationen aus den vorangegangenen Untersuchungen.
    5. Das Programm indiziert keine für Robots verbotene Seiten. Robot-Verbote können sowohl in der Datei robot.txt stehen, wie auch als Tag: innerhalb des head-Tags.
    6. Es werden alle Seiten mit HTML Text indiziert. ASCII und LateX-Dateien werden ebenfalls behandelt, jedoch nicht strukturell aufgewertet. Die zu behandelnden Extensions sind: htm, html, shtml, tex, txt, asp, asc.
      Indexdateien werden anhand fehlender Dateinamen indendifiziert.


    Eingabe: Domainliste
    Ausgabe: modifizierte URL-Liste

    Parser

    Der Parser laedt alle in der vom WebCrawler erstellten Liste enthaltenen URLs und parst die Texte. ASCII und LaTeX-Dokumente bleiben strukturell erhalten. Fuer HTML-Dokumente wird als Ausgabe ein Parsetree erstellt. Die Ausgabe des Parsers wird an die Linguistische Verarbeitung und an den Indexierer weitergeleitet.
    Eingabe: URL
    Ausgabe: Parsebaum

    Linguistische Bearbeitung

    Die Linguistische Bearbeitung der Texte erfolgt auf den vom Parser erstellte Parsetrees.
    1. Die im Text verwendete Sprache wird automatisch erkannt, nur deutsche und englische Texte werden weiterverarbeitet.
    2. Es werden eine deutsche und eine englische Stoppwortliste verwendet und die Stoppwoerter aus dem Tree entfernt.
    3. Englische Texte werden in die Index-Sprache (Deutsch) uebersetzt.
    4. Es erfolgt ein Wort-Stemming und Truncation.
    Der resultierende Parsetree wird an den Indizierer uebergeben.
    Eingabe: Parsebaum bzw. Anfrage-Parsebaum
    Ausgabe: modifizierter Parsebaum

    Indexstruktur

    Der Indizierer erhaelt den lexicographisch bearbeiteten Parsetree und greift ueber das Dateisystem auf den Index zu. Fuer jeden Suchbegriff des Baumes wird der vorhandene Index getestet, ob der Begriff enthalten ist. Im positiven Fall wird die Postingliste und gegebenenfalls auch die Dokumentenliste erweitert. Anderenfalls wird der Begriff neu in die Wortliste aufgenommen, eine Postingliste erzeugt und die Dokumentenliste gebenenfalls aktualisiert. Als Ergenis des Programmes liegt der modifizierte Index mit folgender Struktur vor:

    Der Index besteht aus drei Listen:
    Wortliste: normierter Term, id-Postingliste
    Postingliste: id, {id-Dokumentenliste, n, {n Positionen}, Metabyte}
    Metabyte: jede der Stellen kennzeichnet, ob das angegebene Wort im Text auch als Metadatum vorkommt.
    Vorgesehene Metadaten: Titel, Autor, Abstract, Keyword
    Dokumentenliste: id, last-modify, Anzahl Worte, Sprache, Dateigroesse

    Indizierung

    Eingabe: Parsebaum, Index aus Filesystem
    Ausgabe: modifizierter Index aus Filesystem

    Komprimierer/Dekomprimierer

    Die Posting und die DokumentenListe werden vor dem Abspeichern komprimiert. Dazu wird der Hufman-Code implementiert. Waehrend des Suchens werden die Listen dekomprimiert.
    Eingabe: Liste bzw. komprimierte Liste
    Ausgabe: komprimierte Liste bzw. dekomprimierte Liste

    Anfragesprache

    Die Anfrage ist zeitlich unabhaengig von der Indexerstellung. Sie wird durch Aufruf des Programmes durch den Benutzer initiiert. Bei Zugriff auf den Index muessen die entsprechenedn kompriniertem Teile vorher dekomprimiert werden. Die Anfragesprache unterliegt den folgenden Kriterien:

    /LF300/ Die Anfrage soll ein geranktes Ergebnis geben. Dazu ist eine Gewichtung der Terme notwendig.
    /LF310/ Die Anfrage soll es erlauben, in den gefundenen Dokumenten sowohl einzelne Terme auszuschließen als auch deren Vorkommen notwendig zu machen ( - ; + Zeichen).
    /LF320/ Es sollen Proximity-Operatoren unterstützen (near by,...).
    /LF330/ Die Suche nach Phrasen (zusammenhängende Worte) soll ermöglicht werden.
    /LF340/ Die Anfragesprache soll auf Wunsch auch Groß- und Kleinschreibung unterstützen.
    /LF350/ Die Eingabe von Wildcards (Ersatz eines Buchstaben, mehrer Buchstaben) am Wortende soll möglich sein.
    /LF360/ Die gezielte Suche nach Metadaten (Titel, Autor, Überschrift,Zusammenfassung,Schlüsselworte, Literaturliste, Link, URL) soll unter Verwendung von boolschen Ausdrücke (and, or, not,()) unterstützt werden.
    /LF370/ Die Suche nach Zahlen, Chem. Symbolen und Formeln, 3-D-Objekten etc. wird nicht unterstützt.
    /LF380/ Die Anfrage wird in die im Index verwendete Sprache (deutsch) uebersetzt.
    /LF390/ Eine Anfrage besteht aus getrennten Filter- und Rankingausdruecken.

    Definition:

    Anfrage ::= [<Filter-exp>] [<Ranking-exp>]

    <Filter-exp> ::= <Term> | <Term><Prox-op><Term> | <Exist-op><<Term> | <Filter-exp><Bool-op><Filter-exp>

    <Term> ::= string | <Term> [<Wild>]

    <Prox-op> ::= nearby(Number) | ...

    <Existop> ::= + | -

    <Bool-op> ::= and | or

    <Wild> ::= *

    <Rank-exp> ::= <RTerm> | <Rank-exp><Bool-op><Rank-exp>

    <RTerm> ::= <RTerm>Gewicht | <Meta>(<RTerm>)Gewicht

    <Meta> ::= author | title | ...

    GUI

    Die Benutzeroberflaeche wird ueber HTML-Formulare gesteuert. Auf Grund von Eingaben des Benutzers wird eine Suchanfrage auf dem Index gestartet. Die Suchbegriffe werden der gleichen linguistischen Bearbeitung unterzogen, wie die Parsetrees bei der Indexerstellung. Die Benutzerfuehrung unterliegt folgenden Kriterien:
    1. Es kann zwischen einfacher und erweiterter Suche gewaehlt werden.
      erweiterte Suche: zusaetzliche Suche in den Metainformationen
    2. Zu jeder Anfrage wird die verwendete Sprache angegeben.
    3. Zu jedem Treffer wird ein Hyperlink zur Quelle angegeben, mehrfache Treffer auf eine Quelle werden nur einmalig angezeigt.
    4. Die Treffer sind nach Relevanz geordnet.
    5. Zusaetzlich zu den Treffern werden folgende Daten angezeigt: Anfrage, Anzahl der Treffer, Anzahl angezeigter Treffer
    6. Die Anfrage muss rückholbar und editierbar sein, um sie in geänderter Form wieder absetzen zu können.
    7. Es sollen nur ein geeignet kleiner Teil der Trefferzahl auf einmal angezeigt werden.


    Eingabe: benutzerinitiierte Anfrage
    Ausgabe: gerankte Liste der Treffer URLs

    Anfrage-Parser

    Parsen der Eingabe, Linguistische Bearbeitung aufrufen
    Eingabe: Anfrage initiiert vom Benutzer
    Ausgabe: Anfrage-Parsebaum jeweilig fuer Filter bzw. Ranking-Expression

    Suche

    Suche im Index anhand des Filter-Parsebaumes, Auslesen der Treffer-Urls nach den gefundenen Dokumentenlisteneintraegen, Auslesen der Rankinginformationen, soertieren der Treffer
    Eingabe: Eingabe-Parsebaum
    Ausgabe: gerankte Liste der Treffer-URLs

    Antwortbearbeitung

    Aufbereitung der Antwortliste, Dublikatenentfernung
    Eingabe: gerankte Liste der Teffer-URLs
    Ausgabe: Liste an GUI

    4. Daten

    URL-Liste:

  • indizierten URL`s
  • Loeschmarken
  • Datum der letzen Aenderung.

    Index:

    siehe 4.3.

    5. Leistungen

  • Die Indizierung ist nicht zeitkritisch; sie kann als Hintergrundprozess in der Nacht oder am Wochenende erfolgen.
  • Die Antwort auf eine Suchanfrage soll weniger als 15 Sekunden betragen.

    Annika Hinze

    Last modified: Wed Oct 28 17:37:30 MET 1998