From 3c82593fdd59cb6d8861c5a7d37faa50cddbac3b Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 8 Feb 2011 12:30:13 +0000 Subject: [PATCH] examples/discourse on Finnish discourse particles and their translations --- examples/discourse/Discourse.gf | 32 +++++++++++++++++ examples/discourse/DiscourseEng.gf | 54 +++++++++++++++++++++++++++++ examples/discourse/DiscourseFin.gf | 53 ++++++++++++++++++++++++++++ examples/discourse/particles.txt | 55 ++++++++++++++++++++++++++++++ 4 files changed, 194 insertions(+) create mode 100644 examples/discourse/Discourse.gf create mode 100644 examples/discourse/DiscourseEng.gf create mode 100644 examples/discourse/DiscourseFin.gf create mode 100644 examples/discourse/particles.txt diff --git a/examples/discourse/Discourse.gf b/examples/discourse/Discourse.gf new file mode 100644 index 000000000..429fbd0c2 --- /dev/null +++ b/examples/discourse/Discourse.gf @@ -0,0 +1,32 @@ +abstract Discourse = + Lexicon, + Noun, Verb, + Adjective, Adverb, + Structural - [nobody_NP, nothing_NP], + Tense +** { + +flags startcat = S ; + +cat + Clause ; Part ; + +fun + ClauseS : Part -> Temp -> Pol -> Clause -> S ; -- arihan juo nyt + SubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- arikinhan juo nyt + VerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- arihan juokin nyt + AdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- arihan juo nytkin + PreAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nytkinhän ari juo + 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 +--- doesn't put in right place + + PredClause : NP -> VP -> Clause ; + + noPart, han_Part, pa_Part, pas_Part, ko_Part, kos_Part, kohan_Part, pahan_Part : Part ; + +} diff --git a/examples/discourse/DiscourseEng.gf b/examples/discourse/DiscourseEng.gf new file mode 100644 index 000000000..695f70679 --- /dev/null +++ b/examples/discourse/DiscourseEng.gf @@ -0,0 +1,54 @@ +--# -path=.:alltenses + +concrete DiscourseEng of Discourse = + LexiconEng, + NounEng, VerbEng, + AdjectiveEng, AdverbEng, + StructuralEng - [nobody_NP, nothing_NP], + TenseX +** open SyntaxEng, (P = ParadigmsEng), (R = ParamX), Prelude in { + +lincat + Clause = {subj : NP ; vp : VP} ; + Part = Adv ; + +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))) ; + 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))))) ; + 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} ; + +--- AnterVerbS part kin t pol cl = +--- mkS t anteriorAnt pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ; + + 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 + kin : {s : R.Polarity => Adv} = + {s = table {R.Pos => P.mkAdv "too" ; R.Neg => P.mkAdv "either"}} ; + +} diff --git a/examples/discourse/DiscourseFin.gf b/examples/discourse/DiscourseFin.gf new file mode 100644 index 000000000..6c577d086 --- /dev/null +++ b/examples/discourse/DiscourseFin.gf @@ -0,0 +1,53 @@ +--# -path=.:alltenses + +concrete DiscourseFin of Discourse = + LexiconFin, + NounFin, VerbFin - [SlashV2VNP,SlashVV], + AdjectiveFin, AdverbFin, + StructuralFin - [nobody_NP,nothing_NP], + TenseX +** open SyntaxFin, (P = ParadigmsFin), (R = ParamX), Prelude in { + +lincat + Clause = {subj : NP ; vp : VP} ; + Part = Adv ; + +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))) ; + 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))))) ; + 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} ; + + noPart = P.mkAdv [] ; + han_Part = P.mkAdv (glueTok "han") ; + pa_Part = P.mkAdv (glueTok "pa") ; + 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 + kin : {s : R.Polarity => Adv} = + {s = table {R.Pos => P.mkAdv (glueTok "kin") ; R.Neg => P.mkAdv (glueTok "kaan")}} ; + + glueTok : Str -> Str = \s -> "&+" ++ s ; + +} diff --git a/examples/discourse/particles.txt b/examples/discourse/particles.txt new file mode 100644 index 000000000..e47724b84 --- /dev/null +++ b/examples/discourse/particles.txt @@ -0,0 +1,55 @@ +On the syntax of clitic particles in Finnish + +-- AR 29/12/2010 + +The clitic particles come in two groups: + + Pas ::= pas | pa | han | kos | ko | kohan | pahan -- free variation + Kin ::= kin/kaan -- depending on polarity + +(vowel harmony ignored). A Finnish sentence can have at most one of each. A Pas clitic is +always attached to the first word ("Aripas juo maitoa") or phrase such as NP +("minun poikanipas juo maitoa"). A Kin clitic can be attached to almost any word; if the +same as Pas, Kin must come first ("Arikinhan juo maitoa"). Some combinations are clumsy +but presumably OK ("Arikinpas"). If the verb is first, it doesn't seem to allow Kin +(*"juokin Ari maitoa"). + +The following is a list of combinatory possibilities. Adverbs (represented by "nyt") +can be added ad libitum - at most two of them then become carriers of clitics +("nythän Ari juo maitoa täälläkin"). + + +-- declaratives and questions + +(Notice that, in the presence of "ei", Kin is "kaan", otherwise "kin".) + +ari Pas? ei? (juo Kin maitoa nyt | juo maitoa Kin nyt | juo maitoa nyt Kin?) +maitoa Pas? ei? (ari Kin juo nyt | ari juo Kin nyt | ari juo nyt Kin?) +nyt Pas? ei? (ari Kin juo maitoa | ari juo Kin maitoa | ari juo maitoa Kin?) + +ari Kin Pas? ei? juo maitoa nyt +maitoa Kin Pas? ari ei? juo nyt +nyt Kin Pas? ari ei? juo maitoa + +juo Pas? (ari Kin maitoa nyt | ari maitoa Kin nyt | ari maitoa nyt Kin?) +ei Pas? (ari Kin juo maitoa nyt | ari juo Kin maitoa nyt | ari juo maitoa Kin nyt | + ari juo maitoa nyt Kin?) + +-- imperatives + +The question clitic is (for obvious semantic reasons) omitted from the Pas category: + + Pas- ::= pa | pas | han | pahan + +juo Pas-? (ari Kin maitoa nyt | ari maitoa Kin nyt | ari maitoa nyt Kin?) +älä Pas-? (ari Kin juo maitoa nyt | ari juo Kin maitoa nyt | ari juo maitoa Kin nyt + | ari juo maitoa nyt Kin?) + + +-- negation word + +Strangely enough, Kin seems to be getting accepted in plural (= two-syllabic) negations: + + *enkään, *etkään, *eikään, ?emmekään, ?ettekään, ?eivätkään (quite some Google hits) + +