Системы искусственного интеллекта. Изучение приемов семантического анализа предложений естественного языка посредством падежной грамматики, страница 4

relation("brigadapr"," brigada 6","BRIGADES").

relation("brigadapr"," brigada 7","BRIGADES").

relation("brigadapr"," brigada 8","BRIGADES").

relation("brigadapr"," brigada 9","BRIGADES").

relation("brigadapr"," brigada 10","BRIGADES").

relation("brigadapr"," brigada 11","BRIGADES").

relation("brigada","Efremova M","brigada 1").

relation("brigada","Ignatev A","brigada 1").

relation("brigada","Durkin D","brigada 2").

relation("brigada","Eremina M","brigada 2").

relation("brigada","Markov V","brigada 3").

relation("brigada","Gluhova M","brigada 3").

relation("brigada","Kononova N","brigada 4").

relation("brigada","Fedorov K","brigada 4").

relation("brigada","Koyfman D","brigada 5").

relation("brigada","Hicenko E","brigada 6").

relation("brigada","Chaban S","brigada 6").

relation("brigada","Kichaeva N","brigada 7").

relation("brigada","Golubeva M","brigada 7").

relation("brigada","Sorokin A","brigada 8").

relation("brigada","Shilak D","brigada 8").

relation("brigada","Kazygashev K","brigada 9").

relation("brigada","Tcarapkin V","brigada 9").

relation("brigada","Korsun M","brigada 10").

relation("brigada","Kylikov I","brigada 10").

relation("brigada","Gallyamov O","brigada 11").

relation("brigada","Andrycenko A","brigada 11").

relation("zashitila","brigada 1","laba work 1").

relation("zashitila","brigada 1","laba work 2").

relation("zashitila","brigada 2","laba work 1").

relation("zashitila","brigada 3","laba work 1").

relation("zashitila","brigada 4","laba work 1").

relation("zashitila","brigada 6","laba work 1").

relation("zashitila","brigada 7","laba work 1").

relation("zashitila","brigada 8","laba work 1").

relation("zashitila","brigada 9","laba work 1").

relation("zashitila","brigada 10","laba work 1").

relation("zashitila","brigada 11","laba work 1").

% Преобразование строки в список слов

str_to_str_list("",[]).

str_to_str_list(S,X) :get_word(S,W,S1),

str_to_str_list(S1,X1),

X=[W|X1].

% Извлечение первого слова из строки

get_word(S,"",S1) :frontchar(S,' ',S1),!.

get_word(S,"",S1) :frontchar(S,'?',S1),!.

get_word(S,W,S1) :frontchar(S,A,S2),

get_word(S2,B,S1),

frontchar(W,A,B).

% Конкатинация слов с пробелами

con1(L,W,N,LWN) :concat(L," ",T1),

concat(T1,W,T2),

concat(T2," ",T3),

concat(T3,N,LWN).

con2(C,N,Name) :concat(C," ",T1),

concat(T1,N,Name).

GOAL

readln(S),

str_to_str_list(S,SL),

sentence(SL,Who,Crew,Sex,When,Year,Lab),

query(Who,Crew,Sex,When,Year,Lab).