Sean Trott edited this page May 24, 2016 · 27 revisions

Contact: For questions, contact

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.

(Diagram for System Architecture)

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).

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.