From f390b2a3388b8b400616992f574f7213905d65b4 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 16 Dec 2010 15:53:07 +0000 Subject: some fixes in QuerySwe; a first version of QueryFre --- examples/query/QueryFre.gf | 131 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 examples/query/QueryFre.gf (limited to 'examples/query/QueryFre.gf') diff --git a/examples/query/QueryFre.gf b/examples/query/QueryFre.gf new file mode 100644 index 000000000..a837dedbd --- /dev/null +++ b/examples/query/QueryFre.gf @@ -0,0 +1,131 @@ +--# -path=.:present + +concrete QueryFre of Query = QueryI - [namePrep, propCalled, SFun] 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 = on_Prep ; +-- verb "heta" + propCalled : NP -> Prop = \i -> + propVP (mkVP (mkAdV "aussi") (mkVP (mkV2 (reflV (mkV "appeler")) for_Prep) i)) ; + +lin + SFun s r = mkNP (mkNP the_Quant plNum r.cn) (mkAdv r.prep s) ; + + +-- 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 aktif")) 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" ; + +} -- cgit v1.2.3