mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-25 02:38:55 -06:00
set of predication test examples; support for N-complement verbs such as "we were promoted to professors"
This commit is contained in:
@@ -44,9 +44,11 @@ fun
|
|||||||
ComplVV : (a : Arg) -> VP aV -> VP a -> VP a ;
|
ComplVV : (a : Arg) -> VP aV -> VP a -> VP a ;
|
||||||
ComplVQ : (a : Arg) -> VP aQ -> QCl a -> VP a ;
|
ComplVQ : (a : Arg) -> VP aQ -> QCl a -> VP a ;
|
||||||
ComplVA : (a : Arg) -> VP aA -> AP 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
|
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) ;
|
SlashV2V : (a : Arg) -> VP (aNP aV) -> VP a -> VP (aNP a) ;
|
||||||
SlashV2A : (a : Arg) -> VP (aNP aA) -> AP 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) ;
|
SlashV2Q : (a : Arg) -> VP (aNP aA) -> QCl a -> VP (aNP a) ;
|
||||||
|
|
||||||
UseAP : Temp -> Pol -> (a : Arg) -> AP a -> VP a ;
|
UseAP : Temp -> Pol -> (a : Arg) -> AP a -> VP a ;
|
||||||
@@ -83,27 +85,35 @@ fun
|
|||||||
ContClC : (a : Arg) -> Cl a -> ClC a -> ClC a ;
|
ContClC : (a : Arg) -> Cl a -> ClC a -> ClC a ;
|
||||||
UseClC : (a : Arg) -> ClC a -> Cl 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
|
-- lexicon
|
||||||
|
|
||||||
sleep_V : V aNone ;
|
sleep_V : V aNone ;
|
||||||
walk_V : V aNone ;
|
walk_V : V aNone ;
|
||||||
love_V2 : V (aNP aNone) ;
|
love_V2 : V (aNP aNone) ;
|
||||||
look_V2 : V (aNP aNone) ;
|
look_V2 : V (aNP aNone) ;
|
||||||
believe_VS : V aS ;
|
believe_VS : V aS ;
|
||||||
tell_V2S : V (aNP aS) ;
|
tell_V2S : V (aNP aS) ;
|
||||||
prefer_V3 : V (aNP (aNP aNone)) ;
|
prefer_V3 : V (aNP (aNP aNone)) ;
|
||||||
want_VV : V aV ;
|
want_VV : V aV ;
|
||||||
force_V2V : V (aNP aV) ;
|
force_V2V : V (aNP aV) ;
|
||||||
promise_V2V : V (aNP aV) ;
|
promise_V2V : V (aNP aV) ;
|
||||||
wonder_VQ : V aQ ;
|
wonder_VQ : V aQ ;
|
||||||
become_VA : V aA ;
|
become_VA : V aA ;
|
||||||
make_V2A : V (aNP aA) ;
|
become_VN : V aN ;
|
||||||
ask_V2Q : V (aNP aQ) ;
|
make_V2A : V (aNP aA) ;
|
||||||
|
ask_V2Q : V (aNP aQ) ;
|
||||||
|
promote_V2N : V (aNP aN) ;
|
||||||
|
|
||||||
old_A : AP aNone ;
|
old_A : AP aNone ;
|
||||||
married_A2 : AP (aNP aNone) ; -- married to her
|
married_A2 : AP (aNP aNone) ; -- married to her
|
||||||
eager_AV : AP aV ; -- eager to sleep
|
eager_AV : AP aV ; -- eager to sleep
|
||||||
easy_A2V : AP (aNP aV) ; -- easy for him 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 ;
|
she_NP : NP ;
|
||||||
we_NP : NP ;
|
we_NP : NP ;
|
||||||
@@ -112,12 +122,8 @@ fun
|
|||||||
always_AdV : AdV ;
|
always_AdV : AdV ;
|
||||||
who_IP : IP ;
|
who_IP : IP ;
|
||||||
|
|
||||||
PrepNP : Prep -> NP -> Adv ;
|
|
||||||
|
|
||||||
with_Prep : Prep ;
|
with_Prep : Prep ;
|
||||||
|
|
||||||
and_Conj : Conj ;
|
and_Conj : Conj ;
|
||||||
|
|
||||||
why_IAdv : IAdv ;
|
why_IAdv : IAdv ;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -78,13 +78,14 @@ lincat
|
|||||||
S = {s : Str} ;
|
S = {s : Str} ;
|
||||||
Utt = {s : Str} ;
|
Utt = {s : Str} ;
|
||||||
AP = {s : Agr => Str ; c1 : Str ; c2 : Str ; obj1 : Agr => 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} ;
|
IP = {s : Str ; a : Agr} ;
|
||||||
Prep = {s : Str} ;
|
Prep = {s : Str} ;
|
||||||
Conj = {s : Str} ;
|
Conj = {s : Str} ;
|
||||||
IAdv = {s : Str} ;
|
IAdv = {s : Str} ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
aNone, aS, aV, aA, aQ = {s = []} ;
|
aNone, aS, aV, aA, aQ, aN = {s = []} ;
|
||||||
aNP a = a ;
|
aNP a = a ;
|
||||||
|
|
||||||
TTAnt t a = {s = t.s ++ a.s ; t = t.t ; a = a.a} ;
|
TTAnt t a = {s = t.s ++ a.s ; t = t.t ; a = a.a} ;
|
||||||
@@ -202,6 +203,19 @@ lin
|
|||||||
ext = vp.ext ;
|
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 = {
|
SlashV2S x vp cl = {
|
||||||
v = vp.v ;
|
v = vp.v ;
|
||||||
inf = vp.inf ;
|
inf = vp.inf ;
|
||||||
@@ -254,6 +268,19 @@ lin
|
|||||||
ext = vp.ext ;
|
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 = {
|
AdvVP adv _ vp = {
|
||||||
v = vp.v ;
|
v = vp.v ;
|
||||||
inf = vp.inf ;
|
inf = vp.inf ;
|
||||||
@@ -446,14 +473,19 @@ lin
|
|||||||
promise_V2V = mkV "lova" "lovar" "lovade" "lovat" [] "att" ;
|
promise_V2V = mkV "lova" "lovar" "lovade" "lovat" [] "att" ;
|
||||||
wonder_VQ = mkV "undra" "undrar" "undrade" "undrat" ;
|
wonder_VQ = mkV "undra" "undrar" "undrade" "undrat" ;
|
||||||
become_VA = mkV "bli" "blir" "blev" "blivit" ;
|
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"} ;
|
make_V2A = {v = table {Inf => "göra" ; VPres => "gör" ; VPret => "gjorde" ; VSup => "gjort"} ;
|
||||||
c1 = [] ; c2 = [] ; isSubjectControl = False} ;
|
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" ;
|
ask_V2Q = mkV "fråga" "frågar" "frågade" "frågat" ;
|
||||||
|
|
||||||
old_A = {s = table {Sg => "gammal" ; Pl => "gamla"} ; c1 = [] ; c2 = [] ; obj1 = \\_ => []} ;
|
old_A = {s = table {Sg => "gammal" ; Pl => "gamla"} ; c1 = [] ; c2 = [] ; obj1 = \\_ => []} ;
|
||||||
married_A2 = {s = table {Sg => "gift" ; Pl => "gifta"} ; c1 = "med" ; 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 = \\_ => []} ;
|
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 = \\_ => []} ;
|
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} ;
|
she_NP = {s = table {Nom => "hon" ; Acc => "henne"} ; a = Sg} ;
|
||||||
we_NP = {s = table {Nom => "vi" ; Acc => "oss"} ; a = Pl} ;
|
we_NP = {s = table {Nom => "vi" ; Acc => "oss"} ; a = Pl} ;
|
||||||
|
|||||||
67
lib/src/experimental/exx.gfs
Normal file
67
lib/src/experimental/exx.gfs
Normal file
@@ -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
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user