mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-26 19:46:26 -06:00
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:
+26
-24
@@ -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} ;
|
||||
|
||||
Reference in New Issue
Block a user