WPC2 2 BVPW 3|H12ptRzNxxx,8x  @U;HP LaserJet II DHPLAIID.PRSx  @h0 uUSCF2 ; WCp0 3|HHP LaserJet II DHPLAIID.PRSXp P;h0 uP2\ /f06(0 H7H=(_H *_H\ /fE  U    Xp P; ѫXp P;XP' `,CG Times 12pt2 2) (S2)XXp P;XP' `,CG Times 12pt2 2) (S2)XH6X@;,@H6X9`(>Courier 16.67cpi Half-height,Xp P;XP' `,CG Times 12pt2 2) (S2)Xws2PXP02A`XXp P;XP' `,CG Times 12pt2 2) (S2)Xws2PXP02A`XXp P;XP' `,CG Times 12pt2 2) (S2)Xws2PXP02A`XXp P ;XP' `,CG Times 12pt2 2) (S2)X2{ {g {]"mu3y^4@@d0LLd0@0ddddddddddd88dĘ|HXxlĘ@d@dd0dlXld@`l84h8llllLL@l\XXXddddtddttddtttt0ttttdtttdtlttdddddИXddddH8H8H8H8lllllllllXdlllXlxldddXXXXldddd``````llHtHtH8HtttXth888D8llllllttLLLlLlLlLlL@@@llllllĈXXXXttl8lLlL@XXlllttttttxWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNtdxtdd@dddddHHdtW4,X0Xt4 P];>tW4,X|)Xt4 p;>pT4,)XuXp4 X*;m2HHH,B߀H|@;Zm[ddd,V#d  @];m[ddd,dd  `;m[ddd,w d  H*;Bi)L9$,׈L4 P};CFFR   Titre XX` !ISO/CEI DT4.3 14651 Classement international de cha3nes de caract/res M)thode de comparaison de cha3nes de caract/res et description d'un ordre implicite adaptable pour les cha3nes de caract/res utilisant le r)pertoire (ou des sousr)pertoires) de la norme internationale ISO/CEI 10646(#` XX` !(#` XX` ![ISO/IEC WD4.3 14651 International String Ordering Method for comparing Character Strings and Description of a Default Tailorable Ordering, for Characters Strings Using the repertoire (or subrepertoires) of ISO/IEC 10646](#`  Statut: XDocument de travail version 4.3 pour commentaires par les membres du SC22/GT20 avant la rencontre ! Kyoto en avril 1996.(# Date: X19960318(# Projet:X 22.30.02.02(# R)dacteur: ` !Alain LaBont)(#` XX` !Gouvernement du Qu)bec(#` XX` !Secr)tariat du Conseil du tr)sor(#` XX` !Service de la prospective et de la francisation(#` XX` !875, GrandeAll)e Est, 4C(#` XX` !Qu)bec, QC G1R 5R8(#` XX` !Canada(#` ` !GUIDE SHARE Europe XX` !SCHINDLER Information AG(#` XX` !CH6030 Ebikon (Berne)(#` XX` !Suisse(#` Email: Xalb@sct.gouv.qc.ca(#  \ AVANTPROPOS LISO (Organisation internationale de normalisation) et la CEI (Commission )lectrotechnique internationale) constituent les organismes sp)cialis)s de la normalisation au niveau mondial. Des organismes nationaux membres de l'ISO ou de la CEI participent au d)veloppement des normes internationales par l'entremise de comit)s techniques. Ces comit)s sont form)s par les organisations pour agir dans des champs d'int)r+t mutuel. En accord avec l'ISO et la CEI d'autres organismes internationaux, gouvernementaux et non gouvernementaux, prennent aussi part ! ce travail. Dans le domaine des technologies de l'information, l'ISO et la CEI ont )tabli un comit) technique conjoint connu sous le nom de ISO/CEI JTC1. Des )bauches de normes internationales adopt)es par le comit) technique sont soumises aux organismes nationaux pour approbation. Afin d'+tre publi)e, une norme internationale doit avoir obtenu au moins 75% des votes des organismes nationaux. La norme internationale ISO/CEI 14651 a )t) pr)par)e par le Comit) technique conjoint ISO/CEI JTC1, Technologies de l'information. INTRODUCTION Un m)canisme international de classement normalis) ne fournit pas de solution ! toutes les situations. Un tel m)canisme a pour objectif de corriger les erreurs pass)es oI l'on comparait seulement les codes binaires des caract/res. Les anciennes m)thodes ne respectaient pas la culture. L'anglais peut, ! la limite, +tre consid)r) comme une exception, si lon consid/re que seules les donn)es alphab)tiques en majuscules )taient utilis)es sans inclure la ponctuation ni les espaces. Ceci est un des principaux d)fauts affectant la portabilit) entre les pays et entre applications. (Habituellement, les divers programmes et logiciels effectuent diverses corrections). Il devient imp)ratif de confectionner un m)canisme de classement implicite adaptable (une m)thode accompagn)e d'une table unique). Ce m)canisme devra constituer un outil acceptable et compr)hensible pour les utilisateurs de diff)rentes langues. De plus, les applications plus simples pourront utiliser ce m)canisme sans modification. Naturellement, un m)canisme de modification est inclus dans le mod/le. Ce m)canisme s'adaptera aux langues particuli/res avec un minimum de modifications. Prenons par exemple les langues latines: l'espagnol et le scandinave verront quelques lettres changer de position par rapport ! l'ordre utilis) dans la plupart des langues europ)ennes utilisant l')criture latine. De plus, un changement complet de l'ordre dune langue pourrait +tre souhait) par rapport ! une autre langue, par exemple, pour que le tha5 passe avant le latin, et ainsi de suite. En outre, certains besoins linguistiques sp)cifiques ne peuvent +tre satisfaits sans conna3tre le contexte. Par exemple, les noms japonais exprim)s en kanji ne peuvent +tre compris par le seul ordre phon)tique. Ces noms n)cessitent des champs multiples. Dans ' une base de donn)es japonaise, un nom propre kanji est associ) ! une repr)sentation phon)tique cach)e dans un autre champ. Cette association permet une classification dans le bon ordre. Sans elle, la duplication des )l)ments peut devenir n)cessaire afin de permettre la recherche humaine d'un nom propre dans une liste en l'absence de ces autres champs. Ceci est particuli/rement vrai dans les pays ou organisations multilingues. Par exemple, l')l)ment 4  pourrait +tre transform) phon)tiquement pour permettre sa classification. Ceci n)cessite que l')l)ment soit r)p)t) ! plusieurs reprises. Chaque r)p)tition est une transformation pour classement en ordre phon)tique (par exemple, QUATRE , FOUR  et VIER  en fran'ais, anglais et allemand). De cette mani/re, un utilisateur pourrait extraire l')l)ment 4  de la liste sous les lettres Q , F  et V  selon le besoin. Pour satisfaire ces besoins, la m)thode de classement et de comparaison qui nous int)resse est incluse dans un mod/le plus g)n)ral. Ce mod/le g)n)ral est aussi d)crit dans la norme internationale. Il permet le tri sur champs multiples ainsi que des )tapes de classification pr) et posttraitement. La pr)sente m)thode de classement permet ce haut niveau de traitement. De fa'on plus sp)cifique, les )tapes de pr) et posttraitement pourraient +tre nulles. De plus, dans les applications les plus simples, un seul champ pourrait +tre tri). Dans de tels cas, un classement direct, qui serait valide pour la majorit) des utilisateurs n'ayant pas besoin de classification sp)cialis)e, pourrait +tre op)r). L'ordre utilis) dans un dictionnaire lexicographique typique pour une langue donn)e est un exemple de ce type. On suppose que l'ordre lexicographique est un ordre acceptable culturellement afin qu'un public g)n)ral, et m+me constitu) de sp)cialistes, puisse l'utiliser sans erreur. Pour simplifier les choses, le pr)sent ordre implicite adaptable d)crira le classement de donn)es textuelles de mani/re ind)pendante du contexte. La m)thode sera acceptable culturellement pour la majorit) des environnements (avec possibilit) d'adaptation aux situations plus locales). Il est )vident que le classement n'est pas limit) au programme de tri. Le classement n)cessite que la comparaison de cha3nes de caract/res soit red)finie de fa'on logique ! l'aide d'un moteur de comparaison. Ce moteur sera utilis) par les processus de comparaison, tri, recherche, combinaison et fusion des caract/res graphiques. Ce moteur sera d)crit dans la pr)sente norme internationale. La conception de cette norme internationale se base sur le fait que les anciens syst/mes ont la possibilit) d'int)grer un classement valable culturellement avec un minimum de changements. Ainsi, le moteur de base ne fonctionnera pas sur une cha3ne de caract/res graphiques, mais bien sur une cha3ne binaire simple dans laquelle la cha3ne textuelle aura d'abord )t) r)duite. Ceci permettra des comparaisons num)riques m)caniques et directes. Les donn)es num)riques peuvent +tre repr)sent)es de deux fa'ons. Le premier type de repr)sentation est externe, et vise les caract/res graphiques tels quils peuvent +tre lus par un humain. Le deuxi/me type est interne, et est plus ad)quat pour les traitements ' ! haute vitesse. Pour cette raison, les langages de programmation d)finissent des types de donn)es pour le traitement des nombres (habituellement plus d'un type). De cette fa'on, les programmeurs n'ont pas besoin de proc)der ! une analyse syntaxique des caract/res graphiques avant de proc)der au traitement num)rique. Une analyse non normalis)e constitue une grande cause d'erreurs, complique la programmation et ne permet pas d'atteindre les objectifs de coh)rence g)n)rale requise entre diff)rentes applications. Les comparaisons de caract/res )tant d)j! assez complexes, il n'est pas souhaitable que les programmeurs soient impliqu)s dans une analyse syntaxique compliqu)e pour ce faire. Ceci refl/te pourtant la situation qui existait avant que la pr)sente norme internationale ne soit con'ue. Le moteur de comparaison de donn)es textuelles d)crit dans cette norme internationale s'applique ! une structure interne r)sultant de l'analyse syntaxique d'une cha3ne originale ! comparer. L'analyse est effectu)e suivant une description formelle des conventions culturelles de classement. La d)finition de ce moteur implique que les prochaines versions de langages de programmation d)finiront de nouveaux types de donn)es. Il est souhaitable qu'au moins un type de donn)e existe, dans chaque langage, pour traiter les comparaisons de cha3nes de caract/res graphiques et ne soit pas limit) ! l')galit) absolue. Un langage de programmation peut d)finir ces types de donn)es comme contenants formels. Ces contenants repr)sentent des cha3nes de caract/res pouvant +tre trait)es de fa'on interne, directement et ind)pendamment des caract/res graphiques cod)s. De cette fa'on, le programmeur sera lib)r) des processus d'analyse syntaxique. La portabilit) des applications entre diff)rents pays de cultures diff)rentes sera am)lior)e parce que les applications seront con'ues de fa'on g)n)rique. De plus, la structure partiellement trait)e qui refl/te un tel type de donn)e peut +tre conserv)e et r)utilis)e dans un environnement culturel donn), ce qui am)liore ainsi la performance des applications. Ceci permettra en outre de prolonger la vie des applications existantes avec un minimum de modifications. La r)utilisation de cette structure )viterait de devoir faire effectuer l'analyse syntaxique par des )quipements externes (souvent anciens) de comparaison binaire (tels que les m)canismes de recherche sur disque rigide, ou les m)thodes d'acc/s con'ues il y a longtemps, que les concepteurs ne veulent pas r))crire ! cause de leur grande efficacit)). Cette caract)ristique est un sousproduit )conomique non n)gligeable de cette norme internationale: lorsqu'une cha3ne de caract/res a )t) analys)e syntaxiquement pour un environnement donn), elle n'a pas besoin d'+tre analys)e de nouveau. En fait, comme pour les nombres, la repr)sentation graphique des caract/res n'a pas ! +tre utilis)e tant que les donn)es ne sont pas pr)sent)es ! l'utilisateur. Ceci entra3ne la r)versibilit) du processus en plus de garantir la pr)visibilit) des op)rations de comparaison. Si deux cha3nes )quivalentes ne sont pas absolument )gales, elles doivent +tre diff)renci)es. Ainsi, un programme de tri, l'application la plus simple oI lordre de classement est important, obtiendra toujours le m+me r)sultat.  'Ԍ Tutoriel des probl/mes r)solus par cette norme Pourquoi les codages en soi, les comparaisons caract/re par caract/re et les programmes de tri commerciaux ne sontils pas appropri)s au tri et qu'estce qui doit +tre fait pour r)soudre ce probl/me? Dans un souci de clart), cette discussion commencera avec l')criture latine. i.XEn utilisant le codage de la norme ISO 646, le tri, dans toutes les langues utilisant l')criture latine, incluant l'anglais, ne produit pas la s)quence traditionnelle du dictionnaire, ce qui est le minimum qu'un utilisateur moyen est en droit d'attendre.(# XPar exemple: trier la liste august , August , container , coop , co-op , Vice-president , Vice versa  donne le r)sultat suivant, si on utilise le codage de la norme ISO 646 et quun tri simple est effectu) sur les valeurs binaires:(# XX` !August(#` XX` !Vice versa(#` XX` !Vice-president(#` XX` !august(#` XX` !co-op(#` XX` !container(#` XX` !coop(#` Xce qui est )videmment erron).(# ii.XEn transformant les minuscules en majuscules et en enlevant les caract/res sp)ciaux, on obtient une liste plus acceptable, bien qu'impr)visible.(# XPar exemple: trier la liste August , august , coop , co-op  donne le r)sultat suivant:(# XX` !August(#` XX` !august(#` XX` !coop(#` XX` !co-op(#` XTrier la m+me liste ! partir d'un ordre initial diff)rent, soit par exemple, august , August , co-op , coop  donne un r)sultat diff)rent du pr)c)dent, soit:(# XX` !august(#` XX` !August(#` XX` !co-op(#` XX` !coop(#` iii.XSi on inclut les caract/res accentu)s, en utilisant par exemple le codage de la norme ISO 8859-1, les probl/mes rencontr)s dans les )tapes i et ii sont amplifi)s ' bien qu'ils partagent les m+mes causes.(# iv.XSi les tables sont r)organis)es pour rendre contigus tous les caract/res similaires, on pourrait s'attendre ! une simplification du tri par caract/re, mais ceci ne fonctionne pas non plus. Prenons, par exemple, les lettres non accentu)es en minuscules et en majuscules. Si le code 01 est attribu) ! a , le code 02 attribu) ! A , le code 03 ! b , le code 04 ! B  et ainsi de suite, voyons les r)sultats obtenus par un tri effectu) avec de telles valeurs:(# XX` !ListeX& )Valeur(# XX` !tri)eX& )interne(# XX` !aaaaX% )01010101(# XX` !abbbX% )01030303(# XX` !AaaaX% )02010101(# XX` !AbbbX% )02030303(# XCe r)sultat est pr)visible, mais )videmment erron) dans tous les pays du point de vue culturel.(# v.XLa seule solution possible r)side dans la d)composition des donn)es initiales tout en respectant l'ordre lexicographique traditionnel et en assurant une pr)visibilit) absolue. Dans l')criture latine, ceci n)cessite au moins quatre niveaux de d)composition:(# X1. Le premier niveau de d)composition permet de rendre l'information ! trier ind)pendante de la casse et des signes diacritiques en plus d')liminer les caract/res n'ayant aucun ordre pr))tabli dans quelque culture que ce soit.(# XUn exemple en anglais:(# XX` ! r)sum)  (mot anglais d)riv) du fran'ais ayant une signification tout ! fait diff)rente) devient resume , sans accent.(#` XUn exemple en fran'ais:(# XX` ! Vice-l)gation  devient vicelegation , sans accent, majuscule ou tiret.(#` XUn exemple en allemand:(# XX` ! gro  devient gross , le s dur  )tant converti en un double s  pour le rendre ind)pendant de la hauteur de casse.(#` XEn espagnol ou dans les langues scandinaves, quelques lettres sont ajout)es aux 26 lettres fixes de l'alphabet anglais, fran'ais et allemand, qui ne sont pas dans le m+me ordre que pour ce groupe de langues. Ceci n)cesite des adaptations.(#  'ԌX2. Le deuxi/me niveau de d)composition diff)rencie les quasihomographes, cha3nes qui diff/rent seulement par leurs signes diacritiques. Dans l'exemple anglais qui pr)c/de, resum)  et r)sum)  sont des quasihomographes. L'ordre lexicographique traditionnel implique que resume  vienne toujours avant r)sum)  (ce que le tri n'utilisant que le premier niveau de d)composition ne garantit pas). Dans ce cas, la tradition n'indique pas si resum)  (une autre orthographe) doit venir avant r)sum) , ce qui semblerait logique: les dictionnaires anglais et allemands stipulent seulement que les mots non accentu)s pr)c/dent les mots accentu)s.(# XUne autre caract)ristique est introduite ici. En fran'ais, comptetenu du grand nombre de quasihomographes multiples (groupes de plus de deux quasihomographes), les principaux dictionnaires suivent la r/gle suivante: les accents sont ignor)s lors du tri sauf dans les cas d')galit) homographique. Dans ces cas, la derni/re diff)rence d)termine l'ordre correct de deux mots, une priorit) diff)rente )tant attribu)e ! chaque type d'accent. Par exemple, cot)  devrait +tre plac) apr/s c=te  mais avant c=t) . Ceci est facile ! implanter: un nombre est attribu) ! chaque caract/re des mots ! trier, repr)sentant soit un accent ou l'absence d'accent. Ces nombres sont empil)s au lieu d'+tre concat)n)s. En d'autres mots, la cha3ne r)sultante est confectionn)e ! partir du dernier caract/re du mot ! trier jusqu'au premier.(# XPar exemple, pour obtenir l'ordre suivant, en respectant cette r/gle: cote , c=te , cot) , c=t) , des nombres pourraient +tre attribu)s indiquant respectivement: **** , **c* , a*** , a*c* , oI *  signifie sans accent, a  un accent aigu et c  un accent circonflexe. Cette proc)dure est suffisante pour diff)rencier correctement les mots ! ce niveau de d)composition.(# X3. Le troisi/me niveau de d)composition diff)rencie les quasihomographes dont la seule diff)rence r)side dans la hauteur de casse. Dans les dictionnaires anglais et allemands, il est bien )tabli que les homographes utilisant le bas de casse pr)c/dent leurs )quivalents utilisant le haut de casse. Par ailleurs, dans les dictionnaires fran'ais, qui n'utilisent g)n)ralement que des lettres de haut de casse accentu)es pour les noms communs, la tradition n'est pas bien )tablie. Dans les encyclop)dies fran'ais oI les majuscules c=toient les minuscules, les majuscules viennent g)n)ralement en premier, bien que ceci ne soit pas une r/gle )tablie, puisqu'il y a de nombreuses exceptions. Par d)faut, il est donc recommand) d'utiliser la tradition anglaise et allemande, si l'on veut regrouper le plus grand nombre de langues. Notons qu'au Danemark, les lettres de haut de casse passent avant celles de bas de casse, ce qui constitue une r/gle diff)rente mais bien )tablie. Encore une fois, il faut adapter la norme propos)e.(# XPar exemple: pour obtenir l'ordre suivant: august , August , des nombres pourraient +tre attribu)s r)sultant respectivement en bbbbbb  et hbbbbb , oI b  signifie bas de casse et h  haut de casse.(#  'Ԍ X4. Le quatri/me niveau de d)composition brise les derni/res )galit)s entre quasihomographes qui ne diff/rent que par la pr)sence de caract/res sp)ciaux. Cette diff)renciation est essentielle pour assurer la pr)visibilit) absolue des tris et pour trier des cha3nes compos)es uniquement de caract/res sp)ciaux. Puisque toute trace des caract/res sp)ciaux est disparue dans les trois premiers niveaux de d)composition, aligner ces caract/res sp)ciaux dans le quatri/me niveau de d)composition signifierait que leur position soit perdue. Cette position est tr/s importante pour r)soudre les )galit)s restantes. Nous devons donc retenir les positions originales de ces caract/res sp)ciaux. Deux quasihomographes pourraient contenir un caract/re sp)cial dans des positions diff)rentes et ainsi +tre diff)rents (e.g. ab*cd  est diff)rent de a*bcd  malgr) que ces deux cha3nes ne poss/dent qu'un seul caract/re sp)cial en commun).(# XPar exemple, pour obtenir l'ordre suivant: coop , co-op , coop- , des nombres pourraient +tre attribu)s ! chaque donn)e selon le mod/le suivant: d , d3-  and d5- , oI d  est un d)limiteur toujours pr)sent s)parant cette d)composition des pr)c)dentes, dans les cas oI les quatre niveaux de d)composition sont concat)n)s pour former une cl) de tri simple bas)e sur les valeurs num)riques (voir ! ce sujet la discussion du prochain paragraphe). 3-  indique la pr)sence d'un tiret en position 3 de la cha3ne originale, 5-  un tiret en position 5 et ainsi de suite.(# XCes quatre niveaux de d)composition peuvent +tre structur)s en utilisant une cl) ! quatre niveaux. Cette cl) sera constitu)e par la concat)nation des souscl)s de la plus haute importance ! la plus basse. Si le codage des nombres attribu)s est fait correctement, les homographes ne constitueront pas des exceptions. Toutes les d)compositions pourront +tre faites d'un seul coup et les cha3nes r)sultantes pourront +tre soumises ! un programme de tri standard. Pour ce faire, il est suffisant que les nombres choisis pour le premier niveau de d)composition soient plus grands que les nombres choisis pour le second niveau, ceuxci )tant plus grands que les nombres du troisi/me niveau et enfin que le d)limiteur choisi pour le quatri/me niveau de d)composition soit plus petit que le plus petit nombre possible des autres niveaux (ce d)limiteur )tant appel) un z)ro logique). Dans ce cas, aucune restriction ne s'appliquera sur le contenu du quatri/me niveau de d)composition. Un mode d'implantation encore plus facile consisterait ! choisir la plus basse valeur possible comme d)limiteur entre chaque souscl), auquel cas aucune restriction ne s'appliquerait sur les nombres ! choisir pour chaque niveau de d)composition.(# XCette m)thode a )t) d)crite en d)tails (avec tables ! lappui) pour la premi/re fois dans R/gles du classement alphab)tique en langue fran'aise et proc)dure informatis)e pour le tri , Alain LaBont), Minist/re des communications du Qu)bec, 19 aoEt 1988, ISBN 2-550-19046-7.(# XDes techniques de r)duction ont )t) con'ues pour diminuer consid)rablement l'espace de stockage requis pour la d)composition. Comme aucune obligation ' n'existe d'utiliser des nombres normalis)s et que le processus ne n)cessite ni r)duction ni compression, ce point (#  Xn'est pas couvert dans cette norme bien qu'il soit int)ressant de noter que limplantation peut en +tre optimis)e. De telles m)thodes ont d)j! )t) d)velopp)es avec le temps et sont hautement r)alisables.(# XUne technique de r)duction du domaine public est d)crite en d)tail (accompagn)e de nombreux exemples) dans Technique de r)duction - Tris informatiques ! quatre cl)s , Alain LaBont), Minist/re des communications du Qu)bec, Juin 1989, ISBN 2-550-19965-0.(# vi.XPour un certain nombre de langues, les donn)es pr)sent)es dans cette norme devront +tre adapt)es, autant pour la table des valeurs attribu)es aux quatre cl)s que pour le processus d'analyse du contexte potentiel n)cessaire ! l'obtention de r)sultats corrects du point de vue culturel pour les utilisateurs de ces langues. Pour clarifier ceci, des exemples de s)quences de dictionnaires sont donn)s ici pour deux langues dont l'ordre n'est pas inclus dans la table:(# XEspagnol traditionnel (noter que ch  est plus grand que cu  et 9a  est plus grand que no ):(# XX` !cuneo. Les occurrences de xxxx suivant la lettre U  repr)sentent la valeur hexad)cimale d'un caract/re cod) tel que d)finie dans la norme ISO/CEI 10646. C'est un moyen d'obtenir l'ind)pendance du code (la m+me valeur pouvant +tre utilis)e m+me si l'ensemble des caract/res cod)s n'est pas conforme ! la norme ISO/CEI 10646). C'est aussi un moyen de conserver un lien direct avec le jeu universel de caract/res cod)s sur plusieurs octets, consid)r) comme incluant tous les caract/res graphiques cod)s d)finis par les normes de l ISO/CEI. Lorsque possible, dans la table de classement, des glyphes seront utilis)s en commentaires avec la d)finition des indices de classement de chacun des caract/res. Ceci permettra une meilleure compr)hension de ce que repr)sente chacun des caract/res. La lettre U repr)sente ladjectif  universel , dans lexpression  jeu universel de caract/res cod)s sur plusieurs octets  (JUC). Les descriptions collatingsymbol  contiennent une d)claration des symboles utilis)s comme valeurs interm)diaires pour: X` hp x (#%'0*,.8135@8:, qui est ordonn)e au dernier niveau, soit ex)cut)e s)par)ment. Ceci )vitera des collisions )ventuelles avec des niveaux additionnels. Il est fortement recommand) de limiter ! quatre le nombre des niveaux, le quatri/me )tant le niveau r)serv) aux caract/res sp)ciaux. C'est le seul moyen d'assurer qu'il n'y aura pas de collision. Autrement, le concepteur d'application devra faire preuve de prudence et de r)flexion, le minimum )tant que les caract/res sp)ciaux soient trait)s au dernier niveau.(# 5.3.1.1 Section de la table et propri)t)s du traitement XLa table est d)coup)e en sections, une pour chaque )criture. Un nombre s)quentiel est attribu) ! chaque section, correspondant ! son ordre d'apparition. L'ent+te de chaque section est titr)e symboliquement pour plus de clart). Le titre d)crit les propri)t)s de transformation pour chaque niveau de ce syst/me d)criture. Ces propri)t)s sont adapt)es aux particularit)s de l')criture en relation avec le processus de classement.(# XUne des possibilit)s d'adaptation consiste ! changer l'ordre relatif d'une )criture par rapport aux autres )critures. Le d)coupage de la table en sections titr)es facilite cette op)ration en plus de d)crire les propri)t)s de l')criture.(# XLa direction du balayage (de la gauche vers la droite [vers l'avant] ou de la droite vers la gauche [vers l'arri/re]) utilis)e pour traiter la cha3ne ! chaque niveau est une propri)t) de chaque )criture. Cette propri)t) peut +tre chang)e selon la langue. L'article 5.5 d)crit l'ajustement.(# 'Ԍ XUne autre propri)t) permet d'effectuer une comparaison sur les valeurs num)riques repr)sentant la position de chaque caract/re de deux cha3nes, avant de comparer les poids attribu)s aux caract/res.(# XNote : La direction du balayage (vers l'avant ou l'arri/re) n'est pas reli)e ! la direction naturelle d'une )criture. Cette direction ne s'applique qu'! l'ordre de traitement en relation avec la s)quence logique de la cha3ne de caract/res cod)s.(# XSelon la norme ISO/CEI 10646, pour les )critures )crites de la droite vers la gauche, tel l'arabe, les positions les plus basses dans la s)quence logique des caract/res correspondent aux caract/res les plus ! droite de la cha3ne (du point de vue de leur s)quence naturelle de pr)sentation).  l'inverse, pour les )critures latines, )crites de la gauche vers la droite, les positions les plus basses dans la s)quence logique des caract/res correspondent aux caract/res les plus ! gauche de la cha3ne (du point de vue de leur s)quence naturelle de pr)sentation).(# XEn cons)quence, un balayage de la gauche vers l'avant commence aux positions les plus basses dans la s)quence logique, alors que le balayage vers l'arri/re commence aux positions les plus hautes.(# XPour expliciter d'avantage ce point, ajoutons que dans la norme ISO/CEI 10646, l'arabe est artificiellement s)par) en deux )critures: l'arabe intrins/que, logique, cod) ind)pendamment de sa forme, et les formes de pr)sentation. Ces deux )critures permettent de coder compl/tement l'arabe, mais l'arabe intrins/que est normalement pr)f)r) pour le traitement, alors que l'autre forme est pr)f)r)e pour les applications orient)es vers la pr)sentation.(# XL'arabe intrins/que est cod) dans l'ordre logique, alors que les formes de pr)sentation sont cod)es dans l'ordre de pr)sentation. Le premier est d)crit dans la table sous le titre , pour le codage normal appel) arabe intrins/que. Le second est d)crit sous le titre , pour les formes. Les propri)t)s de balayage de ces deux sections artificielles diff/rent, le premier )tant balay) de la gauche vers la droite, le second de la droite vers la gauche, pour les trois premiers niveaux de comparaison.(#  5.3.2 Composition des cl)s   X ` hp x (#%'0*,.8135@8: sont ignor)s dans les niveaux 1 ! 3. La d)finition de ces caract/res peut +tre adapt)e de fa'on ! inclure certains caract/res d'un autre alphabet. L')criture est le premier ! +tre d)fini dans la table implicite. Il contient les caract/res sp)ciaux qui ne font pas strictement partie d'une langue naturelle particuli/re; par exemple, les pictos  de la norme ISO/CEI 10646 ou la ponctuation de la plupart des )critures.A#! X!Les propri)t)s de balayage pour le niveau i n)cessitent un contr=le soign). Lorsqu'il y a un changement dans la direction du balayage au niveau i et que la nouvelle direction est vers l'arri/re, l'empilage des indices se fera ! la position oI le changement de direction s'est produit. Dans ces cas, l'application doit retenir la position actuelle dans la souscl) i de sortie comme position d (position de dessus de pile).A#! !y )19!y )19X!Selon la direction de balayage, attribu)e au niveau i de l')criture dont l'identification correspond au caract/re ! traiter, l'indice obtenu est soit ajout) (concat)n)) ! la fin de la souscl) i (se comportant comme une liste) ou plac)e ! la position d de la souscl) i (qui se comporte alors comme une pile). La souscl) i est vide au d)part.A#! X!Ceci est l')quivalent du balayage vers l'arri/re ou vers l'avant de la cha3ne d'entr)e pour ce niveau. Cette propri)t) de direction de balayage est donn)e pour chaque niveau de chaque )criture et est une propri)t) de l')criture. Les ent+tes de ' chaque )criture donnent, pour chaque niveau, la propri)t) de direction de balayage pour cette )criture.A#! X!Normalement, dans les )critures alphab)tiques (et dans la table implicite), les niveaux repr)sentent la d)composition suivante pour chaque caract/re:A#! X!niveau 1:" *niveau de base de chaque )criture. Si l')criture est alphab)tique, ce niveau correspond aux lettres de base de son alphabet. Dans le cas d'une )criture id)ographique ou syllabique, ce niveau correspond aux caract/res de cette )criture;A# X!niveau 2:" *niveau correspondant aux signes diacritiques affectant chaque caract/re de base de l')criture. Pour certaines )critures, les signes diacritiques font partie int)grale des lettres de base de l'alphabet et ne sont donc pas consid)r)es ! ce deuxi/me niveau, mais au premier. Par exemple, N TILDE en espagnol est consid)r) comme une lettre de base de l')criture latine. L'adaptation ! l'espagnol modifiera donc la d)finition de N TILDE de la fa'on suivante: dans les tables implicites, le N TILDE a le poids d'un N au premier niveau et le poids d'un tilde au deuxi/me niveau; en espagnol, le N TILDE a le poids d'un N TILDE (plac) entre N et O) au premier niveau et il y a une marque dabsence de poids diacritique au deuxi/me niveau;A# X!niveau 3:" *niveau correspondant ! la hauteur de casse ou aux variations de forme des caract/res affectant les caract/res de base de l')criture.A# X!5.3.2.3 Formation de la souscl) de niveau m (m=4 dans la table implicite) A#! X!Lors du balayage vers l'avant de chaque caract/re de la cha3ne de caract/res d'entr)e, une paire d'indices est concat)n)e ! la souscl) de niveau m . Le premier indice de la paire correspond ! la position logique du caract/re dans la cha3ne de caract/res trait)e. Le deuxi/me indice de la paire correspond ! la valeur attribu)e ! ce caract/re au niveau m de la table. Lorsque le caract/re n'est pas d)fini au niveau m de la table, il est ignor) pour la formation de la souscl) de niveau m et aucune paire n'est concat)n)e. La paire d'indices est concat)n)e imm)diatement ! la fin de la souscl) de niveau m . La souscl) de niveau m est vide au d)part.A#! X!Ce niveau repr)sente le niveau commun ! tous les syst/mes d)criture. Dans cette norme, ce niveau est luim+me consid)r) comme le premier syst/me )criture (sous l'ent+te ). La propri)t) de ce niveau est positionnelle de fa'on absolue. Ceci signifie que la valeur num)rique de la position dans la cha3ne initiale a priorit) sur le poids attribu) au caract/re sp)cial occupant cette position. Ceci signifie que la souscl) de niveau m est compos)e d'une paire de valeurs pour chacun des caract/res (la cha3ne de caract/res )tant toujours balay)e de la gauche vers la droite dans la s)quence logique de la cha3ne). La premi/re valeur ' de la paire correspond ! la position s)quentielle du caract/re dans la cha3ne d'entr)e. La deuxi/me valeur de la paire correspond au poids attribu) au caract/re selon le niveau m dans l')criture .A#! X!Dans la table, ce comportement est d)crit en utilisant le couple de param/tres forward, position . Pour +tre conforme avec cette norme, le couple de param/tres backward, position  ne doit jamais +tre pr)cis) pour le niveau m . Ces deux param/tres doivent +tre consid)r)s comme mutuellement exclusifs.A#! X!Dans la table implicite, la premi/re )criture (sous l'ent+te ) comprend les caract/res qui ne sont pas consid)r)s comme faisant partie de l'ensemble des caract/res des autres )critures par exemple, les caract/res sp)ciaux comme ESPACE, TIRET et les pictos  de la norme ISO/CEI 10646.A#! X!Dans la table implicite, les d)finitions des ces caract/res pour les niveaux 1 ! 3 sont tels qu'ils sont ignor)s ! ces niveaux et les valeurs sont attribu)es exclusivement au niveau m (m )tant )gal ! 4 dans la table implicite).A#! X!A#!  X!5.3.2.4 Formation de la souscl) de niveau 5 A#! X!Cette section a )t) retir)e des versions de travail pr)c)dentes. Elle avait pour objectif le traitement de la combinaison dynamique des caract/res. Il y a des solutions plus statiques qui n)cessiteraient une adaptation, si jamais le SC22 d)sirait d)passer le niveau 1 de conformit) avec la norme ISO/CEI 10646.A#!  X!5.3.2.5 Posttraitement A#! X!L')tape de posttraitement fait partie de la formation d'une cl) de comparaison binaire. Lorsque la cl) binaire a )t) form)e ! partir des donn)es de la table de classement, l')tape de posttraitement doit +tre d)clench)e (voir une discussion sur les objectifs potentiels d'une telle )tape dans l'annexe B). Le r)sultat de l')tape de posttraitement doit +tre retourn) en tant que souscl) de niveau m1.A#! 5.4 Formation de table Les tables 1 ! 4 sont form)es ! partir de la formalisation de donn)es LC_COLLATE d)crite dans les paragraphes qui suivent. Chaque d)finition implicite d')l)ment textuel contient quatre valeurs pr)cises. Chaque valeur correspond ! un indice utilis) de fa'on interne. 5.5 Table implicite  L'annexe normative 1 donne la table de classement implicite internationale utilis)e comme mod/le pour adapter les applications ! +tre localis)es qui utilisent le r)pertoire complet de la norme ISO/CEI 10646 (jeu universel de caract/res cod)s sur plusieurs octets).  'Ԍ 6. Conformit) X!Une application conforme ! la pr)sente norme internationale doit respecter toutes les prescriptions de la section 5 de ce document.A#!  L 7. Texte provisionnel sur la formalisation des donn)es incomplet ! +tre retir))  Rappel:y !Extrait de l'article 1 Domaine d'application (pour expliquer que 7.1, 7.2 et l'annexe H seront retir)es)A#y X!Note : [7.1, 7.2 et l'annexe H] seront retir)s; [...] le SC22/GT20 na plus l'intention de d)crire la formalisation des donn)es dans la norme actuelle; d/s que le CD 14652 sera harmonis) avec la syntaxe utilis)e dans la pr)sente norme, les descriptions qui restent dans cette derni/re seront remplac)es par une r)f)rence normative. Il est donc possible que quelques )l)ments de formalisation de donn)es demeurent, incomplets, dans le pr)sent document de travail qui d)finit:A#! X! Xy !une formalisation de donn)es pour la description des tables de classement,A#y X! Xy !une formalisation )tendue facilitant ladaptation des tables et )tablissant les besoins amen)s par le caract/re multi)criture de la norme. Cette r)serve d'adaptation permettra la modification des donn)es de classement pour un ensemble pr)cis de langues pour chaque syst/me d)criture de fa'on raisonnablement concise, sans avoir ! modifier la description des autres syst/mes d)criture. De cette fa'on, l'ordre de classement propos) peut +tre utilis) comme base de d)part pour la d)finition dautres ordres de classement avec un minimum defforts.A#y  7.1 Formalisation des donn)es Ce qui suit est une r)capitulation de la syntaxe de POSIX et de ses ajouts. Les lignes pr)c)d)es d'une * correspondent exactement ! la syntaxe actuelle de POSIX; les autres sont des ajouts n)cessaires pour un d)faut adaptable plus flexible et complet: *X!LC_COLLATE A#! *X!collatingsymbol [from ]A#! *X!order_start [forward|backward|position][;[...]]A#! X! ! remplacer au d)but de chaque fonction par: A#! X! order_start [forward|backward|position][;[...]]A#! *X!&)2[[collatingsymbol | | IGNORE] [;[...]]A#) X! Cette est une d)finition de caract/re A#! X!redefine [[avant|apr/s] ]A#!  ' Ԍ X! Cette derni/re instruction doit pr)c)der une nouvelle d)finition de caract/re A#! *X!order_endA#! *X!FIN LC_COLLATEA#! X!Pour pr)ciser une s)rie de caract/res dans l'ordre du JUC, partout oI un symbole repr)sentant un cartact/re peut +tre utilis) dans une expression, la forme suivante (utilisant 6 points de suspension) est utilis)e : A#! X!......A#! X!move [before|after] |A#! X!create order [before|after|position][;[...]]A#! X!Xy !X! *[after|before] [| A# 7.2 M)canisme d'adaptation Cette section d)crit essentiellement comment les nouvelles instructions cihaut mentionn)es sont trait)es pour former une table ! jour. Le processus d'adaptation d)crit dans cette norme est constitu) uniquement d'un m)canisme de mise ! jour de table r)sultant en une nouvelle table rempla'ant la table implicite). Note et question du r)dacteur: le texte attendu ici doit provenir de la norme de formalisation r)dig)e par Keld Simonsen (voir aussi l'annexe H d)crivant la syntaxe normalis)e utilis)e en 5.4). Devrionsnous s)parer 5.4, le devis strict de POSIX plus l'ajout d'ent+tes pour chaque syst/me d)criture, et 5.5, sp)cialis) dans les aspects d'adaptation (tout en d)signant des annexes informatives comme l'actuelle annexe H) pour les explications incluses dans d'autres normes)?  ! Annexes normatives Note: Dans cette version de travail, les annexes identifi)es par un chiffre sont normatives. Les annexes identifi)es par une lettre sont informatives.  Annexe 1 (normative) Table implicite internationale  H6X@;߀  ,h LC_COLLATE # D)claration des symboles internes / Declaration of internal symbols # # SYMB N$ Expl. # collating-symbol # # / # # collatingsymbol # 2 normal > voir/see collatingsymbol # 3 isol. collatingsymbol # 4 final collatingsymbol # 5 initial collatingsymbol # 6 medial/mdian # collating-symbol # 7 minuscule/minuscule (bas de casse/lower case) collating-symbol # 8 inf)rieur min./subscript min. (indice/index) collating-symbol # 9 sup)r. min./superscript min. (exposant/exponent) collating-symbol # 10 capitale/capital (haut de casse/upper case) collating-symbol # 8 minuscule grecque/Greek lower case collating-symbol # 11 inf)rieur en capitale/subscript capital collating-symbol # 12 sup)rieur en capitale/superscript capital # # / # collatingsymbol # 13 accent madda-)22: collatingsymbol # 14 accent hamza-)22: ?C collatingsymbol # 141 accent hamza/waw3: collatingsymbol # 142 accent hamza under / hamza souscrit collatingsymbol # 143 accent under yeh / accent souscrit du ya' collatingsymbol # 144 accent hamza/yeh barree # collating-symbol # 15 de base/basic (non accentu)/non-accented) # collating-symbol # 16 particulier/peculiar collating-symbol # 17 ligature/ligature collating-symbol # 18 accent aigu/acute accent collating-symbol # 20 accent grave/grave accent collating-symbol # 21 br/ve/breve collating-symbol # 22 accent circonflexe/circumflex accent collating-symbol # 23 caron/caron collating-symbol # 24 rond sup)rieur/ring above collating-symbol # 25 tr)ma/diaeresis (ou/or umlaut) collating-symbol # 26 double ac. aigu/double acute ac. collating-symbol # 27 tilde/tilde collating-symbol # 28 point/dot collating-symbol # 29 barre oblique/oblique collating-symbol # 30 c)dille/cedilla collating-symbol # 31 ogonek/ogonek collating-symbol # 32 macron/macron # collating-symbol <0> collating-symbol <1> collating-symbol <2> '"Ԍcollating-symbol <3> collating-symbol <4> collating-symbol <5> collating-symbol <6> collating-symbol <7> collating-symbol <8> collating-symbol <9> # collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol

# 112 # 113 # 114 # 115 # 116 # 117 # 118 # 119 # 120 # 121 # 122 # 122b # # / #  '&Ԍ # # #  ' order_start forward;backward;forward;forward,position # # Tout caract/re non pr)cis)ment d)fini sera consid)r) comme caract/re sp)cial # et consid)r) uniquement au dernier niveau. # # Any character not precisely specified will be considered as a special # character and considered only at the last level. # ...... IGNORE;IGNORE;IGNORE;...... # # SYMB. N$ GLY # IGNORE;IGNORE;IGNORE; # 32 IGNORE;IGNORE;IGNORE; # 33 _ IGNORE;IGNORE;IGNORE; # 34 <"_> IGNORE;IGNORE;IGNORE; # 35  (MACRON) IGNORE;IGNORE;IGNORE; # 36 IGNORE;IGNORE;IGNORE; # 37 - IGNORE;IGNORE;IGNORE; # 38 , IGNORE;IGNORE;IGNORE; # 39 ; IGNORE;IGNORE;IGNORE; # 40 : IGNORE;IGNORE;IGNORE; # 41 ! IGNORE;IGNORE;IGNORE; # 42  IGNORE;IGNORE;IGNORE; # 43 ? IGNORE;IGNORE;IGNORE; # 44  IGNORE;IGNORE;IGNORE; # 45 / IGNORE;IGNORE;IGNORE; # 46 <"/> IGNORE;IGNORE;IGNORE; # 47 . IGNORE;IGNORE;IGNORE; # 58  IGNORE;IGNORE;IGNORE; # 59  IGNORE;IGNORE;IGNORE; # 60 <";> IGNORE;IGNORE;IGNORE; # 61 ' IGNORE;IGNORE;IGNORE; # 62 <'6> IGNORE;IGNORE;IGNORE; # 63 <'9> IGNORE;IGNORE;IGNORE; # 64 " IGNORE;IGNORE;IGNORE; # 65 <"6> IGNORE;IGNORE;IGNORE; # 66 <"9> IGNORE;IGNORE;IGNORE; # 67  IGNORE;IGNORE;IGNORE; # 68  IGNORE;IGNORE;IGNORE; # 69 ( IGNORE;IGNORE;IGNORE; # 70 <(S> IGNORE;IGNORE;IGNORE; # 71 ) IGNORE;IGNORE;IGNORE; # 72 <)S> IGNORE;IGNORE;IGNORE; # 73 [ IGNORE;IGNORE;IGNORE; # 74 ] IGNORE;IGNORE;IGNORE; # 75 { IGNORE;IGNORE;IGNORE; # 76 } IGNORE;IGNORE;IGNORE; # 77  IGNORE;IGNORE;IGNORE; # 78  IGNORE;IGNORE;IGNORE; # 79  IGNORE;IGNORE;IGNORE; # 80  IGNORE;IGNORE;IGNORE; # 81 IGNORE;IGNORE;IGNORE; # 82 @ IGNORE;IGNORE;IGNORE; # 83  IGNORE;IGNORE;IGNORE; # 84  IGNORE;IGNORE;IGNORE; # 85 $ IGNORE;IGNORE;IGNORE; # 86  IGNORE;IGNORE;IGNORE; # 87  IGNORE;IGNORE;IGNORE; # 88 * IGNORE;IGNORE;IGNORE; # 89 \ IGNORE;IGNORE;IGNORE; # 90 & IGNORE;IGNORE;IGNORE; # 91 # '(Ԍ IGNORE;IGNORE;IGNORE; # 92 % IGNORE;IGNORE;IGNORE; # 93 <-S> IGNORE;IGNORE;IGNORE; # 94 + IGNORE;IGNORE;IGNORE; # 95 <+S> IGNORE;IGNORE;IGNORE; # 96  IGNORE;IGNORE;IGNORE;<0> # 123  IGNORE;IGNORE;IGNORE;<1> # 124 ` IGNORE;IGNORE;IGNORE;<2> # 125 <"(> IGNORE;IGNORE;IGNORE;<3> # 126 ^ IGNORE;IGNORE;IGNORE;<4> # 127 <"<> IGNORE;IGNORE;IGNORE;<5> # 128 <"0> IGNORE;IGNORE;IGNORE;<6> # 129  IGNORE;IGNORE;IGNORE;<7> # 130 <""> IGNORE;IGNORE;IGNORE;<8> # 131 ~ IGNORE;IGNORE;IGNORE;<9> # 132 <".> IGNORE;IGNORE;IGNORE; # 133  IGNORE;IGNORE;IGNORE; # 134 ' IGNORE;IGNORE;IGNORE; # 135 IGNORE;IGNORE;IGNORE; # 136 < IGNORE;IGNORE;IGNORE; # 137 <=<> IGNORE;IGNORE;IGNORE; # 138 = IGNORE;IGNORE;IGNORE; # 139 => IGNORE;IGNORE;IGNORE; # 140 > IGNORE;IGNORE;IGNORE; # 141  IGNORE;IGNORE;IGNORE; # 142 | IGNORE;IGNORE;IGNORE; # 143 | IGNORE;IGNORE;IGNORE; # 144 $ IGNORE;IGNORE;IGNORE; # 145  IGNORE;IGNORE;IGNORE; # 146 IGNORE;IGNORE;IGNORE; # 147 IGNORE;IGNORE;IGNORE;

# 148 <_V/>> IGNORE;IGNORE;IGNORE; # 149 <_V-> IGNORE;IGNORE;IGNORE; # 150 <_V IGNORE;IGNORE;IGNORE; # 151 <_!/>> IGNORE;IGNORE;IGNORE; # 152 <_!-> IGNORE;IGNORE;IGNORE; # 153 <_!<> IGNORE;IGNORE;IGNORE; # 154 <_A/>> IGNORE;IGNORE;IGNORE; # 155 <_-A> IGNORE;IGNORE;IGNORE; # 156 <_A<> IGNORE;IGNORE;IGNORE; # 157 <_!> IGNORE;IGNORE;IGNORE; # 158 <_-> # IGNORE;IGNORE;IGNORE; # 159 <_=> IGNORE;IGNORE;IGNORE; # 160 <<-> IGNORE;IGNORE;IGNORE; # 161 <-/>> IGNORE;IGNORE;IGNORE; # 162 <"7> IGNORE;IGNORE;IGNORE; # 163 <-!> IGNORE;IGNORE;IGNORE; # 164 <-v> IGNORE;IGNORE;IGNORE; # 165 <_d!> IGNORE;IGNORE;IGNORE; # 166 <_/>//> IGNORE;IGNORE;IGNORE; # 167 <_<\> IGNORE;IGNORE;IGNORE; # 168 <_./>//> IGNORE;IGNORE;IGNORE; # 169 <_.<\> # # / # IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; IGNORE;IGNORE;IGNORE; # ')Ԍ IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # IGNORE;IGNORE;IGNORE; # # # # IGNORE;IGNORE;IGNORE; #point_sheva IGNORE;IGNORE;IGNORE; #point_hataf_segol IGNORE;IGNORE;IGNORE; #point_hataf_patah IGNORE;IGNORE;IGNORE; #point_hataf_qamats IGNORE;IGNORE;IGNORE; #point_hiriq IGNORE;IGNORE;IGNORE; #point_tsere IGNORE;IGNORE;IGNORE; #point_segol IGNORE;IGNORE;IGNORE; #point_patah IGNORE;IGNORE;IGNORE; #point_qamats IGNORE;IGNORE;IGNORE; #point_holam IGNORE;IGNORE;IGNORE; #point_qubuts IGNORE;IGNORE;IGNORE; #point_dagesh IGNORE;IGNORE;IGNORE; #point_meteg IGNORE;IGNORE;IGNORE; #maqaf IGNORE;IGNORE;IGNORE; #point_rafe IGNORE;IGNORE;IGNORE; #paseq IGNORE;IGNORE;IGNORE; #point_shin_dot IGNORE;IGNORE;IGNORE; #point_sin_dot IGNORE;IGNORE;IGNORE; #sof pasuq  * order_start forward;backward;forward;forward,position # U0020;;;IGNORE # 170 # <0>;;;IGNORE # 171 0 <1>;;;IGNORE # 172 1 <2>;;;IGNORE # 173 2 <3>;;;IGNORE # 174 3 <4>;;;IGNORE # 175 4 <5>;;;IGNORE # 176 5 <6>;;;IGNORE # 177 6 <7>;;;IGNORE # 178 7 <8>;;;IGNORE # 179 8 <9>;;;IGNORE # 180 9 # <0>;;;IGNORE # 181 <18> <0>;;;IGNORE # 182  <0>;;;IGNORE # 183 <38> <0>;;;IGNORE # 184 <58> <0>;;;IGNORE # 185 <78> <0>;;;IGNORE # 186  <0>;;;IGNORE # 187  <0>;;;IGNORE # 188 <0S> <1>;;;IGNORE # 189 N <2>;;;IGNORE # 190  <3>;;;IGNORE # 191  <4>;;;IGNORE # 192 <4S> <5>;;;IGNORE # 193 <5S> <6>;;;IGNORE # 194 <6S> <7>;;;IGNORE # 195 <7S> <8>;;;IGNORE # 196 <8S> <9>;;;IGNORE # 197 <9S> # ;;;IGNORE # 198 a ;;;IGNORE # 199  ;;;IGNORE # 200  ;;;IGNORE # 201 ! ;;;IGNORE # 202  ;;;IGNORE # 203 M ;;;IGNORE # 204  ;;;IGNORE # 205 # ;;;IGNORE # 206 ;;;IGNORE # 207 ;;;IGNORE # 208 ;;;IGNORE # 209 % ;;;IGNORE # 210 b ;;;IGNORE # 211 c ;;;IGNORE # 212 ' ;;;IGNORE # 213 ;;;IGNORE # 214 > ;;;IGNORE # 215 ;;;IGNORE # 216 ;;;IGNORE # 217 d ;;;IGNORE # 218 W ;;;IGNORE # 219 ;;;IGNORE # 220 ;;;IGNORE # 221 e ;;;IGNORE # 222 ) ;;;IGNORE # 223 / ;;;IGNORE # 224 + ;;;IGNORE # 225 - ;;;IGNORE # 226 ;;;IGNORE # 227 ;;;IGNORE # 228 ;;;IGNORE # 229  '+Ԍ ;;;IGNORE # 230 f ;;;IGNORE # 231 g ;;;IGNORE # 232 ;;;IGNORE # 233 > ;;;IGNORE # 234 ;;;IGNORE # 235 ;;;IGNORE # 236 h ;;;IGNORE # 237 > ;;;IGNORE # 238 ;;;IGNORE # 239 i ;;;IGNORE # 240 1 ;;;IGNORE # 241 7 ;;;IGNORE # 242 3 ;;;IGNORE # 243 5 ;;;IGNORE # 244 ;;;IGNORE # 245 ;;;IGNORE # 246 ;;;IGNORE # 247 ;;;IGNORE # 248 ;;;IGNORE # 249 j ;;;IGNORE # 250 > ;;;IGNORE # 251 k ;;;IGNORE # 252 ;;;IGNORE # 253 ;;;IGNORE # 254 l ;;;IGNORE # 255 ;;;IGNORE # 256 ;;;IGNORE # 257 ;;;IGNORE # 258 ;;;IGNORE # 259 ;;;IGNORE # 260 m ;;;IGNORE # 261 n ;;;IGNORE # 262 9 ;;;IGNORE # 263 <'n> ;;;IGNORE # 264 ;;;IGNORE # 265 ;;;IGNORE # 266 ;;;IGNORE # 267 ;;;IGNORE # 268 o ;;;IGNORE # 269  ;;;IGNORE # 270 ; ;;;IGNORE # 271 A ;;;IGNORE # 272 = ;;;IGNORE # 273 S ;;;IGNORE # 274 ? ;;;IGNORE # 275 Q ;;;IGNORE # 276 ;;;IGNORE # 277 ;;;IGNORE # 278

;;;IGNORE # 279 p ;;;IGNORE # 280 q ;;;IGNORE # 281 r ;;;IGNORE # 282 ;;;IGNORE # 283 ;;;IGNORE # 284 ;;;IGNORE # 285 s ;;;IGNORE # 286 ;;;IGNORE # 287 > ;;;IGNORE # 288 ;;;IGNORE # 289 ;;;IGNORE # 290  ;;;IGNORE # 291 t ;;;IGNORE # 292 ;;;IGNORE # 293 ;;;IGNORE # 294  ',Ԍ ;;;IGNORE # 296 u ;;;IGNORE # 297 C ;;;IGNORE # 298 I ;;;IGNORE # 299 E ;;;IGNORE # 300 G ;;;IGNORE # 301 ;;;IGNORE # 302 ;;;IGNORE # 303 ;;;IGNORE # 304 ;;;IGNORE # 305 ;;;IGNORE # 306 ;;;IGNORE # 307 v ;;;IGNORE # 308 w ;;;IGNORE # 309 > ;;;IGNORE # 310 x ;;;IGNORE # 311 y ;;;IGNORE # 312 U ;;;IGNORE # 313  ;;;IGNORE # 314 > ;;;IGNORE # 315 z ;;;IGNORE # 316 ;;;IGNORE # 317 ;;;IGNORE # 318 ;;;IGNORE # 318b X # ;;;IGNORE # 319 A ;;;IGNORE # 320  ;;;IGNORE # 321  ;;;IGNORE # 322  ;;;IGNORE # 323 L ;;;IGNORE # 324  ;;;IGNORE # 325 " ;;;IGNORE # 326 ;;;IGNORE # 327 ;;;IGNORE # 328 ;;;IGNORE # 329 $ ;;;IGNORE # 330 B ;;;IGNORE # 331 C ;;;IGNORE # 332 & ;;;IGNORE # 333 ;;;IGNORE # 334 > ;;;IGNORE # 335 > ;;;IGNORE # 336 ;;;IGNORE # 337 D ;;;IGNORE # 338 V ;;;IGNORE # 339 ;;;IGNORE # 340 ;;;IGNORE # 341 E ;;;IGNORE # 342 ( ;;;IGNORE # 343 . ;;;IGNORE # 344 * ;;;IGNORE # 345 , ;;;IGNORE # 346 ;;;IGNORE # 347 ;;;IGNORE # 348 ;;;IGNORE # 349 ;;;IGNORE # 350 F ;;;IGNORE # 351 G ;;;IGNORE # 352 ;;;IGNORE # 353 > ;;;IGNORE # 354 ;;;IGNORE # 355 ;;;IGNORE # 356 H ;;;IGNORE # 357 > ;;;IGNORE # 358  '-Ԍ ;;;IGNORE # 359 I ;;;IGNORE # 360 0 ;;;IGNORE # 361 6 ;;;IGNORE # 362 2 ;;;IGNORE # 363 4 ;;;IGNORE # 364 ;;;IGNORE # 365 ;;;IGNORE # 366 ;;;IGNORE # 367 ;;;IGNORE # 368 ;;;IGNORE # 369 J ;;;IGNORE # 370 > ;;;IGNORE # 371 K ;;;IGNORE # 372 ;;;IGNORE # 373 L ;;;IGNORE # 374 ;;;IGNORE # 375 ;;;IGNORE # 376 ;;;IGNORE # 377 ;;;IGNORE # 378 ;;;IGNORE # 379 M ;;;IGNORE # 380 N ;;;IGNORE # 381 8 ;;;IGNORE # 382 ;;;IGNORE # 383 ;;;IGNORE # 384 ;;;IGNORE # 385 ;;;IGNORE # 386 O ;;;IGNORE # 387 : ;;;IGNORE # 388 @ ;;;IGNORE # 389 < ;;;IGNORE # 390 R ;;;IGNORE # 391 > ;;;IGNORE # 392 P ;;;IGNORE # 393 ;;;IGNORE # 394 ;;;IGNORE # 395

;;;IGNORE # 396 P ;;;IGNORE # 397 Q ;;;IGNORE # 398 R ;;;IGNORE # 399 ;;;IGNORE # 400 ;;;IGNORE # 401 ;;;IGNORE # 402 S ;;;IGNORE # 403 ;;;IGNORE # 404 > ;;;IGNORE # 405 ;;;IGNORE # 406 ;;;IGNORE # 407 T ;;;IGNORE # 408 ;;;IGNORE # 409 ;;;IGNORE # 410 ;;;IGNORE # 412 U ;;;IGNORE # 413 B ;;;IGNORE # 414 H ;;;IGNORE # 415 D ;;;IGNORE # 416 F ;;;IGNORE # 417 ;;;IGNORE # 418 ;;;IGNORE # 419 ;;;IGNORE # 420 ;;;IGNORE # 421 ;;;IGNORE # 422 ;;;IGNORE # 423 V ;;;IGNORE # 424 W '.Ԍ ;;;IGNORE # 425 > ;;;IGNORE # 426 X ;;;IGNORE # 427 Y ;;;IGNORE # 428 T ;;;IGNORE # 429 > ;;;IGNORE # 430 ;;;IGNORE # 431 Z ;;;IGNORE # 432 ;;;IGNORE # 433 ;;;IGNORE # 434 ;;;IGNORE # 411 Y  / order_start forward;forward;forward;forward,position <0>;;;IGNORE <0>;;;IGNORE <1>;;;IGNORE <1>;;;IGNORE <2>;;;IGNORE <2>;;;IGNORE <3>;;;IGNORE <3>;;;IGNORE <4>;;;IGNORE <4>;;;IGNORE <5>;;;IGNORE <5>;;;IGNORE <6>;;;IGNORE <6>;;;IGNORE <7>;;;IGNORE <7>;;;IGNORE <8>;;;IGNORE <8>;;;IGNORE <9>;;;IGNORE <9>;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE >;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE '0Ԍ ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE order_start backward;backward;backward;forward,position ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE '1Ԍ ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE '2Ԍ ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE '3Ԍ ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;;IGNORE ;;;;IGNORE ;;;;IGNORE ;;;;IGNORE ;;;IGNORE ;;;IGNORE ;;;IGNORE  4 order_start forward;forward;forward;forward,position ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE ;;IGNORE;IGNORE order_start forward;forward;forward;forward,position ...... ......;IGNORE;IGNORE;IGNORE # order_end # END LC_COLLATE Annexe 2 (normative) Banc d'essai 1Liste des r)sultats implicites attendusp& 2Liste des r)sultats attendus apr/s l'adaptationp&  5 Annexes informatives Note: Dans cette version de travail, les annexes identifi)es par un chiffre sont normatives. Les annexes identifi)es par une lettre sont informatives.  Annexe A (informative) Crit/res utilis)s ! l'origine pour pr)parer cette norme Note: ces crit/res )taient sujets ! changement. Ils repr)sentaient un id)al. Des compromis ont du +tre faits en raison de diverses circonstances. p& 1. Le m)canisme doit fournir un moyen d)terministe d'ordonner des cha3nes de caract/res graphiques. Ainsi, si deux cha3nes de caract/res graphiques sont diff)rentes lorsque compar)es directement en mode binaire, l'ordre attribu) par le m)canisme doit toujours +tre le m+me et les cha3nes seront consid)r)es comme diff)rentes m+me si elles sont consid)r)es comme )quivalentes du point de vue humain. 2. L'ordre attribu) pour chaque )criture sera, si possible, culturellement acceptable par la majorit) des utilisateurs de cette )criture. 3. Le r)pertoire des caract/res support)s doit +tre au minimum celui qui est d)fini au troisi/me niveau d'implantation de la norme ISO/CEI 10646 (le plus riche possible). 4. La table de classement sera d)finie en se rappelant les points suivants concernant les attributions de nombres internes de transformations de cha3nes: ©X!les attributions sont trait)es aussi efficacement que possible si elles sont conserv)es de fa'on permanente, etp&! ©X!les attributions permettent des comparaisons binaires directes et correctes, effectu)es en une seule op)ration, entre deux s)quences de nombres r)sultants.p&! La table est d)finie de cette fa'on parce qu'il est toujours possible de d)finir un ordre entre deux cha3nes peu importe la complexit) de la m)thode utilis)e. Cependant, les syst/mes r)els doivent avoir un niveau minimal de performance. Lorsque l'attribution est effectu)e sur des cha3nes initiales, le r)sultat doit pouvoir +tre conserv) sans modification. De plus, ce r)sultat doit +tre r)utilisable directement en vue d'autres comparaisons, sans avoir ! reprendre le processus de conversion ! chaque fois. Ceci permettra aussi aux syst/mes existants d'effectuer des comparaisons avec un minimum de changements et quelquefois sans avoir ! modifier les programmes. 5. Pour optimiser le processus dans la langue de l'utilisateur, il doit y avoir un m)canisme permettant dutiliser la table implicite comme simple mod/le de d)part. Dans ce mod/le, l'ordre d'une s)rie de caract/res peut +tre modifi) simplement par une d)claration a posteriori, sans avoir ! red)finir toute la table. 6. (tant donn) les cl)s de comparaison r)utilisables obtenues (voir 4), il doit +tre possible de reconstituer la cha3ne initiale sans qu'il ne soit n)cessaire de la conserver. Ceci signifie que la r)versibilit) du traitement doit +tre possible pour les applications informatiques qui le requi/rent.  titre informatif, ces besoins peuvent d)j! +tre satisfaits par la norme canadienne CAN/CSA Z243.4.1 pour les langues europ)ennes de l'ouest, bien que cette norme soit applicable sur une seule )criture et ne supporte pas les s)quences composites telles que d)finies dans la norme ISO/CEI 10646. Cependant, des )tudes pr)liminaires sugg/rent la possibilit) d')tendre la m)thode canadienne pour satisfaire les besoins de multiples )critures et la pr)sence de s)quences composites. La norme ISO/CEI 99452 (POSIX2) permet de d)crire de la norme CAN/CSA Z243.4.11992. Cependant, elle peut n)cessiter des modifications au mod/le pour traiter les besoins de multiples )critures et la pr)sence de s)quences composites si un r)pertoire infini est n)cessaire pour un environnement donn). L'application de cette norme ne n)cessite pas une conformit) enti/re avec POSIX2, mais sera aussi compatible que possible avec le formalisme de LC_COLLATE d)crit dans les LOCALEs de POSIX. Autrement, cette norme utilisera ce formalisme en essayant de faire aussi peu de modifications que possible (particuli/rement pour ce qui est des modifications structurelles).  g#6 Annexe B (informative) Description de l')tape de pr)traitement Le pr)traitement est essentiel pour la modification et/ou la duplication des enregistrements initiaux afin de rendre leurs champs ind)pendants du contexte avant l')tape de comparaison. Par exemple: ©X!r)p)ter une cha3ne comme 41  en trois cha3nes pour la production dun ordre phon)tique trilingue (fran'ais, anglais et allemand):p&! X!Xy !QUARANTEETUNp&y X!Xy !FORTYONEp&y X!Xy !EINUNDVIERZIGp&y ©X!retirer ou d)placer les caract/res qui nuisent ! la d)finition d'un ordre pr)cis; par exemple, en France, retirer de  dans de Gaulle  et ne pas retirer De  dans De Gaulle , ce qui donne:p&! X!Xy !Gaulle (de)p&y X!Xy !De Gaullep&y ©X!transformer les donn)es incompl/tes dans leur forme enti/re; par exemple, transformer Mc Arthur  en Mac Arthur ;p&! ©X!transformer les nombres pour que le r)sultat soit en ordre num)rique et non positionnel, soit selon leur valeur phon)tique; par exemple: )tant donn) les cha3nes 100  et 15 :p&! X!Xy !©X" *s)parer chacun de ces nombres en champs diff)rents pour le reste du texte et les convertir enti/rement en donn)es num)riques binaires pour les ordonner num)riquement et non textuellement, oup& X!Xy !©X" *aligner les chiffres des nombres pour assurer que le m)canisme de classement implicite les traite correctement en une seule )tape:p& X!Xy !! * 015 p&y X!Xy !X! * 100 p& ©X!transformer les chiffres romains en chiffres arabes apr/s avoir d)termin) le contexte (peut+tre par une intervention interactive humaine ou avec l'aide d'un syst/me expert) tel qu'illustr) dans l'exemple suivant:p&! X!Xy !CHAPITRE DIX peut signifier CHAPITRE 010 ou CHAPITRE 509 (DIX )tant la repr)sentation romaine de 509). Ceci n)cessite une )tude contextuelle pour une solution qui correspond ! la signification r)elle de la cha3ne initiale.p&y Description de l')tape de posttraitement L')tape de posttraitement existe essentiellement pour modifier les cl)s de sortie ou pour attacher la cha3ne originale ! ses cl)s de fa'on ! ce que la comparaison puisse d)terminer les diff)rences en pr)sence d'homographes. Par exemple, il pourrait y avoir )quivalence si les valeurs num)riques (par exemple 010  et 10 ) ont )t) normalis)es dans une )tape de pr)traitement. Dans de tels cas, le m)canisme de classement implicite n'a aucune connaissance du fait que les cha3nes sont diff)rentes, mais l'exigence de pr)visibilit) doit quand m+me +tre satisfaite. En particulier, l! oI diff)rentes m)thodes de codage ont )t) utilis)es dans un m+me traitement sur les cha3nes initiales ! ordonner, l')tape de posttraitement peut d)terminer les diff)rences internes qui appara3traient comme exactement identiques sur papier pour l'utilisateur (par exemple, un flux d'entr)e ISO 2022 entrem+lant les normes ISO/CEI 6937 et ISO/CEI 8859). Le m)canisme de classement implicite adaptable ne comprend pas les )tapes de pr) et posttraitement. Cependant, il les d)crit. La pr)sence de ces )tapes est obligatoire m+me si elles sont ind)termin)es (processus vides). Ces processus vides peuvent +tre remplac)s si le besoin s'en fait sentir.  $7 Annexe C R)f)rences bibliographiques sur les m)thodes et la collecte des donn)es CAN/CSA Z243.4.1 Norme canadienne de classement alphab)tiquep& CAN/CSA Z243.230 Param/tres canadiens minimaux de localisation des logicielsp&  IBM NLTC Volume 2 reference manualp&  IBM Egypt et organisme )gyptien de normalisationp&  Stefan Fuchs et organisme isra)lien de normalisationp&  CEN TC304 Projet de norme de classement multilinguep& LOCALES enregistr)es par x/Open ou par le SC22/GT15 site Internet DKUUG.DK)p& LaBont), Alain, R/gles du classement alphab)tique en langue fran'aise et proc)dure informatis)e pour le tri, Minist/re des Communications du Qu)bec, 1988 ISBN 2550190467p& LaBont), Alain, Technique de r)duction Tris informatiques ! quatre cl)s, Minist/re des Communications du Qu)bec, 1989 ISBN 2550199650p& LaBont), Alain, Fonctions de syst/mes Soutien des langues nationales, Minist/re des Communications du Qu)bec, 1988p& National Language Architecture Klaus daube, SHARE EUROPE White Paper, 1990p&  &8 Annexe D (informative) Principes pr)liminaires d'attribution des tables Les principes d'attribution des tables num)riques sont les suivants: !y )19\!y )190\ a)m Tous les caract/res se font attribuer une valeur correspondant ! l'identification de l')criture. Chaque ent+te de syst/me d')criture re'oit un nom principalement pour les besoins de l'adaptation. Cependant, un nombre correspondant ! l'identification de l')criture peut +tre attribu) ! ce nom qui sert alors de variable. Cette donn)e d'identification de l')criture est informative et n'est pas utilis)e dans le processus de comparaison. Cependant, la donn)e d'identification peut +tre n)cessaire pour d)terminer la direction de balayage des signes diacritiques pour cette )criture. Cette donn)e doit quelquefois +tre conserv)e avec les cha3nes de classement pour rencontrer l'exigence de r)versibilit) (capacit) de reconstituer les cha3nes initiales ! partir des souscl)s r)sultant de la transformation multiniveau).p& 0\ b)m Une valeur de base normalis)e (ou une paire ou une triade pour les ligatures) est attribu)e ! chaque lettre comme valeur de premier niveau. On attribue aux caract/res id)ographiques leur ordre normalis) CJK, correspondant ! l'ordre qu'ils ont dans la norme ISO/CEI 10646. L'attribution se fait dans l'ordre alphab)tique. Par exemple, on attribue ! la LETTRE LATINE MAJUSCULE E ACCENT CIRCONFLEXE une valeur num)rique correspondant ! la valeur attribu)e ! la LETTRE LATINE MINUSCULE E. Une telle d)finition est valide pour la plupart des langues bas)es sur l')criture latine. Le vietnamien n)cessiterait une autre d)finition, l'E ACCENT CIRCONFLEXE )tant une lettre de base dans cette langue.p& 0\ c)m Chaque lettre se voit attribuer un multiplet de valeurs (ou 2 ou 3 multiplets pour les ligatures) comme valeur de deuxi/me niveau, qui correspond au nombre maximum possible de signes diacritiques possibles dans toutes les )critures du monde pour une lettre de base donn)e ! laquelle il s'applique. Lorsqu'il n'y a qu'un signe diacritique, les deuxi/me et troisi/me )l)ments du triplet sont r)serv)s. Lorsqu'il n'y a pas de signe diacritique, trois places r)serv)es sont conserv)es dans chaque triplet et ainsi de suite. Pour chaque signe diacritique d'un triplet, un indicateur est plac) dans l'avantdernier niveau pour indiquer un signe diacritique int)gr) (par opposition ! un caract/re combin)). Il est ! noter que pour le niveau 1 de conformit) ! la norme ISO/CEI 10646 (ou si les s)quences composites sont toutes pr)d)finies par des instructions collatingsymbol ) le multiplet de valeurs pour chaque caract/re peut +tre rendu )gal ! un simple indice parce qu'aucune analyse de signe diacritique combin) ne sera jamais n)cessaire (et l'avantdernier niveau, r)serv) pour usage futur, sera vide).p& 0\ m On n'attribue aucune valeur aux id)ogrammes ! ce niveau en conformit) avec le niveau 1 de la norme ISO/CEI 10646. Les id)ogrammes seront compar)s simultan)ment ! des valeurs compl/tement diff)rentes au premier niveau. Les op)rations de comparaison n'y verront jamais de collisions ! +tre r)solues ! un autre niveau. (Aucune )quivalence n'est attribu)e aux id)ogrammes dans ce premier niveau). Les niveaux 2 et 3 de conformit) pourraient +tre trait)s avec le m+me mod/le que pour les lettres, pour les cas de combinaisons hypoth)tiques.p& 0\ d)m Une valeur (une paire ou une triade pour les ligatures) est attribu)e ! chaque lettre, comme valeur de troisi/me niveau, correspondant ! la forme de la lettre (par exemple, haut ou bas de casse pour les )critures latines, ou encore isol)e, initiale, m)diale ou finale pour l'arabe). On n'attribue aucune valeur aux id)ogrammes pour ce niveau.p& 0\ e)m Ce paragraphe a )t) retir) de la version pr)c)dente.p& 0\ f)m Une valeur est attribu)e ! chaque caract/re sp)cial (caract/re n'appartenant pas pr)cis)ment ! une )criture particuli/re, comme le SIGNE DE COPYRIGHT, ou la VIRGULE), comme valeur de quatri/me niveau. C'est une valeur num)rique commune ! toutes les )critures, qui sera pr)c)d)e de la position qu'occupe de caract/re dans la cha3ne initiale ! traiter. Actuellement, aucun autre niveau de valeur n'est attribu) dans la table implicite.p& 0\ g)m Ce paragraphe a )t) retir) de la version pr)c)dente.p& (tant donn) ces attributions, une table de direction de balayage sera fournie pour chaque )criture et pour chaque niveau. Il est ! noter que la direction de balayage n'est pas li)e ! la direction naturelle d'une )criture puisque les caract/res sont d)j! cod)s de fa'on lin)aire selon leur direction d')criture (direction logique). Elle est plut=t li)e ! la direction dans laquelle chaque niveau est trait). Par exemple, en fran'ais, les signes diacritiques sont balay)es vers l'arri/re au cas oI il y aurait homographie au premier niveau. Les accents ne sont pas consid)r)s pour l'ordre en fran'ais sauf pour l'ordre particulier des quasihomographes. Dans ce cas, la derni/re diff)rence dans les mots d)termine l'ordre, justifiant un balayage r)trograde (un exemple de listede classement est: cote , c=te , cot) , c=t) ). Lorsque la direction d'une cha3ne est r)trograde pour un caract/re ! un niveau donn), la valeur attribu)e ! ce niveau est plac)e en avant de la cl) r)sultante plut=t qu'! la fin. Puisque chaque souscl) est )tablie ! chaque niveau et ! la condition qu'un d)limiteur de faible valeur soit plac) entre chaque souscl), toutes les souscl)s peuvent +tre concat)n)es et utilis)es pour les comparaisons qui suivent. Si les valeurs sont choisies judicieusement lors de la construction de la table, aucun d)limiteur de faible valeur n'est n)cessaire). Si toutes les informations sont pr)sentes, la cha3ne initiale peut alors +tre reconstruite ! partir des souscl)s. Dans les cas oI on d)sire conserver les cl)s pour des raisons de performance maximale, des techniques de r)duction existent pour minimiser l'espace requis pour cette m)thode sans affecter le processus de comparaison (voir les r)f)rences bibliographiques). '9Ԍ Annexe D (informative) Principes du moteur de comparaison Les principes philosophiques soustendant le moteur de comparaison de caract/res culturellement acceptable sont: 1.0\ Aucun m)canisme n'est culturellement acceptable s'il pr)suppose que l'ordre est bas) sur les valeurs num)riques internes de cha3nes de caract/res non trait)es, peu importe le mode de codage de caract/res utilis).p&\ 2.0\ Si deux cha3nes sont diff)rentes, un ordre pleinement pr)visible doit +tre attribu) ! chacune par rapport ! l'autre.p&\ 3.0\ Dans un syst/me d)criture donn)e, les r/gles du classement sont reli)es ! la langue.p&\ 4.0\ Peu importe la langue, les r/gles de classement sont bas)es sur un ordre lexical au plus bas niveau. Une classification de plus haut niveau (effectu)e ! l')tape de pr)traitement) produit des cha3nes de caract/res dont l'ordre doit +tre )tabli de la m+me mani/re que pour n'importe quelle autre entr)e lexicale.p&\ 5.0\ Chaque r/gle tente de d)terminer un ordre entre deux cha3nes diff)rentes de caract/res en effectuant une simple comparaison binaire sur des cha3nes binaires repr)sentant le r)sultat d'une transformation des caract/res de chaque cha3ne qui soit directe et ind)pendante du contexte. (Les transformations impliquent soit l'ignorance d'un caract/re, soit l'attribution d'un poids particulier ou g)n)rique, ou encore la conservation de sa position comme poids tout en lui attribuant un deuxi/me poids qui d)pend du caract/re luim+me. De telles transformations peuvent +tre effectu)es par un balayage de la cha3ne vers l'avant ou l'arri/re dans la suite logique de la cha3ne, sauf dans les cas positionnels qui impliquent seulement les positions logiques de la cha3ne).p&\ 6.0\ Les transformations peuvent produire des )quivalences pour deux cha3nes diff)rentes de caract/res transform)es en deux cha3nes binaires identiques. Le cas )ch)ant, d'autres s)ries s)quentielles de transformations sont n)cessaires jusqu'! ce que, au niveau final, toutes les )galit)s soient bris)es (au dernier niveau, les cha3nes binaires sont n)cessairement diff)rentes si les deux cha3nes de caract/res initiales sont diff)rentes). Si l'objectif d'une comparaison est de d)terminer l')quivalence jusqu'! un certain niveau de pr)cision, alors les transformations sont requises seulement jusqu'! un certain niveau.p&\ 7.0\ La table implicite d)finira autant de niveaux que n)cessaire pour produire un ordre pleinement pr)visible pour deux cha3nes de caract/res diff)rentes. Ceci implique jusqu'! cinq niveaux de comparaison si les caract/res du niveau 1 de la norme ISO/CEI 10646 sont utilis)s, et jusqu'! six niveaux de comparaison si les caract/res du niveau 3 de la norme ISO/CEI 10646 sont utilis)s. Un niveau suppl)mentaire (utilis) pour la gestion des donn)es et sans signification particuli/re pour les comparaisons) est aussi d)fini (voir 9).p&\ 8.0\ Une cha3ne de caract/res est transform)e autant de fois que n)cessaire jusqu'! six niveaux diff)rents. Il doit donc +tre possible de d)duire la cha3ne de caract/res initiale ! partir des diff)rentes transformations concat)n)es en une cha3ne binaire propri)t) de r)versibilit) du processus de transformation).p&\ 9.0\ Diff)rentes )critures peuvent avoir diff)rentes propri)t)s quant ! la fa'on dont chaque niveau est trait). Pour s'assurer que l'op)ration soit r)versible, un niveau suppl)mentaire de transformation est donc n)cessaire pour identifier l')criture ! laquelle chaque caract/re appartient.p&\ \!y )19p!y )19Annexe E. SC22/GT20 N 174 r)vis) (si n)cessaire) - D'un besoin ! son implantation - Comparaison, Tri, nnRecherche DpRetir) de la version pr)c)dente.p&p Annexe F. Discussion sur le nombre de niveaux pour chaque )criture et leur harmonisation DpTexte ! ajouter si n)cessaire.p&p Annexe G. Exemple de normes de classification nationale et de leur harmonisation ! la norme internationale DpAFNOR Z.44001p&p DpANSI/NISO Z39.75199X en projet au moment d')crire la troisi/me version de travail)p&p DpDIN 5007p&p )": Annexe H.  ws2P0 Description des param/tres des LOCALEs sans les extensions Xp P;0  Texte tir) de la norme ISO/IEC 9945-2  ws2P0 Dp,#p p!y )19 hpx (#%'0*,.815Locale: Une locale est un sousensemble d)finissant l'environnement informatique de l'utilisateur li) aux conventions culturelles et linguistiques. Ce sousensemble comprend une ou plusieurs cat)gories. LC_CTYPE )Classification des caract/res et conversion majusculesminuscules.p& LC_COLLATE  )Ordre de classement. LC_TIME  < )Formats pour la date et l'heure.p& LC_NUMERIC  )Formats des donn)es num)riques et non mon)taires LC_MONETARY  )Formats des donn)es mon)taires. LC_MESSAGES  )Formats des messages de diagnostic et d'information et des r)ponses interactives.p& D)termination des cat)gories: LC_CTYPE La cat)gorie LC_TYPE doit d)terminer la classification des caract/res, la conversion majusculesminuscules, et autres caract)ristiques des caract/res. De plus, une s)rie de caract/res peut +tre repr)sent)e par trois points de suspension( ... ). La pr)sence des trois points de suspension signifiera que toutes les valeurs existantes entre les valeurs pr)c)dant et suivant les trois points de suspension sont des caract/res valables. Les motscl)s suivants font partie de la cat)gorie LC_TYPE et devront +tre reconnus: copy Indique le nom d'une locale existante utilis) pour d)finir cette cat)gorie. Si ce motcl) est pr)sent, aucun autre motcl) ne peut +tre utilis).p& upper  D)finit les caract/res majuscules. Ne peut comprendre des caract/res list)s sous les motscl)s cntrl , digit , punct et space .p& lower  D)finit les caract/res minuscules. Ne peut comprendre des caract/res list)s sous les motscl)s cntrl , digit , punct et space .p& alpha  D)finit les caract/res alphab)tiques. Ne peut comprendre des caract/res list)s sous les motscl)s cntrl , digit , punct et space . Les caract/res d)finis par les motscl)s upper et lower font automatiquement partie de cette classe.p& ';Ԍ digit  D)finit les caract/res num)riques. Seuls les chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9 peuvent +tre d)finis. Ils doivent l'+tre de fa'on contigu- et dans l'ordre ascendant de leur valeur num)rique.p& space  D)finit les caract/res d'espacement. Ne peut comprendre des caract/res list)s sous les motscl)s upper , lower , alpha , digit , graph et xdigit . Les caract/res espace , pr)sentation de feuille , nouvelle ligne , retour de chariot , tabulation , tabulation verticale , et les caract/res inclus dans la classe blank font automatiquement partie de cette classe.p& cntrl  D)finit les caract/res de commande. Ne peut comprendre des caract/res list)s sous les motscl)s upper , lower , alpha , digit , punct , graph , print et xdigit .p& punct  D)finit les caract/res de ponctuation. Ne peut comprendre des caract/res list)s sous les motscl)s upper , lower , alpha , digit , punct , xdigit et le caract/re espace .p& graph  D)finit les caract/res imprimables sauf le caract/re ESPACE. Les caract/res d)finis par les motscl)s upper , lower , alpha , digit , xdigit et punct font automatiquement partie de cette classe. Ne peut comprendre des caract/res list)s sous le motcl) cntrl .p& print  D)finit les caract/res imprimables incluant le caract/re espace . Les caract/res d)finis par les motscl)s upper , lower , alpha , digit , xdigit et punct font automatiquement partie de cette classe. Ne peut comprendre des caract/res list)s sous le motcl) cntrl .p& xdigit  D)finit les chiffres hexad)cimaux. Seuls les caract/res de la classe digit seront d)finis de fa'on contigu- et dans l'ordre ascendant de leur valeur num)rique. Ils seront suivis de un ou plusieurs ensembles de six caract/res repr)sentant les valeurs hexad)cimales de 10 ! 15 et en disposant les caract/res composant chaque ensemble en ordre ascendant.p& blank  D)finit les caract/res blancs. Les caract/res espace  et tabulation  font automatiquement partie de cette classe.p& toupper  (tablit la correspondance entre les minuscules et les majuscules. L'op)rande est constitu)e de paires de caract/res suivies d'un pointvirgule. Les caract/res de chaque paire seront s)par)s par une virgule et seront mis entre parenth/ses. Le premier caract/re de chaque paire sera la majuscule et le second, son correspondant minuscule. Seuls les caract/res d)finis par les motscl)s upper et lower peuvent +tre utilis)s.p& tolower  (tablit la correspondance entre les minuscules et les majuscules. L'op)rande est constitu)e de paires de caract/res suivies d'un pointvirgule. Les caract/res de chaque paire seront s)par)s par une virgule et seront mis entre parenth/ses. Le premier caract/re de chaque paire sera la majuscule et le second, son correspondant minuscule. Seuls les caract/res d)finis par les motscl)s upper et lower peuvent +tre utilis)s. Si le motcl) tolower est omis de la locale, la conversion se fera ! l'inverse de la conversion sp)cifi)e par toupper .p&  '<Ԍ LC_COLLATE Une d)finition de classement doit d)terminer l'ordre relatif des )l)ments de classement ()l)ments de classement des caract/res et des multicaract/res) dans une locale. Cet ordre s'exprime en attribuant un poids (ou valeur de pond)ration) ! chaque )l)ment. Cela ne signifie pas que ces valeurs doivent +tre utilis)es pour l'implantation. Mais, le classement des cha3nes bas) sur cet ordre doit +tre fait comme si ces valeurs avaient )t) utilis)es dans les comparaisons de classement. Cette d)finition de classement doit +tre utilis)e dans les expressions r)guli/res, les comparaisons et le tri. Elle peut s'appliquer dans les cas suivants: (1)(l)ments de classement des multicaract/res. Identification des )l)ments de classement des multicaract/res, soit une suite de deux ou plusieurs caract/res dont l'ensemble constituera un tout.p& (2)Ordre des )l)ments de classement d)fini par l'utilisateur. Chaque )l)ment de classement recevra un poids. Cet ordre est utilis) dans les expressions normales, pour les comparaisons et comme valeur de pond)ration dans le tri sauf si une valeur de pond)ration est explicit)e.p& (3)Valeurs de pond)ration et classes d')quivalence. On peut assigner aux )l)ments de classement une ou plusieurs valeurs de pond)ration pour le tri (jusqu'! la limite {COLL_WEIGHTS_MAX} ). La premi/re valeur est connue comme la valeur de pond)ration principale.p& (4)Mappage de un ! plusieurs. Un simple caract/re correspond ! une cha3ne d')l)ments de classement.p& (5)D)finition d'une classe d')quivalence. Deux ou plusieurs )l)ments de classement ont la m+me valeur de classement (valeur de pond)ration principale).p& (6)Ordre par pond)ration. Lorsque l'on compare deux cha3nes pour d)terminer leur ordre de classement, elles sont divis)es en suites d')l)ments de classement. On utilise ensuite la valeur de pond)ration principale de chacun des )l)ments de classement en les comparant deux par deux. Si le r)sultat est )gal et qu'il y a d'autres valeurs de pond)ration, on reprend la comparaison en utilisant les valeurs de pond)ration suivantes. La comparaison se termine lorsque les )l)ments de classements sont diff)rents ou qu'il n'y ait plus de valeurs de pond)ration.p& Les motscl)s suivants font partie de la cat)gorie LC_COLLATE et devront +tre reconnus: copy Indique le nom d'une locale existante ! utiliser pour d)finir cette cat)gorie. Si ce motcl) est pr)sent, aucun autre motcl) ne peut +tre utilis).p& collatingelement  )D)finit un symbole d')l)ment de classement repr)sentant l')l)ment de classement d'un multicaract/re. Ce motcl) est facultatif.p& collatingsymbol  )D)finit un symbole de classement pour +tre utilis) dans les )nonc)s pr)cisant l'ordre de classement. Ce motcl) est facultatif.p&  '=Ԍ order_start  )D)finit les r/gles d'interclassement. Cet )nonc) est suivi d'une ou de plusieurs instructions pr)cisant l'ordre de classement en attribuant les valeurs de classement des caract/res et les valeurs de pond)ration pour les )l)ments de classement.p& order_end  Termine la liste des instructions pr)cisant l'ordre de classement.p& Motcl) collatingelement En plus d'utiliser les )l)ments de classement dans les jeux de caract/res, le motcl) collatingelement sera utilis) pour d)finir les )l)ments de classement des multicaract/res. Motcl) collatingsymbol Ce motcl) sera utilis) pour d)finir les symboles utilis)s dans les instructions sp)cifiant l'ordre de classement, c'est!dire apparaissant entre les motscl)s order_start et order_end . Le motcl) collatingsymbol sert ! d)finir le nom symbolique qui est associ) au poids relatif d'un caract/re dans l'ordre de classement. M+me si ce nom symbolique ne repr)sente pas un )l)ment de classement particulier, il peut +tre utilis) comme valeur de pond)ration. Motcl) order_start Le motcl) order_start doit pr)c)der toutes les entr)es d)finissant l'ordre de classement. Il pr)cise le nombre de valeurs de pond)ration pour cette d)finition de classement ainsi que d'autres r/gles de classement. Les op)randes pour le motcl) order_start sont facultatifs. S'ils sont pr)sents, ils pr)cisent les r/gles ! appliquer dans la comparaison des cha3nes. Le nombre d'op)randes correspond au nombre de valeurs de pond)ration attribu)es ! chaque )l)ment; en l'absence d'op)rande, l'op)rande forward sera retenu. S'il est pr)sent, le premier op)rande pr)cise les r/gles ! appliquer dans la comparaison des cha3nes en utilisant la valeur de pond)ration principale; le second op)rande fait de m+me pour la seconde valeur de pond)ration et ainsi de suite. Les op)randes sont s)par)s par un pointvirgule (;). Chaque op)rande devra comprendre une ou plusieurs instructions de classement s)par)es par une virgule (,). Si le nombre d'op)randes d)passe la limite {COLL_WEIGHTS_MAX} , le programme de service )mettra un message d'avertissement. Les instructions suivantes devront +tre disponibles: forward  Pr)cise que les op)rations de comparaison bas)es sur les valeurs de pond)ration devront se faire du d)but de la cha3ne vers la fin de la cha3ne.p& backward  Pr)cise que les op)rations de comparaison bas)es sur les valeurs de pond)ration devront se faire de la fin de la cha3ne vers le d)but de la cha3ne.p& position  Pr)cise que les op)rations de comparaison bas)es sur les valeurs de pond)ration prendront en '> consid)ration la position relative des )l)ments significatifs de la cha3ne. On utilisera comme premi/re cha3ne, celle comportant le plus petit nombre d')l)ments non significatifs pr)c)dant le premier )l)ment significatif ! partir du point de d)part de la comparaison. Si deux cha3nes contiennent un )l)ment significatif ! la m+me position relative, la valeur de classement assign)e aux )l)ments d)terminera l'ordre. En cas d')galit), on proc)dera de m+me avec les )l)ments significatifs qui suivent.p& Noter que les directives forward et backward s'excluent mutuellement. LC_TIME  LC_NUMERIC LC_MONETARY LC_MESSAGES  Xp P ;0  ? Caract/res h)breux non encore publi)s dans l'ISO/CEI 10646_1 IGNORE;IGNORE;IGNORE; #accent_etnahta IGNORE;IGNORE;IGNORE; #accent_segol IGNORE;IGNORE;IGNORE; #accent_shalshelet IGNORE;IGNORE;IGNORE; #accent_zaqef_qatan IGNORE;IGNORE;IGNORE; #accent_zaqef_gadol IGNORE;IGNORE;IGNORE; #accent_tipeha IGNORE;IGNORE;IGNORE; #accent_revia IGNORE;IGNORE;IGNORE; #accent_zarqa IGNORE;IGNORE;IGNORE; #accent_pashta IGNORE;IGNORE;IGNORE; #accent_yetiv IGNORE;IGNORE;IGNORE; #accent_tevir IGNORE;IGNORE;IGNORE; #accent_geresh IGNORE;IGNORE;IGNORE; #accent_geresh_muqdam IGNORE;IGNORE;IGNORE; #accent_gershayim IGNORE;IGNORE;IGNORE; #accent_qarney_para IGNORE;IGNORE;IGNORE; #accent_telisha_gedola IGNORE;IGNORE;IGNORE; #accent_pazer IGNORE;IGNORE;IGNORE; #accent_munah IGNORE;IGNORE;IGNORE; #accent_mahapakh IGNORE;IGNORE;IGNORE; #accent_merkha IGNORE;IGNORE;IGNORE; #accent_merkha_kefula IGNORE;IGNORE;IGNORE; #accent_darga IGNORE;IGNORE;IGNORE; #accent_qadma IGNORE;IGNORE;IGNORE; #accent_telisha_qetana IGNORE;IGNORE;IGNORE; #accent_yerah_ben_yomo IGNORE;IGNORE;IGNORE; #accent_ole IGNORE;IGNORE;IGNORE; #accent_iluy IGNORE;IGNORE;IGNORE; #accent_dehi IGNORE;IGNORE;IGNORE; #accent_zinor IGNORE;IGNORE;IGNORE; #mark_masora_circle IGNORE;IGNORE;IGNORE; #mark_upper_dot a9pt#B2PQ׈P#(a9pt#B2PQ׈P#{P2 ,h  hpx (#%'0*,.815U    Xp P;0 Θa9pt#B2PQ׈P#

collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol collating-symbol # # / # collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol  '#Ԍcollatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol # # # collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol collatingsymbol  $ # Ordre des symboles internes / Order of internal symbols # # SYMB. N$ # # forme de base (bas de casse, arabe intrins/que, # h)breu intrins/que, etc. # basic form (lower case, intrinsic Arabic # intrinsic Hebrew and so on) # 7 # # / # # # voir # isol. # 3 # final # 4 # initial # 5 # medial/mdian # 6 # # 7 # 8 # 9 # 10 # 11 #alternate lower case/ # 12 # #minuscules sp)ciales apr/s majuscules # / # !y !# accent madda/)22: #13 !y !# accent hamza/)22: #14BC !y !# accent hamza/waw3: #14 1 !y !# accent hamza under / hamza souscrit #14 2 !y !# accent under yeh / accent souscrit du ya' #14 3 !y !# accent hamza/yeh barree #14 4 # # 15 # # 16 # 17 # 18 # 19 # 20 # 21 # 22 # 23 # 24 # 25 # 26 # 27 # 28 # 29 # 30 # 31 # <0> # 48 <1> # 49 <2> # 50 <3> # 51 <4> # 52 <5> # 53 <6> # 54 <7> # 55 <8> # 56 <9> # 57 # # 97 '%Ԍ # 98 # 99 # 100 # 101 # 102 # 103 # 104 # 105 # 106 # 107 # 108 # 109 # 110 # 111