forked from GitHub/gf-core
SmallPred for optimized parsing speed: 20 times faster than NDPred
This commit is contained in:
@@ -1,11 +1,15 @@
|
|||||||
--# -path=.:../translator:../../../examples/phrasebook
|
--# -path=.:../translator:../../../examples/phrasebook
|
||||||
|
|
||||||
abstract App =
|
abstract App =
|
||||||
NDTrans
|
SmallPred
|
||||||
|
, Extensions [CN,NP,AdA,AdV,CompoundCN,AdAdV,UttAdV,ApposNP]
|
||||||
|
, Documentation - [Pol,Tense]
|
||||||
|
, Dictionary - [Pol,Tense]
|
||||||
|
|
||||||
, Phrasebook
|
, Phrasebook
|
||||||
** {
|
** {
|
||||||
flags
|
flags
|
||||||
startcat=Phr;
|
startcat=Phr ;
|
||||||
|
|
||||||
fun
|
fun
|
||||||
PhrasePhr : Phrase -> Phr ;
|
PhrasePhr : Phrase -> Phr ;
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
--# -path=.:../translator:../../../examples/phrasebook
|
--# -path=.:../translator:../../../examples/phrasebook
|
||||||
|
|
||||||
concrete AppEng of App =
|
concrete AppEng of App =
|
||||||
NDTransEng
|
SmallPredEng
|
||||||
|
, ExtensionsEng [CN,NP,AdA,AdV,CompoundCN,AdAdV,UttAdV,ApposNP]
|
||||||
|
, DocumentationEng - [Pol,Tense]
|
||||||
|
, DictionaryEng - [Pol,Tense]
|
||||||
|
|
||||||
, PhrasebookEng
|
, PhrasebookEng
|
||||||
|
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
--# -path=.:../finnish/stemmed:../finnish:../api:../translator:../../../examples/phrasebook:alltenses
|
--# -path=.:../finnish/stemmed:../finnish:../api:../translator:../../../examples/phrasebook:alltenses
|
||||||
|
|
||||||
concrete AppFin of App =
|
concrete AppFin of App =
|
||||||
NDTransFin
|
SmallPredFin
|
||||||
|
, ExtensionsFin [CN,NP,AdA,AdV,CompoundCN,AdAdV,UttAdV,ApposNP]
|
||||||
|
, DocumentationFin - [Pol,Tense]
|
||||||
|
, DictionaryFin - [Pol,Tense]
|
||||||
|
|
||||||
, PhrasebookFin
|
, PhrasebookFin
|
||||||
|
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
--# -path=.:../translator:../../../examples/phrasebook
|
--# -path=.:../translator:../../../examples/phrasebook
|
||||||
|
|
||||||
concrete AppSwe of App =
|
concrete AppSwe of App =
|
||||||
NDTransSwe
|
SmallPredSwe
|
||||||
|
, ExtensionsSwe [CN,NP,AdA,AdV,CompoundCN,AdAdV,UttAdV,ApposNP]
|
||||||
|
, DocumentationSwe - [Pol,Tense]
|
||||||
|
, DictionarySwe - [Pol,Tense]
|
||||||
, PhrasebookSwe - [open_A]
|
, PhrasebookSwe - [open_A]
|
||||||
|
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
|
|||||||
@@ -65288,8 +65288,8 @@ V_np_v_pastpart_Chunk 0.01
|
|||||||
V_np_a_pastpart_Chunk 0.001
|
V_np_a_pastpart_Chunk 0.001
|
||||||
V_np_q_pastpart_Chunk 0.001
|
V_np_q_pastpart_Chunk 0.001
|
||||||
PhrasePhr 0.8
|
PhrasePhr 0.8
|
||||||
PhrUtt 0.19
|
PhrUtt 0.199
|
||||||
PhrChunk 0.01
|
PhrChunk 1.0e-6
|
||||||
OneChunk 0.8
|
OneChunk 0.8
|
||||||
PlusChunk 0.2
|
PlusChunk 0.2
|
||||||
refl_SgP1_Chunk 5.751177721092363e-4
|
refl_SgP1_Chunk 5.751177721092363e-4
|
||||||
|
|||||||
212
lib/src/experimental/SmallPred.gf
Normal file
212
lib/src/experimental/SmallPred.gf
Normal file
@@ -0,0 +1,212 @@
|
|||||||
|
abstract SmallPred =
|
||||||
|
RGLBase - [Pol,Tense]
|
||||||
|
** {
|
||||||
|
|
||||||
|
cat
|
||||||
|
PrV_none ; PrV_np ; PrV_v ; PrV_s ; PrV_q ; PrV_a ; PrV_n ;
|
||||||
|
PrV_np_np ; PrV_np_v ; PrV_np_s ; PrV_np_q ; PrV_np_a ; PrV_np_n ;
|
||||||
|
|
||||||
|
PrVP_none ; PrVP_np ; PrVP_v ; PrVP_s ; PrVP_q ; PrVP_a ; PrVP_n ;
|
||||||
|
PrVP_np_np ; PrVP_np_v ; PrVP_np_s ; PrVP_np_q ; PrVP_np_a ; PrVP_np_n ;
|
||||||
|
|
||||||
|
|
||||||
|
Tense ;
|
||||||
|
Pol ;
|
||||||
|
|
||||||
|
PrCl_none ;
|
||||||
|
|
||||||
|
PrQCl_none ;
|
||||||
|
|
||||||
|
PrAdv_none ;
|
||||||
|
|
||||||
|
PrS ;
|
||||||
|
|
||||||
|
PrAP_none ;
|
||||||
|
|
||||||
|
PrCN_none ;
|
||||||
|
|
||||||
|
fun
|
||||||
|
TPres, TPast, TFut, TCond : Tense ;
|
||||||
|
PPos, PNeg : Pol ;
|
||||||
|
ASimul, AAnter : Ant ;
|
||||||
|
|
||||||
|
UseV_none : Ant -> Tense -> Pol -> PrV_none -> PrVP_none ;
|
||||||
|
UseV_np : Ant -> Tense -> Pol -> PrV_np -> PrVP_np ;
|
||||||
|
UseV_v : Ant -> Tense -> Pol -> PrV_v -> PrVP_v ;
|
||||||
|
UseV_s : Ant -> Tense -> Pol -> PrV_s -> PrVP_s ;
|
||||||
|
UseV_a : Ant -> Tense -> Pol -> PrV_a -> PrVP_a ;
|
||||||
|
UseV_q : Ant -> Tense -> Pol -> PrV_q -> PrVP_q ;
|
||||||
|
UseV_n : Ant -> Tense -> Pol -> PrV_v -> PrVP_n ;
|
||||||
|
UseV_np_np : Ant -> Tense -> Pol -> PrV_np_np -> PrVP_np_np ;
|
||||||
|
UseV_np_v : Ant -> Tense -> Pol -> PrV_np_v -> PrVP_np_v ;
|
||||||
|
UseV_np_s : Ant -> Tense -> Pol -> PrV_np_s -> PrVP_np_s ;
|
||||||
|
UseV_np_a : Ant -> Tense -> Pol -> PrV_np_a -> PrVP_np_a ;
|
||||||
|
UseV_np_q : Ant -> Tense -> Pol -> PrV_np_q -> PrVP_np_q ;
|
||||||
|
UseV_np_n : Ant -> Tense -> Pol -> PrV_np_n -> PrVP_np_n ;
|
||||||
|
|
||||||
|
-- ComplV2_none : PrVP_np -> NP -> PrVP_none ;
|
||||||
|
|
||||||
|
UseAP_none : Ant -> Tense -> Pol -> PrAP_none -> PrVP_none ;
|
||||||
|
|
||||||
|
UseAdv_none : Ant -> Tense -> Pol -> PrAdv_none -> PrVP_none ;
|
||||||
|
|
||||||
|
UseCN_none : Ant -> Tense -> Pol -> PrCN_none -> PrVP_none ;
|
||||||
|
|
||||||
|
UseNP_none : Ant -> Tense -> Pol -> NP -> PrVP_none ;
|
||||||
|
|
||||||
|
PredVP_none : NP -> PrVP_none -> PrCl_none ;
|
||||||
|
PredVP_np : NP -> PrVP_np -> PrCl_none ;
|
||||||
|
PredVP_v : NP -> PrVP_v -> PrCl_none ;
|
||||||
|
PredVP_a : NP -> PrVP_a -> PrCl_none ;
|
||||||
|
PredVP_s : NP -> PrVP_s -> PrCl_none ;
|
||||||
|
PredVP_q : NP -> PrVP_q -> PrCl_none ;
|
||||||
|
PredVP_np_np : NP -> PrVP_np -> PrCl_none ;
|
||||||
|
PredVP_np_v : NP -> PrVP_v -> PrCl_none ;
|
||||||
|
PredVP_np_a : NP -> PrVP_a -> PrCl_none ;
|
||||||
|
PredVP_np_s : NP -> PrVP_s -> PrCl_none ;
|
||||||
|
PredVP_np_q : NP -> PrVP_q -> PrCl_none ;
|
||||||
|
|
||||||
|
Pred2VP_none : NP -> PrVP_none -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_np : NP -> PrVP_np -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_v : NP -> PrVP_v -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_a : NP -> PrVP_a -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_s : NP -> PrVP_s -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_q : NP -> PrVP_q -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_np_np : NP -> PrVP_np -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_np_v : NP -> PrVP_v -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_np_a : NP -> PrVP_a -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_np_s : NP -> PrVP_s -> NP -> PrCl_none ;
|
||||||
|
Pred2VP_np_q : NP -> PrVP_q -> NP -> PrCl_none ;
|
||||||
|
|
||||||
|
QuestVP_none : IP -> PrVP_none -> PrQCl_none ;
|
||||||
|
|
||||||
|
QuestCl_none : PrCl_none -> PrQCl_none ;
|
||||||
|
|
||||||
|
QuestIAdv_none : IAdv -> PrCl_none -> PrQCl_none ;
|
||||||
|
|
||||||
|
QuestIComp_none : Ant -> Tense -> Pol -> IComp -> NP -> PrQCl_none ; -- where is she
|
||||||
|
|
||||||
|
UseCl_none : PrCl_none -> PrS ;
|
||||||
|
|
||||||
|
UseQCl_none : PrQCl_none -> PrS ;
|
||||||
|
|
||||||
|
UttPrS : PrS -> Utt ;
|
||||||
|
|
||||||
|
PrImpSg : PrVP_none -> Utt ;
|
||||||
|
PrImpPl : PrVP_none -> Utt ;
|
||||||
|
|
||||||
|
|
||||||
|
---- Lift
|
||||||
|
|
||||||
|
fun
|
||||||
|
LiftV : V -> PrV_none ;
|
||||||
|
LiftV2 : V2 -> PrV_np ;
|
||||||
|
LiftVS : VS -> PrV_s ;
|
||||||
|
LiftVQ : VQ -> PrV_q ;
|
||||||
|
LiftVV : VV -> PrV_v ;
|
||||||
|
LiftVA : VA -> PrV_a ;
|
||||||
|
LiftVN : VA -> PrV_n ; ----
|
||||||
|
|
||||||
|
LiftV3 : V3 -> PrV_np_np ;
|
||||||
|
LiftV2S : V2S -> PrV_np_s ;
|
||||||
|
LiftV2Q : V2Q -> PrV_np_q ;
|
||||||
|
LiftV2V : V2V -> PrV_np_v ;
|
||||||
|
LiftV2A : V2A -> PrV_np_a ;
|
||||||
|
LiftV2N : V2A -> PrV_np_n ; ----
|
||||||
|
|
||||||
|
LiftAP : AP -> PrAP_none ;
|
||||||
|
LiftCN : CN -> PrCN_none ;
|
||||||
|
|
||||||
|
LiftAdv : Adv -> PrAdv_none ;
|
||||||
|
LiftAdV : AdV -> PrAdv_none ;
|
||||||
|
|
||||||
|
|
||||||
|
------- Chunk
|
||||||
|
|
||||||
|
cat
|
||||||
|
Chunks ;
|
||||||
|
Chunk ;
|
||||||
|
|
||||||
|
fun
|
||||||
|
OneChunk : Chunk -> Chunks ;
|
||||||
|
PlusChunk : Chunk -> Chunks -> Chunks ;
|
||||||
|
|
||||||
|
ChunkPhr : Chunks -> Phr ;
|
||||||
|
|
||||||
|
fun
|
||||||
|
|
||||||
|
AP_Chunk : AP -> Chunk ;
|
||||||
|
AdA_Chunk : AdA -> Chunk ;
|
||||||
|
Adv_Chunk : Adv -> Chunk ;
|
||||||
|
AdV_Chunk : AdV -> Chunk ;
|
||||||
|
AdN_Chunk : AdN -> Chunk ;
|
||||||
|
Cl_Chunk : PrCl_none -> Chunk ;
|
||||||
|
QCl_Chunk : PrQCl_none -> Chunk ;
|
||||||
|
CN_Pl_Chunk : CN -> Chunk ;
|
||||||
|
CN_Sg_Chunk : CN -> Chunk ;
|
||||||
|
CN_Pl_Gen_Chunk : CN -> Chunk ;
|
||||||
|
CN_Sg_Gen_Chunk : CN -> Chunk ;
|
||||||
|
Conj_Chunk : Conj -> Chunk ;
|
||||||
|
IAdv_Chunk : IAdv -> Chunk ;
|
||||||
|
IP_Chunk : IP -> Chunk ;
|
||||||
|
NP_Nom_Chunk : NP -> Chunk ;
|
||||||
|
NP_Acc_Chunk : NP -> Chunk ;
|
||||||
|
NP_Gen_Chunk : NP -> Chunk ;
|
||||||
|
Numeral_Nom_Chunk : Numeral -> Chunk ;
|
||||||
|
Numeral_Gen_Chunk : Numeral -> Chunk ;
|
||||||
|
Ord_Nom_Chunk : Ord -> Chunk ;
|
||||||
|
Ord_Gen_Chunk : Ord -> Chunk ;
|
||||||
|
Predet_Chunk : Predet -> Chunk ;
|
||||||
|
Prep_Chunk : Prep -> Chunk ;
|
||||||
|
RP_Nom_Chunk : RP -> Chunk ;
|
||||||
|
RP_Gen_Chunk : RP -> Chunk ;
|
||||||
|
RP_Acc_Chunk : RP -> Chunk ;
|
||||||
|
Subj_Chunk : Subj -> Chunk ;
|
||||||
|
|
||||||
|
VP_none_Chunk, VP_none_inf_Chunk : PrVP_none -> Chunk ;
|
||||||
|
VP_np_Chunk, VP_np_inf_Chunk : PrVP_np -> Chunk ;
|
||||||
|
VP_s_Chunk, VP_s_inf_Chunk : PrVP_s -> Chunk ;
|
||||||
|
VP_v_Chunk, VP_v_inf_Chunk : PrVP_v -> Chunk ;
|
||||||
|
VP_a_Chunk, VP_a_inf_Chunk : PrVP_a -> Chunk ;
|
||||||
|
VP_q_Chunk, VP_q_inf_Chunk : PrVP_q -> Chunk ;
|
||||||
|
VP_np_np_Chunk, VP_np_np_inf_Chunk : PrVP_np_np -> Chunk ;
|
||||||
|
VP_np_s_Chunk, VP_np_s_inf_Chunk : PrVP_np_s -> Chunk ;
|
||||||
|
VP_np_v_Chunk, VP_np_v_inf_Chunk : PrVP_np_v -> Chunk ;
|
||||||
|
VP_np_q_Chunk, VP_np_q_inf_Chunk : PrVP_np_q -> Chunk ;
|
||||||
|
VP_np_a_Chunk, VP_np_a_inf_Chunk : PrVP_np_a -> Chunk ;
|
||||||
|
|
||||||
|
V_none_prespart_Chunk, V_none_pastpart_Chunk : PrV_none -> Chunk ;
|
||||||
|
V_np_prespart_Chunk, V_np_pastpart_Chunk : PrV_np -> Chunk ;
|
||||||
|
V_s_prespart_Chunk, V_s_pastpart_Chunk : PrV_s -> Chunk ;
|
||||||
|
V_v_prespart_Chunk, V_v_pastpart_Chunk : PrV_v -> Chunk ;
|
||||||
|
V_q_prespart_Chunk, V_q_pastpart_Chunk : PrV_q -> Chunk ;
|
||||||
|
V_a_prespart_Chunk, V_a_pastpart_Chunk : PrV_q -> Chunk ;
|
||||||
|
|
||||||
|
V_np_np_prespart_Chunk, V_np_np_pastpart_Chunk : PrV_np_np -> Chunk ;
|
||||||
|
V_np_s_prespart_Chunk, V_np_s_pastpart_Chunk : PrV_np_s -> Chunk ;
|
||||||
|
V_np_v_prespart_Chunk, V_np_v_pastpart_Chunk : PrV_np_v -> Chunk ;
|
||||||
|
V_np_q_prespart_Chunk, V_np_q_pastpart_Chunk : PrV_np_q -> Chunk ;
|
||||||
|
V_np_a_prespart_Chunk, V_np_a_pastpart_Chunk : PrV_np_q -> Chunk ;
|
||||||
|
|
||||||
|
refl_SgP1_Chunk,
|
||||||
|
refl_SgP2_Chunk,
|
||||||
|
refl_SgP3_Chunk,
|
||||||
|
refl_PlP1_Chunk,
|
||||||
|
refl_PlP2_Chunk,
|
||||||
|
refl_PlP3_Chunk : Chunk ;
|
||||||
|
neg_Chunk : Chunk ;
|
||||||
|
copula_Chunk : Chunk ;
|
||||||
|
copula_neg_Chunk : Chunk ;
|
||||||
|
copula_inf_Chunk : Chunk ;
|
||||||
|
past_copula_Chunk : Chunk ;
|
||||||
|
past_copula_neg_Chunk : Chunk ;
|
||||||
|
future_Chunk : Chunk ;
|
||||||
|
future_neg_Chunk : Chunk ;
|
||||||
|
cond_Chunk : Chunk ;
|
||||||
|
cond_neg_Chunk : Chunk ;
|
||||||
|
perfect_Chunk : Chunk ;
|
||||||
|
perfect_neg_Chunk : Chunk ;
|
||||||
|
past_perfect_Chunk : Chunk ;
|
||||||
|
past_perfect_neg_Chunk : Chunk ;
|
||||||
|
|
||||||
|
}
|
||||||
241
lib/src/experimental/SmallPredEng.gf
Normal file
241
lib/src/experimental/SmallPredEng.gf
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
concrete SmallPredEng of SmallPred =
|
||||||
|
RGLBaseEng - [Pol,Tense],
|
||||||
|
|
||||||
|
NDPredEng [
|
||||||
|
Ant,NP,Utt,IP,IAdv,IComp,Conj,
|
||||||
|
PrV_none, PrV_np , PrV_v , PrV_s , PrV_q , PrV_a , PrV_n ,
|
||||||
|
PrV_np_np , PrV_np_v , PrV_np_s , PrV_np_q , PrV_np_a , PrV_np_n ,
|
||||||
|
|
||||||
|
Tense ,
|
||||||
|
Pol ,
|
||||||
|
TPres, TPast, TFut, TCond,
|
||||||
|
PPos, PNeg,
|
||||||
|
ASimul, AAnter,
|
||||||
|
PrAdv_none ,
|
||||||
|
PrS,
|
||||||
|
PrAP_none ,
|
||||||
|
PrCN_none,
|
||||||
|
UttPrS
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
NDLiftEng [
|
||||||
|
CN,AP,V,V2,VV,VS,VA,VQ,V2V,V2S,V2Q,V2A,V3,
|
||||||
|
PrV_none, PrV_np , PrV_v , PrV_s , PrV_q , PrV_a , PrV_n ,
|
||||||
|
PrV_np_np , PrV_np_v , PrV_np_s , PrV_np_q , PrV_np_a , PrV_np_n ,
|
||||||
|
|
||||||
|
LiftV,
|
||||||
|
LiftV2,
|
||||||
|
LiftVS,
|
||||||
|
LiftVQ,
|
||||||
|
LiftVV,
|
||||||
|
LiftVA,
|
||||||
|
LiftVN,
|
||||||
|
|
||||||
|
LiftV3,
|
||||||
|
LiftV2S,
|
||||||
|
LiftV2Q,
|
||||||
|
LiftV2V,
|
||||||
|
LiftV2A,
|
||||||
|
LiftV2N,
|
||||||
|
|
||||||
|
LiftAP,
|
||||||
|
LiftCN,
|
||||||
|
|
||||||
|
LiftAdv,
|
||||||
|
LiftAdV
|
||||||
|
],
|
||||||
|
|
||||||
|
ChunkEng [
|
||||||
|
Chunks,
|
||||||
|
Chunk,
|
||||||
|
|
||||||
|
OneChunk,
|
||||||
|
PlusChunk,
|
||||||
|
|
||||||
|
ChunkPhr,
|
||||||
|
|
||||||
|
AP_Chunk,
|
||||||
|
AdA_Chunk,
|
||||||
|
Adv_Chunk,
|
||||||
|
AdV_Chunk,
|
||||||
|
AdN_Chunk,
|
||||||
|
CN_Pl_Chunk,
|
||||||
|
CN_Sg_Chunk,
|
||||||
|
CN_Pl_Gen_Chunk,
|
||||||
|
CN_Sg_Gen_Chunk,
|
||||||
|
Conj_Chunk,
|
||||||
|
IAdv_Chunk,
|
||||||
|
IP_Chunk,
|
||||||
|
NP_Nom_Chunk,
|
||||||
|
NP_Acc_Chunk,
|
||||||
|
NP_Gen_Chunk,
|
||||||
|
Numeral_Nom_Chunk,
|
||||||
|
Numeral_Gen_Chunk,
|
||||||
|
Ord_Nom_Chunk,
|
||||||
|
Ord_Gen_Chunk,
|
||||||
|
Predet_Chunk,
|
||||||
|
Prep_Chunk,
|
||||||
|
RP_Nom_Chunk,
|
||||||
|
RP_Gen_Chunk,
|
||||||
|
RP_Acc_Chunk,
|
||||||
|
Subj_Chunk,
|
||||||
|
|
||||||
|
V_none_prespart_Chunk, V_none_pastpart_Chunk,
|
||||||
|
V_np_prespart_Chunk, V_np_pastpart_Chunk,
|
||||||
|
V_s_prespart_Chunk, V_s_pastpart_Chunk,
|
||||||
|
V_v_prespart_Chunk, V_v_pastpart_Chunk,
|
||||||
|
V_q_prespart_Chunk, V_q_pastpart_Chunk,
|
||||||
|
V_a_prespart_Chunk, V_a_pastpart_Chunk,
|
||||||
|
|
||||||
|
V_np_np_prespart_Chunk, V_np_np_pastpart_Chunk,
|
||||||
|
V_np_s_prespart_Chunk, V_np_s_pastpart_Chunk,
|
||||||
|
V_np_v_prespart_Chunk, V_np_v_pastpart_Chunk,
|
||||||
|
V_np_q_prespart_Chunk, V_np_q_pastpart_Chunk,
|
||||||
|
V_np_a_prespart_Chunk, V_np_a_pastpart_Chunk,
|
||||||
|
|
||||||
|
refl_SgP1_Chunk,
|
||||||
|
refl_SgP2_Chunk,
|
||||||
|
refl_SgP3_Chunk,
|
||||||
|
refl_PlP1_Chunk,
|
||||||
|
refl_PlP2_Chunk,
|
||||||
|
refl_PlP3_Chunk,
|
||||||
|
neg_Chunk,
|
||||||
|
copula_Chunk,
|
||||||
|
copula_neg_Chunk,
|
||||||
|
copula_inf_Chunk,
|
||||||
|
past_copula_Chunk,
|
||||||
|
past_copula_neg_Chunk,
|
||||||
|
future_Chunk,
|
||||||
|
future_neg_Chunk,
|
||||||
|
cond_Chunk,
|
||||||
|
cond_neg_Chunk,
|
||||||
|
perfect_Chunk,
|
||||||
|
perfect_neg_Chunk,
|
||||||
|
past_perfect_Chunk,
|
||||||
|
past_perfect_neg_Chunk
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
** open (P=PredEng), PredInstanceEng in {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
PrVP_none , PrVP_np , PrVP_v , PrVP_s , PrVP_q , PrVP_a , PrVP_n ,
|
||||||
|
PrVP_np_np , PrVP_np_v , PrVP_np_s , PrVP_np_q , PrVP_np_a , PrVP_np_n
|
||||||
|
= {
|
||||||
|
v : VAgr => Str ;
|
||||||
|
inf : VVType => Str ;
|
||||||
|
qq : VAgr => Str * Str ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PrCl_none
|
||||||
|
= {s : Str ; q : Str} ;
|
||||||
|
PrQCl_none
|
||||||
|
= {s : Str} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
UseV_none,
|
||||||
|
UseV_np,
|
||||||
|
UseV_v,
|
||||||
|
UseV_s,
|
||||||
|
UseV_a,
|
||||||
|
UseV_q,
|
||||||
|
UseV_n,
|
||||||
|
UseV_np_np,
|
||||||
|
UseV_np_v,
|
||||||
|
UseV_np_s,
|
||||||
|
UseV_np_a,
|
||||||
|
UseV_np_q,
|
||||||
|
UseV_np_n
|
||||||
|
= \a,t,p,v -> mkVP (P.UseV P.aNone a t p v) ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
mkVP : PrVerbPhrase -> SmallPredEng.PrVP_none = \vp ->
|
||||||
|
lin PrVP_none {
|
||||||
|
v = \\a =>
|
||||||
|
let
|
||||||
|
vv = vp.v ! a ;
|
||||||
|
vpa = vagr2agr a ;
|
||||||
|
in
|
||||||
|
vv.p1 ++ vp.adV ++ vv.p2 ++ vv.p3 ++ vp.adj ! vpa ++
|
||||||
|
vp.c1 ++ vp.obj1.p1 ! vpa ++ vp.c2 ++ vp.obj2.p1 ! vpa ++ vp.adv ++ vp.ext ;
|
||||||
|
inf = \\vt => infVP vt defaultAgr vp ;
|
||||||
|
qq = \\a =>
|
||||||
|
let
|
||||||
|
vv = vp.qforms ! a ;
|
||||||
|
vpa = vagr2agr a ;
|
||||||
|
in
|
||||||
|
<vv.p1, vp.adV ++ vv.p2 ++ vp.adj ! vpa ++
|
||||||
|
vp.c1 ++ vp.obj1.p1 ! vpa ++ vp.c2 ++ vp.obj2.p1 ! vpa ++ vp.adv ++ vp.ext> ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
UseAP_none = \a,t,p,v -> mkVP (P.UseAP P.aNone a t p v) ;
|
||||||
|
UseAdv_none = \a,t,p,v -> mkVP (P.UseAdv P.aNone a t p v) ;
|
||||||
|
UseCN_none = \a,t,p,v -> mkVP (P.UseCN P.aNone a t p v) ;
|
||||||
|
UseNP_none = \a,t,p,v -> mkVP (P.UseNP a t p v) ;
|
||||||
|
|
||||||
|
-- QuestCl_none cl = {s = cl.q} ;
|
||||||
|
|
||||||
|
UseCl_none cl = lin PrS {s = cl.s} ;
|
||||||
|
-- UseQCl_none cl = lin PrS cl ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
QuestVP_none,
|
||||||
|
|
||||||
|
|
||||||
|
QuestIAdv_none,
|
||||||
|
QuestIComp_none,
|
||||||
|
|
||||||
|
|
||||||
|
PrImpSg,
|
||||||
|
PrImpPl
|
||||||
|
-}
|
||||||
|
|
||||||
|
PredVP_none, PredVP_np, PredVP_v, PredVP_a, PredVP_q, PredVP_s,
|
||||||
|
PredVP_np_np, PredVP_np_v, PredVP_np_a, PredVP_np_q, PredVP_np_s
|
||||||
|
= \np, vp -> {
|
||||||
|
s = appSubjCase np ++ vp.v ! (agr2vagr np.a) ;
|
||||||
|
q = let qq = vp.qq ! (agr2vagr np.a) in qq.p1 ++ appSubjCase np ++ qq.p2
|
||||||
|
} ;
|
||||||
|
|
||||||
|
Pred2VP_none, Pred2VP_np, Pred2VP_v, Pred2VP_a, Pred2VP_q, Pred2VP_s,
|
||||||
|
Pred2VP_np_np, Pred2VP_np_v, Pred2VP_np_a, Pred2VP_np_q, Pred2VP_np_s
|
||||||
|
= \s,v,o -> {
|
||||||
|
s = appSubjCase s ++ v.v ! (agr2vagr s.a) ++ appObjCase o ;
|
||||||
|
q = let qq = v.qq ! (agr2vagr s.a) in qq.p1 ++ appSubjCase s ++ qq.p2 ++ appObjCase o ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
Cl_Chunk cl = cl ;
|
||||||
|
QCl_Chunk cl = cl ;
|
||||||
|
|
||||||
|
VP_none_Chunk,
|
||||||
|
VP_np_Chunk,
|
||||||
|
VP_s_Chunk,
|
||||||
|
VP_v_Chunk,
|
||||||
|
VP_a_Chunk,
|
||||||
|
VP_q_Chunk,
|
||||||
|
VP_np_np_Chunk,
|
||||||
|
VP_np_s_Chunk,
|
||||||
|
VP_np_a_Chunk,
|
||||||
|
VP_np_q_Chunk,
|
||||||
|
VP_np_v_Chunk
|
||||||
|
= \vp ->
|
||||||
|
{s = vp.v ! (VASgP1 | VASgP3 | VAPl)} ;
|
||||||
|
|
||||||
|
VP_none_inf_Chunk,
|
||||||
|
VP_np_inf_Chunk,
|
||||||
|
VP_s_inf_Chunk,
|
||||||
|
VP_a_inf_Chunk,
|
||||||
|
VP_q_inf_Chunk,
|
||||||
|
VP_v_inf_Chunk,
|
||||||
|
VP_np_np_inf_Chunk,
|
||||||
|
VP_np_s_inf_Chunk,
|
||||||
|
VP_np_a_inf_Chunk,
|
||||||
|
VP_np_q_inf_Chunk,
|
||||||
|
VP_np_v_inf_Chunk
|
||||||
|
= \vp -> {s = vp.inf ! vvInfinitive} ;
|
||||||
|
|
||||||
|
}
|
||||||
184
lib/src/experimental/SmallPredFin.gf
Normal file
184
lib/src/experimental/SmallPredFin.gf
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
concrete SmallPredFin of SmallPred =
|
||||||
|
RGLBaseFin - [Pol,Tense],
|
||||||
|
|
||||||
|
NDPredFin [
|
||||||
|
Ant,NP,Utt,IP,IAdv,IComp,Conj,
|
||||||
|
PrV_none, PrV_np , PrV_v , PrV_s , PrV_q , PrV_a , PrV_n ,
|
||||||
|
PrV_np_np , PrV_np_v , PrV_np_s , PrV_np_q , PrV_np_a , PrV_np_n ,
|
||||||
|
|
||||||
|
Tense ,
|
||||||
|
Pol ,
|
||||||
|
UttPrS,
|
||||||
|
|
||||||
|
|
||||||
|
PrVP_none , PrVP_np , PrVP_v , PrVP_s , PrVP_q , PrVP_a , PrVP_n ,
|
||||||
|
PrVP_np_np , PrVP_np_v , PrVP_np_s , PrVP_np_q , PrVP_np_a , PrVP_np_n ,
|
||||||
|
|
||||||
|
PrCl_none ,
|
||||||
|
PrQCl_none ,
|
||||||
|
PrAdv_none ,
|
||||||
|
PrS ,
|
||||||
|
PrAP_none ,
|
||||||
|
PrCN_none ,
|
||||||
|
TPres, TPast, TFut, TCond,
|
||||||
|
PPos, PNeg,
|
||||||
|
ASimul, AAnter,
|
||||||
|
|
||||||
|
UseV_none,
|
||||||
|
UseV_np,
|
||||||
|
UseV_v,
|
||||||
|
UseV_s,
|
||||||
|
UseV_a,
|
||||||
|
UseV_q,
|
||||||
|
UseV_n,
|
||||||
|
UseV_np_np,
|
||||||
|
UseV_np_v,
|
||||||
|
UseV_np_s,
|
||||||
|
UseV_np_a,
|
||||||
|
UseV_np_q,
|
||||||
|
UseV_np_n,
|
||||||
|
|
||||||
|
UseAP_none,
|
||||||
|
UseAdv_none,
|
||||||
|
UseCN_none,
|
||||||
|
UseNP_none,
|
||||||
|
|
||||||
|
QuestVP_none,
|
||||||
|
QuestCl_none,
|
||||||
|
|
||||||
|
QuestIAdv_none,
|
||||||
|
QuestIComp_none,
|
||||||
|
UseCl_none,
|
||||||
|
UseQCl_none,
|
||||||
|
|
||||||
|
PrImpSg,
|
||||||
|
PrImpPl
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
NDLiftFin [
|
||||||
|
CN,AP,V,V2,VV,VS,VA,VQ,V2V,V2S,V2Q,V2A,V3,
|
||||||
|
PrV_none, PrV_np , PrV_v , PrV_s , PrV_q , PrV_a , PrV_n ,
|
||||||
|
PrV_np_np , PrV_np_v , PrV_np_s , PrV_np_q , PrV_np_a , PrV_np_n ,
|
||||||
|
|
||||||
|
LiftV,
|
||||||
|
LiftV2,
|
||||||
|
LiftVS,
|
||||||
|
LiftVQ,
|
||||||
|
LiftVV,
|
||||||
|
LiftVA,
|
||||||
|
LiftVN,
|
||||||
|
|
||||||
|
LiftV3,
|
||||||
|
LiftV2S,
|
||||||
|
LiftV2Q,
|
||||||
|
LiftV2V,
|
||||||
|
LiftV2A,
|
||||||
|
LiftV2N,
|
||||||
|
|
||||||
|
LiftAP,
|
||||||
|
LiftCN,
|
||||||
|
|
||||||
|
LiftAdv,
|
||||||
|
LiftAdV
|
||||||
|
],
|
||||||
|
|
||||||
|
ChunkFin [
|
||||||
|
Chunks,
|
||||||
|
Chunk,
|
||||||
|
|
||||||
|
OneChunk,
|
||||||
|
PlusChunk,
|
||||||
|
|
||||||
|
ChunkPhr,
|
||||||
|
|
||||||
|
AP_Chunk,
|
||||||
|
AdA_Chunk,
|
||||||
|
Adv_Chunk,
|
||||||
|
AdV_Chunk,
|
||||||
|
AdN_Chunk,
|
||||||
|
Cl_Chunk,
|
||||||
|
QCl_Chunk,
|
||||||
|
CN_Pl_Chunk,
|
||||||
|
CN_Sg_Chunk,
|
||||||
|
CN_Pl_Gen_Chunk,
|
||||||
|
CN_Sg_Gen_Chunk,
|
||||||
|
Conj_Chunk,
|
||||||
|
IAdv_Chunk,
|
||||||
|
IP_Chunk,
|
||||||
|
NP_Nom_Chunk,
|
||||||
|
NP_Acc_Chunk,
|
||||||
|
NP_Gen_Chunk,
|
||||||
|
Numeral_Nom_Chunk,
|
||||||
|
Numeral_Gen_Chunk,
|
||||||
|
Ord_Nom_Chunk,
|
||||||
|
Ord_Gen_Chunk,
|
||||||
|
Predet_Chunk,
|
||||||
|
Prep_Chunk,
|
||||||
|
RP_Nom_Chunk,
|
||||||
|
RP_Gen_Chunk,
|
||||||
|
RP_Acc_Chunk,
|
||||||
|
Subj_Chunk,
|
||||||
|
|
||||||
|
VP_none_Chunk, VP_none_inf_Chunk,
|
||||||
|
VP_np_Chunk, VP_np_inf_Chunk,
|
||||||
|
VP_s_Chunk, VP_s_inf_Chunk,
|
||||||
|
VP_v_Chunk, VP_v_inf_Chunk,
|
||||||
|
VP_a_Chunk, VP_a_inf_Chunk,
|
||||||
|
VP_q_Chunk, VP_q_inf_Chunk,
|
||||||
|
VP_np_np_Chunk, VP_np_np_inf_Chunk,
|
||||||
|
VP_np_s_Chunk, VP_np_s_inf_Chunk,
|
||||||
|
VP_np_v_Chunk, VP_np_v_inf_Chunk,
|
||||||
|
VP_np_q_Chunk, VP_np_q_inf_Chunk,
|
||||||
|
VP_np_a_Chunk, VP_np_a_inf_Chunk,
|
||||||
|
|
||||||
|
V_none_prespart_Chunk, V_none_pastpart_Chunk,
|
||||||
|
V_np_prespart_Chunk, V_np_pastpart_Chunk,
|
||||||
|
V_s_prespart_Chunk, V_s_pastpart_Chunk,
|
||||||
|
V_v_prespart_Chunk, V_v_pastpart_Chunk,
|
||||||
|
V_q_prespart_Chunk, V_q_pastpart_Chunk,
|
||||||
|
V_a_prespart_Chunk, V_a_pastpart_Chunk,
|
||||||
|
|
||||||
|
V_np_np_prespart_Chunk, V_np_np_pastpart_Chunk,
|
||||||
|
V_np_s_prespart_Chunk, V_np_s_pastpart_Chunk,
|
||||||
|
V_np_v_prespart_Chunk, V_np_v_pastpart_Chunk,
|
||||||
|
V_np_q_prespart_Chunk, V_np_q_pastpart_Chunk,
|
||||||
|
V_np_a_prespart_Chunk, V_np_a_pastpart_Chunk,
|
||||||
|
|
||||||
|
refl_SgP1_Chunk,
|
||||||
|
refl_SgP2_Chunk,
|
||||||
|
refl_SgP3_Chunk,
|
||||||
|
refl_PlP1_Chunk,
|
||||||
|
refl_PlP2_Chunk,
|
||||||
|
refl_PlP3_Chunk,
|
||||||
|
neg_Chunk,
|
||||||
|
copula_Chunk,
|
||||||
|
copula_neg_Chunk,
|
||||||
|
copula_inf_Chunk,
|
||||||
|
past_copula_Chunk,
|
||||||
|
past_copula_neg_Chunk,
|
||||||
|
future_Chunk,
|
||||||
|
future_neg_Chunk,
|
||||||
|
cond_Chunk,
|
||||||
|
cond_neg_Chunk,
|
||||||
|
perfect_Chunk,
|
||||||
|
perfect_neg_Chunk,
|
||||||
|
past_perfect_Chunk,
|
||||||
|
past_perfect_neg_Chunk
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
** open (ND=NDPredFin) in {
|
||||||
|
|
||||||
|
lin
|
||||||
|
PredVP_none, PredVP_np, PredVP_v, PredVP_a, PredVP_q, PredVP_s,
|
||||||
|
PredVP_np_np, PredVP_np_v, PredVP_np_a, PredVP_np_q, PredVP_np_s
|
||||||
|
= ND.PredVP_none ;
|
||||||
|
|
||||||
|
Pred2VP_none, Pred2VP_np, Pred2VP_v, Pred2VP_a, Pred2VP_q, Pred2VP_s,
|
||||||
|
Pred2VP_np_np, Pred2VP_np_v, Pred2VP_np_a, Pred2VP_np_q, Pred2VP_np_s
|
||||||
|
= \s,v,o -> ND.PredVP_none s (ND.ComplV2_none v o) ;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
241
lib/src/experimental/SmallPredSwe.gf
Normal file
241
lib/src/experimental/SmallPredSwe.gf
Normal file
@@ -0,0 +1,241 @@
|
|||||||
|
concrete SmallPredSwe of SmallPred =
|
||||||
|
RGLBaseSwe - [Pol,Tense],
|
||||||
|
|
||||||
|
NDPredSwe [
|
||||||
|
Ant,NP,Utt,IP,IAdv,IComp,Conj,
|
||||||
|
PrV_none, PrV_np , PrV_v , PrV_s , PrV_q , PrV_a , PrV_n ,
|
||||||
|
PrV_np_np , PrV_np_v , PrV_np_s , PrV_np_q , PrV_np_a , PrV_np_n ,
|
||||||
|
|
||||||
|
Tense ,
|
||||||
|
Pol ,
|
||||||
|
TPres, TPast, TFut, TCond,
|
||||||
|
PPos, PNeg,
|
||||||
|
ASimul, AAnter,
|
||||||
|
PrAdv_none ,
|
||||||
|
PrS,
|
||||||
|
PrAP_none ,
|
||||||
|
PrCN_none,
|
||||||
|
UttPrS
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
NDLiftSwe [
|
||||||
|
CN,AP,V,V2,VV,VS,VA,VQ,V2V,V2S,V2Q,V2A,V3,
|
||||||
|
PrV_none, PrV_np , PrV_v , PrV_s , PrV_q , PrV_a , PrV_n ,
|
||||||
|
PrV_np_np , PrV_np_v , PrV_np_s , PrV_np_q , PrV_np_a , PrV_np_n ,
|
||||||
|
|
||||||
|
LiftV,
|
||||||
|
LiftV2,
|
||||||
|
LiftVS,
|
||||||
|
LiftVQ,
|
||||||
|
LiftVV,
|
||||||
|
LiftVA,
|
||||||
|
LiftVN,
|
||||||
|
|
||||||
|
LiftV3,
|
||||||
|
LiftV2S,
|
||||||
|
LiftV2Q,
|
||||||
|
LiftV2V,
|
||||||
|
LiftV2A,
|
||||||
|
LiftV2N,
|
||||||
|
|
||||||
|
LiftAP,
|
||||||
|
LiftCN,
|
||||||
|
|
||||||
|
LiftAdv,
|
||||||
|
LiftAdV
|
||||||
|
],
|
||||||
|
|
||||||
|
ChunkSwe [
|
||||||
|
Chunks,
|
||||||
|
Chunk,
|
||||||
|
|
||||||
|
OneChunk,
|
||||||
|
PlusChunk,
|
||||||
|
|
||||||
|
ChunkPhr,
|
||||||
|
|
||||||
|
AP_Chunk,
|
||||||
|
AdA_Chunk,
|
||||||
|
Adv_Chunk,
|
||||||
|
AdV_Chunk,
|
||||||
|
AdN_Chunk,
|
||||||
|
CN_Pl_Chunk,
|
||||||
|
CN_Sg_Chunk,
|
||||||
|
CN_Pl_Gen_Chunk,
|
||||||
|
CN_Sg_Gen_Chunk,
|
||||||
|
Conj_Chunk,
|
||||||
|
IAdv_Chunk,
|
||||||
|
IP_Chunk,
|
||||||
|
NP_Nom_Chunk,
|
||||||
|
NP_Acc_Chunk,
|
||||||
|
NP_Gen_Chunk,
|
||||||
|
Numeral_Nom_Chunk,
|
||||||
|
Numeral_Gen_Chunk,
|
||||||
|
Ord_Nom_Chunk,
|
||||||
|
Ord_Gen_Chunk,
|
||||||
|
Predet_Chunk,
|
||||||
|
Prep_Chunk,
|
||||||
|
RP_Nom_Chunk,
|
||||||
|
RP_Gen_Chunk,
|
||||||
|
RP_Acc_Chunk,
|
||||||
|
Subj_Chunk,
|
||||||
|
|
||||||
|
V_none_prespart_Chunk, V_none_pastpart_Chunk,
|
||||||
|
V_np_prespart_Chunk, V_np_pastpart_Chunk,
|
||||||
|
V_s_prespart_Chunk, V_s_pastpart_Chunk,
|
||||||
|
V_v_prespart_Chunk, V_v_pastpart_Chunk,
|
||||||
|
V_q_prespart_Chunk, V_q_pastpart_Chunk,
|
||||||
|
V_a_prespart_Chunk, V_a_pastpart_Chunk,
|
||||||
|
|
||||||
|
V_np_np_prespart_Chunk, V_np_np_pastpart_Chunk,
|
||||||
|
V_np_s_prespart_Chunk, V_np_s_pastpart_Chunk,
|
||||||
|
V_np_v_prespart_Chunk, V_np_v_pastpart_Chunk,
|
||||||
|
V_np_q_prespart_Chunk, V_np_q_pastpart_Chunk,
|
||||||
|
V_np_a_prespart_Chunk, V_np_a_pastpart_Chunk,
|
||||||
|
|
||||||
|
refl_SgP1_Chunk,
|
||||||
|
refl_SgP2_Chunk,
|
||||||
|
refl_SgP3_Chunk,
|
||||||
|
refl_PlP1_Chunk,
|
||||||
|
refl_PlP2_Chunk,
|
||||||
|
refl_PlP3_Chunk,
|
||||||
|
neg_Chunk,
|
||||||
|
copula_Chunk,
|
||||||
|
copula_neg_Chunk,
|
||||||
|
copula_inf_Chunk,
|
||||||
|
past_copula_Chunk,
|
||||||
|
past_copula_neg_Chunk,
|
||||||
|
future_Chunk,
|
||||||
|
future_neg_Chunk,
|
||||||
|
cond_Chunk,
|
||||||
|
cond_neg_Chunk,
|
||||||
|
perfect_Chunk,
|
||||||
|
perfect_neg_Chunk,
|
||||||
|
past_perfect_Chunk,
|
||||||
|
past_perfect_neg_Chunk
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
** open (P=PredSwe), PredInstanceSwe in {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
PrVP_none , PrVP_np , PrVP_v , PrVP_s , PrVP_q , PrVP_a , PrVP_n ,
|
||||||
|
PrVP_np_np , PrVP_np_v , PrVP_np_s , PrVP_np_q , PrVP_np_a , PrVP_np_n
|
||||||
|
= {
|
||||||
|
v : VAgr => Str ;
|
||||||
|
inf : VVType => Str ;
|
||||||
|
qq : VAgr => Str * Str ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PrCl_none
|
||||||
|
= {s : Str ; q : Str} ;
|
||||||
|
PrQCl_none
|
||||||
|
= {s : Str} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
UseV_none,
|
||||||
|
UseV_np,
|
||||||
|
UseV_v,
|
||||||
|
UseV_s,
|
||||||
|
UseV_a,
|
||||||
|
UseV_q,
|
||||||
|
UseV_n,
|
||||||
|
UseV_np_np,
|
||||||
|
UseV_np_v,
|
||||||
|
UseV_np_s,
|
||||||
|
UseV_np_a,
|
||||||
|
UseV_np_q,
|
||||||
|
UseV_np_n
|
||||||
|
= \a,t,p,v -> mkVP (P.UseV P.aNone a t p v) ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
mkVP : PrVerbPhrase -> SmallPredSwe.PrVP_none = \vp ->
|
||||||
|
lin PrVP_none {
|
||||||
|
v = \\a =>
|
||||||
|
let
|
||||||
|
vv = vp.v ! a ;
|
||||||
|
vpa = vagr2agr a ;
|
||||||
|
in
|
||||||
|
vv.p1 ++ vp.adV ++ vv.p2 ++ vv.p3 ++ vp.adj ! vpa ++
|
||||||
|
vp.c1 ++ vp.obj1.p1 ! vpa ++ vp.c2 ++ vp.obj2.p1 ! vpa ++ vp.adv ++ vp.ext ;
|
||||||
|
inf = \\vt => infVP vt defaultAgr vp ;
|
||||||
|
qq = \\a =>
|
||||||
|
let
|
||||||
|
vv = vp.v ! a ;
|
||||||
|
vpa = vagr2agr a ;
|
||||||
|
in
|
||||||
|
<vv.p1, vp.adV ++ vv.p2 ++ vv.p3 ++ vp.adj ! vpa ++
|
||||||
|
vp.c1 ++ vp.obj1.p1 ! vpa ++ vp.c2 ++ vp.obj2.p1 ! vpa ++ vp.adv ++ vp.ext> ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
UseAP_none = \a,t,p,v -> mkVP (P.UseAP P.aNone a t p v) ;
|
||||||
|
UseAdv_none = \a,t,p,v -> mkVP (P.UseAdv P.aNone a t p v) ;
|
||||||
|
UseCN_none = \a,t,p,v -> mkVP (P.UseCN P.aNone a t p v) ;
|
||||||
|
UseNP_none = \a,t,p,v -> mkVP (P.UseNP a t p v) ;
|
||||||
|
|
||||||
|
-- QuestCl_none cl = {s = cl.q} ;
|
||||||
|
|
||||||
|
UseCl_none cl = lin PrS {s = cl.s} ;
|
||||||
|
-- UseQCl_none cl = lin PrS cl ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
QuestVP_none,
|
||||||
|
|
||||||
|
|
||||||
|
QuestIAdv_none,
|
||||||
|
QuestIComp_none,
|
||||||
|
|
||||||
|
|
||||||
|
PrImpSg,
|
||||||
|
PrImpPl
|
||||||
|
-}
|
||||||
|
|
||||||
|
PredVP_none, PredVP_np, PredVP_v, PredVP_a, PredVP_q, PredVP_s,
|
||||||
|
PredVP_np_np, PredVP_np_v, PredVP_np_a, PredVP_np_q, PredVP_np_s
|
||||||
|
= \np, vp -> {
|
||||||
|
s = appSubjCase np ++ vp.v ! (agr2vagr np.a) ;
|
||||||
|
q = let qq = vp.qq ! (agr2vagr np.a) in qq.p1 ++ appSubjCase np ++ qq.p2
|
||||||
|
} ;
|
||||||
|
|
||||||
|
Pred2VP_none, Pred2VP_np, Pred2VP_v, Pred2VP_a, Pred2VP_q, Pred2VP_s,
|
||||||
|
Pred2VP_np_np, Pred2VP_np_v, Pred2VP_np_a, Pred2VP_np_q, Pred2VP_np_s
|
||||||
|
= \s,v,o -> {
|
||||||
|
s = appSubjCase s ++ v.v ! (agr2vagr s.a) ++ appObjCase o ;
|
||||||
|
q = let qq = v.qq ! (agr2vagr s.a) in qq.p1 ++ appSubjCase s ++ qq.p2 ++ appObjCase o ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
Cl_Chunk cl = cl ;
|
||||||
|
QCl_Chunk cl = cl ;
|
||||||
|
|
||||||
|
VP_none_Chunk,
|
||||||
|
VP_np_Chunk,
|
||||||
|
VP_s_Chunk,
|
||||||
|
VP_v_Chunk,
|
||||||
|
VP_a_Chunk,
|
||||||
|
VP_q_Chunk,
|
||||||
|
VP_np_np_Chunk,
|
||||||
|
VP_np_s_Chunk,
|
||||||
|
VP_np_a_Chunk,
|
||||||
|
VP_np_q_Chunk,
|
||||||
|
VP_np_v_Chunk
|
||||||
|
= \vp ->
|
||||||
|
{s = vp.v ! UUnit} ;
|
||||||
|
|
||||||
|
VP_none_inf_Chunk,
|
||||||
|
VP_np_inf_Chunk,
|
||||||
|
VP_s_inf_Chunk,
|
||||||
|
VP_a_inf_Chunk,
|
||||||
|
VP_q_inf_Chunk,
|
||||||
|
VP_v_inf_Chunk,
|
||||||
|
VP_np_np_inf_Chunk,
|
||||||
|
VP_np_s_inf_Chunk,
|
||||||
|
VP_np_a_inf_Chunk,
|
||||||
|
VP_np_q_inf_Chunk,
|
||||||
|
VP_np_v_inf_Chunk
|
||||||
|
= \vp -> {s = vp.inf ! vvInfinitive} ;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user