Estratégias baseadas em exemplos para extração de dados semi-estruturados da web

Neste trabalho, sao propostas, implementadas e avaliadas estrategias e tecnicas para o problema de extracao de dados semi-estruturados de fontes de dados da Web, dentro do contexto de uma abordagem chamada DEByE (Data Extraction By Example). Os resultados obtidos com o trabalho foram usados na implementacao de um ferramenta de extracao de dados, tambem chamada DEByE, e tiveram sua eficacia verificada atraves de experimentacao.A abordagem DEByE e dita semi-automatica, no sentido em que o papel dos usuarios (ou seja, dos desenvolvedores de extratores) e limitado ao fornecimento de exemplos dos dados a serem extraidos, o que os isola de ter que conhecer as caracteristicas especificas de formacao das paginas alvo. Os exemplos fornecidos descrevem a estrutura dos objetos a serem extraidos por meio de tabelas aninhadas, as quais sao simples, intuitivas e expressivas o suficiente para representar a estrutura dos dados normalmente presentes empaginas Web.Para lidar com variacoes tipicas de objetos complexos semi-estruturados, estendemos o conceito original de tabelas aninhadas, relaxando a restricao original de que as tabelas aninhadas em uma mesma coluna devem todas ter a mesma estrutura interna.Com base nesta forma estendida de tabelas aninhadas, formalizamos o conceito de wrapper atraves de gramaticas tabulares. Tais gramaticas livres de contexto sao compostas por producoes que levam a arvores de parsing que podem ser diretamente mapeadas para tabelas aninhadas. Foram desenvolvidas estrategias para gerar gramaticas tabulares a partir de um conjunto de objetos de exemplo fornecidos por um usuario que os seleciona de uma pagina de amostra. O processo de geracao inclui: (1) geracao de producoes terminais para extrair valores atomicos pertencentes a um dominio especifico (por exemplo, uma descricao de um item, um preco, etc.) e (2) a geracao de producoes nao-terminais que representam a estrutura de objetos complexos a serem extraidos.A extracao dos dados das paginas alvo e feita atraves de um processo de parsing sobre estas paginas usando a gramatica tabular. Para isso, desenvolvemos uma eficiente estrategia bottom-up, a qual envolve duas fases distintas: uma fase de extracao, na qual os valores atomicos dos atributos sao extraidos como base na informacao de contexto local disponivel nas producoes de extracao, e uma fase de montagem, na qual os valores atomicos extraidos sao montados de acordo com a estrutura alvo fornecida pelo usuario atraves de exemplos e que esta representada nas producoes nao terminais. A eficacia da estrategia bottom-up foi comprovada experimentalmente, em especial para tratar objetos complexosmulti-nivel que apresentam variacoes estruturais. O principio geral utilizado pela estrategia bottom-up, ou seja, primeiro extrair valores atomicos e depois agrupar estes valores para montar objetos complexos, foi tambem explorado por um outro algoritmo que desenvolvemos chamado Hot Cycles. Este algoritmo temcomo objetivo descobrir estruturas tabulares plausiveis para montar objetos complexos com um conjunto de valores atomicos extraidos de uma pagina alvo. Ele e util para o emprego da abordagem DEByE em aplicacoes onde nao se pode depender do usuario para montar tabelas de exemplo.