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
Application number
DE3750277T
Other languages
English (en)
Other versions
DE3750277D1 (de
Inventor
Hiroyuki Kitajima
Tadashi Ohsone
Nobuhiro Taniguchi
Masashi Tsuchida
Akira Yamamoto
Yoshiaki Yamashita
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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
Priority claimed from JP61028808A external-priority patent/JPH0752447B2/ja
Priority claimed from JP61052439A external-priority patent/JPS62210538A/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3750277D1 publication Critical patent/DE3750277D1/de
Application granted granted Critical
Publication of DE3750277T2 publication Critical patent/DE3750277T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern 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

    HINTERGRUND DER ERFINDUNG GEBIET DER ERFINDUNG
  • 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.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • 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.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • 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.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 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.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN ERSTE AUSFÜHRUNGSFORM
  • 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.
  • ZWEITE AUSFÜHRUNGSFORM
  • 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.
DE3750277T 1986-02-14 1987-02-10 Verfahren und Vorrichtung zur Rückgewinnung von Symbolketten aus Daten. Expired - Fee Related DE3750277T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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