################################################################### # # R O O M L I N E T A S K G R A M A R # # HISTORY: ------------------------------------------------------- # # [2004-07-06] (dbohus): added a number of things to improve # coverage (based on an analysis of # parsing statistics for the ravencalendar # corpus on sprocket) # [2003-03-13] (dbohus): added stuff to deal with computers, # and with requests for largest rooms # [2002-10-24] (dbohus): started working on this # ################################################################### ################################################################### # AUXILIARIES ################################################################### [__datetime_junk] (next) (this) (an) ; [conf_room] (*CONF room) (*CONF rooms) (one) CONF (conference) (meeting) (seminar) ; [conf_rooms] (*CONF rooms) CONF (conference) (meeting) (seminar) ; ################################################################### # COMMANDS ################################################################### [i_am] (my name is) (i am) (i'm) ; [user_id] ([dtmf_key] *[dtmf_key] *[dtmf_key] *[dtmf_key] *[dtmf_key] *[dtmf_key]) ; [dtmf_key] (dtmf_one) (dtmf_two) (dtmf_three) (dtmf_four) (dtmf_five) (dtmf_six) (dtmf_seven) (dtmf_eight) (dtmf_nine) (dtmf_zero) (dtmf_star) (dtmf_pound) ; [user_name] (dan bohus) (ridy lie) (alex rudnicky) (june sison) (thomas harris) (antoine raux) (chris colohan) (ridy lie) ; [guest_user] (*a guest *user) ; [Identification] ([user_id]) (*[i_am] [user_name]) (*[i_am] [guest_user]) ; [projector_leaf] (*a *an *a_v projector *unit) (*an *a_v projector units) (*an *a_v projectors) (*a *an *a_v projecting device) (*a_v projecting devices) (*a *video projection unit) (*video projection units) (*a monitor) (monitors) (*an overhead unit) (*an overhead projector) (overhead units) (*a screen) (screens) ; [projector] (*with [projector_leaf]) ; [no_projector] (WITHOUT [projector_leaf]) WITHOUT (without *any) (*with no) (lacking) ; [ProjectorSpec] ([projector]) ([no_projector]) ; [whiteboard_leaf] (*a whiteboard) (whiteboards) (*a blackboard) (*a black board) (blackboards) (*a *dry *erase board) (dry erase boards) (*a marker board) ; [whiteboard] (*with [whiteboard_leaf]) ; [no_whiteboard] (WITHOUT [whiteboard_leaf]) WITHOUT (without *any) (*with no) (lacking) ; [WhiteboardSpec] ([whiteboard]) ([no_whiteboard]) ; [computer_leaf] (*a *windows COMPUTER) (*a *linux COMPUTER) COMPUTER (machine) (computer) (computers) ; [computer] (*with [computer_leaf]) ; [no_computer] (WITHOUT [computer_leaf]) WITHOUT (without *any) (*with no) (lacking) ; [ComputerSpec] ([computer]) ([no_computer]) ; [networking_leaf] (networking) (net connectivity) (net access) (internet *access) (internet connection) (network connectivity) (network access) (connected to the network) (networked) (on the network) (on the net) (connected to the network) (connected to the net) (*a network *jack) (*a network plug) (*a network connection) ; [networking] (*with [networking_leaf]) ; [no_networking] (WITHOUT [networking_leaf]) WITHOUT (without *any) (*with no) (lacking) ; [NetworkingSpec] ([networking]) ([no_networking]) ; [room_size] (for SIZE *PEOPLE) (*for SIZE PEOPLE *PRESENT) (*THAT *can HOLD SIZE *PEOPLE) PRESENT (present) (*in there) SIZE (*GROUP_OF *ATLEAST [number]) (ABOUT [number]) ABOUT (about) (approximately) GROUP_OF (*a group of) (*a number of) THAT (that) (which) ATLEAST (at least) (more than) HOLD (*is big enough *for) (hold) (holds) (accomodate) (seat) PEOPLE (people) (persons) ; [room_size_spec] ([rss_large]) ([rss_small]) ([rss_larger]) ([rss_smaller]) ([rss_smallest]) ([rss_largest]) ; [rss_large] (large) (big) (huge) ; [rss_larger] (*the larger) (*the bigger) (too small) ; [rss_largest] (*the largest) (*the biggest) ; [rss_small] (small) (little) ; [rss_smaller] (*the smaller) (too big) (too large) ; [rss_smallest] (*the smallest) ; [RoomSizeSpec] (*DET [room_size_spec] *[conf_room] *IS_GOOD *[_courtesy]) ([room_size]) DET (a) (the) (something) IS_GOOD (works fine) (*WOULD work fine) (WOULD do) (WOULD be GOOD) (is GOOD *enough) (sounds GOOD) WOULD (would) (will) GOOD (good) (great) (fine) (okay) (nice) ; [location] (newell simon) (newell simon hall) (nsh) (wean) (wean hall) ; #[RoomLocationSpec] # (*in [location] *IS_GOOD *[_courtesy]) #IS_GOOD # (works fine) # (*WOULD work fine) # (WOULD do) # (WOULD be GOOD) # (is GOOD *enough) # (sounds GOOD) #WOULD # (would) # (will) #GOOD # (good) # (great) # (fine) # (okay) # (nice) #; [DateTimeSpec] (*for [date_time]) ; [EventTypeSpec] ([event_type]) ; [LocationSpec] (at [location]) (in [location]) ([location]) ; [LocationFreeSpeech] (location is *) ; [event_type] ([event_type_singular]) ([event_type_plural]) ; [event_type_singular] (appointment) (class) (meeting) ; [event_type_plural] (appointments) (classes) (meetings) ; [appointment] (appointment) ; [class] (class) ; [meeting] (meeting) ; #[location] # (humanities) # (sac) # (student activities center) # (student union) # (computer science) # (see es) #; [RemoveEvents] (remove) (delete) (cancel) ; [ChangeEvents] (change) (modify) ; [ListEvents] (list) (query) (view) ; [AddEvent] (*[_can_i] CREATE *also EVENT *LOCATION) (*[_i_want] TO_CREATE EVENT *LOCATION) (CREATE) #[NeedRoom] # ([conf_room] reservation *also *DESCRIPTION) # ([_i_want] RESERVATION *also *DESCRIPTION) # (*[_can_i] RESERVE *ROOM_SPEC2 *DESCRIPTION) # (*[_can_i] RESERVE *ROOM_SPEC *DESCRIPTION) # ([_i_want] *TO_RESERVE ROOM_SPEC2 *DESCRIPTION) # (*[_i_want] TO_RESERVE *DESCRIPTION) # (*[_i_want] *TO_RESERVE ROOM_SPEC *DESCRIPTION) # (*[_i_want] *TO_RESERVE a [networking] ROOM *DESCRIPTION) # (*[_i_want] *TO_RESERVE [room]) # ([room] IS_GOOD) WOULD (would) (will) GOOD (good) (great) (fine) (okay) (nice) CREATE (new) (make) (insert) (add) TO_CREATE (to make) (to insert) (to add) EVENT (*a [event_type]) (an [event_type]) LOCATION ([location]) ; [ChooseRoom] ([this_room]) ([any_room]) ([first_room]) ([second_room]) ; [this_room] (*[_i_want] *RESERVE [_this_that] [conf_room]) (*[_i_want] RESERVE [_this_that] *[conf_room]) ([_this_that] *ROOM IS_GOOD) RESERVE (to reserve) (to make a *[conf_room] reservation *for) (to make reservations *for) (to get) (to book) (to schedule *a *meeting) IS_GOOD (works fine) (*WOULD work fine) (WOULD do) (WOULD be GOOD) (is GOOD *enough) (sounds GOOD) WOULD (would) (will) ROOM ([conf_room]) ([conf_rooms]) GOOD (good) (great) (fine) (okay) (nice) ; [any_room] (*[_i_want] *PICK any room) (*[_i_want] *to *PICK any *one *OF_THEM *IS_GOOD) (*[_i_want] *to PICK one *OF_THEM *IS_GOOD) (*[_i_want] *to *PICK either *OF_THEM *IS_GOOD) (any *one IS_GOOD) (either *one IS_GOOD) (any room *IS_GOOD) (either room *IS_GOOD) (anything) (whichever) (i DONT *really care) (i DONT *really know) PICK (pick) (choose) (take) DONT (don't) (do not) OF_THEM (of them) (of those) (of these) IS_GOOD (works fine) (*WOULD work fine) (WOULD do) (WOULD be GOOD) (is GOOD *enough) (sounds GOOD) WOULD (would) (will) GOOD (good) (great) (fine) (okay) (nice) ; [first_room] (*[_i_want] the first *AVAIL [conf_room] *LISTED) (*[_i_want] the first OF_THEM) OF_THEM (of them) (of these) (of those) (option) AVAIL (available) (free) LISTED (in the list) (*that YOU HAVE) YOU (you) (you've) HAVE (have) (metioned) (said) (found) (got) ; [second_room] (*[_i_want] the second *AVAIL [conf_room] *LISTED) (*[_i_want] the second OF_THEM) OF_THEM (*one of them) (*one of these) (*one of those) (option) AVAIL (available) (free) LISTED (in the list) (*that YOU HAVE) YOU (you) (you've) HAVE (have) (said) (mentioned) (found) (got) ; [ListRooms] (*[_can_you] TELL *LIST_OF *AVAIL ROOMS *AVAIL *AGAIN *[_courtesy]) (WHAT IS *LIST_OF *AVAIL ROOMS *AVAIL *AGAIN *[_courtesy]) ([_i_want] LIST_OF *AVAIL ROOMS *AVAIL *AGAIN *[_courtesy]) (WHAT IS my choices) (WHAT ROOMS *ARE_THERE *AVAIL *[_courtesy]) (WHAT IS *AVAIL ROOMS *AVAIL *[_courtesy]) WHAT (what) (which) IS (is) (was) (are) (were) TELL (name) (list) (tell me *what) (tell me) (say) (hear) (repeat) AGAIN (again) ROOMS (ones) (*the *LIST_OF [conf_rooms]) (the list) (that list) LIST_OF (a list of *other) (*the list of *other) (*the set of) (those) (*the other) (all *the *other) ARE_THERE (are *AVAIL *there) (were *AVAIL *there) (do you have) (did you *say *you have) (did you *say *you had) AVAIL (*all *the available) (*all *the free) (you *have *found) ; [RejectAllRooms] (*i DONT WANT any of *THESE ROOMS) (*i DONT WANT any of THESE) DONT (don't) (do not) WANT (want) (need) THESE (these) (those) (them) ROOMS ([conf_rooms]) (them) ; #[CancelReservation] # (*[_i_want] CANCEL *THIS *[conf_room] reservation *[_courtesy]) # (*[_i_want] CANCEL *IT *[_courtesy]) # (I_DONT_WANT THIS *[conf_room] reservation *for *THIS_ROOM) #I_DONT_WANT # (i DONT want) # (i DIDNT want) # (i DONT need) # (i DIDNT need) #DONT # (don't) # (do not) #DIDNT # (didn't) # (did not) #CANCEL # (cancel) # (delete) # (remove) #THIS_ROOM # (this [conf_room]) # (IT) # ([room]) #THIS # (this) # (that) # (the) # (a) #IT # (this) # (that) # (it) #; ################################################################### # ROOMS AND LOCATIONS ################################################################### [4623] (forty six twenty three) (four six two three) ; [4625] (forty six twenty five) (four six two five) ; [7220] (seventy two twenty) (seven two two zero) ; [8220] (eighty two twenty) (eight two two zero) ; [4632] (forty six thirty two) (four six three two) ; [4513] (forty five thirteen) (four five one three) ; [3509] (thirty five oh nine) (three five oh nine) (three five zero nine) ; [1505] (fifteen oh five) (fifteen zero five) (one five oh five) (one five zero five) ; [1507] (fifteen oh seven) (fifteen zero seven) (one five oh seven) (one five zero seven) ; [2507] (twenty five oh seven) (twenty five zero seven) (two five oh seven) (two five zero seven) ; [3001] (three thousand one) (three zero zero one) (three oh oh one) ; [3305] (thirty three oh five) (thirty three zero five) (three three oh five) (three three zero five) ; [3501] (thirty five oh one) (thirty five zero one) (three five oh one) (three five zero one) ; [room_number] ([4623]) ([4625]) ([7220]) ([8220]) ([4632]) ([4513]) ([3509]) ([1505]) ([1507]) ([2507]) ([3001]) ([3305]) ([3501]) ; [room] (*room *LOCATION [room_number]) # (dbohus): here I am using LOCATION instead of the available slot # [location] because we don't want that to parse as # [location] when we already have a room_number; there # is a need for eliminating that ambiguity LOCATION (newell simon) (newell simon hall) (nsh) (wean) (wean hall) ; ################################################################### # Questions about events ################################################################### [Question] ([whattime_event]) ([describe_event]) ([where_event]) ; [whattime_event] (*starting *at what time *is *the *EVENT) (*starting from what time *is *the *EVENT) (what time *is *the *is *the *EVENT) #EVENT # (*a [event_type]) # (an [event_type]) ; [describe_event] (describe *the *EVENT) (summarize *the *EVENT) #EVENT # (*a [event_type]) # (an [event_type]) ; [where_event] (where) (at which location) (what is the location) (which location) (what location) # (where *is *the *EVENT) # (*at which location *is *the *EVENT) #EVENT # (*a [event_type]) # (an [event_type]) ; ################################################################### # QUERIES ################################################################### [QueryEvents] (*TELL *WHAT *are my *[date_time] EVENT) (LIST *all *[date_time] EVENT) #TODO: this should be event_type_plural!!! #[QueryProjector] # (do ROOM HAVE [projector]) # (does ROOM HAVE [projector]) # (is there [projector] in ROOM) # (*TELL *LIST_OF *ROOM HAVE [projector]) # (WHAT are the ROOMS with [projector]) EVENT ([event_type]) WHAT (what) (which) TELL (*[_can_you] LIST) LIST (list) (tell me *what) (tell me) LIST_OF (*the list of) (*the set of) (which *of) ROOM ([_it]) ([room]) (ROOMS) (one) (ones) (*one of THEM) (*the [conf_room]) ([_this_that] [conf_room]) (any *one of these [conf_rooms]) ROOMS (they) (rooms) (*ANY_OF these [conf_rooms]) (*ANY_OF those [conf_rooms]) (ANY_OF them) ANY_OF (any *one of) HAVE (have) (has) (come with) (comes with) (*is *equipped with) (*are *equipped with) THEM (them) (these *[conf_rooms]) (those *[conf_rooms]) ; [QueryWhiteboard] (do ROOM HAVE [whiteboard]) (does ROOM HAVE [whiteboard]) (is there [whiteboard] in ROOM) (*TELL *LIST_OF *ROOM HAVE [whiteboard]) (WHAT are the ROOMS with [whiteboard]) WHAT (what) (which) TELL (*[_can_you] LIST) LIST (list) (tell me *what) (tell me) LIST_OF (*the list of) (*the set of) (which *of) ROOM ([_it]) ([room]) (ROOMS) (one) (ones) (*one of THEM) (*the [conf_room]) ([_this_that] [conf_room]) (any *one of these [conf_rooms]) ROOMS (they) (rooms) (*ANY_OF these [conf_rooms]) (*ANY_OF those [conf_rooms]) (ANY_OF them) ANY_OF (any *one of) HAVE (have) (has) (come with) (comes with) (*is *equipped with) (*are *equipped with) THEM (them) (these *[conf_rooms]) (those *[conf_rooms]) ; [QueryComputer] (do ROOM HAVE [computer]) (does ROOM HAVE [computer]) (is there [whiteboard] in ROOM) (*TELL *LIST_OF *ROOM HAVE [computer]) (WHAT are the rooms with [computer]) WHAT (what) (which) TELL (*[_can_you] LIST) LIST (list) (tell me *what) (tell me) LIST_OF (*the list of) (*the set of) (which *of) ROOM ([_it]) ([room]) (ROOMS) (one) (ones) (*one of THEM) (*the [conf_room]) ([_this_that] [conf_room]) (any *one of these [conf_rooms]) ROOMS (they) (rooms) (*ANY_OF these [conf_rooms]) (*ANY_OF those [conf_rooms]) (ANY_OF them) ANY_OF (any *one of) HAVE (have) (has) (come with) (comes with) (*is *equipped with) (*are *equipped with) THEM (them) (these *[conf_rooms]) (those *[conf_rooms]) ; [QueryNetworking] (do ROOM HAVE [networking]) (does ROOM HAVE [networking]) (*TELL *LIST_OF ROOM *THAT_HAVE [networking]) (is ROOM [networking]) (WHAT are the rooms [networking]) WHAT (what) (which) TELL (*[_can_you] LIST) LIST (list) (tell me *what) (tell me) LIST_OF (*the list of) (*the set of) (which *of) ROOM ([_it]) ([room]) (ROOMS) (one) (ones) (*one of THEM) (*the [conf_room]) ([_this_that] [conf_room]) (any *one of these [conf_rooms]) ROOMS (they) (rooms) (*ANY_OF these [conf_rooms]) (*ANY_OF those [conf_room]) (ANY_OF them) ANY_OF (any *one of) THAT_HAVE (*THAT HAVE) (*THAT are) (*THAT is) THAT (that) (which) HAVE (have) (has) (come with) (comes with) (*is *equipped with) (*are *equipped with) THEM (them) (these *[conf_rooms]) (those *[conf_rooms]) ; [QueryLocation] (WHAT *ROOMS IS *AVAIL in [location]) (WHAT_S *AVAIL in [location]) (*TELL *LIST_OF *AVAIL ROOMS *AVAIL in [location] *[_courtesy]) (*TELL WHAT_S *LIST_OF *AVAIL *ROOMS *AVAIL in [location] *[_courtesy]) (*TELL WHAT ROOMS ARE_THERE in [location] *[_courtesy]) (*TELL WHAT are *the *AVAIL ROOMS *AVAIL in [location] *[_courtesy]) WHAT (what) (which) WHAT_S (what is) (which are) (what's) ARE_THERE (are *AVAIL *there) (do you have) ROOMS (one) (ones *of *THEM) (*the *LIST_OF [conf_rooms]) (the list) (that list) (*one of THEM) (*the [conf_room]) ([_this_that] [conf_room]) (*any of THEM [conf_rooms]) (*of *the [conf_rooms]) TELL (*[_can_you] LIST) LIST (list) (tell me *what) (tell me) LIST_OF (*the list of) (*the set of) AVAIL (available) (free) (you *have *found) IS (is) (was) (were) (are *there) (*do you have) (you've got) (you've found) (have you got) THEM (them) (those *[conf_rooms]) (these *[conf_rooms]) ; [QueryRoomSize] (is [_it] *a BIG ROOM) (is ROOM BIG *enough *for *[number] *people) (WHICH *ROOM can HOLD *[number] *people) (how BIG is ROOM) (how BIG are ROOMS) (what size is ROOM) (what is the SIZE_OF *ROOM) (how many PEOPLE CAN ROOM HOLD) (how many PEOPLE FIT *in *ROOM) CAN (can) (will) ROOMS (*these [conf_room]) (*the [conf_room]); (THEM) WHICH (which *one) (which *ones) (which *one of THEM) (which *ones of THEM) THEM (these) (them) (they) (those) SIZE_OF (size of) (seating *capacity for) (capacity *for) HOLD (hold) (accommodate) (seat) (fit) (fill) PEOPLE (people) (persons) BIG (big) (large) (small) FIT (*can fit) ROOM ([_it]) ([room]) (there) (*the [conf_room]) ([_this_that] [conf_room]) ; [QueryRoomSizeSpec] (*TELL WHICH *ONE is EXTREME *AVAIL *ONE) ([_i_want] EXTREME *AVAIL *ONE *YOU_FOUND *[_courtesy]) (*TELL WHICH *ONE IS [room_size_spec]) (*TELL WHICH IS [room_size_spec] *ONE) (TELL *WHICH *IS [room_size_spec] *ONE) AVAIL (available) (free) EXTREME ([rss_smallest]) ([rss_largest]) TELL (list) (tell me) (say) (repeat) WHICH (which) (what) ONE (*one of THEM) (ones) ([conf_room]) ([conf_rooms]) THEM (them) (these) (those) IS (is) (are) YOU_FOUND (you have *FOUND) (you've *FOUND) FOUND (found) (got) ; [QueryRoomDetails] (*PRELUDE TELL DETAILS *ROOM *AGAIN *[_courtesy]) (*PRELUDE *TELL DETAILS ROOM *[_courtesy]) (*PRELUDE *TELL ROOM DETAILS *[_courtesy]) (WHAT IS ROOM *DETAILS *AGAIN *[_courtesy]) (WHAT ROOM *U_TALK) PRELUDE ([_i_want]) ([_can_you]) U_TALK (DO you mean) (IS you talking about) (IS [_this_that]) DO (do) (did) DETAILS (*more *details about) (*THE details *of ) (*THE properties *of) (*THE characteristics *of) (information) THE (the) (those) WHAT (what) (which) IS (is) (was) (are) (were) TELL (list) (give me) (tell me *what) (tell me *a *bit *more) (say) (repeat) AGAIN (again) ROOM (one) (*[_this_that] *seminar room) ([room]) ; [QueryOtherRooms] (EXIST OTHER *AVAIL ROOMS *AVAIL) (EXIST anything else *AVAIL) (what OTHER *AVAIL *ROOMS EXIST) (what IS OTHER *AVAIL *ROOMS) (*[_i_want] OTHER *AVAIL *ROOMS *[_courtesy]) IS (were) (was) (are) (is) EXIST (is there) (are there) (do you have) (did you find) (can you find) OTHER (*any other) (*the other) (others) (a different) (an alternative) (another) (*something else) AVAIL (available) (free) (unoccupied) ROOMS (ones) ([conf_room]) ([conf_rooms]) (choice) (choices) ; ################################################################### # RESPONSES ################################################################### [Indifferent] (i DONT *really care) (*it doesn't *really matter) (*it does not *really matter) (either way *IS_GOOD) (whatever) DONT (don't) (do not) IS_GOOD (works fine) (*WOULD work fine) (WOULD do) (WOULD be GOOD) (is GOOD *enough) (sounds GOOD) WOULD (would) (will) GOOD (good) (great) (fine) (okay) (nice) ; [Satisfied] (*[i_am] *very SATISFIED) SATISFIED (satisfied) (happy) ; [SomewhatSatisfied] (so so) (*[i_am] partially *satisfied) (*[i_am] somewhat *satisfied) (*[i_am] sort of *satisfied) (*[i_am] kind of *satisfied) (*[i_am] semi *satisfied) (*it *was average) ; [FirstOne] (*[_i_want] the first one) (*[_emphatic] the fist one) ; [SecondOne] (*[_i_want] the second one) (*[_emphatic] the second one) ;