1
0
forked from GitHub/gf-core

more predications

This commit is contained in:
aarne
2005-01-24 10:09:13 +00:00
parent 223bed1ba4
commit a6f4fd6da3
12 changed files with 139 additions and 52 deletions

View File

@@ -154,22 +154,25 @@ cat
---- next ---- next
V3A ; -- paint the house red V2A ; -- paint the house red
V3VSubj ; -- promise John to come V2V ; -- promise John to come / ask John to come
V3VObj ; -- ask John to come V2S ; -- tell John that it is raining
V3S ; -- tell John that it is raining
VQ ; -- ask who comes VQ ; -- ask who comes
V3Q ; -- ask John who comes V2Q ; -- ask John who comes
VA ; -- look yellow VA ; -- look yellow
V0 ; -- (it) rains V0 ; -- (it) rains
AS ; -- (it is) important that he comes AS ; -- (it is) important that he comes
A2S ; -- (it is) important for me that he comes
AV ; -- difficult to play AV ; -- difficult to play
A2V ; -- difficult for him to play
-- NB: it is difficult to play the sonata -- NB: it is difficult to play the sonata
-- vs. it (the sonata) is difficult to play -- vs. it (the sonata) is difficult to play
--- also: John is easy (for you) to please vs. John is eager to please
QS ; -- question with fixed tense and polarity QS ; -- question with fixed tense and polarity
RS ; -- relative clause with fixed tense and polarity RS ; -- relative clause with fixed tense and polarity

View File

@@ -216,21 +216,33 @@ fun
-- In these predications, the last argument gets its agreement -- In these predications, the last argument gets its agreement
-- features from the second, and cannot hence be made to produce -- features from the second, and cannot hence be made to produce
-- $V3A$/$V3S$. -- $V2A$/$V2S$.
PredV3A : V3A -> NP -> AP -> VG ; PredV2A : V2A -> NP -> AP -> VG ;
PredV3VSubj : V3VSubj -> NP -> VG -> VG ; PredSubjV2V : V2V -> NP -> VG -> VG ;
--- In these three it would be possible, but hardly useful... --- In these three it would be possible, but hardly useful...
PredV3VObj : V3VObj -> NP -> VG -> VG ; PredObjV2V : V2V -> NP -> VG -> VG ;
PredV3S : V3S -> NP -> S -> VG ; PredV2S : V2S -> NP -> S -> VG ;
PredV3Q : V3Q -> NP -> QS -> VG ; PredV2Q : V2Q -> NP -> QS -> VG ;
PredAS : AS -> S -> Cl ;
PredA2S : A2S -> NP -> AS ;
PredAV : AV -> VG -> VG ;
PredSubjA2V : A2V -> NP -> VG -> VG ;
PredObjA2V : A2V -> NP -> VG -> VG ;
PredV0 : V0 -> Cl ;
PredVQ : VQ -> QS -> VG ; PredVQ : VQ -> QS -> VG ;
PredVA : VA -> AP -> VG ; PredVA : VA -> AP -> VG ;
UseV2V : V2V -> VV ;
UseV2S : V2S -> VS ;
UseV2Q : V2Q -> VQ ;
UseA2S : A2S -> AS ;
UseA2V : A2V -> AV ;
UseCl : TP -> Cl -> S ; UseCl : TP -> Cl -> S ;
UseVG : TP -> VG -> VP ; UseVG : TP -> VG -> VP ;
UseRCl : TP -> RCl -> RS ; UseRCl : TP -> RCl -> RS ;

View File

@@ -17,13 +17,17 @@ fun
John, Mary : PN ; John, Mary : PN ;
AlreadyAdv, NowAdv : Adv ; -- already, now AlreadyAdv, NowAdv : Adv ; -- already, now
Paint : V3A ; Paint : V2A ;
Green : ADeg ; Green : ADeg ;
Beg : V3VObj ; Beg : V2V ;
Promise : VV ; Promise : V2V ;
Promise2 : V3VSubj ; Try : VV ;
Wonder : VQ ; Wonder : VQ ;
Ask : V3Q ; Ask : V2Q ;
Tell : V3S ; Tell : V2S ;
Look : VA ; Look : VA ;
Important : A2S ;
Probable : AS ;
Easy : A2V ;
} ; } ;

View File

@@ -83,10 +83,10 @@ concrete StructuralDan of Structural =
SomethingNP = nameNounPhrase (mkProperName "noget" NNeutr) ; SomethingNP = nameNounPhrase (mkProperName "noget" NNeutr) ;
NothingNP = nameNounPhrase (mkProperName "intet" NNeutr) ; NothingNP = nameNounPhrase (mkProperName "intet" NNeutr) ;
CanVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; isAux = True} ; CanVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ;
CanKnowVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; isAux = True} ; CanKnowVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ;
MustVV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "må" ** {s1 = [] ; isAux = True} ; ---- ? MustVV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "må" ** {s1 = [] ; s3 = []} ; ---- ?
WantVV = mkVerb "ville" "vil" nonExist "ville" "villet" nonExist ** {s1 = [] ; isAux = True} ; --- WantVV = mkVerb "ville" "vil" nonExist "ville" "villet" nonExist ** {s1 = [] ; s3 = []} ; ---
EverywhereNP = advPost "overalt" ; EverywhereNP = advPost "overalt" ;
SomewhereNP = advPost ["et eller andet sted"] ; ---- ? SomewhereNP = advPost ["et eller andet sted"] ; ---- ?

View File

@@ -57,8 +57,7 @@ lin
Green = mkAdjective "grøn" "grønt" "grøne" "grønnere" "grønnest" ; Green = mkAdjective "grøn" "grønt" "grøne" "grønnere" "grønnest" ;
Beg = extTransVerb (mkVerb "bede" "beder" "bedes" "bad" "bedt" "bed") [] ** {s3 = "at"} ; Beg = extTransVerb (mkVerb "bede" "beder" "bedes" "bad" "bedt" "bed") [] ** {s3 = "at"} ;
Promise = extTransVerb (vNopart (vSpis "lov")) [] ** {isAux = False} ; Promise = extTransVerb (vNopart (vSpis "lov")) [] ** {s3 = "att"} ;
Promise2 = extTransVerb (vNopart (vSpis "lov")) [] ** {s3 = "att"} ;
Wonder = extTransVerb (vNopart (vHusk "undr")) [] ; Wonder = extTransVerb (vNopart (vHusk "undr")) [] ;
Ask = extTransVerb (mkVerb "spørge" "spørger""spørges""spurgte""spurgt""spørg") [] ; Ask = extTransVerb (mkVerb "spørge" "spørger""spørges""spurgte""spurgt""spørg") [] ;
Tell = extTransVerb (mkVerb "fortælle" "fortæller" "fortælles" Tell = extTransVerb (mkVerb "fortælle" "fortæller" "fortælles"
@@ -66,4 +65,10 @@ lin
Look = extTransVerb (mkVerb "se" "ser" "ses" "så" "set" "sedd") [] Look = extTransVerb (mkVerb "se" "ser" "ses" "så" "set" "sedd") []
; ---- ut ; ---- ut
Try = extTransVerb (vNopart (vSpis "forsøg")) [] ** {s3 = "att"} ;
Important = extAdjective (aAbstrakt "viktig") ** {s2 = "for"} ;
Probable = extAdjective (aAbstrakt "sandsynlig") ;
Easy = extAdjective (aRod "let") ** {s2 = "for"} ;
} ; } ;

View File

@@ -84,10 +84,10 @@ concrete StructuralNor of Structural =
SomethingNP = nameNounPhrase (mkProperName "noe" NNeutr) ; SomethingNP = nameNounPhrase (mkProperName "noe" NNeutr) ;
NothingNP = nameNounPhrase (mkProperName "intet" NNeutr) ; NothingNP = nameNounPhrase (mkProperName "intet" NNeutr) ;
CanVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; isAux = True} ; CanVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ;
CanKnowVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; isAux = True} ; CanKnowVV = mkVerb "kunne" "kan" nonExist "kunne" "kunnet" nonExist ** {s1 = [] ; s3 = []} ;
MustVV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "mått" ** {s1 = [] ; isAux = True} ; ---- ? MustVV = mkVerb "måtte" "må" "mås" "måtte" "måttet" "mått" ** {s1 = [] ; s3 = []} ; ---- ?
WantVV = mkVerb "ville" "vil" nonExist "ville" "villet" "vill" ** {s1 = [] ; isAux = True} ; --- WantVV = mkVerb "ville" "vil" nonExist "ville" "villet" "vill" ** {s1 = [] ; s3 = []} ; ---
EverywhereNP = advPost "overalt" ; EverywhereNP = advPost "overalt" ;
SomewhereNP = advPost ["et eller annet sted"] ; ---- ? SomewhereNP = advPost ["et eller annet sted"] ; ---- ?

View File

@@ -56,8 +56,7 @@ lin
Green = mkAdjective "grønn" "grønt" "grøne" "grønnere" "grønnest" ; Green = mkAdjective "grønn" "grønt" "grøne" "grønnere" "grønnest" ;
Beg = extTransVerb (mkVerb "be" "ber" "bes" "bad" "bedt" "be") [] ** {s3 = "at"} ; Beg = extTransVerb (mkVerb "be" "ber" "bes" "bad" "bedt" "be") [] ** {s3 = "at"} ;
Promise = extTransVerb (vNopart (vSpis "lov")) [] ** {isAux = False} ; Promise = extTransVerb (vNopart (vSpis "lov")) [] ** {s3 = "att"} ;
Promise2 = extTransVerb (vNopart (vSpis "lov")) [] ** {s3 = "att"} ;
Wonder = extTransVerb (vNopart (vHusk "undr")) [] ; Wonder = extTransVerb (vNopart (vHusk "undr")) [] ;
Ask = extTransVerb (mkVerb "spørre" "spør""spørs""spurde""spurt""spør") [] ; Ask = extTransVerb (mkVerb "spørre" "spør""spørs""spurde""spurt""spør") [] ;
Tell = extTransVerb (mkVerb "fortelle" "forteller" "fortelles" Tell = extTransVerb (mkVerb "fortelle" "forteller" "fortelles"
@@ -65,5 +64,10 @@ lin
Look = extTransVerb (mkVerb "se" "ser" "ses" "så" "sett" "sedd") [] Look = extTransVerb (mkVerb "se" "ser" "ses" "så" "sett" "sedd") []
; ---- ut ; ---- ut
Try = extTransVerb (vNopart (vSpis "forsøk")) [] ** {s3 = "att"} ;
Important = extAdjective (aAbstrakt "viktig") ** {s2 = "for"} ;
Probable = extAdjective (aAbstrakt "sannsynlig") ;
Easy = extAdjective (aRod "grei") ** {s2 = "for"} ;
} ; } ;

View File

@@ -26,6 +26,10 @@ lincat
A2 = Adjective ** {s2 : Preposition} ; A2 = Adjective ** {s2 : Preposition} ;
ADeg = {s : AdjForm => Str} ; ADeg = {s : AdjForm => Str} ;
AP = Adjective ** {p : IsPostfixAdj} ; AP = Adjective ** {p : IsPostfixAdj} ;
AS = Adjective ; --- "more difficult for him to come than..."
A2S = Adjective ** {s2 : Preposition} ;
AV = Adjective ;
A2V = Adjective ** {s2 : Preposition} ;
V = Verb ; V = Verb ;
-- = {s : VerbForm => Str ; s1 : Str} ; -- = {s : VerbForm => Str ; s1 : Str} ;
@@ -38,14 +42,14 @@ lincat
VS = Verb ; VS = Verb ;
VQ = Verb ; VQ = Verb ;
VV = Verb ** {isAux : Bool} ; VV = Verb ** {s3 : Str} ;
VA = Verb ; VA = Verb ;
V3S = TransVerb ; V2S = TransVerb ;
V3Q = TransVerb ; V2Q = TransVerb ;
V3VObj = DitransVerbVerb ; V2V = DitransVerbVerb ;
V3VSubj = DitransVerbVerb ; V2A = DitransAdjVerb ;
V3A = DitransAdjVerb ; V0 = Verb ;
TP = {s : Str ; b : Bool ; t : Tense ; a : Anteriority} ; --- the Str field is dummy TP = {s : Str ; b : Bool ; t : Tense ; a : Anteriority} ; --- the Str field is dummy
Tense = {s : Str ; t : Tense} ; Tense = {s : Str ; t : Tense} ;

View File

@@ -41,15 +41,23 @@ lin
CNthatS = nounThatSentence ; CNthatS = nounThatSentence ;
PredVV2 = transVerbVerb ; PredVV2 = transVerbVerb ;
AdjPart = adjPastPart ; AdjPart = adjPastPart ;
PredV3A = complDitransAdjVerb ; PredV2A = complDitransAdjVerb ;
PredV3VSubj = complDitransVerbVerb False ; PredSubjV2V = complDitransVerbVerb False ;
PredV3VObj = complDitransVerbVerb True ; PredObjV2V = complDitransVerbVerb True ;
PredV3S = complDitransSentVerb ; PredV2S = complDitransSentVerb ;
PredV3Q = complDitransQuestVerb ; PredV2Q = complDitransQuestVerb ;
PredVA = complAdjVerb ; PredVA = complAdjVerb ;
UseV2V x = x ;
UseV2S x = x ;
UseV2Q x = x ;
UseA2S x = x ;
UseA2V x = x ;
UseCl tp cl = {s = \\o => tp.s ++ cl.s ! tp.b ! ClFinite tp.t tp.a o} ; UseCl tp cl = {s = \\o => tp.s ++ cl.s ! tp.b ! ClFinite tp.t tp.a o} ;
UseVG tp = predVerbGroup tp.b tp.t tp.a ; UseVG tp = predVerbGroup tp.b tp.t tp.a ;
@@ -80,6 +88,13 @@ lin
PredVQ = complQuestVerb ; PredVQ = complQuestVerb ;
PredVV = complVerbVerb ; PredVV = complVerbVerb ;
VTrans = transAsVerb ; VTrans = transAsVerb ;
PredV0 = predVerb0 ;
PredAS = predAdjSent ;
PredA2S = predAdjSent2 ;
PredAV = complVerbAdj ;
PredSubjA2V = complVerbAdj2 False ;
PredObjA2V = complVerbAdj2 True ;
AdjAdv a = advPost (a.s ! adverbForm ! Nom) ; AdjAdv a = advPost (a.s ! adverbForm ! Nom) ;
AdvPP p = p ; AdvPP p = p ;

View File

@@ -549,6 +549,10 @@ oper
negation : Bool => Str = \\b => if_then_Str b [] negInte ; negation : Bool => Str = \\b => if_then_Str b [] negInte ;
predVerb0 : Verb -> Clause = \regna ->
predVerbGroupClause npDet (predVerb regna) ;
-- Verb phrases can also be formed from adjectives ("är snäll"), -- Verb phrases can also be formed from adjectives ("är snäll"),
-- common nouns ("är en man"), and noun phrases ("är den yngste mannen"). -- common nouns ("är en man"), and noun phrases ("är den yngste mannen").
-- The third rule is overgenerating: "är varje man" has to be ruled out -- The third rule is overgenerating: "är varje man" has to be ruled out
@@ -572,6 +576,16 @@ oper
predAdverb : Adverb -> VerbGroup = \ute -> predAdverb : Adverb -> VerbGroup = \ute ->
vara (\\_,_,_ => ute.s) ; vara (\\_,_,_ => ute.s) ;
predAdjSent : Adjective -> Sentence -> Clause = \bra,hansover ->
predVerbGroupClause
npDet
(vara (
\\g,n,_ => bra.s ! predFormAdj g n ! Nom ++ infinAtt ++ hansover.s ! Sub)) ;
predAdjSent2 : AdjCompl -> NounPhrase -> Adjective = \bra,han ->
{s = \\af,c => bra.s ! af ! c ++ bra.s2 ++ han.s ! PAcc} ;
--3 Transitive verbs --3 Transitive verbs
-- --
-- Transitive verbs are verbs with a preposition for the complement, -- Transitive verbs are verbs with a preposition for the complement,
@@ -810,23 +824,31 @@ oper
-- ("försöka"); this distinction cannot be done in the multilingual -- ("försöka"); this distinction cannot be done in the multilingual
-- API and leads to some anomalies in Swedish, but less so than in English. -- API and leads to some anomalies in Swedish, but less so than in English.
VerbVerb : Type = Verb ** {isAux : Bool} ; VerbVerb : Type = Verb ** {s3 : Str} ;
complVerbVerb : VerbVerb -> VerbGroup -> VerbGroup = \vilja, simma -> complVerbVerb : VerbVerb -> VerbGroup -> VerbGroup = \vilja, simma ->
useVerb vilja useVerb vilja
(\\g,n,p => (\\g,n,p =>
vilja.s1 ++ vilja.s1 ++
if_then_Str vilja.isAux [] infinAtt ++ vilja.s3 ++
simma.s ! VInfinit Simul ++ simma.s2 ! True ++ ---- Anter! simma.s ! VInfinit Simul ++ simma.s2 ! True ++ ---- Anter!
simma.s3 ! VInfinit Simul ! g ! n ! p) ; simma.s3 ! VInfinit Simul ! g ! n ! p) ;
transVerbVerb : VerbVerb -> TransVerb -> TransVerb = \vilja,hitta -> transVerbVerb : VerbVerb -> TransVerb -> TransVerb = \vilja,hitta ->
{s = vilja.s ; {s = vilja.s ;
s1 = vilja.s1 ++ if_then_Str vilja.isAux [] infinAtt ++ s1 = vilja.s1 ++ vilja.s3 ++
hitta.s ! VI (Inf Act) ++ hitta.s1 ; ---- Anter! hitta.s ! VI (Inf Act) ++ hitta.s1 ; ---- Anter!
s2 = hitta.s2 s2 = hitta.s2
} ; } ;
complVerbAdj : Adjective -> VerbGroup -> VerbGroup = \grei, simma ->
vara
(\\g,n,p =>
grei.s ! predFormAdj g n ! Nom ++
infinAtt ++
simma.s ! VInfinit Simul ++ simma.s2 ! True ++ ---- Anter!
simma.s3 ! VInfinit Simul ! g ! n ! p) ;
-- Notice agreement to object vs. subject: -- Notice agreement to object vs. subject:
DitransVerbVerb = TransVerb ** {s3 : Str} ; DitransVerbVerb = TransVerb ** {s3 : Str} ;
@@ -842,6 +864,18 @@ oper
(simma.s3 ! VInfinit Simul ! g ! n ! p) (simma.s3 ! VInfinit Simul ! g ! n ! p)
) ; ) ;
complVerbAdj2 :
Bool -> AdjCompl -> NounPhrase -> VerbGroup -> VerbGroup = \obj,grei,dig,simma ->
vara
(\\g,n,p =>
grei.s ! predFormAdj g n ! Nom ++
grei.s2 ++ dig.s ! PAcc ++
infinAtt ++
simma.s ! VInfinit Simul ++ simma.s2 ! True ++ ---- Anter!
if_then_Str obj
(simma.s3 ! VInfinit Simul ! dig.g ! dig.n ! dig.p)
(simma.s3 ! VInfinit Simul ! g ! n ! p)
) ;
--2 Sentences missing noun phrases --2 Sentences missing noun phrases
-- --

View File

@@ -82,10 +82,10 @@ concrete StructuralSwe of Structural =
SomethingNP = nameNounPhrase (mkProperName "någonting" NNeutr) ; SomethingNP = nameNounPhrase (mkProperName "någonting" NNeutr) ;
NothingNP = nameNounPhrase (mkProperName "ingenting" NNeutr) ; NothingNP = nameNounPhrase (mkProperName "ingenting" NNeutr) ;
CanVV = mkVerb "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" ** {isAux = True} ; CanVV = mkVerb "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" ** {s3 = []} ;
CanKnowVV = mkVerb "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" ** {isAux = True} ; CanKnowVV = mkVerb "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" ** {s3 = []} ;
MustVV = mkVerb "få" "måste" "få" "fick" "måst" "måst" ** {isAux = True} ; --- MustVV = mkVerb "få" "måste" "få" "fick" "måst" "måst" ** {s3 = []} ;
WantVV = mkVerb "vilja" "vill" "vilj" "ville" "velat" "velad" ** {isAux = True} ; --- WantVV = mkVerb "vilja" "vill" "vilj" "ville" "velat" "velad" ** {s3 = []} ;
EverywhereNP = advPost "varstans" ; EverywhereNP = advPost "varstans" ;
SomewhereNP = advPost "någonstans" ; SomewhereNP = advPost "någonstans" ;

View File

@@ -57,10 +57,16 @@ lin
Paint = extTransVerb (vNopart (vTala "mål")) [] ; Paint = extTransVerb (vNopart (vTala "mål")) [] ;
Green = aFin "grön" ; Green = aFin "grön" ;
Beg = extTransVerb (mkVerbPart "be" "ber" "be" "bad" "bett" "bedd" []) [] ** {s3 = "att"} ; Beg = extTransVerb (mkVerbPart "be" "ber" "be" "bad" "bett" "bedd" []) [] ** {s3 = "att"} ;
Promise = extTransVerb (vNopart (vTala "lov")) [] ** {isAux = False} ; Promise = extTransVerb (vNopart (vTala "lov")) [] ** {s3 = "att"} ;
Promise2 = extTransVerb (vNopart (vTala "lov")) [] ** {s3 = "att"} ;
Wonder = extTransVerb (vNopart (vTala "undr")) [] ; Wonder = extTransVerb (vNopart (vTala "undr")) [] ;
Ask = extTransVerb (vNopart (vTala "fråg")) [] ; Ask = extTransVerb (vNopart (vTala "fråg")) [] ;
Tell = extTransVerb (vNopart (vTala "berätt")) [] ; Tell = extTransVerb (vNopart (vTala "berätt")) [] ;
Look = extTransVerb (mkVerbPart "se" "ser" "se" "såg" "sett" "sedd" "ut") [] ; Look = extTransVerb (mkVerbPart "se" "ser" "se" "såg" "sett" "sedd" "ut") [] ;
Try = extTransVerb (vNopart (vLeka "försök")) [] ** {s3 = "att"} ;
Important = extAdjective (aFin "viktig") ** {s2 = "för"} ;
Probable = extAdjective (aFin "sannolik") ;
Easy = extAdjective (aAbstrakt "lätt") ** {s2 = "för"} ;
} ; } ;