experimenting with discourse particles in DiscourseFin

This commit is contained in:
aarne
2011-02-08 15:49:47 +00:00
parent 3c82593fdd
commit 9aeb51b4a5
3 changed files with 35 additions and 39 deletions

View File

@@ -9,24 +9,34 @@ abstract Discourse =
flags startcat = S ; flags startcat = S ;
cat cat
Clause ; Part ; Clause ; -- clause with subject, verb, object
Part ; -- discource particle
fun fun
ClauseS : Part -> Temp -> Pol -> Clause -> S ; -- arihan juo nyt ClauseS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juo nyt maitoa
SubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- arikinhan juo nyt SubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussikinhan juo nyt maitoa
VerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- arihan juokin nyt VerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juokin nyt maitoa
AdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- arihan juo nytkin AdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- Jussihan juo nytkin maitoa
PreAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nytkinhän ari juo ObjKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juo nyt maitoakin
PreAdvS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän ari juo
PreAdvSubjKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän arikin juo
PreAdvVerbKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän ari juokin
PreAdvAdvKinS : Part -> Temp -> Pol -> Adv -> Adv -> Clause -> S ; -- nythän ari juo täälläkin
--- AnterVerbS : Part -> PartKin -> Tense -> Pol -> Clause -> S ; -- arihan onkin juonut PreAdvS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän Jussi juo maitoa
--- doesn't put in right place PreAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nytkinhän Jussi juo maitoa
PreAdvSubjKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän Jussikin juo maitoa
PreAdvVerbKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän Jussi juokin maitoa
PredClause : NP -> VP -> Clause ; PreObjS : Part -> Temp -> Pol -> Clause -> S ; -- maitoahan Jussi juo nyt
PreObjKinS : Part -> Temp -> Pol -> Clause -> S ; -- maitoakinhan Jussi juo nyt
PreObjSubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- maitoahan Jussikin juo nyt
PreObjVerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- maitoahan Jussi juokin nyt
noPart, han_Part, pa_Part, pas_Part, ko_Part, kos_Part, kohan_Part, pahan_Part : Part ; PreVerbS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussi nyt maitoa
PreVerbSubKinS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussikin nyt maitoa
PreVerbAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- juohan Jussi nytkin maitoa
PreVerbObjKinS : Part -> Temp -> Pol -> NP -> Clause -> S ; -- juohan Jussi nyt maitoakin
PredClause : NP -> VP -> Clause ;
noPart, han_Part, pas_Part : Part ;
} }

View File

@@ -10,7 +10,7 @@ concrete DiscourseEng of Discourse =
lincat lincat
Clause = {subj : NP ; vp : VP} ; Clause = {subj : NP ; vp : VP} ;
Part = Adv ; Part = {a : Adv ; isPre : Bool} ;
lin lin
ClauseS part temp pol cl = ClauseS part temp pol cl =
@@ -29,23 +29,12 @@ lin
mkS adv (mkS part (mkS temp pol (mkCl (mkNP cl.subj (kin.s ! pol.p)) cl.vp))) ; mkS adv (mkS part (mkS temp pol (mkCl (mkNP cl.subj (kin.s ! pol.p)) cl.vp))) ;
PreAdvVerbKinS part temp pol adv cl = PreAdvVerbKinS part temp pol adv cl =
mkS adv (mkS part (mkS temp pol (mkCl cl.subj (mkVP cl.vp (kin.s ! pol.p))))) ; mkS adv (mkS part (mkS temp pol (mkCl cl.subj (mkVP cl.vp (kin.s ! pol.p))))) ;
PreAdvAdvKinS part temp pol adv1 adv2 cl =
mkS adv1 (mkS part (mkS temp pol (mkCl cl.subj (mkVP (mkVP cl.vp adv2) (kin.s ! pol.p))))) ;
PredClause subj v = {subj = subj ; vp = v} ; PredClause subj v = {subj = subj ; vp = v} ;
--- AnterVerbS part kin t pol cl = noPart = {a = P.mkAdv [] ; isPre = False} ;
--- mkS t anteriorAnt pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ; han_Part = {a = P.mkAdv "as you know" ; isPre = True} ;
pas_Part = {a = P.mkAdv "no" ; isPre = True} ;
noPart = P.mkAdv [] ;
han_Part = P.mkAdv "as you know" ;
pa_Part = P.mkAdv "and nobody else" ;
pas_Part = P.mkAdv "and nobody else" ;
ko_Part = P.mkAdv "whether" ;
kos_Part = P.mkAdv "whether" ;
kohan_Part = P.mkAdv "whether" ;
pahan_Part = P.mkAdv "and nobody else as you know" ;
oper oper
kin : {s : R.Polarity => Adv} = kin : {s : R.Polarity => Adv} =

View File

@@ -6,11 +6,12 @@ concrete DiscourseFin of Discourse =
AdjectiveFin, AdverbFin, AdjectiveFin, AdverbFin,
StructuralFin - [nobody_NP,nothing_NP], StructuralFin - [nobody_NP,nothing_NP],
TenseX TenseX
** open SyntaxFin, (P = ParadigmsFin), (R = ParamX), Prelude in { ** open SyntaxFin, (P = ParadigmsFin), (R = ParamX), (E = ExtraFin), Prelude in {
lincat lincat
Clause = {subj : NP ; vp : VP} ; Clause = {subj : NP ; vp : VP} ;
Part = Adv ; OClause = {subj : NP ; v : V2 ; obj : NP} ;
Part = Adv ;
lin lin
ClauseS part temp pol cl = ClauseS part temp pol cl =
@@ -21,6 +22,7 @@ lin
mkS temp pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ; mkS temp pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ;
AdvKinS part temp pol adv cl = AdvKinS part temp pol adv cl =
mkS temp pol (mkCl (mkNP cl.subj part) (mkVP (mkVP cl.vp adv) (kin.s ! pol.p))) ; mkS temp pol (mkCl (mkNP cl.subj part) (mkVP (mkVP cl.vp adv) (kin.s ! pol.p))) ;
PreAdvS part temp pol adv cl = PreAdvS part temp pol adv cl =
mkS adv (mkS part (mkS temp pol (mkCl cl.subj cl.vp))) ; mkS adv (mkS part (mkS temp pol (mkCl cl.subj cl.vp))) ;
PreAdvKinS part temp pol adv cl = PreAdvKinS part temp pol adv cl =
@@ -29,20 +31,15 @@ lin
mkS adv (mkS part (mkS temp pol (mkCl (mkNP cl.subj (kin.s ! pol.p)) cl.vp))) ; mkS adv (mkS part (mkS temp pol (mkCl (mkNP cl.subj (kin.s ! pol.p)) cl.vp))) ;
PreAdvVerbKinS part temp pol adv cl = PreAdvVerbKinS part temp pol adv cl =
mkS adv (mkS part (mkS temp pol (mkCl cl.subj (mkVP cl.vp (kin.s ! pol.p))))) ; mkS adv (mkS part (mkS temp pol (mkCl cl.subj (mkVP cl.vp (kin.s ! pol.p))))) ;
PreAdvAdvKinS part temp pol adv1 adv2 cl =
mkS adv1 (mkS part (mkS temp pol (mkCl cl.subj (mkVP (mkVP cl.vp adv2) (kin.s ! pol.p))))) ;
PredClause subj v = {subj = subj ; vp = v} ; 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 [] ; noPart = P.mkAdv [] ;
han_Part = P.mkAdv (glueTok "han") ; han_Part = P.mkAdv (glueTok "han") ;
pa_Part = P.mkAdv (glueTok "pa") ; pa_Part = P.mkAdv (glueTok "pa") ;
pas_Part = P.mkAdv (glueTok "pas") ; pas_Part = P.mkAdv (glueTok "pas") ;
ko_Part = P.mkAdv (glueTok "ko") ;
kos_Part = P.mkAdv (glueTok "kos") ;
kohan_Part = P.mkAdv (glueTok "kohan") ;
pahan_Part = P.mkAdv (glueTok "pahan") ;
oper oper
kin : {s : R.Polarity => Adv} = kin : {s : R.Polarity => Adv} =