Този документ описва формата на данните на KBE
Dictionary. Става въпрос за файловете en_bg.dat и
bg_en.dat, които се разпространяват с речника. Също така
се описва и метода за достъп до данните, защото формата на данните е
предвиден за работа с този метод.
'\n' (само байтът 10).'\0' и завършва с '\0'
(байта 0). За разделител между отделните ЕЛЕМЕНТИ отново се
използва същият символ.\0ДУМА\nПРЕВОД\0ДУМА\nПРЕВОД\0ДУМА\nПРЕВОД\0 ... \0ДУМА\nПРЕВОД\0
"
", "'", "-" (интервал, единична
кавичка, която се използва като апостроф и тире). В бъдещи версии на
базата данни ДУМИТЕ могат да съдържат и други символи, но за сега могат
да съдържат само споменатите по-горе символи. Няколко примера за думи:
AABLE-BODIEDA-BOMBRUNPENNY-IN-THE-SLOT MACHINEPHEASANT'S EYEPHENO-ААКОАКСИАЛЕН ЛАГЕРАРТИЛЕРИЙСКА СТРЕЛБА"ABLE-BODIED" и
"A-BOMB" са използвани не самите думи, а следните низове
"ABLEBODIED" и "ABOMB".engbul.dat)
PENNY-IN-THE-SLOT MACHINE, съдържа 25
знака и е номер 28397buleng.dat)
ФРАЗЕОЛОГИЧЕСКО СЪЧЕТАНИЕ, съдържа 25
знака и е номер 17813В, съдържа 4981 знака и е номер 1276Форматът и подреждането на данните са съобразени да работят с Unix/Linux ОС, С/С++ низове (стрингове) и двоично търсене. Именно двоичното търсене е в основата на бързодействието на KBE Dictionary. Основнният проблем при реализирането на този алгоритъм е, че ЕЛЕМЕНТИТЕ са с различна (нефиксирана) дължина. Коато определяме средата намираме средата на файла, а не средния елемент. И от там трябва да се придвижим напред по файла докато намерим началото на най-близкият елемент и да извършим сравнение с него, за да определим следващият интервал, който ще претърсваме. В случай когато намереният елемент е крайният елемент в интервала, трябва да се се върнем назад и да намерим началото на елемента в който сме попаднали и да използваме него за сравнение. Сравнението извършвано между въведената от потребителя дума и ДУМИТЕ в базата се извършва отново по съдържание. От двете думи се изтриват всички символи, които не са букви от съответната азбука и тогава се извършва сравнението.
За по-подробно описание и реализация на алгоритъма погледнете файла Database.cpp. Коментарът към изходния код в този файл е доста добър.