Міністерство освіти і науки України
Національний університет
“Львівська політехніка”
Кафедра“Інформаційні системи і мережі”
TITLE \* MERGEFORMAT Створення користувацьких словників за допомогою мови DSL
Методичні вказівки до лабораторної роботи
з курсу KEYWORDS \* MERGEFORMAT "Системи автоматизованого перекладу"
для студентів спеціальності SUBJECT \* MERGEFORMAT "Прикладна лінгвістика" базового напрямку 6.030.500 "Філологія"
Затверджено на засіданні кафедри
“Інформаційні системи і мережі”
Протокол № _____
від “___” __________ SAVEDATE \@ "yyyy" \* MERGEFORMAT 2007_ року
Львів - 2007
TITLE \* MERGEFORMAT Створення користувацьких словників за допомогою мови DSL. Методичні вказівки до лабораторної роботи з курсу KEYWORDS \* MERGEFORMAT "Системи автоматизованого перекладу" для студентів спеціальності SUBJECT \* MERGEFORMAT "Прикладна лінгвістика" базового напрямку 6.030.500 "Філологія", AUTHOR \* MERGEFORMAT Голощук Р.О., ст. викладач, Вовк О.Б., асистент, Львів, Вид-во Національного університету “Львівська політехніка”, DATE \@ "YYYY" \* MERGEFORMAT 2007.
Укладачі
AUTHOR \* MERGEFORMAT Голощук Р.О., ст. викладач,
Вовк О.Б., асистент
Відповідальний за випуск Пасічник В.В., д.т.н., проф.
Мета роботи. Ознайомитися та на практиці засвоїти основні принципи створення користувацьких словників за допомогою мови DSL (Dictionary Specification Language).
Теоретичні відомості
Створення словників мовою DSL
Компанія ABBYY Software House анонсувала нове сімейство електронних словників. У нього ввійшли три продукти: нова версія англо-російсько-англійського словника Lingvo 8.0, багатомовний словник Lingvo Multilingual Edition і версія Lingvo 8.0, адаптована для кишенькових пристроїв. У новій версії англо-російсько-англійського Lingvo обновлені словник загальної лексики і словник по обчислювальній техніці і програмуванню. Крім того, у складі продукту з'явився новий граматичний словник LingvoGrammatical (En-Ru), що являє собою опис граматики англійської мови. У його склад входить близько 500 граматичних тем (статей) з описом кожного правила граматики, а також приклади використання.
Мабуть, єдиний недолік - це недостатньо продуманий вибір слів для словників. Зрозуміло, задовольнити вимоги кожного користувача до словникового наповнення неможливо — для цього, власне, призначена убудована в систему Lingvo опція підключення користувальницьких і зовнішніх словників у стандарті DSL. Але відсутність, наприклад, у словниках по нафті і газові прямих посилань на переклад таких абревіатур, як ОПЕК (OPEC — Organization of Petroleum Exporting Countries, Організація країн — експортерів нафти) і МЕА (IEA — International Energy Agency, Міжнародне енергетичне агентство), можна вважати істотною недоробкою.
Починаючи з версії Lіngvo 6.0, до складу системи входить компілятор мови DSL (Dіctіonary Specіfіcatіon Language).
DSL (Dictionary Specification Language) – мова, розроблена компанією ABBYY для розмітки словникових статей відповідно до технології показу словників, прийнятої в Lingvo. Компілятор мови DSL входить до складу ABBYY Lingvo починаючи з 6 версії. У такий спосіб будь-який користувач словника може створити і поширювати свій власний словник.
Основне призначення мови DSL - опис того, як показувати словникову статтю. Мова не визначає в точності структуру картки чи можливі типи інформації. Наприклад, у мові DSL немає поняття "синонім", "лексичне значення" або "синтаксична модель", але є поняття "курсив", "посилання", "підстаття" і т.д. Словник може бути створений прямо мовою DSL у виді простого текстового файлу. Цей файл варто зберегти в кодуванні ANSI або Unicode, а потім змінити розширення файлу на dsl.
Приклад вмісту вихідного файлу і відповідної йому картки в Lingvo:
словниковий
[m1][p][i][c][com][lang id=2]прил.[/p] від[/i] [ref]словник[/ref][/lang][/com][/c][/m] [m1][trn]lexical; lexicographic[/trn][/m] [m2][*][ex][lang id=2]багатий словниковий запас[/lang] — copious vocabulary[/ex][/*][/m] [m2][*]- [ref]словниковий склад[/ref][/*][/m]
Компілятор Dslcomp.exe знаходиться в корені папки Lіngvo. Компілятор дозволяє створювати словники, які потім можна поставити на полицю користувача системи Lіngvo, передати для використання колегам і друзям або навіть запропонувати всьому співтовариству користувачів Lіngvo, звернувшись на сайт www.lіngvo.ru. При цьому автори користувацьких словників мають у своєму розпорядженні такі ж можливості форматування карток, як і творці системних словників Lіngvo. На відміну від тих словників, які можна оперативно створювати і поповнювати прямо із системи Lіngvo, словник мовою DSL створюється в зовнішньому текстовому процесорі, а потім компілюється.
Існує два способи створення користувальницьких словників для Lingvo:
перший спосіб, який полягає в оперативному поповненні словника «на льоту» безпосередньо з оболонки Lingvo, дозволяє створювати словники з картками простої структури, що мають тільки заголовок і переклад. Можливості візуальної і змістовної розмітки для таких карток відсутні.
другий спосіб – створення словника з використанням мови DSL (зручно для ведення словників великого обсягу). Картки словників, створюваних за допомогою DSL, можуть бути максимально схожі за структурою на картки системних словників Lingvo. Картки можуть містити всі необхідні елементи оформлення (bold, italic, underline, колір тексту, відступи), посилання на мультимедійні (звукові і графічні) файли-ілюстрації, перехресні посилання між картками одного або декількох словників. Можлива розмітка вмісту карток по зонах перекладу, коментарів і прикладів.
Структура словника на мові DSL
Вихідний текст словника повинен бути записаний у виді простого текстового файлу. Текст у словнику варто зберегти в ANSі-кодуванні або як Unіcode Текст, а потім змінити розширення файлу на .dsl (наприклад, у Mіcrosoft Explorer).
Словник мовою DSL являє собою послідовність карток. Кожна картка складається із заголовка (слова-заголовка або словосполучення) і тексту картки. При використанні словника в системі Lіngvo заголовок показується в Списку Слів-Заголовків, а текст картки (разом із заголовком) видається у вікні картки як переклад або тлумачення.
Оскільки словник може бути не тільки на російській або англійській мовах, але й на італійській, французькій, німецькій і т.д. (повний список підтримуваних мов приведений у розділі Підтримувані мови), то для коректної роботи створеного DSL-словника на початок текстового файлу приписується заголовок, що містить ім'я словника (#NAME "ім'я словника"), вихідна мова (#ІNDEX_LANGUAGE "ім'я мови") і мова перекладу (#CONTENTS_LANGUAGE "ім'я мови").
Наприклад: При створенні англо-російського словника General у початок файлу треба додати наступний заголовок:
#NAME "General"
#ІNDEX_LANGUAGE "Englіsh"
#CONTENTS_LANGUAGE "Russіan"
Компіляція словника
Підготовчий .dsl-файл, що містить словник, компілюється за допомогою DSL-компілятора. Щоб запустити компілятор:
виберіть пункт DSL Compiler в меню Пуск/Програми/ABBYY Lingvo 8.0 Tools. Перед Вами відкриється вікно DSL-компілятора.
Опція LUD активна тільки при компілюванні користувацьких словників з розширенням .adc від старих версій Lingvo чи .lud від версій 6.0, 6.5 і 7.0. У цих випадках необхідна наявність відповідних файлів з розширеннями .adt і .adх відповідно, вмісту карточки.
Відмінності LUD і LSD словників:
Після вибору усіх необхідних опцію потрібно натиснути "Компілювати". Результатом компіляції і стиснення будуть два файли (.dde і .lsd). У випадку виникнення помилок генерується файл .dde.
Щоб підключити створений словник до існуючої версії Lіngvo в меню Сервіс вибирають команду Мови і словники...
Компіляція dsl-файлів, створених відповідно до вимог попередніх версій DSL компілятора:
Для компіляції старого dsl файлу варто додати заголовок у початок dsl-файлу:
назву словника;
вихідну мову;
мову перекладу;
кодову сторінку.
Наприклад, для опису англо-російського словника LіngvoTest ця інформація буде виглядати таким способом:
#NAME "LingvoTest"#INDEX_LANGUAGE "English"#CONTENTS_LANGUAGE "Russian"#SOURCE_CODE_PAGE "Cyrillic"
Якщо в картках словника зустрічається не тільки текст мовою перекладу, але і фрагменти тексту на інших мовах, то такі фрагменти необхідно коректно розмітити за допомогою тегів вказівки мови - lang (Докладніше: Команди DSL).
Панель інструментів діалогу "Мови і словники":
- Створити новий словник. Дозволяє створити новий користувацький словник.
- Підключити словник із файлу. Дозволяє підключити словник із файлу.
- Видалити словник. Видаляє вибраний словник.
- Вверх. Дозволяє переміщати виділений словник вверх по списку словників. (Збільшує пріоритет словника).
- Вниз. Дозволяє переміщати виділений словник вниз по списку словників (Зменшує пріоритет словника).
- Інформація про словник. Дозволяє отримати інформацію про словник, що міститься в його анотації (наприклад, назва словника, кількість словникових статей, автор і т.д.), і проглянути шлях до файлу словника.
Команди DSL
Усі команди мають вигляд: "[a]", де a - конкретна команда (один або кілька символів). Відповідна їй команда вимикання - "[/a]".
[b], [/b] - напівжирний текст;
[і], [/і] - курсивний текст;
[u], [/u] - підкреслений текст;
[c], [/c] - кольоровий текст;
[*], [/*] - виділення тексту як вторинне зображення;
[mN] - установлюється зсув абзацу щодо лівого краю картки, N - довільна цифра від 0 до 9. Абзац після цієї команди до експліцитної команди відміни зсуву ("[/m]") у поточній картці буде зсунений від лівого краю на число пробілів, кратне числу N у команді;
[trn], [/trn] – виділення зони перекладу (індексація словників);
[ex], [/ex] - виділення зони прикладу (індексація словників);
[com], [/com] - виділення зони коментарів (індексація словників);
[!trs], [/!trs] – відключення індексації всередині зони (індексація словників);
[s],[/s] – виділення зони мультимедіа (використовуется для вставки картинок чи звукових файлів);
[url],[/url] – посилання на web-сторінку;
[p], [/p] - виділення помет (при нажиманні на помету появляется роз‘яснюючий текст);
[lang][/lang] – мова слова чи словосполучення; вказується для слів ввсередині карточки, мова яких відрізняється від мови перекладу (в цьому випадку для слів можливий пошук, переклад із карточки, пошук і т.д.) Параметри: ім‘я мови чи ідентифікатор мови (наприклад, [lang id=1]). І‘мя мови вказується в лапках, наприклад [lang name="Russian"]. Список DSL мов приведений у розділі "Мови, які підтримуються";
[ref][/ref] - посилання на карточку в тому ж словнику, до якого відноситься Картка , що містить це посилання (еквівалентна висновку заголовка карточки, на яку ставиться посилання, у подвійні кутові дужки - <<>>);
[sub][/sub] - нижній індекс;
[sup][/sup] - верхній індекс.
Важливо! Вкладення зон індексації і команд форматування тексту одного типу недоступне за правилами мови DSL.
Коментарі DSL
У вихідному тексті словника можуть бути зроблені коментарі, що ігноруються при відображенні. Будь-які конструкції мови DSL у тексті коментарів недійсні. Текст коментарів береться в подвійні фігурні дужки. Цими дужками може охоплюватися кілька рядків.
Текст коментарів може починатися в будь-якій позиції рядка, у будь-якій позиції можуть зустрічатися і подвійні фігурні дужки. Єдиним обмеженням є те, що коментарі не можуть розривати заголовка картки або підкартки (але можуть починатися на тому же рядку після заголовка). Рядок, перша позиція якого відноситься до коментаря, не може вважатися рядком заголовка картки, але після коментаря на цьому рядку може починатися заголовок підкартки.
Не можна використовувати вкладені коментарі.
Стандартні скорочення (мітки) DSL
Щоб виділити (шрифтом або кольором) мітку в картці користувацького DSL словника:
Виділіть мітку в тілі картки за допомогою команди [p], команда вимикання - [/p], (наприклад, гл. – мітка виділена курсивом і кольором: [c][i][p]гл.[/p][/i][/c]).
Внесіть необхідні зміни у файл abbrev.dsl (Нова позначка є заголовком нової картки в словнику abbrev.dsl. Тілом картки повинен бути текст, що Ви хочете побачити при підведені курсору миші до цього слова).
Скомпілюйте abbrev.dsl за допомогою DSL-компілятора (при цьому режим "Автоматично додавати розмітку, необхідну для пошуку по вмісту карток словника" повинен бути виключений.).
Скомпільований словник варто покласти в каталог Lіngvo з ім'ям abbrev.lsd.
Увага! Пункти 2-4 необхідні тільки у випадку, якщо мітка, яку внесли, відсутня у словнику abbrev.dsl.
Форматування тексту в DSL
Для форматування тексту в DSL існують спеціальні засоби, що умовно називаються командами. Для кожного засобу форматування є дві команди: включити і виключити. Відповідно, тим або іншим способом буде відформатований текст, укладений між цими двома командами.
Усі команди включення мають вигляд "[a]", де a - конкретна команда (один або два символи) форматування. Відповідна їй команда вимикання - "[/a]".
Для форматування тексту призначені наступні засоби:
напівжирний текст (команда "b");
курсивний текст (команда "і");
підкреслений текст (команда "u");
кольоровий текст (команда "c").
Ім'я кольору пишеться без лапок. Якщо ім'я кольору не зазначено, то використовується колір, встановлений в оболонці Lіngvo для виділення в картці (наприклад, [c],[c green]).
Зверніть увагу, що пробіли перед командами і після них присутні тільки тоді, коли вони реально потрібні для відображення. У результаті можна форматувати навіть частину слова. Якщо пробіл стоїть і перед командою, і після неї, то в остаточному відображенні буде стояти тільки один пробіл.Границі способів форматування не можуть перетинатися. Якщо яка-небудь команда була включена раніше за іншу, вона повинна бути виключена пізніше.
Як зробити іконку для користувацького словника.
Якщо словник повинен мати свій значок на книжковій полиці, слід зробити наступне:
створити зображення у форматі BMP розміром 14x21 пікселів (14 - ширина, 21 - висота). Файл, що містить дане зображення, повинний бути названий «aaa.bmp», де aaa - ім'я файлу відповідного словника без розширення. Наприклад, якщо Ви хочете створити значок для словника з ім'ям файлу MyDict.lsd, то файл із зображенням повинний називатися MyDict.bmp.
створений .bmp-файл помістити в папку, у якій знаходиться файл словника.
запустити Lingvo або оновити запуск у випадку, якщо воно вже запущене. Якщо словник ще не підключений, то підключите його через діалог "Мови і словники" або за допомогою drag&drop.
Як зробити посилання з користувацького словника (формат DSL) на інший словник
Для цього необхідно використовувати команду DSL [ref dict=""][/ref] із вказівкою імені словника і заголовка його картки.
Наприклад:
[ref dict="Another dictionary (En-Ru)"]some word[/ref]
Структура картки на мові DSL
Картка на мові DSL має наступну структуру:
Слово-заголовок
Пишеться з першої позиції нового рядка. У заголовку картки можуть зустрічатися алфавітні символи російської й англійської мов, цифри, пробіл, дефіс, '," і {}-використовується для виділення в заголовку частин, що не сортуються.
Тіло картки
Тіло картки записується з наступного рядка після заголовка. Кожен рядок у ньому повинен відступати від першої позиції хоча б на один пробіл або табуляцію. Тіло картки простягається до заголовку наступної картки (ознакою його є символ у першій позиції, відмінний від пробілу або табуляції) або до кінця файлу.
У картці можуть виділятися наступні зони:
помітки (за бажанням);
зона перекладу;
зона коментарів (за бажанням);
зона прикладів (за бажанням);
картинки, звук (за бажанням).
посилання на web-сторінки (за бажанням).
Зауваження. Порядок, у якому розташовані зони необов'язковий: мітки, картинки, URL- посилання не мають строго фіксованого місця в тілі картки.
Якщо тіло картки занадто довге, Ви можете зменшити кількість інформації, одночасно відображуваної на екрані. Для цього частина картки (наприклад, словосполучення зі словом заголовком) позначається як вторинне відображення і показується, тільки якщо користувач цього забажає. Як вторинне відображення може бути заданий будь-який фрагмент картки (крім заголовка); кількість таких фрагментів також може бути будь-яким. У картці Lіngvo вони можуть показуватися або не показуватися разом. У цей час оболонка Lіngvo при показі вторинного відображення використовує шрифт іншого кольору.
Для виділення тексту як вторинного відображення:
початок вторинного відображення маркірується командою "[*]", а його кінець - командою "[/*]" .
Між тілом однієї і заголовком наступної картки для зручності читання вихідного тексту можуть бути вставлені одна або кілька порожніх рядків. Картки можна розташовувати в довільній послідовності, не дотримуючись алфавітного порядку слів заголовків. Не допускається наявність в одному словнику двох карток з однаковими заголовками, однак допускається наявність двох заголовків, що розрізняються регістром.
Глосарій
Хід роботи
Запустіть електронний словник ABBYY Lingvo та ознайомтесь з головним вікном та пунктами меню.
Створіть словник користувача за допомогою мови DSL. Наповніть його 5 новими словами за тематикою курсової роботи.
Во внешнем текстовом редакторе HYPERLINK "mk:@MSITStore:C:\\Program%20Files\\ABBYY%20Lingvo%2010%20Multilingual%20Dictionary\\Lingvo1.chm::/DSL_MAIN_DLG.htm" создайте файл словаря, используя команды языка DSL.
Сохраните текст словаря в кодировке ANSI или Unicode.
Измените расширение текстового файла словаря на .dsl (например, в Проводнике Windows).
HYPERLINK "mk:@MSITStore:C:\\Program%20Files\\ABBYY%20Lingvo%2010%20Multilingual%20Dictionary\\Lingvo1.chm::/DSLCompiler/dictionary_conp.htm" Скомпилируйте полученный DSL-словарь. (за допомогою DSL Compiler)
У Lingvo відключіть (деактивізуйте) створений словник користувача (зі збереженням файлів).
Підключіть (зробіть активним) словник користувача методом drag&drop у середині Lingvo.
Встановіть максимальний пріоритет для створеного словника користувача.
Закрийте ABBYY Lingvo. Оформіть звіти.
Зміст звіту
Короткі теоретичні відомості.
Опишіть основні дії, які Ви виконували при перекладі.
Вкажіть слова, переклад цих слів та активні словники які використовувались для перекладу.
Вкажіть назву словника користувача та слова, якими Ви його наповнили.
Зразок парадигми двох слів з словника користувача.
Висновки.
Література
Ревзин И.И., Розенцвейг В.Ю. Основы общего и машинного перевода. М.: Высш. шк., 1963.
Швейцер А.Д. Теория перевода: Статус, проблемы, аспекты. — М.: Наука, 1988.
Жалдак М.І., Морзе Н.В., Науменко Г.Г. "Основи інформатики та обчислювальної техніки". - Інформатика, № 31-32, "Шкільний світ"/Київ, 2001.
Допомога до ABBYY Lingvo.