К строкам может быть применена операция сравнения, которая называется "приблизительно равно" и обозначается "≈". Она возвращает натуральное значение, равное отклонению двух строк в баллах, или "null", если две строки не равны.
Между словами бывают следующие отличия (differences): лишняя буква, пропущенная буква, другая буква (т.е. одна буква заменена на другую). Отличия "заглавная буква" - "строчная буква", "аббревиатура" - "слово из строчных букв" рассматриваются как отличие "пропущенная буква" (как наличие-отсутствие одной из двух управляющих отметок, создающих заглавную букву и аббревиатуру). Каждое отличие оценивается в 1 балла (т.к. неуместность [см. ниже] принимает значения в диапазоне от нуля до трех). Из всех вариантов выбирается такой набор отличий, при котором сумма баллов минимальна - эта минимальная сумма называется несовместимостью (incongruity). При обнаружении более 3 отличий "другая буква" слова не являются (приблизительно) равными.
Между фразами бывают следующие отличия (differences): лишнее слово, пропущенное слово, перестановка двух слов, другое слово (т.е. одно слово заменено на другое), свертка (нескольких подряд идущих слов в аббревиатуру из начальных букв каждого слова). Каждое отличие оценивается в 16 баллов (для свертки - по 16 баллов на каждую букву аббревиатуры). Делается попытка разобрать отличие "другое слово" как набор отличий между парой слов с целью уменьшить количество баллов (если два слова не равны, то засчитывается отличие "другое слово"). Пробел между словами может быть исключен или заменен на дефис - и то, и другое оценивается в 1 балл. Из всех вариантов выбирается такой набор отличий, при котором сумма баллов минимальна - эта минимальная сумма называется отклонением (deviation).
Выводимые записи отсортированы и выдаются в порядке возрастания разногласия суммы отклонения и несовместимости.
P.S.
Величину этой суммы можно присвоить полям таблицы.