Nested Context Language
In the field of digital and interactive television, Nested Context Language (NCL) 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 XML application 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 (International Standard for Digital Broadcasting) terrestrial DTV digital television middleware (named Ginga). It is also the first standardized technology of the ITU-T multimedia application framework series of specifications for IPTV (internet protocol television) services. In both cases it is used to develop interactive applications 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 (EDTV) – 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 (BDTV) – 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:

 NCL Eclipse
 NCL Composer. See also
 SMIL
 eXtensible Markup Language (XML)

References

Further reading

External links
 NCL Official Web Site
 NCL Handbook
 Telemidia Lab
 NCL Resources: a number of resources supporting NCL. NCL players
 GINGA-NCL Reference Implementation, available under GPLv2 (in Portuguese). GHTV GINGA-NCL player for Windows and Linux under Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License (in Portuguese). WebNCL Player Web-based, available under GPL. Markup languages
XML-based standards
Technical communication
Computer file formats
Broadcast engineering
Digital television
ISDB