DE3750277T2 - Verfahren und Vorrichtung zur Rückgewinnung von Symbolketten aus Daten. - Google Patents
Verfahren und Vorrichtung zur Rückgewinnung von Symbolketten aus Daten.Info
- Publication number
- DE3750277T2 DE3750277T2 DE3750277T DE3750277T DE3750277T2 DE 3750277 T2 DE3750277 T2 DE 3750277T2 DE 3750277 T DE3750277 T DE 3750277T DE 3750277 T DE3750277 T DE 3750277T DE 3750277 T2 DE3750277 T2 DE 3750277T2
- Authority
- DE
- Germany
- Prior art keywords
- character
- comparison
- text
- location
- characters
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 38
- 230000007704 transition Effects 0.000 claims description 20
- 241000283690 Bos taurus Species 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 4
- 244000309464 bull Species 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 241000282693 Cercopithecidae Species 0.000 description 1
- 241001494479 Pecora Species 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die Erfindung betrifft generell Auffindungstechniken, die auf die Suche nach einem Text oder einer Symbol folge gerichtet sind, und ein Verfahren sowie eine Vorrichtung zum Auffinden von Sprache und Graphiken in Wiederauffindungseinheiten. Insbesondere betrifft die Erfindung ein Verfahren und eine Vorrichtung, das bzw. die für einen Hochgeschwindigkeits-Symbolfolgesuchvorgang geeignet ist.
- Die Erfindung kann typischerweise auf dem Gebiet der Textsuche angewendet werden, und es wird daher der Stand der Technik auf diesem Gebiet beschrieben.
- Mit dem vorliegenden Trend zur Büroautomatisierung hat sich das Speichern von Dokument-Informationen als Datenbanken weit verbreitet, und der Umfang der Datenbanken neigt dazu, stark zuzunehmen. Entsprechend ist es wichtig, die Datenbank- Verarbeitung der Dokument-Informationen zu beschleunigen. Eine wichtige Art der Verarbeitung ist der Textsuchvorgang zum Auffinden einer bestimmten Zeichenfolge, die Muster genannt wird, in Zeichenfolgedaten, die Text genannt werden. Eine schnelle Ausführung des Textsuchvorganges ist daher von großer Bedeutung.
- Es wurden bereits verschiedene Arten von Textsuchvorgängen und Vorrichtungen dafür vorgeschlagen. Zum Beispiel beschreibt Hollaar L.A. in "Hardware Systems for Text Information Retrieval", ACM SIGIR 6th Conf., 1983 ein zellulares Arrayverfahren, bei dem die Zeichen eines Musters einzeln in Arrayform in einem Register gespeichert werden und das Muster durch das einzelne Eingeben der Zeichen eines Textes in das Register, beginnend mit dem führenden Zeichen, erfaßt wird, und ein finites Zustands-Automatikverfahren, bei dem, während die Zeichen eines Textes beginnend mit dem führenden Zeichen einzeln einem Finite-Zustands-Automaten zugeführt werden, das Muster durch Bezug auf eine Zustandsübergangstabelle erfaßt wird. Bei jedem der bekannten Verfahren wird der Text Zeichen für Zeichen eingegeben, beginnend mit dem führenden Zeichen, und für einen Text mit einer Länge von n Zeichen müssen alle n Zeichen eingegeben werden, mit dem Ergebnis eines Hindernisses, das im Prinzip eine schnellere Verarbeitung verhindert.
- Als Lösungsvorschläge für die Textsuche auf Softwarebasis sind andererseits ein KMP-Verfahren, das in "Fast Pattern Matching in Strings" von Knuth D.E. et al, SIAM J Comput., Bd. 6, Seiten 323-350, 1977 beschrieben ist, und ein BM-Verfahren bekannt, das in "A Fast String Searching Algorithm" von Boyer R.S. et al, CACM, Bd. 20, Seiten 762-772, 1977 beschrieben ist. Bei diesen Lösungsvorschlägen werden entweder die Zeichen eines Textes oder eines Musters zum Vergleich einzeln eingegeben, und entsprechend dem Vergleichsergebnis werden jeweils verschiedene Verarbeitungsschritte ausgeführt. Nachteilig daran ist, daß diese Lösungsvorschläge nicht dafür geeignet sind, die Software an Hochgeschwindigkeitsprozesse anzupassen, und sie sind außerdem nicht zur Hardware-Ausführung geeignet.
- Wie angegeben, haben die bekannten Verfahren und Lösungsvorschläge den Nachteil, daß für den Algorithmus alle n Zeichen, die der Länge des Textes entsprechen, vollständig und einzeln eingegeben werden müssen, um das Muster zu erfassen, auch wenn die Suche in Sprüngen durch den Text in einer Art erfolgt, wie sie in dem erwähnten Artikel von Boyer et al beschrieben ist, das heißt durch Vergleichen des Musters von rechts mit einer Bewegung durch den Text in Sprüngen, die vom Vergleichsergebnis abhängen.
- Ausgehend von dem zuletzt erwähnten Stand der Technik ist es Aufgabe dieser Erfindung, ein Verfahren und eine Vorrichtung zum Auffinden eines gewünschten Zeichenmusters in einem Text zu schaffen, mit dem bzw. mit der das Muster durch Minimieren der einzugebenden Anzahl von Zeichen oder Symbolen des Textes mit hoher Geschwindigkeit erfaßt werden kann.
- Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß zum Speichern von Informationen Tabellen vorbereitet werden, mit denen die Adresse eines in der Folge einzugebenden Symboles einer Symbolfolge und der folgende Suchzustand der Symbolfolge durch Bezug auf einen laufenden Suchzustand und die wenigstens ein eingegebenes Symbol betreffenden Informationen einfach berechnet werden können, wobei, wenn ein Symbol der Symbol folge eingegeben wird, auf die Tabellen entsprechend dem laufenden Suchzustand und den das eingegebene Symbol betreffenden Informationen zugegriffen wird, die in den Tabellen gespeicherten Daten zur Gewinnung des folgenden Suchzustandes und der Adresse des in der Folge einzugebenden Symbols nachgeschlagen werden und das Symbol an der gewonnenen Adresse daraufhin eingegeben wird, wodurch wenigstens ein vorgegebenes Muster (ein sogenanntes Stichwort), das in der Symbolfolge enthalten ist, erfaßt werden kann.
- Die Fig. 1 ist ein Blockschaltbild, das schematisch eine erfindungsgemäße Ausführungsform einer Textsuchvorrichtung zeigt.
- Die Fig. 2 ist ein Flußdiagramm für die erfindungsgemäße Textsuche.
- Die Fig. 3 bis 5 sind Diagramme zur Erläuterung der erfindungsgemäßen Textsuche.
- Die Fig. 6 und 7 stellen Tabellen dar, die bei der Ausführungsform der Fig. 1 Verwendung finden.
- Die Fig. 8 zeigt ein Beispiel für eine Textabelle, die bei der Ausführungsform der Fig. 1 verwendet wird.
- Die Fig. 9 ist eine Tabelle zur Erläuterung der Arbeitsweise der Ausführungsform der Fig. 1.
- Die Fig. 10 ist ein Blockschaltbild, das schematisch eine Symbolfolgen-Suchvorrichtung gemäß einer weiteren erfindungsgemäßen Ausführungsform zeigt.
- Die Fig. 11 ist ein Flußdiagramm für die erfindungsgemäße Symbolfolgensuche.
- Die Fig. 12 und 13 sind Diagramme zur Erläuterung der erfindungsgemäßen Symbolfolgensuche.
- Die Fig. 14 stellt eine Suchzustandstabelle dar, die bei der Symbolfolgensuche Verwendung findet.
- Die Fig. 15 ist ein Diagramm zur Erläuterung des erfindungsgemäßen Zustandsüberganges.
- Die Fig. 16 ist eine bei der Symbolfolgensuche verwendete Zustandsübergangstabelle.
- Die Fig. 17 ist eine bei der Symbolfolgensuche verwendete Sprungtabelle.
- Die Fig. 18 ist eine bei der Ausführungsform der Fig. 10 verwendete Zustandsübergangstabelle.
- Die Fig. 19 ist eine bei der Ausführungsform der Fig. 10 verwendete Sprungtabelle.
- Die Fig. 20 ist eine bei der Ausführungsform der Fig. 10 verwendete Texttabelle.
- Die Fig. 21 ist eine Tabelle zur Erläuterung der Arbeitsweise der Ausführungsform der Fig. 10.
- Anhand der Textsuche, die ein hauptsächliches, anwendbares Gebiet der Erfindung darstellt, wird nun eine erste Ausführungsform der Erfindung beschrieben. Bei der Beschreibung der erfindungsgemäßen Textsuche wird angenommen, daß die Länge eines Musters gleich m und die Länge des Textes gleich n ist, daß das j-te Zeichen des Musters, wobei 1 ≤ j ≤ m ist, durch P(j) dargestellt wird, daß die vom j-ten Zeichen zum k-ten Zeichen des Musters reichende Zeichenfolge durch p(j : k) dargestellt wird, daß das i-te Zeichen im Text, wobei 1 ≤ i ≤ n ist, durch T(i) dargestellt wird, und daß die vom i-ten Zeichen zum k-ten Zeichen des Textes reichende Zeichenfolge durch T(i : k) dargestellt wird. Es wird auch angenommen, daß die Textlogik in der Form einer Texttabelle 300, wie sie in der Fig. 8 gezeigt ist, in einem Direktzugriffsspeicher (RAM) gespeichert und zur Ausführung der Textsuche verwendet wird.
- Zuerst wird der laufende Suchzustand des Textes zu (i, l) definiert, das heißt durch einen Satz von Parametern i und l dargestellt, wobei i die Adresse des Zeichens des Textes ist, das in der Folge einzugeben ist, und l die Anzahl der Zeichen des Textes ist, die mit den Zeichen des Musters übereinstimmen, gezählt vom hinteren Ende des Musters her. Der Suchzustand (i, l) ist graphisch in der Fig. 3 gezeigt.
- Anhand der Fig. 4 und 5 wird der Suchzustandsübergang erläutert. Wenn das eine Textzeichen T(i) der Adresse i, das im laufenden Suchzustand (i, l) in der Folge einzugeben ist, mit dem (m-l)-ten Musterzeichen P(l-m) übereinstimmt, wird der Suchzustand erfindungsgemäß zu einem neuen Textsuchzustand (i-1, l+1) verschoben, um wie in der Fig. 4 gezeigt anzuzeigen, daß i = i-1 und l = l+1 ist. Im Falle der Nichtübereinstimmung wird das Muster verschoben, bis eine Muster-Teilzeichenfolge, die sich vor dem (m-l)-ten Musterzeichen P(m-l) befindet, genau mit der Textzeichenfolge T(i : i+l) übereinstimmt, die vom i-ten Zeichen bis zum (i+l)-ten Zeichen reicht. Wenn zum Beispiel für eine Zeichenfolge P(H-l : H) im Muster eine Übereinstimmung erhalten wird, wird das Muster schließlich um m-H verschoben, so daß der Suchzustand zu einem neuen Textsuchzustand (i+m+l-H, 0) verschoben wird, um wie in der Fig. 5 gezeigt anzugeben, daß i = i+m+l-H und l = 0 ist.
- Der oben eingeführte Parameter H ist durch die folgende Formel gegeben:
- H(l, z) ist eine Funktion, die nur vom Muster abhängt. Bei dem Muster "AABCAAABCAA" zum Beispiel gibt H(1, C) die Stelle im Muster an, an der zum erstenmal die Zeichenfolge "CA" gefunden wird, wenn die Musterzeichen vom hinteren Ende des Musters her gesehen werden, wobei das Stellenmaß "10" die endgültige Stelle in der Zeichenfolge angibt. Die für dieses Beispiel verwendete H(l, z)-Tabelle 201 ist in der Fig. 6 gezeigt.
- Die Textsuche wird insbesondere gemäß dem in der Fig. 2 gezeigten Flußdiagramm ausgeführt. Zuerst wird die Adresse i des Textes auf m eingestellt, das die Länge des Musters angibt, und der Zustandsparameter l wird auf 0 (Null) gesetzt (Schritt 101). Dann wird festgestellt, ob i kleiner als n ist, das die Textlänge angibt (Schritt 102). Wenn i größer ist als n, ist die Textsuche zu Ende, und wenn nicht, wird die Textsuche fortgesetzt.
- Daraufhin wird, unter Verwendung von i als Parameter, auf eine Texttabelle zugegriffen, um das i-te Zeichen T(i) des Textes einzugeben, wofür z steht. Dann wird unter Verwendung eines Satzes (l, z) des laufenden Zustandsparameters l in einer S(l, z)-Tabelle nachgeschlagen und das nächste Textzeichen z als Adresse eingegeben, um einen Wert zu erhalten, der für y steht (Schritt 103). Die Funktion S(l, z) ist definiert zu
- Die S(l, z)-Funktion enthält somit Informationen bezüglich der Differenz zwischen einer in der Folge einzugebenden Adresse des Textes und der vorher eingegebenen Adresse des Textes. Die Differenz wird als Sprungweite bezeichnet, und die S(l, z)- Tabelle wird im folgenden als Sprungtabelle bezeichnet. Es ist insbesondere anzumerken, daß, wenn das gerade überprüfte Textzeichen z = T(i) mit P(m-l) übereinstimmt, die Sprungweite gleich "-1" ist. Als Beispiel ist die Sprungtabelle S(l, z) für das Muster "AABCAAABCAA" bei 200 in der Fig. 7 dargestellt. Gemäß dem Flußdiagramm wird festgestellt, ob y = S(l, z) gleich "-1" ist (Schritt 104). Wenn y gleich "-1" ist, wird der Zustand l auf Null zurückgesetzt (Schritt 105). Wenn y gleich "-1" ist, was anzeigt, daß das gerade überprüfte Textzeichen mit dem Musterzeichen übereinstimmt, wird der laufende Zustandsparameter l auf l+1 hochgezählt, wenn er nicht mit m-1 übereinstimmt (Schritte 106, 107). Wenn der laufende Zustandsparameter l mit m-1 übereinstimmt, was anzeigt, daß das Muster im Text gefunden wird, wird eine Information OUT, die angibt, daß das Muster gefunden wurde, zum Beispiel auf "1" gesetzt, der Zustandsparameter l wird auf "0" gesetzt und die Sprungweite y wird durch eine Konstante I = 2m-F-1 ersetzt (Schritt 108), mit
- Schließlich wird unter Berücksichtigung der Tatsache, daß die Sprungweite y = S(l, z) die Differenz zwischen der nachfolgend einzugebenden Textadresse und der vorher eingegebenen Textadresse angibt, i+y für die Adresse i des Textes gesetzt, die in der Folge einzugeben ist (Schritt 109), und der Prozeß kehrt zum Schritt 102 zurück.
- Der Vorgang der Textsuche wird beispielhaft genauer anhand der Fig. 9 erläutert. Es sei zum Beispiel der Text "AABCAAABABAABCBAABBAAABAA", wie es in der Fig. 8 gezeigt ist, und das Muster sei "AABCAAABCAA". Für dieses Muster ist die Sprungtabelle S(l, z) wie in der Fig. 7 gezeigt definiert. Zuerst werden i = m = 11 und l = 0 eingestellt. Im ersten Zyklus wird das Textzeichen T(11) = A eingegeben, wofür z steht. Es wird dann die Sprungweite S(l, z) = S(0, A) = -1 zugeführt, wofür y steht. Wegen y = -1 wird der Zustandsparameter l auf l = 1 hochgezählt, und die nächste Adresse i des Textes wird zu i+y = 10. Im zweiten Zyklus wird das 10-te Textzeichen T(10) = B für z eingegeben. Die Sprungweite y = S(1, B) = 11 wird zugeführt. Wegen y -1 wird der Zustandsparameter l zu l = 0, und die nächste Adresse i des Textes wird zu i = i+y = 21. Im dritten und vierten Zyklus wird ein ähnlicher Vorgang ausgeführt, und schließlich nimmt die Textadresse i im fünften Zyklus den Wert 30 an, der größer ist als n = 25, und der Textsuchvorgang endet. Auf diese Weise stellt die Textsuche bei dieser Ausführungsform sicher, daß fünf Zyklen ausreichen können, um für den oben angegeben Text aus 25 Zeichen den Textsuchvorgang vollständig durchzuführen, wodurch die Verarbeitungsgeschwindigkeit im Vergleich zum Finite-Zustands-Automatikverfahren und dem zellularen Arrayverfahren schneller wird, bei denen alle 25 Textzeichen einzugeben sind.
- Anhand der Fig. 1 wird nun ein Beispiel für eine Schaltungsanordnung für die Ausführung der Textsuche beschrieben. Die Schaltungsanordnung umfaßt ein RAM 1 zum Speichern der Texttabelle 300 der Textzeichen T(i), ein RAM 2 zum Speichern der Sprungtabelle S(l, z) 200, ein Textadressenregister 6, das für den Zugriff auf das RAM 1 vorgesehen ist, ein Sprungtabellenadressenregister 11, das für den Zugriff auf das RAM 2 vorgesehen ist, und Speicherregister 10 und 12, die dem RAM 1 bzw. 2 zugeordnet sind. Das Textadressenregister 6, das Sprungtabellenadressenregister 11, das Speicherregister 10 und das Speicherregister 12 verarbeiten logisch die Textadresse i, die Sprungtabellenadresse (l, z), das Textzeichen z = T(i) und die Sprungweite y = S(l, z). In der Fig. 1 sind auch eine logische Schaltung 4 zur Ausführung des im Flußdiagramm der Fig. 2 gestrichelt gezeigten Blocks 110 der Textsuche, ein Addierer 5 zur Ausführung des Schrittes 109 und eine Entscheidungsschaltung 3 zur Ausführung des Schrittes 102 dargestellt. Diese Schaltungsanordnung arbeitet wie vorstehend beschrieben. Zum vorübergehenden Speichern von Daten können Register 7, 8 und 9 vorgesehen werden. Das Bezugszeichen 13 bezeichnet die Ausgangsleitung.
- Obwohl bei der vorstehenden Ausführungsform die Tabellen zeichenweise durchgesehen werden, ist es für den Fachmann leicht, erforderlichenfalls eine Modifikation zu erreichen, bei der die Tabellen jeweils in Einheiten von mehreren Zeichen aufgesucht werden. Zum Erfassen einer Anzahl von Mustern gemäß der Lehre der vorstehenden Erfindung können die Inhalte, wie etwa die Art und Anzahl der Daten der Sprungtabelle 200, entsprechend geändert werden.
- Wie aus der vorstehenden Beschreibung ersichtlich ist, kann die Erfindung vollständig entweder auf einer Software- oder Hardwarebasis ausgeführt werden.
- Bei der vorstehenden Ausführungsform wurde im Prinzip auf eine Symbolfolge in der Form eines Textes Bezug genommen, die Erfindung kann jedoch auch etwa auf Sprachmuster, graphische Darstellungen und Bedingungszeichen angewendet werden, die wie im Falle eines Symbols in Auffindungseinheiten angegeben werden können.
- Gemäß der ersten erfindungsgemäßen Ausführungsform kann, wenn die Musterlänge in Symbole oder Zeichen beträgt und die Symbolfolge oder Textlänge n Symbole oder Zeichen, die Verarbeitung durch Eingeben einer Symbol- oder Zeichenfolge mit einer minimalen Länge von n/m ausgeführt werden, wodurch im Vergleich zu den bekannten Verfahren, bei denen alle n Symbole eingegeben werden müssen, die Verarbeitungsleistung erheblich erhöht werden kann. Des weiteren kann die Anzahl von Schaltungskomponenten im Vergleich zu den bekannten Verfahren wie dem zellularen Arrayverfahren beträchtlich verringert werden.
- Zur Beschreibung einer zweiten Ausführungsform der Erfindung, bei der in Form einer Anzahl von Mustern nach einer Symbol folge gesucht wird, wird zuerst der Algorithmus für die Symbolfolgesuche erläutert. Dazu wird angenommen, daß die Textlänge gleich n ist und die Anzahl der Muster gleich K, daß ein Muster k eine Musterlänge von Mk hat, wobei 1 ≤ k ≤ K ist, daß das i-te Symbol eines Textes durch T(i) dargestellt wird, wobei 1 ≤ i ≤ n ist, und daß der Text in einem RAM gespeichert ist.
- Dieser Algorithmus kann im wesentlichen wie folgt interpretiert werden. Wenn zum Beispiel drei Muster 1, 2 und 3 genommen werden, die durch "COW", "BULL" und "CATTLE" dargestellt werden, und ein Text genommen wird, der durch "HORSE" dargestellt wird, kann das Nichtvorhandensein eines Symboles "R" in den ersten bis dritten Symbolen von jedem der drei Muster dadurch bewiesen werden, daß lediglich anfänglich das dritte Symbol T(3) = "R" eingegeben wird, und es kann dadurch bestätigt werden, daß im Bereich vom ersten bis dritten Symbol des Textes kein Muster vorhanden ist. Es kann für diesen Fall entsprechend angenommen werden, daß nur die Möglichkeit zu betrachten ist, daß die Muster in den vierten und folgenden Symbolen des Textes vorkommen (vgl. Fig. 12). Dadurch wird vermieden, daß überflüssigerweise das erste und das zweite Symbol "H" und "O" des Textes eingegeben wird, und somit wird die einzugebende Anzahl der Symbole des Textes vorteilhaft verringert. In diesem Fall wird das sechste Symbol des Textes als das Symbol bestimmt, das in der Folge einzugeben ist. Wenn im Gegensatz dazu das dritte Symbol T(3) gleich "B" ist, besteht die Möglichkeit, daß das Muster 2, "BULL", mit dem Text übereinstimmt, beginnend mit dem dritten Symbol, und dies wird bei der Fortführung der Suche berücksichtigt. Wenn das dritte Symbol T(3) "W" ist, besteht die Möglichkeit, daß das erste bis dritte Symbol des Textes "COW" entspricht, und es wird daher das Symbol unmittelbar vor dem dritten Symbol, das heißt das zweite Symbol T(2) des Textes zur Überprüfung eingegeben (vgl. Fig. 13). Im wesentlichen kann der Algorithmus wie oben interpretiert werden, und er kann mit hoher Geschwindigkeit in der oben angegebenen Art ausgeführt werden.
- Bei dieser Ausführungsform wird der Textsuchzustand durch l bezeichnet und wie in der Fig. 14 gezeigt definiert. Das heißt, daß ein Zustand "01" ausdrückt, daß das dritte Symbol "W" ist, ein Zustand "02" drückt aus, daß das zweite Symbol "O" und das dritte Symbol "W" ist, und so weiter. Die Zustände "FF", "FE" und "FD" geben jeweils an, daß das Muster 1, 2 bzw. 3 festgestellt wurde. Durch Verwendung der außergewöhnlich numerierten Zustände, die die festgestellten Muster angeben, können die Ergebnisse der Musterfeststellung schnell erfaßt werden. Es wird bei diesem Beispiel die Tatsache, daß das Muster gefunden wurde, dadurch angezeigt, daß der Zustand über den Zustand "FD" hinausgeht. Der Zustand "00" zeigt eine Nichtübereinstimmung zwischen den Symbolen an, und es wird bei diesem Zustand ein Symbol z des Textes eingegeben, das dem dritten (im allgemeinen 1 ≤ m ≤ K (mk)-ten) Symbol des Musters entspricht. Der Zustand "00" geht in den Zustand "01" über, wenn das eingegebene Textsymbol "W" ist, in den Zustand "03", wenn es "L" ist, und in den Zustand "06", wenn es "T" ist. Anderenfalls bleibt der Zustand "00" unverändert. Im Zustand "01" wird das Textsymbol z eingegeben, das dem zweiten Symbol des Musters entspricht. Der Zustand "01" geht in den Zustand "02" über, wenn das eingegebene Textsymbol "O" ist, und anderenfalls in den Zustand "00". Dieser Zustandsübergang ist im Zustandsübergangsdiagramm der Fig. 15 dargestellt. Der Zustandsübergang wird durch den laufenden Zustand l und das eingegebene Textsymbol z bestimmt, wie es in der Zustandsübergangstabelle L(l, z) der Fig. 16 gezeigt ist.
- Wenn der laufende Zustand l und das eingegebene Textsymbol z bekannt sind, wird durch Auslesen der Information in einer vorab erstellten Tabelle, die Sprungtabelle S(l, z) genannt wird, die daraufhin einzugebende Textsymbolnummer bestimmt. Für das vorliegende Beispiel ist die Sprungtabelle in der Fig. 17 gezeigt. In der Sprungtabelle wird die Information gespeichert, die die Differenz zwischen der Adresse des in der Folge einzugebenden Textsymbols und der Adresse des vorher eingegebenen Textsymbols (dem laufenden Textsymbol) angibt, wenn der laufende Zustand l und ein eingegebenes Textsymbol z gegeben sind. Die Differenz wird Sprungweite genannt. Wenn zum Beispiel das dritte Textsymbol T(3), das im Zustand "00" eingegeben wird, "R" ist, wird die Adresse "3" des laufenden Textsymboles zu der Sprungweite S(00, R) = "3" addiert, die in der Tabelle vorgegeben ist, um die Adresse "6" des in der Folge einzugebenden Textsymboles zu ergeben. Wenn das dritte Textsymbol T(3), das im Zustand "00" eingeben wird, "W" ist, wird eine Sprungweite S(00, W) = "-1" bezeichnet, wodurch sich die Adresse "2" für das Textsymbol ergibt, das daraufhin einzugeben ist. Durch die Verwendung der Zustandsübergangstabelle L(l, z) und der Sprungtabelle S(l, z) kann der beschriebene Algorithmus für die Symbolfolgesuche mit hoher Geschwindigkeit ausgeführt werden.
- Die Symbolfolgesuche wird insbesondere gemäß dem Flußdiagramm der Fig. 11 ausgeführt. Zuerst werden der Anfangszustand l = 0 und die Anfangstextadresse, d. h. die Textsymboladresse i
- (mk) eingestellt (Schritt 50101). Dann wird in Abhängigkeit davon, ob i ≤ n ist, festgestellt, ob die Symbolfolgesuche beendet werden soll (Schritt 50102). Außer für i ≤ n ist der Prozeß beendet (Schritt 50103). Wenn i ≤ n ist, wird das i-te Textsymbol z = T(i) eingegeben, und unter Berücksichtigung des laufenden Zustands l und des eingegebenen Symbols z werden der folgende Zustand l = L(l, z) und die Sprungweite y = S(l, z) zugeführt (Schritt 50104). Durch die Beurteilung, ob der daraufhin bestimmte Zustand l über "FD" hinausgeht oder nicht, wird festgestellt, welches Muster erfaßt wurde (Schritt 50105). Wenn "FD" überschritten ist, ist die erfaßte Musternummer gleich -l, und es wird OUT = -l eingestellt (Schritt 50106). Dann wird gemäß i = i+y die Adresse i des daraufhin einzugebenden Textsymbols berechnet (Schritt 50107), und der Prozeß geht zum Schritt 50102 zurück.
- In der Fig. 10 ist beispielhaft eine Schaltungsanordnung zur Ausführung der Symbolfolgesuche gezeigt. Die Schaltungsanordnung umfaßt ein RAM 501 zum Speichern der Texttabelle T(i), ein RAM 502 zum Speichern der Zustandsübergangstabelle L(l,z), ein RAM 103 zum Speichern der Sprungtabelle S(l, z), ein Textadressenregister 5020, das für den Zugriff auf das RAM 1 vorgesehen ist, ein Tabellenadressenregister 5021, das für den Zugriff auf die RAMs 502 und 503 vorgesehen ist, und Speicherregister 5031, 5032 und 5033, die jeweils dem RAM 501, 502 bzw. 503 zugeordnet sind. Das Textadressenregister 5020, das Speicherregister 5031, das Tabellenadressenregister 5021, das Speicherregister 5032 und das Speicherregister 5033 verarbeiten logisch die Textadresse i, das Textsymbol z = T(i), die Tabellenadresse (l, z), den folgenden Zustand l = L(l, z) bzw. die Sprungweite y = S(l, z). In der Fig. 10 ist auch eine Entscheidungsschaltung 5010 zur Ausführung des im Flußdiagramm der Fig. 11 gestrichelt gezeigten Blocks 50110, eine logische Schaltung 5011 zur Ausführung des gestrichelten Blocks 50111, ein Addierer 5012 zur Ausführung des Schritts 50107 und eine Ausgangsleitung 5050 zur Ausgabe der erfaßten Muster gezeigt. Zum vorübergehenden Speichern von Daten können Register 5040, 5041 und 5042 vorgesehen werden.
- Die Arbeitsweise dieser Schaltungsanordnung wird anhand der Fig. 21 beschrieben. Es werden zum Beispiel ein Muster 1, das durch "COW" dargestellt wird, ein Muster 2, das durch "BULL" dargestellt wird, ein Muster 3, das durch "CATTLE" dargestellt wird, und ein Text genommen, der durch "HORSE, CAT, COW, SHEEP, HEN, DOG, MONKEY" dargestellt wird. In diesem Fall wird die in der Fig. 20 gezeigte Texttabelle T(i) verwendet und im RAM 501 gespeichert. Gleichermaßen werden eine Zustandsübergangstabelle L(l, z) wie in der Fig. 18 gezeigt und eine Sprungtabelle S(l, z) wie in der Fig. 19 gezeigt verwendet und im RAM 503 bzw. 503 gespeichert. Zuerst wird l = "00" im Register 5042 und i = min
- (mk) = "03" im Textadressenregister 5020 eingestellt. Im ersten Zyklus wird von der Texttabelle das Textsymbol T(03) = "D9" (R) dem Textregister 5031 zugeführt, und dann wird unter Bezug auf "00D9" als Adresse auf die RAMs 502 und 503 zugegriffen. Danach werden der Zustand l = L(l, z) = "00" und die Sprungweite y = S(l, z) = "03" dem Zustandsregister 5032 bzw. dem Sprungweitenregister 5033 zugeführt. Die logische Schaltung 5011 überprüft den Inhalt des Zustandsregisters 5032, der anzeigt, daß noch kein Muster erfaßt wurde, da der Zustand nicht über "FD" hinausgeht. Der Addierer 5012 addiert den Inhalt "03" des Sprungweitenregisters 5033 zum Inhalt "03" des Textadressenregisters 5020 und gibt an das Textadressenregister 5020 "06" aus. Gleichermaßen wird der zweite Zyklus ausgeführt. Im dritten Zyklus wird wegen T(09) = "E3" (T) durch Bezug auf "00E3" als Tabellenadresse auf die RAMs 502 und 503 zugegriffen, und der Zustand l wird zu "06" und die Sprungweite y zu "FF", wodurch angezeigt wird, daß die folgende Textadresse i für den vierten Zyklus "08" ist. Der Prozeß geht bis zum neunten Zyklus weiter, in dem der Zustand l zu "FF" wird und sich OUT = "01" ergibt, wodurch angezeigt wird, daß das Muster 1 "COW" festgestellt wurde. Der Prozeß setzt sich bis zum sechzehnten Zyklus fort, mit dem die Symbolfolgesuche endet. Auf diese Weise kann ein Textsuchvorgang für eine Symbolfolge von in diesem Beispiel 34 Symbolen in nur 16 Zyklen beendet werden, im Gegensatz zu den 34 Zyklen an Verarbeitungszeit bei den bekannten Verfahren.
- Gemäß der zweiten Ausführungsform der vorliegenden Erfindung kann, wenn die Musterlänge des kürzesten der Muster gleich in ist und die Textlänge gleich n, die Suche nach der Symbolfolge in minimal n/m Zyklen durchgeführt werden, und die Verarbeitungsgeschwindigkeit kann im Vergleich zu den bekannten Verfahren, die n Zyklen erfordern, um den Faktor in erhöht werden. Zusätzlich werden die Zustände, die angeben, daß die Muster festgestellt wurden, außergewöhnlich numeriert, um die einfache Feststellung der Ergebnisse der Mustererfassung zu erleichtern. Des weiteren kann die Anzahl der Hardwarekomponenten im Vergleich zu den bekannten Vorrichtungen, die auf dem zellularen Arrayverfahren beruhen, beträchtlich verringert werden.
Claims (4)
1. Ein auf einem digitalen Computer ausgeführtes Verfahren
zum Auffinden eines gewünschten Zeichenmusters, das aus einer
Anzahl von Zeichen auf fortlaufenden Zeichenplätzen besteht,
in einer Zeichenmustertabelle, die eine Anzahl von
Zeichenmustern enthält, wobei jedes Zeichenmuster der Anzahl von
Zeichenmustern aus einer Anzahl von Zeichen auf fortlaufenden
Zeichenplätzen besteht, wobei bei dem Verfahren eine
Zustandsübergangstabelle, die Angaben über den Zustand des Vergleichs
von Zeichen enthält, und eine Sprungtabelle verwendet wird,
die Angaben über die Anzahl von fortlaufenden Zeichen, die zu
überspringen sind, und die Richtung eines solchen Sprungs
enthält, und wobei das Verfahren die folgenden Schritte umfaßt:
(a) Identifizieren des gegenwärtigen Vergleichszustands
als Anfangs-Vergleichs Zustand;
(b) Vergleichen des Zeichens an einem ausgewählten,
gegenwärtigen Zeichenplatz in dem gewünschten Zeichenmuster
mit dem Zeichen an einem entsprechenden Zeichenplatz in der
Zeichenmustertabelle;
(c) Bestimmen, ob der Vergleich eine Übereinstimmung oder
keine Übereinstimmung ergibt;
(c) wenn im Schritt (c) festgestellt wird, daß der
Vergleich keine Übereinstimmung ergibt, dann (1) Zugriff auf die
Stelle der Zustandsübergangstabelle, die im vorliegenden
Vergleichszustand der Nichtübereinstimmung entspricht, um einen
neuen gegenwärtigen Vergleichszustand zu bestimmen, (2)
Zugriff auf die Stelle der Sprungtabelle, die dem neuen
gegenwärtigen Vergleichszustand entspricht, um die Anzahl von zu
überspringenden fortlaufenden Zeichen und die Richtung dieses
Sprungs zu bestimmen, (3) Überspringen der bestimmten Anzahl
von fortlaufenden Zeichen in der angegebenen Richtung vom
gegenwärtigen Zeichenplatz in der Zeichenmustertabelle, (4)
Vergleichen des Zeichens am ausgewählten Platz mit dem Zeichen
an dem so lokalisierten neuen gegenwärtigen Zeichenplatz in
der Zeichenmustertabelle, und (5) Wiederholen des Verfahrens
vom Schritt (c) an;
(e) wenn im Schritt (c) festgestellt wird, daß der
Vergleich eine Übereinstimmung ergibt, dann (1) Zugriff auf die
Stelle der Zustandsübergangstabelle, die im vorliegenden
Vergleichszustand der Übereinstimmung entspricht, um einen neuen
gegenwärtigen Vergleichszustand zu bestimmen, (2) Zugriff auf
die Stelle der Sprungtabelle, die dem neuen gegenwärtigen
Vergleichszustand entspricht, um die Anzahl von zu
überspringenden fortlaufenden Zeichen und die Richtung dieses Sprungs zu
bestimmen, (3) Überspringen der bestimmten Anzahl von
fortlaufenden Zeichen in der bestimmten Richtung sowohl im
gewünschten Zeichenmuster als auch der Zeichenmustertabelle, (4)
Vergleichen der Zeichen an den so lokalisierten neuen
gegenwärtigen Zeichenplätzen, und (5) Wiederholen des Verfahrens vom
Schritt (c) an, bis der neue Vergleichszustand anzeigt, daß
das gewünschte Zeichenmuster in der Zeichenmustertabelle
lokalisiert ist.
2. Verfahren nach Anspruch 1, bei dem ein gewünschtes
Zeichenmuster mit in fort laufenden Zeichen in einem Text mit n
fortlaufenden Zeichen aufgefunden wird, wobei n > m ist und
wobei das Verfahren die Schritte umfaßt:
(a) Vergleichen des Zeichens auf dem j-ten Zeichenplatz
im gewünschten Zeichenmuster, wobei 1 ≤ j ≤ m ist, mit dem
Zeichen auf dem i-ten Zeichenplatz im Text, wobei 1 ≤ i ≤ n
ist;
(b) Bestimmen, ob der Vergleich eine Übereinstimmung
ergibt oder nicht;
(c) wenn im Schritt (b) festgestellt wird, daß der
Vergleich keine Übereinstimmung ergibt, Vergleichen des Zeichens
auf dem j-ten Zeichenplatz im gewünschten Zeichenmuster mit
dem Zeichen an der Stelle im Text (m+l-1) Zeichenplätze nach
dem Zeichenplatz im Text, mit dem der jüngst vorhergehende
Vergleich erfolgte, wobei l die Anzahl der Vergleiche
einschließlich des jüngsten vorhergehenden Vergleichs ist, die
durchgeführt wurden und die seit dem jüngsten Vergleich, der
keine Übereinstimmung ergab, eine Übereinstimmung ergaben, und
Wiederholen des Verfahrens ab dem Schritt (b);
(d) wenn im Schritt (b) festgestellt wird, daß der
Vergleich eine Übereinstimmung ergibt und wenn bisher noch kein
Vergleich eine Übereinstimmung des m-ten Zeichens im
gewünschten Zeichenmuster ergab, dann Vergleichen des Zeichens auf dem
nächsten Zeichenplatz im gewünschten Zeichenmuster mit dein
Zeichen auf dem nächsten Zeichenplatz im Text und Wiederholen
des Verfahrens ab dem Schritt (b); und
(e) wenn im Schritt (b) festgestellt wird, daß der
Vergleich eine Übereinstimmung ergibt und wenn irgendein
Vergleich eine Übereinstimmung des m-ten Zeichens im gewünschten
Zeichenmuster ergab, dann Vergleichen des Zeichens auf dem
Zeichenplatz im gewünschten Zeichenmuster, der dem
Zeichenplatz im gewünschten Zeichenmuster unmittelbar vorhergeht, mit
dem der jüngst vorhergehende Vergleich erfolgt ist, mit dem
Zeichen auf dem Zeichenplatz im Text, der dem Zeichenplatz im
Text unmittelbar vorhergeht, mit dem der jüngst vorhergehende
Vergleich erfolgt ist, und Wiederholen des Verfahrens ab dem
Schritt (b), bis das gewünschte Zeichenmuster im Text auf
gefunden ist.
3. Vorrichtung zum Auffinden eines gewünschten
Zeichenmusters, das aus einer Anzahl von Zeichen auf fortlaufenden
Zeichenplätzen besteht, in einer Zeichenmustertabelle, die
eine Anzahl von Zeichenmustern enthält, wobei jedes
Zeichenmuster der Anzahl von Zeichenmustern aus einer Anzahl von
Zeichen auf fortlaufenden Zeichenplätzen besteht, wobei die
Vorrichtung umfaßt:
eine Eingabeeinrichtung zur Aufnahme des gewünschten
Zeichenmusters;
eine Einrichtung zum Speichern der Zeichenmustertabelle;
eine Einrichtung zum Speichern einer
Zustandsübergangstabelle, die Angaben über den Zustand des Vergleichs von
Zeichen enthält;
eine Einrichtung zum Speichern einer Sprungtabelle, die
Angaben über die Anzahl von fort laufenden Zeichen in einem
Zeichenmuster, die zu überspringen sind, und die Richtung
eines solchen Sprungs enthält;
eine Einrichtung zur Anzeige, ob ein Vergleich eine
Übereinstimmung oder keine Übereinstimmung ergibt;
eine Einrichtung zum Vergleichen des Zeichens an einem
ausgewählten, gegenwärtigen Zeichenplatz im gewünschten
Zeichenmuster mit dem Zeichen an dem entsprechenden Zeichenplatz
in der Zeichenmustertabelle und Anlegen des Ergebnisses des
Vergleichs an die Anzeigeeinrichtung;
eine Einrichtung, die in Reaktion auf die Anzeige einer
Nichtübereinstimmung (a) auf die Stelle der
Zustandsübergangstabelle zugreift, die im vorliegenden Vergleichszustand der
Nichtübereinstimmung entspricht, um einen neuen gegenwärtigen
Vergleichszustand zu bestimmen, (b) auf die Stelle der
Sprungtabelle zugreift, die dem neuen gegenwärtigen
Vergleichszustand entspricht, um die Anzahl von zu überspringenden
fortlaufenden Zeichen und die Richtung dieses Sprungs zu
bestimmen, (c) das Zeichen am ausgewählten gegenwärtigen
Zeichenplatz im gewünschten Zeichenmuster mit dem Zeichen an der
Stelle in der Zeichenmustertabelle vergleicht, die durch das
Überspringen der bestimmten Anzahl von fortlaufenden Zeichen
vom gegenwärtigen Zeichenplatz in der Zeichenmustertabelle in
der bestimmten Richtung auf einen neuen gegenwärtigen
Zeichenplatz gefunden wird, und die (d) das Vergleichsergebnis an die
Anzeigeeinrichtung anlegt; und
eine Einrichtung, die in Reaktion auf die Anzeige einer
Übereinstimmung (a) auf die Stelle der
Zustandsübergangstabelle zugreift, die im vorliegenden Vergleichszustand der
Übereinstimmung entspricht, um einen neuen gegenwärtigen
Vergleichszustand zu bestimmen, (b) auf die Stelle der
Sprungtabelle zugreift, die dem neuen gegenwärtigen
Vergleichszustand entspricht, um die Anzahl von zu überspringenden
fortlaufenden Zeichen und die Richtung dieses Sprungs zu
bestimmen, (c) die Zeichen an den Stellen im gewünschten
Zeichenmuster und in der Zeichenmustertabelle vergleicht, die durch
Überspringen des bestimmten Anzahl von fortlaufenden Zeichen
vom gegenwärtigen Zeichenplatz in der bestimmten Richtung zu
neuen gegenwärtigen Zeichenplätzen sowohl im gewünschten
Zeichenmuster als auch der Zeichenmustertabelle gefunden werden,
und die (d) bestimmt, ob der neue Vergleichszustand anzeigt,
daß das gewünschte Zeichenmuster in der Zeichenmustertabelle
lokalisiert worden ist, und wenn nicht, das Ergebnis dieses
Vergleichs an die Anzeigeeinrichtung anlegt.
4. Vorrichtung nach Anspruch 3, bei der ein gewünschtes
Zeichenmuster mit in Zeichen auf fortlaufenden Zeichenplätzen in
einem Text mit n Zeichen auf fortlaufenden Zeichenplätzen
aufgefunden wird, wobei n > m ist und wobei die Vorrichtung
umfaßt:
eine Einrichtung zum Speichern des Textes;
eine Vergleichseinrichtung zum Vergleichen von daran
angelegten Zeichen;
eine Einrichtung zum Anlegen des j-ten Zeichens des
gewünschten Zeichenmusters an die Vergleichseinrichtung, wobei
1 ≤ j ≤ m ist;
eine Einrichtung zum Anlegen des i-ten Zeichens im Text
an die Vergleichseinrichtung, wobei 1 ≤ i ≤ n ist;
eine Einrichtung, die in Reaktion auf die
Vergleichseinrichtung, die zwischen den daran angelegten Zeichen keine
Übereinstimmung festgestellt hat, an die Vergleichseinrichtung
das Zeichen im Text (m+l-1) Zeichenplätze nach dem
Zeichenplatz im Text, mit dem der jüngst vorhergehende Vergleich
erfolgte, zum Vergleich mit dem j-ten Zeichen des gewünschten
Zeichenmusters anlegt, wobei l die Anzahl der Vergleiche
einschließlich des jüngsten vorhergehenden Vergleichs ist, die
durchgeführt wurden und die seit dem jüngsten Vergleich, der
keine Übereinstimmung ergab, eine Übereinstimmung ergaben;
eine Einrichtung, die in Reaktion auf die
Vergleichseinrichtung, die zwischen den daran angelegten Zeichen eine
Übereinstimmung festgestellt hat, wenn bisher noch kein
Vergleich eine Übereinstimmung des m-ten Zeichens im gewünschten
Zeichenmuster ergab, das Zeichen auf dem nächsten Zeichenplatz
im gewünschten Zeichenmuster mit dem Zeichen auf dem nächsten
Zeichenplatz im Text vergleicht;
eine Einrichtung, die in Reaktion auf die
Vergleichseinrichtung, die zwischen den daran angelegten Zeichen eine
Übereinstimmung festgestellt hat, wenn irgendein
vorhergehender Vergleich durch die Vergleichseinrichtung eine
Übereinstimmung des m-ten Zeichens im gewünschten Zeichenmuster
ergab, das Zeichen auf dem Zeichenplatz im gewünschten
Zeichenmuster, der dem Zeichenplatz im gewünschten Zeichenmuster
vorhergeht, mit dem der jüngst vorhergehende Vergleich erfolgt
ist, und das Zeichen auf dem Zeichenplatz im Text, der dem
Zeichenplatz im Text vorhergeht, mit dem der jüngst
vorhergehende Vergleich erfolgt ist, zum Vergleichen miteinander an
die Vergleichseinrichtung anlegt; und
eine Einrichtung zur Anzeige, daß das gewünschte
Zeichenmuster im Text aufgefunden wurde.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61028808A JPH0752447B2 (ja) | 1986-02-14 | 1986-02-14 | 検索方法及び装置 |
JP61052439A JPS62210538A (ja) | 1986-03-12 | 1986-03-12 | 記号列サ−チ方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3750277D1 DE3750277D1 (de) | 1994-09-01 |
DE3750277T2 true DE3750277T2 (de) | 1994-11-17 |
Family
ID=26366960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3750277T Expired - Fee Related DE3750277T2 (de) | 1986-02-14 | 1987-02-10 | Verfahren und Vorrichtung zur Rückgewinnung von Symbolketten aus Daten. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4916655A (de) |
EP (1) | EP0250705B1 (de) |
KR (1) | KR940003700B1 (de) |
CN (1) | CN1016835B (de) |
DE (1) | DE3750277T2 (de) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2737173B2 (ja) * | 1988-10-25 | 1998-04-08 | 日本電気株式会社 | 記号列照合装置とその制御方法 |
US5276873A (en) * | 1988-12-22 | 1994-01-04 | Hughes Aircraft Company | Apparatus and method for generating capture commands for data acquisition |
US5241671C1 (en) * | 1989-10-26 | 2002-07-02 | Encyclopaedia Britannica Educa | Multimedia search system using a plurality of entry path means which indicate interrelatedness of information |
US6978277B2 (en) * | 1989-10-26 | 2005-12-20 | Encyclopaedia Britannica, Inc. | Multimedia search system |
CA2006230C (en) * | 1989-12-20 | 1993-10-26 | Timothy James Littlewood | Method and apparatus for validating character strings |
US5228133A (en) * | 1990-10-01 | 1993-07-13 | Carl Oppedahl | Method to perform text search in application programs in computer by selecting a character and scanning the text string to/from the selected character offset position |
JP2668456B2 (ja) * | 1991-01-22 | 1997-10-27 | 三菱電機株式会社 | ビット検索回路及びそれを備えたデータ処理装置 |
US5423032A (en) * | 1991-10-31 | 1995-06-06 | International Business Machines Corporation | Method for extracting multi-word technical terms from text |
US5511159A (en) * | 1992-03-18 | 1996-04-23 | At&T Corp. | Method of identifying parameterized matches in a string |
EP0704073A1 (de) * | 1993-06-14 | 1996-04-03 | Apple Computer, Inc. | Verfahren und vorrichtung zum auffinden eines schlusszeichens in einer zeichenkette variabler länge in einem prozessor |
JPH07114577A (ja) * | 1993-07-16 | 1995-05-02 | Internatl Business Mach Corp <Ibm> | データ検索装置、データ圧縮装置及び方法 |
JPH09198398A (ja) * | 1996-01-16 | 1997-07-31 | Fujitsu Ltd | パターン検索装置 |
US5774739A (en) * | 1996-09-20 | 1998-06-30 | Bay Networks, Inc. | Using a lockup processor to search a table of keys whose entries contain instruction pointer values of code to execute if key is found |
JP4079387B2 (ja) * | 1997-11-12 | 2008-04-23 | アルパイン株式会社 | 名称入力方法 |
JP3275816B2 (ja) * | 1998-01-14 | 2002-04-22 | 日本電気株式会社 | 記号列検索方法及び記号列検索装置並びに記号列検索プログラムを記録した記録媒体 |
US7215637B1 (en) | 2000-04-17 | 2007-05-08 | Juniper Networks, Inc. | Systems and methods for processing packets |
US6798777B1 (en) | 2000-04-17 | 2004-09-28 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
US7688727B1 (en) | 2000-04-17 | 2010-03-30 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
DE10048478C2 (de) * | 2000-09-29 | 2003-05-28 | Siemens Ag | Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen |
US8037102B2 (en) | 2004-02-09 | 2011-10-11 | Robert T. and Virginia T. Jenkins | Manipulating sets of hierarchical data |
US7801923B2 (en) | 2004-10-29 | 2010-09-21 | Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust | Method and/or system for tagging trees |
US7627591B2 (en) | 2004-10-29 | 2009-12-01 | Skyler Technology, Inc. | Method and/or system for manipulating tree expressions |
US7630995B2 (en) | 2004-11-30 | 2009-12-08 | Skyler Technology, Inc. | Method and/or system for transmitting and/or receiving data |
US7636727B2 (en) | 2004-12-06 | 2009-12-22 | Skyler Technology, Inc. | Enumeration of trees from finite number of nodes |
US8316059B1 (en) | 2004-12-30 | 2012-11-20 | Robert T. and Virginia T. Jenkins | Enumeration of rooted partial subtrees |
US8615530B1 (en) | 2005-01-31 | 2013-12-24 | Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust | Method and/or system for tree transformation |
US7681177B2 (en) * | 2005-02-28 | 2010-03-16 | Skyler Technology, Inc. | Method and/or system for transforming between trees and strings |
US7899821B1 (en) | 2005-04-29 | 2011-03-01 | Karl Schiffmann | Manipulation and/or analysis of hierarchical data |
CN102640122B (zh) * | 2010-09-06 | 2015-10-21 | 松下电器产业株式会社 | 内容检索装置、内容检索方法 |
US8645404B2 (en) * | 2011-10-21 | 2014-02-04 | International Business Machines Corporation | Memory pattern searching via displaced-read memory addressing |
CN106649364B (zh) * | 2015-10-30 | 2020-03-27 | 北京国双科技有限公司 | 一种表格目标列定位方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4218760A (en) * | 1976-09-13 | 1980-08-19 | Lexicon | Electronic dictionary with plug-in module intelligence |
US4241402A (en) * | 1978-10-12 | 1980-12-23 | Operating Systems, Inc. | Finite state automaton with multiple state types |
JPS6239467Y2 (de) * | 1978-11-20 | 1987-10-08 | ||
US4464718A (en) * | 1982-07-30 | 1984-08-07 | International Business Machines Corporation | Associative file processing method and apparatus |
-
1987
- 1987-02-10 EP EP87101819A patent/EP0250705B1/de not_active Expired - Lifetime
- 1987-02-10 DE DE3750277T patent/DE3750277T2/de not_active Expired - Fee Related
- 1987-02-10 KR KR1019870001080A patent/KR940003700B1/ko not_active IP Right Cessation
- 1987-02-10 US US07/013,049 patent/US4916655A/en not_active Expired - Lifetime
- 1987-02-14 CN CN87100829A patent/CN1016835B/zh not_active Expired
Also Published As
Publication number | Publication date |
---|---|
EP0250705A2 (de) | 1988-01-07 |
KR940003700B1 (ko) | 1994-04-27 |
KR870008259A (ko) | 1987-09-25 |
EP0250705B1 (de) | 1994-07-27 |
US4916655A (en) | 1990-04-10 |
DE3750277D1 (de) | 1994-09-01 |
EP0250705A3 (de) | 1992-01-15 |
CN87100829A (zh) | 1987-09-09 |
CN1016835B (zh) | 1992-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3750277T2 (de) | Verfahren und Vorrichtung zur Rückgewinnung von Symbolketten aus Daten. | |
DE3650360T2 (de) | Schneller Suchprozessor. | |
DE3650156T2 (de) | Auf regeln basiertes datenwiederauffindverfahren und anordnung. | |
DE2554442C2 (de) | Vorrichtung zum Vergleich logischer Größen mit einer Gruppe logischer Bezugsgrößen | |
DE2521436C3 (de) | Informationswiedergewinnungsanordnung | |
DE3416939A1 (de) | Verfahren zur steuerung von betriebseinrichtungen | |
DE2725395B2 (de) | Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordnete Wörter der Bitlänge n | |
DE1499182B2 (de) | Datenspeichersystem | |
DE2630323B2 (de) | Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik | |
DE2540101A1 (de) | Automatisches zeichenerkennungs- system | |
DE3688738T2 (de) | Musteradressierbarer speicher. | |
DE3855494T2 (de) | Abfragevorrichtung und -methode | |
DE68924190T2 (de) | Bildverarbeitungsmethode. | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE2747196A1 (de) | Vergleicheranordnung zum vergleichen von information variabler laenge | |
DE69318343T2 (de) | Mit einem endlichen Automaten versehenes Textsuchgerät, das eine Speicheranordnung auf zwei Ebenen enthält | |
EP0285211A2 (de) | Verfahren zum Erkennen kontinuierlich gesprochener Wörter | |
DE2136270A1 (de) | Verfahren und Vergleicher zum Vergleich zweier Binärzahlen | |
DE1774607C3 (de) | Speicheranordnung mit einem informationszerstörend lesbaren Speicher | |
DE3853137T2 (de) | Abfragevorrichtung. | |
DE3688737T2 (de) | Kontextadressierbarer umlaufspeicher. | |
DE68926753T2 (de) | Einrichtung zur Wiederauffindung von Datenfolgen | |
DE2519195A1 (de) | Assoziativspeicher | |
DE69132182T2 (de) | System und Verfahren zum Abruf von Zeichenreihen | |
EP1170678B1 (de) | Verfahren und Vorrichtung zur automatischen Suche relevanter Bilddatensätze |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |