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(govern,feature&_,X,feature&place&country,Y,capital(Y,X),[],_,_).
58trans(exceed,measure&Type,X,measure&Type,Y,exceeds(X,Y),[],_,_).
59
60intrans(drain,feature&river,X,drains(X,Y),
61 [slot(prep(into),feature&place&_,Y,_,free)],_).
62intrans(flow,feature&river,X,flows(X,Y),
63 [slot(prep(through),feature&place&_,Y,_,free)],_).
64intrans(flow,feature&river,X,flows(X,Y,Z),
65 [slot(prep(into),feature&place&_,Z,_,free),
66 slot(prep(from),feature&place&_,Y,_,free)],_).
67intrans(rise,feature&river,X,rises(X,Y),
68 [slot(prep(in),feature&place&_,Y,_,free)],_).
69
70/* Adjectives */
71
72restriction(african,feature&_,X,african(X)).
73restriction(american,feature&_,X,american(X)).
74restriction(asian,feature&_,X,asian(X)).
75restriction(european,feature&_,X,european(X)).
76
77attribute(large,feature&place&_,X,measure&area,Y,area(X,Y)).
78attribute(small,feature&place&_,X,measure&area,Y,area(X,Y)).
79attribute(great,measure&Type,X,measure&Type,Y,exceeds(X,Y)).
80% attribute(great,measure&Type,X,measure&Type,Y,X=Y).
81attribute(populous,feature&_,X,measure&heads,Y,population(Y,X)).
82
83aggr_adj(average,_,_,average).
84aggr_adj(total,_,_,total).
85aggr_adj(minimum,_,_,minimum).
86aggr_adj(maximum,_,_,maximum).
87
88/* Prepositions */
89
90adjunction(in,feature&_-X,feature&place&_-Y,in(X,Y)).
91adjunction(eastof,feature&_-X,feature&_-Y,eastof(X,Y)).
92adjunction(westof,feature&_-X,feature&_-Y,westof(X,Y)).
93adjunction(northof,feature&_-X,feature&_-Y,northof(X,Y)).
94adjunction(southof,feature&_-X,feature&_-Y,southof(X,Y)).
95
96/* Measure */
97
98measure(ksqmile,measure&area,[],ksqmiles).
99measure(sqmile,measure&area,[],sqmiles).
100measure(degree,measure&position,[],degrees).
101measure(thousand,measure&heads,[],thousand).
102measure(million,measure&heads,[],million).
103
104units(large,measure&_).
105units(small,measure&_).
106
107chat_sign(large,+).
108chat_sign(small,-).
109chat_sign(great,+).
110
112
113comparator(proportion,_,V,[],proportion(V)).
114comparator(percentage,_,V,[],proportion(V))