diff --git a/examples/disamb/ConversationIta.gf b/examples/disamb/ConversationIta.gf new file mode 100644 index 000000000..6728a38b0 --- /dev/null +++ b/examples/disamb/ConversationIta.gf @@ -0,0 +1,57 @@ +--# -path=.:prelude + +concrete ConversationIta of Conversation = open Prelude in { + + lincat + Q = {s : Str} ; + NP = {s : Str ; g : Gen ; n : Num ; p : Pol} ; + A = {s : Gen => Num => Str} ; + Gender = {s : Str ; g : Gen} ; + Number = {s : Str ; n : Num} ; + Politeness = {s : Str ; p : Pol} ; + + param + Num = Sg | Pl ; + Gen = Masc | Fem ; + Pol = Fam | Resp ; + lin + PredA np a = ss (np.s ++ essere np.n np.p ++ a.s ! np.g ! np.n) ; + + GMasc = ss [] ** {g = Masc} ; + GFem = ss [] ** {g = Fem} ; + NSg = ss [] ** {n = Sg} ; + NPl = ss [] ** {n = Pl} ; + PFamiliar = ss [] ** {p = Fam} ; + PPolite = ss [] ** {p = Resp} ; + + You n p g = + {g = g.g ; n = n.n ; p = p.p ; + s = case of { + => "tu" ; + => "Lei" ; + => "voi" ; + => "Loro" + } ++ g.s ++ p.s ++ n.s + } ; + + Ready = regA "pronto" ; + + oper + essere : Num -> Pol -> Str = \n,p -> case of { + => "sei" ; + => "รจ" ; + => "siete" ; + => "sono" + } ; + + regA : Str -> {s : Gen => Num => Str} = \nero -> + let ner = init nero in { + s = \\g,n => case of { + => ner + "a" ; + => nero ; + => ner + "e" ; + => ner + "i" + } + } ; + +}