mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-14 07:19:31 -06:00
more general discourse particles in Finnish
This commit is contained in:
@@ -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 ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user