% File: rest.pl
% includes examples and interface predicates for the restaurant domain

data(x1,yes, [y,n,n,y, some, high, n,y, french,  vshort]).
data(x2,no, [y,n,n,y, full, low,  n,n, thai,    long]).
data(x3,yes, [n,y,n,n, some, low,  n,n, burger,  vshort]).
data(x4,yes, [y,n,y,y, full, low,  n,n, thai,    short]).
data(x5,no, [y,n,y,n, full, high, n,y, french,  vlong]).
data(x6,yes, [n,y,n,y, some, med,  y,y, italian, vshort]).
data(x7,no, [n,y,n,n, none, low,  y,n, burger,  vshort]).
data(x8,yes, [n,n,n,y, some, med,  y,y, thai,    vshort]).
data(x9,no, [n,y,y,n, full, low,  y,n, burger,  vlong]).
data(x10,no,[y,y,y,y, full, high, n,y, italian, short]).
data(x11,no,[n,n,n,n, none, low,  n,n, thai,    vshort]).
data(x12,yes,[y,y,y,y, full, low,  n,n, burger,  long]).

attributes([alt,bar,fri,hun,pat,price,rain,reservation,type,est]).

av(alt,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_1).
av(bar,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_2).
av(fri,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_3).
av(hun,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_4).
av(pat,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_5).
av(price,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_6).
av(rain,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_7).
av(reservation,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_8).
av(type,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_9).
av(est,[_1,_2,_3,_4,_5,_6,_7,_8,_9,_10],_10).

attr_value(A,Ex,V) :-
   data(Ex,_,L),
   av(A,L,V).

values(alt,[y,n]).
values(bar,[y,n]).
values(fri,[y,n]).
values(hun,[y,n]).
values(pat,[some,full,none]).
values(price,[high,med,low]).
values(rain,[y,n]).
values(reservation,[y,n]).
values(type,[french,thai,burger,italian]).
values(est,[vshort,short,long,vlong]).

class(Ex,C) :- data(Ex,C,_).
classes([yes,no]).

training_data([x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12]).

test_data([x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12]).