К строкам может быть применена операция сравнения,
которая называется "приблизительно равно" и обозначается "".
Она возвращает натуральное значение, равное отклонению двух строк в баллах, или "null",
если две строки не равны.
Между словами бывают следующие отличия (differences): лишняя буква, пропущенная буква, другая буква (т.е. одна буква заменена на другую). Отличия "заглавная буква" - "строчная буква", "аббревиатура" - "слово из строчных букв" рассматриваются как отличие "пропущенная буква" (как наличие-отсутствие двух непечатных символов-префиксов, создающих заглавную букву и аббревиатуру). Каждое отличие оценивается в четыре балла (т.к. неуместность принимает значения в диапазоне от нуля до трех). Из всех вариантов выбирается такой набор отличий, при котором сумма баллов минимальна - эта минимальная сумма называется несовместимостью (incongruity). Разница положений двух слов относительно базовой линии (идеи Unicode2 для кодировки Unicode) называется неуместностью (irrelevance). Если представить положения в виде последовательности непечатных символов, то неуместность вычисляется так: первые одинаковые символы положений отбрасываются, максимальная длина получившихся обрубков есть неуместность. Сумма несовместимости и неуместности называется отклонением (deviation) двух слов. При обнаружении более двух отличий "другая буква" слова не являются (приблизительно) равными.
Между предложениями бывают следующие отличия: лишнее слово, пропущенное слово, перестановка двух слов (перестановка невозможна, если слова разделены знаком пунктуации), другое слово (т.е. одно слово заменено на другое), свертка (фразы в аббревиатуру из начальных букв каждого слова фразы). Каждое отличие оценивается в шестнадцать баллов (для свертки - по шестнадцать баллов на каждую букву аббревиатуры). Делается попытка разобрать отличие "другое слово" как набор отличий между парой слов с целью сделать количество баллов меньше шестнадцати (если два слова не равны, то засчитывается отличие "другое слово" в шестнадцать баллов). Пробел между словами может быть исключен или заменен на дефис - и то, и другое оценивается в один балл. Из всех вариантов выбирается такой набор отличий между предложениями, при котором сумма баллов минимальна. Эта сумма называется отклонением двух предложений. При обнаружении более двух отличий "пропущенное слово" предложения не являются (приблизительно) равными.
Отклонение двух строк, если хотя бы одна из них содержит более одного слова, вычисляется также, как отклонение двух предложений, но знак "точка" расценивается как знак пунктуации (т.е. он запрещает перестановки слов). Если обе строки состоят из одного слова каждая, то отклонение двух строк вычисляется как отклонение двух слов. В любом случае буква "точка" в конце строк не принимается во внимание. Если одна из сравниваемых строк есть "null", то отклонение двух строк равно шестнадцать баллов.
Записи, вошедшие в результат запроса, отсортированы и выдаются в порядке возрастания разногласия (т.е. сначала идут записи с наименьшим разногласием).