ITV0060 lab 2 example for buildings

Allikas: Lambda
% clear automatic strategy selection
clear(auto).

% use capital letters (A,X,T,...) as vars
set(prolog_style_variables).

% select the search strategy
set(hyper_res).
set(factor).
set(para_into).
set(para_from).

% select sensible amount of output
% clear(print_given). 
set(print_kept).  % this is important: prints all generated and kept clauses
assign(stats_level, 0).

% just make it stop after N secs
assign(max_seconds, 10).

formula_list(sos).

% example data

word("koidu 7","restaurant","0.5").
word("koidu 7","sale","0.8").

word("vene 9","restaurant","0.7").
word("vene 9","office","0.6").

% example web page types

pagetype("http://www.eestirestoranid.ee/",restaurant).
pagetype("http://www.eestimaitsed.com",restaurant).

pagetype("http://kv.ee",realestate).
pagetype("http://city24.ee",realestate).

% different objects: all combos

diff(restaurant,office).
diff(restaurant,university).
diff(university,cinema).

% rules

all X Y (diff(X,Y) -> diff(Y,X)).

all X U (word(X,"office",U) -> contains(X,office,$FPROD(U,"0.9"))).

all X U (word(X,"restaurant",U) -> contains(X,restaurant,$FPROD(U,"0.8"))).
all X U (word(X,"chicken",U) -> contains(X,restaurant,$FPROD(U,"0.3"))).

all X Y ((onwebpage(X,Y) & pagetype(Y,restaurant)) -> 
     contains(X,restaurant,"0.9")).

all X U (word(X,"sale",U) -> onsale(X,$FPROD(U,"0.8"))).
all X U (word(X,"euro",U) -> onsale(X,$FPROD(U,"0.3"))).
all X U (word(X,"real estate",U) -> onsale(X,$FPROD(U,"0.6"))).

all X Y ((onwebpage(X,Y) & pagetype(Y,realestate)) -> 
      onsale(X,"0.9")).
      
%all X Y ((contains(X,restaurant,Y) & contains(X,office,Z) &
%      $FLT("0.2",Y) & $FLT("0.2",Z)) -> 
%      multifunctional(X,$FPROD(Y,$FPROD(Z,"0.9"))).

all X Y U W Z ((contains(X,U,Y) & contains(X,W,Z) &
      diff(U,W) & $FLT("0.2",Y) & $FLT("0.2",Z) ) -> 
      multifunctional(X,$FPROD(Y,$FPROD(Z,"0.9")))).


end_of_list.