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
Links
- 238000000034 method Methods 0.000 title claims description 58
- 230000008569 process Effects 0.000 claims description 27
- 230000001419 dependent effect Effects 0.000 claims description 15
- 238000013518 transcription Methods 0.000 claims description 11
- 230000035897 transcription Effects 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241000845082 Panama Species 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/274—Converting codes to words; Guess-ahead of partial word inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
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.
- 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
- 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.
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)
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)
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)
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 |
-
1987
- 1987-06-11 CA CA000539491A patent/CA1265623A/en not_active Expired - Fee Related
- 1987-06-15 US US07/061,510 patent/US4939639A/en not_active Expired - Fee Related
-
1988
- 1988-05-18 DE DE3852672T patent/DE3852672T2/de not_active Expired - Fee Related
- 1988-05-18 EP EP88304517A patent/EP0294950B1/de not_active Expired - Lifetime
- 1988-06-10 JP JP63141870A patent/JPS63316231A/ja active Pending
Cited By (1)
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 |