Abstract
Most time-based declarative languages have limited support for variable definition and manipulation, which causes developers to resort to imperative languages. However, a declarative language should provide a variable handling model sufficiently rich to describe a wide range of interactive applications, avoiding, as much as possible, the help of an imperative scripting language. On the other hand, the declarative simplicity should not be lost, leaving for the imperative objects more complex manipulations, with the necessary care to avoid any impact in the application’s temporal graph. Based on this principle, variables and the presentation state are handled by NCL and Ginga-NCL, as discussed in this paper. NCL is the declarative language of the Brazilian Terrestrial Digital TV System (SBTVD) supported by its middleware called Ginga. NCL and Ginga-NCL are part of ISDB standards and also of ITU-T Recommendations for IPTV services.




Similar content being viewed by others
Notes
In NCL, variables are called properties. In the remainder of this document, the terms variable and property will be used interchangeably when referring to NCL variables.
In DTV systems, it is usual to have DSM-CC stream events triggering the execution of imperative codes.
SMIL uses the term “state variable” instead of “global variable”.
The
attribute of a
element specifies the location for retrieving the media object’s content. The attribute
specifies how the media object must be presented.
The
element
represents the same animation video (attribute
) that is specified by the
element (attribute
).
Lua is the Ginga scripting language, while Xlet is the Java code that runs in Ginga.
Transition effects are defined in NCL by
elements, and referred by
elements through its
and
attributes.
For the Brazilian DTV System, the NCL profile only allows causal relationships.
In the case of XML languages, XSL transformations can be applied to document trees.
References
ABNT NBR Associação Brasileira de Normas Técnicas (2007) Digital Terrestrial Television Standard 06: Data Codification and Transmission Specifications for Digital Broadcasting, Part 2 – GINGA-NCL: XML Application Language for Application Coding (São Paulo, SP, Brazil, November, 2007). doi: www.abnt.org.br/imagens/Normalizacao_TV_Digital/ABNTNBR15606-2_2007Ing_2008.pdf.
ARIB Association of Radio Industries and Business (2004) ARIB Standard B-24 Data Coding and Transmission Specifications for Digital Broadcasting, version 4.0, 2004
ECMA International—European Association for Standardizing Information and Communication Systems (1999) ECMA—262—ECMAScript Language Specification. 3rd Edition. doi: www.ecma-international.org/publications/ standards/Ecma-262.htm
ETSI European Telecommunication Standards Institute (2006) ETSI TS 102 812V1.2.2 Digital Video Broadcasting “Digital Video Broadcasting (DVB); Multimedia Home Platform (MHP) Specification 1.1.1”
Guimarães RL, Costa RR, Soares LFG (2008) Composer: Authoring Tool for iTV Programs. In Proceedings of European Interactive TV Conference (Salzburg, Austria, July 2008). EuroiTV 2008. doi: dx.doi.org/10.1007/978-3-540-69478-6_7
Ierusalimschy R, Figueiredo LH, Celes W (2006) Lua 5.1 Reference Manual, ISBN 85-903798-3-3
Ierusalimschy R, de Figueiredo LH, and Celes W (2007) The evolution of Lua. In Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages (San Diego, California, June 09–10, 2007). HOPL III. ACM, New York, NY, 2-1-2-26. doi: doi.acm.org/10.1145/1238844.1238846
ISO/IEC International Organization for Standardization 14496-1 (2001) Coding of audio-visual objects—Part 1: Systems. 2nd Edition
ISO/IEC International Organization for Standardization 14496-20 (2006) Lightweight Application Scene Representation (LASeR) and Simple Aggregation Format (SAF)
ITU-T Recommendation H.761 (2009) Nested context language (NCL) and Ginga-NCL for IPTV Services. Geneva, January, 2009
Jansen J, Bulterman D (2009) SMIL state: an architecture and implementation for adaptive time-based web. In Multimedia Tools and Applications. Vol. 43, N. 3 (The Netherlands, April 2009). ISSN: 1380-7501
King P, Schmitz P, Thompson S (2004) Behavioral reactivity and real time programming in XML: functional programming meets SMIL animation. In Proceedings of ACM Document Engineering (Milwaukee, Wisconsin, USA, October, 2004). doi: doi.acm.org/10.1145/1030397.1030411
Soares LFG (2009) Nested context language 3.0 Part 12—Support to multiple exhibition devices. Technical Report. Departamento de Informática da PUC-Rio, MCC 03/09. doi: www.ncl.org.br/documentos/NCL3.0-MD.pdf
Soares LFG, Rodrigues RF (2006) Nested context language 3.0 Part 8—NCL Digital TV profiles. Technical Report. Departamento de Informática da PUC-Rio, MCC 35/06. doi: www.ncl.org.br/documentos/NCL3.0-DTV.pdf
Soares LFG, Rodrigues RF, Cerqueira R, Barbosa SDJ (2009) Variable handling in time-based XML declarative languages. In Proceedings of the 24th Annual ACM Symposium on Applied Computing. (Honolulu, Hawaii. Março de 2009)
Thompson S, King P, Cameron H (2005) Modelling reactive multimedia design and authoring. In Multimedia Tools and Applications, Vol. 27, N. 1 (The Netherlands, September 2009). ISSN: c0-7501
W3C World-Wide Web Consortium (1998) Cascading style sheet, level 2—CSS. W3C recommendation
W3C World-Wide Web Consortium (1998) Timed interactive multimedia extensions for HTML. W3C submission. doi: www.w3.org/TR/NOTE-HTMLplusTIME
W3C World-Wide Web Consortium (1999) XML Path Language (XPath). W3C Recommendation. doi: www.w3.org/TR/xpath/
W3C World-Wide Web Consortium (2003) Scalable vector graphics (SVG) 1.1 specification. W3C recommendation. doi: www.w3.org/TR/SVG11/
W3C World-Wide Web Consortium (2004) Document object model—DOM level 3 specification. W3C recommendation
W3C World-Wide Web Consortium (2005) Synchronized multimedia integration language—SMIL 2.1 specification, W3C recommendation. doi: www.w3.org/TR/2005/RECSMIL2-20051213/
W3C World-Wide Web Consortium (2008) Synchronized multimedia integration language—SMIL 3.0 specification, W3C recommendation. doi: www.w3.org/TR/SMIL3/
Acknowledgments
The authors would like to thank Carlos Salles, Romualdo Costa, Marcio Moreno, Marcelo Moreno and Francisco Sant’anna who provided thoughtful discussion of this work, and tracked down and fixed problems in the initial reference implementation of Ginga. The authors also thank Ethan Munson for his careful revision of the paper, and CNPq, FINEP and FAPERJ for their support.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Soares, L.F.G., Rodrigues, R.F., Cerqueira, R. et al. Variable and state handling in NCL. Multimed Tools Appl 50, 465–489 (2010). https://doi.org/10.1007/s11042-010-0478-2
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11042-010-0478-2