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.
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. 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.).
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. É 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.
Estrutura
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.
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:
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 NCL Perfis são subconjuntos padrão de módulos. Os perfis definidos pela norma incluem:
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 Laboratorio Telemidia Recurso NCL
Categoria:Linguagens de marcação Categoria:Normas W3C Categoria:Tecnologia de televisão Categoria:Televisão digital Categoria:Invenções e descobertas brasileiras