forked from GitHub/gf-core
reflexive NP in Scandinavian; things to fix to decide whether agreement comes from the subject or from the possessed noun
This commit is contained in:
@@ -84,4 +84,18 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in {
|
|||||||
|
|
||||||
av_Prep = "af" ;
|
av_Prep = "af" ;
|
||||||
|
|
||||||
|
possPron : Number -> Person -> Number -> Gender -> Str = \sn,sb,on,og -> case <sn,sb,on,og> of {
|
||||||
|
<Sg,P1,Sg,Utr> => "min" ;
|
||||||
|
<Sg,P1,Sg,Neutr> => "mit" ;
|
||||||
|
<Sg,P1,Pl,_> => "mine" ;
|
||||||
|
<Sg,P2,Sg,Utr> => "din" ;
|
||||||
|
<Sg,P2,Sg,Neutr> => "dit" ;
|
||||||
|
<Sg,P2,Pl,_> => "dine" ;
|
||||||
|
<Pl,P1,_,_> => "vores" ;
|
||||||
|
<Pl,P2,_,_> => "jeres" ;
|
||||||
|
<_,_,Sg,Utr> => "sin" ;
|
||||||
|
<_,_,Sg,Neutr> => "sit" ;
|
||||||
|
<_,_,Pl,_> => "sine"
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,4 +92,20 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
|
|||||||
hur_IAdv = {s = "hvor"} ;
|
hur_IAdv = {s = "hvor"} ;
|
||||||
|
|
||||||
av_Prep = "av" ;
|
av_Prep = "av" ;
|
||||||
|
|
||||||
|
possPron : Number -> Person -> Number -> Gender -> Str = \sn,sb,on,og -> case <sn,sb,on,og> of {
|
||||||
|
<Sg,P1,Sg,Utr> => "min" ;
|
||||||
|
<Sg,P1,Sg,Neutr> => "mit" ;
|
||||||
|
<Sg,P1,Pl,_> => "mine" ;
|
||||||
|
<Sg,P2,Sg,Utr> => "din" ;
|
||||||
|
<Sg,P2,Sg,Neutr> => "dit" ;
|
||||||
|
<Sg,P2,Pl,_> => "dine" ;
|
||||||
|
<Pl,P1,Sg,Utr> => "vår" ;
|
||||||
|
<Pl,P1,Sg,Neutr> => "vårt" ;
|
||||||
|
<Pl,P1,Pl,_> => "våre" ;
|
||||||
|
<Pl,P2,_,_> => "deres" ;
|
||||||
|
<_,_,Sg,Utr> => "sin" ;
|
||||||
|
<_,_,Sg,Neutr> => "sit" ;
|
||||||
|
<_,_,Pl,_> => "sine"
|
||||||
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ concrete StructuralNor of Structural = CatNor **
|
|||||||
if_Subj = ss "hvis" ;
|
if_Subj = ss "hvis" ;
|
||||||
in8front_Prep = ss "foran" ;
|
in8front_Prep = ss "foran" ;
|
||||||
i_Pron =
|
i_Pron =
|
||||||
MorphoNor.mkNP "jeg" "meg" "min" "mit" "mine" Utr Sg P1 ; --- mi
|
MorphoNor.mkNP "jeg" "meg" "min" "mitt" "mine" Utr Sg P1 ; --- mi
|
||||||
--- MorphoNor.mkNP "jeg" "meg" (variants {"min" ; "mi"}) "mit" "mine" Utr Sg P1 ;
|
--- MorphoNor.mkNP "jeg" "meg" (variants {"min" ; "mi"}) "mit" "mine" Utr Sg P1 ;
|
||||||
in_Prep = ss "i" ;
|
in_Prep = ss "i" ;
|
||||||
it_Pron = MorphoNor.regNP "det" "dets" Neutr Sg ;
|
it_Pron = MorphoNor.regNP "det" "dets" Neutr Sg ;
|
||||||
@@ -118,7 +118,7 @@ concrete StructuralNor of Structural = CatNor **
|
|||||||
with_Prep = ss "med" ;
|
with_Prep = ss "med" ;
|
||||||
yes_Utt = ss ["ja"] ;
|
yes_Utt = ss ["ja"] ;
|
||||||
youSg_Pron =
|
youSg_Pron =
|
||||||
MorphoNor.mkNP "du" "deg" "din" "dit" "dine" Utr Sg P2 ; ----
|
MorphoNor.mkNP "du" "deg" "din" "ditt" "dine" Utr Sg P2 ; ----
|
||||||
--- MorphoNor.mkNP "du" "deg" (variants {"din" ; "di"}) "dit" "dine" Utr Sg P2 ; ----
|
--- MorphoNor.mkNP "du" "deg" (variants {"din" ; "di"}) "dit" "dine" Utr Sg P2 ; ----
|
||||||
youPl_Pron = MorphoNor.mkNP "dere" "dere" "deres" "deres" "deres" Utr Pl P2 ;
|
youPl_Pron = MorphoNor.mkNP "dere" "dere" "deres" "deres" "deres" Utr Pl P2 ;
|
||||||
youPol_Pron = MorphoNor.mkNP "Dere" "Dere" "Deres" "Deres" "Deres" Utr Sg P2 ; --- wrong in refl
|
youPol_Pron = MorphoNor.mkNP "Dere" "Dere" "Deres" "Deres" "Deres" Utr Sg P2 ; --- wrong in refl
|
||||||
|
|||||||
@@ -67,5 +67,7 @@ interface DiffScand = open CommonScand, Prelude in {
|
|||||||
hur_IAdv : {s : Str} ;
|
hur_IAdv : {s : Str} ;
|
||||||
|
|
||||||
av_Prep : Str ;
|
av_Prep : Str ;
|
||||||
|
|
||||||
|
possPron : Number -> Person -> Number -> Gender -> Str ; -- mina bilar: Sg, P1, Utr, Pl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -156,4 +156,37 @@ incomplete concrete ExtraScand of ExtraScandAbs = CatScand **
|
|||||||
isMod = True
|
isMod = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
lincat
|
||||||
|
RNP = {s : Agr => Str ; isPron : Bool} ; ---- inherent Agr needed: han färgar sitt hår vitt. But also depends on subject
|
||||||
|
RNPList = {s1,s2 : Agr => Str} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
ReflRNP vps rnp =
|
||||||
|
insertObjPron
|
||||||
|
(andB (notB vps.c2.hasPrep) rnp.isPron)
|
||||||
|
rnp.s
|
||||||
|
(insertObj (\\a => vps.c2.s ++ vps.n3 ! a) vps) ;
|
||||||
|
|
||||||
|
ReflPron = {s = \\a => reflPron a ; isPron = True} ; ---- agr ??
|
||||||
|
ReflPoss num cn = {
|
||||||
|
s = \\a => possPron a.n a.p num.n (ngen2gen cn.g) ++ num.s ! cn.g ++ cn.s ! num.n ! DDef Indef ! Nom ;
|
||||||
|
isPron = False
|
||||||
|
} ;
|
||||||
|
PredetRNP predet rnp = {
|
||||||
|
s = \\a => predet.s ! Utr ! Pl ++ predet.p ++ rnp.s ! a ; ---- agr needed here as well
|
||||||
|
---- s = \\a => predet.s ! np.a.g ! np.a.n ++ predet.p ++ np.s ! a ;
|
||||||
|
---- a = case pred.a of {PAg n => agrP3 np.a.g n ; _ => np.a} ;
|
||||||
|
isPron = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ConjRNP conj rpns = conjunctDistrTable Agr conj rpns ** {isPron = False} ;
|
||||||
|
|
||||||
|
Base_rr_RNP x y = twoTable Agr x y ;
|
||||||
|
Base_nr_RNP x y = twoTable Agr {s = \\a => x.s ! NPAcc} y ;
|
||||||
|
Base_rn_RNP x y = twoTable Agr x {s = \\a => y.s ! NPAcc} ;
|
||||||
|
Cons_rr_RNP x xs = consrTable Agr comma x xs ;
|
||||||
|
Cons_nr_RNP x xs = consrTable Agr comma {s = \\a => x.s ! NPAcc} xs ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,4 +84,23 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
|
|||||||
hur_IAdv = {s = "hur"} ;
|
hur_IAdv = {s = "hur"} ;
|
||||||
av_Prep = "av" ;
|
av_Prep = "av" ;
|
||||||
|
|
||||||
|
possPron : Number -> Person -> Number -> Gender -> Str = \sn,sb,on,og -> case <sn,sb,on,og> of {
|
||||||
|
<Sg,P1,Sg,Utr> => "min" ;
|
||||||
|
<Sg,P1,Sg,Neutr> => "mitt" ;
|
||||||
|
<Sg,P1,Pl,_> => "mina" ;
|
||||||
|
<Sg,P2,Sg,Utr> => "din" ;
|
||||||
|
<Sg,P2,Sg,Neutr> => "ditt" ;
|
||||||
|
<Sg,P2,Pl,_> => "dina" ;
|
||||||
|
<Pl,P1,Sg,Utr> => "vår" ;
|
||||||
|
<Pl,P1,Sg,Neutr> => "vårt" ;
|
||||||
|
<Pl,P1,Pl,_> => "våra" ;
|
||||||
|
<Pl,P2,Sg,Utr> => "er" ;
|
||||||
|
<Pl,P2,Sg,Neutr> => "ert" ;
|
||||||
|
<Pl,P2,Pl,_> => "era" ;
|
||||||
|
<_,_,Sg,Utr> => "sin" ;
|
||||||
|
<_,_,Sg,Neutr> => "sitt" ;
|
||||||
|
<_,_,Pl,_> => "sina"
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
abstract ExtraSweAbs = ExtraScandAbs -[FocAP] ** {
|
abstract ExtraSweAbs = ExtraScandAbs -[FocAP] ** {
|
||||||
flags coding=utf8;
|
flags coding=utf8;
|
||||||
cat ReflNP ;
|
cat ReflNP ; ---- should be merged with Extra.RNP AR 7/6/2016
|
||||||
PronAD ; -- relational pronouns which can act like adjectives and
|
PronAD ; -- relational pronouns which can act like adjectives and
|
||||||
-- determiners. 'fler'
|
-- determiners. 'fler'
|
||||||
PronAQ ; -- relational pronouns which can act like adjectives and
|
PronAQ ; -- relational pronouns which can act like adjectives and
|
||||||
@@ -44,8 +44,8 @@ fun
|
|||||||
it8utr_Pron : Pron ;
|
it8utr_Pron : Pron ;
|
||||||
this8denna_Quant : Quant ;
|
this8denna_Quant : Quant ;
|
||||||
|
|
||||||
ReflCN : Num -> CN -> ReflNP ;
|
ReflCN : Num -> CN -> ReflNP ; ---- should be merged with Extra.RNP AR 7/6/2016
|
||||||
ReflSlash : VPSlash -> ReflNP -> VP ;
|
ReflSlash : VPSlash -> ReflNP -> VP ; ---- should be merged with Extra.RNP AR 7/6/2016
|
||||||
|
|
||||||
|
|
||||||
SupCl : NP -> VP -> Pol -> S ; -- när jag sovit
|
SupCl : NP -> VP -> Pol -> S ; -- när jag sovit
|
||||||
|
|||||||
Reference in New Issue
Block a user