*** empty log message ***

This commit is contained in:
janna
2004-01-30 16:01:15 +00:00
parent 45d0484894
commit c1e4f8ba84
10 changed files with 388 additions and 109 deletions

View File

@@ -8,13 +8,32 @@
resource ExtraFre = open PredicationFre, ResourceFre, Prelude, SyntaxFre, MorphoFre, ParadigmsFre in {
oper
avoirBesoin: CN -> VP = \medicine ->
NPMedicine: Type = NP ** {des : Bool};
avoirBesoin1: CN -> VP = \doctor ->
PosVG ( PredTV (tvDir vAvoir) (DetNP nullDet (
AppFun (funDe (mkCNomReg "besoin" Masc ** {lock_N =<>}))
(IndefOneNP medicine)
AppFun (funDe (nReg "besoin" Masc) )
(IndefOneNP doctor)
)
)
) **{lock_VP =<>} ;
) ;
avoirBesoin: NPMedicine -> VP = \medicine ->
if_then_else VP medicine.des
(PosVG ( PredTV (tvDir vAvoir) (DetNP nullDet (
AppFun (funPrep (nReg "besoin" Masc) "")
medicine
)
)
))
(PosVG ( PredTV (tvDir vAvoir) (DetNP nullDet (
AppFun (funDe (nReg "besoin" Masc))
medicine
)
)
)) ;
injuredBody: (Gender => Number => Str) -> NP -> CN -> S =
\injured, patient, head ->
@@ -29,6 +48,7 @@ oper
delDet : Det = mkDeterminer Sg (artDef Masc Sg genitive)
(artDef Fem Sg genitive) ** {lock_Det = <>} ;
desDet : Det = mkDeterminer1 Pl "des" ** {lock_Det = <>} ;
nullDet : Det = mkDeterminer1 Sg "" ** {lock_Det =<>} ;

View File

@@ -9,11 +9,11 @@ resource ExtraRus = open ResourceRus, Prelude, SyntaxRus in {
flags coding=utf8 ;
oper
predNeedShortAdjective: Bool -> NP -> CN -> S = \b, Jag, Dig -> { s =
predNeedShortAdjective: Bool -> NP -> NP -> S = \b, Jag, Dig -> { s =
let {
mne = Jag.s ! (mkPronForm Dat No NonPoss) ;
nuzhen = need.s ! AF Nom Inanimate (gNum Dig.g Sg) ;
doctor = Dig.s ! Sg ! Nom ;
nuzhen = need.s ! AF Nom Inanimate (gNum (pgen2gen Dig.g) Dig.n) ;
doctor = Dig.s ! (mkPronForm Nom No NonPoss) ;
ne = negation b
} in
mne ++ ne ++ nuzhen ++ doctor ;

View File

@@ -26,7 +26,7 @@ fun
Influenza : Illness ;
Malaria : Illness ;
Diarrhea : Illness ;
Allergy : Illness ;
SkinAllergy : Illness ;
Heartburn : Illness ;
Rheumatism : Illness ;
Cystitis : Illness ;
@@ -47,7 +47,6 @@ fun
Ophthalmologist : Specialization ;
Surgeon : Specialization ;
PainKiller : Medicine ;
SleepingPeels : Medicine ;
Sedative : Medicine ;
Vitamins : Medicine ;
@@ -57,6 +56,7 @@ fun
Laxative : Medicine ;
Insulin : Medicine ;
Antidepressant : Medicine ;
PainKiller : Medicine ;
Head : BodyPart ;
Leg : BodyPart ;
@@ -72,7 +72,7 @@ fun
-- Tooth : BodyPart ;
Fever : Symptom ;
Sickness: Symptom ;
-- Sickness: Symptom ;
-- PainInMod : Patient -> BodyPart -> SymptomDegree -> Prop ;
-- SymptomMod : SymptomDegree -> Symptom -> Symtom;
-- High : SymptomDegree ;

View File

@@ -1,6 +1,6 @@
-- use this path to read the grammar from the same directory
--# -path=.:../newresource/abstract:../prelude:../newresource/english
concrete HealthEng of Health = open PredicationEng, ResourceEng, Prelude, SyntaxEng, ExtraEng in {
concrete HealthEng of Health = open PredicationEng, ResourceEng, ResourceExtEng, Prelude, SyntaxEng, ExtraEng, ParadigmsEng in {
flags
startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;
@@ -16,7 +16,7 @@ lincat
Illness = CN ;
Condition = VP ;
Specialization = CN ;
Medicine = CN ;
Medicine = NP ;
lin
ShePatient = SheNP ;
@@ -25,10 +25,40 @@ lin
And x y = ConjS AndConj (TwoS x y) ;
Influenza = cnNoHum (nounReg "influenza")** {lock_CN = <>} ;
Malaria = cnNoHum (nounReg "malaria") ** {lock_CN = <>};
Dentist = cnHum (nounReg "dentist")** {lock_CN = <>} ;
PainKiller = cnNoHum (nounReg "painkiller")** {lock_CN = <>} ;
Influenza = cnNonhuman "influenza" ;
Malaria = cnNonhuman "malaria" ;
Diarrhea = cnNonhuman "diarrhea" ;
SkinAllergy = AppFun (mkFun (nNonhuman "skin") []) (MassNP (cnNonhuman "allergy")) ;
Heartburn = cnNonhuman "heartburn" ;
Rheumatism = cnNonhuman "rheumatism" ;
Cystitis = cnNonhuman "cystitis" ;
Asthma = cnNonhuman "asthma" ;
Arthritis = cnNonhuman "arthritis" ;
Diabetes = cnNonhuman "diabetes" ;
Tonsillitis = cnNonhuman "tonsillitis" ;
Constipation = cnNonhuman "constipation" ;
Dentist = cnHuman "dentist" ;
Gynecologist = cnHuman "gynecologist" ;
Urologist = cnHuman "urologist" ;
Pediatrician = cnHuman "pediatrician" ;
Physician = cnHuman "physician" ;
Dermatologist = cnHuman "dermatologist" ;
Cardiologist = cnHuman "cardiologist" ;
Neuropathologist = cnHuman "neuropathologist" ;
Ophthalmologist = cnHuman "ophthalmologist" ;
Surgeon = cnHuman "surgeon" ;
SleepingPeels = IndefManyNP (ModAdj (apReg "sleeping") (cnNonhuman "peel"));
Vitamins = IndefManyNP (cnNonhuman "vitamin") ;
EyeDrops = IndefManyNP (cnNonhuman "eye-drop") ;
Antibiotics = IndefManyNP (cnNonhuman "antibiotic") ;
Sedative = IndefOneNP (cnNonhuman "sedative") ;
Viagra = MassNP (cnNonhuman "viagra") ;
Laxative = IndefOneNP (cnNonhuman "laxative") ;
Insulin = MassNP (cnNonhuman "insulin");
Antidepressant = IndefOneNP (cnNonhuman "antidepressant") ;
PainKiller = IndefOneNP (cnNonhuman "painkiller") ;
Leg = { s = \\_,n,_ => case n of {Sg =>"leg" ; Pl=> "legs" };
painInType = True } ;
@@ -44,7 +74,10 @@ lin
-- Pl => table {_ => "teeth" }};
-- False => table { _ => table {_=> "toothache"}}} ;
-- painInType = False } ;
Throat = { s = \\_,n,_ => case n of {Sg =>"throat" ; Pl=> "throats" }; painInType = True } ;
Throat = { s = table{ True => table {Sg => table {_ => "throat" };
Pl => table {_ => "throats" }};
False => table { _ => table {_=> ["sore throat"]}}} ;
painInType = False } ;
Ear = { s = \\_,n,_ => case n of {Sg =>"ear" ; Pl=> "ears" }; painInType = True } ;
Chest = { s = \\_,n,_ => case n of {Sg =>"chest" ; Pl=> "chests" }; painInType = True } ;
Foot = { s = \\_,n,_ => case n of {Sg =>"foot" ; Pl=> "feet" }; painInType = True } ;
@@ -64,10 +97,8 @@ lin
NeedDoctor patient doctor = predV2 (mkTransVerbDir (regVerbP3 "need")**{lock_TV = <>})
patient (DetNP (aDet ** {lock_Det = <>}) doctor);
NeedMedicine patient medicine = predV2 (mkTransVerbDir (regVerbP3 "need")**{lock_TV = <>})
patient (DetNP (aDet ** {lock_Det = <>}) medicine);
TakeMedicine patient medicine = predV2 (mkTransVerbDir (regVerbP3 "take")**{lock_TV = <>})
patient (DetNP (aDet ** {lock_Det = <>}) medicine) ;
NeedMedicine = predV2 (mkTransVerbDir (regVerbP3 "need")**{lock_TV = <>}) ;
TakeMedicine = predV2 (mkTransVerbDir (regVerbP3 "take")**{lock_TV = <>}) ;
Injured = injuredBody (mkTransVerb verbP3Have "injured"**{lock_TV = <>}) ;
Broken = injuredBody (mkTransVerb verbP3Have "broken"**{lock_TV = <>}) ;

View File

@@ -3,7 +3,7 @@
-- use this path to read the grammar from the same directory
--# -path=.:../newresource/abstract:../prelude:../newresource/french:../newresource/romance
concrete HealthFre of Health = open PredicationFre, ResourceFre, Prelude, SyntaxFre, MorphoFre, ExtraFre, ParadigmsFre in {
concrete HealthFre of Health = open PredicationFre, ParadigmsFre, ResourceFre, Prelude, SyntaxFre, MorphoFre, ExtraFre, ParadigmsFre, ResourceExtFre in {
-- 1. still using "à" instead of "aux" in PainIn operations
-- because of the UTF8 problem with non-utf8 resource grammars!
@@ -17,10 +17,10 @@ lincat
Symptom = NP ;
SymptomDegree = AP ;
Prop = S ;
Illness = CN ;
Illness = NP ;
Condition = VP ;
Specialization = CN ;
Medicine = CN ;
Medicine = NPMedicine ;
lin
And x y = ConjS AndConj (TwoS x y) ;
@@ -29,31 +29,66 @@ lin
TheyPatient = TheyNP ;
IPatientHe = INP ;
Influenza = mkCNomReg "grippe" Fem ** {lock_CN = <> };
Malaria = mkCNomReg "malaria" Fem ** {lock_CN = <> };
HaveIllness patient illness = predV2 (tvDir vAvoir) patient (DefOneNP illness) ;
HaveIllness = predV2 (tvDir vAvoir) ;
Complain = predV2 (tvDir vAvoir) ;
BeInCondition = PredVP ;
CatchCold = PosVG (PredTV (tvDir vAvoir) (IndefOneNP (mkCNomReg "rhume" Masc ** {lock_CN = <> })));
Pregnant = PosVG (PredAP (mkAdjective (adjJeune "enceinte") adjPost** {lock_AP = <> })) ;
Dentist = mkCNomReg "dentiste" Masc ** {lock_CN = <> } ;
PainKiller = mkCNomReg "calmant" Masc ** {lock_CN = <> };
Influenza = DefOneNP (mkCN (nReg "grippe" Fem));
Malaria = DefOneNP (mkCN (nReg "malaria" Fem));
Diarrhea = IndefOneNP (mkCN (nReg "diarrhée" Fem)) ;
Constipation = IndefOneNP (mkCN (nReg "constipation" Fem));
Rheumatism = DetNP desDet (mkCN (nReg "rhumatisme" Masc)) ;
Arthritis = DetNP delDet (mkCN (nReg "arthrite" Fem)) ;
SkinAllergy =IndefOneNP ( ModAdj
(AdjP1 (adj1Reg "épidermique" postpos))
(mkCN (nReg "allergie" Fem))
);
Heartburn = DetNP desDet (AppFun (funCase (nReg "brûlure" Fem) Gen)
(DetNP nullDet (mkCN (nReg "estomac" Masc)))) ;
Tonsillitis = IndefOneNP (mkCN (nReg "angine" Fem)) ;
Asthma = DetNP delDet (mkCN (nReg "asthme" Masc)) ;
Cystitis =IndefOneNP ( mkCN (nReg "cystite" Fem)) ;
Diabetes = DefOneNP (mkCN (nReg "diabète" Masc)) ;
NeedDoctor patient doctor = PredVP patient (avoirBesoin doctor ** {lock_VP = <> }) ;
NeedMedicine patient medicine = PredVP patient (avoirBesoin medicine** {lock_VP = <> }) ;
TakeMedicine patient medicine = predV2 (mkTransVerbDir (verbPres
(conj3prendre "prendre")) ** {lock_TV = <> } ) patient (IndefOneNP medicine) ;
Dentist = mkCN (nReg "dentiste" Masc) ;
Gynecologist = mkCN (nReg "gynécologue" Masc) ;
Urologist = mkCN (nReg "urologue" Masc) ;
Pediatrician = mkCN (nReg "pédiatre" Masc) ;
Physician = mkCN (nReg "thérapeute" Masc) ;
Dermatologist = mkCN (nReg "dermatologue" Masc) ;
Cardiologist = mkCN (nReg "cardiologue" Masc) ;
Neuropathologist = mkCN (nReg "neurologue" Masc) ;
Ophthalmologist = mkCN (nReg "ophthalmologue" Masc) ;
Surgeon = mkCN (nReg "chirurgien" Masc ) ;
Fever = DetNP (delDet ** {lock_Det = <> }) (mkCNomReg "fièvre" Fem ** {lock_CN = <> }) ;
SleepingPeels = DetNP desDet (mkCN (nReg "somnifêre" Masc ))**{des = True};
Vitamins = DetNP desDet (mkCN (nReg "vitamine" Fem))**{des = True} ;
EyeDrops = DetNP desDet (AppFun (funPrep (nReg "goutte" Fem) "pour")
(DefManyNP (mkCN (mkN "oeil" "yeux" Masc))))**{des = True} ;
Antibiotics = DetNP desDet (mkCN (nReg "antibiotique" Masc))**{des = True} ;
Insulin = DetNP delDet (mkCN (nReg "insuline" Fem))**{des = True};
Viagra = DetNP nullDet (mkCN(nReg "viagra" Fem))**{des = False} ;
Laxative = IndefOneNP (mkCN (nReg "laxatif" Masc)) **{des = False};
Sedative = IndefOneNP (mkCN (nReg "sédatif" Masc)) **{des = False};
Antidepressant = IndefOneNP (mkCN (nReg "antidépressif" Masc)) **{des = False};
PainKiller = IndefOneNP (mkCN (nReg "calmant" Masc)) **{des = False};
NeedDoctor patient doctor = PredVP patient (avoirBesoin1 doctor ** {lock_VP = <> }) ;
NeedMedicine patient medicine = PredVP patient (avoirBesoin medicine ** {lock_VP = <> }) ;
TakeMedicine = predV2 (mkTransVerbDir (verbPres (conj3prendre "prendre")) ** {lock_TV = <> } ) ;
Fever = DetNP delDet (mkCN (nReg "fièvre" Fem)) ;
PainIn patient head = predV2 (tvDir vAvoir) patient
(DetNP (nullDet ** {lock_Det = <> })
(DetNP nullDet
(
AppFun
((mkCNomReg "mal" Masc ** {lock_CN = <> })** complementCas Dat ** {lock_Fun = <> })
(defNounPhrase patient.n head ** {lock_NP = <> })
((mkCN (nReg "mal" Masc))** complementCas Dat ** {lock_Fun = <> })
(defNounPhrase patient.n head ** {lock_NP = <>})
)
) ;

View File

@@ -1,7 +1,7 @@
-- use this path to read the grammar from the same directory
--# -path=.:../newresource/abstract:../prelude:../newresource/russian
concrete HealthRus of Health = open PredicationRus, ResourceRus, Prelude, SyntaxRus, ExtraRus in {
concrete HealthRus of Health = open PredicationRus, ResourceRus, Prelude, SyntaxRus, ExtraRus, ResourceExtRus, ParadigmsRus in {
flags
coding=utf8 ;
@@ -15,8 +15,8 @@ lincat
Prop = S ;
Illness = CN ;
Condition = VP ;
Specialization = CN ;
Medicine = CN ;
Specialization = NP ;
Medicine = NP ;
lin
And x y = ConjS AndConj (TwoS x y) ;
@@ -25,20 +25,48 @@ lin
IPatientHe = { s = INP.s ; g = PGen Masc; anim = INP.anim ;
n = INP.n ; nComp = INP.nComp ; p = INP.p ; pron = INP.pron; lock_NP = <>} ;
Influenza = n2n gripp ** {lock_CN = <>};
Malaria = n2n malaria ** {lock_CN = <>} ;
Influenza = UseN ( gripp**{lock_N = <>}) ;
Malaria = UseN ( malaria**{lock_N = <>}) ;
Diarrhea = UseN ( ponos **{lock_N = <>});
SkinAllergy = ModAdj (AdjP1(adj1Staruyj "кожн")) (UseN ( allergiya **{lock_N = <>}));
Heartburn = UseN ( izzhoga **{lock_N = <>});
Rheumatism = UseN ( revmatizm **{lock_N = <>});
Cystitis = UseN ( tsistit **{lock_N = <>});
Asthma = UseN ( astma **{lock_N = <>});
Arthritis = UseN ( artrit **{lock_N = <>});
Diabetes = UseN ( diabet **{lock_N = <>});
Tonsillitis = UseN ( angina **{lock_N = <>});
Constipation = UseN ( zapor **{lock_N = <>});
Dentist = IndefOneNP ( UseN ( stomatolog**{lock_N = <>})) ;
Gynecologist = IndefOneNP (UseN ( ginekolog**{lock_N = <>})) ;
Urologist = IndefOneNP (UseN ( urolog**{lock_N = <>})) ;
Pediatrician = IndefOneNP (UseN ( pediatr**{lock_N = <>})) ;
Physician = IndefOneNP (UseN ( terapevt**{lock_N = <>})) ;
Dermatologist = IndefOneNP (UseN ( dermatolog**{lock_N = <>})) ;
Cardiologist = IndefOneNP (UseN ( kardiolog**{lock_N = <>})) ;
Neuropathologist = IndefOneNP (UseN ( nevropatolog**{lock_N = <>})) ;
Ophthalmologist = IndefOneNP (UseN ( okulist**{lock_N = <>})) ;
Surgeon = IndefOneNP (UseN ( khirurg**{lock_N = <>})) ;
Dentist = n2n stomatolog ** {lock_CN = <>};
PainKiller = n2n obezbolivauchee ** {lock_CN = <>};
SleepingPeels = IndefOneNP (UseN ( snotvornoe**{lock_N = <>}));
Sedative = IndefOneNP (UseN ( uspokoitelnoe**{lock_N = <>}));
Vitamins = IndefManyNP (UseN ( vitamin**{lock_N = <>}));
EyeDrops = IndefManyNP (ModAdj (AdjP1 (glaznoj**{lock_Adj1 = <>})) (UseN ( kaplya**{lock_N = <>})));
Antibiotics = IndefManyNP (UseN ( antibiotik**{lock_N = <>}));
Viagra = IndefOneNP (UseN ( viagra**{lock_N = <>}));
Laxative = IndefOneNP (UseN ( slabitelnoe**{lock_N = <>}));
Insulin = MassNP (UseN (insulin**{lock_N = <>}));
Antidepressant = IndefOneNP (UseN ( antidepressant**{lock_N = <>}));
PainKiller = IndefOneNP (UseN ( obezbolivauchee**{lock_N = <>}));
Fever = mkNounPhrase Sg (n2n temperatura)** {lock_NP = <>};
Fever = mkNounPhrase Sg (UseN ( temperatura**{lock_N = <>}))** {lock_NP = <>};
BeInCondition = PredVP ;
CatchCold = PosVG (PredAP (AdjP1 (prostuzhen ** {lock_Adj1 = <>}))) ;
Pregnant = PosVG (PredAP (AdjP1 (beremenen ** {lock_Adj1 = <>}))) ;
TakeMedicine patient painkiller = predV2 (mkDirectVerb
(extVerb verbPrinimat Act Present)**{lock_TV = <>}) patient (mkNounPhrase Sg painkiller ** {lock_NP = <>}) ;
TakeMedicine = predV2 (mkDirectVerb
(extVerb verbPrinimat Act Present)**{lock_TV = <>}) ;
Injured patient painkiller = predV2 (mkDirectVerb
(extVerb verbPoranit Act Past)**{lock_TV = <>}) patient (mkNounPhrase patient.n painkiller ** {lock_NP = <>}) ;
Broken patient painkiller = predV2 (mkDirectVerb
@@ -54,22 +82,22 @@ lin
PainIn patient head = U_predTransVerb True (mkDirectVerb
(extVerb verbBolet_2 Act Present ) ** {lock_TV =<>}) patient (mkNounPhrase patient.n head ** {lock_NP =<>}) ;
Head = n2n golova ** {lock_CN = <>};
Leg = n2n noga ** {lock_CN = <>};
Stomac = n2n zhivot ** {lock_CN = <>};
Throat = n2n gorlo ** {lock_CN = <>};
Ear = n2n ukho ** {lock_CN = <>};
Chest = n2n grud ** {lock_CN = <>};
Foot = n2n stopa ** {lock_CN = <>};
Arm = n2n ruka ** {lock_CN = <>};
Back = n2n spina ** {lock_CN = <>};
Shoulder = n2n plecho ** {lock_CN = <>};
-- Knee = n2n koleno ** {lock_CN = <>};
Head = UseN ( golova**{lock_N = <>});
Leg = UseN ( noga**{lock_N = <>});
Stomac = UseN ( zhivot**{lock_N = <>});
Throat = UseN ( gorlo**{lock_N = <>});
Ear = UseN ( ukho**{lock_N = <>});
Chest = UseN ( grud**{lock_N = <>});
Foot = UseN ( stopa**{lock_N = <>});
Arm = UseN ( ruka**{lock_N = <>});
Back = UseN ( spina**{lock_N = <>});
Shoulder = UseN ( plecho**{lock_N = <>});
-- Knee = UseN ( koleno**{lock_N = <>});
-- High = AdjP1 (extAdjective vusokij ** {lock_Adj1 = <>});
-- Terrible = AdjP1 (extAdjective uzhasnuj ** {lock_Adj1 = <>});
-- FeverMod degree = mkNounPhrase Sg
-- (ModAdj degree (n2n temperatura** {lock_CN = <>})) ** {lock_NP = <>};
-- (ModAdj degree (UseN ( temperatura**{lock_N = <>}))) ** {lock_NP = <>};
-- PainInMod patient head degree = U_predTransVerb True (mkDirectVerb
-- (extVerb have Act Present) ** {lock_TV =<>}) patient
-- (mkNounPhrase Sg (ModAdj degree

View File

@@ -8,7 +8,7 @@
-- use this path to read the grammar from the same directory
--# -path=.:../newresource/abstract:../prelude:../newresource/swedish
concrete HealthSwe of Health = open PredicationSwe, ResourceSwe, Prelude, SyntaxSwe, ExtraSwe, ParadigmsSwe in {
concrete HealthSwe of Health = open PredicationSwe, ResourceSwe, Prelude, SyntaxSwe, ExtraSwe, ParadigmsSwe, ResourceExtSwe in {
flags
startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;
@@ -22,7 +22,7 @@ lincat
Illness = CN ;
Condition = VP ;
Specialization = CN ;
Medicine = CN ;
Medicine = NP ;
lin
And x y = ConjS AndConj (TwoS x y) ;
@@ -31,11 +31,40 @@ lin
TheyPatient = mkPronPatient de_38 ;
IPatientHe = mkPronPatient jag_32 ;
Influenza = n2n (extCommNoun NoMasc (sApa "influens")) ** {lock_CN = <>} ;
Malaria = n2n (extCommNoun NoMasc (sApa "malari")) ** {lock_CN = <>} ;
Influenza = UseN (nApa "influens") ;
Malaria = UseN (nApa "malari");
Diarrhea = UseN (nApa "diarré");
SkinAllergy = UseN (nApa "hudallergi");
Heartburn = UseN (nApa "halsbränna");
Rheumatism = UseN (nBil "reumatism");
Cystitis = UseN (nRisk "urinvägsinfektion");
Asthma = UseN (nApa "astma");
Arthritis = UseN (nApa "artrit");
Diabetes = UseN (nBil "diabetes");
Tonsillitis = UseN (nBil "halsfluss");
Constipation = UseN (nBil "förstoppning");
Dentist = UseN (nKikare "tandläkare") ;
Gynecologist = UseN (nRisk "gynekolog");
Urologist= UseN (nRisk "urolog");
Pediatrician = UseN (nKikare "barnläkare");
Physician = UseN (nKikare "läkare");
Dermatologist = UseN (nKikare "hudläkare");
Cardiologist = UseN (nRisk "kardiolog");
Neuropathologist = UseN (nRisk "neurolog");
Ophthalmologist = UseN (nKikare "ögönläkare");
Surgeon = UseN (nRisk "kirurg");
Dentist = n2n (extCommNoun Masc (sKikare "tandläkar")) ** {lock_CN = <>} ;
PainKiller = n2n (extCommNoun NoMasc (sBil "smärtstillande")) ** {lock_CN = <>} ;
SleepingPeels = IndefManyNP (UseN (nRisk "sömntablett")) ;
Sedative = IndefOneNP (UseN (nPapper "lugnande")) ;
Vitamins = IndefManyNP (UseN (nPapper "vitaminpiller")) ;
EyeDrops = IndefManyNP (UseN (nPojke "ögondroppe")) ;
Antibiotics = IndefManyNP (UseN (nPapper "antibiotika")) ;
Viagra = MassNP (UseN (nBil "viagra")) ;
Laxative = IndefOneNP (UseN (nPapper "laxer")) ;
Insulin = MassNP (UseN (nRep "insulin")) ;
Antidepressant = IndefOneNP ( ModAdj (AdjP1 (adjReg "antidepressiv")) (UseN (nRep "läkemedel"))) ;
PainKiller = IndefOneNP (UseN (nBil "smärtstillande")) ;
CatchCold = PosVG ( PredAP( AdjP1 (extAdjective (aGrund("förkyl")) ** {lock_Adj1 = <>}) ));
Pregnant = PosVG ( PredAP( AdjP1 (extAdjective (aGrund("gravi") )** {lock_Adj1 = <>}) ));
@@ -43,13 +72,13 @@ lin
BeInCondition = PredVP ;
HaveIllness patient illness = predV2 (mkDirectVerb verbHa** {lock_TV =<>}) patient
(DetNP (nullDet ** {lock_Det = <>}) illness) ;
NeedMedicine patient illness = predV2 (mkDirectVerb verbBehova** {lock_TV =<>}) patient
(DetNP (nullDet ** {lock_Det = <>}) illness) ;
TakeMedicine patient illness = predV2 (mkDirectVerb verbTa** {lock_TV =<>}) patient
(DetNP (nullDet ** {lock_Det = <>}) illness) ;
NeedMedicine = predV2 (mkDirectVerb verbBehova** {lock_TV =<>}) ;
TakeMedicine = predV2 (mkDirectVerb verbTa** {lock_TV =<>}) ;
NeedDoctor patient illness = predV2 (mkDirectVerb verbBehova** {lock_TV =<>}) patient
(DetNP (enDet ** {lock_Det = <>}) illness) ;
Fever = DetNP (nullDet ** {lock_Det = <>}) (n2n (extCommNoun NoMasc (sFeber "feb")) ** {lock_CN = <>}) ;
Fever = DetNP (nullDet ** {lock_Det = <>}) (UseN (nRisk "feber")) ;
Complain = predV2 (mkDirectVerb verbHa ** {lock_TV =<>}) ;
Broken patient head = predV2 (mkTransVerb verbHa "brutit" ** {lock_TV =<>} ) patient
@@ -59,25 +88,25 @@ lin
(
DetNP (nullDet ** {lock_Det = <>})
( AppFun
((mkFun (extCommNoun NoMasc (sBil "ont")**{lock_N =<>}) "i") ** {lock_Fun = <>})
((mkFun (nBil "ont") "i") ** {lock_Fun = <>})
((defNounPhrase patient.n head)** {lock_NP = <>})
)
) ;
Head = n2n (extCommNoun NoMasc(sHus "huvud")) ** {lock_CN = <>} ;
Leg = n2n (extCommNoun NoMasc (sHus "ben")) ** {lock_CN = <>} ;
Stomac = n2n (nPojke "mage") ** {lock_CN = <>} ;
Throat = n2n (nBil "hals") ** {lock_CN = <>} ;
Ear = n2n (mkN "öra" "örat" "öron" "öronen" Neutr NoMasc) ** {lock_CN = <>} ;
Chest = n2n (extCommNoun NoMasc (sHus "bröst")) ** {lock_CN = <>} ;
Foot = n2n (mkN "fot" "foten" "fötter" "fötterna" Utr NoMasc) ** {lock_CN = <>} ;
Arm = n2n (mkN "hand" "handen" "händer" "händerna" Utr NoMasc) ** {lock_CN = <>} ;
Back = n2n (nBil "rygg") ** {lock_CN = <>} ;
Shoulder = n2n (nNyckel "axel") ** {lock_CN = <>} ;
Head = UseN (nRep "huvud") ;
Leg = UseN (nRep "ben") ;
Stomac = UseN (nPojke "mage") ;
Throat = UseN (nBil "hals") ;
Ear = UseN (mkN "öra" "örat" "öron" "öronen" Neutr NoMasc) ;
Chest = UseN (nRep "bröst") ;
Foot = UseN (mkN "fot" "foten" "fötter" "fötterna" Utr NoMasc) ;
Arm = UseN (mkN "hand" "handen" "händer" "händerna" Utr NoMasc) ;
Back = UseN (nBil "rygg") ;
Shoulder = UseN (nNyckel "axel") ;
-- High = AdjP1 (extAdjective (aFin "hög")** {lock_Adj1 = <>}) ;
-- Terrible = AdjP1 (extAdjective (aFin "hemsk")** {lock_Adj1 = <>}) ;
-- FeverMod degree = DetNP (nullDet ** {lock_Det = <>}) (ModAdj degree (n2n (extCommNoun NoMasc (sFeber "feb")) ** {lock_CN = <>})) ;
-- High = AdjP1 (adjReg "hög") ;
-- Terrible = AdjP1 (adjReg "hemsk") ;
-- FeverMod degree = DetNP (nullDet ** {lock_Det = <>}) (ModAdj degree (UseN (nKikare "feb") ) ;
-- PainInMod patient head degree = predV2 (mkDirectVerb verbHa** {lock_TV =<>}) patient
-- (
-- DetNP (nullDet ** {lock_Det = <>})

View File

@@ -163,6 +163,7 @@ oper
nEau = \eau -> mkN eau (eau + "z") ;
nCas = \cas -> mkN cas cas ;
nReg = \cas -> mkN cas (cas + "s") ;
nCheval = \cheval -> mkN cheval (Predef.tk 1 cheval + "ux") masculine ;
funPrep = \n,p -> n ** complement p ** {lock_Fun = <>} ;

View File

@@ -332,17 +332,46 @@ oper pronVseInanimate: Pronoun =
-- without any reference to the Gender parameter "g".
oper SubstFormDecl = SS1 SubstForm ;
oper gorlo : CommNoun = l_oEndInAnimateDecl "горл" ;
oper koleno : CommNoun = oEndInAnimateDecl "колен" ;
oper plecho : CommNoun = oEndInAnimateDecl "плеч" ;
oper plecho : CommNoun = oEndInAnimateDecl "плеч" ;
oper ukho : CommNoun = oEnd_KH_InAnimateDecl "у" ;
oper zhivot : CommNoun = nullEndInAnimateDecl1 "живот" ;
oper grud : CommNoun = softSignEndDeclFem "груд" ;
oper spina : CommNoun = aEndG_K_KH_Decl "спин" ;
oper grud : CommNoun = softSignEndDeclFem "груд" ;
oper ruka : CommNoun = aEndG_K_KH_Decl "рук" ;
oper spina : CommNoun = aEndInAnimateDecl "спин" ;
oper stopa : CommNoun = aEndInAnimateDecl "стоп" ;
oper astma : CommNoun = aEndInAnimateDecl "астм" ;
oper angina : CommNoun = aEndInAnimateDecl "ангин" ;
oper revmatizm : CommNoun = nullEndInAnimateDecl1 "ревматизм" ;
oper zapor : CommNoun = nullEndInAnimateDecl1 "запор" ;
oper ponos : CommNoun = nullEndInAnimateDecl1 "понос" ;
oper artrit : CommNoun = nullEndInAnimateDecl1 "артрит" ;
oper diabet : CommNoun = nullEndInAnimateDecl1 "диабет" ;
oper tsistit : CommNoun = nullEndInAnimateDecl1 "цистит" ;
oper izzhoga : CommNoun = aEndG_K_KH_Decl "изжог" ;
oper allergiya : CommNoun = i_yaEndDecl "аллерги" ;
oper viagra : CommNoun = aEndInAnimateDecl "виагр" ;
oper antidepressant : CommNoun = nullEndInAnimateDecl1 "антидепрессант" ;
oper insulin : CommNoun = nullEndInAnimateDecl1 "инсулин" ;
oper vitamin : CommNoun = nullEndInAnimateDecl1 "витамин" ;
oper antibiotik : CommNoun = nullEndInAnimateDecl3 "антибиотик" ;
oper kaplya : CommNoun = (l_yaEndInAnimateDecl "кап") ** {g = Fem; anim = Inanimate} ;
oper snotvornoe : CommNoun = oeEndInAnimateDecl "снотворн" ;
oper uspokoitelnoe : CommNoun = oeEndInAnimateDecl "успокоительн" ;
oper slabitelnoe : CommNoun = oeEndInAnimateDecl "слабительн" ;
oper urolog : CommNoun = nullEndAnimateDecl "уролог" ;
oper ginekolog : CommNoun = nullEndAnimateDecl "гинеколог" ;
oper nevropatolog : CommNoun = nullEndAnimateDecl "невропатолог" ;
oper dermatolog : CommNoun = nullEndAnimateDecl "дерматолог" ;
oper kardiolog : CommNoun = nullEndAnimateDecl "кардиолог" ;
oper terapevt : CommNoun = nullEndAnimateDecl2 "терапевт" ;
oper okulist : CommNoun = nullEndAnimateDecl2 "окулист" ;
oper pediatr : CommNoun = nullEndAnimateDecl2 "педиатр" ;
oper khirurg : CommNoun = nullEndAnimateDecl2 "хирург" ;
oper muzhchina : CommNoun = (aEndAnimateDecl "мужчин") ** { g = Masc ; anim = Animate } ;
@@ -382,6 +411,22 @@ oper nullEndAnimateDecl: Str -> CommNoun = \stomatolog ->
SF Pl Acc => stomatolog+"ов" ;
SF Pl Inst => stomatolog+"ами" ;
SF Pl Prepos => stomatolog+"ах" } ;
g = Masc ; anim = Animate
} ;
oper nullEndAnimateDecl2: Str -> CommNoun = \stomatolog ->
{s = table
{ SF Sg Nom => stomatolog ;
SF Sg Gen => stomatolog+"а" ;
SF Sg Dat => stomatolog+"у" ;
SF Sg Acc => stomatolog +"а" ;
SF Sg Inst => stomatolog+"ом" ;
SF Sg Prepos => stomatolog+"е" ;
SF Pl Nom => stomatolog+"ы" ;
SF Pl Gen => stomatolog+"ов" ;
SF Pl Dat => stomatolog+"ам" ;
SF Pl Acc => stomatolog+"ов" ;
SF Pl Inst => stomatolog+"ами" ;
SF Pl Prepos => stomatolog+"ах" } ;
g = Masc ; anim = Animate
@@ -422,7 +467,8 @@ oper nullEndInAnimateDecl2: Str -> CommNoun = \gripp ->
{s = table
{ SF Sg Nom => gripp ;
SF Sg Dat => gripp+"у" ;
SF Sg Gen => gripp+"а" ;
SF Sg Dat => gripp+"у" ;
SF Sg Acc => gripp ;
SF Sg Inst => gripp+"ом" ;
SF Sg Prepos => gripp+"е" ;
@@ -430,6 +476,24 @@ oper nullEndInAnimateDecl2: Str -> CommNoun = \gripp ->
SF Pl Gen => gripp+"ов" ;
SF Pl Dat => gripp+"ам" ;
SF Pl Acc => gripp +"а";
SF Pl Inst => gripp+"ами" ;
SF Pl Prepos => gripp+"ах"
} ;
g = Masc ; anim = Inanimate
} ;
oper nullEndInAnimateDecl3: Str -> CommNoun = \antibiotik ->
{s = table
{ SF Sg Nom => antibiotik ;
SF Sg Gen => antibiotik+"а" ;
SF Sg Dat => antibiotik+"у" ;
SF Sg Acc => antibiotik ;
SF Sg Inst => antibiotik+"ом" ;
SF Sg Prepos => antibiotik+"е" ;
SF Pl Nom => antibiotik+"и" ;
SF Pl Gen => antibiotik+"ов" ;
@@ -450,6 +514,24 @@ oper eeEndInAnimateDecl: Str -> CommNoun = \obezbolivauch ->
SF Sg Dat => obezbolivauch+"ему" ;
SF Sg Acc => obezbolivauch +"ее";
SF Sg Inst => obezbolivauch+"им" ;
SF Sg Prepos => obezbolivauch+"ем" ;
SF Pl Nom => obezbolivauch+"ие" ;
SF Pl Gen => obezbolivauch+"их" ;
SF Pl Dat => obezbolivauch+"им" ;
SF Pl Acc => obezbolivauch+"ие" ;
SF Pl Inst => obezbolivauch+"ими" ;
SF Pl Prepos => obezbolivauch+"их"
} ;
g = Neut ; anim = Inanimate
} ;
oper oeEndInAnimateDecl: Str -> CommNoun = \snotvorn ->
{ s = table
{ SF Sg Nom => snotvorn +"ое";
SF Sg Gen => snotvorn+"ого" ;
SF Sg Dat => snotvorn+"ому" ;
SF Sg Acc => snotvorn +"ое";
SF Sg Inst => snotvorn+"ым" ;
SF Sg Prepos => snotvorn+"ом" ;
SF Pl Nom => snotvorn+"ые" ;
SF Pl Gen => snotvorn+"ых" ;
@@ -468,9 +550,9 @@ oper eEndInAnimateDecl: Str -> CommNoun = \proizvedeni ->
SF Sg Gen => proizvedeni+"я" ;
SF Sg Dat => proizvedeni+"ю" ;
SF Sg Acc => proizvedeni +"е";
SF Pl Acc => proizvedeni+"я" ;
SF Pl Inst => proizvedeni+"ями" ;
SF Pl Prepos => proizvedeni+"ях"
SF Sg Inst => proizvedeni+"ем" ;
SF Sg Prepos => proizvedeni+"и" ;
SF Pl Nom => proizvedeni+"я" ;
SF Pl Gen => proizvedeni+"й" ;
SF Pl Dat => proizvedeni+"ям" ;
SF Pl Acc => proizvedeni+"я" ;
@@ -491,6 +573,42 @@ oper oEndInAnimateDecl3: Str -> Str -> CommNoun = \chisl, chisel ->
SF Sg Dat => chisl+"у" ;
SF Sg Acc => chisl +"о";
SF Sg Inst => chisl+"ом" ;
SF Sg Prepos => chisl+"е" ;
SF Pl Nom => chisl+"а" ;
SF Pl Gen => chisel;
SF Pl Dat => chisl+"ам" ;
SF Pl Acc => chisl+"а" ;
SF Pl Inst => chisl+"ами" ;
SF Pl Prepos => chisl+"ах"
} ;
g = Neut ; anim = Inanimate
} ;
oper oEndInAnimateDecl: Str -> CommNoun = \plech ->
{ s = table
{ SF Sg Nom => plech+"о" ;
SF Sg Gen => plech+"а" ;
SF Sg Dat => plech+"у" ;
SF Sg Acc => plech+"о" ;
SF Sg Inst => plech+"ом" ;
SF Sg Prepos => plech+"е" ;
SF Pl Nom => plech+"и" ;
SF Pl Gen => plech;
SF Pl Dat => plech+"ам" ;
SF Pl Acc => plech+"и" ;
SF Pl Inst => plech+"ами" ;
SF Pl Prepos => plech+"ях"
} ;
g = Neut ; anim = Inanimate
} ;
oper oEnd_KH_InAnimateDecl: Str -> CommNoun = \u ->
{ s = table
{ SF Sg Nom => u+"хо" ;
SF Sg Gen => u+"ха" ;
SF Sg Dat => u+"ху" ;
SF Sg Acc => u+"хо" ;
SF Sg Inst => u+"хом" ;
@@ -580,7 +698,7 @@ oper aEndG_K_KH_Decl: Str -> CommNoun = \nog ->
SF Sg Inst => rem+"нем" ;
SF Sg Prepos => rem+"не" ;
oper doroga : CommNoun = aEndG_K_KH_Decl "дорог" ;
SF Pl Nom => rem+"ни" ;
SF Pl Gen => rem+"ней" ;
SF Pl Dat => rem+"ням" ;
SF Pl Acc => rem+"ни" ;
@@ -589,12 +707,12 @@ oper aEndG_K_KH_Decl: Str -> CommNoun = \nog ->
} ;
g = Masc ; anim = Inanimate
} ;
SF Sg Inst => nog+"ой" ;
SF Sg Prepos => nog+"е" ;
SF Pl Nom => nog+"и" ;
SF Pl Gen => nog ;
oper noga : CommNoun = aEndG_K_KH_Decl "ног" ;
oper doroga : CommNoun = aEndG_K_KH_Decl "дорог" ;
oper dvojka : CommNoun = aEndG_K_KH_Decl "двойк" ;
oper butyulka : CommNoun = aEndG_K_KH_Decl "бутылк" ;
SF Pl Acc => nog+ "и" ;
oper aEndG_K_KH_Decl: Str -> CommNoun = \nog ->
{ s = table {
SF Sg Nom => nog+"а" ;
SF Sg Gen => nog+"и" ;
@@ -611,7 +729,7 @@ oper aEndInanimateDecl: Str -> CommNoun = \golov ->
SF Pl Prepos => nog+"ах"
} ;
SF Sg Dat => golov+"е" ;
g = Fem ; anim = Inanimate
} ;
oper golova : CommNoun = aEndInAnimateDecl "голов" ;
@@ -647,6 +765,22 @@ oper yaEndAnimateDecl: Str -> SubstFormDecl = \nyan ->
SF Sg Prepos => ediniz+"е" ;
SF Pl Nom => ediniz+"ы" ;
SF Pl Gen => ediniz ;
SF Pl Dat => ediniz+"ам" ;
SF Pl Acc => ediniz+ "ы" ;
SF Pl Inst => ediniz+"ами" ;
SF Pl Prepos => ediniz+"ах"
} ;
g = Fem ; anim = Inanimate
} ;
oper dyadya : CommNoun = (yaEndAnimateDecl "дяд") ** {g = Masc; anim = Animate} ;
oper yaEndAnimateDecl: Str -> SubstFormDecl = \nyan ->
{s = table {
SF Sg Nom => nyan + "я" ;
SF Sg Gen => nyan + "и" ;
SF Sg Dat => nyan + "е" ;
SF Sg Acc => nyan + "ю" ;
SF Sg Inst => nyan + "ей" ;
@@ -670,7 +804,7 @@ oper goEnd_SgDecl: Str -> CommNoun = \mno ->
SF Sg Acc => kap + "лю" ;
SF Sg Inst => kap + "лей" ;
SF Sg Prepos => kap + "ле" ;
SF Sg Dat => bolshinstv+"у" ;
SF Pl Nom => kap + "ли" ;
SF Pl Gen => kap + "ель" ;
SF Pl Inst => kap + "лями" ;
SF Pl Prepos => kap + "лях" ;
@@ -726,7 +860,7 @@ oper eEnd_Decl: Str -> CommNoun = \vs ->
oper oEnd_SgDecl: Str -> CommNoun = \bolshinstv ->
{ s = table {
SF _ Nom => bolshinstv+"о" ;
SF Sg Nom => vs+"е" ;
SF _ Gen => bolshinstv+"а" ;
SF _ Dat => bolshinstv+"у" ;
SF _ Acc => bolshinstv+"о" ;
SF _ Inst => bolshinstv+"ом" ;
@@ -737,6 +871,7 @@ oper
-- Note: Now we consider only the plural form of the pronoun "все" (all)
-- treated as an adjective (see AllDetPl definition).
-- The meaning "entire" is not considered, which allows us to form
-- the pronoun-adjective from the substantive form below:
oper eEnd_Decl: Str -> CommNoun = \vs ->
@@ -807,7 +942,7 @@ oper etotDet: Adjective = {s = table {
AF Nom _ (ASg Neut) => "то";
AF Nom _ APl => "те";
AF Acc Inanimate (ASg Masc) => "тот";
AF Prepos _ (ASg Masc) => "том";
AF Acc Animate (ASg Masc) => "того";
AF Acc _ (ASg Fem) => "ту";
AF Acc _ (ASg Neut) => "то";
AF Acc Inanimate APl => "те";
@@ -952,7 +1087,7 @@ oper i_oj_EndDecl : Str -> Str -> Adjective = \s, chastica ->{s = table {
AF Inst _ (ASg Neut) => s+"им";
AF Inst _ APl => s+"ими";
AF Dat _ (ASg Masc) => s+"ому";
AF Nom _ APl => s+"ие"+ chastica ;
AF Dat _ (ASg Fem) => s+"ой";
AF Dat _ (ASg Neut) => s+"ому";
AF Dat _ APl => s+"им";
AF Prepos _ (ASg Masc) => s+"ом";
@@ -980,7 +1115,7 @@ oper uy_oj_EndDecl : Str -> Adjective = \s ->{s = table {
AF Gen _ (ASg Masc) => s+"ого"+ chastica ;
AF Gen _ (ASg Fem) => s+"ой"+ chastica ;
AF Gen _ (ASg Neut) => s+"ого"+ chastica ;
oper molodoj: AdjDegr = mkAdjDeg (uy_oj_EndDecl "молод") "моложе";
AF Gen _ APl => s+"их"+ chastica ;
AF Inst _ (ASg Masc) => s+"им"+ chastica ;
AF Inst _ (ASg Fem) => s+"ой"+ chastica ;
@@ -1262,7 +1397,7 @@ oper
VIMP Pl P2 => av.s! (VIMP Pl P2) +"сь";
VIMP Sg P3 => av.s ! (VIMP Sg P3) +"ся";
VIND (VFuture Pl P1) => av.s! (VIND (VFuture Pl P1) )+ "ся";
VIMP Pl P3 => av.s ! (VIMP Pl P3) +"ся";
VSUB (ASg Masc) => pv ! (PSF (ASg Masc)) + "ся"+[" бы"];
VSUB (ASg Fem) => pv ! (PSF (ASg Fem)) + "сь"+[" бы"];

View File

@@ -267,8 +267,8 @@ oper
anim = anim
} ** {lock_N = <>} ;
nMashina = \s -> aEndInanimateDecl s ** {lock_N = <>};
nEdinica = \s -> ej_aEndInanimateDecl s ** {lock_N = <>};
nMashina = \s -> aEndInAnimateDecl s ** {lock_N = <>};
nEdinica = \s -> ej_aEndInAnimateDecl s ** {lock_N = <>};
nZhenchina = \s -> (aEndAnimateDecl s) ** { g = Fem ; anim = Animate } ** {lock_N = <>};
nNoga = \s -> aEndG_K_KH_Decl s ** {lock_N = <>};
nMalyariya = \s -> i_yaEndDecl s ** {lock_N = <>};