instituto militar de engenharia metadados para - SE/8

Transcrição

instituto militar de engenharia metadados para - SE/8
INSTITUTO MILITAR DE ENGENHARIA
METADADOS PARA DOCUMENTAÇÃO E RECUPERAÇÃO
DE IMAGENS
POR
SIMONE DE SOUZA GARCIA
TESE SUBMETIDA
COMO REQUISITO PARCIAL
PARA A OBTENÇÃO DO GRAU DE
MESTRE EM CIÊNCIAS
EM SISTEMAS E COMPUTAÇÃO
Assinatura da Orientadora da Tese
____________________________________________
ANA MARIA DE CARVALHO MOURA - Dr. Ing.
Assinatura da Co-Orientadora da Tese
____________________________________________
MARIA LUÍZA MACHADO CAMPOS - Ph.D.
Rio de Janeiro – RJ
Fevereiro 1999
A Deus, por tudo...
À minha família,
em especial a meus pais Eranir e Marlene
e meus irmãos Cláudia e Fabio,
e todos os meus amigos.
AGRADECIMENTOS
A Deus, por ter me concedido essa oportunidade, me dando a saúde e a determinação
necessárias ao desenvolvimento desse trabalho.
Aos meus pais, pela grande dedicação, incentivo e contribuição na minha formação
como pessoa e como profissional.
Aos meus irmãos, pelo grande carinho e compreensão. Agradeço à minha irmã, por ter
suportado por várias vezes a luz do nosso quarto aceza durante à noite, além do barulho do
teclado do computador; e ao meu irmão, por ter respeitado os momentos em que eu estudava,
diminuindo o volume do som para que não me atrapalhasse.
Ao Exército Brasileiro, especialmente ao Instituto Militar de Engenharia, por ter me
acolhido e pela qualidade do curso ministrado.
Às professoras Ana Maria do IME e Maria Luíza da UFRJ, por todo o conhecimento e
incentivo transmitidos como professoras e orientadoras, assim como pela grande dedicação
para a realização desse trabalho.
À CAPES (Coordenação de Aperfeiçoamento de Pessoal de Nível Superior), por ter
me proporcionado a bolsa de estudos durante esse período em que fiquei estudando o
Mestrado.
À professora Marina Teresa da UFSCar, por aceitar participar da banca de professores
para avaliação desta Tese.
À Cássia Barreto, pela atenção e conhecimentos transmitidos sobre o tema metadados,
o qual ela já pesquisava antes de mim.
À professora Rosa Inês da UFF e à funcionária Cássia Mello da FUNARTE, pela
atenção e conhecimentos transmitidos relacionados a área de Ciência da Informação.
Ao pesquisador Artur Caetano da Universidade de Lisboa, pela atenção e
conhecimentos transmitidos via Internet com relação aos conceitos de histograma de cor,
textura, entre outras informações relevantes a esse trabalho.
Ao funcionário Vicente Perroni da empresa Computer Associates, pela atenção e
conhecimentos transmitidos com relação a utilização do Jasmine.
Ao professor Marcos Veloso do IME, pela atenção e dedicação durante o período de
configuração do ambiente necessário para utilização do WebLink com o Jasmine.
Ao Dirceu Vianna, pela amizade e ajuda proporcionada por meio de seu dom artístico
para o desenho dos botões utilizados nas páginas HTML do protótipo implementado.
Às bibliotecárias do IME, NCE e PUC, pela atenção em todas as vezes que precisei
fazer pesquisa bibliográfica.
A todos os professores, pelos conhecimentos transmitidos. E aos funcionários do
Departamento de Engenharia de Sistemas do IME pelo apoio, principalmente ao Sgt Messias
pelo apoio técnico do laboratório.
A todos os colegas de turma, pelo companheirismo e união durante esses dois anos de
intensos estudos. A todos os meus amigos e amigas, pelo carinho e forças durante esse
período.
Finalmente, a todos aqueles que direta ou indiretamente contribuíram na elaboração
deste trabalho.
RESUMO
Este trabalho foi desenvolvido com o propósito de desenvolver uma modelagem
conceitual que permita a descrição e recuperação de imagens, por meio do estudo e
sistematização das características de imagens. As classes pertencentes ao esquema conceitual
decorrente dessa modelagem viabilizam a documentação de uma imagem estática do tipo
fotografia, pintura ou gravura qualquer, descrevendo suas propriedades, os componentes
contidos na imagem e os relacionamentos existentes entre eles. Estes descritores permitem
também identificar os objetos imagem que são versões de outro objeto imagem e os tipos de
associações existentes entre os mesmos.
O esquema proposto descreve tanto as informações técnicas quanto as informações
relacionadas ao conteúdo semântico da imagem, contribuindo com uma especificação
sistemática e detalhada dos elementos descritores de imagens estáticas digitais, podendo com
isso serem utilizados em arquiteturas de metadados existentes.
Este esquema serviu como base para a implementação de um protótipo de aplicação
em um ambiente que possibilita a descrição e recuperação de imagens baseadas em seus
descritores, possibilitando ainda que as imagens sejam consultadas no ambiente Internet.
iv
ABSTRACT
The purpose of this work was to develop a conceptual modeling to describe and
retrieve images by the study and systematization of image features. The classes belonging to
the conceptual schema derived from this conceptual modeling represent static images of any
type such as: photograph, painting or any picture, describing its properties, and also making it
possible to describe components contained in the image and existing relationships among
them. These descriptors also allow the identification of image objects which are versions of
other image objects and the types of existing associations among them.
The considered schema takes into account not only technical information but also
information related to the semantic content of the image, providing a systematic and detailed
specification of the descriptor elements of static digital images, that can be used in any
existing metadata frameworks.
This schema has served as a basis for an application prototype implementation in an
environment that enables the description and retrieval of images based on their descriptors,
allowing also an image that can be queried in the Internet environment.
v
SUMÁRIO
RESUMO
iv
ABSTRACT
v
LISTA DE ILUSTRAÇÕES
x
LISTA DE TABELAS
xi
LISTA DE ABREVIATURAS E SÍMBOLOS
xi
1 - INTRODUÇÃO
01
1.1 - OBJETIVOS DA TESE
03
1.2 - ORGANIZAÇÃO DA TESE
04
2 - IMAGEM ESTÁTICA DIGITAL: CARACTERIZAÇÃO E ABORDAGENS
06
2.1 - CARACTERIZAÇÃO
07
2.2 - PROCESSAMENTO DE IMAGEM
10
2.3 - FORMATOS
12
2.3.1- Formato PNG
13
2.3.2- Formato SPIFF
15
2.3.3- Análise Comparativa dos Formatos
18
2.4 - O ESTUDO DA IMAGEM EM DIFERENTES ABORDAGENS
2.4.1- Recuperação da Informação (Information Retrieval - IR) em Imagem
20
20
2.4.1.1- Características
21
2.4.1.2- Exemplos
22
2.4.2- Banco de Dados de Imagem
24
2.4.2.1- Características
25
2.4.2.2- Abordagem VIMS
26
2.4.2.3- Exemplos
28
vi
2.4.3- Técnicas de Inteligência Artificial Aplicadas à Recuperação de Imagem 31
2.4.3.1- Características
32
2.4.3.2- Exemplo
33
2.5 - CONSIDERAÇÕES FINAIS
34
3 - PADRÕES E ARQUITETURAS DE METADADOS
3.1- PADRÕES
36
37
3.1.1- Dublin Core
37
3.1.2- SAIF
39
3.2 - ARQUITETURAS DE METADADOS
3.2.1- Arquitetura Warwick
41
41
3.2.1.1- Relacionamentos Ativos Distribuídos (DARs)
43
3.2.2- Arquitetura de Descrição de Conteúdo (MCF)
44
3.2.3- Arquitetura de Descrição de Recurso (RDF)
46
3.2.4- Arquitetura Segundo Chang e Zhang
47
3.3 - ARQUITETURA DE MODELAGEM SEGUNDO KERHERVÉ
49
3.4 - SISTEMAS UTILIZANDO METADADOS PARA IMAGEM
50
3.5 - CONSIDERAÇÕES FINAIS
52
4 – MODELAGEM CONCEITUAL DE METADADOS PARA IMAGEM
55
4.1- VISÃO SEGUNDO A CIÊNCIA DA INFORMAÇÃO
56
4.2- CARACTERÍSTICAS
60
4.3- ESPECIFICAÇÃO DE CLASSES
61
4.3.1- Objeto Imagem
64
4.3.2- Imagem Original
66
4.3.3- Tipo de Associação
68
4.3.4- Conteúdo Semântico
68
vii
4.3.4.1- Componente
69
4.3.5- Tipo de Relacionamento
70
4.3.6- Representação Posicional
70
4.3.7- Representação Factual
71
4.3.7.1- Ser
71
4.3.7.2- Reino
71
4.3.7.3- Força da Natureza
72
4.3.7.4- Objeto
72
4.3.8- Componentes Integrantes
72
4.3.9- Componentes Não Integrantes
73
4.4 - EXEMPLOS UTILIZANDO O ESQUEMA
74
4.5 - CONSIDERAÇÕES FINAIS
76
5 - VISÃO GERAL SOBRE O PROTÓTIPO PARA BUSCA DE IMAGENS
5.1- CRIAÇÃO DAS CLASSES E MÉTODOS NO JASMINE
5.1.1- Classes do Esquema Proposto e seus Métodos em ODQL
5.2- UTILIZAÇÃO DO WEBLINK COM O JASMINE
78
79
79
86
5.2.1- Arquitetura do WebLink
86
5.2.2- Templates do Protótipo
88
5.3- INTERFACE DE CONSULTA AOS METADADOS DAS IMAGENS
95
5.4- CONSIDERAÇÕES FINAIS
101
6 - CONCLUSÃO
103
6.1- PRINCIPAIS CONTRIBUIÇÕES
105
6.2- SUGESTÕES PARA TRABALHOS FUTUROS
106
APÊNDICE A - ALGUNS MÉTODOS EM ODQL
107
APÊNDICE B - ALGUNS ARQUIVOS HTML COM CÓDIGO ODQL EMBUTIDO
115
viii
APÊNDICE C - PROCEDIMENTOS PARA UTILIZAÇÃO DO JASMINE
123
APÊNDICE D - UTILIZAÇÃO DO ESQUEMA EM XML
128
REFERÊNCIAS BIBLIOGRÁFICAS
133
ix
LISTA DE ILUSTRAÇÕES
FIGURA 2.1: Modelo de Dados do VIMSYS
29
FIGURA 3.1: Recipiente
42
FIGURA 3.2: Exemplo de uso do DARs para gerenciamento de direitos
44
FIGURA 3.3: Quadro DLG representando dados MCF
45
FIGURA 3.4: Exemplos RDF
47
FIGURA 3.5: Arquitetura de Metadados
48
FIGURA 3.6: Arquitetura de modelagem segundo Kerhervé
49
FIGURA 4.1: Esquema Conceitual de Metadados para Imagem
62
FIGURA 4.2: Diagrama de Instâncias da figura exemplo 1
74
FIGURA 4.3: Diagrama de Instâncias da figura exemplo 2
75
FIGURA 4.4: Diagrama de Instâncias da figura exemplo 3
76
FIGURA 5.1: Classes do Esquema implementadas no Jasmine Studio
80
FIGURA 5.2: Método exemplo utilizando o comando stringCat()
81
FIGURA 5.3: Funcionamento do WebLink
86
FIGURA 5.4: Arquitetura WebLink
88
FIGURA 5.5: Tela exemplo de inclusão utilizando o Jasmine Studio
96
FIGURA 5.6: Primeira tela (inicial.html) da aplicação via Internet
97
FIGURA 5.7: Segunda tela (home.html) da aplicação via Internet
97
FIGURA 5.8: Tela (opcoes.html) com as opções de consulta da aplicação via Internet
98
FIGURA 5.9: Consulta à classe Componente (compo.html)
98
FIGURA 5.10: Resposta à consulta (resultcompo.html) feita na Figura 5.9
99
FIGURA 5.11: Resposta às associações (resultassoc-escolhido.html) da Figura 5.10
99
FIGURA 5.12: Consulta à classe Objeto_Imagem (obj_img.html)
100
x
FIGURA 5.13: Resposta à consulta (resultobjimg.html) feita na Figura 5.12
100
FIGURA C.1: Tela do WebLink Environment Editor
126
LISTA DE TABELAS
TABELA 2.1: Características técnicas dos formatos de arquivo
19
TABELA 3.1: Elementos do Padrão Dublin Core
39
TABELA 4.1: Categorias para a representação da imagem (SHATFORD, 1986)
59
TABELA 4.2: Legenda utilizada na representação da estrutura de classes do esquema
63
LISTA DE ABREVIATURAS E SÍMBOLOS
CCD
(“Contrast, Coarseness e Directionality”)
CGI
(“Common Gateway Interface”)
CMY
(“cyan, magenta, yellow”)
CODQLIE
(“Client ODQL Interactive Environment”)
CORBA
(“Common Object Request Brocker Architecture”)
DARs
(“Distributed Active Relationships”)
DC
(“Dublin Core”)
DLGs
(“Directed Linked Graph”)
DOS
(“Disk Operational System”)
FGDC
(“Federal Geographic Data Committee”)
ftp
(“file transfer protocol”)
xi
GIF
(“Graphics Interchange Format”)
BMP
(“Microsoft Windows Bitmap”)
GUI
(“Graphical User Interface”)
HSV
(“Hue, Saturation, Value”)
HTML
(“HyperText Markup Language”)
IA
Inteligência Artificial
IAFA/WHOIS++
(“Internet Anonymous Ftp Archive with Whois++ protocol”)
IR
(“Information Retrieval”)
JFIF
(“JPEG File Format”)
JPEG
(“Join Photographic Experts Group”)
MARC
(“Machine Readable Catalogue”)
MCF
(“Meta Content Framework”)
MNG
(“Multiple-image Network Graphics”)
OCR
(“optical character recognition”)
ODQL
(“Object Database Query Language”)
PNG
(“Portable Network Graphics”)
QL-DB
(“Query Language Database”)
QL-IR
(“Query Language Information Retrieval”)
RDF
(“Resource Description Framework”)
RGB
(“red, green, blue”)
SAIF
(“Spatial Archive and Interchange Format”)
SGBD
Sistema Gerenciador de Banco de Dados
SGBDOO
Sistema Gerenciador de Banco de Dados Orientado a Objetos
SGML
(“Standard Generalized Markup Language”)
SPIFF
(“Still Picture Interchange File Format”)
xii
SQL
(“Structured Query Language”)
Tag
Marcação
TEI
(“Text Encoding Initiative”)
TIFF
(“Tagged Image File Format”)
UML
(“Unified Modeling Language”)
URI
(“Universal Resource Identifier”)
URL
(“Universal Resource Location”)
VIMS
(“Visual Information Management Systems”)
VIR
(“Visual Information Retrieval”)
WWW
(“World Wide Web”)
XML
(“Extensible Markup Language”)
xiii
CAPÍTULO 1
INTRODUÇÃO
Com o lançamento da chamada segunda revolução da informação, estimulada pelo
aparecimento de ambientes multimídia, interações homem-computador estão sendo
transformadas. Informações multimídia crescem por todos os lados, em qualidade e
quantidade e muitas áreas da tecnologia da informação estão adotando plataformas, tipos de
dados e ambientes multimídia. Com toda essa informação emergente, cresce também em
importância o estudo de objetos multimídia e sua utilização com a tecnologia de banco de
dados.
A forma estruturada de armazenamento dos dados em banco de dados não permite
trabalhar adequadamente com objetos multimídia. Um problema ainda incomoda a quem
precisa gerenciar informações que incluam, além de texto, imagens estáticas, áudio e vídeo. A
dificuldade básica se refere à manipulação desses objetos, que normalmente possuem
características particulares a cada um. Além do simples armazenamento, é importante
conseguir disponibilizar informações de conteúdo semântico desses objetos, de forma a
facilitar sua recuperação.
Informações na forma digital podem ser distribuídas através da Web ou em redes
locais para serem usadas para diferentes propósitos, como por exemplo para fortalecimento de
recursos de ensino, pesquisa e diversão. Imagens digitais realizam a grande promessa de
prover amplo acesso à herança cultural do mundo (BESSER & TRANT, 1995).
Banco de dados de imagem tem sido uma área de grande importância em muitos
domínios e a tecnologia de hardware atual possibilita adquirir, armazenar, manipular e
transmitir grande número de imagens. Entretanto, falta ainda um meio mais natural de
consultar e acessar esses bancos de dados de imagem, já que em sua grande maioria, as
1
imagens armazenadas nos bancos de dados não são descritas de forma adequada. No mundo
de banco de dados fala-se muito sobre modelagem conceitual (semântica), a qual tenta
representar a semântica dos dados. A semântica de imagens é essencialmente extraída de seu
conteúdo, e a menos que exista um método efetivo e sistemático para identificar esses
conteúdos, o banco de dados irá degenerar para uma coleção de dados sem nenhuma
semântica.
Apesar do antigo ditado “Uma imagem vale mais do que milhares de palavras” ser
verdadeiro, existem informações importantes nas imagens que não podem ser percebidas sem
um conhecimento mais específico. Com isto surge a idéia de se ter descritores associados aos
dados contidos nas imagens, sendo estes descritores conhecidos como metadados.
O termo metadado, comumente definido como “dado sobre dados”, é utilizado em
função das necessidades das organizações em conhecerem melhor os dados que elas mantêm,
e com maior facilidade e detalhes os dados de outras organizações.
A finalidade principal dos metadados é documentar e organizar, de forma estruturada,
os dados das organizações com o objetivo de minimizar a duplicação de esforços e facilitar a
manutenção desses dados (PRABHAKARAN, 1997). Os dados precisam conter informações
que auxiliem seus usuários a tomarem decisões sobre a sua devida aplicação. Os metadados
incluem elementos de descrição do conteúdo dos dados e qualquer informação que seja
relevante para a recuperação dos seus conteúdos.
Podem ser destacadas as seguintes vantagens em utilização e disponibilização de
metadados: estabelecimento de padrões de dados diante da heterogeneidade de informações
contidas em rede, como por exemplo a Internet; facilidade e maior precisão na recuperação
das informações desejadas; troca de informações entre aplicações e organizações; utilização
das tecnologias na catalogação descritiva.
2
Existem diferentes padrões de metadados, cuja utilização depende das finalidades
distintas de informações às quais estão associados: FGDC (Federal Geographic Data
Committee) para descrição de dados geo-espaciais (FGDC); MARC (Machine Readable
Catalogue) para catalogação bibliográfica (HEERY, 1996); IAFA/WHOIS++ (Internet
Anonymous Ftp Archive with Whois++ protocol) para descrição do conteúdo e serviços
disponíveis em arquivos ftp (file transfer protocol) (DEUTSCH et alii., 1994); TEI (Text
Encoding Initiative) para representação de materiais textuais na forma eletrônica
(BURNARD, 1994); DC (Dublin Core) para catalogação de documentos eletrônicos na Web
(BROSS, 1997); SAIF (Spatial Archive and Interchange Format) para compartilhamento de
dados espaciais e espaço-temporais (SAIF);
No caso das mídias do tipo imagens digitalizadas ainda não existe um consenso na
área de Ciência da Computação nem na área de Ciência da Informação de como se descrever
os dados de forma padronizada.
1.1- OBJETIVOS DA TESE
O objetivo deste trabalho é propor o desenvolvimento de uma modelagem conceitual
que permita a descrição e recuperação de imagens, por meio do estudo e sistematização das
características de imagens. As classes pertencentes ao esquema conceitual decorrente dessa
modelagem deverão viabilizar a documentação de uma imagem estática do tipo fotografia,
pintura ou gravura qualquer, descrevendo suas propriedades, os componentes contidos na
imagem e os relacionamentos existentes entre eles. Estes descritores deverão permitir também
identificar os objetos imagem que são versões de outro objeto imagem e os tipos de
associações existentes entre os mesmos.
3
O esquema proposto deverá descrever tanto as informações técnicas quanto as
informações relacionadas ao conteúdo semântico da imagem, contribuindo com uma
especificação sistemática e detalhada dos elementos descritores de imagens estáticas digitais,
podendo com isso serem utilizados em arquiteturas de metadados existentes.
Este esquema será a base para a implementação de um protótipo de aplicação em um
ambiente que possibilite a descrição e recuperação de imagens baseadas em seus descritores,
possibilitando ainda que as imagens sejam consultadas por meio dos seus respectivos
metadados no ambiente Internet.
1.2- ORGANIZAÇÃO DA TESE
Além desse capítulo introdutório, o trabalho conta com outros cinco capítulos:
Capítulo 2: apresenta um estudo sobre imagem estática digital, explicando suas
características e abordagens. Contém três diferentes abordagens (Recuperação da Informação
- Information Retrieval - em Imagem, Banco de Dados de Imagem e Técnicas de Inteligência
Artificial Aplicadas à Recuperação de Imagem) encontradas na área de Ciência da
Computação para a recuperação de imagens e alguns formatos de arquivo de imagem que
possibilitam embutir metadados no próprio cabeçalho do arquivo.
Capítulo 3: estuda padrões e arquiteturas de metadados existentes na área de Ciência da
Computação.
Capítulo 4: especifica a proposta de um esquema conceitual de metadados para
documentação e recuperação de imagens, levando em consideração tanto as informações
técnicas da imagem quanto as informações de conteúdo semântico. As informações de
conteúdo semântico são embasadas em estudos realizados na área de Ciência da Informação.
4
Capítulo 5: descreve as principais diretrizes de especificação utilizadas no protótipo
implementado para documentar e recuperar imagens baseado no esquema definido no
Capítulo 4.
Capítulo 6: finaliza com a conclusão desse estudo, apresentando as suas principais
contribuições e sugestões para trabalhos futuros.
5
CAPÍTULO 2
IMAGEM ESTÁTICA DIGITAL: CARACTERIZAÇÃO E ABORDAGENS
Neste capítulo será apresentado o estudo relacionado à caracterização de imagens
estáticas digitais e as abordagens que tratam esse tipo de mídia, com o objetivo de identificar
suas principais propriedades visando a especificação de descritores para as mesmas.
Imagens estáticas digitalizadas são sequências de pixels que representam uma região
mostrada no monitor gráfico do usuário. Pixels são números interpretados para permitir a
exposição de um determinado ponto (“dot”) com valores diferentes para luminosidade, cor e
contraste. Pixels podem ser simples 0 ou 1, indicando branco ou preto para imagens estáticas
em preto-e-branco. Por outro lado, imagens coloridas de alta resolução podem conter 8, 16 ou
24 bits por pixel, permitindo a representação de milhões de cores. O espaço para
armazenamento de imagens estáticas varia de acordo com suas características de resolução,
tamanho, e esquema de compressão usado. Existe grande variância em qualidade e quantidade
de armazenamento requerido por imagens estáticas (KHOSHAFIAN & BAKER, 1996).
Um enfoque mais detalhado com relação à caracterização de imagens pode ser visto na
seção 2.1. Um resumo sobre processamento de imagens digitais está sendo apresentado na
seção 2.2. Na seção 2.3 podem ser vistos alguns formatos de arquivos para a mídia do tipo
imagem. E a seção 2.4 apresenta três abordagens (Recuperação da Informação - Information
Retrieval - em imagem, Banco de Dados de Imagem e Técnicas de Inteligência Artificial
Aplicadas à Recuperação de Imagem) da área de Ciência da Computação que tratam a
descrição e a recuperação da imagem de forma diferenciada.
6
2.1- CARACTERIZAÇÃO
Imagem é uma mídia que necessita ser descrita de tal forma que as informações
pertencentes a seu conteúdo possam ser entendidas. Em geral, o tratamento das informações
do escopo semântico da imagem não vem tendo a importância que merece, pois dados do tipo
imagem têm sido descritos como os demais tipos de arquivos que possuem tamanho, forma,
dentre outras informações meramente técnicas de um arquivo.
Para que o conteúdo semântico da imagem tenha o enfoque merecido, faz-se
necessário o estudo e entendimento mais específico do que vem a ser uma imagem digital, e
como ela pode e/ou deve ser adquirida e descrita, de forma a possibilitar o armazenamento de
características relacionadas ao seu conteúdo e forma.
As características da imagem relacionadas à descrição de conteúdo semântico, além
das suas características técnicas poderão ser vistas no Capítulo 4. Nesta seção serão
apresentadas algumas características consideradas informações técnicas da imagem, descritas
a seguir:
-
Formato
Especifica o formato padrão de armazenamento de arquivo, existindo uma variedade
de formatos padrões para armazenamento de arquivo imagem (incluindo TIFF, GIF, JFIF,
SPIFF, PNG, BMP, PICT, TGA, EPS, CGM, etc.).
-
Esquema de Compressão
Identifica o tipo de compressão utilizado na criação da imagem digital, já que existem
vários esquemas de compressão diferentes (tais como JBIG, LZW, QuickTime, etc.)
(BESSER & TRANT, 1995). Compressão de imagem é o processo de redução do tamanho do
arquivo da imagem através de métodos tais como: retirada de informação repetida ou
eliminação de informação difícil de ser detectada pelo olho humano. Existem dois tipos de
7
compressão de imagem: compressão com perda e compressão sem perda. Uma imagem
descomprimida e vista após a compressão sem perda será idêntica ao seu estado antes de ter
sido comprimida. A compressão sem perda normalmente reduz o armazenamento em 50%,
enquanto que a compressão com perda pode reduzir em até 96%. A compressão com perda
significa a perda de dados e consequentemente perda de qualidade.
-
Tipo de digitalizador
Identifica o tipo de dispositivo (scanner) utilizado para a digitalização da imagem, já
que existem diversos tipos (BESSER & TRANT, 1995): Copystand / Câmera Digital onde a
imagem após ter sido fotografada é digitalizada; Drum (tambor) no qual o material a ser
digitalizado é colocado em um tambor que é girado passando por uma luz de alta intensidade
que captura a imagem; Flatbed assemelha-se às máquinas de fotocópias e o material fonte é
colocado no vidro e capturado por vetores CCD; Slide utiliza a luz que passa através do slide
para capturar um vetor CCD; Digitalizador de vídeo (frame-grabber)/(capturador de quadro)
utiliza placas de circuitos que são colocadas dentro do computador anexado a uma câmera de
vídeo padrão gerando a imagem digitalizada; finalmente, Digitalizador de mão, muito popular
pelo baixo preço, digitaliza até quatro polegadas na faixa de largura, digitalizando a imagem
ao ser passado por sobre o material que contém a mesma.
-
Resolução
É definida pelo número de pixels em uma dada área da imagem digital. A resolução de
um arquivo imagem é sempre expressa como uma proporção, como por exemplo 1000 x
2000; uma matriz 640 x 480, por exemplo, é usada para caracterizar o aparecimento no
monitor. Já a resolução de impressão é expressa em termos de pontos por polegada (dpi - dots
per inch).
8
-
Espaço de cor
Identifica o tipo padrão de cores usadas (por exemplo: RGB (Red, Green, Blue), HSV
(Hue, Saturation, Value), CMYK (Cyan, Magenta, Yellow, Black), etc), na digitalização da
imagem.
-
Histograma de cor
Representa a distribuição das cores existentes na imagem digital, de acordo com cada
pixel. Suponha que a imagem tenha N cores; a idéia é responder a “quantos pixels a cor X tem
associados?”, isto é, contar os pixels referentes a uma dada cor.
-
Textura
Refere-se geralmente à repetição de elementos básicos chamados de texels. O texel
contém vários pixels, cuja distribuição pode ser periódica, quase-periódica ou randômica.
(JAIN & DORAI, 1997). Regiões com textura são formadas por padrões espacialmente
extensíveis baseadas em uma repetição de alguma célula unitária (subpadrão). Segundo
(MEYER, 1997) não existe uma definição simples e sem ambiguidades para o termo “textura”
e a razão para isso é o conceito fortemente intuitivo de textura, impossível de ser descrito em
uma definição textual. A textura é representada por meio de um vetor gerado
automaticamente por um algoritmo, como por exemplo os algoritmos conhecidos como
atributos CCD (Contrast, Coarseness e Directionality) de Tamura, transformada de Wold,
Modelo SAR (Simultaneous Auto-Regressive), RISAR (Rotation-Invariant SAR), MRSAR
(Multi-Resolution SAR), GLCM (Grey Level Co-ocurrence Matrix) e GMRF (Gaussian
Markov Random Field) (CAETANO et alii, 1998).
-
Brilho
È proporcional à integral do produto da curva e à função de eficiência de
luminosidade, esse cálculo é feito automaticamente por meio de um algoritmo gerando um
vetor (FOLEY et alii, 1990).
9
2.2- PROCESSAMENTO DE IMAGEM
Ferramentas de processamento de imagem são aplicações multimídia que possibilitam
ao usuário criar, realçar, segmentar e editar imagens mapeadas por bit. A forma básica para o
armazenamento de pixels é por bits. Por exemplo, com um byte por pixel é possível obter 256
cores. Uma imagem digital é representada como uma função de duas dimensões f(x,y), onde x
e y são os valores das coordenadas x e y de um pixel. A função f é o brilho da imagem naquele
ponto (valor do pixel).
Existem categorias ou domínios fundamentais de processamento de imagem digital
(KHOSHAFIAN & BAKER, 1996):
•
Realce e Restauração de Imagem: melhoram as propriedades visuais das imagens. Realce
livra a imagem de deformações e distorções; várias técnicas de filtragem removem ruídos
e borrões em uma imagem. Uma técnica popular de filtragem é a filtragem mediana, a
qual troca o nível de cinza de cada pixel em uma imagem pelo nível de cinza mediano dos
pixels circundantes;
•
Análise de Imagem: tem o objetivo de entender as características da imagem e as
características dos objetos que ela contém. Exemplos de características de imagem
incluem brilho, textura, e cor. Características dos objetos da imagem incluem forma,
tamanho e contorno. A análise de imagem sempre começa com segmentação que isola os
vários objetos na imagem;
•
Síntese de Imagem: cria imagens de imagens fonte ou de dados não imagens como dados
numéricos. Tomografia computadorizada é considerada como uma síntese de imagem; sua
aplicação primária é a medicina. A técnica consiste em reconstruir uma imagem usando
múltiplas projeções de imagens.
10
Reconhecimento de Objetos em Imagens
Para o reconhecimento de objetos em imagens existem alguns passos. O primeiro
passo antes do reconhecimento de padrões é o processo na análise da imagem chamado
segmentação, o qual particiona a imagem em vários segmentos, identificando objetos
candidatos para o subsequente reconhecimento. Através da segmentação torna-se possível
detectar limites e contornos de objetos, e isto é feito através da detecção de pixels
relacionados e descontinuidades em uma imagem. Algoritmos de segmentação também usam
similaridade, como por exemplo pixels da mesma cor.
O segundo passo é o reconhecimento de padrões e existem algumas técnicas, como
por exemplo redes neurais que são muito promissoras no reconhecimento de fala, caracter e
objeto em geral. Uma outra tecnologia é a OCR (optical character recognition)
reconhecimento ótico de caracter, muito utilizada na área de imagem e reconhecimento de
padrões.
Os aspectos do reconhecimento de objeto com relação a banco de dados multimídia
são (KHOSHAFIAN & BAKER, 1996):
-
Extração das características de objetos que poderão ser indexados e usados para
possibilitar consultas em aplicações de bancos de dados multimídia. Para grandes
volumes de dados de imagens e outros tipos de dados multimídia, o objetivo
geralmente é automatizar a extração de características. Os processos do sistema
reconhecem e automaticamente indexam os objetos. As características extraídas
são incorporadas no banco de dados;
-
Existência também de intervenção (humana) manual que é sempre necessária para
corrigir erros do sub-sistema de extração de características para introduzir termos
ou pesos, e atualizar outros atributos do objeto. Pesos podem também ser usados
em estruturas adicionais para processamento de consultas.
11
2.3- FORMATOS
Existem vários formatos de arquivo de imagem dentre os quais os mais conhecidos e
utilizados são: JPEG (Join Photographic Experts Group), GIF (Graphics Interchange Format),
BMP (Microsoft Windows Bitmap) e TIFF (Tagged Image File Format) (MURRAY &
VANRYPER, 1996).
JPEG: padrão desenvolvido pelo Joint Photographic Experts Group para compressão
de imagens estáticas, armazena a cor de todos os pixels através de um método de compressão
com perda, significando que sempre que uma imagem é gravada nesse formato perde-se
alguma informação. O tamanho do arquivo JPEG resultante é muito pequeno, porém os dados
que contém são sempre uma aproximação da imagem original. JFIF (JPEG File Interchange
Format) é um formato de armazenamento de arquivo para imagens comprimidas com o
algoritmo JPEG.
GIF: criado pela CompuServe, armazena imagens usando codificação indexada, onde
cada pixel é representado por um índice de inteiro dentro de uma paleta de cores. O tamanho
da paleta é limitado a 256 cores, fazendo com que o GIF seja mais adequado para imagens
que não contenham muitas gradações finas de cores. GIF usa uma técnica de compressão com
pouca perda que pode resultar em arquivos muito pequenos.
BMP: criado pela Microsoft, suporta até 24 bits para cor e as imagens são mais
frequentemente armazenadas sem compressão, resultando em arquivos de tamanho grande.
TIFF: originalmente desenvolvido pela Aldus Corporation, suporta até 24 bits para cor
e pode ser comprimido com algoritmos como: LZW, CCITT ou JPEG.
Dois desses formatos mais utilizados evoluíram para novos formatos, apresentando
características importantes para esse estudo. Os dois novos formatos são: PNG (Portable
Network Graphics), que é sucessor do formato GIF (Graphics Interchange Format), e o SPIFF
12
(Still Picture Interchange File Format), que é o substituto oficial para o formato de arquivo
JFIF (JPEG File Interchange Format) para armazenamento de dados JPEG.
Os dois formatos de arquivo de imagem que serão apresentados a seguir têm como
característica principal de relevância dentro do escopo desse estudo a possibilidade de embutir
metadados no cabeçalho do arquivo.
2.3.1- Formato PNG
PNG (Portable Network Graphics) (ROELOFS, 1997) é um formato de arquivo de
imagem que pretende ser não só o sucessor do formato GIF, como também o mais extensível
e livre. Os dois formatos PNG e GIF possuem uma característica importante que é a
possibilidade de dados textuais poderem ser armazenados dentro do arquivo da imagem, o que
significa uma forma de armazenar metadados.
Os objetivos para esse formato de imagem são (ROELOFS, 1997a): portabilidade, não
somente através de plataformas e sistemas operacionais, mas também através de softwares;
compressão sem perda; compatível com a rede na crescente era da WWW; criação de um
novo formato gráfico capaz de substituir o GIF.
PNG, endossado formalmente como padrão pelo W3C (World Wide Web
Consortium) em 1996, é um formato livre de patentes. Imagens PNG mapeadas em cores
tendem a ser 20 a 30 % menores do que GIFs. Esquema de entrelaçamento 2D do PNG é uma
boa melhora sobre o entrelaçamento de linhas simples do GIF. Talvez o maior ganho seja o
suporte do PNG para canal alpha, significando a existência de transparência variável em seus
pixels. Pixels GIF são muito transparentes ou muito opacos; pixels JPEG são sempre opacos;
pixels PNG podem ter tantos níveis de transparência parcial quantos forem os existentes.
13
Correção gamma é outro recurso do PNG. Uma imagem criada para parecer perfeita
em um certo sistema é marcada com valores gamma do sistema. Quando a imagem é
mostrada em um sistema diferente o software efetua um cálculo simples para equalizar os
valores gamma, o que significa dizer que a imagem suporta display automático com correção
de brilho e contraste.
Quando a especificação PNG foi criada, multi-imagens GIFs eram uma curiosidade, e
animações estavam completamente excluídas. Foi decidido que PNG seria um formato em
imagem simples. Entretanto, MNG (“Multiple-image Network Graphics”) (MNG, 1997) é
uma proposta de adição à família PNG, para armazenar e transmitir animações de múltiplas
imagens e composição de quadros (“frames”), que está sendo projetada pelos desenvolvedores
do PNG.
PNG já está sendo usado pela Microsoft no Internet Explorer 4.0 beta, Amaya, ANT
Fresco, Arena, Ariadna, Grail, MacMosaic, Omniweb, Voyager, Adobe Photoshop 4.0 e
Microsoft Office 97.
Um arquivo PNG pode armazenar texto no cabeçalho do arquivo imagem. Palavraschave são usadas para indicar o que cada string texto representa.
Um arquivo PNG consiste de uma série de pedaços (“chunks” - que nesse contexto
referem-se às diferentes partes do arquivo PNG) com as seguintes funcionalidades: assinatura
PNG; informações de layout; convenções de nomeação; algoritmo CRC (Cyclic Redundancy
Check). Esse arquivo é sempre iniciado por um pedaço IHDR (cabeçalho da imagem) e
terminado por um pedaço IEND (fim dos dados PNG).
Especificações dos pedaços:
- Pedaços críticos
IHDR (cabeçalho da imagem): largura, altura, tamanho em bits, tipo de cor, método de
compressão, método de filtragem, método de interlace; PLTE (paleta); IDAT (dados da
14
imagem): contém os dados de saída do algoritmo de compressão; IEND: marca o fim dos
dados PNG.
- Pedaços auxiliares (opcional)
cHRM (cromaticidade primária e ponto branco); gAMA (imagem gamma); sBIT (bits
significantes); bKGD (cor do fundo); hIST (histograma da imagem): frequência usada de cada
cor na paleta de cores; tRNS (tranparência): valores em cores RGB (red, green, blue); pHYs
(dimensões físicas em pixels); tIME (data da última modificação da imagem); tEXt (dados
textuais): palavra-chave, separador nulo, texto, título, autor, descrição, direitos autorais, data
da criação, software usado para criação da imagem, responsável legal, aviso de natureza de
conteúdo, fonte (dispositivo usado para criação da imagem), comentário; zTXt (dados textuais
comprimidos): recomendado para blocos de textos grandes contendo: palavra-chave,
separador nulo, método de compressão e texto comprimido.
- Pedaço de tipos adicionais
Definido como PNG-EXTENSIONS. Podem ser criados tipos adicionais nesse
pedaço, caso os tipos existentes nos pedaços anteriores não sejam satisfatórios à necessidade
do usuário.
2.3.2- Formato SPIFF
SPIFF (Still Picture Interchange File Format) (SPIFF, 1995), um novo padrão que
está sendo suportado por poucas aplicações, é o substituto oficial para o formato de arquivo
JFIF (JPEG File Interchange Format) para armazenamento de dados JPEG. SPIFF é um
formato de arquivo bitmap genérico definido pela ITU (International Telecommunication
Union) e ISO/IEC (International Standards Organization/International Electrotechnical
15
Commision) para armazenamento, compressão, e troca de cor ou escala cinza, imagens em
tons contínuos, e dados de imagem bitonais.
Quando o “Joint Photographic Experts Group” estabeleceu o padrão de compressão
JPEG em 1990, não foi criado um formato de arquivo padrão correspondente para armazenar
e trocar dados JPEG. O SPIFF foi então criado em 1995 para ratificar esta omissão do comitê
JPEG. O formato JFIF (JPEG File Format) foi criado em 1992 só que não tão bem projetado,
especificado nem flexível como o SPIFF.
SPIFF é um padrão oficial que estende características do JFIF incluindo suporte para
mais espaços de cores e uma cláusula para especificação de informações gamma da imagem.
Arquivos SPIFF são compostos de quatro seções principais: cabeçalho, diretório de
informação, dados de imagem, e dados indiretos (que são informações muito grandes para
caberem no diretório de informação).
A especificação do SPIFF não define um único padrão de extensão de arquivo ou
indicador de tipo. É recomendado que a extensão “.JPG” seja utilizada para arquivos SPIFF
contendo perda na compressão e “.SPF” seja utilizada para as outras variantes do SPIFF que
não contêm perda na compressão (MURRAY, 1996).
Constituem características do SPIFF: cores bitonais para 32 bits; tipos de compressão:
Modified Huffman, MR, MMR, JBIG, JPEG e uncompressed; tamanho máximo da imagem
de 4Gx4G pixels, 64kx64k pixels para JPEG baseado em linha não titulado; não possui
imagens múltiplas por arquivo; formato numérico Big-endian; utilizado em todas as
plataformas; e suportado por todas as aplicações que suportam formato JFIF.
O cabeçalho do SPIFF tem 36 bytes de tamanho com o seguinte formato:
typedef struct_SpiffHeader
{
DWORD MagicNumber;
WORD HeaderLenght;
CHAR Identifier (6);
WORD Version;
16
BYTE ProfileId;
BYTE NumberComponents;
DWORD ImageHeight;
DWORD ImageWidth;
BYTE ColorSpace;
BYTE BitsPerSample;
BYTE CompressionType;
BYTE ResolutionUnits;
DWORD VerticalResolution;
DWORD HorizontalResolution;
} SPIFFHEADER;
Nesse cabeçalho, MagicNumber é o valor de identificação para arquivos SPIFF.
HeaderLenght contém o tamanho do cabeçalho. Identifier contém valores de identificação
adicionais. Version contém a maior e a menor versão SPIFF do arquivo. ProfileId especifica
as características que o leitor deve suportar para ler o arquivo. NumberComponents indica o
número de componentes de cor (canais) na imagem primária (1- típica imagem em escala
cinza e 3 - para imagem RGB (red, green, blue) ou CMY (cyan, magenta, yellow)).
ImageHeight e ImageWidth armazenam o tamanho da imagem, ImageHeight é o número de
linhas digitalizadas na imagem primária e ImageWidth é o número de amostras por linhas.
ColorSpace especifica o sistema de coordenadas de espaço de cor usado para definir as
amostras. BitsPerSample especifica o número de bits por amostra. CompressionType indica o
tipo do algoritmo de compressão usado na codificação dos dados da imagem. ResolutionUnits
indica o tipo de unidade usada para expressar a resolução da imagem. VerticalResolution e
HorizontalResolution contêm a resolução da imagem.
Seguindo o cabeçalho existe um diretório (Directory Entry 1, Directory Entry 2,
Directory Entry N, EOD Entry, Image Data, Indirect Data) de referências para informações
armazenadas dentro do arquivo SPIFF. O diretório conterá ao menos um directory entry, o
End Of Directory (EOD Entry) que é mandatório, sendo que todas as outras entradas são
opcionais.
O cabeçalho de cada directory entry tem 12 bytes de tamanho com o seguinte formato:
17
typedef struct_SpiffDirectoryEntry
{
WORD EntryMagic;
WORD EntryLenght;
DWORD EntryTag;
} SPIFFDIRECTORYENTRY;
Nesse caso, EntryMagic identifica o início de cada directory entry e este valor é
sempre FFE8h. EntryLenght é o tamanho da entrada. EntryTag é um campo de identificação
de formato e tipo de dado armazenado ou referenciado por um directory entry.
Cada directory entry terá sempre um único valor de EntryTag e um formato específico
de dados de entrada. Nos directory entry as entradas ocorrem em ordem contígua após o
cabeçalho e antes dos dados da imagem. A última entrada no diretório é a entrada EOD (End
Of Directory) que marca o fim do diretório.
2.3.3- Análise Comparativa dos Formatos
A Tabela 2.1 apresenta, de forma sintetizada, algumas características existentes nos
formatos PNG, GIF e SPIFF (PNG, 1997) (BOUTELL et alii., 1997) (SPIFF, 1995)
(MURRAY, 1996).
No cabeçalho da imagem dos formato PNG e SPIFF existem informações técnicas
com relação à imagem. No PNG o pedaço denominado de cabeçalho da imagem (IHDR)
contém somente informações de largura, altura, tamanho em bits, tipo de cor, método de
compressão, método de filtragem e método de interlace; outros tipos de informação são
colocados em pedaços separados para cada um deles, e a informação textual é armazenada no
pedaço padrão texto (tEXt) com palavras-chave adequadas, podendo ser múltiplo.
No formato SPIFF está definido um tipo para o cabeçalho (SpiffHeader) do arquivo
contendo campos como tamanho do cabeçalho, identificador, versão, perfil da aplicação,
número de componentes de cores, número de amostras por linha, espaço de cor, número de
18
bits por amostra, tipo de compressão, unidade de resolução, resolução vertical e resolução
horizontal. Existe também a possibilidade de definir outros tipos considerados também como
cabeçalhos (SpiffDirectoryEntry) que contêm um ou mais campos, que podem ser opcionais.
Característica
Imagens coloridas indexadas de até 256 cores
Transparência
Display progressivo
Informação auxiliar: comentários textuais e outros dados podem ser
armazenados dentro do arquivo da imagem
Independência completa de hardware e software
Compressão sem perda
PNG
x
x
x
x
GIF
x
x
x
x
x
x
x
x
SPIFF
x
x
x
x
JPG SPF
x
(pouca
perda)
Imagens múltiplas em um arquivo (para animação)
Imagens em cores reais, até 48 bits por pixel
Imagens em escala cinza até 16 bits por pixel
Canal alpha completo para transparência geral
Informação gamma da imagem, a qual suporta display automático da
imagem com correção de brilho/contraste
Checagem automática de integridade de arquivo e detecção de erros
de transmissão
Completamente livre de patentes
Toolkit implementador padrão disponível
Benchmarks padrões disponíveis, pontos de referências p/
comparação
x
x
x
x
x
x
x
x
x
x
x
x
TABELA 2.1: Características técnicas dos formatos de arquivo.
O formato SPIFF possui uma especificação mais aberta e melhor estruturada do que o
formato PNG para tratamento desses dados. Esses podem ser colocados no cabeçalho,
possibilitando a definição de tipos de acordo com a necessidade da informação a ser
armazenada a partir do segundo cabeçalho (SpiffDirectoryEntry), pois o primeiro cabeçalho
(SpiffHeader) já tem o seu tipo definido.
Entretanto, o formato PNG possui vantagens técnicas a mais do que o SPIFF,
conforme podem ser observadas pela Tabela 2.1. Já existe uma proposta de adição à família
PNG denominado MNG (“Multiple-image Network Graphics”) objetivando armazenar e
transmitir animações de múltiplas imagens e composição de quadros (“frames”).
19
2.4- O ESTUDO DA IMAGEM EM DIFERENTES ABORDAGENS
Imagem digital é uma fonte rica e subjetiva de informação. Pessoas diferentes extraem
significados diferentes da mesma figura. Existe a necessidade de se tratar de forma
sistemática essa informação para que seus significados possam ser mais facilmente
armazenados.
A maioria das metodologias usadas para encontrar alguma interpretação de conteúdo
na imagem são ainda limitadas, devido a dificuldade das pesquisas que não utilizam ou não
consideram a semântica da informação em imagens. Tipicamente, estas metodologias
dependem de IDs de arquivos, palavras-chave, ou textos associados às imagens, e não
permitem consultar diretamente baseado nas propriedades visuais de imagens (FLICKNER et
alii., 1995).
Nesta seção serão mostradas as diferenças de tratamento da imagem dentro de três
diferentes abordagens da área de Ciência da Computação, a saber: Recuperação da
Informação - Information Retrieval - em Imagem, Banco de Dados de Imagem e Técnicas de
Inteligência Artificial Aplicadas à Recuperação de Imagem.
2.4.1- Recuperação da Informação (Information Retrieval - IR) em Imagem
A abordagem de recuperação da informação (IR) consiste na recuperação de todos os
documentos cujas propriedades são similares às apresentadas na consulta (RABITTI &
SAVINO, 1992). As técnicas para recuperação podem ser classificadas em duas: técnicas de
casamento exato e casamento parcial. A técnica de casamento exato apresenta a desvantagem
de não conseguir recuperar documentos cuja representação casa parcialmente, e por isto a
20
técnica de casamento parcial é mais poderosa no que diz respeito a eficácia do resultado das
consultas.
Em Information Retrieval a consulta pode ser melhorada, permitindo ao usuário
expressar explicitamente um grau de incerteza, e possibilitando a recuperação de imagens,
mesmo existindo um casamento parcial entre a consulta e a imagem existente.
2.4.1.1- Características
Nesta abordagem existe a preocupação de possibilitar ao usuário a especificação de
consultas imprecisas para expressar o conhecimento incerto do conteúdo de imagens a serem
pesquisadas.
A tecnologia usada para recuperar imagens baseadas em informação visual é chamada
de Recuperação de Informação Visual (VIR – Visual Information Retrieval). A consulta por
conteúdo transforma a consulta do usuário em primitivas da imagem, que correspondem às
propriedades do interior da imagem (SHAH et alii., 1997).
Os componentes da consulta devem ter importâncias diferenciadas pelo usuário e a
regra associada ao componente da consulta pode ter diferentes preferências. Os valores de
preferência e de importância, combinados com o nível de reconhecimento dos objetos
correspondentes nas várias interpretações da imagem, podem ser usados para classificar as
imagens recuperadas.
A linguagem de consulta que permite a formulação de consultas imprecisas possibilita
também limitar o número de imagens recuperadas. Isto é possível pelo fato das imagens
recuperadas serem classificadas em ordem decrescente de relevância. A ordem é dada por
uma marcação associada a cada imagem. Esta marcação possibilita a medida do grau de
21
casamento entre cada imagem e a consulta. É obtida através da combinação dos valores de
preferência e importância associados a cada predicado na consulta especificada.
A linguagem de consulta adotada pela abordagem de recuperação da informação (QLIR) possui as seguintes características: não é baseada na lógica booleana; permite limitar o
número de imagens a serem recuperadas; permite associar valor de importância a cláusulas de
objetos diferentes; permite associar valor de preferência a regras posicionais diferentes.
A função de classificação que mede a relevância de cada imagem recuperada é
dependente do grau de reconhecimento de cada objeto presente na imagem, e dos valores de
importância e preferência de cada termo da consulta associados a cada regra posicional
verificada.
Sistemas de recuperação de informação visual (VIR – Visual Information Retrieval)
são classificados usando os seguintes critérios (CHANG et alii., 1997): automação,
características
multimídia,
adaptabilidade,
abstração,
generalidade,
categorização
e
processamento de domínio comprimido.
Uma característica dos sistemas VIR é o fato da pesquisa ser aproximada, requerendo
uma avaliação de similaridade visual. Os ítens retornados no topo da lista dos resultados da
consulta têm maior similaridade com relação a entrada da consulta. Mas os ítens retornados
raramente têm um casamento exato com os atributos especificados na consulta. Esses sistemas
podem também usar entrada humana direta e outros dados suportados para melhor indexar a
informação visual.
2.4.1.2- Exemplos
•
VIRAGE
A tecnologia VIR da Virage (GUPTA, 1997) suporta um conjunto de características
para recuperação de imagem com alto nível de precisão. Suporta várias propriedades de
22
imagem tais como cor, textura, estrutura, e composição. O mecanismo VIR é extensível,
possibilitando a adição de mais propriedades no conjunto constante disponível. A Interface de
Linha de Comando Virage (VCLI – Virage Command Line Interface) permite criar aplicações
que trabalham com outras aplicações ou sistemas, permitindo ao usuário analisar, ajustar
pesos e desempenhar buscas. VCLI recupera as imagens do banco de dados em tempo de
execução.
Virage desenvolveu um conjunto de ferramentas GUI (graphical user interface)
incluindo facilidades para inserção e consulta de imagem, ajuste de pesos para reconsulta,
caixas de diálogos para criação de campos para metadados e inclusão de chaves (VIRAGE,
1998). Virage utiliza o modelo do VIMSYS (apresentado na seção 2.4.2.3).
•
QBIC (Query By Image Content System)
QBIC, Consulta por Conteúdo de Imagem, é um sistema desenvolvido pela IBM que
permite fazer consultas a banco de dados baseadas no conteúdo visual da imagem (QBIC,
1997). Através dos vetores de características computadas de uma imagem, usa uma
abordagem baseada em similaridade. As consultas incluem também padrão SQL e predicados
de texto/palavra-chave. A interface gráfica de usuário permite a construção de consultas,
amostra de resultados múltiplos, a re-consulta baseada nas imagens retornadas, possibilitando
ainda a modificação e a re-consulta.
As características importantes são: técnica de indexação por características que
descrevem o conteúdo de imagem e vídeo; técnicas de segmentação automática para imagem
(para identificar objetos) e vídeos (para identificar objetos estáticos e em movimento e
tomadas de vídeo – conjuntos de quadros); e recuperação por similaridade (igualar percepção
humana).
Imagens e vídeos são processados para extrair características descrevendo seus
conteúdos que são armazenadas no banco de dados do sistema. Métodos identificam objetos
23
em imagens estáticas, segmentos de vídeo em sequências pequenas (chamadas de tomadas) e
características computadas descrevendo cor, textura, forma, posição, ou informação em
movimento. Na consulta ao banco de dados, imagens e segmentos de vídeo podem ser
recuperados através de exemplo (“mostre-me imagens semelhantes a esta imagem”) ou
através da seleção de propriedades. Permite também efetuar consultas baseadas em esboços e
desenhos construídos pelo usuário, padrões de cor e textura selecionados, objetos em
movimento e outras informações gráficas (FLICKNER et alii, 1995).
2.4.2- Banco de Dados de Imagem
O impulso para a origem de bancos de dados de imagem teve início com a
comunidade de interpretação de imagem (GROSKY et alii., 1992). Na década de 1990 as duas
comunidades, a de interpretação de imagem e a de banco de dados convergiram para uma
concepção comum devido à aceitação de que imagem e texto deveriam ser tratados
igualmente. Imagens devem também ser capazes de serem recuperadas por conteúdo e devem
ser componentes integrais de uma linguagem de consulta.
Um banco de dados de imagem é um banco de dados que armazena imagens e suporta
tipos de dados de imagem com um conjunto de funções associadas.
Quando pensamos em banco de dados de imagem temos que levar em conta que a
natureza de imagens como grandes estruturas de arquivo binárias requerem considerações
especiais em termos de suas estruturas, organização e capacidades de armazenamento.
24
2.4.2.1- Características
O tratamento de dados (mídias) do tipo imagem e vídeo no ambiente de banco de
dados aconteceu primeiramente na arquitetura relacional e depois na arquitetura orientada a
objetos (GROSKY, 1997).
Após algumas experiências de trabalho com esses tipos de dados na arquitetura
relacional, foi descoberta uma limitação: o não casamento/combinação entre a natureza dos
dados e a forma que ambos o usuário e o sistema são obrigados a consultar e operar esses
dados. Abordagens de indexação padrão não funcionam para consultas baseadas em conteúdo
do dado multimídia.
O gerenciamento de dados multimídia em ambiente de banco de dados tem levado a
idéias conclusivas como: uma consulta multimídia tem que ser vista de maneira diferente da
consulta padrão de banco de dados e mais parecida com a consulta utilizada na abordagem de
“information retrieval”. Porém, esse conceito ainda não foi totalmente implementado em
banco de dados.
As representações lógica e física de objetos multimídia são definidas no modelo de
dados multimídia do domínio. Vários tipos de informação devem ser capturados no modelo de
dados multimídia: a estrutura detalhada dos vários objetos multimídia; propriedades e
operações dependentes de estruturas dos objetos multimídia; relacionamentos entre objetos
multimídia e objetos do mundo real; pedaços de objetos multimídia com representação de
relacionamentos entre eles e os métodos usados para determiná-los; propriedades,
relacionamentos e operações de objetos do mundo real.
O processo de recuperação em banco de dados de imagem deveria possuir a
característica de consultas imprecisas, até pelo fato de que no processo de recuperação da
imagem descrições semânticas poderão estar associadas a componentes da imagem e
25
múltiplas interpretações poderão ser geradas dependendo da descrição (RABITTI &
SAVINO, 1992).
A abordagem de banco de dados adota uma linguagem de consulta booleana, onde o
processamento da consulta é baseado no casamento exato entre a consulta e as imagens
recuperadas; além disso, não é possível medir a relevância das imagens recuperadas (não é
possível a listagem das imagens de acordo com uma ordem de relevância).
2.4.2.2- Abordagem VIMS
Abordagens denominadas VIMS (Visual Information Management Systems), Sistemas
de Gerenciamento de Informação Visual, que oferecem meios para recuperar imagens,
algumas vezes também são chamados de Sistemas de Banco de Dados Visuais (LORENZ,
1997).
Em Sistemas de Gerenciamento de Informação Visual (VIMS) a tarefa mais
importante é permitir ao usuário pesquisar pela informação. Duas classes de pesquisa são
reconhecidas (JAIN & GUPTA, 1996): - Pesquisa por Especificação: uma combinação de
palavras-chave que descreve informação semântica, atributos da imagem, propriedades de um
objeto da imagem, domínio de objetos definidos, medidas de domínio ou objetos imagens e
suas posições absolutas ou relativas; - Pesquisa por Exemplo: o sistema constrói os
parâmetros da consulta a partir de um objeto imagem exemplo podendo ser feita, por
exemplo, pela comparação de cor ou forma de uma imagem escolhida, ou até uma imagem
completa.
Nesta abordagem, Browsing é um modo de pesquisa navegacional, no qual a próxima
consulta é baseada nos resultados da consulta anterior. Enquanto a tarefa de pesquisa é
localizar uma imagem a partir de sua especificação parcial, um browser começa com uma
26
pequena especificação do usuário, possibilitando trocar os parâmetros da consulta
adicionando ou removendo restrições nas condições de pesquisa, trocando pesos em
consultas.
São características dos Sistemas de Gerenciamento de Informação Visual: as coleções
podem ser de domínio específico ou geral; suporte à abstração para manter explícito os
mapeamentos entre informação de níveis diferentes; modelo de dados flexível para que
existam meios de combinar características diferentes dentro de níveis de abstração diferentes;
velocidade no processamento da consulta; suporte a definição de dados para permitir ao
usuário definir os requisitos de suas coleções com flexibilidade.
O papel do modelo de dados em sistemas de banco de dados é prover uma linguagem
visual ou textual para expressar as propriedades de objetos de dados que serão armazenados e
recuperados. A linguagem de banco de dados deve permitir ao usuário definir, atualizar e
pesquisar objetos e propriedades. Para sistemas de gerenciamento de informação visual o
modelo de dados assume o papel adicional de especificar e computar níveis diferentes de
formas de abstração de imagens e vídeos. O modelo de dados necessita das seguintes
propriedades:
-
capacidade de acessar uma matriz de imagem completa ou em partes;
-
características da imagem devem ser consideradas entidades independentes e
também como relacionadas à imagem;
-
características da imagem devem ser ordenadas em uma hierarquia (as mais
complexas construídas acima das simples);
-
métodos alternativos devem existir para derivar uma característica semântica
específica das características da imagem;
-
o modelo de dados deve suportar dados espaciais e estruturas de arquivo que
infiram parâmetros espaciais associados às imagens e características das imagens;
27
-
no caso de regiões complexas da imagem as características da imagem devem ser
representadas como uma sequência de entidades aninhadas ou definidas
recursivamente.
O modelo de dados geral dos sistemas VIM está organizado em níveis. Em cada nível
todos os objetos têm um conjunto de atributos e métodos associados, onde os atributos têm
suas próprias representações e estão conectados a uma hierarquia de classe de atributo. As
relações podem ser espaciais, funcionais ou semânticas. O modelo original para o sistema
VIM é o modelo do VIMSYS, apresentado a seguir.
2.4.2.3- Exemplos
•
VIMSYS
VIMSYS (Visual Information Management Systems) é um Sistema de Gerenciamento
de Informação Visual, parte do projeto InfoScope da Universidade de Michigan (GUPTA et
alii., 1991). O objetivo do projeto VIMSYS é criar um sistema de gerenciamento de
informação que possa recuperar imagens ou partes de imagens além de dado textual. A ênfase
não está na interpretação das imagens, mas na organização de imagens e projeto de métodos
de acesso para responder as consultas.
O projeto VIMSYS pretende: estabelecer um relacionamento entre atributos
semânticos não computáveis de imagens e características computáveis desses atributos;
desenvolver uma metodologia para organizar e indexar as imagens e informações relacionadas
a imagem, levando em consideração atributos semânticos através da associação expressa no
item anterior; formular uma medida de similaridade para comparação quantitativa entre os
atributos semânticos.
O modelo de dados, representado pela Figura 2.1, foi desenvolvido em quatro planos
diferentes de entidades de informação que são: objetos domínio e relações (DO), eventos
28
domínio e relações (DE), objetos imagem e relações (IO), e representações de imagem e
relações (IR). Todos os objetos têm um conjunto de atributos e métodos associados. As
relações podem ser espaciais, funcionais ou semânticas.
FIGURA 2.1: Modelo de Dados do VIMSYS.
-
Plano IR (representação de imagem): uma representação de imagem é um tipo abstrato de
dado para cada objeto imagem no plano IO. Podem existir múltiplas representações de
imagem para cada objeto imagem.
-
Plano IO (objetos imagem): nesse plano existem três classes básicas de objetos: imagens,
características de imagem e organização da característica. Esse nível está dividido em dois
sub-níveis: sub-nível de segmentação e sub-nível de característica.
-
Plano DO (objeto domínio): especificação da semântica de nível das entidades domínio.
Os objetos são conectados através de um grafo objeto-relação, onde qualquer objeto pode
ser uma subclasse ou protótipo de um ou mais objetos no plano IO.
-
Plano DE (evento domínio): representa eventos definidos sobre sequências de imagens,
com o propósito de permitir que eventos computados de sequências de imagens ou vídeos
sejam entidades consultáveis.
29
•
AMORE
Amore (Advanced Multimedia Oriented Retrieval Engine) é um sistema de
recuperação de imagens em banco de dados de imagens desenvolvido pela NEC (AMORE,
1998). Nele as imagens podem ser recuperadas por meio de palavras-chave, por categoria
temática, por similaridade visual ou por similaridade semântica.
O banco de dados de imagem está dividido em seis categorias temáticas diferentes
(arts, movies, sports, travel, vehicles, wildlife) para permitir a pesquisa por similaridade
semântica (por exemplo, quando se quer pesquisar imagens semanticamente similares à
imagem que está selecionada, ele recupera as imagens que estão classificadas na mesma
categoria que a imagem selecionada). Existe também a possibilidade de pesquisa diretamente
por categoria temática (por exemplo, quando é escolhida uma das categorias aparecem todas
as imagens referentes a ela).
A similaridade visual trata somente os aspectos de cor e forma da imagem
determinados na condição da consulta, verificando se estas são similares aos determinados nas
imagens armazenadas. Essa similaridade de cor e forma é medida através de termos como
“Not Important”, “Little Important”, “Important” ou “Very Important”, que são escolhidos
como condição para a consulta.
•
EXCALIBUR
Excalibur Visual RetrievalWare (EXCALIBUR) é um sistema desenvolvido pela
Excalibur Technologies Corporation, que permite recuperar e indexar automaticamente dados
visuais. Usuários podem submeter consultas usando exemplos de dados visuais ou
descrevendo uma definição do tipo de imagem a ser consultada de acordo com a cor, textura,
forma e brilho, onde a cada um desses atributos pode ser associado um grau de importância
relativa.
30
A importância desses atributos é definida por meio de uma escala que vai de 0 (zero) a
5 (cinco), significando que o mais importante é definido como 5 e o que não tem importância
para a consulta é definido como 0 (zero).
A Excalibur Technologies Corporation, por meio de uma parceria feita com a
Computer Associates, fabricante do Banco de Dados Orientado a Objetos Jasmine (CAI,
1998), desenvolveu esse sistema denominado Excalibur Visual RetrievalWare, utilizando o
Jasmine para o armazenamento das imagens.
2.4.3- Técnicas de Inteligência Artificial Aplicadas à Recuperação de Imagem
A Inteligência Artificial, como as abordagens apresentadas anteriormente, também
permite tratar dados do tipo imagem, e as técnicas usadas, na grande maioria, são para
descrição e recuperação das características das imagens de forma automática.
O objetivo fundamental da Inteligência Artificial (RICH & KNIGHT, 1993) é
construir programas que resolvam problemas difíceis para o ser humano. No coração da
inteligência artificial está a hipótese do sistema de símbolos físicos possuir os meios
necessários e suficientes para a ação inteligente em geral. As evidências para a sustentação da
hipótese do sistema de símbolos físicos vêm não apenas de áreas como jogos, mas também de
áreas como a percepção visual, onde é maior a tentação de suspeitar-se da influência de
processos subsimbólicos. Modelos subsimbólicos, são por exemplo, as redes neurais. Esta
hipótese forma a base da crença de que é possível criar-se programas que executam tarefas
inteligentes, que no momento são realizadas por pessoas.
31
2.4.3.1- Características
Dentro dessa abordagem pode ser verificado que as características de descrições de
imagens são geradas automaticamente através de técnicas de inteligência artificial (IA), como
por exemplo, redes neurais. Essas informações podem então ser colocadas em um banco de
dados.
Três técnicas importantes de IA são: busca – proporciona um meio de solucionar
problemas para os quais não existe disponível uma abordagem mais direta nem uma estrutura
na qual qualquer técnica direta disponível possa ser inserida; uso do conhecimento –
proporciona um meio de solucionar problemas complexos, explorando as estruturas dos
objetos envolvidos; abstração – proporciona um meio de separar características importantes e
variações das muitas características irrelevantes.
No estudo de (MEYER, 1997) podem ser identificadas técnicas de IA para o
tratamento de imagens. O principal enfoque de seu estudo é a classificação e utilização de
descritores de texturas de imagens e sua aplicabilidade na recuperação de imagens por
conteúdo em bancos de dados relacionais. Pode ser observado que o reconhecimento e a
extração de características com relação às texturas de imagens são feitos automaticamente,
utilizando a técnica de redes neurais, especificamente treinadas para este propósito.
Redes neurais (arquiteturas conexionistas) são dispositivos de processamento
distribuído baseados na operação do cérebro e no funcionamento de neurônios biológicos.
Elas são compostas de muitos elementos de processamento paralelos interconectados, onde
cada um desempenha operações numéricas simples e comunica seus resultados para seus
vizinhos através de conexão ponderada. Ajustando os pesos nestas conexões a rede pode ser
feita para alterar sua resposta para padrões particulares. Redes neurais não são programadas
32
diretamente, mas por um algoritmo de aprendizado, cujo objetivo é encontrar o conjunto de
pesos ótimos, e assim a resposta requerida para um problema particular.
2.4.3.2- Exemplo
•
IRIS
IRIS (Image Retrieval for Information System) é um sistema para recuperação baseado
no conteúdo de imagens, desenvolvido na Universidade de Bremen pelo grupo de Inteligência
Artificial (HERMES et alii., 1995). Esse projeto combina métodos e técnicas de computação
visual e Inteligência Artificial de modo a gerar descrições de conteúdo das imagens em uma
forma textual automaticamente.
O Sistema IRIS consiste de dois módulos: o módulo de análise da imagem (para
construir o banco de dados), e o módulo de recuperação da imagem. O módulo de análise da
imagem consiste de quatro sub-módulos: três módulos extraem cada um características de cor,
textura e contorno, e o quarto módulo é responsável pelo reconhecimento do objeto.
Para a extração de características de cor é feita a segmentação da imagem baseada na
cor e para cada elemento é computado um histograma de cor. Para a extração de
características da textura é feita a segmentação da imagem baseada na textura, e os valores
calculados são as entradas de uma rede neural retro-propagável que classifica a textura. A
descrição de forma, baseada em contorno, consiste de três passos: detecção de borda baseada
no gradiente, determinação de contornos de objeto, e análise de forma. A análise de forma
resulta em uma lista de parâmetros de região que serão dados ao modelo através de
reconhecimento do objeto.
Todas as anotações baseadas na cor, textura, contorno e reconhecimento de objeto são
geradas automaticamente. O módulo de recuperação da imagem é baseado na semântica
usando conceitos de linguagem natural.
33
2.5- CONSIDERAÇÕES FINAIS
Após a análise das três abordagens estudadas nesse capítulo (Recuperação da
Informação - Information Retrieval - em Imagem, Banco de Dados de Imagem e Técnicas de
Inteligência Artificial Aplicadas à Recuperação de Imagem) algumas considerações
importantes podem ser feitas com relação ao tratamento da imagem:
Information Retrieval (IR) em imagem, ou VIR (Visual Information Retrieval) –
recuperação de informação visual, preocupa-se com o tratamento das informações subjetivas
existentes na imagem. Adota uma linguagem de consulta (QL-IR) que permite expressar
incerteza na composição de imagens a serem pesquisadas, através da representação da
consulta utilizando valores de importância e preferência, existindo casamento parcial entre a
consulta e a imagem existente.
Banco de Dados de Imagem, ou banco de dados visuais, leva em consideração as
diferentes interpretações da imagem e diferentes níveis de reconhecimento dos componentes
da imagem. Entretanto, adota essencialmente uma abordagem de banco de dados pois usa uma
linguagem de consulta booleana. O processamento da consulta (QL-DB) é baseado no
casamento exato entre a consulta e as imagens recuperadas, e não é possível medir a
relevância das imagens recuperadas. A preocupação maior está no grau de flexibilidade e
abstração para a elaboração do modelo de dados do sistema, que possibilitará o gerenciamento
da informação visual. Caso haja a possibilidade de especificar-se consultas imprecisas em um
sistema deste tipo, isto poderá aumentar significativamente a eficácia do processo de
recuperação em banco de dados de imagem.
Técnicas de Inteligência Artificial Aplicadas à Recuperação de Imagem utilizam como
principal enfoque a geração automática das características que descrevem a imagem, e
geralmente essas características são relacionadas às informações técnicas da imagem.
34
Com relação às abordagens estudas nesse capítulo verifica-se, de certa forma, o uso de
elementos descritores para a representação das características das imagens, embora ainda não
sistematicamente organizados e especificados. Por exemplo, o sistema VIMSYS define planos
diferentes para a representação das informações das imagens, mas não define com detalhe
quais elementos fazem parte de cada um desses planos; e com relação aos outros sistemas
estudados, todos especificam elementos descritores, mas não se preocupam em identificar
esses elementos de forma a abranger grande número deles, que incluam tanto elementos para
descrever as informações técnicas da imagem como para descrever as informações de
conteúdo semântico da imagem.
Uma outra forma de armazenamento de metadados com relação à imagem foi
apresentada na seção 2.3, a qual possibilita embutir metadados no próprio cabeçalho do
arquivo. Fizeram parte desse estudo os dois formatos de arquivo de imagem (PNG e SPIFF).
O próximo capítulo apresenta o estudo de padrões e arquiteturas de metadados,
importantes para a compreensão do enfoque apresentado nesta Tese.
35
CAPÍTULO 3
PADRÕES E ARQUITETURAS DE METADADOS
Segundo (KERHERVÉ, 1997), as pesquisas relacionadas a metadados devem agora ir
em direção à integração e interoperação de proposições e padrões existentes. As pesquisas
nesta direção incluem questões de projeto e desenvolvimento de: modelos de metadados
extensíveis que possam ser adaptados a domínios de aplicação específicos; ferramentas
permitindo integração e interoperação de conjunto de metadados oriundos de diferentes fontes
e representados a partir de padrões diferentes; gerenciadores de metadados extensíveis
oferecendo serviços básicos de suporte a funções essenciais tais como acesso, transferência,
descoberta ou análise para o desenvolvimento de aplicações específicas.
Estes direcionamentos requerem um trabalho importante de modelagem de metadados,
e mais especificamente, de níveis de modelagem e metamodelos correspondentes. O
metamodelo para metadados significa os conceitos usados para definir o modelo de
metadados.
Para atender a estes requisitos de integração e interoperação, a literatura de metadados
utiliza os termos padrão, modelo e arquitetura. Esse trabalho não leva em consideração uma
definição nítida entre os termos padrão e modelo, uma vez que na literatura esses conceitos
ainda se confundem. Modelos de metadados são requeridos para descreverem o conteúdo e a
semântica dos dados em qualquer domínio de aplicação. Basicamente, todos os padrões de
metadados são modelos que, a partir de um consenso das comunidades de pesquisa passaram
a ser utilizados como padrões. Geralmente, esses padrões contêm elementos descritores de
dados específicos que são dependentes das finalidades distintas de informações que
armazenam. O papel das arquiteturas de metadados é descrever o ambiente de forma a prover
36
a interoperabilidade entre os vários padrões de metadados existentes. Metadados também
denominados descritores de dados podem ser definidos a nível de pixel ou a nível semântico.
Neste capítulo, será feito um estudo de padrões de metadados mais relacionados a
imagem, que permitem de alguma forma descrever imagens. Serão apresentadas também as
arquiteturas de metadados existentes e uma arquitetura de modelagem, seguido de exemplos
de sistemas que utilizam metadados para imagem.
3.1- PADRÕES
Esta seção apresenta o estudo de dois padrões de metadados que possibilitam a
descrição de imagens, porém não são totalmente adequados à descrição mais eficiente de
imagens, pois não viabilizam descritores para todas as suas características importantes.
3.1.1 - Dublin Core
O Dublin Core Metadata Element Set, ou simplesmente Dublin Core (DC) (BROSS,
1997), foi definido inicialmente como um conjunto de treze elementos básicos propostos no
primeiro workshop organizado em 1995 pelo OCLC (Online Computer Library
Center)/NCSA (National Center for Supercomputer Applications) (WEIBEL et alii., 1995),
com o objetivo de desenvolver um registro de metadados para descrever informação
eletrônica na rede. Ficou definido que documento (DLOs - Document like objects) seria o
elemento principal para descrever recursos de informação na rede. Apesar de um documento
do ambiente Internet poder ser composto de textos, imagens, áudio, vídeo ou até outro
hiperdocumento, um documento deveria ser considerado como um objeto global. O principal
37
objetivo desse padrão é identificar e definir um conjunto de elementos de metadados para
definir os recursos na Web.
No workshop de metadados para imagem CNI (Coalition for Networked
Information)/OCLC (MILLER, 1996), acontecido em setembro de 1996, os elementos do
conjunto de dados iniciais do DC foram modificados para incluir requisitos de que servem
para descrever tanto texto como imagem tais como um campo para descrição de conteúdo
(DC.description) e um campo para descrição de direitos autorais (DC.rights). Ficando o
Dublin Core com 15 elementos descritores.
O workshop chamado “W3C Workshop on Distributed Indexing and Searching”
(WEIBEL, 1996), que aconteceu em maio de 1996, resultou em uma proposta para embutir
metadados em HTML.
O 4o Workshop Dublin Core, que aconteceu em março de 1997, em Canberra (HEERY
et alii., 1997), continuou discutindo questões relacionadas aos elementos e sintaxe do Dublin
Core, e formalizou qualificadores adicionais (“The Canberra Qualifiers”): LANGUAGE
(especifica a linguagem para o valor do elemento do campo descritor; geralmente o padrão
tem sido Inglês), SCHEME (especifica um contexto para a interpretação de um determinado
elemento), TYPE (especifica o tipo de um determinado campo e é visto como um nome de
sub-elemento).
O exemplo encontrado em (MOURA et alii., 1998) mapeia o Dublin Core em HTML:
<HEAD>
<TITLE>Metadata: The Essential ....</TITLE>
<META NAME=“DC.title”
CONTENT=“(TYPE=short) Metadata: The Essential....”>
<LINK REL=SCHEMA.dc HREF=“http://purl.org/metadata/dublin_core_elements #title”>
<META NAME=“DC.subject” CONTENT=“(TYPE=keyword) metadata, resource description, ....”>
<LINK REL=SCHEMA.dc HREF=“http://purl.org/metadata/dublin_core_elements #subject”>
<META NAME=“DC.autor”
CONTENT=“(TYPE=name) Moura, A.M.C”>
<LINK REL=SCHEMA.dc HREF=“http://purl.org/metadata/dublin_core_elements#author”>
<META NAME=“DC.date”
CONTENT=“(TYPE=creation)(SCHEME=ISO31)1997-07-30”>
<LINK REL=SCHEMA.dc HREF=“http://purl.org/metadata/dublin_core_elements#date”>
<META NAME=“DC.autor” CONTENT=“(TYPE=email) [email protected]”>
<LINK REL=SCHEMA.dc HREF=“http://purl.org/metadata/dublin_core_elements#author”>
</HEAD>
<BODY>
38
Na Tabela 3.1 a seguir estão apresentados os quinze elementos do Dublin Core
(BROSS, 1997):
DC.subject
DC.description
DC.title
DC.author
DC.publisher
DC.contributors
DC.date
DC.type
DC.format
DC.identifier
DC.source
DC.language
DC.relation
DC.coverage
DC.rights
Assunto: tópico, gênero, ou frases descritivas.
Texto descrevendo o conteúdo do recurso.
Título.
Principal criador.
Agência responsável pela disseminação (por exemplo: instituição
hospedeira).
Outras pessoas responsáveis por aspectos da página.
Data da última atualização: YYYYMMDD
Tipo de recurso: documento.
Formato: texto/html.
URL ou outros identificadores. Pode incluir ISBN.
Fonte original, se originalmente publicado em formato de paper.
Código 3-letras para linguagem da página.
(Sob desenvolvimento; pretende ligar, por exemplo gráfico a página
principal)
A localização espacial e/ou características de duração temporais do
objeto. (em desenvolvimento)
nota de direitos autorais.
TABELA 3.1: Elementos do Padrão Dublin Core.
3.1.2 - SAIF
O padrão SAIF (“Spatial Archive and Interchange Format”) foi desenvolvido como
um meio de compartilhar dados espaciais e espaço-temporais, permitindo descrever imagens
relacionadas a dados geo-espaciais. SAIF foi aprovado em 1993 pelo CGSB (Canadian
General Standards Board) como um padrão nacional no Canadá. Os principais objetivos do
SAIF são (SAIF):
• Manipular virtualmente qualquer tipo de dado geográfico;
• Endereçar tempo de forma que eventos e relacionamentos temporais possam ser
manipulados;
39
• Direcionar requisitos de gerenciamento de dados (tais como suporte a atualizações,
habilidade para integrar dados multimídia, habilidade para interfacear consultas a
bancos de dados);
• Ser apropriado para realizar operações eficazes em ambientes de rede;
• Harmonizar-se com os novos desenvolvimentos de bancos de dados SQL e
iniciativas do “Open GIS” (Padrão para Sistemas de Informação Geográficos);
SAIF é capaz de tratar dados geográficos como qualquer outro tipo de dado simples.
Introduz um número de construções espaciais e temporais. A informação de metamodelo do
SAIF enfatiza a estrutura de dado de objetos, expressa através de um paradigma orientado a
objeto.
No modelo SAIF, a informação é considerada como uma série de objetos, cada um de
um determinado tipo ou classe, onde:
- Objeto Geográfico: um objeto representando um fenômeno do mundo real o qual
existe em um domínio espacial ou espaço-temporal.
- Objeto Espacial: um objeto geográfico definido em uma região no espaço. Aquela
região é representada por um objeto espacial por meio de dois aspectos: geometria e
referenciamento espacial. A geometria define a forma do objeto e é determinada em
termos de pontos, linhas, conceitos de área e volume. Referenciamento espacial provê
a definição marcando o sistema de coordenadas e os sistemas de referência horizontal
e vertical.
- Objeto Espaço-temporal: considera um objeto geográfico definido como uma região
em ambos espaço e tempo. Esta região é representada por um objeto espaço-temporal
através de quatro aspectos de um domínio: geometria, referenciamento espacial,
tempo e referenciamento temporal.
40
Para descrever as definições de classes SAIF é utilizada a CSN (“Class Syntax
Notation”), notação de sintaxe de classes. E OSN (“Object Syntax Notation”) notação de
sintaxe de objetos, é a linguagem usada para construir representações legíveis de instâncias
dos objetos descritos pelo modelo de dados SAIF. Juntas podem ser consideradas como uma
linguagem de definição de dados, denominada SAIFtalk (SAIFtalk = CSN + OSN).
3.2- ARQUITETURAS DE METADADOS
Nesta seção serão apresentadas algumas arquiteturas de metadados encontradas na
literatura que fazem parte do conjunto das mais importantes e conhecidas. As arquiteturas de
metadados descrevem o ambiente de forma a prover a interoperabilidade entre os vários
padrões de metadados existentes.
3.2.1- Arquitetura Warwick
O grupo de trabalho Dublin Core criou uma infra-estrutura chamada de Arquitetura
Warwick (Warwick Framework) (DEMPSEY & WEIBEL, 1996) que tem o objetivo de
agregar pacotes de metadados distintos. A arquitetura suporta administração autônoma e
acessa pacotes de metadados de padrões diferentes (por exemplo: registro baseado em Dublin
Core pode ser um pacote, e SAIF pode ser outro).
Esta arquitetura deve ser modular para permitir que novos metadados sejam criados,
referenciados e associados a outros.
Os componentes básicos da arquitetura são:
- Recipiente: unidade básica onde conjuntos de metadados tipados (os pacotes) são agregados.
41
- Pacote: conjunto de metadados tipados representando um objeto de primeira classe. O
conteúdo do pacote é simplesmente considerado uma sequência de bits. Eles podem ser
divididos em 3 categorias:
• primitivo: formato de metadado primitivo definido separadamente. Podem ser
registros Marc, DC, e outros;
• indireto: referência a um objeto externo. A marca da referência é um objeto de
primeira classe, e pode ter seu próprio metadado e condições para acesso.
• recipiente: coleção de objetos metadados, os quais podem ser pacotes ou outros
recipientes.
A Figura 3.1 mostra um exemplo de recipiente, onde os dois primeiros pacotes estão
fisicamente no recipiente e o último, que define termos e condições para acessar um objeto, é
referenciado no recipiente indiretamente através da URI (Universal Resource Identifier).
FIGURA 3.1: Recipiente
Abaixo, apresenta-se um exemplo da implementação da Arquitetura Warwick em
HTML (MOURA et alii, 1998). Esta implementação propôs as marcas META e LINK do
HTML 2.0 para ser usada para embutir metadados e referenciar uma autoridade de esquema
(DC por exemplo), descrevendo um documento:
<HEAD>
<TITLE>Metadata Support to Internet Resources Description... </TITLE>
<META NAME=“package”
CONTENT=“(TYPE=begin) Dublin Core”>
<META NAME=“DC.title”
CONTENT=“(TYPE=short) Metadata Support....”>
<LINK REL=SCHEMA.dc HREF=“http://purl.org/metadata/dublin_core_elements #title”>
<META NAME=“DC.autor”
CONTENT=“(TYPE=name) Moura, A.M.C”>
42
<LINK REL=SCHEMA.dc HREF=“http://purl.org/metadata/dublin_core_elements#author”>
<META NAME=“package”
CONTENT=“(TYPE=end) Dublin Core”>
</HEAD>
3.2.1.1- Relacionamentos Ativos Distribuídos (DARs)
DARs
(Distributed
Active
Relationships)
(LAGOZE
&
DANIEL,
1997),
Relacionamentos Ativos Distribuídos, é uma extensão da Arquitetura Warwick. É uma
arquitetura, porém foi denominada modelo para representação de dados e metadados.
Expressa os relacionamentos entre recursos de rede, e permite que os relacionamentos sejam
dinamicamente recuperáveis e executáveis. O modelo DAR é baseado nos seguintes
princípios:
• Não existe distinção essencial entre dado e metadado; o que é metadado em um contexto
pode ser dado em outro;
• Recursos podem ser relacionados sem se considerar suas localizações;
• Dado sobre um outro conjunto de dados pode não existir fisicamente, mas pode ser
derivado automaticamente. O relacionamento pode ser um objeto executável, no sentido de
metadado interpretável.
Assim, no modelo DAR pacotes de metadados podem ser virtuais e o dado do pacote
pode existir como resultado da computação em algum outro recurso. O metadado retornado ao
cliente pode ser um objeto executável, ou um manipulador para um objeto usando tecnologia
de objetos distribuídos tal como CORBA.
Nesse modelo, relacionamentos também são dados, sendo identificados e recuperados
como qualquer outro recurso.
A Figura 3.2 mostra um modelo DAR que gerencia os direitos de acesso a um recurso,
baseado em uma lista de controle de acesso. O Pacote de Ativação significa um componente
43
executável do relacionamento que é invocado quando o cliente acessa o conteúdo no Pacote
P1. O Pacote de Descrição no recipiente de relacionamento pode ser alguma descrição textual
do relacionamento. O objeto relação é um objeto digital referenciado através de um
identificador global URN1 no catálogo de relacionamento.
FIGURA 3.2: Exemplo de uso do DARs para gerenciamento de direitos.
3.2.2- Arquitetura de Descrição de Conteúdo (MCF)
A MCF (Meta Content Framework), arquitetura de descrição de conteúdo, constitui-se
basicamente de uma linguagem de descrição de estrutura baseada em um modelo de dados
extensível apresentado pelo Netscape para o consórcio World Wide Web (GUHA & BRAY,
1997).
Por meio da MCF cada aplicação pode adicionar e usar seus próprios tipos de
metadados. O modelo de dados MCF inclui um conjunto de tipos básicos que podem ser
estendidos para acomodar novos tipos de dados. MCF define também um vocabulário básico
que inclui um conjunto de termos comuns usados para descrever o conteúdo de documentos
Web.
Um banco de dados MCF é um conjunto de DLGs (Directed Linked Graph)
compreendendo: um conjunto de etiquetas (referidas como propriedades); um conjunto de
44
nós; um conjunto de arcos, onde cada arco é uma tripla consistindo de dois nós (origem e
destino) e uma etiqueta.
Na MCF os nós podem representar coisas como páginas Web, imagens, categorias de
assuntos, e sites. Podem também representar objetos do mundo real tais como pessoas, lugares
e eventos. Etiquetas são nós que correspondem a propriedades tais como tamanho ou data da
última revisão para descrever páginas web e relações (tal como hiperlinks). Cada
propriedade/etiqueta representa um nó, porém nem todos os nós são propriedades.
A Figura 3.3 apresenta um quadro DLG representando dados MCF. Domain é um tipo
de propriedade, e cada ocorrência desse como etiqueta indicada pela seta é uma propriedade.
As setas são somente ponteiros de algum tipo, e os objetos são estruturas na memória ou
objetos em uma tabela de banco de dados.
FIGURA 3.3: Quadro DLG representando dados MCF.
MCF é representada através de uma sintaxe baseada na XML (Extensible Markup
Language), a qual conserva as vantagens de extensibilidade da SGML (Standard Generalized
Markup Language), considerada como uma linguagem de representação de dados de
propósito geral extensível. Os hiperlinks XML são usados para referenciarem os blocos MCF
armazenados externamente. Esses são importantes pois permitem o compartilhamento e reuso
de descrições, evitando duplicação.
45
3.2.3- Arquitetura de Descrição de Recurso (RDF)
A RDF (Resource Description Framework), arquitetura de descrição de recurso,
especificada pela W3C
(World Wide Web Consortium), provê interoperabilidade entre
aplicações que trocam informações através da Web (LASSILA & SWICK, 1997). RDF
enfatiza facilidades para disponibilizar processamento automático de recursos na Web, com o
objetivo de definir um mecanismo para descrever recursos de informação sobre qualquer
domínio.
Metadado no contexto da RDF significa “dado descrevendo recursos Web”. RDF
utiliza XML (Extensible Markup Language) como sintaxe de codificação para os metadados.
Os recursos descritos pela RDF podem geralmente ser nomeados por um URI (Universal
Resource Identifier).
O núcleo do modelo de dados é definido como: um conjunto de nós, chamado de N;
um subconjunto de N conhecido como os tipos de propriedades, chamados P; um conjunto de
triplas T, cujos elementos são informalmente conhecidos como propriedades, sendo que o
primeiro item de cada tripla é um elemento de P, o segundo item é um elemento de N e o
terceiro item é um elemento de N ou um valor atômico.
Modelos RDF são grafos direcionados rotulados, onde nós representam recursos Web,
e arcos estabelecem propriedades (“Autor”, por exemplo) associadas a um nó. Estas
propriedades servem para representar atributos dos recursos e relacionamentos entre eles.
Tanto os recursos sendo descritos quanto os valores que os descrevem são nós. Os arcos
conectando pares de nós correspondem aos nomes dos tipos de propriedades.
A Figura 3.4 mostra exemplos usando RDF (LASSILA & SWICK, 1997), onde os
círculos são recursos que estão sendo descritos e os retângulos os respectivos valores
dependendo da propriedade indicada na linha de ligação.
46
FIGURA 3.4: Exemplos RDF.
E os exemplos da Figura 3.4 podem ser substituídos pela representação de serialização XML:
3.2.4- Arquitetura Segundo Chang e Zhang
Na arquitetura de metadados proposta por (CHANG & ZHANG, 1997) para tratar
metadados em banco de dados visual, apresentada na Figura 3.5, o metaservidor consiste de
quatro componentes: coletor de metadados, meta-banco de dados, construtor de template e
módulo de refinamento de metadados. Esta é uma arquitetura diferente das apresentadas
47
anteriormente, pois é uma arquitetura operacional, que preocupa-se apenas em descrever as
funcionalidades existentes de forma a permitir trabalhar com os metadados.
O papel do metaservidor é aceitar consultas de usuário, transformar a informação da
consulta para um índice de metadado adequado, distribuir as consultas para os bancos de
dados selecionados e retransmitir suas respostas de volta aos usuários.
Imagens no banco de dados visual podem ser categorizadas com base em similaridade
com relação a um conjunto de imagens, gerando templates.
FIGURA 3.5: Arquitetura de Metadados
O coletor de metadados coleta os metadados do banco de dados de imagem. O banco
de dados então computa as similaridades de suas imagens com todos os templates. O coletor
de metadados então armazena os metadados no meta-banco de dados. Os bancos de dados
registrados no metaservidor ao serem atualizados permitem que os seus metadados sejam
dinamicamente atualizados. O módulo de refinamento inicia periodicamente as atualizações
dos metadados pedindo aos bancos de dados para resubmeterem os metadados ao coletor.
Ao receber uma consulta o metaservidor primeiro extrai várias classes de
características da consulta. A consulta então é decomposta em sub-consultas, cada uma
representando uma classe de características a ser recuperada do banco de dados de imagens.
Depois o mecanismo de busca do metaservidor casa cada sub-consulta com os templates mais
relacionados. As similaridades entre a sub-consulta e o template são então indexadas com a
48
informação estatística correspondente aos bancos de dados para derivar a lista dos bancos de
dados relacionados à sub-consulta. E, finalmente, as listas dos bancos de dados para as subconsultas são agrupadas para produzirem o conjunto final de bancos de dados para a dada
consulta.
3.3- ARQUITETURA DE MODELAGEM SEGUNDO KERHERVÉ
Nas seções anteriores foram mostradas arquiteturas para tratamento de metadados,
tendo cada uma um enfoque específico para o tratamento da informação. Nesta seção será
apresentada uma arquitetura mais genérica proposta por (KERHERVÉ, 1997) apresentando
um formalismo que permite uma representação homogênea dos diferentes níveis de
modelagem.
FIGURA 3.6: Arquitetura de modelagem segundo Kerhervé.
A Figura 3.6 apresenta uma arquitetura de modelagem de quatro níveis que permite a
representação de metadados a partir da estrutura dos elementos de dados. Os diferentes níveis
de modelagem permitem também incorporar modelos e metamodelos para metadados.
•
Nível de dado corresponde às instâncias que são manipuladas no sistema. O tipo de
metadado que pode ser extraído refere-se aos aspectos físicos e de conteúdo dos dados;
•
Nível de descrição do modelo de dados é o conceito usado para descrever dados e
metadados. O metadado referente à estrutura pode ser extraído. Nesse nível pode ser
49
encontrado também o modelo para metadados, que é o esquema de metadados ou estrutura
dos elementos de metadados;
•
Nível de meta-modelo define o formalismo do modelo que é usado no sistema. Descreve
os conceitos usados para representar a informação nos níveis mais baixos. Tais metadados
são usados para interoperabilidade de ferramentas, métodos ou sistemas.
•
Nível de meta-meta modelo é a raiz do nível de modelagem permitindo uma representação
homogênea dos outros níveis e uma interoperação mais fácil entre os modelos dos níveis
mais baixos.
Nesta arquitetura foram escolhidos grafos conceituais pelo poder de expressão e a
possibilidade de manipular tipos e instâncias. Grafo conceitual é um formalismo pelo qual um
universo de objetos podem ser modelados por conceitos e relações conceituais. Um conceito
representa um objeto de interesse ou conhecimento. Uma relação conceitual torna possível
associar esses conceitos.
3.4- SISTEMAS UTILIZANDO METADADOS PARA IMAGEM
•
Sistema VisualHarness
O Sistema VisualHarness (SHAH et alii., 1997) usa componentes da plataforma do
Sistema InfoHarness (SHKLAR et alii., 1994) que suporta dados textuais e faz extensões para
utilizar dados visuais, utilizando dados de imagem. A arquitetura do sistema VisualHarness é
aberta e extensível e permite ser usada por mecanismos de indexação para dados textuais e
mecanismos VIR (Visual Information Retrieval) para acesso baseado no conteúdo da imagem.
VisualHarness usa um sistema de gerenciamento de banco de dados relacional.
O VisualHarness utiliza um componente de acesso baseado em imagem chamado
IBAC (Image Based Access Component), que suporta recuperação de imagem por conteúdo
50
usando BBA (black-box approach), abordagem de caixa-preta proposta por (SHAH et alii.,
1997). O objetivo da BBA é usar representações de características sem conhecer o interior do
mecanismo VIR (Visual Information Retrieval) ou o formato a partir do qual as características
são geradas, armazenadas ou manipuladas pelo mecanismo.
As propriedades da imagem são tratadas como metadados dentro do sistema
VisualHarness. Todos os valores de metadados, isto é, suas características, são précomputadas e armazenadas no banco de dados de metadados. O banco de dados de metadados
possui índices (como por exemplo: índices de texto para dados textuais e índice baseado na
forma para dados imagem) além de atributos baseados em metadados e futuramente extratores
de metadados em tempo de execução. Dados sobre os relacionamentos entre objetos são
criados e armazenados junto com os próprios metadados.
IBAC é responsável por normalizar e escalar a saída de acordo com os pesos
associados a cada propriedade da imagem. Os pesos atribuídos pelo usuário auxiliam na
recuperação por similaridade.
•
DISIMA (DIStributed Image database MAnagement system)
O projeto DISIMA (ORIA et alii, 1997), Sistema de Gerenciamento de Banco de
Dados de Imagem
Distribuído, tem o objetivo de possibilitar consultas baseadas em
conteúdo. Um protótipo está sendo implementado no SGBDOO ObjectStore.
O modelo especificado pelo DISIMA endereça banco de dados de imagem e espacial.
Apresenta similaridades com o modelo VIMSYS (seção 2.4.2.3) pela visão dos dados da
imagem em multi-níveis. Os objetos dentro da imagem são denominados objetos salientes,
isto é, identificados na imagem.
O modelo DISIMA é composto de dois blocos principais: o bloco imagem e o bloco
objeto saliente. O bloco imagem é constituído de dois níveis: o nível imagem e o nível de
51
representação da imagem. O nível imagem permite ao usuário definir uma classificação de
tipo de imagem similar aos sistemas de tipo de objeto, existindo dois modos de representação
para o nível de representação da imagem: o rastreado e o vetorizado.
O bloco objeto saliente é a forma do DISIMA visualizar o conteúdo de uma imagem
com relacionamentos espaciais. Existem dois tipos de objetos salientes: - objeto saliente
lógico é uma abstração de um objeto saliente relevante a alguma aplicação; é um objeto usado
para dar semântica a um objeto saliente físico; - objeto saliente físico refere-se à imagem i; é
parte de uma imagem caracterizada por uma posição (conjunto de coordenadas) no espaço da
imagem. Propriedades adicionais como cor, textura e forma podem ser definidas para um
objeto saliente físico.
O reconhecimento de objeto saliente combina interpretação automática e manual das
imagens. A interpretação automática pode processar vários algoritmos de reconhecimento de
padrões e análise das imagens para capturar o conteúdo de uma imagem.
DISIMA provê uma arquitetura interoperável utilizando as facilidades da arquitetura
CORBA, permitindo aos usuários consultarem a fontes múltiplas de imagem e possivelmente
remotas.
3.5- CONSIDERAÇÕES FINAIS
O
ambiente
completamente
distribuído
provido
pela
Internet
requer
a
interoperabilidade entre padrões e implementações existentes, requisitos importantes para a
extensibilidade e adaptação de modelos e metamodelos.
Os padrões e arquiteturas de metadados estudados devem ser considerados quando se
pensa na utilização de metadados. Dentre os inúmeros padrões estudados, apenas o DC e o
SAIF foram considerados, por darem alguma conotação a dado multimídia. Porém, ambos
52
não são totalmente adequados à descrição mais eficiente de imagens, pois não viabilizam
descritores para todas as suas características importantes.
Dentro das arquiteturas de metadados estudadas pode ser visto que todas se
preocupam com a extensibilidade de seus modelos e com a possibilidade de utilização em
domínios diferentes. A arquitetura Warwick utiliza o conceito de pacote como uma forma de
extensibilidade, aceitando com isso metadados de padrões variados. O modelo DARs provê a
representação de relacionamentos entre recursos de rede, permitindo ainda que os
relacionamentos sejam dinamicamente recuperáveis e executáveis.
As arquiteturas MCF e a RDF usam uma sintaxe baseada em XML e possibilitam a
utilização de metadados em geral, visando a utilização na Web, enquanto que a arquitetura
segundo Chang e Zhang permite um tratamento especial de metadados para bancos de dados
visuais, dando ênfase à parte operacional do tratamento dos metadados.
Os sistemas estudados que utilizam metadados para imagem não se preocupam em
definir todas as características da imagem. Pensando no uso de um banco de dados de imagem
na prática, o que realmente interessa é a possibilidade de efetuar consultas baseadas em
informações referentes ao conteúdo semântico da imagem e não somente características como
cor, textura e formas predominantes. Existem algumas formas, embora limitadas, de utilizar
metadados para imagem, porém não foi encontrada de forma explícita uma especificação
sistemática e mais completa dos elementos descritores ou de suas classificações.
O objetivo desse trabalho vai ao encontro à necessidade de se criar um esquema
conceitual de metadados para imagem, considerando seu uso para a descrição de um banco de
dados de imagem.
O próximo capítulo irá apresentar a especificação de um esquema conceitual de
metadados para imagem que possibilitará a descrição e recuperação de imagens em bancos de
53
dados de imagem, levando em consideração informações técnicas e informações de conteúdo
semântico.
54
CAPÍTULO 4
MODELAGEM CONCEITUAL DE METADADOS PARA IMAGEM
O esquema aqui apresentado vem complementar as abordagens (Recuperação da
Informação - Information Retrieval - em Imagem, Banco de Dados de Imagem e Técnicas de
Inteligência Artificial Aplicadas à Recuperação de Imagem) tratadas no Capítulo 2 e os
padrões de metadados considerados no Capítulo 3. As abordagens utilizam estratégias
diferenciadas para conseguirem efetuar consultas às imagens, mas não se preocupam com
uma descrição mais completa das características das imagens. Os padrões considerados no
Capítulo 3 foram apenas o DC e o SAIF, por darem alguma conotação a dado multimídia.
Porém ambos não são totalmente adequados à descrição mais eficiente de imagem, pois não
viabilizam descritores para todas as suas características importantes.
Este esquema viabiliza uma representação sistemática e detalhada dos elementos
descritores de imagens estáticas digitais, incluindo tanto elementos para descrever as
informações técnicas da imagem quanto para descrever as informações de conteúdo
semântico, podendo com isso ser utilizado em arquiteturas de metadados existentes.
Além dos estudos das diferentes abordagens que tratam a imagem na área de Ciência
da Computação, foram também pesquisadas as formas de descrição de imagens na área de
Ciência da Informação, já que a catalogação e indexação de imagem também é objeto de
estudo desta área.
Quem lida com imagem sabe que esta requer que sejam descritas as suas informações,
principalmente as menos evidentes: o que caracteriza um “sorriso meio triste”? E “cabelos
meio ralos”? Como descrever e, sobretudo, analisar imagens para fins de catalogação? Como
dar conta deste tipo de material? Com exemplos desta ordem, cabe até questionar se é
55
possível “analisar” as informações relacionadas ao conteúdo semântico das imagens (SMIT,
1987). A partir desses questionamentos ocorre uma 1a divisão entre as opiniões:
-
considera-se que a análise da imagem não tem nada de específico e que as boas e
comprovadas técnicas da análise documentária resolvem perfeitamentes a questão;
ou
-
parte-se do princípio de que as técnicas de análise de documentos escritos não são
apropriados para analisar imagens.
É problemática a distinção entre o que seja descrição e interpretação, uma vez que a
descrição da imagem, pela operação de tradução do código icônico para o código verbal, cria
condições para sua interpretação. A grande dificuldade na análise da imagem consiste nesta
separação entre a denotação (o que a imagem mostra) e a conotação (o que a sociedade e o
bibliotecário vêm na imagem). Por exemplo: não existem imagens de “agricultura” ou de
“racismo”. O que existe são plantações de soja ou milho, ou cartazes em cima de portas com
dizeres do tipo “for white only”.
4.1- VISÃO SEGUNDO A CIÊNCIA DA INFORMAÇÃO
A questão da representação das imagens em Ciência da Informação é analisada
também por Erwin Panofsky em 1979 (PANOFSKY, 1979), estabelecendo níveis para a
análise da imagem que ajudam a nortear a questão. Esse autor detalha três níveis para a
análise da imagem:
Pré-iconográfico: são descritos, genericamente, os objetos e ações representados
pela imagem;
Iconográfico: estabelece o assunto secundário ou convencional ilustrado pela
imagem. Trata-se da determinação do significado abstrato ou simbólico da
56
imagem, sintetizado a partir de seus elementos componentes, detectados pela
análise pré-iconográfica;
Iconológico: propõe uma interpretação do significado intrínseco do conteúdo da
imagem. A análise iconológica constrói-se a partir das anteriores, mas recebe
fortes influências do conhecimento do analista sobre o ambiente cultural, artístico
e social no qual a imagem foi gerada.
Panofsky exemplifica os diferentes níveis de análise a partir de uma imagem simples,
como por exemplo, um homem segurando o chapéu levantado acima da cabeça (SMIT, 1996).
Ao nível pré-iconográfico, a análise ressalta a existência do homem e seu gesto (erguer o
chapéu), sendo que, ao nível iconográfico, a mesma imagem seria analisada enquanto
representativa de um ato de cortesia. A análise iconológica, por sua vez, contextualizaria o ato
de cortesia na realidade social e cultural do local e da época em que a imagem foi gerada,
construindo, a partir desses dados, uma proposta de código de cortesia em certa classe social e
dado momento histórico.
A imagem é, simultaneamente, específica e genérica (SHATFORD, 1986): a imagem
de uma ponte, por exemplo, representa tanto a categoria genérica (nível pré-iconográfico) das
pontes como também uma ponte em particular (nível iconográfico), por exemplo a Ponte das
Bandeiras, em São Paulo. Entretanto, o usuário só pode formular suas necessidades
informacionais em termos do que ele já conhece. Resgatando a terminologia de Panofsky: se
um usuário só entende o sentido pré-iconográfico de uma imagem (por exemplo: ponte), ele
não pode formular suas necessidades em termos iconográficos (por exemplo: Ponte das
Bandeiras).
A análise de Panofsky e as categorias Quem (seres), Onde (espaço), Quando (tempo),
Como (técnica) e O que (ação), utilizadas por muitos estudiosos como parâmetros para grande
variedade de análises de textos, também são utilizadas para a análise documentária da
57
imagem. Shatford retoma as mesmas categorias para a representação da imagem, introduzindo
uma distinção entre De genérico, De específico e Sobre, como pode ser visto na Tabela 4.1. E
por meio destas categorias pode ser amenizada a problemática, dita anteriormente, da
denotação (o que a imagem mostra) e conotação (o que a sociedade e o bibliotecário vêm na
imagem).
Pode ser concluído que não existe uma padronização para a descrição de imagens
estáticas de forma genérica, pois os pesquisadores da área de Ciência da Informação
trabalham de acordo com o acervo a ser descrito, não existindo uma categorização formal que
sirva para a descrição de qualquer imagem. O padrão criado por (SHATFORD, 1986) para
descrição de documentos em geral pode ser utilizado também para descrever imagens e esse
padrão foi utilizado por (SMIT, 1996) para a representação da imagem. Como exemplo de
descrição de imagem baseada em acervo pode ser citado o trabalho de (CORDEIRO, 1990) no
qual é criada uma planilha contendo elementos de identificação e representação visando
indexação e recuperação das informações contidas em fotografias de cenas e fotogramas de
filmes. Grande parte das categorias e formas de representação de conteúdo da imagem
estudadas em (SMIT, 1996) e (CORDEIRO, 1990) foram de certa forma acopladas à
especificação do esquema proposto por esse trabalho. Uma outra fonte de pesquisa utilizada
foi o Manual Para Catalogação de Documentos Fotográficos (FUNARTE, 1998), que trouxe
idéias de como na prática os profissionais fazem a catalogação de fotos, contribuindo também
para a especificação do esquema proposto.
Os metadados podem ser definidos em nível de pixel, nível semântico e nível de
domínio (informações específicas de uma determinada aplicação). Os metadados escolhidos
para caracterizarem uma dada imagem podem então ser modelados através do Esquema
Conceitual de Metadados para Imagem proposto e descrito ao longo deste capítulo.
58
Categoria
Definição geral
QUEM
Animado
e Esta imagem é de De
quem,
inanimado,
quem? De Que especificamente,
objetos e seres objetos? De que se trata?
concretos.
seres?
Exemplo
ONDE
QUANDO
O QUE
DE genérico
Ponte
DE específico
Ponte
Bandeiras
SOBRE
Os
seres
ou
objetos
funcionam como
símbolos
de
outros seres ou
objetos?
Representam a
manifestação de
uma abstração?
das Urbanização
Onde está a Tipos de lugares
imagem
no geográficos,
espaço?
arquitetônicos ou
cosmográficos
Nome de lugares
geográficos,
arquitetônicos ou
cosmográficos
O
lugar
simboliza
um
lugar diferente ou
mítico? O lugar
representa
a
manifestação de
um pensamento
abstrato?
Exemplo
Amazonas
Paraíso
(supõe
um contexto que
permita
esta
interpretação)
Tempo linear ou Tempo cíclico
cíclico, datas e
períodos
específicos,
tempos
recorrentes.
Tempo linear
Raramente
utilizado,
representa
o
tempo
a
manifestação de
uma
idéia
abstrata
ou
símbolo?
Exemplo
1996
Esperança,
fertilidade
O que os objetos Ações, eventos
e seres estão
fazendo? Ações,
eventos,
emoções
Eventos
individualmente
nomeados
Que
idéias
abstratas
(ou
emoções) estas
ações
podem
simbolizar?
Exemplo
Copa do Mundo
Esporte
Selva
Verão
Jogo de futebol
TABELA 4.1: Categorias para a representação da imagem (SHATFORD, 1986).
59
4.2- CARACTERÍSTICAS
O Esquema Conceitual de Metadados para Documentação e Recuperação de Imagens
apresentado na Figura 4.1, tem como objetivo principal suportar as seguintes características:
simplicidade e adaptabilidade a qualquer domínio de aplicação. Este esquema possui classes
as quais contêm propriedades referentes às características da imagem.
Nesta proposta, considerando um Objeto Imagem, sabe-se que podem existir versões
diferentes para um mesmo objeto, estas versões também são Objetos Imagem. Os objetos
imagem podem ainda estar associados a outros objetos imagem, como por exemplo: um
objeto imagem pode ser composto de outros objetos imagens, pode ser parte de um outro
objeto imagem ou ter sido derivado de outro objeto imagem. Com relação às classes de
descritores para o objeto imagem, foram identificadas três classes principais: Objeto Imagem,
Conteúdo Semântico e Tipo de Relacionamento (existente entre os componentes da imagem).
Cada uma dessas classes associa uma gama de informações com objetivos específicos, a
saber:
• Objeto Imagem: representa em sua maioria um conjunto de propriedades
consideradas informações técnicas relativas ao objeto imagem (imagem digitalizada);
• Conteúdo Semântico: representa o conjunto de categorias que descrevem o conteúdo
semântico do objeto imagem, possibilitando identificar os componentes existentes na
imagem; o conceito de categoria foi adquirido por meio dos estudos da Ciência da
Informação com (SMIT, 1996) (SHATFORD, 1986) (CORDEIRO, 1990);
• Tipo de Relacionamento: representa o tipo de relacionamento existente entre os
componentes da imagem, aspecto importante e necessário para melhor descrever o
contexto da informação.
60
Além das características do Objeto Imagem também é importante especificar as
características da Imagem Original, a partir da qual foi gerada a imagem digital (Objeto
Imagem). A importância da especificação da imagem original foi identificada a partir da
consulta aos trabalhos de catalogação de fotografias realizados na FUNARTE. E além das
categorias (O Que (Ação), Onde (Espaço), Quando (Tempo), Quem (Componente)) de
Shatford, foi identificada ainda junto aos trabalhos práticos de descrição de imagens, como
por exemplo (GEMINI, 1998), a necessidade de ser disponibilizada mais uma categoria para
descrever o conteúdo semântico, que no caso recebe neste modelo a denominação Finalidade
(Para Que), possibilitando especificar o objetivo de utilização ou armazenamento daquela
imagem digital.
A seção seguinte mostra a especificação das classes existentes no esquema proposto
de forma mais detalhada.
4.3- ESPECIFICAÇÃO DE CLASSES
O esquema proposto pode ser visualizado através da Figura 4.1, utilizando a
linguagem de modelagem de objetos - UML (Unified Modeling Language) (FURLAN, 1998).
Na Tabela 4.2 é apresentada a legenda utilizada para a representação da estrutura de classes
segundo a notação UML. A descrição das classes e suas propriedades são vistas a seguir:
61
FIGURA 4.1: Esquema Conceitual de Metadados para Imagem.
62
TABELA 4.2: Legenda utilizada na representação da estrutura de classes do esquema.
Este esquema conceitual viabiliza a documentação de imagem estática do tipo
fotografia, pintura ou gravura qualquer descrevendo suas propriedades, possibilitando também
descrever os componentes contidos na imagem e os relacionamentos existentes entre eles. O
esquema permite também identificar os objetos imagem que são versões de um objeto
imagem e os tipos de associações existentes entre os mesmos.
Vale a pena ressaltar algumas observações sobre o conceito de versão, representado
pelo auto-relacionamento possui versão, adotado neste esquema. Um objeto imagem só será
considerado versão de outro se o seu conteúdo semântico não tiver sido alterado, isto é, se
parte da imagem não tiver sofrido nenhuma modificação. Sendo assim, não será necessário
efetuar a descrição referente à classe conteúdo semântico daquele objeto imagem que tiver
sido versionado de outro. As informações de conteúdo semântico da versão poderão ser
obtidas por meio do objeto de onde foi versionado. No caso de versões que sofreram alteração
em relação a cor e que perderam algumas características do seu conteúdo semântico, será
possível descrever um novo conteúdo semântico para a versão. Considere, por exemplo, uma
imagem colorida que contenha o por do sol. Ao ser versionada para uma imagem em preto e
branco provavelmente não mais será possível perceber o por do sol. Neste caso, uma nova
descrição para a versão deverá ser efetuada, de forma a representar esse novo conteúdo
semântico.
63
O auto-relacionamento associado a é utilizado para representar a situação em que uma
imagem foi modificada. Considere, por exemplo, uma imagem que foi gerada a partir de um
pedaço de outra imagem. A nova imagem gerada possuirá conteúdo semântico diferente da
imagem da qual foi gerada. Neste caso, o relacionamento existente entre as duas imagens será
representado por meio do relacionamento associado a e os tipos de associações serão
denominados parte de para a imagem que foi gerada a partir da outra e composto de para a
imagem que possui em sua composição a imagem gerada.
A seguir será apresentada uma descrição detalhada de cada uma das classes existentes
no esquema.
4.3.1- Objeto Imagem
Um Objeto Imagem representa a imagem digitalizada descrita pelo esquema. As
propriedades contidas nessa classe representam um conjunto de características da imagem
digital que são consideradas informações técnicas. Por meio do auto-relacionamento possui
versão podem ser obtidos os objetos imagem que são versões de outro objeto imagem. E o
auto-relacionamento associado a representa qual o tipo de associação entre os objetos
imagem, caso exista. O Objeto Imagem é representado pelas seguintes propriedades
(atributos):
-
Título: nomeação dada a imagem digital para facilitar a sua identificação;
-
Fonte: local de origem da imagem digital; informação sobre a fonte individual,
agência ou do repositório de onde a imagem foi obtida;
-
Formato: formato do arquivo da imagem (como por exemplo: JPEG, GIF, PNG,
SPIFF, etc);
64
-
Esquema de compressão: tipo de compressão utilizado na criação da imagem digital;
como por exemplo: JBIG, LZW, etc;
-
Dimensão do arquivo: tamanho do arquivo em bytes;
-
Dimensão da imagem digital: tamanho da imagem em pixels, polegadas, centímetros
e/ou milímetros; campo composto contendo o valor e o tipo de unidade utilizada para
a descrição da dimensão da imagem digital;
-
Resolução: número de unidades do tipo de medida (pixels/bits/etc) utilizadas na
descrição da resolução da imagem digital;
-
Localização física: local onde a imagem encontra-se fisicamente armazenada; pode
ser um diretório em uma rede ou uma URL;
-
Dispositivo de armazenamento: dispositivo físico onde a imagem está armazenada;
-
Lugar do repositório: localização geográfica do repositório;
-
Direitos autorais: nome ou identificação do autor ou autores da imagem digital, no
caso da imagem não possuir foto original, isto é, se ela tiver sido criada diretamente
na forma digital;
-
Proprietário: nome ou identificação do proprietário da imagem digital;
-
Digitalizador: nome ou identificação da pessoa que digitalizou, no caso de não ter
sido criada diretamente na forma digital;
-
Tipo de digitalizador: aparelho utilizado para criação da imagem digitalizada;
-
Data da criação: data associada à criação ou produção da imagem digital;
-
Software usado para criação: software usado na criação da imagem digital;
-
Espaço de cor: tipo padrão de cores usadas (por exemplo: RGB (Red, Green, Blue),
HSV (Hue, Saturation, Value), CMYK (Cyan, Magenta, Yellow, Black), etc);
-
Cromia: cromia da imagem digital, por exemplo: preto e branco, colorida;
65
-
Histograma de cor: distribuição das cores existentes na imagem digital em cada pixel.
Suponha que a imagem tenha N cores; a idéia é responder a “quantos pixels a cor X
tem associados?”, isto é, contar os pixels referentes a uma dada cor. O histograma de
cor é representado por meio de um vetor gerado automaticamente por um algoritmo
(CAETANO et alii, 1998);
-
Textura: segundo (MEYER, 1997) não existe uma definição simples e sem
ambiguidades e a razão para isso é o conceito fortemente intuitivo de textura,
impossível de ser totalmente descrito em uma definição textual. A textura é
representada por meio de um vetor gerado automaticamente por um algoritmo, como
por exemplo os algoritmos conhecidos como atributos CCD (Contrast, Coarseness e
Directionality) de Tamura, transformada de Wold, Modelo SAR (Simultaneous AutoRegressive), RISAR (Rotation-Invariant SAR), MRSAR (Multi-Resolution SAR),
GLCM (Grey Level Co-ocurrence Matrix) e GMRF (Gaussian Markov Random
Field) (CAETANO et alii, 1998);
-
Brilho: proporcional à integral do produto da curva e à função de eficiência de
luminosidade, esse cálculo é feito automaticamente por meio de um algoritmo
gerando um vetor (FOLEY et alii, 1990).
4.3.2- Imagem Original
A classe Imagem Original contém informações sobre a imagem original (fotografia,
pintura, gravura, etc) que passou por processo de digitalização gerando assim o Objeto
Imagem; está sendo representada pelas propriedades (atributos) (FUNARTE, 1998):
-
Gênero: descrição genérica da imagem original, como por exemplo: fotografia, slide,
pintura, gravura, etc;
66
-
Processo: no caso da fotografia representa a designação específica, isto é, o tipo de
processo fotográfico utilizado na produção da foto, como por exemplo:
daguerreotipia, ambrotipia, gelatina, platinotipia, etc; com relação aos outros gêneros
(pintura, gravura, etc) de imagem original também poderá ser descrito o respectivo
processo;
-
Cromia: cromia da imagem, tal como por exemplo: preto e branco, colorida;
-
Dimensões: dimensões da imagem original;
-
Dimensões primárias: dimensões do suporte primário (papel fotográfico) onde está a
imagem;
-
Dimensões secundárias: dimensões do suporte secundário (moldura) onde está a
imagem;
-
Suporte primário: tipo de suporte primário onde está a foto, os tipos de suporte podem
ser: papel, couro, porcelana, tecido, madeira;
-
Características técnicas adicionais: características técnicas adicionais utilizadas no
processo de produção da imagem original, como por exemplo no caso de fotografia as
características podem ser: solarizada, foto montagem, etc;
-
Nome da coleção: no caso da imagem original pertencer a alguma coleção;
-
Número de exemplares: número de exemplares daquela imagem original existente no
acervo;
-
Nota: indicação da página ou número correspondente para acesso, como por exemplo
no caso de uma foto integrar um álbum;
-
Direitos autorais: nome ou identificação do autor ou autores da imagem original;
-
Proprietário: nome ou identificação do proprietário da imagem original;
-
Repositório: local onde se encontra a imagem original.
67
4.3.3- Tipo de Associação
O Tipo de Associação representa a associação existente entre os objetos imagem, de
acordo com o campo:
-
Tipo: tipo de associação existente entre objetos imagem. Pode assumir os seguintes
valores: composto de, parte de, derivado de. Aqui pode ser representado se um objeto
imagem é composto de outros objetos imagem, se ele é parte de um outro objeto
imagem ou se ele foi derivado de outro objeto imagem.
4.3.4- Conteúdo Semântico
A classe Conteúdo Semântico representa informações referentes ao conteúdo
semântico da imagem, contendo a descrição das categorias
(Ação (O Que), Espaço (Onde), Tempo (Quando), Componente (Quem))
de acordo com (SHATFORD, 1986), acrescentando-se uma outra categoria denominada
Finalidade (Para Que). Essa classe contém as seguintes propriedades:
-
Nome: nome da categoria que estará sendo descrita; que poderá ser: Ação, Espaço,
Tempo, Componente ou Finalidade;
Essas categorias (Nome) são melhor explicadas a seguir:
•
Ação: o que os objetos e seres estão fazendo (ações, eventos, emoções);
•
Espaço: onde está a imagem no espaço;
•
Tempo: tempo linear ou cíclico, datas e períodos específicos, tempos
recorrentes;
68
•
Componente: esta categoria é transformada em classe já que possui
relacionamentos com outras classes e esses relacionamentos só existem no caso
do nome da categoria ser Componente, descrita em 4.3.4.1;
•
Finalidade: objetivo de utilização ou armazenamento daquela imagem digital,
para que a imagem está sendo armazenada; como por exemplo: “imagem a ser
utilizada no cenário de uma determinada novela”;
-
Descrição genérica: descrição genérica daquela categoria de conteúdo semântico;
-
Descrição específica: descrição específica daquela categoria de conteúdo semântico;
(De Quem, de Onde, de Quando, do Que e Para Que especificamente se trata a
imagem?)
-
Sobre: sobre qual assunto a imagem trata de acordo com a categoria (Nome) que está
sendo descrita; (representa a manifestação de alguma abstração?).
Exemplos de descrições utilizando a classe Conteúdo Semântico:
Nome = Ação
Nome = Espaço
Nome = Tempo
Descrição genérica = jogo de Descrição genérica = Perfil Descrição
futebol
da cidade
Primavera
genérica
=
Descrição específica = Copa Descrição específica = Rio Descrição específica = 1998
do Mundo 1998
de Janeiro
Sobre =juventude, esperança
Sobre = Esporte
Sobre = Cidade maravilhosa
4.3.4.1- Componente
A classe Componente identifica os componentes da imagem. Podem ser animados e
inanimados, objetos e seres concretos. Componente é uma categoria da classe conteúdo
semântico que foi tranformada em uma classe porque possui relacionamentos com outras
69
classes, conforme pode ser observado no Esquema especificado por meio da Figura 4.1. A
tabela a seguir mostra exemplos de descrições utilizando a classe Componente:
Nome = Componente
Descrição genérica = Menina
Descrição específica = Simone
Sobre = Infância
Nome = Componente
Descrição genérica = Ponte
Descrição específica = Ponte das Bandeiras
Sobre = Urbanização
4.3.5- Tipo de Relacionamento
Esta classe representa o tipo de relacionamento existente entre os componentes da
imagem. Todos os tipos de relacionamentos identificados nesta classe servem para indicar
como um componente está espacialmente localizado em relação a outro ou outros dentro de
uma imagem. Esse tipo de relacionamento é representado por meio do seguinte campo:
-
Posição: em que posição um determinado componente está em relação a outro ou a
outros. Pode assumir os seguintes valores: lado direito, lado esquerdo, frente, atrás,
abaixo, acima, sobreposto, diagonal frente direita, diagonal frente esquerda, diagonal
atrás direita, diagonal atrás esquerda, centro, etc.
4.3.6- Representação Posicional
A Representação Posicional identifica em que posição está o componente da imagem
que pertence a classe Componente, por meio dos seguintes campos (CORDEIRO, 1990):
-
Ângulo: em que ângulo está o componente; por exemplo: frente, perfil, costas, etc;
-
Posição: em qual posição está o componente; por exemplo: agachado, caído, de
cabeça para baixo, ajoelhado, vertical, horizontal, etc;
70
-
Disposição: disposição do componente na imagem, como por exemplo: corpo inteiro,
não corpo inteiro, mãos, pernas, cabeça até o busto, cabeça até o joelho.
4.3.7- Representação Factual
A Representação Factual identifica o tipo de classificação do componente da imagem
pertencente a classe Componente, sendo esta classificação dos tipos Ser, Reino, Força da
Natureza e Objeto segundo (CORDEIRO, 1990). Esses tipos são sub-classes da classe
representação factual, descritas a seguir.
4.3.7.1- Ser
Ser é uma sub-classe da classe Representação Factual, identificando em qual tipo de
ser está classificado o componente, de acordo com os seguintes campos:
-
Tipo: o tipo de ser do componente; (homem, mulher, transformista, fictício);
-
Idade/Cronologia: qual a idade do componente ou em que faixa cronológica ele está;
(bebê, criança, adolescente, adulto, idoso, etc);
-
Cor: cor do componente.
4.3.7.2- Reino
Reino é uma sub-classe da classe Representação Factual, identificando em qual tipo de
reino está classificado o componente, de acordo com os seguintes campos:
-
Tipo: tipo de reino do componente; (reino animal, reino vegetal, reino mineral);
-
Nome: nome do reino ao qual pertence; por exemplo: cachorro, árvore;
71
-
Idade/Cronologia: qual a idade do componente ou em que faixa cronológica ele está;
(bebê, criança, adolescente, adulto, idoso, etc);
-
Cor: cor do componente.
4.3.7.3- Força da Natureza
Força da Natureza é uma sub-classe da classe Representação Factual, identificando se
o componente da imagem é uma manifestação energética e outras vinculadas à natureza, por
meio do seguinte campo:
-
Nome: nome da manifestação da natureza.
4.3.7.4- Objeto
Objeto é uma sub-classe da classe Representação Factual, identificando se o
componente da imagem é um artefato ou manufatura, por meio dos seguintes campos:
-
Nome: nome do artefato ou manufatura;
-
Cor: cor do componente.
4.3.8- Componentes Integrantes
Componentes Integrantes identificam os componentes considerados integrantes do ser,
isto é, os elementos que entram na composição, fazendo parte da caracterização do Ser.
Podem ser peças ou acessórios de indumentária, como por exemplo: óculos, chapéu, etc.;
esses serão descritos de acordo com os seguintes campos:
-
Nome: nome do componente integrante do ser;
72
-
Cor: cor do componente integrante do ser.
4.3.9- Componentes Não Integrantes
Componentes Não Integrantes identificam os componentes considerados não
integrantes do ser, como por exemplo, os componentes que o Ser estiver segurando ou
estiverem junto a ele, tal como: homem tocando violino. Esses serão descritos de acordo com
os seguintes campos:
-
Nome: nome do componente não integrante do ser;
-
Cor: cor do componente não integrante do ser.
Todas as propriedades das classes descritas anteriormente podem ter as seguintes
formas de captura, dependendo do método correspondente utilizado para a obtenção de seus
valores:
- Cabeçalho do Arquivo: a captura do valor da propriedade será feita diretamente por
meio dos descritores da imagem embutidos no próprio cabeçalho do arquivo da
imagem digital;
- Textual: a captura do valor da propriedade é feita de forma textual, a partir de
interação com o usuário, o valor da propriedade será digitado;
- Captura Automática: a captura do valor da propriedade será feita de forma
automática, como por exemplo, através de um algoritmo de rede neural.
A próxima seção apresenta descrições de imagens exemplos feitas a partir do modelo
conceitual de metadados proposto nesse capítulo.
73
4.4- EXEMPLOS UTILIZANDO O ESQUEMA
As Figuras 4.2, 4.3 e 4.4 apresentam o diagrama de instâncias de suas imagens
exemplo, sendo descritas através da utilização do esquema conceitual de metadados para
imagem especificado anteriormente.
Esta imagem (exemplo 1), criada já na forma digital (por isso não possui
representação na classe Imagem Original), representa uma paisagem e
contém os componentes: árvore, sol e mar. Podemos dar o nome de Paisagem
Natural a este objeto imagem, que será descrito através das classes Objeto
Imagem e Conteúdo Semântico, possuindo ainda duas versões deste objeto
(BMP e GIF). Dentro da classe Objeto Imagem serão descritas as
propriedades formato, direitos autorais, histograma de cor e textura. Na classe
Conteúdo Semântico são identificados: os componentes (Árvore, Sol, Mar)
existentes na Paisagem Natural e os tipos de categorias de conteúdo
semântico, conforme pode ser observado na Figura 4.2.
FIGURA 4.2: Diagrama de Instâncias da figura exemplo 1.
74
Esta imagem (exemplo 2), digitalizada a partir de uma
fotografia original, contém os componentes: bailarina e
bailarino. Recebe a denominação Foto de Ballet, e a
representação deste objeto imagem é descrito através das
classes Objeto Imagem e Conteúdo Semântico. Dentro
da classe Objeto Imagem serão descritas as propriedades
formato, digitalizador, data da criação e brilho. Na
classe Conteúdo Semântico são identificados: os
componentes (Bailarina e Bailarino) existentes na Foto
de Ballet e os tipos de categorias de conteúdo semântico.
Esta imagem possui um tipo de associação composto de
com o objeto imagem o5, conforme pode ser observado
na Figura 4.3.
Esta imagem (exemplo 3) recebe a denominação Rosto
de Bailarina e está associada a imagem anterior por
meio do tipo de relacionamento parte de. As descrições
referentes ao Conteúdo Semântico de o5 não estão sendo
representadas na Figura 4.3 e sim na Figura 4.4.
FIGURA 4.3: Diagrama de Instâncias da figura exemplo 2.
75
FIGURA 4.4: Diagrama de Instâncias da figura exemplo 3.
4.5- CONSIDERAÇÕES FINAIS
Alguns elementos descritores especificados nesse esquema podem ser identificados
nos padrões de metadados estudados no Capítulo 3 e também em sistemas estudados nas
abordagens do Capítulo 2. Por exemplo:
-
os elementos DC.title (título), DC.author (autor), entre outros elementos
descritores existentes no padrão Dublin Core são encontrados no esquema aqui
apresentado. Com a diferença de que no Dublin Core existem somente 15
76
elementos descritores no total, onde somente um deles (DC.description) serve para
a descrição de conteúdo semântico, enquanto que nesse esquema existe uma forma
mais detalhada para o tratamento desse tipo de informação semântica da imagem;
-
os elementos cor, textura e brilho existentes no sistema Excalibur e na maioria dos
sistemas estudados são encontrados também nesse esquema. Porém, além desses
esse esquema disponibiliza um conjunto de outros elementos, que também são
referentes à informação técnica da imagem;
-
o sistema AMORE permite a pesquisa por similaridade semântica por meio de seis
categorias temáticas (arts, movies, sports, travel, vehicles, wildlife), quando se
quer pesquisar imagens semanticamente similares à imagem que está selecionada
ele recupera as imagens que estão classificadas na mesma categoria que a imagem
selecionada. Enquanto que nesse esquema existe um tratamento mais detalhado
das características relacionadas ao conteúdo semântico da imagem. Além de
descrever os componentes contidos na imagem e os relacionamentos existentes
entre eles, identifica também os objetos imagem que são versões de outro objeto
imagem e os tipos de associações (composto de, parte de, derivado de) entre os
mesmos;
-
o sistema VIMSYS apresentado no Capítulo 2 define planos diferentes para a
representação das informações das imagens, mas não define com detalhe quais
elementos fazem parte de cada um desses planos.
O esquema proposto nesse capítulo vem então viabilizar uma representação
sistemática e detalhada dos elementos descritores de imagens estáticas digitais, incluindo
tanto elementos para descrever as informações técnicas da imagem quanto para descrever as
informações de conteúdo semântico, podendo com isso ser utilizado em arquiteturas de
metadados existentes.
77
CAPÍTULO 5
VISÃO GERAL SOBRE O PROTÓTIPO PARA BUSCA DE IMAGENS
Neste capítulo será apresentada a implementação do esquema conceitual de metadados
para documentação e recuperação de imagens apresentado no Capítulo 4, de forma a verificar
o seu funcionamento em um sistema isolado. Porém, este protótipo poderia ser utilizado
juntamente com outros sistemas, como os já estudados anteriormente nesta tese, e até com
mecanismos de busca existentes na Internet.
As classes do esquema foram implementadas no SGBDOO Jasmine (KHOSHAFIAN
et alii., 1998), um sistema gerenciador de banco de dados orientado a objetos e multimídia,
que possibilita o tratamento de dados do tipo imagem de forma mais natural do que nas
tecnologias relacionais convencionais. O SGBDOO Jasmine é um produto da empresa
Computer Associates (CAI, 1998), disponível em ambiente Windows NT e Solaris. Nesse
trabalho foi utilizada uma plataforma PC (2 GB HD, 166 MHZ, 64 KB de memória), com
sistema operacional Windows NT.
Para a implementação desse protótipo foram utilizadas duas ferramentas
disponibilizadas pelo próprio Jasmine, a saber: Jasmine Studio e WebLink. As etapas de
criação de classes e métodos, bem como a instanciação de objetos nas classes foram
desenvolvidas por meio do Jasmine Studio. A aplicação implementada para possibilitar
consultas às classes no ambiente Web foi desenvolvida utilizando-se o WebLink. WebLink é o
módulo que possibilita criar aplicações de acesso aos bancos de dados implementados no
Jasmine via Internet.
As próximas seções explicam mais detalhadamente os passos seguidos para a
implementação desse protótipo, mostrando também algumas das principais telas do ambiente
de prototipação.
78
5.1- CRIAÇÃO DAS CLASSES E MÉTODOS NO JASMINE
Nessa seção serão apresentados os passos seguidos para a criação das classes do
esquema proposto e dos métodos que possibilitam consultas às classes implementadas no
Jasmine. Explicam-se também alguns detalhes de utilização do Jasmine, de forma a facilitar o
entendimento sobre a criação de classes e métodos de um projeto. Além disso apresenta-se um
resumo da funcionalidade dos métodos criados em cada uma das classes do esquema,
implementadas nesse protótipo.
Após a criação de um Store e uma Class Family, conforme explicado no Apêndice C,
pode-se então iniciar a etapa de criação das classes e métodos de um projeto. A seção seguinte
mostra as classes e seus métodos implementados em ODQL pertencentes a esse protótipo.
5.1.1- Classes do Esquema Proposto e seus Métodos em ODQL
Após a criação da Class Family é possível criar as suas respectivas classes por meio
do Class Browser, tela disponibilizada pelo Jasmine Studio, ferramenta do Jasmine
mencionada anteriormente. Os métodos também podem ser criados, editados e compilados
dentro do Class Browser. Esse possibilita também a instanciação das classes. A Figura 5.1
apresenta a tela Class Browser com a hierarquia das classes do esquema de metadados para
imagem proposto no Capítulo 4.
79
FIGURA 5.1: Classes do Esquema implementadas no Jasmine Studio.
Conforme já mencionado, as classes são instanciadas por meio do Class Browser e as
consultas disponibilizadas por meio do WebLink, via Internet.
A linguagem de definição, manipulação e consulta aos objetos utilizada pelo Jasmine
é a ODQL (Object Database Query Language), utilizada na implementação de todos os
métodos.
A ODQL é baseada em consultas tipo SQL, apesar de não seguir a sua sintaxe padrão
para objetos. Um exemplo de consulta nessa linguagem pode ser visto a seguir, onde na
primeira linha boobjimg é uma variável declarada como um bag (coleção) do tipo
Objeto_Imagem, e na segunda linha boobjimg está recebendo todos os objetos da classe
Objeto_Imagem que possuem a propriedade formato=JPG:
$Bag <Objeto_Imagem> boobjimg;
$boobjimg = Objeto_Imagem from Objeto_Imagem where Objeto_Imagem.formato == “JPG”;
80
As páginas acessadas pela Internet por meio do WebLink foram programadas
utilizando a linguagem HTML com comandos ODQL embutidos, isto é, as páginas HTML
chamam métodos das classes escritos em ODQL.
Os métodos implementados em ODQL são todos para consultar às classes do esquema
de forma dinâmica. São disponibilizadas todas as propriedades de cada classe para que o
usuário possa fazer a consulta de acordo com a sua necessidade; a partir daí o método gera
dinamicamente a consulta por meio do comando stringCat() disponibilizado pelo Jasmine. Se
na consulta o campo referente à propriedade for preenchido pelo usuário com algum valor,
então essa propriedade entrará como condição da consulta. Um exemplo da utilização do
comando stringCat() pode ser visto na Figura 5.2.
FIGURA 5.2: Método exemplo utilizando o comando stringCat().
81
Algumas observações importantes devem ser feitas com relação à edição dos métodos
em ODQL: os comandos ODQL são identificados pela existência de um $ (dólar) na frente de
todos os comandos, que terminam sempre por ponto e vírgula (;). As linhas de comentários
são identificadas por iniciarem por /* (barra asterisco) e terminarem por */ (asterisco barra).
Os métodos das classes são chamados dentro das páginas HTML. Nelas são
disponibilizadas as propriedades das classes passadas como parâmentros para os seus
métodos.
Alguns dos métodos que efetuam consultas dinâmicas às classes de acordo com as
propriedades que forem escolhidas pelo usuário, podem ser visualizados no Apêndice A.
Todos os métodos recebem como parâmetros as propriedades da classe correspondente e
geram a cláusula Where da consulta dinamicamente de acordo com o preenchimento do
usuário, isto é, se a propriedade for diferente de branco (“ “) ela é concatenada à cláusula
Where por meio do comando stringCat( ). Em todas as consultas o resultado final corresponde
à imagens (propriedade arquivo_imagem_digital que está contida na classe Objeto_Imagem).
Todas as classes com seus respectivos métodos são apresentadas a seguir, sendo que somente
serão descritos os métodos que possuem funcionalidade um pouco diferente do que já foi
explicado acima:
•
Objeto Imagem:
− ConsultaInftec: nesse método não foi possível colocar todas as suas propriedades
como parâmetros, pois o editor de métodos do Jasmine Studio possui limitação
quanto ao número de linhas de código para a edição dos métodos. As duas
propriedades (dimensao_arquivo e dimensao_imagem) da classe Objeto_Imagem
que não puderam ser tratadas nesse método estão sendo tratadas pelo método
ConsultaDim. Outras três propriedades da classe Objeto_Imagem não estão sendo
consideradas nesse protótipo por necessitarem de métodos de captura automática
82
para a obtenção de seus valores. Essas propriedades são: textura, brilho e
histograma de cor.
− ConsultaDim: método que recebe como parâmetros as duas propriedades
(dimensao_arquivo e dimensao_imagem) da classe Objeto_Imagem. O template
(resultobjimg.html) criado para o tratamento de consultas à classe Objeto_Imagem
tratará adequadamente todas as propriedades da classe Objeto_Imagem chamando
os métodos ConsultaInftec e ConsultaDim. Todos os templates estão sendo
explicados na seção 5.2.3.
− ConsultaInter: esse método recebe como parâmetros o resultado do método
ConsultaInftec e do método ConsultDim e faz a interseção dos dois, retornando o
resultado final ao template (resultobjimg.html) que trata as consultas referentes à
classe Objeto_Imagem.
− Converte: método que recebe como parâmetro um campo do tipo String e converte
para Integer. Esse método foi necessário para ser utilizado em um dos templates
criados para a utilização da aplicação de consulta pela Internet utilizando o
WebLink.
•
Imagem Original:
− ConsultaOriginal.
•
Tipo de Associação:
− ConsultaTipo_associacao: essa consulta traz como resposta as imagens que
tenham o tipo de associação (composto de, parte de, derivado de) especificado na
consulta, bem como as imagens associadas a elas.
83
•
Conteúdo Semântico:
− ConsultaContsem_acao: método que recebe como parâmetros todas as
propriedades da classe Conteudo_Semantico que tiverem a propriedade Nome =
“Acao”.
− ConsultaContsem_espaco: método que recebe como parâmetros todas as
propriedades da classe Conteudo_Semantico que tiverem a propriedade Nome =
“Espaco”.
− ConsultaContsem_tempo: método que recebe como parâmetros todas as
propriedades da classe Conteudo_Semantico que tiverem a propriedade Nome =
“Tempo”.
− ConsultaContsem_finalidade: método que recebe como parâmetros todas as
propriedades da classe Conteudo_Semantico que tiverem a propriedade Nome =
“Finalidade”.
•
Tipo de Relacionamento:
− ConsultaTipo_relacionamento: método que tem como parâmetros as propriedades
descricao_generica, descricao_especifica e sobre da classe Componente e a
propriedade posicao da classe Tipo_de_Relacionamento, significando que poderão
ser pesquisadas imagens que tenham componentes com descrições determinadas, e
estando um componente em uma determinada posição em relação ao outro na
imagem. Esse método também possibilita a consulta a imagens que tenham
componentes em uma determinada posição sem ser dito na consulta com qual
outro componente ele está relacionado.
•
Representação Posicional:
− ConsultaRepre_pos: poderão ser pesquisadas imagens que tenham componentes
com a representação posicional de acordo com o que for descrito nos parâmetros.
84
Nos métodos das classes a seguir como não se pode precisar quantos objetos
pertencentes a cada uma das classes o usuário irá procurar, foi determinado nessa
implementação a disponibilização de até 3 objetos no máximo para a consulta, significando
que as propriedades das respectivas classes repetem-se 3 vezes, diferenciadas por uma
numeração (como exemplo: vide Figura 5.9).
•
Componente:
− ConsultaContsem_compo.
•
Ser:
− ConsultaRepre_fac_ser.
•
Reino:
− ConsultaRepre_fac_reino.
•
Força da Natureza:
− ConsultaRepre_fac_forca.
•
Objeto:
− ConsultaRepre_fac_objeto.
•
Componentes Integrantes:
− ConsultaCompo_int.
•
Componentes Não Integrantes:
− ConsultaCompo_nint.
Todos os métodos foram implementados utilizando a forma de captura textual para o
armazenamento dos valores das propriedades das classes, isto é, as classes são instanciadas a
partir da interação com o usuário, onde o valor da propriedade é digitado a partir do Jasmine
Studio. Não foi implementado nenhum método de captura automática de valor das
propriedades.
85
Alguns comandos importantes para a cópia e restauração de banco de dados criado no
Jasmine podem ser vistos no Apêndice C.
Na próxima seção será explicado mais detalhadamente o funcionamento da ferramenta
WebLink no contexto desse protótipo.
5.2- UTILIZAÇÃO DO WEBLINK COM O JASMINE
O WebLink (KHOSHAFIAN et alii., 1998), conforme visto na Figura 5.3, é uma
ferramenta disponibilizada pelo SGBDOO Jasmine que viabiliza a sua conexão via Internet.
O WebLink age como um servidor intermediário entre o servidor Web e o servidor de banco
de dados Jasmine.
FIGURA 5.3: Funcionamento do WebLink.
As próximas sub-seções mostrarão a arquitetura do WebLink, a configuração
necessária para a sua utilização, e ainda o funcionamento do protótipo implementado
utilizando o WebLink.
5.2.1- Arquitetura do WebLink
Aplicações WebLink consistem de um conjunto de templates. Esses templates são
páginas HTML (HyperText Markup Language) com marcações (tags) WebLink embutidas
para possibilitarem operações de dados armazenados no banco de dados Jasmine. Os tags
86
WebLink possibilitam a chamada de código ODQL embutido nas páginas HTML. A
arquitetura WebLink, como pode ser vista na Figura 5.4, provê três programas CGI (Common
Gateway Interface) para possibilitar o acesso aos templates. Os programas CGI são:
•
odb-login: esse programa inicia uma sessão WebLink e o acesso ao banco de dados
Jasmine. O servidor WebLink abre uma sessão com o banco de dados quando esse
programa é executado;
•
odb-get: esse programa requisita a execução de um template por meio da indicação
do nome do template;
•
odb-logout: esse programa termina a sessão WebLink e finaliza o acesso ao banco
de dados.
Após a edição do template o mesmo deve ser carregado dentro da Class Family
WebLink já existente no Jasmine. A Class Family WebLink contém a classe HTML_Template
onde são armazenadas todas as páginas HTML que são templates WebLink. A classe
HTML_Template contém métodos para manipulação de templates que servem para:
- criação: (HTML_Template.createTemplate(“nomedotemplate”, “localdoarquivo”));
- obtenção: (HTML_Template.getTemplate(“nomedotemplate”));
- execução: (HTML_Template.run(“nomedotemplate”)).
O CODQLIE (Client ODQL Interactive Environment) é um ambiente interativo que
além de servir para testar os métodos ODQL criados, serve também para a criação de
templates WebLink. Deve ser acessado pela linha de comando DOS, diretório
c:\jasmine\jasmine\bin, executando CODQLIE. Abaixo será mostrado um exemplo de
template de nome obj_img sendo criado. Estando já no CODQLIE, executar:
defaultCF WebLink;
HTML_Template.createTemplate(“obj_img”, “c:\\metaimagem\\templates\\obj_img.html”);
87
FIGURA 5.4: Arquitetura WebLink.
A Figura 5.4 mostra a arquitetura WebLink. Primeiro o comando odb-login é
executado para iniciar uma sessão WebLink, e a partir daí um número de requisições é
apresentado ao Servidor WebLink via chamadas odb-get. Todas essas classes são executadas
no contexto da mesma sessão. Finalmente, quando todas as requisições forem completadas, o
comando odb-logout termina a sessão. Na Class Family Weblink ficam armazenados todos os
templates criados na classe HTML_Template existente no WebLink.
Uma descrição passo a passo dos procedimentos necessários para configurar o
ambiente para a utilização do WebLink em Windows NT pode ser vista no Apêndice C.
5.2.2- Templates do Protótipo
Nessa seção serão descritas as funcionalidades dos templates criados na
implementação desse protótipo, e os códigos de alguns deles serão apresentados no Apêndice
B.
Apenas a página inicial (inicial.html), responsável pela abertura de uma sessão
WebLink, e a página home (home.html), não foram criadas como arquivos templates, isto é,
não foram criadas como templates na Class Family WebLink. Todos os demais arquivos
88
HTML foram criados como templates na classe HTML_Template existente na Class Family
WebLink. Para cada tela de consulta disponibilizada nesse protótipo existirá um template
correspondente.
No ambiente WebLink as variáveis que persistem enquanto a sessão estiver ativa são
identificadas como wit_nome, onde nome é o nome dado à variável. Nesta implementação foi
necessária a utilização dessas variáveis de forma a armazenar as respostas das consultas de
cada classe do esquema e ao final poder fazer uma interseção dessas respostas, no caso do
usuário desejar, em uma mesma consulta, obter propriedades de mais de uma classe. A
consulta a cada classe foi disponibilizada por um template diferente e com templates de
respostas dessas consultas também diferentes.
Os templates (como por exemplo: obj_img.html, compo.html) são responsáveis por
fazerem consultas às classes passando como parâmetros as respectivas propriedades das
classes, por meio do comando odb-get, ao template intermediário (por exemplo: objimginter.html) que disponibiliza dois botões, um que permite visualizar diretamente as imagens
respostas da consulta e o outro que permite continuar consultando em outras classes. Ao ser
escolhida diretamente a visualização das imagens respostas é chamado então o template result
(por exemplo: resultobjimg.html, resultcompo.html) correspondente, que exibe o resultado da
consulta. Se a escolha for continuar consultando entao a resposta da consulta é armazenada
em uma variável wit do tipo coleção (bag).
Nos
templates
(compo.html,
ser.html,
reino.html,
forca.html,
objeto.html,
compoint.html e componint.html) onde não se pode precisar quantos objetos da sua classe
correspondente o usuário irá procurar em uma imagem, foi determinado nessa implementação
a disponibilização de até 3 objetos no máximo para a consulta, onde as propriedades da
respectiva classe repetem-se 3 vezes, diferenciadas por uma numeração (como exemplo: vide
Figura 5.9).
89
Todos os templates de resultado (result) exibem as imagens (arquivo_imagem_digital
da classe Objeto_Imagem) respostas da consulta, disponibilizando, para cada imagem, dois
botões: um para a visualização de versões da imagem, mostradas pelo template
resultversoes.html, e o outro para a visualização das imagens associadas, mostradas pelo
template resultassoc-escolhido.html.
A seguir serão descritos os templates criados, juntamente com suas funcionalidades:
•
opcoes.html: contém as opções de consulta do protótipo, onde cada opção corresponde a
uma classe do esquema. Cada opção corresponde a um hiperlink para o template
correspondente, permitindo consultar às propriedades daquela classe.
•
obj_img.html: disponibiliza as propriedades da classe Objeto_Imagem de forma que estas
sejam preenchidas de acordo com a necessidade de consulta do usuário. Três propriedades
da classe Objeto_Imagem não estão sendo consideradas nesse protótipo por necessitarem
de métodos de captura automática para a obtenção de seus valores. Essas propriedades
são: textura, brilho e histograma de cor.
•
objimg-inter.html: faz chamada aos
métodos
ConsultaInftec,
ConsultaDim e
ConsultaInter pertencentes à classe Objeto_Imagem, passando como parâmetros as
variáveis wit recebidas do template obj_img.html aos métodos ConsultaInftec e
ConsultaDim. Esse template faz chamada a esses dois métodos ConsultaInftec e
ConsultaDim da classe Objeto_Imagem, pois, conforme já mencionado, as propriedades
dessa classe não puderam ser tratadas por um único método, já que o editor de métodos do
Jasmine Studio possui limitação quanto ao número de linhas de código. O objimginter.html faz chamada também ao método ConsultaInter para que possa então fazer a
interseção das respostas dos dois outros métodos executados anteriormente.
•
resultobjimg.html: exibe as imagens respostas da consulta feita em obj_img.html.
90
•
imgorig.html: disponibiliza todas as propriedades da classe Imagem_Original para que
sejam preenchidas de acordo com a necessidade de consulta do usuário.
•
imgorig-inter.html: faz chamada ao método ConsultaOriginal pertencente à classe
Imagem_Original, passando como parâmetros as variáveis wit recebidas do template
imgorig.html.
•
resultimgorig.html: exibe as imagens respostas da consulta feita em imgorig.html.
•
assoc.html: disponibiliza a propriedade tipo da classe Tipo_de_Associacao para que seja
preenchida de acordo com a necessidade de consulta do usuário.
•
assoc-inter.html: executa a consulta à classe Tipo_de_Associacao considerando a
variável wit recebida do template assoc.html.
•
resultassoc.html: exibe as imagens respostas da consulta feita em assoc.html, isto é, as
imagens que possuem o tipo de associacao especificado pelo usuário no template
assoc.html.
•
resultversoes.html: exibe como resultado as imagens que são versões da imagem
escolhida. Essa imagem é passada pelo template que chamou o resultversoes.html.
•
resultassoc-escolhido.html: exibe como resultado as imagens associadas à imagem
escolhida, dizendo ainda qual o tipo de associação existente. Essa imagem escolhida é
passada pelo template que chamou o resultasoc-escolhido.html, isto é, o template que o
chamou passa o valor do objeto_imagem escolhido.
•
acao.html: disponibiliza todas as propriedades da classe Conteudo_Semantico menos a
propriedade nome que já está = “Acao”, para que sejam preenchidas de acordo com a
necessidade de consulta do usuário.
•
acao-inter.html: faz chamada ao método ConsultaContsem_acao pertencente à classe
Conteudo_Semantico, passando como parâmetros as variáveis wit recebidas do template
acao.html.
91
•
resultacao.html: exibe as imagens respostas da consulta feita em acao.html.
•
espaco.html: disponibiliza todas as propriedades da classe Conteudo_Semantico menos a
propriedade nome que já está sendo considerada igual a “Espaco”, para que sejam
preenchidas de acordo com a necessidade de consulta do usuário.
•
espaco-inter.html: faz chamada ao método ConsultaContsem_espaco pertencente à classe
Conteudo_Semantico, passando como parâmetros as variáveis wit recebidas do template
espaco.html.
•
resultespaco.html: exibe as imagens respostas da consulta feita em espaco.html.
•
tempo.html: disponibiliza todas as propriedades da classe Conteudo_Semantico menos a
propriedade nome que já está = “Tempo”, para que sejam preenchidas de acordo com a
necessidade de consulta do usuário.
•
tempo-inter.html: faz chamada ao método ConsultaContsem_tempo pertencente à classe
Conteudo_Semantico, passando como parâmetros as variáveis wit recebidas do template
tempo.html.
•
resulttempo.html: exibe as imagens respostas da consulta feita em tempo.html.
•
finali.html: disponibiliza todas as propriedades da classe Conteudo_Semantico menos a
propriedade nome que já está = “Finalidade”, para que sejam preenchidas de acordo com a
necessidade de consulta do usuário.
•
finali-inter.html: faz chamada ao método ConsultaContsem_finali pertencente à classe
Conteudo_Semantico, passando como parâmetros as variáveis wit recebidas do template
finali.html.
•
resultfinali.html: exibe as imagens respostas da consulta feita em finali.html.
•
compo.html: disponibiliza todas as propriedades da classe Componente menos a
propriedade nome que já está = “Componente”, para que sejam preenchidas de acordo
com a necessidade de consulta do usuário.
92
•
compo-inter.html: faz chamada ao método ConsultaContsem_compo pertencente à classe
Componente, passando como parâmetros as variáveis wit recebidas do template
compo.html.
•
resultcompo.html: exibe as imagens respostas da consulta feita em compo.html.
•
relac.html:
disponibiliza
todas
as
propriedades
das
classes
Componente
e
Tipo_de_Relacionamento, para que sejam preenchidas de acordo com a necessidade de
consulta
do
usuário,
onde
aparecem
as
propriedades
descricao_generica,
descricao_especifica e sobre da classe Componente e a propriedade posicao da classe
Tipo_de_Relacionamento. Poderão ser pesquisadas imagens que tenham componentes
com descrições determinadas, estando um componente em uma determinada posição em
relação ao outro na imagem. Também possibilita a consulta à imagens que tenham
componentes em uma determinada posição na imagem sem ser dito na consulta com qual
outro componente ele está relacionado.
•
relac-inter.html: faz chamada ao método ConsultaTipo_relacionamento pertencente à
classe Tipo_de_Relacionamento, passando como parâmetros as variáveis wit recebidas do
template relac.html.
•
resultrelac.html: exibe as imagens respostas da consulta feita em relac.html.
•
rpos.html: disponibiliza todas as propriedades das classes Representacao_Posicional, para
que sejam preenchidas de acordo com a necessidade de consulta do usuário.
•
rpos-inter.html: faz chamada ao método ConsultaRepre_pos pertencente à classe
Representacao_Posicional, passando como parâmetros as variáveis wit recebidas do
template rpos.html.
•
resultrpos.html: exibe as imagens respostas da consulta feita em rpos.html.
•
ser.html: disponibiliza todas as propriedades da classe Ser, para que sejam preenchidas de
acordo com a necessidade de consulta do usuário.
93
•
ser-inter.html: faz chamada ao método ConsultaRepre_fac_ser pertencente à classe Ser,
passando como parâmetros as variáveis wit recebidas do template ser.html.
•
resultser.html: exibe as imagens respostas da consulta feita em ser.html.
•
reino.html: disponibiliza todas as propriedades da classe Reino, para que sejam
preenchidas de acordo com a necessidade de consulta do usuário.
•
reino-inter.html: faz chamada ao método ConsultaRepre_fac_reino pertencente à classe
Reino, passando como parâmetros as variáveis wit recebidas do template reino.html.
•
resultreino.html: exibe as imagens respostas da consulta feita em reino.html.
•
forca.html: disponibiliza todas as propriedades da classe Forca_da_Natureza, para que
sejam preenchidas de acordo com a necessidade de consulta do usuário.
•
forca-inter.html: faz chamada ao método ConsultaRepre_fac_forca pertencente à classe
Forca_da_Natureza, passando como parâmetros as variáveis wit recebidas do template
forca.html.
•
resultforca.html: exibe as imagens respostas da consulta feita em forca.html.
•
objeto.html: disponibiliza todas as propriedades da classe Objeto, para que sejam
preenchidas de acordo com a necessidade de consulta do usuário.
•
objeto-inter.html: faz chamada ao método ConsultaRepre_fac_objeto pertencente à
classe Objeto, passando como parâmetros as variáveis wit recebidas do template
objeto.html.
•
resultobjeto.html: exibe as imagens respostas da consulta feita em objeto.html.
•
compoint.html: disponibiliza todas as propriedades da classe Componentes_Integrantes,
para que sejam preenchidas de acordo com a necessidade de consulta do usuário.
•
compoint-inter.html: faz chamada ao método ConsultaCompo_int pertencente à classe
Componentes_Integrantes, passando como parâmetros as variáveis wit recebidas do
template compoint.html.
94
•
resultcompoint.html: exibe as imagens respostas da consulta feita em compoint.html.
•
componint.html:
disponibiliza
todas
as
propriedades
da
classe
Componentes_Nao_Integrantes, para que sejam preenchidas de acordo com a necessidade
de consulta do usuário.
•
componint-inter.html: faz chamada ao método ConsultaCompo_nint pertencente à classe
Componentes_Nao_Integrantes, passando como parâmetros as variáveis wit recebidas do
template componint.html.
•
resultcomponint.html: exibe as imagens respostas da consulta feita em componint.html.
•
resultfim.html: exibe o resultado final das consultas feitas às várias classes
disponibilizadas no template opcoes.html, pois o usuário pode querer em uma mesma
consulta pesquisar propriedades de classes diferentes. Esse template faz a interseção de
todas as respostas das consultas feitas à cada classe. Essas respostas foram sendo
armazenadas em variáveis wit (que permanecem enquanto a sessão WebLink estiver ativa)
para que agora nesse template pudessem ser utilizadas na interseção.
•
todas.html: exibe todas as imagens armazenadas na classe Objeto_Imagem.
Essa seção explicou a funcionalidade de todos os templates implementados nesse
protótipo, onde alguns dos códigos completos estão disponibilizados no Apêndice B. A
próxima seção explica alguns detalhes importantes da interface desse protótipo, mostrando
alguns exemplos de consultas via Internet utilizando o WebLink por meio dos templates
anteriormente descritos.
5.3- INTERFACE DE CONSULTA AOS METADADOS DAS IMAGENS
Nessa seção será descrito o funcionamento do protótipo implementado. Primeiramente
será mostrado como é disponibilizada a inclusão, alteração e exclusão de imagens nas classes
95
do esquema. Em seguida explica como são disponibilizadas as consultas às classes via
Internet utilizando o WebLink.
As inclusões, alterações e exclusões de instâncias nas classes não estão
disponibilizadas via Internet, podendo ser feitas somente pela tela Class Browser do Jasmine
Studio. A Figura 5.5 mostra uma tela exemplo, que serve tanto para inclusão como para
alteração na classe Componentes_Integrantes utilizando o Jasmine Studio. Nessa tela
aparecem as propriedades da classe do lado esquerdo e, ao selecionar cada propriedade,
aparece então do lado direito, o respectivo espaço para o preenchimento do valor
correspondente. A exclusão é feita diretamente ao selecionar o objeto desejado e escolhendose a opção delete ou pressionando diretamente a tecla del do teclado.
FIGURA 5.5: Tela exemplo de inclusão utilizando o Jasmine Studio.
Já as consultas às classes podem ser feitas via Internet utilizando o WebLink. A
primeira tela (inicial.html) dessa aplicação que disponibiliza consultas via Internet é mostrada
na Figura 5.6; a segunda tela (home.html) é apresentada na Figura 5.7; e a tela das opções
(opcoes.html) disponíveis para consultar às classes do esquema é mostrada na Figura 5.8.
Todas essas páginas html foram explicadas na seção 5.2.3 e alguns códigos completos podem
ser encontrados no Apêndice B.
96
FIGURA 5.6: Primeira tela (inicial.html) da aplicação via Internet.
FIGURA 5.7: Segunda tela (home.html) da aplicação via Internet.
97
FIGURA 5.8: Tela (opcoes.html) com as opções de consulta da aplicação via Internet.
A Figura 5.9 apresenta a tela (compo.html) em uma consulta à classe Componente. A
Figura 5.10 mostra o resultado (resultcompo.html) da consulta feita na tela da Figura 5.9.
FIGURA 5.9: Consulta à classe Componente (compo.html).
98
FIGURA 5.10: Resposta à consulta (resultcompo.html) feita na Figura 5.9.
A Figura 5.11 mostra o resultado das imagens associadas à imagem da Figura 5.10.
Clicando-se o botão Associações daquela figura, o resultado aparece na Figura 5.11.
FIGURA 5.11: Resposta às associações (resultassoc-escolhido.html) da Figura 5.10.
99
A Figura 5.12 mostra uma tela (obj_img.html) de uma consulta a imagens da classe
Objeto_Imagem e a Figura 5.13 apresenta o resultado (resultobjimg.html) da consulta feita na
Figura 5.12.
FIGURA 5.12: Consulta à classe Objeto_Imagem (obj_img.html).
FIGURA 5.13: Resposta à consulta (resultobjimg.html) feita na Figura 5.12.
100
Esse capítulo descreveu a etapa de implementação do protótipo, totalmente baseado na
especificação do esquema conceitual para documentação e recuperação de imagens proposto
nesse trabalho.
5.4- CONSIDERAÇÕES FINAIS
Nesse protótipo todos os métodos foram implementados utilizando a forma de captura
textual para o armazenamento dos valores das propriedades das classes, isto é, as classes são
instanciadas a partir da interação com o usuário, onde o valor da propriedade é digitado a
partir do Jasmine Studio.
Embora não tenha sido implementado nenhum método de captura automática do valor
das propriedades, esse protótipo poderia ser utilizado juntamente com técnicas das outras
abordagens estudadas, para constituirem um meio mais rico de recuperação de imagens.
Poderia certamente ter sido definido um conjunto mais completo de métodos que permitissem
capturar características das imagens de forma automática. Como por exemplo, poderiam ser
obtidos os valores das propriedades: formato, dimensão do arquivo, esquema de compressão,
entre outros, do cabeçalho do arquivo como acontece no formato PNG, descrito no Capítulo 2.
Ou ainda, um outro exemplo seria o valor da propriedade textura que poderia estar sendo
capturado automaticamente, por meio de algoritmos de redes neurais normalmente utilizados
entre as técnicas de Inteligência Artificial.
O
ambiente
completamente
distribuído
provido
pela
Internet
requer
a
interoperabilidade entre padrões e implementações existentes, requisitos importantes para a
extensibilidade e adaptação de modelos e metamodelos. Para que o esquema implementado
por esse protótipo possa ser integrado a outros sistemas e mecanismos de busca faz-se
necessária a utilização da XML (Extensible Markup Language), que é uma tecnologia que
101
têm sido utilizada como padrão para disponibilizar recursos no ambiente WWW. O Apêndice
D apresenta uma descrição conceitual da linguagem XML e uma abordagem do sistema
segundo a visão XML, a partir do exemplo de algumas classes do esquema proposto sendo
descritas segundo essa sintaxe.
O próximo capítulo finaliza esse trabalho apresentando a conclusão desse estudo e as
suas principais contribuições para possíveis trabalhos futuros.
102
CAPÍTULO 6
CONCLUSÃO
Com a evolução tecnológica que cada vez mais aproxima o homem do computador
tornando esta interface de comunicação mais fácil e amigável, cresce a tendência de
transformar todos os tipos de informação em meio digitalizado, tornando-os acessíveis e
disponíveis computacionalmente.
Algumas empresas já estão disponibilizando seus dados (em vários tipos de mídias)
em ambientes automatizados, onde informações em forma de papel, vídeo, filme ou fita agora
já podem ser acessadas computacionalmente. Porém, a maioria destas informações vêm sendo
disponibilizadas sem nenhuma padronização, onde não existe nenhum critério para a
descrição de seus conteúdos, requisito de fundamental importância para a utilização eficaz das
informações ali armazenadas. Metadados, também descritos como dados sobre dados, têm
sido alvo de pesquisa de vários grupos internacionais, pois preocupa-se com a padronização e
veiculação de recursos em repositórios heterogêneos de dados.
No caso das mídias do tipo imagem estática digitalizada ainda não existe um consenso
de como se especificar metadado de forma padronizada mundialmente. Existem dois padrões
de metadados, tais como o Dublin Core (BROSS, 1997) e o SAIF (SAIF) estudados no
Capítulo 3, que possibilitam descrever imagens estáticas, porém limitados à descrição de
algumas de suas características. Existem também formatos de arquivo de imagem, como o
PNG (ROELOFS, 1997) e o SPIFF (SPIFF, 1995), apresentados no Capítulo 2, que
possibilitam embutir metadados dentro do próprio cabeçalho do arquivo da imagem.
Igualmente ao caso anterior, nenhum desses padrões e formatos possibilitam descrever
totalmente as características da imagem.
103
Outro fato muito importante que não tem sido levado em consideração na descrição
das imagens é o conteúdo semântico. O que existe de verdadeiramente importante em dados
do tipo imagem é o seu consteúdo semântico, isto é, informações contidas na imagem. Porém,
essas informações de escopo semântico não vêm tendo a importância que merecem, pois
dados do tipo imagem têm sido vistos como meros arquivos que possuem tamanho, formato,
cores, entre outras informações meramente técnicas de um arquivo.
Para a descrição do conteúdo semântico das imagens no escopo desse trabalho foram
estudadas as descrições de imagens estáticas digitais dentro das abordagens de Ciência da
Computação (SHAH et alii., 1997) (CHANG et alii., 1997) (GUPTA, 1997) (QBIC, 1997)
(GROSKY, 1997) (LORENZ, 1997) (GUPTA et alii., 1991) (AMORE, 1998) (EXCALIBUR,
1998) (HERMES et alii, 1995) (MEYER, 1997), apresentadas no Capítulo 2, como também
foram pesquisadas e incluídas no Capítulo 4 as formas de catalogação e descrição de imagens
na área de Ciência da Informação (PANOFSKY, 1979) (SHATFORD, 1986) (CORDEIRO,
1990) (SMIT, 1996) (FUNARTE, 1998), já que esta também é uma área que se preocupa com
esse tema. Esse estudo levou à conclusão de que não existe uma padronização de fato para a
descrição de imagens estáticas de forma genérica, já que os pesquisadores na área de Ciência
da Informação trabalham de acordo com o acervo a ser descrito, não existindo uma
categorização formal que sirva para a descrição de uma imagem qualquer.
Percebe-se claramente a necessidade da especificação sistemática e detalhada de
metadados apropriados às imagens que descrevam tanto as suas caraterísticas relacionadas à
informação técnica quanto às caraterísticas relacionadas ao seu conteúdo semântico.
104
6.1- PRINCIPAIS CONTRIBUIÇÕES
Esse trabalho tem como principal contribuição o desenvolvimento de uma modelagem
conceitual que permite a descrição e recuperação de imagens, através do estudo e
sistematização das características das imagens. As classes pertencentes ao esquema conceitual
decorrente dessa modelagem viabilizam a documentação de uma imagem estática do tipo
fotografia, pintura ou gravura qualquer, descrevendo suas propriedades, os componentes
contidos na imagem e os relacionamentos existentes entre eles. Esses descritores permitem
também identificar os objetos imagem que são versões de outro objeto imagem e os tipos de
associações existentes entre os mesmos.
O esquema proposto descreve tanto as informações técnicas quanto as informações
relacionadas ao conteúdo semântico da imagem, contribuindo com uma especificação
sistemática e detalhada dos elementos descritores de imagens estáticas digitais, podendo com
isso serem utilizados em arquiteturas de metadados existentes.
A especificação desse esquema foi base para a implementação de um protótipo de
aplicação apresentado no Capítulo 5, em um ambiente que possibilita a descrição e
recuperação de imagens baseadas em seus descritores utilizando um SGBDOO denominado
Jasmine (CAI, 1998) (KHOSHAFIAN et alii., 1998). Esse ambiente possibilita ainda que as
imagens sejam consultadas a partir dos seus respectivos metadados no ambiente Internet por
meio de uma ferramenta do próprio Jasmine, denominada WebLink. Outra contribuição além
do protótipo implementado, foi o estudo da utilização do Jasmine, um SGBDOO bastante
recente, e do WebLink.
105
6.2- SUGESTÕES PARA TRABALHOS FUTUROS
Podem ser sugeridos alguns trabalhos que possivelmente darão continuidade a esse:
•
Estender o esquema proposto, que visa somente a documentação e recuperação de
imagens estáticas digitais, de forma a tratar também as imagens em movimento (vídeo);
•
Disponibilizar o esquema proposto para que outros sistemas e mecanismos de busca da
Internet possam utilizá-lo, para isso utilizar a XML (eXtensible Markup Language)
(LIGHT, 1999) verificando a possibilidade de ligação a um SGBD; uma explicação sobre
a XML pode ser encontrada no Apêndice D, juntamente com um exemplo de algumas
classes do esquema proposto sendo descritas segundo a sintaxe XML;
•
Estender o protótipo implementado para possibilitar, além de consultas às classes pela
Internet, a inclusão, alteração e exclusão de instâncias das classes também nesse ambiente;
•
Estender o protótipo implementado para tratar as propriedade das classes de forma que
possam também ser capturadas automaticamente, a exemplo de histogramas de cor,
textura, etc. Esse protótipo contêm métodos que permitem somente capturar os valores das
propriedades de forma textual, a partir da digitação de valores.
106
APÊNDICE A
ALGUNS DOS MÉTODOS EM ODQL
A funcionalidade de todos os métodos desse apêndice está sendo descrita no Capítulo 5.
Método da classe Objeto_Imagem:
•
ConsultaInter
metaimagemCF::Objeto_Imagem::ConsultaInter
Method: ConsultaInter
Level: Class
Return Value: metaimagemCF::Objeto_Imagem
Collection
Parameters:
bodimen
metaimagemCF::Objeto_ImagemCollection
botec
metaimagemCF::Objeto_ImagemCollection
$defaultCF 'metaimagemCF';
$Bag <Objeto_Imagem> borfim;
$borfim = Bag{};
$borfim = bodimen.intersect(botec);
$return(borfim);
Método da classe Conteudo_Semantico:
•
ConsultaContsem_acao
metaimagemCF::Conteudo_Semantico::ConsultaContsem_acao
Method: ConsultaContsem_acao Level: Class
Return Value: metaimagemCF::Objeto_Imagem
Collection
Parameters:
generica String [40]
especifica String [40]
sobre String [40]
$defaultCF 'metaimagemCF';
$String w_clause;
$String qry;
$String aux;
$Bag <Objeto_Imagem> boacao;
$w_clause = "";
$aux = "Acao";
$boacao = Bag{};
$if (generica!="" or especifica!="" or sobre!="") {
$w_clause = "Conteudo_Semantico.nome==\"";
$w_clause = w_clause.stringCat(aux);
$w_clause = w_clause.stringCat("\"");
};
$if (generica!="") {
$w_clause = w_clause.stringCat("\ and Conteudo_Semantico.de_generico==\"");
$w_clause = w_clause.stringCat(generica);
$w_clause = w_clause.stringCat("\"");
};
$if (especifica!="") {
$w_clause = w_clause.stringCat("\ and Conteudo_Semantico.de_especifico==\"");
$w_clause = w_clause.stringCat(especifica);
$w_clause = w_clause.stringCat("\"");
};
$if (sobre!="") {
$w_clause = w_clause.stringCat("\ and Conteudo_Semantico.sobre==\"");
$w_clause = w_clause.stringCat(sobre);
$w_clause = w_clause.stringCat("\"");
};
$qry = String.format("boacao = Conteudo_Semantico.objeto_imagem from Conteudo_Semantico where %s;", w_clause);
$execute qry using boacao;
$return(boacao);
107
Método da classe Componente:
•
ConsultaContsem_compo
metaimagemCF::Componente::ConsultaContsem_compo
Method: ConsultaContsem_compo
Level: Class
Return Value: metaimagemCF::Objeto_Imagem
Collection
Parameters:
generica1 String [40]
especifica1 String [40]
sobre1 String [40]
generica2 String [40]
especifica2 String [40]
sobre2 String [40]
generica3 String [40]
especifica3 String [40]
sobre3 String [40]
$defaultCF 'metaimagemCF';
$String w_clause1;
$String w_clause2;
$String w_clause3;
$String qry1;
$String qry2;
$String qry3;
$Bag <Objeto_Imagem> bocompo1;
$Bag <Objeto_Imagem> bocompo2;
$Bag <Objeto_Imagem> bocompo3;
$Bag <Objeto_Imagem> resultadop1;
$Bag <Objeto_Imagem> resultado;
$w_clause1 = "";
$w_clause2 = "";
$w_clause3 = "";
$bocompo1 = Bag{};
$bocompo2 = Bag{};
$bocompo3 = Bag{};
$resultado = Bag{};
$resultadop1 = Bag{};
$if (generica1!="") {
$w_clause1 = w_clause1.stringCat("\Componente.de_generico==\"");
$w_clause1 = w_clause1.stringCat(generica1);
$w_clause1 = w_clause1.stringCat("\"");
};
$if (especifica1!="") {
$if (w_clause1=="") {
$w_clause1 = w_clause1.stringCat("\Componente.de_especifico==\"");
$w_clause1 = w_clause1.stringCat(especifica1);
$w_clause1 = w_clause1.stringCat("\"");
}
else if (w_clause1!="")
{
$w_clause1 = w_clause1.stringCat("\ and Componente.de_especifico==\"");
$w_clause1 = w_clause1.stringCat(especifica1);
$w_clause1 = w_clause1.stringCat("\"");
};
};
$if (sobre1!="") {
$if (w_clause1=="") {
$w_clause1 = w_clause1.stringCat("\Componente.sobre==\"");
$w_clause1 = w_clause1.stringCat(sobre1);
$w_clause1 = w_clause1.stringCat("\"");
}
else if (w_clause1!="")
{
$w_clause1 = w_clause1.stringCat("\ and Componente.sobre==\"");
$w_clause1 = w_clause1.stringCat(sobre1);
$w_clause1 = w_clause1.stringCat("\"");
};
};
$if (generica2!="") {
$w_clause2 = w_clause2.stringCat("\Componente.de_generico==\"");
$w_clause2 = w_clause2.stringCat(generica2);
$w_clause2 = w_clause2.stringCat("\"");
};
$if (especifica2!="") {
108
$if (w_clause2=="") {
$w_clause2 = w_clause2.stringCat("\Componente.de_especifico==\"");
$w_clause2 = w_clause2.stringCat(especifica2);
$w_clause2 = w_clause2.stringCat("\"");
}
else if (w_clause2!="")
{
$w_clause2 = w_clause2.stringCat("\ and Componente.de_especifico==\"");
$w_clause2 = w_clause2.stringCat(especifica2);
$w_clause2 = w_clause2.stringCat("\"");
};
};
$if (sobre2!="") {
$if (w_clause2=="") {
$w_clause2 = w_clause2.stringCat("\Componente.sobre==\"");
$w_clause2 = w_clause2.stringCat(sobre2);
$w_clause2 = w_clause2.stringCat("\"");
}
else if (w_clause2!="")
{
$w_clause2 = w_clause2.stringCat("\ and Componente.sobre==\"");
$w_clause2 = w_clause2.stringCat(sobre2);
$w_clause2 = w_clause2.stringCat("\"");
};
};
$if (generica3!="") {
$w_clause3 = w_clause3.stringCat("\Componente.de_generico==\"");
$w_clause3 = w_clause3.stringCat(generica3);
$w_clause3 = w_clause3.stringCat("\"");
};
$if (especifica3!="") {
$if (w_clause3=="") {
$w_clause3 = w_clause3.stringCat("\Componente.de_especifico==\"");
$w_clause3 = w_clause3.stringCat(especifica3);
$w_clause3 = w_clause3.stringCat("\"");
}
else if (w_clause3!="")
{
$w_clause3 = w_clause3.stringCat("\ and Componente.de_especifico==\"");
$w_clause3 = w_clause3.stringCat(especifica3);
$w_clause3 = w_clause3.stringCat("\"");
};
};
$if (sobre3!="") {
$if (w_clause3=="") {
$w_clause3 = w_clause3.stringCat("\Componente.sobre==\"");
$w_clause3 = w_clause3.stringCat(sobre3);
$w_clause3 = w_clause3.stringCat("\"");
}
else if (w_clause3!="")
{
$w_clause3 = w_clause3.stringCat("\ and Componente.sobre==\"");
$w_clause3 = w_clause3.stringCat(sobre3);
$w_clause3 = w_clause3.stringCat("\"");
};
};
$if (w_clause1!="") {
$qry1 = String.format("bocompo1 = Componente.objeto_imagem from Componente where %s;", w_clause1);
$execute qry1 using bocompo1;
};
$if (w_clause2!="") {
$qry2 = String.format("bocompo2 = Componente.objeto_imagem from Componente where %s;", w_clause2);
$execute qry2 using bocompo2;
};
$if (w_clause3!="") {
$qry3 = String.format("bocompo3 = Componente.objeto_imagem from Componente where %s;", w_clause3);
$execute qry3 using bocompo3;
};
$if (w_clause1!="" and w_clause2=="" and w_clause3=="") {
$resultado = bocompo1;
109
};
$if (w_clause1=="" and w_clause2!="" and w_clause3=="") {
$resultado = bocompo2;
};
$if (w_clause1=="" and w_clause2=="" and w_clause3!="") {
$resultado = bocompo3;
};
$if (w_clause1!="" and w_clause2!="" and w_clause3=="") {
$resultado = bocompo1.intersect(bocompo2);
};
$if (w_clause1!="" and w_clause2=="" and w_clause3!="") {
$resultado = bocompo1.intersect(bocompo3);
};
$if (w_clause1=="" and w_clause2!="" and w_clause3!="") {
$resultado = bocompo2.intersect(bocompo3);
};
$if (w_clause1!="" and w_clause2!="" and w_clause3!="") {
$resultadop1 = bocompo1.intersect(bocompo2);
$resultado = resultadop1.intersect(bocompo3);
};
$return(resultado);
Método da classe Tipo_de_Relacionamento:
•
ConsultaTipo_relacionamento
metaimagemCF::Tipo_de_Relacionamento::ConsultaTipo_relacionamento
Method: ConsultaTipo_relacionamento
Level: Class
Return Value: metaimagemCF::Objeto_Imagem
Collection
Parameters:
generica1 String [40]
especifica1 String [40]
sobre1 String [40]
relaciona1 String [30]
generica2 String [40]
especifica2 String [40]
sobre2 String [40]
$defaultCF 'metaimagemCF';
$String w_clause1;
$String w_clause2;
$String qry1;
$String qry2;
$Bag <Componente> bocompo1;
$Componente compo1;
$Bag <Componente> bocompo2;
$Componente compo2;
$Bag <Componente> bocompoaux2;
$Componente compoaux2;
$Bag <Tipo_de_Relacionamento> borelaciona;
$Tipo_de_Relacionamento rel;
$Bag <Objeto_Imagem> resultado;
$w_clause1 = "";
$w_clause2 = "";
$bocompo1 = Bag{};
$bocompo2 = Bag{};
$bocompoaux2 = Bag{};
$resultado = Bag{};
$if (generica1!="") {
$w_clause1 = w_clause1.stringCat("\Componente.de_generico==\"");
$w_clause1 = w_clause1.stringCat(generica1);
$w_clause1 = w_clause1.stringCat("\"");
};
$if (especifica1!="") {
$if (w_clause1=="") {
$w_clause1 = w_clause1.stringCat("\Componente.de_especifico==\"");
$w_clause1 = w_clause1.stringCat(especifica1);
$w_clause1 = w_clause1.stringCat("\"");
}
110
else if (w_clause1!="")
{
$w_clause1 = w_clause1.stringCat("\ and Componente.de_especifico==\"");
$w_clause1 = w_clause1.stringCat(especifica1);
$w_clause1 = w_clause1.stringCat("\"");
};
};
$if (sobre1!="") {
$if (w_clause1=="") {
$w_clause1 = w_clause1.stringCat("\Componente.sobre==\"");
$w_clause1 = w_clause1.stringCat(sobre1);
$w_clause1 = w_clause1.stringCat("\"");
}
else if (w_clause1!="")
{
$w_clause1 = w_clause1.stringCat("\ and Componente.sobre==\"");
$w_clause1 = w_clause1.stringCat(sobre1);
$w_clause1 = w_clause1.stringCat("\"");
};
};
$if (generica2!="") {
$w_clause2 = w_clause2.stringCat("\Componente.de_generico==\"");
$w_clause2 = w_clause2.stringCat(generica2);
$w_clause2 = w_clause2.stringCat("\"");
};
$if (especifica2!="") {
$if (w_clause2=="") {
$w_clause2 = w_clause2.stringCat("\Componente.de_especifico==\"");
$w_clause2 = w_clause2.stringCat(especifica2);
$w_clause2 = w_clause2.stringCat("\"");
}
else if (w_clause2!="")
{
$w_clause2 = w_clause2.stringCat("\ and Componente.de_especifico==\"");
$w_clause2 = w_clause2.stringCat(especifica2);
$w_clause2 = w_clause2.stringCat("\"");
};
};
$if (sobre2!="") {
$if (w_clause2=="") {
$w_clause2 = w_clause2.stringCat("\Componente.sobre==\"");
$w_clause2 = w_clause2.stringCat(sobre2);
$w_clause2 = w_clause2.stringCat("\"");
}
else if (w_clause2!="")
{
$w_clause2 = w_clause2.stringCat("\ and Componente.sobre==\"");
$w_clause2 = w_clause2.stringCat(sobre2);
$w_clause2 = w_clause2.stringCat("\"");
};
};
$if (w_clause1!="") {
$qry1 = String.format("bocompo1 = Componente from Componente where %s;", w_clause1);
$execute qry1 using bocompo1;
};
$if (w_clause2!="") {
$qry2 = String.format("bocompo2 = Componente from Componente where %s;", w_clause2);
$execute qry2 using bocompo2;
};
$if (w_clause1!="" and w_clause2!="") {
$scan (bocompo1, compo1) {
$borelaciona = compo1.relacionado_com;
$scan (borelaciona, rel) {
$if (rel.posicao == relaciona1) {
$bocompoaux2 = rel.componentes_relacionados;
$scan (bocompo2, compo2) {
$scan (bocompoaux2, compoaux2) {
$if (compo2 == compoaux2) {
$resultado = resultado.add(compo1.objeto_imagem);
};
};
111
};
};
};
};
};
$if (w_clause1!="" and w_clause2=="") {
$scan (bocompo1, compo1) {
$borelaciona = compo1.relacionado_com;
$scan (borelaciona, rel) {
$if (rel.posicao == relaciona1) {
$resultado = resultado.add(compo1.objeto_imagem);
};
};
};
};
$return(resultado);
Método da classe Ser:
•
ConsultaRepre_fac_ser
metaimagemCF::Ser::ConsultaRepre_fac_ser
Method: ConsultaRepre_fac_ser Level: Class
Return Value: metaimagemCF::Objeto_Imagem
Parameters:
tipo1 String [20]
idade1 String [15]
cor1 String [15]
tipo2 String [20]
idade2 String [15]
cor2 String [15]
tipo3 String [20]
idade3 String [15]
cor3 String [15]
$defaultCF 'metaimagemCF';
$String w_clause1;
$String w_clause2;
$String w_clause3;
$String qry1;
$String qry2;
$String qry3;
$Bag <Objeto_Imagem> bocomposer1;
$Bag <Objeto_Imagem> bocomposer2;
$Bag <Objeto_Imagem> bocomposer3;
$Bag <Objeto_Imagem> resultadop1;
$Bag <Objeto_Imagem> resultado;
$w_clause1 = "";
$w_clause2 = "";
$w_clause3 = "";
$bocomposer1 = Bag{};
$bocomposer2 = Bag{};
$bocomposer3 = Bag{};
$resultadop1 = Bag{};
$resultado = Bag{};
Collection
$if (tipo1!="") {
$w_clause1 = "Componente.ser.tipo==\"";
$w_clause1 = w_clause1.stringCat(tipo1);
$w_clause1 = w_clause1.stringCat("\"");
};
$if (idade1!="") {
$if (w_clause1=="") {
$w_clause1 = "Componente.ser.idade==\"";
$w_clause1 = w_clause1.stringCat(idade1);
$w_clause1 = w_clause1.stringCat("\"");
}
else if (w_clause1!="")
{
$w_clause1 = w_clause1.stringCat("\ and Componente.ser.idade==\"");
$w_clause1 = w_clause1.stringCat(idade1);
$w_clause1 = w_clause1.stringCat("\"");
};
112
};
$if (cor1!="") {
$if (w_clause1=="") {
$w_clause1 = "Componente.ser.cor==\"";
$w_clause1 = w_clause1.stringCat(cor1);
$w_clause1 = w_clause1.stringCat("\"");
}
else if (w_clause1!="")
{
$w_clause1 = w_clause1.stringCat("\ and Componente.ser.cor==\"");
$w_clause1 = w_clause1.stringCat(cor1);
$w_clause1 = w_clause1.stringCat("\"");
};
};
$if (tipo2!="") {
$w_clause2 = "Componente.ser.tipo==\"";
$w_clause2 = w_clause2.stringCat(tipo2);
$w_clause2 = w_clause2.stringCat("\"");
};
$if (idade2!="") {
$if (w_clause2=="") {
$w_clause2 = "Componente.ser.idade==\"";
$w_clause2 = w_clause2.stringCat(idade2);
$w_clause2 = w_clause2.stringCat("\"");
}
else if (w_clause2!="")
{
$w_clause2 = w_clause2.stringCat("\ and Componente.ser.idade==\"");
$w_clause2 = w_clause2.stringCat(idade2);
$w_clause2 = w_clause2.stringCat("\"");
};
};
$if (cor2!="") {
$if (w_clause2=="") {
$w_clause2 = "Componente.ser.cor==\"";
$w_clause2 = w_clause2.stringCat(cor2);
$w_clause2 = w_clause2.stringCat("\"");
}
else if (w_clause2!="")
{
$w_clause2 = w_clause2.stringCat("\ and Componente.ser.cor==\"");
$w_clause2 = w_clause2.stringCat(cor2);
$w_clause2 = w_clause2.stringCat("\"");
};
};
$if (tipo3!="") {
$w_clause3 = "Componente.ser.tipo==\"";
$w_clause3 = w_clause3.stringCat(tipo3);
$w_clause3 = w_clause3.stringCat("\"");
};
$if (idade3!="") {
$if (w_clause3=="") {
$w_clause3 = "Componente.ser.idade==\"";
$w_clause3 = w_clause3.stringCat(idade3);
$w_clause3 = w_clause3.stringCat("\"");
}
else if (w_clause3!="")
{
$w_clause3 = w_clause3.stringCat("\ and Componente.ser.idade==\"");
$w_clause3 = w_clause3.stringCat(idade3);
$w_clause3 = w_clause3.stringCat("\"");
};
};
$if (cor3!="") {
$if (w_clause3=="") {
$w_clause3 = "Componente.ser.cor==\"";
$w_clause3 = w_clause3.stringCat(cor3);
$w_clause3 = w_clause3.stringCat("\"");
}
else if (w_clause3!="")
{
113
$w_clause3 = w_clause3.stringCat("\ and Componente.ser.cor==\"");
$w_clause3 = w_clause3.stringCat(cor3);
$w_clause3 = w_clause3.stringCat("\"");
};
};
$if (w_clause1!="") {
$qry1 = String.format("bocomposer1 = Componente.objeto_imagem from Componente where %s;", w_clause1);
$execute qry1 using bocomposer1;
};
$if (w_clause2!="") {
$qry2 = String.format("bocomposer2 = Componente.objeto_imagem from Componente where %s;", w_clause2);
$execute qry2 using bocomposer2;
};
$if (w_clause3!="") {
$qry3 = String.format("bocomposer3 = Componente.objeto_imagem from Componente where %s;", w_clause3);
$execute qry3 using bocomposer3;
};
$if (w_clause1!="" and w_clause2=="" and w_clause3=="") {
$resultado = bocomposer1;
};
$if (w_clause1=="" and w_clause2!="" and w_clause3=="") {
$resultado = bocomposer2;
};
$if (w_clause1=="" and w_clause2=="" and w_clause3!="") {
$resultado = bocomposer3;
};
$if (w_clause1!="" and w_clause2!="" and w_clause3=="") {
$resultado = bocomposer1.intersect(bocomposer2);
};
$if (w_clause1!="" and w_clause2=="" and w_clause3!="") {
$resultado = bocomposer1.intersect(bocomposer3);
};
$if (w_clause1=="" and w_clause2!="" and w_clause3!="") {
$resultado = bocomposer2.intersect(bocomposer3);
};
$if (w_clause1!="" and w_clause2!="" and w_clause3!="") {
$resultadop1 = bocomposer1.intersect(bocomposer2);
$resultado = resultadop1.intersect(bocomposer3);
};
$return(resultado);
114
APÊNDICE B
ALGUNS ARQUIVOS HTML COM CÓDIGO ODQL EMBUTIDO
A funcionalidade de todos esses arquivos HTML desse apêndice está sendo descrita no
Capítulo 5.
•
inicial.html
<html>
<head>
<title>Tese de Mestrado - IME - Aluna: Simone de Souza Garcia</title>
</head>
<body LINK="#0000FF" VLINK="#800080" background="/metaimagem/gifs/BLUEBACK.gif"
bgproperties="fixed">
<h1 align="center"><img src="/metaimagem/gifs/anima.gif" width="64" height="93" alt="IME"
align="left"></h1>
<blockquote>
<blockquote>
<div align="center"><center><address>
<strong><small><font face="Times New Roman">Ministério do Exército</font> </small></strong>
</address>
</center></div><div align="center"><center><address>
<strong><small><font face="Times New Roman">Instituto Militar de Engenharia</font> - IME </small></strong>
</address>
</center></div><div align="center"><center><address>
<small><strong><font face="Times New Roman">Departamento de Engenharia de Sistemas e
Computação - DE/9</font></strong> </small>
</address>
</center></div><p align="center"><big><font color="#0000FF"><strong>&nbsp;</strong></font></big></p>
<div align="center"><center><address>
<font color="#0000FF"><strong><big>Tese de Mestrado</big><small> </small></strong></font>
</address>
</center></div>
</blockquote>
</blockquote>
<div align="center"><center>
<address>
<big><big><font face="Times New Roman"><a href="/cgi-bin/odb-login.exe?WIT_env=metaimagem">Metadados
para </a></font></big></big>
</address>
</center></div><a href="/cgi-bin/odb-login.exe?WIT_env=metaimagem"><div align="center"><center>
<address>
<big><big><font face="Times New Roman">Documentação e Recuperação de Imagens</font></big></big><small>
</small>
</address>
</center></div></a>
<p align="center"><strong><small><span style="border: medium none">&nbsp;</span></small></strong></p>
<div align="center"><center>
<address>
<strong><small><span style="border: medium none">Aluna: Simone de Souza Garcia</span></small></strong>
</address>
</center></div><div align="center"><center>
<address>
<small><span style="border: medium none">Área de Concentração: Tratamento da
Informação&nbsp; -&nbsp; Linha de Pesquisa: Sistemas de Bancos de Dados</span></small>
</address>
</center></div><div align="center"><center>
<address>
<small><span style="border: medium none">Orientadora: Ana Maria de Carvalho Moura
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Coorientadora:
115
Maria Luíza Machado Campos</span></small>
</address>
</center></div>
</body>
</html>
•
home.html
<html>
<head>
<title>Tese de Mestrado - IME - Aluna: Simone de Souza Garcia</title>
</head>
<body LINK="#0000FF" VLINK="#800080" background="/metaimagem/gifs/BLUEBACK.gif"
bgproperties="fixed">
<font SIZE="6" COLOR="#0000ff">
<h2 ALIGN="CENTER">Metadados para Imagens</h2>
</font>
<h4><a HREF="/cgi-bin/odb-get.exe?WIT_template=temp1">Consultando Banco de Dados de
Imagens Utilizando Metadados</a></h4>
<hr width="80%" color="#800000">
<p align="center">
<a href="/cgi-bin/odb-logout.exe?WIT_html=/metaimagem/html/inicial.html" target="_top"><img
src="/metaimagem/gifs/exits.bmp" WIDTH="31" HEIGHT="31" border="0" alt="Sair" width="84" height="30"></a> </p>
<hr width="80%" color="#800000">
</body>
</html>
•
opcoes.html
<html>
<head>
<title>Tese de Mestrado - IME - Aluna: Simone de Souza Garcia</title>
</head>
<body LINK="#0000FF" VLINK="#800080" background="/metaimagem/gifs/BLUEBACK.gif"
bgproperties="fixed" style="text-indent: 0px; letter-spacing: 0px">
<h4 ALIGN="CENTER"><font size="5" color="#0000FF">Metadados para Imagens</font></h4>
<table border="1" width="100%" bordercolor="#FFFFFF" bordercolorlight="#FFFFFF"
bordercolordark="#FFFFFF" cellspacing="0">
<tr>
<td width="55%"><h4><a HREF="/cgi-bin/odb-get.exe?WIT_template=obj_img">Objeto Imagem</a></h4>
</td>
<td width="53%"><h4><a HREF="/cgi-bin/odb-get.exe?WIT_template=imgorig">Imagem Original</a></h4>
</td>
</tr>
<tr>
<td width="54%"><h4><a HREF="/cgi-bin/odb-get.exe?WIT_template=assoc">Tipo de Associação
</a></h4>
</td>
<td width="54%"><h4><a HREF="/cgi-bin/odb-get.exe?WIT_template=todas">Todas as Imagens</a></h4>
</td>
</tr>
<tr>
<td width="55%" valign="top"><h4>Conteúdo Semântico</h4>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a
HREF="/cgi-bin/odb-get.exe?WIT_template=acao">Ação</a></h4>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
HREF="/cgi-bin/odb-get.exe?WIT_template=espaco">Espaço</a></h4>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
HREF="/cgi-bin/odb-get.exe?WIT_template=tempo">Tempo</a></h4>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
HREF="/cgi-bin/odb-get.exe?WIT_template=finali">Finalidade</a></h4>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
HREF="/cgi-bin/odb-get.exe?WIT_template=compo">Componente</a></h4>
</td>
<td width="53%"><h4>Representação Factual&nbsp; </h4>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
HREF="/cgi-bin/odb-get.exe?WIT_template=ser">Ser</a></h4>
116
<h5>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp; <a HREF="/cgi-bin/odb-get.exe?WIT_template=compoint">Componentes
Integrantes</a></h5>
<h5>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; &nbsp; <a HREF="/cgi-bin/odb-get.exe?WIT_template=componint">Componentes
Não Integrantes</a></h5>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
HREF="/cgi-bin/odb-get.exe?WIT_template=reino">Reino</a></h4>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
HREF="/cgi-bin/odb-get.exe?WIT_template=forca">Força da Natureza</a></h4>
<h4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
HREF="/cgi-bin/odb-get.exe?WIT_template=objeto">Objeto</a></h4>
</td>
</tr>
<tr>
<td width="55%"><h4><a HREF="/cgi-bin/odb-get.exe?WIT_template=relac">Relacionamento entre
Componentes</a></h4>
</td>
<td width="53%"><h4><a HREF="/cgi-bin/odb-get.exe?WIT_template=rpos">Representação
Posicional</a></h4>
</td>
</tr>
</table>
<p align="center"><a HREF="/cgi-bin/odb-get.exe?WIT_template=resultfim"><img
src="/metaimagem/gifs/finaliz.bmp" WIDTH="84" HEIGHT="32" border="0"
alt="Resultado Final de Todas as Consultas" width="84" height="32"></a> <a
HREF="/cgi-bin/odb-get.exe?WIT_template=temp1"><img src="/metaimagem/gifs/reinic.bmp" WIDTH="84"
HEIGHT="32" border="0" alt="Reinicializa o Resultado de Todas as Consultas" width="84"
height="32"></a></p>
<hr>
<p align="center"><a href="/cgi-bin/odb-logout.exe?WIT_html=/metaimagem/html/inicial.html"
target="_top"><img src="/metaimagem/gifs/exits.bmp" WIDTH="31" HEIGHT="31" border="0" alt="Sair" width="84"
height="30"></a> </p>
</body>
</html>
•
obj_img.html
<html>
<head>
<title>Tese de Mestrado - IME - Aluna: Simone de Souza Garcia</title>
</head>
<body>
<h2 ALIGN="CENTER"><font color="#0000FF">Objeto Imagem</font></h2>
<form action="/cgi-bin/odb-get.exe" method="POST">
<input type="hidden" name="WIT_template" value="objimg-inter"><p>Título: &nbsp;&nbsp;
&nbsp;&nbsp; <!--webbot bot="Validation" startspan S-Data-Type="String"
B-Allow-Letters="TRUE" B-Allow-Digits="TRUE" B-Allow-WhiteSpace="TRUE"
I-Maximum-Length="20" --><!--webbot bot="Validation" endspan --><input TYPE="text"
NAME="titulo" value SIZE="20" MAXLENGTH="20">&nbsp; </p>
<p>Fonte: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="fonte" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Formato: &nbsp; <!--webbot bot="Validation" startspan S-Data-Type="String"
B-Allow-Letters="TRUE" B-Allow-Digits="TRUE" B-Allow-WhiteSpace="TRUE"
I-Maximum-Length="10" --><!--webbot bot="Validation" endspan --><input TYPE="text"
NAME="formato" value SIZE="10" MAXLENGTH="10">&nbsp; </p>
<p>Esquema de compressão:&nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="esquema" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Dimensão do arquivo: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="20" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="dimensao" value SIZE="20" MAXLENGTH="20">&nbsp; </p>
<p>Dimensão da imagem digital: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation"
startspan S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
117
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="20" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="dimendig" value SIZE="20" MAXLENGTH="20">&nbsp; </p>
<p>Resolução: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="resolucao" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Localização física: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="40" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="localiza" value SIZE="40" MAXLENGTH="40">&nbsp; </p>
<p>Dispositivo de armazenamento: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation"
startspan S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="10" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="dispositivo" value SIZE="10" MAXLENGTH="10">&nbsp; </p>
<p>Lugar do repositório: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="repositorio" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Direitos autorais: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="direitos" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Proprietário: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="proprietario" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Digitalizador: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="digitalizador" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Tipo de Digitalizador: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="tdigitalizador" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Data da criação: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="10" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="criacao" value SIZE="10" MAXLENGTH="10">&nbsp; </p>
<p>Software usado para criação: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation"
startspan S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="30" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="soft" value SIZE="30" MAXLENGTH="30">&nbsp; </p>
<p>Espaço de cor: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="15" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="espaco" value SIZE="15" MAXLENGTH="15">&nbsp; </p>
<p>Cromia: &nbsp;&nbsp; &nbsp;&nbsp; <!--webbot bot="Validation" startspan
S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE"
B-Allow-WhiteSpace="TRUE" I-Maximum-Length="20" --><!--webbot bot="Validation" endspan
--><input TYPE="text" NAME="cromia" value SIZE="20" MAXLENGTH="20">&nbsp; </p>
<div align="center"><center><p><input type="submit" value="Consultar">
<input type="reset" value="Limpar"> </p>
</center></div>
</form>
<hr width="80%" color="#800000">
<a HREF="/cgi-bin/odb-get.exe?WIT_template=opcoes">
<p align="center"><img src="/metaimagem/gifs/volta.gif" WIDTH="31" HEIGHT="31" border="0" alt="Voltar" to main
page] width="84" height="30"></a> <a
href="/cgi-bin/odb-logout.exe?WIT_html=/metaimagem/html/inicial.html" target="_top"><img
src="/metaimagem/gifs/exits.bmp" WIDTH="31" HEIGHT="31" border="0" alt="Sair" width="84" height="30"></a> </p>
<hr width="80%" color="#800000">
</body>
</html>
•
objimg-inter.html
<html>
<body>
<head>
<title>Tese de Mestrado - IME - Aluna: Simone de Souza Garcia</title>
</head>
118
<!DO "defaultCF metaimagemCF">
<!VAR "Bag<Objeto_Imagem>" "botec">
<!VAR "Objeto_Imagem" "oi">
<!VAR "Bag<Objeto_Imagem>" "bodimen">
<!VAR "Bag<Objeto_Imagem>" "borfim">
<!VAR String titulo1>
<!VAR String fonte1>
<!VAR String formato1>
<!VAR String esquema1>
<!VAR String resolucao1>
<!VAR String localiza1>
<!VAR String dispositivo1>
<!VAR String repositorio1>
<!VAR String direitos1>
<!VAR String proprietario1>
<!VAR String digitalizador1>
<!VAR String tdigitalizador1>
<!VAR String soft1>
<!VAR String espaco1>
<!VAR String cromia1>
<!VAR String criacao1>
<!VAR String dimensao1>
<!VAR String dimendig1>
<!VAR Integer auxtec>
<!VAR Integer auxdimen>
<!VAR Integer n>
<!VAR Integer escolhido>
<!DO "botec = Bag{}">
<!DO "wit_botec = Bag{}">
<!DO "bodimen = Bag{}">
<!DO "borfim = Bag{}">
<!DO "titulo1 = wit_titulo">
<!DO "fonte1 = wit_fonte">
<!DO "formato1 = wit_formato">
<!DO "esquema1 = wit_esquema">
<!DO "resolucao1 = wit_resolucao">
<!DO "localiza1 = wit_localiza">
<!DO "dispositivo1 = wit_dispositivo">
<!DO "repositorio1 = wit_repositorio">
<!DO "direitos1 = wit_direitos">
<!DO "proprietario1 = wit_proprietario">
<!DO "digitalizador1 = wit_digitalizador">
<!DO "tdigitalizador1 = wit_tdigitalizador">
<!DO "soft1 = wit_soft">
<!DO "espaco1 = wit_espaco">
<!DO "cromia1 = wit_cromia">
<!DO "criacao1 = wit_criacao">
<!DO "dimensao1 = wit_dimensao">
<!DO "dimendig1 = wit_dimendig">
<!DO "auxtec = 0">
<!DO "auxdimen = 0">
<!DO "wit_oi = List{}">
<!IF "titulo1!="" or fonte1!="" or formato1!="" or esquema1!="" or resolucao1!="" or localiza1!="" or dispositivo1!="" or repositorio1!=""
or direitos1!="" or proprietario1!="" or digitalizador1!="" or tdigitalizador1!="" or criacao1!="" or soft1!="" or espaco1!="" or
cromia1!=""">
<!DO "auxtec = 1">
<!DO "botec = Objeto_Imagem.ConsultaInftec(titulo1, fonte1, formato1, esquema1, resolucao1, localiza1, dispositivo1, repositorio1,
direitos1, proprietario1, digitalizador1, tdigitalizador1, criacao1, soft1, espaco1, cromia1)">
<!DO "borfim = botec">
<!/IF>
<!IF "dimensao1!="" or dimendig1!=""">
<!DO "auxdimen = 1">
<!DO "bodimen = Objeto_Imagem.ConsultaDim(dimensao1, dimendig1)">
<!/IF>
<!IF "auxtec == 1 and auxdimen == 1">
<!DO "borfim = Bag{}">
<!DO "borfim = Objeto_Imagem.ConsultaInter(bodimen,botec)">
<!/IF>
<!IF "auxtec == 0 and auxdimen == 1">
119
<!DO "borfim = Bag{}">
<!DO "borfim = bodimen">
<!/IF>
<!DO "wit_botec = borfim.unique()">
<!DO "wit_cbotec = 1">
<h2 ALIGN="CENTER"><font color="#0000FF">Objeto Imagem</font></h2>
<a HREF="/cgi-bin/odb-get.exe?WIT_template=resultobjimg&wit_botec">
<p align="center"><img src="/metaimagem/gifs/verimg.bmp" WIDTH="84" HEIGHT="32" border="0" alt="Ver as imagens resposta dessa
consulta">
</a></p>
<a HREF="/cgi-bin/odb-get.exe?WIT_template=opcoes">
<p align="center"><img src="/metaimagem/gifs/contcon.bmp" WIDTH="84" HEIGHT="32" border="0" alt="Continuar a consulta"> </a>
</p>
<hr width="80%" color="#800000">
<a HREF="/cgi-bin/odb-get.exe?WIT_template=opcoes">
<p align="center"><img src="/metaimagem/gifs/volta.gif" WIDTH="31" HEIGHT="31" border="0" alt="Voltar" to main
page] width="84" height="30"></a> <a
href="/cgi-bin/odb-logout.exe?WIT_html=/metaimagem/html/inicial.html" target="_top"><img
src="/metaimagem/gifs/exits.bmp" WIDTH="31" HEIGHT="31" border="0" alt="Sair" width="84" height="30"></a> </p>
<hr width="80%" color="#800000">
</body>
</html>
•
resultobjimg.html
<html>
<body>
<head>
<title>Tese de Mestrado - IME - Aluna: Simone de Souza Garcia</title>
</head>
<!DO "defaultCF metaimagemCF">
<!VAR "Bag<Objeto_Imagem>" "borfim">
<!VAR "Objeto_Imagem" "oi">
<!VAR Integer n>
<!VAR Integer escolhido>
<!DO "botec = Bag{}">
<!DO "n = 0">
<!DO "escolhido = 0">
<!DO "wit_oi = List{}">
<!DO "borfim = wit_botec">
<!FOREACH borfim oi>
<img SRC=<!MEDIA oi.arquivo_imagem_digital image/jpg> WIDTH="150" HEIGHT="150" BORDER=0>
<!DO "wit_oi.insertElementAt(oi, n)">
<a HREF=/cgi-bin/odb-get.exe?WIT_template=resultversoes&wit_oi&escolhido=<!REPLACE n> target=_top>
<img src=/metaimagem/gifs/versao.bmp WIDTH="31" HEIGHT="31" border="0" alt="Versões da imagem anterior"></a>
<a HREF=/cgi-bin/odb-get.exe?WIT_template=resultassoc-escolhido&wit_oi&escolhido=<!REPLACE n> target=_top>
<img src=/metaimagem/gifs/assoc.bmp WIDTH="45" HEIGHT="31" border="0" alt="Imagens Associadas a imagem anterior"></a>
<!DO "n = n+1">
<!/FOREACH>
<hr width="80%" color="#800000">
<a HREF="/cgi-bin/odb-get.exe?WIT_template=opcoes">
<p align="center"><img src="/metaimagem/gifs/volta.gif" WIDTH="31" HEIGHT="31" border="0" alt="Voltar" to main
page] width="84" height="30"></a> <a
href="/cgi-bin/odb-logout.exe?WIT_html=/metaimagem/html/inicial.html" target="_top"><img
src="/metaimagem/gifs/exits.bmp" WIDTH="31" HEIGHT="31" border="0" alt="Sair" width="84" height="30"></a> </p>
<hr width="80%" color="#800000">
</body>
120
</html>
•
resultversoes.html
<HTML>
<HEAD>
<TITLE>Tese de Mestrado - IME - Aluna: Simone de Souza Garcia</TITLE>
</HEAD>
<BODY>
<!DO "defaultCF metaimagemCF">
<!VAR "List<Objeto_Imagem>" "loversoes">
<!VAR "Objeto_Imagem" "obj">
<!VAR "Integer" "auxescolhido">
<!VAR "String" "auxesco">
<!DO "loversoes = List{}">
<!DO "auxesco = wit_escolhido">
<!DO "auxescolhido = Objeto_Imagem.Converte(auxesco)">
<!DO "obj = wit_oi.getElementAt(auxescolhido)">
<!DO "loversoes = obj.versoes">
<!FOREACH loversoes obj>
<IMG SRC=<!MEDIA obj.arquivo_imagem_digital image/jpg> WIDTH="150" HEIGHT="150" BORDER=0>
<!/FOREACH>
<hr width="80%" color="#800000">
<a HREF="/cgi-bin/odb-get.exe?WIT_template=opcoes">
<p align="center"><img src="/metaimagem/gifs/volta.gif" WIDTH="31" HEIGHT="31" border="0" alt="Voltar" to main
page] width="84" height="30"></a> <a
href="/cgi-bin/odb-logout.exe?WIT_html=/metaimagem/html/inicial.html" target="_top"><img
src="/metaimagem/gifs/exits.bmp" WIDTH="31" HEIGHT="31" border="0" alt="Sair" width="84" height="30"></a> </p>
<hr width="80%" color="#800000">
</BODY>
</HTML>
•
resultassoc-escolhido.html
<HTML>
<HEAD>
<TITLE>Tese de Mestrado - IME - Aluna: Simone de Souza Garcia</TITLE>
</HEAD>
<BODY>
<!DO "defaultCF metaimagemCF">
<!VAR "List<Tipo_de_Associacao>" "loassocs">
<!VAR "Tipo_de_Associacao" "objtp">
<!VAR "Objeto_Imagem" "obj">
<!VAR "Objeto_Imagem" "objaux">
<!VAR "List<Objeto_Imagem>" "loassociados">
<!VAR "Integer" "auxescolhido">
<!VAR "String" "auxesco">
<!DO "loassocs = List{}">
<!DO "loassociados = List{}">
<!DO "auxesco = wit_escolhido">
<!DO "auxescolhido = Objeto_Imagem.Converte(auxesco)">
<!DO "obj = wit_oi.getElementAt(auxescolhido)">
<!DO "loassocs = obj.objetos_associados">
<!FOREACH loassocs objtp>
<!DO "objaux = objtp.objeto_imagem">
<IMG SRC=<!MEDIA objaux.arquivo_imagem_digital image/jpg> WIDTH="150" HEIGHT="150" BORDER=0>
<!Replace objtp.tipo>
<!DO "loassociados = List{}">
<!DO "loassociados = objtp.objetos_associados">
<!FOREACH loassociados obj>
<IMG SRC=<!MEDIA obj.arquivo_imagem_digital image/jpg> WIDTH="150" HEIGHT="150" BORDER=0>
<!/FOREACH>
<hr width="100%" color="#600000">
<!/FOREACH>
121
<hr width="80%" color="#800000">
<a HREF="/cgi-bin/odb-get.exe?WIT_template=opcoes">
<p align="center"><img src="/metaimagem/gifs/volta.gif" WIDTH="31" HEIGHT="31" border="0" alt="Voltar" to main
page] width="84" height="30"></a> <a
href="/cgi-bin/odb-logout.exe?WIT_html=/metaimagem/html/inicial.html" target="_top"><img
src="/metaimagem/gifs/exits.bmp" WIDTH="31" HEIGHT="31" border="0" alt="Sair" width="84" height="30"></a> </p>
<hr width="80%" color="#800000">
</BODY>
</HTML>
122
APÊNDICE C
PROCEDIMENTOS PARA UTILIZAÇÃO DO JASMINE
CRIAÇÃO DE STORE E CLASS FAMILY
Antes da criação das classes é necessário que seja alocado um espaço onde serão
armazenadas essas classes, que no Jasmine dá-se o nome de Store. O Jasmine trabalha com
um conceito de Class Family para a criação das classes, significando que, para cada projeto
criado no sistema existirá uma classe família, a partir da qual serão criadas as classes do
esquema conceitual correspondente àquele projeto. Assim sendo, as classes do esquema
contidas em uma Class Family serão armazenadas em um Store.
Passos para a criação de Store e Class Family, considerando-se que o Jasmine esteja
instalado no drive C:
•
Para se criar um Store: na linha de comando DOS entrar no diretorio
c:\jasmine\jasmine\bin e com o Jasmine em execução executar o seguinte comando:
createStore metaimagem c:\jasmine\metaimagem
Sendo metaimagem o nome do Store criado.
•
Para se criar uma Class Family (classe família): na linha de comando DOS entrar no
diretorio c:\jasmine\jasmine\bin e com o Jasmine em execução executar o seguinte
comando:
createCF metaimagemCF metaimagem
Sendo metaimagemCF o nome da Class Family criada dentro do Store metaimagem.
Após a criação de um Store e uma Class Family, pode-se então iniciar a etapa de
criação das classes e métodos de um projeto.
123
CÓPIA E RECUPERAÇÃO DO BANCO DE DADOS
Após ter sido criado um projeto no Jasmine é importante saber como fazer a cópia e a
recuperação do banco de dados, contendo todas as classes, métodos e objetos instanciados
pertencentes a uma class family, considerando que o Jasmine está instalado no drive C:
•
Para copiar o banco de dados para disquete: na linha de comando DOS entrar no diretório
c:\jasmine\jasmine\bin e executar o comando abaixo: (obs: o Jasmine não pode estar em
execução)
unload -o a:\metacopia metaimagemCF
Sendo metacopia o nome dado à cópia feita da class family metaimagemCF.
•
Para copiar do disquete para o banco de dados: na linha de comando DOS entrar no
diretório c:\jasmine\jasmine\bin e executar o comando abaixo: (obs: o Jasmine não pode
estar em execução)
load a:\metacopia -s -d all -c metaimagemCF=metaimagemCF
•
No caso de classes que possuam propriedades do tipo multimídia faz-se necessária a cópia
da class family MEDIACF1 (classe já existente no Jasmine), pois os dados do tipo
multimídia (imagens, vídeos, sons e documentos) são armazenados nesta classe chamada
MEDIACF1, estando somente os ponteiros referentes a esses dados armazenados na
classe a qual a propriedade pertence de fato. Nesse caso é necessário que seja feita a cópia
da class family MEDIACF1 além da class family do projeto.
unload -o a:\mediacopia mediaCF1
e para a recuperação da MEDIACF1 de volta ao banco de dados:
load a:\mediacopia -s -d all -c mediaCF1=mediaCF1
Sendo mediacopia o nome dado à cópia da classe MEDIACF1.
124
CONFIGURAÇÃO DO WEBLINK
Essa seção descreve passo a passo os procedimentos necessários para configurar o
ambiente para a utilização do WebLink em Windows NT:
•
Instalar o servidor de Internet:
Entrar em :
Meu computador
Rede
Adicionar Serviço
Microsoft Internet Information Server
•
Adicionar as linhas abaixo no arquivo SERVICES do diretório Winnt/System32 por meio
do programa Notepad:
Weblinkp
Weblink
Weblinkd
•
10014/tcp
10015/tcp
10016/tcp
Adicionar o diretório weblink\cgi-bin aos diretórios do serviço WWW no programa
Microsoft Internet Server:
Entrar em :
Gerenciador de serviço da internet
diretórios WWW
adicionar weblink\cgi-bin
marcar opção de leitura e execução
reiniciar servidor (clicar no botão parar serviço e depois iniciar
serviço)
Com o serviço de Internet já instalado, é necessário configurar adequadamente o
WebLink utilizando-se para isso o programa WebLink Environment Editor, mostrado na
Figura C.1, que também vem junto com o Jasmine. A configuração necessária é mostrada
logo após a Figura C.1.
125
FIGURA C.1: Tela do WebLink Environment Editor.
- Server Environment Editor:
maxConnection: (em branco)
serverLog: c:\jasmine\weblink\temp\server.log
numberPublicSessions: 0
serverLogLevel: 0
acsLog: c:\jasmine\weblink\log\acess
errorLog: c:\jasmine\weblink\temp\weblinkerr
acsLogLevel: 2
errorLogLevel: 1
DBName: nome da máquina idle Timeout: 65
DBEnvFile: c:\jasmine\jasmine\envFile\local.env
homePage: (em branco)
logoutPage: (em branco)
userid: nome do usuário
passwd: senha
- Public Environment Editor:
ascLog: c:\jasmine\weblink\temp\PublicAccess.log
errorLog: c:\jasmine\weblink\temp\weblinkerr
ascLogLevel: 0
errorLogLevel: 0
DBName: nome da máquina busy Timeout: 64
DBEnvFile: c:\jasmine\jasmine\envFile\local.env
userid: nome do usuário
passwd: senha
- Default
acsLog: c:\jasmine\weblink\temp\PublicAccess.log
errorLog: c:\jasmine\weblink\temp\weblinkerr
126
acsLogLevel: 0
errorLogLevel: 0
DBName: nome da máquina idle Timeout: 64
DBEnvFile: c:\jasmine\jasmine\envFile\local.env
homePage: file://e:\InetPub\wwwroot\demo\html\home.html
logoutPage: (em branco)
userid: nome do usuário
paswd: senha
- Application Environment Editor (metaimagem):
acsLog: c:\jasmine\weblink\temp\acslog.log
errorLog: c:\jasmine\weblink\temp\weblinkerr
acsLogLevel: 0
errorLogLevel: 0
DBName: nome da máquina idle Timeout: 60
DBEnvFile: c:\jasmine\jasmine\envFile\local.env
homePage: file://c:\metaimagem\html\home.html
logoutPage: file://c:\metaimagem\html\home.html
userid: (em branco)
passwd: (em branco)
127
APÊNDICE D
UTILIZAÇÃO DO ESQUEMA EM XML
XML (Extensible Markup Language) (LIGHT, 1999) é a tecnologia recente, utilizada
na Internet, com tendência a se tornar padrão com o objetivo de indexar, representar,
descrever e divulgar recursos no ambiente WWW. Permite criar tags e elementos a partir de
um subconjunto das linguagens anteriores SGML (Standard Generalized Markup Language)
e da HTML (HyperText Markup Language).
Tags XML provêem informação sobre o conteúdo ali contidos (CLARK, 1998). Como
vantagens da XML (XML) podem ser citadas as seguintes: baseia-se em padrões
internacionais existentes; é totalmente extensível, sem limitações de tags (etiquetas); pode
modelar qualquer tipo de dado; suporta controle de validação e editoração; gera
automaticamente ligações e auxílios navegacionais; permite gerar visões configuráveis pelo
usuário dinamicamente; apresenta sistema de administração mais simples de sites Web;
permite fácil redefinição de documentos; apresenta maior velocidade de acesso aos dados.
Em consonância com a relevância da XML no contexto atual de desenvolvimento de
recursos em ambientes distribuídos tal como WWW, é importante situar como o presente
esquema poderia ser desenvolvido no contexto da XML.
Esse apêndice mostra as vantagens da XML e a possível ligação dessa nova tecnologia
com o esquema para documentação e recuperação de imagens, proposto no Capítulo 4.
CARACTERÍSTICAS DA XML
XML agrupa os dados entre tags similares aos usados em HTML, com a diferença de
que em XML podem ser criados novos tags, usados para definirem os dados nele contidos.
Em XML (CLARK, 1998) o termo “element” é usado para descrever os tags (ambos tags de
128
inicialização e finalização). Como por exemplo, a definição do elemento TOPIC seria:
<TOPIC> O tópico do artigo é XML</TOPIC>.
Quando servidores Web preparam a transmissão de dados com conteúdo XML,
tipicamente devem incluir ponteiros para a DTD (Document Type Definition) associada.
Clientes Web que processam XML devem ser capazes de analisar o contexto de acordo com a
DTD e de interpretar a semântica do hipertexto associada a cada um dos diferentes tags do
documento (KHARE & RIFKIN, 1997).
A DTD permite validar o conjunto de tags para o próprio uso da aplicação. Especifica
o conjunto de elementos requeridos e opcionais para os documentos de acordo com o tipo,
definindo ainda o nome dos tags e o relacionamento entre elementos em um documento,
como por exemplo, o aninhamento dos elementos. A DTD indica ao software como lidar com
o documento XML, funcionando como a definição dos tipos dos tags criados.
EXEMPLO EM XML
O exemplo a seguir apresenta as classes Objeto_Imagem, Conteudo_Semantico e
Componente, na descrição de duas imagens (Paisagem Natural e Foto de Ballet), do esquema
desenvolvido nesse trabalho; segundo a sintaxe da XML.
<XML>
<?XML VERSION = “1.0” ?>
<!DOCTYPE METAIMAGEM SYSTEM “metaimagem.dtd”>
<OBJETO_IMAGEM>
<TITULO> Paisagem Natural </TITULO>
<FORMATO> JPG </FORMATO>
<ESQUEMA_COMPRESSAO> LZW </ ESQUEMA_COMPRESSAO>
<DIMENSAO_ARQUIVO> 10 KB </ DIMENSAO_ARQUIVO>
<DIMENSAO_IMAGEM_DIGITAL> 10x15 cm </ DIMENSAO_IMAGEM_DIGITAL>
<RESOLUCAO> 640x480 </RESOLUCAO>
<LOCALIZACAO_FISICA>http://200.20.120.181/metaimagem/pan.jpg</LOCALIZACAO_FISICA>
<DISPOSITIVO_ARMAZENAMENTO> disco rígido </DISPOSITIVO_ARMAZENAMENTO>
<LUGAR_REPOSITORIO> Rio de Janeiro </LUGAR_REPOSITORIO>
<DIREITOS_AUTORAIS> </DIREITOS_AUTORAIS>
<PROPRIETARIO> Pedro </PROPRIETARIO>
<DIGITALIZADOR> Pedro <DIGITALIZADOR>
<TIPO_DIGITALIZADOR> Scanner HP </TIPO_DIGITALIZADOR>
<DATA_CRIACAO> 05/01/1999 </DATA_CRIACAO>
<SOFTWARE_USADO_CRIACAO> </SOFTWARE_USADO_CRIACAO>
129
<ESPACO_COR> RGB </ESPACO_COR>
<CROMIA> colorida </CROMIA>
<CONTEUDO_SEMANTICO>
<NOME> Espaco </NOME>
<DESCRICAO_GENERICA> Praia de Fortaleza </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Praia das Dunas </DESCRICAO_ESPECIFICA>
<SOBRE> Paraíso </SOBRE>
<NOME> Ação </NOME>
<DESCRICAO_GENERICA> Por do sol </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Por do sol na praia </DESCRICAO_ESPECIFICA>
<SOBRE> Felicidade </SOBRE>
<COMPONENTE>
<NOME> Componente </NOME>
<DESCRICAO_GENERICA> Árvore </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Coqueiro </DESCRICAO_ESPECIFICA>
<SOBRE> </SOBRE>
<NOME> Componente </NOME>
<DESCRICAO_GENERICA> Sol </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Sol na praia </DESCRICAO_ESPECIFICA>
<SOBRE> </SOBRE>
<NOME> Componente </NOME>
<DESCRICAO_GENERICA> Mar </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Praia das Dunas </DESCRICAO_ESPECIFICA>
<SOBRE> </SOBRE>
</COMPONENTE>
</CONTEUDO_SEMANTICO>
</OBJETO_IMAGEM>
<OBJETO_IMAGEM>
<TITULO> Foto de Ballet </TITULO>
<FORMATO> JPG </FORMATO>
<ESQUEMA_COMPRESSAO > LZW </ ESQUEMA_COMPRESSAO >
<DIMENSAO_ARQUIVO > 9 KB </ DIMENSAO_ARQUIVO >
<DIMENSAO_IMAGEM_DIGITAL > 10x15 cm </DIMENSAO_IMAGEM_DIGITAL >
<RESOLUCAO> 640x480 </RESOLUCAO>
<LOCALIZACAO_FISICA> http://200.20.120.181/metaimagem/bal.jpg</LOCALIZACAO_FISICA>
<DISPOSITIVO_ARMAZENAMENTO> disco rígido </DISPOSITIVO_ARMAZENAMENTO>
<LUGAR_REPOSITORIO> Rio de Janeiro </LUGAR_REPOSITORIO>
<DIREITOS_AUTORAIS> </DIREITOS_AUTORAIS>
<PROPRIETARIO> Pedro </PROPRIETARIO>
<DIGITALIZADOR> Pedro <DIGITALIZADOR>
<TIPO_DIGITALIZADOR> Scanner HP </TIPO_DIGITALIZADOR>
<DATA_CRIACAO> 06/01/1999 </DATA_CRIACAO>
<SOFTWARE_USADO_CRIACAO> </SOFTWARE_USADO_CRIACAO>
<ESPACO_COR> RGB </ESPACO_COR>
<CROMIA> preto e branco </CROMIA>
<CONTEUDO_SEMANTICO>
<NOME> Espaco </NOME>
<DESCRICAO_GENERICA> Teatro Municipal </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Rio de Janeiro </DESCRICAO_ESPECIFICA>
<SOBRE> Espetáculo </SOBRE>
<NOME> Ação </NOME>
<DESCRICAO_GENERICA> Dança </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Dança clássica </DESCRICAO_ESPECIFICA>
<SOBRE> Romantismo </SOBRE>
<COMPONENTE>
<NOME> Componente </NOME>
<DESCRICAO_GENERICA> Bailarina </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Paloma Herrera </DESCRICAO_ESPECIFICA>
<SOBRE> </SOBRE>
<NOME> Componente </NOME>
<DESCRICAO_GENERICA> Bailarino </DESCRICAO_GENERICA>
<DESCRICAO_ESPECIFICA> Angel Corella </DESCRICAO_ESPECIFICA>
<SOBRE> </SOBRE>
</COMPONENTE>
</CONTEUDO_SEMANTICO>
</OBJETO IMAGEM>
<XML>
130
metaimagem.dtd
<!DOCTYPE METAIMAGEM>
<!ELEMENT OBJETO_IMAGEM (TITULO, FONTE, ESQUEMA_COMPRESSAO, DIMENSAO_ARQUIVO,
DIMENSAO_IMAGEM_DIGITAL, RESOLUCAO, LOCALIZACAO_FISICA, DISPOSITIVO_ARMAZENAMENTO,
LUGAR_REPOSITORIO, DIREITOS_AUTORAIS, PROPRIETARIO, DIGITALIZADOR, TIPO_DIGITALIZADOR,
DATA_CRIACAO, SOFTWARE_USADO_CRIACAO, ESPACO_COR, CROMIA, CONTEUDO_SEMANTICO +)>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT FONTE (#PCDATA)>
<!ELEMENT ESQUEMA_COMPRESSAO (#PCDATA)>
<!ELEMENT DIMENSAO_ARQUIVO (#PCDATA)>
<!ELEMENT DIMENSAO_IMAGEM_DIGITAL (#PCDATA)>
<!ELEMENT RESOLUCAO (#PCDATA)>
<!ELEMENT LOCALIZACAO_FISICA (#PCDATA)>
<!ELEMENT DISPOSITIVO_ARMAZENAMENTO (#PCDATA)>
<!ELEMENT LUGAR_REPOSITORIO (#PCDATA)>
<!ELEMENT DIREITOS_AUTORAIS (#PCDATA)>
<!ELEMENT PROPRIETARIO (#PCDATA)>
<!ELEMENT DIGITALIZADOR (#PCDATA)>
<!ELEMENT TIPO_DIGITALIZADOR (#PCDATA)>
<!ELEMENT DATA_CRIACAO (#PCDATA)>
<!ELEMENT SOFTWARE_USADO_CRIACAO (#PCDATA)>
<!ELEMENT ESPACO_COR (#PCDATA)>
<!ELEMENT CROMIA (#PCDATA)>
<!ATTLIST CONTEUDO_SEMANTICO (NOME, DESCRICAO_GENERICA, DESCRICAO_ESPECIFICA, SOBRE,
COMPONENTE +)>
<!ELEMENT NOME (#PCDATA)>
<!ELEMENT DESCRICAO_GENERICA (#PCDATA)>
<!ELEMENT DESCRICAO_ESPECIFICA (#PCDATA)>
<!ELEMENT SOBRE (#PCDATA)>
<!ATTLIST COMPONENTE (NOME, DESCRICAO_GENERICA, DESCRICAO_ESPECIFICA, SOBRE)>
Vale a pena observar alguns pontos com relação a sintaxe de definição de DTD em XML:
•
O caracter “+” indica que o elemento que o precede ocorre uma ou mais vezes;
•
A identificação #PCDATA identifica dados do tipo caracter;
•
ATTLIST define um elemento do tipo lista.
CONSIDERAÇÕES FINAIS DESSE APÊNDICE
Documentos XML são formados por dados e marcações (markup), que podem ser
consideradas como metadados, representados nesta linguagem por tags.
Para que a XML seja utilizada no âmbito do esquema desenvolvido nesse trabalho,
faz-se necessário a prévia identificação e definição dos tags a serem criados. O esquema
proposto no Capítulo 4 foi portanto um pré-requisito básico para a utilização dessa linguagem
na descrição de imagens, pois na verdade todas as classes e propriedades identificadas no
131
esquema constituem os tags para a criação desse padrão em XML. A descrição desse esquema
em XML possibilita portanto a sua disponibilização na Internet como um padrão para a
documentação de imagens. No entanto, para que as imagens descritas em XML possam ser
armazenadas, é necessária a sua veiculação a um SGBD e ainda a necessidade de uma
aplicação que entenda a DTD definida para obtenção das informações ali definidas. Sabe-se
que os SGBDs atualmente incluem componentes para ligação com Internet, mas segundo
(LIGHT, 1999) a XML não se preocupou ainda em tratar a conexão com banco de dados, essa
tarefa está sendo tratada pela HTML.
132
REFERÊNCIAS BIBLIOGRÁFICAS
AMORE – http://titian/neclab.com/amore/index.html, 1998.
BESSER, Howard & TRANT, Jennifer - “Introduction to Imaging: Issues in Constructing an
Image Database” - http://www.ahip.getty.edu/intro_imaging/Tb1.html, 1995.
BOUTELL, T., et alii. - “PNG (Portable Network Graphics) Specification Version 1.0” ftp://ds.internic.net/rfc/rfc2083.txt, março 1997.
BROSS, V. - “Webliography: Meta Data, Meta Tags, and the Dublin Core” http://www.web-action.com/webography.html, abril 1997.
BURNARD,
Lou
-
“The
Text
Encoding
Initiative
Guidelines”
-
ftp:info.ox.ac.uk/publota/TEI/doc/teij31.sgml, 1994.
CAETANO, Artur et alii. – “A Description Model for Multimedia Content” – Instituto
Superior Técnico, Universidade de Lisboa, 1998.
CAI – http://www.cai.com, 1998.
CHANG, S. et alii. - “Visual Information Retrieval From Large Distributed Online
Repositories” - Communications of The ACM, Vol. 40, No. 12, dezembro 1997.
CHANG, Wendy & ZHANG, Aidong – “Metadata for Distributed Visual Database Access” –
Second
IEEE
Metadata
Conference,
Silver
Spring,
Maryland,
http://computer.org/conferen/proceed/meta97/papers/azhang/ azhang.html, setembro
1997.
CLARK,
Scott
-
“The
WebDeveloper.com
Guide
to
XML”
–
http://www.webdeveloper.com/categories/html/html_xml_1.html, 1998.
CORDEIRO, Rosa Inês de Novais – Descrição e Representação de Fotografias de Cenas e
Fotografias de Filmes: Um Esquema de Indexação – Tese de Mestrado, Instituto
Brasileiro de Informação em Ciência e Tecnologia, Universidade Federal do Rio de
Janeiro, 1990.
133
DEMPSEY, Lorcan & WEIBEL, Stuart L. - “The Warwick Metadata Workshop: A
Framework
for
the
Deployment
of
Resource
Description”
-
http://www.ukoln.ac.uk/~lisld/, D-Lib Magazine, 1996.
DEUTSCH, P. et alii. - “Publishing Information on the Internet with Anonymous FTP” http://info.Webcrawler.com/mak/projects/iafa/iafa.txt, 1994.
EXCALIBUR – http://www.excalib.com/demos/demos.html.
FGDC – Content Standard for Digital Geospacial Metadata, Federal Geographic Data
Committee–http://geochange.er.usgs.gov/pub/tools/metadata/standard/metadata.html.
FLICKNER, M. et alii. - “Query by Image and Video Content: The QBIC System” - IEEE
Computer Vol. 28 No 9, setembro 1995.
FOLEY, James et alii – “Computer Graphics: Principles and Practice”, Addison-Wesley
Publishing Company, 1990.
FUNARTE – Manual Para Catalogação de Documentos Fotográficos, 2.ed., Ministério da
Cultura, FUNARTE, 1998.
FURLAN, José Davi – Modelagem de Objetos Através da UML: the Unified Modeling
Language, Makron Books, São Paulo, 1998.
GEMINI – http://www.gemini.art.br, 1998.
GROSKY, W. - “Managing Multimedia Information in Database Systems” - Communications
of The ACM, Vol. 40, No. 12, dezembro 1997.
GROSKY, W. et alii. - “Research Directions in Image Database Management” - IEEE 8th
International Conference on Data Engineering, 1992.
GUHA,
R.
&
BRAY,
T.
-
“Meta
Content
Framework
Using
XML”
-
http://www.w3.org/TR/NOTE-MCF-XML-970606, 1997.
GUPTA,
A.
–
“Visual
Information
Retrieval:
http://www.virage.com/wpaper, 1997.
134
A
Virage
Perspective”
–
GUPTA, A. et alii - “Semantic Queries with Pictures: The VIMSYS Model” - Proceedings of
the 17th International Conference on Very Large Data Bases, Barcelona, Espanha,
setembro 1991.
HEERY, Rachel – “Review of Metadata Formats” – Program vol 30, Issue no 4, 1996.
HEERY,
Rachel
et
alii.
–
4th
“The
Dublin
Core
Workshop”-
http://www.ukoln.ac.uk/metadata/resources/dc4-notes.html, março 1997.
HERMES,
Th.
et
alii.
-
"Image
Retrieval
for
Information
Systems”
-
http://www.informatik.uni-bremen.de/grp/ag-ki/papers/pub-papers/thSpiepaper95.ps,
Proceedings of IS&T/SPIE’s Symposium on Electronic Imaging: Science &
Technology, San Jose, CA, USA, fevereiro 1995.
JAIN, Anil K. & DORAI, Chitra – “Practicing Vision: Integration, Evaluation and
Aplications” – Pattern Recognition, vol. 30, n.2, pags. 183-196, 1997.
JAIN, R. & GUPTA, A. - "Computer Vision and Visual Information Retrieval” http://vision.ucsd.edu/papers/rosenfeld/rosen3.html, 1996.
KERHERVÉ, Brigitte - “Models for Metadata or Metamodels for Data?” - Second IEEE
Metadata
Conference,
Silver
Spring,
Maryland,
http://computer.org/conferen/proceed/meta97/papers/bkerherve/bkerherve.html,
setembro 1997.
KHARE, Rohit & RIFKIN, Adam – “X Marks the Spot: Using XML to Automate the Web”,
IEEE
Internet
Computing,
vol.
1,
n.
4,
pg.
78-87,
july/august
1997.
http://www.cs.caltech.edu/~adam/papers/xml/x-marks-the-spot.html.
KHOSHAFIAN, S. & BAKER, A. Brad - “Multimedia and Imaging Databases” - Morgan
Kaufmann Publishers, 1996.
KHOSHAFIAN, Setrag et alii. – “The Jasmine Object Database: Multimedia Applications for
the Web”, Morgan Kaufmann Publishers, 1998.
135
LAGOZE,
Carl
&
DANIEL,
Ron
-
“Extending
the
Warwick
Framework”,
D-Lib
Magazine,
http://www.dlib.org/dlib/november97/daniel/11daniel.html,
novembro 1997.
LASSILA, Ora & SWICK, Ralph R. - “Resource Description Framework (RDF) Model and
Syntax” - http://www.w3.org/TR/WD-rdf-syntax/index.html, 1997.
LIGHT, Richard – Iniciando em XML, Makron Books, 1999.
LORENZ, O. Christoph - "Retrieval by Graphic Content” – http://www-ir.inf.ethz.ch/PublicWeb-Pages/lorenz/it/node6.html, 1997.
MEYER, Wladimir - Metodologias para Classificação de Texturas e Consulta a Bases de
Imagens - Tese de Mestrado, Instituto Militar de Engenharia (IME), 1997.
MILLER,
Eric
J.
–
“CNI/OCLC
Metadata
Workshop”
–
http://www.oclc.org:5046/conferences/imagemeta/, setembro 1996.
MNG - ftp://swrinde.nde.swri.edu/pub/mng/documents/MNG_status_19970122.html, 1997.
MOURA, Ana Maria C. , CAMPOS, Maria Luíza M., BARRETO, Cassia M. - “Metadata
Support for Describing and Retrieving Internet Resources”- Submetido ao WWW
Journal, 1998.
MURRAY, James D. - "SPIFF: Still Picture Interchange File Format” - Dr. Dobb’s Journal,
julho 1996.
MURRAY, James D. & VANRYPER, W. - "Encyclopedia of Graphics File Formats” - 2a
edição, O’Reilly & Assoc., 1996.
ORIA, Vincent et alii. – “Modeling Images for Content-Based Queries: The DISIMA
approach” – Second International Conference on Visual Information Systems, San
Diego,
CA,
pg.
339-346,
http://web.cs.ualberta.ca/~database/research/multimedia/publications.html, dezembro
1997.
136
PANOFSKY, E. – Significado nas Artes Visuais – 2.ed. São Paulo: Perspectiva, 1979.
(Debates, 99).
PNG
-
“Things
that
go
PNG
on
the
Web”
-
http://www.cs.man.ac.uk/aig/staff/toby/writing/png.htm, Personal Computer World,
1997.
PRABHAKARAN, B. – “Multimedia Database Management Systems” , Kluwer Academic
Publishers, 1997.
QBIC - “QBIC - IBM’s Query By Image Content” - http://wwwqbic.almaden.ibm.com, 1997.
RABITTI, F. & SAVINO, P. - "An Information Retrieval Approach for Image Databases” Proceedings of the 18th VLDB Conference, Vancouver, British Columbia, Canadá
1992.
RICH, Elaine & KNIGHT, Kevin - Inteligência Artificial - 2a edição, Makron Books, São
Paulo, 1993.
ROELOFS, Greg - “PNG´s Not GIF” - http://webreview.com/97/05/09/feature/, 1997a.
ROELOFS, Greg - “Portable Network Graphics” - http://www.wco.com/~png/, 1997.
SAIF - http://epoch.cs.berkeley.edu:8000/sequoia/schema/html/saif/section1.1.html.
SHAH, Kshitij et alii. - “Black Box Approach to Image Feature Manipulation used by Visual
Information Retrieval Engines” - Second IEEE Metadata Conference, Silver Spring,
Maryland,
http://computer.org/conferen/proceed/meta97/papers/kshah/kshah.html,
setembro 1997.
SHATFORD, Sara – “Analyzing the Subject of a Picture: A Theoretical Approach” –
Cataloging & Classification Quarterly, v. 6, n. 3, p. 39-62, 1986.
SHKLAR, Leon et alii. – “InfoHarness: Use of Automatic Generated Metadata for Search and
Retrieval
of
Heterogeneous
Information”
http://www.lsdis.cs.uga.edu/publications/pub_ALL.html, 1994.
137
–
SMIT, Johanna W. – A Análise da Imagem: Um Primeiro Plano – In: ___. (Coord.). Análise
Documentária: a análise da síntese. Brasília: IBICT, p. 99-111, 1987.
SMIT, Johanna W. – A Representação da Imagem – INFORMARE – Cadernos do Programa
de Pós-Graduação em Ciência da Informação, Rio de Janeiro, v.2, n.2, p.28-36,
jul./dez. 1996.
SPIFF
-
“GFF
Format
Summary:
SPIFF”
-
http://www.ipahome.com/gff/textonly/summary/spiff.htm, 1995.
VIRAGE – http://www.virage.com/market/vir-body.html, 1998.
WEIBEL, Stuart – “A Proposed Convention for Embedding Metadata in HTML” –
http://www.oclc.org:5046/~weibel/html-meta.html, junho 1996.
WEIBEL,
Stuart
et
alii.
–
“OCLC/NCSA
Metadata
Workshop
Report”-
http://www.oclc.org:5046/oclc/research/conferences/metadata/dublin_core_report.ht
ml, março 1995.
XML - “XML: Overview” - http://sunsite.unc.edu/pub/sun-info/standards/xml/pres/9797ja/sld02000.htm.
138

Documentos relacionados