finnish rel

This commit is contained in:
aarne
2005-09-13 10:56:44 +00:00
parent daca36e917
commit ff0a5c418c
3 changed files with 47 additions and 2 deletions

View File

@@ -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") ;

View File

@@ -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

View File

@@ -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.