Nested Context Language
![]() | This article may be too technical for most readers to understand.(September 2009) |
Nested Context Language (NCL) is a declarative authoring language for hypermedia documents.
NCL is an XML application language, which provides several facilities for authoring a complete hypermedia document with synchronization relationships among its components. 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.
Following others XML standards, NCL is 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 currently it is included as the declarative language of the Japanese-Brazilian ISDB-Tb (International Standard for Digital Broadcasting) terrestrial DTV (digital TV) middleware (named Ginga). It is also the first standardized technology of the ITU-T multimedia application framework series of specifications for IPTV services.
NCL 3.0 Profiles
Full Profile
NCL 3.0 Full Profile includes all NCL Modules.
Enhanced Digital TV profile (EDTV)
NCL 3.0 Enhanced DTV 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 of NCL 3.0.
NCL Basic Digital TV profile (BDTV)
Includes almost all Enhanced Digital TV profiles but it doesn't include Animation, TransitionBase and Transition modules.
NCL 3.0 Modules
NCL is partitioned in functional areas. Each functional area groups a set of related modules. And each molude groups a set of NCL elements.
Structure
Structure Module
The elements of the Structure Module are:
- ncl - the root element for an NCL document.
- head - the header fot an NCL document.
- body - the body for an NCL document, it's where all the medias are defined.
Layout
Layout Module
The elements of the Layout Module are:
- regionBase
- region
Components
Media Module
The single element of the Media Module is:
- media
Context Module
The single element of the Context Module is:
- context
Interfaces
MediaContentAnchor Module
The single element of the MediaContentAnchor Module is:
- area
CompositeNodeInterface Module
The single element of the CompositeNodeInterface Module is:
- port
PropertyAnchor Module
The single element of the PropertyAnchor Module is:
- property
SwitchInterface Module
The elements of the SwitchInterface Module are:
- switchPort
- mapping
Presentation Specification
Descriptor Module
The elements of the Descriptor Module are:
- descriptor
- descriptorParam
- descriptorBase
Linking
Linking Module
The elements of the Linking Module are:
- bind
- bindParam
- linkParam
- link
Connectors
ConnectorCommonPart Module
ConnectorAssessmentExpression Module
ConnectorCausalExpression Module
ConnectorTransitionAssessment Module
CausalConnector Module
CausalConnectorFunctionality Module
The elements of the CausalConnectorFunctionality Module are:
- causalConnector
- connectorParam
- simpleCondition
- compoundCondition
- simpleAction
- compoundAction
- assessmentStatement
- attributeAssessment
- valueAssessment
- compoundStatement
ConnectorBase Module
The single element of the ConnectorBase Module is:
- connectorBase
Presentation Control
TestRule Module
The elements of the TestRule Module are:
- ruleBase
- rule
- compositeRule
TestRuleUse Module
The single element of the TestRuleUse Module is:
- bindRule
ContentControl Module
The elements of the ContentControl Module are:
- switch
- defaultComponent
DescriptorControl Module
The elements of the DescriptorControl Module are:
- descriptorSwitch
- defaultDescriptor
Timing
Timing Module
Reuse
Import Module
The elements of the Import Module are:
- importBase
- importedDocumentBase
- importNCL
EntityReuse Module
ExtendedEntityReuse Module
Navigational Key
KeyNavigation Module
Animation
Animation Module
SMIL Transition Effects
TransitionBase Module
Note: The TransitionBase Module is defined by NCL 3.0. SMIL 2.0 doesn't define this module.
BasicTransition Module
TransitionModifers Module
SMIL Meta-Information
Metainformation Module
Authoring Tools
See also
External links
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.
Authoring tools
- NCL Eclipse official website (in Portuguese)