rearranging Rules

This commit is contained in:
aarne
2005-01-31 15:27:32 +00:00
parent 039de90677
commit d1035f4e18
5 changed files with 307 additions and 244 deletions

View File

@@ -63,24 +63,71 @@ fun
-- have (or have not) a negation, but they are formed from verbal groups
-- ($VG$), which have both positive and negative forms.
PredV : V -> VP ; -- "walk", "doesn't walk"
PredPassV : V -> VP ; -- "is seen", "is not seen"
PredV2 : V2 -> NP -> VP ; -- "sees John", "doesn't see John"
--- PredV3 : V3 -> NP -> NP -> VG ; -- "prefers wine to beer"
PredV3 : V3 -> NP -> V2 ; -- "prefers wine (to beer)"
PredVS : VS -> S -> VP ; -- "says that I run", "doesn't say..."
PredVV : VV -> VPI -> VP ; -- "can run", "can't run", "tries to run"
UseV : V -> VP ; -- "walks"
UsePassV : V -> VP ; -- "is seen"
ComplV2 : V2 -> NP -> VP ; -- "sees Mary"
ComplReflV2 : V2 -> VP ; -- "loves himself"
ComplVS : VS -> S -> VP ; -- "says that Mary runs"
ComplVV : VV -> VPI -> VP ; -- "must walk"
ComplVQ : VQ -> QS -> VP ; -- "asks who will come"
ComplVA : VA -> AP -> VP ; -- "looks ill"
ComplV2A : V2A -> NP -> AP -> VP ; -- "paints the house red"
ComplSubjV2V : V2V -> NP -> VPI -> VP ; -- "promises Mary to leave"
ComplObjV2V : V2V -> NP -> VPI -> VP ; -- "asked him to go"
ComplV2S : V2S -> NP -> S -> VP ; -- "told me that you came"
ComplV2Q : V2Q -> NP -> QS -> VP ; -- "asks me if you come"
PredNP : NP -> VP ; -- "is John", "is not John"
PredPP : PP -> VP ; -- "is in France", "is not in France"
PredAP : AP -> VP ; -- "is old", "isn't old"
PredSuperl : ADeg -> VP ; -- "is the oldest"
PredCN : CN -> VP ; -- "is a man", "isn't a man"
VTrans : V2 -> V ; -- "loves"
PredAP : AP -> VP ; -- "is old"
PredSuperl : ADeg -> VP ; -- "is the oldest"
PredCN : CN -> VP ; -- "is a man"
PredNP : NP -> VP ; -- "is Bill"
PredPP : PP -> VP ; -- "is in France"
PredAV : AV -> VPI -> VP ; -- "is eager to leave"
PredObjA2V : A2V -> NP -> VPI -> VP ; -- "is easy for us to convince"
--- PosVG,NegVG : VG -> VP ; --
PredAS : AS -> S -> Cl ; -- "it is good that he comes"
PredV0 : V0 -> Cl ; -- "it is raining"
PredVP : NP -> VP -> Cl ; -- preserves all pol/tense variation
-- These rules *use* verb phrases:
-- $PredVP$, $IntVP$, $RelVP$, $QuestVP$, $QuestAdv$.
-- Partial saturation.
UseV2 : V2 -> V ; -- "loves"
ComplV3 : V3 -> NP -> V2 ; -- "prefers wine (to beer)"
ComplA2S : A2S -> NP -> AS ; -- "good for John"
TransVV2 : VV -> V2 -> V2 ; -- (which song do you) want to play
UseV2V : V2V -> VV ;
UseV2S : V2S -> VS ;
UseV2Q : V2Q -> VQ ;
UseA2S : A2S -> AS ;
UseA2V : A2V -> AV ;
-- Formation of infinitival phrases.
PosVP, NegVP : Ant -> VP -> VPI ;
ProgVG : VP -> VP ; -- he is eating
AdjPart : V -> A ; -- forgotten
UseCl : TP -> Cl -> S ;
UseRCl : TP -> RCl -> RS ;
UseQCl : TP -> QCl -> QS ;
PosTP : Tense -> Ant -> TP ;
NegTP : Tense -> Ant -> TP ;
TPresent : Tense ;
TPast : Tense ;
TFuture : Tense ;
TConditional : Tense ;
ASimul : Ant ;
AAnter : Ant ;
--!
--3 Adverbs
@@ -99,53 +146,40 @@ fun
--3 Sentences and relative clauses
--
--- PredVP : NP -> VP -> S ; -- "John walks"
--- PosSlashV2,NegSlashV2 : NP -> V2 -> Slash ; -- "John sees", "John doesn't see"
SlashV2 : NP -> V2 -> Slash ; -- "John sees", "John doesn't see"
--- OneVP : VP -> S ; -- "one walks"
OneVP : VP -> Cl ; -- "one walks"
--- ThereNP : NP -> S ; -- "there is a bar","there are 86 bars"
ExistCN : CN -> Cl ; -- "there is a bar"
ExistNumCN : Num -> CN -> Cl ; -- "there are (86) bars"
PredVP : NP -> VP -> Cl ; -- "John walks"
SlashV2 : NP -> V2 -> Slash ; -- "John doesn't love"
IdRP : RP ; -- "which"
FunRP : N2 -> RP -> RP ; -- "the successor of which"
IdRP : RP ; -- "which"
FunRP : N2 -> RP -> RP ; -- "the successor of which"
RelVP : RP -> VP -> RCl ; -- "who walks", "who doesn't walk"
RelSlash : RP -> Slash -> RCl ; -- "that I wait for"/"for which I wait"
--- ModRC : CN -> RS -> CN ; -- "man who walks"
ModRS : CN -> RS -> CN ; -- "man who walks"
--- RelSuch : S -> RCl ; -- "such that it is even"
RelCl : Cl -> RCl ; -- "such that it is even"
--!
--3 Questions and imperatives
--
WhoOne, WhoMany : IP ; -- "who (is)", "who (are)"
WhatOne, WhatMany : IP ; -- "what (is)", "what (are)"
FunIP : N2 -> IP -> IP ; -- "the mother of whom"
NounIPOne, NounIPMany : CN -> IP ; -- "which car", "which cars"
---- NounIPHowMany : CN -> IP ; -- "how many cars"
WhoOne, WhoMany : IP ; -- "who (is)", "who (are)"
WhatOne, WhatMany : IP ; -- "what (is)", "what (are)"
FunIP : N2 -> IP -> IP ; -- "the mother of whom"
NounIPOne, NounIPMany : CN -> IP ; -- "which car", "which cars"
QuestVP : NP -> VP -> QCl ; -- "does John walk"; "doesn't John walk"
IntVP : IP -> VP -> QCl ; -- "who walks"
IntSlash : IP -> Slash -> QCl ; -- "whom does John see"
--- QuestAdv : IAdv -> NP -> VP -> QS ; -- "why do you walk"
QuestAdv : IAdv -> NP -> VP -> QCl ; -- "why do you walk"
--- IsThereNP : NP -> QS ; -- "is there a bar", "are there (86) bars"
ExistQCl : CN -> QCl ; -- "is there a bar",
ExistNumQCl : Num -> CN -> QCl ; -- "are there (86) bars"
--- ImperVP : VP -> Imp ; -- "be a man"
PosImperVP, NegImperVP : VP -> Imp ; -- "(don't) be a man"
----rename these ??
IndicPhrase : S -> Phr ; -- "I walk."
QuestPhrase : QS -> Phr ; -- "Do I walk?"
ImperOne, ImperMany : Imp -> Phr ; -- "Be a man!", "Be men!"
IndicPhrase : S -> Phr ; -- "I walk."
QuestPhrase : QS -> Phr ; -- "Do I walk?"
ImperOne, ImperMany : Imp -> Phr ; -- "Be a man!", "Be men!"
PrepS : PP -> AdS ; -- "in Sweden, (there are bears)"
AdvS : AdS -> S -> Phr ; -- "Therefore, 2 is prime."
PrepS : PP -> AdS ; -- "in Sweden, (there are bears)"
AdvS : AdS -> S -> Phr ; -- "Therefore, 2 is prime."
--!
--3 Coordination
@@ -184,7 +218,6 @@ fun
SubjS : Subj -> S -> S -> S ; -- "if 2 is odd, 3 is even"
SubjImper : Subj -> S -> Imp -> Imp ; -- "if it is hot, use a glove!"
--- SubjQu : Subj -> S -> QS -> QS ; -- "if you are new, who are you?"
SubjQS : Subj -> S -> QS -> QS ; -- "if you are new, who are you?"
SubjVP : VP -> Subj -> S -> VP ; -- "(a man who) sings when he runs"
@@ -207,58 +240,17 @@ fun
OnePhr : Phr -> Text ;
ConsPhr : Phr -> Text -> Text ;
--- next
--2 Special constructs.
--
-- These constructs tend to have language-specific syntactic realizations.
PredVV2 : VV -> V2 -> V2 ; -- (which song do you) want to play
AdjPart : V -> A ; -- forgotten
ReflV2 : V2 -> VP ;
OneVP : VP -> Cl ; -- "one walks"
-- In these predications, the last argument gets its agreement
-- features from the second, and cannot hence be made to produce
-- $V2A$/$V2S$.
ExistCN : CN -> Cl ; -- "there is a bar"
ExistNumCN : Num -> CN -> Cl ; -- "there are (86) bars"
PredV2A : V2A -> NP -> AP -> VP ;
PredSubjV2V : V2V -> NP -> VPI -> VP ;
--- In these three it would be possible, but hardly useful...
PredObjV2V : V2V -> NP -> VPI -> VP ;
PredV2S : V2S -> NP -> S -> VP ;
PredV2Q : V2Q -> NP -> QS -> VP ;
PredAS : AS -> S -> Cl ;
PredA2S : A2S -> NP -> AS ;
PredAV : AV -> VPI -> VP ;
PredSubjA2V : A2V -> NP -> VPI -> VP ;
PredObjA2V : A2V -> NP -> VPI -> VP ;
PredV0 : V0 -> Cl ;
PredVQ : VQ -> QS -> VP ;
PredVA : VA -> AP -> VP ;
UseV2V : V2V -> VV ;
UseV2S : V2S -> VS ;
UseV2Q : V2Q -> VQ ;
UseA2S : A2S -> AS ;
UseA2V : A2V -> AV ;
UseCl : TP -> Cl -> S ;
UseRCl : TP -> RCl -> RS ;
UseQCl : TP -> QCl -> QS ;
PosVP, NegVP : Ant -> VP -> VPI ;
ProgVG : VP -> VP ; -- he is eating
PosTP : Tense -> Ant -> TP ;
NegTP : Tense -> Ant -> TP ;
TPresent : Tense ;
TPast : Tense ;
TFuture : Tense ;
TConditional : Tense ;
ASimul : Ant ;
AAnter : Ant ;
ExistQCl : CN -> QCl ; -- "is there a bar",
ExistNumQCl : Num -> CN -> QCl ; -- "are there (86) bars"
} ;

View File

@@ -28,29 +28,7 @@ flags
lin
UseN = noun2CommNounPhrase ;
ModAP = modCommNounPhrase ;
ModGenOne = npGenDet singular noNum ;
ModGenNum = npGenDet plural ;
UsePN = nameNounPhrase ;
UseN2 = funAsCommNounPhrase ;
AppN2 = appFunComm ;
AppN3 = appFun2 ;
UseA = adj2adjPhrase ;
ComplA2 = complAdj ;
PositADeg = positAdjPhrase ;
ComparADeg = comparAdjPhrase ;
SuperlNP = superlNounPhrase ;
DetNP = detNounPhrase ;
IndefOneNP = indefNounPhrase singular ;
IndefNumNP = indefNounPhraseNum plural ;
DefOneNP = defNounPhrase singular ;
DefNumNP = defNounPhraseNum plural ;
MassNP = detNounPhrase (mkDeterminer Sg []) ;
CNthatS = nounThatSentence ;
UseInt i = {s = table {Nom => i.s ; Gen => i.s ++ "'s"}} ; ---
NoNum = noNum ;
SymbPN i = {s = table {Nom => i.s ; Gen => i.s ++ "'s"} ; g = Neutr} ; ---
SymbCN cn s =
@@ -60,16 +38,70 @@ lin
{s = \\n,c => cn.s ! n ! c ++ s.s ;
g = cn.g} ;
AdjPart = adjPastPart ;
ReflV2 = reflTransVerb ;
IndefOneNP = indefNounPhrase singular ;
IndefNumNP = indefNounPhraseNum plural ;
DefOneNP = defNounPhrase singular ;
DefNumNP = defNounPhraseNum plural ;
PredV2A = complDitransAdjVerb ;
PredSubjV2V = complDitransVerbVerb False ;
PredObjV2V = complDitransVerbVerb True ;
PredV2S = complDitransSentVerb ;
PredV2Q = complDitransQuestVerb ;
PredVA = complAdjVerb ;
PredVV2 = transVerbVerb ;
DetNP = detNounPhrase ;
MassNP = detNounPhrase (mkDeterminer Sg []) ;
AppN2 = appFunComm ;
AppN3 = appFun2 ;
UseN2 = funAsCommNounPhrase ;
ModAP = modCommNounPhrase ;
CNthatS = nounThatSentence ;
ModGenOne = npGenDet singular noNum ;
ModGenNum = npGenDet plural ;
UseInt i = {s = table {Nom => i.s ; Gen => i.s ++ "s"}} ; ---
NoNum = noNum ;
UseA = adj2adjPhrase ;
ComplA2 = complAdj ;
PositADeg = positAdjPhrase ;
ComparADeg = comparAdjPhrase ;
SuperlNP = superlNounPhrase ;
-- verbs and verb prases
UseV = predVerb ;
UsePassV = passVerb ;
ComplV2 = complTransVerb ;
ComplReflV2 = reflTransVerb ;
ComplVS = complSentVerb ;
ComplVV = complVerbVerb ;
ComplVQ = complQuestVerb ;
ComplVA = complAdjVerb ;
ComplV2A = complDitransAdjVerb ;
ComplSubjV2V = complDitransVerbVerb False ;
ComplObjV2V = complDitransVerbVerb True ;
ComplV2S = complDitransSentVerb ;
ComplV2Q = complDitransQuestVerb ;
PredAP = predAdjective ;
PredSuperl a = predAdjective (superlAdjPhrase a) ;
PredCN = predCommNoun ;
PredNP = predNounPhrase ;
PredPP = predAdverb ;
PredAV = complVerbAdj ;
PredObjA2V = complVerbAdj2 True ;
PredAS = predAdjSent ;
PredV0 rain = predVerbGroupClause (pronNounPhrase pronIt) (predVerb rain) ;
-- Partial saturation.
UseV2 = transAsVerb ;
ComplV3 = complDitransVerb ;
ComplA2S = predAdjSent2 ;
TransVV2 = transVerbVerb ;
AdjPart = adjPastPart ;
UseV2V x = x ** {isAux = False} ;
UseV2S x = x ;
@@ -77,65 +109,44 @@ lin
UseA2S x = x ;
UseA2V x = x ;
UseCl tp cl = {s = tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a} ;
-- Formation of infinitival phrases.
PosVP tp = predVerbGroup True tp.a ;
NegVP tp = predVerbGroup False tp.a ;
ProgVG = progressiveVerbPhrase ;
UseCl tp cl = {s = tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a} ;
UseQCl tp cl = {s = \\q => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! q} ;
UseRCl tp cl = {s = \\a => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! a} ;
PosTP t a = {s = t.s ++ a.s ; b = True ; t = t.t ; a = a.a} ;
NegTP t a = {s = t.s ++ a.s ; b = False ; t = t.t ; a = a.a} ;
TPresent = {s = [] ; t = Present} ;
TPast = {s = [] ; t = Past} ;
TFuture = {s = [] ; t = Future} ;
TConditional = {s = [] ; t = Conditional} ;
ASimul = {s = [] ; a = Simul} ;
AAnter = {s = [] ; a = Anter} ;
PredVP = predVerbGroupClause ;
PredV = predVerb ;
PredAP = predAdjective ;
PredSuperl a = predAdjective (superlAdjPhrase a) ;
PredCN = predCommNoun ;
PredV2 = complTransVerb ;
PredV3 = complDitransVerb ;
PredPassV = passVerb ;
PredNP = predNounPhrase ;
PredPP = predAdverb ;
PredVS = complSentVerb ;
PredVV = complVerbVerb ;
PredVQ = complQuestVerb ;
VTrans = transAsVerb ;
PredV0 rain = predVerbGroupClause (pronNounPhrase pronIt) (predVerb rain) ;
PredAS = predAdjSent ;
PredA2S = predAdjSent2 ;
PredAV = complVerbAdj ;
PredSubjA2V = complVerbAdj2 False ;
PredObjA2V = complVerbAdj2 True ;
-- Adverbs.
AdjAdv a = advPost (a.s ! AAdv) ;
AdvPP p = advPost p.s ;
PrepNP p = prepPhrase p.s ; ---
AdvVP = adVerbPhrase ;
AdvCN = advCommNounPhrase ;
AdvAP = advAdjPhrase ;
SlashV2 = slashTransVerbCl ;
OneVP = predVerbGroupClause (nameNounPhrase (nameReg "one" human)) ;
---- ThereNP = thereIs ;
--3 Sentences and relative clauses
--
ExistCN A = predVerbGroupClause
(nameNounPhrase (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhrase singular A)) ;
ExistNumCN nu A =
predVerbGroupClause
(nameNounPhrasePl (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhraseNum plural nu A)) ;
PredVP = predVerbGroupClause ;
SlashV2 = slashTransVerbCl ;
IdRP = identRelPron ;
FunRP = funRelPron ;
@@ -144,7 +155,10 @@ lin
ModRS = modRelClause ;
RelCl = relSuch ;
UseRCl tp cl = {s = \\a => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! a} ;
--!
--3 Questions and imperatives
--
WhoOne = intPronWho singular ;
WhoMany = intPronWho plural ;
@@ -159,29 +173,22 @@ lin
IntSlash = intSlash ;
QuestAdv = questAdverbial ;
UseQCl tp cl = {s = \\q => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! q} ;
ExistQCl A = questVerbPhrase
(nameNounPhrase (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhrase singular A)) ;
ExistNumQCl nu A =
questVerbPhrase
(nameNounPhrasePl (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhraseNum plural nu A)) ;
PosImperVP = imperVerbPhrase True ;
NegImperVP = imperVerbPhrase False ;
IndicPhrase = indicUtt ;
QuestPhrase = interrogUtt ;
ImperOne = imperUtterance singular ;
ImperOne = imperUtterance singular ;
ImperMany = imperUtterance plural ;
PrepS p = ss (p.s ++ ",") ;
AdvS = advSentence ;
--!
--3 Coordination
--
TwoS = twoSentence ;
ConsS = consSentence ;
ConjS = conjunctSentence ;
@@ -211,4 +218,31 @@ lin
OnePhr p = p ;
ConsPhr = cc2 ;
-----------------------
-- special constructions
OneVP = predVerbGroupClause (nameNounPhrase (nameReg "one" human)) ;
---- ThereNP = thereIs ;
ExistCN A = predVerbGroupClause
(nameNounPhrase (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhrase singular A)) ;
ExistNumCN nu A =
predVerbGroupClause
(nameNounPhrasePl (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhraseNum plural nu A)) ;
ExistQCl A = questVerbPhrase
(nameNounPhrase (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhrase singular A)) ;
ExistNumQCl nu A =
questVerbPhrase
(nameNounPhrasePl (nameReg "there" Neutr))
(complTransVerb (mkTransVerbDir verbBe)
(indefNounPhraseNum plural nu A)) ;
} ;

View File

@@ -664,6 +664,7 @@ oper
you ++ sleep.s ! b ! c ! a ++ sleep.s2 ! b ! c ! a
} ;
--3 Sentence-complement verbs
--
-- Sentence-complement verbs take sentences as complements.

View File

@@ -5,27 +5,7 @@ incomplete concrete RulesScand of Rules = CategoriesScand **
lin
UseN = noun2CommNounPhrase ;
ModAP = modCommNounPhrase ;
ModGenOne = npGenDet singular noNum ;
ModGenNum = npGenDet plural ;
UsePN = nameNounPhrase ;
UseN2 = funAsCommNounPhrase ;
AppN2 = appFunComm ;
AppN3 = appFun2 ;
UseA = adj2adjPhrase ;
ComplA2 = complAdj ;
PositADeg = positAdjPhrase ;
ComparADeg = comparAdjPhrase ;
SuperlNP = superlNounPhrase ;
DetNP = detNounPhrase ;
IndefOneNP = indefNounPhrase singular ;
IndefNumNP = indefNounPhraseNum plural ;
DefOneNP = defNounPhrase singular ;
DefNumNP = defNounPhraseNum plural ;
MassNP = detNounPhrase (mkDeterminerSg (detSgInvar []) IndefP) ;
UseInt i = {s = table {Nom => i.s ; Gen => i.s ++ "s"}} ; ---
NoNum = noNum ;
SymbPN i = {s = \\_ => i.s ; g = NNeutr} ;
SymbCN cn s =
@@ -39,17 +19,70 @@ lin
p = cn.p
} ;
IndefOneNP = indefNounPhrase singular ;
IndefNumNP = indefNounPhraseNum plural ;
DefOneNP = defNounPhrase singular ;
DefNumNP = defNounPhraseNum plural ;
DetNP = detNounPhrase ;
MassNP = detNounPhrase (mkDeterminerSg (detSgInvar []) IndefP) ;
AppN2 = appFunComm ;
AppN3 = appFun2 ;
UseN2 = funAsCommNounPhrase ;
ModAP = modCommNounPhrase ;
CNthatS = nounThatSentence ;
PredVV2 = transVerbVerb ;
AdjPart = adjPastPart ;
ModGenOne = npGenDet singular noNum ;
ModGenNum = npGenDet plural ;
PredV2A = complDitransAdjVerb ;
PredSubjV2V = complDitransVerbVerb False ;
PredObjV2V = complDitransVerbVerb True ;
PredV2S = complDitransSentVerb ;
PredV2Q = complDitransQuestVerb ;
PredVA = complAdjVerb ;
UseInt i = {s = table {Nom => i.s ; Gen => i.s ++ "s"}} ; ---
NoNum = noNum ;
UseA = adj2adjPhrase ;
ComplA2 = complAdj ;
PositADeg = positAdjPhrase ;
ComparADeg = comparAdjPhrase ;
SuperlNP = superlNounPhrase ;
-- verbs and verb phrases
UseV = predVerb ;
UsePassV = passVerb ;
ComplV2 = complTransVerb ;
ComplReflV2 = reflTransVerb ;
ComplVS = complSentVerb ;
ComplVV = complVerbVerb ;
ComplVQ = complQuestVerb ;
ComplVA = complAdjVerb ;
ComplV2A = complDitransAdjVerb ;
ComplSubjV2V = complDitransVerbVerb False ;
ComplObjV2V = complDitransVerbVerb True ;
ComplV2S = complDitransSentVerb ;
ComplV2Q = complDitransQuestVerb ;
PredAP = predAdjective ;
PredSuperl a = predAdjective (superlAdjPhrase a) ;
PredCN = predCommNoun ;
PredNP = predNounPhrase ;
PredPP = predAdverb ;
PredAV = complVerbAdj ;
PredObjA2V = complVerbAdj2 True ;
PredAS = predAdjSent ;
PredV0 = predVerb0 ;
-- Partial saturation.
UseV2 = transAsVerb ;
ComplV3 = complDitransVerb ;
ComplA2S = predAdjSent2 ;
TransVV2 = transVerbVerb ;
AdjPart = adjPastPart ;
UseV2V x = x ;
UseV2S x = x ;
@@ -57,60 +90,43 @@ lin
UseA2S x = x ;
UseA2V x = x ;
UseCl tp cl = {s = \\o => tp.s ++ cl.s ! tp.b ! ClFinite tp.t tp.a o} ;
-- Formation of infinitival phrases.
PosVP tp = predVerbGroup True tp.a ;
NegVP tp = predVerbGroup False tp.a ;
ProgVG = progressiveVerbPhrase ;
UseCl tp cl = {s = \\o => tp.s ++ cl.s ! tp.b ! ClFinite tp.t tp.a o} ;
UseRCl tp cl =
{s = \\gn,p => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! gn ! p} ;
UseQCl tp cl = {s = \\q => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! q} ;
PosTP t a = {s = t.s ++ a.s ; b = True ; t = t.t ; a = a.a} ;
NegTP t a = {s = t.s ++ a.s ; b = False ; t = t.t ; a = a.a} ;
TPresent = {s = [] ; t = Present} ;
TPast = {s = [] ; t = Past} ;
TFuture = {s = [] ; t = Future} ;
TConditional = {s = [] ; t = Condit} ;
ASimul = {s = [] ; a = Simul} ;
AAnter = {s = [] ; a = Anter} ;
PredVP = predVerbGroupClause ;
PredV = predVerb ;
PredAP = predAdjective ;
PredSuperl a = predAdjective (superlAdjPhrase a) ;
PredCN = predCommNoun ;
PredV2 = complTransVerb ;
PredV3 = complDitransVerb ;
PredPassV = passVerb ;
ReflV2 = reflTransVerb ;
PredNP = predNounPhrase ;
PredPP = predAdverb ;
PredVS = complSentVerb ;
PredVQ = complQuestVerb ;
PredVV = complVerbVerb ;
VTrans = transAsVerb ;
PredV0 = predVerb0 ;
PredAS = predAdjSent ;
PredA2S = predAdjSent2 ;
PredAV = complVerbAdj ;
PredSubjA2V = complVerbAdj2 False ;
PredObjA2V = complVerbAdj2 True ;
-- Adverbs.
AdjAdv a = advPost (a.s ! adverbForm ! Nom) ;
AdvPP p = p ;
PrepNP p = prepPhrase p.s ; ---
AdvVP = adVerbPhrase ;
AdvCN = advCommNounPhrase ;
AdvAP = advAdjPhrase ;
ExistCN A = predVerbGroupClause npDet
(complTransVerb (mkDirectVerb (deponentVerb verbFinnas))
(indefNounPhrase singular A)) ;
ExistNumCN nu A = predVerbGroupClause npDet
(complTransVerb (mkDirectVerb (deponentVerb verbFinnas))
(indefNounPhraseNum plural nu A)) ;
--3 Sentences and relative clauses
--
PredVP = predVerbGroupClause ;
SlashV2 = slashTransVerb ;
OneVP = predVerbGroupClause npMan ;
@@ -122,8 +138,10 @@ lin
ModRS = modRelClause ;
RelCl = relSuch ;
UseRCl tp cl =
{s = \\gn,p => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! gn ! p} ;
--!
--3 Questions and imperatives
--
WhoOne = intPronWho singular ;
WhoMany = intPronWho plural ;
@@ -138,16 +156,6 @@ lin
IntSlash = intSlash ;
QuestAdv = questAdverbial ;
ExistQCl A = questVerbPhrase npDet
(complTransVerb (mkDirectVerb (deponentVerb verbFinnas))
(indefNounPhrase singular A)) ;
ExistNumQCl nu A = questVerbPhrase npDet
(complTransVerb (mkDirectVerb (deponentVerb verbFinnas))
(indefNounPhraseNum plural nu A)) ;
UseQCl tp cl = {s = \\q => tp.s ++ cl.s ! tp.b ! VFinite tp.t tp.a ! q} ;
PosImperVP = imperVerbPhrase True ;
NegImperVP = imperVerbPhrase False ;
@@ -159,6 +167,11 @@ lin
PrepS p = ss (p.s ++ ",") ;
AdvS = advSentence ;
--!
--3 Coordination
--
TwoS = twoSentence ;
ConsS = consSentence ;
ConjS = conjunctSentence ;
@@ -188,4 +201,24 @@ lin
OnePhr p = p ;
ConsPhr = cc2 ;
-----------------------
-- special constructions
OneVP = predVerbGroupClause npMan ;
ExistCN A = predVerbGroupClause npDet
(complTransVerb (mkDirectVerb (deponentVerb verbFinnas))
(indefNounPhrase singular A)) ;
ExistNumCN nu A = predVerbGroupClause npDet
(complTransVerb (mkDirectVerb (deponentVerb verbFinnas))
(indefNounPhraseNum plural nu A)) ;
ExistQCl A = questVerbPhrase npDet
(complTransVerb (mkDirectVerb (deponentVerb verbFinnas))
(indefNounPhrase singular A)) ;
ExistNumQCl nu A = questVerbPhrase npDet
(complTransVerb (mkDirectVerb (deponentVerb verbFinnas))
(indefNounPhraseNum plural nu A)) ;
} ;

View File

@@ -763,6 +763,9 @@ oper
Clause = {s : Bool => ClForm => Str} ;
predVerbGroupAdv : NounPhrase -> VerbGroup -> Adverb -> Clause =
\np,vp,a -> predVerbGroupClause np (adVerbPhrase vp a) ;
predVerbGroupClause : NounPhrase -> VerbGroup -> Clause =
\Jag, serdiginte -> {
s = \\b,c => let {