ВУЗ:
Составители:
Рубрика:
45
write("Есть вопросы? (Д|Н)"),
readchar(ДаНет),
ДаНет='Н',!,exit().
clauses
repeat.
repeat:-repeat.
ответить(""):-
кто(Кто),
что(Что),
отн(Отношение),!,
ответ1(Кто,Отношение,Что);
кто(Кто),
что(Что),
not(отн(_)),ф(Кто,_,Что),!,
ответ2(Кто,Что);
кто(Кто),
отн(Отношение),
not(что(_)),!,
ответ3(Кто,Отношение);
кто(Кто),
not(отн(_)),
not(что(_)),!,
ответ4(Кто);
not(
кто(_)),
отн(Отношение),
что(Что),!,
ответ5(Отношение,Что);
not(кто(_)),
отн(Отношение),
not(что(_)),!,
ответ6(Отношение);
46
not(кто(_)),
not(отн(_)),
что(Что),!,
ответ7(Что);
!,write("Не понял"),nl.
ответить(Запрос):-
fronttoken(Запрос,Лексема,Остаток),
анализ_КтоОтношениеЧто(Лексема),
ответить(Остаток).
анализ_КтоОтношениеЧто(Лексема):-
поиск_кто(Лексема),!;
поиск_отношения(Лексема),!;
поиск_что(Лексема),!;
!.
поиск_кто(Лексема):-
not(кто(_)),
ф(Лексема,_,_),!,assert(кто(Лексема));
not(кто(_)),искать_синоним_кто(Лексема),!;!,fail.
поиск_отношения(Лексема):-
not(отн(_)),
ф(_,Лексема,_),!,assert(отн(Лексема));
not(отн(_)),искать_синоним_отношения(Лексема),!;!,fail.
поиск_что(Лексема):-
not(что(_)),
ф(_,_,Лексема),!,assert(что(Лексема));
not(что(_)),искать_синоним_что(Лексема),!;!,fail.
искать_синоним_кто(Лексема):-
соб(Кто,СписокКто),
загрузить_список(СписокКто),
временно(Лексема),!,
retractall(временно(_)),assert(кто(Кто));
write("Есть вопросы? (Д|Н)"), not(кто(_)),
readchar(ДаНет), not(отн(_)),
ДаНет='Н',!,exit(). что(Что),!,
ответ7(Что);
clauses
repeat. !,write("Не понял"),nl.
repeat:-repeat.
ответить(Запрос):-
ответить(""):- fronttoken(Запрос,Лексема,Остаток),
кто(Кто), анализ_КтоОтношениеЧто(Лексема),
что(Что), ответить(Остаток).
отн(Отношение),!,
ответ1(Кто,Отношение,Что); анализ_КтоОтношениеЧто(Лексема):-
поиск_кто(Лексема),!;
кто(Кто), поиск_отношения(Лексема),!;
что(Что), поиск_что(Лексема),!;
not(отн(_)),ф(Кто,_,Что),!, !.
ответ2(Кто,Что);
поиск_кто(Лексема):-
кто(Кто), not(кто(_)),
отн(Отношение), ф(Лексема,_,_),!,assert(кто(Лексема));
not(что(_)),!,
not(кто(_)),искать_синоним_кто(Лексема),!;!,fail.
ответ3(Кто,Отношение);
поиск_отношения(Лексема):-
кто(Кто),
not(отн(_)),
not(отн(_)),
ф(_,Лексема,_),!,assert(отн(Лексема));
not(что(_)),!,
ответ4(Кто); not(отн(_)),искать_синоним_отношения(Лексема),!;!,fail.
not(кто(_)), поиск_что(Лексема):-
отн(Отношение), not(что(_)),
что(Что),!, ф(_,_,Лексема),!,assert(что(Лексема));
ответ5(Отношение,Что); not(что(_)),искать_синоним_что(Лексема),!;!,fail.
искать_синоним_кто(Лексема):-
not(кто(_)), соб(Кто,СписокКто),
отн(Отношение), загрузить_список(СписокКто),
not(что(_)),!, временно(Лексема),!,
ответ6(Отношение); retractall(временно(_)),assert(кто(Кто));
45 46
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »
