|
Бранко Милосављевић1,
Милан Видаковић1, Душан Сурла2
1 Факултет техничких наука, Институт за рачунарство и аутоматику,
Нови Сад
2 Природно-математички факултет, Институт за математику,
Нови Сад
{mbranko, minja, surla}@uns.ns.ac.yu
Руковање вишејезичним
текстом у библиотечком информационом систему Бисис Вер. 3.0 MULTILINGUAL TEXT HANDLING IN LIBRARY INFORMATION SYSTEM BISIS
ver. 3.0
Апстракт: У раду су представљени аспекти Интернет/интранет информационог система БИСИС који омогућавају равноправан третман ћирилице и латинице приликом уноса, приказа, складиштења и претраживања текста. Систем користи Unicode кодни распоред за интеракцију са корисником односно за потребе приказа и уноса вишејезичног текста. За потребе интерне репрезентације текста и његово претраживање користи се кодни распоред дефинисан UNIMARC стандардом. Употреба овог кодног распореда омогућава ефикасну конверзију писама (ћирилице и латинице) у тексту. Мапирање између Unicode и UNIMARC кодног распореда је дефинисано у оба смера.
Abstract: This paper presents aspects of an Internet/intranet information system BISIS providing an equal treatment of cyrillic and latin alphabets while displaying, entering, storing and searching textual data. The system uses Unicode character set for interaction with users, ie. for the purpose of display and entering multilanguage text. Internal text representation utilizes a character set specified by the UNIMARC standard. The use of this character set enables efficient alphabet conversion (cyrillic and latin) in the text. Mapping between Unicode and UNIMARC character sets is defined in both ways.
Кључне речи: Unicode, UNIMARC, Java, претраживање текста, БИСИС
Key words: Unicode, UNIMARC, Java, text searching, BISIS
1. УВОД
Библиотечки информациони систем БИСИС развија се од 1993. године. Прва верзија овог система је урађена 1996. године, друга верзија 1998, а трећа верзија 2000. године. Преглед развоја овог система описан је у раду [1].
У верзији 3 развијен је сопствени текст сервер за индексирање и претраживање библиографских записа у UNIMARC [2] формату. Главне карактеристике овог сервера су: специјализованост која резултује бољим перформансама, вишеслојна клијент/сервер архитектура, коришћење Јава платформе и независност од коришћеног релационог система за управљање базом података. Подршка за Unicode стандард [3] доследно је спроведена у целокупном систему БИСИС верзија 3.
У раду је детаљно описано решење руковања вишејезичним текстом у систему БИСИС верзија 3.
2. КОДНИ РАСПОРЕДИ
За потребе рачунарске репрезентације текста у употреби су бројни стандарди који дефинишу одговарајуће кодне распореде знакова. Стандарде прописују тела која се баве стандардизацијом као што је ISO (International Organization for Standardization) или компаније као што је Microsoft. ISO стандарди који дефинишу кодне распореде за репрезентацију текста припадају фамилији ISO 8859 [4] и налазе се у употреби на Интернету. У питању су 8-битни кодни распореди фиксне ширине (single byte fixed width) од којих су у нашем окружењу најинтересантнији ISO 8859-2 (источноевропска латиница) и ISO 8859-5 (ћирилица). Компанија Microsoft у оквиру својих оперативних система није, нажалост, усвојила ове стандарде већ је дефинисала сопствене који се незнатно разликују од постојећих ISO стандарда. Међу њима су и кодне стране 1250 (источноевропска латиница) и 1251 (ћирилица) [5].
Размена вишејезичних текстова кодираних наведеним стандардима доноси више потешкоћа. Пре свега, ту је недостатак подршке за све стандарде на свим рачунарским платформама: на Microsoft-овим оперативним системима користе се кодни распореди које је дефинисао Microsoft, док се на Unix/Linux оперативним системима обично користе ISO кодни распореди. Под подршком за неки стандард подразумева се механизам који омогућава унос и приказ текста датог одговарајућим кодним распоредом у оквиру апликација и промену текућег коришћеног кодног распореда. Поред тога, постоји и недостатак одговарајућих фонтова који ће у оквиру графичких корисничких интерфејса обезбедити приказ текста датог у одговарајућим кодним распоредима.
Unicode стандард, кога је дефинисао Unicode конзорцијум а прихваћен је и као ISO стандард ISO 10646, полази од нешто другачијих принципа: тежи да обезбеди јединствени код за сваки знак, без обзира на коришћену рачунарску платформу, апликацију или језик. Основна идеја у његовој реализацији је да се за кодирање сваког знака користи 16 бита, а не 8 како је то обично случај. Употреба 16 бита омогућава истовремено представљање 216 различитих знакова што је, претпоставља се, довољно за све језике који су данас у употреби. Unicode-ом кодиран текст може имати више репрезентација, од којих су нам од значаја UTF-8 и UTF-16. Сваки UTF (Unicode Transformation Format) представља алгоритам мапирања сваке Unicode скаларне вредности на низ бајтова. Инверзно мапирање је такође дефинисано.
Основна карактеристика UTF-8 формата је да је то једнобајтни распоред променљиве дужине (single byte variable width); различити знакови у UTF-8 распореду заузимају један, два или више бајтова. Конципиран је тако да знакови из ASCII скупа имају исте кодове и у UTF-8, чиме се поједностављује руковање Unicode текстом у старијим системима који нису предвиђени за тако нешто. Због тога се налази у најширој употреби управо на Интернету као један од могућих распореда у којима су дати текстуални садржаји, пре свега HTML (HyperText Markup Lanuage) и XML (Extensible Markup Language) документи.
UTF-16 формат је оно што се често подразумева када се каже Unicode – двобајтни распоред фиксне дужине (double byte fixed width), где је сваки знак представљен помоћу тачно два бајта. На овај начин могуће је приказати око 63000 знакова, док се помоћу механизма тзв. парова сурогата може представити додатних око милион знакова. Механизам сурогата није од интереса за ову тему. UTF-16 формат је погодан за интерну репрезентацију текста у оквиру рачунарских програма, па се тако и користи у оквиру Java и Windows окружења.
За потребе формирања описа и складиштења библиографске грађе библиотечки информациони систем БИСИС вер. 3 користи стандард UNIMARC, који представља међународни библиотекарски стандард из ове области, односно његову домаћу верзију YUMARC. Овај стандард, између осталог, дефинише и сопствени кодни распоред који се користи за репрезентацију вишејезичног текста. У питању је комбинација неколико ISO стандарда. Основни концепт који је карактеристика овог кодног распореда је концепт текућег писма. Наиме, један исти код може представљати знакове различитих писама. Правилна интерпретација знака зависи од тога које писмо је тренутно постављено као текуће писмо. Текуће писмо се поставља у оквиру кодираног текста посебним једнобајтним ознакама. Уколико на самом почетку текста није дефинисано текуће писмо, подразумева се латиница. Текуће писмо важи као текуће све до наиласка на нову ознаку текућег писма или до краја текста. Кодирање знакова у оквиру UNIMARC-a је такво да он представља још један једнобајтни распоред променљиве дужине. YUMARC стандард обухвата ћирилично, латинично, грчко и старословенско писмо. Мапирање UNIMARC распореда на Unicode и обрнуто је дефинисано за све знакове који се налазе у оквиру оба стандарда, а имплементирано је у систему БИСИС верзија 3.
3. СКЛАДИШТЕЊЕ ДОКУМЕНАТА
Главна јединица обраде у систему БИСИС је UNIMARC запис, који представља машински читљив облик библиографске јединице. UNIMARC стандард дефинише формат намењен за складиштење и размену оваквих записа. Формат је секвенцијалне природе и прилагођен је складиштењу на различитим уређајима, укључујући данас доминантне хард дискове али и магнетне траке. За потребе физичког руковања подацима систем БИСИС користи релациону базу података, али и чува UNIMARC записе у њиховом оригиналном облику како би се поједноставила размена записа између различитих библиотечких институција. Као основне јединице информације UNIMARC запис чува стрингове текста. Стрингови су кодирани сопственим кодним распоредом, како је то описано у претходном одељку.
Следи пример једног стринга који представља текст Petar Petrović Njegoš (латиницом). Слика 1 представља дати стринг и његову кодирану репрезентацију у UNIMARC запису, где су вредности бајтова представљене хексадекадно. На самом почетку стринга налази се ознака која поставља латинично писмо као текуће писмо. Сви латинични знакови у овом примеру кодирани су помоћу једног бајта. Слика 2 представља еквивалентан текст Петар Петровић Његош дат ћирилицом. Сви знакови осим слова Њ кодирани су помоћу једног бајта, док је велико слово Њ кодирано помоћу два бајта. Код за ћирилично слово Њ је идентичан низу кодова за латинична слова n и j. Аналогно томе, кодови за ћирилична слова Љ и Џ су идентични низовима кодова за латинична слова lj и dž. Захваљујући тој особини UNIMARC кодног распореда текстови писани ћирилицом и латиницом разликују само у ознаци текућег писма. У примеру са слика 1 и 2 то су ознаке за латиницу (кодирано 1C) и ћирилицу (кодирано 1D).
Слика 1. Пример кодирања латиничног текста у UNIMARC запису
Слика 2. Пример кодирања ћириличног текста у UNIMARC запису
Уколико се ознаке текућег писма уклоне из кодираног текста добиће се идентични стрингови. Такви стрингови се могу ефикасно програмски поредити при чему се обезбеђује да се као једнаки стрингови појављују и парови стрингова датих у различитим писмима.
Приликом складиштења UNIMARC записа у базу података, осим складиштења самог записа који се чува у оригиналном облику, формирају се и индекси – структуре података чија намена је да обезбеде брзо претраживање текста. У оквиру индекса текст се складишти управо тако да се ознаке текућег писма уклоне из кодираног текста. Поред тога, текст се смешта у још једном облику: из њега се акцентована слова српске латинице (čćšžđ) замењују својим неакцентованим верзијама (cszdj) како би се корисницима који немају могућност уноса ових слова омогућила претрага. Индексирање и претраживање текста у оквиру текст сервера БИСИС-а детаљно је приказано у [6].
4. ПРИКАЗ И УНОС ТЕКСТА
Библиотечки информациони систем БИСИС је Интернет/интранет апликација. У оквиру интранета њени корисници су библиотекари који се превасходно баве обрадом библиографске грађе односно формирањем UNIMARC записа. За ту намену развијена је посебна клијент-апликација која омогућава претраживање и обраду библиографске грађе која је детаљно описана у [7]. Клијент апликација представља класичну апликацију која користи графички кориснички интерфејс. Развијена је у програмском језику Java који, између осталог, карактере чува у Unicode распореду односно UTF-16 формату. Програмско окружење језика Java користи стандардне механизме оперативног система за избор кодног распореда и распореда тастатуре приликом уноса текста, чиме је омогућено да се у оквиру Java-апликације може унети произвољан знак обухваћен Unicode стандардом. Слика 3 приказује форму за претраживање базе библиографске грађе у оквиру апликације. Слика илуструје могућност уноса Unicode знакова различитих писама помоћу стандардног механизма за избор тастатуре.
Слика 3. Унос текста са више писама у оквиру Java-апликације
Јава апликације за потребе приказа текста користе стандардне TrueType фонтове (Arial на Windows платформи, Lucida Sans на Linux-у, итд.) који у себи садрже описе словних ликова мапиране по Unicode стандарду. Уместо ових фонтова могуће је користити било који други Unicode фонт у TrueType или OpenType формату.
Јавни приступ библиотечком фонду у оквиру система БИСИС је могућ путем модула за корисничко претраживање [8]. Овај модул представља Web презентацију библиотеке која омогућава претраживање библиографске грађе и њено преузимање. HTML странице које чине ову презентацију кодиране су по UTF-8 распореду Unicode стандарда. Овај распоред подржавају сви савремени Web читачи. За коректан приказ странице потребно је да на клијент-рачунару постоје одговарајући Unicode фонтови. Web странице за корисничко претраживање користе стандардне такве фонтове (Verdana, Arial, односно Helvetica). Слика 4. представља пример странице која представља листу пронађених записа који садрже текст дат у више писама.
Унос текста у оквиру модула за корисничко претраживање се своди на попуњавање поља форме за постављање упита претраге. На жалост, различити Web читачи на различит начин кодирају знакове које уноси корисник у поља HTML форми. Netscape читачи на Windows платформи, на пример, сав текст кодирају према текућој системској кодној страни. Са друге стране, Microsoft Internet Explorer користи Unicode распоред за све знаке који не улазе у састав текуће кодне стране. Због тога је потребно извршити анализу унетог текста и података о карактеристикама Web читача на страни Web сервера да би се добијени подаци правилно интерпретирали. Подаци који су потребни за правилну интерпретацију се налазе у оквиру заглавља сваког захтева који Web читач упућује Web серверу по HTTP протоколу [9].
Слика 4. Пронађени записи који користе више писама
5. ПРЕТРАЖИВАЊЕ
На основу карактеристика складиштења текста, његовог приказа на екрану и метода уноса описаних у претходним одељцима можемо анализирати процес претраживања у оквиру система БИСИС. На страни корисника, у оквиру интранет клијент-апликација, сав текст се приказује у Unicode (UTF-16) распореду. Такође се сав текст и уноси по UTF-16 распореду. Приликом постављања упита за претрагу клијент-апликација формира одговарајући текстуални упит на основу попуњених поља форме. Тако формирани упит шаље се текст-серверу, посебном програмском модулу чија намена је да омогући складиштење, индексирање и претраживање UNIMARC записа. По пријему упита текст-сервер извршава следеће операције:
1. конвертује добијени Unicode текст у UNIMARC распоред,
2. из њега избацује све ознаке текућег писма (тиме се цео текст конвертује у латиницу), и
3. такав текст користи приликом претраживања индекса.
Овакво претраживање ће као поготке пронаћи све записе у којима се тражени текст појављује, без обзира на писмо којим су записи формирани. Када клијент затражи одређени запис који је пронађен током претраге, сервер ће му послати оригинални UNIMARC запис у коме су очуване све информације о коришћеном писму. Клијент ће потом извршити конверзију из UNIMARC распореда у Unicode за потребе локалне репрезентације записа и његовог приказа на екрану.
Са стране корисничког претраживања упити се текст-серверу шаљу од стране Web сервера. Задатак Web сервера је да формира одговарајући упит на основу попуњених поља у HTML форми Web странице. Формирање овог упита обухвата конверзију текста кога је послао Web читач у Unicode распоред. Такав упит се упућује текст-серверу који се понаша као у претходно описаном случају. Web сервер, по пријему резултата претраживања, преузима пронађене UNIMARC записе у њиховом оригиналном облику, текстуалне информације у њима конвертује из UNIMARC кодног распореда у UTF-16 распоред, и потом те информације уграђује у Web страницу конверзијом из UTF-16 у UTF-8 распоред. Коначан резултат кога види Web читач је страница са Unicode текстом где се као формат користи UTF-8, који је и стандардан формат за Web окружење.
6. ЗАКЉУЧАК
Библиотечки информациони систем БИСИС, у оквиру својих функција, омогућава равноправно коришћење свих писама за потребе писања текста за које постоји одговарајућа системска подршка (распореди тастатура и фонтови). Као основа имплементације која подржава ову особину користи се стандардни Unicode кодни распоред. Сва интеракција корисника са системом се одвија путем овог кодног распореда, било из интранет апликација или путем јавно доступних Web презентација. Са друге стране, за потребе интерне репрезентације и складиштења текста систем користи кодни распоред дефинисан UNIMARC стандардом. Употреба овог стандарда омогућава ефикасну конверзију различитих писама и обједињено претраживање ћирилице и латинице. Као коначан резултат систем БИСИС обезбеђује равноправну употребу ћирилице и латинице за унос и приказ текста, као и у процесу претраживања где ће постављање упита коришћењем ћирилице и латинице дати исте резултате, који обухватају документе писане помоћу оба писма.
ЛИТЕРАТУРА
[1] |
Сурла Д., Коњовић З., Милосављевић Б., Видаковић М., Библиотечки информациони систем БИСИС вер. 3.01, Девета међународна конференција "Информатика у образовању, квалитет и нове информационе технологије", Зрењанин 2000. стр. 494-504. |
[2] |
UNIMARC Manual: Bibliographic format, International Federation of Library Association and Institutions, IFLA Universal Bibliografic Control and International MARC Programme, New Providence, London 1994. |
[3] |
The Unicode Standard, Version 3.1, Unicode Consortium, 2001. http://www.unicode.org |
[4] |
ISO 8859-2:1987, Information Processing – 8-bit Single Byte Coded Character Sets – Part 2: Latin Alphabet No. 2
ISO/IEC 8859-5:1988, Information Processing – 8-bit Single Byte Coded Character Sets – Part 5: Latin/Cyrillic Alphabet
International Organization for Standards, http://www.iso.ch |
[5] |
Microsoft Corporation, http://www.microsoft.com |
[6] |
Милосављевић Б., Текст сервер UNIMARC записа, магистарска теза, Факултет техничких наука, Нови Сад 1999. |
[7] |
Видаковић М., Објектно-оријентисана спецификација и имплементација корисничког интерфејса за библиотечки информациони систем, магистарска теза, Факултет техничких наука, Нови Сад 1998. |
[8] |
Milosavljević B., Konjović Z., Arhitektura WWW prezentacije za pretraživanje u bibliotečkom informacionom sistemu, InfoScience 4/2000, Beograd 2000. str. 18-23. |
[9] |
R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach,
T. Berners-Lee. Hypertext Transfer Protocol — HTTP/1.1.
RFC 2616, IETF, http://www.ietf.org/rfc/rfc2616.txt |
// Пројекат Растко
/ Филологија и лингвистика
//
[ Промена писма| Претрага | Мапа | Контакт
| Помоћ ]
|