Skip to main content
Log in

Variable and state handling in NCL

  • Published:
Multimedia Tools and Applications Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Notes

  1. 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.

  2. In DTV systems, it is usual to have DSM-CC stream events triggering the execution of imperative codes.

  3. SMIL uses the term “state variable” instead of “global variable”.

  4. 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.

  5. The element represents the same animation video (attribute ) that is specified by the element (attribute ).

  6. Reserved variables are the ones whose name and semantics are defined in the NCL profile specification [1, 10].

  7. Lua is the Ginga scripting language, while Xlet is the Java code that runs in Ginga.

  8. Transition effects are defined in NCL by elements, and referred by elements through its and attributes.

  9. For the Brazilian DTV System, the NCL profile only allows causal relationships.

  10. In the case of XML languages, XSL transformations can be applied to document trees.

References

  1. 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.

  2. ARIB Association of Radio Industries and Business (2004) ARIB Standard B-24 Data Coding and Transmission Specifications for Digital Broadcasting, version 4.0, 2004

  3. 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

  4. 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”

  5. 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

  6. Ierusalimschy R, Figueiredo LH, Celes W (2006) Lua 5.1 Reference Manual, ISBN 85-903798-3-3

  7. 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

  8. ISO/IEC International Organization for Standardization 14496-1 (2001) Coding of audio-visual objects—Part 1: Systems. 2nd Edition

  9. ISO/IEC International Organization for Standardization 14496-20 (2006) Lightweight Application Scene Representation (LASeR) and Simple Aggregation Format (SAF)

  10. ITU-T Recommendation H.761 (2009) Nested context language (NCL) and Ginga-NCL for IPTV Services. Geneva, January, 2009

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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)

  16. 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

  17. W3C World-Wide Web Consortium (1998) Cascading style sheet, level 2—CSS. W3C recommendation

  18. W3C World-Wide Web Consortium (1998) Timed interactive multimedia extensions for HTML. W3C submission. doi: www.w3.org/TR/NOTE-HTMLplusTIME

  19. W3C World-Wide Web Consortium (1999) XML Path Language (XPath). W3C Recommendation. doi: www.w3.org/TR/xpath/

  20. W3C World-Wide Web Consortium (2003) Scalable vector graphics (SVG) 1.1 specification. W3C recommendation. doi: www.w3.org/TR/SVG11/

  21. W3C World-Wide Web Consortium (2004) Document object model—DOM level 3 specification. W3C recommendation

  22. W3C World-Wide Web Consortium (2005) Synchronized multimedia integration language—SMIL 2.1 specification, W3C recommendation. doi: www.w3.org/TR/2005/RECSMIL2-20051213/

  23. W3C World-Wide Web Consortium (2008) Synchronized multimedia integration language—SMIL 3.0 specification, W3C recommendation. doi: www.w3.org/TR/SMIL3/

Download references

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

Authors

Corresponding author

Correspondence to Luiz Fernando G. Soares.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11042-010-0478-2

Keywords

Navigation