From eda239b053fbf4a5884174b55b88addf4c71ea60 Mon Sep 17 00:00:00 2001 From: aarne Date: Mon, 19 Sep 2011 14:37:30 +0000 Subject: [PATCH] QueryFin improved --- examples/query/small/Query.gf | 5 -- examples/query/small/QueryEng.gf | 4 -- examples/query/small/QueryFin.gf | 118 ++++++++++++------------------- examples/query/small/QuerySwe.gf | 18 +---- 4 files changed, 48 insertions(+), 97 deletions(-) diff --git a/examples/query/small/Query.gf b/examples/query/small/Query.gf index 532dc6a8e..1efa3277f 100644 --- a/examples/query/small/Query.gf +++ b/examples/query/small/Query.gf @@ -43,7 +43,6 @@ fun SInds : [Individual] -> Set ; -- X and Y KRelSet : Relation -> Set -> Kind ; -- R of S | S's R - KRelsSet : Relation -> Relation -> Set -> Kind ; -- R and Q of S KRelKind : Kind -> Relation -> Set -> Kind ; -- K that is R of S KRelPair : Kind -> Relation -> Kind ; -- S's with their R's KProp : Property -> Kind -> Kind ; -- P K | K that is P @@ -62,12 +61,8 @@ fun -- the test lexicon cat - Country ; JobTitle ; fun - NCountry : Country -> Name ; - PCountry : Country -> Property ; - Located : Loc -> Property ; Employed : Org -> Property ; diff --git a/examples/query/small/QueryEng.gf b/examples/query/small/QueryEng.gf index bce50ffce..6117c9b3c 100644 --- a/examples/query/small/QueryEng.gf +++ b/examples/query/small/QueryEng.gf @@ -111,12 +111,8 @@ oper -- lexicon lincat - Country = {np : NP ; a : A} ; JobTitle = CN ; lin - NCountry c = c.np ; - PCountry c = mkAP c.a ; - Located i = mkAP (mkA2 (mkA "located") in_Prep) i | mkAP (mkA2 (mkA "situated") in_Prep) i ; diff --git a/examples/query/small/QueryFin.gf b/examples/query/small/QueryFin.gf index 8d8b6c426..f248f9a50 100644 --- a/examples/query/small/QueryFin.gf +++ b/examples/query/small/QueryFin.gf @@ -1,13 +1,16 @@ ---# -path=.:alltenses +--# -path=.:present concrete QueryFin of Query = open ParadigmsFin, SyntaxFin, ExtraFin, - (L = LangFin), + (G = GrammarFin), + SymbolicFin, Prelude in { +flags coding = utf8 ; + lincat Move = Utt ; ---- Text ; Query = Utt ; @@ -25,56 +28,37 @@ lincat [Individual] = [NP] ; lin - MQuery q = q ; ---- mkText (mkPhr q) questMarkPunct ; - MAnswer a = a ; ---- mkText (mkPhr a) fullStopPunct ; + MQuery q = q ; + MAnswer a = a ; - QSet s = - let - ss : NP = s - | mkNP (mkNP thePl_Det L.name_N) (mkAdv possess_Prep s) - ---- s's names - in - mkUtt (mkImp (mkVP give_V3 (mkNP i_Pron) ss)) - | mkUtt (mkQS (mkQCl (L.CompIP whatSg_IP) ss)) - | mkUtt (mkQS (mkQCl (L.CompIP (L.IdetIP (mkIDet which_IQuant))) ss)) - | mkUtt ss ; + QSet s = mkUtt (mkImp (mkV2 (mkV "luetella")) s) ; - QWhere s = mkUtt (mkQS (mkQCl where_IAdv s)) ; - QInfo s = - let - info : NP = mkNP (all_NP | (mkNP information_N)) (mkAdv about_Prep s) ; - in - mkUtt (mkImp (mkVP give_V3 (mkNP i_Pron) info)) - | mkUtt info ; + QWhere s = mkUtt (mkQS (ICompExistNP (mkIComp where_IAdv) s)) ; + QInfo s = mkUtt (mkImp (mkVP (mkV2 (mkV "antaa")) + (mkNP all_Predet (mkNP thePl_Det (mkCN (mkN "tieto") (mkAdv about_Prep s)))))) ; - QCalled i = mkUtt (mkQS (mkQCl how_IAdv (mkCl i (mkVP also_AdV (mkVP called_A))))) ; + QCalled i = mkUtt (mkQS (mkQCl what_IP (mkNP (GenNP i) (mkCN (mkA "toinen") (mkN "nimi" "nimiä"))))) ; AKind s k = mkUtt (mkCl s (mkNP aPl_Det k)) ; ---- a, fun of s AProp s p = mkUtt (mkCl s p) ; AAct s p = mkUtt (mkCl s p) ; - SAll k = mkNP all_Predet (mkNP aPl_Det k) | mkNP thePl_Det k ; + SAll k = mkNP all_Predet (mkNP thePl_Det k) ; ---- | mkNP thePl_Det k ; SOne k = mkNP n1_Numeral k ; - SIndef k = mkNP a_Det k ; + SIndef k = mkNP someSg_Det k ; SPlural k = mkNP aPl_Det k ; SOther k = mkNP aPl_Det (mkCN other_A k) ; SInd i = i ; SInds is = mkNP and_Conj is ; - KRelSet r s = - mkCN r.cn (mkAdv r.prep s) ; - ---- | S's R + KRelSet r s = GenCN s r.cn ; ----- KRelsSet r q s = ----- mkCN r.cn (mkAdv r.prep s) ; + KRelKind k r s = mkCN k (mkRS (mkRCl that_RP (mkVP (mkNP aPl_Det (GenCN s r.cn))))) ; - KRelKind k r s = - mkCN k (mkRS (mkRCl that_RP (mkVP (mkNP aPl_Det (mkCN r.cn (mkAdv r.prep s)))))) ; - - KRelPair k r = mkCN k (mkAdv with_Prep (mkNP (mkQuant they_Pron) plNum r.cn)) ; + KRelPair k r = G.ConjCN and_Conj (G.BaseCN k (GenCN these_NP r.cn)) ; KProp p k = - mkCN p k - | mkCN k (mkRS (mkRCl that_RP (mkVP p))) ; + mkCN p k ; +--- | mkCN k (mkRS (mkRCl that_RP (mkVP p))) ; KAct p k = mkCN k (mkRS (mkRCl that_RP p)) ; KRel r = r.cn ; @@ -92,7 +76,7 @@ lin oper -- structural words about_Prep = casePrep elative ; - all_NP = mkNP (mkPN (mkN "kaikki" "kaiken")) ; --- + all_NP = mkNP (mkPN (mkN "kaikki" "kaiken" "kaikkia")) ; --- also_AdV = ss "myös" ; as_Prep = casePrep essive ; at_Prep = casePrep adessive ; @@ -103,43 +87,36 @@ oper that_RP = which_RP ; -- lexical constructors - mkName : Str -> NP = - \s -> mkNP (mkPN s) ; - mkRelation : Str -> {cn : CN ; prep : Prep} = - \s -> {cn = mkCN (mkN s) ; prep = possess_Prep} ; + mkName : N -> Str -> NP = + \n,s -> mkNP the_Det (mkCN n (symb s)) ; + mkRelation : N -> {cn : CN ; prep : Prep} = + \s -> {cn = mkCN s ; prep = possess_Prep} ; -- lexicon lincat - Country = {np : NP ; a : A} ; JobTitle = CN ; lin NCountry c = c.np ; PCountry c = mkAP c.a ; - Located i = - mkAP (mkA2 (mkA "sijaitseva") in_Prep) i ; + Located i = mkAP (mkA2 (mkA "sijaitseva") in_Prep) i ; - Employed i = mkAP (mkA2 (mkA "töissä") at_Prep) i ; + Employed i = mkAP (mkA2 (mkA (mkN "työssä" (mkN "oleva"))) in_Prep) i ; - Work i = - mkVP (mkV2 (mkV "työskennellä") at_Prep) i ; + Work i = mkVP (mkV2 (mkV "työskennellä") in_Prep) i ; - HaveTitle t i = - mkVP (mkVP (mkNP t)) (mkAdv at_Prep i) ; --- | mkVP (mkVP (mkV2 (mkV "work") as_Prep) (mkNP t)) (mkAdv at_Prep i) ; --- | mkVP (mkVP have_V2 (mkNP the_Det (mkCN (mkN2 (mkN "title")) (mkNP t)))) (mkAdv at_Prep i) ; + HaveTitle t i = mkVP (mkVP (mkNP t)) (mkAdv in_Prep i) ; Organization = mkCN (mkN "organisaatio" "organisaatioita") ; Place = mkCN (mkN "paikka") ; - Person = - mkCN (mkN "henkilö" "henkilöitä") ; + Person = mkCN (mkN "henkilö" "henkilöitä") ; - Location = mkRelation "sijainti" ; - Region = mkRelation "alue" ; - Subregion = mkRelation "alue" ; - RName = mkRelation "nimi" ; - RNickname = mkRelation "lempinimi" ; + Location = mkRelation (mkN "sijainti") ; + Region = mkRelation (mkN "alue") ; + Subregion = mkRelation (mkN "alue") ; + RName = mkRelation (mkN "nimi" "nimiä") ; + RNickname = mkRelation (mkN "lempinimi" "lempinimiä") ; -- JobTitles JobTitle1 = mkCN (mkN "'JobTitle1") ; @@ -148,25 +125,22 @@ lin JobTitle4 = mkCN (mkN "'JobTitle4") ; -- Locations - Location1 = mkName "'Location1" ; - Location2 = mkName "'Location2" ; - Location3 = mkName "'Location3" ; - Location4 = mkName "'Location4" ; + Location1 = mkName (mkN "paikka") "'Location1" ; + Location2 = mkName (mkN "paikka") "'Location2" ; + Location3 = mkName (mkN "paikka") "'Location3" ; + Location4 = mkName (mkN "paikka") "'Location4" ; -- Organizations - Organization1 = mkName "'Organization1" ; - Organization2 = mkName "'Organization2" ; - Organization3 = mkName "'Organization3" ; - Organization4 = mkName "'Organization4" ; + Organization1 = mkName (mkN "organisaatio") "'Organization1" ; + Organization2 = mkName (mkN "organisaatio") "'Organization2" ; + Organization3 = mkName (mkN "organisaatio") "'Organization3" ; + Organization4 = mkName (mkN "organisaatio") "'Organization4" ; -- Persons - Person1 = mkName "'Person1" ; - Person2 = mkName "'Person2" ; - Person3 = mkName "'Person3" ; - Person4 = mkName "'Person4" ; + Person1 = mkName (mkN "henkilö") "'Person1" ; + Person2 = mkName (mkN "henkilö") "'Person2" ; + Person3 = mkName (mkN "henkilö") "'Person3" ; + Person4 = mkName (mkN "henkilö") "'Person4" ; -oper - mkCountry : Str -> Str -> {np : NP ; a : A} = - \n,a -> {np = mkNP (mkPN n) ; a = mkA a} ; } diff --git a/examples/query/small/QuerySwe.gf b/examples/query/small/QuerySwe.gf index 17f89352c..1dde65a3a 100644 --- a/examples/query/small/QuerySwe.gf +++ b/examples/query/small/QuerySwe.gf @@ -117,21 +117,11 @@ oper -- lexicon lincat - Country = {np : NP ; a : A} ; JobTitle = CN ; lin - NCountry c = c.np ; - PCountry c = mkAP c.a ; + Located i = mkAP (mkA2 (mkA "belägen" "beläget") in_Prep) i ; - Located i = - mkAP (mkA2 (mkA "belägen" "beläget") in_Prep) i ; --- | mkAP (mkA2 (mkA "situated") in_Prep) i ; - - Employed i = - mkAP (mkA2 (mkA "anställd") by8agent_Prep) i --- | mkAP (mkA2 (mkA "paid") by8agent_Prep) i --- | mkAP (mkA2 (mkA "aktiv") at_Prep) i - | mkAP (mkA2 (mkA "professionellt aktiv") at_Prep) i ; + Employed i = mkAP (mkA2 (mkA "anställd") by8agent_Prep) i ; Work i = mkVP (mkV2 (mkV "jobba") at_Prep) i @@ -178,8 +168,4 @@ lin Person3 = mkName "'Person3" ; Person4 = mkName "'Person4" ; -oper - mkCountry : Str -> Str -> {np : NP ; a : A} = - \n,a -> {np = mkNP (mkPN n neutrum) ; a = mkA a} ; - }