2:-module(agent,[]). 3 4 5 6rule_set(RuleSet,MaxRuleID):- 7 MaxRuleID = 7, 8 RuleSet = [ 9 [1,def_father_1,[-[child,Y,X],-[male,X],+[father,X,Y]]], 10 [2,def_mother_1,[-[child,Y,X],-[female,X],+[mother,X,Y]]], 11 [3,def_parent_1,[-[father,X,Y],+[parent,X,Y]]], 12 [4,def_parent_2,[-[mother,X,Y],+[parent,X,Y]]], 13 [5,fact_lucy_1,[+[female,lucy]]], 14 [6,fact_alice_1,[+[child,alice,bob]]], 15 [7,fact_bob_1,[+[child,bob,lucy]]] 16 ]. 17 18symbol_set(SymbolSet,MaxSymbolID):- 19 MaxSymbolID = 10, 20 SymbolSet = [ 21 [1,vble],[2,father],[3,child],[4,male],[5,female], 22 [6,parent],[7,lucy],[8,alice],[9,bob],[10,mother] 23 ]. 24 25 26nnet_definition(NNet):- 27 InDim = 70, 28 HidDim = 32, 29 OutDim = 7, 30 layer_init(layer1,InDim,HidDim,relu,[-0.2,0.2]), 31 layer_init(layer2,HidDim,HidDim,relu,[-0.2,0.2]), 32 layer_init(layer3,HidDim,HidDim,relu,[-0.2,0.2]), 33 layer_init(layer4,HidDim,HidDim,relu,[-0.2,0.2]), 34 layer_init(layer5,HidDim,HidDim,relu,[-0.2,0.2]), 35 layer_init(layer6,HidDim,OutDim,softmax,[-0.2,0.2]), 36 NNet = [layer1,layer2,layer3,layer4,layer5,layer6]. 37 38run_main:- 39 init_search_time, 40 nnet_definition(NNet), 41 rule_set(RS,NR), 42 symbol_set(SS,NS), 43 LM = method(learning(100,0.01),input(2,2),output(7)), 44 RM = method(reasoning,input(2,2),output(7)), 45 G1 = [-[female,lucy]], 46 dnn_sl_resolution(G1,[RS,NR],[SS,NS],NNet,LM,100,_), 47 G2 = [-[mother,lucy,bob]], 48 dnn_sl_resolution(G2,[RS,NR],[SS,NS],NNet,LM,100,_), 49 G3 = [-[mother,lucy,bob],-[female,lucy]], 50 dnn_sl_resolution(G3,[RS,NR],[SS,NS],NNet,LM,100,_), 51 G4 = [-[parent,lucy,bob]], 52 dnn_sl_resolution(G4,[RS,NR],[SS,NS],NNet,RM,100,Path4), 53 nl,print_by_line(Path4),nl