1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
concrete QuestionGer of Question = CatGer ** open ResGer in {
flags optimize=all_subs ;
lin
QuestCl cl = {
s = \\m,t,a,p =>
let cls = cl.s ! m ! t ! a ! p
in table {
QDir => cls ! Inv ;
QIndir => "ob" ++ cls ! Sub
}
} ;
QuestVP qp vp = {
s = \\m,t,a,b,q =>
let
cl = (mkClause (qp.s ! Nom) (agrP3 qp.n) vp).s ! m ! t ! a ! b
in
case q of {
QIndir => cl ! Sub ;
_ => cl ! Main
}
} ;
QuestSlash ip slash = {
s = \\m,t,a,p =>
let
cls = slash.s ! m ! t ! a ! p ;
who = appPrep slash.c2 ip.s
in table {
QDir => who ++ cls ! Inv ;
QIndir => who ++ cls ! Sub
}
} ;
QuestIAdv iadv cl = {
s = \\m,t,a,p =>
let
cls = cl.s ! m ! t ! a ! p ;
why = iadv.s
in table {
QDir => why ++ cls ! Inv ;
QIndir => why ++ cls ! Sub
}
} ;
QuestIComp icomp np = {
s = \\m,t,a,p =>
let
vp = predV sein_V ;
cls = (mkClause (np.s ! Nom) np.a vp).s ! m ! t ! a ! p ;
why = icomp.s ! np.a
in table {
QDir => why ++ cls ! Inv ;
QIndir => why ++ cls ! Sub
}
} ;
PrepIP p ip = {
s = appPrep p ip.s
} ;
AdvIP ip adv = {
s = \\c => ip.s ! c ++ adv.s ;
n = ip.n
} ;
IdetCN idet cn =
let
g = cn.g ;
n = idet.n
in {
s = \\c => idet.s ! g ! c ++ cn.s ! Weak ! n ! c ;
n = n
} ;
IdetIP idet =
let
g = Neutr ; ----
n = idet.n
in {
s = idet.s ! g ;
n = n
} ;
IdetQuant idet num =
let
n = num.n
in {
s = \\g,c => idet.s ! n ! g ! c ++ num.s!g!c ;
n = n
} ;
CompIAdv a = {s = \\_ => a.s} ;
CompIP ip = {s = \\_ => ip.s ! Nom} ;
}
|