DE69615794T2 - Indexierung einer Datenbank durch einen endlichen Automaten - Google Patents

Indexierung einer Datenbank durch einen endlichen Automaten

Info

Publication number
DE69615794T2
DE69615794T2 DE69615794T DE69615794T DE69615794T2 DE 69615794 T2 DE69615794 T2 DE 69615794T2 DE 69615794 T DE69615794 T DE 69615794T DE 69615794 T DE69615794 T DE 69615794T DE 69615794 T2 DE69615794 T2 DE 69615794T2
Authority
DE
Germany
Prior art keywords
database
state
path
key
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69615794T
Other languages
English (en)
Other versions
DE69615794D1 (de
Inventor
Lauri Karttunen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of DE69615794D1 publication Critical patent/DE69615794D1/de
Application granted granted Critical
Publication of DE69615794T2 publication Critical patent/DE69615794T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)
  • Error Detection And Correction (AREA)

Description

  • Die vorliegende Erfindung betrifft Datenverarbeitung, und besonders eine Technik der Indexierung einer Datenbasis unter Verwendung der Pfadnummern eines azyklischen Finite-Zustände-Transducers (FST).
  • Im Folgenden bezieht sich ein Index auf eine Vorrichtung, die alphanumerischen Schlüsseln eine oder mehrere Adressen in einer Datenbasis zuordnet. Wenn eine Datenbasis ein physikalisches Objekt ist, wie etwa ein Buch, kann der Index ein Liste von Paaren sein, die aus einem Schlüsselwort oder einer Phrase und einer Liste von den die Seiten identifizierenden Nummern bestehen, an welchen in dem Buch das Schlüsselwort oder die Phrase vorkommt. Wenn die Datenbasis ein elektronisches Dokument ist, wie etwa ein maschinenlesbares Wörterbuch, kann der Index eine Liste von Paaren sein, die aus einem Kopfwort eines Wörterbucheintrags als einem Schlüssel und einer Liste von Stellen in einer Computer-Datei oder in dem Speicher des Computers bestehen, wo der Eintrag gespeichert ist.
  • Für einen computerisierten Index ist es wichtig, ein effizientes Verfahren der Berechnung der mit einem Schlüssel korrespondierenden Adresse zu haben. Die Konstruktion einer Hash-Tabelle ist ein wohlbekannter Weg, um diesen Zweck zu erreichen. Es betrifft (a) die Auswahl einer Funktion, die jedem Schlüssel einen zufälligen, numerischen Wert in einem gewählten Bereich zuweist, und (b) die Speicherung der dem Schlüssel zugeordneten Stelle in einer Hash-Tabelle. Das Standard-Verfahren für das Hashing kann auf zwei Arten weniger als optimal sein: (1) kann die Hash-Funktion denselben Wert mehr als einem Schlüssel zuweisen, und (2) kann es vorkommen, dass einige Werte überhaupt keinem Schlüssel zugewiesen werden. Wegen (1) muß die Adresse auf eine Art markiert werden, um zu bestimmen möglich zu machen, zu welchem Schlüssel sie gehören, und (2) bedeutet, dass die Hash-Tabelle teilweise leer sein kann. Wenn (1) oder (2) zutrifft, wird einiger Platz und möglicherweise Suchzeit vergeudet.
  • Wort/Nummer-Abbildung
  • Beide vorgenannten Probleme können durch Finden einer Hash-Funktion vermieden werden, die jedem Schlüssel einen eindeutigen Wert in einem Bereich zuordnet, der genau der Größe der Hash-Tabelle entspricht. Dies garantiert, dass jede Position in der Tabelle mit genau einer Adresse gefüllt ist; und es deshalb unnötig ist, zu markieren, welcher Schlüssel einer jeden Adresse zugehört.
  • Eine perfekte Hash-Funktion dieser Art kann ermittelt werden durch Konstruktion eines deterministischen Finite-Zustände-Automaten, der die Schlüssel im Einzelnen bezeichnet. C. L. Lucchesi und T. Kowaltowski ("Applications of Finite Automata Representing Large Vocabularies", Software Practise and Experience, Band 23(1), Seiten 15-30, Januar 1993) beschreiben einen Algorithmus, der jedem von einem deterministischen Finite-Zustände-Automaten akzeptierten Wort eine eindeutige Nummer zuordnet. Die Nummern liegen im Bereich 0 bis n - 1, wobei n die Anzahl der von dem Automaten akzeptierten Worte ist. Weil die Größe der Hash-Tabelle dieselbe wie die Anzahl der Schlüssel sein kann, wird kein Platz verschwendet.
  • Jedoch ist in einigen Fällen von Datenbasiszugriffen selbst solch eine perfekte Hash- Funktion nicht geeignet, weil (1) sie per Definition jedem Schlüssel genau einen Wert zuordnet, und weil (2) jedem Wert nur ein Schlüssel zugeordnet wird. Es gibt Datenbasen, für die weder (1) noch (2) wünschenswert ist. Ein Beispiel dieser Art ist ein Online- Wörterbuch. Um einen Fall zu veranschaulichen, in dem es wünschenswert ist, für einige Schlüssel vielfache Werte vorzusehen, wird in der folgenden Beschreibung ein einfaches Beispiel betrachtet: Suchen nach einer Stelle für den Eintrag für das Word "do" in einem Englisch-Wörterbuch.
  • Die offengelegte europäische Patentanmeldung EP-A-649,105 legt eine Technik offen, in der eine gespeicherte Wortliste für eine Wort-zu-Nummer-(W/N-) und eine Nummer-zu- Wort-(N/W-)Abbildung verwendet werden kann. Jedes Wort in der Liste kann auf eine eindeutige Nummer innerhalb einer dichten Menge von Nummern, die im Bereich von Null bis zu Eins weniger als der Gesamtzahl der Worte in der Liste abgebildet werden. Einige Zweige der Datenstruktur können während der Abbildung aufgrund von Verzweigungsinformation übersprungen werden, welche den Verzweigungspunkten zugeordnet ist. Die Verzweigungsinformation bezeichnet die Anzahl der Suffixendungen bei der nächsten Verzweigung; diese Anzahl wird verwendet, um einen Zähler der Wortendungen während der W/N-Abbildung zu führen; sie wird auch verwendet, sowohl zu bestimmen, ob mit der nächsten Verzweigung fortzusetzen ist, als auch um die gerade abgebildete Nummer während der N/W-Abbildung zu reduzieren. Die Verzweigungsinformation kann einen Zeiger voller Länger zu der nächsten Verzweigung oder einen Zeigerindex kürzerer Länge auf eine Tabelle einzuschließen, in welcher der Zeiger voller Länge gespeichert ist. In jedem Fall kann die Anzahl der Suffixendungen in der nächsten Verzweigung an den Zeiger angehängt werden. Wo Unterlisten von Worten identische Suffixe haben, können die Suffixe zu gemeinsamen Verzweigungen zusammengefaßt werden.
  • Ein typisches Wörterbuch bietet kein eindeutiges Kopfwort für jeden Eintrag. Viele Worte, einschließlich "do" erscheinen als ein Kopfwort in verschiedenen Einträgen. Es gibt einen Eintrag für "do" in dem Sinn einer Tätigkeit, einen anderen Eintrag für "do" als eine Note auf der Musikskala. Folglich sollte die Nachfrage nach "do" vielfache Antworten ergeben: einen für jeden Eintrag mit "do" als das Kopfwort.
  • Das vorstehende Beispiel nimmt an, dass der Benutzer nicht im Voraus weiß, dass "do" sowohl ein Tätigkeitswort als auch ein Hauptwort sein kann. Aber dies ist nicht notwendig wahr. In einem Satz wie "I want to do something" (Ich möchte etwas tun), kann das Vorkommen von "do" leicht als ein Tätigkeitswort identifiziert werden. In diesem Kontext ist nur der Eintrag oder die Einträge relevant, die den Tätigkeitswortsinn betreffen. Der Benutzer sollte in der Lage sein, die Nachfrage einzuengen, sprich: auf "do + V" ("do" als Tätigkeitswort) wodurch er nur einen Zeiger auf den Tätigkeitsworteintrag von "do" als Antwort erhält. (Das Zeichen "+V" wird verwendet, um Tätigkeitsworte zu bezeichnen, das Zeichen "+N" wird für die Bezeichnung von Hauptworten verwendet):
  • Die vorliegende Erfindung löst Probleme dieser Art unter Beibehaltung der Vorteile der perfekten Hash-Funktion nach Lucchesi-Kowaltowski. Das Wesentliche ist, eine Datenbasis mittels eines Finite-Zustände-Transducers zu indexieren.
  • Die vorliegende Erfindung bietet ein Verfahren der Indexierung einer Datenbasis, wobei jedem Eintrag in der Datenbasis ein oder mehrere Schlüssel zugeordnet sind, und das enthält: (a) Vorsehen eines Finite-Zustände-Transducers, der die Schlüssel für die Datenbasis definiert; (b) für jeden Schlüssel Bestimmen mindestens einer, dem Schlüssel zugeordneten Pfadnummer, wobei die Pfadnummer eine Abbildung zwischen dem Schlüssel und dem oder jedem korrespondierenden Eintrag in der Datenbasis definiert.
  • Die Erfindung bietet ferner ein Verfahren des Aufsuchens eines Eintrags in der Datenbasis, wobei die Datenbasis nach dem oben angeführten Verfahren indexiert ist, und das Verfahren enthält: (d) Empfangen einer Schlüsseleingabe von dem Benutzer; (e) Bestimmen der oder jeder Pfadnummer, die dem Schlüssel zugeordnet ist; und (f) Nachschlagen des Eintrags, der mit der oder jeder Pfadnummer korrespondiert, die in Schritt (e) bestimmt wurde.
  • In jedem Fall enthält die Datenbasis vorzugsweise ein elektronisches Wörterbuch, und der oder jeder der Schlüssel enthält ein Kopfwort in dem Wörterbuch, ein Kopfwort, dem eine zusätzliche Markierung oder Markierungen zugeordnet sind, wie etwa ein Part-of- Speech-Tag (Etikett mit der Wortart), eine Sinn-Nummer oder ein Zielsprachenindikator oder irgendeine andere Charakteristik, die verwendet werden kann, um zwischen unterschiedlichen Typen von Information zu unterscheiden, welche demselben Kopfwort zugeordnet sind.
  • In Schritt (d) kann der eingegebene Schlüssel einen Bezeichner enthalten, ob es ein Wort der oberen Seite (L1-Wort) oder eines der unteren Seite (L2-Wort) ist. Der Schritt (e) kann den Schritt (e1) enthalten, in dem der eingegebene Schlüssel als das Wort der korrespondierenden Seite des Transducers eingesetzt wird.
  • Die Erfindung sieht ferner einen programmierbaren Datenverarbeitungsapparat vor für die Durchführung des Verfahrens nach irgendeinem der Ansprüche 1 bis 8 der angefügten Ansprüche bei geeigneter Programmierung, oder nach irgendeinem der besonderen, hier beschriebenen Ausführungsformen.
  • Die Erfindung verwendet die Pfadnummern eines azyklischen Finite-Zustände-Transducers als ein Verfahren für die Indexierung einer Datenbasis. Die Verwendung eines Transducers anstelle eines einfachen Netzwerks macht es möglich, einem Suchschlüssel mehrfache Werte zuzuordnen, und denselben Wert mehrfachen Schlüsseln zuzuordnen, während alle Vorteile der Wort-Nummer-Abbildung (wie in der oben angeführten EP-A-649, 105 und den Lucchesi- und Kowaltowski-Referenzen) beibehalten werden.
  • Nun werden Ausführungsformen der Erfindung beispielsweise beschrieben, mit Bezug auf die begleitenden Zeichnungen, in denen:
  • Fig. 1 ein einfaches Beispiel eines für die Beschreibung der Erfindung verwendeten Finite-Zustände-Transducers zeigt;
  • Fig. 2 den Pfad für das Paar < do + V,do> in Fig. 1 zeigt;
  • Fig. 3 das Netzwerk von Fig. 1 zeigt, nachdem die Nummern für jeden Zustand darin bestimmt worden sind;
  • Fig. 4 die Berechnung veranschaulicht, welche einem der Pfade in Fig. 3 eine Pfadnummer zuweist;
  • Fig. 5 einen allgemeinen Umriß eines Servers zeigt, der für die Verwirklichung der Erfindung mit einem elektronischen Wörterbuch verwendet wird;
  • Fig. 6 schematische Flußdiagramme der Prozesse präsentiert, welche für die Verwirklichung der vorliegenden Erfindung verwendet werden;
  • Fig. 7 ein schematisches Blockdiagramm eines Computers ist, welcher für die Verwirklichung der vorliegenden Erfindung verwendet werden kann.
  • Wie für Personen mit gewöhnlichen Fähigkeiten in der Technik zu erkennen ist, kann die vorliegende Erfindung verwirklicht werden mittels eines geeigneten, konventionellen Computers wie etwa eines Minicomputers, auf dem UNIX® läuft, oder eines PC, auf dem DOS®/WindowsTM läuft. Die Details einer solchen Hardware werden am Ende dieser Offenlegung mit Bezug auf Fig. 7 angegeben.
  • Zuweisen einer Nummer an Schlüsselwörter mit einem Transducer
  • Ein Finite-Zustände-Transducer ist ein Netzwerk von Zuständen und Bögen, das eine Relation zwischen zwei regulären Sprachen L1 und L2 definiert. Jedes Wort in L1 wird auf ein oder mehrere Worte in L2 abgebildet, und umgekehrt. Es wird im Folgenden angenommen, dass die Abbildung auf eine nicht-redundante Weise geschieht. D. h., den Zeichen des L1-Worts werden Zeichen des L2-Worts von links nach rechts zugewiesen, und die kürzere Zeichenkette wird erforderlichenfalls mit Epsilon-Zeichen (Leerzeichen) am Ende aufgefüllt, um die Worte auf gleiche Länge zu bringen. Obgleich jedes Wort in L1 und L2 auf verschiedenen Pfaden des Transducers erscheinen kann, gibt es für jedes Paar von Worten von L1 nach L2, die aufeinander abgebildet werden, einen eindeutigen Pfad durch das Netzwerk. Deshalb ist es möglich, einen eindeutigen Index (Zahl) jedem Paar von Worten in der Relation zuzuweisen. (Die Verwendung von Finite-Zustände- Transducern wird im Kontext von Textindexierung und -aufsuche im Detail in EP-A- 583,083 diskutiert).
  • Fig. 1 stellt ein einfaches Beispiel eines Finite-Zustände-Transducers dar, der für die Beschreibung der Erfindung verwendet wird. Das Netzwerk in Fig. 1 codiert die in Tabelle 1 gezeigte Relation R.
  • L1 = {cab, can + N, can + V, do + N, do + V, dud}
  • L2 = {cab, can, do, dud}
  • R = {< cab, cab> , < can + N, can> , < can + V, can> , < do + N, do> , < do + V, do> , < dud, dud> }
  • Tabelle 1
  • Jedes Paar in der Relation R in Tabelle 1 wird in dem Netzwerk von Fig. 1 durch einen Pfad von Bögen dargestellt, die von dem Anfangszustand auf der linken Seite zu einem Endzustand (mit einem doppelten Kreis markiert) auf der rechten Seite führt. Die Bögen sind bezeichnet durch ein Paar von Zeichen, wobei das obere Teil ein Zeichen von dem Alphabet von L1 ist, und das untere Teil ein Zeichen von dem Alphabet von L2 ist. Eines der zwei Zeichen kann das spezielle Nullzeichen _ (= Epsilon-Zeichen) sein. Das Paar < do + V, do> korrespondiert z. B. mit dem Pfad, der in Fig. 2 gezeigt ist.
  • Mit dem Transducer in Fig. 1 kann jedes L2-Wort, wie etwa "do", auf seine Gegenstücke in L1, "do + N" und "do + V" abgebildet werden, durch Auffinden aller Pfade, wie etwa den in Fig. 2, welche die Zeichensequenz des L2-Wortes, "d" "o" in diesem Fall, auf der unteren Seite haben, möglicherweise gefolgt durch Epsilon-Zeichen. Das korrespondierende L1-Wort wird durch die Zeichensequenz auf der oberen Seite dargestellt, und nachfolgende Epsilon-Zeichen werden ignoriert. Die Prozedur für die Abbildung eines L1-Wortes auf seine Gegenstücke in L2 ist genau dieselbe, außer dass die obere Seite der Bögen- Etiketten bei der Anpassung verwendet wird, und dass die Ausgabe von der unteren Seite produziert wird.
  • Das einfache Verfahren der Auffindung der Pfade, die ein L1- oder L2-Wort darstellen, kann ergänzt werden, um jedem Pfad eine eindeutige Nummer zuzuordnen.
  • Als vorläufiger Schritt wird in jedem Zustand des Netzwerks die Anzahl der Pfade von diesem Zustand zu einem Endzustand aufgezeichnet. Das Ergebnis wird in Fig. 3 angezeigt. Die in jedem Zustand aufgezeichnete Anzahl ist gleich der Summe der Anzahlen an den Zielzuständen der Bögen, die von dem Zustand wegführen (plus 1, falls der Zustand ein Endzustand ist).
  • Die Berechnung der Pfadnummern basiert auf der Ordnung der abgehenden Bögen und der Anzahl der Zielzustände dieser Bögen. Am Anfangszustand ist die Pfadnummer Null. Falls der gewählte Bogen nicht der erste (= oberste) Bogen des Zustands ist, von dem er ausgeht, dann wird die Pfadnummer um die Zielnummern aller früheren Bögen erhöht. Die Nummer eines gegebenen Pfads kann so bestimmt werden durch einfaches Berechnen der Summe der Zielnummern aller Bögen, die dem ausgewählten Bogen in jedem Zustand entlang des Pfads vorausgehen. Fig. 4 veranschaulicht die Berechnung, die dem Pfad in Fig. 2 die Nummer 4 zuweist. Es wird bemerkt, dass dem L2-Wort "do" zwei Pfade in dem Netzwerk in Fig. 3 zugeordnet sind, Pfad 4 und Pfad 3, wohingegen das L1-Wort "do + V" eine eindeutige Nummer 4 in dem Netzwerk hat, da es nur auf dem in Fig. 2 und 4 gezeigten Pfad erscheint.
  • In einer Anwendung, die einem Benutzer auf eine Datenbasis zugreifen läßt, um Information über die Worte in dem Netzwerk zu ermitteln, würden die Adressen der zwei Einträge für "do" in den Zellen 3 und 4 einer Matrix mit sechs Zellen gespeichert werden, welche dem Netzwerk zugeordnet ist. Eine Suchfrage, welche die untere Seite des Netzwerks verwendet, um auf die Daten zuzugreifen, gibt Zeiger für die zwei Einträge für "do" und "can" und auf die einzelnen Einträge für "cab" und "dud" zurück. Die obere Seite des Netzwerks ermöglicht die Nutzung des Zugriffs auf die Datenbasis durch Spezifizieren eines Kopfworts und einer "Part-of-Speech".
  • Anwendung: Indizierung eines elektronischen Wörterbuchs
  • Das Verfahren wurde verwirklicht, um Zugang zu elektronischen Wörterbüchern für Englisch und Französisch vorzusehen, deren jedes etwa 40k Einträge enthält. Fig. 5 gibt einen allgemeinen Umriß des Wörterbuch-Servers wieder. Wenn der Server gestartet wird, liest er das Online-Wörterbuch (eine 17 MB-Textdatei) und konstruiert zwei Datenstrukturen: einen Kopfwort-Transducer von dem Typ, wie im vorangegangenen Abschnitt beschrieben, und ein Dateipositionsplan, in dem die Adressen aller Einträge in dem Wörterbuch gespeichert sind. Die Klient-Anwendung kann zwei Typen von Suchfragen senden: (1) nur ein Kopfwort oder (2) ein Kopfwort und ein "Part-of-Speech"-Bezeichner (d. h. "+V", "+N"). Der Server berechnet die Pfadnummer oder -nummern, die der Eingabe zugeordnet sind, und gibt die korrespondierende Adresse oder Adressen in dem Dateipositionsplan zurück.
  • Fig. 6 zeigt schematische Flußdiagramme der Prozesse, die (a) durch den Server und (b) durch den Klienten verwendet werden, um auf einem konventionellen Computer die in der vorangegangenen Diskussion angeführte Ausführungsform der vorliegenden Erfindung zu verwirklichen.
  • Mit Bezug auf Fig. 6(a) wird das Online-Wörterbuch anfangs vom Speicher eingelesen (Schritt S1). Dann wird der Finite-Zustände-Transducer wie oben diskutiert konstruiert, wobei für jeden Eintrag in dem Wörterbuch ein Pfad vorgesehenen wird (Schritt S2).
  • Eine Routine für die Zuweisung einer Zustandsnummer zu jedem Zustand in dem FST wird in Schritt S3 durchgeführt. Jedem Zustand wird eine Nummer zugeordnet, welche die Anzahl der Pfade von dem Zustand zu einem Endzustand bezeichnet. Dieser Prozeß ist rekursiv und beginnt vom Anfangszustand (dem am weitesten links liegenden Zustand) aus. Anfangs wird ein vorläufiger Durchlauf durch den Transducer gemacht, in dem alle Zustandnummern auf Null gesetzt werden. Dann wird die folgende, rekursive Routine am Anfangszustand des Netzwerks aufgerufen. (Diese Routine setzt voraus, dass das Netzwerk azyklisch ist). Es wird hier angenommen, dass STATE.number sich auf die dem Zustand zugeordnete Nummer (anfangs 0) bezieht; und STATE.final ein Merker ist, der bezeichnet, ob der Zustand ein Endzustand ist. Ein Zustand besteht aus einer Anzahl von Bögen, die von ihm weggehen. Jeder Bogen hat ein Etikett (hier nicht benötigt) und einen Zielzustand. ARC.destination bezieht sich auf den Zielzustand des Bogens.
  • Wenn die Routine im Anfangszustand des Netzwerkes aufgerufen wird, prüft sie, ob die Zustandsnummer Null ist. Falls sie nicht Null ist, ist der Zustand bereits bearbeitet worden, und die Routine gibt einfach den zuvor berechneten Wert zurück. Falls der Zustand noch nicht bearbeitet worden ist, d. h. wenn die Zustandsnummer immer noch Null ist, gibt es Arbeit zu erledigen. Falls der Zustand eine Endzustand ist; wird STATE.number auf Eins gesetzt, sonst bleibt sie Null. In dem nächsten Schritt ruft die Routine sich selbst mit den Zielzuständen aller Bögen, welche den Zustand in Bearbeitung verlassen, auf und erhöht die STATE.number um die Werte, die von diesen Funktionsaufrufen zurückgegeben wurden. Schließlich wird der berechnete Wert zurückgegeben.
  • Nachfolgend wird ein Dateipositionsplan konstruiert. In Schritt S4 wird der erste Eintrag in das Wörterbuch geholt. Der Schlüssel (d. h. das Kopfwort in dem Wörterbuch) für den gegenwärtigen Eintrag wird in Schritt S5 herausgezogen und die korrespondierende Adresse in dem Wörterbuch wird gespeichert. Als Nächstes wird in Schritt S6 unter Verwendung des Schlüssels als ein L1-Wort die Pfadnummer für den Schlüssel von dem FST ermittelt. Die Pfadnummer und die korrespondierende Wörterbuch-Adresse werden dann in dem Dateipositionsplan in Schritt S7 gespeichert. In Schritt S8 wird eine Prüfung durchgeführt, ob die Pfadnummer und die Adresse für alle Einträge in das Wörterbuch gespeichert worden sind. Falls nicht, erhöht der Prozeß zum nächsten Eintrag (Schritt S9) und kehrt zu Schritt S5 zurück, sonst wird der Prozeß beendet.
  • Der Prozeß für das Aufsuchen eines Eintrags als Reaktion auf eine eingegebene Suchfrage wird in Fig. 6(b) veranschaulicht. Zuerst wird eine Prüfung durchgeführt, ob die Eingabe einer gültigen Suchfrage empfangen worden ist (Schritt S10); z. B. werden Eingaben ohne Buchstaben ignoriert. Dann wird passenderweise durch Herausziehen des abschließenden Zeichenkettenabschnitts der eingegebenen Suchfrage und Vergleich mit einer Liste von Möglichkeiten (z. B. "+V", "+N") bestimmt (Schritt S11), ob die Eingabe einen "Part-of-Speech"-Bezeichner enthält. Falls das zutrifft, wird die Suchfrage in Schritt S12 auf die obere Seite (L1-Worte) des FST abgestellt, um die korrespondierende Pfadnummer in dem FST zu ermitteln.
  • Falls die eingegebene Suchfrage keinen "Part-of-Speech"-Bezeichner enthält, wird die Suchfrage in Schritt S13 auf die untere Seite (L2-Worte) des FST abgestellt, um die Pfadnummer oder -nummern für jeden möglichen Pfad durch das FST zu ermitteln. In dem oben diskutierten Beispiel gibt dies die Pfadnummern 4 und 3 für das eingegebene Wort "do" zurück, das mit den Pfaden für "do + V" bzw. "do + N" in L1 korrespondiert.
  • Als Nächstes werden die so ermittelten Pfadnummern verwendet, um (Schritt S14) die korrespondierende(n) Adresse(n) aus dem Dateipositionsplan herauszuziehen (siehe Fig. 5). Danach wird der Eintrag an der/den Adresse(n) geholt und angezeigt (Schritt S15). Es wird anerkannt, dass dann, wenn die eingegebene Suchfrage zu einer nicht gültigen Adresse von dem FST führt, eine passende Nachricht angezeigt werden kann, mit der Wirkung, dass für das eingegebene Suchfragewort kein Eintrag existiert.
  • Das oben angegebene Transducerverfahren der Indexierung einer Datenbasis hat mögliche Anwendungen in vielen anderen Bereichen neben dem oben angegebenen, einfachen Beispiel. Es kann auch von einfachen Transducern auf Automaten erweitert werden, welche n-stufige Relationen codieren, und so jede Menge von Arten für den effizienten Zugriff auf Datenbasen vorsehen.
  • Fig. 7 zeigt schematisch die Hardware des Computers, der nach einer bevorzugten Ausführungsform der Erfindung benutzt wurde. Die Konfiguration ist den in der Technik bewanderten Personen wohlbekannt, und wird im Detail beschrieben z. B. in The Art of Electronics, 2te Ausgabe, Kapitel 10, P. Horowitz und W. Hill, Cambridge University Press, 1989. Kurz festgestellt, umfasst das System mit Verbindung an einen zentralen Bus 30 eine Zentralverarbeitungseinheit (CPU) 32, Speichervorrichtungen einschließlich RAM 34, ROM 36 und Festplatte, Band oder CD-ROM-Laufwerke 38, Tastatur 12, Maus 14, Drucker-, Plotter- oder Scanner-Vorrichtungen 40, und A/D- und D/A-Vorrichtungen 42 und digitale Eingabe-/Ausgabevorrichtungen 44, die Schnittstellen zu externen Vorrichtungen 46 bereitstellen. Der Computer kann mit einer konventionellen internen Treiberkarte (nicht gezeigt) ausgerüstet sein, und angemessene Software (wie etwa Netware, von Novell Corp. verfügbar) befähigt den Computer, Teil eines LAN (Lokalbereichsnetzwerk) zu sein, was in der Technik wohlbekannt ist.

Claims (9)

1. Verfahren für die Indexierung einer Datenbasis, bei jedem Eintrag in der Datenbasis einen oder mehrere Schlüssel zugeordnet ist, und das Verfahren umfasst:
(a) Vorsehen eines Finite-Zustände-Transducers, der die Schlüssel für die Datenbasis definiert;
(b) für jeden Schlüssel Bestimmen mindestens einer Pfadnummer, die jedem Schlüssel zugeordnet ist, wobei die Pfadnummer eine Abbildung zwischen dem Schlüssel und dem oder jedem korrespondierenden Eintrag in der Datenbasis definiert.
2. Verfahren nach Anspruch 1, das ferner den Schritt (c) der Erzeugung eines Dateipositionsplans enthält, welcher die Adresse in der Datenbasis für jeden der Einträge definiert, und wobei jedem Eintrag in dem Dateipositionsplan eine der Pfadnummern zugeordnet ist.
3. Verfahren nach Anspruch 1 oder 2, wobei Schritt (b) enthält:
(b1) für jeden Zustand in dem Finite-Zustände-Transducer Zuordnen einer Zustandsnummer zu dem Zustand, wobei die Zustandsnummer gleich der Anzahl der Pfade irgendeiner Länge (einschließlich Null) von dem Zustand zu einem Endzustand ist.
4. Verfahren nach Anspruch 3, wobei Schritt (b) enthält:
(b2) für jeden Pfad in dem Finite-Zustände-Transducer Bestimmen einer Pfadnummer, die dem Pfad zugeordnet wird, als eine Funktion der Zielzustandsnummern der Bögen, die von den Zuständen entlang des Pfads weggehen.
5. Verfahren des Aufsuchens eines Eintrags in der Datenbasis, wobei die Datenbasis nach einem Verfahren eines der vorangehenden Ansprüche indexiert ist, und das Verfahren umfasst:
(d) Empfangen eines von einem Benutzer eingegebenen Schlüssels;
(e) Bestimmen der Pfadnummer(n), die dem Schlüssel zugeordnet sind; und
(f) Aufsuchen des Eintrags, der mit der oder jeder Pfadnummer korrespondiert, die in Schritt (e) bestimmt wurde(n).
6. Verfahren nach Anspruch 5, wobei der Schritt (f) umfasst:
(f1) für die oder jede Pfadnummer, die in Schritt (e) bestimmt wurde, Ermitteln der korrespondierenden Adresse in dem Dateipositionsplan.
7. Verfahren nach Anspruch 6, wobei der Schritt (f) umfasst:
(f2) Aufsuchen des Datenbasiseintrags an der oder jeder Adresse, die in Schritt (f1) ermittelt wurde.
8. Verfahren nach irgendeinem der vorangehenden Ansprüche, wobei die Datenbasis ein elektronisches Wörterbuch umfasst, und wobei vorzugsweise der oder jeder Schlüssel ein Kopfwort in dem Wörterbuch enthält, ein Kopfwort mit einer zugeordneten, zusätzlichen Markierung oder Markierungen, wie etwa ein "Part-of-Speech"-Etikett, eine Sinn-Nummer oder ein Zielsprachenbezeichner.
9. Programmierbarer Datenverarbeitungsapparat mit geeigneter Programmierung für die Durchführung des Verfahrens nach irgendeinem der vorangehenden Ansprüche, wobei der Apparat einen Prozessor, Speicher, Eingabe-/Ausgabeschaltkreise und eine Benutzerschnittstelle enthält.
DE69615794T 1995-11-23 1996-11-20 Indexierung einer Datenbank durch einen endlichen Automaten Expired - Lifetime DE69615794T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GBGB9524136.0A GB9524136D0 (en) 1995-11-23 1995-11-23 Indexing a database by finite-state transducer

Publications (2)

Publication Number Publication Date
DE69615794D1 DE69615794D1 (de) 2001-11-15
DE69615794T2 true DE69615794T2 (de) 2002-04-18

Family

ID=10784448

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69615794T Expired - Lifetime DE69615794T2 (de) 1995-11-23 1996-11-20 Indexierung einer Datenbank durch einen endlichen Automaten

Country Status (5)

Country Link
US (1) US5950184A (de)
EP (1) EP0775963B1 (de)
JP (1) JP3883622B2 (de)
DE (1) DE69615794T2 (de)
GB (1) GB9524136D0 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363380B1 (en) * 1998-01-13 2002-03-26 U.S. Philips Corporation Multimedia computer system with story segmentation capability and operating program therefor including finite automation video parser
US6321372B1 (en) 1998-12-23 2001-11-20 Xerox Corporation Executable for requesting a linguistic service
US6714905B1 (en) * 2000-05-02 2004-03-30 Iphrase.Com, Inc. Parsing ambiguous grammar
US8478732B1 (en) 2000-05-02 2013-07-02 International Business Machines Corporation Database aliasing in information access system
US6704728B1 (en) * 2000-05-02 2004-03-09 Iphase.Com, Inc. Accessing information from a collection of data
US6711561B1 (en) 2000-05-02 2004-03-23 Iphrase.Com, Inc. Prose feedback in information access system
US8290768B1 (en) 2000-06-21 2012-10-16 International Business Machines Corporation System and method for determining a set of attributes based on content of communications
US9699129B1 (en) 2000-06-21 2017-07-04 International Business Machines Corporation System and method for increasing email productivity
US6408277B1 (en) 2000-06-21 2002-06-18 Banter Limited System and method for automatic task prioritization
US7644057B2 (en) 2001-01-03 2010-01-05 International Business Machines Corporation System and method for electronic communication management
US7136846B2 (en) 2001-04-06 2006-11-14 2005 Keel Company, Inc. Wireless information retrieval
US7343372B2 (en) 2002-02-22 2008-03-11 International Business Machines Corporation Direct navigation for information retrieval
US7072880B2 (en) * 2002-08-13 2006-07-04 Xerox Corporation Information retrieval and encoding via substring-number mapping
US7542908B2 (en) * 2002-10-18 2009-06-02 Xerox Corporation System for learning a language
US7346511B2 (en) * 2002-12-13 2008-03-18 Xerox Corporation Method and apparatus for recognizing multiword expressions
US7552051B2 (en) * 2002-12-13 2009-06-23 Xerox Corporation Method and apparatus for mapping multiword expressions to identifiers using finite-state networks
EP1429257B1 (de) * 2002-12-13 2015-08-12 Xerox Corporation Verfahren und Vorrichtung zur Erkennung von mehrwortigen Ausdrücken
US8495002B2 (en) 2003-05-06 2013-07-23 International Business Machines Corporation Software tool for training and testing a knowledge base
US20050187913A1 (en) 2003-05-06 2005-08-25 Yoram Nelken Web-based customer service interface
WO2008024800A2 (en) * 2006-08-21 2008-02-28 Western Slope Utilities, Inc. Systems and methods for swab transport in pipeline rehabilitation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4285049A (en) * 1978-10-11 1981-08-18 Operating Systems, Inc. Apparatus and method for selecting finite success states by indexing
US5754847A (en) * 1987-05-26 1998-05-19 Xerox Corporation Word/number and number/word mapping
US5551026A (en) * 1987-05-26 1996-08-27 Xerox Corporation Stored mapping data with information for skipping branches while keeping count of suffix endings
JP2702927B2 (ja) * 1987-06-15 1998-01-26 株式会社日立製作所 文字列検索装置
DE69032712T2 (de) * 1989-06-14 1999-07-01 Hitachi, Ltd., Tokio/Tokyo Hierarchischer vorsuch-typ dokument suchverfahren, vorrichtung dazu, sowie eine magnetische plattenanordnung für diese vorrichtung
US5452451A (en) * 1989-06-15 1995-09-19 Hitachi, Ltd. System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions
US5369577A (en) * 1991-02-01 1994-11-29 Wang Laboratories, Inc. Text searching system
JP2534600B2 (ja) * 1992-06-19 1996-09-18 松下電器産業株式会社 文字列照合装置
US5625554A (en) * 1992-07-20 1997-04-29 Xerox Corporation Finite-state transduction of related word forms for text indexing and retrieval
JPH0756957A (ja) * 1993-08-03 1995-03-03 Xerox Corp ユーザへの情報提供方法
ES2100473T3 (es) * 1993-10-19 1997-06-16 Xerox Corp Correlacion de palabras/numeros y numeros/palabras.
US5680511A (en) * 1995-06-07 1997-10-21 Dragon Systems, Inc. Systems and methods for word recognition

Also Published As

Publication number Publication date
US5950184A (en) 1999-09-07
EP0775963A3 (de) 1998-05-20
JP3883622B2 (ja) 2007-02-21
DE69615794D1 (de) 2001-11-15
EP0775963A2 (de) 1997-05-28
GB9524136D0 (en) 1996-01-24
EP0775963B1 (de) 2001-10-10
JPH09179872A (ja) 1997-07-11

Similar Documents

Publication Publication Date Title
DE69615794T2 (de) Indexierung einer Datenbank durch einen endlichen Automaten
DE69804495T2 (de) Informationsmanagement und wiedergewinnung von schlüsselbegriffen
DE3853894T2 (de) Auf Paradigmen basierende morphologische Textanalyse für natürliche Sprachen.
DE69032712T2 (de) Hierarchischer vorsuch-typ dokument suchverfahren, vorrichtung dazu, sowie eine magnetische plattenanordnung für diese vorrichtung
DE69331209T2 (de) Umformung von verwandten Wortformen für Textindexierung und Wiederauffindung mittels endlicher Automaten
DE69426541T2 (de) Dokumentdetektionssystem mit Darstellung des Detektionsresultats zur Erleichterung des Verständnis des Benutzers
DE69432575T2 (de) Dokumentenerkennungssystem mit verbesserter Wirksamkeit der Dokumentenerkennung
DE69710458T2 (de) Verfahren und system für die berechnung von semantischen logischen formen von syntaxbäumen
DE69631457T2 (de) Vorrichtung und verfahren zum übertragbaren indexieren von dokumenten gemäss einer n-gram-wortzerlegung
DE19952769B4 (de) Suchmaschine und Verfahren zum Abrufen von Informationen mit Abfragen in natürlicher Sprache
DE3587993T2 (de) Verfahren und Gerät zur Natursprachenverarbeitung.
DE69427848T2 (de) Unterstützungssystem zur Herstellung von Wörterbüchern
DE69330701T2 (de) Verfahren zur Durchführung der Suche nach Ähnlichkeiten mit einer Abfrage in einer Dokumentenmenge
DE60304331T2 (de) Abrufen übereinstimmender dokumente durch abfragen in einer nationalen sprache
DE69829074T2 (de) Identifizierung der sprache und des zeichensatzes aus text-repräsentierenden daten
DE3750492T2 (de) Datenbanksystem für Parallelprozessor.
DE69900854T2 (de) Ein suchsystem und verfahren zum zurückholen von daten und die anwendung in einem suchgerät
DE68928250T2 (de) Übertragungssystem mit Übersetzung
DE69613433T2 (de) Dokumentklassifizierungseinheit und Dokumentwiederauffindungseinheit
DE4410060A1 (de) Rechenvorrichtung
DE3788782T2 (de) Verfahren zur Herstellung einer Meldungsdatei in einem Computer.
DE69733294T2 (de) Einrichtung und Verfahren zum Zugriff auf eine Datenbank
DE112021006602T5 (de) Verfeinern von abfrage-erzeugungsmustern
DE69229583T2 (de) Verfahren zur Flektieren von Wörtern und Datenverarbeitungseinheit zur Durchführung des Verfahrens
DE112021001743T5 (de) Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition