DE3852672T2 - Verfahren zur Vereinfachung des Sortierens mit dem Rechner. - Google Patents

Verfahren zur Vereinfachung des Sortierens mit dem Rechner.

Info

Publication number
DE3852672T2
DE3852672T2 DE3852672T DE3852672T DE3852672T2 DE 3852672 T2 DE3852672 T2 DE 3852672T2 DE 3852672 T DE3852672 T DE 3852672T DE 3852672 T DE3852672 T DE 3852672T DE 3852672 T2 DE3852672 T2 DE 3852672T2
Authority
DE
Germany
Prior art keywords
coding
character
entry
characters
sorting
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
DE3852672T
Other languages
English (en)
Other versions
DE3852672D1 (de
Inventor
Eugene Kulinek
Eddy Lee
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.)
Nortel Networks Ltd
Original Assignee
Northern Telecom 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
Application filed by Northern Telecom Ltd filed Critical Northern Telecom Ltd
Publication of DE3852672D1 publication Critical patent/DE3852672D1/de
Application granted granted Critical
Publication of DE3852672T2 publication Critical patent/DE3852672T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • 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/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • 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/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • Diese Erfindung bezieht sich allgemein auf das alphabetische Sortieren mit Hilfe eines Rechners und insbesondere auf die alphabetische Sortierung von Worten, die auf einem mehrsprachigen Alphabet beruhen, mit dem Rechner.
  • Bisher ist die am weitesten verbreitete Codenorm für alphanumerische Zeichen der ASCII (American Standard Code for Information Interchange), der ein 7-Bit-Binärcode ist, der von dem ANSI (American National Standards Institute) genormt ist. Weil die einzigen Buchstaben, die von ASCII unterstützt sind, englische Buchstaben sind, war die Implemetierung dieser Norm bei Informationsverarbeitungs- und Informationsaustausch- Anwendungen auf die englische Sprache begrenzt. Als Ergebnis erfolgt die Datenübertragung bei einer großen Anzahl von Rechnersystemen heute lediglich in englischer Sprache.
  • In den letzten Jahren hat die Rechnerindustrie die Notwendigkeit erkannt, andere als englische Sprachen auf der Grundlage von Latein zu unterstützen, um die Kommunikation mit einem nichttechnischen Anwender zu erleichtern, der in vielen Fällen lediglich mit seiner Muttersprache vertraut ist. Entsprechend wurde ein neuer mehrsprachiger 8-Bit-Zeichensatz von der 150 (International Standards Organisation) in Jahre 1986 definiert. Dieser Zeichensatz hat bereits eine breite Unterstützung aus der Industrie und von verschiedenen nationalen Normungsorganisationen gewonnen. Der Name dieses Zeichensatzes ist 'lateinisches Alphabet #1- und er wurde in der ISO-Norm als ISO 8859/1 dokumentiert. Dieser Zeichensatz unterstützt 14 westeuropäische und andere Sprachen auf der westlichen Halbkugel, die in 45 Ländern in der ganzen Welt verwendet werden.
  • Es wird angenommen, daß der Satz von Sprachen und Zeichen, die durch die ISO-Norm ISO 8859/1 - 'Information Processing - 8 bit single byte coded graphic character sets - Part 1: Latin Alphabet #1' die meisten Sprachen und Zeichen einschließt, die in Nordamerika, Westeuropa und in der westlichen Welthälfte verwendet werden. Diese sind wie folgt:
  • dänisch, holländisch, faröerisch, finnisch, französisch, deutsch, isländisch, irisch, italienisch, norwegisch, portugisisch, spanisch und schwedisch.
  • Es wird angenommen, daß diese Sprachen zumindestens in den folgenden Ländern verwendet werden:
  • Argentinien Finnland Panama
  • Australien Frankreich Paraguay
  • Österreich Deutschland Peru
  • Belgien Guatemala Porugal
  • Bolize Guyana El Salvador
  • Bolivien Honduras Spanien
  • Brasilien Island Surinam
  • Kanada Irland Schweden
  • Chile Italien Schweiz
  • Kolumbien Liechtenstein Niederlande
  • Costa Rica Luxemburg Vereinigtes Königreich
  • Kuba Mexiko USA
  • Dänemark Neuseeland Uruguay
  • Äquador Nicaragua Venezuela
  • Färöer-Inseln Norwegen
  • Bei erneuter Betrachtung des ASCII-Zeichensatzes ist zu erkennen, daß der Hauptwortteil, der sich hinsichtlich der englischen Sprache bezüglich des Sortierens ergibt, darin besteht, daß die alphabetische Reihenfolge der Buchstaben in dem englischen Alphabet der internen numerischen Sortierfolge in dem ASCII-Zeichensatz entspricht. Dieses spezielle Merkmal macht das Sortieren von Zeichenketten in englischer Sprache relativ einfach und in den meisten Fällen wirkungsvoll.
  • Beispielsweise werden zum Sortieren von zwei Zeichen die folgenden Operationen durchgeführt:
  • 1) Umwandlung beider Zeichen entweder beide in Groß- oder Kleinbuchstaben (d. h. die Groß- oder Kleinschreibung der Zeichen wird ohne Bedeutung).
  • 2) Verwendung eines direkten Vergleichs der Codes (Ordinalwerte) beider Zeichen zur Bestimmung der relativen Sortierreihenfolgen. Die Zeichen, deren Ordinalwert kleiner ist, wird als erstes sortiert (bei Sortierung in aufsteigender Reihenfolge).
  • Einige Einschränkungen dieses Sortierverfahrens auf der Grundlage des ASCII-Zeichensatzes schließen folgende ein:
  • 1) Die meisten wenn nicht alle Sortieralgorithmen, die bisher veröffentlicht wurden, nehmen an, daß der zugrunde liegende Zeichensatz der 7-Bit-ASCII-Zeichensatz (oder in einigen seltenen Fällen der EBCDIC-Satz) ist, der keine fremdsprachigen Buchstaben unterstützt. Als Ergebnis sind diese Algorithmen nicht in der Lage, die meisten nichtenglischen Sprachen auf der Grundlage von Latein zu sortieren.
  • 2) Die vorhandenen Sortierverfahren für englische und andere Sprachen können das Sortieren nicht in geeigneter Weise handhaben, wenn fremdsprachliche Buchstaben betroffen sind. Dies sollte niemals passieren, wenn das Rechnersystem die nationalen Zeichensätze verwendet, die lediglich Buchstaben in ihren Sprachen enthalten. Das Problem der Behandlung von fremdsprachigen Buchstaben beim Sortieren entsteht jedoch, wenn 8-Bit- Zeichensätze unterstützt werden, weil diese Sätze mehr Buchstaben als die enthalten, die national verwendet werden.
  • 3) Die vorhandenen Algorithmen können das Sortieren nicht in geeigneter Weise in einer mehrsprachigen Umgebung handhaben, bei der Benutzer auf Informationen in der gleichen Datenbank unter Verwendung verschiedener Sprachen zugreifen können.
  • Um ein mehrsprachiges Sortieren in geeigneter Weise durchzuführen, müssen die folgenden Sachverhalte berücksichtigt werden:
  • 1) Die Sortierfolge der Buchstaben in dem lateinischen Alphabet #1 (oder in irgendeinem mehrsprachigen Satz) entspricht nicht der alphabetischen Reihenfolge der Buchstaben in allen unterstützten Sprachen. Dies bedeutet, daß das Sortieren nicht mehr auf der Sortierfolge beruhen kann, die durch den Zeichensatz festgelegt ist.
  • 2) Die Grundidee des Sortierens in einer mehrsprachigen Umgebung besteht darin, daß die Daten in der eigenen Sprache des Benutzers sortiert werden. Die gespeicherten Daten müssen nicht notwendigerweise in der Sprache des Anwenders sein, und sie können tatsächlich aus mehreren unterschiedlichen Sprachen bestehen. Daher ist ein Sortiervorgang erforderlich, der unterschiedliche Sortierreihenfolgen in Abhängigkeit von den Sprachen der Anwender oder Benutzer unterstützen kann. Beispielsweise wird der Buchstabe la' im schwedischen nach 'Z' einsortiert, wsahrend er in der gleichen Weise wie ein 'A' in der deutschen Sprache einsortiert wird.
  • 3) In manchen Sprachen gibt es Fälle, bei denen Buchstaben mit einer unterschiedlichen internen Darstellung so sortiert werden, als ob sie die gleiche Darstellung haben würden (beispielsweise werden 'V' und 'W' in der schwedischen Sprache gleich einsortiert). Dies stellt zweifellos eine Schwierigkeit dar, wenn man daran denkt, die interne Darstellung als Möglichkeit zur Behandlung des Sortierproblems zu verwenden.
  • 4) Die Sortiersoftware sollte in der Lage sein, fremdsprachige Buchstaben in korrekter Weise zwischen den nationalen Buchstaben einzusortieren. Diese Art von Umschreibung ist eindeutig sprachenabhängig.
  • Um ein besseres Bild der Probleme zu erzielen, wenn mehrsprachige Zeichensätze unterstützt werden, werden nachfolgend die Sortierreihenfolgen von vier zu Erläuterungszwecken dienenden Sprachen angegeben. Die Sprache 1 könnte die englische Sprache sein, die Sprache 2 könnte die schwedische Sprache sein, die Sprache 3 könnte die deutsche Sprache sein und die Sprache 4 könnte die franzische Sprache sein. Buchstaben, die die gleiche alphabetische Reihenfolge haben, sind in Klammern gesetzt. Es sei bemerkt, daß Prioritätsregeln für diejenigen Buchstaben gelten, die in Klammern gesetzt sind und sich lediglich durch ihren Akzent unterscheiden.
  • 1) Sprache 1:
  • Kleinbuchstaben: a b c d e f g h i j k l m n o p q r s t u v w x y z
  • Großbuchstaben: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  • 2) Sprache 2:
  • Kleinbuchstaben: a b c d (e ) f g h i j k l m n o p q r s t u (v w) x (yü) z å ä ö
  • Großbuchstaben: A B C D (E F G H I J K L M N O P Q R S T U (V W) X (Y Ü) Z Å Ä Ö
  • 3) Sprache 3:
  • Kleinbuchstaben: (a ä) b c d e f g h i j k l m n (o ö) p q r s t (u ü) v w x y z
  • Großbuchstaben: (A Ä) B C D E F G H I J K L M N (O Ö) P Q R S T (U Ü) V W X Y Z
  • 4) Sprache 4:
  • Kleinbuchstaben: (a à â) b (c ) d (e è ê ë) f g h (i ) j k l m n (o ô) p q r s t (u ù ü) v w x y z
  • Großbuchstaben: (A ) B (C ) D (E É ) F G H (I ) J K L M N (O ) P Q R S T (U ) V W X Y Z
  • Der in ISO 8850/1 definierte Zeichensatz hat breite Unterstützung aus der Rechnerindustrie sowohl in Nordamerika als auch Westeuropa gefunden. Die neuartigen Sortierverfahren gemäß der vorliegenden Erfindung können in Rechnersystemen verwendet werden, die auf der oben genannten Zeichensatznorm beruhen. Weiterhin können die Verfahren auf Systeme angewendet werden, die andere codierte 8-Bit-ein-Byte Zeichensatznormen verwenden, und zwar lediglich mit geringfügigen Modifikationen.
  • Die Sortierverfahren gemäß der vorliegenden Erfindung ermöglichen es, daß der gleiche Algorithmus (Software) irgendeine der 14 weiter oben aufgeführten Sprachen unterstützt. Der Hauptgrund besteht darin, daß die vorliegende Erfindung ein genormtes Codierschema zum Codieren von Sortierreihenfolgen für alle die Buchstaben verwendet, die in ISO 8859/1 definiert sind. Dieses Codierschema beseitigt die Abhängigkeit des Sortierens von der internen Sortierreihenfolgendarstellung des Zeichensatzes.
  • Dadurch, daß die sprachenabhängigen Sortierreihenfolgen als Dateien gespeichert werden, ist die Sortiersoftware gegenüber den Sprachen der Anwender unempfindlich und damit äußerst portierbar und kosteneffektiv, weil lediglich ein Satz von Software gewartet werden muß. Die Anzahl der unterstützen Sprachen ist direkt proportional zur Anzahl der verfügbaren Dateien. Dies bedeutet, daß keine Softwareänderungen erforderlich sind, wenn eine neue Sprache unterstützt wird. Statt dessen muß eine neue Datei definiert und installiert werden.
  • Um das Sortieren fremdsprachiger Buchstaben zu unterstützen, wird eine Transkription oder eine Umschreibung verwendet, um sicherzustellen, daß fremdsprachige Buchstaben dort einsortiert werden, wo am stärksten erwartet werden kann, daß Benutzer nach ihnen suchen. Dies schließt sowohl eine geometrische Ähnlichkeit als auch phonetische Regeln ein.
  • Eine weitere Lösung des Problems des alphabetischen Sortierens in unterschiedlichen Sprachen ist in der Beschreibung der JP-A- 61 062 163 beschrieben. Dieses Dokument beschreibt ein Verfahren zum Sortieren von Worten auf der Grundlage von Zeichen aus den chinesischen und japanischen Alphabeten, bei dem ein numerischer Wert, der einem chinesischen Zeichen zugeordnet ist, auf einen weiteren numerischen Wert geändert wird, dar die Sortierreihenfolge dieses Zeichens in der japanischen Sprache wiedergibt.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zur Vereinfachung des alphabetischen Sortierens von auf Zeichen aus einem mehrsprachigen Alphabet beruhenden Worten mit Hilfe eines Rechners geschaffen, wobei das Verfahren durch die Schritte der Aufrechterhaltung einer Stammdatei (34) der zu sortierenden Worte und die Schaffung einer Datei (36) für jede zu unterstützende Sprache gekennzeichnet ist, wobei die Datei auf die Stammdatei derart angewandt wird, daß die Stammdatei vor der Durchführung des alphabetischen Sortierens modifiziert wird, wobei die Modifikation die Schritte der Änderung des dem betreffenden Zeichen zugeordneten numerischen Wertes auf einen numerischen Wert umfaßt, der die Sortierreihenfolge dieses Zeichens für die betreffende Sprache wiedergibt.
  • Die Sortierverfahren der vorliegenden Erfindung unterstützen die folgenden Merkmale:
  • 1) Zeichen, die in einer Sprache nicht auftreten, sollten dort einsortiert werden, wo zu erwarten ist, daß Benutzer dieser Sprache sie suchen würden.
  • 2) In allen Fällen werden alle Interpunktationen und nicht-alphanumerischen Zeichen mit Ausnahme von Leerstellen ignoriert, wenn sie zwischen Ziffern und Buchstaben erscheinen (beispielsweise wird Ada/Bobby Co. als AdaBobby Co sortiert). Wenn der Name lediglich Interpunktationszeichen und/oder nichtalphanumerische Zeichen enthält, so sollten diese Zeichen beibehalten werden (beispielsweise φφφ [*], /*/. usw.). In diesem Fall würden diese nicht-alphanumerischen Zeichen vor den Ziffern und Buchstaben einsortiert werden.
  • 3) Sortieroperationen müssen eins-zu-zwei-Substitutionen für einige Zeichen unterstützen. Beispielsweise wird das s ' aus der Sprache 3 so sortiert, als ob es 'ss' in der Sprache 1 sein w~rde.
  • 4) Sortieroperationen müssen zwei-zu-eins-Substitutionen für einige Zeichen unterstützen. Beispielsweise werden in der spanischen Sprache die Buchstabenpaare 'ch' und 'll' so sortiert, als ob sie einzelne Buchstaben sein würden, und sie werden zwischen 'cz' und 'd' bzw. zwischen 'lz' und 'm' einsortiert.
  • 5) Die Sortieroperationen müssen eine Akzentpriorität berücksichtigen. Dies bedeutet, daß mit Akzenten versehene oder keine Akzente aufweisende Buchstaben einer unterschiedlichen Sortierwertigkeit unterworfen werden, wenn alle Buchstaben in der verglichenen Zeichenkette mit Ausnahme der Akzente gleich sind (beispielsweise wird 'Ellen' vor lällen' einsortiert). Beispielsweise werden in der englischen Sprache die 'a'-Vokale (mit oder ohne Akzent) mit Ausnahme der Prioritsat als gleich behandelt. Ihre Prioritätsreihenfolge ist: A Å. Es sei bemerkt, daß die Priorität hinsichtlich der Akzente in den verschiedenen Sprachen unterschiedlich sein kann.
  • 6) Es wird nicht erwartet, daß die Sortierreihenfolge hinsichtlich der nicht-alphanumerischen Zeichen (Interpunktion und Symbole) sprachenabhängig sind. Entsprechend wird die Sprachenabhängigkeit des Sortierens durch Buchstaben und Akzente bestimmt.
  • Die vorliegende Erfindung ist auf ein Verfahren zur Verwirklichung anderer Sortierreihenfolgen als unter Verwendung der internen Sortierreihenfolgen gerichtet, die durch den verwendeten Zeichensatz festgelegt sind, unter Einschluß des Schrittes der Transkription von 'fremdsprachlichen' Buchstaben gemäß einer geometrischen oder phonetischen Ähnlichkeit für den Zweck der Festlegung der Sortierreihenfolge.
  • Die Erfindung wird nunmehr ausführlicher unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, in denen gleiche Teile in jeder der verschiedenen Figuren mit der gleichen Bezugsziffer bezeichnet sind, und in denen:
  • Fig. 1A eine vereinfachte Blockdarstellung ist, die die Datensatz-Struktur der vorliegenden Erfindung zur Handhabung der alphanumerischen Zeichen zeigt, die durch ISO 8859/1 unterstützt sind,
  • Fig. 1B eine vereinfachte Blockdarstellung ist, die eine alphanumerische Zeichencodiertabelle für die vorliegende Erfindung zeigt,
  • Fig. 2A eine vereinfachte Blockdarstellung ist, die die Datensatzstruktur der vorliegenden Erfindung zur Handhabung der Prioritäten von Akzenten zeigt, die durch ISO 8859/1 unterstützt sind,
  • Fig. 2B eine vereinfachte Blockdarstellung ist, die eine Akzent-Codiertabelle für die vorliegende Erfindung zeigt,
  • Fig. 3A eine vereinfachte Blockdarstellung ist, die die Datensatzstruktur der vorliegenden Erfindung für die Handhabung der nicht-alphanumerischen Zeichen zeigt, die von ISO 8859/1 unterstützt werden,
  • Fig. 3B eine vereinfachte Blockdarstellung ist, die eine nicht-alphanumerische Zeichencodiertabelle für die vorliegende Erfindung zeigt,
  • Fig. 4 eine vereinfachte Blockdarstellung ist, die den Gesamt-Sortierschlüssel-Codiervorgang der vorliegenden Erfindung zeigt,
  • Fig. 5 eine vereinfachte Blockdarstellung ist, die die Zusammensetzung eines Sortierschlüssel-Eintrags zeigt, der gemäß der vorliegenden Erfindung codiert ist,
  • Fig. 6 eine vereinfachte Blockdarstellung ist, die zeigt, wie sprachenabhängige Dateien mit einer im Lokalbetrieb betriebenen Einrichtung geschaffen werden, die dazu verwendet wird, Sortierreihenfolgen in Dateien umzusetzen, die von der Codiersoftware benötigt werden,
  • Fig. 7 eine vereinfachte bildliche Darstellung des tatsächlichen Codierschrittes ist, der von der vorliegenden Erfindung an einem zu Erläuterungszwecken dienenden alphabetischen Beispiel durchgeführt wird,
  • Fig. 8 eine vereinfachte bildliche Darstellung des tatsächlichen Akzentprioritäts-Codierschrittes ist, der von der vorliegenden Erfindung an einem zu Erläuterungszwecken dienenden Beispiel ausgeführt wird,
  • Fig. 9 eine vereinfachte bildliche Darstellung eines vollständigen Daten-Sortierschlüssels ist,
  • Fig. 10 eine vereinfachte bildliche Darstellung der tatsächlichen Codierschritte ist, die von der vorliegenden Erfindung an einen zu Erläuterungszwecken dienenden nicht-alphanumerischen Beispiel ausgeführt werden,
  • Fig. 11 ein Diagramm ist, daß das lateinische Alphabet #1 nach ISO 8859/1 zeigt,
  • Fig. 12, 13 und 14 vereinfachte Ablaufdiagramme sind, die für das Verständnis der vorliegenden Erfindung nützlich sind,
  • Anlage A eine vereinfachte Pseudocode-Liste ist, die für das Verständnis der vorliegenden Erfindung nützlich ist, Anlage B eine Sammlung bestimmter Begriffe ist, die bei der Beschreibung der vorliegenden Erfindung verwendet werden,
  • Anlage C eine Tabelle ist, die die Korrespondenz zwischen den Zeichen von einigen verschiedenen Sprachen zeigt,
  • Anlage D eine Codiertabelle für alphanumerische Zeichen für die Sprache 1 ist,
  • Anlage E eine Codiertabelle für alphanumerische Zeichen für die Sprache 5 ist,
  • Anlage F eine Akzentprioritäts-Codiertabelle für die Sprachen 1 und 5 ist, und Anlage G eine Codiertabelle für nicht-alphanumerische Zeichen für die Sprachen 1 und 5 ist.
  • Im Gegensatz zur Sortierfolge von ASCII entsprechen die Sortierfolgen der ISO 8859/1-Zeichen keiner der Sortierreihenfolgen der 14 Sprachen, die durch die vorliegende Erfindung unterstützt werden. Gemäß der vorliegenden Erfindung werden sprachenabhängige Sortierschlüssel, die auf den Sprachen der Anwender beruhen, ausgebildet, bevor die normalen Sortierprogramme verwendet werden können.
  • Die vorliegende Erfindung ermöglicht es, daß eine sprachenabhängige Sortierung von einer sprachenunabhängigen Software durchgeführt wird. Dies bedeutet, daß der gleiche Satz von Software portierbar ist, um das Sortieren zu unterstützen, wenn verschiedene Sprachen unterstützt werden müssen. Die sprachenabhängigen Sortierreihenfolgen werden aus Dateien zur Laufzeit geladen. Die Sortierreihenfolgen werden durch ein Hilfsprogramm erzeugt, das die Daten für die drei Codiertabellen (Tabellen 120, 126 und 131 nach den Fig. 1B, 2B bzw. 3B) erzeugt, die von der Codiersoftware (Anlage A) verwendet werden.
  • Jeder unterstützten Sprache sind zwei Codiertabellen zugeordnet (eine alphanumerische Zeichencodiertabelle 120, Fig. 1B, und eine Akzent-Prioritätscodiertabelle 126, Fig. 2B), während die dritte Tabelle (Codiertabelle 131 für nicht-alphanumerische Zeichen, Fig. 3B) allen unterstützten Sprachen gemeinsam ist (wie sie weiter oben in der Beschreibungseinleitung angegeben sind). Jede Tabelle weist 256 Einträge auf, so daß alle von dem ISO 8859/1-Zeichensatz unterstützten Zeichen dargestellt werden können.
  • Die alphanumerischen Zeichencodier-Datensätze 20 (Fig. 1) werden zum Codieren von Ziffern (numerische Zeichen) und Buchstaben (alphabetische Zeichen) verwendet. Jedes Zeichen erfordert vier Informationsbytes. Byte 21 wird zur Anzeige dafür verwendet, ob die Codierung 1-zu-1, 1-zu-2, 2-zu-2 oder 'ignorieren' ist. Es sei bemerkt, daß 'O' 1-zu-1 anzeigt, '1' 1-zu-2 anzeigt, '2' 2-zu-2 anzeigt und daß '255' 'ignorieren' anzeigt.
  • Wenn der Codierungsanzeiger 21 gleich '0' ist (das heißt 1-zu-1), so wird lediglich das erste codierte Sortierreihenfolgenbyte 22 dazu verwendet, die codierte Sortierreihenfolge des Zeicheneintrages zu speichern, während das zweite codierte Sortierreihenfolgenbyte 23 und das nächstgrößte Sortierreihenfolgenbyte 24 nicht verwendet werden.
  • Wenn der Codieranzeiger 21 gleich '1' ist (das heißt 1-zu-2), so werden das erste codierte Sortierreihenfolgenbyte 22 und das zweite codierte Sortierreihenfolgenbyte 23 beide dazu verwendet, die beiden entsprechenden codierten Sortierreihenfolgen des Zeicheneintrages zu speichern, und das nächstgrößte Sortierreihenfolgenbyte 24 wird nicht verwendet.
  • Wenn der Codieranzeiger 21 gleich '2' ist (das heißt 2-zu-2), so werden alle die anderen 3 Bytes (erste codierte Sortierreihenfolge 22, zweite codierte Sortierreihenfolge 23 und nächstgrößte Sortierreihenfolge 24) dazu verwendet, die Codierinformation zu speichern. Die erste codierte Sortierreihenfolge 22 wird dazu verwendet, die codierte Sortierreihenfolge des Zeicheneintrags (beispielsweise den Wert 78 für das Zeichen 'C', Fig. 7) zu speichern. Die zweite codierte Sortierreihenfolge 23 wird dazu verwendet, die codierte Sortierreihenfolge des zweiten Zeichens des Paares zu speichern (beispielsweise den Wert 83 für den Buchstaben 'H' in dem Zweizeichen-Paar 'CH'). Die nächstgrößte Sortierreihenfolge 24 wird dazu verwendet, die codierte Sortierreihenfolge der größten Sortierreihenfolge zu speichern, die in dieser Sprache definiert ist (zum Beispiel 102 in dem Beispiel der Fig. 7).
  • Das Codieranzeigebyte 21 ergibt das richtige Ansprechverhalten sowohl für den Falle 1-zu-1 als auch 1-zu-2, doch könnte es ein fehlerhaftes Ansprechverhalten im Fall von 2-zu-2 liefern. Dies tritt ein, weil ein zusätzliches Prüfen erforderlich ist, um zu bestimmen, ob die codierte Sortierreihenfolge des nächsten Eingabezeichens mit der des zweiten Zeichens in dem Zweizeichen- Paar übereinstimmt, das in dem Byte 23 gespeichert ist. Als Ergebnis wird der Codieranzeiger 21 für den 2-zu-2-Fall für die Zeichen freigegeben (das heißt er ist '2'), die möglicherweise ein Präfix von Zweizeichen-Paaren sind (beispielsweise 'C' und 'L' für die spanische Sprache). Die tatsächliche codierte Sortierreihenfolge für das zweite Zeichen des Zweizeichen-Paares ist im Byte 24 gespeichert, das den höchsten codierten Sortierreihenfolgen-Wert für diese Sprache darstellt (beispielsweise bedeutet dies für die spanische Sprache den codierten Wert nach dem Wert für den Buchstaben 'Z'). Wie üblich, wird die codierte Sortierreihenfolge für den Zeicheneintrag immer noch in dem Byte 22 gespeichert. Die tatsächlichen Werte für die codierten Sortierreihenfolgen für Ziffern und Buchstaben müssen größer als die sein, die für die nicht-alphanumerischen Zeichen definiert sind. Wenn das Codieranzeigerbyte 21 auf 'ignorieren' gesetzt ist (das heißt 255), so kann der Codierwert des Zeichens ignoriert werden. Dies gilt für die Steuerzeichen, die mit den Codewerten Hexadezimal 00 bis Hexadezimal'1F und Hexadezimal 80 bis Hexadezimal 9F definiert sind, und die nicht-alphanumerischen Zeichen Hexadezimal 21 bis Hexadezimal 2F, Hexadezimal 3A bis Hexadezimal 3F, Hexadezimal 40, Hexadezimal 5B bis Hexadezimal 5F, Hexadezimal 60, Hexadezimal 7B bis Hexadezimal 7F und Hexadezimal A1 bis Hexadezimal BF.
  • Die Akzentprioritäts-Codierdatensätze 26 (Fig. 2A) werden für die Codierung von Akzenten verwendet, die zur Unterstützung der Zeichenpriorität benötigt werden. Für die Zeichen, die mit einem Akzent versehen werden können (beispielsweise 'A' und 'E'), ist der erste codierte Akzentwert 27 gleich 0 und der zweite codierte Akzentwert 28 wird nicht verwendet, weil diese Zeichen lediglich eine 1-zu-1-Zeichencodierung erfordern, und dies gilt genauso für die Akzentcodierung. Die Akzentcodierungswerte (27 und 28) beginnen bei 0 und gehen in Abhängigkeit von der Anzahl der zur Verfügung stehenden Akzente nach oben. Es sei bemerkt, daß die codierten Akzentwerte 27 und 28 lediglich hinsichtlich der Sortierung von Bedeutung sind, wenn die Daten mit Ausnahme der Akzente identisch sind.
  • Für diejenigen Zeichen, die eine 1-zu-2-Codierung erfordern, werden die Werte 27 und 28 dazu verwendet, die codierten Akzentwerte der beiden Zeichen zu speichern, die transkribiert werden. Die Präfixe des Zweizeichen-Paares (beispielsweise 'C' und 'L' für Spanisch) werden in der gleichen Weise wie andere Zeichen codiert und es sind keine speziellen Akzentcodierwerte erforderlich (das heißt sie werden in der gleichen Weise wie andere 1-zu-1-Codierzeichen codiert). Die Akzentwerte derjenigen Zeichenpaare, die eine 2-zu-2-Codierung erfordern, hängen von den transkribierten Zeichen (das heißt der größten Sortierreihenfolge) ab, die jedoch keine Akzente umfassen, so daß ihre codierten Akzentwerte undefiniert sind.
  • Die nicht-alphanumerischen Zeichencodierdatensätze 31 (Fig. 3A) werden dazu verwendet, alle anderen druckbaren Zeichen mit Ausnahme von Ziffern und Buchstaben zu codieren. Diesen Zeichen werden Codierwerte von 1 aufwärts zugeordnet und sie werden in der codierten Sortierreihenfolge 32 gespeichert. Der letzte Codierwert plus eins in dieser Kategorie ist der Anfangswert für die codierten Sortierreihenfolgen, die für die alphanumerischen Zeichen verwendet werden.
  • Der Gesamt-Sortierschlüssel-Codiervorgang 33 ist in Fig. 4 gezeigt. Daten 34 (das heißt Worte) werden durch Software 35 codiert, die sprachenabhängige Dateien 36 als Codiertabelle verwendet und die Daten 34 in sprachenabhängige Sortierschlüssel 37 transformiert. Die Sortierschlüssel 37 können dann für einen Vergleich während des tatsächlichen Sortiervorganges verwendet werden.
  • Fig. 5 zeigt ausführlicher die Struktur eines codierten Sortierschlüssels 37. Der codierte Sortierschlüssel 37 ist größer als die ursprünglichen Daten, und zwar aufgrund des Vorhandenseins der codierten Akzentprioritätswerte 40. Der codierte Sortierschlüssel besteht aus codierten Sortierreihenfolgen 39 und codierten Akzentwerten 40. Die Vergrößerung der Länge des codierten Sortierschlüssels 37 (gegenüber der Länge der ursprünglichen Daten) kann höchstens eine Hälfte der Größe der ursprünglichen Daten sein, wenn alle Zeichen in den Daten Akzentprioritätswerte haben. Dies tritt ein, weil die codierten Akzentprioritätswerte 40 jeweils mit zwei Werten in ein Byte gepackt werden, weil die Werte von 0 bis 10 reichen, so daß jeder Wert in vier Bits paßt. Es sei bemerkt, daß die codierten Akzentprioritätswerte 40 lediglich in dem codierten Sortierschlüssel 70 für Buchstaben gespeichert sind, die mit Akzenten versehen sein können (beispielsweise 'A' und 'E') oder die tatsächlich mit Akzenten versehen sind (beispielsweise ' ' und lä'). Dies bedeutet, daß für Daten, die lediglich Ziffern und Buchstaben, die nicht mit Akzenten versehen werden können (beil- spielsweise 'X' und 'Z') und nicht-alphanumerische Zeichen enthalten, keine Vergrößerung der Größe des codierten Sortierschlüssels 37 gegenüber der Größe der Rohdaten auftritt.
  • Fig. 6 ist eine vereinfachte Blockdarstellung, die die Sortierreihenfolgen-Definitionseinrichtung 41 zeigt. Die sprachenabhängigen Dateien 36, die von dem Gesamt-Sortierschlüssel- Codierprozeß 33 (Fig. 4) benötigt werden, werden in einem Offline-Dateikonstruktionsprozeß 41 (Fig. 6) geschaffen, der die Sortierreihenfolgeninformation 42 für jede spezielle Sprache nimmt und die Sortierreihenfolgen-Definitionseinrichtung 43 verwendet, um die drei genannten Codierungstabellen als sprachabhängige Dateien 36 aufzubauen (das heißt die alphanumerische Codiertabelle 120 nach Fig. 1B, die Akzentprioritäts-Codiertabelle 126 nach Fig. 2B und die nicht-alphanumerische Zeichencodierungstabelle 131 nach Fig. 3B). Die Verwendung der Dateien 36 trennt die Sortiersoftware von der Sprachabhängigkeit der sortierreihenfolgen und ermöglicht die Verwendung eines einzigen Satzes von Sortiersoftware.
  • Die Fig. 7 und 8 sind bildliche Darstellungen der tatsächlichen Codierung eines willkürlichen Beispiels eines Wortes oder von Daten 'BCHÆ.', wie dies bei 46 gezeigt ist. Die codierte Version des alphanumerischen Teils dieses Wortes ist in codierter Form in Fig. 7 als alphanumerischer Sortierschlüssel 47 gezeigt. Die codierte Version des Akzent-Attributteils des Wortes 46 ist in codierter Form in Fig. 8 als Akzent-Sortierschlüssel 48 gezeigt. Die vollständige codierte Version des Wortes 46, die als Daten- Sortierschlüssel 49 bezeichnet wird, ist in Fig. 9 gezeigt und besteht aus einem alphanumerischen Sortierschlüssel 47 gefolgt von dem Akzent-Sortierschlüssel 48.
  • Fig. 7 zeigt die vier möglichen Vorgänge, die bei dem alphanumerischen Codierprozeß auftreten können: das heißt 1-zu-1, 2-zu-2, 1-zu-2 und 'ignorieren'. Das angegebene Beispiel beruht auf einer Sprache-5-Codiertabelle (die spanisch sein kann) für alphanumerische Zeichen und ist lediglich zu Erläuterungszwecken angegeben.
  • Der erste Schritt in dem Codierungsprozeß besteht in der Prüfung des ersten Zeichens im Wort 46, das heißt des Zeichens 'B' gegen seinen entsprechenden Codieranzeiger 51. Dies ist in Fig. 7 durch die Linie 61 angedeutet, die sich von dem Zeichen 'B' in dem Wort 46 zum B-Eintrag in der Zeichenspalte 50 der alphanumerischen Zeichencodiertabelle 56 erstreckt, die einen entsprechenden Eintrag in der Codieranzeigespalte 51 aufweist, dessen Wert '0' anzeigt, daß die Codierung 1-zu-1 ist. Daher wird die entsprechende codierte Sortierreihenfolge (d. h. '77') von der ersten codierten Sortierreihenfolgen-Spalte 52 entnommen und an die erste Position des alphanumerischen Sortierschlüssels 47 gebracht, wie dies durch die Linie 62 angezeigt ist.
  • Das Zeichen 'B' wird erneut geprüft, um festzustellen, ob irgendeine Akzentpriorität gespeichert werden muß (siehe Fig. 8). Wie dies durch die Linie 63 in Fig. 8 angezeigt ist, die sich von dem Zeichen 'B' in dem Wort 46 zum B-Eintrag in der Zeichenspalte 57 der Akzentprioritäts-Codiertabelle 60 erstreckt, hat diese einen entsprechenden Eintrag in der ersten codierten Akzentwert-Spalte 58 mit dem Wert '255'. Der Wert '255' in Spalte 58 zeigt an, daß dieses Zeichen keinen Akzent haben kann, so daß kein Wert in dem Akzent-Sortierschlüssel 48 gespeichert werden muß.
  • Der gleiche Prüfschritt gegen die Zeichenspalte 50 der alphanumerischen Zeichencodiertabelle 56 (Fig. 7) wird für das nächste Zeichen im Wort 46 durchgeführt, das heißt den Buchstaben 'C', wie dies durch die Linie 64 angezeigt ist. Der entsprechende Eintrag in der Codieranzeigerspalte 51 ist der Wert '2', was anzeigt, daß eine 2-zu-2-Codierung erforderlich sein könnte. Um festzustellen, ob dies der Fall ist oder nicht, wird der nächste Buchstabe in dem Wort 46, das heißt der Buchstabe 'H' codiert, wie dies durch die Linie 66 angedeutet ist, die sich von dem Zeichen 'H' in dem Wort 46 zum H-Eintrag in der Zeichenspalte 50 erstreckt, die als entsprechenden Eintrag in der ersten codierten Sortierreihenfolgenspalte 52 den Wert '83' aufweist. Dieser Wert wird dann mit dem verglichen, der in der zweiten codierten Sortierreihenfolgenspalte 53 gespeichert ist, die dem Zeichen 'C' entspricht (der den Wert '83' aufweist). Weil die Werte identisch sind (beide haben den Wert '83'), zeigt dies an, daß ein Zeichenpaar vorliegt (das heißt die Zeichen 'CH' müssen als eine Einheit und nicht als zwei getrennte Zeichen behandelt werden: das heißt 2-zu-2- Codierung ist erforderlich). Der Wert '78' von der ersten codierten Sortierreihenfolgenspalte '52', der dem Buchstaben 'c' entspricht, wird in die zweite Position des alphanumerischen Sortierschlüssels 47 gebracht, wie dies durch die Linie 67 angedeutet ist. Die nächstgrößte Sortierreihenfolgenspalte 54, die dem Zeichen 'C' entspricht (das heißt der Wert '102') wird in die dritte Position des Sortierschlüssels 47 gebracht, wie dies durch die Linie 68 angedeutet ist. Es ist keine Überprüfung auf Akzentprioritäten erforderlich, weil kein Akzent für die nächstgrößte Sortierreihenfolgenspalte 54 definiert ist, und die Akzentpriorität für das erste Zeichen des Zeichenpaares (das heißt C) kann ignoriert werden, weil es niemals verwendet wird (es sei bemerkt, daß diese Information aus dem Codieranzeiger 51 entnommen werden kann, der in diesem Fall den Wert 2 hat).
  • Wenn die codierte Sortierreihenfolge des Zeichens nach 'C' in den Eingangsdaten nicht '83' sein würde, wie dies durch den Eintrag in der zweiten codierten Sortierreihenfolgenspalte 53 gegen den Eintrag des Zeichens 'C' angezeigt ist, dann würde lediglich die erste codierte Sortierreihenfolge des Zeichens 'c' (das heißt '78', wie in Spalte 52 zu finden) in die zweite Position des Sortierschlüssels 47 eingeführt.
  • Als nächstes wird das Zeichen lu' codiert, wie dies durch die Linie 69 zwischen dem Zeichen lu' in dem Wort 46 und dem Einl- trag lu' in Spalte 50 der Codiertabelle 56 angezeigt ist. Der Eintrag in der Codieranzeigerspalte 51, der dem Zeichen lu' entspricht, weist den Wert '1' auf. Dies zeigt an, daß das Zeichen eine 1-zu-2-Codierung erfordert. Als Ergebnis werden die Werte (codierte Sortierreihenfolgen) von den Spalten 52 und 53 (das heis t die Werte '76' bzw. '80') in die nächsten zwei Positionen des alphanumerischen Sortierschlüssels 47 gebracht, wie dies durch die Linien 71 und 72 angezeigt ist.
  • Wie dies in Fig. 8 gezeigt ist, wird das Zeichen lu' gegen die Akzentprioritsatscodiertabelle 60 überprüft, wie dies durch die Linie 73 angedeutet ist. Dieser Vorgang zeigt, daß das Zeichen lu' zwei Akzentattribute aufweist, und daher werden die beiden codierten Akzentwerte, die jeweils '0' sind, entnommen, und in den Akzent-Sortierschl~ssel 48 gebracht, wie dies durch die Linien 74 und 76 angedeutet ist.
  • Das letzte Zeichen in dem Wort 46 ist ein Punkt (.). Es wird gegen die Codiertabelle 56 (Fig. 7) geprüft, wie dies durch die Linie 77 angezeigt ist. Der Eintrag in der Spalte 51 für das Zeichen '.' ist der Wert '255', was anzeigt, daß kein Codierwert benötigt wird und daß dies daher ein 'Ignoriere'- Fall ist. Dieser Wert wird daher nicht dem alphanumerischen Sortierschlüssel 47 hinzugefügt. Das gleiche tritt ein, wenn in Fig. 8 die Akzentpriorität geprüft wird, wie dies durch die Linie 78 angezeigt ist.
  • Fig. 9 zeigt den vollständigen Daten-Sortierschlüssel 49 für das ursprüngliche Wort 46. Der Daten-Sortierschlüssel 49 umfaßt den alphanumerischen Sortierschlüssel 47 gefolgt von dem Akzent- Sortierschlüssel 48 (der vor dem Packen der beiden Bytes in ein Byte gezeigt ist), wie dies in der Figur gezeigt ist.
  • Fig. 10 zeigt die Erfindung für den Fall, in dem die Daten 81 lediglich nicht-alphanumerische Zeichen enthalten. Jedes Zeichen wird unter Verwendung der nicht-alphanumerischen Zeichencodiertabelle 78 codiert. Das erste Symbol in den Daten 81, das heißt der Stern * wird gegen den Stern * in der Symbolspalte 85 der nicht-alphanumerischen Zeichencodiertabelle 84 geprüft. Dies ist durch die Linie 86 angezeigt. Der entsprechende Eintrag in der codierten Sortierreihenfolgenspalte 83 der Tabelle 84 ist die Zahl '11'. Diese Zahl wird dann an die erste Position des Sortierschlüssels 82 gebracht, wie dies durch die Linie 87 angedeutet ist. Die gleichen Schritte gelten für den zweiten Stern in den Daten 81.
  • Gleiche Schritte gelten für das Symbol @, das Symbol @ in den Daten 81 wird gegen das Symbol @ in der Symbolspalte 85 der Tabelle 84 geprüft, wie dies durch die Linie 88 angezeigt ist. Der entsprechende Eintrag in der codierten Sortierreihenfolgenspalte 83 der Tabelle 84 ist die Zahl '23'. Diese Zahl wird dann an die dritte Stelle des Sortierschlüssels 82 gebracht, wie dies durch die Linie 89 gezeigt ist.
  • Schließlich werden die gleichen Schritte auf das letzte Symbol der Daten 81 angewandt, nämlich das Symbol $. Das Symbol $ in den Daten 81 wird gegen das Symbol $ in der Symbolspalte 85 der Tabelle 84 geprüft, wie dies durch die Linie 91 gezeigt ist. Der entsprechende Eintrag in der codierten Sortierreihenfolgenspalte 83 der Tabelle 84 ist die Zahl '5'. Diese Zahl wird dann in die letzte Position des Sortierschlüssels 82 gebracht, wie dies durch die Linie 92 angedeutet ist.
  • Wie dies aus dem Vorstehenden zu erkennen ist, ist der Codiervorgang relativ einfach und flexibel, sobald die sprachabhängigen Dateien 36 aufgebaut sind. Zusätzlich führt der Codiervorgang 33 nicht zu einer Einführung von größeren Zusätzen zu dem derzeitigen Sortiervorgang oder zu der Sortierlogik. Die Codierung ersetzt lediglich die derzeitige Umwandlung von Groß- und Kleinbuchstaben, die vor dem Vergleich von zwei Zeichenketten während des Sortiervorganges durchgeführt wird. Es sei bemerkt, daß der Codiervorgang 33 eine Groß-/Kleinbuchstabenumwandlung ebenfalls einschließt, weil der Sortiervorgang als gegenüber Groß-/Kleinschreibung unempfindlich angenommen wird.
  • Um ein noch besseres Verständnis der Vorteile und Einzelheiten der in den vorstehenden Abschnitten beschriebenen Sortierverfahren zu erzielen, wird der Inhalt der drei Codiertabellen (56, 60 und 84) und der Transkriptionsvorgang, der bei dem Codiervorgang verwendet wird, nachfolgend ausführlicher beschrieben.
  • Für die beschriebenen, zu Erläuterungszwecken dienenden Ausführungsformen ist die Verteilung der codierten Sortierreihenfolgenwerte für unterschiedliche Zeichen im folgenden angegeben:
  • 1) Wert 1 bis zum Wert 65 für nicht-alphanumerische Zeichen.
  • 2) Wert 66 bis Wert 75 für Ziffern.
  • 3) Wert 76 und aufwärts für Buchstaben, die in der Sprache definiert sind, und für transkribierte fremdsprachige Buchstaben.
  • 4) Wert 0 für Zeichen, die einen Akzent haben können, diesen jedoch nicht haben.
  • 5) Die Werte für Akzente sind wie folgt:
  • Wert Akzent Beispiel
  • 1 Akut 2 Gravis à 3 Zirkumflex â 4 Tilde 5 Umlaut ä 6 Ring å 7 Cedille 8 Bindestrich 9 Schrägstrich ø 10 andere Akzente 255 kein Akzent ß
  • 6) O, 1 und 2 zeigen jeweils 1-zu-1-, 1-zu-2- bzw. 2-zu-2-Codierung an.
  • 7) 'Ignoriere' ist durch den Wert 255 oder 0 angegeben.
  • Vollständigere Inhalte der alphanumerischen Zeichencodiertabelle 156 für die Sprache 5, die die spanische Sprache sein könnte, sind in der Anlage E gezeigt.
  • Eine vollständigere Darstellung des Inhaltes der Akzent-Prioritätscodiertabelle 160 für die Sprachen 1 und 5 ist in der Anlage F gezeigt.
  • Eine vollständigere Darstellung des Inhaltes der Codiertabelle 184 für nicht-alphanumerische Zeichen für die Sprachen 1 und 5 ist in der Anlage G gezeigt.
  • Der Inhalt der alphanumerischen Zeichencodiertabelle für die Sprache 1, die die englische Sprache sein könnte, sind in der Anlage D gezeigt.
  • Einer der Vorteile des Sortierverfahrens gemäß der vorliegenden Erfindung ist die Fähigkeit, fremdsprachige Buchstaben zu sortieren. Weil die Sortierreihenfolgen jedoch lediglich für Buchstaben innerhalb des Alphabets der Sprache definiert sind, wird ein spezielles Verfahren, das als 'Transkription' bezeichnet wird, zum transkribieren von fremdsprachigen Buchstaben verwendet. Beispiele des Transkriptionsverfahrens für fremdsprachige Zeichen für verschiedene Sprachen sind in der Anlage C gezeigt. Das Konzept hinter dem Transkriptionsverfahren ist sehr einfach: Zeichen, die in einer Sprache nicht erscheinen, werden an der Stelle eingeordnet, wo angenommen wird, daß Benutzer dieser Sprache sie suchen, und in den meisten Fällen erfolgt die Gruppierung auf der Grundlage einer geometrischen Ähnlichkeit.
  • In etwas ausführlicherer Weise bedeutet dies, daß allen in ISO 8859/1 definierten Zeichen Sortierreihenfolgen zugeordnet werden, selbst wenn sie nicht zu der Sprache des Benutzers gehören. Die Zeichen außerhalb der Sprache des Benutzers werden gemäß den folgenden allgemeinen Regeln sortiert:
  • a) Geometrische Ähnlichkeit - einige fremdsprachige Zeichen können einem nationalen Zeichen ähneln, und als Ergebnis können sie zusammensortiert werden (beispielsweise würde Ä zu einem A in der englischen Sprache werden).
  • b) Phonetische Ähnlichkeit - einige fremdsprachige Buchstaben klingen identisch oder ähnlich wie ein nationaler Buchstabe (obwohl sie unterschiedlich - aussehen können), so daß sie dann zusammen sortiert werden (beispielsweise wird ein Æ zu einem A im Schwedischen, ein ß würde zum ss im Englischen werden).
  • Das bei der Transkription verwendete Konzept wird in die Codiertabellen eingefügt, wenn sprachenabhängige Dateien geschaffen werden. Dies bedeutet, daß die vorgeschlagenen Sortierverfahren Techniken für eine Sortierschlüsselcodierung sowie eine Transkription von fremdsprachigen Buchstaben einschließen. Es wird auf die Anlage C für die Beziehung zwischen verschiedenen Sprachen Bezug genommen.
  • Pseude-Code
  • Ein vereinfachter Pseudocode, der zum Verständnis der Ausführung der vorliegenden Erfindung nützlich ist, ist in der Anlage A enthalten, auf die hiermit Aufmerksamkeit gelenkt wird.
  • Es wird angenommen, daß der Pseudocode der Anlage A selbsterläuternd ist, doch wurden zur Sicherstellung einer vollständigen Beschreibung Ablaufdiagramme (Fig. 12, 13, 14A und 14B) beigefügt, um die durch den Pseudocode ausgeführten Operationen zu beschreiben.
  • Die Abschnitte des Pseudecodes der Anlage A wurden mit Querverweisen auf die entsprechenden Abschnitte der Ablaufdiagramme nach den Fig. 12, 13, 14A und 14B dadurch versehen, daß Bezugszeichen beginnend mit dem Buchstaben C eingefügt wurden.
  • Ein Verzeichnis der in diesem Dokument verwendeten Ausdrücke findet sich in der Anlage B, auf die verwiesen wird. ANLAGE A pseudo-Code (vereinfacht) Data Structure Declaration Zeiger auf alphanumerische Zeichencodiertabelle Akzentprioritäts-Codiertabelle nicht-alphanumerische Zeichencodiertabelle Akzentabtstrichtung Diese Funktion nimmt die Sprache des Benutzers uknd liest die entsprechende Datei ein und stellt drei interne Codiertabellen über "CharPtr", "AccentPtr" und "NonAlphaPtr" auf. ANLAGE A Diese Prozedur codiert "Instr" auf den entsprechenden sprachenabhängigen Sortierschlüssel "Outstr" auf der Grundlage der Daten, auf die durch die drei Zeiger Bezug genommen wird. Die Teilprozedur GetAccent packt die codierten Akzentwerte in einen vorübergehenden String "Accentstr", der später an das Ende von "OutStr" angehängt wird. ANLAGE A ANLAGE A
  • ANLAGE B Begriffssammlung
  • Sortieren: Das in diesem Dokument verwendete Wort "Sortieren bezieht sich allgemein hauptsächlich auf die alphabetische lexikalische Ordnung von Zeichen. Der Mechanismus befaßt sich mit Sortierreihenfolgen von Ziffern, Buchstaben und nicht-alphanumerischen Zeichen, mit der Transkription von fremdsprachigen Buchstaben und mit der Akzentpriorität.
  • Sortiercodierung: Ein Codierungsschema, das hauptsächlich auf die Behandlung des "Sortierens" gerichtet ist. Die Operation dient zur Codierung der Worte auf eine Standardform, die zur Sortierung mit üblichen Sortieralgorithmen bereit ist.
  • Nationale Zeichen: Zeichen, die in der Sprache eines Benutzers enthalten sind.
  • Fremdsprachige Zeichen: Zeichen, die nicht in der eigenen Sprache des Anwenders enthalten sind.
  • Akzentpriorität: Eine Priorität wird den Akzenten zugeordnet, wenn die verglichenen Worte sich lediglich durch den Akzent unterscheiden.
  • Transkription: Die Operation der Darstellung der Zeichen eines Alphabetes durch die eines anderen Analphabetes.
  • Zeichen: Ein allgemeiner Ausdruck, der zur Bezugnahme auf einen Buchstaben, eine Ziffer, ein nicht-alphanumerisches Zeichen oder irgendeine Kombination hiervon verwendet wird.
  • Mehrsprachiges Alphabet: Ein Alphabet, das durch die Einigung von fremdsprachlichen und nationalen Zeichen gebildet ist. ANLAGE C Lateinisches Zeichen äquivalent in Sprache ANLAGE D alphanumerische Zeichencodierungstabelle (Sprache I) ANLAGE D ANLAGE E Alphanumerische Zeichencodiertabelle (Sprache 5) ANLAGE E ANLAGE F Accent Priority Akzentprioritäts-Codiertabelle (Sprache 1 und Sprache 5) ANLAGE F ANLAGE G Nicht-alphanumerische Zeichencodiertabelle (Sprache 1 und Sprache 5)

Claims (9)

1. Verfahren zur Vereinfachung des alphabetischen Sortierens von Worten, die auf Zeichen von einem mehrsprachigen Alphabet beruhen, mit einem Rechner, wobei das Verfahren gekennzeichnet ist durch die Schritte der Aufrechterhaltung einer Stammdatei (34) der zu sortierenden Worte und der Schaffung einer Datei (36) für jede zu unterstützende Sprache, wobei die Datei auf die Stammdatei angewandt wird, um die Stammdatei vor der Durchführung des alphabetischen Sortierens zu modifizieren, und wobei die Modifikation die Schritte der Änderung des numerischen Wertes, der den betreffenden Zeichen zugeordnet ist, auf einen numerischen Wert umfaßt, der die Sortierreihenfolge dieses Zeichens für die betreffende Sprache wiedergibt.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Verfahren weiterhin der Schritte der Transkription fremdsprachlicher Zeichen in Zeichen einschließt, die von der betreffenden Sprache unterstützt sind.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Schritt der Transkription auf der geometrischen Ähnlichkeit der Zeichen beruht.
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß der Schritt der Transkription auf der phonetischen Ähnlichkeit der Zeichen beruht.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Zeichen alphanumerische Zeichen sind.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der Schritt der Änderung des den betreffenden Zeichen zugeordneten numerischen Wertes für jedes alphanumerische Zeichen die folgenden Schritte umfaßt:
a) Gleichheitsprüfung des Zeichens mit seinem entsprechenden Eintrag (20) in einer alphanumerischen Codiertabelle (120);
b) Prüfen eines diesem Eintrag entsprechenden Codieranzeigers (21) in der Tabelle, wobei der Codieranzeiger anzeigt, ob der Codiervorgang eine 1-zu-1-Codierung, eine 1-zu-2-Codierung, eine mögliche 2-zu-2-Codierung oder eine 'ignoriere' Codierung sein wird;
c) wenn der Codieranzeiger (21) anzeigt, daß die Codierung 1-zu-1 ist, so wird der Wert des ersten Sortierreihenfolgeneintrages (22), der diesem Eintrag entspricht, als der ausgewählte Wert verwendet, und es erfolgt ein Zugriff auf das nächste Zeichen in dem Codiervorgang;
d) wenn der Codieranzeiger (21) anzeigt, daß die Codierung 1-zu-2 ist, so werden die Werte in sowohl einem ersten Sortierreihenfolgeneintrag (22) als auch einem zweiten Sortierreihenfolgeneintrag (23) entsprechend diesem Eintrag als die ausgewählten Werte verwendet, und es erfolgt ein Zugriff auf das nächste Zeichen in dem Codiervorgang; und
e) wenn der Codieranzeiger (21) anzeigt, daß die Codierung möglicherweise eine 2-zu-2-Codierung ist, so wird der Wert in einem ersten Sortierreihenfolgeneintrag (22), der dem zweiten Zeichen in dem betrachteten Paar entspricht, mit einem zweiten Sortierreihenfolgeneintrag (23) verglichen, der dem ersten Zeichen des Paares entspricht, und wenn der Vergleich zu einer Übereinstimmung führt, so werden der erste Sortierreihenfolgeneintrag (22) und eine dritte Sortierreihenfolge (24), die dem ersten Zeichen in dem Paar entspricht, als die beiden ausgewählten Werte verwendet, während anderenfalls der erste Sortierreihenfolgenwert (22) für das erste Zeichen des Paares ausgewählt wird und das zweite Zeichen des Paares dann als das nächste Zeichen in dem Codierprozeß ausgewählt wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß ein sprachenabhängiger Sortierschlüssel (37) vor der Durchführung des Sortierens aufgebaut wird, und daß die Sortierung auf der Grundlage dieses Sortierschlüssels durchgeführt wird.
8. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der Schritt der Modifikation der Stammdatei in einer vorgegebenen Weise für jedes alphanumerische Zeichen die folgenden Schritte umfaßt:
a) Gleichheitsprüfung des Zeichens mit seinem entsprechenden Eintrag (20) in einer alphanumerischen Codiertabelle (120);
b) Überprüfung eines diesem Eintrag entsprechenden Codieranzeigers (21) in der Tabelle, wobei der Codieranzeiger anzeigt, ob der Codierprozeß eine 1-zu-1-Codierung, eine 1-zu-2- Codierung oder eine 'ignoriere'-Codierung sein wird;
c) wenn der Codieranzeiger (21) anzeigt, daß die Codierung 1-zu-1 ist, so wird der Wert in einem diesem Eintrag entsprechenden ersten Sortierreihenfolgeneintrag (22) als der ausgewählte Wert verwendet, und es erfolgt ein Zugriff auf das nächste Zeichen in dem Codierprozeß;
d) wenn der Codieranzeiger (21) anzeigt, daß die Codierung 1-zu-2 ist, so werden die diesem Eintrag entsprechenden Werte sowohl in einem ersten Sortierreihenfolgen-Eintrag (22) als auch in einem zweiten Sortierreihenfolgeneintrag (23) als die ausgewählten Werte verwendet, und es erfolgt ein Zugriff auf das nächste Zeichen in dem Codierprozeß;
e) wenn der Codieranzeiger (21) anzeigt, daß die Codierung eine 'ignoriere'-Codierung ist, so wird kein Wert ausgewählt und das Verfahren wird mit dem Schritt a) fortgesetzt, bis die Daten sämtlich verarbeitet sind, wobei zu diesem Zeitpunkt das Verfahren gestoppt wird.
9. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß der Schritt des Änderns des den betreffenden Zeichen zugeordneten numerischen Wertes für jedes alphanumerische Zeichen die folgenden Schritte umfaßt:
a) Gleichheitsprüfung des Zeichens mit seinem entsprechenden Eintrag (20) in einer alphanumerischen Codiertabelle (210);
b) Prüfung eines diesem Eintrag entsprechenden Codieranzeigers (21) in der Tabelle, wobei der Codieranzeiger anzeigt, ob der Codierprozeß eine 1-zu-1-Codierung oder eine 'ignoriere'- Codierung ist, oder nicht;
c) wenn der Codieranzeiger (21) anzeigt, daß die Codierung 1-zu-1 ist, so wird der Wert eines diesem Eintrag entsprechenden ersten Sortierreihenfolgeneintrages (22) als der ausgewählte Wert verwendet, und es erfolgt ein Zugriff auf das nächste Zeichen in dem Codierprozeß; und
d) wenn der Codieranzeiger (21) anzeigt, daß die Codierung eine 'ignoriere'-Codierung ist, wo wird kein Wert ausgewählt und das Verfahren wird mit dem Schritt a) fortgesetzt, bis alle Daten verarbeitet sind, wobei das Verfahren zu diesem Zeitpunkt stoppt.
DE3852672T 1987-06-11 1988-05-18 Verfahren zur Vereinfachung des Sortierens mit dem Rechner. Expired - Fee Related DE3852672T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA000539491A CA1265623A (en) 1987-06-11 1987-06-11 Method of facilitating computer sorting

Publications (2)

Publication Number Publication Date
DE3852672D1 DE3852672D1 (de) 1995-02-16
DE3852672T2 true DE3852672T2 (de) 1995-05-11

Family

ID=4135874

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3852672T Expired - Fee Related DE3852672T2 (de) 1987-06-11 1988-05-18 Verfahren zur Vereinfachung des Sortierens mit dem Rechner.

Country Status (5)

Country Link
US (1) US4939639A (de)
EP (1) EP0294950B1 (de)
JP (1) JPS63316231A (de)
CA (1) CA1265623A (de)
DE (1) DE3852672T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004012265B4 (de) * 2004-03-12 2006-05-11 S. Siedle & Söhne Telefon- und Telegrafenwerke OHG Verfahren zum Betreiben einer Türanlage sowie Türanlage

Families Citing this family (156)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3070744B2 (ja) * 1987-04-10 2000-07-31 株式会社日立製作所 ベクトル処理装置
CA1280215C (en) * 1987-09-28 1991-02-12 Eddy Lee Multilingual ordered data retrieval system
US5060146A (en) * 1988-04-08 1991-10-22 International Business Machines Corporation Multilingual indexing system for alphabetical lysorting by comparing character weights and ascii codes
US5225833A (en) * 1989-10-20 1993-07-06 Digital Equipment Corporation Character encoding
US5077669A (en) * 1989-12-27 1991-12-31 International Business Machines Corporation Method for quasi-key search within a national language support (nls) data processing system
US5072386A (en) * 1989-12-27 1991-12-10 International Business Machines Corporation Method for culturally predictable keysort within a national language support (nls) data processing system
US5070456A (en) * 1989-12-27 1991-12-03 International Business Machines Corporation Method for facilitating the sorting of national language keys in a data processing system
JPH0512287A (ja) * 1991-07-09 1993-01-22 Canon Inc 文書処理装置
US5563997A (en) * 1992-11-16 1996-10-08 Canon Kabushiki Kaisha Method and apparatus for sorting records into a list box in a graphic user interface
US5485373A (en) * 1993-03-25 1996-01-16 Taligent, Inc. Language-sensitive text searching system with modified Boyer-Moore process
US5440482A (en) * 1993-03-25 1995-08-08 Taligent, Inc. Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order
US5675818A (en) * 1995-06-12 1997-10-07 Borland International, Inc. System and methods for improved sorting with national language support
US5926815A (en) * 1995-07-27 1999-07-20 James, Iii; J. Colin Binary sort access method and apparatus
US5778213A (en) * 1996-07-12 1998-07-07 Microsoft Corporation Multilingual storage and retrieval
US6243701B1 (en) * 1998-06-29 2001-06-05 Microsoft Corporation System and method for sorting character strings containing accented and unaccented characters
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
US6289509B1 (en) * 1998-09-01 2001-09-11 Pkware, Inc. Software patch generator
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173847A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143199A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155788A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143237A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173848A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) * 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143180A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8645137B2 (en) 2000-03-16 2014-02-04 Apple Inc. Fast, language-independent method for user authentication by voice
US6877003B2 (en) * 2001-05-31 2005-04-05 Oracle International Corporation Efficient collation element structure for handling large numbers of characters
US7130470B1 (en) * 2002-03-15 2006-10-31 Oracle International Corporation System and method of context-based sorting of character strings for use in data base applications
CA2390849A1 (en) * 2002-06-18 2003-12-18 Ibm Canada Limited-Ibm Canada Limitee System and method for sorting data
GB0228942D0 (en) * 2002-12-12 2003-01-15 Ibm Linguistic dictionary and method for production thereof
US7899665B2 (en) * 2004-08-20 2011-03-01 International Business Machines Corporation Methods and systems for detecting the alphabetic order used by different languages
US20060100857A1 (en) * 2004-11-05 2006-05-11 Microsoft Corporation Custom collation tool
US20060101015A1 (en) * 2004-11-05 2006-05-11 Microsoft Corporation Automated collation creation
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US20070239738A1 (en) * 2006-03-29 2007-10-11 Harman Robert M Method and apparatus for sorting character strings having complex characters
AU2006202063B2 (en) * 2006-05-16 2009-03-12 Canon Kabushiki Kaisha Method for navigating large image sets using sort orders
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US10496753B2 (en) 2010-01-18 2019-12-03 Apple Inc. Automatically adapting user interfaces for hands-free interaction
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
WO2010067118A1 (en) 2008-12-11 2010-06-17 Novauris Technologies Limited Speech recognition involving a mobile device
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10553209B2 (en) 2010-01-18 2020-02-04 Apple Inc. Systems and methods for hands-free notification summaries
US10679605B2 (en) 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US10705794B2 (en) 2010-01-18 2020-07-07 Apple Inc. Automatically adapting user interfaces for hands-free interaction
DE202011111062U1 (de) 2010-01-25 2019-02-19 Newvaluexchange Ltd. Vorrichtung und System für eine Digitalkonversationsmanagementplattform
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US8825675B2 (en) 2010-03-05 2014-09-02 Starcounter Ab Systems and methods for representing text
EP2542962B1 (de) * 2010-03-05 2014-07-30 Starcounter AB Systeme und verfahren zur abbildung von text
US20120158337A1 (en) * 2010-12-17 2012-06-21 Anil Singh Method and Integrated System for Improving Data and Service Quality with Respect to Measurement and Analysis of Reservoir Fluid Samples
US10762293B2 (en) 2010-12-22 2020-09-01 Apple Inc. Using parts-of-speech tagging and named entity recognition for spelling correction
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
EP2535802B1 (de) * 2011-06-16 2016-08-10 GN Netcom A/S Computerimplementiertes verfahren zur Anordnung von Textelementen in einer vordefinierten Reihenfolge
US8994660B2 (en) 2011-08-29 2015-03-31 Apple Inc. Text correction processing
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US9483461B2 (en) 2012-03-06 2016-11-01 Apple Inc. Handling speech synthesis of content for multiple languages
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9495129B2 (en) 2012-06-29 2016-11-15 Apple Inc. Device, method, and user interface for voice-activated navigation and browsing of a document
US9576574B2 (en) 2012-09-10 2017-02-21 Apple Inc. Context-sensitive handling of interruptions by intelligent digital assistant
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
KR20240132105A (ko) 2013-02-07 2024-09-02 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US9368114B2 (en) 2013-03-14 2016-06-14 Apple Inc. Context-sensitive handling of interruptions
WO2014144579A1 (en) 2013-03-15 2014-09-18 Apple Inc. System and method for updating an adaptive speech recognition model
AU2014233517B2 (en) 2013-03-15 2017-05-25 Apple Inc. Training an at least partial voice command system
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
US9582608B2 (en) 2013-06-07 2017-02-28 Apple Inc. Unified ranking with entropy-weighted information for phrase-based semantic auto-completion
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
KR101772152B1 (ko) 2013-06-09 2017-08-28 애플 인크. 디지털 어시스턴트의 둘 이상의 인스턴스들에 걸친 대화 지속성을 가능하게 하기 위한 디바이스, 방법 및 그래픽 사용자 인터페이스
EP3008964B1 (de) 2013-06-13 2019-09-25 Apple Inc. System und verfahren für durch sprachsteuerung ausgelöste notrufe
DE112014003653B4 (de) 2013-08-06 2024-04-18 Apple Inc. Automatisch aktivierende intelligente Antworten auf der Grundlage von Aktivitäten von entfernt angeordneten Vorrichtungen
US9620105B2 (en) 2014-05-15 2017-04-11 Apple Inc. Analyzing audio input for efficient speech and music recognition
US10592095B2 (en) 2014-05-23 2020-03-17 Apple Inc. Instantaneous speaking of content on touch devices
US9502031B2 (en) 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US10289433B2 (en) 2014-05-30 2019-05-14 Apple Inc. Domain specific language for encoding assistant dialog
US10078631B2 (en) 2014-05-30 2018-09-18 Apple Inc. Entropy-guided text prediction using combined word and character n-gram language models
US9785630B2 (en) 2014-05-30 2017-10-10 Apple Inc. Text prediction using combined word N-gram and unigram language models
US9842101B2 (en) 2014-05-30 2017-12-12 Apple Inc. Predictive conversion of language input
CN110797019B (zh) 2014-05-30 2023-08-29 苹果公司 多命令单一话语输入方法
US9760559B2 (en) 2014-05-30 2017-09-12 Apple Inc. Predictive text input
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9734193B2 (en) 2014-05-30 2017-08-15 Apple Inc. Determining domain salience ranking from ambiguous words in natural speech
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10789041B2 (en) 2014-09-12 2020-09-29 Apple Inc. Dynamic thresholds for always listening speech trigger
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US9886432B2 (en) 2014-09-30 2018-02-06 Apple Inc. Parsimonious handling of word inflection via categorical stem + suffix N-gram language models
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
US9646609B2 (en) 2014-09-30 2017-05-09 Apple Inc. Caching apparatus for serving phonetic pronunciations
US10552013B2 (en) 2014-12-02 2020-02-04 Apple Inc. Data detection
US9711141B2 (en) 2014-12-09 2017-07-18 Apple Inc. Disambiguating heteronyms in speech synthesis
US9865280B2 (en) 2015-03-06 2018-01-09 Apple Inc. Structured dictation using intelligent automated assistants
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US9899019B2 (en) 2015-03-18 2018-02-20 Apple Inc. Systems and methods for structured stem and suffix language models
US9842105B2 (en) 2015-04-16 2017-12-12 Apple Inc. Parsimonious continuous-space phrase representations for natural language processing
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10127220B2 (en) 2015-06-04 2018-11-13 Apple Inc. Language identification from short strings
US10101822B2 (en) 2015-06-05 2018-10-16 Apple Inc. Language input correction
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US10186254B2 (en) 2015-06-07 2019-01-22 Apple Inc. Context-based endpoint detection
US10255907B2 (en) 2015-06-07 2019-04-09 Apple Inc. Automatic accent detection using acoustic models
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US9697820B2 (en) 2015-09-24 2017-07-04 Apple Inc. Unit-selection text-to-speech synthesis using concatenation-sensitive neural networks
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10296612B2 (en) 2015-09-29 2019-05-21 At&T Mobility Ii Llc Sorting system
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10416959B2 (en) 2015-10-27 2019-09-17 At&T Mobility Ii Llc Analog sorter
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10261832B2 (en) 2015-12-02 2019-04-16 At&T Mobility Ii Llc Sorting apparatus
US10496370B2 (en) 2015-12-02 2019-12-03 At&T Intellectual Property I, L.P. Adaptive alphanumeric sorting apparatus
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3611316A (en) * 1969-12-24 1971-10-05 Ibm Indirect indexed searching and sorting
US4706212A (en) * 1971-08-31 1987-11-10 Toma Peter P Method using a programmed digital computer system for translation between natural languages
US4295206A (en) * 1979-06-06 1981-10-13 Ncr Canada Ltd.-Ncr Canada Ltee Document sorting method
US4425617A (en) * 1981-03-23 1984-01-10 Rca Corporation High-speed data sorter
JPS6028027B2 (ja) * 1981-03-31 1985-07-02 富士通株式会社 韓国語ソ−ト制御方式
US4632578A (en) * 1981-04-03 1986-12-30 Digitext, Inc. Computerized printing system
US4498143A (en) * 1981-11-12 1985-02-05 Stanislaus Strzelecki Method of and apparatus for forming ideograms
JPS6162163A (ja) * 1984-09-03 1986-03-31 Toshiba Corp 日本語ワ−ドプロセツサ装置
US4758979A (en) * 1985-06-03 1988-07-19 Chiao Yueh Lin Method and means for automatically coding and inputting Chinese characters in digital computers
US4731735A (en) * 1985-09-30 1988-03-15 International Business Machines Corporation Multilingual processing for screen image build and command decode in a word processor, with full command, message and help support
US4809158A (en) * 1985-10-23 1989-02-28 Mccauley Peter B Sorting method and apparatus
GB2194084A (en) * 1986-06-27 1988-02-24 Sharp Kk Translation system
US4873625A (en) * 1987-11-17 1989-10-10 International Business Machines Corporation Method and apparatus for extending collation functions of a sorting program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004012265B4 (de) * 2004-03-12 2006-05-11 S. Siedle & Söhne Telefon- und Telegrafenwerke OHG Verfahren zum Betreiben einer Türanlage sowie Türanlage

Also Published As

Publication number Publication date
EP0294950A2 (de) 1988-12-14
US4939639A (en) 1990-07-03
CA1265623A (en) 1990-02-06
EP0294950B1 (de) 1995-01-04
DE3852672D1 (de) 1995-02-16
EP0294950A3 (de) 1991-01-02
JPS63316231A (ja) 1988-12-23

Similar Documents

Publication Publication Date Title
DE3852672T2 (de) Verfahren zur Vereinfachung des Sortierens mit dem Rechner.
DE69710459T2 (de) Identifizierung von wörtern im japanischem text durch ein rechnersystem
DE69400207T2 (de) Sprachabhängiges textvergleichssystem
DE3751276T2 (de) Zergliedergerät für Naturalsprachen.
DE3853894T2 (de) Auf Paradigmen basierende morphologische Textanalyse für natürliche Sprachen.
DE69400869T2 (de) System zum transkribieren von texteingaben
DE3852341T2 (de) Zeichenverarbeitungssystem mit Funktion zur Prüfung von Rechtschreibung.
DE69028592T2 (de) Gerät zur automatischen Generierung eines Index
DE69829389T2 (de) Textnormalisierung unter verwendung einer kontextfreien grammatik
DE2630304A1 (de) Einrichtung zur ueberpruefung der gueltigkeit von alphabetischen eingangszeichen
DE69400276T2 (de) Zeichensatzsystem für texteingabe
DE112005001284B4 (de) Tragbare elektronische Vorrichtung mit Textdisambiguierung
DE112006003659T5 (de) Tragbare elektronische Vorrichtung und Verfahren zum Disambiguieren einer Texteingabe und Vorsehen eines Schreibweiseersatzes
DE112005001283T5 (de) Tragbare elektronische Vorrichtung mit Textdisambiguierung
DE112006003651T5 (de) Tragbare elektronische Vorrichtung und Verfahren zur Disambiguierung einer Texteingabe zur Unterdrückung von künstlichen Varianten mit geringer Wahrscheinlichkeit
DE112005001316T5 (de) Tragbare elektronische Vorrichtung mit Textdisambiguierung
DE112005001282T5 (de) Tragbare elektronische Vorrichtung mit Textdisambiguierung
DE112007000854T5 (de) Tragbare elektronische Vorrichtung, die eine Lernfunktion vorsieht zur Erleichterung einer Korrektur einer fehlerhaften Texteingabe in einer Umgebung eines Textes, der mehrere sequentielle Betätigungen derselben Taste erfordert, und zugehöriges Verfahren
DE10124429A1 (de) System und Verfahren für eine verbesserte Rechtschreibprüfung
DE112007000728T5 (de) Tragbare elektronische Vorrichtung zum Vorsehen einer vorgeschlagenen korrigierten Eingabe als Reaktion auf eine fehlerhafte Texteingabe in einer Umgebung eines Textes, der mehrere sequentielle Betätigungen derselben Taste erfordert, und zugehöriges Verfahren
DE112005001314T5 (de) Tragbare elektronische Vorrichtung mit Textdisambiguierung
DE3853045T2 (de) Verfahren zur Beseitigung von enklitischen Endungen aus Verben in romanischen Sprachen.
DE112005002060T5 (de) Tragbare elektronische Vorrichtung mit Textdisambiguierung
US5488363A (en) Direction code for encoding Chinese characters using English alphabet and inputting method thereof
DE112005002059T5 (de) Tragbare elektronische Vorrichtung mit Textdisambiguierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee