Данная демонстрационная программа позволяет выполнять лек-
сический анализ простейших предложений на английском языке.
Основным правилом программы является правило show_the_work,
которое вызывает правила do_windows, создающее три окна диалога,
и print_vocabulary, отображающее словарь программы.
Предложения в упрощенной форме (в виде списка слов) хра-
нятся во внутренней БД в виде фактов sentence.
Правило print_sentences организует вывод информации на экран
через правило show_sentence. Правило check_word выполняет про-
верку допустимости имеющихся в приложении слов.
Текст программы EX3.PRO.
#M
domains
str_seq = string *
database
noun(string)
verb(string)
predicates
show_the_work
do_windows
print_noun
print_verb
print_sentences
show_sentence
check_word(string, string, string)
sentence(str_seq)
goal
show_the_work.
clauses
/* Словарь существительных */
noun(sam).
noun(sue).
noun(tom).
noun(hamburger).
noun(fries).
noun(water).
noun(herbal_tea).
noun(color_tv).
noun(head_ache).
noun(allergy).
/* Словрь глаголов */
verb(eats).
verb(loves).
verb(gives).
verb(hates).
verb(helps).
show_the_work :-
do_windows,
print_noun,
print_verb,
print_sentences.
do_windows :-
makewindow(1,$A,$A,"",0,0,25,80),
makewindow(2,$1A,$1A," Словарь ",0,55,25,25),
makewindow(3,$1A,$1A," Предложения ",0,0,25,55).
print_noun :-
gotowindow(2), nl,
write(" Существительные:"), nl,
noun(N), write(" ",N), nl,fail.
print_noun.
print_verb :-
write(" Глаголы:"), nl,
verb(V), write(" ",V), nl,fail.
print_verb.
print_sentences :-
gotowindow(3),
nl, write(" *** Анализ Предложения ***"),
nl, nl,
write(" ПРЕДЛОЖЕНИЕ = <СУЩЕСТВИТЕЛЬНОЕ, ГЛАГОЛ, ДОПОЛНЕНИЕ>"),
nl, nl,
show_sentence.
show_sentence :-
sentence([W1, W2, W3]),
write(W1," ",W2," ",W3),
check_word(W1, W2, W3),
nl, fail.
show_sentence :-
cursor(19,5),
write(" Нажмите пробел ..."),
readchar(_),
exit.
check_word(W1, W2, W3) :-
noun(W1), verb(W2), noun(W3), !.
check_word(_,_,_) :-
nl ,write(" *** Недопустимое предложение"), nl.
/* Описание предложений в виде списков слов */
sentence([sam, eats, french_fries]).
sentence([tom, hates, herbal_tea]).
sentence([sue, loves, color_tv]).
sentence([herbal_tea, helps, head_ache]).
sentence([hamburger, gives, allergy]). #P
|