Linguagem NCL Linguagem NCL - UFF
Linguagem NCL Linguagem NCL - UFF
Linguagem NCL Linguagem NCL - UFF
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Departamento de Engenharia de Telecomunicações<br />
- <strong>UFF</strong><br />
<strong>Linguagem</strong> <strong>NCL</strong><br />
Fundamentos de Sistemas Multimídia<br />
Profa. Débora Christina Muchaluat Saade<br />
debora@midiacom.uff.br<br />
<strong>Linguagem</strong> <strong>NCL</strong><br />
<strong>NCL</strong> – Nested Context Language<br />
• Baseada em XML<br />
<strong>NCL</strong> Versão 1.0 – [Antonacci 2000]<br />
<strong>NCL</strong> Versão 2.0 – [Muchaluat-Saade 2003]<br />
<strong>NCL</strong> Versão 3.0<br />
• Middleware declarativo GINGA-<strong>NCL</strong><br />
Fundamentos de Sistemas Multimídia<br />
• Padrão Brasileiro de TV Digital – Norma ABNT 2007<br />
• Padrão Internacional para IPTV – Norma ITU H.761 2009<br />
• Integração com linguagem LUA<br />
1<br />
2<br />
<strong>Linguagem</strong> <strong>NCL</strong><br />
Fundamentos de Sistemas Multimídia<br />
É necessário um modelo conceitual hipermídia<br />
para expressar os componentes de um documento<br />
Modelo NCM – Nested Context Model<br />
• é usado pela linguagem <strong>NCL</strong> – Nested Context<br />
Language<br />
Componentes de um documento são representados<br />
pelas entidades do modelo<br />
Modelo NCM<br />
Principais entidades hipermídia<br />
Fundamentos de Sistemas Multimídia<br />
• Blocos de informação (texto, áudio, vídeo, imagem ...)<br />
– Nós (nodes)<br />
• Âncoras (anchors)<br />
• relacionamentos<br />
– Elos (links)<br />
• conectores<br />
– nós de composição/composições/contextos (composite<br />
nodes/compositions/contexts)<br />
• grupo de nós e grupo de elos<br />
3<br />
4
Conectores Hipermídia<br />
Fundamentos de Sistemas Multimídia<br />
Elos dividos em dois elementos<br />
• Definição da relação => conector hipermídia<br />
• Definição dos participantes => conjunto de binds<br />
Nó A<br />
elo<br />
Nó B<br />
<br />
<br />
<br />
Definição dos Papéis de um Conector<br />
Fundamentos de Sistemas Multimídia<br />
Modelo de sincronização baseado em eventos<br />
Ponto de interface de um conector (papel) especifica o<br />
comportamento de um participante da relação<br />
Papéis são definidos baseados em uma máquina de estado de<br />
evento:<br />
• presentation, selection, attribution<br />
Nó A<br />
Conector<br />
Hipermídia<br />
Nó B<br />
bind<br />
bind<br />
conector<br />
Ponto de interface<br />
do conector (papel)<br />
bind<br />
nó<br />
Ponto de interface de<br />
um nó (âncora/atributo)<br />
<br />
Módulo para definição de conectores em <strong>NCL</strong><br />
• relações de interatividade e de sincronização<br />
5<br />
6<br />
Exemplos de Conectores<br />
Fundamentos de Sistemas Multimídia<br />
Nós s de Contexto <strong>NCL</strong><br />
Fundamentos de Sistemas Multimídia<br />
Exemplos de Conectores:<br />
<br />
<br />
<br />
Elo tradicional hipertexto<br />
• onKeySelectionStart<br />
Relações temporais de Allen<br />
Relações multiponto<br />
• onKeySelectionStartNStopN<br />
Relação de<br />
Allen<br />
x meets y<br />
y met by x<br />
x starts y<br />
y started by x<br />
x finishes y<br />
y finished by x<br />
x before y<br />
y after x<br />
X overlaps y<br />
y overlapped by x<br />
Ilustração<br />
x<br />
y<br />
x<br />
y<br />
x<br />
y<br />
x t y<br />
x<br />
y<br />
t<br />
Conector<br />
Hipermídia<br />
onEndStart<br />
onBeginStart<br />
onEndStop<br />
onEndStartDelay<br />
onBeginStartDelay<br />
Nó de composição é chamado de nó de contexto<br />
• Grupo de nós e elos<br />
x during y<br />
y contains x<br />
t<br />
x<br />
y<br />
onBeginStartDelay<br />
onEndStopDelay<br />
x equals y<br />
x<br />
y<br />
onBeginStart<br />
onEndStop<br />
7<br />
8
Estrutura de um documento <strong>NCL</strong> para TV digital<br />
Fundamentos de Sistemas Multimídia<br />
Estrutura do Programa <strong>NCL</strong><br />
Fundamentos de Sistemas Multimídia<br />
Elemento raiz (principal): <br />
Principais atributos:<br />
• id<br />
• xmlns – namespace XML, que define o perfil de <strong>NCL</strong> usado:<br />
– avançado EDTV (receptores full-seg)<br />
– básico BDTV (receptores one-seg)<br />
• Não suporta animações, transições e metadados<br />
– CausalConnector – usado para definição de base de conectores<br />
em um arquivo separado<br />
Elementos filhos<br />
• cabeçalho e<br />
• corpo <br />
9<br />
10<br />
Entidades Básicas<br />
Fundamentos de Sistemas Multimídia<br />
O que exibir?<br />
Fundamentos de Sistemas Multimídia<br />
O que exibir?<br />
• Nós<br />
Onde exibir?<br />
• Regiões<br />
Como exibir?<br />
• Descritores<br />
Quando exibir?<br />
• Elos e conectores<br />
Nós – <br />
11<br />
12
Nós s de mídia<br />
Fundamentos de Sistemas Multimídia<br />
<br />
Principais atributos:<br />
• id – identificador único do nó no documento<br />
• src – indica a URI do conteúdo do nó<br />
• descriptor – indica o id do descritor (características de<br />
exibição do nó)<br />
• type – define o tipo MIME (áudio, vídeo, texto, imagem, etc.)<br />
Um nó de mídia pode definir âncoras para marcar<br />
trechos do seu conteúdo<br />
• <br />
Um nó de mídia pode definir propriedades que serão<br />
atualizadas durante o programa<br />
• <br />
Nós s de mídia<br />
- exemplos<br />
Fundamentos de Sistemas Multimídia<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
13<br />
14<br />
Estrutura do documento<br />
O que exibir?<br />
• Nós de contexto – e <br />
Fundamentos de Sistemas Multimídia<br />
<br />
Principal atributo:<br />
Nós s de Contexto<br />
Fundamentos de Sistemas Multimídia<br />
• id – identificador único do nó no documento<br />
Um nó de contexto define um conjunto de nós,<br />
que podem ser outros contextos aninhados, e elos<br />
entre seus componentes<br />
15<br />
16
Nós s de Contexto - Exemplo<br />
<br />
<br />
<br />
<br />
Fundamentos de Sistemas Multimídia<br />
O que exibir?<br />
Como entrar/sair de um contexto?<br />
• Portas - <br />
Fundamentos de Sistemas Multimídia<br />
17<br />
18<br />
<br />
Principais atributos:<br />
Nós s de Contexto - Portas<br />
Fundamentos de Sistemas Multimídia<br />
• id – identificador único do nó no documento<br />
• component – indica o id do componente interno<br />
• interface – indica uma porta/âncora/atributo do<br />
componente interno<br />
<br />
Portas - Exemplo<br />
<br />
<br />
<br />
<br />
<br />
<br />
Fundamentos de Sistemas Multimídia<br />
19<br />
20
Tipo especial de Nó<br />
Nó para guardar variáveis – tipo settings<br />
Fundamentos de Sistemas Multimídia<br />
• Programa pode manipular variáveis durante a<br />
execução<br />
Regiões - <br />
Onde exibir?<br />
Fundamentos de Sistemas Multimídia<br />
• Indicam área do dispositivo de exibição que será<br />
usada para apresentar algum nó<br />
21<br />
22<br />
Regiões<br />
e <br />
Fundamentos de Sistemas Multimídia<br />
Uma base de regiões agrupa regiões de um<br />
mesmo dispositivo de exibição<br />
Pode definir várias bases (TV, celular)<br />
Programa <strong>NCL</strong> define base de regiões no<br />
cabeçalho ou importa base existente<br />
Principais atributos de região:<br />
• id – identificador único<br />
• Coordenadas top, left, height, width, right, bottom<br />
• zIndex – indica sobreposição de regiões<br />
atributos<br />
Regiões<br />
Fundamentos de Sistemas Multimídia<br />
23<br />
24
Regiões - Exemplos<br />
Fundamentos de Sistemas Multimídia<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Como exibir?<br />
Descritores - <br />
Fundamentos de Sistemas Multimídia<br />
• Indicam as características de exibição de um nó<br />
25<br />
26<br />
Descritores<br />
Fundamentos de Sistemas Multimídia<br />
e <br />
Pode definir várias bases de descritores<br />
Programa <strong>NCL</strong> define base de descritores no cabeçalho<br />
ou importa base existente<br />
Principais atributos de descritor:<br />
• id – identificador único<br />
• region – id de uma região existente<br />
• explicitDur – duração explícita<br />
• soundLevel – volume de exibição<br />
• Pode definir parâmetros adicionais a serem modificados<br />
durante a exibição<br />
<br />
Descritores - Exemplos<br />
Fundamentos de Sistemas Multimídia<br />
<br />
<br />
<br />
<br />
<br />
<br />
27<br />
28
Descritores<br />
Facilitam a navegação por teclas<br />
Implementação de um menu de opções<br />
Atributos:<br />
• focusIndex<br />
• moveLeft, moveRight, moveUp, moveDown<br />
• focusBorderColor. focusBorderWidth<br />
• etc.<br />
Fundamentos de Sistemas Multimídia<br />
Descritores - Exemplos<br />
Fundamentos de Sistemas Multimídia<br />
<br />
<br />
<br />
<br />
<br />
29<br />
30<br />
Como exibir um nó?<br />
Fundamentos de Sistemas Multimídia<br />
Todo nó deve ser associado a um descritor, que<br />
pode ter uma região associada<br />
• <br />
• <br />
• <br />
Elos e conectores<br />
Quando exibir?<br />
Fundamentos de Sistemas Multimídia<br />
31<br />
32
Quando exibir?<br />
Fundamentos de Sistemas Multimídia<br />
Como criar um relacionamento entre nós?<br />
Como criar um relacionamento entre nós?<br />
Fundamentos de Sistemas Multimídia<br />
Relacionamentos são representados por elos<br />
Elos dividos em dois elementos<br />
• Definição da relação => conector hipermídia<br />
• Definição dos participantes => conjunto de binds<br />
Nó A<br />
elo<br />
Nó B<br />
Nó A<br />
Conector<br />
Hipermídia<br />
Nó B<br />
bind<br />
bind<br />
conector<br />
Ponto de interface<br />
do conector (papel)<br />
bind<br />
nó<br />
Ponto de interface de<br />
um nó (âncora/atributo)<br />
33<br />
34<br />
Conector onBeginStart<br />
Quando exibir?<br />
Fundamentos de Sistemas Multimídia<br />
Quando exibir?<br />
Como definir o conector onBeginStart?<br />
Fundamentos de Sistemas Multimídia<br />
35<br />
36
Conectores<br />
e <br />
Principais atributos:<br />
• id<br />
Elementos filhos:<br />
• Papéis de condição:<br />
– simpleCondition/compoundCondition<br />
• Papéis de ação:<br />
– simpleAction/compoundAction<br />
• connectorParam<br />
Fundamentos de Sistemas Multimídia<br />
Conectores<br />
Fundamentos de Sistemas Multimídia<br />
Papéis de condição simples<br />
Principais atributos:<br />
• role – nome do papel<br />
• eventType – tipo do evento:<br />
– presentation, selection, attribution<br />
• transition – transição da máquina de estados<br />
• delay – retardo<br />
• key – tecla do controle remoto (só para seleção)<br />
• min, max – cardinalidade de binds do papel<br />
• qualifier – and, or (só quando cardinalidade > 1)<br />
37<br />
38<br />
Conectores<br />
Fundamentos de Sistemas Multimídia<br />
Valores predefinidos por palavras reservadas para role<br />
em simpleCondition:<br />
• Evento de apresentação (presentation)<br />
– onBegin<br />
– onEnd<br />
– onAbort<br />
– onPause<br />
– onResume<br />
• Evento de seleção (selection)<br />
– onSelection<br />
• Evento de Atribuição (attribution)<br />
– onBeginAttribution<br />
– onEndAttribution<br />
Conectores<br />
Fundamentos de Sistemas Multimídia<br />
Papéis de ação simples<br />
Principais atributos:<br />
• role – nome do papel<br />
• eventType – tipo do evento:<br />
– presentation, selection, attribution<br />
• actionType – ação da máquina de estados<br />
• delay – retardo<br />
• value – valor (só para atribuição)<br />
• min, max – cardinalidade de binda do papel<br />
• qualifier – par, seq (só quando cardinalidade > 1)<br />
39<br />
40
Conectores<br />
Fundamentos de Sistemas Multimídia<br />
Valores predifindos por palavras reservadas<br />
para role em simpleAction:<br />
• Evento de apresentação (presentation)<br />
– start<br />
– stop<br />
– abort<br />
– pause<br />
– resume<br />
• Evento de Atribuição (attribution)<br />
– set<br />
Quando exibir?<br />
Como definir o conector onBeginStart?<br />
• e <br />
Fundamentos de Sistemas Multimídia<br />
41<br />
42<br />
Conectores de Interatividade<br />
Fundamentos de Sistemas Multimídia<br />
Exemplo de conector com seleção de qualquer<br />
tecla do controle remoto:<br />
<br />
<br />
<br />
<br />
<br />
Quando exibir?<br />
Como definir um elo entre nós?<br />
Fundamentos de Sistemas Multimídia<br />
43<br />
44
Quando exibir?<br />
Elos<br />
Como definir um elo entre nós?<br />
Fundamentos de Sistemas Multimídia<br />
<br />
Principais atributos:<br />
• id<br />
• xconnector<br />
Elementos filhos:<br />
• bind<br />
– atributos: role, component, interface<br />
– bindParam (atributos name, value)<br />
• linkParam<br />
– atributos: name, value<br />
Fundamentos de Sistemas Multimídia<br />
45<br />
46<br />
Quando exibir?<br />
Como definir o elo entre os nós?<br />
Fundamentos de Sistemas Multimídia<br />
Elos de Interatividade<br />
Fundamentos de Sistemas Multimídia<br />
Exemplo de elo com seleção da tecla vermelha:<br />
<br />
<br />
<br />
<br />
<br />
<br />
47<br />
48
Adaptação<br />
do conteúdo<br />
de um programa<br />
Fundamentos de Sistemas Multimídia<br />
Regras e switches (alternativas de conteúdo)<br />
rPt<br />
(idioma=“pt”)<br />
audioPt<br />
switchAudioIdioma<br />
rEn<br />
(idioma=“en”)<br />
audioEn<br />
Nó para guardar variáveis – tipo x-ginga-settings<br />
ou x-ncl-settings<br />
Adaptação<br />
do conteúdo<br />
de um programa<br />
Regras e base de regras – cabeçalho<br />
• e <br />
– atributo comparator:<br />
• eq, ne, gt, lt, gte, lte<br />
• Regras compostas:<br />
– <br />
– atributo operator:<br />
• and, or<br />
Fundamentos de Sistemas Multimídia<br />
49<br />
50<br />
Adaptação<br />
do conteúdo<br />
de um programa<br />
Switches – corpo do documento<br />
• <br />
• Elementos filhos:<br />
– bindRule<br />
• Atributos<br />
– rule, constituent<br />
– defaulComponent (atributo component)<br />
– Nós constituintes (media, context, switch)<br />
51<br />
Fundamentos de Sistemas Multimídia<br />
Portas em um switch<br />
52<br />
Fundamentos de Sistemas Multimídia<br />
Para selecionar uma interface de um constituinte<br />
do switch<br />
• <br />
Exemplo:<br />
<br />
<br />
<br />
<br />
Outras facilidades:<br />
• Definição de metadados<br />
• Reúso<br />
<strong>Linguagem</strong> <strong>NCL</strong><br />
• Definições de animações e transições<br />
• Programação para múltiplos dispositivos<br />
• Comandos para edição ao vivo<br />
• Integração com objetos Lua<br />
Fundamentos de Sistemas Multimídia<br />
TV Interativa se faz com GINGA!!!<br />
Mais informações sobre <strong>NCL</strong>:<br />
• www.ginga.org.br<br />
• www.ncl.org.br<br />
• clube.ncl.org.br<br />
• www.softwarepublico.org.br<br />
• www.forumsbtvd.org.br<br />
Fundamentos de Sistemas Multimídia<br />
53<br />
54