upgraded resources, esp. romance

This commit is contained in:
aarne
2005-05-31 17:42:39 +00:00
parent 04ae4c37cb
commit 24b595c98f
17 changed files with 167 additions and 47 deletions

View File

@@ -31,6 +31,7 @@ incomplete concrete ClauseI of Clause = open Rules, Verbphrase in {
QPredV np v = IntVP np (UseV v) ;
QPredPassV np v = IntVP np (UsePassV v) ;
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) ;
QPredVS np v x = IntVP np (ComplVS 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) ;
QPredAdv np v = IntVP np (PredAdv v) ;
QPredProgVP np vp = IntVP np (PredProgVP vp) ;
IPredV a v = PosVP a (UseV v) ;
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) ;
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

View File

@@ -110,8 +110,8 @@ fun
AdvPP : PP -> Adv ; -- "in London", "after the war"
PrepNP : Prep -> NP -> PP ; -- "in London", "after the war"
AdvCN : CN -> PP -> CN ; -- "house in London"
AdvPN : PN -> PP -> NP ; -- "x to the power of k"
AdvCN : CN -> Adv -> CN ; -- "house in London"
AdvNP : NP -> Adv -> NP ; -- "the house in London"
AdvAP : AdA -> AP -> AP ; -- "very good"
AdvAdv : AdA -> Adv -> Adv ; -- "very well"
@@ -148,7 +148,7 @@ fun
QuestPhrase : QS -> Phr ; -- "Do I walk?"
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"
AdCPhr : AdC -> S -> Phr ; -- "Therefore, 2 is prime."
AdvPhr : Adv -> S -> Phr ; -- "In India, there are tigers."

View File

@@ -111,7 +111,7 @@ lin
AdvCN = advCommNounPhrase ;
AdvAP = advAdjPhrase ;
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
--

View File

@@ -1,5 +1,4 @@
--# -path=.:../romance:../abstract:../../prelude
concrete ClauseFre of Clause = CategoriesFre **
---- ClauseI with (Rules=RulesFre), (Verbphrase=VerbphraseFre) ;
ClauseRomance with (SyntaxRomance=SyntaxFre) ;

View File

@@ -330,4 +330,9 @@ oper
negNe = elisNe ; negPas = "pas" ;
progressiveSats subj vp =
mkSatsCopula subj
(["en train"] ++ elisDe ++
vp.s ! VIInfinit ! (pgen2gen subj.g) ! subj.n ! subj.p) ;
}

View File

@@ -153,7 +153,8 @@ oper
VFin VFut n p => aller ! Indic Futur n p ;
VFin VCondit n p => aller ! Cond n p ;
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$:

View File

@@ -1,7 +1,7 @@
--# -path=.:../romance:../../prelude
instance SyntaxIta of SyntaxRomance =
TypesIta ** open Prelude, (CO=Coordination), MorphoIta in {
TypesIta ** open Prelude, (CO=Coordination), MorphoIta, BeschIta in {
flags optimize=all ;
@@ -275,4 +275,10 @@ oper
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)) ;
}

View File

@@ -121,7 +121,8 @@ oper
VFin VFut n p => amare.s ! Fut n p ;
VFin VCondit n p => amare.s ! Cond n p ;
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
} ;

View File

@@ -14,7 +14,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
sats2clause (mkSatsObject np v y) ;
SPredV3 subj verb obj1 obj2 =
sats2clause (insertObject (mkSatsObject subj verb obj1) verb.c3 verb.s3 obj2) ;
SPredReflV2 subj verb =
sats2clause (
mkSatsObject subj
@@ -22,7 +21,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse}
---- this produces huge cf - find out why! AR 16/3/2005
(reflPronNounPhrase (pgen2gen subj.g) subj.n subj.p)) ;
SPredVS subj verb sent =
sats2clause (
insertExtrapos (mkSats subj verb)
@@ -49,7 +47,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
insertExtrapos
(mkSatsObject subj verb obj)
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
SPredVV subj verb vp =
sats2clause (
insertExtrapos
@@ -70,7 +67,7 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
(\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen subj.g ! subj.n ! subj.p)
) ;
-- SPredProgVP
SPredProgVP np vp = sats2clause (progressiveSats np vp) ;
SPredAP subj adj =
@@ -86,22 +83,19 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
QPredV np v =
sats2quest (mkSats (intNounPhrase np) v) ;
QPredPassV subj v =
sats2quest (mkSatsCopula (intNounPhrase subj) (v.s ! VPart subj.g subj.n)) ;
QPredV2 np v y =
sats2quest (mkSatsObject (intNounPhrase np) v y) ;
-- QPredV3 subj verb obj1 obj2 =
-- sats2quest (insertObject (mkSatsObject (intNounPhrase subj) verb obj1) verb.c3 verb.s3 obj2) ;
QPredV3 subj verb obj1 obj2 =
sats2quest (
insertObject (mkSatsObject (intNounPhrase subj) verb obj1) verb.c3 verb.s3 obj2
) ;
QPredReflV2 subj verb =
sats2quest (
mkSatsObject (intNounPhrase subj)
{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)) ;
QPredVS subj verb sent =
sats2quest (
insertExtrapos (mkSats (intNounPhrase subj) verb)
@@ -122,21 +116,20 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
(\\_ => quest.s ! IndirQ)) ;
QPredVA subj verb adj =
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 =
sats2quest (
insertExtrapos
(mkSatsObject (intNounPhrase subj) verb obj)
(\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ;
QPredVV subj verb vp =
sats2quest (
insertExtrapos
(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 =
sats2quest (
insertExtrapos
@@ -161,14 +154,83 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance **
QPredAdv subj adv =
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) ;
IPredV2 _ v y =
sats2verbPhrase (mkSatsObject pronImpers v y) ;
IPredAP _ adj =
sats2verbPhrase (mkSatsCopula pronImpers (adj.s ! AF Masc Sg)) ;
----- gender and number of Adj
IPredV a v =
sats2verbPhrase a (mkSats pronImpers v) ;
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) ;

View File

@@ -96,6 +96,11 @@ lin
AdvAP = advAdjPhrase ;
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
--
@@ -162,6 +167,7 @@ lin
SubjImper = subjunctImperative ;
SubjQS = subjunctQuestion ;
----- SubjVP = subjunctVerbPhrase ;
AdvSubj if A = {s = if.s ++ A.s ! if.m} ;
PhrNP = useNounPhrase ;
PhrOneCN = useCommonNounPhrase singular ;

View File

@@ -430,7 +430,7 @@ oper
param
VPForm = VPF Anteriority VF ;
Anteriority = Simul | Anter ;
VIForm = VIInfinit | VIImperat Bool Number ; ---- | VIGerund ;
VIForm = VIInfinit | VIImperat Bool Number | VIGerund ;
oper
VerbPhrase = {s : VIForm => Gender => Number => Person => Str} ;
@@ -1304,7 +1304,7 @@ oper
je ++ ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
} ;
negNe, negPas : Str ;
negNe, negPas : Str ;
sats2quest : Sats -> Question = \x ->
@@ -1312,12 +1312,12 @@ negNe, negPas : Str ;
in
{s = \\b,f,_ => cl.s ! b ! f} ;
sats2verbPhrase : Sats -> VerbPhrase =
\sats -> {s = \\vi,g,n,p => ---- b,cf =>
sats2verbPhrase : {s : Str ; a : Anteriority} -> Sats -> VerbPhrase =
\ant,sats -> {s = \\vi,g,n,p => ---- b,cf =>
let
b = True ; ----
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 ;
ai = dire.p1 ;
dit = dire.p2 ;
@@ -1328,23 +1328,31 @@ negNe, negPas : Str ;
oui = sats.s7 ! b
in
ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
++ ant.s --- always [] ; hack to avoid ? in parsing
} ;
---- What happens to polarity and anteriority ?
verbVIForm :
Verb -> VIForm -> Gender -> Number -> Person -> Gender -> Number -> (Str * Str) =
\verb,cl,g,n,p,g2,n2 ->
Verb -> Anteriority ->
VIForm -> Gender -> Number -> Person -> Gender -> Number -> (Str * Str) =
\verb,ant,cl,g,n,p,g2,n2 ->
let
aime : Number -> Str = \t -> verb.s ! vImper n P2 ;
aimer = verb.s ! VInfin
aime : Number -> Str = \t -> verb.s ! vImper t P2 ;
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
case cl of {
VIImperat _ n => <aime n ,[]> ;
VlInfinit => <aimer, []>
VIImperat _ n => <aime n, []> ; -- no imperative perfect
VIGerund => <aimant, aimee> ;
VIInfinit => <aimer, aimee>
} ;
predVerb0 : Verb -> Clause = \rain ->
sats2clause (mkSats (pronNounPhrase pronImpers) rain) ;
progressiveSats : NounPhrase -> VerbPhrase -> Sats ;
}

View File

@@ -158,6 +158,7 @@ param
| VFin TMode Number Person
| VImper NumPersI
| VPart Gender Number
| VGer
;
TMode =

View File

@@ -33,11 +33,11 @@ incomplete concrete ClauseScand of Clause = CategoriesScand **
SPredProgVP = progressiveClause ;
QPredV np v = intVerbPhrase np (predVerb v) ;
QPredPassV np v = intVerbPhrase np (passVerb v) ;
QPredV2 np v x = intVerbPhrase np (complTransVerb v x) ;
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) ;
QPredVV np v x = intVerbPhrase np (complVerbVerb 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) ;
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) ;
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) ;
{-

View File

@@ -100,6 +100,8 @@ lin
AdvCN = advCommNounPhrase ;
AdvAP = advAdjPhrase ;
AdvAdv = cc2 ;
AdvNP np adv = <np : {g : Gender ; n : Number ; p : Person}> **
{s = \\f => np.s ! f ++ adv.s} ;
--3 Sentences and relative clauses
--
@@ -167,6 +169,7 @@ lin
SubjS = subjunctSentence ;
SubjImper = subjunctImperative ;
SubjQS = subjunctQuestion ;
AdvSubj if A = {s = if.s ++ A.s ! Sub} ;
PhrNP = useNounPhrase ;
PhrOneCN = useCommonNounPhrase singular ;

View File

@@ -1,7 +1,7 @@
--# -path=.:../romance:../../prelude
instance SyntaxSpa of SyntaxRomance =
TypesSpa ** open Prelude, (CO=Coordination), MorphoSpa in {
TypesSpa ** open Prelude, (CO=Coordination), MorphoSpa, BeschSpa in {
oper
nameNounPhrase = \jean ->
normalNounPhrase
@@ -358,5 +358,11 @@ oper
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)) ;
}

View File

@@ -119,7 +119,8 @@ oper
VImper SgP2 => amare.s ! VP (Imp Sg P2) ;
VImper PlP1 => amare.s ! VP (Imp Pl P1) ;
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
} ;

View File

@@ -2,4 +2,3 @@
concrete ClauseSwe of Clause = CategoriesSwe **
ClauseI with (Rules=RulesSwe), (Verbphrase=VerbphraseSwe) ;
---- ClauseScand with (SyntaxScand=SyntaxSwe) ;