mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-11 22:09:32 -06:00
RP in Finnish
This commit is contained in:
@@ -54,7 +54,29 @@ fun
|
||||
QPredAdv : IP -> Adv -> QCl ; -- "who is in France"
|
||||
|
||||
QPredProgVP : IP -> VPI -> QCl ; -- "who is eating"
|
||||
{-
|
||||
RPredV : RP -> V -> RCl ; -- "who walks"
|
||||
RPredPassV : RP -> V -> RCl ; -- "who is seen"
|
||||
RPredV2 : RP -> V2 -> NP -> RCl ; -- "who sees Mary"
|
||||
RPredV3 : RP -> V3 -> NP -> NP -> RCl ; -- "who gives Mary food"
|
||||
RPredReflV2 : RP -> V2 -> RCl ; -- "who loves himself"
|
||||
RPredVS : RP -> VS -> S -> RCl ; -- "who says that Mary runs"
|
||||
RPredVV : RP -> VV -> VPI -> RCl ; -- "who must walk"
|
||||
RPredVQ : RP -> VQ -> QS -> RCl ; -- "who asks who will come"
|
||||
RPredVA : RP -> VA -> AP -> RCl ; -- "who looks ill"
|
||||
RPredV2A : RP -> V2A -> NP ->AP ->RCl ; -- "who paints the house red"
|
||||
RPredSubjV2V : RP -> V2V -> NP ->VPI ->RCl ; -- "who promises Mary to leave"
|
||||
RPredObjV2V : RP -> V2V -> NP -> VPI -> RCl ; -- "who asks me to come"
|
||||
RPredV2S : RP -> V2S -> NP -> S -> RCl ; -- "who told me that it is good"
|
||||
RPredV2Q : RP -> V2Q -> NP -> QS -> RCl ; -- "who asked me if it is good"
|
||||
|
||||
RPredAP : RP -> AP -> RCl ; -- "who is old"
|
||||
RPredCN : RP -> CN -> RCl ; -- "who is a man"
|
||||
RPredNP : RP -> NP -> RCl ; -- "who is Bill"
|
||||
RPredAdv : RP -> Adv -> RCl ; -- "who is in France"
|
||||
|
||||
RPredProgVP : RP -> VPI -> RCl ; -- "who is eating"
|
||||
-}
|
||||
IPredV : Ant -> V -> VPI ; -- "walk"
|
||||
IPredPassV : Ant -> V -> VPI ; -- "be seen"
|
||||
IPredV2 : Ant -> V2 -> NP -> VPI ; -- "see Mary"
|
||||
|
||||
@@ -82,7 +82,7 @@ lincat
|
||||
Slash = Sentence ** {s2 : Str ; c : Case} ;
|
||||
|
||||
RP = {s : Number => Case => Str} ;
|
||||
---- RCl = {s : Bool => SForm => Agr => Str} ;
|
||||
RCl = {s : Bool => SForm => Number => Str} ;
|
||||
RS = {s : Number => Str} ;
|
||||
|
||||
IP = {s : NPForm => Str ; n : Number} ;
|
||||
|
||||
@@ -56,7 +56,7 @@ lin
|
||||
NoNum = noNum ;
|
||||
|
||||
UseA = adj2adjPhrase ;
|
||||
----- ComplA2 = complAdj ;
|
||||
ComplA2 = complAdj ;
|
||||
|
||||
---- ComplAV av vpi = {s = \\_,a => av.s ! a ++ vpi.s ! VIInfinit} ;
|
||||
---- ComplObjA2V av obj vpi = {s = \\_,a => av.s ! a ++ obj.s ! complCase
|
||||
@@ -125,8 +125,8 @@ lin
|
||||
IdRP = identRelPron ;
|
||||
FunRP = funRelPron ;
|
||||
---- RelSlash = relSlash ;
|
||||
---- ModRS = modRelClause ;
|
||||
---- RelCl = relSuch ;
|
||||
ModRS = modRelClause ;
|
||||
RelCl = relSuch ;
|
||||
|
||||
|
||||
--!
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
|
||||
resource SyntaxFin = MorphoFin ** open Prelude, (CO = Coordination) in {
|
||||
|
||||
flags
|
||||
---- optimize=noexpand ;
|
||||
optimize=all ;
|
||||
|
||||
-- To glue a particle to the preceding word. The lexer and unlexer
|
||||
-- are expected to deal with actual gluing and vowel harmony.
|
||||
|
||||
@@ -366,8 +370,8 @@ oper
|
||||
-- The order of the adjective and its argument depends on the case: the local
|
||||
-- cases favour Adj + Noun in the predicative position ("hyvä painissa",
|
||||
-- "tyytyväinen vaalitulokseen", "jaollinen kolmella"), which is not a possible
|
||||
-- order for the accusative case. A preposition seems not to seem affect
|
||||
-- the rule: ("yhtäsuuri kuin sinä", "sinua vastaan suunnattu").
|
||||
-- order for the accusative case. A preposition seems not to affect
|
||||
-- the rule: "yhtäsuuri kuin sinä", "sinua vastaan suunnattu".
|
||||
|
||||
|
||||
AdjCompl = Adjective ** {s3 : Str ; p : Bool ; c : ComplCase} ;
|
||||
@@ -377,7 +381,7 @@ oper
|
||||
hyvat : AForm => Str = \\a => hyva.s ! a ;
|
||||
c : NPForm = complCase True hyva.c (SVI VIInf3Iness) ;
|
||||
painissa : Str = pPosit hyva.s3 hyva.p (paini.s ! c) ;
|
||||
haspp : Bool = notB (isNil hyva.s3)
|
||||
haspp : Bool = notB hyva.p
|
||||
in
|
||||
{s = table {
|
||||
AAttr => \\a => painissa ++ hyvat ! a ;
|
||||
@@ -958,6 +962,8 @@ oper
|
||||
(complementCase b ostaa.c (Pres jussi.n (np2Person jussi.p)))
|
||||
} ;
|
||||
-}
|
||||
|
||||
|
||||
--2 Relative pronouns and relative clauses
|
||||
--
|
||||
-- As described in $types.Fin.gf$, relative pronouns are inflected like
|
||||
@@ -970,23 +976,30 @@ oper
|
||||
funRelPron : Function -> RelPron -> RelPron = \vaimo, joka ->
|
||||
{s = \\n,c => joka.s ! n ! npForm2Case n vaimo.c ++ vaimo.s ! False ! n ! c} ;
|
||||
|
||||
-- To use a relative pronoun as a noun phrase.
|
||||
|
||||
relNounPhrase : Number -> RelPron -> NounPhrase = \n,rel ->
|
||||
{s = \\f => rel.s ! n ! npForm2Case n f ; n = n ; p = NP3} ;
|
||||
|
||||
|
||||
-- Relative clauses can be formed from both verb phrases ("joka ui") and
|
||||
-- slash expressions ("jonka sinä näet", "jonka kautta sinä käyt").
|
||||
|
||||
RelClause : Type = {s : Number => Str} ;
|
||||
RelClause : Type = {s : Bool => SForm => Number => Str} ;
|
||||
RelSentence : Type = {s : Number => Str} ;
|
||||
{-
|
||||
relVerbPhrase : RelPron -> VerbPhrase -> RelClause = \joka,ui ->
|
||||
{s = \\n => joka.s ! n ! npForm2Case n (complementCase True ui.c Inf) ++
|
||||
ui.s ! Pres n P3 ++ ui.s2 ! Pres n P3} ;
|
||||
-}
|
||||
|
||||
relSlash : RelPron -> SentenceSlashNounPhrase -> RelClause = \joka,saat ->
|
||||
{s = \\n => joka.s ! n ! saat.c ++ saat.s2 ++ saat.s} ;
|
||||
|
||||
-}
|
||||
-- A 'degenerate' relative clause is the one often used in mathematics, e.g.
|
||||
-- "luku x siten että x on parillinen".
|
||||
|
||||
relSuch : Sentence -> RelClause = \A ->
|
||||
{s = \\_ => advSiten ++ conjEtta ++ A.s} ;
|
||||
relSuch : Clause -> RelClause = \A ->
|
||||
{s = \\b,s,_ => advSiten ++ conjEtta ++ A.s ! b ! s} ;
|
||||
|
||||
-- N.B. the construction "sellainen että" is not possible with the present
|
||||
-- typing of the relative clause, since it should also be inflected in
|
||||
@@ -997,7 +1010,7 @@ oper
|
||||
-- by determiners. We use no comma before these relative clauses, even though
|
||||
-- conservative standard Finnish does.
|
||||
|
||||
modRelClause : CommNounPhrase -> RelClause -> CommNounPhrase = \mies,jokaui ->
|
||||
modRelClause : CommNounPhrase -> RelSentence -> CommNounPhrase = \mies,jokaui ->
|
||||
{s = \\b,n,c => mies.s ! b ! n ! c ++ jokaui.s ! n ;
|
||||
g = mies.g
|
||||
} ;
|
||||
|
||||
Reference in New Issue
Block a user