Descrevendo um Modelo de Informação de Vídeo através de uma Linguagem de Especificação Orientada a Objetos

June 8, 2017 | Autor: A. Vasconcelos | Categoria: Multimedia
Share Embed


Descrição do Produto

Descrevendo um Modelo de Informação de Vídeo através de uma Linguagem de Especificação Orientada a Objetos Maria Salete Marcon Gomes Vaz 1 Alexandre Marcos Lins de Vasconcelos Fernando da Fonseca de Souza Ana Carolina Salgado E-mail: {msm,amlv,fdfd,acs}@di.ufpe.br Depto. de Informática - CCEN - UFPE Av. Prof. Luiz Freire s/n - Cidade Universitária 50740-540 - Recife - PE - Brasil Fone(s): +55 (81) 271-8430 Resumo Este artigo apresenta a descrição do modelo de informação de vídeo do sistema multimídia OVID (Object-oriented Vídeo Information Database) [OT97]. Tal descrição é apresentada na linguagem de especificação MooZ (Modular object-oriented Z) [MCS93], uma extensão orientada a objetos de Z [Spi92]. O desenvolvimento da especificação formal tem como objetivo melhorar o entendimento de tal modelo, mostrando a utilização de metadados (dados descritivos) para descrever cenas de vídeos.

1 Introdução Nos últimos anos muita ênfase tem sido dada ao desenvolvimento de sistemas que manipulam dados multimídia, tais como imagens, gráficos, vídeo, entre outros. O tratamento destes tipos de dados, em Sistemas de Banco de Dados tradicionais [Dat95] tem sido problemático devido à complexidade de suas estruturas e à análise de grande conjunto de dados armazenados [FSN95]. No caso particular de um dado do tipo vídeo, a manipulação do mesmo apresenta dificuldades relacionadas à definição e interpretação de seu conteúdo. É difícil reconhecer os objetos contidos em uma imagem (cena) como também determinar e representar o relacionamento entre esses objetos, uma vez que estes relacionamentos formam estruturas que variam muito de objeto para objeto. Além do mais, um mesmo objeto pode ser descrito de formas diferentes, dependendo do ponto de vista de quem o estiver descrevendo. O sistema OVID [OT97] possibilita a descrição do conteúdo de objetos do tipo vídeo através de metadados. O sistema possui um mecanismo que permite o compartilhamento de metadados entre objetos. Esse sistema é baseado em um modelo de dados orientado a objetos, o que permite maior flexibilidade para definição de tipos, além de apresentar maior poder de modelagem devido ao mecanismo de herança de metadados. Com o objetivo de estudar o modelo de dados de OVID, fizemos uso de uma linguagem de especificação formal para apresentar os aspectos relevantes de tal modelo. O uso de técnicas formais [FF93] proporciona um meio para que os aspectos de consistência, completude e exatidão possam ser avaliados sistematicamente. Problemas de consistência, tais como ambigüidades, podem ser descobertos e corrigidos. O rigor da descrição matemática força o especificador a pensar mais cuidadosamente no problema que tem em mãos. A especificação formal de um sistema pode ser utilizada para verificar sua corretude, melhorar seu entendimento, bem como auxiliar sua documentação. Assim, a principal contribuição deste artigo é 1

Analista de Informação pela Universidade Estadual de Ponta Grossa - PR e estudante de Doutorado pela Universidade Federal de Pernambuco - Recife - PE

apresentar a descrição do modelo OVID através da sua formalização na linguagem de especificação MooZ, a fim de melhorar o seu entendimento e auxiliar na documentação do mesmo. A maioria dos sistemas multimídia não são descritos de maneira formal. O modelo de dados de OVID foi especificado inicialmente usando uma notação matemática [OT97]. Porém, tal especificação não era orientada a objetos. Assim, vamos usar MooZ [MCS93], que permitirá especificar o modelo mais naturalmente, visto que OVID também é orientado a objetos. Adicionalmente, a especificação servirá como um estudo de caso para a linguagem de especificação, o qual será muito importante no processo de validação dos conceitos de MooZ. Além desta seção introdutória, este artigo é composto por mais seis seções. A Seção 2, Trabalhos Relacionados, apresenta alguns trabalhos correlatos. A Seção 3, Modelos de Informação Multimídia, introduz os aspectos inerentes aos modelos multimídia. A Seção 4, OVID - Um Modelo de Informação Multimídia, apresenta aspectos inerentes ao modelo OVID. A Seção 5, A Linguagem de Especificação MooZ, apresenta a linguagem de especificação a ser utilizada na formalização. A Seção 6, Especificação Formal do Modelo de Dados OVID, apresenta a principal contribuição do artigo: uma especificação formal, em MooZ, do modelo de dados OVID. A Seção 7, Conclusões e Trabalhos Futuros, finaliza esse trabalho apontando as perspectivas de trabalhos futuros. 2 Trabalhos Relacionados Existem vários sistemas que permitem a definição de metadados. Dentre eles, destacamos os que seguem. O PROBE [OM88] possui resumos alfanuméricos que descrevem imagens, em particular figuras geométricas. Esses resumos são armazenados no banco de dados e são utilizados para satisfazer uma consulta e determinar a imagem resultante. PROBE provê mecanismos de consulta similares aos dos bancos de dados tradicionais, porém não permite a interpretação e recuperação de imagens complexas. O sistema PSQL (Pictorial Structured Query Language) [RFS88], do mesmo modo que o sistema PROBE, possui resumos alfanuméricos que descrevem imagens espaciais para banco de dados geográficos. O sistema permite que o usuário faça manipulações, através de funções e operadores especiais, diretamente no banco de dados. Essas manipulações são feitas em domínios específicos denominados pontos, segmentos de linha e regiões, além dos domínios padrões, os quais são inteiros, reais e strings. O sistema VIMSYS (Visual Information Management System) [BPJ93] gerencia informações visuais para reconhecimento de faces. Ao usuário é dada a habilidade da consulta baseada em exemplos através de uma ferramenta que permite gerar consultas utilizando porções de imagens, múltiplas imagens, grau de variação de similaridade de imagens e descrições alfanuméricas padrões. Os trabalhos aqui relacionados são avaliados sob o ponto de vista do uso de metadados. A descrição que será apresentada na Seção 6 mostrará os aspectos inerentes a metadados no sistema OVID. 3 Modelo de Informação Multimídia O principal aspecto para a implementação e uso de um sistema de informação multimídia é o seu modelo de dados. Os modelos convencionais [Dat95] apresentam recursos como uniformidade, orientação a registros, itens de dados pequenos, campos atômicos, transações curtas e esquemas conceituais estáticos, que permitem correspondência simples com os elementos de uma aplicação. Os bancos de dados multimídia [MW94] necessitam de novos recursos em seus modelos de dados, além dos já apresentados pelos modelos de dados convencionais. Por exemplo, na recuperação de informações multimídia existem dificuldades para definir e interpretar exatamente o conteúdo do dado, visto que é difícil reconhecer os objetos contidos em um dado complexo. Os operadores de comparação alfa-numéricos e métodos de acesso, em que se baseiam as linguagens de consultas convencionais não se aplicam à maioria das classes de dados multimídia devido à dificuldade em se fazer o casamento exato de padrões de dados multimídia, em função da complexidade de suas estruturas; dificuldade em efetuar pesquisa baseada em conteúdo, resultante do grande conjunto de dados

2

que devem ser analisados; e o fato de que, quando a pesquisa baseada em conteúdo é possível, a mesma não pode ser feita por razões de desempenho [FSN95]. A forma mais simples de se implementar um banco de dados multimídia é utilizar o modelo relacional [Dat95]. Neste caso, dados descritivos de mídias diferentes podem ser definidos através de relações. Já nos modelos orientados a objetos [Kim90], ao contrário de definir relações, como é o caso dos banco de dados relacionais, classes e objetos são definidos. Esses objetos se relacionam via hierarquia de classes. Alguns sistemas de informação multimídia utilizam esta abordagem com diferentes tipos de hierarquia de classes. Esses sistemas oferecem ótimas possibilidades de navegação de informações e apresentação flexível. 4 OVID - Um Modelo de Informação Multimídia O sistema OVID trata os objetos do tipo vídeo como unidades centrais. As cenas de vídeo correspondem a uma seqüência contínua de frames de vídeo. As descrições (dados descritivos) de intervalos de cenas de vídeo correspondem aos objetos do tipo vídeo. Essas descrições são armazenadas em separado do vídeo propriamente dito. Os objetos do tipo vídeo consistem de um identificador, um ou mais intervalos (cenas de vídeo) delimitados por um par contendo os identificadores dos frames inicial (F1) e final (Fn) de cada cena e de um conjunto de pares atributo/valor que descrevem as cenas de vídeo. Esses pares de atributo/valor podem ser adicionados a um objeto a qualquer momento. A Figura 1 mostra um banco de dados exemplo. Através desse banco de dados pode-se notar que o valor de um atributo tanto pode ser um dado simples como um dado complexo. Por exemplo, no objeto o1 o dado simples Águia é o valor do atributo bicho e o objeto o2 (dado complexo) é o valor do atributo local. Outro aspecto importante a se notar é que um intervalo pode ser constituído de vários subintervalos representando cenas significativas. Dependendo da pessoa que estiver descrevendo a cena de vídeo correspondente, os intervalos significativos podem variar. Em OVID, existe o conceito de hierarquia de generalização de valores que permite definir uma estrutura de valores para os objetos do tipo vídeo. Esta hierarquia deve ser definida pelo usuário e corresponde a um lattice [Sco76] L = (A, Is_a, TOP, BOTTOM), onde A corresponde ao conjunto de valores, Is_a corresponde à relação de generalização destes valores, TOP denota um valor desconhecido e BOTTOM denota um valor indefinido. O1

O2

bicho: O1 Águia local: ação: {Voar, Alimentar-se}

ambiente: Montanha

i1 i1a

i2 i1b

Figura 1: Banco de Dados Exemplo

A Figura 2 mostra um exemplo de hierarquia de generalização de valores atômicos para o banco de dados exemplo. Neste exemplo, o valor BOTTOM é omitido. Na hierarquia de generalização, as seguintes propriedades (entre outras) se mantém: Ave herda atributos de Animal, Águia herda atributos de Ave e de Animal. Na terminologia de OVID, é dito que Ave Is_a Animal, Águia Is_a Ave e Águia Is_a Animal.

3

Através de uma herança de inclusão de intervalos, OVID permite que informações de um objeto A sejam herdadas por um objeto B, desde que os intervalos de B sejam definidos sobre alguma porção dos intervalos de A e os atributos estejam incluídos em um conjunto de atributos herdáveis, o qual é definido pelo usuário. Pombo Animal Ave Águia Beija-Flor TOP Montanha Habitat Aquático Doméstico Figura 2: Hierarquia de Generalização de Valores Atômicos

Ao contrário de herança em orientação a objetos, a herança de inclusão de intervalos ocorre entre instâncias (objetos) e não entre classes, visto que todos os objetos do tipo vídeo pertencem a uma mesma classe., chamada Objeto. Os objetos, em OVID, são estruturados, visto que os dados descritivos são associados a intervalos de cenas de vídeo. Esses dados descrevem intervalos de um objeto multimídia. Assim, as informações multimídia são recuperadas baseadas na descrição do seu conteúdo e não na comparação (casamento exato) com o dado multimídia. Por exemplo, dados dois objetos, cujos identificadores são oid1 e oid2, respectivamente, os mesmos podem descrever um mesmo intervalo de vídeo. Porém, vale salientar que as seqüências de pares atributo/valor não são necessariamente as mesmas, visto que as descrições podem ter sido feitas por usuários distintos. Esses usuários podem ter diferentes pontos de vista sobre o intervalo de vídeo em questão. As operações básicas do modelo de dados do Sistema OVID são: Avaliação, Projeção, Merge e Overlap. A operação Avaliação é usada, por exemplo, em consultas baseadas nos valores dos atributos, os quais podem ser definidos ou herdados em objetos armazenados no banco de dados. A operação de Projeção permite a decomposição de objetos em objetos menores. A operação Merge cria um novo objeto a partir de dois objetos existentes, tal que os atributos comuns a ambos os objetos são herdados pelo novo objeto. Esta operação consiste em editar cenas de vídeo unindo os intervalos de vídeo e os dados descritivos de ambos os objetos em um novo objeto. A operação Overlap cria um novo objeto a partir de dois objetos existentes, onde o intervalo deste novo objeto corresponde a interseção dos intervalos dos outros dois objetos. 5 A Linguagem de Especificação MooZ MooZ [MCS93] é uma linguagem de especificação orientada a objetos, baseada na linguagem de especificação Z [Spi92]. Em MooZ, uma especificação consiste de um conjunto de definições de classes relacionadas em uma dada hierarquia. A definição de uma classe (Ver Figura 3) é uma especificação Z estruturada com elementos básicos do modelo (estado, estado inicial e operações). A definição de uma classe genérica pode ser obtida através da introdução de given sets como parâmetros. Given sets são objetos do mundo real que são introduzidos em uma especificação de maneira não-construtiva, ou seja, sem que suas estruturas internas sejam determinadas. Given sets podem servir para fins de abstração ou de generalização. A definição de uma classe é delimitada pelas palavras-chave Class e EndClass. Os given sets são declarados na cláusula givensets. A cláusula superclasses introduz as definições das superclasses, permitindo tanto herança simples como múltipla. As cláusulas public e private controlam visibilidade. A cláusula public é adequada para descrever o comportamento de um objeto com respeito ao mundo externo, ou seja especifica quais as definições públicas de uma classe. A cláusula private serve para descrever definições auxiliares (privadas) a uma

4

classe. Somente as definições públicas de uma classe podem ser passadas como mensagens para suas instâncias. Class < Nome_Classe > givensets < Lista_Tipos > superclasses < Lista_referências_classes > < definições_auxiliares > private < lista_definições > or public < lista_definições > constants < lista_descrições_axiomáticas > < definições_auxiliares > state < esquemas_anônimos> or < restrições > < definições_auxiliares > initialstates < esquema > < definições_auxiliares > operations < lista_definições > EndClass < Nome_Classe > Figura 3: Forma Geral de uma Classe

A cláusula constants introduz constantes definidas axiomaticamente. A cláusula state introduz os componentes de estado de uma classe, os quais estendem ou redefinem os componentes de estado definidos em uma superclasse. A introdução de componentes e invariantes de estado é feita através de esquemas anônimos. Os esquemas na cláusula initialstates definem o estado inicial da classe. A cláusula operations contém os esquemas e operações semânticas que definem as operações da classe juntamente com definições auxiliares, se for o caso. Uma operação definida através de um esquema não pode ser aplicada como uma função, devido ao fato de que esquemas são entidades sintáticas. Para especificar uma operação e mais tarde aplicá-la ao estado de um objeto (argumento implícito), e possivelmente a alguns argumentos (explícitos). MooZ permite a definição de um tipo especial de descrição axiomática, a qual é chamada de operação semântica. 6 Especificação Formal do Modelo de Dados de OVID A especificação formal do modelo de dados OVID contém as classes VALOR, METADADO, OUTRO_VALOR, ATRIBUTO_VALOR, OBJETO, VAL_ATÔMICO, VAL_CONJUNTO, INTERVALOS e INTERVALO na sua especificação. A classe VALOR agrupa diferentes tipos de valores, os quais são definidos nas subclasses METADADO e OUTRO_VALOR. A classe METADADO define uma seqüência de pares atributo/valor que descrevem um objeto do tipo vídeo. A classe ATRIBUTO_VALOR especifica um par de atributo/valor. A classe OUTRO_VALOR agrupa os valores do tipo OBJETO, VAL_ATÔMICO e VAL_CONJUNTO, os quais são definidos como subclasses. A classe OBJETO define um objeto do tipo vídeo, o qual possui, além do identificador de objeto, os dados descritivos (METADADO) que descrevem um conjunto de intervalos significativos (INTERVALOS) associados ao objeto. A classe VAL_ATÔMICO especifica valores atômicos. A classe VAL_CONJUNTO especifica valores do tipo conjunto. Finalmente, a classe INTERVALOS especifica conjuntos de intervalos de vídeo. Por sua vez, cada um dos intervalos é especificado pela classe INTERVALO. Por restrições de espaço, neste artigo apresentamos apenas a especificação das classes VALOR, METADADO, OBJETO e INTERVALOS. As classes restantes podem ser vistas em [Mar97].

5

6.1 Classe VALOR Esta classe é abstrata, pois não possui instâncias diretas. VALOR agrupa as definições comuns às suas subclasses, que neste caso consiste apenas da definição do relacionamento Is_a, definido com base numa hierarquia de generalização de valores (Ver Seção 4). Class VALOR Givensets ESTADO O estado abstrato tem um componente valor do tipo ESTADO, o qual é definido como um givenset. Nas classes herdeiras, este estado é instanciado para representar estados concretos. state valor: ESTADO Operations Is_a: (valor:ESTADO) x VALOR →

B

A operação abstrata Is_a é definida como uma operação semântica e em cada classe herdeira a mesma será instanciada, a fim de representar a operação concreta correspondente. Operações semânticas permitem definir funções de forma similar a descrições axiomáticas. No entanto, ao contrário das descrições axiomáticas, os componentes de estado dos objetos, sobre os quais as operações semânticas são aplicadas, não necessitam ser passados como parâmetros explícitos. No caso de Is_a, a operação recebe dois valores, onde um deles é um parâmetro implícito e o outro é um parâmetro formal, retornando um valor booleano. EndClass VALOR 6.2 Classe METADADO A classe METADADO é herdeira da classe VALOR e define um dado descritivo (seqüência de pares atributo/valor que descrevem um objeto do tipo vídeo). As operações dessa classe são as seguintes: Ret_Atributos, Valor_do_Atrib e a redefinição de Is_a (introduzida na classe VALOR), as quais são explicadas abaixo. Class METADADO Superclasses VALOR(ESTADO\ESTADO_META) ESTADO_META == Seq ATRIBUTO_VALOR O estado da classe METADADO tem um componente valor, o qual é uma seqüência de pares ATRIBUTO_VALOR. Este estado é obtido instanciando-se o valor abstrato ESTADO, definido como um givenset na classe VALOR. operations Ret_Atributos: (valor: ESTADO_META) →

PATRIBUTO

∃v: METADADO | v valor = valor • v Ret_Atributos = {i: 1..valor len • valor(i) Ret_Atributo} A operação Ret_Atributos retorna todos os atributos de um dado descritivo. Nessa operação, para cada par atributo/valor da seqüência que forma o estado da classe, a operação Ret_Atributo da classe ATRIBUTO_VALOR é aplicada. Note que a “mensagem” len enviada a um objeto do tipo seqüência, retorna o tamanho da seqüência. Valor_do_Atrib: (valor:ESTADO_META) x ATRIBUTO → OUTRO_VALOR

∀a: ATRIBUTO • ∃v: METADADO; n: N | v valor = valor ∧ (valor n) Ret_Atributo = a • v Valor_do_Atrib a = (valor n) Ret_Valor 6

Dado um atributo de um determinado dado descritivo, a operação Valor_do_Atrib retorna o valor correspondente ao atributo. Note que o valor do atributo é do tipo OUTRO_VALOR, o qual é uma subclasse de VALOR que exclui METADADO, ou seja, OVID não permite que o valor de um atributo seja do tipo METADADO. Is_a: (valor:ESTADO_META) x METADADO → B ∀v2: METADADO • ∃v1 : METADADO | v1 valor = valor • ∀a: ATRIBUTO | a ∈ v2 Ret_Atributos • v1 Is_a v2 ⇔ (v1 Valor_do_Atrib a) Is_a (v2 Valor_do_Atrib a) A operação Is_a especifica a hierarquia de generalização entre dois dados descritivos. Dados dois dados descritivos A e B, a relação de generalização entre esses dados é mantida se para todos os atributos de B, os valores correspondentes a esses atributos mantêm a relação de generalização com os valores dos mesmos atributos em A. EndClass METADADO 6.3 Classe OBJETO A classe Objeto define um objeto do tipo vídeo. As operações desta classe são: Ret_Atributos, Valor_do_Atrib, Is_a, Avaliar, Merge, Overlap, Lim_Min_Sup e Lim_Max_Inf, as quais são explicadas a seguir. Class OBJETO givensets ID superclasses OUTRO_VALOR(ESTADO_OV\ESTADO_O) ESTADO_O oid: ID intervalo : INTERVALOS dados_desc: METADADO O estado de um objeto tem três componentes (Ver Seção 4), os quais são: oid, intervalo e dados_desc. O componente oid é o identificador do objeto; intervalo é um conjunto finito de intervalos; e dados_desc é uma n_tupla (METADADO) de pares do tipo (atributo,valor), definidos na classe ATRIBUTO_VALOR. operations

P

Ret_Atributos: (valor: ESTADO_O) → ATRIBUTO ∃o: OBJETO | o valor = valor • o Ret_Atributos = valor.dados_desc Ret_Atributos A operação Ret_Atributos retorna todos os atributos dos dados descritivos de um objeto. Para tanto a operação Ret_Atributos da classe METADADO é utilizada.

Valor_do_Atrib: (valor:ESTADO_O) x ATRIBUTO → OUTRO_VALOR

∀a: ATRIBUTO | a ∈ valor.dado_desc Ret_Atributos • ∃o: OBJETO | o valor = valor • o Valor_do_Atrib a = (valor.dado_desc) Valor_do_Atrib a

7

A operação Valor_do_Atrib aplicada a um objeto do tipo vídeo e a um atributo, retorna o valor correspondente àquele atributo no dado descritivo do objeto. Para tanto, a operação Valor_do_Atrib da classe METADADO é utilizada. Is_a: (valor:ESTADO_O) x OBJETO → B ∀o2: OBJETO • ∃ o1: OBJETO | o1 valor = valor • o1 Is_a o2 ⇔ (o1 valor.dado_desc) Is_a (o2 valor.dado_desc) A operação Is_a é uma redefinição da operação de mesmo nome introduzida na classe VALOR de forma abstrata. Esta operação especifica a hierarquia de generalização de valores do tipo OBJETO. Dados dois objetos A e B, os mesmos mantêm um relacionamento de generalização de objetos, ou seja A Is_a B, se os dados descritivos do objeto A mantêm um relacionamento de generalização com os dados descritivos do objeto B. Para tanto, a operação de mesmo nome da classe METADADO é utilizada. Avaliar: (valor:ESTADO_O) x OBJETO x PATRIBUTO → OBJETO ∀o2: OBJETO; A: PATRIBUTO • ∃ o1, o’1: OBJETO | o1 valor = valor ∧ ((o1 valor).intervalo) Incl (o2 valor).intervalo)) • o1 Avaliar (o2,A) = o’1 ∧ (o’1 valor).oid = (o1 valor).oid ∧ (o’1 valor).intervalo = (o1 valor).intervalo ∧ o’1 Ret_Atributos = (o1 Ret_Atributos) ∪ ((o2 Ret_Atributos) ∩ A) ∧ ∀a:ATRIBUTO | a ∈ (o’1 Ret_Atributos) • (a ∈ (o1 Ret_Atributos)) ⇒ (o’1 valor).dados_desc Valor_do_Atrib(a) = (o1 valor).dados_desc Valor_do_Atrib(a) ∧ (a ∈ ((o2 Ret_Atributos) ∩ A) \ (o1 Ret_Atributos)) ⇒ (o’1 valor).dados_desc Valor_do_Atrib(a) = (o2 valor).dados_desc Valor_do_Atrib(a) A operação Avaliar (Ver Avaliação na Seção 4.1) é sobrecarregada e possui duas definições, as quais retornam um objeto calculado dinamicamente, não sendo o mesmo armazenado no banco de dados. A primeira definição é especificada acima e aplica-se a dois objetos o1 e o2 e um conjunto de atributos herdáveis. O objeto o1 herda os atributos/valores de o2, desde que os atributos de o2 estejam contidos no conjunto A de atributos herdáveis. O intervalo definido em o1 tem que estar incluído no intervalo de o2. Os valores dos atributos de o1 são estabelecidos como segue. Se os atributos foram definidos em o1, então os seus valores permanecem os mesmos. Se os atributos foram definidos em o2 e não aparecem em o1, então os valores são obtidos a partir de o2. A segunda definição funciona de forma similar e aplica-se a um objeto, um conjunto de objetos e um conjunto de atributos herdáveis. Por restrições de espaço, não apresentamos a especificação desta definição. A mesma pode ser encontrada em [Mar97].

Merge : (valor:ESTADO_O) x OBJETO → OBJETO

∀o2: OBJETO • ∃ o,o1: OBJETO; oid: ID | o1 valor = valor • o1 Merge o2 = o ∧ (o valor).oid = oid ∧

(o valor).intervalo = (o1 valor).intervalo Merge (o2 valor).intervalo ∧ o Ret_Atributos = (o1 Ret_Atributos) ∩ (o2 Ret_Atributos) ∧ ∀a: ATRIBUTO | a ∈ (o Ret_Atributos) • (o valor).dados_desc Valor_do_Atrib(a) = 8 (o1 valor).dados_desc Valor_do_Atrib(a) Lim_Min_Sup (o2 valor).dados_desc Valor_do_Atrib(a)

A operação Merge cria um novo objeto a partir de dois objetos já existentes, tal que os atributos que são comuns a esses objetos são herdados pelo novo objeto e o conjunto de intervalos do novo objeto é formado pelo merge dos intervalos dos objetos existentes (Ver Seção 6.4). O valor correspondente a cada atributo do novo objeto é dado pelo limite mínimo superior entre os valores do atributo nos objetos existentes. Intuitivamente, esta operação extrai as informações comuns dos objetos, e cria um novo objeto com essas informações. Esta operação corresponde, por exemplo, à edição de filmes, juntamente com seus dados descritivos, em companhias cinematográficas. Overlap: (valor:ESTADO_O) x OBJETO→ OBJETO ∀o2: OBJETO • ∃o,o1: OBJETO; oid: ID | o1 valor = valor • o1 Overlap o2 = o ∧ (o valor).oid = oid ∧ (o valor).intervalo = (o1 valor).intervalo Overlap (o2 valor).intervalo ∧ o Ret_Atributos = (o1 Ret_Atributos) ∪ (o2 Ret_Atributos) ∧ ∀a: ATRIBUTO | a ∈ o Ret_Atributos • (o valor).dados_desc Valor_do_Atrib(a) = (o1 valor).dados_desc Valor_do_Atrib(a) Lim_Max_Inf (o2 valor).dados_desc Valor_do_Atrib(a) A operação Overlap entre dois objetos existentes cria um novo objeto, tal que o intervalo do novo objeto é o overlap dos intervalos dos objetos existentes (Ver Seção 6.4). Os atributos do novo objeto são dados pela união dos atributos dos objetos existentes e o valor correspondente a cada um desses atributos é dado pelo limite máximo inferior entre os valores do atributo nos objetos existentes. É assumido que se o atributo não existir em um dos objetos, o valor TOP (não conhecido) é retornado para o mesmo.

Lim_Min_Sup: (valor:ESTADO_O) x OBJETO→ OBJETO

∀o2: OBJETO • ∃ o1: OBJETO | o1 valor = valor • o1 Lim_Min_Sup o2 = o1 Merge o2 A operação Lim_Min_Sup aplicada a dois valores do tipo objeto corresponde ao merge desses objetos.

Lim_Max_Inf: (valor:ESTADO_O) x OBJETO→ OBJETO

∀o2: OBJETO • ∃ o1: OBJETO | o1 valor = valor • o1 Lim_Max_Inf o2 = o1 Overlap o2 A operação Lim_Max_Inf aplicada a dois valores do tipo objeto corresponde a operação Overlap desses objetos. EndClass OBJETO 6.4 Classe INTERVALOS Um intervalo de vídeo, descrito por um objeto do tipo vídeo, corresponde a um conjunto de uma ou mais cenas significativas. As operações definidas sobre cada conjunto de intervalos são: Incl, Projeção, Merge e Overlap, as quais são explicadas a seguir. Class INTERVALOS State 9

interv : ESTADO_I ESTADO_I == PINTERVALO O estado de um intervalo corresponde a um conjunto de intervalos. Cada intervalo, definido na classe INTERVALO, representa uma seqüência de frames delimitada entre um frame inicial e um frame final. Operations

Incl: (interv: ESTADO_I) x INTERVALOS → B

∀I2: INTERVALOS • ∃I1: INTERVALOS | I1 interv = interv • I1 Incl I2 ⇔ ∀i: INTERVALO | i Pertence (I1 interv) • ∃i’: INTERVALO | i’ Pertence (I2 interv) • i Sub_Int i’ A operação Incl especifica o relacionamento de inclusão entre dois conjuntos de intervalos. Para um conjunto de intervalos I1 estar incluído num conjunto de intervalos I2, é necessário que todos os intervalos de I1 sejam subintervalos de algum intervalo de I2.

Projeção:(interv:ESTADO_I) x OBJETO x

∀o: OBJETO; A:

P ATRIBUTO → OBJETO

P ATRIBUTO •

∃I’: INTERVALOS; o’: OBJETO | I’ interv = interv ∧ I’ Incl (o valor).intervalo • I’ Projeção o = o’ ∧ o’ Ret_Atributos = o Ret_Atributos ∩ A ∧ ∀ a: ATRIBUTO | a ∈ o’ Ret_Atributos • (o’ valor).dados_desc Valor_do_Atrib(a) = (o valor).dados_desc Valor_do_Atrib(a) A operação Projeção de intervalo aplicada a um objeto o e a um conjunto de atributos herdáveis A, gera um novo objeto o’, onde o intervalo de o’ tem que estar incluído no intervalo de o e os atributos de o’ são herdados de o, desde que tais atributos sejam herdáveis. Os valores de cada atributo do novo objeto são os mesmos dos atributos herdados do objeto existente.

Merge:(interv: ESTADO_I) x INTERVALOS → INTERVALOS

∀I2: INTERVALOS • ∃I1: INTERVALOS | I1 interv = interv • I1 Incl (I1 Merge I2) ∧ I2 Incl (I1 Merge I2) ∧ ∀i1,i2: INTERVALO | i1 ≠ i2 ∧ i1 Pertence (I1 Merge I2) ∧ i2 Pertence (I1 Merge I2) • A operação¬Merge entre dois ¬conjuntos de intervalos gera um novo conjunto de intervalos que é (i Sub_Int i1 ) ∧ (i1 Sub_Int i2 ) dado pela união dos2intervalos sobre o qual a operação é aplicada. Overlap: (interv: ESTADO_I) x INTERVALOS → INTERVALOS

∀I2: INTERVALOS • ∃I1: INTERVALOS | I1 interv = interv • (I1 Overlap I2) interv ⊆ { i1,i2: INTERVALO |

i1 Pertence (I1 interv) ∧ i2 Pertence (I2 interv) • i1 Intersec i2 } ∧ ∀i’1,i’2 : INTERVALO | i’1 Pertence (I1 Overlap I2) ∧ i’2 Pertence (I1 Overlap I2) • ¬ ( i’2 Sub_Int i’1 ) ∧ ¬( i’1 Sub_Int i’2 )

A operação Overlap aplicada a dois conjuntos de intervalos gera um novo intervalo que é a interseção dos intervalos sobre os quais a operação é aplicada. 10

EndClass INTERVALOS 7 Conclusões e Trabalhos Futuros A principal contribuição deste trabalho foi a apresentação da especificação formal do modelo de dados do sistema multimídia OVID, visto que através da formalização em MooZ foi possível expor de maneira mais clara os conceitos apresentados neste modelo, já que tanto o modelo de dados como a linguagem de especificação são orientados a objetos. Adicionalmente, este trabalho apresentou aspectos inerentes à área de sistemas de informação multimídia. Na especificação original de OVID [OT97], os autores consideraram que conjuntos de intervalos também podem ser valores de atributos. No entanto, ao especificar o modelo de dados OVID em MooZ, chegamos a conclusão que a especificação original está inconsistente ou então incompleta, pois: (i) nos exemplos apresentados pelos autores não há menção de intervalo como valor de atributo; (ii) intervalos já são componentes de objetos e assim não há sentido em colocá-los como valores de atributo. Se realmente houver necessidade, um objeto A pode ser colocado como valor de um atributo em um objeto B, e conseqüentemente o intervalo associado a A será associado ao atributo em B; (iii) para um intervalo ser um valor, o mesmo deveria ter a operação Is_a e o artigo não menciona tal operação sobre intervalos. Assim, partimos do pressuposto que intervalo não pode ser valor de um atributo, e por isso as classes INTERVALOS e INTERVALO foram definidas em uma hierarquia separada da classe VALOR. Algumas importantes questões foram observadas como merecidas de futura pesquisa na continuação deste trabalho. A especificação formal poderá ajudar a tomar decisões de projeto a respeito de como novas funções poderão ser incorporadas ao modelo especificado. Um outro importante aspecto a ser considerado como trabalho futuro é a modificação do modelo de dados de OVID e da especificação correspondente para permitir que objetos de outros tipos de mídia, além dos do tipo vídeo, sejam tratados. Referências Bibliográficas [AK92]

K. Aberer and W. Klas. The Impact of Multimedia Data on Database Management Systems.Technical Report TR-92-065. International Computer Science Institute (ICSI), Berkeley, CA, USA, 1992.

[BPJ93]

J. R. Bach, S. Paul, and R. Jain. A Visual Information Management System for the InteractiveRetrieval of Faces. IEEE Transactions on Knowledge and Data Engineering, 5(4):619-628, Agosto,1993.

[Dat95]

C. J. Date. Banco de Dados: Tópicos Avançados. Campus: Rio de Janeiro, 6a.Edição, Rio de Janeiro, 1995.

[FF93]

N. J. Ford and J. M. Ford. Introducing Formal Methods: A Less Mathematical Approach. Ellis Horwood, 1993.

[FSN95]

M. Flickner et al. Query by image and video content: The QBIC system. COMPUTER Innovative Technology for Computer Professionals - Finding the Right Image - ContentBased Image Retrieve Systems, páginas 23-31, 1995.

[Kim90]

W. Kim. Object-Oriented Databases: Definition and Research - Directions. IEEE Transactions on Knowledge and Data Engineering, 2(3):327-341, 1990.

[Mar97]

M. S. Marcon. Especificação Formal de um Modelo de Dados para Objetos do Tipo Vídeo. Exame de Qualificação de Doutorado, Departamento de Informática, Universidade Federal de Pernambuco, Abril, 1997.

[MCS93]

S. R. L. Meira, A. L. C. Cavalcanti, and C. S. Santos. The Unix File System: A MooZ Specification. In K. Lano and H. Haughton, editors, Object-Oriented Specification Case Studies, Object-Oriented Series. Pretince-Hall, 1993. 11

[MW94]

K. Meyer-Wegner. Database Management for Multimedia Applications. In J. L. Encarnação and J. D. Foley (Eds.): Multimedia. Springer Berlin, 1994.

[OM88]

J. A. Orenstein and F. A. Manola. PROBE Spatial Data Modeling and Query Processing in an Image Database Application. IEEE Transactions on Knowledge and Data Engineering, 14:611-629, Maio, 1988.

[OT97]

E. Oomoto and K. Tanaka. Video Database Systems - Recent Trends in Research and Development Activities. Handbook of Multimedia Information Management, Pretince Hall, 1997.

[RFS88]

N. Roussopoulos, C. Faloutsos, and T. Sellis. An Efficient Pictorial Database System for PSQL. IEEE Transactions Software Engineering, 14:639-650, Maio, 1988.

[Sco76]

D. S. Scott. Data Types as lattices. SIAM Journal on Computing, 5(3), páginas 523-587, 1976.

[SN95]

R. Steinmetz and K. Nahrstedt. Multimedia: Computing, Communications, and Applications. Pretince Hall, 1995.

[Spi92]

J. M. Spivey. The Z Notation: A Reference Manual. Pretince Hall International, Edition, 1992.

12

Second

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.