1. updated types in ../abstract/*'.gf to replace NP,Det,Quant,Predep,Prep,DAP by

their primed versions
2. implemented all linearizations to use the primed categories

This allows linearization with prep+defart's, but parsing gives metavariables
in parses (DetQuant ? NumSg) and (DetQuantOrd ? NumSg ord) for prep+defart.

Todo: make Quant.s and NP. depend on PronType = isCat | isPron | isPronDefArt.

Without SlashV2VNP', compiles in 84 sec and gives 3,6M VerbGer.gfo, 2,3M SentenceGer.gfo.

Uses |Prep'|=12 instead of |Prep|=18, |NP'|=72 instead of |NP|=54
This commit is contained in:
Hans Leiss
2022-07-22 11:49:19 +02:00
parent 8eee3df739
commit ec41af609d
20 changed files with 283 additions and 257 deletions
+26 -24
View File
@@ -10,14 +10,18 @@ concrete AdjectiveGer of Adjective' = CatGer ** open ResGer, Prelude in {
c = <[],[]> ;
ext = []
} ;
ComparA a np = {
s = \\af => a.s ! Compar ! af ++ conjThan ++ np.s ! NPC Nom ++ bigNP np ;
ComparA a np =
let nps = (np.s ! Nom).p1 ++ (np.s ! Nom).p2 ++ bigNP' np
in {
s = \\af => a.s ! Compar ! af ++ conjThan ++ nps ;
isPre = True ;
c = <[],[]> ;
ext = []
} ;
CAdvAP ad ap np = ap ** {
s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ np.s ! NPC Nom ++ bigNP np ;
CAdvAP ad ap np =
let nps = (np.s ! Nom).p1 ++ (np.s ! Nom).p2 ++ bigNP' np in
ap ** {
s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ nps ;
isPre = False
} ;
UseComparA a = {
@@ -37,33 +41,31 @@ concrete AdjectiveGer of Adjective' = CatGer ** open ResGer, Prelude in {
-- $SuperlA$ belongs to determiner syntax in $Noun$.
ComplA2 a np =
let CExt = case a.c2.isPrep of {
isCase => <appPrepNP' a.c2 np, []> ;
_ => <[], appPrepNP' a.c2 np> } -- HL: check 7/22
in {
s = a.s ! Posit ;
isPre = True ;
c = CExt ;
ext = []
let CExt = case a.c2.isPrep of {
isCase => <appPrepNP' a.c2 np, []> ;
_ => <[], appPrepNP' a.c2 np> } -- HL: check 7/22
in {
s = a.s ! Posit ;
isPre = True ;
c = CExt ;
ext = []
} ;
ReflA2 a =
let
-- compl = appPrep a.c2 (\\k => usePrepC k (\c -> reflPron ! agrP3 Sg ! c)) ;
compl = appPrep' a.c2 (reflPron ! agrP3 Sg) ;
CExt = case a.c2.isPrep of
{isCase => <compl, []> ;
_ => <[], compl> } -- HL Check isPrepDefArt
in {
s = a.s ! Posit ;
isPre = True ;
c = CExt ;
ext = []
let
compl = appPrep' a.c2 (reflPron ! agrP3 Sg) ;
CExt = case a.c2.isPrep of
{isCase => <compl, []> ; _ => <[], compl> }
in {
s = a.s ! Posit ;
isPre = True ;
c = CExt ;
ext = []
} ;
SentAP ap sc = ap ** {
isPre = False ;
ext = ap.ext ++ sc.s
ext = ap.ext ++ sc.s
} ;
AdAP ada ap = ap ** {s = \\a => ada.s ++ ap.s ! a} ;