From ae2ca2e945c23499581b172102f6aac9e605b2dd Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 23 May 2006 23:03:48 +0000 Subject: [PATCH] multimodal for whole resource API --- lib/resource-1.0/multimodal/Multi.gf | 39 ++++++ lib/resource-1.0/multimodal/MultiEng.gf | 29 ++++ lib/resource-1.0/multimodal/MultiI.gf | 177 ++++++++++++++++++++++++ 3 files changed, 245 insertions(+) create mode 100644 lib/resource-1.0/multimodal/Multi.gf create mode 100644 lib/resource-1.0/multimodal/MultiEng.gf create mode 100644 lib/resource-1.0/multimodal/MultiI.gf diff --git a/lib/resource-1.0/multimodal/Multi.gf b/lib/resource-1.0/multimodal/Multi.gf new file mode 100644 index 000000000..569c1fe92 --- /dev/null +++ b/lib/resource-1.0/multimodal/Multi.gf @@ -0,0 +1,39 @@ +--1 Multimodal additions to the resource grammar library + +abstract Multi = Lang ** { + + cat + +-- Entrypoint for speech recognition - suppresses clicks. + + Speech ; + +-- The entrypoint to sequencialized multimodal input is $Phr$. + +-- The pointing gesture (click) type. + + Point ; + + fun + +-- The top function to send an utterance to speech recognizer. + + SpeechUtt : PConj -> Utt -> Voc -> Speech ; + +-- Demonstratives. + + this8point_NP : Point -> NP ; + that8point_NP : Point -> NP ; + these8point_NP : Point -> NP ; + those8point_NP : Point -> NP ; + here8point_Adv : Point -> Adv ; + here7to8point_Adv : Point -> Adv ; + here7from8point_Adv : Point -> Adv ; + this8point_Quant : Point -> Quant ; + that8point_Quant : Point -> Quant ; + +-- Building points from strings. + + MkPoint : String -> Point ; + +} diff --git a/lib/resource-1.0/multimodal/MultiEng.gf b/lib/resource-1.0/multimodal/MultiEng.gf new file mode 100644 index 000000000..16a3e6d4e --- /dev/null +++ b/lib/resource-1.0/multimodal/MultiEng.gf @@ -0,0 +1,29 @@ +--# -path=.:../english:../abstract:../common:prelude + +-- --# -path=.:present:prelude + +concrete MultiEng of Multi = + LangEng - [ + NP, Adv, Det, Comp, VP, Cl, QCl, S, SC, QS, Imp, Utt, -- Cat + QuantSg, QuantPl, Quant, + ---- Slash, RC, AP, CN missing + DetCN, UsePN, UsePron, PredetNP, PPartNP, AdvNP, -- Noun + DetSg, DetPl, SgQuant, PlQuant, PossPron, DefArt, IndefArt, MassDet, + PositAdvAdj, PrepNP, ComparAdvAdj, ComparAdvAdjS, AdAdv, SubjS, AdvSC, AdnCAdv, + UseV, ComplV2, ComplV3, ComplVV, ComplVS, ComplVQ, ComplVA, ComplV2A, + ReflV2, UseComp, PassV2, AdvVP, AdVVP, CompAP, CompNP, CompAdv, + PredVP, PredSCVP, ImpVP, EmbedS, EmbedQS, EmbedVP, UseQCl, UseCl, + QuestCl, QuestVP, QuestIAdv, QuestIComp, QuestSlash, + PhrUtt, UttS, UttQS, UttImpSg, UttImpPl, UttNP, UttAdv, UttVP, + UttIAdv, UttIP, + ConjS, ConjNP, ConjAdv, DConjS, DConjNP, DConjAdv, + everybody_NP, everything_NP, somebody_NP, something_NP, that_NP, these_NP, + this_NP, those_NP, one_Quant, that_Quant, this_Quant, + everywhere_Adv, here_Adv, here7to_Adv, here7from_Adv, + somewhere_Adv, there_Adv, there7to_Adv, there7from_Adv, + every_Det, few_Det, many_Det, much_Det, someSg_Det, somePl_Det, + ImpersCl, GenericCl, ExistNP, ExistIP, ProgrVP, + already_Adv, far_Adv, now_Adv + ] + ** MultiI with + (Lang = LangEng) ; diff --git a/lib/resource-1.0/multimodal/MultiI.gf b/lib/resource-1.0/multimodal/MultiI.gf new file mode 100644 index 000000000..4d9c1d5d6 --- /dev/null +++ b/lib/resource-1.0/multimodal/MultiI.gf @@ -0,0 +1,177 @@ +--# -path=.:present:prelude + +incomplete concrete MultiI of Multi = + Lang - [ + NP, Adv, VP, Cl, QCl, S, SC, QS, Imp, Utt, -- Cat + DetCN, UsePN, UsePron, PredetNP, PPartNP, AdvNP, -- Noun + PositAdvAdj, PrepNP, ComparAdvAdj, ComparAdvAdjS, AdAdv, SubjS, AdvSC, AdnCAdv, + ComplV2, ComplV3, ComplVV, + PredVP, + UseCl, + PhrUtt, UttS, UttQS, UttImpSg, UttImpPl, UttNP, UttAdv, UttVP + ] + ** open (Lang = Lang) in { + + lincat + NP = Lang.NP ** {point : Str} ; + Adv = Lang.Adv ** {point : Str} ; + Det = Lang.Det ** {point : Str} ; + Comp= Lang.Comp** {point : Str} ; + VP = Lang.VP ** {point : Str} ; + Cl = Lang.Cl ** {point : Str} ; + QCl = Lang.QCl ** {point : Str} ; + S = Lang.S ** {point : Str} ; + SC = Lang.SC ** {point : Str} ; + QS = Lang.QS ** {point : Str} ; + Imp = Lang.Imp ** {point : Str} ; + Utt = Lang.Utt ** {point : Str} ; + Quant = Lang.Quant ** {point : Str} ; + QuantSg = Lang.QuantSg ** {point : Str} ; + QuantPl = Lang.QuantPl ** {point : Str} ; + + Point = {point : Str} ; + Speech = {s : Str} ; + + lin + DetCN det cn = Lang.DetCN det cn ** {point = det.point} ; + UsePN pn = Lang.UsePN pn ** noPoint ; + UsePron pn = Lang.UsePron pn ** noPoint ; + PredetNP p np = Lang.PredetNP p np ** {point = np.point} ; + PPartNP np v = Lang.PPartNP np v ** {point = np.point} ; + AdvNP np adv = Lang.AdvNP np adv ** {point = np.point ++ adv.point} ; + DetSg qu o = Lang.DetSg qu o ** {point = qu.point} ; + DetPl qu n o = Lang.DetPl qu n o ** {point = qu.point} ; + SgQuant qu = Lang.SgQuant qu ** {point = qu.point} ; + PlQuant qu = Lang.PlQuant qu ** {point = qu.point} ; + PossPron p = Lang.PossPron p ** noPoint ; + DefArt = Lang.DefArt ** noPoint ; + IndefArt = Lang.IndefArt ** noPoint ; + MassDet = Lang.MassDet ** noPoint ; + + PositAdvAdj a = Lang.PositAdvAdj a ** noPoint ; + PrepNP p np = Lang.PrepNP p np ** {point = np.point} ; + ComparAdvAdj ca a np = Lang.ComparAdvAdj ca a np ** {point = np.point} ; + ComparAdvAdjS ca a s = Lang.ComparAdvAdjS ca a s ** {point = s.point} ; + AdAdv ad a = Lang.AdAdv ad a ** {point = a.point} ; + SubjS su s = Lang.SubjS su s ** {point = s.point} ; + AdvSC sc = AdvSC sc ** {point = sc.point} ; + + UseV v = Lang.UseV v ** noPoint ; + ComplV2 v np = Lang.ComplV2 v np ** {point = np.point} ; + ComplV3 v np p = Lang.ComplV3 v np p ** {point = np.point ++ p.point} ; + ComplVV v vp = Lang.ComplVV v vp ** {point = vp.point} ; + ComplVS v s = Lang.ComplVS v s ** {point = s.point} ; + ComplVQ v s = Lang.ComplVQ v s ** {point = s.point} ; + ComplVA v ap = Lang.ComplVA v ap ** noPoint ; ---- + ComplV2A v np ap = Lang.ComplV2A v np ap ** {point = np.point} ; ---- ap + ReflV2 v = Lang.ReflV2 v ** noPoint ; + UseComp c = Lang.UseComp c ** {point = c.point} ; + PassV2 v = Lang.PassV2 v ** noPoint ; + AdvVP vp ad = Lang.AdvVP vp ad ** {point = vp.point ++ ad.point} ; + AdVVP ad vp = Lang.AdVVP ad vp ** {point = vp.point} ; + CompAP v = Lang.CompAP v ** noPoint ; + CompNP c = Lang.CompNP c ** {point = c.point} ; + CompAdv c = Lang.CompAdv c ** {point = c.point} ; + + PredVP np vp = Lang.PredVP np vp ** {point = np.point ++ vp.point} ; + PredSCVP sc vp = Lang.PredSCVP sc vp ** {point = sc.point ++ vp.point} ; + ImpVP vp = Lang.ImpVP vp ** {point = vp.point} ; + EmbedS s = Lang.EmbedS s ** {point = s.point} ; + EmbedQS s = Lang.EmbedQS s ** {point = s.point} ; + EmbedVP s = Lang.EmbedVP s ** {point = s.point} ; + UseCl t a p cl = Lang.UseCl t a p cl ** {point = cl.point} ; + UseQCl t a p cl = Lang.UseQCl t a p cl ** {point = cl.point} ; + + QuestCl cl = Lang.QuestCl cl ** {point = cl.point} ; + QuestVP ip cl = Lang.QuestVP ip cl ** {point = cl.point} ; + QuestIAdv ip cl = Lang.QuestIAdv ip cl ** {point = cl.point} ; + QuestIComp ip cl = Lang.QuestIComp ip cl ** {point = cl.point} ; + QuestSlash ip cl = Lang.QuestSlash ip cl ** noPoint ; + + UttS s = Lang.UttS s ** {point = s.point} ; + UttQS s = Lang.UttQS s ** {point = s.point} ; + UttImpSg p s = Lang.UttImpSg p s ** {point = s.point} ; + UttImpPl p s = Lang.UttImpPl p s ** {point = s.point} ; + UttNP s = Lang.UttNP s ** {point = s.point} ; + UttAdv s = Lang.UttAdv s ** {point = s.point} ; + UttVP s = Lang.UttVP s ** {point = s.point} ; + UttIP s = Lang.UttIP s ** noPoint ; + UttIAdv s = Lang.UttIAdv s ** noPoint ; + + ---- to be completed with point + ConjS c xs = Lang.ConjS c xs ** noPoint ; + ConjNP c xs = Lang.ConjNP c xs ** noPoint ; + ConjAdv c xs = Lang.ConjAdv c xs ** noPoint ; + DConjS c xs = Lang.DConjS c xs ** noPoint ; + DConjNP c xs = Lang.DConjNP c xs ** noPoint ; + DConjAdv c xs = Lang.DConjAdv c xs ** noPoint ; + + ImpersCl vp = Lang.ImpersCl vp ** {point = vp.point} ; + GenericCl vp = Lang.GenericCl vp ** {point = vp.point} ; + ExistNP np = Lang.ExistNP np ** {point = np.point} ; + ExistIP ip = Lang.ExistIP ip ** noPoint ; + ProgrVP vp = Lang.ProgrVP vp ** {point = vp.point} ; + + everybody_NP = Lang.everybody_NP ** noPoint ; + everything_NP = Lang.everything_NP ** noPoint ; + somebody_NP = Lang.somebody_NP ** noPoint ; + something_NP = Lang.something_NP ** noPoint ; + that_NP = Lang.that_NP ** noPoint ; + these_NP = Lang.these_NP ** noPoint ; + this_NP = Lang.this_NP ** noPoint ; + those_NP = Lang.those_NP ** noPoint ; + one_Quant = Lang.one_Quant ** noPoint ; + that_Quant = Lang.that_Quant ** noPoint ; + this_Quant = Lang.this_Quant ** noPoint ; + + everywhere_Adv = Lang.everywhere_Adv ** noPoint ; + here_Adv = Lang.here_Adv ** noPoint ; + here7to_Adv = Lang.here7to_Adv ** noPoint ; + here7from_Adv = Lang.here7from_Adv ** noPoint ; + somewhere_Adv = Lang.somewhere_Adv ** noPoint ; + there_Adv = Lang.there_Adv ** noPoint ; + there7to_Adv = Lang.there7to_Adv ** noPoint ; + there7from_Adv = Lang.there7from_Adv ** noPoint ; + every_Det = Lang.every_Det ** noPoint ; + few_Det = Lang.few_Det ** noPoint ; + many_Det = Lang.many_Det ** noPoint ; + much_Det = Lang.much_Det ** noPoint ; + someSg_Det = Lang.someSg_Det ** noPoint ; + somePl_Det = Lang.somePl_Det ** noPoint ; + + already_Adv = Lang.already_Adv ** noPoint ; + far_Adv = Lang.far_Adv ** noPoint ; + now_Adv = Lang.now_Adv ** noPoint ; + + +--2 New constructs + +--3 interface to top level + + PhrUtt pc utt voc = { + s = Predef.toStr Phr (Lang.PhrUtt pc utt voc) ++ ";" ++ utt.point + } ; + + SpeechUtt pc utt voc = { + s = Predef.toStr Phr (Lang.PhrUtt pc utt voc) + } ; + +--3 Demonstratives + + this8point_NP p = LangEng.this_NP ** p ; + that8point_NP p = LangEng.that_NP ** p ; + these8point_NP p = LangEng.these_NP ** p ; + those8point_NP p = LangEng.those_NP ** p ; + here8point_Adv p = Lang.here_Adv ** p ; + here7to8point_Adv p = Lang.here7to_Adv ** p ; + here7from8point_Adv p = Lang.here7from_Adv ** p ; + this8point_Quant p = LangEng.this_Quant ** p ; + that8point_Quant p = LangEng.that_Quant ** p ; + + + MkPoint s = {point = s.s} ; + + oper + noPoint = {point = []} ; + +} \ No newline at end of file