forked from GitHub/gf-core
added participles to Scandinavian VP
This commit is contained in:
@@ -43,6 +43,7 @@ incomplete concrete CatScand of Cat =
|
|||||||
fin : Str ; -- V1 har ---s1
|
fin : Str ; -- V1 har ---s1
|
||||||
inf : Str -- V2 sagt ---s4
|
inf : Str -- V2 sagt ---s4
|
||||||
} ;
|
} ;
|
||||||
|
sp : PartForm => Str ;
|
||||||
a1 : Polarity => Agr => Str ; -- A1 inte ---s3
|
a1 : Polarity => Agr => Str ; -- A1 inte ---s3
|
||||||
n2 : Agr => Str ; -- N2 dig ---s5
|
n2 : Agr => Str ; -- N2 dig ---s5
|
||||||
a2 : Str ; -- A2 idag ---s6
|
a2 : Str ; -- A2 idag ---s6
|
||||||
|
|||||||
@@ -63,7 +63,13 @@ param
|
|||||||
VPForm =
|
VPForm =
|
||||||
VPFinite STense Anteriority
|
VPFinite STense Anteriority
|
||||||
| VPImperat
|
| VPImperat
|
||||||
| VPInfinit Anteriority ;
|
| VPInfinit Anteriority
|
||||||
|
;
|
||||||
|
|
||||||
|
PartForm =
|
||||||
|
PartPret AFormPos Case
|
||||||
|
| PartPres Number Species Case
|
||||||
|
;
|
||||||
|
|
||||||
VType = VAct | VPass | VRefl ;
|
VType = VAct | VPass | VRefl ;
|
||||||
|
|
||||||
@@ -274,6 +280,7 @@ oper
|
|||||||
fin : Str ; -- V1 har ---s1
|
fin : Str ; -- V1 har ---s1
|
||||||
inf : Str -- V2 sagt ---s4
|
inf : Str -- V2 sagt ---s4
|
||||||
} ;
|
} ;
|
||||||
|
sp : PartForm => Str ; -- present or past participle
|
||||||
a1 : Polarity => Agr => Str ; -- A1 inte ---s3 själv/själva/självt
|
a1 : Polarity => Agr => Str ; -- A1 inte ---s3 själv/själva/självt
|
||||||
n2 : Agr => Str ; -- N2 dig ---s5
|
n2 : Agr => Str ; -- N2 dig ---s5
|
||||||
a2 : Str ; -- A2 idag ---s6
|
a2 : Str ; -- A2 idag ---s6
|
||||||
@@ -283,65 +290,35 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
|
insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> vp ** {
|
||||||
s = vp.s ;
|
|
||||||
a1 = vp.a1 ;
|
|
||||||
n2 = \\a => obj ! a ++ vp.n2 ! a ;
|
n2 = \\a => obj ! a ++ vp.n2 ! a ;
|
||||||
a2 = vp.a2 ;
|
|
||||||
ext = vp.ext ;
|
|
||||||
en2 = True ;
|
en2 = True ;
|
||||||
ea2 = vp.ea2 ;
|
|
||||||
eext = vp.eext
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertObjPost : (Agr => Str) -> VP -> VP = \obj,vp -> {
|
insertObjPost : (Agr => Str) -> VP -> VP = \obj,vp -> vp ** {
|
||||||
s = vp.s ;
|
|
||||||
a1 = vp.a1 ;
|
|
||||||
n2 = \\a => vp.n2 ! a ++ obj ! a ;
|
n2 = \\a => vp.n2 ! a ++ obj ! a ;
|
||||||
a2 = vp.a2 ;
|
|
||||||
ext = vp.ext ;
|
|
||||||
en2 = True ;
|
en2 = True ;
|
||||||
ea2 = vp.ea2 ;
|
|
||||||
eext = vp.eext
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertAdv : Str -> VP -> VP = \adv,vp -> {
|
insertAdv : Str -> VP -> VP = \adv,vp -> vp ** {
|
||||||
s = vp.s ;
|
|
||||||
a1 = vp.a1 ;
|
|
||||||
n2 = vp.n2 ;
|
|
||||||
a2 = vp.a2 ++ adv ;
|
a2 = vp.a2 ++ adv ;
|
||||||
ext = vp.ext ;
|
|
||||||
en2 = vp.en2 ;
|
|
||||||
ea2 = True ;
|
ea2 = True ;
|
||||||
eext = vp.eext
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertExt : Str -> VP -> VP = \ext,vp -> {
|
insertExt : Str -> VP -> VP = \ext,vp -> vp ** {
|
||||||
s = vp.s ;
|
|
||||||
a1 = vp.a1 ;
|
|
||||||
n2 = vp.n2 ;
|
|
||||||
a2 = vp.a2 ;
|
|
||||||
ext = vp.ext ++ ext ;
|
ext = vp.ext ++ ext ;
|
||||||
en2 = vp.en2 ;
|
|
||||||
ea2 = vp.ea2 ;
|
|
||||||
eext = True ;
|
eext = True ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertAdV : Str -> VP -> VP = \adv -> insertAdVAgr (\\_ => adv) ;
|
insertAdV : Str -> VP -> VP = \adv -> insertAdVAgr (\\_ => adv) ;
|
||||||
|
|
||||||
insertAdVAgr : (Agr => Str) -> VP -> VP = \adv,vp -> {
|
insertAdVAgr : (Agr => Str) -> VP -> VP = \adv,vp ->vp ** {
|
||||||
s = vp.s ;
|
|
||||||
a1 = \\b,a => vp.a1 ! b ! a ++ adv ! a ;
|
a1 = \\b,a => vp.a1 ! b ! a ++ adv ! a ;
|
||||||
n2 = vp.n2 ;
|
|
||||||
a2 = vp.a2 ;
|
|
||||||
ext = vp.ext ;
|
|
||||||
en2 = vp.en2 ;
|
|
||||||
ea2 = vp.ea2 ;
|
|
||||||
eext = vp.eext
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
passiveVP : VP -> VP = \vp -> {
|
passiveVP : VP -> VP = \vp -> {
|
||||||
s = \\_ => vp.s ! Pass ; -- forms the s-passive
|
s = \\_ => vp.s ! Pass ; -- forms the s-passive
|
||||||
|
sp = vp.sp ;
|
||||||
a1 = vp.a1 ;
|
a1 = vp.a1 ;
|
||||||
n2 = vp.n2 ;
|
n2 = vp.n2 ;
|
||||||
a2 = vp.a2 ;
|
a2 = vp.a2 ;
|
||||||
|
|||||||
@@ -66,6 +66,10 @@ interface ResScand = DiffScand ** open CommonScand, Prelude in {
|
|||||||
VPInfinit Anter => vf [] (ha ++ vsup d) ; --# notpresent
|
VPInfinit Anter => vf [] (ha ++ vsup d) ; --# notpresent
|
||||||
VPInfinit Simul => vf [] (vinf d)
|
VPInfinit Simul => vf [] (vinf d)
|
||||||
} ;
|
} ;
|
||||||
|
sp = table {
|
||||||
|
PartPret a c => verb.s ! (VI (VPtPret a c)) ;
|
||||||
|
PartPres n s c => verb.s ! (VI (VPtPres n s c))
|
||||||
|
} ;
|
||||||
a1 : Polarity => Agr => Str = \\p,a => negation ! p ;
|
a1 : Polarity => Agr => Str = \\p,a => negation ! p ;
|
||||||
n2 : Agr => Str = \\a => case verb.vtype of {
|
n2 : Agr => Str = \\a => case verb.vtype of {
|
||||||
VRefl => reflPron a ;
|
VRefl => reflPron a ;
|
||||||
|
|||||||
@@ -44,10 +44,10 @@ lin
|
|||||||
{s = \\ag,rc => t.s ++ p.s ++ vilket ++ cl.s ! t.t ! t.a ! p.p ! Sub } ;
|
{s = \\ag,rc => t.s ++ p.s ++ vilket ++ cl.s ! t.t ! t.a ! p.p ! Sub } ;
|
||||||
|
|
||||||
|
|
||||||
AdvFocVP adv vp = {s = \\v,vpf => {fin = adv.s ++ (vp.s ! v ! vpf).fin ;
|
AdvFocVP adv vp = vp ** {
|
||||||
inf = (vp.s ! v ! vpf).inf};
|
s = \\v,vpf => {fin = adv.s ++ (vp.s ! v ! vpf).fin ;
|
||||||
a1 = vp.a1 ; n2 = vp.n2 ; a2 = vp.a2 ; ext = vp.ext ;
|
inf = (vp.s ! v ! vpf).inf}
|
||||||
en2 = vp.en2 ; ea2 = vp.ea2; eext = vp.eext } ;
|
} ;
|
||||||
PredetAdvF adv = {s = \\_,_ => adv.s ; p = [] ; a = PNoAg} ;
|
PredetAdvF adv = {s = \\_,_ => adv.s ; p = [] ; a = PNoAg} ;
|
||||||
|
|
||||||
QuantPronAQ x =
|
QuantPronAQ x =
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
concrete DictionarySwe of Dictionary = CatSwe ** open ParadigmsSwe, (I = IrregSwe), (C = CommonScand), (R = ResSwe), (L = LexiconSwe), (M = MakeStructuralSwe), (S = SyntaxSwe), Prelude in {
|
concrete DictionarySwe of Dictionary = CatSwe ** open ParadigmsSwe, (I = IrregSwe), (C = CommonScand), (R = ResSwe), (L = LexiconSwe), (M = MakeStructuralSwe), (S = SyntaxSwe), Prelude in {
|
||||||
|
|
||||||
|
|
||||||
|
oper adjAdv : A -> Adv = \a -> S.mkAdv a ;
|
||||||
|
|
||||||
flags
|
flags
|
||||||
coding = utf8;
|
coding = utf8;
|
||||||
|
|
||||||
@@ -61167,6 +61170,7 @@ lin unification_N = mkN "enande" ; -- status=guess
|
|||||||
lin unifilar_A = variants {} ; -- status=guess
|
lin unifilar_A = variants {} ; -- status=guess
|
||||||
lin unifoliate_A = variants {} ; -- status=guess
|
lin unifoliate_A = variants {} ; -- status=guess
|
||||||
lin uniform_A = mkA "uniform" ; -- SaldoWN
|
lin uniform_A = mkA "uniform" ; -- SaldoWN
|
||||||
|
lin uniformly_Adv = adjAdv uniform_A ;
|
||||||
lin uniform_N = mkN "uniform" "uniformer" ; -- SaldoWN
|
lin uniform_N = mkN "uniform" "uniformer" ; -- SaldoWN
|
||||||
lin uniformed_A = compoundA (regA "uniformerad"); -- status=guess
|
lin uniformed_A = compoundA (regA "uniformerad"); -- status=guess
|
||||||
lin uniformity_N = mkN "uniformitet" "uniformiteter" ; -- comment=4
|
lin uniformity_N = mkN "uniformitet" "uniformiteter" ; -- comment=4
|
||||||
|
|||||||
@@ -96,26 +96,26 @@ fun
|
|||||||
{-
|
{-
|
||||||
-- changes from ParseEngAbs
|
-- changes from ParseEngAbs
|
||||||
|
|
||||||
ComplBareVS -> ComplVS -- as variant
|
ComplBareVS --> ComplVS -- as variant
|
||||||
SlashBareV2S -> SlashV2S -- as variant
|
SlashBareV2S --> SlashV2S -- as variant
|
||||||
ComplSlashPartLast -> ComplSlash -- as variant
|
ComplSlashPartLast --> ComplSlash -- as variant
|
||||||
|
|
||||||
CompoundCN Sg/Pl -> CompoundCN -- as variants
|
CompoundCN Sg/Pl --> CompoundCN -- as variants
|
||||||
DashCN -> CompoundCN -- as variant
|
DashCN --> CompoundCN -- as variant
|
||||||
|
|
||||||
GerundN -> GerundCN -- special case: now CN
|
GerundN --> GerundCN -- special case: now CN
|
||||||
-> GerundNP -- an NP version without determiner
|
--> GerundNP -- an NP version without determiner
|
||||||
-> GerundAdv -- an Adv version without determiner or preposition
|
--> GerundAdv -- an Adv version without determiner or preposition
|
||||||
|
|
||||||
GerundAP -> PresPartAP -- special case: now with a VP argument
|
GerundAP --> PresPartAP -- special case: now with a VP argument
|
||||||
|
|
||||||
PastPartAP -> PastPartAP -- now with VPSlash argument
|
PastPartAP --> PastPartAP -- now with VPSlash argument
|
||||||
-> PastPartAgentAP -- VPSlash + by NP
|
--> PastPartAgentAP -- VPSlash + by NP
|
||||||
|
|
||||||
OrdCompar -> UseComparA -- the only use in PTB reduces to this standard RGL function
|
OrdCompar --> UseComparA -- the only use in PTB reduces to this standard RGL function
|
||||||
|
|
||||||
PredVPosv -> PredFrontVS, PredFrontVQ -- restricted to the special case actually occurring in PTB
|
PredVPosv --> PredFrontVS, PredFrontVQ -- restricted to the special case actually occurring in PTB
|
||||||
PredVPovs -> -- inversion treated as variant: I am here, said she
|
PredVPovs --> -- inversion treated as variant: I am here, said she
|
||||||
|
|
||||||
|
|
||||||
-}
|
-}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ lin
|
|||||||
co = v.s ! VI (VPtPres Sg Indef Nom) ;
|
co = v.s ! VI (VPtPres Sg Indef Nom) ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
GerundAP v = {
|
PresPartAP vp = {
|
||||||
s = \\_ => v.s ! VI (VPtPres Sg Indef Nom) ;
|
s = \\_ => v.s ! VI (VPtPres Sg Indef Nom) ;
|
||||||
isPre = True
|
isPre = True
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user