1
0
forked from GitHub/gf-core

final changes Romanian resource grammar and phrasebook

This commit is contained in:
ramona.enache
2010-05-15 13:37:27 +00:00
parent 88fc20ce61
commit 4c384fac73
7 changed files with 36 additions and 23 deletions

View File

@@ -54,7 +54,7 @@ concrete CatRon of Cat =
c1, c2 : Clitics => Str ;
a : Agr ;
isPol : Bool ;
poss : Number => Gender => Str } ;
poss : Number => Gender => ACase => Str } ;
NP = NounPhrase ;

View File

@@ -8,7 +8,11 @@ concrete ExtraRon of ExtraRonAbs = CatRon **
in
mkClause ss np.isPol np2.a (insertDatClit (insertSimpObj (\\_ => (np2.s ! Nom).comp) vp) np);
AccSubjCl np vp = let ss = if_then_Str np.isPronoun "" (np.s ! Ac).comp
AccSubjCl np vp = let s1 = case np.nForm of
{HasRef False => "";
_ => "pe"};
ss = if_then_Str np.isPronoun "" (s1 ++ (np.s ! Ac).comp)
in
mkClause ss np.isPol (agrP3 Masc Sg) (insertAccClit vp np) ;

View File

@@ -75,7 +75,7 @@ lin
fear_VS = mkVS (v_besch100 "teme") ;
fear_V2 = mmkV2 (mkRVAcc (mkV100 "teme")) (mkPrep "de" Ac) ;
find_V2 = dirV2 (mkV "găsi") ;
fish_N = mkN "peşte" masculine ;
fish_N = mkN "peşte" "peşti" masculine ;
floor_N = mkN "podea" ;
forget_V2 = dirV2 (v_besch18 "uita") ;
fridge_N = mkN "frigider" ;
@@ -303,7 +303,7 @@ wide_A = mkA "adânc" ;
wind_N = mkNR "vânt" ;
wing_N = mkN "aripă" ;
worm_N = mkN "vierme" masculine;
year_N = mkN "an" masculine;
year_N = mkN "an" "ani" masculine;
bite_V2 = dirV2 (v_besch22 "muşca") ;
blow_V = v_besch55 "sufla" ;
breathe_V = v_besch17 "respira" ;

View File

@@ -294,7 +294,11 @@ oper adjDimin : Str -> Adj = \s ->
in
mkAdjSpec s f pl plf;
oper adjNat : Str -> Adj = \s ->
let f = Predef.tk 2 s + "en"
in
mkAdjSpec s (s+"ă") (f+"i") (f+"e");
-- the phonetical mutations that occur in Romanian (Singular Masculine -> Singular Feminine) are
-- o -> oa (Ex : frumos -> frumoasă)
-- e -> ea / ie -> ia (Ex : des -> deasă)
@@ -434,6 +438,7 @@ mkAdjReg : Str -> Adj = \s ->
x + "e" => adjMare s;
x + "iu" => adjAuriu s;
x + "el" => adjDimin s;
x + "an" => adjNat s;
_ => mkAdjSpec s (mkFemSg radF) (mkStemPlReg rad) (mkFemAdj rad)
};

View File

@@ -9,7 +9,7 @@ concrete NounRon of Noun =
n = det.n;
gg = agrGender cn.g n ;
ag = agrP3 gg n ;
hr = orB cn.needsRefForm (orB (andB (getClit cn.a) det.hasRef) (andB det.isDef cn.isComp));
hr = orB cn.needsRefForm (andB (getClit cn.a) (orB det.hasRef (andB det.isDef cn.isComp)));
nf = if_then_else NForm hr HasClit (HasRef False);
st= if_then_else Species det.isDef Def Indef;
rs = if_then_else Species det.hasRef Def Indef
@@ -147,8 +147,8 @@ in {
-- assume that it refers to people
PossPron p = {
s = \\_,n,g,c => p.poss ! n ! g ;
sp = \\ n,g,c => artPos g n c ++ p.poss ! n ! g ;
s = \\_,n,g,c => p.poss ! n ! g ! c;
sp = \\ n,g,c => artPos g n c ++ p.poss ! n ! g ! c ;
isDef = True ;
isPost = True ;
hasRef = True
@@ -244,7 +244,7 @@ in {
g = f.g ;
a = f.a ;
needsRefForm = False ;
isComp = getClit f.a
isComp = False
} ;
ComplN3 f x = {
@@ -253,7 +253,7 @@ in {
c2 = f.c3;
a = f.a ;
needsRefForm = False ;
isComp = getClit f.a
isComp = False
} ;
AdjCN ap cn =
@@ -269,7 +269,7 @@ in {
g = g ;
a = cn.a ;
needsRefForm = cn.needsRefForm ;
isComp = getClit cn.a
isComp = True
} ;
@@ -278,7 +278,7 @@ in {
g = cn.g ;
a = cn.a ;
needsRefForm = cn.needsRefForm;
isComp = False
isComp = True
} ;
SentCN cn sc = let g = cn.g in {
@@ -286,7 +286,7 @@ in {
g = g ;
a = cn.a ;
needsRefForm = cn.needsRefForm;
isComp = False
isComp = True
} ;
AdvCN cn sc = let g = cn.g in {
@@ -294,7 +294,7 @@ in {
g = g;
a = cn.a ;
needsRefForm = cn.needsRefForm;
isComp = False
isComp = True
} ;
ApposCN cn np = let g = cn.g in {
@@ -302,7 +302,7 @@ in {
g = g;
a = cn.a ;
needsRefForm = cn.needsRefForm;
isComp = False
isComp = True
} ;

View File

@@ -9,7 +9,7 @@ param Placement = indep | attr ;
lincat Digit = {s : CardOrd => DForm => Str ; size : Size} ;
lincat Sub10 = {s : CardOrd => DForm => Placement => Str ; size : Size} ;
lincat Sub100 = {s : CardOrd => NumF => Placement => Str ; size : Size} ;
lincat Sub1000 = {s : CardOrd => NumF => Placement => Str ; size : Size} ;
lincat Sub1000 = {s : CardOrd => NumF => Placement => Str ; size : Size } ;
lincat Sub1000000 = { s : CardOrd => NumF => Placement => Str; size : Size } ;
@@ -174,12 +174,11 @@ lin pot2 d =
NCard g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ;
NOrd g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mkSute d.size g)
};
size = pl} ;
lin pot2plus d e =
{s = \\c,f,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ++ e.s ! c ! f ! attr ;
size = pl} ;
size = e.size} ;
lin pot2as3 n = n ;
@@ -193,8 +192,8 @@ lin pot3 n =
lin pot3plus n m =
{s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep) ++ m.s ! c ! f ! attr;
size = pl
{s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep) ++ m.s ! c ! f ! attr;
size = m.size
};
oper mksute : Size -> Str = \sz -> table {sg => "sută" ; _ => "sute" } ! sz ;

View File

@@ -516,9 +516,14 @@ mkPronoun :(_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pron =\eu,
} ;
c1 = \\c => (cliticsAc g n p).s ! c ; c2 = \\c => (cliticsDa g n p).s ! c ;
a = {g = g ; n = n ; p = p} ;
poss = table {Sg => table {Masc => meuP ; Fem => mea};
Pl => table {Masc => mei ; Fem => mele}
};
poss = \\n,g,c => case <n,g,c> of
{<Sg,Masc,AGenDat> => meuP ;
<Sg,Masc,_> => meuP ;
<Sg,Fem,AGenDat> => mele ;
<Sg,Fem,_> => mea;
<Pl,Masc,_> => mei;
<Pl,Fem,_> => mele
} ;
isPol = False;
lock_Pron = <>};