• Nenhum resultado encontrado

G.1.3 Quantificadores de Caminhos

3.4 METAMODELOS

Conforme anteriormente mencionado, a metodologia proposta é divi- dida em quatro fases: Modelagem, Transformação, Verificação e Diagnós- tico/Correção. As fases de Modelagem e Transformação fazem uso de dois metamodelos, que serão apresentados nessa seção.

O primeiro a ser apresentado é o metamodelo da linguagem de especi- ficação de propriedades LP, desenvolvida neste trabalho, para que o projetista possa especificar as propriedades desejadas na fase de Modelagem.

Na sequência é apresentando o metamodelo chamado Grafo Interme- diário (GI), usado na fase de Transformação. O uso de GI tem por objetivo facilitar a inclusão de novas linguagens hipermídia na metodologia proposta, e dar suporte ao uso de uma abordagem baseada em redução de grafos, a ser apresentada. Mais detalhes sobre o uso do GI serão apresentados no Capítulo 4.

Metamodelo LP - (Linguagem de Propriedades)

Visando ter uma representação de propriedades em uma linguagem simplificada, nesse trabalho definiu-se a linguagem para especificação de pro- priedades LP. Essa linguagem é usada pelo Editor de Propriedades (EP), para representar os comportamentos definidos pelo projetista.

A Figura 16 apresenta a representação do metamodelo da linguagem LP, onde pode-se observar a existência de dois elementos: PropertyList e Property.

No metamodelo LP, o elemento PropertyList possui como atri- buto um contador de propriedades Size e uma referência para uma lista de elementos do tipo Property. O elemento Property possui uma lista de atributos das propriedades especificadas pelo projetista usando o EP:

• Type - identifica o tipo de propriedade, que pode ser: Intra-mídia, Inter-mídia, Causal e Espacial;

• BehaviorId - identificador numérico da propriedade;

• BehaviorDesc - descrição textual da finalidade da propriedade; • Media1 - identificador textual de uma mídia cujo comportamento

será verificado;

• Media2 - identificador textual de uma segunda mídia cujo compor- tamento será verificado, caso envolva duas mídias;

• MediaN - identificador textual de uma segunda mídia cujo compor- tamento será verificado, caso envolva N mídias;

• Event - evento observado, caso seja uma propriedade causal; • Action - ação observada, caso seja uma propriedade causal; e • Time - tempo explícito a ser observado.

Na versão atual, o editor EP permite especificar apenas propriedades entre duas mídias. O Código 20 apresenta o exemplo de um arquivo de pro- priedades em conformidade com o metamodelo apresentado na Figura 16. Código 20 Propriedades em LP

1 <PropertyList size="1">

2 <Property Type="Intra" BehaviorId="3" 3 BehaviorDesc="sempre termina"

4 media1="Shoes"/>

5 <Property Type="Spatial" BehaviorId="30"

6 BehaviorDesc="sobreposicao temporal e espacial" 7 media1="Icone" media2="Background" time="5"/> 8 </PropertyList>

Metamodelo GI - (Grafo Intermediário)

O GI é um grafo dirigido G = (V, A), onde V representa uma lista de vértices de mídias (vídeo, áudio, imagem ...). O conjunto de arestas A é um subconjunto de produtos cartesianos Condition × Action onde Condition = {0onBegin0,0onEnd0,0onAbort0,0onResume0,0onPause0,0onSelection0} e Action= {0Start0,0Stop0,0Abort0,0Pause0,0NaturalEnd0,0Resume0}.

No GI âncoras são representadas por arestas, não há representação de eventos do tipo atribuição e eventos associados a mais de um elo, do tipo mχn. No que tange à estrutura de armazenamento de GI, optou-se pelo uso de uma lista de adjacências, onde cada vértice vi∈ V (i = 1, 2, ..., k) possui um

conjunto de arestas de entrada ain(vi) ⊂ A e um conjunto de arestas de saída

aout(vi) ⊂ A.

Em um grafo, uma aresta de entrada em um vértice é uma aresta de saída em outro vértice, conforme ilustrado na Figura 17.

Figura 17 – Aresta GI

Visando armazenar em uma mesma estrutura o modelo da aplicação e as propriedades a serem verificadas, optou-se por criar uma versão estendida de GI. Nessa versão estendida, as propriedades a serem verificadas são adici- onadas na estrutura do grafo. A Figura 18 apresenta o metamodelo referente à versão GI+LP.

Nesse metamodelo, o elemento raiz é chamado Intermediate-

Graphe possui três elementos filhos:

• VertexList - é uma lista de elementos do tipo Vertex, ou seja, armazena todos os vértices existentes no grafo;

• NestedContext - armazena informações referentes a aninhamentos existentes na aplicação hipermídia; e

• PropertyList - ponteiro para o metamodelo LP.

Cada elemento Vertex possui um conjunto de arestas de entrada e saída, representadas, respectivamente, pelos elementos IncomingEdge-

Liste OutputEdgeList. Os vértices de saída são classificados de acordo com as condições causais que levam à sua ativação. Para tal, adotou-se a es- trutura OutputEdgeListType. Algo semelhante ocorre nos vértices de entrada, que são classificados de acordo com as ações geradas por sua ativa- ção. Para tal, adotou-se a estrutura IncomingEdgeListType. Por fim, os elementos OutputEdge e IncomingEdge possuem informações refe- rentes às ligações causais entre os vértices.

É importante destacar que o metamodelo do GI apresentado é uma versão estendida do GI, pois adiciona o metamodelo LP. Em MDE, versões estendidas que unem dois metamodelos são conhecidas como supermetamo- delos.

Figura 18 – GI+LP Metamodelo

O player Ginga utiliza um grafo chamado HTG (Hypermedia Tempo- ral Graph)em sua estrutura interna. Embora GI e HTG (COSTA, 2010) sejam grafos, eles não possuem a mesma estrutura. No IG, os vértices representam mídias, e as arestas representam condições e ações. No HTG cada vértice representa uma ação em uma determinada mídia, e as arestas representam as condições que quando satisfeitas ativam as ações.

Existem outros trabalhos voltados a edição e apresentação de aplica- ções hipermídia que também fazem uso de grafos.

O trabalho de (YU; XIANG, 1997) apresenta um ambiente de apresen- tação e autoria para sistemas hipermídia. Este sistema associa dinamicamente questões espaciais com questões temporais. Para representar as relações ele faz uso de um grafo dirigido chamado MRG (Media Relation Graph), onde os nodos representam as mídias, e as ligações representam as relações entre as mídias.

Em (ROSSUM et al., 1993) é apresentado um editor e ambiente de apresentação chamado CMIFed. Este ambiente permite ao autor especificar

quando e o que é apresentado, utilizando vários canais de saída simultâneos. A ferramenta de apresentação usa um algoritmo simples, mas eficaz para sa- tisfazer restrições de tempo. O algoritmo começa pela construção de um grafo dirigido de dependências. Os nós no grafo correspondem aos pontos iniciais e finais das mídias, as arestas representam relações de temporização entre dois nós.