10:- use_module(library(aleph)). 11:- if(current_predicate(use_rendering/1)). 12:- use_rendering(prolog). 13:- endif. 14:- aleph. 15:- aleph_set(i,2). 16:- aleph_set(clauselength,10). 17:- aleph_set(minacc,0.6). 18:- aleph_set(noise,3). 19:- aleph_set(minscore,3). 20:- aleph_set(minpos,3). 21:- aleph_set(nodes,5000). 22:- aleph_set(explore,true). 23:- aleph_set(max_features,10). 24
25:- modeh(1,eastbound(+train)). 26:- modeb(1,short(+car)). 27:- modeb(1,closed(+car)). 28:- modeb(1,long(+car)). 29:- modeb(1,open_car(+car)). 30:- modeb(1,double(+car)). 31:- modeb(1,jagged(+car)). 32:- modeb(1,shape(+car,#shape)).
33:- modeb(1,load(+car,#shape,#int)).
34:- modeb(1,wheels(+car,#int)).
35:- modeb(*,has_car(+train,-car)). 36
37:- determination(eastbound/1,short/1). 38:- determination(eastbound/1,closed/1). 39:- determination(eastbound/1,long/1). 40:- determination(eastbound/1,open_car/1). 41:- determination(eastbound/1,double/1). 42:- determination(eastbound/1,jagged/1). 43:- determination(eastbound/1,shape/2). 44:- determination(eastbound/1,wheels/2). 45:- determination(eastbound/1,has_car/2). 46:- determination(eastbound/1,load/3). 47
49
50:- aleph_set(portray_examples,true). 51
52aleph_portray(train_pos):-
53 show_features(pos,positive).
54aleph_portray(train_neg):-
55 show_features(neg,negative).
56
57show_features(Type,Class):-
58 example(_,Type,Example),
59 write_features(Example,Class),
60 fail.
61show_features(_,_).
62
63write_features(Example,_):-
64 features(Features),
65 member((Example :- Body),Features),
66 (Body -> write(1), write(' '); write(0), write(' ')),
67 fail.
68write_features(_,Class):-
69 writeq(Class), nl.
70:-begin_bg. 71car(car_11). car(car_12). car(car_13). car(car_14).
72car(car_21). car(car_22). car(car_23).
73car(car_31). car(car_32). car(car_33).
74car(car_41). car(car_42). car(car_43). car(car_44).
75car(car_51). car(car_52). car(car_53).
76car(car_61). car(car_62).
77car(car_71). car(car_72). car(car_73).
78car(car_81). car(car_82).
79car(car_91). car(car_92). car(car_93). car(car_94).
80car(car_101). car(car_102).
81
82shape(elipse). shape(hexagon). shape(rectangle). shape(u_shaped).
83shape(triangle). shape(circle). shape(nil).
84
85train(east1). train(east2). train(east3). train(east4). train(east5).
86train(west6). train(west7). train(west8). train(west9). train(west10).
87
88
90short(car_12). 91closed(car_12). 92long(car_11). 93long(car_13).
94short(car_14).
95open_car(car_11). 96open_car(car_13).
97open_car(car_14).
98shape(car_11,rectangle). 99shape(car_12,rectangle).
100shape(car_13,rectangle).
101shape(car_14,rectangle).
102load(car_11,rectangle,3). 103load(car_12,triangle,1).
104load(car_13,hexagon,1).
105load(car_14,circle,1).
106wheels(car_11,2). 107wheels(car_12,2).
108wheels(car_13,3).
109wheels(car_14,2).
110has_car(east1,car_11). 111has_car(east1,car_12).
112has_car(east1,car_13).
113has_car(east1,car_14).
114
116has_car(east2,car_21).
117has_car(east2,car_22).
118has_car(east2,car_23).
119short(car_21).
120short(car_22).
121short(car_23).
122shape(car_21,u_shaped).
123shape(car_22,u_shaped).
124shape(car_23,rectangle).
125open_car(car_21).
126open_car(car_22).
127closed(car_23).
128load(car_21,triangle,1).
129load(car_22,rectangle,1).
130load(car_23,circle,2).
131wheels(car_21,2).
132wheels(car_22,2).
133wheels(car_23,2).
134
136has_car(east3,car_31).
137has_car(east3,car_32).
138has_car(east3,car_33).
139short(car_31).
140short(car_32).
141long(car_33).
142shape(car_31,rectangle).
143shape(car_32,hexagon).
144shape(car_33,rectangle).
145open_car(car_31).
146closed(car_32).
147closed(car_33).
148load(car_31,circle,1).
149load(car_32,triangle,1).
150load(car_33,triangle,1).
151wheels(car_31,2).
152wheels(car_32,2).
153wheels(car_33,3).
154
156has_car(east4,car_41).
157has_car(east4,car_42).
158has_car(east4,car_43).
159has_car(east4,car_44).
160short(car_41).
161short(car_42).
162short(car_43).
163short(car_44).
164shape(car_41,u_shaped).
165shape(car_42,rectangle).
166shape(car_43,elipse).
167shape(car_44,rectangle).
168double(car_42).
169open_car(car_41).
170open_car(car_42).
171closed(car_43).
172open_car(car_44).
173load(car_41,triangle,1).
174load(car_42,triangle,1).
175load(car_43,rectangle,1).
176load(car_44,rectangle,1).
177wheels(car_41,2).
178wheels(car_42,2).
179wheels(car_43,2).
180wheels(car_44,2).
181
183has_car(east5,car_51).
184has_car(east5,car_52).
185has_car(east5,car_53).
186short(car_51).
187short(car_52).
188short(car_53).
189shape(car_51,rectangle).
190shape(car_52,rectangle).
191shape(car_53,rectangle).
192double(car_51).
193open_car(car_51).
194closed(car_52).
195closed(car_53).
196load(car_51,triangle,1).
197load(car_52,rectangle,1).
198load(car_53,circle,1).
199wheels(car_51,2).
200wheels(car_52,3).
201wheels(car_53,2).
202
204has_car(west6,car_61).
205has_car(west6,car_62).
206long(car_61).
207short(car_62).
208shape(car_61,rectangle).
209shape(car_62,rectangle).
210closed(car_61).
211open_car(car_62).
212load(car_61,circle,3).
213load(car_62,triangle,1).
214wheels(car_61,2).
215wheels(car_62,2).
216
218has_car(west7,car_71).
219has_car(west7,car_72).
220has_car(west7,car_73).
221short(car_71).
222short(car_72).
223long(car_73).
224shape(car_71,rectangle).
225shape(car_72,u_shaped).
226shape(car_73,rectangle).
227double(car_71).
228open_car(car_71).
229open_car(car_72).
230jagged(car_73).
231load(car_71,circle,1).
232load(car_72,triangle,1).
233load(car_73,nil,0).
234wheels(car_71,2).
235wheels(car_72,2).
236wheels(car_73,2).
237
239has_car(west8,car_81).
240has_car(west8,car_82).
241long(car_81).
242short(car_82).
243shape(car_81,rectangle).
244shape(car_82,u_shaped).
245closed(car_81).
246open_car(car_82).
247load(car_81,rectangle,1).
248load(car_82,circle,1).
249wheels(car_81,3).
250wheels(car_82,2).
251
253has_car(west9,car_91).
254has_car(west9,car_92).
255has_car(west9,car_93).
256has_car(west9,car_94).
257short(car_91).
258long(car_92).
259short(car_93).
260short(car_94).
261shape(car_91,u_shaped).
262shape(car_92,rectangle).
263shape(car_93,rectangle).
264shape(car_94,u_shaped).
265open_car(car_91).
266jagged(car_92).
267open_car(car_93).
268open_car(car_94).
269load(car_91,circle,1).
270load(car_92,rectangle,1).
271load(car_93,rectangle,1).
272load(car_93,circle,1).
273wheels(car_91,2).
274wheels(car_92,2).
275wheels(car_93,2).
276wheels(car_94,2).
277
279has_car(west10,car_101).
280has_car(west10,car_102).
281short(car_101).
282long(car_102).
283shape(car_101,u_shaped).
284shape(car_102,rectangle).
285open_car(car_101).
286open_car(car_102).
287load(car_101,rectangle,1).
288load(car_102,rectangle,2).
289wheels(car_101,2).
290wheels(car_102,2).
291:-end_bg. 292
293:-begin_in_pos. 294eastbound(east1).
295eastbound(east2).
296eastbound(east3).
297eastbound(east4).
298eastbound(east5).
299
300:-end_in_pos. 301:-begin_in_neg. 302eastbound(west6).
303eastbound(west7).
304eastbound(west8).
305eastbound(west9).
306eastbound(west10).
307
308:-end_in_neg.
?-
induce_features(F)
,assert(features(F))
,show(train_pos)
,show(train_neg)
. */