In the field of digital and interactive television, Nested Context Language is a declarative authoring language for hypermedia documents. NCL documents do not contain multimedia elements such as audio or video content; rather they function as a "glue" language that specifies how multimedia components are related. In particular, NCL documents specify how these components are synchronized relative to each other and how the components are composed together into a unified document. Among its main facilities, it treats hypermedia relations as first-class entities through the definition of hypermedia connectors, and it can specify arbitrary semantics for a hypermedia composition using the concept of composite templates. NCL is an XMLapplication language that is an extension of XHTML, with XML elements and attributes specified by a modular approach. NCL modules can be added to standard web languages, such as XLink and SMIL. NCL was initially designed for the Web environment, but a major application of NCL is use as the declarative language of the Japanese-Brazilian ISDB-Tb terrestrial DTV digital televisionmiddleware. It is also the first standardized technology of the ITU-T multimedia application framework series of specifications for IPTV services. In both cases it is used to develop interactiveapplications to digital television.
Structure of an NCL document
NCL was designed to be modular to allow for use of subsets of modules according to the needs of the particular application. The 3.1 version of the standard is split into 14 areas with each module assigned to an area. Each module in turn defines one or more XML elements. The areas and associated modules are
Structure
*Structure Module
Components
*Media Module
*Context Module
Interfaces
*MediaContentAnchor Module
*CompositeNodeInterface Module
*PropertyAnchor Module
*SwitchInterface Module
Layout
*Layout Module
Presentation Specification
*Descriptor Module
Timing
*Timing Module
Transition Effects
*TransitionBase Module
*Transition Module
Navigational Key
*KeyNavigation Module
Presentation Control
*TestRule Module
*TestRuleUse Module
*ContentControl Module
*DescriptorControl Module
Linking
*Linking Module
Connectors
*ConnectorCommonPart Module
*ConnectorAssessmentExpression Module
*ConnectorCausalExpression Module
*CausalConnector Module
*CausalConnectorFunctionality Module
*ConnectorBase Module
Animation
*Animation Module
Reuse
*Import Module
*EntityReuse Module
*ExtendedEntityReuse Module
Meta-Information
*Metainformation Module
NCL profiles
Profiles are standard subsets of modules. Profiles defined by the standard include
Full profile – includes all NCL Modules
Enhanced Digital TV profile – includes the Structure, Layout, Media, Context, MediaContentAnchor, CompositeNodeInterface, PropertyAnchor, SwitchInterface, Descriptor, Linking, CausalConnectorFunctionality, ConnectorBase, TestRule, TestRuleUse, ContentControl, DescriptorControl, Timing, Import, EntityReuse, ExtendedEntityReuse, KeyNavigation, Animation, TransitionBase, Transition and Metainformation modules
NCL Basic Digital TV profile – includes the Enhanced Digital TV profiles except for the Animation, TransitionBase and Transition modules
Authoring tools
Tools for creating interactive DTV application in NCL include: