Home > Documentation > Getting Started - NuGram Platform
Introduction
The NuGram platform is a complete suite of tools to develop and deploy static and dynamic speech recognition grammars. It is designed to meet the needs of the most sophisticated users while offering an unmatched ease of use.
The NuGram platform is composed of two core components:
- NuGram IDE
- NuGram IDE is an Eclipse plug-in that offers a complete development environment for speech recognition grammars. It supports W3C's SRGS ABNF grammar format and can convert grammars to other formats as well (GrXML, GSL). It can be used to author and tune static speech recognition grammars as well as dynamic grammars, in a unified environment.
- NuGram Server
- NuGram Server is a robust and scalable runtime server that offers grammar-related services to voice-enabled applications.
Supported Grammar Languages
The NuGram platform natively support the W3C's SRGS ABNF format with a few extensions to support the development of dynamic grammars. The ABNF format was chosen since it is a W3C standard and is without a doubt much more readable and maintainable than the XML format.
Grammars can be translated to and from other formats as well. The currently supported languages are: GrXML (W3C SRGS XML), and GSL.
The NuGram platform also supports the most widely used semantic tag languages: W3C SISR, Nuance's GSL semantic tags, and Nuance's OSR tags.
NuGram IDE Features
NuGram IDE offers many sophisticated tools to help author, debug, and tune speech recognition grammars. These tools are:
- ABNF Grammar Editor
- This editor provides the most advanced features found in modern editors: syntax coloring, code folding, code assist (contextual completion, quick fixes, code templates), refactorings (renamings, extractions, etc.), and much more.
- Instantiation Debugger
- The instantiation debugger is a tool that shows the result of instantiating a dynamic grammar with a given instantiation context. Using this tools, the grammar author can visualize which parts of the resulting grammar were produced by dynamic fragments.
- Coverage Test Editor
- Using this editor, coverage test sets for a grammar can be
devised. A coverage test set typically includes sentencs that
must be recognized by a grammar, as well as sentences that
should NOT be covered. Each sentence can also specify the
expected semantic interpretation.
Sentences can be associated with contexts, thus providing a structural organization to large test sets. For dynamic grammars, these contexts specify the data used to populate the dynamic grammar in order to generate the actual grammar used for the coverage test. - Coverage Test Runner
- When run, coverage tests results are presented in a dedicated view that shows all sorts of metrics about the test (number of tests that passed, number of tests that failed, percentage of grammar words covered by the tests, etc.).
- Sentence Interpreter
- The Sentence Interpreter is used to parse sentences interactively. The graphical parse tree (how rules are combined to generate the sentence) is displayed and the corresponding source elements can be highlighted by clicking on the tree nodes.
- Semantics Stepper
- The Semantics Stepper is useful when a parsed sentence does not generate the correct semantic interpretation. It allows one to see the execution of each semantic tag and the context in which the execution takes place.
- Sentence Explorer
- Using this tool, the structure of a grammar can be explored interactively. The user selects rules to be expanded one at a time until complete sentences are produced.
- Sentence Generator
- The Sentence Generator is a sophisticated tool to generate sentences interactively. The generation algorithm is highly configurable and can be used for many different purposes (random generation, full language generation, full grammar coverage, full semantic tags coverage, etc.).
For more information on NuGram IDE, consult the NuGram IDE documentation.
NuGram Server Features
NuGram Server offers many services to speech-enabled applications through a simple HTTP-based protocol. Its architecture makes it readily usable by all speech-enabled applications.
NuGram Server currently supports the following services:
- Instantiation and generation
- Using this service, dynamic grammars are instantiated and static grammars are converted to various formats (ABNF, GrXML, etc.).
- Interpretation
- Using this service, textual sentences are parsed using static grammars and the resulting semantic interpretation is returned.
Finally, NuGram Server Embedded API can be used to embed some of the grammar services directly in a Java-based applications.
For more information on NuGram Server, consult the NuGram Server documentation.
Glossary
The following are terms used throughout the documentation.
- Grammar
- A grammar is a formalism used to specify a set of sentences.
- Static Grammar
- A static grammar is a grammar that does not containing any dynamic parts.
- Dynamic Grammar
- A dynamic grammar is a grammar containing dynamic parts (i.e. dynamic directives).
- Instantiation
- Instantiation is the process by which the dynamic parts of a grammar are replaced by actual values taken from an instantiation context to produce a static grammar.
- Instantiation Context
- An instantiation context (or context for short) is a set of key/value pairs used to instantiate a dynamic grammar.