DE69615794T2 - Indexierung einer Datenbank durch einen endlichen Automaten - Google Patents
Indexierung einer Datenbank durch einen endlichen AutomatenInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 32
- 238000013507 mapping Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 8
- 239000003550 marker Substances 0.000 claims description 2
- 230000008569 process Effects 0.000 description 7
- 125000002015 acyclic group Chemical group 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database 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.
- 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.
- 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> }
- 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".
- 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.
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)
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)
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 |
-
1995
- 1995-11-23 GB GBGB9524136.0A patent/GB9524136D0/en active Pending
-
1996
- 1996-11-14 US US08/746,684 patent/US5950184A/en not_active Expired - Lifetime
- 1996-11-20 DE DE69615794T patent/DE69615794T2/de not_active Expired - Lifetime
- 1996-11-20 EP EP96308385A patent/EP0775963B1/de not_active Expired - Lifetime
- 1996-11-22 JP JP31162096A patent/JP3883622B2/ja not_active Expired - Lifetime
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 |