Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Contact: For questions, contact email@example.com
To run the system, see Scripts.
The ecg_framework_code repository contains code for the core modules of the general NLU system. These modules are all implemented to facilitate easy retargeting of the system to new application domains. Even without retargeting, the core modules function as an integrated starter application.
These modules can be divided into three categories: language-side, action-side, and communication.
As a black box, the language-side modules receive text/speech as input, and output an n-tuple. More specifically, a user types or speaks a statement, which is interpreted by a parser called the ECG Analyzer (Bryant 2008). This parser uses a grammar we’ve developed (called Embodied Construction Grammar) which incorporates theories/representations from linguistics, and outputs a Semantic Specification (SemSpec). The Specializer crawls the SemSpec data structure, extracting relevant information for a given task, and produces an n-tuple.
The action-side modules currently just include the Core Problem Solver. The action-side receives n-tuples from the language-side and carries out the specified task, which includes answering queries, executing commands, or modeling world states.
The Communication modules bridge the language and action sides of the system. Specifically, the n-tuple templates guide the Specializer in determining which information to extract from the SemSpec, and the Core-Agent/Transport modules establish a simple message-passing paradigm by which n-tuples can be communicated between agents (Trott, Appriou, Feldman, & Janin, 2015).