mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
From Janna.
This commit is contained in:
@@ -18,7 +18,7 @@ lincat
|
|||||||
lin
|
lin
|
||||||
WhichAre A B = QuestPhrase (IntVP (NounIPMany A) (PosVG (PredAP B))) ;
|
WhichAre A B = QuestPhrase (IntVP (NounIPMany A) (PosVG (PredAP B))) ;
|
||||||
IsThere A = QuestPhrase (IsThereNP (IndefOneNP A)) ;
|
IsThere A = QuestPhrase (IsThereNP (IndefOneNP A)) ;
|
||||||
AreThere A = QuestPhrase (IsThereNP (IndefManyNP NoNum A)) ;
|
AreThere A = QuestPhrase (IsThereNP (IndefNumNP NoNum A)) ;
|
||||||
WhatIs val = QuestPhrase (IntVP WhatOne (PosVG (PredNP val))) ;
|
WhatIs val = QuestPhrase (IntVP WhatOne (PosVG (PredNP val))) ;
|
||||||
IsIt Q A = QuestPhrase (QuestVP Q (PosVG (PredAP A))) ;
|
IsIt Q A = QuestPhrase (QuestVP Q (PosVG (PredAP A))) ;
|
||||||
|
|
||||||
@@ -35,9 +35,9 @@ lin
|
|||||||
|
|
||||||
Individual = UsePN ;
|
Individual = UsePN ;
|
||||||
|
|
||||||
AllN = DetNP (AllsDet NoNum) ;
|
AllN = DetNP (AllNumDet NoNum) ;
|
||||||
MostN = DetNP MostsDet ;
|
MostN = DetNP MostsDet ;
|
||||||
EveryN = DetNP EveryDet ;
|
EveryN = DetNP EveryDet ;
|
||||||
Any = DetNP (AnysDet NoNum) ;
|
Any = DetNP (AnyNumDet NoNum) ;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
65
grammars/health/ExtraEng.gf
Normal file
65
grammars/health/ExtraEng.gf
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
-- use this path to read the grammar from the same directory
|
||||||
|
--# -path=.:../abstract:../../prelude:../english
|
||||||
|
|
||||||
|
--1 Functions that are not in the API, but common in Russian
|
||||||
|
--
|
||||||
|
-- Aarne Ranta, Janna Khegai 2003
|
||||||
|
|
||||||
|
resource ExtraEng = open PredicationEng, ResourceEng, Prelude, SyntaxEng in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
BodyCNCategory : Type =
|
||||||
|
{ s : Bool => Number => Case => Str ; painInType : Bool} ;
|
||||||
|
|
||||||
|
mkPain: BodyCNCategory -> CN = \body ->
|
||||||
|
cnNoHum({ s = \\_,_ => body.s ! body.painInType ! Sg ! Nom })** {lock_CN = <>} ;
|
||||||
|
|
||||||
|
mkBody: BodyCNCategory -> CN = \body ->
|
||||||
|
cnNoHum({ s = \\n,_ => body.s ! True ! n ! Nom })** {lock_CN = <>} ;
|
||||||
|
|
||||||
|
injuredBody: TV -> NP -> BodyCNCategory -> S =
|
||||||
|
\haveInjured, patient, head ->
|
||||||
|
predV2 haveInjured patient (hisHead patient (mkBody head) **{lock_NP = <>}) ;
|
||||||
|
|
||||||
|
nullDet : Det = mkDeterminer Sg [] ** {lock_Det = <>};
|
||||||
|
|
||||||
|
hisHead: NP -> CN -> NP =\patient, head ->
|
||||||
|
{ s =\\c => patient.s ! GenP ++ head.s ! patient.n ! Nom ;
|
||||||
|
n = patient.n ; p = P3 ; lock_NP = <>} ;
|
||||||
|
|
||||||
|
tvHave: TV = mkTransVerbDir verbP3Have ** {lock_TV = <>};
|
||||||
|
|
||||||
|
|
||||||
|
painInPatientsBody: CN -> NP -> BodyCNCategory -> S =
|
||||||
|
\pain, patient, head -> case head.painInType of {
|
||||||
|
False => predV2 tvHave patient (DetNP (aDet** {lock_Det = <>}) ( mkPain head));
|
||||||
|
True => predV2 tvHave patient (DetNP nullDet
|
||||||
|
(
|
||||||
|
cnNoHum(appFunComm (pain ** {s2 = "in"})
|
||||||
|
(hisHead patient (mkBody head)))** {lock_CN = <>}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
painInPatientsBodyMode: CN -> NP -> BodyCNCategory -> AP -> S =
|
||||||
|
\pain, patient, head, degree -> case head.painInType of {
|
||||||
|
False => predV2 tvHave patient (DetNP (aDet** {lock_Det = <>})
|
||||||
|
(
|
||||||
|
modCommNounPhrase degree (mkPain head) ** {lock_CN = <>}
|
||||||
|
));
|
||||||
|
True => predV2 tvHave patient (DetNP nullDet
|
||||||
|
(
|
||||||
|
modCommNounPhrase degree
|
||||||
|
(
|
||||||
|
cnNoHum
|
||||||
|
(
|
||||||
|
appFunComm (pain ** {s2 = "in"})
|
||||||
|
(hisHead patient (mkBody head))
|
||||||
|
)
|
||||||
|
) ** {lock_CN = <>}
|
||||||
|
))
|
||||||
|
} ;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
39
grammars/health/ExtraFre.gf
Normal file
39
grammars/health/ExtraFre.gf
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
-- use this path to read the grammar from the same directory
|
||||||
|
--# -path=.:../abstract:../../prelude:../french:../romance
|
||||||
|
|
||||||
|
--1 Functions that are not in the API, but common in Russian
|
||||||
|
--
|
||||||
|
-- Aarne Ranta, Janna Khegai 2003
|
||||||
|
|
||||||
|
resource ExtraFre = open PredicationFre, ResourceFre, Prelude, SyntaxFre, MorphoFre in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
avoirBesoin: CN -> VP = \medicine ->
|
||||||
|
PosVG ( PredTV tvAvoir (DetNP nullDet (
|
||||||
|
AppFun (funDe (mkCNomReg "besoin" Masc) ** {lock_Fun =<>} )
|
||||||
|
(IndefOneNP medicine)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) **{lock_VP =<>} ;
|
||||||
|
|
||||||
|
injuredBody: (Gender => Number => Str) -> NP -> CN -> S =
|
||||||
|
\injured, patient, head ->
|
||||||
|
PredVP patient
|
||||||
|
{s = \\g,v => pronRefl patient.n patient.p ++
|
||||||
|
verbEtre.s ! v ++
|
||||||
|
injured ! g ! patient.n ++
|
||||||
|
(DefOneNP head).s ! case2pform Acc;
|
||||||
|
lock_VP = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
delDet : Det = mkDeterminer Sg (artDef Masc Sg genitive)
|
||||||
|
(artDef Fem Sg genitive) ** {lock_Det = <>} ;
|
||||||
|
|
||||||
|
nullDet : Det = mkDeterminer1 Sg "" ** {lock_Det =<>} ;
|
||||||
|
|
||||||
|
tvAvoir = mkTransVerbDir (verbPres (conj3savoir ""))** {lock_TV = <> };
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
39
grammars/health/ExtraIta.gf
Normal file
39
grammars/health/ExtraIta.gf
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
--1 Functions that are not in the API, but common in Russian
|
||||||
|
--
|
||||||
|
-- Aarne Ranta, Janna Khegai 2003
|
||||||
|
|
||||||
|
resource ExtraIta = open ResourceIta, Prelude, SyntaxIta, MorphoIta in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
NPLock = NounPhrase ** {lock_NP : {}} ;
|
||||||
|
CNLock = CommNounPhrase ** {lock_CN : {}} ;
|
||||||
|
SLock = Sentence ** {lock_S : {}} ;
|
||||||
|
oper
|
||||||
|
|
||||||
|
averBisogno : CN -> VP = \cn ->
|
||||||
|
PosVG (PredTV (mkTransVerbPrep (verbPres avere) "bisogno"** {lock_TV = <>}) (IndefOneNP cn)) ;
|
||||||
|
|
||||||
|
-- the following are too low-level and should be provided by the resources
|
||||||
|
|
||||||
|
injuredBody: AP -> NPLock -> CNLock -> SLock = \injured, patient, head ->
|
||||||
|
(PredVP patient
|
||||||
|
{s = \\g,v => pronRefl patient.n patient.p ++
|
||||||
|
verbEssere.s ! v ++
|
||||||
|
injured.s ! (AF g patient.n) ++
|
||||||
|
(DefOneNP head).s ! case2pform accusative ;
|
||||||
|
lock_VP = <>
|
||||||
|
} ) ** {lock_S = <> };
|
||||||
|
|
||||||
|
partitNP : CN -> NP = \cn ->
|
||||||
|
let {np = DefOneNP cn} in {s = \\_ => np.s ! Aton genitive} ** np ;
|
||||||
|
|
||||||
|
datAdv : NP -> AdV = \np ->
|
||||||
|
{s = np.s ! Aton dative; lock_AdV = <> } ;
|
||||||
|
|
||||||
|
-- from Predication:
|
||||||
|
predV2: TransVerb -> NPLock -> NounPhrase -> SLock = \F, x, y ->
|
||||||
|
predVerbPhrase x ((predVerbGroup True) (complTransVerb F y)) ** { lock_S = <>} ;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
36
grammars/health/ExtraRus.gf
Normal file
36
grammars/health/ExtraRus.gf
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
-- use this path to read the grammar from the same directory
|
||||||
|
--# -path=.:../abstract:../../prelude:../russian
|
||||||
|
|
||||||
|
--1 Functions that are not in the API, but common in Russian
|
||||||
|
--
|
||||||
|
-- Aarne Ranta, Janna Khegai 2003
|
||||||
|
resource ExtraRus = open ResourceRus, Prelude, SyntaxRus in {
|
||||||
|
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
predNeedShortAdjective: Bool -> NP -> CN -> 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 ;
|
||||||
|
ne = negation b
|
||||||
|
} in
|
||||||
|
mne ++ ne ++ nuzhen ++ doctor ;
|
||||||
|
lock_S = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
|
U_predTransVerb : Bool -> TV -> NP -> NP -> S =
|
||||||
|
\b,Ser,Jag,Dig -> { s =
|
||||||
|
let {
|
||||||
|
menya = Jag.s ! (mkPronForm Gen Yes NonPoss) ;
|
||||||
|
bolit = Ser.s ! VFin (gNum (pgen2gen Dig.g) Dig.n) Dig.p ;
|
||||||
|
golova = Dig.s ! (mkPronForm Nom No NonPoss) ;
|
||||||
|
ne = negation b
|
||||||
|
} in
|
||||||
|
"у" ++ menya ++ ne ++ bolit ++ golova ;
|
||||||
|
lock_S = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
|
tvHave : TV = mkDirectVerb (extVerb have Act Present) ** { lock_TV = <>};
|
||||||
|
};
|
||||||
72
grammars/health/ExtraSwe.gf
Normal file
72
grammars/health/ExtraSwe.gf
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
-- use this path to read the grammar from the same directory
|
||||||
|
--# -path=.:../abstract:../../prelude:../swedish
|
||||||
|
|
||||||
|
--1 Functions that are not in the API, but common in Russian
|
||||||
|
--
|
||||||
|
-- Aarne Ranta, Janna Khegai 2003
|
||||||
|
|
||||||
|
resource ExtraSwe = open PredicationSwe, ResourceSwe, Prelude, SyntaxSwe in {
|
||||||
|
|
||||||
|
oper
|
||||||
|
patientNPCategory : Type = {s : NPForm => Str ;
|
||||||
|
g : Gender ; n : Number; p : Person }** {lock_NP : {}} ;
|
||||||
|
|
||||||
|
mkPronPatient : ProPN -> patientNPCategory = \jag ->
|
||||||
|
{s = jag.s ; g = jag.h1 ; n = jag.h2 ; p = jag.h3;
|
||||||
|
lock_NP = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
|
nullDet : Det = { s = table {_ => table {_ => ""}} ;
|
||||||
|
n = Sg ; b = IndefP; lock_Det =<> } ;
|
||||||
|
|
||||||
|
injuredBody: patientNPCategory -> CN -> S =
|
||||||
|
\Jag, head ->
|
||||||
|
let {
|
||||||
|
jag = Jag.s ! PNom ;
|
||||||
|
harSkadat = ["har skadat"] ;
|
||||||
|
mig = case Jag.p of
|
||||||
|
{
|
||||||
|
P1 => case Jag.n of
|
||||||
|
{ Sg => "mig" ;
|
||||||
|
Pl => "oss"
|
||||||
|
} ;
|
||||||
|
P2 => case Jag.n of
|
||||||
|
{ Sg => "dig" ;
|
||||||
|
Pl => "er"
|
||||||
|
} ;
|
||||||
|
P3 => "sig"
|
||||||
|
} ;
|
||||||
|
iBenet = "i" ++ (defNounPhrase Jag.n head).s ! PNom
|
||||||
|
} in
|
||||||
|
{s = table {
|
||||||
|
_ => jag ++ harSkadat ++ mig++ iBenet
|
||||||
|
};
|
||||||
|
lock_S = <>
|
||||||
|
|
||||||
|
} ;
|
||||||
|
|
||||||
|
sFeber : Str -> Subst = \feb ->
|
||||||
|
{s = table {
|
||||||
|
SF Sg Indef Nom => feb + "er" ;
|
||||||
|
SF Sg Indef Gen => feb + "ers" ;
|
||||||
|
SF Sg Def Nom => feb + "ern" ;
|
||||||
|
SF Sg Def Gen => feb + "erns" ;
|
||||||
|
SF Pl Indef Nom => feb + "rar" ;
|
||||||
|
SF Pl Indef Gen => feb + "rars" ;
|
||||||
|
SF Pl Def Nom => feb + "rar" ;
|
||||||
|
SF Pl Def Gen => feb + "rars"
|
||||||
|
} ;
|
||||||
|
h1 = Utr
|
||||||
|
} ;
|
||||||
|
|
||||||
|
verbTa = {s = table {VPres Infinit _ => "ta" ; VPres Indicat _ => "tar" ; VPres Imperat _ => "ta"}; s1 =""} ;
|
||||||
|
verbBehova = {s = table {VPres Infinit _ => "behöva" ; VPres Indicat _ => "behöver" ; VPres Imperat _ =>
|
||||||
|
"behöv"}; s1 =""} ;
|
||||||
|
|
||||||
|
-- almost from Predication:
|
||||||
|
-- predV2: TV -> patientNPCategory -> NP -> S = \F, x, y ->
|
||||||
|
-- predVerbPhrase x ((predVerbGroup True) (complTransVerb F y)) ** { lock_S = <>} ;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
36
grammars/health/Health.gf
Normal file
36
grammars/health/Health.gf
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
abstract Health = {
|
||||||
|
|
||||||
|
cat
|
||||||
|
Specialization ; Patient ; Body ; Symptom ; SymptomDegree ; Illness ;
|
||||||
|
Prop ; Condition ; Medicine ;
|
||||||
|
|
||||||
|
fun
|
||||||
|
And : Prop -> Prop -> Prop ;
|
||||||
|
Complain : Patient -> Symptom -> Prop ;
|
||||||
|
FeverMod : SymptomDegree -> Symptom ;
|
||||||
|
PainIn : Patient -> Body -> Prop ;
|
||||||
|
PainInMod : Patient -> Body -> SymptomDegree -> Prop ;
|
||||||
|
Injured : Patient -> Body -> Prop ;
|
||||||
|
Broken : Patient -> Body -> Prop ;
|
||||||
|
HaveIllness : Patient -> Illness -> Prop ;
|
||||||
|
BeInCondition : Patient -> Condition -> Prop ;
|
||||||
|
NeedDoctor : Patient -> Specialization -> Prop ;
|
||||||
|
NeedMedicine : Patient -> Medicine -> Prop ;
|
||||||
|
TakeMedicine : Patient -> Medicine -> Prop ;
|
||||||
|
CatchCold : Condition ;
|
||||||
|
Pregnant : Condition ;
|
||||||
|
Fever : Symptom ;
|
||||||
|
High : SymptomDegree ;
|
||||||
|
Terrible : SymptomDegree ;
|
||||||
|
Head : Body ;
|
||||||
|
Leg : Body ;
|
||||||
|
ShePatient : Patient ;
|
||||||
|
TheyPatient : Patient ;
|
||||||
|
IPatientHe : Patient ;
|
||||||
|
Influenza : Illness ;
|
||||||
|
Malaria : Illness ;
|
||||||
|
|
||||||
|
Dentist : Specialization ;
|
||||||
|
PainKiller : Medicine ;
|
||||||
|
|
||||||
|
} ;
|
||||||
69
grammars/health/HealthEng.gf
Normal file
69
grammars/health/HealthEng.gf
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
-- 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 {
|
||||||
|
|
||||||
|
flags
|
||||||
|
startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Patient = NP ;
|
||||||
|
-- CN is not enough, because of the different form of the "head" body part
|
||||||
|
-- expression in "I have a headache" and "I have injured my head":
|
||||||
|
Body = BodyCNCategory ;
|
||||||
|
Symptom = NP ;
|
||||||
|
SymptomDegree = AP ;
|
||||||
|
Prop = S ;
|
||||||
|
Illness = CN ;
|
||||||
|
Condition = VP ;
|
||||||
|
Specialization = CN ;
|
||||||
|
Medicine = CN ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
ShePatient = SheNP ;
|
||||||
|
TheyPatient = TheyNP ;
|
||||||
|
IPatientHe = INP ;
|
||||||
|
|
||||||
|
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 = <>} ;
|
||||||
|
|
||||||
|
High = AdjP1 ((regAdjective "high") ** {lock_Adj1 = <>});
|
||||||
|
Terrible = AdjP1 ((regAdjective "terrible")** {lock_Adj1 = <>});
|
||||||
|
|
||||||
|
Leg = { s = \\_,n,_ => case n of {Sg =>"leg" ; Pl=> "legs" };
|
||||||
|
painInType = True } ;
|
||||||
|
Head = { s = table{ True => table {Sg => table {_ => "head" };
|
||||||
|
Pl => table {_ => "heads" }};
|
||||||
|
False => table { _ => table {_=> "headache"}}} ;
|
||||||
|
painInType = False } ;
|
||||||
|
|
||||||
|
BeInCondition = PredVP ;
|
||||||
|
Pregnant = PosVG ( PredAP( AdjP1 (regAdjective ["pregnant"] ** {lock_Adj1 = <>}))) ;
|
||||||
|
CatchCold = PosVG (PredTV (tvHave** {lock_TV = <>}) (DetNP (aDet** {lock_Det = <>}) (cnNoHum (nounReg "cold")** {lock_CN = <>})));
|
||||||
|
|
||||||
|
Fever = DetNP (aDet** {lock_Det = <>}) (cnNoHum (nounReg "fever")** {lock_CN = <>}) ;
|
||||||
|
FeverMod degree = DetNP (aDet** {lock_Det = <>}) (ModAdj degree (cnNoHum (nounReg "fever")** {lock_CN = <>})) ;
|
||||||
|
|
||||||
|
HaveIllness patient illness = predV2 tvHave patient (DetNP (nullDet** {lock_Det = <>}) illness) ;
|
||||||
|
Complain = predV2 tvHave ;
|
||||||
|
|
||||||
|
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) ;
|
||||||
|
|
||||||
|
Injured = injuredBody (mkTransVerb verbP3Have "injured"**{lock_TV = <>}) ;
|
||||||
|
Broken = injuredBody (mkTransVerb verbP3Have "broken"**{lock_TV = <>}) ;
|
||||||
|
|
||||||
|
PainIn = painInPatientsBody (cnNoHum (nounReg "pain")**{lock_CN = <>}) ;
|
||||||
|
PainInMod = painInPatientsBodyMode (cnNoHum (nounReg "pain")**{lock_CN = <>});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
81
grammars/health/HealthFre.gf
Normal file
81
grammars/health/HealthFre.gf
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
-- UTF8 version currently differs from non-UTF8 !!!
|
||||||
|
|
||||||
|
-- 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 in {
|
||||||
|
|
||||||
|
-- 1. still using "à" instead of "aux" in PainIn operations
|
||||||
|
-- because of the UTF8 problem with non-utf8 resource grammars!
|
||||||
|
|
||||||
|
flags
|
||||||
|
coding=utf8 ;
|
||||||
|
startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Patient = NP ;
|
||||||
|
Body = CN ;
|
||||||
|
Symptom = NP ;
|
||||||
|
SymptomDegree = AP ;
|
||||||
|
Prop = S ;
|
||||||
|
Illness = CN ;
|
||||||
|
Condition = VP ;
|
||||||
|
Specialization = CN ;
|
||||||
|
Medicine = CN ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
And x y = ConjS AndConj (TwoS x y) ;
|
||||||
|
|
||||||
|
ShePatient = SheNP ;
|
||||||
|
TheyPatient = TheyNP ;
|
||||||
|
IPatientHe = INP ;
|
||||||
|
|
||||||
|
Influenza = mkCNomReg "grippe" Fem ** {lock_CN = <> };
|
||||||
|
Malaria = mkCNomReg "malaria" Fem ** {lock_CN = <> };
|
||||||
|
HaveIllness patient illness = predV2 tvAvoir patient (DefOneNP illness) ;
|
||||||
|
Complain = predV2 tvAvoir ;
|
||||||
|
|
||||||
|
BeInCondition = PredVP ;
|
||||||
|
CatchCold = PosVG (PredTV tvAvoir (IndefOneNP (mkCNomReg "rhume" Masc ** {lock_CN = <> })));
|
||||||
|
Pregnant = PosVG (PredAP (mkAdjective (adjJeune "enceinte") adjPost** {lock_AP = <> })) ;
|
||||||
|
|
||||||
|
High = AdjP1 (mkAdjReg "élevé" adjPost ** {lock_Adj1 = <> }) ;
|
||||||
|
Terrible = AdjP1 ((mkAdjective (mkAdj "terrible" "terrible" "terrible" "terrible") adjPre ** {lock_Adj1 = <> })** {lock_AP = <> });
|
||||||
|
|
||||||
|
Head = mkCNomReg "tête" Fem ** {lock_CN = <> };
|
||||||
|
Leg = mkCNomReg "jambe" Fem ** {lock_CN = <> };
|
||||||
|
Dentist = mkCNomReg "dentiste" Masc ** {lock_CN = <> } ;
|
||||||
|
PainKiller = mkCNomReg "calmant" Masc ** {lock_CN = <> };
|
||||||
|
|
||||||
|
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) ;
|
||||||
|
|
||||||
|
FeverMod degree = DetNP (delDet ** {lock_Det = <> }) (ModAdj degree (mkCNomReg "fièvre" Fem** {lock_CN = <> })) ;
|
||||||
|
Fever = DetNP (delDet ** {lock_Det = <> }) (mkCNomReg "fièvre" Fem ** {lock_CN = <> }) ;
|
||||||
|
|
||||||
|
PainInMod patient head degree = predV2 tvAvoir patient
|
||||||
|
(DetNP (nullDet ** {lock_Det = <> })
|
||||||
|
( ModAdj degree
|
||||||
|
(
|
||||||
|
AppFun ((mkCNomReg "mal" Masc ** {lock_CN = <> })** complementCas Dat** {lock_Fun = <> })
|
||||||
|
(defNounPhrase patient.n head ** {lock_NP = <> })
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
PainIn patient head = predV2 tvAvoir patient
|
||||||
|
(DetNP (nullDet ** {lock_Det = <> })
|
||||||
|
(
|
||||||
|
AppFun
|
||||||
|
((mkCNomReg "mal" Masc ** {lock_CN = <> })** complementCas Dat ** {lock_Fun = <> })
|
||||||
|
(defNounPhrase patient.n head ** {lock_NP = <> })
|
||||||
|
)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
Injured = injuredBody (adjReg "blessé") ;
|
||||||
|
Broken = injuredBody (adjReg "cassé") ;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
63
grammars/health/HealthResourceIta.gf
Normal file
63
grammars/health/HealthResourceIta.gf
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
-- use this path to read the grammar from the same directory
|
||||||
|
--# -path=.:../abstract:../../prelude:../italian:../romance
|
||||||
|
concrete HealthResourceIta of HealthResource = open ResourceIta, Prelude, SyntaxIta, ExtraIta, MorphoIta in {
|
||||||
|
|
||||||
|
flags
|
||||||
|
startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
ShePatient = SheNP ;
|
||||||
|
TheyPatient = TheyNP ;
|
||||||
|
IPatientHe = INP ;
|
||||||
|
|
||||||
|
Influenza = mkCN (nRana "influenza") ;
|
||||||
|
Malaria = mkCN (nRana "malaria") ;
|
||||||
|
HaveIllness patient illness = predV2 (tvDir vAvere) patient (DefOneNP
|
||||||
|
illness) ;
|
||||||
|
|
||||||
|
BeInCondition = PredVP ;
|
||||||
|
|
||||||
|
CatchCold =
|
||||||
|
PosTV (tvDir vAvere) (IndefOneNP (mkCN (nSale "raffreddore"
|
||||||
|
masculine))) ;
|
||||||
|
|
||||||
|
Pregnant = PosA (apSolo "gravido" postpos) ;
|
||||||
|
|
||||||
|
Complain = predV2 (tvDir vAvere) ;
|
||||||
|
|
||||||
|
PainInMod pat loc deg =
|
||||||
|
PredVP pat
|
||||||
|
(AdvVP (PosTV (tvDir vAvere)
|
||||||
|
(IndefOneNP (ModAdj deg (mkCN (nSale "dolore"
|
||||||
|
masculine)))))
|
||||||
|
(datAdv (DefOneNP loc))) ;
|
||||||
|
|
||||||
|
FeverMod deg = partitNP (ModAdj deg (mkCN (nSale "febbre" feminine)));
|
||||||
|
|
||||||
|
PainIn pat loc =
|
||||||
|
PredVP pat (AdvVP (PosV (averCosa "male")) (datAdv (DefOneNP loc))) ;
|
||||||
|
|
||||||
|
Fever = partitNP (mkCNomReg (nSale "febbre" feminine)) ;
|
||||||
|
|
||||||
|
High = apSolo "alto" postpos ;
|
||||||
|
Terrible = apTale "terribile" postpos ;
|
||||||
|
Head = mkCN (nRana "testa") ;
|
||||||
|
Leg = mkCN (nRana "gamba") ;
|
||||||
|
|
||||||
|
Dentist = mkCN (mkN "dentista" "dentisti" masculine) ;
|
||||||
|
PainKiller = mkCN (nSale "calmante" masculine) ;
|
||||||
|
NeedDoctor pat doc = PredVP pat (averBisogno doc) ;
|
||||||
|
NeedMedicine pat med = PredVP pat (averBisogno med) ;
|
||||||
|
TakeMedicine pat med = predV2 (tvDir (vCorrere "prendere")) pat
|
||||||
|
(IndefOneNP med) ;
|
||||||
|
|
||||||
|
Injured = injuredBody (mkAdjective (adjSolo "ferito") True) ;
|
||||||
|
Broken = injuredBody (mkAdjective (adjSolo "rotto") True) ;
|
||||||
|
|
||||||
|
And = conjS ;
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
66
grammars/health/HealthRus.gf
Normal file
66
grammars/health/HealthRus.gf
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
-- use this path to read the grammar from the same directory
|
||||||
|
|
||||||
|
concrete HealthRus of Health = open PredicationRus, ResourceRus, Prelude, SyntaxRus, ExtraRus in {
|
||||||
|
--# -path=.:../newresource/abstract:../prelude:../newresource/russian
|
||||||
|
|
||||||
|
flags
|
||||||
|
coding=utf8 ;
|
||||||
|
startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Patient = NP ;
|
||||||
|
Body = CN ;
|
||||||
|
Symptom = NP ;
|
||||||
|
SymptomDegree = AP ;
|
||||||
|
Prop = S ;
|
||||||
|
Illness = CN ;
|
||||||
|
Condition = VP ;
|
||||||
|
Specialization = CN ;
|
||||||
|
Medicine = CN ;
|
||||||
|
lin
|
||||||
|
And x y = ConjS AndConj (TwoS x y) ;
|
||||||
|
|
||||||
|
ShePatient = SheNP ;
|
||||||
|
TheyPatient = TheyNP ;
|
||||||
|
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 = <>} ;
|
||||||
|
|
||||||
|
Dentist = n2n stomatolog ** {lock_CN = <>};
|
||||||
|
PainKiller = n2n obezbolivauchee ** {lock_CN = <>};
|
||||||
|
High = AdjP1 (extAdjective vusokij ** {lock_Adj1 = <>});
|
||||||
|
Terrible = AdjP1 (extAdjective uzhasnuj ** {lock_Adj1 = <>});
|
||||||
|
|
||||||
|
Head = n2n golova ** {lock_CN = <>};
|
||||||
|
Leg = n2n noga ** {lock_CN = <>};
|
||||||
|
Fever = mkNounPhrase Sg (n2n temperatura)** {lock_NP = <>};
|
||||||
|
FeverMod degree = mkNounPhrase Sg (ModAdj degree (n2n temperatura** {lock_CN = <>})) ** {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 = <>}) ;
|
||||||
|
Injured patient painkiller = predV2 (mkDirectVerb
|
||||||
|
(extVerb verbPoranit Act Past)**{lock_TV = <>}) patient (mkNounPhrase patient.n painkiller ** {lock_NP = <>}) ;
|
||||||
|
Broken patient painkiller = predV2 (mkDirectVerb
|
||||||
|
(extVerb verbSlomat Act Past)**{lock_TV = <>}) patient (mkNounPhrase patient.n painkiller ** {lock_NP = <>}) ;
|
||||||
|
|
||||||
|
HaveIllness patient symptom = U_predTransVerb True tvHave
|
||||||
|
patient (mkNounPhrase Sg symptom) ;
|
||||||
|
Complain = U_predTransVerb True tvHave ;
|
||||||
|
|
||||||
|
NeedDoctor = predNeedShortAdjective True ;
|
||||||
|
NeedMedicine = predNeedShortAdjective True ;
|
||||||
|
|
||||||
|
PainIn patient head = U_predTransVerb True (mkDirectVerb
|
||||||
|
(extVerb verbBolet_2 Act Present )) patient (mkNounPhrase patient.n head) ;
|
||||||
|
|
||||||
|
PainInMod patient head degree = U_predTransVerb True (mkDirectVerb
|
||||||
|
(extVerb have Act Present)) patient (mkNounPhrase Sg (ModAdj degree
|
||||||
|
(AppFun (mkFun bol "в" Prepos ** {lock_Fun = <>}) (mkNounPhrase patient.n head** {lock_NP = <>}))));
|
||||||
|
|
||||||
|
};
|
||||||
85
grammars/health/HealthSwe.gf
Normal file
85
grammars/health/HealthSwe.gf
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
-- The UTF8 version currently differs from the non-UTF8 !!!
|
||||||
|
|
||||||
|
-- The difference with the UTF8 version is that
|
||||||
|
-- operation "verbVara" doesn't need to be replaced
|
||||||
|
-- using the UTF8 encoding (because of the UTF8 problem
|
||||||
|
-- with UTF8 resource grammars)
|
||||||
|
|
||||||
|
-- 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 in {
|
||||||
|
|
||||||
|
flags
|
||||||
|
startcat=Phr ; lexer=text ; parser=chart ; unlexer=text ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Patient = patientNPCategory ;
|
||||||
|
Body = CN ;
|
||||||
|
Symptom = NP ;
|
||||||
|
SymptomDegree = AP ;
|
||||||
|
Prop = S ;
|
||||||
|
Illness = CN ;
|
||||||
|
Condition = VP ;
|
||||||
|
Specialization = CN ;
|
||||||
|
Medicine = CN ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
And x y = ConjS AndConj (TwoS x y) ;
|
||||||
|
|
||||||
|
ShePatient = mkPronPatient hon_35 ;
|
||||||
|
TheyPatient = mkPronPatient de_38 ;
|
||||||
|
IPatientHe = mkPronPatient jag_32 ;
|
||||||
|
|
||||||
|
Influenza = n2n (extCommNoun NoMasc (sApa "influens")) ** {lock_CN = <>} ;
|
||||||
|
Malaria = n2n (extCommNoun NoMasc (sApa "malari")) ** {lock_CN = <>} ;
|
||||||
|
Head = n2n (extCommNoun NoMasc (sHus "huvud")) ** {lock_CN = <>} ;
|
||||||
|
Leg = n2n (extCommNoun NoMasc (sHus "ben")) ** {lock_CN = <>} ;
|
||||||
|
Dentist = n2n (extCommNoun Masc (sKikare "tandläkar")) ** {lock_CN = <>} ;
|
||||||
|
PainKiller = n2n (extCommNoun NoMasc (sBil "smärtstillande")) ** {lock_CN = <>} ;
|
||||||
|
|
||||||
|
CatchCold = PosVG ( PredAP( AdjP1 (extAdjective (aGrund("förkyl")) ** {lock_Adj1 = <>}) ));
|
||||||
|
Pregnant = PosVG ( PredAP( AdjP1 (extAdjective (aGrund("gravi") )** {lock_Adj1 = <>}) ));
|
||||||
|
High = AdjP1 (extAdjective (aFin "hög")** {lock_Adj1 = <>}) ;
|
||||||
|
Terrible = AdjP1 (extAdjective (aFin "hemsk")** {lock_Adj1 = <>}) ;
|
||||||
|
|
||||||
|
BeInCondition = PredVP ;
|
||||||
|
HaveIllness patient illness = predV2 (mkDirectVerb verbHava** {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) ;
|
||||||
|
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 = <>}) ;
|
||||||
|
FeverMod degree = DetNP (nullDet ** {lock_Det = <>}) (ModAdj degree (n2n (extCommNoun NoMasc (sFeber "feb")) ** {lock_CN = <>})) ;
|
||||||
|
|
||||||
|
Complain = predV2 (mkDirectVerb verbHava ** {lock_TV =<>}) ;
|
||||||
|
Broken patient head = predV2 (mkTransVerb verbHava "brutit" ** {lock_TV =<>} ) patient
|
||||||
|
(defNounPhrase patient.n head ** {lock_NP =<>}) ;
|
||||||
|
|
||||||
|
PainIn patient head = predV2 (mkDirectVerb verbHava** {lock_TV =<>}) patient
|
||||||
|
(
|
||||||
|
DetNP (nullDet ** {lock_Det = <>})
|
||||||
|
( AppFun
|
||||||
|
((mkFun (extCommNoun NoMasc (sBil "ont")) "i") ** {lock_Fun = <>})
|
||||||
|
((defNounPhrase patient.n head)** {lock_NP = <>})
|
||||||
|
)
|
||||||
|
) ;
|
||||||
|
PainInMod patient head degree = predV2 (mkDirectVerb verbHava** {lock_TV =<>}) patient
|
||||||
|
(
|
||||||
|
DetNP (nullDet ** {lock_Det = <>})
|
||||||
|
( modCommNounPhrase degree
|
||||||
|
( AppFun
|
||||||
|
((mkFun (extCommNoun NoMasc (sBil "ont")) "i") ** {lock_Fun = <>})
|
||||||
|
((defNounPhrase patient.n head)** {lock_NP = <>})
|
||||||
|
) ** {lock_CN = <>}
|
||||||
|
)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
Injured = injuredBody ;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user