17.06.2015 Views

Linguagem NCL Linguagem NCL - UFF

Linguagem NCL Linguagem NCL - UFF

Linguagem NCL Linguagem NCL - UFF

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!