From 1c121f999311438655e9ed73942cd3fd1a01543c Mon Sep 17 00:00:00 2001 From: Arpit Aggarwal Date: Tue, 5 Mar 2024 21:51:35 +0100 Subject: [PATCH] =?UTF-8?q?add=20valid=20test=20data=1B[C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hmi/data/eegpsr_grammar.fcfg | 175 +++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 hmi/data/eegpsr_grammar.fcfg diff --git a/hmi/data/eegpsr_grammar.fcfg b/hmi/data/eegpsr_grammar.fcfg new file mode 100644 index 0000000..ce97073 --- /dev/null +++ b/hmi/data/eegpsr_grammar.fcfg @@ -0,0 +1,175 @@ +T[{actions : }] -> C[A1] +T[{actions : }] -> C[A1] and C[A2] +T[{actions : }] -> C[A1] C[A2] and C[A3] +#T[{actions : }] -> C[A1] C[A2] C[A3] and C[A4] + +C[{A}] -> VP[A] +C[{A}] -> CALL VP[A] + +# take it tell the day of the week <---- + +CALL -> robot | please | robot please | could you | could you please + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Entities +# - - - - - - - - - - - - - - - - - - - - - - - - - + +NP[M] -> SMALL_OBJECT[M] +NP[M] -> LOC[M] + +DET -> the | a + +LOC[{"id" : X}] -> ROOM[X] | FURNITURE[X] + +SMALL_OBJECT_SPEC[{ "special" : "it" }] -> it +SMALL_OBJECT_SPEC[{ "type" : X }] -> DET SMALL_OBJECT[X] +SMALL_OBJECT_SPEC[{ "type" : X, "loc" : Y }] -> DET SMALL_OBJECT[X] FROM_PP the LOC[Y] +SMALL_OBJECT_SPEC[{ "cat" : C }] -> DET OBJ_CAT[C] +SMALL_OBJECT_SPEC[{ "cat" : C, "loc" : Y }] -> DET OBJ_CAT[C] FROM_PP the LOC[Y] + +FROM_PP -> from | on | which is on +AT_PP -> in | at | who is in + +ADJ_PERSON["waving"] -> waving +ADJ_PERSON["calling"] -> calling + +LOC_DET[R] -> in the ROOM[R] + +TO_LOC[X] -> the LOC[X] +TO_LOC[{P}] -> PERSON[P] +TO_LOC[{"special" : "operator"}] -> me + +TO_LOC[{"id" : "entrance"}] -> entrance +TO_LOC[{"id" : "exit"}] -> exit + +PERSON["type" : "person"] -> DET person +PERSON["type" : "person", "adj" : A] -> DET ADJ_PERSON[A] person +PERSON["type" : "person", "loc" : L] -> DET person LOC_DET[L] +PERSON["type" : "person", "adj" : A, "loc" : L] -> DET ADJ_PERSON[A] person LOC_DET[L] +PERSON["type" : "person", "id" : N] -> NAME[N] +PERSON["type" : "person", "id" : N, "loc" : L] -> NAME[N] LOC_DET[L] +PERSON["type" : "person", "loc" : L] -> NAME[N] NEAR_IN_ON the LOC[L] +PERSON["special" : "it"] -> him | her | them + +NEAR_IN_ON -> near | in | on + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Exit +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action" : "exit"] -> exit the arena | leave the arena + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Follow +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action": "follow", "entity" : {X}] -> follow PERSON[X] + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Find +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action": A, "entity": X] -> V_FIND[A] OBJ_FIND[X] + +V_FIND["find"] -> find | look for | locate + +OBJ_FIND[X] -> SMALL_OBJECT_SPEC[X] | TO_LOC[X] +OBJ_FIND[P] -> PERSON[P] + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Say +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action": "count", "cat" : C] -> V_SAY how many OBJ_CAT[C] there are +VP["action": "count", "cat" : C] -> V_SAY how many GENDER[C] there are +VP["action": "count", "cat" : C, "loc" : L] -> V_SAY how many OBJ_CAT[C] are at the LOC[L] +VP["action": "count", "cat" : C, "loc" : L] -> V_SAY how many GENDER[C] are at the LOC[L] + +GENDER["women"] -> women +GENDER["men"] -> men + +V_SAY -> tell | say | speak + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Grasping +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action": A, "entity": X] -> V_GRASP[A] SMALL_OBJECT_SPEC[X] + +V_GRASP["pick-up"] -> grab | grasp | pick up | take | get + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Placing +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action" : "bring", "to" : L] -> V_PLACE SMALL_OBJECT_SPEC[X] on the LOC[L] +VP["action" : "bring", "to" : L] -> V_PLACE SMALL_OBJECT_SPEC[X] in the LOC[L] +VP["action" : "bring", "to" : L] -> V_PLACE SMALL_OBJECT_SPEC[X] into the CONTAINER_SPEC[L] +VP["action" : "bring", "to" : L] -> V_PLACE SMALL_OBJECT_SPEC[X] into the CONTAINER[L] at the LOC[L] +V_PLACE -> put | place + +CONTAINER_SPEC[{"type" : X}] -> CONTAINER[X] +CONTAINER_SPEC[{"type" : X, "loc" : L}] -> CONTAINER[X] at the LOC[L] + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Moving +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action": A, "entity": X] -> V_MOVE[A] NAV_LOC[X] + +NAV_LOC[X] -> TO_LOC[X] +NAV_LOC[X] -> the ROOM[X] + +V_MOVE["navigate"] -> move to | go to | drive to | navigate to | come to | come back to | get into | reach + +VP["action": "navigate", "entity": X] -> V_GUIDE HIM_HER to TO_LOC[X] + +HIM_HER -> him | her + +V_GUIDE -> guide | take + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Bringing +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action" : "bring", "entity" : X, "to" : Y ] -> V_BRING SMALL_OBJECT_SPEC[X] ON_TO TO_LOC[Y] +VP["action" : "bring", "entity" : X, "to" : {"special" : "operator"} ] -> V_BRING me SMALL_OBJECT_SPEC[X] + +V_BRING -> give | bring | hand | deliver | take | carry | transport + +ON_TO -> on | to + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Questions +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action": "answer-question"] -> answer a question +VP["action": "answer-question"] -> answer the question +VP["action": "answer-question"] -> answer his question +VP["action": "answer-question"] -> answer her question + +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Say +# - - - - - - - - - - - - - - - - - - - - - - - - - + +VP["action": "say", "sentence": "ROBOT_NAME"] -> V_SAY your name +VP["action": "say", "sentence": "TIME"] -> V_SAY the time | V_SAY what time it is | V_SAY what time is it | what time is it +VP["action": "say", "sentence": "my team is tech united"] -> V_SAY the name of your team + +VP["action": "say", "sentence": "DAY_OF_MONTH"] -> V_SAY the day of the month +VP["action": "say", "sentence": "DAY_OF_WEEK"] -> V_SAY the day of the week +VP["action": "say", "sentence": "TODAY"] -> V_SAY what day is today | V_SAY me what day it is | V_SAY the date +VP["action": "say", "sentence": "TOMORROW"] -> V_SAY what day is tomorrow + +VP["action": "say", "sentence": "JOKE"] -> V_SAY a joke +VP[{"action": "say", "sentence": "DARK_SIDE"}] -> join the dark side + +V_SAY -> tell | say | speak + +ROOM[{id: "livingroom"}] -> living room +NAME["me"] -> rein +FURNITURE["couch"] -> couch +SMALL_OBJECT["coke"] -> coke +OBJ_CAT["cans"] -> cans + +CONTAINER["bowl"] -> bowl