Статья: Компьютерный морфологический разбор слов русского языка
правило("вая","вый").
правило("вые","вый").
правило("ая","ой").
правило("ие","ой").
правило("ую","ой").
/* предикат осуществляющий перебор всех вариантов */
/* аффиксов для этого слова */
аффикс("",Аффикс,Аффикс).
аффикс(Корень,Слово,Аффикс):-
frontchar(Слово,Буква,Слово1),
аффикс(Корень1,Слово1,Аффикс),
frontchar(Корень,Буква,Корень1).
/* сначала просмотри все исключения */
морфология(Слово,Осн):-
исключение(Слово,Осн),!.
/* если не удачно, то переберем все аффиксы слова */
морфология(Слово,Осн):-
аффикс(Корень,Слово,Аффикс),
правило(Аффикс,АффиксиОсн),
concat(Корень,АффиксиОсн,Осн),!.
/* если неудачно, то значит слово несклоняемо */
морфология(Слово,Слово):-!.
/* вызов процедури морфологического разбора */
Goal морфология("зеленую",Слово).
Ответ ПРОЛОГА: Слово = "зеленый"
Как видно, в программе всего 13 строчек, а остальное база знаний. Теперь посмотрим как справится с этой задачей РЕФАЛ.
Пример на логическом языке программирования РЕФАЛ - 5:
-----------------------
/* программа по распознаванию морфологии слов руссского языка */