[RavenclawDev 174] Re: bypassing the parser
Antoine Raux
antoine at cs.cmu.edu
Sun Nov 5 20:47:28 EST 2006
Hi Svetlana,
RavenClaw actually has access to the (recognized) text corresponding to
each input, whether it's parsable or not. It's part of the set of
features that Helios passes to the DM. I forgot exactly how to access
these features but I believe it's basically a grammar mapping with a
special prefix that indicates that you're not binding a grammar slot but
a Helios input structure slot. Sorry I don't remember the exact syntax
now... If nobody else (Dan?) replies with more precision, I'll find it
out and email that later in the week. In any case, you might be able to
get what you want (the text of the input) without modifying anything at
all but your task specification (grammar mappings)...
Otherwise, the second approach you are proposing (basically adding a
second "parser") sounds definitely much better than the first one, in
the sense that it preserves the integrity of the input line (which is
important for many things in the DM like grounding, reference to
previous turns....).
I hope Dan will come up with a more precise answer soon :)
antoine
Svetlana Stenchikova wrote:
> I just thought of another way to implement this without changing
> RavenClaw:
>
> Add another server ProcessRawData which receives the raw data input
> (in parallel with the parser)
> ProcessRawData outputs the input text in the format of the Parser:
>
> [RawText] ( the typed in text )
>
> The output is passed to the DialogManager.process_parse message
>
> The the text will bind to all concept that are expected in the
> [RawText] grammar mapping.
>
> Please let me know your thoughts on this.
>
> thank you
> Svetlana
>
>
> On 11/5/06, *Svetlana Stenchikova* <svetastenchikova at gmail.com
> <mailto:svetastenchikova at gmail.com>> wrote:
>
> Dan, thank you for your answer. I have another question.
>
> We are interested in the functionality where a free text can be
> entered through TTY (or through free speech recognition).
>
> For example, a user can be asked to describe the event. The
> grammar for this description is not available, so we want to store
> all of the typed ( or recognized) text, and/or a URL of the
> recorded speech into the concept in a dialog manager.
>
> We need to bypass the parser. I would need to make changes to the
> RavenClaw to accommodate this, right?
>
> Currently the user input from the TTY (or ASR) is processed by
> the parser.
>
> The control flow is determined by the .pgm file. This entry
> causes it to call process_parse when an output from the parser is
> available:
>
>
>
> ;; If we have a confidence annotated hypothesis, but
> ;; no parse, call phoenix to parse it
> ;; ---
> RULE: :confhyps & !:parses --> phoenix.phoenixparse
> IN: :confhyps :npow :pow :clip_info
> OUT: :total_numparses :parses :input_source
> LOG_OUT: :parses
>
>
>
> So I plan to add another entry:
>
> ;; If we have a confidence annotated hypothesis, but
> ;; no parse, call DM directly
> ;; ---
> RULE: :confhyps & !:parses --> DM.process_raw
> IN: :confhyps :npow :pow :clip_info
> OUT:
> LOG_OUT:
>
>
>
> Add process_raw() to
>
> Libraries/RavenClaw/DMInterfaces/GalaxyInterfaceFunctions.h&
> implement in GalaxyInterface.cpp
>
>
> process_raw() function will be called whenever an output from the
> TTY (or ASR) is received. So, this output will go to both parser
> and DialogManager.process_raw.
> process_raw() assigns the text to a concept (but only in the case
> when the concept is currently expected):
> For every expected concept as compiled by
> CDMCoreAgent::compileExpectationAgenda():
> If a concept is a "raw speech" concept, set its value to the raw
> text received in an input frame to process_raw
> I would have to add a type to a concept to indicate that it allows
> "raw text" input.
>
>
> Does this implementation plan make sense?
>
> Could you please make any suggestions?
>
> Jahanzeb must have done something similar because his application
> can record user's input. Do you know how that was implemented?
>
>
>
> Thank you,
> Svetlana
>
>
>
>
More information about the Ravenclaw-developers
mailing list