1
0
forked from GitHub/gf-core
Files
gf-core/examples/query/QueryFre.gf
2010-12-16 16:27:13 +00:00

136 lines
3.7 KiB
Plaintext

--# -path=.:present
concrete QueryFre of Query = QueryI -
[namePrep, propCalled, SFun, SAll, IWhat]
with
(Syntax = SyntaxFre),
(Lang = LangFre),
(LexQuery = LexQueryFre) **
open
LexQueryFre,
ParadigmsFre,
IrregFre,
SyntaxFre,
ExtraFre,
(L = LangFre),
(M = MakeStructuralFre),
Prelude
in {
-- deviations from functor
oper
-- prep not "av"
namePrep = possess_Prep ;
-- verb "heta"
propCalled : NP -> Prop = \i ->
propVP (mkVP (mkAdV "aussi") (mkVP (mkV2 (reflV (mkV "appeler"))) i)) ;
lin
SAll k = mkNP all_Predet (mkNP thePl_Det k) | mkNP thePl_Det k ;
SFun s r = mkNP (mkNP the_Quant plNum r.cn) (mkAdv r.prep s) ;
IWhat = mkIP (mkIDet which_IQuant) | mkIP (mkIDet which_IQuant pluralNum) ;
-- lexicon
lin
Located = relAP (mkAP located_A) in_Prep ;
In = relVP useCopula in_Prep ;
Employed =
relAP (mkAP (mkA "employé")) by8agent_Prep
| relAP (mkAP (mkA "payé")) by8agent_Prep
| relAP (mkAP (mkA "actif")) at_Prep
| relAP (mkAP (mkA "professionnellement actif")) at_Prep
| relVP (mkVP (mkV "travailler")) at_Prep
;
HaveTitle =
relAP (mkAP (mkA "employé")) som_Prep
| relVP useCopula noPrep
| relVP (mkVP (mkV "travailler")) som_Prep
| relVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "titre" masculine) noPrep))))
possess_Prep
;
EmployedAt s =
relAP (mkAP (mkA2 (mkA "employé") at_Prep) s) som_Prep
| relAP (mkAP (mkA2 (mkA "employé") by8agent_Prep) s) som_Prep
| relVP (mkVP (mkV2 (mkV "travailler") at_Prep) s) som_Prep
;
HaveTitleAt t =
relAP (mkAP (mkA2 (mkA "employé") som_Prep) (mkNP t)) at_Prep
| relAP (mkAP (mkA2 (mkA "employé") som_Prep) (mkNP t)) by8agent_Prep
| relVP (mkVP (mkNP a_Det t)) at_Prep
| relVP (mkVP (mkV2 (mkV "travailler") som_Prep) (mkNP t)) at_Prep
| relVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "titre") noPrep)
(mkNP t)))) at_Prep
;
Named n = propAP (mkAP (mkA2 called_A (mkPrep [])) n) ;
Start n = propVP (mkVP (mkV2 (mkV "commencer") with_Prep) n) ;
Organization = mkCN (mkN "organisation" feminine) ;
Company = mkCN (mkN "entreprise") ;
Place = mkCN (mkN "lieu") | mkCN (mkN "endroit") ;
Person =
mkCN (mkN "personne")
| mkCN (mkN "personne" "gens" feminine) ;
Location = mkFunctionP (mkN "localité") possess_Prep ;
Region = mkFunctionP (mkN "région" feminine) possess_Prep ;
Subregion = mkFunctionP (mkN "sous-région" feminine) possess_Prep ;
FName = mkFunctionP (mkN "nom") possess_Prep ;
FNickname = mkFunctionP (mkN "surnom") possess_Prep ;
FJobTitle =
mkFunctionP (mkN "titre" masculine) possess_Prep
| mkFunctionP (mkN "position" feminine) possess_Prep ;
SJobTitle t = mkNP a_Det t ;
oper
mkCountry : Str -> Str -> {np : NP ; a : A} =
\n,a -> {np = mkNP (mkPN n) ; a = mkA a} ;
mkName : Str -> NP =
\s -> mkNP (mkPN s) ;
mkFunction : Str -> Fun =
\s -> {cn = mkCN (mkN s) ; prep = possess_Prep} ;
mkFunctionP : N -> Prep -> Fun =
\n,p -> {cn = mkCN n ; prep = p} ;
som_Prep = mkPrep "comme" ;
noPrep = mkPrep [] ;
useCopula = mkVP être_V ;
lin
-- JobTitles
JobTitle1 = mkCN (mkN "'JobTitle1") ;
JobTitle2 = mkCN (mkN "'JobTitle2") ;
JobTitle3 = mkCN (mkN "'JobTitle3") ;
JobTitle4 = mkCN (mkN "'JobTitle4") ;
-- Locations
Location1 = mkName "'Location1" ;
Location2 = mkName "'Location2" ;
Location3 = mkName "'Location3" ;
Location4 = mkName "'Location4" ;
-- Organizations
Organization1 = mkName "'Organization1" ;
Organization2 = mkName "'Organization2" ;
Organization3 = mkName "'Organization3" ;
Organization4 = mkName "'Organization4" ;
-- Persons
Person1 = mkName "'Person1" ;
Person2 = mkName "'Person2" ;
Person3 = mkName "'Person3" ;
Person4 = mkName "'Person4" ;
}