diff --git a/lib/src/experimental/Predication.gf b/lib/src/experimental/Predication.gf index 87a66e94b..ccd536e89 100644 --- a/lib/src/experimental/Predication.gf +++ b/lib/src/experimental/Predication.gf @@ -44,9 +44,11 @@ fun ComplVV : (a : Arg) -> VP aV -> VP a -> VP a ; ComplVQ : (a : Arg) -> VP aQ -> QCl a -> VP a ; ComplVA : (a : Arg) -> VP aA -> AP a -> VP a ; + ComplVN : (a : Arg) -> VP aN -> CN a -> VP a ; SlashV2S : (a : Arg) -> VP (aNP aS) -> Cl a -> VP (aNP a) ; -- a:Arg gives slash propagation, SlashVS SlashV2V : (a : Arg) -> VP (aNP aV) -> VP a -> VP (aNP a) ; SlashV2A : (a : Arg) -> VP (aNP aA) -> AP a -> VP (aNP a) ; + SlashV2N : (a : Arg) -> VP (aNP aN) -> CN a -> VP (aNP a) ; SlashV2Q : (a : Arg) -> VP (aNP aA) -> QCl a -> VP (aNP a) ; UseAP : Temp -> Pol -> (a : Arg) -> AP a -> VP a ; @@ -83,27 +85,35 @@ fun ContClC : (a : Arg) -> Cl a -> ClC a -> ClC a ; UseClC : (a : Arg) -> ClC a -> Cl a ; +--------------- from now on, to be inherited from standard RGL; here just for test purposes + + PrepNP : Prep -> NP -> Adv ; + -- lexicon - sleep_V : V aNone ; - walk_V : V aNone ; - love_V2 : V (aNP aNone) ; - look_V2 : V (aNP aNone) ; - believe_VS : V aS ; - tell_V2S : V (aNP aS) ; - prefer_V3 : V (aNP (aNP aNone)) ; - want_VV : V aV ; - force_V2V : V (aNP aV) ; - promise_V2V : V (aNP aV) ; - wonder_VQ : V aQ ; - become_VA : V aA ; - make_V2A : V (aNP aA) ; - ask_V2Q : V (aNP aQ) ; + sleep_V : V aNone ; + walk_V : V aNone ; + love_V2 : V (aNP aNone) ; + look_V2 : V (aNP aNone) ; + believe_VS : V aS ; + tell_V2S : V (aNP aS) ; + prefer_V3 : V (aNP (aNP aNone)) ; + want_VV : V aV ; + force_V2V : V (aNP aV) ; + promise_V2V : V (aNP aV) ; + wonder_VQ : V aQ ; + become_VA : V aA ; + become_VN : V aN ; + make_V2A : V (aNP aA) ; + ask_V2Q : V (aNP aQ) ; + promote_V2N : V (aNP aN) ; - old_A : AP aNone ; - married_A2 : AP (aNP aNone) ; -- married to her - eager_AV : AP aV ; -- eager to sleep - easy_A2V : AP (aNP aV) ; -- easy for him to sleep + old_A : AP aNone ; + married_A2 : AP (aNP aNone) ; -- married to her + eager_AV : AP aV ; -- eager to sleep + easy_A2V : AP (aNP aV) ; -- easy for him to sleep + professor_N : CN aNone ; + manager_N2 : CN (aNP aNone) ; -- manager of X she_NP : NP ; we_NP : NP ; @@ -112,12 +122,8 @@ fun always_AdV : AdV ; who_IP : IP ; - PrepNP : Prep -> NP -> Adv ; - with_Prep : Prep ; - and_Conj : Conj ; - why_IAdv : IAdv ; } \ No newline at end of file diff --git a/lib/src/experimental/PredicationSwe.gf b/lib/src/experimental/PredicationSwe.gf index 5097d442d..a991810c2 100644 --- a/lib/src/experimental/PredicationSwe.gf +++ b/lib/src/experimental/PredicationSwe.gf @@ -78,13 +78,14 @@ lincat S = {s : Str} ; Utt = {s : Str} ; AP = {s : Agr => Str ; c1 : Str ; c2 : Str ; obj1 : Agr => Str} ; + CN = {s : Agr => Str ; c1 : Str ; c2 : Str ; obj1 : Agr => Str} ; IP = {s : Str ; a : Agr} ; Prep = {s : Str} ; Conj = {s : Str} ; IAdv = {s : Str} ; lin - aNone, aS, aV, aA, aQ = {s = []} ; + aNone, aS, aV, aA, aQ, aN = {s = []} ; aNP a = a ; TTAnt t a = {s = t.s ++ a.s ; t = t.t ; a = a.a} ; @@ -202,6 +203,19 @@ lin ext = vp.ext ; } ; + ComplVN x vp ap = { + v = vp.v ; + inf = vp.inf ; + c1 = vp.c1 ; + c2 = vp.c2 ; + adj = vp.adj ; + obj1 = vp.obj1 ; + obj2 = <\\a => ap.s ! a,vp.obj2.p2> ; + adV = vp.adV ; + adv = vp.adv ; + ext = vp.ext ; + } ; + SlashV2S x vp cl = { v = vp.v ; inf = vp.inf ; @@ -254,6 +268,19 @@ lin ext = vp.ext ; } ; + SlashV2N x vp ap = { + v = vp.v ; + inf = vp.inf ; + c1 = vp.c1 ; + c2 = vp.c2 ; + adj = vp.adj ; + obj1 = vp.obj1 ; + obj2 = <\\a => vp.c2 ++ ap.s ! a, vp.obj2.p2> ; + adV = vp.adV ; + adv = vp.adv ; + ext = vp.ext ; + } ; + AdvVP adv _ vp = { v = vp.v ; inf = vp.inf ; @@ -446,14 +473,19 @@ lin promise_V2V = mkV "lova" "lovar" "lovade" "lovat" [] "att" ; wonder_VQ = mkV "undra" "undrar" "undrade" "undrat" ; become_VA = mkV "bli" "blir" "blev" "blivit" ; + become_VN = mkV "bli" "blir" "blev" "blivit" ; make_V2A = {v = table {Inf => "göra" ; VPres => "gör" ; VPret => "gjorde" ; VSup => "gjort"} ; c1 = [] ; c2 = [] ; isSubjectControl = False} ; + promote_V2N = {v = table {Inf => "befordra" ; VPres => "befordrar" ; VPret => "befordrade" ; VSup => "befordrat"} ; + c1 = [] ; c2 = "till" ; isSubjectControl = False} ; ---- ? de befordrade dem till chefer för sig/dem ask_V2Q = mkV "fråga" "frågar" "frågade" "frågat" ; old_A = {s = table {Sg => "gammal" ; Pl => "gamla"} ; c1 = [] ; c2 = [] ; obj1 = \\_ => []} ; married_A2 = {s = table {Sg => "gift" ; Pl => "gifta"} ; c1 = "med" ; c2 = [] ; obj1 = \\_ => []} ; eager_AV = {s = table {Sg => "ivrig" ; Pl => "ivriga"} ; c1 = [] ; c2 = "att" ; obj1 = \\_ => []} ; easy_A2V = {s = table {Sg => "lätt" ; Pl => "lätta"} ; c1 = "för" ; c2 = "att" ; obj1 = \\_ => []} ; + professor_N = {s = table {Sg => "professor" ; Pl => "professorer"} ; c1 = [] ; c2 = [] ; obj1 = \\_ => []} ; + manager_N2 = {s = table {Sg => "chef" ; Pl => "chefer"} ; c1 = "för" ; c2 = [] ; obj1 = \\_ => []} ; she_NP = {s = table {Nom => "hon" ; Acc => "henne"} ; a = Sg} ; we_NP = {s = table {Nom => "vi" ; Acc => "oss"} ; a = Pl} ; diff --git a/lib/src/experimental/exx.gfs b/lib/src/experimental/exx.gfs new file mode 100644 index 000000000..010674426 --- /dev/null +++ b/lib/src/experimental/exx.gfs @@ -0,0 +1,67 @@ +hon sover +hon sover inte +sover hon +sover hon inte +hon sover idag +hon har sovit +hon hade sovit +hon hade inte sovit + +hon älskar oss +hon älskar sig +älskar hon oss +hon tittar på oss +hon tittar inte på sig + +hon föredrar oss framför henne + +hon vill sova +hon vill inte sova +vill hon sova + +hon tvingar oss att sova +hon tvingar oss att älska henne + +vi lovar henne att bli gamla +vi tvingar henne att bli gammal + +hon är gammal +är hon gammal + +hon gör oss gamla + +vem sover +vem älskar henne +vem älskar hon inte +varför vill hon sova +sover hon +vill hon inte sova + +vi undrar varför hon vill sova +vi undrar vem hon älskar +vi undrar vem som älskar henne +vi undrar vem som sover +vi undrar varför hon inte vill sova +vi undrar vem hon inte älskar +vi undrar om hon sover +vi undrar om hon inte alltid sover + +vi tror att hon inte vill sova +vi tror hon inte vill sova + +vi tror att hon har sovit +vi tror att hon hade sovit +vi tror att hon sovit +vi undrar om hon sovit +vi tror att hon skulle sovit + +hon vill ha sovit +hon vill sovit + +hon blev professor +vi blev professorer +vi befordrade henne till professor +hon befordrade oss till professorer +vi vill bli professorer + +