From 424322a2598bcb73505827b77dd0e896c8b3ca8b Mon Sep 17 00:00:00 2001
From: lgraesner <lgraesner@techfak.uni-bielefeld.de>
Date: Wed, 14 Jun 2023 11:58:16 +0200
Subject: [PATCH] added recognition for incomplete and the party host commands

---
 psGrammar/tasks/gpsr/gpsr23.jsgf | 81 ++++++++++++++++++++------------
 1 file changed, 51 insertions(+), 30 deletions(-)

diff --git a/psGrammar/tasks/gpsr/gpsr23.jsgf b/psGrammar/tasks/gpsr/gpsr23.jsgf
index be6daf4d..cd5ef14d 100644
--- a/psGrammar/tasks/gpsr/gpsr23.jsgf
+++ b/psGrammar/tasks/gpsr/gpsr23.jsgf
@@ -1,28 +1,29 @@
 #JSGF V1.0;
 grammar speechRecognition;
 
+
 public <sentence> 		= [could you | robot | tobi] [please] <command>;
 
-<command> = (<cmdfndppl> | <cmdfndobj> | <cmdguide> | <cmdfollow> | <cmdfollowout> | <cmdincomplete> | <cmdman> | <complexman> | <cmdpartyhost>);
+<command> 			= (<cmdfndppl> | <cmdfndobj> | <cmdguide> | <cmdfollow> | <cmdfollowout> | <cmdincomplete> | <cmdman> | <complexman> | <cmdpartyhost>);
 
-<cmdfndppl> 		= <tellPrsInfoInLoc> | <countPrsInRoom>;
+<cmdfndppl> 			= <tellPrsInfoInLoc> | <countPrsInRoom>;
 
-<cmdfndobj> 		= <findObjInRoom> | <countObjOnPlcmt> | <tellCatPropOnPlcmt> | <tellObjPropOnPlcmt>;
+<cmdfndobj> 			= <findObjInRoom> | <countObjOnPlcmt> | <tellCatPropOnPlcmt> | <tellObjPropOnPlcmt>;
 
 <cmdguide> 			= <guideNameFromBeacToBeac> | (<meetPrsAtBeac> and <guidePrsToBeacon>) | (<goToLoc> <meetName> and <guidePrsToBeacon>);
 
 
-<cmdfollow> 		= <followNameFromBeacToRoom> | (<meetPrsAtBeac> and (<followPrs> | <followPrsToRoom>)) | (<goToLoc> <meetName> and (<followPrs> | <followPrsToRoom>));
+<cmdfollow> 			= <followNameFromBeacToRoom> | (<meetPrsAtBeac> and (<followPrs> | <followPrsToRoom>)) | (<goToLoc> <meetName> and (<followPrs> | <followPrsToRoom>));
 
 <cmdfollowout> 		= <meetPrsAtBeac> <followPrs> and (<goToLoc> | <guidePrsBack>);
 
-<cmdincomplete> 	= skyler;
+<cmdincomplete> 		= <followName> | <deliverObjToMe> | <guidePrsToBeacon> | (<goToLoc> <meetName> and <guidePrsIncomplete>);
 
 <cmdman> 			= <bringMeObjFromPlcmt> | (<takeObjFromPlcmt> and (<deliverObjPronToMe> | <deliverObjToNameAtBeac>)) | (<takeObjFromPlcmt> and <placeObjPronOnPlcmt>);
 
-<complexman> 		= skyler;
+<complexman> 			= skyler;
 
-<cmdpartyhost>		= skyler;
+<cmdpartyhost>			= <serveDrinks> | (<meetPrsAtBeac> and <introduce>) | (<meetPrsAtBeac> and <requestleave>) | (<meetPrsAtBeac> and <guidePrsToTaxi>);
 
 <goToLoc> 			= <V_go> <toLocPrep> (<NP_room> | <NP_placement> | <NP_beacon>);
 
@@ -46,11 +47,13 @@ public <sentence> 		= [could you | robot | tobi] [please] <command>;
 
 <followPrs> 			= <V_follow> <NP_personalpron>;
 <followPrsToRoom> 		= <V_follow> <NP_personalpron> <toLocPrep> <NP_roomTwo>;
+<followName>			= <V_follow> <NP_name>;
 <followNameFromBeacToRoom> 	= <V_follow> <NP_name> <fromLocPrep> <NP_beacon> <toLocPrep> <NP_roomTwo>;
 
 <meetName> 			= <V_meet> <NP_name>;
 <meetPrsAtBeac> 		= <V_meet> <NP_name> <atLocPrep> <NP_beacon>;
 
+
 <bringMeObj>    		= <V_bring> <NP_me> <NP_object>;
 <bringMeObjFromPlcmt> 		= <V_bring> <NP_me> <NP_object> <fromLocPrep> <NP_placement>;
 
@@ -66,11 +69,17 @@ public <sentence> 		= [could you | robot | tobi] [please] <command>;
 <deliverObjToGestPrsInRoom> 	= <V_deliver> [<NP_objectpron>] <NP_object> <deliverPrep> <NP_gestperson> <inLocPrep> <NP_roomTwo>;
 <deliverObjToNameAtBeac> 	= <V_deliver> <NP_objectpron> <deliverPrep> <NP_name> <atLocPrep> <NP_beaconTwo>;
 
+<guidePrsIncomplete>		= <V_guide> <NP_name>;
 <guidePrsBack>			= <V_guide> <NP_personalpron> back;
 <guidePrsToBeacon> 		= <V_guide> <NP_personalpron> <toLocPrep> <NP_beaconTwo>;
 <guideNameFromBeacToBeac> 	= <V_guide> <NP_name> <fromLocPrep> <NP_beacon> <toLocPrep> <NP_beaconTwo>;
 <guideNameToBeacFindAtBeac> 	= <V_guide> <NP_name> <toLocPrep> <NP_beaconTwo> you (may | can | will) find (them | him | her) <atLocPrep> <NP_beacon>;
 
+<serveDrinks>			= <V_serve> <NP_partyfood> to ((everyone | everybody) | (all the <NP_agegenderpersonplural>)) in the room;
+<introduce>			= <V_introduce> <NP_personalpron> to <NP_agegenderpersonplural> | (<NP_name> <LocPrep> <NP_beaconTwo>);
+<requestleave>			= <V_ask> <NP_personalpron> to <V_leave>;
+<guidePrsToTaxi> 		= <V_guide> <NP_personalpron> <toLocPrep> <NP_taxi>;
+
 
 <deliverPrep> 			= to;
 <placePrep> 			= on;
@@ -96,8 +105,13 @@ public <sentence> 		= [could you | robot | tobi] [please] <command>;
 <V_guide> 			= guide | escort | take | lead | accompany;
 <V_tell> 			= tell;
 <V_count> 			= tell me how many;
+<V_serve>			= serve | arrange | deliver | distribute | give | provide;
+<V_introduce>			= introduce;
+<V_ask>			= ask;
+<V_leave>			= leave;
 
-<NP_object>    			= (the <N_object>) | (a <N_object>) | (an <N_object>) | (<N_object>);
+
+<NP_object>    		= (the <N_object>) | (a <N_object>) | (an <N_object>) | (<N_object>);
 <NP_objectpron> 		= (<N_objectpron>);
 <NP_category> 			= (the <N_category>) | <N_category>;
 <NP_objectprop> 		= (the <N_objectprop>);
@@ -112,32 +126,39 @@ public <sentence> 		= [could you | robot | tobi] [please] <command>;
 <NP_poseperson> 		= (a <N_poseperson>);
 <NP_genderperson> 		= (a <N_genderperson>);
 <NP_genderpersonplural> 	= (<N_genderpersonplural>);
+<NP_agegenderpersonplural>	= (<N_agegenderpersonplural>);
 <NP_name> 			= <N_name>;
 <NP_talk> 			= <N_talk>;
 <NP_answer> 			= <N_answer>;
 <NP_personalpron> 		= <N_personalpron>;
 <NP_personattribute> 		= (the <N_personattribute>);
 <NP_posture> 			= <N_posture>;
-
-<N_objectpron> 			    = it;
-<N_objectprop> 			    = biggest | largest | smallest | heaviest | lightest | thinnest;
-<N_me>        			    = me;
-<N_gestperson> 			    = (person waving) | (person (raising | rising) [their] (left|right) arm) | (person pointing to the (left|right)) | (person calling);
-<N_poseperson> 			    = (person sitting) | (person standing) | (person lying down);
-<N_genderperson> 		    = man | woman | boy | girl | (male person) | (female person);
-<N_genderpersonplural> 		= men | women | boys | girls | male | female;
-<N_talk> 			        = (something about yourself) | (the time) | (what day is (today | tomorrow)) | (your teams (name | country | affiliation)) | (the day of the (week | month)) | (a joke);
-<N_answer> 			        = (a question);
-<N_personalpron> 		    = them | her | him;
+<NP_taxi>			= (the <N_taxi>);
+<NP_partyfood>			= <N_partyfood>;
+
+<N_objectpron> 		= it;
+<N_objectprop> 		= biggest | largest | smallest | heaviest | lightest | thinnest;
+<N_me>        			= me;
+<N_gestperson> 		= (person waving) | (person (raising | rising) [their] (left|right) arm) | (person pointing to the (left|right)) | (person calling);
+<N_poseperson> 		= (person sitting) | (person standing) | (person lying down);
+<N_genderperson> 		= man | woman | boy | girl | (male person) | (female person);
+<N_genderpersonplural> 	= men | women | boys | girls | male | female;
+<N_agegenderpersonplural>	= people | men | women | guests | elders | children;
+<N_talk> 			= (something about yourself) | (the time) | (what day is (today | tomorrow)) | (your teams (name | country | affiliation)) | (the day of the (week | month)) | (a joke);
+<N_answer> 			= (a question);
+<N_personalpron> 		= them | her | him;
 <N_personattribute> 		= name | gender | pose;
-<N_posture> 			    = sitting | standing | lying down;
-
-<N_object>                  = bleach | (dishwasher tab) | (tray) | (basket) | (bag) | (fork) | (knife) | spoon | plate | bowl | cup | milk | coke | milo | banana | pear | orange | peach | mustard | spam | sugar | pringles | crackers | cornflakes;
-<N_category>                = (cleaning supplies) | containers | cutlery | drinks | fruits | (pantry items) | snacks; 
-<N_room>                    = kitchen | (living room) | bedroom | (dining room);
-<N_roomTwo> 			    = kitchen | (living room) | bedroom | (dining room);
-<N_placement>               = (small cabinet) | (side table) | (ikea table);
-<N_placementTwo>            = (small cabinet) | (side table) | (ikea table);
-<N_beacon>                  = (seat one) | (seat two) | (seat three) | (seat four) | (seat five) | (seat six) | (small cabinet) | (side table) | (ikea table) | exit | entrance;
-<N_beaconTwo>               = (seat one) | (seat two) | (seat three) | (seat four) | (seat five) | (seat six) | (small cabinet) | (side table) | (ikea table) | exit | entrance;
-<N_name>                    = alex | charlie | elizabeth | francis | jennifer | linda | mary | patricia | james | john | michael | robert | robin | skyler | william;
+<N_posture> 			= sitting | standing | lying down;
+
+
+<N_object>                  	= bleach | (dishwasher tab) | (tray) | (basket) | (bag) | (fork) | (knife) | spoon | plate | bowl | cup | milk | coke | milo | banana | pear | orange | peach | mustard | spam | sugar | pringles | crackers | cornflakes;
+<N_category>                	= (cleaning supplies) | containers | cutlery | drinks | fruits | (pantry items) | snacks; 
+<N_room>                    	= kitchen | (living room) | bedroom | (dining room);
+<N_roomTwo> 			= kitchen | (living room) | bedroom | (dining room);
+<N_placement>               	= (small cabinet) | (side table) | (ikea table);
+<N_placementTwo>            	= (small cabinet) | (side table) | (ikea table);
+<N_beacon>                  	= (seat one) | (seat two) | (seat three) | (seat four) | (seat five) | (seat six) | (small cabinet) | (side table) | (ikea table) | exit | entrance;
+<N_beaconTwo>               	= (seat one) | (seat two) | (seat three) | (seat four) | (seat five) | (seat six) | (small cabinet) | (side table) | (ikea table) | exit | entrance;
+<N_name>                    	= alex | charlie | elizabeth | francis | jennifer | linda | mary | patricia | james | john | michael | robert | robin | skyler | william;
+<N_taxi> 			= taxi;
+<N_partyfood>			= snacks | drinks;
-- 
GitLab