summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/discourse/Discourse.gf32
-rw-r--r--examples/discourse/DiscourseEng.gf54
-rw-r--r--examples/discourse/DiscourseFin.gf53
-rw-r--r--examples/discourse/particles.txt55
4 files changed, 194 insertions, 0 deletions
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)
+
+