Jornada de Atualização em Informática
Recife PE
Agosto de 1996
Padrões para troca de documentos Hipermídia
Eduardo Simões de Albuquerque
Padrões para troca de documentos hipermídia
1. INTRODUÇÃO
4
2. INFORMAÇÃO DE CONTEÚDO E DE APRESENTAÇÃO
4
2.1 Linguagens de Markup
5
3. PADRÕES RELACIONADOS A MULTIMÍDIA
6
3.1 O modelo de referência Dexter
3.1.1 Problemas com o modelo
7
8
3.2 O formato de troca de multimídia CWI (CMIF)
8
3.3 O Modelo Hipermídia de Amsterdã (The Amsterdam Hypermedia Model AHM)
3.3.1 Sincronização no AHM
3.3.2 Contexto de Ligações (link context)
3.3.3 Canais
3.3.4 Limitações do AHM
10
11
12
12
13
3.4 O formato QuickTime
3.4.1 Limitações de QuickTime
13
14
3.5 Office Document Architecture (ODA)
3.5.1 Troca de Documentos ODA
3.5.2 Extensões a ODA
14
16
16
3.6 SGML
3.6.1 Um documento SGML
3.6.2 Troca de documentos SGML
3.6.3 SGML binário (SGML-B)
3.6.4 Limitações de SGML
16
17
19
19
19
3.7 HyTime
3.7.1 A máquina HyTime (HyTime engine)
3.7.2 Troca de documentos HyTime
3.7.3 A Linguagem de Descrição de Música Padrão (Standard Music Description Language
SGML)
3.7.4 Comentários finais
20
22
23
3.8 Adobe Acrobat
3.8.1 Limitações do Acrobat
25
26
3.9 A World Wide Web
27
3.10 Localizadores Uniformes de Recursos (Uniform Resource Locator - URL)
28
3.11 Números Universais de Recursos (Universal Resource Numbers - URN)
28
3.12 A Linguagem de Markup de Hipertexto (Hypertext Markup Language HTML )
3.12.1 HTML+
29
30
3.13 O Ambiente de Apresentação para Objetos Multimídia (Presentation Environment for
Multimedia Objects PREMO)
30
Página 48
23
25
Padrões para troca de documentos hipermídia
3.14 Considerações finais
30
4. MHEG
31
4.1 Objetivos do projeto
4.1.1 Adequação de MHEG
32
32
4.2 Escopo de MHEG
33
4.3 Estrutura de MHEG
34
4.4 Evolução de MHEG
35
4.5 Nível de abstração em MHEG
38
4.6 As classes de MHEG
4.6.1 A classe Mh-Object
4.6.2 A classe Action
4.6.3 A classe Link
4.6.4 A classe Model
4.6.5 A classe Script
4.6.6 A classe Descriptor
4.6.7 A classe Component
4.6.8 A classe Content
4.6.9 A classe Multiplexed Content
4.6.10 A classe Composite
4.6.11 A classe Container
4.6.12 Comentários finais
39
39
39
40
41
41
42
42
42
43
43
43
44
4.7 MHEG-5
4.7.1 Estrutura de MHEG 5
4.7.2 Relacionamento de MHEG 5 com MHEG 1
44
44
47
4.8 MHEG vs HyTime vs PREMO
48
5. REFERÊNCIAS
ERRO! INDICADOR NÃO DEFINIDO.
Página 48
Padrões para troca de documentos hipermídia
Lista de Figuras
Figura 1 Exemplo de Markup procedimental...............................................................5
Figura 2 Exemplo de markup lógico ...........................................................................6
Figura 3 O modelo Dexter ..........................................................................................8
Figura 4 Componentes Estruturais de Documentos CMIF......................................... 10
Figura 5 O Modelo Hipermídia de Amsterdam (componente atômico (e) e composto
(d)) ................................................................................................................... 11
Figura 6 Relações temporais no AHM ...................................................................... 12
Figura 7 Componentes de QuickTime ....................................................................... 13
Figura 8 Estruturas Lógicas e de Layout em ODA .................................................... 15
Figura 9 Exemplo de uma Definição de Tipo de Documento (DTD) ......................... 18
Figura 10 Exemplo de uma instância de um documento do tipo carta (definido na..... 19
Figura 11 Módulos de HyTime ................................................................................. 22
Figura 12 Domínio de descrição em SMDL .............................................................. 23
Figura 13 Estrutura do Cantus em SMDL................................................................. 24
Figura 14 Exemplo de uma tela do Acrobat .............................................................. 27
Figura 15 Exemplo de uma URL............................................................................... 28
Figura 16 Exemplo de um documento HTML........................................................... 29
Figura 17 Escopo de MHEG .................................................................................... 33
Figura 18 Hierarquia de Classes de MHEG............................................................... 34
Figura 19 Hierarquia de classes MHEG em 1991 ...................................................... 36
Figura 20 Hierarquia de classes MHEG em 92 (e) e atual (d) .................................... 37
Figura 21 Estrutura de um objeto Link...................................................................... 41
Figura 22 Diagrama do topo da hierarquia de classes de MHEG 5 ............................ 45
Figura 23 Hierarquia das subclasses de Ingrediente ................................................... 46
Figura 24 Estrutura das subclasses de Presentable .................................................... 46
Figura 25 Diagrama das subclasses da classe Visível (Visible) ................................... 47
Figura 26 Relacionamento entre MHEG 5 e MHEG 1 .............................................. 48
Figura 27 Relacionamento entre HyTime, MHEG e PREMOErro! Indicador não definido.
Página 48
Padrões para troca de documentos hipermídia
1. Introdução
A indústria da computação tem sido guiada mais pela tecnologia do que pelos
requisitos de seu mercado. Ao contrário de mercados como os de aparelhos de sons onde
todo produto reproduz os mesmos tipos de fitas ou CDs, e toda diferenciação de produto
é em termos de preço, performance e funcionalidade, até recentemente os sistemas de
computação eram proprietários: um produto escrito para um sistema não funcionava em
outro sistema.
A compatibilidade era tanto nos níveis de software como de hardware. No entanto,
o alto custo de se produzir sistemas de computação, e a necessidade de se fazer aplicações
disponíveis em uma larga gama de máquinas levou a indústria a definir padrões apesar do
custo relativo em termos de performance.
Multimídia, como uma das mais recentes aplicações de computação (e também
uma das mais caras e exigentes), é uma das áreas que mais tem sofrido com este problema.
É abertamente reconhecido que a menos que padrões para troca de informação multimídia
sejam definidos e utilizados em larga escala, a indústria não atingirá um grau de
amadurecimento.
A indústria tem nos últimos tempos acompanhado o desenvolvimento de padrões
para compressão de mídia tais como JPEG e MPEG. A adoção geral destes padrões fez
com que se tornasse possível a implementação de alguns desses algoritmos em hardware a
um custo razoável para computadores pessoais, levando a uma redução significativa nos
custos de comunicação e armazenamento de dados multimídia. A performance hoje obtida
em computadores pessoais também está permitindo o desenvolvimento de sofisticadas
aplicações multimídia para um computador doméstico padrão. Na verdade, o mercado
doméstico é hoje o mercado mais importante para a produção de produtos multimídia.
Este texto apresenta e discute alguns dos problemas relacionados à troca de
Documentos Multimídia e também os padrões em desenvolvimento. Uma grande ênfase
será dada ao trabalho desenvolvido pelo grupo Multimedia and Hypermedia information
coding Expert Group (MHEG) que se tornou recentemente um Padrão Internacional da
ISO.
2. Informação de conteúdo e de apresentação
A maioria dos dados que recebemos carregam informação em dois níveis:
1. Conteúdo: o dado abstrato sendo transmitido e,
2. Apresentação: a forma na qual a informação é apresentada e percebida.
Página 48
Padrões para troca de documentos hipermídia
O mesmo conteúdo pode ser apresentado em um formato completamente diferente
dependendo do contexto. Por exemplo, uma fala pode ser escrita para uma audiência com
problemas de audição ou ser falado para outra audiência. Em cada caso, embora o
conteúdo seja o mesmo, a informação de apresentação é muito diferente. Para
portabilidade, é desejável que informação de conteúdo e de apresentação sejam mantidos
em estruturas diferentes. Quando as informações de conteúdo e de formatação são
mantidos separadamente, é fácil alterar a forma como a informação é apresentada como
discutiremos nas próximas seções.
Infelizmente computadores, como seres humanos, normalmente não compartilham
a mesma língua. Um dos padrões mais largamente aceitos é o definido pelo padrão da ISO
646 que define a versão de referência internacional do conjunto de caracteres ASCII. O
padrão ASCII é codificado em 7 bits e é suficiente para representar inglês corretamente.
Outras línguas modernas, incluindo diversas línguas européias, requerem um sistema de 8
bits. É óbvio que um sistema tal como ASCII, incapaz até mesmo de representar diversas
línguas atuais, não é suficientemente poderoso para representar todo o espectro que
abrange os documentos multimídia.
Como ASCII é usado por virtualmente todos os sistemas de computadores, ele é
uma boa forma de se trocar informação entre computadores. Um método usado para
sobrepor as limitações impostas por um conjunto pequeno de caracteres é adicionar
“marcas” (tags) dentro da informação textual. Estas marcas representam como o conteúdo
deve ser apresentado, em oposição a diretamente representar o formato de apresentação.
Uma forma comum de se usar marcas é pela definição de linguagens de markup tais como
SGML.
2.1 Linguagens de Markup
{\size{12pt} 1. Linguagens de Markup}
\size{10pt}
Aqui está o primeiro parágrafo desta seção.
E aqui está o segundo parágrafo
{\size{12pt} 2. Padrões}
\size{10pt}
Aqui está o primeiro parágrafo da seção padrões e com uma
referência à seção 1
Figura 1 Exemplo de Markup procedimental
Markup é alguma informação que é adicionada a um documento para descrever
sua estrutura ou instruções de formatação. Por exemplo, o texto na Figura 2 contém
informações (usando uma notação similar a LaTeX) sobre como ele deve ser formatado.
O markup descreve as instruções de como formatar as duas seções de um documento de
uma forma muito rígida. Se o usuário decide alterar as seções em um documento, a
numeração de seções terá que ser refeita manualmente. Se ele quiser mudar o tamanho dos
fontes usados para o corpo do texto e para o título das seções, todo o documento terá que
Página 48
Padrões para troca de documentos hipermídia
ser editado, e o mesmo se aplica ao espacejamento entre as seções e parágrafos. Neste
caso, o markup está proporcionando instruções de formatação mas nenhuma informação
sobre a estrutura.
Uma maneira mais flexível de descrever o mesmo texto é dado na Figura 2,
também usando uma notação similar a LaTeX. A figura mostra o conteúdo e a estrutura
de seções que poderiam ser parte de um livro, ou artigo, etc. Na figura, o markup é
definido por um palavra chave prefixada por \ e o conteúdo marcado esta envolvido por
{} (por exemplo, os títulos nas seções) ou simplesmente colocados entre dois marcadores
como o conteúdo de cada seção que colocado entre as instruções de markup de seção
\section{}. Não há marcas para indicar o começo e fim de parágrafos que são
delimitados por uma linha em branco. A marca \label{s_markup} fornece
informação que pode ser usada para referências cruzadas ou mecanismos de indexação
para recuperar a posição deste trecho de texto dentro da estrutura geral.
\section{Linguagens de Markup}
\label{ling_markup}
Aqui está o primeiro parágrafo desta seção.
E aqui
está o segundo parágrafo
\section{Padrões}
Aqui está o primeiro parágrafo da seção padrões e com uma
referência à seção~\ref{ling_markup}
Figura 2 Exemplo de markup lógico
Como as seções serão definitivamente formatadas não é definido pelo markup, que
define apenas estruturas lógicas. Funções de processamento aplicadas sobre os
componentes lógicos para a produção do layout final podem ser muito diferentes se as
seções forem partes de um livro ou de um artigo em duas colunas.
O conceito de markup lógico pode ser estendido para estruturas mais abstratas
alem das de formatação, proporcionando ganchos para processamento posterior. Por
exemplo, um componente lógico poderia especificar o preço que pode vir a ser usado para
alguma computação; ou uma referência tal como na Figura 2 ou mesmo para gerar
referências cruzadas dentro de um texto ou tabela de conteúdo.
3. Padrões relacionados a multimídia
Esta seção apresentará as principais tentativas de criação de padrões para a
representação e troca de documentos multi/hiper-mídia. O desenvolvimento de tais
padrões começa com a definição de modelo de referência Dexter (descrito na próxima
seção) cujo escopo era limitado aos sistemas de hipertexto existente quando da sua
definição. O texto apresenta alguns modelos originados na indústria que por seu uso em
Página 48
Padrões para troca de documentos hipermídia
larga escala tornaram-se padrões “de facto” e também outros padrões “de jure”
desenvolvidos e em desenvolvimento por comitês internacionais.
3.1 O modelo de referência Dexter
Modelo de Referência Dexter [Halasz e Schwartz, 1990][Schwartz, 1994]
representa uma tentativa de unificar as abstrações encontradas em vários sistemas de
hipertexto e é também uma base para o desenvolvimento de padrões para a troca de
documentos entre sistemas de hipertexto.
O modelo é o resultado de dois workshops sobre hipertexto. O primeiro deles
aconteceu na Dexter Inn em New Hampshire (Estados Unidos), de onde o seu nome se
origina.
O modelo Dexter divide um sistema de hipertexto em três camadas (Figura 3):
• Camada de tempo e execução: esta camada proporciona a funcionalidade para o
uso, visualização e manipulação do rede de hipertexto. O modelo Dexter define
apenas um modelo básico e não cobre interação com o usuário. Isto é devido ao fato
das ferramentas que implementam estas facilidades serem muito variadas. A
principal função da camada de tempo de execução é a apresentação (criação de
instâncias) de um componente para o usuário. Quando uma instância do componente
é criada, uma cópia é efetuada e todas as operações do usuário são realizadas sobre
esta cópia, que é posteriormente armazenada pela camada de armazenamento
É possível haver mais de uma instância do mesmo componente e manter controle
sobre estas instâncias; a camada de tempo de execução cria uma sessão que mantém
um mapeamento entre instâncias e componentes.
• Camada de armazenamento: é a camada de foco do modelo. A camada de
armazenamento descreve a base de dados compostas de uma hierarquia de
componentes inter-conectados por ligações de referência. Componentes são tratados
como dados genéricos de armazenamento não se fazendo distinção em relação a
mídia usado pelo componente.
• Camada interna aos componentes: componentes no modelo correspondem a nós em
hipertexto. Esta camada lida com o conteúdo e a estrutura interna dos componentes
dentre de uma rede de hipertexto. Como componentes podem conter uma gama
ilimitada de conteúdos e estruturas, o modelo não cobre esta parte. Modelos para
aplicações específicas tais como ODA e SGML devem ser usadas para completar a
definição de um hipertexto como um todo.
A interface entre a camada interna aos componentes e a camada de
armazenamento é chamada ancoragem. Ela proporciona os meios para endereçar itens
dentro de um componente.
A interface entre as camadas de tempo de execução e de armazenamento é
chamada especificação de apresentação e é um mecanismo que armazena informações
sobre como um componente deve ser apresentado ao usuário.
Página 48
Padrões para troca de documentos hipermídia
Camada de tempo de Execução
Apresentação do hipertexto;
interação com usuário;dinâmica
Especificações de Apresentação
Camada de Armazenamento
rede de nós e ligações
um banco de dados contendo uma
Foco do modelo
Dexter
Ancoragem
Camada interna aos componentes
o conteúdo/estrutura dentro
dos nós
Figura 3 O modelo Dexter
3.1.1 Problemas com o modelo
Dexter representa uma das primeiras tentativas de padronizar os sistemas de
hipertexto a embora seja relativamente recente, ele não deu a atenção necessária a alguns
do problemas que hipermídia adiciona a hipertexto dentre os quais:
• Dexter não tem noção de tempo o que o faz inadequado para expressar hipermídia
em geral;
• Dexter não permite ligações entre hipertextos e não faz distinção entre conteúdos
que são administrados dentro do escopo do sistema e aqueles manejados por
aplicações de terceiros;
• Objetos compostos também são limitados como discutido em [Leggett e Schnase,
1994], em particular no que se refere a composição, que é por cópia e não por
referência o que impede o reuso de objetos de conteúdo.
3.2 O formato de troca de multimídia CWI (CMIF)
O Formato de Troca de Multimídia CWI (CMIF) [Bulterman et al., 1991] é usado
para descrever as relações temporais e estruturais existentes em documentos multimídia.
O projeto CMIF tinha dois objetivos:
1. Definir uma estrutura que separasse os aspectos temporais, espaciais e de conteúdo
de documentos multimídia;
Página 48
Padrões para troca de documentos hipermídia
2. Investigar meios de usar a descrição de documentos ao invés de seu conteúdo como
meios de interrogação e sincronização de um ou mais conjuntos de documentos.
Tendo em vista os objetivos acima, projeto enfoca três problemas gerais existentes em
aplicações multimídia:
• Elementos manipulados dentro de sistemas de multimídia em geral consistem em
dados brutos em oposição a informação estruturada, com pouco significado
inerente;
• A representação e manipulação de tais dados é altamente dependente de máquina
e/ou dispositivo;
• A sincronização entre aplicações multimídia é com freqüência implicitamente
codificada como uma função da velocidade de um sistema e interface particular,
limitando as formas como interações entre elementos podem ser expressas e
implementadas.
Um documento CMIF é formado por uma coleção de diversas mídias e um
conjunto de relações de sincronização de estrutura descrevendo como manipular e
apresentar estes componentes (Figura 4).
CMIF fornece uma infra-estrutura poderosa para a construção de aplicações
hipermídia, em particular quando expressando relações de tempo de sincronização. No
entanto, o modelo não fornece uma forma direta para a representação de “hipermídia”
pois não possui um mecanismos para representar hiperlinks.
Página 48
Padrões para troca de documentos hipermídia
Tempo
arcos de
sincronização
dj jdhjdfha sdfd alkdjfasdf
sddjfasidf ai iais fadi il
sdfasdfs jkdhfljdfj
Canal Descritores de eventos
Figura 4 Componentes Estruturais de Documentos CMIF
3.3 O Modelo Hipermídia de Amsterdã (The Amsterdam Hypermedia
Model AHM)
O Modelo Hipermídia de Amsterdã [Hardman et al., 1993] [Hardman et al., 1994]
é um arcabouço que pode ser usado para descrever sistemas de hipermídia. O AHM
estende o modelo de hipertexto Dexter (descrito na seção 3.1) através da adição de
noções de tempo como definido pelo CMIF (visto na seção anterior).
O AHM agrupa relacionamentos entre itens de dados em dois grupos
1. Coleção: a classe de itens relacionados com a identificação de componentes que
devem ser apresentados em conjunto;
2. Sincronização: a classe de itens que especifica o ordenamento relativo no qual
os componentes deve ser apresentados.
Os grupos anteriores contrastam com o modelo Dexter que provê suporte para
coleções através da definição hierárquica de componentes. O conjunto de componentes
atômicos pode ser modelado por compostos Dexter. No entanto, Dexter não oferece
mecanismos para a especificação de relações temporais entre componentes.
O AHM separa o conteúdo de dados e a informação de apresentação através da
definição de componentes atômicos e compostos conforme mostrado na Figura 5
Página 48
Padrões para troca de documentos hipermídia
Nome do canal
Especificações de
Apresentação
Duração - Especificada ou implicita
Especificação de
Apresentação
Arcos de sincronização
Informação semântica
ID. componente origem
ID componente destino
Relação de tempo
outros comp. - inf. especificas de
apresentação
Atributos
Info. apres. específica do
componente
Atributos
Informação semântica
ID. da âncora
âncoras
Valor
âncoras
Conteudo
ID. da âncora
lista de (id. comp, ID âncora)
Ponteiro para dados ou bloco de
dados
Tipo do composto
Filhos
escolha ou paralelo
Id. do commponente
Hora de início
Figura 5 O Modelo Hipermídia de Amsterdam (componente atômico (e) e composto
(d))
Os componentes atômicos contêm informação relativa a um bloco de dados
específico incluindo duração, especificações de apresentação e identificação de âncoras
enquanto que um composto contém informação de apresentação relacionada com uma
coleção de blocos atômicos e compostos. Um composto não contém dados (conteúdo);
tais dados dever ser ou incluídos ou referidos em um componente atômico.
Existem dois tipos de compostos:
1. Composto de Escolha: no máximo um filho é mostrado;
2. Composto Paralelo: todos componentes são mostrados.
3.3.1 Sincronização no AHM
O AHM suporta dois níveis de sincronização conforme mostrado na Figura 6
Página 48
Padrões para troca de documentos hipermídia
a
b
c
offset do começo
âncora
referência
arco de sincronização
Figura 6 Relações temporais no AHM
1. Sincronização de granulosidade grossa (coarse-grained synchronisation): define as
restrições entre os filhos em um composto tais como tempo de começo relativo de
cada filho no composto. Esta informação deve ser dada explicitamente com a
definição do filho;
2. Sincronização de granulosidade fina (fine-grained synchronisation): define
restrições entre filhos (que podem ser aninhados) dentro de um componente de um
composto. Estas restrições são definidas usando-se arcos de sincronização.
3.3.2 Contexto de Ligações (link context)
O AHM define o conceito de um contexto de ligação para especificar como os
componentes se comportam quando uma referência (link) é seguida. Um contexto de
ligação é um composto que contem uma coleção de componentes afetados pela ativação
da referência. Um contexto fonte (source context) para uma referência é a parte da
apresentação afetada pelo início de uma referência e o contexto de destino (destination
context) é a parte afetada pela chegada de uma referência.
3.3.3 Canais
Os canais permitem a especificação dos atributos globais de saída de documentos.
Um canal pode especificar, por exemplo, o fonte e o estilo para um canal de texto.
O conceito de canal também pode ser usado para especificar, por exemplo, a
língua a ser usada para a saída de uma fala ou texto em um documento com mais de uma
língua.
Página 48
Padrões para troca de documentos hipermídia
3.3.4 Limitações do AHM
A principal limitação atual do AHM é derivada do fato que o modelo tomado
como base (CMIF) não suportar âncoras compostas e consequentemente não é possível a
definição de condições complexas para as ligações.
3.4 O formato QuickTime
O formato QuickTime Movie File (QMF) [Apple, 1993] foi originalmente
desenvolvido pela Apple para os Macintoshes, como uma extensão ao sistema operacional
System 7. Atualmente, Quicktime está disponível para outras plataformas.
O QMF funciona como um invólucro para dados baseados em tempo. Ele
apresenta um modelo para armazenamento e troca de mídia relacionada com tempo que é
independente das capacidades de sincronização e temporização internas dos sistemas que
o utilizam.
Um “filme” em QuickTime é na verdade qualquer dado dinâmico como um filme
propriamente dito, uma apresentação de slides, ou uma animação. Um filme pode ter
diversas trilhas com tipos diferentes de informação mas só pode haver uma trilha com uma
mídia específica (como audio, por exemplo). Um átomo de filme é composto de átomos
de trilhas que são descritos na Figura 7 (de [Buford, 1994]).
Filme com diversas
trilhas
trilha com átomos de mídia
Mapeamento de átomos
de mídia para mídia
física
Figura 7 Componentes de QuickTime
Um filme também pode incluir especificações para um pôster que é uma imagem
única para representar um filme (um ícone por exemplo) e um preview que é um pequeno
segmento de um filme também usado para identificar este.
Página 48
Padrões para troca de documentos hipermídia
Um sistema completo de QuickTime inclui componentes para a autoria, edição e
visualização de filmes; um administrador de compressão que permite o uso de algoritmos
adequados para cada mídia; e mecanismos para armazenar temporariamente filmes que
serão incluídos em outros documentos.
3.4.1 Limitações de QuickTime
Embora QuickTime tenha sido desenvolvido para adicionar mídia baseada em
tempo a aplicações já existentes, ele não permite que links sejam disparados de dentro dos
componentes por ele controlados.
3.5 Office Document Architecture (ODA)
O Office Document Architecture (ODA) [ISO, 1989] [Brown, 1989] é um padrão
para troca e armazenamento de documentos. ODA define um modelo de documento
hierárquico e orientado a objetos. Um documento em ODA pode ser visto como uma
árvore na qual as folhas contém o conteúdo e a forma define a estrutura do documento. A
separação da estrutura e do conteúdo facilita a administração e criação de documentos
multimídia. Um atributo de objeto é uma propriedade do documento ou de um
componente do documento. O atributo representa uma característica de um documento ou
uma relação entre este e outros documentos.
Um documento ODA é descrito por duas estruturas:
1. Estrutura lógica: a estrutura lógica do documento é baseada em seu
significado, ou seja, a estrutura que faz sentido para o autor e leitor do
documento. A estrutura lógica define o relacionamento entre componentes
lógicos e componentes de conteúdo. Exemplos de componentes lógicos são:
capítulos, seções, figuras, etc. Componentes lógicos podem também especificar
itens especializados tais como entradas de dicionário.
2. Estrutura de layout: a estrutura de layout define a aparência do documento,
como ele deve ser formatado. Exemplos de objetos de layout são páginas,
molduras (áreas retangulares) e blocos.
ODA também define o conceito de classes de documentos que são análogas a
DTDs em SGML. Uma classe de documentos é definida por estruturas genéricas. Baseado
no conceito de classes de documentos, as estruturas acima podem ainda ser dividas em:
• Estruturas genéricas (de layout e lógicas): que são associadas a classes de
documentos, e
• Estruturas específicas (de layout e lógicas): que são associadas com exemplo da
classe.
A separação das estruturas lógicas e de layout em ODA pode ser vista na Figura 1.
Os objetos nas folhas contém um atributo que define o tipo do conteúdo associado. Cada
tipo de conteúdo é manipulado diferentemente por regras denominadas arquiteturas de
conteúdo. Atualmente, ODA define três tipos de arquiteturas de conteúdo:
Página 48
Padrões para troca de documentos hipermídia
1. Arquitetura de conteúdo de caracter: é composta de caracteres de controle e
gráficos. O formato de posicionamento dos caracteres são controlados com um
conjunto de atributos e características. Por “default”, os caracteres são definidos
verticalmente, em linhas a partir do topo do bloco e progredindo da esquerda para a
direita e de cima para baixo. É possível alterar atributos tais como direção de
progressão de linha e caracteres, produzir super e subscritos, etc.
2. Arquitetura de conteúdo de Raster graphics: o conteúdo de raster graphics
representa uma imagem bi-dimensional formada por um arranjo também bidimensional de elementos de imagem (PEL, Picture ELements). Diversos atributos
podem ser alterados, incluindo: direção de progressão dos PELs dentro de uma
linha, direção de progressão das linhas, ponto de início a partir do qual os PELs são
colocados dentro de uma linha, tamanho da imagem, etc.
3. Arquitetura de conteúdo graficos geométricos: esta arquitetura é baseada no padrão
CGM (Computer Graphics Metafile). Atributos de ODA são usados para prover
valores iniciais de CGM tais como tipo de linha, largura e cor, tamanho da imagem
final, etc.
Cada uma das arquiteturas acima define uma ou mais classes similares a classes de
documentos. Estas classes, por sua vez, podem conter outras classes oferecendo diferentes
níveis de facilidades como, por exemplo, para alterar a direção na qual os caracteres são
posicionados em um documento.
Seção
Estrutura
Lógica
Estrutura de
Layout
Subtítulo
Parágrafo
Parágrafo
Conteúdo
Conteúdo
Conteúdo
Bloco
Bloco
Bloco
Moldura
Página
Figura 8 Estruturas Lógicas e de Layout em ODA
Página 48
Padrões para troca de documentos hipermídia
3.5.1 Troca de Documentos ODA
Os documentos ODA podem ser trocados em diferentes formatos:
• Formato ODIF: ODIF é uma sintaxe abstrata onde os componentes e atributos
de um documento são representados por uma hierarquia de estruturas de dados
que aparecem em uma determinada ordem.
• Formato Office Documento Language (ODL): que é um uso particular de
SGML para representar documentos ODA.
3.5.2 Extensões a ODA
Diversas extensões a ODA tem sido propostas para incorporar multimídia. Estas
extensões incluem:
• Novas características de arquiteturas de conteúdo que: permitem a inclusão de
mensagens de voz e outras formas de audio a documentos ODA; permitem a
inclusão de objetos CCITT H.261, JPEG, MPEG-1 e MPEG-2; adicionam atributos
a documentos para permitir o controle de como imagens devem ser apresentadas,
tais como controle de contraste, brilho e saturação; permitem a definição de marcas
dentro de um vídeo clipe; permitem que seqüências de vídeo sejam cortadas tanto no
espaço como no tempo para, por exemplo, mostrar apenas partes de um vídeo clipe.
• HyperODA: As extensões de multimídia para ODA (conhecidas como HyperODA)
tem como objetivo a inclusão de informação audiovisual a ODA. As principais
características de HyperODA são que ela: suporta referências a dados mantidos
externamente aos documentos; suporta estruturas não lineares, usando hiperlinks
contextuais e independentes baseados no modelo HyTime; suporta relacionamentos
temporais entre componentes de documentos (por exemplo, seqüencial, paralelo,
cíclico, duração, atraso para começo).
HyperODA ainda não se tornou um Padrão Internacional.
3.6 SGML
A Standard Generalised Markup Language (SGML) [ ISO, 1986a, Goldfarb,
1990] é o padrão 8879 da ISO. Ele é baseado em dois postulados:
1. “O markup deve descrever a estrutura do documento e outros
atributos e não especificar o processamento realizado sobre ele.
Assim, o markup descritivo precisa ser realizado apenas uma vez
e será suficiente para todo processamento futuro.”
2. “O markup deve ser rigoroso de tal forma que as técnicas
disponíveis para o processamento de objetos rigorosamente
Página 48
Padrões para troca de documentos hipermídia
definidos tais como programas e bases de dados podem ser
usados para o processamento de documentos também.”
O padrão também é independente de sistemas e de dispositivos no sentido que ele
lida com armazenamento virtual o qual pode ser mapeado sobre diferentes dispositivos
físicos de armazenamento oferecidos por diversos fabricantes. Ele é independente de
linguagem pois pode ser usado mesmo em linguagens que não usam alfabetos baseados em
Latim como por exemplo Grego. É independente de aplicação pois é suficientemente
flexível para codificar tanto documentos simples como complexos, e é capaz de lidar com
documentos sujeitos a alterações freqüentes. SGML também suporta a inclusão de outros
tipos de dados não textuais.
Pelo fato de aparentemente ser pouco provável que um sistema de publicação
completamente automático, que não requeira intervenção humana, venha a ocorrer, um
outro critério levado em consideração durante o desenvolvimento do padrão foi que o
markup deveria ser legível por “humanos”.
SMGL é como ODA (veja seção 3.5) no sentido em que modela documentos
como árvores, mas ao contrário de ODA, SGML descreve apenas a estrutura lógica dos
documentos, não a sua semântica de layout.
Itens lógicos em SGML são chamados elementos. Cada elemento é delimitado por
marcas que indicam o seu começo e fim. O conteúdo do elemento (que pode conter
elementos aninhados) ocorre, entre as marcas. SGML permite ao usuário definir atributos
a serem adicionados aos elementos.
Apesar do nome, SGML não é uma linguagem, pois o markup em si não é
padronizado, mas uma metalinguagem que proporciona os meios para definir as regras de
markup a serem usadas. SGML define sintaxe mas não define semântica.
3.6.1 Um documento SGML
Um documento SGML é composto de três partes:
1. A declaração SGML;
2. A Definição de Tipo de Documento (Document Type Definition - DTD);
3. A instância do documento.
3.6.1.1 A declaração SGML
A declaração SGML inclui informação sobre o uso de conjuntos de caracteres, a
sintaxe concreta, requisitos de processamento e caraterísticas opcionais.
3.6.1.2 A Definição de Tipo de Documento
A Definição de Tipo de Documento (DTD) é o centro de SGML. Ela define as
regras que se aplicam a todos os documentos daquele tipo incluindo o nome dos vários
Página 48
Padrões para troca de documentos hipermídia
elementos (identificadores genéricos) permitidos, quaisquer atributos eles podem ter, o
número de vezes que podem aparecer, a ordem que eles devem aparecer, se algum markup
(tais como de início e fim) pode ser omitido e o relacionamento entre os elementos.
Um DTD não tem informação sobre como processar um documento ou o como ele
deve parecer, mas permite aos usuários definirem sua própria linguagem de markup
dependendo das suas necessidades.
Figura 9 mostra uma Declaração de Tipo de Documento (que pode incluir
diversas DTDs) onde os itens entre [ e ] representam um DTD. O DTD define o
documento de classe carta que deve consistir do nome do destinatário, o endereço do
destinatário, o nome do remetente, uma saudação, a data e um ou mais parágrafos, nesta
ordem.
Um DTD define três tipos de comandos de markup:
• Elementos: que são marcados com símbolos chamados start-tag e end-tag para a
delimitação do início e fim do markup. Por exemplo, na Figura 10 <rn> </rn> é um
elemento (na forma mais simples possível) cuja start-tag é “<rn>”, end-tag “<rn>” e
com um identificador genérico (generic identifier) “rn” (também denominado nome
da marca ou tag name);
• Atributos: que proporcionam informação extra sobre o elemento que está sendo
especificado. Atributos são similares a parâmetros em linguagens de programação.
• Entidades: que são seqüências de caracteres (strings) usadas para marcar lugares no
texto onde material externo, tais como figuras, ou símbolos matemáticos que não
podem ser entrados diretamente do teclado, devem ser posicionados.
<!DOCTYPE carta[
<!ELEMENT carta - - (nd, ed, nr, sd, d, p+)>
<!-- carta components:
nd
= nome do destinatário
ed
= endereço do destinatário
nr
= nome do remetente
sd
= saudação
d
= data
p
= parágrafo -->
<!ELEMENT (nd|ed|nr|sd|d|p) - (#PCDATA)>
]>
Figura 9 Exemplo de uma Definição de Tipo de Documento (DTD)
3.6.1.3 A instância do documento
A instância do documento representa o documento propriamente dito que é ser
marcado de acordo com as regras estabelecidas da declaração SGML e no DTD. A Figura
10 dá um exemplo de uma instância de documento SGML.
Página 48
Padrões para troca de documentos hipermídia
<!DOCTYPE CARTA SYSTEM “carta.dtd”>
<carta>
<nd>O Editor -- Revista de Verão</rn>
<ed> São Paulo - SP</ra>
<nr>João da Silva </sn>
<sd>Prezado Senhor,</sl>
<d>10/06/96</d>
<p>Por favor cancele a minha
assinatura ….</p>
</carta>
Figura 10 Exemplo de uma instância de um documento do tipo carta (definido na
Figura 9)
3.6.2 Troca de documentos SGML
Documentos SGML são trocados usando o Formato de Troca de Documentos
SGML (SGML Document Interchange Format - SDIF) definido pelo padrão ISO 9069
[ISO, 1988]. SDIF foi originalmente definido para proporcionar os ganchos que
permitissem a troca de documentos SGML dentro de um ambiente OSI.
Um documento SGML pode ser composto de diversas partes separadas tais como
a definição de tipo de documento, definições de entidades externas, etc., e o padrão não
especifica como estas partes estão organizadas. SDIF define com empacotar as partes
dentro de um único fluxo (stream) de dados com descritores indicando como as partes
estão relacionadas entre si. O fluxo de dados é codificado usando ASN 1, o que permite
que SGML seja compatível e usado com padrões de rede [van Herwijnen, 1994] definidos
em termos do Modelo de Referência OSI.
3.6.3 SGML binário (SGML-B)
As marcas de SGML claramente adicionam uma grande sobrecarga aos dados
sendo transmitido. SGML-B é uma extensão ao padrão SGML para proporcionar
codificação binária a SGML com conversibilidade bidirecional entre as formas de texto e
binárias. SGML-B usa um mínimo de markup com o objetivo de reduzir armazenamento.
3.6.4 Limitações de SGML
Uma das grandes limitações de SGML é que ele na verdade não especifica
documentos mas DTDs, e DTDs incompatíveis destroem o objetivo de uma troca
universal de documentos. Uma outra limitação é que os DTDs não indicam como
processar objetos não textuais. Quando objetos não textuais são encontrados, os DTDs
simplesmente especificam seqüências especiais de markup denominadas “escapes”
(seqüências que suprimem o reconhecimento de markup quando uma extensão de código
está em uso) que fazem com que o programa de processamento saia do processo SGML
para uma aplicação que sabe manipular o objeto não textual. SGML também não
padroniza nem mesmo como os objetos são marcados para transferência para estes
processos internos nem como estas aplicações interpretarão os objetos uma vez recebidos.
Página 48
Padrões para troca de documentos hipermídia
Uma solução parcial para estas limitações é oferecida pela linguagem de
estruturação HyTime (Hypermedia/Time based) descrita na próxima seção.
3.7 HyTime
HyTime, ou Hypermedia Time-Based Structuring Language [ISO, 1992] [Markey
1991][Newcomb at al., 1991][Fujitsu and TechnoTeacher, 1995] é o resultado de um
projeto do Instituto Nacional Americano de Padrões (American National Standard
Institute - ANSI) com o objetivo de criar uma Linguagem Padrão de Descrição de Música
(Standard Music Description Language - SMDL). HyTime se tornou um padrão da ISO
em abril de 1992.
HyTime é uma aplicação de SGML (e considerado o seu futuro por Goldfarb) que
permite que markup e DTDs sejam usados para descrever a estrutura de documentos
multimídia. Os tipos de conteúdo que um documento pode conter incluem:
• Gravação digital de audio;
• Imagens dinâmicas e vídeo digital;
• Campos textuais;
• Notação musical;
• Controle de instrumentos;
• Sinais de controle para sistemas externos.
HyTime elimina algumas das limitações de SGML por proporcionar um meio
uniforme de marcar objetos textuais e não-textuais de tal forma que eles possam ser
apresentados como um documento completo ou processados como objetos independentes.
HyTime não especifica como objetos de um documento são codificados ou interpretados
por programas de computados. No entanto, por usar mecanismos padrões de ligação
(linking), alinhamento, e endereçamento, HyTime garante que estes objetos serão
colocados a disposição de programas de uma forma padronizada.
Com o objetivo de não limitar o seu poder de expressão, HyTime em si não é um
DTD SGML, mas fornece construções e diretrizes (“architectural forms”) para a
construção de DTDs para a descrição de documento hipermídia.
HyTime especifica como conceitos comuns a todos documentos hipermídia podem
ser representados usando SGML. Estes conceitos incluem [Adie, 1994]:
• Associação de objetos dentro de documento os com hiperlinks;
• Definição de inter-relacionamento de objetos no tempo e espaço;
• Estruturação lógica do documento;
• Inclusão de dados não-textuais no documento.
Um objeto em HyTime é parte de um documento, e não é dependente do meio:
pode ser um vídeo, uma seqüência de áudio, um texto, um programa, imagens, etc.
Página 48
Padrões para troca de documentos hipermídia
HyTime é composto de seis módulos (Figura 11):
• O módulo base: provê uma forma arquitetural que monta o documento em si
(consequentemente é requerido por todos os outros módulos), incluindo um modelo
léxico descrevendo os conteúdos dos elementos; mecanismos para identificar
políticas para lidar com alterações sobre o documento, ou percorrer um link
(“activity tracking”); e a habilidade de definir “entidades containers” (“container
entities”) que podem manter múltiplos objetos de dados.
• O módulo de medidas: provê os documentos da capacidade de representar conceitos
envolvendo dimensão, medidas e contagem. Ele permite que um objeto seja
localizado no tempo e/ou no espaço, ou em qualquer outro domínio que possa ser
representado por um espaço de coordenadas finitas, dentro de uma “caixa”
(bounding box) denominada “evento”, definida por um conjunto de pontos de
coordenadas que podem ser representados em quaisquer unidades.
• O módulo de localização de endereços: provê mecanismos, em adição aos já
fornecidos por SGML, para identificar e fazer referências a elementos. Este módulo
provê uma forma arquitetural especial (named location address) que pode ser usada
para fazer referência indireta a dados que envolvem mais de um elemento, ou que
esteja localizado em entidades externas. Os dados também podem ser endereçados
indiretamente através de consultas (queries), que devolvem endereços de objetos
dentro de algum domínio que tenha as propriedades que satisfaçam a consulta. Se o
módulo de medidas for usado, as localizações podem ser especificadas como
endereços numéricos ou índices ao longo de dimensões particulares.
HyTime oferece três tipos de endereçamento:
1. Endereçamento por nome-espaço onde um único nome é fornecido;
2. Endereçamento coordenado que é relativo a uma dada localização;
3. Endereçamento semântico que é especificado por descrição.
• O módulo de escalonamento: especifica como eventos em um Espaço de
Coordenadas Finitas (Finite Coordinate Space FCS) devem ser mapeados sobre um
FCS destino. Por exemplo, eventos em um eixo de tempo podem ser projetados
sobre um eixo espacial para ser exibido graficamente, ou um eixo de tempo “virtual”
como os usados em música podem ser projetados sobre um eixo de tempo físico.
Em um outro exemplo, se um mapa deve ser representado em, digamos, uma escala
de 1:100000, isto quer dizer que uma dimensão de 1 km no FCS original será
mapeado para 1 cm no FCS de destino. Se o evento for aplicado para todo o mapa,
isto significa que a mesma ênfase será dada para todas as suas partes. Se, no
entanto, quisermos que algumas partes tenham mais detalhes, mais de uma projetor,
com diferentes escopos de ação (proscopes) podem ser usados. Uma escala de
proscopes é denominada uma “batuta” (baton) e determina a taxa pela qual
unidades virtuais devem ser convertidas em unidades físicas.
Um FCS pode conter qualquer número de escalas de eventos e cada escala pode
conter qualquer número de eventos.
Página 48
Padrões para troca de documentos hipermídia
• O módulo de apresentação (rendition): permite que objetos individuais sejam
modificados antes da apresentação. O módulo especifica como eventos em um
espaço finito de coordenadas pode ser mapeado em outro espaço de coordenadas
finitas. Um exemplo é a modificação de cores em uma imagem de tal forma que ela
possa ser mostrada usando o mapa de cores correntemente selecionado em um
terminal gráfico, ou a alteração do volume em um canal de áudio de acordo com o
gosto do usuário.
Neste caso, objetos são modificados dentro de eventos e nem a semântica dos objetos
nem a dos modificadores são definidos por HyTime. De forma similar à batuta definida
anteriormente, o escopo de um modificador é especificado por um modscope e uma
escala de modscopes é denominada uma “varinha de condão” (wand).
As aplicações não precisam necessariamente suportar todos os módulos: apenas as
partes de HyTime que são apropriadas para um dado documento têm que ser suportadas.
Por ter sido definido como um formato para representação de documentos,
HyTime possui um grande poder de expressão mas não é otimizado para ser eficiente em
tempo de execução.
base
medidas
localização
de endereços
escalonador
hiperlinks
rendition
Figura 11 Módulos de HyTime
3.7.1 A máquina HyTime (HyTime engine)
A máquina HyTime é basicamente um programa que reconhece as construções de
HyTime em um documento. O padrão HyTime não especifica como a máquina deve
“funcionar”. Atualmente há poucas máquinas disponíveis: existe pelo menos um sistema
comercial — HyMinder desenvolvido pela TechnoTeacher [Adie, 1994]; e uma
desenvolvida pelo Interactive Multimedia Group da Universidade de Massachussets
(Lowel) [Koegel at all., 1993].
Página 48
Padrões para troca de documentos hipermídia
3.7.2 Troca de documentos HyTime
Como HyTime é uma aplicação de SGML, a troca de documentos é possível pelo
uso de SDIF (seção 3.6.2).
3.7.3 A Linguagem de Descrição de Música Padrão (Standard Music
Description Language SGML)
A Linguagem de Descrição de Música Padrão [Newcomb, 1991] é uma aplicação
de HyTime com a adição de ferramentas para a representação de música. HyTime foi
originalmente desenvolvido a partir de um projeto com o objetivo de representar música.
A SMDL define quatro domínios de informação (Figura 12):
Domínio
Visual
Score
Análise
Score
Domínio
Analítico
Análise
Domínio lógico
(CANTUS)
Performance
Domínio
Gestural
Performance
Figura 12 Domínio de descrição em SMDL
1. Domínio visual: contém as informações de partitura (score);
2. Domínio gestural: contém as informações da performance;
3. Domínio analítico: contém informação teórica e facilita discussões musicológicas e
teóricas sobre a estrutura da música, transformações temáticas, performance e
técnicas analíticas.
4. Domínio lógico (cantus): pode ser definido como “altura” (freqüência) e durações
(tempos) e contém as informações mínimas para que um autômato gere uma
partitura e uma performance sintética mínima.
Página 48
Padrões para troca de documentos hipermídia
Um cantus pode ser referido por mais de uma performance (domínio gestural) e
por mais de uma partitura. Um documento também pode conter mais de uma edição
“imprimível” da música (domínio visual).
Em SMDL, uma trecho de música é visto como uma combinação de eventos. Os
eventos ocorrem em escalonamentos líricos e de teia (Figura 13) em um espaço de tempo
finito, com uma posição (início) e duração. Começo e duração podem ser definidos por
uma posição explícita ou por referência a outros eventos.
Para representar unidades de tempo, que não necessariamente são as mesma em
música, SMDL usa uma batuta de HyTime. Outras unidades de processamento tais como
modificações e filtros são especificados por uma vara de condão de HyTime na qual toda
semântica dos modificadores é definida pelo usuário.
Cantus:
eventos escalonados em
tempo virtual
BATUTAS
CONTINUAÇÕES
notas
acordes
pausas
LETRAS
direções de tempo
VARAS DE
CONDÃO
modificadores
Figura 13 Estrutura do Cantus em SMDL
Página 48
Padrões para troca de documentos hipermídia
3.7.4 Comentários finais
HyTime proporciona construções muito poderosas para
a definição de
documentos complexos com dependências de tempo e de sincronização. Parte de sua
força é derivada do fato que ele começou como um projeto para a representação de
música. Uma das características mais interessantes de HyTime, e que o faz particularmente
adequado para a representação de hipermídia, é que ele permite a definição de hiperreferências baseadas no conteúdo dos dados em adição a definição de restrições
dependentes de tempo.
Um ponto fraco de HyTime, quando usado para representar hipermídia, vem
diretamente de seu ponto mais forte. Por possuir um grande poder de expressão, e
permitir a definição de documentos em um nível muito alto de abstração, HyTime requer
uma grande capacidade de processamento e conseqüentemente não é muito eficiente em
termos de apresentação das informações.
3.8 Adobe Acrobat
Embora o Acrobat [adobe, 1995] não seja um padrão para troca de documentos,
ele foi inventado e lançado no mercado pelos criadores da Linguagem de Descrição de
Página (PDL) PostScript que é o padrão de facto no mundo das impressoras. O objetivo
da Adobe é o de atingir o mesmo nível de aceitação para documentos eletrônicos. O
Acrobat tenta atingir estes objetivos pelo uso de tecnologias já testadas e aprovadas como
EPS (Encapsulated PostScript) e fontes com Multiple Masters (uma tela do Acrobat é
mostrada na Figura 14).
O Formato Portável de Documentos (Portable Document Format - PDF) do
Acrobat usa uma linguagem de descrição de páginas (PDL) baseada em PostScript para a
descrição de textos, gráficos e imagens em um arquivo com facilidades adicionais para
anotações e referências. Por ser baseado em PostScript, uma arquivo PDF é independente
de dispositivo e de resolução e consequentemente pode reproduzir as páginas na maior
resolução suportada pelo dispositivo de saída.
A Adobe publicou PDF como uma padrão aberto, permitindo que pessoas que
desenvolvem software suportem o formato em aplicações de terceiros.
O Acrobat é composto de um conjunto de pacotes com objetivos específicos:
• Acrobat Exchange: é o pacote para ler e escrever documentos portáveis;
• Acrobat Reader: é capaz apenas de ler documentos criados usando o
Exchange;
• Acrobat Distiller: também usado para criar documentos. Ele proporciona uma
forma mais simples de criação de documentos do que o Exchange por suportar
apenas PostScript encapsulado de nível 2 criado por outros pacotes e fazendo a
conversão para PDF.
Página 48
Padrões para troca de documentos hipermídia
O Acrobat proporciona ainda facilidades para a adição de referências, notas e
marcas (book marks) a documentos embora não permita a identificação de quem criou as
marcas.
3.8.1 Limitações do Acrobat
Apesar de ser muito poderoso para a conversão de documentos no formato
PostScript, Acrobat não é uma ferramenta geral de hipermídia, pois não foi
(originalmente) projetado para tirar vantagens de distribuição, e não é diretamente
extensível para acomodar novos tipos de dados (mídia). Uma outra importante limitação
de Acrobat é o fato de baseado em página.
O ambiente natural para o uso de Acrobat parece ser o de escritórios, onde
proporciona uma boa solução para a redução do volume de papeis, e não como uma
ferramenta hipermídia em geral principalmente pela sua corrente falta de mecanismos de
extensão.
Página 48
Padrões para troca de documentos hipermídia
Figura 14 Exemplo de uma tela do Acrobat
3.9 A World Wide Web
A World Wide Web (WWW ou W3 ou simplesmente “a rede”) é uma arquitetura
cliente servidor mundial para a recuperação de documentos hipermídia na Internet. A
WWW começou como um projeto no CERN como uma sistema distribuído multimídia em
larga escala para proporcionar recursos para a distribuição de documentos relacionados
com a pesquisa de física de altas energias. A rede desde então se espalhou para outras
áreas e é provavelmente o mais conhecido e usado sistema multimídia distribuído
disponível atualmente com “navegadores” (browsers) disponíveis para virtualmente todos
os sistemas operacionais, com configurações desde terminais burros até sofisticadas
estações de trabalho gráficas.
O usuário vê a rede como uma coleção de nós (documentos) e ligações entre eles.
A navegação é normalmente iniciada com um click do mouse sobre uma âncora que
dispara a referência associada e provoca a recuperação do documento associado. A rede
Página 48
Padrões para troca de documentos hipermídia
também possui recursos que permitem pesquisa em fontes de informação remotas, como
por exemplo bibliografias, listas telefônicas e manuais.
A rede oferece interfaces transparentes para Gopher, Wais, ou ftp anônimo,
permitindo acesso a virtualmente todos os recursos disponíveis na Internet. A
identificação de recursos na rede é feita pelo uso de Localizadores Uniformes de Recursos
(Uniform Resource Locators - URL) que são descritos a seguir.
3.10 Localizadores Uniformes de Recursos (Uniform Resource
Locator - URL)
A WWW utiliza um esquema de nomes denominado Localizadores Uniformes de
Recursos (URL) [Berners-Lee, 1995] para representar ligações hipermídia e referência
para recursos compartilhados.
A sintaxe do URLs identificam documentos em termos do protocolo utilizado para
a sua recuperação, seu servidor Internet e a localização dentro do servidor (path name)
http://www.ufg.br/dei/sobre_o_dei.html
protocolo
servidor
(host)
localização ou caminho
(path)
Figura 15 Exemplo de uma URL
conforme mostrado na Figura 15. Entre os protocolos suportados estão http, telnet, ftp
(anônimo), NNTP, wais e gopher. Um problema dos URLs é o fato deles geralmente
dependerem de servidores específicos. No entanto, trabalhos estão em andamento com o
objetivo de proporcionar identificadores “eternos” que são independentes de localização.
A existência destes identificadores permitirá a utilização de serviços de diretórios
automatizados similares ao X.500 [CCITT, 1988] para a localização da cópia mais
próxima de um determinado recurso [Raggett, 1994a].
3.11 Números Universais de Recursos (Universal Resource Numbers
- URN)
Os Números Universais de Recursos (URN) são um sistema proposto para
permitir identificadores únicos independentes de tempo para arquivos disponíveis por rede
em desenvolvimento por grupos de trabalho da IETF. Os URNs, ao contrários dos URLs,
não contém informação sobre como os nós devem ser recuperados e podem ser alocados a
nós e representados em âncoras de origem.
O objetivo dos URNs é reduzir o tráfego na rede e oferecer uma estrutura mais
robusta onde a localização do servidor não é codificada. O sistema do leitor não precisa
buscar um nó se ele já estiver disponível localmente. A implementação de mecanismos de
cache é facilitada por que a identificação não se altera, e qualquer servidor com o objeto
referido pela URN pode oferecê-lo. Por outro lado, se o nó for alterado, todas as
Página 48
Padrões para troca de documentos hipermídia
referências para aquele nó devem ser atualizadas invalidando as caches existentes. Este
esquema, consequentemente, só é útil para nós “grandes”, que impõem um alto custo de
transmissão para sua recuperação e que pouco provavelmente serão atualizados.
3.12 A Linguagem de Markup de Hipertexto (Hypertext Markup
Language HTML )
A Linguagem de Markup de Hipertexto (HTML) [Berners-Lee, 1993] é a
linguagem usada pelos navegadores da rede. HTML descreve a organização de
documentos de tal forma que elementos estruturais podem ser identificados e recuperados
na Internet.
<TITULO> Aqui vem o título do documento</TITULO.
<H1> O cabeçalho principal está aqui</H1>
<H2>E aqui um cabeçalho de nível 2<H2>
<P>Temos agora o primeiro parágrafo</P>
<H2>Mais uma subseção de nível 2</H2>
<P>E o segundo parágrafo.</P>
<P>Esta é uma referência para a WWW
< A
HREF=”http://www.w3.org/hypertext/WWW/TheProject”>(World Wide
Web) </A>
Figura 16 Exemplo de um documento HTML
Um documento HTML é um arquivo ASCII com marcas adicionadas (markup),
com uma sintaxe baseada em SGML, que provêm uma estrutura hierárquica ao texto
[Barry, 1994]. HTML inclui elementos de markup para:
• Cabeçalhos: seis níveis de cabeçalhos são suportados e eles são marcados de H1 (o
de maior significância) a H6 (o menos significante). Usualmente o nível de
significância definirá o tipo e o tamanho do fonte utilizado para mostrar o cabeçalho;
• Parágrafos: textos normais são normalmente ajustados ao tamanho da janela pelo
navegador, e um parágrafo tem usualmente apenas uma marca de início de fim. A
marca de terminação pode ser implícita;
• Vários tipos de ênfase em caracteres;
• Referências de hipertexto: uma referência de HTML é definida por uma URL. No
exemplo acima, a referência (< A HREF= ”http: //www.w3.org/hypertext/WWW/TheProject”> (World Wide Web) </A>)
conectará o usuário a home page na www.w3.org usando o protocolo http. A única
parte da referência que os navegadores fazem visível ao leitor é (World Wide Web)
que pode ser selecionada (com uma mouse) para ativar a referência.
• Listas;
Página 48
Padrões para troca de documentos hipermídia
• Texto pré-formatado;
• Facilidades para buscas simples.
3.12.1 HTML+
HTML+ [Ragget, 1993a, Ragget, 1993b, Ragget, 1994a] é um super conjunto de
HTML que acrescenta características extras tais como figuras, tabelas e formulários. Ele
também generaliza estruturas presentes em HTML para facilitar o processo de conversão
entre HTML+ e outros formatos. HTML+ formaliza o conceito de listas aninhadas
proporcionando vários tipos de estilos de listas. Listas desordenadas também são
implementadas o que permite a definição de elementos de menus.
3.13 O Ambiente de Apresentação para Objetos Multimídia
(Presentation Environment for Multimedia Objects PREMO)
O Ambiente de Apresentação para Objetos Multimídia (PREMO) está sendo
desenvolvido pelo ISO/IEC JTC1/SC24 [ISO, 1994b] [ISO, 1994a] [Stenzel at al., 1994]
que é o grupo responsável por processamento de imagens e computer graphics. O
objetivo principal do projeto é adicionar apresentação e interação com mais de um meio.
PREMO deve, consequentemente, fazer uso de padrões para um único meio em
desenvolvimento pela ISO. Como PREMO lida principalmente com os aspectos de
representação de multimídia, ele é distinto e deve ser usado em conjunto com outros
padrões da ISO/IEC tais como ODA, HyTime e MHEG [Herman et al., 1994, Stenzel et
al.,1994].
PREMO está sendo projetado para atender as necessidades das novas aplicações
multimídia e novas funcionalidades adicionadas às modernas estações de trabalho. Ele é
uma arquitetura aberta que proporciona facilidades para configuração, extensões e
customização dependendo dos requisitos das aplicações, e deve ser capaz de atender a
uma larga gama de usos desde CAD/CAM até realidade virtual.
PREMO é orientado a objetos e baseado no modelo proposto pelo Object
Management Group (OMG) [Digital Equipment et al., 1993]. Isto deve fazê-lo portável e
usável em um ambiente heterogêneo distribuído.
O trabalho do grupo que desenvolve PREMO ainda não está muito avançado e
nãoé esperado que ele se torne padrão internacional antes de 1997.
3.14 Considerações finais
Esta seção apresentou uma introdução a um conjunto de padrões existentes e
emergentes para a estruturação de aplicações hipermídia. Desses, os mais importantes são
SGML, HyTime, ODA, PREMO e Acrobat. Exceto pelo último, todos são padrões “de
jure”; Acrobat é um produto comercial que está sendo proposto como um padrão “de
facto”.
Página 48
Padrões para troca de documentos hipermídia
O interesse em SGML e HyTime tem crescido recentemente, especialmente entre
editoras (onde SGML foi originado), enquanto que parece haver uma queda de interesse
por ODA.
PREMO ainda não é bem conhecido e não parece claro que um novo padrão com
grandes partes que se sobrepõem a MHEG, HyTime e outros padrões gráficos seja
necessário a curto prazo.
Embora Acrobat seja um produto relativamente recente, o fato dele ser baseado
em tecnologias bem conhecidas o faz um forte candidato a se tornar um padrão como é a
intenção da Adobe.
Um outro importante padrão emergente “de jure” é MHEG que será apresentado
na próxima seção.
4. MHEG
O Multimedia and Hypermedia information coding Expert Group (MHEG) é o
grupo de trabalho da ISO WG12. O padrão em desenvolvimento pelo grupo é a
representação codificada de base de objetos de informação multimídia e hipermídia em
forma final”.
O trabalho sendo desenvolvido pelo MHEG sobre o título geral de Tecnologia da
Informação - Codificação de Informação Multimídia e Hipermídia1 tem como objetivo a
produção dos seguintes documentos:
• 13522-1 MHEG Object Representation, Base notation (ASN.1): este é o documento
em estágio de desenvolvimento mais avançado tendo atingido o status de Padrão
Internacional recentemente e atualmente está em fase de publicação. No texto,
exceto onde explicitamente dito, estaremos fazendo referência a este documento;
• 13522-2 Notação alternativa (SGML): este documento proverá uma notação
alternativa a ASN.1 e deve ter maior desenvolvimento após o término da fase
anterior.
• 13522-3 Extensões a MHEG para apoio a linguagens de “scripting”: ainda em
fase inicial de desenvolvimento uma vez que inicialmente MHEG não previa a
inclusão de linguagens de scripting. Não há ainda data prevista para que MHEG 3 se
torne padrão sendo que em junho de 96 foi votado o “rascunho de padrão
internacional” (Draft of International Standard)
• 13522-4 Procedimentos de Registro para Identificadores de Formato: também em
estágio adiantado de desenvolvimento. MHEG 4 foi aprovado recentemente como
Padrão Internacional e encontra-se em fase de publicação;
1
Information Technology - Coding of Multimedia and Hypermedia Information
Página 48
Padrões para troca de documentos hipermídia
• 13522-5 Sub-conjunto de MHEG para implementação em nível básico: este é um
item novo adicionado ao trabalho do MHEG em novembro de 1994. MHEG 5
define um subconjunto de MHEG para ser aplicado a aplicações cliente/servidor
“simples” tais como vídeo sob demanda e sistemas folheadores (browsing systems).
MHEG 5 deve se tornar Padrão Internacional em 1997 ou 1998. Em maio de 96 foi
votado o “rascunho de padrão internacional” (Draft of International Standard).
• 13522-6 Apoio para aplicações interativas avançadas (Support for Enhanced
Interactive Applications): é o documento mais recente da série tendo o seu
desenvolvimento começado em novembro de 1995.
As seções seguintes apresentarão em detalhe os trabalhos desenvolvidos pelo
MHEG, em particular as partes 1 (que já se tornou Padrão Internacional) e 5 (que cobre
um bom número de aplicações). Além de apresentar as características do Padrão, o texto
procura mostrar as dificuldades e a evolução do processo de se definir um padrão
Internacional para a troca de objeto hipermídia.
Uma introdução mais detalhada a MHEG pode ser encontrada em [Casey1994],
[Colaitis e Bertrand1994], [Markey 1991] e [Meyer-Boudnik e Effelsberg1995].
4.1 Objetivos do projeto
O padrão MHEG tem como foco os aspectos genéricos de estruturação dos
objetos multimídia e leva em consideração os seguintes requisitos:
• Uso em sistemas com recursos mínimos;
• Interatividade e sincronização multimídia;
• Apresentação em tempo real;
• Troca de objetos em tempo real;
• Representação em forma final o que significa que os objetos MHEG não precisam
de nenhum processamento extra para serem apresentados uma vez que a troca foi
efetuada. Por exemplo, uma referência MHEG (link) uma vez transmitido será
executada sem que seja preciso fazer nenhuma computação extra uma vez que tanto
a origem como os destinos da referência devem estar completamente resolvidos.
4.1.1 Adequação de MHEG
Por definir objetos em forma final, MHEG não é adequado para sistemas de
autoria altamente interativos. No entanto, ele é particularmente adequado para sistemas de
leitura e navegação como por exemplo, a apresentação de uma coleção de objetos
multimídia armazenados em um CD-ROM.
Página 48
Padrões para troca de documentos hipermídia
4.2 Escopo de MHEG
A Figura 17 mostra o escopo de MHEG, ilustrando os diferentes níveis onde a
troca de informação multimídia ocorre:
Troca
Aplicação
Script
APL
Aplicação
S
Script
M
Obj. MHEG
Escopo de MHEG
Obj. MHEG
OBJ. não
MHEG
elementos
outro PROT.
C
OBJ. não
MHEG
EOP
elementos
outro PROT.
Figura 17 Escopo de MHEG
1. Nível da aplicação: as infinitas variedades que podem existir no nível de aplicação a
faz inadequada para padronização. Uma aplicação pode, no entanto, usar o nível de
script para trocar objetos.
2. Nível de script: MHEG 1 não faz nenhum esforço para padronizar linguagens de
scripting. Linguagens de scripting devem usar o nível inferior (MHEG) para trocar
objetos. Os trabalhos do grupo que desenvolve MHEG-3 (Extensões a MHEG para
apoio a linguagens de “scripting”) ainda não atingiram um estágio que permita
uma completa avaliação deste nível. A grande dificuldade imposta por relações
complexas definidas por linguagens de scripting está na sua potencial ineficiência
uma fez que objetos podem ter que ser computados em tempo de execução para sua
apresentação.
3. Nível dos objetos MHEG: aqui está o escopo de MHEG que será discutido em
detalhes nas próximas seções.
4. Nível de objetos não MHEG: este é o nível onde padrões para troca “monomídia”
são usados. MHEG faz uso de outros padrões neste nível (por exemplo, JPEG e
MPEG).
Página 48
Padrões para troca de documentos hipermídia
5. Nível de elementos de outros protocolos: este é o nível mais baixo de troca.
Protocolos para mensagens e reconhecimentos (acknowledgments) estão incluídos
neste nível
6. Representação de objetos: Objetos são codificados usando ASN.1 ou SGML
(representação alternativa).
4.3 Estrutura de MHEG
MHEG é baseado em três conceitos:
1. Classes MHEG, Objetos MHEG: as classes MHEG representam os objetos que
são trocado de fato. O sistema de run-time pode criar qualquer número de
objetos de uma classe de objetos dada;
2. Objetos de run-time (rt-objects): Os objetos de run-time não são trocados entre
aplicações, mas a sua existência é disparada dinamicamente pelo sistema de runtime. Objetos criados de subclasses de Model (Figura 18) podem ser reusados
em contextos diferentes. Cada vez que um objeto deste tipo é criado, uma
instância de um objeto run-time é definida. Por exemplo, uma imagem pode ser
trocada uma vez mas usada diversas vezes com diferentes atributos tais como
tamanho e cor. Elementos em um composto run-time são chamados sockets.
3. Canais (channels): canais definem espaços lógicos no qual objetos run-time são
apresentados.
O padrão define uma representação baseada em objetos de entidades multimídia,
com uma árvore de herança simples conforme mostrado na Figura 18. A hierarquia define
a herança de dados mas não define métodos de classe consequentemente não se pode dizer
que a representação é orientada a objetos. MHEG também não força nem define um
modelo orientado a objetos para um sistema MHEG; não é feita nenhuma suposição a
MH-OBJECT>
ACTION
LINK
MODEL>
SCRIPT
COMPONENT>
CONTENT
MULTIPLEXED CONTENT
COMPOSITE
CONTAINER
DESCRIPTOR
Figura 18 Hierarquia de Classes de MHEG
Página 48
Padrões para troca de documentos hipermídia
respeito da representação interna de sistemas.
4.4 Evolução de MHEG
Análise da evolução da hierarquia de classes sofrida por MHEG desde o início de
seus trabalhos até a versão corrente dá uma idéia das dificuldades encontradas pelo grupo
na definição do padrão.
A Figura 19 mostra a hierarquia proposta em uma das primeiras versões do padrão
em 1991. A Figura 20 mostra as hierarquias em 1992 e a atual. A hierarquia proposta em
91 mostra uma quantidade exagerada de detalhes, quase ao nível de um conjunto de
widgets gráficos, definindo formas de entrada e saída. A estrutura era também muito
limitadora no sentido que os tipos de dados eram definidos na hierarquia (texto, gráficos
(graphics), imagens, audio e audiovisual), conseqüentemente a estrutura básica teria que
ser alterada para a adição de uma mídia nova.
A hierarquia de 1992 (Figura 20 esquerda) era mais limpa mas os tipos de mídias
suportados ainda eram pré definidos proporcionando pouco suporte para extensões.
Página 48
Padrões para troca de documentos hipermídia
MH-OBJECT
ALL-OBJECT>
CONTENT>
OUPUT-CONTENT>
TEXT CONTENT
GRAPHICS CONTENT
STILL PICTURE CONTENT
AUDIO CONTENT
AUDIO VISUAL SEQUENCE CONTENT
INPUT-CONTENT>
ACTION-BUTTON CONTENT
STAY-ON BUTTON CONTENT
ON-OFF BUTTON CONTENT
MENU-SELECTION
MULTIPLE SELECTION
CHARACTER STRING BY TYPING CONTENT
CHARACTER STRING ON SELECTION CONTENT
MULTIPLE CHARACTER STRING CONTENT>
FORM FILLING CONTENT
MULTIPLE CHARACTER STRING ON SELECTION CONTENT
LOCATION CONTENT
NUMERICAL VALUE CONTENT
PROJECTOR
OUTPUT PROJECTOR>
AREA PROJECTOR>
TEXT PROJECTOR
GRAPHICS PROJECTOR
STILL PICTURE PROJECTOR
AUDIO PROJECTOR
AUDIO VISUAL SEQUENCE PROJECTOR
INPUT PROJECTOR>
ACTION-BUTTON PROJECTOR
STAY-ON PROJECTOR
ON-OFF PROJECTOR
MENU SELECTION PROJECTOR
MULTIPLE SELECTION PROJECTOR
CHARACTER STRING PROJECTOR>
CHARACTER STRING BY TYPING PROJECTOR
CHARACTER STRING ON SELECTION PROJECTOR
MULTIPLE CHARACTER STRING PROJECTOR>
FORM FILLING PROJECTOR
MULTIPLE CHARACTER STRING ON SELECTION PROJECTOR
LOCATION PROJECTOR
NUMERICAL VALUE PROJECTOR
COMPOSITE>
COMPOSITE OUTPUT
COMPOSITE INPUT
INTERACTIVE
NULL
Figura 19 Hierarquia de classes MHEG em 1991
Página 48
Padrões para troca de documentos hipermídia
A hierarquia atual (Figura 20 direita) é muito mais genérica, proporcionando um
arcabouço básico para extensões: os tipos de mídia não estão definidos na hierarquia mas
incluidos em subclasses de Model desta forma, qualquer mídia nova será apenas uma nova
instância de uma classe de conteúdo (Content). O modelo é suficientemente abstrato para
MH-OBJECT>
HEADER
CONTENT>
MEDIA CONTENT>
TEXT CONTENT
GRAPHICS CONTENT
STILL CONTENT
AUDIO CONTENT
AUDIO VISUAL CONTENT
NUMERIC CONTENT
PROJECTOR
SPATIAL PROJECTOR
TEXT PROJECTOR
GRAPHICS PROJECTOR
STILL PROJECTOR
AUDIO PROJECTOR
AUDIO VISUAL PROJECTOR
NUMERIC PROJECTOR
PROJECTABLE
INTERACTION
LINK
COMPOSITE
NULL
CLOCK
MH-OBJECT>
ACTION
LINK
MODEL
SCRIPT
COMPONENT>
CONTENT
MULTIPLEXED
CONTENT
COMPOSITE
CONTAINER
DESCRIPTOR
Figura 20 Hierarquia de classes MHEG em 92 (e) e atual (d)
lidar com a adição de novas mídias no nível de troca.
Um ponto importante a ser visto da evolução é que os conceitos gradualmente se
tornam mais claros: as primeiras hierarquias faziam uma mistura entre troca e
apresentação resultando em um formato menos poderoso, com foco (indesejável) na
implementação.
Uma outra evolução importante foi a definição de objetos de run-time (rt-objects).
As primeiras versões de MHEG não faziam referência explícita a objetos de run-time,
embora sua existência tivesse que ser inferida para a implementação de qualquer sistema
de run-time.
A ausência de objetos de run-time explícitos levava também a uma confusão na
identificação dos objetos (naming) quando havia uma tentativa de reusar conteúdos. Por
exemplo, se uma foto era usada mais de uma vez durante uma apresentação, não havia
como fazer a distinção das instâncias específicas uma vez que a identificação (o nome)
usado era de um objeto modelo na hierarquia atual. Não era claro, consequentemente,
como uma aplicação faria distinção entre as diversas instâncias; isto poderia requerer, no
pior caso, uma indesejável troca por mais de uma vez do objeto modelo (o conteúdo) de
tal forma que a aplicação poderia fazer a distinção em termos do modelo. A simples
inclusão no modelo dos objetos de run-time foi suficiente para resolver o problema de
inconsistência de nomes.
Página 48
Padrões para troca de documentos hipermídia
4.5 Nível de abstração em MHEG
A medida que a hierarquia de classes se tornava mais abstrata durante o processo
de evolução de MHEG, a modelagem de aplicações “simples” se tornava mais difícil. Esta
é uma evolução natural quando um padrão está sendo definido. Como um compromisso
entre generalidade e poder de expressão, um padrão para trocas tem que ser capaz de
representar diferentes formatos e, consequentemente, ser tão genérico quanto possível
mas tendo o cuidado de fazer com que o resultado seja de difícil uso (ou mesmo não
usável).
A decisão sobre o que deve ser incluído em um padrão internacional é geralmente
difícil. Se o padrão for muito genérico, é praticamente impossível definir um nível mínimo
compatibilidade. Se, por outro lado, ele tentar incluir as necessidades de apenas um
pequeno grupo de aplicações, pode ser difícil a acomodação de extensões futuras.
Estas dificuldades levaram a discussões, mesmo entre os membros do MHEG,
sobre como definir uma aplicação simples como um hipertexto. Sendo um padrão com o
objetivo de ser genérico, MHEG não trata de problemas apresentados por aplicações
específicas (como hipertexto) e consequentemente pode ser muito pesado para alguns
casos.
No caso específico de hipertexto, trechos de texto podem ser usados como
âncoras para referências. Para ter um suporte adequado para este tipo de abstração,
MHEG deveria suportar diretamente pelo menos o conceito de âncora ou mecanismo
similar. No entanto, se pensarmos em hipermídia em geral, ao invés de simplesmente
hipertexto, o suporte proporcionado é suficientemente genérico já que qualquer objeto de
run-time pode ser “selecionável” e usado como uma âncora. No caso de um documento
com texto apenas no qual seja desejável que toda palavra seja uma âncora, é necessário
definir cada palavra como um objeto individual, o que pode provar que o enfoque
genérico não possui uma boa performance neste nível de granularidade.
A decisão sobre qual deveria ser o escopo de MHEG e consequentemente a
definição de seu nível de abstração foi uma das tarefas mais difíceis do grupo e as dúvidas
se refletiram nas mudanças sofridas na hierarquia de classes. Apesar destas dificuldades, há
pelo menos um projeto —GLASS Globally Accessible ServiceS [Fokus, 1995] [Focus,
1996]— que prova que a estrutura proposta por MHEG 1 é suficientemente poderosa
para modelar hipertexto/hipermídia de modo geral.
Uma evolução natural de MHEG é a mesma sofrida pelo modelo Dexter (discutido
na seção 3.1): o padrão inicialmente proposto é suficientemente genérico para acomodar
todos os usos mas não é suficientemente eficiente para usos específicos. Para lidar com
algumas aplicações especializadas (e comuns) é esperado que sub conjuntos de MHEG
sejam definidos. O próprio MHEG percebeu esta necessidade e propôs a definição de
MHEG 5 que será discutido na seção 4.7.
Página 48
Padrões para troca de documentos hipermídia
4.6 As classes de MHEG
Esta seção apresentará uma visão superficial das classes definidas em MHEG 1.
Para uma melhor análise dos detalhes de cada classe é recomendável que o leitor se
reporte ao texto da ISO.
4.6.1 A classe Mh-Object
“A classe mh-Object provê a identificação dos objetos MHEG”
A classe mh-object é uma classe abstrata, ou seja, não há instâncias de objetos
dessa classe mas apenas de suas subclasses. Mh-objeto fornece (por herança) a
identificação de todos os objetos na hierarquia de MHEG. A identificação inclui a
identificação do padrão e sua versão, a identificação da classe do objeto, o identificador
MHEG e informações genéricas do objeto (nome, dono, versão, data, palavras-chave,
copyright, licença e comentários).
4.6.2 A classe Action
“A classe action define objetos que são usados dentro de um link
para descrever o efeito deste link”
Um objeto da classe Action provê as seguintes informações:
• Indicador de sincronização: indica o tipo de processamento de ações sincronizadas.
Os valores podem ser paralelo ou serial.
• Conjunto alvo: um atributo opcional que especifica os alvos das ações.
• Número de performances: especifica o número de performances das ações
sincronizadas. O valor default é um.
• Ações sincronizadas: o conjunto de ações elementares e/ou objetos de ação.
As ações podem ser aninhadas e nesse caso o alvo default das ações aninhadas é o
definido para o bloco mais externo. O atributo de sincronização é aplicado a todas as
ações. O padrão também prevê a existência de ações macro para otimizar a codificação
de ações complexas ou freqüentemente usadas. Macros também permitem o
compartilhamento de reuso de comportamentos complexos.
Página 48
Padrões para troca de documentos hipermídia
4.6.3 A classe Link
“A classe Link define uma estrutura que define um conjunto de
relacionamentos”
Em MHEG os links são usados em duas situações:
1. Em objetos complexos onde podem definir o posicionamento dos objeto no
tempo e espaço;
2. De forma independente para permitir a criação e modificação de relações
genéricas inter-objetos.
Os links em MHEG têm as seguintes características:
• Direcional: conectam um objeto a um ou mais objetos;
• Condicional: as ações definidas são processadas apenas se as condições são
satisfeitas. As condições podem ser baseadas em atributos dinâmicos do objeto
origem ou em objetos externos.
Todas as condições são devem ser aplicadas ao mesmo tempo e a especificação da
aplicação deve levar em consideração os efeitos de testes seqüenciais. A estrutura de um
link pode ser vista na Figura 21. Pela figura nota-se que o link é formado basicamente por
duas partes: uma condição do link que especifica as condições lógicas que dever ser
satisfeitas para o disparo do link; e o efeito do link que contém as ações a serem
executadas após o disparo do link. A condição do link pode envolver combinações
complexas de disparo mas todas as condições devem estar resolvidas, ou seja, a origem da
condição é conhecida a partir do momento que o objeto é decodificado.
Página 48
Padrões para troca de documentos hipermídia
LINK
condição do link
condição de disparo
Operador
lógico
Operador
lógico
cond
link
cond
cond
disparo link
restrição
resrestri- trição ção
efeito do link
resolução de macros
objeto de ação
Figura 21 Estrutura de um objeto Link
4.6.4 A classe Model
A classe model, assim com Mh-Object, é uma classe abstrata. As subclasses de
modelo são as classes que definem os objetos que são trocados e que podem ser
instanciados (possivelmente mais de uma vez) usando a classe como molde. Por exemplo,
um objeto da classe Content que contém uma imagem é trocado uma vez mas pode ser
instanciado mais de uma vez (criando-se diferentes rt-objets) em diversos contextos. A
criação de um rt-object não afeta o objeto modelo.
4.6.5 A classe Script
“A classe script define um invólucro para relacionamentos
complexos entre objetos MHEG e objetos de run-time, definidos por
uma linguagem não MHEG”
As linguagens de scripting originalmente não faziam parte do projeto de MHEG.
Linguagens externas para especificar comportamentos complexos deveriam ser usados e
Página 48
Padrões para troca de documentos hipermídia
atualmente MHEG 3 está em desenvolvimento para prover scripting dentro do escopo de
MHEG. No entanto, desde as versões iniciais, MHEG prove facilidades para a troca de
objetos de script. Um objeto de script contém:
• A classificação do script: um parâmetro opcional que pode ser usado para
identificar o tipo do dado de script;
• Um gancho de script: quer permite a identificação da linguagem externa de scripting
usada. O gancho de script é composto de uma identificação da linguagem de
scripting e uma descrição da linguagem;
• Os dados do script: a inclusão ou referência ao script propriamente dito.
4.6.6 A classe Descriptor
“A classe Descriptor define a estrutura para a troca de informações
de recursos sobre um conjunto de outros objetos intercambiados”
A classe Descriptor permite a descrição dos objetos trocados de modo que
sistemas de apresentação sejam capazes de adaptar os recursos disponíveis aos requisitos
para um determinado objeto, e também permitir à máquina MHEG determinar se ela é
capaz ou não de prosseguir com uma apresentação. No entanto, não é exigido que todo
objeto trocado tenha um objeto descritor correspondente.
4.6.7 A classe Component
“A classe Component modela objetos que podem ser trocados dentro
ou através de aplicações usuárias”
A classe Component é uma classe abstrata herdada pelas classes Content e
Composite. Como uma classe abstrata ela não contém informação e está presente na
hierarquia para facilitar a organização de suas subclasses.
4.6.8 A classe Content
“A classe Content contem ou faz referência à representação
codificada de informação de uma determinada mídia em conjunto
com um conjunto de parâmetros com as informações necessária para
a apresentação deste conteúdo”
A classe Content é uma subclasse de Model e consequentemente suas instâncias
são trocadas por todas as aplicações e usadas como “molde” para a criação de objetos do
tipo rt-componente. Um objeto do tipo conteúdo contém as seguintes informações:
• Classificação dos dados: parâmetro opcional que provê ajuda para a determinação
do tipo do mídia do dado “percebido”.
Página 48
Padrões para troca de documentos hipermídia
• Percepção original do conteúdo: parâmetro opcional que provê as
“percepções”espaciais e temporais originais (por exemplo, tamanho original,
duração, etc.), e a “percepção” original audível (volume e limites do volume).
• Gancho do conteúdo: o mecanismo de codificação/decodificação usado para
representar os dados.
• Dados de conteúdo: inclusão ou referência para os dados reais.
4.6.9 A classe Multiplexed Content
“A classe Multiplexed Content contém, ou faz referência referência à
representação codificada de informação de mídia multiplexada em
conjunto com a descrição de cada stream multiplexado”
Um objeto da classe Multiplexed Content contem toda informação de um objeto
do tipo content e adicionalmente contém uma lista ordenada que descreve os streams dos
dados multiplexados.
4.6.10 A classe Composite
“A classe Composite provê suporte para a associação de objetos
multimídia e hipermídia”
Um objeto composto contém as seguintes informações:
• Comportamento do composto: uma descrição do sequenciamento e
interrelações entre elementos do composto, incluindo o comportamento inicial.
• O número de elementos na composição;
• A lista de elementos da composição: uma lista de todos os componentes irmãos
na composição.
Um elemento de um composto de run-time (rt-composite) é chamado de socket e
pode ser: vazio, quando um rt-componente nulo está ligado a ele; apresentável
(presentable) quando um rt-componente ou rt-conteudo-multiplexado está ligado a ele; ou
ainda estrutural quando a ligação é com um rt-composto.
4.6.11 A classe Container
“A classe Container proporciona suporte para o reagrupamento de
dados multimídia e hipermídia como o objetivo de intercambiá-los
como um único conjunto”
O objetivo do reagrupamento de objetos é facilitar a troca pois um conjunto de
objetos pode ser transferido dentro de um único objeto garantindo assim que todos os
Página 48
Padrões para troca de documentos hipermídia
componentes estarão incluidos. Um objeto da classe Container não é um “objeto modelo”
consequentemente, não é possível a criação de instâncias de run-time. O objetivo de um
objeto do tipo Container é ser usado exclusivamente como uma “embalagem” para o
transporte de vários objetos como um único “pacote”.
4.6.12 Comentários finais
MHEG representa a primeira tentativa de desenvolvimento de um padrão
internacional para cuidar dos requisitos genéricos para a troca de documentos mutimídia.
Como um padrão que não é voltado para uma aplicação particular, MHEG é muito
genérico e espera-se que diversos subconjuntos voltados para aplicações específias
apareçam (como é o caso de MHEG 5).
MHEG define objetos em forma final, o que o faz eficiente para lidar com
documentos que não requerem mudanças mas inadequado para aplicações de autoria
interativas. Como seus objetos não requerem processamento para serem apresentados, é
possível a implementação de sistemas muito eficientes.
O padrão não define o look-and-feel de uma apresentação. Novamente isto leva a
uma troca eficiente de informação pelo fato do volume de dados a ser transmitido é
reduzido; a forma como os dados serão apresentados podem ser definidos no ponto de
destino. Por outro lado, este enfoque leva a dificuldades se o documento for, por exemplo,
um trabalho artístico onde a forma de apresentação é tão ou mais importante que os dados
em si. Para estes tipos de uso, é possível que MHEG venha a ser utilizado em conjunto
com outros padrões como PREMO.
4.7 MHEG-5
O documento 13522-5 Sub-conjunto de MHEG para implementação em nível
básico (ou simplesmente MHEG 5), foi adicionado ao trabalho do MHEG em novembro
de 1994 com o objetivo de especificar “requisitos para um conjunto básico de objetos
MHEG” [MHEG,1995b] [MHEG,1995c] a serem aplicados ao domínio das “aplicações
multimídia simples”, tais como vídeo sob demanda, aplicações de navegação e
folheadores.
MHEG 5 define um subconjunto de MHEG 1 através da especialização de algumas
de suas classes. As classes definidas definidas por MHEG 5 estão em um nível mais baixo
de abstração em relação a MHEG 1 (de forma similar às primeiras versões deste) e
consequentemente limitam as aplicações que podem ser definidas. No entanto, a autoria de
documentos ou objetos dentro de seu escopo fica bastante simplificada.
As seções seguintes apresentam a estrutura de MHEG 5 e seu relacionamento com
MHEG 1.
4.7.1 Estrutura de MHEG 5
Uma aplicação MHEG consiste em um conjunto de “cenas” das quais apenas uma
é a cena raiz (root) e de um conjunto de referências (links) usados para a implementação
Página 48
Padrões para troca de documentos hipermídia
de comportamentos compartilhados entre as cenas [MHEG,1995b] (Figura 22). As figuras
23 a 25 mostram detalhes da Figura 22.
composição
Raiz
Herança
relação 0-n
Grupo
Aplicação
Ingrediente
Cena
Figura 22 Diagrama do topo da hierarquia de classes de MHEG 5
Uma cena é um agrupamento lógico de objetos que devem ser usado em conjunto.
Uma cena é formada de ingredientes, que podem conter (dentre outros) os seguintes
elementos (Figura 23):
• Presentables (objetos “apresentáveis”) que são os objetos “perceptíveis” tais como
texto, audio, bitmaps, retângulos, hipertextos, etc.
• Listas usadas para agrupar logicamente conjuntos de presentables;
• Fontes usadas por objetos textuais;
• Links que especificam o comportamento (efeito) que ocorrerá quando determinado
evento ocorre;
• Variáveis que podem ser usadas para armazenar o estado de outro ingrediente da
cena. As variáveis podem ser usadas para trocar dados com entidades externas como
um servidor por exemplo.
Página 48
Padrões para troca de documentos hipermídia
Ingrediente
Link
Procedimento
Variável
Apresentável
(Presentable)
Fonte
Palete
Forma de
Cursor
Ação
Figura 23 Hierarquia das subclasses de Ingrediente
Administrador de tokens
Token Manager
Grupo de Molduras
Template Group
Grupo de Tokens
TokenGroup
Presentable
Visível
visible
Audio
Stream
Vídeo
Lista
Ação
RTGraphics
Figura 24 Estrutura das subclasses de Presentable
Página 48
Padrões para troca de documentos hipermídia
Visível
Passível de
interação
Texto
Bitmap
Vídeo
RTGraphics
Linha de arte
Retângulo
Hipertexto
Campo de entrada
Barra deslizante
Button
Hotspot
Botão de pressão
Botão de escolha
Figura 25 Diagrama das subclasses da classe Visível (Visible)
4.7.2 Relacionamento de MHEG 5 com MHEG 1
O relacionamento entre as classes definidas por MHEG 5 e as definidas por
MHEG 1 podem ser vistas graficamente na Figura 26. MHEG 5 limita os tipos de
conteúdos e de compostos que componentes podem especificar ao mesmo tempo que cria
tipos de objetos de uso freqüente em apresentações multimídia tais como botões de
escolha e de pressão, retângulos, textos e vídeos simplificando o trabalho do autor. Um
sistema de run-time para MHEG 5 também tem sua implementação simplificada e os
processos otimizados devido ao poucos tipos de objetos que é obrigado a reconhecer e
manipular.
Página 48
Padrões para troca de documentos hipermídia
Mh-Object
Model
Script
Container
Descriptor
Component
MHEG 1
composite
content
Raiz
MHEG 5
Grupo
Aplicação
Ingrediente
Cena
...
Action
Link
Figura 26 Relacionamento entre MHEG 5 e MHEG 1
4.8 MHEG vs HyTime vs PREMO
Como foi dito anteriormente, devido ao fato de MHEG lidar como objetos em
forma final, seu uso não é adequado para uso em ferramentas de autoria onde as
alterações são frequentes. MHEG também não oferece um nível alto de abstração para
autores uma vez que eficiência foi escolhida sobre poder de expressão por seus autores.
Conseqüentemente, uma possível interação entre os três padrões em desenvolvimento pela
ISO pode ser vista na figura (adaptada de [ISO, 1994a]).
Os pontos fortes e fracos dos três padrões podem ser analisados da seguinte
forma:
• PREMO é muito voltado para implementação, e é capaz de permitir aos usuários a
definição do look-and-feel de uma apresentação mas não oferece as facilidades para
troca de objetos multimídia oferecida por MHEG.
• MHEG oferece mecanismos eficientes para a troca de documentos multimídia em
forma final. Estes mecanismos são bastantes genéricos mas caso seja necessário
definir exatamente como o documento deve ser apresentado, MHEG pode se provar
inadequado. Se os documentos são criados para serem navegados (browsed) os
mecanismos de MHEG não apenas poderosos mas flexíveis também de modo a
Página 48
Padrões para troca de documentos hipermídia
permitir customizações locais onde o leitor pode especificar como os componentes
estruturais devem ser apresentados. Este é o enfoque adotado pela WWW com
sucesso.
• HyTime, em parte por ser um padrão mais maduro que os anteriores proporciona os
mecanismos mais genéricos para autoria de multimídia. HyTime possui mecanismos
mais genéricos para a manipulação de tempo e espaço (através das batutas e varas
de condão) que os existentes nos outros padrões. No entanto, devido a estas
flexibilidades é muito difícil a implementação de uma máquina HyTime eficiente.
APLICAÇÕES
MODELAGEM
Máquina
MHEG
Máquina
HyTime
PREMO
Nível de apresentação
de PREMO
Hardware
Figura 27 Relacionamento entre HyTime, MHEG e PREMO
Uma forma possível de interação entre os padrões é através do uso de ferramentas
de autoria baseadas em HyTime e que explorem a sua flexibilidade e alto nível de
abstração. O resultado da processo de autoria seria convertido em objetos MHEG que
podem ser eficientemente transmitidos e apresentados através de uma máquina cuja
implementação é baseada em PREMO.
Uma outra alternativa, é a utilização de Java [Sun, 1996] para a implemetação da
máquina MHEG. Java está se tornando o padrão “de facto” para aplicações da WWW e já
existem sugestões para a integração da máquina virtual de Java com MHEG 5.
Página 48
Padrões para troca de documentos hipermídia
5. Referências
[Adie, 1994]
C. Adie. Network Access to Multimedia Information. Request for
Comments (RFC) 1614, Maio 1994.
[Apple, 1993]
Apple Corporation.Inside Macintosh: QuickTime, Apple Technical
Library. Addison Wesley Publishing Company, 1993.
[Barry, 1994]
Jeff Barry. The HyperText Markup Language (HTML) and the World
Wide Web: Raising ASCII Text to a New Level of Usability The PublicAccess Computer Systems Review 5, 5(5):5–62, 1994.
[Berners-Lee, 1993] Dick C. A. Bulterman. Retrieving (JPEG) Pictures in Portable
Hypermedia Documents. Em Tat-Seng Chua and Tosiyasu L. Kunii,
editor, Multimedia Modeling, páginas 217–226. World Scientific,
Novembro 1993. Proceedings da The First International Conference on
Multi-Media Modeling.
[Brown, 1989]
Heather Brown. Standards for Structured Documents. The Computer
Journal, 32(6):505–514, 1989.
[Buford, 1994]
John F. Koegel Buford. Multimedia Systems. Prentice Hall, 1994.
[Bulterman et al., 1991] Dick C. A. Bulterman. Retrieving (JPEG) Pictures Em Portable
Hypermedia Documents. Em Tat-Seng Chua and Tosiyasu L. Kunii,
editor, Multimedia Modeling, páginas 217–226. World Scientific,
Novembro 1991. Proceedings of the First International Conference on
Multi-Media Modeling.
[Casey1994]
Thomas Casey. MHEG, Scripts, and Standardisation Issues. Em
Wolfgand Hersnrer and Frank Kappe, editores, Multimedia/Hypermedia
Em Open Distributed Environments (Proceedings of the Eurographics
Symposium), páginas 29–43, Graz, Austria, June 1994.
[CCITT, 1988] CCITT. Recommendation X.500: The Directory — Overview of
Concepts, Models and Service. International Telecommunications
Union, Place des Nations 1211 Geneva, Switzerland, 1988.
[Colaitis e Bertrand1994] Colaitis and F. Bertrand. The MHEG Standard: Principles and
Examples of Applications. Em Wolfgand Hersnrer and Frank Kappe,
editores, Multimedia/Hypermedia Em Open Distributed Environments
(Proceedings of the Eurographics Symposium), páginas 3–17, Graz,
Austria, Junho 1994.
[Focus, 1996]
GMD Fokus. Fokus Home Page. http://www.focus.gmd.de.
[Fokus, 1995]
GMD Fokus. GLASS - Globally Accessible ServiceS — An Interactive
Distributed Multimedia Presentation System. Disponível em URL:
http://www.focus.gmd.de/ovma, 1995.
Página 48
Padrões para troca de documentos hipermídia
[Fujitsu and TechnoTeacher, 1995] Open Systems Solutions Fujitsu and TechnoTeacher
Inc. HyTime Application Development Guide, Maio 1995.
[Goldfarb, 1990] The SGML Handbook. Clarendon Press, 1990.
[Hardman et al., 1993] Lynda Hardman, Dick C. A. Bulterman, e Guido van Rossum.The
Amsterdam Hypermedia Model: Extending Hypertext to Support Real
Multimedia . Hypermedia, 5(1):47–69, 1993.
[Hardman et al., 1994] Lynda Hardman, Dick C. A. Bulterman, and Guido van Rossum.
The Amsterdam Hypermedia Model: Adding Time e Context to the
Dexter Model. Communications of the ACM, 37(2):50–63, Feb 1994.
[Herman et al., 1994] I. Herman, G. S. Carsonn, J. Davy, D. A. Duce, P. J. W. ten Hagen,
W. T. Hewitt, K. Kansy, B. J. Lurvey, R. Puk, G. J. Reynolds, e H.
Stenzel. PREMO: An ISO Standard for a Presentation Environment for
Multimedia Objects. Em Proceedings of the ACM Multimedia'94
Conference. ACM Press, Oct 1994. Disponível por anonymous ftp.
[ISO, 1986a]
ISO. ISO-8879: Formal Public Identifiers, 1986.
[ISO, 1988]
ISO. ISO 9069 Information Processing — SGML Support Facilities —
SGML Document Interchange Format (SDIF), Sep 1988.
[ISO, 1989]
ISO. ISO 8613 Information Processing - Text and Office Systems Office Document Architecture (ODA) and Interchange Format. 1989.
[ISO, 1992]
ISO. ISO/IEC DIS 10744 Information Technology
Hypermedia/Time-Based Structuring Language (HyTime), 1992.
[ISO, 1994a]
ISO. Information Processing Systems — Computer Graphics and
ImageProcessing — Presentation Environments for Multimedia Objects
(PREMO) ISO/IEC JTC1/SC24 Comittee Draft 14478-4.1, Julho 1994
Part 1: Fundamentals of Premo.
[ISO, 1994b]
ISO. PREMO Multimedia Systems Services Working Draft ISO/IEC
14478-4.2/199x(E), 1994. Second Draft setembro 1994.
—
[Koegel at all., 1993] John Koegel, Lloyd W. Rutledge, John L. Rutledge, and Can
Keskin. HyOctane: A HyTime Engine for an MMIS. In Proceedings of
ACM Multimedia 93, Aug 1993. Disponível por ftp anônimo.
[Leggett e Schnase, 1994] John J. Leggett e John L. Schnase. Viewing Dexter with Open
Eyes. Communications of the ACM, 37(2):76–86, Fevereiro 1994.
Editado por Kaj Gronbaek e Randall H. Trigg.
[Markey 1991]
Brian D. Markey. Emerging Hypermedia Standards - Hypermedia
Marketplace Prepares for HyTime and MHEG Em Usenix Summer
Conference Proceedings, páginas 59–74, Nashville, Tenessee, junho
1991.
[Meyer-Boudnik e Effelsberg1995] Thomas Meyer-Boudnik and Wolfgang Effelsberg.
MHEG Explained. IEEE Multimedia, 2(1):26–38, 1995.
Página 48
Padrões para troca de documentos hipermídia
[MHEG,1995b] Multimedia and Hypermedia Information Coding Expert Group MHEG
International Standard ISO/IEC DIS 13522-1 — Information
Technology - Coding of Multimedia and Hypermedia Information
Objects - Part 5: MHEG Subset for Base Level Implementation.
Technical report, ISO/IEC JTC1/SC29/WG12, Agosto 1995. Working
Draft 13522-5.
[MHEG,1995c] Multimedia and Hypermedia Information Coding Expert Group MHEG
International Standard ISO/IEC DIS 13522-1 — Information
Technology - Coding of Multimedia and Hypermedia Information
Objects - Part 5: MHEG Subset for Base Level Implementation.
Technical report, ISO/IEC JTC1/SC29/WG12, Dezembro 1995. Draft
of International Standard 13522-5.
[Newcomb at al., 1991] Steven R. Newcomb, Neil A. Kipp, e Victoria T. Newcomb. The
``HyTime'' Hypermedia/Time-based Document Structuring Language.
Communications of the ACM, 34(11):67–82, Novembro 1991.
[Newcomb, 1991] Steven R. Newcomb. Standard Music Description Language complies
with hypermedia standard. IEEE Computer, 24(7):76–79, July 1991.
[Ragget, 1993a] David Raggett. HTML+ (Hypertext markup format). Internet Draft
disponível em URL: ftp: //ftp.nisc.sri.com/draftragget-www-html-00.ps, Julho 1993.
[Ragget, 1993b] David Raggett. HTML+ (Hypertext markup language). A proposed
standard for light weight presentation independentdelivery format for
browsing and querying information across the Internet, Julho 1993.
[Raggett, 1994a] David Raggett A Review of the HTML+ Document Format. Em
Proceedings of the First International Conference on the World-Wide
Web (W3). Elsevier Science, 1994. Também disponível em
http://www1.cern.ch/Papers/WWW94/dsr.ps.
[Stenzel et al.,1994] H. Stenzel, G. S. Carson, I. Herman, and K. Kansy.PREMO: An
Architecture for Presentation of Multimedia Objects in an Open
Environment. Em Wolfgand Hersnrer e Frank Kappe, editores,
Multimedia/Hypermedia
in
Open
Distributed
Environments
(Proceedings of the Eurographics Symposium), páginas 77–96, Graz,
Austria, Junho 1994.
[Sun, 1996]
Sun Microsystems. Java Home Page em http://java.sun.com.
[van Herwijnen, 1994] Eric van Herwijnen. Pratical SGML. Kluer Academic Publishers,
1994.
Página 48
Download

Padrões para troca de documentos Hipermídia