From 9506a01aabe9b0b40d0f80cd55fa0c615559f0fd Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 24 Aug 2012 06:30:10 +0000 Subject: [PATCH] extended mini resource grammar in examples, with Eng, Ita, Cmn (Mandarin Chinese by Jolene) --- examples/extmini/Grammar.gf | 105 +++ examples/extmini/GrammarCmn.gf | 274 +++++++ examples/extmini/GrammarEng.gf | 241 ++++++ examples/extmini/GrammarIta.gf | 263 ++++++ examples/extmini/Lang.gf | 1 + examples/extmini/LangCmn.gf | 1 + examples/extmini/LangEng.gf | 1 + examples/extmini/LangIta.gf | 1 + examples/extmini/Lexicon.gf | 12 + examples/extmini/LexiconCmn.gf | 23 + examples/extmini/LexiconEng.gf | 24 + examples/extmini/LexiconIta.gf | 33 + examples/extmini/ParadigmsCmn.gf | 21 + examples/extmini/ParadigmsEng.gf | 36 + examples/extmini/ParadigmsIta.gf | 64 ++ examples/extmini/README | 10 + examples/extmini/ResCmn.gf | 92 +++ examples/extmini/ResEng.gf | 156 ++++ examples/extmini/ResIta.gf | 259 ++++++ examples/extmini/Syntax.gf | 47 ++ examples/extmini/SyntaxCmn.gf | 3 + examples/extmini/SyntaxEng.gf | 3 + examples/extmini/SyntaxIta.gf | 3 + examples/extmini/compsyntax-test-Ita.txt | 981 +++++++++++++++++++++++ examples/extmini/compsyntax.gfs | 14 + 25 files changed, 2668 insertions(+) create mode 100644 examples/extmini/Grammar.gf create mode 100644 examples/extmini/GrammarCmn.gf create mode 100644 examples/extmini/GrammarEng.gf create mode 100644 examples/extmini/GrammarIta.gf create mode 100644 examples/extmini/Lang.gf create mode 100644 examples/extmini/LangCmn.gf create mode 100644 examples/extmini/LangEng.gf create mode 100644 examples/extmini/LangIta.gf create mode 100644 examples/extmini/Lexicon.gf create mode 100644 examples/extmini/LexiconCmn.gf create mode 100644 examples/extmini/LexiconEng.gf create mode 100644 examples/extmini/LexiconIta.gf create mode 100644 examples/extmini/ParadigmsCmn.gf create mode 100644 examples/extmini/ParadigmsEng.gf create mode 100644 examples/extmini/ParadigmsIta.gf create mode 100644 examples/extmini/README create mode 100644 examples/extmini/ResCmn.gf create mode 100644 examples/extmini/ResEng.gf create mode 100644 examples/extmini/ResIta.gf create mode 100644 examples/extmini/Syntax.gf create mode 100644 examples/extmini/SyntaxCmn.gf create mode 100644 examples/extmini/SyntaxEng.gf create mode 100644 examples/extmini/SyntaxIta.gf create mode 100644 examples/extmini/compsyntax-test-Ita.txt create mode 100644 examples/extmini/compsyntax.gfs diff --git a/examples/extmini/Grammar.gf b/examples/extmini/Grammar.gf new file mode 100644 index 000000000..01242c470 --- /dev/null +++ b/examples/extmini/Grammar.gf @@ -0,0 +1,105 @@ +abstract Grammar = { + + flags startcat = Utt ; + +-- the "mini" resource of GF book, chapter 9 + + cat + S ; -- sentence + Cl ; -- clause + NP ; -- noun phrase + VP ; -- verb phrase + AP ; -- adjectival phrase + CN ; -- common noun + Det ; -- determiner + N ; -- noun + A ; -- adjective + V ; -- verb (one-place, intransitive) + V2 ; -- two-place verb (two-place, transitive or prepositional) + AdA ; -- ad-adjective + Tense ; -- tense + Pol ; -- polarity + Conj ; -- conjunction + + fun + UseCl : Tense -> Pol -> Cl -> S ; + PredVP : NP -> VP -> Cl ; + ComplV2 : V2 -> NP -> VP ; + DetCN : Det -> CN -> NP ; + ModCN : AP -> CN -> CN ; + + CompAP : AP -> VP ; + AdAP : AdA -> AP -> AP ; + + ConjS : Conj -> S -> S -> S ; + ConjAP : Conj -> AP -> AP -> AP ; + ConjNP : Conj -> NP -> NP -> NP ; + + UseV : V -> VP ; + UseN : N -> CN ; + UseA : A -> AP ; + + a_Det, the_Det, every_Det : Det ; + this_Det, these_Det : Det ; + that_Det, those_Det : Det ; + i_NP, youSg_NP, he_NP, she_NP, we_NP, youPl_NP, they_NP : NP ; + very_AdA : AdA ; + + Pos, Neg : Pol ; + Pres, Past, Perf, Fut : Tense ; + + and_Conj, or_Conj : Conj ; + +-- extension of the mini grammar + + cat + Utt ; -- utterance (sentence or question) e.g. "does she walk" + QS ; -- question (fixed tense) e.g. "who doesn't walk" + QCl ; -- question clause (variable tense) e.g. "who walks" + ClSlash ; -- clause missing noun phrase e.g. "she walks with" + Adv ; -- adverb e.g. "here" + Prep ; -- preposition (and/or case) e.g. "with" + VS ; -- sentence-complement verb e.g. "know" + VQ ; -- question-complement verb e.g. "wonder" + VV ; -- verb-phrase-complement verb e.g. "want" + IP ; -- interrogative pronoun e.g. "who" + PN ; -- proper name e.g. "John" + Subj ; -- subjunction e.g. "because" + IAdv ; -- interrogative adverb e.g. "why" + + fun + UttS : S -> Utt ; + UttQS : QS -> Utt ; + + UseQCl : Tense -> Pol -> QCl -> QS ; + + QuestCl : Cl -> QCl ; -- does she walk + QuestVP : IP -> VP -> QCl ; -- who walks + QuestSlash : IP -> ClSlash -> QCl ; -- who does she walk with + QuestIAdv : IAdv -> Cl -> QCl ; -- why does she walk + + SubjCl : Cl -> Subj -> S -> Cl ; -- she walks because we run + + CompAdv : Adv -> VP ; -- be here + PrepNP : Prep -> NP -> Adv ; -- in the house + + ComplVS : VS -> S -> VP ; -- know that she walks + ComplVQ : VQ -> QS -> VP ; -- wonder who walks + ComplVV : VV -> VP -> VP ; -- want to walk + + SlashV2 : NP -> V2 -> ClSlash ; -- she loves + SlashPrep : Cl -> Prep -> ClSlash ; -- she walks with + + AdvVP : VP -> Adv -> VP ; -- walk in the city + + UsePN : PN -> NP ; -- John + AdvNP : NP -> Adv -> NP ; -- the man in the city + + who_IP : IP ; + here_Adv : Adv ; + by_Prep, in_Prep, of_Prep, with_Prep : Prep ; + can_VV, must_VV, want_VV : VV ; + although_Subj, because_Subj, when_Subj : Subj ; + when_IAdv, where_IAdv, why_IAdv : IAdv ; + +} diff --git a/examples/extmini/GrammarCmn.gf b/examples/extmini/GrammarCmn.gf new file mode 100644 index 000000000..144db1b78 --- /dev/null +++ b/examples/extmini/GrammarCmn.gf @@ -0,0 +1,274 @@ +concrete GrammarCmn of Grammar = open ResCmn, Prelude in { +flags coding = utf8; + + lincat + S = {s : Aspect => Str} ; + Cl = {s : Bool => Aspect => Str; + np: Str; + vp: Bool => Aspect => Str} ; + NP = ResCmn.NP ; + -- {s : Str ; n : Number} ; + VP = ResCmn.VP ; + -- { verb : Verb ; compl : Str ; prePart : Str} ; + AP = {s : Str; monoSyl: Bool} ; + CN = ResCmn.Noun ; -- {s : Str; Counter : Str} ; + Det = {s : Str ; n : Number} ; + N = Noun ; -- {s : Str; Counter : Str} ; + A = ResCmn.Adj ; -- {s : Str; monoSyl: Bool} ; + V = ResCmn.Verb; + -- Verb : Type = {s : Bool => Aspect => Str ; vinf : Str} ; + V2 = ResCmn.Verb ; + AdA = {s : Str} ; + Pol = {s : Str ; b : Bool} ; + Tense = {s : Str ; t : TTense} ; + Conj = {s : SForm => Str} ; + + lin + + UseCl t p cl = {s = \\a => cl.s ! p.b ! a } ; + PredVP np vp = {s = \\p,a => np.s ++ vp.prePart ++ vp.verb.s ! p ! a ++ vp.compl; + np = np.s; + vp = \\p,a => vp.verb.s ! p ! a ++ vp.compl} ; + + ComplV2 v2 np = { + verb = v2 ; + compl = np.s ; + prePart = [] + } ; + + DetCN det cn = case det.n of { + Sg => {s = det.s ++ cn.Counter ++ cn.s ; n = Sg } ; + Pl => {s = det.s ++ "些" ++ cn.s ; n = Pl } + } ; + + ModCN ap cn = case ap.monoSyl of { + True => {s = ap.s ++ cn.s ; Counter = cn.Counter} ; + False => {s = ap.s ++ "的" ++ cn.s ; Counter = cn.Counter} + } ; + + CompAP ap = { + verb = copula ; + compl = ap.s ++ "的" ; + prePart = [] + } ; + + AdAP ada ap = { + s = ada.s ++ ap.s ; + monoSyl = False + } ; + + ConjS co x y = {s = \\a => x.s ! a ++ co.s ! Sent ++ y.s ! a} ; + ConjAP co x y = {s = x.s ++ co.s ! Phr APhrase ++ y.s; + monoSyl = False} ; + + ConjNP co x y = { + s = x.s ++ co.s ! Phr NPhrase ++ y.s ; + n = Pl + } ; + + + UseN n = n ; + + UseA adj = adj ; + + UseV v = { + verb = v ; + compl = [] ; + prePart = [] ; + } ; + + + a_Det = mkDet "一" Sg ; + every_Det = mkDet "每" Sg ; + the_Det = mkDet "那" Sg ; + + this_Det = mkDet "这" Sg ; + these_Det = mkDet "这" Pl ; + that_Det = mkDet "那" Sg ; + those_Det = mkDet "那" Pl ; + + i_NP = pronNP "我" Sg ; + youSg_NP = pronNP "你" Sg ; + he_NP = pronNP "他" Sg ; + she_NP = pronNP "她" Pl ; + we_NP = pronNP "我们" Pl ; + youPl_NP = pronNP "你们" Pl ; + they_NP = pronNP "他们" Pl ; + + very_AdA = ss "非常" ; + + + Pos = {s = [] ; b = True} ; + Neg = {s = [] ; b = False} ; + + Pres = {s = [] ; t = TPres} ; + Perf = {s = [] ; t = TPerf} ; + Past = {s = [] ; t = TPast} ; + Fut = {s = [] ; t = TFut} ; + + and_Conj = {s = table { + Phr NPhrase => "和" ; + Phr APhrase => "而" ; + Phr VPhrase => "又" ; + Sent => [] + } + } ; + + or_Conj = {s = table { + Phr _ => "或" ; + Sent => "还是" + } + } ; + +-- more + + lincat + Utt = {s : Str} ; + QS = {s : Aspect => Str} ; + QCl = {s : Bool => Aspect => Str; + np: Str; + vp: Bool => Aspect => Str} ; + PN = {s : Str ; n : Number } ; + + ClSlash = {s : Bool => Aspect => Str ; + np: Str ; + vp: Bool => Aspect => Str ; + prepMain : Str ; + prepPre : Str} ; + Adv = {s : Str ; prePart : Str} ; + Prep = {s : Str ; prePart : Str} ; + VS = Verb ; + VQ = Verb ; + VV = {s : Bool => Aspect => Str ; vinf : Str} ; + IP = {s : Str} ; + Subj = {prePart : Str ;sufPart : Str} ; + IAdv = {s : Str} ; + + lin + + UttS s = {s = s.s ! (ResCmn.Perf | ResCmn.DurStat | + ResCmn.DurProg | ResCmn.Exper) } ; + + UttQS s = {s = s.s ! (ResCmn.Perf | ResCmn.DurStat | + ResCmn.DurProg | ResCmn.Exper) } ; + + UseQCl t p cl = {s = \\a => cl.s ! p.b ! a} ; + + QuestCl cl = {s = \\p,a => cl.s ! p ! a ++ "吗"; + np = cl.np ; + vp = cl.vp } ; + + QuestVP ip vp = { + s = \\p,a => ip.s ++ vp.prePart ++ vp.verb.s ! p ! a ++ vp.compl ; + np = ip.s ; + vp = \\p,a => vp.prePart ++ vp.verb.s ! p ! a ++ vp.compl + } ; + + QuestSlash ip cls = { + s =\\p,a => cls.prepPre ++ cls.np ++ cls.prepMain ++ cls.vp ! p ! a ++ "的是" ++ ip.s ; + np = cls.np ; + vp = cls.vp + } ; + + QuestIAdv iadv cl = {s = \\p,a => cl.np ++ iadv.s ++ cl.vp ! p ! a ; + np = cl.np ; + vp = \\p,a => cl.vp ! p ! a + } ; + + SubjCl cl subj s = { + s = \\p,a => subj.prePart ++ s.s ! a ++ subj.sufPart ++ cl.s ! p ! a ; + np = subj.prePart ++ s.s ! ResCmn.Perf ++ subj.sufPart ++ cl.np ; + vp = \\p,a => cl.vp ! p ! a } ; + + CompAdv adv = { + verb = {s = table { + True => table { _ => "在"} ; + False => table { _ => "不在"} + } ; + vinf = "在" + } ; + compl = adv.s ; + prePart = [] + } ; + + PrepNP prep np = { + s = np.s ++ prep.s ; + prePart = prep.prePart + } ; + + ComplVS v s = { + verb = v ; + compl = s.s ! ResCmn.Perf ; + prePart = [] + } ; + + ComplVQ v q = { + verb = v ; + compl = q.s ! ResCmn.Perf ; + prePart = [] + } ; + + ComplVV v vp = { + verb = v ; + compl = vp.verb.vinf ++ vp.compl ; + prePart = vp.prePart + } ; + + SlashV2 np v2 = { + s = \\p,a => np.s ++ v2.s ! p ! a ; + np = np.s ; + vp = \\p,a => v2.s ! p ! a ; + prepMain = [] ; + prepPre = [] + } ; + + SlashPrep cl prep = { + s = \\b, a => cl.s ! b ! a ; + np = cl.np ; + vp = cl.vp ; + prepMain = prep.s ; + prepPre = prep.prePart + } ; + + AdvVP vp adv = { + verb = vp.verb ; + compl = vp.compl ; + prePart = adv.prePart ++ adv.s + } ; + + UsePN pn = { + s = pn.s ; + n = pn.n + } ; + + AdvNP np adv = { + s = adv.prePart ++ adv.s ++ "的" ++ np.s ; + n = np.n + } ; + + who_IP = ss "谁" ; + here_Adv = mkAdv [] "这里" ; + by_Prep = mkPrep "旁边" [] ; + in_Prep = mkPrep "里" []; + of_Prep = mkPrep "的" []; + with_Prep = mkPrep "一起" "和"; + + can_VV = {s = table{True => table{ _ => "能"}; + False =>table{ _ => "不能"} } ; + vinf = [] }; + must_VV = {s = table{True => table{ _ => "必须"}; + False =>table{ _ => "不能"} } ; + vinf = []}; + want_VV = {s = table{True => table{ _ => "想"}; + False =>table{ _ => "不想"} } ; + vinf = []}; + + although_Subj = mkSubj "虽然" "但"; + because_Subj = mkSubj "因为" "所以" ; + when_Subj = mkSubj [] "的时候" ; + + when_IAdv = ss "什么时候" ; + where_IAdv = ss "在哪里" ; + why_IAdv = ss "为什么" ; + +} diff --git a/examples/extmini/GrammarEng.gf b/examples/extmini/GrammarEng.gf new file mode 100644 index 000000000..5692255ba --- /dev/null +++ b/examples/extmini/GrammarEng.gf @@ -0,0 +1,241 @@ +concrete GrammarEng of Grammar = open ResEng, Prelude in { + lincat + S = {s : Str} ; + Cl = {s : ClForm => TTense => Bool => Str} ; + NP = ResEng.NP ; + -- {s : Case => Str ; a : Agr} ; + VP = ResEng.VP ; + -- {v : AgrVerb ; compl : Str} ; + AP = {s : Str} ; + CN = Noun ; -- {s : Number => Str} ; + Det = {s : Str ; n : Number} ; + N = Noun ; -- {s : Number => Str} ; + A = Adj ; -- {s : Str} ; + V = Verb ; -- {s : VForm => Str} ; + V2 = Verb ** {c : Str} ; + AdA = {s : Str} ; + Pol = {s : Str ; b : Bool} ; + Tense = {s : Str ; t : TTense} ; + Conj = {s : Str ; n : Number} ; + lin + UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! ClDir ! t.t ! p.b} ; + PredVP np vp = { + s = \\d,t,b => + let + vps = vp.verb.s ! d ! t ! b ! np.a + in case d of { + ClDir => np.s ! Nom ++ vps.fin ++ vps.inf ++ vp.compl ; + ClInv => vps.fin ++ np.s ! Nom ++ vps.inf ++ vp.compl + } + } ; + + ComplV2 v2 np = { + verb = agrV v2 ; + compl = v2.c ++ np.s ! Acc + } ; + + UseV v = { + verb = agrV v ; + compl = [] + } ; + + DetCN det cn = { + s = \\_ => det.s ++ cn.s ! det.n ; + a = Ag det.n Per3 + } ; + + ModCN ap cn = { + s = \\n => ap.s ++ cn.s ! n + } ; + + CompAP ap = { + verb = copula ; + compl = ap.s + } ; + + AdAP ada ap = { + s = ada.s ++ ap.s + } ; + + ConjS co x y = {s = x.s ++ co.s ++ y.s} ; + ConjAP co x y = {s = x.s ++ co.s ++ y.s} ; + + ConjNP co nx ny = { + s = \\c => nx.s ! c ++ co.s ++ ny.s ! c ; + a = conjAgr co.n nx.a ny.a + } ; + + UseN n = n ; + + UseA adj = adj ; + + a_Det = mkDet (pre {#vowel => "an" ; _ => "a"}) Sg ; + + every_Det = mkDet "every" Sg ; + + the_Det = mkDet "the" Sg ; + + this_Det = mkDet "this" Sg ; + these_Det = mkDet "these" Pl ; + that_Det = mkDet "that" Sg ; + those_Det = mkDet "those" Pl ; + + i_NP = pronNP "I" "me" Sg Per1 ; + youSg_NP = pronNP "you" "you" Sg Per2 ; + he_NP = pronNP "her" "him" Sg Per3 ; + she_NP = pronNP "she" "her" Sg Per3 ; + we_NP = pronNP "we" "us" Pl Per1 ; + youPl_NP = pronNP "you" "you" Pl Per2 ; + they_NP = pronNP "they" "them" Pl Per3 ; + + very_AdA = ss "very" ; + + Pos = {s = [] ; b = True} ; + Neg = {s = [] ; b = False} ; + Pres = {s = [] ; t = TPres} ; + Perf = {s = [] ; t = TPerf} ; + Past = {s = [] ; t = TPast} ; + Fut = {s = [] ; t = TFut} ; + + and_Conj = {s = "and" ; n = Pl} ; + or_Conj = {s = "or" ; n = Sg} ; + +-- more + + lincat + Utt = {s : Str} ; + QS = {s : QForm => Str} ; + QCl = {s : QForm => TTense => Bool => Str} ; + ClSlash = {s : ClForm => TTense => Bool => Str ; c : Str} ; + Adv, Prep = {s : Str} ; + VS = Verb ; + VQ = Verb ; + VV = {s : AgrVerb ; isAux : Bool} ; + IP = {s : Str} ; + PN = {s : Str} ; + IAdv, Subj = {s : Str} ; + + lin + UttS s = s ; + UttQS s = {s = s.s ! QDir} ; + + UseQCl t p cl = {s = \\q => t.s ++ p.s ++ cl.s ! q ! t.t ! p.b} ; + + QuestCl cl = {s = \\q,t,p => + case q of { + QDir => cl.s ! ClInv ! t ! p ; + QIndir => "if" ++ cl.s ! ClDir ! t ! p + } + } ; + + QuestVP ip vp = { + s = \\d,t,b => + let + vps = vp.verb.s ! ClDir ! t ! b ! Ag Sg Per3 + in + ip.s ++ vps.fin ++ vps.inf ++ vp.compl + } ; +-- {- + QuestSlash ip cls = { + s = (\\q,t,p => ip.s ++ cls.s ! ClInv ! t ! p ++ cls.c) + | (\\q,t,p => cls.c ++ ip.s ++ cls.s ! ClInv ! t ! p) + } ; +-- -} + +{- 132451 rules, 5071 msec, vs. 1383, 78 msec in the previous + QuestSlash ip cls = { + s = \\q,t,p => (ip.s ++ cls.s ! ClInv ! t ! p ++ cls.c) + | (cls.c ++ ip.s ++ cls.s ! ClInv ! t ! p) + } ; +-} + + QuestIAdv iadv cl = {s = \\q,t,p => + iadv.s ++ + case q of { + QDir => cl.s ! ClInv ! t ! p ; + QIndir => cl.s ! ClDir ! t ! p + } + } ; + + SubjCl cl subj s = { + s = \\d,t,b => cl.s ! d ! t ! b ++ subj.s ++ s.s + } ; + + CompAdv adv = { + verb = copula ; + compl = adv.s + } ; + + PrepNP prep np = { + s = prep.s ++ np.s ! Acc + } ; + + ComplVS v s = { + verb = agrV v ; + compl = "that" ++ s.s + } ; + + ComplVQ v q = { + verb = agrV v ; + compl = q.s ! QIndir + } ; + + ComplVV v vp = { + verb = v.s ; + compl = case v.isAux of { + True => infVP vp ; + False => "to" ++ infVP vp + } + } ; + + SlashV2 np v2 = { + s = \\d,t,b => + let + vps = (agrV v2).s ! d ! t ! b ! np.a + in case d of { + ClDir => np.s ! Nom ++ vps.fin ++ vps.inf ; + ClInv => vps.fin ++ np.s ! Nom ++ vps.inf + } ; + c = v2.c + } ; + + SlashPrep cl prep = { + s = \\d,t,b => cl.s ! d ! t ! b ; + c = prep.s + } ; + + AdvVP vp adv = { + verb = vp.verb ; + compl = vp.compl ++ adv.s + } ; + + UsePN pn = { + s = \\_ => pn.s ; + a = Ag Sg Per3 + } ; + + AdvNP np adv = { + s = \\c => np.s ! c ++ adv.s ; + a = np.a + } ; + + who_IP = ss "who" ; + here_Adv = ss "here" ; + by_Prep = ss "by" ; + in_Prep = ss "in" ; + of_Prep = ss "of" ; + with_Prep = ss "with" ; + + can_VV = {s = agrAux "can" "could" "been able to" "be able to" ; isAux = True} ; + must_VV = {s = agrAux "must" "must" "had to" "have to" ; isAux = True} ; + want_VV = {s = agrV (regVerb "want") ; isAux = False} ; + + although_Subj = ss "although" ; + because_Subj = ss "because" ; + when_Subj = ss "when" ; + + when_IAdv = ss "when" ; + where_IAdv = ss "where" ; + why_IAdv = ss "why" ; + +} diff --git a/examples/extmini/GrammarIta.gf b/examples/extmini/GrammarIta.gf new file mode 100644 index 000000000..7a8cdb22f --- /dev/null +++ b/examples/extmini/GrammarIta.gf @@ -0,0 +1,263 @@ +concrete GrammarIta of Grammar = open ResIta, Prelude in { + lincat + S = {s : Mood => Str} ; + Cl = {s : Mood => ResIta.Tense => Bool => Str} ; + NP = ResIta.NP ; + -- {s : Case => {clit,obj : Str ; isClit : Bool} ; a : Agr} ; + VP = ResIta.VP ; + -- {v : Verb ; clit : Str ; clitAgr : ClitAgr ; obj : Agr => Str} ; + AP = {s : Gender => Number => Str ; isPre : Bool} ; + CN = Noun ; -- {s : Number => Str ; g : Gender} ; + Det = {s : Gender => Case => Str ; n : Number} ; + N = Noun ; -- {s : Number => Str ; g : Gender} ; + A = Adj ; -- {s : Gender => Number => Str ; isPre : Bool} ; + V = Verb ; -- {s : VForm => Str ; aux : Aux} ; + V2 = Verb ** {c : Case} ; + AdA = {s : Str} ; + Pol = {s : Str ; b : Bool} ; + Tense = {s : Str ; t : ResIta.Tense} ; + Conj = {s : Str ; n : Number} ; + lin + UseCl t p cl = {s = \\m => t.s ++ p.s ++ cl.s ! m ! t.t ! p.b} ; + PredVP np vp = predVP (np.s ! Nom).obj np.a vp ; + + ComplV2 v2 np = + let + nps = np.s ! v2.c + in { + v = v2 ; + clit = nps.clit ; + clitAgr = case of { + => CAgr np.a ; + _ => CAgrNo + } ; + obj = \\_ => nps.obj + } ; + + UseV v = useV v (\\_ => []) ; + + DetCN det cn = { + s = \\c => { + obj = det.s ! cn.g ! c ++ cn.s ! det.n ; + clit = [] ; + isClit = False + } ; + a = Ag cn.g det.n Per3 + } ; + + ModCN ap cn = { + s = \\n => preOrPost ap.isPre (ap.s ! cn.g ! n) (cn.s ! n) ; + g = cn.g + } ; + + CompAP ap = useV essere_V (\\ag => case ag of { + Ag g n _ => ap.s ! g ! n + } + ) ; + + AdAP ada ap = { + s = \\g,n => ada.s ++ ap.s ! g ! n ; + isPre = ap.isPre ; + } ; + + ConjNP co nx ny = { + s = \\c => { + obj = (nx.s ! c).obj ++ co.s ++ (ny.s ! c).obj ; + clit = [] ; + isClit = False + } ; + a = conjAgr co.n nx.a ny.a + } ; + + ConjS co x y = {s = \\m => x.s ! m ++ co.s ++ y.s ! m} ; + + ConjAP co x y = { + s = \\g,n => x.s ! g ! n ++ co.s ++ y.s ! g ! n ; + isPre = andB x.isPre y.isPre + } ; + + UseN n = n ; + + UseA adj = adj ; + + a_Det = adjDet (mkAdj "un" "una" [] [] True) Sg ; + + every_Det = adjDet (regAdj "ogni") Sg ; + + the_Det = { + s = table { + Masc => table { + Nom | Acc => elisForms "lo" "l'" "il" ; + Dat => elisForms "allo" "all'" "al" ; + Gen => elisForms "dello" "dell'" "del" ; + C_in => elisForms "nello" "nell'" "nel" ; + C_da => elisForms "dallo" "dall'" "dal" ; + C_con => elisForms "collo" "coll'" "col" + } ; + Fem => table { + Nom | Acc => elisForms "la" "'l" "la" ; + Dat => elisForms "alla" "all'" "alla" ; + Gen => elisForms "della" "dell'" "della" ; + C_in => elisForms "nella" "nell'" "nella" ; + C_da => elisForms "dalla" "dall'" "dalla" ; + C_con => elisForms "colla" "coll'" "colla" + } + } ; + n = Sg + } ; + + this_Det = adjDet (regAdj "questo") Sg ; + these_Det = adjDet (regAdj "questo") Pl ; + that_Det = adjDet quello_A Sg ; + those_Det = adjDet quello_A Pl ; + + i_NP = pronNP "io" "mi" "mi" "me" Masc Sg Per1 ; + youSg_NP = pronNP "tu" "ti" "ti" "te" Masc Sg Per2 ; + he_NP = pronNP "lui" "lo" "gli" "lui" Masc Sg Per3 ; + she_NP = pronNP "lei" "la" "le" "lei" Fem Sg Per3 ; + we_NP = pronNP "noi" "ci" "ci" "noi" Masc Pl Per1 ; + youPl_NP = pronNP "voi" "vi" "vi" "voi" Masc Pl Per2 ; + they_NP = pronNP "loro" "li" "loro" "loro" Masc Pl Per3 ; + + very_AdA = ss "molto" ; + + Pos = {s = [] ; b = True} ; + Neg = {s = [] ; b = False} ; + Pres = {s = [] ; t = ResIta.Pres} ; + Perf = {s = [] ; t = ResIta.Perf} ; + Past = {s = [] ; t = ResIta.Past} ; + Fut = {s = [] ; t = ResIta.Fut} ; + + and_Conj = {s = "e" ; n = Pl} ; + or_Conj = {s = "o" ; n = Sg} ; + + oper + quello_A : Adj = mkAdj + (elisForms "quello" "quell'" "quel") "quella" + (elisForms "quegli" "quegli" "quei") "quelle" + True ; + +-- more + + lincat + Utt = {s : Str} ; + QS = {s : QForm => Str} ; + QCl = {s : QForm => ResIta.Tense => Bool => Str} ; + ClSlash = {s : Mood => ResIta.Tense => Bool => Str ; c : Case} ; + Adv = {s : Str} ; + Prep = {s : Str ; c : Case} ; + VS = Verb ** {m : Mood} ; + VQ = Verb ; + VV = Verb ; + IP = {s : Str} ; + PN = {s : Str ; g : Gender} ; + IAdv = {s : Str} ; + Subj = {s : Str ; m : Mood} ; + + lin + UttS s = {s = s.s ! Ind} ; + UttQS s = {s = s.s ! QDir} ; + + UseQCl t p cl = {s = \\q => t.s ++ p.s ++ cl.s ! q ! t.t ! p.b} ; + + QuestCl cl = {s = \\q,t,p => + case q of { + QDir => cl.s ! Ind ! t ! p ; + QIndir => "se" ++ cl.s ! Ind ! t ! p + } + } ; + + QuestVP ip vp = + {s = \\_ => (predVP ip.s (Ag Masc Sg Per3) vp).s ! Ind} ; ---- agr + + QuestSlash ip cls = { + s = \\q,t,p => prepCase cls.c ++ ip.s ++ cls.s ! Ind ! t ! p + } ; + + QuestIAdv iadv cl = { + s = \\q,t,p => iadv.s ++ cl.s ! Ind ! t ! p + } ; + + SubjCl cl subj s = { + s = \\m,t,b => cl.s ! m ! t ! b ++ subj.s ++ s.s ! subj.m + } ; + + CompAdv adv = + useV essere_V (\\_ => adv.s) ; + + ComplVS v s = + useV v (\\_ => "che" ++ s.s ! v.m) ; + + ComplVQ v q = + useV v (\\_ => q.s ! QIndir) ; + + ComplVV v vp = + useV v (\\a => vp.v.s ! VInf ++ vp.clit ++ vp.obj ! a) ; + + SlashV2 np v2 = + predVP (np.s ! Nom).obj np.a (useV v2 (\\_ => [])) ** { + c = v2.c + } ; + + SlashPrep cl prep = { + s = cl.s ; + c = prep.c + } ; + + AdvVP vp adv = { + v = vp.v ; + clit = vp.clit ; + clitAgr = vp.clitAgr ; + obj = \\a => vp.obj ! a ++ adv.s + } ; + + UsePN pn = { + s = \\c => { + obj = prepCase c ++ pn.s ; + clit = [] ; + isClit = False + } ; + a = Ag pn.g Sg Per3 + } ; + + AdvNP np adv = { + s = \\c => { + obj = (np.s ! c).obj ++ adv.s ; + clit = [] ; + isClit = False + } ; + a = np.a + } ; + + PrepNP prep np = { + s = prep.s ++ (np.s ! prep.c).obj + } ; + + who_IP = ss "chi" ; + here_Adv = ss "qu" ; + by_Prep = {s = [] ; c = C_da} ; + in_Prep = {s = [] ; c = C_in} ; + of_Prep = {s = [] ; c = Gen} ; + with_Prep = {s = [] ; c = C_con} ; + + can_VV = mkVerb "potere" + "posso" "puoi" "pu" "possiamo" "potete" "possono" + "potevo" "potr" "possa" "possiamo" "potuto" Avere ; + + must_VV = mkVerb "dovere" + "devo" "devi" "deve" "dobbiamo" "dovete" "devono" + "dovevo" "dovr" "debba" "dobbiamo" "dovuto" Avere ; + + want_VV = mkVerb "volere" + "voglio" "vuoi" "vuole" "vogliamo" "volete" "vogliono" + "volevo" "vorr" "voglia" "volessi" "voluto" Avere ; + + although_Subj = {s = "bench" ; m = Con} ; + because_Subj = {s = "perch" ; m = Ind} ; + when_Subj = {s = "quando" ; m = Ind} ; + + when_IAdv = ss "quando" ; + where_IAdv = ss "dove" ; + why_IAdv = ss "perch" ; + +} diff --git a/examples/extmini/Lang.gf b/examples/extmini/Lang.gf new file mode 100644 index 000000000..75fbd28f6 --- /dev/null +++ b/examples/extmini/Lang.gf @@ -0,0 +1 @@ +abstract Lang = Grammar, Lexicon ; diff --git a/examples/extmini/LangCmn.gf b/examples/extmini/LangCmn.gf new file mode 100644 index 000000000..7475c4a81 --- /dev/null +++ b/examples/extmini/LangCmn.gf @@ -0,0 +1 @@ +concrete LangCmn of Lang = GrammarCmn, LexiconCmn ; diff --git a/examples/extmini/LangEng.gf b/examples/extmini/LangEng.gf new file mode 100644 index 000000000..4e390b117 --- /dev/null +++ b/examples/extmini/LangEng.gf @@ -0,0 +1 @@ +concrete LangEng of Lang = GrammarEng, LexiconEng ; diff --git a/examples/extmini/LangIta.gf b/examples/extmini/LangIta.gf new file mode 100644 index 000000000..ded938f05 --- /dev/null +++ b/examples/extmini/LangIta.gf @@ -0,0 +1 @@ +concrete LangIta of Lang = GrammarIta, LexiconIta ; diff --git a/examples/extmini/Lexicon.gf b/examples/extmini/Lexicon.gf new file mode 100644 index 000000000..3dd38064d --- /dev/null +++ b/examples/extmini/Lexicon.gf @@ -0,0 +1,12 @@ +abstract Lexicon = Grammar ** { + +fun + man_N, woman_N, house_N, tree_N : N ; + big_A, small_A, green_A : A ; + walk_V, arrive_V, sleep_V : V ; + love_V2, please_V2, look_V2 : V2 ; + believe_VS, know_VS : VS ; + wonder_VQ : VQ ; + john_PN, mary_PN : PN ; + +} ; diff --git a/examples/extmini/LexiconCmn.gf b/examples/extmini/LexiconCmn.gf new file mode 100644 index 000000000..254d09057 --- /dev/null +++ b/examples/extmini/LexiconCmn.gf @@ -0,0 +1,23 @@ +concrete LexiconCmn of Lexicon = GrammarCmn ** open Prelude, ResCmn, ParadigmsCmn in { +flags coding=utf8; +lin + man_N = mkN "男人" "个"; -- "nanren" "ge" first being noun, second is classifier(counter) + woman_N = mkN "女人" "个"; -- "nvren" "ge" classifier behaves like the "cup" in "cup of tea" + house_N = mkN "房子" "间"; -- "fangzi" "jian" + tree_N = mkN "树" "棵"; -- "shu" "ke" + big_A = mkA "大" True; -- "da" + small_A = mkA "小" True; -- "xiao" + green_A = mkA "绿" True; -- "lv" + walk_V = mkV "走" ; -- "zou" + sleep_V = mkV "睡" ; -- "shui" + arrive_V = mkV "到" "了" [] [] "过"; -- "dao" + love_V2 = mkV "爱" ; -- "ai" + look_V2 = mkV "看" ; -- "kan" + please_V2 = mkV "麻烦" ; -- "mafan" + believe_VS = mkV "相信" ; -- "xiangxin" + know_VS = mkV "知道" [] [] [] []; -- "zhidao" + wonder_VQ = mkV "好奇" [] [] [] []; -- "haoqi" + john_PN = mkPN "约翰" Sg ; -- "yuehan" + mary_PN = mkPN "玛丽" Sg ; -- "mali" + +} diff --git a/examples/extmini/LexiconEng.gf b/examples/extmini/LexiconEng.gf new file mode 100644 index 000000000..85020cce5 --- /dev/null +++ b/examples/extmini/LexiconEng.gf @@ -0,0 +1,24 @@ +concrete LexiconEng of Lexicon = GrammarEng ** open ParadigmsEng in { + +lin + man_N = mkN "man" "men" ; + woman_N = mkN "woman" "women" ; + house_N = mkN "house" ; + tree_N = mkN "tree" ; + big_A = mkA "big" ; + small_A = mkA "small" ; + green_A = mkA "green" ; + walk_V = mkV "walk" ; + sleep_V = mkV "sleep" "sleeps" "slept" "slept" ; + arrive_V = mkV "arrive" ; + love_V2 = mkV2 "love" ; + look_V2 = mkV2 (mkV "look") "at" ; + please_V2 = mkV2 "please" ; + believe_VS = mkV "believe" ; + know_VS = mkV "know" "knows" "knew" "known" ; + wonder_VQ = mkV "wonder" ; + john_PN = mkPN "John" ; + mary_PN = mkPN "Mary" ; + + +} diff --git a/examples/extmini/LexiconIta.gf b/examples/extmini/LexiconIta.gf new file mode 100644 index 000000000..144aa5e00 --- /dev/null +++ b/examples/extmini/LexiconIta.gf @@ -0,0 +1,33 @@ +concrete LexiconIta of Lexicon = GrammarIta ** open ParadigmsIta in { + +lin + man_N = mkN "uomo" "uomini" masculine ; + woman_N = mkN "donna" ; + house_N = mkN "casa" ; + tree_N = mkN "albero" ; + big_A = preA (mkA "grande") ; + small_A = preA (mkA "piccolo") ; + green_A = mkA "verde" ; + walk_V = mkV "camminare" ; + arrive_V = essereV (mkV "arrivare") ; + sleep_V = mkV "dormire" + "dormo" "dormi" "dorme" "dormiamo" "dormite" "dormono" + "dormivo" "dormir" "dorma" "dormissi" "dormito" ; + love_V2 = mkV2 "amare" ; + look_V2 = mkV2 "guardare" ; + please_V2 = mkV2 (essereV (mkV "piacere" "piaccio" "piaci" "piace" + "piacciamo" "piacete" "piacciono" + "piacevo" "piacer" + "piaccia" "piacessi" "piaciuto")) dative ; + + believe_VS = mkVS (mkV "credere") conjunctive ; + + know_VS = mkVS (mkV + "sapere" "so" "sai" "sa" "sappiamo" "sapete" "sanno" + "sapevo" "sapr" "sappia" "sapessi" "saputo") indicative ; + + wonder_VQ = mkVQ (mkV "domandare") ; ---- domandarsi + john_PN = mkPN "Giovanni" ; + mary_PN = mkPN "Maria" ; + +} diff --git a/examples/extmini/ParadigmsCmn.gf b/examples/extmini/ParadigmsCmn.gf new file mode 100644 index 000000000..0b779f24d --- /dev/null +++ b/examples/extmini/ParadigmsCmn.gf @@ -0,0 +1,21 @@ +resource ParadigmsCmn = GrammarCmn [N,A,V] ** + open ResCmn, GrammarCmn, Prelude in { +flags coding=utf8; +oper + mkN : (man : Str) -> Str -> N + = \n,c -> lin N (regNoun n c) ; + + mkPN : (john : Str) -> Number -> PN + = \s,n -> lin PN (PropN s n) ; + + mkA : (small : Str) -> Bool -> A + = \a,b -> lin A (mkAdj a b) ; + + mkV = overload { + mkV : (walk : Str) -> V + = \walk -> lin V (regVerb walk) ; + mkV : (arrive : Str) -> Str -> Str -> Str -> Str -> V + = \arrive,pp,ds,dp,ep -> lin V (mkVerb arrive pp ds dp ep) ; + } ; + +} diff --git a/examples/extmini/ParadigmsEng.gf b/examples/extmini/ParadigmsEng.gf new file mode 100644 index 000000000..ce46159d8 --- /dev/null +++ b/examples/extmini/ParadigmsEng.gf @@ -0,0 +1,36 @@ +resource ParadigmsEng = GrammarEng [N,A,V] ** + open ResEng, GrammarEng, Prelude in { + +oper + mkN = overload { + mkN : (dog : Str) -> N + = \n -> lin N (regNoun n) ; + mkN : (man, men : Str) -> N + = \s,p -> lin N (mkNoun s p) ; + } ; + + mkPN : (john : Str) -> PN + = \s -> lin PN (ss s) ; + + mkA = overload { + mkA : (small : Str) -> A + = \a -> lin A (mkAdj a) ; + } ; + + mkV = overload { + mkV : (walk : Str) -> V + = \v -> lin V (regVerb v) ; + mkV : (go,goes,went,gone : Str) -> V + = \p1,p2,p3,p4 -> lin V (mkVerb p1 p2 p3 p4) ; + } ; + + mkV2 = overload { + mkV2 : Str -> V2 + = \s -> lin V2 (regVerb s ** {c = []}) ; + mkV2 : V -> V2 + = \v -> lin V2 (v ** {c = []}) ; + mkV2 : V -> Str -> V2 + = \v,p -> lin V2 (v ** {c = p}) ; + } ; + +} diff --git a/examples/extmini/ParadigmsIta.gf b/examples/extmini/ParadigmsIta.gf new file mode 100644 index 000000000..210abbc16 --- /dev/null +++ b/examples/extmini/ParadigmsIta.gf @@ -0,0 +1,64 @@ +resource ParadigmsIta = GrammarIta [N,A,V] ** + open ResIta, GrammarIta, Prelude in { + +oper + masculine : Gender = Masc ; + feminine : Gender = Fem ; + + accusative : Case = Acc ; + dative : Case = Dat ; + + indicative : Mood = Ind ; + conjunctive : Mood = Con ; + + mkN = overload { + mkN : (vino : Str) -> N + = \n -> lin N (regNoun n) ; + mkN : (uomo, uomini : Str) -> Gender -> N + = \s,p,g -> lin N (mkNoun s p g) ; + } ; + + mkPN = overload { + mkPN : (anna : Str) -> PN + = \p -> let n = regNoun p in lin PN {s = p ; g = n.g} ; + mkPN : Str -> Gender -> PN + = \s,g -> lin PN {s = s ; g = g} ; + } ; + + mkA = overload { + mkA : (nero : Str) -> A + = \a -> lin A (regAdj a) ; + mkA : (buono,buona,buoni,buone : Str) -> Bool -> A + = \sm,sf,pm,pf,p -> lin A (mkAdj sm sf pm pf False) ; + } ; + + preA : A -> A + = \a -> lin A {s = a.s ; isPre = True} ; + + mkV = overload { + mkV : (finire : Str) -> V + = \v -> lin V (regVerb v) ; + mkV : (andare,vado,vadi,va,andiamo,andate,vanno,andava,andro,vada,andassi,andato : Str) -> V + = \i,p1,p2,p3,p4,p5,p6,imp,fut,con,conp,p -> + lin V (mkVerb i p1 p2 p3 p4 p5 p6 imp fut con conp p Avere) ; + } ; + + essereV : V -> V + = \v -> lin V {s = v.s ; aux = Essere} ; + + mkV2 = overload { + mkV2 : Str -> V2 + = \s -> lin V2 (regVerb s ** {c = accusative}) ; + mkV2 : V -> V2 + = \v -> lin V2 (v ** {c = accusative}) ; + mkV2 : V -> Case -> V2 + = \v,c -> lin V2 (v ** {c = c}) ; + } ; + + mkVS : V -> Mood -> VS = \v,m -> + lin VS (v ** {m = m}) ; + mkVQ : V -> VQ = \v -> + lin VQ v ; + mkVV : V -> VV = \v -> + lin VV v ; +} diff --git a/examples/extmini/README b/examples/extmini/README new file mode 100644 index 000000000..f45dd7113 --- /dev/null +++ b/examples/extmini/README @@ -0,0 +1,10 @@ +Extended mini resource grammar fro GF Book, chapter 9. +Used for teaching computational syntax at the University of Gothenburg in 2011 and 2012, +see http://www.cse.chalmers.se/~aarne/computationalsyntax/. + +Eng, Ita (c) Aarne Ranta. +Cmn (c) Jolene Zhuo Lin qiqige. + +License: LGPL and BSD. + + diff --git a/examples/extmini/ResCmn.gf b/examples/extmini/ResCmn.gf new file mode 100644 index 000000000..0ef4e58bf --- /dev/null +++ b/examples/extmini/ResCmn.gf @@ -0,0 +1,92 @@ +resource ResCmn = open Prelude in { +flags coding=utf8; +-- parameters + +param + TTense = TPres | TPerf | TPast | TFut ; + Aspect = Perf | DurStat | DurProg | Exper ; + Number = Sg | Pl ; + SForm = Phr PosType | Sent; + PosType = APhrase | NPhrase | VPhrase ; + DeForm = DeNoun | NdNoun ; -- parameter created for noun with/out partical "de" + +-- parts of speech + +oper + + VP = { verb : Verb ; compl : Str ; prePart : Str} ; + NP = {s : Str ; n : Number } ; + copula : Verb = { s = table { + True => table { _ => "是" }; + False => table { _ => "不是" }}; + vinf = "是" } ; + +-- for morphology + + Noun : Type = {s : Str; Counter: Str} ; + Adj : Type = {s : Str; monoSyl: Bool} ; + Verb : Type = {s : Bool => Aspect => Str ; vinf : Str} ; + + regNoun : Str -> Str -> Noun = \s,c -> {s = s; Counter = c}; + + mkAdj : Str -> Bool -> Adj = \s,b -> {s = s; monoSyl = b}; + + regVerb : (walk : Str) -> Verb = \v -> { + s = table { + True => table { Perf => v ++ "了" ; + DurStat => v ++ "着" ; + DurProg => "在" ++ v ; + Exper => v ++ "过" } ; + False => table {Perf => "不" ++ v ++ "了" ; + DurStat => "不" ++ v ; + DurProg => "没" ++ "在" ++ v ; + Exper => "没" ++ v ++ "过" }}; + vinf = v} ; + + mkVerb : (believe : Str) -> (PerfPart : Str) + -> (DurStatPart : Str) + -> (DurProgPart : Str) + -> (ExperPart : Str) -> Verb = \v,pp,ds,dp,ep -> { + s = table { + True => table { Perf => v ++ pp ; + DurStat => v ++ ds ; + DurProg => dp ++ v ; + Exper => v ++ ep } ; + False => table {Perf => "不" ++ v ++ pp ; + DurStat => "不" ++ v ; + DurProg => "没" ++ dp ++ v ; + Exper => "没" ++ v ++ ep }} ; + vinf = v} ; + +-- for structural words + + mkDet : Str -> Number -> {s : Str ; n : Number} = \s,n -> { + s = s ; + n = n + } ; + + pronNP : (s : Str) -> Number -> NP = \s,n -> { + s = s ; + n = n + } ; + + mkPrep : Str -> Str -> {s : Str ; prePart : Str} = \s,b -> { + s = s ; + prePart = b} ; + + mkAdv : Str -> Str -> {s : Str ; prePart : Str} = \b,s -> { + s = s ; + prePart = b} ; + + mkSubj : Str -> Str -> {prePart : Str ; sufPart : Str} = \p,s -> { + prePart = p ; + sufPart = s} ; + +-- Proper Noun + + PropN : (s : Str) -> Number -> NP = \s,n -> { + s = s ; + n = n + } ; + + } diff --git a/examples/extmini/ResEng.gf b/examples/extmini/ResEng.gf new file mode 100644 index 000000000..9d78fe71a --- /dev/null +++ b/examples/extmini/ResEng.gf @@ -0,0 +1,156 @@ +resource ResEng = open Prelude in { + +-- parameters + +param + Number = Sg | Pl ; + Case = Nom | Acc ; + Agr = Ag Number Person ; + TTense = TPres | TPerf | TPast | TFut ; + Person = Per1 | Per2 | Per3 ; + + VForm = VInf | VPres | VPast | VPart ; + + ClForm = ClDir | ClInv ; + QForm = QDir | QIndir ; + +-- parts of speech + +oper + VP = { + verb : AgrVerb ; + compl : Str + } ; + + NP = { + s : Case => Str ; + a : Agr + } ; + +-- verb as in VP, including copula + + AgrVerb : Type = { + s : ClForm => TTense => Bool => Agr => {fin,inf : Str} ; + inf : Str + } ; + + copula : AgrVerb = { + s = \\d,t,p,a => case of { + => {fin = "am" ; inf = neg p} ; + => {fin = "is" ; inf = neg p} ; + => {fin = "are" ; inf = neg p} ; + => {fin = "has" ; inf = neg p ++ "been"} ; + => {fin = "have" ; inf = neg p ++ "been"} ; + => {fin = "was" ; inf = neg p} ; + => {fin = "were" ; inf = neg p} ; + => {fin = "will" ; inf = neg p ++ "be"} + } ; + inf = "be" + } ; + + agrV : Verb -> AgrVerb = \v -> + let + vinf = v.s ! VInf ; + vpart = v.s ! VPart + in { + s = \\d,t,p,a => case of { + => {fin = v.s ! VPres ; inf = []} ; + <_, TPres,_, Ag Sg Per3> => {fin = "does" ; inf = neg p ++ vinf} ; + => {fin = vinf ; inf = []} ; + <_, TPres,_, _ > => {fin = "do" ; inf = neg p ++ vinf} ; + <_, TPerf,_, Ag Sg Per3> => {fin = "has" ; inf = neg p ++ vpart} ; + <_, TPerf,_, _ > => {fin = "have" ; inf = neg p ++ vpart} ; + => {fin = v.s ! VPast ; inf = []} ; + <_, TPast,_, _ > => {fin = "did" ; inf = neg p ++ vinf} ; + <_, TFut, _, _ > => {fin = "will" ; inf = neg p ++ vinf} + } ; + inf = vinf + } ; + + agrAux : (_,_,_,_ : Str) -> AgrVerb = \can,could,beenableto, beableto -> { + s = \\d,t,p,a => case of { + => {fin = can ; inf = neg p} ; + => {fin = "has" ; inf = neg p ++ beenableto} ; + => {fin = "have" ; inf = neg p ++ beenableto} ; + => {fin = could ; inf = neg p} ; + => {fin = "will" ; inf = neg p ++ beableto} + } ; + inf = beableto + } ; + + infVP : VP -> Str = \vp -> + vp.verb.inf ++ vp.compl ; + + neg : Bool -> Str = \b -> case b of {True => [] ; False => "not"} ; + +-- for coordination + + conjAgr : Number -> Agr -> Agr -> Agr = \n,xa,ya -> + case of { + => + Ag (conjNumber (conjNumber xn yn) n) (conjPerson xp yp) + } ; + + conjNumber : Number -> Number -> Number = \m,n -> + case m of {Pl => Pl ; _ => n} ; + + conjPerson : Person -> Person -> Person = \p,q -> + case of { + | <_,Per1> => Per1 ; + | <_,Per2> => Per2 ; + _ => Per3 + } ; + + + +-- for morphology + + Noun : Type = {s : Number => Str} ; + Adj : Type = {s : Str} ; + Verb : Type = {s : VForm => Str} ; + + mkNoun : Str -> Str -> Noun = \man,men -> { + s = table {Sg => man ; Pl => men} + } ; + + regNoun : Str -> Noun = \s -> + mkNoun s (s + "s") ; ---- + + mkAdj : Str -> Adj = \s -> ss s ; + + mkVerb : (_,_,_,_ : Str) -> Verb = + \go,goes,went,gone -> { + s = table { + VInf => go ; + VPres => goes ; + VPast => went ; + VPart => gone + } + } ; + + regVerb : Str -> Verb = \v -> case v of { + _ + "e" => mkVerb v (v + "s") (v + "d") (v + "d") ; + _ => mkVerb v (v + "s") (v + "ed") (v + "ed") + } ; + +-- for structural words + + mkDet : Str -> Number -> {s : Str ; n : Number} = \s,n -> { + s = s ; + n = n + } ; + + pronNP : (s,a : Str) -> Number -> Person -> NP = + \s,a,n,p -> { + s = table { + Nom => s ; + Acc => a + } ; + a = Ag n p + } ; + +-- phonological auxiliaries + + vowel : pattern Str = #("a" | "e" | "i" | "o") ; + +} diff --git a/examples/extmini/ResIta.gf b/examples/extmini/ResIta.gf new file mode 100644 index 000000000..c414dbbd1 --- /dev/null +++ b/examples/extmini/ResIta.gf @@ -0,0 +1,259 @@ +resource ResIta = open Prelude in { + +-- parameters + +param + Number = Sg | Pl ; + Gender = Masc | Fem ; + Case = Nom | Acc | Dat | Gen | C_in | C_con | C_da ; + Agr = Ag Gender Number Person ; + Aux = Avere | Essere ; + Tense = Pres | Past | Perf | Fut ; + Mood = Ind | Con ; + Person = Per1 | Per2 | Per3 ; + + VForm = + VInf + | VInfContr -- contracted infinitive, "amar" + | VPres Mood Number Person + | VPast Mood Number Person + | VFut Number Person + | VPart Gender Number ; + + QForm = QDir | QIndir ; + + ClitAgr = CAgrNo | CAgr Agr ; + +-- parts of speech + +oper + VP = { + v : Verb ; + clit : Str ; + clitAgr : ClitAgr ; + obj : Agr => Str + } ; + + NP = { + s : Case => {clit,obj : Str ; isClit : Bool} ; + a : Agr + } ; + +-- the preposition word of an abstract case + + prepCase : Case -> Str = \c -> case c of { + Dat => "a" ; + Gen => "di" ; + C_con => "con" ; + C_in => "in" ; + C_da => "da" ; + _ => [] + } ; + +-- for predication + +-- this is used for PredVP, QuestVP, SlashV2 + + predVP : Str -> Agr -> VP -> {s : Mood => Tense => Bool => Str} = \subj,agr,vp -> + let + obj = vp.obj ! agr ; + clit = vp.clit ; + verb : Mood -> Tense => Str = \m -> table { + Perf => agrV (auxVerb vp.v.aux) m Pres agr ++ agrPart vp.v agr vp.clitAgr ; + t => agrV vp.v m t agr + } + in { + s = \\m,t,b => subj ++ neg b ++ clit ++ verb m ! t ++ obj + } ; + + useV : Verb -> (Agr => Str) -> VP = \v,o -> { + v = v ; + clit = [] ; + clitAgr = CAgrNo ; + obj = o + } ; + + agrV : Verb -> Mood -> Tense -> Agr -> Str = \v,m,t,a -> case a of { + Ag _ n p => case t of { + Past => v.s ! VPast m n p ; + Fut => v.s ! VFut n p ; + _ => v.s ! VPres m n p + } + } ; + + auxVerb : Aux -> Verb = \a -> case a of { + Avere => + mkVerb "avere" "ho" "hai" "ha" "abbiamo" "avete" "hanno" + "avevo" "avr" "abbia" "avessi" "avuto" Avere ; + Essere => + mkVerb "essere" "sono" "sei" "" "siamo" "siete" "sono" + "ero" "sar" "sia" "fossi" "stato" Essere ---- eravamo + } ; + + agrPart : Verb -> Agr -> ClitAgr -> Str = \v,a,c -> case v.aux of { + Avere => case c of { + CAgr (Ag g n _) => v.s ! VPart g n ; + _ => v.s ! VPart Masc Sg + } ; + Essere => case a of { + Ag g n _ => v.s ! VPart g n + } + } ; + + neg : Bool -> Str = \b -> case b of {True => [] ; False => "non"} ; + + essere_V = auxVerb Essere ; + +-- for coordination + + conjAgr : Number -> Agr -> Agr -> Agr = \n,xa,ya -> + let + x = agrFeatures xa ; y = agrFeatures ya + in Ag + (conjGender x.g y.g) + (conjNumber (conjNumber x.n y.n) n) + (conjPerson x.p y.p) ; + + agrFeatures : Agr -> {g : Gender ; n : Number ; p : Person} = \a -> + case a of {Ag g n p => {g = g ; n = n ; p = p}} ; + + conjGender : Gender -> Gender -> Gender = \g,h -> + case g of {Masc => Masc ; _ => h} ; + + conjNumber : Number -> Number -> Number = \m,n -> + case m of {Pl => Pl ; _ => n} ; + + conjPerson : Person -> Person -> Person = \p,q -> + case of { + | <_,Per1> => Per1 ; + | <_,Per2> => Per2 ; + _ => Per3 + } ; + + + +-- for morphology + + Noun : Type = {s : Number => Str ; g : Gender} ; + Adj : Type = {s : Gender => Number => Str ; isPre : Bool} ; + Verb : Type = {s : VForm => Str ; aux : Aux} ; + + mkNoun : Str -> Str -> Gender -> Noun = \vino,vini,g -> { + s = table {Sg => vino ; Pl => vini} ; + g = g + } ; + + regNoun : Str -> Noun = \vino -> case vino of { + fuo + c@("c"|"g") + "o" => mkNoun vino (fuo + c + "hi") Masc ; + ol + "io" => mkNoun vino (ol + "i") Masc ; + vin + "o" => mkNoun vino (vin + "i") Masc ; + cas + "a" => mkNoun vino (cas + "e") Fem ; + pan + "e" => mkNoun vino (pan + "i") Masc ; + _ => mkNoun vino vino Masc + } ; + + mkAdj : (_,_,_,_ : Str) -> Bool -> Adj = \buono,buona,buoni,buone,p -> { + s = table { + Masc => table {Sg => buono ; Pl => buoni} ; + Fem => table {Sg => buona ; Pl => buone} + } ; + isPre = p + } ; + + regAdj : Str -> Adj = \nero -> case nero of { + ner + "o" => mkAdj nero (ner + "a") (ner + "i") (ner + "e") False ; + verd + "e" => mkAdj nero nero (verd + "i") (verd + "i") False ; + _ => mkAdj nero nero nero nero False + } ; + + mkVerb : (x1,_,_,_,_,_,_,_,_,_,_,x12 : Str) -> Aux -> Verb = + \amare,amo,ami,ama,amiamo,amate,amano,amavo,amero,amic,amassi,amato,aux -> + let + amav = init amavo ; + amas = Predef.tk 2 amassi ; + amer = init amero ; + in { + s = table { + VInf => amare ; + VInfContr => init amare ; + VPres Ind Sg Per1 => amo ; + VPres Ind Sg Per2 => ami ; + VPres Ind Sg Per3 => ama ; + VPres Ind Pl Per1 => amiamo ; + VPres Ind Pl Per2 => amate ; + VPres Ind Pl Per3 => amano ; + + VPres Con Sg _ => amic ; + VPres Con Pl Per1 => amiamo ; + VPres Con Pl Per2 => Predef.tk 2 amiamo + "te" ; + VPres Con Pl Per3 => amic + "no" ; + + VPast Ind Sg Per1 => amavo ; + VPast Ind Sg Per2 => amav + "i" ; + VPast Ind Sg Per3 => amav + "a" ; + VPast Ind Pl Per1 => amav + "amo" ; + VPast Ind Pl Per2 => amav + "ate" ; + VPast Ind Pl Per3 => amav + "ano" ; + + VPast Con Sg Per1 => amassi ; + VPast Con Sg Per2 => amassi ; + VPast Con Sg Per3 => amas + "se" ; + VPast Con Pl Per1 => amas + "simo" ; + VPast Con Pl Per2 => amas + "te" ; + VPast Con Pl Per3 => amas + "sero" ; + + VFut Sg Per1 => amero ; + VFut Sg Per2 => amer + "ai" ; + VFut Sg Per3 => amer + "" ; + VFut Pl Per1 => amer + "emo" ; + VFut Pl Per2 => amer + "ete" ; + VFut Pl Per3 => amer + "ono" ; + + VPart g n => (regAdj amato).s ! g ! n + } ; + aux = aux + } ; + + regVerb : Str -> Verb = \amare -> case amare of { + am + "are" => mkVerb amare (am+"o") (am+"i") (am+"a") + (am+"iamo") (am+"ate") (am+"ano") + (am +"avo") (am+"er") (am+"i") (am+"assi") + (am+"ato") Avere ; + tem + "ere" => mkVerb amare (tem+"o") (tem+"i") (tem+"e") + (tem+"iamo") (tem+"ete") (tem+"ono") + (tem +"evo") (tem+"er") (tem+"a") (tem+"essi") + (tem+"uto") Avere ; + fin + "ire" => mkVerb amare (fin+"isco") (fin+"isci") (fin+"isce") + (fin+"iamo") (fin+"ite") (fin+"iscono") + (fin +"ivo") (fin+"ir") (fin+"isca") (fin+"issi") + (fin+"ito") Avere + } ; + +-- for structural words + + adjDet : Adj -> Number -> {s : Gender => Case => Str ; n : Number} = + \adj,n -> { + s = \\g,c => prepCase c ++ adj.s ! g ! n ; + n = n + } ; + + pronNP : (s,a,d,i : Str) -> Gender -> Number -> Person -> NP = + \s,a,d,i,g,n,p -> { + s = table { + Nom => {clit = [] ; obj = s ; isClit = False} ; + Acc => {clit = a ; obj = [] ; isClit = True} ; + Dat => {clit = d ; obj = [] ; isClit = True} ; + c => {clit = [] ; obj = prepCase c ++ i ; isClit = False} + } ; + a = Ag g n p + } ; + +-- phonological auxiliaries + + vowel : pattern Str = #("a" | "e" | "i" | "o" | "u" | "h") ; + s_impuro : pattern Str = #("z" | "s" + ("b"|"c"|"d"|"f"|"m"|"p"|"q"|"t")) ; + + elisForms : (_,_,_ : Str) -> Str = \lo,l',il -> + pre {#s_impuro => lo ; #vowel => l' ; _ => il} ; + +} diff --git a/examples/extmini/Syntax.gf b/examples/extmini/Syntax.gf new file mode 100644 index 000000000..01a51d0ee --- /dev/null +++ b/examples/extmini/Syntax.gf @@ -0,0 +1,47 @@ +interface Syntax = Grammar - + [UseCl,PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP, + ConjS,ConjNP,UseN,UseA,Pres,Perf,Pos,Neg] ** + open Grammar in { + +oper + mkS = overload { + mkS : Cl -> S = UseCl Pres Pos ; + mkS : Tense -> Cl -> S = \t -> UseCl t Pos ; + mkS : Pol -> Cl -> S = UseCl Pres ; + mkS : Tense -> Pol -> Cl -> S = UseCl ; + mkS : Conj -> S -> S -> S = ConjS ; + } ; + + mkCl = overload { + mkCl : NP -> V -> Cl = \np,v -> PredVP np (UseV v) ; + mkCl : NP -> V2 -> NP -> Cl = \np,v,o -> PredVP np (ComplV2 v o) ; + mkCl : NP -> A -> Cl = \np,a -> PredVP np (CompAP (UseA a)) ; + mkCl : NP -> AP -> Cl = \np,ap -> PredVP np (CompAP ap) ; + mkCl : NP -> VP -> Cl = PredVP ; + } ; + + mkAP = overload { + mkAP : A -> AP = UseA ; + mkAP : AdA -> AP -> AP = AdAP ; + } ; + + mkNP = overload { + mkNP : Det -> N -> NP = \d,n -> DetCN d (UseN n) ; + mkNP : Det -> CN -> NP = \d,n -> DetCN d n ; + mkNP : Conj -> NP -> NP -> NP = ConjNP ; + } ; + + mkCN = overload { + mkCN : N -> CN = UseN ; + mkCN : A -> N -> CN = \a,n -> ModCN (UseA a) (UseN n) ; + mkCN : A -> CN -> CN = \a,n -> ModCN (UseA a) n ; + mkCN : AP -> N -> CN = \a,n -> ModCN a (UseN n) ; + mkCN : AP -> CN -> CN = \a,n -> ModCN a n ; + } ; + + presTense : Tense = Pres ; + perfTense : Tense = Perf ; + posPol : Pol = Pos ; + negPol : Pol = Neg ; + +} diff --git a/examples/extmini/SyntaxCmn.gf b/examples/extmini/SyntaxCmn.gf new file mode 100644 index 000000000..0cb333348 --- /dev/null +++ b/examples/extmini/SyntaxCmn.gf @@ -0,0 +1,3 @@ +instance SyntaxCmn of Syntax = GrammarCmn - + [PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP,UseN,UseA] ** + open GrammarCmn in {} ; diff --git a/examples/extmini/SyntaxEng.gf b/examples/extmini/SyntaxEng.gf new file mode 100644 index 000000000..a2d955b71 --- /dev/null +++ b/examples/extmini/SyntaxEng.gf @@ -0,0 +1,3 @@ +instance SyntaxEng of Syntax = GrammarEng - + [PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP,UseN,UseA] ** + open GrammarEng in {} ; diff --git a/examples/extmini/SyntaxIta.gf b/examples/extmini/SyntaxIta.gf new file mode 100644 index 000000000..b4562b0de --- /dev/null +++ b/examples/extmini/SyntaxIta.gf @@ -0,0 +1,3 @@ +instance SyntaxIta of Syntax = GrammarIta - + [PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP,UseN,UseA] ** + open GrammarIta in {} ; diff --git a/examples/extmini/compsyntax-test-Ita.txt b/examples/extmini/compsyntax-test-Ita.txt new file mode 100644 index 000000000..18c1d8e15 --- /dev/null +++ b/examples/extmini/compsyntax-test-Ita.txt @@ -0,0 +1,981 @@ +***Missing***LangIta : +***Words***'l Giovanni Maria a abbia abbiamo abbiano abbiate al alberi albero all' alla allo ama amano amar amare amasse amassero amassi amassimo amaste amata amate amati amato amava amavamo amavano amavate amavi amavo amerai ameremo amerete amerono amerà amerò ami amiamo amiate amino amo arriva arrivano arrivar arrivare arrivasse arrivassero arrivassi arrivassimo arrivaste arrivata arrivate arrivati arrivato arrivava arrivavamo arrivavano arrivavate arrivavi arrivavo arriverai arriveremo arriverete arriverono arriverà arriverò arrivi arriviamo arriviate arrivino arrivo avete benché cammina camminano camminar camminare camminasse camminassero camminassi camminassimo camminaste camminata camminate camminati camminato camminava camminavamo camminavano camminavate camminavi camminavo camminerai cammineremo camminerete camminerono camminerà camminerò cammini camminiamo camminiate camminino cammino casa case che chi ci col coll' colla collo con creda credano crede creder crederai credere crederemo crederete crederono crederà crederò credesse credessero credessi credessimo credeste credete credeva credevamo credevano credevate credevi credevo credi crediamo crediate credo credono creduta credute creduti creduto da dal dall' dalla dallo debba debbano del dell' della dello deve devi devo devono di dobbiamo dobbiase dobbiasero dobbiasimo dobbiate domanda domandano domandar domandare domandasse domandassero domandassi domandassimo domandaste domandata domandate domandati domandato domandava domandavamo domandavano domandavate domandavi domandavo domanderai domanderemo domanderete domanderono domanderà domanderò domandi domandiamo domandiate domandino domando donna donne dorma dormano dorme dormi dormiamo dormiate dormir dormirai dormire dormiremo dormirete dormirono dormirà dormirò dormisse dormissero dormissi dormissimo dormiste dormita dormite dormiti dormito dormiva dormivamo dormivano dormivate dormivi dormivo dormo dormono dove dover dovere dovete doveva dovevamo dovevano dovevate dovevi dovevo dovrai dovremo dovrete dovrono dovrà dovrò dovuta dovute dovuti dovuto e era eramo erano erate eri ero esser essere fosse fossero fossi fossimo foste gli grande grandi guarda guardano guardar guardare guardasse guardassero guardassi guardassimo guardaste guardata guardate guardati guardato guardava guardavamo guardavano guardavate guardavi guardavo guarderai guarderemo guarderete guarderono guarderà guarderò guardi guardiamo guardiate guardino guardo ha hai hanno ho il in io l' la le lei li lo loro lui me mi molto nel nell' nella nello noi non o ogni perché piaccia piacciamo piacciano piacciate piaccio piacciono piace piacer piacerai piacere piaceremo piacerete piacerono piacerà piacerò piacesse piacessero piacessi piacessimo piaceste piacete piaceva piacevamo piacevano piacevate piacevi piacevo piaci piaciuta piaciute piaciuti piaciuto piccola piccole piccoli piccolo possa possano possiamo possiase possiasero possiasimo possiate posso possono poter potere potete poteva potevamo potevano potevate potevi potevo potrai potremo potrete potrono potrà potrò potuta potute potuti potuto puoi può quando quegli quei quel quell' quella quelle quello questa queste questi questo quí sa sai sanno saper sapere sapesse sapessero sapessi sapessimo sapeste sapete sapeva sapevamo sapevano sapevate sapevi sapevo sappia sappiamo sappiano sappiate saprai sapremo saprete saprono saprà saprò saputa sapute saputi saputo sarai saremo sarete sarono sarà sarò se sei sia siamo siano siate siete so sono stata state stati stato te ti tu un una uomini uomo verde verdi vi voglia vogliamo vogliano vogliate voglio vogliono voi voler volere volesse volessero volessi volessimo voleste volete voleva volevamo volevano volevate volevi volevo voluta volute voluti voluto vorrai vorremo vorrete vorrono vorrà vorrò vuoi vuole è***Noun Phrases***Lang: AdvNP youPl_NP (PrepNP in_Prep he_NP) +LangIta: s Nom clit : +s Nom obj : voi in lui +s Acc clit : +s Acc obj : in lui +s Dat clit : +s Dat obj : in lui +s Gen clit : +s Gen obj : di voi in lui +s C_in clit : +s C_in obj : in voi in lui +s C_con clit : +s C_con obj : con voi in lui +s C_da clit : +s C_da obj : da voi in lui + + Lang: youSg_NP +LangIta: s Nom clit : +s Nom obj : tu +s Acc clit : ti +s Acc obj : +s Dat clit : ti +s Dat obj : +s Gen clit : +s Gen obj : di te +s C_in clit : +s C_in obj : in te +s C_con clit : +s C_con obj : con te +s C_da clit : +s C_da obj : da te + + Lang: DetCN those_Det (ModCN (ConjAP and_Conj (UseA green_A) (UseA big_A)) (ModCN (UseA small_A) (UseN tree_N))) +LangIta: s Nom clit : +s Nom obj : quei piccoli alberi verdi e grandi +s Acc clit : +s Acc obj : quei piccoli alberi verdi e grandi +s Dat clit : +s Dat obj : a quei piccoli alberi verdi e grandi +s Gen clit : +s Gen obj : di quei piccoli alberi verdi e grandi +s C_in clit : +s C_in obj : in quei piccoli alberi verdi e grandi +s C_con clit : +s C_con obj : con quei piccoli alberi verdi e grandi +s C_da clit : +s C_da obj : da quei piccoli alberi verdi e grandi + + Lang: she_NP +LangIta: s Nom clit : +s Nom obj : lei +s Acc clit : la +s Acc obj : +s Dat clit : le +s Dat obj : +s Gen clit : +s Gen obj : di lei +s C_in clit : +s C_in obj : in lei +s C_con clit : +s C_con obj : con lei +s C_da clit : +s C_da obj : da lei + + Lang: youSg_NP +LangIta: s Nom clit : +s Nom obj : tu +s Acc clit : ti +s Acc obj : +s Dat clit : ti +s Dat obj : +s Gen clit : +s Gen obj : di te +s C_in clit : +s C_in obj : in te +s C_con clit : +s C_con obj : con te +s C_da clit : +s C_da obj : da te + + Lang: youPl_NP +LangIta: s Nom clit : +s Nom obj : voi +s Acc clit : vi +s Acc obj : +s Dat clit : vi +s Dat obj : +s Gen clit : +s Gen obj : di voi +s C_in clit : +s C_in obj : in voi +s C_con clit : +s C_con obj : con voi +s C_da clit : +s C_da obj : da voi + + Lang: youPl_NP +LangIta: s Nom clit : +s Nom obj : voi +s Acc clit : vi +s Acc obj : +s Dat clit : vi +s Dat obj : +s Gen clit : +s Gen obj : di voi +s C_in clit : +s C_in obj : in voi +s C_con clit : +s C_con obj : con voi +s C_da clit : +s C_da obj : da voi + + Lang: UsePN mary_PN +LangIta: s Nom clit : +s Nom obj : Maria +s Acc clit : +s Acc obj : Maria +s Dat clit : +s Dat obj : a Maria +s Gen clit : +s Gen obj : di Maria +s C_in clit : +s C_in obj : in Maria +s C_con clit : +s C_con obj : con Maria +s C_da clit : +s C_da obj : da Maria + + Lang: we_NP +LangIta: s Nom clit : +s Nom obj : noi +s Acc clit : ci +s Acc obj : +s Dat clit : ci +s Dat obj : +s Gen clit : +s Gen obj : di noi +s C_in clit : +s C_in obj : in noi +s C_con clit : +s C_con obj : con noi +s C_da clit : +s C_da obj : da noi + + Lang: youSg_NP +LangIta: s Nom clit : +s Nom obj : tu +s Acc clit : ti +s Acc obj : +s Dat clit : ti +s Dat obj : +s Gen clit : +s Gen obj : di te +s C_in clit : +s C_in obj : in te +s C_con clit : +s C_con obj : con te +s C_da clit : +s C_da obj : da te + + Lang: UsePN john_PN +LangIta: s Nom clit : +s Nom obj : Giovanni +s Acc clit : +s Acc obj : Giovanni +s Dat clit : +s Dat obj : a Giovanni +s Gen clit : +s Gen obj : di Giovanni +s C_in clit : +s C_in obj : in Giovanni +s C_con clit : +s C_con obj : con Giovanni +s C_da clit : +s C_da obj : da Giovanni + + Lang: DetCN this_Det (ModCN (AdAP very_AdA (UseA green_A)) (UseN man_N)) +LangIta: s Nom clit : +s Nom obj : questo uomo molto verde +s Acc clit : +s Acc obj : questo uomo molto verde +s Dat clit : +s Dat obj : a questo uomo molto verde +s Gen clit : +s Gen obj : di questo uomo molto verde +s C_in clit : +s C_in obj : in questo uomo molto verde +s C_con clit : +s C_con obj : con questo uomo molto verde +s C_da clit : +s C_da obj : da questo uomo molto verde + + Lang: he_NP +LangIta: s Nom clit : +s Nom obj : lui +s Acc clit : lo +s Acc obj : +s Dat clit : gli +s Dat obj : +s Gen clit : +s Gen obj : di lui +s C_in clit : +s C_in obj : in lui +s C_con clit : +s C_con obj : con lui +s C_da clit : +s C_da obj : da lui + + Lang: she_NP +LangIta: s Nom clit : +s Nom obj : lei +s Acc clit : la +s Acc obj : +s Dat clit : le +s Dat obj : +s Gen clit : +s Gen obj : di lei +s C_in clit : +s C_in obj : in lei +s C_con clit : +s C_con obj : con lei +s C_da clit : +s C_da obj : da lei + + Lang: ConjNP or_Conj i_NP (DetCN these_Det (ModCN (UseA green_A) (UseN woman_N))) +LangIta: s Nom clit : +s Nom obj : io o queste donne verdi +s Acc clit : +s Acc obj : o queste donne verdi +s Dat clit : +s Dat obj : o a queste donne verdi +s Gen clit : +s Gen obj : di me o di queste donne verdi +s C_in clit : +s C_in obj : in me o in queste donne verdi +s C_con clit : +s C_con obj : con me o con queste donne verdi +s C_da clit : +s C_da obj : da me o da queste donne verdi + + Lang: i_NP +LangIta: s Nom clit : +s Nom obj : io +s Acc clit : mi +s Acc obj : +s Dat clit : mi +s Dat obj : +s Gen clit : +s Gen obj : di me +s C_in clit : +s C_in obj : in me +s C_con clit : +s C_con obj : con me +s C_da clit : +s C_da obj : da me + + Lang: he_NP +LangIta: s Nom clit : +s Nom obj : lui +s Acc clit : lo +s Acc obj : +s Dat clit : gli +s Dat obj : +s Gen clit : +s Gen obj : di lui +s C_in clit : +s C_in obj : in lui +s C_con clit : +s C_con obj : con lui +s C_da clit : +s C_da obj : da lui + + Lang: ConjNP or_Conj youPl_NP (AdvNP youSg_NP (PrepNP of_Prep youPl_NP)) +LangIta: s Nom clit : +s Nom obj : voi o tu di voi +s Acc clit : +s Acc obj : o di voi +s Dat clit : +s Dat obj : o di voi +s Gen clit : +s Gen obj : di voi o di te di voi +s C_in clit : +s C_in obj : in voi o in te di voi +s C_con clit : +s C_con obj : con voi o con te di voi +s C_da clit : +s C_da obj : da voi o da te di voi + + Lang: we_NP +LangIta: s Nom clit : +s Nom obj : noi +s Acc clit : ci +s Acc obj : +s Dat clit : ci +s Dat obj : +s Gen clit : +s Gen obj : di noi +s C_in clit : +s C_in obj : in noi +s C_con clit : +s C_con obj : con noi +s C_da clit : +s C_da obj : da noi + + Lang: DetCN those_Det (UseN man_N) +LangIta: s Nom clit : +s Nom obj : quegli uomini +s Acc clit : +s Acc obj : quegli uomini +s Dat clit : +s Dat obj : a quegli uomini +s Gen clit : +s Gen obj : di quegli uomini +s C_in clit : +s C_in obj : in quegli uomini +s C_con clit : +s C_con obj : con quegli uomini +s C_da clit : +s C_da obj : da quegli uomini + +***Clauses***Lang: PredVP she_NP (ComplV2 look_V2 he_NP) +LangIta: s Ind Pres True : lei lo guarda +s Ind Pres False : lei non lo guarda +s Ind Past True : lei lo guardava +s Ind Past False : lei non lo guardava +s Ind Perf True : lei lo ha guardato +s Ind Perf False : lei non lo ha guardato +s Ind Fut True : lei lo guarderà +s Ind Fut False : lei non lo guarderà +s Con Pres True : lei lo guardi +s Con Pres False : lei non lo guardi +s Con Past True : lei lo guardasse +s Con Past False : lei non lo guardasse +s Con Perf True : lei lo abbia guardato +s Con Perf False : lei non lo abbia guardato +s Con Fut True : lei lo guarderà +s Con Fut False : lei non lo guarderà + + Lang: PredVP (AdvNP youSg_NP here_Adv) (CompAdv here_Adv) +LangIta: s Ind Pres True : tu quí sei quí +s Ind Pres False : tu quí non sei quí +s Ind Past True : tu quí eri quí +s Ind Past False : tu quí non eri quí +s Ind Perf True : tu quí sei stato quí +s Ind Perf False : tu quí non sei stato quí +s Ind Fut True : tu quí sarai quí +s Ind Fut False : tu quí non sarai quí +s Con Pres True : tu quí sia quí +s Con Pres False : tu quí non sia quí +s Con Past True : tu quí fossi quí +s Con Past False : tu quí non fossi quí +s Con Perf True : tu quí sia stato quí +s Con Perf False : tu quí non sia stato quí +s Con Fut True : tu quí sarai quí +s Con Fut False : tu quí non sarai quí + + Lang: PredVP he_NP (UseV arrive_V) +LangIta: s Ind Pres True : lui arriva +s Ind Pres False : lui non arriva +s Ind Past True : lui arrivava +s Ind Past False : lui non arrivava +s Ind Perf True : lui è arrivato +s Ind Perf False : lui non è arrivato +s Ind Fut True : lui arriverà +s Ind Fut False : lui non arriverà +s Con Pres True : lui arrivi +s Con Pres False : lui non arrivi +s Con Past True : lui arrivasse +s Con Past False : lui non arrivasse +s Con Perf True : lui sia arrivato +s Con Perf False : lui non sia arrivato +s Con Fut True : lui arriverà +s Con Fut False : lui non arriverà + + Lang: PredVP we_NP (UseV walk_V) +LangIta: s Ind Pres True : noi camminiamo +s Ind Pres False : noi non camminiamo +s Ind Past True : noi camminavamo +s Ind Past False : noi non camminavamo +s Ind Perf True : noi abbiamo camminato +s Ind Perf False : noi non abbiamo camminato +s Ind Fut True : noi cammineremo +s Ind Fut False : noi non cammineremo +s Con Pres True : noi camminiamo +s Con Pres False : noi non camminiamo +s Con Past True : noi camminassimo +s Con Past False : noi non camminassimo +s Con Perf True : noi abbiamo camminato +s Con Perf False : noi non abbiamo camminato +s Con Fut True : noi cammineremo +s Con Fut False : noi non cammineremo + + Lang: PredVP she_NP (ComplV2 please_V2 he_NP) +LangIta: s Ind Pres True : lei gli piace +s Ind Pres False : lei non gli piace +s Ind Past True : lei gli piaceva +s Ind Past False : lei non gli piaceva +s Ind Perf True : lei gli è piaciuta +s Ind Perf False : lei non gli è piaciuta +s Ind Fut True : lei gli piacerà +s Ind Fut False : lei non gli piacerà +s Con Pres True : lei gli piaccia +s Con Pres False : lei non gli piaccia +s Con Past True : lei gli piacesse +s Con Past False : lei non gli piacesse +s Con Perf True : lei gli sia piaciuta +s Con Perf False : lei non gli sia piaciuta +s Con Fut True : lei gli piacerà +s Con Fut False : lei non gli piacerà + + Lang: PredVP i_NP (ComplV2 look_V2 youSg_NP) +LangIta: s Ind Pres True : io ti guardo +s Ind Pres False : io non ti guardo +s Ind Past True : io ti guardavo +s Ind Past False : io non ti guardavo +s Ind Perf True : io ti ho guardato +s Ind Perf False : io non ti ho guardato +s Ind Fut True : io ti guarderò +s Ind Fut False : io non ti guarderò +s Con Pres True : io ti guardi +s Con Pres False : io non ti guardi +s Con Past True : io ti guardassi +s Con Past False : io non ti guardassi +s Con Perf True : io ti abbia guardato +s Con Perf False : io non ti abbia guardato +s Con Fut True : io ti guarderò +s Con Fut False : io non ti guarderò + + Lang: PredVP i_NP (UseV arrive_V) +LangIta: s Ind Pres True : io arrivo +s Ind Pres False : io non arrivo +s Ind Past True : io arrivavo +s Ind Past False : io non arrivavo +s Ind Perf True : io sono arrivato +s Ind Perf False : io non sono arrivato +s Ind Fut True : io arriverò +s Ind Fut False : io non arriverò +s Con Pres True : io arrivi +s Con Pres False : io non arrivi +s Con Past True : io arrivassi +s Con Past False : io non arrivassi +s Con Perf True : io sia arrivato +s Con Perf False : io non sia arrivato +s Con Fut True : io arriverò +s Con Fut False : io non arriverò + + Lang: PredVP (AdvNP youPl_NP here_Adv) (CompAdv here_Adv) +LangIta: s Ind Pres True : voi quí siete quí +s Ind Pres False : voi quí non siete quí +s Ind Past True : voi quí erate quí +s Ind Past False : voi quí non erate quí +s Ind Perf True : voi quí siete stati quí +s Ind Perf False : voi quí non siete stati quí +s Ind Fut True : voi quí sarete quí +s Ind Fut False : voi quí non sarete quí +s Con Pres True : voi quí siate quí +s Con Pres False : voi quí non siate quí +s Con Past True : voi quí foste quí +s Con Past False : voi quí non foste quí +s Con Perf True : voi quí siate stati quí +s Con Perf False : voi quí non siate stati quí +s Con Fut True : voi quí sarete quí +s Con Fut False : voi quí non sarete quí + + Lang: PredVP (ConjNP and_Conj we_NP he_NP) (CompAdv here_Adv) +LangIta: s Ind Pres True : noi e lui siamo quí +s Ind Pres False : noi e lui non siamo quí +s Ind Past True : noi e lui eramo quí +s Ind Past False : noi e lui non eramo quí +s Ind Perf True : noi e lui siamo stati quí +s Ind Perf False : noi e lui non siamo stati quí +s Ind Fut True : noi e lui saremo quí +s Ind Fut False : noi e lui non saremo quí +s Con Pres True : noi e lui siamo quí +s Con Pres False : noi e lui non siamo quí +s Con Past True : noi e lui fossimo quí +s Con Past False : noi e lui non fossimo quí +s Con Perf True : noi e lui siamo stati quí +s Con Perf False : noi e lui non siamo stati quí +s Con Fut True : noi e lui saremo quí +s Con Fut False : noi e lui non saremo quí + + Lang: PredVP we_NP (UseV arrive_V) +LangIta: s Ind Pres True : noi arriviamo +s Ind Pres False : noi non arriviamo +s Ind Past True : noi arrivavamo +s Ind Past False : noi non arrivavamo +s Ind Perf True : noi siamo arrivati +s Ind Perf False : noi non siamo arrivati +s Ind Fut True : noi arriveremo +s Ind Fut False : noi non arriveremo +s Con Pres True : noi arriviamo +s Con Pres False : noi non arriviamo +s Con Past True : noi arrivassimo +s Con Past False : noi non arrivassimo +s Con Perf True : noi siamo arrivati +s Con Perf False : noi non siamo arrivati +s Con Fut True : noi arriveremo +s Con Fut False : noi non arriveremo + +***Question Clauses***Lang: QuestVP who_IP (CompAdv here_Adv) +LangIta: s QDir Pres True : chi è quí +s QDir Pres False : chi non è quí +s QDir Past True : chi era quí +s QDir Past False : chi non era quí +s QDir Perf True : chi è stato quí +s QDir Perf False : chi non è stato quí +s QDir Fut True : chi sarà quí +s QDir Fut False : chi non sarà quí +s QIndir Pres True : chi è quí +s QIndir Pres False : chi non è quí +s QIndir Past True : chi era quí +s QIndir Past False : chi non era quí +s QIndir Perf True : chi è stato quí +s QIndir Perf False : chi non è stato quí +s QIndir Fut True : chi sarà quí +s QIndir Fut False : chi non sarà quí + + Lang: QuestSlash who_IP (SlashV2 she_NP love_V2) +LangIta: s QDir Pres True : chi lei ama +s QDir Pres False : chi lei non ama +s QDir Past True : chi lei amava +s QDir Past False : chi lei non amava +s QDir Perf True : chi lei ha amato +s QDir Perf False : chi lei non ha amato +s QDir Fut True : chi lei amerà +s QDir Fut False : chi lei non amerà +s QIndir Pres True : chi lei ama +s QIndir Pres False : chi lei non ama +s QIndir Past True : chi lei amava +s QIndir Past False : chi lei non amava +s QIndir Perf True : chi lei ha amato +s QIndir Perf False : chi lei non ha amato +s QIndir Fut True : chi lei amerà +s QIndir Fut False : chi lei non amerà + + Lang: QuestVP who_IP (ComplV2 love_V2 they_NP) +LangIta: s QDir Pres True : chi li ama +s QDir Pres False : chi non li ama +s QDir Past True : chi li amava +s QDir Past False : chi non li amava +s QDir Perf True : chi li ha amati +s QDir Perf False : chi non li ha amati +s QDir Fut True : chi li amerà +s QDir Fut False : chi non li amerà +s QIndir Pres True : chi li ama +s QIndir Pres False : chi non li ama +s QIndir Past True : chi li amava +s QIndir Past False : chi non li amava +s QIndir Perf True : chi li ha amati +s QIndir Perf False : chi non li ha amati +s QIndir Fut True : chi li amerà +s QIndir Fut False : chi non li amerà + + Lang: QuestSlash who_IP (SlashV2 she_NP love_V2) +LangIta: s QDir Pres True : chi lei ama +s QDir Pres False : chi lei non ama +s QDir Past True : chi lei amava +s QDir Past False : chi lei non amava +s QDir Perf True : chi lei ha amato +s QDir Perf False : chi lei non ha amato +s QDir Fut True : chi lei amerà +s QDir Fut False : chi lei non amerà +s QIndir Pres True : chi lei ama +s QIndir Pres False : chi lei non ama +s QIndir Past True : chi lei amava +s QIndir Past False : chi lei non amava +s QIndir Perf True : chi lei ha amato +s QIndir Perf False : chi lei non ha amato +s QIndir Fut True : chi lei amerà +s QIndir Fut False : chi lei non amerà + + Lang: QuestSlash who_IP (SlashV2 he_NP look_V2) +LangIta: s QDir Pres True : chi lui guarda +s QDir Pres False : chi lui non guarda +s QDir Past True : chi lui guardava +s QDir Past False : chi lui non guardava +s QDir Perf True : chi lui ha guardato +s QDir Perf False : chi lui non ha guardato +s QDir Fut True : chi lui guarderà +s QDir Fut False : chi lui non guarderà +s QIndir Pres True : chi lui guarda +s QIndir Pres False : chi lui non guarda +s QIndir Past True : chi lui guardava +s QIndir Past False : chi lui non guardava +s QIndir Perf True : chi lui ha guardato +s QIndir Perf False : chi lui non ha guardato +s QIndir Fut True : chi lui guarderà +s QIndir Fut False : chi lui non guarderà + + Lang: QuestVP who_IP (CompAdv here_Adv) +LangIta: s QDir Pres True : chi è quí +s QDir Pres False : chi non è quí +s QDir Past True : chi era quí +s QDir Past False : chi non era quí +s QDir Perf True : chi è stato quí +s QDir Perf False : chi non è stato quí +s QDir Fut True : chi sarà quí +s QDir Fut False : chi non sarà quí +s QIndir Pres True : chi è quí +s QIndir Pres False : chi non è quí +s QIndir Past True : chi era quí +s QIndir Past False : chi non era quí +s QIndir Perf True : chi è stato quí +s QIndir Perf False : chi non è stato quí +s QIndir Fut True : chi sarà quí +s QIndir Fut False : chi non sarà quí + + Lang: QuestSlash who_IP (SlashV2 she_NP please_V2) +LangIta: s QDir Pres True : a chi lei piace +s QDir Pres False : a chi lei non piace +s QDir Past True : a chi lei piaceva +s QDir Past False : a chi lei non piaceva +s QDir Perf True : a chi lei è piaciuta +s QDir Perf False : a chi lei non è piaciuta +s QDir Fut True : a chi lei piacerà +s QDir Fut False : a chi lei non piacerà +s QIndir Pres True : a chi lei piace +s QIndir Pres False : a chi lei non piace +s QIndir Past True : a chi lei piaceva +s QIndir Past False : a chi lei non piaceva +s QIndir Perf True : a chi lei è piaciuta +s QIndir Perf False : a chi lei non è piaciuta +s QIndir Fut True : a chi lei piacerà +s QIndir Fut False : a chi lei non piacerà + + Lang: QuestVP who_IP (CompAdv here_Adv) +LangIta: s QDir Pres True : chi è quí +s QDir Pres False : chi non è quí +s QDir Past True : chi era quí +s QDir Past False : chi non era quí +s QDir Perf True : chi è stato quí +s QDir Perf False : chi non è stato quí +s QDir Fut True : chi sarà quí +s QDir Fut False : chi non sarà quí +s QIndir Pres True : chi è quí +s QIndir Pres False : chi non è quí +s QIndir Past True : chi era quí +s QIndir Past False : chi non era quí +s QIndir Perf True : chi è stato quí +s QIndir Perf False : chi non è stato quí +s QIndir Fut True : chi sarà quí +s QIndir Fut False : chi non sarà quí + + Lang: QuestSlash who_IP (SlashV2 they_NP look_V2) +LangIta: s QDir Pres True : chi loro guardano +s QDir Pres False : chi loro non guardano +s QDir Past True : chi loro guardavano +s QDir Past False : chi loro non guardavano +s QDir Perf True : chi loro hanno guardato +s QDir Perf False : chi loro non hanno guardato +s QDir Fut True : chi loro guarderono +s QDir Fut False : chi loro non guarderono +s QIndir Pres True : chi loro guardano +s QIndir Pres False : chi loro non guardano +s QIndir Past True : chi loro guardavano +s QIndir Past False : chi loro non guardavano +s QIndir Perf True : chi loro hanno guardato +s QIndir Perf False : chi loro non hanno guardato +s QIndir Fut True : chi loro guarderono +s QIndir Fut False : chi loro non guarderono + + Lang: QuestVP who_IP (UseV walk_V) +LangIta: s QDir Pres True : chi cammina +s QDir Pres False : chi non cammina +s QDir Past True : chi camminava +s QDir Past False : chi non camminava +s QDir Perf True : chi ha camminato +s QDir Perf False : chi non ha camminato +s QDir Fut True : chi camminerà +s QDir Fut False : chi non camminerà +s QIndir Pres True : chi cammina +s QIndir Pres False : chi non cammina +s QIndir Past True : chi camminava +s QIndir Past False : chi non camminava +s QIndir Perf True : chi ha camminato +s QIndir Perf False : chi non ha camminato +s QIndir Fut True : chi camminerà +s QIndir Fut False : chi non camminerà + +***Utterances***Lang: UttS (UseCl Pres Neg (PredVP i_NP (ComplV2 look_V2 youSg_NP))) +LangEng: I do not look at you +LangIta: io non ti guardo + Lang: UttQS (UseQCl Fut Neg (QuestVP who_IP (ComplV2 please_V2 we_NP))) +LangEng: who will not please us +LangIta: chi non ci piacerà + Lang: UttS (UseCl Perf Pos (PredVP (UsePN mary_PN) (CompAdv here_Adv))) +LangEng: Mary has been here +LangIta: Maria è stata quí + Lang: UttS (UseCl Fut Neg (PredVP she_NP (CompAdv here_Adv))) +LangEng: she will not be here +LangIta: lei non sarà quí + Lang: UttS (UseCl Past Neg (PredVP we_NP (ComplV2 look_V2 he_NP))) +LangEng: we did not look at him +LangIta: noi non lo guardavamo + Lang: UttS (UseCl Pres Pos (PredVP youPl_NP (ComplV2 love_V2 they_NP))) +LangEng: you love them +LangIta: voi li amate + Lang: UttS (UseCl Pres Pos (PredVP youSg_NP (CompAdv here_Adv))) +LangEng: you are here +LangIta: tu sei quí + Lang: UttS (UseCl Pres Pos (PredVP they_NP (ComplV2 look_V2 i_NP))) +LangEng: they look at me +LangIta: loro mi guardano + Lang: UttQS (UseQCl Past Pos (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who was here +LangIta: chi era quí + Lang: UttS (UseCl Fut Neg (PredVP he_NP (CompAdv here_Adv))) +LangEng: her will not be here +LangIta: lui non sarà quí + Lang: UttS (UseCl Past Pos (PredVP youPl_NP (UseV walk_V))) +LangEng: you walked +LangIta: voi camminavate + Lang: UttS (UseCl Pres Pos (PredVP youSg_NP (CompAdv here_Adv))) +LangEng: you are here +LangIta: tu sei quí + Lang: UttS (UseCl Pres Neg (PredVP (ConjNP or_Conj she_NP he_NP) (UseV walk_V))) +LangEng: she or her does not walk +LangIta: lei o lui non cammina + Lang: UttS (UseCl Pres Neg (PredVP she_NP (ComplV2 love_V2 he_NP))) +LangEng: she does not love him +LangIta: lei non lo ama + Lang: UttS (UseCl Perf Pos (PredVP youSg_NP (ComplV2 love_V2 we_NP))) +LangEng: you have loved us +LangIta: tu ci hai amati + Lang: UttS (UseCl Fut Pos (PredVP we_NP (ComplV2 please_V2 youPl_NP))) +LangEng: we will please you +LangIta: noi vi piaceremo + Lang: UttS (UseCl Fut Neg (PredVP he_NP (CompAdv here_Adv))) +LangEng: her will not be here +LangIta: lui non sarà quí + Lang: UttQS (UseQCl Pres Neg (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who is not here +LangIta: chi non è quí + Lang: UttQS (UseQCl Pres Neg (QuestSlash who_IP (SlashV2 she_NP love_V2))) +LangEng: who does she not love +LangIta: chi lei non ama + Lang: UttS (UseCl Fut Neg (PredVP youSg_NP (CompAdv here_Adv))) +LangEng: you will not be here +LangIta: tu non sarai quí + Lang: UttQS (UseQCl Past Neg (QuestSlash who_IP (SlashV2 youSg_NP please_V2))) +LangEng: who did you not please +LangIta: a chi tu non piacevi + Lang: UttS (UseCl Perf Pos (PredVP youSg_NP (CompAdv here_Adv))) +LangEng: you have been here +LangIta: tu sei stato quí + Lang: UttQS (UseQCl Fut Pos (QuestSlash who_IP (SlashV2 i_NP love_V2))) +LangEng: who will I love +LangIta: chi io amerò + Lang: UttS (UseCl Pres Neg (PredVP (AdvNP they_NP here_Adv) (UseV arrive_V))) +LangEng: they here do not arrive +LangIta: loro quí non arrivano + Lang: UttQS (UseQCl Past Neg (QuestVP who_IP (UseV sleep_V))) +LangEng: who did not sleep +LangIta: chi non dormiva + Lang: UttS (UseCl Past Pos (PredVP i_NP (ComplV2 look_V2 youPl_NP))) +LangEng: I looked at you +LangIta: io vi guardavo + Lang: UttS (UseCl Pres Pos (PredVP (ConjNP and_Conj he_NP youPl_NP) (UseV walk_V))) +LangEng: her and you walk +LangIta: lui e voi camminate + Lang: UttQS (UseQCl Pres Neg (QuestSlash who_IP (SlashV2 they_NP love_V2))) +LangEng: who do they not love +LangIta: chi loro non amano + Lang: UttQS (UseQCl Perf Pos (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who has been here +LangIta: chi è stato quí + Lang: UttQS (UseQCl Perf Pos (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who has been here +LangIta: chi è stato quí + Lang: UttS (UseCl Past Pos (PredVP he_NP (UseV arrive_V))) +LangEng: her arrived +LangIta: lui arrivava + Lang: UttS (UseCl Perf Pos (PredVP she_NP (CompAdv here_Adv))) +LangEng: she has been here +LangIta: lei è stata quí + Lang: UttQS (UseQCl Past Neg (QuestSlash who_IP (SlashV2 we_NP look_V2))) +LangEng: who did we not look at +LangIta: chi noi non guardavamo + Lang: UttQS (UseQCl Perf Neg (QuestSlash who_IP (SlashV2 they_NP look_V2))) +LangEng: who have they not looked at +LangIta: chi loro non hanno guardato + Lang: UttS (UseCl Past Neg (PredVP (AdvNP youSg_NP here_Adv) (UseV arrive_V))) +LangEng: you here did not arrive +LangIta: tu quí non arrivavi + Lang: UttQS (UseQCl Perf Neg (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who has not been here +LangIta: chi non è stato quí + Lang: UttS (UseCl Perf Neg (PredVP (ConjNP and_Conj he_NP we_NP) (ComplV2 love_V2 they_NP))) +LangEng: her and we have not loved them +LangIta: lui e noi non li abbiamo amati + Lang: UttS (UseCl Fut Pos (PredVP (UsePN john_PN) (ComplV2 look_V2 youPl_NP))) +LangEng: John will look at you +LangIta: Giovanni vi guarderà + Lang: UttS (UseCl Fut Pos (PredVP (ConjNP and_Conj i_NP they_NP) (ComplV2 please_V2 they_NP))) +LangEng: I and they will please them +LangIta: io e loro loro piaceremo + Lang: UttQS (UseQCl Past Neg (QuestSlash who_IP (SlashV2 youSg_NP look_V2))) +LangEng: who did you not look at +LangIta: chi tu non guardavi + Lang: UttS (UseCl Fut Pos (PredVP youSg_NP (ComplV2 look_V2 youPl_NP))) +LangEng: you will look at you +LangIta: tu vi guarderai + Lang: UttQS (UseQCl Pres Pos (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who is here +LangIta: chi è quí + Lang: UttQS (UseQCl Fut Neg (QuestVP who_IP (UseV sleep_V))) +LangEng: who will not sleep +LangIta: chi non dormirà + Lang: UttS (UseCl Pres Pos (PredVP (UsePN mary_PN) (UseV sleep_V))) +LangEng: Mary sleeps +LangIta: Maria dorme + Lang: UttQS (UseQCl Perf Pos (QuestVP who_IP (UseV walk_V))) +LangEng: who has walked +LangIta: chi ha camminato + Lang: UttQS (UseQCl Pres Neg (QuestSlash who_IP (SlashV2 he_NP look_V2))) +LangEng: who does her not look at +LangIta: chi lui non guarda + Lang: UttQS (UseQCl Past Pos (QuestSlash who_IP (SlashV2 youSg_NP love_V2))) +LangEng: who did you love +LangIta: chi tu amavi + Lang: UttQS (UseQCl Fut Neg (QuestSlash who_IP (SlashV2 she_NP love_V2))) +LangEng: who will she not love +LangIta: chi lei non amerà + Lang: UttS (UseCl Fut Neg (PredVP they_NP (CompAdv here_Adv))) +LangEng: they will not be here +LangIta: loro non sarono quí + Lang: UttS (UseCl Fut Neg (PredVP i_NP (ComplV2 love_V2 youPl_NP))) +LangEng: I will not love you +LangIta: io non vi amerò + Lang: UttQS (UseQCl Pres Pos (QuestSlash who_IP (SlashV2 youPl_NP please_V2))) +LangEng: who do you please +LangIta: a chi voi piacete + Lang: UttQS (UseQCl Pres Pos (QuestSlash who_IP (SlashV2 youPl_NP love_V2))) +LangEng: who do you love +LangIta: chi voi amate + Lang: UttQS (UseQCl Perf Pos (QuestSlash who_IP (SlashV2 youPl_NP please_V2))) +LangEng: who have you pleased +LangIta: a chi voi siete piaciuti + Lang: UttQS (UseQCl Pres Neg (QuestVP who_IP (ComplV2 love_V2 youSg_NP))) +LangEng: who does not love you +LangIta: chi non ti ama + Lang: UttQS (UseQCl Past Neg (QuestVP who_IP (ComplV2 love_V2 we_NP))) +LangEng: who did not love us +LangIta: chi non ci amava + Lang: UttS (UseCl Past Pos (PredVP he_NP (CompAdv here_Adv))) +LangEng: her was here +LangIta: lui era quí + Lang: UttQS (UseQCl Pres Pos (QuestVP who_IP (ComplV2 look_V2 we_NP))) +LangEng: who looks at us +LangIta: chi ci guarda + Lang: UttS (UseCl Pres Pos (PredVP (AdvNP she_NP here_Adv) (ComplV2 love_V2 he_NP))) +LangEng: she here loves him +LangIta: lei quí lo ama + Lang: UttQS (UseQCl Fut Neg (QuestSlash who_IP (SlashV2 i_NP please_V2))) +LangEng: who will I not please +LangIta: a chi io non piacerò + Lang: UttQS (UseQCl Past Neg (QuestSlash who_IP (SlashV2 youSg_NP love_V2))) +LangEng: who did you not love +LangIta: chi tu non amavi + Lang: UttS (UseCl Perf Pos (PredVP he_NP (ComplV2 please_V2 he_NP))) +LangEng: her has pleased him +LangIta: lui gli è piaciuto + Lang: UttQS (UseQCl Past Neg (QuestSlash who_IP (SlashV2 i_NP please_V2))) +LangEng: who did I not please +LangIta: a chi io non piacevo + Lang: UttS (UseCl Pres Pos (PredVP (UsePN mary_PN) (ComplV2 look_V2 i_NP))) +LangEng: Mary looks at me +LangIta: Maria mi guarda + Lang: UttS (UseCl Fut Pos (PredVP (ConjNP or_Conj i_NP he_NP) (ComplV2 please_V2 we_NP))) +LangEng: I or her will please us +LangIta: io o lui ci piacerò + Lang: UttS (UseCl Perf Pos (PredVP he_NP (UseV arrive_V))) +LangEng: her has arrived +LangIta: lui è arrivato + Lang: UttS (UseCl Pres Neg (PredVP she_NP (UseV sleep_V))) +LangEng: she does not sleep +LangIta: lei non dorme + Lang: UttQS (UseQCl Perf Neg (QuestVP who_IP (ComplV2 please_V2 we_NP))) +LangEng: who has not pleased us +LangIta: chi non ci è piaciuto + Lang: UttS (UseCl Fut Neg (PredVP youSg_NP (CompAdv here_Adv))) +LangEng: you will not be here +LangIta: tu non sarai quí + Lang: UttQS (UseQCl Fut Pos (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who will be here +LangIta: chi sarà quí + Lang: UttS (UseCl Past Pos (PredVP youPl_NP (CompAdv here_Adv))) +LangEng: you were here +LangIta: voi erate quí + Lang: UttS (UseCl Past Pos (PredVP (AdvNP we_NP here_Adv) (CompAdv here_Adv))) +LangEng: we here were here +LangIta: noi quí eramo quí + Lang: UttS (UseCl Fut Pos (PredVP i_NP (UseV walk_V))) +LangEng: I will walk +LangIta: io camminerò + Lang: UttQS (UseQCl Fut Neg (QuestSlash who_IP (SlashV2 i_NP please_V2))) +LangEng: who will I not please +LangIta: a chi io non piacerò + Lang: UttS (UseCl Fut Neg (PredVP he_NP (UseV arrive_V))) +LangEng: her will not arrive +LangIta: lui non arriverà + Lang: UttS (UseCl Past Neg (PredVP (AdvNP youPl_NP here_Adv) (ComplV2 love_V2 he_NP))) +LangEng: you here did not love him +LangIta: voi quí non lo amavate + Lang: UttS (UseCl Past Pos (PredVP he_NP (UseV sleep_V))) +LangEng: her slept +LangIta: lui dormiva + Lang: UttQS (UseQCl Fut Neg (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who will not be here +LangIta: chi non sarà quí + Lang: UttQS (UseQCl Fut Pos (QuestVP who_IP (ComplV2 look_V2 they_NP))) +LangEng: who will look at them +LangIta: chi li guarderà + Lang: UttQS (UseQCl Fut Pos (QuestVP who_IP (UseV arrive_V))) +LangEng: who will arrive +LangIta: chi arriverà + Lang: UttQS (UseQCl Fut Neg (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who will not be here +LangIta: chi non sarà quí + Lang: UttQS (UseQCl Pres Pos (QuestSlash who_IP (SlashV2 youSg_NP look_V2))) +LangEng: who do you look at +LangIta: chi tu guardi + Lang: UttQS (UseQCl Perf Neg (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who has not been here +LangIta: chi non è stato quí + Lang: UttQS (UseQCl Fut Pos (QuestSlash who_IP (SlashV2 he_NP look_V2))) +LangEng: who will her look at +LangIta: chi lui guarderà + Lang: UttQS (UseQCl Perf Pos (QuestVP who_IP (ComplV2 please_V2 youPl_NP))) +LangEng: who has pleased you +LangIta: chi vi è piaciuto + Lang: UttS (UseCl Perf Pos (PredVP (ConjNP or_Conj youSg_NP youPl_NP) (ComplV2 love_V2 youPl_NP))) +LangEng: you or you have loved you +LangIta: tu o voi vi avete amati + Lang: UttQS (UseQCl Fut Pos (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who will be here +LangIta: chi sarà quí + Lang: UttS (UseCl Pres Pos (PredVP (UsePN mary_PN) (CompAdv here_Adv))) +LangEng: Mary is here +LangIta: Maria è quí + Lang: UttS (UseCl Perf Pos (PredVP (UsePN john_PN) (UseV walk_V))) +LangEng: John has walked +LangIta: Giovanni ha camminato + Lang: UttS (UseCl Past Neg (PredVP she_NP (ComplV2 please_V2 youSg_NP))) +LangEng: she did not please you +LangIta: lei non ti piaceva + Lang: UttS (UseCl Past Pos (PredVP i_NP (CompAdv here_Adv))) +LangEng: I was here +LangIta: io ero quí + Lang: UttQS (UseQCl Pres Neg (QuestSlash who_IP (SlashV2 youSg_NP please_V2))) +LangEng: who do you not please +LangIta: a chi tu non piaci + Lang: UttQS (UseQCl Fut Neg (QuestVP who_IP (UseV sleep_V))) +LangEng: who will not sleep +LangIta: chi non dormirà + Lang: UttS (UseCl Fut Neg (PredVP we_NP (UseV arrive_V))) +LangEng: we will not arrive +LangIta: noi non arriveremo + Lang: UttS (UseCl Perf Neg (PredVP (UsePN mary_PN) (CompAdv here_Adv))) +LangEng: Mary has not been here +LangIta: Maria non è stata quí + Lang: UttS (UseCl Fut Neg (PredVP she_NP (ComplV2 please_V2 we_NP))) +LangEng: she will not please us +LangIta: lei non ci piacerà + Lang: UttS (UseCl Pres Pos (PredVP (ConjNP and_Conj they_NP we_NP) (CompAdv here_Adv))) +LangEng: they and we are here +LangIta: loro e noi siamo quí + Lang: UttQS (UseQCl Pres Pos (QuestVP who_IP (CompAdv here_Adv))) +LangEng: who is here +LangIta: chi è quí + Lang: UttQS (UseQCl Perf Pos (QuestVP who_IP (ComplV2 look_V2 i_NP))) +LangEng: who has looked at me +LangIta: chi mi ha guardato + Lang: UttQS (UseQCl Perf Neg (QuestVP who_IP (ComplV2 look_V2 we_NP))) +LangEng: who has not looked at us +LangIta: chi non ci ha guardati + Lang: UttQS (UseQCl Pres Neg (QuestSlash who_IP (SlashV2 they_NP look_V2))) +LangEng: who do they not look at +LangIta: chi loro non guardano diff --git a/examples/extmini/compsyntax.gfs b/examples/extmini/compsyntax.gfs new file mode 100644 index 000000000..8ac7c59eb --- /dev/null +++ b/examples/extmini/compsyntax.gfs @@ -0,0 +1,14 @@ +-- assumes start by: gf -run LangXXX.gf