Architektur

Anforderungen

WebCrawler

  1. Der Crawler besucht jede in einer Startdatei vorgegebene Domain.
  2. Der Crawler besucht jede Seite nur einmal, insbesondere müssen 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 weren indiziert. Nicht mehr vorhandene Seiten werden in der Liste mit einer Loeschmarkierung belegt. Geänderte 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 ausgewertet. Die zu behandelnden Extensions sind: htm, html, shtml, tex, txt, asp, asc.
    Indexdateien werden anhand fehlender Dateinamen identifiziert.

Parser

  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 Stoppwörter aus dem Text entfernt.
  3. Es erfolgt ein Wort-Stemming und Truncation.

Indexer

Die Posting und die DokumentenListe werden vor dem Abspeichern komprimiert. Dazu wird der Hufman-Code implementiert. Während des Suchens werden die Listen dekomprimiert.

Anfragesprache

  1. Die Anfragesprache soll auf Wunsch auch Groß- und Kleinschreibung unterstützen.
  2. Die Suche nach Zahlen, Chem. Symbolen und Formeln, 3-D-Objekten etc. wird nicht unterstützt.
  3. Weite Anforderungen siehe Sprachdefinition.

    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> ::= <Term>Gewicht | <RTerm>Gewicht | <Meta>(<RTerm>)Gewicht

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

GUI

  1. Es kann zwischen einfacher und erweiterter Suche gewählt werden.
    erweiterte Suche: zusätzliche 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. Zusätzlich 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.


Last modified: Wed Feb 17 10:54:04 MET 1999