1
0
forked from GitHub/gf-rgl

guessed DetDAP and UseDAP*

This commit is contained in:
Krasimir Angelov
2024-04-03 16:29:39 +02:00
parent 70223e85f2
commit a0c8198a68
3 changed files with 31 additions and 2 deletions

View File

@@ -54,7 +54,7 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
Card = ResAra.NumOrdCard ; Card = ResAra.NumOrdCard ;
Predet = ResAra.Predet ; Predet = ResAra.Predet ;
Det = ResAra.Det ; DAP, Det = ResAra.Det ;
-- {s : Species => Gender => Case => Str ; -- {s : Species => Gender => Case => Str ;
-- d : State; n : Size; isNum : Bool } ; -- d : State; n : Size; isNum : Bool } ;
Quant = ResAra.Quant ; Quant = ResAra.Quant ;

View File

@@ -8,7 +8,7 @@ concrete ExtendAra of Extend =
VPS, MkVPS, PredVPS, BaseVPS, ConsVPS, ConjVPS, VPS, MkVPS, PredVPS, BaseVPS, ConsVPS, ConjVPS,
EmbedSSlash, AdjAsNP, GerundNP, EmbedSSlash, AdjAsNP, GerundNP,
PassVPSlash, ---- bogus implementation, see below PassVPSlash, ---- bogus implementation, see below
CompoundN CompoundN, UseDAP, UseDAPMasc, UseDAPFem
] ]
with (Grammar=GrammarAra) with (Grammar=GrammarAra)
** open ** open
@@ -105,4 +105,31 @@ lin
s2 = \\n, s, c => b.s2 ! n ! Const ! c ++ a.s2 ! n ! s ! c s2 = \\n, s, c => b.s2 ! n ! Const ! c ++ a.s2 ! n ! s ! c
} ; } ;
lin UseDAP dap = case dap.isEmpty of {
True => case <dap.d,dap.n> of { -- if the s field is empty, make up some other determiner
<Def,One> => it_Pron ;
<Def,_> => they_Pron ;
<Indef,One> => emptyNP ** {s = someSg_Det.s ! NoHum ! Masc} ;
_ => emptyNP ** {s = somePl_Det.s ! NoHum ! Masc}
} ;
False => emptyNP ** {s = dap.s ! NoHum ! Masc} } ;
lin UseDAPMasc dap = case dap.isEmpty of {
True => case <dap.d,dap.n> of { -- if the s field is empty, make up some other determiner
<Def,One> => it_Pron ;
<Def,_> => theyMasc_Pron ;
<Indef,One> => emptyNP ** {s = someSg_Det.s ! NoHum ! Masc} ;
_ => emptyNP ** {s = somePl_Det.s ! NoHum ! Masc}
} ;
False => emptyNP ** {s = dap.s ! NoHum ! Masc} } ;
lin UseDAPFem dap = case dap.isEmpty of {
True => case <dap.d,dap.n> of { -- if the s field is empty, make up some other determiner
<Def,One> => it_Pron ;
<Def,_> => theyFem_Pron ;
<Indef,One> => emptyNP ** {s = someSg_Det.s ! NoHum ! Fem} ;
_ => emptyNP ** {s = somePl_Det.s ! NoHum ! Fem}
} ;
False => emptyNP ** {s = dap.s ! NoHum ! Fem} } ;
} }

View File

@@ -237,6 +237,8 @@ lin
} }
}; };
DetDAP d = d ;
QuantityNP n m = emptyNP ** { QuantityNP n m = emptyNP ** {
s = \\c => preOrPost m.isPre m.s n.s ; s = \\c => preOrPost m.isPre m.s n.s ;
a = { pgn = agrP3 NoHum Masc (sizeToNumber n.n); a = { pgn = agrP3 NoHum Masc (sizeToNumber n.n);