Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in AI and Deep Learning by (50.2k points)

I'm doing this expert system for classification animals using prolog and I'm using GNU/Prolog and Debian GNU/Linux.

xpositive(symbol,symbol) 

xnegative(symbol,symbol) 

nondeterm animal_is(symbol) 

nondeterm it_is(symbol) 

ask(symbol,symbol,symbol) 

remember(symbol,symbol,symbol) 

positive(symbol,symbol) 

negative(symbol,symbol) 

clear_facts 

run 

animal_is(cheetah):- 

it_is(mammal), 

it_is(carnivore), 

positive(has,tawny_color), 

positive(has,dark_spots). 

animal_is(tiger):- it_is(mammal), 

it_is(carnivore), 

positive(has, tawny_color), 

positive(has, black_stripes). 

animal_is(giraffe):- 

it_is(ungulate), 

positive(has,long_neck), 

positive(has,long_legs), 

positive(has, dark_spots). 

animal_is(zebra):- 

it_is(ungulate), 

positive(has,black_stripes). 

animal_is(ostrich):- 

it_is(bird), 

negative(does,fly), 

positive(has,long_neck), 

positive(has,long_legs), 

positive(has, black_and_white_color). 

animal_is(penguin):- 

it_is(bird), 

negative(does,fly), 

positive(does,swim), 

positive(has,black_and_white_color). 

animal_is(albatross):- 

it_is(bird),

positive(does,fly_well). 

it_is(mammal):-

positive(has,hair). 

it_is(mammal):- 

positive(does,give_milk). 

it_is(bird):- 

positive(has,feathers). 

it_is(bird):- 

positive(does,fly), 

positive(does,lay_eggs). 

it_is(carnivore):- positive(does,eat_meat). 

it_is(carnivore):- 

positive(has,pointed_teeth), 

positive(has, claws), 

positive(has,forward_eyes). 

it_is(ungulate):- it_is(mammal), 

positive(has,hooves). it_is(ungulate):- 

it_is(mammal), 

positive(does,chew_cud). 

positive(X,Y):- 

xpositive(X,Y),!.

 positive(X,Y):- 

not(xnegative(X,Y)), 

ask(X,Y,yes). negative(X,Y):- 

xnegative(X,Y),!. 

negative(X,Y):- 

not(xpositive(X,Y)), 

ask(X,Y,no). ask(X,Y,yes):- !,

 write(X," it ",Y,'\n'), 

readln(Reply),nl, 

frontchar(Reply,'y',_), 

remember(X,Y,yes). ask(X,Y,no):- !, 

write(X," it ",Y,'\n'), 

readln(Reply),nl, 

frontchar(Reply,'n',_), 

remember(X,Y,no). 

remember(X,Y,yes):-

 assertz(xpositive(X,Y)).

 remember(X,Y,no):- 

assertz(xnegative(X,Y)). 

clear_facts:- 

write("\n\nPlease press the space bar to exit\n"), retractall(_,dbasedom),readchar(_). 

run:- animal_is(X),!,

 write("\nYour animal may be a (an) ",X),

 nl,nl,clear_facts. run:- write("\nUnable to determine what"), 

write("your animal is.\n\n"), 

clear_facts. 

run.

I have a problem with this program. I compile the program, but I get an error message:

GNU Prolog 1.3.0 By Daniel Diaz 

Copyright (C) 1999-2007 

Daniel Diaz | ?- [system]. 

compiling /root/Dokumenty/Lab/Expert/system.pl for byte code... /root/Dokumenty/Lab/Expert/system.pl:2:1: 

syntax error: . 

or operator expected after > expression 1 error(s) compilation failed

I'm trying to solve my problem, but I'm still getting the error message:

xpositive(symbol,symbol). 

xnegative(symbol,symbol). 

nondeterm animal_is(symbol) 

nondeterm it_is(symbol) 

ask(symbol,symbol,symbol) 

remember(symbol,symbol,symbol) 

positive(symbol,symbol) 

negative(symbol,symbol) 

clear_facts run

Error message:

| ?- [system]. compiling /root/Dokumenty/Lab/Expert/system.pl for byte code... /root/Dokumenty/Lab/Expert/system.pl:4:11: syntax error: . or operator expected after expression 1 error(s) compilation failed

Thank you for your help in advance!!!

1 Answer

0 votes
by (108k points)

You just have to dump all those declarations which have those lines without ending dot means up to run, included as they are not required in Prolog.

You must also have to rename write functions in which you just have to add squared brackets throughout the arguments, to make them of arity 1(The arity of a functor is the number of arguments it takes). For example:

write([X," it ",Y,'\n']),

Then you'll call the below syntax on your console.

?- run.

If you are looking to learn more about Artificial Intelligence then you visit Artificial Intelligence(AI) Tutorial. Also, if you are appearing for job profiles of AI Engineer or AI Expert then you can prepare for the interviews on Artificial Intelligence Interview Questions.

Browse Categories

...