Bogens Verden 1994 nr.5



Redaktion Indhold dette nummer Bogens Verden Næste artikel Forrige artikel



Arabiske tegnkoder

Af Charlotte Wien, cand. mag.



Sådan set er det meget enkelt: ethvert tegn, der skrives på en computer, findes i computerens tegnsæt. De fleste computere har flere forskellige tegnsæt og enhver, der har købt og selv installeret en PC, har formentlig været udsat for, at æ, ø, å er blevet til mærkelige tegn som f.eks. [, eller ; eller japanske yen tegn. Det skyldes, at man ikke har valgt det danske tegnsæt. Problemets oprindelse er at finde i ASCII (American Standard Code for Information Interchange) - læg mærke til A'et - det var amerikanerne, der var først med et standardiseret tegnsæt - og deres behov for æ, ø og å er begrænset. Da vi i Danmark fik behov for et tegnsæt, lånte vi simpelthen nogle af pladserne i det amerikanske system og skiftede dem ud med æ, ø og å og lavede dermed en dansk version af ASCII. Det kræver også en forklaring: forudsætningen for udveksling af data mellem forskellige databaser og kommunikationssystemer er, at computerne internt registrere bogstaver om ikke ens - så dog så ensartet, så der kan foretages udveksling af data med en begrænset mængde tegnkonverteringer. Et af de mest anvendte tegnsæt er ASCII.

ASCII er et såkaldt 7-bit tegnsæt, det betyder, at der er plads til 27 tegn. Det kan sammenlignes med et skakbræt, hvor hvert felt har et navn - f.eks. d2 osv. Når man som bruger trykker på et "k", får en række elektriske impulser maskinen til at vælge netop "k" til skærmbilledet. Computere opererer ikke med kombinationer af bogstaver og tegn, når de skal identificere et bogstav, men derimod med 0er og 1taller eller binære tal, men princippet er det det samme. Maskinen kan identificere det tegn, man trykker på, gennem en streng af 0er og 1taller (eller ikke-strøm - strøm) - i er 7-bit tegnsæt er det derfor en kombination af 7 muligheder for 0 eller 1. Dem er der 128 af.

Desværre er det sådan, at man ikke kan anvende alle 128 pladser til tegn, ca. 20% er reserveret til controltaster, og derved er der reelt kun plads til 94 tegn indenfor et 7-bit tegnsæt. Vores alfabet fylder med store og små bogstaver 56 pladser, men dertil skal lægges de ti tal og 28 forskellige almindeligt anvendte tegn som ? eller ! - med andre ord: skal man gengive dansk med blot de mest almindelige tegn, er et 7-bit tegnsæt minimum. Meget computerkommunikation foregår stadigt i 7-bit.

De fleste computere anvender i dag et 8-bit tegnsæt, dvs. et tegnsæt med plads til 28 pladser dvs. 256. Da omkring 20% er reserveret til controltaster, er der reelt plads til 191 tegn. I nogle af de forskellige standarder for 8-bit tegnsæt er det lykkedes for æ, ø og å at få deres egne pladser. Hvis al datakommunikation foregik i 8-bit i en af de standarder, der har æ, ø og å ville man kunne sende alle de æ'er og ø'er og å'er, man havde lyst til, og modtageren ville få dem frem på sin skærm som de rigtige tegn. Problemerne med æ, ø og å har været irriterende, men ikke alvorlige, for man kan godt forstå en besked, hvor disse bogstaver mangler eller er gengivet forkert. Det er meget værre på de alfabeter, der ikke er latinske.


Det arabiske alfabet
Det arabiske alfabet består ligesom vores af 28 bogstaver. Da der ikke findes store og små bogstaver på arabisk, skulle man umiddelbart mene, at det ville være langt lettere at anvende et 7-bit tegnsæt til det arabiske alfabet. Det er det bare ikke af flere årsager: de, der kender lidt til det arabiske alfabet, vil vide, at de arabiske bogstaver skifter udseende, afhængigt af hvor de står i et ord. De fleste arabiske bogstaver kan derfor se ud på fire forskellige måder, afhængigt af om de står isoleret, først, midt eller sidst i et ord. Dertil skal lægges en række tegn, som under ét kan kaldes diakritiske (vokaltegn, konsonantfordoblingstegn o.l.), i alt har man behov for 147 pladser, hvis en computers tegnsæt skal rumme alle de grafiske udtryk i det arabiske alfabet. Det er m.a.o.. ikke muligt at skrive arabisk på en computer med et 7-bit tegnsæt, med mindre man ikke medtager de grafiske udtryk (dvs. de fire forskellige former som bogstaverne kan have), men kun regner i bogstavernes værdi. Men dette ville kræve et stykke programmel, der kan omsætte tegnværdierne til de rette grafiske udtryk. På samme måde som et k og et K for os er det samme bogstav, blot i to grafiske varianter, men alligevel har hver sin plads i tegnsættet, fordi det af hensyn til dataudveksling er det mest praktiske.

I princippet kan det synes ligegyldigt, om der findes en standard for at skrive på arabisk, når blot maskinerne kan give en pæn repræsentation af bogstaverne på skærmen og på printet. Men det er ikke lige meget, hvis man vil udveksle data.

Et af de områder, hvor der sker meget dataudveksling, er på det bibliografiske: reelt behøver man kun at taste de bibliografiske oplysninger om en bog ind én gang, derefter kan alle verdens biblioteker kopiere posten og genbruge den, når de selv anskaffer bogen til samlingen. Men det er klart, at hvis de danske databasesystemer ikke opfatter k'et som et k, når det kommer fra en udenlandsk database, er der ikke meget fidus i det. Forudsætningen for, at dataudveksling i stort omfang er mulig, er således, at alle verdens maskiner opfatter signalerne næsten ens. Det var da også på det bibliografiske område, at udviklingen af et ensartet tegnsæt for arabisk startede.


Arbejdet med at lave en standard for det arabiske alfabet
Udgangspunktet for etableringen af tegnsætstandard for arabiske tegn er året 1982. Der var ganske vist gjort forsøg med arabiske computersystemer helt tilbage til 1970, men forsøgene havde indtil da været ukoordinerede. Først i 1982 fremkom den første arabiske tegnsætstandard, der blev almindeligt accepteret - det var ASMO 499. Denne blev skabt af Den arabiske Liga i Tunis. Der gik ca. 2 år, før denne standard blev introduceret i de første bibliografiske databaser. Da ASMO 499 er baseret på et 7-bit tegnsæt, viste det sig hurtigt, at det havde de ovenfor nævnte mangler i forhold til det arabiske alfabet. Der blev derfor udført forsøg med andre tegnsæt. Dette betød, at en lang række af de bibliografiske databasesystemer, der blev udviklet, var inkompatible. Alligevel blev det ASMO 499, der blev grundlaget for en lang række bibliografiske databasesystemer: MINISIS, STAIRS og DOBIS/LIBIS. Sideløbende hermed udviklede Den arabiske Liga et 8-bit tegnsæt for arabisk kendt som ASMO 708.

Japanerne havde i aller højeste grad mærket problemerne med de alt for små tegnsæt. De ideofonografiske sprog indeholder mange tusind tegn - og hverken 7- eller 8-bit var nok til dem. De gik derfor i gang med at udvikle 16-bit tegnsættet. Da det havde vist sig, at der ofte var behov for at gengive mere end et alfabet i f.eks. bibliografiske poster (f.eks. Japansk og engelsk), mente japanerne, at den bedste løsning var at lave et 16-bit tegnsættet, der kunne rumme omkring 65.000 tegn.

I den arabiske verden, især i de rige olielande, skævede man til udviklingen i Japan. På visse af de arabiske forskningsbiblioteker havde man ligeledes behovet for at kunne gengive flere alfabeter på en gang. Det første udkast til et 16-bit tegnsæt blev publiceret i 1986 og var resultatet af et Japansk/arabisk samarbejde mellem KIT (Knanzawa Institute of Technology, Japan) og University of Petroleum and Mining, Dhahran i Saudi Arabien. 16-bit tegnsættet viste sig langt lettere at arbejde med med henblik på flersprogede databaser, idet arabiske og ikke-arabiske bogstaver kunne defineres forskellige steder på et enkelt 16-bit tegnsæt. Fordelen var, at man kunne skifte mellem flere forskellige alfabeter uden en mængde styrekarakterer.

Udviklingen af et arabisk 16-bit tegnsæt i Japan satte skub i den udvikling, der i 1992 mundede ud i vedtagelsen af Unicode (16-bit)/ISO 10646 (32-bit). Reelt startede udviklingen af ISO 10646 i 1983. Baggrunden var de østasiatiske tegnsæt. Et 32-bit tegnsæt rummer mulighed for 232 tegn, eller ca. 4 mia. tegn. Ulempen ved dette er, at hvert enkelt tegn i følge denne standard vil fylde 4 byte (1 byte er lig 8 bit eller 8 0er og/eller 1taller) hvorved et tekstfil gemt i 32-bit tegnsæt vil fylde 4 gange så meget som en tekstfil gemt i et 8-bit tegnsæt). Samtidig betød 4 mia. tegn væsentligt flere tegn end, hvad der reelt er behov for - der findes ganske enkelt ikke 4 mia. tegn i verden. Dette var en af årsagerne til, at en gruppe software og hardware producenter gik sammen om at udforme Unicode i 1987. I 1991 førte det til dannelsen af Unicode Consortium, der udover at inkludere firmaer som IBM, Apple, Microsoft og Novell også bestod af medlemmer af RLG (American Research Library Group). Målet var at udvikle et 16-bit tegnsæt og at sikre, at en del af de overflødige karakterer, som konsortiet mente der var i 32-bit tegnsættet, blev fjernet.

I 1990 kunne ISO 10646s arbejdsgruppe præsentere det første udkast til ISO 10646, og kort tid efter frigav Unicode konsortiet Unicode version 1.0. I en periode så det ud til, at der ville blive tale om to tegnsæt-standarder, hvilket af hensyn til dataudveksling ville være særdeles uhensigtsmæssigt. Det lykkedes dog at få Unicode konsortiet og ISOs arbejdsgruppe til at samarbejde, således at da ISO i december 1991 sendte sit andet udkast til afstemning, var dette blevet modificeret i samarbejde med Unicode konsortiet, sådan at Unicodes version 1.1 og ISO 10646 (del 1) var næsten identiske. Dermed kunne ISO 10646 i september 1992 vedtages.

Da såvel Unicode som ISO 10646 rummer det arabiske alfabet, skulle man umiddelbart forvente, at disse tegnsæt i løbet af ganske kort tid ville afløse 7-bit og 8-bit tegnsættene, og at vi dermed alle ville være i stand til at skrive arabisk, hebraisk, kanji osv. til hinanden. Men så hurtigt sker det dog ikke. Ganske vist har en del producenter meldt ud, at de vil bruge de nye tegnsætstandarder, men problemet er stadig datakommunikationen. Jeg kan ikke fra min maskine sende en meddelelse ud til en anden maskine på arabisk og forvente at den anden maskine opfatter tegnene som arabiske. Med mindre den anden maskine har et program, der kan konvertere dem, når den får besked om at tegnene er arabiske. Sådan software kan godt fås og når det drejer sig om f.eks. e-mail, kan afsenderen skrive til modtageren, at han eller hun skal læse et givet dokument som ASMO 449, hvis kommunikationen er 7-bit, og modtageren vil derefter kunne fortælle sin maskine, at det pågældende stykke tekst skal læses i ASMO 449. Men det er besværligt! Det bliver for alvor problematisk, når man indenfor det samme felt ønsker at skrive i f.eks. både det latinske og det arabiske alfabet, og når meddelelserne indeholder andet end blot tekst. Her tænker jeg på bibliografiske poster. Problemet er her, at bibliografiske oplysninger indeholder en lang række feltbetegnelser, almindeligvis lavet i det latinske alfabet. Feltbetegnelserne er indrettet således, at computeren selv kan danne det format, brugeren ser, fordi den kender feltbetegnelserne og ved hvilken rækkefølge, oplysningerne skal optræde i på skærmen eller på udskriften. Problemet er fortsat det, der hedder flersproget computerarbejde, hvor der dels skal skrives i forskellige alfabeter indenfor samme felt, dels skal foregå en udveksling af data i forskellige alfabeter, samt at en total implementering af Unicode eller ISO 10646 vil betyde at alle poster vil fylde hhv. 2 eller 4 gange så meget som de gør nu.


Løsningen
Det er langt ude i fremtiden at forestille sig, at alt software såvel som hardware kan arbejde i alle alfabeter - men med Unicode og ISO 10646 er grundlaget lagt. Det man har opnået, er ensartede standarder for hvor de enkelte alfabeters tegn skal lægges i maskinens tegnsæt. For arabisk kommer det til at betyde, at alle de maskiner, der overholder enten Unicode eller ISO 10646, kan modtage de binære koder for f.eks. det arabiske shin gennem telekommunikationen, lagre det med den rette værdi og gengive det med det rette grafiske udtryk, uden at brugeren behøver at give maskinen særlige kommandoer. En konsekvent indførelse af en af de 2 tegnsætstandarder vil betyde, at datakommunikation i princippet kan foregå på alle alfabeter uden tegnkonverteringer. Tilbage står problemet med, at det hele fylder meget mere, men også her er der håb: dels bliver kunstig hukommelse billigere og større for hvert år, dels findes der forskellige datakompressioneteknikker.

For at kunne tage forskud på fremtidens glæder, er det indenfor de to standarder blevet tilladt at dele dem op i små stykker, der i princippet anvendes som enkelte 8-bit tegnsæt: et 32-bit tegnsæt identificerer hvert enkelt tegn gennem en streng af 32 0er eller 1taller - hvis det skal tegnes som et skakbræt, bliver billedet ganske uoverskueligt, idet der er tale om et skakbræt med over 200.000 rækker hver vej. Af hensyn til datakommunikationen (7- og 8-bit) samt det forhold at Unicode og ISO 10646 er lavet således, at de enkelte tegn ligger næsten på samme sted som i de gamle 7 og 8-bit standarder, er det muligt at skære brættet i mindre bidder og bruge de alfabeter, man har brug for til f.eks. datakommunikation. Unicode og ISO 10646 er nemlig opdelt i en række afsnit: man kan forestille sig systemet som en arkivskuffe med hængemapper: i hver hængemappe er der et antal dokumenter. Unicode/ISO 10646 er hele arkivskuffen, men softwareproducenterne kan vælge at understøtte en enkelt af hængemapperne eller blot enkelte af dokumenterne. De tegnsæt (eller dokumenter), der ligger i den pågældende hængemappe, kan således bruges i datatransmission mellem alle de maskiner, der understøtter de samme hængemapper. Når en softwareproducent ønsker at arabisere et program, skal han så lægge det arabiske alfabet i programmellets arkivskuffe. Herved kan programmet i princippet arbejde med og transmittere det arabiske alfabet. Når brugeren skal arbejde i eksempelvis det arabiske og det latinske alfabet på en gang er det også muligt, fordi der sagtens kan ligge et par dokumenter eller tegnsæt i maskinen samtidigt - brugeren skal blot give en kommando til maskinen om at skifte tegnsæt. På denne måde kan man skifte mellem to alfabeter i den samme bibliografiske post, tekstbehandlingsdokument og med lidt held sende e-mail i forskellige alfabeter - altså under forudsætning af at modtagerens maskine har de samme dokumenter eller tegnsæt i sin arkivskuffe. Enkelte softwareproducenter er allerede begyndt at tilbyde implementeringer af forskellige alfabeter til nogle tusind kroner for hvert.



Tilbage til toppen