diff --git a/grammars/health/ExtraFre.gf b/grammars/health/ExtraFre.gf index 25b6aa302..0d0bbfaad 100644 --- a/grammars/health/ExtraFre.gf +++ b/grammars/health/ExtraFre.gf @@ -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 =<>} ; diff --git a/grammars/health/ExtraRus.gf b/grammars/health/ExtraRus.gf index 6adc0d40d..0158a1384 100644 --- a/grammars/health/ExtraRus.gf +++ b/grammars/health/ExtraRus.gf @@ -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 ; diff --git a/grammars/health/Health.gf b/grammars/health/Health.gf index 22c8d2ec6..8d732c41e 100644 --- a/grammars/health/Health.gf +++ b/grammars/health/Health.gf @@ -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 ; diff --git a/grammars/health/HealthEng.gf b/grammars/health/HealthEng.gf index ea33f11d6..dec34e3e5 100644 --- a/grammars/health/HealthEng.gf +++ b/grammars/health/HealthEng.gf @@ -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 = <>}) ; diff --git a/grammars/health/HealthFre.gf b/grammars/health/HealthFre.gf index 77cfb6c5d..b89ba21fd 100644 --- a/grammars/health/HealthFre.gf +++ b/grammars/health/HealthFre.gf @@ -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 "diarrhe" 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 "brlure" 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 "diabte" 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 "gyncologue" Masc) ; + Urologist = mkCN (nReg "urologue" Masc) ; + Pediatrician = mkCN (nReg "pdiatre" Masc) ; + Physician = mkCN (nReg "thrapeute" 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 "fivre" Fem ** {lock_CN = <> }) ; + SleepingPeels = DetNP desDet (mkCN (nReg "somnifre" 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 "sdatif" Masc)) **{des = False}; + Antidepressant = IndefOneNP (mkCN (nReg "antidpressif" 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 "fivre" 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 = <>}) ) ) ; diff --git a/grammars/health/HealthRus.gf b/grammars/health/HealthRus.gf index ddbaf9473..96e7040ef 100644 --- a/grammars/health/HealthRus.gf +++ b/grammars/health/HealthRus.gf @@ -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 diff --git a/grammars/health/HealthSwe.gf b/grammars/health/HealthSwe.gf index 32d41ab2a..b385ea94a 100644 --- a/grammars/health/HealthSwe.gf +++ b/grammars/health/HealthSwe.gf @@ -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 "halsbrnna"); + Rheumatism = UseN (nBil "reumatism"); + Cystitis = UseN (nRisk "urinvgsinfektion"); + Asthma = UseN (nApa "astma"); + Arthritis = UseN (nApa "artrit"); + Diabetes = UseN (nBil "diabetes"); + Tonsillitis = UseN (nBil "halsfluss"); + Constipation = UseN (nBil "frstoppning"); + + Dentist = UseN (nKikare "tandlkare") ; + Gynecologist = UseN (nRisk "gynekolog"); + Urologist= UseN (nRisk "urolog"); + Pediatrician = UseN (nKikare "barnlkare"); + Physician = UseN (nKikare "lkare"); + Dermatologist = UseN (nKikare "hudlkare"); + Cardiologist = UseN (nRisk "kardiolog"); + Neuropathologist = UseN (nRisk "neurolog"); + Ophthalmologist = UseN (nKikare "gnlkare"); + Surgeon = UseN (nRisk "kirurg"); - Dentist = n2n (extCommNoun Masc (sKikare "tandlkar")) ** {lock_CN = <>} ; - PainKiller = n2n (extCommNoun NoMasc (sBil "smrtstillande")) ** {lock_CN = <>} ; + SleepingPeels = IndefManyNP (UseN (nRisk "smntablett")) ; + 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 "lkemedel"))) ; + PainKiller = IndefOneNP (UseN (nBil "smrtstillande")) ; CatchCold = PosVG ( PredAP( AdjP1 (extAdjective (aGrund("frkyl")) ** {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 "brst")) ** {lock_CN = <>} ; - Foot = n2n (mkN "fot" "foten" "ftter" "ftterna" Utr NoMasc) ** {lock_CN = <>} ; - Arm = n2n (mkN "hand" "handen" "hnder" "hnderna" 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 "brst") ; + Foot = UseN (mkN "fot" "foten" "ftter" "ftterna" Utr NoMasc) ; + Arm = UseN (mkN "hand" "handen" "hnder" "hnderna" Utr NoMasc) ; + Back = UseN (nBil "rygg") ; + Shoulder = UseN (nNyckel "axel") ; --- High = AdjP1 (extAdjective (aFin "hg")** {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 "hg") ; +-- 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 = <>}) diff --git a/lib/resource-0.6/french/ParadigmsFre.gf b/lib/resource-0.6/french/ParadigmsFre.gf index 48d1f14a4..c3a9493ec 100644 --- a/lib/resource-0.6/french/ParadigmsFre.gf +++ b/lib/resource-0.6/french/ParadigmsFre.gf @@ -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 = <>} ; diff --git a/lib/resource-0.6/russian/MorphoRus.gf b/lib/resource-0.6/russian/MorphoRus.gf index 6e1a8121a..eef1fa813 100644 --- a/lib/resource-0.6/russian/MorphoRus.gf +++ b/lib/resource-0.6/russian/MorphoRus.gf @@ -332,17 +332,46 @@ oper pronVseInanimate: Pronoun = oper SubstFormDecl = SS1 SubstForm ; -oper gorlo : CommNoun = oEndInAnimateDecl "горл" ; +oper gorlo : CommNoun = l_oEndInAnimateDecl "горл" ; oper koleno : CommNoun = oEndInAnimateDecl "колен" ; oper plecho : CommNoun = oEndInAnimateDecl "плеч" ; -oper ukho : CommNoun = oEndInAnimateDecl "ух" ; +oper ukho : CommNoun = oEnd_KH_InAnimateDecl "у" ; oper zhivot : CommNoun = nullEndInAnimateDecl1 "живот" ; oper grud : CommNoun = softSignEndDeclFem "груд" ; -oper spina : CommNoun = aEndG_K_KH_Decl "спин" ; -oper stopa : CommNoun = aEndG_K_KH_Decl "стоп" ; 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 } ; oper zhenchina : CommNoun = (aEndAnimateDecl "женщин") ** { g = Fem ; anim = Animate } ; @@ -382,6 +411,22 @@ oper nullEndAnimateDecl: Str -> CommNoun = \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 + } ; oper gripp : CommNoun = nullEndInAnimateDecl1 "грипп" ; oper bar : CommNoun = nullEndInAnimateDecl1 "бар" ; @@ -422,7 +467,8 @@ oper nullEndInAnimateDecl2: Str -> CommNoun = \gripp -> SF Sg Inst => gripp+"ом" ; SF Sg Prepos => gripp+"е" ; SF Pl Nom => gripp+"а" ; - SF Pl Gen => gripp+"ов" ; + SF Pl Gen => gripp+"ов" ; + SF Pl Dat => gripp+"ам" ; SF Pl Acc => gripp +"а"; SF Pl Inst => gripp+"ами" ; @@ -430,6 +476,24 @@ oper nullEndInAnimateDecl2: Str -> CommNoun = \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+"ов" ; + + SF Pl Dat => antibiotik+"ам" ; + SF Pl Acc => antibiotik +"и"; + SF Pl Inst => antibiotik+"ами" ; + SF Pl Prepos => antibiotik+"ах" + } ; + g = Masc ; anim = Inanimate + } ; oper obezbolivauchee : CommNoun = eeEndInAnimateDecl "обезболивающ" ; oper eeEndInAnimateDecl: Str -> CommNoun = \obezbolivauch -> @@ -450,6 +514,24 @@ oper eeEndInAnimateDecl: Str -> CommNoun = \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+"ых" ; + SF Pl Dat => snotvorn+"ым" ; + SF Pl Acc => snotvorn+"ые" ; + SF Pl Inst => snotvorn+"ыми" ; + SF Pl Prepos => snotvorn+"ых" + } ; + g = Neut ; anim = Inanimate + } ; + oper proizvedenie : CommNoun = eEndInAnimateDecl "произведени" ; oper eEndInAnimateDecl: Str -> CommNoun = \proizvedeni -> { s = table @@ -468,9 +550,9 @@ oper eEndInAnimateDecl: Str -> CommNoun = \proizvedeni -> } ; g = Neut ; anim = Inanimate } ; -oper chislo : CommNoun = oEndInAnimateDecl "числ" ; -oper vino : CommNoun = oEndInAnimateDecl "вин" ; -oper oEndInAnimateDecl: Str -> CommNoun = \chisl -> +oper chislo : CommNoun = l_oEndInAnimateDecl "числ" ; +oper vino : CommNoun = l_oEndInAnimateDecl "вин" ; +oper l_oEndInAnimateDecl: Str -> CommNoun = \chisl -> let { chis = Predef.tk 1 chisl ; ending = Predef.dp 3 chisl } in oEndInAnimateDecl3 chisl (chis+"e"+ending) ; oper oEndInAnimateDecl3: Str -> Str -> CommNoun = \chisl, chisel -> @@ -491,6 +573,42 @@ oper oEndInAnimateDecl3: Str -> Str -> CommNoun = \chisl, chisel -> 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+"хом" ; + SF Sg Prepos => u+"хе" ; + SF Pl Nom => u+"ши" ; + SF Pl Gen => u +"шей"; + SF Pl Dat => u+"шам" ; + SF Pl Acc => u+"ши" ; + SF Pl Inst => u+"шами" ; + SF Pl Prepos => u+"шах" + } ; + g = Neut ; anim = Inanimate + } ; + + oper malaria : CommNoun = i_yaEndDecl "маляри" ; oper i_yaEndDecl: Str -> CommNoun = \malar -> { s = table @@ -580,7 +698,7 @@ oper aEndG_K_KH_Decl: Str -> CommNoun = \nog -> SF Sg Inst => nog+"ой" ; SF Sg Prepos => nog+"е" ; SF Pl Nom => nog+"и" ; - SF Pl Gen => nog ; + SF Pl Gen => nog ; SF Pl Dat => nog+"ам" ; SF Pl Acc => nog+ "и" ; SF Pl Inst => nog+"ами" ; @@ -589,12 +707,12 @@ oper aEndG_K_KH_Decl: Str -> CommNoun = \nog -> g = Fem ; anim = Inanimate } ; -oper golova : CommNoun = aEndInanimateDecl "голов" ; -oper mashina : CommNoun = aEndInanimateDecl "машин" ; -oper temperatura : CommNoun = aEndInanimateDecl "температур" ; -oper edinica : CommNoun = ej_aEndInanimateDecl "единиц" ; +oper golova : CommNoun = aEndInAnimateDecl "голов" ; +oper mashina : CommNoun = aEndInAnimateDecl "машин" ; +oper temperatura : CommNoun = aEndInAnimateDecl "температур" ; +oper edinica : CommNoun = ej_aEndInAnimateDecl "единиц" ; -oper aEndInanimateDecl: Str -> CommNoun = \golov -> +oper aEndInAnimateDecl: Str -> CommNoun = \golov -> { s = table { SF Sg Nom => golov+"а" ; SF Sg Gen => golov+"ы" ; @@ -611,7 +729,7 @@ oper aEndInanimateDecl: Str -> CommNoun = \golov -> } ; g = Fem ; anim = Inanimate } ; -oper ej_aEndInanimateDecl: Str -> CommNoun = \ediniz -> +oper ej_aEndInAnimateDecl: Str -> CommNoun = \ediniz -> { s = table { SF Sg Nom => ediniz+"а" ; SF Sg Gen => ediniz+"ы" ; @@ -647,6 +765,22 @@ oper yaEndAnimateDecl: Str -> SubstFormDecl = \nyan -> SF Pl Acc => nyan + "ей" } } ; +oper l_yaEndInAnimateDecl: Str -> SubstFormDecl = \kap -> +{s = table { + SF Sg Nom => kap + "ля" ; + SF Sg Gen => kap + "ли" ; + SF Sg Dat => kap + "ле" ; + SF Sg Acc => kap + "лю" ; + SF Sg Inst => kap + "лей" ; + SF Sg Prepos => kap + "ле" ; + SF Pl Nom => kap + "ли" ; + SF Pl Gen => kap + "ель" ; + SF Pl Inst => kap + "лями" ; + SF Pl Prepos => kap + "лях" ; + SF Pl Dat => kap + "лям" ; + SF Pl Acc => kap + "ли" + } + } ; oper oEnd_Decl: Str -> CommNoun = \bolshinstv -> { s = table { @@ -670,7 +804,7 @@ oper goEnd_SgDecl: Str -> CommNoun = \mno -> { s = table { SF _ Nom => mno+"го" ; SF _ Gen => mno +"гих"; - SF _ Dat => mno+"гим" ; + SF _ Dat => mno+"гим" ; SF _ Acc => mno+"го" ; SF _ Inst => mno+"гими" ; SF _ Prepos => mno+"гих" @@ -726,7 +860,7 @@ oper eEnd_Decl: Str -> CommNoun = \vs -> --2 Adjectives -- Type Adjective only has positive degree while AdjDegr type --- includes also comparative and superlative forms. +-- includes also comparative and superlative forms. -- The later entries can be converted into the former using -- "extAdjective" operation defined in the syntax module -- and vice verca using "mkAdjDeg" operation. @@ -737,6 +871,7 @@ oper kazhdujDet: Adjective = uy_j_EndDecl "кажд" ; samuj: Adjective = uy_j_EndDecl "сам" ; lubojDet: Adjective = uy_oj_EndDecl "люб" ; + glaznoj: Adjective = uy_oj_EndDecl "глазн" ; kotorujDet: Adjective = uy_j_EndDecl "котор"; nekotorujDet: Adjective = uy_j_EndDecl "некотор"; takoj: Adjective = i_oj_EndDecl "так" []; @@ -807,7 +942,7 @@ oper etotDet: Adjective = {s = table { AF Gen _ (ASg Fem) => "этой"; AF Gen _ (ASg Neut) => "этого"; AF Gen _ APl => "этих"; - AF Inst _ (ASg Masc) => "этим"; + AF Inst _ (ASg Masc) => "этим"; AF Inst _ (ASg Fem) => "этой"; AF Inst _ (ASg Neut) => "этим"; AF Inst _ APl => "этими"; @@ -952,7 +1087,7 @@ oper i_oj_EndDecl : Str -> Str -> Adjective = \s, chastica ->{s = table { AdvF => "о" } } ; -oper molodoj: AdjDegr = mkAdjDeg (uy_oj_EndDecl "молод") "моложе"; +oper molodoj: AdjDegr = mkAdjDeg (uy_oj_EndDecl "молод") "моложе"; oper uy_oj_EndDecl : Str -> Adjective = \s ->{s = table { AF Nom _ (ASg Masc) => s+"ой"; AF Nom _ (ASg Fem) => s+"ая"; @@ -980,7 +1115,7 @@ oper uy_oj_EndDecl : Str -> Adjective = \s ->{s = table { AF Prepos _ (ASg Fem) => s+"ой"; AF Prepos _ (ASg Neut) => s+"ом"; AF Prepos _ APl => s+"ых"; - AdvF => "о" + AdvF => "о" } } ; oper prostuzhen: Adjective = shortDecl1 "простужен" ; @@ -1262,7 +1397,7 @@ oper VIND (VFuture Pl P3) => ["будут "] + presentFuture ! (PRF APl P3) ; VIND (VPast (ASg Masc)) => past ! (PSF (ASg Masc)) ; - VIND (VPast (ASg Fem)) => past ! (PSF (ASg Fem) ) ; + VIND (VPast (ASg Fem)) => past ! (PSF (ASg Fem) ) ; VIND (VPast (ASg Neut) ) => past ! (PSF (ASg Neut)) ; VIND (VPast APl) => past ! (PSF APl) } ; diff --git a/lib/resource-0.6/russian/ParadigmsRus.gf b/lib/resource-0.6/russian/ParadigmsRus.gf index e35d63175..57ba93a47 100644 --- a/lib/resource-0.6/russian/ParadigmsRus.gf +++ b/lib/resource-0.6/russian/ParadigmsRus.gf @@ -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 = <>};