Nested Context Language
NCL (Nested Context Language) | |
---|---|
Extensão do arquivo | .ncl |
Desenvolvido por | TeleMídia Lab |
Lançamento | 2002 |
Última versão | 3.1 |
Tipo de formato | Linguagem de marcação |
Variante de | XML |
Página oficial | ncl.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]
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.[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 NCL
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
- Laboratorio Telemidia
- Recurso NCL
Referências
- ↑ a b c «about-ncl [NCL Handbook]». handbook.ncl.org.br. Consultado em 28 de janeiro de 2022
- ↑ 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
- ↑ 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
- ↑ 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
|acessodata=
requer|url=
(ajuda)
- Portal da televisão
- Portal da tecnologia
- Portal do Brasil