mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
finnish rel
This commit is contained in:
@@ -94,7 +94,7 @@ lin
|
||||
harbour_N = nKukko "satama" "sataman" "satamia" ;
|
||||
hate_V2 = dirV2 (regV "vihata") ;
|
||||
hat_N = nLukko "hattu" ;
|
||||
have_V2 = dirV2 (caseV adessive vOlla) ;
|
||||
have_V2 = caseV2 (caseV adessive vOlla) nominative ;
|
||||
hear_V2 = dirV2 (regV "kuulla") ;
|
||||
hill_N = nLukko "kukkula" ;
|
||||
hope_VS = mkVS (regV "toivoa") ;
|
||||
|
||||
@@ -77,6 +77,12 @@ concrete ClauseFin of Clause = CategoriesFin **
|
||||
SPredAdv subj adv =
|
||||
sats2clause (mkSatsCopula subj adv.s) ;
|
||||
|
||||
|
||||
QPredV np v =
|
||||
sats2quest (mkSats (intNounPhrase np) v) ;
|
||||
QPredV2 np v y =
|
||||
sats2quest (mkSatsObject (intNounPhrase np) v y) ;
|
||||
|
||||
--------
|
||||
{-
|
||||
QPredV np v =
|
||||
@@ -153,10 +159,24 @@ concrete ClauseFin of Clause = CategoriesFin **
|
||||
sats2quest (mkSatsCopula (intNounPhrase subj) adv.s) ;
|
||||
|
||||
QPredProgVP np vp = sats2quest (progressiveSats (intNounPhrase np) vp) ;
|
||||
-}
|
||||
|
||||
|
||||
----- gender and number of Adj
|
||||
RPredV np v =
|
||||
sats2rel (mkSatsRel np v) ;
|
||||
RPredV2 np v y =
|
||||
sats2rel (mkSatsObjectRel np v y) ;
|
||||
|
||||
RPredAP subj adj =
|
||||
sats2rel (\num -> mkSatsCopulaRel subj (complAdjPhrase num adj) num) ;
|
||||
RPredCN subj cn =
|
||||
sats2rel (\num -> mkSatsCopulaRel subj (complCommNoun num cn) num) ;
|
||||
RPredNP subj np =
|
||||
sats2rel (mkSatsCopulaRel subj (np.s ! NPCase Nom)) ;
|
||||
RPredAdv subj adv =
|
||||
sats2rel (mkSatsCopulaRel subj adv.s) ;
|
||||
|
||||
{-
|
||||
IPredV a v =
|
||||
sats2verbPhrase a (mkSats pronImpers v) ;
|
||||
IPredV2 a v y =
|
||||
@@ -235,6 +255,8 @@ concrete ClauseFin of Clause = CategoriesFin **
|
||||
|
||||
-}
|
||||
|
||||
|
||||
|
||||
{-
|
||||
-- Use VPs
|
||||
|
||||
|
||||
@@ -595,6 +595,20 @@ oper
|
||||
-}
|
||||
----
|
||||
|
||||
|
||||
-- This is for questions with $IP$, thus with normal word order and no "ko".
|
||||
|
||||
sats2quest : Sats -> QuestClause = \sats ->
|
||||
{s = \\bsf => sats.s ! <SDecl, bsf.p1, bsf.p2>} ;
|
||||
|
||||
-- This is a nice and natural hack with higher-order functions, for $ClauseFin$.
|
||||
|
||||
sats2rel : (Number -> Sats) -> RelClause = \fsats ->
|
||||
{s = \\b,sf,n => (fsats n).s ! <SDecl,b,sf>} ;
|
||||
|
||||
mkSatsRel : RelPron -> Verb1 -> Number -> Sats = \rel,verb,n ->
|
||||
mkSats (relNounPhrase n rel) verb ;
|
||||
|
||||
mkSats : NounPhrase -> Verb1 -> Sats = \subj,verb -> {s =
|
||||
\\stbsf =>
|
||||
let
|
||||
@@ -679,9 +693,14 @@ oper
|
||||
-}
|
||||
mkSatsObject : NounPhrase -> TransVerb -> NounPhrase -> Sats = \subj,verb,obj ->
|
||||
insertObject (mkSats subj verb) verb.c verb.s3 verb.p obj ;
|
||||
mkSatsObjectRel : RelPron -> TransVerb -> NounPhrase -> Number -> Sats =
|
||||
\subj,verb,obj,n ->
|
||||
insertObject (mkSatsRel subj verb n) verb.c verb.s3 verb.p obj ;
|
||||
|
||||
mkSatsCopula : NounPhrase -> Str -> Sats = \subj,comp ->
|
||||
insertComplement (mkSats subj (vNom verbOlla)) comp ;
|
||||
mkSatsCopulaRel : RelPron -> Str -> Number -> Sats = \subj,comp,n ->
|
||||
insertComplement (mkSatsRel subj (vNom verbOlla) n) comp ;
|
||||
|
||||
insertObject : Sats -> ComplCase -> Str -> Bool -> NounPhrase -> Sats =
|
||||
\sats, c, prep, pos, obj -> {s =
|
||||
@@ -1206,6 +1225,10 @@ oper
|
||||
|
||||
IntPron : Type = {s : NPForm => Str ; n : Number} ;
|
||||
|
||||
-- Thus it is simple to make $IP $ into $NP$ (used as auxiliary in predication).
|
||||
|
||||
intNounPhrase : IntPron -> NounPhrase = \ip -> ip ** {p = NP3} ;
|
||||
|
||||
-- In analogy with relative pronouns, we have a rule for applying a function
|
||||
-- to a relative pronoun to create a new one.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user