Saltar para o conteúdo

Nested Context Language

Origem: Wikipédia, a enciclopédia livre.
NCL
(Nested Context Language)
Extensão do arquivo.ncl
Desenvolvido porTeleMídia Lab
Lançamento2002
Última versão3.1
Tipo de formatoLinguagem de marcação
Variante deXML
Página oficialncl.org

Nested Context Language (NCL) é uma linguagem de autoria declarativa para documentos hipermídia utilizada no campo da televisão digital e interatividade. Em sua concepção, a NCL é o resultado de uma combinação de módulos da XML, o que permite que a própria linguagem possa combinar módulos internos e gerar perfis para objetivos específicos.[1]

Os documentos NCL, não contêm objetos de mídia, em vez disso, funcionam fazendo associação (como uma linguagem de cola) dos elementos em uma apresentação multimídia. A linguagem também conecta e define a relação e a temporização dos elementos.[2] Não ha restrição em relação a tipo de mídia, podendo ser imagens (GIF, JPEG e etc.), vídeo (MPEG, MOV e etc.), audios (MP3, WMA e etc.), arquivos de texto (TXT, PDF, etc.) e até action scripts (Xlet, Lua, etc.).[3]

A NCL foi inicialmente projetada para o ambiente Web, mas uma das principais aplicações da NCL é o uso como linguagem declarativa do middleware do SBTVD (sistema brasileiro de televisão digital) denominado Ginga, mais especificamente no modulo Ginga-NCL.[2] É também uma tecnologia padronizada para pela ITU-T para serviços de TVIP (Televisão por IP). Em ambos os casos é utilizado para desenvolver aplicações interativas para televisão digital.[4]

O NCL foi projetado para ser modular para permitir o uso de subconjuntos de módulos de acordo com as necessidades da aplicação específica.[1]

Exemplo de estrutura básica de um arquivo NCL:

<?xml version="1.0" encoding="ISO-8859-1"?>	
<ncl xsi:schemaLocation="http://www.ncl.org.br/NCL3.0/EDTVProfile http://www.ncl.org.br/NCL3.0/profiles/NCL30EDTV.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile" id="app1">
    <head>
        <regionBase>
            <region id="rgFundoTV" width="1080" height="1920" zIndex="1"/>
                <region id="rgImgPrincipal" left="240" top="91" width="500" height="500" zIndex="2"/>
            </region>
        </regionBase>
        <descriptorBase>
            <descriptor id="dImgPrincipal" region="rgImgPrincipal"/>
        </descriptorBase>
	   <connectorBase>  
            <causalConnector id="onEndStart">
		        <simpleCondition role="onEnd"/>
		        <simpleAction role="start"/>
		     </causalConnector>
       <connectorBase>	
    </head>
    <body>
        <port id="pEntrada" component="img1Sel1"/>
        <media type="application/x-ginga-settings" id="nodeSettingsLegenda">
            <property name="opcao"/>
        </media>
        <media id="fundo" src="media/fundoSel1.jpg" descriptor="dFundo"/>
        <link id="lRetornoMenu" xconnector="onEndStart">
            <bind component="switchOpcaoLegenda" role="onEnd"/>
            <bind component="img1Sel1" role="start"/>
        </link>
    </body>
</ncl>

Na segunda linha é possível ver a especificação de qual Perfil NCL este documento vai usar  :

<ncl xsi:schemaLocation="http://www.ncl.org.br/NCL3.0/EDTVProfile http://www.ncl.org.br/NCL3.0/profiles/NCL30EDTV.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">

A versão 3.1 do padrão é dividida em 14 áreas com cada módulo atribuído a uma área.  Cada módulo, por sua vez, define um ou mais elementos XML. As áreas e módulos associados são:[2]

  • Estrutura
    • Modulo Estrutura
  • Componentes
    • Modulo Mídia
    • Modulo Contexto
  • Interfaces
    • Modulo MediaContentAnchor
    • Modulo CompositeNodeInterface
    • Modulo PropertyAnchor
    • Modulo SwitchInterface
  • Layout
    • Módulo Layout
  • Especificação de apresentação
    • Modulo Descritor
  • Temporização
    • Módulo Temporização
  • Efeitos de Transição
    • Módulo TransitionBase
    • Módulo Transição
  • Navigational Key
    • Module KeyNavigation
  • Controle de Apresentação
    • Módulo TestRule
    • Módulo TestRuleUse
    • Módulo ContentControl
    • Módulo DescriptorControl
  • Linking
    • Módulo Linking
  • Conectores
    • Módulo ConnectorCommonPart
    • Módulo ConnectorAssessmentExpression
    • Módulo ConnectorCausalExpression
    • Módulo CausalConnector
    • Módulo CausalConnectorFunctionality
    • Módulo ConnectorBase
  • Animação
    • Módulo Animação
  • Reuse
    • Módulo Importação
    • Módulo EntityReuse
    • Módulo ExtendedEntityReuse
  • Meta-Information
    • Módulo Metainformation

Perfis são subconjuntos padrão de módulos. Os perfis definidos pela norma incluem:[1]

  • Perfil completo – Inclui todos os módulos NCL
  • Perfil Aprimorado de TV Digital (EDTV) - Inclui Estrutura, Layout, Mídia, Contexto, MediaContentAnchor, CompositeNodeInterface, PropertyAnchor, SwitchInterface, Descriptor, Linking, CausalConnectorFunctionality, ConnectorBase, TestRule, TestRuleUse, ContentControl, DescriptorControl, Timing, Import, EntityReuse, ExtendedEntityReuse, Módulos KeyNavigation, Animation, TransitionBase, Transition e Metainformation
  • Perfil Básico de TV Digital (BDTV) – Inclui os perfil Aprimorado de TV Digital (EDTV), exceto os módulos Animation, TransitionBase e Transition

Ligações externas

[editar | editar código fonte]

Referências

  1. a b c «about-ncl [NCL Handbook]». handbook.ncl.org.br. Consultado em 28 de janeiro de 2022 
  2. a b c INTERNATIONAL TELECOMMUNICATION UNION (ed.). «H.761 "Nested context language (NCL) and Ginga-NCL" (Rev.): Initial draft of revised text» (PDF) (em inglês). Consultado em 20 de dezembro de 2021 
  3. Soares, Luiz Fernando Gomes; Rodrigues, Rogério Ferreira; Moreno, Márcio Ferreira (março de 2007). «Ginga-NCL: the declarative environment of the Brazilian digital TV System». Journal of the Brazilian Computer Society (em inglês) (1): 37–46. ISSN 1678-4804. doi:10.1007/BF03192400. Consultado em 29 de janeiro de 2022 
  4. Carlos de Salles Soares Neto; Luiz Fernando Gomes Soares; Clarisse Sieckenius de Souza (Novembro 2010). «The Nested Context Language reuse features». Journal of the Brazilian Computer Society (em inglês). 16: 229–245. doi:10.1007/s13173-010-0017-z