TopRule = $* ( ( $D_GLOBALS {intent=D_GLOBALS._intent} ) | ( $D_GLOBALS_VOLUME {intent=D_GLOBALS_VOLUME._intent} {volumeLevel=D_GLOBALS_VOLUME._volumeLevel} ) | ( $D_GLOBALS_WRONGNAME {intent=D_GLOBALS_WRONGNAME._intent} {realName=D_GLOBALS_WRONGNAME._realName} ) ) {domain='global_commands'} $* ; ### GLOBAL COMMANDS DOMAIN ### D_GLOBALS = ( $D_GLOBALS_INTENT_MAINMENU {_intent=D_GLOBALS_INTENT_MAINMENU._intent} ) | ( $D_GLOBALS_INTENT_WHATCANIDO {_intent=D_GLOBALS_INTENT_WHATCANIDO._intent} ) | ( $D_GLOBALS_INTENT_HELP {_intent=D_GLOBALS_INTENT_HELP._intent} ) | ( $D_GLOBALS_INTENT_STOP {_intent=D_GLOBALS_INTENT_STOP._intent} ) | ( $D_GLOBALS_INTENT_HOLDON {_intent=D_GLOBALS_INTENT_HOLDON._intent} ) ; D_GLOBALS_VOLUME = ( $D_GLOBALS_INTENT_VOLUMEMAX {_intent=D_GLOBALS_INTENT_VOLUMEMAX._intent} {_volumeLevel=D_GLOBALS_INTENT_VOLUMEMAX._volumeLevel} )| ( $D_GLOBALS_INTENT_VOLUMEMIN {_intent=D_GLOBALS_INTENT_VOLUMEMIN._intent} {_volumeLevel=D_GLOBALS_INTENT_VOLUMEMIN._volumeLevel} )| ( $D_GLOBALS_INTENT_VOLUMEUP {_intent=D_GLOBALS_INTENT_VOLUMEUP._intent} {_volumeLevel='null'} )| ( $D_GLOBALS_INTENT_VOLUMEDOWN {_intent=D_GLOBALS_INTENT_VOLUMEDOWN._intent} {_volumeLevel='null'} )| ( $D_GLOBALS_INTENT_VOLUMETOVALUE {_intent=D_GLOBALS_INTENT_VOLUMETOVALUE._intent} {_volumeLevel=D_GLOBALS_INTENT_VOLUMETOVALUE._volumeLevel} ) ; ### INTENTS ### D_GLOBALS_INTENT_MAINMENU = ?($D_GLOBALS_V_GOTO $*) main menu {_intent='mainMenu'} ; D_GLOBALS_INTENT_WHATCANIDO = ( ((what $* (can | may) (i | we | you) do) | (what are (my | our | the) options) | (what options ((can (i | we) choose ?from) | (are available))) | (what ((are we) | (am i)) doing )) {_intent='whatCanIDo'} ); D_GLOBALS_INTENT_HELP = (help | ((i am) | (we are) | (i\'m) confused | puzzled) | (( i | we) ( do not | don\'t) understand) | (what ((do you) | (does that)) mean) | (that (does not | did not) make sense)) {_intent='help'} ; D_GLOBALS_INTENT_STOP = ((stop ?(it | that)) | cancel | (quit ?it) | (?that\'s enough) | (that will do) | (that\'ll do) | (?be quiet) | (shut $* up) | (be silent) | (cut (it | that) out) | (stop talking) | silence) {_intent='stop'} ; D_GLOBALS_INTENT_HOLDON = ((hold on) | pause | (hold that thought) | wait | ((one | a) (moment | minute))) {_intent='holdOn'} ; D_GLOBALS_INTENT_REPEAT = ((repeat ?that) | (come again) | (say $* again) | (?i\'m sorry) | (once more) | (one more time)) {_intent='repeat'} ; ### WRONGNAME ### D_GLOBALS_WRONGNAME = ( ((that\'s not)|(that is not)|(that isn\'t) my name) {_realName='null'} | (i\'m ?actually not ?actually ?(named|called) $LOOPMEMBER) {_realName='null'} | (my name ?actually (isn\'t)|(is not) ?actually $LOOPMEMBER) {_realName='null'} | ((i\'m)|(i am) not ?(named|called) $LOOPMEMBER (i\'m)|(i am) ?(named|called) $OTHER_LOOPMEMBER){_realName=OTHER_LOOPMEMBER._loopmember} | ((i\'m)|(i am)|(my name is) ?actually ?(called|named) $OTHER_LOOPMEMBER) {_realName=OTHER_LOOPMEMBER._loopmember} | (my ?real name ?acutally is ?actually $OTHER_LOOPMEMBER) {_realName=OTHER_LOOPMEMBER._loopmember} ) {_intent='wrongName'} ; ### VOLUME ### D_GLOBALS_INTENT_VOLUMEMAX = (((turn | crank) $D_GLOBALS_V_THEVOLUME ?(all the) way up)| ((turn | crank) up $D_GLOBALS_V_THEVOLUME all the way)| ((max | maximum) ?volume)) {_intent='volumeToValue'} {_volumeLevel='10'} ; D_GLOBALS_INTENT_VOLUMEMIN = ((turn $D_GLOBALS_V_THEVOLUME ?(all the) way down ) | (turn down $D_GLOBALS_V_THEVOLUME all the way)| ((min | minimum) ?volume)) {_intent='volumeToValue'} {_volumeLevel='01'} ; D_GLOBALS_INTENT_VOLUMEUP = (( ?(turn | crank) $D_GLOBALS_V_THEVOLUME up ?(?some more))| ((turn | crank) up $D_GLOBALS_V_THEVOLUME ) | ((make | turn) $D_GLOBALS_V_THEVOLUME ?up (louder | higher)) | ((speak | be) louder) ) {_intent='volumeUp'} ; D_GLOBALS_INTENT_VOLUMEDOWN = (( ?turn $D_GLOBALS_V_THEVOLUME down ?(?some more) ) | (turn down $D_GLOBALS_V_THEVOLUME)| ((make | turn) $D_GLOBALS_V_THEVOLUME (quieter | softer | lower)) | ((speak | be) quieter)) {_intent='volumeDown'} ; D_GLOBALS_INTENT_VOLUMETOVALUE = ((turn|crank $D_GLOBALS_V_THEVOLUME ?(up | down) ?to ?(volume | level | (volume level)) $D_GLOBALS_V_VALUE)| (turn|crank ?(up | down) $D_GLOBALS_V_THEVOLUME ?to ?(volume | level | (volume level)) $D_GLOBALS_V_VALUE)| (?set $D_GLOBALS_V_THEVOLUME ?(at | to) ?(volume | level | (volume level)) $D_GLOBALS_V_VALUE ) | (change $D_GLOBALS_V_THEVOLUME ?to ?(volume | level | (volume level)) $D_GLOBALS_V_VALUE) | ( ?make (the | your) (volume | level | (volume level)) $D_GLOBALS_V_VALUE )) {_intent='volumeToValue'} {_volumeLevel=D_GLOBALS_V_VALUE._value} ; ### USEFUL VOCABULARY ### LOOPMEMBER = $handle:crew{_loopmember = crew._users}; OTHER_LOOPMEMBER = $handle:crew{_loopmember = crew._users}; D_GLOBALS_V_GOTO = (go ?back to) | (return to) | (bring up) | (bring (me | us) to) | load | access | ( show ?(me | us)) | display; D_GLOBALS_V_THEVOLUME = (?(the | your) volume); D_GLOBALS_V_PRONOUNS = my|her|his|their; D_GLOBALS_V_VALUE = ( ( (zero|0) {_value='0'} ) | ( (one|1|21) {_value='01'} ) | ( (two|2) {_value='02'} ) | ( (three|3) {_value='03'} ) | ( (four|4) {_value='04'} ) | ( (five|5) {_value='05'} ) | ( (six|6) {_value='06'} ) | ( (seven|7) {_value='07'} ) | ( (eight|8) {_value='08'} ) | ( (nine|9) {_value='09'} ) | ( (ten|10|210) {_value='10'}) );