Nested Context Language

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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[edit]

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.[1] 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[edit]

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[edit]

Tools for creating interactive DTV application in NCL include:

See also[edit]


  1. ^ "H.761 "Nested context language (NCL) and Ginga-NCL" (Rev.): Initial draft of revised text" (PDF). INTERNATIONAL TELECOMMUNICATION UNION. Retrieved 18 February 2014.
  2. ^ "NCL Composer website". PUC-Rio. Retrieved 19 February 2014.

Further reading[edit]

External links[edit]

NCL players[edit]