From 9c68dbcdb108a84fee55f902029572552b59f23e Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 9 Feb 2011 16:42:15 +0000 Subject: [PATCH] more general discourse particles in Finnish --- examples/discourse/Discourse.gf | 27 ++++++++-------- examples/discourse/DiscourseFin.gf | 50 +++++++++--------------------- 2 files changed, 28 insertions(+), 49 deletions(-) diff --git a/examples/discourse/Discourse.gf b/examples/discourse/Discourse.gf index 2ff18037c..1172032c5 100644 --- a/examples/discourse/Discourse.gf +++ b/examples/discourse/Discourse.gf @@ -9,16 +9,17 @@ abstract Discourse = flags startcat = S ; cat - Clause ; -- clause with subject, verb, object - Part ; -- discource particle + Marker ; -- discourse marker fun - ClauseS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juo nyt maitoa - SubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussikinhan juo nyt maitoa - VerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juokin nyt maitoa - AdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- Jussihan juo nytkin maitoa - ObjKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juo nyt maitoakin + ClauseS : Marker -> Temp -> Pol -> NP -> VP -> S ; -- Jussihan juo maitoa nyt + FocSubjS : Marker -> Temp -> Pol -> NP -> VP -> S ; -- Jussikinhan juo maitoa nyt + FocVerbS : Marker -> Temp -> Pol -> NP -> VP -> S ; -- Jussihan juokin maitoa nyt + FocObjS : Marker -> Temp -> Pol -> NP -> VPSlash -> NP -> S ; -- Jussihan juo maitoakin nyt + FocAdvS : Marker -> Temp -> Pol -> NP -> VP -> Adv -> S ; -- Jussihan juo maitoa nytkin + +{- PreAdvS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän Jussi juo maitoa PreAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nytkinhän Jussi juo maitoa PreAdvSubjKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän Jussikin juo maitoa @@ -29,14 +30,12 @@ fun PreObjSubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- maitoahan Jussikin juo nyt PreObjVerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- maitoahan Jussi juokin nyt - PreVerbS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussi nyt maitoa - PreVerbSubKinS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussikin nyt maitoa + PreVerbS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussi maitoa nyt + PreVerbSubKinS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussikin maitoa nyt PreVerbAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- juohan Jussi nytkin maitoa - PreVerbObjKinS : Part -> Temp -> Pol -> NP -> Clause -> S ; -- juohan Jussi nyt maitoakin + PreVerbObjKinS : Part -> Temp -> Pol -> NP -> Clause -> S ; -- juohan Jussi maitoa nytkin +-} - - PredClause : NP -> VP -> Clause ; - - noPart, han_Part, pas_Part : Part ; + neutralMarker, remindMarker, contrastMarker : Marker ; } diff --git a/examples/discourse/DiscourseFin.gf b/examples/discourse/DiscourseFin.gf index 4fa1062b6..c9fc0c6d2 100644 --- a/examples/discourse/DiscourseFin.gf +++ b/examples/discourse/DiscourseFin.gf @@ -2,49 +2,29 @@ concrete DiscourseFin of Discourse = LexiconFin, - NounFin, VerbFin - [SlashV2VNP,SlashVV], + NounFin, VerbFin - [SlashV2VNP,SlashVV, Slash2V3, Slash3V3], AdjectiveFin, AdverbFin, StructuralFin - [nobody_NP,nothing_NP], TenseX ** open SyntaxFin, (P = ParadigmsFin), (R = ParamX), (E = ExtraFin), Prelude in { lincat - Clause = {subj : NP ; vp : VP} ; - OClause = {subj : NP ; v : V2 ; obj : NP} ; - Part = Adv ; + Marker = E.Part ; lin - ClauseS part temp pol cl = - mkS temp pol (mkCl (mkNP cl.subj part) cl.vp) ; - SubjKinS part temp pol cl = - mkS temp pol (mkCl (mkNP (mkNP cl.subj (kin.s ! pol.p)) part) cl.vp) ; - VerbKinS part temp pol cl = - mkS temp pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ; - AdvKinS part temp pol adv cl = - mkS temp pol (mkCl (mkNP cl.subj part) (mkVP (mkVP cl.vp adv) (kin.s ! pol.p))) ; + ClauseS marker temp pol np vp = + E.S_SVO marker temp pol (E.PredClPlus np vp) ; + FocSubjS marker temp pol np vp = + E.S_SVO marker temp pol (E.PredClPlusFocSubj np vp) ; + FocVerbS marker temp pol np vp = + E.S_SVO marker temp pol (E.PredClPlusFocVerb np vp) ; + FocObjS marker temp pol np vp obj = + E.S_SVO marker temp pol (E.PredClPlusFocObj np vp obj) ; + FocAdvS marker temp pol np vp adv = + E.S_SVO marker temp pol (E.PredClPlusFocAdv np vp adv) ; - PreAdvS part temp pol adv cl = - mkS adv (mkS part (mkS temp pol (mkCl cl.subj cl.vp))) ; - PreAdvKinS part temp pol adv cl = - mkS adv (mkS part (mkS (kin.s ! pol.p) (mkS temp pol (mkCl cl.subj cl.vp)))) ; - PreAdvSubjKinS part temp pol adv cl = - mkS adv (mkS part (mkS temp pol (mkCl (mkNP cl.subj (kin.s ! pol.p)) cl.vp))) ; - PreAdvVerbKinS part temp pol adv cl = - mkS adv (mkS part (mkS temp pol (mkCl cl.subj (mkVP cl.vp (kin.s ! pol.p))))) ; - - PredClause subj v = {subj = subj ; vp = v} ; - PredOClause subj v obj = {subj = subj ; v = v ; obj = obj} ; - UseOClause oc = {subj = oc.subj ; vp = mkVP oc.v oc.obj} ; - - noPart = P.mkAdv [] ; - han_Part = P.mkAdv (glueTok "han") ; - pa_Part = P.mkAdv (glueTok "pa") ; - pas_Part = P.mkAdv (glueTok "pas") ; - -oper - kin : {s : R.Polarity => Adv} = - {s = table {R.Pos => P.mkAdv (glueTok "kin") ; R.Neg => P.mkAdv (glueTok "kaan")}} ; - - glueTok : Str -> Str = \s -> "&+" ++ s ; + neutralMarker = E.noPart ; + remindMarker = E.han_Part ; + contrastMarker = E.pas_Part ; }