Handshaking Info

This document summarizes the handshaking in the nlp server.
Ops:
- reinitialize
- receive_data
Receives data from:
- client
Sends data to:
- client
- isip_comm_server_dialog_navigation_mgr/
States:
- WAIT_FOR_TEXT
--- inside receive_data() ---
1) calls send_to_parse()
--- inside send_to_parse() ---
2) immediately changes state to PROCESSING_TEXT
- PROCESSING_TEXT
--- inside send_to_parse() ---
1) retrieve expected keys from frame
= :input_string
2) call parse() which is located in parser library files
--- inside parse() ---
a) Parses are rated by which frame fills the most words in the phrase
b) If more than one frame fills in the most words, the frame that fills them in with fewer slots is higher rated
3) put up to the maximum number of parses into a buffer. if no parses exist then "No Parse" is inserted
4) return frame is created with the above parses and written to the hub
5) state is changed to WAIT_FOR_TEXT and function returns
- GET_PROCESS_ID
Unused
- WAIT_FOR_TEXT_ACK
Unused
Notes:
- The parser is filled with global variables so many functions are void and difficult to trace through.
- There is another document from CU that is detailed on how the parser works and the required layout of the grammar files and the "compiled" grammar.