Как переделать эту экспертную систему под swi-prolog?
Формулировка задачи:
Помогите пожалста переделать эту ЭС под swi-prolog
Листинг программы
- domains
- s=symbol
- database
- xpositive(s, s)
- xnegative(s, s)
- predicates
- do_expert_job
- do_consulting
- ask(s,s)
- price_is(s)
- it_is(s)
- positive(s,s)
- negative(s,s)
- remember(s,s,s)
- clear_facts
- goal
- do_expert_job.
- clauses
- do_expert_job :-
- nl,write("* * * * * * * * * * * * * * * * * * * "),
- nl,write(" Expert system for the selection of mobile phone."),
- nl,write(" "),
- nl,write("Please, answer the question "),
- nl,write("'yes' or 'no'. "),
- nl ,write("* * * * * * * * * * * * * * * * * * * "),
- nl,nl,
- do_consulting,
- readchar(_),
- exit.
- do_consulting :-
- price_is(X),!,nl,
- write("The price of your chosen phone - ",X,"."),nl,
- clear_facts.
- do_consulting :-
- nl,write("You are not satisfied for any of the directory!"), 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(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.
- price_is("do 1000grn") :-it_is("Samsung"),
- positive(has,"Memory - do 1Gb"),
- positive(has,"Camera - 1.3Mpix"),!.
- price_is("1000-1500grn") :-it_is("Samsung"),
- positive(has,"Memory - 1-2Gb"),
- positive(has,"Camera - 1.3-2Mpix"),!.
- price_is("1500-2000") :-it_is("Samsung"),
- positive(has,"Memory - 2-4Gb"),
- positive(has,"Camera - vid 2Mpix"),!.
- price_is("vid 2500grn") :-it_is("Samsung"),
- positive(has,"Memory - 4-8Gb"),
- positive(has,"Camera - vid 2Mpix"),!.
- price_is("do 1000grn") :-it_is("Nokia"),
- positive(has,"Memory - 1-2Gb"),
- positive(has,"Camera - 1.3Mpix"),!.
- price_is("1000-1500grn") :-it_is("Nokia"),
- positive(has,"Memory - 2-4Gb"),
- positive(has,"Camera - 1.3Mpix"),!.
- price_is("1500-2500") :-it_is("Nokia"),
- positive(has,"Memory - 4-8Gb"),
- positive(has,"Camera - 1.3-2Mpix"),!.
- price_is("vid 2500grn") :-it_is("Nokia"),
- positive(has,"Memory - 4-8Gb"),
- positive(has,"Camera - vid 2Mpix"),!.
- price_is("do 1000grn") :-it_is("LG"),
- positive(has,"Memory - do 1Gb"),
- positive(has,"Camera - do 1.3Mpix"),!.
- price_is("1000-1500grn") :-it_is("LG"),
- positive(has,"Memory - 2-4Gb"),
- positive(has,"Camera - 1.3-2Mpix"),!.
- price_is("1500-2500") :-it_is("LG"),
- positive(has,"Memory - 4-8Gb"),
- positive(has,"Camera - 1.3-2Mpix"),!.
- price_is("vid 2500grn") :-it_is("LG"),
- positive(has,"Memory - 4-8Gb"),
- positive(has,"Camera - vid 2Mpix"),!.
- price_is("do 1000grn") :-it_is("SonyEricsson"),
- positive(has,"Memory - do 1Gb"),
- positive(has,"Camera - 1.3Mpix"),!.
- price_is("1000-1500grn") :-it_is("SonyEricsson"),
- positive(has,"Memory - 1-2Gb"),
- positive(has,"Camera - 1.3-2Mpix"),!.
- price_is("1500-2500") :-it_is("SonyEricsson"),
- positive(has,"Memory - 4-8Gb"),
- positive(has,"Camera - 1.3-2Mpix"),!.
- price_is("vid 2500grn") :-it_is("SonyEricsson"),
- positive(has,"Memory - 4-8Gb"),
- positive(has,"Camera - vid 2Mpix"),!.
- it_is("Samsung") :-
- positive(is,"Samsung"),!.
- it_is("LG") :-
- positive(is,"LG"),!.
- it_is("Nokia") :-
- positive(is,"Nokia"),!.
- it_is("SonyEricsson") :-
- positive(is,"SonyEricsson"),!.
Решение задачи: «Как переделать эту экспертную систему под swi-prolog?»
textual
Листинг программы
- 15 ?- run.
- Животное имеет характеристику: has hair? y.
- Животное имеет характеристику: does give_milk? y.
- Животное имеет характеристику: has hair? y.
- Животное имеет характеристику: does give_milk? y.
- Животное имеет характеристику: has hair? y.
- Животное имеет характеристику: does give_milk? y.
- Животное имеет характеристику: has hair? y.
- Животное имеет характеристику: does give_milk? y.
- Животное имеет характеристику: has hair? y.
- Животное имеет характеристику: does give_milk? y.
- Животное имеет характеристику: has hair? y.
- Животное имеет характеристику: does give_milk? y.
- Животное имеет характеристику: has feathers? y.
- Животное имеет характеристику: does fly? y.
- Животное имеет характеристику: has feathers?
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д