mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-17 00:39:32 -06:00
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" ;
|
||||
|
||||
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"} ;
|
||||
|
||||
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" ;
|
||||
in8front_Prep = ss "foran" ;
|
||||
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 ;
|
||||
in_Prep = ss "i" ;
|
||||
it_Pron = MorphoNor.regNP "det" "dets" Neutr Sg ;
|
||||
@@ -118,7 +118,7 @@ concrete StructuralNor of Structural = CatNor **
|
||||
with_Prep = ss "med" ;
|
||||
yes_Utt = ss ["ja"] ;
|
||||
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 ; ----
|
||||
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
|
||||
|
||||
@@ -67,5 +67,7 @@ interface DiffScand = open CommonScand, Prelude in {
|
||||
hur_IAdv : {s : 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
|
||||
} ;
|
||||
|
||||
|
||||
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"} ;
|
||||
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] ** {
|
||||
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
|
||||
-- determiners. 'fler'
|
||||
PronAQ ; -- relational pronouns which can act like adjectives and
|
||||
@@ -44,8 +44,8 @@ fun
|
||||
it8utr_Pron : Pron ;
|
||||
this8denna_Quant : Quant ;
|
||||
|
||||
ReflCN : Num -> CN -> ReflNP ;
|
||||
ReflSlash : VPSlash -> ReflNP -> VP ;
|
||||
ReflCN : Num -> CN -> ReflNP ; ---- should be merged with Extra.RNP AR 7/6/2016
|
||||
ReflSlash : VPSlash -> ReflNP -> VP ; ---- should be merged with Extra.RNP AR 7/6/2016
|
||||
|
||||
|
||||
SupCl : NP -> VP -> Pol -> S ; -- när jag sovit
|
||||
|
||||
Reference in New Issue
Block a user