forked from GitHub/gf-core
upgraded resources, esp. romance
This commit is contained in:
@@ -31,6 +31,7 @@ incomplete concrete ClauseI of Clause = open Rules, Verbphrase in {
|
|||||||
QPredV np v = IntVP np (UseV v) ;
|
QPredV np v = IntVP np (UseV v) ;
|
||||||
QPredPassV np v = IntVP np (UsePassV v) ;
|
QPredPassV np v = IntVP np (UsePassV v) ;
|
||||||
QPredV2 np v x = IntVP np (ComplV2 v x) ;
|
QPredV2 np v x = IntVP np (ComplV2 v x) ;
|
||||||
|
QPredV3 np v x y = IntVP np (ComplV3 v x y) ;
|
||||||
QPredReflV2 np v = IntVP np (ComplReflV2 v) ;
|
QPredReflV2 np v = IntVP np (ComplReflV2 v) ;
|
||||||
QPredVS np v x = IntVP np (ComplVS v x) ;
|
QPredVS np v x = IntVP np (ComplVS v x) ;
|
||||||
QPredVV np v x = IntVP np (ComplVV v x) ;
|
QPredVV np v x = IntVP np (ComplVV v x) ;
|
||||||
@@ -47,9 +48,29 @@ incomplete concrete ClauseI of Clause = open Rules, Verbphrase in {
|
|||||||
QPredNP np v = IntVP np (PredNP v) ;
|
QPredNP np v = IntVP np (PredNP v) ;
|
||||||
QPredAdv np v = IntVP np (PredAdv v) ;
|
QPredAdv np v = IntVP np (PredAdv v) ;
|
||||||
|
|
||||||
|
QPredProgVP np vp = IntVP np (PredProgVP vp) ;
|
||||||
|
|
||||||
IPredV a v = PosVP a (UseV v) ;
|
IPredV a v = PosVP a (UseV v) ;
|
||||||
IPredV2 a v x = PosVP a (ComplV2 v x) ;
|
IPredV2 a v x = PosVP a (ComplV2 v x) ;
|
||||||
|
IPredPassV a v = PosVP a (UsePassV v) ;
|
||||||
|
IPredV3 a v x y = PosVP a (ComplV3 v x y) ;
|
||||||
|
IPredReflV2 a v = PosVP a (ComplReflV2 v) ;
|
||||||
|
IPredVS a v x = PosVP a (ComplVS v x) ;
|
||||||
|
IPredVV a v x = PosVP a (ComplVV v x) ;
|
||||||
|
IPredVQ a v x = PosVP a (ComplVQ v x) ;
|
||||||
|
IPredVA a v x = PosVP a (ComplVA v x) ;
|
||||||
|
IPredV2A a v x y = PosVP a (ComplV2A v x y) ;
|
||||||
|
IPredSubjV2V a v x y = PosVP a (ComplSubjV2V v x y) ;
|
||||||
|
IPredObjV2V a v x y = PosVP a (ComplObjV2V v x y) ;
|
||||||
|
IPredV2S a v x y = PosVP a (ComplV2S v x y) ;
|
||||||
|
IPredV2Q a v x y = PosVP a (ComplV2Q v x y) ;
|
||||||
|
|
||||||
IPredAP a v = PosVP a (PredAP v) ;
|
IPredAP a v = PosVP a (PredAP v) ;
|
||||||
|
IPredCN a v = PosVP a (PredCN v) ;
|
||||||
|
IPredNP a v = PosVP a (PredNP v) ;
|
||||||
|
IPredAdv a v = PosVP a (PredAdv v) ;
|
||||||
|
|
||||||
|
IPredProgVP a vp = PosVP a (PredProgVP vp) ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- Use VPs
|
-- Use VPs
|
||||||
|
|||||||
@@ -110,8 +110,8 @@ fun
|
|||||||
AdvPP : PP -> Adv ; -- "in London", "after the war"
|
AdvPP : PP -> Adv ; -- "in London", "after the war"
|
||||||
PrepNP : Prep -> NP -> PP ; -- "in London", "after the war"
|
PrepNP : Prep -> NP -> PP ; -- "in London", "after the war"
|
||||||
|
|
||||||
AdvCN : CN -> PP -> CN ; -- "house in London"
|
AdvCN : CN -> Adv -> CN ; -- "house in London"
|
||||||
AdvPN : PN -> PP -> NP ; -- "x to the power of k"
|
AdvNP : NP -> Adv -> NP ; -- "the house in London"
|
||||||
AdvAP : AdA -> AP -> AP ; -- "very good"
|
AdvAP : AdA -> AP -> AP ; -- "very good"
|
||||||
AdvAdv : AdA -> Adv -> Adv ; -- "very well"
|
AdvAdv : AdA -> Adv -> Adv ; -- "very well"
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ fun
|
|||||||
QuestPhrase : QS -> Phr ; -- "Do I walk?"
|
QuestPhrase : QS -> Phr ; -- "Do I walk?"
|
||||||
ImperOne, ImperMany : Imp -> Phr ; -- "Be a man!", "Be men!"
|
ImperOne, ImperMany : Imp -> Phr ; -- "Be a man!", "Be men!"
|
||||||
|
|
||||||
AdvCl : Cl -> Adv -> Cl ; -- "John walks in the park"
|
AdvCl : Cl -> Adv -> Cl ; -- "John walks in the park"
|
||||||
AdvVPI : VPI -> Adv -> VPI ; -- "walk in the park"
|
AdvVPI : VPI -> Adv -> VPI ; -- "walk in the park"
|
||||||
AdCPhr : AdC -> S -> Phr ; -- "Therefore, 2 is prime."
|
AdCPhr : AdC -> S -> Phr ; -- "Therefore, 2 is prime."
|
||||||
AdvPhr : Adv -> S -> Phr ; -- "In India, there are tigers."
|
AdvPhr : Adv -> S -> Phr ; -- "In India, there are tigers."
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ lin
|
|||||||
AdvCN = advCommNounPhrase ;
|
AdvCN = advCommNounPhrase ;
|
||||||
AdvAP = advAdjPhrase ;
|
AdvAP = advAdjPhrase ;
|
||||||
AdvAdv = cc2 ;
|
AdvAdv = cc2 ;
|
||||||
AdvPN pn pp = nameNounPhrase {s = \\c => pn.s ! c ++ pp.s ; g = pn.g} ;
|
AdvNP pn pp = {s = \\c => pn.s ! c ++ pp.s ; a = pn.a} ;
|
||||||
|
|
||||||
--3 Sentences and relative clauses
|
--3 Sentences and relative clauses
|
||||||
--
|
--
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
--# -path=.:../romance:../abstract:../../prelude
|
--# -path=.:../romance:../abstract:../../prelude
|
||||||
|
|
||||||
concrete ClauseFre of Clause = CategoriesFre **
|
concrete ClauseFre of Clause = CategoriesFre **
|
||||||
---- ClauseI with (Rules=RulesFre), (Verbphrase=VerbphraseFre) ;
|
|
||||||
ClauseRomance with (SyntaxRomance=SyntaxFre) ;
|
ClauseRomance with (SyntaxRomance=SyntaxFre) ;
|
||||||
|
|||||||
@@ -330,4 +330,9 @@ oper
|
|||||||
|
|
||||||
negNe = elisNe ; negPas = "pas" ;
|
negNe = elisNe ; negPas = "pas" ;
|
||||||
|
|
||||||
|
progressiveSats subj vp =
|
||||||
|
mkSatsCopula subj
|
||||||
|
(["en train"] ++ elisDe ++
|
||||||
|
vp.s ! VIInfinit ! (pgen2gen subj.g) ! subj.n ! subj.p) ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,7 +153,8 @@ oper
|
|||||||
VFin VFut n p => aller ! Indic Futur n p ;
|
VFin VFut n p => aller ! Indic Futur n p ;
|
||||||
VFin VCondit n p => aller ! Cond n p ;
|
VFin VCondit n p => aller ! Cond n p ;
|
||||||
VImper np => aller ! Imper np ;
|
VImper np => aller ! Imper np ;
|
||||||
VPart g n => aller ! Part (PPasse g n)
|
VPart g n => aller ! Part (PPasse g n) ;
|
||||||
|
VGer => aller ! Part PPres -- *en* allant
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- The full conjunction is a table on $VForm$:
|
-- The full conjunction is a table on $VForm$:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
--# -path=.:../romance:../../prelude
|
--# -path=.:../romance:../../prelude
|
||||||
|
|
||||||
instance SyntaxIta of SyntaxRomance =
|
instance SyntaxIta of SyntaxRomance =
|
||||||
TypesIta ** open Prelude, (CO=Coordination), MorphoIta in {
|
TypesIta ** open Prelude, (CO=Coordination), MorphoIta, BeschIta in {
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
|
||||||
@@ -275,4 +275,10 @@ oper
|
|||||||
|
|
||||||
negNe = "non" ; negPas = [] ;
|
negNe = "non" ; negPas = [] ;
|
||||||
|
|
||||||
|
progressiveSats subj vp =
|
||||||
|
mkSatsObject subj
|
||||||
|
(mkTransVerbDir (verbPres (stare_16 "stare") AEsse)) --- hack to reuse
|
||||||
|
(nameNounPhrase (mkProperName ( --- this function
|
||||||
|
vp.s ! VIGerund ! (pgen2gen subj.g) ! subj.n ! subj.p) Masc)) ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,7 +121,8 @@ oper
|
|||||||
VFin VFut n p => amare.s ! Fut n p ;
|
VFin VFut n p => amare.s ! Fut n p ;
|
||||||
VFin VCondit n p => amare.s ! Cond n p ;
|
VFin VCondit n p => amare.s ! Cond n p ;
|
||||||
VImper np => amare.s ! Imper np ;
|
VImper np => amare.s ! Imper np ;
|
||||||
VPart g n => amare.s ! Part PassP g n
|
VPart g n => amare.s ! Part PassP g n ;
|
||||||
|
VGer => amare.s ! Ger
|
||||||
} ;
|
} ;
|
||||||
aux = a
|
aux = a
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
sats2clause (mkSatsObject np v y) ;
|
sats2clause (mkSatsObject np v y) ;
|
||||||
SPredV3 subj verb obj1 obj2 =
|
SPredV3 subj verb obj1 obj2 =
|
||||||
sats2clause (insertObject (mkSatsObject subj verb obj1) verb.c3 verb.s3 obj2) ;
|
sats2clause (insertObject (mkSatsObject subj verb obj1) verb.c3 verb.s3 obj2) ;
|
||||||
|
|
||||||
SPredReflV2 subj verb =
|
SPredReflV2 subj verb =
|
||||||
sats2clause (
|
sats2clause (
|
||||||
mkSatsObject subj
|
mkSatsObject subj
|
||||||
@@ -22,7 +21,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse}
|
---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse}
|
||||||
---- this produces huge cf - find out why! AR 16/3/2005
|
---- this produces huge cf - find out why! AR 16/3/2005
|
||||||
(reflPronNounPhrase (pgen2gen subj.g) subj.n subj.p)) ;
|
(reflPronNounPhrase (pgen2gen subj.g) subj.n subj.p)) ;
|
||||||
|
|
||||||
SPredVS subj verb sent =
|
SPredVS subj verb sent =
|
||||||
sats2clause (
|
sats2clause (
|
||||||
insertExtrapos (mkSats subj verb)
|
insertExtrapos (mkSats subj verb)
|
||||||
@@ -49,7 +47,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSatsObject subj verb obj)
|
(mkSatsObject subj verb obj)
|
||||||
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
|
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
|
||||||
|
|
||||||
SPredVV subj verb vp =
|
SPredVV subj verb vp =
|
||||||
sats2clause (
|
sats2clause (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
@@ -70,7 +67,7 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen subj.g ! subj.n ! subj.p)
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen subj.g ! subj.n ! subj.p)
|
||||||
) ;
|
) ;
|
||||||
|
|
||||||
-- SPredProgVP
|
SPredProgVP np vp = sats2clause (progressiveSats np vp) ;
|
||||||
|
|
||||||
|
|
||||||
SPredAP subj adj =
|
SPredAP subj adj =
|
||||||
@@ -86,22 +83,19 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
|
|
||||||
QPredV np v =
|
QPredV np v =
|
||||||
sats2quest (mkSats (intNounPhrase np) v) ;
|
sats2quest (mkSats (intNounPhrase np) v) ;
|
||||||
|
|
||||||
QPredPassV subj v =
|
QPredPassV subj v =
|
||||||
sats2quest (mkSatsCopula (intNounPhrase subj) (v.s ! VPart subj.g subj.n)) ;
|
sats2quest (mkSatsCopula (intNounPhrase subj) (v.s ! VPart subj.g subj.n)) ;
|
||||||
QPredV2 np v y =
|
QPredV2 np v y =
|
||||||
sats2quest (mkSatsObject (intNounPhrase np) v y) ;
|
sats2quest (mkSatsObject (intNounPhrase np) v y) ;
|
||||||
-- QPredV3 subj verb obj1 obj2 =
|
QPredV3 subj verb obj1 obj2 =
|
||||||
-- sats2quest (insertObject (mkSatsObject (intNounPhrase subj) verb obj1) verb.c3 verb.s3 obj2) ;
|
sats2quest (
|
||||||
|
insertObject (mkSatsObject (intNounPhrase subj) verb obj1) verb.c3 verb.s3 obj2
|
||||||
|
) ;
|
||||||
QPredReflV2 subj verb =
|
QPredReflV2 subj verb =
|
||||||
sats2quest (
|
sats2quest (
|
||||||
mkSatsObject (intNounPhrase subj)
|
mkSatsObject (intNounPhrase subj)
|
||||||
{s = verb.s ; s2 = [] ; c = accusative ; aux = AEsse}
|
{s = verb.s ; s2 = [] ; c = accusative ; aux = AEsse}
|
||||||
---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse}
|
|
||||||
---- this produces huge cf - find out why! AR 16/3/2005
|
|
||||||
(reflPronNounPhrase subj.g subj.n P3)) ;
|
(reflPronNounPhrase subj.g subj.n P3)) ;
|
||||||
|
|
||||||
QPredVS subj verb sent =
|
QPredVS subj verb sent =
|
||||||
sats2quest (
|
sats2quest (
|
||||||
insertExtrapos (mkSats (intNounPhrase subj) verb)
|
insertExtrapos (mkSats (intNounPhrase subj) verb)
|
||||||
@@ -122,21 +116,20 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
(\\_ => quest.s ! IndirQ)) ;
|
(\\_ => quest.s ! IndirQ)) ;
|
||||||
QPredVA subj verb adj =
|
QPredVA subj verb adj =
|
||||||
sats2quest (
|
sats2quest (
|
||||||
insertExtrapos (mkSats (intNounPhrase subj) verb) (\\_ => adj.s ! AF subj.g subj.n)) ;
|
insertExtrapos (mkSats (intNounPhrase subj) verb)
|
||||||
|
(\\_ => adj.s ! AF subj.g subj.n)) ;
|
||||||
QPredV2A subj verb obj adj =
|
QPredV2A subj verb obj adj =
|
||||||
sats2quest (
|
sats2quest (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSatsObject (intNounPhrase subj) verb obj)
|
(mkSatsObject (intNounPhrase subj) verb obj)
|
||||||
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
|
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
|
||||||
|
|
||||||
QPredVV subj verb vp =
|
QPredVV subj verb vp =
|
||||||
sats2quest (
|
sats2quest (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
(mkSats (intNounPhrase subj) verb)
|
(mkSats (intNounPhrase subj) verb)
|
||||||
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! subj.g ! (intNounPhrase subj).n ! P3)
|
(\\_ => prepCase verb.c ++
|
||||||
|
vp.s ! VIInfinit ! subj.g ! (intNounPhrase subj).n ! P3)
|
||||||
) ;
|
) ;
|
||||||
|
|
||||||
QPredObjV2V subj verb obj vp =
|
QPredObjV2V subj verb obj vp =
|
||||||
sats2quest (
|
sats2quest (
|
||||||
insertExtrapos
|
insertExtrapos
|
||||||
@@ -161,14 +154,83 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
|
|||||||
QPredAdv subj adv =
|
QPredAdv subj adv =
|
||||||
sats2quest (mkSatsCopula (intNounPhrase subj) adv.s) ;
|
sats2quest (mkSatsCopula (intNounPhrase subj) adv.s) ;
|
||||||
|
|
||||||
----- anteriority _ ; gender and number of Adj
|
QPredProgVP np vp = sats2quest (progressiveSats (intNounPhrase np) vp) ;
|
||||||
|
|
||||||
IPredV _ v =
|
|
||||||
sats2verbPhrase (mkSats pronImpers v) ;
|
----- gender and number of Adj
|
||||||
IPredV2 _ v y =
|
|
||||||
sats2verbPhrase (mkSatsObject pronImpers v y) ;
|
IPredV a v =
|
||||||
IPredAP _ adj =
|
sats2verbPhrase a (mkSats pronImpers v) ;
|
||||||
sats2verbPhrase (mkSatsCopula pronImpers (adj.s ! AF Masc Sg)) ;
|
IPredV2 a v y =
|
||||||
|
sats2verbPhrase a (mkSatsObject pronImpers v y) ;
|
||||||
|
IPredAP a adj =
|
||||||
|
sats2verbPhrase a (mkSatsCopula pronImpers (adj.s ! AF Masc Sg)) ;
|
||||||
|
IPredPassV a v =
|
||||||
|
sats2verbPhrase a (mkSatsCopula pronImpers (v.s ! VPart (pgen2gen pronImpers.g) pronImpers.n)) ;
|
||||||
|
IPredV3 a verb obj1 obj2 =
|
||||||
|
sats2verbPhrase a (insertObject (mkSatsObject pronImpers verb obj1) verb.c3 verb.s3 obj2) ;
|
||||||
|
IPredReflV2 a verb =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
mkSatsObject pronImpers
|
||||||
|
{s = verb.s ; s2 = [] ; c = accusative ; aux = AEsse}
|
||||||
|
---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse}
|
||||||
|
---- this produces huge cf - find out why! AR 16/3/2005
|
||||||
|
(reflPronNounPhrase (pgen2gen pronImpers.g) pronImpers.n pronImpers.p)) ;
|
||||||
|
IPredVS a verb sent =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos (mkSats pronImpers verb)
|
||||||
|
(\\b => embedConj ++ sent.s ! subordMode verb b)) ; ---- mn
|
||||||
|
IPredVQ a verb quest =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos (mkSats pronImpers verb) (\\_ => quest.s ! IndirQ)) ;
|
||||||
|
IPredV2S a verb obj sent =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject pronImpers verb obj)
|
||||||
|
(\\b => embedConj ++ sent.s ! subordMode verb b)
|
||||||
|
) ; ---- mn ;
|
||||||
|
IPredV2Q a verb obj quest =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject pronImpers verb obj)
|
||||||
|
(\\_ => quest.s ! IndirQ)) ;
|
||||||
|
IPredVA a verb adj =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos (mkSats pronImpers verb) (\\_ => adj.s ! AF (pgen2gen pronImpers.g) pronImpers.n)) ;
|
||||||
|
IPredV2A a verb obj adj =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject pronImpers verb obj)
|
||||||
|
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
|
||||||
|
IPredVV a verb vp =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSats pronImpers verb)
|
||||||
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen pronImpers.g ! pronImpers.n ! pronImpers.p)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
IPredObjV2V a verb obj vp =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject pronImpers verb obj)
|
||||||
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen obj.g ! obj.n ! obj.p)
|
||||||
|
) ;
|
||||||
|
IPredSubjV2V a verb obj vp =
|
||||||
|
sats2verbPhrase a (
|
||||||
|
insertExtrapos
|
||||||
|
(mkSatsObject pronImpers verb obj)
|
||||||
|
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen pronImpers.g ! pronImpers.n ! pronImpers.p)
|
||||||
|
) ;
|
||||||
|
|
||||||
|
|
||||||
|
IPredCN a cn =
|
||||||
|
sats2verbPhrase a (mkSatsCopula pronImpers (indefNoun pronImpers.n cn)) ;
|
||||||
|
IPredNP a np =
|
||||||
|
sats2verbPhrase a (mkSatsCopula pronImpers (np.s ! stressed nominative)) ;
|
||||||
|
IPredAdv a adv =
|
||||||
|
sats2verbPhrase a (mkSatsCopula pronImpers adv.s) ;
|
||||||
|
|
||||||
|
IPredProgVP a vp = sats2verbPhrase a (progressiveSats pronImpers vp) ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -96,6 +96,11 @@ lin
|
|||||||
AdvAP = advAdjPhrase ;
|
AdvAP = advAdjPhrase ;
|
||||||
AdvAdv = cc2 ;
|
AdvAdv = cc2 ;
|
||||||
|
|
||||||
|
--- Here the $np$ should become always stressed.
|
||||||
|
|
||||||
|
AdvNP np adv = <np : {g : PronGen ; n : Number ; p : Person}> **
|
||||||
|
{s = \\f => np.s ! f ++ adv.s ; c = Clit0} ;
|
||||||
|
|
||||||
--3 Sentences and relative clauses
|
--3 Sentences and relative clauses
|
||||||
--
|
--
|
||||||
|
|
||||||
@@ -162,6 +167,7 @@ lin
|
|||||||
SubjImper = subjunctImperative ;
|
SubjImper = subjunctImperative ;
|
||||||
SubjQS = subjunctQuestion ;
|
SubjQS = subjunctQuestion ;
|
||||||
----- SubjVP = subjunctVerbPhrase ;
|
----- SubjVP = subjunctVerbPhrase ;
|
||||||
|
AdvSubj if A = {s = if.s ++ A.s ! if.m} ;
|
||||||
|
|
||||||
PhrNP = useNounPhrase ;
|
PhrNP = useNounPhrase ;
|
||||||
PhrOneCN = useCommonNounPhrase singular ;
|
PhrOneCN = useCommonNounPhrase singular ;
|
||||||
|
|||||||
@@ -430,7 +430,7 @@ oper
|
|||||||
param
|
param
|
||||||
VPForm = VPF Anteriority VF ;
|
VPForm = VPF Anteriority VF ;
|
||||||
Anteriority = Simul | Anter ;
|
Anteriority = Simul | Anter ;
|
||||||
VIForm = VIInfinit | VIImperat Bool Number ; ---- | VIGerund ;
|
VIForm = VIInfinit | VIImperat Bool Number | VIGerund ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
VerbPhrase = {s : VIForm => Gender => Number => Person => Str} ;
|
VerbPhrase = {s : VIForm => Gender => Number => Person => Str} ;
|
||||||
@@ -1304,7 +1304,7 @@ oper
|
|||||||
je ++ ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
|
je ++ ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
negNe, negPas : Str ;
|
negNe, negPas : Str ;
|
||||||
|
|
||||||
|
|
||||||
sats2quest : Sats -> Question = \x ->
|
sats2quest : Sats -> Question = \x ->
|
||||||
@@ -1312,12 +1312,12 @@ negNe, negPas : Str ;
|
|||||||
in
|
in
|
||||||
{s = \\b,f,_ => cl.s ! b ! f} ;
|
{s = \\b,f,_ => cl.s ! b ! f} ;
|
||||||
|
|
||||||
sats2verbPhrase : Sats -> VerbPhrase =
|
sats2verbPhrase : {s : Str ; a : Anteriority} -> Sats -> VerbPhrase =
|
||||||
\sats -> {s = \\vi,g,n,p => ---- b,cf =>
|
\ant,sats -> {s = \\vi,g,n,p => ---- b,cf =>
|
||||||
let
|
let
|
||||||
b = True ; ----
|
b = True ; ----
|
||||||
lui = sats.s3 ;
|
lui = sats.s3 ;
|
||||||
dire = verbVIForm {s = sats.s4 ; aux = sats.aux}
|
dire = verbVIForm {s = sats.s4 ; aux = sats.aux} ant.a
|
||||||
vi g n p sats.g2 sats.n2 ;
|
vi g n p sats.g2 sats.n2 ;
|
||||||
ai = dire.p1 ;
|
ai = dire.p1 ;
|
||||||
dit = dire.p2 ;
|
dit = dire.p2 ;
|
||||||
@@ -1328,23 +1328,31 @@ negNe, negPas : Str ;
|
|||||||
oui = sats.s7 ! b
|
oui = sats.s7 ! b
|
||||||
in
|
in
|
||||||
ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
|
ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
|
||||||
|
++ ant.s --- always [] ; hack to avoid ? in parsing
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---- What happens to polarity and anteriority ?
|
---- What happens to polarity and anteriority ?
|
||||||
|
|
||||||
verbVIForm :
|
verbVIForm :
|
||||||
Verb -> VIForm -> Gender -> Number -> Person -> Gender -> Number -> (Str * Str) =
|
Verb -> Anteriority ->
|
||||||
\verb,cl,g,n,p,g2,n2 ->
|
VIForm -> Gender -> Number -> Person -> Gender -> Number -> (Str * Str) =
|
||||||
|
\verb,ant,cl,g,n,p,g2,n2 ->
|
||||||
let
|
let
|
||||||
aime : Number -> Str = \t -> verb.s ! vImper n P2 ;
|
aime : Number -> Str = \t -> verb.s ! vImper t P2 ;
|
||||||
aimer = verb.s ! VInfin
|
aimee = case ant of {Simul => [] ; _ => verb.s ! VPart Masc Sg} ; ---- g n
|
||||||
|
finverb = case ant of {Simul => verb.s ; _ => (auxVerb verb).s} ;
|
||||||
|
aimer = finverb ! VInfin ;
|
||||||
|
aimant = finverb ! VGer
|
||||||
in
|
in
|
||||||
case cl of {
|
case cl of {
|
||||||
VIImperat _ n => <aime n ,[]> ;
|
VIImperat _ n => <aime n, []> ; -- no imperative perfect
|
||||||
VlInfinit => <aimer, []>
|
VIGerund => <aimant, aimee> ;
|
||||||
|
VIInfinit => <aimer, aimee>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
predVerb0 : Verb -> Clause = \rain ->
|
predVerb0 : Verb -> Clause = \rain ->
|
||||||
sats2clause (mkSats (pronNounPhrase pronImpers) rain) ;
|
sats2clause (mkSats (pronNounPhrase pronImpers) rain) ;
|
||||||
|
|
||||||
|
progressiveSats : NounPhrase -> VerbPhrase -> Sats ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,6 +158,7 @@ param
|
|||||||
| VFin TMode Number Person
|
| VFin TMode Number Person
|
||||||
| VImper NumPersI
|
| VImper NumPersI
|
||||||
| VPart Gender Number
|
| VPart Gender Number
|
||||||
|
| VGer
|
||||||
;
|
;
|
||||||
|
|
||||||
TMode =
|
TMode =
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ incomplete concrete ClauseScand of Clause = CategoriesScand **
|
|||||||
|
|
||||||
SPredProgVP = progressiveClause ;
|
SPredProgVP = progressiveClause ;
|
||||||
|
|
||||||
|
|
||||||
QPredV np v = intVerbPhrase np (predVerb v) ;
|
QPredV np v = intVerbPhrase np (predVerb v) ;
|
||||||
QPredPassV np v = intVerbPhrase np (passVerb v) ;
|
QPredPassV np v = intVerbPhrase np (passVerb v) ;
|
||||||
QPredV2 np v x = intVerbPhrase np (complTransVerb v x) ;
|
QPredV2 np v x = intVerbPhrase np (complTransVerb v x) ;
|
||||||
QPredReflV2 np v = intVerbPhrase np (reflTransVerb v) ;
|
QPredReflV2 np v = intVerbPhrase np (reflTransVerb v) ;
|
||||||
|
QPredV3 np v x y = intVerbPhrase np (complDitransVerb v x y) ;
|
||||||
QPredVS np v x = intVerbPhrase np (complSentVerb v x) ;
|
QPredVS np v x = intVerbPhrase np (complSentVerb v x) ;
|
||||||
QPredVV np v x = intVerbPhrase np (complVerbVerb v x) ;
|
QPredVV np v x = intVerbPhrase np (complVerbVerb v x) ;
|
||||||
QPredVQ np v x = intVerbPhrase np (complQuestVerb v x) ;
|
QPredVQ np v x = intVerbPhrase np (complQuestVerb v x) ;
|
||||||
@@ -58,9 +58,10 @@ incomplete concrete ClauseScand of Clause = CategoriesScand **
|
|||||||
QPredAV np v x = intVerbPhrase np (complVerbAdj v x) ;
|
QPredAV np v x = intVerbPhrase np (complVerbAdj v x) ;
|
||||||
QPredObjA2V np v x y = intVerbPhrase np (complVerbAdj2 True v x y) ;
|
QPredObjA2V np v x y = intVerbPhrase np (complVerbAdj2 True v x y) ;
|
||||||
|
|
||||||
|
QPredProgVP np v = intVerbPhrase np (progressiveVerbPhrase v) ;
|
||||||
|
|
||||||
IPredV a v = predVerbGroupI True a (predVerb v) ;
|
IPredV a v = predVerbGroupI True a (predVerb v) ;
|
||||||
IPredV2 a v x = predVerbGroupI True a (complTransVerb v x) ;
|
IPredV2 a v x = predVerbGroupI True a (complTransVerb v x) ;
|
||||||
---- SPredAP np v = predBeGroup np (\\_ => v.s ! AAdj) ;
|
|
||||||
IPredAP a v = predVerbGroupI True a (predAdjective v) ;
|
IPredAP a v = predVerbGroupI True a (predAdjective v) ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
|
|||||||
@@ -100,6 +100,8 @@ lin
|
|||||||
AdvCN = advCommNounPhrase ;
|
AdvCN = advCommNounPhrase ;
|
||||||
AdvAP = advAdjPhrase ;
|
AdvAP = advAdjPhrase ;
|
||||||
AdvAdv = cc2 ;
|
AdvAdv = cc2 ;
|
||||||
|
AdvNP np adv = <np : {g : Gender ; n : Number ; p : Person}> **
|
||||||
|
{s = \\f => np.s ! f ++ adv.s} ;
|
||||||
|
|
||||||
--3 Sentences and relative clauses
|
--3 Sentences and relative clauses
|
||||||
--
|
--
|
||||||
@@ -167,6 +169,7 @@ lin
|
|||||||
SubjS = subjunctSentence ;
|
SubjS = subjunctSentence ;
|
||||||
SubjImper = subjunctImperative ;
|
SubjImper = subjunctImperative ;
|
||||||
SubjQS = subjunctQuestion ;
|
SubjQS = subjunctQuestion ;
|
||||||
|
AdvSubj if A = {s = if.s ++ A.s ! Sub} ;
|
||||||
|
|
||||||
PhrNP = useNounPhrase ;
|
PhrNP = useNounPhrase ;
|
||||||
PhrOneCN = useCommonNounPhrase singular ;
|
PhrOneCN = useCommonNounPhrase singular ;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
--# -path=.:../romance:../../prelude
|
--# -path=.:../romance:../../prelude
|
||||||
|
|
||||||
instance SyntaxSpa of SyntaxRomance =
|
instance SyntaxSpa of SyntaxRomance =
|
||||||
TypesSpa ** open Prelude, (CO=Coordination), MorphoSpa in {
|
TypesSpa ** open Prelude, (CO=Coordination), MorphoSpa, BeschSpa in {
|
||||||
oper
|
oper
|
||||||
nameNounPhrase = \jean ->
|
nameNounPhrase = \jean ->
|
||||||
normalNounPhrase
|
normalNounPhrase
|
||||||
@@ -358,5 +358,11 @@ oper
|
|||||||
|
|
||||||
negNe = "no" ; negPas = [] ;
|
negNe = "no" ; negPas = [] ;
|
||||||
|
|
||||||
|
progressiveSats subj vp =
|
||||||
|
mkSatsObject subj
|
||||||
|
(mkTransVerbDir (verbPres (estar_2 "estar") AHabere)) --- hack to reuse
|
||||||
|
(nameNounPhrase (mkProperName ( --- this function
|
||||||
|
vp.s ! VIGerund ! (pgen2gen subj.g) ! subj.n ! subj.p) Masc)) ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -119,7 +119,8 @@ oper
|
|||||||
VImper SgP2 => amare.s ! VP (Imp Sg P2) ;
|
VImper SgP2 => amare.s ! VP (Imp Sg P2) ;
|
||||||
VImper PlP1 => amare.s ! VP (Imp Pl P1) ;
|
VImper PlP1 => amare.s ! VP (Imp Pl P1) ;
|
||||||
VImper PlP2 => amare.s ! VP (Imp Pl P2) ;
|
VImper PlP2 => amare.s ! VP (Imp Pl P2) ;
|
||||||
VPart g n => amare.s ! VP (Pass n g)
|
VPart g n => amare.s ! VP (Pass n g) ;
|
||||||
|
VGer => amare.s ! VI Ger
|
||||||
} ;
|
} ;
|
||||||
aux = a
|
aux = a
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -2,4 +2,3 @@
|
|||||||
|
|
||||||
concrete ClauseSwe of Clause = CategoriesSwe **
|
concrete ClauseSwe of Clause = CategoriesSwe **
|
||||||
ClauseI with (Rules=RulesSwe), (Verbphrase=VerbphraseSwe) ;
|
ClauseI with (Rules=RulesSwe), (Verbphrase=VerbphraseSwe) ;
|
||||||
---- ClauseScand with (SyntaxScand=SyntaxSwe) ;
|
|
||||||
|
|||||||
Reference in New Issue
Block a user