1/* @(#)templa.pl	24.1 2/23/88 */
    2
    3/* 
    4	Copyright 1986, Fernando C.N. Pereira and David H.D. Warren,
    5
    6			   All Rights Reserved
    7*/
    8/* Nouns */
    9
   10property(area,measure&area,X,feature&place&_,Y,area(Y,X),[],_,_).
   11property(capital,feature&city,X,feature&place&country,Y,
   12         capital(Y,X),[],_,_).
   13property(latitude,
   14         measure&position,X,feature&_,Y,latitude(Y,X),[],_,_).
   15property(longitude,measure&position,X,feature&_,Y,
   16         longitude(Y,X),[],_,_).
   17property(population,
   18         measure&heads,X,feature&_,Y,population(Y,X),[],_,_).
   19
   20thing(place,feature&place&_,X,place(X),[],_).
   21thing(area,measure&area,X,area(X),[],_).
   22thing(capital,feature&city,X,capital(X),[],_).
   23thing(city,feature&city,X,city(X),[],_).
   24thing(continent,feature&place&continent,X,continent(X),[],_).
   25thing(country,feature&place&country,X,country(X),[],_).
   26thing(latitude,measure&position,X,latitude(X),[],_).
   27thing(longitude,measure&position,X,longitude(X),[],_).
   28thing(ocean,feature&place&seamass,X,ocean(X),[],_).
   29thing(person,_,X,person(X),[],_).
   30thing(population,measure&heads,X,population(X),[],_).
   31thing(region,feature&place&_,X,region(X),[],_).
   32thing(river,feature&river,X,river(X),[],_).
   33thing(sea,feature&place&seamass,X,sea(X),[],_).
   34thing(seamass,feature&place&seamass,X,seamass(X),[],_).
   35
   36aggr_noun(average,_,_,average).
   37aggr_noun(sum,_,_,total).
   38aggr_noun(total,_,_,total).
   39
   40meta_noun(number,_,V,feature&_,X,P,numberof(X,P,V)).
   41
   42/* Proper nouns */
   43
   44name_template(X,feature&circle) :- circle_of_latitude(X).
   45name_template(X,feature&city) :- city(X).
   46name_template(X,feature&place&continent) :- continent(X).
   47name_template(X,feature&place&country) :- country(X).
   48name_template(X,feature&place&_) :- region(X).
   49name_template(X,feature&river) :- river(X).
   50name_template(X,feature&place&seamass) :- seamass(X).
   51
   52/* Verbs */
   53
   54trans(border,
   55      feature&place&_,X,feature&place&_,Y,borders(X,Y),[],_,_).
   56trans(contain,feature&place&_,X,feature&_,Y,in(Y,X),[],_,_).
   57trans(exceed,measure&Type,X,measure&Type,Y,exceeds(X,Y),[],_,_).
   58
   59intrans(drain,feature&river,X,drains(X,Y),
   60   [slot(prep(into),feature&place&_,Y,_,free)],_).
   61intrans(flow,feature&river,X,flows(X,Y),
   62   [slot(prep(through),feature&place&_,Y,_,free)],_).
   63intrans(flow,feature&river,X,flows(X,Y,Z),
   64   [slot(prep(into),feature&place&_,Z,_,free),
   65    slot(prep(from),feature&place&_,Y,_,free)],_).
   66intrans(rise,feature&river,X,rises(X,Y),
   67   [slot(prep(in),feature&place&_,Y,_,free)],_).
   68
   69/* Adjectives */
   70
   71restriction(african,feature&_,X,african(X)).
   72restriction(american,feature&_,X,american(X)).
   73restriction(asian,feature&_,X,asian(X)).
   74restriction(european,feature&_,X,european(X)).
   75
   76attribute(large,feature&place&_,X,measure&area,Y,area(X,Y)).
   77attribute(small,feature&place&_,X,measure&area,Y,area(X,Y)).
   78attribute(great,measure&Type,X,measure&Type,Y,X=Y).
   79attribute(populous,feature&_,X,measure&heads,Y,population(Y,X)).
   80
   81aggr_adj(average,_,_,average).
   82aggr_adj(total,_,_,total).
   83aggr_adj(minimum,_,_,minimum).
   84aggr_adj(maximum,_,_,maximum).
   85
   86/* Prepositions */
   87
   88adjunction(in,feature&_-X,feature&place&_-Y,in(X,Y)).
   89adjunction(eastof,feature&_-X,feature&_-Y,eastof(X,Y)).
   90adjunction(westof,feature&_-X,feature&_-Y,westof(X,Y)).
   91adjunction(northof,feature&_-X,feature&_-Y,northof(X,Y)).
   92adjunction(southof,feature&_-X,feature&_-Y,southof(X,Y)).
   93
   94/* Measure */
   95
   96measure(ksqmile,measure&area,[],ksqmiles).
   97measure(sqmile,measure&area,[],sqmiles).
   98measure(degree,measure&position,[],degrees).
   99measure(thousand,measure&heads,[],thousand).
  100measure(million,measure&heads,[],million).
  101
  102units(large,measure&_).
  103units(small,measure&_).
  104
  105chat_sign(large,+).
  106chat_sign(small,-).
  107chat_sign(great,+).
  108
  109/* Proportions and the like */
  110
  111comparator(proportion,_,V,[],proportion(V)).
  112comparator(percentage,_,V,[],proportion(V))