Recuperação de Informação Integrada ao Banco de Dados XML Nativo - XTC

Tamanho: px
Começar a partir da página:

Download "Recuperação de Informação Integrada ao Banco de Dados XML Nativo - XTC"

Transcrição

1 UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO LUIZ HERMES SVOBODA JUNIOR Recuperação de Informação Integrada ao Banco de Dados XML Nativo - XTC Trabalho de Graduação Prof a. Dr a. Renata de Matos Galante Orientadora Msc. Leonardo Ribeiro Co-orientador Databases and Information Systems (AG DBIS) at University of Kaiserslautern Porto Alegre, junho de 2008.

2 UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Reitor: Prof. José Carlos Ferraz Hennemann Vice-reitor: Prof. Pedro Cezar Dutra Fonseca Pró-Reitor de Graduação: Prof. Carlos Alexandre Netto Diretor do Instituto de Informática: Prof. Flávio Rech Wagner Coordenador do CIC: Prof. Raul Fernando Weber Bibliotecária-Chefe: Beatriz Regina Bastos Haro 2

3 3 AGRADECIMENTOS Primeiramente gostaria de agradecer à minha família. Aos meus pais, Luiz Hermes Svoboda e Liane Camargo Svoboda, por estarem sempre ao meu lado, me apoiando em todas as minhas decisões e pela compreensão durante este período de estudos no qual estive ausente em muitos momentos por motivo de provas ou trabalhos do curso. Às minhas irmãs, Carla Svoboda e Aline Svoboda, pelos poucos, porém ótimos momentos no qual tivemos a oportunidade de estarmos todos reunidos. Gostaria de agradecer ao meu amigo Marcus Lucas da Silva por ter sido a pessoa que mais me motivou pela escolha do curso de Ciência da Computação. Gostaria de agradecer ao meu amigo Vinícius Lucas da Silva pelos momentos de descontração. Além de grandes amigos, considero estas duas pessoas como meus irmãos. Gostaria de agradecer à Prof a. Dr a. Mara Abel, minha orientadora durante o período de Iniciação Científica, pelo apoio e estímulo para o meu desenvolvimento no meio acadêmico. Aos amigos do Grupo BDI pela constante troca de conhecimento durante o período no qual tive a oportunidade de desenvolver um trabalho de pesquisa juntamente com eles. Ao MSc. Felipe Victoreti pelo apoio e motivação recebidos tanto durante meu período de bolsista como pela oportunidade de ser um dos colabores da ENDEEPER, empresa da qual ele é um dos sócios. Gostaria de agradecer ao Prof. Dr.-Ing. Dr. h. c. Theo Härder pela oportunidade de realização de parte dos meus estudos na Universidade Técnica de Kaiserslautern na Alemanha. A todos os integrantes do Grupo de Banco de Dados e Sistemas de Informação, grupo no qual desenvolvi atividades de pesquisa durante os estudos na Alemanha. Ao MSc. Leonardo Ribeiro por ser meu co-orientador neste trabalho. Gostaria de agradecer aos colegas Leonardo Dalpiaz, Gustavo Machado, José Irigon, José Rodrigo Azambuja, Lúcio Rech e David Nemer. Tive a oportunidade de conhecê-los durante o período de estudos na Alemanha e espero contar com a amizade destas pessoas por muito tempo. Gostaria de agradecer à minha orientadora, a Prof a. Dr a. Renata de Matos Galante pelo apoio recebido durante o desenvolvimento deste trabalho.

4 4 SUMÁRIO AGRADECIMENTOS... 3 SUMÁRIO... 4 LISTA DE ABREVIATURAS E SIGLAS... 6 LISTA DE FIGURAS... 7 LISTA DE TABELAS... 8 RESUMO... 9 ABSTRACT INTRODUÇÃO XML TRANSACTION MANAGER (XTC) BANCO DE DADOS XML NATIVO PROJETO XTC DeweyID EXTENSIBLE MARKUP LANGUAGE (XML) Estrutura CONSIDERAÇÕES FINAIS RECUPERAÇÃO DE INFORMAÇÃO RECUPERAÇÃO DE INFORMAÇÃO VERSUS RECUPERAÇÃO DE DADOS RECUPERAÇÃO AD HOC E FILTERING MODELOS DE RECUPERAÇÃO DE INFORMAÇÃO Caracterização Formal de um Modelo de IR Modelo Booleano Modelo Vetorial Modelo Probabilístico Considerações sobre os modelos de IR O PROCESSO DE RECUPERAÇÃO DE INFORMAÇÃO AVALIAÇÃO DE MECANISMOS DE IR CONSIDERAÇÕES FINAIS PREPARAÇÃO DO DOCUMENTO INDEXAÇÃO DO DOCUMENTO ANÁLISE DO TEXTO Análise Léxica Eliminação de Stopwords Stemming... 30

5 TÉCNICAS DE INDEXAÇÃO Árvore de Sufixos (Suffix Tree) Arquivo de Assinatura (Signature File) Arquivo Invertido (Inverted File) ESTRUTURAS DE ÍNDICE PARA DOCUMENTOS XML CONSIDERAÇÕES FINAIS RECUPERAÇÃO DE INFORMAÇÃO INTEGRADA AO BANCO DE DADOS XTC MODELO DE RECUPERAÇÃO DE INFORMAÇÃO ÍNDICE Registro Construção do Índice CONSULTA Linguagem de Consulta PROCESSAMENTO DA CONSULTA Estrutura Conteúdo CLASSIFICAÇÃO DOS RESULTADOS (RANKING) AVALIAÇÃO DO MECANISMO DE IR Geração de Índices Recuperação de Informação CONCLUSÃO TRABALHOS FUTUROS REFERÊNCIAS ANEXO 1 IMPLEMENTAÇÃO DO MECANISMO A.1 DIAGRAMAS DE CLASSE... 58

6 6 LISTA DE ABREVIATURAS E SIGLAS IR XML SGML XTC API XDBMS CAS CO ANTLR SAX DOM INEX W3C XISS XICS TF-IDF XDBMS MAP Information Retrieval Extensible Markup Language Standart Generalized Markup Language XML Transaction Coordinator Application Programming Interface XML Database Management System Content and Structure Content Only Another Tool for Language Recognition Simple API for XML Document Object Model Initiative for the Evaluation of XML Retrieval World Wide Web Consortium XML Indexing and Storage System XML Indices for Content and Structural Search Term Frequency Inverse Document Frequency XML Database Management System Mean Average Precision

7 7 LISTA DE FIGURAS Figura 2.1 Arquitetura do XDBMS XTC Figura 2.2 (a) Documento exemplo (b) Representação do documento utilizando XML Figura 3.1 Termos, documentos e a matriz termos x documentos Figura 3.2 Exemplo de mecanismo para cálculo do peso Figura 3.3 Mecanismo de recuperação de informação Figura 4.1 Descrição do processo de indexação Figura 4.2 (a) Árvore de sufixos para o texto de exemplo (b) Array de sufixos para o texto de exemplo Figura 4.3 Texto de exemplo com os blocos e o vetor de bits associado à cada um deles Figura 4.4 Texto exemplo e a lista invertida para o texto Figura 4.5 Representação em árvore de um documento XML Figura 4.6 (a) Índice STB-Tree para o documento de exemplo (b) representação parcial do índice COB-Tree para o documento de exemplo Figura 5.1 Representação em árvore de um documento XML Figura 5.2 Resultado da pesquisa para o termos author no dicionário WordNet Figura 5.3 Tamanhos dos documentos e índices Figura 5.4 Tempo para criação dos índices Figura 5.5 (a) Gráfico revocação versus precisão para a consulta Q 1 (b) Gráfico revocação versus precisão para a consulta Q

8 8 LISTA DE TABELAS Tabela 2.1 Nodos resultantes para o documento tomado como exemplo Tabela 5.1 regras da linguagem de consulta MicroXPath Tabela 5.2 consultas de exemplo e nodos recuperados para cada consulta 40 Tabela 5.3 Exemplo de consulta com o construto estrutura, conjunto de sinônimos retornados e o conjunto de caminhos expandidos Tabela 5.4 Exemplos de mapeamento de nome de tag para identificador Tabela 5.5 Dados dos documentos da coleção Tabela 5.6 Dados sobre os índices gerados para a coleção Tabela 5.7 Informações da coleção de documentos Tabela 5.8 Consultas executadas no documento SigmodRecord.xml Tabela 5.9 Consultas executadas no documento Collection.xml Tabela 5.10 Valores de MAP e revocação para o primeiro conjunto de consultas Tabela 5.11 Resultados para as consultas avaliadas... 51

9 9 RESUMO Durante os ultimo anos, houve um crescimento no número de repositórios de informação armazenada no formato XML. Como o tamanho dos documentos no formato XML tende a ser muito grande, existe um crescente esforço no desenvolvimento de mecanismos de recuperação de informação em documentos XML com o objetivo de suportar recuperação de elementos dos documentos. Esta estratégia de recuperação é muito útil considerando a presença de grandes documentos ou um grande número de documentos. A recuperação de elementos do documento é alcançada explorando a informação estrutural contida nos documentos no formato XML. Nesta situação, surge um problema considerando que existe uma grande quantidade de documentos XML que descrevem um conteúdo similar, porém utilizando diferentes estruturas e diferentes nomes de tag. Neste trabalho é apresentada uma proposta de mecanismo de recuperação de informação integrado ao gerenciador de banco de dados XML nativo XTC. O presente trabalho faz uso da informação estrutural fornecida pelo esquema de rotulação de nodos empregado pelo sistema XTC que identifica univocamente cada um dos elementos do documento. Para resolver o problema considerando as diferentes estruturas e diferentes nomes de tag, o mecanismo de recuperação de informação expande o construto estrutural através da substituição dos nomes de tag por nomes similares através da utilização de uma ontologia. Palavras-Chave: recuperação de informação, XML.

10 10 ABSTRACT For the past several years, there was a continuous growth in XML information repositories. As XML documents tend to be very large, there is an increasing effort in the development of XML retrieval mechanisms aiming at supporting content-oriented XML retrieval. This retrieval approach is very useful when considering large documents or a large number of documents since it retrieves the most important fragments of these documents. The retrieval task is accomplished by exploiting the structural information available in XML documents. This scenario raises the issue that there is a large amount of XML data in which similar contents are described using different tag names and structures. In this project, a proposal of a content-oriented information retrieval mechanism integrated to the XML native data base management system XTC is presented. The proposal makes use of the structural information provided by the node labeling scheme used by the XTC database to uniquely identify each element of the document. To cope with the issue of different tag names and structures, the mechanism expands the structural constraints defined in the query by replacing tag names with similar ones with the help of ontologies. Key-Words: information retrieval, XML.

11 11 1. INTRODUÇÃO Recuperação de informação é a ciência que lida com a busca por informação. O objetivo de um mecanismo de IR não é recuperar apenas informação que casa exatamente com a consulta realizada. Ao contrário da recuperação de dados, IR também tem como objetivo retornar informação sobre o tópico ou assunto consultado. Desta forma, uma ferramenta que se proponha a realizar a tarefa de IR, deve recuperar informação que de alguma forma possa ser útil para satisfazer a necessidade de informação do usuário, mesmo que o conjunto de documentos retornados contenha alguns erros. Por vários anos, as pessoas têm percebido a importância de armazenar e de buscar informação. Com o advento dos computadores, tornou-se possível o armazenamento de quantidades de dados nunca antes vistas. Encontrar e recuperar informações úteis de tais quantidades de dados tornou-se uma tarefa cada vez mais difícil. Por esta razão, muitas universidades, bibliotecas e até mesmo grandes companhias utilizam mecanismos de IR para prover acesso a livros, jornais e qualquer outro tipo de documento. Ferramentas de busca na web como Google 1 e Yahoo 2 também fazem uso de sistemas de IR e estas são, sem dúvida, as aplicações mais visíveis deste tipo de mecanismo. Neste contexto, XML tem tido um papel muito importante. XML é um subconjunto de SGML e pode ser vista como uma linguagem de propósito geral para descrição de dados semi-estruturados. Esta linguagem foi desenvolvida para ser de fácil entendimento tanto por pessoas como por máquinas. XML é chamada de extensível por permitir ao usuário definir as suas próprias tags e associar informação estrutural, ou informação semântica, aos dados que estão contidos no arquivo. Originalmente criada para facilitar o compartilhamento de dados semi-estruturados entre diferentes plataformas, particularmente pela Internet, XML tem sido freqüentemente utilizada para a representação de informação. Pode-se dizer que, atualmente, praticamente em todos os lugares onde há informação, XML também está presente. Como resultado disso, XML vem crescendo como um grande tópico e tem inspirado o desenvolvimento de muitas tecnologias e pesquisas nesta área. O contínuo crescimento nos repositórios de dados que utilizam XML acaba casando com o crescente esforço para desenvolvimento de ferramentas para a realização de consultas sobre estes dados. Algumas destas ferramentas oferecem apenas o recurso de busca sobre os documentos enquanto outras, mais sofisticadas, provêem uma forma de armazenamento mais adequada para

12 12 este tipo de documento. Como exemplo de mecanismos simples para indexação e consulta a coleções de documentos em geral, citamos o projeto Lucene 3 o aplicativo Zebra 4. Em relação aos aplicativos que se propõe a oferecer um meio de armazenamento e consulta mais adequados a arquivos XML, os chamados bancos de dados XML nativos, podemos citar o BaseX 5, o exist 6 e o Sedna 7. Com a grande utilização de XML em bibliotecas digitais, catálogo de produtos, repositórios de dados científicos, etc., tornou-se uma necessidade o desenvolvimento mecanismos mais adequados para realizar pesquisas em documentos XML. Neste sentido, recuperação de informação em arquivos XML é uma nova área na aplicação de métodos de IR. Embora pouca pesquisa tenha sido feito no passado a respeito de recuperação de informação em dados semi-estruturados, a crescente disponibilidade de coleções no formato XML oferece uma grande oportunidade de desenvolvimento de métodos de recuperação mais apropriados. Este trabalho está no escopo de um projeto maior chamado XTC Project. XTC é um protótipo de gerenciador de banco de dados XML nativo que tem como objetivo permitir o processamento de documentos XML em um ambiente multiusuário fazendo uso de APIs típicas para XML como DOM, SAX, XPath, provendo um modelo adequado para o armazenamento de dados no formato XML. Neste trabalho será proposto um mecanismo de recuperação de informação integrado ao sistema XTC. Este mecanismo tem como objetivo proporcionar ao usuário uma maneira de recuperar elementos de documentos XML, os quais venham a ser considerados relevantes em relação à consulta submetida, sob o julgamento da ferramenta. Como mencionado anteriormente, houve um crescimento muito grande na utilização de XML nos repositórios de informação. Este crescimento não está apenas relacionado ao número de arquivos, mas também ao tamanho destes arquivos. Este modelo de recuperação de elementos do documento visa facilitar a tarefa do usuário de percorrer os resultados. Desta forma, o usuário recebe como resultado apenas os elementos relevantes evitando assim a necessidade de percorrer o documento completo à procura do(s) elemento(s) que contém a informação consultada. Para o desenvolvimento deste mecanismo, serão feitas análises acerca dos modelos de IR clássicos e sobre todo o processo que envolve a tarefa de recuperação de informação neste tipo de documento. Desta forma, é proposta a utilização de técnicas de indexação de arquivos XML a fim de acelerar o processo de busca, evitando a necessidade do percorrimento do arquivo a cada consulta submetida. Finalmente, é apresentado o modelo de ordenamento dos resultados recuperados de acordo com medidas préestabelecidas no mecanismo

13 Este trabalho é organizado da seguinte maneira. O capítulo 2 faz uma rápida apresentação sobre o projeto XTC, projeto no qual está trabalho está inserido, e sobre os conceitos de banco de dados XML nativo. Ainda neste capítulo, são introduzidos alguns conceitos relacionados ao formato XML. No capítulo 3 são apresentados os principais conceitos relacionados a IR e os seus modelos clássicos. Da mesma forma, é feita uma discussão sobre o processo de recuperação de informação no qual o autor apresenta, através de um diagrama, a sua visão do processo. Por fim, são discutidas as métricas de avaliação deste tipo de mecanismo. O capítulo 4 introduz os conceitos do processo de preparação dos documentos. Neste sentido, como no capítulo anterior, o autor apresenta um diagrama com a visão do processo de preparação do documento e realiza uma análise das estruturas de dados utilizadas para a indexação de arquivos. Por fim, no capítulo 5 é apresentado o mecanismo de recuperação de informação desenvolvido de maneira integrada ao gerenciador de banco de dados XML nativo XTC. Este mecanismo tem como objetivo prover uma ferramenta básica para IR e sobre a qual possam ser realizados testes e otimizações de técnicas relacionadas a esta área de pesquisa. Ao final do capítulo são apresentados resultados experimentais com o objetivo de comprovar o funcionamento da abordagem proposta. 13

14 14 2. XML TRANSACTION MANAGER (XTC) Neste capítulo será discutido o conceito de banco de dados XML nativo, finalizando esta discussão com uma breve apresentação do projeto XTC. O objetivo consiste em estabelecer as premissas no qual o trabalho proposto está inserido. Também serão apresentados conceitos importantes sobre a tecnologia XML, suas aplicações e as vantagens na sua utilização Banco de Dados XML Nativo Com a adoção da linguagem XML como padrão para compartilhamento de dados entre diferentes sistemas, houve um rápido e maciço crescimento no seu uso. Formas mais adequadas para armazenar os arquivos disponíveis neste formato têm sido propostas. Grande parte delas propõe uma decomposição do documento, especificado através da linguagem XML, e o posterior armazenamento do resultado deste processo de decomposição em um banco de dados relacional. Porém, existem ainda desafios na utilização desta abordagem de armazenamento. Por exemplo, controlar a ordem dos elementos do documento de maneira prática e eficiente e, outra tarefa importante, fazer a tradução das consultas formuladas através de linguagens de consulta para documentos XML em consultas na linguagem SQL. Tendo em vista estes e outros fatores que desfavorecem o armazenamento deste tipo de documento na forma mencionada, surgiu a necessidade de formas mais apropriadas para a realização desta tarefa e, o que presenciamos hoje, é o surgimento de gerenciadores de banco de dados que se propõe a armazenar os documentos no seu formato original, ou seja, armazenam diretamente XML. Bancos de dados XML nativos são banco de dados desenvolvidos especialmente para armazenar documentos XML. Como outros bancos de dados, eles têm suporte a características como transações, acesso multiusuário, segurança entre outras. A grande diferença entre este modelo de banco de dados e os demais é que o seu modelo interno é baseado em XML, diferente de, por exemplo, um modelo relacional. Banco de dados XML nativo baseado em texto: é aquele que armazena o documento XML como texto. A maneira mais comum de se armazenar o documento neste formato é através do uso de índices. Através destes índices, um sistema de busca pode facilmente buscar qualquer parte do documento sem precisar realizar o seu percorrimento.

15 15 Banco de dados XML nativo baseado em modelo: é aquele que ao invés de armazenarem o documento em índices, o SGBD cria uma estrutura do documento e este modelo que é armazenado. A maneira como esta estrutura é armazenada varia, por exemplo, alguns armazenam o DOM [4] em um banco de dados relacional Projeto XTC XTC [3] é um banco de dados XML nativo desenvolvido pelo grupo de pesquisa de banco de dados e sistemas de informação da Universidade Técnica de Kaiserslautern. Este projeto é coordenado pelo Prof. Dr.-Ing. Dr. h. c. Theo Härder e pelo estudante de doutorado Dipl. Inf. Christian Mathis. O objetivo deste projeto é explorar e avaliar os aspectos a cerca do armazenamento nativo de documentos XML. Basicamente, o projeto consiste em três protótipos: XTCserver (sistema de gerenciamento de banco de dados XML nativo), XTCclp (um processador de linha de comando baseado em texto) e por fim o XTCcc (centro de controle com uma interface gráfica). Como mencionado anteriormente, o objetivos principal deste projeto é avaliar aspectos de armazenamento de documentos XML como o processamento de consultas XQuery [8], a utilização de diferentes estruturas de índices, a adoção de APIs XML (SAX [5], DOM [4], XPath [6]) e o controle do isolamento de transações durante o acesso aos documentos armazenados. O banco de dados XTC emprega uma arquitetura baseada em modelo e utiliza uma variação de árvore DOM como modelo de armazenamento. Esta variação não provoca nenhuma alteração semântica no documento e é empregada apenas por motivos de otimização. A Figura 2.1 apresenta uma visão geral da arquitetura do gerenciador de banco de dados XTC. Esta arquitetura foi definida com base em um modelo de quatro camadas. A primeira camada é a encarregada pelo gerenciamento dos arquivos físicos nos quais os dados dos documentos XML são armazenados. A segunda camada é responsável pela otimização no acesso aos dados da primeira camada, ou seja, é encarregada do gerenciamento dos buffers de acesso. Nestas duas camadas são empregados mecanismos já desenvolvidos para utilização em bancos de dados relacionais. A terceira camada (Access Services) é encarregada de prover acesso eficiente e realizar o controle de operações concorrentes sobre os documentos XML. Estes dois objetivos são alcançados através da utilização de uma representação interna especializada. Neste sentido, o XTC adota o modelo de armazenamento de árvore tadom. No modelo tadom é introduzido um nodo raiz de atributos. Desta forma, os atributos não ficam conectados diretamente ao nodo elemento. Outra melhoria é a inclusão do nodo string. Da mesma forma que o nodo raiz de atributos, a inclusão do nodo string tem como objetivo desvincular a representação de uma string em relação à representação do nodo elemento ao qual a string esta associada. Através destas modificações, é obtido um maior grau de concorrência tendo em vista que operações são realizadas nos nodos mais abaixo da árvore, isto é, o lock é feito apenas no nodo que esta sendo utilizado e não no elemento ao qual ele esta associado.

16 16 Ainda em relação ao modelo de acesso a nodos da árvore de um documento XML, é necessário destacar a importância de um esquema de rotulação de nodos que identifique cada um dos nodos da árvore, permitindo assim o acesso direto a cada um deles. Neste sentido, o XTC emprega o sistema de rotulação de nodos chamado deweyid (seção 2.2.1). Por fim, a quarta camada (Node Services) é encarregada de fornecer suporte a navegação nos nodos e a avaliação de consultas. Para realização destas tarefas, é utilizado um interpretador de consultas XQuery. Figura 2.1 Arquitetura do XDBMS XTC Mais informações a respeito da arquitetura e do modelo utilizado pelo XDBMS XTC podem ser encontradas em [3] DeweyID Os esquemas de rotulação de nodos para documentos XML possuem um papel fundamental no processo de indexação desses arquivos. Esquemas de rotulação têm como objetivo a identificação de todos os nodos de um documento XML permitindo acesso rápido a eles sem a necessidade de percorrimento do documento. Nesta seção faremos a introdução do esquema de rotulação chamado deweyid [13] tendo em vista que este é o esquema utilizado pelo XTC Fundamentos do esquema de rotulação DeweyID O elemento raiz de um documento é sempre rotulado com o deweyid 1. Os filhos recebem o deweyid do seu pai e adicionam mais uma divisão a qual é incrementada seguindo a ordem dos nodos filhos da esquerda para a direita.

17 17 Existe ainda um conceito de distância que permite inserções de elementos no documento. O parâmetro distância determina o intervalo que será deixado livre para futuras inserções. Por padrão, a distância adotada é dois. Além disso, o primeiro filho acrescenta o valor distância mais um no seu deweyid pois o valor um é reservado para o nodo raiz de atributo. Um elemento que possui pelo menos um atributo, recebe um nodo raiz de atributo com o deweyid estendido por uma divisão com o valor um. O valor de um atributo ou de um nodo que contém texto é armazenado em um nodo texto. O nodo texto recebe o deweyid do pai estendido por uma divisão por um. Utilizando o arquivo XML exemplo da Figura 2.2 (b) apresentamos uma tabela (Tabela 2.1) com os nodos do esquema deweyid. Tipo do Nodo DeweyID bib element 1 book element 1.3 attribute root id attribute string title element text Information... string author element text Murray Browne string Tabela 2.1 Nodos resultantes para o documento tomado como exemplo O esquema de rotulação deweyid oferece acesso direto a cada um dos nodos do documento XML sem a necessidade do percurso do documento. Este esquema também permite determinarmos o nível do elemento na árvore de representação. Além disso, podemos derivar todo o path do elemento até a raiz sem a necessidade de acessar o documento. Finalmente, este esquema permite verificarmos facilmente os ancestrais de um nodo. Para verificarmos se o nodo n1 e um ancestral de n2, basta verificarmos se o deweyid do nodo n1 é prefixo do deweyid do nodo n Extensible Markup Language (XML) Extensible Markup Language [1,7] é um subtipo de SGML [2]. XML é uma linguagem de marcação de dados, isto é, provê um formato para descrever dados estruturados facilitando declarações mais precisas do conteúdo. O XML, por ser um subconjunto do SGML, é definido pelo órgão W3C 8, fato que assegura a uniformidade dos dados estruturados através desta linguagem, independente de aplicações e/ou fornecedores. Algumas características que foram consideradas durante o processo de desenvolvimento desta linguagem foram: - Um simples documento de texto; 8

18 18 - Separação entre conteúdo e estrutura; - Possibilidade de criação de tags sem limitação; - Foco na estrutura dos dados e não no conteúdo. Todos estes fatores tornaram XML a linguagem padrão para compartilhamento de dados, seja na Web, seja entre bases de dados Estrutura A maioria dos documentos (por exemplo, livros ou revistas) pode ser quebrada em componentes (capítulos ou seções). Estes componentes podem também ser divididos em componentes mais específicos, como título, parágrafo, figura e assim por diante. Em XML, estes componentes são chamados de elementos. Cada elemento representa um componente lógico do documento. Elementos podem conter outros elementos e podem conter também palavras ou frases que seriam o texto contido no documento. A Figura 2.1 mostra esta visão lógica do documento e é conhecida como estrutura em árvore do documento. Bib: 1: Information Retrieval, Murray Browne. Price: Unavailable. <?xml version= 1.0?> <bib> <book id= 1 > <title>information Retrieval</title> <author> Murray Browne</author> <price/> </book> </bib> (b) (a) Figura 2.2 (a) Documento exemplo (b) Representação do documento utilizando XML O elemento que contêm todos os outros é chamado elemento raiz, que também pode ser chamado de elemento documento tendo em vista que toda a estrutura lógica do documento esta contida nele. Os elementos internos a este elemento raiz são chamados subelementos e estes por sua vez, podem possuir elementos internos a eles e assim por diante. Elementos podem ter ainda informações extras associadas a ele chamadas atributos. Atributos descrevem propriedades daquele elemento. Apesar de alguns elementos não servirem perfeitamente neste modelo em árvore, a grande maioria pode ser representada através de um documento XML. Aplicações a serem destacadas em relação à tecnologia XML: Buscas mais eficientes: é possível utilizar a informação estrutural de um arquivo XML na especificação de uma consulta sobre este arquivo. Por exemplo, uma busca por um determinado autor poderia levar a resultados onde apenas o nome especificado consta, enquanto que através do XML seria possível especificar a estrutura com a qual o nome deve estar relacionado.

19 19 Integração de dados: o processo de integração de dados pode ser facilmente realizado à medida que os dados a serem integrados sigam a mesma especificação. Por exemplo, a realização de uma consulta em diferentes bases de dados tornase possível através da conversão dos dados armazenados em cada uma das bases para o formato XML e posteriormente, via software, seria realizada a integração destes dados. Atualização granular de documentos: os dados contidos em um documento podem ser alterados de maneira granular, ou seja, sem a necessidade de que uma alteração cause a busca pelo documento inteiro. Da mesma forma, novos dados podem ser inseridos sem a necessidade de reconstrução do documento inteiro. Múltiplas formas de visualização: uma vez que o XML define apenas os dados e a sua estrutura, a interpretação visual dos dados contidos no documento pode ser realizada de diversas maneiras de acordo com a aplicação Considerações Finais Neste capítulo foi apresentado o projeto XTC, projeto no qual este trabalho esta inserido. Da mesma forma, foram discutidas características relevantes em relação ao gerenciador de banco de dados XTC no contexto do desenvolvimento e integração de um mecanismo de IR para este sistema. Também foi realizada uma introdução à tecnologia XML e sua aplicabilidade. Pontos importantes que motivaram a difusão e adoção desta tecnologia padrão para compartilhamento de dados entre outras utilidades também foram discutidos.

20 20 3. RECUPERAÇÃO DE INFORMAÇÃO Neste capítulo serão apresentados os modelos clássicos de IR, descrevendo um pouco o funcionamento e as características que definem cada um. Ao final do capítulo, sob o ponto de vista do autor, é descrito o processo de IR e é mostrada uma arquitetura para este tipo de sistema. Iniciaremos este capítulo com um breve esclarecimento entre os conceitos de recuperação de informação e recuperação de dados. Recuperação de Informação [14] pode ser definida como a ciência que trabalha com a busca por informação. Recuperação de Informação trata com a representação, o armazenamento, a organização e o acesso à informação. Essas características devem prover ao mecanismo de recuperação acesso fácil à informação na qual o usuário está interessado. Um processo de IR começa com a submissão de uma requisição de informação pelo usuário. Esta consulta não identifica unicamente um objeto da coleção sobre a qual ela foi submetida. Ao contrário, vários objetos da coleção podem casar com a consulta, no entanto, com diferentes graus de relevância. Sistemas tradicionais de IR usualmente adotam uma estrutura de índices os quais armazenam os dados contidos nos objetos da coleção. Modelos clássicos consideram que cada documento é descrito por um conjunto de palavras representativas. Estas palavras representam o conteúdo descrito no documento e são utilizadas na construção de um índice. De uma forma geral, um termo representativo é uma palavra que aparece no texto de um documento e que possui um sentido por si só. Recuperação de informação baseada em termos representativos é relativamente simples, porém assume que o texto e a consulta do usuário possam ser expressos como um conjunto de termos. Claramente percebe-se que este fato é uma simplificação do problema, pois se corre o risco de perder parte da semântica do documento ou da consulta do usuário no momento que é feita esta substituição por um conjunto de termos. Pode-se dizer que a tarefa mais importante de um mecanismo de IR é a capacidade de classificar os documentos como relevantes ou irrelevantes de acordo com a consulta do usuário. Esta decisão é usualmente feita pelo algoritmo de ranking o qual estabelece uma ordem entre os objetos retornados. Os objetos que estão no topo são considerados mais relevantes. Este algoritmo de ranking opera de acordo com um conjunto de premissas que descreve a noção de relevância adotada pelo sistema.

21 Recuperação de Informação versus Recuperação de Dados No contexto de IR, recuperação de dados consiste principalmente na determinação de quais documentos, dentre os presentes em uma coleção, satisfazem a necessidade de informação do usuário. Isto é, em recuperação de dados, basta que o documento contenha os termos que o usuário definiu na consulta. Muito freqüentemente, este fato não é suficiente para que um documento possa ser considerado relevante e que satisfaça a necessidade de informação do usuário. O usuário de um mecanismo de IR está mais interessado na recuperação de informação sobre um determinado assunto do que na recuperação de dados que satisfazem uma determinada consulta. Um mecanismo de recuperação de dados tem como objetivo retornar todos os objetos que satisfazem claramente uma determinada condição, pois trabalha com dados que possuem uma estrutura e uma semântica bem definida. Desta forma, se existir apenas um objeto errado no conjunto de objetos retornados, isto significaria falha total para este sistema. Entretanto, para um mecanismo de IR, os objetos retornados podem ser inexatos, isto é, podem conter pequenos erros. A eficiência de um mecanismo de IR esta na sua capacidade de interpretar o documento analisado. Esta interpretação de um documento envolve extrair informações relativas ao seu conteúdo e à sua estrutura e utilizar esta informação para comparação com a consulta realizada pelo usuário. A dificuldade neste processo não esta em apenas realizar o processo de interpretação do documento, mas também em utilizar esta informação para determinar se um documento é relevante ou não de acordo com a consulta realizada. Sendo assim, um conceito fundamental em IR é a relevância. Desta forma, pode-se entender que o objetivo de um sistema de IR é retornar todos os documentos considerados relevantes mesmo que no conjunto de objetos retornados, existam alguns irrelevantes Recuperação ad hoc e filtering Em mecanismos de IR convencionais, os documentos da coleção permanecem de certa forma inalterados enquanto novas consultas são submetidas ao sistema. Este modo de operação é chamado ad hoc e é a forma mais comum para o usuário prover a sua necessidade de informação. Outro modo de funcionamento é chamado filtering no qual a consulta permanece relativamente inalterada enquanto os documentos vão chegando ao sistema (e são eliminados após análise). Neste último modo, é criado um perfil do usuário no qual estão contidas as preferências do usuário. Este perfil do usuário é, então, comparado aos documentos que chegam ao sistema e são classificados como de interesse para aquele usuário ou são simplesmente descartados. Por exemplo, esta abordagem pode ser adotada para selecionar, de acordo com o perfil do usuário, notícias dentre milhares que são apresentadas todos os dias. Neste trabalho será utilizando o tipo de consulta ad hoc, pois o mecanismo de IR desenvolvido como objetivo deste trabalho funciona

22 22 integrado à uma base de dados na qual o número de inclusões ou remoções de documentos é muito baixo Modelos de Recuperação de Informação Os primeiros sistemas de IR eram sistemas booleanos os quais permitiam aos seus usuários especificar suas consultas através de uma combinação de operadores booleanos AND, OR e NOT. Embora este tipo de mecanismo retorne o resultado em uma ordem, ele não considera a noção de relevância e, portanto, não realiza uma classificação dos objetos retornados de acordo com a sua relevância em relação à consulta. A maioria dos mecanismos de IR atuais aplica algum tipo de ranking sobre os seus resultados, isto é, o sistema classifica os objetos retornados de acordo com a sua relevância considerando a consulta realizada pelo usuário. Esta tarefa é realizada através da atribuição de um score para cada um dos objetos e de acordo com este score é realizada a classificação. Esta seção apresenta os três modelos clássicos de IR chamados Booleano, Vetorial e Probabilístico. O modelo vetorial é apresentado em maiores detalhes por ter sido escolhido para uso neste trabalho Caracterização Formal de um Modelo de IR Definição: Um modelo de IR é uma quádrupla [D, Q, F, R(q i, d j )] onde: (1) D é o conjunto composto pelas representações dos objetos da coleção; (2) Q é o conjunto composto pela representação da consulta do usuário; (3) F é o framework para modelar as representações dos documentos, da consulta e das duas relações; (4) R(q i, d j ) é uma função de ranking que associa um score a uma consulta q i є Q e a um documento d j є D. Para a construção de um modelo, a primeira tarefa é determinar como será feita a representação dos documentos da coleção. A tarefa seguinte é definir um framework no qual estas representações possam ser modeladas. Neste framework também devem estar incluída a capacidade de utilização de uma função de ranking Modelo Booleano O modelo Booleano é o modelo mais simples. Este modelo é baseado na teoria dos conjuntos. As consultas submetidas para esse modelo são expressões Booleanas as quais possuem uma semântica bem definida. Devido à simplicidade inerente deste modelo, ele recebeu grande atenção nos últimos anos. O modelo Booleano sofre de algumas desvantagens. A sua estratégia de recuperação é baseada em um sistema binário, ou seja, ou um documento é considerado relevante ou é considerado não relevante. Desta forma, o modelo Booleano acaba parecendo mais um com um sistema de recuperação de dados. Outra desvantagem deste modelo é o fato de que suas consultas são

23 23 especificadas através de expressões Booleanas. Apesar de uma expressão Booleana ter uma semântica bem definida, o processo de tradução da necessidade de informação do usuário em uma expressão Booleana pode ser uma tarefa relativamente complicada e acaba na maioria dos casos não correspondendo a real necessidade do usuário Modelo Vetorial Neste modelo são utilizados pesos para os termos presentes no documento e estes pesos são utilizados para computar o grau de similaridade entre os documentos e a consulta submetida. Uma coleção de documentos contendo n documentos os quais são indexados por m termos pode ser representado como uma matriz m x n. Utilizando o modelo vetorial, pode-se interpretar as colunas da matriz como sendo os vetores dos documentos enquanto as linhas são consideradas os vetores dos termos. Na Figura 3.1 é apresentado um exemplo de como é feita esta representação através da matriz de termos x documento. Por motivos de simplificação, foram utilizados títulos de artigos como exemplo de documentos. Termos T1: document T2: improve T3: information T4: proximity T5: modern T6: retrieval T7: search T8: xml Documentos D1: Searching XML Documents D2: Proximity Search of XML D3: Improving XML Retrieval D4: Modern Information Retrieval Matriz termos x documentos w t w t w t3 A = 0 w t w t5 0 0 w t6 w t6 w t7 w t7 0 0 w t8 w t8 w t8 0 Figura 3.1 Termos, documentos e a matriz termos x documentos Um formato genérico para representação do cálculo dos pesos pode ser visto como a ij = l ij. g j, onde l ij seria o peso local (considerando apenas o documento) associado ao documento e g i o peso global (considerando a coleção de documentos). Este formato é chamado de tf-idf (do inglês term frequency inverse document frequency) no qual o tf representa o cálculo do peso local enquanto o idf representa o cálculo do peso global para um determinado termo. A maneira mais utilizada para o cálculo destes dois pesos é mostrada na Figura 3.2. Desta forma, obtém-se que o cálculo do peso de cada termo é alcançado através da multiplicação dos fatores, e. As consultas do usuário também são representadas como um vetor. Considere, por exemplo, que a consulta search XML seja submetida ao sistema. O vetor referente à consulta é o seguinte: q = ( w t7 w t ) T. O processamento de uma consulta pode ser visto como uma procura no espaço

24 24 de coluna da matriz A. Uma das formas mais simples e mais utilizadas para realizar este processo é utilizando a medida do cosseno do ângulo entre o vetor da consulta e os vetores dos documentos. Considerando a j como o j- ésimo vetor de documento, ou seja, a j-ésima coluna da matriz, então, o cosseno entre o vetor de consulta e os vetores de documentos pode ser calculado através da seguinte equação: cos =.. Após a realização do cálculo para cada um dos documentos da coleção, aqueles documentos que tiveram como resultado um valor acima de um limiar estabelecido no mecanismo de busca, são considerados relevantes de acordo com a consulta submetida., =,, Onde n é o número de ocorrências do termo t i no documento d j e o denominador é o número de ocorrências de todos os termos no documento d j. = log { : } Onde D é o número total de documentos e o denominador é o número de documentos nos quais o termo t i está presente. Figura 3.2 Exemplo de mecanismo para cálculo do peso As principais vantagens do modelo vetorial são o uso de pesos para cada termo indexado e a sua capacidade de realizar um match parcial possibilitando uma maior flexibilidade no momento da busca pelos termos presentes na consulta. Neste sentido, outro ponto de destaque deste modelo é a capacidade de ranquear os resultados de acordo com o valor calculado para a distância entre os vetores de documento e o vetor de consulta. Além de todas estas vantagens, o modelo vetorial ainda é um modelo simples o que faz dele um dos modelos mais populares em IR. Uma grande vantagem do modelo vetorial em relação ao modelo Booleano é a capacidade de atribuir peso aos termos. A atribuição de peso aos termos é uma abordagem muito utilizada e tem como principal objetivo melhorar o desempenho do mecanismo de IR. Desempenho, neste caso, se refere às medidas de revocação e precisão (seção 3.5) Modelo Probabilístico O modelo probabilístico, também conhecido como binary independence retrieval (BIR), tem como idéia fundamental a existência de um e apenas um conjunto de documentos que contém toda a informação relevante para uma determinada consulta. Este conjunto é comumente chamado de conjunto ideal. Este modelo assume que o processo de especificação de uma consulta é o processo de especificação das propriedades do conjunto ideal. O problema é que não se sabe exatamente quais são as características que definem este conjunto. Desta forma, a partir da consulta é gerada uma descrição probabilística inicial do conjunto ideal e esta descrição é, então, utilizada para

25 25 retornar o primeiro conjunto de documentos. A partir deste ponto, um processo de interação com o usuário é iniciado com o objetivo de melhorar a descrição probabilística que define o conjunto de ideal. Este processo de refinamento da descrição pode ser visto da seguinte forma: o usuário analisa o resultado retornado e classifica quais documentos são relevantes. O mecanismo de IR usa esta informação para refinar a descrição e gerar um novo conjunto de resultados. Através da repetição deste processo, espera-se chegar à descrição probabilística que define o conjunto ideal. O modelo probabilístico supõe que para uma dada consulta q e um documento d, é estimada a probabilidade de o usuário classificar o documento como sendo relevante. Esta probabilidade depende apenas da representação da consulta e do documento. O modelo ainda considera a existência de um conjunto ideal o que significa que os documentos presentes nesse conjunto são considerados relevantes, enquanto os que não fazem parte dele são considerados não relevantes. Esta suposição causa alguns problemas devido ao fato de não explicitar como o cálculo da probabilidade deve ser feito. Desta forma, uma maneira sugerida para definir este modelo seria: uma consulta q é um subconjunto dos termos indexados. O conjunto R é o conjunto de documentos relevantes enquanto que S é o conjunto de documentos não relevantes. Assumindo que P(R d j ) seja a probabilidade do documento d j ser relevante e P(S d j ) a probabilidade do mesmo documento não ser relevante, a medida de similaridade entre o documento d j e a consulta q pode ser definida como a razão. A vantagem do modelo probabilístico é a capacidade de classificar os resultados de acordo com a probabilidade de serem relevantes. Porém, existem algumas desvantagens, como, por exemplo, o fato deste modelo não considerar a freqüência com que os termos aparecem no documento e também a necessidade em definir a separação inicial dos documentos em relevantes e não relevantes Considerações sobre os modelos de IR De uma maneira geral, o modelo Booleano é considerado o mais fraco entre estes modelos por não ter a capacidade de lidar com match parcial. Existe ainda uma controvérsia se o modelo probabilístico seria melhor que o modelo vetorial, porém, esta opinião é refutada por diversos pesquisadores e pela comunidade Web, o que faz com que o modelo vetorial ainda seja o mais utilizado O Processo de Recuperação de Informação Nesta seção será apresentada a visão do autor sobre o processo de recuperação de informação e ao final da seção, o autor sugere uma arquitetura de mecanismo para a tarefa de IR. Esta arquitetura proposta tem como objetivo explicitar os componentes e os processos relacionados aos mecanismos de IR. A Figura 3.4 ilustra o processo de IR. Inicialmente, antes mesmo que o processo de procura possa ser iniciado, a tarefa de um mecanismo de IR é gerar uma estrutura de índices. A tarefa de geração dos índices é chamada

26 26 Indexação do Texto. Este processo consiste no percorrimento dos documentos da coleção, criando uma visão lógica destes documentos e finalmente gerando a estrutura de índices nas quais dados dos documentos serão armazenados. A tarefa de determinar quais documentos serão indexados é normalmente atribuída ao encarregado do conjunto de dados. Após a definição dos documentos a serem indexados, o mecanismo de IR está pronto para construir a estrutura de índices sobre a qual o processo de busca será efetuado. Durante o processo de criação dos índices, alguns subprocessos são aplicados sobre o texto. Estes subprocessos serão especificados mais adiante neste trabalho. A partir do momento que temos os documentos indexados, o processo de recuperação pode ser iniciado. Primeiramente o usuário define uma consulta, através da linguagem de consulta provida pelo sistema, e a submete ao mecanismo de IR. A consulta é submetida às mesmas operações realizadas sobre os documentos indexados. A seguir, a consulta é avaliada pelo mecanismo de busca que recupera os documentos relevantes considerando a consulta submetida. Antes que estes objetos serão exibidos ao usuário, eles passam pelo processo de ranking. O processo de ranking será responsável pela classificação dos documentos de acordo com a sua relevância. Após termos os objetos ordenados, eles serão exibidos ao usuário como resultado. Banco de Dados XTC Objetos Ordenados Visão Lógica dos Documentos Coleção de Documentos Tarefa do Usuário Consulta do Usuário Indexação Análise do Texto Processamento da consulta Ranking Índices Conjunto de Termos Consulta Objetos Retornados Busca Figura 3.3 Mecanismo de recuperação de informação

27 Avaliação de Mecanismos de IR A avaliação de um mecanismo de IR é determinada pela opinião do usuário, ou seja, se ele esta satisfeito com o conjunto de resposta, o que significa que ele encontrou a informação que procurava. Para um mecanismo de recuperação de informação, existem duas medidas específicas que devem ser utilizadas para avaliar o seu desempenho. Estas medidas são conhecidas como revocação e precisão [14]. Precisão: é a razão entre o número de objetos relevantes que foram retornados pelo número total de objetos retornados. ã = Revocação é a razão entre o número de objetos relevantes que foram retornados pelo número de objetos relevantes que estão presentes na coleção. çã = Como os mecanismos de IR normalmente retornam os documento em ordem decrescente de similaridade com a consulta, e os usuários tendem a verificar os documentos na ordem de apresentação, é necessário considerar esta ordem na avaliação do mecanismo. Uma das medidas que considera a ordem de apresentação dos documentos é a Mean Average Precision. A MAP é a média das precisões obtidas quando cada documento relevante da coleção é encontrado na lista de documentos recuperados. Além destas medidas de avaliação, as medidas de tempo (tempo para construção das estruturas de índices e tempo para avaliação de uma consulta) e espaço (espaço utilizado pela estrutura de índices) também podem ser consideradas neste processo de validação do mecanismo Considerações Finais Neste capítulo introduziu-se o conceito de recuperação de informação e a diferença entre recuperação de informação em relação à recuperação de dados. Realizou-se uma discussão sobre os principais modelos utilizados no desenvolvimento de mecanismos de IR, destacando informações relevantes a cerca do seu funcionamento e suas restrições. Por fim, o autor apresenta a sua visão sobre o processo de recuperação de informação. Na Figura 3.4 é feita uma ilustração da visão do autor sobre a tarefa de IR e são apresentados os subprocessos envolvidos nesta tarefa. Finalmente, são citadas as principais medidas de avaliação para mecanismos de IR.

28 28 4. Preparação do Documento Neste capítulo é apresentado o processo de criação do índice para cada documento e as operações que são aplicadas no conteúdo destes documentos. Também são discutidos alguns mecanismos de indexação que são utilizados para acelerar o processo de busca e finalmente são abordadas questões a respeito das estruturas de dados utilizadas para armazenar o índice. Um mecanismo de IR executa uma busca sobre uma coleção de documentos com o objetivo de retornar informação relevante para o usuário. Para evitar que o sistema tenha que percorrer toda a coleção toda vez que uma consulta é submetida, mecanismos de IR necessitam de uma estrutura que indexa o conteúdo dos documentos. Desta forma, antes mesmo que o processo de recuperação possa ser iniciado, é necessário gerar as estruturas de índice para os documentos nos quais se deseja executar as operações de busca Indexação do Documento Nem todos os termos de um documento são igualmente significantes para representar a sua semântica. Os modelos de IR assumem que cada documento pode ser descrito por um conjunto de termos e que estes termos ajudam a descrever o conteúdo do documento em questão. Outra alternativa é representar um documento pelo seu conjunto total de palavras. Aplicando esta técnica, podemos dizer que o mecanismo de IR adota uma visão lógica do texto completo. Banco de Dados XTC Coleção de Documentos Índices Documento Indexação Análise do Texto Visão do Documento Figura 4.1 Descrição do processo de indexação Entretanto, nem todas as palavras do texto são igualmente relevantes para representar a semântica do documento. Em outras palavras, pode-se dizer que algumas palavras possuem mais significado que outras. Utilizar todo

29 29 o conjunto de palavras de um documento para a criação de seu respectivo índice pode gerar ruído durante a tarefa de recuperação. Por exemplo, um termo como the não possui significado e pode levar o mecanismo de recuperação a retornar diversos resultados não relacionados à consulta realizada. A Figura 4.1 ilustra o processo de indexação. O processo de criação dos índices começa com a seleção dos documentos que devem ser indexados. Esta tarefa é normalmente realizada pelo administrador do banco de dados ou pelo responsável pelos dados para os quais se deseja criar os índices. Depois desta seleção, para cada um dos documentos selecionados, algumas operações sobre o texto devem ser realizadas. Estas operações, baseadas no documento original, geram uma visão modificada para aquele documento, chamada de visão lógica do documento. Esta visão lógica contém apenas os termos que serão utilizados na criação do índice. Uma vez que esta visão lógica é definida, o processo de indexação é executado criando a estrutura do índice para o documento em questão. Finalmente esta estrutura é então armazenada e será posteriormente utilizada pela ferramenta de busca Análise do Texto O processo de análise do texto executa algumas operações sobre o texto analisado antes que ele comece a ser indexado. Esta análise percorre todo o documento aplicando operações como análise léxica, remoção de stopwords entre outras, e coletando os termos que representam a informação contida no documento. Este processamento pode ser dividido em três etapas: Análise léxica do texto com o objetivo de tratar dígitos, pontuação e o tratamento de letras maiúsculas e minúsculas. Eliminação de stopwords com o objetivo de filtrar as palavras eliminando as que serão menos significantes para o processo de recuperação. Aplicação da técnica conhecida como stemming com o objetivo de remover prefixos e sufixos diminuindo assim a ocorrência de várias palavras que possuem o mesmo stem Análise Léxica Análise léxica é o processo de converter uma seqüência de caracteres (texto do documento) em uma seqüência de palavras (as palavras candidatas a serem utilizadas no índice). Embora, a primeira vista, a tarefa de identificar os termos do texto pareça simples, bastando-se para isso identificar os espaços como separadores, existem mais tarefas que estão associadas à tarefa de análise do que apenas realizar a checagem de separadores. Dígitos normalmente não são bons termos para serem indexados. Por exemplo, considere um usuário interessado em artigos publicados no ano de 2006 e que tratem sobre recuperação de informação. Tal consulta poderia ser especificada através dos seguintes termos {recuperação, informação, artigo, 2006}. A presença do termo 2006 poderia levar o mecanismo de IR a

30 30 recuperar uma grande quantidade de documentos que apenas se referem a este ano sem ter nenhuma relação com artigos sobre recuperação de informação. Isto significa que, o sistema irá recuperar vários objetos que são irrelevantes para a consulta submetida. Por outro lado, seqüências de números podem identificar o código de uma conta bancária, uma identificação pessoal ou ainda um número de cartão de crédito. Todas estas informações podem ser relevantes em um determinado contexto. A análise léxica também trata com a tarefa de remoção da pontuação. Normalmente todas as marcações de pontuação são removidas. Esta remoção pode ser feita, pois o risco de causar alguma confusão entre os termos do texto é mínimo. Na verdade, existem poucas situações em que a remoção da pontuação poderia gerar problemas. Por exemplo, no caso de o texto conter um trecho de código onde foram definidas duas variáveis, a.id e aid, a remoção da pontuação, neste caso, faria com que as duas variáveis fossem interpretadas como a sendo o mesmo termo Eliminação de Stopwords Stopwords são termos que aparecem tão freqüentemente em textos que acabam perdendo a sua utilidade como termos de procura, isto é, podem ser considerados inúteis do ponto de vista de recuperação de informação. A eliminação de stopwords é o nome dado ao processo de remoção destes termos. Este processo percorre todo o documento verificando quais palavras constam ou não na lista de stopwords utilizada pelo mecanismo. Caso a palavra conste na lista, ela é descartada e não será utilizada no processo de indexação do documento. Este problema pode ser solucionado através da eliminação de stopwords. Através desse processo o número de termos que devem ser indexados é reduzido, ou seja, a complexidade para a representação do documento é reduzida. Apesar de todos esses benefícios, o processo de eliminação de stopwords pode gerar casos nos quais se torna impossível reconhecer frases especificadas na consulta. Por exemplo, a frase to be or not to be, dependendo da lista de stopwords utilizada, a frase inteira seria eliminada, forçando o mecanismo de IR a percorrer o documento original para procurá-la Stemming Freqüentemente, o usuário especifica uma palavra em uma consulta, porém apenas uma variante da palavra consta em um documento relevante. Plural, gerúndio, declinações são apenas alguns exemplos de variações sintáticas que podem fazer com que um casamento perfeito entre o termo da consulta e o termo encontrado no documento não seja possível. Este problema pode ser parcialmente solucionado com a substituição das palavras pelos seus respectivos stems. Um stem é a porção da palavra que resta após a remoção de seus sufixos e/ou prefixos. Stemming [15] possui tradição quando se fala em construção de índices a partir de textos em linguagem natural. Este processo pode ser muito útil para

31 31 melhorar o desempenho do mecanismo de IR levando em conta que ele reduz o número de variantes de uma palavra para o mesmo conceito. Além disso, stemming ainda reduz o tamanho da estrutura de índice, pois o número de termos diferentes que serão indexados será reduzido Técnicas de Indexação Existem três técnicas principais de indexação: árvore de sufixos, arquivo de assinatura e arquivo invertido. Esta seção apresenta essas técnicas, sendo que o arquivo invertido é atualmente a técnica mais apropriada para a maioria das aplicações Árvore de Sufixos (Suffix Tree) Árvore de sufixo [14] é uma estrutura de dados em árvore construída contendo os sufixos do texto. Cada posição é considerada como um sufixo e cada sufixo é, então, identificado pela sua posição. Nem todas as posições são indexadas, sendo assim, devem ser definidas quais as posições que serão recuperáveis. Uma variação da árvore de sufixos é o array de sufixos. Um array de sufixos é simplesmente um array contendo todos os ponteiros para os sufixos indexados em ordem lexigráfica. A Figura 4.2 apresenta a árvore de sufixos e o array de sufixos para um texto tomado como exemplo. 00 This 05 is 08 a 10 text. 16 A 18 text 23 has 27 many 32 words. 39 Words 45 are 49 made 54 from 59 letters. 1 l m t w 59 d 49 n (a) (b) Figura 4.2 (a) Árvore de sufixos para o texto de exemplo (b) Array de sufixos para o texto de exemplo Padrões como palavras e frases podem ser buscados em um tempo satisfatório neste tipo de estrutura através de uma procura na árvore. Além disso, uma frase pode ser buscada como se fosse uma busca por um termo único. Entretanto, esta estrutura não é apropriada para grandes textos devido à necessidade de espaço que ela utiliza Arquivo de Assinatura (Signature File) Arquivo de assinatura [1,16] é uma estrutura baseada em hash. Esta estrutura utiliza uma função de hash, também chamada de função de assinatura, para mapear as palavras do texto para vetores de bits. Esta técnica divide o texto em blocos de n palavras e atribui um vetor de bits para cada um dos blocos.

32 32 Este vetor é obtido através de uma operação entre os bits de cada uma das palavras que estão contidas naquele bloco. A Figura 4.3 apresenta um texto dividido em blocos e, para cada bloco, o seu respectivo vetor de bits. Block 1 Block 2 Block 3 Block 4 This is a text. A text has many words. Words are made from letters Função de assinatura: H(text) = H(many) = H(words) = H(made) = H(letters) = Figura 4.3 Texto de exemplo com os blocos e o vetor de bits associado à cada um deles A procura por um termo consiste na tarefa de aplicar a função de hash no termo e, então, comparar o resultado da função com cada um dos blocos. Sendo assim, o percorrimento de todos os blocos é necessário para verificar se a palavra consta no bloco ou não. Neste esquema não é possível realizar a busca por nenhum outro padrão além da busca por um termo simples Arquivo Invertido (Inverted File) Arquivo invertido [1,16], ou lista invertida, é um mecanismo de indexação orientado à palavra. Esta estrutura armazena um mapeamento dos termos para suas localizações em um documento ou em uma coleção de documentos. A estrutura de um arquivo invertido é composta por dois elementos: o vocabulário e as ocorrências. O vocabulário é a lista de palavras que constam no texto. Para cada uma destas palavras, é armazenada uma lista contendo as posições onde estes termos ocorrem. O conjunto de todas estas listas é denominado de ocorrências. A Figura 4.4 apresenta um texto e a sua respectiva lista invertida. 00 This 05 is 08 a 10 text. 16 A 18 text 23 has 27 many 32 words. 39 Words 45 are 49 made 54 from 59 letters. Vocabulário Ocorrências letters 59 made 49 many 27 text 10, 18 words 32, 39 Figura 4.4 Texto exemplo e a lista invertida para o texto A procura em um arquivo invertido sempre começa pelo vocabulário. Busca por uma simples palavra pode ser acelerada utilizando uma estrutura de dados adequada, como, por exemplo, uma tabela hash ou uma B-Tree 9. Procura por mais de um termo (busca por frase) deve ser separada e cada termo buscado separadamente, gerando uma lista com os resultados para 9

33 33 cada um deles. Por fim, estas listas devem ser percorridas com a finalidade de encontrar posições de ocorrência comuns entre estes termos Estruturas de índice para documentos XML Diversas estruturas de índices têm sido propostas para documentos XML. XISS (XML indexing and storage system) [17] é um sistema para indexar e armazenar dados no formato XML. Este sistema é baseado em três estruturas principais chamadas índice de elemento, índice de atributo e índice de estrutura. Além destes índices ainda temos mais dois componentes chamados índice de nomes e tabela de valores. Os três índices principais são utilizados para buscas e percorrimento na estrutura do documento enquanto o índice de nomes armazena todos os nomes de elementos e a tabela de valores é encarregada do armazenamento dos strings (valores dos atributos e texto) contidos no documento. (1;1.) document (3;1.1.1.) (2;1.1.) title (4;1.1.) section (4;1.2.) section lang (5;1.1.1.) (6;1.1.1.) (6;1.1.2.) section section section en XML index XML index Tree index We can get texts in the XML document Nodes in the XML are labeled Figura 4.5 Representação em árvore de um documento XML Embora estes índices resolvam eficientemente consultas pela estrutura do arquivo, eles não são adequados para resolver consultas feitas pelo conteúdo dos dados armazenados. Uma estrutura de índices que parece ser mais apropriada para tratar tanto consultas por conteúdo como consultas por estrutura é o XICS (XML Indices for content and structural search) [12]. Esta estrutura é composta por duas estruturas principais, COB-Tree (Content B + - Tree) e STB-Tree (Structure B + -Tree). Os nodos do índice COB-Tree são pares compostos por sufixos do texto e o seu PSP (path sibling pair). Contudo, como já foi apresentado anteriormente, a opção por armazenar sufixos é custosa. Para resolver este problema, a solução adotada foi uma espécie de diferença entre os elementos de texto dos índices. Desta forma, ao invés de armazenar todo o sufixo, são armazenados apenas os termos capazes de identificar unicamente o sufixo dos demais. Enquanto o índice COB indexa o conteúdo do documento, o índice STB armazena a informação referente à estrutura do documento. Ele armazena os PSPs do documento. O PSP é composto por duas informações: identificador do path e o Dewey order associado a ele.

34 34 A seguir, a Figura 4.6 mostra um exemplo de índice segundo o esquema XICS para o documento apresentado na Figura ; ; ;1. 4;1.1. 4;1.2. 6; ; ;1.1. 5; get,6; index, 5;1.1.1 texts,6; We,6; are,6; can,6; document,6; en,3; get,6; in the XML,6; in the XML,6; index,2;1.1. (a) (b) Figura 4.6 (a) Índice STB-Tree para o documento de exemplo (b) representação parcial do índice COB-Tree para o documento de exemplo 4.5. Considerações Finais Este capítulo descreveu o processo de indexação de documentos XML. Foram discutidos aspectos importantes sobre esta tarefa e sobre as estruturas de dados envolvidas neste processo. Inicialmente apresentou-se o conceito de indexação de documentos e através da Figura 4.1, o autor expôs a sua visão do processo. Em seguida realizou-se uma discussão sobre as subtarefas que são aplicadas sobre o texto antes mesmo que este possa ser de fato indexado. Por fim, foram apresentadas as estruturas mais comuns para o armazenamento de índices. Primeiramente são discutidas estruturas para organização do índice. Estas estruturas têm como objetivo facilitar a tarefa de pesquisa sobre os dados indexados. Finalmente foram introduzidas duas estruturas de dados para o armazenamento do índice. Neste sentido, foi destacada a estrutura COB-Tree por esta ter sido utilizada como base para o desenvolvimento da estrutura de índice deste trabalho.

35 35 5. Recuperação de Informação integrada ao Banco de Dados XTC Neste capítulo será apresentado o mecanismo de recuperação de informação desenvolvido de maneira integrada ao projeto XTC. Neste sentido, será discutido o modelo de IR utilizado e as características de todos os subprocessos envolvidos na tarefa de recuperação de informação. Da mesma forma, serão detalhadas as estruturas envolvidas e a sua relação com o processo de IR. Ao final do capítulo são apresentados os resultados experimentais com a finalidade de validar a abordagem proposta Modelo de Recuperação de Informação Observando a estrutura de um documento XML podem-se notar dois aspectos importantes em relação à organização dos dados nele contidos: a estrutura hierárquica de seus elementos e a presença de marcações que descrevem o seu conteúdo. Estas duas características são relevantes para recuperação de informação, pois é através delas que a recuperação de unidades (elementos) do documento é possível. Neste contexto, um importante ponto a ser destacado é a introdução de uma nova unidade de recuperação. No modelo proposto, as unidades retornadas não são documentos completos, mas sim fragmentos do documento que durante o processo de busca foram classificados como relevantes em relação à consulta submetida pelo usuário. Este trabalho propõe a utilização de um modelo vetorial de recuperação de informação, no qual as unidades recuperáveis são elementos do documento XML que possuem informação de texto associada. No modelo utilizado, considera-se que o texto é representado por um vetor de termos. Como a definição de termo não é inerente ao modelo, optou-se por defini-lo como uma palavra do texto. Desta forma, como as palavras do texto são utilizadas como termos, cada palavra passa a ser considerada como uma dimensão do espaço vetorial. Sendo assim, se a palavra pertence ao texto, ela recebe um valor diferente de zero para a dimensão referente àquela palavra. Definiu-se como método para cálculo deste valor a medida tf-idf. Considerando que um texto possui apenas um conjunto de palavras enquanto o vocabulário contém todas as palavras da coleção, a maioria dos vetores que representam um objeto são vetores esparsos 10. Outro detalhe a ser destacado é o fato de operar-se 10 Vetor que possui poucos valores diferentes de zero.

36 36 sempre no quadrante positivo do espaço vetorial, sendo assim nenhum vetor recebe um valor negativo. Para a tarefa de atribuição de um valor numérico a um objeto, o modelo utiliza a similaridade entre o vetor da consulta e o documento do vetor. A similaridade entre dois vetores, mais uma vez, não é inerente ao modelo vetorial. Desta forma, optou-se por utilizar como medida de similaridade a distância entre os vetores. Para isso foi adotada a medida do cosseno do ângulo entre os vetores. Esta medida é calculada através da seguinte fórmula:, =.. =,.,,., Esta decisão baseia-se na propriedade de que está medida varia entre o valor 1.0 para vetores idênticos e 0.0 para vetores ortogonais. Uma alternativa para simplificação dos cálculos é a utilização do produto interno entre os vetores. Se os vetores que estão sendo comparados são vetores unitários, a cálculo do cosseno passa a ser igual ao cálculo do produto interno entre eles dado pela seguinte fórmula: 5.2. Índice, =. =,., Em um mecanismo de IR baseado na utilização de índices, antes mesmo que o processo de recuperação possa ser iniciado, é necessária que a tarefa de criação dos índices seja executada. Esta tarefa é usualmente alocada ao administrador da base de dados ou ao responsável pelos dados para os quais se deseja criar a estrutura de índices. Com base na estrutura do índice COB-Tree proposto em [12], utilizou-se uma estrutura semelhante de índice baseada em uma lista invertida armazenada em uma B-Tree, onde cada nodo da árvore armazena um registro. Um registro é uma estrutura composta por um termo (palavra do documento) seguido da freqüência global do termo e finalmente uma lista de ocorrências do termo. Cada ocorrência é composta pelo identificador do documento e pela freqüência associada ao termo no documento em questão. A seguir, são detalhadas as estruturas citadas Registro O registro é a unidade básica que contém um termo, o valor de freqüência global para o termo referido e uma lista de ocorrências para aquele termo. Retirando-se as palavras que constam na lista de stop-words (palavras que são ignoradas durante o processo de indexação), para cada palavra diferente do texto será gerado um registro. O registro é constituído por três campos: o termo, a sua freqüência global e a lista de ocorrências. Termo: como as palavras de um texto têm um tamanho variável, optou-se por definir um tamanho máximo como sendo de 128 bytes. A palavra armazenada não deve exceder este tamanho:

37 37 caso contrário, o termo será truncado e apenas os seus primeiros 128 bytes serão armazenados. Esta restrição em relação ao tamanho máximo de um termo a ser indexado é feita devido à utilização de métodos internos do gerenciador de banco de dados XTC. Este tamanho máximo do termo a ser indexado pode ser alterado através da modificação dos arquivos de configuração do XTC. Porém, como este trabalho propõe-se a ser totalmente integrado com o banco de dados XTC, adotou-se esta configuração padrão. Freqüência global: este campo é responsável pelo armazenamento do valor de freqüência global do termo (idf). Este valor de freqüência é atualizado à medida que novos documentos são incluídos no índice. Lista de ocorrências: uma ocorrência é responsável pelo armazenamento da informação de localização e freqüência (tf) do termo para aquela ocorrência. Desta forma, a ocorrência é um campo subdivido em dois subcampos: localização e freqüência. No subcampo localização é armazenado o deweyid do elemento onde a palavra ocorre. O deweyid fornece informação a cerca da estrutura do documento, isto é, identifica o caminho completo desde o nodo raiz até o nodo folha no qual o termo aparece. Além disso, o deweyid identifica unicamente cada um dos nodos do documento XML tornando possível a recuperação de fragmentos do documento. Ao mesmo tempo em que é necessário o armazenamento de informação sobre a localização do termo, também se optou pelo armazenamento da informação de freqüência associada aquele termo para cada elemento onde ele ocorre. A informação de freqüência é utilizada no cálculo de relevância do documento em relação à consulta realizada pelo usuário Construção do Índice A construção de um índice não é apenas compreendida pela tarefa de extração de palavras do texto e construção de uma estrutura de dados contendo estes termos. A primeira tarefa a ser executada é a análise léxica do texto a ser indexado. A análise léxica visa tratar questões referentes ao tratamento de dígitos, pontuações e o case das letras do texto. Em relação aos dígitos, optouse por excluí-los da lista de termos a serem indexados tendo em vista que a tarefa de determinação sobre a sua importância como termos do índice ainda está mal resolvida. Quanto aos símbolos de pontuação, apenas o hífen é mantido enquanto todo o restante dos símbolos é removido. Decidiu-se por manter o hífen entre palavras pois este símbolo de pontuação ocorre relativamente poucas vezes fazendo com que o termo que o utiliza seja importante para a identificação do documento. O próximo passo compreende a aplicação de uma lista de stopwords. Esta tarefa esta relacionada com a remoção de palavras que tem pouco ou

38 38 nenhum valor como palavra a ser indexada. Do ponto de vista de compressão de dados, a remoção de stopwords elimina a necessidade de tratar palavras desnecessárias reduzindo o tamanho do índice e a quantidade de tempo e espaço necessário para construir a estrutura. Finalmente a última tarefa antes da indexação do texto é o processo de stemming. Stemming faz a remoção de sufixos com a finalidade de reduzir a palavra ao seu stem. Apesar da aparente vantagem na aplicação desta técnica, em alguns casos ela pode levar o mecanismo de busca a retornar documentos que não são relevantes. Por exemplo, uma consulta pelo termo reformation levaria o mecanismo a considerar relevantes termos como reformatory, reformative e reformism. O stemmer utilizado neste trabalho é de domínio público e conhecido como Porter Stemmer 11. Este stemmer adota uma abordagem baseada em seqüências de vogais e consoantes diferente de outras abordagens que seguem o princípio de procurar o stem que melhor representa a palavra em um dicionário de stems. Após a aplicação das tarefas citadas, obtém-se a visão lógica do documento na qual apenas os termos a serem indexados estão presentes. Desta forma, para cada termo diferente contido na visão lógica do documento será criada uma estrutura do tipo Registro. Após a criação do registro, ocorre a sua inserção na lista invertida. Um detalhe importante referente à utilização de listas invertidas é o fato de que este tipo de estrutura não armazena duplicatas. Neste sentido, caso um registro para o referido termo já conste na lista, o registro é então atualizado com o dado a cerca da nova ocorrência enquanto que o registro recém gerado pelo processo de indexação é descartado. Por fim, a tarefa final do processo de criação do índice é o armazenamento da lista invertida em uma B-Tree. Optou-se por este tipo de estrutura de dados, pois ela garante tempo de execução logarítmico para as operações de busca, inserção e deleção. Além disso, o gerenciador de banco de dados XTC já possui uma implementação deste tipo de estrutura. Informações sobre a implementação do processo de podem ser encontradas no Anexo Consulta Uma consulta é a formulação da necessidade de informação de um usuário. De uma maneira geral, quando se trabalha com a tecnologia XML, podem-se separar as consultas em dois tipos: consultas por conteúdo (content-only) ou consultas por estrutura e conteúdo (content-and-structure). A seguir, são apresentadas estas duas formas de consulta bem como apresentados exemplos de cada uma delas. Consulta por conteúdo (CO): Os documentos XML são essencialmente longas seqüências de palavras e sob esta perspectiva, a consulta mais elementar que pode ser formulada a um mecanismo de IR é uma palavra. 11

39 39 O conceito de palavra ou termo pode ser facilmente definido como uma seqüência de caracteres de um alfabeto. Neste sentido, uma consulta por conteúdo consiste em definir um conjunto de palavras que expressam a necessidade de informação do usuário. O resultado da consulta é um conjunto de documentos contendo pelo menos uma das palavras especificadas Consulta por conteúdo e estrutura (CAS): Além de considerar que uma coleção de documentos XML pode apenas ser consultada apenas pelo seu conteúdo, é interessante levar em conta a possibilidade de efetuar consultas utilizando também construtos estruturais. Através da combinação de dados do conteúdo e da estrutura, é possível alcançar uma melhora na qualidade dos objetos retornados em um sistema de IR. Inicialmente, é efetuada a consulta pelos termos do conteúdo dos documentos. Em seguida, no conjunto de objetos retornados, são efetuadas verificações em relação à estrutura de cada documento de acordo com a informação estrutural definida pelo usuário na consulta. O resultado é um conjunto de documentos que, além de conter pelo menos um das palavras especificadas, esta de acordo com o construto estrutural definido na consulta Linguagem de Consulta Linguagens de consulta são linguagens especializadas para requisição de informação, na maioria dos casos, em bancos de dados. Como parte deste trabalho, foi desenvolvida uma linguagem de consulta baseada em XPath [6] e denominada MicroXPath. O foco principal da linguagem foi gerar uma linguagem intuitiva. Para isso, utilizando a ferramenta ANTLR [10] e baseado na gramática da linguagem XPath disponível para esta ferramenta, foram feitas restrições na utilização de seus recursos, gerando assim uma linguagem de fácil utilização e entendimento. Nesta seção será apresentada a linguagem de consulta utilizada neste trabalho. Esta tarefa será realizada através da apresentação da gramática desenvolvida com o auxílio da ferramenta ANTLR. Em seguida, será feita uma descrição sobre a tarefa de integração da linguagem de consulta com o interpretador de comandos do gerenciador de banco de dados XTC MicroXPath A Tabela 5.1 a seguir apresenta as regras da gramática e uma breve explicação a respeito de cada uma delas. microxpath : pathexpr predicate ; pathexpr : ('/' absolutepathexpr) ('//' relativepathexpr) ; A linguagem MicroXPath possibilita ao usuário a construção de consultas CO e CAS. Consultas CAS podem ser feitas através da utilização da regra pathexpr enquanto consultas CO utilizam a regra predicate. Esta regra tem como objetivo permitir ao usuário a inclusão de construtos estruturais na consulta. Para isso, a linguagem possibilita o uso de dois tipos de construtos estruturais. Ambos são definidos nas regras seguintes.

40 40 absolutepathexpr : primarystep = stepexpr (('/') trailingstep = stepexpr )* predicate ; relativepathexpr : tagname predicate ; tagname : PathName ; predicate : '[' predicateexpr ']' ; predicateexpr : primarycontent = expr content = (',' expr)* ; expr A regra absolutepathexpr define um caminho absoluto. Esta é a maneira mais estrita de se definir um construto estrutural e, portanto, o seu uso esta associado a um bom conhecimento sobre a estrutura do documento. Esta regra define o caminho completo deste o nodo raiz até o nodo folha o qual deve conter um dos termos da consulta. A regra relativepathexpr fornece uma maneira mais flexível de se definir um construto estrutural. Ao mesmo tempo que algum conhecimento sobre a estrutura do documento é necessário, esta regra permite ao usuário definir apenas o nodo folha o qual deve conter um dos termos da consulta. Este regra define o passo final onde o nome da tag é associado a um token PathName. Esta regra é necessária para o correto funcionamento do mecanismo de processamento da consulta. Predicate é a regra que define o início do conjunto de termos que será utilizado no processo de busca. Esta regra possibilita ao usuário definir um número arbitrário de termos a serem buscados nos documentos da coleção. : ContentItem Esta regra define o passo final onde um termo da consulta é associado a um token ; ContentItem. Esta regra é necessária para o correto funcionamento do mecanismo de processamento da consulta. Tabela 5.1 regras da linguagem de consulta MicroXPath Com base nas regras definidas pela gramática da linguagem MicroXPath e na representação em árvore de um documento XML (Figura 5.1), a Tabela 5.2 apresenta algumas consultas exemplo e os nodos retornados para cada uma destas consultas. ID da Consulta Consulta ID Nodos Recuperados C0 C1 C2 C3 [ Birbeck ] /bib/book/author[ Birbeck ] //author[ Birbeck ] /bib/book/title[ Two, Faces ] [2, 3, 4] [3] [2, 3] [] Tabela 5.2 consultas de exemplo e nodos recuperados para cada consulta

41 41 bib music book title author author text title 1 Two Faces Mark Birbeck Professional XML 3 5 Peter Birbeck XML document by Birbeck 2 4 Figura 5.1 Representação em árvore de um documento XML 5.4. Processamento da Consulta O processamento da consulta tem como objetivo a transformação de uma consulta especificada através de uma linguagem de alto nível, como por exemplo, a linguagem desenvolvida neste trabalho, em uma estrutura compreensível e processável pelo mecanismo de busca. Após a submissão da consulta pelo usuário, ela passa pelo processo chamado parsing. Em Ciência da Computação, parsing ou análise sintática, é o processo que consiste na análise de uma seqüência de tokens com a finalidade de determinar se a sua estrutura esta de acordo com uma determinada gramática. A tarefa de parsing gera tokens para um dado conjunto de caracteres e estes tokens são então processados por um parser. Por sua vez, o parser determina se os tokens referenciam estruturas válidas e se estão na seqüência correta. Por fim, este processo é finalizado com a geração de uma estrutura de dados que será então utilizada pelo mecanismo de busca. Para a tarefa de criação do parser, foi utilizada a ferramenta de geração de parsers ANTLR. ANTLR é uma ferramenta que provê um framework para a construção de compiladores, reconhecedores, e tradutores a partir da descrição de uma gramática. ANTLR automatiza a construção de reconhecedores de linguagem. Por exemplo, para uma dada gramática, a ferramenta gera um mecanismo que determina se uma sentença (texto de entrada) está de acordo ou não com as especificações feitas na gramática utilizada. Após a validação da entrada, ocorre a geração da estrutura interna de representação da consulta. Por fim, esta estrutura é utilizada pelo mecanismo de busca para o processamento da consulta. A seguir são apresentados em detalhes os processos de avaliação da consulta, tanto para os construtos estruturais, como para os referentes ao conteúdo do documento Estrutura Para a execução da tarefa de verificação da estrutura dos documentos retornados utilizou-se a técnica de casamento de restrição estrutural descrita em [11].

42 42 Uma observação importante que deve ser levada em conta é o fato de que existem muitos casos nos quais conteúdos similares são descritos utilizando diferentes nomes de tags e diferentes estruturas. Um exemplo claro da diferença estrutural entre conteúdos similares esta no fato de que algumas sociedades acadêmicas, como ACM e IEEE-CS, publicam seus dados bibliográficos em formato digital, e alguns deles também fornecem no formato XML. Tal situação dá origem a alguns problemas. Um deles é a diversidade de nomes para tags em dados XML. Por exemplo, informação sobre artigos pode ser descrita utilizando-se a tag paper ou pela tag artigo. Outro problema é a diferença estrutural entre os dados XML. Por exemplo, para um documento, os autores de um artigo podem ser representados sob um caminho como /papers/paper/autores/autor, enquanto que outro descreve o mesmo tipo de dado sob o caminho /artigos/artigo/autor. Para tratar os problemas apresentados, neste trabalho foi utilizado um esquema de expansão de consultas por conteúdo através da utilização de uma ontologia 12 e o casamento aproximado de caminhos por meio da utilização de similaridade. Estes dois métodos utilizados, para a expansão da consulta e para o casamento de caminhos, são explicados nas seções seguintes Expansão dos nomes das tags Para realizar a expansão dos nomes de tags emprega-se o uso de uma ontologia. Como este trabalho não está vinculado a nenhum domínio específico, optou-se pela utilização de um dicionário de propósito geral. O exemplo mais conhecido deste tipo de dicionário para a língua inglesa é o WordNet [9]. Esta ontologia é apropriada para dados XML que contém termos gerais como nomes de tag, não sendo apropriada para documentos que contenham termos de domínios específicos. O componente básico para a descrição semântica de uma palavra no WordNet é o synset. Synset representa o conjunto de sinônimos para uma determinada palavra. A Figura 5.2 apresenta o resultado da consulta pelo termo author no dicionário WordNet utilizando o software WordNet 2.1 Browser. O WordNet define 6 tipos de synset: ADJECTIVE, ADJECTIVE_SATELLITE, ADVERB, ALL_TYPES, NOUN e VERB. Como podemos observar na Figura 5.2, para o termo author foram retornados dois tipos de sinônimo: NOUN e VERB. Como na maioria dos casos apenas substantivos são utilizados como nomes de tags, a expansão de nomes ocorre utilizando-se o conjunto NOUN retornado. Considerando ainda o exemplo da Figura 5.2, para o nome de tag author, o conjunto final de termos que serão utilizados na expansão seria {author, writer, generator, source}. Para exemplificar a tarefa de expansão de construto estrutural, a Tabela 5.3 apresenta uma consulta de exemplo, os sinônimos obtidos na consulta à ontologia e por fim o conjunto expandido de caminhos obtidos a partir do caminho original. 12 Vocabulário controlado para domínio específico.

43 43 Figura 5.2 Resultado da pesquisa para o termos author no dicionário WordNet Nomes de tag paper author /paper/author /paper/writer /paper/generator /paper/source /composition/author /composition/writer /composition/generator /composition/source /report/author /report/writer /report/generator /report/source Consulta: /paper/author Sinônimos composition, report, theme, newspaper, newspaper publisher writer, generator, source Caminhos expandidos: /theme/author /theme/writer /theme/generator /theme/source /newspaper/author /newspaper/writer /newspaper/generator /newspaper/source /newspaper publisher/author /newspaper publisher/writer /newspaper publisher/generator /newspaper publisher/source Tabela 5.3 Exemplo de consulta com o construto estrutura, conjunto de sinônimos retornados e o conjunto de caminhos expandidos Casamento de Caminhos A distância de edição é uma medida de similaridade entre duas palavras. Ela é definida como o número mínimo de alterações necessárias para transformar uma palavra na outra. Estas alterações podem incluir substituição, inclusão e remoção. Existem algumas variações desta proposta, como por exemplo, a distância de hamming que permite apenas inclusão ou remoção. Neste trabalho adotou-se a distância de Levenshtein 13 na qual todas as alterações citadas são consideradas. 13

44 44 Como estas medidas de similaridade são calculadas para um par de strings, quando comparamos um par de expressões de caminho, devemos considerar cada nome de tag como um passo. Suponhamos as seguintes expressões de caminho p 1 = /bib/paper/author e p 2 = /paper/names/author. A distância de edição pode ser calculada como: p1 /bib/paper /author p2 /paper/names/author Custo Para a tarefa de calcular a similaridade (distância de Levenshtein) entre as expressões de caminho, foi utilizada a biblioteca SimMetrics 14 que já possui a implementação de diversas medidas de similaridade, entre elas a distância de Levenshtein. Conforme mencionado anteriormente, a similaridade é avaliada para um par de palavras, desta forma, é necessário converter a expressão de caminho em uma palavra processável pela função de similaridade. Para isto, utilizando todo o conjunto de expressões de caminho expandidas, é construído um dicionário onde cada nome de tag é mapeado para um identificador único. A Tabela 5.4 mostra um exemplo de mapeamento para as duas expressões de caminho utilizadas no exemplo logo acima. Nome de tag Identificador bib A paper B names C author D Tabela 5.4 Exemplos de mapeamento de nome de tag para identificador Realizado este mapeamento, as palavras referentes às expressões p 1 e p 2 que são passadas para a função de similaridade são respectivamente ABD e BCD. O resultado da tarefa de verificação da informação estrutural será o maior valor de similaridade comparando-se o caminho do objeto retornado com cada um dos caminhos resultantes da expansão da consulta Conteúdo O casamento de uma consulta no modelo vetorial, considerando apenas os construtos referentes ao conteúdo do documento, é feito através do cálculo da distância entre dois vetores. Neste caso específico, entre o vetor da consulta e o vetor de um documento. Para a construção destes vetores é realizado o percorrimento da estrutura do índice. Para o vetor da consulta, realiza-se o percorrimento do vocabulário. Durante este percorrimento, é avaliada a similaridade do termo do vocabulário em relação a cada um dos termos especificados na consulta. Nesta tarefa, utilizou-se a mesma medida de similaridade empregada na avaliação de similaridade dos caminhos (distância de Levenshtein). Cada avaliação é comparada a um limiar. Caso o resultado da medida de similaridade seja 14

45 45 superior ao limiar definido, o valor do componente do vetor referente ao termo analisado é atualizado com o valor do seu peso. Para o cálculo deste peso é utilizado o método tf-idf, onde o termo tf será o valor da freqüência da palavra corrente na consulta, enquanto que o dado correspondente ao termo idf pode ser obtido através do campo do registro que armazena a freqüência global da palavra. Durante o percorrimento do vocabulário realizado para a construção do vetor consulta, cada um dos registros recuperados é armazenado. Esta característica é relevante para a tarefa de construção dos vetores documento. Através da lista de ocorrências associada a cada registro, é possível determinar quais os documentos que contém os termos especificados na consulta. Desta forma, realiza-se a construção de n vetores, onde n representa o número de documentos diferentes que estão presentes no conjunto de registros retornados. Sendo assim, elimina-se a necessidade de construção de vetores de documentos que certamente teriam um valor muito baixo, ou nulo, de relevância em relação à consulta. Para a realização do cálculo de similaridade entre o vetor consulta e cada um dos vetores documento, é utilizada a medida do cosseno do ângulo entre estes vetores. Contudo, aplicou-se uma simplificação deste cálculo através da normalização dos vetores. Sendo assim, após o processo de construção dos vetores envolvidos nesta tarefa, estes mesmos vetores são normalizados tornando possível o cálculo da similaridade através da aplicação do produto interno entre eles. Informações relativas à implementação da tarefa de processamento da consulta podem ser encontradas no Anexo Classificação dos Resultados (Ranking) Sistemas de IR modernos possuem uma maneira para realizar a classificação dos resultados. A classificação tem como objetivo a ordenação dos objetos recuperados de tal forma que os objetos considerados de maior relevância em relação à consulta submetida pelo usuário sejam exibidos no topo da lista. Isto significa que, não importa o número de objetos retornados, o usuário terá que revisar poucos deles, pois conforme ele avança na lista de resultados, a relevância dos objetos diminui. Usualmente, a classificação de resultados é feita em relação entre eles mesmos. Isto é, o valor de relevância atribuído a um objeto reflete a sua importância dentro do conjunto de objetos recuperados para a consulta submetida. Em outras palavras, se o valor de relevância de um objeto para uma dada consulta é comparado com o valor do mesmo objeto para uma consulta diferente, na maioria dos casos os valores de relevância atribuídos são diferentes. Da mesma forma, o mesmo objeto em uma base de dados diferente gera um valor de relevância diferente. A partir disso pode-se concluir que não existe uma maneira fixa de se atribuir um valor de relevância para um objeto retornado, mas que este valor varia de acordo com a consulta e com a base de dados utilizada. Existem diferentes maneiras para cálculo da relevância de um documento. Neste trabalho, optou-se pelo uso do valor de similaridade inerente

46 46 ao modelo vetorial utilizado. Porém, como a linguagem de consulta possibilita a definição de construtos estruturais, isto é, permite ao usuário definir restrições em relação à estrutura dos objetos que devem ser retornados, utilizou-se também a medida de similaridade entre a informação estrutural definida pelo usuário na consulta e o dos objetos retornados. Desta forma, obtém-se que o cálculo final da relevância de um documento em relação à consulta, considerando que a consulta contenha construtos estruturais e de conteúdo, é dado pela seguinte fórmula:, = +, + h, h Para o caso no qual o usuário não define nenhum construto estrutural, elimina-se o termo referente a este dado e obtém-se a relevância através da fórmula:, = +, Avaliação do mecanismo de IR 100 Nesta seção, serão apresentados os testes experimentais que foram efetuados com a finalidade de avaliar aspectos do mecanismo proposto. Esta seção é subdividida em duas subseções. Na primeira são analisadas características de tempo e espaço necessário para a geração e para o armazenamento da estrutura de índice. Na segunda parte são apresentados os resultados de desempenho considerando as medidas utilizadas na área de recuperação de informação. Os experimentos foram conduzidos em um computador rodando o sistema operacional Ubuntu versão 7.04 com um processador Pentium Core 2 Duo e 2 Gb de memória principal. O protótipo foi desenvolvido utilizando-se a linguagem de programação Java versão Standard Edition 6 e a ferramenta de desenvolvimento NetBeans Geração de Índices Para os experimentos em relação ao tamanho do índice e ao tempo de indexação de documento, foi gerada uma base de dados artificial. A base foi gerada através da utilização do benchmark XMark 15 pela ferramenta xmlgen. Esta ferramenta possibilita a geração de documentos XML bem formados e válidos. Os arquivos gerados pelo benchmark XMark são intensivos em conteúdo e possuem uma estrutura com poucos níveis. Outro fato importante é a capacidade de escalabilidade dos documentos gerados, isto é, a capacidade de gerar documentos que variam entre poucos bytes a até gigabytes de tamanho. O conjunto gerado de documentos XML é composto por quatro arquivos. A Tabela 5.5 mostra as informações a respeito do conjunto de documentos. 15

47 47 Documento Tamanho Número de Elementos documento1.xml documento2.xml documento3.xml documento4.xml 100 Kb 500 Kb 1 Mb 10 Mb Tabela 5.5 Dados dos documentos da coleção Para cada documento da coleção, foi gerado um índice. Os dados referentes ao processo de criação do índice de cada documento estão disponíveis na Tabela 5.6. Documento Tempo de Indexação Tamanho do Índice Elementos Indexados Entradas no Índice documento1.xml documento2.xml documento3.xml documento4.xml 1 segundo 7 segundos 15 segundos 191 segundos 400 Kb 1,5 Mb 3 Mb 30 Mb Tabela 5.6 Dados sobre os índices gerados para a coleção Como pode ser observado pelos dados da Tabela 5.6, o espaço ocupado pelos índices gerados é maior que o ocupado pelos documentos da coleção. Este fato se deve a estrutura adotada para o índice e a não utilização de técnicas de compactação, como por exemplo, compactação de prefixos. Cada entrada do índice armazena um termo do documento, a freqüência global associada ao termo e a sua lista de ocorrências. Para cada ocorrência é armazenado o identificador do elemento e a freqüência associada ao termo para a respectiva ocorrência. Desta forma, fica evidente a necessidade de um maior espaço de armazenamento para o índice, tendo em vista a necessidade de armazenamento dos n valores de freqüência associados a cada termo. A figura 5.3 ilustra o tamanho dos documentos e do índice associado a cada um deles. A seguir, a Figura 5.4 apresenta as medidas de tempo necessárias para a criação de cada um dos índices. Através destas medidas pode-se observar o aumento do tempo necessário para o processo de indexação acompanhando o crescimento do tamanho do documento a ser indexado. Figura 5.3 Tamanhos dos documentos e índices

48 48 Figura 5.4 Tempo para criação dos índices Recuperação de Informação Para a avaliação de mecanismos de recuperação de informação, existem duas medidas específicas que devem ser observadas, são elas revocação e precisão. Nesta tarefa de análise destas medidas, utilizou-se uma base de dados diferente da empregada nos experimentos anteriores. Esta opção por uma mudança na base de dados é justificada na seção Base de Dados Optou-se pela utilização do benchmark XBench[19] que, assim como o XMark, possui uma ferramenta para geração de documentos XML. Contudo, o XBench utiliza um template para a geração do documento. Sendo assim, foi especificado um template para que a base gerada tivesse a sua estrutura conhecida. A utilização de uma base de dados com estrutura conhecida é necessária à medida que esta base é sintética (gerada automaticamente). Neste sentido, o número de elementos relevantes para uma determinada consulta não é conhecido. Além disso, a análise manual da coleção para determinação de elementos relevantes em relação às consultas não é viável tendo em vista a aleatoriedade do texto contido nos documentos. Desta forma, através da informação estrutural é feita a determinação do conjunto de elementos relevantes. Considerando a natureza aleatória do conteúdo da coleção gerada, foi necessária a utilização de uma metodologia para a determinação dos elementos relevantes para cada consulta. Optou-se pela utilização da informação estrutural para determinação da relevância de um documento. Sendo assim, elementos relevantes devem conter pelo menos um dos termos especificados na consulta e, além disso, devem estar relacionados a um elemento que possua uma estrutura semanticamente equivalente à que foi especificada na consulta. Além do arquivo gerado pelo benchmark XBench, também optou-se pela utilização de um documento XML bem conhecido chamado SigmodRecord 16. Neste documento são encontradas informações sobre artigos da área de 16

49 49 tecnologia da informação e os autores relacionados com cada artigo. A Tabela 5.7 apresenta estatísticas dos documentos utilizados. Documento Tamanho Número de Elementos Collection.xml 4 Mb SigmodRecord.xml 500 Kb 9354 Tabela 5.7 Informações da coleção de documentos Considerando-se que o objetivo deste trabalho é a recuperação de elementos de um documento XML e não propriamente do documento, a quantidade de elementos torna-se mais relevante do que a quantidade de documentos presentes na coleção Especificação das consultas Após a definição da base de dados a ser empregada para a realização das avaliações, é necessário definir-se um conjunto de consultas a serem processadas no experimento. A Tabela 5.8 e a Tabela 5.9 apresentam as consultas que foram submetidas ao mecanismo de recuperação de informação. Estas consultas foram especificadas através da utilização da linguagem MicroXPath que é disponibilizada pelo mecanismo de IR. MicroXPath Q 1 ["database","evaluation"] Q 2 ["information","text","retrieval"] Q 3 /dblp/article/author["john","mcpherson"] Q 4 /dblp/article/title["query","optimization"] Tabela 5.8 Consultas executadas no documento SigmodRecord.xml MicroXPath Q 5 /SigmodRecord/issues/issue/articles/article/authors/author["Machado"] Q 6 /dblp/article/author["machado"] Q 7 /SigmodRecord/issues/issue/articles/article/title["dependecy","pattern"] Q 8 ["Paris","Venice","Berlin"] Tabela 5.9 Consultas executadas no documento Collection.xml As consultas Q 1 e Q 2 têm como objetivo recuperar elementos que contenham pelo menos um dos termos especificados na consulta. Estas duas consultas são utilizadas para apresentação dos resultados de precisão e revocação alcançadas pelo mecanismo utilizando o documento SigmodRecord.xml como coleção de dados. Por outro lado, as consultas Q 3 e Q 4 foram executadas para comprovar a capacidade do método de casamento aproximado de dados estruturais considerando consultas especificadas para um determinado domínio. Ambas as consultas Q 3 e Q 4 foram especificadas com base na estrutura do documento DBLP e retornaram resultados corretos durante as suas execuções no documento SigmodRecord. O segundo conjunto de consultas tem como objetivo demonstrar o funcionamento do mecanismo considerando uma coleção contendo uma quantidade maior de dados e também de destacar o funcionamento do processo adotado para expansão da consulta.

50 Resultados A seguir são apresentados os resultados para as consultas especificadas durante a avaliação do mecanismo. Conforme especificado na seção sobre a especificação das consultas a serem utilizadas durante os experimentos, a Figura 5.5 apresenta os gráficos de revocação versus precisão para as consultas Q 1 e Q 2 com o objetivo de quantificar o desempenho do mecanismo em relação a estas duas medidas. (a) (b) Figura 5.5 (a) Gráfico revocação versus precisão para a consulta Q 1 (b) Gráfico revocação versus precisão para a consulta Q 2 A utilização da coleção SigmodRecord para a avaliação das medidas de revocação e precisão deve-se ao fato de que este é um documento relativamente pequeno e, sendo assim, é possível realizar a análise do documento com a finalidade de obter a informação do número de elementos relevantes existentes, tornando assim possível o cálculo das medidas de avaliação que foram obtidas durante os experimentos. Além dos gráficos de precisão versus revocação, a Tabela 5.10 apresenta os valores para as medidas de revocação e MAP considerando o conjunto de elementos recuperados. MAP Revocação Q Q Q Q 4 0, Valor Final 0,6 0,94 Tabela 5.10 Valores de MAP e revocação para o primeiro conjunto de consultas A seguir são apresentados os resultados obtidos para o segundo conjunto de consultas. Na análise realizada são destacados aspectos sobre a precisão do conjunto de elementos retornados. A Tabela 5.11 apresenta informações sobre os resultados para as consultas especificadas para avaliação executadas sobre o documento Collection.xml. Como a quantidade de documentos relevantes presentes na coleção para uma determinada consulta não pode ser estipulada, inviabiliza-se o cálculo da medida de revocação. Desta forma, a Tabela 5.11 apresenta aspectos sobre a precisão do conjunto de elementos retornados, adotando-se a definição de relevância definida em

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Sistemas de Informação RENATO SULZBACH MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES

Leia mais

VISÃO GERAL DE BANCO DE DADOS

VISÃO GERAL DE BANCO DE DADOS Banco de Dados BD_A007 Visão Geral de Banco de Dados 02 de março de 2005 VISÃO GERAL DE BANCO DE DADOS Relação de siglas utilizadas neste trabalho: ABD: Administrador de Banco de Dados. BD: Banco de Dados.

Leia mais

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados 1. Introdução O governo é um dos maiores detentores de recursos da informação. Consequentemente, tem sido o responsável por assegurar que tais recursos estejam agregando valor para os cidadãos, as empresas,

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

SISTEMAS DE INFORMAÇÃO GERENCIAIS

SISTEMAS DE INFORMAÇÃO GERENCIAIS SISTEMAS DE INFORMAÇÃO GERENCIAIS Aluno: Luiza Cavalcanti Marques Orientador: Silvio Hamacher Introdução A modelagem e a utilização de bancos de dados em atividades gerenciais têm sofrido um aumento significativo

Leia mais

Organizaçãoe Recuperação de Informação GSI521. Prof. Rodrigo Sanches Miani FACOM/UFU

Organizaçãoe Recuperação de Informação GSI521. Prof. Rodrigo Sanches Miani FACOM/UFU Organizaçãoe Recuperação de Informação GSI521 Prof. Rodrigo Sanches Miani FACOM/UFU Introdução Organização e Recuperação de Informação(GSI521) Tópicos Recuperação de informação (RI); Breve histórico; O

Leia mais

Guia de utilização da notação BPMN

Guia de utilização da notação BPMN 1 Guia de utilização da notação BPMN Agosto 2011 2 Sumário de Informações do Documento Documento: Guia_de_utilização_da_notação_BPMN.odt Número de páginas: 31 Versão Data Mudanças Autor 1.0 15/09/11 Criação

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br

Introdução a Banco de Dados Aula 03. Prof. Silvestri www.eduardosilvestri.com.br Introdução a Banco de Dados Aula 03 Prof. Silvestri www.eduardosilvestri.com.br Arquiteturas de Banco de Dados Arquiteturas de BD - Introdução Atualmente, devem-se considerar alguns aspectos relevantes

Leia mais

3 Qualidade de Software

3 Qualidade de Software 3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

Documento Descritivo do Mecanismo de Busca. Preparação do Portal para indexação

Documento Descritivo do Mecanismo de Busca. Preparação do Portal para indexação Documento Descritivo do Mecanismo de Busca Este documento visa esclarecer as regras que serão executadas pelo mecanismo de busca para a recuperação de informações a partir de uma palavra e/ou expressão

Leia mais

textos documentos semi-estruturado

textos documentos semi-estruturado 1 Mineração de Textos Os estudos em Aprendizado de Máquina normalmente trabalham com dados estruturados Entretanto, uma grande quantidade de informação é armazenada em textos, que são dados semiestruturados

Leia mais

A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO

A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO DESENVOLVENDO UM PROJETO 1. Pense em um tema de seu interesse ou um problema que você gostaria de resolver. 2. Obtenha um caderno

Leia mais

Recuperação de Informação

Recuperação de Informação Recuperação de Informação Estrutura de Dados II Mariella Berger 1 Roteiro Tarefas de Recuperação de Informação Modelos de Recuperação de Documentos Modelo Booleano Modelo Espaço Vetorial Recuperação de

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

c. Técnica de Estrutura de Controle Teste do Caminho Básico

c. Técnica de Estrutura de Controle Teste do Caminho Básico 1) Defina: a. Fluxo de controle A análise de fluxo de controle é a técnica estática em que o fluxo de controle através de um programa é analisado, quer com um gráfico, quer com uma ferramenta de fluxo

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Tópicos Avançados II 5º período Professor: José Maurício S. Pinheiro AULA 3: Políticas e Declaração de

Leia mais

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP Planejamento - 7 Planejamento do Gerenciamento do Risco Identificação dos riscos 1 O que é risco? Evento que representa uma ameaça ou uma oportunidade em potencial Plano de gerenciamento do risco Especifica

Leia mais

2 Gerenciamento de Log 2.1 Definições básicas

2 Gerenciamento de Log 2.1 Definições básicas 2 Gerenciamento de Log 2.1 Definições básicas Os logs são fontes riquíssimas de informação e são gerados pelos servidores e pelas aplicações conforme eventos significativos acontecem. Em [1], log é definido

Leia mais

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB 18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es) PLÍNIO ROBERTO SOUZA VILELA Apoio Financeiro PIBIC/CNPQ

Leia mais

sendo bastante acessível e compreendido pelos usuários que o utilizarem.

sendo bastante acessível e compreendido pelos usuários que o utilizarem. APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Claudiléia Gaio Bandt 1 ; Tiago Heineck 2 ; Patrick Kochan 3 ; Leila Lisiane Rossi 4 ; Angela Maria Crotti da Rosa 5 INTRODUÇÃO Este artigo descreve

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Unidade II MODELAGEM DE PROCESSOS

Unidade II MODELAGEM DE PROCESSOS Unidade II 3 MODELAGEM DE SISTEMAS 1 20 A fase de desenvolvimento de um novo sistema de informação (Quadro 2) é um momento complexo que exige um significativo esforço no sentido de agregar recursos que

Leia mais

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados Prof. Hugo Souza Até agora vimos como é formada a infraestrutura física e lógica das bases de dados com os principais componentes

Leia mais

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie 1 INTRODUÇÃO 1.1 ORGANIZAÇÃO E PROCESSOS A administração está diretamente ligada às organizações e aos processos existentes nas mesmas. Portanto, para a melhor compreensão da Administração e sua importância

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Banco de Dados Orientado a Objetos

Banco de Dados Orientado a Objetos Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),

Leia mais

3. Fase de Planejamento dos Ciclos de Construção do Software

3. Fase de Planejamento dos Ciclos de Construção do Software 3. Fase de Planejamento dos Ciclos de Construção do Software A tarefa de planejar os ciclos de construção do software pode partir de diretrizes básicas. Estas diretrizes visam orientar que os ciclos de

Leia mais

3 Estratégia para o enriquecimento de informações

3 Estratégia para o enriquecimento de informações 34 3 Estratégia para o enriquecimento de informações Podemos resumir o processo de enriquecimento de informações em duas grandes etapas, a saber, busca e incorporação de dados, como ilustrado na Figura

Leia mais

Gerenciamento do ciclo de vida de um documento Simone de Abreu

Gerenciamento do ciclo de vida de um documento Simone de Abreu Gerenciamento do ciclo de vida de um documento Simone de Abreu É o gerenciamento do ciclo de vida de todos os registros, em todos os tipos de mídia, desde a criação até a destruição ou arquivo permanente.

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 28 Revisão para a Prova 2 http://www.ic.uff.br/~bianca/engsoft2/ Aula 28-28/07/2006 1 Matéria para a Prova 2 Gestão de projetos de software Conceitos (Cap. 21) Métricas (Cap.

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Objetivos Específico

Objetivos Específico Banco de Dados Ementa (DBA) Conceitos Gerais sobre Banco de Dados Instalação e configuração da Ferramenta de Banco de Dados. Elaboração de projeto de Banco de Dados. Implementação do projeto de Banco de

Leia mais

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Prof. Antonio Almeida de Barros Jr. Introdução Dados Informações Banco de Dados Conceitos Básicos em Bancos de Dados Definição BD - Banco de Dados SGBD - Sistema de Gerenciamento de BD Programa de Aplicação

Leia mais

Resolução da lista de exercícios de casos de uso

Resolução da lista de exercícios de casos de uso Resolução da lista de exercícios de casos de uso 1. Explique quando são criados e utilizados os diagramas de casos de uso no processo de desenvolvimento incremental e iterativo. Na fase de concepção se

Leia mais

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo CEFET.PHB - PI Plano de Ensino Banco de Dados Prof. Jefferson Silva Sistema de Banco de Dados Objetivos Vantagens e Desvantagens Conceitos básicos de BD e de SGBD Abstração de Dados Linguagem de Definição

Leia mais

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO

O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO O ENSINO DE CÁLCULO NUMÉRICO: UMA EXPERIÊNCIA COM ALUNOS DO CURSO DE CIÊNCIA DA COMPUTAÇÃO Prof. Leugim Corteze Romio Universidade Regional Integrada URI Campus Santiago-RS leugimcr@urisantiago.br Prof.

Leia mais

EGC Gestão Estratégica da Tecnologia da Informação

EGC Gestão Estratégica da Tecnologia da Informação EGC Gestão Estratégica da Tecnologia da Informação Resenha Crítica: Qual a relação entre competitividade, gestão do conhecimento e tecnologia da informação? Paulo Fernando da Silva Para discutirmos a relação

Leia mais

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

Leia mais

Capítulo 13 Pastas e Arquivos

Capítulo 13 Pastas e Arquivos Capítulo 13 Pastas e Arquivos À medida que a tecnologia avança, os dispositivos móveis vão ganhando cada vez mais funções e características que antes só pertenciam aos computadores pessoais. Com a expansão

Leia mais

2. Conceitos e Arquitetura de Bancos de Dados

2. Conceitos e Arquitetura de Bancos de Dados Bancos de Dados 2. Conceitos e Arquitetura de Bancos de Dados 1 Arquitetura Moderna de SGBD SGBD antigos eram monolíticos e rígidos, voltados para funcionamento em ambientes centralizados (mainframes e

Leia mais

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word 2010. Sumário CADERNO DE INFORMÁTICA FACITA Faculdade de Itápolis Aplicativos Editores de Texto WORD 2007/2010 Sumário Editor de texto... 3 Iniciando Microsoft Word... 4 Fichários:... 4 Atalhos... 5 Área de Trabalho:

Leia mais

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU Organizaçãoe Recuperaçãode Informação GSI521 Prof. Dr. Rodrigo Sanches Miani FACOM/UFU Modelo Vetorial Organização e Recuperação de Informação(GSI521) Motivação Discutido nos seguintes trabalhos: K. Spark

Leia mais

Manual do Usuário. Protocolo

Manual do Usuário. Protocolo Manual do Usuário Protocolo Índice de capítulos Parte I - Processos............................... 01 1 - Buscar................................ 01 2 - Listar................................ 02 3 - Abertura..............................

Leia mais

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO Referência: NT-AI.04.02.01 http://www.unesp.br/ai/pdf/nt-ai.04.02.01.pdf Data: 27/07/2000 STATUS: EM VIGOR A

Leia mais

Desenvolvimento de uma Etapa

Desenvolvimento de uma Etapa Desenvolvimento de uma Etapa A Fase Evolutiva do desenvolvimento de um sistema compreende uma sucessão de etapas de trabalho. Cada etapa configura-se na forma de um mini-ciclo que abrange as atividades

Leia mais

5 CONCLUSÃO. 5.1. Resumo

5 CONCLUSÃO. 5.1. Resumo 70 5 CONCLUSÃO 5.1. Resumo Conforme visto no capítulo anterior, por meio das análises dos resultados da pesquisa de campo, realizadas no software SPSS 17.0 versão Windows, foram obtidas as funções de utilidade;

Leia mais

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados 01) Defina com suas próprias palavras: a) Banco de Dados b) Sistema Gerenciador de Banco de Dados c) Sistema de Banco de

Leia mais

GUIA RÁPIDO DO e-livro. Iniciando

GUIA RÁPIDO DO e-livro. Iniciando GUIA RÁPIDO DO e-livro Iniciando 1. Crie uma estante pessoal para guardar automaticamente um arquivo com seus realces e anotações realizadas durante a leitura. Suas anotações não serão salvas, a menos

Leia mais

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues Modelo De Desenvolvimento De Software É uma representação abstrata do processo de desenvolvimento que define como as etapas relativas ao desenvolvimento de software serão conduzidas e interrelacionadas

Leia mais

Portal do Projeto Tempo de Ser

Portal do Projeto Tempo de Ser Sumário Portal do Projeto Tempo de Ser O que é um Wiki?...2 Documentos...2 Localizando documentos...3 Links...3 Criando um Documento...4 Criando um link...4 Editando um Documento...5 Sintaxe Básica...5

Leia mais

Complemento I - Noções Introdutórias em Data Warehouses

Complemento I - Noções Introdutórias em Data Warehouses Complemento I - Noções Introdutórias em Data Warehouses Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações

Leia mais

Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação

Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação Use of UML modeling in a management system for a food franchising Richard B. N. Vital, Tatiane M. Vital.

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Sistemas Operacionais Arquivos. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Sistemas Operacionais Arquivos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Cin/UFPE Implementação do Sistema de Arquivos Sistemas de arquivos são

Leia mais

O Uso da Inteligência Competitiva e Seus Sete Subprocessos nas Empresas Familiares

O Uso da Inteligência Competitiva e Seus Sete Subprocessos nas Empresas Familiares O Uso da Inteligência Competitiva e Seus Sete Subprocessos nas Empresas Familiares O uso da Inteligência Competitiva como processo para monitorar tecnologias, legislação, ambiente regulatório, concorrência,

Leia mais

AULA 16 - Sistema de Arquivos

AULA 16 - Sistema de Arquivos AULA 16 - Sistema de Arquivos Arquivos podem ser vistos como recipientes que contêm dados ou como um grupo de registros correlatos. Os arquivos armazenam informações que serão utilizadas, em geral, por

Leia mais

Projeto de inovação do processo de monitoramento de safra da Conab

Projeto de inovação do processo de monitoramento de safra da Conab Projeto de inovação do processo de monitoramento de safra da Conab Projeto elaborado por Lorenzo Seguini lorenzo_seguini@yahoo.it Projeto Diálogos Setoriais União Europeia - Brasil 1 Sumário 1. Introdução...3

Leia mais

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona. Aula 14 Redes de Computadores 24/10/07 Universidade do Contestado UnC/Mafra Sistemas de Informação Prof. Carlos Guerber ROTEAMENTO EM UMA REDE DE COMPUTADORES A máscara de sub-rede é utilizada para determinar

Leia mais

Gerenciamento do Tempo do Projeto (PMBoK 5ª ed.)

Gerenciamento do Tempo do Projeto (PMBoK 5ª ed.) Gerenciamento do Tempo do Projeto (PMBoK 5ª ed.) O gerenciamento do tempo inclui os processos necessários para gerenciar o término pontual do projeto, logo o cronograma é uma das principais restrições

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Prof. M.Sc. Diego Fernandes Emiliano Silva diego.femiliano@gmail.com Agenda Banco de dados Gerenciamento de banco de dados Sistemas de gerenciamento de banco de dados Como usar banco

Leia mais

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU Organizaçãoe Recuperaçãode Informação GSI521 Prof. Dr. Rodrigo Sanches Miani FACOM/UFU Aula anterior Organização e Recuperação de Informação(GSI521) Modelo vetorial- Definição Para o modelo vetorial, o

Leia mais

Conectar diferentes pesquisas na internet por um menu

Conectar diferentes pesquisas na internet por um menu Conectar diferentes pesquisas na internet por um menu Pré requisitos: Elaboração de questionário Formulário multimídia Publicação na internet Uso de senhas na Web Visualização condicionada ao perfil A

Leia mais

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS

DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS DALUA: BIBLIOTECA PARA APLICAÇÕES DISTRIBUÍDAS Aluno: Ricardo Gomes Leal Costa Orientadora: Noemi de la Rocque Rodriguez Introdução A biblioteca DALua [1], fruto do projeto anterior, tem por objetivo oferecer

Leia mais

Capítulo 2 Usabilidade... 24 2.1 Definição de usabilidade... 25 2.2 Resumo... 39 2.3 Leitura recomendada... 39

Capítulo 2 Usabilidade... 24 2.1 Definição de usabilidade... 25 2.2 Resumo... 39 2.3 Leitura recomendada... 39 Prefácio... IX Lista de Siglas e Abreviaturas... XIII Lista de Figuras e Quadros... XVI Capítulo 1 Portal web... 1 1.1 Definição de portal web... 3 1.2 Portal corporativo... 8 1.3 Resumo... 22 1.4 Leitura

Leia mais

Desenvolvimento em Ambiente Web. HTML - Introdução

Desenvolvimento em Ambiente Web. HTML - Introdução Desenvolvimento em Ambiente Web HTML - Introdução O que é HTML? HTML é uma linguagem para descrever a estrutura de uma página WEB. Ela permite: Publicar documentos online com cabeçalhos, texto, tabelas,

Leia mais

PMBoK Comentários das Provas TRE-PR 2009

PMBoK Comentários das Provas TRE-PR 2009 PMBoK Comentários das Provas TRE-PR 2009 Comentário geral: As provas apresentaram grau de dificuldade médio. Não houve uma preocupação da banca em aprofundar os conceitos ou dificultar a interpretação

Leia mais

Módulos QM de sistemas ERP ou MES X Sistemas LIMS?

Módulos QM de sistemas ERP ou MES X Sistemas LIMS? Módulos QM de sistemas ERP ou MES X Sistemas LIMS? Georgio Raphaelli Labsoft Tecnologia E-mail: georgior@gmail.com Resumo: Diferenças conceituais e práticas entre os módulos de controle e gestão da qualidade

Leia mais

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB ISBN 978-85-61091-05-7 V EPCC Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB Lincoln Fernandes Paulino

Leia mais

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos

Leia mais

Memória cache. Prof. Francisco Adelton

Memória cache. Prof. Francisco Adelton Memória cache Prof. Francisco Adelton Memória Cache Seu uso visa obter uma velocidade de acesso à memória próxima da velocidade das memórias mais rápidas e, ao mesmo tempo, disponibilizar no sistema uma

Leia mais

Análise de Pontos de Função. Por Denize Terra Pimenta dpimenta_aula@yahoo.com.br

Análise de Pontos de Função. Por Denize Terra Pimenta dpimenta_aula@yahoo.com.br Análise de Pontos de Função Por Denize Terra Pimenta dpimenta_aula@yahoo.com.br 1 Não se consegue controlar o que não se consegue medir. 2 Bibliografia "Function Point Analysis: Measurement Practices for

Leia mais

INVESTIMENTO A LONGO PRAZO 1. Princípios de Fluxo de Caixa para Orçamento de Capital

INVESTIMENTO A LONGO PRAZO 1. Princípios de Fluxo de Caixa para Orçamento de Capital 5 INVESTIMENTO A LONGO PRAZO 1. Princípios de Fluxo de Caixa para Orçamento de Capital 1.1 Processo de decisão de orçamento de capital A decisão de investimento de longo prazo é a decisão financeira mais

Leia mais

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum Prof. Ricardo José Pfitscher dcc2rjp@joinville.udesc.br Material cedido por: Prof. Rafael Rodrigues Obelheiro Prof. Maurício Aronne Pillon Cronograma Introdução

Leia mais

O uso correto do texto alternativo

O uso correto do texto alternativo O uso correto do texto alternativo Tradução livre do texto Appropriate Use of Alternative Text [http://webaim.org/techniques/alttext/] O texto alternativo é, como o nome diz, uma alternativa aos elementos

Leia mais

MOODLE NA PRÁTICA PEDAGÓGICA

MOODLE NA PRÁTICA PEDAGÓGICA Carmen Mathias Agosto - 2009 I. CADASTRO 1. Acessar o site de treinamento (teste): http://moodle_course.unifra.br/ 2. Faça o login, clicando em acesso no lado direito superior da tela: 3. Coloque seu nome

Leia mais

Design de superfície e arte: processo de criação em estamparia têxtil como lugar de encontro. Miriam Levinbook

Design de superfície e arte: processo de criação em estamparia têxtil como lugar de encontro. Miriam Levinbook Design de superfície e arte: processo de criação em estamparia têxtil como lugar de encontro. Miriam Levinbook Resumo: Este artigo propõe conexões a respeito do design de superfície em estamparia têxtil

Leia mais

Usando o Conference Manager do Microsoft Outlook

Usando o Conference Manager do Microsoft Outlook Usando o Conference Manager do Microsoft Outlook Maio de 2012 Conteúdo Capítulo 1: Usando o Conference Manager do Microsoft Outlook... 5 Introdução ao Conference Manager do Microsoft Outlook... 5 Instalando

Leia mais

MANUAL MOODLE - PROFESSORES

MANUAL MOODLE - PROFESSORES MANUAL MOODLE - PROFESSORES VERSÃO 2.5 Faculdades Projeção FACULDADE PROJEÇÃO Prof. Oswaldo Luiz Saenger Presidente Prof.ª Catarina Fontoura Costa Diretora Geral das Unidades Educacionais Prof. José Sérgio

Leia mais

ITIL v3 - Operação de Serviço - Parte 1

ITIL v3 - Operação de Serviço - Parte 1 ITIL v3 - Operação de Serviço - Parte 1 É na Operação de Serviço que se coordena e realiza as atividades e processos necessários para fornecer e gerenciar serviços em níveis acordados com o usuário e clientes

Leia mais

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0 paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0 agosto de 2007 As informações contidas neste documento, incluíndo quaisquer URLs e outras possíveis referências a

Leia mais

Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Sistemas de Informação

Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Sistemas de Informação Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Sistemas de Informação Rafael Strecker Coelho de Souza ANÁLISE E COMPARATIVO DE FERRAMENTAS CMS COMPATÍVEIS

Leia mais

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através

Leia mais

Catálogo de Padrões de Dados

Catálogo de Padrões de Dados Governo Brasileiro Comitê Executivo de Governo Eletrônico Catálogo de Padrões de Dados CPD Volume 1 Princípios Gerais Versão 2 Junho de 2011 Sumário 1 APRESENTAÇÃO...3 2 INTRODUÇÃO...4 2.1 Fundamento Lógico...

Leia mais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT Disciplina: Modelagem a Programação Orientada a Objetos

Leia mais

O Gerenciamento de Documentos Analógico/Digital

O Gerenciamento de Documentos Analógico/Digital Tipos de GED: Document imaging Document management Document Imaging / Document Management O Gerenciamento de Documentos Analógico/Digital Mundo analógico Criação Revisão Processamento Arquivo Mundo digital

Leia mais

Manual do Teclado de Satisfação Online WebOpinião

Manual do Teclado de Satisfação Online WebOpinião Manual do Teclado de Satisfação Online WebOpinião Versão 1.2.3 27 de novembro de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação

Leia mais

2 Ferramentas Utilizadas

2 Ferramentas Utilizadas 2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]

Leia mais

ATENAS: Um Sistema Gerenciador de Regras de Negócio

ATENAS: Um Sistema Gerenciador de Regras de Negócio 1. Introdução ATENAS: Um Sistema Gerenciador de Regras de Negócio Geraldo Zimbrão da Silva (IM/UFRJ) Victor Teixeira de Almeida (COPPE/UFRJ) Jano Moreira de Souza (COPPE/UFRJ) Francisco Gonçalves Pereira

Leia mais