From d1035f4e18cb73b80dc37f9d2b8df5db8e3e8898 Mon Sep 17 00:00:00 2001 From: aarne Date: Mon, 31 Jan 2005 15:27:32 +0000 Subject: [PATCH] rearranging Rules --- lib/resource/abstract/Rules.gf | 176 ++++++++++---------- lib/resource/english/RulesEng.gf | 194 +++++++++++++---------- lib/resource/english/SyntaxEng.gf | 1 + lib/resource/scandinavian/RulesScand.gf | 177 ++++++++++++--------- lib/resource/scandinavian/SyntaxScand.gf | 3 + 5 files changed, 307 insertions(+), 244 deletions(-) diff --git a/lib/resource/abstract/Rules.gf b/lib/resource/abstract/Rules.gf index 7d3fb2497..ce8487512 100644 --- a/lib/resource/abstract/Rules.gf +++ b/lib/resource/abstract/Rules.gf @@ -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" } ; diff --git a/lib/resource/english/RulesEng.gf b/lib/resource/english/RulesEng.gf index 43dcc4128..921bd9836 100644 --- a/lib/resource/english/RulesEng.gf +++ b/lib/resource/english/RulesEng.gf @@ -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)) ; + } ; + diff --git a/lib/resource/english/SyntaxEng.gf b/lib/resource/english/SyntaxEng.gf index 6ea9625da..a2ddebeed 100644 --- a/lib/resource/english/SyntaxEng.gf +++ b/lib/resource/english/SyntaxEng.gf @@ -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. diff --git a/lib/resource/scandinavian/RulesScand.gf b/lib/resource/scandinavian/RulesScand.gf index 0c190543b..4d22c9bff 100644 --- a/lib/resource/scandinavian/RulesScand.gf +++ b/lib/resource/scandinavian/RulesScand.gf @@ -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)) ; + + } ; diff --git a/lib/resource/scandinavian/SyntaxScand.gf b/lib/resource/scandinavian/SyntaxScand.gf index f5e7b9d8f..1cd13426c 100644 --- a/lib/resource/scandinavian/SyntaxScand.gf +++ b/lib/resource/scandinavian/SyntaxScand.gf @@ -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 {