小编use*_*389的帖子

prolog中的小型专家系统

我正在使用prolog为分类动物做这个专家系统,我正在使用GNU/Prolog和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)), …
Run Code Online (Sandbox Code Playgroud)

artificial-intelligence prolog expert-system

6
推荐指数
1
解决办法
3702
查看次数