multimodal for whole resource API

This commit is contained in:
aarne
2006-05-23 23:03:48 +00:00
parent 1595e31a28
commit ae2ca2e945
3 changed files with 245 additions and 0 deletions

View File

@@ -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 ;
}

View File

@@ -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) ;

View File

@@ -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 = []} ;
}