blob: 09206388e9585d4a63d8208289433f9d28918541 (
plain)
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
instance LexQueryPatsEng of LexQueryPats = open
SyntaxEng,
(M=MakeStructuralEng),
ParadigmsEng,
ExtraEng,
IrregEng,
LangEng,
ResEng,
QueryEng
in
{
oper
--------------------------------------------------------------
-- structural words and extra grammar constructs
about_Prep : Prep = mkPrep "about" ;
all_NP : NP = SyntaxEng.mkNP (mkPN "all") ;
vpAP : VP -> AP = PartVP ;
what_IQuant : IQuant = M.mkIQuant "what" "what" ;
massInfoSg : CN -> NP = \cn -> SyntaxEng.mkNP cn ;
massInfoPl : CN -> NP = \cn -> SyntaxEng.mkNP aPl_Det cn ;
PatsAdvVPSlash : VPSlash -> Adv -> VPSlash = LangEng.AdvVPSlash ;
selectIP : NP -> IP = \np -> case np.a of
{AgP3Sg _ => whatSg_IP ;
_ => whatPl_IP
};
--------------------------------------------------------------
-- kinds
patent_number_CN : Kind = lin Kind (mkCN (mkN "patent" (mkN "number"))) ;
claim_N : Kind = lin Kind (mkCN (mkN "claim")) ;
--------------------------------------------------------------
-- activities
expire_V : Adv -> Activity = \pdate ->
lin Activity (mkVP (mkVP (mkV "expire")) pdate) ;
simp_expire_V : Activity =
lin Activity (mkVP (mkV "expire")) ;
apply_V : NP -> Activity = \pat -> lin Activity ( mkVP (mkVP (mkV "apply" "applies" "applied" "applied" "applying")) (SyntaxEng.mkAdv for_Prep pat)) ;
compound_CN : Activity = let vp : VP = mkVP (mkCN (mkN "compound"))
in lin Activity vp ;
use_V2 : Set -> Activity = \s -> lin Activity (mkVP (passiveVP (mkV2 (mkV "use" "uses" "used" "used" "using"))) (SyntaxEng.mkAdv in_Prep s));
approve_V2 : Adv -> Activity = \pdate -> lin Activity (mkVP (passiveVP (mkV2 (mkV "approve" "approves" "approved" "approved" "approving"))) pdate) ;
mention_V2 : NP -> Activity = \drug ->
lin Activity ( mkVP (mkVPSlash (mkV2 (mkV "mention" "mentions" "mentioned" "mentioned" "mentioning"))) drug) ;
contain_V2 : NP -> Activity = \chem ->
lin Activity (mkVP (mkVPSlash (mkV2 (mkV "contain" "contains" "contained" "contained" "containing"))) chem) ;
--------------------------------------------------------------
-- properties
approve_prop_V2 : Adv -> Property = \pdate -> lin Property (vpAP (mkVP (passiveVP (mkV2 (mkV "approve" "approves" "approved" "approved" "approving"))) pdate)) ;
use_prop_V2 : Set -> Property = \s -> lin Property (vpAP (mkVP (passiveVP (mkV2 (mkV "use" "uses" "used" "used" "using"))) (SyntaxEng.mkAdv in_Prep s))) ;
--------------------------------------------------------------
-- relations
active_ingredient_CN : Relation = makeRelation (mkCN (mkA "active") (mkN "ingredient")) ;
dosage_form_CN : Relation = makeRelation (mkCN (mkN "dosage" (mkN "form"))) ;
route_of_administration_CN : Relation = makeRelation (mkCN (mkN "route") (SyntaxEng.mkAdv (mkPrep "of") (SyntaxEng.mkNP (mkN "administration")))) ;
patent_number_Rel : Relation = makeRelation (mkCN (mkN "patent" (mkN "number"))) ;
patent_N : Relation = lin Relation {cn = mkCN (mkN "patent") ; prep = for_Prep } ;
patent_with_N : Relation = lin Relation {cn = mkCN (mkN "patent"); prep = with_Prep} ;
expiration_date_CN : Relation = makeRelation (mkCN (mkN "expiration" (mkN "date"))) ;
use_code_CN : Relation = makeRelation (SyntaxEng.mkCN (mkN "use" (mkN "code"))) ;
application_number_CN : Relation = makeRelation ((mkCN (mkN "application" (mkN "number"))) | (mkCN (mkN ["patent application"] (mkN "number")))) ;
application_number_no_CN : Relation = lin Relation {cn = ((mkCN (mkN "application" (mkN "number"))) | (mkCN (mkN ["patent application"] (mkN "number")))); prep = noPrep} ;
applicant_CN : Relation = lin Relation { cn = mkCN (mkN "applicant") ; prep = for_Prep } ;
applicant_no_CN : Relation = lin Relation {cn = mkCN (mkN "applicant"); prep = noPrep} ;
approval_date_CN : Relation = makeRelation (mkCN (mkN "approval" (mkN "date"))) ;
chemical_composition_CN : Relation = makeRelation (mkCN (mkA "chemical") (mkN "composition")) ;
chemical_substance_CN : Relation = lin Relation {cn = (mkCN (mkA "chemical") (mkN "substance")) ; prep = from_Prep | part_Prep } ;
drug_N : Relation = lin Relation {cn = mkCN (mkN "drug") ; prep = with_Prep} ;
use_N : Relation = makeRelation (mkCN (mkN "use")) ;
method_N : Relation = makeRelation (mkCN (mkN "method")) ;
drug_with_usage_form_CN : Relation = lin Relation {cn = mkCN (mkN "drug") ; prep = noPrep } ;
drug_preparation_CN : Relation = lin Relation {cn = mkCN (mkN "drug" (mkN "preparation")) ; prep = for_Prep} ;
strength_N : Relation = makeRelation (mkCN (mkN "strength")) ;
name_N : Relation = makeRelation (mkCN (mkN "name")) ;
usage_form_CN = makeRelation (mkCN (mkN "usage" (mkN "form"))) ;
----------------------------------------------------------------------------
oper makeRelation : CN -> Relation =
\s -> lin Relation {cn = s ; prep = possess_Prep} ;
}
|