Проектирование экспертной системы помогающей покупателю выбрать игрушку, страница 2

  show_rule(RNO,Strg):-

            rule(RNO,Mygoal1,Mygoal2,CONDINGELSER),

            !,

            str_int(RNO_str,RNO),

            concat("\n правило ",RNO_str,Ans),

            concat(Ans,": ",Ans1),

            sub_cat(Mygoal1,Mygoal2,Lstr),

            concat(Ans1,Lstr,Ans2),

            concat(Ans2,"\n     если ",Ans3),

            reverse(CONDINGELSER,CONILS),

            show_conditions(CONILS,Con),

            concat(Ans3,Con,Strg).

  show_conditions([],"").

  show_conditions([COND],Ans):-

            cond(COND,Ans),

            !.

  show_conditions([COND|REST],Ans):-

            cond(COND,Text),

            !,

            concat("\n    и ",Text,Nstr),

            show_conditions(REST,Next_ans),

            concat(Next_ans,Nstr,Ans).

  sub_cat(Mygoal1,Mygoal2,Lstr):-

            format(LStr,"% вам %",MyGoal1,MyGoal2).

  report([],"").

  report([RNO|REST],Strg):-

            rule(RNO,Mygoal1,Mygoal2,_),

            !,

            sub_cat(Mygoal1,Mygoal2,Lstr),

            concat("\nЯ описал: ",Lstr,L1),

            concat(L1,"\nИспользуется правило ",L2),

            str_int(Str_RNO,RNO),

            concat(L2,Str_RNO,L3),

            concat(L3,":\n ",L4),

            show_rule(RNO,Str),

            concat(L4,Str,L5),

            report(REST,Next_strg),

            concat(L5,Next_strg,Strg).

  reverse(X,Y):-

            reverse1([],X,Y).

  reverse1(Y,[],Y).

  reverse1(X1,[U|X2],Y):-

            reverse1([U|X1],X2,Y).

goal

  consult("c://game.txt",game),

  topic(MAINGOAL),

  write("Система поможет вам подобрать игрушку"),nl,

  go([],MAINGOAL);

  write("\nИзвените. Я не знаю."),

  nl.


GAME.TXT

topic("игрушка")

rule(1,"игрушка","для мальчика",[1])

rule(2,"игрушка","для девочки",[2])

rule(3,"для мальчика","настольные",[3,4])

rule(4,"для мальчика","мини модели техники",[8])

rule(5,"для мальчика","спортивные",[11])

rule(6,"для девочки","костюмы",[15])

rule(7,"для девочки","куклы",[14])

rule(8,"настольные","Вам нужна игра МЕНЕДЖЕР, поезжайте в ЦУМ, вариант транспорта: автобус/метро/авто, возьмите с собой 300-500 рублей",[5,6,20,25,26])

rule(18,"настольные","Вам нужна игра МЕНЕДЖЕР, поезжайте в Буратино, вариант транспорта: автобус/авто, возьмите с собой 300-500 рублей",[5,6,20,25,27])

rule(19,"настольные","Вам нужна игра МЕНЕДЖЕР, поезжайте в Детский Мир, вариант транспорта: автобус/авто, возьмите с собой 300-500 рублей",[5,6,20,25,28])

rule(20,"настольные","Вам нужна игра МЕНЕДЖЕР, поезжайте в ГУМ, вариант транспорта: автобус/метро/авто, возьмите с собой 300-500 рублей",[5,6,20,24,29])

rule(21,"настольные","Вам нужна игра МЕНЕДЖЕР, поезжайте в МЕГУ, вариант транспорта: автобус/авто, возьмите с собой 300-500 рублей",[5,6,20,24,30])

rule(9,"настольные","Вам нужна игра ШАХМАТЫ, поезжайте в ЦУМ, вариант транспорта: автобус/метро/авто, возьмите с собой 800-1200 рублей",[7,22,25,26])

rule(22,"настольные","Вам нужна игра ШАХМАТЫ, поезжайте в Буратино, вариант транспорта: автобус/авто, возьмите с собой 800-1200 рублей",[7,22,25,27])

rule(23,"настольные","Вам нужна игра ШАХМАТЫ, поезжайте в Детский Мир, вариант транспорта: автобус/авто, возьмите с собой 800-1200 рублей",[7,22,25,28])

rule(24,"настольные","Вам нужна игра ШАХМАТЫ, поезжайте в ГУМ, вариант транспорта: автобус/метро/авто, возьмите с собой 800-1200 рублей",[7,22,24,29])

rule(25,"настольные","Вам нужна игра ШАХМАТЫ, поезжайте в МЕГУ, вариант транспорта: автобус/авто, возьмите с собой 800-1200 рублей",[7,22,24,30])

rule(10,"мини модели техники","Вам нужна моделька ЛАДЫ КАЛИНЫ, поезжайте в ЦУМ, вариант транспорта: автобус/метро/авто, возьмите с собой 500-800 рублей",[9,10,21,25,26])

rule(26,"мини модели техники","Вам нужна моделька ЛАДЫ КАЛИНЫ, поезжайте в Буратино, вариант транспорта: автобус/авто, возьмите с собой 500-800 рублей",[9,10,21,25,27])

rule(27,"мини модели техники","Вам нужна моделька ЛАДЫ КАЛИНЫ, поезжайте в Детский Мир, вариант транспорта: автобус/авто, возьмите с собой 500-800 рублей",[9,10,21,25,28])

rule(28,"мини модели техники","Вам нужна моделька ЛАДЫ КАЛИНЫ, поезжайте в ГУМ, вариант транспорта: автобус/метро/авто, возьмите с собой 500-800 рублей",[9,10,21,24,29])

rule(29,"мини модели техники","Вам нужна моделька ЛАДЫ КАЛИНЫ, поезжайте в МЕГУ, вариант транспорта: автобус/авто, возьмите с собой 500-800 рублей",[9,10,21,24,30])

rule(11,"спортивные","Вам нужна игрушка МЯЧ, поезжайте в ЦУМ, вариант транспорта: автобус/метро/авто, возьмите с собой 800-1200 рублей",[12,22,25,26])

rule(30,"спортивные","Вам нужна игрушка МЯЧ, поезжайте в Буратино, вариант транспорта: автобус/авто, возьмите с собой 800-1200 рублей",[12,22,25,27])

rule(31,"спортивные","Вам нужна игрушка МЯЧ, поезжайте в Детский Мир, вариант транспорта: автобус/авто, возьмите с собой 800-1200 рублей",[12,22,25,28])

rule(32,"спортивные","Вам нужна игрушка МЯЧ, поезжайте в ГУМ, вариант транспорта: автобус/метро/авто, возьмите с собой 800-1200 рублей",[12,22,24,29])

rule(33,"спортивные","Вам нужна игрушка МЯЧ, поезжайте в МЕГУ, вариант транспорта: автобус/авто, возьмите с собой 800-1200 рублей",[12,22,24,30])

rule(12,"спортивные","Вам нужен ВЕЛОСИПЕД, поезжайте в ЦУМ, вариант транспорта: автобус/метро/авто, возьмите с собой от 1200 рублей",[13,23,25,26])

rule(34,"спортивные","Вам нужен ВЕЛОСИПЕД, поезжайте в Буратино, вариант транспорта: автобус/авто, возьмите с собой от 1200 рублей",[13,23,25,27])

rule(35,"спортивные","Вам нужен ВЕЛОСИПЕД, поезжайте в Детский Мир, вариант транспорта: автобус/авто, возьмите с собой от 1200 рублей",[13,23,25,28])