Вот нашёл алгоритм тщательного анализа русских предложений. Сейчас веду "переговоры", могут дать кусок системы.
http://axofiber.org.ru:8100/rm/volkova-dissertation.pdf
Неактивен
>troll:create ("troll_head", "troll head")
>player:create ("pot", "pot with_smetana")
>parse "Надень на голову тролля горшок со сметаной"
Пре-парсинг:
with_smetana = со сметаной
wear = надень, надеть, одеть
on = на
head = голов*
troll = трол*
pot = горшок
wear on head troll pot with_smetana
verb = wear
prep1 = on
obj1 = head troll pot with_smetana
prep2 = with
obj2 = nil
head troll pot with_smetana не найден
head troll pot - не найден, with_smetana - найден pot with smetana
head troll найден, pot with_smetana - найден
Ok, let's see
verb = wear
prep1 = on
obj1 = head troll -> troll_head
obj2 = pot with_smetana -> pot
troll_head:wear {preps = {"on"}, obj = pot, names = "pot with_smetana"}
Неактивен