⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 anim.pro

📁 一个面向对象的产生式推理模型
💻 PRO
字号:
 /*--------------------------------------------------------
                  animal (1993.6)    
  ---------------------------------------------------------*/                

  domains
  	tone = integer*
  	song = tone*
                        
  database
  
      xpositive(string,string)                      
      xnegative(string,string)
      
  predicates
     tras(integer,integer)
     sing (song)
     run
     animal_is(string)
     it_is(string)
     positive(string,string)
     negative(string,string)
     clear_facts
     remember(string,string,string)
     ask(string,string)
     
  clauses
 tras(1,131).
 tras(2,147).
 tras(3,165).
 tras(4,175).
 tras(5,196).
 tras(6,220).
 tras(7,247).
 tras(8,262).
 sing([]).
 sing([[T1,T2]|Y]):-tras(T1,Freq),Dura=T2*40,
   	sound(Dura,Freq),sing(Y).
 	
   run:-
           animal_is(X),!,
           write("\n--------------------------\n 该动物可能是 ", X),
           write("\n--------------------------\n"),
           nl,nl,clear_facts.
           
     run:-
           write("\n 不对起,无法确定"),
           write(" 该动物是什么 .\n\n"), clear_facts.
           
     positive(X,Y) :- xpositive(X,Y),!.
     positive(X,Y) :- not(xnegative(X,Y)), ask(X,Y).
     negative(X,Y) :- xnegative(X,Y),!.
     negative(X,Y) :- not(xpositive(X,Y)), ask(X,Y).
     
     ask(X,Y):-
        write("\n      该动物",X,Y," ?  ( y / n ) "),
        readln(Reply),
        remember(X,Y,Reply).
        
     remember(X,Y,"y"):-
        asserta(xpositive(X,Y)).
        
     remember(X,Y,"n"):-
        asserta(xnegative(X,Y)),
        fail.
     remember(_,_,"q"):-exit.   
        
     clear_facts:-
                   retract(xpositive(_,_)),fail.
                   
     clear_facts:-
                   retract(xnegative(_,_)),fail.
                   
     clear_facts:-
                   write(" 请键入空格,退出 ! \n"),
                   readchar(_).                                      
        
     animal_is("豹") :-
        it_is("脯乳动物"),
        it_is("食肉动物") ,
        positive("是","黄褐色的"),
        positive("有","黑色斑点").
        
     animal_is("虎") :-
        it_is("脯乳动物") ,
        it_is("食肉动物"),
        positive("是","黄褐色的"),
        positive("有","黑色条纹").
     
     animal_is("长颈鹿") :-
        it_is("蹄类动物"),
        positive("有","长脖子"),
        positive("有","长腿"),
        positive("有","黑色斑点").
        
     animal_is("斑马") :-
        it_is("蹄类动物"),
        positive("有","黑色条纹").

     animal_is("鸵鸟") :-
        it_is("鸟") ,
        negative("会","飞") ,
        positive("有","长脖子"),
        positive("有","长腿"),
        positive("是","黑白色的").
        
     animal_is("企鹅") :-
        it_is("鸟"),
        negative("会","飞") ,
        positive("会","游泳"),
        positive("有","黑白色的").
        
     animal_is("信天翁"):- 
        it_is("鸟") ,
        positive("会","很善飞").
        
     it_is("脯乳动物") :-
        positive("有","毛发"),!.
        
     it_is("脯乳动物") :-
        positive("有","奶"),!.
        
     it_is("鸟") :-
        positive("有","羽毛"),!.
        
     it_is("鸟") :-
        positive("会","飞") ,!,
        positive("会","下蛋"),!.
        
     it_is("食肉动物") :-
        positive("会","吃肉"),!.
        
     it_is("食肉动物") :-
        positive("有","犬齿") ,!,
        positive("有","爪") ,!,
        positive("有","眼看前方"),!.
        
     it_is("蹄类动物") :-
        it_is("脯乳动物") ,!,
        positive("有","蹄"),!.
        
     it_is("蹄类动物") :-
        it_is("脯乳动物") ,!,
        positive("是","嚼食动物"),!.

goal
/*	graphics (2,0,1),   * 1,1,3  */
                makewindow(1,7,0,"",0,0,25,80),
	        sing([[1,1],[2,1],[3,1],[4,1]]),
	        makewindow(1,78,0,"",10,25,3,30),
	        nl,write("  动 物 分 类 专 家 系 统 "),
	        sing([[5,1],[6,1],[7,1],[8,1]]),
	        readchar(_),
		makewindow (1,108,0," 动 物 分 类 专 家 系 统 ",2,4,18,70 ),
		sing([[1,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1]]),
	run.
/*	graphics(2,0,1).    */
	       
     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -