Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Приложение 3. % Эксперт по породам собак



% Эксперт по породам собак. Продукционная система, базирующаяся на правилах

domains

database

xpositive(symbol,symbol)

xnegative(symbol,symbol)

predicates

do_expert_job

do_consulting

ask(symbol,symbol)

dog_is(symbol)

it_is(symbol)

positive(symbol,symbol)

negative(symbol,symbol)

remember(symbol,symbol,symbol)

clear_facts

goal

do_expert_job.

clauses

/* Система пользовательского интерфейса */

do_expert_job:-

makewindow(1,7,7,"AN EXPERT SYSTEM",1,16,22,58),

nl,write("* * * * * * * * * * * * * * * * * * * *"),

nl,write(" WELCOME TO A DOG EXPERT SYSTEM "),

nl,write(" "),

nl,write("This is a dog identification system. "),

nl,write("Please answer the question about "),

nl,write("the dog you would like by typing in "),

nl,write("'yes' or 'no'. "),

nl,write("* * * * * * * * * * * * * * * * * * * *"), nl,nl,

do_consulting,

write("Press space bar."),nl,

readln(_),

removewindow, exit.

do_consulting:-

dog_is(X),!,nl,

write("the dog you have indicated is a(n)",X,"."),nl,

clear_facts.

do_consulting:-

nl,write("Sorry I can't help you! "),

clear_facts.

ask(X,Y):-

write(" Question:- ",X," it ",Y,"?"),

readln(Reply),

remember(X,Y,Reply).

/* МЕХАНИЗМ ВЫВОДА */

positive(X,Y):- xpositive(X,Y),!.

positive(X,Y):-

% not

not(negative(X,Y)),!,

ask(X,Y).

negative(X,Y):-

xnegative(X,Y),!.

remember(X,Y,yes):-

asserta(xpositive(X,Y)).

remember(X,Y,no):-

asserta(xnegative(X,Y)), fail.

clear_facts:-

retract(xpositive(_,_)), fail.

clear_facts:-

retract(xnegative(_,_)), fail.

/* ПРОДУКЦИОННЫЕ ПРАВИЛА */

dog_is("English Bulldog"):-

it_is("short-haired dog"),

positive(has,"height under 22 inches"),

positive(has,"low-set tail"),

positive(has,"good natured personality"),!.

dog_is("Beagle"):-

it_is("short-haired dog"),

positive(has,"height under 22 inches"),

positive(has,"longer ears"),

positive(has,"good natured personality"),!.

dog_is("Great Dane"):-

it_is("short-haired dog"),

positive(has,"low-set tail"),

positive(has,"good natured personality"),

positive(has,"weight over 100 lb"),!.

dog_is("American Foxhound"):-

it_is("short-haired dog"),

positive(has,"height under 30 inches"),

positive(has,"longer ears"),

positive(has,"good natured personality"),!.

dog_is("Cocker Spaniel"):-

it_is("long-haired dog"),

positive(has,"height under 22 inches"),

positive(has,"low-set tail"),

positive(has,"longer ears"),

positive(has,"good natured personality"),!.

dog_is("Irish Setter"):-

it_is("long-haired dog"),

positive(has,"height under 30 inches"),

positive(has,"longer ears"),!.

dog_is("Collie"):-

it_is("long-haired dog"),

positive(has,"height under 30 inches"),

positive(has,"low-set tail"),

positive(has,"good natured personality"),!.

dog_is("St. Bernard"):-

it_is("long-haired dog"),

positive(has,"low-set tail"),

positive(has,"good natured personality"),

positive(has,"weight over 100 lb"),!.

it_is("short-haired dog"):-

positive(has,"short-haired"),!.

it_is("long-haired dog"):-

positive(has,"long-haired"),!.





Дата публикования: 2014-11-18; Прочитано: 252 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...