<paramname="agent"type="iristk.situated.SystemAgentFlow"/><varname="system"type="iristk.situated.SystemAgent"value="agent.getSystemAgent()"/><stateid="Init"><varname="language"type="iristk.util.Language"value="new iristk.util.Language('en-US')"/><varname="phrases"type="List"value="asList('Singtel', 'Air b n b')"/><onentry><agent:say>Say something</agent:say><!-- Setting the VocabularyContext --><sendevent="action.context.load"p:context="new iristk.speech.OpenVocabularyContext('singtel_context', language, phrases)"/><sendevent="action.context.default"p:context="'singtel_context'"/><agent:listen/></onentry><oneventname="sense.user.speak"><ifcond="!matches(event.get('text'), 'NO_MATCH')"><agent:say>you said <expr>event:text</expr>. Say something new</agent:say><else/><agent:say>Sorry, I didn't get that. Try again!</agent:say></if><agent:listen/></onevent><oneventname="sense.user.silence"><agent:say>I didn't hear anything. Try again!</agent:say><agent:listen/></onevent></state>
Comments (1)
Gabriel Skantze
You can simplify line 9:
<var name="phrases" type="List" value="asList('Singtel', 'Air b n b')" />
then you can also get rid of the imports
Line 20 can be a little more elegant:
<if cond="!matches(event.get('text'),'NOMATCH')">
The matches(text,regexp) method (defined in Flow.java) looks for a regular expression in the text.
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.
You can simplify line 9: <var name="phrases" type="List" value="asList('Singtel', 'Air b n b')" /> then you can also get rid of the imports
Line 20 can be a little more elegant: <if cond="!matches(event.get('text'),'NOMATCH')">
The matches(text,regexp) method (defined in Flow.java) looks for a regular expression in the text.